[pdal] 01/14: Imported Upstream version 1.3.0~rc1

Bas Couwenberg sebastic at debian.org
Sat Aug 27 13:09:58 UTC 2016


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository pdal.

commit 3c05d202e235733bfcc82b78df590274d4c382ef
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Sat Aug 27 10:19:03 2016 +0200

    Imported Upstream version 1.3.0~rc1
---
 .travis.yml                                        |    4 +
 CMakeLists.txt                                     |  204 +-
 ChangeLog                                          |  743 +++
 HOWTORELEASE.txt                                   |    8 +
 PDALConfig.cmake.in                                |    2 +-
 README.md                                          |    2 +-
 RELEASENOTES.txt                                   |   72 +-
 apps/CMakeLists.txt                                |    3 +-
 apps/pdal-config                                   |   20 +-
 apps/pdal-config.in                                |    6 +-
 apps/pdal.cpp                                      |  373 +-
 cmake/cpack.cmake                                  |   42 +
 cmake/curl.cmake                                   |   17 +
 cmake/dimension.cmake                              |   10 +
 cmake/directories.cmake                            |    1 +
 cmake/gtest.cmake                                  |   17 +
 cmake/json.cmake                                   |   26 +
 cmake/macros.cmake                                 |   22 +-
 cmake/modules/FindCurl.cmake                       |   68 +
 cmake/options.cmake                                |  122 +
 cmake/python.cmake                                 |    1 +
 cmake/rpath.cmake                                  |   16 +
 dimbuilder/CMakeLists.txt                          |   33 +
 dimbuilder/DimBuilder.cpp                          |  448 ++
 dimbuilder/DimBuilder.hpp                          |   85 +
 doc/_static/logo/sticker/front.ai                  | 6416 +++++++++++++++++++
 doc/_static/logo/sticker/iheartpdal.ai             | 6537 ++++++++++++++++++++
 doc/_static/logo/sticker/iheartpdal.png            |  Bin 0 -> 32019 bytes
 doc/_static/logo/sticker/sticker.ai                | 6336 +++++++++++++++++++
 doc/_themes/bootstrap/layout.html                  |  267 -
 doc/_themes/bootstrap/theme.conf                   |   16 -
 doc/api/cpp/algorithm.rst                          |   15 +
 doc/api/cpp/algorthm.rst                           |   15 -
 doc/api/cpp/utils.rst                              |    6 +-
 doc/apps.rst                                       |  736 ---
 doc/apps/delta.rst                                 |   58 +
 doc/apps/density.rst                               |   15 +
 doc/apps/diff.rst                                  |   31 +
 doc/apps/ground.rst                                |   33 +
 doc/apps/index.rst                                 |   46 +
 doc/apps/info.rst                                  |  145 +
 doc/apps/merge.rst                                 |   23 +
 doc/apps/pcl.rst                                   |   26 +
 doc/apps/pipeline.rst                              |   37 +
 doc/apps/random.rst                                |   34 +
 doc/apps/split.rst                                 |   44 +
 doc/apps/tindex.rst                                |  104 +
 doc/apps/translate.rst                             |   76 +
 doc/apps/view.rst                                  |   58 +
 doc/community.rst                                  |    4 -
 doc/compilation/index.rst                          |   29 -
 doc/compilation/windows.rst                        |  227 -
 doc/conf.py                                        |  216 +-
 doc/contributors.rst                               |   86 -
 doc/{ => development}/compilation/dependencies.rst |    0
 doc/development/compilation/index.rst              |   29 +
 .../compilation/media/OSGeo4WInstallAdvanced.png   |  Bin
 .../media/OSGeo4WInstallFromInternet.png           |  Bin
 .../compilation/media/OSGeo4WInstallGDALDev.png    |  Bin
 .../compilation/media/OSGeo4WInstallIConv.png      |  Bin
 .../compilation/media/OSGeo4WInstallLASZip.png     |  Bin
 .../compilation/media/OSGeo4WInstallLibXML2.png    |  Bin
 .../compilation/media/OSGeo4WInstallOCI.png        |  Bin
 .../media/OSGeo4WInstallRootDirectory.png          |  Bin
 .../compilation/media/ccmake-osx-start.png         |  Bin
 .../compilation/media/cmake-gui-osx-configured.png |  Bin
 .../compilation/media/cmake-gui-osx-start.png      |  Bin
 .../compilation/media/xcode-lasinfo-arguments.png  |  Bin
 .../media/xcode-set-default-executable.png         |  Bin
 .../compilation/media/xcode-start.png              |  Bin
 doc/{ => development}/compilation/python.rst       |    0
 doc/{ => development}/compilation/unix.rst         |    0
 doc/development/compilation/windows.rst            |  227 +
 doc/development/contributors.rst                   |   82 +
 doc/development/docs.rst                           |   48 +-
 doc/development/index.rst                          |   29 +-
 doc/development/integration.rst                    |   63 +
 doc/development/metadata.rst                       |  223 +
 doc/development/nsf1.png                           |  Bin 0 -> 10872 bytes
 doc/{ => development}/rsgis_logo.png               |  Bin
 doc/{ => development}/uoh.png                      |  Bin
 doc/docbuild/Dockerfile                            |   29 -
 doc/download.rst                                   |   14 +-
 doc/images/docker-print-one.png                    |  Bin 0 -> 45415 bytes
 doc/{tutorial => images}/docker-quickstart-env.png |  Bin
 .../docker-quickstart-terminal.png                 |  Bin
 doc/images/iheartpdal.png                          |  Bin 0 -> 35352 bytes
 doc/images/las-crop-bpf-pipeline.png               |  Bin 0 -> 27505 bytes
 doc/images/reproject-merge-pipeline.png            |  Bin 0 -> 72049 bytes
 doc/index.rst                                      |  100 +-
 doc/json_pipeline_specification.rst                |  343 -
 doc/metadata.rst                                   |  227 -
 doc/nsf1.gif                                       |  Bin 12384 -> 0 bytes
 doc/pdal.style                                     |  344 -
 doc/pipeline.rst                                   |  382 +-
 doc/quickstart.rst                                 |  199 +
 doc/rtd_theme/__init__.py                          |   17 +
 doc/rtd_theme/breadcrumbs.html                     |   31 +
 doc/rtd_theme/footer.html                          |   49 +
 doc/rtd_theme/layout.html                          |  194 +
 doc/rtd_theme/layout_old.html                      |  205 +
 doc/rtd_theme/search.html                          |   50 +
 doc/rtd_theme/searchbox.html                       |    9 +
 doc/rtd_theme/static/css/badge_only.css            |    2 +
 doc/rtd_theme/static/css/badge_only.css.map        |    7 +
 doc/rtd_theme/static/css/theme.css                 |    5 +
 doc/rtd_theme/static/css/theme.css.map             |    7 +
 doc/rtd_theme/static/fonts/FontAwesome.otf         |  Bin 0 -> 85908 bytes
 doc/rtd_theme/static/fonts/Inconsolata-Bold.ttf    |  Bin 0 -> 66352 bytes
 doc/rtd_theme/static/fonts/Inconsolata-Regular.ttf |  Bin 0 -> 84548 bytes
 doc/rtd_theme/static/fonts/Lato-Bold.ttf           |  Bin 0 -> 121788 bytes
 doc/rtd_theme/static/fonts/Lato-Regular.ttf        |  Bin 0 -> 120196 bytes
 doc/rtd_theme/static/fonts/RobotoSlab-Bold.ttf     |  Bin 0 -> 170616 bytes
 doc/rtd_theme/static/fonts/RobotoSlab-Regular.ttf  |  Bin 0 -> 169064 bytes
 doc/rtd_theme/static/fonts/fontawesome-webfont.eot |  Bin 0 -> 56006 bytes
 doc/rtd_theme/static/fonts/fontawesome-webfont.svg |  520 ++
 doc/rtd_theme/static/fonts/fontawesome-webfont.ttf |  Bin 0 -> 112160 bytes
 .../static/fonts/fontawesome-webfont.woff          |  Bin 0 -> 65452 bytes
 doc/rtd_theme/static/js/modernizr.min.js           |    4 +
 doc/rtd_theme/static/js/theme.js                   |  156 +
 doc/rtd_theme/theme.conf                           |   11 +
 doc/rtd_theme/versions.html                        |   37 +
 doc/stages/filters.approximatecoplanar.rst         |   63 +
 doc/stages/filters.crop.rst                        |    3 +-
 doc/stages/filters.eigenvalues.rst                 |   45 +
 doc/stages/filters.estimaterank.rst                |   50 +
 doc/stages/filters.ground.rst                      |    2 +-
 doc/stages/filters.hag.rst                         |   40 +
 doc/stages/filters.height.rst                      |    2 +-
 doc/stages/filters.normal.rst                      |   54 +
 doc/stages/filters.outlier.rst                     |  147 +
 doc/stages/filters.pmf.rst                         |   56 +
 doc/stages/filters.rst                             |   16 +
 doc/stages/filters.sample.rst                      |   34 +
 doc/stages/filters.transformation.rst              |    2 +-
 doc/stages/index.rst                               |   59 +-
 doc/stages/readers.pts.rst                         |   32 +
 doc/stages/readers.rst                             |   22 +
 doc/stages/readers.rxp.rst                         |   20 +-
 doc/stages/writers.bpf.rst                         |    2 +-
 doc/stages/writers.p2g.rst                         |    8 +-
 doc/stages/writers.pgpointcloud.rst                |    2 +-
 doc/stages/writers.rst                             |   20 +
 doc/tutorial/calculating-normalized-heights.rst    |    6 +-
 doc/tutorial/docker-print-one.png                  |  Bin 43266 -> 0 bytes
 doc/tutorial/docker.rst                            |  196 -
 doc/tutorial/index.rst                             |    1 -
 doc/tutorial/overview.rst                          |   36 +-
 doc/tutorial/pcl_block_tutorial.rst                |   34 +-
 doc/tutorial/reading.rst                           |    2 +-
 doc/tutorial/writing-writer.rst                    |    2 +-
 doc/workshop/.gitignore                            |    2 +
 doc/workshop/R/pulse.R                             |   28 +
 doc/workshop/agenda.rst                            |   48 +
 doc/workshop/bibliography.bib                      |   17 +
 doc/workshop/docker.rst                            |  138 +
 .../boundary/boundary-command-boundary.txt         |    5 +
 .../analysis/boundary/boundary-command-tindex.txt  |    5 +
 .../exercises/analysis/boundary/boundary.rst       |   77 +
 .../exercises/analysis/clipping/attributes.json    |   11 +
 .../exercises/analysis/clipping/attributes.vrt     |    9 +
 .../analysis/clipping/clipping-run-command.txt     |    3 +
 .../exercises/analysis/clipping/clipping.json      |   17 +
 .../exercises/analysis/clipping/clipping.rst       |  156 +
 .../colorization/colorization-run-command.txt      |    3 +
 .../analysis/colorization/colorization.rst         |  138 +
 .../exercises/analysis/colorization/colorize.json  |   21 +
 .../exercises/analysis/denoising/denoise.json      |   23 +
 .../denoising/denoising-docker-machine-create.txt  |    2 +
 .../denoising/denoising-docker-machine-delete.txt  |    1 +
 .../analysis/denoising/denoising-run-command.txt   |    4 +
 .../exercises/analysis/denoising/denoising.rst     |  149 +
 .../exercises/analysis/density/density-command.txt |    5 +
 .../exercises/analysis/density/density.rst         |   90 +
 .../exercises/analysis/dtm/dtm-run-command.txt     |    3 +
 doc/workshop/exercises/analysis/dtm/dtm.rst        |  133 +
 doc/workshop/exercises/analysis/dtm/p2g.json       |   14 +
 doc/workshop/exercises/analysis/ground/filter.json |   14 +
 .../analysis/ground/ground-run-ground-only.txt     |    7 +
 .../analysis/ground/ground-run-no-filter.txt       |    6 +
 .../analysis/ground/ground-run-pcl-filter.txt      |    5 +
 doc/workshop/exercises/analysis/ground/ground.rst  |  112 +
 .../analysis/thinning/thinning-run-dartsample.txt  |    6 +
 .../exercises/analysis/thinning/thinning.rst       |   80 +
 .../georeferencing/georeferencing-command.txt      |    7 +
 doc/workshop/exercises/georeferencing/index.rst    |   56 +
 doc/workshop/exercises/index.rst                   |   55 +
 doc/workshop/exercises/info/metadata-command.txt   |    2 +
 doc/workshop/exercises/info/metadata.rst           |   64 +
 doc/workshop/exercises/info/near-command-1.txt     |    2 +
 doc/workshop/exercises/info/near-command-2.txt     |    3 +
 doc/workshop/exercises/info/near.rst               |   62 +
 .../exercises/info/single-point-command.txt        |    2 +
 doc/workshop/exercises/info/single-point.rst       |   78 +
 .../translation/compression-command-verify.txt     |    5 +
 .../exercises/translation/compression-command.txt  |    3 +
 doc/workshop/exercises/translation/compression.rst |   46 +
 .../translation/reprojection-command-1.txt         |    5 +
 .../translation/reprojection-command-2.txt         |   10 +
 .../exercises/translation/reprojection.rst         |   73 +
 doc/workshop/images/agenda-usb-drive.jpg           |  Bin 0 -> 121664 bytes
 doc/workshop/images/blizzard-eight.gif             |  Bin 0 -> 784015 bytes
 doc/workshop/images/boundary-qgis-view.png         |  Bin 0 -> 120566 bytes
 doc/workshop/images/boundary-text-output.png       |  Bin 0 -> 86742 bytes
 doc/workshop/images/boundary-tindex-run.png        |  Bin 0 -> 23077 bytes
 doc/workshop/images/clipping-autzen-view.png       |  Bin 0 -> 708335 bytes
 doc/workshop/images/clipping-run-command.png       |  Bin 0 -> 20136 bytes
 doc/workshop/images/clipping-stadium-clipped.png   |  Bin 0 -> 284946 bytes
 doc/workshop/images/clipping-view-polygons.png     |  Bin 0 -> 635545 bytes
 doc/workshop/images/colorize-run-command.png       |  Bin 0 -> 18772 bytes
 doc/workshop/images/colorize-umpaghre-colored.png  |  Bin 0 -> 339796 bytes
 doc/workshop/images/compression-verify.png         |  Bin 0 -> 35534 bytes
 doc/workshop/images/denoise-fugro.png              |  Bin 0 -> 679965 bytes
 doc/workshop/images/denoise-plasio.png             |  Bin 0 -> 320628 bytes
 doc/workshop/images/denoise-run-command.png        |  Bin 0 -> 16411 bytes
 doc/workshop/images/density-add-layer.png          |  Bin 0 -> 138853 bytes
 doc/workshop/images/density-command-run.png        |  Bin 0 -> 22210 bytes
 doc/workshop/images/density-count-attribute.png    |  Bin 0 -> 71945 bytes
 doc/workshop/images/density-file-open.png          |  Bin 0 -> 286917 bytes
 doc/workshop/images/density-final-render.png       |  Bin 0 -> 239061 bytes
 .../images/density-graduated-symbols-pick.png      |  Bin 0 -> 71678 bytes
 doc/workshop/images/density-graduated-symbols.png  |  Bin 0 -> 71592 bytes
 doc/workshop/images/density-select-layer.png       |  Bin 0 -> 68490 bytes
 doc/workshop/images/docker-file-navigate.png       |  Bin 0 -> 57337 bytes
 doc/workshop/images/docker-image-loaded.png        |  Bin 0 -> 19869 bytes
 doc/workshop/images/docker-install-options.png     |  Bin 0 -> 25100 bytes
 doc/workshop/images/docker-install-progress.png    |  Bin 0 -> 15011 bytes
 doc/workshop/images/docker-run-help.png            |  Bin 0 -> 41289 bytes
 doc/workshop/images/docker-status.png              |  Bin 0 -> 26703 bytes
 doc/workshop/images/dtm-add-raster-layer.png       |  Bin 0 -> 139429 bytes
 doc/workshop/images/dtm-add-raster-mean.png        |  Bin 0 -> 50031 bytes
 doc/workshop/images/dtm-qgis-added.png             |  Bin 0 -> 188716 bytes
 doc/workshop/images/dtm-qgis-classify.png          |  Bin 0 -> 70710 bytes
 doc/workshop/images/dtm-qgis-colorize-dtm.png      |  Bin 0 -> 69057 bytes
 doc/workshop/images/dtm-qgis-gdaldem.png           |  Bin 0 -> 44778 bytes
 doc/workshop/images/dtm-qgis-hillshade-done.png    |  Bin 0 -> 349162 bytes
 doc/workshop/images/dtm-qgis-save-hillshade.png    |  Bin 0 -> 30933 bytes
 doc/workshop/images/dtm-qgis-select-hillshade.png  |  Bin 0 -> 256449 bytes
 doc/workshop/images/dtm-run-command.png            |  Bin 0 -> 45763 bytes
 doc/workshop/images/georeference-plasio.png        |  Bin 0 -> 999491 bytes
 doc/workshop/images/georeferencing-run-command.png |  Bin 0 -> 35853 bytes
 .../images/ground-classified-included-side.png     |  Bin 0 -> 33952 bytes
 doc/workshop/images/ground-classified-included.png |  Bin 0 -> 95284 bytes
 doc/workshop/images/ground-filtered.png            |  Bin 0 -> 200173 bytes
 doc/workshop/images/ground-ground-only-view.png    |  Bin 0 -> 88087 bytes
 doc/workshop/images/ground-run-command.png         |  Bin 0 -> 42374 bytes
 doc/workshop/images/info-interesting-metadata.png  |  Bin 0 -> 55286 bytes
 .../images/info-interesting-single-point.png       |  Bin 0 -> 50285 bytes
 doc/workshop/images/info-near-bbox.png             |  Bin 0 -> 33946 bytes
 doc/workshop/images/info-near-point.png            |  Bin 0 -> 41438 bytes
 doc/workshop/images/intro-pdal-simple-pipeline.png |  Bin 0 -> 56310 bytes
 doc/workshop/images/pdal-architecture-overview.png |  Bin 0 -> 43597 bytes
 doc/workshop/images/pdal-reader-writer.png         |  Bin 0 -> 17092 bytes
 doc/workshop/images/qgis-add-raster-layer.png      |  Bin 0 -> 138554 bytes
 doc/workshop/images/qgis-choose-raster.png         |  Bin 0 -> 60220 bytes
 doc/workshop/images/qgis-install-progress.png      |  Bin 0 -> 27819 bytes
 doc/workshop/images/qgis-select-qgis.png           |  Bin 0 -> 46595 bytes
 doc/workshop/images/qgis-start-install.png         |  Bin 0 -> 147257 bytes
 doc/workshop/images/qgis-view-raster.png           |  Bin 0 -> 205965 bytes
 doc/workshop/images/reference-pulse.png            |  Bin 0 -> 182667 bytes
 doc/workshop/images/reprojection-proper-scale.png  |  Bin 0 -> 34681 bytes
 doc/workshop/images/reprojection-run-command.png   |  Bin 0 -> 26051 bytes
 .../images/reprojection-run-with-scale.png         |  Bin 0 -> 31963 bytes
 doc/workshop/images/reprojection-wrong-scale.png   |  Bin 0 -> 34617 bytes
 doc/workshop/images/return-pulse.png               |  Bin 0 -> 209280 bytes
 doc/workshop/images/thinning-command-run.png       |  Bin 0 -> 23752 bytes
 doc/workshop/images/thinning-full-res.png          |  Bin 0 -> 230413 bytes
 doc/workshop/images/thinning-overview.png          |  Bin 0 -> 73699 bytes
 doc/workshop/images/thinning-poisson-thin.png      |  Bin 0 -> 136645 bytes
 doc/workshop/images/thinning-select-data.png       |  Bin 0 -> 202623 bytes
 doc/workshop/includes/substitutions.rst            |   20 +
 doc/workshop/index.rst                             |   22 +
 doc/workshop/lidar-introduction.rst                |  166 +
 doc/workshop/pdal-introduction.rst                 |  334 +
 doc/workshop/qgis.rst                              |   70 +
 doc/workshop/slides/source/_static/custom.css      |   11 +
 doc/workshop/slides/source/_static/liblaslogo.png  |  Bin 0 -> 6073 bytes
 doc/workshop/slides/source/_static/pdal_logo.png   |  Bin 0 -> 14703 bytes
 doc/workshop/slides/source/_static/rsgis_logo.png  |  Bin 0 -> 284677 bytes
 doc/workshop/slides/source/agenda-include.txt      |    8 +
 doc/workshop/slides/source/analysis.rst            |   14 +
 doc/workshop/slides/source/basic_info.rst          |  153 +
 doc/workshop/slides/source/boundary.rst            |   52 +
 doc/workshop/slides/source/clipping.rst            |  100 +
 doc/workshop/slides/source/colorization.rst        |   73 +
 doc/workshop/slides/source/conf.py                 |  319 +
 doc/workshop/slides/source/denoising.rst           |   60 +
 doc/workshop/slides/source/density.rst             |   70 +
 doc/workshop/slides/source/dtm.rst                 |   73 +
 doc/workshop/slides/source/georeferencing.rst      |   49 +
 doc/workshop/slides/source/ground.rst              |   68 +
 doc/workshop/slides/source/img/docker-diagram.png  |  Bin 0 -> 24637 bytes
 doc/workshop/slides/source/img/georeferencing.png  |  Bin 0 -> 7063 bytes
 doc/workshop/slides/source/img/google-car.jpg      |  Bin 0 -> 153068 bytes
 doc/workshop/slides/source/img/guinea.gif          |  Bin 0 -> 350353 bytes
 doc/workshop/slides/source/img/life-so-hard.gif    |  Bin 0 -> 3509744 bytes
 doc/workshop/slides/source/img/ricopter.jpg        |  Bin 0 -> 2019541 bytes
 doc/workshop/slides/source/img/scanner.svg         |  209 +
 doc/workshop/slides/source/img/vm-diagram.png      |  Bin 0 -> 33277 bytes
 doc/workshop/slides/source/index.rst               |   28 +
 doc/workshop/slides/source/introduction.rst        |   62 +
 doc/workshop/slides/source/lidar_intro.rst         |   65 +
 doc/workshop/slides/source/pdal_intro.rst          |  192 +
 doc/workshop/slides/source/software.rst            |  120 +
 doc/workshop/slides/source/thinning.rst            |   70 +
 doc/workshop/slides/source/translation.rst         |   91 +
 doc/workshop/software.rst                          |   16 +
 examples/writing-filter/MyFilter.cpp               |   15 +-
 examples/writing-filter/MyFilter.hpp               |    6 +-
 examples/writing-kernel/MyKernel.cpp               |   22 +-
 examples/writing-reader/MyReader.cpp               |   13 +-
 examples/writing-reader/MyReader.hpp               |    3 +-
 examples/writing-writer/CMakeLists.txt             |    2 -
 examples/writing-writer/MyWriter.cpp               |   31 +-
 examples/writing-writer/MyWriter.hpp               |    7 +-
 filters/CMakeLists.txt                             |   10 +
 .../ApproximateCoplanarFilter.cpp                  |  107 +
 .../ApproximateCoplanarFilter.hpp                  |   78 +
 filters/approximatecoplanar/CMakeLists.txt         |    2 +
 filters/attribute/AttributeFilter.cpp              |   63 +-
 filters/attribute/AttributeFilter.hpp              |   20 +-
 filters/chipper/ChipperFilter.cpp                  |   15 +-
 filters/chipper/ChipperFilter.hpp                  |    4 +-
 filters/colorization/ColorizationFilter.cpp        |   43 +-
 filters/colorization/ColorizationFilter.hpp        |   12 +-
 filters/crop/CropFilter.cpp                        |   67 +-
 filters/crop/CropFilter.hpp                        |   10 +-
 filters/decimation/DecimationFilter.cpp            |   13 +-
 filters/decimation/DecimationFilter.hpp            |    2 +-
 filters/divider/DividerFilter.cpp                  |   63 +-
 filters/divider/DividerFilter.hpp                  |   16 +-
 filters/eigenvalues/CMakeLists.txt                 |    2 +
 filters/eigenvalues/EigenvaluesFilter.cpp          |  105 +
 filters/eigenvalues/EigenvaluesFilter.hpp          |   75 +
 filters/estimaterank/CMakeLists.txt                |    2 +
 filters/estimaterank/EstimateRankFilter.cpp        |   89 +
 filters/estimaterank/EstimateRankFilter.hpp        |   76 +
 filters/ferry/FerryFilter.cpp                      |   23 +-
 filters/ferry/FerryFilter.hpp                      |   12 +-
 filters/hag/CMakeLists.txt                         |    2 +
 filters/hag/HAGFilter.cpp                          |  117 +
 filters/hag/HAGFilter.hpp                          |   74 +
 filters/mongus/CMakeLists.txt                      |    2 +
 filters/mongus/MongusFilter.cpp                    |  894 +++
 filters/mongus/MongusFilter.hpp                    |  104 +
 filters/mortonorder/MortonOrderFilter.cpp          |    7 -
 filters/mortonorder/MortonOrderFilter.hpp          |    8 +-
 filters/normal/CMakeLists.txt                      |    2 +
 filters/normal/NormalFilter.cpp                    |  113 +
 filters/normal/NormalFilter.hpp                    |   76 +
 filters/outlier/CMakeLists.txt                     |    2 +
 filters/outlier/OutlierFilter.cpp                  |  237 +
 filters/outlier/OutlierFilter.hpp                  |   87 +
 filters/pmf/CMakeLists.txt                         |    2 +
 filters/pmf/PMFFilter.cpp                          |  249 +
 filters/pmf/PMFFilter.hpp                          |   83 +
 filters/range/RangeFilter.cpp                      |   17 +-
 filters/range/RangeFilter.hpp                      |   10 +-
 filters/reprojection/ReprojectionFilter.cpp        |   81 +-
 filters/reprojection/ReprojectionFilter.hpp        |    8 +-
 filters/sample/CMakeLists.txt                      |    2 +
 filters/sample/SampleFilter.cpp                    |  129 +
 filters/sample/SampleFilter.hpp                    |   70 +
 filters/smrf/CMakeLists.txt                        |    2 +
 filters/smrf/SMRFilter.cpp                         | 1097 ++++
 filters/smrf/SMRFilter.hpp                         |  122 +
 filters/sort/SortFilter.hpp                        |   14 +-
 filters/splitter/SplitterFilter.cpp                |   23 +-
 filters/splitter/SplitterFilter.hpp                |    4 +-
 filters/stats/StatsFilter.cpp                      |   40 +-
 filters/stats/StatsFilter.hpp                      |   34 +-
 filters/transformation/TransformationFilter.cpp    |   10 +-
 filters/transformation/TransformationFilter.hpp    |    7 +-
 include/pdal/Compression.hpp                       |   11 +-
 include/pdal/DbReader.hpp                          |    6 +-
 include/pdal/DbWriter.hpp                          |   14 +-
 include/pdal/DimDetail.hpp                         |   83 +
 include/pdal/DimType.hpp                           |   62 +
 include/pdal/DimUtil.hpp                           |  192 +
 include/pdal/Dimension.hpp                         |  931 ---
 include/pdal/Eigen.hpp                             |  140 +
 include/pdal/FlexWriter.hpp                        |   13 +-
 include/pdal/GDALUtils.hpp                         |   77 +-
 include/pdal/KDIndex.hpp                           |   20 +-
 include/pdal/Kernel.hpp                            |   70 +-
 include/pdal/Log.hpp                               |   10 +-
 include/pdal/Metadata.hpp                          |   11 +-
 include/pdal/Options.hpp                           |  362 +-
 include/pdal/PDALUtils.hpp                         |  271 +-
 include/pdal/PipelineManager.hpp                   |   53 +-
 include/pdal/PipelineWriter.hpp                    |    2 +-
 include/pdal/PluginManager.hpp                     |    8 +-
 include/pdal/PointContainer.hpp                    |    4 +-
 include/pdal/PointLayout.hpp                       |   41 +-
 include/pdal/PointRef.hpp                          |   30 +-
 include/pdal/PointTable.hpp                        |    6 +-
 include/pdal/PointView.hpp                         |   60 +-
 include/pdal/PointViewIter.hpp                     |    2 +-
 include/pdal/Reader.hpp                            |    6 +-
 include/pdal/Scaling.hpp                           |   88 +
 include/pdal/Stage.hpp                             |   65 +-
 include/pdal/StageFactory.hpp                      |   19 +-
 include/pdal/StageWrapper.hpp                      |    2 -
 include/pdal/Writer.hpp                            |   15 +-
 include/pdal/XMLSchema.hpp                         |   22 +-
 include/pdal/pdal_types.hpp                        |  113 +-
 include/pdal/plang/Environment.hpp                 |    2 +-
 include/pdal/plang/Invocation.hpp                  |    4 +-
 include/pdal/util/Bounds.hpp                       |   38 +-
 include/pdal/util/ProgramArgs.hpp                  |  612 +-
 include/pdal/util/Utils.hpp                        |   54 +-
 include/pdal/util/portable_endian.hpp              |    2 +-
 io/CMakeLists.txt                                  |    1 +
 io/bpf/BpfHeader.cpp                               |   31 +
 io/bpf/BpfHeader.hpp                               |   45 +-
 io/bpf/BpfReader.cpp                               |   20 +-
 io/bpf/BpfReader.hpp                               |    3 -
 io/bpf/BpfWriter.cpp                               |   99 +-
 io/bpf/BpfWriter.hpp                               |    9 +-
 io/derivative/DerivativeWriter.cpp                 |   96 +-
 io/derivative/DerivativeWriter.hpp                 |    6 +-
 io/faux/FauxReader.cpp                             |  139 +-
 io/faux/FauxReader.hpp                             |   56 +-
 io/gdal/GDALReader.cpp                             |    4 +-
 io/gdal/GDALReader.hpp                             |    2 +-
 io/ilvis2/Ilvis2Reader.cpp                         |   97 +-
 io/ilvis2/Ilvis2Reader.hpp                         |   34 +-
 io/las/CMakeLists.txt                              |    1 +
 io/las/GeotiffSupport.cpp                          |    2 -
 io/las/HeaderVal.hpp                               |  103 +-
 io/las/LasHeader.cpp                               |   32 +-
 io/las/LasHeader.hpp                               |    7 +-
 io/las/LasReader.cpp                               |   71 +-
 io/las/LasReader.hpp                               |    9 +-
 io/las/LasUtils.cpp                                |   28 +-
 io/las/LasUtils.hpp                                |   39 +-
 io/las/LasWriter.cpp                               |  239 +-
 io/las/LasWriter.hpp                               |   15 +-
 io/optech/OptechReader.cpp                         |    3 +-
 io/ply/PlyReader.cpp                               |   47 +-
 io/ply/PlyReader.hpp                               |    9 +-
 io/ply/PlyWriter.cpp                               |   68 +-
 io/ply/PlyWriter.hpp                               |    4 +-
 io/pts/CMakeLists.txt                              |   14 +
 io/pts/PtsReader.cpp                               |  169 +
 io/pts/PtsReader.hpp                               |  107 +
 io/qfit/QfitReader.cpp                             |   39 +-
 io/qfit/QfitReader.hpp                             |   22 +-
 io/sbet/CMakeLists.txt                             |    1 +
 io/sbet/SbetCommon.cpp                             |    2 +-
 io/sbet/SbetReader.cpp                             |    9 +-
 io/sbet/SbetReader.hpp                             |    1 -
 io/sbet/SbetWriter.cpp                             |    7 +-
 io/sbet/SbetWriter.hpp                             |    2 +-
 io/text/TextReader.cpp                             |   17 +-
 io/text/TextWriter.cpp                             |   50 +-
 io/text/TextWriter.hpp                             |    5 +-
 io/tindex/TIndexReader.cpp                         |   69 +-
 io/tindex/TIndexReader.hpp                         |    6 +-
 kernels/delta/DeltaKernel.cpp                      |   13 +-
 kernels/delta/DeltaKernel.hpp                      |    4 +-
 kernels/diff/DiffKernel.cpp                        |   42 +-
 kernels/info/InfoKernel.cpp                        |   83 +-
 kernels/info/InfoKernel.hpp                        |    4 +-
 kernels/merge/MergeKernel.cpp                      |   15 +-
 kernels/pipeline/PipelineKernel.cpp                |   19 +-
 kernels/pipeline/PipelineKernel.hpp                |    1 +
 kernels/random/RandomKernel.cpp                    |   33 +-
 kernels/random/RandomKernel.hpp                    |    2 -
 kernels/sort/SortKernel.cpp                        |   50 +-
 kernels/sort/SortKernel.hpp                        |    2 -
 kernels/split/SplitKernel.cpp                      |   17 +-
 kernels/tindex/TIndexKernel.cpp                    |  118 +-
 kernels/tindex/TIndexKernel.hpp                    |    1 +
 kernels/translate/TranslateKernel.cpp              |   90 +-
 kernels/translate/TranslateKernel.hpp              |    2 -
 pdal_defines.h.in                                  |    2 +
 plugins/cpd/kernel/Cpd.cpp                         |   31 +-
 plugins/cpd/test/CpdKernelTest.cpp                 |   13 +-
 plugins/geowave/io/GeoWaveReader.cpp               |   72 +-
 plugins/geowave/io/GeoWaveReader.hpp               |    6 +-
 plugins/geowave/io/GeoWaveWriter.cpp               |   59 +-
 plugins/geowave/io/GeoWaveWriter.hpp               |    7 +-
 plugins/greyhound/CMakeLists.txt                   |   52 +-
 plugins/greyhound/io/Exchanges.cpp                 |  424 --
 plugins/greyhound/io/Exchanges.hpp                 |  196 -
 plugins/greyhound/io/GreyhoundReader.cpp           |  499 +-
 plugins/greyhound/io/GreyhoundReader.hpp           |   45 +-
 plugins/greyhound/io/WebSocketClient.cpp           |  158 -
 plugins/greyhound/io/WebSocketClient.hpp           |   96 -
 plugins/greyhound/io/bbox.cpp                      |  318 +
 plugins/greyhound/io/bbox.hpp                      |  217 +
 plugins/greyhound/io/dir.hpp                       |   73 +
 plugins/greyhound/io/point.hpp                     |  128 +
 plugins/greyhound/io/range.hpp                     |   37 +
 plugins/greyhound/test/GreyhoundReaderTest.cpp     |  144 +
 plugins/hexbin/CMakeLists.txt                      |    2 +-
 plugins/hexbin/filters/HexBin.cpp                  |   65 +-
 plugins/hexbin/filters/HexBin.hpp                  |    6 +-
 plugins/hexbin/kernel/DensityKernel.cpp            |   61 +-
 plugins/hexbin/kernel/DensityKernel.hpp            |    4 -
 plugins/hexbin/kernel/OGR.cpp                      |   47 +-
 plugins/hexbin/test/HexbinFilterTest.cpp           |   17 +-
 plugins/icebridge/io/IcebridgeReader.cpp           |   63 +-
 plugins/icebridge/io/IcebridgeReader.hpp           |    9 +-
 plugins/icebridge/test/IcebridgeReaderTest.cpp     |   10 +-
 plugins/matlab/io/MatlabWriter.cpp                 |   12 +-
 plugins/matlab/io/MatlabWriter.hpp                 |    9 +-
 plugins/mrsid/io/MrsidReader.cpp                   |   79 +-
 plugins/mrsid/io/MrsidReader.hpp                   |   12 +-
 plugins/nitf/CMakeLists.txt                        |    8 +-
 plugins/nitf/io/MetadataReader.hpp                 |    1 -
 plugins/nitf/io/NitfFile.cpp                       |  249 -
 plugins/nitf/io/NitfFile.hpp                       |  108 -
 plugins/nitf/io/NitfFileReader.cpp                 |  227 +
 plugins/nitf/io/NitfFileReader.hpp                 |  101 +
 plugins/nitf/io/NitfFileWriter.cpp                 |  297 +
 plugins/nitf/io/NitfFileWriter.hpp                 |  110 +
 plugins/nitf/io/NitfReader.cpp                     |    6 +-
 plugins/nitf/io/NitfWriter.cpp                     |  301 +-
 plugins/nitf/io/NitfWriter.hpp                     |   29 +-
 plugins/nitf/test/NitfReaderTest.cpp               |   60 +-
 plugins/nitf/test/NitfWriterTest.cpp               |   32 +-
 plugins/oci/io/OciCommon.cpp                       |   10 +-
 plugins/oci/io/OciReader.cpp                       |   43 +-
 plugins/oci/io/OciReader.hpp                       |    9 +-
 plugins/oci/io/OciWriter.cpp                       |  164 +-
 plugins/oci/io/OciWriter.hpp                       |   16 +-
 plugins/oci/test/OCITest.cpp                       |  115 +-
 plugins/p2g/io/P2gWriter.cpp                       |  122 +-
 plugins/p2g/io/P2gWriter.hpp                       |   11 +-
 plugins/pcl/PCLConversions.hpp                     |   59 +-
 plugins/pcl/filters/DartSampleFilter.cpp           |   35 +-
 plugins/pcl/filters/DartSampleFilter.hpp           |    4 +-
 plugins/pcl/filters/GreedyProjectionFilter.cpp     |   41 +-
 plugins/pcl/filters/GreedyProjectionFilter.hpp     |    3 -
 plugins/pcl/filters/GridProjectionFilter.cpp       |   41 +-
 plugins/pcl/filters/GridProjectionFilter.hpp       |    5 -
 plugins/pcl/filters/GroundFilter.cpp               |   56 +-
 plugins/pcl/filters/GroundFilter.hpp               |    4 +-
 plugins/pcl/filters/MovingLeastSquaresFilter.cpp   |   41 +-
 plugins/pcl/filters/MovingLeastSquaresFilter.hpp   |    5 -
 plugins/pcl/filters/PCLBlock.cpp                   |   40 +-
 plugins/pcl/filters/PCLBlock.hpp                   |    2 +-
 plugins/pcl/filters/PoissonFilter.cpp              |   44 +-
 plugins/pcl/filters/PoissonFilter.hpp              |    4 +-
 plugins/pcl/filters/RadiusOutlierFilter.cpp        |   46 +-
 plugins/pcl/filters/RadiusOutlierFilter.hpp        |    9 +-
 plugins/pcl/filters/StatisticalOutlierFilter.cpp   |   45 +-
 plugins/pcl/filters/StatisticalOutlierFilter.hpp   |    4 +-
 plugins/pcl/filters/VoxelGridFilter.cpp            |   42 +-
 plugins/pcl/filters/VoxelGridFilter.hpp            |    9 +-
 plugins/pcl/io/PcdWriter.cpp                       |   57 +-
 plugins/pcl/io/PcdWriter.hpp                       |   51 +-
 plugins/pcl/kernel/GroundKernel.cpp                |   42 +-
 plugins/pcl/kernel/PCLKernel.cpp                   |   28 +-
 plugins/pcl/kernel/SmoothKernel.cpp                |   37 +-
 plugins/pcl/kernel/ViewKernel.cpp                  |    7 +-
 plugins/pcl/test/PCLBlockFilterTest.cpp            |   11 +-
 plugins/pgpointcloud/io/PgCommon.hpp               |    2 +-
 plugins/pgpointcloud/io/PgReader.cpp               |   41 +-
 plugins/pgpointcloud/io/PgReader.hpp               |    3 +-
 plugins/pgpointcloud/io/PgWriter.cpp               |   87 +-
 plugins/pgpointcloud/io/PgWriter.hpp               |   18 +-
 .../pgpointcloud/test/PgpointcloudWriterTest.cpp   |   10 +-
 plugins/python/filters/PredicateFilter.cpp         |   27 +-
 plugins/python/filters/PredicateFilter.hpp         |    5 +-
 plugins/python/filters/ProgrammableFilter.cpp      |   38 +-
 plugins/python/filters/ProgrammableFilter.hpp      |    7 +-
 plugins/python/test/PLangTest.cpp                  |    2 +-
 plugins/python/test/PredicateFilterTest.cpp        |   10 +-
 plugins/python/test/ProgrammableFilterTest.cpp     |   10 +-
 plugins/python/test/PythonPipelineTest.cpp         |    3 +-
 plugins/rxp/io/RxpPointcloud.cpp                   |    4 +-
 plugins/rxp/io/RxpPointcloud.hpp                   |    2 +-
 plugins/rxp/io/RxpReader.cpp                       |   34 +-
 plugins/rxp/io/RxpReader.hpp                       |   10 +-
 plugins/rxp/test/RxpReaderTest.cpp                 |   28 +-
 plugins/sqlite/io/SQLiteCommon.hpp                 |    2 +-
 plugins/sqlite/io/SQLiteReader.cpp                 |   40 +-
 plugins/sqlite/io/SQLiteReader.hpp                 |    3 +-
 plugins/sqlite/io/SQLiteWriter.cpp                 |  105 +-
 plugins/sqlite/io/SQLiteWriter.hpp                 |   10 +-
 plugins/sqlite/test/SQLiteTest.cpp                 |  134 +-
 python/VERSION.txt                                 |    2 +-
 python/pdal/Pipeline.cpp                           |    8 +-
 python/pdal/Pipeline.hpp                           |    4 +-
 python/pdal/__init__.py                            |    2 +-
 python/pdal/libpdalpython.pyx                      |   12 +-
 python/setup.py                                    |   18 +
 python/test/test_libpdal.py                        |   43 +-
 scripts/ci/add_deploy_key.sh                       |   10 +
 scripts/ci/before_install.sh                       |    3 +-
 scripts/ci/build_docs.sh                           |    8 +
 scripts/ci/deploy_website.sh                       |   25 +
 scripts/ci/docker.sh                               |    8 +
 scripts/ci/pdaldocs-private.key.enc                |  Bin 0 -> 1680 bytes
 scripts/docker/Dockerfile                          |  167 +-
 scripts/docker/Dockerfile.xenial                   |   63 +
 scripts/docker/dependencies/Dockerfile             |  175 +-
 scripts/docker/dependencies/Dockerfile.xenial      |  273 +
 scripts/docker/docbuild/Dockerfile                 |   12 +
 {doc => scripts/docker}/docbuild/run.sh            |    0
 scripts/docker/rivlib/Dockerfile                   |    2 +-
 src/CMakeLists.txt                                 |   47 +-
 src/DbReader.cpp                                   |    4 +-
 src/DbWriter.cpp                                   |   63 +-
 src/Dimension.json                                 |  331 +
 src/Eigen.cpp                                      |  143 +
 src/GDALUtils.cpp                                  |  132 +-
 src/Kernel.cpp                                     |  224 +-
 src/Log.cpp                                        |   34 +-
 src/Options.cpp                                    |   82 +-
 src/PDALUtils.cpp                                  |  213 +-
 src/PipelineManager.cpp                            |  214 +-
 src/PipelineReaderJSON.cpp                         |  496 +-
 src/PipelineReaderJSON.hpp                         |   36 +-
 src/PipelineReaderXML.cpp                          |   88 +-
 src/PipelineReaderXML.hpp                          |    6 +-
 src/PipelineWriter.cpp                             |    5 +-
 src/PluginManager.cpp                              |  104 +-
 src/PointLayout.cpp                                |   68 +-
 src/PointTable.cpp                                 |   23 +-
 src/PointView.cpp                                  |   23 +-
 src/Reader.cpp                                     |   11 +-
 src/Scaling.cpp                                    |  119 +
 src/SpatialReference.cpp                           |   49 +-
 src/Stage.cpp                                      |  132 +-
 src/StageFactory.cpp                               |  199 +-
 src/Writer.cpp                                     |   95 +-
 src/XMLSchema.cpp                                  |   20 +-
 src/gitsha.cpp                                     |    2 +-
 src/plang/Array.cpp                                |    6 +-
 src/plang/BufferedInvocation.cpp                   |    4 +-
 src/plang/CMakeLists.txt                           |    5 +-
 src/plang/Environment.cpp                          |    2 +-
 src/plang/Invocation.cpp                           |    6 +-
 src/util/Bounds.cpp                                |   68 +-
 src/util/CMakeLists.txt                            |    5 +-
 src/util/FileUtils.cpp                             |   21 +-
 src/util/Utils.cpp                                 |   84 +-
 test/data/apps/pdalinfo_stage.txt                  |   10 -
 test/data/apps/pdalinfo_stage_nosrs.txt            |   10 -
 test/data/bpf/bpf2nitf.xml.in                      |   33 +-
 test/data/filters/crop_wkt.xml.in                  |    1 -
 test/data/filters/ferry.json.in                    |    4 +-
 test/data/filters/ferry.xml.in                     |    6 -
 test/data/filters/hexbin.xml.in                    |    6 -
 test/data/filters/merge3.json.in                   |    3 +-
 test/data/filters/merge3.xml.in                    |    1 -
 test/data/filters/reproject.xml.in                 |    6 -
 test/data/io/text-writer-space-delimited.xml.in    |   20 -
 test/data/misc/opts2json.txt                       |   25 -
 test/data/nitf/chipper.json.in                     |   14 -
 test/data/nitf/chipper.xml.in                      |   12 -
 test/data/nitf/las2nitf.xml.in                     |    1 -
 test/data/nitf/reader.xml                          |    6 -
 test/data/oracle/big-write.xml                     |    6 -
 test/data/oracle/qfit-write.xml                    |   12 -
 test/data/oracle/read-colorize.xml                 |    6 -
 test/data/oracle/write.xml                         |    1 -
 test/data/pipeline/bpf2nitf.json.in                |    1 -
 test/data/pipeline/crop-stats.json.in              |    1 -
 test/data/pipeline/crop_wkt.json.in                |    3 +-
 test/data/pipeline/ferry-reproject.json.in         |    4 +-
 test/data/pipeline/hexbin-info.json.in             |    2 -
 test/data/pipeline/hexbin.json.in                  |    2 -
 test/data/pipeline/las2nitf.json.in                |    1 -
 test/data/pipeline/nitf-chipper.json.in            |    6 +-
 test/data/pipeline/p2g-writer.json.in              |    5 +-
 test/data/pipeline/pipeline_interpolate.xml.in     |    9 -
 test/data/pipeline/pipeline_metadata_writer.xml.in |   43 +-
 test/data/pipeline/pipeline_write.xml.in           |    4 -
 test/data/pipeline/qfit2las.json.in                |    5 +-
 test/data/pipeline/reproject.json.in               |    4 +-
 test/data/pipeline/sort2.json.in                   |   10 +
 test/data/pipeline/transformation.json.in          |   12 +
 test/data/ply/text_extradim.ply                    |   19 +
 test/data/pts/test.pts                             |   20 +
 test/data/qfit/conversion.xml.in                   |    6 -
 test/data/qfit/little-endian-conversion.xml.in     |    6 -
 test/data/qfit/reader.xml.in                       |    6 -
 test/data/soci/read-cloud.xml                      |    6 -
 test/data/soci/read.xml                            |    6 -
 test/unit/BoundsTest.cpp                           |   43 +
 test/unit/CMakeLists.txt                           |    3 +-
 test/unit/CompressionTest.cpp                      |    2 +-
 test/unit/KernelTest.cpp                           |    5 +
 test/unit/OptionsTest.cpp                          |  257 +-
 test/unit/PDALUtilsTest.cpp                        |   64 -
 test/unit/PipelineManagerTest.cpp                  |  110 +-
 test/unit/PluginManagerTest.cpp                    |   27 +
 test/unit/PointContextTest.cpp                     |    2 +-
 test/unit/PointTableTest.cpp                       |    4 +-
 test/unit/PointViewTest.cpp                        |   25 +
 test/unit/PolygonTest.cpp                          |   10 -
 test/unit/ProgramArgsTest.cpp                      |  103 +-
 test/unit/StageFactoryTest.cpp                     |   29 +-
 test/unit/Support.cpp                              |   35 +-
 test/unit/TestConfig.cpp                           |   41 -
 test/unit/TestConfig.hpp.in                        |   21 +-
 test/unit/UtilsTest.cpp                            |   63 +-
 test/unit/XMLSchemaTest.cpp                        |   54 +-
 test/unit/apps/pcpipelineTest.cpp                  |   35 +-
 test/unit/apps/pcpipelineTestJSON.cpp              |   42 +-
 test/unit/filters/AdditionalMergeTest.cpp          |   24 +-
 test/unit/filters/AttributeFilterTest.cpp          |    1 -
 test/unit/filters/ChipperTest.cpp                  |    4 +-
 test/unit/filters/ColorizationFilterTest.cpp       |   18 +-
 test/unit/filters/CropFilterTest.cpp               |   43 +-
 test/unit/filters/DecimationFilterTest.cpp         |    4 +-
 test/unit/filters/DividerFilterTest.cpp            |    8 +-
 test/unit/filters/FerryFilterTest.cpp              |   10 +-
 test/unit/filters/MergeTest.cpp                    |    6 +
 test/unit/filters/RandomizeFilterTest.cpp          |    2 +-
 test/unit/filters/RangeFilterTest.cpp              |   20 +-
 test/unit/filters/ReprojectionFilterTest.cpp       |    6 +-
 test/unit/filters/SplitterTest.cpp                 |    2 +-
 test/unit/filters/TransformationFilterTest.cpp     |    2 +-
 test/unit/io/gdal/GDALReaderTest.cpp               |    8 +-
 test/unit/io/ilvis2/Ilvis2ReaderTest.cpp           |    2 +-
 test/unit/io/las/LasReaderTest.cpp                 |   76 +-
 test/unit/io/las/LasWriterTest.cpp                 |   15 +-
 test/unit/io/ply/PlyReaderTest.cpp                 |   29 +
 test/unit/io/pts/PtsReaderTest.cpp                 |   81 +
 test/unit/io/qfit/QFITReaderTest.cpp               |   16 +-
 test/unit/io/sbet/SbetReaderTest.cpp               |   30 +-
 test/unit/io/sbet/SbetWriterTest.cpp               |    7 +-
 tools/CMakeLists.txt                               |    3 +
 tools/nitfwrap/CMakeLists.txt                      |   43 +
 tools/nitfwrap/NitfWrap.cpp                        |  294 +
 tools/nitfwrap/NitfWrap.hpp                        |   37 +
 tools/nitfwrap/NitfWrapTest.cpp                    |  107 +
 vendor/arbiter/CMakeLists.txt                      |   28 +
 vendor/arbiter/LICENSE                             |   22 +
 vendor/arbiter/README                              |    1 +
 vendor/arbiter/arbiter.cpp                         | 3609 +++++++++++
 vendor/arbiter/arbiter.hpp                         | 4603 ++++++++++++++
 vendor/eigen-3.1.91/Eigen/CholmodSupport           |   45 -
 vendor/eigen-3.1.91/Eigen/Core                     |  377 --
 vendor/eigen-3.1.91/Eigen/Eigen2Support            |   82 -
 vendor/eigen-3.1.91/Eigen/SPQRSupport              |   29 -
 vendor/eigen-3.1.91/Eigen/Sparse                   |   27 -
 vendor/eigen-3.1.91/Eigen/SparseCholesky           |   38 -
 vendor/eigen-3.1.91/Eigen/SparseCore               |   64 -
 vendor/eigen-3.1.91/Eigen/SparseLU                 |   46 -
 vendor/eigen-3.1.91/Eigen/SparseQR                 |   29 -
 vendor/eigen-3.1.91/Eigen/UmfPackSupport           |   36 -
 vendor/eigen-3.1.91/Eigen/src/Cholesky/LDLT.h      |  599 --
 vendor/eigen-3.1.91/Eigen/src/Cholesky/LLT.h       |  490 --
 vendor/eigen-3.1.91/Eigen/src/Cholesky/LLT_MKL.h   |  102 -
 .../Eigen/src/CholmodSupport/CholmodSupport.h      |  602 --
 vendor/eigen-3.1.91/Eigen/src/Core/Array.h         |  308 -
 vendor/eigen-3.1.91/Eigen/src/Core/ArrayBase.h     |  228 -
 vendor/eigen-3.1.91/Eigen/src/Core/ArrayWrapper.h  |  254 -
 vendor/eigen-3.1.91/Eigen/src/Core/Assign.h        |  583 --
 .../eigen-3.1.91/Eigen/src/Core/AssignEvaluator.h  |  754 ---
 vendor/eigen-3.1.91/Eigen/src/Core/Block.h         |  405 --
 vendor/eigen-3.1.91/Eigen/src/Core/BooleanRedux.h  |  154 -
 .../eigen-3.1.91/Eigen/src/Core/CommaInitializer.h |  143 -
 .../eigen-3.1.91/Eigen/src/Core/CoreEvaluators.h   | 1311 ----
 vendor/eigen-3.1.91/Eigen/src/Core/CwiseBinaryOp.h |  229 -
 vendor/eigen-3.1.91/Eigen/src/Core/CwiseUnaryOp.h  |  126 -
 .../eigen-3.1.91/Eigen/src/Core/CwiseUnaryView.h   |  139 -
 vendor/eigen-3.1.91/Eigen/src/Core/DenseBase.h     |  511 --
 vendor/eigen-3.1.91/Eigen/src/Core/DenseStorage.h  |  331 -
 vendor/eigen-3.1.91/Eigen/src/Core/Diagonal.h      |  237 -
 .../eigen-3.1.91/Eigen/src/Core/DiagonalProduct.h  |  113 -
 vendor/eigen-3.1.91/Eigen/src/Core/Dot.h           |  262 -
 vendor/eigen-3.1.91/Eigen/src/Core/EigenBase.h     |  161 -
 vendor/eigen-3.1.91/Eigen/src/Core/Functors.h      |  985 ---
 vendor/eigen-3.1.91/Eigen/src/Core/Fuzzy.h         |  150 -
 .../eigen-3.1.91/Eigen/src/Core/GeneralProduct.h   |  635 --
 .../Eigen/src/Core/GenericPacketMath.h             |  350 --
 .../eigen-3.1.91/Eigen/src/Core/GlobalFunctions.h  |   91 -
 vendor/eigen-3.1.91/Eigen/src/Core/IO.h            |  249 -
 vendor/eigen-3.1.91/Eigen/src/Core/MapBase.h       |  242 -
 vendor/eigen-3.1.91/Eigen/src/Core/MathFunctions.h |  753 ---
 vendor/eigen-3.1.91/Eigen/src/Core/Matrix.h        |  405 --
 vendor/eigen-3.1.91/Eigen/src/Core/MatrixBase.h    |  515 --
 vendor/eigen-3.1.91/Eigen/src/Core/NoAlias.h       |  130 -
 .../Eigen/src/Core/PermutationMatrix.h             |  688 --
 .../eigen-3.1.91/Eigen/src/Core/PlainObjectBase.h  |  782 ---
 vendor/eigen-3.1.91/Eigen/src/Core/Product.h       |  107 -
 vendor/eigen-3.1.91/Eigen/src/Core/ProductBase.h   |  278 -
 .../Eigen/src/Core/ProductEvaluators.h             |  411 --
 vendor/eigen-3.1.91/Eigen/src/Core/Redux.h         |  408 --
 vendor/eigen-3.1.91/Eigen/src/Core/Ref.h           |  255 -
 vendor/eigen-3.1.91/Eigen/src/Core/Replicate.h     |  177 -
 vendor/eigen-3.1.91/Eigen/src/Core/ReturnByValue.h |   88 -
 .../eigen-3.1.91/Eigen/src/Core/SelfAdjointView.h  |  314 -
 .../Eigen/src/Core/SelfCwiseBinaryOp.h             |  197 -
 .../eigen-3.1.91/Eigen/src/Core/SolveTriangular.h  |  260 -
 vendor/eigen-3.1.91/Eigen/src/Core/StableNorm.h    |  190 -
 vendor/eigen-3.1.91/Eigen/src/Core/Transpose.h     |  416 --
 .../eigen-3.1.91/Eigen/src/Core/TriangularMatrix.h |  830 ---
 vendor/eigen-3.1.91/Eigen/src/Core/VectorwiseOp.h  |  641 --
 vendor/eigen-3.1.91/Eigen/src/Core/Visitor.h       |  237 -
 .../Eigen/src/Core/arch/AltiVec/PacketMath.h       |  498 --
 .../Eigen/src/Core/arch/NEON/Complex.h             |  259 -
 .../Eigen/src/Core/arch/NEON/PacketMath.h          |  407 --
 .../eigen-3.1.91/Eigen/src/Core/arch/SSE/Complex.h |  442 --
 .../Eigen/src/Core/arch/SSE/MathFunctions.h        |  464 --
 .../Eigen/src/Core/arch/SSE/PacketMath.h           |  644 --
 .../Eigen/src/Core/products/CoeffBasedProduct.h    |  441 --
 .../src/Core/products/GeneralBlockPanelKernel.h    | 1335 ----
 .../Eigen/src/Core/products/GeneralMatrixMatrix.h  |  427 --
 .../Eigen/src/Core/products/GeneralMatrixVector.h  |  573 --
 .../Eigen/src/Core/products/Parallelizer.h         |  159 -
 .../src/Core/products/SelfadjointMatrixMatrix.h    |  436 --
 .../src/Core/products/SelfadjointMatrixVector.h    |  281 -
 .../src/Core/products/SelfadjointRank2Update.h     |   93 -
 .../src/Core/products/TriangularMatrixMatrix_MKL.h |  309 -
 .../src/Core/products/TriangularMatrixVector.h     |  348 --
 .../src/Core/products/TriangularSolverMatrix.h     |  329 -
 vendor/eigen-3.1.91/Eigen/src/Core/util/BlasUtil.h |  264 -
 .../eigen-3.1.91/Eigen/src/Core/util/Constants.h   |  438 --
 .../Eigen/src/Core/util/ForwardDeclarations.h      |  299 -
 .../eigen-3.1.91/Eigen/src/Core/util/MKL_support.h |  109 -
 vendor/eigen-3.1.91/Eigen/src/Core/util/Macros.h   |  416 --
 vendor/eigen-3.1.91/Eigen/src/Core/util/Memory.h   |  974 ---
 .../Eigen/src/Core/util/StaticAssert.h             |  206 -
 .../eigen-3.1.91/Eigen/src/Core/util/XprHelper.h   |  468 --
 .../Eigen/src/Eigen2Support/Geometry/AlignedBox.h  |  159 -
 .../Eigen/src/Eigen2Support/Geometry/Hyperplane.h  |  254 -
 .../src/Eigen2Support/Geometry/ParametrizedLine.h  |  141 -
 .../Eigen/src/Eigen2Support/LeastSquares.h         |  170 -
 .../Eigen/src/Eigen2Support/MathFunctions.h        |   57 -
 vendor/eigen-3.1.91/Eigen/src/Eigen2Support/SVD.h  |  638 --
 .../Eigen/src/Eigenvalues/ComplexEigenSolver.h     |  333 -
 .../Eigen/src/Eigenvalues/ComplexSchur.h           |  456 --
 .../Eigen/src/Eigenvalues/ComplexSchur_MKL.h       |   94 -
 .../Eigen/src/Eigenvalues/EigenSolver.h            |  598 --
 .../Eigen/src/Eigenvalues/GeneralizedEigenSolver.h |  341 -
 .../src/Eigenvalues/HessenbergDecomposition.h      |  373 --
 vendor/eigen-3.1.91/Eigen/src/Eigenvalues/RealQZ.h |  624 --
 .../eigen-3.1.91/Eigen/src/Eigenvalues/RealSchur.h |  529 --
 .../Eigen/src/Eigenvalues/RealSchur_MKL.h          |   83 -
 .../Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h |  802 ---
 .../src/Eigenvalues/SelfAdjointEigenSolver_MKL.h   |   92 -
 .../Eigen/src/Eigenvalues/Tridiagonalization.h     |  557 --
 .../eigen-3.1.91/Eigen/src/Geometry/AlignedBox.h   |  375 --
 vendor/eigen-3.1.91/Eigen/src/Geometry/AngleAxis.h |  233 -
 .../eigen-3.1.91/Eigen/src/Geometry/EulerAngles.h  |   85 -
 .../eigen-3.1.91/Eigen/src/Geometry/Homogeneous.h  |  307 -
 .../eigen-3.1.91/Eigen/src/Geometry/Hyperplane.h   |  270 -
 .../eigen-3.1.91/Eigen/src/Geometry/OrthoMethods.h |  218 -
 .../Eigen/src/Geometry/ParametrizedLine.h          |  195 -
 .../eigen-3.1.91/Eigen/src/Geometry/Quaternion.h   |  775 ---
 .../eigen-3.1.91/Eigen/src/Geometry/Rotation2D.h   |  157 -
 vendor/eigen-3.1.91/Eigen/src/Geometry/Transform.h | 1440 -----
 .../eigen-3.1.91/Eigen/src/Geometry/Translation.h  |  206 -
 vendor/eigen-3.1.91/Eigen/src/Geometry/Umeyama.h   |  177 -
 .../Eigen/src/Householder/BlockHouseholder.h       |   68 -
 .../Eigen/src/Householder/Householder.h            |  171 -
 .../Eigen/src/Householder/HouseholderSequence.h    |  441 --
 .../IterativeLinearSolvers/BasicPreconditioners.h  |  149 -
 .../Eigen/src/IterativeLinearSolvers/BiCGSTAB.h    |  261 -
 .../src/IterativeLinearSolvers/ConjugateGradient.h |  265 -
 .../src/IterativeLinearSolvers/IncompleteLUT.h     |  468 --
 .../IterativeLinearSolvers/IterativeSolverBase.h   |  254 -
 vendor/eigen-3.1.91/Eigen/src/Jacobi/Jacobi.h      |  433 --
 vendor/eigen-3.1.91/Eigen/src/LU/FullPivLU.h       |  742 ---
 vendor/eigen-3.1.91/Eigen/src/LU/Inverse.h         |  400 --
 vendor/eigen-3.1.91/Eigen/src/LU/PartialPivLU.h    |  501 --
 .../Eigen/src/MetisSupport/MetisSupport.h          |  137 -
 .../eigen-3.1.91/Eigen/src/OrderingMethods/Amd.h   |  435 --
 .../Eigen/src/OrderingMethods/Eigen_Colamd.h       | 1850 ------
 .../Eigen/src/OrderingMethods/Ordering.h           |  150 -
 .../Eigen/src/PardisoSupport/PardisoSupport.h      |  592 --
 .../Eigen/src/QR/ColPivHouseholderQR.h             |  555 --
 .../Eigen/src/QR/ColPivHouseholderQR_MKL.h         |   99 -
 .../Eigen/src/QR/FullPivHouseholderQR.h            |  598 --
 vendor/eigen-3.1.91/Eigen/src/QR/HouseholderQR.h   |  351 --
 .../eigen-3.1.91/Eigen/src/QR/HouseholderQR_MKL.h  |   69 -
 .../Eigen/src/SPQRSupport/SuiteSparseQRSupport.h   |  304 -
 vendor/eigen-3.1.91/Eigen/src/SVD/JacobiSVD.h      |  884 ---
 vendor/eigen-3.1.91/Eigen/src/SVD/JacobiSVD_MKL.h  |   92 -
 .../Eigen/src/SVD/UpperBidiagonalization.h         |  148 -
 .../Eigen/src/SparseCholesky/SimplicialCholesky.h  |  667 --
 .../src/SparseCholesky/SimplicialCholesky_impl.h   |  199 -
 .../eigen-3.1.91/Eigen/src/SparseCore/AmbiVector.h |  373 --
 .../Eigen/src/SparseCore/CompressedStorage.h       |  233 -
 .../SparseCore/ConservativeSparseSparseProduct.h   |  245 -
 .../Eigen/src/SparseCore/CoreIterators.h           |   61 -
 .../Eigen/src/SparseCore/MappedSparseMatrix.h      |  179 -
 .../Eigen/src/SparseCore/SparseAssign.h            |    0
 .../Eigen/src/SparseCore/SparseBlock.h             |  403 --
 .../Eigen/src/SparseCore/SparseColEtree.h          |  204 -
 .../Eigen/src/SparseCore/SparseCwiseBinaryOp.h     |  324 -
 .../Eigen/src/SparseCore/SparseDenseProduct.h      |  300 -
 .../Eigen/src/SparseCore/SparseDiagonalProduct.h   |  192 -
 .../eigen-3.1.91/Eigen/src/SparseCore/SparseDot.h  |  101 -
 .../Eigen/src/SparseCore/SparseMatrix.h            | 1219 ----
 .../Eigen/src/SparseCore/SparseMatrixBase.h        |  448 --
 .../Eigen/src/SparseCore/SparsePermutation.h       |  148 -
 .../Eigen/src/SparseCore/SparseProduct.h           |  187 -
 .../Eigen/src/SparseCore/SparseSelfAdjointView.h   |  480 --
 .../SparseCore/SparseSparseProductWithPruning.h    |  149 -
 .../Eigen/src/SparseCore/SparseTranspose.h         |   61 -
 .../Eigen/src/SparseCore/SparseTriangularView.h    |  164 -
 .../eigen-3.1.91/Eigen/src/SparseCore/SparseUtil.h |  173 -
 .../Eigen/src/SparseCore/SparseVector.h            |  412 --
 .../eigen-3.1.91/Eigen/src/SparseCore/SparseView.h |   98 -
 .../Eigen/src/SparseCore/TriangularSolver.h        |  334 -
 vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU.h  |  618 --
 .../eigen-3.1.91/Eigen/src/SparseLU/SparseLUImpl.h |   64 -
 .../Eigen/src/SparseLU/SparseLU_Memory.h           |  222 -
 .../Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h |  294 -
 .../Eigen/src/SparseLU/SparseLU_column_bmod.h      |  180 -
 .../Eigen/src/SparseLU/SparseLU_column_dfs.h       |  177 -
 .../Eigen/src/SparseLU/SparseLU_kernel_bmod.h      |  130 -
 .../Eigen/src/SparseLU/SparseLU_panel_bmod.h       |  223 -
 .../Eigen/src/SparseLU/SparseLU_pivotL.h           |  134 -
 .../Eigen/src/SparseLU/SparseLU_pruneL.h           |  135 -
 vendor/eigen-3.1.91/Eigen/src/SparseQR/SparseQR.h  |  588 --
 .../eigen-3.1.91/Eigen/src/StlSupport/StdDeque.h   |  134 -
 vendor/eigen-3.1.91/Eigen/src/StlSupport/StdList.h |  114 -
 .../eigen-3.1.91/Eigen/src/StlSupport/StdVector.h  |  126 -
 .../Eigen/src/SuperLUSupport/SuperLUSupport.h      | 1026 ---
 .../Eigen/src/UmfPackSupport/UmfPackSupport.h      |  432 --
 .../Eigen/src/plugins/ArrayCwiseBinaryOps.h        |  211 -
 .../Eigen/src/plugins/ArrayCwiseUnaryOps.h         |  203 -
 .../eigen-3.1.91/Eigen/src/plugins/BlockMethods.h  |  747 ---
 .../Eigen/src/plugins/MatrixCwiseBinaryOps.h       |  126 -
 .../Eigen/src/plugins/MatrixCwiseUnaryOps.h        |   67 -
 vendor/{eigen-3.1.91 => eigen-3.2.8}/Eigen/Array   |    0
 .../Eigen/CMakeLists.txt                           |    0
 .../{eigen-3.1.91 => eigen-3.2.8}/Eigen/Cholesky   |    0
 vendor/eigen-3.2.8/Eigen/CholmodSupport            |   45 +
 vendor/eigen-3.2.8/Eigen/Core                      |  376 ++
 vendor/{eigen-3.1.91 => eigen-3.2.8}/Eigen/Dense   |    0
 vendor/{eigen-3.1.91 => eigen-3.2.8}/Eigen/Eigen   |    0
 vendor/eigen-3.2.8/Eigen/Eigen2Support             |   95 +
 .../Eigen/Eigenvalues                              |    0
 .../{eigen-3.1.91 => eigen-3.2.8}/Eigen/Geometry   |    0
 .../Eigen/Householder                              |    0
 .../Eigen/IterativeLinearSolvers                   |    0
 vendor/{eigen-3.1.91 => eigen-3.2.8}/Eigen/Jacobi  |    0
 vendor/{eigen-3.1.91 => eigen-3.2.8}/Eigen/LU      |    0
 .../Eigen/LeastSquares                             |    0
 .../Eigen/MetisSupport                             |    0
 .../Eigen/OrderingMethods                          |    0
 .../Eigen/PaStiXSupport                            |    0
 .../Eigen/PardisoSupport                           |    0
 vendor/{eigen-3.1.91 => eigen-3.2.8}/Eigen/QR      |    0
 .../Eigen/QtAlignedMalloc                          |    0
 vendor/eigen-3.2.8/Eigen/SPQRSupport               |   29 +
 vendor/{eigen-3.1.91 => eigen-3.2.8}/Eigen/SVD     |    0
 vendor/eigen-3.2.8/Eigen/Sparse                    |   27 +
 vendor/eigen-3.2.8/Eigen/SparseCholesky            |   47 +
 vendor/eigen-3.2.8/Eigen/SparseCore                |   64 +
 vendor/eigen-3.2.8/Eigen/SparseLU                  |   49 +
 vendor/eigen-3.2.8/Eigen/SparseQR                  |   33 +
 .../{eigen-3.1.91 => eigen-3.2.8}/Eigen/StdDeque   |    0
 vendor/{eigen-3.1.91 => eigen-3.2.8}/Eigen/StdList |    0
 .../{eigen-3.1.91 => eigen-3.2.8}/Eigen/StdVector  |    0
 .../Eigen/SuperLUSupport                           |    0
 vendor/eigen-3.2.8/Eigen/UmfPackSupport            |   36 +
 .../Eigen/src/CMakeLists.txt                       |    0
 .../Eigen/src/Cholesky/CMakeLists.txt              |    0
 vendor/eigen-3.2.8/Eigen/src/Cholesky/LDLT.h       |  611 ++
 vendor/eigen-3.2.8/Eigen/src/Cholesky/LLT.h        |  498 ++
 vendor/eigen-3.2.8/Eigen/src/Cholesky/LLT_MKL.h    |  102 +
 .../Eigen/src/CholmodSupport/CMakeLists.txt        |    0
 .../Eigen/src/CholmodSupport/CholmodSupport.h      |  607 ++
 vendor/eigen-3.2.8/Eigen/src/Core/Array.h          |  323 +
 vendor/eigen-3.2.8/Eigen/src/Core/ArrayBase.h      |  226 +
 vendor/eigen-3.2.8/Eigen/src/Core/ArrayWrapper.h   |  264 +
 vendor/eigen-3.2.8/Eigen/src/Core/Assign.h         |  590 ++
 .../Eigen/src/Core/Assign_MKL.h                    |    0
 .../Eigen/src/Core/BandMatrix.h                    |    0
 vendor/eigen-3.2.8/Eigen/src/Core/Block.h          |  406 ++
 vendor/eigen-3.2.8/Eigen/src/Core/BooleanRedux.h   |  154 +
 .../Eigen/src/Core/CMakeLists.txt                  |    0
 .../eigen-3.2.8/Eigen/src/Core/CommaInitializer.h  |  154 +
 .../Eigen/src/Core/CoreIterators.h                 |    0
 vendor/eigen-3.2.8/Eigen/src/Core/CwiseBinaryOp.h  |  230 +
 .../Eigen/src/Core/CwiseNullaryOp.h                |    0
 vendor/eigen-3.2.8/Eigen/src/Core/CwiseUnaryOp.h   |  126 +
 vendor/eigen-3.2.8/Eigen/src/Core/CwiseUnaryView.h |  139 +
 vendor/eigen-3.2.8/Eigen/src/Core/DenseBase.h      |  521 ++
 .../Eigen/src/Core/DenseCoeffsBase.h               |    0
 vendor/eigen-3.2.8/Eigen/src/Core/DenseStorage.h   |  434 ++
 vendor/eigen-3.2.8/Eigen/src/Core/Diagonal.h       |  237 +
 .../Eigen/src/Core/DiagonalMatrix.h                |    0
 .../eigen-3.2.8/Eigen/src/Core/DiagonalProduct.h   |  131 +
 vendor/eigen-3.2.8/Eigen/src/Core/Dot.h            |  263 +
 vendor/eigen-3.2.8/Eigen/src/Core/EigenBase.h      |  131 +
 .../Eigen/src/Core/Flagged.h                       |    0
 .../Eigen/src/Core/ForceAlignedAccess.h            |    0
 vendor/eigen-3.2.8/Eigen/src/Core/Functors.h       | 1026 +++
 vendor/eigen-3.2.8/Eigen/src/Core/Fuzzy.h          |  150 +
 vendor/eigen-3.2.8/Eigen/src/Core/GeneralProduct.h |  638 ++
 .../eigen-3.2.8/Eigen/src/Core/GenericPacketMath.h |  350 ++
 .../eigen-3.2.8/Eigen/src/Core/GlobalFunctions.h   |   92 +
 vendor/eigen-3.2.8/Eigen/src/Core/IO.h             |  250 +
 .../Eigen/src/Core/Map.h                           |    0
 vendor/eigen-3.2.8/Eigen/src/Core/MapBase.h        |  251 +
 vendor/eigen-3.2.8/Eigen/src/Core/MathFunctions.h  |  768 +++
 vendor/eigen-3.2.8/Eigen/src/Core/Matrix.h         |  420 ++
 vendor/eigen-3.2.8/Eigen/src/Core/MatrixBase.h     |  563 ++
 .../Eigen/src/Core/NestByValue.h                   |    0
 vendor/eigen-3.2.8/Eigen/src/Core/NoAlias.h        |  134 +
 .../Eigen/src/Core/NumTraits.h                     |    0
 .../eigen-3.2.8/Eigen/src/Core/PermutationMatrix.h |  721 +++
 .../eigen-3.2.8/Eigen/src/Core/PlainObjectBase.h   |  822 +++
 vendor/eigen-3.2.8/Eigen/src/Core/ProductBase.h    |  290 +
 .../Eigen/src/Core/Random.h                        |    0
 vendor/eigen-3.2.8/Eigen/src/Core/Redux.h          |  409 ++
 vendor/eigen-3.2.8/Eigen/src/Core/Ref.h            |  278 +
 vendor/eigen-3.2.8/Eigen/src/Core/Replicate.h      |  177 +
 vendor/eigen-3.2.8/Eigen/src/Core/ReturnByValue.h  |   99 +
 .../Eigen/src/Core/Reverse.h                       |    0
 .../Eigen/src/Core/Select.h                        |    0
 .../eigen-3.2.8/Eigen/src/Core/SelfAdjointView.h   |  314 +
 .../eigen-3.2.8/Eigen/src/Core/SelfCwiseBinaryOp.h |  191 +
 .../eigen-3.2.8/Eigen/src/Core/SolveTriangular.h   |  260 +
 vendor/eigen-3.2.8/Eigen/src/Core/StableNorm.h     |  203 +
 .../Eigen/src/Core/Stride.h                        |    0
 .../Eigen/src/Core/Swap.h                          |    0
 vendor/eigen-3.2.8/Eigen/src/Core/Transpose.h      |  419 ++
 .../Eigen/src/Core/Transpositions.h                |    0
 .../eigen-3.2.8/Eigen/src/Core/TriangularMatrix.h  |  839 +++
 .../Eigen/src/Core/VectorBlock.h                   |    0
 vendor/eigen-3.2.8/Eigen/src/Core/VectorwiseOp.h   |  642 ++
 vendor/eigen-3.2.8/Eigen/src/Core/Visitor.h        |  240 +
 .../Eigen/src/Core/arch/AltiVec/CMakeLists.txt     |    0
 .../Eigen/src/Core/arch/AltiVec/Complex.h          |    0
 .../Eigen/src/Core/arch/AltiVec/PacketMath.h       |  501 ++
 .../Eigen/src/Core/arch/CMakeLists.txt             |    0
 .../Eigen/src/Core/arch/Default/CMakeLists.txt     |    0
 .../Eigen/src/Core/arch/Default/Settings.h         |    0
 .../Eigen/src/Core/arch/NEON/CMakeLists.txt        |    0
 .../eigen-3.2.8/Eigen/src/Core/arch/NEON/Complex.h |  253 +
 .../Eigen/src/Core/arch/NEON/PacketMath.h          |  420 ++
 .../Eigen/src/Core/arch/SSE/CMakeLists.txt         |    0
 .../eigen-3.2.8/Eigen/src/Core/arch/SSE/Complex.h  |  442 ++
 .../Eigen/src/Core/arch/SSE/MathFunctions.h        |  475 ++
 .../Eigen/src/Core/arch/SSE/PacketMath.h           |  613 ++
 .../Eigen/src/Core/products/CMakeLists.txt         |    0
 .../Eigen/src/Core/products/CoeffBasedProduct.h    |  476 ++
 .../src/Core/products/GeneralBlockPanelKernel.h    | 1341 ++++
 .../Eigen/src/Core/products/GeneralMatrixMatrix.h  |  433 ++
 .../Core/products/GeneralMatrixMatrixTriangular.h  |    0
 .../products/GeneralMatrixMatrixTriangular_MKL.h   |    0
 .../src/Core/products/GeneralMatrixMatrix_MKL.h    |    0
 .../Eigen/src/Core/products/GeneralMatrixVector.h  |  566 ++
 .../src/Core/products/GeneralMatrixVector_MKL.h    |    0
 .../Eigen/src/Core/products/Parallelizer.h         |  162 +
 .../src/Core/products/SelfadjointMatrixMatrix.h    |  436 ++
 .../Core/products/SelfadjointMatrixMatrix_MKL.h    |    0
 .../src/Core/products/SelfadjointMatrixVector.h    |  281 +
 .../Core/products/SelfadjointMatrixVector_MKL.h    |    0
 .../Eigen/src/Core/products/SelfadjointProduct.h   |    0
 .../src/Core/products/SelfadjointRank2Update.h     |   93 +
 .../src/Core/products/TriangularMatrixMatrix.h     |    0
 .../src/Core/products/TriangularMatrixMatrix_MKL.h |  309 +
 .../src/Core/products/TriangularMatrixVector.h     |  348 ++
 .../src/Core/products/TriangularMatrixVector_MKL.h |    0
 .../src/Core/products/TriangularSolverMatrix.h     |  332 +
 .../src/Core/products/TriangularSolverMatrix_MKL.h |    0
 .../src/Core/products/TriangularSolverVector.h     |    0
 vendor/eigen-3.2.8/Eigen/src/Core/util/BlasUtil.h  |  264 +
 .../Eigen/src/Core/util/CMakeLists.txt             |    0
 vendor/eigen-3.2.8/Eigen/src/Core/util/Constants.h |  451 ++
 .../Eigen/src/Core/util/DisableStupidWarnings.h    |    0
 .../Eigen/src/Core/util/ForwardDeclarations.h      |  302 +
 .../eigen-3.2.8/Eigen/src/Core/util/MKL_support.h  |  158 +
 vendor/eigen-3.2.8/Eigen/src/Core/util/Macros.h    |  714 +++
 vendor/eigen-3.2.8/Eigen/src/Core/util/Memory.h    |  979 +++
 .../Eigen/src/Core/util/Meta.h                     |    0
 .../Eigen/src/Core/util/NonMPL2.h                  |    0
 .../Eigen/src/Core/util/ReenableStupidWarnings.h   |    0
 .../eigen-3.2.8/Eigen/src/Core/util/StaticAssert.h |  208 +
 vendor/eigen-3.2.8/Eigen/src/Core/util/XprHelper.h |  469 ++
 .../Eigen/src/Eigen2Support/Block.h                |    0
 .../Eigen/src/Eigen2Support/CMakeLists.txt         |    0
 .../Eigen/src/Eigen2Support/Cwise.h                |    0
 .../Eigen/src/Eigen2Support/CwiseOperators.h       |    0
 .../Eigen/src/Eigen2Support/Geometry/AlignedBox.h  |  159 +
 .../Eigen/src/Eigen2Support/Geometry/All.h         |    0
 .../Eigen/src/Eigen2Support/Geometry/AngleAxis.h   |    0
 .../src/Eigen2Support/Geometry/CMakeLists.txt      |    0
 .../Eigen/src/Eigen2Support/Geometry/Hyperplane.h  |  254 +
 .../src/Eigen2Support/Geometry/ParametrizedLine.h  |  141 +
 .../Eigen/src/Eigen2Support/Geometry/Quaternion.h  |    0
 .../Eigen/src/Eigen2Support/Geometry/Rotation2D.h  |    0
 .../src/Eigen2Support/Geometry/RotationBase.h      |    0
 .../Eigen/src/Eigen2Support/Geometry/Scaling.h     |    0
 .../Eigen/src/Eigen2Support/Geometry/Transform.h   |    0
 .../Eigen/src/Eigen2Support/Geometry/Translation.h |    0
 .../Eigen/src/Eigen2Support/LU.h                   |    0
 .../Eigen/src/Eigen2Support/Lazy.h                 |    0
 .../Eigen/src/Eigen2Support/LeastSquares.h         |  169 +
 .../Eigen/src/Eigen2Support/Macros.h               |    0
 .../Eigen/src/Eigen2Support/MathFunctions.h        |   57 +
 .../Eigen/src/Eigen2Support/Memory.h               |    0
 .../Eigen/src/Eigen2Support/Meta.h                 |    0
 .../Eigen/src/Eigen2Support/Minor.h                |    0
 .../Eigen/src/Eigen2Support/QR.h                   |    0
 vendor/eigen-3.2.8/Eigen/src/Eigen2Support/SVD.h   |  637 ++
 .../Eigen/src/Eigen2Support/TriangularSolver.h     |    0
 .../Eigen/src/Eigen2Support/VectorBlock.h          |    0
 .../Eigen/src/Eigenvalues/CMakeLists.txt           |    0
 .../Eigen/src/Eigenvalues/ComplexEigenSolver.h     |  341 +
 .../Eigen/src/Eigenvalues/ComplexSchur.h           |  456 ++
 .../Eigen/src/Eigenvalues/ComplexSchur_MKL.h       |   93 +
 .../Eigen/src/Eigenvalues/EigenSolver.h            |  607 ++
 .../Eigen/src/Eigenvalues/GeneralizedEigenSolver.h |  350 ++
 .../GeneralizedSelfAdjointEigenSolver.h            |    0
 .../src/Eigenvalues/HessenbergDecomposition.h      |  373 ++
 .../Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h  |    0
 vendor/eigen-3.2.8/Eigen/src/Eigenvalues/RealQZ.h  |  624 ++
 .../eigen-3.2.8/Eigen/src/Eigenvalues/RealSchur.h  |  525 ++
 .../Eigen/src/Eigenvalues/RealSchur_MKL.h          |   79 +
 .../Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h |  801 +++
 .../src/Eigenvalues/SelfAdjointEigenSolver_MKL.h   |   92 +
 .../Eigen/src/Eigenvalues/Tridiagonalization.h     |  557 ++
 vendor/eigen-3.2.8/Eigen/src/Geometry/AlignedBox.h |  392 ++
 vendor/eigen-3.2.8/Eigen/src/Geometry/AngleAxis.h  |  240 +
 .../Eigen/src/Geometry/CMakeLists.txt              |    0
 .../eigen-3.2.8/Eigen/src/Geometry/EulerAngles.h   |  104 +
 .../eigen-3.2.8/Eigen/src/Geometry/Homogeneous.h   |  307 +
 vendor/eigen-3.2.8/Eigen/src/Geometry/Hyperplane.h |  280 +
 .../eigen-3.2.8/Eigen/src/Geometry/OrthoMethods.h  |  218 +
 .../Eigen/src/Geometry/ParametrizedLine.h          |  195 +
 vendor/eigen-3.2.8/Eigen/src/Geometry/Quaternion.h |  776 +++
 vendor/eigen-3.2.8/Eigen/src/Geometry/Rotation2D.h |  160 +
 .../Eigen/src/Geometry/RotationBase.h              |    0
 .../Eigen/src/Geometry/Scaling.h                   |    0
 vendor/eigen-3.2.8/Eigen/src/Geometry/Transform.h  | 1474 +++++
 .../eigen-3.2.8/Eigen/src/Geometry/Translation.h   |  206 +
 vendor/eigen-3.2.8/Eigen/src/Geometry/Umeyama.h    |  177 +
 .../Eigen/src/Geometry/arch/CMakeLists.txt         |    0
 .../Eigen/src/Geometry/arch/Geometry_SSE.h         |    0
 .../Eigen/src/Householder/BlockHouseholder.h       |   68 +
 .../Eigen/src/Householder/CMakeLists.txt           |    0
 .../Eigen/src/Householder/Householder.h            |  171 +
 .../Eigen/src/Householder/HouseholderSequence.h    |  441 ++
 .../IterativeLinearSolvers/BasicPreconditioners.h  |  149 +
 .../Eigen/src/IterativeLinearSolvers/BiCGSTAB.h    |  263 +
 .../src/IterativeLinearSolvers/CMakeLists.txt      |    0
 .../src/IterativeLinearSolvers/ConjugateGradient.h |  258 +
 .../src/IterativeLinearSolvers/IncompleteLUT.h     |  478 ++
 .../IterativeLinearSolvers/IterativeSolverBase.h   |  282 +
 .../Eigen/src/Jacobi/CMakeLists.txt                |    0
 vendor/eigen-3.2.8/Eigen/src/Jacobi/Jacobi.h       |  433 ++
 .../Eigen/src/LU/CMakeLists.txt                    |    0
 .../Eigen/src/LU/Determinant.h                     |    0
 vendor/eigen-3.2.8/Eigen/src/LU/FullPivLU.h        |  751 +++
 vendor/eigen-3.2.8/Eigen/src/LU/Inverse.h          |  400 ++
 vendor/eigen-3.2.8/Eigen/src/LU/PartialPivLU.h     |  509 ++
 .../Eigen/src/LU/PartialPivLU_MKL.h                |    0
 .../Eigen/src/LU/arch/CMakeLists.txt               |    0
 .../Eigen/src/LU/arch/Inverse_SSE.h                |    0
 .../Eigen/src/MetisSupport/CMakeLists.txt          |    0
 .../Eigen/src/MetisSupport/MetisSupport.h          |  137 +
 vendor/eigen-3.2.8/Eigen/src/OrderingMethods/Amd.h |  444 ++
 .../Eigen/src/OrderingMethods/CMakeLists.txt       |    0
 .../Eigen/src/OrderingMethods/Eigen_Colamd.h       | 1843 ++++++
 .../Eigen/src/OrderingMethods/Ordering.h           |  154 +
 .../Eigen/src/PaStiXSupport/CMakeLists.txt         |    0
 .../Eigen/src/PaStiXSupport/PaStiXSupport.h        |    0
 .../Eigen/src/PardisoSupport/CMakeLists.txt        |    0
 .../Eigen/src/PardisoSupport/PardisoSupport.h      |  592 ++
 .../Eigen/src/QR/CMakeLists.txt                    |    0
 .../eigen-3.2.8/Eigen/src/QR/ColPivHouseholderQR.h |  580 ++
 .../Eigen/src/QR/ColPivHouseholderQR_MKL.h         |   98 +
 .../Eigen/src/QR/FullPivHouseholderQR.h            |  622 ++
 vendor/eigen-3.2.8/Eigen/src/QR/HouseholderQR.h    |  388 ++
 .../eigen-3.2.8/Eigen/src/QR/HouseholderQR_MKL.h   |   71 +
 .../Eigen/src/SPQRSupport/CMakeLists.txt           |    0
 .../Eigen/src/SPQRSupport/SuiteSparseQRSupport.h   |  338 +
 .../Eigen/src/SVD/CMakeLists.txt                   |    0
 vendor/eigen-3.2.8/Eigen/src/SVD/JacobiSVD.h       |  976 +++
 vendor/eigen-3.2.8/Eigen/src/SVD/JacobiSVD_MKL.h   |   92 +
 .../Eigen/src/SVD/UpperBidiagonalization.h         |  148 +
 .../Eigen/src/SparseCholesky/CMakeLists.txt        |    0
 .../Eigen/src/SparseCholesky/SimplicialCholesky.h  |  671 ++
 .../src/SparseCholesky/SimplicialCholesky_impl.h   |  199 +
 .../eigen-3.2.8/Eigen/src/SparseCore/AmbiVector.h  |  373 ++
 .../Eigen/src/SparseCore/CMakeLists.txt            |    0
 .../Eigen/src/SparseCore/CompressedStorage.h       |  233 +
 .../SparseCore/ConservativeSparseSparseProduct.h   |  245 +
 .../Eigen/src/SparseCore/MappedSparseMatrix.h      |  181 +
 .../eigen-3.2.8/Eigen/src/SparseCore/SparseBlock.h |  539 ++
 .../Eigen/src/SparseCore/SparseColEtree.h          |  206 +
 .../Eigen/src/SparseCore/SparseCwiseBinaryOp.h     |  324 +
 .../Eigen/src/SparseCore/SparseCwiseUnaryOp.h      |    0
 .../Eigen/src/SparseCore/SparseDenseProduct.h      |  311 +
 .../Eigen/src/SparseCore/SparseDiagonalProduct.h   |  196 +
 .../eigen-3.2.8/Eigen/src/SparseCore/SparseDot.h   |  101 +
 .../Eigen/src/SparseCore/SparseFuzzy.h             |    0
 .../Eigen/src/SparseCore/SparseMatrix.h            | 1262 ++++
 .../Eigen/src/SparseCore/SparseMatrixBase.h        |  461 ++
 .../Eigen/src/SparseCore/SparsePermutation.h       |  148 +
 .../Eigen/src/SparseCore/SparseProduct.h           |  188 +
 .../Eigen/src/SparseCore/SparseRedux.h             |    0
 .../Eigen/src/SparseCore/SparseSelfAdjointView.h   |  507 ++
 .../SparseCore/SparseSparseProductWithPruning.h    |  150 +
 .../Eigen/src/SparseCore/SparseTranspose.h         |   63 +
 .../Eigen/src/SparseCore/SparseTriangularView.h    |  179 +
 .../eigen-3.2.8/Eigen/src/SparseCore/SparseUtil.h  |  172 +
 .../Eigen/src/SparseCore/SparseVector.h            |  448 ++
 .../eigen-3.2.8/Eigen/src/SparseCore/SparseView.h  |   99 +
 .../Eigen/src/SparseCore/TriangularSolver.h        |  334 +
 .../Eigen/src/SparseLU/CMakeLists.txt              |    0
 vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU.h   |  806 +++
 .../eigen-3.2.8/Eigen/src/SparseLU/SparseLUImpl.h  |   66 +
 .../Eigen/src/SparseLU/SparseLU_Memory.h           |  227 +
 .../Eigen/src/SparseLU/SparseLU_Structs.h          |    0
 .../Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h |  298 +
 .../Eigen/src/SparseLU/SparseLU_Utils.h            |    0
 .../Eigen/src/SparseLU/SparseLU_column_bmod.h      |  180 +
 .../Eigen/src/SparseLU/SparseLU_column_dfs.h       |  177 +
 .../Eigen/src/SparseLU/SparseLU_copy_to_ucol.h     |    0
 .../Eigen/src/SparseLU/SparseLU_gemm_kernel.h      |    0
 .../Eigen/src/SparseLU/SparseLU_heap_relax_snode.h |    0
 .../Eigen/src/SparseLU/SparseLU_kernel_bmod.h      |  130 +
 .../Eigen/src/SparseLU/SparseLU_panel_bmod.h       |  223 +
 .../Eigen/src/SparseLU/SparseLU_panel_dfs.h        |    0
 .../Eigen/src/SparseLU/SparseLU_pivotL.h           |  137 +
 .../Eigen/src/SparseLU/SparseLU_pruneL.h           |  135 +
 .../Eigen/src/SparseLU/SparseLU_relax_snode.h      |    0
 .../Eigen/src/SparseQR/CMakeLists.txt              |    0
 vendor/eigen-3.2.8/Eigen/src/SparseQR/SparseQR.h   |  714 +++
 .../Eigen/src/StlSupport/CMakeLists.txt            |    0
 vendor/eigen-3.2.8/Eigen/src/StlSupport/StdDeque.h |  126 +
 vendor/eigen-3.2.8/Eigen/src/StlSupport/StdList.h  |  106 +
 .../eigen-3.2.8/Eigen/src/StlSupport/StdVector.h   |  126 +
 .../Eigen/src/StlSupport/details.h                 |    0
 .../Eigen/src/SuperLUSupport/CMakeLists.txt        |    0
 .../Eigen/src/SuperLUSupport/SuperLUSupport.h      | 1026 +++
 .../Eigen/src/UmfPackSupport/CMakeLists.txt        |    0
 .../Eigen/src/UmfPackSupport/UmfPackSupport.h      |  474 ++
 .../Eigen/src/misc/CMakeLists.txt                  |    0
 .../Eigen/src/misc/Image.h                         |    0
 .../Eigen/src/misc/Kernel.h                        |    0
 .../Eigen/src/misc/Solve.h                         |    0
 .../Eigen/src/misc/SparseSolve.h                   |    0
 .../Eigen/src/misc/blas.h                          |    0
 .../Eigen/src/plugins/ArrayCwiseBinaryOps.h        |  253 +
 .../Eigen/src/plugins/ArrayCwiseUnaryOps.h         |  187 +
 .../eigen-3.2.8/Eigen/src/plugins/BlockMethods.h   |  935 +++
 .../Eigen/src/plugins/CMakeLists.txt               |    0
 .../Eigen/src/plugins/CommonCwiseBinaryOps.h       |    0
 .../Eigen/src/plugins/CommonCwiseUnaryOps.h        |    0
 .../Eigen/src/plugins/MatrixCwiseBinaryOps.h       |  143 +
 .../Eigen/src/plugins/MatrixCwiseUnaryOps.h        |   52 +
 vendor/jsoncpp-1.6.2/dist/CMakeLists.txt           |   26 +
 .../dist/json/{json-forwards.h => forwards.h}      |    0
 vendor/rply-1.1.4/rply.h                           |    2 +-
 1253 files changed, 116287 insertions(+), 76972 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 5c071f1..d116c0b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -22,6 +22,10 @@ before_install: ./scripts/ci/before_install.sh
 script:
     docker run -v $TRAVIS_BUILD_DIR:/pdal -e CXX="$CXX" -e CC="$CC" -e PDAL_OPTIONAL_COMPONENTS="$PDAL_OPTIONAL_COMPONENTS" -t pdal/dependencies:latest /bin/sh -c "/pdal/scripts/ci/script.sh"
 
+after_success:
+  - echo "secure travis:" "$TRAVIS_SECURE_ENV_VARS"
+  - sh -c 'if test "$TRAVIS_SECURE_ENV_VARS" = "true" -a "$TRAVIS_BRANCH" = "1.3-maintenance" -a "$PDAL_OPTIONAL_COMPONENTS" = "all"; then echo "publish website"; ./scripts/ci/build_docs.sh; ./scripts/ci/add_deploy_key.sh; ./scripts/ci/deploy_website.sh $TRAVIS_BUILD_DIR/doc/build /tmp; fi'
+
 notifications:
   on_success: always
   on_failure: always
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c206d08..2b9cad8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,14 +28,14 @@ mark_as_advanced(CMAKE_VERBOSE_MAKEFILE)
 
 # the next line is the ONLY place in the entire pdal system where
 # the version info is hard-coded
-set(PDAL_VERSION_STRING "1.2.0" CACHE STRING "PDAL version" FORCE)
+set(PDAL_VERSION_STRING "1.3.0" CACHE STRING "PDAL version" FORCE)
 
 DISSECT_VERSION()
 GET_OS_INFO()
 SET_INSTALL_DIRS()
 
-set(PDAL_API_VERSION "2")
-set(PDAL_BUILD_VERSION "3.0.0")
+set(PDAL_API_VERSION "3")
+set(PDAL_BUILD_VERSION "4.0.0")
 
 # Name of C++ library
 
@@ -58,6 +58,7 @@ endif()
 set(PDAL_UTIL_LIB_NAME pdal_util)
 set(PDAL_PLANG_LIB_NAME pdal_plang)
 set(PDAL_BOOST_LIB_NAME pdal_boost)
+set(PDAL_ARBITER_LIB_NAME pdal_arbiter)
 
 set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)
 
@@ -67,24 +68,12 @@ set(PDAL_PLUGIN_INSTALL_PATH "${CMAKE_INSTALL_PREFIX}/${PDAL_LIB_INSTALL_DIR}")
 file(MAKE_DIRECTORY "${PDAL_OUTPUT_LIB_DIR}")
 file(MAKE_DIRECTORY "${PDAL_OUTPUT_BIN_DIR}")
 
-# per http://www.cmake.org/Wiki/CMake_RPATH_handling
-SET(CMAKE_SKIP_BUILD_RPATH FALSE )
-SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
-if (APPLE)
-    SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
-endif()
-SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
-IF (APPLE)
-    SET(MACOSX_RPATH ON)
-endif()
-LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${PDAL_LIB_INSTALL_DIR}" isSystemDir)
-IF("${isSystemDir}" STREQUAL "-1")
-    SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${PDAL_LIB_INSTALL_DIR}")
-ENDIF("${isSystemDir}" STREQUAL "-1")
+include(${PDAL_CMAKE_DIR}/rpath.cmake)
 
 # wipe lib/ drectory on clean. It will have plugins that could be out of date
 # in the next build
-set_directory_properties(PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${PDAL_OUTPUT_LIB_DIR}/*")
+set_directory_properties(PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
+    "${PDAL_OUTPUT_LIB_DIR}/*")
 
 if(WIN32)
   add_definitions("-DPDAL_DLL_EXPORT=1")
@@ -92,7 +81,8 @@ if(WIN32)
     string(TOUPPER ${config} CONFIG)
     set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONFIG} "${PDAL_OUTPUT_LIB_DIR}")
     set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONFIG} "${PDAL_OUTPUT_BIN_DIR}")
-    # ---[ Windows requires DLLs (shared libraries) to be installed in the same directory as executables
+    # ---[ Windows requires DLLs (shared libraries) to be installed in
+    # ---[ the same directory as executables
     set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONFIG} "${PDAL_OUTPUT_BIN_DIR}")
   endforeach(config)
 else(WIN32)
@@ -103,106 +93,9 @@ endif(WIN32)
 
 set(PDAL_HEADERS_DIR "${PROJECT_SOURCE_DIR}/include/pdal")
 
-#------------------------------------------------------------------------------
-# misc user options
-#------------------------------------------------------------------------------
-if(DEFINED ENV{ORACLE_HOME})
-    set(DEFINED_ORACLE_HOME TRUE)
-else(DEFINED ENV{ORACLE_HOME})
-    set(DEFINED_ORACLE_HOME FALSE)
-endif(DEFINED ENV{ORACLE_HOME})
-
 # Choose package components
-option(WITH_APPS "Choose if PDAL utilities should be built" TRUE)
-add_feature_info("PDAL application" WITH_APPS
-    "the PDAL command line application")
-
-option(WITH_COMPLETION "Install bash completions scripts for command line?" FALSE)
-add_feature_info("Bash completion" WITH_COMPLETION
-    "completion for PDAL command line")
-
-option(BUILD_PLUGIN_CPD "Choose if Coherent Point Drift kernel is built" FALSE)
-add_feature_info("CPD plugin" BUILD_PLUGIN_CPD
-    "run Coherent Point Drift on two datasets")
-
-option(BUILD_PLUGIN_GEOWAVE "Choose if GeoWave support should be built" FALSE)
-add_feature_info("GeoWave plugin" BUILD_PLUGIN_GEOWAVE
-    "Read and Write data using GeoWave")
-
-option(BUILD_PLUGIN_GREYHOUND "Choose if Greyhound support should be built" FALSE)
-add_feature_info("Greyhound plugin" BUILD_PLUGIN_GREYHOUND
-    "read points from a Greyhound server")
-
-option(BUILD_PLUGIN_HEXBIN "Whether or not HexBin filter is built" FALSE)
-add_feature_info("Hexbin plugin" BUILD_PLUGIN_HEXBIN
-    "determine boundary and density of a point cloud")
-
-option(BUILD_PLUGIN_ICEBRIDGE "Choose if Icebridge support should be built" FALSE)
-add_feature_info("Icebridge plugin" BUILD_PLUGIN_ICEBRIDGE
-    "read data in the Icebridge format")
-
-option(BUILD_PLUGIN_MATLAB "Choose if Matlab support should be built" FALSE)
-add_feature_info("Matlab plugin" BUILD_PLUGIN_MATLAB
-    "write data to a .mat file")
-
-option(BUILD_PLUGIN_MRSID "Choose if MrSID/LiDAR support should be built" FALSE)
-add_feature_info("MrSID plugin" BUILD_PLUGIN_MRSID
-    "read data in the MrSID format")
-
-option(BUILD_PLUGIN_NITF "Choose if NITF support should be built (only install supported is from http://github.com/hobu/nitro)" FALSE)
-add_feature_info("NITF plugin" BUILD_PLUGIN_NITF
-    "read/write LAS data wrapped in NITF")
-
-option(BUILD_PLUGIN_OCI "Choose if OCI support should be built" ${DEFINED_ORACLE_HOME})
-option(BUILD_PLUGIN_P2G "Choose if Points2Grid support should be built" FALSE)
-option(BUILD_PLUGIN_PCL "Choose if PCL support should be built" FALSE)
-add_feature_info("PCL plugin" BUILD_PLUGIN_PCL
-    "provides PCL-based readers, writers, filters, and kernels")
-
-find_package(PostgreSQL QUIET)
-option(BUILD_PLUGIN_PGPOINTCLOUD "Choose if PostgreSQL PointCloud support should be built" ${POSTGRESQL_FOUND})
-add_feature_info("PostgreSQL PointCloud plugin" BUILD_PLUGIN_PGPOINTCLOUD
-    "read/write PostgreSQL PointCloud objects")
-
-option(BUILD_PLUGIN_SQLITE "Choose if SQLite database support should be built" FALSE)
-add_feature_info("SQLite plugin" BUILD_PLUGIN_SQLITE
-    "read/write SQLite objects")
-
-option(BUILD_PLUGIN_RIVLIB "Choose if RiVLib support should be built" FALSE)
-add_feature_info("RiVLib plugin" BUILD_PLUGIN_RIVLIB
-    "read data in the RXP format")
-
-option(BUILD_PLUGIN_PYTHON "Choose if Python support should be built" FALSE)
-add_feature_info("Python plugin" BUILD_PLUGIN_PYTHON
-    "add features that depend on python")
-
-option(WITH_TESTS "Choose if PDAL unit tests should be built" TRUE)
-add_feature_info("Unit tests" WITH_TESTS "PDAL unit tests")
-
-# Choose dependent options
 
-include(CMakeDependentOption)
-
-cmake_dependent_option(BUILD_PGPOINTCLOUD_TESTS "Choose if PostgreSQL PointCloud tests should be built" ON "BUILD_PLUGIN_PGPOINTCLOUD; WITH_TESTS" OFF)
-cmake_dependent_option(BUILD_SQLITE_TESTS "Choose if SQLite tests should be built" ON "BUILD_PLUGIN_SQLITE; WITH_TESTS" OFF)
-cmake_dependent_option(BUILD_OCI_TESTS "Choose if OCI tests should be built" ON "BUILD_PLUGIN_OCI; WITH_TESTS" OFF)
-cmake_dependent_option(BUILD_RIVLIB_TESTS "Choose if RiVLib tests should be built" ON "BUILD_PLUGIN_RIVLIB; WITH_TESTS" OFF)
-cmake_dependent_option(BUILD_PIPELINE_TESTS "Choose if pipeline tests should be built" OFF "WITH_APPS; WITH_TESTS" OFF)
-
-if(BUILD_PLUGIN_PGPOINTCLOUD OR BUILD_PLUGIN_OCI OR BUILD_PLUGIN_SQLITE)
-    include(${PDAL_CMAKE_DIR}/libxml2.cmake)
-endif()
-
-#------------------------------------------------------------------------------
-# test harness settings
-#------------------------------------------------------------------------------
-
-# Name of test suite runner
-set(PDAL_UNIT_TEST pdal_test)
-
-# Enable CTest and submissions to PDAL dashboard at CDash
-# http://my.cdash.org/index.php?project=PDAL
-option(ENABLE_CTEST "Enable CTest to support submissions of results to CDash at http://cdash.org" FALSE)
+include(${PDAL_CMAKE_DIR}/options.cmake)
 
 #------------------------------------------------------------------------------
 # General build settings
@@ -216,13 +109,19 @@ set(PDAL_BUILD_TYPE ${CMAKE_BUILD_TYPE})
 
 include(${PDAL_CMAKE_DIR}/gdal.cmake)
 include(${PDAL_CMAKE_DIR}/geos.cmake)
-include(${PDAL_CMAKE_DIR}/geotiff.cmake)  # Optional
+include(${PDAL_CMAKE_DIR}/geotiff.cmake)  # Optional (not really)
 include(${PDAL_CMAKE_DIR}/lazperf.cmake)  # Optional
 include(${PDAL_CMAKE_DIR}/laszip.cmake)  # Optional
 include(${PDAL_CMAKE_DIR}/threads.cmake)
 include(${PDAL_CMAKE_DIR}/zlib.cmake)
 include(${PDAL_CMAKE_DIR}/test.cmake)
 include(${PDAL_CMAKE_DIR}/ctest.cmake)
+include(${PDAL_CMAKE_DIR}/curl.cmake)
+include(${PDAL_CMAKE_DIR}/json.cmake)
+if (BUILD_PLUGIN_PGPOINTCLOUD OR BUILD_PLUGIN_OCI OR BUILD_PLUGIN_SQLITE)
+    include(${PDAL_CMAKE_DIR}/libxml2.cmake)
+endif()
+include(${PDAL_CMAKE_DIR}/dimension.cmake)
 
 #------------------------------------------------------------------------------
 # generate the pdal_defines.h header
@@ -250,10 +149,12 @@ configure_file(${pdal_defines_h_in} ${pdal_defines_h})
 PDAL_ADD_INCLUDES("" "" ${pdal_defines_h})
 include_directories("${CMAKE_CURRENT_BINARY_DIR}/include")
 
-include_directories(vendor/eigen-3.1.91)
-include_directories(vendor/jsoncpp-1.6.2/dist)
-include_directories(vendor/nanoflann-1.1.8)
-include_directories(vendor/rply-1.1.4)
+include_directories(${PDAL_VENDOR_DIR}/arbiter)
+include_directories(${PDAL_VENDOR_DIR}/eigen-3.2.8)
+include_directories(${PDAL_JSONCPP_INCLUDE_DIR})
+
+include_directories(${PDAL_VENDOR_DIR}/nanoflann-1.1.8)
+include_directories(${PDAL_VENDOR_DIR}/rply-1.1.4)
 
 #------------------------------------------------------------------------------
 # subdirectory controls
@@ -265,20 +166,20 @@ set(PDAL_TARGET_OBJECTS "")
 if (WITH_TESTS)
     enable_testing()
 endif()
+
 add_subdirectory(plugins)
 
 include_directories(vendor/pdalboost)
-
 if (WITH_TESTS)
-    if (MSVC)
-        # Since tests link CRT dynamically (/MD[d]), require gtest to link dynamically too (default is /MT[d])
-        option(gtest_force_shared_crt "Always use shared Visual C++ run-time DLL" ON)
-    endif()
-    add_subdirectory(vendor/gtest-1.7.0)
+    include (${PDAL_CMAKE_DIR}/gtest.cmake)
     add_subdirectory(test)
 endif()
-
+add_subdirectory(dimbuilder)
 add_subdirectory(vendor/pdalboost)
+add_subdirectory(vendor/arbiter)
+if (NOT PDAL_HAVE_JSONCPP)
+    add_subdirectory(vendor/jsoncpp-1.6.2/dist)
+endif()
 add_subdirectory(src/util)
 add_subdirectory(io)
 add_subdirectory(filters)
@@ -286,60 +187,19 @@ add_subdirectory(kernels)
 add_subdirectory(src)
 add_subdirectory(tools)
 if (BUILD_PLUGIN_PYTHON)
+    set(PYTHON_VERSION_STRING "something" CACHE STRING "Python version" FORCE)
     add_subdirectory(src/plang)
 endif()
-
 if (WITH_APPS)
     add_subdirectory(apps)
 endif()
 
-#------------------------------------------------------------------------------
-# CPACK controls
-#------------------------------------------------------------------------------
-
-SET(CPACK_PACKAGE_VERSION_MAJOR ${PDAL_VERSION_MAJOR})
-SET(CPACK_PACKAGE_VERSION_MINOR ${PDAL_VERSION_MINOR})
-SET(CPACK_PACKAGE_VERSION_PATCH ${PDAL_VERSION_MINOR})
-SET(CPACK_PACKAGE_NAME "PDAL")
-
-SET(CPACK_SOURCE_GENERATOR "TBZ2;TGZ")
-SET(CPACK_PACKAGE_VENDOR "PDAL Development Team")
-SET(CPACK_RESOURCE_FILE_LICENSE    "${PROJECT_SOURCE_DIR}/LICENSE.txt")
-
-set(CPACK_SOURCE_PACKAGE_FILE_NAME
-    "${CMAKE_PROJECT_NAME}-${PDAL_VERSION_STRING}-src")
-
-set(CPACK_SOURCE_IGNORE_FILES
-"/\\\\.gitattributes;/\\\\.vagrant;/\\\\.DS_Store;/CVS/;/\\\\.git/;\\\\.swp$;~$;\\\\.\\\\#;/\\\\#")
-
-list(APPEND CPACK_SOURCE_IGNORE_FILES "CMakeScripts/")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "CMakeCache.txt")
-list(APPEND CPACK_SOURCE_IGNORE_FILES ".xcodeproj")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "build.make")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "_CPack_Packages")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "cmake_install.cmake")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "Testing")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "PDAL.build/")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "/bin/")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "/lib/")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "/build/")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "Makefile")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "CMakeFiles")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "CTestTestfile.cmake")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "/test/data/local/")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "/doc/doxygen/")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "/doc/build/")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "/doc/presentations/")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "/doc/_static/logo/dongle/")
-list(APPEND CPACK_SOURCE_IGNORE_FILES "/cmake/examples/")
-
-include(CPack)
+include (${PDAL_CMAKE_DIR}/cpack.cmake)
 
 add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
 
 export(TARGETS ${PDAL_BASE_LIB_NAME}
     ${PDAL_UTIL_LIB_NAME}
-    ${PDAL_BOOST_LIB_NAME}
     FILE "${PDAL_BINARY_DIR}/PDALTargets.cmake")
 install(EXPORT PDALTargets DESTINATION "${PDAL_LIB_INSTALL_DIR}/pdal/cmake")
 include(${PDAL_CMAKE_DIR}/config.cmake)
diff --git a/ChangeLog b/ChangeLog
index 044451d..b42ea75 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,726 @@
+2016-03-31
+	* Howard Butler <howard at hobu.co> tindex kernel needs to registerDrivers (09:33:56)
+
+2016-03-30
+	* Andrew Bell <andrew.bell.ia at gmail.com> Change GDAL error handling to global. (09:04:36)
+
+2016-03-29
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add library dependency as well as symbol export for libpdal_util library   with respect to libpdalcpp library. Close #1202 (10:11:04)
+
+2016-03-28
+	* Howard Butler <howard at hobu.co> Merge branch 'geoserror' (23:20:34)
+	* Howard Butler <howard at hobu.co> turn on CPD in my example config (23:20:25)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add PDAL_DLL to register/unregisterDrivers(). (16:52:42)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add header. (16:00:49)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add header. (15:58:47)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' into geoserror (15:45:52)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Rest of previous commit. (15:45:19)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Remove GlobalEnvironment. Simplify GEOS error handling. (15:43:40)
+	* Howard Butler <howard at hobu.co> Merge pull request #1200 from rakuco/wait-macros-header (11:37:02)
+	* Howard Butler <howard at hobu.co> Merge pull request #1199 from rakuco/portable_endian-bsd-names (11:36:45)
+	* Howard Butler <howard at hobu.co> Merge branch 'master' of github.com:PDAL/PDAL (11:04:48)
+	* Howard Butler <howard at hobu.co> Fix #1201 -- info on pipeline segfault (11:04:41)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Fix typos. (08:37:11)
+	* Raphael Kubo da Costa <rakuco at FreeBSD.org> utils: Include sys/wait.h for the WIFEXITED and WEXITSTATUS macros. (08:07:22)
+	* Raphael Kubo da Costa <rakuco at FreeBSD.org> portable_endian: Remove wrong byte-order macro definitions for the BSDs. (07:55:29)
+
+2016-03-26
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (09:36:32)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Update release notes. (09:36:11)
+
+2016-03-25
+	* chambbj <brad.chambers at gmail.com> Update readers.geowave.rst (23:42:37)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge changes to GDAL error handling. (14:54:28)
+	* Connor Manning <connor at hobu.co> Add lock for StageFactory::destroyStage. (12:24:39)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1196 from rakuco/nanoflann-malloc (11:51:23)
+	* Raphael Kubo da Costa <rakuco at FreeBSD.org> nanoflann: Include <cstdlib> for ::malloc(). (11:48:33)
+	* Howard Butler <howard at hobu.co> both WKT and GeoTIFF VLRs is now a debug message instead of Error (11:33:12)
+	* Howard Butler <howard at hobu.co> no more dolls (dammit). note aboute JSON being preferred over XML (09:39:25)
+	* Howard Butler <howard at hobu.co> better handle Multi* geometry in Polygon::bounds() computation (09:30:25)
+	* Howard Butler <howard at hobu.co> Merge branch 'master' of github.com:PDAL/PDAL (09:06:06)
+	* Howard Butler <howard at hobu.co> codger up a UTM-based density computation if the SRS is geographic (09:06:01)
+	* Howard Butler <howard at hobu.co> use GEOS' envelope for computing Polygon::bounds (09:05:31)
+
+2016-03-24
+	* Howard Butler <howard at hobu.co> Merge pull request #1195 from rakuco/cmake-dl (18:43:00)
+	* Raphael Kubo da Costa <rakuco at FreeBSD.org> Link against ${CMAKE_DL_LIBS} instead of libdl. (18:21:04)
+	* Howard Butler <howard at hobu.co> typo (13:19:36)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (13:03:32)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Fix typo. (13:03:13)
+	* Howard Butler <howard at hobu.co> XML->JSON for all stage documentation (12:18:33)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (10:11:22)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Make sure old error handlers are destroyed before new ones are created. (10:09:43)
+
+2016-03-23
+	* Pete Gadomski <pete.gadomski at gmail.com> Remove cpd/fgt build dirs from pdal/dependencies (21:17:01)
+	* Pete Gadomski <pete.gadomski at gmail.com> s/cpd/csd/ for Optech reader (14:14:23)
+	* Pete Gadomski <pete.gadomski at gmail.com> Shared libs in cpd and fgt docker dependencies (16:25:24)
+	* Howard Butler <howard at hobu.co> add StageFactory to website API docs (16:30:08)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Move doxy to header. (16:26:49)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add a function to allow specific stage destruction. (16:24:00)
+	* Howard Butler <howard at hobu.co> Merge pull request #1193 from gadomski/cpd (13:46:38)
+	* Howard Butler <howard at hobu.co> Merge branch 'master' of github.com:PDAL/PDAL (11:46:12)
+	* Howard Butler <howard at hobu.co> doc updates (11:46:08)
+	* Howard Butler <howard at hobu.co> quit talking about dolls (11:45:58)
+	* Pete Gadomski <pete.gadomski at gmail.com> Update clone-build-install for fgt and cpd (11:24:17)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (10:14:35)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Simplify GDAL error handling. (10:14:04)
+
+2016-03-04
+	* Pete Gadomski <pete.gadomski at gmail.com> Rewrite cpd plugin for v0.3 (17:41:22)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Doc updates. (16:30:34)
+	* Pete Gadomski <pete.gadomski at gmail.com> Add dockerfile for RiVLib (12:56:03)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1175 from PDAL/gcc5-cleanup (16:07:48)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Handle return code from RasterIO. (15:03:00)
+	* Pete Gadomski <pete.gadomski at gmail.com> Include <climits> when using CHAR_BITS (14:10:56)
+	* Pete Gadomski <pete.gadomski at gmail.com> Remove set but unused variables (14:10:32)
+	* Pete Gadomski <pete.gadomski at gmail.com> -Wno-deprecated-declarations (14:09:37)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Remove some dead code and rearrange a little. (13:43:37)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1173 from gadomski/no-geotiff (12:56:47)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (12:21:43)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Handle "json" metadata. Close #1109 (12:20:35)
+	* Howard Butler <howard at hobu.co> boost/version.hpp no longer always available, don't include in pdal_internal.hpp (09:06:12)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Doc updates. (07:50:34)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (07:13:33)
+
+2016-03-22
+	* Howard Butler <howard at hobu.co> increment version to 1.2.0 in preparation for release (16:33:52)
+	* Howard Butler <howard at hobu.co> Merge pull request #1192 from PDAL/gdal-error-split (15:50:23)
+	* Howard Butler <howard at hobu.co> further split GDAL error handler binding from GDAl wake up (13:20:00)
+	* Howard Butler <howard at hobu.co> do the GDAL/GEOS error handler binding stuff right away when GlobalEnvironment wakes up. Don't do the heavy GDAL startup stuff until asked. (11:28:36)
+	* Connor Manning <connor at hobu.co> Simplify a constructor. (10:49:08)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Explicitly set PDAL_PYTHON_LIBRARY in python.cmake Close #1174 (10:02:00)
+	* Howard Butler <howard at hobu.co> Merge pull request #1189 from sebastic/kfreebsd2 (07:59:33)
+
+2016-03-21
+	* chambbj <brad.chambers at gmail.com> Merge pull request #1190 from PDAL/doc-cleanup (22:44:13)
+	* Bradley J Chambers <brad.chambers at gmail.com> fix dartsample references (22:43:34)
+	* Bas Couwenberg <sebastic at xs4all.nl> Add support for kFreeBSD to PluginManager & SQLiteCommon. (16:10:51)
+
+2016-03-20
+	* Howard Butler <howard at hobu.co> Merge pull request #1187 from sebastic/kfreebsd (15:19:02)
+	* Howard Butler <howard at hobu.co> Merge pull request #1186 from sebastic/skip-tests-missing-data (15:18:52)
+	* Howard Butler <howard at hobu.co> Merge pull request #1185 from sebastic/clean-setup (15:18:43)
+	* Howard Butler <howard at hobu.co> Merge pull request #1183 from sebastic/mod-spatialite (15:17:59)
+	* Howard Butler <howard at hobu.co> Merge pull request #1184 from sebastic/jsoncpp (15:17:43)
+	* Bas Couwenberg <sebastic at xs4all.nl> Add support for kFreeBSD architectures. (14:54:10)
+
+2016-03-19
+	* Bas Couwenberg <sebastic at xs4all.nl> Skip Python extension tests when test data is missing. (18:07:31)
+	* Bas Couwenberg <sebastic at xs4all.nl> Reduce requirements for clean target. (17:50:35)
+	* Bas Couwenberg <sebastic at xs4all.nl> Use mod_spatialite for SpatiaLite >= 4.2.0. (15:31:41)
+	* Bas Couwenberg <sebastic at xs4all.nl> Add support for libjsoncpp-dev Debian package to FindJSONCPP.cmake. (13:29:30)
+	* Bas Couwenberg <sebastic at xs4all.nl> Load mod_spatialite.so on Linux too. (13:20:39)
+
+2016-03-18
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1182 from sebastic/hardening (19:47:04)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1181 from sebastic/spelling-errors (19:46:32)
+	* Bas Couwenberg <sebastic at xs4all.nl> Use FLAGS set in the environment. (18:52:43)
+	* Bas Couwenberg <sebastic at xs4all.nl> Fix various spelling errors. (18:46:51)
+
+2016-03-15
+	* Howard Butler <howard at hobu.co> typo (11:34:56)
+
+2016-03-14
+	* Howard Butler <howard at hobu.co> remove debugging lint (15:20:35)
+	* Howard Butler <howard at hobu.co> CPD doesn't build at the moment (07:16:47)
+	* Howard Butler <howard at hobu.co> Merge pull request #1179 from PDAL/density-kernel (00:05:47)
+
+2016-03-13
+	* Howard Butler <howard at hobu.co> add 'pdal density' command to generate OGR hexbin surfaces of point clouds (23:12:48)
+	* Howard Butler <howard at hobu.co> s/XML/JSON (17:47:20)
+	* Howard Butler <howard at hobu.co> slightly improve error message when a plugin doesn't load (17:46:27)
+	* Howard Butler <howard at hobu.co> add density kernel (in the wrong place) (13:50:43)
+
+2016-03-12
+	* Howard Butler <howard at hobu.co> Merge pull request #1178 from mloskot/ml/travis-build-examples (07:12:07)
+	* Mateusz Łoskot <mateusz at loskot.net> Add Gitter webhook (01:53:01)
+
+2016-03-11
+	* Mateusz Łoskot <mateusz at loskot.net> Build examples on Travis CI. (15:57:34)
+	* Howard Butler <howard at hobu.co> tindex option can't be optional (20:15:06)
+	* Howard Butler <howard at hobu.co> toc listing too deep (16:29:31)
+	* Andrew Bell <andrew.bell.ia at gmail.com> More Windows warnings elimination. (14:53:39)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1176 from marops/nitf_updates (12:31:32)
+	* Todd Murphy <murphyrt at leidos.com> Updated defaults for IDATIM and AIMIDB.ACQUISITION_DATE Updated doc (11:57:13)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (10:29:23)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Better feedback on argument order issue. (10:28:43)
+	* Howard Butler <howard at hobu.co> Merge branch 'master' of github.com:PDAL/PDAL (08:56:20)
+	* Howard Butler <howard at hobu.co> update docker image location (08:56:17)
+
+2016-03-10
+	* Andrew Bell <andrew.bell.ia at gmail.com> More Windows clean-up. (14:37:33)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Refine export of symbols from IStream. (14:14:29)
+	* Todd Murphy <murphyrt at leidos.com> Change m_fileTitle defaut to equal the filename.ext not the full pathname (12:59:30)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Export some more symbols. (12:38:56)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Quiet windows compiler. (12:03:05)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Remove getName() from no GEOTIFF branch. (08:35:21)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1177 from PDAL/lasvlr (08:22:42)
+	* Bradley J Chambers <brad.chambers at gmail.com> Add PipelineReaderJSON (06:28:07)
+
+2016-03-09
+	* Andrew Bell <andrew.bell.ia at gmail.com> Move reader VLR handling to LasHeader. (16:13:39)
+	* Todd Murphy <murphyrt at leidos.com> ACFTB and AIMIDB defaults added (15:40:49)
+
+2016-03-07
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (09:29:07)
+
+2016-03-06
+	* Howard Butler <howard at hobu.co> Merge branch 'master' of github.com:PDAL/PDAL (13:53:51)
+	* Howard Butler <howard at hobu.co> Fix #1151 -- pdal.pc not installing in correct location (13:53:45)
+
+2016-03-03
+	* Pete Gadomski <pete.gadomski at gmail.com> Minor include fixups to rxp reader (17:29:27)
+	* Pete Gadomski <pete.gadomski at gmail.com> Add two include guards for libgeotiff (17:08:32)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1172 from PDAL/issue/1169-nitf-tests (14:26:04)
+	* chambbj <brad.chambers at gmail.com> Merge pull request #1171 from PDAL/attributes-no-longer-a-plugin (11:43:29)
+	* Bradley J Chambers <brad.chambers at gmail.com> BUILD_PLUGIN_ATTRIBUTE is no longer relevant (10:54:17)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Fix population of AIMIDB and ACFTB fields in NITF writer. Fix various options in pipeline files. Improve error message on failed option conversions. (10:33:46)
+	* Bradley J Chambers <brad.chambers at gmail.com> With GDAL and GEOS being hard dependencies for PDAL, move the attribute filter out of the "plugins" category (10:06:48)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' into nitf (09:29:11)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (07:20:03)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Handle dimension names names flexibly in colorization filter. Provide better error message for bad dimension info. (07:17:12)
+
+2016-03-02
+	* Howard Butler <howard at hobu.co> checkout LASzip to a known sha now that master is being refactored (19:03:07)
+
+2016-03-01
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (15:13:30)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Have python stream flush actually do something. Make python log test more robust. (15:12:57)
+	* chambbj <brad.chambers at gmail.com> Merge pull request #1170 from PDAL/enable-testing-before-adding-plugins (15:12:39)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Delete StageFactory (and hence stage) to force log output to be written. (14:38:48)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Fix compilation issues. (13:51:37)
+	* Bradley J Chambers <brad.chambers at gmail.com> Only enable testing before adding plugins (12:43:25)
+	* Bradley J Chambers <brad.chambers at gmail.com> Enable testing prior to adding plugins directory (which includes tests) (12:19:01)
+	* Bradley J Chambers <brad.chambers at gmail.com> Update XML to match some options parsing changes in master (08:59:00)
+
+2016-02-29
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (16:04:27)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Doc commit from code sprint. (16:03:52)
+	* Howard Butler <howard at hobu.co> Merge pull request #1168 from mloskot/ml/gitter (12:10:21)
+	* Mateusz Łoskot <mateusz at loskot.net> Add Gitter info to pdal.io/community.html (11:55:09)
+	* Howard Butler <howard at hobu.co> Merge pull request #1167 from gitter-badger/gitter-badge (08:35:32)
+	* The Gitter Badger <badger at gitter.im> Add Gitter badge (07:18:56)
+
+2016-02-26
+	* Mateusz Łoskot <mateusz at loskot.net> Fix OSGeo4W location in config.cmd (18:30:49)
+	* Mateusz Łoskot <mateusz at loskot.net> Re-enable QUITE Python lookup (17:24:41)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1163 from mloskot/ml/boost-headers-cleanup (15:55:57)
+	* Mateusz Łoskot <mateusz at loskot.net> Enable non-QUIET Python lookup (13:33:30)
+	* Mateusz Łoskot <mateusz at loskot.net> Remove unused vector of readers (12:13:58)
+	* Mateusz Łoskot <mateusz at loskot.net> Remove unused #include <boost/...> (09:38:59)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1162 from mloskot/ml/plugin-headers-cleanup (08:41:27)
+	* Mateusz Łoskot <mateusz at loskot.net> Re-enable job for PDAL_OPTIONAL_COMPONENTS:OFF (08:02:38)
+	* Mateusz Łoskot <mateusz at loskot.net> Temporarily, enable AppVeyor RDP session (07:15:22)
+	* Mateusz Łoskot <mateusz at loskot.net> Temporarily, disable AppVeyor job PDAL_OPTIONAL_COMPONENTS:OFF (06:19:14)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1161 from mloskot/ml/stage-ownership (06:12:20)
+
+2016-02-25
+	* Mateusz Łoskot <mateusz at loskot.net> Clean up inclusion of plugin headers. (16:43:04)
+	* Mateusz Łoskot <mateusz at loskot.net> Make StageFactory a sole owner of any created stages. (07:54:18)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1158 from mloskot/ml/fix-proj4-output-test (10:24:09)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (09:23:40)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add doxygen for Writer, Utils. Remove dead code. (09:23:03)
+	* Howard Butler <howard at hobu.co> Merge remote-tracking branch 'origin/master' into appveyor-webhook (08:06:56)
+	* Howard Butler <howard at hobu.co> typo'd incoming_webhook defn (07:53:55)
+	* Howard Butler <howard at hobu.co> one more PDAL_LIB_INSTALL_DIR fix (07:35:09)
+	* Howard Butler <howard at hobu.co> try using webhook instead of app for slack notifications (07:32:27)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1159 from mloskot/ml/ptree-includes-cleanup (07:17:00)
+	* Howard Butler <howard at hobu.co> Merge branch 'master' of github.com:PDAL/PDAL (07:06:43)
+	* Howard Butler <howard at hobu.co> use PDAL_LIB_INSTALL_DIR instead of CMAKE_INSTALL_LIBDIR (07:06:39)
+	* Howard Butler <howard at hobu.co> address #1157 -- invalid JSON output due to \r\n (07:06:22)
+	* Mateusz Łoskot <mateusz at loskot.net> Move boost/property_tree/ptree.hpp where it is actually needed. (07:03:53)
+	* Mateusz Łoskot <mateusz at loskot.net> Expect one of multiple possible PROJ.4 outputs (04:38:55)
+	* Mateusz Łoskot <mateusz at loskot.net> Enable shallow clones on AppVeyor (04:46:48)
+	* Howard Butler <howard at hobu.co> more CMAKE_INSTALL_LIBDIR tweaks (03:45:13)
+	* Howard Butler <howard at hobu.co> install pdal.pc pkgconfig in CMAKE_INSTALL_LIBDIR (03:34:25)
+
+2016-02-24
+	* Mateusz Łoskot <mateusz at loskot.net> Remove on_finish enabling RDP connectivity (17:33:13)
+	* Mateusz Łoskot <mateusz at loskot.net> Remove (some) OSGeo4W hacks as no longer required on AppVeyor. (17:25:07)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1156 from mloskot/ml/plugin-manager-test (12:35:33)
+	* Mateusz Łoskot <mateusz at loskot.net> Nudge AppVeyor (11:55:52)
+	* Mateusz Łoskot <mateusz at loskot.net> Add test for PluginManager. (11:39:44)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (10:56:20)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Remove KernelSupport. Fix InfoKernel reader initialization. (10:55:16)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1155 from mloskot/ml/srstest-use-expect-eq (10:49:45)
+	* Mateusz Łoskot <mateusz at loskot.net> Replace EXPECT_TRUE with EXPECT_EQ (09:30:47)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (09:17:11)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Create structure to manage LAS file interface. (09:16:26)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Doxygen. (09:13:30)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (09:01:57)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Detect gross error in GeoTiff record. (09:01:13)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Switch AppVeyor to Visual Studio 2015 (08:48:52)
+	* Howard Butler <howard at hobu.co> Merge pull request #1152 from PDAL/pkgconfig-updates (08:15:11)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1153 from mloskot/ml/plugininfo-to-pdal (08:05:51)
+	* Mateusz Łoskot <mateusz at loskot.net> Move PluginInfo out of anonymous namespace. (07:44:44)
+	* Howard Butler <howard at hobu.co> install pkgconfig script into CMAKE_INSTALL_LIBDIR #1151 (05:27:51)
+	* Howard Butler <howard at hobu.co> Merge branch 'master' of github.com:PDAL/PDAL (03:46:26)
+	* Howard Butler <howard at hobu.co> remove -Werror for now (03:46:15)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Set options on stages in info kernel in a more controlled way. Close #1088 (03:16:08)
+	* Howard Butler <howard at hobu.co> Merge pull request #1145 from PDAL/plugin-versioning (02:40:53)
+	* Howard Butler <howard at hobu.co> Merge pull request #1148 from PDAL/hobu/1101-pgpointcloud-seq (02:40:31)
+
+2016-02-23
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1150 from PDAL/fix-m_lastId (16:56:15)
+	* Bradley J Chambers <brad.chambers at gmail.com> Extern not needed, but refs to m_lastId must be in the source, not header (13:18:00)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add windows extern qualifier. (10:39:24)
+	* Howard Butler <howard at hobu.co> Sequence query for writers.pgpointcloud incorrect #1101 (09:40:41)
+	* chambbj <brad.chambers at gmail.com> Merge pull request #1143 from PDAL/merge-issues-with-tests (09:27:00)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (09:24:18)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge branch 'master' into merge-issues-with-tests (09:05:26)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add Stage documentation. (08:50:50)
+	* Howard Butler <howard at hobu.co> Merge pull request #1147 from mloskot/ml/fix-bpf-bundle-eol (08:42:23)
+	* Mateusz Łoskot <mateusz at loskot.net> Declare BPF bundle files as always having LF (08:20:53)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Remove heartbeat support. (08:05:15)
+	* Howard Butler <howard at hobu.co> set SOVERSION for plugins too #1119 (08:05:01)
+	* Howard Butler <howard at hobu.co> update slack notification channel as described by https://www.appveyor.com/updates/2016/01/31 (05:55:17)
+	* Howard Butler <howard at hobu.co> make windows 2012 happy (05:27:53)
+	* Howard Butler <howard at hobu.co> Merge pull request #1144 from PDAL/hobu-docs-rollup (05:23:18)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/merge-issues-with-tests' into merge-issues-with-tests (04:32:20)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Don't use multiple statics to create IDs for PointViews. (04:29:31)
+
+2016-02-22
+	* Bradley J Chambers <brad.chambers at gmail.com> Correct some expectations (19:27:35)
+	* Bradley J Chambers <brad.chambers at gmail.com> Adding a handful of tests with two filters being merged various ways (11:36:30)
+	* Bradley J Chambers <brad.chambers at gmail.com> Fix the writer input tests (09:50:37)
+	* Bradley J Chambers <brad.chambers at gmail.com> Add unit test to demonstrate merge issues (09:39:22)
+
+2016-02-19
+	* Howard Butler <howard at hobu.co> Merge remote-tracking branch 'origin/master' into hobu-docs-rollup (11:26:45)
+	* Howard Butler <howard at hobu.co> a bunch of documentation tweaks related to getting rst2pdf output working -- not quite done yet (11:26:25)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Don't use initializer list for map. (09:16:49)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1139 from mloskot/ml/win-portable-path-sep (07:56:27)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1141 from PDAL/derivative-multi (07:55:59)
+
+2016-02-18
+	* Andrew Bell <andrew.bell.ia at gmail.com> Suppress ridiculous warning. (20:50:09)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Allow derivative writer to produce output for multiple primitive types in one command. (20:35:57)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Open bundle files in binary mode. (11:33:45)
+	* Mateusz Łoskot <mateusz at loskot.net> Make getFilename aware of portable path separator on Windows. (10:04:48)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Limit compiler option to appropriate compiler. (07:45:14)
+
+2016-02-17
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1136 from mloskot/ml/fix-test-pc2pc (19:07:44)
+	* Mateusz Łoskot <mateusz at loskot.net> Catch up with changes in pdal output. (18:13:50)
+	* Howard Butler <howard at hobu.co> doc tweaks to make PDF generation happier (16:36:28)
+	* Howard Butler <howard at hobu.co> Roll up of a bunch of windows build improvements related to boost removal. (14:56:32)
+	* Howard Butler <howard at hobu.co> Merge pull request #1135 from PDAL/fixgdal (14:17:23)
+	* Howard Butler <howard at hobu.co> Merge pull request #1134 from PDAL/polycontext (14:17:14)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Use standard error handling for stream failure of Polygon. Remove unnecessary indirection for GEOS context. (12:16:05)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1133 from mloskot/ml/fix-uuid-buffer-overrun (12:14:26)
+	* Mateusz Łoskot <mateusz at loskot.net> Fix too small sprintf buffer in Uuid::unparse (11:49:49)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1132 from mloskot/ml/fix-cmp-files-eol (11:24:04)
+	* Mateusz Łoskot <mateusz at loskot.net> Open output file in binary mode to avoid EOL translation. (11:18:38)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1130 from mloskot/ml/fix-trim (10:46:17)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1129 from mloskot/ml/fix-utils-split2-ub (10:43:51)
+	* Mateusz Łoskot <mateusz at loskot.net> Fix out of range access bug in trimTrailing (10:38:52)
+	* Mateusz Łoskot <mateusz at loskot.net> Fix UB caused by incrementing pass-the-end iterator (10:02:00)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Fix GDAL reader so that tests pass :) Test tif files from from GDAL autotest.  data.xyz file was generated from float32.tif with gdal_translate. (09:21:56)
+	* Howard Butler <howard at hobu.co> Merge pull request #1127 from mloskot/ml/msvc-fix-gtest-linking (08:43:14)
+	* Howard Butler <howard at hobu.co> Merge pull request #1126 from mloskot/ml/msvc-disable-boost-autolink (08:43:03)
+	* Mateusz Łoskot <mateusz at loskot.net> Define gtest_force_shared_crt for MSVC (06:59:06)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1125 from mloskot/ml/ilvis2-fix-vla (07:21:16)
+	* Mateusz Łoskot <mateusz at loskot.net> Defined BOOST_ALL_NO_LIB to disable auto-linking (05:51:12)
+	* Mateusz Łoskot <mateusz at loskot.net> Remove variable-length array use from ILVIS2 reader (05:19:39)
+
+2016-02-16
+	* Howard Butler <howard at hobu.co> Merge pull request #1123 from mloskot/ml/geos-optional (16:37:15)
+	* Howard Butler <howard at hobu.co> Merge pull request #1124 from mloskot/ml/include-algorithm (16:37:02)
+	* Mateusz Łoskot <mateusz at loskot.net> Add missing #include <algorithm> (16:29:57)
+	* Mateusz Łoskot <mateusz at loskot.net> GEOS is no longer optional (15:53:02)
+	* Howard Butler <howard at hobu.co> include cstdint for Utils.hpp (15:35:04)
+	* Howard Butler <howard at hobu.co> remove win32 boost stuff now that boost is gone (15:26:56)
+	* Howard Butler <howard at hobu.co> don't use ARG for Dockerfile (15:03:21)
+	* Howard Butler <howard at hobu.co> docker hub has no ARG support (11:02:00)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (10:45:18)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Wrong arguments made positional. Close #1122 (10:44:28)
+	* Howard Butler <howard at hobu.co> attempting to trigger auto dockerhub build (10:43:19)
+
+2016-02-15
+	* Howard Butler <howard at hobu.co> sequence selection typo #1101 (17:05:30)
+	* Howard Butler <howard at hobu.co> fgt, armadillo, and cpd dependencies (17:03:59)
+	* Howard Butler <howard at hobu.co> fgt, armadillo, and cpd dependencies (17:01:34)
+	* Howard Butler <howard at hobu.co> Merge pull request #1116 from PDAL/optional-bash-completion (11:25:03)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (11:02:44)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add missing debug dir. (11:01:43)
+	* Howard Butler <howard at hobu.co> Merge remote-tracking branch 'origin/master' into optional-bash-completion (10:56:01)
+	* Howard Butler <howard at hobu.co> Merge pull request #1117 from PDAL/libdir-install-prefix (10:53:21)
+	* Howard Butler <howard at hobu.co> default to installing library output to lib/ if no CMAKE_INSTALL_LIBDIR is set (10:25:19)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Remove user-supplied boost requirements. Add some boost as pdalboost to satisfy some requirements. (10:04:05)
+	* Howard Butler <howard at hobu.co> install lib/ output to CMAKE_INSTALL_LIBDIR (09:53:05)
+	* Howard Butler <howard at hobu.co> Add Python 3 tp_finalizer struct member to Python extension definition (09:37:41)
+	* Howard Butler <howard at hobu.co> Only install bash_completion if asked #1115 (09:36:34)
+
+2016-02-14
+	* Connor Manning <connor at hobu.co> Don't cast away qualifiers. (08:42:50)
+	* Connor Manning <connor at hobu.co> Indentation consistency. (08:30:49)
+
+2016-02-12
+	* Howard Butler <howard at hobu.co> Merge pull request #1114 from PDAL/issues/1113 (17:33:34)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Suppress warning for PCL. (16:42:05)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Make filter an optional positional argument in the translate kernel. (15:01:16)
+	* Bradley J Chambers <brad.chambers at gmail.com> Remove unused PDAL_HAVE's (13:29:15)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Remove duplicate call to GDALReadBlock. Turn warning into errors on Linux. (12:41:08)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Handle ioctl failure. Make ProgramArgs enum a class enum. (12:05:11)
+
+2016-02-11
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (20:34:22)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Fix logic for reading raster bands. (20:33:28)
+	* Howard Butler <howard at hobu.co> Merge pull request #1110 from PDAL/boundary-no-hexbin (14:01:39)
+	* Howard Butler <howard at hobu.co> Merge pull request #1111 from PDAL/bad-index-derivative-writer (13:53:32)
+	* Bradley J Chambers <brad.chambers at gmail.com> We must stop one short of the number of rows (y) (13:26:54)
+	* Howard Butler <howard at hobu.co> Merge pull request #1108 from PDAL/height-filter-use-heightaboveground-dim (11:54:06)
+	* Howard Butler <howard at hobu.co> provide the bbox 'boundary' entry to the filters.stats when no hexbin is linked #920 (11:53:29)
+	* Howard Butler <howard at hobu.co> have filters.height use HeightAboveGround dimension #1077 (10:32:48)
+	* Howard Butler <howard at hobu.co> Merge pull request #1107 from PDAL/pgpointcloud-formats-sequence (00:15:31)
+	* Howard Butler <howard at hobu.co> Use a pointcloud_formats_pcid_seq if it is available for schema id generation #1101 (00:13:45)
+
+2016-02-10
+	* Howard Butler <howard at hobu.co> Merge pull request #1105 from PDAL/icebridge-small-features (14:44:36)
+	* Howard Butler <howard at hobu.co> Merge remote-tracking branch 'origin/master' into icebridge-small-features (14:42:22)
+	* Howard Butler <howard at hobu.co> Feature improvements for HDF5-based IceBridge Reader (14:08:47)
+	* Howard Butler <howard at hobu.co> Merge pull request #1100 from PDAL/textreader (10:38:15)
+	* Howard Butler <howard at hobu.co> add ProgramArgs docs to Sphinx generation (08:57:10)
+
+2016-02-09
+	* Howard Butler <howard at hobu.co> Merge remote-tracking branch 'origin/master' into textreader (17:37:09)
+	* Howard Butler <howard at hobu.co> Merge pull request #1103 from PDAL/lat-lon-metadata (17:36:38)
+	* Howard Butler <howard at hobu.co> PipelineReader is gone (17:34:03)
+	* Howard Butler <howard at hobu.co> Merge branch 'master' into textreader (17:19:39)
+	* Howard Butler <howard at hobu.co> remove BOX3D(BOX2D) constructor (17:09:26)
+	* Howard Butler <howard at hobu.co> PipelineReader is gone (16:14:46)
+	* Howard Butler <howard at hobu.co> Merge branch 'master' into lat-lon-metadata (16:08:45)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Make PipelineReader private. (15:58:44)
+	* Howard Butler <howard at hobu.co> output Z dimension for WKT when requested, use that for filter.stats box reprojection (13:16:54)
+
+2016-02-08
+	* Howard Butler <howard at hobu.co> support fetching horizontal and vertical units for convenience #1089 (15:54:12)
+	* Howard Butler <howard at hobu.co> move toMetadata to Utils for SpatialReference, make sure to PDAL_DLL inferType (15:31:10)
+	* Howard Butler <howard at hobu.co> export PDAL_DLL for setValue(SpatialReference&) (14:19:38)
+	* Howard Butler <howard at hobu.co> Add bbox output to filter.stats, which adds a lat/lon bbox convenience too #1080 (14:06:30)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Fix types in GDAL raster handling. Fix size of vector for non-char types in GDAL raster handling. (13:31:33)
+	* Howard Butler <howard at hobu.co> remove debug lint (12:43:33)
+	* Howard Butler <howard at hobu.co> 'Polygon' : ambiguous symbol thanks to 'Windows Kits\8.0\Include\um\wingdi.h(4972) : BOOL Polygon(HDC,const POINT *,int)' (11:37:54)
+	* Howard Butler <howard at hobu.co> add 'srs' metadata node (11:26:20)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Fix dimension order in gdal doc. (09:13:00)
+	* Howard Butler <howard at hobu.co> need to export MetadataNodeImpl now that we're implementing setValue(SpatialReference) elsewhere (09:02:56)
+
+2016-02-07
+	* Howard Butler <howard at hobu.co> Construct a Polygon from a BOX2D. Test using it to reproject BOX2D (00:30:35)
+
+2016-02-05
+	* Howard Butler <howard at hobu.co> pull SpatialReference include out of Metadata header so we can have SpatialReference::getAsMetadata() method (23:28:36)
+	* Howard Butler <howard at hobu.co> add toGeoJSON to BOX2D (23:27:51)
+	* Howard Butler <howard at hobu.co> add docker to tutorial listing (15:32:43)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add doxygen. (15:06:12)
+	* Andrew Bell <andrew.bell.ia at gmail.com> TextReader with doc and test. (14:51:51)
+	* Howard Butler <howard at hobu.co> Merge remote-tracking branch 'origin/appveyor-artifacts-to-s3' (14:38:29)
+	* Howard Butler <howard at hobu.co> Merge pull request #1099 from PDAL/pgpointcloud-quote-delete (14:35:50)
+	* Howard Butler <howard at hobu.co> make test table name start with a number to simulate #1098 (14:09:22)
+	* Howard Butler <howard at hobu.co> Quote delete statement for pgpointcloud #1098 (13:10:14)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add missing function hidden(). (11:02:09)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Doxy for enum. (10:50:44)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Doxygen for ProgramArgs. (10:43:59)
+
+2016-02-04
+	* Andrew Bell <andrew.bell.ia at gmail.com> ProgramArgs with tests. (19:18:25)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (19:17:53)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Remove dead code. (18:10:04)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Initial TextReader. (13:58:10)
+
+2016-02-03
+	* Andrew Bell <andrew.bell.ia at gmail.com> Make sure we're providing libraries that are exported targets in PDALConfig (17:48:40)
+	* Howard Butler <howard at hobu.co> Python extension fixes #1096 (22:57:38)
+	* Howard Butler <howard at hobu.co> update RB logo location (22:53:24)
+
+2016-01-30
+	* Howard Butler <howard at hobu.co> Merge pull request #1095 from PDAL/help-link (09:00:33)
+
+2016-01-29
+	* Howard Butler <howard at hobu.co> Output help link in help print outs #1094 (15:56:12)
+	* Howard Butler <howard at hobu.co> Refactor GEOS stuff into a pdal::Polygon class #1092 (15:05:31)
+	* chambbj <brad.chambers at gmail.com> Merge pull request #1093 from PDAL/catch-overly-aggressive-outlier-parameters (14:50:51)
+	* Bradley J Chambers <brad.chambers at gmail.com> If the radius or statistical outlier filters would remove all points, log it, and return the input cloud (13:07:44)
+
+2016-01-26
+	* Howard Butler <howard at hobu.co> Refactor GEOS environment stuff to behave like GDAL's (12:27:46)
+
+2016-01-20
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (12:47:41)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Remove gtest headers from public headers. (12:47:13)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Remove ptree from options. (11:02:15)
+
+2016-01-19
+	* Andrew Bell <andrew.bell.ia at gmail.com> Change name of ilvis metadata test (13:56:15)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Pipeline output as JSON. (12:58:12)
+
+2016-01-15
+	* Howard Butler <howard at hobu.co> declare PDAL_DLL for writePipeline and friends (22:49:23)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Make PipelineWriter a namespace. (07:07:22)
+
+2016-01-14
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (13:52:09)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Remove getOptions() as a public interface. (13:51:29)
+	* Howard Butler <howard at hobu.co> default to only 4326 for ILVIS (08:33:51)
+
+2016-01-13
+	* Howard Butler <howard at hobu.co> use pdal::FileUtils::fileExists for cross-platform file checking (22:11:19)
+	* Howard Butler <howard at hobu.co> Support ILVIS2 metadata (Scott Lewis NSDIC). See #1079 for full detail as this is a squash merge. (22:00:28)
+	* Howard Butler <howard at hobu.co> PDALConfig.cmake for PRC plugin was incorrectly set (14:27:04)
+	* Howard Butler <howard at hobu.co> add PRC plugin to PDAL docker build (14:20:38)
+
+2016-01-12
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge branch 'damnms' (14:39:17)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Replace printError() with log(). (14:38:15)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add stdint. (13:59:40)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Don't use constexpr. (13:38:55)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Replace byte-ordering code. (13:10:22)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Remove errant std:: from memcpy. (12:29:58)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Need def for size_t on MSVC. (12:13:44)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Replace boost::uuid with pdal::Uuid. Make libpdal_util build without reference to files in pdal. (12:02:39)
+	* Howard Butler <howard at hobu.co> libgeos++-dev needs to be installed now that we don't use GEOS from package (10:08:45)
+	* Howard Butler <howard at hobu.co> try opening txt files with ilvis2 for now (10:08:14)
+
+2016-01-11
+	* Howard Butler <howard at hobu.co> GeoTIFF fixups (15:48:36)
+	* Howard Butler <howard at hobu.co> docker config to install Python extension too (09:55:04)
+
+2016-01-10
+	* Howard Butler <howard at hobu.co> no sudo in Travis (19:22:56)
+	* Howard Butler <howard at hobu.co> add ninja-build package, make sure to remove dead stuff in Dependencies docker build (17:14:25)
+	* Howard Butler <howard at hobu.co> add UoH link (17:13:37)
+	* Howard Butler <howard at hobu.co> add missing NSF logo (17:01:20)
+	* Howard Butler <howard at hobu.co> missing ninja in dependencies docker build (16:50:05)
+	* Howard Butler <howard at hobu.co> update contributors doc (16:49:39)
+	* Howard Butler <howard at hobu.co> update Docker config to use libgeotiff and Ubuntu 15.04 (15:28:21)
+	* Howard Butler <howard at hobu.co> doc updates (15:27:22)
+
+2016-01-09
+	* Howard Butler <howard at hobu.co> an attempt to simplify header include complexity of GeoTiffSupport.hpp (20:10:27)
+	* Howard Butler <howard at hobu.co> put back 833c96e4b09a10d4883219cbc519470acf74539f for windows (19:31:26)
+	* Howard Butler <howard at hobu.co> iuse GTIFGetOGISDefn and GTIFSetFromOGISDefn from GDAL. Don't define any TIFF/GeoTIFF objects if we don't have them because newer versions of GDAL might be totally renaming them. (19:23:19)
+
+2016-01-08
+	* Howard Butler <howard at hobu.co> add output image to docker tutorial (12:19:07)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (11:12:31)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Move some testing stuff in build file. (11:12:08)
+	* Howard Butler <howard at hobu.co> more docker tutorial updates (10:22:20)
+	* Howard Butler <howard at hobu.co> fetch is not a docker command, but pull is (10:06:04)
+	* Howard Butler <howard at hobu.co> reference typo in docker tutorial (09:44:38)
+	* Howard Butler <howard at hobu.co> add missing tutorial images (09:29:33)
+	* Howard Butler <howard at hobu.co> docker tutorial (09:15:59)
+
+2016-01-07
+	* Howard Butler <howard at hobu.co> start on docker tutorial (11:23:41)
+
+2016-01-06
+	* Andrew Bell <andrew.bell.ia at gmail.com> Fix PluginManager teardown. (15:58:06)
+
+2016-01-05
+	* Andrew Bell <andrew.bell.ia at gmail.com> Remove debug and broken test. (16:34:29)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Eliminate deadlock when a kernel creates a filter in its initialialization code. (16:26:48)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Fix logic bug in type-matching of plugins. Make sure plugins are loaded before listing options. Close #1085 (13:14:01)
+
+2016-01-04
+	* Andrew Bell <andrew.bell.ia at gmail.com> Don't allow digits as first character of stage name. Test for kernel option parsing. (17:22:41)
+
+2015-12-31
+	* chambbj <brad.chambers at gmail.com> Merge pull request #1083 from PDAL/lowercase-or-digit (08:59:09)
+	* chambbj <brad.chambers at gmail.com> Merge pull request #1082 from PDAL/p2g-lowercase-options (08:58:40)
+	* Bradley J Chambers <brad.chambers at gmail.com> Stage names can contain digits too (08:35:10)
+	* Bradley J Chambers <brad.chambers at gmail.com> Options are now expected to be lowercase (08:34:14)
+
+2015-12-29
+	* Howard Butler <howard at hobu.co> use RSGIS instead of just USACE (12:13:08)
+	* Howard Butler <howard at hobu.co> add contributors page (11:30:22)
+
+2015-12-28
+	* Howard Butler <howard at hobu.co> catch up to latest master changes for PluginManager (20:36:22)
+	* Howard Butler <howard at hobu.co> Merge pull request #1059 from PDAL/python-extension-fixups (20:04:05)
+	* Howard Butler <howard at hobu.co> Merge remote-tracking branch 'origin' into python-extension-fixups (16:39:26)
+	* Howard Butler <howard at hobu.co> Merge pull request #1075 from PDAL/gdal-20-support (16:38:44)
+	* Howard Butler <howard at hobu.co> remove debug lint (12:51:41)
+	* Howard Butler <howard at hobu.co> Merge branch 'master' of github.com:PDAL/PDAL into gdal-20-support (11:55:42)
+	* Howard Butler <howard at hobu.co> Support GDAL 2.0+, improve GDAL configuration detection (11:55:26)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add documentation for the merge kernel. Close #1035 (11:00:03)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add mutex header. (10:53:02)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Provide thread-safety for PluginManger, KernelManager, StageManager Close #1048 (10:37:40)
+	* Howard Butler <howard at hobu.co> Merge pull request #1073 from lucadelu/python_installation (08:48:21)
+	* Luca Delucchi <lucadeluge at gmail.com> added documentation about PDAL python installation (08:42:27)
+
+2015-12-22
+	* Connor Manning <connor at hobu.co> Install BufferReader header explicitly since there are no compiled files. (20:07:35)
+	* Connor Manning <connor at hobu.co> Install BufferReader header. (19:54:03)
+	* Connor Manning <connor at hobu.co> Fix a typo and register the divider filter. (19:42:59)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Fix directory location of BufferReader. Fix bug in non-initialized m_resample variable in ilvis2 reader. (14:02:34)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add forgotten file. (12:44:01)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Move BufferReader to io directory. Close #1070 (12:19:59)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Make sure files at the end of the prepare() step. NOTE: Note done for greyhound and MrSid. Close #1017 (10:35:54)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Multiple file opening for tindex. (09:30:28)
+
+2015-12-21
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/stream' into reopen (17:13:05)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' into reopen (16:46:28)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' into reopen (15:39:03)
+	* Howard Butler <howard at hobu.co> clean up Docker-built stuff when making dependencies image (09:48:16)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add support for stage-specific options on random kernel. Close #1072 (09:32:26)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' into reopen (07:56:50)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (07:22:59)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Fix default minor version of LAS file in documentation. (07:21:28)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' into stream (07:20:13)
+	* Howard Butler <howard at hobu.co> catch up Docker config for CPD (00:35:00)
+
+2015-12-20
+	* Andrew Bell <andrew.bell.ia at gmail.com> Streaming support for ILVIS2. (16:02:57)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Close BFP files between prepare/ready. Open/close GDAL files on ready/done. Add GDALReader test. Handle setting of spatial reference from empty string. (10:00:52)
+
+2015-12-18
+	* Andrew Bell <andrew.bell.ia at gmail.com> MS still doesn't do initialization lists in ctors. (17:17:22)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Allow error return from Raster without necessarily throwing an exception. (15:48:23)
+	* Howard Butler <howard at hobu.co> add CPD, FGT, and armadillo6 to dependencies Dockerfile (12:02:34)
+
+2015-12-16
+	* Andrew Bell <andrew.bell.ia at gmail.com> Streaming support. (11:19:44)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Return 'true' from processOne(). (10:58:39)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (10:40:40)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Update crop filter documentation. (10:36:18)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Streaming support for TransformationFilter. (10:34:52)
+
+2015-12-15
+	* Andrew Bell <andrew.bell.ia at gmail.com> Support multi-source streaming. (20:23:07)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Streaming for StatsFilter. (16:36:48)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Streaming test for ReprojectionFilter. Fix streaming for ReprojectionFilter. (12:58:44)
+
+2015-12-14
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add stream test for RangeFilter. (16:12:35)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add streaming to FerryFilter. (15:10:15)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Support streaming on the decimation filter. (14:39:46)
+	* Bradley J Chambers <brad.chambers at gmail.com> Perhaps the bucket and folder need quotes? (14:15:49)
+	* Bradley J Chambers <brad.chambers at gmail.com> Artifact must be relative to repository root, this may pick up tests too (11:36:27)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' into stream (10:29:17)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/stream' into stream (10:29:05)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Streaming for crop filter. (10:28:41)
+	* Bradley J Chambers <brad.chambers at gmail.com> Try installing to local directory, which we will zip as an artifact (10:10:34)
+	* Bradley J Chambers <brad.chambers at gmail.com> Mis-copied the key when encrypting, try again (09:28:47)
+	* Bradley J Chambers <brad.chambers at gmail.com> Create zip file of the bin directory and deploy to S3 for osgeo4w (08:58:49)
+
+2015-12-12
+	* Connor Manning <connor at hobu.co> Initialize primitives. (17:21:02)
+
+2015-12-11
+	* Connor Manning <connormanning at users.noreply.github.com> Merge pull request #1069 from PDAL/stream-ref (16:50:05)
+	* Connor Manning <connor at hobu.co> Use references instead of pointers when possible. (14:09:32)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add StreamCallbackFilter. Add tests for streaming colorization. (12:38:19)
+	* Connor Manning <connor at hobu.co> Merge branch 'stream' of github.com:PDAL/PDAL into stream (11:07:16)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge pull request #1068 from scott-lewis-nsidc/ilvis2-reader-update (07:44:56)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' into stream (07:32:52)
+
+2015-12-10
+	* Scott Lewis <scott.lewis at nsidc.org> Changing ILVIS proprietary dims to regular dims (18:13:08)
+	* Scott Lewis <scott.lewis at nsidc.org> Using an enum for mapping, allowing lowercase (17:35:15)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Don't crash when creating OStreamMarker on unopen stream. (17:31:27)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Support streaming with colorization. (17:30:57)
+	* Scott Lewis <scott.lewis at nsidc.org> Merge branch 'master' of https://github.com/PDAL/PDAL into ilvis2-reader-update (15:40:33)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Use old method of point count for density for now. (14:12:45)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge branch '1.1-maintenance' (13:11:28)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Use densePointCount() to calculate density. (13:09:17)
+	* Connor Manning <connor at hobu.co> Merge branch 'stream' of github.com:PDAL/PDAL into stream (08:10:37)
+
+2015-12-09
+	* Howard Butler <howard at hobu.co> Merge branch 'master' of github.com:PDAL/PDAL (15:51:28)
+	* Howard Butler <howard at hobu.co> manually install current geotiff after package has installed for pdal/dependencies Dockerfile (15:33:28)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Fix path for pdal in test. (09:24:30)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Remove debug. (07:05:29)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (07:04:37)
+
+2015-12-08
+	* Andrew Bell <andrew.bell.ia at gmail.com> PointLayout as argument to PointTable. (16:44:56)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge branch 'master' of https://github.com/PDAL/PDAL (16:03:56)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Compilation fixes for Ubuntu 14.04. (16:03:14)
+	* Howard Butler <howard at hobu.co> remove ENTRYPOINT (15:25:14)
+	* Howard Butler <howard at hobu.co> remove ENTRYPOINT (15:24:46)
+	* Howard Butler <howard at hobu.co> Dockerfile cleanup and ENTRYPOINT (15:00:22)
+	* Howard Butler <howard at hobu.co> Dockerfile cleanup and ENTRYPOINT (14:59:01)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Tests for some 1063, 1064 and 1065. (12:59:09)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge branch '1.1-maintenance' (10:03:03)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/1.1-maintenance' into 1.1-maintenance (10:01:37)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Put bundled files in a subnode from a node called "bundled_file". Close #1066 (10:00:19)
+
+2015-12-07
+	* Howard Butler <howard at hobu.co> make branch a Dockerfile ARG (23:04:59)
+	* Howard Butler <howard at hobu.co> make branch a Dockerfile ARG (22:50:14)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Handle metadata forwards to get version number before we fill the header so version number info can be used correctly, etc. Close #1065 (18:29:16)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Format. (18:15:41)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Handle LAS 1.4 classification flags as bitfield. Close #1063 (18:14:42)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Valid global_encoding values can go up to 31. Close #1064 (17:57:38)
+	* Connor Manning <connormanning at users.noreply.github.com> Merge pull request #1062 from PDAL/reprojection-srs-creation (13:22:43)
+	* Connor Manning <connor at hobu.co> Describe the purpose behind creating the transform during initialize. (13:22:30)
+	* Connor Manning <connor at hobu.co> Remove null view check and nullptr keyword usage, add braces. (13:01:56)
+	* Connor Manning <connor at hobu.co> If we're not inferring the input SRS to the reprojection filter, create the transform during initialize, allowing usage of the FilterWrapper. (11:54:43)
+
+2015-12-06
+	* Connor Manning <connor at hobu.co> Add streaming capability to reprojection filter. (08:20:57)
+
+2015-12-04
+	* Andrew Bell <andrew.bell.ia at gmail.com> Use function to get layout. (13:00:37)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Streaming for BPF reading. (09:57:08)
+
+2015-12-03
+	* Howard Butler <howard at hobu.co> Merge branch 'master' into 1.1-maintenance (20:13:00)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Allow a streaming point table to be subclassed. (16:11:28)
+	* Scott Lewis <scott.lewis at nsidc.org> Updated ILVIS Reader and test (16:04:54)
+	* Howard Butler <howard at hobu.co> add Dockerfile for 1.1 (15:44:47)
+	* Howard Butler <howard at hobu.co> Merge branch '1.1-maintenance' (15:32:42)
+	* Howard Butler <howard at hobu.co> Merge branch 'master' of github.com:PDAL/PDAL (15:26:48)
+	* Howard Butler <howard at hobu.co> force usage of clang for PDAL compilation in docker build (15:26:32)
+	* pdal-docs <pdal at hobu.net> Merge pull request #1061 from PDAL/specify-python-path-appveyor (13:21:38)
+	* Bradley J Chambers <brad.chambers at gmail.com> Set 64-bit python on path ahead of 32-bit for CMake to grab the correct one (12:33:05)
+	* Bradley J Chambers <brad.chambers at gmail.com> Try to force the 64-bit version of python (11:32:24)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Only allocate a single buffer for writing LAS data in streaming mode. Consolidate LAS writer code for streaming and non-streaming modes. (11:23:15)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Make LAS writer work with streaming. (10:19:46)
+
+2015-12-02
+	* Howard Butler <howard at hobu.co> apply a default hole cull tolerance (22:41:53)
+	* Howard Butler <howard at hobu.co> be more careful about checking geometry fetches (22:41:38)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' into stream (16:38:46)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' (15:56:36)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Make sure we set a stage's spatial reference in the prepare() step. (15:56:06)
+	* Howard Butler <howard at hobu.co> Docker-based Travis build. Docker is now used to provide Travis dependencies. See https://hub.docker.com/r/pdal/dependencies/ for the dependencies image. The Dockerfile to rebuild the configuration is at ./scripts/docker/dependencies (15:21:10)
+	* Howard Butler <howard at hobu.co> more python fixups for PyPI (10:41:21)
+	* Howard Butler <howard at hobu.co> version bump (10:16:11)
+	* Howard Butler <howard at hobu.co> Python 1.1.0 extension fixups (10:14:22)
+
+2015-12-01
+	* Howard Butler <howard at hobu.co> no need for smooth boundary option on tindex kernel anymore (09:47:33)
+	* Howard Butler <howard at hobu.co> only output hex'ified boundary when requested -- otherwise default to simplified boundary (08:57:56)
+	* Howard Butler <howard at hobu.co> fetch correct ring count when smoothing polygon (08:43:11)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Ifdef laszip/lazperf on tests. (07:40:28)
+
+2015-11-30
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add streaming support for LasReader. (16:40:40)
+	* Howard Butler <howard at hobu.co> cull interior rings that are less than 6*tolerance*tolerance for simplified geometry (16:38:04)
+	* Howard Butler <howard at hobu.co> use smoothed_boundary metadata, and flip the option so it can be correctly set (16:37:15)
+
+2015-11-29
+	* Howard Butler <howard at hobu.co> output computed estimated_edge in addition to the edge_length that was set (14:07:39)
+	* Howard Butler <howard at hobu.co> fetch edge_size and density from HexGrid (13:36:01)
+	* Howard Butler <howard at hobu.co> Add the ability to set output WKT precision on the smoothed geometry using GEOSWKTWriter_setRoundingPrecision_r. It is only available in GEOS 3.3+. (09:38:37)
+
+2015-11-28
+	* Howard Butler <howard at hobu.co> point to release notes in download page (09:31:30)
+
+2015-11-25
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add links to release notes. (17:03:09)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Add 1.1.0 release notes. (16:35:38)
+	* Howard Butler <howard at hobu.co> update to 1.1.0 release (12:45:33)
+	* Howard Butler <howard at hobu.co> increment version to 1.1.0 in preparation for release (10:45:09)
+
+2015-11-24
+	* Andrew Bell <andrew.bell.ia at gmail.com> Remove errant semicolon. (11:17:09)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/stream' into stream (10:52:38)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' into stream (10:51:18)
+
 2015-11-23
 	* Andrew Bell <andrew.bell.ia at gmail.com> Set output view SRS on merge filter. Close #1049 (12:24:30)
 	* Howard Butler <howard at hobu.co> Implement readers.tindex #1052 (11:29:06)
@@ -35,6 +758,7 @@
 	* Howard Butler <howard at hobu.co> Merge branch 'master' of github.com:PDAL/PDAL (15:13:50)
 	* Howard Butler <howard at hobu.co> computing nominal point density for tessellated polygon in filters.hexbin (15:12:56)
 	* Andrew Bell <andrew.bell.ia at gmail.com> Better comment on path elimination logic. Move init/finish to unnamed namespace in Geometry. (11:47:37)
+	* Connor Manning <connor at hobu.co> Merge branch 'master' into stream (11:20:23)
 
 2015-11-16
 	* Andrew Bell <andrew.bell.ia at gmail.com> Don't include hexbin node twice. (19:38:07)
@@ -120,6 +844,7 @@
 2015-10-30
 	* Howard Butler <howard at hobu.co> update my example cmake to catch up to elcapitan (22:15:38)
 	* Howard Butler <howard at hobu.co> output docs to build directory (22:15:15)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Pass PointRef as reference. (Need a better name). (13:53:21)
 	* Andrew Bell <andrew.bell.ia at gmail.com> Move LAS metadata extraction to initialize(). (12:47:05)
 
 2015-10-29
@@ -134,6 +859,8 @@
 2015-10-28
 	* Connor Manning <connor at hobu.co> Reintroduce ReprojectionFilter::filter, used by FilterWrapper for standalone Views.  Some performance tweaks. (22:45:37)
 	* Howard Butler <howard at hobu.co> lard up PluginManager with debugging lint for when PDAL_DEBUG enviro variable is set #997 (16:12:18)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Filtered streaming works. Update RangeFilter to streaming. Update FauxReader to streaming. Add real streaming test. (15:30:02)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/master' into stream (14:10:25)
 	* Howard Butler <howard at hobu.co> update the doc-building doc (13:28:05)
 	* Andrew Bell <andrew.bell.ia at gmail.com> Fix range doc. (11:53:25)
 	* Andrew Bell <andrew.bell.ia at gmail.com> Have range filter support multiple ranges for each dimension. Use simple and consistent logical arrangement of ranges. Close #1014 (11:19:46)
@@ -154,16 +881,32 @@
 	* Andrew Bell <andrew.bell.ia at gmail.com> Look for FauxReader in the right place. (13:41:21)
 	* Andrew Bell <andrew.bell.ia at gmail.com> Randomize filter. (12:51:21)
 
+2015-10-22
+	* Andrew Bell <andrew.bell.ia at gmail.com> More missed files. (12:13:22)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Missed test file. (12:10:03)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Missed new file. (12:05:44)
+	* Andrew Bell <andrew.bell.ia at gmail.com> First working simple streaming with test. (12:01:46)
+
 2015-10-21
+	* Andrew Bell <andrew.bell.ia at gmail.com> First cut at stream execution.  Doesn't handle filtering. (16:16:51)
 	* Howard Butler <howard at hobu.co> Merge pull request #1011 from PDAL/issues/1009-cull-bad-reprojection (15:05:22)
 	* Howard Butler <howard at hobu.co> make transform() call simpler when we want to cull bad points (13:41:01)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Create a fixed point table. (13:10:36)
 
 2015-10-20
 	* Andrew Bell <andrew.bell.ia at gmail.com> Change range negation character to '!' from '~'. (20:31:39)
 	* Andrew Bell <andrew.bell.ia at gmail.com> Allow negation of ranges. Close #1001 (20:27:59)
 	* Andrew Bell <andrew.bell.ia at gmail.com> LasWriter doc update. (20:09:18)
+	* Andrew Bell <andrew.bell.ia at gmail.com> First cut at streaming. (15:53:46)
 	* Howard Butler <howard at hobu.co> add capability to cull bad reprojection (11:24:58)
 
+2015-10-19
+	* Andrew Bell <andrew.bell.ia at gmail.com> Merge remote-tracking branch 'origin/masterupdates' into stream (16:37:20)
+
+2015-10-16
+	* Andrew Bell <andrew.bell.ia at gmail.com> Use Dimension::Id as long as possible. Use std::copy instead of memcpy. (15:33:51)
+	* Andrew Bell <andrew.bell.ia at gmail.com> Rename PointRef to PointIdxRef. (11:31:44)
+
 2015-10-14
 	* Andrew Bell <andrew.bell.ia at gmail.com> Remove reference to dead inplacereprojection filter. (11:54:07)
 
diff --git a/HOWTORELEASE.txt b/HOWTORELEASE.txt
index 4f283c9..93be97c 100644
--- a/HOWTORELEASE.txt
+++ b/HOWTORELEASE.txt
@@ -21,11 +21,18 @@ Release Process
       PDAL_VERSION_MAJOR, PDAL_VERSION_MINOR, PDAL_VERSION_PATCH,
       and PDAL_CANDIDATE_VERSION strings.
 
+  - python/VERSION.txt
+    python/pdal/__init.py
+
   - Update SO versioning
     set(PDAL_API_VERSION "1")
     set(PDAL_BUILD_VERSION "1.0.0")
     * https://github.com/libspatialindex/libspatialindex/pull/44#issuecomment-57088783
 
+  - Increment the doc build branch of .travis.yml:
+
+    "$TRAVIS_BRANCH" = "1.2-maintenance"
+
 2) Update README to include any relevant info about the release that
    might have changed.
 
@@ -80,3 +87,4 @@ Release Process
 
 10) Write the release notes. Email PDAL mailing list with notice about release
 
+11) Upload Python extension to PyPI
diff --git a/PDALConfig.cmake.in b/PDALConfig.cmake.in
index 3defe32..c5c7b79 100644
--- a/PDALConfig.cmake.in
+++ b/PDALConfig.cmake.in
@@ -17,6 +17,6 @@ endforeach(_dir)
 
 include("${CMAKE_CURRENT_LIST_DIR}/PDALTargets.cmake")
 
-set(PDAL_LIBRARIES "@PDAL_BASE_LIB_NAME@" "@PDAL_UTIL_LIB_NAME@")
+set(PDAL_LIBRARIES "@PDAL_LIB_NAME@")
 
 check_required_components(PDAL)
diff --git a/README.md b/README.md
index 4a125e7..1fccec8 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,6 @@ PDAL
 [![Join the chat at https://gitter.im/PDAL/PDAL](https://badges.gitter.im/PDAL/PDAL.svg)](https://gitter.im/PDAL/PDAL?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
 
 [![Build Status](https://travis-ci.org/PDAL/PDAL.png?branch=master)](https://travis-ci.org/PDAL/PDAL)
-[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/pdal/pdal?branch=master&svg=true)](https://ci.appveyor.com/project/hobu/pdal)
+[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/6dehrm0v22cw58d3/branch/master?svg=true)](https://ci.appveyor.com/project/hobu/pdal)
 
 See http://www.pdal.io/ for more info
diff --git a/RELEASENOTES.txt b/RELEASENOTES.txt
index 715b1d3..321c011 100644
--- a/RELEASENOTES.txt
+++ b/RELEASENOTES.txt
@@ -1,3 +1,73 @@
+
+1.3.0:
+
+Changes of Note:
+
+- Command line parsing has been reworked to cause invalid options to emit
+  an error message.  Stage options specified in pipelines and on the command
+  line are handled similarly.
+- The dimension PlatformHeading has been renamed to Azimuth.  When looking
+  up a dimension by name, the string "platformheading" is still accepted and
+  returns Azimuth.
+- Errors detected by GDAL are no longer thrown as exceptions.  A log message
+  is emitted instead.
+- Well-known dimensions are now added to PDAL by editing a JSON file,
+  Dimension.json.
+- Linking with PDAL using CMake no longer requires explicit linking with
+  curl, jsoncpp or arbiter libraries.
+- PDAL now searches for plugins in the following locations and order by
+  default: ./lib, ../lib, ../bin, the location where PDAL was installed.
+- The '--debug' and '--verbose' options are no longer supported as stage
+  options.  The '--verbose' option is accepted on the PDAL command line.  The
+  '--debug' option is deprecated, and if specified on the command line is
+  equivalent to '--verbose=3'.  One can enable logging programmatically by
+  calling setLog() on a PipelineManager or a specific stage.
+
+Enhancements:
+
+- Pipelines can now be read directly from standard input.
+- Files can now be read from Amazon S3 buckets by providing an appropriate
+  URL.
+- Many new filters have been added: filters.approximatecoplanar,
+  filters.eigenvalues, filters.estimaterank, filters.hag, filters.normal,
+  filters.outlier, filters.pmf, filters.sample.  Most of these are algorithm
+  extractions from the PCL library, with the hope of eliminating the need
+  for PCL in some future PDAL release.
+- The PLY reader now loads dimensions that aren't predefined PDAL dimensions.
+- A '--driver' option has been added to allow a specific driver to be loaded
+  for a file without regard to its extension.
+- The PDAL_DRIVER_PATH environment variable now accepts a list of locations
+  to search for drivers.
+- Beta release quality drivers improvements in readers.greyhound
+- Beta quality implementation of Mongus and Zalik ground filter
+- Experimental implementation of Pingel et al. ground filter
+- writers.pcd enhancements by Logan Byers (binary, compression) -- requires
+  PCL
+- Docker images upgraded to Ubuntu Xenial
+- Cyclone PTS reader -- readers.pts
+- skewness, kurtosis, stddev, and variance added to filters.stats output
+- Python API now available https://pypi.python.org/pypi/pdal
+
+Fixes:
+
+- A failure that may have resulted when using filters.hexbin to calculate
+  density in the southern hemisphere has been corrected.
+- A failure to create the index file with 'pdal tindex' and GDAL 2.X has
+  been fixed.
+- The '--tindex' option for the 'pdal tindex' command is now a positional
+  option as specified in the documentation.
+- The icebridge reader now reads the X dimension as longitude and forces
+  the value in the range (-180, 180].  It also properly uses the dimension
+  Azimuth instead of ScanAngleRank.
+- An error in writers.pgpointcloud where it ignored SQL to be run at the end
+  of the stage has been fixed.
+- An error that might incorrectly write values stored internally as bytes
+  when written as a different data type has been fixed.
+- A problem where 'pdal info' wouldn't properly report dimension names not
+  predefined by PDAL has been fixed.
+- A bug in filters.crop that wouldn't properly transform coordinates when
+  provided the '--a_srs' option has been fixed.
+
 1.2.0:
 
 Changes of Note:
@@ -60,7 +130,7 @@ Fixes:
 - Properly escape quotes when generating JSON output.
 - Fix an off-by-one error when writing data with the derivative writer that
   could lead to a crash.
-- Fixed a depedency error during builds that could lead to a failure to
+- Fixed a dependency error during builds that could lead to a failure to
   properly load Python extensions on Linux.
 - Fixed a bug where passing certain options to 'pdal info' could be handled
   in ambiguous ways.
diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt
index 566ae82..469c9fe 100644
--- a/apps/CMakeLists.txt
+++ b/apps/CMakeLists.txt
@@ -50,7 +50,8 @@ if(PDAL_UTILITY)
     else (APPLE AND PDAL_BUNDLE)
         add_executable(${PDAL_UTILITY} ${srcs})
     endif(APPLE AND PDAL_BUNDLE)
-    target_link_libraries(${PDAL_UTILITY} ${PDAL_BASE_LIB_NAME})
+    target_link_libraries(${PDAL_UTILITY} ${PDAL_BASE_LIB_NAME}
+        ${PDAL_UTIL_LIB_NAME})
 endif()
 
 #------------------------------------------------------------------------------
diff --git a/apps/pdal-config b/apps/pdal-config
index 1e4a1d4..c37bb9f 100644
--- a/apps/pdal-config
+++ b/apps/pdal-config
@@ -1,8 +1,7 @@
 #!/bin/sh
-prefix=/usr/local
-exec_prefix=/usr/local/bin
-libdir=/usr/local/lib
-
+prefix=/usr
+exec_prefix=/usr/bin
+libdir=/usr/lib
 
 usage()
 {
@@ -16,6 +15,7 @@ Options:
 	[--libs]
 	[--plugin-dir]
 	[--version]
+	[--python-version]
 EOF
 	exit $1
 }
@@ -26,11 +26,11 @@ fi
 
 case $1 in
   --libs)
-    echo -L/usr/local/lib -lpdalcpp
+    echo -L/usr/lib -lpdalcpp
     ;;
 
   --plugin-dir)
-    echo /usr/local/lib
+    echo /usr/lib
     ;;
 
   --prefix)
@@ -46,7 +46,7 @@ case $1 in
     ;;
 
   --includes)
-    echo -I/usr/local/include -I/usr/include/gdal -I/usr/include/libxml2 -I/usr/include -I/usr/include
+    echo -I/usr/include -I/usr/include/gdal -I/usr/include/libxml2 -I/usr/include -I/usr/include
     ;;
 
   --cflags)
@@ -58,7 +58,11 @@ case $1 in
     ;;
 
   --version)
-    echo 1.2.0
+    echo 1.3.0
+    ;;
+
+  --python-version)
+    echo 2.7.12
     ;;
 
   *)
diff --git a/apps/pdal-config.in b/apps/pdal-config.in
index d328eef..2c955f7 100644
--- a/apps/pdal-config.in
+++ b/apps/pdal-config.in
@@ -3,7 +3,6 @@ prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=@CMAKE_INSTALL_PREFIX@/bin
 libdir=@CMAKE_INSTALL_PREFIX@/lib
 
-
 usage()
 {
 	cat <<EOF
@@ -16,6 +15,7 @@ Options:
 	[--libs]
 	[--plugin-dir]
 	[--version]
+	[--python-version]
 EOF
 	exit $1
 }
@@ -61,6 +61,10 @@ case $1 in
     echo @PDAL_VERSION_STRING@
     ;;
 
+  --python-version)
+    echo @PYTHON_VERSION_STRING@
+    ;;
+
   *)
     usage 1 1>&2
     ;;
diff --git a/apps/pdal.cpp b/apps/pdal.cpp
index 372e9ff..88d48b7 100644
--- a/apps/pdal.cpp
+++ b/apps/pdal.cpp
@@ -33,6 +33,7 @@
 * OF SUCH DAMAGE.
 ****************************************************************************/
 
+#include <pdal/GDALUtils.hpp>
 #include <pdal/KernelFactory.hpp>
 #include <pdal/PluginManager.hpp>
 #include <pdal/StageFactory.hpp>
@@ -49,66 +50,84 @@ using namespace pdal;
 
 std::string headline(Utils::screenWidth(), '-');
 
-std::string splitDriverName(std::string const& name)
+class App
 {
-    std::string out;
-
-    StringList names = Utils::split2(name, '.');
-    if (names.size() == 2)
-        out = names[1];
-    return out;
-}
-
-void outputVersion()
+public:
+    App() : m_out(std::cout)
+    {}
+
+    int execute(StringList& cmdArgs, LogPtr& log);
+
+private:
+    void outputVersion();
+    void outputHelp(const ProgramArgs& args);
+    void outputDrivers();
+    void outputCommands();
+    void outputOptions();
+    void outputOptions(const std::string& stageName);
+    void addArgs(ProgramArgs& args);
+    std::string findKernel();
+
+    std::ostream& m_out;
+
+    std::string m_command;
+    bool m_debug;
+    int m_logLevel;
+    bool m_showDrivers;
+    bool m_help;
+    bool m_showCommands;
+    bool m_showVersion;
+    std::string m_showOptions;
+};
+
+
+void App::outputVersion()
 {
-    std::cout << headline << std::endl;
-    std::cout << "pdal " << GetFullVersionString() << std::endl;
-    std::cout << headline << std::endl;
-    std::cout << std::endl;
+    m_out << headline << std::endl;
+    m_out << "pdal " << GetFullVersionString() << std::endl;
+    m_out << headline << std::endl;
+    m_out << std::endl;
 }
 
-void outputHelp()
+
+void App::outputHelp(const ProgramArgs& args)
 {
-    std::cout << "Usage: pdal <command> [--debug] [--drivers] [--help] "
-        "[--options[=<driver name>]] [--version]" << std::endl << std::endl;
-    std::cout << "  --debug      Show debug information" << std::endl;
-    std::cout << "  --drivers    Show drivers" << std::endl;
-    std::cout << "  -h [--help]  Print help message" << std::endl;
-    std::cout << "  --options [=arg(=all)]" << std::endl;
-    std::cout << "               Show driver options" << std::endl;
-    std::cout << "  --version    Show version info" << std::endl;
-    std::cout << std::endl;
-
-    std::cout << "The following commands are available:" << std::endl;
+    m_out << "Usage:" << std::endl;
+    m_out << "  pdal <options>" << std::endl;
+    m_out << "  pdal <command> <command options>" << std::endl;
+
+    args.dump(m_out, 2, 80);
+    m_out << std::endl;
+
+    m_out << "The following commands are available:" << std::endl;
 
     KernelFactory f(false);
     StringList loaded_kernels = PluginManager::names(PF_PluginType_Kernel);
 
     for (auto name : loaded_kernels)
-        std::cout << "   - " << splitDriverName(name) << std::endl;
-    std::cout << "See http://pdal.io/apps.html for more detail" << std::endl;
+        m_out << "   - " << name << std::endl;
+    m_out << "See http://pdal.io/apps.html for more detail" << std::endl;
 }
 
-void outputDrivers()
+
+void App::outputDrivers()
 {
     // Force plugin loading.
     StageFactory f(false);
 
-    std::ostringstream strm;
-
     int nameColLen(25);
     int descripColLen(Utils::screenWidth() - nameColLen - 1);
 
     std::string tablehead(std::string(nameColLen, '=') + ' ' +
         std::string(descripColLen, '='));
 
-    strm << std::endl;
-    strm << tablehead << std::endl;
-    strm << std::left << std::setw(nameColLen) << "Name" <<
+    m_out << std::endl;
+    m_out << tablehead << std::endl;
+    m_out << std::left << std::setw(nameColLen) << "Name" <<
         " Description" << std::endl;
-    strm << tablehead << std::endl;
+    m_out << tablehead << std::endl;
 
-    strm << std::left;
+    m_out << std::left;
 
     StringList stages = PluginManager::names(PF_PluginType_Filter |
         PF_PluginType_Reader | PF_PluginType_Writer);
@@ -118,76 +137,49 @@ void outputDrivers()
         StringList lines = Utils::wordWrap(descrip, descripColLen - 1);
         for (size_t i = 0; i < lines.size(); ++i)
         {
-            strm << std::setw(nameColLen) << name << " " <<
+            m_out << std::setw(nameColLen) << name << " " <<
                 lines[i] << std::endl;
             name.clear();
         }
     }
 
-    strm << tablehead << std::endl;
-    std::cout << strm.str() << std::endl;
+    m_out << tablehead << std::endl << std::endl;
+}
+
+
+void App::outputCommands()
+{
+    KernelFactory f(false);
+    std::vector<std::string> loaded_kernels;
+    loaded_kernels = PluginManager::names(PF_PluginType_Kernel);
+    for (auto name : loaded_kernels)
+        m_out << name << std::endl;
 }
 
-void outputOptions(std::string const& n)
+
+void App::outputOptions(std::string const& stageName)
 {
     // Force plugin loading.
     StageFactory f(false);
 
-    Stage* s = f.createStage(n);
+    Stage* s = f.createStage(stageName);
     if (!s)
     {
-        std::cerr << "Unable to create stage " << n << "\n";
-        return;
-    }
-
-    std::string link = PluginManager::link(n);
-    std::cout << n << " -- " << link << std::endl;
-    std::cout << headline << std::endl;
-
-    std::vector<Option> options = s->getDefaultOptions().getOptions();
-    if (options.empty())
-    {
-        std::cout << "No options" << std::endl << std::endl;
+        std::cerr << "Unable to create stage " << stageName << "\n";
         return;
     }
 
-    for (auto const& opt : options)
-    {
-        std::string name = opt.getName();
-        std::string defVal = Utils::escapeNonprinting(
-            opt.getValue<std::string>());
-        std::string description = opt.getDescription();
-
-        std::cout << name;
-        if (!defVal.empty())
-            std::cout << " [" << defVal << "]";
-        std::cout << std::endl;
-
-        if (!description.empty())
-        {
-            StringList lines =
-                Utils::wordWrap(description, headline.size() - 6);
-            for (std::string& line : lines)
-                std::cout << "    " << line << std::endl;
-        }
-        std::cout << std::endl;
-    }
-}
+    m_out << stageName << " -- " << PluginManager::link(stageName) << std::endl;
+    m_out << headline << std::endl;
 
+    ProgramArgs args;
 
-void outputCommands()
-{
-    KernelFactory f(false);
-    std::vector<std::string> loaded_kernels;
-    loaded_kernels = PluginManager::names(PF_PluginType_Kernel);
-    for (auto name : loaded_kernels)
-    {
-        std::cout << splitDriverName(name) << std::endl;
-    }
+    s->addAllArgs(args);
+    args.dump2(m_out, 2, 6, headline.size());
 }
 
 
-void outputOptions()
+void App::outputOptions()
 {
     // Force plugin loading.
     StageFactory f(false);
@@ -195,154 +187,123 @@ void outputOptions()
     StringList nv = PluginManager::names(PF_PluginType_Filter |
         PF_PluginType_Reader | PF_PluginType_Writer);
     for (auto const& n : nv)
+    {
         outputOptions(n);
+        m_out << std::endl;
+    }
+}
+
+
+void App::addArgs(ProgramArgs& args)
+{
+    args.add("command", "The PDAL command", m_command).setPositional();
+    args.add("debug", "Sets the output level to 3 (option deprecated)",
+        m_debug);
+    args.add("verbose,v", "Sets the output level (0-8)", m_logLevel, -1);
+    args.add("drivers", "List available drivers", m_showDrivers);
+    args.add("help,h", "Display help text", m_help);
+    args.add("list-commands", "List available commands", m_showCommands);
+    args.add("version", "Show program version", m_showVersion);
+    args.add("options", "Show options for specified driver (or 'all')",
+        m_showOptions);
 }
 
 
 int main(int argc, char* argv[])
 {
-    Log log("PDAL", "stderr");
+    LogPtr log(new Log("PDAL", "stderr"));
 
-    // No arguments, print basic usage, plugins will be loaded
-    if (argc < 2)
-    {
-        outputHelp();
-        return 1;
-    }
+    App pdal;
 
-    // Discover available kernels without plugins, and test to see if
-    // the positional option 'command' is a valid kernel
-    KernelFactory f(true);
-    std::vector<std::string> loaded_kernels;
-    loaded_kernels = PluginManager::names(PF_PluginType_Kernel);
+    StringList cmdArgs;
+    for (int i = 1; i < argc; ++i)
+        cmdArgs.push_back(argv[i]);
+    return pdal.execute(cmdArgs, log);
+}
 
-    bool isValidKernel = false;
-    std::string command = Utils::tolower(argv[1]);
-    std::string fullname;
-    for (auto name : loaded_kernels)
-    {
-        if (command == splitDriverName(name))
-        {
-            fullname = name;
-            isValidKernel = true;
-            break;
-        }
-    }
 
-    // If the kernel was not available, then light up the plugins and retry
-    if (!isValidKernel)
+std::string App::findKernel()
+{
+    StringList loadedKernels;
+
+    auto kernelSurname = [](const std::string& name)
     {
-        KernelFactory f(false);
-        loaded_kernels.clear();
-        loaded_kernels = PluginManager::names(PF_PluginType_Kernel);
+        StringList names = Utils::split2(name, '.');
+        return names.size() == 2 ? names[1] : std::string();
+    };
 
-        for (auto name : loaded_kernels)
-        {
-            if (command == splitDriverName(name))
-            {
-                fullname = name;
-                isValidKernel = true;
-                break;
-            }
-        }
-    }
+    KernelFactory f(true);
+    // Discover available kernels without plugins, and test to see if
+    // the positional option 'command' is a valid kernel
+    loadedKernels = PluginManager::names(PF_PluginType_Kernel);
+    for (auto& name : loadedKernels)
+        if (m_command == kernelSurname(name))
+            return name;
+
+    // Force loading of plugins.
+    KernelFactory f2(false);
+    loadedKernels = PluginManager::names(PF_PluginType_Kernel);
+    for (auto& name : loadedKernels)
+        if (m_command == kernelSurname(name))
+            return name;
+
+    return std::string();
+}
 
-    // Dispatch execution to the kernel, passing all remaining args
-    if (isValidKernel)
-    {
-        int count(argc - 2); // remove 'pdal' and the kernel name
-        argv += 2;
-        void *kernel = PluginManager::createObject(fullname);
-        std::unique_ptr<Kernel> app(static_cast<Kernel *>(kernel));
-        return app->run(count, const_cast<char const **>(argv), command);
-    }
 
-    // Otherwise, process the remaining args to see if they are supported
-    bool debug = false;
-    bool drivers = false;
-    bool help = false;
-    bool options = false;
-    bool version = false;
+int App::execute(StringList& cmdArgs, LogPtr& log)
+{
+    ProgramArgs args;
 
-    // --options will default to displaying information on all available stages
-    std::string optString("all");
+    addArgs(args);
+    args.parseSimple(cmdArgs);
 
-    for (int i = 1; i < argc; ++i)
+    if (m_logLevel >= (int)LogLevel::Error)
+        log->setLevel((LogLevel)m_logLevel);
+    else if (m_debug)
+        log->setLevel(LogLevel::Debug);
+    PluginManager::setLog(log);
+
+    m_command = Utils::tolower(m_command);
+    if (!m_command.empty())
     {
-        std::string arg = Utils::tolower(argv[i]);
-        if (arg == "--debug")
-        {
-            debug = true;
-        }
-        else if (arg == "--drivers")
+        int ret = 0;
+        std::string name(findKernel());
+        if (name.size())
         {
-            drivers = true;
-        }
-        else if ((arg == "--help") || (arg == "-h"))
-        {
-            help = true;
-        }
-        else if (Utils::startsWith(arg, "--options"))
-        {
-            StringList optionsVec = Utils::split2(arg, '=');
-            options = true;
-            if (optionsVec.size() == 2)
-                optString = Utils::tolower(optionsVec[1]);
-        }
-        else if (arg == "--version")
-        {
-            version = true;
-        }
-        else if (arg == "--list-commands")
-        {
-            outputCommands();
-            return 0;
+            if (m_help)
+                cmdArgs.push_back("--help");
+            void *obj = PluginManager::createObject(name);
+            Kernel *kernel(static_cast<Kernel *>(obj));
+            // This shouldn't throw.  If it does, it's something awful, so
+            // not cleaning up seems inconsequential.
+            log->setLeader("pdal " + m_command);
+            ret = kernel->run(cmdArgs, log);
+            delete kernel;
+            // IMPORTANT - The kernel must be destroyed before GDAL
+            //  drivers are unregistered or GDAL will attempt to destroy
+            //  resources more than once, resulting in a crash.
+            gdal::unregisterDrivers();
         }
         else
-        {
-            if (arg == "--")
-                log.get(LogLevel::Warning) << "Unknown option '" << argv[i] <<
-                    "' not recognized" << std::endl << std::endl;
-        }
+            log->get(LogLevel::Error) << "Command '" << m_command <<
+                "' not recognized" << std::endl << std::endl;
+        return ret;
     }
 
-    if (version)
-    {
+    if (m_showVersion)
         outputVersion();
-        return 0;
-    }
-
-    if (drivers)
-    {
+    else if (m_showDrivers)
         outputDrivers();
-        return 0;
-    }
-
-    if (options)
+    else if (m_showOptions.size())
     {
-        if (optString == "all")
+        if (m_showOptions == "all")
             outputOptions();
         else
-            outputOptions(optString);
-        return 0;
+            outputOptions(m_showOptions);
     }
-
-    if (debug)
-    {
-        std::cerr << getPDALDebugInformation() << std::endl;
-        return 0;
-    }
-
-    if (help)
-    {
-        outputHelp();
-        return 0;
-    }
-
-    if (!isValidKernel)
-        log.get(LogLevel::Error) << "Command '" << command <<
-            "' not recognized" << std::endl << std::endl;
-    outputHelp();
-    return 1;
+    else
+        outputHelp(args);
+    return 0;
 }
 
diff --git a/cmake/cpack.cmake b/cmake/cpack.cmake
new file mode 100644
index 0000000..cb2990f
--- /dev/null
+++ b/cmake/cpack.cmake
@@ -0,0 +1,42 @@
+#------------------------------------------------------------------------------
+# CPACK controls
+#------------------------------------------------------------------------------
+
+SET(CPACK_PACKAGE_VERSION_MAJOR ${PDAL_VERSION_MAJOR})
+SET(CPACK_PACKAGE_VERSION_MINOR ${PDAL_VERSION_MINOR})
+SET(CPACK_PACKAGE_VERSION_PATCH ${PDAL_VERSION_MINOR})
+SET(CPACK_PACKAGE_NAME "PDAL")
+
+SET(CPACK_SOURCE_GENERATOR "TBZ2;TGZ")
+SET(CPACK_PACKAGE_VENDOR "PDAL Development Team")
+SET(CPACK_RESOURCE_FILE_LICENSE    "${PROJECT_SOURCE_DIR}/LICENSE.txt")
+
+set(CPACK_SOURCE_PACKAGE_FILE_NAME
+    "${CMAKE_PROJECT_NAME}-${PDAL_VERSION_STRING}-src")
+
+set(CPACK_SOURCE_IGNORE_FILES
+"/\\\\.gitattributes;/\\\\.vagrant;/\\\\.DS_Store;/CVS/;/\\\\.git/;\\\\.swp$;~$;\\\\.\\\\#;/\\\\#")
+
+list(APPEND CPACK_SOURCE_IGNORE_FILES "CMakeScripts/")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "CMakeCache.txt")
+list(APPEND CPACK_SOURCE_IGNORE_FILES ".xcodeproj")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "build.make")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "_CPack_Packages")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "cmake_install.cmake")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "Testing")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "PDAL.build/")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "/bin/")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "/lib/")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "/build/")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "Makefile")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "CMakeFiles")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "CTestTestfile.cmake")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "/test/data/local/")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "/doc/doxygen/")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "/doc/build/")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "/doc/presentations/")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "/doc/_static/logo/dongle/")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "/cmake/examples/")
+list(APPEND CPACK_SOURCE_IGNORE_FILES "/include/pdal/pdal_defines.h")
+
+include(CPack)
diff --git a/cmake/curl.cmake b/cmake/curl.cmake
new file mode 100644
index 0000000..5d9bfef
--- /dev/null
+++ b/cmake/curl.cmake
@@ -0,0 +1,17 @@
+#
+# curl support
+#
+
+find_package(Curl)
+if (CURL_FOUND)
+    set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
+    find_package(Threads REQUIRED)
+    include_directories(${CURL_INCLUDE_DIR})
+    set(PDAL_ARBITER_ENABLED 1)
+
+    if (WIN32)
+        add_definitions("-DWINDOWS")
+    else()
+        add_definitions("-DUNIX")
+    endif()
+endif()
diff --git a/cmake/dimension.cmake b/cmake/dimension.cmake
new file mode 100644
index 0000000..ebb7222
--- /dev/null
+++ b/cmake/dimension.cmake
@@ -0,0 +1,10 @@
+#------------------------------------------------------------------------------
+# Custom command to generate Dimension.hpp from Dimension.json
+#------------------------------------------------------------------------------
+
+set(DIMENSION_INFILE ${PDAL_SRC_DIR}/Dimension.json)
+set(DIMENSION_OUTFILE ${CMAKE_CURRENT_BINARY_DIR}/include/pdal/Dimension.hpp)
+add_custom_command(OUTPUT ${DIMENSION_OUTFILE}
+    COMMAND dimbuilder ${DIMENSION_INFILE} ${DIMENSION_OUTFILE}
+        DEPENDS ${DIMENSION_INFILE} dimbuilder)
+add_custom_target(generate_dimension_hpp DEPENDS ${DIMENSION_OUTFILE})
diff --git a/cmake/directories.cmake b/cmake/directories.cmake
index 956b498..ee2b3c3 100644
--- a/cmake/directories.cmake
+++ b/cmake/directories.cmake
@@ -10,4 +10,5 @@ set(PDAL_TOOLS_DIR ${ROOT_DIR}/tools)
 set(PDAL_KERNEL_DIR ${ROOT_DIR}/kernels)
 set(PDAL_FILTER_DIR ${ROOT_DIR}/filters)
 set(PDAL_IO_DIR ${ROOT_DIR}/io)
+set(PDAL_VENDOR_DIR ${ROOT_DIR}/vendor)
 
diff --git a/cmake/gtest.cmake b/cmake/gtest.cmake
new file mode 100644
index 0000000..31f1160
--- /dev/null
+++ b/cmake/gtest.cmake
@@ -0,0 +1,17 @@
+if (MSVC)
+    # Since tests link CRT dynamically (/MD[d]), require gtest to
+    #link dynamically too (default is /MT[d])
+    option(gtest_force_shared_crt "Always use shared Visual C++ run-time DLL" ON)
+endif()
+add_subdirectory(vendor/gtest-1.7.0)
+
+# gtest 1.7.0 has some CMake warnings, so we silence these by setting the
+# following properties.
+set_target_properties(gtest PROPERTIES
+    MACOSX_RPATH ON
+    LIBRARY_OUTPUT_DIRECTORY "${gtest_BINARY_DIR}/src"
+)
+set_target_properties(gtest_main PROPERTIES
+    MACOSX_RPATH ON
+    LIBRARY_OUTPUT_DIRECTORY "${gtest_BINARY_DIR}/src"
+    )
diff --git a/cmake/json.cmake b/cmake/json.cmake
new file mode 100644
index 0000000..b1aa280
--- /dev/null
+++ b/cmake/json.cmake
@@ -0,0 +1,26 @@
+get_property(EXISTS GLOBAL PROPERTY _JSONCPP_INCLUDED)
+if(EXISTS)
+    return()
+endif()
+
+
+find_package(JSONCPP 1.6.2)
+set_package_properties(JSONCPP PROPERTIES TYPE OPTIONAL)
+
+if (JSONCPP_FOUND)
+    set_package_properties(JSONCPP PROPERTIES TYPE OPTIONAL)
+    mark_as_advanced(CLEAR JSONCPP_INCLUDE_DIR)
+    mark_as_advanced(CLEAR JSONCPP_LIBRARY)
+    include_directories(${JSONCPP_INCLUDE_DIR})
+    set(PDAL_JSONCPP_LIB_NAME ${JSONCPP_LIBRARY})
+    set(PDAL_JSONCPP_INCLUDE_DIR ${JSONCPP_INCLUDE_DIR})
+    set(JSON_CPP_LINK_TYPE PUBLIC)
+    set(PDAL_HAVE_JSONCPP 1)
+else()
+    set(PDAL_JSONCPP_LIB_NAME pdal_jsoncpp)
+    set(PDAL_JSONCPP_INCLUDE_DIR ${PDAL_VENDOR_DIR}/jsoncpp-1.6.2/dist)
+    set(PDAL_JSONCPP_SRC ${PDAL_JSONCPP_INCLUDE_DIR}/jsoncpp.cpp)
+    set(JSON_CPP_LINK_TYPE PRIVATE)
+endif()
+
+set_property(GLOBAL PROPERTY _JSONCPP_INCLUDED TRUE)
diff --git a/cmake/macros.cmake b/cmake/macros.cmake
index 295f48f..703117a 100644
--- a/cmake/macros.cmake
+++ b/cmake/macros.cmake
@@ -55,8 +55,13 @@ endmacro(PDAL_ADD_INCLUDES)
 # _name The library name.
 # _component The part of PDAL that this library belongs to.
 # ARGN The source files for the library.
+#
+# The "generate_dimension_hpp" ensures that Dimension.hpp is built before
+#  attempting to build anything else in the library.
+#
 macro(PDAL_ADD_LIBRARY _name)
     add_library(${_name} ${PDAL_LIB_TYPE} ${ARGN})
+    add_dependencies(${_name} generate_dimension_hpp)
     set_property(TARGET ${_name} PROPERTY FOLDER "Libraries")
 
     install(TARGETS ${_name}
@@ -64,10 +69,6 @@ macro(PDAL_ADD_LIBRARY _name)
         RUNTIME DESTINATION ${PDAL_BIN_INSTALL_DIR}
         LIBRARY DESTINATION ${PDAL_LIB_INSTALL_DIR}
         ARCHIVE DESTINATION ${PDAL_LIB_INSTALL_DIR})
-    if (APPLE)
-        set_target_properties(${_name} PROPERTIES INSTALL_NAME_DIR
-            "@executable_path/../lib")
-    endif()
 endmacro(PDAL_ADD_LIBRARY)
 
 ###############################################################################
@@ -91,6 +92,10 @@ endmacro(PDAL_ADD_EXECUTABLE)
 # ARGN :
 #    FILES the srouce files for the plugin
 #    LINK_WITH link plugin with libraries
+#
+# The "generate_dimension_hpp" ensures that Dimension.hpp is built before
+#  attempting to build anything else in the "library".
+#
 macro(PDAL_ADD_PLUGIN _name _type _shortname)
     set(options)
     set(oneValueArgs)
@@ -107,7 +112,9 @@ macro(PDAL_ADD_PLUGIN _name _type _shortname)
     endif()
 
     add_library(${${_name}} SHARED ${PDAL_ADD_PLUGIN_FILES})
-    target_link_libraries(${${_name}} ${PDAL_BASE_LIB_NAME}
+    target_link_libraries(${${_name}}
+        ${PDAL_BASE_LIB_NAME}
+        ${PDAL_UTIL_LIB_NAME}
         ${PDAL_ADD_PLUGIN_LINK_WITH})
 
     set_property(TARGET ${${_name}} PROPERTY FOLDER "Plugins/${_type}")
@@ -140,7 +147,6 @@ macro(PDAL_ADD_TEST _name)
     include_directories(${PROJECT_BINARY_DIR}/test/unit)
     set(common_srcs
         ${PROJECT_SOURCE_DIR}/test/unit/Support.cpp
-        ${PROJECT_SOURCE_DIR}/test/unit/TestConfig.cpp
     )
     if (WIN32)
         list(APPEND ${PDAL_ADD_TEST_FILES} ${PDAL_TARGET_OBJECTS})
@@ -149,7 +155,8 @@ macro(PDAL_ADD_TEST _name)
     add_executable(${_name} ${PDAL_ADD_TEST_FILES} ${common_srcs})
     set_target_properties(${_name} PROPERTIES COMPILE_DEFINITIONS PDAL_DLL_IMPORT)
     set_property(TARGET ${_name} PROPERTY FOLDER "Tests")
-    target_link_libraries(${_name} ${PDAL_BASE_LIB_NAME} gtest
+    target_link_libraries(${_name}
+        ${PDAL_BASE_LIB_NAME} ${PDAL_UTIL_LIB_NAME} gtest
         ${PDAL_ADD_TEST_LINK_WITH})
     add_test(NAME ${_name} COMMAND "${PROJECT_BINARY_DIR}/bin/${_name}" WORKING_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/..")
     # Ensure plugins are loaded from build dir
@@ -180,6 +187,7 @@ macro(PDAL_ADD_DRIVER _type _name _srcs _incs _objs)
 		add_definitions("-fPIC")
 	endif()
     add_library(${libname} OBJECT ${_srcs} ${_incs})
+    add_dependencies(${libname} generate_dimension_hpp)
     set_property(TARGET ${libname} PROPERTY FOLDER "Drivers/${_type}")
 
     install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/"
diff --git a/cmake/modules/FindCurl.cmake b/cmake/modules/FindCurl.cmake
new file mode 100644
index 0000000..c250cd0
--- /dev/null
+++ b/cmake/modules/FindCurl.cmake
@@ -0,0 +1,68 @@
+#.rst:
+# FindCURL
+# --------
+#
+# Find curl
+#
+# Find the native CURL headers and libraries.
+#
+# ::
+#
+#   CURL_INCLUDE_DIRS   - where to find curl/curl.h, etc.
+#   CURL_LIBRARIES      - List of libraries when using curl.
+#   CURL_FOUND          - True if curl found.
+#   CURL_VERSION_STRING - the version of curl found (since CMake 2.8.8)
+
+#=============================================================================
+# Copyright 2006-2009 Kitware, Inc.
+# Copyright 2012 Rolf Eike Beer <eike at sf-mail.de>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+#  License text for the above reference.)
+
+# Look for the header file.
+find_path(CURL_INCLUDE_DIR NAMES curl/curl.h)
+mark_as_advanced(CURL_INCLUDE_DIR)
+
+# Look for the library (sorted from most current/relevant entry to least).
+find_library(CURL_LIBRARY NAMES
+    curl
+  # Windows MSVC prebuilts:
+    curllib
+    libcurl_imp
+    curllib_static
+  # Windows older "Win32 - MSVC" prebuilts (libcurl.lib, e.g. libcurl-7.15.5-win32-msvc.zip):
+    libcurl
+)
+mark_as_advanced(CURL_LIBRARY)
+
+if(CURL_INCLUDE_DIR)
+  foreach(_curl_version_header curlver.h curl.h)
+    if(EXISTS "${CURL_INCLUDE_DIR}/curl/${_curl_version_header}")
+      file(STRINGS "${CURL_INCLUDE_DIR}/curl/${_curl_version_header}" curl_version_str REGEX "^#define[\t ]+LIBCURL_VERSION[\t ]+\".*\"")
+
+      string(REGEX REPLACE "^#define[\t ]+LIBCURL_VERSION[\t ]+\"([^\"]*)\".*" "\\1" CURL_VERSION_STRING "${curl_version_str}")
+      unset(curl_version_str)
+      break()
+    endif()
+  endforeach()
+endif()
+
+# handle the QUIETLY and REQUIRED arguments and set CURL_FOUND to TRUE if
+# all listed variables are TRUE
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(CURL
+                                  REQUIRED_VARS CURL_LIBRARY CURL_INCLUDE_DIR
+                                  VERSION_VAR CURL_VERSION_STRING)
+
+if(CURL_FOUND)
+  set(CURL_LIBRARIES ${CURL_LIBRARY})
+  set(CURL_INCLUDE_DIRS ${CURL_INCLUDE_DIR})
+endif()
diff --git a/cmake/options.cmake b/cmake/options.cmake
new file mode 100644
index 0000000..ce1c6f9
--- /dev/null
+++ b/cmake/options.cmake
@@ -0,0 +1,122 @@
+#
+# Options for optional components.
+#
+
+option(WITH_APPS
+    "Choose if PDAL utilities should be built" TRUE)
+add_feature_info("PDAL application" WITH_APPS
+    "the PDAL command line application")
+
+option(WITH_COMPLETION
+    "Install bash completions scripts for command line?" FALSE)
+add_feature_info("Bash completion" WITH_COMPLETION
+    "completion for PDAL command line")
+
+option(BUILD_PLUGIN_CPD
+    "Choose if Coherent Point Drift kernel is built" FALSE)
+add_feature_info("CPD plugin" BUILD_PLUGIN_CPD
+    "run Coherent Point Drift on two datasets")
+
+option(BUILD_PLUGIN_GEOWAVE
+    "Choose if GeoWave support should be built" FALSE)
+add_feature_info("GeoWave plugin" BUILD_PLUGIN_GEOWAVE
+    "Read and Write data using GeoWave")
+
+option(BUILD_PLUGIN_GREYHOUND
+    "Choose if Greyhound support should be built" FALSE)
+add_feature_info("Greyhound plugin" BUILD_PLUGIN_GREYHOUND
+    "read points from a Greyhound server")
+
+option(BUILD_PLUGIN_HEXBIN
+    "Choose if the HexBin filter is built" FALSE)
+add_feature_info("Hexbin plugin" BUILD_PLUGIN_HEXBIN
+    "determine boundary and density of a point cloud")
+
+option(BUILD_PLUGIN_ICEBRIDGE
+    "Choose if Icebridge support should be built" FALSE)
+add_feature_info("Icebridge plugin" BUILD_PLUGIN_ICEBRIDGE
+    "read data in the Icebridge format")
+
+option(BUILD_PLUGIN_MATLAB
+    "Choose if Matlab support should be built" FALSE)
+add_feature_info("Matlab plugin" BUILD_PLUGIN_MATLAB
+    "write data to a .mat file")
+
+option(BUILD_PLUGIN_MRSID
+    "Choose if MrSID/LiDAR support should be built" FALSE)
+add_feature_info("MrSID plugin" BUILD_PLUGIN_MRSID
+    "read data in the MrSID format")
+
+option(BUILD_PLUGIN_NITF
+    "Choose if NITF support should be built (only install supported is from http://github.com/hobu/nitro)" FALSE)
+add_feature_info("NITF plugin" BUILD_PLUGIN_NITF
+    "read/write LAS data wrapped in NITF")
+
+if(DEFINED ENV{ORACLE_HOME})
+    set(DEFINED_ORACLE_HOME TRUE)
+else(DEFINED ENV{ORACLE_HOME})
+    set(DEFINED_ORACLE_HOME FALSE)
+endif(DEFINED ENV{ORACLE_HOME})
+option(BUILD_PLUGIN_OCI
+    "Choose if OCI support should be built" ${DEFINED_ORACLE_HOME})
+
+option(BUILD_PLUGIN_P2G "Choose if Points2Grid support should be built" FALSE)
+
+option(BUILD_PLUGIN_PCL "Choose if PCL support should be built" FALSE)
+add_feature_info("PCL plugin" BUILD_PLUGIN_PCL
+    "provides PCL-based readers, writers, filters, and kernels")
+
+find_package(PostgreSQL QUIET)
+option(BUILD_PLUGIN_PGPOINTCLOUD
+    "Choose if PostgreSQL PointCloud support should be built"
+    ${POSTGRESQL_FOUND})
+add_feature_info("PostgreSQL PointCloud plugin" BUILD_PLUGIN_PGPOINTCLOUD
+    "read/write PostgreSQL PointCloud objects")
+
+option(BUILD_PLUGIN_SQLITE
+    "Choose if SQLite database support should be built" FALSE)
+add_feature_info("SQLite plugin" BUILD_PLUGIN_SQLITE
+    "read/write SQLite objects")
+
+option(BUILD_PLUGIN_RIVLIB
+    "Choose if RiVLib support should be built" FALSE)
+add_feature_info("RiVLib plugin" BUILD_PLUGIN_RIVLIB
+    "read data in the RXP format")
+
+option(BUILD_PLUGIN_PYTHON
+    "Choose if Python support should be built" FALSE)
+add_feature_info("Python plugin" BUILD_PLUGIN_PYTHON
+    "add features that depend on python")
+
+option(BUILD_TOOLS_NITFWRAP "Choose if nitfwrap tool should be built" FALSE)
+
+option(WITH_TESTS
+    "Choose if PDAL unit tests should be built" TRUE)
+add_feature_info("Unit tests" WITH_TESTS "PDAL unit tests")
+
+# Enable CTest and submissions to PDAL dashboard at CDash
+# http://my.cdash.org/index.php?project=PDAL
+option(ENABLE_CTEST
+    "Enable CTest to support submissions of results to CDash at http://cdash.org" FALSE)
+
+#
+# Choose dependent options
+#
+
+include(CMakeDependentOption)
+
+cmake_dependent_option(BUILD_PGPOINTCLOUD_TESTS
+    "Choose if PostgreSQL PointCloud tests should be built"
+    ON "BUILD_PLUGIN_PGPOINTCLOUD; WITH_TESTS" OFF)
+cmake_dependent_option(BUILD_SQLITE_TESTS
+    "Choose if SQLite tests should be built"
+    ON "BUILD_PLUGIN_SQLITE; WITH_TESTS" OFF)
+cmake_dependent_option(BUILD_OCI_TESTS
+    "Choose if OCI tests should be built"
+    ON "BUILD_PLUGIN_OCI; WITH_TESTS" OFF)
+cmake_dependent_option(BUILD_RIVLIB_TESTS
+    "Choose if RiVLib tests should be built"
+    ON "BUILD_PLUGIN_RIVLIB; WITH_TESTS" OFF)
+cmake_dependent_option(BUILD_PIPELINE_TESTS
+    "Choose if pipeline tests should be built"
+    OFF "WITH_APPS; WITH_TESTS" OFF)
diff --git a/cmake/python.cmake b/cmake/python.cmake
index 2de7dcf..d11175a 100644
--- a/cmake/python.cmake
+++ b/cmake/python.cmake
@@ -10,6 +10,7 @@ if(PYTHONLIBS_FOUND)
     add_definitions(-DHAVE_PYTHON=1)
     add_definitions(-DPDAL_PYTHON_LIBRARY="${PYTHON_LIBRARY}")
     set(PDAL_HAVE_PYTHON 1)
+    set(PYTHON_VERSION_STRING "${PYTHONLIBS_VERSION_STRING}" PARENT_SCOPE)
 
     find_package(NumPy QUIET 1.5 REQUIRED)
     include_directories(SYSTEM ${NUMPY_INCLUDE_DIR})
diff --git a/cmake/rpath.cmake b/cmake/rpath.cmake
new file mode 100644
index 0000000..ba486b7
--- /dev/null
+++ b/cmake/rpath.cmake
@@ -0,0 +1,16 @@
+#
+# Set options and variable related to OSX rpath.
+#
+
+# per http://www.cmake.org/Wiki/CMake_RPATH_handling
+SET(CMAKE_SKIP_BUILD_RPATH FALSE)
+SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
+SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+IF (APPLE)
+    SET(MACOSX_RPATH ON)
+endif()
+LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
+    "${CMAKE_INSTALL_PREFIX}/${PDAL_LIB_INSTALL_DIR}" isSystemDir)
+IF("${isSystemDir}" STREQUAL "-1")
+    SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${PDAL_LIB_INSTALL_DIR}")
+ENDIF("${isSystemDir}" STREQUAL "-1")
diff --git a/dimbuilder/CMakeLists.txt b/dimbuilder/CMakeLists.txt
new file mode 100644
index 0000000..08d4016
--- /dev/null
+++ b/dimbuilder/CMakeLists.txt
@@ -0,0 +1,33 @@
+#
+# The seemingly strange arrangement of this cmake file allows you to build
+# lasdump as a standalone.
+#
+cmake_minimum_required(VERSION 2.8.6)
+
+set(MAKE_COLOR_MAKEFILE ON)
+
+if(NOT ROOT_DIR)
+    project(DIMBUILDER)
+    set(ROOT_DIR "${PROJECT_SOURCE_DIR}/..")
+endif()
+
+include(${ROOT_DIR}/cmake/common.cmake NO_POLICY_SCOPE)
+
+include_directories(${PDAL_JSONCPP_INCLUDE_DIR})
+
+
+set (SOURCES
+    DimBuilder.cpp
+    ${PDAL_JSONCPP_SRC}
+    ${PDAL_UTIL_DIR}/Utils.cpp
+)
+
+set (HEADERS
+    DimBuilder.hpp
+    ${PDAL_INCLUDE_DIR}/pdal/util/Utils.hpp
+)
+
+add_executable(dimbuilder ${SOURCES} ${HEADERS})
+if (PDAL_HAVE_JSONCPP)
+    target_link_libraries(dimbuilder ${PDAL_JSONCPP_LIB_NAME})
+endif()
diff --git a/dimbuilder/DimBuilder.cpp b/dimbuilder/DimBuilder.cpp
new file mode 100644
index 0000000..7146980
--- /dev/null
+++ b/dimbuilder/DimBuilder.cpp
@@ -0,0 +1,448 @@
+/******************************************************************************
+* Copyright (c) 2016, hobu Inc.  (info at hobu.co)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. nor the names of its
+*       contributors may be used to endorse or promote products derived
+*       from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include <iostream>
+
+#include <json/json.h>
+
+#include "DimBuilder.hpp"
+
+#include <pdal/util/ProgramArgs.hpp>
+
+int main(int argc, char *argv[])
+{
+    pdal::DimBuilder d;
+
+    argc--;
+    argv++;
+    try
+    {
+        if (d.parseArgs(argc, argv))
+            d.execute();
+    }
+    catch (pdal::dimbuilder_error& e)
+    {
+        std::cerr << e.m_error << "\n";
+        return -1;
+    }
+    return 0;
+}
+
+
+namespace pdal
+{
+
+namespace
+{
+
+std::string getTypename(Dimension::Type type)
+{
+    switch (type)
+    {
+    case Dimension::Type::None:
+        return "None";
+    case Dimension::Type::Unsigned8:
+        return "Unsigned8";
+    case Dimension::Type::Signed8:
+        return "Signed8";
+    case Dimension::Type::Unsigned16:
+        return "Unsigned16";
+    case Dimension::Type::Signed16:
+        return "Signed16";
+    case Dimension::Type::Unsigned32:
+        return "Unsigned32";
+    case Dimension::Type::Signed32:
+        return "Signed32";
+    case Dimension::Type::Unsigned64:
+        return "Unsigned64";
+    case Dimension::Type::Signed64:
+        return "Signed64";
+    case Dimension::Type::Float:
+        return "Float";
+    case Dimension::Type::Double:
+        return "Double";
+    }
+    return "None";
+}
+
+void validateDimension(const std::string& dimName)
+{
+    if (Dimension::extractName(dimName, 0) != dimName.size())
+    {
+        std::ostringstream oss;
+
+        oss << "Invalid dimension name '" << dimName << "'.  Dimension "
+            "names must start with a letter and be followed by letters, "
+            "digits or underscores.";
+        throw dimbuilder_error(oss.str());
+    }
+}
+
+} // unnamed namespace
+
+bool DimBuilder::parseArgs(int argc, char *argv[])
+{
+    ProgramArgs args;
+
+    args.add("input,i", "Filename of JSON specification of "
+        "dimensions", m_input).setPositional();
+    args.add("output,o", "Filename of output of C++ header representation of "
+        "provided JSON.", m_output).setPositional();
+    try
+    {
+        std::vector<std::string> s;
+        for (int i = 0; i < argc; ++i)
+            s.push_back(argv[i]);
+        args.parse(s);
+    }
+    catch (arg_error& err)
+    {
+        std::cerr << err.m_error << "\n";
+        return false;
+    }
+    return true;
+}
+
+
+bool DimBuilder::execute()
+{
+    Json::Reader reader;
+
+    std::ifstream in(m_input);
+
+    if (!in)
+        return false;
+
+    Json::Value root;
+    if (!reader.parse(in, root))
+    {
+        std::cerr << reader.getFormattedErrorMessages();
+        return false;
+    }
+    Json::Value dims = root.get("dimensions", Json::Value());
+    if (root.size() != 1 || !dims.isArray())
+    {
+        std::ostringstream oss;
+
+        oss << "Root node must contain a single 'dimensions' array.";
+        throw dimbuilder_error(oss.str());
+    }
+    for (size_t i = 0; i < dims.size(); ++i)
+    {
+        Json::Value& dim = dims[(int)i];
+        if (!dim.isObject())
+        {
+            std::ostringstream oss;
+
+            oss << "Found a dimension that is not an object: " <<
+                dim.asString();
+            throw dimbuilder_error(oss.str());
+        }
+        extractDim(dim);
+    }
+
+    std::ofstream out(m_output);
+    if (!out)
+    {
+        std::ostringstream oss;
+
+        oss << "Unable to open output file '" << m_output << "'.";
+        throw dimbuilder_error(oss.str());
+    }
+    writeOutput(out);
+    return true;
+}
+
+
+void DimBuilder::extractDim(Json::Value& dim)
+{
+    DimSpec d;
+
+    // Get dimension name.
+    Json::Value name = dim.removeMember("name");
+    if (name.isNull())
+        throw dimbuilder_error("Dimension missing name.");
+    if (!name.isString())
+        throw dimbuilder_error("Dimension name must be a string.");
+    d.m_name = name.asString();
+    validateDimension(d.m_name);
+
+    // Get dimension description.
+    Json::Value description = dim.removeMember("description");
+    if (description.isNull())
+    {
+        std::ostringstream oss;
+
+        oss << "Dimension '" << d.m_name << "' must have a description.";
+        throw dimbuilder_error(oss.str());
+    }
+    if (!description.isString())
+    {
+        std::ostringstream oss;
+
+        oss << "Description of dimension '" << d.m_name << "' must be a "
+            "string.";
+        throw dimbuilder_error(oss.str());
+    }
+    d.m_description = description.asString();
+
+    // Get dimension type
+    Json::Value type = dim.removeMember("type");
+    if (type.isNull())
+    {
+        std::ostringstream oss;
+
+        oss << "Dimension '" << d.m_name << "' must have a type.";
+        throw dimbuilder_error(oss.str());
+    }
+    d.m_type = Dimension::type(type.asString());
+    if (d.m_type == Dimension::Type::None)
+    {
+        std::ostringstream oss;
+
+        oss << "Invalid type '" << type.asString() << "' specified for "
+            "dimension '" << d.m_name << "'.";
+        throw dimbuilder_error(oss.str());
+    }
+
+    Json::Value altNames = dim.removeMember("alt_names");
+    if (!altNames.isNull())
+    {
+        if (!altNames.isString())
+        {
+            std::ostringstream oss;
+
+            oss << "Alternate names for dimension '" << d.m_name << "' must "
+                "be a string.";
+            throw dimbuilder_error(oss.str());
+        }
+        d.m_altNames = Utils::split2(altNames.asString(), ',');
+        for (auto& s : d.m_altNames)
+        {
+            Utils::trim(s);
+            validateDimension(s);
+        }
+    }
+    if (dim.size() > 0)
+    {
+        std::ostringstream oss;
+
+        oss << "Unexpected member '" << dim.getMemberNames()[0] << "' when "
+            "reading dimension '" << d.m_name << "'.";
+        throw dimbuilder_error(oss.str());
+    }
+    m_dims.push_back(d);
+}
+
+void DimBuilder::writeOutput(std::ostream& out)
+{
+    writeHeader(out);
+    out << "\n";
+    writeIds(out);
+    out << "\n";
+    writeDescriptions(out);
+    out << "\n";
+    writeNameToId(out);
+    out << "\n";
+    writeIdToName(out);
+    out << "\n";
+    writeTypes(out);
+    out << "\n";
+    writeFooter(out);
+}
+
+
+void DimBuilder::writeHeader(std::ostream& out)
+{
+    out << "// This file was programatically generated from '" << m_input <<
+        ".\n";
+    out << "// Do not edit directly.\n";
+    out << "\n";
+    out << "#pragma once\n";
+    out << "\n";
+    out << "#include <string>\n";
+    out << "#include <vector>\n";
+    out << "\n";
+    out << "#include <pdal/DimUtil.hpp>\n";
+    out << "#include <pdal/pdal_types.hpp>\n";
+    out << "#include <pdal/util/Utils.hpp>\n";
+    out << "\n";
+    out << "namespace pdal\n";
+    out << "{\n";
+    out << "namespace Dimension\n";
+    out << "{\n";
+}
+
+
+void DimBuilder::writeFooter(std::ostream& out)
+{
+    out << "} // namespace Dimension\n";
+    out << "} // namespace pdal\n";
+    out << "\n";
+}
+
+
+void DimBuilder::writeIds(std::ostream& out)
+{
+    out << "enum class Id\n";
+    out << "{\n";
+    out << "    Unknown,\n";
+    for (auto di = m_dims.begin(); di != m_dims.end(); ++di)
+    {
+        DimSpec& d = *di;
+        out << "    " << d.m_name;
+        if (di + 1 != m_dims.end())
+            out << ",";
+        out << "\n";
+    }
+    out << "};\n";
+    out << "typedef std::vector<Id> IdList;\n";
+    out << "\n";
+}
+
+
+void DimBuilder::writeDescriptions(std::ostream& out)
+{
+    out << "/// Get a description of a predefined dimension.\n";
+    out << "/// \\param[in] id  Dimension ID.\n";
+    out << "/// \\return  Dimension description.\n";
+    out << "inline std::string description(Id id)\n";
+    out << "{\n";
+    out << "    switch (id)\n";
+    out << "    {\n";
+    for (auto& d : m_dims)
+    {
+        std::vector<std::string> pieces = Utils::wordWrap2(d.m_description,
+            63, 60);
+        out << "    case Id::" << d.m_name << ":\n";
+        out << "        return \"" << pieces[0] << "\"";
+        if (pieces.size() == 1)
+            out << ";";
+        out << "\n";
+        auto pi = pieces.begin();
+        pi++;
+        for (; pi != pieces.end(); ++pi)
+        {
+            std::string piece = *pi;
+            out << "            \"" << piece << "\"";
+            if (pi + 1 == pieces.end())
+                out << ";";
+            out << "\n";
+        }
+    }
+    out << "    case Id::Unknown:\n";
+    out << "        return \"\";\n";
+    out << "    }\n";
+    out << "    return \"\";\n";
+    out << "}\n";
+}
+
+
+void DimBuilder::writeNameToId(std::ostream& out)
+{
+    out << "/// Get a predefined dimension ID given a dimension name. "
+        "Multiple names\n";
+    out << "/// may map to the same dimension for convenience.  Names "
+        "are case-insensitive.\n";
+    out << "/// \\param[in] s  Name of dimension.\n";
+    out << "/// \\return  Dimension ID associated with the name.  "
+        "Id::Unknown is returned\n";
+    out << "///    if the name doesn't map to a predefined dimension.\n";
+    out << "inline Id id(std::string s)\n";
+    out << "{\n";
+    out << "    s = Utils::toupper(s);\n";
+    out << "\n";
+    for (auto& d : m_dims)
+    {
+        std::vector<std::string> names;
+        names.push_back(d.m_name);
+        names.insert(names.end(), d.m_altNames.begin(), d.m_altNames.end());
+        for (std::string& s : names)
+        {
+            out << "    if (s == \"" << Utils::toupper(s) << "\")\n";
+            out << "        return Id::" << d.m_name << ";\n";
+        }
+    }
+    out << "    return Id::Unknown;\n";
+    out << "}\n";
+}
+
+
+void DimBuilder::writeIdToName(std::ostream& out)
+{
+    out << "/// Get the name of a predefined dimension.\n";
+    out << "/// \\param[in] id  Dimension ID\n";
+    out << "/// \\return  Dimension name.\n";
+    out << "inline std::string name(Id id)\n";
+    out << "{\n";
+    out << "    switch (id)\n";
+    out << "    {\n";
+    for (auto& d : m_dims)
+    {
+        out << "    case Id::" << d.m_name << ":\n";
+        out << "        return \"" << d.m_name << "\";\n";
+    }
+    out << "    case Id::Unknown:\n";
+    out << "        return \"\";\n";
+    out << "    }\n";
+    out << "    return \"\";\n";
+    out << "}\n";
+}
+
+void DimBuilder::writeTypes(std::ostream& out)
+{
+    out << "/// Get the default storage type of a predefined dimension.\n";
+    out << "/// \\param id  ID of the predefined dimension.\n";
+    out << "/// \\return  The dimension's default storage type.  An "
+        "exception is thrown if\n";
+    out << "///   the id doesn't represent a predefined dimension.\n";
+    out << "inline Type defaultType(Id id)\n";
+    out << "{\n";
+    out << "    switch (id)\n";
+    out << "    {\n";
+    for (auto& d : m_dims)
+    {
+        out << "    case Id::" << d.m_name << ":\n";
+        out << "        return Type::" << getTypename(d.m_type) << ";\n";
+    }
+    out << "    case Id::Unknown:\n";
+    out << "        throw pdal_error(\"No type found for undefined "
+        "dimension ID.\");\n";
+    out << "    }\n";
+    out << "    throw pdal_error(\"No type found for undefined "
+        "dimension ID.\");\n";
+    out << "}\n";
+}
+
+} // namespace pdal
+
diff --git a/dimbuilder/DimBuilder.hpp b/dimbuilder/DimBuilder.hpp
new file mode 100644
index 0000000..71d8fd4
--- /dev/null
+++ b/dimbuilder/DimBuilder.hpp
@@ -0,0 +1,85 @@
+/******************************************************************************
+* Copyright (c) 2016, hobu Inc.  (info at hobu.co)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. nor the names of its
+*       contributors may be used to endorse or promote products derived
+*       from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include <string>
+#include <vector>
+
+#include <json/forwards.h>
+
+#include <pdal/DimUtil.hpp>
+
+namespace pdal
+{
+
+struct dimbuilder_error
+{
+    dimbuilder_error(const std::string& s) : m_error(s)
+    {}
+
+    std::string m_error;
+};
+
+struct DimSpec
+{
+    std::string m_name;
+    std::string m_description;
+    Dimension::Type m_type;
+    std::vector<std::string> m_altNames;
+};
+
+class DimBuilder
+{
+public:
+    DimBuilder()
+    {}
+
+    bool parseArgs(int argc, char *argv[]);
+    bool execute();
+
+private:
+    std::string m_input;
+    std::string m_output;
+    std::vector<DimSpec> m_dims;
+
+    void extractDim(Json::Value& dim);
+    void writeOutput(std::ostream& out);
+    void writeHeader(std::ostream& out);
+    void writeFooter(std::ostream& out);
+    void writeIds(std::ostream& out);
+    void writeDescriptions(std::ostream& out);
+    void writeNameToId(std::ostream& out);
+    void writeIdToName(std::ostream& out);
+    void writeTypes(std::ostream& out);
+};
+
+} // namespace pdal
diff --git a/doc/_static/logo/sticker/front.ai b/doc/_static/logo/sticker/front.ai
new file mode 100644
index 0000000..0617230
--- /dev/null
+++ b/doc/_static/logo/sticker/front.ai
@@ -0,0 +1,6416 @@
+%PDF-1.5
%����
+1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[6 0 R]/Order 7 0 R/RBGroups[]>>/OCGs[6 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 49413/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c014 79.156821, 2014/08/29-03:07:50        ">
+   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <rdf:Description rdf:about=""
+            xmlns:dc="http://purl.org/dc/elements/1.1/"
+            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+            xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"
+            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
+            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
+            xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/"
+            xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+            xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+            xmlns:stFnt="http://ns.adobe.com/xap/1.0/sType/Font#"
+            xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
+            xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+         <dc:format>application/pdf</dc:format>
+         <dc:title>
+            <rdf:Alt>
+               <rdf:li xml:lang="x-default">front</rdf:li>
+            </rdf:Alt>
+         </dc:title>
+         <xmp:MetadataDate>2015-05-04T22:50:25-05:00</xmp:MetadataDate>
+         <xmp:ModifyDate>2015-05-04T22:50:25-05:00</xmp:ModifyDate>
+         <xmp:CreateDate>2015-05-04T22:50:25-05:00</xmp:CreateDate>
+         <xmp:CreatorTool>Adobe Illustrator CC 2014 (Macintosh)</xmp:CreatorTool>
+         <xmp:Thumbnails>
+            <rdf:Alt>
+               <rdf:li rdf:parseType="Resource">
+                  <xmpGImg:width>256</xmpGImg:width>
+                  <xmpGImg:height>104</xmpGImg:height>
+                  <xmpGImg:format>JPEG</xmpGImg:format>
+                  <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAaAEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQV [...]
+               </rdf:li>
+            </rdf:Alt>
+         </xmp:Thumbnails>
+         <xmpMM:InstanceID>uuid:4a711511-2e97-9e49-9725-191a4c64011a</xmpMM:InstanceID>
+         <xmpMM:DocumentID>xmp.did:54a688d8-380e-4ce2-90d9-6bf2708364be</xmpMM:DocumentID>
+         <xmpMM:OriginalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</xmpMM:OriginalDocumentID>
+         <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+         <xmpMM:DerivedFrom rdf:parseType="Resource">
+            <stRef:instanceID>uuid:f064096a-ad71-bd46-91bb-69a1f800b249</stRef:instanceID>
+            <stRef:documentID>xmp.did:2da2ea4e-4837-4559-b46b-81f2d3f7de04</stRef:documentID>
+            <stRef:originalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</stRef:originalDocumentID>
+            <stRef:renditionClass>proof:pdf</stRef:renditionClass>
+         </xmpMM:DerivedFrom>
+         <xmpMM:History>
+            <rdf:Seq>
+               <rdf:li rdf:parseType="Resource">
+                  <stEvt:action>saved</stEvt:action>
+                  <stEvt:instanceID>xmp.iid:2da2ea4e-4837-4559-b46b-81f2d3f7de04</stEvt:instanceID>
+                  <stEvt:when>2014-12-22T13:16:47-06:00</stEvt:when>
+                  <stEvt:softwareAgent>Adobe Illustrator CC 2014 (Macintosh)</stEvt:softwareAgent>
+                  <stEvt:changed>/</stEvt:changed>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <stEvt:action>saved</stEvt:action>
+                  <stEvt:instanceID>xmp.iid:54a688d8-380e-4ce2-90d9-6bf2708364be</stEvt:instanceID>
+                  <stEvt:when>2015-05-04T22:50:23-05:00</stEvt:when>
+                  <stEvt:softwareAgent>Adobe Illustrator CC 2014 (Macintosh)</stEvt:softwareAgent>
+                  <stEvt:changed>/</stEvt:changed>
+               </rdf:li>
+            </rdf:Seq>
+         </xmpMM:History>
+         <illustrator:Type>Document</illustrator:Type>
+         <illustrator:StartupProfile>Print</illustrator:StartupProfile>
+         <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+         <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
+         <xmpTPg:NPages>1</xmpTPg:NPages>
+         <xmpTPg:MaxPageSize rdf:parseType="Resource">
+            <stDim:w>49.999194</stDim:w>
+            <stDim:h>15.998472</stDim:h>
+            <stDim:unit>Millimeters</stDim:unit>
+         </xmpTPg:MaxPageSize>
+         <xmpTPg:Fonts>
+            <rdf:Bag>
+               <rdf:li rdf:parseType="Resource">
+                  <stFnt:fontName>Bauhaus93</stFnt:fontName>
+                  <stFnt:fontFamily>Bauhaus 93</stFnt:fontFamily>
+                  <stFnt:fontFace>Regular</stFnt:fontFace>
+                  <stFnt:fontType>TrueType</stFnt:fontType>
+                  <stFnt:versionString>Version 1.52</stFnt:versionString>
+                  <stFnt:composite>False</stFnt:composite>
+                  <stFnt:fontFileName>Bauhaus93.ttf</stFnt:fontFileName>
+               </rdf:li>
+            </rdf:Bag>
+         </xmpTPg:Fonts>
+         <xmpTPg:PlateNames>
+            <rdf:Seq>
+               <rdf:li>Cyan</rdf:li>
+               <rdf:li>Magenta</rdf:li>
+               <rdf:li>Yellow</rdf:li>
+               <rdf:li>Black</rdf:li>
+            </rdf:Seq>
+         </xmpTPg:PlateNames>
+         <xmpTPg:SwatchGroups>
+            <rdf:Seq>
+               <rdf:li rdf:parseType="Resource">
+                  <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+                  <xmpG:groupType>0</xmpG:groupType>
+                  <xmpG:Colorants>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>White</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>Black</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>100.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Red</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Yellow</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Green</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Cyan</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Blue</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Magenta</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=15 M=100 Y=90 K=10</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>15.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>90.000000</xmpG:yellow>
+                           <xmpG:black>10.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=90 Y=85 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>90.000000</xmpG:magenta>
+                           <xmpG:yellow>85.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=80 Y=95 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>80.000000</xmpG:magenta>
+                           <xmpG:yellow>95.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=50 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>50.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=35 Y=85 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>35.000000</xmpG:magenta>
+                           <xmpG:yellow>85.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=5 M=0 Y=90 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>5.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>90.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=20 M=0 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>20.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=50 M=0 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>50.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=75 M=0 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>75.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=85 M=10 Y=100 K=10</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>85.000000</xmpG:cyan>
+                           <xmpG:magenta>10.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>10.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=90 M=30 Y=95 K=30</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>90.000000</xmpG:cyan>
+                           <xmpG:magenta>30.000000</xmpG:magenta>
+                           <xmpG:yellow>95.000000</xmpG:yellow>
+                           <xmpG:black>30.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=75 M=0 Y=75 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>75.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>75.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=80 M=10 Y=45 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>80.000000</xmpG:cyan>
+                           <xmpG:magenta>10.000000</xmpG:magenta>
+                           <xmpG:yellow>45.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=70 M=15 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>70.000000</xmpG:cyan>
+                           <xmpG:magenta>15.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=85 M=50 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>85.000000</xmpG:cyan>
+                           <xmpG:magenta>50.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=100 M=95 Y=5 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>95.000000</xmpG:magenta>
+                           <xmpG:yellow>5.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=100 M=100 Y=25 K=25</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>25.000000</xmpG:yellow>
+                           <xmpG:black>25.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=75 M=100 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>75.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=50 M=100 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>50.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=35 M=100 Y=35 K=10</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>35.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>35.000000</xmpG:yellow>
+                           <xmpG:black>10.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=10 M=100 Y=50 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>10.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>50.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=95 Y=20 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>95.000000</xmpG:magenta>
+                           <xmpG:yellow>20.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=25 M=25 Y=40 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>25.000000</xmpG:cyan>
+                           <xmpG:magenta>25.000000</xmpG:magenta>
+                           <xmpG:yellow>40.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=40 M=45 Y=50 K=5</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>40.000000</xmpG:cyan>
+                           <xmpG:magenta>45.000000</xmpG:magenta>
+                           <xmpG:yellow>50.000000</xmpG:yellow>
+                           <xmpG:black>5.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=50 M=50 Y=60 K=25</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>50.000000</xmpG:cyan>
+                           <xmpG:magenta>50.000000</xmpG:magenta>
+                           <xmpG:yellow>60.000000</xmpG:yellow>
+                           <xmpG:black>25.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=55 M=60 Y=65 K=40</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>55.000000</xmpG:cyan>
+                           <xmpG:magenta>60.000000</xmpG:magenta>
+                           <xmpG:yellow>65.000000</xmpG:yellow>
+                           <xmpG:black>40.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=25 M=40 Y=65 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>25.000000</xmpG:cyan>
+                           <xmpG:magenta>40.000000</xmpG:magenta>
+                           <xmpG:yellow>65.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=30 M=50 Y=75 K=10</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>30.000000</xmpG:cyan>
+                           <xmpG:magenta>50.000000</xmpG:magenta>
+                           <xmpG:yellow>75.000000</xmpG:yellow>
+                           <xmpG:black>10.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=35 M=60 Y=80 K=25</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>35.000000</xmpG:cyan>
+                           <xmpG:magenta>60.000000</xmpG:magenta>
+                           <xmpG:yellow>80.000000</xmpG:yellow>
+                           <xmpG:black>25.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=40 M=65 Y=90 K=35</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>40.000000</xmpG:cyan>
+                           <xmpG:magenta>65.000000</xmpG:magenta>
+                           <xmpG:yellow>90.000000</xmpG:yellow>
+                           <xmpG:black>35.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=40 M=70 Y=100 K=50</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>40.000000</xmpG:cyan>
+                           <xmpG:magenta>70.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>50.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=50 M=70 Y=80 K=70</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>50.000000</xmpG:cyan>
+                           <xmpG:magenta>70.000000</xmpG:magenta>
+                           <xmpG:yellow>80.000000</xmpG:yellow>
+                           <xmpG:black>70.000000</xmpG:black>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </xmpG:Colorants>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <xmpG:groupName>Grays</xmpG:groupName>
+                  <xmpG:groupType>1</xmpG:groupType>
+                  <xmpG:Colorants>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=100</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>100.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=90</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>89.999400</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=80</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>79.998800</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=70</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>69.999700</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=60</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>59.999100</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=50</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>50.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=40</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>39.999400</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=30</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>29.998800</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=20</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>19.999700</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=10</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>9.999100</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=5</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>4.998800</xmpG:black>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </xmpG:Colorants>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <xmpG:groupName>Brights</xmpG:groupName>
+                  <xmpG:groupType>1</xmpG:groupType>
+                  <xmpG:Colorants>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=100 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=75 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>75.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=10 Y=95 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>10.000000</xmpG:magenta>
+                           <xmpG:yellow>95.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=85 M=10 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>85.000000</xmpG:cyan>
+                           <xmpG:magenta>10.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=100 M=90 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>90.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=60 M=90 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>60.000000</xmpG:cyan>
+                           <xmpG:magenta>90.000000</xmpG:magenta>
+                           <xmpG:yellow>0.003100</xmpG:yellow>
+                           <xmpG:black>0.003100</xmpG:black>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </xmpG:Colorants>
+               </rdf:li>
+            </rdf:Seq>
+         </xmpTPg:SwatchGroups>
+         <pdf:Producer>Adobe PDF library 11.00</pdf:Producer>
+      </rdf:Description>
+   </rdf:RDF>
+</x:xmpmeta>
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                           
+<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[8 0 R]/Type/Pages>>
endobj
8 0 obj
<</ArtBox[3.5598 3.04572 109.766 45.35]/BleedBox[0.0 0.0 141.73 45.35]/Contents 9 0 R/LastModified(D:20150504225025-05'00')/MediaBox[0.0 0.0 141.73 45.35]/Parent 3 0 R/PieceInfo<</Illustrator 10 0 R>>/Resources<</ColorSpace<</CS0 11 0 R>>/ExtGState<</GS0 12 0 R>>/Properties<</MC0 6 0 R>>/XObject<</Fm0 13 0 R>>>>/Thumb 14 0 R/TrimBox[0.0 0.0 141.73 45.35]/Type/Page>>
endobj
9 0 obj
<</Filter/FlateDecode/Length 1046>>stream
+H��WK�
)
��)tS �o;�W=��T���=�酯�']YY�/37$�D	I N���t����3-�O�\L$�鍡�?,��7�>����e9������?�錑�
y�������K/�o�ӿS�_h�b^b��E�._���v�b
+�uU2Y;�e).q�����2 E�٨�_SM���?&�.�q�t~�)�m��V��=��Z`nm􃄞�@�}^�a ̨Y=��w_]���3|��p��!:�"�-9I��
�T'�'
޵���@���ڸ���&�-dȏ�W?yWB�6
�h��u:(8�`vM=H��!���1�H���
ڪ��Y�q�~�
 :��Ä�*Sʀ�
+�^��k��d��c��=�v������Jc���1��%]���weD
+����#-��8�LpkJ��4�:��wTi�U�F�������
d�t�
/���p ��q�A
�l&G���A�+s��]m��_6�ph
��#��
+�ƺ�%��y��ZlS€林�lԦ_i��w���uZ06��+�����
�ޅ�"��k��%�
f�fՅ���6����!������
�&��t��!?���}���1������W���H�E��Uݹ�A�R
+!����7j0s����F�}ϬQ�zؤ�}Fq?�$����M�^����Q���O;������ጐ,�\��e�*Ͻl��
��@�'[B*
��M�
�J
D�
��P�����≮ĕ&�������Z���Z
7q~h��Ѫ�Ó�y���P�8�ݫ�x�f8�E�
3���x'J��R�ĨNח��lА�v ��r
6ԌyJ�ܵ����5�d�U
�1����q�,�W|���NB�
�a��cvl���ݿ�wA
PT�����j,�r��.�h�B%m���sTj��pjJ
��4�Gȗ�Kd̐��6�����wᚤJz�������_Ay�>s�#{|?�*W5i�w��5jj���*�MH:X�uU���'��V�F2�i�gyp�ǐ�������O��{AWp�/�Y�W���ϧ3��S� Y��
endstream
endobj
14 0 obj
<</BitsPerComponent 8/ColorSpace 15 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 5/Length 54/Width 17>>stream
+8;RZ]!s7lU#bVXdK*:+7)oU>4"0_br*^pT193<$o)#s[A!4RqA2?~>
endstream
endobj
15 0 obj
[/Indexed/DeviceRGB 255 16 0 R]
endobj
16 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
+b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
+E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
+6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
+VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
+PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
13 0 obj
<</BBox[49.2144 45.4716 109.766 15.2201]/Group 17 0 R/Length 47/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 12 0 R>>/XObject<</Fm0 18 0 R>>>>/Subtype/Form>>stream
+q
+/GS0 gs
+0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Fm0 Do
+Q
+
endstream
endobj
17 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
18 0 obj
<</BBox[49.2144 45.4716 109.766 15.2201]/Group 19 0 R/Length 120/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ColorSpace<</CS0 11 0 R>>/ExtGState<</GS0 12 0 R>>/Font<</TT0 5 0 R>>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream
+BT
+/CS0 cs 0 0 0 1  scn
+/GS0 gs
+/TT0 1 Tf
+0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 29.7595 0 0 27.9204 49.2144 22.2002 Tm
+(pdal)Tj
+ET
+
endstream
endobj
19 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
5 0 obj
<</BaseFont/KTUPPB+Bauhaus93/Encoding/WinAnsiEncoding/FirstChar 97/FontDescriptor 20 0 R/LastChar 112/Subtype/TrueType/Type/Font/Widths[588 0 0 579 0 0 0 0 0 0 0 290 0 0 0 579]>>
endobj
20 0 obj
<</Ascent 899/CapHeight 667/Descent -250/Flags 32/FontBBox[-113 -250 1276 899]/FontFamily(Bauhaus 93)/FontFile2 21 0 R/FontName/KTUPPB+Bauhaus93/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 180/Type/FontDescriptor/XHeight 487>>
endobj
21 0 obj
<</Filter/FlateDecode/Length 2193/Length1 3973>>stream
+H��W}PT�?���ee�]XQ� j1���ve#��
+�IY>�+W�Lc� ֯6im$_&��1��LS�V���(肱֤j��3Ѱ��}��:Mg���;�wϽ������{��W��
��� w�;=��	Da��S
l+ �.����6�o�ʗ�/*9;�g�ލSQ�)��S9�؅zGv�%ޒ+��:���;�T�x�w�x`�b����i�3�ś���-�گ�;�Z]��lg3}uM�fo��-��lt�6v�M�枃�4�ȅ	t��)஫ �
� ߤ�-�D[$���MM5ɂ�P"q�P���*9^%]�~P�!�h2GFY����:lx|��hMJ
�2r��o��y -=Öi���m��l׃rr�8i�ӦϘ9���s����w�/(\��>��c�{|a�V�p��
?y��_l���Ww���;��ͷZ��j�������������mK�,���\�'��o,�]��哟>Q��=U����?^R�ŭ|v˻��̇������.���g��Y�tÏ�5�oܴ6�����~s~{�xm�� O
+1ҙȜ zX	��
b#n�!ud3=J�ы�a�"���UN�3���Dkb��ZE��j�F[���T�tk��l��TQXna;�v�O�T_G��9�%���dY���_C|��/�(�e �]吲^�*
e��ٯ��o�G�v�
�m��߻�wg�˽�={����/���O�O�;�����/����v'�>S�=
�3�P�P��
*����`�� Bw%��|�l!+IYA��v:�4P	g�g�)�	�rM�H	/q �%�
.��nN4�D��
��	���N;�w۬�P�r���}	C��H�����ړ�N|	�{��pS�� !�U$����։A��FB<�F�]�1pe�tF�'�p�(̖��eo� ''7
�&�E�a��l�-���$+��{&D�
f�$Y�h�`{&ݚ�r)p������g?�]8�e#���tdT�y���E ����xa��<5���
�$ִ��%w�8
�Co�����~��7�e��J���g�
[�Qj at Q�}Ĉk]�u��
+N�
��h�H$`�y ���4����auO�$�8�8)-m��еQ(��+��dL�i�%J�
\��G�<��F.�9w�r�Ј��B
F�����:�L.Y���\��/���A�j���s��gNx��y��@�ȗ�r?�@�����q�H��4#a��lfD��@�J�
�:e������2�g��NH��#
+��U��KV'x��-
��/ A�.��?�>T+��;$6u����� }����
�|hc7��
�-_����yX#�C=���JX%�>�͡}�cD!�
+�����L��	��p��B���ƺ�b
b�Aē��=������ρ"���
��7A�ȃC���\�]�Wh�;U���h����4�ڰ�`
��(��1
7}�C��iJ��R:xQ��'a�}�(�s����@\����X�?��ZP�}}lCyxi>✲���z
>ώ:7�2�q8�nB�5��o�;�����3;'�3�����`
+d:�qTyo�Y��Bdc����P�`rc�
����k�ٸd�kyx
т��l�<Fo�0�	��1b	
�k���@
�@�U��ݡ|�r����
��@��{!���C�ڂ� ��k
�<��
k�}U���k��B�)����w��{�Ω:���r��k�K��$2�\a�R߯	f �7� ���
iju���u���%\!�� �m
B�
��vXE��
�A�8
+�}��	�!e1n)�l}��
��z'¨�
ؿyb�
�;�
�@d#�a�Z�n�)�簎ay��
�r�ʷ�)%Z���nD/�q
�Ձ�NAd�"��E(cܳ=
R�GJ�Zn}��d�4������_�΁�*e�z̀
��;a��EI����̘��<�vMQ���Wx���Tpk2����L!h2��G5�G��&� �����Vxj��ȓ���k*�+|������2�g�/�˛�:ѳ�³|���Mm(�|X�rC
�}�<P�G�1�7	���
ە�ه}6pb��T�Y?
棔�e"�"<�
��}�j��
˱�D��M���^��T
���;���9�R�������C�.� �
�/
endstream
endobj
12 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
11 0 obj
[/ICCBased 22 0 R]
endobj
22 0 obj
<</Filter/FlateDecode/Length 389757/N 4>>stream
+H���uT�K�tK���KJI,��t(݋�4�K���%ҹ�H�4J#�Ғ�(H
+w���q�y�y��~�3��̙g�<3�� �Y9El
+ @� ]��!O��-@� � �\����+BVKK
��:�
OX�~�����WCa���iHKL ���0�q�Y���	`�5 �c����k��
+ X�] �x=�
��
�8����	�X ��Ŀ׽�>�.�f���#aP�����
�n�		�D^{y8�����	
�d�p
H��	st��:Y����׬c xc
 I�V�?S��!�:��_����
�9[�YbQ�P�~�+rA
+S�h�����Hh���t^��

�'0�߅�™kY�X��Y9�Yq�q�p��l�'���W����z�E����E$�%
D>,��^|t*K)�%/�`���\�ҫ����:���&D
�
���[�7��dplDa5�|�mb���4�,�y�y��{�e��5�
������������3��
�⚅,t+w��h�l���
��
��A

��
�	�
m
k
+��xYU��
�H�&%��Ȥ
+�q��O'M�z�3�K�T�@v[NUnn^\�o�]�a�b�Tr��t�l��mE]e~U�+�j�א�Z�:�z��a�q�i�����5����};�C�S��������[�\_�ۆw�����C�a��Q�1������;>�L$Lz}4��:%8M7�l̎��Χ/�}�XT^�]�X>\�Ym[���n�!�ycsk��kƶ�ʷ;��v{���p����I�s���0���X������ݯ�3�s�󝋒�&�$��W�WW�*��)���!�$�$�%�!e$c��HNOAKIMEq��������
�����ƕ;KL�w�@��Y�X;ؚ��8^�+�Dsp����f���K�O��TC�P�p�J%���D=��+�+���O%$*������������8�I�Z�\�Z�^�U�K�_wL�������"d�x�����]�}����� �����>�9�=�;��s���_G�8/�̹N!G�z�[<�=��2�|B}����P�Q�z�l�H0Wc(E�e�n�|�P [...]
��kJХ�e����J�*�+��篍k�j5���U���[�ZU�
��h��0�|�e�m������6�]B�@�`�P�p�H�����������?QM1Msψ�*�iϛ.��Z
[JY�Z)X-]��R�޸Ѻپ���w�������?��@��?��5� ǖ'v�N��g��
��
+��W������3�g����L�C#u!��M�M�M�E�vAms˔F�V�N���A���̝GL�w�A�̬,��l�l�ؿs�ݛ�
���n��ͽ����+���!B�²"��<b��4$����݇kR�ғ��e�d���k*�J��Y*/TS
'<�S�V�҈ԌЊЎԉЍЋЏ0�4�2����?M4I~�f�����s-�,󡅰"+�u�M�m�]�}�C�c�S�Q�\�R�Z��s�v����
������G��i��H����3G�F�FaG�D�Ƭ��č��&�$V''g�$�F���LG��˰�4͂d����j�i�kh��C�f%V�Ne��Aq�YU�ڪG^/�
�Ճ���
��[�Z{�Vڱ:�;�`��=�c}��n�K
�
���Fv�(ރ��> 'R&k?���3�?�4+:�6o���
���T�\�ұڿ6���������V����ʝ�o���F?L����T;�:�>�::>�:�;��eq�vx^sa���wݥ��ʕ��'�_� E�F�O\D�K�LtAnF�F)F�|���
�ԭ6�\�`�@z?�m+F�;�L�wiA h�y���͖������)���M���g�w�~_
�@���ZH_XA,�"F)�%�/�*9���a�Z:�Q���,\�B^_AU񡒀2�
+�*����'[j
��o5[����uR1u��h`f�m$1�xJgBdr�l�t�l�y�y�E�e$�fe�g-g#`�dGbwj��0���TOC9;��� �ܨ��ݿx�z6z�x��8��I����P��=A���!.��a�Axۑ ��ϊ����}�b�G�-����ޒē����x�`�G�/����Ԝ��������q�_�O�?�0�"��������۬խЮ˯ǰı²����µŶȷ͸ӹۺ������ �0�@�R�f�zƏǦȾ�����
�*�G�cЀџҿ����'�L�sٛ������F�s�����M����6����+����1����M����Z�����:�{����� � � ��T�?�~ò��~i��~L}��~cbA�~�Da�d���
��~t�y�~W����~O��>~\���/~���|�~���`���C ��x
������}%��H}
�1�X}%�z��}K�
��}��
{N}׋<_�~7��A�~��-
ψ��|���|��Dz|+��E|[���s|���z}
��^�}w�O@�}��-�~ċ��	{G�u��{D�z�{]�Ĭ�{��f�{�Zx�|[��]�|ϕM?�}R��<}Ǝ���z��]�Yz��Hħz����|z�=��{L�Nw�{���\�|=��>�|��v|ېI�8z/�r�
z�;�bz'�s�Mzd�6��zɬqv�{D�[�{��0>
|;�
|���
y�����y��a�Iy��?y�a��zY��vzݮ�[{^��=c{Ф�I{R��*y�߄��yf���Uy`��Vy���y���uKz��Zi{
��<�{z�%�zȎ���~+�~� }��͇}W���0}3���}HtЄ�}�Zk��}�=���~���z��ɇ��� ���}�����!�~����Єd�*s}��Y���<9������w����p���S�w�u�����������u�VrU���W��؈|;,�뇔��{���R�s��Ѳ��������;����:�8����q)�P�CV���
:4�.��8�����Ȅ���2������񡂡?�U�����p
����V�u��9S���
�����c�
�b�փ
����R�����.�ՁN��n��	��U��38���8���A�/����ͬ�������δz��6�߆�ө�n1����T\�e��7݀t�XT�� [...]
+�\��l�G�N��ػ�ځ��N�ā�a�5�t��N��zl�ߴ�S<��H6���*���<�a|��k�z|C�V��|�Ǎ|����|Ik���|�Ru��}26��'~2����F�-����B���*���o������������j�����Q^���@5z�I�`����ٳ� �$ĝ�"����c�ߘ���&�U����ij���|PJ�ˇv4v�y���V���G����.�2�{�������
�����萾hS�掼O[���3��Œ
�(����J��ьx�&�$�Ԟs�҉h�
+~�2��gK�>�-N}�o��2ن
��
N�%��է�������� ���>�w���֣A}⇤�\fX����M��ݘ�2,����
��K��Ԑ�3�����g���°����[��}
+�0�e��6��M
�_��1��
�?

���1ӣ���Ǿ���I��^����I|B�̯d��ܪwL���e1$���:
������r�W������]�
��1���S{��z�|di����L
���g0��\��
U��������{[���G{!����{	�ޔ`{&y�E{xbi�e{�Jr��|�/c�5}~
+~���:����f�#���������M�Kx+�C��a|�u��I~����.y�W��	ώ���әߎ��
�%�¡唘����[��w!�^�T`����^H��*��-�����	5�G��Ȩ�瘎��=�Π����4���r��v����_�ҍRG��f��,ދ̋������|�,���ƕ����{�
�����Ҙ�t�ٕ�^��1��F�ő�,;�'��<�!���_���������Y�l�~�J���J��t�S�#]����'FA�4��+����;ۊL�P�f�&��ɔ��ޝ������ը�s@�夏]�0�E�����+:���ևSS	𧠨��jVPp,<XQ)�XVl�(Js�&�J!����K{�@B��E�.
�e���WqQ䆓���~3��7���F�HI^�\�������ӡ���+j&Y���b�dML��
�{#�����)F���A�;q��T0��_�
^��9Iݤ�xֺ�ƢYFh�9Յ�hX;J���l�����n+j�ġ�(�m,ּJ�����(Va�V/���aؑ�@�Q~.�8_]���7]�������
��g�|�F�)
-�/��MH�|����P��8�%�oFx��C��<��R�l�
A�^����Q�l�
�z�rJAU�U����d*�
���N�$i܏�
#�v
b7F�*4ނ���
+
���pv�i�x֖�����I��o�����J۱�#�
+��W��h�ԉ�l�"�kx
wVjG�Dz���*��ߜx�W���:Ʃd��P���$�����j�4W�M��[��,]�ʫ$���W��$I�&��N���}�7¨
s������1@�9�TɎ.�E��zN�Df��*uwr ����	�
*�#����,�h؅��"�8=���N�
�%�=(�p���Qu�9s�Lӓ(�&��w�ھ�?��ER
�AHi.R�~	Ԅ�6�����:�*tД3*���۱�x#�m?r~3��2�+�w����p���6�yX
a�TO�#��
+U�¼<�_)�
I�(��}��W2S�X U��w����
M��f�_T�)����?k��YYF��K8��u;J$��þ*1T� >,��#h�%T�,�Qۥ{[��s�:��9󅼓�&^!Փ�a��@�!��"
y �
+��.��Jl6m�Hj�u�,b�U6�+s��
�hܸd�-ʥ�}�wi� �-s�un=0�Ľ�i-_�*)U��_ˈ�
���b$
��na+;ϧT�
;p�pA7����C�4��.*�Iߥ�a�8��M��m�.���ACi���7�\j|fi������ԫ)��]ޭ�j����ʄ���U�]�3(í�
�wh�J��c�h-�4x7���h׿*
P
0�H됎L����랇ڡu��Â������,�{�Bz}��8�v�g�g
�Ҳ�d[�!XTZ�Z.��vl�A���g��
+{;S�
m�`v��ؿ`~�?g�a.�
+3�Ì�{����L�^�������W�����Y�e�4��]�L�<pq޴���������k���!��G�
�]�
l v���:DeH��Xq��E��K4kHoS|�X�ֽO�7����o���*�*�+ ����2���h�`���?���k6ݤg���,�M{ST3��`�b5��XE�#*�і}�
z�#C�//��
���7��}��V;�9�T��
)?�ވ���2[�ُ�]�n�$�~�
���f�Ќ,�d���p,��B�AdrH��]`u��P��V�k�aEV�vYN��U5/y�fD.�ݡ\ �1����Q�a#K��E�:�|��N[k�=�&[],����1$��ξ�B���0Y�(�ߊq
$���]�!{Ik5�U�3�j�=Or���)�<V��
A
8H��:YjD!��L_��|O����l�xE{EY[��9��#Ev�x���2�E��as=�[R���Q��i��*��i����66�`�����ώ,��+�#�,i��1����A2��� @������ƪ�W���m���H�XJ�NP�+�)�̧�+��=l��$�zU�kb��]�i��[:��<�旰��A��r)<�� ���+e.��
+�%���ӂ�B�s�W�����ď[��~�}F.+}W����t�=�� 
+��K�e&��,�^��-��v�a�(0����

�t�tz�S���w�0D��6j��tl��.\�lVդ����)��-
g�	[ѭ�'��x�|�|D�D�ߵ�����v��wi���8�ư=�݋�bY��
+���TC7j�KI���X�7 о� s�{��W|}��&饷MR����Q��rs�%5
ԯ1�G��
�*=��V�DM� �鶢l���`JY����Ke���\
+��kl�=��ּ sr͌�
+����_L� �\�E܋ʮܤH)�B���"�nĕ)J�ۙ��3g��Y�i&M{&MʹI��B+!%��,O���=Y>7o����k����!w����I�~� Ir�a^
=�C�#Z��h��`W�u}p����)��"�z�7ff&�3����$��
�F�����J8Ҷ5���m�
+
u��R�_,^V��S&�aR�~Pf��LL_Dw��*��`\�-�9]q�����
�
�
�����T�I�6)�>u6	D�`e͢/���xq�Y%�9��ʜ�;�åO
��
d\˾�P�&eR�z��;�]����.�R�<o��Ρ�]�P{?�:�
r̨\���ʻb	�Ҥ�3|����m �s�؟���W�9����oZt]Rn��
Å\�c�W�#+�n�I&�g����y��Ajs�N�06�HiD����'@����J+
��a5V~�cR�I��̫�vwtU��c[3+?F|l(��i��U�����^+O�?R��s����� 1�Hqil��$Wþh����=���(�RE
+��1�B��vџ��n��F/��
Bs�G�����M�Y����9>�ܖ3��ȗqI��
ڣ��5����V��_�1ȣ�β��i��JiX�0�WV���H[8g�� _�/���
+n3�
`�	���38A.|�f|ј0I��6�b�v�%�&� ;Y��㿜�҄# �d��D.)��.p�'��3�J�12K[D�uɥ$s8�I<�R�i�m�J��8�}��f�� ���DJ�ƀ຃ws�!�ʫ���r��RX��
-\y^�*�̏Ld'�雲9?)

"�q��^��5�/<4��i
+��Q<����
+��;/��Ա�JB"���7��t͚��,m��Xdھ^�;촞��&s�`�Y�"������Y
�����{>Ɗ�.���z^48��e!��R�6}��vc����Mi�oz���o�0�'�=�~���i,3�:?-���?oS,���9���w������#��R�Oa����������
;�	?�
�����p��B����
+�֞I����O�
ݟ�e#}ԯ�N$�\
�l?�
]�,��
��y,��>&Р����q]�yh�0Aq��K)ĝB�F��ҍcH:��-h-�ǟc���f)�K9T��127]����q��EjL���<>h��;�|�U
+��������d�p�G
+ƫ�`�&!���8a
��l���`83>�.��q��ɂ�n������A�9
+;�
���`��H��B�y�g���
KB���*k�㰗2fF�=#��OM�
� �eT?
+m��Tm��
�_����OBۊV ��<ɆF('�n3u�G~�Ȯ#�7Њ�9��[��١`N�s�.�P..콤
'Knp��F�
�\�?
�B>���-����`����N��W�O�OW�B���l�f��x��W�^�<x==���Z/~�4/�.*g™�Pʲ�<*V-}&���ٟ�w�z��Wq=g?:��;[���-�(�Z6*<�Ȉ��`p?���2���eQ�yў>�b���-_�

x&*/��(�j����_�=߆󑊢�zF���`�Ld��E:���SN��ʔ@S� 0���3�|T�O�Ko�k��t��o}bF���z$4���-���,�.m��'j*J���|)J
�6�B������P
^�3ewܫpX���.��*��,0��7xP�ڳ�:2�X�
OT�21|"7��=<J}|�wl\��}vGic��Q����S�]�<�C�jȹ*	@8�-f�������݂={ñ(
����]�x�Ѩ�n���?�ϑ]�q�O��ˏ�ExyU���c�0��t�M�]��u3���
j �o)(Co��~2�s�Ѓl�����x��֙
��
�{��L�7z<��"�!s���[��H��a����*�{���1��l��1��,V��&I*[�v�$�#1/�� 5�Z���p(3��]�8��i2|(�2�
| z�D ��5 N�s֬����viV�`D�0Û���]���R)L�!'n��"� <v~�x��)�~�if��
+wnK�ܑQV�B�"�����Խp�� *�+ت�ED���*� �����(���o	B�'{p���wH؆ʴ*JѪmA-n��WjGE���ޯ�y~�~?r�I^
WO
��@�����l)��ƶ�W��giX��
�"�C�#�k��nA���
�˻�r���)b�!�U�ڲI���b=��>�0�ߴ���y}ĸB)H�[�����Fs�
��V�+���̯+Y(I���(����x&��9JAI���'tXm�y�G�=�X[8�TK�)�2��
<�
TSR�v�x��lȓGO�|�g�/�{�>���
4��/�g�R��F�ȶ��&�A�5���2�
uЯ*B<�i�� �0�g�r+O��A��,0���-�b�u�g[�\~�-����4:I>幃A��uF�Ǟѧ��u�D���)B�,�
*�?n�`
	'qQIz���K֗�4�{��
B_g�6�8�#�ʉ2.A�$69�!�̒�ub1&D�3Q�x��"�
>ɏn��νx�VG�&��Tۨ����Ó)�sx�d-5��Kx [...]
��P��mBU#g���B�g˷�)��-*�E
+ar���>�>Ƶrn�[ɭ�F �-I���ByѸP�=��ĶK�UC
w��G
�D��}�����"��vN��.p�]�]Q��8u�Y��{�#q��C��v}sa���x_o��y�iN�r�����(�
d8a�w�2C�Q�}V�8�UWO\�g����
��\�����yk�@��d���c��Z�t���9$��u
+p��-���1
���z(�=�f)
+�v��
�ě9����2�
 w	u��煼��ת��#����{P6�+D��q3HIi����%��B�C��
b�!���kc5�&U	):X�$܎���[��b�2�
*@�PkcӘ�d�oT�B_L1Uwi"�)��=�2#���pI9,�R�O>�T@>�;�bn�����D
��PuC����
fk���^�^��\��G~�
 ��o�L�Rc�Hqܮ=-8^5Oń�y*9��:-\�g8:T<��?*����C;��[���y�X���+����I�;��lRL߭�$D��vY�TQ6�Dy��Vm��fy%/sIs��mXP1�Lռȭ����vow)�QB�b����_ L�V�wu�p����eė���O*��|�+�]�(uH�װ4�W�U��.�{ �4�\�m.Q��w
�����R~MAi���Rz+%�B����K��z�?'�{ �� ��
k�҉
�a��a�{���H]��sX}d����a~�3��_�au���Qz�	
�������VM\ĵv5I0�L�M�)�DŽ�p���1��:5�
��,�&����4��
%���!$
}o���c��ޤ�A�]R^x���T◬M&/B�:D�wA��2�4�����?�c�d&g]5�b���4���a?������i�ǐ��  ��Ĉ��.OA
6�vfv�
s�d��(5yT��H���/P��=�(�a��;zUs�
�b�W��x�Da�)E�ʼ�	$�sg�PJ�r�e�Y�3 �w��`�c��F�o�0|U[j5k��.�5�J��&�����e�T��o�r	��È´��}I	l�p�jC���8c���5�J=g�%U��o�|L5��8E"
+ِ��
�[A
k]�����J��͆�VB�M�"{�N�r�����Q���ih Ц@�Y?��6��^߫ZWٯ�]ذ���c؋h�KSLj:>�O
ɲ���.���ݰ��Q�{5mm<ٷ?^�v"��}�ъw��9��O��&�v��X�7�km[	�,70nΒ7|��e��P��\I;<��u�^`u�!��$P����B
+ET9��ٲF��W��c����m$��="G
+}K�e��6�~֔G_���M�DԿ�s`� g�]
�v�p-9�\N�d{:�:�gv�H�_3fC;}�Ɠ
 P�� �N���p�H�
��d�U9u�;���9$8w��
���3�r�#�A�F�iD1�n�����
-}��t�e�  ���D��H�!5$�
�,I�Q:�ȖR���1�3��<�7��
�j�1�[�ЊT��m���WwzU�x��|����վ+ք{������W��>��p���:ʤ�JRqY���^���`ǯ�<�~�j��!m�r.�B�+��'���OyY+��fN*żt
�W�$��W\�2��� �M_�c[�g������jj�%WuU{{�,_��p�W��n%}P�I^�W�|nˆ;c!�p���u�cʨ�N!k#���)k��sd��5n�Ž�6Q{H10���U�
+�
�
�-�"{⠇TZG �R�,��ɇjࣶZw8j	ICF���:�b
[	
�\+�?�
+���oA
n'a
+
+��O�j0���`�%��|�^�/si�_�Xǣ�Lqi�w]�I�έ�D"J���!y�!�Զ�n��0�R�	z�WC��c�c�h���ūK�_R
[��*)!
OSo��u���Oշ�܌W���ze�W�C���a�����ϝ�L���/�QB�o�_��k�/cg���&MV?��֫5z�� !g����"?w��P͚�I�Q"����P�AdtE)q4��j���G�s���n�{"�
���}e��UM�rk��zvi89C}���
X�LB1W�".ꕝ^M
�����t?WK�L�w�DP]t�U
�揊1r�J���ոK��V����GM;ph�շm� �v>��-wg����FN�
��cI�P�#q��W�����I
��;�N�ٶ��A�)���H~�7i� t�hl�~��~dz�Y�
C����x�2>*c&�m�b����{9f�1X*�L��	�#>�
��
+
V@���g蒼]7n249=M����K%
�;��,����F�\j�
�1��kl�Z�i���؊�����ΐ�.|Q��9��а�$_.!
��;�̿�l���E�,����ɥDi�������}D��
3^�a
`Y5�
g{J=m��ɳ���y�3���C�M'�jM�-i�Ц�m��
�n5?	�SJ�E+U~ �;����q.t�Xd���~���~p*Q�eS��%�.��Ћ�"ư��Bs���Z�6-�����6[\d;�^z4�`;64藸����ͱw���
;����|�+&�A�f�LU�3���X�T��m���)l�F�'l
�V��ɺ�gcG�Ob�bɜ9�;v
\�C��L,�
>B?�KGC��e"�z
-@��E�����H���</�s�=/�ᑍY���{��P��w\L�1A
�|U{�_� ���"҉w�+Gm�
�$�#�n��o���x��N����+���}M�9�MbΥ�_ at Tܲ�'1 �,�q��$;��!�헁h1kb���
�����Bo
+�\��w�J����
���uY/|ϕd<w��Τc�~ώ�����
x�¡�#d��g3�����~����g�‡� xT2��ȵ��6s3�i75��ƻ�Z�E\1�\�ɺ�W�A' ײ
�� M	}?;ʂ�8|R�0S�#❣� ��CۿU��b0���L7ֽ`���hcEk�T\�m
�+	6�&�=����B�9)� �곌����
\�@�^
jk��a�ƚ��Ph�<��=T��6�K^MK�͋=�݊�$�Q����-�U�&�>ILp<�5������'��҉�����$>��8#�g�L�2�m�	��
c�����1
��c�
��F�w)�P��+�r�kC
q�p/��u8#�!�*
g��
°�Pa�`v�u��@��o�H�`"Ž��:�z���
_��Q<,D�>'Ӆ��WP��� .����`�x�W��3�|!6��	�
+�5���
El�["�,0�	e���[Oz��0~l�U�O��+����&x��kP��c|u��$k�.�?�{Qp""k������r�6��isV�a���=~�@�W�_�
+.<�7�
+��2�#h?c~�m'r��E�_�xs��6����a��������G�+���K
1��4���L^kUp�^^��_�� m�S^d�Ш���'����>���}��5�����$:τ!
E��[�b�Jx&�n� t�(��m�;Z��s�F5u�q �X�.�Ղ�BqKP��� *�����l���%{�ٓ{�'��f';�,TT,�b���h
�Uq�2Z
���3���;�}�����T9�vw��R�R;G
D�
+
K�*��/@hUv������$�j�!
�@�
�vyבm���,W�|-͢	�^�
�~�D�_��􆭍�"��ĉ����#c�禘�*�X/��Ϝ�e>�|�XH��;�:��)���d9gƖ�4�aB��
��Q4 
�E� �w�,C
+ۯB�U�#�>�SV�$L�-��5g�V	ϯ*�B����#��}�
np�þ�td�����U�$D�b&$^�\^�&Z"/˺+�-}��%�Z�
��:}��9���A��Yu��	��rT�lP0�"���~!	�͚*@5K�?�߫Z�-�P������=
j�>��܈�[��O?)�a5�
+�����?��W���Us����y�5^(ge�${C����m>�	"���G�գ+�$�踿��ϫ&��
Xw������
��8?��g��,'ō�=�"����/x����N����M)���'��������EF��q�rf�
CįQ9ZY�$r!���6m<YZС.�<��V^�z{U�S=
�P
+k�X%3�x��fj��n%^�����
i𴵻���s���3�0���q�h�$��`kܯ�
D& ��!�M����1��W�}훌1r����=2N��Sd�k�b�
�\��ŀ�p���d�W}^�'�S^}�+P�0iC�
�1�R� 0hDz[P�� �&!��v@�B��]P]V< �SܒG�L�O�
NgK]+&
��-A
+�2���#�sL4�j��&�D���i�b&,�A��MS���U�D��9���y�
+v���98�����j�c7MI�~�(�sL#�}�3���(M�^ N�i�E�K�E8�mi�	u�zI�$N�r|}*��+�'�4��w���{�y%��F $��8
��@�N�z��^G.g����-1Vfk�)��G�����]�u�6K"���K���1�p���P��8����r���>�)�4�
��V�9�k�J�$#��
Fь�X��٥�C��p�[��ģ)C���S�;rFP#�I�m�K�G<��h/��U�-,C
��O�
kOK�YY�;�MH-�t��%�^N��ξ�B���7"
+���O�aj��X�_84�V(N��-{D)��F�0�$�!�o�J��d�v/_�
�(�ǀ��U�H8�B �c�1����f�b5u��&�*�ҽ�n�2s���G4
0:�\=Y2�߯	�$bi�8亵M�$ҙ:ut�N�)��Eh��Dh��d�j�21|�*T��V�˰���T�5ȮM7-�^��S���84Te��hRҨj�[�U�G��U���1���K{�Nh6v�g֨�+��G?���`
lݔ$Rq-�.ަ2��S�e�8
pSՖ�k!�X��C�\�z0�0	nlh��j�<~I�����,K���r�L�)�IM����9M
�_���c+"vҜݤ�L���$>ɺ��z���j>>��X�9,�ZL-j��Ib�k��ȉ8�˚?v�t�����x������P�IO}�_ay@
��:����|Ve�6�����ubd/e�3<֭�z�t��e�a��'�c�LaM
+�lz&,f^�_!��?�l����2x2�X�y
���ń�3D���
�)�\ ?�y�e�
~��4��O�+ 9$�
�
+���E�V�D<�O0�Vbj&��mLB�2Z܈�b9��U��;n���6L0	�+��oˇCr�E.~�>T�
Sؓ�7X����?MM�!���Լu�O��t����P
Cbt;���i����ް��a��@gW��#�@��4c�9.D���o�
z2>M�5��i�~�u0�
�q�s
�wQ�9�ǸLt��삟�Mz)>���kɝ���I�;���io�"���U )��]$Y���L
>$����$T����:gUo$���UK���,�C�`sCMAJMÄ��K��C(��g]���ٮ9�s�U�G�0?����L�5���
�QM%��0O�l��5&���`�Ƒ
1,��x�'���{��k+�mY�}����-J�s#\��d���:�i/�N�K�����  \8�H�����stQ#��-�ND�)�.s*�Z���y�m�n�f����\�1l����{��(E�=�VGW��9��s�:��?���w���ǟ�Q�Z�sC��6��A�1���ƃ��6K�@�8��O�UY�^��`���7��������j6�@�9?,y����
t4&�}"�T��-
+�\Y&k���V��x�녣3��9��1ٵqQ�=�b�eMq\���
�����`/nņ|���2��͌Jkz�D�mͫ�IR4�\~5Nl��օ���KɁZ]T�C�3�l�̅��D�3jSS�)�t��Ww$IX�[�w�V��
+WT���U�w^P�eU����h�WE�^ؓ~W�c�h���s
�s��I��g�����`��w��g�s
(�5��� ��mr��
���]
��
�B`7Jf�A�

���aA�3Ɠ��G�����?{�O[
�?�x�j�/����Z�*7�e�x��X�z�
Ά��})��C���?`��K�c�M����Ռ��&)����Y�5����J]q':]$�؞�]Yv
x�(�����ı��H1��e�U����>�_0�b�?*񸨎�b����
¤،���
���D���;W�xm]|N�7U��13*�;��.�=��>���S�Üj
)��CM��>��.��e�I����1���/�Q�v����6T�
kk
+�Ɯn\\�F�F��V#���Xd���
e�&~�WE��7�"�bj��
��u��^I@�j@�bQ�
W��k��8���w��_�D
��^��z����
x�Z�KA
�_`�T}�]
+x�}�Ё�M0S�,r����V+	K��O&�ƈ�`�;�E{irf0 F�]�� w86f�

����fm_8���c3����V�<)�r1��p���� +h��s|p�
� !Q��P'�Ղ
��ʛ����2�r�Ӥe��j4Y�
r���,
�r�?4�
! U��q�]f�(��*&umM+
�;�1�
+-���c�8�C���j�L=L��1�TDJ���7���>����)BH�*�c�HY}~�xI,{��7��W����jW�ާ�ʇ��h�g�_���Yov�MKi��N>���
Q��R���ǧ}��A��Q�j^��G
�s��yJG"�?txt,L��>�֍p��_��>�Po$��^<�%}���K�D��S4�
+�*S�<ܖ�y�d;���éIJ��~J�M�n>��ȸcI6��u���ɖژ��䩊i77�_�5W�2'	9�
�t�^}/��8%wd�� �0k��)��ͦ�F9
����k����ih��3�Sh�
�PB�U�Lz��s���'0�$Y�/L3����o�����
l���|��f
�ɪ\AW#�si��S�-�O^�I��+�3��6���xas�� ���@M��
+�A
h��m�4�5 V�-��'
ѵ�1��� S+
��
~*�
�%~k� ��˝��ʉl
�*�
+�lك�=�3���_2~���OgP��s
+�C�����c���d���[�a�ے{<Х��j�A	{! ߲ۓ
���;O'��9+wEH�E�����&�J��V�?f�iӺ j0�5
瀶bhW�Zx�o=��ƺ
0���z���hK5�m���o��v
(Y�Ou���t�;���e=��R�*
��yMV�n�,�$v:��Q�ڳE��.�y�Vl�;��svn��,��Wi.[�����@�����34S��D_!���M���F�>J柣ND ��@$�Y�~�-����C�Mu
(+lBpБ��^��#$�~�2è
/@̣�6 3�n�h�
+�;������۪.��������3F��q3��\َv�Zn�Z"/��vNF����N�J2V{�#ΚV�s����e_쑮�T��a�8C¢�!Η��>F��L��\�
�M{���5��eH~7;F��	�	�A���������B?���V���Y�=۩��Q i9�J.sӿc%��FVb�dեiL��`�a)kD���=W����
���
��� \n����e�>�N�X7Ƒ†2I��Y
f-�to7���/�~��U��as[��`W��*
v3_�`~����:k��� 
�j�R("�E
+*���
+��e)DDI��ss��,�f_n6�"���:hm�h+�]Aqñ��Qq��S�a����9�{~8�|�~b�h6�G���ZĠםN\�h��+��(E3�0�~������k�
T�MG����1�:zk�a'L��G�����2�>����, gt
���X&�@�?e%�
+�����=@��Ih�s��
��)H
��U�OeX^m��7R7�~�,���,�
�\j�����J�Ԍf�ͬ����
�8!*�]�JR:��W�R�]�M�ɚ�
�P��Z��;��J�N�.8ɦ������,�[�r*�Α�]M��M"wa�X)Lbjd�`�>:�?����|:?u��>^��G���$��fa��.�
+
ʥ_�S��%�ED�8�
�J��=�ĕK���{����
�6r
z�G��G�� ���
��U�i�<����K�g
��"���^ �q�
+����I6����vP����W�y^,��u�c/ 5��@�:ǹ+
[��N��+�l�i�{��P�#^�
�y����v�,ñ������-��N���ѳH�⺣<֡g�x���V�<
/���
nb�
��6���󴳜�Ρ
 �+nhB˾�P��oT(�W��#�#ĉTw�ZU
}
� w-��v��T����-9O᭺HI�z)����� �z�9��R'�d�I5��a��Z��GS˟�ag��W=��.�P1ٜ y?����2��
��X�)r�4VaG������X����Be�`9�Q1��͚@8�5��
���������$���W?�D�}��z��2�*�
+���
��p�t�
+����;Br\ܕ�'>
���-��v�
�C�Neʔ�����L-ʌ�q��K�H���r
�7�I�
d<�����B
�gNelB^փRγF2��A�qCR�&�t���7߄��{"
D9����u)��C��w���1��t�}?"���'�[�7o�̩�~�1�{�>R�u*�
��ʖd�C��l���u�tqf�2[�l�~{S4�>�J$����.nQ�nl�P�#� x��])By`r+��w����LH?����VD:�|��iU�G��~ժ�+��&+R��b� gP��>��}�����W�Թ�k�Qǖ]WSk
q�w���Z
+�D�Q���d����V���d�24����K�G�M�v���U
35��K�J~�4 & j��w�J�����*��y�;��X�߉˔��O���@��5�hw)�񘴕�o�-9E:��_�
�̂�o����&�6#�V��(ѽS�-te$
�פp}�4�%�4m�rn�z����he4�KX*��KÃ����2�9�ʩ�~���'Ǥ�l|O5ÍB�
+�;�^��j�㛑Q�`�exH��;�J�\*�`l���˴K�h��k
+&����t���F|(��8Vǡ�ܷ�
R���:ϳ��o�G*UjSKk��nR�
��gl�
��ޅ-�
6���&��Nŗ������7O
�4��rGm��O[du_T��vY�{�
̏Iy�\�aR�Ky��&�P�7ݪJ)�l���"�W�5�{K�� ���S_����j 0WSW;�w�ix��F1�^l�О伴^�'�
1���b�%�OA�����X�hq)L�7��j�}=�9PX��=��n��`��ɗKX#Cù�A
*7{� �j��WܴT�By�����ufכ���d=�A��f��]����F���=�_u*`�q������+�_i݋\�^`BaE�|�S&����%
Z�
�a�8����+Q��g�Q�[�IK��-�j��IKr2T�cju�=A
�ʧ�Q�"7��{ٮ���ם*�X|,Y����
z
����ѽ�����}�ƈf:�jCo[>�]��x^���h����lhNr�ϳEDk��c�C���Ǫ
ת9��c	���H
�t<)��}�z��!�hE~DBӳ�2�S͆��i{;�o��u��I��p�??砃4�6ٺ��^"������1�R������<�-��65s��j�p�C�����Sjqi6dzھİ�紈��
4�1�.��$�5E�
G�9���:�
�=��o���b��쾄
v#��[��x�ﯦ �AF�+T�����
���(C at RQF��7�7�2��I$��^a$�Eq��>
�.�AE��b����
i����O0�����]Т�K5ΫPÛ�G���
���
����Z�d��J���*�$d����
^�}E�*֤�>?��������Ƅ��������$d��O���	�_t�l�%��$^7��[�K��S��ECq�z�"$
]�*���B]��}��W�
zT[Rk�"�����n�]�E��U�Y
v��FU�W\�B��6�-RB�^M��e�2B�4�<ZR�V��jV�y�~��O��
+W>��/w�ͺ�h�4E��k�5˖�<1�U���[�t���D��>�Q!�.kR��涧�7�u� J��c�>�c��
+l���/��i^��3;i�����ڐ�
0��s������Z�n�S�
+���q�W7�N��p:�([���5�6�8���V�
i�AFޜ�~h�9�P�ldüj�2�dO
+�+����6��1�--��1E���wv��	�=JCH��W�3��4܏&�x��8,���&�����#Rc�3D�vz�6��RS��yu�_N/nm�ك��vT����֥Y˼?��RFװKz�n��9����Q��4�g�C�^�5l`�P
\ܲ����G�&���ޫ`��
��9�P����ҞٲX���r�6���
+V4,��{�a�؄���\tcY`]l�ǿԾ�a���r�鴯؏=b��!��&����Y�b

�^[\�aYt�$w	
+���[��R�)���i��[�{$��7f"��o
���X��p
+��z�Bz����'h�
O|Ō4ǐ�|-�j��
+:���}̴a� %Tv��5��Y9QK� �d0
?�$��ćH|�#�u�D�3�
p��h���r�d�@,@Xm��VK
Y��@o��u��([���8#!OM~�.�7SoJn%<��I��dZ��=�1�D3�!P#4����(|:]SYd���_��kG�����Rh�+Ot�B���%�/e�䱖�&]�h��r5�sl�or��Q����
"F�,bՓ�*2~��:ʼ��i��[�������t��˦����~M
+�U�6�DU�e�"udPO:���]�x+����G��B���]��q:�ʥ�'�:�-ML3\�F$�7�K�3�
 C��*s�2��z�F�s�'����
�
�̼K���s�����Ӛ��w�ER��	�!`%aT��H��v�R�W��SP�ƅT���}FVArB�[��SS &��}p
�`�	�~����_���1{�,y��o�����
���{�30��[�b�
K���:w�3��Mn����e6�s
z/0<x� &�3�nj���@���_d
�K�Bٓ�! t�r��!�6<�
�rƕ�KjT�;ҽ�����.�Z������.,��68�MUl��{D
6v�
���@)tmp�y�_.>OG�"
+Ü3N��|��
�/�'��O��-R_�1Vh&׺
N�Pz8de���
勊ZTH;X����Q�6�}��+���'h��_� |ȋ��Cc�����u��H��j�BA�,�N�OS���{�3���	L��� `]���1��> A���
�� rxӴ�*E^�.��ؐ`����Q5
�v{`=W6뼟�\9a����vGO��Xc&
v��1���w�~��� �0�W�:ʎ~��f��:
0�/˵��%�m
�KRK�A�������c�R�%�	�P�#CS��ߥ�f�mD�5�oEx��1�7B����0����<&������Yd�8"1�
�wܡ5�� TaaJ3p��5��
��7�A>��+��y��I��
M���c�u��
Zd?�B��
k1���x-���r�sV��9s
�H6p]D�G�g�O|
y��5�S�$a�E�`$�Ls
+[��Ym�
�~u�8��p`6*I
ߕ�`S8���8s�n��9O3nX�OE
/7
f�^�l�bN�[�PB�F�O��.�9����Z��_
.�5�>�F	��
�S��̉�R�'}ΪѬ`_d�X�|�{�d��HXԾ3�QlZe7P�R��q�ش�O5����OkZ��r�x5u`a ǂ:��*`�T�)��,�
+DPQʮ���dߓ�����J�����Rk=H+
+*�#u)���h��) ��)B�6��s�9߹瞏��H�ZG�z�G���T�"9��3h�D�ͺ
��s��r|��b�4��y	�$��TK	���"�$��I��~
�$�v(�B��#].��qi

��?�C��N
�����~�ޱ�|��ܷ�LcO�n���T~������vxj��̦5<.��f\K<��2p�:Cp���S�y,
66��>|z�C
+���� E
+T )��f/��:X1�}J+��>���_���~ ���Q;�^��ㆪvs&�۸>�.�k�7��yZ��S��:�˩㜍�r�
ݖۜ���aKa���!l��.g5���7�Kv�0��!;ڗ�f����e�
��%�]"X�T�
�J3�aժ�lwV�j=v�姠�α���e=b�I/��g�H&���
�:����g,(y	27�>a�b�a�8���8f��VV
�q��ɌT���0��N���������ɉB�����`(
�_"f��o!�
�t}Wg��_0}H���X
�9�,�Q���x���=�~Jٹ�x�>����ӱe�9�M���2mF��S��)�Vk����-eZF�F٥bt�g0��O?�D�ǐ%7ey��ښ6��W��S
��C��y�e��US}�
�l�`a�8i	��g"1лJ�"�|P�Kڝ�c�,��$����+�&���P����vꖴGBoj_t4I
�vq�f熚(�e��C��!��b�׼�^�S��b�Yi1���¨;2��W�`/7u�h?4
+�
���!��z��@#(���T
���6��
^��!�R	S��#�>E/�S�q9�z_ 
/G%ӈ0C�9�[ۼ�@�(٩��P��
�,�}��X�T�Ok��p��QȫU�G6
��
�x�2�e,��> ���
-?�ϭ��QެYz�/�T���5�FL��^`�tީ��3�\#�������̬D�:�
,�v��� w[mDW�����)��TB��Z���`0Ֆ`3t�BQ˟kk��s4�1y�	�`�\�޸�c�V�#��z`X�Hhw�A��0�چFTy��qӵܫ*F˪�%��*����/>�9

+�g
S'�"b'zL=N�)c��s�*����b�R�����)W<�#�S	��癛)K����
��
+&���L�\��9W�t�W!Y1�������7i*�%�����wJ_����
��閥�n�WJ�!p�����-0�T`�:K6B�+��S��z�l��L,~��J#ZL�HBEe�߈E�q1
+ڸ��TD}�bB;��*O�TC�nՍl�$OY��Q��0m��z7�o��9NŻ�|h��DV�[V��e�֩b7���Y��ZÖ�H��l�����~I�)ܻ�J�5�����oO��ݑ���%(��,�h�Z��G��ҼmR�d���!��/NEWutV57z;�j���j��s���^�^lD�Ǿ0-a���_a��L�؁��w���44簍b^
��ppi������&n�X�	����uƻ-�݂
�-c�Y4��_�����
��g	?
�j�G�I�fH���
�%��J҂[��%ϩ�C6Oz vW�z��oZ�t�A����$�?z���;�
�ؼ���FT2�/+��0���@��@S<@>0b��S�uq�w;j4S�'�/4s����E�թ(P[����V�^�5ƊH��k�g/�ۄ�w����
0��*��֭ �a�j�yB��5�TC�
�J(�_��F�4����!�m�,
R��N�
�?S����9��
:״��O��f��O�V��"յڇ1���,V)S��@�._
+���#��Q�`�K���|ͨ%c�j��/&\��:
[��F�t�^Z "��q�٤Jm�뙊jMarח�`VCg
+��w"�~><��
�8�i����}�X�T8�dzQ��V
Y<��<�J=��E�ۏ7
G8v6��Z:�%���hBò�94^�ԥm!
1���OD>�p%�H���G�����/�Û`rq�;��N�m�~M���s�\��/���Z�h�:�(���MX�а^F�.꜋�.�Y����s}5�`a ����(�(X0�T�+JS��
�4�&��~��|iB!!
!)$�)ʰ��
��WF�Y]E��븎3x,��˽�}���| 
d��c�
+��|�i-��0�Ws��
+Q_G�pRj�y�0���׿�t����j��T̎�ԍ�
D1��څ�ڍ›N�:ka?
���7�e���k��_�%]a;�ז���F�=�9��-b=
&��Mm0-�vD�'^�j��+��/5(er�^�+E��L
F1�$�1K���WE|f��O��FMK�����m��:�:1`�ڥf��X�ЩM�*i�9��
+l?+Lw?-Nx��͈��wɳ\C0���瑃f	�s��
��M;iđ`��$����O���0z��*Rٹ�B9�@�"�k��5�����
v��~�.l�B?�u g�]�ed����
�8J�A�j���͹um�.��D�O��^^��v:�y;��ske��+,L�¶v� ��ŝ���Ҽ��خ�����d��_��5�Z����;
q�#�k>���� �MU\��J����{l*͟��ґ�3Do����y����"UDc�����u��#H�)BP��it��/	v�`�_�Sʝ�{�e�5mp�Ppy�=�-2��[���m�+v��6
*.�Wۿ��Sǔ��]
�
+^DMk��,2�.#��ɲ�\���!{�
^��I4�Ԉ��.~�ç�lDc�BU\b�"c
�j��v�����J�G�|�H`_��2�r����
���H��ѥ
�
��t��HH���BaG�	:����B�f��{�'�9
+[�j��a��e

+&h��z6F�d�y?�>g�ۑx&�l$����^���:����^���n����x-'-����]�O 5�������@S
� U��ڏy]�Tu 
�_,z�
�WPT�|BJ,ɕ}`8�ߴy?p�7gˢu��\JO(_��vOUue4���+Q����bi�?A.j����Cxy���R���J�駥�P��t㸲r��T��fd�d$ֺ�FR>P�a�L���'��
�v�����2M���*��׵�T�]`W��*�cD�*��h�A�e#�"�ɆKO9�J���KL��2��J����(
KgK3jԉf��Z��nL��5��o��M(�_���>�FO����ӹGi}<���@w��#Nd����h
oo4�Y�
̾�Fٸ2�����Y�A��z$�W��֜5��Copl�i�
�\�
���3�2�l�;��a�<;�S�? B�>�<A��a�rL>�z��p
r�j��s�m��1t�Z�c̥�
�{�s�/���J{��c�*�#�3��ހf� [...]
+�oe�*��
+�p���}����%��
+K�"G�*�
yE�%��S\�#���V�9�
�ۦ2�4=���ZH
�
W}d��UU��$�U���>*;�$;�d
'=�NY��
,|ܶ
3�4�����q�T�=�ka%���h�s��䬺��U�X7Fl��[��
o��1a�puxf�9��Q�Gk4�;e
+˸�7荇�5��xB:�y����Zd�ͫ,�`2��?_�a[0�~9iY
Fs�3���g��	�Ë9u����<,yx�87��� �1�����Ja���,O�@/g���O�㔛�
9�4 �|.]�1�6��'�^� �@1'��p:Xt������wL,j��V���Qv@�wl{έ��̱���\�?R^�UV�\�GI�+�����9�����D�0���3o��y�d�[R<� "�"��"
+.��2�}��"!<�4t�H~(��-r��2��5D�H@��l��"K�����濣,��/S}�������"+���~w�������F}V
dR�z�,��:�w&?��C~Fq��J}Jݢ���J��i���rjzE�gU�#��p]ZF��
�%��+���[�Pj e�w�Vjl���W�7��wR��/*��C%�%�j��G�x�
@EFH)&0_����Օ�|Xu�
+D���RNX
A�\0JS���H���30��7�͛7�3
C�Wc+��U#�r#
aQOL4E�љ?�s~�{���s�I���y�?�y>�ҒL��ָKd-ޣJ1�v �*fH
�6��h�����z�+~B�O�:I��Qq�Z��UՍ�
P�[�U��D#�BM�	��>$�	�z|��?��^�������!J0��W8�N�	��W�zX��f���щ@'h�
�<�
+%sd�R۔e�[�$z�,��Z�2�H5����[&Ht	L���
��U�O�
췯�<�u��ɎrE�ᾀ{i�,8+ןwM2��O��\��7I8
��i�l�2�ewkv"9k�r6±��U\�R��*�q��o�GCxxy���;�:j��Y�E)
a���ΰ!Xid�j��
q(���8�S��=���l�(�P��9Iue�&��k)���W1����=k��Z�b;8�zB�C�����4��ڕa�v��?�su��UuP���\Vf�>+�5�2��j&�P�6���uR�ɮ�!
+a�+�r���k�!�o�4	��`��ܗ�P)f��%��V��Q�T��F�(Z�]s���,��TR�|O)O?��h�o�# ]�6y�л�)��O�U�,F��٠����E})�g�s��ٴG�y�Ҙp/kw~˖��I'Y��;Td�
�g�Y�U���'��I8�@F�*�	�8
$�I��+A2((�+y�8O��ϋW��ȗE��
{բ�b�W�"@�}@�C׌�t�e�Y��gv�ֈ���H���o�fE`�ea�<o�V�	�F�
C��k2������* ]v%녦L�y|�KJ���3��P�nW�(��<� yiBVO��h�P������|��q'�9["�<c-�����p����!p��w5
�ϔ�r�)
�􁢮^.
,�8L� ��o����қr�7
��ȶǫ� .�@P�p� ��"��X�SI�3����I����k�TGm���W����Vb�u6��Gބ ����`]O����ZQ���&'l�T�R&"N�!�v�G{�%���^}T�1�v�:Ȉ�\������(�IW�f��*�ڮ��ʃu��*����lg��w\W�d?�'�~�|S6�|��ɖ)ݹ��E< �K��7���b�%����J�\�*\D�)
��e�
+��2�G��2ћBjx$Z-����aV#
s�/�h"���K6WZ,�ɳ����L�9�0�~G�"~4�
�5"[���K��4�h�����q���ɕ�����F���a��1U�_��K�Ī�)��P
��
?Q΢9�ޒ"��zܮi$��5I��0�]x��oܬ��UJ&�]�:QS{%K��z����<�
�~m댋�/7�ƣ��i_��y
+
I<G�d
k~��x�k�ے��1��e'w�7���۲���
��U�y��ʪ����\���P��x��V���nL"�
N6t�Ħ>�gbN�_�����4�!/�e%�
���O;m���ht��Wv6�������[���i�������yF�y���4ʔa�t
V�]��
au���
�#������Q�Ym3rM�/q{�~�
�tj��D��
�7���f�i
���ɷ
������� �.
=[�n`4���qSh��B�r�x_�5wԐ
�%��n�
Q����~x�'G[	�`
+qb�]Q�2Ը�i�=UGn�~���ڋJ�(�����Aݪ��d��
���
E�7��K�z
+M��]������!}��
j�nh-Cզ_�魺��������a�٭�D�fr�j�6�$-�4�n�U�Z�F)�Zp
��ux'
�@��]U���/�ٳ�ۿ�3�Ug`iU�}��ڰ��U�L��W���u����+��S��U��[���;u��������XJP�v��O�ŀ��{$�KF�,q
�Q���r�u��H��.���}i�m����fZ�h~a���t���M����B�b0*��iW�
��C䶧���jZ��m��n��[nKfi
�c�+.�&oV.�� &
ʭ��{���5�_�s�9�d�m��I�A. �*s�5:	�1���Ů�
m!�|f���l'�6#N�
+Z��>���\�oM�k�CZ8�)*���b EE@��(2���7{�I�"	$!��0a�=+v U�ZŁ`-x�E���JU
Ǻ
+����~��~�7�<N�z���Q���T�!w�����B,��C)k���E��+�
�+��#�6�-��)��
p�*㪝A �����Ao���c��c~�\_xb�5Ӽ�����z�g�Q��u�}޵�z�Ge��X~	>T�S�
s��V6�������i�1=�2J眆Jh�@ U���u�;
��7!�0
+߽�\�醮���������%-;��=.
��e�/�T�7D�$v�{�.ʫ�����|�Z�Ѯ�mcDֲ+-C��u�_��{�>�1�H�1]�"�D^n�R�
�ٺ�:����E3�
[�h9�������
��7�TJOW+3
v�œ�Limc
@�6'��[�c�`Ǧ8v���!���b�R�{��1�_ӵ��u���o��P��E�2��\@;4"�mO��
�����m{��
ߺE1�d��A����}C=W����B�}[3']\PJ�G5�V��mnY�G
Xy�ahd�'J�[U~	v��W�ۅWo�]�Wn�G�n�R���9H7�Ѩ��Au
�1�v�����Zm�]lU�r�
�T�V�A
+sj�6l�hm,M��y�4A����*0����v�J��
R�?�� �Ĵ>���2C!
*�#�q0�MJ
!:ŏ�C�����R�|�d�F�a?��2�
݂�c�h3��d
B��
z��SI�t?�%�L��m��F[�A��x�Y�G�ҏ0m�;GY1űh%[�sጒ@�9�
q��_8�G>
r�

�W�n���)jod�E��z�C�.q�JviN&�I
f���8b��g�
+�
�v|�
s��d��%:uT���f�����&�L��0���~�p����.(R���U
+;
_)�w%$��/��
�t#�
+~�#�u`u[�w�.��q�s����Y��_�-����*'̳ɩ��k/���)2*
i�9��$�7fU�z�fl���c�9}�]� �,툏WYC�
I���k
S�-��t�y7>�T!����<v�`tF�W�V��"�)��'����U���!��<���^��D�V��"_W��퇖��6!�{�9
JJ�j��i_U�(홽�c4*j�����>��
���26�����Kݲ�
�	m�&c<kQ ��Jln�
'�I�y�T>��ӣh����'
�..+�upC�6�&@j�5�t���d�����P��0���=��I�˂Ė����
+�</��BིY%�V(��q/ܦ,Ǘ	�9(B��0j�tI4	�S:�q��ԙ�1��K�h^��ChhC��F�����( �|�|y�0%o:TA�
B�Q��yPI\�;hVʓ���2J
+ĥ[�Q�r��_k`��9h�� "?7�<18�����~���Щ�
t]Z*7֡�^��%A�nj#���7L{Lu�7�7]ČY	L��L�;
+�i�\WkI��S����y!KC:�31hZ�Pf:�߄���0��C�>C�{޶$tR:(ϭuO��
R4����$=��jl����uq�1?פ��9��S�i|c��q�F!�_z^�S
��K}��`�d�%D�T	�w
V�>�; �<�'�V=�(�5H�%j���WM��V�#��9�Y�D2��֓��p~�����~J
��}�D�]�gN�S�s�jJm�n-�>,v�g&S�L�l�#�����>���^�i���8��ʞ��%��4'��R��JD��h�RN0hB�A0�(r�0K+�a�������M��Y��|"�E�G����E_R^�v���4�/�?��m[˨�y�N`�K/5[�7�1���[G�ؒ'� '�铯R
�G��hqꭁ�]��>���iI��X�
+5�'�\�GB�	��ć����d�^u��x�+���[�^��%e��	�֪�p��xE��
+
� �6�%!It�ި@�Ҿ #%��
����:��* �h$r��7ש�ׁ�55�׈��Ց'I�+6��*ЮwȰ��%U�#��zD�+J�t�� �B�a�Uؕ	6����}�
�uO�r��7��d����P����
�Cu}FEu�a 7�RV�"KS����T���20
E���N�{��^��lk��ƕ$vW��(�,�F7��b
ˢÞ��O���y����<"_��)���.k�h���[n �9W�?g��ڈ7��yș�*����Ӽ�uA@ �Op��I�R��rP�(�$e[i<�H����������/�\�t�/��G�inQ��a�@��q�I�a�{�Yʒ�]��e��?D��98ߙ����y��dx ,�8�?����Pe�1�N�W��wA�i �N,�
B��=�%P�K���
�~�҈�G�!Oʽ��R=e�"!�]:�:B�I�\��MJ1�j�G�K)b
'xL"W?D\G�ԝC��{���A�A
?u#U���������UJ����
ǹ�	H{�F[�5h���[N6��){((��%��
>�V�Y�R
+n��#����(a����F�q�&mq�3%�\g?�%�ӆ��M5������X�D3�b$ʁ
W�� ����ƿ��5&͔D4�®K���
c�
�Ꮚ
�.
+��1Z�o
+^`��~¿`�6z	�q���
��aX����ǰ�)��Ӽ܄'��84�
n"Db.��� �
�yC<K���
d��},��{�*h
�

+ڸ�h�>���wMv^
c��8�Iƻ�(~��j?���
+e�o��y
��l/��Dl5�����Żר�p�y1���ܣܵ�����^004�{
�����.��%C�A2��2�d�Wu�����Q�>�o�kL<
��
����5.ſȠi�f��fh�7S��-��|�^����T�jX[�wC�Y�*��sG^1�Ve֗�+�˃������L���3�
��/2y���{���
��+�.�;C�t��J �}��
���-��
>٫y6q<����
��<b�s�
+�bk*ĉ��_�
V���
�����T�m
�}���D5�1o��U� ��Q�u
�*�n��ҹ�
�D��U4���|>�W���x�A�_P�Z�?	�Q	��y�����1�>y��K���\.�!�O�q�M��

+0C�l����];�S�k)��=RZ@�[ɷ�5��
���JBe�ǐ$��Ni"�0
-�ú�R4H��~�9.☫|Dϸah� �-�)�r�~"��e�oM�����
���K�%4	_7�"�‘e�
+QD~�0T��.��>"x*
�O�>�酧��.Ey+HVy55R���Ws�����Ek*
�PxEGB����;(J�
X��(8h�iq�mh��^�
�0`���}���_APW�D���L��Z�‹]�<��4��zG֦`��oy��Z�R
|�u^��g��C�F#�n�r)��Va�
�5�ƪw�����9��n�j�yI���t��
+xI��1b�Iy�>}���-A��گ����OSh��KF�x���6xq�qQ

+�3��S�U���\ka��椚̩�Di�~
�?{�>���J�3m�tߐ��Z���t����]�Y���N�ju]�ɒ���QY�lZZ�s��
NѴѷ���W�>S���ݥ0�B��j������+�7��q�҄fU7���m�	�����:�8���^�;�#�eտ�+���*,�_����C�Y�3���
�M���S��U*���L�X�.jQ�Ȗg�_I��W�J5a"9R��'�C�\y׳qH)��V�U��
-Z��.�\+�Ѥ�/�a��en�/|F�[��?S��Pk r�"�
+^�Y��>����V�H9
&ya���I��x�Q�<�zU1\���
+ٽ�l�*7�}��hu;Twfa^���cn����YS
q;)oZ�u�G!�uT�U�Or����lk;�H�F�-�x/,u�	s�m��>fd��}�+]
+U�.o�.����=��q�-y�]�[��v
�i�R����g���k*�`/p����LBu���+��A����@
��[�)��&P���YQ�?���i�m/��K,�Y *g�u��(i�2�`��؀V�"f��JSs��=�RU@� ��7+���>d��ْ���s�m�Y�� �)�w�=U?ο��3D�����
qjv��8<��!z
g�)�b���^�[$z�RYjT����)�Ԭ1�c�?M�2q�=�@��?��ܣ5�ew?SIf�q���D7����
k�\� 
L�24A<D1` (T@@+���7{��d�I؁	3*8����:@-�m��q�*���8r����><�u���ݹ�\��id��Xm�m��J����J������"��U��
jb'm_�z$b�"�uO���
�b�M��q_'�is��ͼ?M#mp_=~m��=�İ���+ȡ�:�L��;48l��mb�
3�埒-m�
$�Y|H��n��]�c�k�k{>3 [...]
e
l��[I��u��Y_(i��&;����t��o���

�
�����5��k������Z���/��
j���j��p��~Ch��⨿���䦿�iR�s!G�-�����֠���5����
��
+�����&w���a7W��AƫX���U����r�8��+}E)�oV�ӃIÌ}�qZl��h�<�gw�
+��A��?�=��$�6-�ޡ|,)!<�*�ǘ*z!���8�߀ϸu��Pp� �D|�Ŝ�e�=s�m4'���Ң�ؽ�YaP�OZ(���vj?�VG�gxI=V
�
�-�
̹��u�MCJ���H_�-C�]����B~�2A\�8����*�E8P�T��Δ�To�
9/�w���h������������a�ߣ�b�y\��'�F,Ռ�o%��w�U/�ժ���n�M�*��T Ƌ{�5NJ����ԢT�9L��;y
_fX�D\���u��ַA���:x�"�)�V%�V/*��]1���#
���)ԋ���@�X�"�SV�Ӆ����4u�.�f�?��Uչk�%��Nj����;c�~?�]Pۺ˄�W��Ҍ=V�듍�1�
+E�	�
ֻqd{q�׉�;�
+�N�
������YH�d�fttc�
���#&�v�P�tQ��jd����1�o�
��­�R)�ʽ@}����<7�	�&���8�w��y�y�b��H�
�04���͂
@>� o`
�����~�M�<��a9����(��n
����c9̼4��<o��/��E1�������:��ɕ��7e��
�.{��Շ�Pi	WE�Y���x�ޝr��
+�EJ�7
�T����|4��'�r41������� n�s��#?�Cśhk�6
�/ϻ���
�7�
n
�
��HIT�����c6�߱=�z
z!�?z��_)��c�)�u�e�T��}nS�3��&iq4r����E�U�Y�X\�K���88IX�`}7yIi��
+��S��iG���r3�8Eiօ�$f
����l+n��.���*d}0Qe��:F����S��S�퍆��֯�SȺ�8��~�%; [ژ�l0~{��^��
KbV+�T
�s I��x)�oe���q��ra5),k�xU����Q"��YN�פ����ܾWu8G�Q�d�!H�9�2�'���31c�C\��!Q-�;U���9�
�d�Z�o�8C�N�T1+�hڟl-?63��z�,�=]���Aw7!�z6��*H��H*[|C���_@m���s2U�r]^9��n������0�"��PuT�t$�#:H���@�бjy�b��~�=�噛��*��ku��U��Q�m�9�]'pu
�
����d��SۖHgi۬��6r-���>`Oi#�T�2��"-�!NSn\ z��$���S�C%�Q���%;���O���z�c�T)!�M�.wf�.P�o�1���U=B��l1�F�#F0HD�\u̞rڜ*��u�jQ��O5��u8�E$�7:"��І���(Uu�AN�gulW�YE�*Z�"cT\���k���Tx�l�x)�$��<�hT��',ʷ�
�����y�={V?$�N�)�D��P�Vl������]:�|�d��̏��"���w1*��=3*gB'����|�'#�sB�F�S^PR�8�?
�
+$	m�:��@����l���(蕉9
Ea,�_܎i�ǀ/O	I��4�a��S8!��%UJ������8C�(�&2�J:�;{��Mጫ~J����dm��rFW	�jg�Y�?��;��s�8Ҁ�����Z6\Fq�D
,���H	Y'{����
$a@Q��k�^����r
��h��"j�}+�m�j����y��s�������әM���D]�_CJQw�)��/ʹ�5���״2�s�7
�v���}���7�
T�V���S���6~G���oLF
��
YH����Km�k�v���~�U��.+�j
p��o8Ɖ$�5�)�\R��������(��g��H�m}�w�5j�N)
++����������p�vO[n��Hj�͌%=h��
��4�^"��l�q:i����%S,��P����=�Ƌ�G����T����	�B�ULR8LW������$G�xLcLS��},�?�E�;�8Q��E�$?\.�e�!&���KK����J����G���7��|�_
��Ҟl8!>�8��(Y�B�I�Y�`[�}��.�B���b
��T���$��=U8O��ŧ
y��P��-x��$�]��0��_���
+�j
��(��sO�����H|/=�wKR���������`�
p�t�l>f*�ӡ����uU��<�=�T��s�(�&zpK��A?sL�o`N0M�q+~*m��-��~F7�^���5惬H]�${��|�-Ҷ9Y&�=X'�V�u+^�ϖE�m���
+��Y/�0�X� c����A��dP
c��_X��
�V�Rx�6���b�|C�6������^FeC]���o�-�F?f7���Q3�V�>͝y�Fs���y]�ݯM�F�����͊��k�^Nն��I�����#F�Z�.�7��Ɔ�Q�f�eϫCJ�n�;Aj�B
JF���w
+��mԗ��6��t�����(�I5�beE���l���X���Q����͌��
��
i,)�6QS �1zJ�ezVBf��
۹���ʹ�/���	HQ8�9�SnE%�o���-�4�NJ�`�`,��)�~u�t��yQ��N��]�vح �p����+e�"�x����N�6y�*������,�7�$'�x�\���C���QL���[8.d@}���C�ɏE)1���D?@晹���b��$�?7�
+	�Y��M���
N�|�����
_�Td'wa�}��0Z�������<���9|��3�����閗3~o=��Y>���l0Wb=P1��jmE� ��X�R[l�o�uv:.�C=���;.�a.��Bř�S[�n�W�J3�ǟN�1='\Xr���8�۲��:K�X��j�6�e	�g΀a�p� ��%z"��K�1��.c1�ɇzɭ�G�T�Ri�VB�e����� -�)K at iͬ�!�u�@_�`�&2�q��
u�p�%P ���
+��S�Ч|N�WP� !���o-t_�
��n�y��V|�ؤ��賐�e`Hʏ�E�=>\� 
�Tǀ�|��cҎ�k�IS�T!������%Gu,%[IR�'�������+#T�}m���3��\��/���df)��`����n2�#���\�M����(��CQ�d�6f��l��qG����v�첵).Z&���w�I�����Te{�������JQ�����ܕQ����E\m�`�p�`��Ҵ���\�z�[�v7OV�o9ݜQ�����}��$SSFMW�d��ny��u�я�:�	�*�o�[��3� ���
O	��
FRJ���0��ո�l����+��L+�&�
o�E�+d�-�
+�@�?��
^f�E��ko�o�\fy���J���8�z���ΰ�Xmi
����
-Nw�}����OY�p
z&�@>��g�ݪHc���.��
��]7M����z�#�f�����e"�g���\��a��@�\�qyºJc�\��3ܔ���
�����r�'W�QV�E�
D�|��P�L���s�\h_h�
�#��9�Z-
�T�d��L�>˼!���WS/b�n�iA�3���.1Fx@Ǡ�3UN�N^n�POZ�d��t<�jGLy��s=���>�vW�O&�-8ךs��hv���eSȉ���`wPU_�c�a��ř�=շ}�m`�<<�$�+��UV�6�6d�����o�88{��η���zkG}ڻ��<<�7�\���jvg!5M��!�w�&�GmpfS����g��O�3x?���
+wZs�LR�q�/�~l�K�]Q�V�����:�o��m��<Q�'��

�
R]�AMXy
��u��
�
^��ȩ����
�$�}�!� 9LH��aH8��h��ʡrTtD-�*��fY]]wu������u[bg���g޼ߛ����"���ȹ�� I7�����H�R�7�H�B�H�u��d�t�
�*�Ჲ=e���J��t�j�|���	�#T����I�/��W?�{�Ν��O�^��'�`�����v�'$�^��E�=7�I����TF�2˵���7-��^�'Z�"[�x
;�����[U�7�,���Q
yWrr�9��E��6c�y'�I� �gIR�m��2��� Z�Q����
+�{0K�,�^�H�/>�>G��@l`�T��=FZ����nZ�H	�ѳ$m�¯鵩�K�A�3D;w�����7����ŏw��^J<��`i$�M_�x��8w��U-,�/h!��pbP���1��|*�k
_U�;� ��N�45�����j��<?�>�X���_�:�]��$
%�
ͫX�+é�
��Miw z�z{7��`fOE���5Fo�h�X�}�fL�}��k%�J�q�_b��_ ��A�5��4WK������'h?�:l��TH�mm.	�m�&�"�X7�r��V7�����l̨b�]r+�
�O�pK�[�{0�E�uwrf�ӵ�Fa�jCCP�k��t�M�ݻ�Vw�[FR��(�Y�-V��E8����	�����P��?�)�p>��͛�5�	#��T��t�F%��
���3�	qhk����
�;�`�LVOp���Z�ۓ.
��j��&�\
C<G�P��J�qzK�md
+���A�>ʡ	<�*�g�!��r)J����;ȁ��&x�K0�N�\��B�&���Գ����$�bԍ7f��p��t
(�0��H�
2����3�ӲG1�d?ź���
+�b�Vֆ|�����\[�w+�tj�j?b7����h���wJ�Cm�m�#�b.^V��B���DR�b��8��E]4�J�
7LG�c.
X
d���/�a�&ڎ�
�@�顢
��zQuֈ4T��q�i˽�èb˕ 4�3���~,�y�moθ�[��0� �
+�l�}	��T�C�u�L�Bt
2��Z���W�>��Eh�@+[���y����0=
+�s�U"r]�;�û]���(��̏{�����e� �E=�m��a^2�'FKv�~.�Оm��0O�j(�e�s�ߺ���
�Pk*!��3�
I�B��
s4�{^�|{6��k\*
�}X�Y��Ǡ���D�=A
%��$�hǹW���ǂORV�����
����U�B��ꯪ��r��+C�a6���� ��K��ԣe�� :Zڿu�6&��?�W�&�k�).��]%��]�,l�b7MX]�[H"}���WL)RI�r�f�r?A��ƁY�&�I�~_�IB��$�{X��l��Z����X�E�&|�w�#����؆�`��_v�ߢf���u���3����f����m��8�9�?��9�
+̟��N�Վ��`�jz1*�������.�@��爎܋��`�o�ْ�J_����+- �4α6@��/DWE�jE}HR�Dl���;Y+�
���z���/������1�D�ѓ(z)oι&�;��.�4��aZ�#�g��
s�b�Z+�X�Wi;�<~�n�"�(�	���M�'��b6��!G
���lP<�^\��nM8-�-a��G+dyXP�^��s:����0q
\p3b����W�u.�,R�&�r��m��#<�He�ĸ�vQ�l���.ˍ���J>��қ�s)��lej�(�^ ��,�=�/����FV���6fj����;e���x��%�D�����k�%�!FW at a��o2QT�vs�
�5��h�0�B�{�U��H�i�GCO����zL'�pb�I�q����+'_1���Lv�
+���Q��A����%�
��$��[H~�}{�1�f��K�ٲ�:HmW�S
+��ëd}�2w7����
j����<� �O�����7�i�2�G��;S�W�ݒ�!�@Y�s�Z~��*���PƐ6�x�Q�ܡ��/9i�7c�G��HV�f�3��R>K�����2j�Z�xH"Z�"�)�
vH�D�}
�@���}	Y�J64�T(P_�(*�C]���mi���S�Jq�OZ�g�A��(n�y8}wν3���7���;�?߇�*x"D���6�Hae�Z
+�5K�	e
+tE=H�������\ƒ�W�8
��7��2�y��m��]L����y���	��1N<�8͍�@��������:�>
�>���6p������ӹ�<�AМ�*쵮�5M
+��N5����g���ܿ��]7�c�D�!\����O��6N�(���b���H����ֲr�t1g���u��N�'w�ߢ�e�Gr��u�b�J1��a�#�g�i�|��Gc��"����

�'x
��&�YH;�����4
�T1}�Ϯ;c�V*���ܲw��f����|�H2;�R��l��{��K��*��G��ZPg��׸z
*ۿ
��?ʗ���
+�ד:�N����9u�����L7�o����|j�B�jEV�QR��!Ū��;~;�Z�Z����xٲ�
+�(�񆜦q�����E蠟�V����7�:b��g3��h\y����g�.:O������0�7��Ң�
�b�4=�N��Hdto{�<��WZgH
�NR��
�RZ\��s�W*Zx�� ƻQͮ�l<�I���Ts|���X)���c?��p�\B� ��K��u��e��|0|/a�hB�|樕���sEG���M���s��M�d���?�*G,����H����R�g�[)|�3��
C�Q��{0b��Iט%9*��X�����R
�M��U)+�^�
�P�,�p�y*��~uR�Hw,r�~L���;�_���v
N���"����ۿ�]���//S{̑��Ͷ�^���0X
7�4�����㊈�#�ޒ{Y�<mg�$���5`��Vs-*l��ۻ�g��r��i�˕[
����L��X#DEhgq
!N-_����c	YP�a
�!w����|Em�"�����P�D�OUHS�r5�a�+[��
m���
+�Wh�*¥{I/1Ywû�Jy�׸j�k�@p[�����z�3*R�e���RXwq3�0���u%�B�AŒ%\N�C)�W�'5�꡵
+&�F+U
,��d5�gR
"J�r��VDB�SDO]V�[EסdyVӃ�1,+�Iev�"���`��Wrw�Ka��
�G��|����`��%+T�VR�C
�F���{Ys*���Z�5� ߬�R�e�s� Q3
+���j�QA�4Ӌ<>���$�.7�$C$p��
��
���A�)h����J��ew�T��*Fm���K�g-��l�m��*{��{�����v\ܲ�s�Ja>3_*ݑ���ہ>��V�5�|���WG_
�>��R��R_YL�!�R�F�jz��	S�5fځO�2��<�� `��}I\:��X�i�Zk�R
���H*��4����[(�x��X��$u|I9̺TkV���z����l�_�׼g�C��%�*�
�w�XR
��nY) N.�9+�wZ�[��E9�ľW����J%�w�p`Nj���[���.�b|JOsd�W,��R�~�#�*	Ľ�yF�dwC��p ���*�L(8�Oe��lL� �˞)A���
��v�f���F��ʹ.��Kn�d�~A򥾺]�Di��
(i���]Yʯ�J����ߟ�?�>�w�[侾
�7���KK�6�w"��!e��D�p� �5��V*
�3VEa{:KoED��cɾ���J�#�oOU4�
��4����l�TjF�k�,>�{S�?ý�Sk�>��Su�����=�|��j}�����T
+�SU�.nk�.����������m�c�Ů)Rx�b� T�<�T�V*y�Ù<+�`R�C�;S�^����0�-�itp��<ȗ�2I�Z_0�ȡ�VVKHW�ol���9�=�f
d�

j��b��%}D�C��y�{�s��I*�{ZL����1
������r`n}+�D�����_�*�Uz�3�����}�i7��7��9_�k��jx�L�+u	
�;�FxL�.�m�m���Q`sK�z�������K#�>����&����ޗxiB�V�^�\s�3�_X��X_�ر��C�+ҭj�|S��	�k�Ͻ�|j|[����X

+Ά�BL���.�?�\��D��C��q��ߢ7n�O(M�&���JO����������i�ݖw0�� ���I�J�LM,NCOYPoQ�R�S�T�U�V�X
Y#Z:[Q\f]x^�_�`�a�b�c�d�fgh#i3jBkRl^mgnqozp�q�r�s�t�u�v�w�x�y�z�{�|�}�~�ˀɁǂŃ„����������������������{�p�d�X�L�@�3�&��
�����֜ȝ��������|�j�W�E�3� �����תū������}�k�Y�G�6�$�� ��ڷȸ������~�k�Y�G�5�"���������ŵƣǑ�~�l�Y�D�.������оѧҐ�y�a�I�1�� ����ڲۘ�}�b�G�,��������{�W�3�������q�H�
������v�U�3�������s�I�
�������a�)�����\�
���Z��  ��,���
+






��������
�
�
�� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1�2�3�4�5678�9�:;~<|=|>|?}@A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�c dee�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|z}o~dX�M�A�5�)�
�����ۈʉ��������q�`�N�=�,��
+����ٖɗ��������m�Z�H�6�%������ؤʥ�������������w�o�g�`�Z�T�O�L�I�F�E�D�E�F�H�J�N�R�W�]�c�j�r�{ĄŊƐǖȝɥʭ˶̿���������������
�*�7�D�Q�^�k�yކߔ��������������������� �,�8�C�N�Y�c�j�n�o�l�d�V�D�/���  �h�	2
+R
e
r
xzzzyuph^RE7)4=
@
?
:4 ,!#"#$$�%�&�'�(�)�*�+�,�-�.�/|0p1d2Y3M4A566+7!89
: :�;�<�=�>�?�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�||}v~oi�a�Z�Q�H�>�5�+�!��
������؎͏Ð��������������x�p�j�c�^�Y�U�R�P�O�O�P�R�U�Y�_�f�n�x�����������̰߱�	� �8�Q�l�����»��!�C�e��ª������9�^ɂʦ������2�T�tҔӲ������
�6�L�a�t݇ޘߧ���������������������o�X�\�[�V�L�=�*����������b�/�����f����M���q��  ��	T�	�
+�
�
�
�p_L7!	������}tf
U
A
,   �!�"�#�$�%z&d'N(9)%**�+�,�-�.�/�0�1y2g3U4D526"788�9�:�;�<�=�>�?�@}AoBbCUDIE<F0G#HI
I�J�K�L�M�N�O�P�Q�R�S�TzUmV_WQXCY5Z&[\	\�]�^�_�`�a�b�c�dxeffTgBh0i
j
j�k�l�m�n�o�p�qlrVs at t)uu�v�w�x�y�z�{n|V}>~%
�ہ‚����r�W�;� ���ϊ����}�b�G�-����ޒē����x�`�G�/����Ԝ��������q�_�O�?�0�"��������۬խЮ˯ǰı²����µŶȷ͸ӹۺ������ �0�@�R�f�zƏǦȾ�����
�*�G�cЀџҿ����'�L�sٛ������F�s�����M����6����+����1����M����Z�����:�{����� � � �O�X͙�~ʹ��~y��~e�L�~�j��~�Q��c=9 ����~|�4�~c�l�@~]�̳�~n�f��~��C�~لOiZ/�gP����8�v����}6�q��}0����}>�ϲ:}i�^��}��,��~�
׉_L� p����K�-~~,*���~��&E()D9�v��yo�w�y���=�TS3�wI�!
�D)�J��%����OBv���w�N<i����_��ΝD�g�A]�3w�^�|�
<�~]�
+bʀ�}�S���W���?������CN�<��-Y�4����� ���B����Yp�z�S�)j"��{%�>6��4��;�
>��FVW���m��
+S�^�D�i��*��bPk������pة�?�%"�1�#!ϼK`���L�<�n-e��2*���+�)	X䥂C@�v2l
Q?����(=�0�q��
Mz�ǃI�z����7ME�Y;���
Y��@K (�-� �\��U��������&>�r���I�^���2���I�Me;Ya����"��V�N�,S�;��o�_
%s�
�D;��f�Ǝ.�����R?l
;
0Dq�>�
��8z��D�KG)�3o��+�&�<4��@n͗0�E��O�9�4��#��Ґ���n�W9
�b���_��
7}B�2�yːv���/ąJH삻Ȧ��p$�ȫވy;�Æ���ǘ�f��o虔�F¨Ls���I���,Kh�W2�!�A��jHE^�τ���� _�w�d�lX�g�g�Ωr!jU)�[%�B��\D��Cf�p�
�<_��\?�k�,.���w�Ȳ����i rJ����R����ݐ=>0�+cv���Z�{Hl�l�
L���VA��c�۠����
^{6o�Cҏ���
S�
��
م�bȏ���:sz
�
7�j�P@�Q����
��;[�w�g�|z3�0Uq`!�P����-~|���X�3�+�z2lIђ��:�_<����a�X��S5\}���E�^����G���
+�X��J4�^�Ƭw��/��I!5
+�bn�#�F���O��� ����`.ܙ�-�J\�!gZ0�
+)�ݥq Aß���O��k�V�
��^B���f8KĈza>p-F��O�J*����Yr(���".
��O��'����q�ä����f��rC���RJ'�dc~��h��!€�?�`���}W�zBd;�hѲG��ϲ�m�T
��SAi�j9�<�� �
+ߨ��%�@`��8xL��T��qė=�
,Mk
$hJ�����d�����x_�r�̰gʱ��h�t�G,�K��
ytomVK0����X�?R<�J%��m�q<UG]I�X��'t�9E��
+$Vt�� �������ܛ8�i�(�G�T�+��tԃ��]
�6k�N�*���d�$m[��w�_L��-h
��k�,Ȭ�
�&º����^>���=Џ
�]ٛ��a��`sʠ�7�
��g&Gr�ŀ�?>��r&�z`�b>&���z��
%��sx�
bw�&�{�~
�څ��]"W�R�%��c"z �D
����zA ����r���s!֝=jcf]��rm��A��NJl$�� ے�#ؑ
�>���wTf�
GF�F69�9<׵.�'S�Z*�˺#�-�Jl.��Z�Zx�%m*�|�����
�o�	�2�ӝ_T��W�K4
�eRsu33'jRF�B����Wl|��
+��F��gml0L�1�
,
�����y�+�Hu��2��f;�[�T�0BE��{�:���qn�����to�T�]o������kI,
+
��LgV_R:�Kϋ0�d�P?=	��v��E̷փ(M4�m����\��T�k׉o�����,�H��=����������Z��w/��E�I�-LQ����[����
�8�F/�g֖'$��?�[��u~f�g���h�X�j����ݚ-�	VI�m�
K��Հ,%i�b���Q���*e9�7���������W
K�����M�YiHt�X�T���BUD���w�-�4��9#i�ԗ/�r]�hGވ�/�
+
+lD2
h�‘�%TT�T*F���dw">���G��Y?�"��[f
r5��ʊ4��`��TAo��4H5�rW�S�8��Xy��;$Yr���'�q �vUP��V&�����4m�/5LJ��E�:��S�7��Hv�y..�� � k�P  �X��Al���`��
+��,e��:
E�$@B�Kr��.!{�A$A�,�C�Y[EA;|�
TJkU>���4�1a�Ɯd�cT.�����Us
R�&�Bc�h�R�)�����
+� Pd;���ʟH�b����l?1;_�:i�^��m�Mh9Ӝ+,�x�+(�‡j3�=P6u�>��a}�&���b�
(���0�=��.À<��2&�m�%�u9��_�~z�����L��!�S`(�6͟>թV��
�l��W䨸�m5y�pg�!�2��
<��	P�R%�wC�>��u
�b�v���b�F�.0���UK�$�K�;�؂�P�,�!�rA�5��%\��v���"�
+[2�g�w���dx��J���:��_�'�Eښ_+^Cژ�� ���I!	v��,���V7�2UJ������L��N�ITU�K�ɎIy/R+�=+(֨����v��6������!M����	��@P�B�%�R-��-�3��|4�-�����)#ͯ�
�w����.�ܘ�<�;�
��b��#��;*��>$e�G���
+�>�3�
�����"�
و~A��Z���$xOU��x��
�
f𜓜x;٥Q��
h
X�(�Z�����x=�`dš��
8�b�†i��d�, ϐ��!�enZ
+b���
/�޲��І�����2��P�0~�
�+��1�b��a�
�k��tT ��	�?�g�)��˧�9��
С�`.ޓ�`>'4��\DRd���Paxԗ��
����?i|�9�,�t
��Ĵ�q]��"��m-�9�O�D��'���E
x�>�#B������z6����N
k�%��tm���6BDzV��Q�G�
q,2�O:��
y�{i��H cy[]�v�a�Z��T�5 �Ȩ�R
3��4�5N�@q���G!�fYXr����{�3^�
��M7HX1��ey����������8����7ҙ;N�������P9��tn��/D�=����}*��I�:��2s�̋%�����G{��<Ie�d�X�w��39��5�I��ot=�ޓ�*
̸'��
��(���#^s����{�\���d�Y����dS�j	V���΢T>�7��a�b����� T�B��m�6ۺ�4JZm�I��
׶�F�הz�\F�D*r��E�y� [...]
+$Iⷱd�`U�+�����z�3��
8"}��Y\�E^�\Q��ܵ���)<&uZ�!
FM)V��"�ڟ}���&à/����
�
���5��
����O546�PW�눤0��
�f�GlE�bd�c
��'�ƪ�r��Ӭ[��{�K(��"M/y%���0=����zF�Bx}��{w6{Y5��0��%,��4�0�R}ԓ�vT��p>�K@�f�R�$�7H�U�(	�����/1��0�f<,��1�B�S>���٨RI3#&�&���p�a�5j����1��9#yT����H�9c�I���[��է��j���U̟�~��?�����
�+�7��N�zM�`k�|-�k�qJ�}(Ҙ2������S��aӼG�i� �;� ��b�:`uǤayU�}T��	2����Ftm�̔
%OpuD�����U0m~L-_������:�q��W��g�0~�huw�-]�
NV��rP�
=<�]x;Y���1�iw@��8,���n����\(z��q�������b�
!$zB��&5d��n��6
�1Q&�
 �&�
��C��u�Ўy
#����c%$7�]w'z\���0L�k{8<Oz	���o%4�P�˗�
+�9hz���͊��$�L�mxEFGO��$���Dc�����n�:0td#�*�v��T��2��.q0��6���v�g����Aԡ�n�3����l�'��H:�<@�I˞��8!�mR�S����s�^���U��g��f B�
�u�2L�> �;��f�G�S�
�Fx¬P�~���K�����m�%t3�M��� �c��cM(���bC�B��$
_� ��J�,���@��՜   ��%ӸZ�
;�.�6��B��)�P��T�~��~���:_��tH�NI�T�S��c��Τ5���_�3���b�O�6�-[o�
�7�$���c�n����:�zN�q��n�E2~�7\N��T���'�
�"[�fTT��^2F����
��&��+�����c5r~ԕ��(����j����l
4�8mW�DC]X�#���<����n�_	�T�� 45	�C0
V���~
m��&AG�A����7w����@�w����;����Q8� ��Q��
��?d��9���#1�y�ʕq�_eS]y|�d�*�&6Q��3�0J(�WG>�H���N� 
v���Ag��+�[�o:y1ډ�G�m�UV�'p�J{"�����M at 3��X���|��*�oƙ�ޞ�%sfJ�<��ߔ��[����-0R'G
��i�++q��NPF�\���&���XT~y�k�P�x�>���–����������~u2LX'��P
�M�O�W�	�rة
Z?q�U�����\+w�>-�q}y/sR�Q�Q�����J��@737���K�a[t̷�����E�8X��,��T����p����!��P���V�� K$��`�����Κ�׵�b�u~*L��lB�z-��<�R&,��+?�AP�]�o����L�K�ِ
'y����
�Y�?�
+~�t-"X�n�v&���?����VA�G��
+�
����7�W����h�K��D�Y��Z�%4YF�
g�[�
��� ��C_�M�6ЅLJ��!��)�9�
�!6��-��l?�@��W
���?�t`k�;�����p��}�
+P���>�f�{��i8Db����Mp/�F
��_<`w�[�U�q��.
���Y!�'i7�L'� �R�z$���v]�c�-�ީ%HY�~�ٕ����
�鞀ws{)W�a��˹��ԑ`����{�[z��
���ϡ������Z�&
���z
+
-��
��U��@u�BP.8�jz
�B�{G�tϤ1�ޕq#
���^�o�2��N*`�D��Z�m錞c�@QY��@����O�����y`��ŕ^ ��)�H�?�?��s	%�����J�@�f���-���H�%�{#}ř�PK n@�u�5w:=�Y�X9����(5#p
�9#���A�v(~�-�"]�Qb'䠡�y����a
+�������'����£�	+��v
O@��%�7_�*Z-r*��~z Ց�4��
!��w�Bp����G-q.�a+��c��"wmqk=���WfB
+
k^����0����>n�pu�5� �㞃= �m]0o�����-1�:ǒ~��%u
i����;�p�V��O�/a3��;0�o��Kܼ
L���6��E���d@�ZU%�{
����^�
Ͱ�y�O��V�NHLm���u�?�u
M��B�EQ1\�IُO�u�i�@L����7�Nk\��dd��[i��|����lRܰ��3"���r
W^ ��
+�1��9�~�(�V��ZQjsf���b�5~N
l�,
$LAE ���\�����Y�v����3k��"�*��Ie����.�gj4u��D��k"�*T�~~���g�^�
�~��<|�1�c��Px7��
kF�84�K(/AI�\ %�H�
�G;�'��6�������`kK����
+���Z�J���A�Fq��K�q�$5�GT��#.��a<��C]�s�zO��9�����@yQђ�-��D�RP����G�D{��n�����o��^�7�P��vU�v����T_F"�T��e�
��^�9��^�9���(Zi����*���J�|1�"�]����.��g:��E�TI�FzN���%T�|�k&�J�l���I��3ʌ�+�r^�qf��SNM���X��e��
$��v�{�ꢫ?�I��B�-��-Oi�0iX�o�
�葚T\���.%kR&-?(�m��=���?~3�Jncu
�/�mS<��Ð,��Le�H:�
�i�_+MSV��a�
k�@  \Ѓ*��+w��qDS!h��e

+�4��9"(h�d}+ɗ�7��)T���	b�ǪԪhm��`Y�ջ��
�s
<��-�,@��͋������SCg�Zw��N�	CU�c��W�����-JGm\Q��A]Q�]�h&D��0���Zvnw�%����0��z
��MT�X�I����:��l���<�7�
�a�`	���5�P`��ݰDh��k?�(�b��	��
?�`F��g�����ű��y���=�4EJ���0	GvQ�O4��W����d� SA�nM�C���
+ұ|`�7ø_��vY���Io���R�yYqE�,D�;�&Q�\�B�xW��r���v
t�

�
[���\"]����U���ˋ�
����w�髐�<�
|Mc+�����
�Z�9�(W
Z�ʳͰ��f����t��~X)�U�i��?�m�<P����	���;��G��-_k&ڞI&��M�L�<�:��:͹�7�����Kƒ���KX����Ѫ��W[�5P7W��tt
b�E6ռ�z
������~0�i��W�űہi4
[$�k����i�l�$����VRc4ӫ���Gk~ʿ�YQ�:ٮHb�F�G�X
~�Nu�.�kf
��c`�m
��f��4�걳�qVP~�:�U�
#/b�E7K*�W0��]�q�=$ܭ��� �X���QM52ym�B�S<l�U
+�ZҸL�eD׊=�

B��kLBR��Y�^�
�#z�A�%�ڥ`r^��'UIo�Fg�>�;1
p�'t.t-SSUn;Q��Y(sў��*�M�8=���
+BHZ#
��GcD�S���{
d'�,U�t���l�=��,}�*��v�cr�+�]�(_�1r�Ø@?A[��K�Dl�v'”o�>=��ԏ������[���?�Q�
�
ô n!ܘ���e���o���i���B]�u3����PzP'ߧ�%
�4�4Qw� �	L7@�?;�gS
Vjgo�ho�p�7�sy���
�R�\7�����V�%xL|
3 �n��|�2Q|��-��Go�t��u�V֘��Gk�}��fd�'�̐�yQ/;^��+b�#��&�~����ي2����(��<��c 3�;�n`9��2[

�Lqzt�.��)�<����lJ�a�n��
X>��ɚ��p��Tֆ��)��$��Dr�u:5�z�j�,|�~��0T\~�>�*,6�Y
+�]�7E9!��7���;a����u�*��8Y?��Ң��#� ���W
�f�iA�~�\���mB\�$�O�wD h�E��16:_�����J��qB���R%��*X���3

�!��O���:�`I�����o��k��2�+��}�Y��'1�%Y
�G����PMJ{rK
�����w
��
����_��
��L�&N�����
�N�yA '�ճmﺾo4gz"�v;L�	j�e���
%Ɯ���{��N�S6��U'*���@�d���jNc��v�o^=�Bi
���7�95���l
�
€A��ⶫ62�7�I����C�k�y
V�_}B��.I=��YR2��U^�c���<z+w@����b
+�"���8ۺ?pG�Z:�Oȿ��7�Ý��T��ԐI���
��J�A�����x߹rx���n?(��؁ w�h���?���F��O�Gj{�D
"��La�W�e�}j� �w��*����62�y3r3O�(�1�;LS��P��p��a?��
��U��}��c��qT/+��~���3M�ҫy$�=IQ�RS$�@դ@&\�l+f���EI��1k��ڸ����v�x�}_���nϐ��M�fB��y��"m�
�9�nQpϼ
Ϻ�e��\I�2��Gt3y����)w���%�u�$w[6o
@&zܞ�Y^�Z�w�;<\��b���m�����"��������{���3
=�s�
SN�Ӑov�(����D"��i��dM�֬Lใj9��Z�K7_�<��ې���ø��9�74�P6��
�0,�R���?����D ���m���6��.�D�t���he3
+����>~�o��\Ƙa3Ƹ2���@e���U*Tl��m�c�ӱ����� �~� x������n��N��������U���)o`Iχa]�����P���F�ŚVTC&�ϣ�࿋Y�=�d]/��
�.��.F�BX�s+$��=�}buM�>�RWm6�Ŗ6ᢐ�FX �5�x{v*������j;�zv��<���_~���� A��VUJϐ��^Ij�Q�x�シu�Q�o�=l�K�_��Ց�E�kZ\4��s�qU7��vOa �J?��Q)�4C��^����\��k[{��3��y�~���M�|J��'g��4Ay,$�0�( j�H��l�:Q"V҉�1X��&e��������
�s)M�Z��(�W�
�|�Ϲ�\���8�8&�t��c�p��Ҕ��a����
�͔����
�C��C�
GU�$^�fb���|�8u����̸
����&���A֍�9k�e�7�;�㥦���k�o����Av���Տ0o5����y�'����������<�!�����H���P�4
��|y��C�{_�2e��lTr�s��*��Idg_��'
V
+Fv�z|"��ƞ��ҩn2=�3[�"s����t�	�}N��8����`
�����1`X�i��]�x���(�U2\�o[v1�d%JOO&rؗ��0ܵ9�Yx�ݨ \��
��D�m����]=H�j�ovfd���)�:�t��b�dH9\
��ϛ�Y�?�8��
<%�}��dV�ەh��nu�ӻkV��3�+��(+�$���
-������#��Ջ��QҰ�����Ж���X@��h-Nd���$�a��>�M3��q��"y���$�[Y�@S���g�Ó=ݎ��P����1�)L<�d�"�d��rՕs����W��	��DJ�
+t��b��
�c�j��*���!�A�q
+hG�|�3j z�O���� ��|�
N�
+��*������%2#
�Ǔ�H�7!�
;v����� '�;��
O����~h�ĥ�%�,v6�Bբ��Tx��Dv"Lt�ïK"N#��.ec�}f��˺��d�&�T���R��AS�;Yq!������E,������AA�m?~������[�7��[ ��>
\�!�B;U��!�)/������C$N���$�A�³u�e�uU}�,3Y'��/J���c��	.8_[
O�����N-<"N�����awG��m��_+�yj~P�]ſ^\y�
X��,r-�|�㒒��ܳ���<���L^T}��,�^eDR��,��n�kqց%��|r,�!g��Jx�����=~�p{"��\ee�E�N;��Þ ��=���$���{q@Q��_��\?�/иLe���>�u��#��M����p�'Y��n�_e<�q㼅����Ra8p�LB�=��(�YK��[l��`BK����B#4;c��;H�S��^��OA<�J��~�I4,���$"���,B\HV'&fಀ/pO_*���_�_�#���&l��Wc�K	B�Z�(��|Z���b��+|���KpT��
+�Ar3v�*>�����>Ʉ�x\�+�0lk������O�Լ`� �F���cfup�.���wlC�n���KJIi]����&���f�����XPA���n�1ک���F�TK��BoI!��Ӯ���Z�� f�
)~��X��h���y���9�
ݨO��C5�����&�|�T2���Ӳ���n�SLB5eD0��:��
yP�;��(��w��9m��Ϊn�Wh����K�u����{�`��w��k�����
+��kH���>*�ڲ
��1���
�w�p5�����Q����݌�$
�;����LvvJ1��f����3n�*���T�g at oO#9|}����?V0M�5.�ۀz�{"
N�K?�C�_$
P�&B̆e>�(
q��I�u���`���|o�b|�_�0l2�Wꂝ�sC��ܴLT�
�I�a?�f(/+���P�Iw��B
W�h�g��šH
 ��
Ei����(G6

+���
�
�" �
+"(�H2�̙�dfr�	$��x�Z�EP>�ţ��
�����C������~���E��F�:}<
�\{
+�����%����
rH�6N$(߫Nᷘ_%�1�����]�2�:$����o��-�8ȥ I-qt;�'k��TjJW^�}�k��fQUr\�u��
l�N�
kHn᫂�H����*�W������d6��
M2	*{���`�V%���VR�oJJ����`+"�yO|s8����6�V��y8�
�:+����;��9��ɨ�=�.q�q���ѝ=���ɥ��^ӏ�w�ld���G���;<�bSh�
	�
�� (�����%]�
�N�}uAܹ�
�`MV����?g�=�&�o:R�����(�tWS-{66C�S����������U���foEI��hzE�'�ܜ��&��Q�8,�g�]-2t��%��F@}S|��QJĜ�h&S콧�bor
2w�q�|�o�����/�$�
Ĭ�7�Aң���I�MXIc>��f���H^�2��`�zB�ȳ�
	ŞO�*�{M�2MoR�0�i����:�T�~%�$�9ED
~c�j<}
���${.�-��+P]c��=Vz��pwz\S�;!?���
C:�G�F����Iױ�q�Y�Ş
݇>;��]�����m�S�)�yr���Ez�_n˕�aI"l�|s�G��������vm��ߵ
���_7e]֭�>��Г��U�)i:��D΂�G�}�V W�5*��{�f��?�
+�(��$�p\)9D$ZY�r|�����(�4D܁O�H���ʳ
;ܫ��v۱j�x�Lr_r�
���;Wi��
nV�|�R��u��dܦ� ;�@������Y�N�<q�Iȗsc�E���^M|��K����ƿ��6��#Q�쀫��Hl6�\�r
��E��jJ����K
-�β+� �x��=��j1�(~ǒ�)�C[vQn1����򑾪�x��V�
���a���u� I[���
8��m���Y��GeLV��(X/�%W}��%
��
+��M]4�ǽ��A�ߗn�װQ�ԈX�tGd�Ƈ�D�\wQy�R�>�l-�Q���nJ��Ȳ�c�/�����14��
�C:�'K��&���̕BO�J{ߴz�f�sW��|F-��q2��
?���}Y[�pXd�Y<\��v�+�
�M{��i�r��8��~�LJޯ����
�vlL:��	?@���o�[g�`���}�>?Ur�ǛI2��L�k.�}GpI8�Q�RV%܂L0/PU���E��
?�ɹT��c�ۼ�f�H��s��^QM�C!��)�$
�;
�ej�
�uIy	�W
����6���#L��Mi9�Ħͱ��P�*���H��ʘ����F�g��]�m��ߝn�+|���X$Z�6K'�
�O�Q�J�q ���m�(B~�lj��Su�Z
�ť�bhW��P"��z@�U�
�V��J�΂\�,<\H��A�
��5���� �O�af΍�C75O
����<x�5�
��MKQ�����e%T�f�ʤ��6
S
sFt���TOU�t(���
�2���[
+ES!.?Ӕ��#��C�:[�6�$ߴR�2G�[�D��U��cb��Dx(M<����}��|�y��%�����}�ђ���Hm�zy�Ey�)�9Didh(Cp��K�o���Y�9_\n�i�Qsƚ��Ӯk�X3��6R7��U&�"c�T4E�ʈ0�X�,t	��:�T��/>Uݮ�x�7�����F���>Q��L��~:ʥ�#�]�[eTS�2��%��c�
���Æ~EW��g�9��i���%�3W4ފ:�}޼0�_�X|���-�ƣ�µ������V�u�8H{���Y�F�"qĔ-�F95E!L��/���3z���Lw@��
"���F���Rm�O����Q&�[�#�����
�Z�O��/�x��ˤ�r�~9�T0�0b��ܬ
�4��Pߋb�>_nMFY%��<�ip
+�;R�x���@��|���qj#�l�j�?Ape�  �[�ۊ�x�{�
+�s�H�t-bM�#���t8f���5�}s�c��0�f0

CcB�K�R�mc�E����k���ץ�JH�[�ۢŚ<!)�N�o�OC����I}5����2���
������0�9���tMب�������7B���0�؋��
����0��z�D�
K�
�Ye��R�U�J�����ѐ:N::,#��D~6�ž���4o1��l�`��q5��X��U5G�"����Z4�tX���� ������
��cV�u�{�_<�9������S�N�}h���%�{�nԾ�"V}V�"C�w}�t���)�b�3�zFj�oK�����j2�'��Q9
+]��\Bȫr1.8�C|��.x8�~��pG��m<�ϰ�"i��S�˨�
�ڠ
u[��)�E��k�+WE8x����5�
q�g<k~���[��0n�&
ˊڮ�c�A��a��
Jú�g���"�:�"].f��f�5
	R�u��B�Tu6�u�|�;4R�
�'���hNp�\@I!��Bq"��:*��pX'%O���$�K#(�
�}�vW��&��$�����n������x���T�eحk���U�^�I���kK��l��

Y�+H�;"�����^�\��#G_�Km��R2�y���fbI-�ب:ݐ$;8�$N(�Ӊ�x���a
+ ��1��"��*.d8>���MO�a��N�$ʡ˖~
&(��$~��>�����t�BM%^i���3��ϐ�Ef8UB	 �
���'`-�icIaͨ��+��	��دR���=�Z�����Ⱦ��Ł�=�5�U#��5H����R����>njky/����s6��H؃�E
oL��y����C�G��/��?QE%��F�v��MMz)=Z�B.��ϡƋ��/�•��3������O��8��5&�Y�����K�լ(�ST� e�ҝ�ZV�
��x'�xaV�4�Ë
�*H�]z~�h~
�i�0d,�K��8��CZy�{j��CF')�b�
|x���NJ>�V�{�0��e�#|S���E�1b狛*_�R��"���
���37�����B���oξ��(p�3_�<ݥ%-��t��ɫ�B�e��t�Ɠ��px H��uRuɵ)H?�m�����
�f@�Iz�͂qrgM_����D�|Ce�
+��ӯ_���w�CՄYK/��Ԩ	��佨/���Y0�����y��̸
7�.]�*ѳ���a �!�d��[�m��9���#{-�;�W�[����	
��U�$�mb?ci�3�ؘs���q�6�ĂT�
t� ֠}���
�dl����v��{�F�yt/ټ�t�����̰��K��Q8���
N��"���4�ʻ�c �'׸N��s6��I��
<�fWϚvЕ*�҇�T� 
��9�
�I#�{�	��mVx�@�.
��\�EyT��}��W�*�fҿS�ѵ:'��hP��of��ħ/7��n�
u�3֭F����c���ȶT���5��y�ŴѪ����L��i�Ӕ���%v
�I��G�	�ɒ3�m?PH-k�
�;?�v�bkk���Չy��^��4o B[�*�Bo���R
9���^F�t�b�Iyd����W��$ګږ�
�N��T3�VYzl
((�m��"U�a.\�vz��C�5H8�H�$?sZ�6���=:�hh�B�!É8
+`,�
g6�$cN���!L�p�<�
b<���Nz;�0y�%�
)�
�"�
�D�B@�
;�.a��$G=�W+����v�F�v-�����|d%��ݿǁ�gOŨ�
�;$KF���lb�u#�^$(�b�	���,���jdM�[s��kx�v�͆��c��?s�B��fl�S����k����Me͈Ly�i��3�TZu�g�v���#���V'{�F�,���8+�5��%\���Y`kY o���C��,VQ�"�B�k�5Wjؚ��


a�x����h�k�"�	�A�ƛ�/��d�X��!xJ
��(}�~��&�|�
����	�h��?��.��������XS ����qX�}|�#Ci�ch�K��VF @ d��w^��NH L
+jk�u�j����V�JE)������swm��^
��VQe��^*�7�c�Su�5�.�:��5!{3�A/��u@v�?�aD��UNC�k���H2)�
1�z%�9�U鱛������v򹰗�!�k��0>][#�?�w�sb���,4U��_	f�)��E�ď�*	uä6Go7�6ɵ�
���{�����'
C���Ga��+���RU�A=�@��5_�rgs1OU��G��*��ʚ�O�
&��Q͡�4��%����
��nl�c=�%Z� ��v�Y
�Ze��ਝ4�?
eC����`��
�

�_���wvĦ10�K�B/��*Br�v�4όwM��	0����
r� �`���$
����C�ܝ�G�a6;g-N_�&ɰ�.`	�`�0����M/s\�P���M�f�`p��3������ 

$��A7�	i��	���c���(y
<�N������6 ��e/�
�c�POj��m�+�YЪ
C�z��Xa-��
T��`ao�t�t�._
,qg��O�����I]@��f"�	�?4|T�]�T7[��r�5+�D4UffN�]Ϭ��'�Md�d����Y��%A'-�:�x�>�j����Ӎ
�5!�U��iMSD�-rB�FL��&����^:O����F�-T��4��w
�������T��3c
q]�2��R��d�/3���U�\;?���Up=���@�b�
+TYRJ��3���O�)*+ s�W�u�.��[��L6�Ǽ��A�. �귒�h���oN_�=C��|��HW�	Gz}��w\��2�h{?�U��r_ס�,[<���4�Dm�D��〷����C/
�F�l�
M�r_򑹾�g"�P\T�M�Ii�D��w�$��=`
��I�Ӑ
��}����6�.��jY�x^���h}]����"�]���l
+��8�"ӽ΃ǐ��
L����"�H�ڝ��k��:^֖T��m�������� �.���^�@1�~qxT���l�U����#U7�����5��:��L�E|4�&W2��5e��xz��*̖̆;�����M�0��do�^�lpm����aI�S�7�kD#���'͊$�"lL�?b�A���DI����N�mEh�
��8��Ԍ*�"vұ�E������
���݌5Z��5
���
�`z�~x�[�M N&�a� |�b�(��ǁ$�ch�
�����|cq�)M�_���Ɔw>bSО$
��	�D�p��
�z�!G@o3���
��
�a]Pn�N2);K4 U����"�p+q
��7b�������L����a�y�$�04��iC�c9��(�6�>E3a�{� R䏡�0`�?�s0��7y9'`L�q��`S��cLr &M���P.ڽ��,��_�r��u
����/�F������=܏��=1lt�Ŝ
�9>1�lם
+��KX_�t+	�
�=���#�ثL���
+u�uW�K���̹�
u)�F�@�������j�R��_$����YuBś�G�bQl+$���,o8�q�l����g�
!)
����n�2Q����U�>Yt�w�(���^�
�'Y�������
!�� %�G�U��9��� ���,� ��&>�YcwU���
�M����j"�
��Z�o6V��WF9�=�a��l
m�y������nqA/2�A�I�̐���i���
+q��AN?!9Nxl�b�O���{�e�i�Y�Q�̶�>S���Z�	.&�s���b��j?1_��ǡP���k���ٟ�
�x�`дY�!�n��6f�VJ�?ff�o���n��0�����6l�)�7�B�u�yMA�Ѣ�&�m�>�>�Nj��#4J%���&|���
E]ۊ:��i�2g�0��io*�6zX������h
+�҂��3;���1"��2ҍ�+O�?���K��ja����� ���Y|��n�MH�p�A/�LsI5��cu�*ΐDx�!W�
{�|m�p�q%��q�eh��r�Yb�Bt
M7��u�A-�
+w%5��,x�+
�z�!Ί}|%��w�pȩ�xe�Xx|Y��y$M�}y�A��z�5��{�+=�}5"6�~�{άq~�p^�Q~Md��~*XŸ�~,L��U~S@��~�5��
~�+f�2T"��P�{p�U�Ip �<��dG���X]���'Lz�J��@��ς5��)��+��g�I"ۇ���{�~�o��e��c��,�dX�؈	L;�o��@���}5��^�E+����#���zЩג�oy����cơz��Wܝ��L����@��E��5�����+��
��#N����z��O��oK�/��c����W����
K՘$�B at W���|5��%��+׊��#x�A�qzt���&oM�ɜ9c��l��W���K×���@V�� 5�����+�@�)#���� q���h�f��j�[Ű1lmPʪ�npEХip�;
��s
0�Xu�'���xzŒr{�qD��o�f��p�[ԯq�P䩪sNE�t�;=�%v�15�x�(
+��z� W�W}
q(��vsf���v�[���wLP̨OxE뢳y
+;N��z11c��{v(_��|� ׊b~mq�C|�fL�o|�[y�[|�P��|�Eҡt};O��}�1���~/(���~�!E���p޵�f&�B�p[Q�/��Pt�ہgE��S�;P����1��ƀ�(�Ā�!��ހ�p��,�Rf�O�6[B�5�Pc���E��`��;U���1���*)��^!�H��p��y�`f
����[>�f�	P[��AE�����;Z����1ٓ0�U)F�j��"0�΂op~���7f
��![B����PY�_�EE����;T�\��1撠�C)k��"d�j�pm����f�r�=[M�,�1P\�Ǒ�E��S��;`�Ћ�1�'��)}���"��
��Ρmf���n�i=��p�kq��r^m���to�lVu�rX w�tD
y�w'0�|Yz>̾j�qźjl�r�`n�t��p�u0�rnvgkbtgw�WIv~yCtx�z�0b{x|b��h�|~��j�|���l�|��^n�|�~pp�|�j\s}AVtu[}�B�w�}�0z�~l�;fׇ
��i�
+�9kD���mh�5})o��viNqꂿU�tX�BEv��=/�y��VǧeP�{�qg�����i卞�|l
��{�no��hLp�(T�su�SA�v@�Z/ryX��_d
�ִ2f}��}hƖ�Mk�/z�mt�Lgdo��jT3r��xAKu��I/8xσ��[c&��5e��[�}gܞr�Qj.�xy�l���f�oD��S�r
�d@�u��/x\�
ębp� �vdܫ���g%����iw��y3k��ye�n��bSq��@�t��o.�w��U�a����d`�R�f��W��h�-x�kk�emn)��R�q�\@?t@��.�w��Z��t�f4��u�h���v�j��xxm0x�yosekz.q�R|{itP?�|�w-�~�zK�'r�p{��s�qԜ�u#s
��vFtgw�wtu�d�x�w*Q�z%x�?E{�zb-�}�|X��p�z���r'z�ssj{@�(t�{�vxv|c�wy|Qy
+}>�z�}�-R|�~H�(o���Yp�����q݃^��s=��uPt��;b�vS��PPx
�<>Ay���-
|0���m��{��o���p��z��r ��t?s��^a�uQ��O�w+�T=�y>��,�{��¹�lu�S��m�� �oou���{p���sGr��latq��Ovk�?=tx��j,�{
�@��k��
��m�ܖ�n��l��p��rxqؔM`Ws���N�uȌ�=&x��,�z�����j׫��4lg����m�
��om��q�q0��_�s*�9N uI�_<�w��6,�z@����ja�観k��)m\�|�2n��q)p�� _<r��`M�tړl<�wJ�),zy�����}!e��u}Dh,�9}�j��
}�l�pp~.o^�~�q�L�!t";��w+��zU��{
oK�j{ipϒ{�r>�|2s�o�|�u
]�}@v�LO}�xT;"~�z-*��|L��y(x�*y�yr�
z$y�
�gWT�aˢ�ĮkTd at D\dPPp-HG��&]�30���;s�Cg(�� 1DE�*n�6ܵa�z�*�&��<��//6��

�O?��Q}�0$	8
_��{���[w� �/��!f�UmxrI
�WB���5�(����)2����.$
��5U��o�}Z�!O�O����q��m�����
��>�>P�3��ĸg|

�,�X񦁓�`���S$�>BG��
�DǕu��#�i��#��܌-�`
��xJ��!w����
م:��(�����`[H�W��eQ�2U��FD�����`�|���
:C��d���2��~Tv���k��dEeUb2�<o]�^j���j'{@��s�Jɻ�uiW����ŷ� ��o��Ws�%�PFU���V
6[f��
��r�uOC��U(5�?���"/�/��b��;��H���-O
+�o�_�%��{�"bHk�&9q\���W:���r��
�&�G�%2.i6�D�1�%~F���+~Z��C�?��
8��V��
+�2�#�⮪����
ui^#v
+�NL���؏�S���E��Z�Ln�Ö`���=l
�va�;(�>̽��p� ʠ������~��[��@��Qd��F!��7��H��$��������	����#��d�Lt�!BO�K�*��G-i���C��r�B�
.�U�l�mO�>�
�,B�2W�<+�3�6��7���ߛ��@��

�)�۠&KO�
0ޏ� ��O�
igm��82=D� �4FB[���!A�Ib4�~����Z�� 	*��fz\��O�t��F&�����ӝN&3x��F� �[�H��j���z��&3n14���b��M� �zB��!�
��|��+�
�

+/�hw{��V�\l�s��T�j�g�?қ����۟�u �깮�D�}û�.��5�ʺ�(wM�	��ұ=�L����j�e�o(u\���
y�P�X�����Ƣ8�p2�����23�2"uh�0
 �;�(3���-ybݷ�3����Wd��sF�@w�	�,��8#���!��H*9��)iF^
+��P7��D�g��3I�33D_����)�J�QNdO�m2�t�a':�=���J��.�۱�
+s�`d��+�uu�-� ǵ�i�ȵ\L
+�kw��/i���&G�1|91�:H�^��
�gW���@-� E�if�?Q��F?�/�Kv��ř�M�kz�݈u�N�0:ӎ3BJ]�PU@��׊VV�z��D��PC����9>R��Tl�{=E�Y^Sc��yjN��9����6b~mwj

[��
Zl'�d}��[�Y�ގM�:t
U9����WI�-#�d�=�sѣ�S
��I�Ku�Ʒ6i/JO{�s��{��c at 6o���P�U,�'9cV�~�M6���I�Q�1�W�wo��T+�ml��F0��\�O��d��?�o���i��4��M��4M�C%�H�f�M[�r0p�[�
���p�|R�’��/Ld/_c8]�
׍��
�YpF�KM(���Ewo�
@�jj�I0/���k�ad[�H�>��|/ѓ�L��
��|0�0S���VR��ׂV2C�æ���a��v��4x��,'L��82��'�7��&n���&
CĿ���f]9�-f]i<?h��_��]�ǿ�"��a���5!�	�+��C�Q�O�}D{�p����՛�x�էɰ��i��X1kt́K�M�w:�h_�Id)[`m���:��'1��f%s����7�^V6,��0���|����3���3~��+�䔓*o؜w�PPK��
W
��{�W���0�.��
���^�Mq��'r�>{���T������a��4EeNٟ�����ή"�V��_�ǔ3���t�f6���5��ҷ��,� �jP
���6E���x)ͻ��U��Su�@��6M6�d����������F�����V��SˬG���Ŧw�Ơ��u�y�@>.���TȆ���V�Odj�?#驺�syc���A)w,zl<��� ��ـ�B��*��7�i�j,\���P#���;}}�~��r4��fx�O�"Zh���NM��
Be�@�(7���8,i���A#F�a�N}����qǖ*�lf
����Z �ۋ
M��2�HB-����7�߅�,y�Y��#p��9|��
��q�����eے�NYƐ*��M��}�"A�튘6؈U�,��ۅ�#�����||���(qW�,��e��s��Y���!M�����ANJj�e6Ç�,��}��#��5��t�Pc�jO��f=_`�rh�T��k
H���m�=o��p�2���s�(��Hv� "��zbtu�5k#j�� [...]
^ٟ�t
S���uSHt�#v�=_�.x02�y�)B��{�!
+��}~s��<x�i'��y?^W�Ly�SV��zOH-��{=:��{�2�|�)p��}�!g�
~�s@��|h���g]�OR�r:GA=��^2��)��$�!��U�r���
hn����]��
��R��y�G��ƒZ<�����2�3� )��h��!����r��7��h/�ۋu]j�R�
Rh����Gv���:<ِA��2�v��)҈ƃ*"-�=��rY����g��<�"]2���$R1���GD�T��<�����2�䆡)�?��"Y�ׂ�r+�0��g��Ȗ�]/�&�R
�`��G;���
<���42��^�u*�څ�"|���/j	��cj_���e�U᪹h
K��$j�A��+mX7���pM.=�tsk%���v�
��\z`i���j at _׭�k�U֩im�K���oxA���q�7��ts�.��vp&(��y(6�0{�i[��p�_��`q�U���r�K��5t7A��<u�7˙wz.���yQ&��c{V��+}di$��w_O��w�U_�vxKk��x�Av��y�7͗�z�.ݒ�|&̍\}[ '�K~�hꭢ}9_
��}AU-�)}TK4��}wAd��}�7�~..���~�'
�v6 ����h����c_ �z��U��{K
�o��AO����7ԕ��L/���'A���� ӆ��h��ʉ[^񧞈~U�0�jK���EAC�ą17ה�1/7��D'r�	�b!�k��hn�/�^���U�u�K
�ʊEA8���7͔9��/A�O�7'����!H��AhZ����^��b��U�ؐ�K�'��A<�g��7ۓ��$/L�͆�'����!r������h`�JjNc��Qlyf���n�iMy�p�lf�sn�S�urq�@�x u</{,y��eEk��g�mE�j*o��l�p�x�n�r�e�qdtR�t
+v|@Uv�x�.�z={9�)b�v�"e�v���hwl�Ej�x6w�m0yd�o�y�Rr�z�?�u�|.�ye}S�i`��Y�jc����f6̈�h��vRk�yc�n�gQNq�Y?Kt�S.Jx�L��^ي���aɉY�qd��%�vgf��u/jO��b�mf��P�p���>�t(�o.w��
��]^����`c���CcH�l�Vf+�;t)i0�a�ld��O�ȯ�>tsw�[-�wn���w\-����_A���Mb0���ke#�SsShA�!a7k���O|o��>#r�
-�v��0��[D�n��^a����aS�h��dL�%r�g{��`�j哟On��-=�rf�v-�v��m�3Z���p]­
��`��܄c���r
f؝C` jR��N�n�b=�q���-�vB�w�~o�`^��q&cc�r�fB��ti
q�u�k�_�wIn�N1yq�<�{u8,-}py�mjy��n�lp�ptnR��rp/qs�r_;u�tM�w�v2<Ty�x�,|~{6��j�tn��l�uf��ntvT��pEwFo�r+xF^Jt8yZL�vkz;�x�{�+�{�}6�
h�~4�lj�~F�(l�~L�Fn�~Qn�p�~e]er�~�L:uM~�;sw�~�+�z���f��
i
���k�<~�m*�Rm�o_�n\�qǃ�K�tU��;w&��+�z@�ɮoe~���g����iю}�k��:l�nH�[[�pʈ~Ks���:�vw��+�y��Q��dX���f����h•�}j���
Շ_S ��VN�u��1���X�DY� d�0�@�/y{��e��`�@��=�P�����8�
+�
+���x��+����O��pO�T���+��g���xjZ�@���c}9`k`cTnw�?�+�^5�����j�䤢���
T&�o
+
�l���E��x9�
{�Xf�Pg at C_�[�G�=/�5��g�4��ʥ^E�*�z������	��5�#�p�
&��X��s�Y>���>��@?�n���C)�HKс�#�Eu��$�%������`^>[�
+�(?`~�^x ��0���� _�+�O��v&"Y��D�>s�5x'��]����~���-��i�f�~�>NF"
P����� ^O��G�#��
�ǖ����0�<�7�ӆ�7
�:
s���XL��!kݱr�
����x�{6�R�t�"+��@��q��*�7k�1��U誘Y�}(��~
\H��`J䞂��\��
+����5�2[{�F�;�On������ݦ��
�
*C�{
2H�
<��N-�S��2��Ur��u�UKm��5
ųBu��
+}�����3�!�J�H$�
�#h^Qv�0�q�U�Y:�ʫ�a�Z=V.���}V�Z��fs�y
����֧�M���P�8�:�x-k�ն(+�rީ�G�S�I�Э����O
���w�
�iι�9јy��������&��z�8,k�.$��x�=rmRM���R����u�Mb;d��w0y�
�2֤�T�{����
��WƊ�6m|�+�8�EC`��
�Gd]��Mm��"��W�rS禜D��~A���S������	��+�G6W#��jnA>p�� u�w0�D(�MHO�B$ ������vKѻX�� {���'V���'
5�c

+
+�sh�
]T4�I��
��D�G�ãTD�(2BNlz�9�eB_
 ݫ.�#�J�U��bG������ɰ������	�P��c36����߅!�3����?�o /˼�	��4Ta1l-vKWZ������A�p�ɾ���<���>\�Щ��ހk�a8�Z5$�G���d�W#��{{��ߢ��!	�e�8l&�V�
lu4��ʚ��@ԸQ��������WJ"�����
��쎛�����)�9(�6�g
f
�y�'�1?�J��L)��b���쭢���l��]4�L�kۘ�Pp�u�ﲹ�)nCA �Ŷ+2d���EH�'��H�m&Y3�u���ѷ��k�ѽ���ӭ���1��n�]�_Z�<ڮ�Rvӛ���pj� m9G݂������#j}d��A�-u ڠ���
+�0�\C"���
dhK>م�����ٸ�:IF�q�\BVhF�'$�[I�&3����B��t��K\ �D��'�`;�I
[�"��%�#���N���\����
I
+|?�a��8+�ş3�"-A��ש�_ZZ�K�O%u6`����X{c�ͯw1�
���$���+��O�M{�'���E�],�j�z6���+���~�
�Q��k	a=�_���/E	��q����bV�k��&S��7<R5�|m[N�S�<�
T[�'���c�֝"16`���f�i+m�Ԃ���
E��h����6��=��2%w	��\W��w3/VWx�G��k��	(�
+��K6\�G��k6ygf���p86�,W	C	~�����8
�y�q'
Sk���3��vI���ժ*�/��kffԛ]��_M����5Ɵ�$Ϲv��3����\�2
�e*��^\?����|�_��cj��1��xڶ+����em�[�8�
��@��r�1�
��3�4�6=���
�v�׶��
+�f��5�R���j�W����u��M!\��7c {1�
'a����`&y[8#��H���3��Ci\OR<y��0m�O�y3lN2'�\N
`�́QSL��'�}�)�R�찧�R3I�w('�g���V!��pG�Je�ضR.u��.��j�O[GC�����d5�a��L!_s��d
݂F����\nMͳ�&ֹj~*��A��%y   ���2[�\���f�-:H�Leyby �
+� ��}��s����-j������5+ڲkE���Z5׺ֵ��ޛc����[GS�J��o�
Ť��� ����+���unR�Ɖ�o���Q'�j
+���9y<�i;M����B�]
+���Y�5S�A
*bPW#�X�~$u2�ξ/1�a��+���` ����cv&�L/�0�̰��;t)H܄|�E���9�1��ݎ��j�Ɇ'u/���qvC��|���\l��W���ja���C�m�^~nc�=�=�7E�m+�O^�	|��v�d�,�<8L�O�j�%=���
Y0o�}�ď��vCB�W[�K&��I>f�g\"�&]��KOÑ:�
%ije�B>�%���j�:l=��T1e~��/�ߪg�
���I
0^Y��V)�<�^�ϑ�%
+�զՏQS-W��GpaθD�8�ߠ9�D֑Ճ�XM'�
+��U��J�]I�"��mt��e�uuE�)��-3`�Ҍ� SoO��
�� ������6Ju@$�Z�Z��ǚ����;���o������a��m>݄92)@m��{��������
���>�-�V�|���������WU�>r�$Ӳ]
�qّ¸��z�EYuɔ��>�GT@蚩
�\�'��}њG����9��mp.d. at L4
c�&,��r;b�
ӂ���d�l����t3�ݦ�]Q<�
b��-w
��
N
�k��	k�
b�K�%����H���@
j��"�W4�sf��|A�a{��8�c�%�J@b��W���\��E���':Ehs�ř�=�}��9fǹ��T��W�
!3ߔ�% 
פԘ�]YzĀ&X
I
kWdP�ي
�b�]�9g���bI��i�
����$ �O�1wu_)��x��S$P�)m/�UI
�.m
�psf5�Uwl}oy�h�
 4�;=DU�IKS��DS�j�j:�?�2�*w�0P��4��o���+G��4O6�j�eu��
�H�W)ϛ=���ݮȆ��s�51��
o���k���a�I�ӽ֒Wo�0�%>��#}?V�5N���_�����r}��%�7���
+�Լ��
{�!`�D}���K_�4�
+�!���Q\��Hҽ��zȔ�H�N�>�uA-^Ჰ�bg��%+k�5���8�W�	#�wi+���q��0��k�hc��uTT�[����`�5�Z[�`�J�	&���-��v�**��
cs0��� :�-�7���o�3
G�(�Z!�
d
�
�
�z	Q}v��x�'E����}��aQ#*��'���vi�Ʒ|'i��n����˵Y���;�eR{��E�1��v��i�k�Y��T�2����4o�/��;��K�
�
|O	c��
+Rr_��T��'�U�t�Kyγ�z�a�L�
=
z�s#k�)��|O�
���Ā�܇��:a�x�im&��&
^c���ŽoIѓ`�
+���W��8�2K/�ױϬ˽���^��i�����p�u�����O���:JD�:WtG<Z2��]uyy�+���0��H5W�?16א	~u��[4'�)B��rj�X��G���>��<�8Y�J]
+
Մ�y�iZP�-|xm
�4��r�Qe�`�d
Z�H
;4�S���X1̚�`��w����p�u>�7<dE,]��5�J�!
���T�%"��
�7%:�	-+�6\�w�����O��1=�zs��[ITNX��)bOIUq~�JY�����鮦�t ͆/?��w�U[j��+ϖQz�U�R�
�'d(�_���X�q��B�y��g5m���V�e�q}��J��sg[�\[���>�	H�2 
�<?\�`��L���8�n�/�j?*��BgK�ߩd�}��d��"KK{	�LT��k�a�(
�·t=no��4���i�H�A�-:��s0J�
ַYa�<Sebv]�
+�%�;�8;2�/+B�M��q�vs$`ى�Y4/�\ssi iUcd���U���a����fh�6ua�P�����&>�%�C�d>�zES�?��+��&��e�{�\�Q>��+)�
��^T9Z�P���F������� �V+�@������l@
A	��B�
+r�3���
�L2�$��
$���x ����*,^-�ڷ[]��<**�R�������I�<E�|N� �B���j��*�K�=׌���A
���ua�2�%V���/�.RC��
�v(ݴ�ܥ�Kp\��	t!w-<��
��ar[�fA72�:%�E;���),�Aj�&%yޑ$��xPM�E�@��Af�Wxx����M�%|zW�6�J�
i,�o�V�^>npdk�
ŻΫ

�:�������C�������>�
KXi��<�_�TT���Ֆ��q�cs�.�JmZ�E�Œ����:��^΄���hsVIbm8tS��X&^ a*Ɋ���n�^�m����=A2�s��^
�mICca|k��`�K��{��"Y١:nf�,ڱ�W	x�_n~�	��
+!f�睥��#�
��A�ɧo��
(u�
+gį�Vg攷���E)��?n�/ؠ�bd��S�u3�Q��Q���I�B`�\��C!���d�
+�P�,���2QC���[P���һ�n�`��
R������XYU�^��'�,|Y5
G�4-}�<���k�C���fގo�ۆ3 �����7��%�R����/4��!=�a�'��m���fUg�L���(CfU]@::&��
+�wo��߿���D[D$��<��H�׽k���U��*I�#;He6�i*��80C��
 �T�N/h%��
u�hvL�5'�ƭs*=%s+�:V9˲O�%����(LWӖ�s��w��n0~
~
I`����F��嵃v���&��K^U�*^�6U>,�V��{�:T�5zG�Fd������x|��4Z�ٲ�� �u�'�ʦ��"��Ww��[��f^�'0X�cx���������2��rK�J�J�D�������Jm��B�|CÁ=�55oc/�����h��N��L9�'0�jI��.��� ������ =$!_��3�s�^�>pX0�]S�c���Թ`gi�9��Q?�+�,O�|ek���kC)6b���f!)�,�M�����jQ����Z�F��_ ��Y[-�ۈfiv&���m�H�!�����`5o��I��xu�d
��P#�F�
+�P&�����h_2�n�nm��MsC�?�������w� ����O��t�[P�k+�j��n��A	��ǐ���� �H�ځ��Y�*�z��ל`� L﵋TL��0������1|w:4�4o�����(���%����j��̨5Y��J_���|��
�f�����
�y�l0���0����D��O+/�.5�T�"��$8��[g)T`MH��?�Ɠ��\�<f\o���-1�
b�y^�Q���E�E����*׺����e�U�.�_3P}7&^l������X���x��V�MCG| ��0A~�����
�
%_����o�
�À�c`�4]~rf
�5��o���{�/DRe�)��R��'2:(FQ�KL�U�Du�4�9��%���O�
�'����E��Gts���Ӻ|U[��nl�M�Ӵ��
+���/8*�;,��a���8�s�k�
��~!�!�@)�
�֧�&Ñs<-�s�Z�•�2�Eb��T�b~A��A�}D�ʺ0��S��{��{G�a�
oqB͝$��F8���z��*��d���
����:ٟЕLza:J��ea����
���q��
��T�*�1�"}�!�@��k���˳�߬�B/�lEy�~�eK���\�5��$���O�=h���Z����͓ނ9
����`�_��������ݎ�[�9�Ĥ���u2B�\s��
�u5=��@�Ό��p@
�z	t
�;�*+��.��Z�����a]�1��l�R�S���o�����
+�Кr��H�Y�K��g�<�`��7/�|�+4�A���*�K֨8���1��%�
�-1w������?Ɩ����)�r���~�K0�;h���+f��g:"&�6)�r����p�c��y�B��6 b����#�&l�:w����>fިÕyL/�\Z������j�@  Ν(�W�ڢu�����d>�P"Y��d'$�$�ʗ��
�V�J+W�>pG��[��^���Gڻ����2|M
5��k�ci{�
�ZJb��ILF<�fB>�P��C��R7<]'�w����K����QXb����*�
+��$f»��
~	^�̈́:�)�]��}�p��A(��+�R���X� zE����;b1t�!
���9�ݠ�B���j�`�
d�>�
��!�L7g���h
%<d:@dA��C�
�<�@��߈���@��.� ���
��Z�j���@pC䂻Qab!��
��M�b�q�q��z�b��ە�3;����@�A��K�$�˰E�
�N����T��
ۢ�H=j�o�n_a|�1��r(���'�m�r��Q˰�lp;�Ա�{�qe�� ������
=�^ՐYc�I$�ۖ(o%�
��� \�-�
Kч�޻����Α�v��K�W0d��ngXg��IF�~������X��QH��l8'Kr������gJ����
+*Xc�Z3}�E�ٓD�sj�d9F�K�䛉J� �
�I1{�V!xnK�-e>����7n�ׅ���
�_Qg1�R2Ǽĸ:@�n�\�K�X������)�'�WI�C0hݤ�!XL}����
4��l5� Vh2
��,��?��bLb#(sÀy�tk]:ibP�_"��2S&�F��
 ߆*:�/~���5�l�6���fݻ�	���Ӡ��v�<N�E���"A�M�B���I܆=��ӰD��!5��o�G�
]��Ml[U��Z~$g"��H�U�(�>�(l1���u��;8��q������i�7m�L[�@��Wxl�<R�s\�]1�^�>�g����	�Y<�#nMD��yY�ZO�E�X�;/C<_��IfG��u��R���O��M�++c�7�S��
+�4ƊaZ���ԃ�
�����u���	Mߊ]�>]o����/�m^&=�Nh̕.�g*>d_�$��
+]�k����oj-���]��w�z��`��g`�@�XR������
�SZ^6�u�V���^��o�����g��~X��Q��	�濮��a%{s
T���p4{���HLydW�)YU�&R?� �FD�/�'�g�H�7yO��G

+�S0᪄�g
:�po��)�-.XF:�
�e�� �*d�i��G{.㯙nwn.�t���Y���<�"��`����7�d�
�sSC���!�x$��g��:S����X 9
��Y������%�r_��']4K��
��.
q c�Yv�.㏢�
M
r��m������*ADbW냊��M1�Dq�by
��9���m��T'b�u�q�7�O�r�����
��}�y�XK�8���`����微�.;������~1K�}w���ҭ���rB;�ҏ�ޒ
&�6	�Rr���*?j���䆑lu��g�ICk���M��|���v����h�ZY�Hn8�V��z��Q3N?�?��֫zGP
������5�|No�(RG�J[�5��&Hs)qq}^�&2���n:z����ǰ�kFmP�03;7�N�s���i+Z�iӍ���	�^��z�s�7�T�m ,�
��zb�@��p����2�2{�9���6��ʄ��/�=�
�4�)�c���	x
+t&8
�3��B��-�(;�^S��e���dSy�7yG^�H@�Es��7<�A��Q|��h�[�\j���e��Z�Ҏy1|i�-��<C^ow���5���pc�
�P_���<.&n��;ˌpa��[y�y�$۫j���!�
ѫ�$E�42�˚v�?ݴ��^�wnYg?G��9c���K�+%�<qWŔ��z^}NV��]QvS{�q�8�ڷu)?
WV���1l��%�Wy���j�p���0#��>M�']�����|�k!���3h{�&��m��5&[K�i��K%�}UE���k̀��u
hT��[�*�F���k kO��Z �e�� ��e�v]
G
�ؼ;�G��L��W��[����d;o��o�
�3x����� ��Y{OEk[@��|�l��2��섐���^򒼗��F6a	�9�u�UQ[�E�m�'*u�WA���w��:^WfA�w:�R�c��$DZ9-N�7���~c
+�
+?��;�A�34VfO�
�����	5��*Dv��Ue_�Rqr�_����pM�v��]���{�қ[;��f�4�(
�c5ڑG����d�x�����E�jO����-n
+|�
�g8��
K��ٶŲ�]�{r3�J�(��?ұ���q�l��u;S7���qWA}�ǰ�����=��o
+�n��xg�|�GCT�p�T�aH���͗O�0�U`llڤ�C�lt��0�j�h�~��pڱY�_�,x��'�,�IU�jn�\�[M��
z��
���DB�b<Ô��]��T7S0C�o�}�2�%�s�F͘�MQ���
ś�!�7f�Sѕ&.!m����Fk����(+O�
���Oȏ��@
�W�1��f���G
�0J��Z����-#�=����q�b>@@
�g�IxFz�|�����޴\�E=�Y�g6�at�Һ*��SY�����5��T9vh�
��	�%2{}n���}I�90�v zRf����8kO�ʼ�
�jV�o�:*�x��H3�_	
6�WWx�4�\;�5ju���K:��:i�7�rʶ��Y
�Ad��~X����:J1<����;��e��
+(�;�M�s���rlڪ�U[y5�����vw�
(k
+-��Ol��
H���WeG㐣�݆L9s����ŠFp6���i&x���Иp0�C2�}�Txm�C���H#�ѽZy�ڇ�m{��+�E�Aa
����W��d
�V�Sy%�ې���8b�ש"SLL����1�4�$B s��&��B��j��&�d@��Y��?O��+82}����-D^�����ݒD��(��P��R��{���Ѭ.� �s��!�$��4��P���ڣ���o
\�i�(�����#�u"��D��8�
+� �:�]�C������>�6����ڒ������׶�*��
����m at 1GQm
�lìOrus�g#� tk-ۤ��<���v+l�U�w
+]�@��V9�9'��3ի��	
�P�?#�0eD�a���S���#�[%�����LY����ƉU��U�_n����F��η4F�/V[��&+�;�k�+�4e[D7\�~YCm[�D�����������4M��
�n/���9�0����:/[�o��`�K����(��
+��T��o��r
M�8���FECw�LhT��l�������
�;=���L�t��^r%���|�TXN��d�R3O>�
���^�
����G�)�
y����
ۂ�2��b�+�Pg�DW�B��;T��
+�4Q�v�����{����9輵;���!f��6~/ė|@�r~��E�M�$,<��`�2���+��oM�ҿ$ȵk�뤆���)<$�\nnu|�LX ������+z-]�:�r"���Xꗺ.KW�;���–YFC�	�:�Aǔ+�I�U�
u���+�U>.+͋�;�SN@]���
���L U������X�Kx�6
͑8=�*�U��4^q�ݗۥ>S韒�
+�Ż
�e�L��sf���	v?���m�!���'�粈�Y��v0��z�ْ2G����wT�1��e{B��H��M�,�
�&fr(y���)�%
��P�����
Ehl�%
+$EVD����t
o��
\~6-�s��/�/���E���
2<뤪t�
���:���mb��p��V�����n(Q�7:�
�ziZ����N�l*�3��m�i��`��
��
s���nX
+�U��\�b�i0���^Kc�=�!!{pwp�y�
�K��H��&�Ș/�U�D
��
�g�#M@���
1�����&����yf_s�Ir����Ŕ\
�B�c���7�H�e�x�Xl��tbu�!��hI
+&)�� ֩�ršbp�s���;�Cu
GF�q�~~c6RbO��'l�"<͖����z
[��T���0}�5y   V�|E�W�r��ф �\�2�aAA��0	��/ɷW&a�A
+���AK]מ
�q\k�P���U�"�Jѻ�?�W���{��j#�'rG�^���$U��)~V�H�D��Tup����7��e��Ê⚊��R�"�I��^�w0�^�+m��O��X���iM��i�-T��5ȝ��'���N�]�~{e�� 
��r���5Ճ�-w��A������-��V��YF~�Ug��BO�Jt�8y�0���.{K��O�(��vlJ�	u�S��0��փy��k�^?��6W��c+�
+�C���l�]
��E�ko�%���ݼ�脦���� g}<p���?��j~�t7�Q|/y	�u�"-�Q߽����{ޥ��w
�iN1j2F��c���߀9uTE�����ڵ粎
t������
�;�HC;o�sTH#d��
����}�[aT���*Ч ހG�X�;Pp�i�t$V.��x�P
+��C�_"�>�h0�[[���tVۃw,���U���^|}�X?����4:a<X�
s��%���هU)��<�@Z�Q�/�[�6���
�.�	�
0A=��f���x�Iҗ��Q�l�3\�P�BoJ]Դ�\>[3��������?,���
ЛMOyI�Oi>�
�'�|���2��k��x��o��6��<J�c�^|5�ܲZz;*�,�1��M;]���U��� ���DQ$6*ړ��
Xz#���U��fZ,k���u���)jF��R6�:��*�hyY���p�I�~��K�SpMn�Qjm-+�y��ɽM�4q,��t0L$t�h!f��
��_�yb
q��X𖠕@�Fb��/r��hf��Z`;k��4<a�%� K�E�b}��9v_Փ�
���U���k��w�3��H��/us���k�`�Ǚ�;3��������$B4\+;�j�K�D�� Z
FF��v��
E��u�{qcʰS��TK��k�
+rS4�,F�S��Q�?���D ��"�u�%���Z�i�^,[U6Pw
���԰�
��S7ž$�
�!�E.����H
���7�^ü���
�u������m[E^����)@Y�MSP�)'b^E�q���c�?�'F����x���m����uym.͇$|��O�Kb�
��1�c���w�Wln��~B
���XfO�yDz��2�MӅ
�B�QW���ci�2�� [
�b},�1�E���w��^��k��b�)�k�,]��wH�ߦ�4�U���mϪKc`�C!��Z�ʎ�5�I�C�W�  �fQ��9�Q�|U���ά�2=��-�I�d����	2_���M��4� /ڨ��B��>oy *��Zo�9��XY��i�����fNP?��1�k�𾠣�� *���_B����u�p�ֲB[�
�
���4X����
��φ��}�����P����73�d"�d
ٮ&�<����ăT�>���x4�
Y��"��G��XF%N�g��t2��S
8.h��pq��܏��#~�
�2�Hl<hކ��
+�aG��-?�J1��p�m�����"��2���V�z�|Raw�~�l�8�
�����4����������
���E�Z�Kݸ���UG�|�B1��&T6���;w��W��ٝ]8���X��y�W���G-����%��r9���Pv��X7i�x*�L�(�u��==��ϲ�͓m
qqZe��&���߰�n�=jc�i�o��@��
��x/{Y���/�r�pՓ�-�k�b��(n��
�J;7��N]�
�	|ט
9^R��,��q��i-�j5I�~Wfǒ�;*~x���F�M��u��ò~�7�����S.0.rm���4�P�M��X��
+d����6���͵�N|b*��4u
v�v#3�֬ަq�V`i
2d%�

�5���0����7Ӝ
���jx��9��x���!K�hF�	bLb4�Ezcl��X�>�eҢ��(j
=����~�n$��
Y9P�K���C‰/�q䢘��&l���r��S�� 1��|�8��+�����ۺ���p5q   �Z����(
�QӸ�AX��!\�$$$C�srL2�$�L��%,���*OQ�u��Oł��BuUX뵊]�x��V��~�n�,��[�|�nC�
+-�bY@�X?(�e�92�"կ)f�m��6@>��_�|�Xȼ
���L
N�+VJ2�v&����ǂ��g�a:y�*=>�C�,꽅�zq����wΣa���V�bP$���Ԇ3H����*
+|�t�c^�7�C�v��f�C���UʆN�\�A�
X�)�M��Ȋ��Q�r�K{���Fۏe�"j��%��h��C�����i�24��.$�Ҳ�ɹ�D��Ӯ�?2�
���]HMt���a���PZ�+C��9�J*��_r%QN�H�4�r�{W)�	|�em}�^
�e
��ٻ
+�.�v���_.e'T�)�V4��(F��o��Ugzf��0�=�r��ƣ�[(h��GjK��Ң��y�}����%�]�ʟ%��(y쭬��0�����L
1���s�R1w^N�J�O�7�
��نy�oxõ��O���`�i0)�¿6T���@J���JL#��״��C ��[!�)��9!���w�+����@,�&T��Q�0GU5����a��
+�5\1(���<U~�� ��ڌxݷ:vR�Ȇ�qV���t��.	�d7J���<L���US����0ݠL��w�k^I�p2��Z���
���#*��͚i
�1�.�~��x�E \M;.�7�vD�5枤���B��l�4 �&ɷ����͉�Qs�r�k�d�
+�B�2i�N����ğ�'��:d�a����9�<o�=���:�O8� �Zq��]��\�(�p�/@Γ��H�+�nind`�gA�د0iJ*��eW}o���
߶�x�"omz�r��Q��u
�_p=�=n_��%�!w~~S]��Jѯ5V�Q��z�<�L/8#�
��+�������>-�9]���������s�4���1y
3���yʍ����/�	��G䇫~IĴ41��_�35g%@���.1N§�
N�̡�P��i'�7����4�
�@r�z�8�Z?�
 ��i�;�f�
+�c�E�N�O�ri@�D��
�����u{A�6.ѱ>1���_�:,� ��Jf?�/�L��C�N�N��*E]٭!�����mq�=p�)��
�ݍ�
+�c�F�M�H���?�
�b;t�%��
7�r�~�����L&�3>��ﰞ�
~6slD'9�?��6�
�T­�ϙ��^
5�;�
+k[�}����gX0^h�q$W�KJm3�qV/f�̔��&��|�}3����1���s�O[�9�"6��ε�6
�9�K���+�|d���j�8a�&�k��ɐ���=9w�U�ͩ��?�������|�
���0,����lug��z� �eU
,}*�
��e-���^u��G�S���oy��7��7��bC#Q����ş�n��[�,(
��l�^	6���! ���ʌ�>�"�:�j���<rB�a̪�� NfE��
�kI8<*�͒"�e�[�,�A��v
:ks�Cl.�\șc�+��5*�W
���&��ŀ~�\K�4�sR^�?ӕ��
x0v�>biq������2�$V1�\$���Ǖw��kGԣ����Q�� �%�[�����`�ѐ�J�
Ή	`��]���+Y�)�u�!*�5��(H��Id��a�oE�lw1��7�����hY�xЈr���M��y�A39S��cLYg�Bل*d��lQ���
���P/���Džm���l)��I�R�`i��?Ğ���A��Y訌�:��e���t��/�
�y�sn琸�M����>d�SG�&H�P���e*p
���:��v��F���ӫ�}9��|%*�C��d
�ڌ����T���m ؍��θSV��k��q�����~V�Q<
��f��
+�C�B��'��L�H
�?� 6���ǍZWz��jxA�|�+cs�h�i�#a�43���
�K�Zr?�'H:���m�2��A�Ľ
�e�Эd�c�M^��k�^�C�j#,���@D�L2�� �I~tHGǫ��J̀�e��
�	W `_q�Z�b��
+�"�p�p߄CH�� 	I&�d2�L�)x�ʪ��*j�XEtJ�J]�EZ_=@�X��Y�����#>�(�U���T��#tg��E	���U�O4E���]cD��ix`Ff����w0b(���U
+�
�Y��]sA��vj�fh�w at A,b��x#�i���u+����E���_�X��x˼U-�E�W'��_�@�� c�e2b1(��
h�^EN�
�
+�`V�[@-k��b���n�_P����e�:��60���������l�u-'\��j|D�me;��tH�GD�˪&����աD!ߪ�@��M��?B
�=�
r���Ε
t<�GH�8�Jd	��l�M��
�i�lv>Sw��o2�Y�!�;DL��ž�]��򮆁�����˶�R�����f;˷��-r�
�0�ۏ첸�R}�"��?5#��mk+3�(���(.���R���
xP{K$
���~?
uX� m��
���(U$C[K��Il9v���L�"�F���]C2q�.�OI�6�1�Q��x�	�1i��Q�Zxl��e_��)O&uZ���C�j
7$
6����} �A~��8zX�������m�b|�n�^i>�]��fQ����Bch�JDj^��
k��]�r�ou��#I���h
+8ЂTc�1)�ü��W�+�-�*�kx�u��e�I�~���PE�:���LR]
&��t-¬^�*$M�4-�b������B
����c��鎳�A9Z�u�K�Dۄ������T}��p�p;dz��x0w
+�
��7
? r���
�lJ�����U/�3B��K3h��f@��j�m1��R�זD*��p
����֓�2��O�(
Vv��
+n���d���mMAO���;�1�S`�M����
-a6��)��N�˛,��_
+�l[c�.H�і%�Ŗش+#]l��c�ٶ����$ �s�~
�&���b�~In^�Y�6-�쪸ʟ���/F�R��a`	�����Ei|�o���$Գ��h:)=�k�Zv��6���g|V'E����;�R�����^�t\"ZW��
+Y���nN'⢒���Li�K�[��!6b�
���jnf�$=�+
*�.Ӄ���
K�vI�chP�*%�z��ډ,1-�pGs���D�8D�C7x��&�X���8e�!j5kL��4�Y��
��&Xq�� �Y�LA)$�]�s�_g�^
.��[����fx���́{�s��Hq�
��	������o���݌�� K���Fa�a)1$Poגי�DO̐Ń��w�q?0
$װ����ޮxYZ�N��8$��8��
_ُ$�`�l�cZ��6��ݐ?�
ȇY�+�0�H5z�ቔkQ}Ö<i�|�>!���~QQ���2�&
P{B�cH��|��7g�z�9^sy��l������u^�A�
�;�R�ck
U�>�)����v�Q
�
8�:oV�c���s�K���6��8#7�>^nNk�_�<w�*>��m�ڹ3���"Ψ��Ţl�`����
D#����
����ޣ7W-��#���h��� 
<�L�qf6��6@��0}����ك�i���h�� ��
�ӛ��R�$�0�a�p��s���T9��˟�	sJЫ��lO�
�I�w7±A8j^Տ�ork�l��17�x�&��e���o��U��d!SQ2��b+��(k�m\5
���/ [...]
�_���߷,����c��n�$k��a�����M�=U�lM�Q���"g��Ɇ
5iЉ�5M�%7R�%
q���v�L�S�G�[]]��M����	vK�s�w��>���q|�
+�7�p�L=��#.��[��CjϨ��^w�UOl���Tv�Ce�����������]�j2��0�uuFf�ձ��ʪ�:�AƆ"E�*��S��'_
+� !��
Z�:���Qpt��4��7�rv�윽Ys��9��{�<����Fr��׃d�+G1	
F�~ /b�m1�&��& x��� ,�
^�
�LtZn��D<�t"��7�4�"���ף.9���m��-��6��Iq�5�����5.1g�)�j�����������!0��OD<%n�{?ns
����
����8�Y����F<�p	���r�wPq�D��!\ ���F���KA��^���Z�Ũ�ˍ�
�R���휃�E��Ꮵ��
l�a�������?��aZ�뵘lt�U
��t�W�z������s1��͘iea1�����M�1�g͞���v��w����
��x��e�W�m��O�V�����u�m6l�Ǧ�mav��ov�u��m�w8�������m�^wO/o�}��
��?t���c�N�
:|���s�/\
	

�u9:&�J\|B"
�D�1X

 I�dJ��Դ�k�Y����y��Bz���bs�<��D(K�2��T�*+���RWkjj봺z}CcSsKk[{���������[}��w�������>

z4����g�?
�x����7o߽�0���6m��3fB|=k���s�
�Λ�
4�|K��5~X �p���%�&�(�*�,�.�0���<��6��6�4^����
�?|�X@`P�sB�#�b�$ PX<1����A͹�O�3�l.O I�r���O�S��#?UB�P'
+�B�P��T;��}�
*~>22
+E�OL���_�~���[�������� g

,v�,�cy]
�zF��l�(��}FVύP�q㫪���J6�A�$�*�H���$���Ρ�����`v0;�
�f�×9�zL2���ٞQC|�Q�M5���x��zA�R+��Ԕ k*x��Gj�sH�%Ť^Va�ݼ����r~��Lȡ�3h��
5$؋�#����2��'$
��
+�,��F�P].����V!���fo��Dc&�2`* �_
'ǹ{#	ݰw%{2��>��aQ�*X��
SV*�5r1V/�
�\�����2���d��L9�x~d����E
�]0�
+��
�^z[�AKm���<�L!����
|���t䳁�,&p#�A�e* �aʁ�'pB�r��	}��1��zw�A���j$���
+�,��9�Kͅ|�-��7\c��L�
Sy�
r���Rꈼ_��bl؞�Ұ�U��KT�U|YB
[��3�@S� �J���Ӹ�!�C�2�)gO��|�dgس�u��
��zw��2P�W^R�d���\=M4�
+��
�z�Oh'�
��7�@�nOP��J�-�y���V;Lg�]f�Γ'�R���j�
^[(����
+y�C
�B
I at l3�o?� �q�M����zۨ{�6����T�և�*?]FW^V���|�.G�2 �T�!YHl"	Iͦ
+~���]��tˑ�ն��:6^��m5�������
+�)��U�
+�&G��͒�ҥ�U	�>IL�ŤSK�`�`�;��

m\�o����j��c{.]w�{]}A�][�U���T�5�䄚T9��"#֑�$-QJ֙
+(���R;�7������n
^���윆����a�:V�V�T����ST at e���&���
+�P�kL�l���vw���6�Է�U8{`>��5#��8-Eʦhc�5I��j�
��ɱUx�(EU��������u=X�U=���ux�}{tj�G
+�����4�a�(=���Gr��(n�Ë���qZ��T�i�����vU�肝���
F7��
:&|�ؾ����ĮȬ8CLNlG\nt{B��vx~T2?�]ъ�����?����:��B':����
����n��A���S�+���w.�"nG%���PB��RBz�^�ML�p�z�&*�T@�� �mH����h���؇��Dc���΢��&Z�T_ Wj
�5yI5���LOї��5��m
+ � �һE��/��`v0;�
�f��ˡp��;�ϙ־�A���}��U
�l��K��8��SQC#k�דtY�FU��VEr�AF̾!���b7���E�
|��{�e��
��w��Y�쓌�E��8�T�@V�4U4��<7�I�Ii�����������A(��R��@�����:
j:��8������v��ug����*t��E at EQ��
*�r �럄
B��;� !�rI�C at V@�]��_���Ӈ�Q����5��<�n��.>��U�W
�/)�a�Y�/-Ry%�F���2"�
	InK/i��"�t��Y�{�p�8d�|�Q\Đx �i'6ĩ/�U�Ui��5��gԧye�bLY��(k�e��&�\1q�(h��-����Ev;w��Λ�6 ��!5kC�(x�H��@����
m�՝�N��&ו�y
UF�e�a�f5n\+#�$�,�۾���.�w���A��ڐ&�T%_}ؗ�Y6"�s�
��9G
��&��j��
�ơ���R9a�WL����t~�-��m�
��A���Nv$�&��!	�2p��0t�{z$�?5Z 
uTj���]Ġ��`9��t�&	f,���h�؈!� %g�S$��&T<6
n�cK /�
�'z&��b�p��`F*��8b�(�@����H3x!}'�: yo8�I��P&\���P����{�C��@R�t(���ɓ�ʌ*rH1𵐗��&���d��x'�McČ��`�$f��>��m|�S�~䃱ؕ�$�x0�mq]P��e&�	i�#�eF6AWB~��8��QChi�T�ɞ <|�����]z��[u*�nz!�b�g��9�Ԓ�r3l��q
X�r3"���	>��4�SPh=m@����A�8�
{Ͼ�+\�Ǖ--�F����3a��@��4�M�6�;ҩ'�Z�
��8JԐ�pj��j�6 �
D�z�Q0�'����չ=��;Q���v��(��X����
�N#��0
-z���#��}�
��2��Ң��
���>�ƾ#�Ah��w��8Vw�5�C
�/[�r�:mU�5�f�Y���H�7H�����)N���6��S
P��X�'>�}�<��5ӽ�e�~y'NNdtO���ݗd�jM�
��Z��̓x3�Y��A��dE��CM&�-ڀjG
�o����ž�����>ْm\��-��u� �Z���T��S#%��xG�;�Ѣ�8]�0^�`#�Hƺ����b~ں�n��
��A��-9���*�V��i��TR8�
+��`'�yM>��a�AT�m#GђZVZ��˪ݐ��ETD������_l	�}�m�ϒdo�8�z�����P���c�)���Vd�jG�T
�*��:YϪ
�z*�M�� �S�qK�P�}���W7��K۫Ov*�o���m;C��z�z�q�t}�J���e��V�l��|e��ry
I�t��V2�j)�k��b腳��h
�����?��|��lIl�N^�mz�Qr}�\E���+������ݫl(�[�Xp��1ٔ�Z��[m at _Xi�䮠����
p�� v�f�y�?q�)����?GZ�3�=��@W���	=
T�����2lvsd�rڰ
�P챢�ށz��E



����
���q�5�Y�Tp
+yO�C����R�eb

&��l�[Ghm���
��b9��M�%��>]8��!p���~�{��g���k�l’�B�4�2?ȩV����n���I�����6
+�e%2G-8�o 
��Q����P6n�c���N/J/�F�Q�&=	}-9�>#,�
�+�>n���ƙ�,��Π�
��z,�
>3�'Џ�ԍ���I�����6�
M���o$G������Wd�o�s�f��ܐ�T:�jGyh��K�ڻ)k[��Le���ٓ���#�ceA>V�l�
��������o�iE�Ǫ�2p˪l�Me.{J~I�T��"��C�vn�c���5�3�}-���"Ðh�I'ِ,���kHM"D�[Yj�sUZ�CM:f��D˂�
+�)U�
+��N�a��a␽Zfk@��
	�0�,��"IBL�tr�AlĐ
�� N9�V�r�:��#�Q�1��h�a�
x!c��oD��jԀE�
����
�_�dLq�i&]8�N�L�S����NI��S��/�)W����K�lƜ5�==\�[jTv]�٨@�(��W�K�s�m!fwO��)�ii�L�ڤ���?鑓�#�tɕOL�=�?ٯ������9��,o�9̳��t���2����UA��P��@C6����-!d!��@ BB6�B�ĂQD���k���op��9��4����M��re���9�*��Ӎ������RM�d�0W�:�r�B�5*G1G�R�Bd;
�ib"P'd�h8^��`B��5yϕJ\
���L�΄*nW��2���b�߭�L�)�3t�*E&�'	�sd�r* ��i����@s��?��/=:V�h,~ߗ��;{���u15����k�}6�EnA;��xo��
bh�S$u�,N%��ɕ�8�j��
��'����q/�q�O=�`�S)����г
�,�T���ר�s���=@
o5�-z�$^˚Fk�3(�l�UA�?5(��!�4�
��v
��(_uw1�f�f:�w-�}h�X��Kvz�q��A���O�Q�� NϜ@�:&�z�$B/�
��$Gc�*�8�?���z0�;ߗ��]�/ZZ���V��#sY
]�X&q�zlK�NC���d
P<dՋ�c�1ƶ �ؽ�P� Ҹ�=��Ӷ�1��S�o�<X�8�/%��3Y<I�X�s�:�Hs�oe�vn��$�������
G���H�7�G��8`ݗ�$����1�]�\?�2^OdJ���tJ
�z}�eb����8B!���v���@�YN��݅4wBT_D Ձ}`0��Kw������ͮGf�
GU�
l�,&��3�=m�2)�
���(ʼn�'��qv�c�
�F��+c>¶�G�F������ޜ�
=��;����
�èj��!,�z�5�ϥ�+D�`���C��^����n��" [...]
A�
 (��$e��EU���
Ȁ�ӏ^9���������,�>I�oG�s
}YE�HBW����h���֯�յ�������YTw�L3�r�S1M�O�eS-��)*d`���[�������hh��%؝��j��ӣ��͓��\$|�[��X�RK���@-_��J���oЌ+כ�ŋ8V�"����]�?���/&�����������{���d_$]B?�,k�ʯ������2x�F5�x�
u�n#��
s����
+[�������o�y�D��s?����{h�ow���1,��8	�f�L?��CVA��yE%�
+K.?)-����amU����
[�5�[�ڜ���Ⱥ�Mt��M�0���o� ?�s�}*�Ϝ|-��.̩� �{JZV�u

�(�lIne�C�6�����%�F��Q������n�j̍�;\M�{��w
��5��6��4
��q at p�$��{�{�bK��XQVx�

�&�\^f��A{�O�
򒻭��m�����
.���B����0b��
���@��ħ/��d�?��4m�/�o
+��y0�
�w��A6k��l
o�z�=vV�tbd.R�
C�{,�DŽ4�� ��]@��Г

z�Ӂ4#���L�#y��,�xK|�}]Xÿ�C��
�>�A𵲇�i�6��p�D�1�|܎��,H�ψ���P�
(@c���
�ii@���Rq��2��[eaU^��FR��6J�z��!���`
{��v'���
��f��Q��m�)0}^(�6Rc�$5
(�r~P�,y�9��wM�:���(�^�։gDH�D��ϡy�l������"�0A4�t!5F�5�bl���
”#@��
+�)�ۚ�+Ou�`����;�\�
mqׂ�Z4+�+'�8���bqu2Ǭ�N� ���G��t$����
���F��7
�G�,)�������O
'�6��b��gSo��/+�Wu��������Q.ml���c`rj�($oQM
+��0��rIF?�i����#@���I�_�S�����>8�Z7g�W-[���ܫ��
J?&�[���1Ck\����B�"�mф;[��
+ ���7q��D
+�$f�Øt�;Sj͖%q�z��f�g,��;�-�^�
�Q`-}"Ҙ�G�H���v��-
�35Sl�.�J7��o�@��
��
�5�p
�Ng�mw���ٱ�ٙ�mu���*ꊸ����/#7H �NH 
	��@HB��\�$77!�P���x �E�.�o�v��[������O���8������bD>������������)Q���6A�Y�-�a�W�j�LGU-o��F<B��8�4���4��N�_ �
�T�%�w�O_�@����9{q�/��ߔ�`P�ɥX���h��{j*h�Z;��0T��J
�5R�+ ��
4x�|_O �9�g.����m�Φ��	�^p���܀bFl���Y\u\,R�ՍR���J�	��K5�d
�A䉆Hl���^js�l�x��9��:�c6:��-
�?��y{"38�\n����,9"ARU��+���J_��ʆ��Q��$��e6W����}HN��SA[�����2�:7�<v7
�=�DU��٭�٭

��ڀ�St$K���������\`˓�l�V��+ ��h���O{ ��/�y at 6�N�.
�D�OFN�eئ#��2��z�
���F�if��D_h$iK�8uyZE�A(9�peko�R� 8��� y� �g�L��Wm
��|!S�~q�`��`�l*��7��aڲ�+�QR�%_E6����̌�VY��:+B+��5-�� M����@��1�u�q���gq��;s'/9���?�lRě��a�$si�
��hIQAAt>�7k1Fj�@3����\=ۉ� <��'��#Gޙ�?�<t�cz�ЏC��C-K���4�
��v"��b$�Sj���ѭ�^��M��;�ڑ�R%�R��1Wi��
�u�%���������|�ϻ{��<��k}�
)_���=������M�V���
�6�(ƆkF�[��
+��m�
��zw�,��F���p	h9���voZ����ͯw�x��p����o��=3��b����
+�$���ʨ����!G�l�0��3Dh�v��Yv� s��)�F��h�)�-� ��܀n�WK�/o>��u��ߎ�o�
�q���xeP
 I��h1�nzY���=�W�u
M��զ��g��ԥ��'�(e]-gCGi.�];^���ɹ�>�~��o�[?) � �oO�P^�M!=�a
Ǡ����tR�l69m^�rU�4��\�	O��%�%�-,O�]T�B��*s�;�?M���w�+��Pm���v{ւC)��#H������ܥ��O��)�i����h�\L�C.�!� K��'b��1�
����HQs�.�����w��{�ϟ��/�2��
Tp�
	�c6�#s6"���b�I��)���i�+��˰��exV��z�:;�9�

��s�YAn�S�K�G?��v��O������W{����$����a �R*��
��ը��1�o���7��l����	���˯�WC^������kh��+ ���qf7�	:�B|�J�+*�u}B�2#�P�C���Ѧˋ�S%e���*���:�g�
c�Ch�܁li��)�
+�`�Fm�5�{����kï
��
��5���!>s���^���sUX�t�9UJ厓���7��YΆ�-P��7 $*g�z0W��]y�����l`\:XA>�s9�
7<�5'&c�E=ff��ӕD�dyi�x	M8ZH�<Wa�T6T�چ�h��AgEt���
L�1��
�A�Cc�#�V��Evr�}fN�t
�1I#7ܤ�	G��ۆ
+�r;���a��t��)��Ch�H�^��0����
uΆ��c�p�.]���
~x�
^Lޓ(q��Uv�����&ro�(�Je���P
��<_ׇ�{Q
+c7Rg4�tFZg�a��CC�����Q��x�!��)(��04e�)
+�T����1�2�Υ�f�8��E‘��6G	��V�����^��؃R��(�E�֘��Y�ՙ�
�>6�.
����"4F�m	Iz���9��)�d�1��
ź� 	F+)mju�@a��7�g��DfFiUcԝR��ڊ�X�x�i�>6|X�G��/@@+$���k��a�����Qbќ0��/�n�M�ҋ��]%�:c!ר�ZTxY�
��jq4�F�ּ]X��yw�?����=5a' 
��v:�u�]��㌵��u=���,�"�@n9� �$$!�+���E�@�AHGBB�p��EA.�"(�hA�
P�뷙�ӗ}�Ї��w�
+oP�E�i������ԑ9�q�ͩ�[
�q)Q<\U�h.g�Y}��WS(35Q���EJ�Yj)zS
��h/P�k�����<�^~��'���?aS�|�� ��A�
:8}F�/�R�+�����|����cha
+�
4�Y^��H���j��ZU�7

+����[C��1 ?w�<}A�w�{�_�K�yē���]P�m�p\�+�ؐ-�
T�ź
ˠ��RV�YĐ[�t� �X;�-i�(i���7[�9GP�q4z� �g�6����@���0�=4kֈ�\�c�-M�ANTij
��*�A�+7V�	�|��ZQ�4�f��m�l��d/ �5���
�@��
+�ݽ��#�]�w̋���Usri07mN�
w�ˌ|��!W��Q�RQI���c�	fWlerU���:Gg���&{�� q?
+�n.���
�����|f�0�rg$u͚B���8�6���9�A�$�Vˊ:�bVoi
�L�,EU���J�@!Og)������@�v4�>4�=A�[�+�g�� $fy4"nv,9r1��gJc�:�5J-AY�L��
+:J匞Y��*��ϗȭy�5�Zg!W�����6��
���@����@6,
�G����D�OMBӆF`�+��٘^-��+*u�j���/i�u�U
cnC�9K)��7h�����s�z����� �5�]��N�������ٰ;��T d~><lt&a
K��]��VTUu_���;�����#�;st��x���m����-&ls{^i��
� 
+g�9yN�nZ�Ϯ^sw�s�9�
qq.�5
��4�̨��&��J���l��d��2zY
���.d����ؓj0t���=��#ۀ��{�:y�
?����ڈ���-w����~��B�=wB���(��z�?�1G�E����AR#�R�ƙ���6T�P�f�kG5��^C����� s��
��#?�
9z��	��%g������^���t!�̛�a2�Rx�c����,i�p�?T��
Л�VN
��W#�E��~���j7 s���Z��o��_;�wf�����	���.��U��/����`
+c�(�� N`+�G�D�+���:�%Z}�E�2u��>T�J
�4&
*��o��w��}��
��u��?���z�X�c���Α�ggS�+~��P2u.���3�M��V�&����*��1Z,�_e����%I#\i�P�pYRg/Pph������m�s�
Y��}��~'�kG��s4���T�j`�ޅ��X~>�3�e�n؈��2�4�"y��
���'�����ʸq~t�Zh/���5�����k���o�f�صO�a��8�s߸F�_�$����@3q˰<�R	�����d%��'���nQ�q����4f�M+���Ҩ|������׆�n��|�q���j��
p�Ch��#�/ⳟ_�c�bQ�G0l�
+�%=+�>>'n9;7�^^^�=1�.5?j���D'_X,�D,�Q�n�����?��t��/����J���\p�
��&��w!��ב���0؋���g�T�StZ�
*j���|��
�	D„=�bC�B
�3�WYx{�o��t}�5�[�,�w������$	���4LB�A#�oaQQ���\x�����ą�ʈ}IH��N��K
�ȇ�ߠ��
��K��e���'�s�}*_}�;v����$p��;���$p�\,��1~ �?$�� �
+
+�� �
��!�
+9�~��|?��}�S����R�
��wp����^@
��Y�H{��VD�rqQ�"�Ş'Vpo�TU�$�V�d�DױJ�tz�t
+�*�B��M"{�i��1�����a�=~o����ض�R[�� ��Q!��q/��e��UV.y�VH[(`��I����ʪY���L<�SJ�0Mu��V���~٫�@(���C��
[����=着0�#�?��/0�S.2s�C -3)��bg����$�395���t2C!��6+�ӵ�khC�5�Iu�?F�;��; ���?�z��{w��]-�SUԧU� ""{*(CF�
+DF$L�@	�;���/�d:�!��Z
u]�{��w����T
�*�� ʇ��F� �� �9xɉ��Y��9E���G4v����؊�?�Ƹ�@��ֱ���B��J�|��/7)�˜����b@Ջ<��*���@�
�;��€ ��f��e>� 1K�Wi��E2�c���9��rg0]����D��g
�Q])����ܚd��]ѯ�W�iMU}:o ��@�
:�v N�?ćѱ�@���F�q�?��.�[cT�(��y�1�o�M70œh~�8J�
��h.#l�QD���ҭ�W��F�[�����3j;�E���#@�� ��O���<��~����.;��YK��h�k&�qt�d=��r�T}�J����+z�PU��X}Ψ�9gT��z�<����
�#��8:���<1��)y/�%O$y����evU�m:�>Cn�^!R$��,�@�P��18Q�r�
�.���e�F��Һs&o|<�#�A��D
�1�@q4�7剜_���NJ��5yvAT�<��P�hx�0�,��w*
�\��^j4�5]�ͪD;��:�U�qZ�W �s��~���,�0PD� u������gڴ‡�lIJ�}����8Ma��)�BU��,��QdRb�n��&�8����mpZ9�.�7>
8a�@���*2
+hc�^�3~1��3�J�E�i�颸����r!:Aj$�U��^N��Mr� ��s!�����&����xt�~8���ۀ��>�4�@s�W�Ѵ�m)9�PV�-kQŸ��iP��8��
S�Y��FR��4���c�4Kl]
�I�C4<Q	��z�á�s�
��!{�2� Ѕ��f�NxfKH~�Jμ��Οu�F^4��܊����p�rf�J@�г:���6��BRBd����
+Am-[[��ꍏ��m@��Ch�[kd�+>�~r��`v��S�!��C����k��B�D��+Y]d=��a&���JD��
�;Dlw؛��7 c�_ �so����`
+	y툈z���6��tk4
6֗��7Z
��*�-��Kآ&%�ת#q�fB׆cʡ�
�2 G��MT���C?�����.�X��
[��Z�H�����5:�W�t6譥d����U�E��FIҬŋ(��ZǗ�kxZ����,����z0=�� >�=P
���~�
���?�Y�9=1��y~4����t��V$�a��i��x%A��!j�Ls�LdE�Զr��V!tZQ<����s`� i����	,{߸�?�x���Q��#/N�e��`%���z�yx+�U��nG��z)�xVY�'i��NC�V`�k��"��|Fy�T&�`y������'_ ��z>����#�n/F�\L���z�2���Cs/)��Tb%Ӌ�\8y��U	��B��+��|Ȫ/����:� �� ��{7Ӟ޸��h�o��;A[����,��8N����(��V�'O7������*�
�����x�Uzj�ޝ;�Wd�(aCV%l`P��Pyp<����}�捑
�^��g�Օ���B�
kQG5w�a
g����7�p�kŭ�Y�l���hd����˿L�^b��/IİK�(�� [...]

ۿy���7�S[��Z�����
h=(L�0��~l.}-����Z�Y�n@�."��@����P
+g�SDF�d{W���5��d�˸�:n�8� �
��� ��\���o3K>^��=ݻ_�%�%4��$&��8�� ��j%��|	���A
+oմ��Ķ�^Ƿî�:�f�Ԍ&��
��6-�L��zH|�

���b�?����ӑu����[}U��
+^��^��_��b6��Q�Y������U8��2��Tݘ��i�-4�3�4�o��'�iͩ��ZRn
+Z�o�H� �͟�s��ӹ��?}����W>ߪ�m���7�
+�b��#�1��e����n��
��?�#s
"*a�Q��{u5�k
�i�xt�JK}�
+��L�
��jH���
+0}�����0:����[gAM v
��t�v�3�t�љvZuծ]��u�C�;r�CDD ��@	!`BBHHB�
r�;��
\B���ZP�X��nŋu��
���؇}��f~/������76ذQ
����@Bbh�\�
�Y��u��un^�R!��
lQ�wL�s6���H-M{��#��R�p�R�ʒKʓ���7k׌M�rM��'����?��g�İk�S!"�	q8@&� 
���x�w���3�Ks�ޖG�!禼�:�����􊑟��� �%��� �X~H�<�齾v�m�Wka��İu�~A���D�
+(Dh>�F����,�A�C~�I)��o|J"��& ����x��ŭԤǮ03b��gF��}P����M}�3-�z���[6|�Ǔ�oK�@C��' �룐��A��
���	P� tD
`#c��{xʢ��
�H��� jl80bÀ�!s�'�<�jc�/q/Ӄ@�

�|�
+�8�-�
��QMxFeU>��i�HR�|��� ���/1����{��.�K<[�'�-<+�A�IgPW�7
�K���
�g�����
+��� N
���H]iD����/X�"�IY����E���M�
o��(���
+g�]�Yt�d��_6]8��|�pR~
=)��L�}�U�z�����{@�
yf4HsRA�:�VPR���X[CY�q��Du*ܹr��.� ��Y%3X�lsZ~=��*UN^i��\U^,��t{�gP�5�y
��- A�Er (ӣA�����eQq�����>IY`��<<)`?����5�Y�^2]b����+�0g�n�Ϫn]T_�\V�c/�=�˚�%>����x[@���A����#I��=�,-B-	��g
��Vm�<�Ǿ_%�߭P�f�ZewJ-�۸�?�{5��#��	�%��Sr�y���UC�� ��
��ݠ>���Ф'��X��ʂ��Rl�Fy�C���r�sT��I<MlQ��[T�p��o���|s^7�׍���
�/��.�v���?��A��bw�&� 4'��� �Y��4�y��h�s	��1�����b���U
+�I��I0k&K;tWp}��Q�h�� ����켡����E�
p��� �
���
���0�'#@����%'��U�������<F�t]�]"�JQ��I���e�V���Ɵ5
�L����:�cmvҘ�R�U�o=HB?M�h�> ��0%ŭ�Ґ���Ǟ���݌!�W���i��
��K�F�M�vW�Z��fC?�������]>jq�F-V��Ty�l���?d^�6b�#�Sl0�b�Y��K���O̹�4�KftD�uE5s����px�!�D�GS�vWL��v��|�j'�mm�
���c�U�Z�գ_��E�&Ѕmc�~0��
�֑��ܙ���y<wΆ��4*&ԔZ���?ȯ���
5�L��A׵YNZ���Sv}ՐCW=b�PG�*�Ǧ�y����
��M������5*`��#��Tr�+'{�
]x�\Z1���
RR�=b�������zScnamZ�ˡ��;�t�S^�v�#6)��U�kPo��࿂9�KpD�����+1v�'=�~��o�P�K6
�m 2�4��Ny��&�j�<����dn����L�C��q���N!��hd�ؽ�|<���5�mám`	��p�官��z"
���
�AN�)@������2FW
�gW�eF[�5��YҠ�5r�N
����
{s;��n;�~��U�����
� Ơ���:��9
�8p8tޝ
55��:ї_���{m������L�5�X���I�f��;Kc��%�t�6�u1�N�mg�F||�A�54n S�_���B����{<�|p!-�'+�������E��K�V+���P-U�j�����$n���l52��*mwVK\'%n'M4b�
Gl��� :�t���Vh��ÙC{�3�����݉���${�����/$8�p4�����R$b]ՠg�0u�&�Vi��[�*����s�TnG�|�N�yl�Z5H�Z�~��f�<�m�?p�3Oخ�W;oO&��g$
���*������nB���,������k���8N9E�i�՞��VO�:�c��w�+��MX	$���
aEО ��� *EY�dHeJ q ���.�{�1�����������wRX%*�U��X��ʄ�3��W���7j5W3K�]L8�(L6@�շPv�j�{��
5�m;n2���I�XKg(���Q��{8���$NQ#S~-I!����-P%_��e^*(�֔T�j���5
U�ږJr��Jj�n��m(���v�O��n�ص��Ю�
��QW�GC�6�{�}�:#�/�a���Dzj� �vB��&�ɸ�R�1�
��<���
s��
�x�
{�a9��n��m(1��̷C����;vNw�o
=��c�e߽1_�ơ ��di7���NH��Q��
Ƌ��化�|r����+F�U�hueI�����\y�Qi�Ggt�mù�[���6�����_M�y>��W���k�:nv}�þv
�sv$4��y4A֏�K磻��2��n������uJ�����UaDG�2��2��2�qwQ؃���R�pa�WPg�����M/�
�uL�nm�X�i�����vu:3��_0
%yN䍡I/�ɴQ:�8��nj�	��%b�P�,|�Tv�@�<x�֍���6yP�NPl�jL���d�a�s�������
&ۯ-Z�^��.�wv+����F�4�DM
�2�gfhɘ����	
7�(-bL�}Q(U��F�E�#��#׵���v@���W6��{��ꅿol�`btq�|ɒ� [...]
+�R�M�L�p�'ʸ~�<�x�NPm������
z�c�\�c����]�Ofy��lş]]��H���G$�;����zO'D�M�
{�BYL�������y
�\Q��F��є�{�V%�ܰI��e���'���_eP�[OÏ�s��,
�r��1

F� �
�\!��}�!C���
+�+&�w�o��F|���,ea��rq^���T�wg��t�\�w��@�~`�`��S��6��%�#�䀣�mI�눁`�(@z��;��@��F }�
�
�`O�x|�
u�,
s��s��
wY9���k��:�蕏����9�"0�.��2�� \-P�s$mC �> �������^@q���;$����8
ΐ��BOG�hO����t��P_��__����r��:!͆�i`�=l���i_(x� ��1����
r�a 
q��#��$������� ��
��$v�@���m��dx��8�$� F{���8�
+;��("���a��)^ST���S��

��7����
+Ә>��ɟA�dL�

�b�c�!�3쨠�bU�o����m`kR���S2i����@�� 1 �ȏ�l�r���>>��^��@=͚#�K�+���ڴW�+�lc�4�`}_8�������1C���Q~u��6�hx�F �0�l?
�	�y�;H� �!?��)|�$Y�"3?i�V����徊�H�!�fL��S��I̝�It�x�#
��{���v�MH��!��!��M@�0���c��r�?H�+��e.���%f�N�M�c�H����͐/dLk�����	�
�V-
�<����I��ϥ
�A����������=�j�2

!���}��A�P�t�<�d�F�d20��)䷩B��$9K�Tr_�K�Ӕr�dlM��N2��Y�ے�۝=���$d��>��I�9wȫ�_G� �7��^P�
�6P����%��Ȩ�ea�-��\`�X���L��)jY��F��X����|
ך3����"�紒�jro�/���&�ꀣm�j�v;!��Nz�A1������
+1�+�d�)��V�a�s��YV.o*�X0N?'�Tg����<'�T�Zs�{�ZI=yw)=�?S�4О\�������
�	���p�� �|��*�N�{���?(�ы
+Q#e�MeX�q�i��Jѳ�R�SF���z9���X�FR����w�O�M�n�Uzw�Oq��KqOV<mC��!�v9���~(�>g�
�Kx}E5��q
�cu��(�:�ʢ2�� R��^��P)R @JH��C�"BE0	A\��
���g��nև}����9���9? 
�^��!H�yY����z at -��F*#��1K���cH9}�b_�R�h2/s/g���f���
97y��7�
H���P������a ��� ���0����WRX�3a�A
*�v
=A)%�(����j*5ybf?���7��
�+�@\��MH�@�2�	��
 ��P��7��]���AP�e���B<�*#����
��q�
+r��|�h%�x�\N�/b�z�|VV�iè�-��
+5(n@��
+�^$����k�
+��$���ub��
+wk�<s�S�߉�MAn��#��6��kH���f�Ǹ��H�TA�t�VU�հ�	b��@)�Ŷ�e�K	��D����
�b.n\���
���Pbj����u��n@�i��f�?Z�_��x�
�w�))J_��zU�B]��;�Ŕ��F2�]K�D�HHh���R~DVM�I�D��Iԋ��q�9���@>��
�d�߁z�����f���������0��]1>���F��)�\d7KheR��U�r:[D��x%2Q5I%eu��aYI+��t�J�^�%�(G- ��i��l	\~ N
�S�y�U�����0��.Fy��a��M𔋵d�CPq	d��&��؜�
�L,�Q��d��J��)��B�J)d��B֋�$SC�
�w�N���yߧ6�Ʈ�6/���>

+q����J�hMI�l��m���"
Y�+�q���
&�WQ%�+�ŕm��������
+��T�����bs@�����
����@�ӞE��o�ܭ��
�-�~b0�������䤶�
�2'��rą�
>�U�epK�y�B�B�c^��3��X�VV��IqUz1�
>7����� �O;A������
t����������
�z��B;��~ICț���F-��LZ�,�8G��K�(^�4��#��J�
�]�c�z�9���@�Y���A�����}�O�_\;��������n�z�G�PLh�%���%l�Ʋ.�I�*\Y��������(ؼ
�X�%m�K�$i�k�
�^�-!��Bs@�i��
+�?�l�u���������?o��v����9�ц�w�D���%H�S2�{31�����|
+����n)c!��5�*!/�Q)Hj�&���I
A�� ��
|s ��Psp
�3�F��>�M/G�l|t�ĺκ�>�m�w3ȭU��
�
N��ӑ��98�żbt�,��B�w2�I
�j����Vs�:�L&9�Z&9�&� ����^
M��a��ݕ���ɤ���v�O�
��e�q'�Ey+�_h��bh�'�G���D
zCȺB(�k���AzE� �*f��5�Ό
�0"4ӌ��)ft��
Pnj�
��
X��o��]+o?سB�쨅手e��36M�$�Po��(u
+v�0�������2`�R��y=�0^G/�����z*T�N
�k��㷩a#3���
+s �r%�ۿ
+��V���e���
˴���
�?��s�i���1�ߓ��A�ԇa��q���I�w3�S��Y*v��5�(������Y51讆to�4��0x�Q�9���r�l�|��Wӆu�s��^�Y�~m�����Kw�|NQ^���#B��q��s���ғ�i1s�̈����9Zn�
0/G�Ϸ`��{�|�������{�c�n[:6-���2vk-��oV��Z�m-�F�C
��q�����4F�c����qƴ�(c
j�&��Rߕ��}�L�{#��}�����9����,��W�ϼ
3
�, S��!��VC�fi�}ؼ��þM�G��N�K?z8��O�.{—��`�bc?���[BD/b�>b��S�P���o�9����3)�{��J<��#��}�Yw:W at F4� �WAZ�Y� ۾��[h�Ϊ8, �v��
+] �#�xA�7���̀� ��}@a� �zZ�`C�?	�O-�"ܖ#�>6�5ڷ�;��2�"{��+�vM%��\
�-��yp�I^vq����2_gQM�g �9�=ǥ=Gg��>�(*(�Ȏ��;�H�����d%|	�
��,심���@EE�R�VOU����0��l*���w�o�{��_����;�C��i zC�g н����|_H���)O��� m�;�ݠ0�ʃ]�ʬ��_Y4���(��"6����5p`��63�q'	ܭ��c
��~�3��!�> G� ��P
��~�؎
�wr��+ ..��:���r�N@���uᎅE�c

��*�lظ
+����z
�H�MQ��
x��������zAԾ����DkW p���N�8t8�
@`s
$��@fk�a;P��Y�l�����n	"�
�b
H�Q�ƺ���<v�R# 9����;����PN�@<G{w>�
����oc.᮳c�ً��9
��ܹ�1�1���������?�`
v뀍5�}w ��G!�Bj�/�Y���D�}�鈿S
+�+�����5�wq�����������Y���.���棇x�c�y/q��1�4o(v�7��kH�x�� ��A�An8�x�|A�

+<A$���5��y�Ki����F�b\
g���]�����n���y���yʟ�M�	S�ḗ���i�9��X��d^�
��g�A��F
/��S��B3Q�SJ���*�bBg�x�7ۖ��)�����

+_ឋ&���Q�KQO”�
`}��v�A�l	��!��Oہ*�2�| �v$�S	�ؙ��d}һ�"�Rb%{�Tϛ��ȟ�k��������%S�1�(��q���7a2����
`c
,�A��
(=�����
=�H'P�AI#DB§�
��6i�^�\��s��u�����Yb��M��ׄ^�
aT��8.}��"��4��!O�nQ�e]f|i`Yi'��l�m�����`
w=��	A���Dx��"���S�޲L�7�R�+j�p��$y��t2�3m�x#>����e=�1��ı�.��$�{5p���נq�
+&+����0ȋ9	���55l	e��Ԅ��J�tJ{�U�K�?Mj�>��"��k�>��G�>EO�sE7�ڙ��+��2�<�b
)�׃��א��
�{�A���1(�r���hH<=�fDϠ��H:�X�
N��KS2jd�К2�SB�Q��w)������봑�6�HV+c$��i
���:����F�-P����,��SY��r	�g��2m�G�k�q#(B�C�8�z���B�]NEz7�
��ܒ�I���N����/3����au#kX]�y�2x�V���:ȶ�yΛ��k������?T�9���>�k1`�0)쉑Kx��P{
+�]D#��؄t
+J2:xՙ�&�V������"�_�����8C�j�7�1R���u�Ӳ
+�6�Y�
P��sM��ҹ��>���j���Y����,BO��z;[��Rd�:��MR�h�g7��5��V]=����{__�З�s���b���
�c
�kA��EN�Bv?k��|��?0�j7��8�H89PE
+�-a�o�Poꤜ�Y���B#k��
�����5�*a��\p�P&�k,�
+E�|�>O<�3�Kb��XC�㟡�m+�y�~�oߛ�`������b<
�&������Uȥ\5�9��颦�lY�€VɋTg�*uũ�
�6c���dJ�3��F�t@��6�cv����`���^GK�q��
;��}�^]
+��h;c;����H
�N�]/eS��
�
��V��Uf��Re�� ��$�7�e�MZYW�F�0W-�3����|@o�
l�1a
؜�u����m��%�]���V�;B=��v�B\pW-%�����\�g��KE�R�S�y*�ʐU��(������E�_0}&�7���9 ���@�͟�
+�S��߮\t�n��c��u��O:�>h�p�{+!�Z#9�RM2���Ǫ*
K��H�)��T*m�N��6���M2յ�4��\D�gB������9_2����?B��
p����%�M�u�m���w��������u��L���@#��p���BA^	��S�T���:��:��8���iQ�i�m��lY"��Y
�Y��9�}�^�Pd9(R�6�� �D�)L��I3�	%�8���)��������������|�'r2$E9)y���W
�ro
���
?(}S�ӑ���)�
�֩ CO���ǥ]����%c7M�5Y,�i�Y��!i��F�y�-_RM-ϻ�R�?{9,��Rl��|RRF�$5�t����YqE�������7
�
)�ɏ<ޑ��)�
�
Y4P��SF��5;��/
x�W�����g-���^f7�2�����.Ԋ��U!AyW��2*R/}8�Bfz��c�%9�gʥAgj�ĥ:�NwJC��rg�EC�zu��6W���zs����ms��w��~a��������
�5��e�
J�mN�� q��ȈԪ���k�Rb�
��WH���:&*���_V��/���+�w���_rDg�f�IkU�����[4Pe�1vGO}�MO���@�ٛ�K�_�o���mϕ���Y�'�	�Yw�������F��HN�M?x=G�_s���b��:�Uݔɬy�ɮ|�ɭ�
�RA�b/+�զ�tU�|�J���
+�W�mR}�m��N����W���)6'�����|�
�
��c�DŽ�6%ň��w����3�\Heܩ��%�w_J�{����1��
GV(�d�2*uT�n�V�y��xիE���5��.���vmy����N���5���ҏ��.b�<
�>����o�DrZ�c}[���-��U����$r��D���$j���� {�.�TB�2����/^�#
.SjПS3�gi�{ݒ>'��
O��
��q�b����_B�]�\~g��ݑ&ft�{w�
�t\
�ꨎ��l�t�z��9���)z68�D	W�o��Z�?u�#ꇗ�T
,��i���C�zҏNF�<,�i�QL�����?Л����O`��S���,�W��}��u��e��y�UL��+v��S��;3��$~�S'��� ��j���#*eߩ]�o^T,7Y�+��O�;'�=�#e4�@ӑ/�rdbO�,�B�
�&��xȏ����Y����h����u��X#w��v�ݗ�
+C3깢L<��F�{�F�x�A\�T:�����۴�����|��O'�w7�S�x�
[�ׁ>!r�L�:{NF��N&��&%�����S���T��˴}P<4�Mt���
+/f�V��wW��kS%*�4�ҩ��ǡ;�
�Ra�:6�p`��F~ �0�cF����n�uF��#��#��G
�!��
+E$K�s�@��9�]��0�������D�
�T���e��8�v,����`X�`�

�������N70�I��> ��~�� r�>ę["��
�fȱ2E�>��ރ�w��f6uw����	��� r�3W)
˕��
��
�0��b�
+�WS���
$x�9�[�Lkp�XB��A������{��c7$;��C#��@��!��M�O��/	�X/A�b��Ah)c�� �5��2�
+�E�0�"�Z�
+l��<W���z/kL�^��u��!Xw"u
�~R6lE���8�� z�o�*XF��[h"�n9"\tEق�.�- ��0�	�#n��y�YL�<
>
x����j=���ir��$�5w«�����
�/�U�
��r�c3���\���嬃h�D1w!���av%8���?)�b|������J��ؠ�s���~S�6�$�
o��=��O�Q��3M�����������Ad��pm�:���f�2�ɷ@H�
�q$�K��ˡ�S�
�YeL�T���~S�z���7I}��t	��_(Â�h#�t���!����	��Nu�M5e��x�uH�،x�1b��Cp
	�= Ȣ�{�v)�K�i�5�)�Zޤw=��@0A}����N�7�PF�,
���`Ȅݾr��<`&��O�l��X+m$9�C���iF�g�#Zd���= ̠�W� ��5���o��*o�Q+�����~(�F{.���0F�0L�
��w$�
sD��%
lg�gEw�:�v/@��2
ڿ�.���b�����ϰ��=��l.R��-�:�{R�U��p#V�$BB��	Y$9Y�$�0B�aod�����(PW+^!,E�^������y�>���9/��y��w��}�q�z
P�!��q��O���(
�CT�=��gd
���W	o#�oŸ_F� M"�#Q/I�ѯȷP�(7b��5. ��
0w~��B~`9P�XT?�9�; �
 <�q����
+��'j��p1�Ƙ0o�E�ר*���F�
��<��� ~�L!f(#Q�Q�P/i�1s�k�9���9�= 
n�mq����b��5�
_
4!ۀ��?P���(�}�c�y�J
MKB�$��g�s�f����2�dL
e
�N�E��F������c~c�Dϲ�1���
vK�} 76���'P�^4����c�A�-�B��ǔ�}�7bj�
�6Ö#����qr&�)�D
�Q
a���c����n� �.{ =����p��3�V�snC�sn
�>@X��\���V���?,� ���!tǻ4���̡Y%�Դ�jH�#
u�z:~��C�C��o��X}�:No\{�5�M�U�����?ͯ�O�+���r�3��n��w���f�B`��
����9����H�Y}L��p���u��D�
(0�9Z�MF�5��M.�t+y�&A
���	?,�'L�����2򤨈2%�����
`�u�M
����%�;��������sy�~���QC|�
��
%�'�bzjb7���2����zj���R�XM�I\I�-)'�K��b
mB\@�ḨO�H�8�W����w~r���C��s��k��
3�s�63��Q6���4r��6�[!¶K�&��~�������˙��F����"�D�]�?�L
�4�9.5��%Y�	�=7p��H��`�1��],��
Y1W|r�T��MO��w��eC�/0m�|L�"�H��
+Q��o\J��h�K�ٍ�
�U��}_����6HϵIӹ�{ n�����
� 
�O�
�O�?|�{��e/ʏ��U�{P
��u�''�L��٠K�T���2��^�fq� Ohg�K�
^�\��R����Q��?&�
+lLj��wx�Ѭw����݂�{��"��YMв֞\;T
�w�}�˄
nʦD֤�c�tB�5YN7)S�92� C�'N�E�E��C�,P�GI����1YR�
�P��J�[�r������Y��¹�}�'}�K��5U�v�� �Y��/�Ηg1c��|�I'�S�
CR���(N�Yd*�R!�Z�2�_ɞ*!hTAc2����p�x�3H]��}=@�����]�_��Y0���^���}�gwt�#
cOU�	E�ttAV����J�N��S��r�Y&U�+U�J��J�����E�1�Ha���U�@�5����i������
�kwxN���|ҹ�k�5��zC���������'K����Ԙ�<^�-�j3��$��/K5�u&��-Qp5
J�暒�
Qr4�rn�,Am�����@7d���K[�>Tluٰ�}�s��ë�
o�txՕ�`ߦ��*�P'�����B2�p��5	(�\��<af�(��+e��t}����VR
��Q9#uL��� { 
>�R'�
�G�&�w5\gZ׻�^��<|}���W�w��V�
Pr9꘩{.���+a�%��R��!(Pq9���<���c��952|N�<>�g�83mR�a�.���	$�r��t���
>�SWV:�rk���>��W�X��}rKEG�
K
2�؀9�ZG@$U�b�\��TDc+شB-�h��.Y�K�}�6(E[�%XӸ$.wBl���y;�
+�OU+��ڼ
G��
��r꽳ݳ��Қ�7����y(�

�n���)(A=Ǯ��52:�Z��Vf$�+̂�J��]���#���EO�P�)�=@��/q֯
��/qx���po�ӡ��r�Ο}=��K��+��3�F��NȺ��	:�VMi���	ӒLC5���vDS7����< ��]~�QmP.rF/P���m��`��C߽yݏ�:6��Ž�ў%��GVg
�� �
uDЏ
f��B)7��^^L�u)6�Z2>����u�䝆�c	Ъh](VED$
+�*���d��/�FI�
+�
��Œb��#ngT
-.uGܷ��0�n�
+�B��� �39��+r��?����%�R�C]9�˻R���z��U.y�;�w�;�l�`�W��q��y��-g��?c�S�_�
i���y����=*�|�	BKZ��JO6>�b��)MS�X�T*�4V��Uj^cu:��Zvc���tW�n��`>�ӳ~�˴[��9N;W/9��'��%j:f8�����#�m�ϲ�L�����viTv�:^ۖ��֚ǔ�.�[W���d�1�u���V#e�����ߴj�����%?
P�b�v$�k
���4����mv!�&��2yҶ��]7tG�۝8������
��/�t)�]�8IWN���0�׵���^�bvWrR��s�L�y��c��?��=����*��˷��	��/����m��
���$������K�Q���	���T��L��
�e��P�`F80+�c�_ĴŦXJ�U$&
U%�
�J�>�=r25j�"#�C##��K�n�D]�=q�=��ɑ���gD�Gw��>ѝW!p|!�ݲ7=�^Jp|��R��q�^��>(9!�Q����(
����H����a�Y��1!��;����BG.��;Q�ȞX?2�n
����)~c3:Q��/�H�& Ã
r"�d(|���!�/1��B������?���T��`���G�MG�	b�
��� ֶ�j��+��}<
�Aw�#`�
'p3���nI`�ǃ�Ѵ(ȦG@=#
:�d�
�R� ����y��=[���9��}�Ʀ����߷��� V��|���a��S
��t� �D�}
���Hp
G��P�'����'�C>i>ԓ}��<9S|P�6%_z����=P5uv�1�� ġ�P/r�.�
�ܙ�I�H�@Z^(�%Q�|
��D�J�/�&8�X`�a����:�$�I���!����a�
��x��a��;�{K����!�Ȉr�a��93aӡ�@�
+eq��q�u1�S��� y�n-��\�H�n��l��f����裆X�T?g�o"����a��H��i�9C�
+c�rY3a�aH
@FVҖEC�m<$�� �1�n&x� k��&�i�}�V3�
��#�~� {P�i��
	کaa5,
�>.�A�
C�+�Ĺ!��<��2 ��0�DC�:
���oe at X�u�
�Q
�S|p�S�\��(��n���D�{�;rP�o��,�'�!��6 at f� �A�
c�8�L�ש
(�� _��6
��h��L�j]
+䛙��āh���'��#�N�wY<L�[ȧ�򍤏염�̒v����"k[�6��A>���3��a��)X�<��
,��a�&Fc42��Q��)mkD��
��,�B��g��_� �ܒ��Z��T����O�.
P�&6+%��_e�- �� �/
_'�E���}�4
�p��R4��B�o��`,L�\�j�V���[x����
�~�IvX�%=!+9�x-���7+_�_)[��T-��=�YsSn�\V��/*G�5�f.
9s�Pl�8���P���Y^X#��*E�P�.r`i^|onI�)k-筮����E
��җ���vE���l�S�e�c�M�셦Y֓~G�>��A�^W�֯;�

����8"߇�UcP
���wG���s-�}�5�bc����)���pڳ�S�2�$�kw�[4�UՇ5������w��t��O�7T]�K���zu�ᔦ�p<��p,ctPY3dz;���/J�?G��	��ʔC��9}��~�kUa������O�^�i�[+h2VJ���n�57��^K�YEs�pI}%낺)�����3�=��=ƣ�
c��'���ݨ�6��^�(������aS�+6�L�X�4�}���7�o�FyP�:}�o�K��Vq�.[#���B~5wsڥ�
�
{��������S���]_QM�i ��P
��XP��2*:��
+�� қR	�ɗ� ��Ih� �%t!�Q"ʂh��x�w�#I�Y
�
f��o�:^�������O������ERS�"��H���N��
+8����LA�Ȳ5���,�2��_*\7���{�|�Ž�%a?<ˏ=���?� 
�
JI
���EޢĨȥ�
�ۅo�w�:����f�0E���4�(��7�*����H��w #��jc�
\	��[����Y��X-Tyl����f�"�n�(��<��=
ŷ?�
|#�jd7+'�T��J��5�k���r
��ZC�K�&<�K�:Z%IO����7�8�+�6�9��(8�.?b�\����̺�:�M/꼷�,
�Ք]r`\�sH��3A]i�ȶ+��&vAB�,IF�"I�rj%��^N��(�P)�5TL�х4=M@[�~
�̦#�����3�+�}�
�Xlp\�J�~Z���#����ʈ꒸s�B<�+�
Ԛ�)��
S��M�J)�W�Ť2f=��P� z��g�d�1�P.SG�a�i�!p2���
o;�:��ڭX�?f�k:a1�vz͓f7��~�V�
�+�9�,���PsX2^Z�$=+A��S+ȅ)����V(��b��#,^�
&/Y��L�A��z���X�
�H�f}g�!��������mG͞w���hs�:����6��^I�K�(�[^L
+�0"�1eY�af>?����VM��63�rz�\�?Y
�
B��r����s9z�!p2;i�
k#�|��r���[�a�[�!�g=�,Ʈ�l�ׂ�w�1�XW�e�f	ƫVD����)���tL^Nn?���Γ�8�rFJF7��q���x��g�3�Pr���|UO3& �S�5��`��їƽ���}�/�0~��_5�t�<�᳷�9�h[C䙆�xO�$�_TN
���r��0<AvRZ��t%OLc�4 at Pv'���fQr
��9Z-K
��::���
�I�=�mB���(�j;j�y��k�N��m�x���g��Sz��l8�h�8]��Q.��	�ȡ�b���rN<���K..$2�ʩTA
�T����3��Z�@���4R�a09�
+\��!ۊz�n�zyc�Y�
�������ɪ����V���u�a�������
y���Lɭ�˖d$�+���22^$�%�� LY/C��'��i�"=+4
������6�?��^�
�r��߳F
ݵ[٧>��󖻍\�g'�9Y��ߎA�Z�
-�՘
M��O����d%LM59���U}�v��!�5J�@��X��1f�G�y�P�d
�в<S��V��#����AӞ!�u̓n�e��������K���8/NW�E�5J��Ih��$�dc⚋�QMR|����P�B�F/���EbD-Bf�Y���k�'�j0u�
�����a3pG��4�L�
��~�źr�g�`0�h�:‰{;�<��C�I�ǫ!	�9�1=��K�¸�nIB�R����t�G�a�������Z
�3� Xd	f+���`�%P���ɵ�cr�q��QK����E�=����s`
G��
%�'�#�`�B�S�"���BՂ� �����<�o�7�W=���F�����1���ap���6�m�`De
+�M@Ϙh�Z
�i$�:d^��ic��
i���&C�)Q'q㘳�?ܢ~��"Ʈ�C4<� � �O#��(B|4���c#�^c�!^߆y���9�
a�����v��۷��r�4O��ڹ�@<gc\4{�<{�q=���5�W�=��b�_������<Cp
���
���0�;aZ��{{M+|<gz�
χ���E�O/�ݦ���:�lЌ M���5J�1P<4UÓH�U��ބ�=j��u�iݬ	Z�]����Q��v��1����)~�lG�|�i����
Z������9]����~
���Y���y���!� �;Q@ه�a# �4Es�@޻���w�M���[R�;nHz�%���K.���/�C��߇;���dヤz�u����ę����?�O9~R:��<�t�˄��g-�A�m t� @�A��)��c
�,[1����<�*�O��Q�u�
+��cK�_���ࠝ>p�.O8���0v�9���f
<
smO��v�c���b��8��fZ�p��(%-�$T�,��,5��K3�4��HDuQ�P"Kٗd�ZN<�9����\��v�updi��}��{����>�����������Q����

����`��>�7�ZN�HM���$R�C��Æ��Gda�����+2Z���B�'p��Ăp2
�S������Hr]������
+�j� ��
��yh��C�
_���K^�h���yb�5b�=����l���#
p�Q��,�
[��8X��G*�c�����E�_ �O��D�N�C��VN�š)�����i��8�
G���U;ۈ�����&��_�HfPHZ�!I��!q
�"��E���mB�"�~>"��p�g�#�!
��(Oh
g�����3a��N�Q�4��N�B�8k�C{�-�!v�,t���5�J�
d	
���@T ~�|p7���c1�?�#�H�KAo��*�V�����"t�@�'
�@�
P{��}dY�7�`
+b�� 
u�:�	Z�34b(�
���@�, �����i!�����֡%`��D�(0~���N��
�}����
��G6�9��?CL � [(B
�[�=�	q.Ш=�4�B�qq������%�
��x�g�`]��y��=�;�{���5���x��5,k  2�)���Bl��p'���0�\�Wx at c�2;�U
 ._
QM;#�����tp[�\��6s������������cc~�����p�����G���� {�Ü�ʘ�T�
�e
0�}���� �5a�lZ���(���~��'���gY�b.�cn��y�8=�לO�O�1��1�v
+�{*D̿D�[�!އ��-L�쑾h
�h�ś����H�� 1%:K谺8|H�!rP��6 ����c��
a�=��,���(������^���%��~�w
�Bx/�[b��E�܋=!��9��a�� 
gr�ܑ��
N6��C����=ڵQ�TU�nE
�/�
�����?%'b������W/�w���s�ᓸ����ے�R��ȬC
�A�I�Ƀ�L;�8b��Xɜ��!�|n�>�sZz�s~��Ē�7	ѯ4[؝����>�s�Q�SY���r���_�
�?ߓ�ߑ�ǷK��W��ҋ�a�y�u�!C�NF
+�;��ڢ0x��ǡ��<T��[(�����{��
�*#7���U��Mk�O
U�G�:��n�=uS�]�	�-�y�M�5Y�������GqI9�8�R6k��'4C
+k %������D�+t@��1����r�w�ƺw�V�t���
{���z?��u7iC̯��?
���	��W���m�ӊK�˪
�[�V�곚��f��nPs8aPݤ�r�
L�d�����S�o�
��_+���Xɜ��z�kg�l���A
+R�����ڳV������R6�^J��wc��\�~��qusB��d�
��'�#���C�ݾ��^�n����f� ��{���&c���𦐑=��N��_l�N{Z!�Fx��
v� ��f)`_�)��\ג�Yz*e��y����E�xŰ�x��h�2�1�v&�����	u��A3���l���Q�f�Jo�`M����E�o�"�=�ƚ��*���zU��5�ŗ�ҩ�+,�e�'s��G�*e3����5hS$�N>�ؐ|Ѹ#��i{�KcmJ�qkjobMZ��:�Oo
t��g�w%�;�y���}����w,p��>��z��ݭB��������/M�6小�\!8��D�߲^�7�ZՐU�����P�q̸%�5�:�=iszGRU�g���
cefobEf���
+b�,g�":�z������_Jמ �獡#�N����v�F:�u�n��rsԱ�LvSQ���p�xW�Zy}�&�6K��&w��*簩2��yC�����g�u9�I�r������r{�A"�r��YLtފ#�os����e�r��Ɂ`��{�&^�ɛu�6��L�f��JSdSy:�qM
���P\��T�ee���`KBE~Cb����2�is��jr��q��ؤϷ&�, ��%!T��� ; (]@���{�:!P�R�B(
R'�DD H�*" �
�������qw��Pag
��ȇ���9�9��ߒ�s���9I$�(��B��VK�	�S%>�� ~��"^��=�7��y�^a��s���`��&�E������T�S�Y����A������ʨcG�q�'y�3좂s�‚�n�Ô�/
.w��-XO�l�D�de1�%�P�D _����*�s�:�bhqИv��N~V�q�t��`�~��x�v>ǵ�6Ç_�TSq4������Һ�"މDn���W4��9z)�p�}��8�E���Gדr�l�D����@`�V�FExߡ³J�dT��=bH�2`#7��>"���
a��k{����?~л�>;���0����y��&6��)!��3)�l09�l:�`�
�9�e�����̒
�(�F�P��y�yX햅�#��`\���/�X˜pQ�������<
c���r�9��U�t(��PZ�=/2��*�PmC|zu;+��lrJ�'��&I�̩Zg�Tn$�Vl�D�t�_$
X'
ڤ�E���m�ۓJper7uj�Rzd�Y�g�g穾P��3Qֵ]���S<xm�~��y��-EYMQ�q��m�I���D�$;��D�����X��b��?Q̒%�T��x�)	+��pwBnL+��e|j���	�m
缴Z����"-+����d7� �'�3'0��д��Hv[}t��ָ�֞����,f�u��Df�Ĩ��bE�
i��-�k

�����#tX����99����d*%�a(�Nyh�'���E��Fcm�Cl��
g���q��zK����FFw�DEvwdž
���W�B��*x��!6�]4�n��5��������
�f�p�4
_�$z����l�ϻ�W���L��p���O���S]8�Y�����ђ@�HuH�HsxȰ`��9f����H��5���'f`�hȓ��x�E��!q�����<��7Aϭ�D�MZ㲵L���J�u_-����
L������R�.e:���G���f��������|�GC|�B�g��x_\
���5�-L�O�b��V/��Q`b���kTܣC�%hx��Z�������w�4�	�9p;Ґ}+�4�&�2j9�6b)��T�
�X��������8�������}q����G_�k�'�+>��N��A&&���t.�C�#I�.�^h�������z�-�;XO#v�>��c>N6�n��k�Rl�r��k���}����x�����g.+�98=�����7Q
�;��
pa``��4ݣA��RP.�F
}�C�ycJO��$
]ㅾjQ�P�pa�v����:M���aC/�a����o�,l���f���ʹ%�?wHo,�

�ן�DY \
�$��o����4(^���U5"kU���fJg��l�YsV�X�V^
R
x�_��m����d-��;]���:���f��ֳ{�l`�^`h�>jd�~��r��gc��"��
�t^hX�x@@��!��

���`��C��Ә��J*䣃t�'w9�O~[=>�*�~fns�������K�����;���jZ|����[���
�=8��t��
#�42B�/��kd�
@�s��u:pP�Q��D-J�S�ь�6t7t�䌞[
�_�Ce�!S�
+��"g�f(�`���*`��
�Tݍ=���.�n��e��4.��� �O�H�"Q(��D����'�P\Ј���hC�FG	
t���}Ja��FK�!k�.<�y'�l��b�a��&6�j`鬜:���<G����W ��
�
+������3���)f����hH1E3�ZQ��N|:�렻�6�о�@�&���1FB
�$T0����tE,�+`���H�c�H�dHA'S*z�|,h�gK� wi
RD�XU�Nہ
y��Z��N�z�x� ]F��7F�Q�����L�v�t�
m^�~1G�
�gs�E�o�/vh���.:P�ń�^$?s�c��4*b`�*��h�w�6z�v�k�>:7��ict�5A��=Ș0EƬ�_l�WX�i�?M�1�2�q�����J$��ވ�:&$���*eQyP�E
Y+:긺�
�(��#��
�~�������|��
�G �E������	3N:8ͺ��;8Oz ����@�5 ��!8����&�c�G��́�� ��
+|5;�Gk
�:{�nq ����#x�9��g��
��8����f�Ӹ/
�<���.o��u��[@�1 ?�s�!p�@�3��	�if �o^�9��-��j
�y;�Rf�5@nr�v' �tR/���2�}�e����_^��S��\?zq��fLxÞ7$���� >h��p�
A���N�AF\2��r6�h�jі�I���,[����t���;�RZq3~�.Ӿg\��^�3E
�&���$��ߑ����N�_���%�|��
+�, ����
@`i RkCٽ��V at 8y5�l� �9H�:��f����f�
+(w�Ĭ�Mқ\?����'���?���z��
u��:L�w�~v��{
S��?x�J�;�oe;���5C�B��"��/�oS����l�Kl�Yk3)N��d;����9����u�����t�3{ܟ1�N|ʸI�/���W
���
��I���s�	>@�e@��>�A��ngkJ����X��O]�%��i2B�ӟ��֯e�Ǥ鎣����2��Մ!n�	���1���!���k�t����k��k��:K�7�J?(}\��[ 0���G}Eb�=l
A�d<�L0�R�׼?��8
/��":��<�n($��_A�{

w��^��f�-�q�
^��5^?e�{�z�;B���������# Z�h]
 ��>HQ�@[�!�Mڮ���{��W{�z��n4��yX)��(6��~��;aj���<ⵠ���*�+�����6�E�I���>�9�?��nj3�qf��
�K�10�$H 0�<�_��^
ꝉh�4
]����\ܒ�\w��,_�!5{�o��mw�r�q�qQ�{/�3=.�iH}!徽�jϾ&�)i�d`O���ˬ����c�6�'v��M��U��� �E]s�z=H٤�[���
�<��E!~鰆d�[6�A���Zr���܅�ngc�<{�r}��Ŕa���:�߂�X��nN���Iv�� {ƫ
��=��V� �*8�����P~��
$�=�Q�4��Xh�����p��y�b�Uw
+h�e�-/�����#�{(ܺɞ�q���
�5��~4�&�A~�]�ɭ	;˯
+�&�
h�'�����e�y^�|�[�-��ӃH�7�P��\���lқ(ݢ���J���]�w����r>ע/Kj{F
�ܕ��XR�gk��ܴ?�ZWL���dUE7p�Q���=’�_Dő�E�Qo��Q3�C�:~A��W=�
���1��%�ޙ���h�F�I�i�V���
V��\-�[���SO�xgWV�S{z���T�g�*�|$1�Z�p�qXq�U_�-�khbO��c/�sc�s�^�r⦅��s��x
!��!n꽫Q�Z�M�}���y
6T�v�n���j���
+��Ҁ�'
�;���
��#���=��T>)��2U>�(���I���*�ي.Q��$]qW�V���S�4��)u߀`�_�vP��@c�MjM�給����`����:���IkOk[��
+lZ
+��ϗ�Ή#j3I%�i�Ci���bVvr/]�$8��)NI</Q%JTIc��H�4+T%�	�� �C�J
2����D�	6Ҹ{в��lep���������i�mZ�uC�ԡ�(�U��!��%�49����,zfF!+M]�MNk$
�'���(Ro"����"��Y�2uN���$~�A�	��t6td)��yv��
h�fp��y��FO�c����Vs��THvU�����D�k
+�9�d���
Zj�& )�07!�N��.���Dg\�Dg� ����YaL�� v��G
�c�Zc�q��^��f�)v��B���qɉ���&ʏuu�m�5"��*N��p�.��J/M�M)V�'�1�RNl�~T~�P�wF
�7�
#�E�y�ByΜ �
b���˱�CK�߫a��������+��'���t0n?F0ml�?�u��p��JPaTd�@B �BB"$@Xª(.��
+�U�Q��
P�Ƞ(
+n �
P�
��#������Z�*�K�M�yO�Nz�;�������պT��xl�6yo���q�Bi~�W�5�+�y;���)-4,�^
�h[E|fI�)��xҜ���9�?��[bؔQ4���u,̱,���%4xPɄ۵L�Rτ��6p������{��z�S�{��aam�_�����{��s����w��fUn�\�茝�����S���/������Tޓ��ݧ������ұ0��6��Q
���Aޞ
8�H��&+hhq�
h2�N��8�r(j�r+l���ק�V���P�t��
�����5s�m�L��a0UW�&�m0��=g�{��6�
�v�1n�X��	϶ܫ��{@���4h:A��V
l�{�x����(&nj�M]���d����s}�
[$^ؘ-�װ24�h�*�~�6��Lg��s��P�f��u�G�
Q�
Q�Р?8�P��m ��(p��I���
�.O���
��v?֦K2����+�GO�i3q���㵠u���3�SO�1����7��i.U���#�굺��ڈ�mDS�V{�?B{u��� 
� Wj N�4�$�6
+T^e@�	PtˍRxˇ���zō����΋�%L��C7�j� ��R��˹~���
훂#۷Ku�U2M{�\���~�x%W]�W(/`��<*�����U �� �Ԟ��D���L(�?

+
8��|Z� ֲ�a�
�Ϟ�q��ڙ2��9�
בō�XΏ���K�Q(�vl�
����
�h
Tt�
Pt�
+��$�3,��cܮ 8_
p�(��&�'�ϒ�4��ik~
y�)�m�P���̲qif�m�9zb���c��7/r��$�Mk^�V�7x(��\���'7�˞��g�r�?��s������a���#�_j�p�����F�W6ܥª�����^9S��Rӻ|�.	+�Keex
i��h�:e���<U�GEw���{�Ti�fא�27qO��7��|s�
����ۿ��
�����F�]gH�2��� ���YϘ����?�P�z9Ը^��'f��
ei�5�T�z+�@��| �V:0�.dp�_��&
�O����a��)>C5��Cǝ��/:	�;��/��1��
�n&�K�
`ŏ �� �X�4jFt��M�@-
��
+
a�P����B�zV �Y�a��L��Yㅘk��|kO�b����
X3�
�ٱ��~�&��6r6� ȻO�O ��G��6��ɠDW�
9�����i"�ӽQE����h��Ɯ�
,�0�b*�e9�,'�a�ՖS�����3c��3����{���D�Q�4H�0�)ځ�P�qE�
!
+�<Q=0�����i����`�
4L�O�t�=.��a.��ʰ�"��a��D��CE�����4T��Q�DU8
�c�P�f����([��
.R��n(���A������S�x���X�9���xG
r09���������A�C��ڗ�Z1�Jj
֨I�Gբ����8�hJ����*���\��'8(>M\���'��o<G����Q�`���G�����B�'t>t�
b`������8�d��LT������;Y�R6�*�q�~�u���F.J�=Qr����Nި�����?(���KGy�R������$��%�zQQţ��GC���1�
���0Vg�����်��Q�f��@e�;���b/Cxb�Qި�$D�*�,�,��
�
��]��彂w��9z��Ч[����0�OE-��z
c�
	�
L�Z`��
+�c�16���\0j��
+�#ڭ�aM��zo0|?@uDЧj�*[�>*/x}P��~�|�ݣ|�ݥ���B�Y��0��<
}����c%�	�\*�fS1��wM\���H
��t�����dr��t��q��ƽ7j�Cd	�n��]�
�7�{�G}^kN�ti�D/5�D/4D�j=�|���f���~Rc�5���u�ԙ�q�ID�Q��⊈ȾCHrsH ��� ���}��;�
+
+#x�Z�ʴ�i��Z�Աu��Z�>s�x�9�|���|�����񐊵n�.<��o �{�
�`��Z�$�����kT���"��:-�~*?�"Xu�9���"Z�{J��S��ķ���䱓�3_��:�'/:.�_;}N��<G���0�d�6�,I{�0t'
FY�!�"	�G2v�w���
oi��v�`�w/F�FJ?	W�<
�
�*���^���
Z�����
t�y
��2�~�z
}�z���m��1�B�k(�B�Q�r�b�m�c1I�
�ؿ��]����7<_ӗ��M�N���m"s�7���bDG�r�~��~.B�x+���lX�ˍ�.���A��!c��!�z]
��k<��H�;��!�g(�\�
�-i�8Hǚ3a֝;��ڇ�Sx����K���3a�#^��=.c�
vҁ9��l��n��p�
]rj�^�:q���jd��hD����a���I�K���ß�����O���+���q0�=�V
<�m!ڍ{�} �Jfk�(s^�(��B���g�V���ӜT�I���8+�q4^�r9V�~)���B���|T�_}0��~5���MB�	���3�%�BS$�a`�
+�il�8����;2- ̶Ľ�����8��r՗ro��و�
Q��?�z<�cs�˷�H��y��	*�
�λ+�ί=�5���Ghb\!�cfH
1Hu���jc'��BbU

�����`�9���K���
|��^����=(�5�/�X�O9qˤ4t�(�zX�h3�K��K��N���s��-l�Ϲ�j��9B
��XͼD���B��
��e�F.cA�&�+���8��z���`x���(� �Ֆ`AmcpS�fr]I�|U
l9$��3��d����g8��$n��<�z�ʷ&�<����c��4�A�4q��J�G���Ѣ�wHQ$r YɁ��`4vּ��;r���B3���
�,�m�����xB�鲒�ɀ<r_�,�h[�D���� ���s�*y��ڴ� ujm���J.L�$����[Լ�g�<�/��

y%��5/kN�z�1o
�Q�<ԙ��Jsp�� ~J�fT�񂊲�W��=�q�\N�]]v�c�X�J=5�|_U�:��l1�ׄ��{ќ��4m����
M�{�JxQ$<�`�K�8l��u JL�Ok�C�1�Wa�k6��k�x���!��Y����C��I}�N�:^��⨕�]J��<���| [...]
+^S3R2Y	db`����<)2��k��jcp�~#��߇��7����]N�֢	�]_B?TUo�-�8�(x.�r��"'�'GZ�-�EY
�@܉��C4�h��.��35]��.��"K�l�
�:�|�2
��\�0�7��=��F;��:��m���
+ڮ�ȃZu����(�9O��!͗�d�)2�eA��:r��
��.R��S4��>�5Y�M�AJ�"KA�	��5��
��*#p��L6�#-�pͶ��z7Ӧ� ���JWn]R
c��&����S٥�"��;�H��+,%p
jH��VJ�b e)�Q��a^b�(,D� y)��|�Z
)q�n��3כ
�X�)��a	z�mV�����o��R�G,K���)k��ȫ�vٕɎ��|��3�LV&�V�%��XU?���@�Uw��(1ſ!1Ő�(Z��e �W0Wi �
�x��6}=�A{�a��.'���M�6�eKȞ�&�!�>�6�!�$�.ݙ[+tO���fU��U�FW�#���ȑ�W���y���{R��"������wy �� p��ьÝ ����s�8��>�Z�ﵡ�7�"��f��i-hg
MoK�KiIuHl��7I�z�7�Q�����Ci
+n�

+�
\�+�k�{'�B >� �
��p��6�?�7���{qe�v��C�d]@?�ߓv>� ��e�Лb��w��8Gv廝��xw�{S;�|)
W���[�E?r�/~�V迒g9�j fjk`�����s����@=a�SN
3�w1_�3�"ܑН���]�QM^i
����@A����H ,!!		�	 a�Ȣ���
���Ѷ�N����jkkGfܵ"�hE
.���q����j�����3��/s������{�{�����sfW/�=�4�rl�4��:���&e����U�ԉU'b����r(�P�V_���}�P#>�N����W���8�,���9�u�
��>��K��~i]�ԅ�܋/����a坟Ýy�D�U�D�^�R�j�<�h��h�.�����2��A��>���
��NOD���{Z�\����
�����oO#��"�V7�Њw���X�N)iQ���OͿjr˹j�ʺZ��\�25/�$7��'6}&�o� �7}״G�m:
�i��=i�c���� l���:�;�wP^�����Ս��
Ϳ㌊�|Q�MD���
[�}���f�pN��ۊ<�zǷ�1tmk|cm_�bl��Զݜ��Ǹ����v�������
?�6�OvwP�;�����;��y��e���
*�pA�
Ld��R�ԩ�3vΰO�Ju���v�u�O��*v�t/v��^��^�ٳ�K޳�[�s�.�=͐�^cHz���a��k�=U�
�>���Ghùw�K[�w�@9�(�+J�c�Ծ "�_L��+)qZ;�@U=h��̦E�;ȇ�
#�J�$���p
��K���i��
+נ�Z���V7�n7�ˁ����p;���8��]~QB����i�8�
c>H7�'��""zBJ*'T����"}k��C�]dR�!�E�BXd/��4��8p�ܑ�~p֑
͎,x��
�x�5�q�u�oC(�'u"4c������
)��d  $L�������.9
t�?$�\0Q� �‚�̷�C��|n�	��
��
Pݠ�}�f�>������g�#�Ѕ�f !8w
+
+W�(� |�!����g�� 5�q���
̤+�$�a.9�N�	��)��B�r�=�H$$(�H��-�@����TP�i��w�g��p�Zw�l���!�_t��1 �����b
�v{���
c��b���h01�d��U!$Ą��	��Va�8*Ĥ�@=�	�>re�(>� �/�}K��

�����_����2AR�]�
`O��!�t��Z
+�WR`�H��R~��
�E$�b�P
+�ev0CK��q'��@�7���'���
�-
����r\�>&��@~
�a����
��أ�
�+� {X>�
��߀
8�r��ɀ7(q�VH�
 �pIj*$&���9f̙���!v�h���7��z+�bMD�b�G
d��*�FU'9oT��ת+��-Π��ӧ��<�����S���@������?��IH䓐��0�)����IO��0�M���_�=�_�3�[�|
��5��略�3���
�
�h���5gx/4�x�57x�k��}����10�=�c ���֟�.)~�
H���En�Z{�4:�M�L5y�$�҇�V��'�c�0l�{���nj
���]�^�A�n}��SwQ�DMЮ$�M�|�
���[:��A�8n����@��,Ҙ���HB>�#/�~|��qĒ�2�U��<}���̷;u
�3�+��ޣ���&��O�p/�Bh3���Px��t�p_t=ᙨ��*�р�K_�걺I��&�� ����(�NBQ(e�(�:\�� Ź77ǽ#g
�={	�U
[�Z�m��7S��H�!�zʿE-�����!�ƚ�+����ƛ��
�9��j�i�&"N} }	��{o�7s�Y��
���Rʳ�j����)�s�\�ΞM�o�BVkN�ŲZД���!c��R�֐��
a̻��̇$V�q�SmD����cY�i@~�<��4��V��J' �s<�0,b�K��%!dW����"����f��Ź��b��R~]�ʀs�>
���*���S��INf패��';�Q��̨�<�Ѡ<�qOy0�j�jo&��`��@9�=	����y�>�s,�A�e
Խ"�x�BB�Z�uh)M�ְ�B�XRȶ�[ȯ)\.<9���q]�QM�i��$�((H�*��"��@V,���f�5@	!�LK��@�����(������h5x�9���2��
�
��NGǶs���ȇ߹�~z�}�� [...]
�(� �r���9�#�'v�<�lY
es�$�a�����L�	N��X��k�]�;�]ЛYܕ�ڑ����ХM���ɍi�)�
J�r=
!է#��w"6C�l��R��7%xxQ���
+<<�r��U
���`�E)�z���Li��
�,�a>�c�����)��̓��*�u9�6������Ϝ �e^�*3W���uZM�?��Y�P��2��r}��m���ob
�Zfk�V�Pa�~�RM��|%Qz|Ǹ$~��(ŵO���%�
n���
+%ZnU��SOP�����j�8��=G�`ߡ��_ҥ��h�ܟ)�<���f�A�%���z�)�U��#�%ܫ��e�f���eE䶉���ò3���.��
��Ҽ�MB��Z P�+���ڰ�¦9��$�P%�+�2�-���%���&��Dq�� ��l��Z��`ߗ��+�	k��s�9l��3��k2�"Z�*?�﯊���"yo��u at +a{6�
}jKK��K���bA*h��u�E�!j	����iTo5���
����&�#YP�>�e�~L`C�&���ZSXQ��r�5\k���޸qM���>ʮ���SkM�
me�����CJ)׻���_V&	*W�"5QX�N��<�
�@��>B��s�oh\!B-"y3$���0�T`��½z��5�:<̶�ɖø��P��F�m[É�ZU�G�J�>EM��ʪ|o���HY�8�T*�Wy�-$����W6Ec�-�s�
F����F�*��"o�d�� �R�J,48X��`��f:�`�� ��-ؼ��b��t [...]
+BV�����&�*�)L�U*Cq��P|Ce���¬Aȿ!m�p �� ���Lp�~W��y�
�z{���ô
1���){��˻O9�w&�)�H�WԖu���㕧��4K3��!i��0��3"Y3JJTϑ��+�
r|�������ȭ^������:�Ou W��)��
���{�h
s�hF}p���|�f+<�X�?����p��e
`��
���{���~����䎆���v™���+�m�3bl뿈�-��b��}F��qջ,v \D�G� ����<e
��ݠ���VL��MR��1��N;�';g��\�G�R�
�*�J
��=;��շ���
�
zl�Nh��������
Ӌ�����
>i����� ��Z@՜#H��1�� �\�%w�c���홗��.�:3.f�$�p����㦥�NN�z
�j���
���5y˟>��?}�?��O�q$�6�nfDgpG
p
=�I=��@+��B;��D7�x�xK>ؼ�0��4+��6�g�������|�`��r��Ł��fڵ�C�k3��eO��=IW_zFο���C�#f�w�
��v��~��Q��i���r�
+o�s�+� k� ���c��L�V�-������&۞�˲?f`;Dx;�
e���jg�A�'�з�h�v	7|�f��k�g/]	���z
ٿկ{x�`���) �,@�
��[ �ߙ@�C
8��
����`���6���4���f1ƳG��m4c�5�ȵ�4��W+���jv���8�N�
Z]����� �����_;<Bvm5ߍ� ��=� Z4�����h�=��/p�f'�Zñ�N��G��1�gD,�Y���I�����f��l���|ˠ�r���Z���6k�?���:�j�J8��I��%��@Xe
		�A�
+Avd����q�ڣc��R��BQ,r� �V+�]Zƥ֭�+���&�g.g�A8��;�~������p+Y�'�,Y�U�GG���;��}�-m�h��Cc3X
��$�r�+ϓ~
�� ��CA��!��^	`Z�
�;e0���RuM��]Z��;�.�N�{��`x��֓�������l1����V3]ޞf:�me:�{�t��c:�����?p`#����q`�= m@`�

������@1(��Ȇ��dXM�?Sn�i�#q4�Tڤ?����̣�~\C����~ǰ�C
Kld���x:N�q�M� ���} �0�)�� 
��dh�:���=`*�
�)[
�BYbe���(��̰���B��f�i&x�h".�S� ���ߢ��M�>{
�z��
�
�LpA8"�4`��`��`�"��p��P,
�RFC`
+��l�¥�zb'���&j�A�'�^R
+��4Tx�P�������Q
�H�G�</c�h��m6F��&�Vj��r�
+��l�&���
��e�
+��#n�

#D����
+e��S��NC��CC�@:*"�=S���,��k�P��%;LQR�B��lt�$j������s
_%nsF�
��
ΐ��ـ�޻�9��sG^�x<���RH�?1YL�)ބ������/A}u����W���W�赍��El��k��
�UGɷԛ��Θ�]2�����k�/�6�9h���72��!�K����XߙB51UHC�'�O���c�qJ:���2ST�e�o��G���?}��?(�s���!E
oPq�7�h�W4����^�#^��5�π�
Z>W��So<U�u��x��O�P�@aY���%3�����H}�$31p����Ŭ��fS6p�O����/��/���X�QU�U��]�S�N�9�+U
���!�ÿ��X�oզB�~h����w���S8e�oK��F�u���hrQ

��0=�9��2~���	Z��Ҭ�vN+�
�a�|j1���2�u���a���:�v�YA�������]�+����v�գ�8�� tl�8ַ$}"֎�x
+�l���g齍�bvE��
�f?����$t5�=�+~[�V�?>�-�Tj}'��润�����
M��u�y�V�M���g���
/hF��5��D�Ӡ�DdEa0��$ L!g�*�S�i=�j���0���D�G3t��9�G.�ߌ���z�F������Zd-t��m��%m�Ӆ�Z��!?9�
��rN�����Gؠ
q;�EQ=QG�N�Z
�(��M4L�f���Ι��I��Jz{z����X�[3�ح	ټkqyV�cW�\�Yg�
��CS�ǟ"�8��(s9
~P�~��Tx��>좸6��xx����!IM8JE���o`iǒ7g�`Y��ûl;x��
+��ʩ�g��[at5#�}!Ugє�Pp6i����
����6������-
�)�>$����VG7yTE_�UF?�U����cP�=�L�xI�	��ds�0<��Z@{�-�ΑR�.�¸�
j���8�]�ECF��.-��D�
+ǣ�_:N� �N�&�!�Ƚ2~��"�RV
w�s܏^��Z�qO�%�����(ߓ��o�k"�!�dc@�1��3��E��4�w��кXD]��c�[lظ �]��lq|�,�ú��ՙ��3
+\+�ֹ�������M.�}7�מ���EI�R�N��+��g��^��3?*�I�1ބ�S8Ä́!9&��1��<&�_b7�r��2W�i��1_ì͍d
�I�U��Tfg����T6k��^�QI�ɷ�<��^�3��{{j�϶�:�-�畅�w�_�u+7���nJG��騘��=�C�<�����R}���ZVr�y��^)��.�jpdI�*/�W�y�`���v��s���-q-�[ �5g�d��B�V�.��Y��MY��2O(�g6���yK�.��om��Z
�>a"��^.�#�N�z�K�\��
g�8@����U+���b�e��V%y:��E�
w��n_�B�u���.Ϩ��<���PD� �H)#LQA�,�"��t��ІFpF�  �RD�� *�1X�Qp]��f�%'n�f��=G�}���s�����=�W�R���*�x��-^��nAIܐ�84�wQ�SQQ�;aQP�_B6���1x��C��T��T0^����,p�̕�_��-]��Q�ךnܔm^��`U��fW���H+v)O��m���R�����I����ޒ�)�ܤ�޹�oE��D��B�LH$
oA���26.�98�]���pf�n�t�.��*[;��h�Q]�&��8+e�6��lDz�BY��[�Q�+Ho�u�S�E��g|2R����>��H{-�H#B��K�&�E20�\�ߖ�p���Q�

)�qX��t)�*�+�4��W�֕�V�"�ҭ
�&ۖ�g:J��
$�\I�N^vN�WFv� -�h[�i���	��Q^�R���"�<Ln��y��3��:�dp�R
��讶gګ<9�;�ΩW�ҩ.1P�7���b,e%�6E��yR�sN��-�P�VP�_��wH� �\����D�M/!B��KH,�S�C!pY�W#4{
ԲѻK
u�L�.wvC��zMu���2X_��`,۱٢�"�Z�=�>K��0�T꺭�bQ���#����U�+�������,��
-})�.�$�)"
+&��{��d1pq�5����k7�٨��&+46r�5
�j����:�^q�:���(���X�̝)���,�dE�K�9wkE5/���s��nA���p���h��}�OQ�QQF�_�,���Õ2ڃJ�����w��f�m4����Յ�l�ț�5�{V��5�d7D����b�R�d��+�>�6�)���uSu墈�&ކ�.�u�C���q~h���Н��)�
+S��x��gz�7�.^�܃Z����Zi��>5��Pt:2e
^
i�RuI�*����K�n��m�7�rKs���=���M2�
�J���nHC�{p� O�p�C�p�C���
��
�:���=zW?��
+���-4��
]@e�*�{磤ϖ)�sg��.V��Y97�[��pp��֮(���f��)�����:�v!�;
����ikw���۪����n��{�����B����.^R�
��=��l�RMPz��A]H-�u̕I
r��bVύ>�u4Bc��uG�LB�d�
.X��P��W�v�
�ﰢ��qy�7N�}7
�{�;���s��&
�����9:�t����}��C@� �H�ĶQc$�:2������%���@��`�u#�BF6����_s*�p�p�q�p���5~'[-��<l�{�
底V�����"6>Lj�L.�
����7
�h�2h�����1=D�[!b܍Y?.b��/���Q����
��
ߪ�r<E�,g޲�}߱*������>#��ic�ؤ���#��7&�s���,1��7��]Կ��+�_6d��ǁ��
�\�D�U#���c�$�&3�+Y+&�l�������U}'�|�2爦�4SJM��&-��
m��)
��:�S��]{ [...]
+d�.�W��)6n�c�mm,�m
+��
���<x���� F0
���Y�wbX�;)l����\��n���NՅ��T��_����x��j���
~�4g&}�t����˨?���-�_��
+����gZ��Z�|h�C+�?r��'�
����J8?3NO�3�O��g�,�g���r���F���l����LP
�͞�d�={?�6��u����@��G�S��&��=`��\^���Ws8�j��\`��֯���?,^��ٛP���b��&2�r������M�އ
ּ#,�߯P�S��b� PN�P�}$�}�-�o����
8��>i���b1�91�	��q��B��G|�KV@���E�1��aɂ:�3j��Q!9N�����,vP>�'S�ߨ�־���� X�������ԤN]�O}&�gI}���D]\��wa�% 	��R�)i�~ =>BO�͂8�2�ٙ!.g.C
�X�~�خe�6�J��l��Q�*���\�iTS��@H.!�y`b�
�Fd�A at A�
4
aJ�"cD'(��
+�(�
P���ϱ���+������ �߱�}`������:{�u������I
,c��`�#ց]�����{I�|O�d�E��?Xc�����{�<
+8b¯�3�
7*��5��3�5�.ClU4�-��B
8۰::p�a��Qpڱ�X'v�1��e|�
2F9�#��a[ �lA{�̷S ɥ�,�s��0\;��
+"_
�h�@�	|9
f�рW��2:p�b5
��a|��'&�G�q�	b�{��̽D|�^'F��a� �7B��Mh���X�� t'�=��o�) ��<<�yb*���œ 
p�h¬$8*��
���u���&�#���@��
��~'8�="he
N2�
�7�n��{��s�sr��79�zJ´'$�c}$�M���6��3
+��oq���y�-��
���p�1q�ևo�����3�go�7j�q��|�\�|�T��©Ig��΀S��9�3���~�
V��3�^�i����;���N0��	
~���.�܍,��+���w�{>u��[c�}��[��k��
��������k���*t�Ϋf=�b��t���S|l�ù����dߟ{��#�׻-
�~C<fx]
F�b0�Y
&]S���c:����O�
8�2�x!��o���#��%0�<ӵ{=�t
��f�_�a�on��=n����ֿ��4����.��]:
��\7�ٵר����%�O�
�`v���ag�������z�9
�CC˅���y��K}4z��~��a��%3��*uo���׽K�m4��4��èӳ������
��<N������ǯ�<��
�l����1�u
+�½�X��.�P\G��H
41=w���N���vcY$�
Ϻ�D�����_mر���_������|k�O�6X��
�l�i�:�s����u�O��!�N�/p���m>��;��P
�,�I�F/�
P��ݓ�-�
�;j1�3"���:��wjY����<㶠U�Ǘ�3k]Ra�Xmu8���`�~��V���g����
��	xk�;`bƮ@��j���ƹ7���GhP�������XCt3���b�R/I��F?���m���o
���)M��̚C�-��o�ڷ��fop�m}P�]]��;�Nrk�~�����-��*x��5x[�w�@�;���M�4V�;A
ݓ�Lu%١
I���2Z{| �*
�=
�~st�Q�t���
���U]x��ΰ�mw�U�o
�ͭ
+i�m	i�o��)���C
�C?��€�1
fNKh�(h?/�2*�I��[�tԝ�F6�\DiKu�lI�#�e�Y���=��FuR�im��bGt�U�d5g�
v��*gTD���#�"�	�G�'�F�"K#��k"?J������A0M�@�i
B�Sp�Uh��t�����dX��L�Ғ>_�Y��ؗ�ڝ
�W�(5ܞ�dZ�nQ�cU!-�[j�!���.z��5�{
�%-d��p��_�jI��:��P
�w1 ���d_���h�
��wW�еL*���D�:臕f��J>�Y)�h��ץ��(��Sc
+�e&Ir�2��j}��S_l_W�-�����
T�C�|�)�<i�(W�D�;�
dn
��P��=�wp3��+)�#��N��X�1:�ǣ4���؝�Nߡ�gVe��7��0(Wę������fZ'�q����Չ��[�y�:AvB�P�pR���%�Lx$ʔ
;fʾ3e at b�� 
�gx��q�R"tg�3�V at G�U���;{T�r���iU��17eO+SFN_�%5.�H4+JO�T���(�v���������Z2#e�cZr�H��9K���,y�[�<eB(OR��ɾD!�D��sgW�|*�7�
Uk���h�*[�s��Z�v�mR�ho,X��6/\�8'ƨ0;�L��[�e)m�3UvYk��|Ez� 5��19�(Qqy�,��F��6.LLaR���û�W2�CBW��
�߮8{
\MA
�l���m+R7ϧ�-"��V�C��*�Q~A�iN^��27�:#'�V�]�M]Y>3I�]���'��:&�ͺ(�f��^�zL�d�/�.<�s���?��=
�|����
Ƹ��Ľ�3bf0F�Q�PI��.���
])��)��B[(%]�ە��n�v��Dm��v
�T[�UJ���:�꼴����5��|����{�y� �L�2��,�9��l#(�J�@��r�=��,�u�!�SM�ӣ�W��/I[`������I�
R�
bW�8�[�]9'y���j��s�ɭ�IO\g&
�D'g���|�����
�I������PQ��
��<'*;o$�.g�n�� A҆0�e��f�YsD���Y�g.��e����n
7'];<zm�"*�L5=��9"�Kx�5��5��[�T��L%ʡ:�3a9�E<'q��9��&���5x�>�XBV��J/��)�y+��n�d��)��˼h������Yh=w�2٬
)vQ�,y�v��i�%�)Y��aY���YW�C���o�a�d�b���τd����`����Π�� 6��Af�Ҋ�`u�
��؋M,��h����S�b�E	�n���U/�*H��,X%��%�.ls>���ab�Aǐ�SN�����7=p
��w
+�%�!9�kųx��)-v����bE8{�
��`u��,���=
+*�̃�/��Ŗ�Ŕ�	f�L7��=[�+�"|W�h�W+�Bw�K'�������
,:�������}�mD
��s���s���^R�
�(��shR��X\)���wPC�T�ffU�*'�E
L;mV1�$�b�ل��-�����m�W�C�_^!
S~\�[~	uI}�����������q-v�
P��߻`G)@N9@ΡK� �հSk
+�km �N3�<��:fjm0orm������ڹ��5�5K��֤��Uk�|��YxW�����W�E���NѨ���Q�?�<D��:�{P��_��_a~�~��C8�
���8��,~� �֋ �^�
n0���
+n��7Ld��c�u�bu}��
������F#�����5v��`��o7֜~a�v��	"Df�
/ 8���`~v��kO�Xt`n=�:σ�F�h
�
��;�i���@ʻ)��j��=��0
M���e��y���y��Ks��������;tGO��LO����t��#�'G0�o�|m@
+�=�@
fG|r��G<��a�5Spo����ܮk@}�\[��u��"A�C9�XD9�XE9����E���C��/gPm{�1m����i%�P�_��9��z
 �`�w���!? ����:.���]�ۅ��K��_`��
+�
����d�@��p�t���`u/��r)Qw	ey�����2�;e���2���N����4�_r`�y̿|��`�
 � ��4�
��	X��`X�
�z��E�
�?� �g�`�l<�<���Bb�b�L�W�@�W�}u�݈~�����c~�q���6D���
`t��6����������Lދ��
?p`�A��@�x�

�@���!Y��N��d���209��a�ӱ��V �[ j�v�lI7�� �� ƄC�1�<�3�<1��
qH�ܑ
+B_
��
|ozr�3�^A��k���DC+_��C(b9�&�41[Ba
+�B�h;ڍ��JT��F�ѷ�t�� ����~� �gF�Wf���
���4��^���M�x��p�X��D��&�d��rQ!ډ��~tբ�G�9惨��2��{�+�S��x�~*&L����zĄ7q�(��9w���.q
E� �&�&v�hbO�r���mf>Jw0�%��w�rf at Rɼ�
e�%ǘג3L���y)��<�v2O������C�ݗ��?�ET6@\$��+^�Z�FR�ُ"ʉ4q�A����Df@��y�e2��\��+d^r��
��}��g�rG�^����N�����G����v�{��[�v9��MN���	��_W�ֈ�(Y��k�t@�#q?4�w�it��
���B�jӫLc�(��#e>�P���@��w_��wOq�ץ��u*N�:���ڕ�yw��[�
�6�~���_U�%1��/�;�{�x��b �؅�>�����K=�
�������c���.�Ul�&�׮����V�sǭX�[��-u��Mu�^����u�Y~��%�U����4��� [...]
+`�T�Ri����y�Fx�s�.�q|��
r��۵����y����yo��띭}�w8�>�9�|nr�ol������ʖҵ-ˤe�=�UΧ䋜o)�
�����`������"�&�#��3��<#���“���QZ2��\���b$���D������+	m�k	ݾK�v��x�r�~�Kq���f(���/�]���p6��Q���4���3�`	(;�
e� ��
/r��
*<�EŸy�û�q�[�L�jfa9���
+W�})����j&-�Z��)=�����g�GN%

<�4I�K:
4�t!x&i5�X�Ð�䧡G��H��\ȑ5)X�KX�7`\w�r���>x�>	���]��.����K�<�
��^�9e>gx:��,����f�ٌ���
�M�`����tW�D�L�+�
�p��`����_����+����ǐ�5����|
���U���"wxP�
w�`EĄ+�͸EQ"�\!��dA�ל��8#P���
��܆���V�
k��=!㼽a�y�4g�T�h֩ȑ��tG�]��� �;z6�&��
+,
}�sQ�D���%��I���V%~pYJ��F�ii
~N�u?V,��'����Z������Bs�S`	�9�����}yt{�\T_�b��޼�1z��Dw�5Q]���_Z��|#x�~s�Kn)�$�U9	�48U��*��婄��\�C�"⁒R��X�?"����ZB�
����=��zO�ᨮ�Fg�yfG�*˒�V{�3f{�O��BlM�z�
4�e��ε�F�O��
�>pZ
�`J��U�D/�y:�Ľr	y��̿_�
�#�
���C{�-4k�-�C<L��ƣ�D���YV���,��m���e*Ƙc���A
�@p�/U�ޫ8[�	�Z*L����nƍW&�*2<
j�πJL�+�Sz��rCpgiC�����&�l�D�����IV��4�N�c��S+}���U+Ř�`������*ʿ�G�� p�� �� p0n�
nL��mX��a��z�4E��
+�S�
+��tA�*chsY3ͤ�lPأ��1F��(� ?��_���ߏ�ɿ��R���R`,���?�>F����(��^Խfjpp���Q0f|
7\���^��a3d{wU���ҕ��i�M
դ�	��0ь�]���}Q���N�bW���T�.ŪU����V�^�+�1�\��"��h
������:��еg=Փ�����p���>��j���
+�-�b�� �oЫ��*CH����׵Gh��(M����<�Rifc����
+�;��JͿ�J
�ZS���/}���t�ZE3��rϠ�7���.��g&��)
��7����x�9��n�z67�M�E�:�������
+��ԅijZ#ʫ��e�!�B�U�����c%���g��{��
+cɪ0�zO� �2���F�Z �� ������`�mg��}��-��Ԛ��В�cl. �$��,�Ҥ
V7ֆ�54��뭑���hI�f��[d\�)2�D>A�c�j1������:�� �Q� Lt ���wxBOg tZ�f݈k���Vߙ�^�������b��]�j�P��!�SXIsG���N/l���7O3��y��|�-0?a	L�YB�6b��>@�p��-3�(��.�����
7��R��F�����vs�նD��7ó������2?YWy�Īw6�vXhŽ������]��ٖ�
�e�ɳ<fd���nâ_�'t
��
Σ�ϡ��6 g�]H�
�<@��A�
m����8�`�[�`��r �K�_�#闐��2J�
m���.�������Ƴ�DdڎFrm���o#���=_�ӻ��wa�r��Z��V4��h� à �!�ƽ�{���n,4N&�;7��mx�3�P2��!x��}��r߼�_�H���f*��
��p��
�’�O�����h���h�?�'�c��6:�
h��P�� ���Q��� �q��CP
�@�H��~Ů7pE��r]�AQ�g
��� [...]
+m1�hfZ<�f	�4K8�j�eɖ)B�e�8�2WkI�N*Zd]�\Y�N^�EZ��zB�A���jr�.x���}�5A��~�J�(?w�j�6� �󁥅�ԋ�)RJ%�\�Ab�+ʽW
�X����,ښ���YB�u�(̺@
b]&	���Z7��w��[�l�[��~�s6~e��q�C�q%\�{�WGh��(?#��ƾ������#���@j%W��+^�CX�h���`Bm�k��M@`�4��a�u�_�"�[����S��~�hl�>ј�J�g��g]�ȳfP�Q�%���L���^`�}�a`a��Q ��PD�
0�÷Q	�)
��Fal�7��Ls:����q&�3s�ޜ��0�e
\[���%��%���I8��ù�	s>��p�ٴ���i���
+�]ʞQK�
@�	�?���I�oU���W�p����㠻6�DC{=�7f��f:47�Bs��P��	u�~�ڪ`�v��?��� lo>m�nV� ����G�A�	'��&���:�n��1�ߒBӡ��C
U�
��(�|�����
YO"$=3!�Q�2��
@�ׄBz��=H����f���X�
0��I��
F��)��_��u at wP�lP
( PC2��h��M��?	��tB�"��� 
�A
+������kS�R�s�Ӛ�Es�@�a�=�2`�8����Ȩl�3�q}��JC
��Hb >$�L$)�^��>�8������qZt^�w
K��-��u����D��'3��Ÿ2�q����'��v�A���Bp�aRN�H^ɛ�B~
C�
���X��H��P��C���n��n��DO���Z��u	T�
�5�2�^H����F���"�$��W�셺�=W�3u
�����G�n<P��W�Y�
g����k����J�H�܉�����g�sw��q�2����m`/t_�g��lH���j�؀6��k��m1{��`�5���F���
+��u�u��݁��\���?m�p/�#��8�{Q
ciMƘ�&3Փ
>j6{�ΆF.f�#W�'���~#{�����;��
֫�e=�֥?�:��C��ןd�����Nvå_��
VW.�D.�r�a����h+i���	���8������Jc�=�a}

X�a�2�b
���ak7lcwݿfwܳ�m�<v���nJ�5C�p���j�(���Z<��N{r�)O.i������Q��
�IC�فмy�ɄG�Q�����9�o:k�Y�n�,g׌k�e�B��K�q�p޸[�Oc�謱@�l<,:m�5�č�f�I���߇�:�W�_ns�g�|���D�AJ�Px8�ሡ���
1�#8mAq�
����wع�B�i�pƴR�dZ+j
�L|2`��D�N��{$
{��E�ڀRiM�1��FY�����jz�(3qe�ώ
Ãm)_
+
%�#m����E9�=�
�#��BdZ"��S�ى��BC�BQ}��ĵa�T���

�(�.t��ې]6�!Y�|yy�!EiH��$�AY
rIy0�۶(�0�NPW�{����
�I�'��Ij\�脳1�h�
���	�66M8���I�+'.��G�^V�'������M�C�mʃ�
[�9WUh.RD����k���-v{�?j������7$�
<�Q>ЗH=_2p5Y��Ir4'jqb�j�Q�<�UL�*�%�'�'9��@f��Ȧ0n�� n�2?�ۼ�/T{cv���dj�b��3c��{b��1�t������aG,w��l���x0� �O�~�
�g�4�J�C�
�SG����(�
��&	�ii��)s��S߷�;e�<'y�2k�JUf�Z����Cu�5}�q��K�o�\��
��Z������H!� @‘�+�����9��T]ī��u�{�����t��
����m׵���ٱ�?>3o��7��>���x�D�xG��#���G��퍼��y��
�1�3�K~{Է�o�f��Æ�_���$��T����T.n���T�wR7�\�v�4�3�g7���p$I�4���2��w�7y
�Y<���=�
���Aߎ��~m1��[b~(h��-h��Hh��\���`����%l�i<��?"ﻝA��tW�ΰ)�8��3�A�q�^�a��QY��pZ�Ӏ4ۥW�s�N)��L��jK��$��4%��Y���g [...]
+�K�<׭E��hJ3y5�YxS}k�]|�tDP%�VH�Ef�u�I�c�Q��ؘ�o�1�}�������c%���殺��9��Us0��c��lƐfӧ�ve�ٷ���͙.�J�[}F�G]z��%��W����Pt���!A�|BT*�˗$�� ��S�^�X�`E�а��t��P�7)�r>0O����c�
�m at o�6�S�m�9`ߨIv��V8ת�\����+U�r��g̬�-�l�/V�ʣ�B�Y�N�����xB�K��dń���3��_�
ܣگ逋���"`�~Ǹ�
CB��GGAӢ�ñ�G���%8XrӜ+����
wcN�g���3d��e7�
�}�|�aQ���$G}%@�~H���J�Q�bB���'R����y�"e���s�8B�a�+z�|tٰ֠�i����E�U�9�H��.%:��!_�Y�W�˫���m�ks{�H�=%Qi/dj� �)�Բb��-�����in �({�H�WF�G��'������5ԗ25e;8��a\sI�}iq� [...]
+���~VA� �`T��;!V�.J亻r�'�?$
+
K߱������!��u=�"�!�<J
й�d�&�7����|#*ʷ1��Pn�9�^oJt,0ɜ�*WmY�Gv��+���S�
�K/i���O���
���������ER=��K>�{�Ks�H�_[p��"�$�bP[�*���(�	b
�ݜB�~���xmu�Sv��%�2�MYY�^a�������S̃�$�0��(��8��q��KQ��[Q��&���'�]��%3����Z�Z:W
tCY�?�֠Ⱥ��Ywr��pnvC�}V}���^�8�v�
�w�֕z&�V�k�}�j��15�,�(�-a��W¨�/�U�	V]������u���T��z�>+�C4��-�(l�A~�*h�7#�};�j�d�Eqm��im2Gi��9�%�5���
�\�y���
��볿�_x�,?��:_�/�a���a
��ճ���`��>G�Sʹ
-�]��=m�]]@^7�^/d���ٿ
��A���0�����Xnb��>�/�!�W��[��cv
�����幷������%ޮ��B:��B:������㦉f�z~���t�.tV�.���=�Q7���!
[���@$�oG�x(3
͉
O�F���"Ʋ����
���9�
�u�5��ct�m��i�m#�
�#?r>����o<�Y��,�
�Q���}�h�
Pv	e��c@¤b��=%F��:�ފ��]�	gBgb�=3)���
�Ι
����m�U�?�nqxkz�q��	�7�/��ޜ��S��'X��c��@
+v��
��>ʵ���	 sH:D�&�u��9_�[��s�c>oχ`�|�mq��2o�T���h3q6٬܍�~��I����v�l����?ᮝ��n�9�~��W���c�����2	N �g��9� �ឋ@�e.�,x p���
��iq6.a��]x�j�_�Ǻ%�,e��%V/Y�UK��ʥ#L��yFr�6#Y���,��/<爯��1E�#T{'���t�����rcIIC�m׀�7�5�9`�
w����
+�ﮃ�����^��ł_��9�}P�V�

���)x=�χ���_�u����1>F�H}o��M����+@����
lzx�> ���չ�����l�e�
D��((`�W%���	1`A,H��@Dņ�(�<	��C�-�O1D!�ODQDĂ����g�0���;�=�;{���9���F
�9���P�Y��0�s C �Y�ҿ#�DH�N��b:D� �X
+AC��Fr�<�(g3�J��,Z��=�X�=�OZ��8����
`]
h��%�+"�6�!�j��&;��@�:5�ͣ�1� n�@h�m���
+}k7��j����GK(��]�4��8Zw }��0�`W�. ��e@~5��Gn���+��j�M
��	���:���k�Rs��G��?�:���=�@ON}�Do��G� �=�b{���� }
��`��]$7��b���u)��b�ѽ5t?+����� ��f�
5���(F? ���C��?b�>`�h�Uŗ`R�wŮ`0��o�4�H�%$��"�H>)�k�
��x�Cx�jt���h���(m����0k0���Q�����L��ɼ�L�Dc����O�WI%K�r��W��߀�|��Ex���N�
���������y��n���@߅�B�V���
��5��ջ<��RM�)O��H�D�ɿ#3�Z>
]�x)[��,<����:t�6ᑬ
��t7�J+�&�B��
Z�7pC���]h2ehT�sE������9塡|(��T������7��T��j
+:U3�P���Ÿ��@��7�Q�M��Ven)w�r��{q]yM��WՌ�C�k�p^øZsƝ{��=fK�m�`����f��9/��c� <��B��w����m"nh��6
M�ehԮ��Z\�n�%�6\Ԗ�^�,���4j��p��W�Ew�
�����ϰ~f`}�`v�`�*�j�
�|���vC���u!�����^���+
��9��[�Z��貸����i�z�;���U۔q�m��ٜ�z_�۶�l_*m�`_&�ۇ	+>��)���Q�Dy
P��+K����z?'\��z�?��#q�n����U���듸c��>�;����s�C�
��V�}��ҮB���ܾUXf�LX��D%L��3l �w���`
φ��1H�6G�[���g�\q��ǜ�q�y,w�y"��y_���s��W8-�q��;-�v\#,s��:�J�v�v:
;�9�:w�lqf���L����m|�N:�h{u�
�A��!�8�b��nq�m*���
+����[��u_���e�p�K��ؐ**2,m7�֛l1l5)0�.�7TJ6��
W��\:dk\^�V�2Y�g�`��(v���F�#9�
.�	%
�}#�c�w����JFs��c����S�[�ŋ6�-��X ��f��%Y�Z��=_�ڽX�����
U�9

��
���֥�
���t�'�+m�����Z#PM���88�>�(��c��E���V� ~�O8�qT� o�DѺ���k�6���+Y�"��ʐ-�ʑg{�fzmS,��m���ae��ye��
�/�/���L�:��}�
?>4sЬD}>͟��P�o����
;�`k�@�xry�����`A�1Z����ѓ�٣�L2�����e�i�t�,E���T�-��R�B���g��}[��~������=���h��(�1:��ӑ����� ���(����X2��

���d�
3lj2�|/N�&I
�I��?W��b�и�l�q�r�1_5׸S3�X��e<e���<���&����R}p���˴�S��h`o
�[t�ơ \���
X
a�d�{q�¿�

��F���/
+�$Y
'MN�'-P�	J7���Jܠ���<>�����j���f��<.�i�S��G�Cp"
+80(�ٯ��[�u^����ȉ�̘AȈ��Ң}��Q������XqR���9�Ӥ���'��S�
�E���
]��
��|j�
�)�ǻMk"�-&�1s��T�?p�jPEq����췍��Ҽ3N��Z,��ҿqBj�;�(v�<. at 0wl�pvL�8!f����)���xy\�
���ԨL��ȵ�"
��uyGEu�q�wgfd`����.誈�i*e�60�
U�RUZb�2�X�YK�(n�Q at M\)GO�-�h��k��n�Q���
�9��9��9s��{��}������b�<�31�=uO\u]�D��1�D�[~:s[<ס�='ˍ�y����
��kP�0e	�P�0I(��H��Ҝ�y2s��&3.N�
��#56Ci��uXS�h��vN�ޠ�G���Gp��>�36�o��_k�E
Q����Y�|��7��jd�Y�c
�?4�b���I�Q�4�I�\�t�l�-�4���
6)�1��D�")!�ΐ�c��/T��+�b�����۵
�\���z��/�N���Fŋ�~�>��\�3��T`'ٔ��uy�%&G,5�E^�rR�!+e��a򗤚����a6I�Ѷ�E	
+����$�}L�R�¤r'��V
aܦ	7�w	3
wY`�����%��Rf5�Q���|'��&`_��ԥ���<JҀ�t�f�9c(23=��9Y0e�J�2�J
�e��(۸�xyLZr��i������+
��u��bQ���ӆ�|�
N�Nl��
1�Ԅ�Duh�;��Zle�鵚����.f��I?�9YJ,6k��=��QX��%rf��ْ��itv�MTv�m�٨7����ʵ�*U/^��x����=�̣�9�ߐ{���_��: ]t~�Y����]��%�9@!��yF�
�%�H���w�
�#v��]�/�I#
+�da��6���KRAKr�������P5+w�����/���on���w�/�~9���;N1���\��,�k� +x\BҖI��U�+��ҡ�*�@d�d!��G�_ 	-�'
.��K�mJ�mg�d)�����W)�/��0�h�ʻ�09��.���^�\�T�fz�o�r
63��e��B�RL���/c߱��P"�R�U1�j$B�' ��[��)TIfW�KfV�H���2��L����i��)���&W�TzU
"g�^�?)�V���Z!�{-�����w}u��
<,�3�[_
D�=
+]c��'��Ŝ�a�U灙u��W���9��u��u:ɴ�ɔ�T��\����6�kkl=k����4�=j�"��
k�)<V�
+�U��x�A��J��
+�GRR�
НLwL
{����M��V{�ت����VOL�L�$��,��h	�[bO�"��b���IFYVIGZ,��&���̭���m�S����6n�����طӻ�mX��k���2��-�\��>;�I
2�ۭ���^�8cGbt�8��Nş��i
�kܭz
��a�5_b�[7
��W`=.�Z�
+���׆��]��4T[�]Mo�:����`+���@�.��
+L�
��p? ��f'
i�A̓0��
8�	׃S����

+�{�t�{Ȁ>-f�n)Eϖ:��4@�r��o�9t���
��X�r
0��y	��T�
��O�&`�R���3`�Q��19��*hZ]�nu�s�p2Nm����
U{0��C{2�O�Ay�
+v��P�7A��%����P��J^u��qW��}@w&cN��7s�G���80�
�u
+p>-�����*��ka{�l����(H/xAr��A$
�up�up�}�DwP��A;���6yD�t���3��=��S��-��i�w8��O.�ձ���]���#���Z�r_��`��HD��)PY
^�K�:_��K��F����n� ��)k��p��9�}�5���O
�=
�G��;�� �������pKŦ@
�؋��+p�
���By:��x�y<�K����I�d�;�B�$g��c�M|�
� ���W����
��"sO��^��-�/r����#�m�P�AaN
k���ɳ!��1�
�/Y$��^�������b�]LzWs7�� ����0"��D�KBI
I&Y����
Ux�5x��x�-���

�{�?|���3<E��<
�:q����>��DM?��} :[�K��WO2�
1�
�F.~EG+��#<C-]��c젫��O�j��ǘ�3�7�0uw������͑n�ѥ7硅��m
���!ʦ0/����3�n�4�Y��J�dL��ZG�f���vѵ��f�}7���"��
��ٹ�(.KD|��;����	���L�yTSgƟ{��$$7n�#V��j�FzX�l��$&� 	�@v������(n��R���(.�Եxlq���L;��T����tZ���y�O��w�{�?��=������#����r
+�O4~���%���<��J�LR���j|%��cI=
r
�ׂ�&|���\��
�]�8�p��%���'�.�W.+\���E��0TI��� C��Q�m at 0����x|ͧ�	��G|>�ɗ�K���
q�_���p�o�-~#n���
�T]��:�˪^�n�b���
��
+8K�!N��>�C�������<O}'��i�Ǡd�
��[�
��[�k���;���ϯ����E�f\�	��w���N�
rg��ũ!�p�/��3���94L`��
�"�"}*/�����@%�S
�������pk���6\�KÍ�8†�N�Q���p:�
+�jp2`9N�ű���	��
��

y��
y�9��t>`:G}�v���m��(/��cH?��5��'��Ip?P�;���2z4.����c��:	'�i8���ڍ���VW0��.�bf�z�W��t�[���=h/����
+���
��n{�h˸_E��	���zy����ɓ�Tb5���
�O��7�?�O����EOH�hq`�t�
�Dg���)`�Cʘ�!��]����Zv{�*vkp�hs�Ѧ�ŭ!��CΉׇ�7O�Z�4�gI�{��Y��*w�}?
�A�/�z�Pg&��2�S��:
�Qh
M��P3�}���:5��<���@S�n�T�6h�Z4u�u�q��UҠ�%Y���VkNq+5W��S�H�O�QZ*H�yY��ITꩤމ&�8��biޡ'�H�
��}�1
+�"'b{d86Gj�i`6D�3-vv]��m
/�
�%^
^%^�DR��[
��-
�&�
�+[v\^�'_�H� �{B�WG�7�&��3ҿ|�� �)�-F{� l��M��16ͱ�h�Ib�Ƥ2���l}�C�<�@�,�L\5G�$jW3�N�pZ��z�fyմ�yQG}*�.*�D=P̎�NQ-�x���yO
|JO�i�:D'�m���xZ�ѬS�Q7�u��O�g�
��x
�$>[T�u�j���Z��*���W+��F^���kS��
RΌ�U�i��gh�U�j�P��
��y�j9n��/L��]�n���s�!I���!X�2�)!�K	CmJ,S���,HNe�'e��%9ĕ��ىeܬ�Jiyb��L�R^�[�(��T�����Ļ���|~����$A�&�
\��9 �4{���I�F�� Ǫ�Xn
�Z㻨1�b�1��2�������h�![\npI��%\��BZ�_ +�/���7+�)ەN}��?����&���zAI(^s?�dN�~7�_m���S���J��< ��ñ �
T�MAeZ$Sa�2
s
+[�jfKS����\q����7�K]�*�Ӵ�'�Ԥ�1n���}�,�)�F?��?����2	J/�W��<�h��H�]���S۳��5i�禋P������1�3߃'#
e1LIF"[�nd
�3D��
�Ӓ/ɵ�Is,sevK�O��AaM��g�u��-�K�\'�Q�
�n��4A��۴���
����؁&�W��)��6
s��`V�ۘ��ҬPeE1�Y	��f`�l�Ö-��\�l[)g�ΑeZ��[�(Ҭ�xs�
U����d���d��ʔ�3��)�B�����u����̙K
P\K��|�gv��9~(u�D�c<
+r5p�F2y-�p��v�Y�尉�9y���bΒS!3�,���F{��`���ۏ�R엉�*��'^�-(_a�r�<?E�>袙�h!��kS.s(��N9�]Q��;y�I�q�#�
���Il��Ħ�3Ein�8�U(1�<R��Z��\��ܠHt�)uΣ|������Q����\A�����8��/��H4K�i�s�>}�
+$p�Gn�?��c�Uk���(�b,%	�����J,���v���-I..����	Eu������݊��#ʘ�O��ʘ����A��'�GHo���t�E�,���9g0����
���@X<�a�h`�D���2O
+��1�I
�H�q���K%q�\L�Ri���.�(�+��لaf���aQA��
׺<�T�5ڨE��A�	���EE�qA&.TD0j]S4�Vm�X�Zc4DM��'�>��3��}�9���ݓT�84ɬ�O�OZ�qI�P�/y��_,*��ʷ�8�
�o{P���z�N�����-gߑ���n���������1�>
c��	�ӧ#�%	i�J��-����,�K�RĦ�w�I�p�^��4;D������!:�g����k�{�R��e܋$�$ӻ0��
+Lg�6)C���8cl�7FgaTV?��
���x
�
�������B\�,Il�|�ଥҨ�ղ�Ye�Y�������&rM��"<�'"*�W�B
[��+X�IYIoR��٢M^��s=�����\w���D\�
C��5�`�0D�"�8�3�ƹB�q�fL��7�J��HC�vKC�viH�#iȆe!���Ԧ�.e�.��I
+�^�	̦{��~F`8[֘B99c@�"�u�(AxI$
%��_2
�J�F_�T��f!ش zS��۴N�e*Kv
+��PrQ�?
+_H
+���\
la
��d�5i
�!݉tO������R r+Z��JW��ޕ��eE�9��X��	0���e�,s�ò�������b��� ��3К�B[�m�(xuQ�!�b�#I��Y��}X La[8�
�� l�� ���
5N����
/���x�F��6�#�n�7�L����Ŗ�-�l�ڶ*�	�joAe}u͏D�t#�#s�*�g���1��6��J����ҿ�<	pnPB��U�N��P6�����t����>2�� �����kgB��C�����fQ��ttR@�Z�|
0�1��O'0��6 z?�� �
��'��Q@�86�!=��Õx-~�	�0h兠��V>��x�ڸ��\[
9��/��G��0�+��"�<��5`�#��H�a ����8���� �i��A�u#��y�㼖➼
��Ŝ����G;/"WX��_�B_-'{��9�ȍN2��I�{��F�(�;�޾���^�S��@y�\���|N� ���u'^�5�Mw6'݁�t�$�jV��;� ����.
�=
�{\��\��
��r����y��
�=��f��
+0^-�z���~I8m|E�&��w�͜<P]�G��c��;=�=����>��>�����ɤ���Dt�ح;D���M"�P2�$�ydI�O��K��
�����
ex�J<E��ߢ��'x��x��x����7w�3�Q�
Q�	Q��;��@b C�2���ӹ���t�q�L<�z<����Ltm��B�.����z��8Sv���'n��79��
�F�Btq��v��p�(�\�GBHI�{��-c�G�"���>Vғ�;؀��DW!-�tU�U�񭸆�2Gq��?�����"G�@ο����\�!����/�"��o™�8�9��i�ͦ�=z�Г�Q3p
k�Mrpq��UF���jF�g�
�ъS��m
�$3�‘O"�%�C�pb.đh8����!x ����ܒN�uY"����o���$[�
�T����Y�:����S�f����*/G�|�6�Eр&E
�:���=؝~@�JD���d� j�|�<\5x���]�7�\u�K�18��
Ψ��)�<���G�z��i8�^�&͇8�و#�"
֔��َF����8�|\ڱ��ln/`uQ�.b��>���ؐ<޷=��||���E�>8�6���p�c<�yL�a�ٰ{�
��P�
=�q@����
ا�{�&ؼ*`���n�:T{7a��ET�܁ŧ���P�Ey"�r��]���Y�t.�:ଗ+Z|p�G�{���(��M�^�D��ޅ��=��/F�2v����lT��b{@,e�
�By�
a��P�;+�~#���	�A�PD
+�@
d�!�XjY�?e�=���)P�� ��ƞ>Q�gv�ǡJ?�������
+���`�>e�
�T�N�X�I(ћ��`�Pl67H�CNI6�ܒC�HrCEIίx̲\fimc�?���p��}
a������2��l�E�a$��&�4lL�Y(6�C��OB�a��o�/���}���\��)A55�J
��.�{�]8����.�.�]n
r[�ۊ(���%��*X���ԱmSӦi3�δ�v�!m�Ӵ�t2M3M��il�/2f���9�����ߞ>f&m��J�`O��fO�-�'�_��Ʌ��ɍ��ˍ��
��"�ܱ���j�}6p/�{��V
p��\��q��z��܊5)��h�F��+"	ӚjLj��IMs"����fÙ!v43�gNsC��ܠ�"�\�4w�Y�S�e}���~@D���PC�
��� ܦ���+��;t/���m"�h��Uc*7'sM�έdF�NfX�a���젶�
i{�~�0ק=��hg�n�K�.�UEg����_	�	�y����y�����B��rp���
e�C��m��nN�S�gcD�ǐނA}�ۘ~������#� ۥ�悺�\�n�oӝQ���	~�+B�Y_٤�+�Ш�>B����I�N1�@��QD���,��6�0aL@ش
æ�4g"d�G�ٌ
��t�*����t�<l���m5vr~c?�l
S4#B��E�k���7���~A|��3�GYg�*=��1���a�V���4�(�P��g�|�(�1Z�c���$�ך�#V-�V:�V��"1��i���&K�hi�|�^��pD�)�ܖ��rYUc�E�
��E����*����ߘ�7���t�Y.�
�,B~&��E
�ǡO܄nq':�T��d! ��"�I,a�J�+:�z�����[��k�c
+�xJp�s�jqYeo��ğ�T����sT��M�
+�ܧ9�:�ި��@W�Y��L��1��Q��[�`��K��R�,e�QʃO2�^*b�r�%��Z��uJ͜C
+���QE�4!�Ҭ�B��*��#Io"�I�Qey�C�U�Q����j������y9F�z�K�"��	h���Q~^Y
�|n�0je
���lc�ek�9Y��+�E�<.��g����(� ތ)��#ʟ��ʨr��ʨ��Ϩ��H��Xt�<�S�O?����M at Su<�՛��˞�G6

�
�9J�!3�����c��m\����aE���`����د�
+�?&�#>UVG��5�U~B��$��Zʜ5���!��M^Z�{����&��Mp��ݵ6W&dw
*�&����]���
��g�]����
]�
+�+"�\�F�5��uWep��2��Ci��Ji��
+���z�E{R
p���qb����S#�u���Eu�S��nC�w�}j����w�ςb_c�٘B��5��Y���3��x�wZ��.	���
+��וy�w�������y�_s�j�J`��&F�
�O�y]���7�Gi�f�-�P�O�՟��
+f�"��1j���=��d���\��?�_T䴼��n��"��[���n~��i�~�-��J#0GL��Q;���;Z�� P�����Ž�0wn�)���
j��2@�eE~W9�
�����t��Y�V��2�s܁�wyu�6�
�5�������W�Gyu�7H��������JxZ)st�~P at 1�л����oA^�nhRqp@��P>�Cfd�J�	U!#�:�¤�z���q65�<�o`�M�>q�M���M���K�r)=k�Ju.�Ӟ�F�� �D�5�-��ʞ[��
+d��!st#2ƶ���
���c8ia=R�|+,a_؉�p���H�0�ç�]�
���M&)|�I��I�7�4
e��ָLZ��q��h�
�����c�q�=dL ��O ej=�N'��$$O�`���fb�I�"���
q��H+�FB���3�sH�\��3oF���H��2���8O1p���#�Mύ!Z�-�v�8�7	dRLL=�e��\,��'`��f<����
)H\8���شh���lX���|s��/�#~q�xq�o n�=<9�)��
 ���C�h_$��u������h
+П�fIH^��6]�p)��	D"�\ށ�����X�"vŌu+�X�E�J ʕA���|��-p�~I| ��gė�P�G�@��p�S�%gi�9����i�%ҿL�/��וP����1M���}�S��QQB_C�RJ�SN�����h������HER
!�|�dB�2�9>��eȲZfǚ��5�5�0��ż�mw�\]����������繟�њ@ҚC���eS�eS�E؈�x��x ��u�`
E�
D�994|Cݬ`����@
c�\	�0^_����o�
��!��(`���$'
���N�Rp�>�ٜ6�9m��V
��<Z��[9ɭ
�u;�
��yr����)�����ɘ��+ƫf����0j�RӢ	P6�����76�
+�
}�����@��R;�Nl��_���lL:X;��:8�

���u
'��F7yۀ��܋��o u��Q�`��=
�PS��y�����
+�*_��6���X�A��E����l�����<�������s��Dw�'
��L7�;� ��0�x��0�ZSלV�/R��"���ȭ
�N�'w97?��=�G3�s��Ǽ��BOٌ<�����݋*�%�_꺑���aуBF�qd�$�$o�����+�%��9V���)6�	*�5�����	Gp-�'.�
���o��
���
��Y]>�
C��+"�/�����N�y�Y�G(��2ꬢ�:�l�Χ���q�����&��9��[�<`_�G���z��)s��	1'�#�`u����Q/�Z)�ʤN�`u��SJ���Y���1��k����s�4r����.��f����
���~/Ȣ!��ӝ�7���:W�G�P3�ٌ�V"u�C����.�b�,���l�N%�3_�gp��q�oZ躙Y<��8I�� +� �᧾d���
��J�Q�ϟ��0��Ԋ�hI�>��K�\�P����\͜���E��140M\�ts
:���k4�2J�C斒��e.��F��`��
�J.�$�A�"gѦ��V�84�%�^:��e�^.���R
�/�N�Z�*
4؉z�z��u
u��a��w�c�3v�E����=� 2����,wwȍ>��6��^�X�㴱;�M��I(M"pX�2
ʏqP��ze6>W�N����bO�r����۱�t?��6�3�/QmvU揱���-�xN����,+?
bIa��J.��l?=��*q�|��
]?o
���쵘�ݖѨ�����)�n���y�f����Q�%*�W`�U56Y����Q1�
�^G���Xm����n�zxj�3�%�G�yg�{G�����Fhh�:�!�m3;m}Pc�j��Qe��v��l��Mv��`7v9Xg�k�a�}9V�oE�{�X�^�nA��+�'C�
%��bY(z�Կ���=�}�
bi���}z�5�
56�t�3�8zc��?*
ð�1�ӱ��#�9��J�YXR�<,u*B�S�P<l��dX�P8�^(�$,�'!������J�u��YЅ�,t�`����GH�7PK/��W���\��~��]ݱ��+\�P�����Q��!����-�n�(p�/,t+��J�\�uB��ja��:1{��\�
b�{����B��!��x�_P���������
�>ۓ�
C�������%��(��C�g(
+<'b�g$�<c�뙈
�Ta�W���'dy��^k�
�Jq��
q��)����:���2���w�N���o
� ���/y̔3'+G`�3����NX4�y*,Pb�J�l�$�UE!S�
U���Jf�r�4�1EU&&�6KI>��L�CR��i��mE��/R����.�����
a�����ǜ|�+��W��㬰@=�ծ��
�L�?2ԡHWO�,�T��c��N��iB�:[H�+����~���vH��ZE��N����һ\b�͡\�l{�����Jza���|�7���[ +�
Θ
�� _�!90
I�����B|��B\`��/�.�>
\/E�(�
TL
:��
��<&�J�A�ig�����V�2�9��Rz)d>rIv�!��cv�
RC��
⎙!c1#�	!a�
��ؐHĄ�
+ѡIBTh�0=4W�
-�������mSL
+�'-���kza�����R��Y�A#[�]d�����K��3��f��	�H�0�$h\��F�F�hM0�4ᘮ��i��Bdx�0%|�09<G�/�>_#M���2�������73��(�Bj�+�7&���
+"� �0#2
L*�8������y�2�T�2E���$�\�Ct�2_ۮ�f����F��m�o^R����=���|��y�ߔ-���}�����ԋ�RR���-�)>�Ϝ"3�
�*��{�$
��ef�Eim4%��wW^z�
�Q�M�	�	ʶ&�f�P��ndX�V�L#��1�Z���[W����,�2�Z�2���cI��>�&����6j!�<@<�Ms��L�)�.gf��2�˞�U9Y���,[�2m#e�%)ݖ���
�d;���Ӎ��bSR�ה���<&{�ytv�%!�>�ۖ��h��!Y>�q4�M�`,e,x��� �����	9���*#������f�T{�R�c�lO�8�MI�<c��e�q�1
��Q�J��s�c�9�q��8o���2��0���~�(����P�8P
+�0=}���6�Oּ@��uRʤ�JΏԸ�(%��Xg��8�5ڙ�QN�F:���YF�s�i����\o�q�2u
1G;ϙ��4���<t��
�H��|�
y�Zƀ2X �`*˝D���&��<5@�S�k촮]�S�
+�kdA�F�F(ޕ�8W���r뚬W��o
q��]U�(�N� �!8cTp�4h�w�3EM}�~Z�-謄%P3 2�OE����Q)a��F�
R\a���)���b��4�=L��
q���n��'i�{��K��~�5F_�v�����~ψ,�nD���g��j	7�UO�l�����3CW(��%
��L��m�xI
.骨y=5p^
�7D�=���IT_O��x��LSo�
Ex���Y�
�j#ܳN���%
Fx���������	��@!�'�=���o�4��h���k������)���z/Ž�s�@���
�Q
+�&+�kSwo�
��ے�겤R�z_P�w�B�'�BJ�+t�O
+}�g4�	�g�怋�p"�h'2�3�Y��R)�̬�g�Xy�����Ky�
��Th� �TĪs�hu�L�#���X�R��yj_Y����
+�ܣ��7X񱂞������i�̧����
i>�E�,���
���%��e� ��F��+�����am�ڭk��u!��u�
+����j[5Vm8���պʭVU��_�Z-�m�ߺC�[[7䷦A-V��s�y�\�۾HJ��1eRl�4�^kЯB��n��fs
��n����Ԣ:D~�aj^
)K�`���e��ổ�f+]M"�ˁ�샓4(���-��wZ^����;�i��r)	�㞓���nwF��[��
��Z�i&sMk.:��⽏B8�ji�j�pk�xj��u-���H�N~s���p��Rb]���05g9�#��э܆����A�V
+xE�{M\0p���v
Ǝ�4�G�h���
�1.�:�:6z
I�ù:bQG,���
����r/���ֱ�>����[#���>�A��VG%��h����8ٜ��h[�m��ӝi�h��ml҉GccPϡ_ON�It=���.��
�������9_��9�%�t
�z��uR ������g�l��f1�3�] &;Jw�>�%}�
�iB�PWf2�P�WI�U��̫8r��f`�Db���4�05�nt;�xZj�~��y�l�	����ҧp>�H��K�
o�[�ȝ�k�r�f�>�7
vߐ���@a5쇃L�� ���
�B,$B&��'f�����ѿ�H��i5�\��B��u��z}�M���=�ż���tC��:�~����5V����)�@ C(���M�44sћ��
��
4棱XׯuS�Dg-:Xs���E]�>����c}��X�+]`�F>�/
j�h

�
���
��� 
�<t
+��b4�o�񉖑�
+R�
+�*�ߨ�����9��z
����˓���x�6*���&|����ޚX�o�C��1�Hw*>M@'_\h��(Ac�{)�ezO��<��z�߬���M��7tT��~
k���a� ���G)��3͉s �v��0��X\ 穋���cg��h<�����<��S��ot��8DN���*�~�������D��F�4�c���Q�l�/�[~��n(1�����0�dt��Ł�SXy:n�]�W��%�,W-5ZCNv�]zI;�b��f��V�
U[�����f�>��=��l�K
5��9cnE��鄩�����z�j�>� ���^�TPnB�Hȅ�@B.�@!B�-	!"�BAQDT��R�u�κ��εg���z��������vv��n�ݥ]������9o���|��=��y���2|k���1��;n�m���m���W׆p%f.Ō�b�^������p��e�^w�������qb��p��GX�}��qQ,<s�<N >M��B��!���R�}���[�;�q+67�D��ĕ8
.n0���np�̆v����r|'�p"~����b�!
MX‘��8�p�����1��S�l�ӛ�+���,�e��
�
j�w���ѽW6����\ڔ�s�xi����XJ���$+���܂�d'wc.��#��2��-��޺��[�b_�7�7�
�I}���O0��v�G1�
QݟP{WH{���1jm��<OYΤ��d�
K��BF�3���� ׈n
��NLq=����$�{21�9����ؕ5�Ѭe�l{�m�c��}
�~���a ;����_Q�D���H��B`����,��u��m��l.^�`*���*���0���8ߎ1~F���w"��Pn;r�` � ��λ�P�m���
+~�����(�zB���Et�I���2��St�,R�Cہ�5�ΏǤ 9�UP�Q�
#�J

��Ch����B7��>��� �}=���]8���c,Px�u�b���'�k�����&����j~GI���F
�(�}��L�s�1�.�è(	Qv�
0 .E��
!q�bz���]�Bg���Nt��W2���)�Z�����XK�M於C~ʚ%���X�$���|@5敏��)p���S�=e�勔�Ǡd#�$�Jr�#�K*C at Z�� �Ԃv��enx�:�)
�-��f�$s��S�k���4���8?&"�fE�9�O�O5_��{Hc�q2Kc�^�2F9�)_�<Ay��)(�ѡ�]Q�VE9��*�(Mp+�Фt��l���
�;��|��Us�^��l��
��
����cQ���QfU=�
�|�ƌsd�L��3NY�)G��Q�F@�:��,x��p��hR��RW��€�
+

��WzPW�	[� �jƙEs��jN1��Ǩ}�|H�@��1j�O�'
Pݛz�49D&�N�7 at 9z�_�Ц��G�	��t��|4j
��JQ�U�������*;,:7�:?L�>fԏ��
��/1��*Go�6Gg�!�=G���r�O��4�\�Q|�̒�մoѽ =?ei�Ѭ�_�>
�T�x�
+`5��\�@m��j#�5u��iBu�c:�NVe�fZ�q�1^�T�r*L�#N��K�
�T֬`o�+&��&����u��h�<͔���zS<l�-0��`�͇�V��Z
�
+����VTY��Zڠ���aj�~��,�r�%����(�? ��(-�I�)�QVN�Z�/��#d�DH��S�fZ�s�e5��8m�Qmˀ�Ƈ���:	4u*T��PQ_
u�*���.(�C��'�̾�����~�I��O��LZeҺ(+#��h�!sd7$]�C�A]m4���
�
�jH��!��<�
�r�ܩ�ҩ��i��U��
���k ��	V�gb�9&r�J�G~�Dο3�3�čOݰ'ɋd��IirP}ɍN@�ݳ9*w<��d�[2!k�E��R���
J�V��.��>y�(�C�C��
x�I�e��_3��L��V�e�(��
%�d�tS�V�@uʹ��[h�UIѶ
+��X��6��#
�
D
(���v�B�	���/���
�?0���2���x�m�����
���Y�/��
��sd���?q��
� 5������i��ݧg
����&#?�E^���`!�!	rB*d�
�l�nFf���2�SH/!-|
���H	}�������z�+NR�i2Bz���'�6��� @m� ���W�7���Dd��;����<�GDH�Ȑ�DJĄ��$��#i��G�b��"6F��\�yTd��"\�
\�T.j:Z�S:*����
�� �+\���\REG'�r�IsL��:���Fs���q�<z:�� �p��{�����-{�\���-��2��=��3�� ��L�Váh�G�5֢]2�P�ŀY�O~+y8�u��<
+�e*
�{a��
+#�Z�~/c�`��˹h���fɱ�L�52�}�'2|#Ü���LyV-J�!
��w�db����R�,)r��'�?W�X�Xb''��
-&�%PKG�[̲����ZZF��%Y6�
5��'��R�vv̒+4Ļ�x�B���M�J
̐��&�l.@���藢���c��l+
eS�0��
w�/q�ƪx��h�U4�j��:��q�j����>灼����i06��@��0�{��]1���K%���5�e�dX+��aXo/m` ��ƣ�P�;61��2��������@��:X�v��p
��{���KO"ޣ�br�ϯ.��˥�*��4���q�~�d��%dԳ
ճ|�$�$
;�G��؍
�=��g~Iރs{�Ec
�����pnk*>'͓���|�]%5��!���qw4��V
��B�B%}l�N:��P�Bp�$
aI����v
g9��s��~�D�D�$�<Ɂ'���
=�����Q����%_BfjD�d{ =����YpN�'�)|FLN��3��,19�%]`a��
�B.�(}IN�P�Wʤ�8x��
d�8�D�u�:�1>�J�;�돟
�Ч�[
o��
��p���p	���p��������&����t;�1(�����{@}>��n ��p/���p_���b�?��'v�5Q�5M�+[�4[�R�
j��c��r}Ǯ{Gﱷ��EsS{�����^�
��=��9�כ��	
`.�A�F����hC+
�q�����r��C�H_i!e�W�k����2[�E�B� �;���ɳ�t���Uv�
Z���+�~�~v�uG�M���D�]쟀F3��A#�b�Î�Z̙�m
e���|��??�[�#(
F��XI�
���5��h�H��KS?����(4�H�
�И��9h��b4q�R<_�Z��ق���5b�.��@dP��+^�?��jF�
�ؤ���sb�guC�

� |��h4���)ڏ
$/{��;vk.�r�r�k���m���O�qR-Yۤk#�ވ�
��?�;@��_e��.hza}�D�����
Bc�>��
ر��lÎ�ر;ꔏ�<�-�zU�����v5��ZV��J*���T���
�)W�
��x�����+�>hv@��I��y
_b���h4���ICg�V)�B�^��f�U�l���l��F-n~T���Tj{O����Ď���\�봷�
h�����h{��N���C�-���U'���5v�k�}?U�V���0īܐ�e�-5L�bC��
f��a�J
�h��*�w��\��*v:�"��*p~�9.ϔ�bU��n�ܜoG����E��چ�{�[���E���h�s�V�Dh��������_��wTb
���-pM�<�I*v��"�
�j�[���Vj��F�toP��G�6]T��}e�~֟���h�<w{a
m~
-��*�e��AKM&Y<���u��6k�g/{�U�� ��
�<�X����^�땪l�
e��SF� [...]
�)
`���|o��|�j�o��|�5�]7�{M���R��@e�
U�_���%j�_���OS��&�����*%`����q�*9��݆�J
+���4c��i3T���Bl)Ɩ�� '�z(+�_A�J�Ҵ����Gi��498F�G(%8^B�5.$U�!�Jz�@��������E��vZ�þU\؏`}ɩH��L��
E1�c�ll�����wpӔPo��kRXg��u�����Wc�(��%v
�1
��i�FwJW\�<��\���*�����E܄���c�I`
,���b��%
�ұeJ��&w6jB��ƅ��؈0%FDjLD%D���o+."F��
Wl���
��S5,j��F-�;�
+
6oR��Q1ѧ�
��
kP���V
b��
+UPs �Qlz4�>��D�(9�I�Q&�1�S�9Dq�p�jdt/
��a�44z��t���c�-M���h`�yн\�g�̣�:�0��+*"�EP�E�a�eXT7�(
+.ǚ
b���&Z���q_c���5֥�1�x��X�Ҩ�Z�M��D�?	����\�{����������0��t�^���>|߂���3��s��1�TG9y�%��41�W�1~���P�ŌV�1V��$ٍ6es�[���2��͔-�WJ3-W��A��MJ��`�?f���r��1�
6�
�k`T�
�7�8���b�Eq
g���O9�����+����h���`U�9K��q�&�(%a�,���p���F�I�JH�c0'
�+�
�
	�?�:cx#�%S�3�=�|K!1�'tTN��쉽���/[�P�%��5)J)Iq�$[�����d�-��`�.s�\ŧ<+SJ��M���2�Z����
�bS
�����I����	��Q�g[�)#�Si)��Z�d�Q�5D���JH5ʜ���4�Li��K+R�m���9��-Qtz�ƦoԘ�Т��K
�j��0������;1U�e
��
+�����v~�ۘ7m]���Č~2g
V|F��2��-c�Y1YVEg�56�@c�e��h�K�����oPx�v�e�

+��G��
+�r+^e��ti)̇��

��߶L<G3���L�^��魘
E�iln��r�4:/N�yE�e*ܑ�0G�F9��HG�B
+���F�o�C�N#
w4"�'����V3u��J��E�Hg$Oɕ�إ��v;�SQ�}9��"
+V0\�
+�5�0F�4NHa�F�jx�D�kX�
-�QP�

+,ڬ!E�,�V`�
+,`r���ȡ0
&��2�F75���C��1A
+����

+)��%�
+.	Ұ�P
-�RPi�KS4�Ԯ��B
.��AeUz�l���~��e�j@�~��~��75��
,v����)̃r4�!���Rr�
�:��W����^A�<5d����Ӡ��z�<X��a��d�3A~N��;
��,U_g��8����^�������|���[~]=��^�ܭԡ�K8���"�E;
ms��=��&�(���UtV�9^�7���T��we�zU������o�E>UvyWMP�*����սj4ʳr��U
S�9��9����~��nբ� f@	�p<d���v�t)�2K
+�.�ϕ�.�|�������\�`�����
+Q7W������e��+_�]���5W
\�����
�0���P}A����n�w�)�a��9S����s�l)�
+}t��F���?�\�I]j<ձ�G�k��]��
5|�k����r���RKS?�`�L���5���`?�u�]�	����<τ2G�3�ND;z�4j�4t1���].�<��Jɣ����3 �{AO�<�j�5
Dk��6�o���@�5�����<l��
�}�r�
�NU�Y���M�-\n\�3�4l�+�>���WK�X�N/` ^����

���@
���8���)����a3/�f���fl^˹-��~��**�uv��4�{����W��n�u�ٕ-thF�t2�K���`
���P��y;��N��� ����n
��{7��M.v7��7�\�ĵ7TN��(W�Rj�����g�p�G�˽_���&h'��?�m�M��^��!��A9�18�P~�!�0q�� ��G����BA���l��p.��|�������7 ݾ\��G��� 
�x����`K:�9:A��$'����1
+�G
f�:GM��h�I��
���ކ�* ���]��{�
�.���C�vy��H�8�ZZg�8
�U���|J}��'�|�/������F�����k�~��E�o#v{n�;tk��`�3����?M—Nñ��=��]��
|�m-�-��M<�
��W8�/��t?���úB�9sI�����m|��y=�C��魇
+Џ�
F��{��o�k��:��K�����k��O�B
��<���u:�����=K��[Dp\���џD���l�AOЕ��p�@���F�=+�1�ɤ�I	*�!q|@
#���q�8��մNj�����B)�����
o���d� JO�X��WGt��a���(��V2:�h䳣�:F
G��q�K]k!�����*�Wm��Wx�vjgv��
�B��������m1<�{�/�H.ΐ����}�"�1�++�Y
�O䱜L��Y�v�N��A
�Túu�LM��&�آM��G2ӤO����<����J���p�W0`6�`�`6`����
+$��&!Is�
M�4I�&k�f]zd=Uu������ӎv�6�դ�Q�ҺN�:mk�U�v޷d�������z�����{
>�I}�R��/���xW�%^ս���ŋ�7��Zʥc�:�������\��G����&�dQ��qX���<�pz����}��^��ݐ���s:�����D��v)^�V�Y
=�HӨ5�K�H:ҩ�	���.��f�ƨ4&�$��^���KcE�����i�;�
:��p\'zL�}L��5i���Tx{Y<��򔞯+�='�$�eK�D�Y���5
ί��� g�85��0w����k8�vǢ�}'G����uW9��I�X��c~ξ[�c_��,o��������S�����)z�(�]Qx��!�˷�'&�s�y�[Ʃ
՜����-
�����
��
p8n�CqS�7ρ�E���l8�
�yn7<�R�����_ga���4~�c�+�Th)����_���4
3	1��7r|S+�"-
4:8��bB�	~�&�;a���YL�fW�N��#�(ۓ�2�t���יI��t�L��Ƕ�O�J�|�kz���JA.�=��yJ-�爼
J6p 9��\v��XJ�b1���R�YH��#-���si#̦M2�>�t�S�	g�b"�㙏�5�;�e�����2��|�+
+�O�����	=.V�%?{�ewV,�Y	,de�#���l3������3��a*��pN7�9��nek�4�y
���g(���(�F�s���P�;���."7)��R��.��JŎ�].�%�Y��
�ˏg� �m��
K�(�d���X��ѢV���
�2X4Lq���턶�GIP��ݦ��2=K��e�6�ҿ���7�Q׾H���
�_��Ny�����5�K�/Ib�$�SC�rM6�MN�J����)�&X:@w�8]e���o���
�s�[��<����7�C�_�k��ҝ�6��G�
���Yy�ҾLh_Fͱ
��
���3��k6�T�mq�ei�oi��⧣"D{�(���U�h�:D��,
�xlO�}�fۯ�_��\DVyF�W�f��/����k\�2,����'X�L�5�����v�
��I��M���[��a��S4�,�d���
��+48�/Q�xK�E��Dd�'�{�VwQi�>� f�<��a��Q�S��@M
�5���x���K��+q�
4;\49�p�v�X;HC�$�u;p:�S�<Em���q
���^���?���pF����L�W�uJ������뗏����_�ڜF<�T���49����P_C}}Ά���6��h
Ǯ�ƵL��$�M��5}
k�wůğĿ��"�\��F�ŢKy��z�K�����q��䊧ѕL}SΦBj��p4[�7�Q���݁�݋�=F�g�J�
*Z�ci�O<����[~���/,��*J�R��:�M%Ҩ�>ѩ�6�n�5z�q��mI�ޚNuk>�VֶJ��
T����z�x���#��f(�-Q�[�仗��G��~C���(���7���_�eJ�������"(��Y�R���Z����
X;�Tv�Pљ�����N3e�Ք��1�[(���80EQ`��#.����x�����
�O~�S
+��U.��.HgI�*�1�'���k�*�j;����ʃ��(��`KO>�=&�z�(쭥������z��
M��Iv� Y���
=DF�ۤ�~&~OF�'d�D�wK렴Ĕ�DP�K�I�N���A����?����
�L!w(���"���d
U�9�@�p��A҆GI
�#yd�GΈ�$
?K��Ż$
}����*wJkY�����E�H�M%Zc�U�V����Q�[cȘ0�6�H�D:)�y$O��y����Z'�$��bcx�M��ćOb_O7��x��G�?#~<Š���i1"�
ѡ5�U��I�J�Q٘�U��!}z
I��$�m�8��Ms���`�/6���8�e�|/������������H��u��^d��D�~@��c�L��<�0�"�"2�
+*�
��
5�"(Ȧ((��	(8*
+�+��˩₩
1n�&�D�Qc��%�i�[5�Ǧ�MjԨI�4��4�>�99=�Ǚ�g������}����T�:+�+�
Hϖs��<r0K����5}�ŀy�o�ԣ�M
��Y��j�%H.��r�D���C��f�\

���2`�]x 
kت頫��g��ȇ,
IF;��9�X2���n at 5��k���E��
r��A1�x-��Xޟf���ʋ��g�ȭԊ!+Z�p��^�����9��
+�"��҄9�a	9��Hx<��:�W0���\h���t6�|6҈��)m���4
y��x��8�l����0f�a[o����=�oU�fd�I�;��}Ț�M��
�Q���'��f��R�gx��m��v�h
��?v���p���M�᳇B�C,�1�̬������n��s�ZsI�t�J��k��9r9�k�_/7K4�v��'
>�'�'
-
<hi��H��i��?:^�m䤍k#m� #��HG�&���4�xO!މK��yp��z�5�$�/���
�#���0\�!K:NL^'&'�I;M��4�o��i�3�tΰ�ϒ賋�X�%g۹O]���
J6e%9X'�n�L������
�%��x
^B�@��H+��P༫t��\"7�eP�?.Ӕ}ċ�
+�y�d_�A�zN�ye��r����r�^_�j`}���s���à_�2|W�܀�N�'��
r�1�|� G�������|`�� �y���;��x��`�<��g̘�)Wߨ�ٴD_3�=a�{Ĝ�%s�&��Lt�����t�S�]��?��?��?��'ܽ�ou��wp
.�]N ǧ|�����i�q�衦2)��s�˻̗V�>ŏ;�q?>Ə��q�)�S�&�ժt�����"�_�u
�~�u���y����z��YWz��+��TXG�O�~>�/�~������طb-v7R
�(�=z�B>C,N��)V|���^
�������)<R"f v��'��
Bk(:�hL�~��Q6�OIa�To��S��~-���]����vف�>�P+[�]G���9DF�x��!�
��Ng�u�%y��ab
Qh�@#
����`��5��2yi�>ZU��
Ə��q@���V��f*�%��cD�
��u��X;��;�
����M,�$ǩ�W���5Ġ1
+�㱟��LV���<�H����f�؅;�I+�����o�[����m${
���
+_�v��'�
l�S�#���8�
ia��� t�����N�r
+�3��l4�?6ᇍ�l�>UG$��o�V��*V���[��r�����c�գ��_�K�s��4��g
[{/�^���g���	A'
+��h�Ec)hd����c��)E�
+�����ZV���,""[�.�v���._i��s�wr�#�
�kG�>>wp���e���l��w�U�S�Vw	�J�hY�G��%Vu.�ZꚢZ�L-q��"�|Y܊T�V�j���Z������֤y�-*s?�R�wT��c�x<Q��9�;�đz�㽅WMظn��
+Vz�iew/�w��R��Z�1HC�F����$��LU��Ux�j�g��<KT�5_�^K5ǫAE^�T�c�
+�_�,�w5����������}y��J�'m��|��^-�,�]dt�Bo�x��ۤy�����8Z%�x'j�O��|�T蓧�"��P��b��J�{nUN���������S��Me��
+~{''y�
0�
+ at Cm
����S�/��]T��K%~�4ׯ����*�����5��X��NP����g(�?G���P���M�cUf�M��%�ئ���J
���A���smױ���Ā6lE�泊�r�)Ɨ9�2;�C���(?��f�����e�TV�8M
JԔ�Te��Rz�<�������+e@��lФ��J2
��J4]Qbȗ�
�\�Ն�.ڍ�iTC�s�_�/��2#��r�{hZ����Sfp�2LQJ7
S�i�&��+�4I�!�������8�RB�j��Q�杊
;�4.��
z��n�]���F��f��*`n��ˣ5�!.Yfe�z*=�W��>J1��l�D�%�G(1,V	a����Aي
/и�r�F,�؈��l���CuR#�~���=�;iAo
m�
+��1� 
+��ǽl�����09�C�"�J��	�����(�EӸ�ъ�
��Q)5U��kTt�FF[4b��0d��Ǽ�a1��|���`��!v�
�S\7�y�a&�po
+K#.����M	����̣�>�0�dQv�MvD�}
�}G�EepcĠ`Ԉ\ �Ƹ���5q��i�Fk��U�ظ/MjzbNs��5M�S��Tk7��IO��sf`f�{�{�����K9�Y�eI�PfR��II�HJWzr�Ғ���R%SJ���MJM]��j%7)��MG�`� �������A���,W�}��́z��@��y>�9���J�T�q��� ��d2��ј�T�I)&���
+`��ҧ)1ݮ��E��X��gޭX��`>�x�7�e8نV7�m\��3��0*��������ǔ��.S��R3�(�<NI�(%�'*!3U񙙚����IeP�X�
M�,T��S��+:k���+2�,���=E[
�l"�*3�k�6��5��C!X!���Y�
7%ey)�jP�5Pq�p�Z'hBv�b��5>;[�9%�ʩVd�LE�(<w��r�Wh��pH!y��Bs��C��8�
���hEc�hTB	��*��'cW��|_�/�WTA�"
�Q��B��
+-
+-,THQ��5(��YAE

+,zN�;�u����E��_�
+�Q`�C�E�
�����B9���<��\��*1��U2R��
++3(�,H��"\���d��P�'��
+����1M]�&C�3�xQ�*��I�V|�Q�w�W�@�2���z��h��KUPy0	��"�_���:FbUB*]4�S�վ[=Vc�C4�:Z��x�1ȣj��)�Z��4ʻv��j��Y�~ ���<����k�C��,d����
+(��bjP*%��;&KQS��)�N2L!�z/��� @޶0yq�yڒ!S
��۪4�6Cn���:�b땳m���������\�%ܕ��jG�q�ـ^5�B
k��vj%�{]+�am����ly�=4����r���
)g�D
���d�j�� v~d��VjĨ6b��3|��9w�Z�V#5��YoX��h'���QX���э�7I�����]N
�����P��������J�[)^�lX
=��m�����|�!�3�]���
��rȣ���zf`�>}t
����j�K�4l)
w)
���W��e�
7�v
2�
l�
{Emg��6�k|�m~sn����0�(��z���8��E
BװH�~Rr_&�,��K8�p.�+��*.]���tq�������í�A�aa=��
�G�
���w1�]_�5
ͩPF�s([�\�!k�\�>�Z��
i�Jɩm�*si-�䱎<�S�
Q��
zt!��a�GO��>j��b��`;��6���{[
�V�f�6S�D�
E���V��Fr{���	��6xh���$��2����.�c}���c�����c����}
���ǹ�} 7TG�KH1��Ia�1�y
�5�빑�o�z	v�^x���2
+�� �� 3�#jr�K�� 
y�3�
6�
Y+0��;���g6�~��K8��N[�
���u�?��E�\vih
2 at o��!ނ��18��I��
59͌�#�
�
</�W/R�K
ե
�e_&��*F;�Dj
��ǒ�7��������pj���Y`��\��
�U�
+���\eN>aF�ї�2����gl�
�M���V�żu��ؠ�u�	<���=�w��'-�]U���'��m���u���}�����r
�uv
x�a���}�k���}�Ӹ�_�C<�ω���
<��74}t�WE�/JD3�|t*�-6�������K��A�N�w�}��e
�E|�y\�Y
"��qyW(���
�2�9�?9<�{�=�;�B���Dz�QD�J�^G�t�<ΐ�)��)y���|�<N�B�i�~���N��C�ُ�<�8�$�����
����S�%^�
+^��8��=�t2��a$J�*"��y�I_k
�[��X�����k�
z�
�*C��o�B�ݺ�](�Du���x8�}h��ș�y�k��!~2�f��]ʶ�$v
�m�=j"��.f
�k�Vj;ً�d*[�j37ѥ^}���':�<�����
�ZG��H�|�?�ÉG|#�-t9�إĮ�V棏9ݬYĞK��]B'����bB��Y��
�z�Z7���D�f�V��-7м8��
=���vj��=�E��E�⛈ja��_B�J��R�z��"~1[��R:ҩ���r�|�.t}�lc���+�78���v�ce�+ڼ���
Q蹡�MEǠ�F
��J���B!_�I4&�QK�ј��<v�T�C���	"�R����i�OǛ�����f�8͑v��u��>X��5�<�\�i�0w�|��G'
�X4��HG#
�|4J���=�ͫ
�O����[;i�$Nb'�'�sqbױsq��iR���M���6��Z�:��um�U�
]K+T(L\�Mh�	B�6��&�B
Ć
m0ډ3?�?~:�w�}~�{���������c�c/��
�V�0��]�b�
-�|Q��_�75���������O �op�}��������$��1�s�4WG
+
:�kѡ\����i5ϫ��~��j%?�L���
F�X0���i�*��\ъv�i���f�/hGɋ�*��ɒ�5Q�&����>d�
+���e�E���
��i׸?�-Ye,���-5j�Ԫ��J-����ЬyC��
=�i�j�׌!�
Ɣ��iM�5a<��Nj�Į1]ר鞒�ה0����F,Yڬ^F���z����Ч��}�c~��,lZ�s��Lf���1;5mnД�E����am��i�2�1˘F-�Jn\���U
c>�nzRq�U
Z�j��u��~���?��>�.�/8�l���>X�z
{�f,3�qږ�)�Q)�&��
��i��U�֦�-��������,�x���w��n�m~Lъ��k����s��xUa��
+Wާ���y��E��i�t�-��<�3�M2�s3���6{��f
��5dw*n�נݧG��
=�9b�V��r\��Ym��(T����O�����5w�U�:k�oÇ�g�Z�I�����"�r=I�8ce^Fː�H���_mU��P�Y�^g��8[��R�&���Au׎*X;���Eu�
T�����o��͉[�=�������?�kh=��R�
��io�ޡ�yd,}�<E]E\�]���V�U�.W�:���p��^ߧ@}B��I�5�R�g�ZO��xQ͍���������o��;|BVW�9��4�c@
+F�j�g�{�xr��)Q�cR�Ǧv�CO��<�jmlS�7�oT��!57���<'o�}'��]P���[�"w�w��\ ������i4`?[��0���e,aBGs��F��6��W!�ϩ&_��->�TckD�ָ��Tߖ�ۿG.Lj���j7T�2|[��/i�W��?�ճ�@s��u�~NB��/
]�m�|��5��j
���RC�%w{�j��c@�
��霑�sE՝GT���*�^���eٻހ_p�7����ά�濏�
�Y�jN�~�#?�����
y�J���
+ZU����V�n����T�
TeOL���CS�-is��CO�,|
�$[�[��&[�=��>Vy��54�И�V�A:��R��#Շ�}
rn1�*bQe�\�H��nU�����Ce�٢C�FS�]�C�;'K�̱{�M�b?�9�WY����7�3h��zϣ3�N A�ۄ%n�໣RU_�*�KT>`RـU�A�6
�j�`#�e
�
�)>s2����/�]��_SI�Ǵ��0� �:��
tf�|�0�^
B�-��'F��)ՃR��u�P��A�E�D�6$�dL�eH��K�ɘJ�	'w�(�[���*H^T^�r��*7�C�%~(�c
Fg���J� D H�~��h����O�b�l3��ɘ*QIʤ��&��*Lժ ը�T@�a��تuL.����EL�%�*P�l��܎������3��%
C��e{ˇv���LJ�m���<I
6����b���3K�O���$�����f���4/��	�xi��4ET��i�8�+�{�@+����A
�$�Vb�s�8��c�F���,ڵ^��ԖK�%
�2�~���P�p�g��3,l�?���
+Em�$P�f>ϳ��?�ݿ�}�"�	��JH��%�:bv̠���RѰ$�H����@����p���
�h
Ĉ
��`ּ�>�5&ym
xy��X{�g(b����5��
s/�w���)� 1WΣ���0JW�AJ�c6��ԔG1���	�#�u�ơK�?C"<˚�eße.��o-�q�3<�{>M�z�mx_Sh�B?��ʹ���
|���5�[By��=g��®��r�'����oϳ.�0�g��K��2{�9����	�2{�2r����{�������	�8�|oa�<�!�j��
]�q�����8zlk
=�?4��W�Ә�녘r
�
����D��
��
����6B���4-�q���EUs�wJ2�1�sg��
����t�@5y�q�_!1&@�� �p
7�" � �V�}Z�V[;�S�n�U�u��^�Z����Yٺ^�9�����g�tk��s�Z�5�a�
�w��/���������>�ׄn�Zr�1��x
v���� �fK�0�4&{C����Y����i>���>椏��� �~��q� �>�J��%?��A۹B�>��z�Ƹ%�9����j��]���
�c�F���2ur��9�A��Ca?/�~곟B;��i��8�'U��9@��m� c����A�g��|�FW�(ćW�$�
^�~�E�a{3ظ�!'���}�q��=/�X�Rl�
$�I�p�.G�&��&��
�ҝ���j�K�t�>�o�K�����O�l�H��1�������ӝ��S{���7$�

�ۘ~S����� �����M�̫2ґZ�v�>����
�Ϫ@�V�O�S;�tF=ğI�����
|�����ݞ�pOѩ���y�
�e
�	\���0]׹
��<w����2\R��@w^6��2�
R[��(�ד������b
=z	/��|
��Q|
a��xi�R��r��_��G�KV���L���
�v,t�rSk�Ɛ�2C
�K�����@�b�� ��~M!�t�����(ޣ�l"?�Z��I;��η���q2���n���?Wѽg��@Yk�@nj�����c�i}���ɼl�>�i"�'k�
���L>
�R��X���f�)������'Z��:���%t
,�e�v+�-�H�|';��!����.'v5���L�qTa'�&3�i�B/��mt9.�h�XI�dn9��L��?��E����v(��
,����r��5�^q�O�Cr1��/$v9�u���&�q'�����
-��[|c!.��yds.3:�
+��O�n1���.��̓�ي��
+��U2�E|�
��$���E�/�"|,��||���\�q7��˺������L�OgT��T2�Ce��O���8[�S
6��[���.��R^��/i8:4��D#
�<4��(G�J3�1�y�J}�P��\M曓����T��p�$�:���������`�v�� [�6��
�jV����
^?��!�=8-:q���HC��h��(f���S��wԫ�Mԡ�AS4>�.�
Y�����2�a�
ݩ�Ѓj
+=��!��v�A@{���ql5[�=0f��O�5�3\�6��;ܠIC�tg�U�aɚ�R{X���i���
�Tk�h��7�9|���u�q�
5D,P}�J�En���
��<�j�I�
\���hn8z�`�
�fB7�]<��K^:�C�n0j�!F��x�58�l�P�!G���1���X�:c�j��m�����Ue�����Tiڨ
+����I��߇�4�k��#�[c#
;zy����\�s,k��4G���
�F�I
�8ՙ�5�j�9K�f����U��Q�Uլ���E��3G%1�Tl���,�T{ ^�/�=���
hZ����W�L����
Z�1yހ�:��Ɔ��bT�%Z#-6UZ�Uaq�̒��X����*��Rq�ƍS����Yg+��J��U�m�r��);�%8
��:�0Z+М�Qt*��Nh�1m���y>G�BTa�T��,�5VŶDٜ*�e���/�Hy��&�)7�U9�]�N�%�}��Ik���2��*#��\�g�s��ó�֣���T�=����
��W�|$^h)U��b{�
+�F���ʳ��'+מ���le'��I.�;�FY)��L�T�c��
���|P���r:��#�x>�3��z��h�L�9��eHc�_#yV���R��!�:
�q��q�)ˑ�L�S�,��yJO-QZZ�R��L�#}�R\
��z at I�Ge��Ǖ��6|��W<h5�
ћ��<�X�uP�u9~��� /^�N���
�I.W��\6��R��pɑ����"%gV*)�A���Jt�(�=O��U�y�/��G��	���}U6w at +ј�f��y�PP�����ϼ�L���C����D)�3BI
���iJ��(!ۧ��r�rje�mӈ�)�˝�X�}�xQ�w7
U��
��������ؽhN�%i��� UPE<��r�{ ����H%��o�-?A�|�F�g*Η�X�__�b
+�*��KQ�2.���T�
����^pQ��C at KП��Dڑ�P
�P>ȅL���|�}�^��d+
+W\�Q��hŔX]����tȑ�_$�4��(c�,J�*�t=�T�����O��\�K�%7���ME�
�F4��
� �g��R]�AQ�g��]w�EЪ(*
+�-,�����
� 
+B��
m�ă�D3i�F���Ui;1&ͤ��N
k�
N�c�̴�L56i��֣�c��,�d�?�Y����罾��}��F�L+�����`��WJ�Q��dv|d��ȕ�Q
�Jv���\*��C	�~�;�+ιO��c�q��X�����^8V±����`>(� �
���*i�
��d�_+�;IF�YI��J�d���T�'[��y*�u)ڋ����'/ыp�| <�<�_h���&����q;(�@
1τ;�~$J�
~d����ʼnJ��**�@0�
� � � :3��"$�� �*�� ��!�y���U��Rx�P	J �l�L_��qÿ~L��l�u1JXbPt|�R.�Fz#ì�C�H�	��
��N��j�ų# a��K�gpK-��/p�
+PH�9ĜE̓}�O?���/��Q�_�µ�EgKO
�F+�k+:w%�K�����F.�(\/�Q��u`;ϰ-�D����M��T\~�vPB�s�y&1O	�_?��f4`��9��V�AZM.��?�P��px�s�{�E�z���3����
r
[d������!m��\@̳p}j��Ϋ)��$C��7�X�l�a�X���?X�6N`���LM6s�6�����U|R�M�y����Sp�w�+�TQ�"
͡|���ի^3uK	a·A?�

�XWY<���e0��":�����1�%7����	p�;q|'��q�������L~x�Թ�|���Ӊ9c5�=���m�p>
+�����q��/�O�=��r�,
�w��}�q�K� C� M~���'��q~g���<�>�,��O�
ڙ��zb/��k��u?#|a�g �D:a
 /�Caq0&�X���k����u�7F��4�(�8�
!��8��G��䠿���&M���������
s�A��
";`4"�hu��&x����`x?NsfO��8�)�������w	�/�:�r���΄;��M�6���H��hD�9p
���ɈH#��88r�p�u��\���,b���%�%
+~��O
+y��.����!��M��w�A��Q���j�@�|�ν�:���+�OQ8��|�����H���❧I~E?"�sp����h��B�p;�C�-�>�U�n�3o��>�$}����|�Q�X5���=�:�7j
��~�{��
���=Hj���=�k?
+�Ux���3z]W�]R�t�+p�k>�\P\f�Fi�3�
�[G�P'�^��uz�|���:��z�:~���C�E�
�0-��{/��J'i�
:
���A�� ���ƸE���+Z�d$�����,����%ض㷋�\D�����K��è���!�A���6���
�]T�y�xs�cu��9�/���pޏ#��N�����[f|�a
+Gb��]�m;V]��a;��l/�n�v��S����<��7v����#��dr

�E�A�+|2�����;�1�7bۊ�t�f���.�v#ʎ��^�� ���DZ��=B]��F� �yB�z����
}d�����%��,��ã%2v������b�\lQ*�'a{:�sυ�.#�U���{���~=�7Q�������By��
��5d��������f'�ީ��~�.�=��$8#��`;
ۓ�=�b��eد�~���
?:�C�ZE���Ko�����
+�rz��S�L��9���q,���Ǭ�`#�v
�����pF�H�o�~:��b&'2�B".��
+�8�p��@w���tұk�����uԣ�j�� �.�����3�H��x��U3 
2�_	Vq
��G�-*
3V�ÑG&
��ȃc
�e�T�� 
<�x����k1Q�舅��K�y�t7��͉w3	���ùs
W;#��k�#��w3�p�5&Ū1>Y
1�G�T5I��i
+De�=G����(�\��jyc�����m�+�U5q�r�
�?�����'�����L8����4��^���z����J���KXk�'�/S��IF-6X�3��k�,�!K.�l-H�WMb�����H�Qu�O��zU&����.U�Uf
R�q�JL/��tBE��p
|�'��6��\�p�-�������^~w[��6�2�UcJ�Ӕ�j�T�M3Te��|S�*��*7W���U��V�㖫h�jͳ���U����k}Es�o*��!���=��pm�`�c
m�zk ���.|q⛃��SbUeMR�Ţ
+�M�I*�NS�5[�ֹ*���Z����S�;�Iy�W)7u�rR��٩O+���f���L�9p��{HC�����
+���U
|��w�*�_��Ԗ��T��RST�:A��575Ksl�ʳ*�V�
D��Eʞ�T���5#}��2�.�5-cD��55�,��!
¿���4`��$�
|��e��}��o�Jx
 b	I���5AI*����;��œ��V�YK�f�n��V�b��UQ���y�U���ۺ�uն�]ﶹ��]����n��9�	d�
��'y����^������z|���*|�̍W�%Ye�ty-Y*���R O�G��r��jU��(��Ek�
+&-V��_v��l�4�~PV���g�~�<�mYm���j8!
:�h
0
L�ܫ�J�)��JA�� ��(�ͤB[�
6p���U��J����kRA�����s�R��~Y�;��|Vf�)e;�ו�%��?��
+�zX��]�
p
��U�[(�p9&��HQ�#]vG�lN��N(V^�O��S�k�r\m2�{��^�,�&ezv��yF����=�V���2��h���oh*���ց��SJ���|�w���I��cTn�I�"�r��e.r+��\Yŵ�,	�TҪ������)ݻQi�o��
'��}�ܔ��
���R��Sp� ���@)>”�߬�8Ki�̥��*�Pf�Y��I�(/Tz�T)
�j�hQjE'�U�o@ɾA%����;�Ċs2T\����*>W?�a;���R�ԃ�|ǤJ�
pϊ|�THپx�&')�ʨ��Li�ԪP��*����J�nRbuD��ŚX�Fw�lU|�^�U��	կ�+|�D�U���ݬ�m�o
���W
+<��w��L�F��j�V�����J�e�۔�wi��L������@�أ+�,�X�#�,�~o?�c�-�b���f���6WBQ9(.��ÝW
-��RZ N)S
24���`�⢇X��$H�)Z�Bh�B6��
�)B� �&ȖD$4�>������TP
*1Q
+<|.��HF3ńٴF4P(N�i�O�;�J�N3�X3��

.kᡖ&��lAĵ�)��0�(��4����1���� ��{���$f[��3����K���7�E���,^�m��f��v��
)
�
�#�#��ψ�v�l���/�
d��x��:��4�z0^o��
�Q&R1��&�J	ȵ	�����N��y�=/���亭�M�ԃ�
����>��������!�g����}�6blS��|�s>i�m��d�7yp.�]�6��E,`��c	5Y������Q�>����9�f�q/�r9br9�c/[��y�fg�0��%�� �<R�I�Fx��K��� -Ƃ��+��j��'k�cmt�e����g���3���~i� �'�җ_c6��QaR���k�
�����̫WFx
K���(��
&ρu`= ,�k��	,�����A��R�0/�A�A�n��>�.m��m������,����o�:�H��C���Y�k�7��f-�������Pl
,�`�'�&'ߡO�Q�!zt�~��
"�'(�~����sbϫ��5��*�]�Msv��,!�{_�3��hl�<&Bh-�TlDŽ�0 ň2���=r?F����(�8
+����a
:t�Pu�V���r�4�%��-���|��4.�F �&�1B�Jg蓳�q��\�����E?O��Ar�3��!pF�p����v�R�#<�+�;
�<�a�u:��Q��x
\ ��(�.�A]�6��������}f���J��#�+�{��^��8���i����
=s�yS~}������=*�:�+��G
�/�P]Wiԟ�%.��~J�~B�.�i\:���op����s0�^/�c��_������>Q\f�
+�4�G��5t̻j��L�?~�ʹ��y
-�J�<Cs?��D��P@��L��:�	�t
k#Dw��Q}�;1�?������R�1�
<eد%�Sue�2~�ƏS(��
X'P��84F��~����6�f

�s0>C��xЙOE������������h�4�7�jvP�}��hũ�߄�3�,j�i��0��)�(�'�
+���L5���{�� #u�̼M��`��pEW����h���T�՟W<~�`;۹�v0�Ŵi%��m�x
}�
%��rǘ��
as9��j�j=��7�{L`e
��R�5�:�%.�Z;�����}��Q`�O#6���Z�m/���u؞��{�݌�VlE�ݥ�����
�Te�� ��е/��i��Vқ��b�X��������1��\�G.��t욱k.l{�]��Z��쇰�V+�#
�]L�b��
+Y��<H����0�
g����?�>:��1~6
����ktv
�5bׄE
�g����?���R�X� 
a�2)s��n���M?ӳ��ٮ:e��05&9���(�F�����d�}�{���\,�XH.�&=�F�ڍ��c
~t�� 
!셱ۦv��,�n�/f��:��z43Ua��K����H}$A��+oX&�fp���:9/:��
jQ6��LC

8J�dR��r���u�a���ĉc;Ǘ�N�8N��vlDZs�:M�$m״	��K֭�b�BJ���A�V�S���
�V�1D��m0�؀�A	h*h�6&.ZQ��PG�'�e=:�����������3H�ì�1V�*f��젗���
�c%����X�z>���A4�lsG�X
㰔gKH	�����
;�;Ѩ$� :u�4���2�t���o>�.&�	zg=;�6��%ʯ�c�³�x/�U�|��8fw��
��cn
������i��L�"��.��|�5ը�\�nsL]�:�Yuv��0����-W�x�Z��(m٣f�A�,ǔ��V�r	�����v���M�{�R�a�� G^�{
���jSW�����K��VZ�liD�ҸZJ�J[;�l�WʺPɲ1%��(n۬�m����j�S���"��
+ۧ���:��\G8N
+6
+C��C7�]'��c�aV��DY�]-v���J��~%�uJأj��w�)��UԱ@
�1E��(llV��G!�~��*h<��G
+W�^�k���[�K�Bz��N<Y޵K3����JV%
��K1çF#�#��Ѥ�3�zg��C
+��(�Z���p�V��>Uy���9-�粼���u��7�
�;�\�MZL�3���v@�gi�%���r1O��5�m
+�
ջ+rW��]��'�O�
�W�T]�HU�+��ީJ�.U��q}�����\�Kry���r{oj'�荓��@.�pm�4�$x#�F�E���[��ת�ס�ץj�WU� D�J�[զ��~UT��㟐ۿA����
|EF�pJ偋r����P��Otk�#�Z�!��kR��]��'D���~��vy�*��婩��&.W0#g�G�څ2j��<4)Gh��/�ò��RY�
����cm����݆]
�
h�44O#��"���Ye�P�P�\u9��r�Wɨ�Uy}�
�4t�
�'[d��"kd�lUidJ%�#�DN�
*��\��d	��Կ�EسA�,$!�=���P
�<wG�r6����.G�){�R�h�ʢaY�	���T�%�Hű�*�oRa�^��d�?���*���*���vt�#�	����ih�Y#ԣY
~�}<�`�1���%�%m�&
�$=�$�U��SQ2&s�E�T�
+R��^��Ҽ�{��7��;IƔ|f����R��(� ����"P5Pų
+l�3A��4��lQi�M����
+��
���h6x�VLk+yt+^�o�Jf�%��b2� �cfF��{1u簆��	�Gc�r_ͳʤ�¶�c���m��������f��F���c���oՍ��Ƹv�
D��=d
�/û,��Ӯa��6h�&�5@�{?M������ �&��������|nc����� }1�G�x��a���)r�
�e��m 3���h)m�x7d!���s_C�}Y��5:%U��IE4O�8؇��9\�0}1B_����2yG�Q>
�ˀ91B�4B�6Lֺ�"��og4�� t@
mM@��m���ݍ>���T�𚱮
��ib�8d��6�cL��
�l�l&������q�c|-0'�3/�
�<~w�4\�|tz�����F��aɪ{Y�נ6t-#���Hb���3ı�8V�j�XC
�c�1�d�O��T��
+�3
�
o�c�e}~��z�����.hE7�5L��\�=5�-C�h,�I5$s��o%{sI�
��F�Mı�8�17v0&;X����T������V����f������H3׆A� !s���+��+�z
))"�ö[�/:@�n�dw�t/��
ı��v?��~ޗ��}�S��)
+�k�yR�{���꣯��s�"!����R�t{^sk^�n�h
+Ƃz��8K!L�t?I�!���q�8
f�
e�
ep��#Tx�p�l���C����N.a
0�U��X���R��|�������
�e��>oH
���]�)a�0K$������S��gX'�0ٟ����q��%=y�2����ղ�1@ۏ�k#��VR�+�{ ��@^��y3�xޔ��T'��Y{.o�?$�
��%�K��E&���<{ŋ��s�g�W
� �
�ml�}y��`�}ò{ސ͚���:Lm�`VKs��%O�,�~����c��c���l:W�� �{ś4썓d��ŧp����O�/y��C�/s�
�/d�"oG�G��,���~��~ͤy�I�K
��L�W��W��^/��}�_%Կ�,jg���'��ހ�
�Uf���yw?�6
sZ)�
+��:���2q�����Ӻ�{�Esx���q���~���
&̳�g��cۼ�8��m�~��v|��;�
׉�8i���M��鑶뵵��)�F�=��C��ݠ�$@��c��L
	��ILHC�C􏩈C�����$P��P����}�~���{����<$���%<����t~�n�+k�|>��
�
�ݜ�7�3
0�(_f�ѯ�=���M�gP^ <��?��QR�$�gH�GH��X��x�<	r�/0��{
>O�߰y
ކ����!���$�=�~7�V��!Rd
��c�s�e	�e:�#h�$���>��+x�y��K��+D�gt���������*s��B?�Lm*
���у�_��u���]S
�2�5t��������,���v��#Wȑ��q?>�2�S�{R�#��a����Cd�C����/6��k���*<	�3������ϋJ�\;�-�[Cw��6Н@w�Y4�:0
G���t�7��)T 2��d�	�V�9��
���-hm[���=�c��0g���!��X��=��G�G���
��x��l
'[�p�<��Sx�<���:Gϟ�#~���)�|��{�6��o

'��h��Vt�aE�.��U��F
�&�1KT���0{�l9O�.��:
�H��������:7�Ŏ������v9V� �]7��&D�n�,����n��_G�q��ɐ9�ߏG�5�,N�	2i�x��1��1v�1v�q|X��c
3g9򎳥-s]�y���l����.���G;Q��gYl��Q�� z
t'��]��C��óYI��Ƞ��o�p
�ͳU=���
sp��Q���ZyֲQ�M:,��������6rc�

e�4ԁ�6�ب�7��6f��~f��HՈj�x�2{����?���]��>��3�=�Ѳ�Єq��Q���ϰǦ!�[[��-&v�؉c'��
v�ة`�;����f�L$��G�S�\V��Y<�:�ށ���(�Na� ��<e�4���[)���3,�y
��[Tu�uU��j�-��-�n[^%{�����
�*8���ة�sI9�1u�V�u]R�u]i׋�Rη�R�u
'����k��c0�}�{�/e�Meån�W%�_EOPwT���r�.ux*ʶԕiU�;��w��}G���wIq�u����UE}o�{�z?�
+6�`o�Rc%�
A�=�R�]	_�L�:M��~��O9_ at Y_X_\i#���W�QV��W����Z1����c��)l^Q�|NA��#��_�_
�K��q{sQr�r�P後/E�u�K�!��A�R�G�d�TŒ(n&3;5K�kj
�(
l*ZT0tDfhEf����gᦌ�k2Bo�z��?u
+�7K�3A)<}Pᾄ/���
���Z��+r*�*�5R8
W(�Q0ܥ`k��֭
+D����=$#zZ��c�Ʈ�%�Uy�ߓ;�&ܒ'rW���{;i�`�R�ʵ
|��.����Z�����z�2cAbQ�c����2�e�u�&o;K�~y�Nʕ� g�9�_���;���\�ğdO��1��פ5j@
*P�<�dy�—6��-�ĭ
+%�2�.��>�|�ay�ji�ȓ*ʝ�ʕ
�3ݔ=�$[愬��e�pf(H��i����cc{S���P�2(�:x��$��!��(��*�n�?�/�UK�/w6$gGL����
���*���)r�
�F%O���9�s*�
r� �g���}-ck��l<K
�J��Y_R�o�(��f��g�2r.�tz�,�LY�H�.�E
_���"�S���DsV�Y(� 9��/�wo �K�}���>���@%�!��4����
+A�hߌ�M-]N9K-�u��ma���*$MG+],lj�
j���@���i�CeP���P�o�)�C���$P�n��N�S���!��6J�@e�����
4U6�]?M��S'hu>��[��w�4qu��:�@�z��J�����ʱ��{�-�hAz���<�2�Lr�r®Y�~���ΚE�~��A�!�a�h�66���@�A<�0ǀfq�&m�&А
��ឦ	]�`
ta/��)�q��
�ĮQ�<Hr
�2ā?B�;ꐶq��3�d��h�M���5��I<�4��ɉ����I��	���w�&�V�B{ƛ��!��]��a����6��)h������8�w�7�6��b��,
�x��e�s��n�Y�ݙw�]w4���Ս*a7�5I{�S���u����5�@�Q4�L�)t����e?~,��abr�a��0sq��q8S�
$'�����}���j�N
k��)�
e�A>�a�E{HY�a��Na�V��6
��3]� [...]
Pb
F
+*��e(P*�S�S
+J��/Pʥj-2� ʴ:�ڱj�
3���H�m-������ɞ�t���;��o������el?V��~��Y�pYKb�r�5�
c̉ջ��c,N����Y{���&Μ��&�38���]�p~�ᣴX���,�k�:g�HL6��}?�ѯ�'���	�v
?��m�I[�����-�����~x;g�r�!�q68�w�sΕΒm�
QQ]·�˨#
r�s[ � 7����c?}��&{�������v���dV��ĻH�����"��8���s��IKi�&x�A;�.G��d�#��#�h�^�e~��WN0?H�
��H�3�(�qe3~V�p��N�
�E�j'�[��ٜ;�nG��<�$�����H9��X<
�WU��~�H<^�W^ef\�.�
�eu�qD�I�N�
�ۿ�����^p�᳹��ϏU�6�K�<`�,�D$��+�5�>����>�ɿJ��Kb�&�>�f-�
|
+��������������Ol��������.>�I�Q��Aa�M���2z��
���2z���Q�{u��΢k~��8����	p
޿������z]u
q-����l�$.��%����~�u��9G�e�m�~<G���HOQ0'H�q�o���qt�x�=�;���x�y���W�V�w��3��v/�!^D-<��8�~8��9��:ΰz�A�4
+�)�w�&�>~|?�D�~�bz�":����'����~BiUh�
+^V�Xe��]��SNڟ&�h�q4�8Z�j%v�؝�lj�~��>�^�
��n��.�N�C)��u���}�v��!�~D�_�v���<���mv�\p�ǝ��;�v
�d`�IЈ�"v;�;�eZu&v��;�#��bl/�"V��c(��p<�
4�z"����%�kЙcp�_/;mu�i�G���:ў�؊ 
�@
�EN�A�{�;�ӱ;��a�rX��e��Q��Û����� ����r��W��+b� ���f����8
�S
�
a��@䩾"�;�=�}�
��ll�>B�~	���*Y�o���a���T�1�v���|*8�=���ط�{L�cz�\��c� Ql�z+�۱ݍ�>l`o6

�;������s�:��>G��NU
QuCt�
�~��1l�E��о��kپ�
Tc�	��~
���o�~���;@V�d
��jY�dg:Y
���G��-��e:������5c_	���;�~�σaWuM�C,��lr2�ژ��T2��c������^��y;u£��)TE
��G7Y���.���wm�k�Uh9W����J4f�<��i�S&���Tr2�ژJ���G��h���v�M�nY��m'�� ��dvQn��Kt\�iUd��~E&q	6qݏr�-e�/`5
3��
z�nz��W�n��A�A�
I8�p4�Q�^'����t���UR �Tx��'�y&@#5��Th�G<�����BV�a֟Y�
���:�l��<*�jU�TtG�ꊂ�
+���]9x
+�L�f�]e�\s�u���u�2�U`�Ү
t��<x���}Fu
a���V�B��/�|)n5�|j
+��j�E��5��&���(�̓���N��}J���|�T	����7+�T���,�Y�˲<�e���{�X�|xgq���ɠ�xW M|���(�*�+
+*

+�*�TH*�*
((
lW,8EVp���<��%�Lc�"ƣ�¡3�U��Z��E�
��5���xn�}
d�#�Q�Σ��_�H@�pH1#,ˈ��L##3ܤ(B�1��T82,�Q7�P�&뾭@ݓ�j#��U�#7��/�7�4�IhE�̻
�e@ҬQ��*�ˊd��pE����@��ht)d�4oW�\�Z�n��
�Yߒ�:(�uRn�pE5�
-��|��9�H�.�
+<7���%a����L��f at ufPa3$Ê(d�
+Z	b
���X���>y��$�;�B5�ur%X|�
	���E�Ί}��ṗs&�o/�E�̻,H�K}ܥx�#+�iժDb񠂉�j�����O˓�˝lSM�G�;lq�f�����܆i���	�I|H��bx�S�GdQh- ϻ|I�y"Q�X�+3�SD~��
+&��
y2�4Xr5��
9�g�Ϣ)���
K{��ca�q+�X³��Y�φ�$�/�"\C��edj(�f�s��I>�'ݲ�=�&=� #�U0�?�;���ӼMvū_nF�5#\�O&~���mX�fl�ؒ��!
|�|e6���;A+h�9�/)>�O�&�d\2�5
+����r73D

�V�:HJW	������xm�ǶA��lc�oC
��%K��"�K+>�|��pN�+=`hi�y׀)����ޅ��~�F5}fa��X5	�Z��Z�"�
+nUƱ�3h�:����Z+ne��J;�=��HYB6BIH�@���P� !Ѻ/��N�T;ն�K2��x:�ɇ�0p�=!����������?}f��^��L�R�p�φ��`@Vr����@�G�� ��A�w"0<����A! ��\�ŜԪ�X<71
1
�'#�h�G�����w_��C0"
��
5 m ṫ�`
�
�",B�",B�P�G�b��P
�!�BpS/� ���t���3�Ϟ���ߧ"�$�
�����/��0����`
%�����:�B�r�Xa`F6;X�Ap��ٕ�Vb�\���r>�i:��_PK�������
�-��:�G��/�Ґ�9�c+.q|�h"�|�X�
~5.�5��uб�Fl�
0�a
|x=��u��
��04��.z�E4)����x	��C�$����Hl-
�
y��ױ;'�jn�
i�\
W8tl�-б
k���؎�nA�
�pNlEMla�Y�6�{ר`�
+��Y�;���y8���0�
��_�w97�=�Ec�g�@Ҁ��=�	
�б����Q�R$Ή
�{P�1��j������`��	�<z	� ��aXB�5n���&s�;J
M���BD�q�
�~��Av{%���|�{
,����wQ��G
��\�:h����Ex��5
�~�<t�;�Vw�]�|()
��4�1�#�<�=��J� DQgP�
��6�X
@s �#Lt�G?�zj�e*��{���;�
~���v؝�;O�{(8C��#
�\�
+���F�س٨
)�S�"̌��tN�T���f`��#�H��8�00��;�Iw>B�΃�Vݕ�
�Y�k`������(,7U
+
U�+�'F|`���
	
+ ^�EMB����@n/����+i�Q���'B/ p�aT�/D�;��C!��X��B�"�0�c�r�>�Q�8�
8/l0݊���M��?�xy~n�0���7|��c�ǎ�0q��)S�M����s��^�(d��^^�2l�/W�Y�n��_�z��W�l۾���ܵ{��"�ވ��־�o|���#G����?�����>���3L6��ğ=w>1)�B����Y"�D�-��U�5�ڂ¢�Ci�����TS��ź�Ʀf����f�pvv]��|���nܼu����}�ŗ_���o��������~�O�����D
%�}�y1�<\�'�_ �g��K��<b}���ˉ�_��+�� '����	�HB�M`8 at 8��A�Aq,>"0X�8�d$
D���0Q ��P���p)#`�@�L��6-��F�8�n��#����m��O��@zH(=&����c̾�dݽ��z�~���x�
�F���������Eyy
��=
�
%�����
�G�	�� ��X �'$`(�,�K?W-=C�
��o"[	;��=Q�o�;p0�ȱ����4�Ï?�����!Idr�
�-�bX�w��AWM�1	��	�0
+��z��޻��}�_>x�������o=z��;x��ɓ�O��k�M�����uDT_�_��ba~Cٖs�J��:C
�R���
���Z	�G#������e&\Wf���HK��i
h�0�a@À�
4���
w�|��k��f�dKe����Uh�_ݯAų�s��94H�A��Se	�*�g�)�A��x�Ӏ�	���n�_To�O��*HSo�Tb.�W]���ޠ�Z��A
�Р�%4(��ײ3n����膆��>�n��E���$YL�!�`*�_mԝ�/Qs��Р�
4�y�"�y��SIf�uaƹ���gc,�i��0�,5���pCu�~S9Ѡriȇ��۝+�]��xW�Y��"��Z:��Ӹd�M�3�^��Dv
�9��7�V0��N6CC4��N��۝#�����>1tdBG*�������@C��'�ie$5��h��ͥ�o�t��Р���Ur�S!�\ʖrz$N�:Ҡ#{��脆�ƒn#���Hi�	Кʷ��kJ��
+�A�˱)s�Ny6�K"cwgI�=��q:E�+����6�
������Zg
+�U�o-/�4C�TР�a;�rV�(�Օ
�Б�u9'�_�4
��q��b���f��՚�
*ʶ��̅ڸ�|5ǢT�۳,�8��Ȅ���#Eƾt^�鎗�{<��6�X��jwУ-VZ��zQQY�kF}QL�Vנ���<V�Dɲ	̎�
�#E�r&�ٝg�9]|ak��۝�%m�[
-
��j���tg���p�Zנ԰�e*�5+�ٖ�d���2�
+VG����p
\9��i���Ϸ9��[
���2CeX�ְ�RUt�6� �N�e5�4̖t5Ӓ�b�&�I���.��ps�6v.��iXm�q-NzX��
S^������J���YVwQ�c�gh���Y͉VK��m x*����2��
G��6������A?^T��Ra�X*+��5���j�������$
�!A�nh9��|N'������h
G]ǰ��.چr'�=U��t�i�.�4��'��$������l'Nb;niP�� 
q[�
�RN
��RJK9 IӬ�"���O�l����i{�%�Z�6[�mْyKҙ�q�L�8=��\8F\���w�����ߐ�LT�e�$
(!�a��S�
Ic.4���
��3l'��u�߻x�=�ن7���Ӛ�VTR��L�z�"����_�E>�ϋ�I��h4��X��$�&�}4��9߻����w�?���c�W�{YE˫���}�?
���Q
�
+˱lp���WDL�|r���V\�`Ɖ��
�м
V��mӰi�4l6
��m��{�Pdž��g0|ǐ��0��a���V]ց�灡F!ʺ[Kn۹�l�{�`�����?�)`�o��h@��l��ǧ�"���sf
\޼�-R�tɌ)��N��m-���n��ë�=��
+�5��e�'#1=0h�tH���h�#E��A����g
"�F	��V�h�•��I�b�m�0;;�6
���������7`�2>���A
:�S��
�vI���QĢU�]1��W
B�%
O�Xo����L[��n`�	�`�Q/c×���hޫF'�J��cs�_��+�!��DtU3(��˗�����vj�������Yy�`xN +
1™�
-x��[�V
J�f��
��Aƻ�
��C)�,�ȗ��fjkۭTk���ë����K���
/c�k$f����L��<z��Ң3������AA�h��%��{E"_�(���v}Ðn���ѡՑǀ�E{�v��X��|!
��33Z�Ѳ]��X4�A�-j�ؒB�/K�C,�_)%������o2-�o1ã���{�z��c���[O�v�ˈNـ�6�V�Ԕ*tA�D�����@�]�)�K�����z3�c�7�
Z��f
�۳��{�p�~.
qte<�`7"e�
����Ui�9��
��!8��\$U����ij��ݱ�f��V�Xׯ�Y�!C}��Oł����)�	)
�ZU�:hF����x��T5Lͭ��������\϶���|�Up?G�\=)����D����9��3�}�[Wa����P�X:x��Efq-6�jɺ[�5�|=�홯G�޺�ng��T�~�N���ɤ�ѝ�ڐ�
l]��=!5��F��Xx�B�
+�Ǫ�����hC˵��}��;޼�kaO�F���#��}������T�YإA
{\,|4�1�e
��W؈���XÎ�R�Ͼ*m;��B��R�q
}����Z鳌�ٝ�9���b�Il��V�ȵB%��0
2���qȌO�[u�a��D�ӵ�7�&��(��-��k~����iR��N��PF
+
�vhT at Ac<
+ʓ6���;B�?[�"ۊ��T�a[���d�����dcW(��i	

i}EU��q%ݝ���� p�P��s�
��vd��c��A>�G�z�(6l��j�;^i<�)7�m�}U���ɰ�w>&�t�%4��a��S
�&�Hs�ĉe!�e;�l����[�԰�0ݸ/Wi<�k�Q���
%ߤC�����X��
<p�C#I�F̍2�c`7�b��T��L��8u��xp{���lh��=�W-������
�r��ɓw�͉���;��0@"l?:��Ǣ��H������./����#3>o�����ƮO�W�}�/
���>{�cI_ᜲk�s��,�p!�m�,�g9�@�O�v.�Rg�u6A��$Ⱥ[�5��
�X�=�ښ�Wǖͯ�s���l��w�rl$&��"���;$�� &,�aq��
���J'�=ʲ�[_vw�MæaӰi��7��X�?�ښ��c˖�9�_��
0t��JddD�'�%x:,&rA>'���>\0�EE�
h`��Nӽ���GW�����pk�z����^`x���� ���+W���c"R,��B���q&<$�Lc�i7�_uA�[=k��V�}����;��Ǘ�/	�����b$�fǢ*�	˱\P������W@�i.w�Ef��x΁H�m�j�i�HW���#-��]
��`�0�(̩�

�I��HL��`��

H��w��EĴ�ϙqrxsvB�@��E���͌����:yn��8~
^���I3���m��fځ�6MmҔK�
IJ�
q�C�wI֣�y�G��ﻭ�Ѿo�bK�l˖%[^ �p(t�4u�U}\�?�ɩ��k����3������������X�b�?<1�{B1
)
�����ʠ)��u
+�e;���5+��j�K״4Œ��^�S5�x{
z��
~q_=�a8���
�ie�/��Ŵ�xX��j(�Q@Ө����ʨ�V���f�
=[rS�PԤtuE�h�x{
~���
{����/���ͩ0��/��
���!=��k��[�8�P�&��ڪY��� ��V	$7�
yM�RU�LMo��gn`�#��#4�n�%u��b��D�@��tP���f
*haTI���Ț^ʸ����,��o���e>OU�q�
x�
-�"���8����g��3h.����P�ԗ����M��Ь]
U,*��WPW�2�M��~K(���d+\����+x{���ڍ^o_
=�N�i�o���Yz!�p�g�'�ئ�b�
+Z�(�e�^�ik
{�����d�E�DU�ۆ�a�}�B���{_k_����ӜB3�sޔ�J(6�y<d#d�؞���I
.h5`U���J��UPW�
+�
+]�_f���t�����--���}�
���l?��mh�tƛ�]��k1�m(�@SV#8��S�ZʂDC����"
�	�Bj��]���*�QT�v?��r?�m����c����
o����G�#'=c�3���#�
�F-��D�Q��L�
u@��Y�B�P���Q4�
+�-��^�u��ֽ��/[|���<�7�Ƒs�p%'
�Z�f#�,��՚���D�ɳ\���S�
8��2�C��:v������D��o��s/��{롽�K�����m�x����8dG�R!k�L����B���E�	��)3T�}@�Z�d`����&�7�+�ܞ���}}�}��}�T�UK8����=1��%
vBFcr�Q�p���X��L"�l��*���"�D�&��[K76�ٲ���m�~��~y5���L�
u?�=�Z��	��8���
��0
k�cw���y�b��d+�@�"�����LCӝ��]g�^�)5Ah���]@�Q���2���8����
�4�N���`��Y�e)68G�Qs$�#�⯜mh\�l���t���r��B3lH�a��O$�+a��FT�&�.J��R�L,�	��N(;�1�	�Q
�1���
v iҷ�4ްin���|���b��-dY��~��FN좃
��a��
/a����i.(����I
+JM(-9�"IJO�E�|�3�٦��J�/
i=�������#)}ȧ���l�
�1S#�8�N����
� ��0��C����
Q�=A����D���R�.�Z�;�[O���j;r��
`��aR�4B������NuK�
}���Ae�A�9N�\ˑ���(��,��$
�fh��w��&��}��G��
'�����E���_���y�عr�Xꂯ,�@.W����D���a���ι9���9*�l	�-�qWG_h���w�퇎�-?k���׽�ҏD�.gF0�
QI��������Y�0����L�,�I�\�(
)'��ڼ����[p��������jx���څb��mwu�Ve��9A��{���@RB
�H,ʡ'�L�X���!n. &��⼏(+�����Aݤ{�4�0�Twm^�Qw
8R���vW�~_UvJ�v���
oJB
+&dp$&��#|$b32A:3�9>
+��%��<$i�CPM�����Acqd�<���k[cݍ����G��
���ۤYѧ���ۗ��	9�J����6�"Y?�1ᣱ&=���3.�t�ET��]�J0L	�)<������u�p���}
�'���/%
��hT'�bj&�����H�Cg�0g��d�sX]���sF�aFG2M����P�`3�
n�c8޿ ?)�J����._J���ȱ�N��p�/��\ڔ�I�Ai�9�_�S����b$k�d���l��Sݳax3���`<�_V��夗]i�5_J��ov�+��À���
5
R!��ڃBҦn�u\�#�.��@33lp�1�%Y��K�ִ������_�[�l�6�$��4�
��_1�}Eo}������O(��E�"9_72����NƘ�ɞ��x%+,��C�T堶 �#��y�{hX��`{�a�4'�ĝ�7�PeK(�"��*$��}�
x�-B
+N
�h�J&.��F�%9�*J`mA
�G*����Z����]���i�;�8�EU͡��k�t@	�{d�K��م�)
�9k��~�a��ə��
��(�k
B�~���gx�l؂�k�N(�?��d'�i�i/�i
+Ŵ�xX
��jx�W�:ep��C�1u3��D�r~Ϝ�K6-�('�,�e
S��$̻챡�l�o~lP�����u�՝���xXO��u�`�.8��YN��J�db�=�5�P:��)'��4c�
]��
|kˆ���E�����+��؋�1SK<l��}FdХ�
5<�S 3rrETvp%�9�T:��VL��1O;ZI�5x�Ǜ�;ƭ���=iN�se��<��T0nk���Ĵ�
�tP����J%4%V at 3\�
+Kƾ”w�0�)F�z�.�*	�-���ה
k0�&�
��Ģ�]i��g�|�7�8�O��섌���ШF
�K���@Nq�4]����iD%�D�qX�-T�c�굘wC����w�	�I�q�#����x���q������A��+�@�[
�q5@���&}T�'�j��U�jM��0������5�o}
�z
w��Ҥ����[�
{4p �v�KX���L���@�
��Q��L�Bc��j��M�8Y+
#�U�J��Va��k0����w�VC*y��C��Mh�mg��p��jL줌�
+��,���:�5#,���QP��v��?v���
=�J‚K��Њ5X�5��Uܟz���x��?��7��c�
���M	���Rځ��J��[�~�`��A�
�&d��H&Y#$c�0�$����U"�W�;��[��e�7�u��C��+fsp�O뭍(��rW;*q )�
�tـ,���V���������� �� X����ދ-]u?�z˃�z�͑eu}��4[�u�*�/ �օ%��1��=���<'�r
`���4;���p�#Y������v;G�uV�\b����KV�
}~�����]t�;�Q�oV���9E��A��b��!���@��
&X.(I/��`r"(डT'=Eq2Rd+Erp*��Vͻ�[���}�n*L/|'t{q���

݅-����*Zkb�>��"mnf��:�p �~0H�A�\^�0�K
����Ì<�h%�����\�|l|����5���Z���س52���C�Rj��=wIM̶i���5M6��(Ƌ(�Ԍ�
I�Ҕ�-�&h��8�VI�l��G�,M�����%;%�_<����3��mɟ�!��
�J��-�΅�&nc��~/l�E�#����aj��!Prj��
�d�
0+j�o����U��7�*Öo��6���
�|��$�?6��:��x�_����󔺫����K`�L|b��
���>*Q��J ���82Eg
�`�*)=P���3�؏6r��[h�/�w`�}����o�羣�=\[����u�᣻���nj:|����Ͷ�o�Zp7ȗ|Im��K��u��:�m�lB%a�5�0��as5�ޱ���wDGI��^�{I��vx�\�/��$ٝ�����h
�c
�D�,IFI�d��B#mZ4�7�"��T�Ձ>m��3��V?1�Y�i
ޯ�-:B������}�K�y�/�e�
N(���^,
+�ю�d�,A#$9Z6��m�toJ�Zmio�=��a�����qS5�ݾ�|O�����ӂS�a�c�O��0��.v8���h�x�'#TQ*L�I�H�L��ʆ�t� ޜ��Yޖ~�0˪�a�
+��аm�=�ć��“�!A�)# x�B�1B	
3��QFg2�R!@�	R��`�, ��}�o�w�Yr�6[�iì+�a�u�c�7�1��'���R�	��9#l��D�����
��}�q�N��ܱ��qZ�ӝN�U�z�uu�k�@�zW���EAAP ��I�\�Bx $�����F�$@Bȅ��pAEV�Ժ9�;�m�-ʶ���������?�
��������������*9�M��8b�ɢv�:j�h"(VV��@��ߠ���T�e���i��4EJt���Lp����avw�k}n���䅜4~�����1+�=n�*�(N
U��
+<L���;s���YIN���iBx�6���
+�_�s�Z���fF�G�������ܰ
��Z)H�B':�!�T�Ur��_JD���o�t$
���H�\$�\���V����Q��"F�a�]|V��aG�
^�j
2��#(Q6�"*r�*&!i"�$]0��
k�
��A�]0ݺ�4!>�DZ�р��/�rz[I��V��-��9�~��`q�L4�5�z]E�����CmdULD�D�](Հ���������OICV�t�^�D�A$"�C�
V[��+�{�$��SL:��Q
�1h�G���	5M|CF�^k�ʇZ��x3UA��P��i/
�
����n҄di=�ۊ�~i��+�z�d��%�C6
�@��>k\��O�X�["�d���>�Еq]i��B�6gx;iذ��%
�
+gd9�	�
$*�M
M��//uxU
�����a�����k�f���R�2�ȕ\o`����*�X�(��
�0,OƤA���q�����.�<�1*;�
�O[�T�������{�j8lQƒ�
�.3&�B��a��:A�8�/��	W=��h�S
�g�� 4IC�΢���/�}ڐ:��=k�J�]�*�
��
*8�l�]Kh���-nH�6�j����	&_c�i�S
3Ҁi�r`xaؚ�D�y�]��Mݧ
1M�&��o
+Zr-��s.��j�)�kjT�A�
Ad�GO�۸7`�p
�HG��ܤ��M$Հ�!�o �?f�*w��m��2~\?h��2b۩z�2�ln��ʯK� �@1����'
��
TY�Y�0F��G)2��U���h�Ӳ4`^���2�nK֬f{�}�V�m�&�p�ҁ�-Zw���Zܥ5U�Uz(Ԧ��MjJ���
m�3G�r�A�
��A��%�h���4��
`Z�	�����lV��y�1>����g���<��X.t+L5�2hA)�-�h������D{��b��8V#�aU�h���%i��2������4�!�_]�+�.��
x����k��q��n��-1c|�Fȏ�`

+�ju�~X
G(ZF���
�ixX� Z�E�u���i���2`y/7e��Z{�~dU���b�k�"UW�Y��s��e]-
�
��5� ?�H
0
� M�((#DDYa<�	c��0E����P�ۯ���e���z`]��Q`����%y���$4�)l���	���V�n�b�
��:3��6�z&�O3��#��dd�
� ��
`

�cs_�Ǣ���|)p�^��g՟oM,��w�9�ԛ$Ib� 	�i�{����e�:'�ɳ��
+��e���;`/����L����l����{1f�/�
w.���{ɒ���}�x}c��뻬�2
+dw���6����M���f_�����=8=�M4�<d3�
Ypn��	�j\
[��e��bۯ8��
+'?�nu��lֻh�?‹�Do.̴�.�V�{�df]%{j	
���'^@��-��Uqu��j'�
�/��� ���).�ѕ�}LU���:��S�7}���k��#��p��r�d�jz�^.���"���*���`�N��nR+n�0.���J�*��Uq�G1��|]����0��?Lm8;7�I0y	Nc�
��ϋE���ƫ+��}�
V~��R�}���s������ߟ�Xr����+ߖV�S�9��+��;��S_c	'��'��"��OQȹ�i�c�
��$��jѾ�W�C�j��-K�r��[��
x�#��=P�ác�
?��8�lޣ‚�K�����±�%GT]<�=������C�H��A��—��eV��T����+���^��˹`�;T�v=
l�\>�~	|�y؟��~u���G<w���
xz���ي��Sg�M� �'�9�t���L&)A@
+mBS )`B���mh!1���Rc�ӒeY�u߷dIֹ�z%!�v�]iu ��pd0!L���̐�$�̯ۚ>�? ���ӷm�
�H�
��oz������ޯ'�|%:��W�S�����
8�#�^�87Ѐ����`�S��ӏT��]�=�r�{L&��u���~C*�gN�{�i��%8�
��dp�?�3 ����x����
�\�ahe�
eh�
��jO�y��`~���R�M�OU!�KrU��h��>���D�u���38lj�,J0��pz���T��~��ޡ{�&`jm��
�յ��k�˦�t˸��("�R�(H�ɼX�&�Q�oAq�
�q��
˓�2�,
�a�h6E�e��X=7e�Nަ
;63e0�u��O����ɧ4]��jn���H�"Q��RĀv�
ߌ帶l���a,/�1 
�G�#���
Œa���ܔ��>ehi�3~�1k<ʞ1tȧ���i�PQ�'5�D^�LRM�l�)��l8�q(˛G�|����
��0#x���eX �+)�z�
���9�Ys{�xJ1�?o�����'u�d^�H�2�k�����<k>�q2,9ʄ�q�0�0�|���h����ah
e�>o�
옵
fϘ�+&�; [...]
+%�
��h�>�鵐i���f�qf����b�5\��É���ߊy�s�&`�`���1k�{�ڦ�4�vT��ᢁ
/���A�ɩ�YL�"2B
��5��=�+	v�:̂*;\�q`r�!�=�\=�
���y�������c��ʚq
�OZO:���ᢉ/��)�,�du�
�P�bM9�7�Fz\W��j��z{Be7&�H�΋��	�(�����
���un��̬��u�yP>�8�Z?�]�'�[E(f��jY1)QU��oh"��^�jN^�l�^$o�Gs�4o�-��Ҁ�28��>u�9�Ƚ�yh�l�u�^s��K�O�3�;(j��zIyD.�
�A�s���\��5KT1��E� ����7�� w�>u�>����3�
��m�u
*��].�������NQ!iWcZ�DX���
޲=7�B��^Ut�pQ+.hD����2�-��h�M�;[���l��'�Ap�d:�d��;
,{O�H���g�����p�j�]<�5��jT:�h�Cj���J
+]QI�%�d�@�����
[����[ߎ�A;.}�߆w���[|�pRB�\�G;���A���-��٤���
��}S��KU��T*K�0)�!D=� eR�oh`�2x�o�.���cxk���{�w��t#;]�ds��=c�?�bv>	k6�`B��:��E�M��{M��DZ�"V�E�
+��Ӽ�g�w�o������2���o�M�{�
�ir�e��Ӈ�Ţ#�3P�S
+	��}���f�j��;8�wy��m��>3tE`��uÅzA� Q���ln �w��G6
{�x�����ϫkE�7���]�H��H ~������5�_8��ɯs��뜀g���q�+<k��k��z�ʰ�2�Iކڰ���
����ꚮO��'��6Lj�!�D��D
Q.aB�2,�� Q������1&d�1B�*�U��P���z����/��i���D���~��?>��>~���?�>].L�m����`�=a
���cܜ>"�ˑ~R�J�ai�VUXaS��/���%(\bxa��@�
@�Յ �e �nH����\�tz����K?��Y)�ƶX
�f�#fHv�uq
����Ҩ�Fą^DJ�
+��a]��XH:�$�?y
.��d�_Y«�����Ѷ<�����/����"|g����v��tȣ����L�eU���'���돉s����F;��3����
�����@^~
�\R��|Q{i��K��|�
�;��yw��p�Q��~��z�D74�� �(/�����	vj �H�R���twB;ڕ0�^L�G;��t=���@�A���rɊəū��K��~�5��
�
�
l;��ζ�Й����twfe��vu�V@D@9��\"�IH"$!	���"	I�r��Tģ��]ԭ.�㮀���:}^�E_|�^<�<�~�$���g���oX7�XMs���S�R�8JI�j��'��C����=�
r��[�k1^�	�}bc�O����7����_my~{`aa�G�O�?d��8V��9Г×��;��-%Pȷr��
�|%��jMk�
V��"H+&Im�Ty�x��d��,
c���T���
+1*S���]����S��wB?6o�?�����>Oo~~���������Z�J^]�r��rj�����[���E
�ۛb��.�A�\��Ԓw��ͽ����
xY�b�N���
�8�ww`�{-C����p
�lI�nF�'�L�Ǭ�/F>�-/��,zT�B�^������
��O
>{��.�����V�~1�
��v��tnYH�I׽{Bc{C�������:
>g�ώP���:}�$%_z��^���U�S~n�ˢ��e����Ϫ�������q%�k�ҔIe�?R˒�6^L|�,Ox�ri'�
�	���ޥ^y/���	>9� }�Ǿ��+���2�2AnB:@$����dP����������Ɉ�ğ?�Ǐ۠d�~u9;�3'��ܝd}/Ds;d~��>�O`��?T��.�@�WY���4�v,dG$���xPt2\���11 
ЧO|�	@<(�1>0�n�N\x??��G� ����	�)��e�U��Mu����ƥ�6�-�k8�b#S͢���v�횮�馐��J�~�Ү�����*��`w��o�2�`�i(�`���!�8)��:���W���@�K�����D�|�Ъ���j���)��{���g�3�Wzǫ��qd�q
�1����>��,��
��A�����y�-�"�8��Yh��f�NS���%�o�_%B�)�X7�o�Ƕ���;L������ye��T;-����

��D�A
 ���
���

�p�[�Z�T��	ͷ�4�zS>Kk�L7tD�a� 3��f��Y�`�l��^{��j��{���~8
&x@��
��� ?=
+�R7
+��E�Une�2�^dQD�L�r���9I����[M#D�%@P؆�~?V��N�����
8
��o��
@�A$o
�@����
(�pM�@��/6,qkً
�x�դ�f�u㍼�*d	�%v����k\C�n������\��ӂ�9�X��g�h�
�?�)lń(9
+��R7D��k�P�Pq������Kf9T�$�Y?���.
���c�(w
�5�A��3��x
�ی��{�6�
gsv��`�� ;���l���lH�k�lԪ��a	*�,�ђY.I3�����8�a���O��r� ��7���91f�k�p�oui�6�����ٶ�0 ��( KJ�lK-Xo;_�*�%/�K8
P��*��c�K3\iaY��<�
r��|^|ǐk
2�L�=�>_����U�SI�;��
6�mN��H OH�T$�+�U=Td���웒r�l+Z3! ��6?��9�(�zI�!7�3`�z�ѯ��P�^e��-'ڜ2�������a@d�#��LҖ*1��:�H�F�מӼ(/�J��	�pEH��y,���p��W��t��:����;��7
��^)���m.����3ȷ
'����=�Zs&�6��qg
+�6�q[�ͷ��O���G$$�_�py�
��"��!hgT���6�! !�E
f_+��Rl.���[�b��u��ũ�@���36��.��}"~�'��>�]W�6���
S�L�
+��
1�f񌒢�Su<*�q�O���h�fuqi6g���A�m8�%h?�w�=� �Oe�4Ĕ=1�a��$P����[���k�匭�sH_g7)h�v!oF�VϷ0�&9��6��g���t���du��l�`�5(�
_�YT8PG
]�����s߉�5{4�;�~e�l��H&{a�L0�Ejm����<,P���2�|��s����sz��l� �e�1�-
��
+��?N��٭�<�������T3���T��TN���ؔ�f�WZi[�y噡r�x �((�x���J�� ��!x$�)���ef5��5M����>�s�����׏o�P�ʝ~���w8	J��W
1�4G��u'��C����0��VЮ#�ԫ�%JFWV]� �R�-fE�`����%l�a*�2
+�
��&
7�Ym((C
U�5X�B��~�dgr[7h��~��
}���hč87w*A?������:�Lڞ�6�4�^or]����������҆
�Xѝ&j�L/RiY��vCA���)T��u6�Ae}��
+����{4�8=��?p�k���������b�P��Vg(3���]��BGi��K��{h��nzicg�X�e�TC��P��	T!١} ���փN��t[�>59w���#;�vމ)��/
)+F
�$ev+����Ӥ(󻒔�.�R��PtSj]���Τ
+eGr�Jc(�D
5f&P}�j-~�&s�w
�l���
&���n.Y�h���)�
Y�Qt���в�
�E~���Nkb�r[iWr��a;���=��VCjRic.���Tڄj��P E
��&P�)4����6_������.��K{OkV�W<>D��:�Ew����a��>r�:����lH�d(���qm���6�r[uKT[�|ks+Au��t�pP�.�0��Vh�a����f'��
,�լ��R�:!]:� �se���p�1"�@L)�F���K�%t��ەYݑ�@��	�29��
�!��kZ���b���.���zۖ���7.nޭY�����[��"B��>�ߝ�1��c�E��G���C	�z)�?�"�W���Wc{5:�
��D����UՄ��/
+j�DA�?��i�W��7l
Z��7�ʷ��;����[�����%���NJ�d&�Dr�'IY���\�hR�6�0r�-��ʺ6�W
��C�`}UI���$P�,1�oDAÖ/V:���e��ņ-�����`�,���o�Y/ݱ)�|���!	1�i���Tܽش��D���ι�t^�73h��
0!���-��/��
����]6(֣��5�~c#턉��ӗ�R05�n�l�:����C�Ly�!�
�a�1Q�_��sO�q!�)��%5�#�����03�g!����0�̃�T�����2��^6��:ע4C_��XW	�L�����:
�ip�=<��U_��A�ޝ�
�[T���X��+j��Jr��K&����x��?�<�pj��xrY
���
+��F�֠�uF5��1�x�n]!���L03c��y8Z���,�v�cAp��B���
^�G���ubϜ��>��'>�������s��Ca����@Ci4kP
z#T�=�� �sa�Tؽ��;�`�����f�
Vg��
�� �;`
� �x
�N�@vv���G!��	R\
!�p����
�J�C���Py���8��Otغ.̾���߄���?�m?.�N�����8���B���p�D
t ��=�~��8+[�Z�!H������[C�k#`�X
���0�- -�	�"<�A
+|G�F��1���<�SJ^�R�0�!Y��@*��'Ve�.������a������
+f»3�����a����C����6b�@

��F
L��r��p`E�eR�+)�1�h����
�"�0�Alq�<���T�;K��?C�L�ES��T�Z8q]41(��
�n	o�o�>dl2.b�"�
��>c	�@g�aЫ\B��X�K&=�ה��%?}�*���_��Ŗ�͐��i�ŢIb�h�X<��"��� �JF���A����0(�&~>� ����C

���e	���C�f��pc�/ش��LV�bJ�-?k.A�7_"���NDˊǣ�%c�ƒ1���;���;���A�Ͳ^bYgT������2Cb�!�,OK�=�
y����7�����D�vZ�C&�3O���&L%H�q�1�����|4JYq��Zy��-�����>i'�:�O�J�|�C�>
1d#�LĐ����3�ѫ���or���ٔ���T��Ûc��M'M$��c����ؚ�r]�0IU=
u�f��#��� �Ȯ���Z�T�!�΢�<�0��ZO��sj�Ӟq�ku�Qj-����"eA���`	�@XB$d%!@VI ��%$lj at A��A�
V��
G��;ߙ�uz��ݼ�</�W�-�D
4�P��
��Ƒ-���
�aX��kSҞ�d�h�����[dj���Z�
"Ox�� �ɤ��+�3
-�:�����]�VlW�1��U��V��[�T�P��Q-h%�B� 7< x�G?p��_�1g�0�����;U$�x�9ZB�_/�4
�	��9Җ�X��J�Q��r�]�N��l��8��x�Z�w��N������̆�P
��!��?�G@�ﺄԧ���)f�=�:N+eyʫ?�X��|A�U�DُS���VM'Ρ��8�Z�C�"84���<��&����n��@G
�}+��/ԇ솆�Ph�:�F��L����-��ʡ��I,��~��!
(�k�˓�_�i����o3hrme
bh&"zi�]'�wh�.t�{
�P
50Ps�
+o������𘷢��ϛNb
+�
��eR�YD��^Z?D��^)�.�u�ZB��5y��h5K/X��
6Cc��u������wC-j`�]�A�@�=H
���w��KYL�#Ib�dSj�O�l�?9���������-;r�6M��֜o��
,�B����f�!�:���:o������
X
{7�$pȃ��p�Z���Q�OZ�I�wd4Oc
�
+�,�մ��s{��.�`p4��b�+����6#�1�K=�Į�Ԡ�Z��D
�=ˠi���E�~P��
?�
Oy���N���9Wz���J�LJ{+�m��:�%:'�l��J�Vf��\[j32JmF)������
`�j�/��zhٽ���
:��p(��XҔ�x�D;lN/�Ug��R�X�'�72vu����sUU
U�&[�b��XMU6cUb@�{���ų������w�@��4�����4r �+,v�RL���S�}��b�>�٦$�DbR��f���w�9Wi��Q^c�UT�-U3�f5URm�J*��0P
5p�̇ƝK@���ޱ
��C�?�
+��
;61|��������3$�-�!��x�UF1�x��&����(��b��JfX,�t����f(�F�ނ�Og 5p}��o1(����f������������<?znFE_
�O��1�ʮ�!��ѿ��L�W����V+GO��d#�͖��\Ȳ�j=�a�y
����x�A�u�|W�qˆ��m[���w��w�vH��Dd�k46U;t*_ܗBc�d�˜Y.Bn;geR�
+s��j�l����V^h3���k��s
Zo
5p��� ��w�l\�
ٰ�٥����\빽{Ǖ���;��nE��G�u?&S���>|Sv/�%��V}�)�$;͚�F�.Meם��u�EmvC�'�h��QCݢYа�sh]��,��^�trx�77n������9�7Lw�@���,�Ddu,�B����
 ��%�k�{��=���e�ե:�u�S�.u�ܥʐt*�
����ڿB۷��/�����7&V,tOm��x�}������ 
o*�<�^DA�xbyލ��0��>P,8�Okĸ��D�T��6��.�HO:{��
9F�#OV{x�A��W~�%�=���3ϭ/?u��l����m�Wۂ%/���=J�=:�U|?�H���d�eP2<���EL���p�Y?���
h����1���
}
�־Fo��/>дp��y�7g�3w�{j�<���U���m���v���?�6
�T��Xq*6;��ϸ�AJ��S�+�$����<��u��	#j��6r���
`D
3���,o�p�H���
���O�m��\��ekİ~'��  ������g���g�=�`O?H'���O޽P{�\3A+���E��%,�a\^~l\�f/�Zvll�k �������sip�����9*X�U,_Æ�۩�#���߇Ec�DǧM�'%�HNIx���+�\̣����$l�/�ptl���%
��17�~K^�}
1d�N<<y�k ��g�:ӧ�w����G3�/?��_͂U�V��V������Y�
+Q������:�j���8
@ϙΔ���Zt�V[p��
+�
+J����,ʒ�,$�@���D�L�$ ���Q��U�"{A��(��"� "Z������3y�������nt�;b��7����i���\B�+11쥂txNE���%���!�fZ�s=�ycr�̏vi@��~Z�j�^��������֬̆M$�k
�ەA>d8⇃ȀX�
�<&(G��dl��1�?�Ƞʨ���1���3
?��
������3v��jjqB�n8�J��:j`�G'`�21|��
;7�`�&�o��P�h�
1�G a}C 	
)ȁe
���d
D#O�/����6������
�P{]�䈪�F�
�(��䠀�K���c�.#��K<x������z0C |s �l���~�wGy�~���4�����;�@�kdy��n�#���֊B��B匣P2��
>q��gK���hpu�
�?ŀ׊@ؿ� 
tAC��}��"��c_zA�W;���(v@��ہ��;�\�B��Pn�
��
:�w�#��-����y��a��~��	���C'��z6�
UC���_�����
+�
B
�9�t�
��;���{�p�?
�*���N��N���&�	n�

+n�������lw��
p��?�8_�QC��<
+Lq�;FV�k�)�+�>e�RƜ%Y8ω��g�z�4�Q0�kMa?M���4�7�q���1콌!�}�
�X�u;1pC:b`���!7Ey��!%x���„�Li�������RK�33o�T-�"֋�2��$��+�Il�l2�_� ;$���'�I��$�ʻ���厐������7�Fz�,

���\
�
GN�-M��"Eǚ���T�`�R%~B��L&6�
.dN�(&p
�G��~H9�8���8�l'
+�����]��m��E
�P7Ȍ�E
2��&G�rp��I/�9��iγ�"�Sz�x2�*}L��|DjP�'^81Nh�~��ʾ���}�8��K�� ��i���i�1��U v��p�9��l��	�Z$���N0g�y��4�x2�L6A�T�'�f=$7�< ��Kl�
#���&���s�)��'
�/S՗���
@��	��A�
+N��*��1h��b ���d��|�
Q&�O%x�ΗL��(Ɠ+��jU�)
�Q��S���4w�75}�M{Ҁ��6��D�6%h�'h
ĈA�D�A��
p��
���m|(�"F-����l��Tže
'�Z�8�8k�aV��m�F������wI��I7
+�i����~���~���~}�F�Y;A�2��	��Π�q����@���P���B �^���W��f�ΔT!���
sF������.��
Jsѯ���z��Jr����И�k8��W\��+�e^_4� 1b� �,o�
��B��!�
�APw�}A"���N�Uq�SJ�xBrR9���
a�C���۴s%�Ime]�+�n���n�Yf����SV��)��)���
��!c�H�ɽ_��o��C���P%���
�I/�
֔J z�P*�5�ani��Ԛ����>Z��*��|��a9���8�fkz����.7q{�ʹ=���O
@�d�A��
(F���0��a�D
Y0�
��H ��R'u
��J���P���
+
;�-�ִ�WS���Xm�zN����f���+��
�2~��D�]nt��1���k%��~f�o�2�
�0~P�y]�܊�?����K��
+��
Չ��LM�eQ���k�j�\��r�U�[k�תK�mV����H�aы�LzqW�b�
1�C��O@��s0���
+�&�����߷ua�s�Q�O���
ԑ���Le����-Zy��
Uq���R+���
+�Yg�ԕ�[j�2Zk�kU��6�N�Q��t���.�bA&b�#�Vg���
L{�B���P��z�7
����C���F7��}���V3Gv�H�wV�e���U�+�mŲ�.�5���[�4�m���y�6k���R-�4���UN����<W�e���q��h�w�wϝ�}򯈀�+����N� �LR�b�Ц
)�skк�8r͘a3�$gR"��
FB��0�M�U�D�)���M*�W˦ҡ�=��?0�^??�ߞ�	8��&�6�
�U}�|kY
�� ��jNve~fI-�[����4�
�
}u���^����6$䥉+PI UA
+R��9(1�B�N�7׆K�/�v�o��������u�Q{�8�7#�Ng��&�eTd�֦�T7&�t6%e�6$g�եd�פf
�RyC�4��%��ІT�!KOJѿ��5h:������.����qƳ#^؉a��`o ����t=�\E���ˢ���
�IW�㊅
1ŷc
������&��W��
�J�U��
�HG�І��7��XjMv@��o��\�ԙs�y�����(���`���;�0Q����\~S\~r]Ji�(�*J(�
�V!諍.�9U0 ����4\Q,��x�\��6����\�MPi�
���P�S��ϯF,~��î�)Ӂ	o�[#d������^ΙK�ii7O�ĵ%G�d
��˪��m"Và�p�*�lHU2\](���+;�_"�n�.�P�-
�����KW�X_iz��h�V��_�F���
Z
�+Ǩ��bV
o ,)�7&�D����.~	��Ҳ���唎{��kb�F,��W
Zv�,���Ոɀ�6d�
W�6@ݾMЮ)�a`���cm��Y�m����s���͸;�<'z�<��'�I��nj�L
���E�sĥ~��$�B������ђ���f�X	G8V̩+�2�HA��:h��k{d�v��̍+I?�U�
\4P�|e�ۺ`o.z�+��'�?C�'����~|*l*�
c215`��#M�e��f&��>#�rH��������|j�x>�A2�
9�1P��R����o�<�݂x�.��NW��@��Ʋ�5΅�ʃ���vz!0$l�Ŝ��
�KH��H"N��_Ԥy=�H�z�g���04�A�y����,����Ey���٬,��G} ���"}�b�g}��OX��e��e�K�'!v�D	_�0Y��ǩo�"ȋ��ą����s�^����kJ86׍z��99���`���t2~@2ȓC�B
yvK�߿靐E�?)�ԯ��&X�׺��5�\��L^sv:����F"����e��d?�	ƿK	�\⇻�)�t{]u�e�5�y�n4nq2�u�e����I��
1�@�&d�	��t�G��e��ɍR����R�؞Z`n�v��b��, �S!O��"�������
+���Hu��
r��K�}*e:.װ�~��v�x�c��O�ѥ���$Z"��o��
i�eLMo��ʲ�@[�
F{�^
ؙ�Μ�����
�.�z�D{�@���
�,����D۵r��Z����
?��
���8�r�D��݁A�
b������fL6�lL
�0V;f��`�K���dp3% 
�	d
7���
l+G�q@�#[8ko
�G-��x
+�,�
=�j]��
�b�O��r��T�!H�4�d��T2���-�p�Sb��j ������'�t��C>
���
Z���M��ISs�?���Ç 
k
+��L���DF�r��$j�@�#H�$���C��!ױAU&46Aw�'�(���vG�U��Nkp��+����o5S�B��!J�b�
�D
}��Ӄ���P��*��C�D�}��qI�E�3� a�Q����*�q�G�
t7Z��#`&gV[��VpV0wE����Jz@٦

�}�}/D�І�
�����.�ݐ��r%�`U
0���j(�6
+�pUa/S
��1f�-����u�%o�/&��|E�@j�� �R�|�i���A���
+~����9�_�y��"�
�-c���>CzϐBT0�Bh2 at E��jp
�B� �e�(;`�uz�P/�R�
�e�@�����SWI-A+�v�w����>�o��/��e�<{�g��@|˚�]b=�{ǖ��
lMi2� 4k��p/
��7�0��D�'���^�'��
�Rʚ���B���ka~�mg}#��|%��#�3a&�����ϰ&�5���==-�:+Z�QԣuTD+�ʅ�u�Bf!��
�H�,�'$!�Ҡ("e��(U
(�L�x at e��(λO}�����s�7�i� �/l��>B�G<s�g5Ġ�f�m��>/`���X�/Ш[���
D��Մ.3�#6'�=�0�]�	���3ĉ�jқ�:��k�����c�i�!�i�{J���FӚ0#N�I at Z�
+��݀�������������xr �9{�"=q���H�{\v�[laSBz
YF���
+�Hz�1��|��
`�D>e�1�̦����X�
5�Q5P7y 7����@��?H�
����@O<
���qzܻ�,�\>�5�F}�)����b��_d���

��<	�y�`ۣ�pna�p�E?���t�ݦ,p�8�����9 ٹ��i�$��,~�'�<�=E���3��c�h/qǘc�Ӭ�*�h䥄g�x�=�?1�x��~�M\��!�_�;�_�[�������
8>
 �yȷ/�5�
�Yt ��A�c�|bI�o���#�e\���=�;�0��
c�Ñ͢G���V\_�͘>�؇�:�Cɹ�>q%�y?�h�]����� ����z�jPo�4L �	A f�~�	�'�J�8=���le����C�5�Q
��Q�I�^�M|or=��񁬊�@v�ܛ|�ܛ�,`�:j��p���!u�l�,���Ap#��@�䐏bv�/����f<���#�|�`l��	�\� �Qރ�R܎�V^��N9O�J��t��Q��'i=
+�G�,`Ow&���� i�נ�8
��`ڹ��} 3�
ѻ�k���J&��DD
�0�
�G�
��M�I�T:�
�wc;��
����rj���ޑnct�3:S
�])��l�G
�en G��
��`�2�w,�� o�o~g���1����Ag[��$�K����i�Py�R���T��'5kk���CW�l�Ƿi�Y��<V�*�ݙ�,��m��
+	^S u�W��̀�-� w�R�۽�C��W�a�#��A&RXo�H�0����H�eNNZ-�D[C��W��ӌ�x��P�n��r
�ln�6�ۮ�$t���i.�B
��S@�޽��� w�',��_V�)޷a����B���<�V33�N���"�&i��B��<�0��]n���M��fS.����kA,|���w��6-"hW;
P{�+$�w
+h�	V�o �7����m��؉=�O
��;��~1���#��+�	��4R�)i��$D},1�pTPj:«�d��ZL�f"�gԋ�
Q�^'r财�g}6pP��q2��
r�=���Y`�<�M�V�ggv��8���<���	܁?
+ȸZ+�Q���'5
+Ea�NsDfEL����ƪ�4ei�w�jis�Zڂ��v�J�ХK�4�
z[pQC���
8��
�m�����e�����
��.�[�Zuxˍ2��ߏ���2�Y|A!�,�֪5H��(�,��_��[V��E�h6)�-F��nP�Z3��mZg�o��+ȿ�
��S�����{ڻ3g�V�4w�n���K�W޹p���}�J	زc4Zq
��mː�T�JoD��|�D]ni�[Ū;Iz�I��bLJ����Ɋ6��@�PC��ɐ��ū��Sk<�+���n��װu��aNJƋ����[q���R(��X<c�(YuD��Y2
��\3�x:�e�j� w-��f�@ӂ�v�(ݑ��֦u�g5��
Y2l+��T���/.��zએ{O���;�ۗ_��߷�.lwi
."�,�d>��jl|��(9U��ѱr�����fr�%
5���0�3����o�'�
:��M�,��s&��[W8�n�R�)UK�]^6�a��֖
����6�X~%dg�El��|
AWIg)�E��
+�	��b��	�K�1��F|q
B̳(�V=���1�m�xC��Y����0��;�̂�c��&���ε�k�����\�,�����č��
�`�rlLj
��x��cW���ʴ|�Y
u��6��NQ��aK
:|a�6.����ݮ�X:ҝb�M�f��*�7�C��IC�<\:�������W{}��w�/<�ص���� SS�~Ս�����u���q��uDP�QT�(��b��I�l$$,D�*0�:ŒZ;N�Z��:n��ǵZP*���2�)�UdK����9}m^|^�������K.�7V����z��a�Z�������j�BK5}��F_�\c<�\������m�zG��i�af�ӛ����0�ܻ=��|��j|
4�쳨�Ǟ$M�W?l{�������I]voqf��"k���[ե�m+��U�n����zZ�h|��:�^E�h[��m[�?���<Y�<���
��
��id�kMn��s���Π1G_F��}�
��7^��g�Ī'��AQЖ��n-��h-ϥU�+
m+��
*��/�?)��(�^{�\��|������g�`
s��v�}Ε\��J�
��}��y�����*!dCOZDU��[�M�t��Y]��U����g(�֙�][�u��������j���xi�ڝ'��S ��](��U���N:��HӉQ��
9{Õ|��F
���
���`䔿ڸ!�m��2�8n�M�0˦M7��"�-_&��R��*:���6վK��^��<�`Lj7����x�^�[^g��X
�F����tƙ�it&Gﺐ�
�
�\�
��U��ɫ�T�4N>�Q��IT��"�b�ŋx���F���R.��p\��T��*�m?���;��1�t�e!W�r�Ή
��D��y�jx,k#�]�!Գ
Q>ňX���&�gk ���*�Y>c�Ȏc���d�%rQ�
��)�#5Ңq��+�Qh�G��3bw�F-!?�&�H#!�����Ej��Z�Q�q_��qY����_��iR���H
�
 [...]
��sp1n
�q�
��9fG���!�~%d͠3Y	/�RLt�F�kӡ�\Ob�
��IC�o2�� ��: Ʃ���:K��ayU���4c&�Ϝ���Bp,4?��
�#G�2�_%d�B����R�+>a����.|��
s��
���xF��=�qs@��
݄Y0�)։AX���ISQ��-~�b��Oqp�?��;��"s�;�T�R4HH6�•%���t�0
	�`�Hp\�"b4�G��
�v�n��M��- �1��
3Vw_,���
Q�1_������@?�	�`g��]!�gC����zzt�Ph
+á.��r=3��'C�M*${y�C� ��B�EXtY
�m	��R�w2���6�M�V�/z/钼�vH�?��i�3
�lhS�`�¨DFf(�Ь\ �_�ܜ�v
���CrH �1D�%�3O��
�;r,j��ߥ��h at a��Evy���7�;�S���0�	�A1���lz�,�
+��8��H��A�6	�M�PnK�|� ��bH�-��
�z9DW�UB𘂠�z'
�~٨
�]�Bf���oU��
�A�
%�@ǰ���l�r��2p`^
cI<�B���W(w��8 ��V�)%$u�WT5�!zJ
_�6� �+
�_(lt�rH�
e�<p F���c����G����<��e�a�r��
KQ��)����"�z��~G)�O�!��@zU
�}ݰ���.y��
�:���ڨA��T6�
z�p����tg��\`
+g#/�
����H
�B5����]
eE*L��o�@�C�^T�i�<���N?"��1,���V�a
��;���V���>�&�f�|U7h�� 2}�`t����06
+c�P��2A J�
��$7�?OC�j!L�0lSA�G��~Du��AYgV\7��?��Q��tR��6�?�I�:�?���K���
9���4d0
�\`�Q�r�$T�OC�l6Vh��%<X��ȪV´��a������=}��NU�m���3�|�ۣ��m׾�m��Y���~2���h��;�ٗw�X&9�4��,�5+��bu�֦M�ZI(V�Q�0qQj塰D�>o
e���Lp��q��__�ӫ��ڣ���I7�?������k��� ~�"�-�ց�j�W�u��Dd� !���I�
2	h�����QP�(T�hI �
ǭ{{���̋��yy~��y����$�A��'b*�3��7Em��J��O%\�OŚx4C����<H�2
+�e����z��v��A;�{ೀ���M�yK��P�a��,���`�����Bхߠ>
�
b'iݑ/���f�
F}�KF-�%�:v2�2v�f�A�i
:Oǡs=�_H��`��0��Z�:�*�J?���,�m:�����	20%��	��q�qC����hm�ݨ6foT?�'j�݆��4�9u�	NU��<��*��А^�	_b`4���0�6YA���P��2���
�4���]f��2�e\
w|D�
x�����~j&��T�x�X���p%�=�6�s���@4�j�
�r�ѐǓ
+)�
[�`b�c�1�`	i�,�p�<��f;/���_����
+|
��A;�s���T�!5஘���I	7X���-	eI�$-�>�CX?�\I
j(c����O3 �4#7�6��N�0
�������Zd�{�߽\���m�l�׷��m#š�C�����.9
�!ƶ��˜LV
���]�Q[�j���6,�K
e�D�
=�<Àd0��
�x�9h��@Z�jK���f�{�p��?�����p�j������w˓�S?�+�<ڕ
�ߡ�c�S�X�8�Z-P�K�j~!�B��l��0{R2Y:��=,V�G��r��
=/�mDP\s`
z��[k	��sB�f���jv,��t^<{���	��j]��7�w�Z�u�@�E
מ��V�ET�$����x�b%R��ν)S ���$�"�B��˸D�5ŕ�hڷx��HG��z�,߾ோ;�^5�Y�ovY��cS�%�]7+Î�j�~�jrXU�P�P��l�,S�.)��Du2qrg�H�\&餢�a�H8�,�	DO�7"�@����@��*�,��X�S�����i��y���}�-�z.��h�
um����ǟѨ�1y�H�J%e+�f�%�
b~j���ږʑ�!K�餈tX�HF�y�1_d��
�9��i�9%F��Wa`�F�����
���N֏o��������U��6�>\w1ҧ�"6T���U
�"O�e��!�<3�2%Q�*�f<�%��Ii#b�|TȖ�	8)
GjD́dtm���-��
��,_������tm���k�Ń�]_t_w]������|�`e�DAmLpf�V�"���tn��K��R��%q��)�y�I㲇%dՈ�znLHK���
+B���@
+�6�X���� ֬��6�c�7W�G��0}wv�]�:�����֋��5-a�9��A�ZR���N�V��
+�T��#��$�J�đ%�"\�hrL������ǟ7��J#�rn<�
����[���% /sڥ�Y�-x�g
~��5��=��?�
X���t,���S~g���Z����x�B��/sI$�4IŎ�� gj/�C����5z
����*4 ��F.!g�CȚ0
���-���E�m�-x�l�ۀ��l@�З�}p��Ɓ}�U��7�ܭ�>�"��Ϳ
{��IŒ�81�k�5��R�ji`����M��K���	vX��QdbF�0
��
�v��<���[�_o�7l@���陣U��eE��m�z�]~?h��n��/�$�%8����v��C�2��]�$���ow/���4��WԀ�W��K���կh!�A�b�;, å`��
+t�Y��
k�2�4��c��
��G��f��M��c��ݬ?�Q
��
�}#ف!�����'Gz6⼆�p��q^�o	�7�}�����:���Y0y!��`���X��NK��g
j�,e�UL��9or^!�p]/?��4��$B���Q.X=�㴞�0&���+��A�m���;���2�]�>����0�����Gz�b
L��;Z
hk� 
�,A�}kPd���k-��[me�{V�g]�1f=��Ϝt������{j�x�&��{���9����:����j��o�|�}�{��׉ϾGt���~�;���߁��p���F :0����Y��c�>:̓|�ޖ��y9�ӡ����7F�y:�-p.����]gQM�y�?		q�
+.,*  �l!!!{	I	�7�k
�KGw�KU��#-�X+:�u��A
=z�L[��8���
+B|潚��|�w�]=������hi�l�*5{�.]0���wp3�G��N
RqU���"֘[�> a�s�bOn
���"��)����{��>�G�6bڸ��-G�x}�H�Y��|HC4Є�aX(AQ���<��f`u|�$$c_R"����mJ
n�Ƣ/-H�'�<�<IQ�ϒ��(jOEm���־�V�U�M+E(݂�	�|��L�C4S�,r�pa
+�@qH*��tA<ֆ���E�<"�\����q+:
}ѡ@��9�FQ_^$�W)j�m��HQ�`Re�
g�
�|2

��2�������$�S� �cA3-��q�Έ&�"Q��5
�uv���en .�EW�\��A�G��
�%w���A�}��
�(h��i0u��^BӸ�f#��B#l�X� fF@>>
���a���@TN������q�
���G�����q��2͓�
$���ߡ(��2�)*%�`�8�z��
	d
��E!�;
q��L�
.}6D� �3�e|��4�|����E
s262'aq�h��/Ȣh���f3 �2���*��� (\���GA�i,�; <�As
+��R�u�
��t�:3���A��Ld>��
1�y���

+��J
�'�� J�C�ʀ�ÄF�
��KTaP�-��!��D��X
K��/l��d���AV'ɺ��.�g� Ivg�|���[x�bd=�xM��4d'ѡ`1�IgB'��^
 �9��p��GC�I<�ے!ٟ
+��t�Nf at x&�v.�Y�wg!�>Y��� ���/��y���B�	����t�&xC�Ȁ.�	��&E ����
�[��D(��@����/8�n�Bܖ�>��B�E<�����C���!�ρ��
ُ��Qx�� /(#hP�y#o1&�����BPPCU
�ꓠ�4
ʝ
�� =�G��BH�#�3���
�����
KG����R�<U@�@	��U���x��@/�Ҡ���1�k�
?8�`׆��
����0�`A�!
��\��P4� o�@z>9�� �&'}HN�J1&Q��O�n�=�[}K�Aݝ
��<Ϡ#
4��>��(:�qLT�}��å
+A�1���(�I�y
�-|�v��{8�TgP^R�W���h�ʟk�4O��w��y�����w�:�?�.<C>�)��4�½a#*�}P�2��3�L
�}*��Q�������hA�d��$�?�ҵj���}��������j��z�o������W
��˦QӅ�Q�9�g0��"7���x�&�����Xś�U�@|��e渱jGʰs)w�t��u�V�+�ne������E�c8��8��ᑾ�x_����~������aK�y�r�p��f.l���=��tГ|�{]Ċ:�&N�'��ؐ=�ա#��1�+m�W�U��]����G�F���&�
K��_�
+n�[n��Z��
�d(�0��[mmEC�S�C�-���_���z�l/�y�A���o�"����ؔ�-�Y#���z�Y��[����|���%��+���p�2\+9T�cqK�?�gK:-��;,�J/Y_8�Z4�h�
8N�J����)
,9��y���L~#�d
+ȷ�.��ͱLlK�2�ȟ9�(
���v�����mp�o��]_�J�SM��k{A�s_�%�Q�{k�7%�γ�����������fG��pY����eM��>��'( ���d�ȾWOz4̣a[4;Y��p��؛=��n������[�m�
.ѕ�+�
+��ۗn)��z��t�AG����d�9׉�+��e�U�|Y�y�+׾ʾ�ݮ~�.��
��'0�
�FfQC��5��&2�
����%��?�1��A�d���袻�[�~���mC�������?�h9�|{ɉ���Ǫ�]�]mK�:j�\����]���E����tm_�W��l�y8�yƟ�8����H%C�E�S��f_˖�
��88��9v!�5d�l!�Ҵ���eFi���K4�L��������������^���XY�A�@�����3A���������Z��6]M����D�j+���.;�
��f�w��9�&G�7�%��ƞgTF�.�8�M�<�m^�?�7���O�g�g9��9v:>$��,
+�%t��IIl�b�樒���I^�֥N��{��:���+�v�x�o��f�:4�
�kR��e	i�"anH^lYXVt/#��\Ԉ 5�=/%z*"9z&,9j649j>$)j�%�=�֓0�{��"_��B�4{Y��S�.u�E�p���@����
+�k%���Y�5_qO�f���Kf|��
��P�w�� �.�F
+�&�B�W��Lx��YN\�
;.v�%
+�#<���{�+���U���ͤ���Hߴ�z�rL���N����M~�jK���
+�O�D�dg%2�22YI�„)�x����䇑��	~d�7*a:<:~�7ǎ.�D��DaD�r����xY~nS�ћj�ᮽ�&ʷ�m�Z��_��s��2����P��"�wZ~ܙ������� ����*�d
8�ᇧOq#Rg�y)�
~�
[����&<p�H�,
�'
+�2��Ui�!
�{T�a�n�ޮ#�;ڭ5�]�������T�8���<.���)Je�
+sC9�ᬼ&
3����#/8g:"$s&,4c6��6�K]`���)K�������W���[
+��(�ݾ��=��oZm����b���ܦӖ�
��	u�151���$�<��,+�)��W��[�.ܿx&, ��̙ce͇��/���
b�3��]^6��H�<����}_��v�.W�g����A7��;=���4��i��q�^��b7&��g2��J���؞u�C=��ٞ5s�Se�!~�
������LQ ��!^�0ZE��&<�A�t�A��6J�#�ʯM7޳�ɼ�?��)��[
K�
���������~���Z�m���m=L�ko]���'./1=���^�ˁ�J����T*�-xVG�mT�E���b��T�m&W=Փ*6V���L~����^t�����{!V�~���
��g_��[o��So��Co��}�۞�~
���M������'.���!0�
�
��2�v����
M�iP�R
+*GUIE����W��S�c�~�Gm�3����t�p���������P���P���P���P����qW���'����æ�OO��?�
Z?� �
������~W�Q�z��ck �����w���wec�7S澵�
2~R'��
��A
c�C�c_;�e�ڎ[
k��|}��ś7V��}�6}���C�hq��z�E�e<'2������
P��/h�5%
�&5��hQ�tٰ�cJ�	u�	M�	��'&��&8zv1��t���Cf�5FG�w�L
O��
M����&ߢ��gh)�Q"�u ]-��M����2��� qIb�4�ܥ���%C�e�e+�eGu�e�-���Y`�X~��0]��e����h�T�����������h`���2��AÃ�"]�U 7��w�w rR^�N��/��:��Y�������߇e\�L��
��Uł8Ža��1�j
ƨ-0YS��a��^l�ٍ��w��]���hz �ڈ�{ r
$� ��
��IQ�䋪dwԤ����
�G#)34�6A;Y#t������ۇ�J{0ZYS7l�BUm�U��.�m8�Ig7m��[E��
PIt�{ � 
 �=���e�דlQ�l�_P��.���ш����zh-��$w����Ii!KZ2���_

�n�Z9U�߀�
+*���2~Z'���D�w	� �k �/ 
+ at h��׀9ʑ�Q�t7��Q��u)�����t��mEs1
�SCg�*zҔ1@|
��+�PB�%�b��,�H�b��
�I~�������ݦlm�#H�(
z�]T"�in%oFm��7�
E	
)�hD�GS�Z��ʠ3u
zQ%�I�!_��Ib�q(F�خ����<
+� �V�渶(.��@ �B� 	dO	 �D%���AFT8�+x�vpk�:�V;��z�U{�J
F�`Y���M�&<|��������GtN
+���Q�b؁ʹ'�

�8	3�V�CX�|��#�⌀
.`�]�OW��+�N��~n5|�w<���>�����
�`��
��A�
O��_
B��'=����q /n&��y�d,@؆%`mY����`�Y���n`
u���g=�w���4�{�@��7|I:�H��5
�?BH�I �t`{R��"�n>�
|��bf�/s/m!��?�삐OV"x���F`�'���!�,ɹ�
�
0z}��OX	҂A�g,�7��{Ɇ_g"D.�ǃ
+�Q�v��Gl���Y�MtBt�"�s��+]��*W�5�Fh+
!���:��i__�#�;?=�G�+b������� ��`>���7���ҁO=��3�@$�fA���b��"�h%�[W�WG���mtp:���f�}6 aי���
D� �@+��5z��q$X?�r'j"D���u�"֕
+��
��S g8@>
J�d��HJ[Q�+��<���:��
D�3q,����]b��k��,d�;2�{���!���8?D�s3�듀���U�HXA��P��AK�
+}�,�N�&-�*��unH2� ��_�x+l�ƴ�Ew���Æ�؃Q7��Q�9/�9}���p�ŀw3W�q>�&��!��?��{���ԯ��Z{d�>@V�#֊A�rAr��UU�=,7�J�$6�^�Z�^%�s^�[��%���*�7�!�q�+�C��;Q� 8/���DN&A�-��d_Ɠ|Ň����-֑{��@
w.

�lٲ�t�[����R[����"�WQ�T�;�����KRg��I�O�����{�[��7�c��!� �q�e
�#�C1�$WLh�b-���
+#�G��4�g�	��_4��egy?Y���H_κ���s[�+▲%��������kҞ�+�o.J{�I�E�eW@ܩ����j$���>đ|)�֑�����6�UT��N
-g��7G8���/yZ�\�ИN��n}���%�7�,ܫ��Q����=��V�!�Jy2������7ң��v�[��V-��@�g�_B��idg�'=���������6�M%sz_e��_-�
~6K]n�t^7
+r��
���9戞�����;�O���?O9$��
�w&�8�|[ٮ�]ٖ2�h�[�ͩ㲦Է�ƴwI
�����dg��Q at zlZh�R��jw��Z��OkCf>����VE��u��v�$�ٳ!�}*�$�\KlWv��#�Ir8}��`Z�j�Mk귚��}���#ꆵ���VE}Ƹ|{�[)!yD�m��H�@6o�<l&}���
ԭ��m��ݣF��yN��$,�P��}U���.��
+*�w����W��d�S6g
�4e��6d\Kٙ٫��N��
Q�d���s����qYU�DH$�[G�
d�Υ�‘2V���r�G6O�]m�5�
n6�;^�.�{vW��6g�?�h䷙6
+[
++���e�y�U;
�jks?�լ����}���0�RiN�0��-�1�V�U��0.{$�m�J� �l޲�T͡
�p�<߽�����V��ԫ{���5�8���xt�hWf�lY��Wf6�nI�Y\#�-lTW�O�0v���Zn|�Z^0�3
i��M�qTU�?�(˷��y�����{)�L|2���8��k�
�݃�(7x�_h
�{�Y�����G�Ռ����F6Z
+����Ě�*ye�N�fSkʦ��Ԓ�4S���b�:S��T4�1��L��
�	� �a&�.&��������{�S�͠|�>�r�ǔ�m��ݭ�%��"���J�};���u����ʍb��Bf�\�.1�M),�,ո�LZ^ُĀ>Ӑ�X:�)(U�ƔLV���&�Bٜ�3(CU��沧�i�F�uh:�'ʿ��۝j�[W[Ģ��x��=rzSS
+�nW&��./fk�I�i�ViqU��X٬5X��9�S�Y��׺�-C�u���yTe�4�\�Ѫ��u�����MBXEA��� aIX�E at 0�qW
�z��Z�D�
+R�EAPAܵEܗ#n=3�v
+c�NUԞ
�,�g�g��|���~z��y�}?�ѐ�f���͂1=�ŧo�A���4ӵV+����ok2?�mW{$QRYk�+;��.�b����}���˶���S����"{qI�����yy%�����w��,��>{I�@��m�˶��\6��E�~����у*!ݮ3���Ft�mu�M原T�յh'l���y}�Oq���Oj�#
��Ǭ;�&a��)�*>K_X�?+w�᜜}m������d�}�=�@V^�`�O�2�w
�

Y���٧D����N���6��	u�1�ֳ.��3�&������s�Ւ"/j�T6慮;�T��nu��Ûf���=��,=������sӪo2/�
U���YeCs�w��F�Rև�D��"�_I�Uǧ
M
�����%S��,��\RU\�,=㰽C�Q�>�wݩy�'G,iY5-�yc\vSѬ�c{�SkR�N�o�
/
��Æ�/?R�>�*F���GRGC���o#zTFt���b=�����t�G_]ҡk�T�%�^
1��M�m�D����d+/d�/>�08����g6��;���>�'^�:1��U��>���>��f6#9�(�����T��Ѱ�臝Dw]������۽j/qTyÈ��M��{�\�]���ۑ�ފ�_q3�m��,��k
|��V��S�\�1�s�6��zڌ���1�יӣ� v�y�Ŵ#>�3�����D�]�!�h`�?���Utr�뮈���Ӗ����O}�����[�8�:���>��
����
��˼����&<ت�}�;h�����V����F��B
y�Cx�]DFvAu:�yD���gD7�
��#jnf���ʯ���Ӗ�"��kNkzż��r�� ��=Z���kCO�]JO�xV������cz>�F��ȵ=U��͊�t2�T��8��w(C��@u7�5�2��ω.��4
>��/�N�����͈V����/
y�/e���TF�Wfɯf�Ox�dחa3�/�N׷�!�o�c���.���܂��M
|{F����D��7��$�/!����5Z�!���Dul+Xvv�'��_�=7���-)�_�3�{p��~���j�Z��x�����Y4C���
+�UC�l��w��~�����d�5�
�IJ�A�lbY?
�h�GX�a��D��|K��#Q�;#J��Î7n:��Z(���3
+B�H�c?d��`��
��l.A��T
��VK\��_��0l��_�Lj*�P�5˿C��)�<�?�g�D(��5E@�SÝ
�� �j�
Q)f�1K�
+����X.���"[���$��X���
+Ϙ�
LG�b3Pr�h�-�O�rz���ż#�Q(L(���?&�|X
2��$��B�9A�9@��A˷A,�
+I|Kd��c��
kf�.0E���Bc����<����M����|=����H��U�
�`J�'W�
��›'�
��
+R�x�,���Q��
[9B6����'�2��q�c
��=/���J�Gp � P'D@�~�&P,6��:Kȋ��Yfσ��
���e
+�
��� �[�1<~b�8�c����!e���N��f5(�8��auhBPG	/�*����h"['�{�dxW���=��
 ocg_t�����N��:C���3pf���/F�a?�������/��C8�#"P��0!Bg��I5CH�xXAU8�v�/��_��
��=�߳�P|��]6"�3/ܠxnj0�|��r
+��;��A2BY
!�
"�8����@"�n��d3D�L@��I�l�E�v{�uDP�3�\�jv���
�KS������_�!	X�
+��@H
��+5<��B6��9��X��C�'���
+��+a
b2,1m�
�k� r�ỜV�К���K�i�����N�'Խ�#�מC��~
<WC�V����7>�E��pVCԿ�.��4���Y�EjE���( �"A��%���	��#@��#r�
A(�"H�M׫�X��VG+VW��Z�]�gߝ�/��g������|g���]�ך��$���i	��V�c�jD�0��!D�
+hzG�[���C�q
n�@=������_�\���r}A�s}F}���
+ns���[ x�
+ϫA�y9��*Φ9�|���f��9D�Y@��D�B(�
��K�����
���D��*�׌F�!�.��mz
<���vl��i�'�k�?~�1K��w���Zl�D�i&x�b�6S �����a�
[nb<���
$^�@`1��—�	��x!Js�C���)W�<G�nz�n��O���1�y�5�e�uz믬+[o�
z��|�}�	>?2a�4;N�a�1v���k
+�ZC狰o��R 
�#��
�
� ��~�H�{/px*ٽ�_�
+LJ�j�ٰb׻��ͷ�=o�:�~��y_#��!�|�\�q���w�|��
	��$|�Q>P�@
��)�w����u�s�W`���Qn2���#5h�����y��R��/��ף5n3Q�-߇�/�5��u�M
��
+�N	��:!�x\�$hB�6&�P(��APo8���.S��3�)mO��EH��d�����`�\�i�X��f6�iK��'E���d�
R��t�v�阽�'��;'�����
:>|$l*���������@�zg���!�U
4S��
� �V,�
�=v�����S^j�R�
+\�g
�[���ͨ�.�Ǭ=�"w9���9)�xOHK���U|%i�
�t�
D0���^�y�(�ewE�&:b�h�
�F	0$@��@�)��=�Į%�Ω�s�?A�

��şS~+[ov�l��Lq���ɥgr"
�2�.G�R<G��>�IZ�YEࡄ�c|;�+��#v�l���6Knsc�$�S�A
+�j)0��@7��b�-Ǯ���ȳC����c��S���S�f��z�3%쥓a�㹱.#��->�J
�;�,�3���*o&e=d}�0�6�ߐp]P���W%n�
8�r �r`�d�0���q�����-�=�-@���Ѝ}����M��>�*g./�.�q���<��J�ά
jkF�Q��Q����I>��L�'
꒮�O���+I�X�"�) �]��E��7�!�=*��n�F��g�f
����O���NT�
F*������=ERώ���\�>��fP陕�
}z;�D�/�*'D�ˡ��9a~�5i��(��akR�e
+�-D�}/�
+=˷D�u��z�|�o�.5-Bg�7�߿�f�6x�@
w�qo��]�GSI��:m�u~
�<��Y�S�Ѫ[xU�0'k,T�u!T��H�R}�����R�lu:�@�B��L
tOKA7*,Е�y8>�n�G߶a6޲�z�1hQo
ge�!̩�R�^[.��*K�ח�k�U�
M/+�(L�

U�~���P���^��^Z6��j`���0�p�X�W����w�T���
�h�u
:y�Mt�5��2��-��&bEK�h}]m�[UM�6]e�_Q�*P�+��K+���njQ�@�
ɵgCe��"y�;��B����� ;9S w!��
�!tC���}fh����@nj
���Ք��UO�����g���uUMbW]C�Vm��7ϐ���N�Աu����/�	��D��{�X�[~|p��L�[V�)���D��B���w��N���c=fh��

��r��Ͳ��������]�5��gm[�Gn˞�Y���ʆܠ��RzB�����N��Q��H�
~T���
+Ș
+�Ht@Ė��Z��Y���pـp�{
���C
|i�/C
C.�_���
�-���+��aN���n�݉[S���;���mŴݭՌ��V"��0G�<E
+�os�M�8����"�XQ��4�=�E�j9B�a����7j����O3�>�)j
s23
����^;B|�3$t�oL>,u��'{�
R�F�j�+E��^O?��dr�7��
N0����7]X!�@*Bw�]�A�d
Bc�
������_ݤ
��t��{�+<�sA��!�(�s�X亄#qΒѤ�Q�a�N��:�8�?�&l
+��C ����D�aI��)Te�Z=z�Sm�:�g\j�
�j�=
��.���Z7w����:V2ֱ. ��VD�
��ױ� ·߹���?��>����k��/���7�����ZT_ks�7�6�m����Dna-r�[�;~����c�x|���D_|J��������>�KˎEћ�ԂEG->�
���
v��8T)������N�в@]��n|�;)������T{s�%��35�q0Ͷ����m@���yW���
��5�;��d�d���&��Gy�S�-<
D���6z�<m
5��򩊐��ꈲ����Wζ7���V%�}0������֨�j��f�
�e|C�q�����H߱

�H��'D��j�d���V
&ZrR@�𢙝~4�
E��j~��"�t����K�\��������/��v.�dw��f�7D���Ǥ�k��r�{���
��<��sHL�I�SP�Ժ�h�����`S=�{lV
"Z�vЗ;x�~��&u���+�*���.���;ˣ�����]>�vc�_֍Yc�o [...]
8=�
Tx��V{����
.
�\�;vh�H5�mL¯����.��Cw����C
׏���ma3�>����^g�sX~����G��[B���Q(e>����*�
�
��M��C��ra�x�a��
�yFc��
xGa�w$xKp�'������
l`3�v�o�g�&_$*�B��M���#
|Ʉ@�CBZ((	*.�\,�\
�x��H���`� �X&c���	�ࠇW�!���fpU3�+�l�?����D�
"� �\"
�Hų:� �I�x
+C
=�q�?���/�8T��
��籎簝'�c�??g5��|����M����˾E��r�b�(xS�(b
+D��ZD��hĒT�	
�/�j!8���K�"f5S��dZ�m�$=m2]
+{�
+��-��HE�bfy"z���} ];ҏ|!��i�ү� ��9ꏨ��bD�2w�a1�x��d�]� � ��Ԡ���kyX
z� �LVG�'zB9�
q
���h(��
�F���|�?��b��2 ?ɜg��fn3�~_�r�
+B,��#dX�,�T
��<�I���i�
�b@o�����i^;oTo�"q�	���P#F¶ (wB�+�&�x0�
�U�&s/	�]�
ND�P��}�9�0�	<�T<�5<,��6�]�0N�a�h$�.�n�?�
��� h>�zG����P��A}����1�a�4{��W#��
�"�f2���ς�友����#;��� @v��
�Ȩ�A�K�H�?�0��q}�5�H����pvE��,��U���O��
ɯ)��cI
+�n �e at t�	1W͈�<�Y0*Y���-�C
S��ph(����	{�r��!{�Y����<�q������6G�O���g��Y�I-Gd��n[�����/�<��a��˂���;
�g3&�YHe�ϖrȗpp2.VO)��R��lO���s�h�pV���WC�K�rޑ���G�b���f��蟳�b��_�{��=�S���W���d
V��H<�U���6���@ud�������
e��D�*%��d*�=�'�
�U�x�x^h_�I�c���pM���+��c/���]�k��hoR��'��/%v��R��?T�١i�C{$��h�B�gX�8���$����^LUp�6�0�,
��yߜ��멚xm����F^,]}��*�\�{ʳ�?J<S�%鴳N��ح9�8�mu��
s��:��
04:a�]C�xvC_7rX�	lי@x1�0S�=�����J����>�1�Ҵʀ﫧���4O�m�bEۄ?+[+�M:V���Hi��P�v}��>��� [...]
+*2��2XP�H��TA�D �@(��J���ޔ ��A�B�6��=�������sf��κ�޽
������������{��b��
O��MbCx-�'���I?&s�>���XߎM�9#�s�d��kQ���5���n�B���N
y\8��	��
�<��;�
�?Q�B�+
y��#��p�!������u�N��x���ʶ��
[Ÿ�]
�X&w���g�������<%ݫ��:0�/<8S�6|����n�:9@틼H뉸A�x�h�|K�D~��F!ZS4����.y}
+
+���|&������t3�I�	��l}�#�fr+�Ȧ��0k�4�f,9�nD$s�&�
J�{�j<�b���1=�V���7�j�=`��~f����Y�G�j>�U�wQ1�����
�k	�����n����$o
<.������x:���rVȖQ�F�"���v�I��v$�5�
+Js���t0k�울	Ne�
NE�O
U�{�J�X��( Z� �0D]	
+� (��� ަ�i���0��E&p���J�ה�F�ߍ�yǷ
ʣl�2v�2��&%ݵI� �ť�3ɵ�D
K%�)^�U
+��
+�/�
+E�s
+��!�B�h`���/	�
{o.
+���c��2���{WT�K��E�V}���
9�{[�I
����
rU���:]M/�6�
%}
���_��7[��͖��7[�|�Ē�C��_�dD[	:����U����7��JH�u�!ܪ��5���*�5�L��� �Ne莖˜=j�С&�K�<�\�YH)ʨ�+d
��n���Qnz�
���1����!Y*b�RSv�1���0��x��� �{�J�.7�[�$��5���;	��ל���vU
���<�
u�����ST�b���t��<%7GEϒ׳dY����a�$�8�̯~�Lđd"�4
1�2D���� �
+��Xp�;O�눠kX�M�a�щԭ����q-�5ǷUWF�R���W�%
T�
�V�ze��R�kYE;')O�'̝��{���/!�s[����Y��)(��J����"���j&	p���k��
0hk�Z���1�i8f��
���
�.�Z�U��*+�{H˔Ԥ�j����
�<�����|���/_�|b
+.1��]���$�[�=��gp�{W#v�V���vYB{�>bc'ٸ���Q�9jU��#���'�!�@j��YR��.:S�%���񫚙'+|�*'8�8�|"*;R���%��S"�h5�[�K����L��q�����f`34�&��w3T�1L�z���-�#�6�-�.Y��(l���5+ȼ&�WdC#-������
n��
+V�a�#Fp
��V#ZX�+*_ͿE{�Wp�
��`����`��� �#6��ფ�!��l��y�� +�@�����N����{S
��s\»J�C:՞A�=���q��;�
��m��Aԣ͈zL�(Au�y�{�
oq�`w0������
@-vв�u������q��1����Q
��-q��/x�l#GN�

��*v:��s9��>�Վ��i�q�
\r��@�
 �o/"s;ٿ}5�2 �G ��p�s� 
g���N� k�dӻ	�iWR��X0�o3�9�j�U���m�W�;'2w
�(��������t
��ێLݒc��}
9�. �ra���
� �� 
ut
 4� ��|�$@�MH�3��v�;b�=IQ�>�as����7
��[
�M��Φ[sf
+��fjv�g:��`K��ږ:�d�u��
��Ȏ���1��{\E�+�W�w��A'�@?@ίXΟH�	 �m ��!��f[���B��ਞ��_l쫏^��'�1�)i���}�g��6K������y+w��Vn������|�8x�8�]�M�����
h��_ο����-��3�'����p����C�"�Hv���Y(��9���y�ѡ�Y&�/J�9�hZ��r����u3�W/�
����~���,�=A��}�ny���;P��
��g �D. ~��gЗL�{�(�m��#��� ��a��
!:�
5px�7�?��ՙ���Sa�20� �

��f`F��P��"JQ,X"q%��Uc	jt�
E��=��.Y{�u���ƵG"%(
+��!��
���;�O��}�}�'�~�$�~���0Ofh����#��v^��R��+��u��BW
e{;�
��F��;�m����_ x�(�6Q�}�اD��
��֍"�j)�]�5GPps�`|�(|H�?��-"���"��)bϏ߈5X/v�~�nH�>6J�-�߳�*�
.�C4��'����D�����D�
�8?��(

+
+��
А
:��H>0Z�ArCO�Y�
+y�JL�X R`��
Ev�%�����,�M4�����/q�-�T�{�c���DA�D �3
8Ӆ<�Ajt"�����@4�э$H%��ΊB+g�l��jٛ������?�-�Q
+�=�����9ߧ�ȓkpg.\�3���D�\�
�$�7��1#
g1,�e�|�/A�b|���}�~� �̂"F���M�414�b�C=A�l[�*�p�ªdp�Ͼg?Ƞ�"���cM
mdp�k7��
�a߁!\@�Y@���][ELA�,�o1:
���T�4V.�f)��A���CS��As���=��5�V;x�O�LO(��?��o
+
,�*�l!$F��
bf��/��o��Il�
�ErhW��v�n�����gGОc7�3����G
�:([tph�‘W���
!�s-FQ��^�w�M�'b�3�͓ x��	2��a�o�2�_��MJv(X��#0�bW
ax��bhpl6�wh2��w#�
P1��F��
��o�
���/ ���^����"�u��Ce���#|�=�s0/r�i�#L�l�S��ʹ�t����s��_�&�}���
�w�/�p�3���������
���
!*�s}t�$�K�z��x�g�[w1�˗!v�]kt��C���:�szk[���m��m��k��W�j�k���zV]g�I��V������
�[������M��t��:���\BO���$ 5J��b�L���+oJ,��I�CC�)�/��V�vY��"a��y�:�g	[ܟ��v
��a�i�	?z�Mx����}-
>�㡽�.�Cw&��]�mqm{w'�♯����E��^d��֬QSzɫ�ly]j��y�h�'��P=�9]}�G����K4w�V{�J��u#qg���|�&
�x��B�S��F�ӉПHD�1�v(	��C�
�jx�m�<oe������Rk�Qx�)���*~�/]� {��n�0����k�'{\N���b�N�S���K�НI��:�J�����
��s��W����Ǫ�
�m
+��S;B�!�󳔄
^�|j,�Qm~��xp���d鏟�W^�)T��?��L�	^����
�3Gw4s��&se��J����A������}"���C����v�����󓛁��ݐ���L���
����^;� ��Б����n�=*���ő•�I�e)O��
4\S3p\�C�u�s������[
����Н�7mϮ2o�Sc���ec�/�����a����}a^����
���Y��)},�QC����P�ӑNt�ċ.�2
gK�JO�譬��z`H���p�OU�_�w��-oV�߄m�]aސSiY��#�b���g��<�-�i�.�A��\D.�EĢ\�/�������+�
Tϳƃ1�#�[cty�;�-
����

���;��K��|�
�G�n)
��4�K����!k
�6��_lY9hM��-�%y���;�0�^̂�7���6o0����`D�

K{���~�y�1ϝw�
+t�TJ���ѹ	�t��(
.���
�S����˶�y��F��,�_3bBЪaSC��_2da䢢�����
w��-87��fܬ�W�_!zfl�:��Ӌ�
2��Q�P�ux��9��/��/etr���L�����]�췖e�6��լ--�]�Y�~��σ����d�e��yQs�/�<kXe���o��Z\?��j�������ˢ�
��EM)Fd{�#�@��p��>#�TFtf��NL�P�ɮ��+����( �}߆}f���DTDDY�aVePY�M�*�X�&F����M0.5�9�Ѵ1i�h���Ks����������޼[ą3r
�{�����
��ʏ2h��nڒ�۪1Sb_��ǯ���*Ҫ=�R�D�n���a_Y�9�����s����MF���""�,�MB��0R�߯i��P���Q�t	
&�V�X�)
�������w���j+�\ټw�I�l�徼T�ʜl~Yv��<��s��Q��q�;Gr�/+}�_�~�?#��_���
	��I�Q(MC��0
+`~'��4�T�?P�L)�<� �j0Rm�|Vw�ﲶ�ns�z�����5�;-�
�mK
+2��d��<�gnn�(3��[�=蛚u�?%k�?9�_r��>)�(N�BQj&
+S�(Xla���ᮔ�^����;���4�>#�80Pk =u�L{��Ӽ/xE}�Z��h�Bg./�c��$�1�8�%���#�p�0��U�$��M���K�]�O�=��O>�d(N�GQb.
+w�`1�J��D}���P:��} 'i�h`A�=�h�cZU��4���u��
�kbMeՉV9�i�Ҋ
~���-��F�X��_r�'N>�+��+D����8�E;
+Q�� ��B��`��4ԃs5ԃz�{����vH�[���C
��je-�ZEM�+�c���-$u)�)�Y����$�Tz�U7	�U�xm�
�����]��;��xs�6��pk
+bJ�s��� �S�
5��P�H3@/��*��Ʌ�.3��re�v�.+���k_��ٶ�0��Ӥ�{,w�d��h�9�
(w���辩�K�pB���r_�����:l�E����X��
z.��,^.�����V�ô6� T������~G���K5��=���Z)G��v����M�w�[n�̳�>\��Q缮��kD��{x���������v;��a�=��"�z�NϤB�
4�M C���	�r�f �h�
�a]�
��';m$��gx�F�����[�b��F��l
�6_7 ����o����7䴺���)�����A�U�輺���ɡ�QA5h 8A����z�v��V�,��Ns!e��L83	��������G����x*Ng��
���L�бB㐱�U�m�
�
+
���kp��o��o���ȱ�>^����A��wP~�1�?O �H��1Ł�i=�����3
L�L {��յ3��OǨ��ޥ�zZ���t�n�T����!��AC����ӷy���F�sh"�D3���\p-�Ds8I�?D�������M ���y`�%6�U"�� l�BgE�
b���� e�J�2��L^��U++��fMOe?���Y-�k7��g�]����e�w��+���b��
 G)���F����)����O+a�5�X�s\�3� �)�ς@x+�܊f<ndz�nK�.w�T�w�U��
Qu�����
����
��P�v5l>�֟��b�t�����R�k(��j/���˔?
�'��O D�T��
up~�
������	

����`�$
l�F����򙔱xV�2���e������ы�,��?�xO��{�*��Pu�A�o����_t��?��_��#��?�����%��7j`��X~�����|0�^��@0��WA��Nx絔��A�h�ie�ޞ`�og�?���hΓ�����|9�g|H�t��7 B� |����{`���'�
�
zh�%h�p�
4�40�p
p�X%�B0H��1B��o	��F��ʗR��Q>�=���
��X=�Q��[�L���Ʌ�Cy+)��hE�ˉH 	#[�!� `����|E~\BA�Y��p�����S� 8R��B�7��(� ˉ
+r�o�	��}bL�	�x�`B/Hb� �͇C�<��h�Ơ�3���̕A#�z�
j��A�M,�H`�Z&)&5��t�>2L��$����U�)}~D^��
����K�K��0h�Ƞ
��]�̝ACo�
�
�l`��r�I�$���
!��	2A��%r�|I�N���e�J�����vv
:�2hO������Z1�[�•�X���B�\RJj٨�B:	�Bw����,��\'���u}GEugq �S
F�A�"3� �u

+D�PAd�2��30�
 ���"�,��BK�5�ZWc��M�=�hbY�-��b'���s���u߻����}9(z�y'���V���&�q_� ������N�q%]e�v�^Hi
���h�d�e-r8hQ�A�:���'��h��E��� "���[|�}mq��B���L���b�?�ǖ( z�Ũ�����-�,����rw���(
e�}
�
��o��w��?$kxo%
�7���W�
������C���gҋ�_�w�?�=�߷{'�+E�
;
��oKQ�ܒ��(�[�'e8s21�E�3�f�N�Px�pz]�8o���W.Z�
���?����Y�̬�
�Y�����	
0��/��2���]�7\�
+�g����'\e��
+�/�����p�@w��$@/#@oZ�P/��^���z���~>+���]�}�A&����ݙ�;����U�'E��b��;��w�>��3�_�q������)�0�J�Ƨ(:�@��3��8]��z~@��I�w�}҆��<4� {����~ެ>��;��ܛs����\�Z&��U�ٳ��g��7
'���d�Y�>��=��x�����5�qχ&G<ޚ~�f�<p� ���h�
�=��#�)�ͥ�D�l/����|'�3ϝ�� �����K�����~����?�&��3:�����z���������3���ȔA���}������E�>���#z}�b��!����\  
�C
�a�	�Zd�C���_��E
y���
N68�=qh~��y&sL���?�ݢ?`�xO�n�>�A�]�g�w�d�-�Mw N��6]���V�@�A �`�Wal����-� ��pM9�G2p:ҋ},b>H�.��p ,ݨ?$���E��v/�6߹��r{�Z���6�A��[��K:��K7]������`��'�Q���k�Ա�O��/&���f~�e��%<��疈�JGT�؃q�����=ѱ�����{#4�=����]��7���nm���tۯ��6�lM�%YK�#٪�w͡hO��P���c��8� O� 7c���q>�_'��d�$8�,��d�_��۝�P�=>Ұ;.AԵ$�lSl�EGt�����m�M�ֈ6�e��Y�˩1��sC�9�z��:��N�(#5hW
�ұ0���
e���7� gRYp"�
�S'�g6�7c{g�7�'u�pKJ��Fu��=1Ŭ-![ܪ�Y�ĕ�6/Yn�"�UV�ѩ6�����̥2�+yy�]���7Li [...]
+���Íx�Ae

��� � �Z!��3��|gVg�lnG��^[΢	���D�Y	f
i�t�MuZ��<�ʾ$�ɱH��ѩ���I���I'ܴI7�r�/�Z52ĉȴI�0. x82���L�cT�e�} �
+�AO�)t�X
���6���ei��<�q}n�YuN��"[c]�)�g��d48楯erҺ䚴O�2Ӿ�����[F�
yF2�)3

3SQF
Fa텑��
+p:�z@��Q��V́�t�ڱ�J���q���
�
+U�bM˖&Y�gZ���m��ڜzGMv+���,O��vK�
���|��<wUk�%Y���Y蘒�������m��:��ȣ
P��R�
�9HG�$h�����i���9�����e��JK�'-K0_Z�n�-̝���e��R��8��7��v������grU
2�\t��E�-�r��td/$Q��8��
P�>ʟ��P�j�=�����V��ٵu���ZaI�BC]U�(�Re�S�*�,˶I+-��K�
�5;�w01E���]#�.���Bd�S�
c
+PF
F�
�9P���g?���\N� ��ay��4;�ʛfq��+�
�
�F�����uj���,�Ě��q��Ҙ�FYd��NʊmLXŠKh�����LX9:�����R�����X�U ��[<^H����}� ݍ �� ��kW
���J�8�
+�(8��������g�����6NZ�`�jN��m���z���N� ��?f`��af 
n�MP��EES�����k�ٺ��n�]6�e��y���Z(�*�X�
+��)J��Y��Y����ػ�ہΞ���;0
��}����'�MZ�B��׋�ǽ�2��-�c��$�)nJ�jG���%��W�?ō�'��=�v��pU��B`�������J��56<�ցYki3�d�
^S`����gꪉ~E+��߷bz�	+


�|NX��c�.��ts�ȥձK��,i�)X,1�$f�=bao�y-~�
�������K�U�^����
�)5cFi(
ޔ��mJצ���JG��x�i����qoM�nx$p̆��;��
.X�$lhIix^IUDnIcD�ܵ��Z"sVId��ގ�5���^���u+�7�r�~v�'�l3`Jy �*�qE��X���[Q�����sl�$���S}Fn�a
��)k�ֹ9[����V�̭�����3ʮ؇�-��%$}������0�=�5P�����-g�ť����ʁi\�&TwW�QX
�����J�(W���
wݣ�wy�
2d�f3]/����ӪK�R\;-�]�
��lI���6h�
�)�wH��p�8���_�����\ɞ�
:��P��;`�
y�V���C��Nd����Q7F�׍���j)�3u�����{&կ�r�o7$
<dH���_{�ؿF|���o�>1�T�(c��1�f`�6�ɝ��.`2Wû ù�f6h��X�t$
�G��<�gS
��F�cw�A�
�����UQ�˴��2-��Z-���~�ˣ�Q��;"���ij�r�o`�R���?����
PT���Y�@Ƈ��& �c
�O�!g�|&�_$#�%��;`?;}�MC��O"���h-���ݰ}�
���`;+��BgD�i#�3~��n`k/b݅
��F ��I�'��3@�9=.�a� k[,m�03��L�v����^�N���O�й ^�6Am?t��uނvU����*�3N5���?�ev
�SO 	��Hf�l�o|oa�������1:w4�;p��P���A����
��7�� �����-`�s̟ɹ���2;�ك?e�[��V��`�'`�
� �x@�7B�d��Nq�L9ćᇡ�
�7\�.,P.���W/��{���r����g��̎� 
X� >
̽��o����,v�$'e�h�B| �C��G����{"$(��C�� �i���J0�~O��
z��J��cl�r����}j�O�]�[��B�
	��9� �<�9���Sb(T�/�yf(ў���:-��T�D�A�����@'��/R'����y�N�[ߛ�3?�;nD$�_��}�š��<Z��$%�?(1΢�i>-&�¸��P9U�^��x��<~4^��.�0���#�;ߟi�%�G��\�������
��)P���a�I���������6R��e١���Ԫ�֏�
k�괶��M��M�6Ѯ�����Ab���N} ���:��F���9�Ur����ꧠǕ����iE�`_����P��K�u�f�T��
��:��k�A��+��i_��
!7��!�q6Tt-����?�� 	A�$��b@�k�"q $>�����ǫ�
P�
�����Z��%���vٱD��X�}�ب]t�i
;�֨�ڹ����S���+
�D��7Lj��:#�#ݢ{���-����T3$���8��8t%����|t$�ˉ��W�ӵ
��k��i-Η=>w��qڹ\w�Y���s��s�����s�y6%6{6&]�jH���`���T�$>5���@����| �q��4A�y��@�+#
Wӝ�t[Z�F⋴��d�ډ��
�S��5���?���gc�b��)+

)���yL�e�K�g�Mi4
Hm5�M��'U�vSU�X*i�I�X��gk�<OH�	]�~h��/�
���d|�������Ɯ�

�?�?x�c^u��j�_2��z��׬%>{�����YjveV����c��<dݕ��u{�U۶,�/˒�w��m��
��#��v��( �
����
_���aAh*H������QZ͈	�}S=�
>��5�	Sհ�|w
��c����e����my���U��W�o��5��+
�o"�	�Jb�Z����E�(� ��K�!@��k�� ��@ E�(��޸�j��u�nk�n����۱��vv���t����;�ad?����=s��9�s
�����߰NJbMH	k��)	^
ك{�x

�
����s%��'	
�0!n%��&�,%�^JR�/�5���|Ϲ�R����3���q��S�����։ة����PG�2{4�!�x�W�!�s΀���e$	��k�g�����|�¾����Ct�� +J\V卵WI��*9}V��8���=�0�M�TL$[�ƒۘ�I=!��C�C����Y�=�2�/�.�H�����]r³�	זDظ������T�
�u�Y�c繥�ΕA��t_����f�MM�tf<�T���Dz��#��DmZLU
<�lb�u��R�ܞT�K1#�T�
֡�)�*�[SkI%��p�^��u�
^oOq���
�<�╻���l/Xв�n38u�ԓ����c8;�{0K�o��e��=�[��s8�Ϛ6,hUO	���D
���z�������4�
�E8��ᷘ�?d`�A���{.�>v��<��g�T�F�0즎�Ї��yj�^]�w�!�S[�lϩ	m�n�6gu�4Caͤ�&s>�*�
Ie�#�Y�BCDH�YC��B� �>�9��Ή�װ{^.p!g
�0e
��b	�GP���
5&0z
+�ޝ�,��}`k~	�I_Z��ȭ�u�s��f털\;')�Y��h?�P��[x���J�$
 |���s�×j�ߢ�7
�A	��R�7��
+��`�L��R�ʢܺKe�M
+���
��"]`��Ȭ3V�V�s͆v~Y�QaI���H?+)�/n(��|+)�1"4� �#�U��cpу���.��
�{�F�������[���U���QyнŜ��X��[W�]_]j6��B�Jj9%�m|cq��P4*��Ht�+r��ޠ5~#���0��t������`���a�B�	8Y0�O0{�
��Ͳ��ny��\���V�QS���
+(��2U�XE�j�����/��-唞ה^�d�ޗd�����3MD�1A���J^�W%fA��=X��
��4��������B��y#45�Z��ѫ�
�ޥ��~E��@C]S_kͭi�f����!az�S��z;\Yu�:\Y��HUI�Tf"P�	_]Ax�<K���
����	sЊ3hA}�����`�o�ڎ
���(�2k�{�5ų�-�'�U�k)
�i.gi�,�����q@��0)Li8/Jn�-J�&J��G�l!��:�O�%��<�9<�3��38߈g�
+0�ЏX��F��� ��	�򞭔��7���z~����Rz�ز|5��靦 ��ZVj����n�&���Ƿ�q֛a2�Yۿ�q���Bx�̈́���XEna���̣��
s�
Ѓ4
0����El(
x�(�Ѵ�8zf���֟ᥴ�|G����V&�0�z{C���cz�9�{��H{�đ�<�H�Gj#��6�������_��]@��v����v`-�
��}4o�ZGd;Ġ��c����!����P��
�
�o�h�� �HO`�#8jx��g�:�y�_��AŠ
@������"f`
��=@���]� П H?p��
�N�Lo���H��K���Qe�
+ځ�
���<�h��#�i�t�|^w��������|�1���Γd��	d���:f��}�dž�,� ��T�D���H��&{���C̼ �
�a��n�vI!ʕ@��RR�pe�v��n�\��
��u�]C�[]3�W\�
[\_0����s�
��4K�7�%>k���C���?4
+`C�z'f�,@�
��w 
+;�kW� �j0�\Ž�-���nؾ$�mˉ�uY
[�u�M�e��W��/�ة��)Z���x�M���*�
��u���]x��p�N�A�{&q38��;���p;�@�5��7h~�D��@t[ �ۛ �N�D�n���^>p�W��
B�Cȃ��z�`���u�P��	�y���2��cc }8�ܻy3��i����t�u�`�
 ���� �cOx �������>����>���� ޏ�;x}~<?�
_|����^PQ]i
��o�

0�P,�$�51q�T�
+"* �D�����(Į
�ŵ�`Y#Q��	QcC�

֛�"9��s�p~��;̼�~߽�3�Hu1~
�}�|8sȼ{�¾g��
���O �Ӏ�
`}^�oZ�/頺���P\�t�-@n�*���
w�����j
g&p�!pS��|ƟT�d�'���3�! ���1��$�vp� 䋀�@q
�-5ِ�m�f�
��

�Gܔ<f;�p�{—��
��xv
+��	�������w�N��֟�5���'sv���/3�k��cߦ�T���"-�mK�@MC����
��n�*�)\��DZD
؂I�{��OY�����2�p�mfl�_ w��t��W��q�3���!�!�DX�
�&ƒZ7�"�^;��
\0���O�[/
�|�����Dݨ
���M�i6-�%���Q)�2:N��.����sbl'�q
ݙ�'�ۄ�H�ԛR��)4���"ZNŴ���^��Q�F^�^���oI}��.��҈%l�z�*������!�F4%Q:e�����E���b��+��v�w
�9�'��c�G��CzP��zD#�n�
�f�0kۡc-d���a�B�6����k���7�\�R��
u!j���L]�j�F<Vo�CU���;�J�>l�Fຕ@��
�Cq�
 �� \��֥)��������b�J��r:�ɣP-g�<
�<ܗ��\�;�Jܖ�ᦼU��p��8��^�E�'��	霽��:�'�8����^vMm <er�f-7g{��ܹ���������2d��0����j��ˆ|\2,�E�2�7��¸�{p��G�r�"
w}"��	�:�&,���7�B4SCx����ހ�y���w�ͨj��Mb�[�$�Ꞇs�#��8����L��\�G�T�J:�Aq�s���a�������[��z���%T�i��P���#|���
+�O�h�k+-^���#o#n4�¥f��K�`��[7��C�w���P�O��O���g��~�<�}>�-��,U��)Q��٬���j��i�f���M~/������-߿-4�˩ŸS
��۟*p���-lQ�犓�|P�: �Ma(����U��OU��ϰ�f�Rn1MPm6MW��f�7�
+l0�Ԭ7m�\k�eYb����׭V��h��
�%���? Z+j�s�������l�g�X��gz
j��~���:J[�EJ��,6PnLW�
�.	�)�l�ڜk��\�]n^b�Լ�f�y�\d��\h�,�7W��9��� aS����s�\
Nq�+��H�
+e�u��-
?�?;���w
+W�t��X�1Q��cJ�e
�j�tȴ*
+��O�Y4K�Th;7h�.?��~vP�}^P�}n�#���~z�Б]N-�:�3.m��K����vʺ {:+�=TFiXC��Eq�YZ�X
�,
+�Sv�fU6�z���Y_L��.4W�:�~F�rǜ�
��!{����v�z�iB�Џ�dO�����%���⹷����7u�bM7g��j����H��wP,��,��ΏL��떢��u�͌��ls�d�v�q������);|�a\�N�����w�Yo
_G=9���
7Y��#Y.�{{3~,���K�`E=����^&��W{��^�����Vo��c�vJ�4yR�p�	����}��ب<���Bcfd����m.#"�]�E�tɈzëғ�H�P�)�`e8p���v$p��������(����x���J�����O�2'>R=9�����$���A���_ٍ���Cf�	��=s
�c�;��eH��~��kZL�tN�r"}z�p���p�p���c�-<w���L�x��h��I�1����k����I91��:�oO˱�	ڬ�d9�ϗv#��tȈ�F?4n�!=��yp�
+�A��nɱ���^�.c��
ɱBO�u
�
��;��y�f��d�8X2��y?���܁n�I����6���`�q��Y�5��kG��/g�K��4�!=i�>��4CJb���e��6�%%
p�p�j\�&#���������}�������YI
�%���)֘�ꌉ��!;�_3�����T#R�4�b��
J�IOd���e
���7	1P���,,.��V�:,��U��H�A@��*��`-�k1X�b]Q��QD���#U�ѱ���rԊ��:��k+ڙs���@��w�����Ť��,��F/(�GFW�ύ��8;j�SxT��QW�c��(a>_�#�

����}x�k�����+��$�|dm���8��IZ�%BN�(If��4-y�YrR�"!1�ba�\eLB�Ut|�M�,�9���"V��6:���p
�kv
+���<r���X��������`�A�'�uH������^4?U��t[df8#=�U��1F���c�(}Z���`�����h՜�눔Ś��BmH����IF�I�
��
�']p����> A�>0^舶�K��
g�ų��f��]�
��
޹�>-�)9���;
�r=$���eѹ~�Ȝ�9�aّʰ����4���<M����W��3��2�O����/���/M触	��T��Ov=��~le�s�۲�s�r����)y@|�
+q�XP8QE�$󊼤��&��
��g�(�
�X��(�S���rm��j&/Y��]R��YrH�����{:�\���v>�$Khz��:��
�w=}�lIV��|���(f�Yb����.sFx�
��<%!e�3˦�˂��K���Q~�-'-�Vy�[M(Yc�^I��W��ؒS����ڎ]*l��H!)6=
g�;ؖm^�!�I.�I�����}*$��BP�#�� `�h���K��W�j�lҪP3��y�U
�UeXxUY���RzVnQyT�W�W���+��>j�����
+a�^��c�{�s��2�|s@�鎭 �W����U[`�
|7�q8���P3
�k�H��̐��	���Y �I���{�6�+�1n2w5�5w1���l�m��xk�:�VX�X�\s;�}F�Z:K+��* ���<����m�o�Ԫ�Y��G]�׏�[��\?�M�x�,i�+q1�K�6�H��VȆ�jdCL���N���2T+䃶�^7�τ��=�{
��tW�
+�M� Dofm������]2
kP�O

�3 C����
�w��ǀ�P�o��sc�6.C�}�$N��K
��E���%q��\�[H
v	����l�#�z
���,z�a���
�˞�u?0� ��
�&5�M:�����0h��`�<
�c��=F�`Ӓ�rX��B�z�\�U�3X
�>"$d3��8�2�;�s��
`�. ��������00�(лв]�:!�e�
+mv0o�
E�2
+�N����?���!k���� �vN�}'��5����) i{M�'܋����H�Dr�A����.�.�����iT
�����5/
Z�\���/�_\Jy��C�2�h/��`��pB�/�������뭐yO���3�3��O��W���:赦��;���X�_�*��8�kx!v�7\�[c�ی���@77�����,�]N����)��K�Ogͣp4��x0m�ځ���=�jz/��ȏ��I~"�r��~���T<�<<�E�W
��y 
~
+n:��-Z�U�����C@(�4�nO�y�i��<s	P�+��p�%���<!��_
OEl	s"�6,�q�q� U/�`�ŷ�V�o��!,�!d|
��EƑi�CRɇ����5�H6�I��#�89C��"�����?�aC�5{\UoE_�f AƐ)$��'�$��2RI֓��s��k��8����Ё�,�&�1�x���n��g.z�̅;�&�d6�#i���9�9�J�`5=��l��������
��3��
|�n�6?y��y�
�:-�а&Ē�(X�ȗ��'�H���e�U@�rz��YK���-�l�i`q���q�������
+G���#�֌C����cŚ(�CXxB���3�
<���=i,����)�A��?��p]V�k���*�W��p�l'.�}���V��w�L�.t�?�?�h�8�|��kD_��X2�=������/�#q_=ݪ���
�������eU.�����T+qV��UFt���z;:��qR݂6�N�����l��E#Ь����%����
��Z8��;���	?i���;��z�& g��ѩ]�]N�2�>�/�qC��.נ(�+����+��7&��F���,(,ȲܖEv�v���rY�˂+

"��.!xC�E��h�&Fmc��6�If:i:MS�M[�vڴ}z
���<�_��9��y�>|e
>X6�����e��7���pm��ŕO�K���\@��$�
d
��X�q��u,x�F�V��e���
+��*��U-�]��)�[kk�ݵMp=��{�������aj1d��r��r��r��_w�~k�o�7C��fC	�$r"�����C�kK��Gm�o
�����Wk�q�Kp/4
n���R�Z�
.G��R��Z�pP���9E;}V�C�)��g~֬�(�b�}Bq�}Lq�=���=�WΑH�H���둄�CH���W��
�ׇ�G1 �7r�}��G���͛`!:�)3aNi��(-�)��>����)w�f�
�i�^�Q�g2z�{8�8w<z�7���U~�Q~�?�_���\��_����6�|f~�F�dܳ�pύ��J

�V���8����	i0�`����dB�pB
{\��S�r��n�!��7
���O
��	�
+}�	�T�����{TDгD �ق�@
zN
�?
����1��D�NzN$��%L�$S)Y�XJ>}Hca
kl�!M
w0��7���ߟ�WЧ>(�U	�Qϊ�귙.�=�C�Ӟ�OQ[2	�$��<�%�b޿�{?�@ω��l��sc9�ʅ�49Lføv3�3���
�@fk����זs��5�ތF~OF����-�L�/jO���J[���>���})iN��ؕND�"BW�O��_��z�p}�b
�0��L
+&tRݱ���p@G��t�>�ի/`wg[�]�6^�g@ێ��֬�@wV?Ӓ��t3�Fݼ�^wK���ZV��w�#��ơ#"$�9�p��
�7 \G߷`�=� `
+c���i`�@�J0�C�1��)�Q��0��󊸞<+ߝ[В��r�E
9{�NÈ�a���ޒWޕ�
��m�'2��H1���D�>���O1w� W��9K ����(D}�7��
+�A�)
����i�N��3X�&{���m.,�5V�4�
+ZE5�=��!��8)������Ae�_�������H�S�GD����瘃[x��q�z���~\�__� z�_�Βh�l�V���iI�]�lvcI>�Yb�9Jl5�N���-�,�+̃�R�aY��LP��Z���I���Xn6i��H������;����
�\��>�b�<���aN��<�]&O�p[#�ٺ�j�jhg�����TW���ր�r����ETZ�)..
��-�Bˬ<�r%�h����h!��"A��b��3��:���_C�y���~
ρJ��Xڬ,pۤ�l�4V���:�rT'��UZ��*�m�����r��V-(�5�+w3��$F�,�zRn�.��֟"��+���	�=�g|�}w뿈�s��wj ���� mO
���
8
+��n=T;���L���4��.�m�+�9,<��
PP� ̫��rj���k�����2]�%���'ȟd�*"ɬ"�L;atv"�ٖx�}wW΋�u�
��D�Q�9 at Z�z�W������
+�rW�����6�t�BW
;�����d�����B]�
��aX��0#ImX��4ܗj��(IqqJ
aR�(���w�1�}
���	���
i�o{
�
7,�dP��*�=�P艁|�v*ϓA�x�,}k!;�����Z�������+Ը���if��<���$�1�-�%6Q��nF�w1��s�?�FߋV�q#������:(0v2�۵
r����n�
��խ�2�ut��H�yK�����6q�wu�U]��&ۺ�	c��c;�����0��cۈ`��7���γ
�q��Gv#M� ���0�����/��WC�/
R|J��A=�N%
�D��V�*Xq>';���(}��-�ü��gyQ�ۼ���xQ}��z	?j��X�x�c^��.�=�.�v�v)j��d�Ґ0�@��+w(�
R�V,��� Ư���\�2ZBm��6���^V��������
{��������N�r�1糨{�{�i'҈ߕ>�j�@k��� �<ɃȣP
]S!>	���k�jX?���7��vy at E}ea��Op�}P,�	����
+(�q]����ՠƂ��ADET,�NPX�
�h
{,G$1�qu]{�X�ۏ��������{����
�@�x�g��y��gΑڛ�%_�>�`�Q2l�]f(2C����/�)���멷4�y�����赌A.��| b3��8~�Z��9�P�	�rx�ë�;<+"�Q1�ír\�\��p�4é��U�p,�2!9����V�3y����LYǻH�?���R�O	VF�*�gS�݀c��j���u#
`WD�ak���26�1�Z�CcI�ڲ*K%���\�@]+��!��=��b
��ԝC݉�
Eݸr��6�����ԯ��_��Ƞ��AV� ��h�6#G��
�de��Y�PV:��
���S�^���
�
�jO-�Pwm���.�߃�k=�?�
���CIl�3�Yw�8ߕ��F6eل\d�i�kbR5љ�
&��+"�CV!��V`z�m��DQ7��� +�|
�;
��R����@.�
Wtl��l�]��>�
7� �L�b��|�I�I}g'�&w!��h!�y6��
�N�(�F{;Q׋��� ]# �D��u�Or��Lh�v�/��C��?�[7����l��O���
��1yI#_ҐW���������h� �
v<x����ռ�mּE����xD����3��=��桍�i<���,���`��!Pq��k�6@���k�A�?�	$��#�dYM6�RDJ�vRK�!��u�/��+~��xI��!쨭�Pp�W����;H����32�$�t��䐍du�r�
+��.����2i��.
�'��W��G�����
�ƙ�5���H?2�|B>�N"u��9R�kC��:k��%�2S��Vo���>�~���C����G��7�A8RW���m!�
+����Gz�j���XjMf|�tX@�Tjd�������s�"�@#�
�~��I�
�p�'��4q7F�� \��hK_h�ZG��9&��ۇ��G�x�}L��ԙ�0&���H���e��%�r�M���8O_���ŠS��	��8�t��Z%�#R����9��ST��hgG�8���A��'5�qU�˲�h�%�|:����bN+�qJ�'�98�̃UY�ê
+4�jpHՀ��&|�����W��2c�j�AxQ�eN�W^/'������7�~��}�6}pV7�lG��X
�����3�`?���`��8�n��s�W�u�2�:�A�C=�84a��T9�F��@Y��Bz��7ˈ�����n.yJ\��C��;N;t�Q��w
��ð��Թ�G��T{$a����L����敃*�|Tx��{J����
��Hf�Ki���
+IA3!�!�Z��=��k,���	`�;孁����Pg���}��� l��ʎcPR��(�b�dl	H��VJ�
�� �TX)��Iy�'e��~����L��Y�֐՝�F�R�K�0���3O�v���@ol�
��=P4 [����Gas�8O��gHy!s��!)�
!���!9��!�5!��U!��쐣���e�OKC�"#TțY�?���]���8i��G,=�c~��3X��P7l��a(�<�`�G`�q���8AZc�"[eL�eʳ����ƕ�L�FE�q�2ݸS���^�~E��X�(\(�I���<	�ԝ�n_>�|r�8n�����U���	�=���+�LXc�F�i��e%-7��e�&�2L��t�\E�)E�jZ�L1�S-�0�FlSϏ8��gj��1=��6	�,�Pe
�<��W{��>��s� �:��W|j
+{K���ھ>X���
X�?
+����#����e��&��5E�
��\�������F3+�P�yd�vf�>����6�#h�E	��(��)Tm(��O|ǧ�J�x��
�b�c����a�@OdFwƒ�0������XiQ�G����d�c����NR̎��L������N���N�γ�]��
m�M��V71��.!Fh�����*a`+�"�}�����c�������c�
�buX2��q�H�
��&̏(͍��͎)K�#���"q�4�!��S�R4��Vh���u�GEy�a��fav
.D�&�葨(�((�"���0�
̌��
(��q��h]\Q0.
cM�h��4rZ=&�Ic\km�m��&��A����;��8�}������}��yI�ir��j
I�j�I�4���j{���'�J�x�U�?3��~��F[�6�a���>�(Ѡ���Ԧ����*C�PnH
��t��$=WV�^
P�V��O�W�5�
��Mߡ���Y�g�M�Y�Hc֋*�^TZRE�S.q�a�Q��ؑl�ZV���u�d��D��9Tf�C�i*�L��i�PlJ����N�]��Y(_�Y��e���ƕj�q�&˸K���ΘqZ��qC���&#CT
�ҏ����}m��f`6���9�x%�R�uԘTf��bK0ʬcQb����BA�<!?;E�k͔:�92��)϶��-5J�e��h^�1�۵if�No�P�j��M5���g�*�ԛDe�IT�r�������,ځV��q#�SüTpM�9:ۆ��

+�c�
ӱ�1W�;�$9���J͎\y���a�V��Uz�:u��UM��6���6�vU���P��-��Ee��	�^z����o!�c.���*Z�zR����,�U#/o��
�4X���s�`r�I��,��鐥9������
ʄ<�j~�vu|�M\�IrY��@
�PT�<��xʟ���1�.'����`�!�<�N��Q��@X��#�$
&�]�0��	i�d!�e�$�r���ق�ry|I�"�d�2�x�jv�����Y�ߨf�S�*�1��	�>>d��b��Jx
�yh�I%)�{�rs� ��~0�AZy(R+‘R���9H�LT�
�I\E�4��L6��-�U�]ު�^�WY�>�J���"r���,�J������B�����2`y)PK�8�]L�WA߳H^�FB�@̯}
�a�瞂��hĺ�0ǝ"ĸ3��n�d��X宖Ns/���n�O�}M>���<���<��<�Z�G,!U�|��w������K�RE���C��Z ��ާA�������!�n
��&`������ ҳ Sy�_�X�)
��&z%<��=
�<�H�<�a�?H�Di�ˤ�W�d��T�<�p/.��$�H.����L�6��XE��Z��́�hƤ�ј�f"��Db�w�{�׈0�c���B�^a�� [...]
+�	��~�u
����@�����7hYGo��
ڥŠ�$;Fc at G8;#�\<өG��
��]
+���	�����<M�
hw=�n�];��G;�65+���P���`0���^�ہ�N`�
`�~��
j��Cp(�C����!�EA���e���a�qC��1}������C"?
���6j�e������6ր����v�1�.���Ao�8��]@8���B{|a#��hB��>��n~p��s�y����n��u��󘈿���+�2�7���ԝ�Xg
&Qs45��9�=@{��?0�#	pZM�����3�lF{��p�3��,?�gyٟ�!�a�{(p�m>/��
����.�d/`=�
f�C���70���ԧ�'����������J��"�H��5��K��\�~���¿ƍ�	��b^?En��D|B]k�4�
R�
C�I�
�X�=��
+(z������%�-�B��R�&k�O����m���?r
w���޸�p��0�>&��?<a����������;��QWw�}I����~���%���(��Ӌ�\�C
�9Y�M��FM�^�"��ċ
Xd���Oe��D���
�$�H$�'�NJH�#�I3YOZ�+���'��q��p������w��S
�����!��

"A$��!�%�$�X��,"KIYI�p�
�m�w
`7�
�pwp�:=L�
��������QC�@�����E8�&	��x
���:�pS��������8�V�g'���y},�q�gp
��*q�3|˙z���:�t̅�o�
��d,�J͹�"�Z��Q��U�x�.�i��k9W
��vn�|������S8��<F����8�Y��v�Ey�q��^
�] �[�Q at PNA�c9V؅v9v��Z�e9� �'�x�b�z�V,�x�h�ĚX�4��Sg�:��i��$�f:}�Em�d��g�}�?��<���=���?��5T-u'�@�D����Ok�%k�)"�����d>6�2�j4�h�G���L����A����I�þx�q�1�Gx������P���R*Ǎ�+�G�sM�ԝ��PS��20�l<@��
?F-5���A�ո�
��
��޸�5��Z���x
WX�wq�+0"<���⢤��MT�8UK�<�y�X>�Ʊ���s�
�qW\���
�%����u�W7�hZpYӉQ�
\��ň�v
��¸C8?�
΍��3
n�&<ĉI���d [...]
+��^�
�?�`���ST�!��|�:��lG��
�<v�q������2�k�
����p>0�����

�V�#ӝ84�ߛш3۱�j웹	C�v`p���>�ݳ�10�v��%����%U�'������8V?	�_L�Hj�ȹ
�{�<
�3&�̬)8>'�����$��r&���cp�{T`��:
5cgP'v�ö�~ak�
�?���|^�
�.l
+���>�/�څ��Cք|�/����@܎Fcy�G����9���� �2����
�]�ұcq6�-.���Rlw�/�#�	û�
�º�]bO�~qu�i�;�����X\�/�=R}F���4�����X��Lk��6c9�

�b r&�G/Ė
��$�W����|��ٱVW.��j�ձ��*]�إ[/v�I
�!�-���;*��ޕ�b�$7��Sj�U�=c������;�3Ҙ?����o��v�$�/��޸ذ,
+��X���n}���+�Ra��%��=�W�.���H�	��Ƅ��'��NQ��?Rj�j�Wr�^�\	�E
�kp���4r�iӊ
2��)�I�~<�'����y�NGWJ
VR�n0�͐/�
B��Bl4ԉ
C��6���
�r��U�e8�T.j*
w4e�ߓ(N�*;ST��<�����Uڍ�fր�g����_�&k
t���3m6:2B��СŘ�&�r4s��Hp�b��F�66IU�N�¸Q.3�TJ3jJ2��qo�؍5v�ߕ�
U~J�*ٟ��D�2j^� '�9�1�M���5�2��X�Ek�
4g��
�Y�9
��l��l��+�
+s�Xn�HNs�\bZ�8Lەb�~M��O�馏��[��K�դ*�,U&�5S�l�#��5/�G��i763����+�w.֧�<	
9S��G�%չ��MEe^�P��/8��bIn���uKŹmran�b�ݪX-�4y�3>�u�
˯��
������lU�'��
j^,�^��h�71�n��F�Ș�yP��"\ֹ��-B�-΂d�,NJ�`/(�
+�bAA�d��Hy�ղ�֯dۆ4f�i�,�5�L��}2��dZU%3_����S�1�1׫�=W̽H;��X�x:O#c�㳪��E�p�FI�B8�1���(r��Б-�
6!�Q"�ګ�
{�d�w�Y�>ey�&���&��
M��CMZ�MZ����r��4�;��ej�\���A�����+����X�Eq�
��挄���2r˲�S�/d��SY���l���N)ݹINu�VR��5���5I�4���)I%����)R�C���m�|��Gi�J��%�i"���ߋ� k�$�UN��j
r�!ۥ�ɕ�,��]]EB��LHu��W���� �]򲪣r|ը纯�U�U��T�
+U�+W���g�`�/��*���!m�M��VXE�]
�k�#���ݳ��Fz}����IE�DŽd���A��yZ�8�Z1�~�����SI��O�r�Y��S��ZU��!�ϸ�\�R㻤�Ž@�H5�
5����� �IFJ�d$�LEb�<�[ð�u	⽉��f`�ׂX.�o��m���B�w���{P
���޻bh�'bh�*�6�FU
{��'��Z��a�'�|/�����^@�,�
�%��#�k&�� jU8"W-EĪd���Ģn+ºK��u�G�|�q����X�YĖ�,�$��&ni����TUk_�p�
+"��$�D�ԒPJ����2��Uc�LU����jj�:J��ϕ�:��Gr#y�����<꒕�Ȭ
�g��*���]Fh�I#t�M#4�4B3`�i	M7-a�
�*t�fpY
Sa*��gC�~m��w��@�^dQ�bOE��*<7P�s#�)7Fay�
+�믐��
+�����
+̟���j�_�v�;�\y�)`��j�cmAv�3yf�.�f����N5`={e!�/�b򥈥Rpq�/�R�?�-	T at i�ڔ�ʿ4A~��kS>��jm��V�����ҾU^�#�_�W�OjY�Q�x?���Vv&g�����R�\)� �"�K�/�ʥ�k����%O��<

���X�p���1P�
o�m�$5q���Q �c���XF��Tޕe�)�
+SM�4PI����Yh��x>]B
�I��ϕR�)�51�Jj�I��b�۶2�1
oc ����R
P

���RC�k(b
�Wov�m7�)�
��
+�	��z�rj���E���
�o��TK�;$�]�++�>v
�۽
���c~�ǏZ��Z}-ͥ�b�b�� j�W��#0�G��
��i�%�o���FɺU���h�$��/5?(���G��	~
ŏc���0���$~�b 9E����Q�:�����_�|F^}�I�;l
5���wK������a�
M�ch�JV��0 ���E:�\:Ǣt�%�B{�
�K��u����L�/������� �gds2y
��4]�!���T�=A�OI.����? �H+��X���MXPܥ�����
���q���>g�A*K����c�����zM#�c��/�v?�>�>��~���_�zN�o�:p�t��p0��J���Sjc� �
�&C���0��&51I�I1�/�g��
ה_���q0 ބ10f�
X�P+`
��-���6�P���Ol����s
��&\w��V���6=�
�0�a&��~��j	���[��Z=��W�^�u_���:Rt�����z�m���e�.������4�+��k�4�xƠ��F
+)O��<�/�~v��VW%qm�wڡkڧ�:G�6�|"gֿl�"\��N�:u��[�ז�j�D����+D1�����x4�b��j6�������plVcw
v�R����+��4�g��SX>	ίu/`�@��hȉ+������f7r�� }�!�>�w�7%�,g�ҹ�Y���n!�K��kt��
�v��>
�	<�����Z����äŘ�
>��<�r�
jr�sqQ���A</��::o�1�
O�E%��=�h�G#{�P-�^9��ح=څ'p��S��[���m/`z��u���܂��Ϋߔ\�"�D��UG�*:�8�o�1��h$���M��	X�N>�KP_�
٤����4�*�3Z�zC�Ǫljjm3S/`�R
�
_Z�-��
+�N����!����M�h��o����n6\[�������b�6��R��\�wϑ�c�*=V��c��=?�j�CZ�yF+�n�����{�>�@<���iGK
����i��O��)r��N϶��
+ז���ѻ��Z�.G��Z�z�ִ��r��Z�3]+}fk���}���Ϯb?���j�ԿV�����r�(���E�	h�!��¤ϣxz��
ήA{�ցgկ�6��h��*�ku�x���/{��*�0L�
FkYljZ�1I��Z����
�+'�B��[�0x���Լ�k�
}��P�
�����~�+OQ� �f�×u��6�Py��V�WIH����Ra��Z�i��:����Z>N��Z����5/b��F*#r��#7i�{�YQǍԨ+ƌ�G��(�HyNd7x���
�g�{�=Ê6�Wvg�"7�
*�l��.a����n	ZЭ�����跔=Js�'jvL��bR53f���g̈Ya��T���2�c?5�b/ScSbM#�I̯\%��g�ˌ\}�2|)�)�e��n�E1>���=�*��U��)��@��=D���a
���)�f�n$[�I�
c�u��huX&��L�;by7�q����3�q�Fz��Wh�D{�o�͌
������	�q�ڽ]�i�V�K
4+>B�	 [...]
�1�g$��b>��
�������0��{	KHe�
K�"�I&�L2If�LB&�$$C!���"IT�BR,	�@�!�(}��c��V��V��c]
+B����_H��g�3s����9�|/>����X�$��E�
�Ґ���cU�8E5IsT��@U�-wd�ґ�
+G@�2#�Xa�:�Ŏ;�BG�Y��n�;�[y�c��q��9.YK
��$�_�m�q�g�����.j��]��L,k�c
�a�c��S�UU�
+��TE�<��'�,ݩ�ӣg����F�s�Q�3��L����w[���,��q+��'+�y��N��+��fNj?g�8�I�K+��M��u��J,�����T����y��]̈Qif��3�ȝ��;Kn���EF����k�\�m�ǽ��vo���[��V����r_�\���GF��9�Ʊ
�l�M�Ԁxꉧ��,'�r�`�fE�8;J�9SU�3GK=
��q��ɔϛ�\o@^o���1��Mf�g���<`9={�4�cV��y+�󱕒c�}�fCV?��8�+��/�n�-��xB�R�g��T�7\��c�_-�o�r}���'��w*��Q�?_n���0��#�����b&�w[I�^+��Z���\����x�m&����}$�=��o��%�PF<����/o������t��
��]�̂eR�
+d)=�WZ�X)��#��H
+����̈́�.sA�x>0�
�7��f|>���x�����h��A
,�B��
eVVQ�2�#�*�Rz�T���Vj�|��&)�ԥ�`��-
+V(!x�� �l��c�
�4o
2c�������ؒ���bی-�͸"ۈ+��c��/bO�~o�&�j`��<��H���i��X���1J���E�ӕP���	ZJU|([�C��
+���Jņn3�ڍ١�Y�����������3������l�1tzJٓЂ���R�}e��e�WJ���>�C5o�(�]��k�(��F���ӜU���ʥW�j֪"ͬ����F��nԴ�nM�=�ɵ�(z�ۚ\�1��6&��gJ�m<��h����|P�u <ش�����Z�Ճ4�>\3���	�i��7�Ѵ�xMmthJc���uC�2Mj�ӄ�6��i����i|�q�kzC����z[Qk`�mD���#hl#���Y�����y&-�)
�tS�4
��<D["4�e��o�����o�I�Zjlk�ƴzu]k��m���uնY�m{���F��WD��l�I��I��O�ݷ
+ߋ^
TB���:�^Z�V�ŲNoA���
�Ȏ��Ή���XX��.
��Ӱ�
+
�lPX�&]ݹC�;�誎3�~AWo�5�n����lo�l$ϵ�Y�P���F�u+k�Y�k�f`W��ѿ����X�5L��"5�k�̮I2�8�8 �y�w��Yh�$�M�][S�
��
�������λ�z��s)9�[��
��M�Lt��H㱉��T
+���K2v��W�����C3��d//���`�������N��'�����
@��~:�s
�5PB��wK)���w��D��Ҩ
i������pЂ�
v�q�8

'
&�#���a�ˁ����ea�R�#$p���K�����ȵ*5o3s@��;�\'�E�Q���?*
�E�7p
~ۇ)=I=�ӈ?5Jzz,�0�቙��ٳ
��K'��
��'���x�5�Wh��+�-"�l�M�g�����x4#�JÞ�̧�<'�9�=��?��Wь
�1�9� �e��2q���8ρ�
+�U&��. �ר�k�[�m���H�}��+iޯ��p#�
;9��<���K�2�����M�f�]j�>s�!&���E���
:�TK�Xܗ
�.S��
p�8.�j�k�a���R�3н��A�W�e�4��ހ��Rbc�‡�/�L�>e~>g�|�A��`����fN����m���
��h5@��8�
+q�
�P �`%��:X������>��q���B��x_�]}���%�~1�%� ޅ���&��V� #�7B��%B������70v�ޯ�ե�h�>�g^�}~����$%zEs���`@�}x�ËWbCa�ADA
�z��,E�L��
+F���e�;{�v0-[��nr��t�#��L�q�������j��h��8���Чm�>G��u���lꖀ��i�E�P�0'o��eX�׈�<q�L
/�����Y�Y�=��-s�\�yL��ǿoΆ$@��Ä�!�\�0`�
��c�m
6l�aCH ��%9H�PҜm%�Ҵ9�4R�4G��֩��i�V�Ȧ-�4���e���/	Қ����'������������)���'t���pg����Sx������x�
Ƭ�Z��Q������N���
��0���]�����s��?������u������
���]��
W��4����#={���Ԍ�O�J�5�*�:t�0�#4q�V��N|H��5��*}\�.��I\�\��΋x�N.��y^�s\�٧'�y� 3
1��n
S��4���[B�x�S+�k)��j���9�6��.j�Rc����sN�u��i��$�
��c\�Q��4W9s��f92�^�o���:	|�sk�L*�n45��9�
+�����+���9qJxpB�q|N^�3��s����qL͛��y�ph�yLο�
�`�
_a�o�'L����1u��4�tr����X>?L�����0?g�pj���J��U�^l��b���Px;�w�@x�#F�7b;&"�aw�Q�\r㑗�#��G~�-Q�X��M��7�����g����Q;�O-����SQ�p2"G#q$*���q`i9�-���2
v/k�ΘV����#��c�ak�6���X��.
#�/a8�6��
���`�����Cj~���c>1�1�������_��Cq��y,�$Ȱ31;Vc��JlYi��$+6%90���H���A�O�P�KL=�P�IS�A��&ze?�Z�#t�I� �%U�oW�9R2y���WP�~X�a��Jy;R��U���496�*�pz9֧�1�ڌ��v
d���?�}��ѓ�ݙ��C��M��7�!�
�Y�'K�G�=2%|�'�>K���L!��rl/���碗͙s1��
�
e�c [���Do�=9
�V8Px�Wt�S9��ڕ{�QN�Uy^�����	g#�?¡���3���m>�K�,;&Y����g�ɸl`\�*cї���y��Ÿ_�΂j�
+��(��[�
+OaZ
�p�6¥��jJ4��	�ꚰ�>���ªzB$a-��@�S�f����4�(c�CO#��	1.��a�V-EWQ|řh/΃�D���*���.m�������^4��aS�$��E���������0�� ���u��3J$a"?���J�E>��N�ś�i�^�����t!:�Q�%��,
�r\�pVh�E��
v�6�V�Z�k�`�n&�AaԾ&
��E��Q�������H���5咸Oͫz�4K�I���='=駛q��f
ܚ%pi��Q)CSU6�U�hԕêӣAgF����&} F� 
���F@����N�����Z��O��IB[%��*%q���X'{��j��}�񻋿���U��Z����LXj�`�-��P�:�FC#j
-�1tBo
Ag
��}Bc<!ʍ�2�
�6�F�
��ZI�k$Q6C�$nQ�m����C2J��_K}����v�o0��R
S�
+M�0��5�Ƭ��\
��
U'*-
�X�QnE�eB�Z��b�;���PY~%T�I�L�(�{��:�ۢ�&`aۊ^��q�5���,
Q[��x�2TY�Q�X mc4�z��L(�5Am��փb�0T�](�
���D��#���R(
�U�
��K��z�2I��A m�F�V�
l�t���6���9��IP;2P�P��Q�b�ENT�F8��w��Z�k
9�W��zY����~��o�;$d5K"���%q�e�I2AF��O|���쀡�}K���
Uk
+[P�&C~[6��
+��A��#�c���^��dz�a��0Vy�#�{2�� ���6	i��-aU�����-�8YO�i��ɞ���m���@�o>r:#�������w�#�K�
V�5H���A� 5Ї��f$&�"p���|��wH�d�ꓰb�	��|����
�.�&�
7P[��M���`븪oR�#�����$3�2���R$uHYjA\���,
����iD��"*�cD�At������H8��M��
�E�N
�Lm]'{� ���L�wX��ǿ *��p ʐ%D�qE��ׁ��
/B
���E
��yj
��Ml���`֓&����8�֪16Mn?H����}~�~�����=��~���_������Y⦎%��(	��)Dn�(�/WS�:���`ʖ��@Φ%r2m����K�ʡ�
���|���2�L��h�L�cx��,� W����<�$�R�k3`��\��r2����#s��͡jg�Q[� ٙ�ek�,3ƛ���vs�Z+�*�P�b [...]
+�S3`���V�j
eSˌ[ۑC�h��(�u�:.�:�.X�n0g�<��̙+
��[�F�_sa
+�S�yH1g`�^.�@��U�s��$����z�
4���fp�'E��g

�
+m=E�������'��������{�x�����K���4�b�X�94s�퉮�j�#��M�C�d�;�s���rÎ]ر;���ر;h�(|F�u��l��]p�w��r��߇
{�)�5���՜��� ����݌>�4��A�p�&�B��
��4��hΏ{H�c_N`G#�I#ů�K��u�X4�`�;�1�'-��c�ٮqu��x-t��ɞ�%�CR[��1Y~ւ��}8��6�9��4�.�Hb�U���(�M
����m™&>�v
~�f���ت�����n����c8!�;ݪu.4@�W�	����9|������
��-�M��
���yw�t�{���>S������ӆ�#��I�?
�{�Y�r��U�
�
+n GL_�M�%݁{ց

0�=&&OV�ۃA�
���c��Y�p
��

��d�r��Xw�@���0
�C̄9P
eP�`�~a��Y�̍;���ټ'��	�K=�=⭇�܁���uޔ������_�8
� 
�l4r�9�	s�c�x�
�Ǝi���
��)�>s�]��u� ~˯�|�
�|
��\�K�68�
ش����
��+�/�����c�Hg�i�?��
؂�.c�*�Z��k�l7��ң�49��Y}��]�Z��Z9���flA���
M��O��Ţ�:#�W��Ϛ��d����D<��/W��2v\Ž
Z�s��.�$����B���|��D�*Vޅ�p�نg�O�S�-�3�7��V8~$`�P]dO�)�㘁F֞��\�.f�2
���VG����r���!���e��~�dJV����9
�]��|�
��
_|�#�ht�����Y"
f��Q��;�c�^�أj�"G��&�A,��[Y�
�6�M�Y��
��߶i9�l�숗�Xu— ��N
��n��N�a������F��
[ȏ�2�
�d�2"���62� �P
�Y��]�n�@�y�r��������,��9lk��
�tŧ�dX�"�I���h$�1�4429����J��B�b����*_T�*�c1�����
+ۧ*oC��{���S���1���ڝ<�A	����<8�~Zg�ն�Z�f�V�
ղ��Z�n�j�MRu���j?Sf�9��/Q��b�9�j��&-p�-��Q;]T��-��Ԉ�����ɏ��>eo{g�)��Q~��h��A�N^Z�
��0U��i��EUUn�E
&h����er�U��|�w+W��r�m�
�]�w?�<������
��5����n��k�0�I�!�vß���WÕ_�n/���*�}��c�J;�U��
*�4X�;��<�1*�J�
�,�{�T��\��,P�O�f��ӌ�o���������v����?)��E�]�����C)�!��*m�U2�a��.mT��AE��5�k����)�7Vy~��7L9�ɚ�?^3��kz7����
P�� �2VkJ�6�
Ҥ�3J
��&=Uj�E�����7%��g���a�z<+Ŗ���7�fn��^	��� ��
���jz�M�9X�=G(��e�JSF�,������B�W(5x�&��k\�A�
yOcB�+%�F�XZ�(.E�Q�6XU�
�<+Ė|l�%69���i!]55��2{�+�w���
��>�4)l�&�MPjX�&���
/SJ�
+��ج�%E�҈���
���C�E#�\
�0�6�C9�,{rh�a�
�V�ᮚ�ɑ�J�쭉}�5��
5D㢒46j�R�'kt�Q����@#b�jx�F�
�OCcNjH���,
Q-�����נ�\Z�
Z#mP��G�jR��Rc<5>�_�b�5&.R)q��o���%jd�%ŧix|���4,ޤ��5��^JأNh`�'��P�-�?��<*���?we1 $�� n "�"�

�2�,�0Q��NHAA�(����M�q��Z5q�4զ�M���6mz���ĸ�&��ƚ�X���a�9����}�����"Ρ���l����X?m�
_f�K1�S�U����@Y��(/i�r�'+;� ���,�E&C�2
2��UZJ�RS�dH�PR�>%��RB�NJO���
%$�Hr����T�#,�g���=
3�
+��b��oe�Ȝ6R��pe�E+#=I�t���s�j���L��J26(��\��M���G�'�qA��;�Nw(��4�bS
:F�
�@�Q�U<�Cq���l6�)c�22�Pzf��L�J5M����T%e���U��
ř�4�lW�y���4ɼK���`�nkB�C�&���0#�Oa4A
̂�`�
0eIFs�f{Ȑ㣤�@%�VBn��rc59/Y�y��ɛ��M���DK�&XZaY�p��Y�)��
_+4ϡ�\�qh\�C�R,���r(�)�J�
�<zn�?e�&�{)��_���*
Ӥ�I�X����tEXs4�:M��
+�Y�jm��5ں]#�����
+�~��B:��wh��^�0�J�V�E7�Q)��ٓ�1jZM(�TD��‹5�d��J"Z��%�)�����,-SHi��J��T�j�����P�
����FC�C��
ڞ�� 
�lP
��fю�2��_"�gT;s�F�{id��B*�\���H=Y�@[�F��4�V"[��l
z��&_�V����vnjX�C��t8�-s�E4V@TCL�\F4#�lyE��_.�at
���s<�_�-�� =Q
�ǫ�ɷ&J>5IVc�w�U^56=VS��5��Y�!���r�>��>�<�
��e�k�z��P ��� ��
+)�il���u�O� y-��P�0yڇ��>���
+7{���4�>]�5�o_����p��S$��l�7�SO7=ϡ~�z&�j��"��9�Ff3��A��(h
�
�����ܚ�4��K}�i~�i<���[�dZ8�Z�L-P
�ky��g��ຈ�m�
��l��y�h�*^/�|�3Xs"k�ĚC�� �7IÚ%�%m���,�1ϵ�x���XE#�����
��C��
�N0�1Ҿ���C�� ��P���"p8iF�j��z��͚
�� �5J���c�{��J�����j}?���@�?6��f���	���p뤰;YT'�:��p�������p�
z��y�b�F�cI�7x��Z�Z+�o��w��^B�m���x�B<v��.�������c/�>P\���w���F�z�w>�{��pbGs֏�

��ŜC�9��V�M�(���g���U8 ���@xu��������q
?N�x���;�A�Equ����O�/����
Nj[9���W��<��F���^��W]ZG���Mg �_��p��b x���%7�Ҡ�Ï�
,\~��gw-�������/�M�CO���H���9���;b?��%�=�].���;�z���Çp�9����Ae��W�Kä/��
+M��
��y�"��
��uj��M�穀5��Z��z���a��qi����ȥ���g�7�`x����a
na�
����w4������'?P��_���
\c�
+���z��� 
� �a:̂�`�&h�6��5z���=�}�o���Ôx�$}��L�_�
�6o�p���9o��@���
`
DA
+dca�~P���:�۱߄�V��_����?���4z�"�J"����<}��t	K=|�Yx��C?���KWL|Y[0�Ϛ��2�cA���د�j����������~|ʴ�	S�ټ�T?�QJ�
z�9"�>��uqN�	��?�%w�ŗ̺7��5f�/��N��LN>V	1,�v��b{%Ө���;��[��|;�x�R>����<Z7t�H
C�u8
+���#>prWJU}���s_�D��щ��T�MNΨ@�Ə7𣋼������:~
ŏ�Z��u
[����8�}D|E��
�Bm'�|��.85�go�����-/���(t"ш�Z:�s�_��l���خ��|l6bs����ll�2�9=ق�
l��ds����
�ۮ�����"G�'�#��$:��D����
��b��]P��r����\l.`w,$
+ϓ��T�V���W��UD��̮�������r�]��9��� �]���;��A��1���B���9
�(��h���r4*Ѩ�f
,�R����y
ZDd�+�G#��r���"���pvrԾ�ѿ�+`�ܵ^��
Gk4:��ı�T-��T�iL\�����Y�n0˰/� �2,�� 3,3��1��
���$��v�c���xK�ʭk7�V�괪*�R��R�U~���V��.Q*�J��c;R������{����;G:����	r�q���+Y�Ȧc�n:�J�F�d)���ﱰ��G}��Vu���Wj폴�~U��e�Zr6�f_T=/�F�|T
g"S8�%�S[K8]ͱ��lsrx[�����}�嘽,�Lr f���Äc�e.v���L��g2�=&�> �1�����,�wvi9Tk���%�?k�5�t2Y$Dq"nG��9o��r�j8��`!�E8��\���� �I�L&�1��B(i����K����{S
H�9#�3�j���J��Cq'_vD���Syʝ�i%S
K�,'�r %�pj6�i�L�U1��������݌��2���ьQ�fL4-0�`�t�ݙ�2�y_�
d�������2����L�G�_d}>'.�z�i{X��d�U˜j�Ɍf*3��Y&�w�/������4�i'� [...]
+�Ū���I�W=����f�8��%��K�(-����޲Z��<�.z*<tU
���b�e�e�6�Z,��l�:M���񔊧�#|�
+�ğ�bF�k�
գ(Ǡ�Y��gI�[����LwU]�V��
tT��v�n��i�N�b[�a[�ѶA��6v�ר����� 
꬟Rm�v��B��CY�cbAL���7�c~�اz<�(�m;pפ�Q����gm%muvZ�Zh����G�}�F�~����'������&��������=U�S]g<���]�[�Q49ܠy ��; ��߫Z�US�=���8�RhmȢ�� GcM�5465�����䥮i�Z�86�<Վ�T9.`qܠ��e�G�:~GYӿ�Ay�AE��]i�,�{�Iߡ��bH�.
wiۦ���
CSs"
-Է�ao-������zlmmXۺ�n�S�6��9G��(��(q^����B�(p����R�jP��7tՋd��" |�#\��U�K���
Mm�l�4��l�:
+��`騥�����N�:�)��C�{�B�*��s����u�
�����
9�� �� �e��npS�?��uBX��!�'�Dk;4(>ֺ���"�t�QޓDY���
3%�R�=V
+=�x���z1{G��N��]a��92����������k�=���c`�~�5��3�t��
�
�RLrH��[�
(�m
$`
H#Ϸ�\_!9�
+�}u���e��1���ӿH��4)��$���(~I���$
�=��5���X�E�_Z#�_t	�^���}�Wt,RT�
�$k$S ��@:;���I
T�h$9�")�Obp/	�yvO�L\�Mb��&&��+�#r��r�C�|ǥ�Ġ�p�!
Ү��Zj����B��VCq$������Y��!6�BL���a�CSl

a��Td��o1��'"����lg�qHL��ݢէ9(�Ji+"�J_�1uBp:�ع��	D�S��bs�����Ma}�a�ܰn
�Byw�x
f�kf?T#������VJ٭�aH=A�a�+\��8�9�J�I_��4)�ҟ���MD
��Z��Y��XI׃(O
RS_US[�Ƕ�\���[U�\=%���=���@vP5,O8"�Y=��%]�6�mz�I0�H_�)K����0l>.�wR��
�)���Z��L�
-v�j�����5�!���/����C��p��'�V5�4X�ք�,(z�۩g���

C���|D�' z
"���9��&5x����
ZpT�%���
-vz'�5�7�`
B�cㆎS�}���&T��y�i�0(:5�
:�� H�tR��w��K����c���)�j<�)�^�x���rS��긭�����
M��z���[����
9�����5�Yi�Gcݲ�9�S
Ok�I7���e��.���5��ӍB
��2��{2��ce���e
�y��
(�K�k�]XXXv�]`9DPEEE-�}�3�Ѫ�68ƨ�ǚ&5UcըʹM���G϶&iL�L�9�l?�q��g~�e���}��y�G�㣍
Y���&�Fa���V��[O�?�r��&�4ݑ
�C�ƹ��ߢ�����ԩ�~�?�p� Ҫ���
'�K���i.�g����]��l 穋
L�h���ݷ�S
c
���)+����C7`?��vj�	��$��ur.�{�gx��hV.37������k
z���nP�7�I7��M�����;*�D
2f;y6�U�+�6�����S�|���}�.���U�����Xz�M�|��;��]j�
sr�E��5�zH]< �t9}���"�
v�@	��Z�3a,�tS��|
��=���t��������}M��>��|�������\�sOz��O���  B�VȆB}�24F�QG��@�����Ǘ����9
�3���Е��b�A�\�Ru���!u>}��p�?��^0zݣ׽C.����RC�('~�n��>��_~�fb/�%||�������%��
+�x
����6
�O�t���k?������S�n)�qG�>���H^�WB�ԟ�q
��sϨ�سu�������8�Mhl�����6���u��F��*�
��ާ<�k1N161
��){:&�2�l��Q|���#�&�x
��!Mg�M:���c��
�w�����/w�E�cj/�v��wz��YΗ:��Irq�\
�.+

v��*
+��aڃ����I���$bNgkbw%[�z\�h3n6i#�7P����P]�I��4ou.�w:����h?��K.vi ��nE�A�\��G{4�XK�IěN�����R�j5�*"� �/��rfu)�f)�O�U������p��-ql'�e��Z!�#�1�Ѱ��Ɍ�i
>V�c%>V�����2�e	�e�摍�ϯ�il�JfSQM�����4�9�αͷ�
h��f��
x�%{�Z1�p"ơ���4-�6�o,P���
+4j��T��mnq<��Me>������_x
��������
y-���5
�+8�{w��n}W0z�h%��K���dhVW�fv�Wc�!�޽LӺ�R��8M�I~�T�c�&�X���[U�s���<�1=/���g���j�j�b(G�ˋl�a5�ø�p
h��� ?��
�Y�C���i�f5�iJ_�&��U}�M
(Q]�H��Ѹ��8C5�
T
�FU�[U�W�o�<�=���ߏ�2p�Fq��Z#-�9��3#���gj�Ҕ��>(B��lQmp����֘~
��+��~e��_����U���C�,d���lְ��ڪ!�T
����~ �

������q���
>O���������

И�U�Ekt�I�"�2¡�9*P�J4<�B��cU��sh�l����+v*�pX^�9y�n)/�1ON"Cm	\e8�3���
�O�o��S���x���ʨ~*��Ԉ�x
���4&]�b�44֣!q�*��¸j��+�8K^���+ǸC.�!eǟQV���p;8��6���\E@#���$����#�R�S��A*��ЄX4�h�M
l�Q��P^S���U�5��mn�˼HY���L�.G"�\�i�'ބ���}O�0�t ���\{��L�8�g5G~/�K)^�&vWQb�
+�B48)J^K�<��Y��Mv)'9_��e�T(3�VΔi�H���g�f�&�����SJ�^��@��%w��M�.���rdž�P��2(��b�
������4 at n�Q.[��l��L͔3�#Gj�2R˕Nc��� [�\Y��(9�yY�(1��iW�S}Jj���nt�s�\�N-ک��r>�@���)��;���҃�i��
��
��V�gd(͑�TG�9�du�(�9Yg���dr�F	���w�AF��2:�)��SB�}ځγ�$�
�:P����^
����,�g�3���_�Yٲ�5(ۢ��t%gg���W�k�̮*�\�Jp5��f�uoQ��eE���ຬ(�]Eg����S
�Wg�ђL�1P%P �����R�]e����`Yr#��+s�Y�<��9���S�g��<���)�;S�2Ez7+��;�y�*�sIa����SDn[�X��,4&r����P
^p��V��,�o���4� P�!2W����d��U薡�P�E#Q4N�E�
+-Z��E�'�̃�>�8�dY�]p9d�j
F�����Ev���Ǯ"��!�fR�zD�1j5�6�$�HӚ��1�Zs�L�5�Gڴ�4u�S�v���~��L�LJ=���}��}��}��J,}Z�җe-=/k�Mي�\!iZP[O��h�g
��J(�<�E{,�#��K�!�ʨ4+�iS�3E��L�8���
#�+W]EJr�ds���Z�W�,�͊w�Xf�Q�\g�.s%�k�=~�FG!�":�P
eP�idz�
UF��3�8��dw��
��$ٌ4Y�!J0F�b�W�1U�5劫���Ƨؚv��e<�H�yEg�
+_+�
TtuP��X\�~ �ZpA	��x�A{
��]�36:<RJ
3��HYL��Ze��5��P�w���*ʛ�Ho��y���	$�
R^Ɔ�p�`����}t��
+�����V@L��8�GTKC�
3��N�1��ϊP��X��1����}\�~u?��M�g���3g���!��0�C�1�����Ü`��v
.��tޗ�T�g�Yb�3��g����`6��F�����fc!�"� �]��7�f
��́v`�
0D.b8]�`��.�
Z��ЙM���"ׅ����ziX����dt�
$s�
���
�GJ˘+;hv:i4����ts���p]�f�.
u3gv��
�y�g/p9�|�
��G��� �R^'��Ĝ�C�x��Z�H�eR���&�4u\�!�c5~�!��c=~l�������uk�؈����q��C�}������ڠ|��S:N^��u�<j�U�\�>�~��ԏ0h.CM&
l�X��o���ӈ�`]~��񣇋��5顸{�	ٽ	��]��k4N�>��br�K	�$���B]�)f:[`��k�i8`o�g��g��~rr��9H}
�;¥{���Ev��$��
�9�P�,z�)Y�J\�B�c���U�?t-��=��7��������
L0�cQ�q��-��)�8ť|��<�B�$�$��!`=޺!�����\D���|�f)�x���R�����O�hX�ux3<�Ҫ_�;�
�

L
�Y����c��'��E�K�e
+�2A]�ؕKpS��9
��(b� lj�P!ݟ�+a�p:��+�5�
���pH�>�?c�t�$�`]��9���s�Mx�B���@w~DŽ
�q`�
+�a2�B5��
X X��Q�f��e���z���E�|�^&���W��T���_�?�xN���D��H�
x &@�Q��G�ՠ���oLNי�1�]e
+�?>Ǐ?�Y>c2���D�|��oI�9�d�
�8��8�>�//w�@<)�3��̤���N�L�
�?>ď�0՝��� ?���{�wg�RO�yN�9��%�x�%��cd�5^�� ����\���{%���e�3�)�/&�.lخ��ll��n应�w�E��Vو�v�ϓ:��^�<@��G!���������.���b(��?��h�Dcy���2�Ķ�uDڄ]?Sm+�_�qх�*�?J&v�����%��}� �
(n�C�
+�D�:\��fk�m�t��*�t��3z�s��<l�`ۉm�gb�I���
+�R
K9Һ�`�6��o֓�ul�����t��j������

3�
�I{��nYа���1������f���;����L�5b��J�q���a�����x�E�:�d'�ӁⲾ
u��#zo���Б��F�BWA�t�h
!�#����Z���х�G'~,#�O&Z�D���X�����\@m.�6��n��s
����;�w�ޯ]���{d�XN}v�&
��Qhdk�&�Q��,E��*x��
�h!#��#|�B���,֣������r/�!�4G���
Z�-�
+������u�T&b����V&ֳ��n���dt
+�)C�
+�Z2ш����%T�J� ��TO
�e�?<���
q[�Ƞ���}�Ǹ���X�Ƒ��`	������"�
mּ�6͍L���C4+�5F��7:G�1SUS��1��1����2b}r�.Rul��LT�i�*M��0
W����n��
�/G���$3����
[�kK
+-��Ɵ&X��d�W�y���͈���Q2���c�$��@Ֆ2UY��ԩ2a�*�,a�J�4�K��ګ�ʷ~�|��!�{N`8��NZ�u\���>�7�]
���/��Rk3ɰZ嶥j�m�\���L
�ʤ�"i�ʒ�U��T��ZM8K�[T`�T�}���wj��9M���
�E�$�Qnr���v�J�
ˤ������3i�
��Ɨ��R�
-g�E)v��8T�:Lũ#5-u���&�0�P�i���єA^M
Ԭ����I_�	�ە��O��_���
��k���x
+�G�҂Ҋ.�
�
�`��+�ܔ9"T�0k�#Q�i*������7�e�y��G�(�
�A�uY`w�]`�e�]�]6��x�M0�xD��⠉��h���hԦ:���M��4��=�$�Τ�v�I
��۴�
;���^3
�7{���y��{���wi��J>S�����MM�,�)O�"�t�]�-��)���n~]6��p��D�o����}=׿%؃��
+M|���!�.��oNP�9M�1#U3&_���,UV�S�SE���嶶�i] �u���.�Xw��zH���b=�x��p�g�ي�lA�
S���!������|��(^UE�UY����\���QY�M�29m^����a�,�-��<ٗ�оY�.��e���|�9�)�-�0�pv�Ӎ�*��-�M0	&�]
���*�pĪ̑,Wi����*-5��,���T��RŮ:�&��5UW���2�7j�{���/h�����*�u]9��r���Fc3��e.�K�FB��|P	e��;GY�l�i*.�RQy��V�e�(���S��^&O�F{f)�ӡQ��]��FV>�L�+�y��>����F�G������
��� ����


�����*^����3T�͑�[�|o�F׸�[S�Q5�SӨ�|3��kW�o�2|ە�ۯ4�	
��\UZ
�FoT��Q=F��h.&�
�B��
+}/��P06F�k��[��
���y��o�H�CY�2u�LRz`��
�X��mJ<���q%�(�YI�{J��*�6�-h������ �Pe`G�Z�>�-o
�cB�2�)�f(=�
&����rkxȧ�PPɡf%��*!�BCC݊�S\�b�o+6����zn��ڌ5]��
���0P
p�]����W�>�mĤX�6&*%���p��¹J[4,���p��(.ܨ�0
/�6�&|�f�,4b�96Dx��5�ƌ �@=���|��mA{�D�'��R�b�45AC[R�@�p�D�T#E�M
aP��������<��0��i���BS��Bc���a<�}P�{{�
�$�7��e�h�6�u��grј��?�v6ʜ��M�����nc�ښ�
0�m�x�9c8����GX��f��H��⽓1[s�)��V�)m�
)n
�ql(	�".�ɣ=���å�M�����$w�c:<_��O&��
���(���ӧ ����&�⩒i�X�
tS�K�(k��Rˆp�p	[�eg%yt2'�9d�r��cN��/8&s-�[�ֳ���j�i'7�U���j�����C�m�^0}ƛ�nr��
]�"W4y� �&걙zt�G7��B
=��V6�,�Ԣ�����\�1o��v�aM]Q�D��:�����R�o
ig3�tt�:��~͍�[`+<���(f�"�$���<��G/r/~/
��~�
��[��׸�q��}p�Թ�Zj�^LR�
Z(
�D�TL�棆ˋk��ś���?x��0
�Ajr���f��-�8F�
cN���Gg��Z.�x�;\ qS�Y��S�;�Z{����\���������ٯ��_X�bS��@H
ؠAx^������q��4�[4ُz��q
+q�]��C��&�9�����x��
�1�~�c��I��2�7e��
8c�~��!|D�^ �K��K
��X�}4Y���+]$��>���#�I̯e'{ 5N�����1�bh�of�=Cc@~	�W�ad

0�����*�r�޸Ξq�M�&�����:$�fϼ�ɀ�
$`8dA>ؠ�A��d,�-��=���qB���~�#�M����]�[}�wu��O|ʯ~g�
�	��r��y�AX����z�Ea���� ����N�
+n�2.�S��Y4��y����y]����C4���b���9�eh����'�{�̻Ja,#t�Z\S	Z����!}����5}L
���>�U����3��	�xG;h�^��ms�{�V���3���]8
+�����Je|�I��NS���4
hT�O[��}?�#ĞI�y��bZg)�W�*7�e��ƻ�
�j���A�r��z��}��}Fw�����ㄧ
Sh��G�V4\ԭ��~b��
&�Tb� n�_��}�ث�
�ѫm����M-v�,�ϵ�'`|

�/�>g,��ƒ8B-^T*�G���_L|7�{٢����m���Ӊ9����:�w
[i��ɨ�
�F���ܤ��
`<
W�;k,���Ex��N�T2yg?��f�ۈ_F��t���A�7
+�Z��9
#�9N��Z֓I�:Y'���
+��\��9�y������v��2�È?�����#�����K����B�h&�t�0�U� �jg���BF5��׏��p�����6���X�f��
���Ʊ��ZtR���'�e
��]��o��
;v.�p�8q��Nl�p��9�
��&M��N�v-m�v�JW�rT+[�v
�h5���[�@�Q�ZXA\��1&
+

	����
+!:�'���������}���<_+�Qˌ7�ъF�Q4���$�M�,�c�]�O��x��a��YEVW����^e�N�{��{���J�;��Q��>��!���ctM���
:^FݏN�
t��f6R�;�I��h
a�
�:fm��M����E���Q��ڣ^C�"��)R�QX��
�s<���
+��uM!}*F��jT�����
tj"�W�5�=�d��Ʋ7k��
7,j�pV���7�P��E�,+�s_�ܴb�%4�J�{J�CvJ.���Y�m\)W�eʘ���&��+W*ߩd~��
+Z4Z�HAD�˜��*��@#S4�hт���k��"���6�P��
��:MAZ]ƴ��w�R�IJ���fa��	����X��<���1ٔ097�4dnҀ9�~s�b�}���kIi�eF˜�,
�
W�rFA�e�Y�*��]��� �Y�z�����J9ZM�
`
��<�ĉeȖ���"
X-������V�����(b
��֣.��:�c
+�7(hߡ��}
+�
Sk�j.����7�-}G���\�ܓ�<:�B� %�C��YXc��)O�/�;Qb�-�SO�Y�r��ʫ�Y�V��I��6+��^U�rD~ǤZ
[��ث&����xF
Njr;^����
���Ɋp��h����ƒ�8$�:j
�0.��k�QmR��D�5j�q*P� m�Zj�j�����9�F�fy����|Bu����|A5�WU�|
� qO�P�ٍ�Q4�`
�z�=�^�0��>�E���ü�^����P�.�Z\�jvW��]/�ۧ��v5�GT_?(�g\.�&9=���<O��sQ��*�|_����Wy=<M���ۅ%��� ����������<y�jh���T��Nn�W���ꚺT�SMӘ�|U�W���|'e�]P��+���'k���߲5�e��u�v�7�
؈MK6����B�x
�fh��ӼF���Z�r�����Fխ
U�[��U��S�Xe�)�;UxT���e	</s��2��
����J�����n����@?�@�ڠ�w�{����rͪ
�T
t�,�R)��C�zT��^/Kx�����%�_Q~�6����`ZEp���b����ǡ��]?���3D�OiZޙ#{�Q%�VY�ˠF��GőV�#�2E�e���(�Y�=ʋ<���"/)���L����+�
8B��h+��A�h�y
4�]�vU�XY��lY�
+d��e��T�Taԥ��O�Ѡrc�ʉ���VV
�0����ˀ��o��
+�U��Nڟ�`
 ���+/��hנ]�V�G%K�L��*�����ʐ(Sv�M�`�&�$���&0�	��F)~0C�0�^e�o��C#����Y;��]�#��U��
�bƒ
g)4O�$I-Y��@Oqئ��)X����`]�x)�k
+Ә�����$yҫ�o3h$a z���ʵ��5Џ��K�����f�mٓ��)����Ý�7́>�A6Á2���3|43
�#7�96��4U��_�.��4&ab1��۸z�s
V��W6t��-��ri�bA�L���"c+Ƕ�DOb�I�cN�9T�YPs46LJs;�0�c`w^�@�n��w�Uf	5�V�1!��a�5&9�f6�Ԍn�&<�V���
<��cw.�,㱗8��������@c
�<? x��Wx�[�Ǩ���
�)��`��v3֭㬁	����5��O7�XޔF|
4G!��Z�IO0/G(Ǝ2/Ljc�w�ds�M��X,ґ� s�	*�c�أ��`��wi�Go������X7n�
ڂ>�لn�ތ�c+Z�$
_-xI��L|�1y��y�uz�8��c�}���:�`?G�gi��s��y�Ǽ�O��&�� �
�ٷ�=0��ۃ>�9�g4Od�N�i8�)���<|
.[O��+�q�8���O^a���X\���ū�Ú���RZ#�u}��g�\�����"ӿ���3��0���+FH�a�
��W�
���M���q�����M�7��-:uq���Su_��qp?��a�`����ә>^�h^����� �;
�s�͌I�.��1���
����
�_�^�	�}���C~w��=u�e|�������>��r��,!݆���!y��tVL�
X1K�/�W�[�����e�2c�̦Z^�ً@'�~��y�y�_��=�ͫ
�O�8�v?;N
DZ���%���n;7�zI��m�vݺ6[E�֪]��
��B��ҁ(�	ʠ�*�k�T.��T`�@
��`��m��2���sQ�S>����w�{�y+8�!h�n�	X��
��_8�wp at 7)�8���2��}���]c�^e��� ��?��̫��
+<߅o�7�9���|
N��Fb-C�Oo�c���\#�Wp9/�|^�u��¹�|�<~K
��hM�^�#8��0lO1|�e�.�c
�_��
ރw�&��2�؉��_�3/�^P'�=�C�%��i��/pZO�~���|���1��!��}
+�"�zA�RB��L�y���,|>����O��s�yx��4c�$c�syy�0���;���G{�	�W�=���hϳ<��*w�n�Y6e6N��Y���]ad�Z�yN���8�K�΋e�T��/·df���
}?�ed��N�a���A{
�)tg�"֣=�S�q�y9���	�ܯ3�
+����O�Tn���a���w����j~���	m+���'�`�6��@;�v�a��hO����0y
$���>�f{;�{��n2��ŵSϰ�ހ��a<�_֜��B~�c7E�E]
��
��
��
T���K
�2/{��]B?��J��5h�g��I�8Z��r�s̜��y��)��u����&x"�<���参�
ǃ��-h�Qt���1����"���Eo��2K�n�B>@6�X=G�����Rf��f}��6C��<��o�'�G���q�։J�e�kC�}7Ƕ�a��1���1��1��-��4+f
�:O�l#�������
<�+xr
����d���8���rD�.�w-�
+�2k�9�s�9Y�޵��XE�N�f'�;VR+��	��8WY�\N�c��o5��R�T� #߯� ��"g�� ��~��m0�a�{�i	��g���XV�
�q��;��H�V"����/��4�gt6���覲���4�+���dg�dG�$~
+>K�c�@�
Z�bK���I�~��hy�Y�E6�Vh��F��~
,	)��Y}E	���S�Q�iT]�I�Lk�i�S��;�,>�D�j+>�V�%��������%9��ib
"�6���N�&!�����ˀ�Xf�2e�z˪�c�U�9��9�Ty�:�;�Qޣe��JZV��2�V˼�
j�
Q��AE-��\R�rU!�u��9E�q�s
��m
o�hn��0��*��]7�t�
Ե�Ti�U)�C
�j��ꔴ��XS�ҤZ�n�i�cƄ��YE�y��
j0�*h|J���Tg�X>�E����:'?
'�n�݅=XK۳��|���ý49u�_;�-s)�(W�a��Q���V����+�TѦhEJg��ά�kpn��r��*�[yZ��srW^Ru�
pSngN5p�woc-u@[>C�
)�V���B.1W���ljtU(�r+R�W�:��긂��
+�����ܫ�uo���n�k�UsJ�5_���#9�ϫ�}��*�s:���Ļ�v|�O�A?t�
�bq�o&�F�xL
+y,j��+P[��Z��ޠ�M�y���u����7)��6U�>(g�9|'e�="���|��R�uޜ�p �-ĺ�V|e�:�^�$�Z���"��s��~�|�K�w���F�@�܁���rҪ
�d%��
�"#�O��	Y�_�%xQ��gT
xS� �J}NBw3��h�&h��ڡ�{�����P��a�\a���.UF|rFB����t�
�
�-:'kt�,�=2G�WY�!�D.�����5���Wi8�{��	�5سl�y��	�Cc�~��;7�zUS����r�
�cN1d�5�O��Qy|L��j��7�8�SE�c*����h�ct	��U���
+�9?�ހ�ڣس^�V>7C��Pǵ�Irag+Z
+e��ʖ�ʚpȒp���1�xi�E%ɔL��%�I$1ILY��(�	IpB'��P������o
�+h{��$�qh�~�\�r߅uc	�H��^"sʢ��!Sʩ%)�
+S
j���V�
`
����V�4NaRR�Rl�֝��Iّ�]hϠ�ņd���6h�3 /���/��<P�@�������M��M,�"ϰ�2�E�
�*���� &&C7�9ų�>LH/�S/9��t�5��H����u
��i࿏{�v�w�
�#�����A<��0��sqsc,��1�
|�rl7��mF1f#���+�>��i
�<>]��s��
����4�y%����lH*�P_���r�s�N0+8t&�ܧ�H�(�)^b���)<��v�;[�i[A�:A=A�8�m9d E������A����ĵ�$+"�o��<8����ߐ;�ݼ�l��dw���쒓�!� �SAn
+� G�@e"
+�JG�C�)��)R��Z��СPfl�ik�RA�Te�j�~���N��ξ�>���
���e`�.�ɐц��
?:񣛜���M�' �х��.;q
��+��\̎����
�
'���)'/a�����S�}��	0�Pc7�!g� 
��y�� ?QK9d���%�
.���� 5���u!�����}�0�kl����V���O)�^ތ6)��
�`�{`�5�=�0���XI}�Əu�a���K}���u\��kWr at n�zc�y�GY<�D^�%���-ći� �5�M�7�a��&X90��Os�� 6���&j��>괟d+�V곟Xl!y}K؟�6Sϟ����!�s=�U|R<�
�����/��hr�뭁H(!0�
XB��qa�C�*5�?�+8p�l�I�>�����|��	��L�}_c�uM;9`ͅ�9�����x7Z�}���� ��k
�-Ǹ(dD\,
�FN���
�?#'')�3q˥����|x���Cul���b����3׻�Z��>�W�]���y�D&�Qp
�$�
�U\0�!V�s��%���q���@�ϓ�s� ,QTg~)���!Ļ�<�jg�	۬������13 BM�� [
�I��> �����e�W�9�I���н�Fs�ƺFA}�p�C&k��@&0@>�r0
���u�-�y
s%�
��kT�m���r� � YWI���e����{1܏�-S׀�C���X�5�ȵ�G6(пјwU�H}�r���:~\e����������M�!
s?Σi�j��OZ��{���$U1�#�1J	]v[>�_���mpmu
}�)����'h��ЗQ*���
�8�fy
+��>��=��w��$��)
t��9Ïa|�$
���љ�Y�;�6�����f���_)������b�
�5خǶ��&b{�gb���x�
�O�)�5d��t;m�G/Q��'*;���������)p
��X��U�f{
&��wѺИ����P���n���.�N������Vjd
~����E�=�Kx�:\?דDt�O��`X	>��������-`��U�2��K��@	�+�\�g���Q�Q�����H/5�?����z
�OR��z��^N��l�߰�Ǩ��c~g��;h�$�
��i=��
��lYnl�	�W�P��:l7`{
�'�!��n��
-�n
_�%s�ŃtAz�����D��w�m��_P|�
�ت���]>�`�td��J�a���7�#u:��ID�Q��R-4�,M�GZYm�� �b�ÛV�͵�ǐy,�G���1�C,��E'9� '
�F;5:KQ���L����䥅�L�>��f2����H���6��l�����q�~+��9�3��=\�s
s���A�OǾ
�ٚ��5E^8BpD��J8j�����nV_����D�����*���P�#����
ĸ�c7|�8�V�3�p�w1���wG����6Q)pd‘G
n���Rx�੅�
�M؟Ld�4�H�R1è�:g(UW�^1DwA����ý��x���K�#>
6s���1�3:m���Ԑ`�ˀ)��𔰓��U
W
\�ᚈ�x�C����	v�~���nw��]�Al }����`��hi�`,�
Y̹��ß�I����)�&;U�����^U'�4$y��R�T�R����LPij���݊�.V8u��S_T(u�)G�9%�RQ�}��_��ι�_m�>�@�xV˻���JP�=Eՙ��a�2å�L��2�T�Y���rEm5�����W��EA{�������kߢ�^y��䶝U�����r
�F8����X�ʸ�
�HjF�Jޗ�O�����4�:���Vđ��,��Y�*�*U�� "�� �3�����X�|�W�F�\�~9���6> ��>`���b�:ɧ2��0ہZ��yVJ�)�7W�J�I*vf*��R��R�Y N@����9U*�!�k��]S���˵HN�Ze�^���+��쮳�
9�ALk�=�YH�I�;c �Q5�W�R���>
B��K�?/M�<�
+�*�ϗ'�'�;�<w�rݵr���LR�g�
�9<�e�l���2<?Q�������|�
lυk�1�
C@�"�S
�|�^PP�,w�My^C��\�������*�7T�o�
�f��3e��U�������Yɾ7��;�*�{G�ޘ
��� W�!��A
��yA������-��@��A��������
��-T��P��C-J
�ӆ�)1�B�&�a�a0�L
�bZ��N��0��uȣj~�@$�_@���u
ϝŃd�S��d�ʌ�*#�Uz$��H�R�ÔmTbt���(�"�I݉�À)��a���%�ى���>����A׃A��A���?L�
p�����ew�^�g���;���n�	�,$�$�\ T� ���
+����D��8V�^���Bq
�2��Z�N��6�#�2�Ң
��
��>��q���;���9����o��yn�'�[鐫�%g�+{ ]I�l%
+e
VP�!��d�"Z��� �"�8��<�<]��LpUq-��@�ԉh �ܛ_!�
+���c>
)�
$�Uc��֥�
&�S�a
+(��H�w#��)�<a�s2�9�C�>��q-���J��FP
��.�~1���͵�~L{�	��M�H��i�
4���
-J�G	l���l+@�5���c`��*�o�
>40E70�c�ۭ�
� +�W�/��p����dK��
,1!���a7���f�F3���bl����l
m�
��B&�xjG����؄��� �;@�� |�R�o.�����<���)��>
?:�c�m9�&'�4�^6O/����
��3�J��κ�s�ܺ�b��Cg\��o3@�j�i�y\g6��^g��8
���9�@/��}��o
��1DN��Q�C�b����wD�&�A�����z�kN#� 
�����-�:��Nc�nx
�_����`�=��'�d6���2�� !'#�FW�?���r&�e��R���
R�;㚅�ͬ���U�[�uv
~��&�v���6�IZF�
P�I
�`%XEn�E㮥>��yl�>7��
,f=F���5���\�3KT�h\��5����!��%�>��擤!s��`������1k���D���-
^[�c������s�X|��0��>��
�CMlFY}
�s
��$����A
�n–��Z�5d�||�X��`�5�?b
�ߝ%b���&&ϰo_`���a��M�<~���H{xy7����1��R�X���:�8{�WY����I��ň�%
@�#_&��A�%���WL����$��u��8�x�WX�Q>8B>�0uUJ
�&�^�p�Kd��|<a
�&iD�
+�ɷ��e
+�ׁ)Vޒ)V��p��˻�K4�w(�_��
���B�����S���4n;6Y��a�s����_����"����
xP�z^d�t�
+u
|L/�AN�Aù�#�����$^{Yz�<S�����U��)��� �[x30�I�PJ_e:F=��3��S��?)�(���G,�
�J�.���y�_� ?��`0���!ݴ�o4�-���2yV��0���~���o4���}6�{4���?��~�
���"~��:��8
��ܛ$�_���,�`x
pz��&C���k��*��2�����h�K�
����q�x��i�F��A�8E�8A�8��{?��'��i��~��y�X
ԟ�t��N�-�8xl������w�R:3�v�N����k��8Z���~
��^�i@�Gu>G�|Fw�UV�3�]����6�KD��_P�Lpo����Fp�*%���U~/N��
�)ڇ��GN���vSO����8��j�Q��v��85�mjd+~<L<��P6�A<�AT��N�ye�s
|
�+�E�ďX�`��8�M���Pei ����ZN˨�n
v���6�vh=5��Y�k��^�t�7V��VRy��0B���ږ�;
�K�[���Z�n��v���X0c�K{N9�.�v9+
b;B+m�v
vgSݴ�~�߁�T�Z�ڄWߣz�O弩��x@������j�X��l�f���a3�.|6@���b��rl5��]��m�*fc��J
�x�K��H��n2;���6�� s������tr��1��#�<*��]'�`;
db?�J,�~9���c�{���_Og���hgUmD����B�g��&�O���o��<O�2� :�w�E'�� '
�,8��(��� 
lF��v5�U�h7��2W�
+������t�0�P���q�5��;�@�H�1�q�(�N�{����Q@��S	�t��Ox��ZV1�j���TW��S��UE���_�m�^\[�Ɯ�$
-
�z�l��u��
�5�O}�
�8��!
d��
W!\��T���Fl��U"[�y�O���d��n�8����(G�F�>Ɵ9�D��!�Mǧ�)���;Lr+���j�OU�,U���*���.V_���ZUb�R�mP���*��Q��!�y7^��'�q~��&
��������>�@
��^�gU��cS�;Y))*wzT�0Tj���b{��
�*tT�(�Ѭ<g�r���q+˹Z����xJ~�!���ȗ|
�qm��2�˻�[�
�U�2�O%�${
*v�T����S�+Ky�<Mu�(�]�
wX��&ez:���W�gX>�j�-J���sH
�O�U�/�Zl���(����
"�Tr�
��O��%*�HV^�SSS����I�++5W����0*�7B�MJ3:e�K�1V�ml��xRS���4N�a\�ɑJ���b��1ǐ'� �A9�J@!���%7=A9�$e����(����ϗ���P&#}�����cr����?��8ʫ
+�o6��$�,��fw��I6�l~vIHBH�&@�J$
+�$�AkJJ�J��RZ�j���X��ZdZQ���t:0�V

�v�ږa�V;������0/��۽�=��s�}�o�
+|��ӷCy�d�}K���e+��
�{�y�3�����݌�s�lP⼫����`�M�2�|ey��*����
(!�Uh�+ت�`���>9�ò7��RN-�F
 �����6`|K�Zi�
+�����|A|�l�r�
:�)w�
r�(4K�P�
+�Q~�R�pB�p���N�ˆ�
/B׏܆hD��Ѳ!|���PN�c%|�a�#h�p���JF�0ߕ�K�<G�r�����rG�*��TP�V
���+�*��X
瓀�-� �c

+�-�[�� �1��!ʜ�ޅ���J� �x��]��%�oʀ�gO�&w�]E�<T�/��Ɠ-�Z�MT��D+`�J00%F �Q������(b
��'�h
|},늑���]�/���?���<�w�}Qܦ�Z�
u4�zX�;{�S$6ł:>ż�bxLq㤸S���n~ǐ�� Ѐ
(������%�������
�]%\a8��g��|�JH�l��H�Oq�4d�i

��X��6�5������|Ն�oexhE��0W�!��Д� ./�n{
y೎����Y|<���
�
��sc�Zl�ŏv��0�
��:r�� ��E�E��0��&���u���٦�0k�@3�������nI�k�%���e���
o!�y��a|��Hs�v��B�������!'K�A#KY�d>`�]�*Y� �� Ճr\t�u��L-�1G��l��k�� �Kx_
o��8I/9kA��!�h.\���c������ <�FV�x%�X�P�b����1����4"�sq}F
(�vx��g�U����m��xm�7�%��g�#rVZ���5�d
�c?��%DN�)�q63���c=
+qŴ���yּ#
3��6\��/5��������Q��
������%��,�iD e�	��$~l�6���[)��l&`�,�4�o�!��$>��2ꄯ����MS���~��w9Xeqrđ���&�f�������Nj�n��
�q/���X�6�,���a���o���������=puV?�&�k���y��G�C&g�
���3�d��L(9!�Qj� g�����ky?ۇ�G>-}����)��w�žk)�
+��!��#������6ko,c\Ɋ���A�(���f��C�~
��
�y�Cv��
&��ړ��{OK߹�F�*J������y�W��=烀%���
��qe�#3�p�H���\�΀���j�<9y��{�@�&�/|N:��gT
��"b�c�|'�k���u��4���
J��g-�_�-�_�_�߃?���[�m��rr��z��{ҿ��r��
GQ
+�-�@�t���%��"}�v�̨N�|S�
t�LF�8$P��3�\�P�E��M /3y^b}���"��3ɹ�#LV��9�����2l+C
+3l3�ԑ���)e�X��%�x?��<�>j�*��
+
+�-t��L4���&��qX�sh^�x_�xO�Nj�qJ�tR{�
L�(�������P��&˽�v�+p^�Z!��3��N�e�8�
q�Y�
�������S�q��u���
��s�a��(�C��2������M�~�]��
+�{mf�{�L��m�5��:'�`6�?�)�
=�|w��|_APŎ��L�籟.���L��i$_�y=B�z?
"
�k��z��DZ}���p_!B<DK�M`�2:~b��9^_�����#n����r�GL_�����Y��^.�=4����.r��ى;��v��
o'3��x��ll�y���`<g�����u͑�v�
*�49���9�T�
?n#/[��ne���
t����Lh�l�
+
�F����n$'�Dh�
�R-며���U`
���V�f�&�&L{����s(!lǰ]��v[a�`���^L��S
��7
+�U;M�ܧ�,����~x?
�,<f�ﲸ�U`�s%�v��X
S����jjcX~l��?�����m�nQ����p������J���U���=ŵ�[�}m�t��ڿ�
+6Z��0�jT�ql�A!vݠ�g?�#�����o�^vP�}Tʠ��N��AV�QQ��f�^�\N�\��Z]g���u�JËꘑ*F:t��J�3Қ�p�c?���R�l�B��M���fb���fsR0���$�<�7Af�����5��e%�"���H'#ݸ�� �(�'O�jl�c�I�xӀ��D���&�l-Y�����8K5��t�8��&\+7����c��H���T�û�H�>%��}'�]�
J�)��
�(<5�k�n
����t���b��#BŅ9!:N���w����p����CȎn��$���|_�)n�S�V��"xf���O�*x�l�y��x��H�%k7�
x�x�S�spd�;�I쯇o9r��8+�[@
+ԁ8�c�ҕ�h�C��|E�\
+;��{��Tn���������6�ٻ���4wX�܍*ɝ���yyr
��g�E�o����/��(�3�?�d�o�%3���$$`BH@���
��U��d���(Q�"��EED
+TP�M(�Ȗ��-��Z�"��"K��w�;=����
�4�s3_���s��g�}���ߖ6�(M@�rA�k&�Ь��%�vJ��^	;��
K���g�M@��	ú�Z|�
�u�9I<�9�v,�}��l�+팸�	O8:�C�_
�mk��<�b���$�J��.!�)A�-A�&�.~OHtO���H�ZsѴ��Ѫŭ�$N�V
��i�%M["V��x��sR��ܢ�x:�{u�>4� �gq�YBz�t��}N�}.ѽ
�z���D�Eģg�q�%��+ġ��~���Ţ��N��y}d8/a�Kb�rg��
�*bNE�} 
+A
�3A
���"�M�~��K��[4�[<~M�����
���[���[�%�V�A�[���r�Nj�?�����]༆��e�y |�1�G@(h�`�*��]�S�@�K�!M��>���b
G��s��)4
N��_�(|  �SC���,u%�7

�$��ђ4���ų
��`�6уv�-dw�C�a�آ
�ļb�1a1������1NS�aȤϋ� ��8!5F � -E�Sw'�:�{U�!�<�\>�y���0
���?�*>���⎤�3�&��C̙
"�,�\&57��K?�GӚ�
+�4J�C96g! -dSCI23!�rm�3��A��{�Z"���% �I�
��cfqdZ$-�*�
�<�|6xcw!^"�0�Å�("�q��k�N�Ƥ��5�!96"M�%�3��
C�s��o��#�:���2���������4�s�4�/���
�%���RLZ�Jk���M[����f���
+�ESjh���rٓ���\�gRG���������B
�%�xP�EWjI],-��V�I^T0�
��G����FZќ^IRkA#VN�,c.�'�Z�ϕ���W�:���g/�\��h��L1�$�i�RU�kku�RG[�bNڱ���E��AΚh˺���ن�TI�n}Rɻ�@S��3$�(����
�4�[f\��"��	h	/\4����D
�SGw��Ά�݊��+yލC�F�3��gD�v6gT��T� ��a[>u��
���������4UF��h���F��4�B@?�h�I|
b�aX_���Mb���H��������t��%�0>���B���S�
�.���z$�f*|ըj�@8�:F�F�0'�YP�y�H�`�pΪ����4���M
LH9:K��F�f���������� ��T{|���j��H���h#O S�4pu�d��d��������q'�q�m*i~R����R��B�7��
೛%l�jۛ
�Z�o�����Iq�@>CRM�}�jP�~D&�%�x������8�(���D�笚�|�9*Ŭ��v��h֘Ws/�w��QqN2��,����AI5F���(�SB�)RV�$��M����׍l�ux��U�y���d�.�/���(ǘn+��Д�<�np�5�K:ٔ� +�s�jU���dӨ��ݒjb��+�1'X�o#�M�����c[�:���>�ЬB�݆��j>��׍l[
�����{
T��3�8؂r�99��<��c��Bv�OU����d���
N�[����`(
���Y9�y�
+6izEq���e-Z^Yq�խ�暶U��_WݱS��v���7��٫w����8�v�C�
1r��1�7~¤�Sn�c�o��5�{gκo��s~?��.x�?.|��EO<�䩥˖�xz�3ϮZ��
k^Z�~�Ɨ7�y��m�n߱s�������[{���o����{�>��O���g���𑯎~����}���Ϝ=�ϟ.\J���������J�]I��YW��Q��dg+��/R�K��r��R�+��k��A��ݔ7)
nƃe�-ʅ��p��a�2b"NLUV܉w+3~�ܘ�
P~<�
y
G+K��<��+/b�:��&e�+8�f���M�y[�sP��>�|�
�
��T}�<:�I?(��)�.^J�
>�\ͻ%�~����_�_b2���lv�����ǣa�O���
�G8�#1<�\�|��LҚ�7?3'�
�t뮶;�f���[��m��q&O�6}ƽ�fϝ7��
[�x��e+��.j��[�ȤƟILiL�T*��N���h��j�~��o����'�G�~8��3gϞ;w
�?]�p�����ƶ��e����hbm���֮-;zW_�5����a��
3�Ж�����j�꩛����sӲ��Z�d���O���G.
54��PCC

54��PCC
�w
+����u
%^��]��/��9���	_ԏ�����-~k���w���e�
����ܝ�V�����O��Ѣ'�~�H�PG
�VF��ծ�=��Ͽ1���}C&|�w�w��>����/n{y�
/Mٵz�
o.���Ѳ{�_�d�'��װ�6R�k]�/�޳�̾�����{t�t� p|g��v�zf��fg�i;f��i�����N���д2/A� oF)�TLP.�� �
E�["-�����)'-�߶g�/������y�ޘᎀ�N"_�
+)�U�k�a�"a�>W�~�ՓĢ��
�?J!���&�v�e��zz���c��-̣>�$CkS�F��kCe\	��)�j3J�-)|��ʉ鱶
d(;���nZ���s�����>w�'C71}f�Dm<W�,�Q��d�uY�կ���b
�Oi�6 �
|� :���n\h���[��S��<Fǯ���%��wE:��!D|�%K���Xu���#	���?�װ
+�����}��~ϴ��v|�ʵ����M��4Yg`&_�`3�Ȓ;
+TEr-ZF�b��J�_
��6P���@ ��]T�n�m��=1�l3<q�Z��'J��7V�
�`��tH.]�*��G�S�¤�j|
VJ�[(�
�{V��5o�'���92z��ᴫ{˔�z؇"�
�����ȂD
��A��ز�z|9ZN��6P
+J!C��ճ�'׏���:ڴ�^tSM_C�Ƽ������
Dz�1$���$7��M��0-���,�6P���XP
�j���w摳�Z_8�l|�rE:��Nxc�����~T*�� v�2pFB6����Ŵ6 ޲
�v�eF`����5m�gw��8�Ȁ�Œ9�[y�ވ���X��DBGG<����3))���若[�زl^��ў=��Ǐ�SϞ�)v�����{7w�o��8�2�
+���bpO�8�">����X4	>J��6 ���3��O;F�.��
�^�h���
���W��}�F�]�υ�
+{��E����"�f(��/c�`�4���Ѭ����7�h�^!}w�>8�5��K�h�ʙH��AΡ �5�.-F\
|�{Gq�{���im=�/���Z��t��Up��
pdK*8�+��#�K����D0��
+�3� {���� ��7���1�7���@���A�����o���Pa��.
57�d0�~D�K2qH9�y���BCO�mHLU��1tՔl���2�"8���dX2,�
K�%��e(�
%6@d�u=
+�ם�����j����^A���\�ˎ�*����$�,!��2.�K
���Gv[��=����ZP
+$�A�=]����+�#��zw�^
�X�aF�*�b��Z*SR�D	�&^\��
��4��h`C�͏@v~'��x�<\�վ���A�G��i]8�^@(W�I��<�}I�X�A�-ed�YÍ�DV���a(�
e������
��Z�g:8�QCHz�,��I^���P�Q�%�x��I�-��0�2����,탡 2Ad��
j����k.s�[�g-���H�Q���$Xi}y�J&��E|���N�e2��
�@ZF��� ����O�
�A�F�#
zw��/؄9Ќ��ވ��0RYe�J($�9J;�C��`�M􂜇����}0� ��P��/69������&�I��l���됼:y���*LYT~?W at l�ͥt%��SY��Bf���a�C�*�Pn�;�ӑ��W�_�ހ��}��]���M��*��'�(�b��N)�%�O2�qbzȅ)}���^K���g
X
$'��mo
N�_u_q�
�

y�[�r=�P�"fU��dV���p
���=!�:qܴ.K�``�ZJ ������s�^�9
z�����5��-���&i	*ઑ�9u(I�#O���bD
QHnƖP
��VKE��2�j���Vwn���
'�\
G&���Ǽ����Բ֠�m0�NJ�\���ɰu�U���H
Z
�
%4Y�@�"� ��5P
��o�g�1i�p`䉳���ߦq/�����g����(M�Eɱ��Z�,��T"�V $�K�M� 2T��jA}��)���Ï
���9;g/�(��Ė>������Ȝ�f+Z��5�b�� 
m ����@9��� 2v~	j����l��̆�q���'G��%���7B�#~�̇��ސ��t&�
�n�磛#X���B�.�
��x��ю?�S�]1a<�u��톖)����/�W/�z�fn��N�cSG��q�(j�9,	ߏO
�%���Ɍ����j��1!��@��πt�/��,7�]i��u�䁇a\ŎU�q\�3:Z��:.g�
+8g��:
+ElA��,DBHHB�@¾�- 	�@�%1,	{ 	�E���"
+ZD���|���>^�‹��w���>��L�p�P
8:H��"���O�l at H�4�@D E> E�ߧ���h
�x
3�{
=�p��~�@��bI��b����)���y���`o%��6������5~)�
+}
�Oz
t�Gr(�
�y�������_
x�	�{�L|�@�m�T������+5s7*��N�
ȁ3GR�]
x��څ���)�
�|9x��^d\	\dy��b��.pP��d��m�k����k���m_� ��"8��'�q��*�����)�c {&��B��?P�|��5
+b�} ���\����hX�L3���5��j1|����%��/h`�?
�b��!4�
��У( 
���^@9�	�S��a��6������
���r��
��%'����P�b
5��A
�(�=�)|F����I�S|F�!�'����AcI�n#V���4j�Bkn



�{C.b�E
����aԞ���=�����a�g*"��t�
V�P*GhHL���f)��sU�Q�͚H��%����P�Y����~5�[y�6���V�!�zgkhpw��K

+L�y}\DM�3
�3�]W�����dk�i�jJ���$��#d=U$y��A�����
+�7B��-P����%P��_6�`
ׅ3�$����}N��+5A�IL�6�2�U�<C��TE.3�Q*{�Y���3�7 at 9b���*���� �>���`�#%�yWF�SE�
E[V\Ks2�[��nh`�Ա�Cb�x��.�
蕽�|Đ�
+Cű-����N�����V��>ߊ�=j���Vy&	����ޠ�e����=�����<S%�tX+�gJ�y�R���3!鱿A
bhv������W<���Z,�2<�_
)�*��4��6%��S�K3J2x&a�`8?A8�ͮ��bK
��� �� ���
1�8ZA�E�7]^
s�������̈́<c]DU���T�1��v�$?�P��
�g�G�S��Ӹ�i\���~1 �b�?Cbh��
4�Vo;/�/�<=��������h����JMm��^��V
+�z�E\� ����N�^禗p�$Fs���
%�A���A�h�SϷ�
zO��}�
��G���-��rc���)���.&xũ��œ�B��W>�ή0�ۯ��k@��G�
+*���h�����\���̰O����^LA�� m��(U�4�2fw���O'p���xa�0��|�YPa47(�t%��1� ��Ο;�
\0^��
vw���
vgԟ�g
�oB����� l�����;�e�^��cdUd���
���~�Pb07(��Pf�
G?���^��;87�rz����ĸ~�_|�)8Wх�����5�S����S���r�I���Td������C!b�@
��As�/��<�q�v����q���XMCA�R
F���ӯT�bkt-�#���sU���V%�U�}8Y���@������@yd���;f���ј���/�
Oy`��Q\Gg��Cٝ8	��P�&*)��&b�W�l
�M�@�fv��
#b�\MG6��l�O���?����w3.�}��CU(��&:����҇+au*�mDYD+�6��Z�Q�(��������~ʌ&s��P��cP|��M��
3�[�ǿ�3������E͋KA�IT�`

�9�IK0�s�
��^R��
��E��`J��2_m�
�M�67n����Ձ�/t�]w����I�}�Y�S����Խt�N��xh*w
ǼIH��
�N
�d�
�r0�� #��oH,B�S�}���ĈA���7��ar�����>�=s�߼t�D�[g���n�y�QA��A�$�L�N�'3	c�8�
FB�m}����.)u#=�g4��b�4~n�o�����U��c[������Q8�� ܾMYBy�͇�f�BHOI8�t�8�:K
+���
|�H�{�
��Ƞ�Ld�
T�}ū���o�ݸ\7�gMӫ�[e`��
��G�p=���ϡn��O�"��@E�d���Y�s�@�\4�yj��lf��lV����/�o��.�=ٴB�j�:
�*����n��%}�
���l��Nmg[������S�e���JK��n�/T^�����P@QQQ@@PA/]�,�Yi��n��m����������������y�Rؽ�
+��e��[
+���C�>
�yE@��)H;����a���#�s���sE�fK��ϖ��?��,���?_�V3|�~l����EfA��x8䌃���X�H��?B�� ���r��
_(�{
J��h3[��^^0_�S
�3`��
p^A�����kO����� �o� �t�7�$磐����dm���Ð��А
+P�+����6/�
+�f��^

G�p��1~��)��$�T1�|�RB���.���玦�T�M��
I����千�����.Yo�A��7�7�7��SC�kCɦ��C
��?��#4
w��PO���?�N���fo0��qZ�bNY��Ln���~(�VbOKm�k�Ze�u��8�M�B
̵����Օ�?��?��#Ȏ��,�kN�D�s�:#�:'�>V\�9Oe�
���t�̚R�2'��L�掞8�N��h�mנ镡1�!?mb#�~GP
qEfV

�	7UO$��K.�R+��
�\f�9�\cL��u%�u��M�Xy�
ߪoNhkG�W���F
5�A�k(�9���ԁ������Z��$)9��3�Ε���4��R���f�i��Nb]�6��*M�Z�I�nAӉ�W�2���v	�-�&Ġڷ
���6 �[�ɐiuL�
Ye�>�3��YK����@e����6r�U���/"4�
S�jb�
M�C
b�"5b�@
�����Ї�IUB�EI*w�:S�W���.+Է�[i�>9E�ߔ+�U�K�r7Se@p^*6���A��3�x��!�Y��!,�!*y�-�vAN��E�M&A���Cӫ�
���c��uԆnv��C���$e�^X_/.bm[rĠ������yb

�g� \����)�ƴ&}
I��Q�RV�������m��z;��hg���y�n4�6,
bhغ
;WB;b�>���t��
v�/��KWt�:A`jNm��g��\}CE���Ŵ�6N��Π7Ҥ}�4E��
1�1��1t"���/,�1��Aa��O�\4Fٴ�C
A���J�d��2�ȫ(��8
�Um�3��R
�HaD���� ذ$[��n+A�����?�
��
+
��cSΙ#
ͺ��vU�D֜�Zא��
)F�������/�
+(�F;�Lj!����
+14!��
+�r�f���ס�^w�������
Y���]1|�6�Q�HUU5gv�Ź=�uts��ԚSͳe׈2xRKFE�MP�8��1H�| Z�Og��k��1�
���5�zq4�`��.����dz�X�FPV(3�Kd��&Z/��a�s��b��P+�K�V���P��B���
�CǎOf�{�~4�������]=|�RP���IZ�-��`��
I-����|M�����)�z�圾�Ђ���x��M�E
�������os�
?�߻���Io���cA�����?c)ґ��]�쉗RtI��ZbA�e��򺣕E�HE�)B)2��*�����A��W�8/�1�����/o\��
#�=�s# �ǒ�F#�l{t%�/N�Փ %�	ʸ�tM���~����a�B4|}���M�G
�5
��qtl^��������4��4r�a������8���((>��
���'	�)
1�tIDIz��*5+�
��@}������;�X�p�gӻ�G\�^��k��m'�#����!_ٴ_D�TXr��R,-s4�A8K`��qq�Y��9UX[~M���6�®���QU�A��۠]��t�w
�\����ԮU�G��g<��<?x���_(�>6�`**9{".#u<��p�H��,���\x��;Jg��g�������h���j��_9L��q���4�ku�˽N�s�w��y(��ϗ��dyI���K���;�N��$�'s�OM�g�]/�
+��$^���y9h�:�жr�����L~�`�v�@���
	��( W6x���ϛ<{�q&: �YBH�Tl��������)�؇������Kc�����ǣ	����ڻt��K�_gaM�YǙ�q�ZG�u��ֺUjQ���V�n�����,�!�
�Bd!
K �,d�D��PZ��q�:Z�Z��g~�y�:��E/�����7\�ߙ���}E;�Y+ /W
��
+��C�A"��f�?�O� /8�עг�����V�:�sMx�
#��L]d�ƨ��ӯӌy����.��Z����rp_��O�F�����6
ߙ
a����^��
�c��P4�
���#�@94�p`���X(�^��<��|ͳ��º�<ض�
�J�smxoƒ�k��B��i�팄�Á���}��C��3Ȟ�P�'�{���$���N}�s]�����
+����݅T��f���
�V���;�pd}l
������I�m
�t����?�n;$T�Ǡ�C? ��E}����e� {,��k
�|7�(���^������^���B�|X�λ_�+�'QTy��Zs'��1��]�%��~"��0�����]�_��,p��
��/
��P�X���� � �/��O '7�'fi�w�Ԭ�u�Ӆܲ)���5��6����2]ɞH�iO���Jq>�
7
'8��́j�');�m{��k���&h
�ho'��'D�X_���A!NW1K�)��L��Y���[�Ff��Z��y
on��: L
��㆚�
��P�
5ۗ@��+ at t� =�	�
 �򆶤�YIV�S~AƷ��ST*e�\W;^��^'��c���F�:�/����n΢���w���t����@s[\d� ���FP�� E�t$�H3�>�eOs�J�0)�/(��k�
�h�@>�Ӭ
�n�
f��v��hN1�{�����vg�o�'���h9��_

��
��>�u6�EgZ�cin�=aq�W�u7h4�(�N~	=�"���l'h0SF�I7��21MG�M�l/
4d`��B�
mȠ8�4'<@s�gV
��;5�Q�9�Ts�
ny�����*�r��Q�(����FR�iھ�,
&#�{Zs�Jg�K�|�ݶ�� ۷��6@����|ftgB��&'=Te���H�[��H}�����U��{˚���6���˪���Zs�}�I/��S9�K
�� ��'h߷
+T7�����P���1!O
I��=��;s�c��Pc��ƪQ���m%�WY.��(�I���M���7����ـ������� A�d�
|L��g����GX"nJ�Vx�+�9�J�%rS}�Z�d5
LV%��TH��d���Hm�/6��%���^��A�fdP�]	=��{�}���-*�[[|�
SJј*�9(#6a�"��[�R��)����|����Υt9Xe*�\of�{{���8
�o@��eЅ
��փ�o�s{����Ȑ選�	
WtE�����i2�ȕMe*ic�A�fa<&�ZO��ki
*��QC���P�:g�Zd`"�<�A72�����`���/F�L]8�|ÖT4dHc`JB�FF��%%*��R�md`l�ʨ�k��JF��L�a4����g�!���MP��
�}ޝ��n���I�#���\�I��H(t�S�M�@� �Z�E�<	Y_'����lkW�On�:JT��
KI�I�lP�
,d�.92h��0�u/}ݾ
�t�ZX���i�������ڐ���s�M�J��LGk�6WJX}�"��P�b���y�

�Ѥw6�[�� ܺ:����y{�����G�=�~b��xH��kQI��q�F�ډ�s�B+GC�+K��U�b9#���2�� Sڲ�uAd�;������ ޺�ܗ�����<r�uz�������D��X��bbu��ȳd53MĎJ}��X[��S�L�P�-i�.
^�7���:g�zd�C����z��_-��?
�Zs���-w��yޘ
+
�0
o�C츚P%��R_;�!���Ȋ�]D
Y��K���lC��ɔh����$-�q6ଜ���@�e>�/zn߽����ʯ'm�y����t����Sq��ф������̚�t^����s��4{�g%w��Q5g,lm�E����ڬJg�d୛
����m������
?����g��z�������݋N��P��*��|3�I;��
!	R��ʼnC䖸
5m��ke��y����_goM�i
�#֊NǺ_��ъ�b�Z�Ԋ"�(�	D�	K�!
ـ� !!�@BB� 	���"ua��(nXQ���HU��^���h�?������ܿʪ�
�@������-g���{��~��o�٦�w7�i��aݯ�'�^�	E�Q��G����	���T
�Y���̂ȟ�Ea|1��Hx]&�����]�-E�"͚�`^?�e��ܡ�����aWtL
�m�qu�~���)~�?�;I �_�)�O�Ԅ��i�_hY�=�A.3���+�ݑq�+r�nW���-�n����/��^2���禰� [...]
+z*��)S��hS��es��
s��
+�����)[+�,vU%8Z��y�p�s�� 
�T z��;v6ُ�.3 �-#0l�
�&��.	���.

x�
���D�
���ꞏ�|c��es`�"5�^Y{�����JO�D�'"�E�5
2p!�8��� �;B� 
���q(���7�n���\���v{>F+,U�y�v.��5�ก
+.�I�-
+v�A��@��Dl ��
������8p
}!���������:
�.uXb��,15���(`ռb�Yȅ�K2��U�w
�ׇ���	���_ �yC�7^���R����
@�qX;� o�;�w
��]8�|�6s�\��F����V[�a��4��,�/� ��A��qp[��k=��;�\��ȯ� f�+�7�@��!H��26:C6�� pm� �m��l
��O �+8{��q�\ׁ��D!�P at r��ԣ�a��g
+B�dI�R��&�ԉ�q���MYϢ�hc�.Ɠ�ޜG��{a�87Ns���o��5d�X�݋�`�J#�o;���A�
��c�c�x�⇿��L��N�HV�<O��xF����62G��F���_��#��yCaC���[yh�����}!��D?�١u ���� ��(�� ���K�d&�̒�=KU�
'U�
Qjx#$�~�Yx/����h0�_|%|@t)� M�F
Ld�0�-�/$�m/��ߠ��	,�#]@��N����4��<����r�Uſ�P]8Ln�"�e�1]�}�}}���I;�"41� �7VP��
���@
�v���2���~o�i�E9�����ќ"΃,�`8U)
J�*�A�W
�Z��1]���
U]�K���WN�c�K�����j"�p��k����~X�
u{_��F�L�UB��	s#��0]"
L//�j��(��+$��7���
�S�ӭm"]V�Weh.�/X�m�kg❟A�/*����vPs
 [...]
g�
F3�Lc
�L�.�S�I�TS���<��F
|d�Hw�*��@��4 �7v���l�

�%�=T'�eY«�,��<���%�n���5g�
��ڦ���fmR[��z�A�ҭ-K�U��A�i�"��2�=��n�gM^�iS n�)<�q},��&�q�,]xQ̐ux*3�@gd����
+cuvu�&�ѤHom9�v�(�8_-ͼ�B�"ΆyP�����a)�!�f���Z=
��p㭡��є:
+�2E�)˖���*�����kX�F%��Tƨo�����3M"ZWM�M���,�����S(C
U�K������i����s�����໦���z2���*h�gʌ���0O��֗��e�
+��]k�[�F[� ���TN�M��A��Ag�����6W�鮣�//
w��
�ER�
$zGu��Y�.�-��*�\]Y���D i,�W��y:3?����i5�
z
�[�&����1T oe���м���g]l^u����m�;8h�=���Co��?�P�"ՖgW����K$��BQq#�Pn�	�f�����[����
~�Mx�Ab3Ԉ�n�����m�����#�Ǯ����

��F�4i�
+_���(�J���'�u���q<,2��Z�VP�\Q�JUd�}�=�5@ !a	;�D�HD���Ȏ������
V�X�� Et�>󞞹'�s1����{�����.b�X�ܛ�|�mz^y3-��9���D�^鮒d 
L���4T ���~����m��8d{�嘳�����@�_h[;�V'�(�����PJ�I��ki�)%�F��'�\��WT��on��u���wWI���e����U'���z���+�fjo�l���
/���c�}I�����6K ���m�+Ψ�U\�f\�V�����nF����e�o����ÅwE��*I���> ���fh:��֥��ݰ��˧֚�.����n�&���(���������袔[������1��Z�(�>D$h
��$���k��+{*%��KGu������S[��o�{d�<5mq|셽q�������j�?�?�gpzB9��(
��R
�F/oeV[�׃����Z�E�-M���]5���rI@�.i��'
�7��crk]:�_��Sz��p�؜�����q봋s��d
�

����2h�D��
���Ӌ�����>n�_��ҧ��ʫW\���[��1(�\Ax*�P�&
��e��~�Qa�ў���w��5�rr,��`
����)||�dh2e"� [...]
�֭]�,[����y���
+�)u�߃����
�'/RBHo�ƒ�H��g�����y��Q0��	��
+��L=��E�D��]
+D�I��(�
>݂�]�+��Q�[�W���_M��[�f��1��-���c�C\ÿDa��)��5:6`5��������\��,��+���E$�Eq�$���r�V���7�z߂jZ�'W
�ۄpN%�4X`�E�3@D�߅P Y �&(�����
�N��v��
�/���W�m�����
��FI,�ˣF���9"�/*J��~����
�?���*\8

�'C��|�� X
d}�5��1RL܁i��
��k�|s'Z8B����$1�"��۳	u�
��od����8��:;��r8�
 ���8
�����DC��+D�8C��N@;�)�/S�
�~����l��
�ZC�D�ݑA5�"�*{&#U�d8p@>�3Nl
�]80��
�{�`����
��
��m��a
�CVs��X@�s`
5�Qd�
3��c&�?.��n)T�C*בֿ��$��\�)��/�]���
N`��,w[���V6/S�W1���F@�g��
 JU�T�C��
����4��$��"1�� Bg
$�*A��H�P�
'
`�jAj�9H�7Z�
$d;A,
Q�^��j�C�>�Ak�6�*���8��$l�(|�g�<�59��jC�o�_j at nE��
Dio�K�� ���0W�,
`{k���X3�_�*��y���B��J�Z���J�EZ	n
���$/F.�D��>���y
;�5?�5�H�oC�IH>�,�
�1S��d{jC�<��, 5���uj
�S� h5�<��:y)�!j���@�Ky4@��ݿ4��$i�g�>�3M��M�$"
q������:��y�;�*C���a���Ӈ,���.1ҽ?'q��L�.�\�|Q�&����$NzE�s�eP�
�O����N��M%��O_�P��@<Ґ�� ��ֻ��<e��h@!Z��
�jY�u&�o5�C\�D.�S^GU$ͅ�`̐n1���������p��=����p��
�S�����4\:� ���9�
x�� �V��a
��d���Yˤ~Hg�/$���'�g�K�'�d=
i�N��%

���t=�n�?e5&S74�!i��
�HC
�������J
�9�@��ї����^�\Z�;=z���4C�1���O#�
+
��
FI�%��>aOЀ�~��9x,�&i<��4��А͛�l��G6�8<d��2K��^�QM�k �CE�u�:N�U�b�{ӪnE�D at .K��� !lH0B�L�ɞ
A�a����V��b9�*x�Z�����{��������s���?Ua^��W�^�S/OU�&=/����ԇDs(KPٗ.w����F�%���vB��1���.i�o�
3�)��� 	i�C�[���s1����ZО�̞��7�̯����Œ��L"i��J�'3؝�\A{�D�JP�[𵪦�uC�Uc�u)t��"��V�����o���Y
dϒ
\��k�p�����yW��icvR�5.M�ss
+�d��V¾[�6�
���ʺL��:�֐a�)�V���+�f�ę�L{�j�GJ6;o�
T
X
+ڣ����ƹ��o.yM�G`��bF)���B+�Do�S9&j����+3%*M�F�̹��g��E�� �[���W�>`��H�7K� ��
+�A��Nm��ta�Ls��)
���J�M���
+����
+
+���.�QY2%Y��")u"b����b����]
+q@�$�8�@��50���E�ڿ�����p�����������0̿b�����v9��Y�C���u�7D��r��V��,��8d��I6����Rr���<ĵ�H	i(ߴ ����׵G>��trÛV�
/,أO[C0L��]5���SI
��=��V��
E�
���fKt
��XBk����US�
j�OL�~Wi�_
����	鶅���	�^9k>���=�퓝�#�ۃ�͑Q��q�Mz
�ZA(VI�Xb>Y���ʙ,uIr-
��Rz����V]@�j
+齒B� �
� 
dW'`#g!��
ƽ���ß�o=��Uǹ���C;�|{Z#"[o]M��I��j��RE6�')�
oTWV�(
���V�X5�
֝�
�U�[�+�+����h(��\�A��j��|l>��m��/^�����7��K>���fs,�ؐ�'�N��YJdXʮK��2_��f	dz��h�
�F<ߪ!�z��A�=P�4��;A%r�@��Esw�]���k��ЙM?
_p��8�#,��-:Ym��+j�QY��ņ<
YK���
G�*�h�ez}��I�$�jp�^i�x�o\GJ�9���t[�i��v�O��=W�{����y��{7����Q�UmqY��d
+݄/�4�s�
+��b)��R$Ī8�V}�pKs�ة����U��� u_8�t�#Tov��������4�t���_�����6�=s�
�ꋈ�w]�`X
��Ҋs�dU������4a|S�$�$�E���#L���M����aT��
�!
LdN)�σ�M�~k�������c��K�_o}vvo�8�~,�x8<�⻘4j��������̒�by��Ɖ�_Qy�"�Z4���`k�0�m�z{�i��4����hހ������&ǁ���qܵy����	����9O�"n|�@
�F ���'gR�> ݈����6fY�M\d�2m&V�p73pp�,�g�n�W�A����8���vx2�
5���������c�/O�O����p�>D�962{"1>m"
��S^��gEYQ���ϸĐ�҂����z���6
+v|��y�l��@�j��G�r��
j`b�C����o�+
o=]�ޜ�����������3a�93W�g�C��3"㧉1��Ը��k�xI!/���)uJ�Tm��
s�E7
��C����j?E�X�z���f��?l^��s_)�����;��x����ً
ٳa'�f��K�����f`cf����K��ʂCgy!�$a�~W��������}g��{�e(]P�������;#
Q7��l����a��
+8��
+�����`�� ��x����d�( ��
y�B�r&�g���
����p�>����;~�`���}
���j�uB���R�*G!lu)���)�6<ק�i�x��
A;/CԞPH�
i� �=H����1�=�
bPz\ �Qoh�<-^���(��e��CUM-t��Z':�-"��%�,���X8�.
λ��� ی��-~����^��m灴�
\�qJw�֮� �ud�O�~�q���|�2�P�G(
��a�c>lpN��������j2[�Ke��8v
GEłH


"
��
BH)$$��{$!�H�*(( �X����.l�"(�3���{��9W�?p.���Y{�o���fF���0��
��� dI 
_���} ��R����b/�Wx"x�W���]�^�
�<�������|�s�8ųq��0}<
�N��b�8��!��
���cV x}�
s���<O86o7���	(G�s��
���
�
]��p0n�".��K'@22'0.@t��gC���:���u��m�t�vHzI��π/9ت#��;
+��
���!�:��	��.��񑈾�7შ���Q���l���uXk��@q������ 8���
�
2�.��y ���?M� ���*� {&0
a���5�5�sL�CTW�H䓘�����㞇
������R�L 
��� ��S��18�
@p�	����I�
+,�.`f�@�� ��h
����1\M�פ���ċ�_�ſ�mC�Dwaޠz����{�q"�&ޏF���
qH�� �-S��c�9����C�A�
8�=�����0�냁��obI�������u�1M��諸��6›�.b?�)�'��|?�UjG���o�� ��	���
�?N���S��}H�
A��	��� �uA�^�0�Kpt���Jˋ�B.B$T`��Τ���HN���&��6s�ރz��:��hG
��F�&\���ȈqHC�Y6қ"�� �tu�h�6�2�
���@@�e��	�̒G}��ߥ�G���?�մ7���W�-�����1��ۨǼ�Q����}���W䋱�D[��a�=����<�S@�6�{��9�n ]���
+����|����W�(�m���j��$2_�+�ϒj�=�
��7ewb�ʯ�t�[bs��{3��i��l�E q`��B����3@�{
��C�ag0���I�y�&K��<^R���K�e<"�ywqE�Τ*y{b��V�e�u�mus�]E���.�Iv
�9�Tҋt[@�@\m�5�@��;� �g�5,���z�y� ��C^��p..蕒�\�Jy�%`ܡ+8�
э�|�U|��%���ۤ����;��Ԟ�ޓU&?��zY'qϙ���@Zel�yeH��N�ι`�^:V|`������~�yI�ϴ��n)����0o�$��t��9ͤh$j�	�������)Wr+q�e)]�bB�Țړ]��˲P2��AzS�� ��
+<�@�%�e�׽+r*��볢C
R�
*�U��q�+���RH��s�����*riN9��$��XD�e��:5�}���k��m4d�O[i��A��K�F��
J���y�Hu��������6���(���̌�WˑJ�XUä+N/2X��L���<3�f��ڡϡݕ�h��Z��-�9А�"Z���y
+��=V��CM�����]�j�|��bCڬ؄#�ب�3kel^�P$-�*U֬\�9�j40���sf-�E�h�U1��
+�����g
HG
�+�@��_7	Y�@��Y��{�U�z���֧u�>w���[�1�,b]�Y���H���Le����l�Q�uҬ`�ZdY-IV�Q¾�gu�DY���@
��<	␋������
+��_�x:��[9p�ˣ�!��5Q�-e��'��&
+㤞�-Pq$F�D�k�
+��(���ܚ|
�9�ǻe��nkx�n1��P`
�#���|"Ȝ���̍�
������j�]�w��{M����E
�P�[[�L(�'1�F:רgK�j�J�P�ER��+.4�ŧ�3�M7�X�N-Kt_�>��k�DP"ga^c�'��q���q���K>˞^=�Sgs�ו��G���Ŝ*OJ)*J���S9ZS�X��W
+tr]�:ǐ�,ȣ+*,4EC>UuӜ��Х��K�e�"[ q`/�j�,
+�����I�g�M��k�@���76޺|t�Ŧ��ڳ1ѥ�|~y
+M_La˭L���Q�M-àͥ�XL$}�9U�Bȹn&�;t$�=)Y�-�0
���e�p�D��`����a�nj�{9v���Zk�g�oaG��Q�u�dC
��� g	K�v1[F?!RS
+�z��dH��4%Y��0��a�N����8�������u��)�H	��d�9�s
�8g�
�
[�lI�JŴ\u]I㚚�G�1�h�h��js�P��+]ռ��\��}�x���n�~����sDr�^���G{����TA�PI�
�=uz�:ڬ5>t�k���7��ͤ﾿Mw/uk�
zDs7�u�#)y��)�6YA�O9e;�푷T֦�P{@���!AsS����w�ZCRs��?
U
O>�R��j�&;����ߨ}�����M[����Z
+W��}�^�w��76��M��U���K,�Ց���=�8�RA��by������ڰ�s�ԁ��
��֫�	�u��TqZ�V��"���D
'�(�`A��^Iyݿ�20d�u���Q琯U�P�������i5w���["I^OjfƵ�<ɕ�awY9���*�����y�;z�Z����]���k^
wi�T���4��ل�ݔxwg	10dB���V��I۰�ՙ�!NG�|�=���x�a��~i��w�\p7?��W^��)��m,��m*��m+��w�4X��Ƌ��k/
TA�!G�Rpn	��.q�.qst��	[��q�3c>V�F
���n�=
R����R�L{��
e���"I�bw:C�/��8��hΎ��C
���B��h$3b�\�PpJ�x֮C�����y�K�2c�~�����q_vd��r�T�]��p���t��Inp����<!�I�ȍ�N�0Y{،�\��1~�dsR�d� �}�0b�(|��(ltT%4���4��_��+����g��Y���)���F��i���r��M�2�!s��:��ω}�� �27��,	e(�"������G���7EG.�C]�
_����5-��;�F���E
��K��xW�h_L9�Z�a�x/��wa�E|-�j��h�$$8r!��B�+Y
tn�E��v�xE�7'|��_��B���{Ax�R�9�躬N����5��_
��J�
+��ai&ܖI�m���UlDZ1�XK�u��ZO�
;rpl�@�}v;��nS0�q�) -��h��._�t�� Z;Ո�^
+�8�N�a�ZVh�a��
�Ep6�b�)�f1��D̊p�V� qURV@f�
+_}냊5^�Y�
��z��4[{།.���N!�n��Q=�A)��Z6�4�X��=&
�cຄ
+/�"���˼���6pͶBh��rwr,�"�����m�گ7���8���T:�M�� �Qm�
_��a�Ά�&
�:T���q�����e�_�!l�
��8��t����C`d��
��G��-
+�mPjb�jR�J�T�F\G
������ 2cdD�##a5ҥ�H�߈�*'��Bxr
-ې��
�e_p���s+ 	}�`>F�"�S�p�
},t�66
�!l"F���M�l��� �I�
��3Ff�9�X��!�A�N{H+��R���<!:�
�y?$���
��`�{C���T��3�#>ƍQg�S�����w�y�*�w�lHڨ�TG=��
��c��ps�dX"[��,G��\�Z�	�$7@t6�K�H�
��
+/����������i�m�>MK�H{
��
+D6XkB�A2]d� ����(�["O@~bN�{@��i� 9���Z� �F���?x���9���	ϙ��a�c<�M�
��c���y�*��K"ِ�^r��۬�"/c��cW�������Ȭ�>iǩ���F�9����ݬ��ۜ��{����1�H�H��@���?�������!i�&R�i#g�.���Q�i��@sTn�B����z!�<�y
���1v>��
eJ
�?�Vެ�#�Cb�h�w/e�=(}�z��,~L:���%|H�Şc��d�A at 6��}�Gn�R�Ũ�j�=˱�j�*�
��n_J2}���r�cf32gҎ�$M�I�ٔq���Q~��7���ל��G�᜻	�v�fOJ�s�E]�Y�*H�P�����k�P�N�����a�Z���n�Z����we���CI~�T~%c"��7*k�HN����T$�����K�c�͢ܧEw�/
�sG��x�vt�'��g��@B6$�7���ϰ&�5�o�T��#�G��
�:�� i)E�
�ed�� [...]
+�k0�
x��
���Q�bF
-��&��*�E	��jQQDkbaĠ8?R�9�Q_�3��kỵ@��`������ �ܦO��_,�Z�_�t86]�a�ɿe?����'#���a
<�R�N`V0epIt&����+�٤FI�7)��D�F��P^2�)�$9enUH4 ��q�!
�uL(�n�_�َ�+�;Wc��T�����]v�gGjx at c5�FȢ���LG�Ŧ	1����RI
+�.IN��迈��<	�E������d� ��^m��d��F�1�Pa��]�{f�펎��_
.�����h�"�&���%
J������L8Y��V���E1�F*dޑ	Y��b��S,A�
u-�3А��Gr�k���uA���K�[~�0z�d{d��څ�
+��
U�{}.ο2�HP%G�s%
F�(
�
�1/S��UJ�p��
��`������)
��F�V"�Ѐ�̥ɑ�����+O�����湖�vN�Yz��r�G}ú���M����dG��ҩ��X�\ʇ��@�.���KX�
+C�,�
��c	L�3��EGD��s��#9�h���h��>����dë�
c�V��[�L:�<��W޺^^
r�� 
��M&�31��\_.�s�)"�$WB�I)�
2��_F��	���0U8M_
 "X�� 	��
�=SvXk��Λ�����n�ky�^��ٖF+u��kQE�ov1����J̥��
+��������)
+11�8)<�^JH�'�H
F�'���阵�(�|x'ȑ,��Р����+��=�t'��n
������L}��eY��K^m�wZ%.DR�/��XJVlt��K�I����*q��$X�-	�b3'a\�t�Z 	���
�
�޹������
��/���}tzc����Z��OUw�Z�a�2�0Һ� AMx��B�.g�D�Ʊ	�b^HQz|��P觪���D~Śx�3N`�4}-�b�	�Q �_(Pf�Ziڍ��3BMh�����4�
1�w����~�
/y�-���`?v�@�$��P�\FpM"�O����.�c��/u��F�x����,��Z 
��m(��
5ۡ_;�@��
Ѓ�=���'�5ǩ�
[S���Rꠇ������
ݍ"v�;tbP;L��*�cZS��-,�5�zk�z����4M��=KF�V���)[ P��n2�Fz�CC�5�z����_�Z�~nf���:���j"
u��>��H�A
����������p��ѽ?��گ���i��4��T�޹(�΅p���U�&Pl��������}�k� j�ۯU5{j��ٮ�W��%/�{�z9��JԤ�#�)�-p���
����p�5���4�X'M!�����0�M��x�w[�^}�[�Z@�4�҆
��B�:t��a}�~~���
�o7����K�ha�]�9
��ڹ�y�e�|�e�<��o���=�p��㹺�Iܮ�gx:�z]���8����_�i�f����������V��{��Ps�T3���lE�.�.��$\������~ڲ���e���%�3�K��}�p�7�I��

��8K�e���J���J���J��݇f{��6�;X�����B�ECM�ZPՀ6T�у�>�@ [...]
+�5@;�
��
A���_��m@�%kPkj��~Cf���eK0���Jjn at A��((�g4�:�I��?|�kX�y�I*�x� ��$%���Rt���
�f��f�fjj��3Q*jS$�b������Z\�ua�b�'��q�(�����������\�}�������
Tp0��zS��s���(
2��A��
��h���B�mT�‰c4�탱�!�����]�~�^�
��q��D:�M"��!��#���M)���
X�ag�
+'�d��&�n,�D#fa$ȋ���O0�K!��G����>(��B��'j�����
�m6�s�+.\�I�9��M������D*��9�N`�

�
(�7����Fx�!�$�f���ツ�^��� k�x�]�����2_K,GT-t@�B{�,Z�����_��]��$���$��)\�N�a��8X�E=	�Ì �z�s���\2���N�l숄���^
��
RMVBd�2�eP�ڠ���fV��*`�u�}P\����\c�B瀿�
<��Jm�Qۂ��
�G0�ց~��Ӯ�^� �
7Pz<����^O$��B°7��y��i}>Ǎ�hc'|>�B'�:8��<

WC𼍑2�M�0,��؀�oN�X�ׂ��䣮�w��v�
�k����ʯ�H����H|�;�������č�������WH^:
�4
�.�x#=h�1��, -G�rR�:"����
`
q�'��y�q���~�= ��@$=� �&j��	ڐw	c!o&���
0	*��r4 ��b�Y�0C�FsȒ,!M[�t�=�N�U�"��)������3`^D��`0~폰I�𱤡-Y�I
�|�89H�
 #D�:��#e�DN3��a��fȎ\E�%�+�!_q�
�U��7x�w�܎ pN��}!
�k�H�)
+�'�c��-uh�&���W�؁�/1�(��"B`��p�����7Y����ke�9�⬐˶E������TxAT����GLr�o������
c�?��K���O~K�
R�S�S?�{i_��c�#:�u6ᐼJ�U��O���joS���p�
+��'r�"�
�R�q�ΐ1Qc���M#����)'����X���
�kF/�%m��G{�~B�?d�%�K����D�.�����
�v��X5
�u3Q�i��`sl��B�E|�q��볢0H+��z/��}+�K~�?H�
c�d��`v�1n
��O���
�?dh�=L-�6k�q�=N�ƙL�R�
+=d,�G��J�fb��	*`[�%���ƶ��h��>U^ذ�l�`����=�>��ԧ����ٝ�G���0od�g>��$�n�ޤ_��_I�\�2�s�)� �p��Fn��[lu4�v����?5�c5�vw�ֿ)�
eG�+
��˙�%5���oD��H��:2�p��~L�ξɹ��������Χ���}�⏰O��2t.��K����C	�7������:�y��,�
������T�z�d��V�G��[ʾ��=�VF����9��P�i�s.��)/�����w��"�`8�P#�~�
}b���C:1�J"�n!���ȼ����=�sS�bMs���F���])����c~.SPnrn(�W��%3������ʓ���N��cž�Q��[��������=�T��
�,�BBx�y���ɮ�ht�9��e��5h�p[Ԋ��˓v��ja̭J9�j��s��T�}�vi��.�|o���C�#���$
+�$��Z���-�����2�dA��C�.�q� ���{���'�i�:��
&�C
�D,{ږ���^������;2(+r9gJ�'
+*�GU�Y�s��[��eu-�Fv��A��dO�se}���N�6�V�
�	��i(&�A��;}�_;c䰛�p�����­�s������}�V�t�*��Y����IVe�˯W6嵨��~[T�s�d��Jiu���je�j��e��kq��@H[2YD�,%�!�i���AG�
�F��>s�:j��h��[i~W����#J:Q#g�W�	�*J�-e�ٍŻ�uM�j���*Ugi��rY����B�?u�z at Q�
���5B]���;s������k:�� ~�#-�����4)�A)�ԡ�Z�	�I	-���
+��*HDP��]
@?����8*��~�Yѳ��}���s��s��v�:
��
{�:,��{�����~'���Š�B�zj�Z���ƲԨ3�Y	����i%9ՙ�����
�p0W(��D/��D�)�췉���y�@4�!M?a{g6�-—KR�.��~��4�q��j4�h����^��\����:Y]�_^�+(.*N�/����g��d�����)��Œ��Ԍ���
񟱒@�:
�m�C����y�S�n��~c��+���
�ǯx��`���q��_��8ΩZAd���
+ё���TaiEfF�aj�Ŝ�¾�#E��%/���KiG
�$���I��;8����-88�
w�>\��/�~�e*=3rp��AO��^?۶�[cK8������!)��Lj��F��U���^Y��\Q��/?/�/��[>�_�L���RZbٛ$���8I ����r
ԫ⾶oý؁{q{nv�h�䘽��a�����^�k]g�O�hV��0q�ј���Ĵ��d������L^M�0�TW���õO��5Ki1�o�xU+q�@6�\E
T)�I}�QFˣ���{*�޴!��ݖ�17ݶa��
�L��jiO$3�#>$�M��r,�ȅ�#q��)�MU���2C�u
�6�d7�m\N	;��~��8I ���j�����<z<!�
>TD��fl���\��o�,jo:�
{�F�e�DzS{�“z�bb���#;
���W
�ק
j�HjNgv̦��_
�-�8���$�t�%d���i�F4;$��ݑFS��h䑎T��^Ŗ8��6����_p��&

������������ׄ�!�q쁊D���$���߁!c`V�7�61��=/�{5J�qP)�^^ ��>�;JB�f6��gdt��m�B�᱃F՜�A�Cƾ��,Ǵ�PO��hޝ����6wBš(����
����w�h�ñԉ9
mb%�~�c����PI _}8-��ۤН���
<�F=�Q�+
��߬�O�8�������)�4m�i��u�y
��(�<��4'
�+d1�*9��s\�\g���h��'ع���_l�{�$�2ZhBh���F�I�+�D�>/�οQ�������Kr�k{5��.���T���@�%�u�R�=w1щ�������X�E_��R�^K
>
KC
����
��/>�/�i���E��%�F��o��Zg��aAլ����
H�k��U�-ɫ���V��"W��CW9F��H�����Ք}��B[�Z�~�Z����
/9�}����)g�O�rv����e��N�����fB��8�2�Gu�R�bE�|� �|�#�5���l�YwT
[��`��w�i�}
����ӣ}x����=���{�ɏPc�M���e�C�0cy^a�[I2ކP_B-7:=�P�
��&\h��Ά80����d
��WP�h���
�'�
bp�N'��t�<��P�m�u�༮-t������0�y�'I7V�:V��y�D�8t
p|P�G�."�IL0�a��<
7y���+Д��_��*���bTm���ҷZA�V
(�f��M�Q��4L�_�nHt��
��	�#�Dd\(�Y�N�m"
In`!�
�2�Q��䬁"o�d
`n2��M&�`��� Pԇ�ͻ!��+iC��4+kB�Du����d- �_F(
+�
��T�n����R�����7X�5��7��Fp����.0d�!PF8�;!\v��j�@ndʩ�XNNȫ�I���C ����o�@+����!W2�hJ�Qf�:d� ����{R�v�O�>�/ }�hc{�6m���@]Ĭ� ��	P��e���t
�7�|� |����ϔA�$��� י
�T%���OX黀��
����>�]4�.#`\5ƨ	�L��Ϭ�_���9��,���P�-�R��
,?S�����@5�� "��Ib-a�d�V��p��'E��BP�>0O���]�QM^[�T��zYuQ����� � ��Ɛ9!		I�@�
@ �� �A@��(rUZ�P������E�
+*Ȱ�w�;�����9�]笇ظm�@�X�
 �o#D�� �/�����a��$v�l����a,�|��Fk ~�
`W�e�0�
��;xۜ��{!p	.��B
�
i+�n�	hk�rx
�[6����?nn��̀ Q�'q�-���[F�Ö�8ā�� h��=н
�����0�	D�
A�q1�O�#pR=���%�~�h��@m�
�3�@�	ҵ�@�<Ex�}��!�3��)j*t�o	��5`
 .��*{`�^������A8da
A�uI��D+ .i5p
�]������izK�$�T�J׎	�c�����g�����ȷĩ�${A��'���[�$4e�=p<�A�rȽ�Ŧy�
Y�=.������
+����4�/���qN�6KLM�(�)|��1L���҃
"_ǽ'=�zC|KxE��N����
+�i~���� ��h/y�kJ=
@��+H��
����p
�}F��@��-��af�G^��ANE�;V
���G�43�%�<�9�j�S�]�C�k����w�S����΀ȟ����	�� ��-0�
Bw{P�� ��
A��5��}�˴
�>�ez�$�|�e�[IZ؀ w�s����*�Cf���V�=zG�
�%v?��&��W�0���e�
�'�w�aO"��w6�x��� �

�	Æ9�
�<��c�X�^�O��;-��U�,�iBr��3p�F�m^�V�!�uv3�։ث��ˌ>~/�ϸ����n��l�$��;C8���
��T7[�ځ|�
��فa�䮛
��N�!�F���#{�4��
i�!�U��!��_�ٔ>���oA%��W���
�;�9-<þ$�`��O�Df�hl<�%n�|T QG����
�wN�::�>r�~�u�.��;Z�m�`�.�W&��<���AȍԄȾD
�W�A��3�JJb;D�|��I��o���K��I�yO�����%�^<A�Ok�3k 
�\!:_�:o���P�z�D�������[��
�ꮉ�w#���j�4�V�?����Vf�N$q[eqG��č�I��SV+�"�>��H>�J�����3*dS�
+�4��p�1:?��,�y��7����s������_��pyP�]y����W��~1G
yF���ԦЎ'XG���E��6�&�Z�,���L(�� %�;Hi�{I	2�+F,,�jB&)� &:W��n*J.���e��W��{;�i�4�IsȒ�����VI��T
|�(�0g��-�$Z�.�U��íN2	+TU�%��	iC
+�nE>rSiT��՟��՟�y�	z��
���߾�C�7u�27ۉZ���5/[|��ٲ��[��
Wj��ʙ�N���[�QM�*jm��U���-M-�4�cR�<7�U��>�4���2�_%di>
+35������L���A��,��t�y
]l����rx��O�g���wۂ_;�CO=aC�A�ֶ2��fS<�֨�T�hX%��B}�0/�D��=$ק
U�R:U�)?�R����H����ӎ1t��hk �uN������f�����	�G�kf���,�ںkyWS�:s-=�hU��R��*S�� �Y�����#0d
��e
���I�U��+*���"�0$N��%�ǘ��q�5���@�:g6��t1f��_��Km^t���?��p�#`���:�Ἇ7R�4ԲwVW	��e2ra���S���(�h��r+��F$!ˬ�e�����H�P<�3�Sd[X��1�5@�� ����c�bf�q�݉Ř�]K0��W����4��t���
���Qr��FVXY
_a���S��֗�pRK
q��b��\&-�O�+�=JA�]��4_8̗-,�q�i
��O��
+�1P�=�
f��<��^g̍K
v���;φ���ڻ�p;iSe
#���ݓ� &��ZJMr��`:/�2O_^*���y��Ni7�.���*���a^\��W<ƴH�=�;a�f�~.�a�l̽�s0�W�0}W��u��8�/l_�t.ҳ���Wl����:�j��� ~IH� �("��
;�BBB�@aG(���Vԩ#.�u�Sw
+�,�0Et ��VEq=�c=
���b��ʎϼ�O����;�~��������|}&G���P��n�j����'��Stbo~~́�����Ս����Ҵ껥?
eU��e��>6��
�S9�G��g?2ɃV���Env�K���7���r�k.
�^H
+��/u��sYq[[
7�s�bM�FuaӶ����9Y
��k�
+U�
E��
����┆�u�9��&��NMit����
���t�In�3 �.3��^9w�^Sǰ�V�Ց|��פ����Э3�7\X%X�Q"���L�{~�:�ܮ�Զʬ����y���m��dmC9����Te�Zl7$ch�I-��if�+�
�q�A��3$M��S���c�CV�����{n��
�Э	_}#/��zq|ε����I��JŕJ���*-��A#��HO�r��{��kJ�x�BrA7좑���ܭ����t�~�NZn2I�##r�ߒ
�w���Y���Q�۞�7<�{�<L
���Y���ȴ{�x)����}"I_�D�W%�5&��u������}��zR"�Xp"]~�$����ҤG���Hs���a���F��%z�_���	�_�r���|���2�U��^���~���AɃ�B���%�����h�`U,���숋}�;�&.v`��o��?O��]GH�O����#'o���LR9<�|5bO�r��ܬ
�W�
7/�򬳵b;�6�I��tSh
<eڵމ�-��N?���������#?G�k
��
9:�"�ݻ�v.��:�� �B!����B��^=��)�TL��m����Mz0�'��r'�Lӧ��S�������H�RmEӹ���bG�t�oz�K��^�ș�ܹ35
�M�᳝찹
�
v���	�.5�B�A�EB�"�DŽl� ��Po
��������B��
+Mg&��<J�h�����K=@±aI�۬�
 �8h�v�8c�N�-{?�p��o:��L��v���	�s���~B���B��e����2�
�
���#�0�Ƒ�ϋ��$

+��.B�Y >7�ú�
��{c���D�����f�k�n�NS
�2��K��R2LH.$
&zrX艨���Y?
+^��3C�� \�?bY>.�Ԉ�d#h�ݐk��y˰q���o�oLlq�d)jMlp��-:
�2�{��-O)zIH�8!J"����HX�>�--�t?x�9��g#��0�
��e�e:@����i��5�
!�e��96�̰�p�\�C��8���h��Շ�"	`Bʂ,�R�)��!*�B�k�� �;[����s@\�#��/�x7)�������{�4�<ǃ�.�f�q�q�!�cB��E�1�"S�T�,B�%W�"�=�U��^�jo�3�v��+�w)�n࿡��
�)
+>�H���m�W] �f�{�!�և‡�� T\c�M�P�C�j1de6��C��
!>�Q�
D��Hhu���
«
���)�5�Qʤ�L
���� �@�J��M������
����0�&�j�Tً�����H��	�C��ָCR��6�� ��
Q�r�
q���	Z�لq�鄏�	�� gL�Qغ|�A�A��Cil2}
�
f�l�)2�HϠ�Y�
�_8!e�+�<�8��!������v�C�K��ľ��ā�I�p��1�\�h"G$���wH
+�.Hp�A�F�ڕ�Lw�8(Xa��hS�-��^��dlt�f�'��,��r�w6�&`FQ4%o�L::!�
�Az;���׈Qɛ�o%�Cҹ�7I{-G�K�+�
D�4ȝ��P�*��y��L�a5�%B
)mP���1o��L�6�Ɍ=~�i�ޫ����Ԇ�&7rG�Qo�1�I�yC���W�W�/dc��lL��g)�B�CBt���!ő�,��:飔�c}�!�"LPƷ�:��̚
��bϱ�M��r��6s_���`�k���c�N����8���MEqk�K��Xܪ� {H�
���� @ b�	��B�-@"D@�D�
+A�^��VP���ֶ�^�u������9ߞ3�������)�1�	ŌyD��>$
�< ������{��>p�}n0���	��1�[ n32��+�����$lw��}
���b�:������X�ۯQ���)G
�r���U`�0kq��&�L��x��O��������1�
�����Q

f#���@O[ a#����O}k�
Tm���=�0���}ډ���}�B��s"oףX��}i��$��6h�W��������ѰV�0�+�
+s�~�1��e<c�^�{�w�;���‡޶@2���|)ҷ����ld�9��
\�:�ز�s�W?� m�U�w�N�xL��yZe)~W#31�������ϫ��p��ݜvf'��eaO�γ��f�_�f�<�U�-"�,���@*2��̏Azo�h��	
�;��|��g��%ϋN����o����5�z�%E��O����Hs	]:�E\j�1[��&~7��7n���6~k����G@|m$��D� [`(2W�
+㐾�^�t�
hX��ݫ�=��)�p~\���i�)m讱
����H�^e�WB
+�]�Il�.����
cd5�N�ĩ[x� _/��WJ~	�����e�T!��r
�2�=H���@��F:�+�C���
+7�gU�Tu|�L)f�x��J.ǽ']�yA
�oV)��D
��K���1
ѕ�Ji=�,��?�',��
+uҧ��X�K��Str�G�Ð��H�S"2��(Z���l#�7�6��u{
��
]v�2��ξַr����e~�j�>9�X��E�T2K�����^Q�9A~�E�6fL��H������@�S@�V��@�((C�^�
+d�!�o5����n3�a�N����KǪ�]/�wt������9Q~uq���X��N-Q�1��J8y�j^NB�03�S�
?*��?g$����z���$��� �{�� � ��s����羚P?�l��l��e��w]O~{G��I�=V��kȉŔe&ti���r���:Nf���Q��J�8Y9$Q)�JRR^�������y�:�m�<$�H�X�
|�\^ԯs����v-�K.O���}ݪ��7�r�V��>���VA��N�fgf1�Ӌ�jMOu�^��>/NPJ�Է$��?�I��I��e��H\ �@�\�k�
�����X
+�:��G�.�5y�io�nm>K�W�g
�(��K�����ɔ4m#%'���]ƍϬ�f��e�iƴ$:�7�<�-3.�#%.
l�b$
�zo����b0[��=���\&:7�;�/�j;�E�	�����W_v����_�U*є(�ɧ��B-K^P•�Djω��^�H;)���ʋ*|˔|�J� ��d!���"���5. 7�
��Eg0ri=��{��v��U���M�-�ݥ�
��:�gv��_c����Ąr5-�4�uF��x�b����$�[�ܒ�\A�?LQ�G��l�2d����
�=��iv�'p�o���ٻǩ��ѕ��7���w��
�6q�i�D>�YP|]>�&�
Q�*4�q��
�����w���	
���m�������WB�-P��A��;�?��k�#�t ���{h5h����0ph����Uw�-������uHy^���/;,1����

+��0�i�dҌ�,���M6��ɍO�h�oht#$1�a�-0�	��p���F;0r�
�]�����m�3`
�fouw)
�^�
�l��w+{���/�J�#�E]���
J
˒B��'Q:*(�v#-��3�>�xJ÷�!�a�
�m�� ̝`�, ߷�A�
,�h�r��O-������i�
�<m<`��*a�|��7r$�]8$>~%�s0ɇv9-�t9�(�a�x�@!p`
�9���� l
���, n�0a�ߌ�����@����v�;�(��ݎ�[G�%��];��1M�ο��Þ
�Oʾ�\O<J����Y�1�
+� k��������5����o�k��z�2[���A , 4�P}���qy��9W�z��A1��
=�R�0x-�'�a[i;H���v�E5}�a ��"e"�}_"��	� $!�H�$h��bQ�tܦ�Z

��[-�8:��Wqj��v��T�TqÀ���n�|3s3���wr�s��{���S���|��Y���Y��ճ-%�gO���Q��v�@z�a��g(Uz�m����r����tG��w��NB6_a�5��d�Ս,��3k�ќ*k���*r�eUxXs��Dž�
�l��*(�Z��6�ɭk#e�-Q��]1��C��N���-���/|��/�C�-�5ұ����4�
!�.��_
��
�r'�C�̹C��ҡ��‰��Lݰz�z��
)񒏔{g�,�"��FWL�n�K��2��<��4��8~?0q�E`��k����� �?I�/��!���q$pg�1�Y�0��

�
T;ʡp�A�,�L!f���|R2�'��cVz��ɱ��5
���8�
�.�h�R�6���Do��<!+���&!�)�R7b ��E S�(v�8b��	 �OA�C"��ap����|�v�F�S����!��
�����5�8O]�����Y��+4����{��Fh�
�™(�����"���(V��ӑ��#�'
J���0�> %��(w�Ɓ����f�dl��fG��m�r�ޟ~�n��^BL�	Ѿ"4�	
I\��dL�C��pfb���c�!�Ń�5R�lOh��0��P¡E��
j9Nh�8b��#��M�N� �dB�B��gC�b��r�Dd9CV�I�;���h�d���F�
o۸�O������@p�꣞Sc>�����k��� ᳐E����N�C����P�@^ᆌE
���
�gސl�B�����@|��<�:��S!�
R�Ԩ/Do�/�G
�[1|l��
�h��f�;��
�U:A=�*�$(j=��'o��s��背f
2�N��/d
~�~C]��'�^ �O�a�M�)^� [...]
+
�|
:���a9���z�� [ 
gBƄ>�c8�i
�8�0�	�:W�=�7�9�>Э�vc 4ۂ�nA��P��Au,��l���ȗ��Q����!��ѿ)^E*�T��'*�
d#d@�G��4�L�X(
aaV4�D{�%1K튢|O��"��Ə��
y��%��~G�nw�v?Dsdڐ�T�
���߳���`F�������5�}�E�=
�z������ &L���`�dcn�=�
+'�\��y�0���.��+\2lZ
�b憘���g�M�Os�N��=ɪ�H�ӞK{��*���+��y&��O�����\�������0�TAt�L��i�/���v�NuĂ
�7�u�cżs����J>�?.\�0s�}��Իy���m��9,��?-��w�n�og\�?�]�
}oD��|$u�0�R�.`�������a�̥�S�������.��͇��=�/4���[��/��[�$����ɿ��(�*�n�)�1w�����Ǝ�K�N�w����=Rv�
�<[ �7E�)F��$��z��".�5��,u�L,��Xo?�T�4�8˽o�����Ґ���17*�f�hiH�R���R�F酒���EM�s�-�3�ԧL�4'L]�c�;ڣϳۋ�d
)�����!�J~r}�E����o�Y��{|
�_
�y�"űo����2������k�s���k.�_��Y�B|Ʋ.���͊c����/5�K���9P|>w�Ϲ�%�V�Ke�
d�Z n)��J [...]
+b}��_�`߻F�ܽR����|�~vL�U	�k��,��W����Ty�|�zߜ����_��);�����q��c�����2�i�@Vs%dM�}Q	ỐOs���ڷ��YVp���3?
c>���� t��F�}i�1�\Ci�������
�`��m�r��kU{*7iw��<狹_��(o3~n9��h�2m���:oH�Xն�f�>��L�0 ?I����8X�UA)ғ`B(�@�(� =j��j�A�@P�((�2눸z�Q�	3{f��{vV|��
����>_���Nn��MF
��*�1&�8��xx��ot~
|��N��Ό�ъ�X��Qu�TY�٭���9�.}|�gWF>U�VJoO��&51�/�'��&������Tſ
+�NZ
�� ��4D��#/�C
+��
�+2T�Vk��r��R����tLg����ve��뢰%1Gz
�;ry
�r)R~1�)�ܿ>��Y��ƪL�a������&�K���E���ļu��s��->��T��C"�{٘p#�W��7��
ư�nA��:hO6z�I�w
V��zE'�:J��
�<ZY����$K�_ɗ0��!��Nvq�`Xa�
n~�na�?C�3��/�F4�\���U�(|ɺ�r�pz�*у_Z��o2}�NfF��xDk���h���S!	��Uu�]��"Lv�/⓫
�rA����*fIvSHA����y%<�?���\�fg�����=0_��#�B'�-��͙���:xwj��6
X�ԅG];	��Úc��Z�;z�-/I"l[+c
�ʼnn��yd�0�VZT�WTX��7������p^�Mnz�<�'�;�_����"�Q1�*�
�P
����E�&|I��с�˦��nk�a��a_�	Syk�^ic�MC�c��	��4o�8�D����[*�,�c��ةE�aI���Ģ9nb�2'E�fz)b�J�?�RDU��p|M�$T�W<mՀ�
�0ק��&0�wP�j��A�����b��
��hq�%�)^�5�>9U���*���%�Ie��Q'Nt=��h��/��L�@��
+�T���P�![
�� �ד`�]

tk��
�5��]�R��wҗ]&ok��7��B�ۣ�K�q��-I
�M���<zJ������W�Š��bGWs���EV�e���1ck#���IUJ҂/�� O��0'S��^5�5H��#P
[�:���J�zm��c�.�a�/��
�c
�.�u嵧{'_���ƶTD77E4w�š��r��C�M�C›?D� ߨD�nFU(��(ƿ�`�oO�Rax� �qC�� ��
�iq7����\	;��w�>�7�9�'��LW����B�Ȏr�0y��L
,

+�M1e?0Y�~�rD���#CdU��V��&z	0��_�@�]=h����x�V�r⸁p��D0`ƿ�ޟ:es�Z���d����j��J��h�*d���AC1��b�)VO(�P���
�T��{�k���n��~�x{�o�eF�g�C��5�='ݼio�s�~�)wC,��D쏹
k5�t$��9ǐ����27��zO�1�7ml��36E���|blՋ6�<�ȕ~
W�N�P0-��
���7��HP5�	�#(^�C�}l���g��I�q��LO΅�s��d?8{ ��&`V`ǘ9�f�
�32g�̠��촋�������#�
:J���R%����n�+Wq�
���g�C5(~��/���r!���Z�
�����Ɯ%�	�Y���g�f~�������,��"/��|&��x6d�t��m�G��U����nߣCnO�6�p�`��s���Y9P�@�
-HU�Y�.B�� )RyL�����R�7*�71�[h���P�)���,SOe�Nwe�n��6s�e����w,�~^�p\����O��;�Cd���e�.|�-���{ �2�!aYb3������V�������]5�+
ꊟ��J���J����M�Wӌ�V�}(���������>o;�6kb�������6ە/����a+~*�p�<@���� �k:����>� �}�K��ې���
���_|4���kC�:(r�
:�k���!��T��
+5�C����^���pZ�>}�w ����
<H[����_ �H��h�
�\�~�:L:�
Iv�M�Q�"��
+ְD�{P��9J�ڍr�w�2�
�I�u�|��u���
&�9��+m������8�)@
�g)�k ��H��
E�	vȜ`����
���d�YT�g������;Av�5&@ �$$$6!�)6�7�,����E*n8R�A
[EQ�}k=ť�ӊ֭�Uq��3_ۙ�x�;�����}�sr
pig0
 b��ɴA$�
+�ZH�2E��1ʴ
�J� Y�e�c������'6�PT�9����I~�������(����“��F�p���
[83ؘǰ�'�

h�iC���z��u����%�i�cj����&�v&���O��N�߃�Ѓ�`�O
B
�J
�π_�.xz��ǂ6p����0��~b�8A\4��u�
�xg���3��O�>C�|��x\-��,��@�0��Y��ï� ��
�������{M�;H
3��)�W�;��=%��w�Ô/��x0�ȃ�&��|�<B��D��d�,H�:��τ(}��
 Xi��ct� `�)����$���
�����-
�?&^[�?i���	>����T��h�\H>��D����,�Ku ��	Y�
B�
!�2����m��@���½V
"�i
�Ekn��ٓ�W����B�_
a5
�W���\R'��H#��ݘ�ZX�c!F���](�#,��2S�֛C���M��ʆd�͔dp�G����#v�g�&�W�߉�ڏ�ux!�px.��S	l�H`�8�G!�ք`gr{Qv4b�gم���D�)t�0� 1&�*4�����
_c3�f�E��;�v�7�{�^��u~%;4���
�s�I�\I��>���{7s~���c
+��R�V$4���e�Pͦ�2��4/-��!E:��
>&����ϵ|3
So�"j����9O�=���w��60���
��G=��/xߑ���I����;����vM	�+�3	��"�	��
D[1�`�@*��&��
��
�D3>�+�ߤ�L_$������~YT�|?����V���.���z}nF��s#b�{=b�wUy�wTy���ߥ�7�
Q�>��
�v&��c�	a$7���d�;3,�!7�#���ў�L�	�{�g� c	�N�r�����Pչ_Kh���ȹ
���&v�߅���s1��D
<}Ip"���X�ˀ���|�ăs8�Ép'�4!��
�ι�t�l2K�
%��d�s��o��bɬ��&?�$���3��K/�w)���|�*Ι�������=G�
�
:P�u�i����㟈�&L�U�w(	��dx
��C�I�b��̀B�	�R2�
+{ƛ*W�I5G�neЌ�eJ�ѢD����Ng���N�˽����
^��w0�5�@r�p_R�hh�
ɠj_Ȁ꘴?�lw���w�}��K�o�p���[b�
RH~6�[EFV�Q��lƯuN�������V+�.��Y�*Ns:���v(���@Vo���?��,�r���=K�%}�;�;RC��
˷��W�$�V���Cؓ�/��
M�7&wУ��(#��Qo̩G������0�6�N�X'3<Yc}�"����۾�|����sk�}ٍ�
��E��6��d�~�ޯ�Zz �s�)e����/B;�E
Y�́_g.���`H�"�{�dd�:}�e�!u�Ō��Α�m3�u�Qb0Re�U��qhE��/�r����y�
���5u�6��rڥ
Y=�̾�V�>�Z����Ȗ�gaks&%�C�>���_GT䷫I�+&�gR�V�R�ZfQ�6�Q�mv��>��-"����{�9�צ��U���[^��RZ��*^�Q�$ސ�A�.o��9wGxS��#V�D5�\�j�}�\�?!m,DPS��O��;��!oQ�z�R�[3���~:�����7
��S�����o�h���U��ڻR��]���\Q�o+��/]%n.Y'k*ڤXU�MY [...]
e��Lm
8���Ȣ�TE�g�Ǚ3=a>����~��s����>9
+�f���?pf�ތ���=!)�B�3&�w��7-
�����:�í
�T~!3߷���1��
ײ��~\��bt�q�j��ZVWdx�,Ҭ�d���X�]~a����t���,����^��}w:��}.()�;x{�����B�r��%Fe�T�
A�:�']Hx�
�uE:����L8˄�M|�j2��$�Z%�������&E������Ź�;���i���
tK+��L)(�I:Z㟘�
��
�7�5�Qp|�o~	��^���B���D&���}
��8��jh�]π�4\n�AG�	��b�y�эWY�oP|&lm��M�95q��U;
�U��.�p�u<�c{i��G��~[�b�.n.�.zS��7�dAW��m�(W�I ?e���ϕ@:@��F
+�� :��@�yc��C̪ns�-9竟�j�s6��@}�pom����)Ҥ���	5�q'>Vn����T��Uy�?��? ���Ȫ���=���us5:����
r% �j � ��8Of��.-��lH��a�^t�tz/��Z}�=b]Z�f��x�
�;���:ƞ͒G7(���=�����:}B��|B�F�:�V7�^��:��{�N�x��
+�۵ W�:?y�O��^T]ׇ�^+F�5);�ǃ�ѽAO��ﺴ�4�B�U\�ۘ�{�>�ȔF|rT�^��^��v�=���#�}�#�mJ�6'jE��V������H�]r�.�;h�H�O2����pl`)

0��?�c��Wh���-K�j�э��c�ǚD�&Zn��*���Q��<������ZG�+
2�[2��Q���)'��9�O7��^F;uߑ.> g�_�E�̟d�+��?Ā���p���{߆���L3�N�p�p�~����;	ơwRL��2,��X��
+�km��
b��>�����E��
!T�*<M:���P�
Pq�` �RGذst9$��Q�F�1_�iF}��
	�

ٴ,hd�~�j�*_վ5^�\#U�Z7�WU��\�g&��L�匩�_ߘ:���Yl���,y� 
�����| ��bB�C6Č�`ӘD�	�q3dܓ�a<��7
��
ߢ�
��s��w
�^./zO6qr��D��tↁ����I��Y�p�����"w��
+p�@U/ɿ�.?y �!6>ք��!�>����8�^��L�I
�d����l�T,�q*�+�N׶�>��~�LW4Ӡg3s�'|:D����x����	ꩻ��D�a5�`� ɿ����� |
 �9�_����!(_�S�W"�y֑v�uc8��aڽ���԰y��e=�c��\���\
�t��m2��Y���Y�pO�'������-�B�a
��������-���|P�&(P�q%H��ђ�����BW�
=iS
`��0�F3
1��
+Ә+��{X��Y��2kY|�u�S�����}�.?�@���O �߁�2����`�`A�a��1
+�5��Z���JTP+Л^��4#h=��up��,��08XKt0����Ļ��7�5L�U$�;��x�
 �#��0�%�u���j�}4��d/K�
�P@領�F)�AWJ�)

�(�� �t"�� ��E�ƖF;�R!��"�Jh�`�8����� A���hy��ǵ���H�s��q��'�*.Z��o�ω7r��,�ɖX��D8��(�g����?�E,A�66���0G
��\� �Q�J\ �����Y� 
?ψ�r�ȝ�/j����:Y��B(�>\E
t�1Q��B�0M�Ʋ�!Y
�2���P����ͺ(��EQ�K
���
�
�g�ij�oĨ;K�����x�
,(��R�fB�Ҝ0�S�D%
݂5�%���;��_
�t�߸
Jkx(i Z�����G�>b���9<��J��/$/��%�&��Oߒ"o�
�?B����zQ��o��3��4
�oh""�� U�t	%����B 5�@B
��TY�X8�V�
;zг�c�X���<��?���~��y���qY�A�:5[��tMި
�D
`f/���^	4�>��
�z���
}�����z��3u�����<�
+q�z�������:O|I��~`��V=���.h�`� t
"�7�N
�qQTM�
ֆ���AH�
��$2�Ī3�l5�c� ~�[�>`��-c����5��Sf��e��~��	���#Ɯ�}Ƃٽ 0����L ��	Ƌ�B��F	cJ���j���H�}�1�@LIJ�Q�z#r�߇�zVM�#�����ٳ�n�'A���F���}x���iۻ������n����zЂ�L0X^� �W6���!`�`���U8ߐ ���4|�3���-��5�
��.!q
��1�GQk�G�,�7[�޸��V�N���a��{��r�q&��Ր�ΗB�;_
y�4
����F�=֧#��TX`̿6��M�{�W"H7B���d��]�沼5_g.}ʎ�{��f�k"��f|����*�k1�vW�Z
~޴��b�.��#��"��	�t?>�1>K�g�
���O.Q�x,�ŀ���^
�`3����8�x�ػ,�|�+>I�q������峜D���K����m�%�8��op��ks=���}2f�43J>}��p�Iʡ��^�~��3 [...]
+�� =/7A�*l	7�)��Y��Q�S��ɜ,�#��9eN�2$nc�z�?�Z��N��5���ӟ<Jݙt�֓tƿ;iֿ3��3�gW:xt���+
1��T�{ܥ:h�T�顇U���]�"k��X�Si��DQ���L��y���9B���"���Zr��қ�ͻ��Kݑ��֞~��J�b(�fZӟӕ����
 �e�;ƹ-�����{�B���抵�#��#Y�nKuь�
]���OI�:�����Lƅ�V#��`��iW^�[��ܙSOٞ�����k�2�����Pd
g�3/3�9��YR���\���=��;��@
���qݩ�D�����V
����wQ���-��:D\
�zwy�e���"�S��ح�@Ln��(-�M����~�>z
w,��;XýȒp��>�I����dY>�-���-�\!B�Eݔj�o�BW�h���N(�Ԏ�}��ɂW��D�+�,z*2m;�x���B�a����"4���hR~/C���)�;ªțf���c��?���] [...]
+�	n����OY	x����b ��- �;��j����p�:��D�U�ʎ0��\2�������ck�Y�,ͦ�&k�\�w�U��Eb�ʊ:������NFQ���� �_r*(��VP~�[��|���(B�0
�l5�g>B�U t]������*�щvut�c%�߱�0�N��kc,�l	3R5n^�Ԑb]���P+�u�H�<D5���ZoaU������0y��,�h*(Kt#�+~��U}�ͫ
+_��@&B/�nc�V����}�4�I@��Оn+�@��fw���m!��mѦ�-IVҦ
�*E�S�\�^R_����ڋ/SPy����Ҿ N�����,v�/�
�+���oV-P�e@�ʀ�=�������
+�N�����ً�o�.�3G��\5��RuZ����;6���'XT��m�ڲ
�����%�ܦ*
+��އӠ���;���d�qf��3Y������7�(l��Ѓr�f��nE�v��8������w�u
9��zk��WHw��{b�J�S��:���;�s�
ݳ���
U�Wj��7I�KKP��c����ʫ�X�
Z��/�%x&�	��=�
p������6�&z�����a��G5P��j
�W����:j�L8��r� !�
	��!�H Í	nA�x_�N=겻�Nm����ƻ��T<PT���
+��V�.`�j���-�>�d����|&3�e����#3�0���x��=��Kv�H����U�=k�
�i;m_
<e�*դ-��OزE�m��e8�i0���,�)<ۀ�
��C������	@-�?+��m��Z���I`u�'��6���@�pqu�����
�|�'�QU��޾Y���'W.
ȭX��޳.$�ܠN+�
O)?�/o����
K�m
+M-��2T��n� � 4}px;�� ;��� �?� �h���WX��ZtLÛT+�U�.)>��0�p�t�n.��>��'�n�_Zm�}�W���
+���>H[�4�@o��Ƥ��`���G�Lspf=�1Z��e _��L�Rs��`6�`a�(�����nQ��5��
����S�≧���
3��JӾ��U��_��z�k��;�q�olc�oLc��9a�9��1
�5Rk)�C:�{��P��W�X�����\(n���vW(hd��Dzs۵����
�DQ���:�8[�3.�O0�8ĵ}�ݶYٶG�1ֻ�5]ƶ��D��\"ΡK��Լ�����
+��� ��*�/=
0���"&\Bֿl!���:�!�#��ԑ��ufq:'��:�	�;#;?�����:�k�Xݵ�&��$�F�$��W�1h|
�~��z�
�=�}?����o����� ��?
 ����n��3b{˜��XFӛ̊�
�V��sB��s��>�)�K���k�
����~���ׅ���By�
�
��yV������?K�v���@��x ��D?���
Ÿ����B�G0�qL�d�0�%�c�
Mc{
���x�g���u
7�v����+{u�+}u�+5=�J��p��
_���A���_F�9 �\��w`l7@�0��Jt� t�T��a4F1n�ed��8��
Y�8�e�bI��e��I
���52@
�cs
�'��?2���5����P�@�
`
��EԔP�\���

��1l1
l0�1���LF��>�b���a�



���c�<iǚ� ���o��ܧݢ���  ��r�-�i�1:��E�� @?�X4�� &�
RD��F�
d�Ojށc
*
6S�P�B�6��p�+��
3�辘��+�g�K���.��
&'x��B��:=�&���������~
��X�BE$�9��E�i\�^�CϿ��s-��G�m�\�
U��
#M�<}�ܥ�
�!��7��[�G@����`8��3�`�z,Cu

ʦ1�p�>�/��j����w�JRC����,�Hn������!?
����۞
Fz0�E�Y�f�&���\TO�a�l>/�r�*�	Q���D�('U��
�DE���
+�尢��O�\�\�D���E� �M�‘0��Qn
ƹ2���8_B���X=�&�P3]�
�^"°O,ߨ�[�Ve�J��ڤ��
RU�UG�/T��g�s⧪+⇪n�}�Sq����[��{j���VwF@��/eP��`}��\��z�i=u\Ԏ�c|��p�<�˘�VtS�~U*~���Q�V�@d��o�}v�5uv���^��
ͥQw5����y2�F�k��H����Wɕ(���a����z{�tG�h.��
�R�0#�3���{��g�$i��n�u��D�;n�ݽ�����ov�%n���=N7c��o��K;bOI�Ƕˮ�ޖ]�}$�7,5ƣSk<:�O�Q����0����-�m�H�8&� ���d��հ�d'�
d�X�dY�I�gs3e�]�~�õ�5NW7HL4�\��r�A�׭][�ަm}^���9�U�3�~�fݐ{S"�6&��d2:�HF'��6�Q7���t�̓ М���ЏyT�b���q~��t��[]͙i{i�B����έ�\Υ���M�8�t���2�& [...]
+u6~3p:�����7���?�M$!�q6�OF�ƒ��5(n?�`�L<��h�;��$��g�/���坳��'9}��r���羜)�XL�x�s*}���H3�-�)�������䩠Q���a�#� {�����d_�O��4��{�`�{9�5(g��}/���go
+
�[�#|Yx �ˏ��Bq]c�@
ﴜ�q���=<�+��QyOfk}�2��G2)��m���
Z�1zW�
�3�~pGڳ`K���ΏA�
`�D$K��x[�.��9D@|"|'!�K�-|��
/�{��⣰��]�k��C���T�q��<��@�=�W��x�
n-�zNsP{V'�-k�y5s:�9c9Ԝ�q�)��0S�[�)Q�����C$��5��;�x�}�5��?�l`K�
~�q���C�BXRG�ͫ�;�P�]�d��C�>q�w�HE��Ӓ��ԫ|�9��0��������;�F�zx5�Oռ��Q�Q��B�g�C$kP��
 �|��sKM�gZ;���

�>�
���
��.=�w�$�e@�q��<;eb�6��tU�!�ŕ�FQ=�.��Q#����U"t�G�r�
V��M�N��|D�#2���f�o�+)�
�;�i	�Dok�vp���a�2�v\wz�`Y�s�:�P{q�G�2�ˬ��6��d:j��H343���!Z�HXi�\�:�!�$;�D��0u��t����
�[�8 ?^���|��
W�A�
,�
�9�a��i;d8��;�^�r�ji��&�������F��7�Q��*�Vnbh
+�CJdC�J�,K!�)��.R.�>�H�_�R��T
+DQ!�5(�{�A��W
�i��e$�J
�����/�����wwT_��Z���I�q��<�xu�اB��/Wk(�%�����R�"W�K��Y��{��O#��o�
T?1e�(��Q0dkP6�	�;�`͈���"v��&'3{�@�x�1��Z}�&�e��j��*���BtB�/�S��PTZ}����.+m
�h��D��z��W?�䫿����)*E��2D�� k�~[� O�p� Kf�]- �{`��t�R�m-��泎u��.U�il�R�л�ZJ*�R�%�Ɠ���@���M����Fd�>ae�������-�Q�(��w���=|����kXh�ރ�k�}tw
K���
fW�vzoUk���%��ƜyTe��7J|�
E��ueTam5-�hf��t�d֌��W�	�R��UXz͏���eDL�5��
����;h���ϴ�`��!@[�+�{}	�=L۪�_9�w^ܧ�Hr+�p�ڸ��V�w�U9)�EC�i6P3�&�����4�l�
�6m�&���l���bB��&�fBdk�*�=�[\����?ޅ�;`�@���
���I�v0ʾd �Qџ�\ЛvPԓ}��-<��zg]/&q:+ȩ

Tv{;-�}�
߾��ԾΈ��f�[�%X%�
�1~ּ���i%� wpϿэ;��h� 0L9�n�(h�(�T�m��i�x��p,م7�q0k�8}D�:��b�|��.
Z.
Q���<Ƽ����
8߇�/�!�ך?��
� V��������6OT�b�����7(\����7mǻu�!k�S���ԛ\7�l���YőK3Zϋ3�^���N��
�==}�3�F:5��tj�O�$:��@^�<�w��!���;�;�j���� ]����'pW	��D�����K����M���/nEx�Š��ܲ����S˭G��<���<"��<Y˯<Xw�z�� �":ʺ�K
�o�R� �?���� ��P~@�=T����Cʆ$o�@�&���E�ی����h�ɱ?��s�ِ��(v��0��hq��w	ݸ����y����+s
�1���~�j�`������K �x�5��'Hxf�~�g���-�l1��v4!z�!j;���ɰ	�چ�(�;:{��i7m��!���C��G{��w�5uoq ?��$� �� !�	j8*���,�ɢ�Vi
���
t���Z7����V\�֊Z�<l��":U�cQ�Td+�y���8���g&���{���{����l������ְ�{��o��hG����J�_C�K����Q~=@��� S9�o
>�b�nV���>h�����0�-
<��m[��8�u{\��<Y�9?Y�9�W���<���<�'�<���}+��[��G��6���_F�����_ ��D��
0�w�	�F��B
ڗrp��WZp~�
N]�cWؿ�ew*�����0�/Y�&֪�[ֲ�
+��J{_�݃�E����u���)��
�_����; � x5x<p��f�

��R�ݐl��A6�X�/H1$8
Ę�8D�)#�"�73Ƹ����H#�7c���/����_��_"~�0�����w�!�
�5��%J)�ơ
+�P��cԃ ���P�uB�!���4t��Р!5��g�?w$��=�!�_
��v �� �/ �� ,�1�t�ƔiB�jaPN��"�%^d2�$Ʉ6�1�F�t��rl
t�2��Π;q�1�gP�Ϣm8��$��9��sh���&I9�$դ�CI-9K.��L:X�xC�	�#�ZuD;R��
BYT&p��͡<�C�<��$�d+�+�>r�
#?��
Z_#�3�M/�e�Ȑ��o�e�wbp��8S-�]�Y��r�N��aU�y�,"_�M|Tn'U��ԐZ���\&M�a�Sހ��ׯ��T��%=���

O�z{�U
z9�g�IO�1!�E�4�1�C׹<t��s!5�H� 5[I�K	�4���ӂM��/�-��cA������
��3
+:ȟ���@=eOR l��A?ꉯ'�?}�r�O����T�">z.
銌������hԯ-�iw
{���=��k�	a�������C�,�C�R�D�NئC��

+G<z���Y�([� ��	�E�7��i=�b�AC��\A�O��k�B�+���/��w��L��w�<��1}�?d�D������UEԬ�]�@�iv��Y����BQ�鍦7ރ��`A�b�0)`�$B>��g���s���Y�g.��/1n�_n���������ߘ�7�wϰ_�d8"i4���6�[4�X\3<����oq�%�P|�ǝ�C�s��ɔ;e
�T3�(�#�j�nC��Lo�7��>
�嵄�

��3�7%_�������A_K�n�^
,��
Pi�s����c�
?��\�����t�N��� ��
B��`��hD�SE�oOu̐ &ʡ'Q
�<��8���H�1&��FT��ȅ�?G|&�^(=7�ت.�Dv6l��t�v�S!{lO�
VԆ���!����������a���P~`*Z��p�����ӄ�qt�L�:R͠��L�Cs��R|�I��_��Euq��ӱKO�,���^&?����u���-�Ñ���
�#�w�6�N�/►*♺2�jw*vE�ME4ʈ�hn
+�ҵ�Пƃ�L#�#�Z3�p'S�2'2�����h�����,��ď,��Q ;��mu\�ݾ�U{��w����+��ig�a����ˣ��l�ns�ۧ.���eqhW��D>F�� ` �}��l��A�
��mst��l�6+Bx4s��Pz�d�\���y�ʔŊ��B��b������5e	Λ�]7�w+��w_��cmB�KI"�K�PU��v�v4���
 t�6�L睦y
4,����B�8��,pc��7p5�aFr�D{�̔�=�jG����|Ŗ��6�\�!u�Si�z�)�k����N>�*�ve�]]q�+���aM�LtX��*b7�2�)�:��F[\�B:��qP��?�Y@���P���U/�bT5?F�37Y�-g�UYv�|cV��t�b��Y��k2�5��X�2}�ۗi�
�Ӿ�-K;�4�����N�ҌA����^6
�r��u�	К�H�W?�w�|��98�/�#j8��g�>	�̛f����M
�-K�e�Kr?R|���Z����9E���5.�f [...]
+���iՅ�g�$Y�(2m�y
+qAn�$/��I.ovɒk�ҳ{=R��d)��=�����uM�aND�����J���T�C
́�j@ك���`g�>:k��Q;�k���i�Z2E]�\PUnZV=CU�`Q�J�V����$Y�N��M.)��g')v�'(d�s�8�]ٚ��&�3��&I*`�F�ga�4g˨�}���=�@W�:�Eh[+�������W��V��(��D�����V�erی�"�ԒJiRqì5�M���
���h�'
*o{D���ZŜb����'z� |K}��jp�v�A���H{W�A����L��l�:O^U��niC�a����n�4�:vf�Gɖi�Y6I5�5��تz���v�����++�ET�u���
Q�O��L���9DU0�D�R�/i?�
WS
(���l�����
BԶ۠r�W�~>���oJn�
+㬖��u1��D���
���m��R�U�j����Nau�g}Pw�5�n�|�����5s
U3b7�
��%z��Ct�}���v�=7�[�*�J5Pjfq�o
��Ez��
S:B���L�6�ψiO3�ڐk���6��V
��*Y��%]ֺ�)���s`�7΁-�
�Z�òf&^��l'��~��L��	��!�߽�PvK'�^�e�.=ӑ�#Af�'����O�Џ�l�=R�-�4�+Y֕m�Yd�bk�u��f� M��_���Os�a��k�%[F�~����mf6�
�z�����
P��(�h�U��(��(�H�"y�5�������E�/��_��f�m
�7A�|o�i���=�3�z���j,}{����=e��{��g�����7�>=���
f>�yz��

��
��Lwo�T���y���#@��D
��rH��!O.tȇ<�Tg�`�n��J���8��T��y��ʦ�
4�.8�e���}��GO����������y
b"�����

�u����
��kh
+:
d
������lX��a
��uF�v����m �H���~��P��;_��7W[<�K[g��&CO�
#�����ٯ�<����~#p;�n'�p�c4�}�����S����
�
?K;�9��0��	�]������<^W|1�J ޹�y^Y�y����F�y�#�:.#��#��NW?�K�~��^y�w�4�'���K.N��毛�7R~�A���}XC���(��{���������THoX at zS
+Ǜ����C�p+��WC|;�wT����Y���,�
�,������3���3����nN����A�
�_z
����|J���>e�|��5�r���
�B�<�����x�
�G���hf����L{
�'�0yZL�A8�
�c<�
+���0~2��$�o��򏁜a�?O��
@�
([�@z��0����F=7��
3��������0z�
�׋��z9�cQ��-
�7��ö́
�1j��5򄌑�����+)?W
$��ïK��(ۍ�
(��
0�`�
+2=�1
�	�|f	���L<�B��_�!3z���3:�B����$Ք���D�(�+��;`.e��
���3e�э)߀z����]" &DD,�=q!^d1	!����5�.BC�NM�Ĵ[:8�e��1
O�M[�1� �	"8f��1�

3(%u��c[��K���M9AΒ��w�>���m�o0���8qLJ��8	��ƍc��
��Gg	����0��H
YG6�.����Y�c�
��\#'���+q/����?d�yTSW
���K¾� !/�@�	Z�*�,�ʾ�H�HXH�Ը����ТH݊�8
�m

�ک����^EN�w~�
�����N�������r���Oq�w¢)�^/
 �(s�Hl�Cb�� h&�M+� _�
�
��<����8�	��x���K����K�O >�
��N�c�t�f�'
��HbG���Z dAC�6�=��|Gw��ѽ�8}�|K� ��ߑ���g�cr�?F>�c�!S���M���A�\�=��iO�c��Og�#��SbH����5�|'.���5Ԙh�Z��z%�B��S�E]�3Q�Dt�
�
�NSEW���G�-��M1f����O����	u?�Ax��
�}aM>n�ۓ�������O��_�)��S
�'
z��R�C�*�}I
�d+�d����[�}̛�~�?$'�7$�XW<
�.z�6�0��s�;pv*f}
�p [...]
+�,�I�����K�`btV
�`����Y.u˻��w5��2�U�&�߽6]��n|ѳ���
��MF<M�y~oz���I�fC޿���Ʀ���76�#�
u�Am��a
��G�����������-��Ƽ��\%��9Z�y�%F��jM���0=����f�a�v�o}����O��O�Հ�)�c>׬���>����~?l�������������\�Ȃ�
��a
�h<������N�;�:
�-4�	���˘'�����כ
�[

0X�4[���>��a�߿���~�}�'l��_���o�
0��
'([wb+`�5�
0���@hl�FcY�q��e��F9�
�3Й� �ۨ(���֑p���<�
u�}��ֽ�K�{BVq�
+n��n��
���
+��+�og�Y^G�-�=�w[�k
�
��[?�0^�c���_�t-����
:�����a�q�F�be�=��-���V���؝�՜��v
k���
��No
��o	;(�
6�1�'ǖ�g���;����͑ض9
+�|�/�=��7S���Ѕt�>��L�C�O�!�l�/5�ѓc�;)մ31�bG�ں=���[n�[��
c�m\�L�_�&X����'\=�*�����

1���X� 쁭!
�Bwa��0��$Ѱ���ѡ
1���&��T�,ҨC�h�-Mfٚ��ޔ��$��7'V94%6ҫ�V�ovZ�C�,n�KC�QQ}܈�.��K]¸c]"��0��I��i<d ����^�y�`�
�"�!���rF�Y3�]�yT�"�՚g�Q�f�^�`�MWsVK��
i��S��Ɣ����amr�Ku���o��䳮��w]�SƄ�T�קa
��I8
+�����
�F������s��r-P�Z�v���s��-9!���E�k�)�rkCFg�\k�tq�C�����-s�L_',����Iw�K�]uҿ�Io���q�ɰ@���p'��؋i��qꞀٳ� ����Rc�viy�]+!�hf�-yA�&u��JU����t�YJN�2ϮJQ�P����d68�f4	�孢By��V��M#vϓ�t����E��
5
+��*08Lz
�пd����cE0��`� ]Eƨ���Z�?A-E3ɦ�@�Anܘo^��fU�δѫT�KT�ܒ�r�8�α k�P��I����R���(�ܳ�7ܳ�^�r���*�s�1/7;Lz>q
'� 
A��R�����
:J����m(sEM�^��ğ�P�и�(Ƭ� Ų\+g�j�m��܂�RZ�W#P�
BU�QV�W���-Su�=#�*x!�Tc'�
�jLޤQ8�'� 
•�\C�T"�	��	�R�FM.�P1�h��a�,	1�(�6-+I���d���,[MQ���P�SV	�
+�;ej׻ȵ��e�=nR�q�4�ew���8]���,X\�i���P��%�28Z��2��
����X��N��vQS�K髂X���&�	�Z��:�\�Q-Q�g�9(J+��F��u�i���W�I�cn����(Y��S�
 ��üIw��y����pB{�a4�ܷ
����7X��FU7��(o�E�42
�Í��b�rkS,�k�lE��V^U�M�*�U.$W4	*�\��ݢX�q��0�����4��k
�3 ��!��A4�(AD�q���p�U�֩�Z���
+X+ 
+8"8Kl��Uk+���.D���:��Z��u�}_�Z���?����y���}r��?h��
<Oz�w��pf&p�{������|Πe�I��SaNJ >L1+�'Ǫ�$�;LZ�_3~�P�ec�^:A?��i�Ö���8�g��~����&�h�;���+�Wƒ&�^��I�>��7A�R9���
��{��u{��d�*`}��¬4=f�15�����x/��j\j�ѫ;��|�v���
������G
��X��{E�wϔL���m���
n�5�l�����%���$
ݓ�W��o�����y?���8�lJeҁ�5��29�e�g�a�:_�_�q�ڋQ�q���=�C�8���9N�w��n�����X���ۚ�]2�xu��j��8�
�Q�
��gCl�s��4و<�+al܃��?/
�b��, q=0���D�Gcr5����04/��"�����~�}T�s��{�r�e����.�r���,�E�v�ܜ����GD����������7H}�z�
Q�I���;��q-������r�i�9����Ѩ��
}�>�mm��V
⭱��5^t��Wt�S�Y����Nq�̟���X���b�ߢm��_�6����*m�管;�k莿+��g�s����'� 
��v���}��8 ��
���.B�-
��8D�z �6P��F	�m���m���m���m��dۤ�}���h���ͮny�c�!�xP:շ��n+�9
+�d�	;�������H΢�l@��@������Ѻ��EA0[T
�V%=вdKƠE�4+�+J�D��u�I�U��>%�K��ſ+�
+����T���
�O���ﳿ&3{���_3�[�������_�
�
���wE
.�R�.uC�K�ɗ�������"�����ۡ�r��AWY
�E	]��
omb�j�/e�?f�SX�hf�?�� �
rh^�U�?�����mw���fp����ػ��> ���p���b��P٭P؋!�v��I����/��3x ���G�������@�� S`�
�
+����j'hj��X�U�5@��¨#񥤆���5��kx�k� ^��]zB/�Hf�����
,d~Љٖ�@�ˀ�O��&���|P��:�t^��;5�o
+��@]
��a��\��:$�d���w�X���<sc���Ϻ�W��� �[�����g�Cp�$�S���HO2R0EP<�EY�,��$�<D�ߐ���~�!}ȳ%�.�9
R�R
�hͥ%���2h��N�K�+*��t�~��I����M��ҟ���#�e�!��Xb?!
G	��,�r6}Bɔ�ȢM��v�>���NR]����%�����
+RJ<Q�I��
hB~l!���u?B�����3LH�{B�̤�)��
!����mY��p>�:�R�p����U�u~�ߜ%
�H���x���]��/d�����Ϧ�{̽� �j�
	��~�O�9�^�D�.U��e�纍�.O<��Ot��c�
��BT���Pw��k`w%�襸M��t�
�����l��V�GK��f��#d�<3#�K��w��a��5,Ն�!]�j��r�}�v�a��2
v�7�Ἰ�}[��S-.��R\�
+�@��!�nӀ\!Cu�~�a/Z�lE�Y`<
7"
���{���n\$n������
�q͸A�h�?�����J�	�ŀ2Ey�uŹf�)�4�S�6��b*�B:U�l�|�
��	2���������ۚ�0�#�Z�ŭ���	�i��4�UT��$�w�T�9S��i��̴MuڴWUb*P��ԅ�J����c��
������
~�
�2W
����:b\Q���q�}n�E�%
��󖱢�2YQj�PYl��:e^��Ɯ�>iNs8a�r8�.��h����v����O8
2��
0��|a���j��|�t�m����GF8BF�"x�Y����;��
��ը&(�n��1�P
�O|3Bq"z����Q�t8
�/ǃ�K��G�h�E����2
j���Ī}Eb�'
{��c\jl!�B�!�$K�@$6�Ib�ر@��
�8��X$vl'�
�Y&��v��L��=i�&�I:M��m���43��3��{�y�9��^�+b?uU�L�$�L�(��8/~�?b.����J�Ϥ��T���J�>
�F�I��
��l��
+|,���Ki� #
ޖ�_���LA��YB	e"�d�D�
�G_���vQ��
����e�
sI��Z���OKB����/yȝK��3��kFJ0��}�n�3�уL̽�{T����
+���r��r\��9��f�W��
9e�AEE�r�5����� ��z���!֜l�=+;ŝ�\��2��S�����	����cr��0G��Y)
kX��P�!�J��E��Bl� k�d��J'�+RR��D�.0����ԓy����	��5���
���L�G
�a�Ÿ!�5�G�h@�h@�DЯ$���a!�0���\̜��
/�񨻍�(#AḦ́˚Ͱ�y	�4i�ӥr�)uQ�L�6�Wl�zU�DQs���=\��
,�
+����
{����xw�/\����:
	>�ul��G<�>G~���=<��𞍄��r9
��8��	�z1iV�I��E
זƌ���3�SZ�
P���J\ܞ���x"�Y|RԡZ�oS�'���&��>Ij)�{|K	!hQ<��� �0�*������A�-3�^d� h��E����0cJ!M�����aCq�G_N��U�{ʭ�.m#۩m�v����4�B�fFԤYJh,]K���N�i~�ɦ�[���ڴ߮%�'�7؇�� [...]
+ӏ�J!@xU&��K���>zpu�6�͘7�9��o=Fl��c�
�61�]�A�SF���4[˩
�
+���ʪ�n�X�;��恸J�q��ʟp��|����&]ՇȗIz�"���C�G�/�_p�3��
u�
8mx��
8ل���ǚ��y��RH��G�"��^m��Q�lF����Y]g�Tֵ�L�}q��q��:����4��6�Z�G�H�X�#*�qe�_k%xa>�}� g�6ּ���: �:1wv��w
�Ҡ�Mζm�֖Ljn=Lnh�G�;
+��-����Ze��ij�g[���nAYè��>_b9Qe5���^R��s|�^���b;�Gxa��}x��&ּ��+�?�1s ��[ܮhhw���~�{I6W*�֕I�v�FVvǘ:˩��
+zy{-�����ns�[��
+[gD����<G(A�x�sB����<!@x���!��=��������0�
 
Gܽ�������[�f���
5�HU�R��Oa�-�*�-�)�1�������U����uy�J��8�{I(w�����E2�g�,׿��.�/w�l'�	���3r�,��{a`z`�Dl�e��x�����$��!�v$��ɏ(VG
�c
+����A;=g��%�
pd�)^�g�/=vE��'�
�� }�	/}��J�	��z�:�`
�?7�
��8^�`�f
+��T,�||������
(�I*�r�/���+�PNi#��*��&�b3&[iRoC���yة�5�A�[
��S�x�l�8�:8��0wp7z��wa
� u�O`f 0��N��IP8ς�@���2�
��!�< #�y䌀�"�7DH�-�i�����1�����߿JK�ߡ'����}G�w���Ef�rÍ
`��X��`b�u
��� �����dc!#�i�9H�����Њ�V�IW
+IV�䔕J��;eߊ+bop$rO�T��२]��Q;���v��.z�2��,�c�)!��+���}s � @��O�5b,+�<*_8��5e���
+ ���wu콚/�$�'���!�
+�aG�J�
j#m
yH[C��C��/l�A޲�	y�������_!"�[{�e�_D��}d{��
 *P�t
 ' y
`�� ;oQ`뛌��]PQ]y��7}fPPi�
(�
���PP��%G]O,I�EWE#Qlh,A\l(6tQC46K�b�z����.�ݏ�wO�w��p�w���w
<���(v'
܋���H�>������dZ�$�E�,��,�si
�J����g����|XH�CBr<(d��s
r��뀯��hf'07��!�_��R�����:�W��Ɗ����2��B_}�(�VM��*
6U����	M�	�
Me����0?������;�ϋ���gns�e@�@�Ӏs%`�����-T�MP^q��7�W;A�T��(���ĉ�ff>X�x�kU@�c^_�� �c?��\��p/0��Q�z
:��U ��� �e@�+ �n:Ԥn���ZpC��͐7�݀��3��!��/��o)�ca�؉����?�DZ��ڏ��CK���sw�ُM�>��0U�﵀�&��Ѓ�
)yo
�c��������ܤ���Q}�E����.>o9����G윸�����x�~�Q` ���:�ϞWX��x�}�ͼ{�~��⦆��5i`M��󞬉�"��C��FQ�
��l�`��.~ �� �<_���
��@��]�Q
}F�i
+ͦ��Iٴ�6�6*��TL'���;<�wx���Pß-����l
�٦-��/����!�9M�J�%��rh
�S�a�޷
�q�%��Rճdo��6z�'D+7�l9�����/�6B�B��Ih��Z,����=�eB
3�2��X�'(ar9��
��!^����H����3DG�����z��p���t��s<l9
�a��4	��3�F=��@:^���\��'���WmB�� �T����~�mU5n�
��5jmjt�6�����2��� њ��.l�?�%��I$�?�K�Qxj����0
�
�����
�qǰ�
p˰7
�Pk؏�qT���!�ۿ��@�IHT� �ӍLMD{;���m���
^
�hp�g-{��e �;�m�1���j����)�N
q�i).9}�
Nkp�y�:�@��^T�
E��y�lyW*s})��
+鈛��݄�p#�?��(Iё��e=>1�E;w<��;
A��&W�
�E��8�>
U�Q�1�=�H?y,�NxdJ�<��2�u�Q�-R��.�����i������OeE�B��v�W��jz���/�+�/�
x����=�K{+�~�rK
NX���2Z*�L��-��!K��e�l�%]�ϒ%���#/����X
+�|�*
+}�)v�\Ul�Sl�}����M
�bc#�?4esZ
�4����tU���
��\q��/���Q��]�}��IE�cd�����O��Δﰦ)�[+�ZW(7[sU��ͪ����
�#���s�5�����oP�t�U]�*������60�>��k���t&T�� 
��Q
�?w����Q�=F*N�m

%�
4N�)h�"/����_���W�f�Wdkr6h�vج
�o�"�nY�o�̠6AB�m�А�c���̿���B$�Q��~<�)p0�
Ea
�W���
���HiC�x�ڰ��ܰъ��_(�{NV�
��^
���
+]d��L��k�$d�>=�H�(�aAh�a^�S}ZO�#��=�vn��4ݛ��jfWpj/�s'Ϡ?FJ��׀�7�G�bCdr#�H91�������Pf�
��蛤^�'Y��g����i���3l�z�2�	�h���8;��8�������R�}J_�#�6{�܎ ~f������췏��l��:l�v�ژȉ醕1aRVtYFt�b�aʅ������&-j����i�ّ���"�
)+�G�7N��i�q�4%�Cr�c��G	;ғ�=�F���� ��Y���c�P�'p��Fn����XoEF|��
�O� v�"-6Q�͠���hfL�ΈI�M����=ߐ
�e�
��41z��W�
����CR�[c�@a [�5{�砚}>�������)8��	
+|�`BV��
����`)-��,5!Z>���ʔ��U���L��M����
7]?1n�ݗ��bW����q\�>���r�{�c����
;ғm��|/�����#Y.��h=?g�o�ÌX<�5��/�e�����
��
�GAk���!�
�#@� 
A����z at T�Bt]O������Za��]��-3�um���n���~���L����
_�|���?��~���i����扫t�$���))2k���89ǹ0��Ւ�J��T�2k7�gk[=Lڃ�Y�S�L�^�&3iH��$���%Q�S�����{��
K��r�ٻ��>�5��`�:�d�1�U�K��k�R���$iAz�c~��97�⚣[�X��Vu���

����'4i��^�ԛ�4�#u�NpK�	J����?��sY�Ij�����e�C?��1���4�Lӱ��ظP\���!?k�Ԝ�s���r2�\�
V�A�Z���w��mꔌ����5I��^Z�
��Iz�-Y/(�b�k���ی�8���(b��q��1;�¬A�y<��/��
,���Ź9�$�9	RSv�,3��_nvI_^,י*�)�
nZc�:Ѹ�#��M��&�����x��`�D1̧���L����ڿ���bI��c���HQbQ��`
,��-�-�)�,Q�L�R}~�,=?�15/�99��U�W�H�]��������k���=O�yƘT/6
*��5
�a�pݝ�'
��恥�.���8Vr
Vb���k}9%�`*	BfI�H_�P�f���Z�I�W�ɖ�09%[\�K�Euʘ�-n�E{�#
;�E�<]UG��
Q(�"
ed����\�g��S���V�k�z�e���r9�*�a��GF�4�*CD)��⤊E�Ċx������L�ūr��*q�*��/,ۤ�_�[^v�-��,��-��*�TP�[�
+m� ��
t3��� �[k�7ֲ�!%u����NH��@r�Xh���v��或�E�c떈cj����
iDm�lA�
+����sk]C�[�WQ�T�YR3�YsW�Z�א�眧'J�#�o�n���
X� �L�m!�Q�%�#�41M�����pQD�"т�qx�N�hrm,���X!
n�w�ݰ�yf�a���^�
�̨��<c��<cY���<���:z@�-��[����}����,m"[\����mc0���lA�k
E�m!^�ŊBlI�Wm�,[�$�V&�޲�aZ�M:��lJK�,��#Y`�w��m�,`+�"8s�9?B�6����n�f�
(�	d�҃�@�^`n���J�n��,��쁘a����9x�
�i��0u�S�-쳊&�k�������O���/�Ƿ+��g��
��o�s���~��dܛ[�wq
��:hg��X�1� 0�0{��RL>�¤c>���	
�x�c&�;�b|G�:1�S�����Y�Q��1��
#:�����������A�s�9�����|�������

 ҩw
X��=|�}鄓���2�v����
��q��~	�� x�́GO4�=ˠ�5½�
+���P��B��E�E(z�<���(O=��޷��z�]ɸ-��w	"N !���
���t�;��<���
��J��i��7N}���7
��PH��I2$�9��CԿ����p���;�����7�q��BƝI��S������
��
0�"��@�!�tI�e���Ko4pe"
�WX�0��/�#�t�pL���.���#?�o0�5�w1c�b��z��x��;��~����~	�3
�' �M�J��p
�T,�=�/^`Q�|9��Y0�y������\t��$o�>r�|O~|F�!����Dϵg�/P�d�c��E]� c���An�ArKĂܑ���
l�X �� �Y,?`���/�G|��b‡h�E��E>{F)�[6S�Dϣ�
̘.c�	x�6o�>����&��w	-C�}1���<%�ă�=&�Y�E��y<�����N��
�>Cp
�m49q�42�,&�$�� Ud=�LZț�N�r��
����qO�?�/
�
+����z%q��x:�)$�D-�"d�%
d+�A�Pg?u�1��q
+��
�x����k������%w~���A�E?4���t�N"��|G҉�X�y��8�&>y;uvQ�
?� u�R�8�ۃo�>�?��pn�A��+r�7Fx@�q�nT
�\�9�C�41$���[���1�j�l��f�4�h���:�Ӆ/��u������<��;����H��T�}Pem�:�X5�$
�p
1$�$"B<��x-�J=pQ�깞�jkkն�V�c���uW����m;�
뻏��:��3���̛���~��۴�o�7(S�韮W���_'�}Ք%�CC�P>"�QmCT��oB
+~�Z���C�
�j����]�����
����FҊ��6\�l�U�~\�
�_��qQ�
�
�B�Y��OU"��1J����� F* �!�zR}��/��&4��� w�
|���kuW�a\Q�Ɨ����#.hV�s�|�يs�=���1|��
Nw�'#
��k"�uq���
�
b
���
$?��-2�z����p��۸�%W���b7;>��Ź�U8ӽ����z4�Þ�8ٳ'z���^m8�k��:�C�O�`�k�����O�]�"���_�ǘ�٧����1�-������O$.E������&�꟏Q�8�Ñ� EO���g`�
f_�BfO�r��2�lav
��lp��x�ix�m��7�1Fd7�w_A
B>
��'����

]��8\�Q�|L|4h��9�'�6{�6���`���ٮ�f:�S�-ڙL�v.�Y��ݤ]�n�nb�kwr���ܺ!g�5C��V��_>T�-È��G
<&�w銿6��Z�Y=��[|0,��Ga_�p�ҍ�6�	[tyجs0�t%�z��m��u�:vMl�*��[��/�m�[b�J���,ѝ�.�ݒ6�x,m!J�?���
+O��?���$�[F�M|@���380J�]��b�^��q��!ވ��,fM\�2��]
Wʶ�UqK�����i�B}��Y�HҤ_%��o����5�O��W�����̸��񢔐��O��%R�k�L����!jy{�Io$(�'ClH��&���$�%���IfQ��mN�pM���<C��c���6̔6$4�f&,�'��OK�!�O8��3\P�
(�$>�$�2BZ�
+��
�P
��)Ҟ�s�=�n#ڌ2��tŪ�h����1hNMa�f3sR����N���a��C��1,�36
+��K�5����e0��j��*`��
+��G11E٫�` �S�g�����~+�O�fz^��b�)K2��9s�G�1s
Ӑ�����c���
7_k*�ԘҐi��:�A�/�OL_��LoWU�P���Q����*�L��,Ch���>��rp:���>�i��B�z�eE6�l
�r��1�M4侍��>'������d[�P�����JY�Ҫ��2�
��ܤ�W(��6u�y��8�Ɠu��E����^�W�(�6ҜN`g!�XK-	�5?O�Y�=1#?��o�v����`��
��UyvΟ���-R�%(�Z�B�e�“�LU��Q��ݭqZ>�8,�;9,?�
y�™'ʝQxɷT��d�8��Gڳ�����X@~�*P`���ڢQ3a�6=�$��fb+
+rٲWZPėX}�5 +��	.k��a]��[׫m�]���NV�M�_j�UTXE�
�gܤ:�![G������-^��]4�:��u����&���r�D�����i�י�;�����

^��Q%��k�}��j_�
ooU��wj,��\�u��b�����3���^�

��w��Y� �G���r`���C��3��}Q�ye

��1L��ȸ�f����nowKlE~���F�/zGn)\��)\��*ܮ6���,��x�2�Js�� ��KtNR�S��*�4~�$�'���j�+텒�x|�Q䋃�7�q�2�	���t7���畖Kr�!Y�w���]���Q�{;Tiޣ�T�ď��Q�V"�_ <�3:�S
�P��4v�������N���O�~%��npUF�Q9�F����X�Ҙ��l�Ri�r*
��J�$�?I���R���F�*Er�Ve���*�I�X�P�T!*��E9!�{�:��;)��`�Tҝu�i
�/>���aB0�H�������1șld�B�Lf(�5�
\Z��O	N�$�I��2Cp�0��]
<��^P�U� ���T��$
+�Q��S���o��&�7
h"i4�L#�UOs
��:
��{�\?��a0�G!=���p:c
�0��66)�a
�~nL�>���\�yT��Ɵ��3,�
+ʦ0
�'�-Dk�$F��5
O46�5"�eE�
8���H�pj�%�����&*.��TӨ(1�>
+&������y�{������E���
+�9�^��٬Iθ�I���&9]h��Bm���^��]�u
�
KY�+Ǣ�V��w��dX�'���!-'
�Y�0�����0������g
#Y��T����:Ga�f)�r
+�/�lV&�TƜ�Ҙ�Xe\*T�%�R�=PC_7f1�&��y�e
Vr���� ��d�ia���=�����H����>}��BR�8�Ο,�$�}�o�ɽ��X{�
c?&�ؾ�c�~RĬ
�v��yw��R�@�Դ���`5�G�Qk�׋�W�I%
0��PCi4�K��+MA/�@�t
C�c4b
嘆HG�;r�X/us��
�����Rغv)�XH�k�����}/�q
�;�z�8���x���@�M�i3_�pz"©G�3�*�ViDhe
+B*"�r8�*Ǣk�$T͆U����[U}���V�<��B at _.��S
}�YԞ�qp
+5�Qod%0�0o��6 r'��Է�%�\:�+���2�A�v���k
<]S��ʄ�e��Ue]#9K�@U����
�{!�m����y�`<5��X:x�k���7 A�z��>�
��RS0�\$1θل�y�Y��<�n&� �;��|�&�y@�/�a�����r`:}�@����O��=@��@�A at w�:(�����_��h�
ʹ�8C;��2na�oa�i�&o��-\��
���?$O���9_H�g� ��F��W� �
���c��$��9�ϒ����j6@��Wz�BW6���
.�Ao�
������ʢw����^����Kr�����N`���'��N��f���nu�N�_����_�o��JV\Wp(y	��es̘|�A%��zp�v�ccp���>��&�7V
lc<�.=c6��$�z
�=�0��8�����WO]�
Թԩy��$�&ߓ��Bwp_��<�v
�1=H"a�,h�`1���0肉�g�0�P�B �D�D�*N�@�#3I�"����2RN��N�@��I<�7���>F;~�v���[�.�vB���-�ӎx�J���d"���%����"��SB�
ԩ�N
5j�{� �q���|�˿�C�?��N��?D_/����b"���Od
+�fRg>u��
�p6�Q��)����\s;SU�[��wh�W��p��}����+�\�D�� �Z��BӅ9	����H^!����M�?Ө3����m��&�SǎXC
56s�jn�ݸ�X|��8���%�:�U��j-��
�@o���X� �^�z��XH��o2�
L�7�7�Z��3�����X�
Ȧ�
+��󸮥F5*p��hf,Nc<�Gi�a����&
���U�nO�G;���<#pW��
+
.+���m�W��s�)hQ��窏pJ�'T98���Qu�KpH�nu5��uد9��
����:��P�#�"uO�
+�v"©
�A;����*<�
��h���?��p�{ �}���X
�N�!��pkg�I;��,��.V�U��OuEh��u�]����.�)l�����m�
+p�-/ XbEw
�(�K�e
��*\�y�>'���Y@*������o�1�zuAS�;hv�cG�bl
^��;�C�Q�	��T�6`s�Ql
+���n?J�p!���!��
"���'��,��Y��<���
8�}�h�HBm����cj"G�:r<�Q�Q�ʣ>Ħ�
l�Z��D����B�4z�T픊��51n�(�T{G�����U
HOi�c�{��W����T^o}�kd4�h��g7��P���i�h�2�X8
Pbx�
iuB�T��#�'�I��b9/a��2a��"a���xF�q�-EN�cEv���:Y��=��k�=ן��@�|��U���߶�^p�Ħ�X��cBI�Xc�զQ�7���4QZe���k�!�0}$-3-����r��P�e*S,1mU,65*�N*$�Pf�)盅"���J��C�ơ�q�s5�����>��}{`�%v��,iȵ��2��j/e[&IK-��Ŗ兖
y�%[�a�)�-%�y�j�ť��e
�y���ޙ{D
�K]
�q�D�pFf`��f�����D�
+5.�K�q-�5z�X��Tk��Ĝ4�mz�5m<96ij4Iۓd� 1��w�=�<��������/�*�&~,�$~#�$����h���������he��3x��9[/ �
��)�I?-�8�7��`�s�l�ِ'<kp
+��
q��J��4u��4�����]R����՟�+
o�z�WryjH"�>
�|�z�e�m�A6�G�#�����ulI�����1kLs�lJF�ɄU&��3-���X,V��U�ZM��I[a�(�w�
c��m<�+1�
Vl�
y�+6��"SH"���?�7�w��g����:x��u�H?6�#��<
M�Xm�E�%��4�X2�E�Z�
+�S,7{�2�
+�ۼZ[b~^*6o�]���B�e�Ka�?�����L�K�^��Z�e��}%�s����4���k�ah�E��I�٦���*�
�t�۲�m�Pj+Kl�b�ͫq���ֵR�u�l�����:��l�sm�/�Ԭ��k�Cz�����u��]˸9��D�q-빮�l-�#Q���W��
+eʔ$�#J�L�HY"8�X���r�]���+~)W�$/U~��Q��)ʅpEy'<[���!
����܃�Y����ż�1t7����|�ۊ��Q��B��Ru&����T��@�
j���:�\�L��5�
�IRԀ�Xݭ�R��Y���Vx��O^��YՐL��ܢߗ�u���J��@�o�/��K�} J�#Pd��c:�9��p��HG�#KP
���X&.q�5َ�,G��jo�2�;u���q.,�q3l��>�����P/�����^����0GO�4l��^\N�G�V�
G�3
+���w>�<�\��$丌X���]9�b�C��J�L�Wcq�Ҧ�6H&g�lt
ҥ�^ե���Ou��o�4gH꣰�+y|'��{������X���[�r

z��TB^i$��1�qO�➉ŞdyRa�X���,�|!�S$.�T�FO�&ͽNkpo�R�
r�����F��I��II��>�KB�^ޠg�S�@-��H �z��������dW
BV�HX+' �;
�<��)XTe��ʆ�U��VU(�eb��NL��,�n���
��{OKqޫ�)��ڸʐ6��'.��S�8\�>����8��4�ʕ�]
�
\��n �
��~
�OF�o
��}�H�Y��S��s	>�����Ź�͚پ����S�X�[�����hb�B��ڟ8�
t������f`���5�
���|?`��
�4Hn���X�<	�S1�?��$��0�o�
.f��0��f��i�������8�Y���c��c�
�1������Q����u@�fύ�C
PD�3I&s[�1�ef��ƌ�hLo��i�q�ڪ�3�fL	(�
(@L�
с<
؈	�=x*�)����`|�W��
�~���K����wQ{s+=��o�^�[��6 �Q1�L�Lj��ۢ0�m,&�M�S�X<���`*�30���`1Fk��Z��ن�;�aX�"��FԎG�=�a��֐��Q��e�۩�B�F�T'������%`�^ v�����>�ۣ0�}
�ڣ1�}�t�'i���;w,Ǡ�F
�؂��
h?���[?�
�
�C����Az
dݛX�'�$��b��_f�1G�
�	D��qrº����+RW,�]	�Lz?�]<X�j�z�bNt��x��|�M��=�|k��[=�tw yG��_ )����h�I�
;
>
�� ��|��d8pa
�D8�vs ��0��C���K77[7E.��
̹��3_�oI��
�}�^��3��v�i=�E�W��G���A� �
�a�:-� �Dr �:���0�������
3�G�_�l�����]�B���G�>Z�{#=�`��7����ԧ�_�_��	D�Q��ԾI�@�!�j����{����r ��a�C�я
 =��aO�p��a���Ȟߓ{��G{]E�
Y�bj���٬5����
{�����#����|D�c��1=�GO>
�g`�|C
�x���/y�=dO
��4��
r��j��b��E �20�*��;���o����!���"\>�'u�g�_���K�H�
���2�������kDT��}
**	��EZ��n��nh���YDQ�A@����B"2��b�M0�1��rRV&N�RV��8ff\*5qܢo~�T�����������{�=缤O~���l
d�!�H����u��'3�en��� ��D���ٍ��^ӉYD���d��d�"�d3�Av����t�S�"�oq?���x�W���?���"�

����~�
�1�
1�t�K����l�F3�`'5ڨq�s�s
��g�#>��mj�
O9z�<&�ȿ�?�eg7�N�
�&��qd�OT�@���E�ꬤF5j8s#5�P��{8g;���V��!}� �i�_2�:���2����G;C
5��ķQĝL%��_AԌ�3�s�Ө�C�Bj��F%5j��H�-������_�'�Q�B/��/�� }� �M�oq�~�$7� �
�/D��Ác�
��9}�r]*|=�c\|
ur�QD�UԨ�F-5>��V���9��w�d4��o鋫��˴��
���wi0Z�"��6�;ٙ0�eG'�\�;�k��B��q�5��J�N&gͣ��p
�y]U�
+��D���h���9��Y��ВS��G|��k
w�ql���C�y�e
����
����o$O�^17�����x�
��Ұ,\p��9�b�u,Ǚ�U85|z�6�S
�9�G��#�qGF^��Qߠ��1�]��
s�h��!ȓ�����x吻|��!�+�ȍ��p�y~���.��
��)�D�pM�1�lt�-C�[	:����jt�mD��6
to��O���$�x�m�
��}��qo�c<��6�WL7OfRߛ� 7�0
L.Ot�%wW􎝆��|�=^��	�����
���}��`��M.�k�:�-S��cJ
�O9��S��y�l�v
M�=D��+4x�B� y�4�����������O3
��:
+]�&��s6L���*���g��sf2�ϴa��R4{b�W��*��U��Y[Q?k�P7�S���+��}]��s_���\��u��S^���}�)����ZO.���;�
��v{{b��s��%�}4h�1��'
>Vl��D�o
j|�P�[�*��B�o��ηUX3��P>�G\=��X6rޏb�|Y,y�P<��\��{-��]�~�t���S��\ `�<Wl�?Mz�a�?��T��ӡ�ψ*?
*�ұ�/�~�j�R�̯B(�oJ�w�E������}bA�]iY�b~�<@����}��6�/G��d��&�8��o;蛦 g��G�B/�*h>*�a�R��J=ʔ�X�LA�Ҏ"e��BY$,W�
˔�b�r����+-]�--YtI��#e?!��,�C�G�߈.1��0�vƲ�1 -Zָ��.�	U�c�6��C}P�U�T:��(P��L��<U��TU �ʄlU����$�U�%[�)=�"-�"-��"5���.�#&���5��
����C�����4Ўʈa(w�ʈ)(��F����5�U둣�G�:Yj�`W�	6M�����4��U�*�h+�"�*,�_�(̑o$s�,Y�!�sG\�{��k3{
���|n�{
��kEG��0j"�^����m������`���� M�.��r��
+1Y�V���%�n����P�G�Q��o(���D��1
r���q�)jw���ge��g#߫���v,vF��qX���L�l� ��C���D�ހd}"�
��Ő-$�
	�r�d���
ۥؘvEL�i�!�B�w�Ȓa7xP�#����} ������v,5�@f�2�Ӑf�ո ��`X�j��#1΄����)�	�q�D��Fԛ�JѦ�
+��G�5]SD���2��X��{���sI,���βoW�Lj9.�]��Þ��7�$L�%a�#!1��p�%�`4kN��l��<!�\*j��b��YҘ�Kj�	E��sE��>y!E��_H�����^����X���<�j���
�#5Y�%�	�`J�c�/bS`H	�����D[��ZӅ(�RAc-"�Ub�u����B�Ǥ��+Rp�R��9����_���P�p��|�	l6�
+�
iG}�dc͝>
+1�c��x����@k[�H��b���[f�B�+��:q��#1��&.��헥��{R���h��2�q��<��3I��+�s��#k��v���x�a�>�Y�=�D��lvBP&-~�����,�"d���%�Ğ�X��VjI �5bԴ�c�1�Z�i�C��vZ3�\��o�1\r�{��y��{����lb�>Kz	�4&�Vq�.�]#�4"!R�hX�0�&>������'����dӀ��~��M}��̽������5G%]3G%>4G%��V��hd���e�T��>`
+ 3��8�E<�gTJ�&;iH��bR�48%LS�h at j����T����6Q}Ҧ+:m��Ҳ����+���3m�),�)t�USh�Sh��d���Ar�Cc#����˰ 
Js��z��2������gکO��zguStV������_ٱ
+ώS��	
+˙�М��SP�E9k�S+��c�͹,�����2L����/���R��X�ݲ|އB���}��0��	����f�8*��]A�
+,
V at a��
��Zƨ�e�|,3�mIU7�"u����e�<-��\�Ga�<�X����|�"i
z˗З�Q�bjP"M�1+�X�
a��F�J�Ե�C]J}�U"ϲ(y�
�{�H����k��r)O�sy��)/�S�f9�
�C�y9�~#ǒ�r*az.nc[
5(�X��hda	�V�>���c�F�g��W�A+%��r�:���!����-;k�l�q�l}Q
�3dcMW���2U�P��
+#[y��L���@��^�R�E7�_W�?7Hq�؃�R�)`+�5�o�
k��Tg/S

��
|�!��adg,���@���PՑX
��uw\
����xº2�����s���/���)k�S
+܍>i��
ޖl�oaHa1��~R=Ci}_�
CP
������o���,^�Ç���<�OXI�-�A�	��Gh�Foz�<�^�Òs�dwT2G��vN�I�8E
�a�g0?�:Ǚg
+�hrM�@-�H���|
-�����/�:'����
��֣��?��<!9�׉���s����������E
�%o���*q|�`�	N3
�����sѼ��&�'����gS���y\��1)�
�OI
����ԾU�C�l'F
h��§p���Ĩ}�j�0,����]��o9-4�^�W
B-�I
�|�r�v�w������뇮;y:\���X�J��gp
�_۪�p��{f遭�=5�����b0�
)�T��@��63��8=��
/�0q�L�Y0r��C9�+l�����n�׿(���O=ҏ�����w�v���Wrnǥ=� �
#`<L�7 2a!�/�c�'�Dc=Pڦ�[uPt�s��3���?��v�V����Fk
��������"`<���g::Ih��;e��EEh���*֯`�M�����b�Fݤ�u��r[׈���>��<ŕ�l�d�l��l����j֟��%��hMFg&����9��G�E�q\#���d������G
�
�(�+t��|�+e���`؛����
�=�vE��Hr��sh�@
���:s��t4���C����j�Q�N�F�i-��
9�c<u�j5�Y#
+
�Էc�b��z���;��#�w!�`��sqQ����D�ʪo�1G'��
�8N
�!�#Z��kuX9�z�Z��{���K�B����A�S���y�[�x݈�:��5ud]hA>�֋]
DN��g
:��C�GaoA:���N
:K�(g�Jm�5���b>��
�i��-m��P՝
U��|�Ǵ��
���U�����l';���c��WC�(
�<D�l��v�vڽ�Z���n��dm�����
�ѡPV�bU;�U��&�wܭu��Z��;�r��r�G*u6���P�S<B�+��������� �'����I��N���U��	��~��2\�\Fk��
�r��
+��Z皠�n�Z�6_+��T�[�J��U�^�b�Z-�8����U�ק�ty�������k�şVۓV
ɵ�׈`������z-wV���6z���k��u���F���X�vQ%ݧh��
-�N��T-�Β�'_>���N�z��M����=�~W��O���2��|�u{�7W� �� � ?w1Ԅ��Z��Y�����?T�}�40VE�q*

�����
zM
�f*7h��+;8WY�E�Y�y!�
�GsC�+-�)%�)��a��_�ڸŵ7�+x(��0fl�#Yi�k�͊P-
��%,@�=#��� ����^���+e�O���iJ�WZx�R#2�
Q���>�����_�
+h- Z�E%�Hy!�@$� 	�$�BТm����������N�!��Z��ҭ�͵
{������3��n�u;�֞vN�Z���!�~��>��Ͻ��`͊�O= �S��&��'�,V��
iw�� �$���uL�s�������0��^5���K>[R��)�G{Z
+6�g�-=��X�a�ڌ
+��pŸQ��
?|�mX��
��
+o�^��:"�Y�D��X��\�f�!��U<ຒ�����X�`�d?���|���lΞ���H�)�E�k�Ӱ:;�9:�rLh�)GCN�9u�����]���Q��-\ʰ�Q�j�IY��̡�T�P/
*IT�80��Tf�?گ>����8�b
팣E�5�yhV-�O�

j����
Q��`e�
�<�y
��[���v���&*�w
��_�4#2��]Y��&��H�4c�O�79��rZM;렂
��Ʊ��	�_3
��9�j���&c�6.�N�
�:�t�p�Q�����æ_/��'EY�QZ�'�
�̆wd%��["�G���+��
���?X�u ;i����&
}6��0�(�
�Ӱ�9
�lT4�
+a+,����ƕ(5�`1��h�(.z^��ɊLC2�iTVh�#��H��Ec�[L��y�B�~'���Z$[��s���8ܦIp�f���
+�b�L�a5e��X���X��0��QR�Bq�*�[`4����(0z�Od:�y���c���/"ɴfI�����J�G�=L+���s�����3���Y&Pa����0�J�R�
si:�K�0��PTf��̊��ʽЗ?]y��X���}"�z\�lo�T����Be��(����me-�r
��A/�{"�z`-���]c,�M���b{,��KQhO������|�+��U�A[Y��J�*WC]���[�:��l�1�p�YU�D��+~����g9��� ۀ}M���.�G}\��fN*Kq�C0TGB_
]�"hj�!�&y5*��P9�P:+��Z�lW3�
�tu�
W�H�=*�gDj�U�O!wIB�
�F���s�/Qw�Z��ǀ'Ɇ5�y���0�(�Ȑ_�{��8���C��A�G�L�	�V��;�V߈�� Vx��2oR�/#�{Z$y� ���H��D�G��qK�U��(���=�C�$	�s[�*�e^
�O�o*2}QH��GZ�"țR�ڔ�M*,o6`Y���UHj�"ѿK�[�'���?�����m$4�CB���$�!�s����;ڹ��'�Z�g��[#cR3���	Hi�@R�
$��bi�,i]�G[Xܪ���		;�u�
�Fl�
�1��1m�an�%�
�¼��"�EB̺1�q�}����~��ux��@��s
`�3]�9 �;�v<���Y�휋G:㱠3�;���ż�
-�������
!2x��Ø�����cf�0k��}6J���s��l���O�\�<�N�DI�d	�%s��"*���\���$�����1#d��SC-�ڊɡ=��}
��c�ӟ��1�K��mc�q��[���g���<؎U�`
�4��
�H�v��f�'`Z�
L���p
&� �4Ba�����{y�����,�0
�`=��z���
+�bc��'.���.��v7u7R�j��<x���d�����L{�}h?�o?�p�l�����
�
���3��`!�3��
����n����pHB������\�}�C~�F
� �3�0��G��y
��
+�����da
C���8�8��M�/�
�#<hFXH�L�0�����o�M�	/���s+���<�^f
�9�ZF��!��0�0�g�~���?lJ�2�Ǜф�m�����(/�Q
p������a�AF����
��{��|�gn��8�N�_��I�fs	g�&�EMN����8�/�%6I�f��
���s� �_e
����K������Y`�9�ϓ�ɗ�[�3�M?j8�b�NS�,돚�Ԝ��q-.#�
�²b���G�w��2�)�
��&���8�o�M�-^|�x~��w���ͺ��I����3��s���G��ԍ���M}�c_�����3�I�B>#%L-[J������pm�c�r�����6��0��%&^��J�����I$�"��|�H���L����8��x˥^ȩ�I 	�@����@ 	� �\*""^��b�2T@�W=j��>gm��t��]�3�6�v[�����N��vݦs����T��|�?D�~���;��K
�N�H�#�H3i#ϑm���%��1|�I�1��G,�C�����y�|G
���3��y~�g_2��)ѐ,�O��"Ưg�F����Cld���b���O��aj��W�L�� ��#��>��[_0���o�6��9�aOƒ	#5	&�$�dP/�:
jT�ι_������72~�w1�N.�~�v�p���:��k��ߤ��0ڍ>$���<x�0z�
��oD2�D|�Z|	
k�F	��5��Z�o`�&|B7���q�ܲ�� W�8�_�U��m��/��-V��
+WțO!��S
�\�Qs2s
fN��KƟ�/~�l�Q@�RfV�_�ǻ���e���}��Ǜ��N؃>��%����q��αRg�r��r��
a�ga�������oj�^ԓ2�4j������Z����}\��
�q�>���)t�vpg���p/�/^�_ğY�op�j�G�7�0������8����=]���O͙x�ԓ3��I�<�87+]J�j��bf�@�F�Rc�n�)����C���\�v
�
V��{�k�4���W��y�?
��C~9��wy�D��)�B�8�%3���/
D����Q���U��^���j���M��
]c:�u�t�=���'�y�e����&���I���-`�S<��m^i���:����?_���
���|px\L��މR윤B��=�Vt�8��ǃN�2t�T�9�%h�]�g}���w6�vc��>��
G����c���h�"���x^�Q��y����1��H���}^���
�Y�:9?�"�� 56�qj66Lub�TZ��GK�B<�kW�)h
Vub�]X1����e��G��;���Kf	?�6��I�:�����E1g
~��
s�7ڧ�mF���eV
+����5�f4�`Up>V�.���X6��!�QҌ%!�X
�5���0�<�_Eu�g��x���G|L�w��
+��d*g
>��
�I��ǚl���)X>�#��"B���T�GP����\,�S�Es�a�jTϭC��FT�mCyT�G
@Y�̋ �Q�o�
+O��}�����؂
ձ�!�|�u�
iKd�煕Q~X=u1���cQl2�jP
kDe�
qN̏�,�
��Q��⟠H�n�
(��D��
+�•�
�>��.S�L�
�>{H�h��%��kS'�F�$
$���Ơ\*C�4�	z�$d�(�OB܉�(L\�|�2�d�p�:��F��8�7`O�9I�a�0��x��'29g��I���i�gk譞>�'�B>e�`���H!�[��B��IF��lp&9�H*F^r%��K����)�)w"KyU�Ȣ��(S���`����n�:ظv`�`볎>V�G-}�+Ǣ$�
�t(#�R����#O�
+�J�
�٪\�Rݰ��#+���F���¤�QsD��yUd�� _Ad�� ��s����6x�����:�ْ�>�����(�}�T"O

+�:��X5)�h�ĄLm6����KaL�A�n�6�tۑ�?
���Hc�N�A�F?�V'�.�����w��/����Z�����d=���F�. V}0,�9�ԋa�+`ԧ!Ð��
+}����Bk\�q=�L�H5
��|Q�4@�A�4	"� F��'��Aj?�xK1�#�M
Q��2�����g��L�d�L3�a���

�Y�t�
+Z��L
ԙyH�!�RU�2�d�"9k����^���>d�{|~y�0���B�c�{?�wp$�(�^ �J��5�ř��i���� h�!Pۢ�f�"Ֆ
U��lR��H�qC�Sy�R���H�o�Ծ��s�G�Bl�$v��a�3�#�{/u�+9�Tq/𹼜��<����\z1:EP�yC����YH΋D�#

+�
rGd�
$:m�:�!q�A�E�k-b]
����g��|A
#�% �9�i�?��wQ{�"��>�9*V�K!G���%�=
�B$��A���

�;��y�� ��@TQ	��`NQ#"�7#�xŠO!��m�9B�
!�H@���+9�~/�;9�_
+4��s]�QQXW
�e�u eߑE�=�-����f Q�(̸ �`T
0q�8Q�U
bզ�A�lVMM�`L�6
{b�CRc4�h�������o���w��{
xm�c�b-��fJ�M
�`�P��W��`Ř��Ք�hSE�(�4\������l�dZ��R��[��_����yE�`��o�جloCk�i�Y�Χ6B��}�3�U�XO�|)�uF�(<�K�9]����$*0��r��?w��rS�%/C�y���{I�y�dȫ�W�{�̻$C�2�0M�icv�E�F����C	� ��������]o�Ǻ����*_���c��%N�Ӑ$O��,�L�[��f)��e�\,{�d����39�oɥ�.�����߸H�\�y`[���t� C��H�H okG�[��j�V'k�\��r�v����:Z��u�
�$��M�ℵ�D�
���\���C��-i�
�`�|91��]%�^&*����YH�h�r���U6/�֙

4>6����V��v��
+�dά<Ȇ3D��$��ͭl��J��a�b��WS�2��m�zAWڄ�f�_��0'��xn����i�]�'�
�)�vba'��l�uPC!d��|�R��[Y���p����
�1�5��6��v)��4�0���wI
w���v ��j�Q�:jXG

��.@�Z.�Z�}-����K��b�����na�14���,��tt���N_tb������\�K���K��3�4@
o�/u��a���h�j�!j�6p��EN�c��$\bq�'-%��r?�=	��k�g�Y,zA����&Z������@��q��.�I����X��4i�Á=9] l�i��x��3�o�'3���#MF{���-� ~FK.�w�uN �Đ��v>Q�@$M1p2 u��1(}��\�����4�׸�7qț|�m‘��3�}�l�d�� �I�ƿ�>_{
�
[4�Ү�)���y�W�P(]���%|
��[��6��]?�>��F���C��#�c6�1��q��F�./�l� ~
�`0��)`�
(�b��J��zآ���~d�|����i�s���Y�;}�/���\��p�e�d��Z�
���AwH�0���Ŵ��}��k1�˰_�}�������-��
�:��5���5�u�]�|g��u
N� �����|�OC���x���̹7T�}
�c�
��ضa{�.0��.�S���0��I�
����v͏�C8	�Zנ������"�ZI�J��a/`߈����"ih�~1���/Ƕ
�����\M��?�
�Ч<~���b*-��a8�k�7刦��NƠ��A�Bc")��}�gc� �f�cߪ���^��N�������*�ȎSD�2����P�-�T+�nK�K���_�������ϡ1�L���4ʓI�g
�#?��EhX�����
rc�;Y�v��O^��}�5��1%�;J�U���<�f
�ȋc��Q���?=�IBg~�E#�ih���4�S�N1�ehTh���oֱ�5���HUD���R�n�|O��FI���7�c]O�;�99(o4�ыկٓ���p�>�h���i�#:���cFg1v��՜\;���
ke��ҧ.���]�:6k	�8�q�W:Dy��{�+�e� ��Pvw9��]��
�Ƨ�im��Z�q��
G��i�V9�h�s�V8��s��\
+��e�J]�*�T��N���u���A�2�_T��=z6k�\F�����X�ᷔ��a�w��͆����SUn�Z�
�
=�̣����U�9R%���3E���i��I�
�
�*4,�\�J�hX�|���~C9>�5��f��Sv��Vf�s������p��N����_Fъp��uQ��������7N
:���s���<�y]Fin��*�KU��t��ei�_�f���,�e�
+X���m2�Wz�J:��w4#������^o�c��Z�ן��཭���R�$��x�(0 at s����]��}5'd�f�
Ӭ���
MVF�TCӕ
6[3�
+5=|���W���F�jJ�Q�F~��Q�59����6>���h
@
h;��3�bʹvK��|�� �]9�ʎ
UVd�2���1��fF
֌��=Vi�)�=MS�f)�k�Rb�5)�\c7+9�Z��h|�����qݚy�����}�;����`s�آ��#;�E�Xo��jz\���kj|M�V��*%~�&u���nS5��Q�r5.a��t_���7�W=�hTb�F&6jd�ѳ����m
�/��
u���T@T at S���2�
0
�]`H�䲨1�
`y� ^�K$�Zf*h�Y�)=�Zֶɶ�v�:��k%�ִܓ����������?>����y��}��}��˚���ƎL�
��}%q4�bb\9\�0�
�-�_E��U
����G$+7ª��\eGڔY��Q5ʌ��5�E���J��Tjl�,����5����?N����ܛE
r��a
#NJ
�+��	q��-z�
+��)?z�r������X͎1*#&U��,��*-ήԸjY��
�R)��JNإ���2%�Șx~��)S� '��F�N��m���[�q8���8�G��E9�^�2LT�a���J3D)Ր KB��	�JI,Pr�\%ͪ�iV���'4˸Q���2�ː��.���;�� ��?�^���b���9�1�1�A��a�a�V٦�0�Q��G����%#�d��ɔ$cR�f%�*1�D	ɏȐR���fř��E[*��|	w��)�<@75؇�
����~
��gא�2jSH�d����d�8�̓d4*�<S	�,�oIU\j�bS��6_�i��ި��u
+�nW���fZ�Vh�<��))}�#�`/�ߎ��2z��3��2�G)�)�NVb5Y]�`�R�u���͘���(Eg$(*3E���Y���e�9�F�Y�5#k�B��Qp��
+�>���<o)8��O
(�^`���y�R��̳�1��μ�gyĘJ�
�#���
oE�LQxN��r�437N3r�4=Ϫ��|��SP~���55�U���K�+8�)s>�yS~�N�C@�S�K��o���ޖt/��*z�XlȤ,bI&�X�P�,��cR4Q�E
+*����(M+N���T���V�)�
+M�-Ճ%�4��CJ�ɧ䔼K>�yC�6�&35‹���JzY��Q΅Zz-����X҉oya�+�>J�
�+
�)��5�
�I�0=h��D{�&�3�SV$��_V�q�Ojly����ʳ��<��˳�:8�e�
��,�\��~Zʹ�4\�S����H�l�2�y
1�����!�P�&�JO���ոJ?��
�HyU%ʳ*Uc���Qe�{�"��n�[�F�V�KիU��F.�w�Z����V�mh�Ƞ�F΅ǩ����zr at L���I�����1Z�(7�T�:B���(G�F�e遺
����:
;л��X�_�m�Qg?��ߎ�����I�~%g#��=R��b����|J��
c��ʥ�UÛйM�����\��\<�l�F
+�H�-4���9xp�!̖�bhpj+�ވ�V���Jx���m�
H25��?��F���5
�m
[m
�m�����%��E��%��fn��WS��,b5:��.�_B�冴��O;�o-�W��e�9�7�6q&m��OI�0|�3.O�
�o�v�
0�na�`��� .��6t�#|NA��������s4�5�{��|��w9>k�1��>$mI���g�iໝ�S�Q;�v���M
��G'��$]���0�P���`�C@�uQ�N
w
�����+

+}��|7���[ً���O
+�FwJ�]��#y�‘���PR
���������a�#>
eԥ�8�
��t����4v7����1�q�z
��j��iW|?�<g>-/҃�
+܏�W�O�
��1xN��A^�S�I�AN�$'g����R��,�Y��
���h��m���y���׵�u/`ͅ�3�5�
b
���%��Ұ��>�Z����
҅�\��Opn��!���p�8>c���"5�ec���,�ý�K��K�f+�ų�`�����ߐ������o���O�!|����
z�-�Kp��\uC�ѫ��
�7Rn�Wos�ܦ��Hv���;��;�
������PeP
h�fh��(�M����EyEև������b�7:󺮢g�����Kp>���5�HCax�$�q`�\,<���u}��[���rl��w�q�8�%�����̾F
^F)^Bg~I� A��gX�>�?�Y�u
��!�y�aM���Z�����
��`{!��`{9��)E
����h̏Q����h�;�:��.�i�o�f��p^��'Ѻ�7/}���J3�G�����~1�`�9U�~
YK
m�@k6Ӣ?�ڵzGOѺ��ѩ�l�S��$�8A�Q�n<
��r_
w�_pY�X�;�|�r�"𓈏4���-��"el�
+ֱ���c�	��X�:
V;�؎��t����^��
*ׅ����5��
h����
9���$���
�	V,�a߆};�plՐ�Z|��	�-�]�����ɳ|k������yF�;l�ݘ؀���m����@��a
n_�L �b � ��-��M�&k��k�^�5�SWU�v��6Ҥj�Ti�ViӤ�ݴn��U�NC�����}�>�}��}.Wy����%z�"Y/��_{�O�b>
+ۻ��3>wi���J>EO
OUE79��𓣛
}��!\��+�q�~��F�6��e�������;K
�0������"�W���ҽ����M�y���ޑ��`���H�R���sxx/Yڱ�8]����c�~9��X�ze

Tt����OҢ���Q�B|�������c��29w��
x�z�����8�-��R�L��Sγ�hqy��i'Ooi=�l�f�f1����s��
����c�`4�!F�?�јop4V��c�:��W�y,=��|��`oŔ>1
���D�`1*��u���`6Ǝ��jL�z��a"Ώ�n
��h�F�0�pC	L��Ò{��_����CI"����%�M��{�M���l���b�dK� ��II�%�LTc,Q�cI%�:0,�APڀ!i
�H;0 �E�l�dcds�I^Ew�Ut����m�DG����{+�3����
w��L��YfV
�3�7C;���1"�#���#)
��/ՆC����Гք�6t�w�`z?:�G�Ϙ��2�іy�Yw��z
^�ω?�9�B���
x��6`���u��Kl�fi�q�'�
��L)��
�(��R�‚@v9��N�g�Ѧ�U�G��ޜ!4�L���E4�?��-x�o���	�s�@���Ïy����<����m��6���6(dᜡgm�G�J��*�*%��������V�@n
�rјۊ��.���>
u��Q��D��\���,���
Nݿ��{x�m����t
�M���c[:�o���C
�x�hd�j2q@�F�V��
��
�Z'�
+ܨ-�Z�K�g�1TΡR��av�+(7~@�����N<�_&�-7p�%~�X��	�R� u
d��
�h,L�G��z}j�T�p�p
�2Ԣ�؄
+c;
E즣(3�@�y6�uX-/���>��K�%�"�Y�����=r�`�w���
�p�s���:���T
�:��&9�&*M�p�
a7�Qn.C�ŅRKl�m����$��iX�ga�]�������GQ��"��}op
�K�
c�m�*q�-�$�
RG7u�2V<�U�5
�
��
�Y��f��j-B�͆b[,�n�K}0�u��l��
���ۯ@g��Ǐ�u���W�9D�($^#�
/c������H0�u���G'}�c��1f����I(���خ�ٞ�݀"G	�
��W4��2 ]� 
+�&��ZB���w��|j�'���,r����<G��������^��q��q���i��j诲�H��9�08��w�Q��A�2��Umu5򫛐W�GnMԵǡ�=���
P�}�u����W>�P֊�&�E��&�.w��m�
��
l��i�&��I�X9���㡭�BS����
�5�u�v۠�T!���ӆ�^(F��p
+��Ho����"��!R�䳈�=�%��.p$[;��x���u��w��I�������E덂�99�r(���ݬ�«C�ׂL�
��:��|H�u!�7
y�I$�lB�r
Җ�Hl�I-_�Y�̷�۴���?7�7��s,� ����i��jڥ�Z
�Qn 
Y�8���H��!ů�ܟ�d�2��pA�ф�� ;!	� !����3�
����O��q
�F�_|�g��|���
Af�Y��㼓#��VA}�FK=J�}�	io{eD$�
+	B�
�
+�
+
D
��!L`���0���!J���{��e7�#b�
ɽ6ɼ0�X�a,L�|�q��zJ�]
PSSm$;���8D'!b8��
+��-,F�I>�

d0�� �1�y7ȹf����{��5�"�I
q�
[�\9	���N�����98��<j���%"j:��Ùn������}H�WdBLl!p���!C���m�8�݉]^|v�c�w��G�x����K�zb�����%\D	��~�" '$D߱	,��[L"8[.�	[d�_d�]d�]�-�
t�B���F�d� {�����,J�&�Dl�a,.s�IJZeN�HڶΜ�Al�\�D
+!�{����\�	T���/�
�"�
;�
��
�&� 
+
+AW���F�&�%I�Ab�q\�
����ZkԘ�U��$�K�xHjcb��X�N�Ԧ9�{��,�޷|�{�������


+# 9Y�e�����4Pl
���X��&p
�?(�^�{1�O`b#=iuH�h�2ë�ϵ�+&n9̠���H<6�&�&t4��
-
F-4�fP3�h&�M4�����u���b�C���ɗ:Kf
<�pd4K�Ͱ	�͒�V��6�~
+0������r����C}�eHn
�
N�s���B:@<@A�_Ơ��}G�{|�|�>�|���_%~
�/
.�)
._��\Z�!�,8
]�u'0���B (5
w�N��
�FO3��朜�>��d�P�g���<��Y
�]��qp���
8����{��N��
�!d�†�Թ�^Z��>\Ҥ���}j�Ct����r�t��\�\�ȯ�k������K����8D�??8{=�<��<����w��rx\��O�
��&5�y�� v����h�}���q�����-�
t=��!��� P
F�j0��ؔ��f�/���T�d���V�
[�=��v
�]�������K�u�_}��K�7�펝ץc��+� XA��S
����Z�Q
vg�+t�B����-��l�7�?c�k�n���c��g�����X����>Nth��o���+|�������+{n�*	��^�k踂�?��t\B�{l��u�m���29�wt�t��"w�7�1p
�����y�����G\Vx��塿ۏa�
+��]��x:�
�k	%�
�^��i op���tDoq�>!;�p�
(cv;���i��	�w��|��-�8�8,����~>^���rlWa���د�����@�Z�=ZA�X�f8Z��_m&:-D���`�k�wp~
>s������
�z�K?�"�'f)X��~�v�c��N^��F[4E��т�&tl�2����!'���*,4�2�"�^��q�6�Q{�r��ר���_\1�a�#b��P
G
cᨆc2��p���Ӝ���
�.E����(>���;�����F��v��f��|��¤��n��
���3�a#<�H�#�8��
�
+-F�"t<C},�\=�;�:�':�4��:�����S��p�Wh��������Ͼ�8��ֲm��;Vʛj�g�?&xlx���\�G�\t<�Q�T�S�Y��
^M�ӈ�T�5��M�!��m*�Sպ|��.�G�H;=�_:
����)DZ�H�������
�>��)��r�k�K��w�մ���Z�)�e��Z���T�m�j�����KU�}�*{lVEσ��F�]W��=�x���
���2���u�ndy>�у�����n����Oun�5�W�&��h�{�j�3T힫q
CU�1Bc=�U�9^�=����	�y.R��J�x�h���~K��m*�
*�qt<O3~
6�+W<Xma�`Z̕7/����L��Z/o��
�*o��z�j�w�ʽ���w��|�ԧP%>��S��>T�g���Y�B�*�ݨ|�V
�{Sy�+�����0w^����s�6�|���;��:rT�
+?O���j�_�J�#5�ߤb�*ꛪa}sT�w��+?�\C���o�������50h���v++��2��*3䞲B
��#����u
��
j��v��}��L��$7���T
��A*
2� (F����588C�B)7�P9!���_���)�
��t�2�1����RJ�q%�ڕ
���P
+x
�w�ۜC
�^_ ������
��IqD7��g�� C�"���De��(#<[���J��Ԉ
+�DNRR�l٣���Z�w�}L֘K�p(щCp��`�<�9���k6��d>��F�B��r�<�
�̨~J�2(-*F)Q�J��+):C�����
׀�r%���j���"�ǭ�ٴ]&��gzWq��2�
���}���6��1�d�Z�ʧyo":*�1
CБ�T������Cd3F*�'k\���T%��b.T��L��j���e�<�XK�b�*:ᨢ�����::��P+�������֣yé�Ԡ�

E�� r�f�.��S�_%Xe���l��)!Aq	Ɋ�f�h-Plb���)j��
�@��۶�`?�P���-^;�m�&�-�¸������z��8Z��2>�΁�kJJ%�<d��(� �-T1�(E�͊�������<�'�PX�XR�*4e�BRW(8u��R)0��ং�
�׉����ˣ苌�X���CK:J�7�8eS#vbbJwSt��"S��������v� Ey�a��f��]NE�1j��'�
KXuw=pD]P��h@���<�� [...]
+ˢs��h�o]!��l�0=r-,������R�e�����"�w���E9͊t&�d]���p�(��2dp�➮`w������"?�A��Ip]~�/�O�N�)�7��8OZ�5�,E�`�l"�$�\Fy�^3��$2O���d�5��T�'F��Dzz(���=, �g��B����5=�:����to9tq9�s�o���\�Y��{�\�W��m��!TWj����e(
U@!���C������r�x9��l�^��E�^^��Ǜ��MC75�"�k�C�OM�w%�U-a
�x����Ԁg#+���ޝ��H&r
���Q��ex�2��D��R��*��� �R�R>|�
`jK0��~�a||��}�X�z�f
��X��d/�,`0��o��JfJ�j��_5�����	����	�T��E��
+�WQ�%+ at 3��T.¤Vބ�;@_K�ڕ|VK���H�	���F�7�D`a��Lr��_hvȣ�<ȣ�<i���F�F6�w������h
�e
�s-��*
�*���1��2eX�I��3b3 I��s�m2<h~~�泙Ư�<Zȣ��pk{SFS�]��͖���5����e��ģ����*�Ro\9M�G-��mR��R�
�3���p�|�a����kG �A:@C|}��G�hcN��p[�E+�J���s������3�bƖ
��1�<OWb��
z����x

�o>���Q�"@�z�
cn^��N�VN�����$��)�I&��O���/\�T	�yp��ײ���
~
��
��h��
+x
�Nw�
8
^o�7h�:9Ϛ��Q�L3xm\� ��|�p�Z��+��>V�
4�X�9�np��
9�����
+�� �%p��b]7������9��E�|�F�k�.��=tq��ߣp_���	 ~ @�z�! 8�d�
+�%8�b&q�O����,���	�7�G���;��[�s}���F7�}
�#8� �>��oD�X�
�׏x�o��b����E�.!�}F
���'��W\�G��8�?#���}
+y
7{�//�x���8x����B�/��?���x��x��d!�]ʥ?��8
+��J
�q�q`��2ϓ�9�cʚ�v鷈�uX���i�<��^�^G����
~_�[��'22�8}@-��1/i��� ��z�]@�"b�#v9�1��:�:f�)d�̲�%�8
�)=�`��A��}`7x�#vL*%����x[f���E�A�>���N�lb��=��Ӊ�e��2��į�~�xV�a��v�];a�A-����63ڧam��F�n�f����:��i�y�Z
�G����1��c�W6�����!~>�g��b��E,C�
������%�F��3��QV
��
Xn��8ױ�wl=���>t�
��3�m�I����B�6�wh=�X�)p��1�b8�{�V�
��e5�����YЕ(�އq#�%��Y�/��>�`�ݍ.��F�(��$��
�p<
+G
+
68
��jȣZӴ�<�G��	���UJ�\	#��J��7�a�́{6h�^b{?�v�[�!�{8v������
+!J$�����D�
�@�2
�-D�ʂ�	�x�P���W���`��k�, at 9��G
�Y?�[�ԟ��0G�^��m���8r�К��.5~a��_\���0�A�
��O:�YT�	W*�N���.g���d
�m�$�VM�{Mn�+rޓ+����}�GXo|/������D�A]�U
�9fy�;kf��T�W���5-h�r�,�lSN�C��ݚ�;d�\�%��X�
��mh�#��aǕ~I�w���w��[��~
�8����:Z�ڲ��E�7*H��Fy�b�����=41��\���	�T�3f(�8NY�ɲGNWfd�2"+�
Y���&YM��j:.��,�/��>R�+�ц��hkk����nт�ҖQ�|�k�9T�(�ƛ�m�,S/�M���y�2̣d3[�n������\�F)%f��ĬШ���W#�^��w�h�

����8��ӂ�%m�h���Y��
y>��̠NSi���kTF��.���+�_���l#�
0
3� ΰ�l
+(0.�D4D�wq�;hc��9�&٬i�&VLlk��XS�i�&=i��Zcܲ��U�t��
��
�=�����}����kPq�QE!�
��0ԩ��,��+7l�F��SNx����1W�UJ3nU��K)��rF�7�r+%�.^��nr���n-d
��<Ffx<Bj��B'e1R�i�
+�A�7�)��
�M٦$e�Ҕi���QJ�,Sj�K)���~T�r%�7+)�)%��Dv�i%X���_J����"uw�w��&|m
#�2,�
�E�f�J�
�J�Q`�U�9@��a�0�f�(՜����1YrX
+4�R��؉J����ڨ�2��6�f�#k�+��;���+��˳[6����~v#��R���Gy����84R�^s�+�6T)�`9�aJ�F+�jS�-Yv[���_���dK��5�^��%��o�9�IE'��Ȥ��eE%}��$7�è���l�
+l�`��|n�K-<&�Fehek��V
���h��
�x�Iq�X��&�(6)G��"�$WȜ�����T$������N�;_T�����;�p�e���Nrn{ =N@�`!cp\��1��;�Y�d���T�9��0��P��,�3^�N��R��R(S�XE�NVxZ���(4}���?!C�g�	.ʐq�w�>����߂Y?=N���#�_<&0��ҧz����s�+&�OQA���1#RV�g&),3]�Y�
+�*հ�I2d�Pp�<�(0�C9��?�(8/���<39����A�M��֪��l�Ti&�Sy?����;�pM�gq�$*��r�kPHn����Ȑ����P`~���˿�̖�qHA�>+��#�C
*�B�
ܼg������9���G0���s%\*��(��E��Y�X�'bt��T���P%�b���_q�����q�-��OI��,W����Wҍ�1	%���g���حN�ՠ�:iV�4��x�
���i�|��U<}��/!㤀�A�+
Р2�|ˌ�)�h`y�����r�\�r�Y�X
+0�嘵r�CƠ�S�W��.j�B�����豉��4��/Ɩd�%���ӛ B�M�������
+��0wE�=�\
�.�BD.���"��c
'1!Mdb���6��1�;��-s8��K�pG`O+y
�
ɇK*�����a�@ȡ3$�x��
�\�
�\�5\t5\@5� ��!`u+�-M�_M;��"88Lu�m6{�������&P��
�\�����	�U
����jb�ib�h�[6ҋ�P� ���@/�D��G=������l�����y�C�2�����D��-�\X�:���`
+���X������X� �
G}��
��3�5ã9
p�5��X�ᲈ�XĢ.$��ml|��|��<���[\
+nm ��5��ʡ]�ֱ@!H]/Y�
��@�
&����
+�Vx�ҏVx�£���%����R�Z��q.|�j&�UL�+q4+�ZO�X�9Hf�F$�|�6K[� � ��w+�(����݋�����
�
<�����
d۹x���vzю��(���8�r�96����5�]@�:r��;zgA���K2>A�������b{����婋�t��}
����A=
�=
�=��u�h�
�$߽���V3u�"o%9Kɓ���FbvI9V���� ���#�=� u̐�ǜ�c at E�?e�
b(�E���a.�^z��
��C�U�>_��Z�>�QA�\�%!��Կ_p���5��5AG���y�1�~	���[�/�	
g����?�>�q��&8Ǣ�%�Yzq����]��9@��"g �5�7��<Ǽ�=f�
/΀w�9�Q|P���5�X������r���*���
��.�S�
�8��y����P

 ��q����
��-��M\�׸��p@�E~��
_�).�:
x�~B�>�G����"Q���U�mp�����A0�ҷ���x̯5��c�=��U����
�K��+<.�$���;�?�1?R�>@��k?���e�������x�
+^�?
ni 5�3|�5��ezqA#�_L�
+�^.��{�8
�3��w𗿂���8�#=�C=��:�n$�2�
��y
�?t�,���Y��?8��Vr�����E�r�?�أ��8�
G��:�rX���D���^��]M���2m���~��A�馲.�=
��ݠ���&�救GZ���q�+��YȑL�LV���8��D�D��RK�������X�%�_�"6�c�v�v'���i�P�6Դ��
� l _����+u��:�~��G-rE�.9
�Ϣ�B��1į �D�W��c���
Ğ�2� ���Y�N���y:
�߰Z_j%yWx�=�19��v�-����{�E'{�Cf�$��I�l��q��1���	�B�jrԑ��d�kL����7���6�`0`n&&`CbH '@B(�HB���[Fi.�K���@�%Y�e	(m�fi�6AZ�N]5mӺ}��m�6MӦM۪}ؤj�ڥ�4�G.S�	=z�?��y�9�9��『�w
f��
�8�����$7e�l�{�W��('ߡܿ�$x�q���Ö����8���	��1Ua�#��f<ߦg��3�q ;�������cX5�#Df��=�
��	��M��S��w)��h5�����졅p�$v1�i�L.x
+8K)gY�B�D�i���m��`���
��$���]v��>N�K<��n���'���2LY�%u	)tY��='�e��*�����\v/�<e�'O��7sKZ�ꄧK�{�lY��s���[Ȩv2���o�V�R�Z��
�˥���_��^�mOa�
�h������4���
��rx�܎\���j��Kmq�j�֦�iE㏪9ႚ��!����Ր� �
�
x��ږ����Y>�q~J�����	�M5�+ɢmI�ښ�Q{r�ڒ˵9%�M)aES՜USj�6���1m�"��Z�~D�
��XR(�j
?R��/�1~
+b����:m�:r�"8��+GS ����I�ږ��V�QQ�U��6��`(V��B�Z�7֫޸Qu�6�Mݪ5�R�i��3)�yNU�
+��V��UX>T��3S �����KH������'�bCط��E��ȓ&K�"�L�3�Tg�U�\�Z�_5���ZjUm�(h���ک��_��Q�gͪ,��m�Ub{S�����g;>S�#�{Lo��
&����Yg����{���(�C$;I!�Qk�,��ek�ͭ*[�*m媰W��^�2G�J
[���SI����3�9O� Q��sWޜ��������w�
�6�	�%��3���3�Icu�KZ~vl�F9�{��IW�3S�N�ʜ.���*��8'�"WH>�涩 �G�y���v?�<�U�<w�������+���\ޘr=1��Ht
ދ̳�[�p �3��h�
]H�Vr��|
!�)�*v[�sg���E��T��Y+�7"�w����*PN������(�"{�m�|�+��[֏e��� ��u
�
̲'����4�Gx���:�q�j2�#�%	�f(��,O�]y���-,���T._P9�z9�Z�(�i�JƕUrT֒K��_����L�_�\�O��
�g���|\
�e��-�#����m�'J�֓#�Ħ��䗥)�oR��*��)��+{i�l�3�4,kY营�_��}2Ú�2V�*C�ʨ�%�G|G�U��9�8�1�x�Y����:؁�fT���[�s
�Z�O��;�$G� [�YY���<Y>��ʬ����Q�5�`�
�Q�)-����[J��&���R��Vj0������vƟ^�Dw��;�X҃][�K>	�'������d�MSf�I��,kr@�
��ʨ�Vz(��P�RB=J
+)1<����G�C��
F%��-Ÿ*.����E8O#��wr'E�Xw3�n�y~i��jl���q0:�R��ި���F��
�()R��H��#��k�����/�� -�� �	�+`ތ���Y���tdw�������S<o�/u�(@||��Eܬ�Ÿ)Y)Q��4�(�%J!�r��$n�b%�Q�
� �ME��PԂZiF56� �c�
�yx�&F�)F��~�o���]̞���/
be�
�K�LR|'
m�	dI
4�^Ť��� �:0���'��)�~�M��v�[;~h���^r�c�6;A>N�����0��u�R�;���Hfb��M	���~f�/��w�
��_�ዾ�K�����ax���
���
e����"�'q�
!�a$
�|�:�x
�qb�M���G�#���a���{i�{�s��p�� �m�x
�A��Y�2`��͐���ѐb:
�	�}�0q8�k�]��A�(�n��bL4�n"�L���vLa�vL"�&i0��b�K4A<&��?åC)�{������1���ǎJ���w��
ցJ���9�>������c
;�c�ܘ������ɋ9.�
�?7Fҳ���B���_H�������x|
+�:;_ ���U�:G ;0�������\|��H��v,b�b
��,R�(2
$�y
{��8G^��~��;��?��o��س�Ei㗩���W��H*�_��%p
p
��Ǎ' 67��%�X�,�e
+�2�X&��8�ҫ��>_{���Ŵn���a�"�r܄���*�_��a�
�|n]������M�>�g�V�c�B~�P�W��
+I��ʊt�����9c/g�g�TW6\�ۏ�_ݛ�¸� �o�o=^I/�G��!�R6��\�{t��
Ɵ�6�%inmzK����4I�IKK�EZ.��E���\�1AA�Ƞ� �
�� ás��)�`�e2�q2&��s��ӝ�Y�iO����s~�/��<�������Yz�,��G���G��>ۇ��;�h
+{mf�5�*c?����,k�
���s�
5�����1#�ꋚ�
�b԰��> ���_�8?�@}^�Gn�x7��u6v�̀��/b at 2�(CAw6�ڦ�q-gҿ����������u7�g���8�?R<7�{�{B�G�e�E�R?.�������j���K��?�w�v�T����=:�u�ч踂��8��9,�C�%t���z
gz��@�{�཮kz
_����>���/�߈�M��_�p�귪һ�ܷt���ɜGG�8���qy�qa��6��W�qR���6��K��'H��z��
��0�v�]_�p|ܟ>��ݛ�����,�:��:���)��t
G�s��c8��8�#����8��Z��ܬ}�d/
��_�R@��m
!B��� #�_�y
\�����b�3�e�'�"֯�M�z���G<����S�q�������?_;���Wh���
���
+9�1��
%c��يP9��`-�	���ђ�o�c-��^,p9�=�R	���B�N<��Q�?��[92���t��d�n=L<��A��ȑ�]�Xe����\�h��E������x8z��'��m�H�2�G>
e��k=:
B��t5��J�R���=pt±�n����ѽ(\��S�ݰt�*�O��.r�����?��b�̘�C"�f��'���Q��~��m���m���I�G<�4�����v������PAo��� �ɠ�y�#�y�����n��s�mE��o
+����
�8�����,��� OU�B$�����P���]����*��,�����Od�_ 2��\�G�{?v�����X�-��s^tS�sd�+�\x
+�)��c�:����h�������_�P��
+~����/k$?�f�O��yF��>Oq�m��r��Ѻ�
!.s�Sc��>;\��䱧"���p᪇���pMd�pt�v����Z��f��^��w at d G�\��ȝ�� ���
+�-a4��u�AL&c�jHָA��9�ʂ�͞���*
P}LHu�ª
4Z5�����9���_'����`�K�0\RE�-U$Fp�+mw�����_�ղ����q���lI��&&c�qjHNQ8��:C�j�U���`b��+4$�JUI�
+$5ȗ4V���H�%o����U�q���O��xB��wU`��BSDE� �O��ƮG�� �m%�
#P1i����(��bP�ɨ!F��t��9�4y4�T*��R�j�����ܤbs�
+�
*H�W��5r[�)��\�ʱ\��zD�
���$#F���#ϯ�w泥��8�!7#kȍߚ�
+�Y��J-*���R�BK�
+�U�X�)�:Jn[�rm3�/T�}����R�c�����xG�i�3-»�����[���1n�Ō�s����JnFS'���R����*�U`��cO�۞�<{�r
%r9|�I
);�AY�㕙>MNg�ҝ+���*{�^�2^�5�M�l���
�����k����H��=S�l-~�@�
�F�����y2���4+�iS�ө̌\P���
+93�*=+�4L�={�l�]��< K�7���#��L�_�O�̔ z��vx75R�x�eXՅ|���v���ꤖz
P#����6(�e�3Ǣ��49\��#��L��*Y��e�k���.�{�L��ddHO��*�sLI�s�#>��|�o��
�#���c�`�;�3	mc��HrSCn|Ĥ����*� Y�|���vY<���TO��>�
+ke,�K)EmJ.����+�x�
��U\�Q���y
|�;�r���Ȼ
���� ��chiCG3#�t��2���7���^���R�L%V�J�e,u)� %�
VRYH	�2��*�ۡX��x�K^n"/����˴����2K��-p�g�]9�� ]m��	�
�jF_-CF2�֓b�$&�@��>��*-J�L����x_�b}^
�SH~��gC�� ��c�c
�~�c�U���E���p>4��q*=�N�s�����aXF�h����11��+)���`�b�

A� M
�h�P���i`��0MA
C��?��V��j�)x6����{�Lz�Ӑ����أ�VB�V7�q7
�������$�K%l\xa�0�
���t���\x
��
��
Ǹ�cB�Huh�c�C��걓z�CO�N0yy@�0���"�d��F\��1��R
��
��k�RivHM
dM4p��ġӄ�&��4���5Go�L�Lk�.K�hh�h
�k�\��ni)![�
�9�<tѓh��24����2��<��ù����.�ˍ(���ϐ��D
QA��`�	1�X<�i�1QH̡�
3&��Ĥi�f�vjb�N�1I�4c:�Iu��-lgZ'�<.����y��}��{�C<Vrc`k*c��.�rɗ��rQL.����i&�ԣM�<H���"
�\�ٜK
|b��ӣpoA2Mk��:���
�f[|v1���TR�&Nۉ$_
.CXL.q�W3U1U��JtQI.*9<�ԣ�VT ]�`�
�0�c�0͗1�����#�Z�	��2��hB� �x���D�*x�X 9S=q,'��ı�8�I
M��\�r�j�G-�e3�Z�$�s	F�!�a�
���V�_s3u@�5�� �7S��wv�d���p�)��
�
�8�F#�[#g�]4r�8�
$���7�	aj�aT�0կ�����&(���/��\�$^
�����?h��A���F>�<�� �h#;�?�;: ��6�����
�+X���y�#�t��p��
��30hs�1
���;��� 9��tG7��&�4�nrх���U]Gy�,�A����U���Epܳ���:^J�<�a�<2h6� �ƺ	�����gG��I '�M/u�E�賏F�G.�Y�
'�ṿ�����;
�1p�a0�p����{�Lߐ	{%�W@�Ca�!W��қ��O
�
c
*��r1@��� �_R����qpf��
L�tL��R��l`���u����t�
^ o$6hV�Ӑq�
�-��8.sf�p��>�rF�qخR�+�_W.0Y��
āt0R��οgj��s�;���������pH���}�A��#�
G�G�s�"^�@�� ������a��G�>|��T�p
��!X��4�T
|�p��Ʋ~k��g8��8�K8���G����<����
N�]<�E��D4 ��(�y}��Y���Z��Y��;b�6�� �ԮO���}�<�
+��n�-���qS���M�8��z
{���S�x�8Nk{�M)�(�3H�4�z�~=���1p
�p;��T���_+�}Xኁ'	�,�?u��
+��q�@>z�S'�u��/��
>�z��:=E;�

�N*ңn�<�7��U�#��`�
:�.�
�_�OR���ܠԍp���/���h=�k�!G��!�^7���Y����J�g��z\��h�����Dt�*��bn���
6���^
��489x,�؋�h2� G���
��M>:p��6��N
�v4����#ԥY
��E�f��U��R��0��we ����
�m���X��u���8#�
��t��e����D��
�t��2�!�U�e�/�Z"\B.j��(f��mV�]����O{�

j���ȭ7��\���~��t�� �\�χc
�9��)���2x�Y�ŮC-�Z@�泳R\	�,F}������9�(�48ĵ��5��x��W�:E�iU
5YJϨ�.&�j�$�
+���n1
�Bx��S����(fYj�C(�����i>'{��og������G;k�}+�l$n9�C�5���r��xx��K<��s�G��Ή��x*�j�]�r���~"}�nwUL%o� Nq�
O�*c
}��e;W�&�YC��%/��
P8�f�fc_1�)
���	k.\�p��� ��ṕg�����t���SO�Y:����o'��`��Q:9 -x��w3Ӑ���Q�z��>;\�p%�'/\�p
�k4\5�h�r��#{#PN.
+
�i��dgqe�d�����Y������1 at 3��z�MaL$?���
r2�
�C�&�X5>ȡ1A.�%jTP�FgiD�
�a!w+'t��C��V���:��7)5�C)�O(��
�1|!O�w�D�t
�.���X�m�)��1���PAN��O!��ǁ紆*�dT^�U��r
.eGx�����
�G�RZ�y�S�b��dS�<��J07*�����
��/)�|Q1���{�Z|z��x���-��k~�k��撧��f2�KmF�•i1)�
�Ts���8%���dɐ�2\	����(�Z(��L��%rF5(��.��춗e�]_�[����}��vƭ�I�����m3��l�4
�Lb
���
�	R�� �͢�(��b�%�e�*֖�[����m�%��TvG�l���F��òD�(S������/��t�N��𳛱��A
���4�8�6S��42��dS�w��F�8�r:
��v��,�3��木������Hf��\���R��W��~���M>��d�{�����<
=�Z�Q1��]!��2�Y��Q�,j�LN\�r�,���r���Ni��
�9~�L�SeL��Ȅ*W*,q�B=�9� �
+N��UH�O]p�w�L��,�X�ߕ|VLl���)�f
9�#'��CN��PEyL�xl2{�2y�eLJUD�0��(<e�BSf+ĻPA^
�����2�z6����$�����;�݊%k��� K=+��
NǦ���
G,�h6��GN
١���f��u�u}����-��m
�r��
-h
��Q`
�r��*�1n� �"ʘ�TT��W 1��h���
���۹�-s�n1N��M�O̘ۗ����������{��sE���H\��Gʐ��i(�
��P��,;V�e��
Yb /9
o��
C?��p6YMw̕��8Gm�7�;b��k�R�'��џ~z�I�ѩ�Y�i���i�?Ҿ;R�)�KZ�f���̰ef�2ݧ�Qj(5O���Y6�l�[�_�s���A^��-�//}>�-U3�Ui0��v�|:ɮL��1v�
+ͥB+�t��r�)��D]᥊y��
+ݸ�~0)\�*��ָɽ�û{��Xfm�հ����2��V��|�ߵ�=rů�Ĕ�T��M�T�۩��jE�Z��
W��j�^v�q��q�*�B�˄ΆKZ�[µo�5�c[��_�U�`�8,���G�� ��bK�^2ٓ:��hh�5�i|1�/j�Z�V<ji�V k�P��V�bi�l��lZ��sBcCMk
���U;.���n��X�G���j>XA>��ך��_���,N�7Ѧ
_\���[=_�i�u�`�x��D�@�yy��_�2%ʹ��x�
>r��؏{�Թr��`j�f>��+�T�e$9
`c���U:�
I
~�%���
�ٱ�/袁/��h��
_��s�)q��q��l��������� K�3[�j��
����M��L_�>���7\;ֲc��4��Q�kTT�((k�x��[��w
+�ሕ������Kk4��U��@���{.�J�1P╢
4�
�ŗqE��` �Ǝ���U�n�\���ɼE���i�]l����'$��{.�y����ǵ��1�Ja}���
�
�!����Ϛ�:mfG3m4�I3]4�E35q^��
'��$�;��i츎[�u�
�r@
+1�T��<ȸѹm�	��a���-��߉MKvǀz���(j-|�BL�9���~���3�p.�Q3
xԭ�G�n�߶d���N�;�|ܛ�}��6��'Ѷ$��3'�qR�<%&�4�S|qJ~�DzR�>���ދ�x/�9���f �|�ʸ'y��j=	
k�âٱ
]��0���!,�
�ڣp~����ӳ�q�0rN�<����Q��ٗc�;�ޥ��`|��<�\�����^�\e>����P��F<?W��O�cq|��x�
����i�o��r�M��_�a�{�	�u|	��=��&R��K���忚��6�����W$�dv��}������*�1?��X߶��i�{�#_��\��Y��3Nmc}�
���6�>��|d������)�]��;��_��_����
/����9�Գ
+�3���%�Ol�OI�'	�<!=��1�9��G�c���&�}/��>�3d,��mB��=�E;��bW8{�;�
+�,g_���^��U��*Ilt�B��t���l��	�x��������(����
�$�/����g����� �:{��'�iv��6�l`�����
g��v�;�����8hûC��������Q��O�)�͠s�'���I�=�.�
\�x�������
����
��)����9��)#+����y�J
���9���ۉ�xs'5��ۆ�
T�x>)�3�tSI���/
WB�)t~���-�v���k��~��ƻ�Fv��NZ��������M���s�Ep]��z>�Dk;��d�����dI8�,y�b�
i�|
EN
���b��W�V��f{�c��r�Vրco��5�(������X�e1/����s�SG	j+�G��Y�v������ꎣ7�b
%8�pTȊ*J��3�L<s�,r��X��y<3�/.��:j�M���o&�
8c$|(K�UV���u�#�%n�4���xzȂ�8�(�eY��O�L��f�d�'g��t��*jm�L��c�*R����o��	�]�;
+7i����]��Ɩ�q�Q�,�.n��/WO<}�
�S���2�c;�:q��&yb"
'�D5}V�d%Վ�=c(�B�U�����r��բ�����Ξ
F�5��T���2g�{��̞���@�%��
W9�*\�p��5�'��"�-�e]w�H�e��
�ϡ5N��k�Z�>�JY�–�ٲ�_h9��
+uk�<���q쨔+c��v��0��
�j
�k*�z�/jW�PY2����@�8~�R���5�3~ަ�

n�0^i���5Ə%F�9F�|2�fƥe��ƙ�W���~�5����U��b�S� ��'��RYo9Z��Rm
U��N���uo���ֺ��{={V
1��I=�L3�N���9)1�k���%��ҩ �����Q�2$���(�"�t
�ӦGQ��(L_=�7E���(�8��#/�|$2ގD��#�U��y��l�u�j��6��EW�m���lq�b}'6�t2"�s
����D��D���E]zG�.�Q�uX��::zdVEAfm�g]yY�#��1r���H�d�����|���8���Z���
#���_��y�)N��RlF��0�)N�EQnf��΍��yQ��3��F^��H�F�����;9rr�"��������L�.�Ñ�8��#-�*|��ָ
ߍV�k�Z;'}�^k�\ʖ9[C����k�(�)��=;EaAz�%�p�Fn���IAq���2�������Id"���AB�(�7Q\� �!	b���)D1��Q5
mQ㫚�ؾ����UZ�E�
JI'���n���[��z�^k�{���9{����w)�ʢ�c
a��eZ�2��R�[Xh�	s��q�����$z}&f��D�
U�Y�������[S�F���8� 0�*�\�L8������V[F�8�k'OaU�OX�
�u��s3�qahuaq��u�1v��te�u9�2_�<��;�}G2
��KB��#�� �&`T�q�&��I%�Yw���4v�6���NX�9
+
7ga�V^h�a,��ӽ)C"��G��`C��������A��N
�yb*��c�4Z�̲IhW�G��V
�L�gMb�g�Xޅ8
|�DIQ��Nh<)O���z�D�D�F(��73��@t�i��iN�i6���3OLf�1�;��CuI�م�Q��|��{
b	_��?Z�j`&�ޱ.v?._�Ə
�������ς��(3��8��яWҗ�>Tz.��?�����.��7�i<�
�%�oD,!`R�8��\�)����`.� .�j�ȥHB�@H
�1�%�폎�@T��
Xb��/&f:���.c�K4�#1�wsb��=�8|��L��f�Җ���xxC��Cx�t������	�$2N��(��mt
�5&j0�T?�Cp�mG2�a���E�
h
�9K(�U/0q&{���@�Ak ���
X�
=������	=���Y�&zfͺ
�u��Э�>H�V��^iPfPwމ��Ћ������������������lxH9,4�ٲ�5���f`�
,�x�8�08�!�q�M٠)]I���
l���"�1 [...]
���>[3�F�5�b(
�A�b${��i�z��з9�&� l^}�p"F;b2!�{as�E���
+D&�x�#�8j$,by�b!p,d�L�Y���]ّ!1���C�H�l�p��
��������\q
 .�������U%N�LH��-R��dch���
+�^��@�D����3Hv�gx�q�|�D�p��*�жhc��H� u�}��6�
�7j�ʌ�
+?R�#�3I�3<�� �P��S�,�>����� ؞�E�q�����\��=�-�R'6���;��9IA���zɆٜI6�|XdA�,@��W��־+Y?��[�ړ�C
�iB�F-����(�ӊ	�-A[(�
�����o�q@ j�	��ȡ^s8�
j$,A�E$�h�~?�Xhڊ����>�ǁ�-��•a�0|�!�St�+�R)5�D�@*zm�ah�C�F��nl�V7q�m�͐p�n�y�Qњ+�{��O�#Ok	��R�>����5y�]��Nb��s�0
�;P�^84~��E���J�c�
�i<r�g.��	�8��`�r���E	Kkےv��
�h��]\˹{��������W��*U�ר�
��n��z�6j�4�Y��Z��l۾CTtL��q�]�&t�ѳwb������������
M
�6bT��1cǍ�0qR��)S��e��YΞ3o��E9��|���e��X�z�ڿ��|��M��l�b��]��|�����?p�Б��rO�<u曳ߞ��� [...]
H��̿ DH�I:�A���D�0$I
�%�Ab��b$XdH02%��1M��d.�,��|$1Y(�$*����V	�N��RB�Obsp�KtNKx��
�� tEBtCbt�
H�~�0=�/HNL�.��\�}�y�

+� �)��.doF�X�^�Kh4ff��``i%Q ���JفDiG��:��
�"$`(�,�B`
\z
�B`�%��,%*)6�kB�^�I��
J�6j�����L������,�x�r�EVˆ��X��k	8QH
+�$Y�&y�(��ꕫ$��uҽy���ܽ{����!y?z���ߟ����������UQEUTQEUTQEUTQ��!�`�y�
�����bQEU����o����n��b��}S�V\+����e�:<=�c�o���*����oW���gֈ	�����W���G&��;��D�›&
N8:<�͂[��ߝ9�qt���O�	����
*Ʈ�*��Gr��~���\�13��Ǧ̏�.�K?j�a��`[ᖰ��=7%��¶�
+st�P"M8<�[^�R�6��+;
�k�
��k
��ke�U	�	�lY�j�9e�Ks��b"<��.��RE�?��<wx����c�c�e�0e�;����Q���_�/��j�n+;���P��|V��lLu��`�]�:kfp]�
V��"���C�]�C�b
w�Ê
��Qr�[�+� ,|j�w:����e�Un�3c����+:|�a톣�<5aUE��"Wv�M�qФ���>���l�)���%d�t�U��[�PY����#��Wq���€rF�t�Gz]����(9dj_8�`���]���భ�K�J7H��K�ws����ؗ1TT�..�(r�ۮ�����ѵ}
�4f�>�z��{�ϟ�ࣵ�L�A�����ϻsƌzf�zkfL��(�ք���C�
~�h?�j�}�CJ��3��E�%�/c_TV��J�*�p��T�_���xE���y\���_�^H�ڨ;Wi����
Y�A�"�ҭ[���l�!�I�v��^يR�9�$�V�d2���nq�y>��=/�����<�y�;�s�����+N��w	$�
ӟ��mWy0����\�*c���<0gל�uN��@�B����!���
���+��
G[Y��u�?R�
|�^��rr���H��/�
坑�������,�~$���K�]�Kn�`����l����=�Z�5�[7�q|g�Unr���"~��F�8�ߛ-cY����
đ\ೖ-K1�Es��� �)�`[����<pb !zٔ�������z�{t��@�E^�~˷Je}yU����-�#iږy��k��p��?���0Z/����j���,�bh��}��F�u���D��R�����%�H���2 ��
����� �v &� � �e��u	�Y�N N"�{B��^��{~ݾ�V
���>�>��zy�H�����]P�F(볫�ܤ;�dq��F��V	�Lk-��z�PߔJ��K{�w�W�y~��P�'C8�d,ߴ.����
�
�:���J�@7
�d�z�qF�@���`
�V�"��
 6X��  �#����#�
��	Z������e�W Ŕ����ԃ��N~�a�~�qfu��#E".�l�йy.�?Xϊ�
��;��m�
HK�=�`(tu4�G!g��n� ��_��:�� ^!��B@�� zh�C�L Z8�l�$@��
+��+ <j�e 2<�QQSS}?�4i�ǀ����(;�jv�,����_X��?�j�_�Xr)z��XK=A��T�h����0�B~[�)��ܦ�����bU�q OՆ��
Fv�
�S�����@���g��6��_8��1 �>� 
@
�e ��!� O� �����Ax
�C�8���~ⷎNs]=�/��I���֣�3ѡ��M*{q6l�j�K~!}
9Y�����m!���!��_�
7�Hl�ް�(��Qp�p��j�`�0G��Xs,D� `+�� ��
�/x�G �F�
@� ҚSШ
+�s�=�t��##URuM�T��������?|�����zq+[:����s����M�n�ִ�������䂹3���3�o�\P��7.��B ��<�L
0
+� wz B��F�1��2
+�Ȇ�� �DG�r�
<�6� X��`3
+���83�|6
�~!�]{=i���5�$��>�*�OE�t�O������1����o��,N�4����GO\ٞ~��pc݌
)��G�R��0X�
��
QA�l�(f�4�� ��M<�Aoc0 n�`��� ��"��0E��>���)h�@<׹L
"]�N��JY���s����
r�,�'��%����hݹv
+��� ݆/�U�)�
��|���J��n��P��W��
+�x ������k��F�E�Q��`0|�=t�[�
1x}� 
f�p��c3��A&��� �ŽpJ�� �~
��7%�1
�����,۰�PRN�D�,^�H�U
0u�����f>���
��7웻ñ]zQ��ZV�����q��6
S�
��d` �0��XA#����G�V�J�[�(���9
+R�
��WvH� o�^0�x�3�
 bx
+p`+gQ��(^���1�����ױ���>���9��ږ�騬��*�^���x���#qb ,Y2aHwc�VM�O�b�/f=-��ȁ/}	��-�
��`=���瀾�}��k��)���
+���4���`"��
C �!�)�p3 : �m� �u�@�X oQ�v� �����n�gn3����
��w
:s��+
*�����q���BV-
������M$Nre�O{�} v� �R`��
�8�3J�yM�O�4�)X� �ZG�y��Q�j{�<E�T ��I���v\�5�Y �8�F�a
���j5
�X���+�~6���yB���UX�D����C����j��*+�j�߯
�X��9�q�x;�aV�,�;�`g�\��L�Z����[�� �6�
zx�GP��k0���
ܢ���@+8MA\��Z ��T�����g����P ⚖ (�U Ͼ?�4
�;���Ic@�����S�l|Q�gV�e����O��H\����GI���s���}-:�l޸�-�P���
4T/�數H���1e
�N1��@
+���^�Sp��|�v:Q � h	 Z��1
+��VKȘ� �1�>DM
{��_�Y
����̸�Ӻ�|)�we��Uef�ᨈ�����.A�]��]��dci��I~\w���<����
8�/�t��
�P���g�+ ��e
>*7E`S# �
��3\�G��HpχH �n
aKS[��K
5�u�k;�mɶc���V�ރ	iE�HD������_+�߾U\�'�9GVXJ¬���9M�<~̨���փ �I+���q���ij�L9%��A�
��0p��cF"((�`�77 Q����#�' q��� h[:�-H,�n#*Z_YXO�
+=�V�y�!�p������
�LY���zY*K;�x2��}{"w��7�e�r
��"Iw�:G�S
y�\�V[�<�6'R��չ
n%�:溬'5�m���Dtb�Z����L\�&$
+��ܾ��~v���ן{��}߻�����<%E��&�g������IN�
��DH�J��
"�NƄdD�]�	Q�!�c�@
+�d	*��>7
�8P�W%

 \� h�`3�^l:�9�3��
c<��xWo67��!����ʺ���[�ЈZ��I���4�z{z?c�vT�g���C	|ޮ���X�.�qDh\�1�y�X��C>�M|; ��egA��� ��:܂�8XJ�[7X�I�|0|�����N�7
�����w[{�Ekv��c�JȬ�����i%J-��Q�#�u��|FB���ѵ�<~�ԠV�T�w<k�F�K�};�#9a�X!���ЭѨP5w�8G��ĥ�eb��5�@�
+ݡP�
+�`(d�B�
G $��8������&��{j?��S���
�p䴥��W5z��N�K6�
�V��i�|Q�Ah
����4�ݪ��(����d*��i��sZdD(k}P` ͏��Gg��墂t���5R�LT�c��+ʻ�#��
!� �
1M��e�+����ƅ
��xoBj�0�ǻ�8���O�U��N�������☤�"ţ���>�|���_�JvV��{J,�͓ɯ)��l/`�
���R|Vx��fm�
��96���pL1c����3Y0��ߜ,��/���N��P�[@��Q�t�+eK�T�e�9ۏ-p�
+�
Ȯ|BpW����$�
��%IH�O޿y���:�~0?_(g��D��,�rE}K�
cШ+)�J_*=��I,�?!�
4�
l=Å�[�P�ծ�=�Ğ�	[������ �}g���
OZO$o�!xL��=�5�dbBC��)		�O�մ�>�R�I�r�\���r"#;�@V�2[��k������c��lz��i5a#*�X�m�?�;�6�2.�#�:ĉ֙Li���������_ �8L+
endstream
endobj
6 0 obj
<</Intent 23 0 R/Name(Layer 1)/Type/OCG/Usage 24 0 R>>
endobj
23 0 obj
[/View/Design]
endobj
24 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 18.1)/Subtype/Artwork>>>>
endobj
10 0 obj
<</LastModified(D:20150504225025-05'00')/Private 25 0 R>>
endobj
25 0 obj
<</AIMetaData 26 0 R/AIPrivateData1 27 0 R/AIPrivateData10 28 0 R/AIPrivateData11 29 0 R/AIPrivateData12 30 0 R/AIPrivateData13 31 0 R/AIPrivateData14 32 0 R/AIPrivateData15 33 0 R/AIPrivateData16 34 0 R/AIPrivateData17 35 0 R/AIPrivateData18 36 0 R/AIPrivateData19 37 0 R/AIPrivateData2 38 0 R/AIPrivateData3 39 0 R/AIPrivateData4 40 0 R/AIPrivateData5 41 0 R/AIPrivateData6 42 0 R/AIPrivateData7 43 0 R/AIPrivateData8 44 0 R/AIPrivateData9 45 0 R/ContainerVersion 11/CreatorVersion 18/NumBlo [...]
endobj
26 0 obj
<</Length 1094>>stream
+%!PS-Adobe-3.0 
%%Creator: Adobe Illustrator(R) 17.0
%%AI8_CreatorVersion: 18.1.1
%%For: (Howard Butler) ()
%%Title: (front.ai)
%%CreationDate: 5/4/15 10:50 PM
%%Canvassize: 16383
%%BoundingBox: 3 -43 110 1
%%HiResBoundingBox: 3.55980782122515 -42.3042710950194 109.765625 0.12158203125
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 13.0
%AI12_BuildNumber: 446
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%CMYKProcessColor: 1 1 1 1 ([Registration])
%AI3_Cropmarks: 0 -45.3500000000004 141.73 0
%AI3_TemplateBox: 71.5 -23.5 71.5 -23.5
%AI3_TileBox: -307.135 -310.674999999999 426.865 265.325
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 1
%AI9_ColorModel: 2
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -44 39 8 2398 1320 18 0 0 78 133 0 0 0 1 1 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:-235 -419
%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments

endstream
endobj
27 0 obj
<</Length 7612>>stream
+%%BoundingBox: 3 -43 110 1
%%HiResBoundingBox: 3.55980782122515 -42.3042710950194 109.765625 0.12158203125
%AI7_Thumbnail: 128 52 8
%%BeginData: 7442 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FDFCFFFDA6FF7DA87DCAFD5DFFA8A8FD1BFF7D59847E7E597DFD5B
%FF7DA87D7DFD18FFCF7D59AF84AFA9AF7D7DA8FD2FFFA87D597D7D7D53FD
%18FFA8537D597D7D7DA8FFFF7DA8A8FF7DA8FD17FF7D7DAFA9AF84AFA9AF
%847DFD2FFFA82727F827272784FD17FF52272727F82727FFFFFF7DFD04A8
%7DFD04FFA87DA87DA8FD08FFA8FD04FFA852AF84AF84AF84AF84AF59A8FD
%2EFF7D27F827F827F8A8FD17FF7DF827F827F827A8FFFFA87DA8A87DFD04
%FFA87DFFA8A87DCAFD06FF7DA8A8FFFFFF7D84A9AFA9AFA9AFA9AFA9A97D
%FD2EFFA8272720272727A8FD17FF7D272727202727FD04FFA87D7DFD04FF
%A87DFD05A87DFD05FF7DFD04A8FFFF7D84AF84AF84AF84AF84AF847DFFA8
%527DA8FD29FF7D27F827F827F8A8FD17FF7DF827F827F827A9FD0AFFA1FD
%04A8FFA8A8A8FD04FFA87DA87DFFFFFF7DA8A9AF84AFA9AF84AFA9A97DFF
%52A9597DFD29FFA8F8272727F827A8FD17FF7D27F8FD0427FD0BFFA87DFD
%07A8FD05FFA87DFD04FF7D59AF84AF84AF84AF84AF7D7DA859848452FD0F
%FFA8A87D7D52A8A8FD0EFFA87D7D527E7D27F827F827F8A8FD08FF7D7D52
%7D7DA8A8FD08FF7DF827F827F827A8FD04FFA8FD05FFA8A8A8FFA8FFA8A8
%A8FD0BFFCF7DA9AFA9AFA9AFA9AFAF7DA8FF7D7D52FD0FFF522727272027
%272752A8FD0AFF7D522727202752A8202727272027A8FD05FFA87D272720
%27272720527DFD07FF7D2720FD0427FFFFFF7D527D52A8FD04FF7DFD05A8
%7DFD0DFF7D7D85AF84AF84AF857D7DFFFFFFA8FD0EFF7DF827F827F827F8
%27F827F87DFD08FF5227F827F827F87D8427F827F827F8A8FD04FF7D27F8
%27F827F827F827F82727A9FD05FF7DF827F827F827A8FF7D59AFA9AF52A8
%FD04FF7DA8A8A87DFD0FFF7D7D84AFA9AF847D7DFD12FF7DF8272727F827
%2727F8272727F852FD06FFFD0427F827272752A82727F8272727A8FFFFFF
%7D272727F8272727F8272727F82727FD05FF53272727F82727FFFF52AF84
%AF848452FD05FFA8FFA8FD11FFA87D7D7D527D7DFD12FFA8F827F827F827
%F827F827F827F827F87DFD04FF5227F827F827F827F87D7D27F827F827F8
%A8FFFF7D27F827F827F827F827F827F827F82752FD04FF7DF827F827F827
%A8FF7DAFAFA9AF847DFD0AFFA8A8A8FD08FFA8FD057DA8A8FD15FF522720
%2727272027272720272727202727AFFFFFA827202727272027272752A827
%2720272727A8FFFF5220272727202727272027272720272727A8FFFFFF7D
%272727202727FFFF52AF85AF848452FD09FF7DA8A8A87DFD05FF7D522E5A
%355A2F5A2E537DFD13FFA827F827F827F827527D5227F827F827F82753FF
%FF52F827F827F827277D527D7D27F827F827F8A8FFA8F827F827F827F852
%7D7DF827F827F827F87DFFFFFF7DF827F827F827A9FF7D52AFA98452A8FD
%08FFA8A8A8FFA8A8A8FFFFFF52595A615A615A615A615A5352FD12FFA8F8
%272727F82753FFFFFFA827F8272727F852FFFFFD0427F82727FD04FFA8F8
%272727F827A8FF7D272727F827277DFFFFFF84F8272727F82752FFFFFF7D
%27F8FD0427FFFFFF7D527D52A8FD09FFFD07A8FFFF2EFD0C5A5352FD11FF
%7D27F827F827F8A8FD04FF5227F827F82727FFA827F827F827F87DFD04FF
%7D27F827F827F8A8FF7DF827F827F827A8FD04FF27F827F827F852FFFFFF
%7DF827F827F827A8FD04FFCAFFFFFF7D847DA8FD04FFA8A8A8FFA8A8A8FF
%525A5A615A615A615A615A615A615A597DFD10FF7D202727272027A8FD04
%FF52202727272052FFFFFD0427202752FD04FF7D202727272027A8FF7D27
%2727202727A8FD04FF28272727202752FFFFFF7D2720FD0427FD06FFCA7D
%535A365A2F597DFFFFFF7DA8A8A87DFF7659FD0F5A537DFD0FFF7D27F827
%F82721FFA8FFA852F827F827F82752FFFF52F827F827F82752FFFFA82727
%F827F82720FFFF7DF827F827F82727A8AFFFA852F827F827F852FFFFFF7D
%F827F827F827A8FD04FFA8595A615A615A615A597DFFFFFFA8A8A8FFFF53
%5A615A605A615A605A615A605A615A61357DFD0FFF7D2727F8272727A852
%2727F8272727F82727A8FFFF7D27F8272727F8272727F8272727F8272752
%FFFFA827F8272727F8FD0427A85227F827272752FFFFFF53272727F82727
%FD04FFCA5336FD075A36597DFD06FFA82FFD115A2EA8FD0EFF5327F827F8
%2727A92727F827F827F827F852FD04FFF827F827F827F827F827F827F827
%F8277DFFFFFF5227F827F827F827F8277D52F827F827F852FFFFFF7DF827
%F827F827A8FFFFFFA835615A615A615A615A855A59FD06FF7D5A5A615A61
%5A615A615A615A615A615A615A5A7DFD0EFF7D272720272727A852272720
%2727272027A8FD04FFA8202727272027272720272727202752FD05FFFD04
%2720FD0427A852272027272752FFFFFF7D272727202727FD04FF53FD0B5A
%2FA8FD05FF7D35FD115A2F7DFD0EFF5927F827F82727FF2727F827F827F8
%277DFD06FF7DF827F827F827F827F827F82752FD06FFA82727F827F827F8
%27A852F827F827F852FFFFFF7DF827F827F827A9FFFFA8595A605A615A60
%5A615A605A5A7DFD05FF535A5A605A615A605A615A605A615A605A615A5A
%7DFD0EFF7DF8272727F827A852F8272727F852A8FD08FFA8FD0427F82727
%27F8277DFD09FF52272727F82727A852272727F82752FFFFFF7D27F8FD04
%27FFFFFFCF53FD0B5A2F7DFD05FF7D2FFD115A2F7DFD0EFF7D27F827F827
%20FF2727F85252A8FD0CFF7D7D2727F827527DA8FD0BFFA87D5227F827A8
%52F8272727F852FFFFFF7DF8272027F827A8FFFFA87E5A615A615A615A61
%5A615A5A7DFD05FF7D5A5A615A615A615A615A615A615A615A615A597DFD
%0EFF7D202727272027A8FD2BFFA8FD16FF53FD0B5A2FA8FD05FFA12E61FD
%105A2ECAFD0EFF7D27F827F827F8FD43FFA82F615A605A615A605A615A7D
%FFFFA8A87DFFFF535A615A605A615A605A615A605A615A61357DFD0FFF7D
%2727F8272727A8FD43FF592FFD075A3653A1FFFD04A87DFF7D53FD0F5A52
%7DFD0FFF5327F827F82720FD45FF7D595B5A615A6136597DFFFFFF7DA87D
%A8FFFF525A5A615A615A615A615A615A615A597DFD10FF7D272720272727
%A8FD45FF7E53595359537DA8FD05FF7DA8A8FFFFFF2E59FD0B5A5952FD11
%FF7DFD0627FD48FFCAA8A8FD0FFF52595A615A615A615A615A5376FFFFA8
%7DA8A8FD0DFFA9FD4BFFA87DFD0BFFA8FD07FF7D532E592F5A2F592E537D
%FFA8A87DA87D7DA8FD57FFA87DA87DFD07FFA8A87DA87DA8A8FD06FFA8FD
%057DFD04FFA8A8FFA8FFA8A8FD57FFA1FD04A8FD05FFFD05A8FFA8A87DFD
%0FFF7DFD04A8FF7DFD58FF7DA8A8FD05FFA8A8A8FFA8A8A8FFA8A87DFD0E
%FFA8A8FFFD04A8FD59FFA8FD05FFA8A1FD0AA8A1FD0DFFA87DFD04A87DFD
%60FFA8FFA8FFA8FFA8FFA8FFA8A8FD06FFA8A8A8FD05FFA8A87DA8A8FD56
%FFCF7D5253527DA8FFFFFF7DFD0BA87DFD05FF522E2E2F2E7DCFFFFFFFA8
%FFA8FD56FFA8522F360D362F52A8FFFFA8A8FFA8A8A8FFA8A8A8FFA8A8A8
%FFFFFF2E2F0E360D362F52FD5CFF520D362F360D360D52A8FFFD0CA87DFF
%FFFF522F0D362F360D360C7DFD5AFFA82E3630362F3630362EA8FFFF7DFF
%A8FFA8FFA8FFA8FFA8A8FFFFCA530D3630362F36303652FD5AFF532F0D36
%2F362F362F2F52FFFFA87DFFFD07A8A1A8FFFFA82E362F362F362F360D2F
%A8FFFFFFA8A8FD54FF7D0D362F362F362F360D7DFFFFFFA87DFFA8AFA8FF
%A87DA8FFFFFFA85330362F362F362F362EFFFFFFFD04A8FD53FF7D2F0D36
%0D362F360D2F52FD04FFA87DA8A8A87DA8A8FD05FF2E362F360D362F360D
%53FFFFFFA8A8AF7DFD54FF2E362F3630362F362EFD07FFA8A8A8FD08FFA8
%2E362F3630360D53A8FFFFFFA8A87DA8FD54FFA8282F0D360D30287DFD13
%FF7D282F0D360D2E7DFD5DFFA852532E5352A8FD15FFA85253527DA8FD60
%FFA7A8A1FD19FFA8FD5EFFFF
%%EndData

endstream
endobj
28 0 obj
<</Length 65536>>stream
+d
�� ҟ��T}��tQ
J��)�n-y�O��Y��'=%��!iÊH���\
@o�ɾ�tځ=S~��S�8	�spʷIt�?�"u�B$�t�|���8-�fhăQLяI�	Y�٫vr��0>oa�����w��N�{� �4��$ڸ�Yhy��煠��Ȕ�􄒇��M���7��Yw~��:�&|��v#L���ǂ�񽣻�q������O_\l�g�qYKhI%+6v�˦�:�`� 4V�*�5���o;��-3�~Y���]���.j�igt��?g�P�М�F|�%�����f��4|��>iMO
I��²;�����aF������hN��&|�-��CC��1�Vxښ�)zVR�pK�C?,y]��57}Z�7�l��&t���޼�a"�Fb��0�44ȩ��ѧaѿ�	�����m� <���}�mH>;�R���R�f}��κ��S	��'���q*�rP˄�9y_G�E�#2-��D��U{^&&h �M�a��X�/����q�{nti���i+�5���QBたN�ˠ��fx���_�� [...]
�w�,���V��q6e�I�Y3Q�CzJ�������-��Ac��
]��i�
Bc�P���:��f]�?ٱB����R
���My��MD��fP׭��}7���8	��GCl:����Zk�W?�쇤�w�E�e�
�t�2�4����튺�5�G�������蓨�W�(Ae6d��{��J��m����GLI�#v]Ȓ�,چ���r�����oӼ�M�l���jA��X���.|����Q.GF+yY
��O�S\�y����h�wɲ��͌���o�!bZ˪U�k���}�~�Z�9T>����º[#�������vv��v��Y�]Pus �z��!犎P~w\\wJ��$��[ף���Z��YYsҦ�X�b@�.09�FZŪ������
lĂО���
����0W
��iS�6�����'�!q�����k/D>�O}u1��
��磼��������*T�i^I�)<�/
��*�٩���_
���Ί�nv�u77᜴��O���~֣�����^�Vq��
#
tTk����C��a�AEśii�m���6� ��sb��aT�_f|��	A�=��<N�VF�B�|sbTT���*|L�q���ʨ�M䴿f���haI+õ�!M��/
"��ã�:� ��89+���srH��Q͞�ac����9�=�Mc�hێ��bu����1[#�&lz ��&�\
��-�-���h[��Yi���
+�#��5;*�����i�����-
S
+6GhM�vt񁏂�`	?O0H�#��-7�jxoЀ/
��%!
�`A��_�D��I�_<����]10j��
�AQ�� %m��v��s]�I>��bV���Z�&`�[nz{T(�pR	k6\]Ȉʙ��"�
�Q&��`�>�`����qiNz�NippJ�
�3�Y�f�5��M���^&aJ�L
 Gn؈e�zL����MB&l���[7ዏr$>O��>�en��e��;>O1XA+�i��h\&�I%�[t[^u���1ݦ�1%��1�a|g�v|<悆�
:�w��
�I8�UzǯdW�Ő�N~�
+��☰�r�����.y�9���p��_2#��$.�pI�����m�W���
��
7�fa3��%��
����1
}��D��E;c,��W������h�fj���Z� �$Ov�<sJ���y�����_����&z�-I��JD�ڈ�=��_l�ʇݨ$,��w
Vŧ?����OJ�����~X�&r�_.nٓ�6��@76�.����G�B��pvˀ���W=��^Nw����:���愻��Yq3��� [...]
>����ygA
+�
*!�Krl����bW�s�V�"¢�Y��"�.�1I��M�@}
�R�Gx�y96��tEO/��e�Ӳ���o: ^7�&����
�y����)q���
�2��]�}1ڒr+4T�~ՈN�� ')X5��Ʃ���
آ$fEI\7
������Y�I�4<`s�#��/	�jÁ�٬�~볏����0A
�t��b
Np8?�x�'�ԯcĺ
;�xu����t/2�-���;�+�I	n1,b^A��w�����/
ֽ�^��k
�w6>ȹeR~�t91�����m�U?
*�ެ9�VX��`�s�����8��	�Ī��t�`;n�`���ˤXutoaÃ�
���vJ������$[�%׻aI�;SN��w����c��O*L�E��)��i�r�B"�|Ɗ�R>?�p��ɾ�H at wzZ��9�w�M]�"R7���u�;�����pq��K_;4z��D�
�I���ֿQ��n
S�:��1r.�	<7�ts�=���&�^�}:N��x
���&��)\��3��������Ȝij��*R�5f�߆������d��_�ؔ�N^�aB�[�
�Hy�s/(��?~N�W��2|4?���tG�%=�҂U45H*�Kzy��U��y��x `�tG�
77�V󻳒�?�1�g�	9Ԫ�kUq����l��9!%8r� ���U}�D�W?>e�����(|Q��*|f����,���$����*�4��̜�jl�Eӧ~b�s92႞�z�L���OڵbKBjD�
 PvZ�����
�� �U���2�մ�
#�a]�˝���Љ׈Iw�)��O�@93}�o�
G�{lڞ��4rg�M_�QaV^��e
2mB��t���-��;؉W�*�n[��w�˖ԐO �_�Խ;�A�FT�d��xG��e54qӌ+�s0���
�-�z�̈�M���8��m���g�)�7�����N��_fX��s���,�z�
���9����~v���Ao�uO�z��
��K������F������V����ڠ�6�S}��Y|m�����
PR2<��w�����V
jz ��#ȹ�kͻ�d_^��S�
Ԧ
�����Q	^*v����}`�M���|����x��9���
3�����V<�"dM��߻9�7z��,�p)����nAޕE�t�"f��t��
��.�5ٕ}QY�e'���0@��w+ i���2
_2�2���n���AT�Qm՞����
+�KJٚ�K�v�kFZݒ�Y?:�-��Q��Ȉ%��+�f��GBӝa��C }7݅I���|"�c+��Uq�#������f�=����ytnS
+L҂�Z4�`s&1�ڋ�퀦�ie���\
��_���gG=�A6ͤ�y]7�!m��J��q5��ƘyY�=OK�E94�TOc�i"��ɮ��AjqSn��o���V��ʆ�<ђw��M�dD�>M˹w��鬅��`L�H�Kx}�Uqdž&�;�`��'��.�X)�T=>���;{@���gi9�'~x��o
2䳓\n�4�������0�ɱiq�s-��u��ۧt��w{
:t�/ȡ	~��>Ї�鹏�i	���IE/Λ9�����~�t���v݈�U
,m����!�l@��D�����ϳrP��cP^� ��x�8P���)A��SvN���Q|&/�
*��9wKm�w/��c�/����<ؖY�a����%*��,�G��z�zy�B$|��|���Ϫ��!v�W�bq������
O{2H�{����.*!�!-"eێ-:p�r���V̘�5+�)hb�����-��M+�
D@߃^O�K�������33���CF��Q�t��.��N��졂��h�o~u����h��jr΢E@]�w�NjD���S��2�M��
#:��M�ڲ#2w���
;3�����j���������X����s
�9�Ԡ���U��v
��-'����>E���(�A#"c���QH��v�+|}�W�t��A
8�
Gs�~Ӱ�C��:�C&o�8��f
�H,fV�L]��
+��(���~l 5*��/�8UkfI��܌�!R�l/.
�I�z�R��2�LJ�? �{
����*jr񌒘�`$�LЬ�]�`dT�q�_'�-{�$�
�	h����ݰ�5�y�Y
!{�L-[��+��G�~��� �X1�j=P���-�(�%.�݇~?�o�k�V?Z�`���ʇ:R���ޘ�n���5�`���r\}��i9��M�~�b1��ج9
2uY�/\1��Wm
̊��>�`�����`cԷq"d����dg�퀼魆�sUO��ɮ�4P��b�(��EP�qmS<�S�p����L_sԜ
�:)ť�Z)5[nj���j�T~�a�j�w
��9U����4��zR�W�)�
��Ie��L��Yq�߳
�7ݬ�sNv�EOKE������0�x�(Bv"s�7��bT�!`w��u
�`ł+
+h᩻ ����
%4���Ly��[6"��8
�5K���8�
��������
��=��܂wON��=��9Jj������'�W
�����L̙}/
�>Ƨ�
��G{Б!
���W
�B��#��Z|�ʩx
�KƇ��}��f^��='
v��ny�j�d.鈅Ki���rI�Ӧ
�[.��T‮���%���XZ�,4T�j]O�fV�+�7��o�^@~��:+-z�7��r11sFV���`�ţm�q�kRŪW�lEe�(#V���=�xՁΟգg��t�����~y�F��0Ҫ7���m
+�b����1��W�Z�#�Y�/�<їY�����=�v�B,X�s�4��e
4ދ|�S�C�"�$��%,�9�]�x^Y��&Ƚ0�S�j�N��r+
���/vF��1&f�N�����B�>Oԧ͍�G�a�&��Ȩ�~%2��Ϥo�R��~
+��	r���l�ѹ{c�Z�?���!-*yÊʚ�7��ˡQA�d��;N���Q�U��5��6.٠e�aAO�^���{
*��$�����L\��X[����9ʟ\s�isjeȌ�

��l��-'��n�
A"��|�Q�S5�ܙ!Bژ��<9H/^u���J���nA�N]0HXA#�B��Y6i^��8ړ}/��
��5+�Kݤ��Z�u;�z�Ǧ��
�o�S0��֝t�u�˯�q)d������RU�B(^��s�JRڂ�Zu	;�ց��zA
���Qo�9A��XK��P'Χ6���I��Y��(.��
��E���M�p�L�

��'d]�!&���
Z��
�g�qs���VV�y-&���ry
8O ;A�&F͢���7
+�! ������af�� )�ߋ��KQ���q#o��V�2@�c���|AK�[52�Ӱ9�"\�r��6i��Iqɻ��2�O���r뼭�e96k�L�]�1��T�
1��
+�6�w_7!/�#���ՏFZR.��=\��+�B²���6*⭺YȐ�	Za�V
lx�B�Z�b�C:PtЂ�X�КF�YLx�UlVĉM�a��Ǭ��
�nZ�Z�1,lкS(�
�l�X8 �P��x�8��{n:l���v1aKFB�d2rq�Q���]m����]U/ ��"����a�Nj���9��
N�c`�m�j_ݫ	i��ñ���'Rw}$ԆW�;o��yd��Aj闙v���š�A�r����MI�NTᾗX��"UMJ�σ:t桏�scK�
����W��X5ዧ�a��vZ�Δ�g��cm\̶W$>�I��{ˆ=�U��Qk���u��gLќ�詊^!�W\4ĺ�Y�kv*h�& �Eͯ=bd⦣U��gVԴ�E
�,������9K{��)��q�m��)��ϯh[4s��y�
��u
���2'[z��<��Q�S�M�;���i�-��:�@���%7��c�V�,��Q~}\��[q
+��&R��V���e�|�Do�����;׼��E;�q��&ݛtn���'��;@����f���u�Z��
�o�����Bپ�߶w4
dT��+x�S������w}�k�T�� 4���
�4G̩q;
w�.d쎵vo�J
KWK�ȇ�Y�
�����D�����&VӲ���j�lyx�M4}�N�<��f�����;߽Bᦻ�o�%Q���J����մBF�X��jA�����ҋ��Œ�V�5?�v"�M��e�&!�݃���'������_&x�
7����`g����!lb��V����
�VG؈M�7�d�zH��
+|��n�B"�5B������c��y�
7��<�y�����i~ۆ�	�
m��
��;�'
E��������Ȁ���
����|�GN-��]��|�	�͑KX�D?蕳���1�l;(�� >/
�*g)UA|T{�m��:��
+�
\̂Y ������-�%=�f!z�&$�l\ʁ�A��bn��Ӣ
��f����LԪ_�0�	h��M[�����������V�GZk��U���>֥Zq�@
tYޔ��2�%�x-
�!OKW����t~AOm���V���7��,�9�e������	����U�����u�1o�c'�����
�~�L8e


���~],���06{Y���v3��^g��%l��h��N��
W�1.hٜiUn͵�v�D��)�MC�[(��!R�H�d�Sx��
���؞��7�Y�3�v�CǬx�؅jM�Àox�㊦�IUC����J͆��ۛ�_j5
�
XsѠ!;
�=!����3C�2`=��Q>ww�ײ?�:�5�*]t2�sB���R�:�!.Z��ASӇã��	�峿�q0ѩ]0q��
+j����/(�J�z:0Y{
k��®��
G9�k �ٰ�
�]
���I�\q���=���w|}�!�L
Ӌ|rV�[�N���U\P�ֺ���}�+��
�Qv��tOx����V��}�
+G%��^�lA�H_6�˗
���0��N�P|�v�_C�Y6��	g����M�RD�� �aN'�M�r[�
�ho�Z��m�%��p�p��ɜFe/����A{
� ��-_�Ț�ռ0D�]��J7G荻nJ���T�2@�!j
^6�Ѧ�4_[�M3�~m��^wqp�N&4hc4N
���n������Lp��>*by_��d"םm�
�����b�n���!��.�C,^1s�~),��R�hń+�r�I
Zb��_sg������E�=�ҳ��RC#<t�¬����zx��Q�!��e�k����L�ܱ���VP8�u��SF!<`����ͭ�LVe�)���1%Vm ��h7�Z�}
:`���:F�Ƙ��7EAlO���bΤ��ka�_���
�6�u��U���T�P�0��Yi�^L�1K֝��m_���D[�Δ�3��6&���)�zgZ��]�tnM1h
FxƼ]�pH�&v������&�U��u��C
6z���M���q�do�˶5�nX�ɂ
� `"/ڙȐ��{
����
ؤU�|k]�;A��N�՛~�iZKș7P�'���~a����`�U��R�
����p�ձ�e�F읙�ug�ش��V\
b��������F��E����^NH�as*}T�M7��^�:I3����!�[=$�����w!<�p�cxgB,[q��^
=Ϯ��ؔ2��W
�	%�]p�

���v��8ŭ�.b�����;�,�l
�7M���a�%�?
R_o:�e�^ժ�ox\#��e�0Cw�m@��ӪZt����Vi��׀
U;��A�Qjf)x�J[�Al$�'�!
u�3^����F�����S�� ��9���pEG�B��m2�����!/�TԺ�[��̊�aL�T��pV ��i�pS+ドI|��e���i%
<�o�̙������oS��Cm� ��y�Gg���h
U2Kt"�sw�!�5w���m�!+
�1r�b꜒^��U{>!%���1فAbѦ[�	���f
df�
>����XUKv>r�J��~V@�(u���
+5F�&+��t�:e=`soo�Y�a�zu,}���I��$�������Z���,��E��.9�
�^j
�!7����C����
Yd�a}�U�W��&K��
��)�IrިJ��_�z����
!A� ��a�#���iA�Q��i���\��|
�~����uc
��J�@O�M�]?e�fN��mY/�ٯ�ڥ*�]օ�jh��T�Ĥ��ɛc=��c������6�ޔ���
��p����U��?A���p`w��Y��2�]��S��K;#u��J�Zi
5�pvD�ޙbq�F�e3:BqhDܱ��1����g
|��H�e0���1�\<�����h������*Q����0�q��.��r�Z�{�EVev�{��
m�c��]+j���w��[�D�Ai�B����\I�8�OS���4	&���Ҧ�w�����!��U_�ϴ�qH����鈫�r�_�2�o
+Z{ʚ�opk�s `j���|��<ԫ�ˤL�#b�Sx$͛�-�K4�$b[3)���U����K�����<-8~#�x�ۚ�h��H�Q5ҥ��L���1TɖW9a`V��e�2�㻨��ݬ�(�TS����v˻��\2nPw����rb�sQ3�8)�W
+�0+�,�֍�N��t�1h�EM]Ԛ��7�*
��S#�Cl���@)ƪx=Y.�I<��
�M}"���~��C��;'#��8;��:���u,Q֬��
4t�����!Z�3�䃝�!�Ȑ9��C�z[3�;��zi_�@�����W��ʟ�Ȧ|�$E,��񲨪��
����
�Y�+5y�'B� J�ٓ�6��ӶN�2�ۖ
���aL�^s�dT݀�!���h�
m(W at 1F���' ��zYe���,��ٹ��ݏ
{p��ɒ�9j3�~Cg�w�&M�����2�c,3&Z��(j�:z_��TҮʒt+D
m<� ���w$�!ԏ�͏�K)�*rp���!�˲K���UY�J~k�P� �94ؽ6ѥZx��$���p`��ۙ�2nNu[V���YW��kWvi�8y������q�GY?4���D])*Q[�i�%���L�4�P�����X��lZ�u�r���)�g
ċ���uC��
+"�
+m�=���=��57�{6�T���w��kwr��{[}�8u�����v�gNh�0Sf�bDo
V
�JIJQC��O���)(��1�y�&:|����4
\����,+�T^�{.�Xr�Axy��;9a�	��!Pˍ����	�N���L�M���kX�W�G�̞�J{.A�}Q�l��]��kaI�e���
{O���
��nNX�{̱�Ha7�T��z�y�ۈ�ӥ���8H�-m�$u�*��;y���\ޡ.�8r�L[4�2�!X�d�S���<U��IP�g����Fa
���7"���
�
Y�[I&�.��n�0��u��%{� dfa��]�[5a1�4�R/�K�wtO4u���$�K�V�-]��G�)�H�^U�<U����*w9#	~�����sb
��PdY�D�=�����t?"�2l���}n_2Q��{^U7
ܨ��5
C�_U���d^�跜���O^T�]��v�FVػx걫���^GaO`Ж�}��$�q�{���3c�"\�Rޠ����7G�	g3@(뭘��/jN��a~)*S�Iϗ�������5aoc�"��Ǯޯ
��
�/7�
+j2\���by���-mL���*)iv�)��8�s�d�DB3�r����rx�j
�t1!����'EǮ\�{x?;�e4��%a'O�
�{7�Xu��ʧT��O�~KK��-k�
+��;��Z��=\�䰰ѩ�u�V�z��O�gw��xt�to��B= ����8�����k���dd�HI��+#1﮼�]��p�B���:�L5
�L.�7�@�x�]��->�|<1���۸氛/��~��M��yaQ�԰o aW�f��&#O2��犎�r�`g����mQ)	r��(��V�D�t83���2�鼘����ۏа�$��,�O��a7�k���u�^aس7����c��"��^�m7��2؜��3o�v�L=|����W6PL��e��&�A<�5X�ϗ�xC	;�<�Σ���Ʊg�Ia?m
+��L
�H
�~�m<�,
�U�P�6k�l
�L���%���d04o�\�G(~�~f���xƉ��_Ss�O<|Z��5����ϱY�c��
�巷a�+
{���Fٱ�p`�ß��G;&�}�,i7��5�P�ȑƐ���ҝ�&�rx
z�F#r�fM��|^����D�ɔ����.^K{^
v�yU���i��FA�Ӱ�w��C{
"b�ʀh{D9�]C��v_>F�
\�UJ���h��'����ӅǓ2�?��F�t�n���Q�c���"b)a�
��=��K�2�̪s������Le#�
��D�:��1Y�����$j�J!�3%��Ձu��:Ͼ|>q�^ٱ[����7��{Q��#�ċ扨l鉬Z�(y�9��_���X�����j�Ĩv�		r!���x�n�eRċ�PF�en����T�I��G�s���$���v�q
�uذ�da����K�?��=����%���wQ���D�ț�s�FTꂁZ�T����i�mce\�t�6ވ��S���^
+��K�����+X��H��WI��]J����c�S�g��0��ý�9��0$뭕����	$�s��,�K�3��+aCWrx�F��NF$��� ���?^��yQ��xv1�w<����Crhd�y�>1H�S�3
��\�R����0Z��X����V	�݌���t��������2ٯ1��/b�c��k��w�8�SU;�ݸ��&����39e�6d���=�Sf�:�
�4�k
��J
y�S���:����w�?L"�H��H-d�Y� �^
W\c
wh�N�H�N���"ꂥ9�;�
�ж�zۥ�H,u40E����O����Id�z�=�4�Cͱ�
�^�`��Nd�]}�v	�Q/�a�S� �}2˞cP�Z����jT�Sy�ѲKT*
Z��`��Ԡ{7��i��M�
卺?ҋ�N_�]v�NI�×����.��
�
q,-[t��H|�G|7��Q2�cT,Y�5�v�[��"�3��
�[f{��ر�eb*��'���k5M�W at h���+# [...]
�fm���2og5l�s��-�����]ء�SYo�=
E�ȞRXʗp��AI���̊�;i�̻Y%��0�%
+̴~D0��<�*F��Vٵ�P�V���sf�)ysB�_�O
b*څ)�nyqw���-��3�a
��ھ�mݏ��r�q�Wqؓ�E
Ɨ��/�xn�Q�
�53M�=�ct�YE���f�ޅ,���Q�o�i���.��*��֒Ecq0�|T-v�v�v)�Rv�ދ�cgΧ��}����㑩���q��E��%o�ٲ�`
��cX�e��ŪA-�O��jﲗ���
��%=�a��B巒
9�L�^���ߪ�>�04�V�����Ki?���c}Mo�mew�2P��0�R�Q`$]�YT�
ʼ�M�7S�e���i�g��֫(������k����<y�p�i��|�B-����Gq6t��0.mI��pI����H7<�P��Ry��[S��i*�p��Xr�cZ|��y�%H�
+��xq��cGO�R2T�Ph�
�>ʦSD:�1p�dޜ����u;
�~�A-
��;;[c9���h��i
��(�����։���_�ƣNF&c~����T�r*�����F�y0����Í�̭c*>x�E�mز��P��cS&Gډ�>aZWWWj�b��Z(òܑp��9�h
��<w�vֱ�w���DÏ}HF�)*��
��
�(��fI����[����k���<{ɬ��L�S�N�
Z�����݈+A�� !	!!� �%�Nef��������D��<�}_�,�d.�`�v��ҭ)A嶲�27��b���f`P
��U�;�g
+��ж�IPK�pBS�D�C��f��!	�w(ܾ�u�
+PϨ�p|��\)�Ś
T�b-�t����N]��F}ӂ�����Id��l�?1�S<�ՙ6��=���'�oP��B�N���%E=�V�T���';�BW$�E��������
����$���pavC�`��T��n��N}@N�rz����M�
�|�I�9|Y-�/%�'b��1�E<�E
[�)�k����,���No���7r1{��d����-���V�4;���j�P�hb�j`x��#.h
��ֵ��ͺ$,��ym�
+���@����w��>�j��97FO[l/z-羽�3�(�e�'�
��*�D
T3�Q�u!U#��c�#�[�3�$Ž���S��q����2څ�N��=�����6���>����+}��:����"�.э5Ow�S$��x��T���8���']�є�
m*�Lv�݄UE��wW�̲�޳}�����W[U��Wr���k�2�WE�Ե�z�y��0^���hf,ʹ��↲�6̝�&̍�6҃����ى
�iJ�??�Hܚn�w��f|���}U�{�nW��Zcק0��_���/ɚIƉ�B͘ O1�R2�����e4��V���ϭ��f�G1٭��뺣>�e�u�'�ug/�G>8��3vUS���]~hl�p��>
�p�b3���
����*{��#���>%����~-�À������Q.�@�
,
+�FsKc���X1"b/��yۓ�"��Y�V��Gƚ���[�0�7][�e�0�霤���y����2'��l/t�,�4�����>V���13$H4Ț�[���63�]kh;�z�w�Q#8���
��C3����ק����v���iU�Y�Yhnu>4�uM<���ʮ�#,���m%�d]�LZS���k[���:�M'`oNs
+��\�u�Rh�D��A��8䳍6�+x�]ǁn*��f)nK���Q�+���4��Q����j�r�6W=ˆ҈�L�v檺
���C:�M�Gͣ.=�®�fVj�۝���.�w��sKU�W
ח���� >4M�
+f�:���N�D,
��W��H�b�I!n*3̰2mˍ;���-,b�9��\WI��J.(�>���h�h��N��7F	oM��w;+�k˷���hu�(��%�n;�k<��
�;���E~n���gh�bJ�'��z"��
��=��
�,5/`d��:6dSY�ӵs'}�&���V9.v���30�}:v���ElI�6e
�dA@=[�N�D�,�xm��<@�X��{�"�Ŭ��)ZΦ���T�*�3�mRB�e�	���0.tm��*��m�V��T��@�
��=02!n5�kZ�7T�m��E, ���3��i�����>d�B!�<�HX����D�Ӱ0wu��e��
�*ۚ
j�2U�v{0�GN�
���ZzOͭ���9S:l�e
�Q�P�Ɔz�\��>[�V2JW�ml���F;�
�h'�ٔ��
3u8��ޑ�r=*ȧ���u�X�����B��y��Ir��#���<�d�R�3��Y.zy 
��Sz����UV�7����aT�OC�;�&doe�&�
.�(g�<�K�M5����
�0�D����_�8T�J5kI�)X�
+N6��e�č��G˭��Za���
�S��Zph�&ZdL�������p_ͅm����
��_��k����f�����/+��
u�,�nvh���w'�oW�sn.�����xy����l7����U.�O[���j]�
W�=V
�>�}kKzu2O�/�0����ں�iN�M����[���
�����B�`Oņ���	Kbfឩ}Т���T�,�����o�U
/phGF�@M);6��Ow[g���Ĵt ���HI7���<v�c�*�-�e[F���c���a�9?��OVOp+j�{bZ�Z&�#��
j��ڪ��qH��)�js������_}]��9����'�
Z���O�?s+�)^
���3l�l���?�	yՌ2���m�*�
)}����!�"��
�8�
�Uq*��ؔ�D�J�����KA/\
@�1��nZ����!T�CBN��P�W�r��,��������5UY����8<�=��n
P�
���Ad�c
P�R|3��!��Ya��ar�w.��lAX{`��
��䀎�(��n9ɧf��
�S�j���l��'`�*T�O	��Ks�O��~
�8��"�B�G�P���!lM��lS�o�jx�w���2�Ҷ���	l�OM��N ߚ�J�,����Lã�3��jj�?�m���?C�t�p���00'f6֥��K	~%.髙���Q]
�q�s���kn���^d��c
rB�m��Q���
+B�M����_�,r�*(���zg���,h9.���d�/	ߟ��5mMb"v��T����-�5EL�La�<2l�e�zw�/�{T�2����e��:3�*g���9�Ců6{
+
l���¯?[�plӄԭQ\�_�@�
��3��x
r(09n
9/8s�l�V���VJ#�}�1^5	v�(�.��N)4n_
+~�2���k���Ǝ/[�c������Z��ȯ�h�J��H��	�h9����44�V�w�*����,��g{#���

%.�U�� ���p1����ͨ��9E/��G����0
���O7 -#�'�1��qz�B��r7�_V�?�
+ig �f�Q��I�u	�/�Ϻ�?N��(�(���:
+zb
)}�A�
������������r`�/ulء���NB_o
d\�λ�/��yU~
�ȫħ�Ũ0�
�p|�ML��B>��-CK������}��{��>b���Ǹ&���Y�N�b�'F};E��~�1皾!��ID��

5�M�t��A=2F�c�;\��ܚvGW�x�Ԙ��R[�-��Y�#�e[��쐢c<3���cj��'�3��bÿ���}�kl<�0��

͵�_Y�}ů�>֓�5�R��R���R���Z��9>������,�f�ΒS�UE�Ðgk��G6⑱+U�t��zo��=��V�S�_
+�sl��.���0"���F��ղ|3U�
9:�3
�����8�q���=����1B���͞��ӳa^
�|g�<b����JO���޲ۧ�l�U�ܛ�إ��:Jѱ�Z�y��k��8ԓ@냥�
����Ea�G�(���l��P���S��>6pQd{�"�@ML�,ow���6{
_��+cv�^�&!��:b��Xy�jo�#���s�Fb�W�L����[�����
0R��zZ�e
��x�� x�y�R���ؘ�q������iX��X]s�T[}��&��S '�
���N��Z�俷
g&|�U
�
�x�ac 
cx�
	�2|�_M�<P�@
�8��5�qʠ�s�yWLm��o�C�bv�m���ًx���MP����A��c#�>�
i�.o��#�T�u�Χ g��U��bB��{��F
k1I;bB�Z?�鱆
=���}:T~_/L�i���o*~�w����u�2� ��0+��#%
�y�Zv>O.
hQq{eOVڲ]i��eg�<HO\�D<��bw�1�vE���	L����j��RG�K����ڍy�{��aD�wj^�o����Ce��3�T���0�Xxo���I0�]D����{y�%�:�.������,!e�bz¿��ywN�徲Gc��oe��fi?
b#�e�/s� ���b�"b�c��q�HybV�֋�
ua?�we]�iI.�d����ӇJ�k��ub��tž�ۑ�����7�:�~��kP[�����E7v��n�G��S/L3c~�����W����wF���Yv�e�"t{�lk��CT���D<�be�f����MF�;4q�^-�lk��!�w���5^�ԯDF�.�a����K�>/r�Gzb&PkE-.mg$��VO�u�D��P�
+���=�� �X���c�S���� ~ȼ3�y�w�
U]
v1��*�C�Z��>��!v䍎�pIF
�^�O�~��&>���: 
+;_f��nV
}���#MU�
�҅����C�wOV����ߙ$&�U�O��z<_]��U.����s�@Q��9��-)���n��7t�+Y�C��h�\�ӓ��Zb���:1�����t�:4r���釆�f���f���=y7|r�[E�v�IIN	�m�♡9��4-�_�aJ��GL�BK�M���ߴ²+����Ab�e�
�3D�������}b���s�qﶆJ�-���<ߜ���0�W��?U
0^�p{��%���d��}1�S\��'G��֦���.�ͭ`����/���/�c�P�
�7
+~��y�5D�
a�\���}�у
w�XN	5}k��;(���v����J!d�]|
�����3K��p��x�bk�%M]�N�}C��})���T�uJ�.%�+�������>�����~?A
���1���aV1:Jט���$�
��vQ�C}�嵮ܧ{���뽥w�;�COtm
q[�B+1�؈_�E�hY��X�$腹��~/>��nt�ϟ���
�������g?��^�Nϫ�S���Kِ���� ;d�Iz������P���C����u
p
+%}N���r���v?���DW:/���~?Lz�O���_mj��_xU�
yv�k���
	8l�'��$��7
+~�2^��
<ڣ���Z��
h�G&@������o�E�e��m�WĬ��~mU��v�3�7��ro
f
C�{f1)�RlR!�Ǻ����r�[�+Z(~��z�
�K��rϠ ���9��Q���KK�9/���b�-�` ?��)\�PtK/̾~��&
|��.
��e�t<�c~Y��w��1{c97m��ov�A���Є���&��� %r@�X@�~�n�
��-nEU�e�঺:懎�G�i�
-2�g�-t��
�8�c
��?
~�R� ~�������o����A?�?���߭��b�(��˸ewwƨ��#���>���親6�Z���Rs���	J�����^�{�-'g썐�l#���L
P��	X(���Z
+.�K �3M˴O�—�R/��}��&�k�6�"�؅!D� 1曹���@͖m
��������
������9�?-��_�k�o���76���
m�wT�i���r~�7\�'}��w�2%(x0Ύ���_�/�$�&��n)#�.Ƨ;e�h�p�]@�Em
�b&i97�z������x��_��>V��)��PW']�$���~���΢#ظ_��o.,�'��������C
�b���X��3��Z�"&�Ĩ8�Te�bk�Msk���A�������Z�LUΎf��;��a�ɒ�֡�{�Ew�:˞8$,�cZ�2�A��u&-o��R���q����\K�ù�7�m�\rz�{�*o�to�c铍������Gk�y�m#��i��s͹��{�!�j�ZX|C�K���W@��Z�0�v�QN�[�{AO�0�?['�%s��~�.����D�]FM�^��J/8�2E�����)��O�
�WI-4,��&\U�S~��/j�ijB�,�Ǟ�ć�*F�M���Vg^�� �ώ�Aߐ���C\������d����zW��ͮҗց�$ �#?��]��}�߻l�_O*[�)��FƟ�7��̽o�c]Psh�g
 �*��ٜ���ԳՖр��K0�n9<֧D���D������%����Qz �G��Q��
��3KL�O��&n����}΃ 
Z$��A~�M���4�rS�;�Ype���0)����_ֺ�����IS�sX�̋����m� .l�5 [...]
\[�7���(/�9�
�[���[p�P��K7��ڑ?�
�
w`#��$'�j$ů��ݵ��A![=�/ͭqwu�	�ڂ�VC�<^Q�"Z܍�U�
|��X��?�~
�U��#了��Z&��XU�M�+ m���5��7M-^�Eʘ���Kə{S
�\+��\c�
��}]}���΢G�
�*���M�7���
P1@�1B�rkэ�挋������.4��b���!QX���-��wFQ	�zj!���
+
��Rn/w>��ƣ����Y�̌��R�?��7z�a�#Ȑ���Uc��V���Q�
ذ�1d���~QD����Z��1
u�BCmbDx#,ꂴ�4ީ��E�8]]��'s
%�6�B��ea�����IB�{�0�R8��2��,5d�6'̺�ؔ}�%)y��
�9��d]ٕ���zr0��h�V��c����}92�`�
+�y��ŧg ���(��R���sf�T��T���A��#�7�
�t4��\u�GA�82/�b�W��9�
�*V)��SwF!�=�7�P�l"R�K)�oO�Swĸ蕏Ч
��;�"l���6)>z���u r����֖A�mC��چ�_w��!n	%�D�����Y���+�C���)F��&�')-�;)=��Qr�w�������?��ab<rn�
?�RpN�S�.�
 ����s���핷�c�x@t�}�H�Jܬ�r��t���>N��f��O�{�o��
�4!�>��rOq��q>|g 
��Wvg�����G������˸��!B�{`_�௿��.���Y���
�xc �1NLddX�r�#'e�S~\lI��ޕ}���u0��K
K96���>ԛx���$��bc�w��֙����K�=��뽕�z /���+���
�x�⹁Zz�����@�m��<�R�/���}��M��z�J�Ry�o��§�:�+){�>�I���jc~�����
�s�{�l�j��Z/�CJ��s�[F��(	�@��,��?��%~ۉJ�<�>�J�}e ��*B&YF I�jR�Y0�]�Eئ���֜K[c���!Ļ�>8�ɤ��ڬ�bv�O�
z���L�S�
��
�
��,�P����̫K���ֻ��M"Bz@��XpsW�=���}
�I7VW���񎱢�+m��W�3�9e�$��^0[S����{�҇M��P]sl�`�t�\S�=ㇼ���ʧkc������נ��O=B��u��-��M6��*�����}��M
��S�hec^��=��P��UGsx�Fթ�
+�'p`���@��
E�[Lj�2j���ۗR������) �D��Jbʑ�^�fZDԸ� k
'',�U�\�Xygst�М�.��k}0�G�t@o}��<V�^)u��!&��}Ȼe���ݷ�q�N�k*���+�fn-d���b���B���c�(~��Ztӧ���\�8�����\������j7�ՉN�ߙb,$�쉄��q~��(1rk�r�%���@�c�O.9�PϬ؛���!�}
+!m�����
+���ͻ:ň�I�M��PUGr����aj�����$%�ХzZ��
*J+,�m��캺��7���fW���H����g�
u�:
��U�b�����zi}��3� ��5ԝgz� ^ڦ����^e5|��iA������H��V�
�0��:Q��2��`k��
�y#m�iT��`y���}i�O@�B�����[���W��R�n
���
 =�Lc��w��I?�k�^4l����ȫ�'�Z���U�� �^S7��5�_(+����n��x�D��X�̿�����m�!�����nUU�puޝ���?�̧�:et؁��������f�^����RG�͍!�u�m9����B�_�,8�!$�OA�7���8��5*&�'f�a�-�ꔐӏ���C5:�l�
+v���X������bz���2do�*�2��Z�|>���}��xw_��<Y�U�,����	c���V2���j�-�&�ƪ/ͷgܷO��=4b��C�pX���@a�7� O��i���cV�
+�,�<Zt�4#��1-�;�.sk8�|�s��위�
*��N	2j�c�͵��;k=���������ދ|n
�����Ԁ������Y|_�J�n����� p)�I�I�[�����z�?E���Ҋ�
+fap��b[���1R�G�)�
�>[m/�5ט��,7�>T�?�ՙ�<��]5m���x�O��^uU�K�N��i��LpLc\x����2JJ<1p�59�|�>1�`v1&jg��>y������^b�O��)-�6�zm?9�p�{��6u�ޝ '��@�(ݟ��� ��.'��"�Z�/V:�!>u��#���;���`��\"N��3�M�������e��h8�
>ws��:͆��8��b��	�X�̹
�=Zh?�� �w'!GF.�x���*Z�=�������>Z��X�u�MYD�x�y@Ʌ����ϖjx�K4�O�L�-~l�+���]�L���u�1EJu�ҡ.%�دe {�K�}�|�j���ؕ����Pvd �},�o��
jYx����j�0�����A^tcc����n�e���QL�����lm�����,8�2�
��
yC�
UKA�WŁXF��,�L�ٿKѿ.�e�93��NW�U
������4��%[��1���p�/�[�|�f\��*	<
���~{���Ŷ�U����<
+f�f?��xu�}ɫ&d

��"
��'�:
伓e&�o��N�Y�KK�F1kÄh�G\Į���l�C���X�ɼ0Q�����j]�s�Cڔ�K]�A
��� �e����YD�7K����'�!�Q�+}C�O���v�!/�<����ئi�
%�b{������禖�յ)?�逾B$���
���1=�/g�9�q^	5�Pˆ9d�ԥn�Å���bj��1Y�X��zW���^��C^/�����C����{"|�e ��x��ٟ�D;��P��К�Rֱ�	�*8 �{н���WJz�w�pl4���b"�"X����- �+x?
h��`��JXpm���M�
+ۙ��\�-dj.�w�gV����ĸ`��_G+�M �w�&g���r���!ゖ�0�+��H���֫nn86
+�_7���
�\��j���&#�ʸ�A�'�W��;&�2��D���l���YŨp�4>��XCY
!eϷ�ެ�`b�:�q[�q':T֗uR��"d�,�}�#$�P[��W�n-��t��p�PI���
2�4xRJ��!$��R�*>o6t
�s�-�x[����^���\��<�_
����»��ؓy>���&
��n
��:CIۚBG���
gamORS�0/v&�evi5�7ˁ�U�
�2|m ����zF�G�GۡO�ZKn�g	�O
s��_ip�_l�#"�b��`ޖ�-u]�U]M�5�
+�r�g��s���{��
F�~I���|c��������+g�\�
+�
����?6��V�$����"��e4}Zg3��ؤU�u���<�gb#�O��Q
+�{@�F�a���NV��
��)F�ݜ�F�*�.u��l
��mw��m���נ,㬂=	#�=���g{�����������
]-y�z�����P፵��;�ql졒Zx����!q(8%
e5
�.Qs�����-��g6	2ls�
�:I;"z��tG�P�W�+��y>d!���#/4��_�a���7~
��P�}�'k
����c�O��5.us���~	���Z/&d����[AH;6��G:v呆Z���w�*��;r����ˣ$f�T�nA<\��G:g(�>UU���U�矁B�:
+uLW�/
�.%�
��w{"L�m

z�b��D��2v�n��a�����k����=[��@�9T��U 7Xg��!d��(>�t�����l����ᒻ����*@��y��9E��g���t�)@�ِ���9\xoWT�ħ�e��q����_�F8f�2��
���L̑�攕G,tg�շ�][�.��uC��PU���J���"��ց�E940��\�m���o
畓R��z�T}�mEcA�O�A�\䁎^v��ĝ-�{2R��2$��|������QVe��,����i�?�h���V��}��~0�P2N��+_^Xj)�k�x�Rbӎ�����
�ṼU1�~�q�
5!�!�}Y��:EHqhx�V����'ye�u
��Z��8#��îix�j_�3�42֭#f��~8\��1vU�hAw�u�9�g��׸@�5��Ģ��'[c�'^#�5�p�'	��r��H�8^�1w')��Qr�c��
+�|��
+}� �(`b����{�谽q8�����'
+x�_IH��H����Q�K�
�KG�v)01�񲇖����Ơ/��zL@�"pȪ᫃���	j�]AJߓ`"��O7*
�r.k��~v���( �)YK��M-e��QR~
�'�j�P��%&&i�o(��?nuW>�d��:�����;{S�;"�
�(.jk���<�
+��˹��Ҡ�
Ռ�AH�Zg�/�-�Wl���
��@C��k�69�`G�Ȱ+��N
��&��m
��QԤ�<+L��5��*���S�Mr�䔒�u‚+���
�#e��&��{�

��E'�l�OÂ�5ըC��9\��ؐq�X����.��ZG��c&�HWCX��Gh�.�����?sI��{��W{�P�LU�Sɫ�vb"? ��咓3� ��s�C�K���
*��5�}�>	��"�� }�+�����q�ix�ET⒣�����A�CM�ӷ�ݴMVe��
�W!^��*�&�gH9�9���\���Cg�PՃbj
�2��X�,�m} �hO~�� b>�ri /��.
�w�Ui�k�
6�l�#���>���������	;^i质k9����+�Ȉ��H&��ȡ�
r@�A�
r��e'��])=g���4ԗu6��F]۩��������	^����6"(ڙ`d�.pq���͵u���ƾ�4K�Vy<��R�#���g�
u}3�w�%:�t�\a���w&`��9�|��~�;2>�m��~�%l;�T
�'��9>Cp^��.���/��#"���c
 [...]
+�s-]�g���Y�,{�3�H�O�A֙�&�lg�U^��LP�V{�盲�����&]:V�sN煂
I#vi���<�N�
e$Zǩ	�1B��!��~�����Wݣ�wjJ�e��5N�r��� �F�3/�#����z��N�9d��O\�FXE�p��*ఈ},�3S�ؙ���H�c�� ���9A��
�D�N�2����\�u�C?�c�
�(Ss��́�>�aŭ�.Hȁ�Y
�d:r��Xi�R{�����N WWG��"j�����>)5�+�E�T�vOB���XeM���s-�c�‚��IH��d����S�I�������3��W���MSsV�J�-u��[�x�=R���/2	����->֣{_�ղ�:b�����5z�R#�RX�c{��D�
��La�O�����R�UbR��e�ֺ�o/v���/��
��y�3�R���m�WS��jL�+hp] =�
��;M/>\i��S�zq��#���ފP���{b�s†U1-gm�0	h�9bK}c�!���t��:Y�W|^Ԝ.�7n�d_�I��싪�59�;���(��K�"���~_��g
�$,�ß~�?�f駍j��S��|��"
y��$�.�ا��m��	?�[C*������Vu��*���as\��b�"�~�Z���z�ȡ�K9\f <�^9]n���{޴����Pc�|
+t�s
+

��X���GNL?5�R�e�؍Q�͇�+:a�k/���_��X?��|�G���OsK
m��ƈa��G�dG�xt�-3��L�ܓ�K�&�y�ܻm����N	$�&�e�k�[��E�Lܓ�J���]1��U�G뉵�|��>�x�=�ߓ�*��j�SFH0w@^
Q⮌VE\�
�yx�@��z�6M���H��Y�9Z��*�|n�*�ޛs�!)s2G��L�S 
/�i��=��}b���r�����}��_
�W�N�r
-�{�2Fށ��pʱ�2|�%��RK�u��"̧��7D�L}s�Ӎ>dꑶg�C���_�h1��S�7�_�M��jd�
�\�P
rjb"�3ЈŎ�+c���Q��������=z>f~�n��񓡭�_�'��Nyd��\�%����Ҧe��
-M�AL�lC�-�g�����E&	�C��
4էAeY'+_� ��71��������m���$4֫��.�i�K6�=2u�n�
�}
+��Ж}�1Q��`g@ͪ84p0�K��V��9�lS�Y����n���[A.�^z��|4��ݨo	��
�0�~ynmU���Qc�<��b���ܜ�&
��U.=��W
Xȳy6�+��S��S�V`/7F��N��mm���"
/�*�nq�_V��c=	��U0�4>��	��6�x�ga��8�����L�{
IJ�U~�ن����"��T�e��C��1�m��=^ll���95�!�����"�~3D|��,?�_��g's�����3I�ۓ�]���b�����ī��w?�,p	����af��pU�Foų)���,�����$n� o�
���=/݊:�MRS	��t�$�J���RW���=ק���/��c跻c�p���hk;z����^����(240S�qd�E&f���1.� �<L��ĆX@��b�뀖	x#>��T�t(�9{b�s�
+�0�p.EU��P�������P�SI��Zڎ�&<�j�
���:���8g��	Ի=))e}��>F�r)��~=鐑�u
�[NJuJ��@�=���p�)-{
А3u�l���~��tA�T�bw�T���ύ����M��=��S��,�x�
����K�:�=uc�3+��'j�@O+�DŽ?�����zkh8���O�8�C#>�5�K;_��خm��Z+\
�ū�ʞx�\�	�&�!����$]S��^pȠo?��u�Q��Tg�47�x]�
+
�5Z�bk����_h�'K�5�#�ȥ.�3�

��J]�9�sL�m
�P�b�Z�2��L0ӥ��`�\义��-
�@CH?5�JN
�����'�K\��jC��8.y�����

	x8�W����F]����������zm�G�Bn
�C���n,u�^w��)^-1�_��f�@�/�j`����}.co���z{�m�(,£�*����盂��:? ��7u|�l���V��
��*��8 �s� /�u���9ү�B
rV�M��6���7�_�
+�~W��X놾��'�s���6)=sOJ�Z�,��D}�&�hxeg��	��*��`�?�+�N!^�
+n�g��zɺ�؛|QӚ���Pe�_%�;���{����S��<
+r��?����)n��C����Q�'��|����;��q�uJ𱶡ʧ�J|�rW�
SS⯞t�[Á)�!���
(����E��D��h�	
�.�;R.��>Y���hjI9.i_Z��D��<���
聎V��S�XΉ���D,�i%v1�;K��͒Ҏ􌊓��"�:f	9����$ܝD���x��ϸ7�
�曁���V�;���k[�6���hxd���uHё�C�7�)/~���]vJЀ�knX�ś���L���*
rc��	��Xsnl�g���b�O�9���V���nccOWj�>��6
��#=>�..y�5�vŭ$��<�olt�j��bf�G��v*�^
����B�P�N2Ʃ$�{�,H�L�C��?00�^-�W�2�L��O�ܞ�Z�% z��u��е3C�Y.��Sx����H#�i�
1;ge�Wh�
)[�RMGq�B78d�c�C�s��f��R���٪�A�T܊c���o`����<��+��������5Z�w�����#����^����5m_���ty�no�%S}�͵aDҾAXg ī��~Y���C8�u�[���p��d���_�L>�9�`���$.G*L��e����ݦ�/�:���3~�7��~
��V:��8)nc����<&(p�k>]-ѭ�@6Ƒ�V���wDĨ�v�ED�[�����~�c�O�\�Qn�g�'�1�iv�]�����:�KZ�īFF��Ȇ�gX�V<z{���S�N�k9��!�s��� �x�
�G�}���?���n
�pc
b�"Ů�V<4�e��b�}Ӹ�c5���TM8��;MN��Pr>/�iN�s�jtl�@��jI�

�����Y`�,��`�A���՘##
f��t*`�v)<�����l�KE�94�J�.��5�%��h���e at E �7
|��a[;�ǰ�V)�0ȥn��'GD��z؟���+{xnп�6v
�
�YrЋ�>�`_��rOÒ�
��4e?^�)y��v��[4�s��� �b�#���؇F:ac�䐖�
���Uᇃ���|
�d>���qvIɳ?֘��9&ާa�\jh[B+��޻��
����i�%*�9��?�c@ b
(%�|ґ>x���&�%dئ*_/u����[�(��?�7��
+�S�
��>�N+ 
,
+h�&��u\����ph9H�\[��t
C�

+K}�����n
�}(�f*�%/}{`$y���m:5��7�o�2J��"�y��D��򘧫
��
�TSr�5��M��޹�O�O�̠�=3�w�Fd���K�&�\�pS�.ړR
��+����f��G�/V��^YE�1mR)��_��y�DZ)q9k"p��<�o�/�
$�l�֔���69�x���a�+��Ud��W�jP~S
ţ�.tWJ����Bׁ:��㢬S��'�3S�>���<�siș .�ئ�		��1�+�I��v	)�!F�
Α�|J��46zg�L-H������e���P��)FF��z$�3�s��3#1׫D�ZD����g��D���B��קz6�`��q�#�z������ǎq��~����g�)�|b@� 
��+���e�C;Y$�٤�7���>^m
�.5�Y����E.ɫCǟ,���`���2�
)�)G�;�#��� m{
�E��ȡ���,���6��inj?1ճ-����0{�j̖���!����|	�Iđ�\pf�c
��8�+K
3U�g��?x
f�rs0���P�� �"��_y�\��4�`m�*���(<]֝�(�~
&qs��1�s�����
+��^S���y�Ok�9s
�̢�|*t��d���qH聉G:[�
�
�n%�
�i��z�e��IY>.�&-�+y����r}��rM5�
\
+r��4�2V���2�|�ơ[�䜹!x��4
�
+��Z^ 葃���j]��&��5/`���l� .t�	�35����YVj�U\s�� |٨�=[k���Ք��ʇ�"D��Fm�KK)�(�~9ϭ��;��<x
c�Ub���]����E���|���
z�p�O�/p0���/��X���J|�����G����u�W�߻L��
�� �l&�i�	���df޳o
]�i��}��\L�_S�
�	ڧ��Z�7�r�!�a�
��cs5ե��g9e�Yn�����%�J�J�i�JF�����H�3�
�-�g|:.̣�A��:�OW<��*�8x����A8g٠
1&r����b{���N�#�)��J
Utx���y��'3@
�T�,�ET��A�,�ȫa�
�`0h�;�u4�m<��}2��W�M�(�
-�ҭd�
<���-Q�}�T����9}������Ʈ�Q���r��#���p�t�#��&�:���t�V�3�,��#

�%4��":�P�Nޙ�xn�1 ���L����)%�0x�o��p�̘�Q|�MBI���ņ�=)1	����:ԫf��=) |8�d��ť�������`�
pt
+г�~
!��HA�{�����$�
��
q�+�
�p�Z/<Y�V
�E�:zE at C�
+h)%ǦZ��5
豌��������r2�<��1j����v�����s����z2��y�UG��[�:��<� 1n
&ٳ�ž�
+���4��+h��b��&&*������^#6c[{�-C�� �~��ܨ��8G���Mm�Gk

_6y�#=.ϯ|����R���t�K]��
tǯ�T���~���6��¡ڴ,Ⱥ���R���{�q��]a��v8��}��q��4}����Vh�}
&aG��si�����K�:�g�b����0UU��1Ёy.�ԇ��n(|����2�me�_�M=�cT�ͳ�FZ�'���Z����R_�(��'ys�bo��V��~��
���5�@��gc �����O�Ku�Ii^55���O�c����z}��"�ы�(�k��BHp���U�US|*J��iN9%����Y��R�����?{���ƹ�
>L͜3s�O�>w{۲�e˶d+*R"E���s��sfeY�rs@�̙ȡ�H���95���j߹�aj��>Lհnq�P��������F˯U�C��ִ�}c�U�1I�<�����ar^`�]�+��zp�5�Xp�^
��~�=-�%���Y���IFIʡ��ܵI��Qڕ�V�4�
�>[f����^O�O� ]/��jK
�]'l	����Ӭ��F�_�*�}C:�9�.ClRF��'�
]�|�m�w�c���t
ki׶�O�O�+�O(G�a5�e�e��˯��~�le5b�Ҧ���IH�z/n��Y��^ܑ�[s
VS�ª�������7j��;����V缽��n!�?�v|�}ͷ�#�_��Ou��5Q�L5r:�)3Z)��_ؚ��[|�z�z��?�
7
��_j��3ZIw��O����f�mq
�,2I��m��ta�eǩ�U@^��x
�f<2aʭ�',bF���D
ī��5?,��ܟ�v.j�5���mj�
�~�."��S;X��O�������kbQ�q��:�[�$�L$
2!�	�Sd[�t������?�Age�=q'�%�g�`���4�͈[���q=��}\}����/)�T����#�`ԯMv�^�
u��I���R��;ZaP' �,�L�D���Ӽ6A�_�]ܘf�ĝ\��uq����9�+I��ɺ��zb�o��Y at H٤�V+3�kk��|�>��pyu��瘞Z�:jq�����XW��Q�狯$�����^��К�6r�ά��v	��1	��%8êX��g�
�i~-�~K�,&��O4���G
�6G���fnS�&芚�T[3w��&{��曑v���-='��ܮ������4�t	p
�zeRXcy@��x��K�]������if��0�`
�ͦ��ްeq�_�<!k�����J;��V�M��%[3�ƀAF�;UݫS���w�3�������b\��e��Q
��9<é�%E
r����v���	?�^��J��o�c�-�%��iE��A�	������o�6��l?���n��� <R��%ԤC�u10�|&ib7�gxu�o��2f1c{��x�*d-���yc�\1��I{�*��������k���W���lk�T���W����
�	^]
+p
��x�'�G4=
��t�Qk�M��Q՟ֆ;�!5K(i�������N��
z~��cb��0)/�]�׳[":
1�H���aז�]s��G]�7Rf~b���t]��_�
���!�u��\�N4
H�[8�v1jh͋Y�WVJ��T���qZc���
���[@���!&190N*��Zup�Q������F���xX���5ŭ�K̄#3/Hy��̬����[3�j������j���e|R��@�׋�ۮ$
��
�������g�m�_��s���}�?#F	1��Q�>f ,�����:3���		q+�
򯋛�
~M��͉��9�-e�f�3���_?[�>F��d�m����90�phk���
p�ά����tR��Z�>�u&��7nN�ӊ�Wq�in��Aӡ�a����Y�vsڣf~��
��=`P�65
+��{~��3J����g�oj���E����-��yiF�1;,k^
5E5���1�ϣ�s/���
L2������ʯ
�}�ޯ��1)�k��y�����'�f=呉װ��S����[�*E���Fg����q0�6A��#�1�ǹ�����ǵ��4���ˎ���]ǖ�OE�¦�^N]G�������󦟢ZRaLG�
�tnN�\\�\�{Ds�rm�x������$�(8ɭ�&_��2v��������ZĪ���7"��[�R�>I)�߯����B� ����;�-��]�O���)RQ�H�L.{
4}=!.�׷�s���7�\aN�
+:�j��i_}ӑ� ]�(�!#�¯cW��JA̮R��3KVG)�R^�u˥q��
5��bzZUDǪLX��w�}��{;��
ȹ���K�D��ILB`_�ZR����A�1�sV'�ND��ka#��35nSȢ�;#	��WQ���Ѫ�nUx�]�{X�	~�ߛz
+���_���ӊKY���5կ!���Q��.�������҅��'�+��ے�P*@��&m|�Xw�}/�.d�Bz��j
��9�W|v����˪�}2�;���
,�Q#�
9?a䁗�w,�Ϯ��o��.��8�i����'d�xy���UR3JBӼʤI�K�����W�4�[c:NC���@�bDϭ��xM

��_
7H�PA��i�=��^���)Fi�&$ ��F%7i����]���"�E� ���ͼV����SՊq!5�1��9�U�sު�
+�Nc��C+'��ݜ�^A�$̈t�����J���Om��El||�9p'f��1#��w ��A����^V��}T�/�
|҃��~�4��0~�E�qBc������8|)?��ӣ����a�յ7�֛��oW}�� �gU�
�z��$��	q
b�1~��H�i���p�+�cT�jE]��N�"l�65"b��-��I����ɶ�1�* =5�)�����7��nq���6
+�C3���4���Ӵ>�.]z;
���W�y��W������ם�Wް���օ'�-Q��cy�Y�~�u$���&H+o[���#�jYU	�#=+'
�w��n��I�]\tq�=�t��8�ʖ�T��3[w�ba�&�R�"f'�黷
�3
+���u!�o|
��A
�)�R��}��)������C�rq�.$�\f�&�&�c��鶣)����ŵ����1F}� d|�*�}�'Hں�����|/���"��~���YIH�i˸E��sbQx�S�9�w�xny��H��n��cD�]�k<4�����
�jq�����i����R1P�f�rN�h�%��b��89�e����z�v
�Jsni�'�l�ʥ�K@��
M�
	Ov�����zvj��焉ߌ��I;%̴S�L���a
�JHϫj儰�G��eEu�N�,&� �Cnu���Ĝ�&�G��mK�

�{[ϕ�7�㹭Q����[���5[��ƍ���ݲ/V�\��y�iNE|j�*d�.)7�� ��#zvM�F.
j������?/�ں�Iˍ�[jf��I�_f�W|�5�z.ec6���n��yC8�2ή ���
+�
��>��u�@����;�zf��Hg��9��[�-u7#�����/O��~Tr������j���q&��611
q!
�b�u�K/ʿ�
MZ�]I��ø�W֋p1���
v<ԕ��
�lʏi�8�K첸�[���}AΛQ����w&e�Ug=A�(�lLr�BZ%���u�������?�n���v��3�庴��q�i�L�:�oC���.�y)�6̸�J�6�
���#��x�w���g�ef}۳B����n�)��H5��ɇ�f1+��f��*I¢Td�2��e�M�|�4��5o��d	'�61kA���5�ʴ�׵���3.f[�@�\z������Μb(�c�ξ��?���ە���!G:�O%j
�
3�lB-E�RQv��)�+
���[v��mC���U��l��8���չ2�u"���DM�֭Q�Y���/̷/}
+�ԢV�5�L,H �fl"rΩ�f�*E��kp=k��x��_�����K���B�ά\�='��~'��eD�mD����T��շ�?��n��?Eɏ95;>�`gV&I;Ĕ��|@�a�
�(
�<�
R9?��o
�J�~�gh�q
�,�e�4ܚ���K�gM'7�.��억����5߮b��'��u{}�[1�w6:F+��Q
��
RK����b?jQP��/��
+̵�������iBi`�3�?�;�5�yeeeK+�
J>bW��
��q�Yˑ�7��-��1
z�V�>I<�a��,����Y��_p�r�3���/��g�fU� #oN
��s�<Oi�
w[�o�%�sݭ�V�*��2P�i4w�&"���:߫�C�e��ڎ���\�&�lM�+�j^cD� G
��Q��ks���n�&�'~���8��Cq
�#l`��,^�W���6��J=o;�XqJi�&�' {��n%��ޘ]�Y�v,����%��
�a���kV�~=�(3+�f�=7���sےN	;jw����$���8)?�#�N5;�� 5wstUͮ
+�U	
���p���|������eWF��!�P�_�+r<&x_���Y�{1���
٬|����]M�&�%��������R�9�~j}����$�\D�;���r�\����D�q����\�C�;fRV��NjUXK���r	�y�4��s?`�V��u�g�ZNMx��}��gӊ���{Vu`c�
:�ߴ�Zh���ֳܳ���9���v0��j� ��G�%m���v�<d�6�^��
�~v<��
����y
5���
9a�d����A�Bt��������_{�;��$t�+Y�%���Vaj�P�|Q=��?�q1�KRvf�
�3��[��o_v
Z{�|`�e����.�	�7
;��7'���~^�X�6�x�}}sBP�t��ϼ��5~�Q������6߶��
�yUQK_�܈�z}ZP5��	�'�G׆[~^n8�6�q>��
w����EBߜ��6F��	�ӱ�7��oM�N5�+I轸�SQ�.gH+�p�:F
v�'4�zj8bs�_�>.�]V.>'
u�i�˸������?��!e��g
����vmm�t
��9�'�ZO̽h�~�M��4�2~1�����{ʅ�睧�^��EԔ���^ݲ2���K8��[���L�m_�'���H/��uq)]WaPM���pZ�V11f��5����O/��
[n9��Pk�n6>�aS�VV�
+`��(�
�
+^��H��ͱ�3�j�d�~\�v�%�!3�����a��}�
}�6���g���Cs/��u��
2��[B��aÁ�aBqn�:j�q�^.,=��>0V�#x�kI�����su�K�m��'I����t����3~M;x{�uu����Y�L�H���V
)�+�.=i W�M䊈���	���+�aWm���?���U���iS�&�����݃��yJ���|2�9�9e_�"!�&NCl�R��r;w�n�*��l���Q��I[S�d�S�+\^��v.�T�<쎌SD��z�bjNmL�(Khx
I��3:I+]xR��Qu����^��RKRN5��V%-���і��'E���
LɅY�5���As�| �I�'<�yzsjr�r�?�(�uI��
���������g�S�B�*"�V)�r��K� ���'����*�b�]�����S�i����!aT��^��(�:h ~�#g�"^�+d�.���v�+����e���A�]��g��IL�iUi���c�!��S���WP���D]�W��t�^{�|<��8��E��FNZ�^�=__x%�
O�Z�S�|���߯��<�1�~$b`�GMJ��� 8�mL���VԵ��̰����f_��.C[a��8���N�W1
�8ec5d\������o�d�]���©�M.B�R
�����bXӼ�
	�
��
�ɔ��os�W7��z<
9�&\�:.��N��}�:�r"��W���&�^���Y�ג��,���m_�� O���mM��I:����3�ae at M��u�9;>7��T�o�~������G%_���
��;��{��u}�~
��*m�4#&NK`��xu����(�\PG�L�����v
t�&�[PK)O9y� h��x�1�B�K8]1�����l�4jⶅu��̬@ZQ��e�r
F�_�(Y|G;��7��"z��{/���������u���)b�_�
�k��ۦnAF/��]�ؘ4��$,]WǚL ?��ܚ�)vIP�,ۙ��}E��Ybu��������/:~�Nqjb3���Zh�p����K���K���ܼ��6
�w��!��#��֧m�꘮�pD]�Ch��Lp�}=��6�B�+�ʕ�u���[xܸ?8�}.NX(g���5���vHXq
�x�u�7�'W?[}E:�P"�I�(�D1N�d�#Z����W"m�t
�O��3†���_s���)����ےtp[Q�
��Nx��
�l�-��IZ��Y�2ae7f<J��'G����F����Q��_�}��Ie\Jj��W��N��o�
�
��[���w��ZIY�]�}C>埠m�R
+w\���$�m��<	N��bZ?e�.���Ҩ�<"(���є�[�q)�]B_�$统�
�c�I�뭌�[|���қ�׆;�R6U?⺯N�e���Q��H��o�L5^}}�Ͼ�W>?t|sE�*�Z_m�q�jzIHǨ@�VnNٟ�S�A�;Cm�ݘ�^I��ԄUH�<k�1n���$��8��d����T���R0߹:�ujy�r����Q�4��;Nz�̲��c�MJZq�Ǖ_x�v
��D��I�X|�ulZy��7������'���X��>.J��ۊ}�@�%�o{�|�fW����;S��?D��W>.�E�KR�_M��{Y�
����n?��<����zɑ��.��ݿ�e����X�ӛ��ʌ[���	(�q����

�.}����߭��|� _̚����ߚ����fNC�J.F��K���\�Ϊ_zO�[}'�
i�����3�#���ʀ�������o����{A<?&��CҀ�
+�<6ɯ���8���\
�$����]��긎R0��ʿz
]�G���&^3v*v}}u�Y4��|f�
=������/p�i'�*��>�<r��sGvf���K�
+N�
�V�[}S�Q�+sf9+�Tn-b�12΁�O߭�Eе6�p`�e���$�bʢ�m�T7����D��ye���G�H�T�רN|b�Q���0�Nn�_a��fFEnN���,�ɸ�$x�հ1���{ޑ��ݺ�y��Dž�٥�c�[~]�����3�3ڷ�J��S��khז���F	9e�ВN}T�([|�|`�u����r}�ņ^�`�փ�עa3���,��������[�s�E9�\��_������*&��
+I
+�>l�4�쾗Ȍ|>�dk���³�ϗ^4}�v�	;
��̬�'�p����
a���G�z�d�TC1�L�S���ɮ�	�����F�;ν%��ۺ�E_Hۖo��O�oZ��
�#&R�޳#�B�/���}Ҍ��k|oL������/<�/�x��i�\�������pqD\���:��X�y��'��'�N��k:�6�y,\{E]|K�[����}ga�!W�uV�̀���
+
����;�Oq
����"=+`�C��2�N�הw�=z��k��(�=�<P�k���f��e���ܸ�ǵ7u��c�M�?�	���'��U�%��b/��{���Kd��^"�-��m���n��Dv[�%��b/��{���Kd��^"�-��m���n��Dv[�%��b/��{���Kd��^"�-��m���n��Dv[�%��b/��{���Kd��^"�-��m���n��Dv[�%��b/��{���Kd��^"�-��m���n��Dv[�%��b/��{���Kd��^"�-��m���n��Dv[�%��b/��{������}������/d
+:��4�?�ډ���N��������
?��T���fu�����t��������}�ˑ��}<*�ʂ���w2���;����'��
�w�����
:}����>z������>����~:y��3GO�9u��>���A'N�t���c'�
>q��}
8����?�8~���ӧ��<y
:v{֙3GN�9|����A���c�����'
��>���̾��kl���p�[rG��~[��T1���2V��ZLx
S���DO�r��t_c�'-�~[N�W
��Op�G��TN�׶���#��
>�- ��	�?��'�ן��
�8r���=���������"��y�N�8z��'������߂�匘NN
���in�_�n���Mi�
1�EԤ���Y������s��'������4�<au�f)
1�Y1��3f�`Ӳ�o�]�5���*^�
+�ߓ
+"Ӕ��
��S�E5�g�	5j�q;b��K��#
̈���k[c���86A�p1>�*EԒ��Y���(Y}ǩ���m5���$����柣jR)�`��Ԥ+	�&iP���0��bZFYD�(Y{�?�h8�;���UH���m	���r��q��ss�V������t)<�.Oe̘V��L�)��%툦W
��|����i�v�y����I-��KI)���2�qb�q�����V_�
[~U�]h�3r�Jd���]������)EI��'����J�攨�?�mEm==p>]	
�1cR�AIY����]��ˢ:^}Pþ
3p�f��p����GSzU�*�n�d��C.@`O��ȗ7�i%	�B�ؔ€�^�WS
+#�F)����IEq�����W�^7���ĨI@
+��i�T��S�N�E
�% %
r���nj�⸎r5i��"&ZŎ^�%a�
�s��vn{�H�
51�P�����Rv-�TʓV!�
�3�Q�6�ljHW�f^��um�%����;�Y�R�z�U!����
:���]�A�!��{i��󴣧����]D�x�$l�u��nN:x�����s�Zv5bS���;I�����$�Yeo���ǭ�
+�N��Yȥa-�ps�R��Uu���X��)�Vl�2�p�-��q5i���(��OHڙ5q=�$id�aӁ��x!=�zu�tnu�Z���ˣ�
�inU� 5bQpAgDK.
kH��u~Xp=a��A���A
��t�ɘw5
�FBA�Ȭ
�X�!��=nSI�zq��������7��N��;�FYZ/�y-��W~���#�">aug:�V�^���hշ��r-e�P����d
�*g%�P����J�	lʤ�V��s[Sv^{�%�f�ʤ]!��D����
�6iv P�I¹�7U���V~���,�NN�kT����ƛ�
��i�e���t9��^
���/��a��
dFЙ��y�)ܙ�'E�_~U�URO��ԓ
P��.� 619�M��m�L�tۧJ��̄MB�Z`g��73^U��l��E5�ꄚS����6vc��nL[Y5q
�1e�s�fzuBG���C-XEĴS�H٥̔C!L�zV97��
�*�G.Iz��S�LA�c��pqڽ�-?Ϳo?����{�|
+efVu�“v�%)�=eeT&����,��D���F�%ljbS�91�6�`Tg��ڌ�Y3��nN���
Bb�~�I�}�U�)$����--�_O�O�Ť�پлҔWHþM?��q
>
�Ŵ��V
5��"V>.�Mep
����KՋ:T
+�!�d=<�ߖ���G at C
bZ��nD4ؤsag̮��d<l:XzV5�pp;7��Z�l�ac��`�@��}Ӕ7@��w#���i�/Z�$1�^��yd�~-�r�>�(��w��N�s)$Y������Qz���j�(��[8-�%����]M������7ba5����f�}�wa���t��#1e}�k �b�4gm즤�\�ƝZ~�vpk�V
��Y����g�C���c����u=��Gf�W�G�NnU�a�
�B� �������[�M��ZBi��nGL�Zz'�=f��3e��F,
+V�,hMZ5Y7��ìO�)�q��3iQ��	>0)iB
2R��o�
k;�~p��m7����F���Q98%j�f�o��]
��^@�Ԣ͑���G��Ͻl��t��+��S�IŠ�o�έ�j>�輜�P��f�%�J��&�ߠ��9Owwέ�m��⤍U���A]ra���;n�%͂��M��h��w���m7�4��'ǧ�MiK_oHG)
M��.1k�'��mQ9�qK8	����*�q�
q�����	��t��*z�s�C��G&HzD�55���=r33�}
��Ş{�yխ����
��j#:\
b���[:/�M���<l�E� i�+�=�f��rI�A��8�:R�]T�n�:n<M��n�,"b��m�Y
	�#avf�
+%����˹���Ы���7jӓNjy�I��z����KN�I%[zj�_�o[��p��u^*�������fA{��j�v��%?�&1����
<D\
+p^G�@-�[��q�6l�__���s=,�f��0�7�5�)[~�?� _��8M+�6�ഢVnsڡ�
=��M�OXd���ߔԋ�S���cUC+�ު�<0�kH�Ag�ma�"�!�&fcΎM��
�^�蘵Q�$�Mp�[��j:fy҄M�W"V~�Tޑ����^}C���~q�
=?:î
NR��G������]�0s}oڏ���C���˒NNkXO��XU��Uxݚqf�d�$�bV	���wfٸ��X�u�E
䂸�^�l��
!���?ũ
L0�/�]g7ߵ


�O"^��{ܑշ�S�qV��{��0�l�E�w�[�������q-�!m���v�p�X�wm�zoea?����KoʿX
��.0�u.��_���I;BB��o��e��S!͹������ۉ:�Ą�ۄZ�]Y��������Y7�8i�8�*����Z[k?��:�
��Ü\�j%�
3�ZV)#a�R�и�U���A=nfAu��
+Q�L�z���CI���B-�$��y�j{^*��J)��g�R�M���h%9����qs>!'7+d��\\XO/C at SEM�jl�d�*ae�&je7 f•��Ӗ�	��a}�0i�Qf�R6u)n�࿘���
��U�2sRitQn��qf��5�
+`�k;�&��Bff��(���� ����4�Y1/��Ҁ)�
+15��k9�1N��v�������g0�齕t�x���?
�ںߴ��!]L��9����W�N��@s��=� ���-�*����m�k������n@2��	=�6�#^L�_
%���y����2E)�<��
+<��BMZ�䈖S5 )EQ�<ia�mM.,��:׈:w���)l
+��V�S��
�ҍ1��1Z��=������U��������I�ifId�pa
�}�]���CS�
+�5N^7
�9�0u��h~�j�~�h�OF���q
�}]�m�#��H���o�A5�\X�?�/,
�
����{�?��J^�Ȯ�
o?������g՟/>��rs�tnq���C=��wh���4����*�T�t�[Z򕠞	�'��0��#���cؒ��9x팏OI��Ĥ
8�:e��*i�탵#�6~g�Ũ�0/��f����ټ�!^�
g�p���� �}�g4#��aMˑ�4��t%eg7�
B�-�f�J��J�6)��
+� u�0*�fU���L�D̴W��t�V�%�Rvڭ�l�)���sAn^"���g]���ӎ���s�~�{{,�빝��I3s"
+k
+�W��y
)������9G��,� xr�Į\:
~�Z�ʬ	�W�B1�;BzFY�%ae��������*ۋ��
����M�� ����N�D�����T�A�	#fL���������;W�T��
��%i�4Du��a
�0f�]��Y�	��=�(��&fW�BF�����nU���䪈�V�x^�y�<x
�	3�#6A��oK�5]�ٕ��oWFk��v/O):
/��^v
�jX�kzAKxF���p�m���
ɺE��9[�QP+6%�3���&BAD�zb�u�˯;~�i�8�!a����Gu캈
0�ws������C��u_�!��;�������d��'��“�s����
�00�?��S�":�՘�^�r��a
�dk��l`���x5�%\ܜ >ӕ������şps��
nb/���g(W�jjax���<�q��ᇵQ��$�(6�UϬ
+���#�?.���K`�ta�]׉{�S�x��} -
XIM �����I+�0�
��4xY���
�C�.�������R� ����DA�'m��i�L�Y�PG� ���B}�.^W�J-
��Y|�����,�Q
&�쮔�Ӟs�Z����6�*ji�L-I:�5��L��
#���	;xB��N��h�!�<�4���
	;
r����μ�;�@{�3�ٲ��nx(�15n}�
R��P��S<���T�qE1��(�M�9�Q3������:��i@@����`���hʸ�U��c�ιM3�*���>�<�S(2�rE�z�<"��*T�y���;�|��{���C����,p<��Rnl�*�9f-�ik��)�
�2�>abAmc��ǃSf�}���SE��D�R�6�^��m��9
�i8/�������&�%a?1ވ���q��]�r�i�6';�������A{��/����zakDˬ�Y�c��ؤ-��6��W��2���xs�U~��<�ztk��������H`��H\�Ր��:��k�O��[���[�󯫾t=���v��߬���d��aV��W|����ض��K��M���H�ϫo������x ��?�(BL®�SHI;��Q��ю��Í
K�����G�!
~$	

�zֱ��F����t1abV�lܖ�jh�Q��䜄�׼6�~�q����pG��	�|�~Nh���n�8�i&��2+xY�J��KYa#�,b
�4뒰���~3�q	�Ӂt�
��.�6�
M۩��T�^�Q_����w��� 6C�u&1c�/C�H{�����
5��^bǧPa�����0s������Y�R�q��H���$ �놈�Y���@g.��

��||j�'ჟ #vf=�`5�
�2�3�I3��!�%㥜|B�
z�-f N
�#� �e����W"H88
qx]�O�V���!�(hް�Q�W��#F��8��v)3
+�W/��<|�O��{S^�
u�ۋ2Ev��
�/�9Ս,h��T�z�D�g��0��ݓr)�)гi/�O�~d']܎��]�y�����7RK�[�z
<L��fU��N1;bb���҄�[�u����ֈ�
+x=彧�|e��m�� dd���k!�W�IjQL�kM�Č�Mص�c�9���_}C���E$��bl�Y������7⊵e���#m��K�5
�h�x@���>
9
}
��JW'�No�ЊR�^yD-nk8U�c���$�44N+B��JT�kX{�v�v��?��Ɲ��hF��btL`�t�?�v$<��֙M�5A���J頃;���P��V�C�M����0m!\N��\�QA��Ԍ��VЌZE�4`_�#��]̆���HD��HX�2�$���&��v Zn=�gW��Iq�zc��������Q�@�rb���&	1�fr����+>��@�Y~#�|i��7Ii����M@
+�1^a�%,"ZzA"Ag�
+�Mz�+�&=���r)b�VƌMGc�����\�p1검��9����d���|���x��0��Ԛ��
��U
{��xT��5K��$v-/�
+€-�z��l���zEL��m��h��,A���n 
���r�~�����x�d��iK{9
)짛OD�|��
�諐��;�(x���[:�>�)fbU���v��-���m�E�a̴c��o~�!"���&@SP�����ށ�e�v
�=�8�|�MC������i��y�㸄M�@@�b�GAk�e��9�8㕉�v
��m�vrx���r��{۳7GҾ��1�uc�veyXT����w&2���v9?n��:l~b
;n����]�C�D=Je���7�(�E%A,}��U	�=�#lh�����"�,���bf`�|%6�o@
C��?#m_��WnA-��m;�5F�O��l�
�SF�Z�R�ME����Z��o?�f��-Jq���o׊;P����D��u���pq�u���F��'���Nܹ:�yr�m��EBK�%���\�����ǥ���Wsk�V)-a�ш���)����T���t��1u�1Ā�-)�py������s�B�u�z�[�Q���:9mq�1�5�r;� [...]
OA�D����ҎOP��Q��w/�� O�
���iO�]�GI�"c%���,x��O�A=�6��j��r:3�b��|�]�Sh�r��n�K��vf�=���rH�9�K;s��)W� ��
��I�����$��(�zP�����
+�E�rv��-I8�L���&Y��k{V*ځ:��$�̊�q'�G�"n�E�
M���ܬW������[�t*%a3�<0�v&e��3�O��*l��G
����%
BRn��A�1땉��3���s��ӓt)DQЬ�Iz���v�mN&��:�
�6��ˈ�ݘ�5�z��7�f�=����E��vy���6���S¶�q�F��ˈ��p*l�;�p�$A#�rm�Z��S6-��s�<��r�)�%S'�'��
���u*^@#nIە�C.^���M�Wuc2��]�Ls���
��{^Yd��&eS���VPs�t����T�帕Ӳ��hz��{��S�O;��I�R҉�����G	g�ǙŋO�Ǣ�l�<̚��\��a�����׶�������A
��0����u_o�m�):E(����"r�\}_d�Y��!5�f�E���0�r�,�����u���sjW�;����"���qFY�!a} =5 �z$l��䵩��Os�"6������3N�
��
9�lJa�"g%��ǯ�_��^�S|�x-nu-�%���%���W��|�j�&��-솅��#[Ji�>x?b���d�~�)�y�F�ud(x��Y���T������QNG�BB�-��<Jn^���,�|\	�.=��Trx(R�8�빉aq�)ec?̫n��ZԂ/Ĵ-j��%�
+:b�a������;��V�}CA��w(ez1��u)��d�2~�'�!6^k�ȬJ��̼���r�9�(`ⷅmR.�*���q�S@�Y�8Ж��SDI�����
��d)g�����y���$�ܼ��?=feA.��b��Q���r�
d��
d�ޤ@+a��s���
�he_|�|���s�}��/�쿝�ʄY��[)��H��5-��S�;�K~�/Sk�{�gzy�z9
+:�
uH�	��
6
:���$l������
p	�}i�����
hUܕ	vI��;�=�
�-�I��7��1��+���Čb����a�ݸs�ݺ3
���; :��ȘQ
��܋��!5�lu�P4,(�4��y
����lBB�$舘��[3���w�S��Bۋ�c��O7�Rʷ=J���i�Ӹ�Q�1�r�v��?�?�܇�ٍA-�r�U�)T'&�-F�����Lv�Zx^����Þ�����>���,�q�x	_��<ZDϮ	�pg&JY��iw?�ߟ�r�?,ɔ��G®�"v^��4���8�b�,����͚/֟KH	�3�
|��߆q`h�We�U������QR��4��TOշ	u�������눑ߎ�J�Ȫ^��<�W�+Q���V��d���p�9�k��;ø�&"�5��FF�{�˯AK�d�mo��m_��K�A�N�M��X��{��
���
�ה��x���|��
�H{��b\�5�.$,�r�(�$tJj����An^9����ٕ"�?cv	ki�U6��u!c���sA����bV-�i��
0sq+��a��0	��2nѠGe�O�X�n�9$,b��Iˡ���5�==>�ْ���K�	�)��\��(���:�!�&��}=7R���켲zD���e
�fDz�@B�;u
��>M8�oe|���ޡ�~�����
�ֹ���_��ö[�W���eu+`�Qdg
g}2EX�iݜ�%��ƈ�^��qZ��{Ӡ�2��(�z�"���o�p+���l/(�2
".�J�d��INK�>�XymK��
�4}�d��f{nEL
+FĤ���w�=:Q'b��aϮ������J�znK�*����Y��~S�(�E�2��iשW���-?&]CO�0�Ī�ȅ]y�O�'��36);a���#��9C�"0�o��uу�2�;P�5�f���7|�l:�?�{�N漪;!
�>f嵧lr~��ݍ:q�!u��wz�m��9�<=���2/'LrA�1���	�)��0��W�	�Z�4
���ҮA-��
*AL��F�D
�ia{T+�韷
�V�/�	�u�~��Y�°&i�t�r���
[~Ǹ�I��C.��̈Yɏ�%�
�^�
�0�����;��[bF�����KXĔKDC�{@~��B�N�e��7�˯D����V́��滄��p�v�װE	��gp{�{`�j�Et���A܅X����ݖ���i�@	�3�3�8��@)\��\
L	�s��ބ�݄:��mo�ô�[�a�6l9�kjF���r�("ΎP/�-�b�;�<5{�]�sJXQԲ*�_NmM�[0�D=�7�����WލzU)�B��Jx���qQ���"�Q(�!G�w�f���T�(v� p�#�����_omk�դs�	�~`�9�
�kw�
JE�̨N9D�BI�?�U*��I��Ӕ��������[��� S��C�V�h�7�8y(\�;�6�B~W�'�,�1>S`�"^U� �F�R�Y9?��sp�r)��7A
���b�na
�L
81I�!
�rk�Q��<4þ� �X
!�]yI8��F^CHͭ��-A��~�==?<ŭ��
+>�ID��N��M�Ur�.=a��=��ք����8�"
+Z4���'M2��݁�7��gg7�_yR�u�=�xRZ�.�a�&�vdm��Y{�2�e�ƴ�ugZEˆ;�sP*7��g:����I�{�	�������ٞ2w�9�m��]�B-�ʤ��
�|��~
5
+qc�G_u��{�8o@���T����5���*n��u�����_�?3�
�zI�!����t�� n�Ѱ�f3�� ���x���_j�8d�,��^�������
�g�qGw��}}c�r	0�z���-��n�
���^���!.�sZ�A��.�N,hj�O�X�w���6��!ԅ�s{V@�yy�D(Z�?I�ʇ��-�t���T��R��J��R�ݝ ���'����-.wH$H�v���
ogއ�%��}�^�'{�}b_m�C�ܐ��l�>x>�L^��j����i�<�����F;\f���^� P�� Wy4�H�*�����)cR���e~7�9D����
8+��Pcѝ@���ݓ	����
+�D$X�D��䔟X����cp
��{G�9��S�5y5:qss<���(�0k�_��(8�r�f5���db�S� ���3�	��ĸ�ӹܚ�˅Gs��j�E�O�Y��c�N��9�ә�����9
Ǭ�"�rl�%�#-�|4��gE�F1�/2MR!
��҃�/��ևP޺QR����4�í���vF8 �AN���"�+0�k��6
M!�W���Yt�=�h�1q��S�d
�e}㧚�:V��~
	�!{��3B?�16�	Ô(K��jg��z�ao���K#��'E�M��@������ΠG��I���?R2�Rr��)f��)��͢�L"�ZB��`�6�'*�Ă�b:tw���U{<#*8Ґ��eH�=	��PJ�
+��iQ��Y�I3�㜴�^F�q���
b�
�	1G�(���d"��@|�;�|�i"�4�8���Ns>z�P��X�_��L�q�
y(�,Z�pɞ
a�v� ƚ��C�޴��� ��ߕT�J

*
+���Ÿ�Y�#-�8A�;�fRf�U�eG����ͧ?g?5
�s ��Ԓ�M�����)l�u�� XjY��
r(�RJ�kV�0�/�o����{�9�;J.Q�����gx\�
dVR�U�t��*��H���'g��˨I�rR�q�>wY���O�
+fٴC�
����}u���6��
+�f�KOf�N@�Z���Z�h_�@��f�8P�
���ϭ��g���ͳ� o�s�w�+���\��E�S��~C�|f��
?�x��؛F�.��ٝ��՟���-W�pկ��v�����1���c�X��\K����
5L?��~Ή��
�ޢ�J��u���N� # �ʰ!�C��{�2��qJ�l
���0�
�౜��'���bm��_�zS��ƈ�f9�О��s���+C?N��
���Gn�Sİ#�|�0S'#��v�>����&ޓpq�}��ښ���X��Ir�C���
�cH�K���G��|���t0��;�s�r��/���ekC��F���vb�i�w_���sb�2�8AM��I�$,4��b���3-��
��
%헖��5�"�5��]	*pw�q �b
C
�� �3L�8P�{���@�pH����Y�`c�
��%%
��
����Ň
I��S5��'!��aN[)����e�=1w�`�����%9�@IM�5�e��f� �b�ff ����iY��	�S�0�X�0
������t��<Y�k>��TX�gO�����sX��1���1�Ʃ4���ط[#ɟA��t�0�8c�՜�
����	f���9B��
N�4ʅ�-�����IU�x ��Ѣ���N���@��MD6[|��C6J(1�r�dF��k��q4KE���8�

u0K��
,0k�'�����G�Y%�����,���.
�Z.s_�&��=�̖~a�(����UJb¡��v�% /C�]�A���!&=}y�g�{��o>�-h;���9�r�|O���U�s9U���#�
��
os8��!��K�
 
>TgA]X�2�F��
�}�r�3!��B
*��� �{��,yx
�s:��Z�,5k�|���w��{�����2N��'�$��T���*3������~�
g�O��'^2�c�
+�@���H�
`s
��O0M�TF3�;�\�v/5�8@�ڟ9|�� �}g�r�����`s��q�P�]dVd��f����a
��h�I�5�o:�~vG�ΩF�;��0{r&r���5�P
+b��Ȳ��h��O��o�I=R�C
�hoӿ{Ȅ�})6�HN��H��
\�GMt�'�1�׼ �?�L��L����I(Й~��n��5(An�ӡfqvα���T�S�;I��O��֕�V?��t �S6��I[���#�1~�dW���Qf%�a%=�@�H3Y�{��Y�r6A?NM ^��D-�
Y��J |4!� �
���9Oǟ,�F�+&E�������y
�(#��+�}�t2M���
hJ�l/��b/�
�=!<���;���3���(��x&w[�'/M�S�Fh���6�F�iaƾF����.9Pg���,�_bVc�㸀=9�~:�[�?� �j�ѻ
+|�����E
L[�Ê�O��ZNf��O@��\�m9^䉎��M���Z�D�|��t�q
+�u���:�P�U4���E��
����_3\�%gw������=ղ���P-��sʏfs�f�v��4\�I��Ng�@.s�@
JD��3���%
􎔃���8ex!�a����SMV��6#뗖�9ְp��`3��Y��ٜʓy!�G>g|x�|��2,k�&	�{:�Sq2]�x��.<Ud�eB�e
�ҿt ���%�x�8>�,��$ŵ�"�A,b�Gy�=1{bnְ�)
��	���
�K^Py$g�uC���ab(�b@[�	L<�ab�~/ۜ�6F���B��8V��H/��e�1��j]��S�Ht���6��M^�)��Se~�B���4��q��P�d�
�4p�FYI�V(��Q�r{��TQ�3iI»C�����7
c�
��).�(gc��Ԅ-3mC�H^�D���	�葂�6+���Ւ��Ā�!R0�#����c5�7�(h�Ľ)6�,�η�
j
+�fr+�o ng
�Y���5�9�j2��Y�_
,��
���eoz�˶�C�x
��
���@G��:�+�5[Ό ��W�t��#�'�:��>B�;�V��K�L��
+�6�E�=0��i�� �`�&���l���e_S6���)ڟ
+��<�AE��ƀ
��p����ĕAfܮ���P]�iY{;],�:�Ϯ8]��a�f�����64���v��s�]&Mv��$�%��j��4)駆��9���<�A]�Gˡ����&)%� pg��5��<VQa��<�/���}���}Mf����0.8���[�^f�"�z�в��8���$l�I�'��D��Pf
85�r��`"�j
g��LЀ�ec-=��J6�p��K��d��y��y���BF�yF 0o�'c����)��\�(�LPs�� �N�Y�{ ��{0.
-i�k]i_�~N>�
+�I6vc��3���3���������X�K��;F�9�����eͶ&~��@����cU����t����"�h�ғ�z�a�QN�e��,e��O�?�E�
'�
LP�O��>����:Բ�t��Ⓨ�EG�����Ÿ3l��h���e�/�"p
�f��m9�0J�^�@9���=��h��oه<V�
(
+�-�Z�)j�>��' NJɲ�
�������
������0%� �fV��Rl��c9a�gpNT9E@�
Zz�fDy�`>.p��
��$�l�����xϣ6�-�T�`ȹ_
���.���Yd1�U
̱�M�9/*9^}?]�,;��,9��s!���Rf��<_�?ͥm����
�s�v���<;Ǭ-h�Xh�@'@��+2�G���c���YyFu^�IUڷ�.�9�f��k�G�
�:כh��/�mO6(v�b�*����~y'
 s�.;�
+���+���\��Z����S����)�)��H�8*`OJM�g6#�
�%�h� \�*#���G�'j�TCK;TQ��-�X�e�d��t�h���vP��6�B�6<�r�a`
#�0}?�g�c��ҿ &E�
�|���S�t}%x�
���{���Y@ò͠F�oC'i��)Z<��Y
۲n�+�bw$<�9'�XH9�p�R��==���8%�$a�o�Q��{�A+]䀭A�a#ElO��7I���
�|�{��
����0N���r�D|����,���CJؙ�w'؟�L��2����Z��,}s����CTKf��9ꗆE�� O�
��τ��@�����J��1v{`e&�(��ͪb�) �ʁ�$F�	�GJBԡ�'e�
*3G�
,{�{��xUM�CUm��ݩTg��,>\&`�K�D�/��x�c��
4X6��XP�)GJb�YNޞG8P�a���e �
8���#AxmM =��
�1�,�^��%|d�w.q�8� �Y�#�n�����ߞ0>ͬɯ;���~4C���'���c!�XN�;�m�c�~-2.��
T�����s��X�q4��c�v�W
����9���C��&8�Z[-`ih�-�0�H�U�UV)M��Cmn�|~�f�Ԕ�=9:tO*`e?v�%m�@�
��:�˭?���1Ji�j�P�cX�r̪��}i��t&��X�Sf��*��,��) � 
z:MC��p(@�\(
:Y��>]̪�9�e�����)	& [...]
+�p�C�.

��$�1
�-p��NԷ���R#���0%lw�����z���?��$�Yj�q$��I��1#�
��q�j� ��i	GRf��0#ng��6I��Y�4Ά�Тu�s���Qr�a��yn
`ܷ�Q+=$��
��q
�3���y�;I
+�
�zI�����^������MSl�y��$
�3����9
H�1�c�]?5�D, ���	��)�'ĴD� �w��jD�
J�1��,�O9�S-��7�J�
"��MPc~mo�P�7{S?/6C_hQ�)!
�6x���?ZA��$)zg�dK����?�٥G�y� ��{��1���
꩖�4+(��	|�~�gV
+�FK�8�&�@�
 <>P�1
+R�~<��8A5��I��1�x��AZ��!�P����K��
���Z"�@{s閳��u�9�Բ�'e[������hKߍY��ڰdG
xT�ĜL3p�`���20S���cG��;�2	���20�cMv���mv��
�kRZ<
5y̏��C�^��Hc�!A��
_x�������C9q��h��!�J{_�W����

2�$�g��ܑР�@Ko��R��ȁ&I^�I���9L�[�@}1�ل#��-�kg��<遜K�g���2"N�N<:�H�B��~�blࡘ~,�'[zL�g��g�K-뒧��
' �f�/�bv&ȑ�=i��:���A��e٤0�!��s(��RK��[ߏ�P���^��8����+m(C?��0Ȉ^��y,4�XO�E�[i��6
�-g����|3��� ��@L�3���
��m��-������V��a�
��C�Yj@}��},k�� �W[��35�/g��km�/�B��
���	w0��v'p��Ib�����E�UW%����͓촃Ib��(�mw�e�/��� ��p��?N����{/4 �ì�ն�w�-�/�C��Ij�q�c�G������.lo�
;��"w����av�F7	�
��j{��z�a�3�
6I,kW���H��m9��rG.�[��L���q a�OT
���-
e#�GI��Bv��%
�i"�fgrt#�h�
�?�L����,k��N���.�����1J�a�
l�`@��d��� ���.��f��4JK8�dd�y$�Lc�$�)lo��ՍuYk�7H�
�F�
r������
 [...]
+6��d�
ۗQ�'pA��H��)�?s���6�@NN<�fb4tĮ��b��Np���~Z�':/6мŹ�OW�ҿ� �?^���4��ڟ‡l
RB�
d��v���5�r���}$�`�;��*��1�-�hgRH4Me�v�39
͌ È ���M�裆
�Տp��}�
M��F�Y>���$
+����;h�P�

5h{}�}��i�a��N�Zm�lv�#V��^�R�
Mq���6��z'�w��0�wo��ig�o
|A����"
��0κ.��V'�k��诪N��@o�7O�,u�܂�`���Z��b]��i�jKs��7�� �*M?H�]jA;,7c���c���	�b6\g9K�O6
PBA={n���l�A߬6'�]<�љ�a�0Uv{�j*a�wG�A+��%���L������8�I9��&�G2p�C؍f�tu�[UY��ٺ�7����k�H�c	#��pP��;#���3����q&��[˚҉J�>�2�Ng�<�m�F���qZ�~�ԑb��
8����A
+Xl�|��FGy(�!��>�����сr\kE|��M~5ߐ�n�
���K
��xmpo�09Xׇ��천#�z�s�z�-�_&�
��H}�kù,֧�,ԧ�Y����hC9k����`
@���uqb��X{y	��\
�#О0��rv>���0@�X�&xo�Xz�D�#��4�	��V�I���h����v���� 3~o�
߷�q�{6�MV�HY�p�`�x��=��k�R���)+�x7MI�sU1�Ѹ(ڪ�
xa�4���]71�4���9�,��f_�B}�V�>�V%���D:��pޖ�]f��#� ��(=ȏ�j��="s
�ӕ����H��V��ޤ�|(�$l�<����
�g�mC~Y�C}^o���0
�qf2��X�-侻��m��y�	n�.Kz.�K|��@�Y�g��V�?/Tc?/�`?�U �V�.�UH����V�g
�
+��>z�V7-x���Ԕ�~�.��@f��~�5uE��&��6�I�~K-x�f��lu��ƨ'�2�;�M)��A
|���;ʃ�q˭x7�&\iLy�ۋr7��=g+�/���-��7��A�^R�ZK��V죾'�A߇�������Ҙ��S�'[ri�)�z�5��V�e��u��#l����_���q4��9 L_h�x�Ւ]g���5e�O��lt�x��Aj�z��p�����C��jH�;,,�S �����L�q���3|���?� }�)�<]��R[��J[{�X���	b��E�5ѣ���A�X��V���ʄ'�o_����W[�n�R!�0�I۰�w��0��\���ק��N��G��az�W�=�h!��צX/7��W��=��ߚD�P�>_j�:i�	��仃��S9�G;�gtD��N�����	��m��m��2�=�
x�$�$
�މu۰p\?�m�!�8/���8��|��X�
�~0�qd$��c�i�S���'>Ҕ�?2����)�:��v#�4QP���I�oDl�;iʡ�FAW{)>̔&<�C?��}�[R]~N��z�ot�حu��܊{1�xc�!���89���
1�5�N]� ��T��,է���$���
+��,�y�ڂ���D9v
+�
u������e�;��&Z�UF�W��\�Hw��'�n�S��
+>m{��ڜ�v�6ꑤ0�f��(�s-��덄����(��&���$���8��B5���$�� ��z����r�'}=J�ˎ��aE,4�,7#>�
+c�N��X�V��k&�_�F<3�҃���
�D���'uI������
?b��ץ}\oB9��'>��
+Q��<�z73r��FYvC�r]�~S�vs���_f%+B�,�ѽ��/�SmW�Sm�S�*˒�M��o�J��u���.{�������C
\����:��P��N
���0�
+�w�Z3b���Փ�]m�/�P�f��_(
+��)
+�
��������#���|��F9��!
ր�]hL��V'Y�J�����TG>�
D�
����Qv�z7���^
mYʋ���U
G6�>�Zy�քq��!m��\o�8�4��	OW�Ld��^��{m

���$����x��	��"Г�צ2��y1�&2�n(J�Ϫ��7A~�� ��с���?�]h��]h��]hg�ߚ��;/�=��)Ϸ�I�^��N���/�#>W'���ʋ����nL�6��p
� ]5x�!���$�ވ ��(?��xv��*�ן}쨧��7C?;a��
8_{;_	07
�gI�#mM��<wv{ɫ��
e
�e���;����I���=�%{��E��#��o��#�l]��Zg܇��_��ȇ�1���0螔O;(��	b�y���
��'$��<]I���@���Hx�,�y�P�bg
���&���x�wuI��Y"L�#��3�o/�Ž\k�}�-
��P��4J���;��u`c�@o�v����S�ʊC��E���2�M��<(A:_)��p~�	�Iz9�
��M����8*���C�Ԇq��+
+���|�۸0�n
䴪�QZ�`*'��xV��AN�^���aã:R���T��W�h}���@r\PDZ�֥ڎ�ot�
�ɳ|�j����
��|�o������J�f�
�t�,�47��8+�J[��2��=W�Y���B=��f-p��I[�����}���,�x���KXi�j~�lW[i���D��6��t���Tme��� �ɜ�;�
+������Lt��AةJ���˒_�


��V�}ηP��.5c<W��>�"�ñ��}�Ы�Y�w%�T�#
�u���Y�Ѽ��xP��
+p/q^�MYQ�=��{�>�2ܮ
+�����
~�?L�]nH�[��הb7S�p��R�߃�
��K]H_�-Y7@� 
�(EX/Tc>������B|��n"/�1�
4W��a���,���ʃ>P����m$z��0�,:k,+��b�AY�V~���.����%>�����h���OÂ����Է�M� Y^����WY	�fX{S^��x��~,3�-�本��V�W;�V'��1^�Uy~���d��
��i1Z������8��jge���3�����
|��rs�p���|y�)�i�-�f�
�/��;Q��u1/�8.F�k�#�iK"��ˠO�����D�Q�[�Pa������7�>/���j��j*�.���k1�}�hkyY���$9h�����_��b_���|��LY̭>N�j� y�������H|&ˏ} �	�)�
��3B��m��W���)��N�9kE1왦4����c�(�aܗ�g�X�
��tu5�s����~��?x��P}.jK`���Rl�B:<�m��
��
��M�<7�� �
+�����Mu�2_�b/�}��v}uN���w"�6z_��_�
����B�n�x�͈��ʋ�Jt~��� ��R
�s$;��TN�KINԃF��_ \g��_����x�$�@��N�]n!nI��a�.�{4"����l5������b�jb�KPK����ϳUp��f���F�'E)̺��g#��
��o�u��g��;�K���v��eM�`
t8���D�
��_��V�8ѳ��o������o��Q�����Ǥ �?[��/t]Ԑ	��%q��MyQ��n��UI����� ۥ��/}���&������B���;�e;%�b3���Av�U]�n�ӓ�����B#=BZ��4�qk8���JC���&�uy�3u)��lM�{U죺"���P&y�G��ԄuT��=�V�=m��_ɋ�x��|����
�o�pF<�� �$?�A/+�jQ�ӟ� �3S%I�%���x���ǹ��I
1�S#v�o��IuPW�ޘ�v�4.�6]����H��}k����O]nB;�� [...]
�|�F/;q{H���ZqN���L�������
�6W�dk�ޓ|WQFZo�Ξo�G(JS���F?��=Ȁ=m���������	f�i�⒈{��+eY�CmY��Z��X~��T翪`�@������G�����������ʼ�{
թ6
M��Yp׋��O�������ڑ�y�&��|
��7ü�[��䧍����6Vg�i�f���4�+婟~�&���J�<�#��]�K+
�_yi�np��]��!D-4!?��c�K�c����M��<
d^��[�G��{\)C� ���I
�� oY�ͥ�Lz1�q���� ���Lm�]3���z
>�X�]��D� n���N?��8�t��N� )��
-B;�e&�[�dA	.s�iv�M�����o�ц��7g~ �7:h�c|������Vz�\
�U߁������KL�nu�SWF<1�p�:�ߔ�(��:ܷ~�U/3⺦$鹡�f���D�f��9?]A�̃�vӃ/����+�߀zv_hĻo�����iI�3uU���
!|���7߀u�kH�0W�t<�y<?��L
ҽ�����x���7����z��|��z�����
m+�E����������q�`���[�	�:,�J�=��\5��(Z�׋�_���%J�
(t"+�$�ԑߵ!�K���W��[�����7f)�t(��6����H+eI��~�-���ߪ����K���	6;c,�V6p
`����щt�*�~��z���ys�
8��
�
�f��a�Gn��{�7��ȿG<�}�~�d�*�0.ʚ�O[����vj�b]��j3��fg�
�m�u���:$�@Q�B� F^�}�ˋ���z�%�Ix��M�?�d0�'���"�r�6SOpVW&<U�D�
���f^�C��Ֆ�>.�SB'�R��V�|j��uh���$�K�ܘ{��D��㬴����^>�4�G/5">nu1b׻X�r��4'��0?�v+�F#��L�{�-
�('�H�S�K��Md�]��D�Zk�}��GM��\��i�vF���6����q���1†k[���D1��2����@�OdGݕ�ż\ie�*ʐvsUX��V��Z+�e���FO1�	�vzf�כ�W���rJ�Ǩ�k��n��}x/� �ww���È������_��ԉ���$���
W�"��<.Of��\��8� 
����T��>��{�
��(!h��P�L����LU�˃	h�����g�mY	��?�j?���Z��+�d�S��Ue	O5���<�ˍV��b衇����Ay-5E�.�ƿ��ݞ�Jy��ʋ*B��*Hr�
R#�:�β�	ogk��-��9��'���?�W�}me��Cm��8��f����v�l�}(7�M7?�
��D�3a�������\��&[���?|z��H��V����L���Gw򂞉�#,զ~Yk������Q
+�4N�\�N����4[
w3���6�����O�١��D7GE�����ZR=G
+�f&:^�i� V�nJ��+S�Ld�jE9��J�!)��j���*|0�'cg����
e��N	����dw���6��r�O7$D��֛�U%�O�y� �9
JxX�3a��꯬�8�dm�H�x/��m[���X��n �q�i*��|�����Nr�����(J|aYsYnD:(ʒ^M�">j�i~}�)�MĠKʂ4۵��z;�k��<ߔ�i�
+��BU
e��L]��
9*�|4&�~4)���^�q7t��ӵXI1��z{~���
�x�
+��ɬ��K-ȯ�C�D�0�F9��~|𞘍�W��&�yK��0u%�����B棶
a�kc'��0"��Aו��/�:(`�6c�7�xa�'r��Nא=AN��gP�ޮ�G6��&�34u�/#ّ ��oMfz�=_��a�ٓ��m�{��G?�o��X��@�|^o�ou�2�^�C_owq��
�lK��M��@�m��=v:�N�������f�{�0�vF�艂��]L�?���/F��u�Þj*m��,�
��t�ٰ��,�lE�
eq��Ǖn��k�
	o�{��۽�șf�O���`a��~��".I|�B���/
+|�(�y���l��-�L��)
|�9HI���H�zq��zc�6��|{��|K���n��j;9�˫�zZ��x�h����H���I����y]Y�A{lKE��zRB���5E}���3m���܁sYnǸL/�/��Bs�e �|�(յ��{{�	�՗E\��&���w&iF)
�=E�ۜ`@ub=�玬(�vw���v�9i&p���
���u�|=R�x?��w&��K
I������<�Xi����p��\/9���~[�
�hh���:���}�8�8=i�f�ЂpX���Y�.�
�����ך៦+�_/�����B�����ǎ�oe/��$e��@w^i@;�V$�5�@]
�*�F)%�^k"�Y-5
+�:����t�^aȭn��uIa���*��r�y��=�B����4
�k�8/EY��6�ӕ^�����?��N�fkh��x��H���YЏ�a&�@B��S��p��uPkMm��X�,�Z/9x�O�Џ��ژ�9��hޗz8��z������ur�nJ*���T�[=��{K����vJ�5�4�C������׆���㙌��l�R'^[K�>�q�
+j�7���!���#
��Q�+mD��^
l��4^|GV�_��tR�
�|��d&ws�
���yo�
*tSe��!.b�
�^�=��D~�Eyʻ�~z
������G�����~l���Ѐ�"/�|�*Ox=�F�[lg�l�f�Wۙ1�r���f|0��� )Բ�0S
��
{җ�w}��=�í2��u�o�aekH�^�$�jk�R�-4%٭
`}�b&l
������l��,4&}
�
�jg������0�q��3N�fng3��9 WQ=����;iI›�rؗ������eVed���g���U�(��6���1lc��ڇژ�k�Q�	����1�FiY��D~��06ێu�4"���A��E™Nj���MH>���~2�ly at H����k�_�5�<SV�=����6+E�&Yf����R�I�[`�b臄H}?/u����D�Q�S�~��q�t�%ԕFQ�t9��l��R-�g���"7&�x�@�~����7�8Э^�0"�n�7(��mD��V��R;/�>��xv꫹J��z#-p��
��.H��1��y��5$ߕ�l���0���d87��������
Ndq7�p>
uI���'���w��L�b#�IV���
p��
�xD��*� ϔGl�#_'�^Q��N�E�����T�ŖT��V��z)|���;B���E>��a����5
����ć �o7}nt1n�q#^)���Da�׍�$���l�~��<�i��0]��n��5�@m������^>Ԓ�Aha����/�m�T��V�B���nR��H
W]����\#=�0, |�G���W��C� ���(�Y/)_��,w�#fQNK-8_� 3������|3��B#�kgDĔ��U%=Ֆ��/5���,�������F>^�f�Ź�&iv�Z>p��YQ	�
-{!��u�c������	�2�=q^�"���j��xV샕���\���b�̠��)�ޓ
����T�QQ��>�ߵ>��}IIě�>x��
o��_�Gm
�6A�v3õ��]�
#"�k3��֫
d?K/�V/m������ ��o��"����TF�����f��ɚFl�i"�Ԩ(�\���Hgy�	5H��uf�Q&j�I��4�;�E�Q;��� O� �w��{��+��؍JҾB��M0����k����R��pa�z_>c�]����w R�a?
u�O���S�v�0ֵ���թ�W�p�;�<��r-'XU��<ӊqR7">����<�
7r�
��i�&v����.�}���xi˹��������5bb�OeRlWj3�Wjy��b�� �T�I��wP�;3ӇK�d?��[�E�s�\�2�;�Ù$�w�Sqv荅ʤ7�N�tuF�T6�v���.�.�Ȉ�5�"�*��eY9>}�I�z�"3q�E��Ԍ�������h�ъV�p
wk�U���
���V��f�J�ښ���R��BMt�\6]��X���X�h�Ǎ��;r�{�5+}��e�!�^7J�ޙd1����]EQ�nBD�%������� ��([Uqғ�Z��Z�u�� [...]
+D��	�f�����_��ٞ��-'����}�;�35�������Z�_?�J6�qҶ���C��w�ynW�u�o���
K�,��������-���Jp�k�xh��ޣ��ף��W�b���g/�}-�
�ZY��Ѩ�
Δ
��
��{H1����x�`[^�cT�WU
�\'�{�8���2��� �O��iR䖬�	�
���#qI�����qa�F/�W�����.����ߨ�g	n�z~�`>�s
=�F1�rVbȟ_��ӝ���|gq|����eȕ�g!�/�����JЧ������~GJ�P-`��0�F�	�K���
+�{E�ǭ\��*B�����
8pO���A�ߙ��?�~��οS"�����g���RD̃t�ݡ,��|#;d��
��R��5d��fA��FܟM���a�T���S�℆��zz�����
���(��<���٘��x�|qzbq{qu|s�
+}k���ڙ�Z�����f��uT�)P���ر�
�v6�Q
>�Z!�v;���	�zԀM��=5�j���oo�݆<�v����o�0ϋ���'���t��E�K���!F��
+i?T��z���f��M�r�����<��L�ۉL�È mW�
�7'��,����ۗ�a=��E�s<O����=�"l�q�:qg��
�Ѓ�\�D;����O��ӝ&
+}�̏]<�u
)�aV��
�ۇs���~���>��ͫ��~c�߬"�<��9i�1qۣl�nL�7�z^�dE.vRu�|ܮXH�
e�)��lG2�
L��?N撾�$�\�:|8st8C��9���r�
��#��<�Y����D�ۜ�����p~���5*�n�e�:�3�XE5�a�
�-���+��
�J��l���KU$�[�+W3�C�3��/�ؾ���⟐;�y�<��+��o�t�R\�ߏgxY�1B��1�~�<�I�flK�sV��tЂ�I���ԍa>j���8�BO
(@yd�?�F�\΍����v%���RV��U;���0ꑶn�
+
�Y�jVw��n��`��g�γ���&�xA<��@^X]�<�z���-ȓ�� ��y��e���SH����rD����؇�	z▘���$-���
+�wk�m	>��(5�<'.�,������' WBBm�@�
>B�^<�X���k�
���ȥ�� ��@.{}&/�碤�~�����zw,�JY��,�;V�i�I�
�а3�..�Џ�!_�>�<�z���
������oB�_��;���90�K���� `
��$?TU>k�فڎ<�h�0�+�iWN���A�Z}�"�����&:=h�
m����
h�b{�
+�
��֕+�?~�
���eK, ��?F��v��X��ql��9���p�0+eiXD�j�w�ߔ����E�Ey��A�9B0
� ^֏ ��݄�X݆\;r�ϳ�g7.A
��q{}�\���Ti���^��LG���n���
+�^UM�ҕ�~^K��(@@/�Φ{8Cb
�A�m^Bl�n@^^���q
���U��
!����/�����CY�_w�E
�,;G?)��EL�?������&��H	�})6�������o��!��nA^߸qz������5ȣ+W!ַ�@n^�9�����B��B��>�NjH�g[����+�6G
+��3�3
���ԫ&>�~.*�*9�����k��;7!�
܇8?y�����s�G�7
߸
�t�Oț�� (o�?:yIO'
+��6"��JX��9a�Q�����&h:���:��`�e� ����~[������=�û3��o<9�
+������`.���~��t;K
+u�,�A���ýT�"DS�y9~C�I��HL>G�L8�����wgn_��b���-��{� �6_Β�c��`QO�)N�*̧�Q&ts\��ve���iõ�q�����?���a�|� �}�D:;B�=�y.�7�!�_<��'��-��{�3޶ֿSC\�W���w�^������һ�B����<�.��w2�N>�|
��𗳝-���-���Kȓ7!7�sZ�|}�&��������*����{��RD�+q�M��
�6�B�
Y��,�Z6�~<��\Dʥ\,�21:ꜧ�;�s���� ��nA�=}yq�>��됇`��ߴ�a�~�Š�?7��~�2�MZfC5�8geU��� =R�-H
���r?��V)A~�����|~�h����=� ���������B^ݹ�w������
h�mU%�s��?�N�m&�)+	_��o�<��Z�Q6"�
+���L�ϐ {{��;;���� �Ϟ�ܽp����Sk������~y&��ӕv~���;}G*�"��D@��"溨��E��������[��g#>|���ڀZ��� �|���߆ܸxr���݇�G��B��?�$���A
+��9VD�:�(�\�.��.�S��}e�L���K#�.:���s��=+���O!�A|o�u��U�sP�W�����߃9�}�
b}�!$��������Ё��~����m	�>�ɘ�ϡ-�L�d��D�g����@���mߞ�����>|�x�ȽK���ޅ�zp��eȇ/g1�W��Q/��H��1�'[�a�tێ<�ǎ�,�:ߺ�@�WM��C�����z�_ą®1�ך�����HY]c��;w�?��	<��TA��Xa��`a�I�U�qj�g���q��И�(½�D�5+�|?�?�Z�_�%rd�RH�vX��j
�~���m�N����[��+#9�š<�����h�N�h.BecB��
t�T�z	0��x�MdP�_�
��
��B^޹r������`{�s�p�
+,��DIV�����-HZ��&,�f���Bh6&�FFr��n!�mw��q��m]�ڽ=���)�i�`�P�
�v
33�e[��`���,[�d�2��
I���q��n�{�--�5�{�5�Q�v'�|���.�u�ߟ\��� ;/|��ջ$�{���'	�}X�W�����"r�<�K��;��
F�_€FU�Θ��
��ES���<�۟�Š.6��}�����Rn?���7ܾ|��/��������h=O!oM�)O�ؔ��3�d����p�Y?���v�&�m��j\�E��89˝���$�%dc�7����(|�����/�
����|��n\��AQr���M���l�b'�%����Ċ��ÈZ��bۂ���?p(�CTs�4�
5k���6��\a�7~�+��^Z�9���7O^��ٍ;�=~�A���s_������S_\�1����f/>yw�v
�(nQ�)f4�P+4C�{�)R��FN<���B5��g~����G�o��)�=W�6����.�����ȩ�&/;����k���@`�'�NJ>�S��;�����7far }X�Qp0NuO�I�P����o��J{���޽�A՛�j�s�����?�_���׏?�U~܉l�:�$���x��
��p������ s��K�Y�A����!��e����ut|0?�8\ �7�H^���sv!�ɧ0}������T2a61�s�{xG�[6:�[
}`�-U;���^��,��wW&X��~�u���h���0�Q ����GJ�u
����N�xr�)��9s�GR�P��X�hy�S�J�Lo�bj�Q�8ˑNO�W{�Vx��d��.P�CP���~��b?�'��
J�{��.NH�D�uLtD˥�
�yJ�i
���Ȩ;Z�-���XW�tb�F2:X��;�)��I��1_�QW�=�ނi6�ጀ��9�ړt]R6�%�7���%;�G�UL�o��հ���.����y�EF�\���@G���p���PE/qa���r�?�9I�<P
ђ-s=ͻ��j�]�U�[��O�=����y�3ac��)�#ZR�c_���N��*
%���S3��ş�Z[���
�Y/�x��Y�;�,���Az�uu��RN��[�3A��'l�_�l�,
����	���������,5��!V�l���8�ٸ�:٩��jQLR4�AJ�,��'9�[҉1��HG�j�]f��@�\��[\��&?�"BW੻������j�H@ �h^�U&�/���� wu�_�ǧ�[��}c���k���6'�녣�,Ō�a{u����=r�`�!�g}}�X�$fbrN��
A=��##V��
¾�վ%�h�Lw�l��6���D��7���6��8C�6��Z%噗p�yL�y�ܯ�
"6�2	yj_�&�?�^�F�a}�O���u܀6��a��=͏z��>�����E��c
�Bd�}
���*!V�th� �r�m9�w�aT?�~��
�n	�

+�.!��,BV�{�r at +4��;�!e''(�b����#ZB�]�.p˨�Aeߠg���r�~�Ɇ;D����O��K\
���Y�۝9B��� �8vW:�Gkݨ�en��,)�+d�E<�G�!��s�
���
+,���<j�S�l�-3�B�JH�gx�lT@����p=�
�]�h�[Ťﯢ�
��b�6�%a�g�E�	~�W2����i�p VK�2B�O
�8Z�������<�O�Ƹ�
BP�5�5�N��F��S��}imk��n^���
+��6)�>b� ��\Ʃ�C�o��#fG��WA�������x=tl�
ѱ��xj��
+J�CH�wA�3��n�s!ջ��%�fG�EJ�4�(��"8��׭�[��
�6b��YFtQs׸KNn 4=jt��[%�ݯ䠏ֈ�֩��
)�=��ٙE�1
���3N��#�w%�]���T|�
��y	8i%j
F��차5�+lM:\�$�DĊ��	
��'&#���m�-ώ�j�YNJ~��_�0ߞߝ�|��{
Kl���9�.�b�ۃ���/����eP�:'�
IG�
1��l�?�5uOn�&8���x��c#�ѱI �4�'�+ݚ����b1��=�6`
>-6r�

��JL�_�η-��
,4?x����g��ldگ�
*�-~1�ȱ���l��cJ��O5�-��˸l�:;�$��J��VQZC
+bU
���qX���s�x��p*	�v1&�.D�%�J�`��MN����α��& P=Bl�c���s��E|_�W΀l-��XՏm�����g,��(���2&�2V���T�]��m�P*�g�z�
Q	�!걁M����iѕ��Ƅ���
+t}T�5�VrI�	�K��
�:XaUWOD�A
�(-�K�,��=%f�r�>'�1n1
��|RJKH
�C

�c=}�\"�G��!-	z���b� �c�S��g�H��-^��~��{b
Ŷ��]��1��ẉ��KIM.	��+����,l�DC�uğ�׸�h)Ш
]fF���:�SV�c[,�OFi
����q�����Xh��
_a�?5
�?t
i�]�x��9jS��nOd�g�ݮ`�?{,�����m;��wCLc� �}C����5
�3�牆
+�p����w�nD4d��2��:	M��J":*"de�b���c+Х&5�
+om/!�B[ݓ���Z�&8�T�o95�k6S�1,�`��m��uDMlv�(������΂���׃
+d�O+9ѓP1S�q^��͸������+>1��#A��[
�L��3��O�{���k�Vp���hxof��lIXN��K�9���'���kvac���
�ͣ������!S�[�F�$�b�F�+��}��SN���7�2 �	Z��8��X�3tj`��} }��d�
���t�]9��C_�
�
+�ȹ�Nu
Q��mOl�͏��3����
endstream
endobj
29 0 obj
<</Length 65536>>stream
+x�[����}��o�
 �pe~9�<�$���3�g[޾7
�������o��3m����S%
�s��!L�����48㝎�
+ə0����j�K����H�A�d�tS����r��l�[�Ax�"�
�����¶d�j�+�S�/$�mM�߸D
J��;���3��
|�k�=ao���}���O�)Ռ4>���S�ʞ�
)�8�����j
�>)*?ޟ� xO�Ww
��Ҙ��96w�2��L��p�'�v�Z���4��V�W�@�6�>���QX.	�gߩ�M��G�̍�'����ʰ�A5�"�&��껆�5�������'�����t�������9���bZbs�>�S�+=6�H�-
�CԞ�"�c��r at O��Jb�m���s��MĀk<��';L�CL�?X#��L
>5
�||�ű�M� V!��DIX��Z �ҫ������"��뒣J�rT�W�ʋ�-���~ �f�r1��O�Lҩ�:֠�v&�/.����_;�[�J6�h	���{ݐ�Q#�رޞ�;y�5�L>X��
��ߺ%�ꨑ�
�	
!]GWP?�����O����ۧfb�s�䀜P�j_�d�4\zXͥ�u
\��;��Z{���
jH��9f��}�6)얒���%��%b�ڥ��w�;�{�^��
+�F�=?
I��^��z���F�k�B�����
��F�9V�����g_�I�'��;5
s�Ax
++�_:�K��n ���֯&C��:�2�%F�;��<�
+]Qa*BRT�m	�f_��f���B^HH,�.�R�D�:�|��k��7Q~ɹ���'&U
�a���f�:�xo��7�I��1낛����u�IU��;�̟�&�c^_�����#S��$ ������ 4٧�#�ήS
��T�ȋ�[���׶Uh�m����
c�D��Gk�zBj8 �u ޿K�*0��z`o؝�מ�F"��ހ_�Cs�O��!o ���y�Y���@)_�
oc�������h'_�����܀�44���ɮuR͉�g��zQ��R0~��p��e at Bip����y_���N��6��Ӑ~@�\W�;Nؚh|1RQ�m�Б�r����#�cW0��>o�?��Y�����<��ж��:ZA�D�
ؙ^�Ur)��'�������M��p
W	`
r�U��\P�_�o>33����ïf �6��m�pl�gڽ�����\���9"|���!���ۓ�]�ߋ��_�ϴ�I��
��XiO�0?��R�*
1lbp#F.ޟ�O w�@�E�
Ι�
�ih����=l`�ά,�;3�Q�[&p��&���w�8v�!���~-$/���1���t���L
+�C�aӀ(���
pXEm���-�������
�>�
���S
+�Q	�9,ėW�9�c��|@,��	%{s��Ql�9V�ݯ� �z7�uG�W{�u��󵷷&
�mx����9aj�89w�Ay��v͝l�Y@�6�
�[h|�N{�E|=�z�Ī}u�5
��.�-�-7M�U
�?��%��_�曟x�	e�pJ���������
+)�
	T�!a�޳Nݙ.��\oI�hix����T��2T~X	ˊ��YAy{��B���g!��O��T@���O�؊���藡K
+l�[�ʴ� S��W���y�P�u��EHF�s�����@܀ދnb
NT����
������
+�'�
x���>����X[���b
+ҶI���6fd
+b�G�)�H-�Mb�w
�
�uVPB�ׄF�|n��31�;]b\�S��?�?S�s�� �δ
�a �*r�WL
^&,g"b*�-F9D�R��Tb�w�����zgfѣbKP՞������>q���v�C�BTv`_�YCg�$��0��|2|�c�m�k�0	�UB-���9�����w�x�?TQ ^��)�xT�A �ȶuL��*�ľN�s c7
�>2tV�p����
��w.B����ʝ�K�[wf�����i�>�B令
����[��vh��Xm�l~�2ut�mj����D�xPP�ܟk�o
���2�
�bdR��T�O��Zi�wV����e���{�M\�eW�f�y�#C!EOGT�!��Z����^�f����Z�<2ͷ�+���
�Mw
3M�c�w����圌ό��Wp����G�����Ub�CH�7��(�o�i
v!�B�Y���4���C?�
i
 ͳK��Kno
6=Q
��eT>��1�*pL25�����/����
+��*~�#�
ˤ�YV����?d>�!(fa�br��*$˱z�=U|�8�s��њ��z��
��tOX
��m�?s̗��
��A-H:�7Zu3,"7�6���3�W�u�gj&�Dť�ĄJ�2"ٶ {�J��,聨��6����)�#�?\D����9���ջ���6W���L��c
�-���<���~	�޾͊la���$T�.��Ӎ7?�]��D�L�)�/
bb�u
��^Ce��!�g[^�y��
=�D�� �Yº��b��p��:X��Y�m`�=�9ߚj[h|~b� ~���/�@v'����m);Su�͓57}�x_���S�`(�Ke��9٢a��ݛ�d�����D�\���֧�h�o�Z{�������
]l[ '���SLS����{��L��3�U1P��݀W�h�#����3u���>X�T|�_��w �֪�@�L}-Ͻ˘����G���t O�v�ڞ�6P�1#5�j#:xQH�9�q�m}o%�JT)���t��w��b���)hm=�zj���ȑy<߳����pU���O
�����a��N�td������ud�����
4�'#֚&۟F	���F@��P��!�&�a��
+|�O�؝����e�7���:���9
N�O�?���0X{�1���+�Ow�ށ����"�ʩ�{�/�`�RF{ ৣeh��
���b�Ә���hx
 ��bZ*�����v,�
�#-������zkn:����L9��G�
���0��Yث���{����Ҏ��Vi��F����;�kp�
+0۳�W���r��S\c@
p��T�3����[{;&#��=�v�*o(���9�U7�k��c��O�z�*"M7P�6{�]�湗q��E|��
����3~�n���
*���6v5?����b^�E!!�c
'�K��g��{�)�LKF̱
+oa�o}&bW����l���Չ��mTߘ�5��8�z�:Q��[�-;ZA��N�W�iM�p8W{
�W(�u5<�P�˿�����Aӯ��S��,���@'����}��~)$%}:���O]w�E ���Uj��
&ý����iH�&�($�e�7��'z*"��PO�
�- �dPL�o<���
+\Y�Y�Ŗg��%?���.Ǥ�\��	ڝF����
t�k
�k[@�
NC_h;+nXG[�\8��~
{ldS#*:�D˥�
hPIi?1�:CZ�H�n��{����g�Ra
�&���U��
!)A�}��Z�~�4���DƼ���U�r���M@��s�C�GlE �^18�p	��"�(�8�����ii0@'�Rd�k��3z�2��mhK��t
D�
#!��:*¹�tC�[
KwK�e-���qP��ƶ��9����d;��o
�տ���,1s�������>ݹ��5t_�WܴϷ<�r����~a�)��TFE
;z�"\�
��8
	!��
dA<'ޙ�l�>[��|ý��>�bQ�V�YӐ�{��w�=��'�
�. �Xe?����-,f"��i���Kڮ�
�5״��u�evF�� ��uo��=	r���dz��v���X�+�- �>�$��a�CZ
�-$WDe�E84
�Ku�e�3�`��
�WY�[n��=6�4��Y��E�}}�
Z������ߴ�'�ʞ�S��=��f�Qo ��
�����Ѓ�G6����uU�w-ּ6
V^["V\�A
�H�[������~�K�Y����RKrTF�D O,﮾!b�\�jX��֮�c=
u4{u8
}�X at d��h萔
+[!\�3+��W�H���&���UT�br�*N�O����G����Re鋋���`�%!c:~��l�
?�
Sg�׎���g[tRX�bNӋ
@^~��6�xT�kq/5=��,�^I��TFL���@ٕS)��8ή|y�o�Ƅ_ ��	i(����{^�WC��>3�G�$x�0���D��
�e�m���9�ߌ�6�(ɳ����D�� r��fߤ׹�����ڼ?��H�+�AI��b����ߤ������i�
/12�L�$�i�S �O�,������72f�9�p٭��
j�h��R����+i਎���\�Ä�;�DL�(H��~5t��9�pz�jB
�[݀�v���A
���L���t�KJ���
�Ktر�ǎ�ËʙP��ڹ�Ͳ�5�R�j���I��ED����SW�O�ZbvƏ����C�
��L��Ѿ�@Ȋ�����S#	�~��xo%N��5G+�
+����Y���}�9p������(��
�¥Mr�g��̏���E�̲�e���eZ�g��=�ps��w���)�,��}k
mzt���t���L��7,
ͣ�w���z �Sb*��
���7S���pHEi1����=Zq�:Tv	�K���R�6G��t�h�6$��ؗ`��Ӑ�n��ަ�O8�/>��e}�#,s��=�H!�I<Q��
�E@�F̾��:��'�٪��ul��	
bX�v�����I>��:r@���u��z�bl��\������m�?xl`�*|UH��D䄚�&��h
+��;V{��]sew
��L�y��}���$8ɵB�v�pa�5lN`�{4	�WtT��o|�/�*),氃br����������tK�;~�c�}rZ�l���2#�F\s����*"�9��U�c�1��w
���k���Y����J���6�#$Õ�4�j_hz�]GFT��?�h��	�4���yx���}k�j޹P��`��'�b�=�b݃�PqH�urY@���Ԇ���%��g���G����F*�(��Y8�3
�N-��C)/��-
+.�BU��5=�hQe
8K�_�[|�o�~rK9e���e\~�Կ�����d�6ZG�/�_�
_
�ڋ�Z\��
+�_�m��v/���o��xm�
+��H
Q �"j&r�Ru���e�hY�
ћ\�ȷ�������19�չ�zk����a�bT.�)
�V��x������7��
jMP�D�����д$Ǐ��=;����h@/E}e�e���c���	�MO �u����%?(�y�h��7t��,Z��O�a�W�k,�i�����'����4��o����6H��&�������g�T�[B�x�lhX�/K��:�j���
+/����M��gF
�+��L�
�*2? ����N��
�����	[�f��,�L�>���
+wIEN�	��k)��;���4:��eb��������/���E���˸��{�/�ཎ�i�(�l�sU��f6�����p�6_߶��ı
��
P�;
��ѐn1�4�$�N
�N����X�
	-�S
?�����[�YLzgk���[��N�f ���J�
Ε�G*A�O�M�ϱ�o�CB���2$e���F�����
������ ���*�
�Vj�
+޶��	��ͧ����v�
+A϶�j�
7�|�M��?��������t�"3CR\yTIn<Ѱ0!�̯�څ���lM810���ݓ!9��`��Oܚq�������ͷI�9���n��{jږ�e ���k|�?^{ÿ��2�ޚ�Ye�O�>�2�Em��‡�uwgړ�����ŴD��������ȭ��ګn	
�3�jÖau8�!�皻��[�v2��SR at rOw�]��
቙�>����t\qP��8��/���:+nڤ�j��s��t��3�+����ҟ��?;��X�K.���!-q x
�R���"8O~�x10q��v���B �uTPp#��vNy>	�O�ε��(Iس���_p�MXF��"�l3�W{��D�(ꥈW~�<	z{���_��[F����^�����IU�B}XFl����[�'���k9��X�^���=�����W�$����
�;�dg���	��Q �"
+�X�.q�6=8�o��]�&9V0i�
�����k��#1��k�9�L�d������Fɿ�?2V�%���gߴe����&/ �5F%��Zk�y���&�͏K��sau{�_�
#��a��p����\ˣ�SyfaЎ����w�JQ��f��4 at o�?=�i{�?~��@�$���UL�����:2�s�28'�'��
+.+zҾ��ߘ��]�����,�cb���<��[��ս�s��>�c��–D�Z��� Z28���%�6��г����xT�<�:Q��y������������%�w΁2��-/�/���c#*
+d���y���h��D�E�����-6+��lBJePAm?�������j�-ƾ�������k����9
1��0{Rp���P��jn���x��#>�_*F��5H��
��
rH
���g�9t�{c��{#��΀�>�C�
+���C�L��߽�����r>�)$U����:񝁎�)I�!q[��l�]�Z���v��^���)b!�Ǝ�c
�V�*�7w.�'�"R����أ�R��~%��/����$
�d�n~p4Qy�h��
^���l�~�H��0�*˾�ʴ�“
Bh�W��
�i���o2j\���Nͽsgfn�{
�
<r#�8�[��T��\rJ�O��8ZA���+� 莥��
����H�3�4�<��`k��hN�r0�o9\d�,�s� =�7���:_s7�#��<ؠ�xĴƐ���+�&�'C� x ��N)<˱�*��Z
�Y���	���V���^]�&b�SM5�6\ߝ�'86�m�,��9��OO7u �II�߯
+��
*n*���c�ΉY�O]+�
+�X�#Cw�%�|����;���ˎ��;'&XaD��<X��
�b���\zL���n1)�&:!�e�
�o���镶gx��Z�:�5*]:֌n��7��pw��?��
��W�����yT�<������Z!�f�J��D�K
-�L7?RvT^��
����9$ �����Iyo�|
Q�
�Ȍ�ٖ�^q|���'9���0�#JZ[T�h��@�t�����
>�ǀ��ڛCHx�?�6�y 
"bf&��ʤ���u���H�~��ޠ�GդF���7���6~}8��8^��1۞�N˿v0+�[�Ԭ��nIe�
s��&"�XFi
+�����Ƭ�����ѢK'z
+>���@	����Kol
��b_jJ�݊m�i bd0�Xe�GqEwζ{�OL
�1�͵ye�-���f]8��}��
g�4
N�A�~m���^ϺOB�ݛ��|��9dvXE���X�H�޻��b_Ee8����5B�N��Rم���K2V�W[�ŗ&��B.�<	I��
~8�'e��3��̌�,TLD�eG�<~��!86z�Y�V�}�ޙ9ܘ��i�=�ʥ�Wjfo��?��H��yB��R�]��{+��MBH��>��k�P��%�ʮN��,B��R6&�`��\uL��q� _0�H�o2 .Iwk��c]��86q�A�zX�o���6��� c$G�|N��3qltE

\@�.sm4%87�S�Bb�_�j=\&�Y-W��?��g�0њ��H��/��?_�f~g�_��6:� 3�ޛ�W�D
أt�}�< �v	�𢐆v�����������BDI@����iX���
X
��k[���6G���MV�w#>
T~`�%�L�D���܆������1�ɶ��uT��
,�<Ysw��[����
k#魾p>��n��i�^���ז\��:�!Y.	��<�H��zX�bŌ
�W�)1���,e�}-�~1
+yq�8X|�''��wF�iߜ �ͯ�B���w���
9
y�F*u��r���,�0
�w��zTM���	�JJ�g���_F��!s/']���hu�V�/�Oޟ.���)�ʪ��Onŭ�
�5��:b�y�z��
+�; n9��6��}��]t��RI��t�����4`<�c�Բ	!-
ӰȧJ&�O
��>qj�AvgA/�p� �҃���������~P�&�6p��F"�U�2���\j{�\��t�]w�KO��\�m-����P�-�L���)d����$��v'[�
t�;3�-f at U X��c+B���R3��L=��F.��ȡǿ�Dh�ϩ�6�ƱoW(u7�#��
V��s��ϥ���
+f�K�e�Z���B�K���of/?�q5'�N~P�#x%�u��$�:�p���Jv�y�~�]�:�%���D4��
��7%z7���x�':!���#z
;�a�N�<���������L(>��f
΢߈:�~�z}�Ü��|0�̻�?����o��=�pk���[rs�[��!��q
�oD��<<�p	�|�z�C����
�{Ϭ�S1�`د���	O��3+���31	�B ���:`~���
+/Nc��;V�i�x�v9�<"���g�[CU�L�e?�ʹ�vnPWؕW��շ�
+@�Yx��*l�_�+w�p���Qw��7��z�
+B�S�+��H��L6�����f���mO�_�t�[��t��
$��_�lw�5�p�-߹֖z$D�/�+~�%��r�[N��o+\RrC@�»�L�m�R�3��a��%`
��.�WB�v,#S��_썂���C���Va,�X����T�K�fS�i4�{�`��نWʁ��@��&���=V��2W6�t�%��N�=3�f���^암�_������'��
)���%L�i��V���̃�?�]�R�Y1
A4s{��w�\����2.�d�o��ڻrb���V�9���k�6�A���C�W�ƫ��{ ��om"����a�+5���Mz��a��s��[3Jo�m���G�t�m��a
+BBm at El>1p����Ȗ`(�e�OM,�{[Q�1����33I^5$b�8�xm{c��
f����7-��~
�p�쓰�`�]O�ז�ʫ����D�S�B{ⱚ��
+�BrE at N�$�L���\oM�w�\���/6>g��\J"�#�ex�mI~)8;�Ł�c&��g���>ޓYOGx���~(�䰺��+��L#ЄiT��#������c��
=�iߘ�Pه����Ѷ����㈬��iy}��j�&�5I��~-�jz�p	>%�-��7E
躐�%*ߧ����tX��9��v
z��ܿ1vG���G��[�@��#
w
�����X�y!��g�
+��9�x���|-c�~i�+��3ݚ0���z�[v/
+x>�&��<�p�<�p�(��BEn|#��
;;�ML�K� ��=��zTx���
h(��XA!`��
��5\Ix
��d�����К�髺�=Kt�I��fv�M��1���:.?jL��L�_�D�d��;1�7���6	�6�pb:A��/g at vVȅ�K̊�j�m
_l
myA*��Iw˫�r<ܯ@ۅ�);�MO�CW�ؒ}!a]�5��xj���H��
)��!iM;�hɵ��<�J�eac�2�(�Oa�xT
��}���
�L����:6�z#���c]'�d!Cr62hАF��3�n
�����a���b�&�Խ
+O7
_�uU^����A�����_���Vi����_�r�1���t�bs��m�,c�쀒GrJh���E��{fA�SN���3I<ZEeK;�.6qMa}�P|�K��7�4\m}�Ϟ����ߓ*�L���#So]�_�)�9>1*߱Қ�=^v_-H�VB~���P���|����'������%�s�u�+����N
蚣���~9��7 ��v�����7AI����a	8#��!� f:6y��ڟ�K����k{�oJ�����O��o>7u6^=
k��X���#�>���|�;��p���v�Z
�3
+�u�ܰL�^�{!O��I�
e�%'Ը7Q�~9
ӱ�g[
ޱ	�
k�Ѐ
+��S`��Jr��v�bx����qi��������~Iۛ�
��
��
��(��ɶyf�e���2����_	qo/h����Mϣ2R2\��U��s�<
Uuw�L|
���_�bj�wid���l"�&)�W�!I�v����(��~��S�
��D�[h#�����2���ɖD@�4z �q
�e�p�i-�T���*���*�ygQ
Pu0�.#����[�.��6�Q2�>����:���D�����R'�l�?+8?����:T���[�v�&�`^:�z��s\3P�1=໷hԨ�L�P���8��
+c&�`X/w�)��}L���pHI56)
�4G�(��{�@H��_&VF�C��iT�
k�[�(�	j�+��6i���M�4C�g+�ݺIhUPʀ�V��9�����[;C՗��/��ҋ㬆��n}����O�d�����u����t�]�B�m�6���5\�(>�_�m�kFV�����+��NL�˴̡�w� �J�b|�s
��;~"�W��J*�
������y/��Z2=+���K֩�+ʮ��g�?]Ľ�~��zqg��n��Iw[���~Z�o��jbXAP	�<Zj|�\kx
Q�ZNt
�W�+�)�
���� �_V�ད�>֐����[{SUw�WP9|��)e��O�RwF�
{�.*y�.��my�9���2z�E!��&������[�ͩ;Ӏ'�sݛ�Z�Q���ך��R�2*2��7؄����J���[�j at 7Z脀����� ���"}g���
�"���=(#�8V�;���YR>��eN�uT�+?�kM�Ƥ|?Oν�	��"���m�V�;C-6�"^E
�&7��,��L�G��v(1����_9w�v:�]RѹɆ��l�oY�Y�:�Zs�Ȋ%F��	\���yH��2��2�I�N!���v!�do��V��6z��p*�y����;����:��\��-l���:>_;�JS�_��
��5j�*��RoC�
��}0^s=�ٖV�+G1Yߧ�>��ծ����5p��MT�
�9�F�K�jCJHE�G�\�y�/�~c
�������?
�r:}q��pPI���9���&�=� �D�ؽ��a�o���x�*��

+Y�(_�N�
_��@�?�$��S��Ԫx�v�
���P�ͭ��K�޶�Ԛ�Rn�}
_p׾�H�v�(a�e
m�q0��O���XE�U<�j�՞s�_��� z��S������
�#fb��c�R:����U����@{AXJ��,���L�0⩾rGDi�Q�h��'���Au]�?ږ�^�L7>ܙ�}�XBd9ѶIٞo~ 騹��O+Up�om�m��u�ր�
�Zδ䙞A��َu��[��7P1���� �+��3M/�+���Ut^/"��%j�/��d�p�muG����̯����_���yX業��S���e/|�;Ҙ�=
,;
M�
=8Z��յQ�ȾZ��'��mO�� l<Z��
�vl"��,$ȩ��)`9nQ{�;�
�tt��F���P�%�ҵ���<\񋔝}~o��2�)��ܐw��j_E-��~] _�SfXʄ
�bg�x��J=1�'&��D�Č�ư	��3�0����-��.S`��&Yg��Ay�73�a�kz�I|�������T듰� [...]
+X�!��!��\�F���]����|�����*����Gۓ���H�ʳD�ߛ��Sr�9f �!&ǿ��
+��
n�r�V��	\�,���"��
��&;�zl���$��KrH�%*��!���LcTDm����`��<�zKA-��̫8�C��]��2��|�ߖz! ����Jx%�4�T͝Ej�wӄ�/����mK��vCRiO�H�7�8�وh���Q��<��P�]���\݃���>
O�B�U����s�
��1%�:,ǖ�7��y����_�ݠ��Ȣ汅��V���y�?������2n��=M��
+*
~�^�gj��o�:�.�����
��`��U��x�;`|ou��75�շ}�k�#�Mt�u��Q(~�K�*96a�ڧR����"��	H:
1�6���:X~E�YxA�/��bk%�u�[2n��_�쳈����!-�m����b�Q���2j�_΂�,�flp�r
+[��o9h���!l`�~��	��{��G3��_�9�~g�cA��͉�ٖ�c�ȶ��J�Stm��_ۣ�#�ܛ�������Q
3�[b:l5���[�+v�pe.w�I�(�؈�M8ۢ�~�a����c �f�U�]�
���%�^��}�W���U/?�O�r{�1!"������bf�w�ur%�c�
D�G�,�H� �������
n1�v%&��kYh{��'�n
F�j���&F��i��iB
+����D����k��>	<ӱ��d��nD����Λ�yx�&�ͳ�ms,���1�jvŏ+����s����G�4s�]mG�y�_�=���<Zyc{���y����d�S�*��=���m�!
��ӑ����Es�TT���I�A�!&eAb
no
��ۏMrΰ��ݭwW1��Tܒ�����Rv�y����ql�O��z��V�2;�H� cpo�kH�wg�K�ۤ�W_��js�-��.1�fw��h	�V�c\mT�������{G3��c]��K�-�5(#T
. � �p{g�"�A>�W}�Jn�_Ϭ몾��N�h����G��/㋾��O[}-OU�퉕ϯ�
���GQ	�+����y��OtCi�釳�ٛ����mW�r ��7��{����ӹ�g�s��'��m��BrX�q��.���9|����V��S-,���6��G3m�̢�b^&��2�
+�As\�&CW�
�<2�/$��6�y~1��/&B�Rb������TKʩ�M�D�_��*0����Y0VѡQ=�x�J�-/�rrcTG����h��$�ܯG�o��F��t0ۖx�t��/���៳��g�H�)n18ŵٖT`�sK�y���v�H�1M� $g�!�A�ֽM�t�_�?�L�]s��������y?�#��=
J�����o9���W�
�&�Ӝ�Svk�W� ���?hI���#!���H9\%�t�6�]b�o{n]mO
+y��vV��<<�'f`���'����Ӄ^�C���6	u`�c���m	�Z�Ws{w��ZF�ۦA/�3��GSu��Ǫ
�,��
������k�(`��WDļ��i�^���X�y󉱣��T�}�d�}^ۋ�ړ>u.�r�k�T5�蚾��{��_Rq?f@՜l�٧��~C�Xǡ��G5\rDAi
+n˼�
+����<��̾�m2�df��I2��^L31����{�
E��{�**��*�]T�����s���������ޫ\_�k-A��	^�C�%~ �yFҚ�3���i98�� ��ꦶ+ydž���A��Fpܾ�cG�-떎7��O+5�����[zh����ڊ�ɶ��q�gStԎ��emyՕޚ��xDz�e��~�cWM��
w��W
��HLs�	��ݜ�Aa��y�Ւ�\��6^�S�.���w'�����m�:~Fڑ'�[r�����0�;���8
�&��	���W�F���$�������>m��&|��_g�Oah��(�c\��z���1����DQ�A�.\��
�n�k.�I9�P�|�Ⱥr\yqz�.а�P�R��
�4l:����k6�_u�G�����cn����
߽�&�0��/�i9��;��
���2N#
x��k����⾗�}i'��U��g#��{;.<hÆ(_ׁS�J@��W�T�����,>?&jz�� �m���91F��k���e�J�q���ږ�Ms�Q�����/(�1;��kY�X����
�ҨY�i���(`�����s
+T�[xNP�⤛R|q���`QɎ}���S�v��6�9�������wW�
ݥ���'�֎�� ���vB,ѧ���?��1�T��Y���,���
�q8CD�!�������
�}Rў�nC�l�b��Zza�%�6�����]��T_��~Ǩyz\�/��T��;%(�\�	�oA��'��2Ǐigi�)2�F��o���?�U]odM���^������\�1��|�hc>2���լ;H�;n&j��&l�pUk:xƊ�:㫰��3�Gz��o����>Z�m�쬏Qr)�Sr��H�d"$�>�[r}�Jn]7�;��ۣ��Y۫EYm������pi���)i�������X�

�l�
���E6
���NP٦V�i�й�@���4m�5���<jT�/�
h�w��~1�r����M385Ƙyfrͅ@O�U
�fR�tGK��S�����ř)~Ӎ�~؛e%�}VI�����N�c�״��U4m�I߰�*�c6���V9cZ&8L��A"�}�i��c���1tcx�����pkQ
+�2�Ul80UK���
�67�t1��(��ώs��n۱u=��[3�ϸ{��V|������������xZZ��C���0�a��� DuŸ*B���ҙ��c��utν�ɔ�겗�s��Ȼ�d�TB�^�/L���e�����`o�5="�gFŽo5��ϊJ��Ѝ+6r[q��S����X��O!,(���?/+����L�2�l�HP��]v�K�~tv���֭��y+𻹡�;�#�#:L>���iH�Sc��w;�x��dL
Ծ��V�����Z��!�ܺ�-c�ɍ��^��(1�ŗ}��s��L�q�L����wd}������Ӭرxw_y�"��
���
	{8���:�
+#�+P�
߲l@�DF�^{�%�]��̀w�JD��Y���T�]���
4��7&L��پ����g��׾<9�����;�R�
+��爢���������XO˻�>:�C ׾l���qU�Nro�NX�P;|#�
��ʂQ��ab�m��e4u�Ws1@��C��9mD�:#����������
2����U���Տ��Z3�U�9+��W�ܚks���J�S��hN����
���Gs[ڿ'Շ��uegҬ����1����
 i���n�ԕ�e�Nߴ�s�=�� �`�W
��5�i\PsMM:�'}oƦ��e�����]�ųw�b�����3�=�ς=
�Ԡ�3��k�-��u}���
�����}/�Uފ(���Z�9s*��]?�a�����5�rp����e���y�`�O-i��~啅��<Ŵ��ذ
��f�ul8��u{/��h��+y�=����C��
c�{�A`�I\�3�=��p���4��
�3+FT��S}�ͯ�
h{��1���*>L�	;^|Ӻ�иb"4.���Fb͢��l�'�����pxN
J��r
j}wB�,�#,���� f���aAO,kK{����
�:M!n8 �~x�	
�C���Pa+6b����`r���h���$�{�
�_�_�h�W5�Oc�(}b�
+R�tV���%�f�	-3SRθh����n%�	S�Ƅ=��C�F�t�PvN�
���4���լ��S����U�zLJn��"gdc�ɐ��
U&����S�y�+�8E9��]��k{6���
iK��Ӛ5��s
+L��ߺ�hM��6<^г�^n�7��w��7�������
���i�<ґ}z���S{}B�rsJ�voE	x�a��G�_�HeWfe][vl٪��lF-ZHukN&�`�����!KL{Х�~c;����	�3��-2���'��o���+�7�M�{!�;��s�����8�*8��
�_R��~Ǫz|Jѝ���V}	���T����'�q��^p��L�E�~����'ߚ���̲�9��U'\�v�
��+�	�A�pyTQ�lZZs��k��,{�k[�/vl�X��6t����S�[,��έO������(�V~�T�~�{~�˟����g�[�������]ݛ�,�0�"�y�u��[����:��ˁ��G5{����ZWL]i1�ڲ��v\躨�-yQђ�l�J�v��w�T��,_�-�kn���I�SZ����FdՏ7�
1
䭻`�G}��L3y��T�@(�r�:�\��� �u�����6܈�m?�a+vmԌ����U+FlYD�H����{.\�� ���#W͔��A�_R�fG9����|�E"�98y�@�ݱ�Z�b6���wF��M/��D��X`E�2@¶۴;JE��i��A
�0DF���M/
~�"�yU����_���Ҧ;;VX�q*fJ͜�H�tbk�M��m/�t�ʝ�t�^�"K�}4�]ytF��$����Yf�Y�(?�rLJ)
+-��u.;(�K\�W�y�Ǹ=N#
��̯�|��)�����q���
��
�p�hޡ�t�'�����ZXIo�
����kj�c܊ss���
ZT��04q����� �jF*j�$�/�Paq��	~�����~J���1 �4��O���a6{o�E�	P��NL��
�?�a����c,Қ�X�f&�F��IQ���[rV����T���\r�J��"i{uB	I:�oN8> L��ɬ�
�e���/�~�ս�uZ��jR�x?�G?
����s�1k���Ws��T� �Y��=����m3�uA�p7�jy4�_us���P������rj��ԇ����_�<�z�6]�������/
_��z|1.��ٸ�'���Zޞ,xy�80���ial
E
wG�ŗt��3ܺ['ݏ��0t���a�l�� ���
:��&\�
U�<R{�JL�uR\�ẍ́��!��M+:Kge-)����E)��n�M,��R��
����Fd��Q!�p\�ZSSl�̋|ү�CE�?�u�캀9s���6&�z鈠Y�nC4���C��e�4�n�:I���!�1������9��
=$O�N�͊˿�v$F���%92c���.��ukf皅�Y�P�#*\��Ӳ��#�7Q-*{���.ȑE�
�M��C��e
0u��	:~w
�5w&o��]As^y�C�W��⥑��ў�++��Wkx�	[c��5+�b^
ys8A�~��ٽY1#&����#X���\�?�,��0	
���-7��p
׽�Du
N�i��
ڇ u$!�vL�A�F{b0�N�x���?�a[v]��5*w=�OӃ�D?��ʞU�`��p‚_
��~� k{��n����=	�7ݞ�k�;'gք���|���\�ptn{��vT��l�
)Zs����M���'L�V�'�\�����Ӱ��ޡ����w
�tK�ҝ��"4.jЅ�:D��Yu���=뤋�zm~�\:&��S!
+��:l��^`BT��[�j��71H�
�J����@o�=��z,�f��!�[B�F��f���C�����GA!(i�I��
�C��=�l}�B�\2+o{���r&�^wq�w�]u7�Rt�_}�Y��8!��1d�c��g�P�N�+2~�6^���a�&�Q����V��h@��dĤ��AS~P"�.xY�wV
�j���-$���[�����
���h~@�iQ�Nr�%�bJ�+k�xt& n)�0�o?���iQc��Y|e���IK��&D��y5��ؐ�W��[?�1��M�eG��v����@H�"h�{�I��{#�Q芤�T��ď<��Y
+��IlסV�e�ȱ1�.i���(:�
c�ʡigM��k6B郥��=�jEI��(����HWᦕ�
�@
+Uت���-kH
�rۆ	U<-������f\;���ߟ�
�>��
�ߣ���dxL�AwG��u'�`U\_�AsBRH�����핇�~~i����=��~t͒�.�C�K���X��V59 |1!j���o�P��
*�s����kp���r��>LP�C�?STο�ܯ3
֧I:��
��e����k`ۃ��g����,���۸0
x>��ro~��qD��|I�����=� -i��{n.e�@o�j�9S�7�}�M�+/.ˡ)sJB^��bv�f���M� �8Eg��%�|��s���
�s�Ǥ�ټ	5,m\K��c�"
9�e�L·q|�ӝ�c�e��ƪ���'UΫ0�ݯ���ˑ��gK2T��P�+?�����X�n�c|V�i�J�W\��^\T6?�vak7�����j
�����ׯXPs��W��
�հ�G�U�~:�`��^2j�
L쎇C^��Z�,��Q5��1Dx��&�(Ie�2b��
���t^3`��=
Ћi1"}F {�u�uP;oj`ug��kJB�Uj���4�ٿ
�۔�1k�Vx�* 8�)"P�j�㣞ks�֧ay���QOc��-�a��O�H��\@��U
�i�֞� ���)�CJ95���;$�Iq�㐚X�Y��ӳ����ߝ�ԃ3C=%ׂ��?-Чߑ�n
��;c����P2ZҞ
�U'��u�1���P�ʺ����sNZ��=
w��yՏ������gHE�O|
'�?��^|ˊ���4�'F齓��{ǦU��ʧmo��2
+_�Ƞ
;�;"�yع� ��%�=�Ǥ�17\�W���Q��_���/����$ܞR�f猊�oi1�g�t�|x�s�����*w-�o��[+ʺ��#���
��_?�b���
E7 J
��e?�������8��5��~2��x�
�ش�&����y���Կ|�Q���
��<�g�4+r�����+�OApݢ��֦��ߝsO�)y��e/*�I+zH֎
Yq��+�nX�!��
���
F�۰3��
1�h���=�iHPu�B.�Kޝ}z���銅��5ߟ
hy|�"�|;>I��a
+q/@A.�IՓ|Ѣ�C\r��N�x�������Rw���]
��Ӱ���:Ż.b&��"�]7���`��U]i�
��_��E���Lb��@�*aow=��m/��K��2EB�	]Q
$oLXwgE,���C�'vh���
z�mGs�c|Ӷ�#7bu���	2�kn
+b,�Hs*p�
��dG��@Q7�ul�rT��8�b4��$�Gs3�����ATj
��
���I�;?)�z
��y,�=��[ݜ_9���D,����
+�5ӛ#J���)����u�:a�1�����6<���q
+lֈ)\�k�����~?���k��H�1=а�#U,	�sJT����n�ne6�Y�!
+�������NJٍ1���0�`ZA-
b��X��*|�����<E�.Y��:h��]�j%��9�U/
{���@��Uu���X��`íɾ��s���:\�Ew�^zݕ���h�^� ��9�o�݈��@�퐸���P��y:{R��Zs�����
4{͂��<Cg՜�z ���31���:^/�pe�JF��z����Y�"�f5ϊ*/�i9�x��z�
�E�O�
��Y
�-�[Оz9������nAݑ�aG���Qs������̀�,zr�6��m'�?K
�f���L at kc975,*�:!��F���w���s[����K��a<z�ܚ�^�#�O���cl�\;: O\�SZ�b�_
���#=e"V^v0���UZb������%��z�-@)kfD��[�d��V=���D:m
`�咎�V%�32���1vi,�6>X�6?�0ug���#�®�_&����������Ҋ;�m1o��Ni	e�>is��^���ּ��e,oFٞ�fg��`�k
x�	�>cB��8����sNR˦�Ըi#6�H�7F9�I=���Ӛx8A#|�e�>�2��f�yͫvlٲ[��#U.[i��A�99�p��O���qk.O�W�]P6?ur�φ�l�H�zf�
�1~w���"�\�?��_�����쨭=��3,9%���X
VBSއ��Q�}� �<�
QM�.x���9�Ϙy�Պ
�����۞�堗Q+�j/��w�4�Q [...]
+���G�
���8����뎘.��:�j}6\��� ���e��ZF͜�\��%wlz) /���|,/���Ukd�װb�TFL����� k>.g7�;r�W/jǷ~:��;�X������:n�OOvKZ�Ϊ࠯Gg��h�� �b�֕�e����0�s�ގ�L
�R�߸���f�[�
7�hx����G���#��m��3;�VJӢ�
_�p�+�\�jc�
Ԇ5./<O
K!/
��	�dl�T6�� v�bύi�
S�f���rL��h7�`v/8y�)K�'���e�R�1�g���v'/ˑ[6|��5�"	�U���?�1%Q#�4,m�����sf����
_���b�=���Q
k�O��8��U7
��wG�u�p�H��!y�R�S@�λ�,H8�e��m;؈u�m�O�Z� �NJ[�Nlx���	n�V�����Q�]/�}�O�Ґ;>*xɂ)�
�&.j)
�&f�����i�7��X;~Nٜ5�s7�����������1
+rÉk
�<	I
n�kx�!Ԗ���6��
	? �5N���g��O�=��a
+~�.��vf�xa����
�aR��0j���:��Ȫm����jb�ukVt��08q�E�ܝ�
,{Y������	އx�b�{ۉ<�URu�-쮍�``L�U�hHZu�;V}$ȆױbGׯ���U'��u=
��[�^n�Dm�Ӑ���9#�f�L����Wo��lu�	o�̊��i��hct���&j�Vo8I��q&��d��~���>�q�����؂u?�c;Hǯ�Q�.Jǒ�
+�
�I�^�D��8!���z9�e+�r3�
�\�[�l%wl�C"��8��袴����IN�v
Z���G��rl����U?�培^͗9���l���4Wvd���f��r�a�vJͪ���-�@�yZ���ay
jPJx�2!�J�WA��8�u��7�ۿ3*����=Q
�n� ft�[O��ٔ
���:��B��c@�
`���u��h^�Kґ� W\�2��n��Ck>�j�ۯ
�D�q]/pt��;��4����9)�b�����Iz^�
G�Ť�X�h�"����:mN[��c����3��>rF�.��"ӣ1���e�y{�+n
i�M�ly(��I*}-�kU�3M=��&0qZ��Qr�����q2d���/���*�Wq8��o���^��h���Q=�(�f�ڑ��kK�S�?��i�e��Ԅ����O�8av�+qIN
�x���b�َ�к���~VMh��
G�矧����Lβ����81?�W���E�d`�ƅ/:��'�p�b~P7��z�hB�;H�m/�fG�G���1헶�l}��.���o��qdLkm���Z�K��V=,�Z,��tYɔ
����W�szC"�J�G<�������-b�6G{xkc
jt���2ʖ]
�r���}
�NH0�d��*�v5��F�MYp����^D��
�3qAa��;eQ���2v�����<b@.��%;~
+tk����31��,��\�k{��ٜ��l��*�����y�ro��^� 
vBmX�+k9�>��?�vu;!6{s���؈͛2b5 at GF�Ħ� �{s��?��L�T�=^����Nh���P�Slᗥ^�Q��u	��AwB׬��5�����uc���
�z&{G�'z��^j��
S��%���1��ly�����Q�yHb���
���+�3� �Mk�m�aNP}& B�8�

�f%�
��_��ͦ
^��	=
+Z
�u�>�‰]
y8)
�%���C�2�+�rZ�_B�
Wq���_z[ro.�(�q���(����G�	/��-�*^cP�S� d��-"&H�_�l���:٘)�y�0@ꄠ��X�l�A͙%�y��>gav�J!��jrۼQ�
+�r�
��,��P�&	u�0čX��3Xᒵ������c�};8�^�к"Z|�T��&���	��^\K�A����y
�c��'M�q9A~�-�u�M�o��
/uRڧ��‰�o{x�����!y'H�,��U�^*t��z�#���/h��E�X��Vm
PX
+N��4�Y�����t\D��s����;�
�{�;�=��L⊛�ک�Q�|�ԝ�v�s(��q�S�pҼ��9�
!O�9-sG�
�����=g��.X��m��|Z}��SzfsJ�ڌ���9�uo�W�d�c6[=m��o�q��S�Nݸ�0&mC�{X��4L���i���?[ɕ�����,L���j�+�	��wC���)N_4@o����)�fwZ�ۋ�y��(���;o�
/��I+��;L��
��*t�ḞWt����6���<���ع=-4���e� �3g�T.��Еqa�v̯���
�5�v{^�"!�&����:��-�	�;!�f'���
�I+�qB�ʚ��[wfH���4��8�>ʡ�����&�����ν0��	ƕ��e�@�=�<��($ϫd�Q)3��Cz���ďH�f�Z�_��9{�M
�
�;���Ȱ�V�l���\�R0��J�8�ʸ�Tq7�J,]����z�[>d��n	�E
v�P��=��c��[Ȫ�o����[�~٦gP��2L�`�ll��w�HۃzU�Q2Ҧ�;��Q�W�W�F,RM�����<l;�&�r����T�
δ�4
޾�ƈ��f��=��
�
+�	�e~���)�׺�;�ޒy
�nƀ�\���6�
�j̯�:A�����J��R�-\`ƴ�Ա`�A�[و��K?�_焖���6�Њ�Ӭ��=Z��zG��*#�P�E]�H�-��>���/\q�:�e�b��=�$WEc��������0�pN����sQ7�`cg
��Q�y�HkXr��KrkL�̙(�~��ݢ� T|Y�}���+�
��d:�u�H3�ۨ}��w�n��p��MD�zY�E?��c�%�mc�ۈi�?�{�c55f0��vY�`vȆZ��t.[�D�K�:%�P
�K
�����a/T���Yuq��l�Mhڝ戏z_
L

[auu��]
+���
�k�G�e�z��@�S��:e�Nڤ|�l�
V ]R�%��u
x،�
�٫n.~kl��
ۛ��L���S\��yv�����5���Q���<wdo���1)
�>�u��.�dO�{qak/)�!�Ϻy��)cɍ��1b*W��vp��1�+��a�n1�g6�M�1�\03}%|�� !�?�U��(����-*��QK�Blf=�U�b�@�M�/
�E�����a߂wX=a���.����'���M�<��tiV����״z�^���5�
S
9
��um�b}.����{w
�GI���
Ro����Y�$��Q�
vh��2�1<�G��,N������&;ytG>�~�P�?�X���]�Խ�e�
_�8^��G`(Q��4��JЊS�7��
GՇ��F�p�p�jHՉ���:��Y��_藋As�d¬[���L�k9�����ӑ��N����+vI��X��p��$⢮�庭�x�W6��O��Z�^".Sr�)*�@�OaL���i�o\��:��I&���"��yE����+���f1mZA+�hI�Rp����h9n���
A���y�>f�I:T>�g������
@���I�\c	-{�P��Z�����u�� v��x���4�
��r�����
�%�iր��x`�QF4��Q"���E�qH�b���B����k��g�
�����q3%���7'��п�(7(���0i���|�E��1u3VR��"���F�А�Z"TH�,u<�>������E�h �MsY�ݮjƒ�"�ݒ\�Ś���莆�G��D%��V��y�����X�㒽Ivϧ���
��;+�lM��W����>1oܥ�j�\,�
d��h���
R�g�x�4�HO�u��;i�!�%��I�|���u�}r���'[�s����i[��<(� j��$y*�-��|晒j���_����Vt�����*�a�p�
�H�҉S6��mrT�Q�@6
+�"�$�A���Ì߅w.c@���n�UD����f��*џ�����TJ����6�굢��4·@����?�2e�^�d������}9[�q����0�|"�0��e;_X��Cy���5u�K�O>~>�����ǯ�
���]����q�Z���d��]�
%ٳr����=�r��J��ө�$,�
O�,�S�Y\�d	�h|M�h^��X~������K��]N��M���*q
�B|l���F�z�%��h�m�X��W���nP:�K�ݢ�P�x`'�_��r��\�)�M�'bp��
��SuE�JQ��2��{p;������Y� �rC�������0=
ɶ���'fp�aKB5Hr�Ic�ȥf��:�8��Ԧ=��I���N�T�~,���^|cܟ���_*�{�J<v�NK�ӗ������(�oQ�/�f�L�� e�U�^��<�ĝ��
W���
�7�L}����Fq:�T��w�c7�7�=O�
K̠�p�9��cT\i��@��"	�x��+�"~Θ�R8�$且R�d c���PZ�~�����C{����GZ*���*��?�w�faܣPܯ���N��
w�z���6��w���7�5�����[&
n��	DS=C&i��m����C�Ռ
��t�l�E�L�A��0���}E�
46�����t^
�笌����K��{�uQ;��AL:9N4dm�f�Q���6\�Va����|���<�7��v�]������gq�o�ĽL%��z�;�0.;z��U<T���>u_�g�UhW)1r������Vr��ѧ��Эz������o��Ž��
�)�|� [...]
+�Xf��dA��nR�e��Z��
t/�ITk3��à�����n�L���a<[Z�w�ы�ݨ9v�Ak܍�mq7�[��ߠOħQO�,��(h���'
����~С�1'���y+��/Ǥɹ�x6Y���'
A���:�Oo��'c>w<)�q�I"&�潶��w�b��8�w5}��[
��|�<�V��>���wE�����(Yp1ɋXv�L��*�M\eN/��)�����
�#��5BC�;��d����
�0}��ܱ_�̌��7�R�Y�ޤ��Ԕ ��
��y��
6Ke&�p$e�MU�y�Yݔ���`���"�Iٸ�	�o��*>���O�ŷ��|������Z&2<:v����	yc*|�GM+�(��¡ ����D�5w at p�_� ��y�X.
���0���s*�F�Cr��d|2��L�o�-�kX��J�x1�$g���Q�1bcC���v���%�
+��d�Z�D9�d{� ��AX���f�٧i��h��M�DZ�Dv9�ײ6���n�_
�5�����.6J��G�ػr��])
=<(���I� ���F�y�� �K�{|�N;��%���`�
��]�]�4y�i:=�ƒ��?c9*>��Z�9U	����\Ef��g���;���z��'=�J�2¹��:��L|p���4����~����sn��?���]�Vw�0�ҭ��?�.�Kx9�S�;QV!8�©_��DU�FJݒ��d"�[�C@ِ����=�
+�ʱ��R}.�j�W�,���s�< ���U��v"軄��ɴJ���ޛ�8�S
+י9<⁏��
.Z����3�3<ja�ZW�
i��"��O��'Д��1�[Um#���z��TR�TѮ�)��
T�Ւ�⩒�i�K?
+�%�
.!c�@(�7cJ�:tR�r������aS=��NDSw��Ӣ�KIy��o�$|����cO�"O�V�~M����\C�SS��ZK�cd�ME��c
f�-/V����Q+l��z_��9��f<o�-���9v�����^�ݍ��c�ˊ��fc,6�
O��݁$z��|r~Ӷ
��zP
�Nlћ*�
9$56Ů*���Ga[��X�]0B}�$��Y���M�R�����
�.�!q�:�|�#
��o��P�3����
�0j`�u
+�D<\@�P��A�st�Ti��P�.����~��{�V^A�h]��.��
�֑�ڈ�X���
���6��E*gɈ��I��v��hPS4ZtD*�����}�JS�����7���;H��9�+I�Kވ�3�m�G��F,C�-/w��V�Вy;��{ͺa�Y���G���zS���p��~
�q'����,ډ������N&f"�M-eW�s*�����v�o
�ぁ �m�����
[>(�D�D
��� �0�b�C�
�X�ݫ�DQő$͟�M�<`]w_�S��j����J�%u{�	;]Q��
��b�l���)5>J|��#Jâ�7p����}�x���'���G�����G O㊵9$����|�f_���t��v@�.�h��
�A`�.B�h�/
d���O�
X�0
�f}�Ѭ!iG*U�
y�0khp W:bl�*

�#�F��X1��`�LV�F?ب��M�
t��A,;���>�e�e=����q3n>�k�m�
���-K��ۢau)�טօ��l'[K����@�`
+�Ǟ�鱾��߱Ě�\Wc�8-
����QB����E��O�(�gĞ�~��*�SkG`�re�p at _��B!��� ��jI�௴2�&�0��ԧ��]61f\��		+���זm�q%�"�c�&�"ب��٣�{��v���A��{%���G��A��N�o�
h�|C���JqNJ��u
8�=�m/�cN�)XT���
���
+�6��|*V�EL�2
+q�v���Pj:�$�j7ݡ�Vzt} �V����}�����]�qp�A6�C�����*��U7���+&L��=k`4�-��\:m�'mB�_Ϫ�:�+�����m�HO�S;�9f�����E��r�l�>6��V��lO��������Y(-K�!�wH?i�AF��r��Rb��T���ʥ=�l
M�
�V�"��	h��.ǿF�KްzU�������pҪ����m�..cل��0���9$�
��r�ǥ5�\�����b��:����򇼝�ã`<c(���sK-�g,�p���~�
�5�j\H?D\�Q*v<��
7���(6?����̸�d��˛
�
|l�#|S��q�8!��� ^
1�"Ŧ�ؗ6%=`�F�
�Z�ܛe	>F8���Tʇ ��S��!������
���H8j�rg
}��	
+��[�q�~l�Oj[r�
��9;2�J�=��q:f�G�-X��nBӊ^��$�+�

�Я����o�>|��VC�ELm��.\ä����t�RHz�q)�
:Z�[�~�ѳ*�\B̌��w�۷�\��y�rۏ�_w#
+���O�}c�����)v_�E��*��\:ˇc�A�� U}�:��9����
+F�V@�znM���_�b��C
vD��r�Wpa\\�v^���J)�{�����£bݼ�zLXy=��p{YO���x�Q%�JI�o[%��‘�A
+v�ؖ��h���n�_3�S7m��y=�@�/�17Ж��q
����u"�v����Q,`݇kZpP[V}������0���k��M'${?�����F	m*�A��<AA|
!�'H�[Nd��25
y9�B���^���
dт
�������^3��-�Rbk?'�z6+���QK数�}���Ƌo~?�i�q!��V��5'�}IO��V�����y
4uB��tB
+~V��&�|ȸZ�9&g�h	��AيC��pcK��׋#E�w��%���d��0_��ϔ���i~���FY��q:s�	k\t��g
\�.�z��F��|�Hkݰѻ֭��ekW�Q��C�
�����d��̘��u��1Q��UCk���a��r:��[�����"1�C$؊9�o4��9 e��=��q�4�ڀoV,�wBD��9"a�
�
]]8�a�k{�炖�g�؝&c'�����X�y�3�n��4ܝ����2ˮ�
4=�w �>����̘F;����|�Mh�W��OW�
+��^������0����R������P�Sҗ���$K�5��]		K�F���?L����#;$�����ʯ3t����jQU�8'/�Q�>�
D5�3����,��3N�G,��5��`��9�9f���tʪ
�<���M�1�c‘%�H��f��������z0J�}��#?�b�߻�5�F�u_�|��p��m=27�K��+L��]#�tC
��1#
����EUw�
��J*�k�� �ة�U=�`V��r�/��AT���JV5M/���
��G'���'���S���kֵw�F
+.l�
�ػ��<���f�5E
��;'��F�
x��k��g��ꇫ�=ZԂ�,��Y��
�}��=�~�
+�ZT�=�
h����޶�ʧ�۞�	k�,顙32@ֆ���$L
����+�k����|�%-"�A��qYӚ��$�9zX��H��
]W�
��o�dFdm�Nf��rhƙm3�����>@mX@��>t�
Q�c�f컱u㲎l���Q�����MmK�{ }���n�T��e�x�CU
���LҮ�E�tQ�
$c�P�|�ݚ�7AFn�ѐ�����F5�h�_�U�'�%�w-�o�l���݈�����
��M"�Gh]2B����a
pێ(�4��
]�
� ��'�bk\��da�y�]��BԮ�;R6��5KWƮZ�eg���oխO>��� ���,�s��?�m�J�u�
��dr��й]�˨�;{�C����m���5 3v���%E{BT
Jٴ�*w]ؚ$�?!,��(�ჳ;w^Rt{EV�da��������.�_���5
8;���?����ᮊO��
{gюZr�s��4��m�LW�
K�S�ܐ��!
+���c���n�Ԙ0��]�P �٢�Dx�3
�N�F�%�v=��AL��Ӽ�Ń�
���iw�#�ڏza�>Y�7>\U4=Z?������
+��clK�4t��[�y�Wg,��G�J�	[�o�
�?Xn���h���>�jP����)I�3
􏗉���۶�7N���'8mj��w�$�����������w`�|p
͝lK�nH����S��>\�?
��kN�
�_��\�46�ص��<Ȋ=(k]x�k#��Թ��Dd��1^��)�:!��<#m�l��L�uUJ�ւ߆�Z�)g4�oN�)?�E�Yy�����ʹ]�~��Y��=֙�3�L݅
+m�wwM ��]^hi)m�� ₻�$�
���Zk{����|`�B�:�c���%�9��St�b>�SN{eB�c�]d������Yl˸��O>�oN?���}�S�;D����2��sL��L��'��#�6v�&�l'>�
d�'Css@Ɂ��+�ex�xf�]��
�8������r��^�����#[eu�O�x��s鸈��蝥��4��;갵��[�!~�c�W铓2�Տ���
,�.���]u�K����L��]�CE�u<ԑ��뚦e;���,�4T��2NJ�Ά�y������O�'I.
�T2���Ч��eWVޗ]\|�̣%���qH�y��OM/	��
,��k|�OC����_�L�s�
2v��1�4�xd�=�J��� �U���?TFx�Lp�
+�0	.)1c����y�*n���m�:2�&C��������Z����:r�S�N2O�"��`��r�G�(uk�;��%:
+�
�x�V�T�p�������mS�X���ֿTWs��#����զ6�����+�o�����"�,b{��e|��2v%@3&��n�ʫ`B<Jfih�� $�:	dxSpF����f��u�Wh�$ov��
����z�y
�A���a�ӥw�[���_7��O�r1�؇�vɨYn-�`��}�$���1.ew��֍�P���Yf�� ��^�uMc�O�ԇ������Ws*�=��}�ܟ�3,�'��x�Z�Qa�G*��e�5��n/1j�����u�`��ۇ���$��b���W; ���+X��Y�oqO�#�����BX�������ފ��ib�YJJ�j.��CL�)��>DJ�{���܋�U5�?��s����
�gIi� G�����k-��g���*n
ғ���e�0+�����?;��{)5�
<u�o
"�Y�Y8�$�`����{�'m}ĉ����\*J�M�)[�d�va��\���$���/~۟ww����R{�y�X-f��������no�%� �!��)N�O +���)�i��y�
��Aw��
�
m��ö>�ߴ
��?�3 �+W�OF�'L���^�w��[������C�0�p�]�
:�p��P��ޘ{W�iA@�k�٠�J<*B�n������,#�aA=�X�����8�Q�Q_�jj���iN)!�<
<�e��A\�?͓��h�ɜg�=�T���U��
��<T�D�M:=I��^-J�~�^���{
���q�̡~٬it�h�~%���t�u����«�UɩgwG�)v���R7��j��Z�>�Y�$f�'��⋴�n7u{��
�p�>-��?O��4�[E.:^�C�ZJ�vOi�JG�%�N@
��ӆ2
��5K�\_p�������\���b� 
��+ô��'����1�ѳ�����_T^�>��]�Xqf�
~}��
��G����j�
O����1���c��޲k�mi?ϵ������b�s�[�݃�o�03l����1��X�m���	����i���w��
Y����E>0"�&1Q�����om��b�9y�;q	�n�GG�'�EV	#s��HU�{RJ��v�ze����+=�N���J9�����
+��t�-봲>��i~������C}��:�ȲMҳ�B�}��
�qK̓������G���5��
a
�ƨ�3:�E��2U��6���֑w�x�����裠�U�e�U�|9B׌�\}��
+*I9�Yt�qr���z'1��[l�ϟ�Ł�
�i���'�S�N�}H?�
+=�JMc�_�����~=f��ƌ�����]���r�_C��{`�S���X҅o��â�����r���n��'�*�y�}������~1I9Q�YukuXP�$�+8�	,b�}گ����D�'&��'w���!C���_ˬ��A�F<��o
�xj���Ͻ�<3�M�խ�oU?[~���i���~?6�8��t����&�)]���E��
�r�]F(Y�Pzc�rc��M���Oc�~
,S�UC�饷y���r������C�.�,��i�=w�ģ���i�V<�f��r>��4إ�������蓽>�c�<ɣ@%���g��!�|���?��?n�V�_�e�������ګn}�lʼ�_��a��w@��j>"��V��`=*z	��B�,)e���%����������~B�+z�����������~R�j⎢�䢼��W�������{#�De+�1��]J���&��I��Ӹ8P����#໷�_�z �3��6�b"�;�Oꛢ�U	��3_�s�M�|/*�9 [...]
+6:!��ޕ��xW
��Qyk�M�9Sh���G�������½�����Œ0����qѻ}��V����;
�؟�#�L�$={��y������~��IF���+���;������3����7�cÜ3���w��iA�Y�(�g�(��J�qң 	*
�xOK�y gW�&�y����&����4MI��E��X���np�)9ŭ�V������Qrw�����Ce
+���
/󯮾�=��
���P*�ߗ_�N��s�mA�����Z���
 �(A>�
E<q����
5
b��b�Rd�k�a�a�� �c:IO�շW<�~tͰ�Cu�U��
��Կg
���;��h����ᎄ��#*?�lB>>�Um���`�}�G����>���[�íAV�x�9,A�I���j���ah˼(���‹���mE�,��\�
��j^�����Dm� ���Zrn�y�:NLп)�8Ό�f��}�_�i.<9����?﷖��}��3�o`�6G����ܳ�ܼ�w�)i�6��6d�?:PO�k���qz�����.�d֣�|��:a�d�} cX��=�O^\Xy�w��_v�.����"o�E�C�
��9����N7�?�E�u����
�׎�i�r�
��(5�s%q��⪹��c
��>��b[�UuC�/��L�^J��$��!f���w�P�\S�x�:�`�
�U���ࢢ��W��
���.�+@�|*2�`������Q����&� [...]
��|��ˢ[�����o�t"�8dB��8#g���S-���%,r�=6b�
��.o��׆�����W�Cl
��J��'�H�?��ߴ��Y�Lc��fD̏
�V���=DMPח�W��1��Eo|���VD|�#W~]�vFIq�Y.
h��.X�?'���Zj���Иsy�%��MR��-ns�0.�9�'�f�e
��L�
�ҥ�%�%����

�i���K�F�O�b�*z�"��"��`�*�@
+���Ͼ��]|ţfƒ��CF�
Y�	�b���C�h|1�+疃l��;�
+_}_y}�f�$�f���qV��!v�
��|���>���4A�]�(�h� ?\hi��N���)�US�/{��p���
T����
Ys���^B��8;GQ[��3�	V�j�w��(�?�u��
RAٴ(�th�"��W���m����
����K�Aj�	�B%J���0ۈ~����م�g
&�o��2��Qw��c��UMb�)�<����
`�ar�6|����Zg���w��۰O&��^R�s�.]���l��������9���\��09����"�CJ��7��Xx���zG����Sƞ�[�1DZ at +�j�0O^ ~��=�����9K�\{S�����ӛ�!��;�nϿ��/m�^�J��T�Փ�ZFyPM+tNã���nN0"�]��,��&	6�9&�LEԥ�6�=ֲ`NI�=�d�=�D�=u]��#���w�y�9��W�څ��։xh� �v.�O��
3�lP'q
��۝��o�`�5�F���f�_� {b
B���W���ң�
w� e�����No
b#7{Q��]H�ɔĩ��_�x�?-�+���[�����a��ߡ
Z��9�޲�+m�g�Z
[�(=oE=�h@�Ws��
���3��@hN���f�"&ZKn������:�u��b���fk������§}���
h�x��lhI��{Y�x����� *����j��o�w
JR��u.�->��M
��*
�T
�����OǑ�3����ya-�ڭg��"��
+�v�H��
�)��֒��0��Ar�u������T���y04n��;CN�+X��)^��#����Ԥ�W���U]��\Ӷ&���'����c��"�J;���;䃀B�r�(���h�)�����0��F/�i��l�
aꖲ3����۠�vz�}�8�(��>F�[l/���Vr�5C/�˘��a��\���~Qug�-�aP-&�s��ߑ���â­r�V��܋�߶>T޶ �MRS|N����� :�%kd��g�-�!�)�
+Ύ�c�$����)VE#}���*�)9e�g�@.�j��ӘUc��5�u��'(�r�q
��Q~4�T��;*��PbOL�O����
�lȑ���(��g?�i�U�U=�s�� ���#�/P������Qr�U��@fTG�o�
���/{>o�����k
+���
�sO�����گ�nw�\�k�:��*������{�)\rh��^V�	i]�c���
hh%N1Yߖsn���?�7Es�eu+쾬��&4��w����A>k�M�奖�k�wCSޙ�w�7�rZI_M���{��^��o��,�W�Ú����9��_f�Zj/��ы~�>Dx�NM8���UBJuK9E�iR��8<v���e�2ң��y4�
�[D4X³V	5ӯ¥�ؼ�9�h��3�Q��ϡ��X�'&���S��qB�ZOսv��~V��).;8Ϥ��kè�A~��It�{5����L�$<^є|z�u�u�8�O��\�G"�o�G��q������[�Q!�Vz���w�Z9r�] ��e����Uؕ|�V?1�:EJ���#|2|�U��Y~�sq�����{�5�,��4��Y�D�3�����JM��P2l at kߔ^�r���x
�>�5�m2r�e���:FI^x�u0N�v�2K�2Nqh��W��)�)�|�<l�u�%Cs�/����0�V�d��b��
12��c�s"�[ˆ:�B����3 [&YF�q6���I���$��GA�=�c��Z.�<�����4W߳Iȩ�c��Nr�O�=B-�,�0�i vǯ��A�ֿ)�:BM��W�.?�����`����{P1�m��+o��.E��#�]ƅytbfh����0�/|2�O��*��&�
��41���8Ń��	��ɺ��1Nޯ��G�;.��7uo��	H��QhV�Z�T�����7恢���_6x�
�C���<3䑡^t�T+<^b�\Jt��@�흮����l��`'E9-�t�,
n����Ul������{��k

��zR�_K*^{W|}���Sq�n�T
+���ꪾ���TXp�<�/�
�E�_]���:����.ȓE^j��fI��/�_�;���~b�·�k����v�/K�r�
�)�+<�|"nRTt�`�^l�R�������H�
ѫ�U��Y��u�E ���dg^
�)��-�B��Z�C�)��?�0�ώ2bO;�l��]�_�b4�|��Z\�P�:&&8�%/-��Gŭ��b5�O��4��*��;X�t�}�Y���r-��xV�[�>eS�+�M����3��e��DŽ�
��,����`
�3�x�iJ�i�-��n_��F�sj�8�3�1ï���<� ����ӿH�YQ���B�	�*�p�Al�����Rv�����)a�T<�e����vs�e�9�#w����i.�e���诇k���?���ۅ~쒲�����;ws|��4.�:�|d�?����SRrJ�)�C��!�
/*
zgX��)bR@2����⢌C�H�,��6IN�z.f��*9��|wyc�o�3�a"vG��;���E��N��5u{ [...]
+ ˽���nb�C�R�T�6t��/�55~-9�4{���i���N
+���w���2!�2J˲����T�(.�8��4O㽺Z�j?%w�5���{\��
���]�Tcr>�S�
d��M���w�Q>U��@&��U���e�&Ǥ�+�������3������6���fS�o�O�X��Cȧ�gg&�O~3
���q�K�K���9׫��sB�]�-7N�3�ƱOW�!7B{am�2��:p�wG��k�_햓��#�ȵշA���i�U��{
�kh+��%eN���!��,0�.-��$EE�ЏC�v at o)�Ϫkss�	���YR��Mt�
���ٗ�Ee��G�Ѝ~v��;�mK�U)7שׁ����"��uS\�q�G����rRƟ&q��u
�`��
+�P
�>�����:L�RӋ��Cnn
�#>m5wW_;�<�����(>jw���қ��9����]6�����Z��0�h_�αO��
!D;���~%!�XK���y���P�Q�;���:K�m�_X�*�b
���f�G4t�E�/s��  ��ZsOj3����$��
�=�:)�C�,�
�US�/N���%V�&�S?9��c+�ޏ��ğ�{`�=j!f�
~g����'�>�|�Z�Q�7�aw���KE��:q�Ӣ�Sv)#��!�j^�_�(�N`cw��,����%��1C��T�x����E��Nӳ]rZ�_ͭ�N��?�<u��2E+8^nl�̀�8����E���rv�ZLvʹ]��� .ƣo�w�:���&��2�-%�7C���Њ����
��
�6@�84��,c��P�]c_�Ս���n9�m�B�� �ϼ�_Ӿ�D٦C��G:^�G�O��+��7Tq�5C�>68� ӯ��Z�i�_�Ţ�ί�gX'�O��f]ռ��m�m٥/�&�����_]�&D�ub�W˥��l�s��j�>vMa [...]
���r1�����
������@e�m���K

��V{hq�~�x���n�D��,�c
'�Y�B�]���
㕎
++~U��#���`{��� �ö)d�jWy�i
+
oW�sku/}�5����pe3�
+8���9.�xM Y�ɥ#�l�U����q��H��V�=J�7OS3m:fe`E���'�
P�-��t�� �|��z�ѳ!�����؈�a$�
�m�d�
�
�!��"�E��r(Xe�E>ަ���d�8�p�͝����ﻥ
8����2Y�\�l�0r�2J���yw�C�MuSޯ����m �tb��=g�
���E���{�ɿ,������)���
2N�Uw>���|�ZO���q��!�}� !f�����1[�wҭb��5�͞��7٧�^�1�"�
Rl�WI�v+9�&)�hW��2�4�J~�i��[~EV���lc�ŭ~D�s��:^�Xe��%�5U�XtF]���^ŭ�Q���Ί[^
�$�����\�[Y��酤�>�]]S�I]C�/����k�r\�_]KZ�">U6���{��u0���M�c�Ga�GЏlӴ
댰J���������Oh�#�I�IB�fo�����s��ꈏ+b�
�=Iu���`�B&�
��ۤ�����ˎ�ݢ h�*.�Fi�.x�کe�'�I�iJ^h���9�`�O�\�7@�=
+!ig�t�M��� ��%�N%*�Ӫ�	|���rc��-�p���4ɪX~��j�<�Zr�㴘7��#+Movu|yK�ŕn�S�0��O���t��O�h�X3� ��Q\��ۛ`�
 �=^fb>��_6�_
.
+y���[�>",�k%���KvG�Y��8���b]�����ϻ���PhQыw'���&�C��
+�v���
�R+�D��"�c A��j�@.؝��ڗ�[���wj�f�$n}ߥ
���.7OŸ��^wHQOVY@ϭ�N �����;�	��	T�JW᭥���{Џ@�'|ݨ��s��
+fqh_K`�����7�w�Qi�q
�8��eg�M�Qڀ�a���Gޞk�=5�J�V.H9
���Ż�f�R�(g����9�N63����eS�/����P�r��p�^�`g��5�̱�k��Kc��ٿ�F���[�i��p�̧Z�"�Z?��q���==�DD8�+-�I�}���K	4H���
��n��P����L��Z�e��
+��*Fߚyv��.ȇ V^Z��*8�P&�y���QK��/��/�j�����
b$�0+�8�`�;���U���D�:~�6��+�E
`���8Mc�E�h�����;�q�}���3��׾�ޘn(<k�k�b�t�_[�(�����v�S�,��x�C:^��@?�&����Z����Ʌ^9�rϦ@%'��)L����
��;�K
.��

��9�K7T���-��О�`����7�Y�Ƣ_M����Q�V�R������>tO���Է��fs��3�I�\�$-wV>�M��z1�chlZ
c歍��<z1�cࢶ��OL��!ӭaA���O������-�Id��ϛ���{�<�,.�!
�^b�8uM
����
z�R7�.�
���['>n�4��N
���&ڷ�!.
y���_�_"�%��sv%��/S�O[5��U.Ǯ���4�R���u�Z�����~ߢ��[f�
 �
.�����7U
ɩ�fy��
k
�ƃ<o�z��3uu��IR�� ���e�uc܏����G@>/q�n��:ѡl☧��Wŗ���4��d
F�9�m/6�[�;����	Q���`���
<�<P}�*�~j��v��`[c/;��}���8L��"�-vT��Ѻc��;�A>0�
n�#�'�UvE
�:IJZl���KO83@{zz�'�fp�Yey�4��q�Eh��S�9Py�8Vu�4��ޙw�"�>	X��=7��I��+\�W�
�Z`���"�PP����a��ЧV)�do���}��v0�.�jx(��h�DG^d�Yz�q�<T�R	�C�lMk�ݍ.t�_UC0!�U�S�̸�
�?k�23�S�
+~����{�&h�����Oß.�g�d$�x��<9�J<��zӡ��z�������*ﺕ"j� �
.�n%�dk��ҤbWص/Z{p	�M9� g��e�����y0
Ow)19�Ѫ�.��zZ�^pSӚw�4
j
��;g���"�ᒘ�G��e�%��
1���_�^��T>v��(��>-w���ܿ�غ#TlJD��	t�-��N?��]F�p�>�&���x�/
/B{�z�,�_�]E�ڛ@�9���V���ћ#�$��Zv�*`y4�����>����Z�\@O�D���b���F?�V����oc���5.9�����%|^eQ
+��4�e�����6�z���K
�KG+�.ґN-�"�*�;�7����EGy
��/6���睁��f���c�22-d�JW�^�oz�7��E�g��",h��[����Qj¾��l� �8Ǫ��T�[{�|V��Cp^@:����$o��6:+ü�g��@��k�Cޘ�~�hϿ����]VO0Ij�@~�4����^�(��=�d
/&�� ��� !�*�B
�ZҮ���i����:@?�LӲ��о��l�>�&�����=���k�1�c���HD��8#o���SNH�������[p}�'�}n�a��/^

#y
�@�����!��8�,5sg�?AI[ E�Rbl3�R����LRR|j>�.��[%�H�{7�^&]�NT��(�Y>uϩni���n)��7@)rI���:ryPK-ܔ����q�Y�e�.t���Xxz�
rM�\f^
T���&tc�{��>@����5��K|�OG̲M2�Wܯ�u��V�W	����;��
Yѣ��,���ڔ�f���LŸ}\��B/�e��$�ɾ
+2w�
��C�M�����
+
�ثeV��j7��QK
�0�4
��J}�1�9��c��Xd�x��ۙ�VF8���Ь��c=�?[B�WI�<�SʂZb�VO�����]mz�2LH5t�\�Xh�p�/;��?mԿ��� ���ZNէ�������A>Z�(���&��UJLs�ȅ��_�T��X�T"?���rB��@ŭ��%����
�ԳI�xǛ�Z���>��ki���6��T��i�H+v��@�D��"��^xh��*�"��&ع�絛iZ���+�+�.���?t��'U��cM���	V����s3�oԍ�'������LVu0%��GD�N)�w
�x��{��Kι��ԓʶ���{����,�T
l��d��K�|�CF�q�=�3.����x�ۃ1Lzp�A��ֳ��yyV�V	1��[u�7CL]�ȸ�oI��1�M�+�Yk�����耊��<^`"�zJ�C�O����b{گ����K
�e
�"%�
LT>	����s|�Odž{�̊������S~=�̩c��e�d�,9�5K��kؕ�y>�.'�[�II)�īmi��>�
��3Ӑu����k���Z��p�V �m�� 6ʡR�J�2����;8L���(3�W�
��i���������~ �7��� ƻ�ӓwa�;�k���S����̓�̝1|��Jm����f���k��汲{[�g�3�t�~h�\s�M]��
��;�<�L=٩�U��\�
�h���3�L��[
z��"%&z�l�Sņ���#=�����/eC�;I �3s�֚:v��y+}а����7�!��::$t�ؤ�6�xy+�b����5F+W��Fο��/�+�i� �|J|�_;5Mn��Fy-�$T��Z.̩�'Б{c�Gn
���FM�Ʀ�)F��
y�8ɯ����������,3P�)h�^g�i}C�ŵ>Tʁ��^����h.��y]����/�گK
�OQ�e/|�;Z|�o���&3�����������z��������n�e� [...]
ί�"LS�V"�<��l�{��#���<��Y�e��1!�-�ĚǠ<r`o&,����um���H��8�v��%E��A=
��
ouU�<։Y�W��sb�m��z��%g
L�c�S�T�c�ʖ��+��n��nQpK �Y��y
%��E�˪��ӱH���GK):Zm|�oj
���s�
�L0K�¾�qH��R�6�-a;u-�m�f�K%B���2�$&�:�I������^-��>ML�kBϵ��zT�,�x�㥎��W:��<j��z�k�X0�����
�;���]3}z��j�@- at YT|���ce�{�9�"=웥~z%�nl�>��E�&-��QK��^U57Z���7Iό��l����_�`�V���U>�;�B[�|pL�����NC-ߥ&f8�1��idt@��:��]jlq�7%���	F�_{���x��aX�y v���q�0��M��:?m	��B��,�;�-vU%����R�y�L�ǔ�P�P&)�
�^�z�I�-1ϊ������ [...]
�:�3�f��������
!�wc��Fɀ�1����C
�%g
�)�N)2q�7�er�*AE�9H�,9�6ML�hؐ�
�2T�������4�Vn`��׹���8��9\P�jlbp�����e����)�V):��@)
+�1A6D<�̢�
Rx�G
�?�M/�Xly
�7�@�˱���}E
nk���2�x�?X� ��S�
��HW��kD��iZ��b-�
�3
+{��Spq���Τ8�$`�N� �9�.Z맥�t͍�
��A=�ܭ�%o�ߕ7'��NU<>\dT\���̉Ⱦ9!������B
���
��?
+}�7\�ȫR���|sb�}�	]��P���P�����L�ȭ����u���
M�˵5���l2j��<~g����e
�x��2��y�^d���klt/�	=�G����j}�Ѧ��6'�.�qr5��Z�.}��Jc�/4�J�(5�U�
/�I�7j��^M�U5�;���C��Í�6��^��ҋ�Zj�]I+�>9]��l�g�H�,!�p����Ƨ
�q�>��|�"�{��L�
���_wj��3�|�k�E�
���e[���{
��@�8������Ū7�TNA�7ڎҌ?����6߭��=��4�<�J
�uiC3
�����
X�aؔ��,��:+��K��[C�T���q0�.�
$?��
+3��#C��\Z1ɥ 
ra�SYOu��ߋ@�rKC�_�z>�:˃���:�./��^^~�e���V9�Q%~���E1�7/"�f�z��t�,�"&�j�1�)q*9��
@�!+o�~5�3
�3���t��ɎV�Ců�ϰ��Z!��pk��i��Ub��?�O�:�h��#����$=-� ����H�T�-�
+	j
o
�#��>�cV�Nq�7ǰQ@�!
��3����������#��v@=z ?��4����L�s|���f�|��8��q�ħ&	=ͥ���'�)����Jܩ`C��g��_�����i124'�2-D �N=��V���::�->��&����sw�*�&qIǫ
��eͫe��ԬJ����Q���:�5!�X�ZW�卞�0��
+���e����G���iEn!�XϪ��$b
|�SE+��R�3�G��@��+q��y.�pU��u����=q�i���s0�Y
+6

��ᳶ'��'ё6�������߿z��U�������
+�*��3�,�
!�h����S߮|����+��5~�yk[(��&�z}��lSP
�{���Ͻ�.�<�>m
_��-��E£&�@�Kڝ�'�T,����7�K���3�N%��@F���iU�kl�gN��w�c����:�$�{l�GU�V��
쪣9.�PǬ�z�ϥ���+

�1pO�f?���8%�.�܊F�'tN14�pZ
e����������t����T0�?.�_כ�~Yoh.�0
5��@�[�H��Iv��s˜3�4����<�*�g
i���+��X�9
jW�R\��۬~ �gȈ�[�&	!�!g䃿������rJ&��r�89ig��Wu�-�f/5Ի
�,���e�$�8T<�S� �
	-c��pc�p�za�X���ռ*��Sj��g[��L����9����2r�
"��2�ѝw�4Zz�:�3�x�V��l����9��=�� x_��Y�3�m
���f�~��8���?�[ڂz
�{&��b�|-ۭ ��3`_����
�����y��ɫ��,w�ڤ��/�M�>���vY��x�
�$lw���}�y�ƫ��zuL�ᜈ�	d%�o���w{`��۲�� �g�R�*q���]{�}=�KΪ�+I�
>�
8����8>~k��7�%�d���ṇOk5���:q`N@��BG��t�d�
�p�������JZ��U�%��A�����'��
+�z���)��l�<�=���.�
Y@�9�<�D��R
/�R��R�?Fa��"��<����;�F�2�ʩ����Ѫ�V�傪�\\��BX�P
��Yt�x]�;\�SB?�%j�Y��2v�.�q�Iz�E<�9ͩ����m<���}f�y���'!'
�Ҳ��,�_A�{l�u�
�q ����\��?��?�����9)�,!$���+�ɦ	������"

+A�m��g�BG�t��
��u8O.��B)��F�
.J����>���1�
%��)�X��4��Wa�唂��:6��S��]q�:�N�XP��547���/̲F�D ��E�+c�9����Fw�5�,���u��}�d�=����"x�~-�9K+ݓS- �X�d��U�Ӝ�t
|cD��
�@�Ze@�c�l��qhk���z�
�ts���8M˴�}�5ݧ��u�b�{*�rf!�Z�W+�Z��{#�{�Z�
)ŧ�����Q�3��
j�(�
�6?_���w���jL
�Mdp��>R\����P	���g�z�-g��F��
�ם6�{�G�E<8��=Z�p���x���CA+U�d]R=O�z�ҭ����w�%���
a�4���xp���ރ
+W6��dŝ�ꆥ��)^�.��,A��\�AH���#|��n��rf�� %)���1�$�G�B��5�*�����,ku���65�̷���h��屁�jI�>5:�8X
n�b��j�V��,3�
\��j
�����å批�D�QJ�V�߁��<���}�x�
�
)>s��(l�� l����K��-uf���\�ʷ"���mq���iS\���������7;J/
HI�6D����+���)�KL�k<�_+
�_N�^�d�3�ss��#��z���ܧŧ�ʮ�g�q>=�
<��߿̯gUؕ��tUԗ%F��bh<5
�:��|�)�!��~]�`�:L�C^q�6}�x�����Z��ϒ�,R�3���� ��3����"�������{Lb`�V�q�	�8h��`
+!ܡ�%[��x�8'{���lL?c)
s�2���
��_�'�AlJj*�>ԫ���S�����[[��൐.}
e���?�)�+Z����^6z�u
�$*z�M�y�45/`��
��̡��3���^䙯㇞+6O`cv�ʮ��(yPPs
`
����Q��v)3߯b�f	�����A�c��G��4b�e���������U��|j\�[�N�ʪ�S�d����14ՙ��č���N9�)c�$����x�?�������iz�g���=��ҳ��ʳPǷȈi�o
������|�eJ�Z|��g
e��g��
>#��8f��k�W��?��bO���D�O��f[�O�
���2�D�s����]:r�]�(tk긾ņ���m�$&
���V�"�������>
�ȣ��xأ����kM���շ|Y	?�Y>5�
�A��n>w{ z˩�CWL�44£�d�u
`g���ƻ�>X}9�]��=
䢏�
��rF�Fg��iN�����u���l�$~ޠ���������q��w�y�$�4%gg
��Yxe{�*ɥ$�
Zz��ANէ��1���Σ|��C\#%�4��g^C�������ȨK at +^��.-������BH
+�؀�9�.�"��٦ȉ�f��e��

�u6�p�^�RP�]���C=yl�
+v١��=
q4��y4�2��
u(�`�8�~��ʩ�A7�q��
�W�3Ԝ�
<�h򡮎u8'�I��0�
-&!��Os�6̮ffaf{U�K����Č厂K˯J.ށ���=Tb�KS��jj�^���тܼ�D���9��S+`���y���7��́�>� |�{�s��3Xt�;���7���F�;����;`-�c�Uᚢ�8��	6)p>ɯS�ږ�	-�<���o+8����<���
�����	���T�5���=�@D��M?�ܑ��WE�
���=\��ukY����� �2
�b��:ʧ�9@z
������/�s��Bs�[Dž���
�,8~&�2���f$�fj0&	;o����i���q�p��n
㕹e�*���0Jh����^��
j�?
+
7��*zQ`����)
.=o���
@���:�}18�h��Sl
+|��E�u�
�㕆�����e���+8~>
|�̥���K���SI�
��5~ܨ~��g}\o�.��E
�x�K
,pI��9B��l��cP'�	R�y
}0E-�ky�?�k[�w��=\@癧(����>j����ޮ�"@6�v��՟V�
m	��Yf�u��4.�(A�{u��P~�hB�� ����1#���Y6ƻP[�ԺOO��hI�A|Y��]�D����=Xyc���m��qP�������
�n�EG+\�d]�4,�-CGy����Qtd�"���zNep��e!�㲈0� n5.ťa�;Ub�[�ȵ�6ѽj!*h�\@�]JV�O�*�����}�3����SN����,�W��9U�����7����E{�ᦓw��V��^��D	���6R
��5�YhhUWWw�z����Ab�q�8N
�`l�F�$�<$@��y�y7�����o,�Um�j}�eT���>g�{�}Nn�}������cʡ�6~�c��g��Vό��^���u�����[A>�;�-7��޶�3[��g�z�㿟w�%���}j���?���M]��j�����{O�����{��r�ֆC������� _��s[��������O���۳�n��K]�ֵ��u����5�٫����T��̓K>^�6��g
��ׇ&����uN�
+~��M��~>����n�
l�����͝3>zyƷ��4����\�]���|u��?������
,�����x=�ծ�'�nX8����zf
]�k���5�����v��k��ݡ�����[����-�u��P����n�i<�eu��M���l}��غ������������'ӿ�<�Ɓ����e�ƻ+�
x�'@��|�����z�
���얡��{׮���|h�sg��'������ë���p�'�}��O����
 ��>u��/��>�婮K��]޽f��wW���Gk�� }d��m�'?;�r��}��vv�[��s�;g�8�o��ݾ����\ڞ�y��E��\��Ϗ�~��֮9�3o‘g��W�>8v����ڞ���g~ph��;+n}��
@��q�ɫ�ƿ�����+���vu-���g��=ݩc���[{f_ؙ_|��e�|�7v�䡯�5s��i�zeWf�eЧ7���>�f��kW�ݞ��Ņ�����۞y���o���g��g??�j�gGV����/����l�]peKg�ٍ���_]P�������>�⎞ٟ�7T���ʡ��/���
�Sow<rl��W��_ [...]
�O���t�7zg
�Ų��X���7����u����}�Œ	���_{g��?���
�����:����ig�jy���O���=�!�p��t��-��g��黲o��C+����ȋ��c��'���������g|�!����sӯ��/���k��=�oS�~�g����K�Kۻ�8�}eۉ���~���G�����?]<�ī�
���ܶ������G�vl�{2�����Eu��q¥-MSn�k�~ꭶ�Nn�qnS~��ͫ��o��sv
4�x���?}�o�����o����|ӹ�݋�|���f~�ʊ�G�#k�~s�reϲ�]����սC
�A��x�5�7<sq�ʞ�o�7}�ێG?~�u�7�a�cV��������7�}�GW��\�׻�ꁡ܅��g6��;��cډ7['������������#���ǛrO������������e'^KO�����Ο4~�غ��g�>�ܩM�
��efʻ�Y�|~������9��v�_�;5l�ٗ�.�z��v�������؉
K�O�X��ذ��ۖ=p�������m;�e�}|�Rl��[G��9������'�mY>�ֻ�-��Zq�vz�@뱍�s���{yK��so,�����_k�������ӷ����[x�wهw>?�����x��˦�޿�����y�6�
��R��ξE7v���طv�ٝ�
�����b�}�>�^X���~>{��|�֡B��]�E��=��k�Ww_��=��k
���/�M8��2�����[[n��Yt�@��=����
.�6߅m폞z��{Wv����k>��k`�_�>�>����4�
���|�'����˼˻җv�7a�����X�8��`���vb}a���Ou㞷�����6�y�/�u�z��E�� Co���v?��u�Y��U�wa���e�O�
Yp��E�
{m~���M^���O.��G��җvu��8����{�_�6����{֧o,QNnXf����px�Ҷ���7�>t���)�~����[;gc������	�'��{�7�
[�?��_g�������
��go&}����������7��.=�e����[��{��̣�7.6������2/���y
��+��y�̶�����#�N�G_Z2�ʦ�G�n�q�c�ַe��-}�?�]���?\��S�[&�_�z���̭����6?|fS��˻{_�3�������|{u�;/d�^^���"��������7��/��^r
d�G�/s�
XQ8�=��غ�q�f�����k:��h����=uvW���
�������%��z�}� [...]
+ˮ��k:�����U�'7>���j��W,y�ơ���n
X~k�3�^��3�����˛��nJ]ذ��~5�v�U���O��^ؒ}�����w�Z{uw�ҏ^_���G��̛s�suG�÷��.������“gq ��9Ϲ�)���@�o�?tjc�g��ν�wu
|������6wM;����ޘ}�ڞ��k{Vt������o���g��{u���7�;'^_`�z{E�
�/�X;py�3�>z�w� }7

�|w ���N���gw�.}����S���ہ�����7��~�*�x[:����/�������O^�>pfc��ڞ���諟Z��
��:�Q&_����ӛW�
{�w�{/
N���sν�_tncˤ
?����^�yϧ떪�wϻ�s����O9��w�孃m��
4�˔�Z��olX5囇�|�G�����M��l{h��<�͋�����{�̓�����M�|s�C{2㛇�b_޻j��;+�W�,����Q���/�݊}
�~z�����=�V~����ܦ��.moz��[
�m�?����-2�n�unG�B���No�qjK[���]����]~�K�AO�Z��ɷ��W������E��kNo�z��`���
�^��>�̹��ϧ�
��c�8�)��~��'���_�o+,�������O����䕝=�NoL=��9�'��8��c��wV����3?�v�	��3[ڧ_?�O���웋�k�;�^�_h�x�������5X�
;{��ۚ�y�pa l�U�w-�}�s��͝�}����~���K�:n��̿^?4�wd����O��5
�zӕ]��f�~iK��v>U��m��3�
a�
��lm����{���/�~:��w�ɍ���l�j��p���
+�}~���������5���Tac��o6�Y�1��[-��|��nY=�kG1�^������{W?�
���.l�wco׬�[*�7���ٷ��3o禝߶��Ħ~�Wr3�����[����r��3oྸ~���o
�5��:��������/mm{��ˏ�û����?�m�u~����0t~���
�S7tM��e sm��π��zb]�qj}ۤ3o�����s�q����ttqo�{_C_�����.����ɫ��mX���\syOn��C��[���]��3���‚�{������G����W��6���5+��X�;��2���܋�؎��}���=�iM���
~��>��㑓��?���B��924�١��s Oμ��xq�ھ뻞^��o���k���u�ǿ��v}�S�7�Y}e�PDZ
m��ya�z	�$��
[�T���'�u��>�Z�����}����m��oe�̦��P�\�ѷ���'��_�����y���z ����
��_�{eϩM
����9�ʞ���G�<w�����3���O�g.�Z������Ћ��}io�
]���A^v/�?�W����v�;?~���������uȋ�ǯn�K~�c��5����֫{�My�3���
)��΁��vv~��f��5���+=�
��9�Wv�����ʵ�ph��=�����̓
��;����_l��?���Ŀ��1��>;�bͩM-S������`��?���O�pqgۼmC�m^9�kc�Җ��v�5��:'��ͼ��P��
+�`�N��{�w?x��E�����u���������ٿ�֮�ŷ�����3�ƞ�G��I?teG�W�u�;����?�]�����_s󝕽���o�v�}���K�}�6��^�N��sM�{/e
|cŤ���
�Jn��
}O|����k{�
=����3s3 at v��
v����S�����~�Пa?�K;�Ob
*��?������ks���1�?�S���m7�=qzˬ�|���rN���7u�y�mʑf�~�ʬ	W6�f�޵��������ι�ge��?���C�����B��u��9��Y�g6d�w}���g��ѕ=-W��|����n
�K�����~�Ą�k͚}?z��>
6�gz��
��ܮ���
����ʧo
\=x|����������?��������eg��=~�?}��?�f�;c�g��>?�2j����b_�1�v}���{�]�����+O�s��ynl����
�j~��π�vas��W�
,��d��iwt���;���U���
+z����>����ʞ����
��s��3'7w<�u/��
 ?�����/V>xq��>���{o
�k����O�<����z.c�u���gw?�w��3�r����/�������'64;�w������ȫ��ާV��`��g�,����?��E�9���9�������
��o
�'�]q�Џ^�~�������w���/'�9���طj������w_n�޺�������s�W]��>�����@���%�ǿ[Xw���~	t9�U��W3��=~�z���U����57�����y���?�7[�}��/��X���g^�qx���s볍`;������C���{�K`>��e�;�7������/g��k}����G����+s��>�����l��e}D*� Ri��J�$�T�'A��>	"��I��O�H�}D*� Ri��J�$�T�'A��>	"��I��O�H�}D*� Ri��J�$�T�'A��>	"��I��O�H�}D*� Ri��J�$�T�'A��>	"��I��O� [...]
���Tg��������5J�Z������s[��5Cu

��j
մ�MS�M]1M��‹
�^w4Ks
Cq��E�p��8��Ẏc�e�E��w��j��m�E�וtQ�u�5�k�k��qkﹷv�����o0o���|_��T��̦ۛ���lw!��VW������5�{�U�f�{���N\����0��-��8=ג���E��&��3���
?�������B���5��\�n�v��3���V{�����������
UQ&�[{���l����m�KR��|m{&��^���ݩ.��"/�N%�4�m)�����z�1*
���q�h<V��NJ1�#׼<�.L��w���&熙u�V����W2��{F
�IS�&u�����Rq̶�����|��W��,���;3��L��������=�͎��Y*>ͩ�����~��ҙ3rרc���^w׌t!5�)�/���:bݹمl!=����룫�d;�@0tϨc�,W*v�L_g閉��	�CW�0���/�2sJ'���0���.�s��t�|��=�.Y't��8��
+'�l�0R%��6�
7�>.��L>U��KFȿa̘�!�Փ�����b
d��:���dZk'&.`%┸���G�V�
h��.`k>�~��\�o�9�%{����L�������������w�h�C�
�����ƋX&���s493��ݞj�
��Y26
�W
/FA��C_�eJf ���a]ou�;���^�k^?����˦�'�c%��L��P���/S~
�Z�T��R�6n
u\:"�+�c��3�檏�K6�z2���T�!��WHu��,�� 9S.���3#�ҿ���k��p����L������tF�C�J���F
�Nt��P9�����l6Z4fW��(_]M�J��(%K�
+w�U�
\*ۙ����eeɸ�
CSdf.�]h,'d���*3��Nl�����2�P�k��K*=�0NM�$�R�2a\�"�t�.:�����p\���T>[h��J'�?J<Tj4��t��
�+
�tD�1@�d۸c������0�� "�8Q���G��/[���zN���28��g��l��|u�H
+��£/�I
w�Gf�Ux��
r��P�ݵ��!�뜜�dV���Hꫪ"�Q2"�h�v�JO�UU4���n
+�TK��t�"/�\�#iR"�(T��4��i�u��JV^�㶌���oYJdZ"��h�KdZ%-F�˴�C��"�꾺�׊]�ja�j-�
�=JV���#��JФG@
���P��t
[�-Z%:�t��E3Us׆Y%���S�ݙ�ٙ�L�
O.~���K������
	Q�En��U��.���vƌі���Z�єl_Og*���t��z�O'u��Q%�.��W*��*]6�
!�y�����ƾ����bN�Jw������"�p[��G%��2��
D�;֫�AJ�q�j���c�ȁJ�ֲ*�Z����TJu���vf�3��k���NO˕^G�a�#��(�@���F?|m����|��t���Gߖ*ya��
��S|���u�V���B*_����G
�|�<�RK��d
ف�e�C�fm
+�ҽ�� ҝ�.}�������
r�K�e�q+��
�(_?��(��]c䙤��]e,�W�G���ߍ�(=��f��R6S��TKH$)��"�>Ve3��|��[�%�3Ţ[cY8S���t-;�
+gJǨZtSR8�Ό=�w�̫�™�+�)�I��™��Z�QR8Sq�RDV�y�ΨwK�L�kY-���
g�X�
+�p&=�
+gJǨZ����"���2��\2FKY��
+�(HK�z[�T�Z|u��1������6M��4M�E%�Y�l|?~;
�
�
i����#hϓȷ�䛕ȷD�U�|+�V��ȷ�� H̷q'�2���Q�%�["�ʔn��H�*�n��H���[0m�T^r|�	����R2�U�%L��
&��f&*���&
+��]t���Ԛ%���Pg�QZ�c�7
Lm��
�t��L�h*o?�8���LWn��
�ՓF�U'jJ�j��Z��D��N�j�[�h_��)�jj������;�$Mk��58�1lZ��nɴf��=):�l=�TaJ��c
6N��^6%Wwi#�J1���1���%�v	p��W�v�rp�K7
T�T�8az�����zr}`���ūO 
GR_R�p�DC�\��
#!��eZ@�$
�][�T>[h��J��T`P�ru�N�
cA��#2L�X}
)9��1
�ADԊFd�t}c����I�H�'�G0�$����C�n�?��s1�?Wx���3К2�,�����=�%�9'9�$�䜓�s�s��(r�sNrξKr�Iι��pqВmm�/�|�ja�������[�<�]^���M����ې�뻻�e��7�(��tv�Kų3��^������d4��U�B2�G��{*]���c��_��sb[>���03<�l[n�@6י)L�gZ&����Il.��X���Ӊ�Il. [...]
sDd�b:I0'�s�`N�I�9I0'	�$��$�S������V�TA�������B �
��;��q�&i�Q��a\�$Qn�S�K��laf*;\�����n�Qz�
+o�Q:"ޖ���"I[�D�~E¹ҵ�܅jѠIg��R�Ig�JS�Ig��A�VO!@ق=�j5�q����V���j�Ԧ�����}��8l\Pr��q��c�Q�����B��־L�!�i)K8T�[Z��-���`��PE#R�!�t�I�D{w��0rv��B�,��d �g]'�8UW&�J��r*���G?<i���`����8q��cT��%cT�	2H9��n��
��n
��m��a��J�I�#	$�;a茗�G�$�JU�I����z�H�U��˜�B��Һ��µ�S�B�sz.[��
+���5�o�������4��2��gz�3���͜�]��+�­��k��@�B����6�مl!=L2���s��e �g�1Lu�l��I��j��J�(i�]E���o�qՄ�t�ݚ�u�Ntt����Hz�4TQ"��䓛
+�ҍ�����S��vJe�$wi7��$�4�?���	s^���2
�
+w*�e���G�(0�	ê�8�B+��B+
�ʮA+
���r����4̮���(�h�U[C����O�F
��M` ˍ�B�j��Y��
L��/�u/0�/0�/pL���������B��{T�X2z��������%�����8��@s
��e�T
n`�:^
�r0I\��q��r-m�T��e<����ț�}��+Ee�")��C��ڗtبq0�;l$
F�Ș�R%t֨>����
�b�rNY��o������3��Xˠ\O*�-����Xx_aEg�}q��o6-g�����k6�Yj�Z�<
���(��G�>��0
E^�o8���2O�qPr]G_�5���N�ʱ}B7�~"�d��!��WH
w
g�[��7�(����2�{]	�H ��m����F��h�J+�/�UrөL'�QV:p���^��M��v�����u�H$�e7���Ԛ�%1�XN��+�0��B���g��,���e+���cPp^.���3#�ҿ��NnƏ��Ĕ� S~l���zJ����zJ����x�-�|�ZO#PS��y�e��86'�:�
+�
�
+��8X�K��laf*;��W}b!��ڻ2e
mPMyĒ����c,ȯtD���DD
�dD��2��Z�+2L!R#Q��!�+]{��]H4h�A�R^W�-
�
+נ�+�D�V���Pur���lUϒ|u�>��
��}#��(��m�4��Ie;��v>Jz;����J��J�cQ
�|z�tzn��r���"j�"�W�)m�V������/ؙ�O+�+Qp�CM5�ۢ���1b��n)2*�Q�iƸ�\[7nz�ԕ���\d��A���(���b��s��G��F�� �Bs1U at t�.$��Ok�F<�d%o�L,�D���4��5��~6_	��JY�B���5����V[r·p�W^�,t��5��NϪ>�2ޮUj�r{$!��'7�nn�ǸP��!l80'���k-���ʡ��<�nčp�W5�M�Q�N��I9��S5ޤ���
�#91)
�8�v
#9�j¤����pw�w��L�4M�uτGP�:Oδe��?�L�g���]͹Κ{
��A��[��N��/�/����d�
+��1��
@��F��EK���|VM��ջ�j�jz��NmW
~s,׃4z�:��� �b0��n<3j�zEu�Z��v�?�j��QS�������zSqm�P�)��	�����f��ES�5C��*�5k�U�nٵuf���
+|Q�z�v�Qo+��ĩ7M�A��؎[� o��Uͬ���]�t��^�+��K��9j�a�tW7M�
�S-|���8$ը7t	�ޱ��8&
5�����m�N�Ro8y*�Vw�Zծ�M��vM�v^

�&��Qz��Oa����	�^�
Xf��rM
^#��R�& 4����C�j�|
L.�(0tͨ�4���(�i赱�#N���	�1qF�&ӮW
V	@8�* 
 Ӏ�Z�
+<���]�5Lغf �qm�R�
6! � � 1h�p�j�6>�Q
kj�or�U���&��C��t��aכ�a��
�2-|���6^a*&>�!�B�@����%u0�����.Л
#E����EÉC��Q�¹������R�(�p`.��M!��L�Ց&4��M�i0L�^�ښE f��1
��14��kt@���p- �b���u�a(0�@ņbk:�!<)
�IUu
�^�k��
� � �): =E�a��U��
g�@ʁɁ�%��T؎�
��0�p������p�R
�9��1LfQ[�e��H²��U�,dg
���dE
)��R�M��	��󪪶F�D�`�8u�AY#r
� ��+c��
�R\� �	1\��
���kD�8<P��*:ςfZ��:/
�����TE��MC���0˸v@��F��kc��p�c�
���r
�����4[7
��H
3��0��E�ʹn�-KVU�=H2� 3,��
� �%2@
��H�q]E�b�$�Q�]�m�.@��
�
 [��(D����i��"C��s\�)x�m �	N�@����Q,�g\%�6*"��H�K�
���$n���]�"�C�b@�u�B]���<�hU�t�r4�@������X��
\��隢����L�}@�27Ҋ���+��!ۃ
#�C)�9.�2rN�)�ζ��	D�Os�M b�@d��D��.�t����`�F<��r�ɨ� �T^: ~Ea#�������,��r�
+�@�PԪ8'&/9�W�[Q
i2�$H�>[��A#B�Hޙ��A�B��IxX^GUM
�����H���>�
�~w�Tx�cr�(�a.p��Q s�V0'�`���]H�̊KlgҪ�\XH�p��8����+��]�4:
e���p
+�2 at 5X�_`-�L������4Hz4�=�s��|�*�S�v`E�1
+Z�%�G
�
S�8����ь�#U�Z\�$�j`l]!*���H  �ak
!YL討N��<j<�����@��%��#0
�bZ�1��):��CɈu4_��4� It��@�i��b3�����r���M�/�44l\�K%���tS7�fE���L\Bt��z�{=�hzf5ݴ�j4&�w�2�6>'��d K�π�W� ���)��x��b�5� �v
G������Ѐ��. \�,�B��]�GC��N�e�0
+aFÁ��P��a*nqP�l;8O�����7t�
+�/��
�
I~�N�-4�E� &M~M��;h��!tp��Ek���;J���Y Ea���S%�
�D���LE�-(��kU�7�sC$�+o���
+
0T��$��X:H|X�$T�.�+���܁���A���V��8CwA㌢�AĊf
zc��:1 �Ί����
2PJ" �R��{:zdg�$�a�UI?��&����>�ؙvT��4�MSUh���I%� ��]����H~�JGa (Y�#�E'�䰎�at&~1��-�!�8��a�
r]]Ӱ]"8
5��j��F�#�k����:t�L�5j�Z��&mH��	L@�ޤK��Lo��
�_��6���	i�Ɗn��gU����@���j�y�-XR�bzmpbl��ԝH�Y�Ǹ4�L��`h�8R��$��5�&�Θ�
���`5)�N
��kP
4�0X�(@2آ{L�n�9�FF�B#@����F�B��
a��&F0��MK%���-Z������K,�kD at E�Z���Ĺ��<tb��5bi�uՀM�Ђ� ��U�l~��dޡ��yA��.�4 xx��"S��Fb��
�@�����#�9L��̑1�1��**�w(PR m�hM��j�a�x��Ă��8�a�d/��$�#X~��v	�N-�?�)TvkTt
0B����у�
�L>���+�߈�OE*
�~Wu��{�[43`A"�3�j&�8*r�	]�w��Ul�NX͐�4:
���`�+�
F�S��Ρr��aT��P-
�
`
����k(H0��
���A%J�=M��dM��$�D�,Ma
+p>0��i����
�
��X
/�(W�8X8T�����%�� ��`8H!�FE���c��H�v�MP�5���+��PK _��dA{
<0
\�Q�
+�_��&r
�{�c\������QN��
e�j�
*[6zL6Ih���4�R���=�8�Ȫ(O`)4��6Mc
j�T�;H�iD��/��5
D���\$@:P
��b��8�+1
+q>�[�ġBC�)/�l����d�s
[���
@�����*� @,��[�;V��ˡ����
�Pt�遲�|љ
+(h� ����)�4ja�'.EB��T#A����|�f,6��"!�x�<HO�H"B�G*�d��
�ǡ"^�b�
@���
EIj"a�X�5
�e�7x�@�c
+ ������I�a��f�
U���8����BM� r� ��@W s�m�=e5f�9�9
+������C�W�]1�i���Xcq:
a8P�G�"�Ѩ6-�B at Z:�$��"{ol��XZ�y��@�gOs�f��H8:���I�i�`F
z�iTu(t��Z�Q���b�=��+{fc�pu,��X4�
��Rs�S���{��^�"����$�
�A�d�"L2��:h���M�)�I�4����oC�/�z~.<��b��6��7�gEG�����Q�e��0�™�
+�Zd�h��߉
���ޑ�s�I�-6�ĄX
�$Lt���V8bB�װ$Wm>�m!v�gE����`��BݭQ암�B��M\�|�	��	����j����H��@
�3y��%��0I���$(I�)R4��@�FVݣS��T��)0��1�l� ���#�G����]
�AQM���Zdz��06Y�"_�f��2�"݂
G/�A��Z��
U�BU�'�]&�f`�)�x���r5�I��C�"�MD���B��6�<[��+��@W(�"���5)r�$��=U�P�Jc*8BJ�h����et:j��Ȣy�"�by�Xrk���Yt,�It7�2���мX2ćk���z�nX,�"�����Y�x�+�dJ�:sZāf���tT�f�tO���ht�E��~�
��i�t
+{"�r�
��
4��
+�%�u��ȗ4
+��S�B�b)-J
E_��X$��P<�N

`E!ϕ2UgND*
(����b��
+E ��%���`�xf+T�>��5��Ë
i�0�r�I��ʳhZ"PaSE
>�<
��Bp�k[�,ïZ�u#3��`�.���xU19/�����B��(�)��Q��0%�(Yc�:
+
Ea�\
�]�
>Tئ�E**��c8S�0:3�ً�qP�
ц)�H���Gv���c2Df��(�
)��/G�ߠ(�Z/�Xg�MU������5U$.�Ӂę�T'�U��-�h��Vd����
�·u�.�
){jbt�)����
'+#Q
�[8��iKR8���d�%O��4��h�"]Q�N
Ѧx��8��"����D�)�ahb�A�qn��B�"*�s�����h6�h�U�&ej��n���X���ϑ����L����'���Ή�X�
E�6(��+�u9�e��Bo���

�E%�	A�4�v�6��
+�85��Y�i���ư&a�Rm�6�J�Y6�m&+�Xz:]S$�
KsGS�iJ��YQ؎�>䭘&������&(wDn(�:	�XQ�@M�ʻXm^4%������"	�֚�M) N!��k��ۋ�䣙�����h�v��h"7��f�yV"��xºXZ���4` ��$����Џ � ӡ'	���H�AA&���
+p)��+m
+[Q��!x�9D��~BF�Cŏ���ȃ�%5�
f��b �3�pZ�,M�
�R��A#�\Oc
���	����j��!���X��Lh�x�7�t۳_8��鑅��UlE�5E��%��:+�H�=���$�Y@`.��A̖h�{ƗPJg6 �4,m�7�B��9��3��=����$_\wX ad�B�S����y~F
]�m)���<x��A�0�
[>B�=&a]��.ye03�y�ڢťS.�H ~��<�"ҍ6�¤EN=(�ΜA1# T�R�A�&qoS�6>�"c�o"�y|�"�x,Q�,r�t�L�'.�<7&��$���V��"�ʲ%<��ʼn. � ) ��� ���"�����e�S��S at o�m�h��pyF�~#R���)�5
+W��
�E��C��AdA�Tab`��I��%
��*��A��:�f\/W�a��x�nto�ȁ�Q�dbD&��"���M4.6e}
+]��C8

-a��(��D�.X$DJ3b���4x�"?)� �z���ͪآ���2*6h eI�����<��1�H}
[

+%[�P�9n0C��
�2�d���0���H	6�+,��Ɲ}�b�&�:�H��@M��"Vk�2 � �N�
��tK8� `��d�Vcl�� ߋ�I��
M��X2��^��j�v�%6 S��@�Nq��plJ������'-�2#-b
�_�
"�]��z3�"
I�@�iO�)���H�O�(��w�`RX�ҡ��yɴ�}oߡ|
���b�
^��BE�(�$���?����%�h!i�z���DJgx��
�%�$M�+�x^	
+���drD�NՇ��@�mj�z���I�6�J4�3EIs,;#��H9��!�ǀ!��J IV�U
d
+DׄD�.$&����T)�g����T1���)�a
�(�
s�X%m�0��)�i�l���%S3�p9��ST3V�C��H�O�0�h����2�
��/6ȁ���Ô�9�>P�jX�����Ү)LS
�"�Mqc�44�#�(�4��"��H
Q��(V�-VJ�AY�[�Ӝ���D�>�-$��C�
+	k�iۦ,��܋�3�(������� �����\�Q��J�`
M�@J��J\.Kc�
�tƄ�[� �ˑ

��e!6�tM�QG�
+���'�	��ʼn�� L��

1nGpi��Qϕ
+��A���q
���Be`_PAUT
Nj�\��h�8�d>�����pr�g��7���TSu�)l4��m�HLX^ـ!�	 i)F���
+O�.V4�*��E��Ҁ�&�Ȧ=X0�X"AƗ��
+��5�J���b�b��X�Yt.�D������^��w5%�
��h�h�Y��st
�+�*\0��K��T|�b����j��5��hq[��-�%$��M��\��P~^�yk
jE*B%Ҥ�	���b�hT��V�V�E��h
�Kr��F��Ef7q��쨡|u�_L�.��Ӓ���G�DC�+�
���Z��b��fi�KQ�n�t<�0
�E��"
�P�������p���j���#�EQOSA	R�#��4Q����+8���J��ݖp[#�l5���p9\�\�!6Iw(~D^��)<�.��s�@"
Υ"
F)_�V!Z��w��D���DŌJ6}�)�(H��T��)a,U��)�
�

I�� ��D���h�~&��$�L�kަ8ql�H��o�ר�Sj�q
+_��Yw(Ά�[
�VVE*�v8N��.]/�+R���»"u[�ʮX�Wˏ8�����!���2�z
�)V����P1G�'V�#/\�(�H4�:x�E�?d� "�:�W���'\�+q)VS�Z&^Q��H����W]D+3��C��� by�\8�O�D���h���V�$S�����I�sf��2�*�t<I
Kes� p��igU	,�dc�M�+��'J#	4�oF�l�Rq�49��dBєC81!�m8wh�P��d�Q|R�����s�<B<�KIĒ�@5���YA'#Ŷ)w
��-рp4b
*�=��MEyH�t
9O���q�zE�E"��������jxMa�E�HtK$��DE�(D�@K�PL84@��R���](,�R��j|3������
u�#�7FQ�;{�[b�b�5QǷ���s
q�c^6�F�'�P*y�] �!ѹ
��Q74⊡؎�v��	�>����Q�y�:h��]��g1`�d�"��c��b;C$[�fi�&n�F
۰UGBh+Et�E������
��
T�L�� �]�%
�k��������[se �vR|���C[,|�-�Q
�� �2�B�c��K�vH
�Ac ���.e��.�x�dW��9ne�N
�U�E�E�sl�"+�m�Y��
���Α����7\C�S#�0p���D�TR�Q��UM�� �������HQF*]���@��Tm��9�ar	�5^9�!v�4�SN�
!��fOg�En��J���B��;�����H�4
�+Դz�bD0��M<��q��l�A��EGe���ÛH�Z4�X��qO2KTZ6r�J�WE�J3�Ch�3.
hU���K�e>
��H����xD2��!�M6M�%v�`��LR*���
��#M�����;������\���X���[�`��y��Q�,j�)- (m�
��"���]
 u�
�����%�ǟ$	!;�&�ԻH���O� �=���jC��!h]�q쯇�H��x 9`��F�����R7t��ZA����Л 	Ѕp�n�2k������7�N���H<%���	��L$�A~J�*v�f@�P��<�
���Niv({�%����>��i�*�8�����0P�2�`6O|�%�����U�����X��
�I�
��P�KFk�A\
��e�<�1�����^�|�]
Ҁ�
ZN��
+�P6h�	�]^'�,.�8���B��� �
� ��m��	_�������v-n!�
:
�:�Wb
�Q-���� �LZ5x����Ƣ�1i�ͨĒv�b;�ϐ���Gc�:��
|�h� q�8x��L����[����
��
���]
�'4.�DJ�T����`�J[n�^�:���[�Pt�
�	4h(\�UD
+i�*�a$T�Aլz���
�(���Y��Q
��ɘ�{�:��O-�*�W�A��P� C���*����i���x"� ��KȲ�F�*]�j�&mf
�( �O^$��!�B��I����;
}���F�*��Q�B�F���]&_�'�jUEF&7�Œ����{Z��F�:�
�r��'��.۷޽�2��E^�H�8��

�$�4�u�k� يх
�ptٿK^�{�
}�_㆓�v�/�4 f�����_���k|�����>Ȕ�L��]�=���;�Jr�y4�fB�}��Pk�	M���5~�TnxZ�������lw��i���Ou�e�uC
� 3��;���ۣb�s��!ћT��T��K�/��
�`1��r! u�[����	���/�'��J
����{@��Ln���gn7��m�m˧Z���B���K��
�������m�Q�� ���� 5�t
+���.��ׂ9da��-	��
p:0��ׁo��+�MSm�m�;�M(.�e�M���x�j��W{r:�2�†
+&��\K�a0��К
D�C!�����f�8��ME�lt�,3J���0�HU'&� �w
,�����a�,&
�ۑ}9����8�2�*h�u�������w!W�J•_5Wj�@��H�$���W�G
�s�ր�UK/�!�G0��h	Z`
(�=v
�q>_jԻ�?
fϺR��N2h]�k� ��*.���$�E
ZYyk$�S1D��	!�N�G5�J�0ؤ�i��}Y�ExǤ
4��L08�]��^�<q�
+$�^�q0���*ԼnU\���b��ج8m��p��7� %������#z�юj��]�;��/�4�udD��'�����ELH���
�{@E���E�^��LΩ� �3�e�HZ���SNe1����~���]W�u������������ē1]5q�TDr�%OCMH
��9 �������&$^=1��\�
�q�Dd �� Z���x�\�P@�O�΢�%E�]c�ʦ��Pk����ԡ�gV;m<�>�<�F�mBS1�}��Oh�p_��Oh�Lh�F�:�O���R{��\�.���3S�B&��p7�=�H��™�$��	^4ԓ��3^�3���ҙ���Y�t!�����Q��(���/Xȯ���G��r�-o�ǥ�� @se�`SH.�÷�n:���Zx,w����(�i$�|=�4��4	�#	�M��O�h��K
Ct>��-*�+R at _a��F��X�9؂�0�TE\�hA����SOt��h"�e�򨁉xR��R,�vIb��b�E��k�ޅ���{�i�	�2lw�T゛�m���*��
��!
�ņ� `�� }�^���!�ͣ��h��r)[�i&!�#Z/��Y�������E��-N�
7 �.X��Ʒ�6!�kw9�U��4IL��
+F�߅��j9�)�:#_�
2���"�#f@
'<XJ'mr{q���[+���3���{
+
����:
+�ԒB_�0\�F;�F�j�D&H��Iɚ��<�J
KI�Y��u��"�w7ƊE�f]���|?�S�f4	bh���$�1�m�������hE8�����%FG��z�AA܌�Zt�?IՊ��?v�u��h�/
��%��GB8A��t�1�$�0�.�	�g4� Jl���;�H)�r-	��A
ɺ�!�L Hp@@��S��J
褈 �4
+������4���U��[��4�G�����!:1�0�d�xfn�/���}EG{
+:ҡ5ĠCl�:[���
�j�����67纇s�gy��
/��cϤ"g��*���[�:k>�¡��½`�_A̭CU X.�m�p��A�1nl[�
�+�zQ
�^�P
+�1��$n�3i���]�D���P
]�B�$*c�7Y����`=C�!xU�+7i��w�b/,5�E�>�/��$��]�8�cKQ�� J��gx�1�;R1��J5/�
��[Ь9��
9�B*���.��Nt�Ԡ�`�j[����%
�2���y\�ӦY|��h����/�5�i.:��p�
�q�B=�
[v�S��V��q
endstream
endobj
30 0 obj
<</Length 65536>>stream
+τ��.�q[��Li��
7i�6���r�D�h�A'���������u�B�m8m��
��6p�t���a�(��3���^�X������Lw˴T!�>'79Ӛ�
���W?��lx��/�h�q	��\9y�t��kV����XZ��]���r�.�䦳it:�֡#q�&�Urq��؈*�fbkS���I؆�6��i�r�0�|B�؎�$��������)@`TP�
�
<' 랩�.��q���� k؊���cK�Z�
+��``:?'��k�N�`gdګ��t��r�V|l-�]�
�,��?qRh�>� G�����*.���
�Ⴁ��ַ�&��nV�sn��
���t<Q�ɲ
����
+g�� ���J��
+^`����R�6�c̊�u�cA���,j�D-�pוf	.�un_bb�~x�Km��-�g�]ؒ���p'�l��dP�[�*W�ۑ��8}hr�Q��E�)v.������/��?��f��
2v`�I��nB�FK�0LJl�8؊�ᣓ�
��G��ƽ��jp�9�\���H��T5��?S�2Cs������qo��S�e�
+�N�jc	+7��3@H�k�E4���,9�M\��ATL�T܊i�iO�I֑jjt^5��
KH+�*��H�-5z6!Ʋ~:��~��R�7�Ϩ�67`��7��B�U����Z=�b���RL��D
:*5Ꝡ2)������/u�Sr�J>�#�`ON:�۞Л�z�sK�h�Ѹ�����h,�؀����b)��X�j�ݔ�w� E�a�L�UUZDq�++Jz��p;
q2�J��jcd����`h6�as�'ֽ��&�9M��%�8fQ�M�T>PM�_l7�"M�%�5��
��@BNTL��h{‰>`��b�N!�H�#hHڨ���s\(�Ŗhu�yj��̱�������t�$o�WX��ɒX�O�du:
F�V��
�O�f�	�G3iQz�*��I�������D|&7uW�&ѴT�:�`� �����|ĉ.ڽ�/�z9�4�4g:�	'� �c��vC�F���x�..7�?V�}7��UU���;b;
N�hJ��^:��kn��@!h�.�ǣN
+irx�8���-��,M�%U��
+�(;���U�]d
j@��-��ۗ���Cb�}��#,,��!su���z	Sb�<�7x
��.�
�~A<�|�:��c��r*w3�T7�
"FM[�hS'���= 
+�0���n�`|6���G���dЅ�w�
6��
@*AJ
�'�G-_
l}�������I�*U��kS�
��qC$D>�7Y��.8a�/k[
��8c$�U	�9T<�TW��(Zjb�v�ҩ]�8, �,��M��
�n�
 ��:B��1���x{ ��wx˙�;
)��;��rL�,��S	�di���S�2�r7Q�Nf�
i�����_��-�G�D��7�":�"N*���}�bT��H
��,AݠR�#*ahs���K]�*�
�T
�^��O}c
+D�K
+��
jXէc)%�es
��
�6"�jOșT�O�M1�N��V
�'�R�TR�R�o�S�*bԀ����ac�7�w�`liD�@5���
[6�-�f|�7��>
��8�>�	y�[@�	[�WeGPn'��[*u���t��G�"��$��C�A�����81
��b��z��
U��f���<�w��
�ܖ�6�"׼�vU�v�Y��1�X
Ŵ�rd:O��3
+=�� vJ��ݙ���$/��mh�=^��4��S(�K�
I->��LW��R���7u�­��+T�N<
v2��`�l�����
Aꔎ/��FkGW�[c
+��{�RoK4iP��"�̓��O�"���+������a�mXQ(�&�4
���а���*��# d�w:׆��6�',C4V�j�iW��c�/W�sR��F�8xn�GB�er���
+��kՋFd�]������ԑ�T?5!Ɔ3�Mp�0�#ڷ�(�p�$�%��sS�5�qN�����S]�u+�djͪ��_�i�J=�a Š8uE�^r�b�U����]!�l��Y��
����ɎhQC���cL� -"	Ru%6�Ԩf�f
w ���k�0�*�{Ϊؗ��w�����l�E�g�P���� �kx��7�C[�i�J��� �d$²5�O�v�����6nR� VlVÖ�^�]伛|P�%���@�@L`�=ż3�LV��n��S�s�ܚ =
+6�p��&԰���^��m
p tNŚ,�ێ#���(����Pt,�#N�#{��5��!Ӣ<^�p8������UL��%�ѩ����
@� �S
�5��9lq��Ifj�>�}"$�}K�kPctj[g�rE��xT��g���+���N/թڌf���0�1�h1٥���@�.�8td:u.�%�ac)���H
�+��_�%��6(�A�¢VS�|>=S��{稿*5���*�P:ui�S�X���a{��
+5�
@����s�
���P�Kp�?��+c�[.�������#��DI�SH-�]q�
+(J���v��±-
+\Cp4a<���h�o� �KM���v
[Y�3��WM:sV���!\��8È	����)?�&�][�vP��-�a�IB�-�j�Nf�E
K}��OQű츭�叫yŘ$�a�Vg��y$�U��U
�D
�<>�|�z��K���ż�
+k��!
��(.���hW
�-�Ra���A
�R&Zph�#����1�ĝTN26�rؙy��̬�e�'�γ���
���f�Kv����;|���jP�)��3�t&��u�qS�jr�i\�K!zi�b���;t>�J
�yo�	�(�c��\�S�q�h�2Ǡ6'&��Rl
�j܄�b#��$��tȚ�6
��)�!��,
l^�w`x
f���5Ec�C�����t��
ק�2
O��z�ԞN+P�ũ2�s�^�K���e�˰�ɒMCK���n�ƫ̞`g#��&E�������(o���I��L������c�覂����	GUl�
��$����s�ٮ�i�|G_��{���Z�nvg6�Y|o<�'j�K��(�.5��&��?�O�OcM�Q7�����{͂���4YK�Lc�2�J
�	�`�.�6(��]+�+u*j��c�Uz0��D����F��`�
Lu-�`y_�itA������dL��}�����?ؠ��`y_�i��:��Mz��/��/^�i��:��-�
+﹪�v��١o�?�Ƨ���/�� 3�e�:�@���\�cT;�m�'��D͛P���$�
}Ϥ��dj<AC��'�BA>�J��_��;�����
Q;��:��}p�/�
�N*��t
��L��W�
5]�2�@��D��Q��tq+�ke ��h�;5������7��L5|
���Y���y'G!�$DŽF��w�E��X��
q �1Lq����c��9R�F�-o�|N)��� �A���)A�?->�C�4l�����&O�D�"�4��'`�:��븹O)�&#@r-L[�\G�(�����\R�J5�[mJ�"� sAd�"�Rl	rx
5yl
�Q��o%��@���@�)�"q�V:��1E�� r���8���C�F�cgF/����Y��|�*�D摸��FЌ=��!R18m&���Aw�[=�e�W�yώQ/�*
j�FQ�"Ʀ񝚥�7p�[q�x�@�V>�1p
�,��:��!�’g��D u�%�/4].�ITi���DH�B��"9���"�놈�,b���E��JftƋ۪
b�Q��E��ӧ�i|�2q��8]n���J��A�,C�
�(�7I
P
�E��kj�|�!VFs|1�Zb2I�2�|���4��밇�M�+��@�[�i��բ.���
\i*/@��	��om1tIi
$�P%R
+^g�����L�Ժ9�*���9*yw6/�H�AK�
+�IA6�0�� 7���y]o�|0�yN
hb���FX:X�n�<��˰��/�<�M92V@�G�x��q����|�_
S�^�R5d0�	!%N�(ٞ|����2�~�
C([c����d#��w
+ �A!�S?Ծ
A��P3"Hs}�C����X$�0�� �W�Mb@
�C1(�
�����
+]&�N4�
+�VC��b����F ���Ie��"H[]��`Ў���
�NA!�$� )����J�I@‚Q�G�8�J$�̭���7i(q�A�R���8R](�H� Hj
Xh�pHAԡ
A�\+��1uOfr�����UϢi`�L�I�r}�$U�Z�nuP_��O�<��m�a�)e
UyN�q���)ն�!�Y�+5�R��M7'lB�"x-�xTr�$�|�px�Y��:g�:��� i+a���OcG%N��B5��d��*e0-&��n�$|�'��E��U	����45�,�Qм 7�Tndh�
b,����%D�Uh
+��>�34w3n
H��j��b�b�
�B̥t�� �%��8�O*	���Q)����i�"N|��FhX�� ��� G\qf&���av2|��o���{�4�jCTc�K
�
+)	-i�KH{f�	�
+�L�F2VTv\�d&i���O(� 3|Xht����
��K;�c�R
K
;$�E�<�" H,�&��W7A����@���aB-I
�/u�R�nx"TPc\�
P�8Q_'{����ڄof�8���h�<00W�"
�"���A
=c臭�Fi���&-5��
)a2Q���YO���=K���(���D�YXI���Pc�J�u �'���g���(|�����cY1H����H7H>�R!ᗒ���!����O�P-�
�����I"���I�ӂW2�ʃ���#1��,���
��
+�� ��@K�)&�ҠS��Sn����\�\@��@�@A�'a�a�e�d"���=���5T>Q 1�2��݇ )H!��|�CV$]��X�X��8
+(&(
c�p d�R���D�湨��adR�h��%�e
��#SB@�=���u:M5�D>ޕ@RH�!�4<�&4��NhH�LJ��R4�����@o�0 <��MG��Η.��E��6<�'q�8���"-��%
Iޅ�=�
��Z3��a#qň ��Add;�)	��ƺ�$WQ�BH�N0'���u'��
���0"DP��
���
#�XO�|�W���=��m-',�� � (0'>Л;�0��w��\.Í���G���=HM�1���Z�@_�E���j$���\�*~5tO����tx�/Q����n =�g�
�C6�w���;���`|��(��\J�[ƿi��������)rl��渨
�
�����Iӌ�[��24A���	 
ӻSe�.񤍗�352�@��1�Hu���r�)�"S����S�1E�����+ e�gM�YS<��S䭋�F�����D�!�]������4^,��A�˃��Tib�~��l~�L�H?A"Qc��q��Qu�<���`']1�2#�'D��\���ǡWp"����\
��tWL Ӡ8�&N�j<����2WCO#����|&3B�T��.G�LՈ<�D
+�dg�I��
_��1�K69�A���t
��Ԡ�E�
/S#�4y�i����1��� ͋�S�9�L��!�a"Qc��R�"E��I6�y�o9���mç��'g�i�5�\f�KԠ�f��z
�%j@��1�
ovM�
+a�f�	$W\�H���H��Y��5��J@ųG�:�@^ΏϘD�fXF�����Xg�^�΅I���i�::.��&�$�HG�p5��m1w"Sc��J �LM �gj<�+35��I���1��D��z��xJ|aۚ"ʆ ��	H�`��O�
\g��d
�7U�2R����I�ْk
�4]�Oa�<M31���`���0J�@���D����!����܂J���&�}���B�?Ϛ&Z�H݊<��z�M$�C7K�(
G���#�ˌ��M�X��S�
i8 ^(% '>DW�vU��օ�p|T!�e�K���
�0M8k$�dS%����(��r�Ud�R"���lU�d9�����D<JGg�)B�A�����p�	�B>�r�h�
��`�&V�"h�	�������N(šx��qЦ��X\����	���*��
�{�ВILr�@"�3����A�q?ܤJQ�'9T_�I_����y��?���E��6��E����O��( E�C�#�	$R	�o�Y<8�ש�� �d�
�탤3%%��89�4��oս�JK�
S
+�@��
HTŝ������-"�G]Ac@��D�N0�(u���� �)X�˿[�>e�#
+P��)��h�>-K �cj��wۣc�+8��(Cx!�2x'P�f#�*^��6�y��z@���
�%
Ltx0i�q�P at 4���Q��d(�vۄ��rZ`Iŭ<���k�ial�z-T�
�w��;vH�
[Q]ap���J���
$:|P0���h�*����P��1��������z5�*�t��:n����JoM^�ꟷ G��,ِ9��^��[��s�� l�4�5)�L��{A
��f>^�"���G%)�#��Ȇ�0٤=���
����9ڴ�A~6ɦ^
+0
�gq������5A�@��B}^�P��O�L��+��1��C�S&��,	�&0b��}P�-|��>\� �cTH��!N�yk�
�X����5�%��5&�'o�,�7G6� �$Y	c�N�x�LW���7�"y��	�X	�&��
�b��g�5(չ==��J\��<F�I���z)bڷ�١���+�
��H���@/���?/Y!�B�t(�Uy���U���)�VE�BK#8.�~���Iך$}d�9��ۡ:
��[��>�
��h�^H�E��ԭ�ц[�
q�0�L�K�@�p�U�
�ĭ��+r�#h��譺���N���8�C8XeH\e0����Y�=^Jt��W�8�*
+bҁ�b�
/(g�b}�H��Dl��>�I�-��4	��g��lŷ�N��qt�
"y,$��c`-��F�
+�f���x����s��
+��V
��*���]\���g�@�	��uNw$
z�A@�qC\%�3�5z,�Uxnml�y[hH
���1$�: �Ὢm�� E�T_[��9��S�I�O�)� P(2S$���C�RC"V��W��(G	(YST�4��=A
m�j��͜
+Hw����bs�I���6:RA{g
+�F��2�ET�XԮ`<)@��'
�t�5-B]�mM"?��J��6|H ��e�"�0���	���e�BN�* FA�@|BU�ϳ���u���葛
�m�_�1Rp(b϶?d]Ԅ
�B�
P�z�+a�b
+�����Ƚ��
U�p�p�C,��(�'`��]"O�q+��H U����
6�p��S���
�P!M{6�2�����Lv�CV-���W��~A+�3n![��~��?)A��®Z1 �dn|6��V��u��C��sS� ��B�����y�z�{�S,�τ�Ba����K`auߞ"��P�� �N��� Z�N���T&A �^�vEhx�'2��&���-
D
��;��0�p%
�4]
+=�$�9��

+���Vta���~�x4l��ǀ�W$�@
z{�J�J���O�ڊĂ�2��� ț� ���ar����!06�^g��	MZ!Ar
+`$	�b (�0�eYH�y�
�M����[cU?l�>���e��(���xq�fƊ;43Vܡ�E�;43Zܡ����,R��N�c
whf��͌whf��C3�whf��C3��
��~�wh�6\Y������,Rܡ���͌w��(a����g�Zɑ���x
&��
��`c�`��qh��	������쟪$u��6pfgvf�����bu)�J�T*�S�
�>ܡ�3�;|pCn0��
�@p��Ow(�Tp����P��E�
+�P��
�>ܡ�S�
�>#��G�;}*�C�gw(�Tp��Ow(ڌ�E
w(Z0�C�fw(�Tp��Mw�"�#��`<�CѦ�;�
.
�P���E�
+�P��
��Җ6ܡh��
�6ܡhS�
��%|�
+����'��m:�CѦ�;-ܡh3�;m*�CѦ�;��TܡhS�
�8�n5�o(ڌ�E�
+�P���E�ܡhS�
�:ܡ�3�;|p�(PѦ�;|s��
�6ܡhS�
�6#�Cу�
�>ܡ�3�;}*�Cѧ�;}Fp��Ow(�Tp����P��E�
+�P��p����Ͱ�ya�3Oq/�mg�殢M��h���)�Y�W�}�mgE�a;Ca�vF���μ�g;�B���Lmg_�v
����M,LL(���=<	�lgι�,�
��}+Hmg^$�μ��/C�mg������B��π��S�3�
�lg(
�� ��3:���3lgܕ~���lgT���3n-��̋~�L���B*��)�����8�������8Y���C�X��s�ٷ�v������rۙ	���&��
,k�v R�/Xh�f�c���S�s`h;�fKmbN��)�q췝q%��37M|��oe�)m� AQ��G<�z
�L�
��B�܎��lgW�y6�@Obє�,��k,h;��A[�vVU�$��
 	j&s�6X8e;�2�b�h;�^���!d�m������u܏O�@�Q�n�i
+q,d��
�J���͠X��k7�9�*��!
#
+B�ޔ�E�\���僣��;��j*עt�5��f�i������^�k7
���֤�����9(��fna�~��p2-���"�C�W��f��/*��u�yCV���Ȫk7�W�h�{��	xf3����h�RYu�f��[��\�
+iMn6��
�5�u�t�f��Bd���.�hLV]���m�3�uv1
+-�
r�ss���NU�lv
D8�R���נ���Z�gN�kt�>+�Y�n�"X�B!��
�7�
z
���V�� 
\��;v�a��3ˊ�$�6)��ڦ�U0�)�"�j��<��\�Yg���lMM�~�f�Y���I~)�5�uv%�\�Yg2���Y�kA[�W�>���8�w�f��-A�1k,87�u���S%��,r��b�eV3���%Z��
ŵ���=�S�$���ti��k2�,�=�
ŷ�Iq,X���(���h�Hf����d˂�l�-,��Kc���
���(3���A�y�N�[�B�g1��*��
�
���,f��O*厬�����-f�/��Z�c�,f��W
+p�`Q�g�,�f�A1$�TO�J��Z�:�?��sP�N[����_l
{�J���I㪐��K�,~^�<)����#���
I�S6��V�?�{ԟ�*o��j����&�������[1ߓ+v���^�r��)��;tB�'��
!�|2,&����0v��|��ɼ�ϟ���	��S���9
+��K��5z�!iw���=k��-y&�W"y�����$���ɐ$:
1�!�n�6S���M��^'� �&3I��Ɍ:��:��H
��wd1��:!�	x�"1��+��u�b�!��FCˊ/�N���
��<6��
&+>ׇͨȷ�6ۊbt
M�$�?q�"$~Rl����u1�{�TL�D�ޓńN�d
E���@�3�2z�Ѽ��?����x���\�������r?Y\��BSLȁT?�2]�j �z0UL��8�?����C,�(���	$�z��-^�@9�����j��
���mA���=垘�b�d�-�[�m7�m
���]����Rb��"1��+�
ǵ['3��HeS�}[
+�T���xPq�YUIS�\�N5;��uO��
+M&��:Yf�jp1��a��

_����vU�����2�Ѝ��u�/�t����N_h(��Z��v�$õ��-Ew�?���'T��Z2��^�=C�/_ayZ�+DՃf:�M?��L�)���
(�S ��y��nN#���#�!��l\��W"
����ۘw@�v�y��q���j�m��ܓ�-�|{�%�d������x@@����3��	E���rm�m�S9d�����qu��`�\��#qq �
��¾--�G��5}�S'3��Ri�
+
]f�d�X��up�{
]& U���:�<��W$�t�B�_
+�y�|���Im0{�ї�����Q4�2�bE�����+T�C����<t��W��(n�=�.l�L��r��W$8u�Bw�Y:S�=��Ź��Եl���%S�٥��
+}�-�{J
�\�F��� ��B�xt��d~M�_�6�8:&��`�����9�}(��y�.?��}p!,ޚkȹg
+}�ֿ��
��y�|ni��譋@�k�
r��v*��7���ρ�K2;t�I,r1"2�y�y�u���S��X�.�.��*V�OJ��Ezp�F�|@(9�O�	�!��MS�%���{8��LP�s��=_/�+ʎ�3	'��܃A��n�k��B��2L-Ks��x(ܖ}K����SIP���_(�����F�+-�l7�M���c��ƪQ�����E�Q��
i�R,��
����b3�Iŷ��2�L���-u/��z�����n�e4	�xٻ��
^dU~�
O9����DV��/�[��Jo��o��
\'Ӧhד^�t�8�^҃A�7�r�����
�ԏ�AR3l}7s>����j�$Ff`S|�,m�d�"!����{ΐu�ۆt�d�:��TiM����,�#�zYת��x!�JH���L�B��hLeg	���'������}
on�8}�Ћ��d�,�_ȧ.jd��$���[�?�֏i=��!r���s�c�h;�Xj	��*��,�(�@!{g�8v
�7n�݅��Y�������O�"�$��
kb��T��� ����ʮs�f�᭤�U?o����V��{��GS�LiJ��b]v��HE�M����FPi�m�ě�W��Tg����QM�� A�)�Ņ�ք���>�Ry�S?A�
�
*�^B[Ie�
+�#��=Z4g<�I�L^����<�+q35�%�/OÁnw?��
��*��,�[��L�d�G�h����}is��Bӕc�\��Jn� 9�RW�@�TL{r�9�Ku7�'�x�Q�,~�/BU��s@��4��_��- at 7����)�"
�c-�xH@�OB���Mf��I��8/V�
"�dc1Koh�Kʊ*�'��*�R=�c����nN��T6�
B�$S�B���ZSq
9�$Ε�(ѷ��,�($	��t?s�����pWFh�.����~
i��������so�,�"7��^d_�'�G�5�2mGց���Y�}�Q�'�I91i�j��A�o���������J\�D��g+��Ub���ዥ�����@͝k���N�}D�'\p�/���
+�eB}94�O�[�2u`xֆ�ca�h���g���1|��t
�ާpg�����&���"�ӟl�����Ł�/�u���BS���~E�
+5���,�����R�>gr�o�y/]a�"�$q�3rZ�]�����bJ4���@-
� q�уS ��]^ ~Feһ@73� ٹc�}��&bx(�G8����C&=k��ҧ��`�&����T
���] WxFeһ@ 3� }�c�6C�?�����#��,C`�n
%�~v��`��i����
[1u)
� ��N�	��g��o�'�9�F�O������PbUlMUlF5S����UE���,t��l&�dk��e�S�c۲��:��h�3{14N�%
���ѣͫȺ�����pF�ԩ>�t�
+I���@���\��
S���t�(>gU�f�1G?�H���������sW��]�:�|4�]�� ��Q�Qg�$n�)="��fo�)�d����g�>�x�6�t��
6gKNOd���?E\_��������rC3���63��svܔ�4�⌽=��6�#ft �9{oƤ�g��x�!u���{��[
?���o~���y�?-��
+�˅p5�
�3��^��&E�m�'^�uI�	���T� PDzME2��
+�&�h�/�Z�6
��Ej�"ɼ��j�3���N���N��r8l7����C[L��X�B巁CI��~���z��/�Sr�-�1.�֭�;�^��q�y�� �ۥ ��v��P�γ��c��
�;Y�\/�	�T����O��USd�=V�"#�Cd�]g
�A��n~�q!_x�zq�`'0����)�����j긹 }�]��
8��
E�^���,�:�Lb��O,.�x�4�-,6�����@�{H�JЂ��Zd �M]~�E�C]9��p�b��F���i	
��h��G�?
+o"ᱞa@i2"�q��X�h�
�����F	>�k at vLSYo<[����o�
��8p›�П���Y�$
�A>
8	2���`
| \���!�[��b��
\-��%b�>.�^0 |
_��i*
�5��UӀT$Vn��I�iS�'������x�F����k��$��9(4���ш5XLLK�#��I��J-v唠Ǧ�0�D�91�����AF3����,Q
ƄcY�?Ht�G�<��Oڒ9bp?)�1��Y<d_�[F� �*�Y9�����ޢ�E�0��e���h
���	7+�
\/�%�R�N��Ù7YUQ�}E<�5%v�8E�@�\����M"�-8��t� 
+�lj�\�[4�^�·�-2\��i�daBa����),�Ƃ�
�����
��[Ӣ�\4�ڋ	OG�؊x0f =��#�	��R6 ��AX���
����J���vJ/��`@,!#3�so����&>�i��ƻ��Ξ���d<�J�!Ca�% �2D���r 6����E�b�vH�b�˖eRC�Xf"�?�e��'�!�/g�p{��_��(�t�v�!���ș����@�B�t�z�֑l
|&ek
+��1��T$�La�
 ;"��@��j
��R�M�Jg��t���CNm�L
+��I
����p*��6͘�Ni]���IS���2�2�:4<]��N�J�d�,Ię�
Hׅ�~��t���i:�h@���z�ͅ�A�yb���Xi�d��"ٙ6>�	i'T$3�^���o�|Z�D2�Ȭ�{�X�����
���A��m���M b�
�D\��&&��أ;:��GJ�3:�U��-o�}*���c�Ш.!�%6>������Vx^�����!L�����,��
+ �
+ה0J��G�*�.ލ���	�TG�B
+	��4��` ��B�)2y�q�s�C�&�Sl�@2
��M%���:P�b�Q�^%�!�
�� �C1^A�h
D��b�c�\�v
<�
���L(���
+��碩t��a|����N�LzO*�4����&j�U�0;�.���B�鋮PŦ�4��
��� :H3�ƃ��K���	����=�����5I6
�ϣ����-ʋu�������,�Q��� ���. .�9�t�\
Q3�o�B�H�Wf����P�l1P�t��A���C,
��&�C��u�VQ�ކ�n�@@���ͨX���A�� �$Q�c�FEy2
+Љp�C�5ႀ�1$��:�C� 
�L��� :d�2�$��6!�#nS�>�cB:|�
I�&
P���������7a+��
+61�#�H�9
H%
�Y�8 ��4Li���	=iM_�J
�4�V5�k��A:Ř�P.��&d���4J�ج���2��0��u��� 
�>ӆ�FS�m	զU�_v#�D#�x3�tnѦL�>G77&�@�l���|u�:D�Q
+�$��� �G ��ĤC�� ��-�6,!
+?!
ʦT�ޟ �
�
iS����Qeɀ��تAs�,� �d2�r��Ҥ �%LOg1EC��!J�e|� L����1�����Hux�B�fÙ(0V䀠�@?*8W�A� ���"+3P	�<�A�!P
+� -���D���q=J�?{@v�
�8��V�K��'��N���B�Ħ�p��2Q�*C�tOŴL$n@�:L��{�۷��H�2�/XD�Σa*���d*�MS�X��
Ua��v
JE�[���g�M�=���m]�~M����;.ߛ,1Ta���1e�	94L
�`�J�S2�7}��F2�`	0
|�(� $�&y �
�o RH�B+�5
��Sq�`1���� ь&�v����@~��@�'�ƀk˖	��L�k�D����!�
�]��Y��6'�,-��Ua��~�Q�#��hЏ�[,�
+�<p��P$S�_\ 
��ق�q����Jў*s"�!jԢ���:܊˖�܃�T��.�{ȚDuT]����Y(�Q8>Cpnx��(Uد:�UYO(��U�"<��
+p��U
+L�ia��gvUL�:&� ��� ٟ�M

�ŀ�d��^�BK[��S32� ��즤
+9�H����АN-b\Pzq{! ����b������vH/�6���BS���Ԕ���WB˄�P�5:@
��C�L/1C���d٦%I��6{�O�ij���Zd�,�F<]B
�7T�!�g"�l4��S�`c6{�҄g��[Q��
+>uB
0�\Fޢa���\U�C�Q���|�G�
+)��2�f�TtD�Z�.	�&8�T*���%a�&6�4���;@ ��D1E'	n	�Ym���Z�gGo�R"hS��Aob�����J�j标@5��z.C� ��M�jaV��_��hw��@�:
�0
V�E5#$K��b�
��A��
��{�d�������1�`]�K�:�����D �"0z��}���9��f��nҝ�%�y
#��6�Lz�,qu�ܚT��Y�D$�e��ɰ��1I
K�[E��F
4z�N0ѵE�N���)Ht����QZ83��4%�
+��DP*�	a��I�ԥ�:%e�f6�J�:ePK
J��@�/zsc+*�tg� ~�C�/�J,ͽ
�%Q���&
j	�dYr+
���h:7�]�-�fd��y�J,�z�I
d|bX�|w��$
�7]e�lS/4�r �L[q�#$��`j�Ѵ:���]��?U�4`Päi���Ӥz����3�f7[	%������
+*�25�d�
�i,#��ЯB}G4��͕@(��nRA*jԵM�i�^�%�M_{��?�t�Y���Pv��(��|t'��ﷀ�Uu�pS�JC��J��R�Ej^��S!+���
ʲ��p�\Fݏ����i3� �> ��L�vu*Af�×ftV��N�B�0Ya�ꍼ?8���P�d׵� ��ec�L�=��Ęe�Ύ9nIQ`c�")eD����`���ic�
+P&����u���|��y����ų�Ãd�Cg��x<���`�!�MdP,�>7t�8���Y�ڦ����{�g-�0	I�[>@3�D��uD�1_>w]�	�*�`�ӡ�x)Q�
D
�6����?*-l�}������H�i	P�Q
gKh��'%Mp&�L�`�,QyB@��Y.;�0�?wNћ���"j�������{�h�NQ��y�,��ģ
�'�$KW#Vb���x1JFΏ�,	%�gn�K�j��
 up
c�]�aû��=��a���6��
k��3<
ә�(��P F��Q�a
��2���F����
B�K�}��)u�z��NlB$F8���/�� L�)�)$���
tW�h�7�I��
n�,�,��&���Oe����2)��3:hӴt�)���MJ�
�
|@�������Y��M�
uϲ׾I�
+�TL�SӬh��1�!hȠ��4�2�>��g�%�p�P��Sg,8kA7���e�U�7R�悙�P��
�q�$���#�e��

]���2��
�2Y�T8]�
���nU��(��M�����^�
8�@CR�D�	'Q�B����¡z8A�aÓ��W�'����hf`��6*�b����%�";�HT��7 at k�0�~><B��29;�Ti�
�Aϕ�L��RP;,$�z�U�
��uUS
ꡀHK��Ł��R��ܐ�� *d�zSM�g�(C&�����q����6��..����_�j����=N:���
����t|��ē3$C"`�P�K��6:fL<��+����b�W�ۘ���4��`=�5��T
�w��!
͠���v���*i�#?��6�^�3E����!t�dJ���B_
+�R�v�礑 {1
~�=sW�\D�Gd���
�38 �x]5���#��m�E� �-��ք�C
O	%
���h��U�NX�]5�B_/�
�
+@�kZT/���*8NL�#�R�HQ�9�	��o�7ٻ��i�YA��ЁA�8�y!�Ƥ�m�LS.
ɽ
+�ӂ=mZtW�oU�I�K2w�W����
 �4&8X ��{�+��
J^���'(!�_���P���s���P�t+�#�@Y���#��P�5v>h!_�.�#� ��s�=Ʌ
D!����Ґ�*@�2Ym�ˠn����X�{8�F����d���C"F4ܫ`I�1�[x��������Sw��Q��^5RB4
0��a�y�TЛ%��J1�D5���2����R����&�T7�]�ґ�'k��Gp�CLp"��(���I at E3H�*{����]��Z�
��<PAg>m�*K�".QXtpi�A�]	��ǭ@ 
���
+8�&�f
��M>�
+�����R�YB�V
�c�

n��I��@g"�<H"|:N����@�2
+���b��
+FA=i��4��o�O�@���l
�
+��/B#��8�3( b!=/�i��)���(7Ppc2�]2�4U��x�t�>uJ:��t�
+��X���'���>P�)�7�*��2�^�F�O�!�
z at 78�4�1S�.��w��b"{�@6�Rw2E:�-WЋ�
�
ӎ(�
�P$z<�5 at 7���/4z���-�P�?1����XU�D���$
��tR�7&�F���U4�'�
� �̙@z6%����&�'�Q�z�Zt��{��_|&2��( �Hzl��b�(��n	u=0MA��:�!��U�u*�!P at B�`��kS�(�qi���v�I�q/6�WU$$�/��V����[�D1$C at w��\,2�
`�>d���Fq0jd6:Z��`aX9����d^<��Bg�H0<���l!DO��tpڏiSM<�ó+j�xf�Ei
q���5���l@� �
J��Tj�?
+�9���,;*��`ޣ���A�]A��i,��ރ�Gg�6;����a(���Q��A<�O��yT��� |֮{l8߀���٬`x ԱY�lL�C@@�u
jx����8�BU
��

�wp��u��l
F������j��
�G�}���7uhCt2D��@�r�Zw�\�lT�		+d�
�E��M�uxL��8\5|h�hp�" �3����ʢً��.(,������E��	��p|}	���(��˄ʌA�Ksꓱ�x�c��]@��n(/�f�f	N��2i�;�xE��&Lf2�d�Y�(@�$��>C3�R�`���I}=ѣ\���� �#],���.�pc0�-
� �N��p|I E!�o�6$��`Gi��df�DK�F�;�Oz���6pB�~S
���c��
7
4I/8a�*^n !Y�R�y�MU��=.����u�Y=��J�voLf��b�)?,��E��:��Y���`!�l��N(5��^C'�^���ΆMg�������u:�am��n0�
+�}<���X� >
�
�.D���k���� � �~�u���mA��O�s�������8�s�x��kB?�u~���~�
}l��	EC9�@8��+eڿ2r���
���
��׬��^�*;�n|=�4B��G!0�5i�"d��_)~O=���CLP���,!#��WSC�7;�,��cT�e�W�f�j���o�d
E,DDR��@��_HU$��������V]Bǎ��Gd[
�8vg����/�-1
q�6���ߟԩ;W�T���D8�?��ե
{k�g�w
��$��l�v�ŭ��(��)TB��e�W�:͐��#����C!����$�I��C����q2�
!�!90L`Q�C�G�G�����s�f�<���O'�G��<��v�܉+�<�X�3D��E%�GX�Y�`���������o
g�?�����dF��>�S2t�hœD���_�i����
�5�'$��( -]�Z'�"A��=j
�n�<�5���Tm�n������;UwB�Rm8��Jy<�;���:gCV��(*��������	)�c.�����l���
������
+$�s�/Jp�n��s��	-�"BG�)�p\!q���"�Gw��Y�5r��8�9�� )d��&�j�6�w�E|텊�
C�X��
��ep/����Fmj}E���\d˄�
:�����9
�j΢�1�Y� �S
����_�O��&%Ōٷg!%�8o^
s���R ��
�D�
9�_��Y��
]x:��8�# $k��j�p�@t�f�!F�EG�=���M�5�TJ@�;���F .��Si�f�ei����
+�sѢ) Z�">�MD��X�g��4&0��ugii!���/hj�w��
u�l2�=�
+u!��P1͍B������O��ϖh�O��'�D�M���lz��C~��!����E�3d���:��?��Y��S���Jn���!��o��Qj�ە�m:����P�?���)���:0
�c*���>�b�eC�
��A���b�Q����߿�Nj���-"����\���hy���Y��\<LF��E��L88�

��"�����q<t;�.`����h�N9�Ǽ�ƃ�y	�k����F�c��5�����k�����P��	տ������\ʝ}�w@
+7�;�w��Ĕ��q4T�����H9���	]9�Q��grEʵ��?z8
5:���p�99�r1ՙ���6/�!�;�&�T��������Y.�/�E��J�fm�%�F�iPk�
5F��_n���\v
+�O���e��G͑/
y&
+w�i!\���$s�2��F��v?��.�\F/4�=6��x�k�@1�Kx(o�M�m��*�F��m��a�L����
UKc��0DV>j�:�U��
ų>
�5����+�۴�����; ��+޵[:�kc��q^�� Ɣ�A�u�ܜV���Y�7�m
���u
f^�7���I?	���P�����m�ڟ����_�Ey
�ݖ��*<h �7w
+Ɵ|�`�I����L.��#�P�/�X�i�%Cv[y��ԩ���`Q��l*�x��?�,�'K���t�"������Sf1�����-����l[�O������ տ��h>
E��>�������Q�ʟJ?�է���
�����g��~�]{q���'���˿~wrRZg��Ke ���I

d\T���0�14�������o�
� E�O��DZ/�pwAU���O����c������Y����”�7,̿�I��5���O-�΢��>��z�K�35U������s�z���k
+�A��.��
+�ǻ1�c(����(���̙�o��H:W=
+4����O����g4��f4�Ao@j������gp�{RZ�tƏ�)�����d����dKסD��X
&����^��/sm���O,&
E��@S�ʡȽ�7���f�,](5��D�_�cG(��B����B�?��On�CN��o�N��+~���
�s�H—�o5�A�}Hu&�۽���B����ΰl�r�
)9�#�vϖB��O>Z��t��
Y
���#E�{
d��}P6���	"� ��S
�"�1	���ể�@���=Eb ��b��φ1}@�>�ҹϐ�Ԣ8u!9N�*���m���2��7���M����9��%޻&����!�wj2NW˃��
$�O��	L�vO�d��
+��(�) ���teap
U��L�ѥ�0*%qU��C�ZSuq=��Y�p��4q��o+�\��|��Kzб������1$"��j:�[��4�2��X��-dH"uh�QP`���0w�7\�
��\P�br{�Rw��*�%�Wu�`���{��B�-���&[/��v�.�l�v
���1�
�IA�v��[!��C���>T�{m�
k�RΘ�W���vrD{���}ن ��sE��˓�/ A

m���!�e��kBG�
 �r+��E/@S^9
�~Câ�"J^�
9 � �k|)�֦�l?�I�,k��К9
f��t �18# 6
��!�9���`ʜѫ~0y��?�4g�r L�ݩ��+5l�����Ԣ=��u 3�(��
 .���*� �g�dA�y"����H1���T���3��R�J�5���^$ʧ�e���ϴ����|�إg_
A��;�U� ~O{Y���{?���G���hD��G,��ȕ�x���3��L��^mL�
� ������Q�!�k{����.��: �]���B
9t�ugX[�6D{�?
��L�1�59S��u'�v��d���x�o:3?�"��vz�s�6
��ɘ?�O	��4��/@5^۝���Q�߆����O��ި�Km8�������R��P>�`��d����N��s���N��N��o`�Cn���{���ߘ!��3>�I|=?�Z���������w��U�'m��_����/�h�^c2��-'���p{T�
�<�žK���(C���P�v����X���`��?|�5���ʊ����pޜ_
�̾��
�eƲd�I�dS6-��l5 [...]
+c��θ�$��:�?
�r�9(�CN0>
�h���l�j�q�_6C�~�?
)�<}DXC�U}>��C�Cn�~9��6�.NdC�T�;pҵ�/�Q���
+�6���Pi茜�/N���k
�6��Z��i��6C��`0
��~q��a�cՍ'Mu
��B�{�g#��|�6$�3v�#�P�4��
�}����
+q+�9K\�Q�*ۭ;��5X���ڸ-�X
+Eu
��@���8DϐW/�N
~�:����k�^	���c�SA�(uj=#
��2���j�l�!���/�S��~�K���J�m&i�N�fo�:iA�\��� ��v:���Η��t�!���^��W�i�{l�X���^����ns���*H�Wz^5#�}���N�p�OQ�i�ߣhbq�<E
+�:��s��gE}�W��Z>�_v:G�1�v��0���YJ�
Y�7j
p���"@L_�	Y�I1I�4���&��,�.��T=�4��8��'4>�)�}�r`&�+[\F<�lPk��N�?���N�*����[s�q�v~%h̴G�Z��� i�v ��Q�ו�����쵹~0��c|
HA5�2�ϸ�@�Q�z��%�7(�|�A�hy�`ab�Xu˶�O@�D�	�7��8�/��^�C*�K� �D�g���6�Ӥ���<������߁2g�W��h����C�N�6����'�N��F�:�nt��}�<-3G�םOj �BE8K�k^�I�Z
��i�EO�M'�&�		$���"
v��Z��L:�N���
���)¾�
k#������TҪ�U�
R��'��2��q���q��h� ƒ�HB�
+2A[�
���	KQN$
o

b�� H�B��ɽ�UJ^�M��*>:���M
+�Q+�
:
�����9>2��U�a��.Q>��?H�����l���X3���{^Hw�v#�'N�=�.�Q�3a�A4�
�
W���d�间��8$��۵@�'��5t���7
+�7�|5�&��d�E
ɣԩ�k��I��	������
���8�S��1/�����9_��9$i�y�0����ϝ+�5�X`�Fd�30�cdPk6�~��Ɠ�Pr2��r�,$8�i�%���
z���u��9�P;4�A�֨ݝtj�՘�Z��Q�	�
<�eC��g/�'uBI�>�K/�m׼�p7D=��`���}��R�{^�8AĹ��||�*ƝX���J��0
��y���=W�w�
�]������o7NO#�Ҍ��!��;��ޙ^"��g�p�ܴ�B���5��%�>�qZ߄
���[u6�����玒�R�8�9�5�4C��B�!a���Z�VV��Q#���@"�>i�/�p�4 �Zt�B�:�_'�1j������Qg~��ZD@�H}�6������[{j��cz֝a�+*f3!�
<����� �k��i�0R�2z،-n^L�� `�� ��OR�L���חا��`~���A(�3������8j
:���s%
+��
KA�q��ʪ��#�ԩ
����d샗�{��K�3�
P#~��K�Epʧ���:���p���gq; %,
L
?/�=�:X_�4��� �_۽V�
��p��NA%�׆�O�ћ၂x��X��W���1�Bw!N�?�o ����0�Y���ǚ��Y
�
[��g��FD��:�5��N���zt�Oz�9/5�R����̅#��y[
��gSN n�Zk:C�,�3s�G��W�~(s��� �3�=�$ 5
L.4�fA�!��1)�yDf��G�,�Cvڟ�
 �
��
}`���� ��G��d�BC F�t�W8���{&x���U�as8�Z� Tk�k|BQ������"X���qK���OA}eF4��j���c�k�
J�1~�!R�>+=��~Q�0�D���Y�C`��Pf��#�F���O��O����Rut��J^�v�7��>������L��N=�׀'�K�$��qD/��9eJ�9��3�'fxN�-�Y�j��;�1a
���'�{�
��)�~qN�
�
t
�O�u�5=�Y8�K�\���'����J<T:!��!f��ㆋ �Я�N/4���Y��

+*(�a3TA1�rA:p](����$����?	
�{!�A�
vM�{�lm_G[!ҙ[�G64�C
'�
p-ԩ�Ο�`�i7��m4i����
n^3��
�:B,�~��=
+Mz�p�?���7�4���K��\m4&| ��S3�niB=�l+lJ�&_CEe�r!Jf�U2�WCL�M��T� �
	Ӂ$�@q%*C����
���w���,�=����!+�v������\W�*�k�&��\���u�sf�_�)K7i�6�@m�sr��S_8����,�P����g
+
�I��o��]����p��/}���CG at s�O�ʋ�`S�@�,A�o�����q�dЙ�oܵ[�o�e��;�N���AX�M�d_�\��H
�UA��Fm{��ؔ�!����m�$���q���3��|~�:���
�Ϊ�ő�W]�?fN����t,X�['e?na���=���|���
�Z�M��ͭ�����'j�+��!�#���a���﩯�5+��G�V���c3���6�q�E�ߗ��
�#%��>h�B �q���i3�~��'W�p��������%��^���.di �)O�v΃���-�U�n=ap�
y�V�%���_7�����#���1��ŏ�2X��z����?��@Uo��.H��ة�N��^���wk�vd >����
e�iW�d��i
qJ����j��%�xf$m|�}
+&�XN���x�ͭ�d9��[z�a�������뽵���VA]=�������Ko��[܊��۵�hŸ<��ۉ����`���v�Nf.��XaYӖ%i�y˼lI+����Fbwk0J����B8�S\
r��8�rt^L�jN9���odb�������[ҟ�Ʌ�ͻ�q��1��E���~q�̗ǯ����$��V�So���p�%�3[1�yu~����cW�;������(���l�'��a��Fd垉V�i=^��N�s��J��ӯ��C��j�!?�k״
2�Q���O�Z�����T�z[I���=:��Zs���"��lC?��_���n2��n�N��7��\ڙl�_�_w��;���̶���gY���a{�y��Th�:ჵ�p�a�,�W?`�뉝«�6v�
�^c���w�7�{mӌ�Zjr��˛�۲�b#S]��k�y�J��v:^#�+��E�[N�c��t��p"��]��n����K��X�7����ݫ���R_~�f�{a2�}cc��޸6�{������e�y�,J���I&^�]�-n�
�><a+���Ky
�����v���<��}��)�J������R2/{���ݝ�����;`��YJg��T�
��7 9�w@��e�b*SETE�@3F��y�̴���Zmm%e�/�w�2��d�1N�V'Ɋ���O���ˤN�.{�|0qQD��G�O�^cV'6<�
v�ϴ��&�4[[��_޹�+-/��Uy�*��r����R�>�>����� �������OAT�'.��.,4���ܛDr����
+�6��Pj�v��z?�S/%+��d������f�e��>b�dO�
��EV��W��.[�v72�p�%9��
w 
.2���jAFjۍ>�`�
�2�7�F�>]P���=N�=�Nr�V����z3�nvo�y�X��T�ػ��6�Ž��Qey/0��0�s�9|;���]�0��ھ�O�6� m�Ku����N�ɏ��t{�6�[F�K��r�țՎ���%;�b
��ds�pW��<>���������&�υL����ZkGF�r�I\U�\�:�Y�nJ�
��V�Tɭ�7d�'v�����;�
ҩQƼz�V$�qo-y�l�p�#���4��u#�<�-��
�߫���z�.~Td���Xʹ�kO>p��U�_q���
���z�+[}���4B�
"D�٭Jc�`���l웕��=Ců��V��n�ϛ0�E �d�����ݬ��_a./=
+^9I�S��������i
�7�ĕ#��]�R:�t��fJ:��I�W��
Gn�IY-!��/)�-�:
��*
G^Ҽ��k�.a
^�w�e�� G�.�_o
+�Ћ<Ȋ� �
쥛	6!
ޭQxof�h�`p��������z�L�Xc8+�jQĆ<�iqq�`����va|�K�.�?�I��)���{.����n픷�t��[�O��"�
8w!��C�,2P~����C��~RzAʁ�}c���k��w�g@��b_ş��y��Y�-�Yy�2M���\dQ|#&8:�9�L�"ms
�8%Ϙ&���s��F��ӽ��u
+�Nq]\t�^��Jq-�1L��*
�P
6�H�t.����P�=zA���#%�ɱ:��{u�6|I�.2D��])t�}�g�/�L�Δ�����0�7��=;�K^�^��Zy<�d�긗K���B�0|X%j�
1�dr
��UǕ�ĎTZ��^�
qQ]�	A+ZI"�B
���)�f�M
�㔱FT����֔�sW�%�����	m�������F�ZZ���C{IU��E�|�,����f1
���vx����u���
��+ɳt�:
Ӯ�>�
�0�Le��i\^$͇�E�0�x��@R?z�'��ω��Fv~?
�9C����1�v�}n;|n9�v�mh�4/��L�|T��K��$�i�o�������\Sh!,C
��Ԩ�}�<�eޮ�����iu�/D�ݐ	N��M�ه�E=�����Σ��d����eal�����Kt��vp��?E�l-��y�������Z���E�	��r�!L8���#D?�T]�A��<#Na ��}J��(
u�e���~�_���
�Ʉ����꾝9�5[�
�*�r���=_\)�Ʋ����L�r�Pr까����
����I۔q=���Wf��qc9��M���ݵ���n���-�Q,��K	2���)3�'����i�*�Yo�
��W%�}R/I�������>�K��aq{s��Z��#+;N��lվ�� [...]
+�E&�$����
��&���9a����i�2�Vr=�s��d��Y�iMJo��e�t�ݑr	���(�r�c!lwr��<��]�
+߽bc�ܽ��Q�|�J��\��5�������Prn����e�;es��qc��oX�B�Ea����W�'Y�}�0��.�����ۻ+�*�R��f�AB|��G�����$8>ל����
�
��
f����A�+���>�b>��TK�M�;��Qvs�h	ˣ; %ce��Jl_�wZG����MNl�rlj����0J�ݭ[��d7��"�N7����d��Y�	c��-C��9��,yݛW�b����lU�=fZ�Lk!���L�z"y�m�:�u�y&_��K�(~z���
����w#�aԞ$K������"+~�A�EPo�8ڋ�)n��2W�y�;U�?�d�_
�� k5IZ��KL>��bed��>VY���"}{=�I��ׄ+_aȧ�T�+������g����-OO����H�:�o�B��f��1
r�H��Z.���J�&�:ֲ%)[����yL�0ST��{��{�i2'ɋJ�c�6�G����(��
׌��0}��:p�C��s�ݸ����v����iy��<)
�ܘ)�lc�Ў���d+����ۃX��C�
�)���������]_	W��w������yӑY�Օr���Z&��|�>��胜���8[OmD��'��}�RY]��A�m�ȼT�,��	�s�h9�N>1��!|,�U�]�!
����V��}�bkϩ.�dJ�
����z��Uqճ=�XI����5�����:�	'��6.��ۥˣ�m�[3ej���H�zyϟ�#�����4,���LWW���pg{Ml���in��4N
��M�ӽ��f�ٵ��3
2���g�/
��L����
;�=��
w���iمN�������n.��-�;4@/d��(o�4
�
�Ʃ�������܊䶓K|A�#��W��^.��2�=��u�S��SZ'�y� ^�
�҄[�7��֤t�KH�*Y�^=���%���
+�9�3ن�Ь�Y�ƥY1���U"�?}cH��E�ݤ��p��˔Nʹ�@#���yI��;�ۋL
"y
+��%��r:I�w�؍��g�@���,~ @Yuz�-�'�H�2����AdI��;\�q��s{)S�z�2�	y����8�=�-��v*�=��>%|��~�� �VJ�V>|8
>Z�^�'�{$��XAU�(AO6'����@���V?���e5H
S"����
�n\�#8�p)�TtA
(���%π��1Ql��\���i��a>t����E�E�XzIu��7ASJ

>����
�r���̝�R�<�T��>���[�.a��=����������I��<{��Na��x#[�E����^?fk���TwsUМ�����t[8�4&컩��@iU�"
m|�;�%2�Ϸ��Mnu2pR�$E,
bi
69�t#ᠱl'��VJd���q����4Oύ��ZU��x5��{.L�6>��gi�L�
.7��U"!]YdDž�X�����
QP��ӧ�$���t��T�0�N$�='%���a�����H��:X6���\���zi?m���m��O�e8�
����S�B�Ւ��Zߖ���I�p4�����k7����R����qv���C��Y#"�5 ��!nl��V�[��ĸ::�UǏ�\bͩ��
�(��pàDDs"�j�����C�^I^g^��v�{����,WJS>Ŗ$�k��#�����G.YJ
�OF���5h�}�i�kv�a�Y'{��g]�$��Ɏ/�@6ՒV4���Cd[��ҝYy>��2�$
K��c-����'D~V�S�;�Q [...]
�
Y��K)}='|���y�%�^YfXf��L^�������h2�Sk����c���������,"{�c��L�ƹ �m���:xF
�n�9�w��	��斍���Q}�>�HᐸwT9����v��R3Nv��V.,G��|~��),�$qx W�$��\�hn�v�	��V�^z�V�q]G3�׌է,�W'��S��n��VB ֲ��ғuv�Vlu����n]m��S��b���s��5��ޖo�n�0���!��,�ؾ]O�=�]�]�x�����D�=ɭ
�sG]�,"��J,S�\�Ş;�l��Մ(�k倕v�Va᫠���<ݏfb�):IV�f�X�Mbaǣ�d?����V�Hr'��x�2{���y|yT��_�$�1�/JM��ڻd�>U4�[=,�p���}e���Q���)��h*��k�V��!�d�J������/������x��2�	�KDݿ���4,��o߽G���`^��uPyAw޽6/D�}7�������pl�v_�n
V����}v�:_.f/�믉�p��A���X�l����U�M������Y\�X[Z\������E�ͤ���!,��?K���</���{�x�J8�0��p
+t}�?�?V#��1�|��|$9�a��qq��ԣ�$_�
�'�[y�ǟ@O�-i�uR �7�82
�����FIo׺�����]fsZ
�7���{�&,v�J����ŮT�]Y���Lm�L�]9.�OÉ����^��:!��e	"��d0����wr�^��CQ���?�����
+����n�~i9�ˏV��}�X}�w��ë�液�������C4�v��\��<�6�s���Z���|9�=�:O����֋-��DZ��Z<������T��yW��&����nQ]=}쩍���
+u�FW
+g�z�<��9���=�<Xˏ�U�.����z�

��n�R;g/�ﻆ�~<^����6Ȟ����9X9~��ޏ6C
%׋�V�Ѩܤ�>�|:�y4�/��{�X�$����k�E��r����0zn-:�������M~�"^��w��n�z�|��[ߞ����a�؟T��ҹ>���Թ�L�e{���b?Y��
�ύ�����|��߽Dˑ����C��Qٮ6�+��r��xϸ�Z�
�_ݷnV���$у�;;+���z��v�{�z{���ɷb޽��G��H��a�q
n��Ǐf,{l�������jx��z�%��������ey���1���I�~�^7��~�n4_�W�d)[n���3���;jm�у�c���ؕ���[y���;:*����^������n�
���w�x�{w�NJ����C�sx���7�aOY�G
����Z�_��������ޑ�>ԴS�x:�ņ�}<�XUm���_�m��o�\,�/���7�t�Rz�����χ��j��~]�ԏ�מ�����y�������� [...]
C�,v���uge9k�[�l��ȝ�F������a��P9J�
G��]���!�H��ЎK�����uq���_���DO����ɛm\�
���$<
��Kg7�[�d.����6��q��~�z��/n^:ٲ�ɗ�mUq*�Zd�2\��.o�S�+�]W�:+����j�l����s$Q�Ml�wo'����+�:^ߛf�w߽�
���+�r��<��/��{��jlЎV_R{����ݨ=k�Ԝf쩞�o�Ɩ��6�����=9ѽC�i�f���k��%n\*/�������4(��xc�ݎ��ߎ���������-w����n�Q��Z�x�����X��~�L'R!�?�<$$s�1L�\���U
�bdI_l�-K+����Pi7Vn�g'�;L��#��W/���5c�vq�z{�?JK둃��zmK��H�+��ˇ��7�t�e6«[��z9z|p��8�^Ş^�c������p}#J��U����LTn�N���˓�.k�'��D75s+������~�ؓ���eߨ�6��s�`-�nm[7��m�?F�����v��^�Q
+��N{)�-�<h
�-b��5�.���R�`�U#|�H|,��K��X����J�<撩a�-���g#|
��U�t�_��7�'9g�1s��f��Ջ�����u7�[\�Y�?��Z8oޮ
��ۻ��f�*f���'�e3}r�
O�V�x�UoVϊO��Җ��Jϯ;/�������'Zs��W6v��rG��+''��eܼ�^�rF!|����V�|w�Ķ՛�y�w+vo_'�뻳���^�t�?�������c�)yڐ�ۧ���N�<r������T[���z�^�'W�
��s�&3�B�y�֚N��6���V+\�y)Z��Wy�V~�,g�ڥ��Λzp��������c�M#��y�0�ݝ�̠;�:h�η�r_Z��ף���^r�
t��ۅ��/v>�+k�p��d�����za
T������������r��|[�<���+'�R�:��X�ջ������vY�����庼�ͭ;ŵ�FZ�]�19/m^��ŭ��6�z~۝D����h�]]��ln��;�G�>���ޯ�n�ԑ��%e�\3���҉�]Y~Q{+r\+������yG�l{�;O���8~��R~�ڊ��V�$[�S������my�r���W��@�����Ffo5���ݭ%�}�r��	�:�B_MD^O�/ﵤ]�';�)U؋&��Yr��w��C�Z�2o���a�v�[9{���?T�;��j��(i4jG���]�Lʟ6��a᡻�sl��֏۵ŷb�$uu��j�O.�z�4�r?X�>��Og�ݻ�����_:Z{��W�������B�$z�h�SN�W���hi�r
��.㱳��z���* [...]
kC�Ȗ���� �1 H�G�qsO{��"q�J�[�4�v��P)c�.[zWSVIUrb��U9+v�y*M��+\�S�m��>�ˍW����~�?{D"ů S��[s~���gB�[���%n��ÇZ2�*�ȃ�(mju����%��/����h]�����
b�Y\�J^c+�C��2b_7vU���\ڻH�W:
m4��T/m�ćD�sV�d4�+��ԙ���#���Z~��AR�
{�,5�����d0k��
+���~���C[�_���Rk�O_
����֕ ��t\
�y�����
k�s[�����T��n碒/�%զ[ԓɗZ^©ʓHFr|4D�����-3auO�����am���s��fk��[�1�eKF��*�ؕ�һDbE at 5���ߊ*ݖ���������
���}T-$��Q(eS
6�.�}�P{�	S
��;�	�V�B��� ��
`�
7���Q��j�|V�R�.tL=�Jf�L�k�]TK�Ok���]��Ua���r�M+�!��vgW̮�Sk�&g�i?R�S[��F�lx�<���"�_g��/���N�}��)��@�k*M{�Z��0����|�l�J������g�Wl���gW�D�
+ 7��4���kfJk;�vc 䗣1YWw����0�y?��|�"��2/n^�J��
��u�r��o&��oU��1ei=�X�d�*���2W�ۼit��-zAW��*�c�o^�kѕ�2�A�*'8{�Z��
�o�g��u&�H5/��_7�����	�V������ �1��$E�����};S��.3�i�O>�d�N���ܣ�ɩI{��`MʦQ��蹧<��@��ݾ�(�eq2�
}<���ѯ��Y����~_p�f ɵ�_3�� �����V�"��M��
�Mt��_��ar[� ��KG�� j�ZՋ5���Z�W���UU;3��/J=/rGQ��D�˱ێpc��%��-��v-�����2���;޽�3FR�3�ԸgikoM$5�ݭ�]��_����R�$�V ��3��wm�̩5��ѯ_��ڪM-8
<���<��a(j��2��X
>�.���Z���m7���*H�2.�o`�?������>�bu�l1�-9UÄE޷F��y� B���P�*��5`Z$Zd���&��݁Z�SB���Զ>mn�#|>�{�֜���Uk𫶮o���xSq�3��&_]�l�d8�@�t�~�U.�굣tc�Q�Po�*��"�~/rz
{]�*}f�=$rj�#s<�a��tf=����	M�؛��͑�Q�635�w&�˺�R's�
+��Ξۯ�r�^���sJ¬p
.�;�����p, v3��~�
A4���^�Ro�i,��׿���e1H yZ�?��s��o�H[[zI�
�%m����妘/�E�}pC��@Ӂ�O���m��
ג׭)5����k���j[�Ɩ�n�L�{�*\����lB�4RR@���9P�N/�
��EJr��|�R35�7�{�o_�өTm�\����rt�J��]��
6՗�w�&� �8;
�Rk;�QD�֬��A�Ú
�y:E�y���X����޼�n!dGWg���k�O�h���[w�^mrb=����h���U��5�b����x�u�|����
��O�1�������|�G|	�쬙���A�}�B��հ�O���m��U�	�?����7�[��ܔ̥T�`��:.���?szn��{)�n���ϒ1kp

����@ީF#g
*w*Z;c���xY��ݟd+���
�����ND�^����i��e	|���
+k�E-�ru�v��|�LJ�x[6��/�m�{���d.���C&d� [...]
��YI�:SWbrOr���Q�	
%����
�>6�K�
��i1+rr��װ���e��:�v�Ӛ7�T|��H9�2��S�w��L�a��C9R>��J��Z+F]A����bh���S�OK񯶬#��p.2_��D�j�	am
�[9=��}s�jC�(@�A�������b�Tuo�Nʱ� .�KS�6M�<�î
hh�\�������� ��
Q��I�H~{��QZR}�����Hќ��5l�>w�f�D��{�7e�M��R�K	x�c��;�lʐ�JY ���)�Z��p�I�\�͎���BT��)�T�y��u�0GF t?��7�~%��	�����|���sٰ�����aBi1�G�л���U3
iǂ��;�N��+y�,�	U
��=Ɂɸ�w��VCw��5v}	z�*>��w�ȡG]_$�����Z��.V̲\G/���X ��'��VO��}:B�����/.B�������/A�R�۹��bs�h�9�8��J��
�$Q 5
ͥ^8�E�8�L�Mo�% [...]
+*֓__����
����[y�����x��
�ZrT��b�8>(�J�Ҵd�~h#4=��
Á� ˃PC���#
*�'�y�
+#�� �QU�����J�����^�����S4Ak!f���1�u<�gۈ��kSO1�W��ʿ*�O�O
oR�@��ƫb�ԗA�
r�}��Z��Yyn��O�엫��9ݩ�
������Vok`���i�'�
�B�~re+,���]���_���Ii�_�z�;����B��G}oOWʸ �H�s�-����	U�����ЪtZ�f>t�a����ilQ�
���
_���{z��(�	2��O�\xi-�.��h�rQ����,��`7�'N;;�(���".�
�i�@)O��%�d
�b�������,���sjA��y�pa��9�U��du_~�9赺p�N�-m���Ç˰�tn��k��x�T��0�xe1CzPI�������Q?�ƺg�J��/@wu�mI߲����R2�YtހL^�%"DJŗ�a&�n1����`P}6�T:�4b�:�����
l��
�%�3���vQ�`=x/S��b��}�j�����
M��VǠ �
�(]���T����������K���=]߶��@����H�W��k7��Au=��+��w
U��5n����[+m�gNix��T"Μ>@�{*i�Ԫ�[�D�0t�
(P>�%��/@KRCx�܏�c��tg�`�p��
4�j�s:r�gHSv×
„
����Zj����U8
/c��J�f��|S+�{�j5�;���f�yϳ�Ҫ<b��z���� y�m����s%�9���
�P��gI~H�H&��(38w
���2��
Ç<{�'j^:Hꇿ�倮��K�����K�%�r��r�Z&���S98�G�
Ǩň��s��bƑ����U/@���
+��� n�T �Q�����&1�h	!��uTƾ{<���W�� ��hH�殫R���Պ�(>���
�jQ�5w�W�l�
�_�o!sG
���G4�9#n.Od�����ʭP�K�CsϥVצ�D[��a?�{�R�7�_{~
@$C����1��w]K�X�%��S�U�l[JMj�Ĉ~�.��GRԾ�h�zI��0��H���z}���+���� �\a��<a�:�]j"�b��[s�u��.&���l8��vW�HDw�`����@$U���d�q
�&�lXa�$
+���51a
=�]rdC�
��S��ExaJ���GV�.@����Ay�!�\�&$_P�|Z���3G]���D�6C;u�6t������
���ZQ0`���-H�6�y�l��1�p�}�Lkɮ���3�g5���?�
u[2�ـ�e����wX�C��ƣ��l8>��P,<ᨮq��?�bm1���{�
�s�E&e���
����E��)*|��rQ���]ֶ�v�����u4X��c8���V��+4c�⣻�D�i��{-���b 1���]J}��%�iY�Z�o%���u����2mwS.ƒH	��Yȑ�_׺��S�Uˑ�~/v�0H��pDZ�‰ټ
+(��qEcrh�Kq�*��a�=`N�^YMH�Y�ڗ
���{�=�ݤ0 �몖��=_w/:��.�|����Kt��WT��jx}z	u|�u�q�^!
�"�AL�Kݟ,[�c��q���nѕ��{GH��i�ܤ6n}�/��.J�+�#_����9e�jlG��1ᶳw��nnu�|�mX�'�Q�v�ۚ+M��<�k�������7� ^�����~1�i��M����$c��[<*
J¤�����x;;w�Q/��O��U�q�:�
��E�٬�*���c���k�Q�R��S��xP5uf%�
�l
ޜ\ݎ�b=�+<sd���
��PM
u#3�7̯�:$���f�r��ԙ.�q�s
�4�cK�ïP�
+u�z"�m4��U(~��RnMi�����Qb$��n�>��Lᆬ�n\q$u�:�_O�0u�MbI
�'ohڰ���+���M��2U/�
�6gr�kM�᪄m��(�aT��4z�(X���l�ﮄ�^�]ƫfkܚ��0��
����U�͊�
��X|�ª3��b�G��["gAvP��5}���0=%:�\gD�D�j-MbB~� �
#1
ݺLLq3c�B�<W��2)�ܻ����ʏ��/r!�,��^p���"�$)zwAbK*+Q��#�z[�����>=�d
�,qV�7�E�v�F!bG�6$�3�����
s��v����q޳�߫
jӎYq�+��^Ӆ8'�����#��d��E(vBzpwU�]���O_z�
�	!G��
'��m
S�~(��) ��_s��Mx��"\�k���'��uyؾz�@���Xm
�����kTR5&��ˏ�]��U����5�yk�5��6�R���-�~�S��8+����Ϳc�b���c��$�1VU����������=+{�e	�{c)>X��3�B�Ձ)>'ˍR3�6x�†�S��j�s��c_�}FS���LG�,$PPe�Z֥��=}�[U����ee�
���
6�E�L��ʮ��J�at���$Qq��U���I9z̾���,��J�����{����2�R���j��W {s��F�-mW��L޺�ew���L
W��2Yx �D�=�U�2u4�
O���S�2����;8='.��h�U ~q�H�=ZfrW���f{--�̯��
;J�����b��|��r��y�д&�}{�J��xz1fW�[8؈3�����M�ժm˺�D������Q�%�
��Nra�q���ˣ+<�P6�/oĕ;��
�ML�����٘ʿ�SHj���Q�^���"e�}��p�%�C���q{4�~ [...]
+���S��5w����
E�(��=^�[�ۤ�ݹ_Vw�{\�=V�ҡx��z��W�|8�;ڶ9賣�-��>Ϊ�w&�M��k~��A�+gPn�ǚ1�Ph@<�.�dA��M���U�ϴ�e����r*�R��?P�
�l���@-�_����p'~���;��W�T�Ц�^�Z焼�|���F����{�w
+jWM������
���DZ��x#
��<�.�A�fTo�㱠���^UE�3a�[lr{>Q6�gԌ�tb�2pT�)/��En��Z/�׾Y�h-��pB����@ѕ/g�%
��ۥ鬭���-
��,7�߻�W��ӱ�5s��
R��<��A��ۤ
_�ۿŠ�r�Mvt�-�
0�_ɾ�2�W_N�fψ>�KrE�j���"bhJ�GI�ؖ����
+`)��1�3ot��z�:V5�:�j�qI�����0��0��"Se��?h�!��y�k�>A�Auю��w:]�fT'�-Q;�=�3mk���P��<zQ��ᆩXyS���e"�=\�U8R�5�����]�^��(�2�X��	
���d�XCU.���}�
Hm�:lJȧv��h��k�y�⓭���tfy��Mkp���#��x%�A���߬�.�?�9X8^<aU�>�C�/�V�T�>R�
�o��lnj>�3�r��oY�7�
v�߲�>�=����Z�+⃅�$��SͮN�
+�mq�}��O�Qh�
��
+^7�҄���Z5}��tg�]j��a7����v�G�x�>Z��Ϸ둚�>�M�n
x�����AY]�`��P�ဍ�UW�'�5BOC����7�ց0�c����s��{oY���
5�g���ȑ��N��	�a_��ʤ^"p�U��POV|D��:�FKBS����ݹ�
+f�j���Y�����#���J���t�	��}����N��5
�
��H.1��l~I�� �4��"�o�խ���N��F|��2kԯ��ޚ���Q_~��F!Tj���	�-
~�ٝ�7
��&6z˧��Ѿ���8��
+w�5�2�vK��|��<�wV����h�]�cxzO����ޥcA�>���O:Bk�4.�g�s��ԸE��
����Z+
+ێ�z�OIբ�z)���Pt<�(QZ��
խQ�(�)�W嵥9�ѳd�
�r�dX� ����L�Gc�4�VEE����T�� ��A��г�ҿ���%*Pz��£�{G?�[�M�Q��L�Ԋ͵[�Y��ʛv��&V�(n��u����WA��8C�`�C����>�������)_d1��)ϧ���vO�	�n�i
+�
f���h\�
���{���i��	�$c���.v {��{$��Was�V�ϳ1<IJ�Z�ÿJ�r���+���n��(��(��et
Q��Za+?N6�_-@�k`�s{���O�y/���|2X��
��Z�����7G$7�ӵ@B�?�Zo�!�� '��K�^q����a�~~�l�
�
�b��1~!6Nɇ	�����z����%�6���x
[Ɲ��H�dz+|��"%9�A���ɽ@9�#cNJ��
�=_9��
��T�U�>u�ͼL���$��(���;��Zɔ�
�+ً���V�f0��<�Q�}���ƚ������ȃ�HQ�/����]E?%e4�M{[y]��d\���7���ր=6
+�?�Kg
+�
O�Q��w΄,�c
;�]=݋)�c����K*L��Ɛ��6?�'�b{p��)�ۇ]r�CR��S�Ц��6�ƽus�j��͙������<. at r!t�Ͳ�Ws�m-�B��˳
�3
��C@�)A�ͦ5>̟���mx���})BA�4f �U	K�OԐ]•�;��;M�egs�H�y0���
�^+O�Ŋ��x
[n��(P���;�vHߢ�
VX��z-��(�\�!����KN}%�	$��=��V��zR�-��jPNt�aꮔ3h<9xNP˪�,��b
+�+n⚋�	a��M�i._�g~H{|#����'~PZ��@��RZ�
d!_�\�q��N�=\�G�?7����M

+��Pd�"|KW�\��\���_��z�?$�ڸ�,�S����]�k��
����e~���$= ��r�S��3bQc��^#3���W86�ɲ������y&�Rn�y��3h>+���*o����,0��މ�y�'wh'��
vU�5�+���v�� �����N.Z��Q��i���^��t��[x�/ǥ�.�.ǃI�<V
�����y�v�Z���(?s;��F�FS���QO��Bt�=5�P�C��^Q�Ϟ�JN0Ӫ��^,�l�n݉�T�I�����Ħ�$� �_r;&5^Y�k��ɖ0q��ă��sin2o;+��$�E��7��������h%���l
pE�b)9�#ǭ�!���3
]��Ģ#��y�,V\*��ҳ�4t���O��Dj�_�|T����)�,����cx:�n�N�8�vTc;g.���{
~�va�<c��r3��B�0v%p���
�Y��WBkɥ���

�H�����Ujy�	p�
+�F�OM���p�UЀ��]iq�Ki��󇻻і��D?�Ў}]���)��pP��R"�ǫܜ�9!�ǢƠ��YɘR�z�`�I;��Ȇ���+g��
�*�~���W�]vi����?���=��i��m��`�r
���h���Q{����e���|c�M
�s�����M at _]�.��Jo���T�
��SX�ᄀ[���1ޭ����Z����a��Z�<�����
� 
�س��Nn��3Lgb~)g�
�B{�d����i �Aڔ���#7
"-��(�V��H�X����\uv��}�֜HDrQ����B8ϧ�掛��鍳��R����eؤ�b�|r
���'ъ<4����c�%�d�Nv������e@�>&�5g,7�
�t~'�����
~Z��M
�
�6&9G�o��#��F�+�ޤQ��|އ5������Pn\�x~
n�-3����W�YىV�YdE���XBY(b���s�@`�j7�ʢZ�ƂOp�)��
u�zC��ڱ���
+�2��>���)������~L�1(���!4��Y�X���6U4Vބb�N���.S�ӽZv\��_���
 Lo7
U;�м~�{�_Ri*�uO��5����
��Ŭ
]�H���%(�3�Y
���/��0��=�3J{�C{}c��G�WMW���9��`���Ļ�-�5�F��ի��6�
7
.�B6ҡyy7����7rx���i�b�|#
vjn�?j�`K]Q
��L��
�D�l�>Ǯſ�
�I֣��4���0�߀��3ݪ��f�-�g�8.s+����XuT����'~�����7p�=���8w�=v��uJ����������ÅIO�>캠�*w7v>���|�F��
+sH�3���� ��}�����@�
i���X��V�^��+�|�3Me���i*ѩK!<~�vRşq�
~}���Jy�*�F�����H
��4��X,
��[�̂����v'V���h�"y�r_V$�5%
ET�,�#���'
�8�Sz��+��

���2��o4��R�sr���)(�
�zq���aq)�kWގ�A���+#��������!D��WEx��T�;
���l�k�sV���
�/C���Y�
���.�Y�
���*拾���ZأcnX�,jz��la�$49�3��!
�4�F����3k���[�x�&8f����kW(�wϚ
�0:4V$jż�q�
u��gaɍ���O�ø�/��Oꗣ^C+��(��M~
�u�vZG�I+
�-���FO�*����1�࢜�6ʻ+(��/�v��G��������=�d9�w.�a(4z� I��YfǓ�����^-�ό��4��H��ն_\��y�>�����K��P��;a�u�>����O����
+��֎B*{���RZ�P��m�8W�S9q��`��?{=y�*;�TmcB��$
+�9q$o[� ��ߩ�l$�1�ߘ�d��\g�6��6.BB��6�p���O
+��,��eW7]�>hn߬�'�#$�T.tS��� [���n�3�.5"�Iz%�
�fU��G�U at 8�9��Q����)'�,�
+)u�a��{���j�nHF5�.B�]��&�&X��݁&m�[$��g�2�Jª�c#� ��z����W�G���᩟?��@c��Ȗ⟤�L���
�JҬA�J���Z��%�z�
M��[h�
�x�r�-�R��
�FX_�b�g�+ԥ��4���A����i��V��)C��xB�F/kL��U}q������
0�$���й����
˄����Ļ��n0er���;H�Cv�j��H��


1�
-�n���~Zԥj�A��#&�x��W��8��9,������{Лs�[�+
+"P/�^_�'��ї��xL�!��Z4.�+w��\���v6���5��GUu�fs��H~�<�#6�
�U��b4�>1t���Hp���zܸ�EX�T���9���b��&��
+H�5�\z��Z
5k��o�E���t�4J=��Y1
W���B�9���@��>�����kwDIG	�g�ѽ��h��ܩO�ue.ձL��*>9���U
N!	&�3��`jʰ����X����kե�*|��
_=Զm�E��Q��p�~r�����X#�xI�����uZ�÷�
%�]���#Ч�:��v0��1�Pсތ���,��rѕ�qg�����������J&
��jh}�Z�^�}e�N�b�6�Pv~J����$�Y
7�dr_�6uޘ����?��������I
��Xi$�Nץ�����C7�'�n�Ox_�IN���d�[�JF)�K���U���9e�%Ŵ^(s]	%�y
u��K�����Y�|��^d\��c�NL5�xҎ�
C�3&
���o�㊝�J,OZe���<�(���GS�
��� ��g����W��8�Gp���۞�m����f|�5 ��OΤ�'���zd�����
#��h�կ�h��3I���ͽ@�Y�&c��=��
+8ٻR����N�Q5+����^�o��k
Ru�5���aa��W~bڟtk6[M�@��h��{��Seo��7��H�������j��X��.]�
G�Ҭ�7EFO6eP�n�אg2SՉ
5u���g��h�
�h��tk�QM��OkN��ΰ�4dl7,��Z�.auw������L���Ec=-"�nU����:��[�yWoVZV����wQ�-��@$v+]���V�i���7k��e�Cu}��:�;�2�oa�.֯a�k\�=#����D0�8�N�R�yė��hɪV��?��/No7j�s��N��25���-��jI ņ~���$?�0��67M���t���>�U
OMlO���ĝ.Tx�8(^� I�����l�d���
�L�ݟ��^}����p��7[�esb�*�	^\`��R�^�E��2?�ob�3��ߌN�v:�֑��A�;��%k�|�h������1E�;�{C`��ǹD��4]�O�k��]Ph�i��o��3����x1�Q�a�b�rJ��x��̚�����Lٍ¾�t�t������BbL//�\f�>Eafs��xC�9���6((�ܱF�zm�U��Iui%ӕM�H���+��	MNݞV*���u����j]���x�L� [...]
+ux}3Jli���t>�C��_ٍ+@�"�_n5����
+�3;.�V�n;�)B���jeÖM��-�8S�6:�F}�dE%��ZY20�n6�4�kC����Ec��f�7�P��t�wT��6�6w՟]���:�����fr��ۣ�.l�u>ϧ�U�f�?��;��/�a
YqF�v3«
�����E�
�5M��=i�<
�W[̬���$�-=dX(��u�.�����h�N�=�[
+���q��y�`YI�
+(P�((V�"�����
�B��wf6�5�R��cՂ��~��p�bO��0勴�6���E�E-|v�ȌB
�E�-N��
�J�9w-R{´i�6�qy����������{,/���b=�
��Z���A3t��2C�}�������rۨ�-c�*EJ�=�'���46�B�݀�v���r�3@<�73w
]ۡ����΄4��� 4���T�![��� Za�.��O;�{] ��qi�(Nw=ԣY��G%P�&�F��&l>{	�{"��ӫR\�^V���f[�i�Z.��ugY�n:5
���ֹk�#��u
5���d
�tf^�m���:\ɧM�C������mj軒�K�u��rW�t��
�Z�`$ChP��*�'�����t��Nϫ5��?haU
�7���s�� k�y�J5���*�f�C+�_{��O��?��4���� �9#��M���׸[om��b��k��`4nj�m;
��%y�|<�\mx���"^˞�%��/���*!�
w�\V��~i��<�'Mo�h����<��L��������A.
˿1��1h����D
���:oMμG����\�-��q�SyT��G�z�� [...]
B�)����t<����U�oED�_�V�~�	*�\AaG��#�}�gQFK
��Z�V��߶f_���
�����O�7�l�}]Y���]p�
�r7 �	��b�Z�5�⋲ӊF5`�
�r��oMF=�t#�B���\3
p��{�N��c���z/ꆣ|c��������M��� %7Jp�b�a<��:����9
���s�j���D����,D�����U����{�����^�Ӈ��'c�3FEU��
��[h��-Y(�~�y��
+��ŧW)(�[��C9{���ԲF�9��K��z�
����t�5ô����A(�֫T�*w���9
�	�[�K;;�8�`�VP��6��[w_Ba9J�
��*W��Z0e���?��_�-�}	s)�'h2 �� ��v�m(���Pk��>�S�`
+`riv�%j�������:�K�]z��h�S\y�L�v�.
*mzq	�֝�B0XSz�"�?w�J�\�
������b�9�{:nh3�Q�U��[t�w�Z'���j���
�dD� �ѯY�u���MP�7�v
��MɴY�X{y>��
+UlR��%�|:�n��J:ig+J�:��ǒA�`Qo`��2��9�Kl!+Q�j�h,�
'J��I�����?����ˇ���N�3��c��K%�������Q�v�=.�J��
�Agg�����+
�H6��f
[��ѣ�,,���ί[��õ�}1{�@nt�/���t:
+R|I��윐�I#.�jJx�HZay
���&��שH�Y.2�Lp���5*��T��
�
�/�h�Z
+,��
v��Q�
����X�F>L!�+����\e�Hi�f0�Df�u��Sk&IH���g
+��cxW����|���
�
5��W���B-��	Vr_g��xL
��a� �}�eZ����Cn}��6ki��|�B4i2��E�t��K����kA
T����;����
��J��C�/�
�̶�Y�{o���.���[�Q��d����V�`Z�a�<f��RA!}��\8��:����U���;y/�>���l��/��T�b_���2c�@�E���޺�V.�� ݟ�����9������y=��R������$�����;
m�?ߘ����>a�$�ױd�U�m�~�.�
�ь���k�*+���C�Ŵ�o�!�D���fF��d�D���b���*}T@
ogQ��Y�
r�R�&��ĽX
9)�z���[��[�X:�r�0g-s��7C��"������x��S���q�Ms�w�tI_��9
�}�+ae
jh��V��"һ�g]%YFb�ڌ����P$%af�?��sKU�k�
+�EP��9gP�9a������{~��M������%'�W��fi���(u�[y0ب�-�*:�e�Bu
�;IKn���oS0���>AyM6'��҈�T[V��N�J�(�4����i����_W�gopYG�<��4���ߜ۠}��D:dR$��ر�b��\ܠ۱ě9�G�iɷ�œD����j�qM@Q�c	u��q4n�{�Si�1���
��Bo2�
<Z�]���|��j
^�v	
V�j}=�U��3o9
ұ�6���"w}�n|��	J0��U[��
�Ԫ�w�U�@�W�\�q�\M&�q�����Lj��DN�G�]Bi��%��J:
���k�
ԳN����cQ����ʈ(5���o0��g�x��"��>�H�_���G�r#�� )����5*�L_-�7^����3A��Z�W���U�/�v���~P�Y�"ެCG[�E��v�4�Hm���&{�h=��ͺ����r�ܿh����e�����\X>�<�
+�P���lP�&�r��
�O''e��:_muS
+E�@�?�؜o���GR�=���TϳY�9AĻ�XS#)B�j�3>0�T��-�|����{]H�(����\#��F������D�PNΪ�
�"���6?6$�
Ɨ�|���dh��W�꩟�X.�M�"
+7ɵ{}����ղ�f��u���R��ã��U_+		c�����|^P&%��{k��Ĺ�l���?
+K
���ʥ;$��<^i���X�B^��<�VBSx\�T*�u?�
+���<D�Ǫ�v%�h�<�4� ���#hL6٢:�y���

O{�J�ζJ��!�4�
��k�U�k��@^Z��b�%)�� 
݃��MP@
���
��b$V*���\��q�U��zs�8)�S$flO�/]��Mo��
��x#�_���u7�}c����g��b�]ƿ�m
����<��� �9	�l9c�_��x��2v
LM=w��}�$B��|*��]ſKsR0�#���I5�V.���L �p at y�oW��)���0Q�D6"�f.;,�SCOFq���X�HU�)��d#��eǵT��K�E{���'u�i8[f� ��\M�E�P�e�,�t��Az�h`ܨX��%
�i<ԫ�Jz���jw��n����e�π�f8��ˢc�בd1q�b��L�5�v�޹��F^=Oڍ;�LVx?c��O��q�=��IJ뭗����z�ti��9�^�M�����َ���n��m���Eq
��~(��H�t����L��J�4�|�
7s��ƭX�{?�Wg��ڐ���#IWe�c����3���D[��X�
�+��j���
�`VS|�~L5�^U�Ѻ1wY����:iz��M-[��n#���uwY:��a���� [...]
+�ę܏�Ѯ��5
v#iP�@��^1
���|J׳C��
�0^W�� ?s\��)����ڜ�<[/m�����Џi�����
v�12ؒ&�o^9�ff�)y��rG�]�v�����T�j��.��?3�?Pl�
/�ɷ��H��R����4���t�!�Б�u��:
�5o�&��h7{���!��*AUƏ[qA�tN\�3��/ĜS3gJ���
��>�(���ÃN���Wz��*�&�
�y��Jk��x|�S��
+�(D�
9_�p'�<�(�6��+�8��y��	�
�9��z��$
+��Q4R�	m�?.�N�
M�v���h��>"�CLJk��v==Vj�\�P/��Ҳb*/�η,��
����2^�g�`��q-�
���vk��Z�a0�tӴ	�~���
8
��(<��s*:�8_��2�.p��)�ZC�1���vc����5g�f��!��}���\�m��7�8���=�s[Y���<:v��YA�!���t`�%[����b�ܹ=^�����Tp9���&��}I�
�� ��h ,=�AV%����xY�
+�W����w?l%�Ƹ�\�BW�º]{���6����u���
��lfky�>������AA������0z�%qL�"�}����+�����ޓq��:B���}p�\Jia\ˍ��/
Z�]Z���ӶB�d��\#Ok#!h�����Pi��u��{p�>zݑb�0�^�m���.��*-�`�k���U<�ļ%����R
+ui��(��������(����%���1�A�
+i#ld{���V~��O,^zJߨ��o�n��Wh�
H������2
���+���P�V���?
�m�(_Њ�
�ͫS�x��e,�]�Q��DNu�:)������U.0y{Úmkn�c��Rx�����麽�$�1|�k���|0'����G|n��
?��ZL}Ҹ�=����nX�L�T{��N ?��iQN�ʓ
+~����5H�W!h$\��Y�/���0�z��ݢÀz��4r�B��,.\�@���a���2� ؇(i
e����$a~W��Ӟ���:c�{��$��NgRm�NG ��y
�
*%�qܤ*Ԣ� ����N����A�!4�q����T�t'
���?�f���s��Q3��ҩ�N`���+��N���'jN�l�W�}]'�O�J!֖�4��_ ��T垘h�=�ޟ2���(�(�w39����	�? X��sy�,-���AY�������`�����Ÿ#߰=<��9�hY6`
����
�5�D�3����i��L�4@���
��򩶨A��t�B;���e:h��I
h�s1�j��*�����<ݝézV�'�
�=�lɥME,.�ݱ`�l�ˋ��6�,V]Vۯ��/�t9�ʖ�
{�P�;w
+�[bm{�؇��F���[�}>�d-7��
�������B��8r'��jG�?��қwn�
��Ƃ��ѥ%(�+�[*6��ݠӯ�&��c!�Էv��K��3�� 
�lp

{�D�u]ds�k6�}�{޶P��V
�_�=��97�9����^
��T
�by�UKǧ������o
~1���s�P��R[�ſ@��)ʯ"�)LO�dJ�R�T��	m����0�
N'ɴ
T��I���,��@+�B�f�D��fL�u�
�u+�^��$o��⬼��]�X}��C�e%���_(�KKVʷP|�O��/�P��~�9��Y�[^9��B
��.�<> e7$���#�@��`z�;��U�:��Ix�����g�y�h
�Ԝj�o�l��@Ԛ�ػ�}�;^{e�/��iw
H���
��etH°��̐>�0�8s��
�:�=8�[zt��ߚ����4u;�1�������ws���`�q��
+�߭ybT#E�畨"�������
F�{�E��s(��%
C4v�ug2V}g
Qsƶ+��p7Ǚ����_�9c���4�L�A�<G�����
0a�����T��*T�ݬr�e��|��\�e�y!7�|�f��_)�f�� q��
�^��`����*���Ϊ���ܘ�@gZ��:m�͗�z:�;mq-t���m��UI���H�]�ɐgAn�'Z�u���<�:�\^��:gu���K|�2!5�u��"�
+Hc������%�2�"�qì�q�6��R���[N�b�����ljK
�
�VZV�为o�����L����~���嵫
+h��t��K
����e?��m��>�S*@���n�o
9j�t�e՜�W� a�`�X�ؒ	*�tS�ݾ���u���~W>�C���~��0;��N�
^]9,-D�ܦ8~,8'��� Z[�I��6�-����ʼn�f{�W�~�+-⬎MJ���x&�������e�ZΤݛ
�
� �܉
b�~1�R{x
��	fcr�4Ɗ�2��nq�D]}?�7O
+����F}辱wY,ހ\x���"��̾~��'�C+gJ\e�>����J�4y��ws��a�&^W��Q��Kvt7����g�N�x�����+��� �ː��Õ�ИHM�BMx�LA�R�u�AA�+��W��̙
���
�R-<�f������|
o�ȃ����n2��F
�~*w?
D�`�+��#U��m]&��."�H\�(
�#���g{���x'�
�@
�]9H#w��ۣ�@3��2��aaU��|02���:#�ر��,n
��j��ז��X�-jc�v�;\�~���
y8���Y4W�r���pH
Z�g�ЌNCZ�d��a�6!�N�vs��F/~�efBq�;�=��Biv9b;�s�y�{E8=�_Ǚ�G
T
��b��
��(
+⫳{qi��ͣB���e4��w+��;�md+�fʅ��Zo���^t���@��u�Д:��x#�G�1LEg���S�5|}�OD���p)`�����>
 ��Cl�
�/�$�S���-�zѧ�=�G
�R
�a8�N���� �
�U,CqR`�]�
�J����Zb��
+�f�MyT�;�V��Y�pbiB���>ʎ�N���2Nm�-ɼ-��U�� ���16J��V�x!Z�	�=AQq5�;V,��%�RI����$�y御ab��T)R>_	�ycD��2���
���my�s�sr�?���}Y��YA
O��ܰ�B[���z~cR���SN��^Pg���2a"�3f�c��
��@�ǗH�|'�P(?v����D���#+Xӷ�
gZ�;T��IM1�j��
C���{�/h�L��+v�]�F����|L	���`
h$��s�R/ЛcKc��B���3����x�ԓ6Ǔ+7�8dk��R���	w���Ş2L6w��qcof�x�����G5���D"
cn��o�
��4)�fU��.<vor���� =�U���Q6��k},
O��6* �x-�1��
%�t
��@�KR0P���T.R�/p�К^�8��W� T���y��y����t'�S�ʟ��&�Ơ̧	Oc����ɐ{^@������r0,�=I�(��"
�^G�W�hG.����
=�,2q�@T~�俺DD#�O'�����J��֡��˸4����P�ήh��t�=a��hx����F�Ѳ:�t���*Mpj��Ǚ��(�l����؋v�$
�R�YZ�!�yM�m��&8�=<E�����V�v���(\A���g4c qp���������伯5���V�u\�FZ�6N͐�H�,���_��\��ܵv%_�Il�N�xN���cQ �͗!�CS��>6$5:��UE���(������/��m&��1��Pŧ����q���_9RH�{Ѹ?Ԯ��:"�?�Q �U��������rfX��,�����5��+�ں��+7#��z����?�r� �]+	�M��$���(��n;��ҵG픴ۮ�6�.yK��*St^���s�
�ȗ��H5gJz�_�ʦO��_(�fx��>Q
�N��Z�U�;��w��Z�9��mC��q�]b
݀���ؒ���9%|����~���ʫ�bF�L���ABea���VY��� �ٽ3b��@�G [...]
+����'̗K��F�ȐU�* �T|�������1f@�C�?��Y
��g�]���I�����
�� ����^OX����Eś� �
bL�_�w��?D���vc�
���V���`/)b(��ծ��������gي9��*
]��>׷��äK�@
�S9����qL���8�z4z6|��]Щ:����ĥR�������j7��i��"f���C��·k��džn��ʵ/��g:{bhF\QOo�)fډ���-w`��u��,�VR�]4?i��?ֺ�=,~F at G���R���A�}�e���_�0��{^S�o�J?�|�jۏ��y��� t��a��pN�P�N���9ޓld?�T�7#�P
��=A�I9xǤ�n�~l�����w2a���9G�
�$h�
o_����L_$�2aC¨�,���x�F�
����<XRq>��%��[��UɾH�=�wXz����T}��6ɽ�Q
������:]M�1��k�
s��\
��}o%�@LD�{�yG��Wux�5��-�ƺ���ڎ�����E�e���d\�Mt���Xߞɏ��w����eU�*�+��=/aל�=�lXK&.+���`�Q�Z�r{a�~���Oco�k��B<T>`�,qX���E��{�q�2��Z8��|=��U(�j����8��9/IV�m�א)c-�;]ԇ���,��X�����Q��xn��A�l͹ŵ�驣��
��t�Ӹ�ۏ&�qeB�A����KN�,
~���>A��/��>�� (�U���QsȺAk9ۛŭBv��&�)m(�YV��А�f�/��!
t��
+�P�r?o� �'.�~
R��O><��8�Q�����.O<`Jw~�T��(8�- �.�a��q�c	4n��`
�b�QmG�OC�
+�n�$��U�=���R����²o�8�^�lj4�x�~(�`,ޤ���ݺ�w���� A9�sI��'��5�~}ԯ�o���#@�ϻ��h��q�Vi3nKS�q8���Sg[Vy&&��7��^[�\Nj�ω
�Ջ�N
�
���ˍ4߶
�����sɹ��_
+k{���Pv�����4e��
���>�+�J5k_r0g�k7f����$��(_�Q��7��z ����
�	����&Mz��
��>�quK  Ѷ,��oycu���b8��dS�<k��[���+j��[oJ/�׍�N��|�EuՄo؇r
�ϫ�����S������&���!��s��xM-���������U��w�ީ~�l`| hN�4�M���5�Y�$��1z
cy��G7�����f\�Uم"p� �y0��sV�~
���Z�o��D�^����}�'�S��'9w}P�z��=��]
4�gw�<��`���?(R%ޕOfP�BՕ���etS=��k��#��7]6�H�[�� �c��
q�ϯ�wK���f�?@DU��Z*'��2�j�{B����v}_�P�}�H�E p'b��? � :Mx��'�z�Va1�ި�v��9]��w7�G,�oWl�>n�+��I�#:,L^OB?�
��V���:��m8л��,�3�)x�x�*ov�ՓEan�����Ю��г#ص�	J��
���gj��
���ibjĚk${����@���TZ�\�*a}����:�e����4�J�Y�>���ྯ�S�91\��;����c�g�
o6Cѱuy�Ԍ����ˠЮP��_��7�����Z6u���PDΒ֜4~_0|]���z
S�+͆?���U�k��O٦�5w�4I�C��Jy�飚���%���K��QB���q���8�-�}D�o��iҲ{���a�؝K��,o�+�)����i��-!�Yu"wF��Z�X�Q�Zo^
�h����T�e��R!���ڶ [...]
s�7��f��G�`��G+�

{�0
;�)~a��ҫf�����*��? ��x�|c�w
+u{5;
b>��H�j7�F_��k��_N���u��J������������
�̺$�`�
)�!���E �_`&SM�~�4h��
+�!�
e�;e[�1�L(p
hnj; (1s3��ʆ$�U9�q<v
������]����>]e	���J
���ii�\d*}~�nE�
�BT_p ~�B�����E�H���@CEݠ%�<�D\�F咽�H��d�Зo?�.��\*�
�q;����9�� ��F�(��MTv�^��֑�-��~q�Un�w60a�
���5�37���VɰW�?�ϧ{#����xaa?[�_���y�U�4�����b��n�rI]��̬�>j��6�Ȇ��"��p4����b%^A�Y�Z
]�@
q�}���zyp�)C�\h��YX؇`�`��r&�����qz�r
����t at n�e�{�b%�p��XTu��"LDd?��S:��[3
ww�YV�}h��ց�l���v�S��v�5
�*�m�Ġ�O�ݦ�s8v��%	#Y���q�7����b�
1��?b���Fm���j���Jx}���#{�J����o��h
�^�E�q�ˍ���JN��4��V��u�As�����G�0�GO���@���Xۏ�
n8�wN$>���+5�/�
ki
1վ�m}+�2�?EjLvD�d��u�(�1��.D����y��~(LF�A��G7r��
�tv�$�>��R���]QJ��1��KQB7u��Cnam�p#
����� �yHd�
�⢉Fm$ʂ|\y?3��g|/�FJI��j�Cמ�4x����is�p'r����(h#�#"���>EDʮnF�T�lb?��^Ō]��r8�"�.��y��Q��E�:�����ש�
Z�
!l;
u��=
i���E՗�†�x�������-or���R�{a����#!��%k�3D2���k;6+��S1��#�-j#���
+5�uZ�5�Dt,.��8۾|���~��|��v㢑|�|

7!��U{�2j�:�ĠC����9�d!.�tB5�sA���A	����ݪ�
�*�)t�%�#�ρ2����������=�Pcr�o�вh�RElfI���yQR���^�+��nZr�!�)
�cU�!�L
"
+���z��ǎ)�ж,ig�ˁtRZM�ƫny��l��[�v=>2!���7���*4�`�M�	��a�ti�?�o]F��2Ӫ
�³�B�z�>�w��� 1�V���VXy`������
W�i��	�T\��IZ�tE%3V=Y&�� 
�a�n!{���O?���
��"���W�f�P-Y�B��-���ڔ��;/�+ܓ�ڏA\ZU��p���m���~��p���~u��������DW$�!
�=rx��@�1�3�E�c��9�vǣ�ߞt1�iW��Z�z��xZ�GE at y���iȦR4ŅIj?����qx����6_�����.h�
7%�zO	���ՠ"�0O��N�F#z�n����RI�D�e&������L� �D�
� ��~���w�q��6�����:Iؾ8��
��I��&�C�b%ma+u����!�gAA��,Z�
9��cL�'��6
̥�BſP�W/�d�$�K;l�8��FujE
}�
�p�ݹh�u��g�S��6^C�\x�����������
;�{�WU�k�ܣp
�"TP�F_DaS*��w�W܊�5]��]+��[�
�1^�
XqS�-�V�L*\YY�E�Z
C��?�E�ڃ���j��I
]E}�7`U�4o�{$;�q;S���R��_���ǀ�H�
��D���n�N�EQ�K��+���w"�1�����G2$e��crm
�zax�ɓj�BҊi��(H�g��L
���9�����siw~���`��Fn��
��nҜ���� �2S�
��gjq_�#�V���C�i��k���NK��D�H��3N���Hٚi�ӱn
�T��L�
+���-��?�v�+?ox�
]��
�9�1���Sf��v/gH�I��c��LA�$=�A�*
����/��|�R(��f$���W�I�tr!`�Ա�
�&��������
�����>6ΧqA5�`���b�J���{�.�b��
�>2��Y?ES�� ��:���(��Oߔg�5W(k��|�'!!�0�
KO!���
�	��|�=f^�;�ʋ�GM��;���M�
+�ūxW��y(v[8���>BӋb&�*f^���!ro�$?e/z�,� [A���w���؝B\�V��ͺ��l ����]�4M[
O4���<
��5El�;m�m��y��[ ݱҍQD���R[.W�uX��M}OfD�ڑ։U�;+���sh���ש7:�
+k6`>PטV�9���f�QCt��J
+rcp~T��K��
!��{�d��7�H���	�
Y����U�M�)T)����TUon{r=
,��5�q��y���-1������c㭮���ܨȽ���M��|el2�HB�Q��[����&07 ����������CD-��/�c:x-^3�7z�[�
���\�N+�^SOV�<cI�v���#���߅�
��袟
\E�ټ)�̬ ���4Tm
+
�ܞ-^8B�M
Dk�uH���y�j}�\�
�D�+�
�ZӖ12:$uX]x�t�yju:a�<
+�<nZ�U.U�Z
�i
�L�jV�^'�V6K�M��"���L�
L-���x\���_�T��RO:!&2��箽H�=���j�[rc_h�A?�������
+u:C.�ʧG�fl�IT�u�ǼZB�������D�W��l6z��\q5��S�

������p���{R?����K�ѿ���LRF�%�tPG!�J]�_���Ed}�e��M�[0�W]1G���c�R]��:p�� �M���3�+�����`
�EV���b�_�g�+�E�55��~��iF�Ͼp5i���q��׎d��Njn]���
��Lg���]��
g��gn��Pq�ptJ�w�t�p~�����3
:�fQ��e�(�<�*>�\��_6�s3If��{��Ze+9����4r�/`�~�׌�ͮ��
2Y�WL��{�m���m�Ak�.r�<�\�)W�~b�ҽr�s���K�"�]�%. �>k���q�(uu灗H��3$�@��
Qkt
'>C�m��3�g{�^l��R}��y����axf́�톮�R�D�Rt��tk�n����%%f�_�//���lg5oy�?�'�j��
{�km 7����AI���J=g}��zd5��?(��YmK3�Tʞ�����.��
*�ٳie"�i�Ḯ6i��4�o���U���N�	�*�zOX��K���H?N:8K���V{�)�5!}
yg�jFy�vs`άf��2G�;��w�
�%b:Hٰ��};,�'x����J�z�/��xk�Y�
+�W��6P�֞��"�3�;�ϪjR� ����yo-�w�z��Xٞ���ҫn��au杓1��ѷ}�Q˻��a���%T=��K�d�/�޼g���Hq��:�^��šƵf�c����HJ9bB��o	 W��a-���u�uO�
 =�����|��6�}l��w�_T7��N�F���c��KgJH���8��`�R I��6<�o�� �w~���/f���ұ�����!ӭ�m0{'۫�?BFx�֟�¬�������H2�r�5����A����#�6��2���>K��
Ѣ���R�o��%sg��y��������_n�

]>�v7�y�1����J������]��#+h��v��I��4TP6{	��B���g�</e
�7O#�j�V��
+9�X�� h�#T
z˄;�9?\o=�����L�1"���N��5������SWc�F[�?�F�O��ߟ^[<P�O��jW�����Rn��#� 3�Z����^M��\\�k
�Ń��56T�ʗ_q�k�G��^�:��t��*y�p*c���w��M^M��O��q�a._�)�j �ϋq�U=�:�����=�]��Z
+�i]����h�w
�d�P}��Qg$�i�'�N��.�_(#�����̒+yl'[f��Sc����=�P�����,"Ruƙ�U���ÿ�"Ni�-����Î���k��O��'.F���j�Gʟ'�
�/�'JV[E��_B0j�IEX����d1(T?
Q���0���	� 1Dd-܍��,������������X�_(8łҶ$��{��˲ֹ�պL�~
V��j�9#�dNX��3C�b��K�fpY�E�<�o������a7��
O_7�uYP�D�a���8UM��{���X9ų�3�=1ur�uY9.C�Dڝ����>q�򬄉��Vo�
+��
޽s�k�l���
+�Kբ�2`;
�F�]S+�ˁp�ޚ�zwkb���y_�^���mtB۝.�
�M����`y�����π�v�/ٚ�`�٬e5��IV����U�?�t������=9

�#�Vo�����:}���V�k��i�e/���? ���3>A����e�5=YB ?{ts�9�ݕ�f�Ϻ�\��B�4�����I��AN&FX�p��U��Lj�b_��&�>4���0q�.]��
�K����s�
X�K	�
e�O.w7���<ޟŗ ���M�Gd>*�`��[��{��ī5��1��O�|��g���xOsġ�lV_��r���m����R�{��
:�U���^[�
+� &�U�A�m��m����	͵��(����Gmh�� u�>��h�9���z���g�`j�B��)p%HShse8f�YAo��~�@5}#w� ���Ã��
�ibwf�,�n�@I���x
+l�^�0]h"#{eX#�Zf�E�\�֧����~�gQ��Ï�B˓Qt��\Q�f�3��}Y�j�
�n�����W��	;&�I�s�A,k�b��o<B��c���6[�z��^�	m��R��'���y�\�JiQ﷨27u'3�S�:Զ��c&���G%��fבp����2..dC�\E[�W�`��{�T�{�DƒD��}q��-��8q��xk�T��E����cx�)Rk�,���Sr
�� H�O�όwי
ԩ��>Քi�*u��R�B�3t�=��.	��F�v!�R�,ݮ��:�]�.ݖS�3����ء��dyo�z\�-铴\*0:��럺��2R��$��y�-��dU>z͢T��q2Լz^Ck�ęO4�}/p9#�0�J�f=�|�N� �MI�j�-	�x��c ��̓��4^���B\��
�g����v�4�W��`Gu%���u��CB���R#�<z�E
+�)��9�����;2���P6���
�e��b�����w����yBǩ:km}��R����Q���<�o�#R�O���l�a��Fv�}��9�I�us��:�~�xj��鏐�ޱ
�^��q�

+�
+���
���`�[J����K��I���ѱ�p)H���{�~�2��-(��I~/*�gz6��q�jTw\Y�F�20ր�O*|�od�|������B���e�IX�
�buڰx��Z�s:���4���m��H���ݴ��[���� ��+�p�_��"�%Ή��-ac8�0�e~�ͩ�&�]t-Lh?
ձ$!������w�N��wN\ڊ�*���ݳ���7[�)���޲�|AK�
�r����[���?҅R1ռ��[��-�
�aF�VZ�A�gE�"����^z_M�����@��z�	5�^{�
�a���k�h];�1�(7�g�=��џ5�<�\����
+Mm[��I��=�W�9b�=����W~=<C�جv���?g��ȚԭVx&���pH�.�x�6��O�e}d� �I4<��^��b���8������5֫��؇AX�u����
+��h�+*b�+��Lަ�O�
�-vQ�X��,a��1���k>P�Mx��
�$��ӫ;�;�A-ʣ�T������9=3��V|�:�K|�zh�`��U�����;��^�V�����\�^!�X�-�S4e��D�S�y�V��.V�z��T(łx[��B��$)�am+~�+�.�c�?s_Er���i�6/\敥
>�y��%��VE�1���Ƹ)fEi�3jY7�M�k1�=GڢU�>��~Q���2*5���d}Ֆ�ʲ��GȲL�
�l13���^��_yWw��}�5F�eFF�932��&�.��x�
TE*Z�c{r2��W�2��
�^x6֚TulCnDc �6w���=�=�C�W�j�����}� ��-Mu�G];�O�}�������1��]�(Tf�G_����s���ZH
}y��KD�˨^��C�F�a��׳D�t��H
+��z���nk�&lP�
~S�td����R�����J7 ^<Ե��磚��h�

3�6m�L*��ы�u�y�c�����ӵn���߉?*kEꛟB��z���t<%��&5"����r�ƺ���TNh��U�3��o����|!t�U�`Qk�[��Jn�6rmm՝ݠ�#

�+�|��
�Sk�WhO{��PԔ����^{Ӕgc��d
�[q_�%j;�s���=c��o�rJ�RKȁ�
�
͵h=� .O��^}�[�F
+��<���=�����5|���
Zճ�޿��j���*
�޿�e���� �%n,OF*��
	{����,Wٹ��4W�:=�MV~�z�����<���8�8�#��Յ�O|�{� )��mk+X�a����d����53�����'��P6tn���&6��\�u�
3������1�<;�G[1�*���0��Yo��`����ͨ�ݢ���D�}i>��˴ntq��l‹������n��.
�{`
�u*a��`�\rc�!]�|��
�14]�����`t&#z�v�V.��A#�1�$t=e@�c �-US��4jd�� m�
�^
1�0���Ǟ
5���$���o
�q��x$)W��
+��)��gg�Pz������w)֖��${�g��Ρ
t}n� j��.�!p��׼D��B���e~
A
o�ȑa��m����S*#VAQ�E��8��L�Μ����yL�Z�@yus�;�����[{7~(F�F_m7w��}u��y�2^)��?ꚾ��٬�neh��udm��8_:OcIChY7���8���Q��c��W�VΛ�MS�	���ǀD���;�^+��h�R�Y��t�pݭU|f�OKp����g-'���:� �KU�~��W^>�\��^���}
��x���
+�N���V�M��2_0�c;�$}w�
�˶�-<�}S �V�m�|�r�{���i��
����w[�mm��Z��6q@<T
�_P�d
s�x}<�����+�Y��~Y��4��d�f	���qW���*���\@֕��T�e��}���	O@�N�u��+�a�&��`m
�����
�:�F�9l�*N��R���:=��'�!)��;���
+�Q�+
g��7�֋/Y
�a��Y\��
U��
�l�pN��Z7�;9�*@p)#}�_�jJp&�����ߚ=��?�`��#��(���l+5Ry��J ����yduՋH���bx��DgYL�{�
k���̱F`v� U��6��
޷m�?�b4ߛL�R�}_�����%_�`n.Ɲ��%y� Ecl~�~
+W2.Ɛ6�0kb���>�6|̢L�0�:���
f��>/�N�u��>=���
��#�M^8��k�y��
�)A��`��n�$;�Ve���sNa�_�@n��M����}���ly�[^m����J��w*���{����mW�?��1�B{ᒏ��I�J�z��*e>���g�g!�r#�jŸAy�0��5w���_u�u��QziW�
+����'��@�Sr�dJ6��
�aKs�������J�TW�k��H�KȞc�ֽ�;��'E{��nQI�YMN�N�+���J��vK��U�����SH�T��6_=��*ȸ�D%�x�$e ��7m�ȶ�$I�� �ܕ乾8:������'��ܔx�+������r)눿�H��eU]U2
���,.a�o��h�*�?�i�j}3W�Ex�ݠ�!a�^k��D��>T�˺�]���#��
��0��:��h�a1����D*�ަQ����6{	v��U�
f�pt�e|ǔ�������I�����=c!��*RɅ�Z��Rv�:���ZU���L���� r�C������əJ�,LgL�Q@��".a�e��g��M�`���r�xe��b28R�y	o�#��]C��܅~���
+lz�]E�-�)�N9��2�1�[B������L��
��eb.�2A*�����u~Ae��<���y�ȤN���Ɛy�
�O����"
+�Δ^�R�}��M�4��{�+@a��#�&'�#���/�WW=��>%[x��a�p� �ǽ�H�����}�͗z(��s3M�ǟ���u�`~
��I"�V��\?�����:��/� �����
�
a2�xg������n<��
>����;���
U�q2�}���馪N����m+%h>���bB��c�/q����2��׶N�ю
O��e��q�0r���.}�3*��iA1:T����pٳr��Z}r�I�n�z�xZ3j뗩��l�'��2��	���G~���kr���.�Գ�H�eq���n+Obp��s�:���p�X�)[����^To����`�}�Z��V�;
ܸ�)$��\���w�dяOf��&���.
8����oCf�a!y"Ij����*���i��ՌYTޯ7�ǣ@�c� To�:ܮN����O�U��+����C�=Ϊ)�kP�Vρ<.

�K���7�Xo$#��*߾��΋�^?n]l�
�?s���Ղ\����F~Sқʏ�%Q:�����WhZ����3���pa���2Zd��]+f�wG�淭Rݰ�p��J�K�![
�w9��qE��rޙ��`���6X�3N�
��y���^�\7`kF8����;2P*f��0�:�=p��isZ�y�X�gq,�^�ˇ�-��9+��5�&k�<��
+==�g�U�`[@�
�EB������	�
R��
+d�Yگڽ}n��śq���v�W���4��������j�%h�\�
ק�˝Gy!��R���Eg_�����0��8�
+]�&���/�W��8t�r��n���+�5�4�v��b�����ÍZi���>*N�(�3�b�X>O��;߉�HBx�_�b��8
+���GT�+�g�s�����6�7�	:U�@ҋ�@�y	�������'x�:�#2�
�
��E��P����,A��Ӯ7̳���$��nol�Z�7��g\I͔�dy�@�y�i�>+�

�oi
��
V�
�)Su��[|�A:.��V�og�|��
+�E�K�U�b[Uq����]G��܆Y`��DZW�
!#j���!����{H�y�+ ���F򽯔�h�0.�QS���Rs�SD�~�1��sK��Ó�чpkE�Wn���D),�;�&&�^ �k
+a�՛<6m�	��t����������|k��Z)�������n=磧ƽ\�?�6�i���4�����{lc��<ˉY7�r�_/vY1���%G��X�G>	�ã��۩T��2<��ݫ�l�G�qV���j���
	 *����4�
$�
�Da�N�=Y͘��E�[�q6�셞�
�݊k�%
e+�F\�T�ʯ|݋@�
�*��&c�9
bļ��Jh�m�Bt�s��Y9fe޷[�x�I����
f�.'�6���
+��=�uѶ���aA��1��iKy�Z��
��ی6Z�ԋd	\�:��z��Э
+R��LLf�R? j�(�I��(����
+��f��yn4�MW\;o5 V*;�9E�K-
M/5�
��ɀ��.ȭ���.߄��n�+}�U��^��֐�U�ݲ��A|�L7��v3ȭz+��"6v:��A�
+
�i�F�(�Ō��G��GBu+O����a��^9��T}n��� D��?��N��RH��mO����〄+ǫ��8�%�������fNiAV�L

+���
+^�a���}�,����~A�x|xh��T��kgJ���C�/�dw'e�(մ�䜌<<�YR�{hW��*�V��5��u\2j��j��xϹ IJ��Dz���®X�t\��(FR==�um���h�>�؜u 6\�󖈷��~���`��/��:FU��'u1kɟ�_�u��
1��
�K�Q�3|W�dI��E
��T
�q��ь<��w�ƹ�1Ϯ4�͒�%t�į�
!U�|����~�/�V����
2I����'�gU>o�G��ğq(�C�����
��
rW��"6�2ݐ��K$5����ʚ�F �����U�A�����s3��/H�|��N��R	�HI�
�����=���mA7*a��Լ�]���X�O�B��O%�!5C{?
+ڜek*C�ۼ
��z�Ѥ��(����-�|ډ�
2继�gx��^s ���%�_�o�:,Ϧϙپ�/��>U\�R����i���o��&���^��Ss������'��w�׽(o�ĭ����ݼ�rpS/����TJ0��)̂�
+r[}>ioaÎԾ�u��g����~�
��,&{y�C)�kB�d�7�9�:��O��	(��'b:~xA!y)ޤ�W�9^�
�����vuE�V��O��/��G%o�
ҳ̈��`mP�@����8�RZ�m�,���`vIh�Z��lR
��sT)
��fo������ȵ�Z�Y�q�i�m$��̮�B%�}�=����8�H�ݴaw硐35� u�}đ5�
+�<.�Lk��
�*�����d[�x����hg1~�Y�9C����
��?Uv�xK�w�g�tw���'pnt�i�LT�i�n֠}�.йV��t��4g��}-�ο^R��N=Rσ�+�s)l�gF�q]5����f�Z���%#�#��Y���Mܬ�o��&�QYCK;N��m
�E^{"�>S4�9LS� ���/3m<�z�)<r�꺶*#'����o�]�!�W��O_���`Ӯj�V��, �Ė��A/�p��B�hkY82{S��	������������it��IIA�5O�����Z�\��x��q�|�^��l���!n��E*�)��a�/���߉[Gm?'2�_�
_
�6�)�30�y��U9�=�z�W�MJ�_~�]~FEs�,*�
���x
7��U�x���
�
+��%R�b���2,�����O?7d=�Pr�7�����*�u�.�K#���YG
�u���[,��GI�m/n
H�O�p����
�R
<��
�
�mUɽ�Ri%ٲ�#tx���㚞�e����&�r�� k��bO%���͏]ivWIt��.��H!#��C����qK
+��RP�������J����^����Ԕ�-Ŷ� ���y-䄗5�De���7.�l�
�?���2��龍�&�')v1u�ı�F����1�m�T�i�l�Y�i�.,;�nlj��ֿ,>�UךEé�>„�7,^�"���
�����J`6Ϸ

+��Ck��\L{������O�c��ΈJKF�R
2c�bf�2��FL>0
pQ�I&��1��na�������k����s
��HwY
c���4Zҋ�ɭ���B&���Kҳkhbl����2_�֣p�]-F���!����L3��t#�Aϳ���n�
]r�~�m���� �1�'b���r���������p�o��eV��<��{,�����4���b�I��6�>�K���E����'7i����^�+f��a7_֭^�+�XA����?��
��=���ȝr^�PK���g�A�W����X=�y�$<g�~��$�?[Kb�y��/�n��gq�*�-\U�s���b�i�ց]�mD���$z�=�>
�,�;7�5�UGG6�ี�
��QI_��x�w�����(5�e6�suW��
�Q>26�,�ZB��]GM���T�6���@<�����<(�}�&x
��+�x����
mW��a�
�ed{�F�6�He\�dIp:ݿlJ����8���(�
�����h���
+KZ��"��?��K�=�v����l�Uwp]��θ�V;�
j�0eIẔ�d���+�ݷ��C±Y�����De��b��A����R��!
f�hf
�_P� �qS[��L�ޣ�@v�EN���?�,9��
����
+�cH D�5����j�g֝E�
M�<� ��rœ����3
���#�?��z��[�1�m��H� :�OM��_dV�^�Q�@$��m/w;�m�Y�.���B�1�[
��1Ķ���f#F���])Q h���oƞ��
C\e#Nㆣ���������Y�.]�1���;�6x_�M��Z��j�V��
�ǜ^$vD�*�}�
�]"��O�?��H:ho���8�hR1
ew���fU�jN��U2{{�
endstream
endobj
31 0 obj
<</Length 65536>>stream
+1+����X��[�v����3C��=��$���F3�HR�5�~�
��Y�����&���D`���6���?�D�����I!
=��r{д��a.J��k8v��%���ٷ��#|�po���)���r5-���u����="3v]x������y�"����r
g�I�?
��
+
l���Xz��K%iG�B_
v�f��o����r���m"\�?KGg��"�4���[��.��B#D�:Ж^:\Q�2��nj��~�n�o�)3�7�n���A~(VS��܈aa8+���<��
u"`)�	�B=�.f,�k�
��OɌU���Y�b�WN�a�؀
�-�*�~O at X�
�
+�w���w΄���5r�C at 7^�f�i5qn���#o[����ԩd�2f>�-8-��z��x�G��MY^m�:f+ѥ�V등]ЍFn9�*u�q]O�O���W��/�\R��S�����zM���&I����E���+�s��������f�t�h���!�����b�C�kH
��x��
�\	MG�A%� ʶ���A��~cQ_��ӿ?l�܄���GYDtg�c
+��@���
O�s�j`gp�!D�U2���
��`�e�f����ܫ;�
��r�
�
+�C���2s�D�/ԥi{��\�b���Z���:�n�P����4��N00eM��o�
�g��_r�+%{=��~PD�a�
ƛR�4�W�y6[G���LB+�RI)��	�Sb}�Z|ԯy�ZL��!K��" hkfҸBcI{
qYx���
]x�nĵqH�L��;�����
QaU��:o�ʜΣ7�
ǔA� �/;�v���L�N~t�9�kq����פg���/O3BF�_Ӫr|��]
���
ڢ\��\���n�B�؂Q���ES�;���ȏ-(C��8��C0=�撎2e
�SN�S:P��K>�c�0�F6�(�m�waYm��)jZ�D�n�uCu�͈�Q�Ӹ֌��Ѐ��ī������������D
�=��,*by��)���4;M$�K�w�$�F�	��=`�m�^�����T�����H:�
�
M�0ْIn�쒞 '��-_������@�ߨ.��R���{'�I
\:A�h
+5`��6��J݈>���W����
"�nXm�o��$�EV��p�Dc��|v�o#2\ԟw�
+ON��hc���_��\�Q)(
�᧮LO�����z��>�;w���V�قԏ�Ε�����_wr)Z��dy���I��2�!�
O�5�a-	Ҿ'슯.�hؿ�O�8|
T��agz�q�b�	_>(�F�H���.`X��ԗ�F�HR;� ��'aK�Iaoϛ9�X8�,&3��5�
Ze�p6�����߸����
~O]*�1�$V9��.
��֖�2�Q��i;}�=y_e�f3�P�'Ͱ�}�K����
��.��p���n��M���⃧:�n~(�Y�8��z}n��76-w|e=��xϋ�cf�g9�ɤ�5)�v}�$+Lr�i���������(�1��a��vG�J���~Fb}-��ZA)�~�l�Me����-�vY�Y��™#3*G&�R
saOx4�#
�E��4em�d
o�ޏL	��2�-�.� 7�0ť�S��&b�J��@o,�=[�d���tz��
=d,G8=L�|�l��8Kn1���
$�����L�
K��;ho��C��d ��\.d [...]
�.3�ací�6㇣��
��
+���K����D �gn�w5����	�Rg�c�u"D��$X�]��3,BBV�ֿ�o�0F���KԨ��$7�[�7U�kp�ji�
+�+�> ������/d�=s�G#�X<������:�NSB�S]�{_�ePu�}��A�\����g�"\�iS%�N���oiݜ��jB�a�������2��A�V�,�#��Z�5
H�vue��Y�@�
+ at D'�D�_P�4�+*����~�� 9X
��_��a�16W$��
AEWf����Jߵ�!k�:x���ݯ,�\C�P&5��𯶶`������O�L�������3Y�K
�R�D�zg�6�S5U�m��A�S���x�gr���a�
=�x�+�uU�Y,�r��d�5�ڷNɊO�+��U��MK9kY�����nL��`JY�9��	s�y0R�fV}�m\ᾄ?����NT΢d[��i'ʋ�������>fO7l$�� �s�I�7��l�ԪI&'�,v�4����
��N��!�'���R
N���s��&�i��ষوM�
W{�g`���`ܷg0�tK7Ÿ�x:YZ
8���]Qz����s:6���]&����`h���P"��xz.D{����k�Q�+Cq��w���=��O-D,�{Wԗ�^m7����mҠ?^
 ��^A�V���oNM�����Q��K^�k�B#�V�
�G�T(9W�N�P��iYy>��=���g@�-K�c)�`1RL�-)����҇W���f�T�Z~�y�NM���#�������o�����)�Jw�f�V'ԙ<�*���p���
�=e����U�V7�{�jG���]� ₜ-�����҈mq�S�����<��3t��RJ^�`��LJ�@(kO2?�O��p��'�Jkw
f�"��w�eI�7�6�Z={b9i�I��؞��<El�l��쑬��v^�[�k�XO$0�DB��ޠ�.��1��u׶��1!����A�?�0�z78����	��D>��,���d�1e(��M?
E^^�E�C|�3��y�wLP�"p?�OW�ɂ��h����y){�z�M ^K&��
b����巏����[��,J�w��ζk�HjJ��%�J6��
A��Y|:����c *���/Ƨ�=1�QjC�xݿn|qr"�h�
�	j��&[Er)00�|������rj�+.N~6�W��gr���}d�l��U	.ҀN���
Y8��u+"��]����X��爨�ä�
v����A�q�
�z;7�p�Aíio��h˓���ݿ�NB~���`^I��+�D��
+��x�)+
�Q2u�ef>��՞�V����1Q
:������DL��Y~L��
>���JKv�Ͷ־��g �����;7Y�y�Y����d.3T�������
+G0޹5Te*~.�w�}q+�SQ0�6�
{��y6ڔR
?����#�=���+�s��l���<�~��*��S#򕡢:�<6�g�nV	���jZ���_��)T����>]z��[c��`�v;�ï�N�o�Uы&���"���ɖ��+k~8��¾
��:-n['�Yr��R]��,��Q��K�l�
��q�����<�n�?2߬�H��B�����Z�k./�ͷm3y�D{���(T�-0��,h��@y�e�����i�4���k�Q*#��j~�&�؁�[a�zђ�#���q;��M9��l������)`��+��J7&�O.
����"J�~*+h텠�e�4S+
Ŝr���gg�
������]�V�:��!�(�m����Tm}3J�u��)V\P� T�|����&�5�|�L��L{�e�8h|Ӽ�FC�J����U�6�>���Y��O��+P��O,M]�)78ށ�}M8�U��m�M��
++�E�Z�<]������!��K���o�h3m"����F�O�򗒗[3�u?Ϝ��C���T�<�
�G�?��dP�����d��r%h����}�B�����t�Uo���qw�

靖ϑ�v��C���k�K�j���cA��@h����•���S�!��+��E�n�n$�ɳﵢ7\]*�%�����O�����PR�3�]l�� q���?
�������E|��^zb-LL�S
��d�8��r��C
�P���_0y��܏���Sк�~�D�a��"
��A�U���9J��%��-�on�*o�������\O
��ⷲ
� [�(yhc�m��Ƌx�o�!�
�H������~�Ǿ��)���Q����FO�T��X5t.���9(Zn�\����ќ��*�U+���	�n��,�
3�qB��>
k?~��c�4(
�6f
rՍ%l������gep�{_R�i#�Lˎ[���Ik^
m-�9�9�,
|�Ư%g]�����C��M�F�ĸ�^y�6،�
��vj�>
+���#����fݸ/Nr����şj��������/�e7������܊[��I�Rx��(?*���p
��7 5[��`��R�9�.O�')���ב�o�55�;V�tEh��0��?@Y��~f��1�σ`=�6Yh-���|\!��,3�%�r�{�1�\��aO,��"=|w�~��n�?cB�ݺ"�&廿�'n�T�O��>�A�=!p�|��hfp�:�y
ZK�i���ݪ�59�T"Y߽�A�V���QG�{�o8����a��ُ�M���
��-�F��i���
�
[�S� h]K=��ñ;�A?AіJ �
��wsѪ�F�T����F:�0�<�,׻+�һg�t^�y�o���]���,�p����#m
�yj�C��Qi<p��u�_���?_TP��C�����e�N�
 �s������ �U�  �
'�r�lد<��M�R���s�z$����,!�8C��c��I'$*�q��Ee&û�3�X)�(��*Xl��y�T����Wo��X�Fg���`„��B0��+�Eeo�����kl���0A$��8�^��6i�Q�*�
1_��nt�ZT��=&�2߯f�*����w�Mqz�*���_rٻn�ժ�W�a��y�Rw�뤹�����꼺�w�>e8�g`�1�G-���v%�-��.
��g.�Cw4c�a��w��[~ס�~ko�M�#�ڝ�Dy�&G��{�[��
��[y���
��x8H�%��ffk�}�^��[�n~���m�У;r�wf�F�)/{������f~H����,��]һ�ª���{BV��/hr8����3����>�-���X��;)�0ؖ�?�β
��vnvW��]ˑ��_�n�
om
�����)����
rā�
�K
:V~p��)x"[c����YX!��ٴ�͑�����2�n��~q�D��^��}�i�
��Y>��Q}b��y���*�v!���<��ڊM�2�|�G,x�#z���t�1o��
�E����sjʖ��X�^��-w?ƹB=�����¡/u��r&"����x��
s[
;l�-5~#Oj��
eΰ�M��6NR�¼��«!(�bS$
��%0U��O)l��zN��އ�6�� ��w�
��;\0tb��C	���&� �
�];I���8/`σ/
��T�f�##������e�E)[
�̆
�J�VC�uX��N-�W�:h����2ͪ���mܶ�{��
t�ݹ<N����C�^w-d��B���
�>ꓲ)�G��V���:�?2"�������-�-'Q���-�N��m�&Q�2U�jJgPV�]�ĺ�6�N��*~��KR{ �)7�8`y�%g�I���e4��ð��4�3lr('�Խ�������v
+ߞ;��k��[��ج�ӥ���W��6񵾶��t��&��ftm��pWku��~0;���=:4j+�p(]����tNUz�?mb
<�Bur��+�o����7���[}^5n���s�����9M��T�=��>ͨod,����[
>��*?���{�5��4

!�[�P<�Iɞ�s�h��
���*ʻ
àY>�}��"�
+* ��2E]х���V��S�&��~�Y����Z�uKC�����ݴ���7�{~�$H�v$N���tW|��:���,xB��ȡr
�P��F��I�����Es0�=�����x0ǯ��)�A=���"���M�
 $��fU
���N
YyFnjo�m�����������76��f���
+I�l�����b�~,
ى׃���Cw
�)O�ZI���3��/���B�M��/(B���{vKg�Ǯ&��Xu���F���d�S#;���hݺ6�j�9
�6U�۱v
T��d���zð򙌚��y�x&�� �%Y���FiZi��}Idgq) �
��.�.a/�ЈX�r�"
��z��

��FY��m�>��-�w
u
��c�?��`�|��!q<,�
:�A�z�[��y������;"��1���zy��-������~n�u?e�|{��
��qj�*;e��

+XG<�{�"Z�ڸe8%���
�B�
;�z/��r)���qq���t��񊇊ژ�+��I�H|���������aV��p�Z���lmB�V�9�����%
+6
W�rX�,�����q�
��k�Q#<[�p.>7����v�z��:�|���
+����V&�2�)�yq%����_�8s��~A|A/n�aQ�
T�

+ghq
�K�
�K��i!ӳ�[>Z]qxTVK�M���X��׭v4śn�O#�F�:�L
8���첷��*�[�s9�aݎ
8�Mg|Y�:Ee�� ���+]P��Ԛՠ�݃�
���e臧%DV�T��r�w2֝`�tM֨rN�F����\���1:$:�j�v�Nwߕ[ ��pɪ׾�j�x����h�n�"�v6\.��Hۦ�q�5��̘v&*@��b�1�Χ�=�W9f[r�u��h�#k{I�����g��i|�6ej1��ܢ���sj��Kr_Pa��g�!����[�Nx�>Cc�sΨYrY���5�|$7�+
�q�Gs!������<���)}��u�:� 4W�Eqd/2q��K�w۱��j�)
'�	�{6�=
�(�q��N�O^v�.4�^Ѵ��f#fw��x8����^{d�ζ�:�~̮�Sll�;†�{P�
���G�o���O�f��,��
+�~�Yx�$bPH�
�}�S�A�����w��-�g��Sպ�tPf;
t�z���洖c�n*6�"�S�I:$`iDn�Hz�÷��~��x7Gf��N�5�cr6/��+wT#���x�}a�O
���Ej��7\�#l���
1Na���o
�
+��z�
C�͚��V��Kخ-,
kډƶ��������ˏ4�����J�b'��G�����1�œ�
����,m}C�c%`��Cic-&
LV?4��j���I}������ma`w��߷�/h>�,�j8�z����#�-��
���f8�N�A����ݳ
��]o��rWlj�U\����>����U;�q����x�V8���
\�i�ei�
���X�t޿
��{�efK�J����g�M�A�9GW���Uw��V[ה���C��]`�
�ح�[���C"����٭9���Xv�[���=��wɥ��(�����
�
r�N�=�dg�뾽�d�:��aDj�}����AA�\����inO���GҪ8��G���I���:���:���&]�Ň2��$�c
���-��Ip
�Aر��,X\�ݫ�o@�����H������M?�,�Y‚�,��.��ή`�S��β����j��"��W��Z���6-�xtp\�{=��Biح�n����m��U���
��9 at wp+�
ꯌ��N���,��������
a�
+�ۂ�,�����-gL5�<+�C��8򆔌n��M�n��4��E��8���ˡ�z$��%[/�][9;�z�8�n��#S������	�vNc݁DRU��}�A�t�Q6��/���Mz�����4<�z��v�"��)

�:����Z���q
+���:�Lzw��^Z�vQ��BR����m}�]��6�����ՇlW�t���`�/m�z��l��B���-P�
��&!�l�J����x�|�H���
����-r�Xg`\�k�w;�5݇�eg�����j�EW��*DW�a`S"* ""�
�bw����.0gN�̌V�.�箆��V`�k�
�?�cz�޴����3�#�p?S��@1W���jn�����;��ɵ1e�)�m4�����ft�gO+�Cd@��gͦ!_%o����\9
+����RC14U�.=~�گm�U��)��G�n�����n�gx��q��x����.c̪���2j
8�	*�9e�s�Dw�{�~�ߌ��{[�U�꼓W�r4��[Q��O��;�N��U�ⷍ���DR)�ez��׾�y�V�UojH+$���Q��<!����{�0�N�N�,.NNe�T��2tlU�Ku5�i��~��$��~�������i)�#t؁��l��YP��"�ݠ[�V
��'+F��#�ٴլ�tov��!�Ԇ5H��Mt& �ΉY4�ol?��9����,�U��Lʦь��p
��0���h����"���o��&���^]P\�;���y�A��������T@�ۋ��1ch8��Ļ��S���E=���V�X���/4
��0wf�]{�o�]6�i�L4(}�J�j�
+=U@Hkƫ��S���5��I�
�0=N��"���@�k���Y4���-�Zx��˟"���߾���`���vAǫ�z��\s���[=6���=n����i�tI�\
-
f�7�����Gu_��U?������w����cL�+S)N1+�j#Qu�� ��N�
!�rB���(g�	Y�����;6���zq�qeٓ�з����~DOb��&�6���B�B�t��n� #��7�k��<mYI�)C{k<t����x1�n���2��G	!O]�+�
ɶ��FwN�E}�{�[î�H��.f�k�䡣���2��˘���jr����
hY+�is|4��l������cP���-��É�Bb>��cHHȍ}S
+i�F4$׀ݕA~o�B6A
+
r���h�Z��|��6S�*a.Q
5�s�V<s�̉ƒ���Ҧٹ���ʌJe�f$����#�&g��!g\P�c�0(�@ӅA
�LQ��x��䬗T��J�)wݸ�Z	�/��Ё�U�ɶ�?O�ɖ
��rݚ?���nu_
l�H�f��=
��ZC�i���n��פ��5;�!�j�s�]�G[�l����ڜ�zCS-|�4��a��u�N=�����/��+G��ǃ�8��RP��u���-R�Ԙ��z
+
c<P���>�t��T5���S���bF>a.eҪ]�� ^vz}1��}�e�zf(���~p)��\��G�c���]5���<�,*��nܤ��흆�ה_;ς�?�Z�jn2�x5uyij��3���P����@k'.-�z�T�5�O�"�'�M��!�WFb|)(��;�>f�?��{��zm�]��h�ڤ}v
�
��&a���%"�ny!������;���\Z�x���z�Øh�{Ym�9=���I��r�F8�������2��}x�6�T�K;�C�(]o�5�����j���5�f�l�n�c��zys����I/d�kS�9OnI�7jȪ�tQ������Qm���-
D�g!��gU7:��j��y%�8dޫ��/��S�����n�ָ��a;� ew��
�[��!����sgo��i~O�Af~I�t���M�%0�΋3O�n�A[��D�k�ŽM������畕>��[�97�&�tKT#k������=@C�� ���c���-����Qd�V=�
Ӟ���|���m7�,q��Sz���E]N1_،��bu�
�c�~k�
�n���
A�w��l�D���]:Q�S�,ݥ���
+
+�aiZ�,l
mϸ�hW
�� ���
��I��
�&�g;��x���n5�U�t�����z�0����*�7vph���q�%R�����*�'�=x�B$�Y��i1O�
+���6��_�S��gͰ��JL��Tul~��U�ѧ�DQi�ڕ�Z��T�3��R���V����>^�e��c���2A�ޡ�-�Rom�$�IݓryKe
�el�D>����j���K5�~^������p��#t�ܾ�bN�؋9����C�v��؀�	���eK��/�V0��}0�
�"�[U�O5�
�z��XO��g����b^D��rQ 
]
����J6K
�;��$3~�qa^o��9ior��
����@��x�
��%�h
:[��I���o�=ju(2h��ZjN��� ����^_�����As9
n�>
��3��e�k�k5S. 
'Y�mm�
�M:}���Ix}M�S��JI7��
��37�΂4B{���@U��~�{��I�p�(�]�ٽDz[	�V���z��<W�A�M����yЈ�h����zo��);e|�
 `�_{�`RrƲ����l�8�
s�>�UMY1��؍aM�����W�\�+Wс�m~���/_f�B1)HNW��r��?�0UW��%���"
+�Y���(+�����@j��C�
����r��\��Ȑ�����i��c�*k?
�noh�O�ɽz�N���U���
~�y�0W
HmB�s!py��r�� �i��"4�6\M�]��
��Y{EI ���1p�ϵ��L{xc��뾖X������](�.���Q~����	�����ֻ�
��H��@�D��ɿ��L�X-�Wc����J�� ��A��T_�]9L��	,���.G�R�I�Ӭl*VP����~���#ª̩"

�Uu���>j��>IOHz��UjS�m�b�4o4�H�ob�tb�t����
�l�r�^\¯�|�sr;�s��L
+/q��O7E��}�����>{�z�Kf�

���MEC��IPsZ]��{���z
��T��/��4]+�
H{���F^Ц
��C�,ue��u,!Q����
~��R���+t�����ʟ��CA'�pt{40�p��+?N��
q�%J������H�ɟN��
�}��olO��N�����E
S^i(�I�������m�U8�wO��M��i���-w��7���
+g69g6��F�Q�`��{=���)�i���E��lG�N���*쳞�>|K������o���Toj��5�� 
XZ
+ie�I�c��#e��^��p3Ԛ
�u�	Y�f/�AB�F� �e� '
��QY�v���t�
X<y�5%K�'V��VǨ���i�j{��4�m�Nn#"͞mR�7s
�~����q�T�]F���G���]�
�B�����b��l|,s�[�Mp��Rk�X�Λ�}B��I����⭐��=��y�{R��y#gyJ��4�
�tγ�,���� �FM�0�
��\�%����޻L���
�I��(���b¶���
|���ŗ��B]��n�����
+;��#��,7�l\��ц�h(����ȴ��;JP=B�Y��(�'�4�]z}8y:y
+R�9�d]�$��+�/-�5��;�uu>�4��6�,ُV��0�<�0���$tˑKh
dg���N|}Ґ� t�<(�2��C�[xr3\�7�������Q��?�$qߋ��L�]U�,���]��r@����
���%W?�ʀ��"偝u�^7�A���Vl���Ix��d׾�tv~�ƸRC�Ml��.m],yd��҃_�utq����PbMG�V��K��l��.O�'f<�7�B���\Fy�~�W�ٿ'��>�I=��6�_iC���,����ǵ�T>��I�e/ei5
��a�6�PH�
Bs;_EW�5�	?; ����B5�ۢ16bq
���I¼�.�͹9f�;�I���`����]!2�׬=� )q��b��j����a��mqI��3GX�:�J�K:f�Q�j�zw�
�\y[(p�mv
+�ty��u���S�'�%ܧ88�ҧTb���踤u����`.�� J�����:,[�^t��i��o��F)nN�^�
+���ʤ��G��xOɩ�
5�M(�+Tޱ�X'��P��*s�~���RWXm3�
+J)R��}�BE���!��?�bo��q�{���wYWf��o�l�O}0E?
+�8�z���t�*h��ej�'��
Lr�"�Q�dGRPpS����Zj�˟�Lto�5k�\� ߭
�����/]E��-r08.�
� m�;��[)�}09��
���:+'���5�:�X���rƪ��� %��2J���r
��
������o�x���P�G���L_�W�YʊGmg���%{3�8P�5Ѩ�W��@��Z�l
�]�OZf��'N~�2�
�'yP�x�YE��g"��h�Ӹ�#U���2�<Rdn�����<�T�X�^VS�
މ�Qw�*J�+�������}�ɼ���40��1�SG���c�ͽ�X�I�P�Y�ak�gJ����^q	�є`)�=�V������}����"��v�>�{�
b�0
��k"C�b�;� ;;����S-	/ڌl���PY�Z��A��2��_��
o;BYLa��ϲ�
cn����F����!(��Is�2�_4�G�'�;�|
V'Ȩ����.U�Y�NDHoΆk-���n�Q�/C�V��67�5
���v�ٵ�/r
��O��
+t��?`#-�����KZ�T.a�^�&�a�Z�#/�������� ���+k�U�T�ZZ"H;Ul���1���]:s�(��ڶ�O�ۈ֑ӊ��
+
�fW,
��#j�+4�}n�kg2�EF^���B��ӎа}���+��j���8�G�w�����ʏ�F�7���*K��AJ��ߜ��%5��iu�G��V��2

���6i�
�U��~�
+DK���Z2���b�붩!��������1�(����д���	V^��`e���N�A�3��)���כ�hyo�i����%--(P�T�L�:�Tb�
��+���×y�C��t�B���:�
+�������`�Z�DKzL,�Ύ8�_lǐT�H܈��?��Oy��RRo9�-v�
��k-�Z��v�S;>��F^�}��y��vQ�a�p:��w#��c���3Ёq�����,?{��^�Gg	6�o��
jf����U��MeCZ�_�P�/�6e�8,��]{*�c5���M���v +���UM����MT;�ƺ��:nS����=�;�vl��}�ù��,-���
��g���/�
9gk���<:���S1��7���=��f�9ϵKC������ ��K�[���d��A̙!ڢ"^�J^H�A�������jk�#5��=91/�
+��>l���_�.��f�x�f�"��oY5���sFm�
��-�j
4����5�]�D�ws�ERխ@
ܿ�Z�����������4j�y�[ ��\�,��v2j_~?'y���

�pZki�b�U<gb��/Rz�����0�%
+�,�#t���cct��F�
�����
��Nѕ�����0�V��x�`d��ǃ�
:w�*�@�4#�8��
����
ѫ�%Ez�e>9c�)+���9���Q�o�S�Hvi�<f��E��7�1r^!f=��y�e��Bi�i+�O���S��r��/��m����B�
u�v��ڼ�/t�|�tm�o��? �^�+%mq7�b� tɛ�h��=MM}Ni�]0��N�3�
�;�����Ήf4�կ*U�*�6���Q�r鞝��>{I�xٕw�._
�r�&
��k�I�2s,�_F�|��������F䤫~mg�x�
�٫R�j�V
+�(:�o�I��[�q�]
�-R�ވ�B_ljs�v�B��W7@��X
g�u�W/h�C�JhN��KEr�M�F� }�[����o��s�ĔVu��nN��Ϲ
S:I�Et�e��8�
�55�����g%s�چ2 _�
}?Y�_
Єt
@A�4�7
:x���
+��=���1�Kݪ��i˫��f�8?��+�j��2Xl,��j7�K��+P�#��͏毪%��vW��u�S�ǵDC�6n������%f9i
w�����Γ��w��íHrk�����w�[����h9��(�1�b�P]��[rn<Q��(�gCu�]F>S�
4���T
�0�
��n�]��gKZс��a�����%�����W/����X�-�,�{��G�{�U0a��~���L��hZm��������t�i
VGR�i�'`��Vo����tI��^ՅŭMũ/
�>��)Y���S�[�[�0Hj�w�� �U��:j�â{?��.��s;ޝ�^Y`Y|k��!i7�ym�ȩ��!�nԧ��N���X}�M����;��t�M�N��՝��S��lm��ltr�����TO������ �+T;��i�|ˮշ+�
����m�Y��p̓�Yl�Zԛ:�)n��
k��k�K�~o}_��r%�
+��@�so8c��N�0�*}�X}��;�C��/��jF��

�]D'�P
j\�@�_�w2�����:
�]L�p�A�a�`�Mo�y�*��Io�Ӭ����ѱR�K����������y���D�6��6nHG
+>��͙V\�//�
��⻓;�١#��9r	��7��]���%r�6V�8X���YiT���j���[h%99_���c/�S7��p�W�-��{��e���jዂk��EK��ֽ_��2�
�z��w�
�1Pݫ�
+��[n .�K.
l�=\oAۋ���P�m{0�m�@�9���A��UM�q^�"�t������
�W�j�6�T��R�
�p�J��?��b���a4^��E��j⢶{^�p�=����=��N�F��T

+�hw�S�P]/�����D�p����M�
+�eo=��׮&�&����S(��#��{����|���QjR��Bӳ*���3�*�ug-el�$�^h��&���ϒq���ы>5�۶i��t���S]-�����
����(�}�G�0�
}q��gC��#m�~�a�'�A�$Z��Ԝ3|7�ӡ*�*��|C)5>^?q!���� ���8~���M���*�4�
��Vر�k�e�Y���2w��}Ֆ|*g�
�]X������Չ�"nry/�qaC���˞��퉀�n3WK�%��q��
|*�T��P^����XJ�@�o�n��欢�;tb�h��
f�����8u�)������#d�
|���V?�_�$���Ɔ�yW�
|�WKC���@��;p��ц@��
��zy%NP��0�
t�!�������z�{�\�2��Z�k�է��i4?m����Su�vg���
3�Χhy�Mv}mZ`
kpm���
���z��m���U���
7�>����j�z�o�uL��÷��^K�Y��È%ی��%�-w�c���
�[����� �#�Q#&R�;ƴ��[��կՉ�ҙ��}����%�1l|���ih��U
+a��L��7L>����Eh��Əl{�k���o�b��h�
"�M?N:~uzM���ϙ�8EZi-���
�q{>
\��憭�,)�}����ɯ>����i�o�ڑuL㼚.��$]O��2E�)�u�ۍ�dJ�{���5)"��B�ǣn�1E���I,+�z<������
\Dٹ*�xۧ-7p�c�SJu�ކ����K�T*�F�%�!��N��?� �wO���V��3���ɴpK�z=J
/JO� ��J��%��W�n��u�w�o�e���Q��CY���R�(?a��@�ۨ��‚Z������
+�c&-.d�j�A�7]�{�iuJ
%��ee6���ǥ5ɰ�Θ�j�ƈG�7(W#�e������-?q��V��fX�c5��Iæ�Ry�,�eX`n�j���Y�
���a\�/r����?�Ѧ/���

+��'�鎭�3�P�s���V�
�wb:r���6	�W�%��ae5Ɵ�7�:���X
��-071
w����."QZ,?�$0գ�;m�H|n�
�����*y7`q���]1�ut�����1n�W-�'˹���OU��
6|mM�O_��Z�q�ּ8��ɼLz��l�k�ԥܟ=[�b>C��~����e��cĮ�����˒���q��"��wd���$s�~��?����SVR�rzX��wUGf������iTv�-g37 �
����œ����,#j�cbi� 
j
ք��	��Z�Ljm>]&:���z�6DAh�`�'�u�t�T*z_�=
+r!����`(ׇx<�[3���C>���`�t�
+���\���o�5�5�+�J�2��;�_��%�-���ʣ�jbz�/���*
�B�2���r����r��
oה�����O_ܡ-�otא�86Z�tޕ��GK�V�Q;=L��~äfF��CGw\�>�fX�}3�,�3��lbh���i�@
gq#tW��l�ZĄ始�t�~��.{}����#��y�~��v*|k��Rq%��n
����������%�t
��y��|��)���@Ԯ�_�/���ޝ4z��ϛDN�aE�:�X>n~��9�݄�Ap��~�wr�����
[
�vo�,�b�յ����p��ˬ2�RkO��\}���8W��'�Vj�e��ՠ�exr|��Y�Ǖ��-O��#?em���R�7^�.
�r��_�]hR���1B�����L^�H�K̤��4Ae9���I�+^kԒ?UR��/����L[Ҥ
�f��'eؕU�3��If:��Í�-Zi��

EG,�L�r7�\j:=kQ��JNk"Qdp�qr_�^��v�ܡ;
�
D��b�l�8i� [...]
+� @{��E��&(]v��q�=Sn�P!�5��OdK
~�R6*�8j=�_qo������D��RK��QbO���\�B����X
��y#�sP�
�,�+�L��m#�C��wEܖ�C�w�����m���oFI�m�0,���Z�lU5�����z-�!R����/�l>%�3�d-�p]�>���o
Z�����Q���V���`El#��[Lc�X�}�[Z��^�FWn�j�c���TU�.G�Y�WW���
?O�(��� �1����J�������f�
+4�����M�Q���UK�K��g��EF�)��m�r���d��:��k��U��j#Z�$�d�~8�(�OiL]�0W��S��؁�f�V��v�R�wH8�&
�Zpʭ\*����u�
+�~��s��
r��,P$�/2�����FRĶC,�K�a?'SY�,���HעR�`�t�W��0���*ç��xu��;y+����]°�*�"Eei�.q(s��J��c=�㑽LO���Q����0U]�+@�
�A�֛���t���ЩE��K�[��+4��?�HE0KVRQ}�fG�.�|��m��
���-|���pqBS���2-����_�b�i��W�z*�`T��
3�ܻ��#�	A^Eb��օ�������m,�}�
SCiP���릅�tM_�
�D�N���,t9�yN?��?y�&<�LVZtz%�j�א��
^M�1kO�Z�G�
+��'�ՕfLW��=��47�{�AJS�u�V��$�v��5J
-&��G�BP��n]�u���-%�2�h�O�Ȯ�
e�����u(��/��/�F�Z�,�匛_=�w��|��
-_��Z2�
+l{
�
��{#�)C���vX�4��_���\J6־6)����

�^�
+w�im:�
���T=uV3��&#e	QM�	���%��ջ�L����ʎ?���
�Z*���.JOZ�o��k`�B+��z�S
��|j��{�C�;�����-4m
}��6%A�m5�;!w�e��nl��$tX�@���b]�o_�
2�K�f�U�/C� 9�����Ӥ>�%n�,6WaXɱ�W}�J[Õx���q�Ǟvy�A34��Yv�Z������vG�zG
�[�A_󹢅��d�B��0��������N3Y��o��%��l샓�z�������T����ʋ@���C��H
�ۥQ
}uf�����-�4�� ���Ŭ�$U9��Q� ������C����~5t�{:���^>N�>����|��oI��<�$�V�$xD|�r|��s�"JA����U~�`
�
���d�uA	�u�h���:�FEwj�G��̥�rSaz�zK�-mQ�t?C�
+͐�j��ԅ�o*(@��@>�
Z��r8�_QۇTb�
�n�;=���j�MM�5�����֕w0ܪ�ჯ=m[� �,dO���{��)�1ֽ~}�q[O�V�R���fpeZ���H4$S!EsH�����n�#V��+�i���e�!�N��ˆy�nI�2��6�XC���5��8�����
+f�(sc���5[�n�y

F���A�
8��hۅ�ں1[��zV�2���H]�cʚ�.��Wk�`wlC�}1*��
+���)���f/�<��k����Oۅ��y���st5V��`~Lv�j��x�A�,
ž��*tf��7q�����6�;ib���R�n��
Y�5L�p��x
*A��.�I\*�<��u���~6����1��b��O�^�N����Z�������oݾ(r������
����3Y����݄k�6�$���
+�k��,mˣ�~L�(
��
�ށ��`�� �V3��9����a,���
+�N��OdL��tA�(�&�h��yu�~]�B���.�����o�n�d�N��˨���I;����+�o���W�Z�OK���ҫJ�.߂i+�SF;�Y�ʑn	a�*��|�c���q�F�^��I���*:C��Wy8��US%�
�U���Ë��~X�M�0aȾ��f ��[J��f��KU�О�/�����J�����?�������l��'�1�#cC�6Cu>"���,�ة��oߨ��ڪM����u��v�+[�
���e�^μ.1]Zb��1
���*z��5�Z�m���dcq���h����ޫ
+ظ��]�	�"�,���84V�z<"<qYs͉�a����IZU]m�jCUU���F
z@`:S
-�E���B��Z��&Ѽ��L�Ww��quA�߆�މ�޹�[�^mx0|��,��DnVd�ɭ�O��H��˷�:9e�mY\�X�y
�o�@R$*��^k5B�D֐[Er���Ι����@�:!aSV Jq��D��&SH�����[���8�h�1��t
��Oi�e�
+��)�������
�>�h}U�)��!�ߛ(��P��ӓN+u�k
������׍��<�V���F��V��u�OL��/(�a��<Z�^F���
��e�eTy���&*�
+���Q̍Z
�hz
?:���FFҭK��!%�})uBi�&<�@�#��zy�G�ݢ�)�ng��|n�B��
{ �s9 K�]
_M��=Z�r
�N��g�[��l5 ����{.�Oflo=����r���b���ω���G*�YM��q�nG��D����

�}C]��0F��{k��%�(ޡ��
{��Go�=�w_ֵJ�0�����W
M�_
+IJ�X��S�
�


��������b��4�S����<@TD
�X��;
��Ns-�,�s��:OSޕ�3^�I�y�����Y�����f��Od�1��aC��v!��hFEj�e�q�'����V�]d��m�CJ�
��
������^|]���ˆ��1l-������"��b*�X�� �(�2�ñ�)R�f��_�@��2�D��x���T�b��	��h���K/TiX��+[!��5T��7�^�w�qP����R���
��E��&��^	kuˀy����A<��K�6<A���}#?8o�lm85���`~k]7��V���y�>8|�S0����:��K<
+�8�m�Tpg�j^�ڌ�wb�eA��N�O_k�-m�/M����D�r� z8�
Y��w��"O��m�]fgN���C['
�k����
�F�@bQ/b��-2�ԉ�Y�Ƿ�f�t�c�עؿT��i���<����˸xb��4���.>ٚɷ9�U+���
m
���1�E��7BO��x1 ���k���`���1��1�[�h�С#<�^��p|�Zr�^k��SR$�I
�WJ�v���κ�F ��r��?:p�)��I�H�-��ۛ��JZ��e�#zx]�'�{�=��N��}[��������ć�5�_�
�<�(30�����-���GE�(�N�
���DZ�l��{�ǩS�4O&�Bӽ
�ޅ��-0���y8�
't���uD��Ox����Q:U�����3���5��u��7=���˰����e`�vf��
�7gc��Lv�өW���Z5�{��F����֯z�/Ё���i�����7C
�+
r9G�xB���)��F�����P����z�S&ݠ7�hF�X6�C��L�µa�r�n� 5�K��=Ԍ@ܠ΃�YS=�7~X~W��x�+�F}
+=m�|�@�W���	�h��b..��m���
ڭلƱ��Q�n��X��Ak�ͯW��@[
�ϓQ���l82�́�Q
+��:͢�����o{w�Վ]A1.��
��ރ�H��O~.U��|�L$��=�O��qS���t���K[�������_�˞\����VF�o��P�7�H#Fc�ȰR�xL$n��h�E�2+J������U{(Wx1�y@�:���.��5����1���j�1P
>Sږ��N5*��z�n8
�	�z�6���!��݀T���4��1���
��'jd�l���9�(>�s�j�,��r*��
��Kᶝun
S�)��2b=���A����}U�As�qBI,j��������[��,�z��[;ܞ��g�R~�rD4�ڝ{�ham�
ΞVEyD���$j�����gg�o�`z|bgժ>��x葚.�����D��î�,�����g`�GZ��q[�Ni��������5$�!
i�3�q=RZ�}������.];3�u��/I�OD���������xA|�-#���K-̵�KڏN�Ø��č�S��-x�p��}�����;�^�k%�xn��QQ��ݜ]���揻|F�}��;�2D���Nee9�L��W.B�\YZ��\
h���=-���ٲ!��6?k�u��:�ru����o4�+X�էf��Mys�"�K�LN^"��	�'Me��xh�k2t,�x��S��-���ce+��_ at nD�
�����>��_���0�;�`��"(mY����v7
�"��)���dٝ4�Y"�<|\��32y\��<�"�Y��	
+��]�S�`j
|���)��;n4ۍ��>`&u�+C-����Z�U���%�r"@�E��+(x�j����n}����4�����լn�K�M
FxM�K5C.5Z���!K�P��W�
�ڲ��wO�ju����N�@q��`JoA��O88���O}�o���e�?�K=�쯡 �J��|/��f*,�˳%�i�K
,��y�55&�ْV��\��ʂ���l���C��������;�|�q��u
+���M-�]	8RMxNČf��PyD7�Y��̂#�1l��zM��V������>=Q
��x�yH�L��g�,q��d�6Zါ+ԐT
q�D��
���Hĵ;*��<%CɗD}�(4y:��okȴ�
�S�م�.���d�������@�Ӡ\�/�ωA\9�['�	���悴�c$֕^�/҅�����weV_��>_\5\��kgg�W#5��G���or�ٜԆ����=�C�������r"��ki{����\�75�g���r�x�'
��m+2�;l{��
�������߬w��.-��
>@{ и��?����yed�mC.�1Y�.Uݴ�}�������RU	����0`P	�c��9�
�����9�f��vU�oIW��
 @նa��y*<�~|����wC��w*�ڳ�1)!g�����0�̂<���ǜ����ވ(S���x�s�g�
ٞU?m<�C�HX��u1�r�������=
���C9�EL�x�$��'v.�I�ۥI���
�K.�x����ymc �Y
�
�p<W���	ԯ8���~��Uf,�f�ܿب�mҥ'�kU�v�� ��
��>-l��9�;�QՋ�r
+�\���
���xS��|����;Z�8�l;6�i)��mZ�����.�0�=l���>�N$A��i�� >O����˽uصl���5D�Mʭ��2Lq�����@� 	��;铕�@�۶�Բ:0�ߓj����l�S�����xd�aHf�ț��N���9ú��#ޤy���kõQ
���G�� 	����n����>[���iY��ٳ+{|��Z9l���Y{O��a�[��Ra$Ps�������ިkMk$Í*��y]ɪ�.aW�d��bq��3�C�'9���A����p|��ֈ�
�!YF��P�5�YA��M�m�Ϳ�
ga��> �Eag�P�p��H
k^ls�����s=���'�������j�%Щ�+��!ەU{N�C�c���X�W�������~}Vר�$C�RQ�O
t�7z����~��_wf6�A��p�4�#���6�˻N���`��VO��
+�}g��Q)��Ёϵ����j�ߥc��O*EH��̼��>�^xn�\�v%�,��N��:s�~��vX�P�������0�*1�F���dl�4���#_�Z����;x:���*�ۛ�.���3
�w�fT ��YLm� ����N
+��z�>'P��Nb֯›V���#I���)��6��qq��
,풉.���C��^���I���,{��9�[]� ��1����e��ۃ�
	�;x��5^)�ޥ
��+�hQhY�~��PBK�U�.x2:8�U������I6� ]j�t"{Z^� �m��{$�8'+W,��!�0��O��iC�r
�Y���o�È��Н��I�����ڿˆ��������'�M+c�uf��b
�6�`�o+���,hϊ
��'
e������(5h	�
�6�N�[N7w�
�\c�Ca��IR�X���H�!��3Ȫ�_�UAn������w�
�wC�+�g����$�Iuq6�PWz؍���5����U��� ��H�d��z�p<q1F���n,�,�ꕆ`��ie�@�
�dK.�ڊ��ަ{���`zԡX�֪'��
J�t�|ڃ&���Y���X������esq.�1�|�&냨Q(��ܨ5[����3��Kd����v�Gs���*���'�Sk
+�
?��\N
'˨��
�}���%���Y���c*e�e���"��"8�����Ì�Ϡ���`���p�.rg!
�'�O�ǝ�����m ztxؚ��-�����dɽ����Q����S�/7��hWͭwf��~+}���
����B�
�����P��k'!-�%?��^P�?O±W:�w��?��
�8�]MI�0ŝ��T�Jp
���������
+ =$.F�GDx�Il���
^p�����U0�k魋=,!*v�������A�
ړ
h�k�:x
|�[hK�����s�.���=�C�d'�!^
@<�����78�@C{
�
�횛Z�jD��K-�
/���G*��
U%b�B<8j�m�ek�n]JI_�ЇӖ>��佭�'�bRF]VٔeWC��0<
�K<���'�?^��0Z�Y眺�-��Lu��[.�1�s:ҳ_��<aS�g���Q���鞛�f,ݠ�R�i�=vf���
��U[1���4���F��닜'�nXu����t�a~�򮃖ڙ�ՓU|
Q�GL		�����$΀K}!��}���S�΄R�����^���j��c�F5�[OJ�X�!�Mj�7���u[�y����J�n8��k���cf:mطM��1Y)��[E_9�E���Eٶ���,6o��(��o�F�O~m@�W�+9���͡����1�G��=�d��J�xyp2!���ɫ2��8�/�A<��6cl�=�Į�
��N�EaG'���3�;��<_������/�
;��(�^؛��>�>��;��yW�7RO�5hg>�����m{w��@��%�v;8ґ��#_�aU�Y� [...]
�޳O^�82'�q�{��P�=�|̧�ys�mcB���D�t5�E•K@`�͸p��!�R6;r:�jxךe���.<��� ��mK�Í�n~Ǖ{��N�&�V�
�1ͩ���t�LO7r3�Ipߜ6�\�[�R��8�
[�ͦa�Ʋ�Hʝ������
�k^Y�AP���X�
_�N�(Q*���,�ǫ�37-
��=(շ��">
ec<���������i�{�� ��0��uk�
Cy���۪�'�/_z�FF��yx
�{�M>d/��t!����f���`װ�
r.�}r���Nt\���z{�6L����X=?�ߙ�dJ9��T���!GV�6/���
I5���a�H ty���m��K�,p_�-&��*�=?��d{�
�Z��5w����

�`�
\E_ǟ�?�;\J �<�b�iL�g�^|wqL����X(�t6�Rz�z���}��s��DׁI#U4���&�,���M-;�fc"�&�Ai=�
L�.������[w5�晝�gDe���
#i�~6������7e[%�'M�
+������:*�Ђ>��5�C��1QQ$�R���?��5�$��Ö��2�ט<TB��b�
�A?#
20m��ߓ� ���Y��ŲZ
e�`�ϕ�
�sGmR�mzl�~3�L�d �6ۢ
����S�M�K�Q�Y;��Ze��]�hvivc&G���k���W�$��?*�
�O�7���9���X���f�y�G�
r�U&��W�fǁ���"P`* ���D:f�x��s�*��!��G�(�{޳9�#�ֈ�B�+�	^���M�l5�:=l���o�g�&��ͪ2bj�|-�Wl�.��Ե���Y
�bE�\|�uNM
f��

�d?׌~
�e�R(�
��W}�QX	��Ʒ��S[��n�
+)۩��͚��d��mj��
+�l�_cZ}���f�2���U֩Y�oe8���efө��F]���<����t�
$L��f�������󓿬�,i�T/7/,�3`�1D�֍�t:OIP��
M������rǓ������
4o��Db��������7|,�f�a����a�4w���7#��W�[�
�{��(|�[eA��w�<yl)1İ��Yf��]ztɧ�]A��WR"�����94���
�G�d���TH�W����fp�C�jF��p��MV4�4H17��z�Q��U���W嵴���퀂m�a��	/��?��^���
���a�Ly6R5q�h������S�y^p�A�u�G����Jlm<[��]��[)F�.9.
}J��$C_m�ä�w
Evjm;(�!��׫���Y�K�i1���Ac�qnH�_��s�#f�J�չ�xC��$Vհ����
$���ޫ�F�$���We}�9���b�Z\�����h��uI�i'�Ks��#�c�y2��K�hl��5�K#+ֶj�Z����14�oh�2�wj�6q�^
�-����,¿�~�e�9��L���M�2�fw���Eb��9\��1[��s
�2�\�ٽ}���-�%�[�uI�� ^���Z t�VK�a
+�=���,�.��j+
�l��	
@��*��$����
܊�NG�A\� �6�Y�;&[/�H�
�b0)�7�B�X�ѧ7
�{��9#uMm�/Z~�6NCkj���Z�K�D;�(� ٟ��i}�zW�� 
��a!�og����rB�@���y�/�b��6��ҙ���i�
��|(@��'Q���r�׾�o ���N+v�
��9��PLדN�b
	d�o��	�L�Z�1��qMAG�#h5�J�ieL�%����
+����ۋ׋0k��x�n����?hbz�!��u��6�E�-V$�4݅����,�ce�b�9�Z\qwc�

`�:d�c2�
"���
�	^*�T�2�[���j���Z�*�vx��t�(��q��D�����Z�ŏׇ�^?�Q���L�\xv3T\�І/�N��Ӏ���y�ek��v�����??�c{].^��^֮+�����4�,�Z����ޢ8H�Kh	�l�ڱ������������y,�k���M7����
Է�zD���Ca�9`w���4{��X� �pƫP��S?�[Q*���i��4U�~W
�z�,�U��vs��꾉
��K
}�F�8�t���	����KK|i�~�����
�����X�Ц^x�kY��}��&�Dڥ�q
����>��6�/4�# ����"t�_&� }4/�.�(^ur�}��To��7��ں�Cǖ�dFZG!�O�Gp���y��I�؋��1a��D�=�{2��m�,ޭ^ԑ��>(v�=E���y��S�枿��@����ܧ�#��g�ē�#�� �w��\�ħ;��O������.�5.3��v�:1m�4��URE�]v ^�W;(���a�yM��,����t��Z������������&!���k��4Aq�<�a�,�T=��ݍ���-��W�VN
7X�_���t�E� ��ղ�Y/�R��ڶ�m�YP�P�c�ߏG�Kg8���
a~��>�7���'�c���9�~`�`c._/��^���h��
���?Hs��nN���<���\{r͕<�qS~_�+D�-��yqR+u���IL^Jt@�؅�}�}�!���)U�N�ʉW��A����A��Sf&O��V����#Ԅן��G3&��Ȭ�T����꣖�0�tVa�c_wٺ�3nn�|���%�̕Y{��g
�b���>�X� [...]
+�{>�r��� 쳑��N.���?��m�9������
+%ci\��,;����f���}2Nn.'����*���MT%��P����%ۉ��*�3����ַg�A�Fތ�3��[B;�108��H�;��k*s��˹��ӣbO���X�vڜg��کzh���9��]5���7����[��
ݍ�Q/�ʢ۵
y�����nUH�����1d.(�
��A{S�qҩ���)�c��Uǖ�!'G^d{S�S��PZ5�I���Ǎy14ź����<ocUL�Y���W����L ��V��o��
�A�� 䆍�֭Hά�!@�A�Q���.6K��mO���&i	�N�P63�w
��M<=јKeyZ�Z�u�c��e6�B���}В�@>?���c�j,Q���x����`��F.��3k!172d^M���6�V)訤�R 7>�$Z�F`-WrT��0��*'7Z�5(�>��8���m�x�U�w�T�mr� v\O/q�V~gw��*�@�Yݳ������������Νw-�qȉ�T`��z�;���_@�� C�1 [...]
+T��0�.�]�{d7S�h�����
&(G�L�Z������#�u��z�0��
+CЄ	ի�&J�
p!(���*�1��jͥKdw���V
�Ҋ�q������ܜVc
W����iW.-'�R
V��O�������M�CG����5:Zc�cx)m�˭���Dg�<��#xfs�M�e�٨۫}r��6
v8�ň�� sM��/��Y����$vYD��!j7h5
9�V@�Vƽf%�ٍ�;��܅��ؕ���˼ 9q��Ⱔ�d�M�J��Q)�o�J0j���Gy�ޗ���ٛ>�"���nenO˭̚�E`u�F�F�
�5�#�fAڕ��`sw��Fx
q�U�����OԻ��^��s�Y|M���'���޲�ja�H�
������2�Uї�a�/� T�5'�i
{5�F��:�6���=Z�O��12�I@�K�l����ah�Jns�PuJ���m��R3�;M��D�nf
+�f�waG��-i��]=�)7�J����[/�m
+���(���� �E:5������7��4��l+u�CCs�Z�`Y^���qqK��R��M����s!8X=t��1r(!=dV�:�6r���β�o/9V����x ]��ݨ�6� ��^)wk�"n�N�|�Z���c]��
��}z9^']o�������0q)߅=0�hh�B,}6Ι�t|�?��o�:�XC�E��jy��[pK�H����߶0�'�ŝ/������M�����(6���[��h�G������S�٢5��=�,�ZZ1�#��k�h���C�e�C�ˎ%"
<�q�#������؎S@��3T��Qnѳ�x���_�[n.Ʋʗ��·bŏ*V?�|88D�:}������ڄ˰�z�@V�a#y})����L��JE*����.�
�M��
Dգ�<p���$
+[����H��k%���M���V�U63殜.�S��OAp�v)�i���O�cVʹ�me;c�mm�Ig�kX�Sҏ	$�"��,��0�r$�k����4ܭ����q�d
6k��t&�w���A���PMf��F/h�|��4���ˌ��n��C��aM"
A���
�;:��fnnh
��)�u^Wէ�9��oI�������6�v�k^a
+���+��'��
+���Kj
�/�7�v�'�?^�e$�4���M��o�9�Y>|��%�������M����.FT���Լ�-'�f���÷���g��Zi
��gd2�@W�+��(pUtн|�I`e�
u��kzlw_խ�C�)K�ke���ZR
���rzD�1^h{�)i�GY�-7=gy�,����)�����%� @99���~J`���6Ʋ���)�J��NA�h���U5�öu!
I�7��|�7N3�cpm#�����3ZS

V���p�;�kʑ٘e�U�1�
+Z7-���
Ѯ������(��H����L�(4e]>���ǚ�}��TU8B��U��x�uÊ���w�w���fmh�!Č�F����<��ϣ����I���s�Ў����_�1 :�|8�sC�����(�{Ϥ�x��w
�-va�o�c���O
��
U4r˭�k�@
.X=9��y�/瑞�`]��V�nP#����+�]P���P��@��b
��v?x8C�_�M���w]��6��������-`qK��f�A56M������ۑ�H�+�����c�{�xk=�4�X���4g8�O
kx�lFy�x����@��+T���I�K���b�LB�f����Ԍ#����W��]��n�{�
�h��ԗ�?�
����
����&��k:'�+�:�M1�����ǎ�^��jEs��`cI����W��b�8"�4�\R�J�iu��d bE-��'k+��KG�i�%�4�LS���"���x�5�v��D���]�� �{�
��c(��������͏u���`%��x:
��eM=���$
+��o>��)}[V��R{��};�zn��zc�	
}Ҹ
+��QT���j��%fG��b���lU�U]�kqS/�plf��(.�gyV"8R7_�BK����uMč���o�;��s��8(E�DΒʶ;e%[8$���-a��g0�U
����a��v�z�h��7�>��6�㿤�
^c!�0��S�^�8�9r�}a&�Z���N$��5TNjm�
+��
?Hq_
v0��+u_�6
�WJ�ʺ"��}] O��'��
�*���#��?�u��3>��CD�*<'���8ǜ�NJc��������i��<=�h�=yE�u�
����|�7�KHO;����
�Y�
+UJ]
�]rݮH�p,��*��]�S���Ml���m
�B/,���@��guU@�
��Pp���E5%L[
��C
}n;��H��QC��Z�ڷ�I6Nu:N��l%��'��"�7����
+m�@��"���4
A�ɀ���/�Yd�ji"#��+Yٝ]���>ZI�4*�j
��ʏ��h[�h|ѷ�s��
�*����>���g��'
oW1�>,�
纕�8�NS��Z�Վ����/ZU�
��P��ܞh C���&W��u�I͓=��=i}��<��m{o�M1
+p�W(QvQ�3e	E�4�i�o�hI\F���d���U){zdP����=2-!	��u�*�atػyϾ�~]
��d�6�A,��1,F�oq������R�v��e {�%���7��g��0�D��ˠ_(TG�����fv���~B��x��cI�c��v吮
f�#���y��=I���؝���q�IA�O����%�1�|��hsb춖��
��Az��,2�N�ώ�e���;P�X�H-i
/����_���
+�_9q���J��@�{ij3T���p��3S�L������t�gA��U�x.�'���Ho�i`��thV!&PGwv��t	*�
+�1a�t���vM��i�f"Ow�d���IG�#
����	�A�il�iq03��TZ�%�V���r��D�wI�iP]����٘�����<��{�x��:��b���/�|ؿ-��?H�zth���G�Jֽ��5����ɬI
A��
�
e�e��U�8�w��4bL�ӽ	`ţ����g�C�����]���?d��rzn��廇����uw�E=eI} p�<�͚jJ�8[���,"�\��z7�pY����f���j5��g5}�7��� �4ǚ���\c�}5Sσ��Nq�`n���.�O��Ʈ�w�1:M�x�}c�
+B�/�ӏ���:W���\��KS������.�
�n��?�����+��z�Eو��_��ia��)R���Z�	QU�*b�6<U�ł�m�����.:�h7�
+#F
�����33?Z["�l�E�e��R
+�PH_�'{q���yiE-\.Pݷ�[ƑJPg�j�?�]�uC�����\�•�Uz�0�$

3��#�V�e�2�=�Z�����繯�:��%�^���}G��
�����K�
h\�S1
��P�年^ʤ���-Mʨ\vCs=
�h�fKb��G��αj �4��A���?H��o.����,SV8լW��	�#����i3�<_P:X]���َ�t��,�V�I��e����j�o];��[��X/�4__��
j����g��CA/2���@r��w����M��NW{����uW�ңQ��.q7�ڋi�#7w�oed���{��G��i�9��؟��i���u��x-����Cf�{����ؙF��ѧn���������V�b(���=KӪ<S^?߾�
]lԇ� !Sי��F
+���oc������]����U2�%���Ѥ�K�pϪv���:�O��q3=X�cr
ʔ˦m�pX����&��d�ʷ�֖�<�{��n��4�w�R �Dp�gǾ=���
���.�|��j��[��!�$�+�� 7�S�䣽� �T<p��U�[8�v!�j/W��<oƠ�?l��n�`/�`��Uk⁺�����VY��]C�v��:����.]]��Kkы��h�ȟ���
����>��5��N4�pV���R��rhr&7�!��,шO�r��f�,�ȻH��Pe�������q�o�'B
57�Eݸ�U�Z�ٯ�&T���������qchu
���U��mZ:��J�Σ��V��Ӝn�Wg���9�VD��S��H�|�u-�a��\4�"�5�S��<�B�o����d7�9����U��R�H��=2}#d0�2 
����-#g�������L*#*ʔo��m�*G������_�W
+
� B98�S�'O��n�h�l0 -�h��D��h� Rz�0Ge|/�.�g@�_��HO>���k^<��B�0 at h���d՜�*y�ЦE~�yGv�9�'k��不�]a�+��=8D�u:�[NTp����"RwJC�;ܤ�y���V�K��/9����'��Ba"�ⴚ�Q�K`.��c+,ك)�|zU��ϊɔ�[��SfSc�q�/+xTWG|Ut��;c�
�ӆn��Y�_w���Cߔss�L���:�Y���3f�O�������෷�3�˷WOMm��M���n}�wZ{�k�������v8��d��0�<D��P#��us�YM��*S8g���.���m�
+�i�z#�(�6�$��U�
d{kcW�Zg��9���`O� h��
+�6�ޫ�
+��`�.��
+�g�la`��s��.��qa=enc��.��D�<N���9�
��D������4�fac�� �w��J��W�
q��
� ]o�{F���Ň@!��� jN��CS�
+	�m��V������
�jAx�_1�՟�D_N���)*h4�mM����+��N���
<#�#�oHX��~o������c��+w�F�����+\��I�/��s}\H�X_)���܂�zM�7;i��մ�v��j�\��

�-��!d��=z����o1~NI�U�&.-��k��j��_ۧ����-޸uZA�����(������/a���@=���5��w�5-{�N�~���l�
f��q�K�E��<*0�=���QvW��
�I������W���V�D�-���w�O���u-��:Ee�X��Ky��G��J���`L����
	$6{1����,�f�Iӥ�
���J�
�K��k���m�X}目��h��ք~6��N���Z&�q�p~����b���齴+7�e�)ߧ]������W��S�k
:�V`H]&����g���$�XYmV�x}��k̸�E��*]CDG��?�g�����Pd���h�?Z�.�5t��
+�˧�uny��G��K�]^��R
0�]`D���q3j�B��ء��H���Wi�3��,�dCi\�=^ݽ�1C>tn�ص�,̭�z���L��g/U
Sڲ���Vwk3z�Ȧ�]�E�$^~��pN��$*��Y8�4ͻ��|�ʿ�B��-D�Gy^��

���[d+�ӽ4�7K_�o����s���<�n(��:�tU���cO��fE�[7�n����?��n�,1
3J�
�:����W����Wҫ<;�>=k�q����Ū�lt!9��n�]l��l4�kѪ���"�uw7Ø7��"Ʀ�Ő7�Ç�F�m��,�L�)��`@W��5r�M��(��,26ܠ�����v3��Whyx��
��J"��{�|��<�����[Ɓ\�{=�ڷ���p܎��w^�-ʙL�@`N�[(�
�~e��Ŀ=Dž
9��e)O3$8�-T'���lņ�y���OT�f�������{g`#;G~Ͼں�ދ�h�
t+ݢ
A��G#�P��d��
�J/H�d�P�F
�7#'pf	����n/���ߘ��[��z�xiԁW{n�#�
T��_w=}��jG)c���"+��o|)-
+��m:���Q����E�Q�t�\w�E��s��K�`=b����X �>�2�M�?UWoxxc�vֆ#��
��8o���,��տt'���"�'��;C��
�j��yf�L�A���?��+��4��/U�j����
i�0i��
��6���PB�1+�&9��(�>0:%��?��
x.4�g:H;dr|�,�����E߅5�:
+U6�����H��֠j̼��]<���j��hn7w���tӵɛ�A���Z���ib�;
���ܧ�����}����sFN���A�S
�q߂ы���f����`�>��:��3�k]n�%���}���n���r
+Gg�2vdlK�R(���S��I��{��y����[8u�0R�`��>
Cݖ�>� ����$I
���J��vR�=w
�nTג��� ���F�/��~__q틏
+6������<�O/@[@�

8&�O���=褯��fZ�5RQ��UZ&o;J��'-��U�ф�͹�U��S��R���HM�]����Q�K��[�+%n�ۈ^���m�P���_���cw�z��nۙj�B�X�mEǽ��?ԛ���L�f���ԚC_�V��3qͩ���9�6Y������+�}vpZ���Z�ɟ��� �;MxI]���:=:��.�+Z+��"��7���wk2��~
�[�]]��xT�`���Y�F�KQPP�Z�ϲ?�},Sk��ҧ�\�a��Z�{
�QߵT�7����Ά�wtc�֤�}��Ss��B
}o"=���M��,ֹE[�=v�~�q��K����������~|q\_H��u�&r���zٖ��uCiI�^y��u�
YGoE�g���/��z�,�c���h�>ES�R�{1�}�
,�`��
��_�uo��lͿE�b־??/m2�;����Ñ�������A�<Ƿq�?��
��ت�������j�/�;~.徱�-nq����br
��A��7�nΩ�����D������T��v�#��ö�5Zߞ��ׯ�꾪�Uء�J��!9��ǔ^���.�� �F̅�����awW��#��Cq�mΔ����{����gHm􅒹���~V�Q�s��]�7�<�\:�]���>Ұ����]�et����i)UN���kH���kߌrW������v�R�?`C~0%e��
!���*ڝ`>��e�^ZG�A���38��>�������rSz;f��D�̾�
�h�c�[�OT
n�&�
ZM
I�������N"���YH6���p.��~�(?���m�\��]�vM�j�5�+�a�SpBT���ݼ��gs��
�O��cV�x��;�m)�c$;�RO���r�E���Z�tiS�W�����x��"�]uyZf� 
���t�g����b4~�ބ׀l�ާ;���3*4�Z�jʹs
5���������4�SR(�X�h-�=�W���XeU�X�^��(N�S�o�w�6����_Y{��I�w����Z�QU[CR(���Is��/5��bПrWM�-�m�����R��B������X|�X]u�Օz;�G9�o�Z��6̣Y<��Wx���tĻА���X0��ۉZ�W*���t/[�$�Q[�x����~da�q��
mx}ԕ�n
�h����f�q߈{�S׮��,����Js_;�������2U}Q�0:��
9�#-{/�x�y����%�
��4��gO^H��!�n��1��@S���,Ta�7�=�n���"����FЃ����
��LV|��ӋR���g. [...]
7�x�t
�5e����E�n�_������[z���Rx�^��8~�o�$3Ŏ�7]�t+���%����'�����o�C�&�j4܂��4�oȼ.��YوZ�E��G{�0��׏��}Ke>ʭ	.	��W���E�S�>��)�Q����e�'�l@0em4��ҌY�u"�����o�4�G
m��g~
힁%����T"�o���^�*ɖ����A+@���[!�-�^z9_߬����[UwW��/!
�!"gs�$�dZ�XK�
`��n����2��07:�f�ݽ�Ŗn&�Yo����)
?k��Ԭ��
G�g)}Yo����ܝ;�qf���&�5v/I{18��1
Rv����Fֶ+���,ˑ
���4���xL��y=�g
<�/sf
Wbu���V[Y�y���Y��){��ͱFǀIK�:���^<s1:s�5=0���R
�r�:\5��׮-=K'5��u${�����C�q(
�e��W#��C�5��]2;@�al����坱�J��y]�<�ݪ��F�S�
��p�r<W���vK��l)L
����KeSv �G�n����+���؝�+
�R��=�@��dk��[I	:\֍s�Ѧ0�гp(Ҿ���L5�8rW��Y�#����|<��*�9iJ��q �:�s���E����xJV=��w�w�S�RQ�|���M���?;�=�5�/�k\�
��
�wK���#���ɍL��+�
S���������ǣߕ'�'��
�)���ҕ����ֿ�@Im�se�(fa���q>z���S7�=v���E/�����s'ޮ�-)�Z�;����B^ؑ����Ӟ/���2G�~�Ϝ�L\�U��-B�)r%�����3�6�6}�f��2M�c;q��tKv7�֐�
����
+0��8�}�Og�z�
}��
>n�R6������+�H<"-��E{�M6��5�NM�L��a3"z�r
�
:�'���#�P1-di|���;����{V�m�Qi�ݼ�gv�m%�Z��ܨ?.ڛ����͸��8c�<q;��	,EP�B�hԍ�+N�-g`h
\AF�g�}��pl���uu�j�͇��&��4�ŕ�#Q��-�|V��T��U�]����6
��ۿb���o�
=
O��sA���˨\����
1�A�T=}�,
7��
0_��ݤ���֬b���
�BY��i���M�8�
�
�`F�~�$8y
��+<�E��pƧ��E�U.�/Zßރ
+`d�e�i�uo8�[�&9�\��d�R
5U�:;zO��j�+�L/�#��VO2.HP��t��'�1xX'�ࡷ��ky���z_���s�ӹ��~%�G,�q�VQ�e[�8g�E�=-2�kݦ���h��O8�{*L����4��h�;
.��������m�
�T뉍�,T�J������z������"�v\��� Um�����w��8C�֑>n{��ȭU�9�E��&}mZ�S�~��tZ�7˲��n.&`綶J�VU]0�Ν{m��Q$�����u�C�|�0��:}��j�Ö���s���E
+��U��t�A�,ZAoz�Lp�y����l��%�G�ʶ��8	G�ራ�S�#C��V�a�*�|��������֘�Wh����̙�>��<��J�J�UY+�Z<Q�1���zIR�
zL�I#�i�v֒�Q?���H���9�̛�բ��ُ�B ��� ��o
�R��
\J����
�ͣ����00
�]��P���?X�� B����^^G����ݼ�TnS
�>������>j/8Hz��V��~
+�?0�|~�]
зo_�r6����A�F����aQ�ަv�;Q`M�:
���!����7C�fU/�+8��l
��$+{�>���3b�o|�Y��6c7&QΛ���|�h�\i�-y`�ގ�4�}����9������kUz�nР*��	�ְ}|Cۮh�Hj6yd9o]	\��)�}��
&
�`���>Y?�:��d��� ���&۝/
�.k��	����eB<굵3u�������Q�y�����zsm_﹞6��>�#�în
���T��.�����k���v�S��CJߝJ�\�MW
>]8��dY�f6�e����\��
�\{
��L�ٺ�pG@�"�^w�~���Z7�BS�:
+D*�;&"A_ΏaN��9b��h@<D�
��:v��u�(�Jy���
���:�iUO�?��[�x�PaV�5��J יћ�b�EK��R�,l���be����O��x׈�
��3��>(�0���zI��{�V̂�6)乛�����Kc���A!3������Ʀ��4�H�[��z�T�Ʌ:
���������+ܶ6u�!R^�w�\������
�y*XA��h,��'N�Տ�����
vHxn��2W(M�͵���A�Z�^�OQ
ּ/��	K�q.��4��]�p�a3�v�X��-gK(��y�4-��O�`�N=~��SOEr浽���G;$�ߏW_C{u�!���-�i
NU��عk��d�������@汏�׬DA��%����Fxhv���ׯ+�a-���s�$t��
z�s`����LZ�ߨ
���Z��"��9ٰ�����܆��]�Z��������.�c�l�o��]��F�ab����&�Ǻ�l������;usVԧ�7��c�
�vMμ�h{��1?�����nk�_9��h�O���.��ݱ�j}��z�
[��X
��b
�{�t��
��@��䉛5���ZS��{m`.s���ˡ
S��)"��<�„j�[ؾ9ͥWg���R���/ƙ���ŝ#V�]C�Ć�nĒ�cc^�v�!ٕ�;¤�S=r���bU�9�_x ��H
+�Ǟ�h;}���	{v���=�;�JE��P��w�(F�����܇�gX0S�Z��V����[!F���3�N�ȤLG^馁�.�|{,bgZ�
�#��BB�]�]KM1k��On��.���?w�f�ƁWζv��0'�k]�I�n��>b�I�y�ھ�[�n[e(z�
'~1H
+�)�Jv�ڡ�lY�s̺-nNzT��j�	f�i8���������<V���X
���Eq��!O��H��V�d{��ܓ�ި�>�&����
�o^�wB#c�s�{��H�
�+^Ũ{Hh��eT�j����"
5 �^�oY�oA�`v�`o�
T)�ٓ 	���#
�=�f'��������W��d�ܐ��z�D�#k�|��r̙=�I��
k�:{� �li8�qF��a<|sqJC��*rZ'+����4�s�^�1m�2KL�B 3��LS�-���{&֢7/��h;��}�+R� w�4q֮��q�&��lh��Ӣ�.�n���(��'��T5�nt��" [...]
�z=кe!�hηl�$;�
�k�
���fV�8n;z�Ue��|��
�I�|U�NJ�d/pv-T4�"6�
��/�юc�J���݊
&ƒ�U�I�����SZ����As���N�
Z�>9���6"�� ^
�Vxkp����Vu����8�K�V�o�i�
����x$����Ҡ�4uJ*u����Q��
K�F[o�V��p��{�)��Q���/�����8hﰁ�K]
座Ϊ��pi�m�E����Ex+s��dC�q0�0~y�5#gz�TR:L	ʮ��ReH���{��4
�d��r[k���ϒ�8�I-|���u���!l�c:VN�^j5˸6
H���-���J��Ëvc�S��,�lJ&嫆����ߞ�Đ�u!�k�R�^7�����+����v��$
�/�]D����+��
��4o�X��z�Ѿ4�
A�X� f��_g¤=��rĄ�((�ŷy&�\^fF���=�m\\n;��T�	}��p{��i��r�zL:��Z�����{��
�f;Pׅ�
���uo��^)�Rh���
�
KZ�����@xo�pN����@փ�p���e`�K������� `7T����w��y [...]
+tK0��ˬ<��w�*��'�EB닑�����/�5�*^�b�ZJ���ː����>{�#�n�[ν@�Ttmm�ʾ��K��`�!��|>�2�~�
��D���\H/�¬{~�Ú���A�q
���'`���TW���7��
o����S�Q��v
�A"�"]׊��k;����+�-r��
�V�ߦ&�Sq�8)�
ˑ��s�fp���ַ��)t|�99
�ߑ�VO�l�齭��Ho��h��Z�4
�3��:k� D[������E�(�x� A�k�a�aV
�H}/
1�����U��z������b%~X��Q�;ok��t!y�E��ַ��`�h�B�Ό�����_Z�B�N�
}���zY3�2"7�
;��u���aֱ��2Ч��V�  �8
��aw��r+�
�v��kZn����

1��S�����Tu�
J���vs{��/�(��nI%����xC�`iնwd��f��P��l͛�WI��u���!G��z�K�RM�&�8t��\�l��duat�~��yy�<��[�8�:�oL��u��d��J�uA0�Nť$0NrN�+��S�v4�k��Fy���&�;"$Fú>��g�N��#��X=�i�l�N^̖V��¾�_�8��ٷ' ��*N�R��ه4q�#P�w���-X�a	
���O�i�߷L~�3c}grί��GG%�;l����+�^g痏
�x���9x5�\�ۀ���^�ܓ%�;p�Kl�O�ѿ�2�+ ��60�Y%�����Щ��^�����+�Ƣ�2�ݚ�q�����0��a�H�7��^rע�y�"�C
�«n�ب�@U(�Pس8R�}8����u	��<�mv�����,�U��a��vOyh; �Ž{g׊q
��y�qK�{]��T�5�-�œ�o�*}
�C <�
����b�/�u��OlOz��!Mv���̲�K[·�-�&5k=n�j߽4*ɺq�h�W%�%K	N&\|
+nXi2�9��ؿ����wWYn�R7�[A�2 �	�
�9c�u�
[W�X�s�@���L8��q:�hF�#�`�i���T���Dq��U
���З�w$���^6p�JX��ʤ�� ���et�6���,�V��^����
挘�-�
$j)Zku���Υ^<��,���Q�塵r�>1�jv9��kS��C��a�!#�M
+ދ�ť�!�`e?����
g����9H�	A�bJvb*�)n�ntE5����ůH�m@/�åuo:,�<��1�T ϱ��Pz��p/�.P]��1�-��� ��AQ�F�m�[�j
Q���гj��~�Υ�
+��VhM�'��N��^�k
'���Y\
{�߹p�b��g(,^XbM�lf�Η"ofٖo�bW�p�2�I�AEx���+j�&Ӛ��>k}z=0
+6�b���^�f<)���e��&|��m)�bx���z/�` !ͼ�n�齵��#��=�S���ق�r�����X��[_|��'�ձ��NF���rc��8P�_��5����}}ѕwf�
�e�d�N+������{ܴ��4�(��Fű/F��
+���M��'�P� >�Ԧ
�-���CI�n
��GZ� �ݑ�S(���
ڪ�#�W�!��o&�
����{���Y��W+x����3
�t{��^�R�4�Q�ԉ�B�p*؁ھұT:�X�9��|Jz�.�[0�9��/Z���s�$�����n�>V�ָ��e����
�d0��u8��ࡄICN}2X��W�4�r���	�3�z�5�vʘ��t]�	�������~���YR��
�lp[ړ�AἉ
�}rqT�&��7��:C��#�<���1uE@��o��]�4Y�}S\��sii
��͏:[���-k _c�n�L�ɢ�
���3V2̪}�	��|
���Kפ�lz�K���>bþ�뒍��\kV
�"��'3
 "��鎔�3U
u�X`�^-�;�
E���nWH_��by�+
t���
;ףJ���W���������K����X*��0���E��Ԟ:���%��gꖷ^5I��lz��mS�D�:E�h�~W�M
}���L����f�B`W��G��h�:�] [...]
+��s���꜎>�m^T�b��}�ޅ�fX�^5
n��t݁
+mڅ�l�?4-ɝ�Z�\��7�&R��9��{(�V��O0i�}ͼ���`���,���=��70�5tj(^e�
x�X6tGj�s�f��zy�uZp��=����Ēl��f^�������u9u��p*�r�8ز���`�\
��\IB�U`ƳSp��p\t

M`���
	��t��)n;�XQVh9��nw/���{�ܟ%�h�;ߧ�m\fnA*X�762�$�P������vv]�-	����E��&}�s�"<�N�\|~���1<t�
����蹵/��q�i�҆�7}<���4��h�<�
�zٶ:ܖ�*�����c�G���^��.�U0t��k�,fwV��H����r��}�-cu��<Ǻ���=s�/P�[o8+ou�9���W�^����o$��<����y�/�Z����nF��������k�g]Y5�k��ƪz�9�m�R4�
	b�tI�|?H��ps;St�?�)]l�vQkjj��}|
+�57�k��1{]����"PQ�+��k��a)�3�<��0f$��M
�����Grp�I	;�{�a�1'��+�"͐o*۽�گz�R�"�Yק�����t�&��TS�WW��yܠ����;r�kJ
��P���u}�|IAu��ۂ7���R��N��~04��e&�"�kc��Q��n�炣�۷?O%��YϪ^���������
t�US�y3 ^5�7Y��{�Ӡ\���Ԋ�n�b
��U{ƾZ~��=��O�㔷t��M�=�i���w�W�u�&67ά��̈�h�4X{ #�c��
H.��{���
m�����֊%�R�M4Lf����;8*��zi�R���S�
+���;k��9\(1����]�s��x�.��„����&�i	y�u�[]�]�:�x� ݠY�\���
���'�{�%�p�*�w�
��_���_uXytBkN~ ��&#��W�锰|��b��ʒ����64���z�����}�R�v	
+W���Ӊ�5~W�6�o@=�c}��!Y'�k;Ж�������z�
���z��Ǩ���*���m�ρ*�n�]:Z<�1~�-��Dn�ϫ$�v:�R��%�t[ҏ����8I
4�`�����d�Z�*��cNZ���>f�(�b��6��{��2hD���B��1_
���	��ٿ
-��pWD���۽Y��<��t��
��X��967V�9%ק�:$^{�V7�E�_�E�:��&��PB���֝�D>;2/4@�/�DB�uI
cڶS��AݛO�
�_
`�
+~�Z/&"�ջ3��+�Xnu9ps�9�y��^EkQɂ.:S�
��t�K����ZT�����-
瞇��O#[Z.�p��IҀٕ���	p},/�+Iq<�ޮ��G�k�^d�q�M���%�����zI�p�U�A�Wf��@>
����Dp:��Me�<�/\�[U}�������Ҕ� �%��B��M�|���k�j;.��M��k7����
+Y}��ap��
H(Z,Rm~��xi�L�(������m�? '�Y����T���P�[dO�^��.wGa���-
�-�$(k�׵#�V�m
�+�Ϟ'���f��3Q�ͭK	!�M<�J�^��a�
����{|�Ck��9�옃/9���pa�
j��g�|4g���3߭ �ܿ
3�}6�25k�i�����
u����f��8

)P��8?@X��K�)
�DԨ"��%�SMȨ-č�7���IU9ZT�ۚ�f&�mM��ej}��to

E�K� rޜZSx����x��q���҅F�t�}j��>F�}�s7��J���=0�Z���ͼG�S��&f���BuN�p2 ��^a�-�s��l�c�릒���:��`B���8E�4N�gBe��O�FGmF�Ŭ�?S'���5k�͐
�o{�O
��}��\Q7y��x˯������j�h�� �����
�
_K���A���"��S�&�$I��r�G(Q��3 ��(*�Jݗ�Aݱ*4Ls�т�ၡov��T��~�n [...]
+Z�֭�~�R�ZsE�����$h[�N�fȇGs|
K
+5C
e��S�23p�A����00���L�oJX�-Qx�0g3d�
+~��[�9�E'D`�m�h$���-�
�����¤ǫ��Iނ	��/~�	�����
!%�f�N�{
�#�
�;�Άj�f#�M���Hq�p�!ܭ����U�P�ԃF�v���~[���z=e��	�H
l�W�W��m���7�b
��C.l��p�9��"�yb�[����c�>P��6nFQ��QUi�1΍C�u@�Tz��bif6��Z�݁�6��s�"�ۗ+�����
�y�lN�OQ�:P�5
	w�*W�{�]���7����*�^��������G=��dz�w|�f�~����k�͆����1| M��OVKi��3�ѹ�ʾ�e�l�B��Q����z�rڒC�̛�Ou��=�
S��Z;i��0�o�B�ޝ
+%������s�gP}�R�f3qaX1�)@������cC����a���n6�˃0"WE}�f{�%yZ2�v
>l�֨�Z�C�V?-� s�&]�W:����+���K���Q��o��s��M������[�]�;C^;%�[
���GX�
_�c����Y�y�eX�i~�эK��鵽y�ĥ:Q��gO�O��TF�$
�qw�P��
�¢�\�1[MF}kL��`u{(�Q�[-��;�s2�i��wEF��my��ڶ�έ>�����dz�`���w-�0`��V:�8�,�\�{�N��\�#���
�8O~X|���0��	���LVZ�Q����:�=F%=S�v>��AR�%�&1%o4���{Hֱ�F������-g7��\�G�B�HW�1p��/,��kz�KMޡ�Ճ�f�j��/}�P�s�yK�C�tY+~��_s�59F[(�hK��ԍ�c�q��7����S�ޟrK
��9�2
:�?�
�G��1{G�I��G>��Cey������
g�Ί��1Z -��<c`az
[�vr���1`����xa��6đ�UҮRi�H���<c�D�����
k�iO��>���
�;�W*vG�e&��?>��I���hEzJ�_y6/�}�>z� [�;�DG�[���Zh��y6�O���T�u&�� 2�<.@��̺c���V
���	W���6z_�>��\��>m��{v
9삜�U�B�:S��C�P����Rh��˻w�HY3��?
n�z��LZ�_���NaTw<���c��|����~\�B���K���?6(�@�~t�K^����y�|Yw
>YJ Թ��M���?�
�#ZX�:KK��v�p�ʡ<l�P{6
{����8K�X�

+�,��7��{Ԇ�'Gn22��Ï%�?�hiP=jI|i�Yt�w�O+
+�H�
�MB\Jn-Cx�2��\
ᡞ�:]��YM�,n���7f=�Zv�ά��qofU2
1�u)'话d��9����Q�A�w�v���p��H���Gעb��Y�U}j{��ԥe'`	~7[��)��U-�����Q��� �R�,�k����Q�0]��O�W7K�;W��9�솲��P\E�z��8�����9ܨ�j6�&��[��-7:c�MHS��yڵ{;\�̩
��xw�
g�
�����z�8��1g}J�)mŬg�Kb���L�Ey�ێ
��t�}d���D,Z��&A�
]]��F�&��rl�N���J�yNp��&��-8.!���&ϱ*��M�/N�iP�ܙ�%�!�
��\������J�E�*�'�yAU��9�T}������ẁ]W�~u�Z�u-C�7܍�ж�q@�c��Q��8�y�زfo6����ĥb���F��q�U�
w�eQM��R��N	*�}����N�)B��
V�my���}7��&�/,�v���b��H?S����N����*/���.O4
��޳��.t_
���.u���G,�����il�"<#��U]�Xغ��>�V�/k�n�?��u�U��N��ɰg�R�[�{E�̥™��;vėo�Ng1�OÈ�[
0��͠����j�m����,�GsK���A-��v� 9�Z�N�ޝm;k��T1�22��	訙m�,��2���hR��x����۪
�"����}j~\{!�
+ࠔv�E6��/i�.~$ȷ[Ny{�t��v�8o
�r���\,���8q����4�=�'�ۓ
8�����;��B
��HS
��W�Y��-rH�e�w~�p7�����l�nP5�=~
�e=1]�ʸ�9�q�A'�Y����*��S�)�d�Q�F��iǭ��k��{U�ڝ���y�96R�=��;�W�4W)���<y�̯���h �#��WC[�&�F�M����m����Bo���<V�Bw�a��V7yB�&}��yٴ�Lv������hM{
���N�;e�%�7�DH�qsIU��A��d��#���[$�hќ��r�n{�R�jl^�̍{֧q���ߎ<\���]����T�
��0-
ig4^�%�-:�d�nf�-2���u��B���ڵ ΍>d$���R[n��et̖�
�$mg�
����VE�v����$��X
 y8�x�f8���&(kާ����>���r�Q7���R,d��9��G��NwNQP�wF��/����T/�x6�C�}ι%��'�a_m���,����ԡ��空��I�*��w
�4sX��@
+9\�Os�ֿ���Q1)��u�i�%o@]4h���
�}���F�[2�n�>Rm+-�ڰ�.1"3g��
b�RK����-�Qj����z�d`GkC�0��I[�)�@�����*��M�@1�H�Y��`�
�Tz�<�������@�*>�k���is�f�����w�
����0߭��#�O�;Ӑ�ߛ��w���`~_��
D����3���E��#����}k�m�Ƶ�2�om�.�MNr��#j.�/�
��eW��
+^[��h���n��	Iq
+�Fj�{��=�>j��N�23
�,�z}LSuE�
�0O|�S��}C��| 4�*搡,�>n�
O��~��
T�_\�h��O��Pȯ�V�M
�W�4�
0��e��N��y�v �G^lU�>�<���Ƨ|6vy� ��';4��
m&��h���`�rnkl� �k+�B��v�M���s�sl�J�^�FY� �¼1!ϣ��.��ΑK
�����^�j����iHp�3'�mX��� ����w��{��A{���j>�v�	5ܬ�<Ǚ�c���Y%�9f����e���;.��aK�������qpm��'�2�7��M{1��X
ZN]�Md�u�� �W�U�����>[�M{v�ƛ9U:�
+�����TlY2a���?�P�ִ6�S (�P}&��Ep]=J����[#��q����w�$���|�"�}B
�JKC)��ߔ4�4�0)P�|D����;����ɡ�o��Y^դ%
v�K��)E�4���`S�����ue_K'~�|o4��qj��L1͠��z���i��$Rv��*~<���3�;F����y�0A{O����<���������i�
�3�
��q��?��gf��|��m�uoF7p~�����f
�V��Xȫ(��.~�u-���+�O�y����}M3��T�<�#O��[�
�9S����Y�>�{�=�W�vq�UMX-l<;V/��@�7s)z��U�[�b��޽C�
ܪ�j���j����v���ήw�W}j_��l7Mp�0�o�!k��]!}
�A%�!ڧ��#�
i+g�.���,o�i�����Y�Zs6ˎ
Ƕ7u�5vUC>�J�6��[�L��fc��I���7V
�ctdr1���V�N�Ш�����z��8�˻/]���|&&�
+r�U��kK��7��
+�Gꙛ5|��/�yta̍�������K3R������Q�j�aȍa��� l�|��)	j�'�	;֤O!Hz&o�X'���"���<�֡5'{s��o.;��^*�m��]�F�m͎�
+Iʝ�I'S!�s6��3�n��~m�x�z�
mk�4�n�h*{�b6��y�5���]�\�]��xۘ���f @6�
+��g4�L8흒V�;���
+)���R]�/�g�,���g
9�
�0x��/�T)WUR���hk&@sp
W���Tv����BM���ze�����#5���h�
����7�,~B��X@4E~�������0������q��6��uWϜ�,�k��Q��?���h[��Y�}tF��:O��;����ȫ s�q�6����L�>�!�=� "ˤ�W�En`!��Bt�U��B0
x_�	&�)���
��m���o�D�}�`�_���B��nՄ����p����]���)V��緬�^�K��OP��
�6�y��;8��(� �?��v�����7���r*���
�3Α�,V'u�6��X�zs�h��q����������
��
�Q�=�4D��J�غؿi�
�G�������?v����ǎ�7�	b��?�������O
���������+�_�;��:�?�_
��?�?;�����/����w��o�������/	�������_
����_
��s,]�����s7��8�|,�1�?�_
��
�_
�?+����g��/���r7�Oc�L.�fY}+?��]F�2,�g������e�~}
�̊��X��9k�ލ0��I�{������sG��Ys<��~�ܾ�3�j��P'��9,�2w-���lq��W!
SIs����U�noU�U|��3
�F�؜
��y�ȁȣ�ߎ�ηo��9� R��O-|;�x����o%�e4��f{�
��3�d�ؿ@ԣ����0km"�O������?`���Y��y0�˝���y�j��6w�E&��=���ȓY���k6^���0۶
��6{���ꔖj�M�
�ga�R
��� [...]
"�
��s3+���Y�p�b��dޫ-G�����]��;I����T�t�#��.�Al=z�y��9���r�tX"�����㸪
����1-����N��f2rn2��u�j��k�ا�>�J�]}��x��r������;Z��1���ڧ�k�ި���A
�"�-���A�ɣ?��A��hQ�^[�v���t*��"�V�(
�A߿K��b~�����o��/ wԕ����~\��r�Fr�X-������Z��K�o�<��Ӻ3[��QZL"O�������ܩF�g���3��nN���x
���t��g� ����v'��=��+T�q:!棴,����R��0����
=��]���s�;���/�?�:7��V����I����F�-D5
�y�,�o_	��H��
��kr�Ov�N��-�
E���ᴒ׍���G������F;��Q���j2�)��<�v6�E�?
O���
�hWRHL�h�[�
�N�֋��i/<	z7�2�����G�og�_�D�FwE<��u�T��w��{%E��ݶ<���)���Z�jO:
+J
%j�S'jb�($A=
:
+���=�ۗ��
)�~�o�k��Y�h��Ӣ���I�6�z����^�M�M�΅�5K��^�Aj�r�X_aTo�%O�d�;��4^r�����޿1�n�o\�Z뼍ϯ5m�������&���k^}>�*�8Qwf��Β7��o7�MS�m��p++U	˝ȿ������
�
�g�E�T��	WRSͼ�P�$�Ek2t���5�~�5}Y~M��'��D�P0�̻d$�Sɠ�UY4&�5?���B�2��]y9�@b��?06����O�s��a��ma��am���Nv���
_�@ǣ&L�G�(�)3yz'U�ۗ?�� {��{Z{#��z�/��s]Qdm�G�A0��H�
"��E��+���fv�~ך��s�U��릞*��,��{��#?���1��-��t\{p�Vrĸ>�d_�h���<q=ׅ�h�y?ح=E��ݾ�\v0/=��){�A�_��5A����������3�����7�ߊ�'4c�o����ߩO����w�k�����>�}����:��#Š [...]
+g���2vИ��Q�T?<�W�}?|o������]�\����߅�P��
�Us�0�ԽǠ�xA��Pvn�A�tH�
�FwO�^�����(D���~�/��:�����R����
�W�<�-@������2 j��/! �^«l灦X+����Y㗹0�V�>V��^���n
Ro
�qC2�7��N6R��*���T��3�u1������?D�����[>yA�p�e�g����\[�h�PU��;_
�J�塌r at ri��b�|�����̵���)�z���IA@Ӽ^�/d��AS�Knкw�8?]�2�"g���a�E�uFaj��3	�
�"sk�xY�<��]�
�7��^�?�{F���G�&J^@
�f�G�Qy����S��x5����@,h�O����	�x*�A�b�[j��6N;�f/��K_ut�﷽_��� ʃJ��F����/
��0�N��(^:_�JϹ�
+f����p��A�4�ݪ�p�^9�mn���'ɬ� RR!$׃�|�?-\�>6���|�������� ϝ�m��I�(�K1�#GՁ{��������]����f�R5��6�Z�p�Y\ڸj4
�%�V
y���y|<��� 8����U�Q><����M
�`.oK�v
�;�){��{z?]H�D�]Ql?ٽ��Rz
�S�Jgs7Y��!�d�����n��w�
)�Ex��J���*W�7�n�:�t˗*;
ZY4����l)�#
;�5#H���ON���k��,�D5 �'@
�EK4��1��o ���U�=�O��ʴ���#ջwx#
��Ӽ��'7�Hgg���x5�0�C�S1��2d_z�2��꨻!����v��_�G�I��4����Q��Q�
+�s?�FU/�o���?s�52+�pH��–�¸��pse���A�fN��)	hcum�d�4Y��.�u<'�����U:F����2�6	����6��	1��j?#�����7�\.��1� ;gʭ�&fCy4ɒ^a�pa��h���CuH�g�/ 5��_BT��LT�
���T��]�NC&�ES��U:={7����:����k��
�C���
���Q�^���g�F֣����f��S��
+S�<�%Ġ�=U87������y.�
=lz���U��|��Y
�
�A<���/�]�i|0X���g�!9���e�lo���]]�Z�	Q�t�<����e�r�G�S���H���vX�
���GBZ�׵���+`:k�P�X�Ѣ�+#��ZA*|TY�+^uE�O�U}�Կ��{��[�	DU:�
rN�1+�p��gC|��%W�]���Qn��%_$�`
���
C���c��U��=�\�.�[����B���m�yT&�b?,�=5xB�	qP��e�Xk��P�Խ8X��\����E+TM[1�a.���i1Ȥ�<��(0�y۝g{�����Ϡ�ҟ��I���t�bu�+`�m��*o��
-�
=:=��)��±�����;{��RN����4ձ�2�i;6�
@Pa��jp�E���^?B
��C
0���Q���i�;i
�B�X�X��^y�7�N݆O�8���F9��*kz�]�5�j��_�:j
z9����
8�=:��enf�!��2��ۗ��+���'4c�/�~B3���'4��ƾ.�	M����9��������~s��_�����s�}������C��o�?�_�����\�#ZΉ j�Q�����3�O\��nF����0%�8%Awr��^Ek��Ȁ�d�]�pu}�����^������{��}7yl�VV��˯ h�>4�Qɷ��0{�s��jγ�'Ȓ�+^�X��53�?����Ww [...]
+ν����d:�^��~�e��ؒw6bjȐ;Z
G�	���f��������>��ݴXK�����K�B��
c����C4*��!�hn���Ur�ױP�]�;�p��
2
{���S���
d�;�.�����O�{)]�)���./��}klj��Ws.��vGN��'�����^�����;�>����^LL�����~X<v:`E��ɶv�#���L�v��]���w�#[�×M��^9�d��t0�X��V@��������+=7�;�{>���,���A�L��ӓ��5�e�<�I�@}��|;܏G�E^�kg[}ll!�[6�t�lZ
�l�t�,��Ġ?���?EA���Q�ѱ�~����
6�/�|����	��D?Q����\������"�wzq�.S=m:X���7�x?gѨϞ��<�S�L�}1�G�ߋV����6�۰o��co��>�|#C;x���0
�S���ʥx�[xx���
�1v��u�<���%EyD0:id��~	QY\��9؃�I>��
Ietz����u
� s���Q��ل�;Qf�hƹ�w�w�̳cm)�l��Fc�$��q�'��L'���y��;�:�z�?��+���
��@
���Q�;2
T�x�"��
�W��ۭ�� ���xpM>R8l��)���q�i-U����Me�_�Z|�w���t|܍,|���/�=;�_�@�������u��
]\�sGk�̓99�Q�TwF����
�cFa���򱌑&m�=�Ԕ8,M�"�7
Շ��+�������2Qe��6U��~��\�w���l��F�h�]he�H�[��AN�7ܼ#m�S;!S
���v��'���:̠�'���S�C
�Q����@}.�Ї�TTMp�ÓS��e�Ku��d�2<2��t��ӭ��W��"3���bN�G;3c�q
�g�;�$6�n(t��9 i�u�����~Tv1 Jj at tZ^GՕ��;��
���
y�HT-j
`[oH
�j
�;�rqu�`~�	�BS�Ę"B�L�#��p%["޳p��D��#�V]e�45�U�>U�@�N��
��{�z4+�����Ӵt)��.��9T�L�^S�����4��t]K�
��;KOy��
]��k ��@��ݡ�U �ඣ�h���
���
3��AV�et�I����B=�i���Tk�uc�m�cb�����������Q�Q#�h�{�"%���?D
��D�2D����Pi�s�u2^�H�CY�V��&9-�2��W�?��l�'��Em=�s-<=9��\m�F��F��T��Nw�n�~
Z�z �
Q��@���oɺ�����E�2ڑ���6�$��(�w1c�
�S�q�_~5
6���0�T�����U�씖l~SZ����邿��
1���?U%�sA:��`�
��K���͞��l54hr�-��TP���\3�R�!�U�X�Ǡ%�}=!eF��Ix�#���%K̇�*5���l����WK=2=�:%����)x�H�c���^��L[g�����P񬺼e}!
+us����|
���
޹3�.�g���Znv���I0�Nz ��T��+�tkjԔf{_P���Œ'W�+ej`\��䃫%V���U@����)���z �f��8�9_����6��9� w�:�'K�=�y����4�=��A??�	��^������9{D��mM���h��*�>]��o-Fna9���Ь�0?�#�Ĥ��Q1h�=��,;n8(��G�|&���L|c�+ )
d���E%*���]ԇ�{���n at Aʅ�
��{NP̭�<!�����;�
6��xooh�hq҈}��j���U��-
ի�n*uJ?A��&v���Oh�
�WE?a�s���'4c�/�~B�
���������hƠ�
���˿�M���͏��;�������A�9�?>���+�@o�e��_Q9_o�d/@Ъ�a�}�	����̈S�m�%D�E�l���:i�
+�4�j�oM'����T:�*�?�J)Y
�!�����{���=C2����L�"�<+y��JkfE��R��`,aN9ͦ�W֮����J�b�4i;j�{�`�
lx���4�e���������
�,
�#ը���2�}T�:א�
+�`?�J�®�vik�����&������(�R��+�+�q[e��}^;��MX��v؇ǽ@:�Mg{���/�=;��>0+���-Ԕ��BF��m;A��w�k�K/� n�Z��b<����2�
Q�8��R���4����=.x��y[��v

��0���
�⯚�
{/c�g8�A��9'��u�t1�\�\�]'N7���ar�|��
O������z�{�>����
���
�e�|
EG�O�f��	�Q��
޳��[�#�U����2���˽���]-�9�i�ϓ>��Wcm�JK05��/��N�1[e%��̃��"qGΞ��ւ�p�
�ϙ��9(_G
�� �h�/
���
y��AF?�X:~ݵ���l�;^5����l��^�&���X7���֚�����9c7�
	9c��Os� ��k�Ol�q	UX�5��C���T@��>VJQ����l���Aח�}ݛt��N�`r��h�ڝf�k��B�8�W۩�N�нz)R��h�@����`�2�ICar���#Ġ�=�'��f��WX��mT�b�O!�۰+��й���L�K��y�̋���\��}�J��B�-�t���
/s��k��ʺF��Fg�LٙP����O�ST[�2�Q��G��'n�{��l���/��Lς�0�ꑘT����v�Ŷ(m�B��)�ʆ9v�[5g{��/� ߧF�
I5O�?�_5��h��hT�x�
�2�>,��
>o!�m�O��*���M�OԎ(٨-l�-��	�g#n����x���$�S��D�W�=�l�1��ǁ^����W/@�� QK�^1�7�K�
+���;
�DUD4�&,���Zح�N
�(���2��\�ER�FQ�ug�bA������v�����!�\���-�-J�@���jB����I�b�Pr���.��)+�
i����+�"�Jr�E����$N��!��V'
+���.N��q�ն|����o��;Ms�GՑc>h�
���g�������c���Rj4�
ZrH�WQ!N;7#;�
[lj*���G1�FJeLZٚrD�8�
1�o�|���u�~D���R��b%���J�y([���X��6���y[I
f�
+㋏�Eh�P����6�o(����U�S
��0�]�]i���������xsK%G�M?h:�_�
+mz��W��ܼ�
+�]���=aB��,�t���I��,֒��qx>\`�D�B�gA��J"� WD�W�������_0e��0��
�4wY��=�oD��,G�c��L�� �_E�4
ꔏf;$�G��97��p=~O0N��>�"�V����[�j���a?��\���FemD5�U�����U�,�θ@��FV?
���.���!L���A�b�l�x
��z����)�w�\v؍Ah��!x���<=X^��x����u0_�C�V9���
�J�Z1�&o�-w�k�yC�*TH
���Z�,=���8��+CO�֩J�ۢK4;)#�-����?�,��B4�;�^t����w�A�Q���%�h��y�k��:�.�����Ȓu���RHQl��� i�<��4����2I��C*��^z�n(م��EZ��A�8{�j�ٮ]�}1�P����0ȩe�TDn'U�VE�����3���K;���i�!S�F܉u^5����t�bCٷytچ��>@����s�
�Y�m& [...]
��<ȭ�z0�����~T�#D�1"D�����0*�2
�� R��-�Us���k�)�������Ӗ8ˀk�i�м�h}�L��b�n������Q�x�����1w��c���ĵH���/!}l~E��1�E?�	���*�	�o5�+��ЌA�9����7�C�
���������E����������D���
hRu��1��:4O�͇f
2T�*Q�p<fx���q�❷���W���*��_LJ�;���+*�c�1Q��G��C;L�D����=�|n͝�c��@h�q��5�ES6��s<���q�1�~J�Mݼ"g
�.
��ߒ����!��uD%��|Ӝ,@}��^�j<���;c4
(�r�˪u�U|1s�%�v�=%�Gф4X1����ꉚ~M

�Ǝ^�.�}�����+Qkr�M���[Ġ�=�^��� �kdT
�Qy���e��&A�r4;�3єg�qk�̘S��$C����h�A^y,Tţ�5��t[gm��n��G�
��w�oK�{��:�i���;�,��� �
CA����8��#�T�A��=;�u��nE�-s�TK��C}��[�М}��֏�E�.[�^��W`��R^,1HtW�:��,o?DA�$?�1��e� 
=��{
JBWy=)����^k��a�9�q���iw�mʹ��U	�F�u���y΅�nrv<)��M�hiچ����#�����&�(>x/c�zS�*i�vg�n��*
+e_�f���sS��$p��XpV��%3��:~��Uf�~Ϗ�����F�q�:���*�m�zc4!��>����殕}��������-� [��;Lӷ�q.�hݿ�hv�o��v�SK
+��D��h����v��Q��F_�bZBkc�:�ܞ�c7����6}l���dh�7Q�郴��~��T��t���%�
n�
v�b^�E
r��DZ��7
+^�S��퇤���ǐ���/�sM�4o�N�x�#7Y���-
���'��+������*a ʫ���^�acj�ZJ�=�gn���L]�R:�ԡO��n���R���b�1��_�
+�{��
���{fQjl�l�ic���?4��� ���@�=C҅�b�.��-��E�X��j���xsn?�q�@��Z�
\�O+��VTl� ���]���u���6�=���¥P ��Ġ?�?��t�@35���B���E�XT�19�&��!@�[�Δ�¦�93BzaA�� �[V�a���
__��)��}~���t��D#����'|�$>�
+����g�����h]�_
���cۨڌ�w���_a��_*�A�z�����s�3ZΕCt�Iu9�t��)�Z0S��U+FK�W�HT7]��#j�]�(ZX
[��:��l%�5Il�_����
+"&�=���B�z���x���
|�+��|���
gF�8|�d�Q�WuLt<i�����O5�ʫ-wF
���� ���-����&��[�i��Q��l�����ap�ќ���>
���z1CE۩���4�a�>�٥��S��];���h�.��
A6Ol��5A�}�k��K�A������? ��&h��YT]9���L�ש�y��	J8O��0
'�V�D�#��Uwso
n
l�t��t��k��S�旝���i
ZR�
]�N�_RmXZố�u�������zK8�
C��ԏ`l�����q2���7��>s5[ֆ������z�Aܯ���&bu�������k����s5����,zbʢM��w�A?*�Q��T at g'�J�R�߯�М>wTN9�y�;�'���AFbRN^��q�qV�R
"���:��Xn�l �ʩ��(���J6��ߙ��R���
7��u|���A㜿�o`-FUiӿ�����LA3+7\p��[{
�}�y=BaJm�
�i��~	J�'�i[Ny�F���p�`	{�[������;�|��Lfϐ@g�Fe�`�����º�(�@U��}���v.v��1
�/�c�8H�^9	���e��K�����
+�˛~
q��ԊR�e;/�L���z�<{��)�R�3KΛ��!
���> n�Yp��p��Q�:ݩ��nj��ʽ�![VI����M�Lc̫�k1�q��8��H��.A	��zK�9�`">���l�w2�T���
�Bi���.�;_�ʲ�W'7�c���l����@z����ďDT��i2�ѷx��(�w�Cȧe��r������?S4�:K���tޮF�LX�ëZ6�༑�N�"T�:@��HQ��h���
�G	���~H|����f;cZ�9�f���j�C�Sn��������|�}
f��7�����ki�;s�B��&��'e#s
���cL�R��E
��CQ5O3�� NͲ�i
��q#	��8N
+L�u�CF��s�"�DH.7p��On
r6�r�t��lj0���/V���Z�T��a|&�ژʶ��ѳF����d��u�F2�3���Aj� ׁcV�i8V_ġGV�"~�Z.��b1�|�:�0�'�	A���3�Ę�3���/�Q�2�!3��b[��
�,Ѭ�~
�]�:j<����7�f�|\%�B���!lmV]�R#͖�B��LgBZ�����շǣni7
ޝ���	]�gB��@n���\&1H��T_
�?G
�Q��
+�\�J:pD�
��d����q�!-�qYL��pj"�hr���1�y�G��n'���
+��n.4Ic�倠������i{9 X�z�l6�-3�i/'
g_GT�
+���+�Q1�~��.��YT*�`��v��z��nR<�p݇"k�
��\�W���1��NQ6K�XK��Y���6�G�)�D��?����4h��iP�3�o �_	�K�N�� G�U�Ox�Ϲ|]��1�E?���!����q��ہ�ЌA�9��s.�Dgu
�n��Y G$��
����QrU�����C*ӹ�ޚ���nDYa|�X�	��ߞ�Wm�?@
�*�3� \h�[�^\��/!*�;8*��:����O��|̏]���I�Y5�\�������8���f�k����%��Û��U���=�r���1���� ��M��w��7�1����#*���-z���3E��{���41�Br��1���Jٮ�\ř���w��rmw*c�N
�j}�|�ٝ9��U39���d�
��r��C�?�5�V
���YĠ��7Qa
�n��E~?'�F�|��Da 
��Ԉ�(�l{hS��s��:LKY�tH�"��O�AmkNZם�.G㐹:18fC
Mk���y���m�R��%DŽ
�����RI��c`��\���=o	6�ǽ�?g��W��j}��L�
�+� q��NZ�Y�9I
-�J�<���YF3�4�^t���jJ_���;ɇ��IK����]���W�v��R��?��2�<F�-����t���J A��%�Ɏ��
+�rؔO� �~(�D5�����1�@
ͦ�JuҾ�Ml�����++�Ӻト�����Q��O��ׁ�K
���IEe��E�3
�/�4{�f5�J����&ggtY9��H�^�
eh�����U������^��%JN@����z� V��ix��K��&;(��ˣ�S��{��U*
+�#?�C1{{�r�`��u<�݌]ں,��e����
��M����)R��7��6`Q:�G�mi�8l�����t�o���;Ġ����x},@b, �-����ֳ�{a�!�����ƙ��żJ~n�k�ϥ���������a}m&@.v�a���
K�
�c��b�����i��E!8";~��DN�|��_ć�;���A��\w�;��*SzU�A�2qM%o�K�۫��F
�PkxĂ�H��Hy�б����2��ͅ/����M�`8����*�-�B(�1Z	e����L.�&	o��ij�����Q�߀t��oQy
Š #�2
�E�N��f�8w5f���>��e�Tk��y���#��ܸ�^���l�,J(O�K#���!b��
��h)ɿ��O������2F,�X����z�[����B��:ӏmՂ{��q�F�G��T RoI��ɛ��u�-��x6`rH4���`EUVM�!C�׀��?5����4�e�
b�G�j�����ɺ�
�z����S��iĭ�����8�kr [...]
�E�{��V�!��W��M'������g�uVi�M�/!*�@�(��[.�Q�u� �0U��6
u�
����k�$�W�`�YT�Щ�ӭqiK>3eAD�e�_��6�$=�Z��uq)M�8VC0Q�VY��# �
1�G��#��݁����*��ޤ@R}�'�s���V�B��o����e咞�o^�s���g��C��L�)��¨�'����9^��b�$:ϕ	,Ev����*� 4�!2��kB�U
��
g��
��{���f�E&*pq�1��J�餷͉���*͘�q���af��lr�T|�k+
��Kr
��z�N���
�ŐBZ	Qi\G�⺠1��z�FT]
�����9n�f)2l�+\�t���C*�<�s��4�P9Aѫdr-�3Il���ʺ����T�zў
4>�E	���VOjq������+ �]\���� �jT�B�6
n�*���
L�=0t��2���s������A
���G�
)S
В�͹��oxi&
��T������2˲���I}	Q���F*��JYy���c�L�壃B�y������G��_̛�Ĥξ������e����;R��Ѳu�'�㙙%gV�
Z���Ĭv0��H��{���c�YD%y��g�u;=���]��3�ޫZV�z�G��e�/K-��
���ML-j��\����Q;#�>,B�
Υ2��Mv��tF$r�n$�p�X�NL�x��>:�O ���.
�^�jF�x��i>��d�;!���{�d�ϣMt�
��I�D���w��5�c�EhH�d��
��̥`�'oS�m��|�C	8/'�,	�'%��;�� [...]
+�M�;�A��
Q��3�*%�&�sֆ
�
WV��Nj+v�u����*vb�SF���c��-���'Պ8K+��t��T1���N��I��;�I����j8bf�hԌʩ�U��?���Y^?襲�S�W��B~�XsGߊ�΋G.�
+-��1��

����{�B��L]O��e�`�5���6�*'�)b��|��e�;n�v�moB�v��u�ۏ/!�6��5u��
<�80�����]��+ c�܄����`��c���{����٢�ͦz�����j���f�#�X��Nv�7�6?�'{�A$�w��;
�^�8��ڧ?��+��	�:���>�Ճ���K���B)4�a��ULZ	�|y�T���D�-�"!�I
��A�l-^�Qw�O��F�5v1���r0..�A�0Y���!Շ�!Ӈ��Ӛ�K ��U?��q<T�=���8n�Dz{�ǁ��^��,]�E�&T���������Զ<���� i���<h�?+��=}=����8�r�!�5W�yM�V��~�}	��K̶��y���2t�)Ԁ!9Fψ�-������J�ו�<f;�����K�ك����g����q��˝w��I�]��Ļ�@IulNJw�
)۩ܥB�,*�65Pj�!���OD����
+�6�+*f�bT$� ��,D��;�@��2TS�Ї�T���ou/��?�
Ǡ��-�2�΅[�t�Y�q���q�tc�W�q�
�_����r�x�,>4�H�WE?�	F��*�	��ˢ�ЌA�,�	M����0
b��m;*�����@n�@T�퇝��e�A�{�VF�᧦��%����2����,����
�ZB�t�^�u�R^t�fi�V�����}�w�ט&G�gj�-�G��ˉ�k��R
����MT
���U���
�_�d��
 ��<�u���
5;�!���ڭd��Jq�!
q٩�3�}�6
`������r\T�^���\-P�bTX��Q�˹Q�~U���4�̃��9u���C/}�v�R0��
J }�X MGX�6�F��:F�I9�S�;�}�
�f�ȴ�G�z�NpԄ���b
.��᳈
+�W�
+J��Y?�s�T��mޖ5�w1�
E�Frݺʱ�l��C#����Uم�
7P�܍H�><q6���ݼ5��ӝ��t��5�CL���S�wj�Y|�R$h�cT`��8??{�-�x
��R~�)c��	�x)�kj�Q*79�TP��Vs�JD��I⭫K�?�
��Wc:�_4+ �s�uepl�v� ��1軂� ���
��5y8*�.��=Ǩ
�w��A���+/��������1|.�K���p�ߞ(�+vXp�y�[3]ƴ�p4;Nڇ�G���3H�e}.|�{-mT�**
�=�X��!�'Qy��	��ru�{�"t�̖�`"r��2s�q�2r��rz�N��9a��Q�[�nv^������K���6���(���.'m�I�`����~�D�[ j��
'JG���ߋX���]bA�1��51*�/�
\ W˵�םV�wN ?�ٱ�ױfr�z����nJ�}/q•����&qO��x+ڷ����2+M��9bП��1U��h)�����O!��C�@� [...]
+�^]rYV��&�u��=�dG$����T���@�Hs��Aqq�L�p{�Ǡ��' 
��o��K�~j����J��N�q�*��� �a<o�M>
a\N��LA�/���ad�I)��s�rq[��>��=϶�莎���EXx�%�Y���f�3���3 ��{��b�d@/J\A�!s�*@'֏�c��ųO��K�s�����;+�Q�_�q���M�Ki��V|#�i!�
?h�%v?H��%��m��S���0���
��Y �j-*V��g= �I���z�nT�s�o1�:����˝r�S��:�8?��*�e'�疨�^��|��^:
�S7����T��ժI�81".�#
+p��%��?�A��-��v} ꗁ�(g��-��UA�M|�s4!yd�2����
�����
�*�D��=>�z7��y����f�j�.7I5k9�uNT��S��o;�`�j�� ��,޿&T�up�O��Y���1o��j�Y�$lD�H*!��1t�����X����,y�)�/��`Wv�ent9�Gd�%������m���TMl�3�����&���-:��T��4:{͏�whZp����U�7�t���
+�u0/~����R�C�HUw�����v�q��M����N��`�I"G��Y��zeUΐ�ֻ,��}�#�T�/�A�|�o�v�}�s�*e7U�������&���9�([�/��3��d+��V�0�N�n�),n��RJ_
�;\�լzX:�ܐ³-]!
-.t��h^= m������9Z�FT�N�{eq,�^4:G왌��M��\��>��ϝ>��V��������~{yt4at�
��es$�7�Ãna�J�]���[6���\h��ٶ・��-��/�X�
��b�O���"*���
N*ks�<�zx�Z�N�N�k�ͦ� �Y5{K�q���N	�7[�p���@1k���

ˮ���y��"����~�|�*�-��[�7m8��`5n!����w ���D�=ێJmU �ݧ�b�����I\��Y�M�J��D��S<?{�"Mi�-1l6w�2���[��ku���1{ig:]u8Wi%&�Ơ0�9�5�L���֓B�}Q��v�r��^�^�$#�z�K�7�3N,�<ߥ�a!�U��u��������H���Y������\�"��x��
��LT�iF���it
�뇘yC�8jX�n
����Ǐ�g��,�R�쁘���w���(�nx�)���Lm�
�
+z�ַ{�� ^�����%1��V�ab�8{v��&�Y��S`���J�����m����.d��k���w�A�3J�bЏJ���5�*�yxې/
����j�-e*���^z�_��
 ڈ���9V�Bd�>����
������Qr�2YO��1U��#ܰ��^�2�j4x4;��h��� Wڃ�:>�,@̑���G�v
:�S8��;VM�0�|���4�K4�/����M�,���u5=z�:���j��Z�Ka�^��0,��ެj

Q�

���������X�?�p��"���#߈o�f��ݴ��v$�"�1��9���]��!�4YEϨ
���!�G���?�"3f
�������k[@F
�"�e��D�z=i���>\h��Ծm������
�����VTiv�`
�%�� &(A#I����e?k���k<��
��s�`��yͻ�]�(�ɿ��ǃD��{���1��*��̼7V��%�f�mz� :ꈰn��Ai{�u_�e���4V�&�Z^vu�������t:�@�:/ѽ2?k�G��
��Fm�l������Oq"8��}f��*Nێ����D-�T_^W��TH�$ZW�y	^�08G�i�~vB���t�e��c����d\�B�I��>L�V[(�l뤴��D�-�Š�k��4KV�A��5��)v��vn��bt�����:��h
.�z��C��}̥uޓ/&�z;�ì������B�F��>Lva���w%���H}A�洹�(oe��l�糭5B��j,�3�{� ߛ�d54�iO\�+�u�Q���b��,S�aƢ�=�` I�}��>�Ft�`�m�TVZR-�6���h�Cy�����#��� [...]
+7�
�h)؏EL��B�Ͱa��v�m⍂��:
��I�
1\�O�!�����'B]�m�
���� 0b8y~�%z�AQ��*�(���YB��
f�s�W"?�٘"�d����è���l`S�~�5v#�	��?�XKЈ�?�������$�����O�z<����@�{� ��
jR�:��,Tʷ"@�^���^&o��rIcq $*�����J�f7�H�;�6�jh�r�0��;A/{�{t)���r��n�
���
�VxU���ę���*iǹ��S	K�_�A���o�K��5 �5J�
+Y��׶��s#kF�bL�D�Π��$��fR	�V�
ۋ
�� �YC���H
o
endstream
endobj
32 0 obj
<</Length 65536>>stream
+4]�
���o���6���n�{�>gL��;�v��k �w��ײpI�`�H}E��&<��@ewm/����|�zdd
ɇ "����|��
+rҁ�1Txĵ6�e �*c��<��9�F�=�]?�ΜiX�6]�i�Vg�� \	��� ���x��²�=�u5Ow�i}϶}�g��Pe,~0+�
�};��
�Iɴz��[���r�3L�9]�]������d	
/�pذ�V[6��,7L�o0i0�?�?
�
�}�rڀ̅�?/��<���t����]��.�������~����/L�>/L���
�3���ww�N��m��9\��{�v�jE�v
r�nWG~e��r�-�j��W%��'�[��^Z��@�0��y��A�{���P�MlĽ}� ˋ�߂�,������n�H
G}2��>��S�R�
o6��ԥ,+Ew�Lw&mUe��[qnx��D_N&�N�z�? t�_ o4 �Դ���}���jۜ&'0
�|ɂ��
N���x�_۷������Ӊt�o;�ϩ-�h"V�z�6gQ\�bcu��U	�g�R%M?4Du
e�]ƃ �-��S��
+P��Â�Uנ�}����ʾ�n�\M�r\n�ON�����3B����|s��޷W��a�D�	�����R�~���.jI����r�Y���ª���`�����?�D-��6Ĭ�5�
�`��w+�
���i�=2�'K��bF�;z�{�1>��}�j�|��N����C��/���*�e�e7��.��/� #�
�~_!2�.�'�e^�p2�5,sj�/�w�j+�U���f�RPаŝ2X���s�m
�[~�3��~�]|��
N�yҼ隦y���D�.��h{�U����ǶO��~�7��@w>;D�������1��(>��Q+~%���Я����FLi�$vV��<k�iuo������f��J�V��]ۿ-_!�����>�@Nc�zD7��톟>T��0���	`�l�q�`<E�{�� ������7�cָ�C�<�y�RkrAJ�X�Im��8+k8
nֳe�ɍ��mi�_
n�+_��u^���T
g�d�h��C������O�f�	3��? [...]
�P���%��Mţ����ﶯ�۲{�;oq�.JSk�&�u��-u�tԖÉ���3o=S��9�����O��Q��>��A��e�n�==�6wzt�� �Q
+��%��{
J��r�N� �F��C��1����Y��Cca�
FI��3��.���l�Lku7�����+i��nG�Q�*��eXW�As����B�>P=�*=��A��f�� �`�P�>�r�h�x{ɗZ��ޜ�����W�ܩw�
6��X�.�
�J�A�,���lN�K���م$0�6�V��0���Ak;9���$�u�u�������`�LjN�W�E���A~] 1TҠ��0��l@�
��d�_��޽f���]�C�xT�����G��n����,���C�)ge&��R��f���
D�oj��]����n�4x�f�x|U*C��n��s�� ��fac'��̹(׀�-��k��ݷ�PHߏA�N;i
)ZEfG`]�U��t��=��V�
H��'��k|<lъ�7�E����w��cgR�}�>{��9#��*^�[x�;��
s�_���[�pb\��W=�B�N/��P9������y�%G|ݢ�m�}SJ���V9�^�Ӝ)��`��֤>��κ0RyIkZ�ZW\�֥#v���YJNW��=Kl�<�Ź;�|gJ�l���qu�CtpK/?�1��d'��k:jF����hؖ���g�e�6&[��ha̹��;u��S�"��;w�r�v�Y�=~�(>/��aJ�
�~9u�����.,����(ԧp���g
z������xk�P����Y�����k�B�Ln�eR�����.�?Ś=A�q��#
;��N9J,/PΛL��i�fö�����Ùl�9��΋���w2�/|W����P������������@RhS9<&�6�Lu|n�>�{�H�J��l�4 at D��#�*���Չ�
��eW� 0&ٟ�v���H��i&ԡ���{�xX&��p˶�4^n�m���R�W��!]�䪇
R,]7�n=>'-�
��W��2
�h,�9+�s�|�Pyc�i~Bv�I�ʵb�ہa:�C�t~�����ƈ��{������g5/��9�-o����P��	�����<�O�a���j���=�ʞ�� �?
E�b��pR��܆������B<:���k~�f�A?O�D��sW����:)�"T�9m�G��nO)��/�깿j�������������
+�v����hO(:Zc�E8��Ve'��b,.�'e��$j�$6
���\�S�2���@�F�s�0Y߿;T==jI��yU�O��T�;=gU��ƒ7�
*����9�u}����0;����2X/
8�Ն).�|2�<4d"!Xe+��`�w���d�t�M�g�̲�d�}�g���U�ץ�6K�mE��Ѥ���]�Vw�R��g���G�R[��w�%�����Uk��uH��6(����¬��_�%��
�f;��j�{��͵��4�a����coI�A�9��5hF4���
*���z�ѭ��Am-b�s����8��|�V3���ү>�J.B��� ��)��P�F�4 ��K���;�U8�]@�l�� Kem�nk���,���|d���Knm��L�K�I�ܾ{����e�r�q\��nv۳K�г�G���V&��hž�+��0{��#
+ST�$ C�M�g#���P����)��
+Ps�] �V�m�������
��g!���,o���b�c��۱l���V���2y�GB,��!|y�%�f�'��U�v�UI�v��� =�aD7�'��
`v	������H��3�- <W[L(� �Y�%"e�
��lr�^���ʱϭ���-�l����#|٣�R���H�#}ҽ���z�99]}���l�  �
0�G�0������!�/{PtDa��$8�KOE�O`
+����"�_\H2��D�W��n�Gԛ���7�=(AGI�U����!ˢ7��o�|��s��oݬ?0�  }=��?xê9�s�T����2�K8 �|6�I �u���
������"�h�} Iej���,���[�$v���
#=�L#}�7�v�x�w	�l�>v>L�v����@�l�_��}�|� P0� �0���P4"@��DE�x
#{�����v%{/ReArw�8�d\�ku�kGɚ�#���X�VE%��6����>�4�gcX޻Y���ѝ��RvA�$�
����3�)ma�ޭ��}sdR������
T'�� :��N}.�<H
qC_�
�z
����r�C=�:
d�e�dt�;������Y�.������wUZ� ��H�� VF�hYK��s0Q���n���
��|���|V^k;V
p��t ���ھ���)8(�=�r#�E٨�*�Q��u���3]Q
)�}q8�w��K�ҏ�Դ���{� �. kG�M�
 �T3���w9T���4�
+�~��Ū���:2ō
8���q��ݧ�5��B
�_��:����k�>�q�x��z2��mC������2{剉|��Z�q�? ��`� j
+e
v��
���n�k���f_�&�I�D־�C����p�ܔ��=��=��{�kFqπ}�i����8Wl��b���T6�U2�`��huyc�z?ȯ��E�0�����]@��-(X����P�{��D�������] {�tQ�5n�͹��q��
����x���}M��a�)+S��f
*��T��A}dx��@_�]M�u:��X9����#Y at x<
+��{� �����x��{+^�%.BTy��G���l����c}����l��z:'3�m�7X@īk�{B�������4�ei���x�W�*�--#d�  ����b�%�

+
�E��]
�`�e���b�v���
o�'�e�0�;J�g{�~+;�i[�ͮM繱6xB8��C;5���T�k�j-���rYMecn���E�\ҋ|g���������D��o�i�Aa�BQf� ��M4gQ�z^\��s���ܬwF���p�
%������e�*��m��P���Foְ�
+���ܒ��p��s��0E�YZ�w,-��TK.��� �!���[ҩ��d�����`*(��|�F{x(�ג�W����CYW�v�}�
	��ۑ�|�������X
��<�t���̅S;e4�~?����k�B%3��n�̏~��f�zn�~��3���7�~yj��U
�Sk�B):�?�=��ڹ�����Z�잻bo�T3�Ma��(KL��֛���X`��&_�ȚW��~V�����8��sX/A�3f\�?�?
�
�]g at T���d���_P������9����^�F�R�n���r\��|�L1�뮔�f��}W�A�l�#-��0�K9[�ƴ�W�����ǝ�H�n��3�J}�N��q�P����
n�_�-���ui��7/iFax��c/��]7��L,Uv�r��CwA��@���r�U��ao���C��g��
�&�%��3Nj)�l�(b�{�$�ɍN��&bJP��]���st��~ߒ@qմ@IM�q��\�K��ݵ��<���wwz}����V��P�ƥLk�Y�[�r�+��?k�Ga�a���O&�p�{����b�|����iU�rˬW�.�?�{
+��
F�`���G������� u���8]?�^�NN��Y�:f
A��V(��������-{ԇ����'O:E�/
��h4�L�� UZ�g��'�ֹOK6��c��O�be��� �zd
�A5��_�c#I��M(��G՞�Y�
.�%�$����f�&
\��2���5f�k�&|-a$̪wF%�����!��3�Ϻ��VO��`��A��j��K��Zo�
V�  �l����(."(m�e��>g��Z�n����0Pg
W�d�>p|����z�(�\q�T{��v'7$���Fe��
)����Qg��V�9�~

�4�
i�xt
+|��9-�
~����~�< ���@�Ћ���%��I��Z���{�3q���6e�!�m����֍�,
�rn
�Q|�a�EI
��Q����
+Ǘ>繝�(�щ�u�����\�����]d��O��&�7�-�l�e6^���A
�
{KݒJg���퐗v=q�2���k�'l�
�)�����Q�H�l�z|a�J�J?7��P{�<yw����gl8�
&6GF繄i�p>ƴ�.�X� ��4 E�,�2^a���}���;uh=��}��z.��Hߩ��^���� �t��e�F� �ނD�a��
�6T�rhY�Lˌq��w�8��6����m�N�$�f�`��A��d�J@� ���}s'��7���ƹ}u���z�L�@9���/�i�{Ҵ�?}@?o��	E>�_�x�S~��������
���8�3O��y��ǧq�pXKЮ�vN�M۹�g�{��n��ܻE-�u��i�
�_�d�8ג�lx~9���L�s�b-W�ԗw���A��qw<� _�
+���9Pf�i�Ewe��ZJj�p�s��m���7���^�<'�~�rl�!���q_C�
�����

�_�
+�w����"���9ԛM��b#�u
~��v;�/wK���,��}Q�1�m�ޑ�
��rK|d��i�R�P��j�_6�M٪��ӥ
����:�&�?ȯ�I��ݛ�$����-�F
+QZ�%�2��Hg"!����OʐOe��I
�y�l9�
��.�ŷ�
��wGhܼ����V
+�]��fd=v�պ>���6�j�SvZ[K5��d���y1� �\y���ҺF�Y�5���x���Q�7���^'.�Y6}vݹ���q:�zm�%ղ�攊
J��fc�����n{����{m=r
5�x����V�2Q�f�f��S�p�u�=,��jkVh-�V�=w��t��oR��	��U-�
�͇��\���%�X��>��RK��j�=�I���o�����v��]	}5�Z�������Y�,�ʵ�=�a��� 0�{���R����S��'R6c�b9o
�bٽ��U��d,�c/�t�\>����<]�K�{��^�Y[
iP��>�*_�a�f!V�W�|X�0G.cq�(����O�x5�Q���&o�R�  ���#�
�o�o�n�0!���
���8��(��@�z
�ّ��
�Cz���s9�����@N"� �7
 G
j WP���q�/
��Oתm��Ss�j=r"�3��BP���0{�u�W����7��m�h, 6PtX��>M�RjF#�w
�[���
�_{�rV�.�(��J�v�x��}
g�M�ȗ��T�;��}އ�g�;�ay�m~���͔|�� �(� �"P�9.v/�yϿ�

+0�](��`<��=
��AM�;!i�Z�_�Y~
�f�54��
�
�)."�I.7|W9�ֳ}�1�[�'�۔���bk
����PsPg �MT���#�t5J�|��j"@)G��� ���j�ܧ��R�x	�z������	��O��?I>��� �Gq�8V�p<������j�������� �6V ���a�
f`(�,��y
���
+𱓂�N`�-
��`8j���0�F�<���	�� /�B�v�ԟ'�N?Š���1O&��~���1d���;���V���s[�/]
l���#�s���
Xd`0g���6���>Ӳp�� V���F:�	}f���N^/��D��4 ��ƭ$S8ӏ�ɳ����L̨�a&���{�Vf_�	P)���� <ߓ����N k�{C� pA���� �U5��{�c��Y�y1�Nro̮I��Eq�A����!J��H�f��뙣C�Z�r��}����i�I�c�Q��c�
;�m�~�<����
�]
���r(�� @+�����
@ԗ�Wa����J���G��#��]CNb�`;+�~� k�Y??I0O8�*
�՘�d��_;lN����������؎�X����{ �61ʺ.,q4��	x�x��<�n�F�~Q��C瓺	�,��T�\�jc����	8���w�P �D��9'��;eQ8��;��9?��@�Av��:�>	khq�Z��@����s(�~@Q�c���P�d򺇚	����L#i�Y��TTX�aw}��93�
+mK�U����p��}y�]��:����j/9>��s;ez�#�[��7a:�Y���&\�����>�K�g�[]�r9��������]^Ɠ��V
�m�
+���űֽW� �0�t�d����pB2��D��������nA�7[˵��*�e�ww[��2>ؠ��Y]�&k�'϶
x���Paa�\�����A��B�٠ '�����FoMDY�/�g8&�e��^�V�s�(�?��p�/v�]�k+v�|ӷ�\�X�,�Ȼ~�
�d�NW�x�
c�=a�􆠵���i��g��{ T^A�~��#fH-
��xف�g?�4�ypr	�o(T�#�
([p�t�-���b����N]����4�U$sw���|�֤6Y�J�poT�Û�؛o-�1u��mP��<�ﰶ�uv�������Dw�����y���
(2�0~��I���0�7
���3���J��,"�i3d���[��9Z��Z�h�9r#�\zKM
Lu�9�K�}
�<*�~c]S;��}���y��{�6d[ �g��$,��=�Ё���3�
����&{U}��t
+��KToؾf����լ�ڧ6b�h���g�[�@3����n{�̶��"_�nAc����e�HU�7"G���/}Q�=��i�4n�
�
���H0�u�����G�5��=���#�����
��&�K��_�َPڜƳ��#���Ti�-��r��
4w�䳪���p����Ɲ)��kV{�K�h�- at 8_
�
?ȯ
@ߗ?:�
��Z"��V��o'�
z�<�\����Rz��7*\��
�<Nk�<l��x3����X�mZq'7^.�߯����LU'�N
������1~S���]��.1���� �.[�/�d��%X5Ps���+�_���5�{d^�g�:�
˹�c�j�?�~�e6E6B
��$4V+��}jZU�tD�=|��
ڛ��{qlr�"ٽ�%!Ǣ'�7!!.�K�7�� R7@����;u#OM(}e_�}�x��D�o�v3b�<�����j���sǧ)���jQT�?��.��ҙǤ"��\^+�i|/�&LlsҎ�
��1
�[���y�%-?"{.6'.:r�����E�i��3��AqH��)-G}�5��G�أ�v���Cg�m��>��t��M�=BD�Ka���'�F�Y�����������(&L��4��9u���`�-��5|�
=�Ą��D�y�m at 0e���OKI+���<{w͸��
� ���L{Hg�p��+jT���-�WMσ7�L��#>��iB<�4*�r�����J����
pJ��f<{`�A����P�o&��� ص������WA	A�8U����c�W>ScݒE�
F��;��k唾�\1���<e�z��u��R�]s������0l`q��X�^'��w�@�����������<�w�a��V���}R��S�,Z1����k���Q>��w��.�N��8P����g=e��n���/'��R�ጮ��$��_�J�?����Y�U��D��}���tN�ìC^s&w�퐛Vz��ht
M:��p�8 r?Aq֪$�S��/������G�
+��m��� VA�+}5ҵ>1q��vg�T�6�5�P�tO��$�k`<�t?����`�*�D�Jq��g}ۛ��|i�D��g��.�5sQd�`B�����? :qA�k P���+�w�'�Hߏ��N
3?���Rk���]��X�r3�cܙ��W�n:7aɜBX�֕Z�ە��.6s�+�*rs�l�
��e�+3�_�Ն^����TJ�J"`:�yV@<�WP̯�?ȭ]q��5v����gѷ.����
[�������
3����QR�T�ѽ�j�Ӏ�N����.��ߝY��j�Y``*ݠ�i�4�y�q��
��v����<�������m�� dt
���8	���kT[�w.k����z�IV�ݕ���<`
����49���(c#}�]����9�����O��;�7��
�N�
��4�tf8�{�3o
�)�% ˠ%�R
��\Ӎ����A����n���}\V���8�s��l��*��b
�sȢ��9���(�����&7tE��דU���m;
+yu9���d�&=��z�������g�֨�a�c�<�n��J���Ua3O����/�{\:���P��G�=f��M�=�v~>_�+I�4�n~f�z��E������ig0��ϻ��=N�]M_өNt.�����[dQI5K��Ss�Xo��i4���k��VoY�C�5f��u1.�
�R���l8��a:d����
{�df�&�C��J�x�
+/
or����u��uBu>b_6a�~��}��ۘ'mZd�'u���ڽ���q]����
�5�TjUk�e�|9U3A[����|WG������:�����H�J�vZ�Lq�LH�w�5
ZL��>�{r�t�P`>���hc��n^���J��#8�5��`Ro�9��
uWUk��Ռ7:Wr�8,�ͻ�=�|�NWJ[i�
�J�P�3�mYQ8�4�Y��w=95��2Z�}b՝m�3�#˦��ǧA�4/��)�Ш*p>
*�B�휘����Zc�T��[�J�ʴ���N#��woV,gz�R�v�]���P���w*#R���
+pV�+��c4�=	o
;��B����c[�%U�)���=W��ku����XlbU�Lev3�X>,J�2c������&��ܻ ��Yr)dq��kUB�[�����z.
�~���An6��-�����8N4�� �HO ��[ ��z ��2 �2�m�:�r�� W��n|���dz�2H����u
 �Y
 ��  X_�ح_(���8`��"w��U�SC�H�;�O�=��K.
Pn����-*3�v�[��GPT_�A��B��WT��6�*@b΂�3�n}h�?2C�Ж+ at W�	5
"�����2��L�ƕkv�D-\5�����m��+@�X�A]B�giCY� t�ps��3�n �,��_�&xr gߓZs��r�`
m��=��6 1�yh;(A�#�=�����d+�wp3�c�+T���\�����u9G���e�|�s��d� }�i�U�s���m�!@�KV�G�i��1�-h�ٙ9�us�����@�
+
+]G�o�7R�K�Fr���;����>���I�_��i�� ��%à^W �N\J1���e�p�9�

 V�? j!�2�
+�;u
�r�_����
+EE���䵿&��p��/�])?��J.�V��l�
�1������V��2�����xZ�o¿�/��h�>,��r�q�Ŕ
+p�r���	��n
��U�R�.�ߔ��Ό�y�����sr
5��d7��Wb�qU`�G�k�G�{�����f��׉v����i���c�G��\e��ֱd'�2�6 e/'�M8���<�UJ��?�k� v�`0�J�E8M�Y� bR�J\�j�cy_��39G�B�
׃^2o9X
��A��
6����~cqY2��Z���p�Сs�λNy��� �=)��&@��
��E8�>�������k���,z���L����qH\�M��"zOJ!��䠛_�S_�~�7u=A�wi�Ƿ�~���1�tY΢ι�H$7K���t�v��o��E� [���� _�BѨ�]��_.
����@�a�%�� ���M�(<bY��*׶?�J=OL��r/��տ�ԋ�@Wg&��M��R��w�5�9:)�v3M�}�z�8k#�m�K�D�ɿ���^��܂e޽�� q�@����e����2��鰟(�Ґ {�^�MUor�i_4'͞�����xI<:�g~8�'u�כ}��Ό�����i!cG���K2gvy�ڠ���d����ڬ�+@�� ��-�b�{�����i�����5-ϯ��\�'w\<	0�{��u��DTXA����/5�SaG�'b�����ᮾ=���\U���X[��[i4�̮�6(��W�^3�wE_�ܒ^������� ��g��bS�
 bJ���ߏ-6ID��������^�I���y���g�8jU���6-:52_�Al
WZ[f^d�N��7{��x3L��z�2׫
�<���<cT���=�����3�a�������4�\���0.F! �B����:6Z9;tf��_x
�7j��O;�
ő��W�Vf�$ �ݤ���E��a�h�� [...]
+��]|r�m��bs�,����0m�Q
�N}$B
F�K�/��"4g�,1�2�nS��t���"�	yOy!_d� �[�v��b��k5i/��;ƫ46	�l�U�d~鈶z�0Sˉ.�����<�r���ۇ��_�s8M��,�[8�B(#��ʅҚ����6C&�e00�)e�_2Ix%
�f~8u4�g8�!!����$8|�]o����T�t(w��\b�|lg��{�K�M�[��nj��
��,Cb��/�
+:�9���0��_pcp�Fc��4�)p�Ʃw=3�*�4�� f���D(����P�_�π�u#�nu�2�w��Z�R=7�7fY�N��[s���+���m���|U
C�%�5ǿa�_-<�S���'��T��I�-!Bc(΋��N�W��G
\�)q�AR��>�
+�'-�@.*@"�'((���<�%6
~��=�nͳC�aVѼ��5w\Z�d�Y����h�gWݎ���X�z���G�p�zN[�*=6A)'��LIİkcDf=^�
K��=t�?�P��)a�o�"o�#»}� }����
��^��*�j
6�	J7�7*��̤�W����'��$]Q�AV��`if_�/ѡ��7?�΢5�O��y�y�{��m�I̎J7�:��Kvи������x�}Kd�V��{X��?��}{%�9�����b�,?:�i��F�Hn�8;b�
H�
����kyW]�k��Rs���L��a^
N�w7{
wF(��4l��mn~�Ja�(�-�@��{�Fz)���$��[�ܧ߮r��ƚ����q��
(���r���0��?��=�����Z�P��~B��fzd$��\u2��(�s��[�)s��\�v�<}�� 
<�ɫ�By���b��M~`KC
�gV����j��u����_;
+E��
6R*f�B�����՟�CXr����8Q�������n�8��_�uѧ2g��M�
�� ����@g.~�3��l���L�����&�ϕ���~p�N#�!�ʧC�0&�?ȯ
�]�㵟4�������m��^��E��
+m?��F����3��
�Cy�L�o�\���Ly#���݀.���t�w���rn3n�n��bkL��]F%���C��<�:���
��86(�qx�DL;	��
���>����B,�%W��
��Ta�j(�J���x]
��T,���0.�F�Cf�'4���</�IǍ�
+��l#maL��+.�k�/s����ö��?H�]�`�w~��+`��o���Ϲ15;(�?�u��%	3uSW��a���[iE9����>���U�+�����d~���h~����/��N�<���(���~|z}͡t��4ڼ����NEo9�l����h
&��V
����\6T��E)�X&
q�F
�G�D������TrZ�����:f���Qmf��pe3�~�?���),�R���md���xfV�1�;��F�^Dko���p0ZX5�j��7�-�ow�J]��ڿ⦶�K�����/8�B�ܪ�
��
Ņ�����ܞ���.���[J%F����ǰ��
�OMi�E���/�%���
m�ɡ�K�{��N�.U��¬Y��o���&�6|Iw�x�i�Ͱ�4�b\�W�P���^�^�<w��MU���0q�
'������G��(:@�U�{��F'�O4�����1�ڈ�K�Y{����[��0{��R֣*0�i����Cי.��4m�� ��y�QD at pD
�	EPJ��+�~��_����*��������L���E�S�}����SЫ�m���ۋ���[k��uF�g���4� Ri��4hu�W�b'8H�Q��Hļ��R�$�#;v�\hl�ʸ��|6�6�jf�P�Q}�<&t��Z�>7�I�?X��e��Zm�+�Mʕ]��,
4!��؞A���b=��yC^榔��jϝ�Q(���+'y!~f�\�շ>����S<�,��w�Z�U~7sa���}�?O��Rk�Q����o�*�}tT�÷Y4
+Nџ3Ǣ�֣b�sJ�N�PP{Yh/��0�r#jJ���l����
��v�a�<�H]���,�n��@='M��6Tz��W ���taua�o�Qѵ��{�
{�l��)Q�-ʭ}�p^�+�`sn����
��3%��ճ�m6>���t�{������fz�|�a�S
nR�l�8Ҍ+2���F�z`i
m��n5�!��Nj����>�KT���rS�
*�N�Ӛ�Xk�3��s�^��� �,Ɠ7��;�ч�<S
��+ &= K?� ����x����b�
+� ��� g��7
�xE ��8���2@�
�`#t��$m��
��؇�< \-Q�m�
х�$[���_���c�6z<
���H������'���y[(tN
 Q�P�YD��x����� �eFMjU�P�0�@�o�ɷ�
�
z�l�d�q� j��#
P3�A�2��'��4��
?��Hg������af
���V�����<8�i at X;	��� v����	xM$vҠPk�
�"u��9�h
P����yg�t�e�U>��Y�{
���9�&Qm�TCfNo��\�+ �JIp����ҡ
�D���Sv�d.=��� �*@����ދ�QP톆}{� ��_��	0�����;��`��`$�%��S{I��<��0�DO5���I��
+�
���u�E����P#*���%
�d���|1�\1* �� �� 
 ��e����y� �+( ��i�S{��<�v�Ǽ�t~I��xe�k�Y�D��l����h�Ʊ#��Zv
�%qx)b{�=��_�{f��D�]�/`��}�(M޾�
�k��; ��c"���޳�@��_��q��b%=��5�̲bm�ZG�p��
ٻ<��5~Xb
�F߻e�s�i�0WoI�'c�	~[w:���
+h>y(t��B���"y��� j;�B\&��R.�(4H����*�4�{�I�.��i�ՙ�{��@
+���;�����k���&��7�S��Y���˜���;6g)�C�^gO��U�a�?�����c^���ے��
+PsԳ��L/��L�ݾ����Y��
��NRffSa*���h���
ڡ�׎r�=
�����y�[nO&�\�vC�6h�<.�a���٪�asFڱ���_�r
ʔ�%��4y\��O�� �R��E�:�	��c���!�磛�?SA֙R�˧\<�>}ݰck����"z�]N9�k�<hs��oW�N�b
7��[�R
荷&���)�K�m���+ >�M)��

���	���[��DI�F
u���<1ν�j�@���%}�=��0J���B=��f�1ܜ�n��
�|{{a�-Y)٭.���|�]���5�3+���,	�),2����2�`$�m��Gp��)���
��T5��/{Z����U
b��w��F����p�ÑU�'O�v���ү�"=��r�nm��m"Yq��	�����V��W�l/�%缐�����vr�2����hCXӫ��pj�P怇2��闞 ����_@�2n��
+��(8s�B7��1ݝ-��}����q[M۷���?����Ywi
[�D7��G��B�#��h��ͮ=��Źc���ӊ9�S4��ͷ�C�.�I����
+ �)
s� ���M�_���D�܍�g�Z�Ze��q](i
	�n
�kw*��j� �8�9FV�[�~���|��4���F�U�,�Ԛ�lA�2���UW
��9@
��O��"�����+�O��>�X�ág>�j��-�O�P��֬��7{ʙ���E��wݍ���Y&��j;��;�/�U0���ئ�	�&
5?�Y�R��
�0���Tu���?�~Or
+����"Д ��X�*��+(��B�W���,D at KU�ޯ�5�f�j�
��y{,nM�P�Ogm��,��a͙�3�ΞV(�j��`��ʱ�.Jo}?��/��ڙ�ZZq��'Tj3���h\���}�#�&�>�
+@�	�{P��v9�p$�"�}8�2{+l��y�o<�7v�e�����vY_�Kk^��̶��3}炃٫qG�X�n�c~��ԕ�O�aF5u���щWZ���������'�.�"�+�����w���7+N ׋߯�$O�;dD\��
vܜ|򠔟����8N�2l^�Fǰ��aM����Ė��K��nR�����{��V(�������+�N�ݑ��X���*��|,s1���
�dsc@��d���6�;~�o�}Xʦ.6���y�\�vʛ��j��z ,.�s8���f��4��~���J����voxʋ_Gˇ��{���EN:lÖ������v��49��4�ޥ���=������c�ɕ� �k]@>]|G˭���mtZ����=��m����zX_�x��ט�h��}d�J�eI�{�h���ގ
e~N�GHj~���P��B�H�:4�b��
!�Q+�C�����t�w r߆2�����lp�N�������l4�G�6��'� q�,I��
]Yh�m��>?�MWC#�Īv [...]
��<�3�X+~uB������a�
N"�}ypM^�=�4�G�����]c�����a-�t�tɐ�jz6�8�z���]�A�g���#~�8"|*M�z
��z�0tz\��>�o?
�?������ح	Ȗ.�
����Q�	��w,س}-/o\�\יp��?�u�N���9��ۓ�����I
(]�2��\M�s��������
������S�r�����g�+�l�+u�
�(�
:�;'x����I�؅����ӊ�ƞ��'{����w�pȩ�/��ll�3>%b����Sc�,}X��yyP^J�J�#1��~�l����Y�x��8*��9l��>���^
��jJs�j���^�l�)����9M�1�^xU���M�W[��]n
+�#�
s���f��v��n�=�A�J5Jk�JYqN��,�2
���ƘMK’2T��v��>J]y�o;�4�j�O���2�Kf�8�-ƞDgƖ�6�,�����@�ݟj��{ۙ��F�]N�ګ{ˊg)��`-,!C���[ǚ��Qe����ĬJ���Ĩ+t^/���[0��{w�-��9{���vT�/̫ZLZ��i-_���7V��3�V:��Z����W��\�8YjN.�u����O>l��°|v����}֌�g;�,[�*ۼ��y>�����4=bz6��g�ԙКʚ-m�nF��i'�K�KI�����w�����V?�.�=�&
�L���k0�����7�6�n��uma�
mw_��9��Idd����4WD�p^���X�s���[$�?܊�	�ݱ�t:51+�_H�0o"�Z��na��Iֲ���Q2�,�n�O����2�>2̸^�9�������ݢ��~�Ҏ�RK
]{l�<+�_������Cɕ�B
+W�^\��@(�Փ��
�K�SOM�l
3�g��d�}�c
�3fs at KNCn����҉�\����T�'3b�x�D�F�p����+��6��7�ӫ2�����1�̋J�q��R��Y7;����
/��
7���T9��c�4�Z[�Wm
.
�̖{B���+��П��AwjQ�x�5�TR��L�9
��Wކ0��͊_Y�|�WlV�A~YjOI��"	��(ؘ�T>���dq���ͥ't�l��7W]��yl�����Hu
�v/��
�}��\�l]���t�e��Xht���H�v$�us�� �۩,d�g��Tio=�A��JHV���d=l�����;�b�Ԙ�7�П�7ž_
zj���t|
�lZ�wP�[��g㸫��D��YP�7㨚��I�͈H�+t�oM��J{��K�S�ef3*�W�]P��PBGA>�
������6�OiCi��1�R��
+���1x�9ل~r74��`/M�G�?�v��.��b5��=eT]��VY˴Qv�9��ߩE��>NQn~v��9Ji*�Wq
+��A����A9k�\6�\���I��$������NI0n�f,�}�_#�7nll�h`�ۿM_�z`!M���/+\�^.
�<�
�ǣ^̽�B�3k�'ܴ�
������A�
�G��*M��mdQ\mꐮ��I<y�Ġ�~ z�I륿⛷�.�HX�� l�� [�� 
+/� �u�Xz��]tg�*�^ mp�f`��f�@SV o �(��ԘAL�ω#n&���"@��@.l;q�U&����7�������Jʴt(��̕ e��;�Wx p��>���p`Ns��P���^�Np��f	���hu�A�W	�Yr�43�X��T_ ����2�b�_���L��G_ۏnU�U�$���>�ߑ��e��� �����{P+e:�j��P�
 4(� ݋��,,��x��%T* ���t�	�P�`�*����xʧK��W�
+6���c뽪��n��3�X� ���c������# 
+!�R���|27 ��\�
_7�)��7]�����lX����S �)@��u��
��؀�{e��?u�q)�Б^��i�	g�k��k�7�o �i��'�3
��{F��Ħc��V��S;�xP��
�D�px���F�%��A'��h���\xIӍ�<^W�s�]g��v�˱q�nW+����L8��*w���{�k����C_
+�P����T�
p�u(�NH�T/���k ȚH at x
@�� ll
+�Ry�
j��k�����'!��|\��~\�s�n�ۑ�
�G$ÇE"z���p���[8�n�Z��bR�zդq9l�T;?J�{S�x�"I�h>
S��=�����
� %�țG�N��yp99�
�?�V��Q��>
��	%��2U��
�vG�s��Q����a 6�I@���u���c���}�s[�
�E����ew�Y�؞�9�7�1?B+�q���D�`���
��Y�>�
W��S�adE��`Z�&Lm���6#<�����O��ί�E��Y�v���٣u4?)��~{�^yݩt?�s+��+(n+f�I:&�x"#�]堧�� v{�@'C@�� ���]ۉ����&�e�<��t/j��a�U�&�Y���{���C'oG�����o@��[��C�\� ��~/̞:L�;9�N�*Q<���0ޘMu�ńX��<�B�cj)
��o x�2���'��͐�
���7���f4�Q�j�(�p���K�]�S����UCY{=���?�3'3��B�U=ĝ���&��J�z�i9�l,���ӆ�x*?��в�,c�,2B�3�T����I�
+��K �>X6�������3�S*n�X�g|58�͋^M�~�#��E���ﭝRc���
l7Q�9:������s͂�g�EEb�-ҥ%1���I��	��]N8+
o���%V��=�O������@;�C��XT�:z�=��}=����V-�6�����ǎQnx�q���]_�V��xc�S�i3����6��0�'{�u�m�Ѽ��?�q��웧V�Z��[ӱ��>��y�p٧��`O3݊b���o �� ��#@Y�Ȭ.������[r��k���S�t2�X<U�o��e�w at e&��29^���\���b�h�f�u�6Jn`YY;���i�|�N�L�
-c���f`z��j����f��dXl�
+�
	< '9(4.�`
+ΉR���?}�d1
_�v�
dݟSJa[�p�tޅ�F/5a98m���2�M�`jӮ<��zkc~�g�?�����D+i8��ru�}^��"��O���}���"
��,��Z�
+{4h��|j+�mgίJ=�I��V�������XjW�3�����yj�\J˨;�}���-�,hS�CLM�z\�xύ݉_�
�s��D75�H�j�IN���B�g�I�����;�i
+���oV���y���] #��`��.S���[S���d�r�U�;��*,�g�6�ZsƎ��b��h:RJ6��L�3\���wl96�N5Y����k�,pj�`-f�f���Gl���9��Q:�@��>���'�
+���Qr�����ڜ�w�e��qW�Hц=/��~w�.T���Ҍ
��V�\��M��3Ȇ#NFrc���[W�f�<Y�
-^�Q^�b$��64�

+
�

+��
^ݎ�?����O�}�Z;(�܀\ap�R���z{7Gl�����e�
+���޺�
N�Yyk�@���
��yv'JE��~z�NOsUaC
�X�UY
�&~�c�.e�Vz0ʭ˃Q
N�Q��@L��q��; َ�:]
�e�nl���2-
+�s�ý҃~�tg���.&�ۖA�Yq��r�l
Z��DŜ�8̗9�����jҕe
��!	7P)��w�5�^�2����-��{{�^�`}=d����
�r���h�m(=���
�KstZ�7�Igx(
+���Tk+ϭ���5x̦�B�J�ڄq.
+?��RC���#5����5o	2>-J�O��b/,�R�l�tqr���ϕT"��:_�K�O��B�������
V�:���:�����sG�ѧ�h�}���t�s÷o�;z SĊ�^P����:p��#.ڵ��L�+噰/g{�7���	-�������/����#ɹ�ǹ
qq?�^��u���o T�=�{Ǿ�-{tʵ��uIng<v���c�pG
Cc1�+;�r�)>�#�L~�]+j�Z�G�;V
J{�>��pFԍ��Y�|k��
Č^�}w��݌��;�Ơ�96�V�X\ma$>�"�;P��� mH��:T�6�hy�͕�ݏ�T��>�qnY
+be6��3

�#���4S�^*
���
e�UOQa�9|��?Ma��]��U܎�+]���:�Of�^뭀-�
�}o��������:w�2{��r��~�dw�(=�qD;;ze��;���&����9{��՛�u�8ΤV!O�R#b�aިa��`E��]�$����������
�#6����ۦ��+c�o����<��#�6��q���(��qS��6�
��ve�,��q�e������l�ȱw��i9�Ѕ�����nD��t�Ob1j��>3���s=�����Ӿ�&
���a�A
L�Ae����V�'RM���Mg�2����4� {���4�!8�$��vqg�I�q�znY���.7�)�"�����-�y��=M�-�iN��hӃ����^<����^�d�8�
l��k�8s�0��Bl�|Wo!��i���؅�TC��he���6uo1>ֽ��+NIkU�_�	\a6�V)�<��!1lJ|b�ۤ�#�B�tS.������>�LG at o�cO*<�݋<K:zy���s%�n݊&e�L
]��f?EO�]�`��8?�G*U�?Nt=rt�ƒ
���#]��_�eHޝ�Bv5|M�ٌx!Sr"�&&�#*����u S��COI��./l���֌+�]'����.���66i�kϩ�kŦ��Z
��s�׋���ւƉ�,�Z(�+���׌�dY�׫���[;�m��mT�sk�1�fO⚚�l�=1�]�l�t2,� %.�v���U��t[<�ުj�|=L��>��<;���~m
Z���8v��F�de��(�zu�Ԧ�]��ܽ�*��9�pn���E+
�؄>�:���5D�����YbsS�|�}�����0��"��tG�GQ�	/]���v'�P�e����
�%�����%�Q �C���]iC�G5k�yW�Ԑ�|�a���fy^�e��M~����9%J<E��@��ǡV�Y�
+��â�^��-�='Fw)BÿK���dv�Ƨ
։���8�(��V鏙~C�
r����t=��v�UYj�}��-��W��ki@��o�j�p^���Y�t~"t�|�Xi��K�s�s��s�O��O���{���>'�n7T���&U8
�@?wB[ٶ?r�0��!�ri��V�@�,^�&[��|�u��r���9�DE�P�%U�[��V�|�T�

D�\������
2��p�>w�M�
���z�[�:���@$�ߠ�=1T��Hz9�#%u��2X1�k���>i
���DU�8'����)]�5(�M�*r%s�p�fmiU�$�y9���U��N����>A}�
+���O����λ~ q �:H��o ���d�n���j92�� ��r��@�	P�k �m� ��ӵ�I9 ��3 at 8+H�OA|����ª�5޷!

@�za~ Rz���v$�6ž�_�������w�?�	�Byc���
0$3�Pw���V�3�	о/��L��
@֛'T
��~�S�2 at zߺ>��8��
1�D at OB���y�Pe��_d��x�&$� ���+�P�I�V{� 6��ov��=���
`���f zI`kE�mqP�
+ �9� �@P��Q�@��8W
 ����W@ϯ������?sI���b�-q1|�Q`��G83�� ���ZLj�
+ [e���9�)�1� ,t
 3c`
Fc?����|���*�� e+@��<�E'�q�N��IH�bZy
&��S�J���r�h�^&��a�z���{������Y��0��6 -bM��GP���8�R >W ���n
+�b\x&��Ƨ��ZBɞ��E/|
�
xI�{
�A�9"�R|�t<F�Xi[�G��2����	���r���q��!zC'>�
E�� ����
+Q�[�:D�� �1��Q
G��e���n��(�k��p;�n��ct�"aTS��(�hHD&|��ifjw���{�U�{:L�mP�#������<
��줫&8N���{n�o���

؋������
]@<� �<��U}��
w��-s����,�-������k�~�)��82
���1��5k���(�s�ki���4������{�����珢��މv������R�Z /=��@� ���������! �+�U��g�x/j����vo�<ӂAY�]e��\�[�;k��z�ۛ�h���]ֈc|
+F����/x���
cO!�v��붘��]�Wn�{�

k�9���:�9F;���T8����ږ`�V�8.Q�D�R��ۮq�_��F�R�N�>�G0�N
��
rX�!m��}Q��r#��Uv:�ԡ�j�jc\3�i����y��>���[u=����� vs��g��'� t3��n�%ri�u*�µ!~n��E/�͟�8_�;3��aȀ�$b�����Q۪��r���ބ��nS��ώ-��d���lz�]��Qc�J#m��.΂J�q�/
�y>s�g����
p����. EP���{l����
+�{�.�A��[�{J���"���|uWp�-�^���
���t
����t�d��
+�
�K�͟S|�`s�i���rP��km`��ȶ�Zmo�a�0}v߻�
�o��[
���S+F��d�K?z{��cg=�#����_�>�+�ۊ��6�OV��ۊY�-���e�������s�y>^,f�����'�dM����9x��Ih��21;�☩��3z5Z��Fm�7��(� "\��Z�1� �������)����_�^����p������?N���5GX��
ǫ���3��F�f�sU�kKT�ӧ9e���\�/{�����ύK:Y`���,&����d���NT��
pj
 +g��m?���d�O}I��;!���n
���8d?���@�ۆip�5j��ˁ�#����0��lͦ�3M2g�_す�;��m�N��$k��L�z��Z;e����:����;����� �|�
H1�js2 at f%�↳�݆�����l�6�i��F|�`Zo*�h)I
0�h!n?���e[���贉�k���Xo�o����6���z?η*���TP�Y�rJ�s4F	B,�X������ W�B�*��n�.nv�p|1�C���Y�{Ɩ���:5�Vp�-
+��kV�̴�dn:�Q��d��3�=��=,���z�Ľ�t��+Ψ�
^���O��ݪ-#��
+��!�0�
І8(3�H C��챼�����'��+�>��/���&�����]�K�����k^���$˴Abbr4�9mLh�1tG�j}�wG 
%�s�'2r�C��ї��Hԓ���I�^߆��
+@�2�'+��orըZ� ���v�C�v��Kn�p{�X�w�@{�tzG��^ݦH��4Ī����iL+�VF��͢2�>��m����!�T)#
�|Z�
�D�z�ˢz7$Q
�S��-^*� #�������
@)C9j�M�B#Q�l�������.R�f���k��Mc䰴�El?]�ċ�o��ɹPO�
+�UK�
+� �L����p��[�d�z��T��2N�}}����1o�T�r�T����dB��~
y[��
��d�����OmI)�
y0ȕ��gXv_9���6~9ڡ��q�,kپnL��
�<kߴ*��U�5��><���z�R�Aqpr�x]��Qx
�z��
}.{o���ފz�U&�zoi�A��<�ܘ��ھ�:�x�ӛ��6+���
��դ�I���jX%�󻱕l�T6��ZC{9����7��:��
J��OdA��%k�����
�
+q�����R譞Θ�ܷs�7K���� 
��w9�XQ!�&�������k@��n���i.U2
�	r��[�nVJ���%�ж����J�t��T#�nϴ�d�s*�
���d�
K#�{�7�C��R&��';��j/=4�s��]W���vޑ�豓//ӝ<
�N>C)�|�mvdV�pyǻA�<�}�:���X�\F%�l-6F�b�f�Y
!Kr|��/χ�ʙ2դ7Y�6�s7�N�Y*|�w�`�~�̦�U�������fˣN���rii�u

�5�|�`�Z^e�54��5�m��/��
�*���E���b��v:����Ȳ(�>6Ȏ�t��2Ʊm4&�7ͫ�ݫ#7�B�
���f�O���UX�ʃ��h�Õ���c��lgV[M�m�5ky0[p�޵��:iͷ�V�]�H�6�6����e��̫O�&��I�Kdy
+��̖�ɴ�I?��*@�����e�o��sn0
�R�@W�E6"]!����VPNJ��n~�����ƕ�s)3v�Z
p[�0����6�V�j�L�h�aSj�k�h���
���g�'��L󆮆��gNߦ�t
�Oh/co��;�D�uR�^���)N���H�����������t��N9���ڃJڍ����#�J۠��K����z������uO�6~��n�zV��	�~��kk|;ͥ�u�U����2�8�
�;���M��A(MV-0���\q�������T~��9>M;��j��y��n��
���q�[���3�A�U��ޤW��|�VǔC��]D��
M�2�A-p�zm�蘿�ۗ�%�٤��B��/k==�)B��"�r�2��W��C�ݥ{���Խ�_L��E"۸�4�m�l&��oZ�T��|xkH�Ԇ�O_�A�v7�nͨw��h�s���<�ր�U��V�6��Zy5n�o�,��l_6��ƨ���svr�?�ot�#�;�<rŰ��V���+��^�V��j��~��d���<��uUn� Ԏt�[=j�����^���z�Qag|��bN�2��<�W����0�(�͌TF���VY�؉B>�#�
Ư���F��wv<�_m:ơ�L�y�;�!�`�Xj
"��-��zyT�
,]�rrm����k�*�~e]�ܻ^yCoe�]}J"d�ސ���P,���*(��_(��O�
������̊
+0~10�
���I�i�����ʖ�ƙ��)ʥE��T�ʼn�vM���Tk�K܂�rЩp�Y(
�^*���DE���K�yAe78	�_r�
y���f�㢔�G�N�U�L����^;g���
S�nܴi�G���
+��m�cV�:���޾��(w��ۮD����,�|*�邕��@���-���B>X3�|e��gZY{X�d�sMȰ%F��Z� ]k�"��p$��̋t�ߪ�K
��<���F
��I��G��Xv��؄.Q3Cl'tM��Յ�q*��/�5�P��#��2�s~�m�:��g[�;
�
[���Z�$�)�1`l
+�W�.w�4�
+��Ȝ�N���Vs�-^� 1�
����@ڤK ��oU�d#2� Y�D�����H�~HVO�tt)���i��=���6!�H��
D�
Ҍ�� �~@�	��=o�4[��lf3���;�s�)���+��;��8����P�8���j$�v ��G 7��ap��E���E+ ɵ�#�����
�@�}�����g�H�)�/A��^tT��"�S��K,<OOO�]�������S��#8��4�H�E���?��J��������� �Z? J 
 �:��դ��^���`}s�y��
+�����`��B�o������%��G�h#7V̑]��%�f�KTaj�����@�J	��
�T��o��I,��_αs�!
��o
|V� ڗi���@މ�8���^]�i�	>�%�}�O��{L�(�*=�z����,1
+��7
��:���6O��=Q��}Q\]���8q�`W��Pc��t�	0����� vw� [�G�ɕ`u5
0t�=�����0�z;8dz瑈�g�{�9�\�R��
�&z��5!�0�I�QoݰթL�b{yC3�} �*��~�9]��t��?ؿ� ;s�-�-C�Ҩ�7�x�6��C; �g�W4���E�5$U�YP띸���Z
?���ᄳF�pZα��R�SЍ�9�>z�.�|�e���cG��Y���w��8
���ޟaS�o�F�����Z�
+�۲�-b��/�@C��
̸&T�����DFp�?�
����{O�j�
�	�`�Ԭ�l�WWI/l/�S�x)���xP~��Q%}|\���Q�z��j?��Y�g
%�=Ix��pX�w�d�v��p��	��B��7��
��=��~����&��u�u"�=�@}��s����+�~͠/ʂn��%�h2������yi=�޺��:'ww������]6��IeP�e���6b�-/�զ���N$���_�����5��r�Ĵ�g��u0dU�/���z�ن����m���zTG���A��v���\��u�<��cw/�g��
��.�׍l����{���[AfǍ!
#'�H�i���]z�V�n�^n6�^���Z��a� �3P��� !��UJ�~>����]s�hw��m�~�����?5���O������>3���|�,���D��io��
�h��d`��c�V���.7��i�;i��cFy�S�a�im2S^esV���
��� v� ~~Ѐ�< a���gGq�l���sr-�{�1�YK���~�s��5�?�[����\V�5P��:�>WWh�e�B����-�}[
�s���Ԛ��+�� ������MmUӧ��21�k_���

�Q�K��'�Ȥ���Tw���a ����5��<��1�����V䧿i�:�zU��Uon|�}Y S��G�Tu6�o-���z?��h
$��
'Ӗ|\��k�3YM��Q�
�g��-�u�zV�PtBsG�
�e�y�	H-��2jj
^�ѝ9Ї9?�M��aEq/{������x��FW��j�E�����ᖶ�M
��L/?}�
+�X���I��iY�vIS'܎;��2�
���6��-�l��ʍƗm]�b� ��B��� 2��g ǃe�uL���r����v��S]޴�3c���j9���Y�]~�YE_ܭ(i���#�6W��z��w�R�xi�=�6�}�P��x�Z��$
;oqʨ5Ib�({����������
�K�
(�(�
;�_�R7b$���vqw8�m̟�����0�fs5�9v���W���|��KN_�.���P!�ӆ*��ZR��Ի
v����OY�y^<��k���)��������a� yT�^�O�2`�깛91
��{�I
��z�0tԝ�<�V��
-
+=m:�!��j�8�\�7���U���C;^`
4��VY%���-3�QE9
��p���C
�^C<�� ��6�
Yq�7ʿ4�B5�
?�N�R= �1ݞ�oV�v�P���T���a�9�.��Z[�f��G�}n)�|����TP�T$(��(I$3A������z���==��Tծ�4Z�$5O���8�㭽���#���q�?r�Ơ�ǭ5Fy�H�Y���1w
��3�*V]��a���
���Q�5�E6�
+��~�M�p���|(�|0v��5�0@��p
vKm[�i}�b>��TF�6����{�T���V���q<G��L����-xþy�Jel��ő|bE�Ƀ�
[
���2����`�Pt��\���_dKP}�G4qF�O~�Ci`[->������
������.�qH�	�a���j��6�
N��6uW1�lܱ�������z{yH[���26)	���
�`��7
+3�N?��#?/�+I�JL6��
��l
a��NZգQ��p���7���^����[���Eˢ�-T�\\�]�/M��uZ�J��;�-��d��8I��u�t?�d���V�Z�.q�c
��j!�o
+E.�� �����!���v{G��m%
�5~�_����ny5��3
�Y�:\7
+ǀ���6�F�IV���l
 ����
+�^C��
+��zQ��aO��s����p�8���,x,q��p*S��S��SڍpF���`���)qV�|~2�d�
F�����Dv
�gk�9���P��Jk��=����c �� t
i�v
�]��4��-�}�6��������w����7*�,}�
+�X��tc��Ӎy���
K�O��i~qK�f����	^�G�~����8E�ٲ����;�C*}h�6�u�ur�q���F%�<���x*�M�
�㕛]co���q`�z!f$$J{r�\�'����o�s�rǀ�~�(n���f��
{�������"K<��w����\�~���\<7��р��p�@�E��TI<�WL�9���x�j}���~��h<#�si�-}�,��3}v�W76_`������,u�v��Q�i�Rn+xSn�mRn~ES�#`��iz���ו֔xz�ع�p?�̈�ώ�t3�^�p��
+�\t��lN�-�Uqn����3}��Dn�
'�h�SCi��Ԑ5�5k�����I����Q,Ԣȕ8��~�� �{���JG��}�re��x�����/�
�H7�Ry����XL�zd�?�A�����K����z��1-?T��[�"<V)6l<8F�{R�)��5b��K��ba�ׯE'!or0m D�����o㲅>p���7�m�5�i����/��r�,��ӑ�^l����[+~v�`�1X�]	�Aw�.�L
�y�:��w�:6{�~ա��w��h��L��v~H�)�H�H!���{���yo,n��4�e�e
]�L���-t.40-
�Ό{����q���6��ͫ�)6e7cNs|����A����(�^$��=,��lT4
t; 
wz0���ۡ֓>On5V&������͜�m���
�]ny�l!Mtn*,�i��x8����L�;�t�\�/?����z���Z�}1V5�0��v��ۥt޿��5��E�hR@���Ts�P��R����]�V ��r�����n]���·}�Ĭ�b���Z���rjz=(m�lY�/]�P�����q��M�!<{TƠ��EөD&�3��[[�7������y���Y�f�W�P��D%G1�!�{ģ��l�$'�=M�:�	A
�F6}��k^� �e���#F�Rg��l[�z��y�&{�Zk�G����Vg�;����B��5�jk�l�������xB�� ��xFz���v�g�N���
�4�Zf�1["Ψkҏ�,�w*K��J���5�㝄�.5�SC�_��ΰbU׳r�ܜr����O�0[*߻V�ߛS�R�;tK}��ʐ>��4�H���UX��1ֳ���vO
+Y��"�8Q
ʐM�ٯo7|�m���Xo���6e�{U��^Kj���/��^�Y���0���6KЋ"�bW`��g�Ј}��q��e�P[e)�p������lF���
�f���jv�q�G�%f�X�Se�����Ü�.�P�^��Yyh���a�����e	zx��^l��c�Qou���"��]��7(���ZΚ`a 
@���h
+^f�����y�i.,���Ns^���vL3����F.�q�I���x���g
+,z��Λ�l}I�&��������3>���{��5��I�Sψ{) ���_�f�uw`��^S����9���o�����,�UK�𰙱��<���}g��|�OsrzJs��9h�
�R -g?4�K)�j����x)�A
+��1þ�%��S`'43��
��[T��Z�|����b>���|�ҥ�4�%�,.N�PM���V��i~�
Ӽ8�
K
���|9��������l�Sج���(㨥�vb��Nc���2�(���3�|�)��gXR�ǡj��IjOnqoi�fw5[�n-S0�w��O����Y�g3��W���[^�
9- at O+�G�&�;�8�K�\�ǁz����4��	���0ӕ�Z��U��gh^�簝?>+i�������Y�
�
�
�@����J�Ūf��͈�z�G3ʝ�/�|�~�p�<.�rSK
�:��s>#���#a�k��vpK
��
+���
�<�gu�=�&<
@�O`vG����e�
������+�n?`���|��`X������GgX���Xӎ��svlL������d��Ehga��j
+�d*g�����45�MA|��_�4������#��n�J��$Jĵ=���EX��@�4��Us�ӺyY9
�R�q�s����2�}�FR�v�\��^7Ha��֕p���!��?�ֳ�ѿH
�8
���Y��F
+F�N
+5!�:�,{uq�c�X�5t���F;�A��.xY/��y;����}���j�{T��0�_���}��	�1����ծ����S4�[�Ѡ�6��xo
�{�3\�인:u��8�����{��h����Pv�)�<ΞJ�6n{=��RӋ ����
�:�<���\���]g��Cg��
�t���s��s��TX���67����2K\V�ӭ����7�5�{���7wҁ��E}����H
�M�T��C��X zi�]���+�oOٗ�B�5>�M��S!��t�	=�v������{�!�>Xve]�lt�VLj�Zo�Zh�o�⽸���	�oz�rs���zw1�5�Eɯsvȁ����E֙�,ШY��
:�g�^����������<f�YZ
w��̶EamoF��z��K�z��K�߼|�d�WϾZ��)L.3�	g��>,a!���ı��p�g[��u��B�1c��gjE�ڊ��"�w)��R--��W�y�m���K�� U��k.�!wI�@�g��dP�-o [...]
+���
<,���L�
K�7���"����jl�$�V����M�1
�uu*�ErZ���_�/Y��i���iN��=�u%M^]
�
l�9j/���v�T]�;��'=����
����>�ic>9 �5�O��Mv�| g9�����#(�$��*2h[���ָ�1Q�0Af`Q�Z�D=�Tf��/R!�0�S��z��!�~��U�<v���
�D��<�в�6^�� 
x����=���sj�ݙatN�����F���~6���T�̧*w���I�+J4�Z
+��  �
O{#?7�<^�<�6�/����^��"�KO�\�F�\�b�oN��"B;����ޥe+C6˔��SLjcȺ�l�4�w0g�z�ay�Q�`�0�|Ы2;A��H~U���]�:����F�*�
��\>�jm�,�[_��d;��{�BWJ�;�qR�ǁ��8��j�`�ڞ��S�|Gi��ʗ���X�v�4���=��4h{
Ow�:S�{Ԛ��h�u�����β-y���;��v�C��� )
+Ria�b�>�pX�d�j�?4�MG���j�����<�>o��-�#���|X�������8�+p>s�Us.�Z���Z���OG�*�H�(��U[�–Eq9�r�n�L�xa�G�띒X�{�0
9�Ш#Y>68_�W�A
KB��h~A�E6����y6��+񹆫9mN�sX��J��ƛ�r��Vk"`��b���>�
Fu*�roɪȅ������OӁ"m�
+9�
BIq+�7�"VOi"4�74�*��u0`�z����!��{�����?��&$�/GB�}�W�l% =�g�`�g�+`�f�@�uC��N���Q���п�js<�Çx9}�����ẇ��z.������=fk���M��q�o�.��d�[�G'na��\��_��"-��ڥ
+
;oŞ�:�ͺ��
+�������c!����7�����In6ܵ��ꄘbN�m���2�%�
�AD��
+̄�g;D'����Ɏ���K�1��Za��@��#3k���cl�MslAgk,{U�_j�xD:]��=,J��:F��u�[�
+��US��b6
+�U0�g�
�Q��sQ�(�.�j6'��pEKa��ıY
+�p�
�a�ɷ�qo�
�ܬua�q+a�PM�*|N�xnz���ӓ�X5�]�?�57 ����`o܎+���=�p�.���,���=W8����R��[4^;GTYJ[̶���y
+}�����)k
sl�Y~[�>�@XVN����
+uϯq���o���k������8�V�R�ET�/_;��_6Mu}�ݸ�sF�x3'�����S6*g��d��Bc��#9��K�=*�>E�^��B��*�|���<0�I�ڙ0�b���s�V���;��{�����UѶ���m�_�m�ԓ�m�S�m��ն�*�8]��c+���U�
�����
]�=Dtf�u�O��[�ӻ'C��8
��O�
��^+}�/7@���Q
8��ؒ&
�Ғ�s��w�F���˥��K1���<���+�X�?�s�_(wҟ>��/��bO3z�"o����{��qq*k[+:+�4.ت6ii2CG�JYR�ɬ�k8��"��޸
r}�Veᵏ1�p��5V2߽�ZR��7��.ͩY��>��dD� ��['��pwo0���� ����Y��b��a�eR��\��
����L�>���0�N��0������O����
7����^>L�-ё6�wo��� � ۑ�d�
,Zc�`�u�����x�
�=a$xm~���O�ۚ ��ܒ����,��"H�`����:VOgo�vNvd���[�V��p�Űn��23ȶ"q��V`+�h��?e�����K�KU�\�����sg�&�4{$�Y�=z"Qy�*>�JNKeg;,^�WJ�}7o��L��}ٽ�d��P�r�4_���e�9�,Nb�ϲ���Ф��5��-�Ԅ{�2���s�S߽~'�@���W�moi,ۅFt����A�f.G�L��:�#\�lM7M��#�Z���l��Bܤ���G��>F|H;"�4~#����
�lUN�
ŷ:\-U��u�bb˃U���e"�
z�a~@RB�,ޜT��9��f��j��$w�*l
+�=8��.��^�4s�� Y���"�!�j�z�4���. ����Uq��
�gṃ��6���_���xg@��F��RO^�K���Ԍ_�q�rr� �4��Bm�9GGM��Κ�t�@V�p�[�K#xԳ
�Q�w��}q\��f6Z;�Ν���,�ݫX�^V
�W��
*� ^�4W�r��p�^pj4�0��#�N�?.
I�cu���bҋ
+{��!Cԇ	�Q=�@�O�j�EJmT$J��MƩMa]�Eu_m��r7�g���-|J��Vm�
ץJ�͘/A�!˓��Y-��^	�5N4LG
+4|Sa����Y�B,�>3XHͳf���qڋ��([c?��.�5i�!�fmr.�����i��F�]��2]��0ۼ.K+����u_ۏK~Ch��o�� P����k��C�_���וx�{ĭ$giv9g�*�&�^�O��~�]�,�V�I3�#J�sr}\��^ӣh�>�̐�m�l��؃=%�J��M(A��T�g���<��
+*����
����_w�E��͖�vs��V��)� 4у3N$@��aF� hjxȈ_ ݮ��
+�I����C�e��n�e�)о�)Pj�O<
%��l%��N>#霱O��\)f
s"�D'.��d���ӌ�<�J>�n�6�&����bI^R/���b�a�BJ1O�i��X	�4�W3p/�檫B�壒O�H��ʧ�䠤@�d� ������c
+��s��F3��N>���	����3�N�y��
-N���*�>�g��Z�Jߏw��+�'C~�w�~d���}�5~���
+HsZ�����4�k�,5<
i�^����[�8�X ��v��:x-��H
+H�nF�����(aJ6^���2^�F�����mA�g�
��Wo���o���\
x�\�ݔ��#���5�7i�1�0�0���H�h���Z�[
�zi�ܔ��M�Ӝ�]��1p�������Č�k �s{�SOI]3�
+�<��~���n��t.����y�����f��u%�b9z׊��&}��2{�4����s^����bܼ�|3�P!��-xo��d��e&����L�Rq�ڼ���p��>��;;/g7��GX���
���7u�k�ޕ|���eՇ���L��3�Gn�YG�#�7�x
+�A�8�:�J�:{�R��ۥvwW#���i���ΥYx���}��-/���Ž񬡜}�*����T�ƋV.��zR��BR���p�q~�F�

(���;\:

�zl
��A
��=>/�ÄiT��>��2�*��"��G"��+��EXo�ӂoR��RP�}�^���zr0��Q�^�[S�鄱��A��[ڝ��Ot<���aj�>�������,�G��&
���lo�e뀲͟Y'�w�
�
��e��R+c��	��S�.1d��E�U�@��'����󲑂�z��w�&q/~o)��^�ӡ��q���Iro�:�6�.�^�9l��,����1�ٶ�Ҧ<3k���m�N
��R.wa�*�%f�+��/�}h®��4]`Zj8>��;�5���{G7��:�6��W�C&H
+)�@ww,���J+�ݨ����0�V��Fy�6a�`�
�_��j�jr�y9��w��Q�>I(�7����Mc
u
�H���#9\��k���U�+�q}.kTm^������;�%�Eث��� �Z��\.T<�6@�<-
+=���R��v̭Ԥ*-��g�S������w]E��V?:|nz]l(%Y����-������`s����#&V�Ov��qϲ�� oz�����HA`�uep�g�8(?.�
tz�4���`
q�~�wPv��q�%!�H/y*��
���'�$���Ӵw��kW��f�`���Ν،c'1��`�ʡ���7���@�ޏ��1��u�
#p�o�����G�_dW����,)�G���l��񄼉��l��
���A�S��f�%��m���6���Q{Q�]�&#�rm*V�&����z��d�:h����1�W�Sf+(��XE��~�N�qNS����V�09J��D�t�����d]Y�_�u>���ݾ��o�e��
+B�
�bӽ���M�/wI��E��v
�0+�T���8c�,���Ot�Z�:����LE!K�v
~Sk�~n�x�U����
+V@���\ڍu�H�D�\�VG��K��9��DD*YWv����G�pɵ� t���
/����e��-­���ɠdi�b��
�;����%�g=�V?�t;�(�~j�]��Z�4��c��z��FT�۳26J[
qD[�jD��Lj>�
#`�羯~���6�_���x�G�~�Ғ���/w}A{�� �cN��[��n����G�a�vYg
��%LMCtG����ONᄂD��:�E5sLV_�@�����p�s�ܰ�1�Z,rR6(<iв�� � i�T�I
+5n�����c�l�!ϵ��_.V�=o����tW���=~��A�n$��G�+]h����.P�Q)%v���n�K<���F={m9oH�g��8J�
+�m��O�d{4� �d��ev%��)��hMA��k�_o�M�[O�ù���]�hmQ�s��f[�G:;
�f����
+�\X��hoS���]�gF
g�C�+)�@p�N��p�B�8Oj�
��a��ǣ�я�ǩ|�1L͛��$����{9�ܩ���jxwW�ԝ{>l͜���#qm�O{�6�����}Z���d�A
+�A�rr��#O4���R��xqW���c	ԄS�h���kN'���G�,��\R\O��4�� ?3Д77��<�j�u���C��r}9.
?
Ö; F3{�φI4�7�<m����z��u�D;U�'���ֳ<b�ycX世TF+�X��)�� �
�}�����[nA���g�ȳ
f�,s�X�mY?�3��ѡ�����H���������J��
Ϸ˩
�u�H��逋避��3O
+�1ى>���!i�sqo�Pa����t��7*K��C��s �� r�a
�������<�
���
"`��\�"�{}y�".,�˾KE�����yo�d+�`w�l/N�.���j3�
���R(A8��
����1��ؤ ��dYhz ҿ���j�
��Py.WF,�:S��~O"����0ۭ6jݓw����kw6�k�A��7I���Uy�YO���(�q*Oϲ
�I�!��O�
.Nt����M���f�@���j�?�
��Z*�)�P�F��r
�R,O
,#�]�7D�=&��6�C'
�ώV�*��i�vZg���ҙ%���~���Ojmu��/n�|FK��LQ�Vc�2i�Qg��ПŽ�so4ZWs(F�R<Q�A�
�����_
��l�	�l�W�H����x�V��Н��ћ��~
��M
��@>0Ս�
��� �
e������_�
+n���{�w�r޵�~���b�TT��eNt��R�K�
�
+q�v�>K��h��������=,K=Y���n�a:������

S��[`1�M�;Y���H�q�C�	A���X��bu�����]�����$���.�D���x�����KcjK	�l0��
�Omo���m����q�c�3'�M�E��q�4�c�T���vI�}�*�C<R:!�+<���
�`�l��a��Z�.�o
��%��ۗ�~�?�f��i
6
��}3�&	3mb��h�^�•v�|�q��`{g�ݱ4fjmn�CzҚ�x��%h��is��M
Hy�n�\��l_IKT�(W�|�N[�dz��p?cS��c��1��4Ы�ߡ�����7�� 
\8�6s��y��O-5�T�����(5
m�O�
���)�{��d���Ig�1'�7/�9⾡8;w"ןҝ,��7Q�.��Z�\�,F�,֒�2j
�v����y$�͎V�v�Y.	�Ȼ��"�<� �dw�r��������;���O��w'�1\���3�����]�#Tm׉]�Oí���V����� [...]
,�h�]@�l�z�
���v���/g]����$e�ֵGm�l�Z�F3�ɕ�1B���`z�K��D���i��F at O�\O��d6�s�0��um�D���
�6Zx4Q/d8(@�� �:�޵z�6��p�otzb'�e\P at S�]�*��}+�j@
+]��k������\��m��/�q�
�;�
U?nT�
Y���v��y"[8sm������*���*cv��>�Ff9�d�g��?w۞�ci3�/�Or�� t�f<n�'8f��#�T
+��}���{��$��CH�}j��ۚ�q�w�g�I�&ۋe�
N��J#��ʘdo�n��M�
��8n�������={��I���^��?)�H�0���)���?$�N�ϖ-&�٢�|zI/�T�a�~���}<x��T�gȷ��;�
%�s���53
2c�K�@H�)�$
&Z?�'���н^C6뇱Z.���b��j��x�P�Yp+(�
�~9��ƃJ
+t�x
+��\��q�c�l&�Qi����2���#��ī7�$/T���j��]A�A�)�$�	O��c׹�
U������z
*I���bl���(qf�hѓ*?෩�"
�8�U�(�qIs��Hs̱��XIs�J��;H��KM�i'��ټ�s��
�N�,���{��G���y�]�+Φy�r!q�.��
������WB�����v��
��
+t��J����'qw(�ʣ%��,.<�P�f���y��w��y�[`�U4�]�n����kS:+O�r�G��-�͆���Dm����J֗�x�@܁w`���W{4"�
��v/�� ��;�O� ��	��gZ�3Vy(|&A!�/��CO����@��9�w�8����[^��O�@�U�M?����U
\��c����h5�܁7�:l����Ux���)��Se�K�ch�;��-th���^#tw����X)|;{��1X�h�٨HaS�~�:Ԣ�z�o�������Kj���&?ߏ�@2��r����|�Jh�F`:�h����
/#�x����%m�{�bg>�0�Ha���p��g�-ci���|��6���~F7p;�]�eu���c��">>n�ރ|�=�uJ�Ehga�6�,��+-����n[�\z�V�:�BTp�l�/I��{a;��C�R�-;���W7A���rY��#�߬�~�B`!Z^<���
+V����O�>�g��ls�S�p>���)z�E�L�R��;ؾ��b<�i�}�Ypr��t�Ig!w}���2p��!�?"b���<\J������ek�Ha��\��F�}��j�
�m7�ھ�T��x�찁�X���ܢ����m����8��9jkM���B��ӌD�a���ݜaL�'�i��jq�����]k�8we�x*o{�Cw�9�X}��rXƻb�U�#ij[{�u�y�Yr�IY^
Tijo����+5ɛ˓,g?���լ:/3:��f��D
C���p��`q�ޥ�MsB���z�����/YW���:�{���/���
/������4C�J�7;.Y�����?����n������bs;<݉���t��ǒ���&�Z�T���4
20=�.�[��m.Zosk9��θ����j`N�m��R1���rz�EZ�)���h����eٱv��x�����l����5:t�Y����
��O͘7b��#�0q�
�H:�}~p��J3z�3~p1���O��g������d<|��dO�n��;�|9������~�?M6v����������Ѷk��n��%��nm�ӛ�.{!՝���b
s��l\�z�����7��Ul͠S�3K���'N��:i8���wz=�R�e�/����a�L-�Q�h�(�䎣E'w�r�Ev��8����	�͝��g��%�W3�(����rD�K���K���kn��;w2:��M|!���Xa�%�eu_��j�w�'�w����ƺ������6�uG��s?����Eg�a�F����j�_d�{iup�_���9_u���)���`HMד�t俆[��I
~!}�ù�|�]�}�spw�`.��]}d�X�zyON�yA���`�.����ȁ��`[�aaб��;�m޹��R�Y�$�Q��Xu������/Y3����b��3�͠�@�
+�#ϵ�#�cz~^����T��S�r�]�J��jWWѤ�O�ev�19�@r���G���9��3%��
��X1:���=K���{98�Z�����ȣC��yM4
� ���⎷���6 �!7q��y�P�F�.�
8��Q���b�7EF�V��9�G_
��v�����~@��-<_#�=�\<,H\��!�cbEh����`��~
�^��ݏ���<)�OJ������8�lq] ��8���vk�J�Wϫ��Hn���������?���MtU�x
�j��U������0�<1�
���Jp���E�,4r2P�F����>7P�'_‚�QsǾ�Wº���.5Qط��b�����=����9A���K
�&��z�cR��G��uV\ug����S͚L��h��-�� x
�+}~���|G��KP�pn0�b�J>���� ���0? ם$2��`��ט-�O�OB�a
�᧩���a���o�"�����sZ����L
q��g�3 ��f�M���V�)7�6
���.�{3���T�K{��u�A�����|��	�Z��ݠ�ф�b٦�eVÕ�@LJ�K�
�o�/ӣ:8�p? ��͗u^�79�	6��y����cuv��[ۑEgN+}T�h��u{�1#a������CA���Kn3����}c����&�
aU`}V/3���mq��+g㚮���r��]D��N�\J��
���]D�m�H����q&�V�phf��e��hn���V��/n�d��
C�j2�Z#��e9�F
��dh�t����m���\r�ˮ�`6��Ô&�R�2dt�O�ݦ��5��Tmߡ��&{Љz� �ʻ|�$8�M��տؽ鞻���ԝ�8���e��H��;ѴgSΓ�����(
�0%J� �*��w��,b��a��zd`]����M7��B�cՎ��񶹤Y�(
+եw�.�#�PV�d�6K2͖N2%c����l��+��YA-w�{���
S�}Շ��SeƋ��)�FZQ��B��l3->�4�Ʈ��K�ْ��ۣ�5}"�}v�!>�bZ��!,׶�v�Z
���&
eE&��j�A~�����Eɤqo�p�:�q1?[�b�T�
�׀��\7�ْZlU-�bir��Ѻb��[Hy'8B
H��lI���F	=�Ũ���X��w;�Nw�~1x��[��9�7��Eb�`
�D�;x�
���
����ķl����D!�ؤ�x�K
�&�_V�3\��Obϯx�0�/N�*�X;�ޓФշq��
U�/
�~"[�E����u��e�^/S�#%s�9��
+�vD��_؄
��Rε�Q�.$�ch6����8k>�ƺi������Xӌ�I3;�E�j���O�?��X4&+�\,R]+{ueB�0*�-�\���)^��#$ߦ�	@�L��[�,�e����(����Ţu�W��ǐ�n���K���$E�W�؜w�M$�t��G6�������v���e�Qo���d����
ϲ���7��ڒ��(�Į/�I��Y��NdRm��[��|��j�!����z�71�|st�:b�
Fj�[+Α��^!LG< �����ݧ�Y��0�S�0�eY_m�S���<UǶP����P
�[�Z�E�/��x�?2��In2fD|�_���ڌ����sT&K�$����
�Z�߉�����e��n|�62l�V#�\�U���*2�{��v�Y�U��P6�f��X~ή:���R���Ԯ�T�르�]dD��������=��m�i����
��1��켼K��������֣^V���lн���,�R�]�m��R.ڡ����)�
5��Ɯ��km��
+
+�$l�EH8GmpG�p'U7ਲI��Q#
+�AoV�k�N�˿hum*I�>
�&��S)�le]��/��\�HxU�`D��G
+3.���e�4v��P�3�WWH�*���`pt��f^�©��	�

Hdj�Y���n��.g������RU��}}���J���$P�	�z���������saw�5�TAլ)

9�t����`? �� /H; o�o o{W����ev��Y�vdnac�P�s��S���F���͝�}j���^o�Vb� ��z���L
�ѩ��e����F3�v�. at 4�^�Ef$@4Q �� ��)c�
og�<@k 暑B�!w���X�ɽ���!�c��|!���t;�ˢ�,�~���љG�u1Xϣ���n�Y} K� �%��I +j+c
g?&ķ
w�
Yθ���361@��RF�$b( �vv�@b�BS�#��� �O��&o��$�z�}��0I/Z.I��z��-$I�͈�$
���]�LR1g�I�R�1��-��f��I:l�
+�؅�$���U��LJ�&��Qх�~���>�c���?$K���,P�t�P�%�C���M閼�C>y7K��]�$
�Y�Qq��daF���X��)I��[�f��G(��k=
��k���_4S�݊��[��ӿ)�-����Ě
$1L�^1,���^�^|k���g��wY��,Zk
f�
��O�^L��a+y�~���o
\͘Yɪt�'��������
d^�羔K��Q>[,Tk���ثf-V���}
�轡��=��]@��5���Z<��=B
+��% �?R �{)���h7ُ�����B?�'���c��n��TB�!�U�&�A�CT���x���l�����;ߦK*����k�s}&�u���W�
��2ȓ��ȗ�{�>����$F�������zln��2LtP�h�G
+l�,��:
tkl�\�sLsy➱Χ�גa��O��c�:"PYGa\
������׮X�\|����:"���5�a#�83�vaQ'=��nUI�'I�����]ڝ�O(�yi�q�ȅs� |~v����?dq�o=>�����9��d�
in�_\4/�/��޻�o���sxXi�R�ѣs�ȧz
�G��,�_�o|�
H~�
V�f1/�̏g��U85��ʾ\M׻j�rt���=�v�?(��ȂK�4g'�4_&i
��4�
/���k<�_�j���!xXg��C�i����"�����"�PH�rjQv�����[�Wo�//o7��g�8��\��
5��x�o�Wn�F���
��u��v��?�X�G�vE7������柗k¶��-^�~D
��Y|f	�ђ#?��Gݺy���W��Qj��s����t�b��NOq���F����Q�V��Qد��z^��i�Bɦf�b��t�;�%$S�BL:�E͂v�!ͷ��4�@w߻m��=�N6ה�,���O��� [...]
+|Y'�塶AMC&�,��Y���o���F�We��G��O�/Du�x["�R��2t�.n�"n��Fum��/}�zY
����n?�k�(�������OZ��#�
|8!t{1au�=�5�rLu��[�\��S�7rӑD`��yU�Q�2ګ�j��!-d7~�*�K��S�`�x���ݩ<@�����ˊ���jbA�Bz!{�f�azެG6/&���~��J��-�Ah�*��zS��iՊxe|{*�
Z�~�I�"}�J�OY�N:���g�l����H:[~Y��$�p͉��C��sd�۝v6�����:1��֛�R�j�<�ٱ�
��4����?�u��u��Y2V�Q?��[8�
�64���Ƥ�4��>mS�{<��hlHK��JQ���چD��X�����o�_�of�6�?�����b
$��ح��tWcb���� �[K�v�s5\���K���^hcK�Tk9��M}�9����p�tb;�e��̏�m
�QoI�3C�u�����5
1��-���I�`A���@� [...]
p�bqw�K��y�Ċn�
�2W+�H
v��#��絝RW�Q�iN�gO"D�ʷ��}ipc\�&Y�F*�
� �S�:b�����,F�%r��b�i
܄Y\�4ƹV�>��/7QT�x	b��
+�u�=���q���*n�	��PF��
�
c��m���j�}+���T'ژ���^����������<�5��QI���x]�K���P�E3.
+�z!L��Y��qk���@3c�xT�/�����r]����T�Z�ּ�����ˣT�|߱�¦��{ZW�z�@�inoy�"ʺd?.sqmף�Q�
��B�"f,� �����:�}(c�.K?W��
�3Lw��0�_���UČH������D��ځu���Mm��
c��������6�]��+
�մ�P�r��7�
/��(����zScT�2K��[��i���άv�ܘ{�0�R�Ћ+��k=
L�)��>���u=�hC�R�	

���v�%�&���=Ź"�hMa
+m��
1�iNK��9��^�Jg���q���nKJyq���V��B�c4^�j3nj|V���w��5>2h-�i�uJ��ѭ<�9@�bJ]j���Ay��fg��>�ke��Ay?־������d�,��#?�ޗ�ъ���r��fv�75H/�Z��9A�ϙj��N!##�B=��fR�r��c����f�k��V�=
׭u����*268��C�
�� kLW"dKZM�s"���F4�-M�kdJ����DZϿ���O6ˠ4�x�.��a
�~������<߃i8�sbi�T����� p�+�X�������]׏�fXh
U�'�� O
�$� �tXԉ衸*,�`&fЧ����V3X}��k�ŋ��P�# �K}׾Y�z<GV���٢M���&fe���2
�`9����E7���� g^�����}v���7�C0�ΨrIZ
�9rG���PH,�#���ݗR����C�3�b���؝���]���U�D��1��wI��G���}4�ɪԊ�Ed����C��|����~�
UGĕ�
+�;C
+ ���5ze��v!Q�~%	N�Ք5�f���)�9�ޭ����f��!�~��񠄬�J�)�O�le-��޾�~� �}�J}��O��^n�
ّ�E�9b��^V]dr�����lL��!҅��V:,:�%�K��ԫ���3D�5
+
o�S����؜l�Q
)�ϲrF����3O�m�ك�
�ς��{"z�,ׄ
+�ȕ׺��?8��V쳯,�3O6��Ϫ͆���ʨ�� �2����Ӡn�
d�����������#�O�#
�����@��s����/�C��+��
ݳ8nt['��h�¸���u6�u����oȒo����6�t�������FK:��Y���R1�U��(��t!y������]�U_{���>�l�r�����/?bO�m>�v3��?��S6r;W�y�;�|%i�Xj��
�Z�u��>����L�������Βm���ܴ?���'͍�>KU�!@Q��+
����K�y7�%���_��&��\
z��+�'X��
m쪃i�ۭ
�N|�
;�VY�2����
�y+�-�-��͵��7
U��p�6�(� ��F�.��K]�:��=�a
:_�uh�K,/W�4?M���8Y��Wo(7�͡
�JD<?��!�����
�67�(Ѥ��|�ǵ���@p�[Rd�L�|���J}t �c�����RkL�OU���j��Q���*�؎kX��=?A��R�c�&��{<ɲ�۝�='P�~���3��d�1����{cE�;��=6�r��
#խvfұ�'��ҳ�z��"4�vz� �d�
���d	5Ko����u6���)X�?�~��m�E�'�b����A�,�U~TdsS�c�Xh�(���tb��$����
���Z
+��4�t���0�"�	j������ʶ��{N��>���
I�{�  �u
ʸu
�WwP/'b��dzBC����r|��3����w*��c=��#0������
"#��P/��T�����7���%'v�'T{�� ���
w9�T�R�CX�ݕ���GomSh�n��ڧ���;T{���s/ @�j@OJ@)`A�zb�_ 
m �ya �. S��
���
�`�(�1!Py<:�
���0
�G�O���H�ض�ZҨLW�*\���v"�E
)��S�����`���F� ��]`��`~�`W�
`�
�P� p"� \���z�u?�7��� 
c �8[� �@T�@T)�Q���o�:*U�*�^�ն]�����Q��;Qi��`@��0�7�G��R�p�|����|�N �y��V ��(@�y
 ���y��Z���m����)X>eܓo�CK$��y��������,Iw���x{�$on�$+��$�-I�� ���IB��
V�Xk�e�0M'��3���������ZW��W~����Ty�����&y��z���v"��m �hn����?�,��[f�j��]@�o
�<��t��/�I
+�?Ik�$	�,�C7
t#�2�,�m>
t��&D�ܿ�d3x�7�ӓk���k��.��R����8�rk�j���z^�;gʼ�ҹ��G?z�}?z�/�H>Dj'��y��E�7��f�5��O� yO��"����*x�0�_B���k�ګ0ugO6����{��"9ޥw�ν8���W���������bp�y'1�{��e�΅n��yg��?p����n~I>V�J>ӳ�Ek�Yܷe���w���
��9��S��B��ϝ�wݡ�j�<�7�S�H������mv�� �jz�l��^��e3�)|��p `�0W��
=>��e��
�L=(�
+�B���ʿ+�fm��%�$�E�y�Y�����X�~���z���$!|>�6����m*���W�4�(x�#�p%]�a�|.�*�y���3�g'�%G��96�9�0e˧�Ꮰϊ��igk1��8ɥ����)j�}Q�;����C
+0�E
+�#fX�i;Yg��}�)����z
��88G���a��\���p
+F�w@
'M�~P�y7�7k,��,
�
�Ǡ��YR8���g殧y�
��w��e_*�ҝ{A[��^����nTon���\�z3sm<d��w�EFf�
[z��
+�
�m���G����
d9

+d�h�;h
��?���Kw���&s�]��X��/yx7�n�]�x
:�f����z�[.h�hV�6#y뛻���Q
\-fa�V"ٹjͰ��C���I�YH�,͍#�y��Y���������Kٙ�E{���������b����]��DN�ynۗ�ѡ%�����Տ��K��W�����⋱W�j���,�����K�PJ�r����(q��Sg�]_�M��t�)�?��1
�����C)Rg�����-�~�~q��
�o/y���(\7�y��%-�uɏ���O,f{�[E�Q^�V\_����>?�̼)��,�L�Yg�ߚq�q5{�f���@���N��D������&x��Y�Zf4��i�0� �k]o�ܛn�(���C7}�î�6���Gone
�^
+3�]H��0?���y��<f���̺P	4
�R5
�V�4�6��/|o3&�z,�!�;��*ȩ���M�M+�����׭�G�o=�����0�p�%
.� [�1�B�H��ٙ���
{��	�\���acL�
+?�ϴ!k�&�9�sE

쁅����u@����]sPU�P�N��MN+�AP��'gs&
+>�H��?��� V�F
Q��y	��m���p�ִ
d���[8��k\mpP�.�V�7�� 5�@4^l4����s���5��8��f�S諾�Վ+��N�F}
Nů���ޗ�zn86X��oӖ�J(�ô!��P�/���ܻ�[v�_��Q��G��׸A۳����6@
O��q����y�4Qj��Ҙ�󹑨�-d:�ͪ1���҈s�ɴ�����}�a�}�j�[z�P��p��WU
s�r4�û9��A�StE��7\�
}N��$���#~r�q���1Vi�z��ND�fk,����c���{�D��Sợ�7>
:WF9��K��O�63Ə���#q#-��+~��Y�H�1�n��ZW�{��)2|
�T�9Y��+FA����������j��~���
�#rk�޽���l,%5��;�gl$����pZP�Ͳ1�CӞҪ�(9�v�pPQJ������
9�d3*��@�/��:���X���B�
�ր������1@&��r/Cc�������߯~���#7�{��
�o,Z�sΜ��^h�wU�4>ʹӄ&�ٖ�z
c��P�!�--
q��"�a��N��z��q�8������RT��`)�A?�.N�ٹDc��z���t��Gx��:�i���a�nk>u�sN�^��Ae߳��S}f�dg�*|�WE)/?��p
���$�q`�Tl� |�
�wƻS���f���o�[��3}mx��w
��MuH�Ot��Μ%5��
�p��2�ߕ��U
~��87o�+&,���
+������RR�&.ao�k�g弓O��A���|��,@"�
�F���q����͵ۥ���՛̘�S���Ӣ�*��L�<�n�]2#h���W�Aɝ�IoԻ��Xk
J��̸P_�~1��}�����l~�^��\��#�����X
&�yc����>F�'-"X��2T�r��e�ҍbf9��_�aL��N
6��ym�H
�n�>I�U-��d��;���1�x�7����ֈ�\�3f�������~㱶�6a��ܟ��
+����\9&ŵ#2�q
A�����<�p���q�k1�tӧ��M��a����v�)��f�XlH����q����5�O��&�~jC��N
�X�ޝC�UC�
>k1������H��<��v� �M�����P�)�T'��bP���rfc��b
sd�l ��ܸ;
G�
5p�AvU�=-��g��!g�!>�㝕a�����UGgW�@Q�� I_p���(*��
��L��+ɮ�EV��g9r
+�l�������!Q���Naͩ���<s��N�э9`8ܶ+"��W���h���IЖ�kx��X_�
t�
�HZ�R�
����v�hȚ�~��u�C3�^�����P����4���ߪ]^3�]5��<���#����
[�t:k/�t�S��8�Z̻,�A�������$. �ïP��a�Mc�.7B_ePAq
+4�il��q�9����e�WJA

8
Q�5<��s����B����^����� 6Z1�[D����jG�X�0t�&�_V@�����������= :��
�
+�{����V���(J�
+Yy����|�:�3�K����>\+ⷮ,̊�&�;Sf�u�l��L��3m[�δ
�
�}���,�h
r
+�{ӷ6�[�	B^�1Y��;����!�([R>�K�wb,4��=J«
�d�6�H��4��H�{�Q�{��b� ܊p�{T���an��v�k�0�,W{}�n���º�y
�?I
˫���z
+�/������e�9
��l֛N�ikL���Ь�wf��N�{��6��&f����*���~9
�n4�{~����4;W���h�
فi�o�{Yn����¥�i_r��`:�46�Ѡ�� �笾
O��.K-�;�A껑����n���<��̆�C��`2;y-2��/R�!�^����Q����|&��\�¼�R井�U��<�q��J���Z�Ԋ�7�Լ�p�A6�4��7�\oZ�}~Y�D?����VSfժ�)�զaN+!"]*a�_�\5[نs��ز���44Cr<
(->j�@8|���Ƅ�b��v��S��'�e�-�Q"�ڡ�k���V��¥� ���@�\%�7���xv*ݰE at 7U�!���kn���,*�<XJ=���l�1.
j7�4(D�y�vK�~��a��X�&3~�������e
�(�o~��h�@����f[��.�u�s���r��k�ҳ��F�E����R���\�f
�"��E�������}  /�&�c���� N����
��
���y�?>���%$�������
+&Sc%�M��ڥ�^�F��Zp[/X���F:n�g��j�����ϲVt�)Xing�3�/��j�o�?saN
�W��N��u��߂X�2�Na�a������� ��v�ݑ
�Q1���H{�L��t4�	���&J;βMj�u�gvn��[vU���.:�]�h<�2P�����e�ͥ��6� St�!� d����}�p� �d��V�	��M ��
g�6�.�@�b�{����Q�
� �׽� ���3
�9<�
�k�OFI��n�B	�.�i��]��ɉ}�v�]�W�H���i�:PZ6t�]|�r�� ��p,ǝ ���
� LD@ ��&�u�>����*�z����"M �T�2�.��;�
���~Mj$��c���ʑ�b���p�Z�Q�Q;�
���W������j;����
�g��[ �=�Ec���m��
�g�R��/l�/����^p�� 1�.�D��	 ��! 	
+2 at 6����
 [P>�	��[�L�3�$)�KI2�I2��e�P?����`�p1c��x�IB��
u�X��x}��ⵆ��+/��ө��'s~��E�=��x at F�s���]|�;�Q�n�G7n��u�4|����wv�?$�!�'�zu���EL�T�vo��@}3��g��,�r.c\�8#	��
^��O�tn�<�|���|���{j�k���&����i��q8 �qg˾�FqQ���R/�W'B�
C#L&�Uh5?��c�?$o�V�X�ҷ��8��D�*95I��E��.ID��:�Uh����gq��܃�;!G��\^���s����%]��}r��sz����
��0���g�tY���%�_�g�Ic'_�'h�)G�����ή��N�#yǜ�E[
%�ޅM�}PʚѲ�ad�U�_��z��
�ﻤ�୅�k
C���,v"
���ZADԚ�e}��B�'�Y����;j�*(e
�$�=L6�1��4�ZӮoV���Š�7�Y����-��=��I>����?ph��2��-�K���\G�G������,��
F
Q|�����0	�9��Fd�q
�߷ 
��z�І�xe�c �1޿='�
�[�ֶ�S���w�s�y'�ݾޣ
�F������o�T�H>KSN>D��>)���,7�������Z�nS��D��\
s29?�����XE���z� ����ܣ��D_���rEw5j��ܱ��oe�����-��A�Br��!�ŜZ���ʪpل�
+��CY=H�[��	k'c����ѿ$��)f��@vRR�(㧀�Fq<t!�n����� �_��F9-뗏�^�
���\���K��HD��=��v2D�pG�7*'6ֱ/w׆��W�Ǒ���]�M��gu<�t�fgY�"j!��Ee��~�����2�d�٣0���l/��^��ˎ�gwVꄀ<+�u��F��U�Ea{V��&�k��m^[��is�Z
zG;��"�f�g�z\�mm�
+�yu��e�b�YdU�R�czi�E�:kw�5S�60�^�
�͑���w���,D+)�ϵf��>����E���R��
[ݶ�$��U��
+I�� ajѯ�����,�g!$~��|�V�م2^�i�˛W�\1a��6�b+��C���5?�:����J��ܙ�U� ��G��v�8[�1�� �4ꮣ�
+� "�N�'뙥��b�-&��KH���R�7¼9�(�id�f
ofo���p�ד��/o�H� ��FY���'��lhx�5��ωTȍ"����Z�ɤ��&M����ʡ� �<�:'E�M�>�����c�9�Ans+��U��c�Qn�e%���ݜ�s1��{``�׭�{�@Nӆtn�:���?��8�`�
0T$
~MN+�0i�uYe���-����k�q��>���V��{�0���7ݯ��
+���Ag�ݍ�|ec�%�\	{�س}\H�q<Ӫ��xZLYO7r[��<���@-�xnZY��2Σ���Ƥe�KY�[�����ȑ�$���mNe�.�"�Yv1�t/�hx��Q���
������d��&�.wnw�W�WY���g�#@�hԪ{�v��
��ܵ�3K-w�:
9qv&+c��L�m@�Q�22L��4���|����R��`+��8���]ح�y�\��
~ģ�ڭ
���X�Ƴv�o�/�_~��M��b�8V�}�
v6���"�x�/�}6��j�� ���z��"�(rkX�La�&��
ϺY_-�>)��-Z
���h[oMF��5~@��b6��X��N�
7���khi�U
}�m;��\9y���a��n�����G���N�����3�,%`��z��1�*�b����vZ����%�cY����l���e�6����
m�2*�w���
���A�k9O�d�<c/�s�v��#��ؓ��"=So0���l�?|=��{�zN��֗��Þ<��a[��m��oZ�@�e$v��1�Ǟ�F�=�X���AO��
⺯�F�@Y��=�.@�Q��ix���8���a;*.2��V�2^ҳ��"�
	���>�Ҧ����(w���#�IQ~���7���/?��Z{�������:k�%ʂf��Ї�5��z9Q��|<���Dv _�?�hT*�S��/��z	��V��`U��a��e��
Eχon���,��Pc���=5�����.����
�5�!���ΘGF���
O��$�ӻ7B��Mn/ذd.�V�W�Ҫ
+��b��x��mk�:�#�}����M�ݛUo�"c�V��Y6i�X���sK
|�P��}Lz/c��D[�}�d�2�D��i7"�:_��}�.c�N΋�d%�/�?�ON�
U���a�
eP/���6=H�'���
+7
�
d�F���m��H$dn�qB?/b��qH,mIn
���趎v�t8(�f#r��j�A����)w�������Ezô�N��~a�9)f
��
�:��xN�?��Ʃ�ػ=ՙ�HT���8V��Ji�8���c���W�_0w��Я��D���}8XW�Զ�)R ׫
8m�~�@��c���KUT�5Xy��4w�b�zG�#_D��G^-EF^m��"|7���P��*��4����
�6X�F,�u�a��Q؈�;�؉ n�8����A^�_e
�;q5�]g>�P��`�ܓT�HQ�C��Tl��ç#��������1:(y
�
�
������+a��*"��v��T��W�a���c�?v��7X�*d)���A�����· �8��5x�^��0��Ձ[��м�#��x&N�كh
W���B9,�0�cF��Ef��h���[��������9���܊9�E�6�U
�Ӓ���v��
+���^oU~���������N<����D�m/��&l��4w$�m9<
�bb�u<��k�;+��t�X�StQQ
(vpj��p��;�,��]=�{������B�Yuu�ԕ��O�
�w�39D��97O:�{Z��a�Ϲ�%�}ܴ�d}zbv���Q�t�oYc�0)�	���V��d
��|u�(γ
�=20�s
�}z�� ϖ{\ 4`�>���yMv�e��6�p�Qΐվ���
���u��j-�Z�e�i���e�-S���r���/���S�0X��N�J�;N�B�y�'AiK�28T��	�%y�"��P�I���t�WVpv��pM���S��������R�3�v[�G�m��ҭ�[���7�|�k���X��A�t�A�Nj5���)6(dW��
+f0={*"�
�M%���K�5U>'֜?�!ȿĔ�Tty�����w''t�
���P����a�zvӠ����fʐI�.��M��T����66p�lfC��C�ټ_/Y�]���Zev*U�U�wU�
:�,�[�
+U���,"���SS�9^�6q9�Wx�W��nP�-��t�>�$'����6�V�ƶp
5@�5�sqnV/���AM,�Q��;��G>���\�6b�W��a��*��u9�!��\����/��O����2���2�W�ܲ��P�|�*�̖�;�Uo"�<�2�K¢k7�R|��o���h�<X�=��f�Rj�U�+��7��1)?��^�3�]ƚG�,%��\��ƽD�|�D.���"�02�C�f��Oz�7�JF,5:X*�}��
�ߵ�P^��`�;�,Db^��c�ϴ�
����ሮz�}O�;�No'̚��Tj�>'A7�`K��4,��+��q��r���W�*��ĮP%�c������C1�o��FN���\[͍~@��U� l�g ��  O� +E5�}`>[j¼^���ڲ��#�Y�
����s���u�P�:�n�i����6
+d>�q�bT�'��e�jCG�utAz��8CҀ�X at oW�g0�w>�@�V2�}���y�_��@�4� �r�� [...]
 �f� Z�����p�Ͻԥ�$n�TF8��z�
?�k��jw�eK͋�v�
R"O���1��g ��
+� �(2[(}u T= �� =� ˗
 �Ӛ &U �v ۠��X���`�m
�
#�
�e�sp��ʐ�_������6��(�=�]}�x6���\U5u�}��
+�V�E^	�&�6�������ߺ-
���#XC
 ��oww�r���~
+���o	4�e� �v& �\� 1Q� ��kO �� \������+��&I'���%�I�'� ?ȠF�Y�P�����dX�g(�*�	]��}Kx�����R{:u�|2���YT���m��ou�:
��w��o',|��w
��A�����s��j�g������$=]�0Y�N���b��,�
��}�hcu��}+��;!v����'s�vn��= 
��<��>��Pnr�����x��f]cZ�\
p�E�;Gh�|��/��%"~�˺[/�M02��%oJ�_�2�����o�V&I���I}�Y�P��@�3^V!
�(�v�
w����W��D��Ɲ5Ժ��v
,��;��Q&�j�'F��[�z�k��\�1ْ ��G	XE�I*
���B��j�=
+:����c�������d�*�I:���<��M�@�Ƴ8��o��c
wlw�m�S��A��y^�
�s�O�����{�c���cmew���}'W��D��v�oT������F��k���%
��~�	�=�α}�3�����C�/t֨
�!��a���N������[�g+b��Y�H
���}

z{8y/��1�f�oX��{t��7r�MA��Z�Y��e{?���.;0jW��#��
L�b���(����2�lڕ������?�Y�b/y��Y��Oem���5�\Mt�\��+z<�t*�,^�M��x
�2\�`,x����q���V�i�Q���VOg49�C�c�Sۜ��F����Z��kx�k�{�����Yo
iZ�ܱrN��ܲ��ɧ|%�����|1���M6U4�@������=~�2){��l�9��v|��
�J��2�N7K07
@��׍�]�����_��
+�b���6�����Xբx�����d���ؿx{���f�����fͽ���
y��K����S���u~�7.%,
[��-�o��{]�p��j�:b��6�Xi�
BCW�9�-N㭏���ao�[��y�d�h�,��~!P�aQ�ף�4�^�zK)�&�]3���g�N�5n��a�u&�������5��4�
��V�c�8�/efSfy����/9���[�Q�M�Z�7o�|�e�`��e�xA��2���wnv6_�O���bFh�0P^�
����s?�t
2_�m
Am����f��*�G�����,�{+#��(U�
��Ǹ����B����
��\�py;����q��v�
������.d�l^�?��sMU%j����
(�J�9�	EA�9aB=�����\��?n�Ξ%XUc�.Kn��N���,l�k����q�'])���˽��Ђn�|M;�{�io����ض󹷷�Xث_:�{�}
�#玲�B��(lQ�X���5*�Ǎ
��ўW�u
�ˋ�yǁK
"��M�˙=e��l�����r�G?�,��R
��s^���1��*�s
X
���
+�����N�]�\\
]�<ǭ�6ݴ��8×��SaU�C�K��{
�_wqm��j���	�/��H�;�5��kR.͈���m�I��&��_ކ�P�=�:?vu���X�-�v�[���K�=oo�K.�h��Тa�;�S�F�c�m�4�Wk�T��h̓����Z�\m|ִ��gV깽Ya&�ؾ����y^�J���E��(�'���9����a��B?�:�>@�AW�բNŪ��#C�݋@?[7�-z!��QY��o��mq���iI����Z�@l[%7��y;l~��s���
t�

]Ƕv�����S�Wcs���q����³ؘ��(R�����-��T�x�uk�iג���,�iv��h㌂��~�/��˝rM�ݗ�ExB�28�fS���n|⍖�����ұ"9�.��B#��I
�
+_�az��Lk��|#Ke�^>3����h�)�O
����
�\�O��P9@�͔�
��u����A�L\\��el�4�]�E�Gv�ϛ�*�o]�f��jj6of��׵�Q�hټ��Ӯ�Mk��XV����2�}Wy���/���1vY�V���*�Z�����s���;&W`nn\��v
��1����t�蚜3h��ͬ������k�V���l�"s�Y.���~4��S�gC�K�N
9��? u���ʖa\�
NM�'^Ǔs��X���۟�T|�Oq�a��
I4}"�"t�0?��
;����
z�q���|����]��Ҟw��ݾR�
����le�\�=�,N6�6�qC[k��{RH禲^���/A^��!,O�ۆ�gϴ4{C�I�#�3s(��f%���M@��2@�<�UŒ�Y at ZG at T<�_~��<�g��[��WR�ѹō�w�
+}'-��,E$
v���~ζ�E�}���P�BId�o�"����3�+�5
ʮ�rqe���V���K@θ�{�=��k�uY��qe9��
�.��.���p�@��2k5
�>�^Jy?}��v�ƿ;��Ǟ-���o�h|���
���
Wy���y,+�d#�o�I*1ߛ�J��Xт�bU��:�{c��Q!ֹn�t�[�����v,m��̳�'�gu�3OD<0������!����k�`�L�6�v;Џ��C�[�&-�u��J�
o
+�@9�-UT��-���
+�Bq�vb��]��$I�㠐��W	�zB��	ǰ�R��(��;�&�H�|i�(��]Z|�ޓ�P�~���Y.�e����{����}7���6kH��)�����k-Iexg��h
�qa(�MqƷ����
������#۫/;���yQ��7AxB����P�GP��RE����/� ��ꐋ�nE.�ܝ*V���|�NF��>9h����m�yÿ�w6�\�_M��TWZۤX���P?�T
���\_��8
+yG�]Z�,F��DIA�Rz2hY_W�Y��)(��IS�Y$\�	�y^H�z���|[��ǥ�%�
	Q=�����֒
��纟㞯6f�kG����q�4fsФek�
+��\Rz�l�ωL��uF��^v_�� ���tJ�g�
5�*JG�'��I���6Ll�#�@�5�{�M�w��u� ����
M��������o��Ĺ\�Dyf�@_nds��2����^y־�C*�j.�Ǒ�7��ͯt�>�x.�)&
�QZ�N8J�Ndr]�ڤu.���H��0�Dm��c���x����>�#x�
�:`�j�����������R�X�G\C�GX=�G�ѹ
~��zx���7�=�
+p�A���8�,D
ڃz�^
+��
+�w-�ܦ�Ѕ� v/���[<����a������i���e�����ccL��
�9��?�\�^�ņX�
+
�V\�di�gĬ�kAʻ���g�){R6��;R�Z�?ƍ�e��s y��z����0�A{��n�;2���sT�Y�Γ�]����m���
Wb]~@Y�Z�s
����A
Z�'HvSV�U}���=���.T
nV�"�"W�dɪ���>/�L�w���:UN�n ���
�g�Ƈ���a���8�[��BK��kW�Vڨʌ��S�&�F�f&�Z#�DĒ���\󔬕\
��v4Si3�XA_�_��,05������&�˃A�\f�}�S,=S�T�&^�œ
+E3�I�zI��.N7 /N'�
���*�;$���_8��w
�y{�W���+ea��(k>���G�&�,Gƻ��ڈ
[��S9�
^

��w
${���c�[�}���C\����)BRXP0� ����3'���$�.�
8W~?g�k�o)א
Q�A	��a���ڭ�:�[nUH4��m$�S�7G�Q
z�
[(��5�p�ʹq��#�P<��RL����΂�� .bK=9��
{���
���qЋ	񻃇�Sy�����b] }@LƇ���v?�������NR���d�(�EiŨksB6�y���c��ԝ�q�2w;ː*XBa�,����`yn
��q4��x�P��P��P���/��e@	.
(1geD!�$=�\� ��K�R��T�
(f����
a�#��N��[��+;I�=y���7��z)}+���o�K��`���V at hG�� u��ΗT@#���y���}@��Ў��?9zW}����
`�;0�>L
~d���w��0�z���5r��aD�c٬���)�\�ӕ�(�^{S/���7�~I�
ݢQN
��M@�9
��
6��o
���,
| ���4��Q�Vk�;���hc��UT���k�Tm8���{� �
\���iFxY����o-�����@���lq�I�:L
��t
K�r�/V�q7G�`���Rr�?�n3����~K. �����$���^�Dz�̛�w��e�>| @�-� ߢ�`�^F2BW�dl��i	i*n���ʚ�~���y���
+�~XQ+�m�D*,��+.��W�>�9�t��w�
+
��ܷT!�ۏ����澹�-3nI7||jW��kWj��_
�<��0��<������K�oCC��m����v�'��ܧa~�x��xj�Y�a�'�}K̰;2X��_=	��x/'��^���^�W�pj]�ū{	ʯ��ݖ�sX�/N�68����8���#4j��h�����
��s���[�f���z�����bb�=+i�뫹���3��yrWw;�n��}K�^����%
:�M�r�^��u
�$�
�8',�ݺY^������;(��k,~w���x��k�,~9�+� ��k6����;�;��i��ֲ���E}}ճ|��%9s��H��%�J�s��~�'��^��m���i�D���ˍ
۳6H��j6~eX�P�Yֆ���J;r%$���I��e~\uڷ�Wj�6��mh/wh��m�5�S�;���8��ٸ�q�Z���kk��
�I��C����f��b�/�,��S��ŗ�������=��*D� [...]
+S#����fI)S�0�ΰQ�:?���9
8?�����)�|��̧ώ&����a{�v���/nۙ���a�ж���a�
�E�v��e¼����-0�L�v?;K���^��� ���ʄ��֧��È�
��Yy����E������K�]��f@�N7^}�n�
+O;�Km;�lrj[�!߮4�l��v�{�=r���.W�.���Z����䆇ı��Dܼ�.��&/%7��=��e����

)q<蕬�OߝS�K�G/����4��jqZ�,:k�SJ�d{���v�y��ݸdy�o�s�
+�X-X�z��E
+���^�aTX�G�{d�a������?L@�֌nF����B'���Z�
���&��~0�&�;l_�ڀd�N�t{�8
+������˩ݼ^�ޞ���z�ʻ�rv�M���#u�E
x����S�_��e��i��
��,<Z7sk�ni�u�*>t�\�ءi׽	���qZ�(��Q�0Gi�)Jo
��,�N���Yzr��w�I�i���������U��f�-J�n�p��v
+�9[�L������c��5c-m|U��٦9�ƶ؞H�x�	t���z�ޘ�z�Y������vتTm���|[Wl1���/��fW{���qE�}����l�yt݁��Ʊ-g�fln�?�f~�O,�vzY��3-�
[?�����t���y2kkD�
��Qک~{��4�ו��W��<W�{�?���Q/���}|l�0��n
��Y�=�����e���Xp��<ݢ��N���v��ÁU��شF���~���L�D?浧���W����F4D�U�OQ����o�V���Qn������w�ʠ}��)�L3
���&ܖk��"A\��؏{ӹ�m�Ƥ�^8�s�L��J[��|��vs-{��ӻ]��Gz�:�j��y�irTo��U�o�Sy�м�CDY~�,L�*>'�]bIj�I��;�'
�S�y5�a�r�d�����k�pEf���VS�/U�t�u��a�]k1���`K����h���QGk������,�W!=V^���1e4u6��
d��r���ir+JE ��E�bY�Ta�ݶ�掚��z���x�o�?2ߺ\�|��2��?��aU�L�S�fY�����g܈:���k���jGٜm#�0�����SF##Ie�
K�Ƕ�qnY:�#i���T��Z\ҵ�h�X^
r�]��Bu���
��*_?:-��N"�#hG�>��u:���lpx��q���fY%��X໅�c���$
��r�:㦫4��B{iZӱ�Z��cC�!���p��W59�l9��g��r2
+D8M����68��k�ƻ}��7�&�u���܍g��f)�1��c����L���,�c���:�e
����I3��<E熔��f����hٲ�ʦ�0
o4u���`r��Sd�$��TMa�����?p�(�b��7���t�u��+�x e}+�ԥYg2b�Qh�!'h��P�	�R�&���S��`A
���_v����a�~����	�9A�]T�&ԅ$�\�`j ��
c����qM�/}\p�	�{�R�Q��p�^��$9b��1ci��f�Ptb���I�+�

�*����"��:U K}r~�.I=�^g�����w�99_6�1
��1r
���u�x�!:���{���gQ��&��,�����+��x��Y�����һ��<[�6Ý��
�'t$�KZƁ�����&�/�0OeҨT	b�2�Y?v�ʙ�����`^6�!���z��;�_���_Z�b1_
�c��+�����o�9�Ϭ�·�&z��F�e��n�
�ͳ
� 
OP��EJ��a5j��6���.UT6�"�,�g��,oɲ�\��V}Ug
��	��
L��I�ð��+ӽ�W���WTh���i�^�������<��8O|ἝE��hUB��n���S������\o�-�e�tn䔩�Ʃ�&Rd�q	[��RF\|����Dx��-���~�:���~�
ڟ�k�G�����4Xc�S�;���w�>�~����_���?�&�E��d�x=i;�U��ǝ`����%c,�<�v��k�@���-U��1�+�*ع��X��Y��bV���M���������N
io��}v���ק.rl�G}���9
�ύ����Sх����=W.��:�?�k�(w�i��z5�����;z��0�
+b�+��p�!����$�
��~�V�z��
�
	�.UjBm�B՚ZW�Z��,��1b�
)�P]O�G��n��j�"*��P�ԫE>��� n�En�� >v�|4��;}�O����v�Ĭ�����~wY�Kb6��#�v�\ג*�>h���\m��9�|��ͫ�j��#+�<�+
�ç#p�N��8����g�.�'�L)"(=
+�zi�lH?E(��
h��/�����m�Bc�ۇ�z2�^
d�Fв��ԁ;�h���,M�w�|�5���)����P��O�',��̛�k�ӴX��L�w�W��H��g]kл�#2x
+�-
�
��
=-��DɫX�9��ȯ؂����3�䭘I��A����k���j�S��u��Fo'�{�0�M�wqӓ*�y��݀F�R �V�F�����\����a���P�o�@qz��
+��
)�;�F~��|3����n�s���������`��)c  6+�s
`sm��s�hYX'ʞ���
0+X�OUJ�R:�4�ȋ,���e&�wv�I��(m��(�P��Y�`r��A�	g�\� ��\cۯ���3���W௪�a��(�@@�2#��T)d� ʬ�S��	 �(�+�ȕT�ߓ�v�a
[R����z�ɹ�Lt�Z�.U�
-�v���,
���}���T����u���{��{��$|� Y)�$H��fL���@�M=d�d�r�-2���o
{4�,���y�� �9�ƀ
�/�=�-�Z���j�
+�X���:��Y~�_�\�!�[.R+�L���
+4�8�֓;�6	(�' �6��"�ܷ� �5�ۀ:���z��;tA�����V]�nY̘v �)+@��oƙ�
�a5twt̸=��ʫ���!\����
sk⼢f�����n7�F~�	&�տF��}����[O�kʿ��?6��k`�s� o��0��
+0g�
+X�T l�" �(�=�F�=���}R
+��Ȁ}G>`?�e������}<�$
`p�{R-޸`�@X#�^%,��b�?l�[s��K�K��W��=���ۿ�
���
+n�8
i� ל^ 7YP��/�h���6�W�	�/d���
+��B썀P��2�GF������(��*��N���8�uȸ���!,4미l���d�ڡ)>VhS}���uߒm�n��;2��77��[#\O~��Y�-|��_}�r�<,5	�����s�����R1�2���*�_��p���0O����ğ�ڞ|<�3��۷F�v`p89
H-�c�&
+N��~�a��%(��9�����r�����I��GG�>�
V����J���
��W�i?�]c�9l�Ͳ���<���W��z`^q�<����ƅԿ#�trk��5���%�V�sX�o�o+~��S��)
�x�?B~T:��Qeoڵ�Anc�ƼMm��
�I�#uC��:h����G�W�=�,��R_�\���~5��
�������R���ӥ
��ʛ �ۗ�t�$�JM
圚j����Q�b��NOÝ���[�M7�9[n��d�j�Ú=./�[�W����2�$���r��k�o}��aj�Yy����`WS�>����s�Z�_��J�ma�t)93��%(ӓ�_���)���w at l%��W!ZR��^�\��^h)��+��(
g[�Μ":�
Lt5ml�}ܭї?:������_�"�	�0�-g����~�S
����Ja����q��x֡��X_���py��ro?k�M�M�����/c�u[h��gn~\h��]d�L4>7m*��67��{�M�sG��cE�m�!3��k�c����k=ҋ�s�2�W`���p;(sCG}�5�Y��:�V�A����U�ޒ{�›���xX�喸��k�w�����Xh#�
f�y�����?��Qp�>a�(�(Ne�,���`��H��̨�_I��XiA%H��~�GmD�2
�t�>����M��g�!�{>��
o�V����QR:����e��/�=����i��^�E�8vg��J�
-ߚ�Ɗ����7��K���2�_�����Y'h
+
ګ]տ����T�μ�>��Q��O�v��
+�]�]vfxz�h�����y��63�����)�
�����q��7|\��g�V�y�!��c���������bOU��l
�=��A�Sx������z�n=�?������;�e���V�@X��^^�T�y���{��x��^��ۘ��V7�_-�H N2Fl��'��3l��ٯ��FSx{����f�l&�`�gWla:Vଛ��SOĠ�L���=V{�<kuc�4��/���_˶���v]�zY��p{��
*�:�5�E�nù�	���F����cs]>;K3�yS��K�Ț��f&��\����<���T:K�t>���sgxox�����d�'N`�[о\{MB�ׂ`���
-j�73n/y�d}f�����
)���g��q�)a	lM�i�R�c.�fƲm�7��h�̓Q�_@�/�^���^�~�ډH�8Y;U�?��h_\�c�1|u쿇��i=�0a:��Po7�^ݫ��u�*�s�y��º��O��$���9�0���am���4����%�=�e4�DΨF:���.�����uP�ְ�=T��~�Ry��R5�T�BGv�8Û����0�s���^�Ńd�m���d�1Xf)�Q���ut+9C�Ұ�Ҏl�Ջhi��4�Q�3�\�7l

$�t�����=j�A����<U��]^��JM�8Fa[�.�,��c������u�I�f�7�Ƞ%ŵJ$��J�q����u#7M���o���Ʉ�Y->��H�d�Z֪��`�rO�X��7Lؒhi�Y.����������Yʫ&�n�R��Tyϕ�&�����Mi�#}#X��!�5Y���'��7��{V+�*�֤��g<ca]��ﰂ��\�͜K�ݰt�j����1n��n�zδ��@�kUo<����
��;EEy
���a�'�c �r3�A�7�}��0R��>��+x�%�^V�f]��A���;��|��(���䎬��t���Q��b�:�	�Ӑ������9�ų�[:X�+
h�dV껯��
��	�t߭)\�!��=�e MTI�-�RA��E����R�

+k�Y�\k��A·��k
Ꮍ
ˡ���^.�ɢX��c{F�=2�:۳�!����-O
;���7�4�v�u���_=�\�|�ǿ��zkW_ʈB
+r�Aei�DRaO�?E�h���j�P��6�bL�o�����1w<�7��^�˭�f{�+̒I1w(2�z�
�
���r�U�U���W�2L��~	��q����tߏ��a�nf��hq��Xh��=��d����.��� ��"T�-Ʒ�3��ռ̵O��a
�e����$b����)2w�xd�u�E�:}�
�w��o�J}�>5a�%C釒�y��>�.5�?!5���_F{���}cۛ!����iK�3k6/Ǻ��২��K�A��h��T�.�
��N��Ԝ:{
T6�nE�>9h���;
[kt��Q
���pN
�~O}
endstream
endobj
33 0 obj
<</Length 65536>>stream
+��5���/
�l��H�l�I�(d�%���)��bv2�#�OR�7�x�[��ի��fI���Iojp�������&�f��)�ol�����P6	,J�QF�
k��;�N)����+S_nnQq�Ѧ�
4��65!�TgCj�͕Xq�/a~�O6�UHw
+�G��
GV�;%������
�[�Lr���8`����T+=g
�5
�9�vM
D�LX „��������� ���P���w�+Q�W�&�K�"�(���d)�����',��
+ʮ~���ӎx�����U0/�p��}���D
�n\I����������=5�#�����2�9�:�<3U���_�[�
x����#땾}���[9R�]��
H�%��'�ۨJTk
�i��[PM�k+��
-������
�3���{�H�G�nK
&���lh�Gzy��;��|y��GB�Y�_v����L#��=�V��
~˳V,�D
��X/V�J	�qݥ�b��*��
}"�!8�,�Ď���L��^��ߌ��m�DI-4��So
^�V�s��v�:���k�V>�M�z�������:2#�CD��H10j�z�MD]�,
�����ک�V�O�
�5
?��'�#���G�g�/���
߈
T;c'gq@����`��U3P�\��ˍ�d��5�ߒjy*2����F�Q)@ C��K���*l��ʶf�+�1U*H��ÇJn��r;��Pb�� J�H��#������
�b�%%""B\ۛ*�<
+��x�f5�]� *W�MO��?!�Dޫ���Z�]�V�Je{^�'����TW�cNj��lЃQ����ʶL�g�F�+%��	%�K=��P���=+�
=��+�d��Gw�9�[|������}_��ր��a��� 
��6x��Z����肔��
�r/��ˤrJK�b��S,
NT��tL
z�}%ݪ.�O�A񣮗�	TK��js�S��B����P����:���Ӳ
��_���~k�[]��6���
<Y�tZ׏����7��h
����
��'b�[�>+�K�m	�ε(o��bޞ|3
�¼�
ڑ�
+P��+lf�������X]��go��
�o�S��� ���
A�c렡��0�N��i���Ҳ��@��%k=N��N6���1FZ�s�t�>�r��T�q��h��GX�A���
�����

%<�^9c� �f3L-c�蓌 VX V���{]0����K#̸^�#?E�ƭ����tZ�s"\��y+P�[�%�XTeG�QFwH��5i4�
WE,|Z�/�j�4j
>�1i���97?~���^2�rv���3d��L�Plf}���9�-�q+ �٥n�-������
�
��E݌��d٬0ݕ�$�@Z������/e�Dc���D!kMA�ka���g�*�j� �N�
�Z
 ���
�2F�(@�r< ��i�b_ q�3��쵐� d�3�
@G@�< d�D�
;��؋��Ѹ$�Z�5�H��>��Kּ�BG�Z3>�P�E�.	�#V��V#�����'
{��W
�a��U
�P�$@�;
P%`
+{��W@��=��7��B
P�������9�C�3
"�����
+�8�\��Q�K��9��Ts
�ذwiסiծt�V��P,>���т������G�
�o�6�� 	�TI���3���
�ɡ�Ϟ
�. c�.�YM
+��0$`���`�y
X�} V0�6�͌h
X��l�I��_�5�1Pi� �o:i(4�`���-}"�.��A�u>5���؄�o��o
�qn��o�9!���~;�fm�ck�U�'�5�)�6�
+�q�w7`^H;��+�7�/��$��� gS?�g�Tx�*��VB%H�����������xťO�9�ޫ?�'侲�|�P�-�b���(ݑaU��iټ5B��t�I�)?��E)�<Lc~	����:��Y8��ӷ[�O1����f�~�
�]ՙ
���W�+��UB�V
V�&�+�6�s^9m
�is�#�8�5F�W�����a�J�C�d�9m��sX����
�߳�Cᘍ+����|�ܽ���;�p�l�&~����$-��P����"k�g�
+�O
�Z�S�r�O��P�v�8'��ޕ���
�B��o��<�����_�q����"�y������]h6�5�?�W��U��S+!��˘)[��X�����aM��J}cs��&���"h��F��ۗj>��K��.��)F4��]d� u���⋇��6g笠���
+��`%\��2&�2?��s6�,�09�-�ζj��9P-7=X4<m�,<��ci�t�΄�mv�cH�3�b�Z�?~��j�>7��
Ω�
�P��5&�q�j�5��|W¹^Z�7���^ubn~��l����(+S�\�㳝��.Ru'�W�L|�
��G����4a:l�C!
%�X\��Y�2ҡlz�֨���:���5���_
��]�%�h�>}�U�;p��:�O��|5��2_qB4sr�r�A�1>[�}���O�����M�R�z5�Nc
�1�?]f4���H��d�J���*���m3
�<
x(���=�����S�'�P��|�ߧ>�i�h�G�1i/^����Ar\�Նޓ�?乙r��+��Ib����]:aH
�q�^���x�B���X���8ܚ�����,s���W/C��S��]
k�����Sz����q�u��`��>�u'^�����`�E�r�
b3n�>m��������^�>^��+����+nŽ]���

�h�ǃ	=*�9�8�ְ6��4΅~�V_�omlۧ [...]
gp\9�t5-�x���%��
Q�J�t!_�$��5�ԕ+%�S|U�6
���h�uG��6x�ou&�8�_�|;�
,����lo{j�����ߏ�չ�%�-Ԝ�s��
�m�t30,�3��0�o㞢;�B7
�z��cG�N��n
��%������ݾ>_3�r����{m��|=d�[gOE�$j���6׈�fz>��"q�Z��9��l01����-tc�v�Ѱ�C߾Yf�;�'�
+5Z�n��^�sO�A�R%ֹ�r�}x��xʀ�z���T:�i�8��6����3)v�v
�v��be��"f��Cww�;��V�Y4i�k��|(s��E�4��Ff
��U;z���ڱm��,e�j�g�Q{��آ
�LQa�&?�Y�
ݓ>�s,}��S��a6�IRT�3�����|�t}2<
�'+W��@�F�����f�S��t�<�EL~�f���U��u��b�y_P�������,Q��Mv9�/_a�r(��ՙ̯՝4����t?)`5q�G�X\?ma�wBa�7��� D��L����%,��p�>��_���Y�����Y5;�7���-z�K�|1�����ޛ����@�7e�
~Q���)y���,@�&M,ʒ��I�[�g�e$B��RX��G��6ӟ� {��gu�G���
J�!w@gνn1�Ml#c����̛7�� [...]
���׋ %w۝�p�=�VBeƿ�C��6���#z��4w�����g���0�N���D���Se�"��LN5_"�zޥ@ �������Ne\՜gkEZ�{ �SO���Y;�N\��`m�5_
���{�	��/��yf�h��۫�#bJ�<x��{VҩH�[���(p^��4B�*�)Y�=���`
���=�hDo	����am���uh�.����>a�]��T;2
�l�FY�)͏�v����ÍP�������lϺ�Akw�����E�> �(��#T�����i�E��:>�dQ6�h�0v^D�[�
�i4
x3�a�!,������)�0���
+�����m��
+�q3�}��#�=TU���#�(��3����	s�b��i����������n)
(�
=u���mn��k�+R
+���mY���q,
u<�.����1K��ߥ�V,$�D�H˧`߯Y~^ʠ|	e>�.H�*j8_��8�~��۹�g��Ƃ��$a�����Nq��������I��3��8�c8�(3a���[~ޘ�Ȱ�>��8�1�Y#��x�
zT�,����{*�6MN�
+Į��R�knu���?l8œ#lu�%X���#�jLx�
��*tb��t�Z�5�ԭ��P]��S�%��e�'��ʕRvu�R�w��Bd:[R�{���j��e5Ю�Q—'ھ�Έ��^�:~
��-��f<&|ȗn�!G,�
�&��̱�91
W~��R��Q���R$Q��AJ���f
+iP$x�+�l��r?$
�ߑ����hO҄U�ĉm��'p�����
+�1��H��Q-,�+�I����퀲��!l̏�Gz�
󻣬,��h>�3޳�1[�c�����
�T���W{u!��EO"A,����9�Ɔm�.�&25��T�x�_aˁ��ʅ
�cx�(��t
+C+Zk�n�
+�4��-��/�^�i �/{���#b\$Ms姡+h=���>I m���\pd�ЗI8 ��h���0\�V�
5x>�ް���`����ޓD�%ND�h��R�a9�Q>�
+�<{�$�sC��Z�I�	W��\����i,'�VZ��Ȼ_��N�G�y�XKgj빑�r�!�V	�rw7=
3���*Vy�4W��-JC�!?}�o�F(][��G��s��1���-eU���ω�E�"�zVE���"ʹ���c�R� ��Gz�x�d���h�/&�_@���eX^]Xo]���k{���:�,&��N���ʥd>%p��J���̹^\S��yNL�?���m�o�j=�.�&��X���MqL`�}���@�Xp	Ⱥv�$fv��A�}��̲p^e�Y�������mۀ
�: HnlblpBMaZ���5K�p�
+ɅY)Oi,������͆�׉z��-1��+,
������ ��h&Qz�!8��2+[Zg�9�ے��*Z{j=�u����"� u5�)�K@�*��YP�MPs���xԀ�լR�K�/�i��=
��]d}K�)��ds_ŋ�����^���f��囟���l����
-���}0�)j'@?w@?A0����]�0
b��+)�}���-`8�X���t�N ��> ��*�����F��dBG>'n�$/5�m�B?O�*�������>�
ԯy1|��
`(��X��̥�,8
�������la�l�� ��+)�.`Gx#E{
�1vJ1C ;qU�N�F�]��v�^+��P��ȥ���E�{4,s�+��g�Ƀ�Ap8K1ך�}
��]=�R��B
+ at x@�������p9=��_�~
8w�I�\�� 7sh���"���)���� ^Q�w�;�� |�0S��
���|�)��Eq���U�k?�-e�d�%&������Un08�\�����<��Y� ��zr:~���"	��L �
���+�߮1.a��j��+ 1���?@�6ŵDc6b�q��P)�%���4gɼ��'I]ΆP�gʲC���o�
9�9@
b��2�zr�La�g�H��_���j[bg���ro�?�bT��t�42g@�\�@�;9 ��{
�~<r��u�ۊ��ZrՎSl�F
���Et�Mb5�~�Y!�ٶ�F'�B����=H�ۥo���Z�J���|����׎��o?J^ �Z> Ux����62
�n�]�^V�e�qЈ�
4� M��)>�tP��⫏}ܿ��cf�ξ��Q�~�O����T[�
mTѫ��W���.�GKL�z�$�c��c�#h�n�I夬�cLl��ղ��a���C�����Z�2��^���/�	�^�G	e����Zz��y�
$�;:����JD����=b�pC�x���IY�������%s0'��
��>�R��B��[�=�7;s�n���\7r��*���J��e�%^K�`ψ0��-��ߗ?�m�%�1ߧ�
~�OM:9*E����f7�c�Vj�l]n�"����GS���ho'kn�]�"t�����`�[v��i�o����ͳ�6s�(;]��6E��7Y��X���]�a�Y ������������
�e��w��k�?hC�0l��Hvy�!i�}�iܭ�y�gS��ϐ��:-}N�
ݣI �{�]�>
���|t
�͈���a��_u�U�]q���
o���9�F��JW��~�O�������S7�LvhDV�S�-���hn���s{痢w�:Y�x���w.
+���,:�Yr�T	n(
Qq��e�\�B
�D�����G�R�?�M�0�!������:�������]H�����
���mr�_����h��G}q
l�,b�p�
��w6Y
5P�:�H�=��0~��E��U�}�e�zӂu���]8�L�C�Hg�U��`M�����v���1\".9�ZI
[�C�7�zm�x��IÀU4�,P7
ya+}w
��:�$�x�g����BC�b:[f�gc��GrG�M�������Y'���v�5�0����4�N�e+i>�-�z=4o�̥�<���s��4�
�#��C
����ud��~�ڢ�o��cqZ
���J\�\��Ine׭��Źmד�b�Y^S��徔b�=wLGGl�
b�#ѱJ�����[�ך�C��F�&Z�g
�CKjDa�
���
֑�tV�ү_È�P
j�t���O�64�Ə���;�E�?z�z�{�ߗ{r�,��U�h�����}9���q�y���ŵ��
�:�*A"a��Z���ђ��wc i 
ku�>3�\mY�5쵴���ƫR�{�Rw��
+��A����L`���W��X�roQ��5o����eh^)���W��g�8ϴ���E�=�tW����u⡛I��7���^h�*�|�](�|jitQ�w/�z�<ז���ZY
A�~Y�A���~�|y�6ʏ
+^�ޡP�
+���2Q�[r���ڋb)?޻�������8�^�u�ŋ�f���0J�v8��m�iiVB��b	�Ű{"�]�YԚ/�I�9�����е�P�� ��@$�_a��n>>��>��䌒?p�i)Bq~��b�[2�u�Zt�e'pvx?t��y�>*�
��K+)G+�{��yfW�5S͝*������
�ST����90�mj�V�Y'ª�^���AR~Y�m���ge�U�͉����w�)}\���95#"�c:9ڍ�N���ΰ���X��fwL�����z�������w��y�\%}F۞�>_��$/=��
+znM;1B�I�=��#��Ң�T�.\�h�\�ȧ�l�I�/�2�l:q�p��O�ho���j���Ǽ� b�P�(��-
$K.��kc���;����n�E���sws����Y��,�n��W+�;
1���]�r��rȩl���Rnb1j�A�P̕��/VC9�����Y��cw��S���i��V;�ff�ά
+��t(L�n��A:���C��r����Ӗד�����p�t�mέ��e��
��D�����_��N3r��[��"Y�Y3�"2St�
׆9xO����*��!J|p}/o�?���=8��]Xג54�W�N#c�of\=m���~�V�k��֑sj�	��Y%Ě��^��|n���Rn9RS�h(u������,�I8��{4E�>މz8 ��Q5RX��d��FJu��	���Os��J���92��-ʻ����\Ȝz
���z�Yk(��j��S�^�p��&[+ ��kN���ԙS���
+���ڮ�O6UQ�=�S�Vˆ���YÄl�ф�_O3�i���e��c������__��dz���[��jC� �nvRvv�4��̾�/2���/��JW�X	�Xn}�KY
��
i�X|����������imiad��`A�%d�̀���m�ե9�|Fn���)�
+�U�*�1���,�b��7:��]�
Qcj��_�i;���@��Z�ެn��FA0�B��
*R�Ѷ!Gڼ+�Vۡ��ͧ��l����8
+��
+P���ө��n�E�9f.p���༡�
}3�MvC�'l��Nl� K�k�7�~�Ì���7�K�������V�ݾJ���;����b�Gdk�ui����Uѵ��cR��/яD�:=��F�
��
�%=9s�����e7c+x�c��Pe�ի��U9d�WoH�V؁n��
�
�ȅG]��L
t���[ԾhKZ#�É��
Y
[`K��0F���ɩҸ�
�^
6�Az�
v
��@w�e��9
�l���,�����_�w������9��p4�\�dZ�6u25�}-�)��ܐUz��܉%���ښ
�ژ��}p�ȇ@�_�^�Q��\G+C�S�%�L��XZ��Er����}"�л#�jS��έ���n�$b��ǰ��>W�%-
�
uM�$�Õ����!�1��d���N��}觙81
�
��K"s�<�ɤN�)i㎻��vx�~�!2���E�΁j�]���r��
A�|�
R:��z�V��f"��kW�w~�[��d�G�B���Aݠ�C)�F���	���+�#����sf "[���i~�����H����4la�G~����]8�`l��ĊPb����	]�U)�֑�r���o�(+�
��6�wҨ�����x"fV�
_RK[m�B:�U��c*�(MȈ�����x.�ͱŲ�F�W��1
?>��
�Рk(�Fb~�:Z��J��NDg�k��S�m>Ǘd������$�X�Ѣ�/j��*��!:��7�&��k���'���Z�]S�i=b�h�m�{ܚ�*y5b��*�R9��
+�i���e'_�/�<�`��i!�rM�Mr�}#��>��;$��a ��?0|�}�78�a�,A�f�e�uT��#��it��5d��=7+U:��-�E��;�]p�חV�=O�XS7�j�xtw
0��ء��]��4���YPE)��C%D:z��ȟ^~����ְNa��z04
/d�e.�R֑�Q~���<��2%�D�U��d��0S"w�8S�,���fǴܣp��Oq�hc�T��Y���F�q�9[{
F�}���
�n����D�罞�z~��
h�;�i��e]�<�,Z�Y�O�m2�ms�
x�M!)�, >�LQ�����ﳤ4 nT�� ��s�H��=4y�ۢ����Il�����9��@U�G����vB�@
�(��t�j�$po��Bcte��bT�
ț0HQ��l �}%���O�(SN�O:'
+�,��߀�g�� �/��ŅR<@ni���G�5 �?n'jn��������[���(��Q�e��0'-�><�0�_=Y?u2>�� �\��=�����B@s�	�z����S�#
�e�O���v)����
+h�-��V��/��o� ͼ=���
s�n�:���W�J������Lbq�/��eQs�<��
6�x��?�1�Y�`��03Ka�#G�؋0���WO���L`�707��S�B�8E:�̣��i�^h0�U��Vڶ.�)�
[�zc�x�z5q���(���c�<��r�������Ξ�ms��?�`X~���� �x�;@O�]�����ϟ�`��b��tpš�>�n>� nA.S,��J��c ���M��p��
pm�\�)F�?��
R���ѡy�
ct��D)��gzOd �4�
��Փ���������
��㟲`��>p����W�\Vq�`����9|@hu! �	�Lz(��&�
�j��ݕ��ӻi4N:��hlQ|������[�I�4k�Ȼ�A`��zM��&���z���
+��#��)peӯ�Cui��7t�"wVHĺ��\ )�ހ4n�@��f�WH��H�8m{�i��� �S�׆�K�?p9�>(�H��!��9}�d�
S����o�~��������+�������
o1�ynv�B
f@��ǿ���4��j��U�*��
��✶NU�Θ!P{��?��r����B۝�|87E��|���S���G��n
�\���q%���R�?�_��O��
?'V�9���Q夬P���9���0b�p?��%�Z�
oO� Ӣ6;7cmj9��Á�u����w�}~��3�2���oE�Ü7�;��Z��+ъ[�Q���(�N]ĝcL]�wf{Ȇ�q�$d�[H�m���sK
^�M-��G7����.ajᔸ�Ҕ�x6
+�E�Ϣ���n��
���A Ϧ�/܌*͐	#�o�9[f��)�I��
+>ݬ>~��
�>|���wN-k�?EwC�o��>���J��W��cg3�x�i&��yMf�l糞9��~�( �):!^� Q����q
[k�cU���Sf���5[`	��P�v�?����>ޝsM��y}ԗ�f�F�r}4s�U����.�{.b���%�Μ�����gv�6�℘�կ:�(����

��҈۾�?��)
���=�c������o�3ԛ:�ss�zwQ�݅�^�S����=���F�Z+q���G�X�.��>	��=�����X�,G�=
�r(��=~F��{�4(�7���:
u��LU���T��.[��!�A���N�m�x
E�&���k�ي�,�_�Z�6�G߂�?��鷏gqX�mv�]]�ħ0E�a���A�~Kq,d
+���~�����z.��]�κ$O:�Z[�k��i���!j��9���{+iU�-�V�6o�N����T�98K
#�1Ñ����kv���~^Gvҭ��3�\��Q��q�V
=ߚ_$G9���1=���X���(f���u�l w����kx�F
:�[I#2[�%.5���x�����E�g������:���l7�O��U�E���"Ȟk�
}T�u�瀨�đT��Y7hhJp���OFìٲ�Kp�I�-K_
��8_�Q�<����m��w��h3|��JB��즇���W8*��0;�u7Gq�E��k�V0��j�ǂW�5��
+}����]������I�=�#}�,�F��\Va��=�v�3�
W�l�U�(7
M�ܮ�P�8=�R����Zp_��!
����L��F��{�.�x7ۆЩ�����&=
�M5��4߯���x�@/!��ڗ��X�u���J��âgt�e��z�ZN�T>��-�,���-�&;�SˆC�.5{?����!��S��h�Ɗ��|�Z�~�w�}�h��^rO�jU�/+��gȜ�����&�)�j��4����x��x�%�R��b���$�����h����qq��JL���ދ�pb����j
�O�j����
�)o+�£&�
+}�̥�
+)F���9���iSmu�
Z_D�4��
+�~����z�3�L%h{�c-.M�ڤ8����₽���Wgk�?5����x���h�
a�Ւxռ�$��hn��XE�B�����
���Ű�'F6����Z�u':�tDn�u��et�e����Hb�Jg�����䪵3y��vf�A"7-.��m���e�ٮ6=�pی��©������-
���_�'#g
���/�&e�2M�0'cE�"KSwN��#M��y��HC�����y�}������Z(�
+�J1�~��e�)�͝�]Js���08h;��g��"�8�������jִ��V��W!2�+�-�Nal|�e"�wFv�N�i{�ґ�6�-���
�<&����ՠ��*)�]�֟U����	������.�GH1�vnޑ���!��2���Im�����UjiR��Q�	*�9oRʋ��v���Ⱥ��
���aa�]���5�Jo�;���%t
kX�P7
�W�D�({I~(�{)�0�0'���D�W[A�D��Ԗl_��eG��"��4�q� �RLua0qZ�`WOS�=�
���o�f{8I�3�T�� �M(���[�B�
��ۦS(�t�;t�z.)��7�j�5�\L����fÉ|�W����r�H���)�oٌ��r���>+���&
N�P�M!cn���T��or<ܷnndCn^ȟyxp at yx�g~��K��\�a��AG�Ai
Rg',�K�1b�«����-?~Y�̲�R_�U����ҕ�D��Db�!�Q�pK���	/Ba1|��B�qC������q$
��
n^��\Im [...]
%���S_�

�P��Y6��[ݭ��ҟ�
Y��#G*-U+r��%�iآ`V,�w�j5=.��(�k(���;g��n���g�T?�;E#���
K+�N7�Os�k�Jb{CE��CIx�%o;�#o{nCI�'KE�C~�7?U�$�{�f�r���ԓ��@�X��列͊�LEaī?�!�[�0�]�/�%v���1m�~�1}
ZS��G�'�'*�%i�LE=JQ�(�xT�;J����&�6�"^��E�O�&�x_$�A�$��/� �h8���B
/���ӎ
+�}�����^{}�8:7`�+iUsy�&-c7K�K�aܙG7N�*�7/M*�޻��͍Ȼ�.�^�ۓ�{%^�K��F��H�����E�����
��7�����m�u�9�J�;
��	
����u;qwk�n��I���ݳؓ/Ъ)ƻl��l�a7��d�DϠ�jӢ��f��U���Ԕ^H
�^D�eLd�e����������
�=�y�8�8,_�
+�*s���9F�������r���l�Q~�=�(^�rhy��j��(�u;qN${7���#|�
������pe�(2��ݦ�b��+�C�u�	��p�lnk
���X~�
��p�D}�u@�
��X~�.C�����4�i��rv����9�$�YGZ�M����5�!
�
�\���u;����Z������}�=�j5�Y�T~�d�)����&�b�0錆�ׇ�������z���Z����
%��
�I���7HR�$H�B�e
���%�ʋ
�Ƽ��4{���P���b
V��9��� C��<����:����h���~"=�|Öa�+_vU�Mx�R��C
�E
G
Ⱦ�k�B
��~�Y R��؆�yt���jK[�蝠�xzA��CF��gG凌�FR3
Y�ef;��;��7����k��L��#
��
�$�A?͑�F'ږ�6��&�;����uZ,M-j�M�}�Ӝ������m�NZ'�r�U
z�%�P.��
^�f��~+kWW���x�d�Mx��
r��r�
+ �l	�����T�֘���)���8>X� �6����|[}�F	�54���`�0Y�c�(+�����{|z�qw2��
+&����a#r�o��m�f'Ͱ��?� �������;��Wc@�:E�b��(�)f@Hj�� �<|�6kG	� "���=H�����q;��G'd:Q���?v�?�7�
+FM|�"khe1r-J���K�G<�Ϋ_�b��t~ui�)& �t7��-R4�)Nw at j2�����)-@�5 
t6�Ud� ���
�p��ʆ���h5XLsdY��?�7�܎�^,�	�>j��)�̵.�:�엫�h$T���; ��*s��x� E�=@��Pf{(��T�\ 5j���'멱��8�5)�5�)�y@�z��jP
��f�T�����Cd�(Ao_���*+Z�n��S��Ο�s�@����W%��2x]k ��6 �/� ��;)�@�_3@�����Ї(���
-� ��8�����S�FMRl����4`Ҍ0:�Uz��
0�J
$�
+3=Cj,�@�`�}���<�7��#���#��<��&x(t���B�7��Փm&�Kۘf�����`����Şg�
+���K�6�m�� �����?<����0�N �{�\�❶A�,`��'V��Rݳ��
+�0��H�drl�����Nna��m���[�WO
d�}�g�1��oEp�s\w� �n��=�<ib�8:�%�o
+6���[m�1F)ng d�< � �x%��0 �,�]]m��8
ݰ�)�ם'��+w;�7xlgnY�
��]�v�v~�V�~䑃�-�������j�_���@TNkL�5���R�_@�:,�h����S<Ӷ�Z��U(���H
���W
4K?ՈJg�
�o�X�,p�?�����.��ȯ��,
�u����|
Ĝ����}��)�r~Qr���]:�Z� ���@��
��P
�=Pj����"�����4��?���I�������7�_yƙy�1B�㻳�/oh��^�(<�Y2+|��s��_gq��ߺYz���gݬ����
c���v�G��Ί�_?��s�n�#��6����a�_��o��ׁ��_�j��̐w���5sW.;�e]�.�#p���Y��	�������h��kU�lv��lCO�庁��5�����/�[�z.���]Ĝ��?����{_�M�ky������):_��.��w���-^�-
��v���vR���a��?{�8Bv�˔�����f������x� c�� {>��W��t���W/��5�lЛsh4���bt
�݈��aR�e���D
��j�7����5�
��?6��#��ֿ�����x�
���ff�logΝ�L�!���gL/����rÈ��C�Ѓ.w�Jr��g��b��1��>Q��қZJ��B᰻(NV]t���>Y8H�ؿ��.<��5���}��_|G��ǃ�i�V�<t��f\� W
�k�����V���gsߎc�G*����=���<˿p����_��ڃ�� �A{W�C�Ţ�1dɨ��B+�*z+�f��w	�ʇ
4b��4
ʄ���
+G^+
+-l�������oy��9��t�Ps��g�0‡���M����Ļ^vGw��Nl��7�]#�Rt�qՈ;q�V$������]E5��8mĆ�
?ce�l���
���R�]w�u��nt
=ju
��*���ʮ-/+5��W��ި�/��/�v
_=yL�X"��,�!C���yݤ���z��ݢ4 at V�r����|82
the+b}�ֵ:�lZ�E�W��۞_]Wǵj@/��]c֮��}\�/�I�P�*��ɏ
�Y��۹r׾�e1�؋�Q�3pgS��D4�JIq5�X%�L0�}�B
8��G�����֍X�G���:2�/k
��Ur~����o�H&8Fpw$�^��Gs��&��mȩ宩��s�8^�:e��Uk�Q��,|5,N��e�e��]4ì�	W�Eo��{��Zru=@S,�/f�:W����
���[��x�䱞��y����J햴���������g0.w�h�=���3�ѥ4*�
%
݀�4��E�<�Ed���Eq�Ǒ����v�*ڻ^P�k�u�:��s�U//%��u������`kJ�0�U�H��c�3��J6�f_��k�ry���?�ӎ����ĹFz\��=
�z�U��DZ��Φ.�.WΆy

����{1���Y9k3S;o5s��OMμ4NJ)g6f�>���ƨ��:�Sc0D�F&�e����ɺ]���
�6:l0�M�A��Wۜx̅��_*\#��ʴ%�gZ��}Pu�!^rq�
+�͎���S�e�շ�
ab^���l/*�ؔ������ςV� �Mmc�xF!�x}U��W�S�������2����G�'.�lk��TYx�b�R�:�K߽�>��b��
�_g��=)?��E	9v�ή�i؍�X��ĵD�dY�&�Ly��>Wm��5
+������s}�
�q���<�oZ���Z~�êϚ�����)Us�)4���nG2����cܤ���Kb�aIbg8��n�b�%6W�!X��;�g
��l������ٍ~!�K��)~�s�0�u��f�����e-�C
���wсJ��Tپ̵R]�G���9�_2׹!R��!$q�K��wD����2b��[��L��.�H �}�?W%+���!W����0�P\���>�X��1Z� *��>MK�e���1����5[%&���Gח���!s��-%����";�I�Y���{U^�	ϋ��z�)&���GG��[�N��
+������X���6*��c.�Μ{D�_DR�05r}�
+���n�;N�v��)�|M��UO+go��M�M�(�̐��ݔ$����j�4��v#RcX�?��
o��'

+�On�I0�~"�f��Ze˔��c3�X�3c�a*��PD�a*�yJ��0��1�
hU9�ԗg��o}����چ�~״r��T�Y[
+s�T�.ӨO�G=IT�cChK �q���〛���+��m.w�����ٲ����^���v�N�
�5d���xt}�wi6xl���f��'�S���0�YC)��ֻ�a
k"�f�g)��v
�ƅ!�k�����V�t�׼Ŕ���,jV�
+E��m_V��Nй<#Xl�)Y\�+L�c�?0C9�.CU/����i�g�iv��s��R-�(�6r�k��Ȏ6\�
+*�������>$|�#B|�
����Έ����QħՍ���Qz�L��HÓNEaO�+uh���F2u���B�������Ua��à��C�t�L�x�jZ��=�Dl�$�[p ;
�A*J!�ȋ����Ҳ��k�������އ
n��>|�6���<����e��1���K_������Ri�Ȣ�v�~�1��} s%�X�٦�Sm�x:lOd��諔X���
=����Q!�2�L�����2%��r�J�+>�
n^4��@6u�:���)�,�Wt��pC6���\l}�\p|Um�
�~��
�*
��P[#TK	����T��0��
n�.K̎>�����Tb;y
��}�
��-��?3��G���[�*�+������Q~�����rP��.���2�bi��__� ��|0)]���r���͓�f���%�>t��� %T.�M�-
��#{��r�1��.?�^�6
}�
U�4��A��V���Y�P�4�1���Хت��m
�X�
��{�'W�!����\���su�w��
s���S�6@�rJ�F!�HSlO�S�$�)0
�Sl����$f��I�'���-u}"���ܢw2��N��
�����g�FJجv��ra��7ۣ��Tozn��ع��(�؂RO��"��j�4w�j�[�mn��|�A1
��"9@9��ޓ֡�*`�vI#XX��iz�+ at N�
+�
�U�kA5
J����e��A�TY!��@8��aM{�����e�s���1R�M��y��N���
Vh%J�A��a
���҅R&��n��+�YSݷ2����8f��8RW�Lړ(3���lf;8���Xw�z4rEu�2�BO�k��0F���-e�e���@�˸B
��C�܍�
�]i-j
�źS�釚�����
qk?k&�03��݌
��
2�쁇n ���s%��ѭ]������f5�}��8�HQ<~mYL�)
����*�E良a�!@�[��̥"ݜLR���p]�u!O7?
)#&
�n#�!�
+YH���r
+�ꘑ�pSt�)�6�Bn���X#�X��6�k k�� K�v�E�`�N Xe��Sߦ8�~`���^�l�٫�4�e�����Vرʰk�D>N=��*l][C5��M�vYV

�X�K�pIRSX���I�(���>�W�^��
���1E���A��4^ǚ)���]��~N�m��%)*��ۉ^���Y�Ϥ>�����;w����V��b�[y�71���h���jv�
�L�I ��T��~ �[����ht:���c@
�u��%�İ�b����O��9 ���S�M@�=@ԧ/@�0��(��F�{É��E�o�7-~�ubt�����<+�."�V6�޵��3�M�����F��i'��R	����Ǎ�<:���C@�*
@�6@A�럲`RI1����e.�|mi@��%@&��#�"�
��������Q�7���
C��*]�@�Z�*���
�U%�}hdeʙ�i�~ΤTT�_��
+ U�VՂC@
�6�V��Oe0��/��z:��
���"`S<-@J!���<���)�m�]EW)��/�]��[��F'���V,��Lɷ�p4?��!j�W��l���7\K{����#@�{]@ϖ}@�/���Z>0�� L���xw�} ���-
I��L5Ŷ
���6��[ �J�� [3�V�}��% �5]���/q<��-�Y繞��u�-�F\��;(���{{��h����[�39�	3�r͑��;.��%�h�gD>�1�P!�Q
��~��SMI
�DK�V��V���f�7ء�ziF�@�gY ��O��M0����0�
݀\�r@�
@��3 ;�`"9e�t+�Cr�ӽ���mv:3�Sܓb����
�B��m��o��)�WJ�
+�_��w��|�?�_�m��	�M��-�� �J@
wC����o���A�ԡ�j'�:Z�@
�e��o	��߬g�IW$g�/������Ɂ��7�����w��7�ᯂ�׆��n_�2�m���a	�� ����y`X��g�Y��/*�h�A�^��*�_��7�f�H�?��l����?�dx�{�2�����N����O߹Y�hip?���>�z�
k��]rpS[fT�7|XR�u|�Z�虿�U���8
����3�����|�~�������@���j�_�B����)>��9�
9�ϴ,�;�w/�P����K~bW�Ҝ��Z$�Z�����pW���>��X��s�k�g�g���
M�ѐ���4���dW(W'�p��{��׌��Q��YWC¼]�6�9u��� ���l��M�U���p�R�%䣎�3�|,��,�ia����%��֔�A�Ie&�
+͏�
��Ցz��î��q'�
�q��
P߅Rb�Z/�����|�y�}����sWO�t6ܑ�M}�����]5J3��CrpkM
NvYf>>��v�b�ð+F� nF��};>�cs����3�9L��ݙ�"{�>���u�:mz�]9���m�U��yK���ͨ
s͖U���M]��k]=!?YShq7���uK�H�>�A\��߇��p��e�[���_�.9{�:���kq��=�V]�.Z��iFMh�Toйq����_�xh�u�2����~�Q��V�Q�ztuXY���ʢJ)_\�����װ�2�|��夸&�O�;qg�}?�j�jI�
h���zkm�FW{&[i֩�o<S{���"lP
sT��B����N�g�~�ܙ�r 8�2s
+���ҊJ�u��&B��ӊ�T�+j��)��׹p����m^����n����C����}�@]rz<��
X7�[jV��U5̼6Ul
+>E����.\/�ji��GY!8��JP�jF1��b�j�?hQ}�s��h
Lx^�����
�5ʿW�*�2�(�H�i!��{�
�=o�N?����Pq������e����fI]��Z!WQ����[A]�|��`PT�zX�
�M���O����3�^ 8?�q<o*�(.�q�������i{dx�@�Y�nev}r��-�w��
�;��3����9���}��x������mK]��y7,�W
+�j���vQ�R備o�}�
+�q�*��U�yL��-*����Bu摧�&(�}��΢̮��g*���
gح;/•!�MGSENkX�J��\ʤ65'�
+cgP�

G�!�}(���o�㖾���&��%��A�8�-ʼn��ܲ�N6���&�s�{��-���GmGnv
��Y��g2]��c_-���h��q��n��Q�6+��n��L��h�����u���q\��3���jY�qnY��-�-t�%{_���{�T��g]06�����(A&�P���$'*����m���L�宏���l�Uڰ��"����b7uOw�)s条�(9�)j�%���HȄ��SWVN�,�T����4�C�M�'��?�szuD�~P�
�Z#��4��f5�4���'�F	
�vM]�_�r���Os
Jne��
�or3���޶3*�u)сLA�''ٲ��oh�:Z���
������Si[�
�I8��n�W��.�ɫv����L*�z-
U?����jJ?���kZ��WHS�Ȼ��Q�ʣZ�,�����4
+&T._�{�=�'
s6]
��)�3v�-k�
�E�{�,�U�,�C���
���CG����.�7�\�T4�|i���S;�<Q
�]��J?��[
�����iW`e���� R�V���� .���B�H\���ky����
Dq����Q��Z6ROj�+�Z�%W~c7��?/qz-�)]riNk�I��PU5҄�İ�*�0��o<U�G�jCN7�=V6)����y�Q\�S�??�XU�V^`�Xr��w������W
��+)����]�ݩ�I�W�;~mr�?�m�Qw&\Ƿ��:e�iA��󉤵Z
+�޺[B5N}B(s^~����>v�����%y`�J��Y�,����u�/Nc&�`�lt���J9�򂱑��x\}�ksr1�f/����Tg[�Y��˭c�b�8��;���c'���O�g�|�,	�~*㺦�K�j� F,G�<��.
J�)���$냚�Z�X������Wƫ
+/��w��dm���5'�g{�i��6���/i�gxuƌos��l��s�U��:�b����9Ρ����:�̩/�RÆX��k;oT
Gk�N�j�19��pK�H9�Ix
�E�u�
��ފX^E"׀#��÷�^�R�m��"���u�:
�^��K�
��}�s��S��MCU�&�p��R�k�Ae��Hezt���7
��}�A?o���_��7�s&[�bn&�7���>ȍ��r� ͦ
J\$L(�k���Zw:�${��h���rI�v%�7\�U�������ͮҩn�CC�6����2�BL��-I�5� �ȩLsoB���X�k�X5�B2���
�\r�)-~��C�t�9w�3��&����rfE�
++SBi�a_���oV]��NI�n�w��@C�@��ٱCe��G}��O�j��+��J��vC�B�F�2F0"���s���[�(�:�y=`pި��rW���]{���{�_l�zUf
k���������ͪ��������TrV��#�v���+̋

q��i��0
${'f92?0�t<�X��K7�"���:��^�kK�
"�R�N����
+��{1i?�~P�%i4��&-�I��֟��)s.-�o~��
7K�J�Y�=-}����-�T��Tk�1��
ѣ'�����M��%iO�ֆ�A��q�5�8���<V�-��,�{�,gh��9��)�Z�#!w��%�����#f��!���d>@nWn����۩է�|�J�b�)��a�dI�QJ��祒A����ǦS�� �B�O|��A�I�<R	�<�&N
+�&)��Z�A)����t&�A���C{��S�a`0��IVi@l������ܗoC�h%M�1�i��L�5����2�^�9��X�Z��_i^}�
�0c<9+���$
��`��F۽6�<�6�X�
���wNU�i)������}0��K@��(� D�0���pzs@��O'N�e
.���c�Sp��jj�4VT\��H���v]N�MG`�$��n�d�61�� ���3� C�[CN3
+ʚ��G1�9 at BIoOB
+��$�VTz�d�% ��-��$�Iނ�u@�`�`�U� �.�\��P�/�F��m�`?)4'+���?���КȀ��S
�W6	�\�q�l��N�&4X��C��$�4�<Ӏ<�~�zR�92�7=9Z= y���\
@^�-@�- �x��,Jr~
r�٧����b�á���
d�@�K����s:
�L*_��ܞ��2f�s��=�2� 
�f$��
(������}��Q6�fnP�q)��
�Cz�`��Qy'�s�:�\@��.�V�#�֭�GM�I��ia�N�{����8
�C�"FM%#��_�[���̫CX�|�Ԉ�
+������% ��塙�d 
)@�w�.�:p-@�*���<
g��}���~��0�%X!���c��/y� �!��+��$��|���
���Y�W�4R��Q��
���کүٛ�͚&vQ%
5�H�'��V�,:�%�$kI��
0��L���0��9�K���u���
`Mn
+X��K��+P�7�4kWJ����)�Xe���V �V��EMҬ1�J�/����m��wU�سE�˖<b�\�rNV�֮���)2)��x?s8�_=K�ld�I{�2.{��x�U�
�bn��0���<�]l�S��`�<�m
��W��{/���܂?��K^2�7w������,�]���
2�>�!�"v��>�N_��bX����5)��_�{�?��Uj�q?6\~��zzQm�'ӡ
]��Ђ"̛	�k�����0c�pl����@A�gE���V�ǩ� _�Cf��:d�"4�[{YK�`7jP!GW�}�V����
�o����-�~m�'�$��<"@�
��S
Ȩ�K0i}tK�Y Hυ�U��(�҆��4��*���gAǎ��
+���N�
+e�İ�d����ߒ~
�J|�c�����
�o��W��ʦ�$��qjg(u]�3:�4k	��Z�
Pm���� ��
�
+��X!A�IV�ۣs��QiO�yC(��
+M�Kh}
���>;�W���u6��
���4�����
�����m��ۿ�	�c
����
h��=�8}�'/4wk��8�'e��W��
+��x�o2�Z{�3�����ǂ[�Z<��
����Q��nYgr2��ho��!}@��P��B�
����٥��fI��R7#r���b ]������c�
ɳЙ!��EW&�����ӕ��i��FV���o����n��.�aN�l�
�L��导�)���Z�u�+uUI��Kc���)��
�4O_��,4��,;�pḣ��x�i��wI�ܺ���K�K��uwxk�g�[�z�؀���������'���ǯ
z�K�ɦ�\VQ�:^���ril���}^g��{�����0Ov
�O�%C��4��_ńQ�g��N�C�Y��N�?��~���������y�|�]�s�\��NҊ�:/O;̱uH>��}����>��p��Zh?7O:Ok�v�����;�V��:j1��H�S��Ua8�oȴ����fQ���u~u�t�0���]aP�?�x�.�l3j)JS�g�F�j��٩\gYw������
,[���rW���.�4�.r����<���E��uɰKw<�ڻ��hW��m��(׌균�^n�FW�_u4N6k��u�
�jc�6��(���sfW�H�\YF\��:V^WB��`��k�%�~���
��}:8��/�a
��QTX����;̢~h���G�
���q��S�[
��	
D��^leQ��
+����LXe戦J�:�-�4
�t1��J���f�eg�I'~��Bם��xv��)b������%�ϻ\4ͻF$�	���wem���QR�dQ{�*6��倉{��p
��q��u�*F]x_l����>�g��r��	y�?Ⱥ��`>�/*b~��<����4N�<n������2�ɮ��0��Sf7��Lũ���E�
r�����7��[c��f�oyIen���~�kW?Jh&ȏs�J
^���X��<�7I�_z��~�����]7.��CUy>��
ygv]��Ow�C�u멌���3��N��mq���m�2�p��;8��Bv�U�ԆGgP�/�����l͑me�u>3��_���g����
I��#oe�
����d&�?��jTܺ�m�R��NG��(�!�0u����nn�M����ī��_O�a�
W�dk�bQ���(eyZ��{ih.zσ��U��
�6�Tv��|-M\:%؈k�Ju��Xχ�M�+4
�L��Zn�]����V��R�Q~Д��+�xI9Π�y�C�E{\vʶ��
>V:VXo
,O
O-�^��v�3�G
��4���ݤ+�L��,_Վ��T�r�V/������`=��%fӼ\�k��<fk�7���*|e��#7֜�
�߳��>L@��2��٢haoK3}ײL
+ɹ�z��AuXJ�WV������х�e��$��{m��� R[��[�ƀV���Tz�-P�Gy$?�I
:#R
�&y����8Xԇo��5)�2^�����j�z<`ہn�b��{�\e2�I�
�I�elF/�(1WN�W΢.���vjB�&__i�ry��)��㩚r?5�J�1+�rZ��9�)�y&�$�()�Dt	U+q�`17�
Ĥ
%D���	N=�(����[H��}Yu���sңд�K\6��
�"��%x�hM�Z�E���Rȓj{��U�\�ޱ�*V�i�/y��S�'C�sI�����Yp=	�SS1wilE���	���	�!�����ʠ�s7~�
�G�;���;�K]�{\f�.l�1t
d�Q���錍��d6'IO�~��v��j4lHy\^O�FWO���A�H:b2�ڑ�T�q:{��<Ob���.I$ֶ'�tQ����m|9O,��Z?r��p�N����s��Bn���X17ڇ�S�07�n�jИ�jGz��ƭ��J��Ռ�
���CQ�X�V�e����-���C�F٫���X��< ���Ţ�

�3|��
<ot��\8\my�Td�lĤ�l�6���
�3]B�P�8�:n�=�65�~�s��?��sh��m��K
���L[���=��+|{�Ҵ
Y�'�"�(���[\����a�P|~&�;%�y�s{s��q���-�Yuˊ̭l�Lר���:^��iG�i Cwj
I�� [...]
+�3w�v�ltl]YMn����}3�ކ�A��'�s���:FJ�����Qn{P��L�#g|zIz���
F,Ss�(�z���������
|�0e���P�P����xaJ�wMy�h.9+3P����{��
#��ɝ����7���N;s3�&���ܨ��3�@%��d�$>�2IJ效�4hɾ��I���J�g6:��Ul|�j�1ªM󊉚�b� .a�M��#ic��W��7���뎦KKUI�('�<!lZ;��Z�''_�dƭ3���
���26u%gc�N,�$�{&
+U�$h1���P�K�}
+�>
��5��>�`Շz���Bώ$�M���&T�J��<T���h�at���xO���Ѱ	2��8jo=Q�L�̊�c�8ms���d۝�F�(�LM
����
�R��d����e|���
+�C°����x��?h�ah��𙔒��J�G	�;���H��Coz�#�������F����C
	ky%g=I��Bâ]5�+
�QFHU�����'�Ku��9�i��^��ѩ���<r$V��
߆�#vxή�T�=Ј޼����&�o�N`I�M(�H�L6:8N;}x �Wл�ݡ��J��Pz�9
� ��y��
+�B�UɊ��'3[��C4�(���J��*;enB��97�Y}�<��`}���w!I�:�;xy������QcvCn�I��|���)
�v��������|.N-���4A�pF��6��N
ਵ8F# ǩ
��A��Z�R���j��8��2n��Y�E:�|-C�J��ߕ�4L-
d~�^�]�yƎ��	�N��ӳ;<�zOh"�^�����dS�&�`+%=2>��R�B�{R�қ%�"���$��j
+��k�¤�x'����D��kw�[���j7h�)��bI���B��d��&X��J�J:����"3�	�mް�_ыy� ���˳��� 8%�^� ��	�
 �����D� �bv�
@T�[�#
�|��tmrgO^r�@�� �u�v�
8��g
�NE���W�.��?�M����$�+(����v
+��̄� �<��w
�>��Ħ�z�€g
�4� RII�L
�w�i�
+H����l�c@�<��$� R�. �zp�$�: �ۙ�.�z�ʖPe���?�w�P��tf�z��
��Ħ�#�(-!�5 ҷ�7�V�'�dz �7 �
+ȥH�I��l��—�D$(��L����(��$h��o@�
P���J%/0����
�Ǵ
�8�5G�hfQ-+�{�(���T�<�E��,I��..�����yߗ�:���{�����I
�Fr
+g<�vwPw\4�8��Z
�������LG��6@{�aA{� �Vw�Qz� �,�����0���Q�
S�gr���{�
+aГwQ&��[��l�E��L#��Ӑ7I5����>��n
�cJ�lem&�}��?�`��L�(f�i��� ��&X> �R�
0����̔�����Ʌ/����*��5������f;��8!�HQ�e(���1��I��2\R.$�����_�k
�#�f��lZ.v����v ��ƀ+.W
����!�k�2�JpY�8=�<s��>�>�
+�@�j�ݗsO�.H�[dީv�"߯� �6�


΂��#q�����䯔�o�������qs�>���
�w
=��D�v
���`^B55B
y�>}���<n ��n� ��7FD�;p���N�Zf'��q9��<xp�Y�&{G��)�[�7Z�"��C��
>[����UOO�;��
��� i65�4
	6 
�#��,	�F�Rq5�V�I�X)��G�v����7�Z�����x^��ޝ+�V��w�&���F8�n�?�Up���<���ҭBn?�m��wQ�S
(O���ʫ�Jd(@٠��O�t���������� =&+긏�W���u���ܿu�Փ]��i��
��u�&+�7�o����ԴO^�F�tk������]
��Y��� �,y�(��� �C�����7�g
��?༫ݳ�J�FV���|��s�<+�[��<�Y�0f{�}(����m�Ob�٥��]3��Z�_׫�w�/��6Z
��k>�`|Z�0�F�T�#Pk�΃�4 �”Y7�Q������C���Վ�n���^�v�����1t9��'r`
���-�
����j�Oail���>�y�R�g�^�fX��
+��\f�v3�i����.W�M�U�=�v�Ѩ%,W�[���C���ٓ��t��w�|ԇg��׵��Cۻz��
|ˋj���0��
?�+�[�P[��Z}>��Y��'3�;]N���T���
ש�e����V��C#bރ�%#�.����R��K�{aZ�_��vօV�a��N�"��ֱQ���/4�^��lY�E��~�0ak�����Y^��z�wF�<}j�Sf\��]�,�V���T��
�t�W{؄ht�٫�	�W��+>Fm~w����yޒN�U����?hS��N���6�'��R*V{O�|���f5�~�Z�ʢ|?T|��+��X���Z԰���~��1_����Y|
�c�~oI�ʳْ�HS��t�ֺ$�U����ɪ�ӧt
��j�]��.OAeQ�T*>�l���g�
���kPa������	.�O�b�y&�XQ��T����ߞ�xuP
+&���ŷ�I�د��]��]��,�j.���ؼ<���lX��2A�Pf��[iW}�K���
�՘�;�[�/�/L.tSo�`˜��!��
����
�]:[���� �񇥷h��W:�G�=����z?���Q��#qҿ|��_=�U7�oy�ׂc�
+���P0޳�?p�u�A���{v��sv�wIv����1�r�����[Tݗ��#�U<�%��2�6��ugj�nl�8B�
k�t&i
��۪���c����8�-���m�ƾ�[�׷ª�ڝ�� E?
�n��GV��]�#���
d��2�����b�N=Sѧ�
�X
ܺ�����0OG��:�r�����T7]S&I?�xm � (��{ߑ�q����+Ya��t��S
{LP
�
{���n�g�~U�<���zC+� !\�/�z���[�p:
� ��`DJu�O%e���K7�

+~�u
�R���J�v�zۆ�ݾ�É��빅]n[s���&3c=p#pƼ���,��͖t;�toD�q���q�׵�[��N���g
Sf[X�O��bvө9����T/�s�s��E�v�j��+ay⃶���E�VL_
��[)c��d��*���ݨ]�+�I[����z�P�	d�F+-R[�6��v{V�VMG1�uU1��L1e�%�W1��Ғ�9�!Ke^l7Z�
a)y���L�ʢ�:m�\
 Ԥ�9��b�ma2�'	�J
+�u"q�8���5M�Ҋ-�QyG�m��[�����+r|8��A

ʎl-���I�~�$8N�b8�gP1

�Kc;�s16�9/z�Y�
�?5@�Y�3Ϥ��@����3�9G���΂���zW/�C�^J����kO�N�_�麐�D|���-;ձ q�H��ΐ�1�J�������޾���6�7}�u��oJϗ�F�g�x���knߨ`ܾ�ul+%��
���G�v�N>�Փ�b������
����P�C�"��I
F�U
���
�L,e��SBV8$Κ!�7��]�
+��4޵��r��K�[��*%���N�V;�LpO��곬�R\�-�L��}�#	����bGx���U�FFJ٘)+��iM�����B/9��ݤi�㈐�p�s�A���$��E(L��dQ;~���ĸu����)pbG�ٳ��F\���3�1��ma�k~C��靶�M��s����J��˒�fK�J������k���*Wp���6��]ҥ1A�Ʋ��c��0W���y<
+�Fk�o��/�Ԛ��;�‰7TĞK��e���f���t����H?�{��g�
msN��*m*m��
��fB����Ȉ�2�o�B"_4�D>�-b�^}��nd<|n.��?��5
~Q�prC��"9c.3\
y��n��,�s4��*�[2��d�boO?Γ3m��+��m^�(|%�&G�,fdrzn�dvtIz1s��`�S��ގ�ڮ�x `
g&� �e�	�3�1�3/:��*��;=}���6vX�q�T�ܒ�k���7c�y��ܖ�lT���
Sכ�E�!
[�m�2+j
[
+��
�]�Gk��	��X��$�è@���껮�=<0�5�y�#l�Z�J��d��bW
�㑞$�E�����DE�+3���NśN΢���e�*(�Ӝ�>.'���_iD'�ޞ�E�5c���֔rhL�hFbObM��kCPz�A�����A9��Y��b�x�b��K�*�B
+�
+zR�!Z��v�܃�	B�؆��އ��iC
	��T6[���@�,=S�Z)>��L�2�}�O`����o�3���1�˚vr�9�Ť��^�cٟO�`�Z`{}��*���b�b���4�6�>�ઠ�K!�i#�� �쩋踶�����
��([l�=�z.��k�2��7�5�լQ�dC�:/#�<.R�5�sg/����vG�����Er�y;bJP��g/�	V�L���0_���a�*���\�@�
 z&M��/½�ق�:�O.%�4����� �x72#�����
̌�
ȴ3��u3U3Y�a �2������ys
�}��y��

z�59+�IJ���M*��C�̭�ȵ��"z4��}m���a뾺B����l
��u�O��
+���聨$��p
�X;�x" zJ
+E�v
�����K�K��
�ln�G�kL�'�++|
����ڛ�lo7�W���a[8Pk�!	&�ķ8=�j��X��Q=���{���lg�b~���`��#����	�
+��G`�OI��2X9� V�׽�
�\�
0�:��H	�9g�>���s�Vk�Jsh���z�7۞�w���ѯ4�[Ͷ
��a�-���|y-P5s]"������h�\m�s� �����؛�9����K0l �f	W�3
p��\ {
��;9�M���ބ�i%�/)���3��}c_-�yd���T.��|1���Y�bR�ڠ�^�q��B��a�^�������>���
��� �(�	���@;Ae�3� �*L~�u��D� |�� �Rɛ����
�E�����3��[�q�:�$+%�u��T6\��?�|�<bҳ}@�Pf?
qM�������
��B�c@�j �s
�
���&h�<K��^�h�Qzg� ���� �>���Qle ��}C����(G�7u����L Ӱ�Hr
�q�E.�\��Y;�3���᳕�OJ�/�; A�Hj2�,�
 �%	�ˍ��KP�'��9N�� @N:* ;�
+ +���
�ei��dۥo������-���v���Ǖ %��
�w�)��jީ������r�
+��!��� �F�[{p��:�?z�
1 u�2	��
X'Ay��5Ա�jI�	.M��t�jU(@��>������a^��ϔ�����4c�‡>��Ϥ�Ĕ�
F��
��7������r7�jW% uk��ff�op ��
6��0�] �_l&؎��7	z1`�
+�IoP7.`�J0h��O~�	*zE
�q�.H���'Aԙg�(R�J�ܶBc�Ò�����.�J�V�n�?zr$���oG�_��,&� �m��94�q�p8��b�} ��A �cz
+�%������6
�
ҳ��3�>hڤ�d_#��X�4l����韢���)�_V�_�G,���?ܯ~���[��]���sm.� � �-�>o���~��� Y����kW��Y�x~�~�CXddaڎёT�����)�}�?=�.�-�[�W@�k���#
�ܯl����m�;?M�(�zYHՕ�Z�
+�����JN7mJ@��*w�%�
 ��*�>�
�Ʊ<�*
2�(�d@`��?u}�η��:����E8|������?�ۿ�W�%ePM�J	�C�����2Z@iՒ����%K]���h�\��9��X��(!�H/�McU�z��'�G��&H���G;��������n?���Ȅr����J��mϋ��m���S������Sh��
+h3Z�m�G	}�g����=$��m�l�[r�֮�3��A�Z<˜n�R�8 S�CzO��X�Zٮ�Qu�sj��1�m��y��R�Ro�e��b 2�|���9ܕ�3lh�!9��i���I��
+�c�:~�~��x��
�Y�ק)��G���oh�Y
u��iY�����|t<m�Z�ؔ_'�j�
d1�9t��
�,{?Pa�5e����(Wa_�T�:�#s\���(*��#�8/�˼6��~�=�}x���<�@v�������[\��f7��S�8'_
�;��{����xZkɝÍu6\�\H��4 ac�ˬ{�:9��}%
go1�ަ���~��za�L�
9��"k>��‚:k?�w�M�mW������iF�K��>�N�kw�
�h}�mV�N���F�V5�U^7w�����i���r�[1܇{7��H�T�X�����]rf��]��Z�
+VhI'���`���͆��q��ǿ���a�E�U5̓��G��"�
+��r ��Ү�
�XW�#$8?�@_��w�T�6ox۵:�}��C{ٗqk�y�T��y=�6u�Y��Ʃ¹�B�8�9��W���L��l��tV��᠗v�����$����zxA]�
+��+Ŗ�5
���/t��܏g���$ga~
䄼�>�<|�f��A�	�F�S��߇��1��������efתdžY
���.�
���>I�^�8��Nt��I�c��� �$��D.,!L��(!�
d��%�����f�U����c'S���g�խgHڕу�ʸ|t��V���!����݁_��������咾����˦�ö���(�s�Ϗ
+
y\U>��	j'P��@'�]��e*����s���ɭ;��+�j��&}(��#<u���I�4'�����5�}D���޺خ"36|�6l���>�Qm��"����ؙ�R򷼤(F�2QWp�=�q�˧[iVNk��%p��-��?�M���˰�

+���Ǟ��FwǸ
OmW��V�����Hg
�fcs�`&�xc=�m#H�*
�S}nn�n�T�J�6�w��዆qӧ_�o�
��캶�\��L�c�n��:���q��.�¬�� �PO�
�D%A�2�R��g�{��X��`^����Zz%�����j����9/R�U������Q5ֳ���VU���\�ֳ��m�|��t���ܝ��B���{��h�/9Wp�E�f�2�Q�a������U�
α^q�o] �d�����Z=��ٲ-���򋶪Q5W�m�y�[������˃ڣ';�8�ޗ�A��/�5,N��+�C�%�#f'��,�19�$
���n��#3�sO�Xw��'g%
fpLכ&_�g�����&��m��n1��y��x�=h�<�:��.%��+�����$�V�İ;pD�\{"�|���Hj
~�<(�p��3��A�Y2��,E%+v~�,C:	:�95��Wn�!�kJ�QJ�pZ�D�?���ʑ�4 9��me�o�	
l%���$��b��gh����]X
���;%X�@�ד!���ȳ���v
6�U|7�j�f�[x����N���&F1ѩi3�Y�3Q�����	�i� �Lu�u��If��o���h��r*�ORf�މ���V�
+ed)x���)�������l0�r{dx�*�Y�	�͝=�ɢ�
+�u����i#C���O����&ݳÐ� Q�IHPìj&�V)�Y]PΫAPN�$k�<�5����m;��h;�EU�hm_���)]��� U:��������������IrvvɏW&<�A��]�
�J������58����}j9謒�6p�	un'�3e5s��ŏ�续e�b�1�Q�NJ��m�=����R�R��I����U�ևz7)�<e��6՚�O��Uá��d���l'�$�I`$Y�e;�t�_�϶%8���L~��T�
d�U��Z.8�L2��"�U�N�$�xn��cr�4bE�iƊ��w�9�+�Ջ>��uT�C����H���숀S��&A��{��
�m��u�X6P����#��mXǙ�R™Li�'V'O���Ѓ\������˱"/�'*�5��G�Cc�T�>�&8�����c2������Uz�F���F�N���M0);�Xfq.��5���I�'�X›
1�6�}���ƺ7p�]
�I���d [...]
+��E�gQ"�B}��u�2�,�3<)�vȿ
��QKl���Xf.��3{@�3���b�+��׾��VN@�	ݍ<ở"�t����r�6�
^����ݐ/�V�ң���$���"�~�}K�"�!.���X��t������^��N!{�$$,�|��
+x�y�C׺���M�7��ַQ�Eh!
�"��}ECx!��9	�l�ƶPٳ�|U,�4wg���4 at K���Д
��{t��O6ʱ�-
�b�-Bg��
I�،������y�;�GM!aQ��Ho:TH�R����%⓮/aS㠠��AC
��@���"�`�Ft���Զ�X�d�5�
+P�L t��A1� ]M(�
@�V
�v�P�T�� �)Ukf�F)U�esAj}OԒ;2��/���ώw#���N{���h[!�Ř�O\\Ʀ���eW����	����X�� 
WP{��2w(S
��X�QX�:Xul,�B9�	�S� �Uu�ŋ��H�J��b��3���tT�_�R�w�7
4o��
���c��71Z�g8�e��A�
E�h1��"��ր�X�n� �E�m�s��k�9��!���@l��@1B{9O��
�Сs�"
+�`�f�6�L��:�X���A:��
����q��.��Ͳ�=��/�h�4�(B�lbݷ
|'
5�/�X����&_6�2
q,��g�
j�a� E�l�G��	n|���
�
�?g��;�,��y���̓x��.��f%슩��+��+�ځ�ݚ�
�I��
++�%��r{�DKTՈ�P
2g�oܠ�N�5���
 �����L��ġ�J��VzP� r�% ��
�U�z��� �э�X
�x���NX2����>��4��{ْKd�$:��pw�|q9G
Ǝ���:����Qi, ����%���+d�'
�L
(v�3�d�e1d����6�$� ^�2 �O��
�<	����{g��}��;4�>�ؽt�ёq�D��ݎ`:�5��V����m��s!Tށ4C7y	��f
�v�8�����n���I*�KBa�P�a�*_� sL@��@�
P���1��X� rY��l��
��Ò�x�{�����M��څ��/Ƿ���=��-��ܷk
���b*�ȓ;A��P5���<tL���X��(�&A�s,�(�j�h�?�r�@�Zr�l� ��� �K�@4
Ea]�3
����,^�_�c�����/���{�C��M__�:ß)E�_�ަ�T��p|B����N*��i�'o [...]
���x��t��Rd�
O�'Z���w��*���f�y��2��������]
ĝ���Wn>���(�sD�{��k��s
+��
b~`f�会� 7�n�M

+?��>�9qu�K��Ho?9�	���O~����ث�X�O���~��u	$+�е-o@��� y�� �9��c}�
,
�l�pE��I,ʄ�����Jm�j쉹yH
KR���x�sZ��~7���'+�}[�a��?�����a��ۼ
_���Q��a�+�L���� �޷A��J �-H�8H3���nu���1Q<�
�l���H�Y��G\l�0b�z�o��:�w��7û{�ۼ�4���
ᄇo��k����m�N+%�{�a�� ��b停�@��gA��g@��/@�K�bȆ�ҝ#|�!���_���s��ޮ� �M�y�ǐ!t��R��G�ퟚ&�_����
�~�.G=P�`Ċ���x��>�9�

+~Jǿ��L�`���5��N����}���~o[�\W�:q���%)r'�J�<U�����z�^sӨ�:i>:��|�[��`�Ĵ���&��O��E�<ǵ����ĵG���&��0�	�6Μ�0�{�n��j��zW�~:�����vBO�Sv?�ư~u�ejƚ	vpt��F�j�ۥH�'OKX��S�\�ޓ��#$��W��YӨO��!j�����d�i�!

+Z���T��tU�̰3|�֔>i��Q�|}`Җ�פ�u���|ۡ�3
*���7�W2 ,�ښ����
3�����esJ�j�yhu
1v
�Jj7ժW]Ti6sj��~[o+}�u�Uo��c��Zڎ�{)���iz|���J�Jy��>
�6�!�1gvv�,'7�
�,��K�2���$���7���w5�i���"3��nl*Ǽ�]J��'� ���B\<0�� f�^)FːԸ�49��v9d��%_���F�	���>0f5)XL��\�'��qt���(DC�>�
HR��!�n���Ft�����}������7��j|ۡ�Ɖ���&}�g�[�](�����v��x�>�Fጎ2����
�sb��~�]��دr_�P��k���A��!��ԅ���S����ӥ����J{T���KK���o
��؟
�=<HF���0��C�ա�y��3��1�.e&C9�=dy�{������P�۹���=���V�"�I9A��A%|���kf#�ZCl��QP��@[ [...]
+��1R��
+�B����$���}���3�/�
r^d����3=(�*�7c�)H���t�V��Ki%�O��cy�tB����Y:�'	(�X1�
+�Ʌ�m�T��r5��V�5�9�
��u�+'i5�8��Ym:�gk��y]�Ɍ���L��)�f��d��{+Ӭ�U(�Oۻۡ�f6
�}`5���wj݋ۇ{*L��M�<?/��Y���v�S���W'�q͕� J9������kT�u��3�0Jg��i>��f5�(�v�S~�>�4�̋)��T�qڥ�h$W�k69걃�_����K���0�Z^��cUl��G�0�hy�uA�M>��Tl
��୲�S�g�#je�٣z���<�H�Eڑ�5��.�)��i�Q��<��H�k�W*
+hre�TrԲ��8��'�
�%&�B?��N��a}��S�x��3
Ϧ�J�|*»X�|.�b�K����a�<���M�V[�1UJ�ǯ�d���n��L�3Y���I
��\W[Zr����Q�֓q�6���v�s�nq�H���?,[��t8�ij1�;om$&N�T���Ҵ*��X}ZQ�.Fn�q{ݢ����jZ���
Ռ}���΀6���QN�w��'W��)�r�Mj��ɱkY	֬h��-����u�.\(���.���Dy�B�M�p6�h�G+S{M���C�q�^��
' �v��\�|`��]kTsP
AYk��I�9b�3ˤ����<�҉��Ш��
+H�Ƨ
����{6"�4��W��}�$�b]��f�Y�ȫ"}�)�`�m��$r4�2rT�RP��Y�q��1�j�3.�ކB9�H�3���^IX��B,rH
�쌈
�-��u_
|���8_NpiB��e�U��NJ
"Dr��p}W���Mj��2�
��}�]��l�B��Ŧ�H
穖�C�
+C�"9�y٭82I<W�F,��E
��J{��}|�3#��
K�cuX����G�3�]���0,�!
+P�1��p
�����t�+p
K�;f�m�4h���ā�]3V
����f�hD�8��zp�[�X�dE�X��
1X�9�n�8|��x(#;����O��ۧ3�}��6q,m��=��>*$H��gk^�"P.yD�;D�e
���?��4_��9���gl3N
�M"�Y�c�[ݤU~?�6�
�jg��ŝ	�d��"�^���f�dq�N��`�#�`
���Bm��;K(�#*4J�GD�:�,"��RJ/���\�"�x	"�"��څr�a���@���KP�G{f�B�d��:.��9� I=jزL�^I ]�
8S&�
AB�	����+�	�~
zZ�
*
P
��<��뵠C���ln�R��G�E
�T�i�rpvc�
4��
�
+��!�b �K Y�-�v9�)rƓ̾�� Mu�c�L�b~�w������'S8�ĐT|�î���F��d��g0n��� ������G�(D�{0�T��^���Y���
 v9���(�T�P�t>�D
��� �Cz��>R�Mo��o�lc�	R��pLd��*Vڍ���M98#��W��m���9�����|m�a�����T2�(��.7.R�
0�� ���
��� ((,��G(�@�Q
ʣ
+�7h<=�r
 ��Y��}�
�� 9�
���"�WR*�.LONr�!�ݖ�V�۟�7��d�w�	�pw��-�pxR���<��� �"�
�E �`Z�9��v"� ��:-�P�k(�3@�l������CYŸ��R
��8pYG��+'���s�`�������5$���%]K��(�9�����2IY1��ͷS|B*,6�7!�6A
��)�Q6�7��Va(�} 
O͠�
(S`��`����^~���5 ��𡟜� �v�҅
+�"/��
���-�W�
�d���I�����rs���FΦ
y���ybԢBW~5Ŧ”ŲC�C
N��<���,��
�R22M`�2n�9�m�e� �&v��l: �W�����
x!�f4���;�ƭJ^�ap���x8����/Ʒv[,�M��P
�d���p��0JŽ_IJ˕���A���@����$�G�*�i�x��\H� n���Qܐ�P� �f��bn�=(�p���B ��-�w]
�����,�j�=����w����]ۭWQtX����� �kF
�d��b�jl���9b�D�sMBuD5��;�q� �L��H��_j�gw*@i�P�ԗ��l
�Рx���
���hV��(&l@$aS�����;��{��߄_t?���-��rn�@
1
�
݃߂����#觃;�y�ةk@��# �	�����%��Z�� �
�$�� �{��� ��\@�Hd;y��N�Y-�ca�������T8�}~���� [...]
+�<D�x�14����~��
������,��'��O~�-��E����}
��p
�o��g���V�V�H��
H��
$��(Hִ
+H�y$#�Hlm$f�HpY)Q(�������ud!�qj}��)��O�⎾��?Z8|R|3oߦ����
�wӄo�-���m=d*�ȐL	�_��W3
���зL�4H'�H�y�^
f(Z��w0�h�u
�_��H�]-��n�������۵}����h���[�m7_��~�m��e�f��'�Gҟ�!�
��-&:�	pry�9�� Y�TA�[��T���́�53
�T�!$�i�ϼ}�o��j��2�o��
o�o�F	a���B[Y/�
۰�AX?ST�(a{8���#(N

s�
+(\�SPp�+P覐��5m��ܖ\�/�
+Glމ��[�r�S���79|O�	�'@�d,QM�Ze!ۙ4�y����J%!�q�d�^TW�ūޑ��&������t:y8��
r�t�����M�
���gT|�`�i��q����w	i���T
@��$���<a��J�"�M����z^�8��SRi1�j�*�/녹{m[�Kn_-��ߡ�)�z\�z��X5�ֵk�_����8�O�7Q��¿�ۯ���wq��Q���.n�"j��
m?��{�������G��D�{��B���7�""��!z�Z��Mw�P�DH���DQ�성�b��j���"}`�)F��ӫb��������[.��ܪ?
+��ɔ��6M�k����`�
�bv�O����Zu�^6�
h"яm�Ơ�-��yn6�ze*Z��ȍd�=c��4�

Y� ,"*��
<��X�)j)�̮�c�e��S�����&�fe�nM2�cd0~�\�^^YT`�f��
�ut^9n����c �{��Cijώb�ߜ���
����T�w��p�,�ޣ:�n��u��?t�c�m�S�ϟ�r��}`(�
��~R[�L2 {W$AuRF%
+g�

�M3^�d��@ű�޾�S�'��PVG�v:�E΢�{>X�c��d]
Y���26
.�ϵ~-
��9��{
�*}Wk�1i�9��^�/g��B�3��Oi����4�
�\��:���$E8���_�a�"�VY-��k<R�vMW��$�
h�(����5o�o��5�V�i�;xH3W^�3�y��,SIDZ����x���e��;�����(#
���"<���]�]���-��;�0�Q
h�i<
f)<�&r��G0�KkOl�+|��/�
��ڧ)|��E��
�;��dT�a2����HrI9��\����]0�xӭ�C��!_�
xxH�a��i�Yܷ�~�B7��v�.n�C/���CB
/5����2	�O�5��y�t�G���
+�U��R�

���-��'"Acqp��U�.X�x�
V�⻈�-��q��?@{z�W

���%��9Ud��^�
1w
�_u��0�,�
�sc�� .
x��
�y���Q��㯎"<��&��:�������������(��q��
�'<��q�;�k~~k�7N� g�mۧL�Q�rt�g��Ip=Ѡqm�GH-���z�TZͮ��_#ط�?�
���O�?b~`?
�#���߁	��{��}�}�����w��7'�����	7�_��7'�We�;0?�ߜ��ڗ_O��ߛ�7����
������~s���}��'���M��a~o�.��)��oN���˯���ґ�?b�+��M�g�:Z��D�Hk�x�"����fbZ_17��ٛ�a��a�A+,�'�iBc��
��@�Rn�����eA�<N��
Ҋ�]��o���8���������^�A�T�F�m���g��1>
T�e{謘�P9X�8	?~�lM^j
Ľ9
�~�Z�5�K�CP������6g����~�X^�0�3
?�
+�1����3`&Yy�T�v �m��
��;��7�.h��Ǭ\��5�K&&%�\[眠�Z��J�i�́��d*
+�
��ؐq�
���t�u��Ih�\�|`߾o�u��������ZԷ�u�-���p%��::UY�ȓ|�^�#����6�@=1���Z<�{��ϴ}��m�$�Q��������-�v�Mmvut\�t�Uw�W¿��� 7q��^Y��50{
��vD4��}���~��E_��Og9��
������^�����ǮW�V%��Z�\q�y��H�y����\Z�ս�lӓ���c&��0/J��<������Il#,�����/�����0���o�-z"
k�r��zO;�l?���raz�z3bR���j>��u�>�Fw���Hc#��a�o�}w��D����˂�
��U6��e���N�ը9���^�9�2p��Y�
c�5|}�!/�
+�f���wl'ق�{)��Qg�'܂ŝ���&�w�h�=��
q]��Ar�]Nز=��q�یٷK�����v�n��_
+�JUj�e�\�D�)��ֶ6ϴ��4�"t.�/�_-�:�NJ�A�wW�l,�m˲m[đb�
����nuP���<���pɕ�!�\j/�g$͘rjS��Xyb)����'Y����j\Kϗ����?$̲����w\g�Mw

ޑE���)��A6[ݕ��dL��
�)��8ᜒYy{�&��������`�it9��F*c���e$
+AB�(��l9�J�
\�V;��N��
+E��Iצӄ3��Ln��Gqq�
�Iu��Z<Y�`�$T�s�ϧ�X�q�b'M+���R������2Z�<1�?���؆�c_�DN�X��r<�O�N�3��z�w�����p�
�'�u�n���W�Q"��)�E�"��H\TI1q��XB|����&&s����@�Q_�h��tR�F����q?(p_�i�\�N�V,xFzQ��/�k�7�d����W�w[c,ķ'ez
0
+wi�$�V��l��
�p�ڼ�2�”i���rS�u�v�
8
��+{
$S��
+�S�~�d\�J:��>;*I�l]��l��|�i*Wәg/&�؝
��NFO
\

+���r�{��h
�E>��[�
�
�;0?�����}�O�߁	��?
�
�p��{������������}�Չc­��Ŀ1�,��&�G���񄣾ߛ���/�%�o��Z��x����M�������͉����������Y�CL���}c�ߘ�+���	z����lx9�A�}�ߠ�N_2�;������
+G�PTp�����-����%�٣�x�'��x>m}��Ž��0�M���7���7�
�W�����C�eK��ߝ��F>�[ˉTz���mgC�}�; l�
+\™���٩�p`�e�i��H`v㓻�HGoF�����
�=�mȗ��J�L8Ϸ|`߾��|bV��&��y�B�M�AL��� (}r�d�#
�����i���i
�٧��_^z����Dk �p�`��"%/<�W>�_�?�iJ7�U���f���&�� ����������1�(
+��MM#z���#X�M��z�r��`UfBʵ���k�78�����}�����<�
�eLr42��	�&N���X6���[K��2>G����i{#ކ��nJ��Dd]xPR3�o��e�?�N}C�?��+��
1�%L|��nb�'8Rz�Ij�p�����]�zB�a�	���4"�lvz��o<Ĺ

��Q���|��k�a���v!�^
��Z�ƽC����"L��x�_�b�W�2{�&�3i���
̮��S�'�~�r}8��s�?	��v����k�қ�F~��í����A��f[�1�ЧCМ5/�u�V#�
5�c��B%��<��[�U֟�Ij)�������tOu����K�C�C=9�L���^�<����Qv1�	�y/B�W�h�vC�+�v(�Z@=9 �/���d7�ηwb���M����g��N����c�{�)�r�W���}�jt�C�	A�W�%�����s�Տ6r�����|N_��a~U�	� G��Ft;��0����	��p [...]
G{�vf�$?�m� o�Qy��QnT�	�
a��s�)��)���٦�rY7�NB�V���4b��x������yy��u*B.R�z��%����ڈ���MI�-g��x�_��Fj
�B�R1�߬Ms��w
�BU��]�������|`Y��
��y����j�-�W)m�\O"肭Km,��1�pO;�W'U��������C�<��
:B��0�dKѦ�^M��@#��Ƀ��l�� ��_S�4���V�clE���
��]�Sm��ت(�r*���Xe!z
�FD��' Fz�)3�\mʬ�$$��섉X�?
+�ؿ���l�6�ܚ�E�����Ȉ���kws��
+�3�[
Օ �. +�SM�~�J��gT�� �����5�U�Dh5^�I�8�F���}����s�	������46��D���z^	�A_}V�-`ٟ.cx�>]�����&rj$�ʨ,�e4�i5~:�����jeS�WdW�ZxR

hg���cp�ddtuoK�V��:��&.��%����%e�m=$NT
��ǎ���Ma��nR��S�ԏ���������,��!�d
n�#G�
o����ֲDQjD
�rE���ca=�JºI�$�gӬ
��5Y�?$��1y�,N�����'�Ya:�(ǘ'��%����
+�I������Y��̉�����h˝��!2.?Rjg���1Wlg�l�z
OtQM���hv�1cu�c�Ef�
��3�y�?���O�;K*�<
qj�,2�f���䪕�
I喓�5
L�d�
{�*>ZuG�QLȦ���
�.3�Ev����H���"���~�|`�� �X�A*�>�_
ܔ��
��.�����f��#l5���y!�_
��>ۏ�������^���2f�����XGӺ�'���|���c�u�?#�O�~&���,�w`�9�ς~W�~�;0a�o�ߘa�k�+b�&�p��{���/<�`�o�ߘa�k�.��)�0��7���/��
+
+��;OAJ�
>��"r��E".C��>�,�Ҝ�8���wʛ���\�d����j��
!.���G�ueO&��^L��>
2[|�������!A_�A��B�E
�S����d�(�_1��ә��oI�
'�5տX�8:Y�,z2���h��d�L�bt���=0@���7u�6��I>��,�_�&�g~��_ at +'��Ws閸8����ŵ�����W�a����-�h�1�T�K�2;
���H�N� f*1����}`4�h�A���#�yqN^>}�z�q����n��}�$Hp5��~5(�{ՇZ�m�FT��>fy�qV�N�����Y�����������5-�T;_0M
b�����k
ϗV��0���n,H�nD��]%[wm[K�����g�!w�D�$W���������`�A����Aw A��D �����]aާ]�ŵ��е}��m�%裍�Զ�!�R�>;���T��OR�Z�F
��Bx
��A
�S
nw~��g�ȀeO��;c��]�������m�X�X��
h;y�j��J��u/���.�z�&:��Q�`������U����'h��x��
� ���x�N��{��b�ٵ��5y����xY!�tiZ�UL��+D���8�%��{g��)�8?B��_��㸨�nes�T�a<�'��gtT�دt
��́4{�2aл9��~�]�m��f�@���/vT �t��D�Յ_g����#ח�/��z��[���4�4�����7_��y�lA�n�
���:N�v(����Yɷ�bwz8�����o0��'2���_������o�����ϧ۷�jA�Դ�
7&W�����k|�_;}���QO�
�,f�Kݗ
�8JX��
+tk����j���)G��y�����,�AY��^���gf�Sj��"�r!�EN]�5���~q�;ԗ����]o),k��P��z�����c�l|
g��Y��3r�.-�.�9<�֭�� �t�Z0�}�;�s8K���S3��O;��=^����ժ���݈�r��7�huB�[
f�D�Ϝ�:�-�]B���ߋV}|/��#D~6n�Y��,w_Y����-fg�E�嵾���6%����-��q�7���B,�=X����	U��y^:c��g�7*�>
)�����k�JUX����c��܂
M�ʒ�#
m�5jޯ�����}�{�*��xf��C't��G�–:�4Q�����4���?~P.����}}s�bF�6��ӫ�V�pL:�ٰb����Ӳl�R
��Fy
�NF�Ņ؏6�
P���rfܹ�W�8��E
kƌ�E�aw�G�}��U{�%}$�X��^/�=���ld疰J`��fI�R7fV�o��
��lZ�R�-�:���"�l������_
�U�)a�P~R
�<c�u�iF���]��S�UG�>��W@�W�I��Q����{��b�-*u�5��,+�hklJ
��+����N��K]F���}�U�&?y�R��V_,�f�b�#����$;��W�

�t�Z�Ve
�Jc�$d�r�jg�n|��'�����Q�6�]JU��\U�.�����Z�Bh5� ޜNjl�m5B��Wގ��Z���6��V{3烃�"������2������>���dyv+�xvbL���Yt)O�vF�$
�[� �+/�&hN���4����L��.	�gd5*t�����{WR���b��Ѳ7�+���۲�q�N��>�F�}�����*�FƯ3mtZc�Y�>�>
ux��7F�<�

6�ƈf���_��n��/
�C���_��f�ܜ����|B�'�������D�ͥ�L������3
]���
�Y|0UP�>�Ⱦ؟S��E{�%�zJq@�J�n���*	(����/
�#�l�����.�)
A��Qͱ-Il3}?�F[{�
3�}ޗ�ᢧvb��Q����<vB���U����\���b���d<uk-vpd;�O(���H��v�Pև y%�A��^�s�u)���L�����&˓�
�������\���<�

���R���ws��U4��g��ޮt��]I�'+X����
���7��������@���i��?���~&���,�w`~`�9��1�?��7'������Ƅ[���c�9��M��g���	��{�e_ ck�j�����Y��v6���
A�w:"�n����ţ{r�M�����~P
+$
5wve�[�
+8X��x�t~w������L�mݍn�r�A����z�"$�d�s���y��
+�0^j��\>�|���ya�
e�8��?��K�x���2��ު/vG+��NV$2�MK�?
Ⓘ���������z�؅��A��!��
Aa<+ A+*�N!��^����k{u�v�lk��h��Q��c?X���`�9�d����l1�� ����ޝN*+p�H8
����`Di�
A���d_���d�]W�x��Fuy
�e��܂��)_��]��g�
���E���/N&f�φ������/m�^�*��a�f����A���a��^`<s	O;�]�xB�#�dU�K�Oj����g���������j6�gө����f'�Wj]
ҫ:-a�}��Y�)��Y��|`��
+2�0��#�g�.��ύ�첋��e���gz9��4�|F[���eUϾ��W?^�'Sz��/ś>�U#*W�ﳜ_=�w����A���0��]��7���:�H�����_�b.��a�-�
+}��je�w�s��
���3��i�%[:��{�|���l7R�h������P���z⍹��D�3�B3Tr��c����*�����>�m�]^!�[��K�SK�
:�[D~tJ7��hߕ���&��8�����.A�0��0����C;Tt�j�{�:�t�ٵ�I}܈ �4�wǃ^B�*5�/v�A𪣵�;7?(����9H�a����WP�Y$�v���(�s�f�v���	��pcp�>��.�*"�C�%Y�G���	}�<�Uˏ
+��[>�o߿W��z�4Q��y�?7�N/#��q-Lp7,b5�pt�T��Hh�FM*Z �ĩ��9
���G�?KW�y����g�4����d�Z~�|`Y�gP>W�7��w�I�1��;T�8W���\�I'�V���Gڡ��}(j;K�m~��A�V�U4tB������s��t|��	y�yB�t^���|9�,4��u,��ޡVd��E2��w;F$x?,�~}&OgW�A�[���/N���
V&
{�5���9��2��&�_��|��oz.����}l^@/�x��H�X��'�a[��֤
��o�g���TǕ��#���
>�m�We�O�:oL���NT�p�����?I�~��A�z� ���e�2?�.�c[��2v%
plq�:�=���Mo�O��Y˜�[�h�AF*ץH�36�,N�<�]JIrXח�*�!�4�ў͙��nP �l�	 1�E�9h���*���m�vkgwe<W7|r�OV+G=�&ۙ�O�G�E/�:B���ϧ��bT	��Wn,1
K�GK
�=���|`���$H�:M�5��CP}0���y_|��b�W�+�e=u�,3ʼn/M
�1&u2�\XM�O�ϟ��_��@Ё�3��X
;ɮ4Ƶ����K�����G���
Ǡ��a
��֜��o
����
���즯G��[�jkx�O��EU��hwO������
�,�

EZ���
c�0P�6�(݋�غ���ri�4�=y��
:<_�/��<#��l�]���K]"zu�]�d�P
�n֦m
��Qo�1hd��;���
+��?��&��¢�s��nՄL\�B��J
܆5x%ƳZ�����>&.�nS��6�עKL]«��9��
���gѥv�q�K�|�&!pc��Q����<��]\q
փk8Dʩ���lK��Q����4�����@������䈝y�x�V�I�0
N�m4d,�6dZ��p<�!�X��cbs��lڜt�"�V1l�!Α���n��4jl���Jg�5����l�X�'�JL��R��W�ĸ�j���YK�bB!3d� =L�/���������Ӆ������[����*�>���Sj�� ]��r�Ng�"�����e��<^nZ�ѦO��\>x�������/<���Ͳ޳W^��x��1���.���1�E��
���er��W~wV2q#��
yU�y��Y{���%�����t8�Z��ҵ�^u[2�
��t��y��1m�vUq�&ϝmk)v�a�|lѻ©E�
�&C��]�9>E�?(^�n̄S�+=�9�+��~�>��Wr���Pf�1�{����|�
ۃ
5i����e4��M��
i��c4���U?��N]
+n]
��B����Nv����� 9�:Pn�L,AB�Jw������۝�Zc�h<�m�w�KŞ+��<�nf����Hu;��f�s�8��q��sy)PV�ޑ���#��?mッ*�-j_��fŜs�(( "ArC������{���3��������o>�*�j0(��̦���<p鉽ǯ�O�x����@�
��E�gH�C�(��g���ߚp�����ߚ���w�_"����5�u������@���Q�
*�� E�G�ݨ�93�(Ah��:k�v��IBM_���1����tC[��-�g<n}v��
�3	嶲}\
��K^
�_@�
�'���

jzI86��{����b���lc�k��Zu�3T���j#�{
+�
;J�����
?�#w�+��pJ/�<�^t�r��4�
�s���o|!�� ���d�
+@�.lx��>���#��/P����k���p�=iU�U:]
��2�w�ٕ#��syn�N�Y�����ˆ�޻;�Q����9?E\;��>@�
�v2�`D_��#*�Ƕ�կ�X4�x�?5����}�]\�����gH9�=t/}��I ��i�i}���8
��4<�+�+�ߺ�����;�[��l��
	֥}�~0Ptu�m5�mq��$5���
+�uC��\q
ܻ��^�+��͓F�k(%"�yNk��i�A|��.6_+�Ɵ�B�r��I�.�f��#����z�C�s����F#j�Q��IUm�+~\�|���1��y�л
θ'�D:.�V��\9:Og����&C��
οόc�m]	_��:�e�X4��.��s�#
����\iD�=�~\�x{ ���#��z9��+����o��Ӹ���
�5����y�
R3���y��l��_�����hƳ?��{>?I��z��^jD�g�?��D�'?k�S���ߪ�'�a\�l�5��H�	���������>ơo�+V��_ g�s�/���)@ot
O�E�~
O��������ϹFp�^
�9Y�&W~.*��.��u{
g�i��6R��r�)T
�3�̾%MgLj�2�%~�u�#�[�Q)*�.�X>�fe��WӋ��Ls�o(�,^��iBQ����E���b���)��K�W�����a��{�x*�_sQ�+�ɯ��j�/��?4	�'0��\�	^�[��$��/D_{E(:y�j���J�
���2n��B5�-�:�� ���e?���s�~����y�w��rU�7JA�;|!���o@��Tl��0�]�y
r�[�n�~�����ǚ+!�V�N��}�vd!=��b=wV=*��X�@��0��ұ�`r�F�6�L@�'C���•���J����
k��i�o����>������/���3�����o�ImW$[~}��$oМX�f~?��bM��k�1)�z��C��*�Z���$Eߤ_4��x8�y{�x�r0��A�;Ʉs,�E#�^�+�]o4���Uv]�/�Z.��6!�:����gT
�R���~U�C�����'X�`�\	6����8;�����i,��'�'Vd
�����[���=/kh����Wg����"Mr�h�f�	}|^�}�c�i��[��K\j)��+-`o���q������/������:�a
Ƴq�|����C�y��dj�
�l��6���1��#2I��
?m�|�
�����lf#*q���t~��q�Ƴ>��PB�Rݛ���i8��F/��뀎M(:�`_-&���<��������3a�E���?n�
M��tzu�ۛ���z��Kmo̗��z��RK|pb��%�;9��v�8�2���2����3���(t�@ѕE��@��jt�NtI/oA���\��
�E��
�ra�q�s^�tL
�ь�Lۧ�{�%ql���UYN��~7{�����;nW��߮گ��&��Au����O6�/z���1�L]?��X|�1��鰘
��<�wk�UZٛ)W����o���v�Ƈ��H�;��R�̋�o5�=n
I�B�7�PPT3�詘Uz��S�
i#����.�(mf
��N�U��0^ߒ6�:�0L�A�ߊ.��u��-�x�˸ʲ�{�d�h��9&Q[���ەp=� ��������9��_�<;Vr༇���; �m/����%��`�-.5�m�cڹ�M�u��i�%o�[�4�3��*�ZN��S���e1��^Q�븟�e�E
���b���d��̩Y�*�׊��5��$t��
��ڤ�XV��i? x�;���g�]��1���n4&[���lח�d[����NSf�ʐ��	�^~�
�s�p�+p<�)}�Z����� YĦt���ς:7�Kk����>t��
+�]er�B[�o˹ya��ŵwL��u�)�•RY�L���Ow��k�.?�/�O��S|!��c�


h��@벂�y�\�gY�t(�N�� �cy�>�J���q�����Ϊc�Β{��Ża���.�ͧ�9
'�ӟ�s��{`�hW�,�>�+QI�:��$����;/	�+�x2��S/B��bj��ړ���|P����_u~�HW��|>J�3�
�Y��.ScyV��3�N��\�`�P��D�
{��=&Ų;�����B�r��c��.O
�-
�]��GiNu"s�$v�Үm�6[�3[\��|��6�U�������&��A��	C��i��8�0bk+n��'�𱙈C.Փ�=��
@�}�%|!���
+���ta��Nw�ܜ��:.�MH�>��K�.2j�4�q�:��������C��r
}f6���`�Z�I{��_�=�
��9՟�ᾏ�&Ǟڜ�~
����A�G8PYn�������G(WS_�-uFPϞ�F�}Aa�X{p�����N^54+���^�*u-���-��fl��J�jU�x�?���_���z(~}ˌc?������������ qF�?������@�
�_n�����x����mxP!�����\,�L at Q~Eu�ڍ�-�P��G���ڙ)�<�y~�jv;gihO�U�ޘ*�
@�Y>�Lيχ��/�o�P��G���<�o��u��'�_·(�D��Bn���,A���d��T(ɊWͤ_���c^8
��|M�P�m�^
Qr��z�T�oG��(��p:o�J�ݔ��x at C;6
FRb��q��?�
+T�qT�\,��@Ѹ�ρ�`�r2��wɫv3K�g�F�F
��OEժ霣zq<�͙��,�
-�&
[i|ή|�
��"�h����]J�
�8��/T�e�[��i#Z�Ģ.����O�\���Y��^�4e5|�T�j9g�TUw��s��Rw�&o���#8���x2[�C�y0���=BC?�W<h��i�t�_B,
+��,�x�kρހ�dK
�9�A�νc
i��B��g4|]����<p��9�-a/GK�\��IO<���c���v�``�a��A��#���;
+*��]T�Ţ��w���Xt�ݫm
�`����^��HR�2b��^�)�s�t�#�l��r�ܢ�_�Z�3#q�X�����xg�r�L����4Q��f��K
����`7-(���/�����^`k�����j�K
+�&������w%$B�4�1+�<�$"�'�������#K��_�<�m(Zda7%>�k~�PS
@M��u�d�n�j	8�0k����I����E���!��hʻ���
+ܗFM�..
+�����_+a��
�cg������
_�_ 4�w Z�
��
_ɿa��W�"��W�Q(J�Gz1Q�4b�T�(���)��c�ǫx�����$m±�y�)�R=��摽�w�+�cH�H��_���'
5Ik�~�m<���uC�Qƫ�u�ˍ��F;�yy5�׮JTn�2G�����ܤ�S�3˻H�9����ցO|��
�
�
�33��'8{�7?���
_��G��<n�m�x$>�X�����n���&���9Ҕ���d>��/	��<ω����F��GCV�	s!W
+��Ci��'��r2��tO���?�Z�tک����P�w����ڳ���يM{^�P�>�m����-L�>eU�'�W�	�2cR�#R|�Ī���`��A�Bo���(�3]ZNt�_~	�Sӂ��
y����&g̴�.��I���-
+�+�*���YEe��M�	��y���|�<���١+y!��Gۢ���Fz�Dž�h_$��/P�	�߀s����� h[�t�9��砨�xzE��7�(J]@��y��p�Y�T�T��W�^Q[�,��W5�^��0^DE�g���L�}�]�
=���#�u=a�Dh9�O�|o�m���
�f*�3
&o�d�H�Wt�\�NU��n�,"4w.X�"���
{Y�Yʳ�w�%&
F&�	
���r��ި��}�*�
���G�z�% t�����xvNP�
�f�&��&�#߇�nR��_�54'�`H�E3B	��Pw��Ùe�}�Z�{;�`�È�ʹ�y7󀵻hKRW��3vZ��??�?�w �6�E;0�
�
O�h��"�*������A���{�@�61��7��=ڛ#8��x�ơ)��zM�~��;���#��e���m���ۥi^w�MRvS�=��gI[6<
b��� l��T����d�(�"�ˁn���MBҜ +����q���CڜR��"Y?E��dq���δI��]��j�}g��f�3�Ͷr����I�% �	��4���5�T�,}������_ѽ9��itv�[B�
���.n�1�^"qI��@;�
O޺)��]����N���'�hr3a�kQ�5N*�_����?�sE�)��
e��<Gs�N�G�N�J����`3R�9�c���ųK�-kAG
��)zM���+E�`K��ӛ4�[Zq��m��s����*� ���O�{�ޮ�28#4���Y���QE�:�H������m�4E�I
+^�Q2�>�M.g��|����8�)��l�k���"z�ov�i���
��c��5����Zp�P- ]Pm�h�q/�7k��mu���� �b\zT�c�ё�؇�@&"bH/�|����vK��o7b���������u��uV�
�[F꨿<,����M�v��;�����j=P��x��j#��JX�=����څC��
�+Lh"U�N�:�ZX��lw����x5���/d�x~j�(HȲ7��
����O�0?3��|R�Ug2Q���f��p?��eP}��*X�eZ�:߇�}���Cj�
�?��2��;8�<lqtqY�eW]
DL_�ys1N����9Bn�����ܤ
M�\�1-�ү��q��&�
;0 ��Y�\[�
@k[��l�Z�T��4�� P���;���}l$��v5j!�Hj>���p��S���i9<M�3%M��\
{�P
S��1��=k�Ψ%W��W��q���<jM����<T������9y�P� ?������5�����
���i4_�Ѭ6�i%j�'5���c5����
u
>k89��=�'�����$@[�Kt[�%h������s���_�#�"?t���y�R庳z
���
I�f���PM3�Lqt
ܫCab4E�
���`���þ\�N�3y>�g�UO�moI��
��/���z�/AZ�F8��[4,��ss���ɧ�����j�Jsm [...]
��n�R�f
��w�F}�:m���� �ۍDv���B�r ������1(�D��y��	J}�~z�a*z>w�pVu{~Qk�]B6N�T%��`�M0]�搬qf"_<�V ~!F�ve#u�T]��.gG�]#_�������O�$
n?��i�+�*�M8{�OE����Ǣ?�������5��������)�9VMP.�5PRf�w��R�$*a��=K�.�`q�l�.�V�!���r�T��Fz
�uٶd}>W5=���U[��6��W�iE�e�T������+!�� ���
�7�	(��ۭ:(9�=��}R�a2��r�e���i���_��W�b�n�ѐ��IW6����|�f�uEc��P�X�qY��q o��]���6/�!���o� ���P.��
����t at y2h�҃d .Γ�S�ٕ�$���P����9�����L��` ��Yϥ��u]����kfqfi��؅}��B���<�jc 
/�@i��/`��k� �f�kn�
�I�
�����~���
���j��V��}xS�)�	ΘUv��s��xQ4�]�r�5TgVwT�+*.��*N���|�������-*��F�
�c�ʣ����
����6�#I��Z��ҷ�h����j��]j���E�c
�F�B_���� �f�īV�
���l���=�JeB�:D���zI�5
�R���d���9���|)�P�P4��~�̠�� E� ���O4��B����K����҇�����tw�?��{Cu��?�||?�"��R��&�'�y�9��ݭ�S��]���V����)��ɈPӈ�'�?���h�8��]����[��pk�<�����E��t�y+~ ?Rx9
+���
+?���GhxuO���v���%U��#�_�_��L���^���
l����E
+��6�����$��`�r�.��G�Oֆ�]=�\H���ϒ���VkV�Rh>�~��m��:O��Z#M&��ջ�p��F:���S��i��3�9l	*�
+��yO�P%A��ԟAZE��#\?���G���O3k3���^����-�*�U
e?�?Rp嶳��%��
+*b�DK�������]��L��?�?ŷ(���+�Y��460��U���II������Qի������L�Ӥ^�蓆��Jᑧ�fy��,O<	�Up*8o����J�'�D�]�v��
��_����o��J�.Z��x񣐺E���"��}Кd�厫z$�v�n��4/�-��)��
~}U�r3�k�ь'��DpZ������gz��E6�N̥.
���^m�?��}~��O����񣐁����\o�����������:��ei��i,7��5��ԹP�]f�����!���ѓQ�Y~+���P�/�=�}�ii������c�[�5a<C��2�4ӑ���G�qGn�y�����ﹷ�bi�}���B�kčԖ
BQ/
��ѷ̽��,z�d/ti�);�(�� �G�
+���w�B������`<?X���h�/Ԓ��#�MG�wX
�=a��"j�޻��N�B���+̓��� ^�Ro�$��:)"��"�H:Y�
��[Α���IF>�S�2�&�oAe��[E��@
T�N�d�z�>������g���i�?At���t��4���WX��$Sg,5�5l��{)�$	�i��ù"��_������@0�+�S�JV�r�
;��B
j E�
�F;
TO�}�w$�$�
T���
qy2I�s��
��QD����9�L��	D�ݣ��j�l
�Է*��;�F�ب���S��00d�xoŲ��/�/@�jd~%;P��+q��
TG���
��{�q
+�#�t�}�n�dc����T��;�㧦m�
��񪇇xi����,�Q�&�ֶ{�n�'+o��N�!�5����K�
���]S�gN�y������
������N�9�H��T�19���r��%�v���1�n�5%�>Jo��ܺ���
�N�<������!m6��i����U���O*�{T���#7~�*/9�}v,b�k��z#wt�tGL�$���Ƙ�4cxf�&C�M���)��R

������YovC_;�X��).��I]Q۝��µ�)����
�sT�O
T
O(�Nݸb=
jY�q��j�'Sm�8���pD���\�8��
t��d�c�R#�q����Vߔ��� ���um���h�ޮ��^v�[��e���!��OۼTh���9�a(��.��<_���ԢЄ�'Z���̥�ąA��bݲG�z�?[��	��v�T���^�	����iw�
�������	��
��_6�ivI��/�{��Pv˰�xɔh��
�o\ȓ��r 
�-qǢ
�/0
��
ՕVg"i_�H	[
:�]!
�ϓ��
�W톔]�*Dq1��+��Y���Zg6{7��r��
r�?J��
�� ��� �7q��閗U���sB��
+7qW[\��W
q�aT��и�d��Q��[��X�}m�:�R�x'��"���i~f�t�Ǧ�>�L
�;?1[��d{o�'��z<vz��OPF��L���'����5�yeZ�(h�����a����y��&��<b�].�n(m!|�������"5|)�LE�g�<nM7��7��^8��ǘ,ޣ`��F4�eG�S�2����7��?�� ����e��4Ce$���E44�а�&?{�������XG3g�<�9l�
��c�ć�n�63q��qR�P�1ŭ�7χ�R���;~�5�a����x
�4�S����acS�J��ib}NݎZKX�åϓ���Ōi��Re������e�%3#���
O�Yi:�׽��PV���
�7N
ޭ9=�m8�$�C�/]���t4Tz�eh�݉�S����,����$��q��Ȟ�/��8r��ٜ�5���j�����‡|��ԣ|zt����u�ʃ�r�&9�ٗ7�N^�=m>��`2��᪻�z�n	�
��
L���
�ˁ�@~�	�䧃�1S%�}K������^x���
.��3��mKIrB5���8���a�#
&YO�ϋ���V(e��
�w�
�ֱ�գ�w���$Rmj�˶���
+�l��L�v��?����rD��9��0��=uk��h%tz��*K&&
�Ɏ�P�z�v_^g�=
K̺��uձ�+�Aզ�'��,�b�ܹy�Y�y�sz����/��^�ư��������3�S�b��dS�H
W�84LP��P,�
C�?ރ/�Y��{{�,܄V'(�
f�7������kە���^��&]k^���pp+tAp+���q�C
��;�E{�<��Qpr���⧢?��B�c�h‘�*��/����2m�"yJ��0_��ʳ@1Y(���
ܧ.�8F��$�g�
�w�-���z��S��^i�޸ֽ��h��+ �!
>�Ԥ�٩
ҪS���0��l�_�
纬"�_���Q蘅��	�������m�8AAѿ�@1��/k�}>h(qL�J#�
̵��/��3�
W.�*�
$�)�;0��
�W��WL�n��a7��̈́���~�L=M,K�v� E�
]]jz�6n}��╪�R-��Ry}Y�<��S&Ɤ�p:"��u����t�Mc�x�4�����&�Z�s�[��B�V�:��X�[��_�S8��tM��Y��a�� 0�
��-
J�3�X�A)+7@�蒠�
��]?�������J�
	�5��׫��++Ǖ[ݴwN}�6Ӑ��
��2���b�q��DF�k�����rk�i���+�/�/`0�6(! J���"��4[����8�
E���%���5u��"�.\bAm
:U�mFs��q�c�ف�sp.JƧ\��4������+P�gɾ�7g]�e�<I��? 
�Ё��<(u
���n?MPR-P.�iUي
-�����N5P}k�Y�h�8�웜%-.��M?\�9�8�ފ1��H՚�5�Ew��|�K���ϟk���y�$�4~}�`(�.t,@i��T
G���w�-	�[��r�x�{���L.���s�����	8�Y�
+
%�5�
+oLZ���=��Ϯ�{]�ުP��/��y�
o�����`���P� �?"���c�*[:��(v�]r��C�Y������f<��$%*,hǨ��xa	�
a=��y��1	��o�h2�%�¬��]��Mz�'�(��v*
��P�&�|�h	
� 5W0�X�J�J�=�d��87
���
+D�����L4J�hp-#m϶ȹn?��J
Ysdr�������k!I�Z�u H

q.qW����H�g���#�
s�z���� ��y�@I��3�>a�6������ʪ6	�N~
�u�/�t8�q�[fg��8k&o�/�o�Z8���Ű���	�879C(�o��{�Ȏ��aչC��?��:�;���
(M�wQ���R��MPY�s{�ro=��r�4T;N��)��Kwɝ�#l�LQAϝ��V�F\D�p��%]>ޮK��
�<�F>
;Z�6Y7XF
+e��]�2)���E�0�d�&��;;�� ��W}�G�A�z� �l���#�#�zWPF_I�A	���$�҂�K,T�?����E��<�
Gfz>�
�=�{����
gE!ߛ(�xɴV��u�>(:8��[�"�)Ћ鿼c2s=g�[�gw}��͜㞀�$]�L��LJ�ۘ�����Ы�j��0[n�L���2ai}��ӛ\��h��Ւ=C�GA9�ea笼@�� E�P�Bs�Z�M)�h�|Zn4d��,�z�^J
�
΁�@
+F^
	ʮU
+
�Ճp
+m�B[	�"�(����������9>����'�3PM��}P�W��;�<n��2���a�������#yx^�N��8<��h�_��1ٸ�VxO;
���D�%�	���Q("�Y��7�_ȟ�P���2��Zr�R�?��]��yg�k�y��kt�]���^��c#�
�xj�ݞ�=���m��[�ی6�:�����P�l�A��!��%v�=&�;�5X?�N~l�8~�$� %ӈ���
+��M�r�(h�����
A�]���M��]����F֥ҵq�T.�L�*
V?L�k���R
���Ʀ��P𕗮
7k�����ŠI�&�)�;?G�@F6�,~P�y7Pn�k��!yx�OC���,��\�ٹ\W�B����
'�I���@��N� :�x�8��
SG%�������%�G��)Hs��˰�c֕G��'Ers=W���SöJ��_gG�ہ?ʉ;���4(*�l�E�j}1���S=�Iͮ�LWfv�:U�:ʧ����E��}9�d
w!�t.���V�s~]t���:�q-��]�
?Oص������\��7��I
��h��r�W�~� ��6
f��^���>c�^�s
�V&Ӈ|F���}6U���nH��
[��`�Զ�U�p�/a�:O-�����vӥ��fH���yb�����I,��h�l�� �<�y�4{�5��3Jf������bte�æ��|
������ᙱ��|�����Cl+5X���+^,29�l+�ټ��NW��`ZHIؤ��D?���:G�&���k�|!w����ߥ�i����(3�
l���W�t��{j���.�)���s�y���q	i�i
}�|cֲ/�
���n�E����dv�K�c��鏉����4?F��al
:�d})�? 
�^���.@�>�ɏ�t��%eպ2�d/�ջت�5n61&
I9��y
+φ��/
��+�i9����b��lYǝiQi���>���dzD_s�Qs������3��97����Q5� ����r����Y�
���d�O��%
\��JL]s��)¿��^���
ĺS��
�������05xA��ۭ<�C}\߷�Q
/G�õ�vG�����j��`0�
�Ŀ���2� 5�]k�yڭ�z��ɞ�ڛ=.��W�7yn�E̘ջ[�!/VO�X\��L�.7�J徛T?gr�p��2j�C>~�����u�$��{2[$��
��^�fO>UG? ��a�>��Uk-=�
8��s��?ʻ=SH���>u�-�~�u/�/��Ȩ����
���ƭ�}<��i�p��W�5�
����O��cOM����0T{����^=���tה��
~�p�eK��p�J�.�:ϝp��W��o�CB���^N����I�����)�B���|���=9�~������$����Ҥ���I���'���[t���`�!�A�ɱ�5p�M�G�]ߝ�������i9x��Ǟ\�� y���� 2B��Cu���F��b�^o�6��ݰP=
>�K��k��Ӱ��A�n鶺u�����t��.'A3��+��	�h���<.��f/w[5{�,�HJHN�#����<�~�/?���lB̎��A�53���
z�Q�������g�[��w�q�f�y}��6���Z���Z�Ԃm
�S���
a�P�ka����'(����%������{�0����
�ö���z1
5_ex|�%f�G~0��䞶K��Rpu�ޑ�}��v���2N4{��V�\�c���I�T���z�6���Z&�N��vkQ�?�;��=Zz�<�z�w|!���E�?�
���
�/K_yw��0� �?� ?��W�y���}=+b�y��K�N����f�Z;��o�;�q����%p�r�IK"
��ѭ
+Z���s�Vײ醦[lg��;�]���S�h~!� ��A^~�A�XCQ5}��	�n�
+�*�B�
�U����A���}�ݗ��(jnQg���
����/�'!�J���)��Se���R������z���s��g��zV5N{_�w��R5( �`D
� �
������̂�^f
�!m�����'�V�z��ߛ`�F
kиq/��
�Qx�R�pT~�Ä��i����@�΁��-��_z�}�&G��t���Hu�(��P�^� �(A^a7�0��������Xm�e�퉺��=,Y��@/�?���7��b"5
�eoH��
����+̸ 
oh���<�|O����0u�&MO<Em-��/�{� �V���(�+P��@�<:�؄��∙�=��=�՘����e�ŨKoj�A�|!�8���6
�����@���X��
x��NF�
+X�4w�d�ӯ�u�V������ ��T�#Vb-Ph�ˠPv0P,h.(�VeP�%(��)�U����zv���n�oBs��W�\��8@a�/|���8�]m���sY������ش�FrL��dŅ�:�y����
�
��YH0�
ԜL+���	P�>qzY at A��Y�R�u�s���}U�
A #$�RA�6
mZaJH��L�<�}j������5����h�p��#��4}�
+9h�/�m��`4dϟdc��/���� �;�Mǒ
+�5
+
+���CP:�k�䌷���gP"x�����G�%2Q�Un�5�d!3��,~���]�X&��)}p�bUv�
o��5�
+t���K�n��Ϣ�e�����D�;@A$��F���gv((��|�m�(��-(É
(=t���prQ��CC��w���3�
xs�V{����!
��Y��H��{=-9^��"��De�dO�pG
�t�JJ��P�Y�t@��j�(
P���o��e�_ǫx����_�B�<�l!
#4�d�n��Љ�娥��̩M��w�+Z�ëz̹r����Ϩ ��;ƶ���ޓ਑�����/�/�
+�I�au�h(�A�e��\rq+�2��r#�7ʷ��R+�����H蜠����z�5�~�xv9�v��y:���#����ԗ����L��U~z�m%��(�B
�
�
���p���(�%���\P�\�[J���7�G\$��� X��*^�b5�_�N�u�x�&!R)��w�è���Zթ!՞��j�nT�n�:a���(-	ƹy�<��$����U�X0Lmء�ڰ����w�. �N�>�c��{BC
j���x#�����Џ�H)J�Z�`m�3^5+� ���L�T����m'1����R��#��w�5���ˠ${��06q�v�4}^���+���B�r sW3�b�o��Y����
T�K��rq�.}x�;}ƪ.�����4b�o���.pE�Z�ˠ�F��n|�2�st��><�֞
�=�����^Q��>����>Y��Mo1�� k�C	#Z\%ڰk���z��
T�x��ng
Ћ��*5�6�y�wP4p����X�LB
�H�2T)D�[�<_�u����)l��
n��zn���MuCY����\pSXR<;����x
+�(�1
T��@������G���9�Ŭ�x�
��+�)��	��<�@�>2���	��1��R4�Z\����n!�
h�����9������
�s�>��aD�*�����u �Y2�I���
+��m���{��Π�2t�Ys������}�I�~8�羠�>dcT�|!�w��L�f��9]a�Xb��n�ww,Ĕ������+(��N�����x]
?�����_<��]g
����c69��ZsYۏ-�2��n
�����{]r�
�h�|��`\\�z��f�H.��mn�K���n�iNw�z��v��h��"��Aqٻ��w�y�<��#8�Wf%�
tQ��|�
Tۋ�s����SA��p{.^�+�x��%�j ;��fC��z�YD֠����ʹ��ً����=�h�{���s#��?�
�ހ"�5���Z%s<@٫�'�}�tX����g
��O��d��I`2��a�5��G*~b2���{y+UnsA���e6Y���y��]�2_6��V�g���F���
���{�� E� 5�-�W6�
<�+PM�ړ�T=8�sJ�r��c凇�5����ݤDbr<p�������D�FEi��z�j�����S5�JNַekR�%��|�V��P�͟�8 [...]
+��fͼYo{Zﰅs�˺���PJq��\a�N�C����
���1�m���
��v�q��W�Q8.[�{��
����`0����
�k�
��n�:�a<'#'��_���J;
+��֓@�d�~�N�;i⡂�ٕ��Ğ:���!��!�i�|��������n��HE����#�L�E�p}�"TfgDAq�	ES������>�WW�?�ھDF&Af*n��t���fi�Zb����Ȟ�bYL��`L� ��-���b;��OjT�[S�
ic�� �����l��\f���˕{�
p��Z�Ҝ3_{c[�U�IH�c}y����
+�P��5��E{��>���
�bRP�wF��S�_	-Z������<�,�ڡ�-׺�`��+�Th������?d�Ox5���Ӧ����Dg��Uw�����`R9fW?�ތ��rh��
U�T���މ��q�جdUt�m���-a�m���B4x�$�j=L�s'qxᴇ8��3�k�mrڰ9�Ú�
?�?���c�_o}jjL���h�
�
���i8�s�ʍ��5��߸A��vy��l�ؗ��p���gذ�KP���p��g<��s5ϓ�|��<�MnX����j�؞WB�q+&�*7��T
�X��O��8n��h
��
+�27�gi���z�p1����\�r^�T�Z��v;\��
��f%�MD1���vͻ����#w��7.�HI��RSj��h��<1��-�c���S����Ί���A��?c7K=�%{y{���K��o��g���<왹�4?DJ��2��6C�'E�)�P
^�]�Q���k���Z�J��l�h۲�<�Z�����Rn��U�,�Kw��=�B޵"DW�?�.���xXU����w~Q
�GK�
���u�m�ݛ�Q�����^�3.�U�p��!��4���A�l�M�[%��UB���V�U
XX�E�vΟ����00��r�`�ͽ��3I��4�3�ȑoc67�������
%���V7j�'l�V��OB5��V�{�2�ֆ%��M�R�
�|���q��`����>{v�
;�G6X��l	}�����0U���ѱZ�y�-A��?jm
�T���� o�P�?7 ������ʓ �� �t�����f���� p�v�' ��Ve��V��K�p��i�!f [...]
��5����C���$�Z
�K͢���4�������M��ˆ��:*v����Ƈ{3~o���.C����p�	 J=��k����h
�t���$",3PmK�jg:T{X|w;\������K��߾٤/��	sG����r|n��x��(���ge3��5�B�����24>�cLV�?�o����т&zV`#������* d���Z�Ժ�2���
	 ��^/5D��y�I��'Y<���eZ���
���0
+��
��
/|9��-���3 ק�.��T{g�~���*P�:�}�}@4z �N���
�����E�]Cg�\���S;@p��u�� 9��h��Ot|�O�8��sQp��h<2�<;~����a�:�{&�z�l��;���㧆;��o���` �s苔w�a� r7����=@��ix�(����x��B��Nj��>��K�x��d��bS����G%y�z����4շ��6�w_������1V�+O�����Az��~&�?/

+u�Ph�
+�"g���R��G� �� 5�v�*Y�T�������"9)D:�fNdt���Q�٫�8j >���~��\���"U�P=�x����Cn��K�WsW��F�'
i��-�@b���~[?� rF�FJt�=�[� �<�i�(˘C����S�3�I*.�=**w��t���zE�k�p=�c!`��
�L�'�\��^�ϧ����I��V�
��3 Y�@��e��W@!B�e
2�_�gp� 4px!
�|^@���/��8�������[�\|$���)�
.7
SJݹK��v
�����՞U���}}��Dm�QS�t�d��Hك��u]C�@�G%@;�0|�
+�LfF��S
�]\�U��
(s�]�M"�~�h��\�
6��s_w^�
1��k6�n��s�Ey��n��J��دv]�7�t�	!�߷o�t�\���ٸ*ܕ������fd���w�
0��6�F�)zr�ۓ�fI��`�]W�I��:�/��L9M�
endstream
endobj
34 0 obj
<</Length 65536>>stream
+��_x����c�,��\?j�w��Gwf��$ٓ���3��ɧ��
�
��
�9�� [�޿{$0��c�e�[`�Ó����9�
�'q4Ic�F�����<�=��v?��g�Ek=��+��s��Ό�mW�e٥fs�ZW`����[ Һ��M�О����o�т����
X�*�
+ٽ͆���iq����5�{�Ӽ6�����GO����v���l+������j��u�J�s�g�6k���Si*r�����uS��� ���4�F��b�O@��
4f�[��ﶶ$`
�
[���L���
�����Y���k�)��aU7�-W��kq��˶4I9~�NχxO�Í��ŗr�4��$S����{U���!?>0���<�g��	(�b���P�d>l�s�nJ$w�Z�A������
�lV?
���

��6�޼���JN�G�xa/��`��b�OO
_̙+��LvG��8���`
�%���,gdT�~��������P+$��i�@�~�VGȡo4��9��s��l[8��������8�n��|�€�1g�w���
��8�Lv�~<�G���q�`󔨏���G��J1���:�
o�?�Q�ܖ��*K}J	`N[
�Ŵ����
+rh*
="Tod!�]C�$�|8[���U4}�֋�siŖ
��δy�l�޶tЯ��6*���K����~�$xX�C
]Ԇ�dV�XT����g *C��̶�����A���
���)1����L�ϝ��`߿$�Q���gc����&3N���?�M��1ma�9�߆��R����o��沜���e�,�5�
�-M����VE{���v�/�����
������
�l�C�,� 7�x�j��� LW����
Fo��](HsEq{en�������b0��y|:X�>���n�ه�pSa���둷��s
�r��<�K�ͮP�3��5\@_��w���p�C��o��z&��<q��2���؈�[v���3�����-��I��]=$��`��G}b��ԑ�[w��rm'd�w�Ƥ��	��:�6�n6}-u�nR��$�g �Rp�ڮ
��l�[��:z
�f�u�V`.��Ԃ��f�t+�|v9�*�y!#L��i���<���W�#M5��q�6�/�eX?��H��t����^�p�^RJ [...]
���T/t��I�π
+[K@7d�b�w��JkA}| @������ؿR�~���c1�A�^Kjr��9�ϗ˚+�\W�zg�ڲ,����
]�x��/f�I����^h�+
���KN�-��+�iEf�
@y�5����w�(��.��
U#��
�T���!��j��l�1��<MTO�9�ho�����?�5ynj%�b�
����|�����ۑ����7FȾ��"z��g�����
P��0� �~a�+��
��
��wR�+�����D��mo-�`�Y���0Pn�t�h.I�>s���W��
K�������Wj1>��EȈ#L�t��ШU��k���^��³*�
��h�]��y\+��ҧS����%�/H�9��/97�@��Sۜ�F���(�.5zE����(�^%-��)�W|�1%(��S� =���nޭQ��
7�PSmF�����*��A��ns���
@'�2�
��v���x��NkY8�w�t��Z���&��b�������s��\=~P%���r/_xK��E5De��^�"� /�z����0��O�s���2��-�T/�����~MQW���o�?����軧���Ӽ��5��yס�]��iN����n�
��Q����
z�u�-�[힛�4����$�g�R�w�Yc
q��n��كk�[���U���_��̧���u�+wZ�U/t��g\������h�;��t*�W��="e [...]
�<^��D��*�-��5���Xf���˫�F#O�v�<	ڻ��̦�
�#K�W�);Ta�N�y�;������I�++A�d_��%�(o5���f^��|ȝ'��Z�w9�(�����Jc���5W*`!#�*���9�
��d�w�I߳�����y6k(��������
���uIk�7�"}��`�-���-O
�zf?k����r�{�b��Q�G{f��Wf��(�̻�h�'����ע
{v^�+�b)�1U*KGG��Uڤ^WwD�lN9F���:��\�I�:Wp�)�*܊E�W�B��<f�J�5(�`�"���fJ"!抙s��w����[���Z��q3[B�
�쌺t�4όƔ3
���6[�Ry�[�m����L@�����w
63F }3�.W;�͝
��
+��R�go`7.�B���� F'*@#zг� �Vsj/� 
�\
m�@�ЂVh��oAɶ�u�C<\�줴x��&t�0�7���o�K(�v�0žC��=��` B\�G��w�F<�P휅j�"���
����m��ڑծoP���� ��1�@��>T;�^����Oq����p����fy������{�/ �jB�����3��9 �{a ?͛o�v��p��Z�<Ԛ4 6!4������`��w.

P�ט��1g��|��:�j�t��:�d&m~����5�r�3����o�k1a� l_��ɑ��=	���L���2��
 /����Tۀ��
A�����4���R���Qj�� ��a�?h���eL����]�|�<����������q
���*lR�XB/#<��dq��O���8]��mA�
�wm	���X�B��`Y� ҂���ДW\{��ħ�{Vj�ͽ�'�
�LOf�=�����I��
?�?�� �ۇnz�BG�
�S�
�ŜdAP )��
� �C;[�Z�6�gt��t
�����"��4�m���:������"�`�0Hu�
ӏ��yEWW斳�v�yRc����V�����- ���j eƟ�
U��^��ے��
+�Y��? �40@��2 �Z�
��l�0~���=M���ͮſHa���b&*vo��Gc��>_���
0�0��ý��uj��a�op?Р�F�:��c��0ܗn=@M�-�4;�� 9_W��j
��"7���
��K�P*�GD)����\ц�7
��etW���}PE��!�v�lO�Lak-�
�b����� �0�B�h�csH\��ڂQ�#����	i9 ���`��2 at z�,����Y��kF�F�G�MyV�
��>�)V	_ך|��K;P{��R�v��{���u=�ly����b�!̸��� �kr
+��6�P��H����
C��!��F
J6��⽸Dt�gԦ��t~3���'��K:��#s�j��%o���YZ�У�����E��~��
9�N�ީ��Buv�ߥ��
+=2P��� *sx���Vm�`��`� ����s�z���0�x4rI��M�ɍ<������{�x:&��/��k�/��)U�n���7�C�_n�T��:�Ɯ��ڬ�ݫv�����a����shG

+}�u����]h��Ay���=��E$1�A.�Sy�iv7O����(
�����Wݷ�a��t{0ڳ���/��o���N���]���Ӓk̊�+oE)�2}��⴮3�S'� Dr �T���2�g���_�7dddM��ek�hV3�2:�`*MW�E?'
�׸��t]-U�����T���z�����~�dz���|�VD����+��)��539�'r�d'팛�- ��
�Vi��Bv
d{�	X�q��x=Ӣ��w�
�z{$�S����L�au�֖��Z|�˶I�
���s���CN�YQ�ǧ/�R3��sy�f��ص��X����/xB�O����/+#��u(4��V�/�<�[���dÏ��u	��h�>ϋ
+�
���Sy[���F=6�ڙ�=�6?����@���7�.���=�c�o�����/t�Շ'���-��AP��Y��43 at 1��v8�d������&�*�yfr�{gv�����~ڽf��v&��5��*�޵���A�J�2M���wo�����>J�vˏ��
���,đ>�
džeGB
~@85hOwb�>4v��P脁B�3z�K;t��*�"�bw��l�{zel�N2�]G5��K��l99�7����N�GIK>�g0���`vX
��e�ԥB�CBh�.�[|�/nS��}�z�`Z ۼƿ�sV������?�k:�#�j
]�`��G����d���蔱�b�7ۦS
3�X����2מ�~N`������S�'����~�MP�֝ ��%���A
+�oe�G����ߪ�8�V��;����T`{�}�^PS����n���k<5z9A^�؉�ST�0c���:��޵�o��v�_���U6J�TR�൤��|����I���)L�A{J����d
�V�@_��hI�i��&��e7ŻV_	ך`��$�
���d�Y{�y����Y�̼���
F}�Sz9³8���>�ԋ�i*�K4h��̢�ǧ�
s
+�	�B	�%
n�%��^
���=�[�W�ﻤ����
��u�}퉈~!��|�
��C ��]]-�V^w�r/�٩�9�
Ӌ�nv��`UZ�}�r���Y�Xճ �'�nk�G���.-y|dZ^(2ٶ�
ީr�NuD)
�������j˴��;|�$&Q�]m�8m�B�϶����Ki�]|c�?k�}���W
ލ�Ӊ�
F}5e��
�ȱ�T�9�m;�f�>Ogۺ7���HJ�I�Zf
�S~
��� 2(ֿ3����tNk
�7�z�G>ߦ�8���
���{�\FǶ����J�?��l���qq�=?(}ӈ[%�������ȭi�����Ҹ
β8
|&b���������u��j��G�H
���
�M@��

-o�*8�*���M��{߇�
�-��V��)�1nY�v�O��g1Z`���N�Ǯ1 o�׮
���5%��l�ZE�,k�zm;1�и��B}թ	I嚯?�#=�h
�
+�8���o�������o��Su얫�x�\ kݭ������
�0�����n��z��O������^��Y�y��t<P�q��	���K�_e!�p6��S!�R�KҚ�?H�$���֫ц������� �{k�����q�F�ni�u7,�.�Sb�L��b���x���ش&�h5��Z���]S��J�,e͸Ґqo?h�,�_���aª�*�m�۪��cZ�P;�|��8?�jx��ն�E���
�,��o�x7;'X^9�`��A7ke�\戢4��Z�R	bi2�Ę
z�$Acq����A�U~�[�u�n޼�Z�o�__X�]@)-U;\GY���	�+�ʽ�^W&)��A+�A]�7�V��:G+�
+�-<��E0\�;^��5��R�-���6?���4�ڍ���^C"~��b�
#%�^���{��[9��5+JQ������W\ӯ1S�Q
��t�̮ٲ]x���J�Kb�s,~�\��*��2�*�J)��r� ���{�
+��}͋�e�T���ң`f�nA�[-n�֗~?�1׮]�UP�O�����wX�K�����R��/����񷞼���v��/9��w9�;U؎�\{�[y�o/�仝��ˠX��Z���j��b_њ�e�gg�e�L���0�%i1�v\+�J��)��h.���J2�֡a
5���w5���R
fQ1Oh;�Z.�Ԇ/J�F.`�r�'��,�|�>;��8���g
e�͖(�c�c��3VTgf�]����
>jT���\\u���V�AG
+FA�Q�R�P����l�r�IkZ-b^���u�Q�nq՟�
+�B/ȫ9����
6�D֐��T�mk���
�1�+%�s%V���:����|�
+�ɔtd$��tOw�tg��L��7
+�Ⱥ�<�!��&��M�7�X������g��v�-��g��c^���>@˖���;C�8���{,)g�p�����~
t�����q���C83����0=��
������仃0�W3l,�T���2lR
���
�Ȥ�9��B;�~��G!Şgo$[�������2E9�f�\��yT*D��	�;o�8�QzX_���,r]�C�8��h���W
�Sh�� ���h� �:
Q@+�- at W�
��] �1� tZ��}wZD�/�$cĩ�b�M���.@ħ�2=��)B��d��s�Ed"P��
+�
+��R����{�(��<�Z��_�����
�
�Pc�8;�~�o��n`)
+=�3�vs�j� �X��j�*�:��V~��L �-/��<���] �	�PH6ۂ��W��վ�8���2�U�o�*� 7(�{�2��T؆jށ
0��V1�U�Z���
�>N�Z�@k�؀�j�
��w�
��X�@�.Pr� �9b!��UUC�y���%�?�������Vnh�)� �c�v
�ДzΠF��u�؋�,��f, +=� }2i����lտ���	��+�m~c
�
:.���dI�2YC��Sm��jt��z��ϲ���
+���ܹ
�m��Z,���B�%
��
`I���|p��\�
 ��W ;�w�5j��躛
l��S(OL�ol �O� h�;G �{���_���[;9�l�9.�}Y'�7.v�ER���a��PW
+ʼ�]�m`��;m]?"]�Q��D&�|�n �
!� �a��
0�
+]���
a�� 
j(��^!�-�-�$Ձ0'/"�,���þ7�����X�h]�J���\���� ����Y�#s�w94�] ��`��%m
+�o�LdfO��'����G( �q�o�T�5�2
8"�oO��X��y
l��,��]
����6�7�i�2XG�~���e{�;����*��fy��-D��f�� �X_@�D ��;��ţ
q����V�S/@TQ�1'����gb�0��"
��n�� *�h򜬋���J�|u����L�9�䦡����_��[cY��q�-��v� خ$�P��U^&��
+�|7��J���j���8�������������*��H�)W�?�9	��gy_���=s
+��6�yn���}l+�
�z�gGٝc���Z��jAI�%2{������_��tI�
�\�CS�&̖Ok@�wO@��k�S�
���
+P�����+2����l�,��

���p��sՊ��eϜӃ6�o\|����.���ˏ�0�����%簜��ڐ�q��~
��"�y~��&J5��:���]�i�v�7l������3\�,��o����;&���/^Ͷ�ja�~L����}v�v�m5�y����jP�ڂ �9�fY�^��vy
+�4n��
�#����C�BS
+{@���[�-�
В��Y>_���1ysZ\n�l��|��o��<�ك������]!x�6On�['�x�z#��*��ݖhv�s�f�4+8wֲ�
5��+����l2/�~���*��w��@��2� ]��q�kM�E�j�@
+���W[�%l.ǥ�?<��z�/���J���=:��!�tm)���8�z���9�޸�����sm��b�6��1��.6��+d������R�2�p ���w�-5Y����P�fUN
7R��?�w�7�z����
9<\�z�m���n�ز��3����}P�ìݲ�e_�η[�����TÌ]����XE�ޓ��UJ����- ^
†�|�M���#`��d�
s)W
+wqV	��bx�ݗ��������;�mm�
����
q��/
���6mٻR���n�d+�:P�mb�j�l0��e
+
{��#�Fŏ��,��
p at 2:p at b�Ͷ���0��󺔣�sq�jw��l^+j�}�qft`��|Wu����̜>���z��m
���
#X9-�c�!��
�6F7�<
>��nh�kdX5g�A\��q�xC��}1�o��oy�פKz^��6�M%c�a2I��<.�>�
����޾|[O7
i�Z���7��ٶ�$�6%&�(�,ehG��^~��'�N��5��RK��i-u/�~P-�>���ߚx�� ���![�[�U����;I0%�q�3k�Z���gje7����|��a�
��\
�nV=����޺NT<x9�Fa�
�m���S�u
X��q���a�w��]�=�vy�:����mSIog�����
ণ ���I�+�pF��]��s)�?�
Ⱦϩ�$��_�ܾ*e�M�a�S�MgO
_Y�qٝ
�5��[��Z}<��Vx��}l�ݞ�ʫ9����ѕ�ֈ��c�V����ëK���uo��W[��e ��� f��Eqh�h��S��3���pH"w��V���U=�����֧r��
+�l����#N,
)o
��$R/��QJ�Ĵ�H��/�d�K¶�tޝʼ�����b�ȎbE�F�����N@��>�����a�I�3�X�w�kmp��>8��
Z�E���6�T��b Z9�Y'w3H������Y�r�Gg����ɒ��"_�v�'uڛk
ٱ@Ne�D~�Bܮ��g;*6
�����
7*iHY�z��LJ�=?Q���b;�Z5�7r�K6L�sn[�[(YR���G�P3�:tz�d�V
��:�g��{
�X
�q�����)0��`�<5N�§y��/i�)$-i�F�Ŏ��C�>tM�z:����&�����斶���nc�Δ��� �Q�­�ïL훤[�ww�ɐz�fũ:nO�άF�d�[���Q3ۭ"�
�
�������X7�rFԷ�wc����I7�y����>�
Н�}-
������rg�`��5I���|�e��j�h#�70�E�ѣ��
3�
�^�=7��OI��k[�K�J��^�:��b�����0���:�{[>�É����W�ƻ
�
������>+��a����S�Ҩ��4����W�]Nt�^]�5򽑵{n�&��
�d��R9�ט^M}�|�#�=�m-
�?���J��*��g�ђ_
�<���Nm]N5��5y�R|��!��1I	|���-�2=��ם�ћ;�u�LuE
̒S��5[j�01����ln��ϯ����~Nx���h�:�z ��[R$�nmד�h+,;�/3�tM��
���\�o�8��ū��8����r&`�TC7��oq'�l�ߍ����c��:s�g1�Y�}Q���SN�?!y{��/��+u
���d��}F:����x�)Q����*�u~/��
�ܑI�R(P�[s*V�YuV)�����s�/1����e�I��WLTa�Wx��k�P���)ea�
k�
5B�8�.D�_P��:���ւ�˴�|K���7�m��/)P���Q�]�;u�^9�*>>��^
����<�BV).� [...]
�ZF��;�OLܭdݤ�޶_R0

�v+�%�U��l�ʝǧz��қe�Uk�D��3�P+`���'���c^��O9�l	]�S	b���;CU�+�'tr5%mR��ym��v����x�Ǻ�%����T���SVK�[�*.���, O�k).�8��R����ɢ��	�r���s}Nc�܇�gK[f���<����K��HTb;}��3�J5<��Z�Xc)����|�j�����s��Wa
��0T���Q���W�w�UN�h�x�ρ?��:UU;��7wf�-жz�Q";��RQy��D�Z�qU��_��X6S"�a�g��Ю %ږ2՜;H�h�z=�~ʱ�ϔc�� ]F� ]�[�ʍ� �
' ������
Q���7���<�*�L�� �N�t|�@:a* }�� �_�@څ�Mڙ�@z�$

��	��{ �ۚ���}m�8���13��� �a�'��� �gP�� �Kk�l���p ��C��7��x�
d��d�^
%o����
�P�i�/a���%�S }�3����*,�<�*'�iV��j9�4�O�~�� �2�ȊЊ�6��Qh��B�7 e��H��nXH�
 ��-A&��Afe(8 @F��`�լ�
7W���>� ���
�g����s��Wcdfy.Q7.ʗ
+�Gu�aC~�c�
 yrPf� en�
�ҏ��}��[��Wd
P����7�ft��k�(z r�H*��Q���qЄ8�AfC[ ci0���Ĕ��������
R�JΈy�n3l�)���i8."�Ԑ^C������B�� +�y��0������w}%�z�'� N-&����M�H�{)ss��3 L�
q���CI�w��
S��}�ӫAG�
+�^eN���?�?�Є-(�j4 :~(P�4�̟�Z�Ά���W �*��9����D$ 
����%�b��
+�ȭ ;᡻������%�~��E>>v�|t�n��X��{���k��>���L㇍rB�
 -wjД#(� ۙ#�s��<����� ?Y5�[�>�so`��`� ��&yz�K��V����{����\Ě�z�5�z<��
���{5f�֭��Ig�at�--�u���ܝ�
��5���ݱ �n�SR ^�u�?� �
�%��f-�Y
<� v���,�4
�?xH��3,���<���0��fX�?����;�ӷ3(��p��x�d)� ����\�Q�Pޢk�$�W�u)�/�L�{��=�Bo7	`q�
�c� ��mw at vP��daa$������f�����|�T.&�H�R���#(�u��Ww�˙XL~�K�yٜB"�8���ҭ�����֨`욧��r5�3�v�|;n���@3�����bmH<���x|c~�� *{��<�
<#�3�O������xT;�j
+�9��s�T�j�#��*��eDO*|�C;�1\��������˽1fS�����S
���~�9�G2�Q�f��1�/ �Þ�m����& �-f� ��c�1��n���ipS�g��;�7'��?�����e6���3.u���E\�7n!lK�N�T����u��)lѾ鹆�Q������~���b�5������
an;(4�[� �
��<P�
+
���G&���R�J�?�7�:��ʏ��]��6;Y��m��a��PT��f��Zhn�U�6�/��@�V��y����j��n`V���5�O�S�,�͆�$f��ē
~��
�ī�
���r�jy<Z1^��B`��$�[ϯ�.az�86�c�pX�G�a�[sPZ�_��a՜4�%|�ǎ�ڦ槢M�F�a�
{v�zf��4)�n�Ϥ&�&�a�+�Z����� 0����ОAm MYX � �t\���
����	z5vs��S����^'��-��O�)s=��
ߤ�u|g��s�����زƇ�[�f�:p����O�v
�i�e��X?�Sω�ct�|�k��
 �������� ����ճ�D���C��
�E)�γ��x�{�ss�}}k�#u�����ZS',�Yi�l-{�=NE�}33N�5vY7z~���g�%�9]܍�O����s��14��}X�9��?�!���l�́5��xG_��(����P*����>�A�-{��쪺̭W]��$�u~����*�%Tܥ�J��\y���l�����D��0���ŀ�O��n���޾k�D
4��_~Px/����8^�oUl
�|����x~:��c�
|T,r�����M��BŠK [...]
[_�Ly�jS�
��k�z,��.u�H�N݃x;�`g��1*tMz
+���}	�q��X��G���
c������y�&C��>����2+[ 8�f������Ӌ��>��YKk:�eom
�
Bޔ�����m��A�t���ܕ�|�uR���\��Qe����:�
��K
؇*P�W�ޘ���uE�5P�W0.��b (� (AQPAT
�(&L���.{��z���?^�1��G%���R<�?3����D�VһɚϪ��`��l�-�;j'�dX��@ZRV1��ڇeL�o���z�[�^B�I͞�,�ʶ����N��Vr_�I���P~x�c�4�����Vu������6��iLv�`����� D?�y
��R�	on�G���_s��(�d*Ñ�7�Fth�ڋ���*v_)��qgR
�;A{�
?�
qH�iE�1�.|QVߧ��A��;J�H�4�� S^� ���k�0�
p��su��G�ac�7��S*

+M�Z*���d�Gd�2+�6fu��I�9����R�4�Sǒ��h�6a����k�-	�\���>Z����"dW�P�>
Q��q�~�����?���A�:꧈�2A���ۤɮ-�x��W�
�����tP}����մ�^b�ݖ�u�tI+��Z��=��8`���k�ڳ���Y�&i��c|�6���5���l<��[�f�~0�
[�����n���Eo�ʄ9x갸=����n
+�)�bav�"��N����8/�ms�\��+��ui
Uϝ
ٝ �(��~��91-1�K��@ٚ|�X{�W�8�#�*{5��},�;nf�n���sj<�c�z8�� �|.���>k�Ԧvs
+޶�dgf2!�E����Vɺ�*?|e{����/Y�=��%��r���G.��F�����V��K�g�
6�Kj�	:�K���S<��S�޲F���Z�^���z�{�POޟ�/?����,���
+�om���d!��uR�|�!ƚ�L����iX�w�{Z�ZCSy e8��D'i3���a��B	?���0�6iM�!�J��7JwZ��ܠ��3	
[}�=,�
s��S4��	���#��U�ݿ8���+x��JH�9
T1g^�~��8w�&��"����Ch���c�iwgY�/�3��֮�F���k�YfA3�醗�9�zk�I����τ5�Ǝ1�y̔A�”?ެ:��F�� �WlU�V���ZYn��"Hũ���Xr
�U���g����^�]=�VG�
�Ω�&oص�>�&�ʟ��
^s.��
|��r���S;�Wi���K�u
K����*���V�4,�Qn��R-a~�1�R;�J��
K�j|�����WKFv�?w��cM�X��a�h>z���;��d�_�>dV��Y�Uϥ����n4R�nR�F�E��z[��ZW������&*ͥK�e����}���v��8�z���
�lH�r~K�E:���������`ӧ�{�w��sX��H"��}W�#���A�%����R�;,��|-
�k�o*�"�Q���UN�ᴌ���R��p�p��`SE���_M�|���<�;�s�p��9�%,�9�̎�q�N�qG�zO���}h���
��;=n��|��9�Y7�
+�Q����1�斬��P�4
�c%�X��j�N��w���S�P�wJ��l�9G;M�3��#�tHb�
���k1���rz�fi�M"�3�V���/~��:9߇���Ȉ
�
�
+��5��eQ��
[~=�UGX��d��K2����u����Y0���'���h��I�+X6#�1�V���
+<��*�B����[��;o�Rx�謶��Y�!a�/L+$/=��a����?"T�`�ݸ���M.�ٹ[Tʙ	�ӂٲ�<�f����Ho-32�,�
+��Sz���p�D1şqS�ظ'�+7p�g�yȵ��5�@�:������\>����F4�V ��u�5-�����>@
�����(��$�5 �Kk�����n�̓ �� #�D�������IͅL��S�?� Y�C���+@��=&���_ l8��3��V�1�0�!@�]��� `��`�= �Ԟ`�/
�E�q� M_|�f�
@>��N$���H���Y|��
 ��o�Ȣ/�,W�g����U��Қ�ǿ �;�aR�a��
�S�S
�M`���
`�?kH0�B V��U� 
�!@ח@�$|�� �7pȓh�.CF@ʂ�70��o\K_>o�f��1ڽ�Gy�~�
��.�swQ��
��m��T�g�!���<��|��_)�}*
��
0-��V�
����>
~�F�a��%�K ��0���(`�)��^Nū�&���m�I��H�
Q�krY<���
���|�-�%�c "wP�ǐ����/��f
/��ˤ�D�,ro 
n	��$	�� ��M��ݙ|���x���w>�e/��d^�m5�(��mf���<^'�v����~	���j��0����2��.
�
��]��Q��
=�Q+ ��. �/� >^ Wh���DA�X�,Zq�����
5y���i��磢��wV���}7s�!~�ep���u�j���� ����| �gN4�A$��H��9H�%84=�(H
�"H��6H!C+�۶g���G�Wo:Þ��8�C<Ky�����.��}A�5���ͭ����c�1#����
(`���h��M����V��܀�	v�?;�%�.|�m'��A��c -u+��H�W8L�����y�v����S�*����L�[�<!���t%�
w�ak�
�ɩ��G����Cm��Ac�C��M�>���������
��0P�À�|o�w��
�Le���AFĻ7��V绪�>-�r����
K^�e�Y�瀙�NaZ}��G#9��|��8�T�>��A��w�B-��I���7������g��-��s����~���?���? ��)�:aaN����U��Mx�@ћ�W?{�%��̖�>u�χS[9��ᑝtaƐ���3��n���b�����47��
N�M��p�K��F�h�t��Û��\΋g7����0�9�sk�/`��� U\� Ͳ<
���w�m�ڀ4j�wh�Ώgp�GؓI.A{C���rp�f#@;�ήc��6�(؛S�꭯��nu�L���s�ZrE��܂ZxFF����l�Ξ7��W�J��8��&/��O��~�/ Ѫ�@�k
�=�2[������`�����h�����ûXB�$r0Ŷ�Y�?^����wW�=XN���k���E;����{x�)Q���qjz*��8^���_��lT=�������
��ݵ����_~��瀘w* �B� �8�w����
�i\X��w�
WW�mN�[>
М�کx��E�@����]6ן����2�Ma8Sߘ�RZ �2-q�ީVg7�F{ɤ���󾣎P_����hu���ܧh��u���H^��^V�l
d�鿳�B��!^��ٍ'��p��
��z�W��_�dd�Z��%"fʋ4��fz����:#�ضZp&��k5FLJÈ�
V'ȥ�}a�2s��

������?�����r��m���H�-��r �'2 ���]��Ǐ�/����n
��f��V
��/��z*y/�n;�C�ws;TuZ�
�1�҄GN��L�5\S��a_�.��*!���f���
�3������
nٯ
�ŗ�/~�?��0P�� �����w���O���
�BG<�XM����0��~�!�ǂ�>�{��Y�{E��k�ev������2�Ш
'�5��ղ�l�������fQO����8٭�q�Z���e�{���/`
:TA:�a��r���e�t
�c�Z���G��>���_���j�/uV��>؀)ç�v����b��
�,<����٪��$��2�U��j�M���3aN�瞺�����Qu��,��}:�Rk�/@*�3�A2`�v�s�5n����`-	ea�����z:`K|,�zP
�ѱ�gl����IKk��Y'�Au����-#�Z�m��DU��J��{��TwP���\���n{������mW�݆�/��&` :t�W�`4�%��0*�� ���SX�Դ�[��P_�j��Z�a�p[�6�KÏ�����m�g�/���P�W�S�2
GQ��a���Q^t��q�'�;*���$O����3^�Z f
K�L;W���H�Yd�k�n���ۢ�}7Y [...]
�B�����\��Ԭ��;��~+���=mv���o��H��ّk�����5 at RQ�R�-r�MmÓ��L4>�j]@�#�;=��0�Ýac��b��fiߌ7���eG\O_�9U]J�k^�uX�"J3���E�>�2�V~	�[o
+
+ݵ�mݝ���m���m���6�
�/�hPdOU�	3��ʢ S���
I���,�2SGSk���)c2x���Y_��ᅧ�y,�:�S��b���W�"�h��j�4�!Z��u���/&0��wf��ἥ�#���-t/��_�^�^��s� kbkt*��Q��^Ư$����q at u��6n���{�kc4pf2�㤾ӂ���\�����D��\�3�գB�d�[��U��i�d�w�akbԨ�
+Өu�Q{���[p�VM��_�խH"l��0�'u߰�;����.�	8����
�L��:`jƇ�;��yli�N�S,it���)IKf�n�-
�K1�*��j�b�Y��{k_�sH~v�{�u�.6�f
��Y}�h�$�c��d���L���m�¿���
+��y_8������3�cޘfd$(��.JA߿ņz~e���q�ȟ����
D������n̏�l�Y;i�g
:��:12a}�u�������ɣɪ�njU�մ�G��\h���R���]P�u#�A��=�:h�1I��ͼa���X�/z�n�M6b��Ƽؙ
'-i}oi�l97
�jU������Q��		'6�\=�+l-�q������c��c(�Y���n��g����<��KC��s��{�z
?
\Fm<&�`u3���d�|�B�~�Ni+�|�}�2�h�DUf>B�~���zL��q�Cp��3��Y�y3��6A�)E)�:b��*Cd���%GU
�U/�kW�<��v	$�Iى�_l�R].r2+{OX_���f�0
�H�f��0)����wB�
�qG#x.ߧɵ�q�U_�+J�_�{�����0�7:U�7��Jq�
�|��O�Zi���^_I�qI<"�Nˣ�
_��t����a�/V`;Efg�z�^ӿZ�\�7�׌����˟�x̗g<l��͖�?D�(����T혢Yvp����F��F�q"��Q_�V�p,��e�A�ք2G
� [...]
+
��;�Rt�������=w{*�厕,O��X9�3r�
���� H+��C�ti^NҼN�{�J������b�-��1�ZXy)��PNc3n� ���r��J2ղ�dD�T�|�="Z��K�M��j[293{��c&��.i<���Jb"\�1�����J��b,���cF�w���ُ�>����M9��wv����raZX�l���N���2b*3�Wj
y��?��+�垾)gg���ހ�3r�t���)��D�������
+���!�-�gH|+-�i�!���
���V�!�)���'m
+�,*��B����HR ��ex&}��C^R �~ w'��"N��)Nƻ$N&%
+bq�k'N��Ė�8�;K��'F�	���dЬCr�
Qx�[}���?�8�k�/�8yw� !z�o��2I
�
C4�`�^��
�0օ��g
�ac
���
+�
+�$�)~�%{h�UoA�3���?C�1$���2����6���=e�e��ԋ��|��`��,�@�'
tL�@�&��
0҅�F�@���v�(5�4�<ri�<�.� �#m߇86@�p	�Q*�7��>�8��
ߋ ��
���N|o����
�c�<�_��z���� 
�0̈��ۧ�* �u�����0������G�
E P{	���9�ʢPα �
�%>KI8A�$& Z�J ��
�`
����*{|w����iN�?��pxR���^}�먞����9��em
+9��]
+�ԭ�z�piЅg����%���`�

+0
�Ĉ-����a
{� Ù5 at _ZY�zz$ =3Y���R�!������u{�'���vx�3��}�ނ[��i,�ݛ����ӄ����Gy���4���
+ P�	��KD���4}����B
+�
�
+��Z�-
�k=?�S'�o;��
�ۏW 
�W~=K?C9*��8��[�rh[��r7؟
���{��H�x��drq<aE��A��
��B��w�5J�Հa�;�|�>����%��= �����3%�y
֢�<Y��,���Ì����+�;;QNѫ�<#n8Gn��@��I�v��s������	`\�

+
+����/;�9N}5'�7�~��,�]��s
�H�@���AE��l�N/��CL��狮^��m���vmZ��*�Z�����֙\6akqɤ[۳�vN��J}�
+�
��:VS�L'�ѾUn,wm6��v��rs8
+�Ս����T6�w��H��?
���@��"H'�
F����N/{o=�wϊ��\�{���'u�r~񬭴ډ���Ǜ�i[���ۉ�=
4���cxحRQ�#�,
�o;G�쫀��g)?]ݚ�bU
.s�m��=�F36̺|���{�, �L�8�#,6��,�
2Yf�>����v`I�ZJֿ�?��餖��8�A�ᨽ'#�N���m��T|ͳ��˲7ti�\��0摱{,�L�{?����A��/��R���O����p��[�)/��_ �p��^�ZoJ =���Odf]�9<+����5�ix3�~���@��VͶ	��R����p����|
�o��E2�&
�-��ζ�}<#�݊���4��թs�l{,쭉c
�Uֿh��9� A��)|gH�
+2�L �m^}�'X/JнzG
��q=ۑ9g�S�B��.��;-���M�p`0s��f���l<��W�q.s�T� �_�őg�Hpl�
�g��x�D页!.=+ݝ����w�	cBä,0p����q ?��,]�~�q��n3��y��lq=٘|v��?��[���]�t�gE8*��Ӂ
���
{�ި�iyj���l�
�K~��V����0������XY��Ex���
@�)X8�S
+�#�}�Y��I�s�\���Se^.
ZdT٩̬���+�����=Q�vs��/nX������;Lj��!&�I�4�t)n����\o��;>&f.��
������ڠ�@�A��
k�����R��ܩ���
X4�9��6,�"�KB����6@��������g|�\Y~�&���
����
7�ᕏN�
�v=�?�M��혷��[1�V��i�;(
�cD�}�<^~�޻�(�޶��\ig|���D�?�^��
�J�� �l�����x$�WM�~�U��gd�n�y$��ۧ�R�'��G���{z=����	���X��Q�@���f�����5=j��L��,rt�S?h� ��V�L��kҤ�iR��դ6%�~�?�����v��c�ȝ��}r@�{�O��-�0�f4���IӪ.�[�=�+���gv��6�R	��`w7
N#
\s�Cc7��9֩��^njk�W�mK����*z�I)zf$*zՕ�K�J��t�����P���-UbА�	��߄�kۯ���h[y�f�zr�T�珟�4�
{�{œ�T����s�sT�ϣ�:���\�3�xc�ZZ�k�R7��a�𫎹�'p,f��<d�u��^��~�[��R�$��b�0r�o��.g)��-.>V3�y������u�ق��(߁��#+�f��g��b5��c�Cu���"���+�P�
ӹ�KQ�{����� ���Ȇ�4U5Uz�����4Y
_��_~���Ms����y@`��?����
\oK<3��\��^�Rʙ��ՉF�QV��f�΀�:�~����krx��F��
��b�2b���)Jo��h/2m��j;Wl�ě�>�k�f����N�%�R{��
m����2��.v|Q�{�^�dž1��Xz��m�ur'��N�4�����#�7�R6���r��%8��W5x5�J1];�l��wo'z� �3���Ū]���NK�W.-��?<$JkIJ�%�H�� ݸ��?�����h��.�I��L�F�
Ӻ����`��݄�5_#�SHsXg�A�u����
+UCϴo�7���>�wj��I���*"��u@?U�����m[M3,���+7���4�7�͇x�j����>������
V��c��X$?��l��B�%��qw��-z6�
��
7b}G�1��Ђ
��ts5�2��-��h)	��^��UP_�7�
5BS��)5
UJh��=������"7]<;�tt���h�n��^��f�/���%`����X!�!����yZs��/�
m͋YX�����x��Kk���b�~��l$MF��ٖ��T$����#o���&fP.V�B=����p��%�kkX�j���R��H���@����V}
z�/.�Fc�E��k���;�su����F_��2hqm��t��Vf�QR�ܲ=Э
��<?�a��E�
5��
��F��9p�{�/��V���\+W��Ǫ���f��f�a�94�6��H�)�."�k�%-����8��m��7����?N�B������
����eҙ�RM����1��	�YJ�"j� '���#��vd�
�$�8a�/�#��%�V��ӟ��
ZT��c��7�\�v��
+�Յ��![����ti�b��ְ)_"�yϨ]
��=���z;x��e/S��B5�c�.#�Xr�V���4_�� C6�@<��o:�X�i��

~œ,q��s�o�ʤ�-�_+S*O
aQ�v�L	�
��^�?D	�|ѻ
+|QT��/6̅}.TF�Mk��qܽ^v��!��u��Lu����`

+F<'F=�h[���i{��
|W�t�P`�!^�FŢTy�8�R_)N��
oK^��,a6G�T�,�vژގ�	�-���Tyj�!xJS�M*�[5~�m�/nuy<M�)��a7��	�se4
��ںX�k�5Zr�S�g�1��z�w~�=��ʔ���o��ȲG��U+v�;��y�
u8�
�*�+
��Pjs��u���ՙ��և���*���)67��Z��o�/f%���X�Ls�o�D��PF��H��ZV
�s�t��M��]�J)�,Pꢴr'ۢ�MOE�px���
�h�.
��}&�(>
5��1�^[
�wf=Mә��餷��Oo'~!�7X+�ݳ_Nw�E���k
�"����6�8��l�c��ƍ�oQ
+S

b)y���:ߥ��7
��PA��<���9.��,O�WR,�������1�&?�BJ"�7�L3�~	2n�>�W�N
�.�����f������f������L�؄P�a�kմ*�b��:V���j�q{��9ݱ��
J�K�����0�p��
+�M�˻K��M�ac
��3D��"�w�
�_˶!��]�
+�Q��E�FIF�&���n�0���Z
N�3i�����'����+Δi�;����Ȫd��+l�H�:�2�G�M�M�I��+����.�rź��UZ�HdaA>s�gZ�Y�����@�
�uf�X�?�p��sn��j�w� )2	@8
�c� 1L��������IN/ǟ㚏?NJ�?rw
+���]�i�"���r񧙃�5;�Y�a.C���W&�G�����_�u:�h$�R�6�4�
��|i}��#�0�:
s�]�����y��w��z���z�8���q�ab�0� N��,���=D}B�x�9�(H����]�?�����'��S�~
����#��g���o̜����҅�cߍ��C�@�fP�Q�� *\R �G0�uDd at s )u�o��V
��ߙ�d�!'���ʐ]3Nl�;��!�.�ġ�7��i����u>��^���"I�bl��,nΌ�"�����/ 	
����..0��w��K� 

��v
����L� q{>@��+@�
,*�� 9� �ʶ!"���X�|��3�0$�\�_ 1
+�eb�sl�ӣ���:G�y�V��~
_�SK�+��
��3������e��9�f�;����������t��� P��h}�(}/�X�ϒ�U�zIܸ�a��ȗ��&��ޙ�
y�����p���q��3�lSè֍��7y^�/�!4\�L��qa�������=
�:���u�,���+���	`-�s_�oȷ�=�_�õ��$��<n��'�͎
�ee�(��~��>��ȞT�fSo\1�P.Rgl��Bqpگ�qҤk�X���A]s�?�����1�(�k]
��ȕ��� ��u���	�
e�V���U�ӏ��b�h���Y
�F\�o3�o<V�_=�6�!�ؼ1��[��%u<��[�F��A�X�7����}��i{
[(�d=R��{��>|;����!0���D�Mb��vl@\��-��^�Ÿ��������q�����S�%��
+�WO�+�C�IG3
�ýY�Jf��w{��{D#��M�n��1s�����Tv�uq,�������%�
��������8
��)n�^.�q��j��d�En�6���?=��͉���]y��]7������[�Aq��v��&�	�
>P}�357��f��p�
t���� vYk�^�u���\\�)�5��3���ϵ����� �� qab��H�
�����2/<ͭՊx�(\�G�s*����Dg�Q`����qK�������
��f�ê@�Fu��|�� G��CW�\j4Z|��բu(E���V�uJt5�-���C��K��SƄ�=���/ �k�0�=R�R���H��ڻ0��69�7F�E�ĥ�}#ւV�wiw2��Mu��<��j��¥S=�YYK
ΧX���)�eg]���U��|n�L�F��
�AƎ0�a32Ǖ؃i��JT7�[v�f� ?��Iy���t�����
�[[M�kdž��s���,n�s��lPu5�ݑ���X,��v.����b9W��i����e�):�Z��h O��|8���j܌N�H$���ͦ�

+q5Sa�3���_��4a�"~�01��}*R����n��\��`D��[m��n�̍Y��}�C'Xo�ٯ�Y�ӗ�ӱ�w�3�b���k���1V�1R��]F���-���핚����9�
�
�78���q=0���������y
$�C����.�%
5�0Xl��9���
��hS���2�k%SH~N6֪ۗy˹M^S�&��Ic�9�[Z�:j��:U�0U*.
{d�)׮`��s��'�\"��~-�b~���{m���T�ѿ �y�Ii����ͼϔw9��ߧ���Vo���˩v^qF5��z*?���K?y�a���$.O&�=�;��HbЭ�����[��!5�'ƭ f���X����k�۾>�7}��7Szk��}at����u�p�~������a����LF9���n�-�k��
ߛ�����_s�ܒnq�W
��d�Z�;�Lk�zLM�⮆t[��$�?���{� ���C��
�4�.*j'�zjfbjf?����]�R���V3
��
X4H��e�bn�Y<첄�o��g�z���������w��q�p&N�8����1>nt,e�6�a<�
33�O���N�:�k딑�[d�U��	��˧
ʊn��K�.-�+����O���:����/@����{���Y�`���?�������V�9_dz��I�˴z�"��y*���Z���
 [...]
+����(s5OP��C+)=x�P'����C4���W
ac���+R����e&�m�4���%�߇#��A�
+�
뱝��f�j��_^'f���
7e[��}GI=��\4
?��0#�չ\��q��Z��&Js]؅��ꩵ?���f�n
�]G9.��`�S�s	6�s�����E�>�B
��9�K��s��e�>�i

�v�x��m�~je#;ֵIo4����ޝ��ג�JO�]w�5���C%/��ڒw��dc�l
���C�C��k���Q��V\��Nu���Ԥ°P#�%��g�-�8�v
�<�9�!+$W���/Bfs�����\|J��	����40�퉫3d2��[g]�p�v���}y�ϥe68��s���k�J�<o��Js|m�
�Ou8�,
�b�rk�����}��2�f�,�'D\U�#�U������l�J�p�Jw��_�7i�����"����'Y�}�83�u�b{���@���*��&
+����!Zg���N��|h�W�mTq�cU�
ڧ�u¤Z�̤��9�6a�qk]
��Q��<�J�p�Go</?���\SL��s�Ҵ�M��m�?����p.�[��Z���Q�YZt�������
+C�יZ����-��
ΫimNx��Z�u9;8֔����gB�c���.���G���R��<��R|[
K<�NJ�c����=ӏ��2H�k�Lђ/t�Y��jnz�ى_��yn���3���
�Pk¡�UQۙd)��8�b�g�����+��Wjr}Z~��]yz�D������ϕP�g���[�}�aљp����M�>�b����p�
o��%E�f��O�
�t
��"k�3
R�h��`~dڎ�=���[�zm�y�������i�0E��
�T��׷�O++��yfRz3�S�,�C?*�
����|��v�{���Ə��}I�cvZl�$!
r.6���#$?�0��X&��п�Ӊ/��ݖ�<7WW+���vBC
�/���2b=풵�5�J%�����T�J崐�N�=Xe��MM'�f�+�3�����̪�$�.�M'�]!`�$^��������5�W�9"�eU"���D�SD��p�_t�_L$8X
F�}�K_�v��o�(i�9�J�Oy�.�U�*_)Jޒ.
�ͱ�s.�\�DR,��zT0�['m�I�u`��� �U�'
I9����W�;
c��:&�#�=0������wF�Q��i��O#��4+���	�k��&c�ߜ
+�.{l6�r��Y�<Yt�"ݲ$�.�T�\L��w%��(�C�mE�!�̾���E�#�Crv�)m �+³����
��5������� �Y##�XY��c�#1SR��4����
}�]n>�:�O������L)m�d����eS�c�."Q����"1iȬ
	XH��0��o�UG�{��
 ���~ڊ����gY��,���"Nx�
'��#N.�g��<�z����1xO`I����c`����6�tא�)B�P�MB��b�`!�d�F;mC��H�7Ā����G���
+�žпIf� �R�`�q����?�u
�=��N��'e�1��Z
�
��u���^ ���.7��s1���Q�Lڐ�
�;�@�a

���<S������Q�?�2�
a��
�S0P�~Ġ_ Ic/m
�6�q���o�!��w�7́���ө�  9��O��C��Մ
���d
��~�U��5/��^q���>+_�/_	�����F� ��w�<��Y8e�a�0�ׅ8�`�w>y��q���qœ�q��qR�`�)ܐ8��s�T�����qRgu�9�<�1�"�wJ2�gPq��1��{�<hWg���v�4E�>LX�/���iF դ/�;���(˔�� 2�5�t�	@ʍ@�� Y$��C��ŞJ����a�N�e��?A=*���(�*��
+�+**��ߴ���}�q#:~���aK�
����y���>��7y2ډ}�ϧ�୦�J��>;]޷�*_�\��HڏF�S?��
 wz/�v/Ċ�/@�c�N��
�
h���[�� �j�m��a֯I��R���k�6��:<�W�����O,/��=JW�{��nq&�n��{z}��eq=zW6�|����L�%p�ǻ�s-�
Z��ګ;���rX#ԏ�Z8X���4�r�4۲ ��ď4Os��r=�&�a�
P�E�`�~�G�Y׺=���@�C�8c���Z�K>w��i��9��
r�f��Q���A�0k?_��p8�涟B��͖��`*,�&�������
+�
7OKH�E�g� ��-�	h����<�]Os|��m\�~Gz�kZ0���9�i�O򫣄3�C'?���P���b��v���v�g��.	a�%r2XS��C�߄�%]K�ge5C�5��UO�ي���%�(�����!�R+\�u�σ�!�[q�
)��k�s���̋]�&
+�>W�vPg�$|�'����֣Z�`3��|��?�e����q5�>
ۥus�k�����:���^��K�����s�w�����]�&���/��嬲[��!͞�8�M27!��l�pT,�����Y"�\薖
͇��L|���à���0
��󨭯���ҋ����������X˸��Yr�����R
�)�(Yۣq0��Z�
��5}�k�X�����/��'�?�1�W�)�P���\��K8/�\�s<h�p�-	�0�Fa#����F�g<g���;&;�3�ˮ�e����K�bU���)�[�ř
T����ږ�c����=��0xT���Na��ex>.AYu5��� ���p��p�M�Y�����Z��
�`��^��s���u�B�->Du	�
+]g��p�y���eٔJ����pϸ��N��>��D�����S1Z�l�0VW���3�Q�f���+aA�}�*\$d��J|�c���C��� �~�{
�tO���9��;�2�-U
j�^����q�P��r'�=���p�Vm�ƽ���g�<�@#��c5':�A%���0/!%䃊R�$Y*q�t�'Gi6xe�N>���o��-j�>���3���u���y%����{/��F���T��
�uW�i˷i�.�^��ʊ�L�^)/�򻫛k
�
�#�FOP)(�ζ���+��ǗO��,E��S�
y�O��³pd�[m��?y����x''�|_�	?2��~��k��
Q��m��l`o�s���~(��'�uT7_m.�*�9��]N
C�t�j4�+�7P�s�����(���ey��*I���L(�S��;#�!o���2X6�
��a�/vzt���K�n���/�k��Ͼf&�?�1m����-˜;u��]�7�9�G���ob�É�x>u�4��C��d%'Ҽ���l�z�,
��n�E'v�*���[f*}����C

Ӈ���%��{�������H�o6^=
�
������(QC�k&�k)bm~8a͙��Ƴ�:T��s�l�g�~+*�p֐n�h �
.X�;Ż��ĭ,d�,ݗ�
ג��XUc�,�
T�:�W�� �z�
+��//�u����K��\s_Wb���_
�
��k�{�d�\�$�^�2�fTzO
��VtȬxs*[9����Ki*6,i�*"�B��\���	�,DŽ}T����C]��
y+���"�@��&I�4�$�0��'I��N��0���cjX��/z�%QA	�!~�~c�-�>�]�ٗ�����sc�:�9��Lx��C�5XŒΓ�M�]��{�S�#���-�(N�rE���o��ů��qy��䐉�OP�Dy�"���Hd�̑ ��� ��'�-�s��
���Y��]
����[,��r�TZM���&����0u�m03��2�C�4�a�m�~�:�����`�
Z�+(�-\'� s�'�킳r�G��8.��c��:^��,^V��ٮ__
x���
�_n�#�|�r�p׫�23=ӥ��f)��lX�
+��;��*�L�
�P��z�x�9p~
�Ynff��-Q�e�Aȵ?Ec���!`���E�s�
+��#����W�q ����dC}L�;�f�Q-�nq�2�s����r\9
t�,��f�/�d+k���Vھ4��
2�s����ŕ+��9҅��W̖pnj#��d�]���
���Uz(������4@�s���l	�.�
�{1�#"�~ʌ�h7`n�����}:������~�cY�K��G$5\[��I�'j��3�	s2r3:�;
�A�i�>oپ�M�͏�
]��=�
Ig
�:|�A�T{����������C��-
��q�
��(
�D�>X��`Y�\��8/�B�f��
�{a�ŹVh�DE��H�3��̴�w�2JE��jf�6Mc�;k�G����1.$�g���k5�@+
ԬN���!
&��ۧT���ƏL�]�H��O�
K�q�|�̢Wk�
�i�M�
9�ZGv���åy�K�N�:;I^B��q�'B��~c�g�-�dpؘ�_�#�+��"�|�6k�~`�!Tb$Q���G+��Y9���Q�$U�^U�]1v��)�;Jz�w��tڄtk_A�Ծn� �|����
6

�*fK��Ұ��b^�Lf�`�q<���A�p�^̛�ٍ/�OYk����#�'"xN4�
em�=
+�ݣ_��LO��*]y��:�Ә�﫩�����n�l��B+�v
���f*ۗ��f.�Ѽn������7rK��Y<{
G�{]�nϒ0�>
3C
+���V��'���(Ju
+�
��{}�������n��_w�Fd�	����}Po~��9�a|cu_9���
Ճ��V�ߝy�
/��C;�v����vH����jX
*��I�lΔ>��!�\��)	Y6���.j��A)��;7��i.�F����*����o�k�lȽ�7
+r߭oQ-����^��lM��ZՓ|#�2&�h��WT�P��dY�t"{[��ھ|�J��v�a7'Cp�i2�*�
��>SWf%wɐ�`O���
A1��쇍{��ѕL��RImo��JwB���R(�> %��^���P�tjQ�
6~�3�ߋˆ�i�W�:!�֜�*��AZ(�訐�M!?�������}t�
#=��yŏLɮ��)͓�!G�E�>B�}����Z���pc�
+��zn_��!��Ŭ�x6�R�P�4����ay��R�޽��>DmXм0wz>���\k�C��Q�f�嘉�^)cU
z�3���ΙQg���Zq�t�ᮮ����7�0cq3!��
�N�N����B}�52��흖���,
+�{�B.2���s�ִ�k�
�ղ�,e�TX����;�
� ���
���# ��$�
�R�a�����x����
���
+�nyn|�$8_F�jԓI���or�v��@r���*�����='ǥ${S�B�qX� {����� .ChԭN 4��Ш���=t��|�������X��E��FXgHҿ*�B�>h�K
+D�F
:Jb�'?��V�}j�q\*��l&�%�	\�^�����R:9��K'��*���|���Um{���x�+�/}��b=?A�F��������K�#���C at g����6y�m���C���%I��4I�I!I2A��>n:�[��
�ŀ�;I�
���D�v�$�*��%	�� ���d
+��>
��0��3�@�M&�
�5�S&�R�'i{�M��	�|�DG(�,T��Ib``~
@��+I���e���$2<���4�Vt�����v|�>����	S����	�s�c�h Ѐ��H�Q�� yO
+��]'
Izv@�A������,�$e��w]X�� }e��$�	@�Ve�
|��" u
+H�$�ۗ�oO���-��>�r�{����/~��$��>�Pc�h[�@��i���$y�r��=E��{h��;��w��
+�>$����߀]>y�2���6X�L�5|Md|�э���U,�j�|�nW���4s�n[�k���E
+M�}
+�-���Ki�����om�@d��V�&�8H>��4�d��P�f�I��+��wOzz�<K��������Zi��h
+qc�u�m`��(fo=�fG�_����di����7�s�k�����?��n��:��i�r�����5�i�J?�L6�	�4R��/r��<˝����r��n଼w���M�J���i\�ю#{3|G#��/˝T��c�~f�s�G��o��غ�z�x���C���6��6%>���֓�����4�f�4sm��o1�4f�/*=V�ټ�~sp}� <r�)s�9�	R�\���J�
�Y�x���u�j�}�|?ԗxy�ʩ��y.0[|�yL�/~�[>6쑏ׇf����m-l
�u�I�?��Os~�wi�XڤYY9�����f���6i�Y�o� �b
��L�J������b�Ⱦ7v'�1؝�f�O�`m���:X��]���OO3O����6
C�ׇ���C��n�.�>v��p��]+�\]�DΧV?��q�O�h/ ��4W۝�� s1�u��1be [...]
<�~�^/}\��q>q�u��
+�����D{�p7V��7��Y]�pe\L~*��Z~z�r��p
~G�o��4׷v��xY]�#5�P��������a�~�	�7�R��2w/�T2jz��7X��
�:#�u!�S
�]؛�ֳ
ZZ���wE��҅L�&��~Jm;Fg�?�z-�hO98}9jf���ؿ�.����U����*�맃p��������fw�!��>W"����{/^���!O*e�^M�(_��������YY����PW��~O3}��
��
Jf�9�z��=:{F:��&-�~�w��Q~��!�>�� ���f�:ιZ���C���Sr����=��G�|i7�7+x';h;/�;)9�1
Vm�ZKc�6���u��Vn��c�d�+���r
���Rvt��T³,�6��/�(�-y/�}=��m�
��mRx�`]���	:&%W�e�5���s���t�K��I*�C
+�
+oݝ�l�W�v���#8�5{b��kѝg5	S�29��;FT�,��ǂ��
�K����%�
+HU�qyV0
�'
�������K���C�#Va�e��sX��p��Š<c�Ztp�̿�Kh�NA[1��]�BE��N���s
A*�,g�	5��
+
��!I�`OK
�$�}�n	����y�>� sK� 8��v�ll�_v_@��;�l�������g�S#��M%6�Iy���/3Ю�nþy��'�.9Vt3��>��͹t�m�G��&'�]�-%�!�D�<
+&�N��y
��G��x'��	
�
Ø�)ӁI�ˍݗ�)3C�����)
U.�1�x���0��vx�]%G-�&�;���[u�e/���H��e���ҹ�fVq��|F����H�/݂`�+u��3=�s��{���fL��vh�98��ԉUS��hu���h�c at 5���������
+j
�<_X�N͝��т�^�r�x
�ḷ�eȪ�u��|u^|�c�2ԕ�{��ʂ�^�
+�K!���8ǭP�����f�
e*�1��!Q-�2I�;�q����]s:`��t�i���T�-�_V?�w��!�"��
J���]dz�U���{�RNI�q�m��:6�J���SK�T��H���jg+`��/�1�G�[�Ѡ��T�X�nT�]��o�d������0�'��sL��F��L�
}� �$ y�{���=�����N�}T�U�bp[#�:�ﱱ`/���?�f��l*M$¥{5'���`
+P=Zs��۳
%\~�'���rԬ[��Z#۞.J	:�s	
ڌ�Jd���8������j	��������
�Q�捧j�6��Y�0��y�����%DpV����<�G��;��I^����ԏ١����'xs�*�.[�P}�NT�cR�_?��9�O�Ю�͢?^��q!{��R��#~������ǎ>�cGk�
U_�ըz��#�����N~�����y�iw.ʒ������Š�#�T�i�*Yϋ��P2�W���
+����N�nq�7���|�&o�O&���ۂD�9��
W����<>�E
k
�&�6K�9���h�N�Yn<��9.:
=�/�ᳶ�R׹�Zԗ�[�
�����;oe<;��mݟa
�
ˡ�#�}�V1G��J�gg��`�yG���q�4}�+QՏ�&�ڎP��"dh��*'�!��A?��MZ���XCTֽ!J���4U�/wCu}q1�=������ /�;�=\����:�y���RJ^���w��a
+zJ��͉�Z��q`�K<԰��h/�e�x�7� !�\&b�7�d:�%���������j��7��*���Y��O�,�7���'�w��^�]�ϫV+N�=�ٱ���Dڶ�piHĞ&�\�T�����r8.?
+�}��˛���W�>Ά�9�DCg� =�!�*9������Ǽ$���n+p�Џnme�:����
Ӊ�9F��9n��_��<��ǰ�IG��w`��+��e��[��&�~���
�ͻr��Q
5�&���$�`��2tE�
f.�z ���>=8�{\;�t:T휭&�i}$�='
N���8p�?p+f'���~��������r�K�Dž9?��z�5�fR$Ң�K#�>�H��(�9��F��|f��� �f��ҭ��R��H/\��
/�f��ou�mbәi��}{��v��-�ȵ����6��Qo,C�� �� ���
���t���\���ç=�nP�i�@P��ނ�G
��P��3m"�$%�vL�!aCq���Ƕ>��g
Z披�Щ�o���iӉp��;΢�����d]8��u�0J�T���v�ΨVY�J���U$�Ua�����5*��@�����hpv���XH
C+X�L�+
+���6���M�J�c�Ϭ�@��L��z��c���걙\��y�Qm�R�r��ʬVB+�Ӕ.�L_-kt�+�K©�g2���vJȰ����+��0S��o��m7�س��MF�
S�f���y�ڌ%a�?h����dS�{����#�	���g�J
+�k=��C��
�%$��ɠ����s���>�Sֳ�/�:]xW^L�]%+�l,.a������[�+j�;X�EN
��F����j��
z_������

��?�QU���
��I	G�1�
Wn�ܽ�[PkT@�r�;W:�0,:v��������a��{���
t�ܨ�'���2�p�
h���k�
!��
+��C�8�AȂe �D��3�

�*�D���PmS?CC�-{O=���;�����V'�\�,haj���Z
�ɩ���{8�˻\�m�g�ڀ��;� �k�!o*��}
B1�P��Ch :�#M�E};c+-
���wc�._���/��ϸ��d�~���Ɛ����vt��̥.T�?�g	�ڷ|0��p


3�c���T�BXmt��\��]JMz6�?
6(W!L���S������a��m�����J���1�#���n7D��4iЇ���c�бa�[��>*�r�S$���C�5)�B��
B�	�����n� _,Z������Ѷ��}����m�D�
@����
�����7�_<7y�T;I7��$ox�$xl%��N�$!��Kl{I2�M ���ON�+�4�|��C�a���A�P
+��-M�����*�~��?J���
�܃@y�J�9j��T� �����x7a=Л 8h X�z�-/; ���ߥLW���8�5�wH�Xu��'�N����h��:�WVf��uk�����!��
��Sz�0o��q��'驫�hQ����6I�M�M� P�
+8��3鐀���Z� �ݿ7�������0I�5>�+���y���
%=��p�nb.��q�N��hr���{H>��
+�s�vZ$�P����,�U��q��r.IۧƷ�\�!I
+� ��4S2{5\%P
۾f||����Y�OF��qx��V[���V8�ʹ�|���e�D߇�lg��~�r���3�K�t����|���|�E������������Dz&��)����V�k�W��$��O�}��H��҈�E޽˜�����"���}�u���UW�P���ʑ�=D�M�3�4����
�Op�������_����t�j���C�����

:v��^^��薼�%5��I�~^���vп��^����D��:�^2/�<�,�;�/8���xܝ���p�@�A5�[+-�n��[�5��
�Yc���C��_��� V#���y`��{�6!��������v`�(�w_����ř�+�r��>
�������-�S��¤�3?������^\mG��,_q
�Fm�'�WlS�[���Uӯ��Z|�^gw�8_~'����b�f*��f��y�Q�6�N&��&�9ֺ���>o���(4��}���힟�u6��6S���_���Y�6�w��T���Y^]�ə����z�bo'O=6R����k�c��dXNF�
{�-6J�
���_��v@\��f��zV�T�
�+�_�XyJG�����J��~:ۺZn䋹p�{��k�ɽW�L=����U�K�k!n&�峜�)��3�
����[{��n�S
ViBL�ű��
޶
�Ę_F[
�f�k�_1�M=Z�.s
+ߗ�S~����a�.�d�Y}����F �O>��
�o���y�
�*V��:C��:�Ԭe
a!MW�q	��1c['�v0 ���Q
�n�98̬9��.��2p�?������,�_ސ9��˯)>����A+�v��>/vV*̍�&1�\���������c
ͽ��'[|/�w	6ԁV�����7��5��$�|����R�~{�O�9�`㶲%��R>w�^��_4Yhg�_�?�Y��>�PA�riQ�{���6�́=��rݚUK�n
k��

x�e,�����C�5��#�c�q���CC��g�f��<�Duƣތ2Ms�R����
“N��"�Q��
��]�2���h_�/��H�f{u�s�q:
V��]�_���j���$w,��5R�K�m�6O��$��M24�$�~�{�Cuu$����?g�LR��VQGݦt�pD�Z�T�~I0��ſ�t�[�����لsŒƍY����E���n“�����s����0^����2�O�z��VX>el[5z�'�%a��/岪���=c�F���A���U��k�x#V9�g�*��]u@�j=8�F���`��.&�GҔ��cJ�L���9���K��c"��d-h�0�1~�v½���w�s�a�i
����O���9)j��ڛ��
9�V6��_
C���R�Г@Ԗ���ؠ�v[o��h�lT��dC�@�):��gtu�H�T#��T�]�~`0A�/���P򿈣i�wjw�#*��Z�h�0�S��f���g�k�<�T�ޚU28.����IWu�k���IT6���C��^#.'��lav�2e!(Ӽ�RR�dW%�Cs�T
�h�^�i_�
+���E�jǜ�E����!`)�� ����VwW�]�~X��X7t�kP���bހ�t����oW{��
}I��w58/r
v[[l'�R�t
��)����JH�xz7����yfM"5��`V�pF,
�/"�����7�\��p.��Έ��#�;4��V��io������R��tU�E� ��`���W
��#Ee��b*����^H)p;"�O�5՟���v�Ļ���3c/
+�1�����sX�7�
+=�28_�p��A�����>�Ж{�����)��xd��|��>J���H��.��#��^�[g��4�
z-

c��u���L
�r��
�;������xڄz8])OG;�QG\�U�OeT��ԨօW#���F;
�/.��3w9�#���{#�
+��1

j�YX������8�pk�N��XW�о
裗L������N��5I����,;"�h�x/R����wߴ`�XXc�WP��Ѷ�̣miN���-|���3�}a�p���"`�?7
:�f��!�v/+������#W(������A�:H��&�6y�������$�myq3�ȑ�=&�|�3+�8�m$�$o�E//���>����pa1����B����㇏��a���"�4�/��y�9�5~�>N�]k�'���
�e�)I�]H92j��5�Q���J��g�r���yv��F&c?�p�"��@�Z�;�Q}X^b�CU�vEt��
>o�� =	��:q�F�}O�>�I��7]�}oh�HtS��C��l݃I��G�)�ѬNj��(�X(	�k�f�q�<}Ʌ`2����)�c+�ǥʦ�sb���ٝ���T@���
�62��7CKNO��z�Wr1߇�T��ѽ-�ݙ
��a�G�+�]R��3�E���h��.)
6y�~�b��Լ�,�R��%
֊)��g#b��&_��?���،ަ�-|QM�t��K� [...]
+���tM+���t�=�����}UL�u��GN�0��f3W-{��
G�&4�D��-4����0�BаY�BC�à����yYBC߈�a0m@�h�A�k-��!	^ޕ�`���w2�7�,f�U��r�	�}��Kzz�wzs�� ��rI��b:˭�%8�C�kg泳	
��~u $��BHE8A��!��g��d׬Aȭ�Bh) tD/!����*�η
�.�>�zvB�	B� B7�����U���Pt�M��A�C����
���m�z�t
�c1� [x���Y��� ��v!D
�!$���h�
!��"�G	X����T��:?�01�@�agA��|�F5�;t�6�VG�k��y �0��o`����-|���j8̿��N�g
��M�:���}����!ӗ����	i���R�g3��-CX���S�Ŗ�4�j�!�R�ߣm���	�~���@�ID�!A�%�߱Z-h����U��d񯊢�V��Q�$�Ep0�d���{��o��l�����
 �p}%	Y� ƥ�Ѷ�"�_�d��m����v�������/�5�H޹���뷔��i�5�σM���C ��
<�UB�`���% �
VN ���&v��K�����J���\'��D�us<��������?�#�A���䭩 P��hal�b̏��Q_6����o

�u at p9���j���;��^�qh;�,����e�����#h}n��H㰏�1��[�#V���˷��^�[{s���$��K�[���$=�H�ςm{� [...]
�\��s6ݹ'�GF��C���)�
�B�a'�՝��`��j�/2���c���GQEm�Lޟ���� naB��ׄ�W�
+���elw��M�
�����|�tg�5��?�qkk��ޓ�C
�{�^0at[K��=�����vlxؾJ(pan�On.��s���Q4���_Tvm������<���y>:�*�w�䃙�g)��oW�!EVa6?��u�
j���K��j��xWKv�j7���r�N�f0f�~��lpjD���Ҧ��AƷ+���������Z˛�^���b�.ٌ�x3�/Rh�TRh�`ný6mp�I�!7���xw�穀�
�=��!��vT~�1���B�
n
��y
}�N%.��B��E5��ud����o|�_i�I�3٨��ғiN����U;��� �,��K��_���SH��g�?`�hxC�~%m
��V�p�r��ϖJ����6[�4Y�kmi�B�
��q��@�B׌�������� c��a�����W�}�(6psנ9�2���pmu����w2��	�
�9͊�_��LMI3]D�
���|.���緪�O���f+��DZ�9�����Z+�7Ƴ�bOu۴�W�2w��ά�y!n��AC�����~�5�|C
�GQ�hCn-��s�w瘹����5[׮�,/��J�2&_�����
N����/k�=�k����I��f�2��1�{�����
�`��m���>6y��/�}H5ff��5��֞�r�!H�2���ceu�bKj6�[3r�aJ��Y��or�kU��dq��	qf'�/������f�����*���^�
�a;aE��������D�r_�Y���6k�n͈擡�����,�
Q�T��,5�g�3�.�?�����Rէ,�ܜt�|�.�j�2�25�V�O�T�Q�A�ԟ�9�fF��
�@yV���j��~��1GU�?�j>��ܷ��ؔW��{W8.ZM�������3�1��ʋ�������.
׫-�{/_jI�^T#й���TH�"����
��i�����{E��р�69���
�e�E���hh�٥��ٝ� ��F��Z&��d��15 [...]
+z�RI
ʇ7��W���=e&��SC0T��_:�ޗ���]	Z���A��K��	m���-�:�Ԅq�G52��
F�c
�2��'�ĝ�V=	
+�l��Yݦ~�]ʷ�U�k��[PG
�ku*�Y��^J����
�i�7.�	)O�xl�Q�e#o����0l���+����\�S�\�D5(�G*����jU}:?g�ӞrmM{3��~A�� ~�r{�L��]_H?�����-�t�2h�f���l�����J	�F(7����iJ9���2
���	'
1Y2,I�2,
nf6]}�6�4�O�
Y<�7生�
Pk�@F�8k�b�X<��� �Pž�ȗ!a���?\GT	-u1�H��,
h޶��Y��/��yn�p�,�(s
D�r��*��G�>X���:,�"0���Hz�G8��gT�ELr�@VS-ꄓg��OQ���S/��јI_��__U�
+�Z�_�\�����N"�PWvc���;�����c�����H�c��w{)�.
�9#<ޙ0{γ��	��=���VR�c�S�V�!��T��b�O�Qn	�X�O���E O�}�����AFl9'���0���|T�{���K�<��h�3����cy���Ī�"��Lw�\�OT'�֓�J(</#���"��|
+[fWCn��3ԙ�jT������=9��G���Jd&�b<�5���O�].z�*X��	Kj��AC���l��r�.��3
~������/dze�~���4-"6Ww����բ�ޥyq��3Dj�EW����[S���L^���,�C�jN��<$܀ٲ���0.�4M�ݒ]b��b�����F�(�A�o�D�
�O%���"�C��w~��ub�4��e��QK԰��.
X��Mx=�[�Tܚt�
h�<��E�
'�ȉ��w�D>S
��J�"�����/U8L��"�@&��w�
��pQ02��}����?r��/K�L�����O��
`�@_:��1��_7��{olq���y^�rҭ����]﹠��vmADI0�JΠ(����Ŝ#��hϹ���y�?���S���s0���b�P����{�
��_��}�U��^]P�S�uižGEy'�y��T�u;U��s_��+�=$�aaǍ��'
Q��
1�M�;�Y@��a��1ͦ�1â�
�V�)�V��żvh�&ҭ_��U�EfK�l� 9"�<��Io^���R��l���7���F������"y�l������7�
b[$�/�����&��!�~�V��c���,]?��M�ۘ�-m�ڍ\�ڵk$�O����ӟ�1�φ> �W�S��d��R��O�|�.t	+�9�=���
Q�M;��oG���A�e�x��B\x�a
�gv�
+2�U�
+cM
��"~���pFQ�ԙl�4�'��/��o�7��U¯T(���	�����i�D�^���=�L����
ᜫ�-.J�� ���u��6np���j��2yR
��W�����J6
Q�|
�Z��&/�V&;o�F�Kl�g�]�pP��!]�
�.���)?��$?
i2?��D~ꤋ�`
m�րD�Ii����̓��2�~�T~grKպ��m+��
q���I^7�⋮����pTT'ϤR*�t�\�
(��l� ��TE����g·�[im�c��sp��v)#�o��^xn�ˑ�=���nu)��`�
���[�%�15��
?��*Ϧ*=�h5��
+��d��B��B�_/�����푍�a+w�\���s���g���#�)��,KD�6�˙^3�TJ�j
��%{L�y6��N)
��)�^��i�u���rF��hX���ng���Z�I��%�K�(
������NРG��Bq􃐷��-L���23�
�z�U��.2[g;	�	R��k��dnHF�xoH�
����&����OO�Pmѩ}VoB���	Շ�d����>
�
��_t���ٽQ����j�
��>��Zd��(�wGv�x�(n�����y��^jf�����:TE��U*V{68���[�l�0�]'� ���	,`c��� �\ �� �L���	p�.��N�ڵ1Rot
��K�T}B�Ei��-'�ӗ���
��ګB��1
+�ٽ6Q��8���V�n�
�-��r˃�s���1MmO��+�
�=IHַ;9~� ��o�_�d�W
�7������u����y�eG
�T�ի|��0�~/e8����i_�j�y�S���>��A��&� �B%V=$;xP- �6x ��c�\a�81u�5q �@�x�q�π�A
@�> �vM ��-���+���-��G[
.���ܪbt��\Z�#Z���<g��0W�k~5�6ٻ@O����(�׉�Bw�"���b �dġ:�ꤟ��� I�H�F*Y.�q #-	�:� ٿ�@�N
@��$������O!�o%+.�_�Z�|�\�2��+(�g{餶$��앷��c��V��F���Z�mԢ��m�K�3x�G��z�K�ȝ i�F���
�m���GO�>��ˤ�>�l�E�@�����߀ύ��?Ӿ�WV,�	��ۑ�&�㸔I}%��O���[	�_����Z��x&�g&h�� {~�����
o{��"�Ǽ�+�~�xA%
Ub9i#^N�Lڠ��O���O�C��p�%�1I���_y9h%8��������>9� 
]
�Z?ƹ��q�>-��
m-�ۜ��7�:�ܲ��x]	��w���?2�vi�OBV�fΓcNV$�
��֯.-�G��q ��ǻz�
��n< ;���]λ�
�w3N��m�f�k��x�u�8���R
ޑs
�ӹr�~�S'#�7˘��es��:�p9�������g(q
l��RV��K�o~u����-��]�4S7���� W��,\���\���xn�Gڙ/����O���<�2��!�^�A�ef�1��P�{��{���jy�
���76��᮷����:���:3~�Q)�VMH.6�('M
?�n�r8�ތ=>�l9tvn��ͩA�c/
=����{��vS:G��n��"9/|
Ե
Õա������Yv��tqkd�
������[�����g%WV����Θ�ڡ�tj�y�����V������L6�6)�'vҨ
����{��C����&���U�ժ�����P�.9��\�.mx!�G�yE�
d7\T꼴�y{V4���惡�.9/a>�I�F������
,�
����u����
	�k��0]�
e�.
�H
��+�K���邺�/lmq����y֒�r�r�$*W�E�d����Iom�S��F�M�ÂEQ�=n�������3��f��3����@cMv��:�P��'�r��S�C�
�s'c����}X�������wk��;yt��rUij�b5t��;����
�`�^ϣѭ�Z����4��l<��
��ﺍھ�
��AT ����崷
+����lH�(,��a?���f��
���Y��E�~����/W�c�
��
���ky���"��7I�A���:�
�|f�i��H,��a�����pغt��s�_�`گ���ZO�:�>�]������=��b��%��w����|�P��T	'=���;����}�ym��그u���,4��-��nZ �iH����0�C�A���xqݳ�
�P{���7���=	|��Rй����nڃ��ܖ���7�3Y/Օ�V��i-$H{M#w;5�b)�nZv�u�R��
�������o��/��v[|ҋ��N�lى'
Lَ69���d	�u�����@���@tnGlǔSj˝����AҠ��Ga�B�S�4��mc��\�n	)��:y�@D��<1����^���
�{�K��r���h��ⶾ���E��
i����ӓK�����q=���aߚ��J�o>�Y�=[�v<k���k�y0t�[��Yj�̸�Xm�f#O@��zٮs�G-�Q�
;�:���v���Xq�e,E�����,�`�D=Y%զ�2�A�R��k����5�.&�d!� t4�n���zD`��}�n?���?�V�ޛfZDu�RpB�u��-<��U�wyײ�V�߽�5,MC
�Wk�􊯵Y��j�)#�E�V6r�f����պ����㑫��������Z)ssKɘ<ψ����9�Cd޹�7r�y ���ܸFkfr�&�*Q�@wN.Y��
�y�ֻ@�����^2P, [...]
���n��.m"��X3�I�Xg5��ܪ#��ʾu���s�31�(�J#[�S,
�V�$�ۧ���	��R�^l��
�\�X��	7m���hL�ӽ�
�
�F-���Na�8�R�Y��������zϋ�/1P��L�XL��=�Mz��0R�P��
+�Rm��.{�[�1,
�ɪ4X
�ڻP at 5��qjxI����
T�?��i5��	6o���n,��Džl`~�aEk����>ySY�6�j�w�cն��'
-�5��4�հ��X�� �
6H� '���8�~�^���RZ�WN�8š�{����G��8� *���J
�(%;[����n�U��$��J6�#���.�F+�r��1g���!]��=�j�b��|���iA��Q�)��b��먺C�M嘓.��L靇�)��Q�,vFl)��r	HˊVj/m���t��+*9���v/Ym�'BrG
C"J��D�+��v;��"�u����/�W�W�mI�+]��7�
� �|h�PX�S��c��SX��>d��e��~�D��#�c�o��s% %5��ڤ����d	j�uJ�I5y�[r~3J��c#
=�)��A^��x]�J��Хr��+K���P�
�Aꋕ�*���Gp�=���Yl�����N�aiѩ�˨���w�7�ܟA^�Ej��:l�Z^5�rju��%�E�~�ei�,�$�
�;8�����p�� |���}U����~~s/�?�x�K���Bo%��7�P�}d��Q���띱���v�����h��V4=�r>ζ�f�ٹ�\Gǚ�qX��Y�����ny�����z[��[�r��q]ذ�gX��d��c9�bY� ��<���A��q
��V���F?��8�Q�ܻф��=��Q͂xO�e���!��F�.T�a�.���C�7���Z��z9���ۤ�D�M�>0:
�
�d��
vZ�=]�!S�����a_<������;���Ɲ>��p��_�
3�<*O�|�Ϥ-�˹���b�ebT�?3^Y
���
�tX�%�3�T��iQ�%��aq�+�ގ���+W:%���l�N��$�LnT+�u(p�]�P�Rޑ
4x'+qz&0ĥ)u��B_�K������"�H������oU%X�#�6�bs+
㺼-�k+�*���i��ٔ�(	�~]���Cd�^��0˔�2f��3�s��
����g�N�}�j�&Y�
�4�N�e�j�5�����/���yF,D�۵QPg�SAm��j�_UN?��A�/�ԂW�w(w�\>�/�5�����Feezjnq�����s!��
F<Em�d;~��q��?2}B��Q16��b@]�E��A�^�<��������� ���˝)^C����
+��
��J[1k� ��]^����r{}1̆d�w��K^nv�
qO>��d����(a��AG:��:?�_��u�T�<p���ޘ|esP�W�ڳ�ๅ���fbu���7����T�!n�9�	Y��,�O3�]p�t���;z�@�
���n�.��3��e8�{~1 �d��.
�IZCܞ�3q�$�R�W�JQj�B��l�:�
f�šm��
��r͜H� �ܜӃN^K`[i������6DG�L0���C(���Hx�h��
���kgl����9�?���B��g
4�Im��g�v�(�� 6�&Nlb=�[;զ�S����\z��SR�_-��/����Z���9��

�k�þ
+��]-�K�͔{,�ȴ>�X�z8�G��I@��*�� ���`R���t�ttG�mS�Kxꋎ>��-"i��g�^���>J�Gy�#Ck����N�'�ͺ��!)+G���
��ƴc�
��4T���`�`�� �v��plf� 6�1	
5��#�b�`q1YW6�6[� �2d������+��,�"Ɠɿ�nԩnBp"bH��y

��+���S>ZE2ڿ`���������5p��8�d� ׹� �v2��f�Cp7ex�z
A?O^�z�O�o�gDp���<
+��h�ͦ����iF
2��-��!�9��rAV(<t�5
ئ�&�dj�-kU��S
���|�� �Iu5G�l" ������n�<��
+�|�D^[Q/B@� 
+p��
��U��@��
��(j�W�8m�����#����h�o�&�L�i���.<��-7�4j�7�Po�@X/?��}��w�Up��
���
���H�	�z) )�h at F�6�	d
dq��P�ܜ?�
+�Q
���h��^a���X�=۔4�[�&D���'��2��/�l3�T[	���'U�t�
J����o-�A��I:
����
��@�P������/�x!��Q��8V!5[M�nı�%h�����UB���/%�{'����bm��g/�F�Y;��2�W��c�����k=n��r�����i�
ǵ�W�~��ʯd��d�Zy�`}��70�l����K$�Y��m��A,G���]����F��^<ܧ�~��
�6���͸���+�e
� �/�˼�t�IC���4�G�ŧ������
ӿ:8x�I��{�3�2w׷�r�u�����b�����e+�z�b���%:S����A��;��c�ˇ�鸇����*�� ��!~N�Z��]�V�{��|�1���ꏷ>�=��rvG���uEm.�-�y��>S�C�ԁ΅�r������&�-���D��C
���+�������˵�D��PӨ���s}i�:�Q��/����8ǁ��SE�&h��zGmQ���~>�y�tV9�'�jQz|�׹h��s��~��l�x����}�֯�A��+j~�.;�kaq����p@�y@���ݭ6"�Ϧ�
������43�!O����/�n��s
�>��g������x�f���Y
 �������`�sFV�[�W-�m-�幱���< ΃��Ǒv�E?H���Lf�ӹ�ߦ��•^˄��CL��J
�
S�M4:���E���f��p�o�/�bE��-K\��n2��I�t:��
r���w�˳[�b��F�Y�M� [...]
+��
R&�ʛd��8�y�O������,�D��c�~�.u�����Q���YI��E)�L.)0<���8����ߙ�|�.�O��"�qO�c���M����,s�{SLkv�'Ӛ���
^��}&�5@�w��-�鞵ϊ�Vf˾�����v?H����s#u:2�j���-�ͷ�6��P� �-���ij���ݨuz�_�8�����ݣw�"e���1����D�N�F�Z��U#��c�_��Q/Ͼ�>Qş]�͡�.T+���i�Ǟ�=�y�SS�5�o�V9���3�
�U��5����=!ԭ�:�
s
�ح��H|��xڗx�
�ճ)S�B��Q�F٦q�
+��0���AF����,]�wV��e���HU�ޫغ$�%��=��z�iF�K��	`�a����&��:�h9{��t��8��:�E�y at Gۗ��Ϳ�EkP*��@F樵��ԥ����w����\ɔ���4��

��}X��Q�O�y�suL����
OC�~
y�f�l������JM��jΡf��>��:���vZ$+>+�5x���ֈ��M+�ڔ�>jh;�sv��~{R]��j����*>�\�x'u����)e}�׋QmSD�}fz�ڙi�o�?H;/��M2j
��Zc�Z���NKk�����bߎ��-�W�
+�n)�2Njo���*�d���FӨ����j}\T��ܹ��h�P�Iu����P�+�)��V>?��p��8�@��%
�]�FF)�>�H4�����ך庵f.�T\��u�V}��9��-S3k�1���WPo&
Tߵ��N�ғA�0�]]�P�\H��ժ{��{�9+_:�c�{ P�>r%	tz%)��g�\��o���d?'�Ңt{�C�|@��>u��?�ʮ�j�L�%��\�bE�cʰ�Zn���h\���X�'�S�j}�����Vc���`�ՙ��� ��i�
x�*I�c�
����Z��:�(�< �j9�v*B��?ȡG�\+���塚8Ϥ7�� O���9t��0j.U��
����y�a4��r�\�e�7�0����ڬZ؍��&]�S{�֙�)��+=�1Yh����BES�����`�"�u�i>V2�}Q^Z��"[�`� ��|>}p���� /��qC{i~�aF��\�!�f��k����w��/F�5|l�Z�)�aejj����t�
�t|�u6�%�
��,�͸48� ��YMs��
����M1|Ȗ����V˟K���&�ϲ-�_�U��Yܟ��R13>|��d
�6
AV���[s����wm���Z�iq��	�*�iZ��G�R��v�,l�A)(
"�=�vZ)��hPȾ�
+� ʼV”�ڦeq�D�SC*���*3��GW�CS9��"��n�y�$���A�@�Qh�j�/��l�	�s#�]��CrӴ���~���9z���ɱT�pM�{t�-�����t]+)\W���Z��W���=*��;�� N��r.+��|Q<�9^�K5]�̦-���'�X��>�\�_��`�Kj.�G.��{.>r.^�/�Wf&�E����Ǔ׺A`��
�y�VS�~/tYTD	$R��˒����R�[��Hr=+&{����Njp��x�_�'�!�h�w,ߗ�{�j�B�!;��{���",�jj̬�Y؇,\�?رp��eK!�Ex�� ��?H��o�-WΥ��ڰ�����.��`Fk�ST���'�N��Djպx��]���'•��B�D�+�������f8u8!�0u���-�����2�Z��h�AI4f�c�w�;�N��)�~1m�
�p&��{+��ڶu���k
gcW<i���e�(f�Q����VNd6MJ��?��*/c� [...]
���阉6$��Y����@��Š
'�!��΂lz��8]�,q�>�i�H�d��7�$��'�U7_L��	����Q�ҤAJ�ܚ�f]���-�o�KjT�Ҿ�/
+~(c�'d��P�E����f��e7-ze_��>m����
�
t/�+���a�Ȓ4R��s�(\��*�����B�jQ��
{�@Sw� '7� �օXc6_�A2������~��t��afV_�n�T7�ҨR����Evܸ�ŘZ��bx�@
�Cz�F�ˬI\ںGtY? ��rV��^ۢ�!o��҂
+CkY(�
�̕�2i:y���U�v�����FO�-�n�6x�vM���x%xl��便��N�^��|<36�jW�#��PS)I�N]��'��?հ�l�A�т���3y
�j
��5<*��Q��x�@Ͱe��b��|`x*��m�&�+�W#�_$SX�J2��,�9��V��
��d%k�,9m�d�_1p��d�Z�sn�G.:qg����������B��D�Zk��^����Vr��@1������϶�:�����9o����4�F�#+���Lӽ1tH�%�>�U

"AE��FA��F�AJn��C�yϬ-*ߝ;c�E�R
+�֚�g��iy��w��0b��U��
�
+��|#eک79B�Ή��'p�
3�K;��x�"��)���/
+AR�gq��`р�Cx gTe-S�3��0�ڤ�d]��/Q�q�F�ρ=��]�ަ�.�K���_tն�4�������V�:ܼ���t
+�
^���q��R^
X�@�I�]�C

�XA�S›#
4�Z
P}��l� **�4<@�@
j�w ��K�D%�==ƀZM�Z9@�����5A��A �ܿ�>��y,�\m3l߾njŅ�C!��;��N;$����7T�X�
�
B0h	���R�c��9*$x0��������-���]�0�0tJЂS�&YZZ�){�/��
0N L՟Fv�K�4݃bW�W��	N��n�N���Y2&/uh@�U�]�*j
s��jF\�T~+ү��FI��2X�d
e����
(o�Wk�d
= 쮸 

^W2	N"��'ۖ��W�lɨ
+8� N51�i�䭖Ӿp�sG�5�S�\^�@n{�����k�Xƕֈ�VF::
�X�տz2Ǧ�ϱ�2�ڢ���r���׹x���h��<�@@�/ T�"zO
����8 a.�@X0�
b��M �;���`�ףP����ݏ3"�CZ��J���u?=N�H6�)�ڪ���
���.`��G��
s��Xa�IoP[ /�?!�2Li07�4� 
�3�^X�ټ
�
�2a@�
�[�%�̫B�1�
B�8\���w�b�06���{�������o{�M�
�?����n����,�/=�h�`�
+��?n�߇�}��S���w�%
i�%Xw�X9��Ϗ���V͖�����
��?:��m�?J��:XX�$X
�C6���1��ㇶ������
|u�ӹͿVѯ��j�/>ڢr�f#,�o���:���_��7�A4b9��ۨ�
ڪ�}@v+�O���]�}�ns�g�v]q4t��=ⲕ��7�󡌬�
��a�W
�.��_��WQt
1e�vj��Mo����m
@��c�ޤ�Sl��͋��-��PW��/[~/_��K?�W�L�_�ӹ�y'6*�7�

�Uc}�w����d��v>�)O{?�Np�
:�w���e���eu�R=~��O�r	��߭�
c�V�Osh�6/P��f�b?�:S����N��k8�?�!����8X��
��1�� 6�詬]8]]�2���l�����E�� 
�t���_���V���?���&��� �j���62�-cg*(
�
—AV��P�ln�l����}]�l�+*
+��N6Z.nv�]��8��m.���h̾я:�G�����\��pU�록)/&[��w
>q�j�w�?�s>��
+��������q?���y�6���^?Ⱥ8���s�-n杞ţ��6���

�����5�Ui�m�9�l
0�W�|���cj�\G
����07nw.��5x���`\��rP��/�Y���g�����jK�u���1Yr��
�,
W��,�59��sj9C���4;�ēm���~nc(�:E<Y�
o-\
+���]���
�Nk���~Z
+�~~lzs���g��zF���ﺇζK�s�X��;^�w�_Q�^�+���c๋*���i����yu����S#�ɶ
��tv:
���:x��9 v�5(��?�D��^VȞ�׸^��~]
W���P�6,��%qa��t<�Z�/����p�{@��^�5��v��
�����
��z�ј�P�3�Gϓײ׉׳���~
��ޅ���#����N��d	w��^>�a&����ҹۈKq�T�CI��ȴ��Y��?��\$OΥ+��ZtZ���p0����Z7��3�Z��s�Xy�����~�Er��myْG�
fW]}�-��b��G�`��Uh�.�#� �"�u��B�ӎ$����
`o�z7f����ͩvJ� Mt��4�
��Ⱦx�]�L���}��n/-� s�zkTY�im��;31o�)ֵ��>2����
�����G�p9D�n���"5i'W��/fAySl���]�

L��پ�
�S4��*�a��67�F햊ܵ�m����8
���}�{B;k_�!awk'޺�_���պ��=�1Ue
�&a�\+;��1;�L#�R���/�fOX��KͿ8�����|x�����]R���mv����J#�5ƅ�̹�
S��*�!k9dM�Խ�3������(�[j����e�x1SQ���FՐ�#�
Ff��Ō+����8�\)��ެ��:�A��i}KV�������ES�wE�����
�t;R���9��4,�i`�^�-Ll�~jڂ�Z�5��;��
k�]�PI>�L���Y�����y����B�9��J�M���ͨ��b8(��̺t���R/_���)�LZ@�"-ȶf����n���y����]
��y'
� �'N8��쥹.1�3/⶿<�,�w�M�Dh�
+�X���t��q<���6��S�m�u��
+A�����|�Vr�ߣJ�x%�D�� �?����B
/��Z2�
+���2�)�̸��pC���Y���F*Z:�
�^)���
;P�����3��QEj�K���`�je��
+��z+�Mtz>^����̭ϷR�p{k�@�!M4Эj�T��|��ʋ��*�h��s�n[Z[�LZ���?��k��UO���np����wy�8h.&}��*�b=.e�z������q�T�k��=�+�/��.��K��驪%��g�
���j���dՉղ�����)
+fe�#�e,�kJ�F<wo�$6&żH�LS$�����Pl�_,~�Bo<��n�k���ߨGU�'��lN�"i�����'H��}���?�R���'U��oj�꬧��3T�X(G�L���K�򖱑��
hF���]�%�'k�\c����q��>�py?煿�*�tc��|&F��Ϗ�~a�m�P���fV2���J�L&*�8��=H�
�Fl;���>�1�L���]�C3;�r�d�2��8q�H��<IE6��=	NO�(�L_�}�n�Xp��v��Z+;�;
��
N.�	>�ž/�i��x����i��[�hw
6���a� V7ޮX��\�3�R7�D
<�d����-˸s�I��Ր�C�'
��Dl��K��wI�u�ݝ��
)^�`�<�nM
V��>
��53E��_����̘�WȘ	ߙ�8�F��oa#HS���VM\�:vL����	��K�N�%99i�>Mژm���O�i����ŖR�E:���h��������3�	�5L���
G�

�2
S� [...]
j�=����4�V�M��FC:�ݏ��\ƂZ����Y�
n[cfT5�+���+�H�d[Y�$"Y���
�w�����J�˳��0[�r��p9��l�>��,��g�g�+�N/�6J�v��S�F�:����8�qlmu�h���#��4�$�
$?K��
`��v=~yى
�Z{&kz���T�JN�`��o�;Sn��1;���<3��,��^<5�
A
��
�����o��B�͉l�2o���y��R�*�N�
'�GI������/��BP���_
����@q�Bq��:�Βa��4�9J�;�<�M
+|��YT�6�on��
L��^h��ySE�G��dW �N�'��R"N�$X%ho��/�!:-
+��-�Ťޕ[q&�f
>����ׇ����
,�
���C����/��{0�f�B�9�����
Z�i|��e�H
j��*�'���^�`"o���@�
\��;
+�M�������]�ˏ��R�$�f
zs-|:v<
6�C'�֬�r����]���>�~�
�}�P�lֵ\/�j�Av۞'��	�^����xQ�q�?��q͜"
�J��RJ�
�%��h���J�����t�[AMNxza�0,��u�st����/6�0
J�d�Z�x��2��
� FW��3���KC�XA�;�C��c���W��t훕�W�>z�J��k:
+v��\il�W�<��5���}\�X�r���ĥ6~T
+��J���;�!�w�Wt0�?�A�EP����8dt^���%�n��A ~1��8���èJp��m(+
+aj���e���\ EA>����Yg\�
L#J�*g��ҦD�"
ƞ���bL�����G
�B7�ga��
��)�3
+���,��d/9��N��
+�1��DW 1�m@̐~o�(�L�  �
@
�1 ک�ru8 D9?���2��y�Aj�lzR�QK���!�
���#�<���[�0<{���2�J���3)
8S��A3�Ā\�R	Vi@���:��R�s�
�>l.�K0��Px�(h3<�|\j�<l�<�����
&� ��uN����z��C��P�Q�Z����Q�fQ!~��7b諗I#��D �`��m7O@�(�@�:�,�[��.#
+��	��
�P�&؞ =-!	�<�gQ�o
蠌zX3�c�G��G�_8&��9�|.k�.�ҠϏ'�&� �f�E�˸�BR��.��{�&�4a���o?
�L�Q L+E|��@�3�T�
�U�<�`�V�b<l�}l�%X*�
�`��`GJ�c��d� �_%��/lt��Tz-ꦮ��dL%m2��G���פ��<�2:i�2��8��_)�
+��
e���
+�p��q5� \{� �2��-�Om��o��Oz�#,��?��@�: �,
X�־���@�ُ�*{5�2R��2�g.Y-��/2D��cVX
Cքq��[�ѓ�|	p�R���#�6n��-"x@(;�_���IM���[ ���fH! I>�@Rs �N
+H�
+�Nm���qK�%i����
U��I
�~�'M:��9ʱ�I�0arא
�c�o��qU[�5 �w������89����ǀ|�J at a�&PX~���i��g�m a��0[�M�~��/��?n�n����L���?��N�8�c�8M`�
�q�n
�<C��)��Ɨ>��)���]?��oJ�_�W�=����+�~��/����7��	����&#���D̸ǻ�V
�r]~@�ݼ�ۻsG�w����-�&F��DW�W�^�g�z)���♚��ӹF�v�|��O���;
+��₴�j��
�~��_G�U��P7i����
u2�[��y^�K�8�l�|�����f�ӹ�r'v�&=v�U��QX��!�-g�v��v

wS�ܡ=�������W��+j}�-z�V�
+������-��I�-��]_U�[�Q�^�l�=D�?uR��Q������V{mO�v�9}�ι�mc=/��V�����Z�+�<����`ܢWd�y�2��|Y$=��
AC��UR"�����۪*m����(%H� (�� �	Ŝs<��pε�����T�mX�UuWo�^�LJ�
���H�Ӽ��
q�ϥqك;ك��
+{���휥��Vy�+?{���Kn��v���A0���L��D�'S�Z$s��K���2q��k���ܘ\�d��2:�Hs2�݈�6�a$��?�u�?
�O��i�o��9<����l�����V.̖!�^/���4���n�d.O
+��>"'X2a�^n&�L����
��6�'/���y�C�Z
";��]� ����7H�S\4��݄�:�_H���{���y����v��:�%7����%]*$s�֚`�m�����
V�[�|
���}��n�~,ݳ}h�B{��#zH����ň�����]l6;
�D���MC������ �����T���H�$�ɓ/�gB��H;��^	��
�>�X�՛��F-)��4�
qtv*�P<�f���>4��=$�Z"tVN~஋�V��[�w�{p	}��
��j��&��y�D�"H�Z�,{up��e����귦���fn�7��0��"<�/~�{�`����׭'����J�m�<��Mn �3�o��T/G+l���Z��l8!s�펵
��c��{���������x��[pQ�6���7�b��ϓ��|�Qߔ������s�S#�s���te���[�?��G���6��<~���������

LgF��CE!

_1��1��.��N
N�N�Z at z޲C [...]
��Hȹ�I;��P�
�E�w�.�W��n�a�B�I5�tו��
*E߭�����-�,`f�7�R��L�и"���YCh˦޻-:zo;�I���w2�l��ކ�]~�m�T7Ѝ��,>c�A�Y���ҕ�s?,��z����4h�
�W�eA����Z��구�gڵ��82[�kfR{|[>��K��x�k
�}1z���{��Q
I4]ؼ��`�����UB�d��(���k�%[���~F�W�U=��ݱpW��Pmd��D���ʧ��8���6�	e�ɤ��Y>ݩ�\�*r`���=
'���.���r�>2�kq^�5��Ts{�T�)yJ��
+�7y%Te�y�D(;�|�/�`�x:4aJ���s�V?�<���MD���8VӏT�:�����
���~���-���7��Ⱬ��ᩦ����}�Ŏ{�H���TM����ˌ/�|���j�9
+��Z]���ݕ<O
H���$
Έ ��%��&�
c拇x,�!
���;v�:�Ym�
�wT�^�s8S�V��<x�cz�Bmt5��
+���A��x��ZVlXj��j�^ʢp�)�&?Q
+
a%���Iک�����x4YAd�
[��r=��D{��%,�4�Y,}�iI����fן�74R�ҡ��?�V
�+u~}H�xoZ���
0��q1��^<ţ6�S��}X�
i�[To�R+`����,ׅ�'�nG��6#�BO3�.�E���e��
}e�^G�xYXw��@�r�fQ��suN�L��0��
���
u�5u���`^��L�:�L�y�y�lu1��ҹ�1�Z���On�eW獚{�w���@��FA&����ӹ,Q��)�h�.g%ٰ�:��Dz�5�G3W^^�iu����eZ�2[>��,�ɭ����̌|:�,����
i��D�X��6��'��k����v�m�N���J}RF��l�U�Q��>;�6M6�#��YjA��x� DdO%B��-^��]�������+���'%�F�֒��&'֔�~�$S�'��[�SY,����1�)���.^��X����uc�G��kV��z7�5�Fj����ϳo��F�l�g�Ķe�n`��g���ƺ�}J��F/^��m�g
�"�57��"�[����)�ʎ^��'�u����e�
���U�%zZ˗�Q)ѭ�+�f����Cݶ�_�
6�J���Y̑
��༮s�����Q�u+t��%��/+N������
+e8���”e��E�Ws�B��ڠ�ߡ��`D��Ϻ��[�Q�t~!�	"��!�EqLHN
"$�`o5�ȵ="2��/�G�#e�ga?���@$�UH�BO|����2�G��ͳ��g}Y�9���+�����x�s�v��My8G�b�,
�_bv
��4U�C��$fz�=�g��]
�i��p

0ظ�V�21`�C�eS
ˎru�8�13�Y��9w���6Ԫ&
n����禚�Ƃ�cy�S���#���3?X�;�گWt
�g��
/�NR��
q!z�ʇ��n�A��SZ��xƪհ��cppg��)�����q�P

���H�Ub�������d����)ŵ[(�S':썇_�"�黊�+�

z��%�Q^ށ�G���+�N�{z��J'��}q4�&���8۷w�jkr)���SX2_p�z:�������8��(�W�|�2���n�k?����qÂ�ܴy�DP��t�{��e'�	�@h����/�Q�G�i��Z��W
u]�T���Ḳ��5�pcj���
���Zi�\X��qޏ���%ms�<�x�|#wn�C�ہD�;)"Rϱ��l��Oq�q��A��͎ᩐ5�M�s���:�5B���1�f?9���ϙu��D>~#��"2sM�sU
�+��
*����l�M�Tk�=�ve�%�Ӳ�|�}&Ho�$�6Y��d�ϖ�k�� ���A��[�,ɹ��
lX�
����pD/C�XT��ǀ�W@Ժ& ��
v�|�"��Ι�_i��[����W-vӂ7
a̩��3z�R�~��V�P����<�KD�=g0T��!ԏ7��P7��[@Β � 
ȃE�XI�<�v�Q�'j�b���7���
:dB���n�a�f��E�olk(��[������ezZdyC�0oy_�
v^�BC�\r7z@�lw�M��������.�
(]��2FPŸ (bR���}
P�6Hq��܄ e�"�,$ ��� �Zb�*d��%�@��"����V��˨��UO�!xY���
U�Zv7�C���0�E��
���l�Z^A�
 �S΀.�@K�w�3
�&Yt�L'��H�Փ�y
Џ��3;
28&'�)>�߳.�?��(@_o#@o������Tr���H�X[�t_�x�CKE��>"�O3n)�/McQ��!"O�

93=�;i1<�L����M0+'��l!��a%��u��.���.`��%`O�`����
ƿJ��{�f���wG�},�c�b��ބƤLzT���LjЁV���Mʹg+����2��;m=+����,��n��&�FG�+�nv
+�n
�U<�����
���P�9 ���h#B� �L ��֝B%L_V��%�K:Z��x)�~��A��4����=��r�S�g��A��.�m�f-�U�U[��U����8�>�_�Tht�X?M~=�y$�� R;����V�.�.�#�3�ر	d|�2qH_���T�����[&w�m9�N�H4�k�B���I���������J�mԷ)�# ���
�l��G��v O�
P�u(
����t
0*�����}U�@��JT������(�_����o⟴�	�
�)������W���#|ݶa3Ū�g;��M�ʜ[=�rx�����q�n
���6g��o ¿Q�_g�׵������0ӿ2��}��
jc[�'�f�uk�2b�"X�9s7��x��d�V=V�늭�W�[��7�Ӿ��^�|Pw�,�'r�lJ�7_`Ǩ�׎�
�
�+%e����
���(�_h.�ϳo��e�~*�V�������솶��˖o
��z=�#�u�+s�Y^�(.��aP�����{�J����
�I��Jx,�Fkr�,V>z at V�!�����{q~�6֯0��&��Z��+�*c�p7�G��
{ԅ���3=�F�.����PS
�s��m�Wf���u�:��iշ�g��2D���}�����h$3��$:��bi��
y������ʣɪZxO\�GN�U��[#b��F!;�����:ź_���A��^ߘ�m��=׍�%��&�����Xs����gPg�O���J������1q�c��L�cr�������nG!��#̈;ա�x��g����c�q������R����ۼ�:���f���~ou�*�B\�Ù~���H�Nt�OWI7���������B"�
#:,
�sL|��?�X���J�C���K��C�X;���0B��e��6�ζI"
�t�C�z!}�/���C_Ȯ�ſm<q��l�Euo�Jy���2��@����<�Sg�
�~�ӝ���s7�Y`�����.Bg�S�E����=�~��������C�&��9d�v������ف�^���ȎZ���m�U ����l&u��‰��G6��K'8o�
��n+
a�;5+�Bm���S���!1�tWD�l
�
+
����!+F�����$�@U�
+��Ǘ�Sˀ��fR�3M
=�y
a<��]�5V�~�����'���Ҥ�ñPu���p�����k]���f�s
)��������h�G���qޝ�"B��6w
�)�Nk~_�.R��_�f��՚9�iy����
+�5H�Ѵ�GѲ���ziq��G��u��M8
)�
!��j=lj��=���b��3��N��W�穛�+�8u5��:��f��G��~���ƾA��G#ȏ��Q��
>��O�L3ɘW,U��V�zs��	�9n0O��t!�t3��\{��i��0k�m�'[��o;�IOY�Y�*3�2+��-��
gm9R�47�b�Lס�_����DY����(z�^�.jr;�B���J�w�D{�����mccj��^����d��l��
�]S��l�����W���L5�f�u*�{yP�N;Sk�o,�
n�g�&٫��C�^�2�R���}�
��,����#{Y�#uR����d� �A�������5.z��{י����.���e�)o�v�-������uAN4Q�9��VIU�\�m����1�`�*3�n�O�q����
�G�Ύ�zt�c�˪��0w�k����s��Pt5ۯV�lK�������sy�`�+���ݙ�m	�
+���E;���r]�bܴ���m�P3/����D�|�Wd9`!��LH��JU��������X��I_v6���ŝ:�k.����Z��جɋWa$�F8$��"m����;d�E
�ڥ{��w�|����5h8�����l�-�P�%�Ҫ���ܭ���q�W�<
��g����t�1�M$M[

-�A
����*�W��Li�J~5[��:|��{
�ʌ��t�����'�H��\,
���Ní)��yY��s���m�N���YT�N�0n���ٓ��Yq����آ�&��ډ��í��&M���,�N�l^5
��̦*�T����TR���C]��O[�f�DV�xȏN"
B�p����N&��h
^
�W^��B����� ]@5��?���ݟ��~[9�G����:H���"L���\�<�k���ّQ�JEt��T��SA�,;�
&c�
#yXI�ȭj�ϫ��4�`�<<�PG��-Q�|dM>��ܠ�7�Ͻ�q�ub
p��e6����FB�>�
�ԣ �hf��
P5�U�+�G��C��Kc��|��;<V��z����\v��N�KW�T,�	�"#�I���qB��i_c*��h5x���K<L8u�l9�9/֘l1f��T�Zl�����^�S�^���	�? r�8
�c��nk�(��;�S�E�Ț�l�fH
q��7S���HvA_���诇+�"��B�M���6��{��K�ý:S�
+�2�Y�
�|��
ސ�֓%�;@7z�{(]�ZO�M��	k
+WJ~:�T�zT=ѩ�|�G/Qڧ3rx?�M��ם!��*kΖ;��5���N�5���w�#�h��BG���}V��2��qðw�4��

��r�H�0�q���T�J8�0�2��`k3�G����Ҟ��Rs
�!�dpy,��F�d�
��	����6Ծ��6�ރ�W���Z�VSYf�^msղ��V^��ٯ
�P
�8����)�2F&a˻⊙Q쑩��O&?ei����AQ�fQ��V��S�Z�",��܄lW���/Y��,��mkx�՝��x��cx�V��ǰ�"(�������t�Ɖ��/��j�K;�
�QF�݋��[�����GY
r���c�m�C/��!��S��]n(R|���!G�K�����Z'��KrݓBܤb���-��u� �cYo,ν(
r�J1��q�ܛ�b�U
�d^���F{�]��h���<A��F�ea��h�g���Ŷ��s�1dl٣���&�%C
�<P�DT6��D��s�����U�$p 
��#�����(&s�[����|��
+d
CWǬ��l�Gq����Q�U�O.���ȝ��4k�a�k��Zf
��'�(�/���Ѿ�Ys�O�
��u{��wt��4�a�)��l�0/N
t_�d�[17�~
+���+N��	��z%��[���
�q��
�w>��=��|�����\ں�c�U��wZ����I�se�F�H49_ô"��Օ�B���ts����T��
�t���]�
��c���k�(��X�8OM�]�d�v	�\��E�k��H�]i�p���#j��
�`�=���X��}��jO�
�6��8�#�|z�\���U<�~�|,����22�o��e�X�?\P�JfB
+�9����#���9��q�E���c
ЗV.�E����)�G6�٬���P��d���C����؈9+�� �D' �6�z�`}
�>�
+���|��c��׬��6/XI��=�)�
+�|�s��~O��撼���
Jz��(��ddtr|���~
f��n�Y��!�C��Ie�b��.�HQCR
i��U#Ŷ�Cu
+�#�Jqe �
�
G�wV��xW1���_�{j.���Z�IYA�V�t
�!^�nw��,
K�Jm����Y������{M�������g�9�bىSL��&�`��zI} Y�S�|�s��j�Xf�b�$
H��� O� ��#�Tl��,�Ny��Z'���cZ�շ����G
����*���3�t��/�U�xV�Hﵚ���?�P�4�t���S0
P��
(�(	�'(�<
J�	J�"1E��/z�~�Ro��~%J� %����z%W�@��
��"a;N�5�{�Ѫ��,q���,<�QG��a
k��9�n���257٤����y�6��/ ��׀R�@ٟ��ߝN����+Pot�� -�L at +���}
+hۿ����>U@���?�&^6�K��W�͉�/�
6����JI9j�.Yz��c�R���n7x"ꅸg+��-�;���u����[��
�&���u�$`��5�

���(E��XN����pj�t~� �\ +������h�¼��V�#������W�$��c��D�����ɢ�v�oS\.�GE��v�I
�y��W�EdpbS \�h .a
��� �<6�19�n�u�nQMq� >Z�G{+��M��a��% ~����X�!D�|���T�AX��bj��$
]�laXI?^�`�'U��{W�_��k��F8|�o�ÿ
+����'�@$� v�-�2o $�G��
 ��H
,=��z�H�RH��뵖�H�1���yݘٯ�.i �f�4��rZ�\�.CW��i�q%[�Um�u�~�����
�H����oh��r�S@�
s@�$�t�Pv
�]1=��+ at E�Psh6�Cj�5�����~_�����[ֿJ�7%vq}>�"��RL1fR��糌�����ZOe��O5�?��|�����n��mN��[���oh����7��
j�b���
��?��[�1��i���EЯE�k]���MF�����~<��<��>�ߑƲx�
��
�O�չ���V�j��3c�*��q�u
+a�O�����7����?����;��j��&
|]�3�I_o�WO�׷��W����9�T�O��!�n������e�}&��Y���vs�����i�/e=�cb��%��!�8�M� �w��Q�Z{�PX����<�.�ۖ�ETZ
��vD~���O�U��V������Ӻj.���̹��=c'.�Gqz����Ҳ�q�JuM�IwE�o�-?�"ž���{�����b�3�A��'�~$���N\���[{+�ɍ؈�Rq���q	���&��h����@E@?6f��i�o���9�ߌ��.!V��V�M�gs�Z���i��ߟ�O띝&�	M��	6Y�3�
o�>;&}1��}���
��ec�v��` <�� ?��j�Їƽw�B2D4�w��.�gݜO_��g.:[����'��ui\���c���;seGV�H7�'.����3��G��(ģ�0���`����'��}h�=zV���I'�H'��1�u
S�����_u�����nH_�N��I�m�H�
+�����xUV>��
���-�mw�>
�~��d.f�s3��q�ʥ���}�ߒzH�.Gvz�n~�w<l�
�d��ɤ�^�y��n6A$.����^��z}�jͶb�.����6��n4�����塇
v���.�J��ݬZ}y^�,j���
��X�|�RF���pC�t��~�>#�_����~G���
n�񟽗�+�\��M�
M+��Md�t<c�
�U�
�d�����=vpu�]��%
w�CKtBm[���_�*��~.���\��p��{�U0���I}2/�.uק9����[`�����-hR�5�yx躕o�D��o[#�N�G�{7�K�����q��ի�b8�I���~�*i�o�T�PM��O�0����J�j�<k��l,����Z��X��#��������@��GN�nfJ�-�wkƒC3_Ӗ^�|�z��r�^
o��c�}r.�����3R땞����=�i�[Q���j��}5��t8
+*�̬g-���U,�{s}�MB{`�f"�e��y�)?�lb?�~����!���+*��^SjߢC:L�ޣѸ6wn;
M���
���
AGf��m�
���A�{Wf��T�YK&JcVq��榼�Lbv��{���
�6N
sh���R�V�W],�9�_�p���:�h�[��S(�fs�
�`��v�
��z�b�J򍉝kx��͹���9)I5�~��
+��a%�0���[����=y���1�(�
.,���g=�ں��xUm��=��>Gj̓iͯB=�X�� +��m|Y��}0�V�qNr�
��a��VA��M9c>�Wn�F����v���+�V�gb�c�gn���I.����c����B�-�.q�]{��M�:y
䦄e_���pS�Y�+/r~(jI,�1t'�Q�#z�3)�Fղp4��eX`�����ق��
+�c�$u���g�
wU���/p���j�k���%�%�.ݰ^�ߥJ�KA�����D
�㵚
�K���})�� ˋ�\���ؤ��s(Huu�ID�e��F�%R�5?^	�F���$¹GҸ�b��d�
+8�
�?�ŝ?���8"z���H�Ξ:P�+MX>[���,�37��%�^����˻�f���R������rQ��
<�IDu���;'6/E\��+��,�i?�գ�
�B��
������ΎT���`�0�2k�f&�2��L
ga�9
/��r�ǭ���h�d�,��g5��ܰ��7Ŗ�oM�r�s
+`�����}�-E�
+�X;
m7x	
>����
�E�Mq�!r�X3�O�ݱ�B4>c�л0� �t��J4��mj���
+��4��^�}�Q
����1E�cz���T�`m��Ѹ	��6�F*�6��jJ
�U[�jS8����9���n7
^�����_9e���4����>���$�[e�7k�s��6�
S�&���.mCF(��C�D>��yؔJ
r����ܔ�p�>�l4�K؉���䯞�&2�+Q�H�����,������3�BN����hMY�
mX�?3I��d,��2��Y��Cх�H�V�w��%�Y�a����?0�'e�d�;G�K�A���L����["Η~�d
endstream
endobj
35 0 obj
<</Length 65536>>stream
+
+�Ro%���yݽ�x�j
�w���
��y0����v.t�P6�ġ.���k���f�˧��L,�����C�@���r/�7��?���$�R1y�h�t2`�
�ҥ��
��}X�����+�\lXqN�P�1앾�f&���–]9i�`��*���hc���n�dw2
����R[�Xc>�1�ū�5"�ukЦ�ϼ_�ŷ�DЊ<��#��;�*��~I�Ϫ@t��?`R�{�V
{ӛ�u���by��EX�ۅ�
�a�S,�8B�J�!Ft�ix;��Ԍ�h���K��^Y��,�/M�3:��Á��<�
j���Rs��dp�[ĵ"�D7�	a9���a��y肽{�
������2˃X4q�*�;'(T�M�.C�����~�`n��*�	�<Z\�p����A��v�s�$;w�ʗ)���
��
+�b`ׇ�,o:,\št�>pK-���kr�pE[��z���D^:�ɫ0*�Ci^D4{[�g�Bu��P/��1��Xi���\ϓ�9ʵ^�c�
5P$����i?K0r&],G�
�k���
d_Y��?b�ޕ�F���1���Xi.t.���&
zYCZ��,��l�ƕ��*ZH�*@����Z
ʼnN7﵆�|�^�r�
���s��sL�	!x�#� "����{��Ѧ��%�F�c)g�� ;X]2�PqXb

�l
on���dZs���D^׮��R�nw������������T�sk�\l�q5���I���
D9wl��Hǹ���gZ)��5�8Eo	���}�s��0,�?f�e�ˀʊd��m����+]�/��L
,F̯�X�T�bfZX��R5�Z\�^s��
2I�����]pM�h��t�s�ラ�(N�G]��j��Ș�0�X?p�����$�x|
��Ywe��{
���8�vX��c)`Y�K�����ŧ‚��A��/W OQ(�b�%]e8� [...]
+9��������P��p4���|����H���۸�G�> 6�K_�rH�2�Ƒѡ�$��`��(<��l��J�Ә�͕A�_�f�AV�ϵ/�&<P�z�0�n�>.k ߌ�)N�op�<֙���aH��
 �6Ed�$;)N[@X��r��Uzc&) ��0��� ���U|����
3Z�=+H̾��Ɓw�	��&
��3;b�zX���ށ��%��q�M�W�=�׊x˿{֓��Hj=��lI;@��+ g�
 ���2�<���<'@���.|�?�N �Wn����d�}I�d��Z���C�
y�
�X2��&�Ms�u���Ջ!��
��b���kJ���:��/փ
(]�'@��X
 �6G��~=�Ԩ_Ԋm�X�5����0,�"�T/�T+S�o
 e6�RWk�[�l-�
+bwcb��¥�b?q_�}��G�����%�=�+%/���
�֐d�h����51��}0��
+�q��$�O���8L���L0��
�`��
0n�����0�gM���6MSNT$2�a��^��4�
0
g�"���6$�=�
+�_�p+XtT���~e�o��W�=�
��8	؀�� p;d�bt��!������S��q�(f��� wM�u'���.���2�K)�aTi��<L�I���M��ː�ۨo�Ŀ>�x2���"
�"�f�oxB
�0k���ES;1� @L2wQ�G+=�lQ@�� ��Л$�h�\�����P��h�����o
[��ؑ������ۤ�o���V|������ݯ����~�~ͷ����n��z��
+��@!P��(V��fG J?�MV��@�`��n��xU�����J}*�l��MF�f�v�m���M��>d�K���� �j��UUj<b�n? ���͝?�ͩ��W����e+��
���`\g�P�/�r�W��#:�ʡ�ȴ�
+�
�UG�J�o��F[)��2b+맒4O�V���M�s�
��uŘ�+�1�K�a���d�t\�Na��Oܴo�e�;
�ew��������q�DWb[}�?��߯uu
=�
������?j�2�K�j�w�u�[u7p�X;��ɋ~�S�1�Gq�L��2+��%4�n���q^�����n��9|/�v?��ֳ�B�/���~(�OGpgP��[���p�_ćf������s at f��Ƈ>�
�����|;FY����n�
j<
;�1��+zj����(��O��f���D�)2��]$6 �dU��'ج0{(���u��]����BI
F������������Fs�|5��GO.]�1��P�?�����t��n?���tjޮ�����&�ds���;��1�ǿzk�������
����gA�z4��a�.�q�������
��GM�y
��C_�1��:Xۡ<��Qs�O\C�rr�n���\ٞ�
 aLN��(�*�P<j�`���O���A���
2n�#��U5Xw�U��xx�
��[H�����݇��m���J����.TZ�$Z��JZF>z47T�AMd�u�gz���{����B�dy.Ϫ_�6�s��`�@�g��M�\g[S�
r�2�O�r�����ف�4��2�[�x�i٨ׂ�Iܴ����S�ەgc烇��Gå�l}�v���
��#]ח'#��L2NX��)���Bv��5y�	��C�d{Ȉ�v�����Cz���;��kxi����L�e���}ѳ
W���?���u�~�u�W�C�p]�A4�s_
�
j�QIjRv�����VQ��n����Q�U��!�$�9W�XS��c�����u�𾔩�z�� GXڬ�t�}o^��
���).�C[ܻ�M�:�T}����ЃkR�C��$"l���g�U��(Uh}0+I��T��[6��-��]��p���Sɕ���P.e*M��'�0-�)�_���-
�̓���
��ևGsV�mD�?v�w��\/p®کE*���qaT��
+��A��J��J.k=���Y��3W�5n��
]��@���ޮdGJ��;j��0�;�r���8��h�V_ᬦ���:�N�&.�0�
��Ȭw���K���-�2C�Z�?����
m
Q�ڲZ^�Uz��tTr˴*,܆�Y���nqٗ����8��DB�`�ZA�,�.�z��یM���_%_Ն~�L2��[�G����,�
�&-��AZ��\
+
���������9�{��#eG�jb�֊��]��$���D�q��c�e�3pW��D�
y�k��������������Pe��K
+|!xy֩2
+�S�DVP�b�
߅���	���h=�h焤��җ{�t	hz?pw{���g�

mcdξBm�o�}8���
��.����H���A-Uw��
+���bN�+�ruE\e4,�߀%l���me���"�|(��em��!��)�}�+k��`Wg��т
f�}
��\��/FR ����
+�.��@>T
6-[�H�{��6{�V�b���)�K�dG{2��Bi5�%
kM��v���t��]�XF`
�íI����u�8i����LX`�N��� L6����
+┞�H!�L����`,$N�g8t���Z��-��N���i�F4��[Sr!R���J��cb�;v능�%
-�'0i����\����r�I����囓��g5V�q��3e���Ӆ0����ZlY�*��Ri}��K���E
P�j*���>�
d�X���m�S��O;��]N]�<�����Ԥ�w.����
+Ǎ��]��op���\��7���f��~b3j����a����]�?5ؼϩT��pJa�+5�ڎ��W��65�8y���v�'IM�ټ�� �dK�֬x#���{U
l�5�}o�Փ��l�I
\���p^���k��C����.Y�(��L_m1�j�cL4�3w>���sG�ؕZ��7�(^��Y%�R����~��$Mw�D��Y�����A��E�I�1\���m{�z� ���3]j�6�������^{��'�f-��:�D�Bm����\�.(��/Df2�����X��a�A�<R�TM��Vq��6�J���T"C�I��x��{N����G�y.(�l��	�!yp�@x'��
����P���s��?�]M!������Xe��2
�	�gu���H~R��*R#�
R#.�P������K� �u��*�Ta����-3���5�QN���J�(�gѓ&��!.�&���%�Ӯ�W�A��N�wl��\��Gl4Ul��;V��W�v:�P A?o���c�K���:�jsr�O=HLhr�b���9�H?��_�6Hд�I��s�G��)[n����Ȥ���}����(����s+��Jk<ϳ'�e�
�f�U��s�M�菻��>M�A
+�h{��hP.>)��E(�~��lJ��e�S&�7�7��gv"��Hg�������߰�_�O��]��"KG��58t�
�y	5U�U[_��1��8
�;�Ϊ��˜�բ��G�蝣�-�Ly���A(���|<'qb�%��J�[f
+�<�4^�]
� �&x�zF�3�X<ITΟ�h�S�h#���S��`��Ԉ��* hI$�o��u�ۤ6C]*>�?�?
+��@z<��Zl+O���+���T�콝&V�^��V� �V�L?Z8���ء�-���=a���B�.��
+\R~�:��v��Ct�8��-�7�x?������Tx_���ӷ=S�+c�5u�&V�,��
���W,o3���>5��*��u	�
B���F#Cɠ͗�G�A���ғ�I�Lj>�6��k��>��a��
+Ч�� g�j��Be�BC���H�ej�w��������z��ْ�#��:�X�le�����ڭ
Z��sU��*y�\2L/�I�lģ����ߜ�F���t
�_�.l��,4z��r�J��\/5�y
+�{,R@9"���|�Ȃ� ��~by�ԅi,���x$�D�d��NO���,���v��D��m	o at U�&�yV76>
e4�$�
�qGC�
� �1Rap�٩l���~%�J�*�Ҹv,�I,�=�t�ˊ�a~W2��W
P�t(�Jrl@ɳ5��
(�K$�[e�Y���ז2�$�D}Ľ�/��]��/�"�R�,IJ���Um
+V|��>g@�Umd�3uc���&��%�h{؏�1t:}�e ��l,�n��'� �A	@��
�~h��M�_�G}T�?R'��s�U;W=������c�^�;\X;6�ћ,�yn����Qm������B�Lۀ��M@��>�
`�B0\��̵���y�Nk
����YLw/��gӇ��lπL8�4E�GG�x;%��F'
�h�i�v`sW����R�JA�M��a��&������*v
W���Ka�~�SA�J�����+����
+`
B
��l������
+p�q�8� �f�X�&��bp���
��pjI
k7 �f��}ͽ��l-1�P�%T������Y��
����
��{�Ţ"�Dz��j
�V���U��
��R�v�8���>����Yux/���� ?!^��V0 K���b�m���a�?�4�_��g+���
��;K�qS`��Ն�����sf����H�<�.����C(gc��d
�RdtV��A�B������K9�/߁��R_Oo�&��/
@�6��|	H\�
�E@�
�p= q/�0I ^�!o�(�p�W����e�J�+wפ;���3�̭��HP6�
&h���J�I��k�?��	�Mr
�m������y�
2���4Px�J%l��mb9������\� � �r
_��� E;�@�LєԒ��l�䊁3�X����4�P������II.�q��ܢ����u�&��7����o�<�D���d���
+����)
ta1����nǗ���L�^�i���@
+]���RO� ��jqO��L�8�<��i'E%i�	E����_t�7x�_�
�F�_�mo�����
�j
f��⎇��쀅#4��
,��K&����k5��J�?�6��&�z%��z�Z2�%���h��X��?	�7�֚�1"@���=����Ū�+ݱ�IFlTO��s䯃����[!7�A�l��&�N�N���q�ɜ���/^�MFH2b�/�#iy{�R��;<.�Bt�_�������"��z�y��k��=бOE�a��2���,�:n�@�n*�굮�5c�V�$r ���sK!���1���f{@�;y[��FT^ڵpf�
����D4j�S
+�����
��������:r��Bb�^ފ��Rߟ�
�|~� s���fS��
DZ���P���uB�KLB�gm���V�>n��c�����>m��V<��'����=Y-��Bl�/�m���Y~6�q��peJ�pcR�{��"ޘ[!�Q=
r�
+�*'�7���y��7�O��)��AS�����6)��-W�5q��*���;�?��&��È��~��Ϣ̡Ƨ0�=�I,��
���3��b5��}�ٜ���Ϋ�/�i:�t��8
He�D�X��v�\Jmz�Z�ɅǺ[�K�
�ϡq�w�F'=)�G�j�8j.9�%��訥��n�$.�p&kk&
����?�M�7�
�;�
��p
���l{��[�B�

+�V(�ʽf(�G�[�0m��²��׶u4O��׾ՠ�T�/M~�膓+[����w�E)�,��*�׺�/�~91)�r�Kc�B#a��O�}w��3jq�bԌjƭq
�WC�����7�T�z�Ě
5������"_r+�ʕ��F�\��Ү�m�*Ҳ[<�6���8-
+Q�9T��
o@�
3�~P)�|n
�t��}vW�I�H$��T�h-�������a�+$�6��`��(޴6���*:oO+ĺ�(�ڶ����w�<���*D�5V�����7RQ�W��S�>��}�h&7�+�
���Y�+��q����ĵ�f��U��Y-C�w�
�	Yo7�s��?��u�aVƕ�F���c��B��R��Iy����
+uY��'�;6�	�
<
lDZ�F9c����9;-�,����ڀ}�\�2�f������:ͫ/�=ɼ[w�x
�D���	�\��Kw��������X<�W:��@����`�F��!|u]\���÷ M�
�1,dr����Ե�/�����w�)�H�۵��=�{�
[�n�''�W'�/GE�p�6��i��
+�s����j9kTk4-Ws
�Tn�M2��5�������4�l��}�f�ng����_J��v��R�vv���>�D���d�z�E&��%'��
绒��p-�
5�u�]�6J���
��m��$��
7k�r��g"jΪe���=�X6�Y���M��
�t��n�~�g�ji]�}��_x��a[ì�H��j�
΅��<͡��Ly�.��~/�=�J?�
-�f��>��Zg�,Y�ӧiyM�g�n���N��������ڑA�O}K
a��@�v0tE5OmR����\+�Ti��h�)�����ev�LnrO�]�Gk~�;ͱ�x�}�\��`T��>}5��@
+��x��Z��d�*V���{��9�y�K�'v�(�~I��+
�,���f7���R��N=/�Hm�s�z�c���8���l��4�l��qr<c"*/s"�
Wbfd]�A�I�\�����]Kþ��az4��Y#���&�\L;���c�Q����f�^�m
�H\\M,�sj��UU��M�f�=�Cԧ��
���L�u�<��EB���qZ
�"��B �=v|Q+�<��\���O�ng�hBQ"�w����
�1��7�h誻j�
k�|�ǖ��5��k�w��z��i����Эj�mV�C�f��yS�m�T�
��h/�$��.��9؉~�s�P<�f�op[�B��*w���p|w�a�1�Jc�f��:�ezf��ř=�Ǩ%�zb�w>y0;o3U�8pL>[�f�f�(
G;�]�Ԗ���iN1�)Z�)I��#Xw'�%��͉��Z�A�!,�����^��1k�ī'�y�_\5=����%�
����r�d4Z_����E�BO�Mq?���≾/*��4��ŗ�����VÍט��tJjf~�zu�w��֕nؐ�A��q~E������",oK����o�r�/�����6W]t��l?{&_{V.�7檗F��x���Ӵ9	��#�S�|�IN�JN��0ޞt��c�D
.�x��gv��n���m����;�Ӛ��_�_�,�gYIB�WV�3mJ���/]�w��WC�iN���lS|�X�B5�kK�2m�:etd��{�Ӆ�H6E
[%�J=6���
+��u<N&r뎯�����^����1�a�D�
��
zy$�oǂ^=
?\�z�Dsj;8�{�ץ
nJª�b���\�#p�|�6�Ľ�
9��e�~2�<����U}���R�(�� �u"3��X)��E
_��N��c�
EƵ�<Ƶ�
�|[
�
�9�o+��γ�;�{����*���I�۪�
<sJ���e��b� H��8dو�H�f�p�Y�hں}Djd<��9��V�ON
�"�+���̻D`<�{�x
;�X(=��n�a�*���s7��Ci�J�񂄵
+���U��������C�.�H��)����
��{�79��#��%4ۍ���å�骱̭GSt�y$(�q�o�9b�Iq6��
wL���'�3
���ӹVM�F�)�Z�

��Ҳ #��UBZt>�+�
���6�ll
+5�Ky[��n
��:���
�"����-bR�$�[y��93�H��:_����
�"�r�S����t���[�����!������wQً
+�E�Hka�-h.�y8�ݭ�7Wc�t��@)���
+X��i ��SL!�j��j��v(�1�s�oFDz��&�z�|˟�('a��B������t
��Cb�>���*�	u
G�-�Et���\R�^�:�a�S�
f�&���IeDe
�a�
+�������Vc�� ~�� ?� �
�o�c"�t�F�p99��̟�'I��{�a��;�����N���v�,^�ILx�r���{`
�N|
+�
@
r,
C,�_�e�Ĉ^b=�b#��L at L�
@L�- f�w>2ѳʀ����w�d7�r^���"W�L����2P���a 0�˶��r�X��\�E��^�h�4�!%
+�{�������O!��
�Ed�w ٭b�5 �ㆱ����#�X� B:�{
����aH�ԫ �|��[�D2��
�^ 
��
�� ��Q]%e��q�x�{�Z�|��� �h�^
H��
�RY�N
+ڰ�b`P�j �
Ҁ*���
+�e@��v,�)�&�wvjR� j�p��3��=@��
�����T!��pa ��i�'�k�AG�샹�C���}�u^$��;�|
+��i|7k�E�/OF�*4��e�%P�$��@�
���t � ݏ��h6�|
�������o
+�e
��c�c�� }9� }]��m������{#=�����N��cKy�z���n�l�(�����⡭a;
�+�
��W�
5@�`8�LF��A��L��/O�nk���6`�� �Nw�>vT|�v\�ۆ������
�V[
`s��iH��
L
���G����j��J\O��Uɩ}�E�o���Fm�� 
��\��2�����!�[k O7g�Z��v����'�;�k�#�#���� �%�&��\�]�����Z��],>]�^Mـ�7�X�;�XH�!c����Ӈ	=�
�U��N
؍J5�y#�_�/ON(roK��c��|K��
��W� ��� ���@�f �:����
��Pb��b�u��t�������S�iT�`ǻP+�̈�.�=A���!<)���o5�(9q'�_�����&�	*�J���O���ڸ
�~5

+�� WN@~��W����`��rg�rO��r�����KE��a_�ו���	�G��)6
�[P��y��
�[T�N(r�mv�XnIL�Ip�_t�������KmG%�Yzh���VZ��6�T�5��B��!��7�V��@����i��*N�F�
n�o�+	���A�	�MJ����df�OzCR�x��nY��o�m�N٠�&�<�)l`Z�̠<f#�f�� sԙ s��
s;��/r��X�m���XW	7�r9�s��%�����|�,
����
+Ok�U
#�k<�B7}����7���)ވƲv-\/�K���F��?���9��s|���$v�y�����I��	��XW�,��w�4=˰�&��
+��ۂm/�k������!����9r�����ϓ�d��O1�a�a����n�aʶ��
7Â��2•���~�eG�		JNhm����
�XD�[��<z��B�N2z��
��z��R��̱��
��ܵ� �����G�+��
T])k���П������O�9�;7h5˼��4H��:��]P��ʎ��c=�st�\��@�P��	�OԦ����<�w��L��
�����fg�G�zj3[)��fى�ע��s(�~�
� M�N�|�
sK��[��
!
nuB�:���}M�{��U�9�r����qg��
:��J��,b��0�$Y ��׺���������ay��}���.tF�УW�)�:>H��27Tv���V��}�����r���x�Yx�U������:�v�nԪ0�Gx��>�xޢ�P�2�[Q����}�U�}��q��뷟o���I2VkЦ�M|��E����~#����飣U�����.%��7R'���q>�o��]^�[����c����1��ʥ�it�z�VP�}FA�6r+�4�t�>^�W�ʤ��Uy]�
��)z�*
+��
_,���W��N��޳�"��/ת�
��N.�9ݜ��l<��㝛eZ�^g�P�_V�gǜ�Fiv]�f�]�G����g% 
py]*�]-ǔ�('�aM-���Q���tAy73��p��м��}�
+l
�Fm��v�GvZMQY��E(��@
R���)�!�I9>�U�uˏ��֭x�SE�b�\�G��4�BԶ��i��~e�7@}
<��S`#�kn��>s.�Oe��=���
�E��H>1F��J����b�C�8|�ܺ���h�Üh�N� N�WN���l𿒀�~�&R�qc�k0�
�v�N�j�\^��^��+9h��>�(����<�ʬT?S����kk˯CU�v>�u;u%�x9��L9*2�ӷ��KdJ��3c�l�f}���r�bdAW���W���v����W����!��w|���٦T-���ux���*����fe�����
�q����������:����P=��B����}�_�ǶM+
�s�֨�
Щ|3���AL_��ƢCHF`�=}=8�����u�?��l�h��g�U��^�-��D&�s�+X�*T95��R�0�ݗ
+ށk:�\|�fV��}�~W ��0�~.��m�K��6����
��Kp�D/L�X��x�H_�
�X�tF<^�����Z��5U
+�nj=E-���D����
�+�6�m�1l��E;*���8���z�M0�=t|ٚ���E��M�1g��`���d,��f�뮣����3��Tm߽Դ���Ӛ
���:Se&�*�n)�����Lʦh�`��h��qt>��V#ED�UEį,c	ע���e��Us���t<N����*��o�;Ӝ�H�Xm���	�^��^Z�I�uN��R�z�Mm�5G��ٜҺe���i�凿��=�2��Mx%
�$�:���� ��,�S;˯�c��VΎ+3Ε�t�+�`�m�䂧��"lVB������F�
wnU�}/���]hE�%iǜǨ�r��f�
� �H-)�A�T�r����$[�D�����6R9)uEJ�-4�L&���D��
�ڜ.|������8�~ylm�7��VLs9B������
L��X�X1w�7�))U��6�>G}7�y���k�|��yv)�a�������g#'<�ӈ��	B�l�3cK�R�r����Dm�k�\� ��v
5�*lv�
k�[���Z�(�n���X�z��E|�S��rT?�
S�YiJ�ϙY�EH���
(��΋-� ��&<}/��z�/��=\r�W�懷�F
 ,�'!����gZ�vk��*a!�
��"[������p���h
��A��p );�L
+��*���1�<��,�d����М��szZÈ�'߿oיʃ�һd�鏗�d�
��>
(	n�0�C����}�/�2On/��7C�=)}�m at G��������èg1���L�6n�6���&� ��(���G�qbVM�v.��
+&8y�>�M/�p������
c۱�����\[&�
��u.%�q[�ɯ{Z�<yN�����M�Kq�j�Ş�܃�!	0������A��A���tG�ީE<���g�JW�29>�M�k��<5Yx�z�W���T~�b��VD�r�VϕZ]O]�߮068O�R�:)�+���*���j^���0)���4>�T-w����b�ݣJ�Qn����P1Z�v���ۋz�1�Joa�J�y��H"}W'�A�9r��W�c
/ph���V��g�0�@?Z��dTĨ��F��WD��� �.��zcT�
����u�R��p�θe��v1ߊ��h�wfa�5)�mA({6;)F��qq��#�c�K�F����
!qC�p��+��-�<w}�˅e�(F
�v�f�ت���c�o	�;�`}��A����ޘ�>P�k�I�W��i��������ӯV�؆��/�v�*�7�o���i���D[� i�$H�>��0^
+=v�(Z7Kd,3���� њt��h�	��m�G�5q=���ՈN�z'}�!����L;�j
+�s�Ԩ���S���kz뙍��P�Uż�x����V���ھ�#3{�?1�I!�����=���1^��T� ��;w!���iC�^�̂�Ň@���Ɗ�M���
��[�a��}%6�-���&�Z�
��c`�E
`U}�H���<���\�lSk�����U���Mg�W�dh���aԧ��/� _�/�������p-�!�R<���J��� ��r,�t,�<�
2�%��D�XF8���
p[h\�� �
׉e�N$~V�o�SڹKc�"��j�A
��0���*��C�i[Y����"��=���oTf��U�74��T
+Y\㯰��r��$RK^�2�����b)v���% ��
�2�_E=���
�߾
+�7��#���|�`c86��ᵩ�'�¯߻��uN�V�B�D���΂$ȫ�b���Py4��G7��P���N��Bc��&�eC��b��gc�Tc����8�XO@�
��I/F��힀��L@
���,��D�*���u?��Y��̳(.�K�7�Ն�4GP��	G
G��
�{�%
+A�<
����f=i�_�\� Y��d@�`
�w�<* �E�X
+@!�=�P���
�|S@~� /�
��� �iM�nq�o�x�v��P��g����e���m�(�����:�t$��m
�RX��Ǜ�c��$��

�"�J
+��
P��4�
 m[�/�
�=@�S�XJ@RX,]
ЮZ�G��}p at s��=x񞸀���EUG[]��&�[8��y,s����N������1����"��Z�ƥ@ I�5��>�h������؂70���^(�<�f�� *� K��e�`�

X�w�Z�
�_�{��Y-��NJ��Ӊ#����^�..s�&
�6U�u	H�<L:�,Ĭ(&�l�������/�e�� �3"��x����t8s6\
^ �
 �FO�s6K�E
��N�w^> ���O��k?a�e�r��|h
��$S�w�ݠ�e�ѴA.'�ŔX�s6�h���Ԥ�%g�_�o���	6ͣg ,k�$A��1[�cy�@��m J���"e�p;����B���~�i���,�ƒkMz#j^]wpqI6�rj9����qI_j�����Xn������%����Zԣ�,Q*��]�K�
�b�a�	䐖�쾿g��c �
+�wm�1+�rq�����~r�c$>^����]�).~K�
��R��7|m�������O�o����6I�}�@��&@
�h���\� 
�G@��0P{��S�5P�{Qܵwo�>�/d�J�g2ڏ{h	�?�%�(�_���m��m�7�!��o��_j��m�)���nۼ0��
��n��b��7���V�Y &��d�
09N�����O�@����ɈM� �lj�6��e
��z�$X3��_���S:���J��]�p�.;�Z��v�w����t
���Y:i���ד(�ĺ�'v��e�7��C�?�61���L�^��#4׼g6N�F���e����h<��0�X�:hw|��r��*���=���ڔ�Mb�u
��UHy�R?V

�
+�s���fӴ�%�6)��
���S�L���5ڽ���$��~���{tԺ�s�S���hN�:�Y>8���]k���F}ceky+��R����:��H�����Ufh�lN��&E���w97:��dU�����@��~�z���P��.���L�_V�]�����&��n`V��ܹ�x�����
̝�u�� Sb�:�w��et
j�aTʽ��
zd���j�OW�z���>�*����
bY�Ej�lU��$<62�P��\3�ۿ�_�jm��?��
+T�$�oBb^M����]����1�SCe{����D�[�����
no�S�.::�:��Poӫyت��nx�̇�W��r]m
}{�?��k��Om�!��p��O�ʢ�4*ı�NrW�Ƭ��X���B!��sdN;���ϡFQF���� �"�?�u�?4C��4�#to�wԟ]���W9%�M�z�Ǫ������r���K�z�\�H�F��ju��c0*��f���A��xy��
����&�|�UV�Q�,Ʋ�~:���Q��h�
g����%����[�ڧT9",��D���|F��@�K�Y���\��[�QP^�;�I�P�H�	��F�|nT��Kv���Og}6>=�g�'.\/�n5���xz;�z|�
��r�x�f���L�O"%
΁�
���V�U�S,(�n6�Z6���Ŝ�k�촠5b���>=����x���&�n,����x����U��~J����4N9ф�0��ۢ�Mw�W�~n��/Gw��C���W
�m
��?�-! �q6�19��
+��V��;V6�s����eZɬkG�ۅ;���k�=v��[7�9W�e'�
G��v�6�i���s�Y��Byk�t�d�*����;`Ag�0}EM��v��x��ʸ=,����|�E6�bƙŲ:��zr>'P���my#�ݼq8��`�x{�RVe
55�ҝL����g���h}6����w�\��Y�洎�L�ՌE�	�@S{��'��W_��s�v��]�x$�
�.��s;W�6zS	K���W��򯊢
+ӅVw�D~�Np��k
�].��p��^�	�h�xQ�����<2��3�2��1��
3eB�m����U֋�[�v���U
<���ǩVV%�l� J��w�0ߝȷ�r#w*�"|����$ي�?�cO
u���Z+Kt�F˲�\O��t�
J;O�!*�3���w��Q�&ܝ3�V��A�-~���\����G��X���
��J:J*ѓ�pa��t�s);��jg��6/I�є�;Ǥ6�M�(̴+����K{�� |>�x���q�M�]�J���6�l��}T.%aTe��M�me�v�@1	0fu����s��R���Si]V7�����V閒��5$��:�ĥW�d���$�@Uq<Wl��e|!�![l�\=��|�=�)K;p�Q��
�+�V�%�9�&��t�����ը����0�;�M����C}�J%G/鎅�����
�6wsT���G���C�r)��#)��<���y���H��	s��x�#�+e����-�S3.�ʸR�A8vUh�5�=fΕ햑���n+ [...]
+���.�P��wT����������k�R:|�>�T<��\�!�*	���(���I�O�;�jBo���W6`��0�aKWbk�����u�i��yF�?u�=���3�YRVy~%?�B�Ncb��P�A�X.������Ϯ@�Q'2u�Q�^��ܔ�t7�5m
m}7�H�� �l�9D�ֶoaQ���u�xz�8r�T��r�G�sg�z���0�����(��8�����P-�Y��(�ү�#m�!�'='�A9"�M���hغ~(aE�4Cw�<���J+2�:�v�������@�;?���?
+�ⶰ�����$����"����޺s����
'�+>�-�ҁ���
�)�O�yp?T�VE)������$�2
1=��x�ab=ăp=�I�;b�yF� ���xXD�Lz�ԗ��p?��溎V��G���>Ò�t���>�ԋ�e{�"E�H�Y콹� ��1���������l��z�Rv��1�HwM�H�(C�L͓�ͳ���*x�ާ�MX�1�Z�U�G�(H!
5��Q�×>5�A�V|����9m �j��?�e����=fہ�,+V��qzB
+� �yfVx��tc.�iDw%�@��ӆ��5g�6<��n?Na�7�9#(Vj
+4�*i��&Z��r��e�Hc�����׻���ꈇ
����⪗
��ԛ[Z��5�;
I2�{)֬̚V⻥@��b�yQ��k�EW�ެ�z����~�^�@z������
+�*�-Vz5��!ߺ�5��D��
+B�]�D�<�!M#o �k����}9�c:�t��,S����rh�����J��#�l�Ȥ�2���z�r3��6�|Q�jrF2�tUD\��<�� ��μ�V;�Ѧ]<y2K
�9�������Wz���wD���Q2�|C�����
��wMɐՖ���
R��m���2h�=ԇ�Xv@�f�V5>. ��6 at e�
K&K2��
�n��DVy���T�!��}�r�z�=�S�M�H;�e��8>W�7�H�ʞ`���M
+ߔ�Q�z����fa �2
@?+
`��ci���&��#�A.�;��r��y�D���� ]�{�Y�md��u��������A~����͞�
�i+ևz��w2��|�V������0���F&A@.`?. �>� � �
˜X1b��b9}�:��;��vذClT�_j�c����*�B�
1�1+N\�pG�j�����—!fc$؛;lt�U�L�:⇜\����W�B��_���N��o
ac�
R�@>��� �Pw����Z
��� ^f�XJ�X��W�v,�%�������*�`� x��\y~		���r�邁�������})�ߘ]~���[NQ�91���
���
������z]�Q��'���3����K l�/O&� ��|K������c��Q���>��2" 2r��An !�$ �r'ހy�7���Ec?ТY�*�����n,~W���n��ԨSG�e���}n�I�7��'����`^�_ !���h��?�5.���W�$V���2 ��
�n1�����N�6�E���* ��%�s ��o� ��+���d2���9窲[��DR�؜\ez@�,��B�?a���UK�����f��
{�?q),Ȋ��\�6� �x@���b`j4�
�J,�.�.����k,P�F�+{�
��
�[_W��Oʙ}ױ��%�7�l_y
�ui&u�Jwm��V
+9�i
;�-7�	[����l\M�C�jZ��
PkF��o�@t���F_W'}�p�*`��6`��
0��0��za�K097���N6@>�Q�4``~�G'��agj��7P����������Ce���D��׋��E�l�
�?Eф+�3�8��Cpb���e�}7��3�s�������
�����`�:�
|
8��y�>�
`O='�D�����T�wj-."�%�M�||�lT�
N5 ��.JJJ���r�O�Ċ�%i�_
po�
����$�7��&�4�F at X� ��]5���@�@�ZC�q�?��>
!+߁@��WA}�/Ρ4���f�_%6�Am��

U��oe�{'ᶉ!9)$�!A�������n�M�����6��@�5��M ��r>���c at V�
���H��A�
���&n��}����[�
+�
xl
���xr�w��7�!�"a�IT��U��������w�P��m;��m����}��mK�*P��:P��3P�;��s������>ٛ��-'Iʠ��X�N����f$�uۖ[��}������$�6IIHV'K��I��&.����p��t������dP`T��S�����B���O������d�6��\{�$�6�lnI<���?��|��)u��h���rLJ|]�)��Sq_y��l1�r�t˙���=
F�@�3�Wy�vf����ӕ�]z�k
M�����S�
�X����ׁ������X"���t���+ݜ�����Q�8<�2���'��aĂ�~*\ֻ�m��҃�a}�d/�(ȿ��R_<kq>R�lj�[Ӆ�~V��$�6����o�i3��Cao����AO�h$v߻�2|G�>6�
��

�[���C���Ũ���0K};ֱ+.Um�yx�tay�)1�2�"�͏+�W

��0��ƃ[c��?��G�3H3=�]��mߵ�8�-�|D�{� 	�
�7�H�r��&ڻ����[3]]��"�R&3*2�F����U�B944��Zm3�Y_lR_~�
X�Y��kgv����2?}"�Ƃ
��s���S鴘\Mwk{�����8z�Q&0���z
���k@�sX�d�tϭ5���3��\ϥN7.u��h�i� �Y�|�a���$ThC9�&z-�D�8�p��h
f(5�H]
e
2$&cb�άُڃzʀ^�zϭ���~�w��[�h7��
ĝ�叜�5N����d���i�\�m�ؾ��2/>�N�@Թ�:Zkĸ�y�lSyߩP���e�<6���L��&zDk���u�����P��t����,�ڴ�9�o.��	�F�a�6�L��;�[s[U!�Fpӊ���u�OT�F=]�&�|e�U��b�*��˨4�R��o�E�N�K�(���q�
_���y3������L��W*�C�V��}T�Z��ZúSu,ӊb�j7~�U���
+�L�����L_�ǹ�Sz���R�._�
���C�/�a��P�{���=6ojK�{&��ut�ֲ*�f�K��Ĩ����g�l�����g�ϫ�F!�^|
j��k�P.��W��n:za]cy��ySU��[��s{y¨���~�4Z�Y�=�e���*öN�[^�i��\S������`��!�&��Q,�^.yc��u�B,�������Z���
�����1l䰀�Z[,��x����i(q��}���|ɦub#���NM���xj\!ө+�ӺTIf�X=��R�ǡ��zq+��uϚ���t�pF�c�L��bx��kHq	�b�u��*�S9����5���Ĭ�
!���v�v{�j�������]9�@6t*�RH2��c�lq���3"�6�SB�J�ԟ��B�qw���Jc��lƬ�ъ�d��]7éc�����ǡ��!�^J�6��Ҽ��~����
+�����i����|v?f�b)�Lщ��1b��^����	���.�Fjt��f�G�Y�QSa�[���8��b�'D�
�F5:��G:��[JNM)���Zʴ�*�8����Y.$W�L��&�g��T�VC�D���p�/14ґ�%�k�AmS��B���gz�u,��8�->�\��
��Z\ȟ���r���9�k׋��U
7�5%�/�}!1%�a��z<���@�䂞��D�HIk{Z��m�΂�f�����.4�IF��{�?
z=�jY
oY�$o�E3�&��˲}"��cb�MM���os9&9�-D�3�g�X��jz�
����+���Ur���`m�,/��U&󅻴�@*�lTb�
%�RA�!�*
�p��$� �u��:}^������+�����IV���?��	Z���E�	Vn�.$;���Գћ�
+�B=Y�o�o�u�{�ܤ��pe�.;R�*su�Q�뱃���X+KWQPSO��K�9^��
>d��j#���#��vX���t�
>k��Kf��-(:�V
/-j���Tq1���A/Dpj���f��¶Y3��'�4h� ŕ̅����KE��].5�'�Zi��z����a)���Rh�w[A����%v8������K���4�pq'JFpv�	��hk�İSL�u+��,Ӧ�eaF����ܚ*NV��N�[�&QW�.Q��db��
+�b5
��|�*WRo�d�\�c�bK�S����ؚWnRu�8�b]�	J��;���b�9w_��\��m�綸cG�ڑMr�3�>���(�O��g�&8x9-5jy��vM��!mb�a#Q��q
oM�:�d�[\ɳ���΅��>
����\hc=!
ۢ����(�8J�nb�

e�8�6]���\������ˎ���Cp�Mm�����F>�DŸS�h�M��N:�-OV��F��h�h��:!�cܒ�=�� �v�QL��*�5'K�k
Գ�iL[/a����j�}�X7�D\�s—�M�'��S�M�����[Ndž+vl���4�Lt���
���eM1����y �<~%yB�#�S	�kX}���c�z���s&v#�,V�6�
��`$d��i8pnQH*'�x�.K7��љyIw6z<�ʼ:�gp���}�a����g�`�p��b����Pd
+�ɘ܁���k�q����4�� \θ��{x��\ݕh�V�X��чE�P��n#vܞ#`�|V����<�؀�6�R k�#f��^*$���W���K��
�ݹ�1K?�A��@��L�4��O)ƚ�ġV��OH��
o���vm9X��?`���>
G
�P
y�
+���LA�I��:����*v�p��v� �s�cs�x%�g��;�6���J�B����m |(|��b��ּ����m�̨�.x‚����:6!
�	�^u�X��ڠ#>�E^��
I_�G0�27�G��q%�p)�/E§8+�a8�Z�|C� �O�O�k��p	�>�=��
ڶ��I�c��-���GNf�oL8o5���+ǴGx��Î^V�k���
�f]�Ds7��
�?����
+Mƪ[$SL:�`�[@h�
���
�,�@�F!\r�ȥ[n
@�@�)��'J

+7��bp;jB���F+L�ֆ�LS��'	�+&D3��=�鍵{ґ����x�
Y;S+��ܗx'�Z`�Q�&��UG�fr`Or�f\@\Zg@��O@�i
B������
f
@��5 ��Ht
+��т䟵# N� 6�~�,�r�W�;=;:�{��M��P���p�����q�DS�ٞ�KƖhU�
��+,�Z�*�;K�&W��3[@-����ç�c�
�NB�K=�$�e@��>�.��E��q@:�. g�+ Y�/Mqz��mk�M�j^�Ee��|8�|��^lt�t)I�ɽ7;|<���
������-2��7p;�% 
�{��
(�uT.�T���l��p�(;(���m�u@�7

P���u�3��
>�:WP��T��O��jMKZzF)MҚT�:��i�.Y�
��>(n
+��*l�o�������j7�<@6�	P��%ԓ�O@�� ��h;�:�)�!o`(�c
��5�M�!�/��)�W���Ћ��(Q�U�­���vQ������-��D�[�
�W�lY>a={l�w4]o_���-�:�_���ۂ�1��<`� 
+X^�k����[K!l���>`��]��]�݀߾��p<�� �k����.���I[����N�5M��$F���{���~�s*��(�[Ov�`�%
BQ��
+n*
+��4	�1Q�_�>q ^���
�)�㰌�Zn n��n�>Jo�h�H�)��W6uaW.��BZ��V]�+�G\�<���3��
B3���
����t�q��;
�p�پ�P3
��*��ͭ��(?�@,e�@�W �1	���½>�k܁04�@he�Ӕ/��
Z:So˵�^⟕t�)e�Z'��+cS�r�_z�h����P���o���w���|�?H���i��G���@>�?�3"_h�[xї�B���r�G ���@:��@�
U հ�J�5�K�J�O�r�<�-#�yF�� �]�P�
)��(�W�
-�`�{p���/�돼��m�I����'
���6h�h�1Q�{ ��T�.�m����қz�@��;�4Wz�L�5�#(����^D�v�7�t�'�m)������jf6��mH�{��a��f�II�2�~t�8쮂xk��uquG��Z��Ċ)��Dh7�.Vb�p\�K
j;
-f+�o��'�u
+��)���ʏl����'�m��~ܶqyQ�ʶ�2��l���xP�=�a�h`(�40 7���}��@/����ϓ������|��?�߭�aFl�٪m!��m;<�ct�xNI;x��	� �
�+�:��Q��ԛ8�We:�]��vNl���)ly���M�(n�V5�~�B?Rcf�Yc������N�砇 ��3�g~r6ОS|�~�i���f�&���&���
��1��3���T콣S����[T�~����z,?_�����W"��8��n�_
?y�!�pթPo��3
��ȴWe�߄bh��B�<����u��^�S��'��ƫ���H����N,�=�(�����L�9����9�O-���\듼�Y����]�㤏�GY`��|�tKfX�;�����P�5?�C?q��ZN�M�?�BMt^}b37{KMO�]vz*1�Ԣ���5���o�<�&v��"5�ֹ�r@��۾I7�=�l�z�}�Zr�d�
�h�E�m��b��^
�-tkzͅy-��B���څ��D��"��Xy=�
+���
��q�z��c�$�瞸�z�Sm��pû�Hr�����A,�,��{rK���9�\Υf�|��u��l��<+�Fu�,-j�h�5O��z
�j
��� j��-���i��������&F!,�>��}�C���P
͂�(���_q�~��
�I�msI>��W���x���eP�
��JT�ɕ�k��_�j%t70����/G�V(���{���9"f֧����,�~�ߏ�32��{D��XX�0h ��¬�pٟ��Ҵ�O��ͥP\T��b�C���"��F����F���-�f����~��5�s�4n޳Vjd��	���L�[���l�S��WK���,����]��Y�g��a�i��#��\
��S�م9!�зZ���ǰ����	&d�^��P5���0(��Ţ���i=5�L��{?�&�u�{Ί�4����QP�]7�;w����K��.�pƾ�0��r�Gq;�.v^�Q"s�F9��KL�����[	�
aŪ�\#V�2���eIN��+�'у�2
+��p�
�ra
�K��+hz9��PN%L��'�W�
w'�z\BkV�bVa7��p�nU�j1��E��F�q%�+x�Q�[S������>!�k�Ex4�-
V1'>t>�i
���zY�o	3�:��q��@�*�1+��!�����Fp�[z
Z�!����b�솫�Q˪�V����NSy_�e�×
+�4N�b�E�B*�IkH��i'��yCZ��=���}���
�RV��
��
!��C����

�ژu�����z��:�s�Z�]k���#��EMI�;/P��P�� WP��ŀ�
Se"(�R9mf?,2�����f!�yru�m��WZ���P�ૂ$i���h�u��wK�G��mg
-9���6
���{t��j��:J���R���L^��
��,e��H��΁�8H��H
 =љ���"��8)4JE^��^�?9�4o՘*�
+�
�m�W\LM>Y��K���Pe��
����z�q�lK�N�R��B���aT\n���Y���vr墝�H��c!��T�%�S�|��"o����.�FSX
+�
�F��b��U5N�����m\�1�����Y�%h�`R�2jט�
3����t�t6�$�ln5����1rf�G�de؏��B��I����'/"ԓ��U<����Il[�B˞	r7m��5��Ka·��W_����_
��>W�~߲C	9�z \��6|�NWQ&����N�$6Mc�Z�*Fw#��Rr�8cdE�t�q�6�˥}b�gUF��n�l(�$>�	�6Ǣ�����I�F��plm��[�r�&�\�|
���j��;ܯ&���L�1_0��d� �~O�n�3���Oh��K4E�G
+�e�i���&��#Bh����x�K�����-��.�7J�9�e����m��:��NF
O���A�ץ-qzs�~�O���2d�H��L��>��=�����f�tn���x�� U|�65�
�mi{'���M�kIԅ�L�I
+o)�*.ߌv��vX'QD�������&��
M`-
�?����HW�Iy��9��i�M	���w�j�Bk
6��m�Y��l��L&Q����ء�ѡJ1�CQ�On��YM�b?ED�T
�3!�o5

W��]�8�:�y�p��&J��3X�$kC�	��M�2��IK��5�����|B,���]��b�n��5��p�az�&'��d������G��
���
�:tڄK��D}�	�s��w������r��F�u�1@��C�	�W������e� �>����VZ�%Uڮ~�
�����8��E!ھ����-����5;��3f�^��B�
�5#B�52<� C���v�ŭ�3Į����Oo�t����P]#��x >��^���
 c=`\�0��
�= ��*@}��`
y_:
+�K2Lf1J���b�Q���
��\P�����lͼ���K�&ƥ>X=����6O��k������n�3B�x�醍�Hw��|w
���
0�tX[E 
x�u��Z�XgTX7>X�
 V;k �;m����{`I!��{ռ�# ����V��

+�|w
sY�a�Cś^�6���ҁh�]^�=Yv!ǭ��n���>�b�����	�|}��8�
 N�
�pN%S.M���%����� 8J���8/
vl�R�$�
��є=�CǷp�^o�C�\6�쭙lU�Ӆ�ަ�:$�8�#��[��v�[���Ƹ�؛��	u `�x��x�ѓ�W�
�
��CX���p��
�a��n@�<܎�g ^�U �;גd����J3U��uJ��ח����'��DTy=�I���Q
��$��z���N�Hzc�!�,�x�ڀ`� ��
 ����
��
��!ԣ^@Ԛ������D���p�c^c?�
+�>_�2����4Mk����S�ߛ���76��ff�[x)edM�L�f�n��Ur����5�� �#H0�CR� �5�h�!Nj�$U? R�\ iܟ�L*�
wd*W��2݅��R y� H\^��
��
��r�_�r*�QYf�	J�P���^n��
�%Ѽm�`L�ϰ���"o��A���v�1 �(��*d�����B��
�ruŠT
W T>����
(� J^���'@��=�����V��IJ��VV$a'N�on�;
�[a�Ќ�ѓ��:ԼQ�4Z"Y>9�u�?�g
2[VאT
��~���+C���hf�:�P�n��#ݶ��`E at W�m��f?�-s	�~B�Z��eM<�0�8�f��Bs�"
g
+
��f�Ѵ�\������s.�,yx�"��7�
r�t�PO��~s/��\
L�� f��� 々
-�bN
��2�s��) �~j��m�T����sb�Z��E�
+���ݚ%Yn��0ㄔx
������3��7$�M釞�C����n��>��S��ɕ��N��ypj8����� ��K.;
N���'�nS
`;��?��̹��{�懄6j���4�ܞ�����z|������%�@�w��#�~E8$���ү�j۴�,}VM�ހp��@��4 �Bm\���@��$(�x���M��
���E��c
p���
4~wn��԰o�=��CJaT���-;����?�wC��Gh�'/A�=��� ��r�S�\������@:<n at Zݢ@*�z@Ґ7�n�)
� Ͻ�l��TTB��t&�—��U��uۯ�|��
�a���
�`�
-�?T��ӏʥ�9�V1	aS�4�=D� T�A��偪��@e�
P��X��2���
q�ft,=~�^���%��i����nۿ�mÀ�P'���6�H���^�['
[�k���3��F��:bw�Nb�끘�x@�.@�
'
��j�\����v,s����C�thM������җ�
.�V���i�vۆ	��m�bmH����k�1�
n
�ށ1�q`��80�
�= }>�^6A�e
���F�/%��b�B{fV
�[Fl�Y����V^B���w�x~f6��#�7��Z4�
m%�{���n�g�����r͖��U*F�S�mYG�����@v
�
�k� �p�P����ӗzU?��9�!�����H����
�#��Qo���:v�:d���ϥ���UNc�X;�M�����M��)���ג��x�8�$�|��$�U��_��m�����3�"���q��~
�������ߠ/^;�C�U9�hb
N���0m�R}�t�G;Ѷ?p[���a��o�u�ؾ,1�X�s�d���Ϳ���~|���+\y�k]e;q�����M��9\d����8��
�{n��7~�.�Y
��rhE�ӹӘ�'�L�.�e�"x�6j��.;�&��	�t��INA��F�~�:\�����]Z}��vznu;��jܵ�լsm�V
�r~

�?Z��me����Xy�i{��6�9 at zz6TkC��k�>qO�
+�
m�a�@h�
��p��P�
����s�	oy�p�[�{��eE��4#0�E��ĆRe��N
���	I�*�3O=�l*O�^�&�nś�'
������/��T���r	=U�a�@�ІbhϪ`BM4Tk�0��^��Ԗ��~f��-�V�p�.B�m��ZTt`n�㜹/�W橔����JT�zf�֢*�6�w:3!�y;-��LN|�̬���*&
3���tK�J&�^)�G�I��&f��Ѻ����Z�ࡐW$�Z,�\%o*'�+ݫ�s{D�V�P���g��Z�j/s����n�5M{��"=(��)�wS����Jq�Wr�$�dV��Ƣ3�|���h� 
���
mh��N�uy]���?�LC{m�1�]HRZ�Y%�� _�S�:��R
�$�;�LNkqBQ���Y,�l=�
7��,�qݕ�rlW����J�nj?a&�Iܝ��x#k
c����J$S鮡]wZ[��^���D8?�]���XF��qx
�u,M
�d(%���uG�'������)�'W?�H���FE [...]
eZ5@
Kej
ly�k�B�8��g͆0�C�$PI���B8�r�q� n��

"��o�]ɸ�(�YA��
+r�o�@�W�l��
�׵J>�r*���=jH�~r����u{����̑7Go-emJg&� ��:��,
���T~6Ǣye�"��tw1i
�¼'H�j�hCx�����*��U��sWW>s݆�Ep.&Uެw
��}�X]
��jef<����a���["������9�����
+�b �e��m~��&�x�!���H;)8Y�H���ń���ť������y���y��z>�a��c7`uU
3�M�1�^rŤ�
�~�/�t���l��H��b6JR�<^�H�7���z�?���QȲ�Zd����r]���>
+�{6�ˊ�9"x,Z�?�t�?H[�Y�B�7��|��+�;�g,�E�M�
��=�I]?
+	L�̀�ۥg�i at cEg�=��4��
+�v�H�t'7���ǒLI�;zT"̝0$���H�&���Xw/�
�^�"�++��"��X���R��]��gntW��t/��%�6�
�}֘��LzM4��ۭ�xvѠ��q�Z
�-�h4>�mS�k�#7��d�E�%�[|�/��-�+Q+�߄@9
~p��4;%\�!v^�G�]��X����i[L=p$�.�b��Rə���-����Q�&S��.ԓC)�
EG=X���Xt��֩Ul\���Y#��� +�l�d��&�fR-b���Dm��B�<�0��G�u�慸�r'��.ژ�ڞ��w#Q@{�myf�}GF8B ��N�Wj`�	2 ��P!����R�\�#oqx��c[�2mθ�1�|�C��D�Z��:�-�M�J��ľ�׉:*�	a��ań���~��[����Ml�]��)�������?о���Ӷ$d��3��[ C�7 �NP�L+@z�	@��t���>vM��Z��?V�
+�R�Y��%|k�ʌ
��C�
�zM�z
jdU.׈}'9jz�\	�@
����]Ə֩`mLc�
z��#�_����/;����W��7��U�������k��m�rsW �_)�x��6^�X�^��h�
���?
'��r��1e��vH��b�*��&<+��F�d_���L�A����[��+DP�:ֹ�z��@�M����

���#�)�� ���@�
a�h#�h��Bx=9y�4-���<@�|4�f��&/J�<��T=;�P���_�7�R>b��$9�j���$DNo�GW�
u
2\? C� G�_�4�{e7A�nCΰ
����M�Do���
��0��ױ �H� ��� =I%�nZ�NZ*@;�D��x5�����P�Oxs+��]�6y�?4o����S��O�
���5\i�&���,x�g����5x��5V:t!< +�S�-�,���`�����Xuo�f�X��,oV�_
 ��:�h$�;�C	���[��!���m�i����?�J7�ʻ�����8)�:���uu�D��DƳeL�C`�
�չ
0� ��m��zp�� X8��p��8M� �N ;`�u��/��c���
+		���T�NH�#�
��l�-7LVç4q�
)z'v	��n�k��U.[Ǻ��Θ��v�
+��6,�sS�X=9�~\k𻳄�m�W�!�d4����!�O��^��� ޭ�(˱]�T,��à>6�~�ɩ��a0��Q�uD�5�GH��ƭ���zh����@��Q��6&��
r�����
 ��	��� b[:B�!x N�����*�]�
+����| �XQ@�]@$� ��/ϲ�?�bh��
��q��%
+rL�?&O���e��ŹiyI&�W�9+� ��,@ � �V���
H�[ ��o9\� yD<@>�/��-�(�OC�5���O�' ;^
��kȄ�~�Ò�$�����K�j]���
&ub�p���� �ַ�
��CdRX at 6l�ne0�_��8���o��8=9�<����{Z}������Z
­h4��
� �>Ԫ�Ը9T�& ��aȄR��//u�E�a�	����
94{��d�%���Y��w�BQ�˩�!��
�40���|{{F2��
�%�CH� 3�6>�
-n���
�T~�e�[(��A�=z����j~/���#B753�e���.�T��x^6Ɨ�_:��Nߔ���
ꤡ84��Ur»���.�J�W

Wa
�E{>�PY�T��v�-y`�����萖\b/�J��ٷĽizT��q���!`9�|+�Г�h��M�

���J�]9���ZnCy2���p�g�
���
�x6�����~���gpӨ��ש7ÐQ
%��r�
/����PO���_zrH*�N�'�J%����-݆ʤ\���%��3�m
 �}�$��Z� 2ziiX���&���J@�k[ �i�zjl�{��1��D�@��@��ןT�P�لD^�Ϲ����7�/����6LI��+ꤖ�}'ڦ��"��
: ��ր�����
@ɝs����8�
+>(���?!�_��O�}�(Դ�„lB"a���T�P,�ζ�)ꤟ����D|;�����ó�"�X�m��r���9�M3
�~��DOK�h
\�#���/���'��m�D
J�aa~�چ!
�n��h�cE�0����(���%0���
����m����[��Y}�D�^��A�-����) �m���o�춭/]sYz1�d�����
�(t MJ"'$#����Zhdv��ؓ�%
e�2��|�t��;]�a?c��r��kQ�h�/���\6�Z�Z��5�0������&�
�Sj6n����K�\&��f�3;�u�=�8�O�FN̉����lg>�J�eoa+O�%6Vr�t��v��Lo7��E��8Q;yvy�Z���|�8��#w/N�ōga���?���>���[�_]��Wu��U��U��[���G�ߩZ�٣��T-������W
�By���xG{�c���1!xց��
+�Nk
+�aT�S�
7�8[�Ώ|Q>�y��I�e'.�T"@���r��܊��b�)�z���
Wf�)����+X̃���b�Z�||�s
+��O,)�9��Tʭ�U]F��OQ�uc�����7�8R���y+�8u6B�a�R����K�Q�
��G�+���n�'�dG5��*�繆�ZL�[>owf�
6,���= ��Y�}�,��
^f�é|JX�ṫ���ӳ���\�W�t�[��N"���O��GI�]���¶>]����ǿ?��WU�࿺�U�����WU�࿺�?�
���`�[<
=�b��ث�Eo����w�..�oSBp�
{{�OmU�y,MlJQ�^Yfzm�X[d�0=]�qC9
��	�-�/|
+�������-w���69i�g���Z���e�7O7U.lfVtk���<�D��W�~mS��X�dݖ]r�	�	=�FZ3q�u����#��q�^�Q�U"���캋��i�Z���>%:����x������ur�G�S߿۰XM�R��*ś�z��+t����N{�R�|j�~̣5��!ox�����]]�G
u#�_��WW1��U
u#�_��G�Tᘞ"~�)�����\P��DT=�c&�Vu�����љ��Z
N
��s���
”�5����ё��K�B���w��������������}�5
Ҍ��pÇ4a���
��Z�?�'�
��
�o��6|H��/?[O���l��׭���3���
������/�Q=a���
����Y��7��ٗ��}��K����G�?ܗ�S��7���k�_����f�����ң�o���H �߳@\��,�z_h��Y�
�.��m���Vݽ�-R�{J3�^
+l�%y�x���r������>D��i �H�J�<�恒��g�z��I.�<�J�_Ц�9���E�
+n32:?�Ⲽ&R�m/�*�vm�3D�z�?�?Ҭ3~ M�T K��{�#�ua��V���S�
�v�l�_���e�
�wv�9����=�-�ָ�1�Q+���9D��>ln��M�/���!�gf�
�
��
֕k��:��4��6���"��n'��h>�]�q?[û��4P�u���Ȗ�B�a��f��O��UH��gi�;S�^,.*��`�w��伎��팎-'�h���Ӱ�-_:�u�u+̈́�+���>�W���[?��!��<��W �V��)�›e��u�W�Z0�Ep�N_�KP,�&bG�����Qq��n�t��H���t7��h��/!��˷ Q��!:
$����:�����2L�
����
�����6y�7�ư���Щ���Vo�N4��#�k�;�VM���!sqH3>��ɕ%�_����-\�W������K{���ɺݝ4s�9���Voˤ�iԵ��
(u���J�*�l�����������
��灴���D���U�������,���:ߜ���z��xu�득��>�jѦ_I�
T�8sk��pb�r��-���j ���|����/��sH=w1�Ӵ��ؖ��&�
�
�
��0
�1���Z9�%�n�U�q��J��
����v

���y�Hx��ǃv�Lz��.�W�
'�j�ft�j�宫�Y����M������Z�T��(w�3(����C���		ؐ���� 8/�s�ܶ�JZ������9�}&�a�X1"x�ѯ:]M������1��KPI%�8A��oܗ��B �����v�s]�F\�V�&]����|�t��]Z��wK�6s�׵�
ū)
�ʍŮ��ʾ��]�Z�6�[�\��5��
!�l�{u��ގ��'+{0�?+[Z��h*��>7U�
m����^��������J�<uJ���-��侘�����ax(PT�����!<�¦�/O镝w�����F��S�5Щb�;�$&B�&�F���U:�dp�w�:��y�1-��Ԭ@��y�z�Vy���>)ѿ=��5|�����g��~s�
3w+y�
u������,���
ɩFa]��c�
y�)�����5�]#{�̚YK��C��?
�m��j�
+E�b"J���Qi{:�;+?oMƼ-���t��SwT�,����o̖��_�/���^͟Y~3
��;��}B����
+�_�	��o��}�;D���W�������h������zF�����n�_��?A3���
�S��k����i~Z�m�_��?[O8F�g���/��D���pÇ4?���6��k�����n��/$��;�XO3�T�k�L��@NZ�7�5n�8b��^a��ܶ��L�׍��^v+�f�'�٤�p#�4��]&�q�5:l��_�4�%c�QH�E6�:�:�(^�5֞}�aݨ�0;���v��Ζ
�Ϊݥ�����Sp�y{v�P��5_���x�
+"��|�_B ;�o��
��in�d���э?��i�F�*�c��QHv���o���n������f.����<�%����&��ῄ���HtT����łDW�{���Ld׽�z�c��
wE���O��e�0��y��<g�8�ڵ��{� Ǖ���=�Īq�5�MӸ�n������^�f ?[�%P�1����c��c"M_a�ǽu�\?�{��72�r EO������]�.�ڼ��%D���� ���7�cυ#�%���
+a�xz������/ǃog
N��{��R�2}̖u�1�4��C?c\�m=X����j/S�����o��g'�$�	�l��Vχ�
V\
.�4v>��z�i���I>�!E�����#�v�
N��Z��y�Ek���U����i
+xɬ<�@nzp,�k����A춙
�B^��ʻ���~����Q�0�$ێ)z�/�6��굼2����2����C!�p���� HtEt�:��<l9�_��`xJ���0T��,�,���+�ݿ��L�nZV�,5�A-_[�|�����%��6D���7��
�''xUbd�S"��i�ۖ��/�`0t��{��b� ~8J��f�8K[�#�2߂m9�1*
M�-����៿
��\��5	�����D��g�zj�
g����fj'/�N��L�H�2�O�vs��tK���
+%�x#�ݴ9Ǖ*߭�ek󎖺s'���C�p���U����[PъzS�۸�����m����[��3vA�G��Y��g&iuܹϗ�q,�VҒ��	��ȱW�UQ�8̻ү�OO�q�D�r�E���>1���<V=�{��]�Ӝsx���b=+�Z���/W�D�
?��q�����.cV�
YiYQְ9Q
i
+Y��>B�����@ĞxU�\^f�s۹\�m/���'�vmܔ�T�lC�1T��ZCg�4�y�0w��J-w�&(�8
+��)���� ��߾9��@�
�~t�>�|�F���ܪ����[�9'��Ȟ�l��˔���F�X5�d���'���h��*=.(;���h;�-U�em_A]�
� �}������҈
������֞��}֙s}Uk��煑�>DddFP�R2=z���_�%��WJ-�'��۵�_�&�ѝ#�f�.��^���
qa�
�$LJS��	�
�q�6�����W�
���,��Y�����| �� �"Əƹ"���29V񎄤6�
��v�%��L^��,���Ħ��t��/��\��B�~����F�NGgH$�.E�%�4jy���
���˯.��~���L��̏�2�
�r��U+���K�ۜX��z��`쩶

��_�ÁN4u��aG�
 X%QY$v"'�E�y�L�j��#A�.�O�H��J
���C���!#Ve#�Z�C$9cRt~Ɐ�Hl�}:�
��>�&T�J�I��
��y)�
�WsPB�O��t���~A�˱}?�[v�JH�]��We]UY�5=N���
7��F'd!�e��^{y�+
l�Q
��R��	�v�*��5P��:�	��}�@~6
+0)���V�	�Y��7 
T��� �8�0�K�;��\���iS8w�-�4ؽ9��#gtd��1甦��y��M��O����w�O���7A��	������۠_��s/�m�bœ��u�'�F�G
�w��7�����?��8������?1���G
�M���=?����y/���?1?����'5�7Mv�]lC�ϖ
PD��w�W�#P�P���{
+Mmlv?.a�)Z}'-�t�t0��B�
��Q+�D�Xt-u��]�c�á�8�R>����)�-S ��T;B*r
's	V��
W�n�"Ǭ7B�����YZ��)
�½�@�7Y[�S�q�[ij=L�� �7�K.=I?¬;W��#�b����|:�4EPx8��k��
�\
ʨ�ْ�r}R��&k�
�d�fn*):����[�*ǔ�/决�(�=u�R���b�7�H`��@LW�A��J��m;2�6�ʝ��z
xY�/���V?z`b�͝p��!v��f,8�h)�u6���ȩ�&�D������/[ؾg�ӗ ^ ��Š�V@�
�"��S�>~�)�ѯ��a��j��m}:�
ڂQ)�^�<���=��c_�GW�ֽ]WY���;������y�N枠�O�@��RAI2߹�AM�n�4O��S�+_�r�j�R(�"��s��'s����7�op'^[���'���o�سP�C�YF��CS&�w�m��N0�
�|���\�r�<�1�,�i��
���z{3)��b��a�����������D��
�~���Z�W�~���:�i�`
�!��"��g̓N�j�+;6]r.q�囅�.8���;���&��"���1-��X01�o��C]���,��Q�
���b~�Ʌ\�z0��� ���E���
�I���hWq�
q?��
��"׷�=C�]m���2ˬ�,t8c�&9��+���7[�S>�?ο%�%��wm�g�ӥ�s�x4�U&
�S[��뇌sb�W��������."w�M���j+
ݫ���V�����u�I�V�I"�|U>���BP:ޝ@�k�
+W%6��##~���n}��'C���]%�v3l���	�1��
���rX�K��r��n?�E�4��;�#M�H:NɑaN��Z�
�Q^���|L�����$(
��c��Z0��R޹6:�*��3
+ii��
�!+n��Nߐ�T�	۪��� �
1���L�힛�ZC�0
��C>�?
|A~�>c�xn5P
[)P������0+I�L
��k!���Ὠ�}y+���b���p�
+�>�z�a=
��'̪_�FФ�)�K��Y�^�gܷ��t�
�B�ـ�J:( ��Lҧ���]4Ø
�e�
w�uf��Pȍ�Ц8�_�agѸ�!X%&�<
+c�N৬�6>l�\��ʫ6#���(��MȺ�����T�g�jyH�z�Uomoєy\��4�\g�d��Hl�
bm�N-n�d��v��0���dF��,=|ԲYJ�/(IL�� \�O��l�
+C�
+썁S�~z�|%s�5�����9W\�f��GbB�%�H��T
����ԣ��T�Sݻ�&�}y�0A
�G�z�&	*��S�&Y�&������
��LA
+sPt�K�
c��:.Y�e|n4���Hf��}����TGW�i�Y�D,5Ӫ�3]gc��d�գ�k�܋:�r/h1J8lj�r������Fpk�|�=�r�|蜳�Y�u���t-���(��%2�.T��2
`N���P�p���h��t��?��|Pd*ȡ����u� ��a�g-��K�c�
(J��]X�Y�ΊQ�y5s>�R0
�[�����`r�v��u���oZ(gm��T ㌶�С��

B§T3~���[@f�MH0�ٓ@���x/��יA�kX�k\.F�G5�����Y7�1��Gsb%��G	Bb솦�7��H?��F���1D�D
��4Kҕ�OX������
��z��~G@�>җd�1��n_1	�	�1!�}�<��Ya�U�qlƤ6���(��H�:�0�aJ���UH��I$z+��T"}$�SLphx�����(������O�$
+�@���P�$��4�{ȸ3�Ba`��^��p�@�ăN����N2غF�K�&���{�6&�`L�=a:�Z�Y������P��ߑD��YM�h�UsZW�Crc�|���U���C�"PYS��"k
������XO�.�n$O�P�|W$x��E�b��΁��?x�5~G �S9�*�@Io
+�%׀I��xj9x1v|g}��e��4�\��ԥ�!g�r��긇�e],�έ�$Y�r�p:
2�Sb���ʻ�vf.�_���׿ ���A��	-���_���Y�cϷ��Q������q�'��;������_����=?���q/�E�b~ ���8����y��OHN��@�
�������0
+δ<0��'��0�*[Lk�1�
XGъэ�)��)&U��^�XF��;�
n*�W�O�����U ��P��Uz����CL;����
f���	ENGvZ�;f?�@��8_��K~s	���zI�D,{3��e#׫
u
	Lm�U/GXQ����C�P�*泥�k��j,Q��B�q8^E
�`�_[�Aur׺�k���2n��s{yU:�kio����[E+.V�r��[��V�ë�7����JYW;�MXu�o�Z����nN�P����"�_Aq��"����]t$H׵��[2*�&�+z���G�q��5�3�p�92�'CiT�i�˥y�����@�4���/P,nw �'!�b|�l��b�>��h��ǝM�����yeu�{�C*�����-�Z��k�����]Yzv����wE2R�{��
u��}K>�?��t2�ղ���ɹġ))��)��L)
������vNq�/;P0N�1t6�;
W��tN������>cK0O��
������٭{
F [...]
=>��?�T�>���홮hi���W瑤
�
�҅�ۍ�^o��͊7c�w�Z��r����g����@������+� -�+�*%=C�
+(��G�����[����&��	���qW�ø�w�
�o^ro��R
��i
���?o���Y/�B�O	�!N�Bu�7`K
��~�
W���I�t�Ո�$Va+��O���[���E^��FϯŮ�ҭ����4�a��|b��.;{�-nJ�송��:�tJ���Tw��䯯� �� � �`o���T����UǾz�D�d7������:���i
�v�3� "�9���
j��L.%'��b��w�"����M�#�i��� L��WK�G{p�l0�� �ƫ�"7���xv�V�&�a��Q��l*q�-�Q�����.�ք��hH�ɴ��Fΐ��u5�
��I���@��U�� ��p�x��0��[P��ǣ�hU��b
�22n��V|�˙n
_�<��(����`�U��EӘ�f�$�Nf�BvTe��p�xY��P2���aG�ޟ����������W�]%PJ�� 1
+q�9]�k�4��5�{�!���
Qm�M��\�
���5
��I�9m���5�ϗ�W��$.J����Ky0�z��) �"(
w�{��'�Gÿ�
F��k�_��k���_
Μ�t��NoQ�̦r�~ ���=ILض�S��%�a�:��IQ�1�ҩ�7��
��E����.Gh�
����}`_�K9<͉EK���Z�4/�=_�Ȗ���U����b�f��+?Ƶl<�w�Y4��q@;
���2F��^r0�g����� �^~2
+
+l�pk̄�&�w��;ͱ�]��^S>�����-i=��
��œ��y&�q=�㕟�h�e��+��{�Ա�S)e�Y��t���[:ѷ3!�7��(����ҏ�;^�9d��l�UE%�S�9Z���r�ZǤyv�82���7��A?g��P~�g��W*SZ��x2�Km���x�Aߙz�O����
+��V�����؇h/�,d�,�����ڠ�K~)�"��
��+p&O�E6[ޒN(��0�3{*+�r��
�K	���
O;a�
�j�]p���R�*�^���c=ʹNXr�_�
zX���5[Z�K��rb�bϳJ��p��
7�A�
�s%k�'��V"	�ݎ�/���`�x?��|Ւ�~
�RO�IJ����)�<�Ǯ3ݒ��w��2�@���s
���DYOjN ҃XK���� .�7�G��6Z�_��L/M�'tϥ^+v�v#�vE���v��yi�s��?��������6&�o��~��<
2�ŋ���:�
7�Jw�:�.>����|M`��
�sN�� ß:	ssm���ۦ��
��h�.h��S�5*^(A�[��Ђy;������P�%	�x�Pv�UiÒ9�=L�� C�j�����+�=^3�y�;�u������.5A�����b�R��|�t�Ɂ{�T�)����嗘�o��
�0?�����۠_����9�z��u�'��������߶��;�ǽ� ��"�su�� �*���AЊA�s`�s=\�����#O~Sw��X'�@9u��
W��uaT�k�W�.�
�>���c��
�Dȳ�}h#|c�=�� `	$^; 1_{˽�/:P�!�-ܚA �޷bS�F�mY�學�k�Uْٞ�Mm�Z;ol�^����߲�>�gO�kk?�䗗>�d,�T������M9
A!j7 �[�d.b6(8=4*�2}H�أ�1�A��孴�>��DU
[���
+�)!�4��v'C;�6�g��t59J���
@	���
��K m����=�@�d
BP!	kQ����<Y ���5uG�����fu�MukI��;
<do��3�Ȟˆ>�W
�
e3;B�
���a������$�'^����(��7��;BLr��W?0
�>;�U���mz�wkKǺޅ�=�؞;�@<7bos^�1�S�9}:k8,d��bY��Q$��"S�	��䗗~�6[О��n
���t� �HmP�Q"5�*E�
�R�ѝ4;k��uv�pJK� ]�͌���L�]cg���y�Z?��!qo�"��I0�Ha�I����M.��|����
+��p� ~�:�����
+ȕ���G��s�y6<��H_>�+@�/��z�ɔ�<�&��1�@�׫�c�������6�U2���� %%�w�eF����b��E�
>ᶷ�+�O��#�BkZ
�;ۍw�U��S:��t �$���,N5Dߕн�ii�f-u��:�	�_
�-2
+ݍ��BP����Y�Cw'{��<
�j��
��u�>\��NQ?��/�6�Nk�U��J�.N�C�a�Kh���-��n[
&���Ɗ�7��-���}_~`�Fe����~�E�'g�N�P*�c���A�_W�I����Yid����BmK��0LX	kN���\
+M�ׯ��]'[Y�
y��K�̛9h��÷�ߠ�g���$ �B$@q��m���'I����3��k{���V�<?�z&+$>�,7��*2���>[r:���<�[���_����A�.� ȟ`�T`
mhQ�?��>� �(�#�5�̣�]onkN�_Pg2!O�b�M�.V�e{�s�5-�ۛ�:)ڰ~�G�є��]p�}�֢�z.Tn
�����?1����V�|B�E��Z}%���z=������I�L�MikiN�*p)	�Ωm��#�DP#�<�Q\	#v�[3�ms�Ϻ��v+�Y� �O�@�8�� �o����
+\<y�� Ş����z4'/�W���es�ʵ�L�L|| �sV�͢��O���=~"F=���؆#��}�=�V�e4��0�W|�
�����qA�ȿ@
���S�E	d��)R��(��qދ��tX>�5���h����NGt+��Ý�*7ٷ9n���vf	�׃�B��p2ѐ�xv*	�B�\��a|�}X�
�y^A��yc(v����@�G�
�t�ٺl���N���
+L�v�
�����ַQ��\����Ԛ��vvޘ%�V�ɍ����$G���ЫkaC�3����| �� ,O��Q�*(l�s85���ʹ�Ab�n�W.����δ3��q-*��W׉R�/*�,�N����<C����L
#�Qj�
��
��3M���9՛{J�5�o��y Xu��r��΃�r~�kQ,�
׺�L�ٳN�O&G�c�k��
N,l{R\M)���&
�Y�S�c��Lћ��P�K3M*����D.ŁIǴ9��	M������:���%(�/7���^��:�a6N�ϑYY(G�kD���N_;�.�ק���3���n&�L�K|\��!@qj�*q2e�����f��n����x���������`K!
+�~
c�*|l���л}֢]ָg;ãl���t;�ۑ�m
���++%�
���25�
��
%0j�
0���I%_̓L��������4�=gd{˘������`�9PM��;�>J��y�d�{z�#����m�[�m��i�.I��ޤq����?qҭ�(�m�t'D�ab�I=ՏfW��Ձ�� �X�~9!�=�%�/ v
�V�
;����s
��\\>"�n���0����
����9����␼k3ӈ���	=�K+�����dS�
��D�'����
�S5֯ЫTou��~&�//}
+���n

^ ̙��
�+�Pf
d��t=O��e��4Y��#g���'�b����H'f����-��6�:�f,������&����%�}w�|��髷I���
�O�*������4R���`�J�խZi�+�*������~��0/3n�2}�Q�aJϑT֊�I�z��ҝ��U�K�{���k��{���J�׊;N7R���ry"���J�uE+Ԯ���
����Ve]�.��Z�^�=��8X�4zY�(�y�,#p7�p�LB!o������aW$�n7Ub;/���
r��/���%ݥ�����wb�
Y
�j�7���|{#�Y
S�-C\���jh������p3�����y
�����u����8��m��f���۩+��t�Ym�J���EI5���f�p��L�\����
��,S�t3�3Α���
��r��|z��Kջ��q�ک�0i�p�me�êy�T��Tt���Or㲾h�y�b@�.
<J8H�S���;-�^S�e������`��
`�M
��K�j�]��O�?��Q�u�%> ��!
�B{9�����{���ׯ�/.�{���.Bkg'S�[�zV������g�����۠_���]�/`��b����^�Q�����m�bB����?H�����Z�� c�6��8�V����N�f��:�np�+�/���.�w�����(k�lL��Fw���E�Y'ov~ع����}����|
�* Owa�g�)H{�?M��� ;�I���=�Yメ5�@V>
]ʓw�-�;
���N߻Ob�%���ѧ����EU�6k	����"����;v7�y����^��| ����
+@��NA	k���f��?���G at aT�B�A!&{���>��6�@���+�
���Y���>O�O�w��?��or�����_C�mN��*ǒ��K@~DŽ��R�\
z<5����W�BDŽ�N�P�D���ϔ
܋���y$��;c}��]�`u�P�����ފ:ӣ��Χ=ۻ�Q�:ކ�Q�%��� ��| ����'�^i@�79�y�3(,�
���੻

+N.�J�G1\3���5���&��)g�\����6v}7W��S�25�
�F&�]՝�J�;
���ݫ����| ������!h�m�Fr��m\@�Fr ���e��@�����c��M�s�Iou�\8oAnw�;սI�5������v��@��ж�Ne|�+��N���Zd���[��(>���=N\�K���dŁ��@xc�D
�tW���
[�
��,���쪼�/.6�x[��1{%x���������fWL�[n�,���O?���
0��
@�
��%�9{8I`��H��93
㹧X�E��m�^�֓�Զ��M}�f����:W���B�)�j�;�(��C��R�WB}V^l����[��_� ���n*+Pж6�7SZ+2�2�:��3�����sG��f��N�y�z��:��	������2�x�������J�����='�k@�ܺ�:�ױS0����C�`4]!��v �<Ċ� �������	\�̠�L>�q�S�9k�D�cL�F��n�=� [...]
+A"�'K���!�t��� t��&q(\#���H�s/�v��t�u
�ΜQ
GE
��D��#S���Ń3E��I	'�x�`Mć
ɐj�V ��185�� ����9�s�\��| �;QC�K�DuJ�z���m�w
�g=��SU���������Y�K�ms�&~�#n1df��s��k(�/�����R��-�d����~q�)�8�l�*�Ҥ��rҷ�>�S��blɄ���}
+���\[�&쒚I�轳�����VS��m��&+�۔�E쭏>

2�0��<H��D�*�s��"�[�q��Wםncs���y����
�>_�A�s��59d���sS3�nq_u��V)����8�.מ�~�P���t��R�/��
���j�P�Y��\�
XeE���˯J�����`ۭt�4h}A���9�9�~��|7�fz�1��p3e�oRPg��<)��4U㢲�cS��x:�6�	�u���RW����(m���I�x!���Ƀ[q�J�^ԯ��go-f��#���v-}K@��|YHN
F��f����C�ɒ�I^��	xo� �C�����Y��
+�ʸ�]���FÔ^�QY��"�[zG�.�\
�}O �~͹;�`|�{M��]tKt;�#�)�b�s���*��	&3��PS��tN���@�;��ÝU[��t���q��6}��0���0^N
���ش<��^�5��h
{��cz�xoэ��+���y��9�$X��
���t�pN�����ans�R���f.���݇s�{���%��:Q�
��֊��{�A�/��ZT��n�ލ�*�v�Z���:�΁�
�ĉ, m��4���S�
��Y�i�J��[r�i����l��<��<vG���8�ʵܑkN�@�_�2y?���h����v��Qg�~�m*����%!�F�Kne���<-�s����&�7��e�y4�M*���y�n���|>
���V�PjU�,V\�Y�3&���Beu�T�N�g�
��g�m*wO�Fk2e��4.+���C�S��֠^~Ú��ƵU�:��΢�w�*P`[me�(u�[��\_��l`� ;�� �2Z ?`A�-�/�n~�]�ߓ<���]��ޫX.
�A�x:;Џ�0�m]g� [...]
�
@�<	P��4��@����X�a��
�h@�:�| ~ЖY�ٟ��
���${=�pr���j����V�	�Gٔ���U9޺½�y��tn���h�����
���n!�C�"�4[�F�:�x��"�cɑ�*�̽sɳ^���]e�۹�n�8���l��}���+��<y�jư��|A�* ��B�Z��Ss��W�-�6� �=\��v8�O�[���ɣ��ii4“h;�鷓��=V+�]u�_::����>�����nS���L�z��ad*�A+��Vu�Y�g��l�� c�[� �`����q9{.�B�� �>>l��
�͇�����^wXO�.e+��}�?�v������
.�R9]�v70�o�c��
o����s}-�zs�r��rL��Y�������H �z(��2(p�(t%��hD�;A램Cw s�Z7��b_.��}g���i�-�—
��Hh*��%�a�`{�inO���W�:ОL2������~Q���2� �PxJ^D���
ׯj�EZ
+y�M�ԇ�梑��ۑL��;2SNjd7�R�d=AÉ�����|د�͞\,�R���I8��R>�?
��B��rТ;P�ᓠ�>PXȟ��u����6]A��<�Ȇ�;KT���jZ{��6�{��O����ɎH8�Vlz�����f(
��q�⼈
㋭-�̶���_�{����7 0�_��ٌ���q݈�f�
����'������R1q�`E3�������T?�m����9���u��F�s.�����z}VXm��&�p
۴8���� =���X���1(tJ
+4e�������2�.ƺ�;��m��\��k4g#9�ٗ�nn
.����~�{VD�h�X���.�8-�{
�O���{�'��:1Z�J��| �� J; w�<?[���'��j�F�ώ�v��
�Ȏuw��z�HX�SL��G#���TF
`��>�,�b!��K?�y��芍5x����M��2�mf�g2�pi�:�U��I��g?��`��Y��	D<r�
�s��><
u�%g�Kwsr�Ǝ��Wb71�I뤈{ff[�$��N��VJ'Y�5��X���M�Θ�^�#� �)(�a>_�/�=���Gc���ƈH��5U�z��ܛ�	ͮrM�Ʀ�n�/�j�ł���|�,����a'�~�+dE�r��H7���Ō�<��ZN���,?�_X��?@_]hѳP��9x����U9�X�a�'
ۙ;;���C�ڧ<Rr�:!�e5_
+�Y��~�
mzq��D1���-��%XW�5)͛Қ���x��z�LD$�5���u��B��
`q�
+
+C����	��;��pk;��v;�
��PΊ�:���T��uه�p�<����|�,d<��8����3�Y��C��Ү�P�O2���@ӄ������/�b6�����v
�P��q�6#g	�`ߵj
��N�z���P�4_�X
+��]��j��=�H��֩~�YΈ���^V��ٸGS��c_ˌ-�S�|o��[�1�m{���;��+�k���}���]����	_�[w~��W�yޚ������e�7��]��<o�
8���-jnt��zu��Nk�V��E3J�;T+/�+�ӦkqwD��89*MJ��
+�/Z0[C
�i�
85	%�
+ۑ��N�%����uK�3Dg������n�A*�CM��_:o=ecq�w�{��=�]Ǘ+�ў�<�B7HP"�Bɗ^k�/�g�]�(
�!ȟ�$p���0��6���2Z.E�OM��SM62EE��bbώ=���_+q�3�uV�U���2��3�1��1fOw�^�0Y ���7�q�y"�7��`�GƄ�#�Wz��>�L��
s��b7\O1��ʼna]���eڋrC�zuZ6
����f3,i’{P"�
��lؔ�
�
i���!���T�
̨�_b��;�3Kk��Mo֟��y��$&_��� �q���ȑr�{�8^]��C4m�|h�3�~ J.��J�
+>��a��e�b���fj����$���U�(WL˜߯�i����9�[v���]it��M���)l��lg�'�@~6�) ->(�#cm"������:}Ȉ
Z�
��ZbRݦ�����ڐ^�89�����#k;
+�
�+�/�7)*���
�z��x��=>L�7V�D�:�����I뻯
+@ח�

V⎸&.�8
�Wj��b� �So
��&��{.�*�צ��<�K�
�e��5\�hig�C$ɪ�agb:��v���K2��˗�{B��춮�zG*w�N���* [�aj��*g�<v
���D�hn{�w�d
ْ�l�>�E��!3���L�}i��45����Ҽ���l
�����F�s�KN��;��fs���M��+��~�hv�6B�L>�����!������
U����^���
��j3yNԥP�t���t�u�q�w
�KJ��)�(�'F�v��<;�|<�� ��ӵԍI늤u����82mu�+~U��/�n�u>�]�ԭZFk�Kϛp{e棘�2�+ʏ:�H���@���˵��6�_�vɞ��庑�/v����R��d�Q[e
�6UȬک[Uz��^�魬7�|U
6�f�ٞI��c.P'�Xq��.^|�<C�ly
,�u:q���iR����
{B��t�A��
�
��0�j�B�S;u��-}�	ZYg�l��z��Tm����rc�J48��u[�~)泥�k@!)z<>�h�א������S0�g&�(Zs�SƓ��r�_
�L���cmu\)��Y��<q�N���Ƽ�
5�Gq?��`�z�Uj�ap���^�'W�jp<�UaxyT[�{�"��������m�ǒ��@.�
�C[VH&�*}oՁs�g���h~m�9�qY%�:׺� [...]
+����R�BE
��J7w��_��.��~y�#T9a�'%�k�ղDUz��
+ȶ�*�8�+�,�e
��r2%�|,�9����͡r�h	���~қ��;���$��U
d�z
d6vd�ȴ�H�,����*���MP���~}�=Q�*��P
u�W~)���
��^~�
���c�	������@3�1z�Z�A�q�=��-��P����yȪ�An��A��4A֙��a�K��Ne���mH� #$� C�(_	��c6���E�.����
����ͳj�������R��'�k 9�����仪�F��^��/�|r}���-{)@�K
d�� 2o�u�}�+��Q D�ZK&'�u`ɞ����$2���M������{�����<�����ДlF �G�w֗��P"8j����A����IH@S:Q/����cƍ&�M�raI+
+���d��2��D64�X��������$a1��_����d�-6 �z}��^~7.s��
+@���,Zh�
C��
��]�zIEV˫�
��n��ay������75iwP[�xn�n�sϷi�Xa'��b�vg�ϥ�n�
+��=�Ԫ�i�������F*��V< ��t
����mS������R��t+a�Kw�:f���9��;T�����*���"
��@n־�Z-W�̤Q�q�:��{,����ߘ���L
�4D"�9$�h �^�"f� X�_D��

uq�M2�?���]j��ހ�.y�
z�`�	��oS�;\K�Ȳ���2����#�M�Ֆ��+�aC'`���(����b�
+�a߀0��ϰ���ηbW}q�<�s�&3I��n�'��1ݸ���yz������� NU(T����w�[L�n]v�z0���u@�ø<���T-ܟf�yH����,�������Bo�#t�Z���:Az8���8�u��vm죙7����{Rח��S��3��
����5�
T(���
+��
�[�
�<����*	�=�����Ô����N�}=:z�T@�Ⱦ� ���m9�l{s����6;ݿ�O�Ś9{���Ƣ�-z�����V���/��7�W�4�o�[��������
�\
^�A^�Nl��[�`���:�H�ir/|��N�v>�l�U
_[v����&m������H���kW
�w�����N�X�څ��~�
� ���`3
� ٘}_��~6]�@���@>�����4��ro<�
+������=����pG��xSr�%�U��v�c)��2b���y'���i0�f��R�>��2��#y
Rfk�}�/ r�
+eF�UgaD�C~����G�B�3(Ԫ�+��Pd7���D��H��R�:���~(Ǜ7_~•G���.Gǩ�8y�gnU���6�^Y�
��c�HF��]T��
����
�{ ����[~� _�mP@���Z��(�ӵ'6]��\d��i�H���v�m�-#� �;���u]����đp�f2����Xxܖ�3Zw���k�p7rZ�\�����_GA�5� ׺=aJA�-
+��P����c��Q�W$6�.Oњ
`(��rߏ����
}v���s�U���&��u��2O[������!Y1hK��
�eE�RZ���fIk��Lh����F��޲�-
�V��n1�T�0{������g�`��d��ť�Jݽ�*������������i�y�nC
++��e��w+M
�q�
����y	��+�I
���)�P�*��.�`��J߲�_��^�g	y�c�Ƥ���K��o�32���,ϳ��2Z8������݂�m�׽u��O&����c��9�/�ǒ����i����U�q��~�
����z2�����=Β[Z�GM��<��X�D��|��Cm[�2�'
{I���,����>����:��+���s'<���<��d����.�S
��aY���g���k��
�{>����
�p@�-��ӄ�z
?��K(]��{az/����ʚwW��N�ZN�
����<����ԺW��9��،��zF=�
o*�=&�A��R
��r�!����©�^���h�v�ЕU
���(���5s��(����������=ϔ{0޿ q6��̱<���rlD-g�_
^���+���[�䌎�PE���ʱ��:����:R�V��[� ���r
���zx-�)
����RXp���
?��}˜5�̛���u�a�T'�V�Gy�20�
c�W7a�)]w�J���&W���D��O��lg4'#�U��^��V���kr�L�
@n�
 ��c@����?�����w��uS�#�"R۰��޺Y��bݜ��Vۦ�ٮn߽A��h�:�j�6��j&=���mg��
�l�.��k�u貌��H[�n��"���� ��� (��y�U��X����y+{o�H��{��d��6��
G̜/tjc%"�?��xߤ�J�t���PUƢ�N��ܒKi�Ʈ�k
��B��h�]4�d�y�iZz�y�U����o�?ȯ
 ��6�z
+�9�
�E�A�e�H�Q{g���Z����jf��L�&]	g�w�Q3������R�ͤ��*gGCRnƤu.T`�Ҽ����vB��{h�T���J[���)뺝� l����GA�s�F��m5��*"���u�8_
n��S�7�d{�eFejB��_փ��c\��MZ���3z�h�C��
8-�'o��@���N�F��\�W%b�/I��������3 5^�a�I�n\J~_���x֕�7 M��f?!Q�2|�����G?̄\oX;C?Y��ޑ2��ީ�*酑)��Y�
��f�����ō�qB�[�������l�8�
|����pٻ�?����}���EZ�E�ܛ�t0���`9�ᯍ���Q/d�w5�ww���hڽN�*�{�(2���b˱ٜL����8�7>����I#S=|�!�<��Q}Kb����8��@y��������m�x�5�r�`_�>���`
�=�=���4��ߑ��4�)
��Ȅ��&�|s*\8!q�f㳹w"�6�Ci��y~ͣ�Ṯ0�N<��Z0
���g�� �5c=[�ڪ����
[���G��l�"������
�nfu��A�����h��~Ҭ}��"�M�Xu��Ff|�~/I��9CԕQ��Z���m��D�z�
���;�CT����[��d�˶�y���㞔��)�z�Ү=-�8�EV��o\L�CK��
+���9/�S��,�X�U����z��j!�n���q�O� �å>�-	x%�(�ʴ�� �/�ڭ3�ym;�هV7�90ۆw��{�m���F��o�
]�<���lO�����5�ё���8����cYeX.S�*S�ڨ�1�]vTI)
�a0��ẍ����\�ے\I] ��?�fG���`>Q�e�@��ѮT�����S�9�^h�W�0�5`
�8l\'��:`�ǀ�_��4
27�,w�'3+�rg2�cT�K���ޯ�ž�"Ed!�e�����iI��A�ц�v� /�g s��7o�z��)@`� :
��YbpD�"W ~� +��3g��j	�Q��dJlp s"`J"��� F��8��0z
p�$�J�YȞ��#Q������o���S�_��A� �����C��~<� b6�⒃B��N��Po"eP������߂[m�C��w�A,�֡�D����I�\��4q�F׵=��<k�˹\�o p�
e>�5�s��4�<�5_��Y���9��
JS��*" -m 

 ��
TkQмДx!j
d��A�<?����5���csp�8�by��
�T�+�9��������Y�P��� ��
�
���bj��k��`
�~v���T+#P�]�j�:T�t ^��d7�@���8�q�7��u�`��L\�� �:��d����� �-s��ZtW�
я��8�0�{
+ s���\h1P���B4ĭp�
+�&Q�V�
���D���$!���?�nvy
r�'�h����m�]�,�3;�W��/�_���7��|�
��V��
/
��e��l��R�T��6�)� �"{I��ħB��
̫��O�U��h�_kQ�=��*��
+���u.�y�$��ň�o>�H�v��;�
 ܙ�fZ^~�����Ǡ¢ �m0ր>=� �rT�'��X� ��:�^�|�D6ͣ�d������>��'<�I��λ�{6��o�z>>�u/N��n�TG���
��?�?� �ο�ɃB��P�܂��o����3�j�j$�0xݕ`U��
�����w����lZ��Q�rѭ�+φ�뜆��y�"��A���������+<���c$� ~�`or�0��
��M�I@���k��Й#t���
f=�e�"=L��LOw�{��\����:_�����üe�Љf��Q��:a[;��l�Lc�ة�+U�j^5�/���
 <�@��
+m��P�I�j�2g����,�z.Y>��=|;5�A���A.ƚ
+��2vVK��G�}��ǭds
�ٵY9�>ʖ�p@��x8�Vi'�.6ڹ��:�ּ=�y������?B	
�fq�׷�5���WE��O�
߳="�g
+��$
��3Ff�u�mq�_ߛ��A�b#s������<��6�t�[���s�v�,6��q�R�3/�J����] տ  ����J �f1�.d������n���5���κXؒ��}�ທ�G�GA
�}w=�n�Wo�����A}�ZŻ�R;��GB��3�ya��fV�[�څ�4��G�8q'�������(���(\��)��)&�XK��B�Ub2�G4߳�u"�V�R�S����p��U���Gyf�.��|�����܋\��o?���딫2Ѥ�p��cۥq*�l�$���@��lS����
��K�o��s dW��-U���XW�h5��+����-sy�g��lg�k/mm_7}���Z���5v�Zi6���ŴZ&�1�m��KYpF
�1+
a�-7ܵ��0��U� �XKǶ��  j!�g�B{��7���
+��^����f;��韨��\]�����f"m�o��-�vo���s���l��F�x[���kg1ZG�?T����I٧i(��i,ru�T)r�-�c8
��������9j�y�?�z�oa�]���F���
�:���(nqn7@�ƺF�4��B'�pL�=��6I&mc��ш���_>,��f�1*��mP]�>�ؔ�A�rc�q���c+|��3 ю���J[
��S�zK�gq/a6�U�zW��-
_�v�vچ�<����L�²G����i��W�Y棍��bZ��͆Â:�Ē�����[����4�?Rz�V�zKt�ŝ
_���_BAn�>�g�uzO}�BI-�u�\�J���
a,vZ� ���n~=C0�E^ݹ M�ƶ�K�n{�;;]�8�j'�F߱ɉ��
��m�����P5����{��뾥b��W�����? � 
�����]�:g�
+
+RS���䡞�ʎ��&�^�(�~�~`�ڦ��ٰ\����0�[,�Ŭ�HlUa��DI�d���C�=Uι�߽�G�n��d����JQF��`P��pLBVpL�~�,I�u8dvz5P8
�Q��
�pqv�f�?)�h
''��*�
E��
+�k+�{ͺJ���t����m
�cUՏ�A��cǝ�Zɳ�q�Ad^��X�N�
;�J��
@���&U�|6EA�<��O��>; 
\mk?>ʯ��+s�;
-3�AjY q|6Ǯ�qG\���d��ݯ��f���R
���e��&�/谽
���ك���@�K�
=�^��������pT�x���+�w>
+���	D���~��L�� _��k�TOn��$
�҉:�Q���f����@+k$r�� �� �Ϋ=e�m���!LQ�~��]
Zt�KZ��Rsě�����]��J�� _O�ϒ��<"~�zN��R�L�m-��ަH�7���!��r=kF�>�tYJ��rQ�?��μG����ؒ:q��:�5�y��fi9	��N~aTMW�{�Toy��E�� ��zh}�B�A�J

��,�_Rt�t-oK5���y�w8�ml����5�}�@ʽ3���p�YɎs����g�
�n���,Ӟ)p��1��C�.�><��F
9K��f�7&�����  7�
��pK�.�w;&�
7|�|{92��K�?��N��F�6V�l�?s
+�c�z�,�B:Kg�ko�bQ"���-��h5+�PmĮ1�ߛ�˷��O?�l���&��N:�D�/ ��uz�Gu}�o�b;b��/���v��u^s�:���n���Ț��@~�v�X'��_a7��?��cq�Dyq\�l�Z�w4h y5j���������u��� u����hd��qy#쏭�n�-`z�ql-�����
��C��K��l.�i��o4���:�~��Ϭۑ���)�U�X�6�f8.�՘�
+��-���џ��}�׻���Nd����Rj��ڄ�Y�
?�?��j��wŖ������μ�lI�G�SX{�~!���O��N+��͸��L�g#�p��cR�6#�t7�j|6D�!��������|])��Z0Z5����i��W��U-|:,���{
w���5�
s��ny+څ���b%��g��fQ�4�
)o;��4(lؖ]m�B�"��g���}����gVW��W
�DP�*�{�4i%�yu��WN]k��#ڬ�n?ˡw�/�
f��0B���y�
��W�l�7뾖�
{�uu�f��k[#�O�y��f�mA�a4-�
@�N\^��8W�o������K�
+k��Q���I���V�d/e��
��z3��g�R��(����fq�����l]
A�4����Q�0��rz"^�ִ9�?
U��V�75�~
��Խ����Q�<�U�����(�
�9�|��AJ��gJ�cT/*�\,��V���*P�ɟV��_`�^��QQɁg���}^�+
Q�ԁh����Vc%�ĺBW���(�rL��+S�g��nkĈ41.��dV��e�^A�]7��s
+����L[��N��$�l%���\1GNu�H��Z����3 FoM�΂@7�`������\V ��]�S�
���
`k
��� �Mu�p�/�b�`Џ ��z(�!,���m��t �n� ��̄(3������r_Y�Z�|����)@��`��56�7�,�{%bC}.� ث�C��*�̯Ю`�1����jM� Kqi�>-
+j=q ��o
,:����� �nkVL���*��0bZ�(d��g �
���i�<�x*| \� ߽� ��07��W���8m{���l��?4
x}��`�
]D,g��+а�@�
#�&�0��h]KS;
E��9��#i���|2�� �@Ϗ9��m(��~��� Q*� �: �9�<�� �S���>�ko��}�?`ð��]�(��X��'�IÎ5"G׎=	Y�8y�v���3>��x6�3~��ޗ���� ����(
q@����E� �t  �W�Ϣ�l�jCC�g�ş��t`�HC�l��雩��b�M~�o�{�=8���."��Mf��UK�?`���}ӡ�
�@� 1CH��.� ��,��v߈�~ ��@��M�� w}x���������5��ツq�v)�1�
����9�(J-���������`�O�v������������: W. �art�9�%��+� w��� WY@\
+ g�P�����x}]���y��|&��DT>�L8��F�
y�Y��m�W�wt��fmzx1[+Xd��[�?`��9f�o��{@�v��y@����zH�8��� :��Vd�u�g���
�0�
�ϸ_�?y
�&w��]�'�ٞ_���@�*���B��^(O�)�:�]���&�jv�
�*Qx���l�yh6.�]w�� �Һ��~
@��" ���D�F��֧���
b�iL���A�����/�"�g#�Ϝ�A:w��H�P�W� %�
�U͍.��u�>*��=��8���wm����/@�lh���<�����e@�[Prm	���[i�&�{.Y]zd���-�e�� -:���z�xY�� �
O{��y�֛	��VSt�{�
����p�jnL&��]��K/7��خ�P&1�Mse����HB�~�N`��LP��M�E��
+2�\u֥{׊�k��tO�	�?������Ɏ�
+�-�G��e`��{S�zaM���5D�Y����[�?����
�;������[�πc{�s�Y�
5>���~����B����{=��5l�z�Qj���f�T��@ZW�;�`�6�ld��y�MS��;���UKT��v�yYlzz���!�Rs^`;���W��hW-O�J��/� �: $Z49B��
�/���ևB{�~b�b/�
��'���[
˓gΦ*�Ϭ�;*��w�!y/��uw��2�
+
�
+�;�p�������t���\�S֚�'�Ò;�	3ně��j��?�?2�B���u���~�%��G
���W�e�Lj�{�s�/�T�
\u@�4�ʬe���=���R���
x����7���1���=�v�˱��{�3�D��;;��FI#Y$�#�f
�홥�
؇j6 �o(�
+����B����W��O�Lmo�����Qf�K����[3.�u:)����-�f��_���R�ȓg�ca/�v��MFX�J�~���X��di�Uޢ�[�<W������>��:�]@2��p$���9�\i#j���A
���q�~�|�C��œ�&
��a�̯ԅ��G���Ӳ�{����z�a<
���7�
�a��6��\�NT�A
�?�2O%��� T�� �n7�hy_^���;-��y
+�瀸���5�x�T[�ŜS�V��h�-�?�-
~:u~�+�[V~,u�;�
�kdҟ�Kk�M͢��s�C ��Ϟ���9�π�R{
;{Ӈ}Hy��r ϛ�+�6�'V����,r��~��N��X����EΟ
�/y���lLN�I!o�܀j�'g^sj�`x�?�5��
Y��>���ܵ6/њg�H��y�3�[� �6 ��PhK]
+�F�V}
+�������A�h��;pF���-s�>/{� 5U�ɻ�a�ڌ��v�Ѧ�
�At����t��Z�O�;=�"j�m͕S�xR�L�V{Q5���#�!�g��Ӝ��r��� ��R�����2��f����;R���"��-]y�{:�i/�&���+&2<rn'��`&U
��n��l�U�A%�H?�n��L:���u�ʆ�Z
$׽�Jp�Q
+�� ���?Y1�M��3t����'v��W��m�l���Ow���.u.snQ
'"W���6e��bv0Wf��1i���̢���ݡv:U|��|&��m/�LF��!)�&��<�3�ϒ�G���
l�0
��:J"�t�ϭ���.2��\��I�7t�-�u��qڔ>7[ ��C
���}IGz��
S��v�>��<7������J��1�ͨ����-��
%y�o���3 �S؇�����wr97�^zfN�Z
+
r�G˭
�u�_}�ea
f���
w��yX����ه��J���)��!��!�T6*I2;����-��͓�x�� NZt��o\L��?ȯ�orl�TU9�|q�>G�psXG�`��]��d��t���KNg��Ά�i.G���3��~���������T�t��^����72��!zT���$	�Ib4B��6�{<*�RY���B�h�?���we0:u�]M�[
�Xa��Hw3����
��K~��8a*�U}t޲s�rn_�T��0O
+���P^m=��@2�V!h�G��5�^����ɠg�N1���y����	᲍�`�
@�n^( �=���pg0u{�(��z�����ة��pL��/�]P/]3�~��f��z��)գ	
t1:����
������1ߘ�/5~�w�4]ե���#�1R�
�Vw�i����/� ���
�s�s�h�{��;]�U5��:��j�k��Urd�B�t����ݞe.�n�&�L���
�:�6vZQ�V{$Bt<���z.���g�W�.+ܨ�=��2a��2���"�:5�����V��踝d]w��j/�m�c[�T��8����xw'
iL��|�Ω�ͺ�M��
�]
Iw�S��5�fH��B\j=o��i�e��UcꝣӬ�k�����EaV=��s�O��j��W��g
��LZG�ec��Qm

~��[�|].��:�K�#
��+����A;UV:��֣ڕ�����h��ﳭ]}+��ub׋k9E��ɵT-$��B�ʕӣ1���;֖�����ׁ_�2α����<t���v�2��mQ3��~��:�Y�G7�¢�F�"�$��)"+Y�󾪰�m_l�K��R�z�Z�
g5�c>�P��Z��	�ԉ
VN�Tv��P�� b��3\Y�K���[�I� �x
���՛�,�r��k7��\�Ws�ByĦ�jo<z\k�)��G��4�X�x%��T������"5�s�K�X�~_��Jr�u��v|�J-��P�E"q�?:kr�9!��m�x�(r=���u3�wO:�T��FV���r����bwi�]��	k7�N��
We��֌HO�%��J�}t+*�(*�ɧ@��4�<}�"�.c�H=v�
e [...]
D߫�ԫtFV��,2w�")�ģ��X�n�2�$
[�����i0��%��z�L��������T���Ж,�~A�kNN{�U.9��9����ը��{��� p
�@qZȈ6 �f ���U���| 
��^”z�w�#
��3@�0
P�T 0j 4��$&@^�@��"� dC�!
"�d[hĩ�]��zZ��)%&g������o�R�BQ~�^�,�U�O��)
`�
��QVY �w����﵌�@{�&@[�
@9lP�D�;�fO7�"�@�U I�ȕiC�����A��
�ױ��edɑ�*���g��B�E(�� �7v C�
k8IJ�I��@uV?@C�$
+�{z��W:z� ��	��T�
����{-�r�y��@� E*D߈�n�x��� 2[�^8p��-���Z�
e��&@ϑ0���3�~�
��$ĝ8U�,�� ���N^Aɀ���
�>��6��������=^ �9xA���]���u��'e�
+%�
�b� �+�$w�<懝�[ �S�w
MhJt5. o�c�/60��� _�&�{�
��r��Nl���ɝ'lL�!|�+X����c�x��r 
O�	ݕ���ft-9v�8��ض�}׿gL�{����]�n��������,,`z�Bo* D)] �}��?� A�� �7�5�p���%

=��Ɏ���Nqp��Ƌ��:�Z0ѵ��6�2�SL��zr���+��&߻�˿@g����2�� ߥ����@�����ve@\�c������VNzٛ�˙�:���x�W�6w��^Bۑ^����<�H?�p�����7�H���HNσ��<�[T�A�M����@ך0�4�o��X�j^�
ȉ�
+��YB�Cl/I��!qa�_p$�кó<c�<��={/ֻ��Dp����&����^�%�s�s� ���e�?L��
Eۭٔ�U���m�����ӄ�0-��\@���[�-\~r�̉=@��U����k����E���Ƴ�=2DF�m�v�Nh�3�鹸����7��� ��ZL��^T��N����=�m�gU�o�X�w��ƣI�����a��3�ou߿�� �b
���{I����^��}
+�e*yH�vSFN�rjf��Cj
��,���w��n='f�]/q79
+6�}���M������~۝�j�j���K]�d)���oЗ�<��(��P;�d�L 2�x@�>�������vۍn��Ȝ� a����f�]wu��[�֗AQ�����
������.�݂�b^N��j
�|P�N,pN�(��G�X��9,�[ ,;տ��t���Bt�k6����
�D?��g�DooZN��G�84�Jv�
�����j��^�,j��·VK�,��Q_l*���/�?�C��<?�c�Bf�͘��LG
5?��	��=`rt�4{c��4׀l�1�"G*L��l%Z����rW+/�b]��a%��=�����<�����.tz%�qi����T¼?O�3ӎ��ȈƓ0�֓��'��4v�c~���){��	�z�6�
 �}�_G�k[@�-(t"S�n����v���Ka�8��d��>�maR
���~�M�H/׳7
-�i��ܤ8+Sv�Da���
�#�
;Ӭ�G���2�5�
�\���1T���=`W��Ϳ�$��
���1m:1��.b[��J9�2RƳ��(�;��5DŽ7w���e���o��g�g�N��F�A'W�W�7��Yk�T
������'�YtS�,Z
�L^1sp����e~
������pr��
P� t��ǕZT{�	Q��W�4�����r3
.��";9������C4��H0����i���z2$�j�g,z��̢��F�������y��D�OGC!��?�A��� Ʋ@L�S@�� Pz��"*���_ytW\�Z&���o��]�L��-�n���A��˙�c�H�h����X�\d�c����:��c��ۨ���\ӛŴ�7;�X�OD籬�F�D���cR�<�gp8Ž�ַ$>�~g
+�����+[9��q#P䶺y�u�[Z��R�>��m�
��[�2��c�חuBŷ��av0i��>k��t��5D�)�����z�d�А�8�!K7�I��"�=�D��#����L������O���x(
]=]ޝ+����R���}��'WV
�w���}
�h�j����x��xP����
+��Z��=��r�q
�J�����UJ�*U����~CL�?�A�u �3���� 
+��P���+G(�r�V�H����l���v��V�磃��,㵍���:ߢ��t�[t�p���i���
(����l�t
#��a�Ȑ��h�y�H�[N�S]�����cR
�s�YJ�����i��Ϸ���ܲ�G����y�!ֳ�Rw���unTÚ&y>F�
wط͍ɦO��[ϝu�5�=U�_�y�Mu�g�_�z�
d��N�vOrٚ����枑��tJ�&�[�^s� D�o�>�pu�ᛓ���{���f�
�e�۬�uR�~ ��떁��$k��#�F�M��p��t����У��Ea�ˣ3�����l;-��,�D�o��}�Z�q������C�#�+ ���}��7#@7?�6��<���l%�^�2����
��ɂU�8�
���i������4���
43��c����N
a�Щ�+�؊�FR;�gDbX���Z�k
[��¢9��w����V�x�[�
��-@�|�p�,n/�]08�)�ڝu8&o&ty�֎�*��cQ.����oW�����Kcn�s���tCl��o��kK��,�Ff�ҋr�Y
ER(_�1.�F5�_6ƭ�/B�Q�	VPB���{�ܾ:	�=>�Z�S���~�t�k�;�J���E%�
+f
c�
��=,ϊu#��H��(-SS����N��T^��e��؛���kf�F��1��$?w�\��f���������7���E��cmA�/� �6��K�+���
�ⲇ0���0[���۞z��fܓ��p��q�>]� �zm��3+M�J塤��YW��iw���Y����)K�E`�j��W�P3���ӵ����Y�+ֳ�b���w�i� �:��C9
+^�f��e�3ǹ�x�O����
wִ�|
�^*���&���M���ך2jG�D�F�ܤ�z9��4^{�#���Su�.ѵ�K�W��U5B�ZJNW{�S����h��8�nsW(\xO�%�˜��Y�-r�\����N�&�;��J����B��#"��5J:�Q��o_h>��"�T�h,�ڌw-ū��ک�#��F;���)�;Ǣ����J�����5��
�"{���o�
�x�y�щY��X~�>/�6��fܯr��M�z!
�Չ^�t�����+ at 4�iN�S����R#C
+u
��r�D��s�zBl�Z08#s�}��G�FXv�1��{�*�gˮ��������
�[�I)b�t�IN�
)gS�8g�
3���ֳ
�����KY���T�܃f4�!Sx�����ej�cFT
�a���1�>�
���N���eG}͘�)�aV�Έ�]��R4�%�d�5���ϙ�o�
��܌/��M)K�Xp��v<�%y�#��4�3Z���� ��!/�I-0΋�]�
�ݷ�7-�*u����
���^�0�K
��i�E�kW
+�l�*P~?��i~ J�|1;���
�������e|�$�=��1����
b�+\�H[#Nl�1�W!�`y4(UkZ�`Vm"�\��)'F��=�/���Q��Q��Y�JV��@X������c��|s��)&���K��sL��_&>��I|����e�c$�9���$�Z�K�
���8�4/��l��Q�o�}�2����\I.�ɢR^
+Tl0�uU-��l��8
���
"�"�k�%�r���$=�ф�c�P]���}�.-^��N#(�����l� B�[ ;+ ia@��
��c
P�y �c! 	
,@�5�ݛ�
c��y�P�`�"Ȃ�7w���7�잲!D"z�죞���Wd����	.�p��o�_��E������ŧPh�C�C�6|
J�@��o��pq �UN ��|! R����P�8 �cSهHB�bb����H8��
+�/$�ڈw�m5&KV� He!$�Mb�J�v�@7(�2y��� �B� &�x��
���g�
(9&2-�˘�-�
\x-��H�/�3��O"�4
"�$����t\B��u ��V�.W��[����  M
+mޔ��C����� �
��
+�I����E��j� Z9�J��f�:@�14%�C��
�5��̂Md�� 15
+��%�}j����y��i;��Vx���r}���e.S*@
{�����ێG�
�7D/��' LFL�;k��u�Mأ 
U���&@��R�f4��A����dc�@��s��h�\t[?Hx�ҝ�Ű�sb�Z������s�@�5��{ }m�ա��x�3��nb_x
o��F ;-�ն���/� ���d�ӥ��u-��0�T}�:����?Y���
EL��
�B�}�O�	���ܗ�ѹg��xCm��v���?ȿ d��s=�q�!��_|A^�Y@�x��N�����3]VU���̋P:ž�{i�NEPDT@����kuvծ��<d*5yM2�1�1�� �</����Ez�O��֞���׊�Y���\�x�0�
T�
IW�
���~���v<��)
�}�,L���{�`9pҼ(k��W l�a��X@
�o2�l|�ɝ�d�p�ʚt
�€��ڽ�ػ<+�"��Z	
�^R|���z�:��;�۴T��_������Pp�僊�U���(�Yu��~���f�Iu;m�L��e��_0�6�f��H����1 ��, Gv�c�}q���k�����~��
���};��L@�7%�ച���ܵ{�^u�8�f)�?�jw
U϶m,*�����Ɂ��i�j�Lo����=
���`�����&�
(O�k�Z����' �-	rd���|��[��*L	w�Ndzn��ȫV���%
1g�'��x�W�Y�jZ4�����A��r5�,/��!Z�sl.��Ṵ
+�g<i
��FI���v
�Cfa
+�
+e&�
Hdq�
���4��3��ԨG�e�u�vF��Ϸ���a�3Jc��X&VMr�w�.
�W�vx>*=
�0�d�v��ޜ�p?���~v��0���՜^�wK$�� �֠�O�����<�tA��}O?�_�1�
?���>�_�/�J�{"��)��b��k{�n4��󐠯��12�
;��~��+�/uwn�4�[q��|k[�����r��Y�Q_ r�޿F�
��>4�~
+����d7(�d|@~2-���V{L�V'����M�5w>
�Z��nրc
;j�������F%V
��ܗ�ov
+c1e�mV�h5�o^
Eo���v�>���οg6=ˬ���Zu��W@�B�b	ʌ3*�eSW�Ǯ�4�S��v(�.�t�
���1|�����d6
+������:�<X{*.�;/�[qދ��5yo��]JRn��R}5Y\&��"Di��}ɚeӒ�3з������므�&;�����`�,x �DS�0�"
&���/�{7n�I�2=Պ��q���=��l�c������
+Ջ�Q�`�ʱ��P�o�Z`��̱�p
e�BɄ�T0���\�CD��[(O�����/�z�9;�X�mށB�B*�L�N��7���s�QU��CC�,��ž1���0y��
6���Z��ˊPS7�R0��	���e�[KBcG�ٲӑt��'OnS>܆���_�]�2ۂ ��t�mN���ѠK�[)u�=����33��Nu��9���L���rhcI�k��y�?��O}
+Ob�����a
r�N,;�_���
j�;�2�E�N=�S
,��*
a���xXs�]�D�˘ȏ�[R�� �"�-�q��5`C�8g����n�d�zk at o��"/���5�_&Wk+1rA|}o��{�|M��b���XPf�����>���$&�7��p���b�'�+@&|�̺�r�
z0n�S�����
��=��
�
�8YC�X�r���I�=���k3[%����@w|�\
��k�Z ��˜vːf
+m�.�2�'�B^l�+^~9�/�+����'Ԙ���W���C���m���̇g_�������i���+��S�5�� ;�K�ƛ��H�rH�n˚�=�[y�g*{�O�=
��uT�ͅ�'���(1�o���-]�i<�;���|ͫ.��W��
F���o��^b�
�6�s���Ă�V9���y��S�M]�� �����\���x�:���X�U�o���-3~����-}/5��Οfa9�<'}ꂎ�#Z���l�Ǒ5�g�s�k
��h�=(�>P�h������*���|.����[�fac
���s)Tk��)����L[
�Ɛo��l9d�;otzI�7�{o�����q��]/�e���� mh�@i�#��4cd>/�+��E����vͅ�.1����ľ6��6�:e
��␹��}��y?ض�2�͌9�$�u��[��]��Έ%3
endstream
endobj
36 0 obj
<</Length 65536>>stream
+{�.��r�.
�i2j˓��s��
�/�}��O�Sž�Y����k@ۇ�|�C�GD ?���� ��e�+�i�t��4�S3収��<ҙ�<�WW��VM�l/fcɷ��z����h5�\��Q��b<o�1���?276+�Ոr?�@A��V
n�0�xw�E2�U|c�U���䶏^X(�~�I� �����3�_0?=�]��;��v���X�m*�,d���V���*t�0Y�6�B�D=���lg��i:IO���
���8��]�
�O�V��ݰ��h-��u�jv�I�FG릢Λ��]s���{fM�>�n��`�:~���]��.R�M���u�P�H�6Z	�A���2kJw�[FojS�2���Y�L�Ekt!��ay���!��{�-(]�(�
��m�r���R�زwֲ��j.n�ݞv-�/~����
Ч<ӓU�H2AE'��n��y���Ma'�<R
���s80�aљ'���
�):>� 7*���`��u��l�>��e���=�t��b�3����*�t�w [...]
+���+��]ȩ5v��c��$�8D��@��1��2Zg����f6������*�w���&��{
O��i>K��k:�r��J����*�O+��������3�g�7
��"��c�V5�~�j�\��`���Q U����x�KK��Oq���f�~�=����w̸�7�a#NV�~Z�v
jz�d��պ�S�f�<������G?]��w�.�>y/�jW��8�Lk3�lm�Z�j���l2}�
5,�؁Δ�ai�W�KN
QRG�#	|8�^}�w�z�`3�ڌ�\Am׍N��Oy��4��ߝ�Jq�i<�;_W��UM��JUg�b�s������'~��,�"7Ӆ�h�
5<i�vo�_ӻ՟��c.����+����ϻ/n4(�� ��Iއ��AqE�;͸�6[�d�b��c�)�ԙ�g_�<ժ�Z����A)��b�s�j�M�׳
���ޚL��엟�쨑�3���igKfp6K+� 8�7�`.���>9}�����ߦ���
��ӹ;���6[҂f��~�;HVu�
+xP�K�&����]�!�'�$�H����d�T�du1����������qGϏ��f0nƬ�r椣"�rQ���h� ��
+�b�@��7k+� �~r ���!����^�@�,�\
��`
+�j{
��� �'���� ��c
�UH����)�\Q�� �  
o~N��/��-am��[Pht����B��`C��� C;@=���gPa���l��ݾ��?~���!�"@sixg�;��2 �
+��@$!@
��cA��M%�O�+�O�#t9,g���~��� v���c��l`�k
`X��k��� �����>Y=� _�����l
a.ʐ��S�(�M ��O��'SO,���4��ޝ����_�2e�������
 ��*�{�
�|s�=
�
��f������qV�;��_ (�5z�V�mCA�@�e
�ǩ��kBI�Z�Y�S��;�|�On���J^� �$��'a��Q
+�3��^�� �=�k
+�O�T���<���|�
7o���w*�ê ��� ���K̛���<y|�\'x.$�󲔉$U*�)���f��Z]��Z�Ǯ8��������Ck4����q� ��) ��G 1�T ��� ^��u�$�HK'Y\˽��V}��s��,�����gb��
q��G���򃅛����nW�}p�
+���\�M�|pR�l0�����y6��e�S��2)��:c��
�ܩ����h�%'�h>����{W� �+�ʆZ�
���I���>��}�;�{z��7�:���Q�=X���r��#+nc=E/�h���.1K�����]t
��HC��5Ȉ�2�q2�̀�=�L$7{��/��,��|�y�Q����
��p�/�Q��3�n�s��տv��F+�(��N��Ց�0�dlcɣ���H�N�-��'������{�k���
+Ȗ+�r�'Ț2aޭֳ*��Q�7\> Pnf�?�����<��= ���A�Ĺf�>��ûڰ��5�q.`���
+m��\eϼ�9`�+KԸe��!���it|
���7�6���@G�M?(39�@֠/�,�@��gmy��pD�=�>-[3�̂�Uް�^���
�C��z�o� �ȥ�>�<fr>o�];>
�l��A(SO>�
�)�R;���S;lV�/`���� ��t1b' Ce0�{��8\��߯J��Gݾ��φq-(
GC7~�^�	��l��M�L�]�
I��?p���vȿ�}g��)zBj�dX�O-y��9LRI�tT2f#5�^jnG��������
 te
+2A��fH�H�v�����\�~L�=<X����*lj
��s��@�pFC�l�'�׵a��Ɓ��g�]����4��L�ܖ�jS�F���<
䨸	��[��F��ѱ���t�)(�O�Y�E6�:�eQ�峝g�)m_7�
�����8G&W���ܸ�1�;>*���u��i����}Fݹ~�����QVe#���:޼�{d�����@&�Cb)��^���5�p[�����`��� �
���u�\aU��Mk޳1}�S�u��x]>�!e;�)g޵�~�FDO����;3j�l�[�l�5�Va����qӛ.���V�wK�y5���!��� 2rɖ���.���@ʞ+��o�6T��<�2]����]R�5��D�_o�~�>������*�s�hsbY?����9�
w�5�)�̢e�:�7��Y#�e����):��+\���I��v%num�0���G>P_(����A�ٿ�&je)@����zf��u��hR���}rtS/�lC���)�
�A-�2�
�v���(Q3��!7_����[A"GY��3
_6���Ri��"Q�E?�,�P��_��a�}q^>�=�_�H���p}��.A�Ü
r|hF	]?ܩ�Q�6n�ufzǰ*m�v+��O���z�+��ʚ7�^F���h�i
��m-�2xK�5���v�쯌��b���`b-3�5:���
+{��bPů_�_X�;;�6Ԧa�l)q����>�]�Tm�7M�v��fʩ�{8r���خ6����P�m�!�^eɰ/.��	��n��e�b�E�U�s�۴�gԅi"�"�ԩ�!���h�V���a�_�)�~
����9�{W���hvU
��2���3�ޖV�.m�o�m��
��&�V�m
�c��6.��N�!rؾ�?
+E(zp�/4qȲ,+1�U��ܲa������x�I7�:�޲0��Z�GʕX�����@c7�Pw�>��y��Ի
*����hM�1�L9�I���
��ql�Y
�Q V�J/�ހ��av�Z&�{o1—ߔh�9;�wǃ�Z��#�0�֝�B5���rq�S˩��UR��
�5{���o !2���3�u��˵�L�ճ|��~_ٸ�GG�Ֆ��
��G�p�
�>��b)-��#�+/�W�/��s��k�!]�%󹨬�fn��$Vm?�
��9Q�Ș��hJ>豾�
~�I�9�B�I� �o ?'���B�qA�����c��Q_#-�:�(�F&2�v��fZ�ҵ�~
�A
�V�~lr
l�.3t�jP>����
k<�J=�5q�
�݈8��CR�G�����5ҹ�:"����/�1jz�o�Εm|�8(�Lέ��`X=�_��Q�U����f�Gۭ�	2z&+6�����E\�M��GL^��Tu3���sҚ�:�`|�G�ѼV��a�'���S8�+^�ѻ�LoUuf}�t�������=p��`��M��^s��dUx��ɯK:�&�*������-cʓ^�ms+DU��
�`A<�'�1��<�N�Yg�+N�8���ܺ3t��d��k���k*�&�4��l��$N���̺
���6o�`�u�`}q�
�sF��m�X�$R4^ں�S)@���(�w�\;D��*����<7�={�gZ���s�C$?�Tk�	�n��s�
�K�ݿ��a"��:ܦ�7�F'�	��1�'���|�>���NΝ��buu��
��ի?��'x�T����5x�pe���ɸجNH���ח&"�X��XѵQp�dt��)�S��{x���������$�w�͵������p�l�;�h�?�{+�|�Mg�[��Ake�ܚ_	�57R�����y��N����2�ң�*��1�f�aJ�W	�4:���Z����џ�X���W�<���q������
������rm�;�ڕ�x��gb{֢7�Usq�
�E*�h���.��6x��6x��<�����O��o8��G��^k����E�
��Yӗ
��ZN�����@z����lT���ѧF܀��m�W؋��W��E����
+i��U��N�F��N�Fpyq�Z�����ƫ7�
+Z{��nM1t��pɱ��p��07g���������k��~	�1���y�u~ΐx�N�Y�>���`���~wns݃'�;3m��s���U�^�wgqCJ�t=�r��xW�u�h\�jE��S�c�8~�Ii��`7��`�gS����m�}�Z ��m�l���)D�^��N�ڜQr
+g�H���A�~6�'�����Y�;�-ʹ8�.4�6�n4�̾�N�f�ObnU_d�C�$�Q���g�Tb��^)���"7�(�2��|ץ�
+�U�DJ� 
���zx�v��>�L�H���}a��ժ_��|ӽ
ֆfC�#���%��Sh��h���Zb&����U
N����@���"W�'�u���vq�>��s咋�k��I�L|�N��cB�km1�	�FV��	��
2�{E�
+i@�sʃ3r+g^&�V��+t�Й��s�*�
�Ǯ�;��Y���w�X
�2U[����-�>�\��b�|�xUs��� �彛�Ew�Eˆ�ௗHP���Ý}�ٱ���K�|����s�]m��
�=_�-qaz�Z�3>�2�~��=�.3Tn�+ꩦN	��\nf���p+�]�h'��D�\��]�~q�gG��-3mVC��V_��e�8;��F���Ĩ��r�6�^*Ӵ"\>j�J��9�������o� �e* � I�
@K�	���?�5@,p�Կdp@ �G��5��Y���+�#��iӽ��	�#?�
��J ma]�-���v�o�����~����˯�G��܀�rP���0�.�,@'��e�X!�{ ľa Y�j �#�4

@��
@
+���H1
C�SB ��o�؇0y���{Ά�~��Bʏ�$Gܒ��	���{� �%�g��	ŵ�Pw3h�- z%��d�6 at 9'h�$ �a� �;�r'/D�k' �|覒@0���7�x���!�@�>l
V �E���J��+{�OgBݾ���o��\h;
���u�us
+�aj	0�Raɹ 
�@�~�[�
�هhok��3 ^
@�b1O4%g �߳��t���96z�C�Z/��]1�����k�0��
+�H<��/n� ���c��O�ߦ�����K�����*y�5�.���/�����;@�1 �(�Y;��ŭ%���{QAn�"EZz#��l/
�6M��z��s��>�I��~H���{
`�.j��W���p?o ��� .i�g�"�S��.+>9�Np�y����ʍ��s�=����5
󌓉+��
IӤ�3�Qj���i��=�����N������s���������~�?�.�P(�h�
B�ޔ��}������� DG�4*	EN��kg� E��~��at�^�V��;�J�ﱍ�;3{;<L���1v�'� S��ʽ�g�w���q��z�����h���rS�7@�)B��-��E���
 ���h?��g���2�9�Z��X|[��IP���,���㹽M̙̋��g������՗'i�.�3�h�+_Z����'欵��}���6�1k��_0+;�:'���O��0역�;���! 
�w��Դ[�2���I����y�od�f���ܶ�
w����}\��E�54G-৳N$�32HBo_k.����
+�|��5��U4�c�p|��.i�C
h�����ۄY
�J�����id��J��}]�G�������o�@D�ˋ�w�AŚ�fg���4)��$�3��w4�<��>86���;(��'tT�{��H�;@֐;ehhƱ���j����7+��`��P�� ⣏A&a��^�: ���OwZ�Hk����C�PG�|r�i5�Z9�L�$M�z��
��p踾��UM�F��������b�b��9��۫sZn=R�oy�[���y�H�]V4�}ZN���][�ƺ��:c;ܳ�Ӎ�\m��-�/���{��J�W0�z��;?��ñ6V�>SH8�|;�ݢ�h[�PO���}9�\�ir�mښl���f�ջ����7������S���ۄ~���]�设�.�8
#�~">�/�X�2�i˦G�ݼM��Q�U0������خ�g��ٹ[e��}J�@��7��lO����7W�SOp_�{]T2��#�a �0Zޯ����&l��ts�o�]�����a�lЀL�ր�K [...]
 ��
�ɮ��ɜ�[G�S�����;@;F��[��ioD1�
~�e��yB�nk|?++��=����kdW�p�g�2�
E޷�-w�
-��E�R����,ͦ\����}(�c�o�j�X�@��&���7C"3L��
�/d[�k\��\uV�ɔ˜�ϡ|�Y�I;i��.��x[	y��&%nr��.S�ȼ��@��<�q��\�ㆼHz
8°���c��e�����
��B]��"y�eg�X�hCd
dv��Hfo�xP�Fרq��Z�1�sV+33�3���L����l�~t�_�	ؤ�6���[���O�&7�\�‡��z����,r����qi�1y�Ts�c��1&Q��ѕݰ������{� ���P�ڏCT���^�|r���'��}��f��Gǔlpu*�w��8+mG�7C�W���^*�L�`\�n��[��X
P�Ǣ�8c��h�f�Ta��s�e)nR�SnA]6ކ�䊶�� �7[ [Lw�6��`׈
+�Q�mVOʧ��)ݎ��M�[���l�r��|��eeM��Zl&B�qNs2=$��)�ǂRafڨM�JgLs3���fV'��6�,�p�*��o��o	�͜y���z����6�.��`��
�w�%��O�?�f��ʏ�c���r��|W���&�H_O�=���pܪ1�t6��gY�؉ne�l�*Q�Qn΅Aj0������xҤ��X��n�AX+Mz�@O^^k5�ג4kTm�~�� ��m=k(��s&�k��L.k�
�o����Z�
F�n��6��J�1i<u�m#|,�q��G�v��w�2R��
�:U���d�9����M4{?�G�`hahn4q�1�JKc��ǟ--�hCb�N��wW�3���>�
W5�8P/�v>
�ju��o�F��1��bxf#ܭ��U��ő8��#�X8��M��Y��N��R����xJ�!�I���muP��S�_߷̠@!�!9�š��H#��
+�d�k7(�5X���[�Y?�q�3~7�
+��$љ�Q�o�
g7kHzJ\�QԅQH���/��x���*���~j2�����\�4nF�y�_���E�ՙ�ۍ�7�Wg?�ޝ<
+}�N�}��	�~��/GJݮ^�r;k��)f��O�qJ
@����^�߫§Zk�|��C/�jgŰ���D�u����:����A�_#
+{"?�0�۹~��T{�Ʀߍ;梓�=��Sj�N�$�No��:I�,tۋH��n��
7�ts�q�b'�L��cJJ�L��I�b}�{c�/�B�A��-2��)*`9�ڼ<�.r��pv�q�`���X�|���מ
�k�o�P�n'���(&�9];�Y���`-�7
�Q!�ۨ��#
��'s��{
��o�������s3�O�2l�8m��3��uv��իך�]	����΍��K
��a�Ne�o��"������d�=���֜�P��u-7����wc��Ϟ��|�.4s�?�����ř����S�K
+حn���V�į�7�}Q�,[(x���
f{�����a:ɕ�lpS�|S��^'a��Aj�vF�ޣ=�|W��htJ6���g�({�M]���2u�
����Y�k��P�-6�o8w9�7��Z�HOY߽BɃ���p�_���9Y8��	sGK�s��P�%�ݠ�ht����6o��WV�Z]���Z{5�[
��ޟZ-f{�Z��I�D(ZU���*y�`�ޱ��|�e��)��o8��}Z���S�����poC���Ga'���sfg
ք����׏��.��U���ц5��U�M�UeR�$�Cg��}�gֺƯ�5-�

���g�Fټ���L#�KgT���ضT�EtT���e��������奨Xt_���w�5�hx�
�c���/_�mw�a'�|R-���4� )7V�Yoς^��\'աre*G��V.V����P�ﳗ�ȥ�Q!���B5�k��4��׃H�7���ޢ���`�S��7lۋ�}M�z>�K���\f��v/V��ڔ�n��f�h�{�g���>��E�� [...]
ݎ���f�S�G��)g?���
5j���H�̴��f�7;!,-YW��'���=�7�-o�����2����������V����r� W?v�X1�]������b�M�
+5d�`���=���N���Ɏ�1��6�����h�Ύ�C�jY���vh�侫V%��
,�֊�6����o6�
+ۅuϚ*}
-�̡��Fr�;��~6�Ύ_ߔ��Q(���_O��B�2�/�,rWv<�T"
:�:&v=6m�����Hun��2z�`���R�K���}-�o&�*�o�M��
"z��n$9�v��T�*@z�&,�}�~�f �)� =^|w5Oc����%�,>R�R���[@Xk��b�V%b�B�"�Zg��O5�:�
�^A�2H]��/�S�y��Y$����꛼�[ ���ss����/�#H˩ �'�H��.�]�&��:�|���Ts���;z�tv�C� M�x{.��(k�!*h�XF����~H�Y*\��9�?���"f$�A����e+ �S@��@�{�]Pi�+]Qh�X�mu��@��/�
��
l0a��x5AZ俻�U�I����:MH�9���y~ўL���9g�� ��B�'�Т_������|� :%T��G@n������I �i~�����_�Y���0?@h��BtH�� ��Gة�\'�a��ʶ��g�����hkF�9;D�YW���X����}/�� V�$5���#�F��r�1���<�� U�������U�f y�����l%��	�b	n����W�A [...]
+j6xrj�_�����
-��r[(���a���}w�^��|
&
qu�;����ҫM�TW�'7U��J�:�
�9lӥ������;���<�S��w�U��!�
.���vr�r��S	���T��H�U3K�6o-�Z��ם��ݺ�_�
+ 
ld,|��i7���,���F��J���[sў]=���e42��#r��n9齩S�j������~v�e�9Qj�+�O�j�衶X��VOt����ovTjS�>������k�4�� �g\ D>��Lu�Y�4V=c¹s��J�����XŋS�]^cs�?�
�a4
�i査S��r�+ujQ�[�n}ӭV���MV�nf!�â,��$R��ɳY�:i!��g��/��Ԙ�����S�T at F�{��]��]+x�+\C{^q�£m	vf4�pH5껽uؙj^ϻ[��oJ�=}m^�Lj��F�uzu.���\����@苹�r.kK����݂L�I�t����C�b�3^(�^h#^9���-�����,��UY���
x8¤{:i�4�f֏�����6+�d� ��m�cY�2�\7=��X#��K:œ�x������
I����h�bv�rJ�Ů�rٷ0�.v�Y�[���t�
��K�<��9MhC�
��fٿ�y����}���I����n}SL [...]
+�L�l\���>hY����e�r�������Ql(+f2��
	P��x�Y��O�a�X����
����K�s6����½�zM;�G3e�y4m��vʐ�
y@���YF�]��q�cț4^�V��y/��E�(�k-9ZƏ�g��5��h菱�B�\"'tvY�)&X��4|S�lՠ���C���7 ��A��
����W�g��
�os�L
�?�
+�Y�\M-��P�
��h4'�f��Vt3
C���6
��r[
>}y��=@�}��d�nP��=����b&.�p�.��,���9���2���!ž���� ڐWx
+
��s�$}IgK��+1m*9�,��)sG�����]/�]��5>i�R�`�B�C��ɓ����E��
�b�n+jQ��s��WgR��O7膙<g�ݤ�p��S�����q0�#��Lb��� -,�`�!��װ���O�$9i�itH2>���cς�լ���y��6n�Db��� V�5''���S\
٣ް�y9�蜫�s�?Mfҫ�O7�:l��֫w��sw>N�������q�%�Zzқt���dG�{����_ �C�oVe�^��
��>�FЌ��
5��
+v��
�de{���xx���h:n#�枍��L�\��V'��ȉ���e^��4.���$�Cƚ�ʏ�ҫ1<)��0����a���
OV�;�L��ltt��oHh�\
+Hq�F�:	.�<��T����V���t��m3~��
��XQ�6��l���,�$zQh���}|��ΞvMoҟ�1���%�ف����-3闢��
d��K�ٿ��� 6zG������O\þ��^S�^F��`so�H�@.P^sY�nG��q,V�h�K
+fm� ��	#�.:s~���髭��}85�c�|�X�1$���=���n���^-�F�M{,t� ew�o2��t��^�����ְ��8�`��'��S����_���V.j�̈́Kl1�:�����h�ZL��<��_-*v�Y�W�i�}��R���MCfMZ�������k�"��&ߕN�T
�5����:i����֘G����N�Ӏ#����������2��ԉ�>ܭR�/��E����}1�l�l.mF�g��<<��Y
v&�!>
��^Z��
�Gg����k�����RQ�O���ѲXjM�A�E�.\ӊ�S��FD�2�V�@���lw~�eЫ�SU�����	�E�oś����[�l�9N
3��R��N��lt����d�~�3�y=��rI��}�_�D��zv��uq�n�A�֚E�O�Nf���?�k�Ģ�O
��O�Lݯ�u?�t��{��
p�4^G5,<�
epW^��)���T�\b
I���i;ջ��,%:�JVj{CN^��>��7��Zd�^7�Ng
43��D~�����h��k�[���(���#B[��QYԚӶYkv{��؝n��l
~�|:�[T;�CAEDE���p�}j��q���lL&A�����l�޺ө)
����w�V3�~t[�����3��U��&��P�����WYc���(�t�f�
��
x�����R�Ql�G�U��f�=��[�9��z���2�s�s�5�$2��4�}*�V��Ѭ‰���
^���]Z0��0,��V�|�刢�}�e3�-s�\v��ml��	����C��ӹ��f�ռ�n���ōz�ʒ�ŵTW��Y�I�_���:8UĊ�h��zw-O>�O9�K��
��%�aD��
�}T �{u�"�s��o�Z���}gUa�����ti�kX��
��ыk�5[�
�l��u����Z�x5�\k�n�T��(_��i�<�	��b����
��}Y�dH-����@��O>�5KyZ��r鰿���;�G"���f��������Is����:���[S.��@��~�έ:�m=o.������~�W3�mWrϽS.�{��w���N��(���L�x>r6%p�ԓ�A]m�lKg�'�%d�PU�\�h6�1Upm`7�9�n���J��A~!q��׎�5+�H�
l��~u�Ƞ
3�EC�m�Zw���,2*�iI��ٺ(3�mA�4��n^����g�S��ܮ�\|s3\���nf�b�l6���z��6���)�&3�
�^��8���u;XPe!tZ�q�X�
�gj��;mڌ��z�
WΥGܭ�Y���q���s�=��U0�f�7�$s٭��s?��w
���ґ����@�_Рn�jV. �!�H�A�x
�R�=`	~�F @�
8��&�n
+Í[&�g
�\���r5��\#�:�~
�E��/5J��%J��
��Q:� �V���(e�1��Dp�~�(e�g��
�B-�H�
���0��%��9��d@��2SnTb����Lo�ach�.ch\�b�&8Q��?1�Y�������W��g Q\�Q�F�U3��s�!S�!ԥb��?����`ܚ�sAs��_>�
6�(�����\��]���>M:��d�CR�alnƐ{uc�D�1��1$^��sY�{���� o
CRN�O ݋!K z%�օ^����'{!���a����Wޝ��|3���31��A�� �k1��z12��c$�Vb8N1��?bx!�1L]�n�cb���0��p������y��?��
+��NL�=���/���O��`�Z�r3�/���7b8IA�*��Ql��'߈2X0���ߏ�D�.F��9F��;F�;8�"�]�u#P#G�z�ϸw�>8��ጺ��B��ߎV��e��\�
�ID=)*��t��x�F�x�O����i�e�1�n�Q�:W����+Lۀ�8Ɛ�*F]#Fy��/��L

/;�����ڽ�%������A����o0zR��#�r��� x���y�&�t�I~x�M��WЙ#v���s�f��p>�2�E����3�ѹ����16%+1f[t���I��'R�I�c���}?e��j�&A��3~�K~�vZ��iv�Cd��lݜ�����|�U���c�x9q~0�����lHĥ=2����
�G6��ÓUQ�'��잲�1��m�@y&s��߬m-��^��r
�;��[�	�䗴���:�}X)=��Տ�
z�{(�լ]���J�������g
T�3�k��b��5�9�Q&�
�W�j�}���|<=se�f�����E��%4ƺ�l�ŭ�w� g��7�l�>D���g-��*,y�����˚}}g�������獟FO�t��^��T>

42�A0?3��b+���������O��
Mk�z!������a���L�nj���P�:�����t~U�������GSB�Z�-�7�u��s��!^��ڙ��:^F�x��aic�)�#l�Q���yުM�(]y
�|�Ơ�#���ϟX�5��s����ooG��]��ƶ��뿈��"�V�5[ea��9c��
��o�N�-���u��x����m���TS�.4nǎ�>���ܑHc�ލ_��z)�+jq򠶋k<T�Lv��&]u#]/�����k%�!�J�i���>�����ʸ��?�8ö�q�q-}���
|&x�	[&��ڙ�����7��Zox 5��w&}I�
�6B
k�_�W�X4?ض�͆����,$����T�mk�t3��o-�bV�� �j� [...]
ND.��t���'��d��Wo�`���Ca�R��Z%z���K���M�q:T?˫j`�]V�B�~h�u�c�Lˋ�~,Z��]�7�����ūp'/�S���K��@a6�9����r�y���9Kf����V}+��Z���Y5�숪����,���+NN��(��KY�)p���#(�ֿ	³��W�\�X�����U.ɶ{\o��
\�mn�0׻�eN�wJ\��_
+� U���Y�^|��v|��� &.'�w��<���Y�7� �wW�DlWH��Q�v_6dr,elw!^��j���a�M
^���b�_ܹ:=��Nm����3l}����FS|w3����q�$�G�C�2�Bq����/@�"a�3�s꿮��ĵ'A�
�9�zh���
.����'ju��6�T��duڑ�|ˆ�f9]V�5�n��Bi���.;19�^ff��Ǡ�Ls�aaR̍�g����`7.S�h|+����d���&�t�_~���q��Þ��E��\�J�~">��a}/�{��t|߿��L��M#��uh_�Fr�%^�sY�1�F���-��9��n8��?�,e�i.��I�
G���G5
��2>
��s�aA��>win$���Ȼ��/�_���
+����q���a�$t����
+z�N��
,b���2col�oh���gZX�0��n�4���y�
�ܞg��5m���O�}W���w�6�֛�g
�k��0F
+�a��J?ذ;2�øed�+0a�ʳM���"������K�f��|��
6D�G
+�I�]��V.�͎T��+'�ٳ�].�s�O�yb=�
�����ϧZ�墳
=B�d����l��s�M�`�,���v��t*���
k\f�_��C��=*����w�~�_���1ﳕm��_�:�$���8�
Uq�雝V���~Y]>���{'��y�/68�?��Kv�Lt:�ծ¨Ah���&J�
�+0�������boz5�]�\Zt
P�zӰ���M%���?�x&�����t?ls�84�ˎ�7?�����<���j޴��o=�Pۦ
H�r\v�U��A���+���LjUڜ���4DR
dV%��[��u�s:G/�R��M
+�γ�]mK/�(B{8��Gr����������PQ|
�~ߧ���]N���0|ݯ���(l���w��un�[�쌾�i�o�6y��$�q��8k8
���`���$&�
���nE�
�>��NsI�m�i���G�e��Vn��\�������/~0wq���=%��F��
�_���!s�h�bHS���s3X����
�7Tu'�����	��T����Gsp����1��ޢ[u
+M�pp�;�=vnw��7�3(�e�*�
����Լ���w��?9
+�p���/�v�
�O������i�(�^um釣5�Ő݂���e>��2
+�9��=�3Xd���r���h[��խg{}�	��N;S]��PI�i����7O	m�W�q�'
.�]�W&������7.�$�s��}
(Ns���m�o���b�nzU��f�[\�:d�e�:�G�6����/
�W�:Z#�����B�
��I��i�rHa�*�±�ܜ���Ɯ<�~w`�Z+Uꏧ=���'��b�I}E����d뫌��űꆠ�ܣ��S��eӻy�ꖩ|��.�_��+φ���>�8C��
��Ėщf轝�����J�ٔ
+�q�"����i�Z���
�������ީ)9(�Q�y��+ALuW.�U5:&UZ|�Uz�e+)d`�0������t.e[���)(�펳'gy�A�<��d'?XO�;��W����b�WY���7�j���ې|\�I~��V1��5�n5A[�jo4_W�g�X����l��|y�v��nq,��ϧdor`^Y��" ����?T�mK
_��jg-�ͻ>��0�x�E��0m�WLJL{����|��ޡW��hZMنT�?��*�����
�����1h��o�r�ql�.:Δ��<��D��w���Ŋ�A�U�hU�U�Y�'ZhB�l��3�ؾJ�u��^��g���va;!SZb2&�w
|g��{
��j��&+�d�+�ZN(
+
��/�=q��
Q�����|
+��)�v�B^�Ӎ\2_r����`9x�1ps�x��óG�e��
W�a�#,��ޙ_�M�}�I�\���n"�k&��B7�u���x��F��ɥ�V(���"��t��ֈ��?�Cn�˜�Wt�LH�f��O3��f������U��w骫���@넟E��b{�ȫ
�� M�I~�*G��bؘj���0Y� v+�Sc�Œ
�٩
&Y����M�V5�%�^nP�F8K>&����e.;���^��0~�_���ڡ��m"M�>���M��C����{
궸�wժ	p�P�=.|�=�v�

:��i
3���V?X7��<���q�ͦ�J6�mWH�����
�1
d6���3
�Ա��R�g�m�y��a�/R�NL;P��
 � 	 W�O�v���`�8�]h[Ѷǀ��M���7�L㿈�v9�!��c��$`o�P�
G骙��[�Ǡ�d�N��탖?J��!J:�
�F�#�^')F	M��v�Զ���^YD=J�� �Q�G�/�i�o�7�G���o��q
���A���Fi<���>Ԣt����Aϣ�-m���9Eɽ������c��?z��ߣ
l����5'V��(���5�
��� �v����T�a���#�n�(�Kf_�b@���7�
ݞD
	9�K�>��.D�9ѢTn�����<8(�y� X��N�SC@}
+��+�
3_<6�Ȩ�ϡ� �p��5ߗi���
+�.^߭?�n�[� �T�A��9���9_�A�F����a�<�!�bh����x�擻�'��
�WߖA+�H���I������m�9ę�'ۣ
a�12�{�P
+DoPW/����Գip-?

�����(Fp��|�Y2ߕ�z=F��+@�E
��J
ϯ����.�i4����h>/}plM�ӱF��m�sWЋ�KDȿ�%$�����d��\o���ph�������m#��;�����u�1��a��O��X�
�h�X�fG)���#�&Ĉ�P���q
+�������r�N��f�F�Xznzf���G�W�HN�ɣ_��쐊ǔ�G�(Ɵ{!�qg�%`�r��yy�f�B5�s��Jg��'~##��> �*t�Ac
�ˀ�/kY�]9w(�D%Q��s�w��
�P}z���x�ȸ��\���z�5��ŮSӔ�U��˛yo/�M]�t�Ild�,�2{�r���c�U��e��-������ـr�A�C�x�&��D�ޟ�r'�W�-|p���Ee��޽�}^��G�k_券_� �:�-"=C5��g��Q�T��N�@��'��
�
aa]ޡ~�%��| {tT�Ҿ��#�i9c[�f�d~���:�A�&c1��g%k�}�@
�q���fsMoL+�{)i��M���z����ۂzI�u�.>Wk>q����
��1W����M#T)�h���kC�����HC�(��h��;�p2_0���/bt�1ֿ���8Î
+q�`UC��K�.�̺�q6�4^B�l����T<���bvp=
+�b�4H����6���<�	q��}yi&|I5�ydw�]PV�0J��=�:��Vq
���7
�I-���
����
���LA��*E�}��Є�����6��7���kHB�
�������a`�:�L���K����n�t����s��m���r��~&������U֛Q��n%{^���YJ�4��c�t��%��A�Y��(���s��Ӈ��
���8��iF{�;�O�~��
+Ɂ�{���>8g��)�*��[~�q at n6rޭ�3���n�]�OI 0�JṶ�]�O�9Ǧps|������,/�%]^/��"�&�O�)�3�.�U�/Nka
.���p

q�8����,C�5a͊�®P�ȭ0��J�	3?�:d͉
�6�
�YL}���xR���K�����w��I�./�
_/	�N�S���c^t�?|~c�u��o�RE
V)��V���҇z��'�vt��� -j��b9����U绢��MK:6�$;���Y��e:m�)�y��,	�dŰy�q s���
�yXs�����b��9
q
.���v4o��������S[�7���U�l�>��~\ܖ�Ó̬�j��o���v�]qſ�g
�6T���:?�J��i��ډ^:������w{�
e�*��y'C\9��|���!:C���Ԛ���Q�v�Z:��a���͆�:���E����?����������j������N��@�ql���gPoC�v$��:�HQ�-O�e��~0��+��KAG�����;����T[�
e
�ω��I��*����Փ9v��sRP��d���/�/�
���@��r#���93왖wPw���6�@
Z��]o��܄��M6��[�fk�Xt���
�/%�ƂZܩ9=����p=�1�\������,Lcg6w���
+Ѩj;y֟
{�Dt�Q
�?Fˉ����5r�$��?UsTιWu�N�qa��ݾ�>ך=��j��.��W�C�gi���"���ȉ��!
+�ȹW8c�n��!==�Hfr!
+���c��C`
K��F�2s�c(�@A3�e(!r�wK
+�?����˟��+Ԟ�K_����e�[��hzZ�櫘W���|ݓK�Jȓx�Wx��o�md���
Nkb�
��?�4OW����Ǖ�?
�aGd�yǴ!�<�Qp0Hw��` �[��?��t���kح1�p�\��B�
���t?g�s
��u�l�{Lc����f�/��Z�c��:+�ٸ�z�
�u�s-A+k�Ծ�
+���T

�Os��8]v]0��6�
+C
�l�G=��̒��f��N�%ٛ�R�β�>hG_}��_
�xv�����/'nL
��V
s�]����ZH��l(.Lz!<�c�/Բo��{��2��3�uWȤ��ȟ%%�ź
��3�-��>���ˬAo:>�
+����GO��_�-̫K����|z
�W���
+8����/���=z�NJ��:,��Ѷһ"����\��L_h���n��A#5g��͙=9��v2j\�
K)~q��*�Y
��d�̠���Y�1ʫne�t5��:R���_V��~

��K�O
�2����<�x�p�i�٧��tX+�e0��c�������@�&R��!(���3a����)��e�<
+�m�����{x�Áv�
�Բ�����
Q�{�J�1��hm�i��n#̕ڱf�Q]�Qn�x�J��Hu!9�vuŧ"��������NO�d�X�,�����Vi�+�>[�ߛ:e�3���1yBepW~��=���u8�� ���~���^�;+v�-pUI��tZ���Tk<�k�jkX����6G
�hfCl���c�9�D �M��<����?��rX[���0�Q����Vyeu��D���
�
�#J�ꌁ�]��aFZ����
{7R�u=Jx���(�[
ގj
�X�l4)�Z�2��
�̦1[I'�y���B��r�
��Z�H�R�'KO�A.j�ߜ���׵��ݮ}Ki�DM�K�
Ð��0g�t2+P��^d�����nz��+���:�X���䶻n5��2�b�b�iwj�ƵQn7�?&+�B����U
�xP�c��k��5e
{��_
у_}���/�;y�'壽]㑹���N��Cy�?�S~&�X������Jv>���>OR
r�`��PZ��b�<K�Yx��Ƣ퇤�Ep�7�|����k�)=�~
���eп꫖W�n�� �A�+f������������>~UWu���X�ҽ�ӯ�jF�"n�)��`z/t�ͤX�2�v���v�ޤ�z-��^M���Z{~P�1�X�]DݫPw
V����`t�,�Y/G��:3)M_%�T�!�B��%�`�Ht/���+����Ŏ��&)z�A;>ҫ�ٵE
���]�;8�€�x�&�9�e�ٹjltre��������&�YmZt�P*.��
�s��~�� S��Z�Mg�M*Iy�Z:�v�m���a����D�S���i1��u������SK:o꺠tF���G���
�O����N��F֯�B&
+�Ҍ4�³�d��u��-Lvs�b4�u=��A����`��N��Z9�f�+���z-3]���To1I\�!�
6w�,V��G�T���_�����J4��p����o�<~p��Z1�~k�<��>.U��#ʠ��+�$�A.��
S�d��j?sJlf��p�
���ޢ^�2њ:?"c���z(L��:]�1��n[��Yz
7r���N�6�.��,��]��2�f�i"�a�T��-ReZ�\��}6y��N�X�X�;r���������ql`����H�y���
+�
�݊b�.9� G�6�=`~�	�m
+%�۪0�I�����L
�v�>ԥ	�
�P�N�gc5��
:ԅIө5��
��0-�)��'����+��ֳi
i�,yl�{�� 
�΃ �
+��� �A��oȋ���؀��߅��,��uۀh�4�T���"JO'��6����;  ޏ�V7�l
G�1 �x�nG�D�Dq7������+ yFq��3���j7����9p��UQ�[S��ߣv�a����x~
Q�ǿd��(��@�������޷(�pt{�i?jk�d^�~�X@ 3
x���� 

+�
�E_ �k�F�3N"mq�}�u.����?�`6����~CL�ۤ޿0o����3I���x��|-J�[?J�
%,��Q2*�#pB
��K�ǣ��K�	Xр+%]B �j�ۧ�&����G��Ƚ
�_�$�_�s�_��[��I��'��sc��
j�?y�j��(��V��5&JgK!J��~L�Yv�%
T�R����J�Ԧ͏�\џLs˄��>s4�������
x8<��=���o��S��?��(��:��&���p�����ưԸ��@��31ܬUc(��1�տ��
�)�j�
�i�Ֆ
抝��r&o�2�^���U�M9�^�FP�
T��}6{U�W̕�芁0u�
��O.v����0�W9�j+�
�1��{��37F�?F�p#4���܆��Ӌ��k��
��k�ͫJ����3�g�������sf�MV��po�1M<�
�#�n[�ɽ�/GP
��������
QOm-��voݏl����7� �����;FK����q��'g-�/��t�o�����
pŠ
�fU��ý�j�
wGܜT�R�]^*	_Zi'wV�ʙF������v2e�<�;;ךͼ��܌ϡ\�ަ��
�����ыQ	��|S�$F�N>���B {|����e�6�+�DF�]�G��(����k�+�蹪���މ����T��cn�zY
+O�⮆x�_5��k����o\۠>�@ߍ�o���ZzY�������g��� ����=�����M�:�@7���Ԣ�>�� �!�Ͻ"U=Y�
u�|��ť����'�|TO�>;���^�]NF�=9F{z{�;��]��ӌDŽ�P�2ڱ��P'�s�^�O��^�cKl����0
�/1�:�(e׉�z�����s}^�4v�=0�
X8����
�8�I�P5���
+��O!��I�:�ah�ІCK�Y���e��A�6���*ܟ[SEhV
J%�:?�fEw������V���?X��r���[+��%F>�6��pQ=��Inq5��j;Xq$㬜�
+�/����
��~s�@k������Ve7n&
uV��3�Y�e�3���ˍ��������
$����VI�Ԛ���j�����v���e���.����Ǩ�+�{�iI�\�bk�w�H��3�<�#�e�rcwh�u�
w���lo�%�x�qy�l���������2=A at _)�{d%�d��Ҍ%������G�Y�T
��C\�-�*��������������|���݃#{%��EpWN3���X��f��F�;mٶʥ��<��g#�)�nw/9��2*� Ǒ+�v�S��,/�6�,*핰x
4�#y��-vυ���M�`�<W��4W�8W���\��/�/ǿ����FC�.����6p�'��,aς�+ch��TM��:_vLe%`�u�O0��A�HB�6��r���g����B��wxQ�3��՚�߮���sw�����,u��lP�+3$0�
+����Էg������r���gc�Q��}{�,�<�������kIL�����c�
�#(R�Ղ~��4��-�@,�dY�Z�Py	y��
+��l̷���8-Wc�Ak9C;-u�����F��dbu��k.?��ED�L��i2�l�__̿D����8,��5<uv6.��5��j@��ԙ^��:�>P$i1[bI��ޯƥ�e��.A��7On��5��yg��s�ι2��.5���p�}��I�q7�y;���s$�.�>m􃍪����y�8�
kt��/�_���t�ӓ;]�+�

�!��[o�w
+�mkM��vn$���j5����_NB�=q�����s����
x6�g��� ��\���t�
�f<N�����d^��e֧1ʴ��>Ӓ*f��,��y�,�"{�<��?ث�ҎKl	�<��[ki�����z&�&*?�{���A�4X�T�_޶;E��9s���9}
\in�Y�:���"�L��Z~\.��%Sn�`��-��k�X?*�;ύ3H�9h�?���� �ɇ!]4̡:��yF��s{h���}]9��T2�
+쮅�D	�*�c��q���8��w��
+ui -�GE�C��8;�3�T���+��1���#����̛~��Q�9���|З�j߼�/�L������g�����{���9 at Xe����o���u�͍�
Y*f��I:6U`��f+H��='�K����
��-���5Tgl�5������M��
0:	�	�Kf�2�a�i��Au�볍ìw⟛^�/�]�!}�Ő�u��޲{����ܫ��7!��Gv| -�^�4K�0�
$���-)�kx��.�(��ǚ�'̺Ǚ��|��W��!��X��ӈ��m�]���ϰ�S���r��U{v_���-N�{ϐ���y�<ڠB�I����y����P��#B��;org{,$ڡ�k(�e�d��ˍ:�N%

E�
�"@�ܧ
+���Z���ek<)7[���K*�Y$&�N�˰_2�����1:N{���:�A�v+]��,�!��^{��!��ھ"��ޒ9�!�`
�nq��Eo�����Y�
��6s��Fem��m�z,�H�3y�ݝ#�Baz�6���/k�z�5dߏς�-\yhL�ڀ-�'P�&��ǡ�߽u����]��l7��7YoP�
R�(.[zp۷��h��3�4����
��[��
б��\hj����f`t�U݄�l�`-H��>�c�沋aeHE��w)&5j8,/ƃQ}#���X�ϱ���^U�^g]l��m���x��SS���I���5ٽ�7l���I�#��w���Ɍ����/Z��'.���hڌ{RY���/��h�۝i�KV���a���c6�s8��+��nwIgf4��W������hQ�!w��٢�b�L�<2�L��%ʍž풥��Յ�W��{�_��ϖ���c���lM��j+m��=���~p��цZ�u��jN�
~{B��
ۣ��S
��O��ۇ�
96����>�}j@� [...]
g�ձ"�^�������عՎp�T4?�T�f�V
n��V����42fv	�7���X��l��v�
1�k������6g;M���f鏰��
rӉ���#-�z�M��N�|�9���wMoq��M�S>�kh���rFtڥS�0*M�P�9{��,�#�U�
Q������XA݂�^�B
�[��O��k���-k�o
--�P5p�|7�_��(���yn*/�h��V���aZ�_������L\���nE��wY>����΅�F��
D<�ao5<�A/6��%���������˚De��U-��*��Q|�qO�d��� 3
+�RfdiFf�]A�˦W�h+gl+<m���;��@���c���ͽ�M.�jo?��V����Ϸt�����g&d&�Lz�
vq��ka�Rf0�=^���y��炍V��y4�
R��߇�Zv	���
+[R��j�%
0����9�E�a��G3�5�lB����@�:]�j6�v����U�d;����W���,�
㆓;�|�:�""��2��s5�3)��*}@�A
��8'�����u|��:O~�
@4\�Btq(�3D��������5�_�����N�7t>�t��v��*U���Kg	�߄�ȡd����?����7LEM
(���k=� b�{��م�Wy
X�P��P���.Q� w��xX�j|������n
�v�+�K���캺}Xc>(�5���ێ�����F
��E��d���#�� �m�Ѧu�(��P���[�
0�g�?Y�?�m��3�;�m��?�m�,
���(��>�6�7���k��z�
�ݶ
�y�%rp�Զ�x��Q��^��8���NE��|�PY�``�V���Y��
`>�(��"�� �
+�Վ�Qg
�+��p{G�$
E��K�W�Q��;�`A�b��
+
�Q|��Q�A�#$�sV)�.1t���e��@�07�+�| ^a)E���s�%�B�mF�@2���ص?)7y��j�
�� 
���f�_�8�%J#�g49F�7�@�M+Jĺ�8�
lk��Ƣ��V�x7��X<L�x��cp� �G�J!`�6�S�b��ݨ{_M>��]�0{z����"���y���'���%�(Ŏ!F>�=� ��Qz�@�� �\����Q��֢�����
͢��_���\��Kԛ&^
�ϐ/���@�ъ�C�
���͢�.P��k�a��



/�O

�:���K����s��?�.%�/�
�y8ŐcX`O6ch��ch�91ė�1���Qj��(�^Q� Cu$����5Z��
���y�x-�S�E'X.)��?���h҉�
+��~�\||���E�C���~B��mfNy3v�˨v��v9����/b��b��Y��ý7��_��p�?0r�>� ԃ�'���n?h�3�{�[t�+�xD��qV�=��P�}vY�{��N��=��D7n.��\�^P� �g�vw�����|��N�lp>ZŦ}do�����_bx�ȴj����+`��Y%
1�����h��;l����B��sI�v�ܾ#̎��⏋K�8�.-�U�ۍ����u�5
��0\z��


��D
GSп(A6]hm�չf�W��ړ���x�H�1��o>G@���!F,���
��D^KWt}U��^7���k�<a珷+��Z��LUn���<8�8�f
ya�����_v��\f5��\l��`�(����O5���~PU
ɞ��i��.S��P�N_�K�T����	���
w_�u`��5w|�vK�s�w��彋,;u��)�B�[ȁo�pS�*{��6��N�T0g�]K���g�Ҍ�^��j�0��2j=T��
+�^���r[�$�����3���mSG
�1���?1�s8=��{�r��yq'R��ݑ��
Oڋ�(WW-�G�把�}3x�z�ܧ:$���
+R�۱g��Nn
j{�.�[�V��
֗J�UA<��uP�ݵ��S9�����l^�J��I�n%H��&F�}+F�3��~�?wV�����ω9��ڣw��S�P]����C�}n)�l�����T�
+rΈH2 "fŌ�����ַ{�u���`����5kZ]b+i0��z
+구����>w���t�7�:�b���
|�}\#�%+ř�'�6Iv^l�QYمظ[R+�ֳ�<P{�pP��ɗ��{J���*4������g�0
���mؽ%�*��\�7Mt�({jFQK��
+�ҝl� 
C]m=���ػ�ډ�\��;x
&�U�9|��e7F��qf�饚�Z�2�����oم�a�O�����
�C��ܿ��
�/���y}btp�3����E}U�6��t��9����Gn#�J��I�������KI�����a7��"�f�S"��;�7��Zل:-�?�u1�rdx��Fo��G�3��u�M<��
ƴ ���`�z_
-����Tjl��R�����a�.�‹�>0
�WѪ5>�g��V�)
1�mg+[�йU-����8��sw뷯��p�|/�&�
���u*
+HmV��Z�yZ?`֏�s�(.�����ʩ���:�RIme��/�?�t��E�1ݾ
+�`U]��z�M�7>��h
3\c�u`�}M:�\��
�a���;��xj��8�w����̱GH���͗6�*-���U��F��P��o�e���ðK}�]���C����H��Ȓ�(�Ǿ�}:-�[b�o�2n.⛢�O6����}=�F]���B�r@$�-�^(�&46�v��
OƂ
Y�E:��l4�̲qu��j��J�7+���Ж�JBKp���֒
	��f'�7ܻ�
^�1n,��q������
��Q
��Z�����(?�,{ܴn�q�5kz��+8Y;�-�%a�Q����ޓ�Y�49���<�����T�+a�Ԫ�En��S2)� �g}H������#����ɂ��r��M�2ͽNg�'��/?�7��+�Y�
��ު�����*����C{B
���t�c
�4"W1�g��trټ�7��E6}
<;�Z�k�R[Qs�B�|֏�}�܄;Z�	�	�x�Anzy.�,�w�
"��
��g�s`g~1�
}3~���/��,F�i#p~?H'ے:Ur$?>͆��
:dmk��9�M@#���
Op=�9��*ɚ�ͱ�l��av�-���3��k��
+x�t�)����Qa�}�Â���5Ť7�6�5X{�Zk�ћ�3��g�ϱ���i�(��
8�%
36y��n`�8r�l��,2O��#�
�TѢ 慠�3J#�2\�L��"�H�~�F<�D��
��lT=٢�(2e
�Zx��C�cP��~��Tk�����P�^�2�
el�_�?��+��˚��	�(޴	�j�C�M��Ee�aO�;,��;+(;!m�f5%���SQ�*iO +���ш
�~�F���Y��B�nt�
��yM�,H�}���'xrLNxr�w>*��
_t�c���
��	�,
�n�tE�O��Xw;M�
�:i5����1Qk]�"�>��^���
+�k���G�q�ed��C�c�ge��j�n���S�*z%m���,���l��d�`S
aL�M�wIcr��Mٜ�M�O
{9���5.���I�Y���I|_��d|����b&�����ߒ#���qx�����
��	�H��#J�֧{��,:�q����	I�
+o
��������Xna��P�%d�5<Dn
? R^n!DJ
1��C��E�����8�0L�+{�J���{�z�|3-�7#
��j=F�.\1!�l��|]
k���B�;�^,��T�
&1�K
��JS��,,1�]�Q�>�������vu�,v��铧}�\�
hg
(\�
��E��\X%j8�+�;9:�=�z�noEY0ѶN�␁�NP)p
iu�[�����;���1�&�3�T���B����B%�<F֛s��@��u��­cj�,;��v����t��
6-
M��cip�c����`��y��1'���T+��Q�,Wl�����
`����~w�~�	��6�'�71&��*;��$�h�
�ԥ2�56]�
i��
L�}���6b/����v�S��)��C�}AA�5�<qZ6���6��!�����yFc���O}��ў7�RG[O.z�lo9�6\c^�799���
�)���Wmԓ��
&-b�d3>��@M��Q(
xC
+��q)�@�
�`�k~�4�b�\�)
^�ժ�z�~X��ѩ\�I���/K���z
f
��P8�Y�����f�ޜUt�%�2��(_<�
�ڊE<��'�x���xǮ�K$Z�����C��R;�?��1⪵��km�JW/��Ru
ٮ"�>��W��r\�%(��r�<�.�2�qA)H�w�Sjӥ����kC/
��1Jq�J�������$_�
�GɦC�'�:�����=�Nj�5Q6qsyͯk'��W��m^��Uq�:��6�ū�/�f���
X�.�*��@b����_
;[�z�7]h$c'��S>���U��-D/4|��?x���Yf\�j]U,��	�#���e��M��@X�Ӣ��k�rE�������#,.^ �o�?F��zɷK�c�r�=s�S+�Vm�(Kp� |l� ��6���
 ?3= �T� ~-� �*��&��n��vӕ
#8ɽ,���p`�̠;Lj<�6���Th%��Яک��]iT��f
/
+��E9��
�K�3� ��
 �� �^ �s �� ����dg��n���Hm��n��^ 9�p�
u=������}?P�*2��g��'Ip��ӵ�i�^��
_�[e��O�zrG߃�eu��
�%@L��uJ�� 
'��:Y
c;��] �h�@�(!kVjx	*�o c5�zx��>@�@�r�[
m�9�&�?4}Y��{Ub!���
�w�.ЀA�R����Wy��_�Jgv*�r� �^�"p�����P��8���'�VP�G��R3
�a��$߭p9c� 4�]�����`Th<�.
h��]<i���g�,}�������6&�i�z�i�
Gi�2��]��
Y�XtӔo�}#�=Y��l�<�9fl��w��m0C�g,�&�ٌ�o�W�,R�b�2�*�Ϗ�z=g
?���~�@��?�i�t��
���$�I�Mn�E�Zd��,�f!Ã�� ���3;#��-/˻��9����+T9��B�9�
�'����f��X=�pN��������������f釺M�h�a��%'k�V�X
�n��r�ukٛr�o

˂��u�eqg�*��r�]<?�|~�;�����+Y��\Rq��]{������n�']O�1�Z����^
��v|�\��~�?��Uu�~&�Qk���=/��x����<}��>}-�$}M���E�����������ͭ��'�]��G�qX&��j{םU|;$��
&N�Ü�7�6Ϗ�(���	5�NӼ0?#c}�K��XX#�c�L���^����IF)
�xv��`a�
������M<���H�ح��*��c�Xw��j!y���-^/�[��3������<�`�[x~�
�3����߸�r �:�Y���߃���z�u
+�ts�
+�fXʒ�|����n����b��
0h?��=�^�
��NY��U������=�<��q�_��|~.��{;�r�<
+�!/�@=lFCc���p��n`��rZ.��<n��f������0MqA��Xu��6�h˃^��n�=.�/�ޟf�nl�r5��r~�[�-�Xެ)�����ĕ��X��Ǿ/t���S-n�f��M�N֍hrMs
��-DyU(+�e�9����贈���)�7n~ޏ��vA�yy�

"kĺ>�e�R���
�N28畛��Wn
M��Ug�Pw���YK��%��+*��m��7$��WaP����ETM�u-���rԄj͹i���V�!C����3o2���g=�
�����}�X���"7���`��X��z���5W4�5�����
�
�=+7���R>E�s�5�>JJ�3�Y,�/�S~�W��|�u��3h
gC���q�=}�!p�"��4�P-_ �,��,�;���x3�X�z�9
jw7�j{`�&T�s���&��p������X����ʽ��W��Wi�u����
%�����7)��V�~؍=�
�3Ø-c8�$Z�G6����x<����X�P���q�t��C�-B����������M/���(:tas�g����[N�D��Y%T�(��o�wK����i컢�m��[I⽹����\��g��
+��ݕ�V��x׋�#��킾�nR�>X����8�K|; ��67��vQK�cn���AU at G殸ڛ
{T���
+݇#M�"g��s_�/��&,��:.O�x:�&0:�r�`�h�k����W�)��{
�Ujd
aŻ��}¯��w����
X
7��[
�ex�*���6��/�P�U	��b﶐��'������'b:ɟ$��%��
�GrXq�K.�s~���R`�
v��ԃ �s?�/anܼ�*CG��y�Y'�M� ޴�3
h͖o0����Z������a>�֟"T��)�҂�Fk�|o��Rs���[���w�ve�q��
�`~��;��T�k֖�#iY��
�/�`6Nk�R�q6�L�~\*!;��pK>�A]?�&$m�Q���极�Τ7���d���w*�K�:�ܜ
+>W
E�RBބmE��`,eW�Qگ���??8i�.�_�/�7�fw�x��u$�bt.���,�S�r��c �H��9�����ΰ:�.']��9t���^᚞N�N�+�Ʀy_��i���V�����mC�P��DE2�~W<�V��v+�pE�;�7u�-J�p5��
�Ǖ�^㽳Ռ�������Tzî_˯���������UY�}Y��F�i��
+�#�F��DҸ�VSE�7Ew]y��|�QvR�

�S%b��-��$��(�L.�V���e.���0;�4O�=���#�
�9�wx�|�{W�p<"��t��
սg�l�e��Ep��H�1�ת��櫎*3R�@�U�'e-�Ci]���@�
x(Z	
+7��-^����q�i\�h �ٝ��0����,�8�,�i6����f6��w
�~�l�jQ�Va�#���n���`�
v�.�
{�u��3j`�h�e�F�ݵAJq
pR�UR�n�f��p�����d
XrS�t���}�����z(SZTzmE!�v�<�vHƞbJ�;����M��Z�o��Kބ`�6��R�p�W�`���E��	��@m��.��9|�	Te��jI��
�ҙ��X��Z��JhqL��9��X���OZ��K���w��l'SM^��cQ�PM�d8�٧zQ@|��8������G����T
��U��ߢ�]	���3ɯ�y�/�͖8��X|H��E'7���@�47��O��rK��M�����,'�ǔ?�ָ�ڏ�w��A��������R
HJ	HZ�����L��b7r'���
�`4������;��ߢ�?|��X+z�H|ވ.\�$"s|��j�g/�9��X�YfՓ���
��e\�_`��IR�ĕ�]$Z�@|T��Xʒ,��
F��;�[��e��
����	[� r��D�T��ԝ
��-*���=���םd
ց0�����+/��j�r�a�̖�&̨@�wX�����Q�[�H�Ѳ	�R
�����>s�h��Fg�}�FX6��W$���Ht�h�Z������O'´k�j�'�;�'���[T6Ʒ}A���'a�C��Bf�,o��,���v����N��c���
Oܑ7�]���x6ؙ�4�
�
\����
i(���)�vU�Fvvw���������zg���_��n|@�X
�m�5J�$6z�p
o�����n:���aA
�+��-�aG�5?�HD��D�j��a��$1�85
+P,x-i,���|1�ezw�[�t�Bm�1|��>�����H���q�嬕]�	�j�qNx�ѶX�a#���i��k���]���
���0"
��A�V�@q���l��X�n0�q�۞��Xo��EqxEK��d	sQ�H���(�۰�w�j��V�z
�֍�-��n��9)A/:�AS��A�\�@�H�B@)š���6?g7�`��fW}09�n�!�5U{
�����**�|!MhS����0u�v̇�/�j�v*�[�#�ְ��[X<��y��<� zϨ
p��-��&�ɝKN.4�½[�ȒZת���J]�ϰzM�2p
�c��9{4�<�-Gep�90KX����wS�����V�vGT��Q���#�3|xM�O��}a�X
�sC�G�F%�����u��ꍚ/����rMį��ήj9�O�
���kR%oa���c���rң�?&mv<d
�!N�>Y�Xuy�8ь:��2��V*�q�Z�
��(���	��z���
+f�&�g����}(���^z��\)(0�����t�K��n��kT�o��up�<(�$�.^\|P
\\i\lQ���0��
˩깞�ᐤ��%
���t�5ʍKylAI�
`�L�FmZ�T
YuKxo���)l�`R�;˰P�=��ðu��q����⾖;�kh�X�uj�
�5��7��f
 �:�v�=�֤zƙ�x����4t�?k�����%�iQ���]��"U>���_�ܓ��%}^I�I�#�.��m�|li�
 �ڸ�aD F
 �t fE ��� ��� vA������7��(��;hd�6 �(53V�=�f4��j��~o>Ke��i^L.�
| li����	�P�M�u�4[U�
���5�6�]衛�
�
���	�{��ϻ; ��� �������]w¥E��%
@�-@�[�H@,�l�c���"5$�x����`DS�~�
+W��
���E�u\
+ �{�j6��ˌ/���b�?&�
�w��%��
 �����-�VW��� Y.% Ir�4וo=y���3�
+
�sk��/� 5�u j��jm2� @��. at m$3�sQ��H‰�З���bه;�Q*B�;�ֺ&~�Ks�ڃڳ�o=�Ƣ��m�� ��@.
+Yx�
P
�
+P�� �~�T��n��y&C�e<��|�-f<�o=[���P���#¼�K�n�^�.t��5z��tm�i��z��MS���X�Ҕk����������+�x)Á�]h�(i*�ԯ(���F���в���ҷ��ߊ"�
��ó���a�:L[̘XY��0�;e1��Jh��q�]�=����������.
+���KJ���G�����>�F��� �x�w?Yu� �
��oI�����]K������!}oM'}�����o-kԹ��gY���zO?
S�}[�=?�����,��۬ϏL���s
QC
?��?KV��"�/�,':޵d{��G��f����c�v��]��0� ���hr��Guj�#�Tl+}_#kۜ�������c�����<IS�\�[��S� 5���$+��ݷ�2}�kY{3Ҧz=�M�j�}����,��9�{�3���'���?�
xd�
G�M����}��{�e��^�Y[���BK����߂Rֶ99
����`���A�2w��v��#Z{�D�e�����S�W�Ith�	8�|�C
?�s䈼x,��^,���mo�[����{�r{��m��X2�1����[M�ފio��!�
wY�KSˢ���GV�ߵͬ\=7
8�>��;���Av^�݆�;�5�|b`�q,܋��z�(�{ܮ����U�u����7�G��`dIZ?ި�&Y�]M�p�#>�%�*�r [...]
��7��(��&�Փ�?t��Ę���i��<��VҢ֊�����~:%N�h��qCT��u��Cq�l�7mP;l;��@�qݒ�A��,SO�a?�e���°�ξw�&�
jm}tKk:��t4?�(�ffjXo|T.Y�����Z��������j,��7P7�es���\�O6��qd�����g��y�m^J�V9�
jp���n��[�I4l��<oe�c���:�^M��5Yh
���pP��+WT$t�VJϼ ��p$ת�S�uɦ������&���`Ί�����=ܴ���-�ɧ�{t�,�
�N�C��t�o�Z$��G[�Ci���
Ak��k̵����WA��*҅�M�[ɵ�u���9'5�jS4%�*���c	�el��E�A��*C�G�?.�:3�
�HXj

�դ5��<>���9�G�mW�V�uZ��q:�[��$E����d�hh�"ni��
W�����Z�7Ӆ*�skS2�x(
W����#O���+�Py�<�
��g2<q�[���������[
��«ln�w�[@��;���Qet����*�N�|8�&d(���D6���E�������Ztz
�2R;r�&Qɸ��x�Al[��
+�M�����<>	7\�~%
�u�l�,��56���i��;B�e/F�F��q� ��z��l�AZXbBk�#��Г��\�	���<L݉���ӭ8������ʅ�R̓9�Qʕ%��n��l
���j��G�[��%���Jk��t~��c��D���d�^�g��l�����
+Q�ӫT�?T�
00VJ���Ѩ�O�56�J�_{�-ع����Cu����67�~�R?]��>f���>�*���0O����9�es�傽�D��eJ$8�� ��*d)�"S
�ȸ��ɸ�~���ԿԾT�T~���֖��`g���7�=rjt�
85g��ڹGV
#u�u-yg�c���H��n,�v҃
�
O��27Ս&�r��[�,�!ϔC5k1^:�ξ�xܓ&̿��=�6KrD�P�f3�����U�;lV�R�R�e;y]�<ޱ�\�O�n�3
ι�3��� �4��zr�<��ţ!^�sO�A���
��sW��6�켁YФ���[�Nat��2T�,��f
Ȗ1�	�t���n�c�A{ ��_�(�����'6������Q�e��������^��`Q�x>D7l���n�}Ue�</���[����@^��������#k��9�ӚS�R�C� ������
���	��x�
bo�B���

,���=��綋�G�
�=�*��;�/%�m��_V�J���b����9.��KV�S�� �7
!�oJ���6����;9�V,�����Q��q#O�ᛴ�S����:��>�K�
��bv�3
����X be��
+ح
�X�rR��V�.�JP(e��݊�X��0˝v�o/����ƝRC�M�A=��w�‹����w5W!�
�$;�hLx�aI���	w�N��<6Ŭ*L\�>>�f'W���S��㐰�X8�v,�
mx�u[�^��:
�o�l���:Cq�
�
�\�e>,��i6��
w�x@�ǭ���g�j��<�(�f��fH��Q''�
�l�:o�?�

+�OYOF�T�g
����z��;
��'�G͗ڭ�a�rZ� �k�
�O �4�64i�uh�i
�	����(A�ݴ��,8�%�!�Y�?
�'�S�V�y	np���E�	�i�[ڈ7�#-j
�[�z�N?z
�P�ڧ>qh[p�޺���vw��/�p8L�����`�qs&��f~
�b�7����(.^q�8��FQ�J��2��LW�P�>��sVf-��q#CX�l������JJ{�ֺ�֓{3����%�e��@b���f�
�}�o?nM��E�V�e�A�U���kUwX���u�	i��i%P�՝(�V}}����V�&_��%���PR��boKm�t)�Ek�����?h��x�?F�=�{�aw�k�ݣX�'�R�٨
_�:X?�?`��5w�k��V���� �K�����2
�l)e�f�/p��H�ɠlՋ�*"�9�-0_
�n�����hH��[���*\���*�~i�j[`
$z��4F��A�Fʰ)�Qo�6J�R�
fb��l�" [...]
�]���O��� 
�x�,Z�ͮHՅ[py��q�ڪ�ۨ�	�¨4�k�k��%Y)ΛW��[)o�#=׮�=��s����� �d/+ @d
��0 ���S�B6�a���: 
5 L�^����A���T٧�
?��a
����6��N��e��ژ^�ml�˼
�ͱW��.fQ��za����� ��Z�l�q�wA]h�3g�q��M( piXN��^p3f[ k(y k����
`��
`�
`e��p�_��]�g-���
�)S6�Y���(�ꮔ���~l��iY�b7��
��ϭ|L�} kE���`ˢ	`Gv��<��s
�vpc�xT+x� � ���8���s
/���2
c���
@
�@X���w~遏� ����K�M���Y
��v������"�**���0}�VG90�kzqLv<�g�
ܧ Q} ��B�P����i
��
 �� ɰ���I���T�u(�Y�ւ(j4(Z��Z�el��:X-�"_�N���R#�Qw%c�Zm��ݻ�k;��c�n�YJ

Ǟ�����o=�o��o���W�O��w��P\��ۢu�����n����h����������o3{��=��%��4��l�2.�R�E&�ӔmF�K�r�\�
e܈4�Q��]	��m� ��]h��S��
�Զ���
���j�����l
`h�Q��0iJ_��
d10�if/{g��-
�k$
������
�ʸ������/"�Z��֯Ϊ���
?��y(?��O+�o�T��w����${;�����?d����=�o4���d)�����(=�d�T#���p�\g�����=8�!���w�3���C8��d��|���T���T�{��G���x�����������]킬u�<�
�S��O3*��}�u�N9~����?e�w}�g�*S�T���J�,BH�=�up��̫�=YA���{ݓ7h"�����]��L]܂#��QΣr`�Rmn���rt���Y
u��8*_�[F(���#������Z��U}������{[�ӷ�d�Fő�u���52�,dMLSUӟ����7ht�_��a{N����*��<~z���=ƅX��ˇ���d����A��Z�)���ky�����.�W~�ۮ��
+.g��Z�}|�������
����&��h����9D��s.
y)=
F[�7ZYOK±|�l�~
����F-�W��5�m6�
��|Y|����
�����]Ͽ,�Zk!�
<Z��|T�����P�y�H�C���f�����c��x�
�E���uI?�lj�i=�_�B�E�M/j?��
+����OS���&�2�=�z�5���u��W�B�[�墿���<Z��F �7ů�&�Bs�fhV�u�m;*��6��c?�J����~�|�Zc��C�
+0o���J�gI
+wK��
~�O�����1��%{s�^��皌��R�p����s� ���}SfNX���p	�ӴR�L)�1�?(���1w����16!0^���X~4:�-�1���0
�����O޽n���P�E�z�I
��/�_h?`��&���p��f���w���/:�>w�,��x~�
+��u�+�nN�r�
H�����<V�]c��a�H��a
��!l��޹3=x�0�z����5g\���;��wgV���V�����UH�R
�R����S�H��.�챂��&e�U��E-����/�Ό\���W�=��W�5^���gQ��
Գ���+��b��:��0�wk��L0��
{\Z|�<
��r2�6B��ԇM�ֿS�=�9��V��ƹ�喭�\�]�u����%�-j������y��h�����,��q@�d����l��jx�8Wi8o�e���!�#�����7�@�lj֪g�;W�ox�8���Ѧ��w�
�oKzR�
WMK�ӝFe���IP��Z����z�ʱ�]�?�p�Т���k��iH�≢�g#c�z��v6�K�Vqu�
*�G�ԡB��o�:���R�����\�$�ɬ��D��t!�]v�?Y��r�jN�L����T�W��BVx�)+�KA�67�/9�
+΁_�������^��Ksn�b��O�ɦp�Gp��Gٲ��
��V	�#sq��ú�@�}�%�AJ
�Զ6���,+Si��M��"g�JI������U������Ʈ"ƄH�p�LExޅ�.�~���
���<���vܻa
#7i̞�
��s
���Z�6��>l�gh�͆=1:�骇��N���t���ee����R�m y��Q��|RR�Ήb
6���Kc�
��n�v�o;���
���
��{�� 7���_^ُ��/��J�
5E�6d4�;L��ɖ�^�+2>:�6�[���H3k����a0�rLw��vV����
���M�$5BM4�rK�fZ�`���[s��Rc�{��l�Ǒc��N��e�|���}6g at 1�.?_�ُ��K�Kܫ�ՒS�yv94���/��=����Ɏ��܄�E�����ƤN?�c�.+��f!׮��d���8 /O�$9�'E~(�u
/�;�Dk�
U�%6&�[/}F��v
��oz9[�L�t��Y��JUx�2-�~��!�co�f�R3I$$ ���4�����_��Rt$2����S+(r���ڄr%����]hk��h1��7
�;/nr
�@��� [...]
+�~��TD�}}f$�<��B����w7(
*�q����x+~��]���V}�qؓ�m6�It�M�l��y�� (
+X�:����L	���UZ�U.PzةR
^l��e� �Dt������
G��{t�26�]X��"l��lt�=�d���o����5G�'2-]>�ѥKTܷ��Y�w�w7�ZY/=�n��8�,��|�dJ!:��=wAW���굣3ո����>�;
	?K¦~���K��
+�:��3
+ćYdz�3$T�+
+����*�_�[nM�^�
�kz

��h��7�B6�>s���Fދ�@����5A��c���;��e	y�4���k���Dw���;}p,��I����E	A�2ʡ9V��(��r��v��(�-�,�-{�i�lT�ݲй��4Do�,`ң�0
�I3���'��JRA�}�}F�ҩ�t�O~%��"�lQ�e#�YC궉G�1��{��=FiY�����l�.�yxQCu��.��[�a����q{?m��H��!���!�;iC��
uJ�6Tn�������H�Tlt%>
�����|�x4[M�����̌�htU)��8~��^Xt��t���.
� ��
+)��������j��ݫs;�˝Fф�}eJ�N��ܲ
z_O�F��J���$�!���J�
J������'������8���Q�؛Zi6���� �5�g��GxhȠ\ ]���n0;����i��a;�y���m+x�-[�=[Y���5�0�T1h<���Vp�S�Z7�g���?�<3w<"
|޾�C�x�s�[﹦*�v�
AD��������Q1aN�E=�M��k�w���
ڶ���q
Fe���
�n!���!M��O:S��r����T����_�c���S�v��H�(�a()�^j�*?���aJ�����L at Im�OW�,^��
6�E�l���,��uo}�m���v'�]��ܶS���V8�X�����/���Z��ӝj�&�L���ǥ ��
�&rO�\~�c�TR��
����U
����u5����5�y�Ts{d�˵����j
�u�&�e�[%s��FF.��]/^���G������j�����o�����
-_��S;��Xj��
S�2�L��
ET�Is1SS�Ƚ}�]�X��=��
�r�M�Έ���>,�����ʾ�B^힏��[��Ti���I��(<5T
.�+��Az�
i3�H��t&���L_��+��=���
��#Y��'K��zb��ٶ$+��ɮH�H��w����R�v�qM&N
�

7ۮ������v�E�؞O��X�h=�h�U�U 
��R�%�K�j�D�`�f
�*���Ҿ
XFY6�|6���G���`n��?xH2�IjK*��%*��cH;��Mz��=�+�S*^�]�j䭜�%tHx*<�P1��68!5pՊ��_��l�#�	z!�F��
N�w�7���'g�&�o��Ӏ���� pv!N��%��tp�Yi>=K�5���I�B�Y�rW
�=6Գ
����ۦ���C-L�2lf{E��Q��P��X |�3�+6�	� if|p����И3 at h*��
Z�m+�,~+�Ux��|���P�>h��7�^�
��ഢt���6~�J�D�Df�1)g}+� �k�J�ո�b�r	����2���ߞ�̢Dr��J ������q�$9�R/�U�Ln$8��t݀5i 

H't�� i
i@����̊�*=�K�1}��pE�Q�� �^���Ǥ,��}�\;t�xPj'�	j?z�D�.�������~��<1r��rg�z�5�N<PTYJ ����΀�4
@9�
P޹V��
+�  @M�
P!����_�r�zl��C�����h�H\��.^g���^��>D���Փ?��ܶ��o���x��}��Z�
+�4P���N����gִ��/A6�&a�o������ٞ��'j��z��X��?m�c]u�q���d�E��{�#ı�+����'��{+	�>������S��/52���m��c��O��ڟ��7w��~�Y�g�M�yD��r�[��_k?���w6��N��'m�_Gp��m?�
/�h��x�g��C� �{H �{��'[���f�{����-^��}٩��G���bs�
x�>�Y�������)��F5�J�Kڠ�Ĥ����v��E8|Tp�{~1u��
����!�w�eh7�h�l�]�֯��e'��K3���H���Ng�9�
p>�rb*�>R#�v�N��_���Z�����ϛ[��=)9恇'm��_y��|K���c���{���n
b������Ҽϟ�H٥Og}�=��8��
ŵ��G�v�
�dT<@NTٗ.��n!�;����۴��p
��iͬ���K���ͮ�~�ctc)���?�/�V��
+Q�q2q
����w��n�������ӥ��D�'/E�Gi���Fz~�l��-��a[��V�{]G�n�f����
��1�/�ÔZ�V����>���l�P���E�
�U������Z�!5��
��#�>o٤�Ә���;�49�����?�o;
ŕ&~�Z:�3���i�ߥ/x��n�孾n-�V�Y��Eo>�֣9��Y)ޭ
����|�Z�o��ihBn���!4vt�c�_���y
�����'i�A7�@
J�}��� ~�|1~�*{�L��������`�����x��R�����뽗2���Nj65+7jBX
4��5��&{�S�P�n{����O_�Hg���\�S:
+�<~@h����SZ�W���-��C/�D���S>QR���ߙ�z7�1s�w��!T��ms���>��}���3�g�A7�n��Ǥ���+��H���P�])�~!HU�����[�9���{��ר��K�	���w��lQ���'=����
gՉ����6nO�M�bgt��(�\��
B�0+5���.�X�~����f���q�w�|ʜN}@�y���Vr���i'��*=�'݀�ڷ@�2���y��to�[��aY���aG}�
�=�
�b���Ö��e�Zl/V�I;'h��՗-\��4w/4#���V��Y�ݜ�d1����I�7�Ρ1
�Q�=Ta{P�=��^�g>%�.[[��;�]98��!�`
`�i��E{Ƣ��vsə�^����
ʝV#����y�l�K�zxH#)��O��n�����ɵ������-i��-�,߭:<���}|��pt'�_��{�>^�
�c�s�~g88Μ����#wk/�諝/p�1#��-�M�U�Ɖ�)
��6��oY����:��Z�]mD-^��I���شH����iU��Ŝ���7N�ɤ��,�n΍9_\���"�o#PM���k�G����R�����c�i��\�j��i����o���k���O��]����L]�|�6��ؚnl��t~5�K4���10��lYYŹk�v��]�X.7ojX&{���H��_PvR�F��ZY�

��+��=���]�-�&ޝ��N(F{us�Y��g�u�[u:�Ǎ���>����>��a��a(e.L5��,^Y[Rr�T����[�m��ӡSr�̤Ħ�Gë�҆�,������{� �pȮz�2�;`��z�
���{[Y�Wm4u���|�v��*6�BV�zfd�5�֨M�[
���\ܥ��S�}����=T��[�JG�CKl-��K>�
��wJo�?Пzf�ka㭃
+�][�8(L��.�m���/��v=qq�\N�������ܳ���t�Й�E�ծ�
K����$mi�rR
��^�]i�a����J�Lm�e�C�w��
�ߋw?�*�1�џ
��
�@��&�
��
�h��*��CˤV���.�����	���I�w���m�wc�
�Yc�̏U�I�9��{P��awf�;�׸��Fm2.�f���F9],�
Z/%
h��l���؟T��
�vz�l��>
��.�"��`m��E-�����}�y��)[buUQ�P�N�V�Z&�6?h���VC�˅t��G���w]'��m{�&��g
:��\��~�.�	_�\���óJq�]6��u����
��sZ�=���u��t��efݔZ�L�j~��&Nb�e[yOe��<K�	��������e.�et-�Bj�K�3�)���a+ý#�zzO�r�Yw�b%ʯC͒Qi֎T��U�������u=u��
+%�mk�Q?�Ǵ,4
���q���`�lO�Ei��K>�
D�{CZ:�wMrWZS�a����H�ڻ������P�������E�O0i�|�W{E���[�d�t��ƳWM!b��E�ef���j��Bh���UѲ�GI�߈���
+��|V�
vB9�-7�����s
ĒGq�x�I=&J׾,�=P�g�Ͽ��=?�{_�5�HT&�ؘ��b9ۮR�X#���z
+�/2�ۅ
�k������QӺ�%�|g�Bw�����T�-(��H���T���H�k�'ySc*	��J�#�H��˻�̽ Ak���82D��,M.��|����8��A�2S���w>�'�ʒC��!��'f�Vb����*�v�c�'�֩oo�T7T�]�,>���� ?�P>��l���nNW�{�^��%ʏ�qa���B�g�;~��\��a��*�!ˡ�gkb��l{�ih�C$5��!��߹�/�����@n�`���I
�;i+�M�T���yX��S�)�Dk�%#�sNx�
B(�ς�R�"o���67ǧ}��?M��
���9�yψ���F�b�`�������w(��wX<ɫ���k����uNq�T��c��x���
m_*	y�t�"��ↆ��յ�OJ��n�m� ��mrG�b�L]α�]�f뭱�bTTb�#���:��T
+h{7��L밧�t�N�.�7�'I�w-���&��>����
U	�RE���Y�od:�`6׷[7��!E�Y�*H˻4�V�U�L�KO
����GpC�kW�G�a��w�:_���8G	RQ#o�S!{�]�
&���'�yrLhMiI �?����t�c���`h���/��8_]��|�l>g@^>'���
Q�嫆����6�6<��,'|O�W�$U�"6޵ZG:���%�3���W����.%���(Q��D*���IID`����*�{˨93�|k�A?��vanK �\�Pz�{�ɶ/Hr���]����p�����$z�{�
W�fN@�t<r֏���
�c��'p�u���5UK�d��-A����6�:W^*��o�L@���gt:k_�,����,���~9�����F{5@���@�^tF���5f�����caއ�G� CA>C
�
��(�G/d�ã�{�AOػ�;�w�m3i���\
k�ޥ@G�uЙ˽
�
��6�
q(���o�K>ˮ�i乘��;��������%��XI�b�Yж�m�3��ZN�;(�qj��a)"e��]�m@=�s@��7�Ε�.�>�6�9h�ݔ�j?��؏�\J��
.�n9R.sn.��l��˗&YO�X��,���k�e�R������LE�
��`L�{ ���	�`:T�ڷW0��
���xM^�{0�y�9$��|De�9x�|�&�X=iσ8mmg��y>9�

���F��82v�I�T�L�C�����&x���(���t뀽�]�^�1�R�=� �`G.m���>`�#`�~�-G���h
�u���L�ȟ��OTvi�����Uvl�r<��^��3�껈LQI�ZG�$�\�1?���`i �|V/��oOo���� �7����Ӏ?�
�#:�Pt��j�7�
�t6A7��t(6�BQ�U�)�z|�@�s@ϟ����I3�W���a8ei��P�Mi?z��� [...]
+�
k���ߺ%�H�� qH�IИQ)����}.��,��=�3G�
)G*eC��ar�B/�*�[�h߫���/�
+�J��֓|�����~�
>
+�69U� ���� ȧ%	�2��a]�TO;�t�(P�n�W
��\�p��s3�+9.i��tk
+a�pxO�������;ya��g���i\�����ok�����G�]V����H��t�'�1P�#�F��)�;��&!��FӅ��_�����0
�����?��o��G��<��~�߯m\⿇��L���g��SB�b�0Ai��������m�N�X]�+�1�
=�vn�Qh��{��^��cc�(��se����,���_k��x����P\�E8䡿d����&?�о����|�M���ז��,ox�qxG��궠���<C��Z`�+ַ�K�5/�x�?;����i��>v��������"T�?%4�6bF������q ���=��a���-�-q�:'�Z����N�.�8U>GZ�vf&���l��/�x3�i[�u����ØI�ț�{�o�j��eG{gkA��
ۭ�)CI��2�4O'(����My��r/m �
��lp]3��ҼK�33"O'>��Gi��� �B�w3�9�Qۇl��#�
�]+wq���چ
掠�A+ý�e͖�	{'c�
�Po��矏�P�!~6�d�w�௵U�mU�K�Z �LP��7�V��l�q����n���-�rr����<��V^v�Zެ�~)�W�E@�n�}�����r��!#�	 [...]
�b
��:��|�U����a��q��]E>�μ�����Rf���,5��M�����ut�b1��8E��k3��Dox��n����Wr�ŋ��p�ǭ�n�cּ�û��!�\y�g�
�GWx�W��d\�oz��OA��e�K睪�i�Z
GF=�뼧�GJ�w����y��:��=ź3nM��<ܶ+�����\D�dt���3��
^j��fVu��i���'�1F�U	����ܽ�[�`�7��u�
�#�T��{��!u
��(�ጊ�f5ٞV�%>
�mSH�_p;���[�Jxja��6��܈�����:�����a��%���2��_g����p�2
>�L;��h�o�h���_z�SVr\�3�u�4=v�za�<����xj�O��Z�Lв�6��5�|��t#
+�J�M�e뼭ؖ@��^������=1Y�i}�[
���jqeο�jq��������͌�s�V��3'o��}f4�
b��?7�waF\'^��S,�E�x��+���4G��ŝ7�Gsm]L?���yr�߭��.��P�9��5�150.�U��Y��F
M�V��6Yɓ�]�<�y�ij_8������ҡ�%d��8F��e�X�&=r}�x��/uR�m/�
��U�q\�
�r�Gf�Օ�.�
w簖���1|﫰�]�JHƕ*@�ڱ�/o�1Wn\��ҡ�&#���NG%��E�ɽf
>}���'p����5�cȆZ�9
�����������+�n��3J��-�
<�9��%UW��yJ���Y��(�e�;�gf�ZP���ay��Ve2g�J�M�\b�ql�
O��
Q���R�'�
�dOD���u��֍ra��AvR����Y|�q
6���Ը_�nAF���r��kѵ��XnF�����,[��n�c���AM+Y&�~�d���q.n���O���3�-��ln�Ǟp������,_+w�P��Zh�;Z� �8��Ep-��嬧.�ǑZ-,�?k�XūW>l'����Q�g��ܙ�c�ݰE�!L�\
zpem�2�p"K����:_,���jQ��
�
+����@PgZ(���B�DZ�|޵�[@�ŭC���]W6-9���ZO�k>�h��^*tt�� ����퐟r�^jXB��O��7����<
z-;����Gț�+
��i6���+�v�d��OW�Aad��i��.��Z9zx���gj-��)�R��4�SJ��4.���"S7���X�T���eIQ�r�N�����q��
+:�O�Y+�U���I�󅽦z�&_��)B�QCx�)}(�paRC�Bz��Z�T5u��%5w1�JC4[J�X��&瘼���L�b$
/��ԙ<���D����E�#
����-��}n
�G&��@�R���|37Vi
�/����х
�e{�
�/���fմ<�t�¨>ܞ��
!-#�Y5�.(�1�D�0 ]n0S�m�)���'uޣdnjs�j�{Q<(�a2�r�r��kT��qO�>^G��::�Z�����z|�u�
H);��"�o��+���N�pش�N8��Y�eb��h��W� G����K/�X
i�,<9.���I��P��hW}
�D	'
��� ���Ue��G�ו׋*�M�#�+���0}�5'Ԗ5�x�5C�b͞��E����n�������
ː��Q����������3Q
�
��R1h��u��l��Xr�'o4�%W����(
+j���wyQ����뫬�C�>���ҭ�����.�ٕI1����`{�C���%�R��bwUz�1{���0�7�\Pmɰ8owr\��-�84E?��*��$}�ŵT}B����۷x
�7A�{O~�
���tǹp��r�U94U,��m��V�k�͑q������
fD�S�M��:��F�n�&/|7�W�޽��é���
�tp~���C��d���:���Ѷ�ۃ��a��\��B�i�89C�P^\�r$�٥f 67id�`fcL(?�Ez� �n�T��.�6u��zT��M)���nU��"��}��	E�7��S	��}�ñP‡ޮ����?�Q���0|E�/�O���Z���:����<���xn6w5���8ɗ �7��;CX�
M�/1�9� *�-��k�~�+��li;� 
��/�8��`�`��p2���E+e#�7�z�$N�|&���㾐73����Z	NU7?�
/���k��f�ݒ����
ε�f��u�vɸRqC��c���E��˙P{�+>z6�� [...]
2̃�|�&2����v&�Y7Qx����
����v?�f�h���Zm�uII)�BnYҽ]Q��$*̥�g�y��}�Y��5���
��5
Ͷ�Md�ɔ�
�k!�!�zq
+�e��+\����'җ�"?��
a=x��N�P�%xHLZ�Ӹ��<
"w�n�_F���d�
��n;�|��T��[�W�E؁ʩ4n�)�R`�9F���b�"�sĖ8��08!������Q�P
Y��.�:>2`��[p�`$���Ԟ���%}���n
��i-�r<'��b�T
S�T
ϛ�U��Ao���0u�;5���\��7tx�6[�b�N��-!9�ŭˆ�S7/��e8
���H�! �����(�r��LY�r*�s^��1(�,���	V.�b�`r����Ҁ
+(v�gn ���Y�T�PO���~
>pg�B�6�4c����w&U�׷sa
M�r�V�KUk�?_"�ˈ���G
�__i$�6���<� �}z�d+�0D�8�G<�ՠ��� ���%8� �)���G���a��Y���� ��� ��D[@k��GTn��
W_
��/�"�ӷ��W�Jw .��6;`\��"Ji��'���>^�>3Yh-�0`n�`��t5��N$���*`	�X�o���x�o
��	�4`+�*`��$��Xm��;�����g���WT�֨��\�=���].��sƽ[>j�F.�a:
X�
��ᄁ�i���N�b��������`XJp� wԺ�{.B�g���3x�)�%�	�
�s�|O����^��<	��ptc�^���1�´zF��Z�=�j䔘!{7w�OkhA\�p��*)zZa��U���3��M���Q���bl|�	=� �C ��5s���
+b��Q�y@���@��9 6F ��	{]�}MJ�~De]ƲZd�@J���c;�tM�vZ��	Mm�j��y�OS
~U�o�����P�~��_����X��4��@NuO@�	ȫ
��ްvj@�Hc _S7��
,P��
<� �h�@�x9��Qz�.��E-D���O�v
'^E��;���0j�q6kaU��s����# _����w��w���2�>��?�@m8P��4(
�<���x��ɵ�I��3�ط�V^%�*t���"跶�ݔ8.������c���?�z���ٲ>F�O�m���G���k��ܶ��_@��(?�5�x�ہ��ZF�
R���L�1�.xp��j?r�Q�1�����Տ���c��?��
��"
��l��+ic!�#/��xW��c�yV
��{���{i�v�H[
n�8�e���Z�y��N�r�D�dI_𙙑����ӟ��O
�wT�G����?J�L�%[���T�XW��l��c��{i+�of$%��'r����
��9RM�̌M���‰���c/�֣��#u7�~"P��#=��Ol����5�2�|����[����
��#}~D������e�X�z˶��s=�B����\��
b-� W�
�D�x���u�xr�3�
+�b�
�iA�
^G�<�:�`j�o�²G��"vj��z��s=f��Pۣ�rJ�gȔ��E	��*�d�!�

+�?�L������;K������(�|O��¾t���Z�+r��W�ʻ���o���������1��!7���h=C��VS�u�.e_Sl!�r#c�p��َ_���Û�=���q@�>k�^��B�?ͻ#u�ri^��5g�q
Ym�Bu�v ����ҷE�$����dg��!C��`����ɮ|�&��j����
��Wk�G����>� �SA�ƙp0ָ� ��~
@����{�ͬ鯛Z�[�8��;|��9����'sG+3p�4�Ä�[K?�kf�j.ܵg!/yavȌ&��;9l?��2�1�345x�Qd��r�~��D	sloQf�^v)�`��k��Ymv���z����n�u�X�;=-�;rj�t�03t�rf�$'�ᑾ��g��>���������"���3��.M��le
Uf��ծ�n
���#�ʰW��s�b:��n�?v�t��9���=��+�s��
xG������x�já���qu娵,��Rj�D���̛�f�vGM����GT���ku[�7g�\����R.�`�\�>j�����.ur-��
W��AG��/�N�+'�
��Q=�ڳ��֮4^�	
g�V^c��ԅ&a
����ڴN,ѷ\0�Z�Ԁ�>%�k��WB������S��%c��Q����(�Li�1>��=�T�g��=����9XG	���jTU
xf;�Z�:
z�m?J~�+�6l=ZX�𼵒��\���G]���\�!���P
��RUwM�
�Ch�f����
�R9���P�� J7k?��� <x�x0o��
Q~��.3�:g!I�_�&�����5��!۰�K����J�ּ7��3ݩ�W}Os�j��fU(�6f�-F&
+��R56p%��d�r�jg�V�5e�ռ��#uM�/���
v4��v�p���~�x)a�
+<��4��n���)�}��L��&�So�

��xa5-�p��$��3B,����Z��
��
��Hw��}�;-�3˵qt/G�#�O��7��ne��,[��煯+��ӕ�I^]/
����X*��כ�
�פ����<�Y��u5i_��U]l�"��?�K\���Ӭ*\�UL��Y�\i��R�7/��fp�S�x�Rݢ�J
�E�z���^�~���(�J
+;�֦�/�ђ�g�έ(��ⴢ�l�&�j���M�i����	
v}��
+����w�β���t��e���۹%{��;�����.��3jpQL}���������
��^+�R���؞6�FZI|,���H���K��N�����I˦�Cˡ��[��<��X,Y�ڿXO[,�B65��-��;�D^g�K����l4;��Ե�=of�{����5��z
ʩ�.g
+�����㵒�H�du��J���Y��uV�)��;�w�|+���]&�͌9)Ib.��x��q��-z�[A�*f��_(zc�#"0V�렶�'=��ů��Z��1k6�˒VK�G��{��b�$���
����Ӑ1H��4�S��R,�(�;���-�)��mlIQxs%��
%�����i�T�P�`��9�w j�lO��y�Y5���-�ɓ���1��_���l]I;-:Z�Dzm
+�n.�3������ܶ_��f�H�a��b����;���6��L/�xA�xA)]��(tz�p/D}�asA��'~H�R�v�h
�enR��9#��9�,�	�I5�ȭ�7��q
��w�
^��
r��S��Q�����Z7*�ڒ0Ķ��f�z�4 m/���Q�䅇xiRb�lg���!�>;IF��Ɏ��e~�Ԛ|�t�<��!72N5_�l�l�eٌB���u92+�
+	
fy[l�]7�L.�O����}חGwܽ���r��&M��t��֯����_+��^:>�������r
��W.��
+
�SD��&ɡ����`
��yNv������m��b��3� ��mM*����C��:�'
M
�M̫�h�N}�h[���M��ߟݴ�ڶ��{��g��*�fɓf����ie�E��/�`~���|�kG�T��9xvH�s3�e�,A��sEdV^��ԅe����6�4�Mf[K�p�o�ݵr��ɤ�h�I�ƭI�^�H��VHw,Ծ`������?)�]9�\:h���%��w�ȯ�x��uUȇtp\r� �جB��H<3�^{�;l������v*������~���Y�4H;�$��fĭ�;��	��������xr��	�e<��U<�.���M�~�D
+����"�����N��}�p���󙖴6�IUz�������ל����4_y>�7���83C�S��M�!�S:�D��uj

p�	6�Q�.�_p~���|y���Q�>ͣ�i.��
=_��|��V��ub9�J�]�
\�x|��*}�DK���°�v1�d5���q�6�\I���1�����\��Is�`����6�&v
a���E��-�+ƶ�� �vn���<��d7W�%���?�J�=�F:�2m�e���%r���%�X��;�U�]�c���63�_�w�l|��������))@�1�*~"}
^`%�	�5���qh���Sv�.��&��k�}����2vQ*d��[GO����@���
�
�Ļ?�` �k�蹊H�G��z��x�x�:���w8��Pf�q�����`:��\�
S�p�ǭ�&�
��
��MQ!՚'X���vAz-�t�E4�����N��7a������
+��~�.�p�
��qG�P�@��}��2�Bak^IC���9
�a��ħT#9)
�Z��J��lRX�u���g��м�%�6�/�b�9�����a�k�6��u����l�~@���2$�O՜"�ʳ��s�4Hp�Bva@М��� "�K�g)�H�W~��/�3�������X}��e�?�%��
�8�^9V�f���R�c�'��=U.H�׷�>�VP�oA�m9(G���[�c
+����7�@�2 ;%;�u
+H�q�G�i�u at 6z=@���=ٕ I�	
��Qم�XcԽ���p�0�m����8Q'��Y��I�ֺ�-b�:�
�<��.�(�#�����Q0���G�VL%r	��CC��`Pt:�'� 
Sq�#���d=��'�:�c@��"�6hP����0`ٖ���u��.�l�Zؐ�����c�f�:�X�+xe���'�B �V
+�፝J5��
0r����-��zy
�`*�
`�:���� 3��
G�Y�	�`�J
0#��1���H�q1 �|ϓ�*�4�m~M%5}1�+�t
���;+��X	�-3��α�ɕȞYGD�|�LW�T8
��Ӏ
�����`�Wp /.g�c'������ 璗�,�<S\�� �#�5��Z�*�ڏ=�l������/-�a�\7�H0��9}�[�O�D�[���z)�Q!�;v�1�|�pA�����
�[��
ʀ���C��[�v
 �jn�Ѕ�@��) L�2v�{����c
�U��h��q��+?�r)7N��z���c��
�eu�f�=���5���ۆO������G���[�Kr�owNv�F@*�+ M;��Y������r����#@����a��
ȃ
�]+Ah6�9B|�.�=^X��o�LKf�"l#�D�RQ�l�Z�����~ܶ����7��n?�ۏt+?��m�Y ���@mDŤ��}��
+���
P�	�8;Kpx�Y'���J�G����C���7���!���[
��F���~���"���	��N��8@�]�.��c�=��>����KѣyG:��ͼ^N�&���?��O�>��gV�?��G��ȡ���C��0�O�Cj���$#�p
�
��Ԙ��j��kk���{��;Қ�n�qּ���s�_���N��.d𜟣{83S�y�#~��z������a?Z�ǵ�	\�ȡ2-���w�-����?:�^�թ�=��vr/mV�[����7�O��:3�]��A;�x+�z�� ���fT8�ѹ����|�۵����n֑yC����G�*�F�D|g
��gO����#�~�� sG����~��ҟ�g&ؘ'~rl�Qln�����C�?�-��|[�M+%n�Q�;��w^y9�5��R:��"`Ll��\n�}uVz���h���
N�l����<i�|
������m�
Z9��q����c_J���C�l��2�ff����Yu�(c����9����V��@�����S
���ᤕ�Vc��s[���S��	
��\!P_�`0.��A1=���~��X���
�.��k=�
N�˟'�V��
+Q��A�s�
�g�{��/"�b!���K
;yy�77����~��c5[
@c��/�y�� [...]
+Z��b�zo���n>����V�7���Qz ��td�	.���]߳�n/D��/�n�/�6\Qnurg�j���+�RkEk��E�-
�wZ8/���6���96�O��p�t�BI'��O
+��X��k홟A��7:m�0
�
l���8X��{���ͤ
:����{Y�.&��J-޺�
��z�����NP)�0�c�����6��'D�B�/xAk]�\��:�V����_�&~&�l��
��3����t��Es��M�<t"�
9Lf���G�j�>���_�^寨<��ao,Z������e�Pb3
b5��ߣM�N��=��*=�R��
ڷ8G�ƃH��fg��W��Y�����x�8Q�=rWYj����W�n�8ޖ&S�JP�m%�t�?G���n�W��X���dS�l�Ѻ��7[�7^�߫�o�.�6���j��6|o���l�I�9�b�vWNq�y/=[���0��Z�>�}�}\�铡u[35+iy
KS�|ov��M_���˘6�6���ͬ���i��7�S�7����3Y�b�_׮c�dn��T
'�o752֝�լ0x�/e���Qq�.��m�l�M�
.!|�`���r��`IK
+\��j���f
T��i�����
cjc}#�sV��:��%C�u��Z�,FZ�ͮ5Zh�vυtkk����{�8Ԧ;ӓ�0"�pA���W�����`���M�7�Om%+/�N����
�����,�
Ąs
�(�֜�Y_��Nhl���/;
�b�ht�3S�7�r�
+VNEKV�#T��h�H�N��q��B��?��M�2�
�mg
ӖBc�8��V*����������2n{g+g{�����0�-���rЗ�+=:WhG�iR ս_��
+*wY�ʩ�*)
Gk(���v���U��3����$���$���$���%�.�6�\�����Κz����V����Z]���#S8�k��G���V�z`��ZT(�����V}j�6}(��(��5'_�Rn�hAV��.=�NQꞏU�	=�SH��!ߢ���"�W]a���h8�Q&�\^�������ҵXo:|��'�7
ٯy*��ۣX}*b�z���]l
�I�i[A쩵}f��
z�HCq''Y�,=��C�AF2NL�4��8�QU��Jz��Ю	��%\�^
+�g���k��q�`�:�r��>í�-���������bx���o�����
���-!4��i�/���r�
�[�v�l�'j�
+�#�o�e_zn�c�d�K�s|
D[|_�,�}���B�Ҡ�
;��;����R�����Tvƅ��� g�Xb���H�J��T�,��%�J�
�
+U�/�����Tw��g�12dFU檵�g�}o��
�����L����\�w�D2'��h/��0%���n��_0��?�O
�#��K8W&"��6c��%��j��9.Fc&�#J
���M�nu>1���n�3B
+Q�/G�g�G�����<��&WGNB�q��[���P<� ���o�k�� �´/����t��
qe_]r�
��epg��-`9B�xN2��[
+}�L�.��F�ù
(}�ϒ�����W%��م
(�|�����A�ެ��~y<5�xS[��<j�n/��J�X�,�7�i�g������p/
��'6X��a�6s
+W}�A=g���6�k����ǰ���ᖤ
��^͓��LZ&�%ƣ�p"8C LG�gG9Ľ��^���l��lՖ	+�c̔?�'�u�4�cn_�ݽe�s�_�{�}
kT(rFx$��
��D�/L8f̴���ޢ�';��AsD~���&��yOZS�JBU
���i��s��~V�ql�ހB
^`��B�-�C����
z�ʼ8Z�T	�
	#���
�n�&�[�:������:
����bӹ�0/?���v�B��g'���E�
+p~�p+�&>?f;�
c
��+l�I�X8^=0�Yt�H��C9w�i�����ZN���ȥ�ܑz�y���y�`�<�$�yC� ��O3S�:���
���$]Dxѭ��g�d^UVU�������s�l�����'�
���.�8w|����;��D�8A� �Na���:� Jy�����!�`�~�d�yg�
d
�l>��lF',h�t�1�]Wf3�D�������or�a��q�z��r/��_pQ`K�o�^�K�<4!\ ǫ��񎜀`�m!������0�b6�j'����t/��n��j��x���er�;63��zƛ�Xa� 
�&�9
H��R+5�'O@
H��hVS�
Jh��\��(��ӹ��7��ט���<P;zA�b/��C�����{o��h�
�r@;�
����;�J�^��4Eg
����*�IѢ U��)��
�:�O1;��a�
+h
P�=�����
(K_c�|#�]`5vB���P�q����y���<
d8Au�;�:��3�/��
*�����Ӭ��}��L��>�G)�3@��&�|NQ�8���hb�t*��|
����
�;��t���L�@o�:n���ҥS��z���֑��	��9� �Q;m��S�P�&c��
�
+�Y���o�I
�\�ۋ9lA�V��)�C���W�u�w
+
I�0)�`]��� �XN�n� �N�ЬVtV �q�f�e��wݯ�z
+�7Z�߲׷cܛ{s��'iua���HM��F�m�d@�-N�
���
���_���3E �BR|H��-)��<�US���ǵӯҋ�Q�gp7�
��x�>=���N����C�5���U�������n5]Z��
Vi�]F�ɀxjh������������d����LA࿐I(���n3@7"Z��Q����µ2�
���P@�.
���
Ǭ�%?H�~���?��搱��E{Ԋ+)������d�9hRpx2i��J|�.�t�E/� q���*�E���ˌ�@R�E U�
+���>����0�^�@f��Ys	dN��'
@��	8�"f������{�G�����sN�����(�^�����6�f�H���WE�Z�?���r�������kw�G��ՀRsz@�K�F�P':�]����޷]���+А� �\\�n���(�p�.��&d4^��<��wܽ�M(�6�n��
?,�Ƹ��������
�u�~���#�����~��%��ɻ�.���@�t�@�7 ��POS`��0�}
�$F/:�Ob����z~������
����~�z
�v��m������G�4�=x�y�����������������;Rے����7�M��3�}S��ZW�Z����sy�C���O
�W����e�u�~�z}���g����~@�~w6o�6g3�
�3�u%�+�&��VK��T���:�j�Ԅ�����
��Z�=���z%����~��_a��h��5����~���1�*�O�Vx@>T�#e�y�j�𲕱���c��قǛ�L�Gu�y
z �O���
�Cu��9J�z���	>�����Wu��,�A�_J;�H��5���'�_���:bv"�WO�w����sw���58��s�q�N���
��[;+��C�w�����zkF�ա�5W���,��7X�Bo�Pw�b������3�V����j	�"�96��+v
�s�-E����uv��h�����������lM+����r�)��w
n���N+���5�[� �{��ͬ
GO�-L���W6j��)j��E�8b�t0��tep�p��tT��D̏{�vy�3��swh�2i�$�
d�
���~�ۜO�U�:��6�?z�o¹v�.���߬�Qm)������jS���ZW��h됳��'7�s�<�o5��{6�wϸg��;Գ�������™2����Qj{U�6� [...]
+%�����k�'��87�[C��8�,���;h��D�O?
��R��B�%2Qe
��
+v�n�P��y���6�T�.���������A��)���{~)�Xb=���:����WnB��-f
+M�j
�ڱ��zϨD�ϰR���J�:)V�UdYV�A2�`��:
+�᡼�W�2s�Ca]���ܷ�@��ąZ%-�9�����/~/$�?0�L��ÛWN���
M�V&
6��boT�Nq���t��j��'2�Ս��]��{�2��D[﹈�/�r���e�|M뱰._���s
�����nC�Y�(���������{϶���dcE�Z����Rr��p��U�YG��ۑ�UG�⏨
ݲ�Q}�l��}�$~�Z��?$��1:?���"zQrc

��9�X�w�^Y�%�x �~���`���Q�1��)���ьSqKN�t	d0p��Sz�vW�R��k�}B��
/J�-��jݩ���
K�m����l&ea1�n��Y��R+�D=~!��|&�h�)o�F֛�:�CZ��y��
+��X�no�{�h�rN������ް�7�
�A��-�z���汥��A�k[���]��A��L��Yf�RJ���1�� ����h�w�����݌�G<�9b�J��6
s%_���P�>e_��C��/zt���m��,�xl�F��X����I
�T7��|w�y�4��u��V���W.4������p�{7�c�9��(�j��k���њMq��b�Z����)��X�[MT+������j���e�ԂJ�w(.���aN��-����n�|O�.�O��3m�9��z�2\z�1���}�u
�����
m���XS+=3]�)G��+���U��V�/ZT�[h�"���"��bi�?����̚4��[��eũ0��oB
�f5����jl��V#�G�W��O���OCݟe:��;-\qg�j_j��eT��@��>��}+�%D-�%�ʲ�.*����H:�����ɉ�1���r�;�L��~`�?U�/��wo2�O�GA�4��]��`�	1$�>�Z\�ʵ�(������U����N�Q���V��H9N�
E�
��e�9˭�#��eEb���f��F��΍u�BKb�Qj��
+;�)���ό����ӆ��gh�7� Pv$]�mw��Ӷ�^<���ob�\VD-e+Sܭ���N���t��V�Y�r�<+�XA�r�H���Ȍ%��/ķ���R�����-f�7D�$-8�@�ͦ�{,\��Wk�s�~�`Jr$�:��Q[����p��a8���\��
���u�����я�ۨ�|)�fx�Gs
҉���2�����D�9�,+�I�W�IU
��љMz��o'|�-�Y
��^���\�p����:$r�����*l�QF,�>^��V�~��~�L~�AL
o�L
�v�cf���TwhKY4��3�{Zت�X1
�5�^���(��}>�uJ�v�ć���ӕ����yo�Z6
p�4�qdu�e��'����#}Xf��C8�:��
�������M?>R�M���Ԡ4m2�#S�
E��I˴E���K�	�h
�갶�Փ:����\ܜ���Eŷ9� {��N���0*�g=n�G�A��v�˼�
s��
4׌@N����|��
�r��Pwt�Q�Y
+ȗ��}�����9[fI�Ub$�
b$EoO�4WI���C�׾ݨ���Y�yL��۪S+M��-2\�>h �sRO�}*��_���e+
?�\��E����:݂@��'Ԉ��ڂ���=�
'w�/�2d
�HL|�UE��-|�X���
�a	[��
l�@�8��xQ���4�i=F��V�ŭc׈fU��뗵��/���
+%[ֻ�d˹��F-ű5ns�_�[qˣt5g)"��N����>��_Sb��6D��>>}V�x��@q��
XZ0":�э���~��`��jT���&�
�Z���a��S��ۺ�-*q~5
+�����A�$[�M~op���7�O�o�첼Q)S	'<|VF��.*�pt_hc�nk�i%���
�
+�;��E8�ߏ�\��3s��T�s��"����#���	�'1�oXxF$�ŐFO���yp97F����W�uԺn'Aa�K<���
+�i���V/��-�|�S�~@�ν	mZE,�^�t��,�^�lʹ:��s�� �2F�\i�b}A���o�'�N�5ڎ���y��գ+�B$4l/����fMjg{�}Ѻ��Ε�~}�p�+w۷yɫ�{�Z�]�I�`D�U���ܞ�����s��KL��;�"O"��?Ÿ
+k�G�}5�a�/�ˬy�O?p$�d�a
��r�M���T���|�� _Ky��
S�OrOP��9���\���=��q�^i얇p�<�_�+]�q~��
Z�Og1i|�!�1�3�m�fĬ�J�}}!m���d@N�
2
��3hϪ��Y� b�
�xl 1��S,s��(R�����Č<���}~��u
��
@4��h�h@��EPc���7\"����Ҁ+��6c^r��ù+��V��=䶾İ�"y]AɧSNѨ���yx
y�)�S� �@���<�Q�����
�c����ր�Qx�D���jpP�"���\i����vN���K��)�� �B$p�+�Bp��4=[甴��ՁP�
���-��z/Ei���Hq? Z
):�_
�z��������)� ��2�޻*�Ϋ=��gPc�I�D��h�	f��Ql`�Ɔ�@oD���q��=I���%�

�;�\{5��V�����9�t���K�m_�H�	ӵ�)�`f/0s�J1� ����g�o

+�[�h0��?�s؉����&`t��5��=���չ�%�2�eO��"�y�� v+T�Asɳ����)#�5�@�
>\N���[��
�a8�N��)�
��s
p�.�ـ
�:��x����p��}�i��5.�
�I���a���"2J
+�o���1��1�-wxu��/�#춯�ɇ�<A�2��Bt�G�з��s�[�><�/L6o��0$�J �
�@��5 (�_����@P�տ9[	z���[y
��At ��&��QZ5k����g~��{�-�&b�%-f�KDԾ�9c0b�s󍁺���]2�B�H��5�x�G���?ܯ��( �h�����+T�䮆@*:' �0,�&�z'RܼiP��"��^
H�8}�Iק��Y���=f�F"
iȚ�{Ll��bά�Jv�u������������������~�ӿ
+��P�a�2����
 PقT�*Ճ)�P�o��z ���	�f��h{��M�$��͂�:�~Z�P{���n�li���I'��ozß=����*��	n�?���y�r��h�x
t���m�k
�����j��
��40�\9�s	
|�a��V���W�:Y��<��
�����͈�v��'r���������l�����1Ĵ��Z��?A��.�
��nn��y�aM3{
�s�Jv�K�����)_������*�}���!����
��:��m���Ә蛇�ȟ��Fܼ������-�l��0]�?�H�M<����
�'i:�	�����{0v�l?�ʗ=�T��s?~m�ߠ��ྏ�{R����_)�~|
+.wwV�r�vv����Kt�4N��9�
mxx��t�)S˽����	O
wH��n�N��!�����ygW�W��`�MBQ	�/̟�N��Wj6j �N�<u3��Uk���?rh�:��5�Tt��s��k���x�Up0�dnomyf�Ĥ��suU���y�h�Y$dş?+���8Vj��6fP;L��3�O�fe2�F��8�{���[=F����~�e�o-g�W��7W��3��
��o��������0�9�:�W������
7�<����vf�
�s/�&�@͌ɉ�Ur*9�
38G$?h2�ҿ�y��^x��=[��3
^�
Q�

�����,}�ګP���n��k�E��\�M��dWM�~_~ѐޝ��n�_=��@�x;�Acy.�~����b���,���׼�VMJh�N
��>�5vݙ��}���G�{���w;�9��-s�V���桖����6��t!N�~X.�eg��h�w�A��V����_����X�8
�.2\3}:�۳�.+�*Y��ߢ=����31
%�F�M.y�U!հYg���8�j+���N�����Ӻ	�EmX�65vNՉ�ݫȪ*>�âU� ����Y��V9<t�����A��+)^ ���_��'��ެ�;Hf�f;SO��߭
��47�2�^���4�}?ߚ-����Tmh����-�UdQ�W|��D���G�\.o�q��\�fXW��
��o�e�6�K��|SP�ɞMg�⤖����+#�P�ء����bs�@���wZg&
�6-�ASh����Wo���d�me�=QH��
+��ui�
��
�י.%�3�?�g�O�b��̟�g㟢m�r�e��;�[=�4N��/�m��*f[���Ø(�u�����
��"�b%���dU@���~
��md��G7Լ jc򾯔
+�q�ҁ��
�J�i��^�\xCO�z��OוEW��|g\����iJ:���
+;�X�e����BíY-h�����:�႗��h�o�
3Owf)fRL���v����k�W��a{�o�
�`k�C����1l����Gn�+d
wa�κR�;ԫ3+T�}ܬO�Ȭo��py[J>���͘o�����|��73�"0
+�WS�!�L/ηW
-ٸV�~l-Ȋ
��^�F̈�F�9�5����3�:Kc��Ml���%p
)
���dr�4=b�K.v"�.��[�Z�n=�𖝼�ڏ�u����uc����(|ć>�ŏ�e���N�p3I#�[�d%R��b��<|���4+�.��ˍq4���+������3�v;���J��� ����Q�@aA簸y� X8�G�eK��g�Ϙgfn���_Ϫ�X[�Hi�kAE�j��ը
T&߾*� >���3K2r�h�-?����ڒz[�ŞξE���guk
���&�������o�{H��^�m~׬��z\�������L� 0}��[D,��{�e�@&[G
���n�J�2�fM��IK�/ہ�T�Yz<W�m�
��7���S쵆�,�$� q
��/c!+�s~��<ywRe�\�^�s�����(��dx��ACՈ'�UuZr1��Y��Wvd���F��h�v6�X�0�M�1��Zx��J���rs\�gI�rU��km�w�"���0��ւ=ݞ�l
y�S����g�s
�lr%ګr��:f׽����diO+%���C�	`��6���XU�
Jm�ک�s�V):&53��&���w�p��]�CQ��+*'V�RG^�b���"�B�Bv����|1�k�Sv�-�+Y��#��ʮ�w�-W������>H�pac@��LǏ
N���G���n��26~��7Aߖ˳��������Lg�R�F�۶�q��:"�t�l�Д
�q���vh��jK�[��Q���R,9B,��r�Pci���tt3{6�b�/��p�$�i�E��t�4�L|��K]JEO򱪡d�Ut�n��"7����Ƨ�v
+�v�����k���hk3�T8ץ"�(��g�g3�
���?��T�� ��G�*�����G��1h�>Չ
+�0�-Z�>-�u�dT�m>��3Α��K$�����[{G at E�'���'8;��	ȿ�k���
ywKh~�j]�a쐓����j��m�%[inM-V3�%�_�1�~�9%�{wt� �*}��:-yc��a{�R�}��_�
+
���!�YiB|����a]�,�F
>q��
zMl
Kk�
���g�S�/�_ؼ���N��/��Qc\��V�J�qLϱ�ǾK�����)SVfs}���Q���G.q�rj���F%�CC&ͬ��]�!��A@�ܲJ@�G�
�������̯^�y�FW���R�����E�r��9�o�9v��*g���'Jy�gR��e�C�&��;�E�h� %�^�󎌌��3�?:��
+:ca�c�J��;��({��w���'D�s
&�-$�������I����S��Yn��\Uj�r��#�iYGbT����Z}��6&í$?�/;��#"e>1+?ڍD_7lx0�Q�y�s*	��R���7���OԬV7���)t�|K
F�^E2��(��Hh���s��\�U��Ž+a�t/'B�"��k�XN1Aw�U+<�vn���RQ��`]�v)w
���+4�
endstream
endobj
37 0 obj
<</Length 48215>>stream
+�&�G����>�]�z��e~���Zձ��\	���9�)~��u%@��t���W�ql�hS�j�D ��@�&!�z"��KS�ۭa>�̓U��d����v�Q����C7�j�'��8}��̺
����� f��z�2E�f�έi��}�䝶���/B
h��
�m��糺^=��w7~=��L�Q;��̥�d,
�-����f�T��H����i:���\v[��8��RtO �l�pB,���?%�g�S!p8�@Z`� ���������(��Z���j���co+u:��������v[��Y�}pܮ�����K�\5w��"��ZF6C@�
�7M at P�/�n��o��F�)�a��
}O1� ��
+ r� �?���8s ��k ��. ���\쉋G�o��	��|�̋�V���,���UM���+L�I?�-�=�!Z{Q
D��ì5�`l at zO�&�H?:��)=@
+� E�b����)F& e����R� �y�H��Uh�T✣����֙�������\�}M̲8	T�h"�;���Y�){�]��CI�>�ӽd����q�W ���)��m��$Ek��uT5��X
���n�g(��T�Ae�6�d�-� o�O���X��� e��ۺSs
m��Z�}�C
'A=��W�����-"�Ø�锛�A�	
�߭R�︗b:N���ֿ,f�S� `p�J���A�)C@��W@�iл{ ��<��>Ĥ���K��φ���)�f���D��~����v
�?��LM"�����5���ka��_|��4rZش����=K�ܤ�S���
��~��� ح㤸6 ;-/ ;c?���9P �;����`��X{�@���K0��`��qؽ��=����T(҅�SƹlG����E���p���
�3οn����t����*�"��j0��5��� ź�� |?�Kq�?� �
=ߚꀏ#��ơD�$�vL�p6 [...]
s�?r������SрX�8@\P��)O��� ��; �� �f��v���� q?�\m
��e�ګ�03l�0ּX���o�Vc�Ca�7�������v�5��i�����
M�*�_�7���
ג�?��L�Ÿ�b6`���:PB��;d�@1P6D��-�e
+h���ߴn����:bM�jlc���A�8�;��@~w��m����WO���
H��䄯x���~����=�Q�t��ݘ@��S��
胖
�ae �z���
3�e�>��Up�Q	g�߶^�l�oFl�����h["�ƴ�=>Ŗ���-�#�>!��
���ۜ��oX$ו$�+�+���K�j^χ�
=ס�w����>^�������ʡ�?J�W^�m��g�?��̩����w�<[]W|{w%���%�
�>����0{jBC�$MV�1ɭ�ó����l����C1휫�l�gm�!G��z뜌?���)?�7h�;�?O������ṻ�\`7�2b.[q�\���pj��xz�h�	��n���۹$v7+����Lz����=[���jy�޻��Μ	�>����g��
�4��{�
��ć�����PL��i_���Z�>���̵?�9��c��!��J���ؐ��gu���
u3��ơ/ͬKK�N�V~�t[�����xe�ᘜ��Q�#f9�
��z28W�o��쵯��g���nYv�����o��d
`�o�j�Т���5d�畬�v�P�t�W���ϟ�8�Y��=Eo0��A�~�7����[���l�����g!����3��
�݅ߙX��A&����z��*
+mrsHZ��3m�E���O�!�6a|�'qb��h�>��`
���W����{��'�:x��=�x�\z�����u��
u��i�AꉵNZ�lF��!ƍ[ې���
�j�9z�7��xj4%����/���^��#�f#c�:��*�[��/�U�"�Pr���%��XW+��.6��j����"���J�M����pw�@�dn��6�p��!2�ƹ���%��0�����0]gנ�\���Ш"K�S�I��*�$
+�pU���C��a]=�?p���tkF)qV����I:���^������-�Q����5��\ 
J��'�_?6�<~N�S�k�δ
Ui�����7rQHGDy[��e�ܐ�zzO
�H�Z�t����C��vk�g1K�a�1.N*�
��;�Ǩ��P�	�N��ᱰ
�x�:�*�O�W�]�3-�j�P\
fw̼�vy��6.�f:�[aZ�F�q�
+�q��a���~֥[o�+i�|�Mx�������
.N�;VDvw�v�,�b�쬚��w�-Tt7��f����jɓ%�=$�����h���u�kL!k>
+��|��QmK����r��7��~.u
�/�e�����
�H����~ݳ�r��l�
�g�#'�3���օ�Z>؇^�l���a�G��j�H�6�y
�p�s
�I�EcX��?�a���>��-�p=�
<m�{����b��=HH���.vK���M���R�2�=��8l{��_v�h���h�k��J���j�
Z�|�s��K&f��X� ��9;���O����-G��m;���G�R��P٭�I�rN>>lG>!��
��?�|b�縲��ިu�����it��V�"bO�3����s�͎��%;�v����<�Zƨ_�
8ӌ�b4lh��0�J��P#��\-�>i���yT�s��p�JV>	sJ[OEj=UOR�����K;Q�>��;Y[�{��	�Yt�B4��uxY��n�q���c1��V%�C:�Zfz��G���]
I� @�(ߝ~
��d��)��X�*=\;J-�+)��U�|�)�g�+]��Xj��R|L��[\=D�! is�%�l~<��O�w��G�қ�]��&g��_
��&����L2��t6Ft&�n��W|_�Nu4
Y
V�����`}�Z�
����J\j7PMR%����/n)>�VC��~G��ݘ���w&ڙG���䰁m�!4�Xr�L�m�}g*�^d*�l���VGf���A:�Y첓0�m�ы���_<�#A�
+��$F��0s*4���k��!�(�ǔ��͊�f�	Cf,	P}��.��<2�z�܁#�G��
�i
î�K����n�'S��(ê/���݀hH]���j������|�;��_���ۮ��F��������hv2���P���v�������6�ɗ�N���y׷h�/�,�ӆĆ5Kg)>���gPb*�M�a˙6}��]�Z讯T
'`J^�yo�
�=��L���I���[�fw��k��O�{��nՈ��K��[���S>����#]�YxZ��se��NG��@z�@��Ů
�����

X:��-L>:u���⬀��혼/�=��sR�K'�u�d��L�
6*࣋���s�͐!��r�*K�0;|���:a{�Og�{�Ъ�J�k��Pc��j�9����gc�Ģ���^$~p����f8}�Q�[
�ZIB��W“��\%���"�$���Q%�I-I�X��O�1J��©��fҞļl���Y��|�F����ĵ]F�<G���CO�]�S��ݶk�|���b)D��\�s��2�/����˙�Hi�f�8�}�
��@7���.F
D� �W�%2㺌����;����# [...]
*�%�6�ۼ93�X�:rȚ����,R;Xr`�Y�q��/��yw�ȟ҉�$�8�B=
 ǰ=R�B�y͙3A=i{���ݣ-f����
+��I@��√KW|��I�fR<���늍��a)�U�q.z��`�-���!u�B����s���.`�g`NJ�
�#���o�s��m]��(
��UY��l��إ�?>�,��2��^�}�j����=�Pa[f�I� {��s����g���
���w6�Ҕ�
�Z
��B�a>>��7G�
���
,GR.�
JV��2��ߧ�9�<!sZס>��B/��d������z�U�uk�
+�"��dEQE1a�b���Ak�5�^����SHQ�ɽ�j��u_���B~���
���~]����-3�f�(ؼ�$}K"�Az���l�Y�R��H��I��֎@�݌B��1��&#ʛ1���,�]+ye�(��{ne���J�UAH����fv p��hx�)��E��`�ZE߲�ɕ@O|q
<��6}��U����&L�T]�����G�Л&���'	8'au�"�s$�
>�hH�(�
�P�_�I.��!�y�n|�>�v	Z �sNH�w �h� ��n *2�G�^���cd߄�}TgnƢ�Z����-;����:���
nhT�<�Z��"6�
ʮ6��_t5T~�8���|j*�8P:�Y at 4�B����Y DS�&臀hA�۪�	��T�� ��I~_}� �/^�(��?,�ǀ0���˟`�n)��h��>`l3o�Ec3�D�gLaqʼnG^j�f?=ލZDũ8�y�4�g?� xnI���@�g�]XO�X��y�� �ub���N�2���l� ��: ]/�%€�ӹd[H-�$w~ �G@@-ҧo���;
��>`��9t�z��ra�������7���n��������0$(�ؔ���*Z؀m
@��Z�\�`2Ԅ:�S�
+S\�n
P]3�m
: ���2{E at I��6
+(zL��g��
��������\6
�@�Us2E����9�)��Y��u���[�l;�����	rn���G����x� ��D	fW@�(�'��
+�c�
�(
z=�z�
&�]k%K�tІ'�J%s�����
��u���YRy�xu �4n��x#�-�����8�>�6����
+Xo$P��~��8�l	X>&pހ��
`��]��\֬��$X�@���̅� f���|����f_<;ʕD��_��\
+3���|
��x�Ig�]��P��O��}J������_|?���=��/ �8��c��xN�L%��Z	��&<^���|p��p[܌u̺��c/4.�
+��<7�P�
��A�gde2���q�@�X�_�� �X���_'��Qp�7|UݥvIP}��q���
e��w
 ��7.�)H����D� }Km@��0 }0����H������8"�D��ۖ�h4���E��
�h*�@�Msu�/�����_�F8|l�_A�����}d��Oo��D�$�+�H�����đW �p�L
ݏ�+����z_̚8��_
��
�kc͵%#S^�R�`@��]�G6�Um;���D�~<�ܯ�J��.>Uӄ1PF�
P�(��Tȟ�� @�
+ at 9d�E�e4[	��6���x �=�B�5R��

+�>U�R5�N�?A�_���������W���o��N�+���T��§@o�c��طVo�
u@�c��^�Zi��(�
Ȩ-���n��K���OQ�o2�7#���5��	
�Cut�"nS�����+}]�r-
��%���Žd��V+�g�_i��Oq~��?��M>j���7����ZW?���b��x������8���P�CW�.X:��14<s�uן���J
��k�p<j����p
σ������!{��Lz};�u㶥;�l���\�0�Dn6W-z�Z����i����_9T�t�?����fަx2X�x6u�^������պKc���!bmK�jq�5':�	/�Dm�"���ꡝ��C��~
��Mt>�]��l���

^S'��'
:�>F��%y"�~���6�k^EW���&��k�[1��\a�Q�r)�<:��h�B����>_����=�*x��
�)1
&�eBO������[��Q at u�a\�X�7)
���:���f߸�����/{�8wmd��j!��G
e}M���կ0�'��^
���_r��3J����D�_o�A0
+/
�o4�μߗ�uo��
4�O];�_���z�����"
�,��m��}ެ߷�V �r͖�.7�=�����,�[�k�=?���iסu���׵��k�Z�
OGmʍ7tX�Z$X��EQ��L�����sS�AzP/y
.,��DE��޺Z�u�e�%
�f�%ia�ڑ�
�!���)|��ڪ>�k�:47N5�(����>��2U/��*ۖ�T��0�#���x��o�j9,�
_��k����QfB�j�P�4ѯu5t �������*e4�g�T}��r����j�2����� �(yW�C�T�y��5/P�M7��n�hO���8r
���1�[ri�e���e�Ӻ�.����^t�v4T�Ţ��O^7�W����Q�?�&�E�ܥ�u�]��
/#��Ԧ���'�����uNޡY�zµ�r��ì���TH;�Bȗދ�X9#���ч�N
���(� 6�A�S�~~�3Vyߘ߬Ø ,��x1�Ze�`��j�}��V���2Y��aY
+W�����<�٧q�����H~2w��u
crXo���=.�����
�|���<|�8>�y_��0�	+�J\.�d䜂&á�i;�c�k�&�L���6F
�4���NF����L���_�J�:�-���$�-�o"xݧ�Z�X[Wvqa�*
�☰�mj��ġ��s��s�j�ޥN.
�9�O~�lX�/�:�ۘ}��7Mz~1F��iX�#iC�3�U�uG��u�yoh^.;��xU��6���QK�
#J��T��m'\�T�zz��K�����7���u��Ւ&�	q��rvc�y�
���gC[4�~�����)�{�i��2��43����j
u���5���6�T߻�~�p�	%��|&
%��vC馾�R��`���y���O��/F���=,R�m���`<x�~EY��֣vt,�����Ӈ����-�1��Z���lZw"I��J6�1�lN�e�E�_�<��v�JCޅ�9�
�v̥ۊ�J]׾��� ]8-�p� �#�- L5J��2�.�?�X��Kf��Z�瘷
��VfX�y(�>ϡ�jz�C܌�>��)7+�c3�
�L]MI/ﳌZ
��t���e��S�;:7�L��� �K�����Ŕ�7�	�
�Ec����}��O~��)��8ܦl׹*��s�v
+�}�T���l��<�����ީgH��&�l͝��R��7����"ekK뼺u�f{�d
LW��'�d��~E�l
�D��B�����!d�x�+�+�Z�]f��6�Ӑ�Ԋc����ֽ
�
+lFf����Ȧ3���p�;�\��*�>#��SF��^�C�v�ĸ
h���m((^h`�SX��6��_{�?�Z/��<�N��[C!��T))~�rp��
��$�m��[
+�FY�>�Y��|&�K!Ӽ�g��Et��)Z[���TJ�q����ɑ�Ȑ���P&�����Gк��o�ok��$���A!�:�\r�����k�F++w�a��x�%�8�����b��cZ�I1�O�b��t��=.�XBM�_6F�)M���i�
��q�@��YH`�sėHK!�B�Iؓ׈�^S����O��ԗj���r�[�����|����#Ŝd��+P��(/
vyA�
��+�ʹ������7��m����X�
K�,S��
rt�J�՞�I� �	���,��~|�5h��lr��.��J��cL,
+XE�l
̇8y؏:���j�[ޯ��l�r~���8���z�b�6��faƛ�ۀj)W).I9e���7�[�
W~��ڿS�\�cBy�p+�3�L���E��؜��˺S���(�֣�
�T��e��;tL�6ȴ�t��E�
��+\��Ɲd$����h�1�z�2/�+겚���I�S��+�?�{J�*�Ty��&�<�K�T�
>�YD�	����r�B8�N����g�2l��[f�=��	�6Z�
fh���H�X`H�t
D�P
��Y�����K�PA�{}�H{w�V(l �������ݏ�¯
x�$k�2/�m���V;
#E?��
[6�=�"�ȅY���8��ݰ*��c���}�к,%;���t`"M�� rZi&�N�˛;����%�@8
�����[��So)�޲S�
�B�H��{��x��
����M�)���-tf|Æ��I��{���i�Ȼ^d��]�4��aGO�oH,��H�|#r� rH����Kp��MX;��P_��q�G���إ,\I��;�����&	�o�
�|�~
�X�O���	�K�Sm��

�n):�V�չI9
b�����+� �C~o��
�Ur�G��� k�
'�'�Do�أɈ�D�F$��SVG���/ {1��
��� s�`+��TV��V`S ��R�G`EaҘ��Qm�L��7��v�&^-1k���|L��u$Ydx��PLp[	�
��Hw�
��.v�Гp��X��l�J!d/p�
+'��	^�95��[�@����$x
��
��ѓ�W pr
�jc ��ådI��
+#mZ㗇q%#�ݯ�X[�����6�8�sZ[0
�
�Ei>[�1��
�b��C@:g�Hα7�|����� O	(�D���3
VI�	� ��%�� ��c��m���<)�G\����*����._*?f^�,~}��u�j�x;���F��SX��5�r�>5s�*��^�t�2l�u6��m�z�N�
�X;�`���y6 ����'?�z����&��	HPM��
��؆g@�

�a�A��A�V�[�m�~��\��q���Z��S�RUF����?�7k�
�:kC��=kh?�!�eRŹ% �}r��0P
+�&�3�b��_[0�����&�
��0����g�
ȗ=���1�4>z+���c@����
+��K|J���������	Z�b�4-���ż��-��CL>��B�)'%� =�2_|4��4����؂
�I T m	&@g�(A�h9E$�&�(5 at 3���(i���l�q=�j�~���h��
��4��M�\u�L�b������(
+��X�^��,:�r�6�+�
�[?s�$S�I5�����̖�'(�>�v} �N���8���|�w0�y�F��[L��r"��!���
��Gy�tc[���l�Voi�6Y�\q�r��NR����]���Ar�h���Y�L�
�b��Z7����a�Op� �/W�w	��
O��+s^��p�dsVE�(�� �3N��z&`_�;��gQ&������W��Զ�k$+�S�����Uk
����
�c;�:�?��?��7���
v���Ғp��t�̓�[́�G5��E*m�
^2�vG �ɾ@Z�����%�j\�i�2�i������鶖��ˎ/ઌ#H��~������}ʧ?�߹������Mo�?~����t�F�~|����v�
�9H����
��d^��_!���] ��}�*���U���Rc�1%\3�Nm�!���� �@��b�7u����Wp���~�����BC�w��Z@��%PX E=i@і�<~�IiV�
(°�x7k�n����X���x��ρ��v��#%�5 �Um�7|̾��m�f~E��Z�*��%�~C��ۋ=��]n�@�
����XzM����/���߲^h�d#H�1����
Po�����C�Db�$
��U]����r\W�Sl5�S
^��k��8j��-}��ݏ�x7U���Y�ŷP�����կ���_y������r�A�Z���
�t�q��4~�S+%��e�>�M��
+<���p��
+`�]���&���
��kn�|Gz�Vq9�-�UJ[j�bia�g�y�>fӬ"&��)1?
+��� �r�*P���
>�Du}:s����|��ãHC��ˑ;4������Q [���2�ys��1k�n`�y���P��� �ƒ
�
��L�1?�x�>oK�nt���Hحѡ
'�P�V�����
�:k�e]���������x�3�ŷL��q��0&��2$�����9�|E��s��x��y���( {�a\��Cyb�k}D
�x���J_��H��^S�;�Ev�^����a'r
��Co'q�;�D+P��o���2V�:��~��9�����k�o��9��'
��� d��a�c���FЃ���ҵAe:H~܉J�y�#*���+��ܮxl���%�j�fK��װG4����{�>��R
Z[5��-��?�}'=u�QsT=yZ��V�0���R믞���5����C�ZW��pAt"�E�}��[g�͖he�jZ��g�m���e�uh��i�j�Е��xGikT�|kV��κ�K��;toOx&=�V���a!,;��<q��K}cV�e]��I��¯�vZ���a\^�}#����Տj�6�M9����㺕�]k6Zy���U�-�m��T����� �q����O���d�u�Tt���9&�k�F�y�8�nfE�
lG*$��B�Y�O��ۡ����B�y�d�bW6�ԩ��P�^�
��=;�"���j�a
�WGU���ޡq��-m4/�f���I�=o�%�h�JP4zmf ً� ���*D�W��K)��/3y�
+V�㫹x�ts
+�XeC����mȘ�Z�3M�}0M�;���S?�
����
�^>��ݵ�n��ʡ��䀹Q�Y)�ƺVz�ʵ�ԕ��V!j ������kj
������c��SꜽΥ���	-e��
n�w.gX�j@�{1c+jS_ts�1ĻN���M�������%���f[�l���i(�^���je����e�Lz}���m��-x"��s�8����B�:
KY

=�_k�{6�Qu�5��h���4�����h_w:q�5�$^�v�`��E�0���q[?�
�OK�UmY��EYI{C�z
+���t1������kz+�
6u���g��^o�
5�Y�3R)_#
J��i󱘥�Q�"d����A���莒�jQ7_��W��n�����r�6�J`�r�\�d�:n�떹J:_D�~c&�����5
++c�˨�
T?�����T�d�2�b��U
+�:���1���l�,.L�S�h��u�X3S��`u�Ԣm
S�S�TD�f�C�e��z.�����鸢Y��~��)��X���mڞ���RLQ�sn�<�!��NW
�
q�9

�y��/�p�)������v
b�
+l�ko��3��7��vzV˦��|��L�
0�P��~��[�ħ�D3N���B
���Z��"�������]��ɗP�֫z�c�ɂ���
���1�D�F��B_XeN�
B�ڦ��U���NwYN�R-�B��|K���m��F�P�����^kLW�N�g�Ҵݔ��O��?��b����3⣴
�m0 at p�%ɲ{���F��tձ��#t�hҝ:��M}O�}�2ϦL���G��Lͺ)2�
l2�
rX-5Íe����h� ���U���c�o;
�����v��^����$k�:"BD�»T�ȱ
���I�̜*�i�Y at _�Y��e�V�c����:��c��2X�F��
�3�51��P�8|~��RC���<p²rxi����]��w��4�B-j��J��eK��E��\�r�̦��v��
�Q%�R��!ӋV��U7�##3�-���;�~�(C
\��u�"��B�,MB�DLN�,Q>]��6^���8Q����
�=6��6��W�O���Mk���;Bͪ�f`0�����P(��������
+
��,,�=�j���AEC
.L�lM�l�	�ԣ6ސ#(�&![JF|Da�>h�xK��"{"pBx���3X�J��5��М���Q��H�p�,$�m:�hvcD̮5$�j��5���Y�����ä7��.�3ʮ	`���X
�C�`
k�u,1��~�9O��
w�mKk�1_k,�w�W��	�/����}lX�_Rʗ���G�ƹ�W~����	>Mn��YX�{-��.
�[�!��ժ�m:��&@20���ϻ/��9����q��U-h]�r��(%w���x�,PL��_�xprɮѝ:_��}�E��+F���D�NFb�F$pW��D���j��<B�g�er0�zA}=�-
+�T
+���T֑�	���
���g�
~30���v��(�j�Ph�),��̯��J_��6����V��
一�pto�b^�ې6�	9mɘ��R���z���j�ICwu#C�b�^N��ʞg�T��oA�1Hd�+ B~�S�q2
+D��"@:�o� ��q�!�
ir.�]�E]�_I�̥.�g����"6Fr
+*�
+~�X��ISo���1Z�����C�h��
f~J�n�{j�#�T��`UE�2=�,������
@����v���:@3�@6�'��%�(e5�k�]��c����ޯ
��8Z>4�l�pR�x=�����s�h���1�ܓ���Hb

���~CZ��z,�8e��#���	���-�#�H�t$���|�J-�s�Kp��<� �
� �גy��G
E�N��2�%?
�@�Zޓ��}��t˰�fW�br
Ӄ}�Gl{&��`;��@�㪄W66�J����=�'3W����u_�T@�Ǿ��s
`}DOP.%866�f	�������X��rL���	0���*�uO�ճ�w=0k4

+�{v�'{��o�In��z�=.�"�Lyy7�wcV$"�����E��]�R��
�����& x�%�c ��h�WY)A-��\�ovl?Y�x-� x���4w nV� Ϛ���A�Ln�`�v�{R�=���
���k�t�ʹ���e�e
WR���u��LJ�Uvx�や�Y�q�<�߀X�`@
(<�D��2�(��	�5W~ڀp�z������M"�J�(HU@�`	~
$�~_���'�����kњ|}�%�϶
��BEQ��&��Ι�P���Fm|�t�Q5W5�I���/���v�rz�������\�M�Y���πtr ˩
 �� s�
 ;�2֭ m�!���X{P�X���9�[e��C�aQoe����p���5sf�`2'�[��v�y�x���+�
�+i��V ��p?�`Q Ttp ���	�@�/k at M��pn�b?���������sg@��<��HP�����+���]{ mJ�[�Yc��0�SP��Pj����iw&�^a�vSL�FY0U���G����?3
+B�4!���	���\/H�� �O�t��I�0`��rC���;��lt at o�=@�`�
�<+ǹ��Y�߻B&[����W_�vN�ܹ4�j/ar�͜�����슪�� �R��w�#�����Bo��?5ޜ{�'�s���Tv��;���m���da'ٳlv⸸?��
F_eW�}W�L�"�K��
v��<XJ� �����v��Wz�w��o��� �x���}�Ƃ
�o�"�wl���0;ƀ��Ӏ_Du��;�7/
+�s�(�Cn�֦�5�[��
�|�tjm<i��
�p1=����v���m_���'�Aw/,�������
 ܓ����
 b $�3@�O= �w ���"[bnM���ɜ��P��~�nw�"]�,�GK8\b3�[����W,���MK����W��+�N����WG��m�� ��V8��Q@����M
r
M>VصqlW�*"q=A:
}�Tk�q-ٜ� �_��'�ߺo
�w�_
�_��������wf���O|�*�M
�V`7@��a�Mן�^m7
�v�߀v�k@t;@�����~m�e����&�����!g5�.���Jԇ��O��V^�3�
>���Nq����i�8^�;j˃|�Ss����
jp�
�)
6
h��>Z~���
�}��׺�?�O��ۖ��##o�Ս��Q:o�u&����o8�>Q��s;��+���tM�7t�}��G��j
	��l�"V���퓮��lˢ/�<wC��4�Sf�p�L�Ym9�<�m��P��o�~�����k?��s�,mN�p�?K���r�yK���
r��J^V�ţ����@��P;��S2�U�Ĉ�L<�N�Y�
�x�<:�ҧd�����pJ�U���ν� G{Vjlt�v4�����������̫_9�ۼ�
�MX��Ke�g��
j
+��B'���cn
OFɁZ��v;�N�C�/O����ۧZ��x���,յS34\fdH,�\'rnJ{[yf�܁w[�贛-�?k\���83��o��o��_��BY��b7e��'A�ȡ#a%��z��P�A�a���zv'*���j����m��M*�R�ْ��ƵS�5���

��60A�T��:4����F1�;,�V��[���)�p���;��/�b�'�g�_�Տ?y�����(���rho�L��"'?�['~�v
�r�@>馷Y�l݂���բZC�E�w��U��y��q�re+�\�{�Zn�q�6p�ww^���y��g�
�di�-3%hoE[�>�1��7�;��
���m��k��,M���^��k]m\��Y�=H�j6r�|"n*�Zu_�N��'\ݻ��}P�|���<��
���_9�X�־Z�V�A�ٶ#D�BԺ�
+��w�`��D���ZN��S(��5�f��6��7_w�+e�o�h*$&��'#bw^}
%�3:Uz�hy��j�C�
�uK>mz0��`a���5��}���mg}�s���
+�M�p�s����^���I)���J�3��uװD~m@�%�L;�L��7�
��\����eJNs��Y>,c�y^���
�xC-��`�rh
%
�����+<�P��*��kW��#.�)0�ΆE���qyd�]aj���2F��5�c6��
z	!����ߊƤ����l:*��k�|!J�%���.~Ed�苑��2=dq��4E��a���%���#t���[��]��	[�
+2��S ^1��j�׻���f���
�
�Q��N܎�D�2ǖF��=��=G*3K%(*{9^�7Y���t������������o
���%���6<�_
��1��U��=�X

��ʁ���~�׈���i{�s��9�sf���I�R��h�	-
+;��
��ʧܴr�4ED�
/z9Y!;麞��ήj�ci���
+�vz%Xj������=�ƀ*���;gē���I��s�����7uwf;���(OI߻��Jc
�l�����Yʙ/YLgf�4�y��Vy�z~T�y�)]��[��5ʹM	���	��K�i�ki[����`Z���ES��yvi�n��3��
�+�	j��fK�g1M�A\LF���vI{`�Tb.�g�)]�u)7#�O���j�ml^ԩ
�)�A�!u�"���$XY瘶
z�/ʕw
+�b
�v
�A8&?�X��X> &s��~�>�cZI���-�J�h*���}r`�Wd_2dVp,2k,ܐy�s��h��V�[i��p9{n\����z_�쵼���%e
$���������q��m����w�=s��.L#s{���=E�=��U&�Q�nE�2�Y�|� =�=b|[$}K"�3S�콕����x!=�V|�L���xM/uҍY��c�Z���w�w�3Y��vծn����yu���30�8Rɘ ��<<�*J&g2#ղ��9���4���[iG�x�D��;�
4S�$���&����c���e
s!~�Q���Ԝt�w"�(�({A��,Z���ҖS�B0�m2��>DO{=�?1�������1W_5mw
�%n�U�a>*B1[�=���b'd�1
�:&��;����/!���/�s[9D
+s��Q硌n&H��ʡ�)Ro8W��dXD�#nv
}�9��p�6LD�Vg�,��dVGHv�L�
*��3�`���������(w�"̪.�35���
qC��@�� [u�=�5�!F�
�D�
Zm5��ʩ�
�����{
����l
�Rzr�C�ꑂB޷R�&BZ\ �v����棺,՝�=W�ꚱȕ�	��.r�"Ze�j9Tc�.K������}��is�����
�9B��w��!r������#"�&O8�1�ehiX!�Y�F�����~�|H�N� �
c��m��,�H�R �曦�+'}����W�K-S
��tq�����.�̎Mh��&��*����@Ȭ���4Nߵ�F���K�#�CD��c8�A3�ե#X)NP�r�
,�7H�i|ʜ���]`�x$�n�Σ �$
�;�6���3�Ep]�7��ڭ�nW�F��uWSm:߁��l>Ў�r�� �2[5��a��k�acU����� ��x���i�q�O�[x
����$5�ƫT�NƧc�����A ~. �8
 ����� !�zI�X ��
@� �N�D�N0�ߪ~-fK^�\��>�"'�x�~� YdQ��{YY*w�Jy
��;��a�:G�S��¶�r�����>�q}���9�oFS�TK��P�
+߸$�� ��	�&@戟�=�B9d	�
�6@��!@F= �F�,xԪ�(�� �1�}���>s'����fk���Ť�L
�\�s,�L@
+=L�'��IoSo�4�^ 4G$S2�MP:'���@�=�&7��@�� �m�B�P���A�	NS�
+���U��d`D5�
5N�_�"ˬ����
���p/C;L��
2�2�r�$g7��v�3��3�
+
Pi�Yo
�Lg�t�0|'8= FpH�*����8	�
�Q�*��0h$
�~�GF����,У]�*�5�2;��k����b��s

�ۢ�=Dyb�^$��!�"Z>
i�,�Y^yTz�P8sb�)�ɜ �ǿ*{8��
�� ��R	zd���G6�`Y�S�'�v {90�bBXtj l=K�M�<�¸��6������ѭ�O�^�xu�-�7H��፸O���1��O�$�C��A�m�L�, �Ӿ��> !Γ���|��;�
�%(k	��g[�J#�b
+�|w���� �(v>� o�2��� ��~SmOFc/�&��j����o{C
ۨZ��
6�y�v���Xr\���d!�@pc &��� ��%�z$�'��_[0�
H	�Y@�L7A⭭ ��8�X at lp;�s
�i����ݭ	� Y$;�q�����Ы�pmo���R,�Z��Ri��y����(K
�zp�!=wU���ATĤ��� �޾��	��9��Tr�'�	
u@��a��P�

+}��–@�ZK@�Χ�\��dyH�C�F6�./΋U1�.���Op43X�t��˗�/GTW�d��`�w��A����&��
�>�$0�	z
@�Ovݨ�ݤ@��dq�i :/� ��4�y�4����

�G����|�CBc��j
+B4�6�SlJ`
��>Y��r0���v���'?���O\����/���?��zK�	���
`���Vmـ�>`y������>��ن��re*+
��njn���f�ϢX���M�ķr����Pia��8~����m�gzC����?3~B�)�Yo�`z��r
�*������ <�C }X�OA���4
+�]�jw<�#Dv�k��.y|6���X�A��-���3r��-��������oH�e6�7|T�O&�/~����BF��m��)�R;�c
�P �*��y���r��l�_��Pv"��w�I�Z�4��6T^M.���Ջ�R�W%��^u�oR����`�;��_����c�mdArK�����_@�
*����S�
Ȑ���]}�9�R���i��uhW�2����P�$��,�V�]�w}_��?>�����7����_
+�`��w[��@��G@]�'�>qh8p�#��$����e��?�o���~��o6W��
r�6%�Ƶ�'�������'r ^��l�9ɓ�������l�c�}�G�.���g|W8�����6w�FAҤU�:�d%�<h
+��M�&�~_���C?��[C�z�
u+��=�����)6S�Q�����
fvh��ݸ�������(���*.��J^
�eHo���߶�qۛ��x2�j��

@�)1!
z��c�
��C5��c��[�K{hзq����������̿kQ����|�v
��B�g��
�G��^j��~��7γ�R�O��{�4���Y25:�v$l������p�96��\��W�R��+�z�w�םZ�e�(Q����t�c�ͯL��Ek�
��D?�տz�q_94�{g�g�ܬp�~�Id���GDw$D�?���f�/
��w����i��d���:$�]'*�O
:Z_�>�~���j�ь[T�q�J����8�	�[�Q�Y� u(D�fQ�W�u���]�ZW/78�ʪ>��WțD�,��}�u�d��Et'��O��V��F�%V���u�
�A���n���jסYЭM��Q
]�g�CO���ߞ*�F��pW���W�V6r�ש;)�x�v
�d}�/��������0�ѡ�S_9�7w�'�}�%`��v����`p�M
���pܔO����^�r.��^���wK���T���0�P��A�iX+���vɢ6���ǷE�X|ڎ�a
+Q��藷�oG6����u������oԭ�;
�?|���w?��s7�'W=�
y�F4r[Z8-�f���8�8&�:�F��\���^��UDwm�v�m�&Nc���c>�
gr�{�L+�>K�x*6r
+L�a�z2[���5��5�~}��M�
��!֝f
+�6�7ɾS'�A
=��q��:�Q�R3բM#�M
���'�[�m{��s�}�-V`짖�,s-��)��
���|�^w���)㽓	�Jҙi�cd���ӝLv�Eä�Y
Jc�C[�.���
���˓�d[ڻ��l�綆��~��j�ګ٥��2l����u5� �7r
+d�Y
Srf����F)�����
2��ngг��m�ϛ������E��V�Rs�PD��c�Tוv�'�
��M��s�9眡�i�}��y�c�Ѐ-Ӱ�?��=/4m[%��R�T_U�j)ħ�U��˙��\�9�f�E[��`�)�μ�T&��*_�
<՝&��L3����a_E�
�2S�oQ1iAă@W�vk::7蜊N9�ۍ�
wl�v�xr�R���F�xК
�#V��HZ
+Q]�+�r2�6
���ml�͒Ja�ًVC���
AO�E�ŔhYnPb��LQ
8t�bf��d��ꔊ};�k�
�״�`�!�r�����.t�C
KXN7��[��ܲ�5Q�U]S����0��vt�Z�c4�
#���9�>��o��QC�i�R���Ji�|_?���z�*��M�{�./fi�7�.Y�v�e�Ӆ=Q
yps~�S��`�(��/�x�UJ�P��(��[<�٧�6�?[!
�F�H7/������A�V��Wai�C�����™�׊q�U�Q�����3�n�[;t�������ؚКt����d!���JG�K� �p��ÙPhg��.��R��[su�B�&
����m��l��cM�Ƹ׺�έ˩ZW���4t���-�4!����)�T�:�G ��KOt�Pb��T��6��&�~&
����R-�]�aqz5�m%�q;vU����}�
�ư�M��Y�2\�x֪`ΠW�g1gWٳ���J%֔*�"�����q��ݥB7�V�
dkl��S�t�V��15�'\ݾ����ZSt�$
�|��u�
'����pD&3Mm�\i�%��n)��ڷ���Xv�P��DD�l���(�����
+��E²M*���B�����L�w�}ܑ�z#������

�]�2`/�^g�Rp)GƠ=�F,����4�����c���h��財9.U
}N��[~u]��ɶ���
T!Wl�R�K�`��+	
�Q��a�
W$�àB�6���5�ӓ(�h=[:�),wαܹJ`K������,���� /��HmX�Wr����Ρ:�}�M�ѱ!�Aא֓�Ssa���-¹iW�x�\TN��2�(���VUL�~K��
��"������SG�g���|X^��`�}���\�=jG*�|�vD�ՠ�/������[���eM�q�����-����*N��H����\��)������a������fXU�}�"I�3x�pL���>�ᆯ`�.j]l��N����b4���TS��
�S�?�r�w�@�Xq�x3A�c?�j�-%F(��*�m�<i-��w����i3-z�};"��3k�1u�r�ͦ0{���0T$5z��{$w�\�
:;*��RR轩
���d1�ˣ[9UAKm_�'
#�A?Z�]u�=>�N�@�GS���'u���Z����	#h��E�<����9�I�|��4�Wl
3
8��}Oo��j
G*k.Y��sԌ�v.C,0��
�&��ʢ�Qwc��R�WpZ.��
��JHA���HӍ4���G�qd����	A7nZ��CqӪZt1��2'G!��
E0�}��'�3��掬�f���N��������nv�o:qP�D�Z^��f
�
q�i��g�E
+U��(
x���UM^�[K���U at 0�d-��Z����.F+�YQ���,O�频B����`-���3��jI+�&�n�,Lx2Q�?�4��XÎ:Y/�eߦ�:z��UE�¾T��V��W0u��(E9tV�И�4
+a��+=#�<ϷQgy�@�IG�T��:��Ч��
���.R8�Sg#���~7�s��l��/�|g7S6'�G��78nA�}:����XbS�c�^�	ǺAk H뼍Ss
ׁ�}�1
-�
^5�HD�ΩlDs�W������0Ư�
�g�]9�<����B�M���Q�.c�ZVt��2�j|���$��sO�.��+�.�����.�oM���!���cR����\"AO�h�B�n���.����S1�vm[�ulV��2�Q[#�ɶ�iT���F�#n���(��
ʼn�"����5��E�>A���`��
]
0DQp���DEC�.5DQ��EY�B��Q�UD�
�{
@�H!e�2�ZŖ�*U�M?��+����ۛ��ԸG�}�۬
c�LYW�a"��U�I��KXA��Qa��ܵ'��۞!���
Q�'+��leXu����.�&D1���MP-��
�қ"��
B�6]Q�	Q*}t_��z��NJq���F��y"��ɐ���{<*���]��98�(S�X"��YDM�2v���b�J
G����-5~��k�Q��D���U1zBT�$B
��/��*`��E+����]t��i�_v�
��8I *M����B�j��"�Y���dM�))����0͡l0��$|�/�ǙQ�H���8f;�@{\
J���
U�c^VG�2@�
+DC��l�>�Έz�uB��=��:�9�#�ta&A_�Q]�=�:fJ�E������#8oC�vQS�9�VQzD��U��x#o�^��m�
��bIw��u�z��Kf�z�E5�����YR�u6ZS��<rU�j`̳���"�eL"�%�n� �Ĵ|�gD�Y�MW頋H�TFYDS���b�B4ٰ
+��t [���ʈ�;� �Ȃh��
���#��������x��E�QH�%�QQ��vCM���Ep�J��7$�t ��]��x2\��
��Y;B���7�E!5�B"�2]�)ObK��bB�Y����!jI7B���cM,8PO�Ԉ��1_���;����կ��
���b��J���w�z +ɣ�)q
�@��
�d�R�á�"fҼl{S@�
[�.
D[��t��"�L-�h�����KN����X�3D��["��j�?��[=�l�e�k�ΔN>/��L@��7���<����.m��f��Fo�.n
�_-D_�N袹G�5+��
/��U������CFD���=�A����W����vW�3%�����i��m�y����x��T����1�2�w��@�[��S0��[tށwG
���B�b�:���:#�vփ:�&b�䈡zLz�Y��P���x��u�:��if�F��8�DJ?���n�n�i����l���2F�f Ăf��O&Ĭ	���wWs�읒��7�!f�`���3-bv
2�
��Z�jG�r��~"qH�� ��O���w�k�4�������l ���
1شel��m
���=Ħq�ap �!0�lV����N�f7W���!�Z\'�
3A,�.VIo�R'���S^�woW"wKt��#j%�'u.���ț�)�؂T�tۭ{e�n�k���
�F���,}Y|Hw��W�N�
B
3e��}�H,8	5�.�MVY]�b(3
w�����˂�8�[ӽ��< ��V�����"kQ6�
���
����6<��
��RE� 몥G��p0
4g��6�]6Eb�
�e6C��}�j�
F��ο	5�g,�9�kZ�V�p�`��\��0�}�k2
ƷOsM����.�d�����d�����d���&�@�V)wL�6���ǰ��US� ���U�rU�c1j0L�+���h��h��a��Rɼ�c٨�IqD;f_c����=�E�(wd���sj �n��Ҭ���-g3�;!��
�:�Q06
C�YJ!�[o4�fc]s�
غI:knu���;�+\����_
���E~�+`E�+l.y
+�p�jה+��a\36'�z*��7ƪ�O�.������i�mw��h����I���
���X�u~MB
>m��ev�-"
{�]�*Xr��b<�S��O����}~/��W��
�Z��
��
��(�R�
L�����9�
c�q���S4ꏪ�թ�Téi��I�K��kjmN�=Q�~��X��)0�[��)�
�-�jo9���͖���M;�d�EV<+w�mPz�(f���*�wFz�@�,΂�yT
��
F
�[�`��?�X}6Lx|�����f�d�	s&�����h�]��x�*�
U{�~N�����^����ZV����dciFv�X�[�:rouFO�\��J����S�!�G����r8Q�����
f�P-0?h��/��3 S{���1rC�g��458R;d���V�z����l��4G��P[7�id��
�k0�Ux�%ԊAجA�'`p���5e�M�
�csa��3��Lh�!6;&���a�,��Ž�+��v�p��ͬ39�Oݑ���B�D�6M/��z�S�� [...]
+�Yӽ޿�c�T~��R��r),aKI�{�#�-l�
���������7�d��*Ւ��/��k �Z�Os��/�_*�T��yY&a��O�0�S���3�k^s�Y=#�jA�J:�Z��C�7+s�xV���JL�W�P[��–�J��cվ������q���K������h������� �
���#�}�4ph�]��Y_Z��͈�
�\3�<qU�[1j��<B�G�
+��ڻB�M�W�:�]��KЕ������L\��]�gҝ��k�z���)8&�ٷ
�e�a��C�mW��U��@��󑯦���o�_�T~�����&Tt��y�>$����ݴ5v~J�=W|�_�d8�`�B��Z��H+���t+�
�\t����,>T��c?놰�@�	�5
���4E�z���B��h�����C� P��)m@�����P'	��t��Ш���"c��Fj5��8�U�Q�G�UV��PB��O�(��[Ɓ���H�����l���K����
[*��vYh�3Y,m����ɦ8җX��N �4���
+՘OfM
�_s*��.-S� �ظ�|k����@� �\
���߿�㺩�N�?��!�VKD5�LS�^�+�m�4YL��q�j�Et���lx
�[��=��Ia�dOh+瘷�~������tN��7�}�;�����{
+�MA^)b�v�+�e���9�K�
+��T惤Sgۊ�G.Z���)��T"�}3������>�5
+��a���gbU�*�r�k.Qz��[BJ��Ng]7#t\ �� �"p������V�*iE�3 �p����e�L� ���_Z���{H�O�i'���P{
�2�� T�6B
]t�F ٙ"��s�kۃ�6%���p�$:C2�Z,
]
�ńn���R��4��ɔ�J�-��F��Fy�9����Ĝ���K�[�Ӊ��6=��L��S�n�B��]e���g��5g[u��;��0
N~�
UG�S�ZAˈ� �j�d�50�/�۽:�crzU+�
Z
�5��sp2E@�2��P=&G��z
@�
�Մ_qf`���9[�
��"4{�� �v��Q�F:#@�
���+�C
�A���
��Lĵ���MكV���
����VeJ�{��.G�d
3���W�/�!��bX��
+�	YN$����Y�
�NM��6
+R!��^H=�k���,�7�
S���#2����!u��x؋XɁ�JJS�$��#���G
�P���E�� �B�rb��53�6���.���±�2V&}�
Lf���ޥ�'y����h
����![u>�
a�a�j��He,Z���[�ܠM�O{ }��\���jO
����SL�w��+l��n<�T��̼<\���7���wQ�&u�/{G�5��������7D��bQ�Mr^WW�f��gB'F2�X�L���7�W�5��P�K�;}wP�U�s��F�hA�$�t;���bR��_��R��|�$�7���W!�-O,�P��ĉ9#T��J܃(�0�����8��h7�K%V��A��{ա��S(5
+�������ڌ�Fx�H��)���X�8�W�
�#@��
��[�ɡb
+�q�=+���&�>�������:����#��Ϣ����
+
��bn��z�+ݠ'�@�ɏ������ �>���HD�ɶ�[>��'��y��E�
��e�R�����ڸ�`�� �3c��3�W^���+�8,5�.+b�'��C�OߢBq�-�� >U��<�p۹�g�1����N���E)�Շ!h
����b�wi��4�����C�ت-%����
-�L��id�L�O�1߄W,3��9�v�RE���!���{WD�e�e
+L[�x<;��4@Em���u�K�cT���5�k��F�Tެ��:
WN�J�b��O7��O;$d�|ؖ�A+d�'�����:1;�-Q�+
�'?��̵~��
+�j��s@[[LX1��K�rF{�C��=q�Ȭ�jwO�=�1�x�O+_|�-诺
+�&��R����Ӷ����h��s\c.��*����6���\H�9F^A�cGT��1
�
�O�qV}���Y��!
7{�m��ן�!�f/����*��z��`�W7&B�s�߳�0T6*�f�5%�*|]n��Bn�YC������S 7����e�<�
t��C�1�eg*�
+�?-����e�J���r��a��K�Yq�T��+� �À4N�'
r„l5:b\A|8�V�p·U�����r�h�
�67v��
&����_<�V�b�T��ߏr�t���YB�T<	HZu
�=(V�3���!��Z��e�@�H�M�I�8
+u�fu���#gkCfn��f���d_��;���z���Z��Z�F�a����:�uA��
+��*�e�$�u5��������o_	u7�:(�����6��QǼVv%B-9L�.z��a����*=f�MH��[�zr~�,r>�J뢟$�_V�嗑*��~!�z��!��R���,q�х�2�z�ߩ	�
e��
�D �
���9�`�E���J��M`Nod!1eT
K m�~���KC��̆�va
$��
+��eY�Ae�J{}(Ƿ��+��P��0:�;X�F�j뤁���Л��&o[��]?d�۹�9��3��W�/Z�����:���L�"
�ֲ+L�`
VQ?��U�����������Eӈ����m�.{2��nZ�]�|d�����Մ�����A0#�5��5�!E���M
+	T��]'
+Y��\��8���ۏ	O�O���v\"�d�a��q�c�
=�S���c�L�r�=03�PJN.���F&TJ��F�`���M>w
>�G�Mji�a��B�E�ȵ!�,q��58����*�!�w�\G)�IVګ�p�b�xhTJmr�t%���lA��5�?O�\N:�/��C�~ܙ��cg�{(�=c0TV=Q;3a�Ӿ����WcQ+s�P���T�{���b]�Q
�
.6\�qW�`Y�Es�w��~��,T�xNJ8B\t9?�G��
�Rՙk�b��
�q�^�j:�S̎w±
�kV���A�2ii�ע
���Px�Ō6��,!T�
�_���(�2�b;/�X�:wԂ���̩ؓˎ{
�%H{y�!�-C�>*��+m���
+ۣ.D2'L�@�=�
�
*�ת����P$xb�Q�:D6�Rte�X�����v�+�X�K��{�$dx%�aJ�i:M�i��R��<!��ht+�˷�$��(_V�m��-���+�0����[q��gu��+W��o*,vr��a:L��b��!��q��z�E*l��
�߹|
+|
+��?�u͎��1q�Q�����
�mQ�8�.˗w�f�ȁ��M�0�%kv��I�x�����i���R�o�R
z�ִ.ZF��xW�/�-79N�XI���� �Њ�
+(�f(wm|)�ݻ�=
�?���4��Q
�P;�k&�����_Oe5�归�����ƚё㩨�V!�-.�[�H�
f)��z`�ϩ��0�vUD[�8��Vs��8��[%^�m/�
W�.�ufI����/�����$3n�W�<S�=�`,� ��h�&lL��k�+[�
!C5?�.
⵲G���u
��V��R�(g�#�Q#���E�O�<���3�Ȫ�]���
���|��,�lP�ISiD.�j���t�R4YZ�;�R������ܵ�dU�]T#�=�ӹ��T�ڙ�V�/��
+�;Lx����)%��r?B:L̺z�	)��2�n��`*<Y��f�=���^
��Y9G��{���	Wn�[�m�{��v�˲毰�
�Q�:���0%��
Q���k	�B�[�\��*1���a��p��k�X��v� ��Ʉ�y�30���{�����F�r�T,m[V��u^��:��b���	��2\XǽM��*W�0cϚ1�9�f�y�g�b��̤^ԅ�&�uX��IY�'�
ig�tm�>q�K��vu�R��S��_�)�f�S���8=�0,��T'w_�nZ�:��OW��g�
+�3�b���1R ����N�^l�j��i���e���<
+k��B���bh�,�A%�K_�l�#�
?�Y
d~��mc�E����+9��؋meF���g��$���J
�g�NB2�g<
�
b l�~�E�S����K�x�땀m>
D�&�q[�<(s�V����ge$
�CL�M�c<m�
|J}��A*��R�
���Z�T�qT���8<���T���h��0�a���(O�am��{��R�:T��
���M�¡Bf��RV!��˿:Ll
��h
^�[z�xkC�"Qz�����R^������ >�_����"�޵����<S���
\$'~�n��P�b`���X
��|j�A-t]/%�2�ߤ�یi��=&Fz��$��/� �U#�������T8���x�������M��<2Ur��q-RC��1�����?��j4��˻
��͹�1>���&�癸�mo��w��D[V�_�5�IF$��G���>�
�}o�*_}�~��Œ�q��7b��F�z�
�u!�iYՒpA at XX ��9�PW�xfP6�W��+U'І�‚���tc���ܝ�=2nl>�l[��d��
�G�e��Ag+/�z�2R��9�
��2�H5ck�R{����ʕ�Y���ͿT��Tµ�jZ4
d��~�T��γY����
�JБI;�u��9�
�}�f���q��Dj$�bn>���_�Q|QQL%��T2���G��
���|�~9�A�]N��>�y~4��Ƈ�F1�mx�9��E���M��Lu���BxA�!��µ�����E�QG��ӡiib%�|^�T;d%�_�T��e� �I#-N�yʠ�2+O�g=�
��N���%�D;�7��_*��Rٻ��`w���ex=9?-��L�_�&<4*a
u
�LN%6��;��ѵӢ�ĶŇ
��
+���w�
��
+�g��/�~8].��8S9��L j�x�#��f���\�9�ܖ�v����3��anŶ4��
! '���
__z�69Vk!e�2Q�-�5bilfgu �F�:�s}�H��)U�y�
S^���^�[��VǛ�Y���o���!��O���T~�|���e�M��QPT3��!h���L��3�[�n%2j����h"��x����N��=�_�pa\���#V��;��MaM�"�76u�,(V��1��I*
�b���Y�c�P�������"9�o�w�*{����Oϣ�
+�����_l�/�‹�@0N{�c�Y��R����euD

B�D�H�'χ��~R(8տf��R��򟢢6%%7隄�ݯ����/

��ۀ
h�
�1s�f��<�ɀ�tcM>��<�iΖ��r� �p�
>����V�37a�/GW��r�d
֛��J�� �p�f఍�(WS��L���[��4�_l�5$
'�Sڈ����J�3N
m\��vk�k����#05�i߭�j���}͞S�߮C��W�HSǷ
<W���l���K�_B�,�bケ�J�rMM�j�
^,��
/4�F���t�
�"f+aT�����j�u�"j��4�1������<䗱���H8��a�u.�O-��p��
Z�f�g��O,&�/#�uX��

��Gf
�_��b��6Shd������U���|5�yS�z^Cѱ��Z�: 2zUD(�ƿx&�R����R�������\ſ2��P+�

]n�,�EK���
GlV'��ض�	��Ks�)!t�5ꖗ�*�m��U�^�s
\��1�VVh
�2qU�w�e_$
�����c���u�V�\ݙ�B7��Q������I�Z�5Y�/^��O3Wr�mx��D����/�_*�T����
+ʹo߆��P�b������,��^���!�E�:�A�$��}it���c�b�4;�`���M
,��a$���?o̐ �Z�?�&k���{�A)0�SY�����ٵ�
��pi8 at C
A��ȹ+Ż.|�ob��ƍ�����"��٢Rޮ�k��
a���K��/�
r���K�Ѭs�%OM�3b+(7Fw-{4�9�灊N�j��YE�wޛ�S��(���
� 踻
�讣r�w\ȇ�<[���Phʻ�z,֭�V߫�rO݈�Z�ja�s!���q���r8�1�y������\5��Z-ؓ��+�{�?�@�`�ގ�����'�N�ɟ��4P�!�W
�	�����Zir:���������v����O��dtZ��I��J���}�|e�����x��C��V���_�49$A�6�?��59�
�����h��m�������8����a�_�Yh���`u�E �'v������Ofr��)N������n؏L��b3�CW�|T����GJ�?�|�eR�W�iQ��F���`3; [...]
+�6�ş�j18�u��B^��g���b�'Dϰ����-�ѭ;��e�(�U������J�r��
��¾&20�`�`����
+g�x}���z�FI^���
���}v{*NF��x2~h��
��bx>M����PǴe�Z
.��B�6���|��4gvr_;.�!ͬ��kW�ˈ��aBs�8�9��9��]��!=�+��h;�����
�.��g�[r;Ll��?����<�d8-{������D4zAz
n�8]������(�	�%<��^K�F��C=�'2Z�7?��/��]p���1\&_�
O
�e
-z�)��~?5��u�����&
����e�ڵ(��+���P3�,HH]0��
ݐ���������d�6��[ۏnm55�=��I�p�6�U�k�g
+� ��2<R
���x��
+ĭ�P��3�����H�\S�~>�M4�6����씁j
B�X	��J�
1]��>
�� !��$�Kl�ETcJ�hK�*����2�
6̠k*�^~�uĺ�Q&
�r�3�u��Qm��ywj��!�
�=
3ۤ�����w�c`/(}}i��tc��=h�u���Lxc���O��h�ύ���glE���R~8���CG
�PzsI�4��e�[�i���C��m
�N�$j)����
�D����T Z��J�Vv
0�2
���
x`	�+��G%����
�}
�b�6�(�6�ٞ����E�ͬN��hRѠ5�<�e�6&W�C���R��(.�`+�0�!�c*;4���+�Py�3�b��FU�v^��JΨ�U��!j����1m
:�j
U߈�T.�j�O��NtO
+�f)*Dtt��
u��#�
�lD���
����BD�>����TX��kU�ˆ�Sɣ��k��(uD�D�(V�
\�L�����P�N��<zt�K}�%#�YQ�ʅ�r2���D݈�V�� �ᱷ��l~�׶�Mۂ
zU�dZ���RzYe�F���CO�~*݊X�D���ѶD
�ѫ�d�f4�� Q��
+m���sr�Mi�2<5��'h_K=�K�h�
O������n���rG6��K���%ZM��D+1}l%D4E������5�SW��~ J��j��z�S�F��c�d�f��+��D���W=��@�vN�� Q����@_�Q�Wػ�Ds~��8��D#_Z�(=.��e�4Kt ?�
��p��̀(�[49ԥ��=����!J�K_S�.d��Q�\Ae.;�Q�U����YD�|��!m�����}�������O!9
Fќ�%�99��UWWܓD�
��vq�W
Z[Z�E����D
��B�Y�=�4^	�
+7C�䫤�=E[G˰��4�c\��P��B�&j�I�C`����
�+�t;�yz����m���<Pz
�c
�=�� J"x
���6��p�-��s޴���;�Fi5	<�
l�N�"��t��M��1yB��s�H�u��J%���4Eu�a9s�^�}y�����g��שi�i�j�O�٦A��:�)ɗS&ÿǒ?��VEeЊx��UՐ��x�԰�"�<�p,
'{!k�
�:�~y�&5�i�8�:�"��7Dz����7
+|��o�ˉ
����_ug�ӎ�%ÿ�7�yo_��C��A�葓�(�餞��义ǦTg��Jȡ_�¸�B�>�����+���
+<��W��c
&r��<�!z���G��
ߞrO`@�x
q싑?�A1��i����v1�)�r�դ\�
kY��7.#���
~���7�hS=������.�֔�
=��E�g�%}���DW��q��&�������䑣=��
zz�����Um�9�N�zQ��93�$�
�t�7�{OԬn
�G�ZA��9�A�&�*��I�'@��!C,0��S8�|���@�
��J4�zdo瞨��ݳ��/>�cc�������Z�@�����
Q~e��~T�2ڿ Q+
+����C�{&?�U
���D�B�(�)*
��ta0)�`y4�������<��2���
sz}|3�N��(�y	�
ν%~�c�� ��|�O�nK�c��3�пB@�K0��r�{��rE���)d�Q�����*f&���8������aP
�
un�;ո�L4��~>	�@���3�fv���
+4��(x��`{������
+Z2�4f�v�� �����K�oM��
g
+0j�Z��e��A��M�;~�]��M���?(�
pֈ7
+4�(�$�u�L��X\����s�,,����Lg�����?�!����y3��?�����g�U���]G��\f
{���ϥ���=�,���6�1Kx2Īl��vd��.�,j�����.�:�����?[9|�>�_8���ʉ
�7�3��W��=
r�=�vhw?�t�����э"�c웁&8c)��	��H;w��5�l'AѺ7��xg��ê���U	��`�f�\��`�d��	t���v�a��]C��0Ҳ�&�^�i��
+�W��� w�ۄ�Q��GK�Ca��<�^���u�G]=w7�"4���
ưl�:UM[.�8ا
�ӆ��ɄHe!]Kh��V��ȄȺ��u7��%��n�]t~k���
!��2V�%Z
Mr.e at Aq���!27�A�*ݹ-��̹h�qo
6
Ix'ɠꦅ�F��c�!Y�w�!���
D�8�蹣r>1�����t�3�5ƻ�
����1��I��.�g�mI՟`�K7~��3
�Ok��I�֭傍��FZ���^鿭��G�Q�D��Y)��?���J'a�ؾ0#x�ެޞ
z
"��
���ʞ�;�U�$�Xe�ě
{�׽��GI�&�
%��
�X�.��7���8X*�g���n̜ą�����Sh�`g�AT���]�C�'�7V�,n윃���},l��|�������8wb��T3�`_�G�X��0]�x���}yޔ[C�I����q�n�On
�,�G��ΆC��E�=�K'C~��|p3��~'s�]�7l�§׎����a��*>`
�ڤ��&a�7
+ޤ� �})��W�
�x���(^g:�>g!s��]�����3M�:geOtyc�87��?v�Ӄk�.H�3�W���
�d���^dl�
.p�:*�,�̺[���{N�%nH�%
Ҟ[����`!�%�z2&�Fu��,�5x���g�ba���Or5�uM����{.s�ei�{O���$59.kov(y��� �S��	s��f�-��0�wx�"d��y�5�g�(x�4<���)�zT�S7U�v�(N@@��<*�w2�I����ׄŷAƢ�K=n�v[1M��kX/)�
(u�?�����=�FC繯��8
���K�w�{* ����I�Kq�� �-������y����$�仝HD�U��G�
�W��+��dO�3!�����`UzZ	����T���^��[Ae��29Ds�~�ό�e˻�U�Y=�I�Zd��z^\��Z���7LkD�=����TvC(u��0
�x�����o?�a���{��3�
�Vp���
� +�⬼�{TL�i �".�d�dM��J��]�V+�b�'�;(>zD�.юK���R�>"����
+����s��hws�y=?�h�32S���“h���,�&���2���〹(�������AK�L�KS��ث�8u�
~�sU�r-e?������j��E.]���}�'K�����L�<z�;U�xh�΍H;LH�0O�y���jsL����@<֢�v���
�s��
��2�+{���]�]pvC�֤������vA˱��{p��z-�N|�wC�2��Qp/|f����|�ۄ	�����w��T���.V��~_��P_����vC�{�s�
�Q�n(��7V�.�'9�!���;�P��`\�w�{穛�`��vu��Q�6ၙ�)`� ��'%��o�8�2I
�K�
]�EBe�6ͱ
.̱W̪��D����v��
�L�/y�1Mj�e�
JT59ے�-5�m�%{��!mxٖȠ�����wM��
�/����������H��-�j�	��K����pU�YH������L

%9�^*P1B:��W
+b���f�sm��Y�2#��Exy], at 7��u
+��{�
+S�l \J	 �� zJO�CG�"��]�}
�8��T���O�
AA
�C'����TyCw�^p�u&���G�}�TyC'zE��т�c��t7��{:q
�� ��N�� ��M�'0t��oD�O0t���8��L�7߽^'���
����Wux{�
U0��E�
+?�s�jb�+�
;�s>	a4��_��w|y��/�8�8w�0w��{�i$��X�D��D*#_� f�9rNz�t�֋�_���yl��'�QO�`���G���dͷ�h�<�kԉ��ot�4g������M"c���ߵo�]���)�M�+;��n�-�"c���? v{�
+"���
iǐ�����ЂW��E�Yc�M�`m�g�b��a ��ؔ^:�F��+��j

��3�Y��\	�fK1�=^�|3��Ҟ`��a�����4i8��I\�x�'��U�:���$
+1+�����iޓ/)Ф�*-��n�����	�LJ=�s%�߽�y��>c�11蝅�yeO� <i��mBL$�N�_�ͱ'���8&|��=J�+{4��7G�{��'t�Y
]zD
}/v�*������f񧇽��-�H瓏���`��x�]�s�@�c�!WH�B��{vz��� O��
F��;�soF��a�X��k�9;��à��Pr�ۛ����r��0�T=��9u���G��`�8z�0�g#�Y 'Q�#��
D?���&	�e�k+�sRI]�w~H�9F7J�>݌;�r�S�2�i�ݸ���^���t�)�F�>�'�E�a'�OO at q�&�����G�EƄ9v�n�P�
d�Ro�-�
��=���c�:)�"#{
+�1��ow
�ˏ�9
I��-2��)�a�����'�� M�"���)c���
+�sx���;�7\J
�e��Q�y�g�4R��]��D_� nV�
��Y�&y�u��`�d�뾳��y���S�|��Ro�
c�>"9�\���ԃv�
W�c���.pu�f�������1�
+�䧮z��
MUr�Q鿩�
Y\Eiw�����g�O��>L
'y������P-I��
�
�?���N�L=��=A
~'��cx8.
��

��AĽ�wI��=������]� K��
:	x����bJeu�/���}"y^?[����w�'du��0�L-W��7��
��Y����w1��֣[�U�s�V4{C|�%y<C�� �M�n�΋@�2���(n�������ȫrLpFڍ'pR	�8��w���
oc��ejp�����#q���`�y�Z
!�#Q�g+{
	,����إA��

��*}=P?A��>�H8��!R��"R��� R
r)��'��@��s��9"��G��C���<��Kl
�	D�hh�&��E�"�0
D$h����U��.C���-C���@H��h�� ��}

+'=�;P8Ȫ�@��?WJ��ɸ`���ΪP=��������
�?Ű�/F���	��w����̀j
��T���

fx|
2,|� ���8�zIN�"�
!z\�u+�p3�I���u#��b*0Y������1).m���&���h��ן��ȡ��y��!�'kat�,�}D����	+�+���S���vtlTz�av3b̽w��* &Ï���
�����F��|��D��
�B���"�ù�4���&#@Ԋb���#��k�"�v&a�1�Y$�L
u�۪䢱�"`���xG� vT��T�\��e�\�pgj��<:�	��)w���v3g�}!�[O
�YaD����&���T�s��@�hQ���T�rއ�5�DGc�\]�xg�G/�=����$�I�5΀�����m�t����t�KKH��^�����l���������ל<V
	���%�zЃ��\	C{BO�I9>W�$����Lr��{�
+�
z&

	���[�I
�G�>�Tf��'y�^K"'�?�^�r�4وH��,�a	��R�$!ψT�?s���^�����
��X:3�Q4

K�S;�0�v`�p�D�	Yz?���u�;����t0�����tRbݼ��{n������Q�Q4

K�Q|
M�������`c��E���
+��[�
M�p0#@���t"q�~����� �Ϣ�`��}��Ϡ�`M��ü��{�
�N$c��tpM��h:XU����tU=�)�S4��
����ʱ��tU=G��M��=�X����i������np�&|M'��a4
���i4
�C����`#<�>��{r����
	H��t��b	)� ����
��n���q�Dŀ� ��"����'Ai�.��W'U�x/_ݽq�NT��Ƨ��m�]�$>=U,ħ�UO�ܞf��8t|Q �i/�]N���ފ�5� �I@�?�?+�O��˕0E�$
�:��%@��n���,��7Hs��F�J.��N ψ �����%���E�#�A�u�䟤���8y��^�R}#���[_Ks�Z�$�{Ɲ�i�.ڸx��w�=L�
+��
�j�����,H�
+����bt眪���ŀ�~�����k�z'
��C
�_!O��	�D�z��� c��>�fx�2�%��k>�(�f6���P�[��F�j�'#)�;��Io��缡J���86�ג
��#��\��jaV�їX��-O&��WV ܪ���C,;�I�؂�3�s��� ���<�]�QAe!q�
+W���AeFI��w{� +��|M4"��I1 ���9�y�C<S���� �I at u	�R��� Ǿ},�au� �]�ǥ�DC��.ͻ�3�9q�
�k�"���fB��5w���G`ŋ�x
����J�2��
ʽ�dP�"S$.C����
�+�n8/ط�-Cx����f��!�O���i��a�V����@����K���R�p�{	#?�
wң�'��2�A���!���U��
b۾�
ȇ��C�\ϵ��S���O k�{qk�D�+P�π��r���}`-�E,.�k�����t��-C-d�_�k�
w�Щ�Yybbv��A*�IH�l����aCW�ʱ�]����$3�SӅcRaL�1�:�^�\)�'���
+
fA�P�� %qFHQ
A$��N�S
C��9�%)�
F1̔�*�5X�sc��D��/a\C�'�"؍�и�t���BS�UY%a��`\��BwI�2彜��$��T�����9�YLG��^J�ia���{����3�,H��5��h�
nF�@�ZN���Q(ԧ�giw�x��c�.֥G�Z٭Z�8�GhZKg/8��S�G�F9.�Y��<l��
+`�u1�X/H�������
�v��틥��:���u��I
��r�i��<���&W	B��A��F�$�s����Dr�-Q�#��ka�!ݖ˂D��|,Dt"��`x��0�H�d�-y��n�H��Uzi^�3�.��)�=�ޝ�x��NK�Ѭγ�]�ɴ��q]���u
+ىq��8n���?�\^�}ŋI,��3W��D���5�>���,_/��0]��,��V���ؑD3�H�$�O
�d��$��J**�%�* �CS(��������ķ',�eSB� Ш�'�@��^Z�wI���/yi��?-?��9��h��ބ�}�O
%����6�F��r,�{�n��<t����Ǻ�ص��<o���`Y�ID����+
+�C!AU|/�W�c
���q����ih�_�0C��Sgd�9�
cp����^7��AȄ�]����h�hUa#C<8�ģ.�v~��6��QJ���ח��g�
@⏽?z��id6<�FM�
H���q�D( l�
���}�P���u���
�I�YU�ۓ�e���	�煙U�ެ��R��俯p�i~�W8�$���?oq�,�.\�{��
+P�a�+Mr����a ŢjU�zF=����P�R1���P�R1�"��%� �b ��H!�@a_)(@�@I+AvH� BoE%� �b q�=�^q�'Ѥ|ogd����y��O$�cN_��pR�{+�d��rR>9��|�~J���|\+�&)�����K��N�J�I����A��涐�\�
+d��ņ�a^?z�n1����Xl(�y����?�����������~W��bC���{	_��~�5���'2�_��w�V~V?���Gy�~��y=���́��'��b^?����W>��'�n���~�Y�
�3�<��dշ���Ff�}��y^?���ƹz?���F't�|5���J�9�������f��<%��O��;y��s�����^�
+��{;��}V�'y$��w'��_J^?q�������n������Kb&�W�������oj���'�p�m�}3��T���]�`�~\��y�~����G�)o����y>���
n� /�O����
n��wQ���'��z��V^?�x
��<?��ǝ��P����� ����'A�@^?B4�߫��^����q^?^-���xy�S��4����Q��~�`��Kz?����#�n���'�����?��ǓSY����'��$��&����||O�OR|� y�^�?ؔ����_��=R�y^?�~
9��~�N�||�1mOl���v.�~���.i��~�+����a�
�c�����$��K(���y���@��q��?��' 
+.ۉ��,=��8+Y}���~w
��C,�?��'�}Ʊ� bY���y�ij�q�-��O|sx��r���Y����fT7�/�=>����iׄ9�z�iW���=��Y
 �F�G��a٫��/F0'a�
W���r�9�D�j�ψV���Liv}%}<
�� ��

+z-�T�jK�b%��~{
(��C�kaM9�8��@�HS�7�V'V��a|�)����Nk-��=�r������<5)9
�v|_-v�ii^X�*1}�\��Ԫ^/D�����:O��;��?
�Jy8�0D��li*8��]�fzT%
DF��c�45�7�����#�N,������T��y�h��b�6K�r����i�WyT��!�8rAZz��c϶ Ǣ=���Q���w8Β(��M��2.
��{<���@:�	xF��lAep_d�ŰJ��3ke0��l�o�Y��M�==�u�F���ݵ
+��R,��
�C����Pz�����_�� �Gy4�E��
 8��֒;<��������*P'.W��[����s�gS:[�9R
�~�I&
�>1����2I��R���~�pX<��+�C�$gzj
6�����n�XM��V�*"L��*�H"]�;��
`p6��r�����؋�IJ?�k�
��-���0=ۥ�W��˚�dG��Q��[�j����K��I0���sqO�ӯe��9NH�	s��ў����]���J#��)���T�֡�*���L�SXo�G�<���O2����^Duw�����3��Ѝ��-��
�n��������z��03���p�!��)�w��6j

�
q_����U �
���ɾ4�l�˴� 3c
#�� ^����0�%���jG�
+S-���Q�Y��qv��Z���ce퍬Q�� �w[
�t3M ?��éR����S)�
�0�ț��Gݟ�֨.�=ߕ�T,�<6�u��Y�t���8O����M�>w��)�蚢cp�l�cA�g]���eXi
Bz�O�5&$���{�Q�_��Fo�1���2}�2�UD\k H��{#f
+4��o���/��
3���ŵ=M���������ڗ��K�1;e\���Pw�.���
z�c-��K�n���pٻ����FԤP� S;tѨ��/��/��{����|��=���W�0aWG��L�~ٴOk
5:��\�����a�܁�=;���*xq7
������/wү?�|�
��
L��S�c
+�ː%�쩌����ȓjf�]_����
f����{j�/.����������lVx�%3S78 �/O
O���&-��A67��L+�̺4خ��
}��@*�`���w�t���<E��-M� B)vNșGN���M�^d2��V��|5h���[2����
+�XZ�3��-�����
�V��k�6�������
S at ndA�3V�Zӷ���߆]\+Ad5J0.7]�c�dNI�Q]D���ڝ |F��3����d��r���(ݭ��)�k���qx�l)�kBHOfV��c�ꨊ��b��n����ƙT��Dn��4*�o �q�Qx at Fiρ�W��*ܾ�]�6�{�b��4 �\<���H�Ur镛��/9�EӘ�Syؠ	�ܭ����]�"��ߔ|�6�3��5��%���s�����+����-��=mN��r(��y7�}f��Q.<4�-�
�@���X�M/Cs�	��9@\:�&��� �U�U7���*ه#�˸թo�3��ɿ*��	tT���[~m��հ
3�r�K�� ��oqO�V'g�3���cB�`ޥ3�f�:�
w�,�iX`���˰�
�pg�o&4����r��/�A
��_{g�ֶ���O�� ���<���%��O�B6bl7!�!�<m�y?��;#ɛd��ӫ%��&���YΌ���sf��@��!w���$��C��'�SB�
+�A�ߞ9�?HTн���Ƙ*�~�C�>��u��F_��A��7�}=��ԕ&'��i�틃֟���o?XZ���I�N�J��[&&��Zo��D���>�b�>�|w������}ɕ�}za5*ï�ߎG8��!�X��{-Kb�h� �|��
��y<���Pó�����Hy���>��M���}�p��؛������>�O���Ɠ��^�MߞW�/C��������Y��D]Ɠ��=�X�ago|����M[���U�ל�w;_.~��/�Aa�F]��F�|5FbG��t���9�6�
�������/*�8}?H`f�͗����{{St��ʰ��v~��?�H��%:�H�?:Z�uzS�����D{�ʽ��2�͌����k���7��|]�e����o#_�#_;�#_��F�ʃ������3#_o��pa� �K�$��{zs>!]��}��R����Y�mm�,};y<��d�Y��xf�FGS�z2��	�
͠�k3�VW�����wl+xp�g��Vb�X\qs�l+1e<?N�
 [...]
�p�H������SݷZ�c���mx�>d�h����
L�)٥�����D��Qb��[+����e
+9?_M#U����Z(��碌�z��Nj�h|�}ȄƷ�nS���X ����B��
��ذ?^������tǶ��pw�t<E��xC�+7�߾��͓0+
��7w�(�ee�o��t�cu}wI��3�k��g��a"�Px���K�O�1[��?���~�C0z��g��h��������}�}fO
}�~�ۼ׏A������m1:����Xx1���Vj(�_7���<�e���u��\��7�Cv
�\�?7
���E	��Y���[w٣U��w��^���
.W�̭���Җ��y�(����ϭ_�@�[|���U�t����<�eWx�.�`�d��;��}z07\!�����W���
���|�E�������q�֋���Ƣ�G#����恥
*w>fv�'���dw`HG�8
o�Rf��g��
+i"��KG	
�e��|p=aH�����I�E�#���;�����c��̺��F�/Ks_�RK�=�0��p�P�����͡�_V�f7V��|@�߾�u0 �f�
���ƌ������Z�m�:����Hx�<|���П�����S��p6�c1j��������	��?���d�ĵ8u�UJ�?,
!\����g�B�l��;����������x�x�Ă���]����&��zF��cQ�H�>m�c����ɲၲ~����׷���k�t�~hͧ~��/g�N��N����ۑ<Vg���hi�=�y�z��q�z����Z�N?
�駳w���Bc7�$>kJ@�Vk���7J�m
v/���7��={���ia���ފa�����
�?�F������)�o,;�k��n�1�2��S&g϶�Y���YyC�N�4����Z��� O�7G+�y��������ʋW��
�-��;���!/s=
z'&{+��y������/;}��t���-��}���Y�g���M��z��H5F��q�jd�� �����.�z*0f�����
�m��*�as�K���'��(��?i at r�
x��;��;�t��
��̀!,�G���Q<<d����I��{�Ǥ$�ݸ��)��m�EӇ�d�;�U�c���꧃�6��bl�J?z3 ��-fk
+N��^�q�"Ǎ��/���g�����h�v�V_���u�u��m�_���
7ώڝ^t+���\��rz��<n��p���d���rZ�le@��k�����/�6��`;��Az��շ��/_�C=s�����Y�/g�7O���N2�	i�2��7V[���3� �᛿�y8)�|� ���EY��w)�������6D%{I_׳2��;K4�ﺞ�������{fv�l��z{{�z���ꇍ���j�Z�m�^���?��7����ǝ{�o�߯l����
��A�G����R
1J����1�g��Fc�����������?8>���xUhI�_���C���w����,ő��A8	&�[@� �$����������J����J������
�I�a�C@�`�����-%�p����P2'i��q@� ��6���
�Ij�?PrAG ���7e�8JEq�=�|
G�(�
}�8�RQ
��K�q���(t�L�Q*�c8��T
G�(���Rq
�<
�Ƈ���(�A��K�q���n��y�JDqLr�_�Q*��r.YZ���.���8JEqd��q
?�-�Q*�����q�Re�]V6��T�%��������8JEq��co:?�Ǧ��(�1���:���*}�d
G�(�!��8�Re�\&��TG�s�8�RQ
Cn��Uc�(�s��΋�(�q�/��GqL
+��0��T��hY"��GG���8JEq����8΍����F��FK��Qiᬺ"�^r���f|Ϗ3���E?�Kf݉y��Z��8~�G=��ԓ�4���O_�D�
��`��w7o���r�7�Q�t:��V/��o���w$Ha*wgmvZ��������Ƙ��*6�.���k������Э��7�b2V,����o&���_ς� |
xV��	��s�b�o�S2Q��
7���г:Y9����_��uHv1i���w���9d�l݈�/;�j�4��޼]^�7�ܸ��3�z���u�~�f�Q@��/f�\:ق��
%쬎�W���3�QHq���w�͵_�m��Τ�}g��د�}�
���3�gC����^{ςqd)��ョ��~o���[
��g����>�{~K���2��R!��i^��Òs|���z�X��㠷�
��<h���Э�zM��ɷ��dyd�bI��X�b֟�?t�ݰ�%;�2�ke%u6��6�f�Yz����S�g�Z/r35'���\it�����=�/���'럞��ģzc�Բ�7�1���6�mv=LWG���ʢ0�폧�H�����Hu�
.1�Hv��M���R�_��97�fE<�
��qz�4�
�%�i�������6Y�{�n<JFy��:��>����:�7��>���<N<,��52�=f�5o��b�>?
��q�>Q�߯�7�8�\M
J4z�1
���
7��y�f�=��v��{5�693wtZÎ���,��l��NH@��o��<n|owk<J�e����>��EBk|�t��^m>�F|!zܩ�h�Amv�����7{�ǝF�{t�.m?y�zk-�%����<��v!�[
�B�E1w)����>�kg���7�
+�YT'�,�f�\��8jouZ��/{����w�鹕No�q��8��|���Wp�;�<ć���g�Y�$z��E-*ɋZi�L4�m�^{}a-{�O:m��ɣ�����h�囍��n��k���::9����D�{J��rANo"ǿ�;�������{g��i��J���I5�����N"mmuz���W��I;�;��] wI�#R�m
�eb�ǭ���u��i��4����XM�64�
�7���\3����
�6'�[�n�s��q�h��7��]�k�����?�����v��~�@�̓z6���W�;�g�=Ԭ�y�wV?i5�_
����^|2��
����ޅ�?�S���\��Xm�]���['���u��U��_���_��`������B4������M��4u�=�T4؏}�G����y̤P��%{�
s̿_ʶ?����W
�;rk�B�C\�W�~�U�o޿��,��Lw��=>;9��R�u���|���8">)S���^��T��'~��2}'`L�q��U��ϳ���Y�f�W�3#���,c�J.�F8����f�C�v�)��(�]���RK�Q
ت�'5ᐟ��)a�*Zv1��^+n���b˔��y�!�bŕ^X�����J�K�ER�
eWNj�Q"͚Ա5����tQ:6FM-w�j|E�ɉ�W
+9�dt��id�,���(_s�'�b���u�@F9Ռ����+���Ԭ�]8�žH�d�k��z��/x)_�ߚ�h\!f���f��''�����*3�n~/5�&���:����T�;��zD��f��,S���U�M7��۲\���
����O�-�f��Ϳ~B���r�
��0�m�~��n�&�d
2̈8�8�9c�[���5��QBx��
+b�BĆY@�rVX`�Q��&��Y4��&��c�k�
1��3e
�MF U'���+�AH4k\��I'��׊���� B�>Ig�0"�BV9!�c|�i�*�;ʗ��8k�R���+��h���	�5�+�-5=�
+�+
�0���
+�+
�0���+��
ıdL�z�H�#�
ŅWR[
sѲ��g�bHtN9a �EBց�
c�l���u�X�-���Uj�� �;E"�&����"��ce�tL��S��tD��LI�
'�l�4"c�BV9!K/d<D��Q�4 Uaɮ�Y���V9d��NN(��\i�h�x�+����۟
o
�'a�ύ�*L[�KQ|���J��\[^=��*���i� +�
�[�� �9�-�� 66�s�҆i�s$��d')J����s'�#�T�7@?P��B*v�9���B�`b41WR*�M.�Ƞ�, Β5S��(ε�s2Z��DȀ��l
�΄
�Mxƕ�\
Y��rHJCE5Rj���` ;�Nk��A
8�xy�R�B��nb:Rqo��(�$�a��#[/c�OB/���m�[s�#�7�8f��>�w��(Bc/�O0�0
qh��I�a�r5nA}�
�U�τ8��*��(��sP�Dcq�F�8EE�T$�)�
���i�z�K4��|B:�ktL
������+ꮨ���1�Ǝ,?7u��6~SyE�W��/זW�������2*��nǔ	F�X	�~b&���ea��c�$�`.L� 9YK
i�eiw�@!P��@(�K���x%���j at aV�1�#L�؁!Aj�S@*EcZ ��dKИ�ɘi�cJ��(
�'�eR �$#vϕ&/����
��8�7����
�+�]��� 6��ʉ4ky��
+�a�0S���e7a=fE��V���P.w��Y)?�գ\�c�1��r�<�^�-�
�
+mc��+�fV�{N���ԵZY��-��mJqzT
l�+NH���s#�m�Bd�d&��(�"�c�����v�襚
�)�̉HP���

����"89cZz0�bN@gQ����[T���:��qcB�"
��CF� �#e�26�Jk$t�)�QN`��L>��~se���J�m\�mE�?9�
+.b����V�c�/�	��+��rmy�Ȗ�X�K|E����R,s
+$'
�-K���3��DX���Q,��>e9D�R��:f�2�KMA
+�q�*�0�<B�̡8-����4k
+l�Ev
4�M���ғ�R?�((M^d�R�)/cbƨ�� }}X�6VP/�,�L��ԂJ�D���rrB�0^��[jj��2�V�[A�O������+������s!7��� ����M���&[>�k�J+�*�
�A���
+��C0l��=�,�mĖe�n͓�9����x,�w�dSy��q��� ���Ʌ�Ri
+�u
�9�
I��f��H�p���Ƚ@�S䂔�R���)�T��1!2.c���A�x%�\a A���
�[��:�D(�x\79���s������a']E�
W4���p�P���E��B���ϡanc� ;a�_)w�b�>+0����
+�0� �[YA�"���H
t
"��Z&��)@�.S���	�
D ��4%�4��h�XNH����������תY+ұ����>��
+J�1}О�2/�,�ոj��N.���s�����V�*`����
+X+`����
+X���޻Z)C�&-����
hqIZ+����N
+�	��^q'bIHZ�
my�[���=��g\p/��1�l�ְ'��
�4�%�&�u��J�S�Z+�ў��3�X2/�e���d��U#��	�4w(�Ow� JM(��"�
��`���R��L0:I�Y�$(�N�z�I�H*�%+��$2��,+�<�P��EA[�i��
[���+C��h�P+	���B9���'����`6�A"�Tl���T<E'[�,
:@�EZagb���⃙�"-
*
��u��&�
+�,��iK�d��B!g1� �+7)
$�h�,�~k�&�TTaw��v�,�]m�Pa���jk�
+���n�a�)딗ɦ�:VD@�(�A�!n�K��c���"
H�|�KKa
"�Ц�� dF�Ć�� ��N&�X��
�q ��(J�
s�j�R�%L�ci�հ��6�����	y���y�mx%�Dwt
�IJ�8ҕ ui2�i�I�dZ+%i�6�K<٩�HR(&S�I���W2(�OV`��&Pn��X�_0RƂ�U��L�ĢަG�h��K\۠@�62����8&p�
�
M����	a>64M	mN�'gH�&-
���T�JȨ�[�ɍ�����W$D�`@��nB:
+�
+0���0����+2�ȼ"��+2�ȼ"�C�`"O�ʖ�� �b0-
�ƀ��3G1`"��񼐍i�1.��?ܓ�S 8��~�3D<
��y[/
�?0�_��/	�c:Ȃ���
+q9!�b�¦b*��PP���Z!���@=�����M�����b��+�1O��ʉ��v���u<^�)�jz��UTG����[
GWA����8�
+b/8�n|%�1
�a���v�L�Y���	�РC犄,��P���B�"�ZA[+h��4	
˩7j�IVLA;�iN�a�e
$XJ2
sƜB%��+����%/1V��Ѩ���
M��8pf�g�(&��˄�R*@cA�r�Z^1�dr����f��_E����׊_z~���+~�R�ZE%W�z���TRF8ƭW���<�����"|̃�ZK�q��������4F�)�)��0�i#2/r�4/0���	���LJ�Ʉh4
����L�-|� 
+�5�F�,�%�B����Q`+�1�,�ѝ���̴������$"
��D�]R+��.=.�$~�@�)�A�R:�&��¡�l���Y	M
ڄA�*�
�p�
m�F��PZW*lb�P +*Ia A��^Qq"b�D��(=�)+j@9�ӖOӡ��c��Ԝ��1$��IJ���*Gy|T�+�l���Z�s��=m�a�S��	�5 �dy����N��EeU�����ʫЈ�ʯ�W���K� gEK��/���
&{���կ0�p�PS�-���[��@gk��Q������0C���y�:)3c�uHK
B=�&i*	v#[Z*�
�<��]HK+!��dr
+��x`%^�2�� ! *m��
�g�v��}��\A�aaMѵ&p���g�- d�0n���0[��z9LHGA}"9�OQ_�T
~v���B�^RX��u�6Df�z�n�B�7
l�,�c�
�t�6�j�JO� I��0��G�G��1�a�!
i2��픁�Rhp�DEi*
}T���I�Qq���.*�ö��BB[
+�6��	�H48@x�&���oJ.�d����+.������+.����py>ڃV���5�B�a��"7O�	���
�E��
�t��)"Ge�K�}- � I�7{\pt\qX(f
Dº;���J#�pP�
���c��������V*Y�7&�b�\�kZ}�
+#m�ik&i#::W��H���M>����
3EK�@�꨼
+a+����
+����!l�Q!�9��B��L�b�I 8���hm���ψ��I-|o�L4�m�>E6���������R(s�����㳓#�-�
8��?��mPkǽ�2�>l�KU8}�g{��މ��k�+[z�A���:��rmv�y�s�U����>�6�ێ��q��k��N��>�
w����?�
+
��gg<[��?��px
endstream
endobj
38 0 obj
<</Length 65536>>stream
+%AI12_CompressedDatax���
��&�����{��+�HMGGԮK��ؖÒ=��P�ɒTc��.m���|��,캈��}��!�j�XX�[��~����W��~1��]��pvw}u{��N>�}������w��g���΄}��N����w}�����;�fo��%��������ݫ�����뻟�~�s|��
��w��ݾ��_���<78���W�ĝ�3���������ퟮ޿��|k�!��p�����n���nؽp�Θ~LJ����\��~��~�}��X�q�����`���frxܴ����{c����������o�����������g��o���;�����W�㛫ݿ^�~}�������?�.�� q����W�O��_]_��~�O8��{y��S���~g����~{�p��կ>���5&׹������=�����q���7�����{�
�;�����1`2������7��X����|��wo�����1c~?�~���9�îO's���k���w0{̱Ŵ�~��ahr΋�{3�����1����
�q�;;�6_�����n�����W�o��t�����ù�O��o~���۷7�cÏ�4_��}u�������|}%�$�Y�M'|su���=�����{��X�����Տ�w��zw������;�pn7L��������r��?���f�7ݗw�=����Xү�n��y�f�Tl��� [...]
�ɿ���~�{���M���wW��ON_�\���'�w��������ׯ�N.�^~��>��=v���W����W�+����˛;��w���rr��������,7��+���t������қt��t��ꜛ���r���6�{�ν]�{;�{�^�C:�C:��rjw�a>�����_ߝ��
^_���|�����{�Q��~Ij>�Çׯ��O�]�q��p�+�\�}��ט�;�
�۫����~��pN�ꚼ�$��������W�ߝ�^�|��������w�"on�~XN*�����ɛ�ǝ:������w׸���k��������G9�
+�������
��?�=�����Wo�WP��˫׸`��;0����5��}}������4��7�8���^^����8�Ė�wqrKy�
+�tr�F�'��)���?�=����᫛?ݐ@�I���_�߾��J+z���V�Tv����ܮ;����'���sn_�@d��}������
�8�����A"���D/V��&ʸ�_�"M͗��/����|җ餯�I_��W��U:��߮o����+������o�^ޑ�!B䴫��!ҖN;�;������>�y}��
�R�'/�p]�ͅ�f�?���=d�"��o�M]�}yK�����Y��D���,�,'$���N7�+��}s�����]w�fF��0��p�����W���xr��;l��W�×��0���3�p�a���\�~u��w'��'��n_}x	.p�;ޓ���q:�����W��L���{fg�pr��%��Oί_Y�2�b������w��<�5H�ۯ|���ߞ��oF��~�)�5փҢ�ջN`�_�W�rw��ݗo���~�p�)f��~����;�}x������@���W�.���>]#��
+��w?�O����s����3ή�E�ܼl=������w�x$����r�����~)��z��W����xÿ�3~�Q�ׯv_�����E�p��������'�> �;B�?����9
�?a�Փ7�2�v�Y������_��?��i� b�����
�|{�GNګ�E{�����W/�>��M��5���y
ҟ
��3�>{�k
+��y�f!��'��xx������<~����0���O/�������fL�=a����^�U��
��+��<����ݑ3��
+���7��
�}����?\���Q�3��o�)���ŋDt������Bq	x��ϕ�����ϻ��~vwx���s]��S��;���ow�(ZN9jhCRǝ��m�A�������w]S�k�`�-�;�ϓQ��
�WwW�����!j�n��p1H���}t�_��?
g������?3g�l8sg�l<
g�l:;=;;;?�8�<��͹=�ݹ?��y<��O��g��������Cw�.��x.��g?�p�������D

��G�>�̯
.���C�q�����y���S?��Nn��8�����t�Φ��b�<�Oͩ=
Nݩ?
O�i<�NOO�g�������?��=
w���0
N�4��Y����5>\�I5���
�
Z���!�p:
���|�.�h�Y78�]p�M��
����]b���y�G|�?��a_�˱�F3�q���q
c
��t<�g����2����c!�)��C8��_���Gm
��������q��
��)�	G�p��
��1�8
�����9��f��v�8�.N/@N 8춀=7b�y�?w1`+ZlH�m��آ���nƦ=`����y����?�iG��?�
�I~���22+l�|3���
۰?��1����1�`���2G�%b��Ss0`�朳m.yߎ�s�
8��Y���X��c���;܂�ZpU+�����l�
��������1��P
�ؑ������w/���	�BQ��(tv*I�$�
�#4}�w�R#��B'��c�#�#�1��t>�q��&�q�9.��#?k
+'R�i����ivX
�
Rx�4A
+����0�t��קŸ�[��)g��Z��M
y&���q�G?L�?��t�~��ζt9��}9������^�h>�_۸�I�/������p�����.����{�X�����@E;�g��7?�sw���>�i��
dXf��Se�����7�2��y�]��!��7>~E���o��C'=g1~��������v�����
+t��1�������w&��S�����
DP���@�z �1�����r�|
r���ѧ���?����q����3�����r89�tt����x�<
+����N"uy�A�'d�^�#�c��)�M<�w��^�r��\x
+�� �b�X/ ��0-��U8
R
X�
��~/ O�¡�P&`� ��a(z��
�3��)

�{F�)c!�zp�
 �3��) Sp��:O�q�|u��?ފ�]#����q=D����x-BZ��f�B�A*C��2
�r��
��
�t�L5������=�j�B G��B�AdZ��x	b���
A�1C�㽀!�����y�8�ah}A�
��fa{t���<��q�<2�w�|�5���q�:����r��UOA�!ѬI����:	�d/��x�?I���do�D��
ɨAqXˤ�{�F:Mq�6.��Ig
;
��p�!�>l����'�f�O:;�{ӏrfF[�i�}��>��d�0���1�踵���>N�M)�oĀ������8�`:��:\��aG�������ȫC��n��_��:4�c�}���Zl ���Yj3�_���9G3;�}�5��RQQ
%�t*�B�b)	&'z�:賀��ř�u0�NEUVWI`Y!�^ԋ
\It
DFS|Q�%F!�Ę턚z�M.�<;�@�F���%��6
6�7pqIȝ	�8� �(뒴��K�2O��Ƚ$���
1LY���w����m/�0	�s�KAS��A4K�F'ʢ���Lr����2�U��0o�>�΋L��4���%%R�]����b�0b�HV���'�&|6I1F\�"� ���h�0�$D&9Az��Ċ��C�ƒ��(��
�#��ӝ
�;]˓'�L�O at P���'DP��'DP�P�'DP�0�A=�3|"���~�����{����O�F�.�9��|>���0���?3%�ij���[�+{� [...]
+�� �K�l69:��
� }��`���L�A�\�͕
]��+;���ߕ<^��%^������tq��K>�S��g� $<���.c�#6��Wlx
�76	�>���,�	�/�W�g���u��M��u��}6�
-�-�+mwک��ґ-��w�b>.��s�:��5�Ϛlw��N�5�l
-�%�[O�J(���q�Oa�E3uMf>v�

+�^����
w_s��$���Y8�Z�����6�_�.;��GPGl
S���_O;�	oY�c�c�������l����m�k(�
m����
?�A��:����O�5�Tx��~�n����
װ�D;<�
 �
C�$g�`��a
��=%�i�_�7���B�"�����"��y҉ >|��ؓ�
|��r����=�Tf�(gy
;����<�i �=�d\�-(a�
��隟
	�x��1X��#Y��p�Q8En��E�
��y�\�ɭJk�:3��D�8h��69nGa2A4�(Z�]���{&|�\x�K�@�p!
����{�	K�–F�q���b
a�#
��:�E�#����3�#���Qp��u��Z�Q��fX��ζ�O�
U��>��v*�O
���Ss
�=��U�J�k�bq��Ϧ
+��M��'3�-�vO�ӯ�g0~�otr��"�S
�
�ۃ����g\���
�C�5t9��H���Su�&��9}�.>6u���a��[�R<^�B9�^ٝA�� 6:#�
@a�B]t����(��ɓ�:��"�)��C�Iہr9Ie��$��<.Ҹā΂Xâ灢�n6���hG
��
M��As.Q5�,��`�3y	�!n��SO=
�;.�B
m�D��'�r8�X�#t��� �)���#ѧ)��|�G)���cS
b:�tt�X�Kh�8(� ����tu
���Q���l�
.B��b���>~t�@ʏ;�y�;�';>߰:�`�Đd���rfI�𐙒���+�t!bo�D�Q�A�u�u�tI�%��D\pE�-�C�8lԆ�јu�8,��¶
+�r]�]!��
�2 ����l��ܵ�\��[k����pV��K|�yݙ0���/������L=�9����|0��t�|d�ɗ�r��
�x�����5��\�*��P5]n�A
�2dJ�F3���l���[�SO�s��y��N�9�����9�}����M>�AJ��iJ��i#��)'�z0��
;7#���}������clB��ٍ�ٍ�ٍ�ٍ�ٍ�ٍ�W5 ������G
K��l7�3��
�~��}��{��S��i�m.�
O�����TqB-���9�����f
좛m���T?��
�,��*�*��
���[��by��Ӎ��0�2�o|Xs e�W�
>m>��Wk�l��X@��|9��/b��6f����y>�s	�\�c���w
+:/I�����4��4̐����Y���v�1s��Ì�Ǭ����mZ��J{�%
�$ߧ4���-�ܢ�-�\� ^RCV�\'3\T�$P�J����iV�ΊR��醮��MY�u�"
�����(�O��P��k��n��c����F�vGjw
�z�����8R��	�����Cw�����72_�Tgd�{,�}�3�\��!�@Ob�w.Hze��Ag�3.�8��Դ(M�(�bQ���q���Ake��?~\
;��N�b棭ʓ�[�+G��*A��Gh
�]�,fcC�jѻ>ۣ��j��p��	tG��c��2���씕�ν��ڟ66��
+e�Ɵd��6�(e��E�6�I٤ G�Y�2J5�Q��
+!U��%R��z Iy)u�ʫ�B�%���nN(�s��]%��T��9]�$암�%iO��:��[g�s���{�
+�J�S��9����w4�o]
a���U�|?�œʷͯw���о9�㒩�x'�N�x�����>N��b0P�gBhx�p�G�r۬]b�&��QR�xQ�uY���V�
��?.��It�y�s�
I{=�>ăd��J�EEUK�;^H�h�Ñ
+*�'P1K9�T65T�U���J)�f��o
+����,
+R��W��U����sV\�9N������R��|�J�Z�)q��fK¶��,�k��Q����>R<�x��s��ᡣFQO>r F3a�#RJ��j'���m��:m|�8������%}�$���iU�`�a���N<|��!K��z���\���A�Z)]��T'�C�T������A\U0E9���
�$��:�Z�M=���i0�r���� �9㸛Ӎ�I����Q��7��+R��T���$H�����=��=
2�>P��;�E|�����������øvɯ��-+�b�P����_�0S��_�<Kر�,<پ�U
��ֻټ���a��﬜�b��6&���gm�YzZ�{��{����m�I~��?;�#^��?��Wn{��ȬXO�!,&�NP���/�U�V�O�&hU���Y�uM����6u�Zq�
�T���v�4Ԇ���cF5�3Ä.
;��Oi�u�����.]��j����R)�c�u��9����
+4��
򔓓�����h��R�r؃�D�����rv.
6�@���waV��U��Q*��[*>]UfǢ=R�&�	|Z�G7����m1����ú���SR�ҽ���{�i}�#g|��5�
+���Z0Z;��+�
I��ɾ�'�	=��ݵb���!]acj��8�ʠ�6��
h� ��eU���[�tM��=lm	�Fb���$���X͡S��z0,*J�	!QF?u�S�,�Ĩ����&��#�	>Ux�q��F&�o��,�J����q��i�ç��C6s)�����;:�
1����rS/Nꢥ,z��U�_L���b1�WD�}z��;o��*OD]
+6��|�^�ɔ��N�q�
�&MiS~"��*�6	�i�
]�&]�U}T�n⦅0囌��=(��Wy
s�]�/G�A&��1��Z�,� �g
Ͼa*��<{ܣ���oL��}9R�T�-|Keި��G��q�k\
�&
!W����,0�����{�0����k���m�^J�(	�� �%�����b�Ϲ(w9(�h� =���
���Ϲ(w<Aj5x���2�w��
��fϹ��UpRp-X��1�B�&
+͊fO9��xOSc�`>'�|N��� �9�s�_C7�{�����	0?��|N��d��s����	0�`>'�|N���	0~�g�g�5�5�S`����f�O�9?r\<�P�Һ�����V��Z�_����w�>�U�3�;˥��ּ3#4s��p�n�ǹ���[L{�׬q<֭���
�w�����ϛ����g�֚6���5AWs�͆mO?T�Nٍt�JmGZ��hkR�H�JMQ�]�7��m
�+Ṧ�-��M�W��g���sޤ��n�
tX�3�\t+�j�P��r.��t��E��v5���՚��l���2nm����F�S��㹎�8
�ѩ0���,q����Q�5)t[JP����Ad�]�E��
��5��*�q�W6|�t����ɟf#=j
}Z�K�"Y�,��om�mm�i����M�`dﵷ�_zn����[j�&B
7����28#�*F?�bK�w]�S��}OZ��G�6�0 �1�rե�ɗ|
>j�����ѳ�B݃8�FA[�F u�
{�l����>^�m9XWI�ؐb�K��
�'�^7#��*TE'6��#�P�2?#���Vp���P	=�U�(�{���{ u+�w

���t
+9o��1�ܖ �ncV8�����OQ�g
+�P���1;~�����*Ҁ�{Ҕs,�ҵq�1�"��,�ʘt�)���$:T� ��o���5t+�&�a��4dc�-��,�ODO4�?�~"�Q�އ��q��
+�tG��O�s�
�(+�o����=�?�v-c�/�x�I����\L�D#�$�c��ϼ�ix����yxi���R�Fo$Z��O��x9�O�>�|��7�|ÿ�
�M�c,n��eS�k��L-~��
+��
5��梎Y�B��S6���L�������Z����:�q����c�D2�X��X�KDc�=§U\��H��o��
��7֑v��nN%^'o��ѭ�O>
��
���iԹ�G��Ӟ~�׽�9��ݢ<v�Җ���/MY���]��r�S�(
YJ��ӹ_����dzXt���5�:�nY��ǃ�֖������]�(mW�MWJ��U����J�g��mV�+9�a鮲tVYwUYwT��T�U'�m��RwMi5JY5F�t7����%�.�����q�>:��G�t�~Z���>q ���
׉Rs���$�`�;:��{ɾ����P+�g\���;�&o�U)�̽UF�/F��ڼ
�F�mV�gl��+P�����N�q}}�ߨ�K
�z�I��8��ƪ��%g,�<�t?���Z��e=W�T�>Lf�b��I)�%�p����<g���7����;��z�GL��ϵ�BR��s�ܔS���
��Ը��sJ���p}΄;+Yp�$�y)�ǒx���;�x�R��U���x5���r^%������\��ϕ$��vW�ܵ���E1:U#<�.�\62��ꪑ�jFV%#���R1r�e����w�dz2{��1>��W�o}w������/^��{�E��w�fH��������-��������נ���θqώz��6:�3&�C�������"��8@���
��M��@!��ʿ��s���� ��<���(�O����1%�_�����W��ߐ[��P?j�g=�B�_��*��E�A~ټ�[�wrzw~�������ݏ�/��
no_�~v�e��o/^����}{ O��|�����os���� [...]
+.ޓv$�jd�w�����Kr
�����
�{�'7
+`��Up� $��!-0��u��D
+��B�@;`$.��g��H'��~����a�
��c��iL؂���z� %�MX|| ���� �Ļ�Af�lm.?�"��u`_
+<@OP�{�&
����\!8q32V�d{�9��	3b{b� X�j�@c��m���
���$L�`z쁴�z<8 e`O[��
��~ĺ`x����W
f��9�
<�~�����3қX\�3FlF�I(
�S��"O�#�:8X+
3�&P��-8&q%����� Հ��
����
������-d	��b�\��;�A�x��F��1��E�+��8ar#�
+
+��=�H�
F�3���ƃG|,Or��&6|
P^�'�
Sz��܀ �=v/&��CzcmA�n��ޜ�"�`����&����@�
8D�d�%#����a�&4��A^��(,�E�D,��	��a�S�z�<,#�N|��0<
�3�e�lj
g�1�}H���ZZ�
	�;|�x@�>:~�C�3@�Ӄ������~�4sN`�XǍ������+ at pLa�0B��NH#�RO4]
=��2_�`"���0u�s����84�N`���\�A���8+�*Jf�G��&�LC�#70�FăH�£�0�^^4�x����;�!���Ŵk޽��w�7l�j�ES
+�"�Bm @*c��V�� *@P�K���;|�g�����|�u�{�	��v���4�@e�V?���)kD���'\����8�����h��#�
+Pд�=��


<���`�=���
 �`�r

T�
�

-�d�
#`�8D(��5��^�[[p5<o���!�����c��!�4�b[O
@U`��^�g
>���8P
��������
�
1��}'�ph��߻�_����޽)��l�9J'���z�˫���������N�,��7��޽I_e�
�����ߞ~9}����G ����6�߿*�m?}����|����|��������A�|.��D@�f�l���p3�����pE�T ��,�
b
`��BC���t�ہ�;�W��#���"Hs���=�W��D�U�=ہo�<�n�� ,A]�v�R
�h�
P���vP�p��nW_&
+�p;�"�`�6rW���u���A�t[J���|�a೰k��w����*�&�:�r�H.�z�d� 1�N;�؊S
,.�S�N�\������C�mH�S�XuNi�G+h����/
���Ƽ�4c�a��
��
��P�B;�9�ö������I��C�dt{X,1�X8N\@��:B��|�n��d=�B7�P~ �ӫ8�e .Ȣ�0M��I.�"���R���K'<�;�	�ڞ�T�3�`b����eF�4����Q	=�
��
F���q.)�
h6��=ʔ&
����%�	�
+�w�q�)�����
\S�:C��)�
h�V�t;�/O�� L
����'
P5��	�
+�B�դA���܎|m�L� ��X
�c��(Uq+,9���
+l�`�U0��%'nC�	n��s����f�����v&�O
� �E�s�x/��x�bi@������,.8�!�#*|�kb�P���ys������qC�]�e�~����X�j���C��U|Ȓ�;�8�}^  �]E�[DH
+��z
�+J}�A1ɂ����_��-q*�
�#�~
�6�����~�w��xǦ��h�2i��eGj�_��@S��@>�
�w�iGh�8P9`9c|�]^G�>���dē��	�)R=�Hꄜ��'���	����<�P9��	�X.8�38`2+`�n��G1DP*�O�
����'-�	�
��&�
�e3ͺ	`��)��胝@6D͘
�lr<��܀=����?XxK��W���0���8β�-�ձ0���Ց�'�(�	������`�E�E��>�	�-�Kg����
��a�6	.��z
��(���Ka5�b>TX:�a��\�@)�54
@
h���+"�|�2� �Hm�<���At�S�J=jt��/p��@ƎA�P�^��F�'�	Z�ȡB��
�5N=ƀ�����zy	ܖ�(����3/{�3�nh�I2�$��Q�q��.�F+�Ȏ4�L�.4��� �|Y8��T�?8��0�

�R�0��
V}�
�9��ȁn��4�[N�B�2{Z�@w`� �:�8�&�B$ [...]
��͠��f`�
�q.-
˾ǎ�m
+�B
���P��P6&��HN����
+�2?e�x��4��xq��<�k [��N�e���u��]���Ms��r�G�6,�TA
#cj����-=m�̐Sg~�!U
�>�7\Jޜ��7�NWx����`��pC>��<��L�5����`�
铭$���¡=픀�$�n��� {:_h�t�̢�:��
+8+�Ex𩁶FZ5動ȁ\�q�K�9�TAE+>�_�q�E���c��@�����ʊ3���q���b��,��X�-�k������md�'�0|s�o��,�}A�` cÌh
v�M�{0�8��
�p��J�)ha(A �s�(�wp`���O�~3�!�b�Q&�vI�
+��魱�6��t
�ٸla;��)?��
#��
oA�l���H��$

�3�H�S������53vT_�����T��i6�K�Tْ��f�60��>2xF�A>f��u /��\A��Y��ܥ4(�7
eA��7��@��*k��/@^��A^��@��[O��)_i!� 2
�����Vb t�,�	{BZ3�@tz%ў�@ZEU�./^d�_a�`qp����b�f��ӎ�q�qw,oQ��u"�c$��m=�sC`F��z]�G�x8�E�m�yE�`�}��-��p����٬��*L<����Y�nm��h��>c��uӃ��Ѓ	TꊚF�
�>�4ᆍn�߀���
@߅L'$�!�-��O���P�v������e#
&�qt�
�.V
ro,x��v7Z��
u,f�[Z��X����%I;gS�E�1��_
+g)�pv6���
�4D�a6Q t��Ol�2
ѷ��'8����ě�,-)�%�@E��@�;ȴ�YK]U�a�
�h1����Fi���q�(u�aN��B�#Cb6=/��
.:}յm0�
Vu ���
8	L{2�X�zL4����H�ԭ��(�Ǹ�֘���M�Z��E���4���F�� *�G�
b����
B��

g4�ZJ���5�8�`��b"#��1���F�A�>���3v�	;�x�kh2��{:w�L�u r�Nӑ�Cl5lk/l�������R+�
BZ�� ��\��A
���D#��%{�
㈢�h�8/�l����(�Ϡv=}�f���1����-KlӉV?�Հ��'�"=@��
+ٳ����L
&�CG�Fέ&Ԏ{�e2�
�h��Z
:���O�����AK|�e
&M
� �ׁ7eʨ)l����
��
VĉW��L�������3��m�/��^o
����cvjw����p��f����
��t�8o��f'�Ok	f��]atI}���@
ëPz�ۅ�7
�x�k�O���L*�E������5���Gك20�cO}���v��R1[C�6�y�v5��
�
4�OqK�ˆ�3��M"���)	A�
UW:d��
V
eV6R	���t�5�y���<��:P竄���	Q�7�ƛ�	*	j����@��Ǟ����4����1�e�a��Q8_<��<���|+x�3F$�8�N{�&O�r
G
R8�h��
�ˑ�۸P`f
���a 
՘5�Gq3��i������z6A���
�
n���Љ���fW6�l��Fl�]
�M��5�e��)�Ií/0�B��������+�K� ��h|�!��!��:^�kF&L2���4G����QÝ���X'�_l��g��
�18< ��^��j˄�<.�M��:�e���F�'�@
w�y3�!���E��T�Fqb
�C`��Z�gԺ
�!��Ę䙩֪ Y
W��李bj됮�&�������g��pD�L�_�CNf��~%�S:%�V�ɞh/{e�Y��dŒ�},�vJk����PQt�J�'��� Ok��M��$�3N�
+���
���35�!jc#E
?��� �BS��$�IH8�%��v�X����c1���faq
����
:<���g8���Afb4�Nُpc�3'����2���a�����e0���X� ?����w�
	��f �6��
[�2��,=����9��DJ��)C
�
�D��(�2��D��<���6h\R��'��ٚ��"	1A
|�6H��0�30�.��ʄ��YX=�I�7
�6h�)gh�4����kcq�, at A�BE(����b=R
)'C���W"D�L�)ث��6�g�POܪL̉�SL�Qi
���O��g��o3
x��9�D]�4��H6�ڠ.0�J$�gt�occ�glf
+d
�2�ڔ/q�
���֗�@�c��%�2�ʉ��O�Ũ�i��T�H�N�S�q�`�	F �e�e�v{X�*�$����
N�@��,&�Da���P�v�!�J�=&�4�Bܥ��

Dfg���=
e,mG�p햂�7&N��OڛJv
 <1	 ��r�շ�
��E�������?=�����"�ñ��rL*�(��&M�gE��;Zӱ�6��Ǫ-U{rծT��#�{�F.�A��[Q^�&{RNo�政\���do�Y�W�Z���W!Mɡ"
+j�c���
-ɧ j	�C'j�/ֲ[�kԢ_Ez(��E�0Dř(8S"S
+ Ra,M���`S�3����&�S1;
+G�(��<UH��g����{U����ת���.qO
+��h���B��
����.����:��S��
+/S��>����*u�D�)E��k���;��������ЛgUj�
+6T{����U���K
!�l:Ҳe�Hљ����8��Dŀ6M0*�T�rT�2���+#��tU6($��X*ƶiS!�ʚ��{�EN	�,{*Ƹ����bPT!�-s�
+�.�LB���%�iD����-��w+3�
+
+oY�UDy1%�!����W&l��
�*`^�U�}�����I_E�o��h:��SBe&(džJlh:HT^���܊�5�s4Z.��X�Y"-��*W���蘣
d�U�&�*Yb&���^��:e ��>������'�b�}�ʁ�Ӑ:o,
7��#�Yi!2��hw�`H��!���\�83�U�u�dj�bZ$ ��-0U�q��P�1�uhkab���)�f
+�1>�Lﵿ4�a�9�=-o��"F4U.�X��Z}U���O�}�j ���esj������-����$�y����]�D�m�H���+�,�����jo� ������S����R�{MO+�@?t�\5��Y
+�<%m��62_�Q�"�q�}I<�%U<h"Ve��*��:��G��KdI3@��� ����`|`
+q;�,����D��	b����0� �@g
_�2�wd�]�M��
�l�����
Pp
Soy�z����Y�q����#(dy �D(2��92��	V��]?�1ps�1 ^@\�7�xJ�-9)ˠ,�
�iX0i��+A&��G�
%�2���H����_s��,:tXH��}��(|���p�"$8�K͖	�����J�2�
��L��ˎ�
�|��6�Sϥ~�����gbn�uVK� aF��q�]x�4C�
{цj�Cϡg��@�`�d],H1����i���b�
ǚ�pa�zU�Q��R���d��h�WW
[�A���HZBCψ����Z����3�=�wk�i�v��V_
��<��.�H��f���+��u��b4�sj���eSP�3yS�>RLC��J����z���
���l��5Z�-�>@�{��6f�0�A�*_��5Ъ)�e
R<�ѡP�R��@�

�bn�1NVhB c�<�
)'f�6�x�O1i�q�b�
��5h
������N��,q��FM�VS�ƃ$`��:cS
,�l��
t!70Z�`��B�c2o�7N�j
+���Z��Z
�ʣ��X����D��hSM����a
��gSm�e���%hz�IW.���c���J\��z���/԰�
�I��"�<#�
����'�72�9G@@�H0
�u��Θ��,E�1��X ڑ�Qd��je���F�3��c����.�!�q%>4��"ʔԯ�
ڵG�����bZ3A7� ��\���=�c�&��Z�³��"B9I֔jQ�;���PE|� d�RS��� ���A&��Os5@�%jS$�XE�C�]��j�O
_O�=��S�8O�+t
Z��];���%
�
N1j�=��
�����&��_؎�<=	��%�?��
�J=�0;��Tam�����D�,l� �1��.Ѹ$
a��a�L=e
g��`��̷�<j���

X�5J9�[`}8��e��)1��%����w[n�� �x�a��4��[%��{g�f�h,
e�U{��a��@�
���D


f�]
>��"X
�}�o���	(��c��URY0��p׬j���r�cj&�|9�l�)�]�����
j�P/�0�2jAբ-�jj�B��H-|��K%����p@���[[UÒz�G4�p��&�j�f����k�8�g��R$���_���>�B��v,��Xgo����I��P������ϳ�̆�*�,�z
+#]�UtK�)e�n���!+�Z"v��hQ�VK�ᑾDlz�R��:���10�M���eӚ��ed*]rP���F������6c�$v�H�H�ud�g�J�,F�ڤ���
+
&-�1ݏȖ��
}g�A�A�+�I
N���Z�Y�<8:�����٧��G��#$H�"`�$d]VV���eAO��2�+F��Sd�\HN
.=�1��1J��u|n10��!�!� dD����G�.Kmb- 3CwGJ'u��U����\~
k�Ij�#L��%�_"�8ѽf�$��(j3�r
�΁�
�cl^A�6!A&J��oq91@ފ.�bLM.�A
���RZx�!
cY�Ru��|���J���A
+u
�h���4=�R�D��9c��
g�Jsb��Ә�S�$-�_�
�3���κ't�ր ��7�L ��Ȉ�i���K �y� ��*� �~�A�Iy��;L�.��(�s=�|�e�0ƥM�;
��~M
}���<��(�>
+Ќo�p�Jr.�2I$ #�0�L� �h�
�
d��a҃%Y窜��Y��䏌��
�e9���u9[��4���W�?v�"
Al�M}�
���A��R�� xbH9��h�p����P�Pg
��H)��b2����P��S�
�/j���a��S��#&tC�
�͓U
W4S��T�*2�@�M�
�x��܏���
����?��&gU�@�ؘ\�U��A��3YS����
f�b2H��%�
T4�� �{��p8�D����
� '��%f�1fHU��
�C��YaJ��>�%�؏�70b*`��]����Z"�ևe8K�� ����j� 2�$��$Ø�����L1��ZKǒ)�`i��>5��Ð@�a<J��Xn�Ql
"f$�*rd�l��\��R��B��{aFf� i\%6
+��Hn�`�@L�
+��
������KR��Q�X��g8cʒ��%�*'����U���>G��Ād�WIϩד�6�8���[�n3�۰aMlГI!lxU��Y�mɒa��=�"�M�=]�
2ü]�L��u�.��4�����7�~�z���Ts
+=75�Q�[��*)��[�ME/����N��~����(��#Z^�̗��������W�18Յ�Y7�s���
_�����@H��2C!%ϼ�@�j��&�� ���3@�iϒ�-G�F7M R�� Ńf�4�I4=�
)��h�@�� 
B~F;�	lc��QIa4��M�UX�d��
�n��W!
ͮ	Q7M�>M�9�^	��7Bh�H�0=Y6�`'ډ�&	���gQ�F����: Go�=,#��HR��=h.`
�?��]W�H��A!a���mD�af���֭x_ ֞�%~՝�3J�0�#1����G
�a��A�F��}�dtk�bP2ST�8��
	�g�50v5�	ҩD4ىe�-
�zOR�
�%�D�,�J`�瘴�{%X�Oi��'�}O�&MŹ¿e�
�����3�Fd�LU�K��b�%�����:o 2�' W����K|��$[�Ia���9bd�̥��,[�\�Y���Y�T̤[;;`p��х��=��]�%
�W���O58p
��"UA��v1;6�����}�v	u�3f'&�D| <w�v�HV�"� A���2�Ј�ׄA�=��D��vƼ�71":�gL9�D��A�������Ŷ�w��Lc%1��F�3�8-A�#��}�hҴd�NZ$������+}����	�L�h�=��1�h��g���R�FaJ3�@��g�1d���Ԯ�EZ�Ϭ�E`�$$�eG��񙕸
&�R7���j|�P�4)Иzr�V�3��%�9�I�u�3�l5�QBښq�
˘��dӭ(�Z�τJ��X�G��D���3�
+�s�3����j���r���nx� U)�Q�9cB+�[S0�t���E��E�$շjsf��`�49�Q^��r��o��0;
�r�,#�Q����1s�;Im�]θ�b!]\^4�匣c��nF;.��H;.�:uw�G�G��|�D��@ȋ��
f��w��g0��VR
+D�*dʟ����s�j��g����@Y��+0�
j��2:7h��$;����Zo�5����hi��l�_C�6�X���Pe�� �u���-l�†e� 'j��/^WO��W�	cFP��h{5L����yL诽)#��༠��aT����3m����ɓ0$Y�ʫ!��dH��H׳�j�A��B�̘�j�
+��I�
,^
jj�ZDM��޳W��;mN&�۶W��)Ry6�N{5�CɲK{N�D���o����x���)>�d��~�xB�)H�
�l쥌lå�/4��I�b!-+b������ Y%�10#g8��a�S��T�ʙ�
��~l|\o+W��c?ݕ�n*fb
+��f�ة�TLp� �
�z]��JT^O� .�
+��0F�ܞ�
7���Ɖ�K1dB9��cS�0�O�'ԙ�ٛ!b���R���1�`�~2sqg��^� �&�)	��% 耥�Jib�Nd��KLPE�!So��)�ݪ�g*aMp=��Ű�ѸD3fd�������&��s�m�l @�����N7MJ�6��1�~S�[�	m�RQ&u9�����
+�V��T��@K��6����1k1�R�j�8_*&S/M�X�$�D���D�VQt�=�2��0T��"�F�Ÿ�cV��_ʵ�vNT!���N��S�I�\>�R�`���L-�)/���E�R)Yo��Ԭ�m
+��
譐ʄl�[��F$��2��;��� 
6\$�3X�
?�{,
1�"'
b�r��zҳ������6�o�CNz4��ppB� �.-�9dnI=K]���u+�e�-Y����huܪ�sV��X�yشT�1�d���2]�k?�n�,V�^�w(��^�-��\�A��|5>�5I"ӡ�='8ui��h�.}�XjgP
%��#-������{�\a��U?
)�C�
[�Gv��]4�I��//��r�
RX""+����bb��;�
e����q]��x춡W�::$BH�	s7ysZ���,vP��0�o�-�"6MK�L��8���[�����J
+����(��[᥆
E�i�"�,b�G�P/mX�dE����ܚ�q
u"�oX�ijٺ�
� �v�*����(-��
Q�$�c^���[����F�
�m
��{�L�Ui���p���
�%��MS
.�r
����V0$���;ܖ��=�9�K%�a��6b|����#G�.��ln���
����AI�Q7�X�K�!�u��,�f��PL�?��|[��uk#�]�6�������!�LQ?$�(�����^7m���K��0Q�c�^M�A~�x�=����ݝX�H�>jL ��P��E�����I���s�J���x�<Vʄ�Bu�fU�W�,�E�]�r{+�-��XF8��+a�uش�2�rb�%��R�? Ke�B*+R��u�/�-�ԗ���2��>�K�Sj#F��LPOf
��u�ޗd`-�R��ج�Gfj������Ǜw���G�3Y��`��C'Cb�Ve��v���^�ai;ư��
+��T%\ڎIr
�54C�a��,�&�b� ����3 at D��ᒯ�Ʌ�^lX�bCb����f�W
a�h
+&�a�&�d*�Ou��M�frr`���7k?���B��Nd1
F�]+Rs�w7
pLSY��8�.|��,�@���@L�����D�-�[q� }�y�
��3��D���"w�ki�L4,]
)��M�G�u1%�搘�ia�q�m8��h�NIot�;�����C6�.�]�g����4K9�q#'�8
OSP2�\����[fB�
�H�y�4�O�Rws�.��
I��u��]k IjxB)�t��^a
G��jN��j�0f�2*�����
k��7FH]
WP��,_p�9?6*��.H��b��/g�G�A�C�A��AP�(/T��6���K�-Ϋ�u��i}>����_�H��/l��JrL3�эl���r2n�
�?�&M��wA��(a�+`�Kǵ������鴜�	f�
���|�E��}^ށ���=�lp#\B|fU��O��5Ͱ�r�82��!�ti�˰�0�jX�o�̈�Y8�hnTi_�yXP�,�&8I�@S4Fj�"���3��n&��f%�1�=�ά�F)hl7�/tFy��j��~o�[.1����iY%�(���^*_����5H��uq�^��rn6>��bg���y��
��-W�(�� ��)�c�ⰱz��.����սi�)� ;�ҵݥ��4|��k��!�my�	�\1a��ʠD�(���03��
դLU��憥(�=y�m��D�t�b�N�J� �0Gj\1>�1�.�%��˥��FVC��}g�=�l�0�.��a�?IZUz���ͧ�R�~�sTy�Vè�ݫ*l�[����Pe.��q�
+4[@�eӍ����~O���2ݨr{3�Օ�4��*��d�
+���k
���.U�w��tX��*���o���|Q.�XX�.��F�d�1��d�E�e�[������Z����13�l�W�
U��,�WwS�|��D)3uU5�p�Rg�H�Vq�"LJE�"l��ZT�*���
+�f9�J��٬ [�* �D�*B�E������m
%T�\D�Ex�Q�|*u�g��*��*=���*_��^�
�‰��TSdn��(��8�*] q�
+F7
T+��\+ _W��'�
+m���E�P����Ҭ��
U{\�G�~y֩Z�ϋ��J�=M[�t�f�#����J�lv:R�h�7��VU�>�ͪ�E�K�'MY���ju��~�����IGW���>��
�Tݔ��TC�lNش1����&�	���ua6y�^
�i�n��*�^�,�zNC�jWQ�>�f�@��cC�j���O�
�x�Z}sWi�lc��"Ţ�:�(\�ܤ6�:�(�_�gE�
��,�ű��E�+Uke�,]e���يF�WUKm�����3Z�u�Y���AYǢU��f� e�V�Q�q�&���Yjfj������d�*���ȕ�A�G�h���p��Z�F�׎�榩�2j��
�ykP{�Wޤ�s��'�k*�U�e՞/����LqM�sk�\�S
[9��/.¶��
�J�Od�P�mْk��Y�E�/�%����욭e�r�*q�|�M��\�
+j(/t'�w݄4���r�gU;ڛ�K��hS
���T\@����*�1f
���*�B4Э� FVA-��"0<W��ױmU�
�*G6�JJ����/k
��{�JV
6�V������:O9��w�j��
+3�*p
��V��'}�:<J��*̪i
���f�B
ץ�uXXۮQG�i�H
��M,u\��@�c�YGE�i�P��k�T���Gա}ʐ�#[v0`X��Tdb���xƖ�NECK���T��:��iY�C7�]R}*���mDU�i����TenU�+�
+�Uv]?�L�*��iPVѻ�
��[�
7�����j^ⓕ�]E57��*(ZY�u`u� ��-�����G�.�O+?�
����u^{8X����L�m���J���f#��h(dū(��N;f,]��D�����n
f�K
����A{�H�9�x�)�C�8*AV�Q

wT|⫪|X�&$n�F!��7��y)\��fV�Z��`�T�
�$�|�6�O��v�9��o~�V��yl�oQOM�=������kS{?�����Tj׫���Uĺv�֤^��z��^�dz!�ڟK��D�-F6�Hq.K�,R\R^�0�����l��LJp�F�ң�l�*H��mC 
���@��i
�&�u�	+�;
+N�{U_\u��/Pw��iu����&��rtM>Sr����-m����/�v=�>���ϛm��_=I%�
�3�Ug4Z����<D>��3�(3��>�
[m���(��!1|�>y
+�+
����	�E��L�Ӷ1���
�ڇAᲾ��$՘#��:Bl4�(L�^?cj��)7�\��)�W���K�����_΃��J=S�9��Ws�U�
�ei���Bi£�X��y����g��j�3���4�N괣��?O�啫�y��sd�>s���hz
�-��ɔʘ���#����*���5h�
E/�i1��
4Mu<-o}�/Mɰ�Ȏ��Bӟ��J%�/)ՕW�,��W��_��G�T����I��M�6�#�x���+|��_d��;�$;'����v��ܯn C�G*#�g��hB�q�2bi���jfó��y���T/
1��#�Mhc�
��ǭv<<KB(n6�F;
΀�UF�W1S�]�3`�/��ʱ�zLL��2�����`6Ű��LOV���2��$uG���,q�ɪ��"�|_Ϛ�
:aI��h_:ҤG���:
�Pˈ	Ψ������[�R.�}�9���0��p����b�Y�!���[��x� ��a
�DZ���Rĭx�Hx�F`[7�8~U���q�z�V�=��������^���E/h���B�T�&�Vk5غË��I���
3jO��4j7֭l�n��Q̡t�Q|���QliոG1����ΏQ����-��f�>OO-6��ĈZ%�Բ*�֤%�)񪨳H�&q+�6�j���67�,j��:0zل`�>=XHٷ
�e ��>=����$-r�-��5���D�R8n�lO_�0�j�tEJ�1�Ԧ�ͪN}*QMƨ>w�m��:�
C�.f'U7߈Y���R
�!^��w~[�_�"{�u���� N�q,��&L��%?��\�׈c|1$7��EuU)�(̪�#A#�U���R��ˇ<�CR:T��Ke���1D�a
YB�m���<�(�Ԙ4z�$�
c�6sN{�(���ƊIm8�I'���؎E�I�j8�$�0��y���h� [...]
,��;ˍ
��ZN�<Iu��� p��fϫ�r,c	"Ɠ|74Z˱A�?�젴{V���N�� 5�>B�e���4��h4j��c���}	=�'�~s��K�}&�MQ��$wJ�&p�}��\�{κ��7'�m�*ֳ,����#��+%�Y
˖�.�ܯ[���
�6��EF�M

i���Id38�g���bs���^l?j+#c_�,��
+�`h��~s�
e/�����!��!J����d����`3���>�K�9�|�:�r�v68F&�^}�ً!IR(D'_����~v8��|���on�x�ߺ�k���0�t�X��@�	�A,�W�$Ӏ�
64�~��l�Ԥ�(�����f Y�z�3h
�l�B#�@K3�!�=8Fb0 �� ��!Q�Jsp�?�ȓ�	�'��
)B�C�5�c�`cr^y��pf��.&�Y��f�!�
����2�� �"�v�;���;�
@i`�	h�<q`nٟ5���ݣ�XZ x�j��^3J��������'-��̋�@K�H����&B�ۛ ����aG�
ۤx
��\f�S�Ⱥ��1�!@�R���"�:̛5� C���}�*A�lB��Z��8ݱ]s�
h|���^8��U��=�r��:
��4��E�ɜ,�<Ҹl�+H�T�} ��Yxb�()�&�?+�I��7WgqN�@��pc�����4j
e2�C�pC �-�ʒ�qtl�$����6��F,����x'���FF���OYlY�
(�e�=�?
F�h�QQ���b	R�3;1Yײ��0��I�S�����3Rؓ���Dbؙ5����$��
�$��j��c����IF�Ec�v�kDz 
Z��|%P����9N
Œ���  �K1S��BSe��|
M��7�/�&v�o��Y
+��R�
�n���,Ҵâ�!���7��R��N�X�keq�����R�Z1��1��v�����M�,l�	Qb�b���RO/�_�R�Dp08��F�
Tp��7[˔�qL�
[�xn�A����� 
��
��1�j?�Z�{R_;Ą��%&"�qLm���
�}���4as|�@H��Gፆ�&�
+f.1��>�XP�0h˗�ҍ��U$� o�(
+
���Ȧ�`
贘V y���f������j��lG��G��XB�=t�
I�º�A��� �4�Xˌ��FuV��39��J�
+Ʒ���,�SB
��1�
�X
��cF�Ȁaמ��;�YZ����v �`����y��G07,+8�RS�
"(��o�x*��#S!%L;ÿ�$P�ސ
w���2������%�Y�Lff�a�^�S�ҿ��:�'
�
,��q��ǖ�J�jZ>���<��

/��
t���A�S�C�鹷A�\��'uZ�/c3���]�r�C7J����!�#�`Ü-�$$':2��r/z:�-	
���eT��N:%�L�K`�%����԰(������qmGv���%@��\G�.,��ڎ�:|�l����c��l���ě�����YLr䆄P�܍,ڂ�$��
$�m
��ʆ`��'�a�A�@���T��پ��
+�`1'�1�g̭)� ����,K�6�B�W$�<�� �e�8CDZw�iɜ��Ʌ
�Q�h�|aE�
f���ػ����I��A#g�zd�ǐ:�:���o1����PpG�ZL��az�0�=���=��N��&�J���>�/
��i�^�䞮q��(0��R|�Q���*�UZ,J�K&	pq
S
2F
�������˜@� ]�Zɋ��c�GjK�d'3g��0��1�=vd	*��Y@��M�4:���3��
FP'�)��.��q|)
+[�Y�
+�˔\<�a8��Y���֍,�I�"d�NH���=�&
u
�� ��AaɆT8˳P�8�}xm� �,̊�:ɓ&f�3&�5�x����}b�8J�F�ٔQ:�[R1�ڔ�L��
�r�=k�
Ys&Qٜ�O
+����\���2�E
q��
J�h%�+��(4���$�%)s�4
�C�zH��P �Dz���!/*pM�˭X������d� xZ�� �G)���B>�7	��3|�<I.a��p�5N�2\Ɂ2}��44c/2���6% n��dň-���aD�bu(�t0^'BXB�����K��s2Ea�{)M�!M�I�f��0S�MRy���ɒ�LC|lF\ƴ6ܐ&�b�d
+'� %��(9���b�d:��XW���>�S
���4
��K�D)�'aQ�]&�M��(#�HF�'�(��b'S"�a�9�pY5�_���`'��G�:3�A��.�Q:����������G�D
YI^�!�M�o@���bT]d��)��x��H�_R�,��(��i<���J:�����z��[H��Q �б�!S:�{ɖ��ۙ�_&Vd/� �z{�
��YS�MdmS�#����u��#��D��
��4� �ʪB[�1��SM�B��#�-Jy|�2�x�s�7>RZ{:��R6���l5-��� �+G�����=[mR%�lɬr���i.1f�V �9��"�]��V쮈��R����
�f�Q�G�]J�g�>'���a���ԃ�2|�����|�l+0��\��$,�6���	V��EOVΒ1�U��!��a�rz��*T�=�l�.nO��b��T�7�r��Lg�� V�A;���߁�b���i��3��4�ӳQ��A�۠j���t�:*6� [...]
+:t�}��b��3}#[�6�f[ޥ-�é4���Ă?�f�^w�jG$�\��2$`�r���=K[H,s�ER'@���J$@
+�TkJ/I��
��$�����H�/ڕ4�;��!��{��6�"�!�֬��g%
L(���^
f�.�P�I�R
�%�=�h/b�{IA�a�
+��A�p�
��ߑ�)V#�
��8�&�)�3
}h�$%�
�
>ъ�ª���n�/��Jcޞ���<G�F�Tu	�!�3$�:m"J����ȹ��ԡB��(�u�g�薶966�42��vjp�(.$�"�XG�:j��Y1$՝���j��'yc'�h;'�Ҡ������
P��F
ҨYU��up�Eݢ�h\Cw�
S��S���2R������Fy�YH�.yV�<��@#m��h�M����Y�>I+-�_���tRr���˜���h9\Vg�d��P�j1i@�G?ך��]�Ǔ�11�
i"�l\ �0��
H�M�ߚ"o�3Z�q��b�)
�cz�}/��#V�9
�q<+k

�|d�Q�i<;Y��X��1Ms�F
L`z���f#奯-Ob�,1J����SL��{��e���!��+˙g|:6$e)f����\̍�iK
�5��
w����+��Ǟe
+�FE�u�b��s-@�ҹ�������Ņnh[C=c�����6U�j=\))�J�2�c
c�Y*��
+��iXs
3�!n#������{:�����ذ'S��,d�2���� Ђ$"�Ge¦Pdy16w%c�V��˜ Q�mc:}�PvX7�H��2��ݗܵ4�����)ޥ�F�YF��
+�C1�@`9?{xSn
�t`� 儠/N���Y��o�2�]��r
���3B
�@�ܳwO����g����l
��h 2�Av7�6]��#)�6�����r�gO9'Kg����-:�[?���J��lyF�q�*��j�
��\f,~i�q٭�}00xo��<���: Z'�vb��!�
&P#}��������%\L���6mq����J�,`�'�id$cR����#�b�)j�,k%S���,Tp3���i�%0�@�$�'ID�g���M����P&cq`�Y�H [OP�%�YX0�!f.�����i73�:E� �i�v
�9�.fp�(����j/�I���g�0l`G�a��%��A�Cz2iF�)N�q�esJ�>���IR��M�� ����T��T���(r��^e���Z�8US
GB4�3��db�������O�f�p]ob�GNٴ��{'�t��(Ap/
WX�
G�Yjv$~�7`t��F�Q��>�j�#�`]a3��-?� [...]
�5�r�� FVT��U|���t�>D
+�h6c�m:Z�~��f�|�Q
+c��-d椸�c�5������Ւñ:y{-t�����0�Õ�r���V!
�͚�F:�i�P���096`#G
K�1��
�JJ
+;I
�e���T%�
ç
�_jy�m��YQ)4�c�
X�2Tc���
+�8b$���Zx4��P�J Vd`�)&�Rq��
�0���#��%s3юl4�cC&�^SLł�j �=�	
�'���5���A�ԩ��D�A�#(��Nkc�(M�V�S`>HHP�FîgçB���HL
��rԎ����
2;"�ޓ*i�I��j��ԕȲ��
�I��ᤸ$�)n/�Е��Xo�K�g�
ǤT����
�U�Gj
Jf
��3O��SZ�����3?0�XksꌗY��h��>Y���2ڗypq��(�?1ejl�PG�
6A�rN�Rz���
�Z�a��W}�����c�l"��;i�A�-Yܦq�H��F-�S�
����z�ց�Ge�p����g�k���p���Ey�
$��4b��%���g�M�s\ �ӦǢ���3=C.�j��c�$-r���A�&���v4���C�dx"����cc%Ê�2^[��$�x�g
���ښ��s*�(�a�,r�{����Ֆ=�B��5���k
!�����D����'������Z�Fگft��u:�Ub&h���<��,�SvW�!կ�JO��~�;@
%��L����(����Q�%:�Ԕࣰi��-ҎI�,�{��]1f;ҿHO��$A���C
+왚A�Ȱͼ�*��c‚HR��-~��]
�"�)���hS�}��i�Yn���
4DV�R]Ў��ȕW�ύ�[�z�W5Į��}&Qx��C"oDŽRתv�ȫ0�Al+��Y�!�`�w�Z�Z���n�q�w���c@���{��b[�ȦaA#�-F�>lkڞfT�������VUF�u$�5Grxj�?3#�c�ZO��Ӡ��[j�[��Z;�
��G����G��U
+���	f�}�U�V/a���x7��:|$C~����4�ˢ�
�s��u��)��0W�<$�Cy�
,��&����]�[��
�c��ZW��
�k1�n`-O6
�[Wx)n�Wjw��Ij�Y
�md��´�k3�ȂS����N��Q�S�5߆�&��8�˓S[K�t@���f������yB;�J
�{�8*���4_�Z��q
X�g��3�l��D,��7a�|�v��E\E+R#��xcE����'��
��F(�j��&ˉ�ٚڀ�	&;��nc0D/v��@
+�K at 1�=*���{]@U�=3 ��v ^�m; ����f�0k[G$`߂Cs��/Pw/<���
~X��_.��>a�!��0�4  �{��I���
���t�
�3��7(�v��t'@j�7�5�,��}�v
�:7Daq�.���֨���rE)o���@����'���כQKx
��!�_���@��dz�X������M����!]��!� ���Mh
)��[���
�	�,T�lX�Y�9"��B��6��5BV.4|��^l
�eC�IH4�ޕ5EZ`����J2��
�N�޽;�����3s�w�К
�E۔rhR
+���)$�C��6I
ڮB�=4l�y���M�v�P,-g��׶��x�Y�
s�d:ﶥ���*7�	p���^�]�h�$
�f�W̖���g�Z|K
�K�ͪe�a������kM�ܯ�h�
+w�á,wP!��a�C�嶺g��
+����X"��I�_���ro����T+�U�뀇Em-=�����W�"�(�ʽ�qBڣ����z(�nc"5��ښ���z8JVm���<k9��Z�O��?n_�Z��u-���&|��P�~����2fۊ<6�¼	~�f�Nĕ��/���A�Pp���2Ю6W׶8�θ@�LMt+����@l�(���A�M4�|�w
+�#��#"r��T���'\��p�(�}�ꤒ�B�
��T ����`�l	�^����?���J��o�n
��v}�p�������M�)���e�n������0_t�$R*􄘣8k�f��$�ڤ9ͤBc��\�͈��*��	?C|��4��ǕÁ��?�i�W�$X͆ۄ-����545Ftq��,]�:�֛��g��
x~d�usݽ�ϳ��x/�}��_f�v��7�T ��MP� �\-G�H�z1�(V�C��8(�7���7)��C�F���y �)��v��!���VyLO�V<��4��^l���_�W��J۷��ξagCD/�����akz��(R@���݈K?ݚ�����|����ߏ������,�n�З�ZC���v!�>7��ڪ`�0����}e��Y�K
���k�bH�iJZ��
�1R��r���'�3�FG
���A�Μ��̞��O�Ӱ��WI����d)=ꨀ�ۙ����j��e�&+�V
��A~G	Pj�̒�����L8��]�ng��� \
��.�T(�4�`SR�->5BZ#IZ����D]���\
��L�
+�������XIT�wU�CM �)�S��t��
v�.�+d=r���#e�~Q�=�cP?(�Ȉ�β-Q�ٴ
+H�v5-\��섰.�?�1�7�
��cx(�e�y�(�L�Qa��
�;��z���m}DH�҈�����?	u���P*X��W�KX/ROio�=䦔�:4r���iФ�`n���[.(:S�I��>��P����?^g�����-
�w�%������E8l��wfa?'ӟ� H��D
9�iޥ�Y���A�R�~,&�j�€Y�@pv]���ۭa�E�*<�m�i��v�ƞ@���
��8±q�'�
)����5�3�G9��I��i��GY_��w:�@���
Ʊ� �\P����ь��-p�0(eS�KP���	�?%/����
�CRs�=���z��L�ٖN�Dٷ�A6I
v٢�<+,,A�n���:��_-ɑ
	/d�g
+ry<�Y��Ʃ�1'�Ꟃ٨�rhQ�I�3��� ��5G�ڳ��ʈmγ�x+�=�>H����!_�ܽl_|�F��w�u
+�
m7��Ƹ�ĸ�.�9n���h���
+�����t�TV��	�λ^�ǭ��/+4��iseX�H��8hc� �:��/B3_�f>�m�A�F�>+Z榨�� 6Q$!/!bUڭ-��F���$<|*��
+n&�
έՎ���{)�Ù�T�a����L�E��`�h�tqҎd�_V��� ]FM܎v�]D��7�κ�VP����4O�)�M�%
C�Z F@l�cɐ(Wx���u^�R��A >V3�	��d�6
n�L�h�]��vV����+H�ǶƢg��g�b�
5� ̐���q�
+`�
+�B��>
]�p���`�y��-�b���qeǮ�'r��XW��6�+Mj�Y����I�
lMـ5@ڛ�d�
�.M<�� !SF>�dAklJ�ְ	OUpxw4��`��$��
�
�g`A���O�]B62
�|L,=��=���U�%(Av�ƄnG�{�����#_��Tk�ˇ͆S8U��P/�똮��B�T�;RI��Ce��=�ξ�ʾ��'���LoS��H��8�loPO�(s���M�$2�QG�d���d3�ҧo���%��Ί��9S������Ql%H��:�_���VK�M���g��$�2�OW�}gi;ԵO
�=��B�9��
�,
h �'�$�<��ܟV�
T�T.�125��m8>�
+m/8U��5�	�ҚB�k�����ɮT�[2�E�Y�҉)�Eo��^�t:�?<����?����S��PG8�D�>�%��&��x�( ZU��kI!�E�kFV��P�Yh�-
(�o��E
�!Č�@}�Tv��!����4a����0�,U���,IW�|���OOP����9��L/�#�S���;�bo�`�<����Þ?)�U'̡\j�m�1�	��
�J���ݤJ��(LU�(���
0.��?�م
R���u
��"� A닟'� �!{�`��-�����M3B���c��pP�6s�~��̸#��Ơ����}H^��0��wd�P�)$?�z�b9C�3g�"ޘA������nf"?��
�VgQ��l�"�c҂��+�l�s�@�:��p�Y!/C�2��
���TM����{�F��*h[$��]�K57AL�	��h��X�8�Js�
�/L�e�<-{���$9���l붙l��x� ���d{5W�]�ۧ
(N�1��u"`�v�
+Pa�=~�.�x�uy�`��M��&���bm�J�|����G4�q�E����>���7�����Ϩ��2��w�)�t$s�� ���T���:h��;�ĀiV�P!l at BlK�I�y��g��o�}�w>�:�i��
+
�5���I��
�D���!]
>d��nj,�H���|�����y9����I��h(c�a�*Ԉ�7e�����MmND�*
��9���@7�N�i,���"��}z`�b�F�Ģ.�
E�9i��4'���y��	
�e֥�3h�`|Nco���
�1"��Dze�!�u�|h�g;M削�=]"M#j��'���
+��,#�L �W~�
+E�!�Q:Y�4vi2��&p�U�ز��I�A�p���rRZF�'@��ճiڙ��"���3��UOԹ*�u={�K�E1�G�
+975�ɪ
���iv�$'�B�h�z�
9�M��~
��2|<�y��t�_�P����I��gSJ�_¥�N@����2ho�z
���8�
�'؂> ���U�]�T1�	��Ŝ�p�Ȓ�(
��SE��G9�^)
�m:բp�J
�OyB�q��l#�
�oUJ�|O��d�
��&�%��/Ji�E)�
��.���~ˢ��Ë&��Öu]N5q�z��f�2G�
5�ؾT�رHba\�َ��͎uTu����E�����O�.��m� �ng�l]P��M�~�ٺ�C����dX2���K�0�M���7n]'%A�ͺ��ٻ�f�
	��
o�]�'e�H�nh�w��ڶf��i���E����֢�����u�"�u�����u�^\��5ʭ�{�0?��\�֕�ޥr>%��v��y�vc;`ܳ�6Bw
m#4�m�,{2��v�R�ǞEw"yV�򗭏
�����O����>6
I�e�����(�E'{S��H��E�a}c����p��C�nf�9�Svv�?�r�
+R��J�Z�ow(�������'<^�ol]���\�N��7�?<=��ط�=h�nJ
�!�A�rS�Fd[���X����<���	�K�r���ӱ[��i�ϫ/Z#�g���;S;���Y�o�
S�^�!eL�
�S�o*;PP��7/�d�=�6�!�9���FP���Bg#ԥ({Ez��B��
 0U3���f]��~�Bl�|
����j�V�_�u�B�v���d[�Z�~%�"�fN�2Q�<Y���
+-w�Ȯ�� B
�r	��Q$DZ�]3�.�����kh~mC��ָp��{�O�؄�FCt%���m�s��Ӳ�С-�K��u�@�q��v�
+��
�
PU��袕�&
+=���
��Ga�(�>8d
]0>�u��M�.��T��r��Y����
�qB�p!�3�5����<xULG˜��ƪ�Ϗ#���M;�
E��
��"�j{Et��RJ��9�vO��M$3�ȣ�9��6�Z�|zw�}���W�z|�[����P���v1#�iC�J5/8%/��|�e�n6Z��Ń*ܠ���HXw
�ʾ	y3�`6+���������8������X�@���8?�j
?�&�����)���s�D$�T����B'[Sv&վ�
WO����g���50IԿ,���$;}�p�
�3=�#{4���&�Mr�ڟ/P{sf�۩�����ϰ\��wB(�˕
̰
�PLf�m��6��Q�Q�<�Tr6g�]<��{O@
*�$��
+7g#h��2�E��3�nA��+.�y���mS�g��H��@bh�rI �d�A ��ª�/S�
a0c�*Ts�3T�b���3�&:��
+�
bL�2�HӚ=�6[��hJ��٫���j?���oMki�h�E+����
���tܵI�o�؂ ��ORp�g�k��K+(�'x�"<�I�C�f�z�q[�V��5�4�țN�P
+�~N��K"B��1%ǑЋ�w#YO6@	�Q�"�.Dƀ�
>��r���Z�
ԁ�f�
���gq�$G<�;��3����k'ğϤ�(���Kqh�~�
s��/yR:�R�eC�
+ at A�����<&Y�.B1��O���*�T���6��m��'�
D

+�w�oX0$G�d��/Dp�huJU�,�
�NdPA�vf�'�
�0�$�

.�D�iK��wy䅩�|��䢣�`k�����_DVv��d.DG

&
��2҂ŵJ%��Q�hQg,�|�ܠ��\P�%69ZRV( 4�����hG��ջ�����
�,��{�
��v�|�3���c��HQ<ߴ"�z�j?�=�����c����M@#�Z<vݠ�׋�^���{�B����5F�
1�
o@���j�=�ua���$J���=��C0(�����1�bY��9� ��8B9x�s�M
��(��M|����Y�����K}���9�^:�|��nL�G��K�i8��4F/�ޓ{y�	�᭗^@��B��]#z�\I�ٮ�����f���<�&o����k��,�9�K/*!񅻙�r=��]o�
B�ԝ�^�vH�U�n��:.!Տ���k?���Y�i���olbv�r;�]��n�7�
+�68C��/+QHm��
+�B �pC����#U�V�
Q�������ɰ,����S��r9mI��]�O"B!�]��x�R��Ϟ�vՇ��e�
��gc��q���
{��j
+��~���+�j>\LTz>|u:ZH�~��Կ6��_�S)��D�՚�����-��7%�qyl�cF��λ,�� �YG�{��lv��Qo�z'��Y~��C�*&~{�KA��O'nv��%�qD?]�J�،��O7k�a����}9�����Oo4`���e�C7�ı8��
�t�$��n�:��.BI�� �E�����WE�9r���~`�߮:|�z ��#w�:��G�\Df�k at d6����6,�����? ��:ꚨ~�M�zl<vF�q��Z
v>�Z�$�5�M�a�v�p�E1�:��TJ��I6bu�-BB\tXG�+�]c|�� �7�5�'�b�:_8��X��؛��u�)uA�w�l�C�hqD�ڱ�A
v�bH43���wؙ�BD��0���
(
��OQ�~z�j�϶-
�f2��A��Z�^�H�轿.K�M�<Z:D�a�P NI(ʤܶց��v�w-����9��3�˿"��Q�:�~������]ު�-�"*x
+/o>b������&y���A�
Z$�eR��_^ �N��b�
˿|�K������a��r�0���y�}�;T�!0�Ȩ��_5)6�� ������8��M��<����d1f�ו�В<*����[�=�
8F���R��yX:���P���8Q
+�����P~��~]	f���K�h�$|�k-^
O�R	��Ӷ��e�[*��0��W4mj��Y�A���Q	�a��[ڐ󮔮u`�_/c�2����p�"�OH�$ōWY������:�qB'���q�W�l�������=a�6�>n�����3 ��c&<Á���$5t�L��P��-&
2�:���m�e�_��u/�ٽ
%`�Tx�?�P5���*@;V�y�|��Mg���&�
^�i�
٤��cu>�io�Tj�"�?c���R2-H����{)�3��'CzH{srm��C�uŴ�n���@c����s��w���	p�@n����H��:�㓶�B�uM�
"'L���2����K<K,�8����n�+�R�J6�FL��=��y
�֔
���
��������l
\�P�$�L8!�8�y�3���2;�B"���K��W��6�	
T��:���3>"��em���3�a�H�Ԙܨ�޻��뇍Wc�����g�Q�s$\qY�Cجp��ݿ6�\ub�Ĕ:�,&s�%����7�C��^�}�gv�	��g�rhE��#>02�L�&�f�~r�7��Ay@jo�L�t l�0��N �P(�um��6�y���6�8��n'¾
�??����I��'�cWb"��H�Ō/B�|
�㩞�S ���8� `��C�)�"���ʸ��|�R�t�>���`�	.���	�i�:yC<G>�d�)ľ��3�=�e6'�s�J��ebb/��L{�t晢W#�tۚ07Y=�zB�vLh�E0��pћCj��v��M�>J;	Q���PL�1Mt�$7��
�3�y�Z:��pA�r7�-b��x��|��Wy��-��:�C'��
�3��n�֑\rO��[�l�/rI$]b~I��	=qZ�
+�Ql
9�k � �@Ƕ)f�ڱ����{4��m����)����gt��$�NDU�Ёܰ���f�:яM
Ms�ܾ���`m���h9Xdx(�J�M<�<�;��&)vQ��z��H)�ϧ�
�ta�J�z��
+x�2��N�~��\�נ��C��%�K�
�JN;�,��뎋��B��*PLY�챶��ۛU�G���]��d��<���bͼ4��
���o�{A慮��� S�{ -noJ�%�
�����<��,AR1P���2��Iܵɛ�#��F�h������we/<�S�
+����l}��������oFZEMy��
�Q3�h�ȃ(��^K���t'

+�G�S at o�n`:��
� �)'��d�鶈
:
`�CI�.x�A�����]d,�"�q�I��&i[�
�Ѳ�g,9)m��i�ˁ-���x��>�N�:��M5��%���
�xx��?��-
��kJ�v�,$����5��L"�M�J��l���`N-.
|�Ԉi0�ɵ�h'��������1	�
�[��
Մ}XD쩁ɡ
��U
�dHA���;�f�$��:�p�s����<��I�`�7���q!�k�����PʩY���o����_uA.��O��,@��#5�CJ�)1�$��o �PZP
�'r��x�J!�a��R���8�,2R��&r����M���l�V�@���ۈ\P���l)�K���5���v23�b��0�E�
+�I�TܺXYd��4QW�F�qܠ�†�*���4����c��{&
+֖{#�0yJ�璏*�3�'%��
KO�^��vi�pv���6%��

�Ģ�:��q�0��h�L��v1�K�ʦ�æo
œ�8�T?0\r�.&�6��#T{��n#��Jcm�� 

.%�W}H�d�Z!�@�(�TFo�y	
�*I�%A���G�>
���(+H,�ti.M�B
ڦ^���Е
9N����bڄ��as�$��NN�0�
>�#'S�Oo��̝x
�����K4]�Y%g�1Ch[��ӏy��@E���A�6�d3iQ��0�e��-B`�%�*
�m[��D2�,���}
n��@ZY���Tu&CrD	���Ͱ�]|�䓍D��\I#Ȯ�
+��Yg���!���5��0_q*z
���*�.� �ܲk}:����գEqꥢV�K�@;�C���f»9
+x�\2���<�G��n4k
vɸ"
r
"P����4eS%�s�>�O�GRd���8X�ϼ��ә�(t
��w�!)�K����a���è�� spÛm_�=7�"C�}��:|�#�F
+أl���$@m2%pP�1yz���	e輙�m�73
+E4���
	6��A>�vA�"���5�,,J�l�(?���&R��V�
{ \)M$9��<P�'Y-
�j-�a�2e݃��m#)G�,/���Y��ttI9�f�7����gWCM�B#*9��S*�Ē�m0'�MC�����E������	�]b���jپ�G(�,d��w�	�Fn�=HB
��Ђ0�*��(��}��MB���8�������(�M�����AQ¸\ѷ(f�m��] w���|\�Y�z:�~�i?%��
x��Vjg�uq���MF/�꽉^��NI����C��MY�g������Jkt:�
�m.

Ƒි����
SX���>��L�&:��F�Cĥ��!�������
 1Wrah�M׽J��k
Wߟ�OX�>d`M��%Ɠ���
P��
�&rx�~	_D�׆���
��~��
���i��	��%:8�3�va[uG} �8Hq^H��J�I��cr���S����˛��>��[u<ħ�؄�aT�a�P*�*�!��z��K��3����i����Ӣ�}/�:��w>‘C�`3Q�tF;&�H�tx���YO���$V��ִ���O�`�T��I���	 !/�,<^Yx����RE&$I�����4�-t)\D��T�m
���6|�1���e���vP�k�M�8�/mQC&rw�/<�ü�s�u��f����D*g

��JE1I�����Lgb�u����z̆�G��r��Ԃ
6E�Z$n��� &�Һ�F���2�K��a� ���^((�S��A6�ةȪԘ�
��2�絘�v��p�Ȧ�>[�c�u��A�{5V�g�ͳ�W2ͻ�~My
��c���
����@��"U;���t��ZE<�Z��
����m�#�M�o�Y�L�A�V_��@ѯh��Tqe��
+6pS	q�,B���Ɗ��;PpI R��mT�@����C�^��X
���E�$S gLPOs�4

<_lB5�KXs��������ypT�+(�&�}C	�J$՞h�K�_���By���ʻ�d�t�f¨�N�<���]؂�.��(��@�3�ڧ��T
5j�j��
,]�d{)��@�V*7'�<=�zs�
�&| �|���f!t�F4��C/�w�_�6]�xb��TC�\�)���l��:��na�-4���P.WXĻk��m>�l�

�iT�D���fo����49t��,PP�Mm�xN;���z�xCҰ���
V�>l�Hv��β|�q�=pERC{��`F/��^63�*b�;�LsY�o`��:/h�x�sy
+� f��E]�5 at w{R{��s�XV�!���V��g
�ݿ���
Y�rX�4�~P﮷7�q���#�>�kc^��k��EՍ���u ~k�Z�����w�
�H3�4mcz@�P-Hd�F�k���4T�C}���AL����}^���>��K�`� ���U�L�����=�����E4�h^��$�AN�aL/k��,�!�B�G,�z�DB��3��3�7쿶N*��M���Ӷ��<�GK�n�hi{�T�E~; ;�m�6L����՟{�^�/��(��V���
D�"�B�S|ګE�z*�d�Δ���Fn�1{~yb�7g��k7)v�x�"ܸ����&<uF��|8,�[J#��S��] �ջ��
���ޮ^�����f>���Z�2�[�)����
>�p��_�0�

8
����b
+�T�n=T��摺�Cp-Xf�}���$I���@hF]��b,�
����8<ð�i����

��0�#�%nܜg�P�!P�G�	}7�5kV�r�cX�>D�Y�M�!��#ְ�z�f!Ա��
+�=}~�l����Bf :���:��
�g�R���
h�;XP��S�q�ih8#:%��"a�Vi �r�m�J�����������a��*�o�	�i���
	�֮�#�q�K͆���;�G�=-R��1mU��E7�����U���C���d�,Һ���"rH��W�rB�ۚ���.I@��4�l��_�Y_��
�?U09k:�=C�7��s�1�鴟��~���ң	�$�B�)�X�VB�
 ˽��ZFБ}�J����	�`S�~��u�b�($ʉIg�h�Ĕ�3��ʖ�5+R[�E��� �̆����s��Z��"�:�ݒ�g��.ڀ�yGѫD���dV��c��z����or�R�9�WuNC;"F���f�ߥ�4�:�Z�*�Jd67��Ra���|4�F�S�����z�
+r�dt��y�o0L|D�6�9�|_U~4i逴���\5¡����kw'�֚ u�P�#�:�m�@�^|:���A���^�g�J>_(���c)����T�y==V�x�kb"k17�"ȅh%f�;���V�2����uS�Čx�y�{Z��%��2HD��ZE��
�^3Y�f���C��:���W��Z�lV���-����YW~
��x���������:y|Ak�}�~C�Z�N��?��O�yf�
+^��vA�'�
+���h�c<�_ at sl�o@����� */�N��S02�ܭH���
�����O0�3�5�+�h�4v)�;7�i�m�Խ��U�/xk��Xؿ�,� ��҅p��H\�b�n�
�ȼ�LP_p�&p�ح���)
���O����~�I�6`,���;ݧp������d��� �6�j
=V��6�	X�
+�m�"�w��Qkt �!@
��m���k�1���ϛQK~ùC�~������!�����TD��oS��F"�~fU"
��	h���	
wZ(��J�/��1�3��Uh��&�bSŚD��k".6x�H����5
{L�LbhQ�f$�F���
�2!7Zn^�VC�N�̆��;�{�
+����h�#�n�5
��v9��3���C�UH����mz>����~�$[+�#mWi��Y+�9n�z�&�]�$6�U���Vrb��"Ԧ�
�'�
aKeIO-f�e�
�S���ا�5.f�����w�~-��}\!�1#
+H"��El�X�Ԩ��l���cяwO-���㊅C�r�ٵ�x�h�WF����enᵚ�#��*�X�S	]I���ڔ@�)s�BG�g���<ԓ�,ݮ�ϲ�㝬��Dk����ͬ��{]���	�e-��O�V�3cW��k�ɹb�
�a�ZY1q�����~y&Z���������~�J{#(H'jV���~�ފ�N��wl���O04�m�
�����m��5�T�m���ܝ����pk����<�"$�
+I|rs�
+ޕ]O�ȕ�£d��FV\�_��,�W�+[5��z���*�
1-l
g
��z�����"/p��v���Ǘ�
f���l�{@���
+:k�
�P��,�r:�8z\e���D��}��&�
�z��� �)��>��3�����.ĉ �Eɵ\/x}�g2���V�Z��F��
��I�N�3��^���ޓI�d�=�#-U�dS_E������;x���2m��o�^�j2����%�7�XHI&�V����Ph��
R
Y���@�~o���Ճ%�<�
�<�m��
R�
(.b���2��@β�x#�~h����%�%��e_{��|1��y��,��s�*��N
G�*Ep��=��U%�.��x>@��~�q��
��W���\p
�����FB�UOM��ʙ _�L�
�ȸ���	�P��,��wUf�����
����7�b�W,��
\ Z�{_��
��d�-��A�a�8D
HR�Ns��)�زI��"���<�gLC��lP9�W%���eU^�kQ>��j��)T��	Fu�󐰔���Ď}�/yw�	�c��}�e��~�cr�+
��J�����&i�3)x��"�K�����iQ
+��
>���I�J���kta��L�'��٬yz����7c�s3‡��)��a6���ꅨ2��(
+M:1���}���d�cj'?�eTO`g/�b�T�
�pd�����t�
IP��`����Fώݿj*a]dՅ�^�7(�T1��y㶑g&w�̚���ǧ�V��K{~aH�����ﻻl���	���)�ƍ���ӏ�}�D���/���!�%o&b�܀�2+7L�^\�!#1&]�ݢ ��v��H�6����4�b?�ex�ݪ6[qJ�:���� }P ��<�Ki�D�qE�F��᳄A^]q	ڏs�<Dr펋և����Ad@�X={�&����9�HS�Е�O��J�O\�0	�y?�YR�%
Hwn�6�
JA@
�*��l{��P/N���	_�#Im�8�tmN�
+i4��2y\wBD�oW �Oq�ڕ��o�p�����sKRoR�`J�K�хH_D4B�m�9;p��ai�KS�U���ז/�<���
�>�m��{F?�˰yl�ɺ�O��b��X���
+;i��a7^gw�Է�$8a��",��I��>89��x�Oz����u�v|���{���i����_s���x�#��	���*�P$��u��),���� ��gw������m�1�&[��nؗ��I`_��&;��U�$�/y�@��ʛl�����ʽ
�M^r/I��{������ɖ{9H���U�$P/)�-s�2	<̷�I�_�&[�e5	��A�$�'Q�-�r5ٜ絨I a�&[� jH���I a�&[�nI�Wu�@¼���"a^�MV�mH���ɖ�9h��[���^~q|�b�0. `�0��V��V8�����6Z�`mbB&p�ޢV8tV^)�WL�^+<KϬ@/R
�Z�
�:d c��o`�-�����L+�y�6��hnQ,
��ݠNk����܏��
Oų���˸��[�6ـ`����b�ܛ�p
������¡��I[ )�pn?.�����&�oR�.�GjdvS�G�px��G4}��X8��کF�3/����ឨM+[iy#��� [...]
y%(N��*�m^�k
��YR
� �мo�

+z85�u\%�mN�λU��ƕ���CQ<�&h���V��y���v�☖����M}ړMA�`B���0�e�-����'{艋~��\��ؠb���kZ����yD
+�"�n狚���5wם/h�nw���v�[s7lxSsw���ݰ���{��Z��m�!��ns��n����v�
��a���s�
����.�]T�]v�(�������E��u/�껻�.��]��]w��ǻ��
��Ee�u�{!~�
�/�q�[�y-jx-�{5���ZLV٦[��.ޞ��Cg�A�ׂ�
�C���I{��[h�~��
H%,R"����N���
Yޓ��IO6UyyA)?ow�
2�(�O��$/�tuX��
�:v
��Ʉ�5)���v���*��� ��l^О�*[�P�ߍdxوU�������j�h��{�~�G��	"��C��H��
1��l6�؈T�$���I�Tz�H�zD2b�[u��J%D.z���FA��L��u�QI
Hb�� ��ը�Q.�o��ܠQ٦V.p�^�J
D#�B4u&o5*[�W"�W��F%��)V�{��ꝭF��i��o+��(QY'(
m�g�+�J:o]���Q�Z��Zڽ��V��UIۧKb]��5jUn�'m>;)��
	���F
+�S*��U��ڪ*�D��
+֎��7*�
�,�N;==������c/8lO3��)���E�n<��R��P���d*��}��&���P����7��{�OV��H�5H:�(™;@��9%7�,���Iv�o&z��ؘ��tJ�P����c���6��ckI8i%zxԟ������
�<��
�T��� 
-g�\!
�U�m԰��9 �{��
����(���i�^�9��
K�n
^B�> A�A�+LMG#�kwPi���
v	Zu�����ͩ���5�dNS�䌬'��G�z�	���)�Aq}�ld�ߎ�!��B��ξK1a���[�!������n|������gwLE��`��	��e����3��_�n�j�X���¡�Bxw�1��5K^�
���L\ ��n����D<f��`��i����6�v��[�7�%�
�"�
+O��
�O��}� E�9���)�@UW+�B�64�v�.�E>-������]��:;�U:�Y|8�,k8�P,��t��<˒�0`� �!
+�erS�s
���K���U��eZ����6�����~0�5+^e�V�O�^���r��-��u��0%��_��{;�]��p��$,��(��J�As�xx%�V^�!`�!�I9�(D��v��
"�3g�����z�*8S&��S�����ԙ�@�fN� ��Ve�$�P-�)��fD4���~+�����$t9S����

�S4Q��D�E���� :)g�W#Z �S'/�Vc�/r8�fH��֥�'�����TZ�S�OҦ2
�ɧNs�a���*<�%�Q
q|���۬Eʱ�BĤ	iۇw��΢��
uR�C���m~Z�*���S�`�
����	u��|e�D7�$�o3��b�h0ٺ���]�{���DJ/��gU�_�HR޿

���xկt�'4�¯�
�	0YI-�3��>�=�0���>�
�8~D	�C�N������g:�c:r)�u�y��75K��uQ˜E�y�\`O$-�����1�s��۸�/
�
	��V���%�e�
��
�Tw��Ԝ��������-��s������j<�2���G��.|�Ӌ����ko���?�r�
6���Y(�4���.+vX�#	(��OFg����K{?Pq1~���x\��8�$xGAC|���nv|���O���fV�����������'?��������?������^����L7�%O� �3$L�zE�Z��
��>�*0�f0�l�WMX�"�A��2�J��]�K�����X�}(`X2E�4+���f��cfͶ�,�
z��֨���h�G��Y?��[�熎aV~�oI&��/:�
U,n�r��$��K
�öuB�E
�
پI���Yp�^ڔ��*@h
n���gҵ�ɩSIʓu��D<*2s�{�B�o��8ҙdZE\�i�譫S���̒k����F
ߕd/w`�7/�b��O�q����
��
+ۗ�j�@���J�ߢ󑍌��!�t�*s��8��U�o�N��o��9W�,,j�LTyB,�VT�9��K��:��Ґ
+�i(�4A�yմYg��\�����s6e�N����W z!��
k��{��u^��{�<�OL���;��w�+��ĵI��[[�Z%�ۋ����Ȋ�{���~u)����U/�0 '��$X�|vK��VT�R�����@�2��2q`�C�z0C͑`&ߝ��� ?��'��N�	b7�Т
+���
Y8Ї�ji��x%(���}�g�D��خx:A7�Ӷ�4�<�{s��թ4v�Z�4ޚ�q%T%u9�&)����U��el�LF>o��ܬ$�Ē�-4.ř��&
+I��R�
+a��%��bR��R7�A�L4�M;��Yg��TH�,��`�
&d�c��Aù���?]�E[k��Z�c:� ѩ\@~��
�y��s��
+s���5=���õ�'#�퐄�d
+N	��0;`��6������B�I
B�J^�Z��/��ަ�}
+��;,�;�C�x�(�w[
�3�J�YP��$Ht)!��2FC�h��Z!�T-밙JB
�/=����K�Vt<�a�D;���Y�\N8
+�G
CvМv �k�׈��
��7:+�E�?�ΰߞ�·R6	biq
�t����g͞��K%;�xe�/3_Tt��Ev��U;Y]��,u�s�I�f����Mv�I�ݒP�������ڕy�����x� ���(�73���B��
�3����
V��i6-i�*L���t3#����jV]	�N"ɶB���$�eb0`�51
+E*�T���X*SfL��m��4$1�,
���4Ki
�#�m,�Id�

 \ �2���X��
b�<��*����G�KQ���s���c)�JP������V���ng�ox	�Ȭ`W&�
�2'��$5*d�L���%5
[(
�wQ.­�2bל�v*� �ou�T�p.sy��$����Cd��$�������J����;+CH��55ѯ��#
�˶HI�,�g��j[���t���L��]�{;;�(.u
�3��
�
��
�V
+vɾE����J廳��d�z����抧�7?Yaі�/4}͊��+kSzn �8��⺋���bIJ�/�?5�Ҝ�
+�իE^ �*�"=��W
�.é�_T�M��'��i���
���\p(�
ǟMb�Ml��5(Ԓ��Z��LId	TQ��b�����}�T�+m�(ot
�l:�)
+Xӱj�K��8&�h֓���Ol�Zo�� qHZ�9��Y��g
#��W�
�Q���Q�����>�_om�R��6io����Dw��{��x�
T�3�<�D�VG�qh�z/a���¨�np�M\[�y}�-	�c�a�����4�ՠ_W�D���\35&+����
+�yq��Znjl���:?
�il櫅T>��r˛9o[�\y��*A�v�"�L
�k�%ؚ�H��k^���&��, 
+
uc@ &���5+G�ؠt��Yr+
%ml�
ض�"�ۯhCU
�jO��"�>����d�� 
�
u,�ssL�ү7���Ių�h[w
�����nZ'�8e�:4��c��P,JVm�c)b��v�C�q��qW�r����;A��4���R�7��+G�0������7n����+z`�ގv���kꍬ�_��b�blR��i>�8���߉���6d����Lph���!�L����NOr'�ѫW-�q��\�֙���)Bd�dS	l��2N�t�����e"�$v1�>:�U��GHC �}��Z8�
��`*�
+�wC��f
�&��7��	J��g�h�x�d%�u�=����=yg�&�
�Bd�3���,%o5F�P��ד�q�
�K��zX��y�U�����v	�'�J�7:&�NJBe���YY�<��xlr��k�U��9Ll���
�ܤb��U�髓e,�
:ҵ�b���KL
+e ��2��F��%"z��C6�lVq��M2�26k�|�*��5y���N0�f���y��
����F.n���Gq��O
u�Ěi�Xi��Ij�ho3������%jNu�~7dREr�E�զ�)
蒴Ey��Yӽ��}�Bi׮YR�pi��NI�q���cb�������3��Ϯ�s�k����l7;�|>�kcRۄ* ���Gk
��sڭ�v2��
�r m�U
͠��e=��<�ݲ%�^�;m���L"��'<����y�e
+E���'�����f h%�i�

��`���v-A�Y�e������܂vM"̲�#��a��Yؔ�T+�1 �[�F�U�_UH)wu��	�
+{ �W��CX ��^m7�j!�.O
��j�=iX��j�$Rۉ:

+�W�ӭP6ǟS��L��@��qtq��LP�q_f2,
�Eq?��o )�N�x�sv��a֚T���.��К�	UZ���q>rH7�|�*�>Q��x���/yU�� }Xx秧

�郆�{��O
������UWԐj�-T�
s�l�Fi{�E�}3����$����c%��<r�Y2%��A�&òo�9�x�7D&�(�̳ݫ]@d�J�wy N���\���#�:h��x��Q<�M����ƞn�"��_؜���ERrB�μ��O�z�-�(��n󆆍� ``'t�6Ѿ�Z�ٟ�,7�
�Ğ����ﶼ�O�>8�ʵ��i�"3e���wk
*1�8�fy�(.�s�h5<�:na�]�c����}���4 at B��&&��F/����[�d���쿐���H��Y
&�=-da��ɭ�
+
�9w�{�f
ێW�Ǚ@a����6	EX��n@�
�DZG���g�΃��A;��;M�;��AG��ɣ���q
��eҲE/�կ
I�j<��s�D�˂p��?��9rRm�5��^�uMq� Y�'i�
!l��E͆G�]�+;�J2�z�{�c����郝�)8�p_d���O�X��0���,_9ۛ�,;�R�SZV�v�d�E�k��x��w�,������
��K�����m��b����n�Tb����O���fI�,�����D-��
+�{$U� �4�P.�
$V���S�@�]�(搬�	��y�O!�e�mc��w$��N;�	I�?�
>�~�f�
gC���Etk
���Bd�k.���*ԇ�.xq�w�)�� ��":?�]���A�K��Ƽ����0��Fdz��܉4v�j Fow�wwgG8�̀���|�S�
C����,�H<�7C26�
:��$X��
�S�tqy �x'���J���z���dR���%�=��'�7h]�B1�Gƪ�
_h���֙i.�<��P�S?�y�f�#i��4b�G6
�0�-m�.2spГ��c>P�3�/�wД �D!�ڇ$����H���
6^�E<w��/�N��
��Pr���Y:r
�xZ�H)mzTp�w
TW)�W�H�fQu�Vt9{��,X��Rp@��&��;�
�U�3df?*���
���&I����!����m�{ś[��H;����;|�bK��!O��j�,�p�W|J�
z�)$������-�Xyy�Ml[`�5Ĉ��]��
�?6o-�f��'n`�+�Nuϑ�*��a�������d'M>"�zmF@��
���~
�>e��@�R��0x4��֪O* �!���+$K�(�g�@�{	#��F�w�V���]�s���R�
�v)
+>��ZR�O��4g�Zތ�{-��W�Zn��m-���~��}�G������Y*�[����W�J��n�����0�
p��S�rKX�qC����v'
P��8F�C�c�ߠ��o<ɺ�X��]��l�L�S��s�:�#
+`��L����+�G��
��Tp%�����K�²�k����y��
+�]�/�:�����u���
+�ۇ+�.D&�C���6��@j��`lE&���#�	#��i
�ƹ
�3��+xtr� �x���� ��eV\m�A��ܘ�X1��|Ȋ�y� 7������L��
+h�b�`�mb*`�C^k�{��XD���it
�r��f��}�
8��N
�;��wI˵
`�9C���
�۬j�aIٻ�!�qC��6

�0B9�o�Y����MU��
(!I
�X�9�x�����fB?��l
 �{'�b�Ry��D��Eɮ�]�P�e��q�yD��Z9�
��I��aSv)"�A��s��Z���^�>�=��r�$8+蒘s3��"����]�R\c�I�'�y��
տ���ǵ��^+\�c���Z��������pex6o�V��+oE��+��@=�t�o��v������`��ZU|��Z����)�
+f|Gk�o6Aׯ��Z?��k���Ͼ+܆ٳ�}�
�0�_���U����:Zk��7��
_��ސ�Ŧ"��Gθ�Y�
�lǀ��!�B�Ӡ��re:� s�]_�����,�����8��o���7��`��_A����(����
��
"8�-M���?F
G<
� ��x]���O�ܙk���:������<��]s�A�I+�_����,*5����_�*���_
4�By�5��/�L�O��oF
�T��'��� ��

+�����r�g2��(xL���Q�kՈ�$
�w"���ǜ��y�k�"v�|{$��gz
+���<���[x��2Cw3y$ �[�z at 6 ʩ� 
�66	Ea�v�*\�۬!c��j�w��
{��+����O�����q��o�O�lo��/��
K�HB�=x�m6� �_<�<��nĥ�nM���n�/8�=���
;
/x��ZNs���[͐X��;a���
����j�lO�(���7��w�Ŧ-s���(�H������-H�scUH���
@$���
�R��g�ɒ^K�!����}���;��es!�$�>�rR�4פQ�
ٸ{�n7�D_v��f�؂����#H_������	� F�o��򩆦,׀���h
pQ�#5�'�k|Hz�*ҍ�|����:
���"�#���V�J-�&Rp��A�w
q�e�PI���,
)�i�#��,�%�,�Ͱ�	�A�oM����VvHNF�ZHWMQ-Җ^�GWѕ���rxp��1m}�bA���B乴��3@�yh9K�ΰ�X8�x"*#2���C�	)P���QO�я��ѵy����"`��-�~
+���é�>|�:\�p����|@
�5�k?�*��fFV�1�~j/1�9�zV�ܞ��V�X
Յ�����^Q�<D�ɑrG�Z\n����$	H��`rv������`\���*�8�Fu�s��V`�C^*I����{������"O�F;y#�(�c�=vi��]E�֝��r���əu-��iZ\���H����G��M� 9^��aJ�,� 
�8��AV�Y�G�=.0����kOaeBXNMXףO�b
�Ӿ��@C�ڝr�W�)���c����C���̊�[h.��x��d�[	�w�D�n�/���
���K�
g��a�
+S"l}ۙ��0?�6�N�{�.���߫*�
aA�G�.�������q�����^O��K$uUk����	[a�����"��E��'��R¬��s�?�����dz�<�L�

�fu
R�T�����+�g��v?��<�*u-#�V�Sh��y�ڨ�UU��[��
+
+S�;,\g_G��
X��a�h �3�s
U�՚a�>+�Ow�������]�l��!U�>� �<���E>
��}����Y+F���4Z4���X3$�����e_)y�@@�U��)�'3��d��?fi���b�*�*u��bY������v@k���=�� 	eC�D�9�K���� 
�]@U�4�w�>�s0�<au�c䛄|ԕ�|=�'�:<��n�^��Uj_I�R�Sr���x/Q
+��«��)�d�n;��{���,�3Km�2K�~��ɫ+��Q��q�.��������B�SD�݉1�͜]�'�A�W���>��e�/C
+dⷨp�O-�R�p44�D
q�G)4�B~ �Ju�
+_
d�aР�S�3������S���9��-�_5�IA@�2MY�xYDÖ�{ 2��

Ḁ縼��]��᪐�R$�3�Q��ϓ�N�x �zAºMJeC�<hj�E����"�8�)��
+�k���b���Bg���/I�
J�:j؆���Dh�Q�H�wa
8��P����͹%�51�dh&��Y�-����
T@���g�7dd��*��
v*[
��FQN��
����:1
ODm2*N�g��
��0)�z��!q�'�`ks�>'��������T:̛���fg��U%J��>]��4��G�����_

D
+�f!VS��f+��Z�΍�]�%�M�lEO��,�y�>��l=�U��.٤:�!#�N	G۫"=8�M|.�Sۍ��xH��@��
�e�
�2Ou)>[S0f[
��|�J�P�7!
�� ��i�� 6mU��#�
Hm<kW��7+�]��� W
�m%;
��
��x�
�ߏm���q\��9!����
0�m��s�yHy�aﯧ����Ί�EW̭�z�ꢱ ���яˊ^���
�謙}Lo�
#�1����.�ƭ�j����d��凶\m�`���k�� |!�n�~�� �
+ڨ�8+�LP��[��n�>�O{2J�4��Ng�!z ��ɬ�9nu���d�9D�m���u��v�{X4�{�"���ru�pQ�q�+~֩����p8i���BAD�	ȑ(纳��v'U�3O�\'�+�K� ��6/3�P��'�w߈���{��(�x?�o�B������$��:�dH��)�(�L��9k�];ehz�Q�Av
!���3��#���C
1 Vic�
^/
3���0*�G����K9�����j�Jy'��]�ȼ�S=��
�G�h�k��<~^��&oDt�
�}p����߸�:Sj�\H6���@D���C�
�}U�}Ϲ5�;��
���n�(���4;��29���!Ǿ�/�p$��4I�.̻��&�{O����G0�N��I	ߩ��<����A��~��r4'F3C�20��L�Ӥ�w�����685��4䅗
+i�dA���o�6�`C���#
�~crT�
%�z���4A�X�� ��f�
m�
:�9�1�^��qC
lk�'�{8�L1�o=oɔu�=~�.�x�uy�`������w���[��-|�`�l��u3��}s3��u~��Wܱ����g?���l��_��/����������o����|����[嫭�Ym����?�K� _��/~�ݏ?������������?����tf�¥��_|����w��������'Cm�����/��~��?������}���;�����|��o��������[�$I=&Ij~�J�9������?���u����?��ǽ�f���?��f�������^�F�<��?���ݯ~�O�Ro=�������?���wF������S�7��o~�����ӛ7�G��o��ܯ��ˬ����7�����������?���������'������~������^�oa�1V�@�?eʡC���<o5�t�bޞ|D&x
M�ܟ������"��ڑ�?�G�������O9=��O�����~���;���f�KM��wn���Q��~� [...]
+�x��� (��k�RL��@L'�~A��ɽ�/'�QC�8m�{�f�d�$�BQGܦf��Q�
��?�}�b7�C�Wd 
�

+�c����ېf��p=�S�
��}Y���R��m���
��S"zID��о7Ю�$����#�dĘ8,�yA�.E��F��m����[(�Ƒ�
+�W�:�Q|��AM ��,�]�N-D��֧H���p�j���S�X���ڀ�@x#_�]���R��ͽ(`-��
2�
��NREM�9rBh�$��#����ENUq��4�W;%��	b��@�ǡ5�I2[����Th��A<
���9T5��sj�z�Ep�ʤu)t
��w��q �`�
m�*ͮ��'���ߥx7���v�H!�2]~�6������z(J�(i(�p
���R���Ei���H\. ����:koN�K3O��C��ǩM[!�h%g�ښ�};�yg'�:o::&R"A
9�r.�>����ha��/���_k9���&a��p�W�i�.�-��
H��b�C�`�/��9è��`�@�2ʀB
+BFT�.�ٯ!�Mf2:(��0@�{:�A��x�B2��u�
!Q���	�:�M+
�:���D���
fI�q
+
1p��Pu
�>`��{�cۘT�!��C$�]E��b|IG�XN
qz��c	a���Q�OG�
+�Ӳ/v�:'[�
�C*h�/�Zծ�[t�U˜u��2�&d�I����z
�;���	�>�M��]�;5�`�N���!o��ҟ�6.抭%�Y��l�̞Z6w�l�y����\�
+׼��`�:�m�âm*��ӳG��O� l�_�C�+^|}x) Џ�P3�<�Ie)magm���� W�|���7l���:�Q0`;+���r�'�
��3�P�b��J��Nad��:Y���4��T��
�?���9�\���`� 6��#�!:Y�u��t��1�ڝ��[ZZi��r
���: Uw%�� �(in�
4��A%t%�9�W<�`%���:PwV���9*�L�~pX��)�����:O��>��C�
�p�j���`�����Ƹ|�JS�3��މ<�h#&�-��86�zyC���6ͫ���HaT��x�GR�6�/�`
$����\C*�@����LcTB�Q;�(�N���݃Tmġ

a������.���d��2�tnW�J)�¼
���^�
+ۆ�V�LU�X��
+B�

�6��f6
Dž��t�C��j�aUN%^��٪"�:��k#���-���P:�‸�ui; 
њ�m�10�]���/�j$
��Av�37�{���d4X@��M�OU
�O��2�/�&�����>���iJ�p�*��r�S�~jq>p9ٴ�m�\�%������մ ;�����o$>��
�E�Ȩr�\Q?��ﭑ;G����1��Ƌ��"ݕ��J
h��+b	����G������cڎ�nj�	��ͽDDŽ㖚$�!
JPb��n��?!0�s@��}�k���s�P�–�rVE����B��%S�/����.��U��q!���X���6#E� <7S����pi9��o�A�����~�%e���ة��^�.Q��8�YI
3��Z�
f��cU)�y����
+�n������Z���3XQ(�6��
!��o�	�*&��
��� 	t��z��CHiߕ
+|5Y�
+�s�
B�I�w0$�:��4jᠭѓ{ p�aPFW��|SH�<d
�
��썛��S%��^�
+H�E��2	����$h����![0"���`x�;a+��Ѳ�����=
	1��|#�x�8P�J?����C���=I�}*D��E-'�`�P��hbB9a��t�-3�;����8$KsV\���+����9���2?'T hy%u��F�d�As
��S�&���Y�`4'Z�=o��#~(��
��V��=P�
���W�/���� v+���>y��t�A���
�dwʣ"���xMJS٬�|={$8Kc; ^"�:� ����������@�`���H�.ft^�N'���T��
SCE��a
+��a�:W[���f�t6�bN�i���l�E��

���ِ����ϥ9��⯻v�z�hw
+�\�����+`�v�<�}p@
vP����&��`���C��#q@�I��E�
+�%��"aH9�i{�� 7_#n�י���*F�b���|C�nf�فψO�^jǜ�=�.���&�	�Krx�I�拃�;��K

DL��gM���R
d����L��.�����_)-��je��p�p�*�D�
�?ݘ;"|r~��"��Ҹu: �8��qi[�J9�a_�[�f�P5���@����,��x�NQ��"��T`�-϶a�Ae�I}p�2t�"; z���
�|`�r�"��m���'��|���
<Y: 
$y-q�
p�� 1�J|X9�;���%7��>�7�`�x��>O�G����O��ꀭ�Ҵ�o�E
UxO��vI� ��Á���׫c`�m�5L��/X�`�{he�}i�i�-�]�q�. �9�����x�t���V
����
�
��A(i�Ҟ����ޞ���kHNI����;5�D3���M �k��x>�h<@qJ�q�F>�= |/d���mN�
��S�h
��ÁJ�r>�«��!.<���~��� ��v 8#�Sf!jy���f~P�������Gp���о�I�
�~nt���>�z
"�`����Z�jt���Q�1��_�|_���ůl���2��'�{��ʊ=0�tl�=S�b��3�iB�L}W�X��̛�4Vk\^�����U��q:U<��g
j9�z֯DiwzAj���E$���C���
撙0�z���"t��HtU�i\��Zc.
��y�OW��~
�fKԀ��� ��
����M��cx֌}!�Ma��h��n!G�`���<��A�/

-b}�QJJB
SHߓ����w����r�l��P�IC�H�xI����YP]CD�)�ѻ3���H��xﰹ��.��_�
˔+
1��Pv
}�R��$�܁�G.-��
�A�r�(b���~%s7l��zd�5;�A��C[h\�OPt7G8m���m~:F�����<���묗;�(�I��~@{���fAR�m�.	aq ��桵���W~�]���Ƭd�7V"D���CM�'̴��N|ogk��	��+�}�M䩔';�Mɗ���D̤?�Ų�y
����`�>H�oz%C�aMҟ�w"�;	

5F at 0�a���ڽG#���ԯDI:��e?#Z�w
����pW�79����A�Nr��@�g�&ir0�|
+x�FՁ�j={d1�~��Z�	�Q��X�.���>�
�
lBb�G!��I�Ҝ�
�rI���%Q�>�<&��L����w�Y�
'�>rv�,��j'�"E���?��O�ϩ�$�g�H
fa����Ճ��9S�z6w at J�<�ǁ�wꖴ�}���� Q
+�����^�/�o8��	�!��d��fWع�j"I5pɉ
H�;��>�i*3�fv�(��̓�%�hUi$	6.�O\nBZ3RDŽl�eu���JM��6y�
�Lx���w)�!������t�g�Po)�:3/�H��$�j�Q��隅i��ӏ���1"
�oǷ��>�� �
�eh�q��#I�.$��_��
WvM�t
�]a2��
/���^����Y�Cy�
�z���]RyR3d���}oU���SـT}�N����5G�� ��(<ǰ�QW~�S�����������h�|j��H�
�~�gR��
+l�`;]n��'?@
���m#v�&�ө,r
0`CJ��c�(���}q9D�:��Ծ�~�T�3�J܁�����g���kk�Y%��ūQ鑍�bقV��!���Kd�3]�
��k�W��
�;��!.fG+�Y�XY� H3S>@�߂�>��85�x�U�	�u�
�p|,R8ӕl
��
��1�Q�k�
eBn
\�
D>?�ʌ��4�o;:�t� �$A��
	�FT�@�J��儻6�b��z���
]����Q=�$9��<o'����3֎	;h��j��
�>
��yx3�$׆
�l�'���Kz���R�ԋ$oO�/U<d�u�8G�l�YD�m�W��&`��4{���ġ�`կ��K��f�Hw�(�t�A���U<<!t�L��
i
̉Ϩ
+A���w�Q>w�?_�JG�y��o�Z�'���P����r�@.���J��������R�
�����%�����
̓0\]J���1
����O#]N��\��ߞ�J�r<�
&"�͋.�O��q-�'A�a^w
�i�
�*E	1tӻx��/0kօ��1'��G�wp�����Q�ޜ'Mjm�R�p!d	z�D����W8�]�q�����
5��mj,3<�r
Os4�D�|��`��Y)�}!�b����r'��m0�nIt	�]��I ��4E��
.��M�M�
�I�u��u|3��Ѽ���Z-	��A�c#Ƈb�>��
@���U�\!, 	R{�5�%P�� ��Ѥ�
�yH��~�=������}E/���GjZ at i�,��ډ*M8����z��0����Yh	��Yv�Iݕ�<�=�@�Mc�
S�~dvx3��,�+z
j�}s
^�{���K^��z�(� �H.��33Y���r__��T֓��U�=�!?<?�{<��H�� [...]
+ �.v
^�Fd��4^��i
7��$>�}%��:��G��Ψ&u!F` O��e�g7׆�P�Ž�ɚ��(5��h��Ko'y��y}�L0���s�
)���Me����J�F�5��.����(�
X� �k\~F�n/Lg�%�ŵ"%��i�q�241ɣ�dF�yD\��|a
GV t��e7"ݸ�xl4Gui;T�hE�p�� 5�+�`��ɢk\G<�H[�$�
e<�Oil�w�ҺO��п�\qQ�
�Qd����u��bj�(b:I�c�%��
�� ���)a�Jќ�B�9�<���p���r�{��eth�B���0�!f`���.���T.�Ԥcd��L�o�/D�&�XAl#<D�.��~���KR�@��e�KR��#�J�h��OFQ
r!����뒠}`.�'	�ޅ˳�rvI��
|�5x�`��Y�)�v�����34I��W�����sǴ�MD�-����Y 3IK<m��|U�S�e��J�Z,����zj� �i�g$	Q��R�R�e�WR?{�!3��,?��`3�Hl�CrC�T�^7o2a�3�������?��|d�	�	ZIո8��6��Z�+��( �h  �¼�Yy�����*�!D��i
+H�U#�/aoKb��<(X��f���l���&���N)Q��
[3���`qU�YO���0��P�>	��
�&��7�\9�!57>�2�������qP�=�&��)�3�r�^ue���S_��O�x
����#в���r��R���ꝗ$q�>*�9|ԑ�y�`���F��j��]���=Ϙ

�N)��%��t؄�G�[R�
1P5�a�s�`
rMa,��
G�bގ�k/\S�\.���w��?4��9exH�eԘl^�M�����=�xNۼ��+Ί��,|��V��y2��8��pe(��$	��6�;�1N��27�眭/f�lu͉T��!d�:bݟݕ]G���͡ܫ{�M	Ut'�;�H&
���
+}�Žf;(�MU���ƕ�e���K;�uO3	�-Σi�����J��%�A��vp�`ũ+�G
Y��k��}
�.@��ݓ_��c#�'
m�Zs�[F��ogَ���n��L��
j\�yu���7��\r�
�L
�D8
E�Ϟ�o�l�<�4�ߒ�����~�����u�H�1P8�S@�
8��c}
���!Ok�FR%�<�@Y��!ő%�g[+Iv5E�v�ѥU�9�7�/78F�t����[;'ۋFB%�%�G�6FeG��ù�׳�o�.	�P�u
=�
�Us�5-k���cI0BpMJ-��
� *�c\�1k�xk|����a�4z:\��x��o��R �j�G�<�~7�j�/`{
+�.�=j�	�P$�7F�T
<=�D(6����R0'�<T5)"�b��Ǽ�����x�d��ZӁ
��n�����1.�d*kS�� x*=���l������-Y�Oժ���-�vڼ�vRޘOz�_��xg;d�ڶ�r�e��ڰ�}]��)��e��r
I��#
+��T&m�v�ײY�u� *��7[2(���7�g@�c��a���Q�K��,ѩ@!���M��7H�^�Q�\u`n/��zS��$�rt5�w��u'��ڙn�L�����?S�8��J	�d���Kz�t\X

���q���>�U at b2�l��x��q�E��޼�,�X��ٛ��`w̢ �<D�-Av�;�F*KsݑY�0`����P�X�e��ܐ�lWq^B��3`CW�
�ZoK<�b,>�pEE�a a��d����]�=�u��	�
Υg����q'p�`r1�`���Hl��@�}�<��篳OK�j����]U��E.��{	K �
��w�lu���Y
n�vֹ�v+�&Nz!3i<y�7�������?DF��1�T*�
�
cnl!4J1�,B���>�Jz���k����^��;2K���21Mt uF�^�
�}c=խ�
\C):��4�|�td[ٕ"

�-��q"�IY�<��R-{�XKt ��! ��C�8��q��c�w+���
hN�}Q�'�Z�`
�i2e����3�Vl�_�`<�w�XUo� �`C�}/j{��=�C4D�
+/y��tP��^�oB/��M�+�4S�i
[�@#W\�V�əxl�	�<5�1��\���6���J���p֍���
�i�u��R(�_@�g����F�/�'��w�"�wt���/�R������
��{��[R�'�a�H 
�@ !���3$F�/��hzI�b_�o����BA��qѧ���Q�Ԭ����
7���D��°�1�p�\�Z
J�7v� n
]=*
��[x9F�]
�&&&E��
S����8���[y��u^����N�6��a��	$sP;#m���I1U`
r~	�y
+���撳�T2�n�Q�ň=�i陒����輽��,q
 8RC
y������(T��
asrb&V��>�Qt��q� �?��x�9������E�����������_��������Ͽ��������O�?�Q�^������ �=�|��	�3N
��9��}?���e�������Fqܹ/�[e[l�"��4@��!;��� �G� ��'T:���R�[�Qγ!�c��W�p-�ԿM1��� ;�T�N
�5���K��
��
b+L(?Nў���)Qe������*�?b��>'F
�c!�z^�����/,�`��(q��8��}�jr�Ѡ��W��i������
�U��&�&
+�ϩq�A�#rt� t��l�t�<�������'�O)
RB�,e\��aR3��C����[��O�;�?�^�𩤲v/�d,L\�)
1
{$!_�qt� <�
P��z��S�,
+���<�Ra�\Q�E�^{�
+Si!X
�M)=
+�3gh�r%�f�
^
+���W*i
\�~VF
E�{�h�r���O���
4Ob�A93���,�	���TE�{�P�XY�α�7��u.�°\!���ݴ��B���K�`��HR�^����.��#��^��!�j�ۂ�ݹ��܅u�

l=���=J��;�;�b/N��U,�����1��
��y
+�7�
z�${���%j�����a
�"�
�i/�]��fq���8���y>Q��BVl�j8�Ǜ�+ ��g��J�0
��X�H��N��4[=
�d%���j��B�%M#e�v�
H02x��v�Q~8�Dl�Ǒ:��x^ ssh��
�W�]_�l�X�@�^��:L��
+
E"k��CH9��a�K��aWo��9�4�7l��V�g�G�o��~�{�cTJ��=vP���3{o"O��#���8��/4p}��b
���n�R%��Qa�
+�k_��%B8�L�{Ɓ�v�Яnu�

v�I�����:A����T��K2����~9�./�y������r�y~�N�撷�����7`��B"���NI��X�A�s7�M�񫠘H
�y��QV�#[���Z8���a0��Y%�@����=��
!���a�Ȭn.'�!	
"�������yd�c�#+�$.(*@(��#����
��V1�
�`5_�[�k[��Z^B򙗑R���9�
��+"�d#����E}�#6.MuL~ȑ= ��,�rA�5�zj��2� �������sH
fYv̻>�
�X�vd�2���']���,�tW�
!�2�n���c@��g	##R5c���wi�WYdOf�t���Y9;/��p} ��s���
N���;���!<��X�މ���,�
"

0J|�i�Pb,}�:%_���
->��78�_�$
����#� �o��
F��
�L

�/�J��x\< �|y���mdCr�S�
xr�X��^�����h�o;?��c4Um����U�(�d�>
)
���wC��V0�#���퀞�ic���ƹ�-���R
4ot�i`���)����u�f���S��\.
��{����c�І�4�(Ǒ�������ӫQ�o
�r���H�1
cS��f��)��qĊPn��W�����J��m��ut	�0[�%kb?�K��Qi�8�<g���ߒ�q9
�'D��
�Dub�����Ql$�E�d`��u	��
!�Pj1h!/q^��C�	�S�+���3

+�H&&z��e2��w��ª
����mGy	tCYr2�l����h�SH�dဩ
bv����e�h@iI?��`��i5Ӻ]��|1�{Z7�@@}�� d�)�q �,gh
,D|��D��˴��J�YX��
�
;*�5��E�l"�����\A.k���t�r��=�D�%J���'�I
[��aI���M�_�r]�:Y� 
	p��^�]Yz΄�����Q�������c�
�f9)P�F%W< ��}�J�<
;�(a�ꨔ��
�'a��Ll��Cp�vy� F�r�'h��R���z
��+�%X��w܆�gCl/#�^�<�E�6"�m_� g�b�jӋ��ͦ�y��BG����4w��q�����;PW
*� (�AT�P�0��j�+w�(1��	�*'�j�v��h��q.�t���
�C��u��A�>
���h���8|MT�	 O&E#I	 m�2�&A���5Ls�VH	oP¬D�
Ͷ$��z�Ri����M��s'N"7xΠ�BQ�C=�M�D��CfF	 
+8"�p)��u�ك[��	���
�
*�ܕ �����n/ z�W��
�����a������ǼfHӇ�!b��-�aV"�
iV���s<okU�]d
h��h�0�*��,�F�J
+�`D
+��&�.
~
&0
a��/44���!
+KU
�C~ �=� �PK��/���/'&�h7��j&��>�덎
�or&������P�^���v<�O�L�1$�T�3Ԃ,%�T�ԕ��?%�Վ5���ޯ
��H�ma��p�
EK
��S��	J��X�o�a�
��*�R4��
+!�����!d�f9i�
��/_�"��QȢqǔ�Ƭ.}��H�zlP�!J����~�����ax&�໇�d[P�&	.�o
eF�d
4���HI��p���HbDQ!��T�T��{��D �	��ѱ�|%�7'S�f�	1���tBU�d��t��Z,���'��E
������
���,�_թ��:�ܷ�L���0A�,T{i8�}.�E�6��T���c�T6뀪��D��eu�Bro�	���(��??�4j�e���oj�i����"��
a2�h����2Rt;�
��Q�eﭒ����|I
�-��^��f�	
5�X���Y�.NF����z�u��߷��)9���E��

+"\3��/h��|m��4��
f�d���k=���$<^
��Pܛ*2���(r �� R\թcc�}/\��U�aFth�v�-~�!���w� =z�)V��}��u��?0.zA?����<�B,C�
�W��ǜF�@f39E����B�`�{@����A��
1���1�p��=*º�0#�3.�F��[��og4Uu�	U��K=V��U9l
�)��řD,	��R�:%��I�_͢���\B��;H'��
+H4 V�~���]&�L�i���4�_
����:��n̑/K{9:�Nd�F����4��^��A����9��������4��v�2��c;ڀ"���ށT��_��l[���|��[�	���E�z�w%R\����;F��b���Us���Eb�f0��[ᄰh�0 '&X-�gȼ�/D�T�GO9�
��X���q�@2� ������ҝ���І���;�
)('�Iu�k
���
u�H���>J�(H9N<H��~�%�
M�D�b���);(�Ѣ����h��x� V�Z4�n#�,��&e�f~��cYƒ
�I��d��������ƙ�饽B1�d_�T��Dm���>k�	�*!��B$
�ZL3��Dp�H�M�Y[�x}�}�Wo�#�e�ˀL��*<N)/��R���у]=.#�^)t?s�w��0<|���cyr
�
�El�L��@2���f���)((,l��
+�Ye��⃇���|JY$Y�4�!�`}��
+�*_��(h�@ς-4^U�*��z+��I�zP5���d�ΖW
3^�
+W��^?���:Y�SS��-�L�Ӫm:M
i���

Et�t
eBb���C��ّ@E"�WP�GmjJ�3D�$��s�x];��<I+R�2_���K�G�V��֕�-��8���
��D�'j�V��qW�
+,�18�U��p��w6i at _
^z�ȸ�2�
!�ʤ�~VI���
'�!�U�`-g^MG��8�
I-]Z{� }��$���
��H�~���^���-n��m?
i�z��a[�ö�!~�*=:�8{D�z���^��|у�:Ǹ	<���
�M�-�A�I
�E&�����1�ΰj:xޮ#^���N� C)L�۾���p� ݎp�\�
�C`��b�YXQ�U�{�Q�*Y5)��Bo�<��Sv����r-k�'�a��؜;��BT���zbM�
��3�[�Z�5�KO�S�H�	b�-7��[�� *@A�;�D�]� �9�
��ɑ�c��+`#��2Fz	�����*.�)�i�O�e�d�g��j�C�o�O�_1r�`gԋ#(��W_Y
�ٕ<���^i�xV�Ѳ
̜48&����`;��GIm���f�O5�idM���R
+�eP�rs$Nd]� ��q��``7����6��T� :���Tx(�L�������9�_@��%!���:��O�S8��󠠡0�Z�̠;�+�� 1#���8
+pXh�kG���!��n'�,jP�+�D�z�a at H�����S�@4�*K.��Yݜ�����}�uυ��
G���Ȅ�w�X��LM��O
�]
�6�TT����a�
Q=2$'���"
+Se������C!w���CM�|�[G����4rQ��K��ja.��1-�ө<�W����y�s��Vf84ot2����;F��
�8����>wJ?�j�[��K�ZΏo�=X8�@��
v�c?�gz�;T_J��v��B�҅U��2bފP
+%��J����
��G^C���^�H
��_$�p��J'u��}<~�HlP��oRJ�E��|qL�rT������3=r�eF1}d��U�{2C˛H��6r�jx��j��x�B�N�����eB�uؕR	�� ��L�ihڄ���fp�0�(U�� �x�|���BZB*����R
�b�.�$��}���[N
+�_��Q��������&�]�k�
���,S`�!���L]3Y,����	�pu�7K���|�rvFS=�I�
XQ�'$���(��En
�hɡ�*
+
��1]��V���:��B��2P4ѽH
��8n��LV�
+O��H���L�
+&���!}-���y&q.0څڨ���
�
�G	ݣ��?������

�Ίu
+RS��*|�j)��s����$h�p��qw����wE�A�+��Dr����`w��K�
}1΂��
+�s{���
+�:a��4#�
3A�u��i����b%�Y��MSI�!���K�䮇�ыY�^ ������Q����H��
��R<�m�KA,�#3,%����'lR�Z��!7c7�ɣkNj��U��>���ȣ!
)�Mgjٙ�˽]3�َ0*#>[S-�Ҵ�B
+y\Ė��R�:���`�5W�}kM2�ސ�n�T௖z����Y����C�TWO��; J��'�5`�T��
+Gx�J�ڻ&UWK��P�Pײ+�O��5@���4
��l���XuBo�bl8ys��� g,�Z�c���M3�
R�z�}]�h:
+s^a����ӞXD�,E'\o��@}�y�gXiD��w�|ǩvQ/��*���Vԩջ��#����:�?D�M�Q=�V�H�P��[-J%�
+R�-�0��W,L����?��������L %�G�) 4
c��*���×yd�_;��p.c��у��
��{�nO�	�I���Z�y΋CAW-��S6�0
h�!
��)'��n�i��4Hu���

x������?u���<ߨ~�U��\ZA�W�J���� $t�AϽ>QL�q8%tv��M��
E�ּ�h�/g������9�
�$+�>p�r�눭
���Q�e�U�t���G=���p�y7Y���p���e�$`�	������[
GRDH<�A
endstream
endobj
39 0 obj
<</Length 65536>>stream
+\Z�UvZ�8��j&֢���[����@*
�kj�$�vðP���մ�`��d�o�\

]�~/5��W ���W*B�I��i��Ív*�ˈuW��I�K?���U_

y���0����Y+¸�(��k��~�&�Qr|k�g-�K�ҁ��u.������KHĞ�=�e 
Mq_�
�O卷�J��w�
�k��WB���7�,!��,7
D��ab6�S�tF��a?.^�4M�h�
�R;��z��BsY�A�6~�D
+�54�ve�:�@����e�rpr�I���?"A/����)J�q�/��g�1D8Y��!�bN��GY�H��s��kb b���l���I�pq�d���ǁ���K�d|{�눲L��$�L��I���}�/�2��)�NX��e�
�*� 
����!�Ђ����F&BE��@���㔇$%�E���$�u'm�x�	�
��y.�1XK^`>W���/�w=���E����|Й�ĵ0��9K����V�!rJ	�A
~5Dv%8~���n�;9�
��̝j�K�bB�,�1JT,c���K�Cыd(� �x
k��F��4���1���'�*L����x�bM$�!��p:V�J5�0

CЊs�m!��jP�����1H��:a���h��##(�|�Y��Ą�=\T�
j����@�w�~u�w��T|n��
�#�`�
�+
��n?�Æ%�Qۂ!9Tg�
%��&ٟ�a��b���b��:�,M�*Ek��NC؜(�*�`���s�!�{��n/Pq��������cn1�jI)�I��E
�U?͆
Z
z�4��7&o�?����K��+�G	̊
/<n;�8D�θX:?�7$˒<�.{�S�W�Ͽ���k��<a�]y&+��
q`�rH
+ �h��
��'
+���#�r�� 
PUv��	L��
V`�,����
��8X���N��b�J�n��GC�*��l竔�9�x�N��5z��p�Ȁ<��2>����^O�)i-נI��N"��zD8�Dd�aj�Q���:
+2
IAiP�b+ȚG"���xS��i� ku��~z@�v/x�
��v\�קG�|�h��\�:��a�`�	���Q��
8q�C��H�DޕPyTE��0�a�5�p%Y�1��N��==��o
+�ĬAҽ�y:�"���U�

B-�%+�Q�N`t�>
+��� %q�B�%��?�$r?�G��S at 0���!�X����̓��f� ���[a��r�|���{�~
+�{<��Ѐ$4^�,���ُ�h��E�w��}�����A�玝�7�9��A��Z��l��G�x�\���vy�o����ړ���M�3:��.�ۅ�N6�P�tPK�A�2b`�󞩅��1�
+wEjU[(z���=ڑg{��bL��w�j��fF]H��u��
� R�<<�
��&>���
��6��(��z1/
��<5�(�=�:�Ź!L0T8�Sp�f͢)1�W�vߟ�}�[����9�����
���������]�w�t4
�0�Q����1�]��8�ïߦPj� �9upY�o(95j��|�����OF�6)�}F�]N�U��z|,.ղ_� ��W{�h � �T�>�#
+� p-�l���@72)�h�+UoOP���<�� k>@�tԴ3���Q�SP�m�E�d�m
9��]r�%a�|Q��P>3�4Q���?S�nG
�[��^��t�)�C���H]e��O���3�ߐ
%{�(�NA�Ş<���
H���8sh%_����
?+m:^el�+�����y u�=�N�^��E���
+��t��w�t�����P��VX1��$�IDf��r���������o�� �#l����
�����=�E��#!I8��7��1
���󰽭�
�T
UP�6��>�C�G�1_��l��+��C��NKQ�dF��|
+�2����(����#�R���5
���{������n�H6Wy!��F��� �nC��"G�+��!p��� �"=�2|E;��aY]��\�s��D��A�[�n��b�`Up�׊L
Jlh�f�

)��[
	��)�
A�5�J����pؽ`xG/g`@=(��LB3{����I�Q>=���!'�<
�G���r�)d�v��I�^�(�A]TI�.p����
H�?ɪ^��D ��A���u�E�4�& w�� ����(�=�$]�G�����>�&�2z=�% ��@�
+��j��A�0�`�������Ӈ@HR���_ �
�1
h���q���^}9z��z��n�A�
E�����(��~��٫f���D-���L���k��s�L&�
Qy���(<��p
�
#z�a
+�+�Q�e1���wf�k�ݾ(]4(�ߔ����p�e���JOȚ�
+d�g����j&��4�geY�C�t9/#����Q�'�E��S:��
+�����N{I���_���n�C
�Sy�q�M0x����E�n��TG��`��bi�
+�RR_C5�����ˆ<`��kR�Q�V
hX�$d�w��>�ߡOe�9�U�=Y�n
����{�B-h=�PYq�h�߷$cr�+(*���!���L	����}�S�~��Z'fB40S�Y!�^��BM9\'(w�K�գ��t��
�TZ�w�
	݅| \��t��#���J́��i,�ޣ�t�:�^9gz�E5���=�D��[HR�Z�c��M�Nf���Ru���#n��MA�:�o��� ����{L�0
�ZD_:H�ׅl��_;1�
AB���
+s��~@Uj">���!
�����x�q_RD:yI+b�����X:�U��j' g˷=�
��`'y����bVQ��A��
�/�jl쪁"فd�"V`�J@�PL�[��y9`$7���{�h7�j)b��4�)�7����/�<���
�f�F1��$
����4$ep��#���`��RM;}
Wۗ�0���s�R�8��'\=ȫ�
��_e�yH��qP�y��U^\�
|J>�N�3D74YG�K���ƐX�/�{�B&�t(�����F|�)+��o�$3Ġ������� �����x4�^!�{'�� �/�Jv6Ue�gG
P��
(2BI.�Hl%؋@}�s���i�[��e̳Bq ��
"�v�_Px�]�v;\"������z
?:o԰W5���G9'��t��c�V	'��ごx ��
�����W�
�CȊ�'� �t8]�}W���8��O�t�Ι�鱄*�gF�2H��RP����Z�3��PCW���8���p}+m/�
�%E��:�����
ct�V:=�����<�T4��!�����k�[�*�e�"�O�J��y����j\�r���営���M���P�
v�~�s�Pi
|a{�������.���n/���a
�� �A/X6{a�"���
x��O���ڕՂ^%��
Q�8���۔����Q�[��
`��* D?2��=
�Fi�`{:J؞��D0�Z$����� x���'9��������=$
o64��GA�R��
M��d�5TV`>�D;��4���æӘ�0�����nj
	Cq{��./z��c�3
[�w�<$�$Iq��ӎ�Ϗ���Fp�{�o���
�|��	5NGz�~�<9�
B��\f:����-��B�Ӿs<�	�j
_Ge�0l(W}�*{bXz�Cz���5 C���,B�o:��t���(Ą]B$Eq���Z����/a�J1���p��L��0w8�I!h���H��<.�2�2Ƿ�AT�0�t��cPy��Q��#m=�>t/t�������wr-�L�܃�0���O�w�J�K����q]9^��1·�U�W�=�
R�I�I��
���
�^��{hd*��^��yT��մc�3����4<_�����XԿ �e�}�c�C@�5
�k��y��.H�/ud���"��UEF`� �93�q�ٶ�!�I&�
+��ݰ�chĈ�a��c(�J|�]f �`���T=��e�:ItdL� �
���yj�W��b�O
�Q����u"�
���@��"+�J ��h{|��0
:<��U" NB��,W��&lv0�El�*�l/�C�`̰5V��ӓ���@zv���n�]�7a�
+C���S
�I
+��cT+��P�����o�k���ٙ�u5�!1)7�q>�����[��8��3H����2�B=Scάs�a6��)`��{�?r���/��	l'�sK�K$��Ҙ4��wڿ�� rT>B8�i~v�9�-A�	���5g}=�)]�j�S{Rr
�"�&1�~����nJ�թۜ�5�'�b(�(L����.y�
�M�.%�3��x���pv��a����s�J�u!Ή���ĸ�II��]�4�
+�J�ͺr�+���bd~
"޾��;ҭ�b;��.�
+�����:��F
h�yY
����(�눫ԩ,J��g7�
8�@�����H
��͇��Ge9(
�	e� K�f/W7�
�|�

�f^IL��G�MA�훴��
������Q�ƚ����#u:"��0	%�Xq?��5(e1��!�^��.(q��
�\Ъ�K�
-�S��"e7#F�Ά
+�-���-n�+�(����
+��+��C�a�	�4���8�?�P��ˁi5��A��=ؗ6H �8B��"x�PU�w�+�}�M��c��L�nU�5�a�
+ ����BT��ϟX�n�����#5Z=౫.�/���-\]��/���z�������=C+�1Q��R;Dw�"'�=��U��g�w���?�ed�S4,W�>5$+,/�D�F#٨P�ꧼW>$����GS1��`��gzMe\��5��&o^����� ��TҬ`4Ui������*'�a�P ��BZM"V��`�O��-�+��7�
���Y(T�^����WHSm�=b��
ȋ���I��p at Y��r0�0�5��
�<�x6��^�
!:9O�W�V��|�&�"#`
�/�A�B�XC��IH}r�
+�q�a�3E�Z���V;j{׆zx ��mh�����XCaPJZ�
+�'���s؞
+a7x��ˏp
�\�\�(�
����F`�����O�ܒ��h�*�8F	����[P�.H$���
+}"�0L�	}C�aȰ�)0q3�l��߮�{
N���q��j�����#��}VvT�i �Q_
q�k�9!�w�����U�"h��9G�: u�dq�
l4��F��M��C ��?,A�`I��=�D�Q7o
h}^'�������~�����:d� �<%��
O��QF��^��ǭ���V�TV�g��
٢�
�����{:�`vLI���_#JO�a�P���W�
A
����7p#C
+�rh
��)J���V-�}������ں@#��w����l5{/�3���X�H�3*�^JM�<mE���2y����X�#�2��a{+7ƫ��
���~h�9=�z������o5~�7�(W��6�{I���C]
ej�!����~]��QLG-欰�@�1C�v�?

�`XVh_��{�왔��-�g{���	�9��o	��L���¿�`	���#U�����������������7�����������o��?����������������������/ĩ������?���~���������������������]��?�{�_��
d�nj��?�
��Cɴ�J �
 ��D���=CM�n#
&�*�@@
+��c�^r�h
��B�"E�d
a�SPb�Ab'�*f
+'

1�G�����
� d
+��Ĭ݆�h����ϘIG��!g��Ç=�c�
:��Z��=��8)�}��O��9�?�e�UX�;T@"{��_�=��TI�ca���;�Gk
}�8AoAϯ��Há
Am�P��A�����X_T(
+\��+���h']�N���������n��I�����4�Yw\ѕ�
+8�GdI��U�a�
Tr�1w�cP�g5�l���t \���x�SX���7�����
�E�����Ϥ�I��	�>:���0&�?��`�|>f

�|�����[�G����΁������uye;� ٠�
soʫ֝�\ :
�C
+b�s���	�i`eY4UZ���o�-�sx�(�iʝ\�����\��s�l^�_RT�y}g
]�.
+(�݂	�F��m~?W0�9�[�y,�!��=OV��=@E����b>�g�Z&h�k�'��ѷo=��=�6���<��i�N{�
+M�[�
��8l=��\���+�-����o��+�"c��� Jh*8B�ÙiH���:/��#�I�
��ݣ�ѣb��#�<
+�ӣC��膴od+�L]؉t�PZ����;�c�YU�}��������{,7�_�f�L_{�
�ґc�{�A�fŵFZ |�C���s�!5"��k�d�V���m�;��`��0G#A�5+�
�����n�u���׺H��|�]5ޡ��(�
�5�<�?E���Ͼ%5Ьz�9�nF��x�vu~�ˆ�q1+��ޅ�.��)U/��p��V|'����W2�<h4�O�e�JzE�{�I�װ4��)��f�� � �:wH�A�O�r����0(�V�
jI����N��H���-	lĚ��8����O8��רu��p
+�a�k��
���I
J�p���K���
+&`�
>�m��QU ��#�Ħ�xU�D�q�I�P78��֯�ϫ�sB�S m��$2
��i)@rl�¾��;̑�`c�8
�|��)��(��M�KP��3
�z᭝rJ�_�׬�m0'
!T�C:��S�a�g����z
Q]�jaOz ���L��5�����Q��.��$��Ap�����9�uF�lͮ��!��
���tg� ���[-���/����*���+I���{ 
H�0
����v����hN&5D��=*�4Q�`hr�U݁
�L=z�{�ݯE��=�q�HeT��a�|ϼ�M�!w�]D&I�n��Ӑ�Z��&x�Br
�'���^�ȅC���i&z.�
�:2�+.!e+=q%�9��=�dg!�!�#4	�&�
��
��p��������?���|^����N)�ɪՠ�oU:��
�殒
5*�� �_‡�sh0�~�s>C��΍��;/>
Hp���4�Ew�edv8�Eu��N,����b6
��d]|��>�>�
"OW<�6�!��B8M��[�y(�
%[rh
��_2���
�ߐ
q�N����=��bB�����~�q\�*7��%dWd��T�C-c�=.9:�`�xd�բ
����<���8�
�]A
+�
�Gb~<��0�:���� v���if �O׉��[L,������4� ��\�Û�R}!�]���aGȩ�j�{���}
&�2R�{�ٴ
�\kB��o4����Јu����Vm1�46�uE������&���MM|\�

-P�������g'���kɫ!.��<�t�i>0���K�zȦz,~42��<���E��	���Y�`�65b����
+߱,ʵ2W���r���� �еFwA����
:1ʾ4��	�.��b
+j
+l�����FF�6�kY��UY����-�fp8��'�8�[������(����i*���C�
/e�;�bG�_���AD��	H�y ����Aq�~�z2��U�p�a
M�̞*a�gU٣b���O��<{�
Y
%� �	o0�V��›�20�n^
"�9r�Lڅ��D";iQQl��<R
+>��M�꘡�x���<��|��
kA�+
{z�`k$A	k�wTzُtE_DW��`� Pӆ�`8���Ҝ��
$a
+!�I��
�b��"����XL�]�n�
�l�VYe`b�~L��qT���>E��ǡN�Ts!�@ei&|�`�b��ग�)�LcX	� ?EgeJ�+
o��2L��2nj�.�	>!AW>�\=h�8�y�}K!���Z�E��`�.��J��'D��Z+�&���ٸ@�|�(B�)X
]{n�G ���7WPo7G)
+�����+��l͓z�{��?x0�ߞBތF��;O�ܹ�#�l`�A�1�XJ�<Z�0
C��=ҧZ�z�
=��:�DU�|v���<7
z۬��J� ��
9�`Y/�ߗ6@� '�,�h�AJ�8`M6�
*Gq�0�/=<���UM��7�A]ɬ
o�aR�;�e+Yk �
(��4]D�a;5L	Њ)��E#�r�
v
�'Y
�k�d�k��&f-�3��
Q��gU�����8��}�
J���8xk�ж;��Q�L��R��l��<v�~��v���"Mr"�?:��AH�[���r 4��J��[COa���ڸ�RI@?a��AX8�&e����p�p��o��o�����I�l������+]����j����W�m'N�)_���·���[[?������:
�K��U���z�4�ߤ�$�`�S�FV�@��cV���\�<~Kl#��� ����
V6V�~��N��#^
r��!n]`�>;7�[��*�� y��L�.-����=�����ws9��:� �Գ��A��6�o��
+H3I��'��{�Eh��0p|ݲ/�(�U�ʗ������z�dr
�=ph˫�����Ӷ�׷��A�0�(a4�W��O� ���ڨJ6C
+����
d����bv��(�>�n܆��+��������1��y�Mᆹ����s��
tT��R��m]�'t��4(���K�˝��&��
S�߂��6��
sc7���LDXY&
nd�b�7�U�7w�������Q"��ϝSj'G�� p��.�3d�س�
�
�@e9
+,w(
}~
#��'�I�s���
�(L_'�B�HҺ1�dhc9�:�TU�.5�+����|4�����
C��MYO ���>�Pe
�?}�M-)6�
�9{
>�Y ��\;�	��[��a-6j�/o�$�|���X����7�p�����ش	�`b��
�.����I��(
�ϖװ
�f���
xIC6L�4?�=����{/N�KΔD�˾�z.��ه
R찘�NaJ��X'�P)pr{�}�~HK����H>����%���"�΀Cf�
J�Ꮶݯ�ȱ��
%���^"�?"��P��4��
L�4��N�4o�
+�Y�F��hI�
�V��2Vb��}�m����lH�b�`%��ؖ�Ul4TQ��w�Xc�������
��2-��"|d*�Ww!�M��غ��Bm{N�w,�O����nC;
O�|>��*5D��m�����근ٻ���T�
a$�J��m�L�q���0����X�Fy4
SP����6��+�@뒥�:tx�E���sʎ0
S��ql=�Tώ�8(�$F�r/�Ə	% �|f��
���b�KT�.��o�TH
�q_�����S�k��3��C>ݻA��G�"B

�v<�2pӆ&IP 0eYzz�V�i�,�[K�^V)��$y�)��jQ�d��y����	td� ^j�������NF��K#xt�k
�����B��5�����ۧ�Y��!��xP0�#��Iw/@X'�2fdh����Y�8�p�ב�Aj���2#�,�G�kpz�w��Z3���A�-P�N���H�,�
A�
���ӃH�Y���!0�)�l=�!@]D�)£
����^���d�>�v�I�aB�㸎���Z��5
��}i���=���
j��@�.���ź!yv5�f�*� ������i`#���8'b��q�߮"�v��
x���@�F� �fY5ʆ�q�p�ё������TI��	]�8.G�3��L��\K���hP�g
�bN�[
�O�d�O�vJ�&A�� pR��U?���m�(WX�6��/w1���2ھ8$��K������Hw�P����O�����Q��j���Y
+�
>4���E^~�A]�X�A���$wY�
+�H	R����#
�P����J�7�YG���Y����n�2��o=$d�c5wTb���\Jز>tB�D��fR�F����T��(�N��^��
%��PByLB
zX0E~K�	=�  �� 1=��*I�!�ì޿N�Z^�ٙq9��ɰ��c��^�\聻

&���@�����R�%@�}s�A*��
7J�"}B2j�w��N�v�i�j��%>y}�Փ*z�+�$���y<�v
��5��)�`
��ꎌk��PO(3T����'�=�]T���~���)���T���N��$dM¤K�6��eUs����2[�(K��9^*��b6��Y���B��
�%|�EE�05G��`t�P_
I���4�����"��ӫ��~��w�_Jj�K�LY=�� ψ�L��ؚ(�Xe�=&=$��#T���K�gr��]J
�
+�T�
Eo<�/z` �'�y��G�p�f�
+��*�\��(�
�=�!��
+�3BF��*�i�
%����T�,��oz�
Z{z���o��
+PN��}ㄩ��
+upX̶�=m�Q^ů=~9���H�|s�a����P~Q�؃B�{�tQ��m�ה#^C*E�Et
ֶTm�o at F!
Sp� ����xM�l!�T՚�
�+�����C�0᷎� ��b�H1������Z�ѫ��`�d%�ڱ��Տ*9=He9�D䰕��(�y�d�!
+r��P��`�O�^θ7�>{w�q>�b����F�EڑB���� ��X�F�c\�s�M�iA|�85L�T��Y wt�-u���;V��X_;�sW�����z��Vo�n����	��ch�>5pӊ�%�
9�V�[��
u�����
_�҃����!NpP��������N^��%p��Yr�� X�p�t+rT/�^6{����Ϛ
�
�ow�UD�q��'M_��W��m(�y'�Rq~9�t���r@
B;���<�=�X>f��޹��q� �GΘ�>�SP��M����v(��-���WM��2�t��
�bB@�U�!���o��.���
����r	���m
�xs�~}��W�7mBQ�ro�M5Ȕ ?�Hd���D��*
+�u΃�'�>ʥ��Wm����J<
�d<���1T<c�K��bx�i�����HԒk��K+#Ԇ��S���� �V_؞/�I�p��L��p������ɫo��>����=�3���P���8�bu���CN
gx4�jd9��̈����Cu�r�*`����ߞ�q�Ԓ.��
��
�l���?	��9[�a��̢�=��0ϒt|.��k/Ha�)��y��>�N�h֭w�*�m ���o���a�'�7��)a�Cz)�f�4�$���0�b~��um�,��^8�)~�Tuć�00�X�4=b�(��O"B`��aOA숒2yI��J�W�"ʇ��yO�h Ё���Nr�[�R�w�	�P�62
]k_5c�H̺��<I�"�$z��pw���1�w�)I���S�S���PMlj�� �[���פb,���ɞm�<E`�� x��Ǒҟ�aH���ƀ �V���P[���n|�����A��8C{C�?=\X�%^Zd]3X{1-���QV���Wdߠ5�{ ԰�A×���T [...]
+F�I�rU��hh�%��o(���M� N�����!Ǒ�[���BD��R�%�M���
��޺�ƣ�҇����Y"NGj�j8��h���@/�ʚ��wu���d CJrj�3��-la�J����D�mq��������55��A�"��o��`� �ySY�ySљ���(����bU��jo��*��j��Lw�32^��չ
�D
I���>����MK�P@��~�����M푉s��uHKE����$��H]bA���K�'�đ�>ᙓC8����YT�#�sh��!0
��W�͔��I.u)�W�,51˸AX������Ei(�� �"�P��]�q�
��NcV���u�?	�]�;���E2A�xP��ZO;:^
��A�@#���A-��E�>
uf���:6~I�d�Ń@>	��� ��/\8�
�VR������1����f�EbK�Q�ag
8��;��`0���`tKʺ�/x�	�HNS�h�O��q���,+<��|�
N9ci=ԭ������m@�^
x"Oʼ�2>��~��\��E�+B�tZ�wV�:
\�`��K ���6�S.=Ǻ	5��5I�c�n��]0EH`T�i9T ���QA�S��J*�ƙ����?Cק��_=��4�5�n?Ǚ��ңI����5O��
�QKB0%���Zs���V%�ܚ��wL�BV��=~�1��Ex��kX#��r��2=��BU�U ��4I����w�+�/B�(�=z�s̯���L6@�X
�w���~����<S=��koNI��7L��x�����ƙ�j}��U�60�ݑ7@�!����L�nL��0�H���B�[�;�2XJ],g�z͓�	`F�Q��\�Pl�5)�V���� �H邔3;S��,��Oe�mpj�r2|I$ ��֚�$5+�!��2��
QD#�@Q3
��8�^9�A���¢6�4��=��EX
+7 �Sh�S�b
�bF
&�KcF;�M���M�[��p��x"�7B�4���8�n�xo�5u�����IΆ
��8�{��O�C���
9��(t����SM�rV
;�`�5Xɪ�@���)'Kc̭�i�t����*n�^��X��G�ܑOj��̉�\K��)8��N����O�i7��-\�O
�`����1kX-��	0��X��s�`{"�ґ�?q�x9^�v l��Τ{.���M����s)r�E}?1��Q� �4�����`�b�
+������U`
�1��`���A�Z0`1+��]���A 0,`�S&^;�J5��{ZA��_O+Q�"�^�]�6BL�Ž<�Q���Gp<k��&w��W%L�?YuL��d�K��K���D{�ɞ��;�TKz<��ry_"�B*����<|-�lI��"pMdr�=|���Ypz�W�Ͽ�&.�����3q`I*�;���
q[25�
tִ�^�G.G	�}?�	�A�Ҁ<�=��I�0�YB���{yq#�I�e�^H�+3��A���1�����t!��Pym��*������J=�� �
o�f�
�j�(��5
A�.�S���JЂ
=H	�˲��������gk���
ܜLUD����8m�d�J�`"��
ܕ����a�^�Hi��+
�������I�&{8��C�t��L?��׉��ЉM7��Uf�*j\o���9�ӱ��!��
�E�G�J$�^
/�@0�V at O���{��k�
�Z��PB� �8
��
+�^e^e{��o̗l�;Q= 2����0��c�Pp�(E�����������(0!�J��o����b6�`�۳ 
\(��kFpR�!=���*$W��
+8;��ZM�*8}�TfC���V��#��N�-�?Rm��,2tn�J ����z d`+%vL{�P��"�ʭ1X5�;=�bv��z`���*�E6��U|
�'Y
�WW�!��ׅ)�03����P����)*1
p�_�Ob�
++f�����m��C��5X��S;'�Iq�v~����z��,�$4
�Q���w�
+�|PK1հ�E�j\U�Aqh��'�ǕW5�#�`�C��@��}"?D ��
�$
��T6���_�!�H��2_�_�!��'���R��]&Q�4ӑP�c���ѽ3�ð��t�H�)��4�V�
+�@�mr���^�j�0�èlN�vF��i^]�S���׊
EȐ
9��R���f�.
e�����
�m��v_&�*�T��� �O��b�W �J��6D��a������d� �:�dƃN��5^��7����e���E��	٫г�l$�8[�
@�n :B"l��{�(A��jT�_-
A�L���w

��Z��^���AleE
'd�M�)���P-��_op=C�g�C��
Z���8R�o�G�Ǿ졖���_�Oe���ėܘx	F�KHN�E��|]#ٴ7�K'����و���6�w
�r�HI6�_��6���
�2�l�
��yij��„�ޓ�k���Z?�mIJ�?���!
<Jգ���n���a��A�R��)�H#��46eh��E��k�5 �i�J��i ���S��U�#l�\]���;R*̕`�P�bȮ�k��XvD���p��K`�u>/qH(�"b�
Y�r�
��c���Gt�Qe��P\���F����m$`��c-���e�)6\�P-'7��#Ia� ��$o@oC�������<�"8�l�٬�:y����#���1�h��’-@�Z"��� 
�I"<�*���`V���>95�%�l}$7! �
�HK�=v� ����!�,3_l5B�$�ش�g
ܐt�q��,f� {�D�6Ǹ$L�.$��)�sD/#W)ܓ7�
�M � �

�X�d"�
������8��
H�@J
+S���$D��-��
_}��ǐ�FD`B݊Zɧ�
)mu�UW����٬
`4�u&c
+��
�=&K�~� }d�v)U/��h/^8�>�r��K�@f+�{(������1A�		Y@&l�Im=����X��I���
b%V�
��;e�
��7�c�f���ǜ���
��k��~u��r�Ry\��$�"[���Y�e���!�Ie@����N	��v�+c >����T�$'F(3�P2�j���N�p��
Oe���}ş
+��C��r��K��m�M6M��P#OCl�v�+x
�H���0IP�G�T�8�j|Ӆ�+�r� ,q'��9��/,��q��.�����~x�
�^/�T�>2�a��
m;um���r���!��B�3�;�H��EJw�wI��c6s�D��=o3��9I�F�'������.�e#��(�O��9ܤ~���mF�cc��,��f�@�
laQ��tɊb���{������o���ݰ�r2��|� �=C��<B� jy�n�4�@�
���d�"�v̉-(�7���$a��Q /�~���d�0L�h
�t(�N
Kv�)ȩLJzݯt�5M'[�"�oj�R
�eT��Of�P����A Ar�
6�X �]BU���SɷݰWD�CK���,ؕ.y9��h�j7"�i#�ST��
~ϣ�
��
_)ս�zIsB��G2�r��%*��MUM��j�
�E�.�;"Lh��j9��b]�TD;�
7����O%�G4LQ(��I��W�x=��NM %��b$4�(J��$-f�"sy�D at I�X���~��BB8���ٿ�H�Wx��>A��/���"�a��o�,�f	���+n���Z謼����uu�R���Ҫ~�p�w&�D��c~�.rx�䨰�a\���8t�85fI
��+� &q�D`r6�@z�tn֣!
+nQ�h��t"��s�}X�q��.1���;e����Dd
ݱ(�8���ȉ�v6)A2�YZ�$H� S��3;��������,��
�OG<7�+��<'v
��#B*0�;D�+�������0�t���?1NA�$���>XS��y"g^ilF赴�+CQ�2�"]hͪ�G�j��\�u�א
#���_'�0���S�́����K?��VI��Omw�J�c=O:I
�i�A69�3�F(/�4XD��*��:��>>����u�j�FX�P*
.N��s`���6P
��
+������85h.���g
+�,��{I,��X�
�0b7&|��W�+vx���L5^k|[���0�.��=����
+��	4_�S��LanJ��
b U*I+jv���d���Š'$��τE
\��rUu%G
��k!��b��
�CBsuz���k4A;d!H
��+����(!b(K%��s�A
�q�c�^��M��Xj�]q��
�-��
�U����
Y"�	� � `�l�H�B��1́�ɐGj&��S(%�%O�����ϳ�����l�4��I����"r^Gl�z���*�8
�YIY�-�#H%[���k"�?Ƹ3>
�<���M�����M�
��AM[�������m>૩r
�
��K���W]��J}���R�����kq���m��8{2jhY�,�GU���C���[ϧ�z��5��w/ʌv��%����H�s��\�`KIA���c/
��*F�������Ke��j��Q��.�&+2�H
�֫���+U��
���v}8A�b�Vdn��+�P(
����1���(��8ӟ����Z�Q��+�P�P�eT�K�
+Q����
��3��
"�V���~����5����Ơ����G
�S��
��nt�5$�	���J>���!�	�j�UM)o��<�zN�"�G6�p8Q���z�:iY	�A@�M���32��/��9�P��/�V�����b
+6E�7��v�ڔ�[���c�|��xC�n_�
%-���P��X����T}:f���������:i����&`]��q��9t,���Ua6®%��B�^݇{I�|�)<���ɸ�b�	���L��g�X�ty
vT�jD�%$.��IP�yM�
g:"r�
n��S�J�ŝA!��t�<���!5�C�j�3R@�)��f`�pY�#�:
V"Ғ�)�%f��C�죦��'MĊ#��c�ڧ
���ލ��V��
F����K�k�s?A5_(�Ew�$�x����G�A�H�B���ݑ_Q&r�)bX���),ɼ�hU� %�
�%�p��_EUBuED߸��

+FH�>�2��^�b�l�xX��𫧡(�v�}���wJ3�
N�����hW��zF'��ݩ�����Xeu�A�f�Уù �d����6� ����QC�&ie��."{����m�y���l�>�@��;�!�!�W�G*�� Ov�߫a}��I�SC��NB�:W:\M�^�1b��S��,%`�M��Qc� H�"=���o	��E1�@m�#/CL��(1f�ª�C&J�#��v�Қ���U���zz`V� �?�j
+Q.o8� �=���C	��G�aPJv�2��8�}�R �
+x]E�U|����j��0�zBd3t���kѡ�wA�g�;FU�]w�J�'���J�VX�������`�+�+F�9���x�at�TQJ5��YW����=L���%��N#i�Ne?=�0u�B&�* �hK
�zS�1O�.j0�#�G��h
��~k��J?�6tM�e�/�7�3	�JL�O8�
���J�G�L
�p�6K��v�

�9��0�`͟�P
+p�6Q-�)/��eA4�s�sRڛ=���
f��CS��4 ��Ol�4�
�/��*�QC �B�ҭ&_���H�YG �;�%��L&���va�)�
x��
��
�P��#u�L����&F=�Rm�b�
+�D(�0�[v�8���l��Q8p�����檱A�=K������i��j@�)��:��A%V�EJ�e&��G��РN�f�<��\=g:W��}��4�g�B��T/���'	;���ĸΚ��Z��Qϑ�_"q=,>:�%S�Ðw"�T{��2�f��3$���8	ڑ�3�����OW���Y�kv��)a��|@Akz�]`?�>��
h��p�ăsE?p�Y6�!4'\�� Q��J��
��e
�4�F�Ɣ�TՃ$���
�F�^�ez!\���]U��*�ל�B��N�#���Z��	�Gb������Ϻ�0 ��G(dB��Gf��=
U����X�#�+<>�/�'��)#
W�GS,q��r�o�>���DǤ��Y��*��آV_�� +-���?�p*6:�
��?R ����SY��	�Qq��k�dF���(!s���
�2
P0�G�
+&'V�{a�;�Sa���D䄰�M�58������R�u�R*8�75�3#-���쀞���+��D��)`z
ҏ@�

�x�>����p��L54?�ԯj�O�
R��n���Ί)_�M��h2���n���>�K��@�7����

A�4��4�����P~K���UoĿ�@�t0���dPZGy�pD�ŭ�T��
��
ĽX�f�Ǵ��^7��dG;�|�F>_nH�	�I���Z����EW��K��
?��~Y-C���
*Bl߇(�"UjPp��Ec8z� 40SE��y�D~c�o$��*�y.���2��c5�	”_k$H�\��p�hw&b6<7�َ�H����4.iM�&wĤ�+7WXB������f�'6+��eF]��V�
+��K��=���
1{Z
�
���
+Ϭ��L���,��')Y��t�eyU��U�`��y�%ݎ�1��s���e
EC?�;�K|�	C@	N!,�s4 �|N:Zi_��9M�{�s*z��}��b��Y��'ث�R�νg��-�@63�
+�mp���0�1�~����*r��
>���=�Q^|k˱z�<���
.h�H�߯�(A4h]���<�+i�H5Ƅ��z�e�uئp3�K.���pB0rd�lB1��dN .��l��\#ɦ��x
+��i��
/���M G�+�����T���;�V"�3�7�*�����ͣ]�FB,����.v��H�0�H�?[�������Fr�d�2Y�=�9��v��K.�������5I
���fd���1�A�H�5�Ѩ����0p1�i���R�3D�a1}^
+[	�)���J6,��ň©�Q�`��T6���N���KUZ�
+�D�l����U,�
��I0@�Ptz�k+��
�%�i�x
+�f�I�I
+ P
+�
��S�;&���Б�H�
d��%i}
+r���

+x
b4x��������
�ݿO������K""���y
֭tU��e�fQ��^�tӋ�DZԸ{Ef�*>��?� ��x�/�Pv��VS�d��vE��׊�����R4cI%�����0�ԪGͨ�9b;7[?D��U�{gr��jI���z7�}Q�6��pV����O7��Րܻ5�����dΑ>	��h���Xܾ�x`Yp��Կ�JA�YY����hHB��9�)�
��9�=
�#*��ˊ��ގ��+A��:��s��s�
N$*����S�~�=tv/�ԝb}�
q�@���c�[\4�y �y7t�U
+����g�L���ny.$r�L��S���
��������c]�g�&uBg�n�<L�L��M�k���pl
�5�� �Eq]E%k��
�2MHbګ�F�2iO���
d���y0�`PfO�Z(`�t�C�]>���K��(�X�Ny�2~�z�n����ce�Eᥜ����O0^��cJ���^
�
G���Ǔe�����)��PJ��աƣQ����~���r�9��x;
�O���� +N��n^$���g�$�)�������=W"E�k�Er�I�)��J�d�h�xW�&���N=�)W+��3���:S$%�`�A�Xp��q��x/��Ps
�»�������(����|���2�1�u��=+��@R��w��8H7RI���n,�d�\�2�}v���jdv��@���n�9$�O���G:�U��|�!~�d͞._,o��)}W`k%�CTh��V���d>���Rv.�=~9�W��i)���v����C���b]���h3��-��Ll�B��
\�֛T�]�O&��O�EXR�0��F��QQR�F���3�=�
� Xt�

E�T�&��&��ޏ����u?!���HJY�(Շ@Ѻxr�U��yx��aC
�?+�
�!�|��1b�	f�
%�r�f�{�t8.յ�;�#򤈴sC��{�~j���c�\lAA���G
�Y�X�����^p����ϭ������OG�q�K
�����c
�5�V�����6�Q�
+5�81u��� `�QT�/�KI筗�|�~�Ҁ����Q����
��y@<_�d�b?Ϫ�ꮡ��J��χ�@ZD]U���P��:
,����O��/�n�Pt�	W7�h3����
�E�l5쇳����%R��*=�)$��0�wͅc
+��ˆ
$�љz��h�Gl����	8
��"0���O��q�Hat�w�O�T�3��4�����

B at +j����
P��񰐦rZkGM#��U"
�Uj�
+�L�'��k
�\����oX��hP����0�7QOl�,�j
+6�Cx�]&�D�t��M�lȑ���
a�?���
`���,J�4���m at w�{��<n�
+A�n��m;.ŭ�پ
�U��8ʣh�Bi�9Q١G@�aw
/zɼonj�^�v��
+��+|�}��pݨ�3��\�,;=$��c�O��z��Y�r��޸l�����pQ��)�H�LL�
�^�Q�E���;&{�Յ�"�u[#��6�Ȝ�
�Z{�t�~��%�@�@L� ��	8m�kr�ea���yo�0
&�kĊ�'�X��U�<?c�O�Ҥ�n9%Zp>=�V���̱ॢ
��C! �e+Jb
+P�
��י`�Ы��q�B�
+�=�BO��X�1Y��k�����%Cй�I3չ���^к��=h%�7�K�3,��U�I�[�r�	��>��I{�p��e �-j��qρI���*k=Ⱦ���QHi�D�@�z}�<��U��;����
+
+(0_�����=9l9�����E@�H,�  ��@�
+�Ubb��dV��^�{�_-l^_*3�ڍbS/���R&��qz���f
W��k�&�B����L�X4 �Y >��u��d�~��{�(�
��+
�+im:�^mE/�I�|��eZ�T�8���|��H�R�k`��'
}u�xx��KW�>�LJ}�
�0"��x�
o=����7��E}N�|%��7扭n�Z�Ý
O��
E��d ����9h
�O�B��*>�y"HT�
+S#�id��[
+�ڃ�C�]>��2�CI0{��4w�rp�v6��C�|Ŭ ��c�Ϙgr�+�MZ���,xVm��� f��0��aA��]�-� C���{�	f�lTdq֩��uz�x��P�ɒ��U*��]���1�����,Q�n�ل�
4��f+5�7��L<If�������罇g�O

U�
w���V ��!Tu����z�m�gL��"�e�	�kxRiި*
+y9I�lD��c� �9{�q_��!��<�
%�.ؓ�X0
[���^A�u�K�:�<{
guF�"�XL�>�g�b�ئd��Q˛�<E�<K��Gܻ��Ն�1_�s��ൕ�O4�RDSYE�(��8�%��;K�]bq�6z<�I6DHt�i(`�U��y��c?�v4����N��դe���4� ��N��
�lv���*r�{����"��mĉ�Fc,8�iA�@q�����P5�-&2A�{)��&4�>4�G9=�x� �E�X@z�%
8�F��P�R9��%����z� �u��7�y�%`F� �D ��b>-���k.����;���I9ח�V�i�F�PЈDʵ�+# %���m>�>��`��Ǖ��ά_��:A�n����w�'�L��_^�Lfm�e�jϤ�g�NETr���b����/O�1�u2��z��ɸ(��:�ief=�z�=6i�9��9��?�DX�04��53d�P��N�
a��{MzG/��!d�O�i��Ids���2+�*�O�<#��[�yR����C(�s�z:�L'{��+g�� ���~�[�
d� ^}�d���{�_nmK�9tz~?̳.yHw�m��#�`	7�z|�@��ڋ�*�HN��R��b~��ޓ��0P�N�o�
�|X~S
{����g� u,&'���V�r�~R�3������
+���H]��"OR��ǵo����<��L"��V�������x���'G����u-�0e�
���\���� ]`����R�ߞ_$��h�"��S����Nc�ØÝ�9=f�؋��1O�r{��c�3
��ݫ������!�#�j)���
|�ue��#~=^��vĝ�^H!1,KA�
���c����
���yG
+��h�W6�*��PnZ�uRB�{"
p�)\Q
+0�E�P(k��h��
��]ҞW�
+�CI�#�+Y:�b�
�J����5�
�8x���s
�XsJ
5ǯ����b���y9��2BG_�A%�1��P�cP�%�q������K�B�~��KXW�
>WI0T�S�6��d�*u�9����B�v������|e��٫�I�6�.�	�Z��H|�<���l1���N/j
+
d{�@�1�
��PR��1i
L�p��8��N=�O0d�(@@��a��8�H��`�J�Թ
5�*��O&.
�E�v.G�/��ۤx8

��9�A��"6� !�6_����Z���:!	یH�� �ّ1��
�o�+��M���c�U_M
�Z�3�w�~�]�;
N��q!,r�=�nTx �Ǝ
m��&�T
�p"Q��aJ��R���a#�;��M���s8��2��q~�@����σ�wL�������3_g���=)R at Y�
+Ć� O�>?�$p޾%�
�XL{��(���a`R�����0d��{T`e����{��t�cU�!1������

+�\�����g���cĕ�g�,��%�o򌿯E/n:<�}�?;�z=BB���R��4��s�a(�� 15.� ����(2>釛�'�:��-��;Ն�B�ß��f��!.��6Va>"O��h�S�%�x����A��^��b�}��ؾ�i�:רܗ4� �W
+�P�֊� #��
qo�Fo_�,GKw�
m)2r{F�,��Û�:��F蔼gqY
�-'��g��V�ɱ�|���p샲��8�
c���Ğ���nÀ{��|���,)�W;wO1P4U];����PHKk�?R���Ʊ����f�#�M�
5�F�7�r�o����,�/9R�8<=�ϫ���U���c��6��r���ѡ���
+�թ<_�W?�x8�����i�T��kꍢE����I:�s�;e!�5�c1�P�7��}m�ef��:��h�7i��t�SC�V[��V��4og�^u,�g�.Gi�R*q���׸��T�Jf^rm�D���
����7}k@
�|n�ϞN:�q3[(��g�cck�>�~�WCL�#��9���"�I��2e%�
+�?b����_4^�ƪ�7K2
��w�
<�2��W��
�� y��
��UW���b�Z��&���K���g�W�����2P�
�k�䨖���5_G1U�O����,����N�z8�T��bE���9#�9�C9�R�@�4L8�&����o���-q�
A���@55{0bߏ�� �4w%�]j���WC<�_�{�
+���-;Z��!̜D*ՕB�ގL���){x#�bH��3�o̓��د.���P�?��$-��ؚ'��G���f
os���V8�m�_h�8��0/��
C=׏oͣ�'3_��[ڧ���
��>�Ր
�wd�}�3� �9�N�e��:21�ʿG�X�؍��
 I�Nl�jW�
 �
S��p; ��l�q�و�ólPȟ����+�4S�r��0��8�!�Mp�/x�U⧫2��9L/�Om+�T�œ�M�=!���4�L��6��;@<8�L�ߪ�g�Fr�
\�d�Ik���5�d�;�h\œፍ�����q�1�p�8��
�38y�O�
��q7l�3\Z3��{�
@)2\���'�Y{�	O�H1htpf����̈@[r�T�h J�?�m�������#+��0�(ǖ�o6�4NՉ�JH�^ճy�**ƥ�M =CV��d��M�6k3"���<lY��L��i����ˉ�!%jJ�5{�
+�n_�l|E��߄쥜݊����
"U\�J*8%6>9����
A	���j�X���v�:��[$��/y����[�MS2��)<�L���8CR���
+3����h��K�02�Xh���EMց;j~O�k�a?�
+O���;����ك�E��
���	�:��D�H���������{R���������o������o��?������7��o�����?��?�������?��w��~�_�S}�����������������?��?�����Ͽ���u��p���{��cx�W��/�s��}"����O�Y���~���6����n�l��
%�<�ZߟP��U	��
��NKh���̣�\�2!�{=�dz~dLE/
�e���ОhP>�*
+�-��N2���A�t�AA�|�����P�mpKvC%��u�ѕޣa
�����
*6��A�A1Y6X��>
>P�-
w
'�<�|��n����
"V���M<���v$��;^�
+.
/b
>�MY2���R�:,ؗ��<�E�z����V�a�͵�x�ss���1C/{
kj���煑��7�`ah�:�o������hAy|������A�۶�f���}�D#��#�'/�k���3f���#T���
+rn�}��7�v
"n=�G�<f�,%������`��No�\�����! ?t�J޾�����?G=�ue >�,���^|Y�*GR`zl��P-���UFVyfJ�G�0��
�bu~�
$G��`g��L!4�r�1���I#1V��6)6`��kN/��24����;�i��7:m��(7t���;�lC#
w���q�$@I2�?7�
+J��1	�
c�%e���)0;Y�}LDG�uh���H�	x��|�|�
��a[gF�
+���/+f=|i��M�H�!8�>����KE��Y�9¬�X�z���`�adr�\!>/��2u2ҧ���n ��3���J�|!�Sf_��Ȭ4��P �d�S����Ʈ
+���9GkR�h�,��P����(�֟���3�ǬQ;
#�k���܍?��
�
3h9�|tu���w84=�YV���c
�&�6��Ɏc��:(��r�D'�*g53|�L:��Q�&�T��/��#q�7890�ej�>�
���8��LK>�|B����,�
�
g�Ɂ
�}�F3l�

J{��~�]x9'��MDSu��}�P�s��h� �8�E����
.�����
��0\���ʴ��/�
�S�u@%u��
��`!���Z��	
8j�x�u�v�;4ivK�{�!Am�fE<���A�
$��$NI%��	
7�:>Nz�NQo�hRk�^Ny�H��{��t�8m

�~˞�zPw{#}���ޑ�T-�� ��na�4�
���@b:n���x_6�x�=~
�pţg�%H�&az�z�˛� ��pn�{�Q
=P��pPBi�,M4�lՇ��MAlb]C<ȿR��R�]|��o��:���b�{��U�cM�ik�N���������2B�OQ��
,���
�nU�Ȓ�A��
U�S;
"���*�C*ޙ�}ZC�� �В�ޟ9g	�`��d���C�3���!i�� �n`�C�=Fd�0>�h̯
�հ-��ɡ�Y�yGq��7��d�_��,S�}�Κ$P�d�%ڸ{i�����
�6�%�����{/��}?b�=��T�~"��)
`4���B0��l|ּI�E�
�Wj�|�wCm`?3�9 KF�c�gUx�a}��}�R #��~�����
�k�s>�lW�}��
��SN��>�v��_j����C��CC��m��$�g2��o�^�N��d}j*L���䋭&�0��-�(�غ��!#���a�;��!�'"y�Tn3�
+�L"��]��L
+9H-�S;�,�
�B�"�y7u��oH�YU٠R3�z0�t�
;��
�|��il$�ƞ`!�]�Vv�I�Ŭ�m�+����0���{��;��T>ʔ�k�ei� ,d7 O��-�vљ8
+E���tE����.
�H�15��侜io�9c0=�B<�0݂ZD���=���y
Y2^#
��
Ν�"��k��!�ro�?f0�zOc��Ũ��+W�V�A	�Zm����P�ŋ��<��	��8��
�Lϳ�_�p��*pSzL�/�&�K:	�a��B����V�U
�2��>a�\>�x�:� v�j
5�,�"��g�NՓ;E���5��$��c����Ԁ�cJy�4��5���䟔0�.|��ы>O��6R'fg��ZRfe��#5ˌ���Ɖ��ǂ~M�x��3"#B���b�/G䙡��
�u��~n �q���۠t��"Q�0{�[C~��.�b$�'��\_��Yx��Q�O�
��q ����Um��p�
�P)`��Nu�	g��h<n(�Hm�����#5Nmg��j�E�W�9T���#�G�)��Z��z�R<=�E;�pE�.���_4ʌ���o�Z�U�
�N�-��
���˄��J;�n>aɑ]�k��׊�����p�{̷�Uo�a��0�a���X�P8�o5
���>����s��>����֦j5ܩ԰q��	����V�U��z��4&���-x]v�ޟ����5Me�R�M`�����=�RU	�
5GXTN�� 8\4,
+Ѱ�� ��7^�X���Veg��S��D�1K�z�a�c��
�=^�2_��cխ
9a�G#�	7n��'��q~o�؅��{k<�`����%V-l��J"���'��8��>��[�r� �A�{n
 �ra��}nD-��uVڈ�=���8L�A�J�w�ߑKT����h���o�k����?5��+7b�g+q���y�1$�V���ϫ!~
��4"�K��~K?"E'�Xsa��]��t�bP*�;*��#�a���1��?Y.�>W�5�����D�W��P
+/��@͘JU4���c��_��2Q\����k��i	(
�����
?q[+P�r��
+���UY,���{
7�I��Z��@��E_��ȴzB�
�|$�*�G.
+�:n��1�I�+v%�U�\��:�
C�a����GR8�]e����$�|D�4�[;����nH��)z6��c�
��$vSll�p�K�{X������ �ԯ�r������hlzD ��6� ����*Gka+�d7������b��U�9�4b@�yO�/o�0�Y,��?ǒ����_������71/#Dϼ�pYgS��~q�s��^��M�� e����[�����T�C���S��F�jʄ��vj��藌�Ԕ���<I�*�׻��N�8��f��5v����`��!�N��:.�#�5�=#�M4�*���>�c+Ӓ����q`��
�l��N���^���e��*tQ��x��
I��`�Fu�Yǿ���� n������Exb��3�{->@�w<��3�Ә׺�Z��?+�Pb�g1�}Ć[u��7 �l�鴇2��.�(r�iD�p� 5�(18�7� �n�������[p
�!Ս��8E�5{E���[vP���.{{i��q6Í�X���JB<�!�C����@
��8�� [...]
+׆�^UG�=
nN
,{)�hb���5k=/��%�e�}�������]�ɕ;�`�>�R`��;�P��
	�@�n�r�Wo#��ϱ�xH"H�E
+A�nR��j r�W�E�vO��!*���[U�;D��^���@B-cZz
+��^ �5��UM��e��	�p9y �2Q�=���
�X�x�ș���q|�:i�;#�
�Ll�)@����P�-�Q\��W1����a}��\��I�b��#2U��b���p;�-W���HU�=Dj�H�dI�G��P�1yYREU�@T�D��G�k�3�0ڱP�:����%E���EɾQ�:B�o��&&
+�G�13��tQ$]���'r�
.���H72�
?O�5����sbq��؜�
��O������X�݋�[����O��'�z#?�"���5�?�rY3.�9\55FL
�uD/�;6�s�ߟ��C�R���Ci���Ҟ"�@�e T)��XA�oo(2��[Pj�� �@K�
9+y�[�S���R�o���L=�2g���	e�~j}%��D*�)�c�h�W��c
1
yf�k
����#+�{�0�ɫ`��kge������p�~��k��ͦ�#���S�8S�y�+ ���OP�;.��,�! C� ���
wHސ�Ԧ�Ǒv&Ou�;�!�SV� 7�d�O��L�a#H�
^4E��E���C
J��U��<NLj,j��ZJ�%� �?����yo��	}��)����޹Ĝ�T�"����hH���H�r��^�;n*�؆zGw��h�q?��{�f��n[��0��V�]5������G�x�����]#
:���T	��N�{�9p�V�w��)�
�+�jb�Ȣs�Ĥ��%�� [...]
�!@�ӟ5
� 
S �`�ц�G���b�\��U�#5�C����^*�c���n�Od&
�uՒ�QK<3���>wH!~��[�,��О#un�
���9�g3�"���~�xF�:�	�B���^�+
��K���șg��r�#
����J��
�L�P�
`��h�
�RT��u���BC
+�䇏�� �v ����jϧ�ޕ�����%�'�n��T��S�;�o|s�'�Oq"q�������M�~����$�+�v-�l4�P���MS�-��
�
!R��[���k at H���
�o\0�%�v�D�E$�|�tV܋fg2�h���x��,�@�2��#s��+��_|�.��*��ύSciφM0�U����g[����a��l���wq��N���4E���>rŲAyT�
D;�w
�C1oH�ȯ<���K_�`��#��M�D�W$����ٿ�+a�4G��uv;N[Q�%o�L�7���0D_����D��s/T9�^�4�z$L���=�[�2⍋�42�!uv�\��X[t_WU��~�gv�І��A��H��@�!��&M����u�#z��
eX c�Z�s��"��.�Qf)�{�c�I����Y�oABřc%��;���
���Z��r@�o�G�>46�T��z�y���=�dk�����O"1[��P�(t���������8�Y����L��ч@j� �O�����P?��,������1�B�����Q_�V
o�_2\��
�w�C���=�!��"Ò����o&�^�@9۩�h3ԍǕ�p�l�W�"�I�!&K�Y-�?�*���
+�
)\��|���l"R
+�Gnv!+
p�� �
�A��P�+1�%C��������ہ��g�a�*)�1
�v!A�_%��0�"q���
.��
�M��%�s���8O}B�~���IZ&��k�B�j1�3�e5�s�T��!�s�
���uh�(����o�y�
�^юT>1'[v+�5by�N�`�������xb-n�X����/*����R��X�(h/r�%�
�v]��C�F�
+��oA����hd]�r[�,�Q�
+�,�2��a����B5Jl<�'n��Q�}��f�	L	�3��H
�u�5xȻ�0-4�W��qlQ�>�����lq���&�=�8�+pI��
S�0&�<XAMi�0@@���\5p�F8s��vh�^�#n�X��6�\�u&�&ކ��)+�$�����%(��:{��V�p�@��%D���K5=�)���I�ë�N��+��3�#7�NbC��)P'����A9��7��W�j	�2E�Q+��]t����U�
?�0���:W< ���k��!쀶���o����Ҽ���g����F��:D�n�az���G��
��L��qN��Y�W-Q~�;^��^�ء)1M��أZ�ǧ��Ö5OAS	%�Vf�e�]3yG{�靈|�X�*e
��h2G�W�b�3�L
�! �����Q�C �y=��-�{���uxJ�%x��B��H1��!�FsI��pՀ�O���\��ˊE�y:�[䣅<��>/�Ī��A�Qs5���6�Ocx��% [...]
+2�4,
ҵ$�����‡B �8�F˩�+6�wO#���
���)�a��/[�����߹Gy�9\I�4��Ż���9�ng
��1�%#��tqגOH|��8���N��0�3�1��4rvX� ���B|���x�P2�H��iߔ�g���O��؉T�SR��;�N..�8��iNDA���
יP����P at p��'�Sʏ'Lp"���>.�G%�
+�
��Fa7��-�>�G������!��������[���
1/�G&h"����X�E��p�	{�I��9"UE:�6pf4`FO1ɯ�% 3�Y
�������qy]�S;��׉�y�I�󱁁_�HH�Ƣ��xM�̢������|�,����J
��8%`�,��p4�����	Se�`�^���$�i�	�Z�p�˥`
�|��Ic?�<�rv�(Y�v���\�L(���(W�ެ�w{	����
���OO�
+u
�Z�
+)��Ʋ��g��M�Y
��1'j#�A�F�q����p,�6xj�5��%U.��Ɵ�qLS:�ڸ`I�OR
����A���$5���Y��`��F�TD2
G��$'��’:�/��'���
+�<|c��7S�Mq��6��F�r�B�#
�K�`�
.���<��
�����.{�"����S��)��2Lܨ�H���2ʄ�r����q1-��9�������b�dČi�s�҃�ʻ���!8
�``�
IN��^k
~
�d��.uP ِ�$���Db�m���.js�m�|�SN>
�yR�x6� �D���
�a��P�B�f7�s��n>U�4boġ2�RҀaFba�rd�wp�Bx�<�K�d���j��v�f
3��t9f�W"��9�5��U�L5���gB|�;С
+��#2�~nm�@���~��O�Ab����LR(�51�t�|���Z�(����9��|`?=�긅��+5Fٞ�k�ZV�w�
�5d�?�N� �P�
��8����M��ظ{D�7R���q
g떜��Kt'V���#�.�x
�7�ho�
x��cί�6����|i*�vV6ը&����Nw�^�z�:gMɈeUSזU��L^��UU�{C��V��$ˈ�<2��Dh{Fn�Y!/ݩ�g�#{z���������a%�xW���V���LC/�Z�"��R�Q�� ��*��x�FP���K|�k8����g�*��2��8066B�
�K�o9����{=�<����qR���-�Z/T�r�Ə� �K�b�_;���@[�IS�
( �L�	ʺP6|?���MR�_���
+������\��uK�.�#�;+Y�zB
$8�<X�6c#�G��e[�WU �![��Q������UE.�U9�#��O�##.Z�Džtg�7��8Cש@������
P����/'
�Z���z�����&�7�ݵ��|�h�Y�zW������x
&�jԗ[��b��<k{
�j
�@Պ"
�v��
7h�
�����
�
o}DB�e@�NG�����?��S��{84��%
Z����]@�.*5.d��߈ǿIY�7��VB��|eΥ(J#)1,���%�U��jb��:`Ca�>#��R3���T�~�v�?���,�a��0ٯL0
���C��>���;��4������p
��}�)W��’ݷWz$�G9��kje;k�!z)�AQ�w�d	�A���J[�Νh~?{Ù%�j9|�\��
+�_�g!!/����&J�5�S$�A�
+��˪�pF��oh�̿$x)6Ɩd��[?H�mK5��1LI����
�pyc�zƇ �╭@�C�ݲ��Y$���1_��KJ/�D���~b�ᖴDn��
;���g �e�|?cm"ƒw���!���;�t� ����w�D���J1���<�G��=��f�^o9��F	�2�
��pt������.q�G�u �|e�'�"8�
b6�>��*�;NܯI�EU�J��-���5P�~E|��K�$
Y����]�Xz	��S�q�R*{-H��'��K�&��ғ&���1>E}t!Ѻ�b2_r��E{"�%�On�ѧ8Z;�������K����
,�
�
+C�m�%w������X �~I�f�ђƺ�T�����f#3�9=_q^X�+w{�J�q�U��݄ôz)�슰k�u�fr��%:\�ts�?���L���U�������)L�� �ΪT����o����7-�\�
+���R]�
��&D~$�����,Z�.��-�:R
�O��{5qҤS��(���iK[�D��R�gdv����]҇�4��-�C^�_8�`�Y�x��b�uY��P�j
+�P���O�����Mi�?[�}}s��.��
�B ��W�)��i
�D�f�{z�k6ǻ�h}F~ `�C\lr�H�U
�>��}R���� �L��[�."	I���^�,f�����O�ur��X"U��!��U<������u�#��s��є]���q�͎��ᔔ@G�+0-�
�0����r���S %C"�b�
�i�Խ}}��X`uʞ����|�KӪۖ|uhf��0��h��\���C
Y$����I&�^��#��eo{�s�G���=P>Ł��b/��C��=р
�jdv�n,�C>�K�1��!JS�����
�Y
����'a1ǰr�c���
�L��ؔ<H�
sh0�L�I�+�N"�[ p�Y��Ӣ̐!Z�������Ο⧽X��zx�&n�m�850�u��z��0&R�S�(ׅ�u\��Ü�.YR�� N[��`2�=�X�
HT�|�X�Pa� � N&�Ӄm�H*�=؟JDI'q�� 13��H���3J��I���4xf��k���
�nL���
�n��/����sߙ/�!v�Me+�2�H�o$
+!M$:y_tnvq�Z���e�([�@h)�w�
ua��N
�$Ʒ)_��f��h��+<[[��{��_���RGnX�n��+���N�$�����V���'���@�*
���pڏ��5}�rp̐���%��S��Wd��M�Iwk N� #�
���
~�z<�#��}7�^4o�
��ѳ�cw:��r�	ˇ����J�p�l�u����e����:8.�.�c��f���=N�
@H��Z�TA��RɆ��R (��	Um�֭�����
+�ێ��z�

`
3�j
��Z$#
�{~�n�{�fi�C�/+DL�3����R��#8z ��-��?�?�"w���""���
*��m�� "L�k^T�DMaI�	 �1C�[��eƁ��ա
 �)�
��Ȅ V�3Y�q<d��1�s�D�0����ND ����z�T" ~�!�bJ�p =|x�ب�4[�-wd|��"�iD
�d�%��&q�;9Hx�G����R��#8Y��'��3�X��@R��H��n�7�
&�%�O+,�(��'W/�KC����O"�u9�j�I���Z��ꀛ��/<�N��#���G�A �0��q���n{� ֑=��˟�?��	�I�b���a�D���v�\;��&�h��1n.%��M65~��P/��<nb�t��rG
���g�kI\
3B�nc��n3]F���
B�IG�7��uUk���:1=G��eX��-����}\8�ͽ\�' ���f��#e,e���C��#'�`���Ȇ��
"��*�>�
��+d��8J�#eR��O�&��Eq���M�1��+<�H
�TSznTk�TӞ	�#c
o�FTl�?H�,���O�,��"�Cz
+1��u]Jo�'z��I��G/*��r�K#
�D\}FI�t�g�F�p
N
ҳ=�
��
g
+�iU��(�:GE��0zw*l�����X*0�#Xt�D/��)��T�	rq&NȺ��S�>�~5c��
}�B�D�p�
;�[g��Q��Ī8t�QsM��5�
衲�

�^E�e}�i�|��i
+��=E׳LN�)gF0�Rj�(w5e
+�Qk�k��M���1 0�Y�踊�X
�~�-M��q���
^7�5J�ø�#� ?Ht�@���m�(�y�1���;P�.��tA "���Ft���w`��a-1hw��#ɧ�-��������g��K�u�
���8�i���
knxF]��Z�w�5����8S�BM2�Kcr��N����8��C��x�v:$VÕ>�J�
4vtY�r�á��t�X�鑋P΢��n�
�CD���1�9�P�_G�|��j��$ZWi��B��)f��P�bM�����L�%�ZI2,
25�pmw
�0ie2 �H�V�[T۟X��RM�B�<0�u����
�.åM���م�L8E{쐇%u�Qq�|��)";���6t��X+P�؛P�~ ;��^U�t
�e
֬�/����{��˺�4FD���C�6�����ԅ�1
��U�
�B�&ެ
n�
 
d
x	�8/�s������P-+׸�M�|!X7��
6k�3(y�6�mR�.�{��Cu}�q�������ݤ�bX-��c�@q� N��quO�!����N`=|���(���FB�A���>��сLq���A��di��Ar��M�a�^�5VH^���V|��}�gu�{	@)$����;m0�P)��U�+n���h�ksL�l�G�_k���	��r��[�C�y�f�)8�y��E,TQ.X�
+����Pе��Osi�ᣞ��>?�k=�>�(��Ɍ6t����~Z�6<T�S��
2��գ
�f}����Rގ�b@�wg�d
+?`�3WU
��톨��(�j� �|� T��0��e3ḛY����%���Z�����@+c��BD�$�
�Ւ�b�vH�32�a'���z̚S�5��n
{*�n)
+�
+�Mg��c�ľ0�/H�D(^���P��̘����M�C�R%�
v��:�t
+G~Ȩ:WG1�j�Q�]t�VS�~��GU턬x����)�\�RR5TS�
P��R(/�W&��P�

�6y�� V����%Y�w%�נ
|$�r.�[>�Y���W�IA<5���1�Y�V4�ˣ�ȹE��s���,����j:�<Я�����poY��.��j ^�BfP�����t�ZfT?�:-�2Q�;��8�X	wÈ�B�d�.�X��$
%ψ������I5R�qZ`�	c��t{�@[_{`̐��[{1n��ҵ�YW3�	^M�0(
+]��[��Tߨ�Q�	Oʦ���^
Ctj�
��B��ϟ�]! ~x	!
�>�b˦�0�� �
�����N�1ߖآ����3j�̤5V�g��zt�!�I���~a����ъpe��=[�T%҂��e	36�<&�
3-	�	1IF�	���dQX��l�������y� }F
�2
��"�Q ҹţŵ�P����+
+$�J�ib�Ɣ���
[�Ѧ��
+
�I�җ
B�S!�G1�{�l��z<�2������b�
+��ø�!��� ���5�X
+�f|�+�R���S�jc
ہt��y\��
��Z���A/œ��ä��
|!��b_=^�`��6��*�R����^;����`���;���
�C�	����8�"Y�.Y

T�)��%�i�$G��IE��$`���k�x���`��?O��o��x�AP��!l�x��T�
W���������%�f��)7R6o
�x��;�bS����B��(�M��M�������I��u �,�)�~@<P@�o*@�Ћ���g�5�:
�
8x�6`
��
������UHR=rVw *w�=����y.a��~i�0��B�
+�uM� �}�VR�_<C�,�E[��p�;�Gԧ�̯��,�L���o�t��HZRe�')GmyI�?�	�,ͩX�҅9ӫ˯A^%�C�Y'I�p��.��D^� ����r��ŕ�_
4���t�⒟�%�S{y`�� \�I�P�cK�wpY4�����M7x�%�tL�M�hzD|�rz퀪L5�/Pc6`�·�w���8�Bh�=��S��
.j����}"7���3
�T��/ 8 $�Z1M�)�%	�����4�s�
�@����(�4�(�T0J�{Z�CLn󇏁���:OQ=*I����
+ u
+
�ʱ�Q\A��몮��
؍r���H*9��-.[7��;�?Q�HW
+��15�,%�P�F��
+��+ÿՆ��L:��#J֕���&���9
U������
� !���[�!�J���|�qa�"�����h�>Q#�$�(0LIBZ���# @J�/�z}�
�5��j<|Zze��� t	ۚ$�
gs$��ej�>��.0�t����L�-�� 
��>�
�|�޼Bt
�Bɇ��8&e�r	8� ���L���G���T2�[���K��T���*
0�����!�q(ey(��
K�pj�P���E�vș�;ë�N_�vU� ����=�Qz�t�Y�z�<

��$�'�@��t�<O��̼A8�0x�$*p
@�,�Hڣ/
Q�)q����s�d�WL�� �C�%���;T^8�r��dvH��t�b���[�<�������P1c�i��郦 ����I׭J�&�
���� �����h�����B���a��.� �ס̊v��|�M��7���
�?�SY���+����t�v�=�
`!�9��Ks����EI����Ycj�(��e ��
 ~W�ϧ��:�<2�=A
+m�=
�Jz@,�T�|
*�M��G��jJeh�`
�0c�h)�٥�<V��@G�!2�$D�^�-=�
ܕ%��c
�_v�

�qY&�3����o;�nA�_�L���9�9R�Q? "OQ�[��߾�m<_����Fͩ?����
�7{��<�
����e�:��\)EH{6���!���5�6����P�t[���

+
+�5�zk��\)��^�����w!rK`

Nq9XSZ�P����!L�+��p�U*R����iV܉�}����(�f����D�
��'�P�.�g�=���fb�7[��wu��#2
!M�^��eL���q��L�H��0���x&��)
Hi-\�L�	� U��N �$p�S�~�#�hV
�R�����Y{�������!8n������%BM�>z<ʼ����t3�q��6���?�R�V J�{�x6��88�"�գ�*��h
�P�
}V�#���ң�߅�.I;!#�zag��3LA\�I�� ?*�4t!��z��[n+���~v疡D�l��

+hC� l?���Y
Jf��*3
g�a�#m���|N#+�(��'��T
+��R+�;C֠�7��@��R��0�sK��ɻ��DD��݆���B�i�F�H_��f@�A}ȗM;�_�_ٳ&��FK�X�D�uK��U��b	 
���,��UM�+Bm��o?A�� �_+N�>��<�a
������ ��rw�
���~�x.A
+�2ž�܀���N ��t`��Z�_�
�*���c����GC�����F�|��K8|�q:&�,#��$Z���"�y�ez r�h�W��9.�j떣�;�K��P?]��""���[BS�r���9]����aK˂���
�Ȕ���HBa������5eM���
+�ٵ�<r٧�RC[���bc����(S]�H6v���E�F�ٵ�^Ò/:����QܧP�
�֙���L�3	
�O
���y��_4.e^��_U���b�J�b�,~
l�5
�B4P�Kr>��%1�K
���ҿ��5�ɚF
�l�V;�B�����{
+2
���c���c�Å	������Jd2T#`V6ucm���J���Mn� &�C��6צ�+9�(4����Gs{_�Q��h��qn�$ �n�|�8
�
���{����n��[���]�>j$^!]����~_b��5q�L諃�É��D;���`�4��q���D
 �m?�"��z��0A����|�N�lA�
���Fe�j��ʁ��q
m��$[��
�͞�K
��z?7xOk�j
a��,�-Ţ.���������UC�Nv� 
�0R�������pǮS)�0Kn! ��gz
�h9NA��)J�[�k��k�f�v�
��ގn������7ύ밢��56���LJl��u��PN��X�������/��W|G响�GC
�^x^1ƫ�9���j6��{۷+��BD�%�Ʈ�]
k�׹�F�‘�"����
��@��*"da��Hcv�>�
.Ԗ��>20��p(:�Cu
aް
���ݻ
ު��/r����`���fX������]|?�\��!��F%QzH��e:��O��F����Я�l�����;l)P�<�>j����y�Ë��I����M�#x����Q
y(�?�$�@��G��X\�����l<�|v'���� �>�|("�r���(S'��=����{A�:�'ɢc9ꟻW�����5��sh��Wʇ��c���9<����G��
|�@ !��'��p�����W��b��r����=��]�-�1��hFC [...]
+��м~| 
��}���M-$m6�d�<G��w��K��K�
����r��WՋ��
����
�r�
8���ͻÅtu8��9
����ǔ�A��%�D�R#@��\H{
蚂ϝ�=;�=
M
y�<�r�+�>N���j��C3�L _�}�C�n`+�ƌ��'��0N��7��&�)���wKCV��BeN)n�{2�����
n
_�0��:�)�e�H�"�v�V*	��q,2x�z at _���t�գ�H/��̛� PB�ҀRy=�-�,�[��U��Id�w��Sv�@�2d�f!������xQ�EU��M��iu��6
��ҐWAvt���|&AY;	dG8�:
V����B=�o2w���'��rw��� 
+T�� ��D���P���өo1C�^F��$OՕ�b
�1|�� ��fc�o5
+Y�a}H�
ֻ��q�˶��kZ:%�py��(;:zY
+{^�Mp��6�X��,lv�6i�y�C�L=�e�l��R܆�32-MB��R�۷$�����2�H�A�|N^#��Ϊ���8��*�wN�����_��
�+iT:_챕�{�:s���O��	<�H
�'�
�K(u��{ꏐ"_���>�RT#y}+�| 
V�<��O�_
��C��m��C�q\.�fZ�EK�s
�=����q�t
�H�w��j��Ņ.�eD���>AN�`#>rY޽����q
A 	=���T�
�O�0� v��rTIJ��iVKX��N}�����7�>i�w�w3�p�GܶY�}
aR�u$~�DU����Q���q��~n�ƹ��5B�E�&R5tW^��-��O��Wc �	�����[��ɇJ���H
~f�+FZn �'GFl�mUB�WP�~N�J3g~N������������JM��
;���IR#���Z�����8�7|
���IhynCG�I$Ӱe�w��������>*5`��`N�C�T�ay/�D��
+%eAXe
�5 at 2����Dݧ_]����j�[4�a<K&X.\���N�Lb*��@#Ge��H�֐t�g�c)A
���9���k˻=߂�M�T���N���:w
c�h��]Ԡ�
�=`��(��q�P�
��_o�
k	Ne��d
���)Il��
.��	�""��sC%���IS��j�B�=dqaJj
�Q\��|N
+2��.�4�a�熭
 ���O�Յ�B�|L_D����<e�{�r��`͏�����f��h����3~B��A��{zy����W���A�u�U��
�����Z(*"N����,��<K	5$�P2�7����j�v2M?�^E�R�u��!�^q�9���mI`�CH����g1ivK
��kH��f8�����u��
�S4�K�΁��B��{C;4� ~n���%�Ev��{y��
���/,����T�y�M��kkjE��l�����n�/�5�VD���$�����`�?�� s�z�1��֩�S���)`<3�7)��
�Po
T�_�֟W�xc3��k� 0D���b�b����mpT]8C��2�S�a"$���{��1��)�:�F,����	�I�j)�Dj�G����7w�:R��t�ջ/
)|��$?\�y��O��`5�BFp�ɽ�d<o��؏�'��i��n��\��peu�T��A4x�ld&���;K�E�k�¤�Iq
�E������"o�O�
C
+o`�U��A(��"
+��K���
+�j��s��!��ߧP�f�|D�H]����V�c�9��r�Ϋ�I	jpi���̔���
.
��c��\o�}����?U�r\�(�푂�H,)Z.�%������oY��D�W�D�ʃ%����!��dS��Ϳ��?��_?Y������?��o������/��?��O�~������?����8�����������?���~�_?��?��_��?������{^W�+|��ʿ�p�?f�V��/�O��{}
��V��`�GI ZS�Et�֋
$~�i$cUT��^G���/�B��(F�gl'��=� �,I�?�p+;�
W��F��#�k�V{=���!^��5{���(���Y��N�W0cX��vbY��
���D����@(#z�s��(�9<�������
m2u_�_C
�
`�w皦3����=��c�ռ� ��Bf|߆���-0��m�x�vo#V��A�:��hM���^-T
*������PH����:0�����������:��~
�J�<z�M�V$�<�k>�gr"�@�+LX
�P(��8)|�
+3��X!R�<	
+�-<p�IJ����d	����5�ң~�w��ć^{�W��D�p��a��q�iX�1�u�"h���j���II�'��A/U��%Џ-%��q}x`�t��M�A��+���{�
��ـ�(gG�l�@:�8�"�
h$S�H�p��4�ڇcW�O��(�Z�ê�������|
�~�1���C���b�ZTV]�v;*�2�G������"ѫ��)a ��
+0����/#L��~��(T��>�O
����/��
�m���EI�)�6wS ����ΐ!!�
+�)�;D/n3=�w�%l!�ߪq
 � �QQG[a ��ג����#��J'�G]�C/C$`}�K�"���(iu��
}5	S��^qg���%���[����	��3�(��/d6��?&��5���9Ȭ��/���öx��r%��{��I-�y�<<�kh�w>P�h �� oV9h
��1Z>u�1V�Mv?�IY��(�;��'L��=�	|5|5toc�޳�{sIx :w> B�0����ԁ/$z���"%=�rqLQ+��k��G���w�V�Ze߱� \S-��
F A���
+�
_'��h��Cu)R<��Ԧgڢ�L{`'Dvl�n����^	�Pv{��<�1f�;{��g��X�
��co��Z���tӬ�
P!�I�@ݩ�*�-jQ�a8>(���'�b����8��qai֪@��
�i�nd�J����4�r���p�w at Cp�:��QJ^:	�$#����^�\��o�vp�#�A%�
�V�-�ٌ��2����������]kT�e/ݵ [...]
+1��X�1o�� �C�
Έ
��$�1Q�CWg��Z[��H/�L�R�u�ZY�c��:gʨ�D�t��/�=��8�P��κ�Z�5��ӂ�:��Jq�y�G}D	��D�U�U�7p	ʁ�����
g�	a+f�=\$������Py���}��ߐ���f6�c\�5�-I��
rS+Y�z��켟}ֽJ/u�s�˞4
xΒ���Q at o�ēU�|��T.�
���$
��R�bZ�>/1�������ǎ|��sX`�(V{
�~��g�'jb����`c��"�_�b���@>��$����H>�_{E~<�TCG�r��zP��!�)�l͟N���(�(u��Dq"��.��0:	�U"{�:
�)�/��?�x╠K����g�F�D1v�D�����{��11N�`n=����㰱��o^�=� ��S�
8�-��֫�l� ��u�!�,�9��Hi��Pa�$է
� ��~V�����)��D�,I��r���g�ʙ�V
+��(n0�(���5�
MkzQ���/��Á���
)!0�8�c���!2�H�I~��^U>1B��l[v�됝B?�8=u:TX����

c��ȜxNԝ/��.g��l�̠���D��d�4�:;l�/Ys(���ɸuȆ�P�B�
(
Ґb��axڀZ"}/�s���<{?���=p��(�	
8��s/��`
AQ.S�<�\��ք��T��K_�.�����߄���'iR_
�S3EP��^��ߠ��:d$�n��s[W�����^�r��0"q6�YL}�����	
H��y��	y��4D�=ދ�Aq_J�8�:��XG9�w;�i��g:�
��{JL�����=˔��
e�"���	
z�ܚ��&vH�وgj���
�6��D
 �q}l
D��7�J	����
�bA� �T��Qt��Ab�}����	%1ʴ�< TA�5�'���9�ffAv؆�/�i�GdS�)�@m�}q
0N&{
+�
�r%�����:r!�
+A��=���7$F8!��G%$g?�}+@G���hH��p����7�|�5��X�]�sLw
�AK�@��i	/��?��jqx�i��_�NG
=͆�����ee/��_P���
�
2�.��ay"̈́^�@�#��>���u��'�#_N/���#!������"G�����,]��.�{5�a�B�����������߇�c�^c�z�^a�[v��7�����~G����`���,���_8
�9�L#g|�ȡ�kc��%\�
�@�W�j�R������m{��!����A{��
��3�1=�]g��[���o�����n�W����
,��UV�e8�m�J��N�*
?C[�Kl20�g\@��>>���G-M,�u%w�4�W{=��!g���#t��Jw�%����>��=z�{`�F��>q�p�M����1b[�2b

~����L��Y��!�o���aT�S\���e���4\�|"BT\��+C�YK\RO��h��
+~%]�1���|L�W��T1H$�`C��6I�_���S��P�(z
+眠<�`U�B��҄G	�Xh|��O]�X5Ҥ�RF.+��+%X�]8=�%�㉕�)����0Ǒ�EVC�k�8O�����������6�}W�
��}�;��ל�G֠�5��D �a![�>�otU񰁘��
+��f\�?g���=�V��'��F����3���&3b
I��C%�#��o
�2_�
	�����;BVl_5����$�
1�
M|	
*�ޚ"&��a��ʵ�x{�k<�ȇ�� A��D���J6���lg���M�t
+6�vVh3��Dt���J���z����'a
��y;
��x�KG���k[%OZ�=�-*�����1�~�
�����+�+|��J.0��S�R������:.ز��=
���=��|�t
PN
�?6Hu`�e�u at C�g���zm����0}�RP�)��!OC?mRޑ�
6`�K�{�;��/}
x�ߏ���
Hwy;
+��{|-�8w�G�1P�&��܄5��b]��s��&/۫1X���.�×��{�r䪙�ْ��R%�2�9���
���dɓj��z�b��:S��G���kJSi�����S8=
G�u��7E�d
��&,��{���|BJp�'f>:�(��7���!��g��[u�u�_v��]�_|����>{��9zJ���q
���}���P�R��~ӮO�&11G�߻��;i��b:���I�>p��B^�AQ���2�B�+Ǒ���nj�!�y�[�J�A䗒8$.�����V�I�H���vG��p?�p�l_?���f��Ў�s'ҵ{�Τk��\J��c�T��qO��Mq~�/��=�@
|;�"�*v-�Y-��K6�kI�7���Gܱ.��u�!��8�dZg���Db�Dbܱ�Ğ��X!~��+f>ď�q��c��Bs-~
�$D�_R:>3�5�
ܚC��=�4� ^��#��^��8)��Ovţ��C;>���HNpN��
��q�L�~̒:�
�t
	��8��J�Nˁ [...]
����n��ʇg��h}E��z�#�T�>�DU�{W�'���[�u����J�W��4=>��u���
I�Ӌ���d��
�/�
�GSuO��j���x^���f��u�X
+;�.�(�oe_�qq���ꋭ�!�K��^�7���у�
�K�8���\d���H~b��-
;��@t���Ql}��YU5�r�3�z�pm��N��(����["
+����
+�_
��C4pAa����
n�l0��n���wX8�x\�U�Y
��.�_U/sP��=��
+N�ض��&i霌[
 �\kH��im�ERūu����-�QӜ����ދ�:�����ˈIźYuu��z|�6�wnG��ýaK�}���s�@�����2� QcQ���֥�� �[{�
͞ 	��R��q���{R�M}r	��J��~S����[C����b�j�,�e_+�� Իw�*�'�$BP��Y+F����^
�l)�
΢8(j�o锄Ⱦ��=a	�'�D
y,�*lͲpZ0W7gD#��J�ڨ�rX�Ee�`�[� ��
-z�x�GҀ�]�=[wz�h�ո�ic��85��r�����Z�l�nJn��l�P�
+���� ��Z#8z�F䠋��&;!�p7��/��-�
g�
`]�f�T������XDn�J�ةG�^,H
ĵ��Լҩ��f��V uM��ȍd�	M���*��9Y}h���i5ݔ��,A�߄d�$g
��=�y�İԥ�f0w����.�����M2	�<�
+*ù�O��q
�*}i)��S�FM����g��5�3��.�ԃ��
�`������S'c���c>&�0DV['_]5
+�P^]�6������
1�
Y���
V�R (�,��N���ö�
+�'���/w�#�
�V@]��C�&L�*�#�D�=����q+P#�hG���C���m��gEVҨ{�+��M�8�M(gS@/K��W#;O/Z0��d��8=2+�=
�o���Pg���7��L�r�"
�\O���m0*!��7S�w��0
}�n��=�/?ǝ��pG�F�U�����o���F&�Oŗ�V�k��G�
����ǣ�&B'�D/P���F���'x"
+ͼ1.�u�D���ZO��=2�i/�G�Fy^K:���N
:��A,"?q"l}9(yz����H|�n~��,���n�
���bf|�%:��;]�o�X,v����w
���^��E��F�C`;�z��D�!q�!g�Iߡ�T�g�
���
��Ob߿5
���aӀ��4�s��`��yD^nۜ�
*.
��I2�9��v=�@Q�S�P[dk�3���{�C#��W��Oֳ��8IĆ�U���	I���{Dl�SK$�����E���R��Iه�/�! E
�v�g�Ϧ�<͘B3���q��͠K$��� ��0
D��^:��C޴��|�@��ig� }��Y"����<����#Z�
l��.I�
q�E�=H��
,�5��Uh��3��bR�̏�
��B		��	��)���GZ41��Q�b�\�;Ĵ�9l{;
a �%�I @p)o
��t<x��h1�}�z�YM��~�w����>BD�{qʔ����������β˄{O
��8�� �M���v����8�$2e�N�a0B
�s � �����
# j�ҡl8O>��ȇ��z� �=(�CT�E�|� �) �?p�즨����'[A�  ��A�3���A!W�<{�s[ �kw�T-��:=čB�o5zd��2N�
Ng��Տ3�j��V�^�d�ajf؅�
�A<���=y&v�\
[4{�PN�%`���f��(�B�
;��njf$�r���
ӏ�@춪��G���yO��'��j9T�"�Yθ��>�ߏ�7�
�
Ygn�[�ߟ�	�[wB{���8� [...]
+��!��@
Ϲ��׸H�h{�eC*��]_�))�u�{]o�
~�����o��.�X캱��Z:���`8���
l�T{��Cj�=Q�ا�\��a$��a��a��{���g�a2���|q���r�v`ҭߥA���)�q��*�Y���ޞ���
����^��=�����=
+��28���v.��[�� �\J
p}Hm��� f=" �Ȁ-�G�����G�v�ǁ�@y�)DjE�S�oY,2��.2�@K�����n�:��=_!�
}%�{Oɤ�
�>��p ħdQ�b�̯�(= �r�''ŷy�b!��G� 
�)S�vN7�Ɂ�@�E�<�
㘷�u�Ss��d'�_v��K`s h�@6�c�;��}�
M]��^EBv�"�h��~h+��-�|L�S!��B%���\��/L
�/8V
�u��PB,q?b$�sw8Qb�w�
���AQ���3�׉����ق�6#
�Oj	Jds�Y
+�I����^E1f,��A�"ϐѿ�SԬ����T�gd�?�����B���h[уTi}aO٘C��
+�������
ϴ�G��t����tr|��*�!�����C��E�f�ODUVa�H
<��.6(��uq�;��M���������ؽ�!םRp���5uTdE�8/3>#Tr�~a����G

�^2�|��~�
�d%�sp �I��5@�;��V�X	�;�����(I���� �2�j��q�a��9�v!rM��p%������
Q��^��lXJ�
6S�9�����P
AzŎaϋ8�#�(b�ВIѢMg[i�Q$�,T4
+' xH$ڤ*��Q�MZ�� l�C��@�?��$�C�IN�
ʢ�"�A$�� ��zZ�:
+�����OU��['�H=
�#�\0+
�q=�K(���
�
[���.r�?�2J������޾}|̈�	W��xD
����`��Fn����;�$��_�Wbd�L��yi� p �҈�U=%��	*�D��G ���B0���՝�|܆�����
+��_G�]l�L�w>z�~�
ֹ���U�����w� �p��2
P�Y��
� ��n�8~j"dm�!�	����œ�@�
H�=ȉ�
�n�yP.Dv����_@('��"
���
����0�Ѫb�����+���"=`�ƪ�3{9���^����LF���]+���(D:���9���Mg��5
t
O���ˍ��VC���d|��)� ��i�i�?���9�O���Д��k�
2�Ď
(r�dP��R�
<�ע˂�ɊZ]&�1���
���'
`�M�2
 c�� "��B�~~ 
�� �׎`	�ֶ&�QHk�@�r#V��Qĵ)}�5�Ƨ"��%��F!7`d��x oL�I�����1{f'�]İ_'��׽z��A1`����S�4�_�E#��QF�N#�,�).���~����Z4;��h=b��O Ŝ�X�ocw6M��v��2�$d�@9���� �����T@볅�A�ݯԼ[v��_)�s޽f�>
��\)�	��LSȻ~bG�H0��]����a�����Ppr at N�q�M1/����ĕ�l��Y���lYQl�0�d��l)�A2o����H�-��.?�0� �}�w���#����B����b���lM*6A-o��tln�����6#���u����gt ��;LaQ
�U	�_��A����}����ܥ.��������'b3E���gMND��t ��!�v�#hM2��D�#0W��ܗ�ד��@�M
א,�9�/��ZC��'o��EIT�RIQ��6s�_-�Q
�Q9�Z"vd�йE$w�ڂ^��@� ����H�*���5-RT'H�)�3�ପ��Ya�?=�3�h~CC�}c�0����P8F�m'��r��D�	�5�a-	�!�Y�<�wJ���t� GV�@�I*�B�
��=`�wQ8�P���������
U
cZ�O���<'�t�8
���O/�*�;�Y����G8����D��Z�3:<�!d(lj����찄N�
�:��6C�gx�@��/e�N
��~"Aŭ������B�؏� �K�oXn�W:oEFޏ�B��or������A�-fD��}�+
��=n~ 35�'犓�k�!c�)X���{�i7���ФF�u�
c�,Qs�����:ED�NDd�HR�N���u����GQ,�
���ʿ
��x�pv�{�W��JF�
+7�

+]��:���E0�wʰ��/t����z��.���J����|�����Vr%I�!�a�F���@u<�:���8���@K �ҴgF
+�D�rKy���~�UL�G6��9S�#q����'ۤ�ƙD\� ����s��@������$gx]
R�RE��ד��b�3�p_Ǫ#~�
+�D�K����-E!
O�%��V�U���#�N��z�=��@Ų��MQ���=�Ԭ�ζ�@�ߢ�/?	�9ޗG�}��ys�Q��
+\*o��˝!	��f�@s;v����嗰׬v��;4м
��*W@�Mm�����c�e�xo�S
A�r��J��K
+��GܺײPj� �~�������$3��������Tvbd��tz��W��^��
�p��
+t�3�}�8��w4d�ڃ
ΔV�A
��.}�9)%��k*��"-��q�2�r���WF�kAak
70&�}4Q&vf?P)���
+Çfm��M�%�,α�a��
��b  ��^��r ]�P�tO�R�#=�p6��-1��p
Rx{��&~�[Fк�+nͮ�u�ЋL_R�{
bpz<���I�ȇ=X�1"=|]ҡn�δ7p�"�@/�����L�:��49~Ɏ
Ȇ�iۢ�̄�+�a˃=�88��Σ��Myc6Y
���{�JUO�'*qZK��3��ɃjN �vtV�88��A�O�0l՘�V�Jա��K<�\��� Iaj0e�vipP��UUH�`��J���l�'q{6dpVg��=Ӿ�Ü Y�(�M
+�9py.R;��Q��P( J�!��<�%x��Y�!��^(&$���;B���=��yk"Q��sz@��p��	�O"w�ˆ�
���*}čgύ/&�p�-��<��

��� Ue�
����x�Q�3�-��5f^ck
G�

+�I�i� �������ò�;���Ht�(��A�L�y���"�PV��b�Q�؄@T��6[F�UC*��ْ��"ӂ4�R�j�L�"�Hzr�I|��3��L:� ��J\<�(k���((�1@���L�ʅ� �Q��G�UT��-��!&_n	w�w��^M��C�� |īH��2��iD��uZ���"$n�$�;�t1��
�
 ��E�+���Ee
�G�ZkN'γT ����Q�ҙ?�:ڋ���6�O�(ʜ�>�`����v��9���s�aAQ>:���=f��ҥ�C5����X�dn!�\�v҇AP�@w��I���N�lY��K�_��Z4�^ =��d���9��
�-�{�9��
��M�4���2T>�� 0��ط*���9z��J��8.Fd����;�
^�Z���c{�]q�;�6�YL�_�i~�M
{{"\���K~NR
e��##(
�:b	�h����F*�CO5��h�e����Q�Q�����ZHQ��Q�TN/���
�4,��V�W�0�#ṫeِ���
s��J�
{H���p &)WOd>����Di�����Kq&�jz0�Zx����|L��C����RH��3�T\��^Y�+�5FG��������w|ҴM�+i�����QM�Z� �q
+����
/����t2~p���!���34�
"��`Ӳo7�+ at _d��=R�k�rH/�֌OR��֔N��f6���q�$yt{����^�G��&{�%�^���:�Y�W�5�tx%\p��B��P*XD�B�G��r�|=�R� 6m{Uc�B�mzi���s@����<��]�4�)x!&Aɴ�`��~?���H����u
 p*-dP�{?�Մ����k��v�K
+��,����|����@;�Z�s���
`����w�f&����u>�#2��K�WB P����
�G�lv]�)
�3�S�C���
b�/`��ݣ
}�(�-K
��
�kP`ln����K�0��H�۠
Lb�
+ ��Q��<�c_��P��
k�ǁ�L䥧
:!9�<�S���U2龻ꊉ@0�*YI��
+�6�=�������M�������S�`��:�J�-�Ƞw�W�5
B}
ʑ����
��K�����j	�"g�<�=z���CB�ep~�A��<5�H�N䉱?���s�J�4��A
+D��Y�['����7��A�9����=2�O
p�F\�rODN�:)�f��D,@�=9)UY5sA� �
B�k����G�Kp�k\v�
�V&����)Yf�c���)��e�ӥn��%2}n�������>o�d
y��\�Uw�X*��
+�
��3
��BJ2�,��	I�#}wJ����,�y�^�ZX��C�G�S9��B��8�Li
�tcf���ҎB���(�>�`�CC����Mk+�"��p�"����e� ���58B���
�J�%J~=G
+� qw=Z�@�0	 W���r��lD�(:(x@��|l}�o�KS��X	Ry<���O�bQ�G��9[Wx��螣�
%�:�K4����7
+��b�e�=*�� o������G~�m�XY
q��!3F��y(YA�&�D|W��j��ԮS���a	`�;�3���Zi�Ȏ�
��
�|�t;Đ_W$=�>==B梋͵���	ng�
!O�g�~Jd��u�����d�(
:<���
�֩P�jx
+%
��D).vݽ;����F:hÐ
�������P�����>�
��,
���jhg��f���$�O�
[i��TC���H�M-)���Fm9��-��T�^�#���������ĥ#Ek���{&�A�@��0��
+X�|*�%�8�8{������B�9!J�B�P3����=
+�}dB� 9�, ג���$�x�U��'`�Ho�N��xB:��Q!��吱��G>�
B���=J���
i���Aw
� ������L׬̓k�H,x�f�;2�����H�l�o�*%X����mH����
�QU����[�Fb֎�}�� #��.�V�%<Eo���s�nBZ�U?`,u@�S}Dë	�[�kN>AW���-.���'��e�
0X6�G48���#����Y{�][��<�	��)�AgdDdd6�� Æ;�Z�P��(�4������k�Zs�U�ceΙ��q�/e}�
+s��@���;N�nO���v�M<�ta�v��z:{B
��v����N3�������(�L0��7�*kvb�.�+��\i&��Y~��Jy8�@e,
Y�X_^|��9���/
�M���X>T�3${N���p��D�]A���(py$W���
c
+��t8Қtz�fpL݆v����5�C�^-x�(u��Q
ҹGۜ���.F�X
@)=�_cxV*{;;�c��h�R�<4"�撝uT}������
}�����
~���w��:Ε8A�Y��"$��)n�zUD
ϯ3i����f��Rdx

ȇz�DtE+��Y�TN��+_�
��D���-� �i�9��rh�=�5Px��`�T5^��ڔ�Q��|8笧���B�4��EƉD��ci���;B�3��G�V�|��&oc�mQ�Q
�iAvwx��C���Q�"��PX�V�棗�퐐�c��:�Y

T����x
.`�U��< qYXy�hҤ�=ɠ��8�3_U��M"�b��B.+4�6BnH�g���Sm��㠌������
Z0����¦���VǕnUЭ8��|�Co���P�1a��S+�Y�=����ޅcGv��� 왩4j��M��dɫ데_x at K��.
({��/�o���[������6
+��e�
弇��zp#�i�ʞ���W�7�2�z�q��Y�OlkO����W�=�׋
�{"���R�@VYD�p>d NC�f"X�".2GE��*+\T��c����x�;�l�[� ��M��S�3�s��ar��e�5�g$�ؖB罣��Q��y�.
QJ_�KC"�#.j#D��K�N�n#2?�;
�uHI��,x½��	xɁD
��o�����ƙ�F�A��y����*�FП&"�1t�+x��%����Ҵ!��w��#Ǣ� �X
 u��2���׮�V�V�}$� �ۅFޡ�^��1����ޙ�:��Аψf����e?r;��"���:J1�>�6��3�2�wq!�$
�
��@�5UB���?uAo�Q<�_���p����a�5��3��t�!aPlp�OH�� 1Q����T?`����z���� 
��twO�z�#�,��I�
+�����M�
1n(������ޚ+|y͔g^읡�P�,凜��h� Q���ڠB'
+
����
�&��S����BJ�
�F���6o�`�q��/k�+9��ѕ@\�~�0���;�
�]���dO�U�4B�&#��E���h�>Y�`��:Wa�á<f ����.̯ƕ�
�aZ}�`I
sG�ܻP�~Ӣ��b�,։J���Jq�9�H����QW�-S�yz
f��兼D���{d�
��c  S;U�dq�����Jz
+��
+��KC2?�s at o���[�x(��K�d��� j�`�޸�`
��-��:@����
P�O�:*��ˎgT�t ����Ma�a
��`�`4��˜V*��<�tx���!��
���
��T��j��v�[�<�3�\��~�ʎsK]"�S�q�����W
��&���?���
+�D�vKP�իq���.�1Wf8�S tE1��
��_�
�f�I�����.W�qޒ�{%BY
+ĠA�Q_����X�ŸpĤH��#22#��
+'�-��F8��Ilq��b��e[���"�wη؄���d�6d��(�,�
�T�Y�/
Y��1��ґ�$�
+��%
�p%B���.��K�
������l�{�U���o������Y��>�8ʕ-�~w�~�
o}	
��=�^}��ѵS�
��[�@��٦�FEI
W��>��Xn������HRZdo$�����b�05�ީ���:e�0^��rS�`p5g���"�8
�c���c�+�
+���w0Q��;�p��zd+�ݥ���=�3Z�!w�~�F�9v���hj'7��Ө���-]ь`
'�"��
΋gzBE�4�Y�f�]D���
�^%n��,N
xI3��
+�vPJ�k`��VQ=`�*�~!m��
��zA�/!�v�d��h'�hdJ �L	U��E"���TW
���,�K"�7�ί3���������2��y����km�[V	C=h+ m�X� �7IjJ�3���{=p�p�߈��\s͘�K/��N�(�EtK)��ԛU��.H��ȥ���@ ��W<��HYN�h}����-K�-f.��N{_��6���3m����MY�:�xhg��A�Ihx����lP"�Զ:�ZVk5�_IKvI���Q_�	��#�~"���wZ��eyIg���]�z_�
T)j����4 �����U�?��/c���l�<"�o
y�6+HW�
!k��� c+��,�k@��A* B�&���
 'W����l�V�w�����|-���tJX��M-Iz���$c��Q]ק�phd���ҭ�̕{�B����瑁�ѐ6FߓI�k
� �\��b��>�$v�r�(/��	�����%�����
��U�T���X�%�A��$Áb<HshG D/Na�� [...]
+�Eʷ'���v)��y��9|!����w�I���:��Ð5�$D�[��;��	ёR�
���3��{x�s��U�&�
^��<�\��ճ;j��fCC�X��^�y��U��hh�'����y��������x�Qx�p��(�2R�
�e<yP��_D��5��柴��
�/���?����;ś��gtVb��q
-����\�.�z>���._j'A����V�p=U
+��nj��,.�Ƚё�EA��ZgQ0-���C
�"���L^X����xG>
�s�'#
+���,�c���R�L_r��c�
#���4���aG��)Mb�*��IE��'F�)dK�LH�
+�-r�3��q�����|[�<^Q.ta
+��]҈�T�ޢ���69
+ÞԈ}�ʈ�x��Ԃ�-
/
�� :W8�����J��
�}w�B>BIx�&���k�=י��Ly�1����i�6i�ʞ�����gf�h>%����iH��=oAҘ�
�
��R ��K�?I�FEQ Q>H߅2�R?�&eeQ B�
q�	&bjt�X鮯Dq���䧠���>��T-��� �f�0�.�(W�u�=^i����b�{��Ep}TҤ�W�3�M��{kp����-�_I�#���t���F�=?
�(�wC-2��!@pT>�#� �\p��|
�%–?�H���ۂ�*R�0P
B�����@��mi2TfMx�
+�u�SF�P񺲹��R���H�Y���H�N|��:-�@�Z��:�����+^&Ak��bA\+���v'"�	���/�͇L̪�1ѿ�Q@��q���w��D�� �7#��N�9�N��&}]z�?0ͽ��]4�8L�"'
+��5���
wWL:կ��g�Y�����`е��Y;�A�vQ+�Tp�f%�[�"zE
f����
�o����#��m�Ҙ?D��~F�@uԙ�{�M�\1b��<+(4(x\�^y���+��扖�(�,� G����Y˓�
`o�Am{�S]20j�B��Z�)}IJ\�ݔdu��4�hf��@�
(��d�I��}��]@Z�c�:K/߽^�t���́�W�j�)e�ط���.;
��Lv^A�;Pp&{ݜ�5���8}gd��/�Q��
��^%�;#����ax����]���>�j�/V���[Q����1�M�1�+�B��0�J�D1r �^��q�/v�TJy���o9#�g�.]�����>؊g���v
k
+y�.�
����=�T-׳h%FNX�8۞4]2���j
+U��S�����߁a���`r/�\.�R0f������n
aL��Kv���Jә�b�LZx���_��l�AI��o�<��jC�
�f>Ї�R�&�R���k���4�Q�^/��H��0��3cƲ�!	
�
�֍��c� ��;�������\/�C=�&��_V���y� 
+
�k
�;���@����;f�$C��[j��>X.�J���V��K����Wn?��Zy<ъu�8�N�~�H�J'B] ��QOD<��6cΔf��S��O���" 7R|��?����15h+ӻ█ ~T��Sn�T��)խ17��E<�&!��"�YpX��K��_�E���*�9�Ȝ�M�E�z1�'��Q�"�d���44"7�@�z J���U�}�~�V�
rb�8~A����#���-ԉ���8���W�M>X���Bq|ԟ����EA �(6
)�'�x]��9��
BIMJ��Uwh�j�\w����QO�W��QTCC-n�
+�Xn|�f/3*�f�#���Vd�jsx�nq�&�ͻ
+yʸo���V\%vO����_�1ԃVd��?%���^�',סL�0�K��5�#]0�� !O�e��[{i`���y���k\��ħ��J�
��A�	q
�b��+�<�񺷽
����s���������~�ޠ
EzF�V[�$�1��t�Jj���z�=����]=��V#�#��};#�#��ϑ���h�Y��
<�]���񧚗D�f�]::N!5/
+���b2����
+"RR�y8-�|D��b�u���;�8]� 
�҆[�̋�W�ij� m�c��x�4�����qה5E���W��
��dI�#*U���f+�"C#G����#�u32h�(�3Q �=N�i%��2���+7��b�-�����]�+$ĺ"�Vp�2��"�t+�^�}�/m�?"���wml���
�N�,ɺ�Ӯ�.�@��������M���,j��6��Ⓙ��ɛږM��Dgc ��
n�K(�3
+�Zf5O<NU�Y�9Y%Q��>��F��M8_5ý�}�
?!��+����N��̆�$�{�g���m�� �ᕗt�
�K*mz�}��|+p���@�H	s��Bg�
��?�������W8k��u��r�ses�]+�z8����U}��{ه�%�H`��L��
vx�,X��������l��o�F��L���$��
����7�9|S�}|Y�����$<�s�8�Hn9VM�Nm��.(�;5�6�TM�(�_�ÁhT�sERש.8f���'���ñZ
&�R.�׬� 01�٩T���"��e��(��9���J��Ⱥ�@�~���p�m6K�š4�f�������'#�W7�_��(�Q�;8�D����A�f,H��_<r���džH���(Q>��zIΝ9��G�:y���=���{��+�쩿(t��i�
aڋ[�~0���M���K���%���K������T�����sԍj��mQ��^���z.B����
+
0”�D��+
�+�mC{@M%}����n4��W���*kG�Ւ(E�!��QP1"�3k>=��
�0c:�:2��E{
�:bPD��>�ZD���z��4C�xDŹ���=�ſg��E�=�_zK3�͌
͇�<���`�ǿ���|@�*��~���%jU��R�h0"[��
,��֎��%����3Gz��g���^�~�`�՟�s������K,((L`�������Y�;���x�3p�'�\kc�Γs0t��� �kP
��O�k|�,�~����Q�C0cA�d�S�e�/��R}��+:`j����>$���
Z��d
;%F�tXc�Т��O������;�2�mר�3���F5h�	2��
���	��� @n㇈63�:���ßG�'��'"��,_�]yi2�/��r�34�4�)�G��lE���(��KI��Ҡ
+P����
����͸^.�S<�}Q^
�V�<Z0�
U�
+w��;�
��k��?�Nı8W�?�`>�E���
�"��D��X$"
����XY�r�#S�D����L���юJ��79_]3an1�\��A��ZP~4ɸc��J
�Oy��z����[2�g�:"KwA3�"!A�qH>Н�/�x��{.�>"� v�мr`�Qhpk�F"�� 
E����P�38�Z%�Y�1����5#�
6?�Jן�92��{x�Ϭ��d��� ��� 3�
��� ħr�5z絼6�
؁�6fEwus�o���,FTooZ.��#��Z�-��
?
�2Iv�=���f`
�O�O-�7��~�U�;�eE�٢w�$v�*
z�S%s5>�s�8��㓽׶6���k�%XK�y�W�~�x�q$�b/~֋KA�8|9}B ǽ�DY/�[��/����S�'��][��KM��-%o��!3�!o�L�~w�~O�c�/"x�8� w��c��?�Q�x�E	r�<����fl�AFo�{q�A�
��^�>�m"S�V�^:�o��������+K�J [...]
vat�U�(�
g�K��>"f��[�-{>����U��9��A��O7��!��Ox�Hу�vK��(Emx�/Qj�{>�
}Hg����
�
e4�ڷd��k�0�YOx�����_;z�{݅]
�j}�I3�|7ص��~���;��a\��ߏs͗�;���GMdm������oA�&]��	R����\
�됍*�(�sp����d����1?��b�hA� )r0~���E�P��ߴ�4��
i at M���ZTc�
���:)��Qn�B�Ôb:u���n�G�?V
ɕ���S[��&����A�seD�i����PPA8
��Oj�i�JrEԚo��.U��c�� \�"ڪ��zS� �C��y�n$�aB!�\�#hY
���q��
9���Iт��|Ǔ�
�^3��/�s�}=�1��;�X�
��o�R
�J�yC��]_ 	�2�F��쒺��
~
.�oA�m���^�Y��kM6�����qR��
JT�^q�I�t?Rgyn��#Q
� �J��ŀJ���#��
�
Ѓ��J�>���+�e��%<����!@�3rF�
U��d�.'٣lUo
)Fr�T�["өkN��@���-~#��
+y֑�HvW.��}�/G�/��%'�x�
(�:K�&A�<�SX ��������wDc�g:�(e�y?�9}�"Ϯg�o�
+��hu
p�%M]`QD�����Îy�� �J�q
EA���8D����C2� 9M7F)Ⱥ=�{�����
+w������=w懼�U�� ���8�
+x�C
+�
�f,7�b�ewV+��C�<Q��r
+�K��C�Lc�Ut^�d-��� B*��)

+� �U݆���ZOH�X+��a�݀>�)����Ś ƽ�p{8X��B�6�]�#�6���,�T]�
+�A�Q3Q ����/
��P�Y�%E;�"F�|�#�s�����A!F^4QK��u�<-�-�멤�Gh\�M�l-@'����*iվ�|�}y#pM�X��֏x#(X��gO
�U#���S�5�h��*���
�~
��mBu�5'B�2�6#W�mV�k���^���	�
���'H���VZt2�A;!��K�G��`T{���r|�B7�fDW��ˇw^}����#
m$���\{>����A=���
�c���<
+Py�H�dg
�ׯ����үh�R��خ��
��bso�k���酘.卯H�
���Rc��Tk��	��H�[��i�־���Z�7�
�p���+�e�2
+�DFO�2q�
iDۤ��;���u�!�����!8����^�i� Z�95Ty���|�
��Aޚ���?Ǵ�$�@��pv��>"��3�q����(H�.8��v̒y}�� �}$�x3�vd�
��`4ԕQ�E�|F���6����: �;Խ�2%b 	��"�2^A���X�{\
+t���/R�]���s���������.
+Cp�'r�Y�H�� 
�L-6���'�Ӧ�Y����q�*k��=ӻ�1w*|�Xj���\[��
�&"ԁ�0ҷF �$�S��QHH���߯�)�!�����:S���GP���Y*�:q�1���UJ�qp��
<*

��f:�h2�/G��9	�������0���A_���nRjZs�%1̺�:�P&�L�25�!7:Ks`�\��M��؊�Ň�(U~.m/���
q������'+�^y_m�oQ�
���P�
+��z��`�Y�5��YK���_k.ahB9��8���Ԛ��z����#�.pf�r�wb���7�N�`�ʇ�ve�:M$uH��":A�>��i��P�t7���kmj�����ҷ���Ä�8�'ʉ��kN��`�_�v���
��� vՉ
N�^7c
���(w��'��<�^�N��ih��ƨ�-�y��|��#K�yJ��I!�uw�<,bUb�)��<���ǁ��(j�d6����2���b*
�
+8�U�R<|�6c'B�C9��-�(+�x�-��Q
?hאȎ��AB
QP,
Y��a0�{��B�޷��QU
��"���*c*�{@�1�
+��ŀ����Vv�z�
gb�~'?
g�NR�>���Zz�?D�����{W>���0�)��"^�'~^*Ne䋡#4.�3%o�kx�NͶ�[s̷��2��#]e����9����<�

c�?{ y[`�
+�Rhf����\�^ͭ��v6��狌 !�yo	��lk�LA�ۡ?����H�5EU�
+�Win�8V��+(ҫ��4Ҹ���?E`�z)�{�%��H�EͲ`�������8iWY6�AwVȱ��3.�^ë$��8G���*�ۃ�"+h�RZ1Pԕg���輸тZ#�k����pK����y�3�
��Й0�h�0��H�Dztk�3�%^��?���,�F�bqV��S9]�i�Z�MO�g�ȸ��1oׯI�k��
eQV�����#P<�S<+�
�`��>7ڴ��G�s���‘w<��, )��ҳ��7��\�l0�l�^Q�Ǻ�n�Ŗ1N�1�(�� �ط�VG���w�"����r.�@
�@��~ �����pə��Oa|K�EA���ޱ�؄�O�v��F=\���^
+�e
+r�a�����ܣ������?���w-�o/�)XJ
��Q�r��ȭR� ��T	�b?�r��C6|:��:=����UÖ�u at Uї��T�N=�v��O� }����;J�K��^S�&�ޝ)Ck��k> �_D��5q~R��I:���`���D{����������������o�������������������o��o��������׿���w��o��T?��/��?������������������?���������g_���A5����n��k�ϝ��� �|U���D�u �=-f1�r�o;_�:-ƿE)�Aݹ#@��lp��h�� -fĬT�w]����QĨ�B2:�1�{j����5D}�Z��'�.�j��R�{ǀ�u��2
n/�1
#v��ض�,�T��xd�0�$O
?R���bاbhQ��	l�����5j�]�U�%��D��1h��sD§���Ɣ�dCQ>�/�C�Y��{>��Xv��ѽ�i[4^E [...]
+�:��]%�qt
<���ϟ���+(���i���
+�e�#�aB��5R��
�M��:9�s�t�W}���G>����h���<@� ��x�q�(;�n���P�wx
�{"Qg"�y���9j��~P����7h1����9	���
�C�9�L�Ιu����f7���ܩ��σ�	��[h
K������?�T�`�?��Ɏ���>��*���B�M:M�^�U?�{Mky�DE���mΟ3,�Z�G�ڥF�
�B:K'�+�^.NMr��:S����,ݯ"7
��)��;4S2�e =P�f��T��i�P7�oF$َ�
�t��f�Of2�(�{h
q�ֽ~��R<���|o��(R�
��=�+g���3Z���`}�na@=�`rR�x�5c�������j�%nҫf�~�
�!&���{�O�GM��#v	����A����
p~�
+
}$Q?G#�R������Y�eWtDt�qzB��O4z� 4�����M��^��F���+�
3w?`��c����R)w6ʓ��ka�SOK5N��=J�i(c���)��υ��xi�H9�̮{)��}=�,�#��xיh���y�v}��
���,�ڣ��:r`��+�:����3�E��g�����8�Ej�#���nC�%_Q\'��aʣU�*1
+
$"�HҞy�!O�z�
�gR'/�N�*�r
+�&ˡ�wKl&�C{�����Zx�yV�~ޥj��*4�^��
��+�\@��m;W-��"ՊPZo.E'�(n>��7	�k�6��@���'���k�<r|2��1d�3=AE{q{�r�P�(&c��O	
�����~�J3�q▀5.!}��{���D[ [��Zqh8K�X0���.�����wR�,~��5�{T1�Y���oե��5��NMO�����w�9&@�Sw�p�u����~wf�Fz���z�
w˒�&�g��W���sPP�"�yl�
+,%w�
>�#�:<f�u'�S��'
�>���J
G�D��!ʲG2AW�|��X<uC�*�P�o�_�*?��\M��"K﷝I��z���;�{�S��ٚΓ�;�q*�2�C��?W
�R�i9F�
w��x��}�)�(�;�1 ���M�&s�Jj�aT�zp݈R�4w�Q�����R�
q˗����k����V��6m&�,�j�:�
���WFj�f�77p�?�H�҂$엲~?
���������E��U_�J��4��d
a�ɂ~��
��'E=C�.�t`�qz=���lHBJd�j;s=���;
�>
�ćiuCom-Q�Z��U�<����	`Ή_Y�+#��|�兿�
��ݫV}"�)��s��.g��끅0cl�j�+}'0|������k ��
BG�� �U���js�X�v������kj���3�V�!p��LQg!؇���V�=n�������Q6�;�)e>���o�q*;���qp�g�e�aZ��}́
+�G H��V||6�&��!�[1Hh�O���3�`�6aL���u�&�q J�-���#u?�9�Vyg)�_{�a��Y�zCe�Ye�2BJ�{;y�#��\
/5�<��-D�� �s�.�g�1�TT+`�qa�[�T?���f
+wa�k�?�ܥQ*J4x������?DH0� :Л�}F=Q  ��@�Է
X��q܁��i;D�����}Dd���v����8ס
ǣ�Z7w��T��C��H^O�����!
+
c9Z(,�X@
+��%������3W��p�q�"����T��רN4T�<��� IJ��������"/t)����{3��z"p��n �BIp�w�6P
��;9u
���0�2���?qf���T�����
������j��|�����Se�T7G���8���V`x}��j^��|�
U{�!����멄4�#XeT��|>o�
݉��4"
ʐ�N�!��
_��{Ο;��;��g`���2h���"
���:
��χ`g�xp�C�n��J�y��h��$�����A��

HDd���\�D�$关<:��c�d�~� �g�&`�6��
���P`0�՘?@Ӭ�5����|�z�
�a`
+?�Ș"���Ef9ʑ���א� t���׮R
�'����;
�T%D�-��
0M�_�U�r|+k�BOŇ%��֎D�K�a�O#T�?���
�f"Z�/ߚ��p(��B�Q�
Y�kd��� ��n�n%v�7�{8ǦD���+곯�W�q��
��Zz�<N������}d�w؛�
�Ff��^)��%}1?�IQ����ԇ��L����t��K�}&�� -���Ѵ=��ld���
+���.�1
͎5s~�s�;$�E�?����z�B܇�~�}2����KjF���2b�3R��V�\_w��?D�	'��Gj�À1�Ԉ�`y,�L��	��>�����y�-�!���p
@�(�7p +XK�g����Ȁ	#����
Hh};��O�!��^%m�i��ѐJ�xjW�W�xyH� �f9=�FB{��~R�7d5;�<�-���Z�ۚ}�(��Ƥ�������Q
+ i�
+��
��ј�
Q	J��2ʇ�I
�����ã^˷���R�ѧ�rQɸ;n�`^�u���S��
%��j�|���
�b@1���:!iN��g���]vS�\���8L@��9c�sʱ��K��
��Qi�d�����(uS�X��h����ԃ�
�
�ߎ��md�)�w�SK6�S �^� ��P#c����g���N�$�����8�1P5-h�u��G�	)�i���ĩGt)gj�,�����ȊbML���<�dz�
>�X,�d�V=l@�k
�- 7���<�{�&�jI�cټ����G�R�Q���=�0Ж��0֥;KsR����9��#v{��?ϵ���.�YB�v�'��k�o:�<���Ə+s�A6�uO�G!�+r?�ϕo��<�I��Qݛ��ԝ���A7���x_ʹ��=���	Go��iP&���៩�N�Y�]�}��QGY"!a�l��z�����A
Q�A��v� #���!m�o�dw�N��x
G�h���J�f�c�T
ȯr:q�ǛZ�����7͇ [...]
+�9~8̮�
M���u��xQ�(���Ӟ���	es����n������#
�
T]
endstream
endobj
40 0 obj
<</Length 65536>>stream
++1(D�kjW�#T�>3m��
�
&�J4O���~�J��`���6./�F��3=A제kb
%$�r��%	�ٮ��� �2'Y������m!��ݬi��g�
d�kn��s�
k��)\�R��Fܟ��E|�LAN��

����M2����w)or_*bT�Sr��:�ek/c1�
����tn������x'w�9�٦ش}��#�I���L����t#s&N��ә�/�B�m{1��)FJ��#���
�޹À��
k��,bRg>�3����-�E%'y�i�.E�}@�(��&ǡ��P�0�X%6�	���}�Xw:�|�l ��Ţ������K_1M�p��=s��h���{�R����0�S�f��;�QW��X��|
�F���T��4�5�/��j�I�YG����� #1K��`���z}?��\Q_�k+(٧����k̮ؑ�mugz�����WW�d���()iB0E�ez\�a�Ԏ���C� M��3
+wx${���@'Ϥ�QW�
��9�[-�*$	�/<��!���z�W�~P
��r̉��赳7�	s��ł~0�WF6��8��I��3���7O	�Ik
�D�ǘ��)����]�+3S�)gGa�8�b��B�?�,
+;Q�G�H�M�悴���2\�/x�
:��#���	�5�=�P
��T%:
9��-BKk�{�n13���
;V��H.�d��ɜ�s�	��uՇ�g�(���(I�I�˘�!$�l
�=��@��Ǟ�'뵼c
�:�F),�����>9�2N�o�
�_��N=.���X�w�6�
0OܿZ���-X�B��ZU�X�`��Cy��p�>�O�s:f-����S
��&�CлPV?�r��A�%V��C6W�����߯"���~�C�g��E�>E�E�A���9�߮��	�

Ȋt���S/�ܳK%��\����x�j�ͦ�S;A0J��
�1����Q�E���bQ��Nz���'�
��Ӿ��+w3+h�
�~]�� ޥucG��%�
>�=� ����p]5>Wc�L9��Zw7M.�Nc��?�˸��d���^�"Y��s��x��wfD̗�I�
;�R�r4��
+���r���+�-�>+}���P�u��
�[�=m�8Κ�
v�ӯ�(m�^�g����#о^�oAԇ&��h����o�?01�GM
U�D��kK��*\<��$J<6T�H�3���7�m�@/m�SR�J��g�c A-Q^

�ꂫ��t���l{�ٖ%�g�<�0SHf����z跖9)�oדc'�(��M�a��\���G��������>yj}bT���
4}G(3AD�\��_gr���Q�4�R$�����q� b:���.�!��gz"ü-j�
>�8��›�z}��#��mC$�j�Hgf�9[H�5���
�d���_��Y�*�.'����)�53ޙ���IY��T
�
�J�T�V!��م1|L���ب�#�.��#P�
_8�o�� o�e���P�������E�
q�����0
�ZIી��k
�Y:�|3B��Y�J�l�]� _���ȵ~}���ML��z��%*�ODМ%B
+ΠҌ>�ɜ�Awaʪ!�{k��V�v��څ�+,�q��)���)��y��j��ӹ�4=�r�Q�h�MΤ_´�q�9�,�,�9S[�փ��ߴ�f��{�y�U��S�RAj�<P���\U
6NK���f�؎�` ����?#Rk�&'�í����P�Qf�"�=.��Q$���y�9[:	�,�['��&oׇ0ڶ���<�#�By����\�/mL��%��5���t�[YՍ��Pbn��@�hi�D�
:i���-HA��v�#�?�/����V��x���(�P��P�������I��G����i�^\���3ֆOu�Z	�i�t��'�K�|]�\�� �5j�D�/$]WG�_{�����@ij�\�k��uk�&.��E)i
��{(�.����<�	4��#
5 ��[�t+,6Ԍ���z$�yg Zsg��cآhh�W���F��X�
+�B�����6��+&"1���΂?D�
�M�>>��Zq'A��/�#T&؎hb�Ì�����	V������p����
�5>Vx~?!TZN<i��s��}��}A�]�6H����w�}2Lܹ���;����1c��^.W
Dx�վ�ڟ�"z�Gx1�����G�#J��c��D Vr�D���T�eÆ���Fo�G�YR�F���n>�k[�FO���q9�����~���)�Q�=
+�G�
�r�(
�?� W�Vp��']��	�O�(֗P�|��{A�#�Y��ȡ���P�(g#E .rv���s�� \j�Vcat�
1ylT(�A7�5^�虪pCW_�c)u��,9���fرX!I>��	�bt�{,�`=���XXR ��3�+�����gJ���8�
���=`u��z�␎�
+�|�[��Px%>�F4�����r ������

�}�.A�1���:#���ˮy�,`���̧�
��w��G�$
k�緿��{�R�?��
�����5H
���D�܅h��(1 at DŖ�u"�m
I��
�^*"��"n�	�9Q��98s
۠��ޡ
ˋi)��
ϱ���褒z�f�4ciX�g�
�o�(n9
yTȕl�(�Q�I�JG��l�D#~�� �G�0�"��@��������9_S�����=~� eK���g�B
\M�1�o%B�
��G��`x�;�1���O�5
%���Fa�d�m�γ.��>��q�N(m�4%�Q#)��j��
�����V�ŢT`�PQb���e<��a��B��
JN�8����v�c�SZ���I]���v�Xq����@	,�^bi�3����T�]�*��
+���i��k�++�`Q:sՁ^���ßjp�c/>��x�������p�{�����R�ײ˴��.�FE,��
�P�S�+B��}�7�fK��H�=����
��7eE��
�S�
+��@[���E"]�
+�v�I���K��iF�~:S�
3
�8��_���!5���'�ئ��L!
Z���T�gMg^w,L�t�Z@�P��Gf�R����^�$��i�
1�=l��M���\�^�_�&�/�b�ƨB�o��?0���C���<l���>�]�Bu'f1
+8�2�}�#D
�,#h3v�t#Zq��8��<(�9�y_e� �r;��f��A���3Q61�o���?d�T3��w�
s���DO�'V@^�,�G;
�l���΃�����
7W8�1�
a��ۋ�FF|��ܠE�h2���f6	 �甗yg�Eö�@���IM���xu����
�v�^~:{�Aՙ'������lǙ�i��|%j��`��|�.����π��G �^���F�����ל���5
�� �`5�V8H�*�0������r{]� �M��[��4�H��z8�	j"[TN�����G��~>���k���T� �Sq^7��
,�~q
n�i7ù+g��w�,
+<l�D�*W���:�/˕�WrkHo�m��1�<�ZX�
����	F����\rh��:
y)phf��K^G�]M�C���g�K��п.D\�q��S�+���p_!_��0�뽊�1o�:ܺ���%���//󞑼G7��.��ʌ�J͝,}��S5��;�?���yߏ�KHj�}�_fdH�P�}��U�yڠ`3��
g�{�p�a���hߕ�T<!j��Q
'���D�/&�����v2��χ���0?[4 X��*
�0
E
R�� |p^*G0��3e�	&Ҹ����W�)��]0�]��A
rGs�����E���W���~�`�CE 97�P�!�󌊦6�(a2<���
�_�h�Ja;?�Z:Fό|_[��>^�C1�p��EBί��
M����
؛�M���s��|�Р��W6^~���D�*�_�Y���pdQ <�)��PbΘ��LPb�5���Xd�>������Ev�-��ؔ� x^�M,w��^��@�]�!%{
���rAOâq3FX�j	�S���_~?~�+���
�a
+�f	A�jZG���.����%���菫`z K��Ý�3�	�#�Ҕ@���5��`w��B1�S�)��ƭ
T�y.Q�9ð
+Bp驾z VΫ������0�^h�-1�1P[
Մ>�
��`��$��j�
+F���@�SD�	�/���8����,�ִj
Ѩ�Dq���5����;Yѓ7��l���|�>^
#�GT�v�� ��
�oA�n(��&�u^D�l4ԖA�9D+�Z�2��׉(ن��|
E7�p3':������l�%&EB�l�Ft4����/5,S��a�\B�5`,9l��4��BA�1�Ds6��e�J�/�M�u1�����������*��mf
4G^v� ^�΄�[8�[��u͋z.�Nmwj4mT���b�w�A��A��XF�w�L�
$zI�=�B�aUG�a=�Ƚ�E<W\����
i��8���T��*���bs���������?U����J7�
:O��Xl���k��
���G��8��'��!�����?�Gmu6�D�r��t�\t
�Qյ=����������<-
_�	eQX'�}K!̚F!,���
�S}}����u��"	����5j�xU;Yh���>
��\�E���L�o�L�bg
w0`��03�f���'G
��y��=�v�tNԧ�T�7�p�f�
���J�ۿ7Fr���X6|�f
P�^�;��ʀ"��H�显�duza�
}����0���xi̠�h������LZ�4++6�N��_6��&�BM�j�?�.Gt�J�U�q&
yǁ!Q�&i��
�%���5�T�
�C�f���n,��Z��P���Z�0�v�W{ڄ]��T�A��D�Pk� /�~2q"SJc�J��+Uu�~�/y���N�y2ԫR�
�1�\�Q`�
M|~�g͈Z�2����]	y������v��
��g��މ������ZT<���]�@y����<�tZi������n�/j��%�#� ����y��>��#v��D/�$��?���5k�
+Lq����[:��4�
E�+v0��	��8�E��Sek�L����n���q�5%��� M��F���\�Q��u�Q�D���DZѩ��]�
���
�"�Z����L6�����`!�/��X��x�8�my��$�/��i�8�`�J
�V b
�Һ
����`�W���lq6�P�wl$D�SI�с+�z�L�n�+�iF;�� l��?l[0�'�,���cld^}�B+E�
f�>
�����9-� ��*A$�'(��"*b���^&!�
���P�}�
9����!�*j�N�u1��s�Q����#�וE�#�3��X�����rBĤ��޴�N��.����ȩ]@"�v��Nh=�ˮ�ɓ
��B�#
�v�^:��M��c&��=��
r��$$>~���_
< ��#y%ҡ�$��'���b��y��}�I�/��#v�gD}@�#
��:k���vS)��a��x4�!�X
�q���
Y6�E ^\	�7ѧ>���j��;`{G`�)5��lU��N���h?�j��
e~]f�w���A���2�XGǾE���%���[
ADIrx���jL�L3�ȑ
�Z��Pf9ɝ�����3����u�;ҁ�B3�g���L��A$Y5��
.�o���L��(�(0K�i
E�h��L�!��
VP!���������ⶩ��P`���c�)̍V�6ZAzZ�g���)���� �ϋ-�;"!b)@���x,]vr���
{ř���Sut:[�R��@3�=Q���*m�l?�A�:Q��5�N�����Eƺ���cM�/�̝yD��\
�'�b8t��q�R��iˇ�5i<%
�¶B`�p"����[��
��r��D��J'O[WX|�.dwLJ���P�D��(Y� $���]�o�*:����;Hs�ܳ
��<�&4d9��4x�����e/���u��_��U�� �fڃ�9v��OQ��"W�/��;iƎ�+��ǾbW��e"ȿ��>� [...]
+���G ������@׸hp�;�������c�t��^\5���
�T�,6^�ڗ��/3��=�z���I�r$��i'�?q�KK򨉪�Ѭ��� �߄C�&	
9���8�?�6�Ǔ���u�̺�\�ZO�l�K5k3e[/�A�
VH���
+�-�s;"nfh�*�9+�!
GD.y�DC��D��d����9X��Q�
�4=9Oԝ���A^��	zZڨ�k��u"���b+C_�{�T���x� �+�yy`z�-��vPT��&�I���kr�"r������ƃ�BFa.Dç��1{B:�6

�%�(�'c�
+S'�ˌ�ld���*�Bj�����w2�Zm
w�4A@P�l2(H6U���j�,ԛnv=����=�@)�bT��NƄI��J��]��;����;����B�
z13O(ʐ�B~b��L0v�@JD���]��涃��/���t�*�t�
;�M���8��[�ɐ^�h�7��\׭�Z-p�Tݻ�}�;�9�w�5��<����Ι�m���:ҍt^F������J��pA��.�8��V��:�
v0<�}����ف
-I��A��>!1����z�� ��-FT�z�VG~���G���z���b��QK��U��F�7�f3j<�Y�P���A{����u&r/��-��u�?�J��
;�2�P��t�_��@ƌT4�|Yv�Ѩ�14��r�s
���Y:=�>9��Q����;�w�ìfB�'��0]婂s�Q�g��o�:�µC�E%&_4�Z�f at D�d�T#x�Q��Q�o/�›Q�]�"R�=����
L&H��.p�
+`_$`?x_g</Ԏؕ���W�p)p�U �.QW�V 
�4+�3i���	�
���Z������=�EV���G:�*l����	��ƾ��I����N�-a�n����Ze��c�<tE=�wA�螢�J�������j�����%n�
��9��ƌ츜��;-���|��#���X��?�Hsɿ��&v֛C�sʴ�ְW�tj����{y����>h��t��ڃ�δ�xŭ�V�M¡��C�clH�(��M] ���c�J0��+�>tC�æH뽤
���3�7{�%F��
%�罀D�u^
 C��SB��� ����p�-
������6Q����'
�b1ʼ�]� �^޿2N������x�*+����ͻ<N���rv�NsP����B�L@ې�/�����w��Uatt4|\D�
����
�+����n89ѻA;
�݆��\a=+�xƟ���Ӓ�E�y,-
B�r�k�<"?��,qF�,cL�؏�!��ˡP�^Ol��?���dP�D�(^ѿ��K�
+Q�t��kZ�w��v�5�L�N�ݎ;�V;���?��({�*��e_f�s�{�P�f4�z��9�h�`c޲t8(n<R#s<�ٹ��1L���Q��
gA_1�]�
'U���a�
_L�w�
�#	+�( ~O���1�·2���O��y^��Ly
wnҝ8���E���
��h�}�X"�<���W��FH���|zg�
+g���1�Z!�K��L�>��	��ݞ��d#�\�{q���x�`���Az�@�� $��N�+��u����Gye
���ǙG�ԧ~��aR+�^n&�&tV�0�[��.�u�R�={�EҀ�i�����To��'��
g�Y��
n&�RM�f�{��UO�d`�EfJ��;�:�
+�J WQ���NF�\\`0]�����g҃�Z�3il�λ�Nvma' �M�%+OE:��J�9�)' ��L�^o&�
��m4�4-���€V�y'�_
�$�P�J����h]i�*a3�
+�������E!�݁��=^:R��.\Q+�H>3\dm�I
S<Zd�Ǧ�m��V��,�z�!f�!w�3\�JF���9����=\h���@�'M�`W�"2�n�
WN�ԗ8=i	�odn�?@���?�ӥ8���f������h��KR��䬪����!S��8�a!�o��ӧ��HW?�&�^z����ɲΪލ7����gf�k�#�F�S�	F\O����}?��
+}�Ɇ�G�l��RW��H��8��RD�D�#�0��Y�
�=�8
��ʔ9&�3&�s=���
�R�i;�e@���306)���V�m
k���)6�j��	A�	�S�^*.�+��%�O\��I lq�
�RhRh<�`o�/��L����#}�N
�"�
�I^�t��H[��+��xt�t�sHÍ�Tŏ魲�-��Y�q�E`�~�Y:"d�[1�9�������P�	@�K��7�k�R���	��K[�Q�d	ۻ}UW��
�h�|������H���֯Wε8��*��@��]�����l!􀥺b�E
��9�~�z�:���}�Xr>�.�Rn�L�|�hWHU�����H;�N0�����N�g��O3
�;~�U��q�
%����X��R&#��|��% }�@P���HMS�t��k��-���x�e�
a���e4���}�7�G��{��@�����xo��
�F,��Oy�R���p�� �ŀ]X&ՙ�XA#�%��.�ڢ�
�"���,���� ד�ԗ�M����F�{|��Jڗٙ��MHG4�-!aq
6=j��xrQ�@��D���ӵWȟl��)�3�xDET?,
ķF}O�52������ڤi��|I����
�DM���,!bD��� �q+�-�4����2-�r/��t�yƅ�!L
��x`=�����b�o�����+@���ai�j;C*6V�(Xe������oc~��w,���l�(K��v�BT�<���^����D�ig3Q����n�
9Fr�
����E��p��宻#(�b���AC�H���oཊwtX�
+�
�5~v�
J�@Z�d�h��q΁Z��a�9���0��YC�~t��Y�>��8��+\�yS��-��G^�(G6uo��j�k�����1J��ڐ{��A��%K�L 9�C*�_�*)�v,�(?K/AIO��yXAf�VB�[m��2
����B+`������_f�L�sp"\���;�:��h��ӭ���
+�$��_5�T��{_Oq"�ŋ?��5���L

?zf��_��^/���W̊�ȉt�:�*~:�I���=��MVI+
F~�~P��X!.ş{�s��U�`����ih��.��d�v{���_b)�q���,G�n���k�&�{i��5�v�>�uh���Ԛ�� H�����`j��xM�߿�'�����
����>���� �dj�@-�*�kֲ1���D�P��(�x��wl�� V�!���؇�A���oѦ�U
�
��
$cRǧ�>Y̅�����m_n䈪��
�
+_*;��J
�fn��h���.�ӅP3���Ү���4#�s�G���pc�_gr����X�'���W�����2v,f��<N���ی$B���Tte�ؐ�Q�x�q��6��'й5-�K��!
 n��/�?`��~e����7���	B\�ER��c���R�@�4�\	ā9�-�s�D���Ѥ�l��ڤ?p�X�'�ZHk�;� �]!�β8������k
��!��,� �_	]�GG�|����J@Y+������),n���� ʲ�X���S.ל dx��,b��]�F����UB
��w�e��tW��೮i���l���>
T-�j�l���8��is	����0[hI�����06:���A��T�����w� � 	��Y���' ��g`9�!���tn�o(cNe4�����@O��!c
x�J��d@6
jپMHK���x����!!H
������V���I��v܈kr�e&:��jx�
���i��
�����+b*� [...]
W�D�W�0ހ�8LC$�t�3��G�#�����.e���

����`@h}�o�D��l?���zt��v&��ڹ��Ƌ�-�Z��ogk���U�����>fi\�6�E�݈���oU�/���������7��I�
5�{�4���.����?g�DD�W�DY/v�K� >�N:9z�G}9�FQ����2}ex
y��
=l�8yF�9�Q5�R�="}�p�?>��A��K��L�[m�G
+��*$������������v�?�Q�#w(,Sn�)!��I)y��_ń6�g΢���H�l�3Ph1�
�j
+b
̈́f����Rd�D��E�0ʿ�7O�}I�%
=�

+�k
+�
+X�$��y�����*fIn�f�>��<�J�I7\�w��
%��w_0�D�1a�8�{U���ju�ϕtBA���ŷ�f�=���3Z��U���'l��!}a�<�u�H4/���8�ͅ���x���<2�Lgz
�2 ��&�.�l�C34�^k�ѱ�:x�����-�J
�+F�e��
�<a�M��t�yf��H��"t�q�>g��bv++��E�S�3��Ӯn/��]�Yw�Vid�
D���tvs,$��-V���,�#��J�e�W�$�`Gf���m�._�[A�� ���_~a~�+��2K԰�pg��Ƚ���d0���;�
�4�[M�떠ݣ�G=�#�� n�Lg�;"��R�_�f^�b�I� ��
��>`�.�+2��Y1�=�O
���	h_�թ�Bnש�������'�=�a���e6u�pV�r!U�#"-��ơ���q��T�@�q����ɰ�^e�2��M��fbr�Ҵ<�D84��!���M�*6e�G���8�̙���KO{��8"�W7��V!b����Qf��*8���ډz�
g��À6�fXt:!�{�v�;h�<_6W3�c(�L!�C��uMSG���`@��v�I焖�
�æV��
4
x��=Վ�c�VM9PY4�
B����͡|��2�������
+���|DO�n�2,�����
��)���;�*�gğj ���^5��L��)�
��w!]��6�W�Q��y8�|D��v�p�`{�5?��
+�1�k�eJ����4ʂq9p�l|O��k!�zu_]��`W4"ô}׹�����[gD��EsE<Q�=.d�թ��֢�<B���ZG��
6Q6�&~�v:���ƛ��"����i��3����Y�\59ܗ������ϧ�GD1NO��w5�
N�O�o�k?�kyV�
�����Q<���A.�������̃�+Q��C�_����
"�K��3��:�&MHա�V���#�mW�;�@8_%�u�/��3�34�P`�^��7`
�( *u<
诤g��-k���3Q�!��(.
�p�X;��x�]�����w��~��.Ԩ��J� �JǞ���
�m�]gd��
+�޶�h��.
/�����v�������a
�U�5�)�1X���
+��־��h������
^�h�0���;��K������t��j^�kI���i�k�|� �Q|�F�1bCl
Jdg|Q�{>��*7�
+4�
��_�<��Q�gg#���~��.�ſ��{�,����|5Zt�˸�Ǹ�U�ΐaV�~p

�Q���%���+���6��
��hw���]��v�w�5�;�0g�s�/
��C4����	�?���Iy�=z���V]���ԍ;�ȧ��^��@}�
��3X򯲕�3ʊ�=
�+ɀ�e�]ܖ=w��i�T�T�AxgK����\�����Â�+�m'�t��Ž��-���#!�%R��6͉��j�:����w	Q���&���w*�OEjF�#�����>�R;�h��_g��I�Y�'���8������ڼ��=�,S������=��7��Τ��A�
ߏ�Dx<l^��-�3^�� 4����LzY�F��Zgш�.
*��J�Ԧr8�1;�5{�
�+���!�(9

6�_#��Ba��ۨ6ϒ_��8ji�s�]γ~�%��Ev{�C#x6N
+a49h� 5O�5
+�
¸�6aP������������`f�҇q�m��Ƒ�"��x^��w����h�
���j7��&�,��]�"��θ�S�q�qT�ۮQ�fj�1O1�J�D�
+]�� �~

`?|��)ԩ���j=�Y��+�W�}4��Fw��P:��g�f�fv��ٗo�� [BN'AԊ�Ju�	�9��`��w��"����6
'��IA�O�	z�6�<�=B�>�T�g���a�35.�s�_cvǴ��v3*V-�|�3�BF��\Y��$#B�"W��kjl�?��t�5��R���T4�(D���
+a{B����R�a�c�P��?��	V����9<Q�(i�O�=�@!�E�ɽ�P�ψ3�\A2���g �^D�
1)��f�ո+Eُ���s�d�L`,ݟ�OW�+�Hu�?�3zA���A����_v��G��](T���LߢNG����(�2�%]8����A�GAJ��Ho:Jz�}�x����j�<?
g=Q�=��d�P�
$��)�"�Ŧ�>ۯ���&���(�[���߶���yJ%;�z�L�q<E��;Q�!"�n��u�^n�y�;!ҞcVƥ��޺z�;�C�/�ԥ��ݣ��=��X3�r�$�$q������
�)j�H_�O�=��1��q|m4G��
+�W�xb��z�9��8D7F�"Sʐ�>���C4n����5�UZ
�6F1�{q
+4����W
@s�C���ܪh�t(���B��8+�>�qZ���V}D)ڐ�+u)ѭ�W�
�i��тFEj��F��百� 7Ŀ�$�,�^~	Z����-i�K�՝�}�kά�|����82*Q�_r�Cc6�5JG����WEP��	��L1
+��L���bo�����7W�3��E�1���oxS%�����2�8`���L^o���Fk�h�h3����g���!b�@��Zo���"�"h�6�	�����
�9�X�d����u��VR� �0��W���D(���L��@��
>�nDӋ}�����a�
?p��:Z�LV۳��,�����qʝπ?�S���>����a������)g�1QβJ~F��G~�bC�K�
�ݗW*s�,ly����.
�
�ژ�g
��5�Ȉ
s�B&���Oz8/�

1H�C��S�g=����>�t,E
c�(������rO�w
++�3Z3���+"�G�G�?V'��������
+O���>��⅌��v��8Ő��ѵ�X��U2�WT���wT���x�f��>�*B����]G�� ��ԧo���1t��
O��
g����6���%əg����Y"t�kc�2n��К)[���\l^��'��R
+���`��7}?d�F���Q�������7Sʷ(��o¥��cN�.�!٬����9Ϳj�k�%�f
����:��;
c�
gaS�����0Qq �;u���/�f2����q]��Įx�1|":����:�0����
V�2ve��[����M�q���XB�Zh���lQЉ�#=l�$�6f���z�>��ǝQ�9%�� g
+
��T?��Nz~��_��1���kTs���(���^j+�[$�;c�t�Ⱦ}��o��-�J
+����.E��O�'w��ۨ�$pLfz��3#Mz����V6%�2�
T����}�f
�e�خ�r�(1Y�����# UaS�v�L���ޖ#����W�9J����

4s�#
�������7"ѧ>t�R�ވ�׀Y_�
+�66f�G����N��
��}8o��*�-a��ӜE/ ��٧�_�
��
+�0��U8�ɢ���RI?Ry�f���G�
v\�v�U���Շ��IqF�r�%[���͙hrs&�X��вB�m�w�Å	�u�L�٪[վ��}�/�uX�X��;�����ڶ�Hy�e�F+@"Bf at g��tS����k|�q
H��
�M��Vn�!��CS_O�(��Է��{TЏ�4����� H$�@�������uS��{N*�>
��%(|��W�Q�N�~S �Q������p��M
/��.	{���V^�S
��R7��fd�L�|2z��w�R�z���#�B�Qal��n, V8��i��UHS�$H��5�?\�����d��#��6�&��N�IېS�f��o=����÷��j�hoİ�,�*�&�UG�D��;��C���f8w̯��.s�&���ˬ��]�*��]�`�<<��;
�?���N���s�g@���5uY��2���:��Ǚ�8�+�=J�=
��z�/Z:��c�7*�<>�%2������2!�e��7h��Q�$2iPU��-
Z�e����3�H [...]
+�g���� !�˥2<JԸ!�6�^
Nj���S5
ו��ne�R������7o��5Ѻ��F�¶�	����0AA�n?-�
R����.r�hS�
+~8�>�
��[�J�sɏhJ����}?7�
·��l���h���8� S�]匢��.�X
�G|-!�wo�ܮ���������B�#���C�\�yz��=� 
��!]^���Ts����m����
}�
�,e)8bDG٘�}-M#S�V�2�4��{�8��,������p�|-���U�|L���7�Sgb��7oxu3v_0�ϣ�o6a���*�����3i�QO�����9ϬcХ���
o�I�@��.�GrX}�gD��Rs�3����q ���������%
���
��jgQR��UtR�yZ�/�NȞ��q�K���;���4�B���t�������X��:A>�W:�DŽU�>"�
����W��@„����U��i
+Sd"�
ֽ9��{���Y�����
�{���
+�3��|V���V|
�U�
Pt�*�)x�k��]L����gJО�n�P��Yk�-����B��(1ɻv׶���	��p՗(Ċ��g(�Z�M�
+�Rf(��rP
��x����� p�UL'{
+
ܟ"
������^�'���5|�$������
+���g�mveY���+��a
e��?����a�a��
%,Q�i�{��Df�sV7I Rܫ�����2##ޟHR_Xm
�{Z� �J�QU�^8�_�� ^[��O���
����y"����="
W?x�I
||:O=�C�:�:� H�dk(�M'z�a<p~\��W�E�:���
"��&Q��������yl�շ����Z��&��7��^��
�
ǔ��P�E��WQ
!
�%v�=f���fWE
+�i.9ϰ���Ǯ(8��/!C�
v詼�T�3
' �;]�QN��U��������=U���b(	��?�
Q;$BM��by8��N~_�UA��y�B����:Y���[F/M%5�5�������(5��G�BwfU����q�x��U�H3�����ﴆ',i��p�k��@-���Y#��E��r�EL��50Ł�����Y��j�K;����T��Y%���{�E4��S^�C�[�4	���������~�
�y�A�x��D4�]#P����2�{�
+�Mt
{�
c����L*}?�"_�!��X=��n��m��!�Q���T���O���� ?I��x�g�,aU�I�����������o�b��������}�տ�����������?����o�����?������������o�������ӿ�����.����'x����ރi����Yq�t &���M�U�bB��� ����ꢩ�_n�
�
2
+d"��|����*F�}!�7C:#�����BY�)f�r����<�4�Wů�lŁ��5���2��v���pku�OjM�j�+����xP��R>�/g�=��+$���G�I������ڏ|�{��4홉0��X�OE#�EO�Gay��
���|f�%tZ�P�٩�
�\'ZA*3��r��*��W����M�G#�9P�I
��E�
�dy;�u�SC 
fM���1=\
+M���)܌Ӆ
���<�1q
 <t�T[���嬳�� ky�����t(��t��^�Mh�3f���O��z4P�Y;u~
(9����1��`��,;��*���{�00:�eWD��C����?�?
�zS�m�tX���R�*lKf�?u�V{�~E6���V�k
�~�
eR�,
`��8�������bwM�~�G6� �o�z���,������=ƛ�s$�Ă
b��i���/xP��+u���{�䙥䖅�1�%(7ejB��~�
+.d��24�����w@a�oǒ�b��Zy���H���_9ݙ�
+�K�e����;��@S�W��c[gNFOWv��d�+2+�vf����=s����]X�31�o�3Y�
h)`���?�ڔ�>L�ǒx�~�q 
a�yO�jFA�
yC�Ot�kg��O��a~G���&��C���M�Z�pph|z�Lq{	J?��0�]k��,\ �X��ɧ�Os���
K���y���I0��p�)D���xCv��щ�i�
+�it�BK�^�I��s�9�! ^�Q�s\�QWJ���S`t	y�x{;�g������k
X���lG��3�Q��Z�Ga��:R*��J8���H��
��D�T�+�&͑��D #��4�=�����ԩ�+�K�)�P�����0˗t"�w�r���)9
>�mVG>���^R�42C.���
�y��0�
�+��ZP�є�o���8d�����$l�Y���~>�6��Cd�2[|[��}p�m/�
�Oe�c�:{�����"�)��|%��m"
+�-
Vb�|m�@ӌ �i���	�o�q.d	�c�c�M��&G��������&c���
���1Ua��$E���x��2�?�(�'؏ ��\�ۨ�l�<�o�*���W
l?�j de.ހ��t��K�]���#��u%��z6��� ��`7�
��0��^e�{���W�[•�i�d
�m
�
Y�9
ٌ�0#���S�p�-�&C=:������W10��|;8��W_a��@l1�p/t;3j���O{�������ࠧ���Cn�������
��
�N������;@5ƒ��s�k�>$�
���]�~g�;�0o�Ņ7��",H!qg�6ǺR�! �Ӂ!�9v�K�:<ݶ�d����S3���s��xJ�0
����G��r
��
����rP��1(OY�X���B��න��������� n�V��ͺ�n �����[W����G-D��G���Z)�!i950�8gQ�<�\�lo��
��C!�=�TZ_��
�W�j3u�Sm
��8Nh(Y�TiP_
E��+cE[��*�%+Z�Wg��:
���Ͱ�S��{�7��&�WlOկ�U�1qx���'dJ��F�›�"N��S�qk���ု��Ie����5�E�@5�����ѕ�l�A��8����~��ѐQLDr�w�
��!
�!�T1�i Y�1�m#j��؃a�%���/����v����8��,�[�����!J�{���EF:��J% &QE��8�”2���z�c
+t��M|
�:�TT�(�a1b��o��i��}��_:�g���š�׉xҴ�_��u�*,UP6J/�ۂ��´���g�y~���	݈�&�	HK-"��6��(���1���8k��Vϳ��
��9���^H�ߔ��@Ś�� �})T`m��}e}
���.
��j�������W�	kb�B�w{Ub��M��C�D�`G��+�v>G��}E�6[�	�ߘ>b����?��K(4�D��e2B�YyQ�WA�Fmq�:
4�TT��0
�.A�s�o&�Dt�<ސl�I�nK��tV0OҸ�}Wa��JX�00��@y��#����(��c �#P�?W�Ob���_��h����x6����㘌�+��
RdV��)�w��U�=TK��:�xR|�/y4r�D���
Lt:�^��O_2��
+����W����Y�z�
Ԏ�Nנ3㧍R�Q�+����'�-27��u�NӦ�ݚ,�e�q��S�E]�Iy���J	|�hX�&=��&R|���q�L�5�P3��F����������92#�	�v��C�u���!~}��$�Ɂ� �-�A�B�
+�+�9�Y��Ua/�ׇ��EE��ֲ����L����aR���d��l�����o�
,��
�-�B�i�\Rul���)�楡p��b+�76I&�H
%
�#��@����˩�G��ͩ���s&��65��!�;��_G)y>�S)2�j-:'Q�MY�����Q4�Ѣc��7B�}�
������>������:-mK��>�h��{
���
ޣ�K�>�E��Q?c0�c$�RIS	 )B������hl��h����4K�x�E���U�Q欠0��U'sr�5�t#��G��(&!����h��pU6")9�ae��.�x
��\�
"Z:�t�A�r��K��0�3JTwE3�{���b�ѣ��S��o�؃�|�H�jȭĕ�j��-1�dC�J٠/�#����,�4�i�W�5F
�ȷ�̷�1耡���ض�)�
�
+@<�r�X�J�SD
+D@뼮oA��@���n$&������?l����xT�m0�]^��v<a+i6s|��k�
�}��� i9��E!)�i�g��>�w*\����P��C�)#X|����7ԝ�ۧ�*�c�i
�nʇ?��)�0��U��Q�X��T�-,�3���O9�#[�&"�
p@���2�
���C2�T��0NF�OF&<��^
C�I��#��sp쐅Q����Şʖf*�
+���{�j���M�
�xI��Ŏy'���D
c�_B
0sŵlg�q�V
	���d��A	2��D񿚋�d��� �K4W���H��
+��
75�9����?�D㩙�@���
�
}���WČN
�V�:"����e��G��|�؎��@B��5�ڍ{(�q�1��+1����ԍ�c�ҁI'?���>� �Sӡ��(#B�wl��|�[	i�';�b�^_p�'�;��ScB����O��7�5Ec˺?
+Oc�?\
+#(u숗��_�#=<W���q���I�i����XU�
ea��!Hu���aO
Wz��a ����&
�O���di@��hn���_�w����в�8��ܔ�nɴZ�n����_=ʄ{*�	yd��� ]qO~
zKh�Қ�A�(
$@�2�F�4�(�
�����M�=ⷷ�U�Z�����TLvv�
kF@��?!p�>E|Z�ނ��GI�B���Qv :���<���,1
7��ʾَ���j<g��n��h�G�{o\D�������OC��� ��f�!!IrK��B8��
ce�)
_�f at A�FC=}�(.��`�6"
~Y)��[�ZQ
\������ωj�m����W2���>�i�:��o*2@)
[��w����@�(LeS�{�%l�[�)�)��=ܷ������&�•B�7O׸���w���,�hT��\��jצ�c<����+�2]����#n?�p��c!��萆��������G�y�� ��}��+U*�>t�х�C9�Jmx�Ӹ�$�p7�5�+��/����!��
�=�mW:,C�[����h���#ٽ(Ÿ�p�>����e�#��I���~kME�1�,.����
+bN`H�Q�L%$��X\~
X�D��t�H�����	��/	�b{FT�qX�ђ���@;��wz�(�E�F
Z������`4�{H�1,�Qr�`z��nL�`�UF��.DjO6��X��Y�({;D�T�������?
J��$��ͬ�/�~q���>;�ו:M3��x���d?>��=�/Y=	
:Z?J��IR1]���1g������_�,���㴔I�RNao���d8�&&
F<(X5
�t��g�p�(6
�F�<V��N%Td��/������[���Z����be{U��5�=MG��
Mֺ}!�2O���G�>�4Օ�.Ĭ�2�?�	����lə�
y
+F�[�n�� �s��vF7OQ�u�?a
Q1���"��u��ǎ��G(6l���V9���
��R�.��
+���΃]��J4�K~'a�G���������’M��
�ɺ8u��#R���7��Y��P��E�o
��G'��q��1��p��:N��
 ���q�%��Gт�X^���-���f�f�R�01:���f��Y3S��?~�E�a�@�����NܨՀځ��9�EU�2��-�q�#f�3��!�`G1��ݸ���'*N�X��j��n9�[���2"��?ߖD�~YMDY�-G�(ﰴ6��Ԧ�����`�<;#���a㘻����m�g<o�Y"m�E�q���b��(h�>����Z-
2��K���q�ϑ��P�\/u�H��h��T�
��a�K��(S��i@���t�?1?�����!�C� kJ]�>Y�B	�
�wP�\f�"��B����U�{����?
�� �@XZ��H'E�CG'�����
a>i�<����zZy�jF�

o��P��%h�y�诐O|']�P�D`kcD�V$�~\)VW�O��>S�l����t��DmL5��;��WbS
+�U�:K~I��y^V.����F7v��J�)�Q�x�A�ԵЫ�QV���6���ޢ@���e"��z�j聫�{
+I����B�Y5���=YV�F�V���[ԃ��R^����s��6�%�����
dH��yf����
f�N2~��^SF�8ꭿ�݂~
+lRPG`�&@���He�����]7[���DC<�xD��m�*g�rV �������9��
����>k����i;)�#���sÃ��ܷ+&]OW�gZ��L��O�
��V&�he�Ϝ?Sמ�#��s�=�G
�Z?�5��to&&��[8e
#��u�{��� :�l��OT�03z�.]!\���|쐯��(qN������> �h:e(rV�I��^��O�����~t�e�;������cAx&XçЂ�
/�1\aJ�@{'��\��{f`&������@}?��T��P�e��-;�
g�~
9D<%%��P�^�9y���vF@�o���>�M�<��ů�'�ytk�G����Y��v�
+�ܳM
 9$�H�C���@h�3��xZ�H�'�[��Yf�
��
)�
+���^���z��� �#����o���o�VC�^g�sI�ا?��FHfķ�؆�P�[���΁f��/7
Ou��$���
�����
tL�v�2���*P�p)@UA��@�j at L�2:���`O!�����Z+��o��,l
��W�M7�ML}6
����<m���E�M]���u!��G|_>���=
+;b���g�f:R������CI&����a�.
�0Gd�t���"ĄLDU�WT��{���/���w¶߃
+	W>�(�|�H
+j�6�Ma�4���0���OO1� f0}�VOm�
��w���?N���*1M\��
cZo8�QF�^��F EZ� ��H&�F\����|��zx��8 at jqo�щ�?sw�����t��
��6�LZ͗e��B�'K�ʫMai�l3@���0�6u�߷J��X �XC`��T>�/������yDËՠo]Q/*���$|��$R��3,�_�
s�3��Hp]�{ڵ�
���D	��S�BO�I�~x��
 L�
�����d����+{+H�
� �$n&�i���E�
�����״�f�#�
%��k���6�Qv��(�7����֥��yZ�^{��ƶ'��=��l��1�F!
�iĨTџ��F+��<
�j9�)hB3�2O�j�����HSm`/�
+�M�-�*�9?��G*��.�t���=�c�ѕC�	
BZd�OrY�rV���1Ĵ'�X=����!A�q�vM��+��<�90��}
��J���k+D�����/K����_s�
+����
�@��c	�/	Vc��
#��G��J���Z���m��P�j�ʾ��´]ްj���9o�َQ�H��W
!(qVE0�k��1U�}�A|
+����JX�	�J7�R��3��y�m�(1�Y�9l�i�=)��	����ܐ�+�1��n#��`�"�E�&~�h8��Q��
+��C��6���Ed����"�ȕ�F�S�ѼI���t�֪8-U$ldJ��b�
�(��:o
�^��󘐕���I����Ng?�`R�~����Z�ǡ�Շ���}hw��Z�
)���́gA���y��5��Hzz��Q����
�dfI��_�T�J��d�@W�w'	
�%�
�3�
0XY��u�'����s��JJ R-UX�Q��W����]|"_�
+D-���e��([:����L�� ���Bmo!g��父S��]���
��i2���\U���o|�`�:�SQ�h^�^4W�#\�dCH�ޙ�Q0K,�۰
g�e�[�X�I���Y0fWS˛uB���uz���c�
+O¿0���g����
+0,��P�
���t����}J[a�K��^,�'Kx	3�j�NB �W
l2�]�X����Ie�c��7in���~�vED/��{���n?�-�[al5�
﫧u)]��ah�8��(Pe�#4�
��ĻB�KR����K�q�rb�(��{.VIP&%���
p�h�IA͑�~���������n~���%KF�f$9�9��؅��
��&�-�FB��$>���F%J�d��;�?��ݴ�,F��'�?�g8���w
d`>��f�:��BYS�ɽ���f���9\�'�gre��+��L� v���0_>(9
+ǣԅ�)� Xa�%�Ib�j��0���o�[wV�[:U��
zn��+=���h��y�
��)O���8I]s���ŕ@7:�R�4�h��Z�B3���e�s5#�PQ`=�}Z���lӎ������X�a�NmD+�
��50D�� �!)�2��Y˪<���@9��"��e"�L�!�Qv��b�+a�������
Ԝ�/.[�D�	�j�sA�����\��
�m���f����������G��B
+x.D��u
q5���^R։Mn]�] b
�eR��z
;�uŖVm�x��-��?����|7(�{m
�
e���88PJVTT�B�k��#M��X�Bgc�H�Ȣ�Y�4Ŭ�]r�
j�]tx/~J��d	�t��"�Z
	g4PXF��]�:Ч
 �p\�ӧV�Q���ugS�贬@ׄP$�6B��Eͪa
+�ɳ��e��0EBF�~3<���� �/��@)��cu)_o�I����9��t�~��lEѸ
:d�`B+�`�I���a}��<�����ri��eX&4�Ip|N�(Ck�ȫo�L^���B�4
ϭ,"3
+���Z��� #}ɳ�!O@����2��I
-A���#6�=���=O��`������z��X�*�`��Ua^�t�U
�D�F���s�c���0L�s�Y�q
+�0�aUr�� 8���`� ,:ol�2���+!��E�T~�G4x�1 d.g��B�2BR���S�b���gO-v�����Û~���U�G���V��^=������<{P
޾a�7Fp_��
`�
5���Bz���Nn�.�.�]%�R �|%��@�ހ�>|UVՌ[A��Dž�r��j�����'�_�q"D+)\����4��5j�ԬP����
�d�t��
)^U�b�+v��B�� U��G���n��is
+Iao���o3f�e��T=uv�:���{��)�Z/�@tڈ����@�b�~�y��g.:M-	�4(�X!酂��B�aJ'�+(�
��
-�r2 k����8%�|��w.�.=��8N�$�M�W�
9ګ��%at ch+���e�Z�.b��
^3��XZ��zb�Va��[
aF�&�0�װ���q	�WL
65�I`�s�O@�wނ$�3�'�^
�x����s��0)���܎d�*ǚ'
�ĺ8KtѪ��������{op��K&�Ȓ?9
+e�{ْ1ӳ��a�k(T�x(
�����nz���F)b��gi�2�z��5�
sEب� P
�
�$�Ha͇\I�f�f�9��&�n
��SO9��}x=�v�h�x�Z �.q̶ầ�
1��S��J
+B�}�x�-��!���F��$V�����Ro
+�]c�"�b�l?5�K��%�}�K7C*�`��NE�.ᅬ4���T}8�3�T_E�
+g�KZADu�s0>$�[�+;1;�
P��E��^v��`W�+�v��Z�����C!
���0
)D=��Lm�U
��
L��v;T��
+���O��AڤHx�a3Դ<���'���y��y
�%�,@�$�f����
xʒ�Nv$
�9
���'�%VH�LYL��`8
�!�
�^�
�]�8B���f�� %

+��������\_�
-H*�|h��/������X N��_(����b 4W�@8 d
\[Y54e������jm���|�Ί�-��Y�������T(�f 1�1���ᆳ*e� {5��D�D�*r(��A���5�[�ch��������	e���>�ERs�f�N�^�ЈWo�B0{��S.���T�j[f�2��f��j
+

[r��"��3�=_��YFy;����m)�#�
�4�U{h���5��b���J�'$p�m��1���{��
+8Gh�
��B�2E�š;����=�(q�ʯr�UH�yY�OrE=x�r{Q
���bk����6�*C��U�4�{�"T6Nk��,�w���_{�kV	�[U���iHv�{;��s�(�`#�KI��k"�2�m�P���_k��D���q�|
�u������t�ΰ�*G
CQ	L��+Y�{@L�Ud�f�k�K�[Y���a�j��zgp
�8�漨��X�-��'di
��Ωh#��
�m���9�U�u�Ƴ
r�x������%�U�h���L9
+)�.g!�|V� EM������w�Q�"�Q���E?
�NI�
��+T�/���U^8 Pk�@�`����(�g�׶�J�[C�[B���D�w ��l)���gO*c:N\g�N�_�R=N&�{x�g�
�5_"�5��5z'���/,�'y(��C�#T�U,A�<$��Az9�{�G�]��
"u����*��%Lj㪡���!�n��E>����]DP���xO���
+�
+D�(T��x�����gk��%SV��G�8�E��د,�1�6\��������� �:
ZR�B1��
6_Jak�"�j�CGS�z�� ���%uͱ]��,��T�K����kN��
������|8Ő�zO;�N���f����-��?��W��ڲ�	U�'�ܺFZ�
p�ţ�_�����
+�����
+j�9��{��M�% S��D}�Y�
+L�ϋƁ�<\�:�R�A֙1g��T�Ʊ|�$�:0��
�4�c++%#~�ǙE+��B�ä�}�F�gl��gH�T��Fl�K%x��<K����[¹�Ϸ��+?{������
!�˦)�O��e� �m8E�[�O�}8��S3���)5�C0
����Ei���/iK����
ݘ/R�WE*�(
 �Cu���)J_k�]��
�jE�
H����Z�����?. at WbG���Zzn&5��4�P4l8fD �Y��

��h�e1�
Y9^�
@/��
+B�R%Q��YI"0�Cj����%v�F��o�i������υ�"x0(	�
�x��
Z��
�^�<���+��+!C�
n
�f��8��6En�����t�����˺��Q�u
#$�"d����
d�����u^�o������7c�a�U	��FS�	����K9Ո��؜�_lN�AT	(*�ډ�ë���
:����C$�!-�Pn+�����K���Va�Z�98S1�U ��
FpeK?ȢR��q�nJ�.1�%��r�z��ʕ�/٤P����i=�b{�\���_�V���X
����<�YG@Ԏ��`�2>���{de�Ot�tг�j�FF�3Z>�������,f
+G��� q[`R�G
+��{!��ȳ�oYg�. 
���J���"�B��؏���|��j\���z��0��]#c�In�\�!:2��jN��@$���;O�J�6��97\
��̮�+T6�W�
C=S���|+Πl����K�L��T`��E�4" �=�G=��i�݊�=�U�x�q �N��Dʨ�6�E-���
��0��*����Kp[-�h0�}ʏ"�
"b^�� � F��)��?�H��J.�H���A���K�Q��
v�{#U�%U�j�{���b`P�Wbz�㗽5K_�;�q��|�F$6D�[��,�+	���)ű���2�a���AD$��(�oG�yT�&nT]Z�]	�xE�5����LEx��Ż�7^Ye��岽�S� >��4/��ԟ�Ɯ���<"��?l��� :9�z�:=:��"�g�<v���0
+�Q}�P��7*A�D�BZ���
�f&x�z���w��1T�")]�L69�R�o�K�d����2���Wf�b
�z����	#��Y%{��u�
�Q�(��P�ơ��B5
+��0��80r��!��c+:!�F*:�d�Ѭul�um��S��*$�x
م1��uFB%��U%n������ո�E��G�p�B��1�MBi��t�
�;�rLXe�i�X6�I���p<�'���ܥ%>��O�:'�J#if���CF�8l�D����5�
+�K��#dR��e�l�Y���}\�=/4��$�!*� ���'�&����v�I��͡�����v55A}S5s�
{U
Q�1S��
j�?�M�F�O?V�E����½XL M�� ��'��8r�;��/�f�4�^K*Q�p�*����2L5C6� �:p!�
�T�J���~�+
`}P��ǬY�(K(��T��t� 
�W'�����M<F
�Ў��.cW�R�~�r8��Ĉ���4zh�H��J
����W�;�&��]��WD-���ϸ#�6r��/pJ�-t?��Y%���p	�z��#Y'E�|��CV�i�A'C(�!��<#ƒ8�ŧ�l	r����!����
��z��:�W�c��Z�Sc?$�+8�+�my 
�v_
xHvc�B���+�U��i�E�
+T}+���D
�4`(z�` �r�@rD�#�+�æ�{����
+�5$�c$�u��GG"�ӆ8��'��	��4�զR�v���;EQ���G��|\
����^�Z/ǣk7� }�3~���!�,��B3���Ƒ�N���F
+�`��;b��ʦ"�����ꦭd�e�
p�ƶ�ړP*�}{Le��p�d&�ף9h!��Ug;Nt�Hl+0�+��޷�@ÂY�J�t�jSh.�L�2#�I��[FS֩�ӌB�7
�ו�`��g80
S�=�0��6ɉ~D����j���J�e�
*�Ҷ6��p��~(���0�P$�:���-Ѕ5���҈�
��>��B�NF���J(�H	>R����0t 6�ǂe
���l
O�P�X�m^�m
�'
��'ׁ�� ~�q]��5�5��9�q���o�@/�=
+��Q���si�b������lj�e��F�b��Q�F�.(��Ua�j2 7��
,�5����O�UƄ�.GN2�κ�c��
8Ӊ�5��s���hP./���T:̷c��ߵn��_sH
'�m���}�A�D�ؗ�]ݿ- �B�[(ڈ�A�jX�*_PvE-d���1�Q�n=`)�"�q��e�}�x��W2"�kw��7��HE�
@s��x�t����>e�F����f��m��ق���]aK`�xӴ��7sa�im���tL�hA7��u��cLt
ۋ���A#Q�{�q
��
	J��q="z{�EX��Ј(l�ft&V0Nv��YB�y�� T
�F5��5C�@<*��%|�|�.r��O���g�Qrf���G>Ζ�ϒk�S/�`]�-A�$�,S9\��j��Ƥ.��I��5V	�p�&��ʨ*p
�`Yٮ�-�tw[X!/��d;���7AlQj�Mr�B&�F-bֽ��'�����
��g�
+ռx����@� �
)���Q3��
��Q�hSΙ>��krt곍nOg˪
_�R�/4*�kE��jZ
�9�66	�?��W�ϨJ]�h�Y��"j^���g����� *��ũ���5
 NWY�^�y=}%qU�����P�;�V���Z�w,�tP�
Aa��v�F���6
ٙ���=m����XB�!F�����';P�����g�P�������B5go�� ��/	o��Я��<џ0̌��`�)\�� ��ʻ(N����|̊��0��E�-ʧ$�j��5J��v
_sb�`���4 I�
q_tC1qDa9`��/�t��|�ͅ��Ð�lVI�,(f�
���ҋz>��W
��jT	�\R��yjK3�f��!���R{
+y�3�z���i��.dw�GQK<�2�]��
����(<�MG��{#b�.u��!@� �nq`
�%D�#P�HE��٢��f�1�

0:��j$I0
��LZb���˶�V|��X�F	n�{s�](��`S>�ΞLC�t.ĺ�3�z����t�!���l{���3�f�c�x&=�1+,��̜��z-A��p�����ʛ�Ɍ;{hC�&��i�g�CF�.�#	�	�癭���O�T���M&D���VP���I��ŭ�2��k
��T
��u�>�e\`��X:K`�������??��ʪ�XXu��}�*�
4�p�%w9>D���W����� ��C��!b��ϕޢҊ�zz�`��(k(�&z�	�*&&;y��y
�/ ܂b�B�f��S9�0��YckY���z���a�'�:U������5�!�L%>�
��Aڀ+*5F�f��+��3)����x����
����F�n�([qf�����n��2���uZ.@��nώ�3$��'Q}T�����P~^2{��Z
+�ځT}�*G>w!>���z"3��]
+�D4��	I=�D�k�����1�5�JL��
f��#>ɷ(��US��T�È��+��r�
'��.��t_o��G��;�:�X�8]�>6ؗ�b^�
+֞��8(� 0�!ԑ��]�D0+R��~��2�4�*K�U�2
u���t
p=o�	��Oъ{���oy��;����h��߼��f���cޱ�R	j~���8ɚ�\�珊,�Z8��/�@B x��Q:lWL���󰷳
��V�%Q��Ǖ�[����Ğ�t�C�R��
Q]�,��H��!���q.*�L�)�����^��M��h��g��*�]��z	�zB ��t��
�
:�T��X�p������S�8pN�s�-J��N�o�ЦvXF
����4�2a���(X���7cx�y���S(��͕�g�z��J*�w�wws����ն[�Q*��҅dN��u<�:��bVxY�lR�е���B͂
E�T�,O�vq�͌~�5���˜�����vi	}?-?��m��
Y���?:��Ԏ説�5ԝq�P�UȜ>�+���:�A�l��-i=�K����n�X����/�Yr��6"B�����
����}DW�\
'�[��W\�E����Ś2g�a6l���o��
Bϙ�� ��ѕ���Vۯv��q��Ս5YM�a�d�6��y�����/�6Ǧ���
�=�S|=�.�ܐ����Г �^���:����N�+�E5�E�&$U
��8� '!�~�x�n+� ��=Z"�ؾL�ڔ�M��`�����nx��tΑ��	�E�Ӛ�Eqv��J؀�A?��)�6��5��uJ������J�dž�	Ȝ��/��YK�.�{�I���"�6�
P[�D��+���3���N�v�z���"A�(
}��'����tOg�v���pyO �f\)0Z����
�U���GU�1:!�P���
������iE%4_#��@��W�%L݉
��3��E�Jy<Γf�I�^���f��r���̦�TE��{�/�
�xuWQ��,�-@�	��Cwj����\
��
8�m����܃��ƂL|��%e$~��
h���?>�vM�Ki3�[�oO3C]]Iև(Q���w 
��b��ʎ^�vˆ2�!%g�I=
+�`�7����D��\�
2}�[�V���X
Q{#X
�5GVt_t��O�K@A\� ����
V\L*���G�
]��i
�g�(���G�"����-zM�Q�Y��=�Bq�P
�u��[�	JO���
\����;�q�v��s��ޢ`'�ة����4�s301�w���R#?�t��4u�>������O��z�j6�*���y�9��+��
%��
9l�r��j�l���$��3T��K}.W�k��/�
d�}�&w
no��{����`�O�x�����~*^��x8�[L�z�^	~�

��wO�XЕEQ�-=�!M�<�!@����AV)8Ů�
��sU
����_ڜ�qWe�[d50;=��
+F'q��/�Qc[X�1-ɂ��!��5�
�%˴D�
2��*�'�˞�o+%Yf`}��T��d�u��{I<�;�LJ#E��*����
G
vtt�� =��-�0�e��
+�/$4��$d�C:O0
�8��N�w^Z�S^a���Dv�����QuD0��,
��S
�W�a?���`�w�u����������)��iVG9�9]� ����P�S˝�!���!�T�������O���Y��[�w���	��
�
}�e�$P��<J�g����X�W��RJf`�fM{¨��Dz	nJ�J��� q��C�z��Xe��q�)
��<`VJr
T�FŒ��b{+���Q�����%PG�� 
M��F#������-%��j�.a��+�gq2�0
+$[T��GaP�z���>����
�X��@���EQ����
[�B�kZr�y�MY��6��ў�@YK�
�~�:�
��>D�!6Y�S�3_fMd������
�
+�ɞJVR�[�| 6�:�-����
)Թ��`��D�0e��8��kr�D�TE�S[�{V���=}��6Tfn#�'gP��ۊ�B����b�A$�r��aMq�5�{m�
���
��=�蹄�xE����q��+i���םN�*'Q�R���Od�I$=������4�&�}B%"U��s�U�HOA��q�M
����
+K�9��'��s:�J��WOD�ǜ���D���1d<����H9	�P�o
,�5�I,
�zQ�\�_��_
�WN��)�y���g
��k�=I:���J 6EG��ۏ�T>y�i�BU���0�Y�hY�w
F|�~E���O�N#]�h�~������رe>��()��@��=��1]g��
+�<·8��
�c��%7]>NYK��OJ;�i����~�d:��=n����,�
�B�>4d��-�+4dt)Ϫ��
h0�T`���	��OC��9
kK���vԀ�S�
�ݕ#D#E�����.���.8 � P�
*�=T��nh����Sb+���~��M�z��}�)��
��K��&��
��>�"�Kɱɺ��y����J���u���9p�����{;H��| (Dݽ+Yl&~
ȁ�����I�u����:������+ +���"�
� �z���
;qPg�i�R܁(�s ڟ�\��KU��~��
$񶢄j��~b
0�@���5�Q��|b~�q���N�e��m��8=�j�`D5M��l�
 ��� �@V�v�0O2�:�Z4�vK�_���w=�>����<B
T���>@�$3�}n,2��1�ү~��|<K.��1�H���ݴ�����:lQ �Z7��?�������}���(��
�/�����(��S
'G|�=����Ul�0#u 
8�
��
E+
��H��v>�����n�����5
��Oq��LkP��Cs���%*R��Qq�ا�TJ��F��,
KsHT� O�4
�Q~&*���{b�����<�
�׳C�-�Z���������ᦐ�PR�IAM��YA�ܻu��A�d���ޮׂQ�D�e�`A�:�r��
G�<z���&�
+G�>"��+
sgD>�
�c��c%7�1��h<����f� Xn;�0������^G�jjU:D��ܡ/�2��%y�}<��ѰC;
��#n	�1:0�ױ8�Ԧ�љ��)?V�nS�S��#� ��k8�	����þ�X��
�ru�1 !�O[��
�D�Oh)�CQ���P��$����� �^������RDb�t�|��~�_��)B�
VK�J^�5�
\�	l,�b��l��F�N!H�0��S\ו]�
B��#�sh۫��]�.S�2>(d�g�Y�x�>��X��i�#�
��(�-��-75O�X�S_�(
+
bN`�:���k���`��]�%�Y�!�����Տȿ�V)P3n���W�P+��Fk
&A����v��� >��2k恽�c�ۢ�їPˈBb�5Z�)��Z�s���)#Aw�Ī�O�����$�����~���y��X���V�vDaDbT6�
+s��*[T9�=���W�Ap�D_�k`���4��$Y
��@Tf��B�au�V�J��.�7Q�;�y�Az=�����ߨ
Qp��h�vn2J8+�DԔ
Zr0P���l ֟�Ǖ�)�V�;�@�kq�����WQLfG�2�k=Ǘ��?�d������ve/@�ynϯ�-t��5��/BK�d�5��
Q`4�,���sT�\�������B����m�=)o"� =���I(X�=@���+`1��g�8�L�v�C7���Լ��?	\��vI�ߣ��Pe�󐜖��=5�2Yq�|�S�S˺U3��g4yA�Q~a�
#E����<��
��y-r��%^}���I�
B�/���P�-XJ 
+�s����>hf0��E���E�{
?~�g+���A�RIL�1l��w�[#BXȶ�ͺ�;�f.��!
+�Aڴ�t3�l/Z'x��hȈ�� �_�'���!��}�/o��ތ:���x&����,�G�
�4�����B����)�gU
+�#�������ld!����y6��UI�ѼE����e�Uq}���L�"�sn�ō�#��(��S0��
���dA鱌����<�?�z�I��<��U���.�
�
< -��H���U���
i2M��<2�,�#�
+
+�/\�Q�+�w
�
\��(dVB�1L��)
��ƨ1�	�f&#��մ�еH���Df���
ui�@=�6'�$��P�4��:�z���!��w5
AV���}�R
'ѢC�VC�/��L)+���?U�뚢
�����4 7:=�'��[�q\� �<5�x
HMo��E�o�,�awE��D��U�����]�"�Lz�0�ч���="��s�,��)��yP!�gɱ�<c/P[#/�C;�y)�ߢ�DTi^&���Ś#��%��k����c at tF����,�	q���>�f/�!y��~y�qC��DFj�z{>w�����jEo?�(PJ>P�[
  �ѕ!�`t��C͎tĝ������
�E��	�Jb">��e���
�!�:�bA�[E�
+ �\)Kĵ���
��� d�ľ��~u���WGv�YweX�6E���
Qtf��<�Oan�7��6����E�="��Q�{��j�������͓[��/����l�"X�
���}�gě
i��@����@���ay<���-��g��
��t�z��-Nb��Z���ܘ$1v��S��
�U�
5���
�W���b
oO�c�0#�Te�E��v���4�H�� �y
 � �~�ȗ:��ɺⷨ��X�_�����*az"�ۦJό��ģ*k�=h�Y��+-�:B�9��������MO��O(z
� #��FX��;��?|V�Efa<E���O�)�������-�&�ͼ��Eˣ����u�+Í �
8�
�[訫y�8�:��C�ʄl��}��GH���|��J�BA_��-�BX	U#
�
�{D�
Vdz��U9�
%�Y�
��G�@�+�ڄ{�9T�)���x.�+獙���*+�p$��s?O�{N�d���>Ä��ψ`k�����u���TZT��/jE
\p�R3�
��N���K	��XID�D%��#�F!tw�q�����_�Uc
�n�o���|�B݁
�
=�Ջ�3t+p&�i�
r����{��<��u]�y�
+ӑ�ɶعqeYY�n�T�?E_�<@MIC�g��T|V?S��m�#�-�N��E�h?098W���吳���;Pd���wB�w
�%0#����?M�=2Ԁ�~��1�V���g3=Յ`y���s �2��8	��:�ʋ�

E���Z� �	�@�������� {����ρ���G@�8�҈(ףd
+�����$�G
+�����'Kx��_l�G�������o�b��������}�տ�����������?����o������������f .�9�?��?��o~��?�������?��?��?�����?����
�	���� �_f����R�Í�p�/ c�|5v!����;��<Q{Z��~1�ߢ�����=5�W�
�̈��T#�ri��(��a���046��p�{�o�D�Xx���ۊ(*�A���$X�
=��(�O ;�C+Yw�ta)�E{�/��Ixg7#���(Kj����M���8�5�D�?!s�,�l� �KD

�2h����Q�8SfD��
+Vq�=�lI����šy�����S�@R���[4gŎუ�^�[�f��v({ƌڀ���(��E�/�cë)��A�
��cQ�í
�m"ط0Ce1��>q<)e��4�'�SMh�x�;^�;AF/yDƳޠ$3Y��ɜ
+�p���+=EX
e&�Nc֛(�NL(5�(~��f�x�q��w�~���'0$�.TJ���ç#JQ_����7���F/�}��
u��s0
��q�+�=����e���Ǝ!s�C���iD� E�E�-Q!TJ�`~
��k��{��|A0��>Ӯ�
+�"�`A?�x��?G ��ϻ�uW��AO�¼�1FUU�Ԁ �� �ëދ�4��s};��ӂV>|�
+�
O���X���ݒF:�glKOe�չ�!>��*(pp��
�PD=��F�].�~�
3�
S5y+)�=�}E�%"��&�����M��z&���it�����v�;
؏?���C!b�Q4�Ѻ��2��B�aR���A�F� )Bu�&���h3!a�$�E<n`&��J��(&���R�$2�[���=������#l8�.<x�u|<��"b�)f��D�$F�c����/�-4�$^>��{lB�X���@|F��f*{;�<�wz
iVq�9��
�(��@H�E��3��z��*�d�̵U�<���?�����Ȧ/ā��[�^�40���;�;	J
+x#��Ž��`П�9$��2Pr�xS�B������s�_�@׀�'�| &K�
+f	 7{�݊}0Z��b�(Q�EҼ�w��!̱�7��H�
�y2�(�Go^i	�� ���y��ej�Ol]
+�yJ^�9�<%��+c�8O��ʗ�;
H"��b�P�5gbJ6g�3����f�A�m��P��"&exŻL���1S9
V����^��Z�C�����
F5��c�VN
{w���W?�Z
k���`���,��g�����m�؛�LV�g��g�,q~� "r>=4�[#Q����K藞i�O�m

�(+1�{�a���[�
���`a�y]7���A���g�M
+�
/�3Dq��,Bx͓8 at J�֖Sx�nF����J "^��bZO���,ٹ_\zR,�=S��0�b��
�+�V��oA!�V�ΚX��"�|
89,��Y0��}��3��J��*�0�k�&�

����D��4�({j���[AD�LC�6"
q�!�
�C�&JԶ�

+�6�h��x(��ȯ-e$Ф(
W���e�F3��
��zC~>/�Ί\��
#�
�P5	^]+X�D��N���
r�f,�
gy
g(r蚴h�k�@%�,�V��y�9hNzO�-���)����  ���F��aSn;$P�qX}��
}�{!�!e^Hk��{�c�<u���>@�݄b{Oy���zi�;�ڷ�H,�݄�kn�4�x�"J�S�ԔgXms��17*��o�

+�B��^r�=<gx?H
��R��5���&Hت!q��Q�|Z�:���\�g�m�5 ="4HW�1Ώ(J�:˰^7{�3Ƴ��\�,W۬;��qj��=IC�b�LR��t�y�`��
�����i�7<I32Y�Z \�]��%�Y,�0�~VѫƗp��p
�@a�T�<?c�=jr�) �=.�/�����@y2�N�LU�v�+Օ���- �B͋/�$g���F
f�����B�
������]��۱�֙��ю�
�Į�aL!
n/	z�-*I[�|N��*��	��=!��Ԁƺ(
=p�9�ҵ�c9�����g<
Xw�4��P_[($V���Rق�_N�`����;8`;
+R��jMb��
w*ԋ�v?BUU�ZZ� �}F� V�5��d��aX�x������S��E�t�joQ�PL�?���
�9�����Q�R�s at A����
w
��"��Bw\
���y��Y�)(QS��xM�|�{�:���A���{��]�
ͤ}
����}P�m�r��]�%6�M~�='![Uש�Οµ�@�~����	 lT�q4�o#��^�
�����g�K��bǸ���nV�VV�`����&3��NT�Ip�w����'�q~Swϸ���E��sض�'V������bs#֕�礁���
+�w�Qa�rB+��6c��DT�.�(z�Du��v��$F�##����'Q���߁�'�s����0���ܻ �.�_���L���ۧ�zg��
ρbf�r�Q�BC�~ȭ�B5ÊPQU�VI6K�ī�@�0�2!`�W�'<����)�,gu5/Hiv:�%�.�ZR�N�����
Ώ��*y
+��+�-�`�u�+d�RV�It6�̑{�זͪ�cM����ي6s+nZ��F�<kYC�`�j͕�u����<��#��I�a���	S�9��d�7���CC{xT�c��\�|"3T�
+��z�
]���M :�m�@�'��{�tA@��|5��H�S�NLJ���&a�b
����8󸩫���
M�e@���1�5e|O
:�!���P�ޫp�p{�w�F�dv�{�c;�+Qv�Ru�k Ff�ui ��
+;�0�}7���i��j��DžR,Fra8����O����q��q���EH�Ȑ���3��'^�H��i�ǁ�T�
+Y�fB������#����|?���	+�����ԁ�|5�
�i�=팰c%��1�io^	����
+��y�V�

v�ܽG���E��2LG�iXM���v_,�=s��<�$��r��*���Yr:
+�n
ɔ&]�.
�y�F��J���XV���W�l���c�lN
5~����^Wv"'�h^��
Zܣ��
\���›C�I�1H+�"��`E����Lzh�c�w�(�B)t���۫췷�@)j�kh��
�2�:���"@
A	N�Γ{��� ` e@
+�
+=n^��喇,��
�
^~��ow���c�5�i>�d
+��@KK,v�P�\H�u�'R;�b�I���{S�>Wz�<���g�D�P��yL���b�[�ch�#�����K�6;�g"
+<��yt�u%��#�"
+Er��4��
�X�DT3�q!�Qd���J�5��]�WB/���')F�R(��IV�`
2"�B(F<.3��1��~T�m7'�WB�~�8əŵ�7��*f����>
�ÄP�]�ߣZ��4J�T+�"X�sd"u�n�I &�eL5K������+&Z���i���Z�`1��[OG�="$��e���L�ׄ�~4;z�[���2:����c�㶶�
q�Ѩ"]�߃,�6�Q��T�1	y���+L�P]�9�GAf��߲3�����P;�!��,�A
>����G��*C��7{�p�JA
�Ů�������xb���먘�/��t��
����s�8螟}r�~
݌
1����of�~��K��:�),���֛GF)Q�A� ��
� ��Q/"Ҵ�vx���C��XF at a2b��M��3a\A0�Gɉ�$n��;AH-JZ���>�
�5U� Z%���"bM[v�Hl����<�y���A�!�G]DgL�"�a�
�^�\��Qh9��xMSb��]��@;�*0��[�NX��#-P�Э&�ڽ9`��
 ��� �^=M���T��_
�8���
ȬX����Pt��w*p]�v�K6ɕU6�{@��2����e�Lݢ��Fo^GszM�N��
??��
�Ht��GY
�����
[k|@���7B9�j|��(

㌬6ul��^�-n�h��/�
s~
x
ߝ�1|
��O��b3��#a|���t�A�@A1΋��ք�l ̺�Dޏ�e:⬲dx��̫�\�vHt��غ��
��H������ޖ���9��%߂(�Ӎ���
1�(Mˎ�Q}���@�EQߔ{�HKD�a��!�ؗ�av��.
	63����`"�&8 �cM�
+��} ��9��+��I<���<�<�$?t��j�uڦF5�Xėb���s!:�6���(Њp�W
����l��j9)�ΚHQ��)�
��
+�E���sl�,hXa����@�Q{b
S�ʔlie��а?�*fDXu�9="ƍha��%
����$��/�X�S'�m?$Y�0�{���j�[�kT��4
r|� �
+Wg���Ȍ�4�ي s
�>���a��� � ��/�!6���x�K at cc���j(C{V�T��r "�@�3�6N>�^zW�o=��nG��m��h��Ŗ6]t՞��jF� p=U`1�I��u,��fC��
�f�,:�c�V �PO$j�JG�
�3�ڲ�rd(�a�
,�Dװrn�0�܃���L��R���'eB��x�^֨Q?|��NTm��1v�a��
^I}3Jԕ
+�/���b�� ���9/2����|?��6,�(˅~җ��Mۻۧ;�ϙ�� 
Q�}���
Y��ED�($.x��g��:�8q� �ĕ���M�V6�� H:1.���_�'��}����	q�T҈������=�U�hp�� I
+"�GD��+�#���5���q%Q�	Z��R�%˯�������[6���Zhb:x����^T�ҡ6H�-M5�!Q�iA�=9~���#U&���E�
���p�0�kWJ�8.]~�u
+|�`-
d��Q�+�m$�R:�:QO������}�n6��=�,浜�S�ʼn+��y��[$yo����
ȂX�!u�D�����T�!�}���������z�m�w������91�0��~�d��~�ē�n�}'u�c� fH�ݷ�Gq>���g��J���x-�x^�Ļ�<��=��<�vn)�Df-F=0+�q��]����~0�:�{y���\d�G�
�h���o���؃	�����އ����}�����Z�&_�B?��H�6H�?]3+IQ�_��3����/ke �x��q�� Ath���g=�� 5�{�Cü��]�։��wg:��;n
���,q7�a���[���qh<Tج9x�;�U��	 ��r*��B�@�Ta��T���c}����@��<����6e�FG��s}�i�[��~���R��ٱ}���r���v�Ex�E�Q4g
�r�s����i!��C
�>��w�H�n��ۃ��3Q� �x;�(��HO��J�
+1G�G�Ў�
�
v�Ze�B�|�Kb�t��S��t���SUOi|���LᏋ�x�B_� U�0%�Œ��}_l������cCO��%�C�M��{�����te���6���C��ѝ ך����挶`
+�W�����droRa:z
NKĠ1��D��B�.G�{j�Ņ�E����6+�B4��%�~~9X�#�Ö�Y�l��p�
V�-��O�A �d�j��*�>�8}�$��@�
+!�P�w9�O�;��p;�"~{����0�P���v
�),>Y�˴T����[o(��:�W�  
+�EnTؖ����!����7�xQ��N����{�kR��4�;R
�u�b�q�r�Uڛ��t�@�
��<���߮{��-������prwG �Z�qv+��1υ�nP壌�.�뎠Q�PLۧ	G��
+"Q)�f�!�}���
 pOpݴ��	����2�
i���0D{S�@DF�~t�d�{�^S�+�iR�E�
�x��C�n�ޢ�ޢ��E��j��3���`qs�]�Yl��2�o1�ZL2{7��
?
Ї�
+29`�� �L�Ht!���sH%�Hw�A��	
�,�> �{�\���s�p��i��
5�D�X��H��W�a.�q�B\j�z��� Q*C܍J7�̱�-0� I*�="�P��6�
&�=�*�+ƭ��L/����~�@5M0�w���hr
��1,���
�JX1��t��<�{H?#"��u{<����1�9`�ʃ�����aF&�S���v�
�
L��x��(���@|��AW�Q���^A������
n˲l�{���M��d��tk�V��@���_���
����o���]>V�ȉ���1b�t}D>

��*��ޓf��1;���o�O����="�U�L�� ?�g
�4�����Zs��C��f�Q�(�scAg�C���s;p4��
�]t�Y
��wݫ$H�
9o�3���^�=�4����^���@�E�%F����iA�>�jT[U�+7�腓@G�[�Ow�#�:)���Y�F:i����d1y���
�<Gr�=
+1
I83�H��mZ
N\��v�;sTRb�*0T'�'_�B
�	e;,��tA���]�1�B��������L�f��o�
+
���!-�
� �\ͳk�j�=�;�tB�$.�B$�����x�{��~O��ʞ/_b�9m���%�-& i	(�I	B��D�I�ݯ�
}�%
mOx/��O�jt��4zT���}� �BO��v{[oQ�
[�ir�7���u'Pܚ��N���D{`�����;�ޫŴ@<���Ѥv�a��c�7>��2&̖��?���@A����
	�W�s� '�F�4��ٙ���w�O�!tO�|��o�‚���T�� sg#�Pܭ}!O�f[X��(�Nݮ���̃x!���
)�M�
+�ctb(ER:@��=[
wq��bF
+�F��CB߶�({�`p��f��Va4�s	�2U}{L�[��(i2�2�T��<�A�7v����X���h���4�<�eQ-�
�w<�is  �_x��煔�J���C�"��y�'=���@  �P�S��OQ�,h�,������� d���ٟ?) �����K��=�(�9[;3�ݼ3Wם���5TY�*M҈:�4
1#g�Ȟ�GXT��h�1�*�
c�f6� %+�{���q�=�9�$M
�
��n����ɒ�2�9���=�`�
q ������qFqR��ȝ����Ԩ�1�xBo��{$�j
+���ٕp�؜�Q��L�p�4'L��T��Zs��4f�Z-���ݟ�%⒠�];�r��Cy�b�m��zj
+>��e�B�Ȉ=9�+�h��T�CDC�<�z���
 �H��Y�qE�N����'�9�ْ��a� �n�H[ߥ�0�P�ơ��	���-���!ύ�_�0`醎27��da���@�N�W.�a���6�R Q�F�>�M�u���u���l��
��!}����|u��_�Ѽ�'����Aa0�W�L����ʟqks�w�h���4A�SUzAUۊQ��B�unh�RAaL��0a
��J{�
X�_��a���
���ʡL�
+ �����tE�`H�g�����g.�h��+���|~�
�����B�x�-Ϝ;S,j�,�[uZ�"��@$
�ί��)�Ϫ����9�
.�M��hS�Бq���[�
�
*�L&p��q��w:.����^[�$�U�Etu֖k��f�#���gU�}��x�g���5&�
W�x
C�1S��z�Di�LF p(�#���X�U�'�V�=�_��f�4��:~�}�y�
�ىc����}�
�O�pX�ǁ�[#
%,<슈���x�:�9!�t��y���V�B��ƃ!u��C�\��7q4��l1%FZ��yS��.0��s�A|	���ɡu`�yo�FT��fϝF�uͦ<
��Cd�͛Ī\��H��I���*U��iK+i��΢`N)ص<��)�Ge&��'��u Y�
�%�gjC�Q�P2f�@����qj #���n��@
~m�]ñ
6���a>PЊ=R��Ȑ��Oe����
h�,����kDDQ�P�
�4�)v����(ׁ
+�w��GKY�8K�#’��T.���uV��8&9tm]���:<+'��|�� �n�@�"�?�ϧ�K�֑�k�����"�:�ߗ��G��b�F����Y#[��r�\Op��|H'���An���<ێ\@�7� J
u˦UQ"���yq%sAX5���+h�L��I�&.���^�#�GL��V�
w3��#o��ـr}vh"��h���wK�{;�b�
tB|'z$Җ0�m�p�\��#�'	��o����Q����ݣ���^ʁ�/
æ�aկb�X�X�Ř ���Җ�w���3�y�ޡ'�PÅ#z�0P�M_uQ�,%=�4ה�H�Ì� �<,+D�=%"� ,��
>�C� 	��:�3C�e�Bp�R
�-(
+�N��a�5��e�##���p���v�W;�B��
MhJ��X�6[�xP�a�IF$�v�=ĻƂŻ��P�y+�������f��B"�R����]4d�ʚ����ԧԗzx
+�P��q5Ȑ��q!�ܒ ϸ�D�
�s�����P#�8�G��ݮ8޽� ��
��?� ���)�7Ÿ�ey{��4
�t�'U�&w��W
��S�,p>�o�U�)b5�|Q�&{����t�r��}EY��+;5�}�{\+E+��]���
�ۗ
+f;�	���S��X�ɍ� �쉝��]ѫsU�AT΢6-�d��a�D<�!	\9r/4��)�ߥ���E�f&� �
�l R�Ma�y��5�&�x�>'�^}�b
�PyNl��~��!�
�`;�n�C��~\ d�q�*�ɽ����t����5I��O���Xtw��ٴb�����ԝ��v����u��b�
�m��h'�
�c~'FC��*�1IMȶ�2�4,�9|��k۽o�
��L��c�%�5]_#r��iqU��ذ�������JT�9��1i��€���_Wx��#cN؊-����Y�O��B�*C�g]�]
dG�x�|)�C�y���Ե�ۡ��")nQ)����},B��y�G���l��
$�-+�:��� ,D�������k���
+T�^ ,
��G#�\v�ΆXn�H�	��0 ;�2�gI&Y�cI���|^p�"��j��&}�vn����N����0J��C�*�����ߚ|�j�EC!,�t��o,�蘁���Ϻ!0�v�@���v��U:bW5$?�c��Z����3�!\��+0⼝�;A��v��1�{����

�LCQ��z
(J$%<��K�k:���I�	�y��5ٓJ���PhEm���H�T����
���?��m�z%=ϻ��:t|���a��$�`��@d�" w�z��8��sLiA@�!���o�

dշy7�D��E�R-:{��s�ëGT�z:
�D1�%Jf��'�Zv�A �߇���`4G�
<v��Y�q�_���Cz��N4�+��e�L$�D�(^��y�%���otU��UѸՖ��`����w�gu��3$5�
NR�
���F�/�#�Hz�$:�]8��Ejܡ0��'��ܢ��~��*���*�рP���*��r
�(j=5�"�
��i�}��g'w;������@i%5+

WN�%S�v����>t�N�D��|�i�=B��
}�]6
+�'�W�
(-��0L��›8bJ
�D�n
+����6��,�2A*7��������
+��H "~	��b�5)e�^�5�N{
���hlh�*'�\W%UA�
+մn7��&���ʈP�
������ُ�	J�x
���
�M[�(���h���8�}C��]�[ 	$���)$Wt�h���_�T����4�e=��k͜)�:bI�S�5�c�/�-�/��0�ٕHAd�7�kA�|<ݪ�� �i�24\�Q��zQ�
��㡨$�~8H�I!�W����ݛ�6W�S@���� N�YI��,�\U@��*��-�}B/���6�Ġ2�Q����~��
�(
y"=��p�yMf&��R��}���YJc��
+�4H$�쾎���Eɮ�/ $��Jn�C��̀CD���3��D�xo�3
��R�xjΉ�g�Ǐ���(n�c	wc�C�W�I��DX
c1�Ӟ2;��E���z/!�i�R��X�r�����
+��S�*y���B*b�u~��k��%�M�j�$h�͟1y�~���D=�|:�
�A\Q���hR�|����z'��w�+����wH�<J-��)�hf4����7$b̡*����
#�Ku
^?ҟ��<��-�㚇)\���/
���G� c���J_���=�w
+|�1A�q�ۥH�D�Pȧi��~8��9�u%^�� �G!*o��}��h���V��rN
�<B�^����)��_{�Ǽ�}�<��D�N
/�~���U��E����Pw&�\�J��<GYY��ʮ��
��=V�
���3�Rb�nG��]�7�`�p�U�����ɟ�AU�W9D˿&Mh!lL!;E��SS� wH�-X�p��1F�CJ>�0M9 }�
��ȟ�G-�6
J���$�7�s�
D�H���W!��}�I�;���zŅ_� KF�P
���j�|����\܂�-9ѕ�}��l`�hbv��Q���A�O�w6�+�L6L_�|�
r-� {�+�]�8k��
� �j�U,6�����
>
�v����\2R5כ0k����%E93dU��O��
�Z�T�m��ޤ�ГWk_5+���tgj�8�)�g�w/$
+]�
ű���Z���;�R�}V#tC}�R���&.�>m�d+�K��c���d�j��3iF�Ð�aDy�(|I�@[}(����������yx]�y�udm�"�H�.��
�·v������3�ѐ(��^�(���z�Xh�ꃓaX
5qTM�=5�Zk)f�O’E�=�1�,�B
�b
���8'��EZ���*$!(��"q�X�M ���&qQ�R���\��b;�R���_�e v�
��_u �.9��Z@�( �J�����Hj]Oj}H�����z���R��M�pT���}��	#�YS
10Bf�>LV�
+ӥ�:��_�cRC)�+�h�\N<�B!l��Z�S��
����T��6Y9]�D
+��-��s�Յ��
	�
 |Y�g:�C|I�����V�H&����k�g���`���x��i�̜P^;���9�
+Ƨ�����$-��E7L�EG�� 
x$)[�Q�JCiw$��tK�U�O�hi�!
+�"�w��b�#�Nq"f"��F�� ��LrV�w�JHK׫��L�_�fԛQ��Qk� ���E�:��TR�4z�a�M����Y��g6��L�-{�(E4�|-صTGw�0S�k�Ӣ[��(+�AG�y�N�@02`QU&?m�y � o�$�_�,t*Au� n<Ù&�t��&�b.Ui��Gp������Q0 3�刡G5a<�Q`/
�t�\_�5ǻ�Q��U ^�[Ɣ���.Le���p`��ɞ��8�w
���+܍�=kv�ׇH���ۋyy	���D���о-ő�l?8Y���A��vd��/a�ey`���ߧ�C<�X�Z5���ny�Ǽb��V��d{T%�v � Ϯ1ፅ��g��$����A�M��To��{�> �3mW��4lVD��čz�<|d`�g��%%}T�
�ʔL�WO��(�ϓ���c������	>Uo�.��
Oj�WD�D
�z,�F(�9Aw
+�E�W���_Y��G;^^����¤�?-��$����\�V�{o� �����
]�����+�6	��c�'����˰��5��y�<
QZ O�D�cR=���.�^��
$S ��׈�/l:ۉ@��2��LW�K�yD_�>���3�u��<�(�"b
�� ��d;�~����}���s�L�v�ٯ�2�s�)s�n���X�Ƥ:c�����
�j�3�L�qɠO��W�9��� �Щ�dk�g�굄�6m��Ϊo�B�$k^���L�4�yr�0G�����1c���M�*
+�4����h #�=A�-e�n���;��߲�8 at F��6;8Hjp����yi9h�2��u��pNDq��8�`?�'�k�=�a�����`z��w4a��
*�Rs,��f
τ�����U���WΚ��FmF%�������%6{��`Dz�//����R�$����#�(��L�B�=w;{���Q	���N��N䦲���{��
I����ՅuL94�$c�0!"ʣ�"ʉp赏Q��'���}��1%r]w�c�P
E%sk|lt����x-wt�m/aF�*<g:*�������HG�V��[U�GiP�1A���
��ѥ�@�H#�
�0�Rs�,��9�|
+�ij��U%����t�Ш�U�_��'G~w�$@еx��q�ր�P��a:�@=*,֩3�'�
��9��]/���J����P�ܨ��	^	i�OՑ$
y(��o0Zw�����������`s�N{�
aoPU�:��җ���o�!8����D�\~�Eo�r�}� 8�V�fr����/�5��2�L|��ȸ^��|k#Eu�d �l9�)�;z=�g�RaL��@�e��`��p�(i�%���cu�R�����G\�U�s@�
̒ώ�QM,oh,qb9ݸ�� �^aKጶ���I�E��U���C*��}%�@m�)$8�_1�����
N��>�n�+��Ͻ$f_�ˬUM0�c�(�ǁ:8�3��W�a��VH��D�@{����׏�Y&G��
�Z���8���0),�#(k
+�-ee�,�[��qȂ���z ��ilGTh�#s��Ka�4#¢hwi��,ή����
+M
���_�Z��~�D�
��YP$��DM�>���
Ŵs�@c����D�ځ&�/6���t\ɲ��Æ
i��.Xo.#�CD�
+�gz�H�2��]�=�gg�t�
�pE�����Xj�?]� ���'��n��C�ңk�J]����_V�}
+�MU:��;�.��6ZZ
���j
%��x�ДO���3���k
E������6�1�r����E���
������x�t
�09�K��s%z�n?�`�;�da���I۫��.g���l����	d|"�Ӕ��/�t��#�7r:a��Q�E�c	i���C/)v�'�����ׯ�"#3yjG ��Il���n�SPm
��q���̟��CG�}`�a��_�t;R�u�;/x^�ZG��H����.�a���- S��%���v�Y[|���i=I�F��=�DZ���]�w�!]ov�R.���
+vv�O�%��Ҩ|�I�
z  ��:�� �&xN�R�DP��1N��x{6�����i����n!�n=��e,;-
��x)|����Ur�^b�K�=�D�%��	�
6OI�eA�Av1}�!
+{��s�~L"v*�>P�<��蚒�V$����+R-을�o��j���W��<�	Z�QV���d������p�j�5�a��/j�QL�_+�rL�I�
9��?���Z����d���hG�	�P��v>���M�}��j+(k�3��y;�P�d�~G��� �l�;".�4
�8����I)-�������8��CGY��ؤ�8�x��J�(�O���#�Tp�M�����$�=�/Ԉ`�<�����
��y��GV+"N�`w���X'c��L������!<[Zq��q
�#$�
�� B&��
��8%��D�����y�XKx9�$��8\�V6���m's�0P�
��)fz�M��?P�>�2֊>WW�o0�G�w�C�Xm�G��N�
��
F�J[�����:8|+�iK���l���X����^���?::���i�@���P�O�n��y�\h3Z�ڏ~93X(ŽH=θϘl�/���?���5A�����
������e��G�Ϻ��zl�� ��2�b��[��=��y,��%VH��
9	���h��t�*��wP�X���+w��p�5���qL|�ۑ���͙���
�E�Q�&sU�(�c���5D���\AP<Sp����`H�1Z���

��R�
F;�8.�G�Z���Ⱦ�,��ٞ�l)�q0B�Ž�m�r"�w�-��qF��E��
+v���%��5�,!�dI�B�'1�
�
,�g�7��L�8�P���ei� ��bjT8U�t�BGBY�M�g��*�\��r&z�����jeL���b�Pz}B��� ��Ǝ���p�[@%���
)p�D%���Uf����F3��z�SF�"LeQ,h��#�KK[� ͌R{���	�U�Q%�!0O�;

�h�ew�E$e?�����݂���c�0qW��w9���{�Aѳ
+� �\��ڣ� zOl �D���LG5�Fɹ<?
�6(�7�� Mb��j���=`A�2�14|O�=h��3
д��3��5[�^�r5ҡW�#x>𰀃
f�,
+�_i���J����v[�Ub�:���X�
+�y_9>d���Lk(��k���s�
+=�D��"b:�[+��Pv:#c�.#+N�4��:�1
+��
1o(�h��
�ZF-
� �!�6.��
8�w�7xD
W�&�A����0��_
(�^��L�����|�B�va
4�sM#��
�� G�ɘ��x�i%�ndD;4��=?|8�i�C�H���v����������g�HV�k �'�p�q$�Jl���\�НxoRs�# Vߑ!������
�����u0`:6Ǻ�>�]/���50J0y���vjK`u�îMĸ"�Ŕ��
���|ߗIs��q��C�"x�]Q;���G]+	�^
�i�Ύ| Y{���>2x���x�
�
��R��h����٥[��!�`K%���gD�����9����� !�t�i�Xw^G� ����D
�_�������; �L����+����}2)
p`�Ѝ��|��>�|��_F� a#��B�~�Xg[r@ۘN����#EKTu
!
}�$�d�
]r���3�(�ySO�m���mng0W-/���_�f���L]S����A�#�Zg���8g
+�衄6B?r��Ž�r�7�j��njÜR"��5�f? 
bS�A��N�����hG�~��P��4is;f��S�e�:�3�B������K�Y�
_�q�%��i
/��˾�;�<B᣺��epE�<n�M��X7����K}K����Eu>�6�����E��
�?Gܨ�u��}�}9Lv��uM���ma0IaK��/x���G��i=���sq%���)��L����M$Y�e���k
1�@:~�E)�

P&#3j+x���룕�
A����_�?�_S�(*�V���Do�� 7�NVs�
+զ�Q@ш�~w�w��T R���Z`J�)(p��3
���E:�a��בv��$�
:
{P�6�l۵��8�$x�^"� ��5f- �k�
_��䑚v��%�Č㴀�h*ѫ�纃d�}D��z2,�a�~F�B��?�J*`"E#"���F�(
+4��-�(B*�Wy�f����
K4׊y��p��N6o#��Û�"L�*���i�M�ytuh�s�0�\����E��̲��b��fNx�"D��I��ĴL��
+!�;����]$�ҫ����bB����Jv��-��L��_��؉QY� M \
��T�D)�ɘ�m
39[���
�� >�U?��xZߣV~�aB��/0Jt0�n�4E�,H
�L�@��f}F���K�]�k��*>�s ��oZr-�6��i��
62���췉������k��Jϙ�\�U��U͌[g"-���T�����\"}}�����9Z2���vD?z�Z.-Lc{qe�
iASP�o"A���%.���0LJQ��L1k���"��Ԟ/�
���{A:�r3�t��;I>w���y��O�73Z�9�i�*p̽4��
q�����/����렄J��7��wZ�����O,0�����Y�^���{ʧ��k`6��Acm^�0�> �����/���(����>U�fe$�hu�=
��@;�	hBG�p��8�E�p
	�; ���.
�U�VGt��?
����vQ���˽_�Q���s8X(ʗ�D'ر�x�
EiU-��lچ�3Kl$��2M:hu] [...]
7�9@|V�{{��S�P�i�B�%�F{�W�Er�q�mq����8���
�G��V�����+S�cf�
�m2ۯ�/nnu3����o8B2#����w"(����h��
%ܯ��Y0�=��s���t9�����E��M���� ��s�_
���ʣݦ�֡�.<G���Ȟ�>Y,�<�,����ᔑڿ��
�	r��)@yy��IlG
1\@��L�� �-\'[�ȱ
)�Ug6��+��s���YD�h�M�FA-�do)�ԑ�ʀ�g���;�����.�]L0vD{�F=����\O-0�5zd�����2�.n��Wr�>�	a�z�ٓ�|�������;Oa�����r7[�٘?D̓����Y�։z^ґ�1�c4�]zZK�PgǼ��0e<��_]��~���ɟ�FPDp�t�ЅZ<���X�~�1�
�P+>��
+�vc�4Q
Q=�������Bf8�!vbq��
���~��
s�� X���3���던�����+���C`�!>p+��Mn�Q�!B �ZQf�z9�"̬��z�^D<嗠�yb9�
�1�A38�c�7��l�@�.�
>"���~�~���AZ��c-���t���
U֐�c�[7i�I<s���u����C#m�;]s*��R��H3����ٽ�S�5�������[��&L5�
D�<����T�|:I?�
���D��;4��y��������լp�f!��߅{G���3���@�KD�f�K~��b��j�zX	t�Q�d9���/fT"��D�
)��NX�
d�_D�G�7�w��t&Q�0��S��&�v��� X��"�`v�м�uQr)��R���
+E�*V
�d( k�*
�)�#�3"7��GW�����<Ε	
�����r�
�Pl��o?�{�cB
V��\�v�|�����ٛaq����z;t��
�:���q���-��e��
fC���� ����:�O��#��G�lgwy�#�sz��tᾄ�z,U��~
����WLz�7���q^�O<���n�+��<����,�sN����w~V�'.�����
����0���
�}�Cu�%���uG���h&J�
�D�rv�9|�V�#jN䃗L��H��*�q����WiE��;��� w�14^b �<�J�<��)v�� ��c7��K@?M�ty�?L��g��Ȣ��za�
|(\?#@�1ٟyΙ>�,���%�1��Js�DXI��	�^����T����K��

�v���k T_�
(Ex��Uc�������J�0�X��:~Դ��>�,��)�v���+�X/�����Ej~�q�a||f�,4��^�؅�c ��RM�88�4�_h9������� 
+�
��Y�����2~k�5TL�t,��ȃ���~>���%ş(�i�?�1G����܇��ܞ �z
��nDLӻ��{��,�ք0�����'㊯@z�˔�l6�V� �~�x�m��r�Ǚ����w���E_ E��?~��!��l?�]���1˅�*��E��-�N2I?,c;C���o��o~�x�*�;R_�=&XR��D�/���^�o�kH�Z��r��Z�~�2�8�#��>k�ߩ�7n�G�?���������LY���5�Π��
+'�H<ZA�� I�z����D� ���*����������D�5�L���|y4]WxPS��4��Р�0������F�z��)��_��0B��~������BIug��%T!��ȿ8�QkS�D~��p
�l�I�`� ��	G��-����V��:����޿J�ٱU��
� �
�&p�zjڦ��w^��+6Q��zGM
d ��� �" �	�f����g��qO�~?F����~���'���GrYy��".Q�y{�����F���@�����E��kB����Ӏ�Į�s�W
�,��'�d�H�.g� B0
+�v
��"��������Ng��L���ޞ3��0�ҎFsU�+�ǽ��� �d��.�x��T�2�I=9��؂i�����\Ǹ�
��
s
�ƫΉ�L����tA�T㨙
���������
�bs���
��l"ʝ^P�[Ҳ��B^��q
�;���UAX�2�� ��/C
+=��l^�d%'�� �-\��ǎ �DDR
�+э�zz�u�a(#���
y\,�pJ���y�ڋM�V�[�bO=L������W�qG��J�f�t3��M�S�,?W�Y�g
7F�D
��~����.޳4�,�zpOK+��
���6
h�Vu5�=.\'
�E���
�v/�s�2#�)�����=��A�̳�mT��^��{��%}����3�[V]�ě
��a��Q��vM�a��GV�
r�> 
y�ӏ�<�H��?���"{�b�����tg/+}9��5� }�"�[)v��`��ߣj;�k䊤��L���]!�R�k�wD���|��SJ�G�g���wvkň1���w�t�PI��{vV�4K���nr_��qj���Z���!Ñ� �u����
���q�&�Dog-3�"K�f��bX��d������[�
�b�$�j�Du�N�
���_^H��p+_��޲/�(Ȗ��^�֡5���r�
+��1� ���7�{R�����
��%��+2F��}F�+���/��#H�=�D��=�9�EeӢK��'Rz~p�����{\
)z�-�����:�e�@d�
�
�Q(��w]n2�
Vk_�T����o�����]�M����QG܇
�^�Y�H��.����+-�r�s�w������a�a�^X�C�YB�X����O�yn�㋹3�"
�D�}�<"�����$ з�NI�<��v Ư�c�u���:%�kdQ~�~�����ºC �lOk
�&[DU��6��
e����U]
7��H�k|U��Bt��h��~�F�ל�BX��W���x��Vk��ף4��t�>��������?����G����ȡ��Ѐ4�k��'��M[�i��wݰ+d�8�Y���R:��ψ�D/}y��ǁ�
+zt�r�Ÿ
~��
x��o6��7�B+j���
	�J�H��q��`

+Zs �kf2�^�DP��%�EPu�D�Z7z��M����!��r
y{L%�sS�ߦB.jjϗ-��΅q��M�Ow�Xa9 p��ׄ��>�Q�
�_ܒ)X�w���T|f*.
+�a'u�½��M�Ѯ��1� ��>#R,D�QC��<?
z裖�EW۩u�Ba�� �(�����_xzF	X���;.L���`nה�uf�������0�:j��
{"��P�M��0w��!=�	{���O�`f�	���q������~X������DD���G�
ʗ�K%������K��~������b$�C��jmX/�_�#
+t�T�~��Gy
+��+
��J�*|%���
+m���z�*g��ף���;Q�z�
d'W�D�xh&�3��Պ �{�I��!OQ�Σ�
?��l���[�s&�q#���P���
2�T
���'��[|)BJ3t_
!:��.}�����4��{5S��3p����YoG����
��
���e
��v]Lʀٝ��gD�TD��# ��8�a �����{	��ܡ5(�N������c���^��Ԉj:>�z���F��s=Oxb$�l��݂̇}��N���	�Χ]�Ȥ1(�l��k�ETG�b���r�r�
��Vɂ��,�x����/1�;L?VZP"|@'+4q���%#��Z�#��BR��e�K�
�׭82�}S���w�t�I@
5������r�o�:f������a1�k2�n�d�#�,J��T՞��߫֌�?��]p��Ww��k~�:L����}ۃ�h'�|X��DaZK�E)�4<v(����� 
~  0��� �r���G'�"�,�FK�B��&v�]
a�[ċb
+v
U��(�"ZjWRc
���\*`��"
�j�����!>{���T�9&-�% ��j/�z�x��'�+j���Q���M��O+�59��Htv)�\O<'FC�cc�=$�<��	�z�O�����0��'��_���/����������o�������������������o��o����7����׿������o��T?��/��?����������o�������?�����������/.����?P	�_�����_f����~P
��a��
-��+�V]�vQ�w'J
"����Ϩ��J�x�����Qߟ�∠J6R�&TGμR���ݣ�-S�t㷊�ߌ@�c���j�Ԉ��{�%
�Qĝy�Z'��hj^zT�|d�D�}��ш�����"��L�D�����LF�s�#���I�{�Re�>|p[��Mh"|����HGP4�D�(a{���E�y�
+�Y)��jy(�+�;d�B=�Oy�
+�
+�=}��h���I?2:�
<аU���&;M
�!��һC
gmC}�`�������}T��;89p)Cx�{��GI�w���UTTI�-
9-r�)
���[Р
(��(�<�������m�A4-HT��+����%��p G���_6}�]b0����
+�`��|���E�?�N,m���W��Bbi.�+`[���J�	�
���EjVp�M~̵*���q}߶@�K��`ĉs�.�f���w�Zl�C~���}���{S�
��	�y����L��yA��s��A�З5."9�0�<�~��'
+��S%N��
+��:??��A�)���Ɏ�����[�a �
��X��U$�I���⟀���%еvI�e�s&D���
��g�,�
+��zt`�Q���&�5�N�P���:��ס2�1<
�"�oӝTz�<1 �
����9�چ}m��ʤ �9
�ʓ����Q����*�g��:c����&Qwd�s��ͫB���X�Ԯr��Q0,,w���!	S�{�gB�����[�p

)�	�U�L���I�F���s��sߐ��<2�d�8
+\����x��u�8]�	����"X�0��2�S0�߫m���_�5 I��$�F��ޅC�/T��z���_w���w)�
n����#4�x}@�#
懷��#@��2\`h�w3ʦ��mi�H�
^�z� ��D�k�QF�8��E�:Q����˯�5"��"�
+���
3�:`w�mw���Q.����������q*2�@��m��e�b��\�X�|]3�`V
+�?�ԈΐA�~;N�Ө��vC󀈦	���I�f��>	{����[�iv��@c�u�	Ϻ�C�Ă���O���m�N-�濵z�(-��]�do@�
�Z.���L�{�Q�E/��
m����o<3��q�q�c3�)fw�v_9����q��nPzqf�޶@�Ÿ�nBc�<ڭ1��!Aنb l|��x�>�)��y�Ɂ�*P�PV��D�~��;�jX��
�!�$�`�4� uJȖ�%��=F�8��#ErcT��6h}h�=���>�Ƀ����<�b����jdz��~+�~��נ�'X~r%5�tgE?!.��~���
?���:L�&��l�u
`�j�M��f�~�<=?"��%‡��^�%��K�'Wr ����"+�B�$}	������7-a���Y�Q���V��":oTCD��i�҅6*q�R�;#C���NξX�?��:�ú�JGQ-Bx�{տ���;Y�wֈ�aRM�����91����fێ�
+����LH���'�+��/W�װ���|��>=���!��., �hAD渿(��oUi��zNZ
l���U�pl)��c��-"�I<���A���㴦Α>���A:�
�"���y2nf��Ӵd�A
_��QZ~RՃ 
+��G
!�Z�W	���r
%��.�l-��|�F�'��3{�(C5F	�ka

���/{9`x�2�$�nr�W&����{`�VL{s
�4��#M�zs2\�, at A�y~щw4_ED:���0�)�z\˵A{A{9W����4{`<��vB�3��~Ƃ��ڷ4�5�{u��s3��X�>���>��X�Վ.n�%�J�Ӟ
_Q����٧�
�rC���o�>qJew�:?
+�����sU�\�M���g�3 E_�����ܡ�Xϴ�� -�z8^�]1
4aF��j/��� B���G�"�T4����\��Cv�9�o �u��%�}��
^�����^�xz
� 6+�X�XCs���v#�<��VD\�7�x���@=d1	�MY+��D	�	mQKbB�-F9�����
[J6�7U��zf���
/�"�t%����,
� �;�Ÿ�
�ժ���v�.6��84Ol����]�P	�w�hȲ��̓��!
+�
�������$
h��
C�a����Y�MSb�ƀ]�ԟ��
���͟�� ��N.'&#��>�O��NH���Q�#�$����5�k�ZD��Mn
d���U�uO���ї�
�~�S9�/����?W��k0�Dٺ��Ɨ3vr?n,_�Lx�^��2Dq��������h,x�0�W���;�����G��kU�iW��M^��|>�7����m@��)�
G�]�el^�
7�ڙ����mH
n�1���Sgĥ�
��=`��!�Y?�9����hgK-/b]�P>�Oķɰ2[^�&�bj���'Ao�ᡮ
�)lz�B��=��!��=������c.L��#؄
+�E;���%4
+
6'�� ��%uoB��b@�˔1rݗ[Q�Jױ�D�T�C��f��l1B�]��U��^g��M�(�u6�
_J/s�
,��S��}t�H��Iܮf���&����u�O��Ti��4
kx:)����(��N���'��uu��{�yx7i�$h�<T���1���}�

�/�۹
��7�����/�����#hkT���z��!}8V2!V>={,�N���&Bo��
+9�5�u��
yG�~�2��m���j�������^�?��i���Cr�y�����2{��b��W�z�H���
�3B\r]_?�_~���%y
렡n��z�VA��mԃ�'��T
���o�~;=���~8N/*
Q��g_9U|�a[��
&�}\~GZ�j洯�|x������3�SVD͊�0Ut��%h5�
��y��CD��L��c����~
d
���![��A���7�3�/�����1z)?�R�C&���D�&uE��6�Ut��
�Y�&�GD��G��}�+���ٕ� �����Ż�(?E0�-U�;g�
%��}�ŐE�9ъ�<
�GKtu���.���g���M)�[[�/�3�&�#(����x�5��]0RB�
/h��q
+Е�,�f)�ШB9��eÎOĥ�䣶��
��_-�if_<���!t2X�J���
|�����:\;=�-{�+���^�Du��0#�$-�%s*�Wʉ��
+�
��YT��Qc�zިr)���>�c�7
��n��3"�R �?�y��As�Y��ǧ���S��
z�NT��D}C6
am��8�Y��� g@��O��v��ψܳ!��RG[��q�L@�h���VR���!��ůs���3}�R W3c~y=�/��h�w:��Rh� v��
B �z_�
+���;�!"�G4�/���"�E�^	)��-�d��5�^���$u�QH�� j���k
�>ρ,�z\�״��="��V��~���!M����q���l���I�j����$�2�����/�B{�S�S+�x�+d�0�V���W3B�Ta��b�9�M5 at T�%
+�CW���|6^�8����Ĉ�'w7���=�G
��:��{���q/�WaQi4=���H��v�\�
+(�[��.v�<?#�|y��R��>��nPуn������,?E��$��WB��Q(�6�_x����OD�-�
+
+3�G��|��
�B�w���7I
�Z
&�3޶�<�늰o��{x�X{ȓ�>�W���_��ŗ�t�j9�*������
+r���)���lD�x�_Zl��L ��������C��
+
�+���l6 
�l�=��k��Z���#j��8M�1��ks'�����,�)`غ
�����록��3�ǯ�b�h�q״�1���k����%њͦ�����e`�J
7�CN�
�w���
+���
��2]ߛz��u=l�ƽ�b]���?��4��L
+,7��L�҄��"�5�%�Gď�������h�K����vD��-�x�ҫ�])�$ܹ����,�1m<s�k�ӄ��|��H�#�ǹ��Y���q.�d���uq�P��ʹ&nP��V{�� �^
0��#�,J!�9�>������fR��͂�~}V��/�-p��@m�Ps���H3�
+C�V�.�������C�Z*(����2��8g%O�|#��x��?�s~�H�������Q
ښ���$
�~�lB��o"ʰ-�"���B�9J�9�N�xi�OQP�Q����_�uq����E[�`>�!�{�$V�y]}�3�
���k��V�KP
��Q��.��}@�(�7��Lغ��Ǫ������w
1ec��$������ݾߑ�����?�l�U�G!��e�P��_Ƿݰ���C׈�)�{s"J5�;F�J��b��x�1ȕg�6�&����HZz�at˭��A)`�]�@��b�35���3��Y (�V����s�ծH�N{Ѕ<�NS�}\XIX�J��3
S�\F�4�mܲ�F��C���Gu�l��7x�OQ`����j�@h��c@������3���	�=�s�2��\���Fr&
j�}"p�(1W�}�I�8"CNSuߑ�R�=�lm¹_��CTMY�1�`���ј�Q�؟�"���2>�y:nC;隆G(ꕆ�{
|@����j�>s?(X��f�� [...]
+q?f
SK�
����0�>�Z��"�{M��
t�
��q������ހ��HP�x�y���Z|�_��g�NW
�ј߿�\Q�a2/���v��D
&Y��X-߿�����oZ���g4�@�aA��
��0BYݚbʀ����~'��IcT��j�4

R̦��mA�2��˜���
@�����~�ekϗ�I��;�S����)�����2��T��JG<�4�@���f
uY��q��m�ǁ:��!�9�eX
K���
�C��Cp�]A��lo�<��^�:�
h�F�H������ނsP��[ğ
+���-?	�j��
�F�Ie��r����<(�#,�aE
+b�N}=pPK���z�Jy �4~�P¶)a���~��bV����
jq�
�
��c��J�|G9
C(Uu���Ch	�4�Z��F�}ǹe�&��0��N��
���
WT�ǯ3�Mbᬆ礑��{��y��Z�dx�
+��DXNDZ-<{PD|	��'����p���l2�3Ca;�{������Ĵ7��C�3dM�l����`�/�P*���?l	{ō�Ҋ�$� h�uEI�5D���?�\IU�f
R8�ıx	* ��FE
wE]��G��ݿ 	�Y�&k�&�j���b�܃�?�o ���\@��^ ��N|��ZM ��lnʰ}?�-7��߈����^eY\���`���}ڹ�=����&�ì�.�¨hvDР%�a�S�. �������]�3�"a��)+��)h�aG]�\1R�l6�*��I �wJ u+��1����|1xV��7@��7D�	�Q�<�$`$�{0��
�ġ����҃	�y�)�;z$r��y� $��c�r ye@"(`?<̴?Rl
-N��|ߎ2Bڻ��q?D1;D+
 ˸b�
J	L��T��	X^��D.$
0�55�@o�<^��L��C��&=)*��-��t�3�]�����M������$��v%�Ge"Ar^z?|��i
hY [...]
����
fZ���	V��Ee�x��s�u>�)^�*��;�]��s%#{����<�:=�
��s�վG��s=N�Œ���90C�nߨ��R�kR<�iw
]�g��ź�7��R ?�ʊ�"�'�3�q>,䦕��&+[Ű_��.0�?
�R��?x?���qhފE���W��C>}��[s:�ߣ���ְ�	G����:
�!P�A$p>~�S0@&p-�R�����K���iRx�#�CP-0/�pp����
J��x5��k�dϳ>o�W���4b���EAw��
������<�f��<��v� ����*"���*Hƌ3~`
+"j�#tU� 5�(���z��Δf������!(~��~�^�#�ct������������uE.�W��񼢛�zWm�C�3�����5��f"�쪧��]����x�Z�?��?QrP[������%���
��ߓ��1� +�Q�����9>.<� ��R��y=Y��4��٥�l?L�a��i	���c�e�Y^%|ބ�0Nn�c���1I�1H��ly���.���y٥k{R�V�w
+��:�.ft�3������v�2��:�
+�;C��^R�[�CS����t]�ꢟ��=��s��q+h�x%~A$���3�|L������Z%�Վ:!?>����xA�c�|P�p��^C"P�(�d6��B��S�a�
P%�4?�a���5� �f>
�KD`��<H%#~�k�C�Ni��
�GVy��#���פ
ı)�俋
�G��;�b(��XC�
+���섄�geI��(5Pa�G at cU%.?PY�!��Ue\��~D�꛹u��Y�}R���Ѵ�]�����K$a*��
"t�N�nbTld]�u ;ƻ�>�m�8�"K�Eԗ�*eG�<�>�h����N-e_,E�4�^�Ē�:�$�.��wΨ7��w)pNl

��1���$�N�zW�	?�I�� ME�F�!��2�`��BpP��ہ9���k��D���4�Q��u~?'�LﰮaUSTu��Y1����~y�~1�a<��n�/���
�Ѩ�Q��
J`!r`�A��n�]E�U
(o˙P��KI�_h�����w1J����t ��n:@�!2E��jN8� [���
�����
F���rg�-lE�v
��|�]@%<�-�j ��U�$���i3I2�3:P�Q��q�E��Ψ&2�+�T5B)�tv��K��;>ǫr�G���}�tn�~��������=��y"���c£�`'����
Ws`��(~��m�^o�i�֬��C�o��*W��V‚�s9����K�����O�rN
	����A9��'3j�I�9�Tl�=q��`V(yK��	�}��F��=���]��!T�9�����~���z�s3'��C��U��w��,{9X
Sy��
v%%=��YG��a�S�&E
��Fh���r;�W'-�
��������f�����^�͈f +�/li��t���~}lEM:tА�Pջq�v�E~KR��-I��J�:!�u�&�����&��+��iCu�
I��MM��|�q�B����7��Qz	T
ɿ��>�T���R�~
�RC��p=w7��>��d����2���m=�WK����G\��;����
�tr�G�uy��]G��A4r&�
ܿ�u@�*�2�i�N��o�i�+/G|�r� 
+6J~�q�#g%牼�"7�%��
�lw��a& �[�j*G�Q���D.�Q�
�%@��Ụ��g�ss��n-C�}gU���j��Pt>	�4o�� oQ�Hs$O�!�F}����?	XI�����%�<�F
ag3�C�?	٫��~!{"0�Ób�\K2N�_t<�\�(� ࿛S[q�
+��w �E��
�ڑ�T���~Sg���
rd���S�i���]�Rj^%jB

͔?|5��W|�=y�P�b�
�A�j��w�p�Ce
R
k�+�
;ph���EC�W�qp���{7 �3��挰[d�a�P�2*���Q��w�
�	�{)
����$;b�%�W�cBF����1��__��sP1h�X�	}�X�$ӽ �@{�@ ���P�bqU~�B�v�P�NwغЪa��
��Ә�v�mh��z�U0R
_
&�R�tJ(���xa^�JUP�긗�$���v�Y9��'��0e�_�sĚ��F(S{;�"���~���� z
D9�F��Y!u�VO%VO��Tc�ɼ9��D��*����!�<�=P�I���Ӷoiۛ��q��G���hǧ�N����R��46�^�n��ݗh�@��2k�I�}5{����]�dU+��C���+ #��Nl��7���	���A}�nm,*��f4�
v �Mz(��Q�
��tWyϴ��
ប��#Q�H�P�ѵoԟu
���\@̈́/!���<�r�g{�4�U�(9�)�"i*��@=m���nhӰ�D�խ4e��p�������_3��Qa]�Q�e� [...]
;�˩�SE����D	�Q�%���[�yq������+&�-�As��y at U��
y������ +�̈��PKB��xDU~i�W�k�\��A含��r� �� ��*�Aj
}�G��#������~��q,s��4
��r4�����9�
����s|h"hvD��@���wt
{���K���2'8�y�a�R:�|U2H��V/�&-k�Z������^�K��.ƖG`����b�ˉ�R�!����H;=^�V����F����Z0{�ԑ;ǘ�Ɏw��%;�*�9����;�Xs�'���x�Ռ�YӠ8Q$<�]s����%��dWO�y
+��
�
jI��(��$�C@*����*�>�W��u
��fײ�X2�2�z�pc�.�+����������� ��

�ӏ����_��������;v�ƷԵ�kaJs��P q
��t�+N�I���%ko������Lu3Jj0piɸ
����s�]�2裓�(����x�r��:��E�C�V>�1BF��<���4ʡ�r���:��g�y{�+�Q��L&�|E{{\���"��0� ��QǸՌ@����i������*]x�u���Fi�z�OB�|9�
�p�E�s6��� "VQO��mT{p��=���_�1�u͊Jh���ʑ��f�鲲^�d
 �"w��,�HjQ�ԧ ���iG;i����s߻����,�w!
2>/�Qb8QY��10�zzJ���$ْJ��dH�tu����V��>U�6�����I_��մsߏ2���)��QAc��!�/��2��
�/gH������g��=j6_��|�Quڌ�j|K_&
p�h��z�0y���,��
�٭T�.��D�)������c/~8��znt}
��Tp���41��X�1�
� �_Ѕi����������B����s�3ś(n��癣P��
��kt��<�#�^o1t�-��(�!w��M�ɷBB�=8}[EP����*��{��ӟ@�	�YR 
�p�bd`��a����ڧ�x��gq'�Mpu���r
��KVZj�nK����,j�
�g1w���x ջ���d}����K�5�N��R�j�9X�~ĦU��� *
endstream
endobj
41 0 obj
<</Length 65536>>stream
+<�TO�/��
�}��\S: �e#��3uRQң;�(n�c���:��isJ����hv�4�L��o]� �
'n�V
M=C��q�D���
�_,���2cdS�qf�-�s�;C�F����
.�
 �R�/��x1��՟�%���f�(>�����{Ő�/3��yK��#���:�;�(R��,�s�SMZ�/ʨ��&���>��6
�8�[�
b�y)�6�#��b�A��&�^Y�lua��A�슯�߁u�Ƈ^zz��9v�A��tU~\2n��`Ƭ�F�?�ݚN}�	:����ST�w�D�k
�' �fjG�s/�lq�V��]d��O��o�9ܐbU����+m�}1��qܰ�*�M<������)�C�H�Ĵ�3}�G_��؜��@Q�;
�
+�����q҄e��g���q+g��s����y�:
|�M,My����^�
8�
)Z�nQ��ԗº�_��d��@OYzV��c<���z1�+��FL�
�h�D��!
+�H)�
5�B;��t�י���n�l'¼W��
wH�
���-1C�sxE���[g
��|9��U��U���b��+x�b�
_�V#���n{$���M9%�T�j>���i2[������ӣ������r��ѵ�MGv�\�;t(g+w���Ǜ]g����
,�RP
+�Ps��}M�k��q�7�����^��ש�u�������^gE��
�A��S�Z<����MQ��
S���@5"]��
B�I
+JQo�H��
�5QNB���^C
+%�kQ�	O������S�7��A�j��:�lNԏ���d��뽜�<
+ޭ��;�ל�VG

iu_�^"=B���(kG�['�f@	1mei+g�*�ք
�Ȣ�|�t��m���[���Aw����iO
����u�&>B����C�f��}b�D��+��
�+jN�U�g�v�
��YLI����\�ԌOxլ��
'cBQ}��:���w=��{�/ó\YY:-6 �L=����!�<�M�3����K�赌���(��<ho��!�����$�Io�w
����y@
�W�Ғ�2���TT����>�M�Z�3��Pu%��6����6(ޛW���vȚ^�
�^X	���eX��
��]�ȵ�S��c
�::&Z�θk[���?���L
t4Ȫ	=��E�3�#B���
Cmv�g���)���zDm��P����1�]Ox����L������:�D�~���ɕ���:I+��7P	u&0l�렭h[
+�(t3���� �C�h"f.#��<̟i	�{4v�9L�ΌʞUS�n ?�2�D�����a���
+�!�D��Y�"	�W<
���x���
X;���k�Ł
V�W)��Cc{�)a�6�+&�_d$_N̎.��q"�x��v�s��5h#�@@��b�z��
+�����Įb
S�WqynIP�<��)

+=pd�H0�0e�&���;ؿ��KY�Nu���9B߸R���*2�Gl~�)�o
p Q��<*�I؟�#=R_�
���okS��z1�٫+��
��r��
+�+/�W�K��'�y�����ɛ+8�R���:�d[��[�Ҏpy�ױ����5ѬJ ���$�w����{�
���k;�H�q{
u�F�x��7	'�C�5������
�5�#�%�6��2R�W4�4%�x)��}��|����$
��u+>(�K��1���
�I����H����†�uW�
7�
P��r��$�4�۸��/m��n�8
T���d��ߌ�(Ufh�ME�
+�!�
T O���M�.jN�����GT�wc�D��K��{�+��
�A4����_  �+�"ܱe��*���<�e��?��BlQ at a�[2oP��t�4T1e�\��Hר�SI���"�������1˻bC�V�e���H2�
~.A�3�<�� 6%2f��W��i�����PN#���k��Y�s��@G�P�w.Kol���Dm�f;��i[
�Wr���vQ����m�;Sg	gŅG
+
 �`��Ō?ږ��L�I�s ���XxuҮ�Պ�:�My5Q�g!)Ǜ��UdT?C|
�d@�.��TB���u�C�'�jy
��zEtf��^����Ec�

nwu�A�Z��/C���
�Ƿ����b�=�5t
+�/!�K��������C���
��D�P4yi��=��V+�b&W��]i@ҰH� 4o�眨;�ڇ(�"��#�Sy�U:h�n�ɰ�c>uu�
��A���T��M%���!(w�A
+�C��9�Qڭ�(������'�Hٸj�3�Z�a�U���a�7�Q���ē���<e3�ċ
u��<�*u
+�!
!4⵼\F+}d8-����޾�A�v���Iw�F��!��hq�h6i�
�	��p���CTy�X�#�WF%����d�Ӻ
!�$*k�Z�;�^
�?-5���S��aX�Ү�4
�Z6��y��v��jT�#E�I�X��a
n��u�
�Q���^��c8�i��<
�wc,1���F,צa?�d�d3�u��0�[��+�b{ٵ�JIL�
�uO��s����t����I1��C�Gmw]*:
TD�*�*S^���HЀT�ii
V����zĿH�t�	.����Sգ^��
�9�}�!�XW��Xq�y�1�VI�q��M{r"@-�\��ޭ�8x"��)�%�Pt
�}Y��}co�
+�nw��z��t�_���}�
$��aRQD ��/`$zU���#ݹcrŀe
�Հ����`b�J�Qߔ��
+l���Xm+���ٕ����@H�
�]�|�6��_M�v�l|3X��Q�Vr՞�Fs��K;�n(ׯ�n"
+ԡ������F��EP5��Qj��@j 8O�l(��;��+@̰�w9A0Q���(rspѥ�y�|*ք��KصW��D�$���z܌,ˆ"��U���x�W��
+nopQ�
��z)%L��W��
d�P����)��Yo~�I��㉅�4�(�Sk���*�j(�XR�ļkJ?��@݂���!k�{�2�
rHշ
�����c�9#�9>l�1�^����|��������r
�Q=�%�B�%"�}�%���D6�-\wD-��c��~�'�?��U_��C1�5��d/t\��
ǭ
O��Uv�D�yf^���`�`
��s�5�����%�
���Jf�evt��Z]�ƥ\�-yXB�F� ���K�v������j�'�����[K^J��D\�C�e�
��\��Y���
	�U�_3�8Fg�[�:���#�ȳ�:��/`�'��

��g ���\j5�@T[�n�x��u��_V[�� �x)x�h	R`��k*̍{�G��a��w�)����T�@B@�H��+V�8�7�M�E�����[�0�����g�R�g�h���~�8�~�AT&��+�T8X
��1f�*U�:�R
�]�����9s��!C���Wo���#fr���C�o�_ �t
��F-G}܆PwEn]�r%W�r)�ǯ�����1o�{nj�^;R���h�xQ
�d�b��c9Ќ
��G����I�Hޯ.<�
Z��#�u&;
+p���T�$��4'�HĔK�pk�����'T��=S"�aB~!�
���v�]�
*���8���5����B��:��C����W��!���;�.�]KA�k�èB�B�.s
�8���Ê~
�-�
+z%���k�����z��JiR�M-�՚]�%ًD��v;�z�QsF`�G~o��[�`�h˻r��fAWHb�4P:^�v>��}��#"�8�4����8K{��
�K
�Gz0�_������
Nܦ�>�D�A�j�ʳg
JF�<���0c�N�axM�߿�'���������cw�N�Q�?{.�-��M9�w'(�&�
+��e����xߣ�ƍ�i��zνc�@�����[�i~U�'V�PG*��u��O��޳"�
+�{��F��8T�L`�C�@���컣���.ŵQL+����ѵ�U�op:S�L�iH���c\9�q�
�ˬ��YYZ�{�v!�?R<�,�u���R��
�E՘�kUCI8׻��c����f�r%k��6������
�h��x J3��t��G��Бkn��q�A*^
[|�AQ��F�
+�=��S��Ҕڥ�k)�/
��&�ð' BxI,��-dl�3�
+���@�4�,������#���=��{�ʢ�
�v"���o�49Y��$��ס��N��(,��m��x�@wF� �	����kr5��s)'��B���*�.ܙ�W,A�%m�k�	΋-�R��!`f�fSe[e���=���������ȅ������]�W�
+}},�/f��i>�,�� �G�z���F�a���.6�^,��3T ��z�'R�E/��
+�t��{�����w��4�2rH��LWN�y���)��l�^ �>�x8w�z�����{��ǒ���-#�銷����@��:
��'2���_='���@�yQen��7��?y�>D�~���/'$�H���
K(��,������0�
'�F�l�-ܭ��A?��J/��{�#oX� �M�� �0A�67s��f�pN�ZN��>�D
�O��!���c���v�Ŝ��>G�����#
+
>��W@�TnJ�Uz�!��0,C�9^�)g�1�	�5�"��]g�7ʬ���7Z4��1 �����}�F��}�Ǩ��v�گ�����\U2FO>p���*����ć
0��Uݻ��J�k�i�U��uЏ��D�ԝ��R䃦�
�}���� �	�U2�zTq�;H�wyi�æ�4
��ob��[�?#҅
+��C�@�S��~����ؽ噢G�9˼\DguV��Qy3uM���콭cϧs��C���E'�?ʿ��l��_�e�y�
��'�h�g
�%����*����R�tSǻAT�^RZ�����Z<�ZS<��)�:�//��+[̟�X��\�e�����%#�ĥk�5�Q�L� Ё/9��tѮ�z�@kv�$E��`�UvBD�x)
q�9����sm�=�,�X����2l�Xz
]nG��ܫ��#��܍�c �$��a}(�1'1y�i�
+f���|٬�C�Iҕ��k��K�vE�\W����}�q���RP�;�v��દѣ	�.��/��7�Joq�b
+J
+Xх&F�y}��)FHG�c�D�d΅ceNT2<g���Q2
+K$&�W='h�;�Y9�-�^c�t�3)�y/��8��0�;�h|��-�m��H/)
Pi��G�˟�����ul����(��HD�5y9���Ï:�!0fD�G���[�
+l�@j q��(ʧ��M݀�v�[�/�
�DE���02�1�z
e��Wv
W��������
+q��k���k�~�
+ͽ��	�9
:PT��=gD��_CM۾�}�T��H{��Q(����0
sVs�G�fnK���ZE7cD�����E���E�b̀vˎRe���s�u]'�#PO�;�.�č=�<�!�L+�ԃ�w�fW|����j3;�r��W��ϙ���% I&����.�"c���D���4,(���ο�B$:3��K�-t����~�w��L��}de\?�”
��*��S�>N�J�d�� Z��$��\����
35]
.�$5]�b8���
���S��*i�q��35�/������흸 Z��>eh.��U��8��b"7�vwy�HM�k=�h�Aܫ:��+�a-��Nq���(�z���<���J+`��� �]^(Az�-�qF����m����L�v�Hʣ#��ɋ�ӈ�Յ#ی���{s���: �G�^j8�è�����nߎ�1󠉅�I����������x�
�r�唇]����U
'�^
�[g�F��{�h��=��No�Ư��g�u@@{-�������tUE���E%?��σ|L�
�G�����`�J���������>X;7�������i̊7��4��Of�K�n^�𔣄��s4	��V_'2 �1`kCht��ذ_K@�s@����805O۬<��
"=Ծ~2' 1�&�˃ ��4��
lXq
+Վ��� P���3%fE� 7]���pU9V[�lGg�Yb�ɭ
����T��(����>�^bZ]%`��8��U�˚9��R���_5@���v!��,�Ո���Gp~'��gxK�M�/�A�Ow���gÓ�V�ä���g:*�P]���d�l2���f��'��eMp�1�rkUy������'��s��f�GI]���VG�z�@�U�cx�e�� agG����ȵH����فDJ8
1'���(®���*���
+ىϱ3=Ԭ�
�f�F��]�w�y
�;bFf�!��&�q�!B���g���8]x�H�h�͒|�v�'@���:�_Ep�⼜^$���Ӈ̵~��Dဋ~��@^��z���g�E��5p��}t�Aj�GM
5��u�j�pWfPl�������
+���6=�����J�$���H ���Q07�ݫ�*w�ڮXm�r�C-��‘_"3�M��7�����;Sj�;���?��vU���j5�1b��D��f�"�d;��wb�k�S|a�	j&.w�C6�[�>�G
l0P5���ޅ�̥��$$�`���Q�D���J?�P��3=�N�
+2��gV4��A�8�,��1b?�8 n�_2�rS�
�s~Ў����
+a�y��/�D���a[3M�@h�w�������@5�����u7ư�9�
k��-���p�8L]��t�Ƭ�=�7_	�F��nh����;�������
9��[��G֭��q�C{�j�c.�c�@���7�s��Ǔe�
���~
+�>�y�&
��m��"F+�u�@ԓ�T��s4����m|���3��
�>VK'
p}?U�rxMivk��,�l+����ň�p��	Sj���;�7H���z"n�4d��q����4��
-�*H�YQ<$���k�9oFil�p(7T�I��^Y�����C�GD�e����N�3�5�f���%M
%;
���2F���C�z�$@V�.��3"'X1"C3�$��u'���V��]2��H���J~F<�䊒y��>�t�i#�6#�F��?�1N�԰ފ�<�M�2ݞ��g�+��>:�>��I���zX�y�X��0��W��#�643.��ϝ��2]!8�;�������U�ib1�o��Z�3�f<����G2

m%���e��#(�W�����������
J��F�.`V
��[Ig�h
����
+zXt#�����ψܻ
N� g>��
+yB��}���_I�0�j�����Y������2�
�~p�fz�%e� 3
��v>��{�ɏ;
�^<�#��k��bU���.xvk�N�+��~������f%��`N�!�̉�
����F�#q�t�����,FS*l�&�,2����*'0�"t,�l\��v�����R�i�M���pCrK��S�n�v��
ӌ���5�}��Q�8qvM:�Ҙ�L
!S��"��ty�ǖ`����
+tIl�#,َ
Cu�H���A�cA'�l�A'��WJL5��|� Y�1�_�5�n
�vΔ���#I�te��VȏRϏr�"�f�͒�g��I��?g?�w�o�FV�4e�B���z&�A��3�D:����������d�erP
%v�R��ɒ���g#
_T`:��8A����*�ב�D(F�Ԛ�{�9#�lK�F�1��KRן�"\5a�]Pl
+�c`֐0�D��x:�˜�|���8=�π?�c�is�������އ�k��JvE y�z���q���b��
j�hD�g|qKan�„�~�� �1
�>vx�v�f��=|�=<o-d8�G��o�{���}WY�dc,�Z{�Zќ"��R�Q����7���g�1���}�*��_�q�3�>"��\�?�|o�Tv�ɚ�N�s�mR�G����ۮm�q��|�uc at j@�<.��r��V� �!	�Q��R7m��J����k�9wE�
�r�9���aS�0�ȏ�ōfTx
%��ԩL�D2�N+Z��J��{L�!8�zL�Q�0z�}ݕR2�SWzGL��L�e��d
hw��I�M���e"��9=д�[��&g;w��T �l XT:%�E
+Tz
+�0��)��
�(�k�FY
�	�	B��2el�P2�
t�b��Y�W@F��I at Q�=x�h�cic�S���R�f<1

F�3��ݨCx���z�=��q������
�w�jZN��
�jfSL
��^��5�b=X�
$^���s� c��I�Q̭�l�G�	�q��Ք��4���6�K6�1c�]q�sO����2�*�\�[��Ӡr��E?���b2f�=�-5�[�If�^D��s�Є��Ly]��s�ru��YIL�
�({�)
)R��d	.�pWP�1$��o@������[Õ�-qV���V���l7�Ӏ�i����H	۠E�W���GY9�h�B	Y:�
%�p�1u����&�6��Ă��nBL� p݀ל���g���oz�`����Ӭ-#W�
�[2�~1B6��8z�r0�P��1��7�~`�Sf�*wω��$j�
 �8
qD��}/��U�ɫdAC�SW'�J��y�H
{$�4�7���C�
آ2����J�̒��(���T�󈴺�9�L��8���� F�HǕ����y
b{f�1
^b�Š�;�wݦ'����D�����V�F���T�t�X
gl�R���4�-�>���Ս�k�-���r^5�:/<Un�nݣ]�� [...]
2f���4����vy ���QU�	 @�-H�ɥR���'��g�zb�ͮ��H���FKM!����'�7����cf���� T&�u�s8�1m��
g�sD+PFd_I^HS *'���
��
s�ʦO�b
�|�"瓄{��J~>@"R��*�.���h6��$F4
�e�
���A�ߍ.�-墧
w�����ӔG��qΒ��2�{qs��
+K�
�Ԍ���u����l:�
�_]���Nx8 at MH�&�
O4@"���q��U�W�- 
+��~�W�%{i�N�o�$�z�H�)�V��6P
>Y�9d�z
�*S���?��LXU����*T邦
o�82���3�-�`b�䎄"�)%ƝHIQ�sJ�0�cQ���C��A
@�[�=�rG�y���lgFK"Pb�(EPa�������?���v?ݜ�3 �iҬ�q8��k��ݙ܆�d��P�\��J�PQ0�\�b�~&kw�g
ck31&����
��m‘�q 
YFs��SHL���z �	@�����s}1�t$���#{�p�3�W
��Z�P
�ՇN�o��&���R��ty�$��l�g�E����f1
���5jx S��^"w��ʌx�3i§�$H45�a'SB C�*Q��Pv^ӘE�5�ϻp�
)�s��"�Mg6��]@���
+��!1��,
+~>���W?���7���l)��zt��&w��xсʈ4�i��
���:�=@r�w!�Ӊ��W����+����X`��{�
���� ��8��$r\��A�Ɉ2'���'�T<-<���U��k	����WY�����z�M�İL�&s�LH�Ya���S}�n��D_v �R��`�
y�/z5t+X�D%Z�	�}(|�jR�2�E��i�>�H-1�#X%�9���<�2�f��BkJ6~�����
���a3=���ZP���*
+��VI3�9��w��<�P�
� �{�h��;Aww���oȎ�%�
���	����� �¼es=�\8��В����>q��w�ݞt�
�P��zK՟�,~�}(�
ɓ
+
W��e��`' ���/L�
	J�B�S��
q7�����7����1��d�[�U��
+8�G@�
�ѕ	~1�mQ�ee�!y
@mаW�΀i�A�xH�rnl�Ѩ���%�.��Sa��I�7v�Cu�V�xI���'G�IիI��@�lV�'C�0C#h�}X�����c����>��J���p���)���9�c��ɟ����}�d��������O�������������~���~��w�������u����o��~��������o~�������/.n�+�=����?���1��gُz�0q�)��w����A���N�q�
+�[��S��Rߤ4$E��M
�i��ܢLt��7i���ʦPDS1�|�B�a.�D�sz��7����
D��m��y�SЁԼ�a�6� Y��$5�u�
�K��Q�o�琑��9��@k�
�nA�$Í��� ���n��|T���4UO� M$H�|v�t��!b�a��+4�߾	S-,�r%!�<��2���Q��Y���|���>3PV�x�[��f	O���:���0��F
9��v��'��L����c�/U�
��4o2JħAT�o�H����TMF���G��kMʂ8�.`���J�H�ka-�M�ڴ�/�5�=#5��
�������,��c,���)�
�Bc�
+����̨P&)�?0�����⠬:u
$`~�
 vÅ��\�u�dC_\�ڪ>�h-�*^RW��:ϰ��gI�I&wR���`DJ���������7(���Y
����((��-
�Ef�婥tFثļ1
RW��)k��+PU���H
ű%M' 0�r�(!�
���Q&J�o�
>��+k����$̱r�-�s�˷".0���s�
y4�Y!����W^��f��}R�
�3Y�,U奣�
0�j�Ij�*�F�^~b
�����)��3_a�F�&�����P
��yO
��_��@@��r��C��j(��Ӿ�+fv�۔��Ý�%���L�j1�M˼GO�L�����i+/�U�$�_�$�X�����/T�>�҅t6Kי;���d|�Ϟ�nh�{�DF
c���F��T��e?�V@��k� �
�6��
�`ܖ2�W:SH	E��Y�"{��x�
Ak̀���p��Q�#��LL=N��
��
+�����
��A�tm���G���&ׄA�Y,���L�����
+
V��,
�PLF�:=��Y�-��m
&�TN4�Z��D"�C�'J��վ*�`�Q��}�1�2��zc�˾�6C
+��~���!kk�p�6�Q��lQ:�6�%�A:
�|7z�
�\��Nm`p�ݙ��
)p���:���J�>�tpP.<��0
N���q���&����i �Щ`�"@�X��t��Q�:��
�k”Q�]H��'�<�.����̓�H�ɩ�-��ߕ��8����q� �]�
?�	|��}6\WG�|T%#�%������WK�C�˴��X���������F,��a��z�
ř�’q���
+�lzQ}�I�2u��7� ��8*��K�
M`
^��i��3Y�3�FoI(��T (�BeqCX+g���
����%X��HPj��!�<"�ս��%����r��]�o�ؘ
+�o��G��)r��
C���DzZ4�xT�y[�+���
j0
 �9 	�n��f��U
+u�*�g��?���?R��[\x�h�	eL�@TF5�Gc�Kb
{���2^��t�.d�z��*�	>��N֙�6�[%���=O
`������ft"�TJ{
ר}
4�.���oJ���E�j�	��Y-��خ����O� G)3���?���3> �����q
��B���t��y톪
�R��ulٟ���-	��;Gꙻ��Y�O��
+ӷ��
�Y�h�(z
�M\s�CZ;���:�D��c���e���mm��4&e�G�5?������*�֩���.���}��
�l�+��=L�tK�fs

��&b%Z^6���r�~q@� �PU>
�h�T�%��
��q`�	-��p��� ��U�Yo[�6ŭp��r;Of{fSo:��x��
'Va�oЃ �[�6����	mZ���fʙ��jn�����5
K�3
�):q�CJ`O,�lI�D5>�����S
5*�U2+.���YN� �Tf�������*;H�=�25��J F��)M�C�w�`��g�.ыإ��
r��M�2����U'[}�I�":L�Ρc,cX�vզι��E/��6<U���Lf1kk�lQ���$c�p�٥,?I��	��59��Zlz����Ⱥ#,�}�w${I
+ʇw$�m���e:`��X�œĺ�J-I5
	��Q��GtZ�[qф��3T(�
���8�	�q#�-�
�rUC���G�;��M��kg���6��^Pj��&��a=Xx8Ӑ1d���
]�Ϣ� 
���H/}j]��
�)Y)@���T��e���:�6ڪ�F��֔���xh�M^"���oI�W��!f�	OMګa�Q���}�I�%a����c�G˷h��܄���E4�M��uެxIbz[�91�R٦���B�̯�]���Z>����

�*J��a��7��\�z��m����E��V,��z�K��
�#�K/�D��qy��K��NKj[���n �~H¡�\������ݰ�C&�9�j
ybJ.gt�] �4D
��s�5��5ṇi3��
�<IqGd�DL0��0e�
\��r��e*�|,]4�=4OHe���y��]?��P at 2A�!8�]�g����0C�'$�fn����w~����x��yșj�6-
SZ��(*��r���2���A+}?��l�����2�Ћg�쩳m�@��+���K�g�]_�R at i��<��N�
EF
+��e���}��k��v�����s��)�
�Z����NL2 at I]�FU�%b
+��U�8�#ow|{	Q�j����*k�]/dvwi��lZ�R ���B��
�}|!�}+���,	���)?6-|[�g	�f.�L�
Fz7p���	2R؄v��蕴'/�g�&�8|�<m�0{ݳ��!��
z�nSGa�˲ո'"CA�a ��hoM��": �h
LD
���������Q�X�D`��
Xؙ
�S�b���
�g��z�7��LmW_���{��������;��q�?|Ջg��1�z�Π�"�V��S�}�
��^ CS�d��E'��	Ĥ�w>k�H�~�a�
T��#���t&Y��Цiu2�O=vS��^">�|�%qL٘
+
+�u�[9
� ��ۓf@ޞ������u;p"y���RWO�� ����
"�ܬMP��=�Wd�>���"c4S9��}Ӝ���Vг�Wh���C��������IZz�(���q6�)w�"A>Egݣ3�W�i쀇��Ť8��]`;�6�lF�93��I��E�
�6U��f~�(�$QA�D�n�L����"�6��;)�L�K�ej��SW�{j���r=c�i�
w��E��y	;�EN@�l��[�����>�� V�2 ����.�H�Rh5�ȧ?���4����b��	ؓ�=�h¼�"EG��e/��Cg�bY��Z60�<���
U���і̋!���'n5$]z��?y�v�C�zu-���!W���	c�=����� �(�
�DƔdk���
����y7��[��D3�p��N�$���Cٖ,o�x(܍s�
�i���*4�w�N�y����˜IlC�%���
+�!?�r&���𑪲	�0��ث.��ąsTT���B�d
P&6>YT⡭b�߷wt#�	5�����B6�[פ�5 ?d90i�
+Q�dKz~�%
+O�ɝP@��;
`��+��S��!>V�d+�&�G��!�J���.���ï����d���}��-0�|Ub��OaȤ=^.�{I�YU��.��aYv�<���ߥ��%p����&'2�:f��\�!y���EJ��>�-!H`�C Fm�#�p�Tɇ��@�	��zvR�
+��d#6	�J7 ��b ��0�XV�c�H�=�Rf6�����J�@~�����M��-;�3�o�A�$���Bw~Eې��[uV
+l۴m�hq "60#F�T�
+GIN�Ey�ړS1�׳8q�
��&�9VH�M�!�ž���܈��	�u�ь��4��߂{�w�ub	�n�/J��K�Rw�Kn=P''ɯ���L�w����IMB���࠘gn�z�5
Qэ�E

��m*� ��j���aܤ4Ȃªh_�
�F�9 �8�S�e�!T���J�cHI�X^9"}�N��Fb�6VH���a�MT��3Gp����Kt��٘�E:��
�\'+i�w����P�-���P�3<K�����
��4h����d��d�'ڰa�HCY6Y���b�]WQ��Ţ�||�t�e�)�	�3J��7fl�H�t��BI����H�n��i��4�;Z�M��� �%Z+�!�O�2�Yz|ʕ�Ѳ3	ޕ@��{&^Az)�bד��Cv ���œ�I���B�7\0*'���):qƍ��!۟[
+��b�2�t�
ega��
$�J�r��(Hj�f�J��#����$
�^�!��5��HB@���
��Ǣ�x^"`ESͥ\
+���ұբWEM7@��+ū5;�d�K��K�M
P�T�,wE��,�\}���'
+i���&G�|���>��P�9��
��F�ܯ'�AQ9��KCu'��(ABg0#��E��^�oԧ�ZJ���$�k|E9
�.,�W}�i>w���m��{�fT=�_Ȏ�@��<
{��)�g�>�[�����
�\�j2o��^���ci�N
���*#%|f�=`�V�T��s/�T5�l,��8�r��1ϲ��|���Yb�Ж�
���e
+�g��D�б
+�T���`n�8�@!`=�-ڒW��ہN��3���
���2,�#�����!$����^Rr�� vW�0:�O�Dz�J�0��=��]*�M��f�t����L@�� �fc�
͏ā��Z��B��
�t>D<��`{-vc��t-�,�fy�C�A�� @:O��jI/���t�Ӯx���X׋�ĉ�()�J&5��
~�(&U,� ���4
p�`
i|�ˮ�����De�3��6zm��`3�$����iN�"��%�S5>#���AUs{���p��HY�{�� Mp
8y��`�a�A�]��#��|OYo�������`��
�X�h��C�KͲ����.��aʈ��
g�ŕZ�P{ ����"5+��V������Sf�ҙؒBt�:
+=�V�r3я��s��Vg=?��D_ys�
R
䎯8-�=����F�9na�^�}qI��~��+Z�
r��E7A�Q��-����ڃ�2�3�~굅�k�{&M4��Y�Lң:�&j+&��b/[r�.�a�U w�F%i�ò��=�� �!��_
���2υD��Q���\��x�,���_����<Bu"ѩ^ x��YN=HV���g6=zV�G��8[)�1N��
r��Y�I�L���W���I��	1�c��		�%�,�$� 0����l�ɫEr�A8�;Q"��0Ӽ��_1���E0j�p��ۑ�E7�����7}���Kz����$�
�_���+�M�
�0͒��z�������%TA#'M�Ln[���@��K���o���X�E4�,�q9�-�ّ�i)�P �O'L�Ut��RsFa��%�\tbO�Fd� �Qvx:��a2����N�ZpF!��
YȎ���c�2�28�=���
+2^�UP͙a���<�kT9�(5��� �]S
��p][�$�c�'ڦ����$LVÇ�z&�D��v0u����&:Oү�<]��
`�}֣	��P��g���$�
��,T#�3�	�
+[���\v�mM���n=<�[�+�/��G*H$��!s���6����n��/ 6��P�,1#3�֞~�S�e��M�~Lx�-
����*g��H
������
�߃�U�~�S{E\�I:�Ń}�f
/楸 ��<�
+?qL��q�2�	5�$t6�
%G%����i�4��^x
8�z�x�),��7(̲l�O@�Bg�
�Zv�t���	`�p�h�6��Z%o�ă��F�g2,�0V�8��t���,+�����,�Qp�bwbG�■M�Ʀ �>�	��f�i^���$	���Sҕ����h:K��
�5Yhk$���Q����9٘O
,!�l3~��,P��QdS�c ��mcq�ۅz�x��l$�h�?�-�O��I�H���
����4I�.���
8g���@d��뜺�
+J6~T���r�
+s�
+�K�]��VYN�s����\�ρ��%��3�0�5|O1�&��|^���O�*���/�{�%�ǀ�
+�d��Tg����8��,��+�
U�9�/�~���ԯ��PX�S`
3�ʋr��!My Y6�Ȥ+�f�
+dSo���!y���"E��U'�^z�>
�4u�ϒ��%x���l��ڟ�_�e
2�cTx���l���Du+�kqAM5K*�6�*l<E^+]�~�� �������w�����lo��6ng9!�di��^}�����"�,Y BI��S|_ɤ�L��d�5P
��ݶl�?��
+%ax
x��%ӣ�* ��
v|�k�쁶�G��	<e:�
+�K ���{+�AF�,&��54*�yl�Ew�&EkE_���I�Y
��I�1�P���ED�?���
b��RFcH�3��b@�-�#�Q/@�
+W�������H�9=�f�x��q�L0�c�EYq�?�1)g�FK
��XN��W�Z
�Q#�O�	p�������Y��.u�‸��`P��띓�!
�jt�\)=5�b�u��p4Ar�O芠�(��.$��ȕ�
�Y��Q1��21���Zp���V��v>)�a:�8��C�‚
��/`��Zp��۱��#��
a62�k�O�]ګ��&ˎ�p
ϋ�Q1�L����
"�@8�M� ��l����
�N���9�Din�_X�n�,z��;x���԰գ����g�3	o��Fdc�1|����vϴ�
��pI
c��e,�d"�W�Ӣ�Lc1�
�P�A�naM���i7A��^Ǝ�x!�;��7�u����X�`8�w줸��]��I���W�
󺋒"�%��7~}]��'�:���� �N$S�N��r�FAˢ��8���ŶZ���@��R�9z��Ɏ��YK�����R�B%�
M
+Bo�T{����y3͎@
�>����F�\��TA�{������I	k
�t�
+2���x	�ͪ^�"�pV�
cY_Q�S���*8'���t��v�D��g��(�
 m)R��PO��skANȚ
W���>	�ū��V�T��"�"�#OL��
+qְ����;�!��Gr�E���CDM���}J3쁇Y�s.� K
]VL8ݓ�S�M�B��O!�v:B͂<�M#�gD������A�n�[`Z����g�Q.�+�П��,�����qXDv/u4��3a����
I��W�D��=�y��a��i��gU�e+Gt��B E�&�
9RjP��Ij?Q�v�
#i$�T�-
$Q���u�5 W�4Ӏ�ӵ8���ߧG���C��今�Ӟp��r=����5��j�b`�"�̨g�����m���F*u�bZh�!���A�`�.>�4��)d"ȴ�
�YS�������jC��6mX-�&rL���EN����]�����Dz".��M�g�E�ɈĠZ2U2�Q�B
,��cgE�%O�ʯ7!��=��I>L:�A���3�c�
+<�z������R��-]/<u��<Z�v!l&��I��Ld�Dd
��7�K	��+��s���pk1[�%��<E6�
r�,�?��|�#~�h��j��
�������v �i�Bt?K"�2FfW�̞������4Ea(x�mր�t�䜃xds�*yE�ݬn*s�s ���N3�!��3
��RM�Zt�>�h"��Y�J�Ti�jɕ��|
��]�a����)��2��(��?��f�7�C`��	�ń

+j������A��l��"�e*
+�AM��˒��1
�
++�%��(^���+��f���1Xԑ��,�
�2)��|���GAW��4/�
E5(.
��~[�(�ʔ�����# �dZGRCB�	䤄'�t�'�F��3oA<<r����k0�6|g(���ݹ�♂�T݊
'^�D0g
c�C�oV�i�QO,
��\z�ƥ'�^?���� ���B�/(P!F���447���3�!]0i �r �|�E/X�X��)<oT���h�|�(!ýg>����=��9Э�H2�R�Z�QR	iz	D�	()�Q�*z*`\��z P4�*�SB�ӷ��=b5� �Y�s{l;�$�� ���
�f�O�12k�c�BE=v)���'��(� i\�j��VX�BJ�
��8�;;
Tu�kS
��&=kϩ�S��++�������Y2�*��\�V~�bg��P�[�ޢa�T�n��-7��cX1��< ��Xo���H2gln�4���`k�@���3\W�#��57c$-�e
�/�03�=3��R
0V�IXLm����DvH�Tp�T/M�fyĩ	>$·�S�
�U��(J$��.�t�
lv~�H���տQ����Q�Qf�M��]DK�8p�3��j�f�ɉ����sq]%�9�%�MrLK*�mS��ZV�
KC�SCal�o
+YxT���*�E��t�%i�^�)�U��\�Lf\���
+�%��-|�Ǜ����*���.�̘�I-�Ȫ��]d�lug٫�Z��(;�3,J��VK�|
+��:F+�	�3!ۅ�8��=�@�8)u+ at L"EH���T�x ���T ;���K,~P�_5���:�DE��W�vJ+���E~/��<�))
'm{�E�Y�4љ��T��`S\�k���.�gUM��EO�,F�+vBL�\���i3
+���k��'6���{
X:�d�d?�뵪n�c4Jov�#,�^fK�C>��������inp at J׈b^��/"�Zu�"t?��K*T��V�J��2F������c�ROJKː���e�D�kJ�U�ͤ�AR�u�����
�,fL	t<x1@�\* ����	��*	8�%�:<	1��\�.-�q�������T�1%Xn����׋e�dk2\������
v��
+嫂�p�]Z 8����nj��'���"T�
�
320fC�2�!��G�����͔�����
!�c����L�8IУˈ�v�H=o~'$|�44��s�C�N ��$�����.!;�k�*�4y�Ծ��/ mDI�)�ۑ�(����+��@�Q���
�y�n�G�ES����Y�[3������Ӏ0l�٬��ȐHH�̟������|0�.>
�m,:0�m��r�CH.-�J�$`?Y�|�n��#�D�y����g�L����K�$Y�B�w���ϫ�E�]�u����%
I��I���.W���d��vB�B�Iz�@�ٵ �{����L�wd��R�=��9��JL�E@�F6�a9��\��" d��@�lY���&��O���}�$�ç;�kAjK�fkz&Y�D����k�%�
2��R���1Lg����pc"酨����*
b2��I	�Ğ�ʑ��,	�Iy'��
'f
�d#}
�"XƋo�tή�F��
^O���E%#�yvf����	L���X�튗la�
�\���bI���_���7�g%#$����*�W~{79�PZCFTk^�Fp�*�MF�!���o� +�"��29	��,�@���r�>Z��TZ��[�
�Ne��,�͊ђ�Ǿ����{�u�-��#��ܖ$���|���O�e-�6Y7�Nl��X �	�Fa�v���i��
+eBDI�
����U%��U
+�G–sJ(�g72l8��b�:uQ�L�cW�TϤ����[����F�	�4���,	љ-�Z	�d�j~LIӊ�4�
�W�0� ��ڋ������;���|������@誹t%�>*��������<�+� db��a���r@
2
X:�ic�.tuAg���-7}��>���,%�g15M	nW��&
�\�X��٣�ƚ/�٩�������
����ߕ�-�_q+,f e�R'��
j|?�ǨBT鳲?b��OĞ�R~,�l�l���k�-
����
,��'��C����(CIPj��K���FV��Ae�8�4�Ʈ���>a��AԓTis�Y�y^xЦy_�s]���Qҭ�|�ݼ
�(\ u��ķ�r�=�Q~BU)c�5�?�*��Ĺs��!�'0髚$,�,�?*�B��3�$oK�7>� ��*�J}�t�
?�O��_�b��W^�ljؙp���K��P������T%N�ᘭE��{"E��̉�/��47��v�
�јN#RQ��=�@��e�uEGl�0$���T��b�`�&y�
DM_����I��$C�}D�擇���יrƙ�0!��J�!0Eސŝ�9[ �$gG�wIʐ�:�I��!̲/-V�"c˪^��e0]��
�ȗ�7j#�@QIY�3��b�\b�qqW�?1x�N,�����RQ� ��V�/���a�pK �6��'KU�m��
�J��I���&/��X���hi���DX�s`��7@4�g��hu��ybC �e9���n��>U
+��ȡ�'�;�̏K��M��\���Q�/ѡ��`�U���l��2M��#6NX�Q�$7���,P�x�����𶉝ɕ��3�����,�
�:��B�z��
�g8�/�yF�AI��CD�3�/ )�dR
�uzh"�ŧe�V��Y��K�-���=��������P�(��D
J��I�Wx�M�6��T;�L3�D�j��1�;Q6�_F�2
	m�|�,r��%͑��i��R	m�R$�O��ɶ�u�:�B�������4?�������/g�#h���u���
�Kҧ:�=�@���`�
�n��9V���ى���ܬR�Z�F��=
\��*����]&��Ja	�k!
Dk�jE�K��D�Y��MG�BaXA|���Ol!��
.d��h5(?
�7
�N0
J$��(�e]�/`��؄��p�p)��I0�v&jƄ�8�v<�!��i)	�"���mE�о�6�Wr���q�r��})�������ۺ
+�~"D��
+�Y g4��d؇%zn�TC�0�'�ٚ�$��Oz6�n����	-�;n��
� ��9��kƶ�R1^$��x��ɼ�>j J��ޞ7�Y�,�Bxa��Ğ�
̻�\�6m�v�7�S�$?L�a)
�Ӌ�W�5��}�������@��a�?�n�W�_�7Y�tb��\�R��@�
+�c
Ec�
b���ͪ_�nA(�%��*T-�I0
��L$m�����V�戮�-��s���UW)

z��zŢ�%n�A�Jf�o��R��v}���ʱ���'k))�]�%����[51���Ι�� �٬�
d9��P��O� p��V�b(Ŕ���w�^�

�T ��R�B0��J\1#��k�#�P��-�g�����:����4�7�d�m��4���aY�Q�ɽ�������cQ_���d�/�DA1k�U5� ��)IY�������MVa	#����C���8�fV)�&X:��q���Rtv��%�~�39�~�
��4�VzX�%B�hҕ� �8�2�38 
#�F����%O?zX���r�v�	݂^J��yO�p� �K�+	c�;�L�Q`A�TX_�)	b~z�f`��r
EȒ�x�--B�B�i�D�
��[�9B��q-�R��>�w�+��ʁE�j[Q��z����"
� �&<��!
�h)�AN���D� �z�`
���l�VR!Jc�B�և�Q���n-�F��$ @��X��g�[��%��|�4����8 ��r�ڔ
+�';���k����̌���i�S
�670�r�����¢��i���^ʪ�P��JT��������j��]�>|��L=p�FƧ�8SsuIl~���D/E�~�Bԃ��*�
zHa���IZU�Y���
����H�d�.5���TsEu R�K[ʩ!7�bK� �m������ ��A�-9�pv��A� 
��6/9vCe&�(�0k���P��Qm
��p�t�&���P�Ip,�b�|��r$���e��	SH��
 h�mN��j��F���]���'j8�2���:A���oG�2z0H�U�[���0���,�|���-LP��S�iL�	�JE�nu�.n���\���)lf��$�D�:�
+2Z�ܢ�Ɣ�R(!����V�F5�
3H:������l at mY��H��o��+՞լ7Ǯ
+��p����.*<�����;��lǪp ��~Ƕ9rP���
+�S�
%�����H���!V=����_�CԹ	K*�N#W�l�F��d��4���ڱ|��!�%�&N�]"�i:��
)
�zb}xM�BYG��]d
�FY2\_�^��A�r� ��`  �g��5�
d
�8a��t+blE���.�͵e�R�"D�Mf�	?���p�͈�rP�<ٖ�˅Q���^=��Ӵ4�*Qq����F�5r6�u�Cbs����/�P"]Z(�R�f�R/A��
MOo�tG�x��&j��{r:s�T��c�c`('�2��A �UZ�����1�����
�Oz���ە�#��>�gM�|{� rAAD�!�Ě����"z�상�߀��
&�
+U�,=��+���7
c��
+[W����HT�"(c�,M�f	�(7
eLtT�̳�`Ԡ�Q��N^�o㥐
R6���<���A�Cl�sϸz����aŅ��끷�9���I�8,�+|t�y	ՆRRmh����:�Ucq���;,�|�+
+ШR�R����䂁����
��@�P��*9�SC����D �4�B�T���G&lҦC���:L
���S�Qg��!Qq�FXb �T��1
���\"IUD��p�!
%[F�j���в����v�^3�ɹ9*|qi��E�[����Q4�]5'�����?&��?}���?8��8h���p�u�E�3XސrQ�
���4#�� ����x1ŸCL���PfA����:�����7��$�
�ձ(�x����l03q۫6
��
+m1o	z���!��Vv���
����IR��*�z���
�I�S��4g
+]���T�
����Z7�D�$�
�Kb�Vd �Q�/�l$�&�9B5em�}(��(��&�7�'
ۤJ�U
�Ȅ3�/��+�,B2!PTy�6��[e}�rX5g!�O����������r�}�#��(+�U[�/�a��j!PNB-|��u-���a��
;vωB{q�j!5��%$�NE��U�6)���$
��!��
t:_�1׺-c��$��.��+�]�,��aY/̢�.�E���: ��n� =$6 �~�j'
+I�
}O`L�L�N`�伱� �G��	ߜ�
�ѵ��K�U��!V�i�ո��h��6U��ٌ%�aپ�P9d�(M��"'l��i�i�N �Ķo���2��:�r3����I��8_�`�� &
���W�j-�z�
KO8���JÎ�z��/uX�;Wy4��d� %.�jֻ��&� ڣOs�a
J�7�;��O�-O.�r��9�䀁�AD�ȟ����
���&u��ռu�]��t]=
�YM�8Τ��鵋_F�`���P�&[VE4���i
&� U��5�w��6�K�!��[�W��UIo�U��@s�9��G����k��OVr&C�?�Nl��K�x�¦6drC��=�yd?+Xfn��Y&RH#Zg���^ȧ^��_ �<�m1e� {"�oY��D{������S>�{��������V)��#V	��3�
�V-����r��z�����
���(%��c�b2-Y�~0جs��0�q��2�ո�&@�E�M
�J�6�9�<�C�A�ŘF)�,?P%j�{��5�D�����Dթ-� [...]
��W�4(�.�!�0�̵��^f�)m`&�
�
�	�$��9�/u
��Gs�1����U�6C�f�,�	��n��L�4쇤�G�����MU�A���g�[�-r&	�
+�eg�l��!�J��p4�t!]N�d j���A�� �ي�&�j��X�y�N��|�z� ��hI���bL��H!x�U)e!�H��8����}�&s9SG���-�I
�5G�
���'s�Hd�%v���PV�r�cg�%ڷD�)����$MJG�g��2�B�
�IR�0{��K-��7�
�Y=DƐ�w�Q!>U>~S�\E7jR:ӿ���Uڵ \q�=��@B=��ϐT�~kP�^�.'M�V�Y�п�_��"�������[��6�?:9 lL���P�DB�
+
Xk���ۓ^ �����8|lT�1tQ5t��f��J)ōmhC(i�`y2���@q���a����#�J�(.ibF#��vg��K>�
�)�z�4���}��*�^�že8I�����z���C�w,��ȆBH��=lSԽ�Y��z��ib��h��	 52�S�k�q��iǻ�z��M�c{d;��E��FQ��	����E3CsUbzhu?=0GTS�@����������;�$ssY$���!Mܮ��c۩�LX�5܃�cR�U���@( �jٱ���
B�˪L�+��
5�������]���w�!vg���]�]Q��Ŕ�'u��XE�������ΰXm�
E��	�;�DN��? ��I������Q���&�
�'e��'|hA0�Z��lr�L3>���3$�KY/zI�@h�m��mHC��.&���q敪����EL`�'uˤ�r�3%�3��FD�R�
+�9t��%ߓ�J�
q7�t ���*_�e��g�$!��u������6=R�_�nM��`��?�zɍF��uzT	Q�c�+#[�Woo�V�PN�(Z3x�
�١+=��]����2ߴ�]�
ab�9���
κ[JԆ��s��
fI����4�)���Z��d�;�z�`s�����p|�2N���P��t�� ��T �

��@GQ/���&U��G�fߛ
+�s� a҈b�tg@#$j�]�ԯc5ϙ��.p�N���f�]t��\�xAȭ{ҫ�QW��EE&v?����b����c������Tg [5�R���)��;oM�j�V�e�2
+�JtU܆M4S�_��-��\yI0��"n'i3F@#���4թ��q  Q
X�n�2P��b���
P
�j�*�)�e��=��*B�n�N���[��MT�@4���^�s9yؙ�J�
�XҪ{-�g�57D۬�
����
7�:�qN���G�f����e84���
�Φ����烤?�����ٷ
yي�#�1�oKK��:��zxs�)5��\x�
�i�zo��܅	Ħ��g;�M;�iJ}RvG��M@���4�b��c
'���|@]ػ��u%*
���s^^���o/
c��%�s­�%��ɄSν"�Ed�75��z���_
��Sk8�mT�&@���8۬��oD����O�+/�Ća�W��k
���5t
I�
s�2���;�������'�rX
���
 ��%�Q�
����ঀ@N6OR��� E3�x�A������rT�~�U&
$��z��������%(�)*	{tr�
�E�o������J6
s[e��!�tVz��6_
��-�ǃ#�TwCdH�g0�~`��ý�Uǰ���-�q	��x*h����Lm�E-�;_%��
�i� �
�f
��f�cg�Y��}�c+��������N�:��u�`�
+�q<�q@�2# >���v�sj��򘬙�!q�� t"j��$���
��{V�)%K曬�P��s�K%�F8St������ѷW�����rz5H
H�M�6
���$
�W���9K�o�:��Ր�Z���$`�17{!㊇]��)�;�I�<�m�{& 4���"2�8�
�)x���܃Rï���mӦ��K(����nm���Fd�닿B��w
+��f�!Kz�٧�'M�w�qd�Z�ҽ��\�ڠ�giE|p��l��@��Ee��,‹?'�%
@T
+�`J�4g.��t�`�P$��>�c��v�O3�zS�9����

��
)N�P+:h��R��K�������ɞm_W[�u���G58 (0)���
+{���"v.��1�����h�wL��#L뼛�y�T���WUQ9������g*<�<栴�!N�Yu4��6�$��MXwd�K��&]�
�MfϾ앳�4�{w7 |:HV� <P)/%�0��'S9O>�4�>�P
]�N��t�Bd�P����܆����fWu�j� 4��;p�7Y��1t`
f�0�A�_1��V8H����a��Rq�B=qO&���WT�TR6�th��/��" {(4b�&�&�l���E���m ��چ{
\�@c�BjTՒ��O����~�����H
���9x�,(��e\��L̉	&��] L�g���������%���l;�
ڭGSq��]������v0[*�zA�3B!ViRC�F\F������մ��k�U("�7
�rq
saq�+7 at Q2	BޖJ6?�ۛ �
��%huK�-������Ȁ�<�)s���V�$u8#�{��i6������gr�Q�M
+s"ε�*�=���շǶ�7�ދ?�Y4Sv��/����O�ڀ�B��lե�&
d��"��

+�)G'6�J�.F�j�{L��[�hz�8� �L�����L���bz�6��V�hA5�U
�+�'��uP2i *�!����6M�Z9X���ܡ1�;������ �$=�� ��rEb|k���痛
"6(O�j�L�dEw�ss
SLs�4AFC���+�N�2�&D
�w��>E5zA��8��A������YT�܎?٦J����� Q*9�D��ޙ��=z�C
%��)��o� L�C"�U��6@
i�T�h9bL}g�o]�����3��.ֿ�U��>w�T� ���:��㢼)*�!�V�BJ*�UxȼoKV�7wgB��p]<���:+ǀq}�����a�pi�7VFr� бf%�:�S��r�S�
ݠ�)�
W܇c#
�
nx��8J����K��	�O(�	�.mV��ߓ��t�̖�NG3�A<b at V�#
���BPU�O���x���T at S<�{��@
�\F����tIn{�05*������L����Nә�ޕB-�G���Or3�T�p�
m�ԛ��
��u���������(�l�
�:P���Y5V�^]�Xk:���ND<�y
�KGr�
Z
o0P	�@ƕ��n�F�q
�T�ěCΞ�&'� �9A-�CP��G��������7a�?,D�GG��}�M�1�6MY/2��rg����u��L�$$L��Q
}Ꮳ��C��P��E��ל�ϖI�=�n����
+���ݿA�D�e�;ϴY��O=j�ȍk
)��^+�
+3]VM�.)`q�Ni2O1/#j�xI�O=�����X��-9[	@>�ӫ�lxKD�ˮ�r6� ��;|i#{_��}����
+ at 2��2/Q�b�2�z �DTv

�\8�"K���ml�t����B�ݨKG,�zH/<�3�oG�Bԙ��<�3
�3�+\t�l��
,�/�>�m�T� >=N����j���N�Xm|��Lё)O걀�0�U&v�x�
��`)�L�ܞ{�}�H���G2><��)�Y���*`D�{�v{�Q�ꔑ�L������lv��5�d�1��χ������]������^ �
���>���c��k�
�*�P�����ғK�����CBd
Z�9��
�s��� ��Ec�9
+z%@�[�ai�HbŴ
�9$D���x��o�!��ɲ(��u���^�L�
�4V6�=s�ߦ7B��m�ҳ)�O�����MS�hZ{��Et�&,�3����j=H�O1�&�>�

ASz �O�*�K ��a���c
�� �����6��J$��0�ȹ�K�3˖ϦPocۿ3��
�	�2
��HG� O3=�O�wF���c{���X��P��8��	�Yo��_rLq�|�‘Uʣr�����,�Y�/,
���
;АUxGm�ׁ*�S�;Eȃ��dT��A�Ej7x�%��jd��O����:�}B��
��P/���
�T�ۆ#l���R��Y'�
+UR�1=����
+�	�Tw�u"òEDMv�FrJyH5M>{MH9�A�!<�ms�RH�3ƾ��l�u&؛z���U��Q
+�}T_��>�����w�${��	AKR���a�TJ2o�&ɽt��k��b^Y�s{�\���A��9+�&q�ؤ��9W�}M��P�F-����Ȟ���iB at +�
�o�^
�Ӓ��4n�S�(.�� �xu�
D�g��*�(<�|
��'M�-��
JM��-+�t��H�0�����
�u8���
�2���b��-�����p	8)���l9�?S��?��0$b,b���b��Q|}��VbD���ݩ"�	s�
$I��,
y}r6�$HnCɴ��
�U	ؤ�9l|�aՃ����r�8���=���p3DH�n8�.�����1�������$��8�1A��'�L��ķ�C9��kL�Z�9Y�4^�@�V���M�q���x��
"��l
�J�bIT���vETk
+Qd=�
����ˢ<h�=�f�$�a -yn�M�6e���7y���nX��~:�0]֫,�u���~=ۜ='[��2_�'4��$գw0��az�H�h3��L�]k�]~��
����,A�%���7�/ϕK(�h�>�pM����֌_T-U**
�{~;��D^��x�m=XǞVP���
E�'�J��Gg�@���ܾq
@r{�~޶��KYw��w��z;�
+-��� .Z��\'��e&GK��	��<����,��!�
/����Y�
��P�^7�/�����2
+,]�#�	5*:b� un�r�%�B��)�n�R~�x���!�pL�3��.������&�=�{�kќ�!qv�K�K4�$��õPZ���<!���O���������4i��䐫�*�	��������`	{���P���J2o�o�w_?Y~����z���������������?������_���o�=`�z�����}������?�������_��ÿ�����?w�������@?��ۿ��w������ۿ�������}?��?~{�������{�������~��������>ۇ?���~�����?}�����o������?��O?{������b�0f�j��������o~�����k�����9���>���w?8}ux���|��_���?<ο����������~�̿;������9/����?���������/���9���_��_���8���w����߼�?�Ez�����_�N�/���Ͽ��B�����?����o [...]
+�s�yb��IF���g+*X>S���������2��R��{s�ьjϛ5���6��_4�[��+\&�5ǐ�o���ٖ��o�dO��@.оH��//�q�NW��PC�ŗJz��|_fol1�|
��C�w��ޣ&|_��Wͫ<�}�زy:���a��u�}6�}�͆��9�Ig�ʞʬ��c���~�&���o�"V3��7k�%��y� k�wA�'`��>͹� �%��Oi>fϊ�g
�ˊ+`[룪ld3幵/B<���^�ケJ��^ܹ�*J��(������6|6�����|��w��
+>�g���
��x�I�,_L�2+k��

-`�8�t�?� ���qӾ�?������w�
����������!X{��_9!Ho&���I�$�-�7���Fk����5EW�`��p]�I f|�l�;	P�y���N0�W�VD��W�w�W����
+��
+�>2?�{o��=H�>��o&�L�ZA����;��"���f��n�ſ���_�{���km���ƕ��*߉3�nY�ĝ�i����L
j����Cz:��dz���u������[&M4S�|49�cΓu�M�u�;�mo�¡O 5��������8��"�S�,�;]�m��NJ��{�;�QǍQ}"k
��"���D��/l���t�H
1��R?~_���
�+�{e'֋P(&����"/����� ��M=�>�S| �C�������o �e����3�e���s����?\���=�)��>�q���;n$r%ޗ���pod+-
�E����u��+�fG�+�yg.�x/��� �0)��]ȈJ�?`��
)�X��|�r��>�1�?y�K�/��������$�
�����7�N�7�䓫�
�D�h3����+c�
�7
+ߏ/��+��K�w/�o,T���Q���/CI-V�uߦ��E>�'>�~���ǽi���r����"�F��=斘\�O5ik,��C���s�
�����X�n_�f�?�Y�)����E�hd�c�����7��c
�+�^&�.9ͽ�U��{�~Ȣ�6M6�1h��>�ߞ5N��Ti�_�e����|��[n�.�G��-d��zLN���h��R��Ua��c�1�|{�l�}&���r	�{����޶�ڊ�w�˒ư�
S�
��<L�6�x�����ϲ��뺍O�t�r��zzy\֗?���T��Q���V��s�n��4�p����G����تF��2�\�k��F�1��!�F
��?()Ⱋ c��������5o�eG��_�f���P�|X�)
+������|m���V���n*�?�LWԸ���}�}�-�7��
�nR~���c�Q�Dx/l�;=���7>��1�]n�O����$~�=
�����Ph��D ��=���qcd:�~�w�<C�;���x[�����f�����
|({}�T^<دN
����cN3���/��wy
�+Pa���
�E��~sA�U[�6ZB<�
+bבm͠�}֊������\X�;�e��U_a��m1���I�E ՝=��v��	#
��%��w{��?
l�w���!���O[�"��7�f
y(w�g�+�dL3��β�
	�G��
wX4Ȏڎ5�Z�k�7���־��bM'P�0
\�/�dL>{s���/�YX�
DOь�_�W����λ�q�/.��g�������v̻�?&'m+?�
��� �#��k���aP[
���s�?
b��
j�JW
�$�K��F��r�Ȫ�Hf���R��F�l�S���q?�	[$s%A�k��-�� {[�O�"�����X����b\:
J�M��H��@
tTެ�E)��6n/�O��k�� �}iػ&�
��q�S�>/��/x���s�g�`�-ǰ��Z���
2��8#0_���&��=���,n�@���ƺS���S�v�F�3�
�~��_%Qh4Q �-
+#[���n��bݚ����z������e@�񦴨H�<,�VG�	��:�m�{�eȻ�mX��Ű1�@
��#�!
O�����8R$4e�c�g��t�$�V �W�����<�;/
��B��c��,B���	�w|��^��`�bܛR
@��FXg��
�&m�u�
�?P�M�n\�}I4�H�����t�|�t��V��/��	��o�-���z�H<f���O�^)dl�3^
�Gs[w
UEK�SȲ����hQ+��
�j��J���:���}/.��L>�� �շ�4����#˓3�,�'��WoL��A5�M���5�M9+���OD0/w
�
|�#�(�����}�ǟ^����
	I9��h��
�^l�qF�}z~�F[�=�$�.�6��;���fF�Vfz��
0!��Y���h���k�ƈU�Ky����)�w �=�qG�i��|����
Y����r�����;�E6��ҿW��!���J�
e̻={������(�ɽ��YVR���Ii�D�;��#���s�Os��4 �߾ ����
+
��/0f��
$*�tTkܞ:�!�ן�gUT/�{oP .5���0��
+[į�W�D
��؋������0����\
DAs��D���*�{�XV4fۍ��<Sm'捞E��r�����/�
ƭ��9�h��F٥�=�����ע��ќ� �R�֣��
j���u�t$�m�흷
����Ը����
�E"����{Y4N��}g�|:�C���/Z܁4�XR����B�Ճu�R6
ɇ͖}%�|��$�������	����:��1�X=�C�$0jQDx&���<S��e�+C�sj8�h�\����h.��#֩��6���ƅ�H).n�`/�G<�1Vdd1ۿ�k���������㕝iz��%�?�Vn�e$r��׎��x[�ǖ�+;�T�}�U����9�o
��C���z��nbI3�>�
��'��w���U+y|�f3�3�iF'���U9N�}\L
�����
�1 at 5d�vH�֞��%�U��@ �{�{��[������;�w�FV��2�>��PG\�l�
A�����A��וs��*��'�
+h�;�x�;C4W�UiN�Ŵ5�
��x�W��������c�d�&��=-{:�ޅf�8k���/�oB
+<����Q��a
KJ��5#ۊ���x �L��f��-E�����$�1�'R$�a�@|�R��8b	4
+�s��@�����҂a}3�G���w��}0�<���g$��h@,N�
�-�Џ�����w8*`�;O�[���"La68od�E��̀��r��@}�a���,ƀ��
ڰ*X-�a�S4�[vӢ��Qk�_ƟB�(����M/�_�Ct�e!wn
��
����{X�qx�����(��̩�&8FbWsk�z"��~]<��K9Zy�ZQf���W:���(���.�n�
HƜ�X��.��gW}Bٻ�&�jdNqM�w
ؔ�q���"e~䎚zU�
qc_'�b�������s���w6W��|#�]b�Y���ˎ_0lg�
C�:�hf�8���ָ������ӛ���uݔ\�I����g���~<A�t�7_�
ᥰ��\���Xjzs�El��s��P��HK��tW/.��H7E�B�=k�'ޗO��Dh��������o��#����O�����o�ʕ��|���
��6⾬
0.�Ű��~��I��0~C���ɣؑ�Q��1n�?LA!7��7A�5�~{HD [...]
��jsD*Ǹ���/"F�u֘[l�J�Y����&՛6B"r�x��W%j@� =���&�
�/wF����
d�_L�?�t�Z	���c��V|����*��eЬ��n=}�C��|vwZ�M)�J���ֈ����ѿ�;@1"��,�����=6*7����F���S �-�q�Wg�Q9�g�
}�=`���h���
+�®@?PZJ�c~ԅv�ey�
c���8"b�8�%�yd�_��h*� �DݤF�w� l�v6�k�xcX�n2C��"�@��Ѱ/٪�4�b���?{�GA=y(6�
"�f��1#w��r�P����{1s�Qs���B�q)t�^�;F�����
3��
1@�ٛ��\7�z��^�<W��⍾+�E��b���kZ�cX����f�
�⌥5`g�ZKDX���YҴ�=y�x�2
S�Eh4�����_��;�|�
�3��i�q�U�^�y?��!��
��Z/��(�h����ć�"r��F��ݑG�w��fi&���z �D�~��S�&X���;�
#���r��X{�m�)J;5�X�u|J� �FK[h�{
�P�%�����d��`���+3�X��|
 p��ٵݾ3�/�2�Ҏ����0�r�$6���T;�e	A�;�NoL7�.>!�k
�I`����P��t�=����z��U��h�p���Иb���W����t���!��
�Ur�
Uû�H+�`z�-{�Ezd��!C�Qw_��e�ݚ��q��m���}�!1���N
P V�~�p4����F�YK���;
��T�xD��2x��V
�n.$[F�/֘��u������-���S� ��d_�pr�}�;�Ac"�����`
+uAz��rLD��
}�!����f���3_:���6���ҥ�//�w���}�Tpm�w�W�F���d�Ƥ����e���ڏ�0/�T0����|w�@�M�h2{0�#�Mc$[�e`����
��V���k���
P�gCi,�*�O��L�a����Oo0j�pC.Ÿ�9b ��;j[�Vqߕ�bS����&���5D�]$z��U�p���C�^[�XЯ�П�+��zC�B��b\f�^�5�
T+(�[
ŏ��D2۳Lr��逭gDmJ�}��6���=L
�����N�p���Lv����
+������az8ָ
��1�'Oh�7�b3沩W�682�r鹵-j�k�j�;��+L6�4
�HP���
�耪�7~���.*,�xm�EX��F�	
L4��o]Dr�]������6
}�+u�/^e�S��1Kj��5�D{2B��lﱨ~��Z���	����ָf j��ݬ@����R�eU��/�1�-_����y�a��̡�bѠ���
l<a�c �
�?\�E�4b�[%�{�ח0y^�
fO�W>�N��7_�N����׈�o�מ�3�3f�0���1�)௽�(�^��]]�;ބ��s4�@|���|�UO*
����"�}
��/���gO���[J���^�m���4W��e��go��� _�K��2���ƭ1 �LU�f=͎u�Ξ
�(w��`��#��@ID�xsh��:jlAP=p)w��Yq^V4JM���ȯ�;���� �WA�Z+�l
�rh͜��X3�l�Eչ�}f�x�c-96�5����?M�V)y�mu� ����W
kK+�"Wqm�Rq~��������8���i����m��5 at l����}^�i
+��/�7�h�+������b=o^f>h�%.��2z�K
�����#��.��M'��^��l��$�t��~�� �|��'�:�y�xi���.�L��6^ЫH$�
+��^���h�:��V��j� ��
�����!�����Y}��V��
����6C�ģ�d��:��m��d��UC}i=��r:
zB��|h�8��,�F-����H�����3x
��Ƒ�C* �����5��k@ �&��r�7\=Ag�ͳď(��I���W�B��=�#ղzZ�
+ل�����l�O�}��>�thn�n�"0�
��
%#f�(g�9��fT.�����(ol�
uskxʅ3�˝�{�����=uir����@���1'Ϩ�	�aw�)��+�-�9N.�~��=
+��>�e��?S���֌�)ʁ�AH���-w�z��)Ʃ� ��i>j{
�P��_��mD�������W���ʊP�=~���!��G�3���,
IP\��xԿc?�L�&��'�G��ԭi�M8ʖ��A�}��O�{~��%���Þݝ:;��̾���=5=]m���	t*��wEI)R��7��*�/U��
=o	:yZ�D"��������ț`���=��G�Q��7�����F�En�R\Z�S�
��cf���b<�/�#V&�����d�;�=���qg�
+X��U�e@�q
�ig%>,A�V��R�|��
�ZV� |4��d��ʼnXц���:L$
+a�7��y��W�߅��Q�jzel�hU��|�KCTL��r|U�;Ҳi&��i�����XM�[�A1��Py_6A�I��Î؜0&!��,c�P��8S���V�`�E�8���AI�4���sH��\ě���i���ve�/}G|~������1�- at o��x1:=�#{�P S���ت�ʹ8~
mHfB��P5�q>!
+@õG*��!�
i L
�W,��-��c�lprU![��d�������6M/^�@U�t�V�L1:�0^�S7:�5�tpR���
̨�dG&
���� =�l�`�P�(���M%ܪRFXʖ-࡛Q

��C�b
+��-�
�|���-�T��й%U;

�8A��9i�/WVb���jr9%;�j��eH��z�h���8%;Nƹ��T�$��K
+��ha�_ɰt.��9��������pwd��nG$�r�G� ¹]<6̡(]�V&d�۸

>餧�Qv���*e
�Y�����A������� ��Bۖ�� Ŋ ����T�!
%(�w ��a{�+���DW�(gT}���2�HX�
tr
+�p��*�/��r!��CW+g:[�lB2�(���Ω`��K
+U�qeI������f(-,�z�

�rKp�;�j
+
������
+N
+�ِ��!�H\���&��LA()T��b^9����D�2��Q!�ɘds<��p�\�F���HX�-|	�QQ��
M�
?/�E
+C���,����Y1z���~Ϡ	�2�)�pU�t��I5�t�V
�E�8����|�}��K�	,�r�wpq��g+�0�c*$�O�:�f�l%�
Ʉw�B
+,�d��Sl�SRl���jC�.�1�+)�Tbq��P�0snʏ�
+��}]{�Ko��7
+��8ء�$�p��(�\~	+y%�ycH#��u�T���R6U�*�$@������"1��
.��
]U�@���	y��� w�<�+T�e��(e��X��0k��-+��)
@i�N�^�eCB
[꧌�v��%�/+-��R:���e<FXQɮ�ylt]l�~����
���
���`ڗQ�_�t$�X2�{HX�"ݒB1]��
+|���%�Pe�[)�@���ݞ�X1B��
+����BA�B��
�Ĭ���A�"�`���O��f�8��
�t��U�2��q
�����L�%�7`��q_3�Vf��~^�]8��o�{�v��
�~���1��.H�a� >FbtI
+� ��䢒�
�cJ+
+ɰ��™J����0�`^�Q�́	z��
�q+��A�0����a�<]�
JbL��L�ގ���J{�_])��<����0��Y�o��

Άn,f�Ź��L  �fxL��{6U��Q�<ۂ;����.��Bi�B��Uxr-F�[ Q���J�b=��2��x%�a>})��E��T�qY)UY�/D�b�AY�
��yl�
v�!q	���

�[D�ʟ�=`���F� �b���-���rGHE�>3�1t$Yeiq�V���--r���,ѥP�[ˋ
p�t�
+���f�%Ul\
+`�J���#�x�-$,g3^�� Z�|�`찮���P�NY9�,v��
+������p���1
[�5+
�J�A+،=���=���
�bfOcs�f]"����!
ւ�c[�8���q/�a�<<^\6��[ �ae1��pʅl`U�6
 \����A���2�����2aHX�#��ˆ�]6�II�J
���SV��w��_����N*9E���
z?2�J(��Ŕ���M��N�
+�
+C$ԯ.�B��8j�@C��
��01�Hȩā�^�o��> %�㐧��*��\<tLY��������S�bN|�8E$+ܚM/y
�x�����
+�`r+w$��8n{�DG��
�2(>��_��>��7�
0mGP%݃*
�D{�
+B
��
#<\�ZҧX,�-�A�L.(-��[a�|Kq
���""q�U�r��r(}��[�ek.�jl.�
+�ǪPe��
,Ć��Å�h͋
�ؓ�Q�}�,�(ǣń�����+��P��V^�[-��i����F�Ӊ���|�wA\�F�ҧL�%8+�
٠T
nT`�خ2��t��o0�xbq�Ni��=�@%3���/�bu�<�+���'K�+����?
fiӉ=8d����8ٱ�p�	��,-���1��)��D��M*�ː�V�.-
� q����V͈�ʰ�*/d� !s'

+�.��p��ʥ�@[�=��	�P��,NO)(�ƒ�*������9�l���r��)x��F�`!�J�V�h�EC9������U3x�Z:z�7�(_Z�6���y�
��.
�Ճ�̉4���:��X��5���b
�Bz���[����9
��9�j���>���A 
��
p؀_��
8�
Bq�..�ũܩ{+
+k�S���bu��i�Ǧ�T�f��J����5s��Ag�A>$�����
ޢ
+���eU!��S��K��)N�QؽV�#��	ZBB
�ZZ,�ĥ,�e¡i�
N�)�� ���xU��Ϲl�Pe!#	y��L�Ȕ��'����� �8��S���b� $d����t�ULn<�pDAX�.Z�<9'+
���o��-���n9~�DT()�#�a�/�����
+�� L$�4��7`�-�w�1N�2>�7Cq� �V�
W0-�2
�F�J좭dQ=>����8��/-��S��w�>+:����
��v]��Μ"7�
OA�}��R^9ލ�lM�2�����M�)Դ?�
k�*�`�lr!_�S�j��
+;&���XG����x7��*�jg��bx��������B@"z�-�)ac�y�DU|��K:��%� ���
�$ ��<�$Z��eU��-�9�t���(e�Z%(T�C���8l:sU�#�v���V��̯+Qv.
Z
�[�+�BUX��"&�
����ys�BC��PN	
+�g�r)�t(�b��������7Ue�:e�
�*@ӵ*�5n/�O;�
�qq M
+*��3Ȯ2���V���b.F�=`�`�XVL�Fȡ��o8ϲ����|ߟt �MB�������b�P+e�*��W2��!"V�#6�W�V��� {t�jA��������9��V����2w,ec at p$-�GM�t3�26�
#IZ\���p�%��7���!eXc�!J8/��>�b6�=ve����;+�$l�/���&5�8��x��E
4
�}$4��Ӂj�,z��g����e��l�Kƫ�#]��,A:����(՟	)D�2u�i!�~�c
(��;jI��_J��L)��t�
#,�E�o�ojl��Cz���[��jN�\��JR(���)p{��X2\^VU�	�el&��J:��Li|�@%v^��?}?�������ٛyʹ;����}PQɞ~�0A�HYT�pZ\��G�D8�����Є�=|��
7I
+'�L��%󱳒S�9l�|�(��
+ץlrIyS��>�����uHG���Ҫ
%�ylQ�B�)*��x9l��O�U
a.{�%���c�1:x�#���j�6��T1����<
sq���8
�J��_���SpZ�F†Kqʰ�G�����a�t�Xg�`���”.()�`�QD;��l�x�lh ���A���������~�l�-�$���A-L�Z$����8߀)9B称<\��i���T6{?@N
���
���VH鎭�)�%���Պ���xE�ڨ.րd�:��S�V�d�kp�+�n��P�>�AS�a�2q�`�$Z.���Rp����i�8���e�j~د}�R�?lw�ֻ1���e3չ��8-�[������1�Ⰱ�Q
ް
F�ܗ�*�-_O�;<O��
mp\����Ǿt���oOT%[���K/aĘ2��a���+�æ��W���vd��1]�L��7M��U��
+�l)��H�u�l��xT�<��X!a�
���	
W o,p��\��.[���]�;�Y~�����m��
�Rց�C�ٻ�h�#�3�ЁG�X�-A\��-V�I��ֽ�
+��[��J<��UxN��)O�B��X��U(Q%[�HONj��\�ڑ�Q,�0y:'����*�4ݓ��QAX^��UT0��(O���KY9���Q�e��<��ST��_P,������S6[�ǂC�����P-6���a����R�eܿ�]�b��;r	�TQ	#���[u��'�ŋ<�V?m���ϫ(��b��������֙;���Qy��b����ikEAe�F�]��8�-�PVȭ�`1S��W�Ѩ�b�����>CG��bWgs�BW�S"^�n�]��J�	.ǔ����n�2��\3�W��U��m�ƫ��e��	#��e�4��{P��R������
A�&�v����=@��
|����E_Y@���
���{�i� ~��s7���k�9%?�Ǿ��AA�oV�Y�(�
F���WRH--��(F��������
+�
�;�O��¸aɠ�P�ttٛ(�v�1�G���7�ނ���<�ދn�,�ү@�7��w+9�j%o������1(�S�wT���T��T�: �co ��c��N
�D75�g�#J`��w���ؼ�'Cϼ�v�U����-�K����6��
%Q�XH���3S�)�a�A� ,E�P?x?��
���ur?l�(�Av��޲���~8 ]?����G���ڊ#�����Iv�߼S���(d�fGs�����c��e��e?yT>�G��?x�N1�S��
��O���ڃ���o��p����
G� ��x�`�E��
+���--�y�*1�+i�U%}�Q%r�f�,F%}��^�\G%}�Z �Ղ�;K���d;�y������m��CX���	:>A���i�>F!�L�P��ȋ���@�
+�:?s�1mي��
�X���~9J%�ء*
�[Q8����
	�����
��F����i!
`3Ae���BiB#f�-G�{�*��t$ �l%���,��
�5~��s��������
ѧ~;���ʫx?�.N	s���

=]
�߅ڥSỐ���8ݝ_���������������\s�?c�9o����%t�=�
�9���&��� p�����G���<*�^l�g�;�@�{G9����em��=�
+����S
*��7`��Co�y����g���co��y�
2�<��w��EoN��-o�BNI9��4�/��_���jN%�S@��7�z����uǮ7a%r+�8{��Ϫ�.�81c�ۜTׯ�+άM�.Y#�Ξ#�I���Cr2�Q�~�<jW4�|ܻg}Btdc\V���v�.��p���]GbV}.�P5ƜF��1m���K�������OL��#���n}_�y�R�u��MW�q}Bײ�Pzd�A��͇�U����1�1bRߖq��ߊ�>�-�M:U-�]�z�^��Nӟ��c�_|&1�ߗ���N{�ݤ�(O9dg���ش���]Ĕ��v�j�x4=I��%�4H3A�*�Qw��	�?���Y���(�HV�v%�i]{l�$X��o%�t���{������o�}}�w[��ӊ3���ϸ
�gw�ʖ>�����w��l.}����m>���p23kǦd��ie���)�E����7�V���E�2�m^{�h&���ПΔ[z6����� ��t%���iQu|FY�1%;�� [...]
̋�#��
+�^�xm�����`ҥl#�έ�^�z�viޛ���Ȱն��
���u������bބ�F��R�ѯ)� �5�H��/V�	��.�5��ʎlؠ"�7�i�)¥�K�.��FevΨ��[�AeW�#8A����c�i���1A��œ��Oz�G탖�GѺ1�s�ŭ���
���0�a�����>�餽�h�!>���
+��v٩���?ܷ?���<���ps\q2=
k�mV����t������y��x�3�Ox6f`����'f��#�=Ҏ��I��vcFzjӮnMzm��]ױr����_7�a�N{Yt�cWzJ\M�u�	���]뾿�_k�#�Ů�K۹1Ѷ�٭#�X��Sp$�Q��n���ń�$MC�H�I���RN��Ԭ�(�S4g|��lФ�ϛ,i�Y
kH
���6'Tui�����������ߝ|+�i�'����~�$LN�d도�^}��ǥ�j~�����I���tߑ�]|���޿�
>�+bB�A�L������/������[��ߛ���'Aא>����z�
M�6�(�հ��RA�$��
a-Ȳs�s�����C~&>%?�������&�+;����R
����l�eR�]�S����ւG�C��� ��͚Lp`8�1)6����YHx,j2lҧ�t�T@/��:G{!����=���;��و�Jf��J&b�d�m�s
��P!�>�U�f<�ڔ�go6ȯΆ�c��7
�e�F
��	R�sNi]�/>�
��AI}��{p�q{UrVӓ�]�"��m:���t�W�{v��{��\:����uػ�̜F��
~�	]���|��	��&�V�<��ld�j&���m���̤�(υ��}�Qf�j!��	3n�Yb�磔Cӑ�٬I�QI��R�є_��j��O/7��j���lߑ��w
w����O�E>�^{ܳ'�y�,}��VlLt$4(��Q��:I���N�����AN��]����z$9��д����
��緄)�E��
����g�O�����Eg�͠��s�/	a
@���M9��1��=�6�^��v�;����1�I������W�ᄐ)�
}��OLJ��f��&z����Y>{��??���0>��ڰ�Ϭ<l��m�%���QAY+���w��kOB��.d|�V�m��\��[|:���ݑԧ|���Sݑv�t�Y}��c}#1k�gUM+ZJB���������?_���}s�Ƙ���]�������>$&���kx'�ٱ_.|��G���6�Ys��K��W
v���ۦ�G
{)w_5������ <��u�o����a�52�"]�+�O��!�&M
��9�5�Q��]궼ר�ާm�u[!��l���ƣ��䘢�rl��m����u�����e�p6���<Z~�cV%/$=zA�m���tt��y�Z��R��A*lT��Z�I��5�+�G.d���o$ [...]
^��'#=Һ�L�.���~���Ѻ��t�޺
֥ s��i{	���
+Iϑ�ޣ�_ :�������ŧdM9��/����[��U4�
҆�Wіri:�sf
�JӠ���7���oS����O'J�j���dnNѕ	+zS>��U{�ѵUˋ	����,�}������Kݚ�K���#iПQ��楗
+B�F�ym��}5I��)��E]��/��
+~R�g_�
��N�ޗW?���l�Q�GY��1��e��fңh��f]��oK{-���(N�U�i��5C�?U��)��鋧~��HِvΚU�D��ѩ���Sr6���&�V6�
��~߇iX7�'�SʺԌ�&��'fE��G�I̚���]��M�~�]���ݯ��O�j7
��[�����#��Č�T�%?�������� �qc: o�ڻw
�I�+=��9 ��5JҰ.�M�{}{^֞t�
��t����O:E5i��q��asJݰ6&�]$�})>�������Y��UNL)�_�i�<�ů�x(=��d_��ɍ��9.����Ok�%9�h�\&%�3k�O��ft�[���9���Ɏ�|W�����n}����)ё�S�v�;�P5e}F0�!�l��
(:H��'�V4�
MgΫ���X�}��P�ᴯ�����_��8J�Z{���t�q��[�/^/�L�a�$a-'���� N�
lh�-=M �!�zEv�v��7h�9����
��M��	���^��h�m-
�y�:� [...]
��N����ؿ�_ђ�;��mW�
�(�<�yvA�w���
�>��\D��tIN/�|��x64te{�dښ�)�!��=��NΦ�WΕ�z���
+hE���kd�$
������
}��
}����7���
������kt0���&f�N����`�����T߁W㪆��a˦�$J��uə���㭼��{v��+OŜz��1���絿 ��=�&=��ش�t|l�Cp(>+�I��gVǻ?\������vl2^ug�)�޴
Fg��^=��p�pO�N;O����vGz�'��SS&~b\r46���K��On7�~�F�[�c����)x/�9:&�l{/6���t�bӭ�ɮ�nU��iEӫ�=ۀ#;
+���
������G'��KL�|��n+������Z�njâL8d�W
�r�o����W�~����]���~���>���xYx`�m3d at gd}��	Nm��
\��ݷa������� ��+�nɇU=yxw6�d����l*�u�}�۴o`ƎOzU
頸���N��Wte�$M+S={W
�j^�/�^�_/���9^t�
gs0�,_�'k����ِA�
Y��p4

��
�'$`����Q��d*��"Z	5�W �A�l��AF��������y`kA��/���� �"X˔p�
+�\��.=�E�/����VN˜���#}ʶ�O'N{u}y�Х
���I��4����
Iy$�7�}	�Ys��6���LP/��
]��\�/���M�����H�%��\���D�������خ&��\���_�G����uΠNW��\�%o����Fg.��Oڔ]@�F>�̝�.�3k7
Z��C߇lC]0�b.�I�׵�L�F."��r�}{N�T-�O|:6��޳��~��~�[�Aw?
3w�o�~��M/>%=��.eW��Nh
�����ҍ�υ����'V���
���r�
N:�����eOn���ӛmNLk�	�^��^��ٙ�
t��ʣ���oZ��^;�{���Ié�%�
훏%Ǣ�zޏ>�z?6�w0:�w`�QWU��W
��9�p�j3�(:#:������6������ݻW
���5���q]8���!E�VX�I��
M
�M�E'�D'z�<��V������{���g`��%'����_�k����������۝eW�*�_i���0�ʾ��x/�%9���:@g� �J�;ߙ�����6��GcS��)��q��$`��Wx�
+u�e���
����
�O2��Ly��E�,�i���#Iu.lI�d����5�6��o���U�}������t6"oσ�������K)pB�I��6#<���l�^�p�A���L6�+�ۋ&k>�W��e����V��������E��� N"#�_��a��
�G��MTH�w�Ĝ�C��\��'<�0
+� s��q' S&]��i�
d�ƘKr2֫���DE���ɜ� {DvD��7ۨE#�7��
+�|E���}��ܼu$��F(�W��I��	/`A�M��]�nmw�o�,�O9����mUu�d�?lg����
�-h�p*�vy��8�kF#I��'\��i�Od7������>��
_
���
�ٕ
�&�
�W�������'��ش�DtRZ��@z�ɝ�]s_���r�o�֜Q�rL|xeLz����f����w�&�ߎN7q�5q��h
%���B����tX5i�_�->�x�������|�?z�N���o��w$'}�N���͖�-���r)	��{-~~��[Ͼ��
؁=���ć��3�(��#v���6��g����/�ݨ/�>,n�������A�Gg�5�)���G=כֿ�w���S��\�khB\MzM�S���^k��ڱ���v;g�nwE䓖?��U
[!�.�0�Cەq��9��L�
ҨCT
s�^�
�e[
��5����mbp`���u����j��;�G�'�
22x-

ݭ"@7�^�H#��.#<A�5�D@�kV�=p��ٖ
� Kɚ�H���OE��A��s64p�
+
^N�w�\7Ĝ��q��~p��s�DA��#��\D�>�K�$��_z�
�-	�N�Ȑ
���A�2PuS!��!���+��KZevA<X'����)��-镁]7�2���1�!u$`ިC|bm�wO�!>�D:�g��AǯM�|��)���<�d�F2���Z6�s
W�}�.��� ��
FrNՃ����H��L�b� ���`�DL���tP����B�(�Su�9���������|�]�}Lt��S|z}Zt,��r����]�
�������:�xeܣ8����CZ�1->�	�j�qߡĔ�9ԉc^M�Iu�so=���!����ƺw'&$'�c���G��'��N��gi�}!����ZJR�K�o��}l�{/��5�%��`�Gg�Ǟ?�\�'<�q
�b����������Ǣc����ii-9�lxq���{�����f{�&bZx� 
�����ڃNt�l[Ǯ$`��G}{3
�pp��FҭD'{�l�7���i)�:{P����� pT�>��⣉iu���Q���a��
+J6��qb�ʶ��b\{,9
+��t|Z�FL+�I��$	:)9+>�j��'w�!
:1�2�	��7����L~m�_L���F��:�CT��>W�iSsß^5s�陔[+���zr�d��)�̙
���j�����&
�܄�uW��{4�Ɂ��/ ���8�������������b��|D�@Zs(͆m�g�|�ȗ��3���?֧%��>I�6��ܜVBx�1��X
8ˆG��r��U��
*<t%;��%C�jNޖA��T=DHյ
$�5����$p�L�j� 
ޘpJO&]�V�kկ�t�Y���
8LB����|ׯ��y��F�ld�2|�1v&��h��ϳ������� �e��d'Md�R^�� ��� F�Xs��̂A��3j�>�4��	}߶��
9�����խ�
����DP���p�ӻ�Sk��L��,଴ϤJ�/ߌ���F��M�4��� !�Kf�ڟt�ۦ'܃����	��L��WS�{V
��.��
+�$�c��c�bvt8:a�MZ_��jWa-=���Y}г'�2� {��8@��-z���Ń�gwZK����(�E�q%��&�um�YB�h[�_)>ٽ��͚Y���N�q�
bF���nG��[-��[/L����Lwj������k^���<a��fJ�J��Ou펎��>1~��ɦRb�--?
����;
�g�f}.` n�#j>��$����GѶ<���z2��˛�}G^~�����e�)q
1+;C8�r�eVDŽ7��\�6p �/MQ��AO�|�9�gR.�
�8�R
+t�?��r�

^���/��D��'��.*<x�>�6J�.�.�!��ɰ��
Is���N����
�
� �i+ु����lX'��
�<��ۅL��@�pu�mQ�^
�1�x�B-�
�����
�,��S����u-/
K�^U�ּA�
���'���V�
 �[�I��SQ�؛��ȠA���ɷV
[-�Eu�֬��Te�U6p�
�o�Eg��Y����R~
?�8p=�17gԥ��'ϥ��@:h���0'���'��׶`4�a�6g�-�s�n��
�a.<�E~�­�\��q��umBV�
Z����嘦%�9u~|o���X�{�n*h�o8ĵ/���Θ�+��J�V0(ӠS� �'���p
n�ؔ�S�s�Ϣ��&
�u!�7*��C�O
+�����~�;���8�k��ע��X��S�����:����νI��ܓozvS�{Z*`TQ~�)��7g�]OowU���]�����]���2�<������Y/�ݩ�3.e��ͺ�,}Y��Ĭ�%
+<f��3�~u���c���0�y��7���N=��W���9);�|���ͻ��Y�^�
X��
�ۀ�����ö����C�E/���~��5�qX�\X/|��b��l�v����1�A����/��Wӣ���^�&�6IS�9��5������=G�Nm��[�����;�0�π����ۓnY���f���X�7r-�

�:u����$��� �I��)��+9cS%��\K:L"ҧ�΄4�LX-�/j�����?�j����&�A�k3��9����
H�&mt��E�%*���]�%�Ve�nN�����!�[#�&G7f
=I���ʮ�
'�(i�WgCFU6�^e�Cr2Q
��j2����g�NUK�kP�޵������	�{
M;`K%�
+�N�b}B�Izm�L``����笃[Kz]~�<�_��H�[F�&����n�"��.
^�.�~���[�
��>�M�g��_�}�
�2|�N20t5
�D�59��|�b��ȧ����b�r�Gk���^د~�<1�|i7��G ��~�"��ˢ.uG���ߧ�ʶ�Oْ��S�\�c��=�֧m�g�dG��ѭE�p~I�N��}I�Q�p�:7��]׫Yy���ٷV�ʚ����g�n�$>#9�p���IA����Cw���!3}�"���Ox5�1��-�T5�N�k���Xy$:��V�@s�Vn	j�����ӤG|���s�ޫ�����k�$첳Ӓ��vT�3:>�֋���	���;*������M%�;
{>�}���
������%�j
-f��ޜi�J9�)��5�y�[9������
+��OJ���+���zؽ;��	�=�6Džӿz����r}:A���U-�n�+O:/���9t�W�����������mjr�ʵG����1��ٕ�Cz����&E�$茍i}Wl�(J���MF?M�F�vx���)ũؔ�;j0<�	X�i�n��_ڊ�_���e��<
���]��{�Fg��g����|��w�܅;���
jn�
+�%������Sna
�0R3)�:�m�z~�2B �O�,Z��&|z�G�������!t�B��#Lx��<�6KF�dݥh�4�2�֝���Yimҧ�
5�}��}�}H�u���ݜ�}
��<{
x��
��P�����L���Q���
�Q�&S���H�Hn�2 {Ĝ����S���
{���G>]{��]�F�>��Fo ��zI!����
ߴV.~˯�z/�|n�?�엮��͹���s�9j�7���
J{dgcS��)��9�����1'��'݆�
��+�`�/o-Y�KZ|k�挱;�4	S��b
e˓G
����Xv.?�1�4�cN���wn�=3�©�9;�Pw���3�
��}uJZ
s(ꁳ4�gU�I��=n7��_vV|+��wO��8�|�)/�K�3k��^=�ܵ���w��Edz^�,��
�������qU���N.an�P��NEs|RRm���;K���d�������[V��([3^�*�Z�@����ƒͩ��W���w��P���ٞ�)�IM�~&\�
�	
�A���<���Aj�b�@g�M
��Z�O��ԉ�"6�mK�kZ�Ӻv��-\ũ?���Gf=�tk�n�.���0
+cB-�{,��Ǒ�=����Č����1�IsYT	��7��"���W/>�<x���Sz�Vx�jʣ���Bŀ�qZ2������v���x���ȅ۩��q��O�n
�����y���3ҫl���O�fu��� ̄d-��NAJ�:#�#�����Y��g����4�y_�@�#k$������O��Ւ�ʡhXq��_L���<��th{���}�t[u���י�
��m��^���7��'ovW�>ҝC:�
�O��.�s&+9g΄��ܜ^	zB��P[���D6l����ޕ���Z���(F l6l�e|��}�n�Ί[^L�
LF� B�]	���n+�H�ħ2~u�B}����XR�����藙���DPŇ���!�����B�&=f�Vd�s�ɣ��q��#�U.Tuf#z���	�33:k%�lC�YS_�e�]���.�m���}�G�U#�#~�S�i�$��$�FNC�攬v��� `���	��؎��z�{�MwilJ}6�P6lN*N�g��6&���wD{�c�S�
���Z��)������f���V��O*NG��6

+v��E�S����(�F�
l���]����ֳ/��~������3*Ql`Gu�;`���-�iY]b���'R���~A�����L���崫ߔr�I7�)���E�d{Q޻Q����tX���7׵{����q���ՃV��m�|-��w���
چb
��������&�Wo�����Oݵ6��A�ѻ?9+:J����O�w ns
'�F!:�]�P�Z}���ْ��O���7�r�KP�C�{����
���'I�պ6&;���#Ё�)��q�U�_H�G��z�*	
��{����������
^�:���Sz6��Bc�
%���h%[������pvzy��o7'��07R§��}���/Ҁ�6�ϥ�fCԫ�Y���zY��ߧ��G]&99g��jP G��A���
���7��\�]N�t��_
���B��<s�򚔄����jz9#���^ˡ���+Y�#��;Q
镶d�ß��,�U�MG�/��D��/YF��2��Su862������c�šϷ�����!
�\�l짹�m0;gA����A��Ȼ>A-�^*��R
Fsf�:�p�	�Y��5�ޤ(��*�^M��[���$Qܓ���ꑢ&6�}
k��VPҐ��
�������ŋo��!�pǬ�!��ˢ@<%���"��VHѓ
(ڷ G�z��8�)鉴ӪZS�]���B�g/�6��ս��Դ�y;l�O�%��Yɉ�
0�]ە?���ݣ�ڼ��i��T@�Ez��Ĭ��p�:SS����~e�):�x���6��`o���*A�H��)������";o
���s��{��s��ț��:;g
�`�'�$��͇�3�qCW|B�B�DuTXҔp+[�^��.al�ؓ�
0�&������H��d@Ӌ�_S.u[�.=Iz
"��H�%)��6	�-��I��gIt6
�p3�
�{G��=����O�S	�>M�U�&fe�$��d��J��R`��9z=}��`�l�U|�/�K�z�mE$��s�洏_��
�;M*d]��}��P'#=�f�%9��kz�/4�N��
+�,���k��^�0i`�y�>��d�dPՑ	��]�"���O�Nx��H��L�!�y5����)�Ab�:�^�*Hx&3wy�}��x
��(5?p%7?�M�*��e"f+Vuo-��a
d0��KC�#�֢A���UúU.���
k�d:`�hD��0�x��"5o�d���
�̓��?����-
}X��ت���ۀ��k�ԜɘE}�X�P�A* m�:�O����E+��	�2�7 ?t�].:�P�+�~5��^ʭ�D}]���n���F�6���Ov.�j�`c����>�����f�
�V�|�
쭸�����gٰ+άN�
ژ��0��PA���m�+�[���!�f0qʭ�[}�V������:�Cڜ
�����3��r(F/hP��;�������>�Ӊ�����V��Nt�p}Z���&��~�~ �T��������Ft&�tk�0O�.`gE��������};��۞�H2aɹ���H�!�M����	][|����֦�
�r!1`��Dq
Fӊ]Z�1a�!ݗ�&�������)�^��U)��ac�m��XK)}&�}�e�#�j>�4��s逼u{A��^0Ā�$<6
�J�O6�io�_>l�e�0s���v�c���:�<�-�����9���%����Z�zQ%L8�w�M�y{m���j}VP�k{3�
��B��e�SlVݼ9��Z�R4�Nv�I�̆5�U��2�p#
��zb
M���6�~�0�4�xjX'M�eu�O#�͛��
jAޓ
��3��	��h&|m6
��J���/埌�~�l�A~�<����DH+���!��#֑�<�4
�%���lD\Ft�郮�7fD�I����t���{X��Z�E�[ɈNE�����!
w�?��Yl�؎/2����Y
	���P�0��a_�ui��1��7h�!���xTPu��y
?Dt"���N~�h�^�]�D�ƨ�h�qg%`~=�a��J8D���7���|��
o�xv��lcRZ��Ӂ���\��
]�c�6�j��j��_},:����itڦ�M��6�O%�ħ'�)�+��ݱ���sa�6���Kߝ�[��g�B�?0B^Cq�)�{�\D|����pW�O�äˇMҧ�M��ݫ���3��c��#�M�V'/���j9���������$�TS>eg�-n�Z�ޯ�Q�~39�Sl/�F�_2�����]��u��i�q�{�N� ��eW6e\�Yץy����Ctb�qG��{�ooLt�J����	�qM=c{~��VDٓ	�
(��~U{�{���O+ڰ�����
�
–A�h���(	kfkI)�-L	X+I������������J�����k$�9��,k4�)�
6��䡮m�}s�
vd` �
�9.�p_�	vfh�k�>�ն>�RԒ�
����sf
6
��ҡ��a��/eB�3���)�N�_���W��a��_x"�
ME�N��P|������7s
�s�n����>1X���$p�8��|eBJ~�ٵ�
+�`���٠�3�H�_�j�Dz޸=�ס5w�O���J{���
���
�tDh��0�%�0�M
���ɀNH�Y����	����j̡o��7�:~̣��1l�M!�
E������p�h>b�ߎtٰ��g@ǧ��?�.
~�[2�}4���
��#z�q'�:x�N�������
����3^��AQ�R�+k#ܒ��]x4��&��؜�*�.�zc�Нr�9�LX#�z��w��ܓ�o�F?�|Z�����ڤ�8p1��Z҉�y� 
����U�U�2m�}��!�AIcb�{��D��
7N����押�j͆
�
���b̅�?˃N�F>��fm
+��pI끏�Ȁ삢
��8��m6b6w�|���vG����_{.�}���5� �ߚޤϤ�p�{>m�K~vͫn_�_N�j�`l���R~
?�+��:9Z�+���/'$ǀ���ەg�!�oA� `�ƔSۓ�
���52<�5?�	�F�v
���C���o���a�09�n/k��E��5:�^�k�944��ß�F,6���AWߣ/<̠���DPrv�!�K�<%C�)E}�}�z�w�^20r
���jHA��9�9
<8��H.�$�W�S��
Ĝ�DD
�hPѶ>xܧ��̃=��5>W��=���Х����2z/�4p=���qfN-|�h��l�
\��;ҋ��%�W^:
}kn=?Rum�I�m�e
������������N�);�
YC�ΫG=����d����A�%� _!B;��m4
0�`
��7��^��V�ϥ �n�"1�mK���I�Q�����z2^e��s(�"=k�'�ڎج��V�b�ɀVH�
A\��*3gP�L֭e�Hf�dJ7Ny5�i�[>��j$
0�aϝ!A��B�#)��
�|�����r��ͤǬ�:���qymlf�?6ݯN���/�����>j)����N�~{�ڿ�]#o���)��A�1{t{^���+���D%Nx��O*k֧u-��=�Q�N�󾓄
��]Z���7�G��%�V6�s&* �s%Y��*8t-7g;�5�U�\�GP�&�
���~��"�����e�_��y���Gd��t��?��!��������P�ֆS^O ���8�:	:߆9n�9�wp(
Rv!��꤬.
+}�$�	��H�'�C��E�
^ \;J��y�p�skYr�8�P5ntV!��_�{R�Z�-��Lt���e��/ϴ��hT٠�7�ʶ����O���OlW���+�F����m?�]�.�Ĝ^�6#=�x�

]�Lʘo`0�	��<�@9��ߢ�B��,�T�8��
^y�
+]z at F����â���W�6���cSߦ�k���+� ��2�7�[�
�,1Q�
+�
E�������`�O#�˧�M{�����p�#?�z����eۥ�#��^�Z����Z.���Êv2(;G ~
�k��KQ��# ̳x�6�O؛f3†9�-TX����l<�
�M+ꒀyQ�~�%9��ۿ9!>�vj;6
Ɏ����p��p�Vب
���
��O8
	���L���A��Fq�^sP���r�e�[/$=�.������nu�ڌ�Գ����I���
H�D��I����ʸ��Ƅ�o�V߾�w;+7A�$@�G�-�Y��3~U��ڱ_�| 9s���Y�`�o��e�v���������
:�1!Gq��i���vX#���O�i:'LR��!Tv�ݲz�)>�9!8��V��.~�	^Lv�
�!>�r�NR�)�/�MyT�d�b���3єC����/�_
�E���
�����^����[��R^�46��
 V��o�⺌O�� J��m���.�dis�ݵwm�{O6��ʂ�Bga`k:�u��
H�n=՛�8���|$>��@��.[/d�0�"
��Z�]�敂�%I�k���E'�>i}
tvfQ��^6ٶ�� 
��}���]^��8aEG�R
�؀S������ �
� �)�X;d�RaEwگ�:U�������d��
�$r2��C�攏<�1iޏ�b�K�^�!aoe���,�	��5
҉ɈA��r2��O	�͚���
^M���tP'�wug|��6ph~N��
+�d��F��/N䞏��?鿾5���� |��I���
Ț��	t�ٵY�0
���NOAw�5�lHvnc���g7;K^��z~G��������&>):
���1&����N���x�u�o(���7�]��
�Ĭ�xrVz"�R��<����>6c�'�fe�kQ'�ڶ���������ħ�5�I����=kc���&T��?�
z���+a
����a]�
��ソ��N�"�U�o^=��;L¤S����C����nL��J{�u�3�������$y
\4�9�>�R4FDž6�?���?$�Һ���N��4)��csBZ����m�ϸ�
�[yO�m�]bLq*�4+ at o��������B8$�c���3-���ٷ"W�mwD�.���
�o<��%�<Qvg������Ƹ�`&`�'P�8p�,`�4��t@ۛ�K�7�
�'fE�3.�9�w�^��ո�6�
'�B�<��퐦7�U��nE#`	��z%�EE~�ܢɘG�{
-�7���[�L��n2
��ᥘ
�h@ݛ�S��a�_GT�i��v}�磘�0Q���
��
\�`�"���F}2�8��y�g
�І�k��Pad�L��E��
�Z2��/mL��2��Ӏ!��
+��rv^#�ͫE�/��1��i��]����H�=|!��Z�T�?��S�	iE�gĻb3��5��G������ݺ�m�@E+( �H��B���Cz�!���C'R�]��=�|�3y��K/ę5kݿ63k��
���Ud��������y���|�����ŧ�=K�ؾ1�{����FY��俛�� }�k���>�A��H�Ң�{�%_wG�>V*��~�b�O��&��w
�m>��{L�u��\�a��c�$���>'���=�@�
��+tYo�|f�8Q`#ms֭�|�� ��T���1K�9��LC�1I����	j�qx��e
J�Q{��/V!��l���P��F'��fw���0�ۅ��}�b�(�ݗ���h	g:l��4!�2I�9
#E��C�[���_Ӭ�ӄ�K
"�L	�v,+�z&G���'ג3M2\�N/��\ń�!����w�Jt��iJ�u1��;W�M���K5v���~NsgJ�Lł
�����#P��1���y:�M���=���|���@̴͉��m.�"�f{t����ħ��c���BG��ڦQS��s
1���3�
��؈
])�bVĶ�i�3̒�3
�
+k�={���%_�&���)rډ���KG��e&����k���>�1t�����Z��_ C����_L�
+.�ĔK5!�<�	:�OAJ<SQ�Olȱ��>�.��2
M�ȣqT���
+y1E��>Ä����@=].s���'8�e�.�yD��h=!�D�M��sp�������]�#�]b��vm�¾/P�u؄�ID��
�����Yc,���Zg`~���gs�l3�7{#�����N!p��9[q6
����,s���}�dV�����L����,%D������M
��e��S�\�7:�.fʄ�Z{g�
w��ce��#%����I��Y�>�@��*x���	v���e�����w!�5��
��DyZ�p�C��^���!�8H�3���
���F�۵:���0.�PB�����r�
Ip�Zz�Y��p
e��

�-c�(��a�bW:
+���/���5Cͳ�l�ņ��.��n7��BU|1UlUb�Mr>ܪ�Á�*�*��{�(�����&𧖖��,��b�K?IJ<���<�KK�

�]��
8�����Ԧ<��{�;�D��q	��
�}0I 
��|=��\�.�1�A��u�.�
+K1GrF�zG�Ǖ����"W}���8���9z�?@p
y�&%�Z��~-�PgZ�/ �ڞ)���g��g����ޖr�����iUcb�F
=M�FO�F�q��h�8%�\�E
m��,��Q����{�
�~���}���|����ր�
�۪"%Zd�0Әm
)&�R�.��ww���tU��F
��2�
��)���u�醹
#�-0��N���ƒ1v�r3�s�
�n��xO؅�j�;�y�����f�G
�m�V	��X��g� 0l�!���N^c��8�8U�
2r/����w������_h�y�ܘ�t:���q����
t�G���x�Uh�����Y���
+3
�H��s^��a'$\hq��o�T�k�px��1��|k�s}{�[��g�a#ms�~��sl�UNϰ�q,������Yo+v��Ax�
�c.������c2�\�M��Hʽ�}s;���ۍ�z8�����aZ���%5
��P��oE|��/�Xm*x3_��f����Ê�l�}���|���|�jEx�A����Al�y�erŹ�-�<NM<Ň��^��}'�=��R
��B����� &=����
`�6;�_�2^�6�<��/
�*�%�1f֙�[bU�s��p!6Oh�+t?�@���P�m�/�����ÄH�)�:A�;,t3�¼��"�
��S�EQ�|��W
��y
�VK;��.�!��Y�2O - ��2R��$!�`�{���5
�\P��O���"o��>�5A�w��>Y$��3%�p�s����_
%��C�ְ�=�j
��_�
��
%�T
�6
s	��V/�u�9��zc�;}+��~��m��<F�>W�2��)	�C��!��z[�+ at o߯Ԃ_q!?��-���6��e'*t�Q���)���(tY�Kw�2�n,��8
�C��
+]��>/�缜�>��gح�A���a�:�r
䩂�c7S~q
+�EN�5I�A�1|8���A���81i�!+Ȓ�T�rdӸIT�vo����̧�uyN۽�r��J<��#=�0���w@]��_���8�������a�Rzх���<Ɇl�� n��5�_k�	�'�Q�o4�9�ׁ�t�
v�A�Y�暥���$�
(P[9o�����z�?\jIYy�t��2kY��QR�F[񧽞b��΂��d��ڬ��A���6�����g�@'�X���j�_�2N4%�ơ|���tǥ�D���b���|��Ir�%
�XIN3~���x1Wo?L������ #�a>�~�
�ߏ
Z���^�+t��@}^����sc�B�n6ü�RZ�u��{$e���b����j��Δg9lv�Co�9i�O�h	���ԝ>B�F'�{��ॱ+��NK��aw��a?�g�!��uB�<�T
+���0������+��+U)�[]�w����Zx�N7-B�
}��u3@������ �u��G+�yoFQ!����K�t"cB�RJ�q
���NO��*�%j�
 |�
�2Ҷ���fi�8,��$Gl�C�.��>[��y��Hq�	b�e��C��L�� �0�� �;}7}G��B}��lU�Ӎ�t�c*�E
�LÂ
�c#m�Z�
+����|6�4��`���
z&%%���<
D��J<��y�F at Ot���Q\�Y�G
*8�YƖ-�t��]�OjJ�
̈�
�+���J����;0��@}z�>�h�P��|��pks�sk���h��;H[n,|s<I��L�"N'mk��|Q�F�ו�<]��})�����y��b�F)	)%q���}�>癚�z_�K�-�y���C��p��A��L���I��=���m �|�g��w����LJ�'D��N|о��r���0Jh��59�&H���c��Ň� mv�
Hr��y!7ךӝΧ���*8�{
+�O�Ȑ:Bگ.�XNM=��':
i���oE��[�^-�g9�tz�+ȩښ���^�~[��
+�5'���C'Kc��;�~�oJ����y{��d���XF1Y� �i
Æl�~\�Kv���4U�`�<�y="�^M��~T�Zg�;97��8-ᖔ�|[#�z(%G�Fߞ&<@�;]�
+�<�@M��a��k2�ϔ��kũv
+v�	r�
� �y71ɩz�0L��q�
�qk�:���
uSs��F�~�����
���rl�v;5�x�S 𛿡�i���T�n�"�٬8�Aߌ�&g��,W���w��e��oua��m�/����tw�1�i��g�ů� ݌C�h�!�8���7P����o�~3S��0]��d����F�� ou�=V�!ΫM����y/��\�vTԍAr���t�a��T
v�g�����5�ԧs�i�V�^
H��I�1���c9`0}	8�le��Bm�3�^N����C��3?�!�&:WQ��{�
�݀��zl��Z���|�<���"ڪ�B,rR��AK�p����jCч�v��/=t�Y/�l�g�A[]�_����%g*�ϗ��6�RF��gM���#|��`.�
��
ņ.6�?�U��l)r=�iFG�����f�
+�q����PY�ى�]�G}R��k
+^���>O��_S�?]_�|�.B�J|$!Eܜ�&�_��y��q1IK�.��i���
X��u���r�z%J%�3JJ|:JH�W2��K������}:CG�-��g�����z�d�R����Ӟ���
֛���
pue��\�x�,��q��J\�a?��~�c����Z[
��KBW�Й2a��bS���4)�"��[��v;��/Vf�[i(�r�P/tb�Y��3��!{C��~��ZK�녪����
I�NՔ��������:R�t9�e��z����Z
�kH����񊌙�u2�+^�@���>���]�
�)�D����>(����q�n"|����h铜������*v�Yq�==��8%��vw�� ������(�9!�H
+��ꆼ_��y6�L�ۋ��)�x2��t�|��?��� &\]��b�<��\y��>|�M���u���ѕ���O}�K�u4���	��{�p[m�y����
�|��s���G;��t��X���@}�l/��?���ۇ�^j���a����\������ِC	%mo v0�
�=S���%���%�uf�Sp
F0�0;s�
�����
+��׃���B�L�R_\��Ŀ��Q�t��;��1����/�ɑ��J�{���ҿ
��I��`���a��
+�'�`�Fȉ���(XI�-�_�%-�CIz}c���6߈�V��=R���z����#��6�^m���,���
+�Zm-�v��LR~�^?�o�9祾5�y�{�2�뚌���D�}ڌ�u�xf�4�Յ/窲�O0�����H�2S_�RO�����p;O�B��$%�
�-GR��jk��LY�
�0��zw�zl�
AA�#M-.�(�A��Q����{r߭���P�o�[3?��i��ߵ��׻}��͞��AT�N��^?�g������z]a�㩂� �%��q�U�OWj2����<N՘��qDPY��=|����
X����5�/��r�V�R
d�{�qb쉂�<�`�+��#��3�
 2꧙��g^�ݥ��[홯�S�Tiy�ӥ&|��pk�����X�z�"󹌟�J^
+s
����l�f_�+�=�����gs�I�M�N�&���.��T�M%4�f;,�*L�lU������k
�7ZA��˕��v:��v��_�%���I�.� ������_7;�>nw� V��>���8�1�
G~r�2B�{�я����k�z�6��c~�����1��
�h�/��ߎ��~�$�g��#�V��
��
r_LWd9)X��xI��zPA�a���Q��RS�k���r�<�����teړ^��[rz��FW�� #��� .��Ųj���n �	�<�����s%"�h���\
��� �J��>|�VG����k
B��
M�K��h�
�R��x��w��A�!Z�V':�:����
�����������mi�.�l��o�
H��n�����0�H{�V_��D�
+9��ƫ��?0R\o�����+K��i����mW ϡ;}��c)1�:�����z��^�e�
+J�{1۽��ޢ/[�ŀ�Gj��?ot#B;��o:�	/�GH1*Q����|o��x���x���r���؅
)��|;�
�
���4
a��	�9}GΫ��D�Ն��[
@ƐS2�پ��}_]
�(Y'�{2W
�(恒�g����^��,��
ң��ʳ]��?��X�>z�*�a�>�Y�K|D�zs��8��b#<XU���t��1�a� N��㣎$����W-��;��p��l��
�ا�Jډ�n��m�~ZlHsZh�|iQ0�K����bo�3�p����]��8 �h�@�
�v����@�'Z嵢�~�b=�}���Ѓ���P���x�
��\)��t�P"��`=��ն<���ZA��qz��nx�5}#�k����,|��N���Ev�|��C��Vd=���|���
�{2��_L�P{}p/�=�p����
s�/�~��e<�1���̗M�Hð�d��4W�<W��B'Jy8_�����,�e�4#�盋�O�
��06X�
��#�
�Y%�A���0�ь(��F
�SW��t�2�a���Ԅ��j��

���A�l��0��\��[ԬbQ��=����Y)�?���
 ��x�o��"N��3%9�,�g�7����V����;D
������O9)
�s�4�~��tP��z{���sN@����O5���ә�z����F{ֻ:>��y3���w��Q
��j^��IV��.��{]$?���d���<�>bR%,�n���q��O��T�c��Rd�^��NW��bM������{C܌ZT�#eu��EAI;���>nv���l��}��I}��Q�;Č4[��������la����ØPeE��8/�
�a�U��3M2r�*n�60��]�P�7�Oo�[
���
+?O��m��2%܄׳e�������JB����s
v�%����2��lv���kXE�q\�� �[S��pJ�f��=��_�
B���y��|��Cd�q
�
���BW�(��2��!b��\}�G3�]^���v\"�'>�t���3��b!'
�r
�䥄3�;����X��a�w8P�R��<_��
�:��s\̉���7F�]� ������*!�P������C<O�
+�,�b?��3b�Ƚ+팰���z
�{�6����~�g����z�K?@������,W�

��G��C���~����Ϝ�+u�d��t��F��bJ��bZ���
z2��wa���`_GJq�F�o3��z{����℧{��c%3�D
v�i�x9��~_)��L�q��i)�m�o���N;�K��df��铼��ˍ�oF�q@�?M���ܔǺ���NR8PS�g�RʏE>�l�K:�����.+]�.��.Kj(�Ѵ(��vs��pO���ه
�m�|���d{O����!Z�Y�͓�漕��?
����*6bs��	��f��Lø�S	"�x�
�.>~g�����T�A�S_�1��Xn�|���s�8���:W1K��^^
d'/��^����ւ��u�OԂ�{�,�۽y�'����B�
�@Q�a�0
+g����"�L
+��,5g�[iI{m�b"�� �$���&�O����l�ޕ�a{��g{���h

a
!% ��~���~��'Y��E
�Ş2A��(5�ށv</����\
,�G��E&)1n�?�Z��$?�� 5��	�����b�cC?6�,ee�Cr:M/:��g(9&

l��	=Ԩ'
��ngJ֬��T�
�����`��(�@R���2����ʁ�i
+do��������s��S�ģqJ��G@㢷&H����Nje%^'�8��9�1r.����!��� ��0�ɱ�]8PRs���<J��[s?�f}:��&Y�Ԭ�.�(ceo�w��ysM�π��j�E�l�B����Q�;ׁ��H�~�OJq����
Hx�
Mş&I��91�jR�n��}���Ǔ���Ab�ls�%~ �F,5%9S�Mpcu�������줦M��|Q�5b�׹���1G_j)yf6v��֕�����̒�	R�Y&�[�*�;Ì�����c��;Rv��	N����u	;�~��ij��Hʍ{�ׇ�;
!'}
��p'Jtw
�u�D�
kE�cUco�����G9�o�
�v)��
K�1�=��d�a�e��Œc�mMⓅ�O���`��cNT<�ٴ�cRqJ�ǰ����V�LӐEɁ��|�o�~���|��\�n��e:���L}1ɏ��LRa�c��^����t�������f�i��d
ad�4�|��%8K�ȉɶw
]�OS�)�d�1�Rl��{�`@�����lV�Q	>Z�	���[��_�q �D[g�����C�Rl�

��W�U%�w��ܕ� P���\�ÞOW�L�2�YQ�jy$�$nw�����\��a���1k=��_+��C)!u�
�y��ioaRR����
�p4�%t�2�y�
�
��|�葮�l_Łm�`����,Z +�B����
�b�BE�[����������ZG�ۭ�����)/�S>�ZV\,����|dV�.�*�O�b�U)@X'�P�0#y����Ci!$>�b��X�)�>a�z3��f+���
u0LM���#
�d^ [...]
+V�INN�&��(Q{#܌\ܟ�2���6��a5�4��1��
�����J���Nb�a�
�:@���*|�������c�c\�O��s4����.�\m�|��u��E��>L�Bm��(-��R-{�4���TI�!��A��4��Y����/:�z�B=����Rb��if񙚔�ؔ�z���l�����S��|'�������q�e���KM���B��0®� ����2�UN ��(� ���wC��e�X���4ky��I.�`���������y��p�e�1�a�&�e��q���v1��m���y��z�C��x��gT,3,�y��Ӡ�o6(J��c���>d�� 6ڢ`@mk �bB���v�0�j!c����rm�����K�9ז2-jb�
��Hi
gd��VT\̗�����!�ץ6���:��b[���
���C-o�	��r��f�����V����[�8��<V��'ӥT��S��DΆ��@=5¸{2N�?�q�>��$+����f���QZ�Y [...]
���cUM顬��7"�[n�� V�i��t��H.:
��8����Ϳ7��=�W�"��؉+���C��>����s��H^Nّ�������Nr�j3��f;;B��	�� �^�Cg=���
]���.n�B
-@�B9���nVI5y["*V�c�,��Bͪں�!x�;g*q��<[�l��V�jeg�w��͔����~�5�བ�4K|�M�� .���)ϧ�xc�(�`���7��5��ӭr!բi
��*9f9��T�Q%L}�ofl�7��9����r�z�0e��
���O\�:LE��C=YR#MC��^��^��EC�<�f2Ηj�ϖj{,:!m���}��	�$��_nF�����킹
�#��#��)|8 �W��6�ũ��z�u����Nҕ�8~0�|Q�?Y��ݛQ6'�y;���%��x��t1%$[弒�A|�v{�'�9�B�G�E͈�[ݨ��Ԉ����3����[�U��>Á/���������&��HA�;���u\��
�p0Q
�3X��v [...]
endstream
endobj
42 0 obj
<</Length 65536>>stream
+��tG���i��Sx6Y#6��a6�I��.Z�����-��(t1
bF	�V%r2�.:V"�e�Oǹ!���H�MM�
#�@@ZnA{ltPv��;���'���)�>�
}�PG
+�o�z.��?�5d~Xn��:_T�ܨW�Z�
ؗ��zA�2��b��|���|�Mڒ #5uٯ��r^ʱ��K��������d�����l}�����5MG%ы-ѯW���
����K
�F>d������}�۵���'�����8��J��'���+��G��ݸr��w�W'�+��|��~|�_�|��U>ˠ��h:�_&)�e��B��!ީ
_��
�y

��z�s�:3�w~j�
zl�o���"�8�b\�\m�g=�G%=U��n�}�$�8��"G�;IA;���NA�dխ��~ՊG<��@o��S�a�î�x_�ń_��� G������woA�
@!o���~�Wڑ����9IF�y8Y�ޞ��)A3 �[����JCFX��8ȃ~|��
+���|ы)|� ͼ
����1��{��7/��R�o1
^i��A�n�N���<mP�!s�Oeuއ
	��DW!\bg��J�Nr�/�D�:�G�Gy4��e��^�F\����*&��&%��)���K�ظco�b�,���m)~G�
ߑ�� ��?΃,4�t�t���5�E�t3��yv��/ס��W}�
A���<��H�o'$��r�=�c

n���N <�I��J�E��
+(&
=g���M-*x>S�� ~+�K���r��s�u
��:)!�&=)���k!�Ϯ�y~���
�[�wc���h�)��2掄��ч	Z� �l��"g[ў�=���6�WYY�s
*�N;�����������[Qn�~s���	p�߹r����w�}LX�cI���Wl��g��ey��?^,����e��%�ԄC1�X˄
�x�]	;c��W#�ʊ_pҢ��ȍ��������qG\�0�J|,d����R�5�{(
X
灁��{X�ʻ�,ȹV
+�p�ux r����#Ы�@�n�z~�OP��3(7��J3<�,��\G�7�2a�C���An��U9TN�X�˽#���`�^�E_	u}Ԫ(�����
+x��b��5���sН�A��Z��p�2?��\#泶����t�
�~�������ӨN��-Trʕ� P��W���3���?A�O��B_9��8ڃ
���z��u��w@^� `
��!N+����V�~��ičU0<���g-�C~���r-?��J��gP��P��'(��G��S�k�?
ݻ����@�
�i�
� /�wM-�c{a�bV���
P1
�TB�L;q���Z�-�KMO���
��
����A./@���A�

�
ܸ���5�k�;�����|p�^
��i,��?�	�-��'D��#?�t�����t�J���;���k�a��lwP�w 7;л�@.v@��=�ut�����#������i�싅�r봐z6+d �q8IM[�'��뉟1�G�����W3=�@n�
�>�=�x
+������\
?�߾
�v�7�s�zɟ�@�̨��Z���!1do��Ҥ�.;T�p��4e=�}?�X�L�OJ
�$�J��
��{��sGP�W�g���^�z\��cН��\������K�κ��כ}p��9&�-A����R/�䭍���!�j�>�� 
���� �[��+�k85
��{����X>�;��T
r��
��b'<�8Y�2!�����43J��[�|�u|z�5HL�o~ݯ<�� d��K�G�w�^�"?}�FLͺ_�A�R��V���f
l�
+���R��HE���&g��ԯ
+�Rf�UtB�Dl��@?���g��������+`�� ��(��+�n.�Q����R
�xV�i�$U5�]S���i�tr�N
$�*<�6/�f��(��#���;�+;{�=p�. g~xlr|����7A�w��_�!Bn7�s����B�8}7i�W�+�b�t�Ў�%�7+�w*0�?	���=�Ao
����:�px�w~
z�����C�0^�� w8�"�?��Y���"���S`P��k�����OF9-]?�ϟ���
�p����„�߂�]@_��@�nϞ}|t���Ao�
Av���������Z98��J!�p���=B��
 �,��ͷR���W]l‹28�
8<�J򷯠OOP����3П׮��޺���g��?�|q���JV���^��Y�*>�rN����9>ɬ����(�ڒ7�:��*t�#Hh�/ޠ$�O �
@v ��������Av��=����ţ� Ǘ���߉���S���>A��x��HU]��M�^�b�OwR�Z�EOQI��B>�}z� �z�
r����m �Ao ,޻y���
����� �gN�����U��ߺQ��q1?WEU�sl�ᴈ�5YN���T�K��a!���{
�[���+1�<����9� ݾ�;�ٝ?��>��
�
�eҗoW�Y��+Q�;���,��A^�H5�m���5Z-��\��g
޻J�%6��.4"�66���
�ϩ����A,t�ӷ�8���d��L3ՕƩ��uE9^�/H
kc
T1ܻ�l�Jڱ��@�0sI�E� [...]
�r������&/�4�t��2t��T�sIMe\{eMM{C�-�G$�܄�e^�qu�{� ��' ��OA����i��g����^���Ɍ�
�&���e���
�bW
+��5.�
����\�**˙�=N
+�����#�����~sv�{_
����z���/z5�G�/�Q�M�r�a�1+��3���|���:])��T
�C5Eu
�b2ѩ03�V���oa����/� ח����b�_Gg�
%�n
�또
��[�2��k���a��"��R��h|a���nŏT�=��h�}^T�������
� �_ �k��.轓(5$�7\
+̡�V�6T�1*9���}<+⟭ԏ��V��.W4n�yhm?%R�ˉ���^7�ȯJ!P{jV�\Fƽ������~��������]M��
���
+$-�&
Y�(����JQ�j��d9� �m�r���1���̸��j���4��s���܌����
�:#�nZx�M��/A_޸^ˎϵO�K���p�.z Bc�v�I^�z��Ia���Β���������٠���PV�&[����#|N�������y�rC�@�Q	ע}��{�~
+J
+��M�YE�;a��e��Ṟ��3��Ż���
��lM�1��jI�=���f�׈���s^kkAm
t���j摲�k���{R�4U)0͵���
S쮜_���6��ue)je���4X�ҵs#f:	�c
e�#�������Z_
|��{��� |�u�C%
| ���uUfyרA]W�%v�����
+�Z77Q�]���[W��n�j��Dʞ
���1q��.���r�.��o�`^��+�6��&eC�U�PgUU���ēY�tF̵N���ة�
�ȍ!~��Xje��P�^���l�W�5e��5�L��FM�	|DguSm���.�G(�쭬���חl(�F�kT�`����N������J��dZ@[���KI��!~j=�o��<r��%[�ڜ]G�;�����*�c�x�Ϛfn�Jm�~H�w '�
iYŖ��
+�lM��L}��Lc��BM�w ��0a�2Z�~�%oF|��1�81���;\8�YWeC|���w��̿���cCi��D/hM�,6N��N��z��'+
����A�|E�����4��b孎�bu��ɛK#U��Ѕ�*蒤�jf��X�E�
�L4�� �%»(;�1��q�a暬
o���^���XZq�e`�Gq�!r��� o���)cy��=�E��
��l��U��4@��;�K�_��eM�4˺Z Ҷ�XMoe᪤���h�8T�([��huE�����|Q ���<o�c!U�<�ND�T�"���HEOy�DkY���&q����C�F;���F⒄��<L�Z
 �,�a��ub����҅��7�	��S3~<�&?���4i���U����Q��E_ꊂ�L
+�֩R��8%� %D��#�� V�l�s2_Y}��#,j w3�ҳ��񋹺���ʚ}
���g�a�$��qb�������SU"��
�].�l��w:C/�S��T�"�T}��D�ȢS�UBܖL�۟��Z�*�G�t� 5f��
��O��o*��hfg���5"�m�1��Bĩ��s8i�C����\���l}�E��Z���Cb�
+�vG�S��cm�H-$Z���FE��PU[�'�oH�Q�RԾ���7FI4*�^A�Jg�H�#;^�0Ͱp@�f
���
�3v5+qI?��*MSB�Q)�[�[��z6���[S-ݛ���Me-wi�
�<,�ո]%r:��_̉���E�����#(���x���t|�e���|�z��zD::��<kѰ��R.X^��&��~�����yY9bE��Y�dC���Yۺ��Cg����Z�t���|�u�l��èf��w� ��i`l��H󔈴3��X�Fz
*9H�Lm�z>t��n} 4;@��+��=��������2�.�1�&��-T6��1q'��#)<x{
b�dd�i�y�(���H�#�>;���k��g���*���
������a![ZW����V�T��V
�)	��W��<;���~lTt-�t��9i[k�bA\v:+d<۔ Cf[r>-����J��ځ]�
��dA,���'s
�u��iV��v�K|��>��(k>�5� [...]
�G*n�=��V7�mw�;NϐW�ⴵ����r&�!�ż�i���|��c
�,�G?�hH���ꦃ)1s��w��a���'���SM9Ǫboccw�Ȱ���d�BdӘ9��P�*4)���:�gy�#5�_�0+�T��y<���Hྛ��  �):r�E���1���X*+�7k*ŗ�M����ƹ���ٺ�C]u힒	3*h�Gj
�x��r�����NE�m���6�l�����?��
)��'Z�|��kR�Ƕ}�6����V*�g�K��i�k]���H�)y:[�a]�j��0
,+��S}��O}e׿��?V���9b]��v<O���W6�/T֟ΗW^�U��%8��r������C`�������,���օ	:
����r��k��盕�kMF
:٘�:�G
/�tm˘�#*��
����m�f�"�&l�f����E�I6t�1�IW�l�֑�֪!�����9&�|��ua�>*�v4*�����Q���q� &mI�IK��C

q�,��ܬ���TVws�
�'����#%�DM�1+	���bk��=)4�r�/<��P�C�,T�
/�uh�$���v8��7M���z������ZMJ>z�������6�/e��4��B�����=En�L��������T�0)�@J��
@x�yY&pQ? 
�5O���/-��TV}:�����m�U�L���e�bB�%��;��_˕�gs5�&�g�`d��"�X$���S�$�\�S7���I�;=�蟳��c� {8Ƀ�
+1JI�&iՊ���v*�i"��(��"����z��F�T�X��/��(��Rf�R)�8)b�/�
��i?��Q��4��ѝ�ao4��4EΘn�~^�@��Mն�<�FL=Rr
+�����	\�IIL��O��L^_�`;�|F(�X.���&\̓���)��s�}w��Y���X�8���|�IW)>�T�U|P����\��
*		��	l{v�(iV
9�L�(�>W�|1
�[�O��z�5�FIq�s<�m/��YZ��
����� �f\,�2����'��%>�\ߠ�Ԥy��
1ȊCO�Ћ:�r]P�/gC�����&
�
����Ŵ�~
+p��z6�O?�����
��\w�� )9�(G'���51�h��x6�(>_*o �נ1�:�����}�Qr1M�\�Ls�z�ДE���f��SB��05Ѥ��u�$�-���Ǒ��~t�R/!dk
�3�
+?PP����c
��x���:�(9[��:[/k�\�\*�1��~B�EMϷ퉺7F�=��Ntb��,�z�P��C_=�sSTg�fY�̢�9�B}߮R�:P2
�ѳ��gP�G�f��7�uU�w�AG8�ҔU����"�p0��fs��rmֳ�6���(!j�,��(��u��w�*g�ԕ��O� >Ŧ
ɡ~����ϳ�6�5�X�_�U'�,�QNL2�I�f-)�TK�>Vsv��{����^N�i��x,e�
�#���A�q��b�~?�c�3�A�
4ə9[��\�8�ho���1����'G
�	
+�2~�U����\�.�~ ��|�Ȋ���	J��8!� c�\Qy:'���e�VV��TU�f������)2pW�	�
A
(X��vbБ��u2S]{��, _[l�wɉ�����Zl�S}|�P�z:_Ug���Ԙ@�����p
�-��8����J��T������ֹ��C�;�l{�H1a�	t�e�
�<F�� >�8�̿����d���JѱF�7O�Ҷ��~�� �&Plv ��]��g�r�i3�������:���

�u��yG�-ٗ���]�l�G_���Ͳ��D-�������r/�sw��3J
;��c�UV�M�٧Zޢ�O���M{:J�x�=@���0V��F]��Ƭ��X��ZV|_)�u|�����T��/��
Ȩ�+��o���oNU at N[d�~M3���'��8��^x��oQ�"�G�A &Ytb�Y[�8Y�O�T��$�x�
���H�c����qIGSL�w8ȓy>��Z��粀s��wRC
�w���5��ظ��ޖB|�3 [...]
�]�� 
�+��ςX�5I����%���/��� na #�P�qn�}��@�&|p)���؇�;�ŭ4X��u���~>W��d�"��q���h���iE�击���Ŀ?����U�C�h���	T�zO��xq��
�fV2� wq�Z̬"&�Lac�u�X��9����
���tCρ��b��%�TE��U�
���v0I��
%��4��7�	��֒��.�ﱊU`��B��K> ~�LFI��2�ϧY6-���~Y�����.�a�= {oɨ��-@��sH9��+��� _{� �[4��C99ˢb�d���qR�ױV���M��L��t���t���(�&����
������s�_m����L2I��q��klܻ���޻�B��.D�#�@�����j;����=�s4/�@,�n���ڟK�>{O��N���M�P��9�̾��:T3.)*�.A��,Pʏ�¦�z�;��8�=����uJ���)�{�lM�s
�c�}����l�GF.��7 [...]
K��|e�)~���b��᱁M;2�ɞE,���`}�Pp���M�>��^��	9�qB�����vw�)��4<ҡ�R�UP+]��d�,5�� �
C�y&	Y�z�f�}���[�L.H���%�fh(x�5E�^ꂾ�tռ�M���b&�5dž
 ��m���&�H�
m
�3O�z�buG
��y��
+a����{u;����{?&�>DJ��Jn����̬
:aP�
+nyf�q�IJ���Y��k߱3���J98��Z�5]�d����
f�7t��ܙ�F�M@>+�3�ܕa+�ܳ��H�̕���=]�K��Xyn����Z�g׬
#C��O٘c5�
+m��(�8"�����kIC�SB�_������ߚ�ĭ��?��/z���XG
��g==����t��,2�ĽWF*�����˸�#
s �.�"
��z�6�L9бq'���K�E�1T�k���
��+�����|Z�`�}m]�� ��^�5�
�t�?05d^�M�D;Ơ�����c�
u^9�vm�*�1Q
�:X��4P��#̕j
<1�w
�R�ꚏ����_�|m�K���H`��Jt���.�{
+
晣�
�ov=�zw�m
����"�����>J�˭InO���V�0���]�W�U3`�aˑ�ypk��9���B�RS릘^��
+	5���ݓ���A�[�tM<�'Ik���s��C`����Ȭ=u��X��1
��BB�T�\��"�=��l��l����(�~
�~b�k�Q��|Jd��<*ջ@(�빼52vOMǜ�t-
�6
����
*�6���G�l�£=
�R�@M�����S���T-�>%��@)9а0�Jb�G�LX(~�(H��> ~k�z����j�[��|�(}j���^�e5�>��y��8*�މ��׫���rV��Oۓ��QH�����"���� 
�;\��O�\�X�$1��
~��V|��R��.b��S���Q����#����K}{�]y]ΕiF��nX��k}�
+�t=ne
+��'�iX�OF��I��!����ߘ[J�
.P0��fk��A*~�o
+V�9K{�c�
,����Jr�m�m/`
E����i�IB�u���9�
�D|t��u��
M�bZ�SCc��
&��b���{g �;S�O�IP��5��|�K�[}��rwĠ�c]É�2vy0���+�����O���=�M[ֿ�e�4�]��Z�x:EK�����wjA�
�<��
���l�S�)"dh���iyy�����bJ��Q���Mѷ�8�[��[ø���#e�����=)"�;��QK<������
��"r�%V
iIUJB����k-97��yw�T��
YBG�&P��9l�s�j
��m
�?-5Yz��N�s���?2p�~5��x���(Y�]��� h�[�nK�НŖ6����3O+�I���V{��zŵѻD�m���b}�5cg��S#�e��g_��wKj>��4�,
��/���-�%n�����������@
.1 'A|rt�s
��:
+��_b��L�K{���~s]��T׽�j���r�!nHsI�.9>Ϸ�g�o�����m>���%;&���-ŏ����)W	�O~Ե��;D�T}c�MKW�c�8X"H�2�O��М�d��>2�5�$�L'P_5p[\�Cgr⋉˵���Z��\����em{��9T�a��ꅩ���� ���8:j��w�����})�=��3w�Yj̿�o)y�T�wCېws�������؄�8��|�"��yB�c�&��W�`
yf�wkO���[�]bj��
r��Nfr��5	�h�H�1N=cY�~�o=�1����9F�jo�{6�WF�����(&�^����
���ڄ�V� 1�x�]�#��^h
^9'J
�D䂻�ݨ�#-�f�#���P�s�
�d��
+���Q
�Z?�M�An��
����8|�cb���[#�P�8*�T�����)r�m��w��6w�?�S�/Mc2��R
��yy��mE/���S���O��#��n
���†͑� �0�cC�E�T���e&e��
bf�k�
��VA߁� v�@oWr��ȉgȱ�n���;��
�����
*�
�����`��/5��
�U/��#�
,Q�{�vъ�Zhc�-
���x�oJ�g�3���D O 9Rǰ�3˜bJξ�^��W�V+ȸ�b&�1����X��ӣ�٦�����D��G����c�����=��3����>g��{����6�)��o�R�*�@�"z��mė
,q�Be�d�|�"r��0�o浸Ie�o�� �vHЙ�l�I�,2k�rZ�nC�D
i��<��a;&�I�^����k�Rn�@�/�e\76f�
+�B�rn��᙭�9�q�6)�f}����}�f!O
��
+꫅J:^F�lOU��O����L��4<[��s�Cz�|􁂋񈱩@.ܙ�&�6OH�y{��5���s�W�dT�L�W:*
o�V�tOâ��s�*�i�-=���ں�,"��U
d�xc�|��Y�a�C��6�K��(�ߌ������4����ϕ����μ; /=qϑr�"|���`{ �'c�m"D��Pm��_~��
���/C��+�QR�$��9!��e}Iı�Z�o˺�y�=9��?fQoq�����
OO`�"���s�
k��S���� ]M.;
+�s���FA��
ԷaǑ�M�U��Tl�_A*ٝ��lB��zK_�J��!�&�%�����`��)j�s�����S|����d����i[姟�E��R
wWJ����uM�����a_�d䑖M�(5

e!���� sy�iT�c
��U�}���za��b�UNƫM`b�g�Y��@���|n}tϢ2�jD���#�4����1d�_+�3G�
�c����P�-�D�K�D��c=��S�(�Yj�OΆy�􊾚���9�9P
sf���zw��c%����'<53���?��
RC�,�{jL��(�	��#�%��
+ �%�����H���k��t��m�`�s��*��7
��ɾ�֝}�ܕ}ߧ���_"TnNAB�K�ʃ�&ї���K�
�?�ӑ^5�� �+�"=E+�l�s��8�c
��0A�it�m�4�9
~s��C
"L�u ����J1� S��L�޻� �.��7��9zɮ������{ZD�O�
+<u5����

�"YҚ�tAPq��
lz
�s�Ԑs]�N���i��I����!����p���g���_��a�i�S.�q��Qb�mT�}��c5�S�t��Y�r��rb���:�1S�Aךy�6���jl�85n�b�5�\��t����*Ť�'���&�'�YX
���M2�&(Y2^�M#碜�sE�-}:�M�<IN��6T����d_����O2
����0�W-y���G����_M\�W
��	�u���u��>	p�
$싙���2�.)!wWE�
�
;s���޲ #�F�za���e� M��|�� �:�-#W8�*ߪ��n��ޝ�f?�AFM��P�'�t-���
��}
z�ea���~5��{*b�w���"�x�
�u
+��R�N /���C>�t�<誊>���OAf��������Ўit➜���V
k8�=5.ϻX�i�5
;ֳ�_MM{
+j��P�S��p��!��*���3O*�
����(�{j�'�y7
ҵV���+
��T��f�q;S�����rVĹ]IuA�s᭑�[�5Q�{s��Ȑ�-�����]�B5m��]2�c�Y�7w-
 ��'���K�ܓ�K���J�j���)kSOVٍ����c
{�
���V
p\���Pp�&��P�m(xl���U��7�Y�H#d;�0	k]��lC:��_[�r�8E��%j�8VQu�o�
���Z	�
�׳	���ZGC�5nWK��j���ÿ,
C@� ?'YF�C�*
+�t�i�X/�?�f�T�3���#B���
L�D��4 �ٞ&�����Mb���޷t ?[�(E;S���rE`N̺a�һģyd�R�l᳕ބ�K�1�1Bޓ���\���rV�j����y h�_�A
-bs�Ӡ��c��x�}
+7�-�9/(��5C�ږ����ǣ��_:*B�o�������
��;V@#�������9�K�I�2B�wf��
+�g�!�F��_����F]w`~��:sk�j{�֯���Y��6+��rL&�,��E�[56���o
�>��a�=2B��4.q��2h����$,�PG�V�g�U6ǝ�u�
��n!cn � 	�x� <
���޲��l��G:\�K
��ϔ��JX��3͝Rz%�	ov�E~��n�A�Z���:�
�ѳ��������$XF�!�Ґ+�Y|�_M���
+6��?2��3����HA�.s9~��c�
+w��eA�_���
lh-�S�ν��V��5�Mّ���݈�{J
8'��ޒ�
�/~
��;#!F��f��ᝩM��mn�]Q
����>���jh��j`Q��1�':x�}��3���+��ו��]cnjK!8Ĕ�Sc}ω�E��gbU��=iu��H�
�LE��U~�[S��pP���#3���$� o	A�^��yg�Oߚ%fxU�*��
�O'b
�%�P������=9��3���5
uG�í	j������`�l3�D�42�.�G����]
��m
8�w�
ZGOL-��&~�W3�|���u
,,�"�9�J����=�	��PS;䙹��F�sm���]O6�W�^�"�o�փ7���	v��$1e�����P�Xɋ-��
���9ZɎ�Q����JV�m��Y@� z ��K
rd�}���������l���E&20���H�q��ƞ��k��0�<�zk�Y�ƚۘ��:�K9���,)ア�౲��Y>霔S��9E)0�V��7e�q��BV�
�[3���
�
�~-�pS��ޞ�%���C

w�̦
 [...]
��_��E��a⻑��uU�>Z���
Ү�� ��3�CUoUu�w�6fp�vP[|�eӾ�� ��o��脍��4���O�u"#�bR�>��*F���U�7ˀ8DZ�A�Qb�
�
�>�ɐ	��;��i�
�Ml����<�o_[�ݞ�{�|�k�Y~�H�t�)�C�o�ð���w��]����YF���1D��8�d���D�ʻk����Q)G
4о�^�1Z��җ��ғu�XG#
�x��QH��H��ͱܠ��G6(�/
�ȧv������!d=;]i�<6�5
���NQm��%����tsk�4��u^�q-B��K̓��ͳ
�t}

+��w���}5
���a��޵�m�`a�
3���@�����+
�w8��۲�n����|�i�6^&̸�9
+��] �	�Srh���K|�N <4���뛿�[�s�x�C#
�Ѡ�}:|�SC,Ԍ�>3o�D�B�)]F˹�V�滖—��H��m�ϝ3�L�)���w�
wms
�+����\¾�P|�Õ� _0���ͳj��F��9�2AH���w�@^���VH���\މAX���_�
��G���=��Sb�s�0�\U�[L.�J8ЭIJ���7�.���&�z?4�lwM��VP����+���;�ij�\C��vt���ab�GR��
�&ئ �>9$�).������P`)
y��8��Q�w�IJ=
*ǧ�{�
%
��簬l�u"p}_a�A��9P�\`=�t�
6�1��X
D�I�%�!�o
#�&p	���7�YL��("�4P�bc��K�J��[�Y�R�����k
�'�~�b�=�[r
k��Mr�H��!T���
Ρ��u�q9���?�촋z�=���:��y��U�w�`7���_�vZ /
��
%�.eA����#��}�~z�,2�qxX�����[�������Ի�/���S
������ʣ6���i���s
+^��/xr�>V��mn뎒Xn#b�-��������`����n�r"ֆ
+���j�����\������!
j8���3���
2��L�]�|�%$����4w�j�x{ZaӁ�N���=s�R����jl�WOu��C
��p��_k����ʟ.�3�w=q
׼�
D��	2�`C~Z�F���/&R��
S hu�W�/�|�
P3���/���sj�1��e$U���Pѫ�}��)ZY��
1�)~>Z����Q�d�67,+ܕb3�@.u�/
�B~�H	%ǚ�B at r��,k#�s�ԭIT�KB�Y����� /��T�V��א�|
�H�ជ���
k9�����	�{6�� �?6�����E��'I��C����gI]٣��ߥ<��Qt�ݍAT�r[Ջ�Ί's��[2~��I~�^R�=C/>�
@��2bK��A>��I_V�����-����Cs}�WK
\&�����a���y�o�o�tť$��7x��y{�|�H)d
f�+��~��6��X�,�c�Ȼ�>

w��*�����
�Ov� �.r�
�W{��|����Z �*�!�%M��M��C��ŭ$8$���J��
+�
�w�[������V`��KL�[R*]2l��pm�����Z?4jk�:�1S
�-ƦOr
�
��=:�KA)�͑
�rj�O�!:l�u�V�R�`ڮ��Up�-CN�[F-�O�c�k>��@>���&���Pq#"�\v}u�"dg
i�I���H��2R�j/
+[j/��Gd��Ω[�A�.t�^8%
ĉ�y��D�
j�ݲ�W"���D���l�UD�p�6D�T�.ޥ�ҿ�:$�15��w�F�f�U��+����j�W̩�]��WZ�O,-S�a�s�bn�xp��
j�̿��W�00��Y�d���7V_�х]��ݘg&_�}8�+|�3+7��N��3�ql�u����2�4�R��\u��
�L�C���ν%6���a���Y~����^��%
�}FP���J�c��o(�|F�ɻ��W�a���{�攋����c�0s��xM��"�!d�����	��P�n	<�1
�P4��Y�_�MT1�(N�#C$�H�#�rX���o����䚯���:&jGJ-�Oŧ�/66��|��
6�I?�
K���?�E��l.��dj�$oM��Vz�߬�������2�n{�Ůy
zy���Gȼ(o����$��^}�#��ز=-
+�KL�GC�z������p��p��m�oh��ڶ��o
��2tW<�wU��
a���Ĝ�?=S�"�*|I�rq�{�ؚ�xu6LL�8��{y x>�<&��W��4X�l;0�BM>���5�n5�v�l�s�sI�y{�=��A�OC�k���
����Y@]#����5-=��%����C�4�E�V�N)����m�ʰ%�Qd�O�
X���Kl�W��:�N w�����}g���*���T��Cm}˩��ѫ`ծNQ3WD��qz�u��m�����	
zuWADz��l��&zu���Yp�6����Q�
+�K򉱮aG��ݑ�2�2h��
8�2R��-C���x�QV�n�yG�����*�f���
̑I����5i�x~���� ��i�|
+6ҵ�D�H� �����|��l�<)�5��׷g��6�3���� ��F�����L32�/ΒR/��Jۧ�)�m�/ͽ�d�J at q���K
ꡩyħ�or(��V@�WGk#��1�򆬻�yh_����)&��+
�@?��\��;	;�*�0�gR��3Ɩ���呢S<RL�}
+�җ�j�>�rv�����1Sސsk�>��j/$𹁾�[��'zl��l�+���
��o����y��yH�w��;
�p�e� ʹϣ����D��
��Z�Q��\
tVX��wcC���^�3�$"��� <��Z.�5ŭ^��ee�Xh(	2!B-���(�;�F�SA*q�c2�
+&�Pˡ�.�GF"~_����x�G���5G+����V���X��'oL��ʪ?���nD\"힪	e
c��k^��B.�	175��k�P���us
+���cB�M��E6���*b����h�A�HU1:i��y��6���j����}� ���<�����IX�G���%i(}Ջ���2 � ئr�5.11�<

+�<�������_�&W����}�:������21�˂F�P��l䎊
�h�&�g��
���ȥY�����~DƵat�-Kg�2~ƟK�%Q���!L��<,�POC� ߽̠���=5��1����Cc}Ǿ���.�a�1݋,�]N)���
{��&�~wl�ie���S�ž�G�7wi���P߼�a�Z ��>�(�o =�t���7i�E�r�9�O��ƒ7*��v�Up������8�"�\���4��c
+��57���,=UO6�*^X�K�zf�)�?@��J{��׼R<ȫ�r(z�

-����(l���l�(&~u��oL�[J,q̠�ֺa�%��GӔ����z�͉����霮��3�N^�ͻc,��jL�:�zwv�~UD����_�
��o��?onc�yD��=9��P���U�&n�*�9f*��*�X�"�e��C��?F*����^�W�{���,�O��^lLaR���W&hy�6����o
-y�U��˓��?Z�o~d?�n��u[�)z�)
�j�*y��U�:xb16�5O-u�Q�N	,mk��=��qw���S+����
Qn�m
�[���$�t�j�
�x������/f�P����~@�w(%�)l�� 2�:BIr9�<?P�G�aC��c����@<OЋ?[G�k��l�*�@0���<��!�&
+� xm�
+W(n�>�Jyv��0��Ȏy.�+��<s��
,�1
+Muϡ
D������kc����ls?.�2��ܘ@'����!T�[�CF(�k�z;�+��V64���{�,s)�%^ ���|�W+.�c�T��P����:C/����i�����"��;�����}%���t5���
��9�=�i��d[��ϕ�ا+���
䁎�3
��Ō�K�^x�{Q(�]�^�'�I*@U�Z�9ek�	r���9X��2���Ե�m��/0�ʥ�B��t�'�'l����|¤��eW)��f�E���a���N����;K-Տ��%WA�A�#f��M���uY7d��
��ʠ���
18�Hͬ�U
H�axRM��,mU����z�b����:rl��
�� wl��r���p�#/-��d�˩e;�x�)�܅��k�}&�U�P����c�|c䍶1��UT
�:T�f���]�J9�:U�2V�ZVW�p�����c�#��GZ�'�Bvf(��%�T�"�H���YH�_�/ܕb����q�]v�� }W�7�A�
S�i��شT�
=��Z?.��U�t�.��<-�"�>�>�H���R�z��y7����uWF�K
g��G��B^o��>w��M���Hhe+C5�@�'qGz��H@
I�S3���L�{����&����=���
{�����~��9
7u<�s����?�Gp��� Ec�s�4:k���|��� �O��r6
���è��iL챉A:6R��FR�P�o$Vy�
�3�/|����Ʈ���#-���]E��Ų��>͓c�,�e>���ߗ�
+���
+��䁡ꞧ�%�,s�[}{ٟk#��ms�aN9�lGA�{5|��,�ܭ汼K|�K䈚;����t�m���{���5���Ą���"l��=ա[��o�_�n�D�ֆɋ4��H��
����
L�[���k�`w���X��LÐO�m��Ș�%�Ц"`m*|���e�U4�MA��=��9�5��O�J2�<LD]�6�����3Ұ�+�W������dm���"�1��|�,�|{��hj�>�&e��]
�sOMԏӨ�
;"Z��>}��z�>\��R��$_��9D��4>C�O�
!<rM�I~s��k�q���~�LC�i���O���I�zLTsE���v\偄^��Y��f?���
�DIϿ`\s��b�Ɖ�l��
mձ7}
+Fu���[���
�<��'_"%�7��?��Q�܊�ܰ��3���o6��5��=@�Ըb�@�ESƕ�Ѳ׻JFM2������oƆ�S���H��
+|�w
�a
��/wA�˛ �;�Y���=S��~�t ߛ�1a}Ą~��͠���o�s�#����j��xň��bŮ
�}�&�����v?ִ?��>�h�v�c�,c��{�ϻt��##��tz`��W�A
*;�}�֎�V��a�ȿ�mȼ�f�ޕ�Ke
e������k�hK/*��V�|���鷁��]���
+rUM����r��I_W�
�3��zi_Ϣ��^��[D�O@�3r
�S�_u���𐍡��8�H�Ȳ�W�ꚳ

#BZ��Ʀ>&f�:'fg�=В�z"�P�/���:��
B�S�#l���}J.޿�%�.3	�r_�t����#����Y�5
5!#�܇���_Z�Ch)
+9�^
q~��2�/��6�Q�
u�ARv��,��c	�9T����##�:@>Z�SL4��2�nS�
ݥ/��51�뭲���n�"����^#+0��t����k3:aQ���$��s��fN{d�D����H�
�"���6A��B at t��wf���IF�f.j�[pc
+F�H<�)���3�U�X�+���V�+>�z
+�V�K���
l
�|�N3J�
��
+��gd�=:&�o�q�Y�X45

h�u
�jW¬8�sje�z.z�
����/�q�����?U‚�rn�5����J>ѳ ��U
�u
g�E�� kp͑{H��F�"n�SJ~�Emkiꑹe�)%��
�B�E��}%��PC(=Pc
+v��B];���0&�H��
��x�
+�] m��?��tu�-iF�oG]�����3k��M`#�t�|�W<��Ib�%�
+�ZnP��D����32,�+��0��)�mg�]Wҥ�����

���Y��Zä}����1������g�����)�S 
]�/�9�����lO�a'Kl⑜ݛ��oW�α��J��K��;Oq�Q@��� �:�+��{�i^)6�+%����`7��� 8�Då^� R�J\�OM�~5�w龎�
��5M�,ԃ?�*��Zr{�Y#,�#�^�}�4����9R
	x�
l~�����
!����
�¢��Ց�J<pl�0�;��f��	��P�P��`�'j�w��)x��.����oꦒ�M����
�܋J�>�J�u�
���xax�/
ШK�U��xyO�ů�
]�8:��m1	�:��ޚ���iI�V)6�<V
l�������l���1d�G��
-7

���O6[�_�}�+�1�Q����V,\�Z�tm���[� !�᪨���Ѝޢw�Jzs� haիYF���~
���{r��ȸ_E��?�q�1�e\��_�*^	�?�i��<�Ǥ�fjc�Yt��A.Q�
���ա
Sr��垘���GZ
3p]�@ç��4��<9�=K+з���j^̳A/���g;�b~�+
�u�t~��wog�6�;�/�N�ӷ��;r&ī���5d�S\
�P�~e��p~���k��W�	n�O<
+f�_]��_��s�$�
�U����
��(<�T�!
��d�
�h_ť쫄L�5k��K-�/��Ot���k����If�������ss���d���)P��Tu�/Wz��{u��K��G�j����٢�쑾�~c �3

?�0��{lxCM�a��#�e��96�s�
��#
"
��Ru+�55?��\��}
��)Ʀm�T��ݑ0��`�>?�K���8��>)"m\P�Uy�܇*ۑR˵
���!�E�W4���W��?�%T�s�'�>�Iz��5^}`^���C�W�s
��Cs�3%'�����w�̧^9���:E�h�4Vѐ�VDH���g^[j��H�yaI`�@�h�ok��S������/��
 �}�Iލ�qT�s����e[��;sl��0&Z�
+Z
&$O�ӯ��|�q��ys�����0*��ʬbR���&��<�,$��w=����Rd����}�:ew���ɹ
�A�v��k	���6��:\�[��ҡ<��u
�px�:���/�Hj>�.`
�
+dy��'�܀�����@�?�����s�)&�+���P�gxEo��f_f�~83O���C�������6޹��y/>�^���'ɗ�Gk��+^(9.6�>���_ at dy�cS��#=�J�S�(�.�	{�:��<��!���Ʊ�+ _�j���$���
����惊��r.�xY�u�Y����3��KMY�s�*�,��:�
+����l�tN����~�U��T��=%
|��\bb�w�x��4�
��3�I;��j�RB�� kֺ��Ij���R�M�c��|`�;��h�1Sf�E�k^�E���֊�㘘߅ů�}<kj��s�
�=ƒXF%C��K�.R�c�_eEǸgP��yB�66�@x],ҫ�C�utā�<u���ԿD,7�T�R4�=ڜ�䜮�������ڈ�AT�� &^�+}<�L��<�H�%���[Uq/�.4���s�y]�	;�L��ܛ��p��?\���P\��+����,\������>��7�΂;J^�%%/���,)�r�
qϫ�7�I]S��I\�\�߷=��Җ���"������?q+#�
�����y��2�:Q�lm0��[Vsj�kq��)V�CU]��S#7�w�S�K�"l�m
�y�����@�
)����WT��:�>{=�
�ƙ��?��
+
�!c��~�{�9�ۑ���3�O{*ේOV���1921�@���:�d
���0n���
��+t��*��d�A�kpy_�)�c#f���
r*h{���1P��g=�s�nyf��-#�X?����ua��s�
�p����RA����u}黟�i���i��32��?F1�o
CB]�O�`!�.5�>����E
+d{�:I)��x�]-��P��U�H'���8.۫�<�̪�Qt�����"'����4.��J&��qYL̼���3��Y�(|��W�
E&�z�!�����m���S�r���v��=R�z�9���,8�/=��/E&9Gj�,��A�i�<�#�]�а����Ι��
2vg���`��-�QV19�>�(���*�-E���a?�!�~�%�\V��K�z�Yہ�ǟ]n�z�k,{7;�����������~�:�F�)4][�����wv1:iu�ɧ&��i�8�,��<�v�"���]7�u�߲�f��&ȩ���w����!A�F&�8v�s�]��:���.�?�d������>x����Sc,�!�ӷ%<��$&Ϳĩ;^4�ky4�4!O.,|��\�D�
~�Sr��+MÇz.ͫ�V8�h�Z����f��m�ٕ�B�{U3�`o��u

1�I������������>),
���Iz8���m�WGj2拙EwIQ��jl����9�1Pnc��W�ו?_�%���8s�LE����-�m��>y
�Q���J
������hю
�3ˊ<+��_�6����zo�-��B
8�
�� f^����'fA�[�)r�C"
t�]J.���6�.
�7�(x�v��}��d�~���
+��.��߭
?�
�ߛ'9���ʛ�ä�}�jWZ�({�>)@(�Aw8���
rn�5}k�� &T.,�3P��k8��4�������	~j�~t�`ҍ�P#�e�6�-!��g��۳��M1��!����u�����s���S
y�E!�1K�_�y?������������������K�O������j$
��/4������ M}��QL�A�럆�1%��ۘ��?mt��
+����gjn�M5?�^ȳ�{*��k��,?�^�ˋ�(|�_>1��蛁�8]���Ĉ\�p�;so�=YC�=|N��.p�r��)L��yb�U���,)�PN.֗��LK}������
'�	#���ؠ��K?���&]\�zb�D�٧*�m���E2Կ(��*�%�����
�LM��,��go�%L�m�6�=p����+'�X���à����!׷�F�0������(e#*b�z�i.{�1X��5]�4�)Ǥ�8���
~-��1E�q/0j�rl�_G�|Y��X�.ӣ&���ߵ�
�3��49gc�1
ޕS���u^9o�eUX�ڨ[c
��Z�r��5��(.��� "�>�*�J 7�
5���
w�t�SF �Ę��A�{��\�Ӱq�;�Q~���3v�
쾜V�
+�aS��0s/Yz+
{�0�Z6�4���T���E�3�D���R��W�kBms��=�#��H
.sX^
�u��u�-
9jǡ�űJ)5�Rdk��iS
+N6�=Z}���17�����x�#=���	�"j�-0�p��
d�(�o
ᖩ[`ϔu��Rv�����������x}?:x��&��SW���V��C��
%�;���s�o��~�YH��\�1�XG�/�5
��v�L�"픑�|K
�V(��5���
�<��1K/���/�U<W
n���.��J/0�~�Edݛc�����0�
+�����wݰ�e�� C&�؇����)�|��Q��Y�
�s������U����fh�j>Z�������z�3��Z*{b
�2w<쁾����uS�!vɝ���#$�����X_�`�XpK�ɽNO��c���H}t��o�|' E�����w��gߙ[���V�ds�챮%�q������Wg\S5�k���qr�=]s�'��
�W�ЮJ�����=P�x�
q~���c�Z4�/|g
�ɶ
�"�[*�7{!>`[��h	7�z�ÿ6ii�V\��
���Eγ�o��a���2����|rX�jo>���>%����9�qe U��e
+�XO}Yf��t�a�l�#Rvet�k�""F^�������������q����(��1ůq�H���ʍQJ��8.��k�p�!ѻ  ��3����0�B�
���qX�[p��K�-Q��ٚ�
�v_'�
���

��O�3�*_j��&�B
bl��
9`�
�
9om
����_V�����
�"�ӰX�`16uo���)�<02�@��(�~-���z.����
�؄}
g��
+�u
΁���b4|[fӏ�� ����"$;�|2����Š��
�Y')F݂x�>L�4v!?��_l��^����*���'�C�"Co]���k�d��m��Y�k�9gQ)"�4V�B�[�f_�縁�p�YP����9d����h�e4����"d#�]rZ��81�.��K�7�qg� 	?�YU�����K��ϣ��ˋ
5��y5��M��V1�.��O��[�
|w�b���W� ��D�$*�-�� vZ�#���Q���W�Vxخ�����u�_��T�%$ݞ��)��C|�Sdf̙�ڒ?��ĸqj�U~���h)���ǿ�'.��O�ؐ_���.��o�3b��#ΎRRn��_�6��<7M��i
��>�R���>E*T��F�
���諑�t��q�S��5�m�Wd��+#�<�%���b(�p�
+��in+��g���x���_3��_��H�eQ�~�$�=��`3l#�����(�t��)Z�ݖ�'?�艷\ G��΍S������2�֯��窓�y1���7V�k>��S_
�c.����Ӳ�o�#�v���8*v
(9#'h{�6}g�G�v��7G���K�
g�툙`�
!��	����� ����:��i ���W������2�tL,���>
���RAރm:�Ћ*U4VDm��C��k[%ϼ���Ģ�q�g����D��:2�!�,w�>�� �����yB�M<1�����8�Q	n��PϢ�Xܯ&���*���
+Op��e
�p8�k���6�
�䫙W�o
��PA._�~X�=]�~�1X�ak��ӱ�
�
�3��饻
�,���:NL2u�?4���0u���
BG���R��-=�p�T�1@?,
+3.隲����W�����^�S��>]]�~
�
�D�Uu�qi
�74
��C-�R Sv �ؖ�2���
����QR�r72D�+���]�nk����W�f]�
�:%-\��
+w�j#�]yw�;�on�T����Ů�2 �h�����8��&&��"C���_m�a����/�tk�̙dZ2I&}�{�1&&�$��{GŎH/ҋT@��;��]콥�̙�s��y��7[�ﵮ��ֻóU{>~?��.���kvq�ͣ����
fFݰ�Sl�#�sv�����9%�ą���n�	��n
�դ�<%B�
@
�Mw��g��ꛃ����?!�N�ۄ�6Rʗ,m�Y��l���`��
P�a���P]TH�7�<�4n|�i%U�z�n����XzqŌ�޴6����o����)`	?�6��Y������62���4�������!���

�C�=��(��y3*�gj��#ݍ��X
wG$�ڤ��e�wv
�?�����'���
f����?�e����H����ȣ�́����Z��oz?����]��?��IQ�
�$�>��OrΫ=?
�mc#�
+X���q���폴�Gt��s3�Q��X�yo�9͓~���
LRI�>d�
�>,���!d
��b�0%q��^�qZ�X�cn�[R��]
�x4?P|����O��[?9ى���[������Ӟ��׼��0����Qk�O�oyP�����,PhӴ6B��ǐ�gw�lD��d���t��߫��Y�_G��ꢻn\C"�����xa�6?�]�!S����^t�?G[�V���5;�i�¨
���_�q�7�G4���2�
+�T �~�ꮋZ6�!ޮ�G��������~
+��(u�Sv�tܜ�Z6>Ԛ;o�Q��
�ZA㒣����3�-��
3&瓏P��Df�رy;�6���Ǻ�(�g�uq����~��OMt����p(K66vz�n��Z��i)����MP[vF��Kfd�Hg��e-4��R1���|�Ɔm�٨�
b���y@���zi�u��NP�GٌU
;h�<~Z�J[�ዶGȰ%�nd �zX��
��UkVI��܌E
){Z�Od��ަ���̋����^��跊��֒�Abz��Z��d4N�X5a3�rw���5�m�&AV
�,�34-YY��nj�^���6r欔�E�b/p����[�Ɗ�Z���E-�x�@.�ħ��0o���[����
U�3��/:腷GD�WS���I%#��-��ז3�j����&��3.{V�J[4��Xhu�6v��m�~a���Ŋ����:)��;�]ycF��RKʽ�Dd���*�/�(`��VИq��+�[saK��u���'S}ͯg�-i�2|ꪝ\��4�
��V��ʃ)������3��z4�X
y;o$مF
,JM*��f�VL�ʯLw�\�1�OyXY�����.pԢ
W2m��QyWD
�� �*��ݜ�n�����3:D�.�cvB\���}�(���-��v׿�����@ �&��
+n�u�=����
+_=<V����aR�����ϡ֖S]b�3�
��~��Y�Ҧ�4�p/&f�F�=��Sk��ч~�H)�fgW<X�K�4��>B�%k�鞇?̺[��VMج�h�& ��;;��٤���SH !�J4c�r�u�#��K���55�׍��Y=�r�Vq��9��XgcTx �~���Ѵ����
���e`g�̺	
�p��F�a���I�
|�95��j���y�%�nL���<e�ehy�gʖ�
�j톙
+ްR��~*
�Ŕ�a
}\G;��b>�1�_��_�9�/������p�@�[�RK-��1)�Ռ�����ǁ����k=e�k�
����^��
'�Nǩ�o傟�
��{#
즓��aJ�9
+�
�K[�6�
�
I�_N)
+
�>���a2�S��<� A?��7����b
��	�J��e
�Æ
�=��R�^/YH���?��0Q�ܫ���^
s��iX0�-����
+^�S!{~
+�`���	���N����s+�e�?���Rgm��e+>oY�H�r`
�<m$_�و �f�b��91u^ۚ7�!���[?��i%�^cRK.�t�_�����I�\2�-D��V�R�t���5��)���^���Gj:<��$��FY�e=�a�Ϙh��
d�C�yX�˳ /-�p��f\���T�l#���-y�ARz��l\��y;����\�%[k���l�Y^��H{���?���{�x�����
+�~x�
��qV�mmNݴ��֬��u$(#5
D�S+�k�ӻ	pܬ�ꉝ����x\�M���'����z�����3�Q� ��X9�=�jNM�
I11!�����xLE������#�kO
��W��Z�c�7���a;1��&��d�B�P�i��]�Y
�6Ё�_T�7��5�F󈊒+•^�Ԥ�>�C�_2�
+B2�}W{�����{��֊y;����`�

�V}LԲ�Ѹ�b�W�,Ē�Z�f��,c�l��?�iXC�f 2/Უ�n��[v.v�ʨ��Q�W=��y�>lc5�{���1~��(p
�0�s�Ci������Lܶ�_0r��P1�zռ��
+�����⪧��~:3X�d�glx(u������7Bǭ;H�P_��,�Χ��7���i��$�F@$��K�~9<���}��4|�nW~
+�[���-OSʶ]� �l{IU�2ȓ%&��(	��Õn�	���w&W�ji)��Ǭ;�M;��EO}���n�OA��/ ��
�ì��%�z��m^��zG����ު�W+d�KE�{I�e[K嚓Ҹ�����(����������!j޼�V>c �ϚX�Y��5��L8uv!�݄I�2�l�_�K&bٺ�
+�
p��ۥ{�6�����vw�+Z�Q![����:f�I�,���Qu��D��c
+t���׺h!�l �a�N/Z��E

�9*�[�R��y'�a{T(��uo�a+
RM`��~TAL�<���k��k�c��L��`�c��$_�?��
��sC�6Є��"l��7="���H�dBgΩa	�>h˜�9zV�|���q֜|��HG����=c�/���5;�eWY��}��
+|Ғ�ٴh�d��{%[�6����$W
�KsJ �vZ��o>��ٷꕨ�==�!c!���13&�x5�NzꌌV����t�b������j\E)���^lLp�%ifXkkݗ`o��i]�qS���I
.y	0������PW],䦛��g�V���ae�c;4�́�Lj��@=c�@�h�
�u��F��ȿ�|��I�p�πowtm��c�W-��ym}̌�����\�_A)T����* =���-<>�����	�
x��nr�6��a=�rZM�Z2a!�g�&)�O�
ޢ��
[y@��X+�
��S�;m�c�
|Ҳ�C�8J'}P1�i~?oĦ�٩�[
z��R�4� �/i�Q7�ο5�kx�it$�6�^��Y�#bՊ���
+p���'��9]k�N���1إ_���{I%w���?�FR��p�`u��Xa�'���E'�h�5/��

,X_�g�V����\����7w`C����
���	�Z=��sC!|��
��h��o��� ����6�ۨ�3�έ)oc�׾9�1�5+4��
+w'��U9g#�BR^H�k2�ZS���ޮb;��n�1�a+�f�Oî�Y���R��#6��1eS츪>r�ho�z����Mp;�-tX�ּTز���J��F�X���0��lk�����{�Y�`�C�[
a��Ģ%K��O��σ��P��c�[���BJJ椆_����ˎ����{~
s��ĭZh�����fÆ)\�vu���r:4�Be�;f
+��,�3*1.�y�	=�xT���IXi���Xt��6�΢�N�
�z����; �~&<ob�N��QE{������}
6"3-��E�n��%L�x5��^��Rr-����=k�d͘9M�2dⴚV?k��
:��_�uw�g/���F	cY��[�Szt΂�����q�OG�}kT�Zs3�Úּy-�l�Ek����<��%;�1���͚Y�E��:� ��
+knnZ�uk.f��Ư{�%�aBC����[ 8���dӶG)�EWK銇�Z�;��v����j�f��:���h�-�Xٰ�

�m���b��m�X���Xa�V�
J��>��e���e�ՆY�1ꖬĢ9#"i�0sh����
x쬥�3�
���x�3��\{��G̘{�s��
k+�YYv~B�#lL�T ���tZvg:��lP�e�z����7AFn[�sN{��'���+^�~��'6�z�;z���$�����Fx:��(]�H�G��;Aa���{�O�o��	��ΤĻ��lMЩa3"s΄)\�I�V������$�T-��@/�Y�7>i�b����)�ck�Ӵʗ�<ތ�P2�d���=[@_o��6`�V�-��aL�n���

m�$�I
!w�Dn�vm���;A5l���4��Ywk����i�ٵ�׆y���v���cg�ش��W�]�������=f�`�<SEn{���gUrڰ��am�>�v�R�$�Sj��7�8��EF
�H�4֥�	��+>nk at K�w*9��A9� 
����D1w�Ơ,��w<��M/9g�ֆ]U6Q_��+M�r��X�]\i�?Ԕ��Mw�|�-U����cZ�)z�+
��Q��� ��t���Rfx�3�S[�2+S٦�������
R9�~7�
5���`
Uy�{��!
�[���{�#8��
�}��*G���V�x{:�g͌�)=�Â�T���W��
Պ��[
��hTJ/2�)��TȜ�
;k�b�\|�~H��>�iz
��B�l�>ܣEoW�� �� �>����2q����v.ۙ������fi�K�ֵ
�O�2RF��3�&o���%�8gm�N酈a��f���ZprQ
vZ
���g��2�Pg�Y9�U	其��2��b�Jk�r-�"50�=VF7 [...]
+�X�Ze��^�
~���N���A}���9a���:�i�R��A�ъ�]�����•O%�.Q��h�u}�C4���]b��dRe#
�h
)�x�T�V�h��JVэ��t�;Jr
"_�Դ����Ĵ�
k�0gd�W6t����9O�z��'0�e�J�.W�s$�1(�:%�j�,K�M8T��{d���X�ϰ��Iַ�B���
�%��
��uBI�L]��F�f,B�W�.�˥�Ԁ����~�+`S�H��tG�X0�$`ٳ�-ꨪ��
�����SP?=|Tx$�j��/�OP�bT
w�K<[��vGХ[|e�� k:�r�
}�����a���ʴ5��
�B
�1+$c�!����^��|� 
+����!)	�*��i���l�tl�t+>N
+�A��kk_�Yy{c
��n¥ְtq� ���j���*-�1��?i�T�um�����Sr"酧K��#_10��C=�%��9�d�5Ԓ1<~j�
�
ix.�
��C�
��nN�Q�W4�m,�G��8�ÖF�=.I�*��-��U�����)�gK�����X�kcwo�Ϥ�N:����n[p����ج�Q ��À	�ų�ڨ�\
U��#�c�-·����J��lƏ9y�o�I��{#�Xia�)J3�N/��ή7�[$�Y����j��M��)
��gV�u:��OU&�TeK���.�I��e�t}h�R�j
+�4��W���g@/��]l�T]�3c�
 �p��Ѩ{ւb�*�Kvǹ�_���S춝i�ys�Ƕ�����X�T�bE�����
��
hqr�8U%&Yڳ,���qs;y;$���]o�V
zY��9O4ƶ��ꛔ�P�%X���
�O��eq��)~��
+
����^��\��������uuf�b�U�t�z�fX"�#�pU�_���HE0��k��a��m�XW#�V^�u
T"=�_"��n$(���܈�$�P��X8V4�+
�d��kӵýzwp��e�NW�Y�1H����f�Ŝ��_�J�'�+T'
+���"_��\���{��[R�Շ�_�?�x]�sY	�<�ﺮS�6m���<m��
��*���X
G,��zJ�-f�Y�|�x>�bx� 
�a���p�բ|�/������ZlDFL���,�-B-%��e�L��g'o���n��C�>U�f�h�� N,Et��Ľ+$I������Ӎ�\�-�@rGV�0~����ZU����������s�n����R"��� ��D'�:ُL��-��A��Cr%�r
��
\?p��Qu
M���ל�|��ɓ�c�����ҟ>G���q�jvīDʑK�k#�^�b1�'}��$�Y�3���rp�^��M��ut������F��z|R�OO�VK|����\�[F���7�)G�<��xO8��:r�NMĭH|D��kc��2�E�X)R뺄�#��� 9�9(CIzG���ٲV~0�o�UT!�P�\��X�%%���a�b#��ɉx
�8}�4�ر[�n�
׫.�Oc�v�aՉ�+�����Q��D{ߺ�C
��<:C�Yg�i��{��!�X��F�Mf�ZLw��]B��9
+�|
������L��Ԕ�3�����%� ?�f"�Z���RMM���f��I��95��Y�?$g����]sĵ����yq�n~��DJ��Ј��r"�>��щ�'�.
ȫ�nr����T���N��*I��
c)��
�[��K)����8XĻ��ټ�I�D\���8
\����/���G
�D�XQ�?+�4:r��E̞��ģ�^�Q�	��JZţ� ���b��d~��Db���xr��A7�WG�&я<~C���)�f$""&�w$:E���7�c/���@�����igwnj���{�<Z�3:]������ZF�d�
�
�H?����kZn��{�*#�D5��>��cB6��ɫY��xq�vYĽLę��G^�ş��������3�s�*�
�iZ� �-p��%�`�l����Y��ڀ�V�`�#�Hr,.�},5��h�[̑s~�x	���*����#/_C���o���{�vd���
+r{����,�
p�� Ź��-?=|�9����!%�������Up��kԑ��c�	�?�"
%�
�Pe=�]��
A
��[�]C����ju��o��;��I�Ε"{*F�ݮ���w�
+r����G�?���
Yq�i]�Ӹ��O�G_�Ȏf�X��ZǞ�	C��=^�}H���f-t�OAHR�iO�4�sV�hY4��/=˫P��.�u
�b�G��"�<������:\D�~č��߅���
�I��_2�W���$|e���C�7���&J�G�Y��L���sD���Hdv�&�\q�J�������'1-?<�#
9u�C���
I�j�).	s�<{ç��f��F.��ɍ�΁ ��=Q�*�ME��"+ᚋI�m�Ʀ��E���x�nޑ�O>�����7�9%m���z�ʻ��n��8g�#�jr截5˭f�

6u��B�
�8��}F�g%�q�u&���<ɉ�)���U.�5>Gt�i<����?jj7�x�#U'��� -uFO�X�S�a+5a�4��T��3�[n�0�NJpTk�l{
+#���֨�F%����UÏq)��I��iE�Ӆ���%���&��y��q�$:ؒS@	ۚ3���N�v�@�S�H�g���H���y
'^$3z�w�Q4���#��FD��D%�".=��8p��d~Db����F˝V�3פr��ۻ;ƆЉ
�_�*U�
��_�쟪�H7J�3O*�lgA
���Ÿ��(��t�4��3h�ջU��DD�A
I�
-,��FR�r�u���
vJ���Ҭ����[���9SD�Z-��f�+P��E5�?���/6bt�S+z.ދ��
� ?���=�T�y6���NIE�;>��1Æn蜓Y�1ơoO��[��j���5�0%�r
+K���,Df>CwK��fUt�L/a��.eހ�m�!
{
�a�i��uC�*�N
+��$�9g'{JOΟ5�Cږ�a
�H��O��(Jz���,�:���| �[�rk���f
+��yM���5G���
K,�:�X��G1���<r����̰�Gh^��<�#fO�k_-�p��ü�������b��“
״
+F��s�kp#7*���9��o?m8���W�l��!&
z�E��e�
+a���[��n�Vl�E*��'3Tu���\�=�ε�√p��a
Lq�C���ܹ���j��1��ͰK
�Q�I����3����.,��7F��*
Z%V"�Ϧ7[`�
,�DA3�]� ����p
븄n�	C)�a[��\�:_!��XzAa��'���+6
��y=>}�В��blr^�A��iT���X֣-w[J�
]
���
#������d/y|I��G��۟2(�T��:b��G��HG��e*�F�m}=
���j�kt���6��	���c��Z�}6.�y4���ח��c1�?&px_��SRy�ɜ��'��w�2X;FT\Ȧ�
+[r�ʗ���(�<��$����bqZ�r
���qL_
��~�Ht>x��8u�F���7
"^�"������Ľ��﶑uo��~Є�5kB	}�d!����y� ��*%ԗ��Z��	�X����L
j)��bM:�˛
!
�j�soaȲ�,�
�;�.꫰�А�
�d�|������~�e��t�|���b0��
�!�f��D%�NW�t��I{3d�j�R�h����w�M�3ZZ�tR��
�b�@+���P�
v��Ax��/���5?��2�gO��4���A+mM�rj�H��{]��j�!�����@��!:��i�ݖHh��cv޷����r��a����&7�8��=����v�ޔؽ8�3�Ȼ՚t�b���WW(���:}9$�7
+�j~��ϤB���j�s8�ۭ�a�V1!�§;��-�7�-ŁAbqH˅���Ú����ң78��U���P�5 2�H��
+U�
b�
���IA��bȲF�q�x��vі��Q��դ�=���e '��R����,��:I�6�^�

��Iz3�]�d� �ĭ�y4������� /��5/��7�e�qv=��	Y靐t{�HșRӦ��ꐹ��L�-��N�O�V>$j���7]ӈ�����Moӈ�^0�iI�;ٛ.�u�˥}�
�

�K��i
�݌�^���3�{�t�&rX�,r���6y{����H�>�&`�_��(�i����Ix�ƒĵu��D�}d��q��cӧ��9��E#���p{�A�s�p&�����?t�+n�{�6� F)����Z�y�:������Z��Z�$C�&h�F
���6����Q���m7�r�Ef�g��ߺ8)����
>E�、]%$V?k�N=02Z�Ǻzǭm��!J�YFL0����rz��į
�x���;�&���f�ϣ��!|���yۇ��ѷ�M��:�m2�����3&n�;k^>e��F����
Rټ��t�&@N�d�O;u5�"�z�9skъ�\���-hcg��������"���w��֚9�*�F������q�pz�`'��۩�k�y.eK�[�V<��$L���Y;�a3�|�
n�Z*�\؜��
����O�b���;�d��
+v�SA+�p�,�;�]P���5�8
mPi$��J�M�/�[�Y�\�^��
�k_ٗ��w���zѕ@&yA��,�)���#�%���U�ů�Q 
��R�nY$�ρ΁�Q:q�P��?ZP�����V\֬��iͿ=�[��w���g�8���l��ab㚗T=ggԮx��s�{!���eK�
2m�O�������a#>k�΀
�ѱ߃������L"&���'U��a)�͌�X4�����0)�Nb�a���~Aۜ8�����Ŵ
�fJMɟ
D��91E��xZk>
����ù�e�~j�AoX��A�J|�W2;�J
�5D���oBʖ�q�Pw6�(8ySr��C*_���.bゾ���@�

"�����u�]�-$T|=̙�B3�j��8���6�~��Ys������)���I

l�D��30�֭��5K
x�Ҝ��Ƃ����}/
+\O�5�z�R3�E%�t��[�ץ
1U{����
�诋
+�V��4A����e�7C��9Ecž:�߱�'T�X�q�f���A
+��
��傦
w�ޘ;�0�ֿ�u�
+�5݊ݙ��M��A5��`�7�f�%��V=��n{8�7fz��ٱ���i�l�]��Ê6\��YU����һ���3�����@�;���k�)�8�o�<A�~��ro�\�ּ��̽
�,�
���<�=��l�Q�_�����r�O�����yUǏ"�FX
z~0��5Nl�{���0Yask٪�Ҵ?!
ڟ�r�O����X�'�fR�J��VF:|]]s.6|���,Y�u���ױVܗa"�
S�uW�mI�ﯸ���e ؟/B�\����H��m.ga�<�B�O)_Z�y���m���eO��^�1���ؒO
t��P�+?㒠��Q���������5M�����K��'�6DꮛZ��e���I�Kz���'��j)���rV�/�eOV�=����t��/#��O^B����r�M�Wֿ��mx����ݲ�&��_�t��/�P�䍩�Tʚ�1zR�w~���ϙ�����s4�4;3���P]Ҷ�
+��Ǧ���i�
/ֵ��m��=+�CX^����=�@�
�2��0?�)�u3��Go
hdž��6�R�\Ċ�
��g��9����������lL޳�߯�b�����^|�G/�ᓇC�q�17�
xX�LY՗��vե��p[#L\X���~�s᫖5
oC��[c��[;溸]k��O.l!��U=2mÊ�����
Ȭ�~B�A�ݲa
7
�}{s�����3Kck\��h#��
/
��ĂVM��u
<e�ܜ��Beo�੫&�yu�� �я}�B�v
u�gA[��v옜��9�oS,~X��zI�H�s3[���o�);zhʎ	�aA����%lX�%;Nb����� ���0���1+ɽ�,/y>�[xo^^x�?
T�����U3<-<؜��ni���
B��_Ǡ�u[S�����}�I߲��'��^�dE	�.d�A�N�6��lk�o�ѓ*�57
�e�����@�y���2)��T�]�e�а�%��xZ�v"xg���7��Z�
fa�=_P���(���
��؛S�g���6��l��Һ���7�ͭ��>��5;Fbޞ�P8���x�������Ѳ
+�ri�1���tB��|�����X�e����R�
��N����Bd�ب�kh�� �Ѳ��᾵1��p�d}�LŪ�X����^R�g_k㲶&:ܟyqQ�s�P�jdž��w�w��5]�
+�pԦU
<!,ox
+�����c]�צdUw�R�
h��%,aK�f�7��!�~�cN�rs��e����'���~hʹO6J͎��p]Ӕ��(~���ύp�N��Jnl�%����=�!	;VDꪪ���`�e5$^C˼$��
ԥ�
�r��	ਫ਼���ċ�=�����>d�g7�lφ)>�p�r1�6&�� �W�Դ7L����^*�]<��~2-�~��n��1�*?;�����eUd�3�Z���1�/E�R��UpiFQ���0��{�Iܳ��v,��;fp�����
�~�qx�#5��'̫ /W��I{>R�W���x=�Wzk��������	r�P�fE�Z3V�����`���k�;���ه�
��]7Cs�9�
[Kن�~u��ź
�i����?�[���+_}r!2�5�_l|�g���I�"׆��#���1_���%UE̔���?���G�~F��z��L��
�mGd|
Ɩ��p�
���_�1� ���dPw���š��	I��-sm��0��e�I�>I��b� [...]
+�u�W���M��Lj�(�E�&؇}��
��ƕ
� �@	�������#���s��:R��2yNZ�dG�Z���$�i�uU�<^��
�}�i+�0�{��I�-+��{6T�
����g����孉��iJY����ju�j>9p�+*�O�w}���C��G��w�?��%��j�Ĝ?�����FQE=��W4�&E9�'yg�7������j�EES쒺1iE����DO�A7ǻ*#��-�S�����o�)�S��(�C
7���w���5
<��-�3 K>}p8�]
O
�Ȼ0ڞ|�CK>9�ʾ�"?�‧N:B�O�uX��`��~BV�@�I��D���AO�} ��ׅ���;T���+C��Ո�u=�i˄��c~7����^��g���Afn��32d֢�1�4�A���$� �U�>��+�6�U~uM�h
�gz��-ʋo�
V<��N�		���0<P�����cQ��� U,(>P׿���<	���_W�>�k
x���IE�K-9�Ԫ	��y�
�������Q����kjГ��������oA|�G�so��4�� �Ň�j����9}Q�'ܛue]S��`V���bU���э���4����V�9ym����[��'��L�q��Wg�#/�lo+x��)2��5u�K/1�	s�KM:1��I��ݝ���k����9gφ���Fl\:֙~iN^p�`
+
�
�����m'
��m~
�1�w���{߼��-
��
�����|[���6Ɇ����W}CU����
D�_!
���,�(y2).��y��:�L��?�,��=*c�7�ڞ�����lY�)����ա�'~A�3�ݯ�
+L�xOS�X{�u?����S~1�Us7<��YP����x���toͣU
,vS�
�����1*H�c^��k�%~sћvMĢ���g[\��	�~CW��+{�g�/*AO
̌�vZ��m4�W�l^^���{�ej|�2~<�[� ,��+	��M���m��6
7
،��ᅇ�sƂ��mQZqkR�R�J�4$�?b!���bm-�6Խ
+3ϹY�NZ[ߟ���0�˿��ɛFl�	��k�����i6bɚ�������07�
�ﯖu�8/7��)���5u�#?;�´8��"zFZvk���ŁWԵ��Ƅ�W�\H̔��́�����nY
z�ޕ�ޟ�@��;Ȣ=�ce�{k弼0�zrj�?����**�w�G{[n䗑�	��'������r�'uS���`�S03��q�k�L�c�
h�/��u��ɮ�
N��
+d��~^��U6�@-��T?9�Q���;�po�-.�5픉�vfQ]�ckNiϿ�ŏ��2迡ڗK ����_o�*ލ�2.���=�9u�ۉ�˫���%�ղ�1f�є�d����i�X��?���mk.��/�7��7��>n���7,���ag���F��<��}W
���`G�
'�ʷq�
�g>I�
3%���Q
+�_�4�����ʽ�:X�rI��5�$}t�'�w���%����oH��|��K�ӾmC,(
��h	�wU=8�n˸�%H��˟
�b�x[k�z���f��
L1��{xʼ����[/��M�ǧ���D��&r��E6yN	����>rq��;��\��?��7�4�D��➏�wqۂ�\Q�ޯ*�o��M	@mƬkj_ ��`���†�9f\֚�1fB�vf�-�79��1f��5������	�x5�@͖����C���C���ꗿ���
��f����=�1
+�������1Q�-'-�lH�{��/�2�O9�Sw�ρF����H�΄�*�6tM)[ZDڶ��`M��4����-7�@&hq���҆� /

�|:�W�pMU�dS]��EK9�E�
?췹>�ә��kJ����'��)�w
�1�p��݄���0tuG#$Έ)[������Aa�������@-������l������Z�$�+ �v��w��Ewf�ŷƻ���
�fz�_T}k��Pg��'��#���SA~ŭ@{��@G��aQѽ-
�jیΟ���L��=���W>��ο��<�O+z��9�
���!]��kvJ�Y ǟ=�bY���h|�	x���H��Dz��n�d�pgXO�V�>f�&���0)�^��
+x�w[
���`��k��z*���KNj�nj�5��G��\��T/:�����r�ؒ�e�3� �O���זt�I��e]W���Y"b݂H�w�gz+ψ�ω�"��+S �
�Ȼ=Փs��H�}�|���֦�!�`T <����3>��r �l�{9��}�?B�~�j��Ń�
M�ۖ�w{vH��
�
x�گ �H�/�*�	�{���ú��ŗ�8�o֡�������{�
��j�Ew[]�Z5���
t^
�&��@���f坝�4<��)��sX�3�}
�6P�
�ͯŒ�N��?���gB�����[�jh������@��@��Ia��)A񕕾���z������z\�/S"p����-83**��k���_
J�
q��bN�x���\�s//!S�Š�º7G��/T!��c���g�_��3X��'yuoNm��5�����ޣ�eP�m�;�Ҳ�����0"�{�,|ut�W�
x�
}���^�3?�����~szr �
���|~m �8#,��&/���E�{�"C������3���|Jq��j��k����];�p�
y�kl���@�{�5ܕ�%(�SԔyM�N���
+@ۿx*���-�3cKfzkߘNlQY+�P at X�8�-�� ����Lv���]"o�_t
X��-�U�����ZP�y&$H=�a��mL�~v�6Kzx2�������,6&}�a� �O
�(|�b�ޜ� >EZ�r�Fi\�c�����i��;�1���WKʆ��
p��[�T�{B
����O�
�^Z3Ψ��'g�E�ו5/�k^���c��q'���M/1�F������Y��]�����Q���W�"*�=M�/h�	�"��s2p�1,�����N�� ?�Ɩ������9M�{==����fc�g�|�U����
Ց���O�h��s��=_KÊ�>n߃)��,��{S�a�z�a��+���������
h�
&������X,���h>��ONb���룦z+�������I[vzݼ
���k���y<&�ZRC�l�~����^_��w
z��KO[�yO[��%y]Զ�u�6/�P�6n��ysʒ�%��(8m�%
7�O
�b�k1����N/ɚv,�R+5��aNѦ�T>׏�]��;_���F;�n,�P�� �e�7��{�!2(�y<'�{�67� ��;�O�B�~������5
4n[Oo
Q��!Qs��[�Ң�=��B^n��
rx:�Y]�/s��[��e��<�������!D�@K6���v,Ȭn�`{��qΥ7���@΃-]m�W?�5�l�{�N/}� �{�˘�.�<ёwn�tsFZ�p����EPq��ã��ɷ���ǖ
x��֚�����Fl�I)��1��o�H
�1�b��G
������]C��}S��=c�S/3�
��?�xyWv]��)Y��ii��u#<���&D�
��IBPZ�Pڜ�[wc�@g�S%1��d?�岺!eAY��م,�~8��M�_�C⇅���*H̜�>v^Vp22��̾�#%���)��s�ي�6��9�S�|݌�^��ޝf]�9#.�������}/�.$���mG�|=��>LCo�a��⇓�w7';3�l�)�6|��QuU��;� ���=Fc|��B7
�� ?��pG~tHZ�xZU�����1 c���;nx�?g����[[�3G"�s
+���
+B��+#]�g��u�vn~��3�Ɏ]�?�G	� ��lA
��+: �����YK��1�*D�	����Z�a�|ص�36� Ʃk#?��_\��M3�hA�}��E�.���E�ק{�n�)@w����ì�s[Jh�'2�U�0�S��E�ߵ!�6���u
<!Бca�&rV���kN�tR�^~�E��ϐ����@��5<aW�R��C䆺J
������m.oy�vQ���x۫
MI�x�E=�p�
�����Q
ƒ�7aEm�h{����ʇ� ?m�P)�}��M͋UC��������N����-���S��,䦋��P`?�h�g����π.��ÕlX�<���Z������fG|X�6 ܌-�>����4�������s3�';���@��a���>rU�/����W�Y��9o�۷CuuWWu�*W�]��
�9g��P�9D6�9�3�rB!	�,D������3Gu�y�y5/f�a������~��}��~~ᜠ�n�w�eyI�����$��8��Z� [...]
	�OEU��姕?����
�e_,����-���6W�Xz����_|���I62���lC�W%?�=(�������
̕�A��'��O �>r��s�RnUp���3����S{�1�x#���4��s�-Ѕ_:�i�a>?������]3o
���BO��K��3�iڞ��o�o[��.s2��cg��#�G�X��fBg
�?�Nb*?l5w
�	X�ID��3�3��S�1�͐�P8߃���>�$���J�k�4�{\e@�J[��q�Mՙ�!�#�8 ./9FY�Y~�[)������S�\�"9$#d:�1�^�|oyS��%�w�[g�`�,��\��o���J��P
\ ��?�=%�e�i�9�֮�S�Qr
#ě�Qj��>�����3˪u˸Չ9tL�����z���շ�
K��N�
+�>+L��kl�+����L�k�����
����r�^��%�e���Y�J�k\7�b���fG�BL at A+��𨖇���oo�ANۇ�.��)�ۣ��W���&�uL��lC�k�~���R���[����aZ��
+N��4�|�`���ߡo�=D\Z|�H�)���
 ��2
<����I��3�׍O�K"���ӳ��iR�j�u��X��R�u݈��ܲ��
�݃��)�h�s���Ia��
�k'�*������s�:̸�{{���yJ��
+�a~��������kh�[Dq3
�Sb�6�k�n��?ш(�Y.nR\�c���e#\3�Z������~P|Qޕq��,�ۈ��֒�-/�Om�C�T<�_!@{�B�G/&�^7]zNH�H*���>)�[��'��W}?�Z�����@OVU\�c�V$�,�N~�*�+4m�nm�m<��W��8���͏J~��Sb�|��;dڤ����)F�KN̵��6��� �pk�
쌼��+㳺d�0M�8�?�7W]Z�A���Gƭ]}��6���r�y�3��\
�r��&
vGC-wji�.կca�F
����>t���|G󂘲%�Cw��́����/z&�gjn,�u;
ꪔ_�J�
.# '��W��{ac}������aD�F?�3������m�6]iDx�V��M�
+=3���^�e���!�E���O�yVH
+��BgŌ�{b�1��/�T8z�)�qfEH�G:&i�����sj���2KW�(�����/?�����qӵ��M�6_c������AR��[���Q�ߙ��qN��چW�@k��Ԓ��
���]�I���+�v�w�����ۼ��T� ��Qᚤdo�|.�%��"��;���{T��m��9����
+zF��dXÅm��rׇ)��7�jV�m�ۋ�Ꝣ��fPǘ��1)�,��SߐR=��V��^gD�!>\mnk)�A���אӶIZ�Ҥ�VRnPP�W&B9F�E�aR�w��k�gXG�7�S�����G-5>F^_|�O7<Ad��ï��%�TX�D���|��)5�j��D��Y[`�]rl�u�!�?�)�%�U�$g��%c5�v>	���]�>�J���bRt�+�PՅm{�<�[JH�ż��OEd��Wo�f���R��@~N̅�>��7>�_�
6�'���YA�_N)�cnX�6��s)���<
+1N�q���;�,�pZ�{�zhb�|ZR�M�N��b�%��� cK�V�����+��x�V�%��M
�wNHy�)>�'���<,���q�M/����M?Iye_�:*N������ֽ%>ա"l����$�{�|��!g	�C5����'��|t
0�Oͨ^x	9�֏H�_�z
]�x���)��؛�#���A�y���O�=%_o���`�;�-؍!^��8��=
b{�x�3EH+�yq-�<1�쓤L�����
+q��������,����C3��]
����!�yf���]n��M�Q��F?�m
���}�N�� �Hy򣪳��^���'5�&E[%�.��{��Os2?�~?P��K��,O�
$~g^@�hU1�~�
���ª,��I���O�2rAD�G��|XXɬrN��l���?)�TӚ��
��j�}��פT�4��'����<�s21��*����)zE|���5����� >�6���sjcj	�+�At� '���'}~ݳ���S�� j��Z�!�f�UAP��\���j�'�
�|�(*�6�x��[��ʫ�S~9�m�"j� a��G��>����; CJ0�:~S at E�_�>�5�p�7C,����􋽄�4��pY"������P����=/�I��+���+�N���w�����IxA-��r�ib�mz�7���J�y^]�h���YWU�O!�4BLP�n��q��fw{���؃IJ��
���$q��3C/qK%�w+#余�(Yu�׈��7��-;)���������?m�7^p�
+�s|J��޾	be�
=-1�!�� �;&�`\֟����
Jڭ�ଏ�kGD
���Pn���·�8�Q��]S����lS�t��R��>-4��5&)� ?�vm	y��E(Z�ӧ�Ԭ�6�[����8(��E�>BN�O�
+]:VcdQ��ado���
c�|0�����$ �Q@ρ$�w�
�%o�@����O6�
�P7�3�<�B�q���<
+v]p^@p�i�.>�6�pz�m����K~i;> �/qL6���1rև��v�p{
���u~�m�iug�窶�O\@�Et��(���qJ���F�'�H�� �����j��qK���
vnO�*t�
+-���
C��
D^��o��Rr�b�g����W���f�껦$���O��K��� �<Rܭ��Z�WrmRN��8��>�Nr*0�*y���GYK�'�
�߯�!�xg�踹E�r\ ���\uG�궬����l���-�j8��j�&>է�!��flH/"��B��:���k/���-�o�'��E��°���������ؿK�Yj��0*�5���=��=��ꚦ8gD0�S|�t�\RZ�?��
�Y�Ib�jOͩ���o�cM�{��苭�
)*�1����KrI��q�Xr�!y�P�+4����K}*�j�Wˬ�N���Բ�<�q���3#`
�k���C�
+yc �b~Z���[ș�q�e����$d���2��qos�^�t=�M�^�Ϫ�
?�W�ݿ��o��)9���tC�*�w7~���PF�
A���	h� g9ȥ`6D��Z�&�e;�g�
,��2�u���(6/�����W�<,�\�G��Ij6�9E�9!�=92�ڶ��=p�yo<�$9T���	f�{�S�Q����kf�bK�F�82ss�
0�!���-�
6'�p�����Zǣ�F���įo�����8��I��͡�S
):%�a�E�&�)p|I��g�x�1�������I񩭷��@�߯��
�M^�:1��
0�f?���ӆk�}�<�b�~ڽ1���*m'l
3s�^���K?�bg�Q.��,"'�Ō
���.��O\����_��d[��Y��meg��ߠ��75��Kw?�VP���!�^b����PK�h��s�w�q?�N�q�ϱͩS,}�� ��GF/5,eg��n�jz���j_�Y�� Mgu�zg}��5L-���
+jZ�ᲀ
5�a�m���/W�B�}�a��gMIA��dA5�ls�>��8���U?9A^]��2��<+.��7�,��������G��aL�LK������; s����4
U��G�R�G��9�������AB��1�����/�}mS̲���'���N��7^^�f	�q�
_�H� �M��=�-^
RS*�*J�Z�K�βN o8���&.��?�9�ό.�Y
��;�Ϸ�7\�<�����۝IfyX�.ڙf�+:�>���2�
+f�_��y��@$��1B�Э)vmh����(�d���r5k�U�U�$�<�����ΥQV�e���KX�6��n��d�Ȉ�~
�c7�/KZb
�]k@������qA�*he�Y|�G�X{�Y��u�羽����2�A��A������JsG���X4�0!3�[�c�w� ���%߸���_m-��ךۢK<�[M(si�~��
[j���|�/4/d�8h�+��{/~��M�J�*hE>�'��q��ҁ�Mw��.{��˜���3IN_�G�S>(�Bݑ���U��]��\�h��NL�(;��)a��Q��J�i����>�N��_���ؘ��lO�붇�}�[����.:ǛRl�Ģ��V���}���=�����:DK����?kH\�u��
+qq�
�} }e��tc{Bs+���Ir����K=��/��)�m�+;
�c��@٦�%^��sa���?[GamcЋ˯�N9ơףvcb�ĕQF��
>գ�
y
�OZd�	�(���o��@S�Rz���\{srg�S���N)!�1��a�_���~�7���d�J�Z�k�՟_y������AT�JR��+�O���O4��_��H9n��i�q�Ee'4)���ӈӓ�/��y���	v�ߖ�CO{4b��
�V?���G���J1-b�c&ͯ�լ
"Ӷ[�T���~��;|�lg�	�Yyn�,b�RA
�v��>%��:������b�O*Nk�}kB��G��RElN̊�%|�=��N�e
�}�T<���c���΀���
+�1s���bǽ
��au\
٘C����6�7�2Z����497l�W��'��
h�H�"��ۚ@�y�
��^��
+0����V_�6,��av�|�+��S�	�5�lX|����?50�a�
ڳ�(
v�&
,�i
hm:�1E*�?��`�G�
y���K���5�yʫ�4D�ĭ�+���<���0�#�Ԁ��th�~Y��*b���;�)��1�JZ|]�]���{(?�~V����ކ
QC3�)e�n��2�ǩٮq�u�hӥ�ᆋ��_j���stNH�I�����^�g��j����������
+��2�t]�������ݲ6�m��k�msMޑ���Y�9���'{�`gR���nn
o8e<�G�B�
gh�~�HJ>���\
LӋ��ļȔb�!�%��z�+�Io!'�k���ҷs
2f��h�E���Љ�.�x����ڻ���Ӑ$�
�¯��(bx6�7v��[{�\Rt��w��
+7����'�y������m�
�֯`
�Ԝ�Z at pK���q�
0�Nd�rN4\
(iE!u;߫�n��|���O��Ii�q
�>��� n*\x	��:ƪ�̲kMπ�
��ʹAN*�j.XA-�*8MA

�2���{?��O���4�H1��ґ�\SĂ����~����Rk�� 1S��pΣ2�@+��c�>ݒ��L[�ǎI��=��
��������⟀�n����q�k��Kk=�
�ï�,X��ڲ�GH5?C\�M��:�`����0��C�L���Y1|q�[8!�M�5�׳P�\��JraLO��jI�k�j�E�BFp����1���d��� ��nt��_i{
�3�����\��rk�G�ì�C]]xV��i�7N))ϫ�T�"
�
hA�ګDf�Yظ
9�h�������������9d0��UI�MM�7�E%���O�V����=�� ҫ�j��B��␚Q30~���*m���M'5�ЯT

�*Z���<G\�$�'U&�I'ݱM���'�%sO��������#�/�l�՝Lۙ�����J�<���mV}矮�R��U�ߔ�^��
l�T3|{���
+jݳ�GF+���>!�����G=�����G��b����5�/s�m��t[�|h�����;}w��=ӸL�R���k:;�
w+� @NF�M,TXO-��Ys/J>���y�塀�ţl�:�Ĝ����Q�8n�B:"�f5,�l8+�}�S�:V�]F���R�}�Ԃ������rJ�c���rj�������s3�E'{�7��M#�>X�E1c��m����Q�h^�������?ĸ��V���q
`�{��^V��1��1�Ԏ\�Y郝�wn�]�w�o�����
�F-n�zh��n��c�-m{˭]a=֐��u�z
+�p�P���aBƮ.����>�-�(��Ι6�Wɇ��<̎
��cҜ3�B��ה���!%e�
�WŁ����]=�v�� nK9��Wd��Y%���g�Ӕ��^����S+o ��:$q�ئ��WF�e���j����6J�W>��1�
�d~Q{�1�L
)	%�n4w�A~��[p6��12������^5��:���5����1��W�[>X;�lM1+5OPg�����������<:\`��S��WY�����sv�
mڷ�LEW�O˒�9:zW�-��LrH�T�
���9R�s`^�M���<B,��(��`�����~�_���샟�k�(�Z�v�
+aN�jc������\M��< �rH[�>u+ŭ4�
a�,����
��ޙ��l
R3�^��A��<xl^H5��
8�>BI�L���;[����h<�U`�u�~�7��y0� ��zo�y�$.˯4���/�'������W
C،C���?��u+��+��$�5}�������O��;�)bvD�����Q���)Z��Q�o��2�M��
+\z at K)�U�9�=`
��w��AcgG���P5��:
�6��!o�'Pw ���D��QҲ�����9~��}z9 '�f�#�~X���� �u�]���n��'E�q�x��_[{�p:������D��k�V �b�Oάڙ��vO!s�+Uv��]|Ywv�v���4�眢�� V�٘�%?�c�W��9�	�Հ�Z���� 8��1��Ƅ�Fe���.��p���Sr�.�>Ϊ���T]�J��)�u�Il�s�6p�@
���:�4)'�I����P��lc�k�gy_/���	��������%�p�n�����Tr�$a��6���
��P	0Nãg�S�9�w�W��~o�c4���È�3�.i�͠�V�M�UUW�Sy��� ��u�Q
6��a��$�Ɩ��
�T0�A�4��
w���OM*�Lc�x�Q�":L�.��AsG���ձ:ίٞ`V����j���n
�/����U\�V����d�k�����H`�!�Y��A�@<���9T�KS���	�)ۣ�mRA=����^���Wc��v�-X�����HHN��5AN��^]q�1D�m
c�m
�<����
�ȥ����f�e9ƅՎ)Q�m�]h�f:F1WCZ�O˨ܙ"���C\PH�?�7���ƻ��A��1NQ"�ASb��
��]
��;�M�D^Z~���5B��M����4|dp�RSS˽RT�fO�Y��s
}#2�E�g)y�iRv@ÁD���D�X����`�@\Z�4�t��k�zd�`��LB�W�ˌΑJ>�pp�K
L at M�tJ1�v
Ԫ���!�Z`}�#E���x�.u��0��8�o�-W�R��ۊf�� ��cym{ v����
�jW��	k�DP+�
������?qf~y�]���=��&%�L~ūbV�8U�>zNH��3u�E��z����_^ޕ��s��Zl�ٴ���0�)!���g��[�g{�'�em�@/o
5]
�E�]K�ÐQ�u��!���{�ffXŁ����g���X���8��~��3���
x��%��n#�7`W���E���he�
T���1vt��[E0F�s-��R[��e���G����īS��>}���bGW(����Yk
mL��9䃕��]ˣI�����
;�>�N���>t��~-�گ�U���'��9�Շ��Y�5K̊�8�=���k�B at o��l�� ���c�o4��gH����=3|8`f�Ẩ�[\Q�@�x��.��j?l�$���\nŅ�k�������uq~%�
��O����$ �p�>mb

$2/�D曙.��3+hp�
+����Az�u�V�3é^
��\�]��"n$�����O-Dz�&����S��ϋA��j�_�z�9ˇl��S-�`?�
CXx�8c�&�V=�Q5a���y	74'�$� 
jI��Y
ȋ�T7�A�,�ƫ��G@�

Y|^����P�7����^!�3�0�
�ʯ�� �+N�ƪ~v�םӈ��i|fD'��.w=K�5�1�ȋ�DT�~�6U{ƯB�ç[�A����Y��S���Q\*�㐈�V�A��p�!5.ws����� ��Ĝ�c��o
��P⾾Y���,2
pf�z?)�6���)$����k{��X��_�Fx
�*�ᜨ��K��ܙ���;�EHP����-����a
�뚀{�ʥ�������+�I|V|��#� ��̚���P�K*F]D��;���`�Y^W���v�.�!
�R�>���*���4�*��X׳�bf�  zU�p��-Uk{uh�4����bK���]o�oI��f	%^=�XK��a��:B��$���$�
����o�F�q%��6=�
[:�
��a
�¯
>C+r��w�ل���'�G��F�/[⎃u���E�Т�iS�G�.���]��lu��q�!����.�ߖt﯋E��,���9I�p�����ݧ1sG�
�WI�ܑQ�z:,n��F!A��p{����GM����aT�~%!?f��v�<tL�j�c�s{��b{{�$a��]�C_�
�f��"�_��$�)&�5�� �g�m�7[��?��|��Z�U0�������]��ۻ�&>6�fׂ��+;NY٭���r^�w���3J@>/pJ�Z�`�
�����q�nU
է�nv͊;2F񎌔�֏�l'��ș��s%�}�
�!�5��Z���6F���&�����e�⸹��oha�e�"�$%ǣ�ý:��8��,����
�S �!��%�ʥ ���<
+n�s�Q��
+�
+F��0!�9�,��Ĵ����[�H�i����0�_E)r�Z��Vο#%E���,�� �ur�7�۽��Q�����~��q �
Am�͵p�!�p�	?�0�#��p�O;Xn�
�۸
�I).)��p������5]����였\�
�����Z�5�:2f���V�)��.���;���_y
��R˼*1i��R����;F�E���V�K2BFp^h��1B�� 2%4�#�d��
�꾥�_j�D�B��"
���5�C������m*�5�G�'�*&
������a	0���XW}R�Y���� h~8� ����� '�b�f~t��jJ�?����<��>9�t����#���y5��D?:���\K���P��o��,���)�,�ǖ��#d���e�T;`����L�.>/�[G)y^5�a�{ �"�
�F�4)kk���3K//��:�m�8
�,�8��&��
+k�Y�=@��x��I�%bEN.������l��rHC.
yH�BsM��lS�[�o*��
l8��T�/R�-h�D���ʧ�-�1q� �3*
RJ�[�op�rk����!�7>Qr�V�4\tNb��64d�a���v���}��0�|r1�1�.��#�0>�8���o�]	t	�u��m���wI��=����
+z�w�^�5N�u }�T�Q �6����f�ʰ�>"F�1b�	���]r6ģm&���l3���Q�M�4���۵[����V�Ѫ��i��Y� ��Z	�1
xX��'���f�9!-�3�(��o�TxT+@�������f�G��Tc�@�DE�<
�#5�y9f�aCexfo��L�_�
�������9>ccyyGF,h���|G{��vף�ת��N����f�_)&/�!�o������9uq�ǣs͜�w�$eG�7��O���sA�T/����>����P�i��'�_�߯�%;rV�Z?5+���1!�6N��K
��0a5� �v�o�c\jf]h����b烸���j��!5&�:Д�b�E��-�K�
3�&x�ݥf��2�Z�����#�:g���R
+$���讻�%
~�^H�H	�+��.����0@����og~Ux�W{ˣТ�
��uIw�"d�J�v-�K���Y}z�Y��;Rr����?�]���XSN��B~��i�.2Qa9���R��J;�+���Eu"|����51�CZB�u��{��-a���s\�.�g7���
�4,���l��'ր����<[�"yd���K\lX����.�f��A
��*d�\R�q�Yr�C���Sq!�P����l�WQ�Yv��K�ŝqlf�H��[b!�.�<��B��h[(Ne
�1�-��%�Rv�a���%8').��qKތ\
on��
�A%�"�[�4�Y@\߅�雩�3���n�[q���1��AG@�ʴO�o��V~랦�E
�Ը�YhO�O<é��ā�VA�b���Fo�)�J>�
7 �!e�T�[�*��U�Yb�� ��� �u�P�����d������^
+�y!5>ۯ��9e�
�)ۣ�
��v)>s�]�^��+cW�Ɖ�����w{|s"��4�(0����~��~0�
+
2R����w��a��☒��_.ZG8e�	�=C(����\��%��ia�'#�;�.>��؞���v�
+tp~P�B؆���ӄ���T��Q*�jf�_��
ͷ�ۤ�b�$)3�,i�]���sBfP���4����Q1�q�+���LJ����%��`Q��؈^H��~������3^-[�l���[��1ဝ�aSKsp��Dd��`p���(U{K�w�rf�ʫ������]ߑ���n޹՞�̃����>���:
�`��Ep^@vLSK6�7�_U��>��)I@���L\�T[�W+���e>uo��
�\Դ�~�z�ߛ��}t�z�
+b�r��^�рv!fEt
��\�u�!ŧ��(��V�ނ���
+��a����u>��7˩�����AL
+*8u1=
R�"z6rw��h�u!=�Q2@q��Z. 4�W͇���o���蝡���x��1]+;f����
�̀��`POK�ܭ� faUB�O���Ԥ��g'
�� x���PI�>M+�i��"z@
t���
	%�D��l���
,t?	�?ݑ
��	���a�v/��b36�.-��=��
�IGt��S+�$�;`-�g�����x�p.)
+p!+��P��qz�}�<���ۥ�U�}��0�� �5�1$�x������
�r�;�����_.<��*�b�w���Z[�Z6ī�C�6!н���^�5����*�A����z���^c�0`����x��V��aA
̒�!f�o�k甭�Uk���:���=�̷����2.,��#���ܥ����F�1A�
�'�G�i^�*bf#�VE˜��M��$�.����1��$����R������B�!7���Ψ��uh�z�
�_H�ǂ:Y�S�v��l�U2���֎�����e{o��YtA"����E
=b�#����Ģ�٦�q'�	r�}
wkg�V��i�,�����3a��S�ҕ~j�r/-=`��ҭ�!�6+��XM�K��_ׄ�,��9�w�:�L
+꘍	��$��A.�!n�
�6g9ؠ��m�zHO*h��`

.��/J�y!�&%f�4���[��k��ZT�+9\�ޯHD�W%��E
���o��aR
+|ZDì�5�PQ�=�1
+8goAD�[�#6��4�z�J��k:x��NFP-BG
B��l��]
Ҳ�
r�$��x7�*�~�w��M
9
� dz�A
�Uqa�n�kR���Z��~g��
��
+Ͳ*"�S�s|�
Y�@~�h�5a�ԫ��杭:c�?,�kj�Č^����w�?��U�uI�w�&z#��ZP[s,øk�Rf`����d~	9����ǘ�\�o��:�6��[�m6BNw)�h>���6A̞�,�|R��G�8-;8 � uk
0�4>c�$$F
|�OI��U���/��-�_��q1�������v�F�
+�\�'�qe�6�d�X�U�5�,
Ϸ�z��[�'ޒ���hy��SD����TXD��NLڑ�J}��G���;�������_�
�nz\��u{
m�Qs3oo�Y��p�1�ۇBN|�����r|*&bj��&��"��Sss�!�V�{�W[�ޯ�َiT���ڟ�:�E��c&���A����aC�(blm�_nn�������Ҁ���~��9��%���Z�UK�JZ��"�~�K�_�7���ʭ!�Y�4.��Z�}��^�:Pj�����D�
+��uw��qH����X
�]= ^)��NF�����.E�X�5Сa=��c��'0�
5�&���]��ۖW��
g~
+��ݝ#E
�����&�p�U������r{�'u
���L��ʋ���/��V%��k��]3��9�bC�*Z�ov�6��=��!e�t��+"އ�fўYH
+�@����?��{f	/n�p�� >ۂ�J�����)�a5�4���x�욍1\�r/���(.;>τ٧��W�j~�%���	=��c�]��u;8E)L��6��]T����Sqj�$ �.�w��w�{u-t����9^�;�+�Hѷ�R�M�
��=��q�$d����o�Y���k�zaI���,��!-�QJ�C���3��F"n��y����E_,>/��=���ҫ|�f�s�_g
cXz(w�O᧜#�;�O+ִ|o�.��4��I��k8u+����/KO�U�ܽyb�{�X�Q+�
+$�l!���u�S������i~�v!����
�_ˀ~,tLr+m�↵�����Jt�1�Jb&5r��R[+���|3�>�GnR
m#��N)*q�/q�*ϭ!�
+���
�f+<�n�-��A��U��=2j�SJ��qy�
<��j�����I��Y�Uӫ"F6f䠜��,���ǥ�'�%>���nE�����<Д�a��'`���
��@��DLBJl��E|��ۯ&;e��T�5�
u'�A�ٷP��D�
+�b�F\Z�}���*1�L|.q��\�WQ��ٸ�u�x���$ l��뀞���X5���������mI��Joՙ
9�\.tk����_��Z/��sUvhnf���~� �����
�3J�{����
]��^3�A]6��;
���
��2{`�#�`��]m
#�fT8�!���֟����fȹ5!��Ă�-�9>fw^H��/�!�g�Q�8>Oo cR�
�~H+ĺd�o�탍g��g@\�v��ذ��L�tNcr@f V��O],e�9�y�!e#q���3ȏ���O&h���
��~ 9�p��;h��X��U;fy�A]33�	�#�8���x�E�42-b��8l�z���a����v&���R3�w����d�d���c/�a��L����=�J��i5��<�x���,��!�nO�+7��W���
+s�,�e}����\�H.�7�>��>MH����
=3���Ƴ�atrx�Y�5tvz5"��)}�����t;� Ĵ�
+�-��k}q�C*.�1ʩ��k��=��\G�_f�٤���U��"F<8'ćL����-ԥ
|���c
v=b$��-1�{&)<�h�9�:��]�<Zl{}�9����Kwh�_����6��C�����y�8��i�~y�Y�ŵ~HZX
t��Y�1��2�j8�>�+<�|��Y[C�������󀙊bf>��f���!ok��CF(
�y��s�7�J`{b�C���3�N;Xinl�
4r�"s
����eo�G�i��a=�"0���M|�� �x��*�$�����S�G%��z�N��>
#q
+��C�����g��Z��FqW�j͒r���K"��
7q�n5�ԣ�\3mDPOA\�n����YH�&rA at 90uv��ڐ�VQrb
+:(��l�+?�k����ӢA�8�  ,��nj\�uve�]��^i݅���w`b���BbP�k�%� ����?�NuN����2�3�B��]3�p #sbFƯ����".xf�y�s�j|��Ѝ=��NP�b�J���V^pNBR�r1�!4Dt킈�Sb�d�
�ݷ������2�t�g`#�QI�	!l}PРl���ڋM�%4��V�g���1nR
��;�r��
�
0	VwO`R�#��d���\D�(%��qv�J��lc�_����3�,ݽ۟oU�ٙ@$�����U�3A��N�!��Q	0o�7�����$�?�Pn[�.-i�3�O�~)I�q�a��8\bc]RD��q���p)�D]s�
,xHC,mz+$'$�qD| u2>����ԭ
����
+\fX����BS5��|a��%���j���K���+�*bN�H���P�����)�kq3f�׺{A
n�(�E�Bև;�!U.=�=��������
+l�/��?l�?
hxp�$��c՞��ճ`�t�m�6�1���US+�K-�˝��@�8A�yU������'�]�5R�"f
&���E��]ЧA=�ɯ&W��@+JW�C

�VҊ7G)w<rnc� �
�t>�[D\��;2r�[N/u
]З���*v�{}o_#¼��#$�'�D��
�T���On��5�,�*�V9�m������>�L��#/gX5!�靦�fqً�*�W�d����,�ύ�-`�
|�O#D5��=�:��^	(j���ț^9�,��
+>�f��8�3�Oo!��S���� J��
L$�ך��fΞY����[C%'���a$�L���nQ@�L
+&j��^
U	�ƮN�J��{����ޯ�}}���0�(db�bf6|7�B����
TPN-u� ��Q�]mn��1!�
�`�K
�X�%�\�&Z�~�j��,�6��$��T�}
r6q��9�:�)�*ZI����ab�{�Z�$�}X���&���~�O���Ґ��7t�7H)���o&x%�-y5nl��/��D�E�m1k��N
'��=���9�xnkz�>��7�ߍ.>WD�y^�8�G�:nS`��m�蛕W9�
���"2'�����r+��>5�":'b
���=\k�
b���49'b�#s|��~>l�������*�K�_�b��6)���)L�u���܇��V�r���������&��C宼��n���
(~���9��6ۚ��0+�ϖ׵��z�����_7E-�96<1������~Y�l��K<�;}��/�3؜_7���[�V�W�2Pw2j���~�w���z�(�����Om��T�򰁋��2+��D��+<иe [...]
�~���h��Vq�&��jm��_l� k�
�����Kc��ߙ
e�o�|Rf	��֡ڟ\R�M�3��[y�9n%��:�K	�DĸID�Y�A
�ts����P���ER��E&�
X�غ赠�����F���Բ��t?��pA"8\��b��;f(y~
��ZDq���ǻ����u/� p>��5	���[��V?���"�a��c��#�(bE�[u
|�������d��~h&�
��S�I��[X1��{��k#��aS[��FK�OՔ�����1
��� SzBA��W'�y����.����.�ސ��c��;���
���Kć�]���p��Ov&9u�U��c���/+�{�)�6
+�h�D_
�Z���9������`
�w`���cUҺ.���_|��J�8���>�;��VE����4�h�{��[�����s�&�
�+o�<
+f��E�ok~�&���A�W��+�������E
����eǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G�P��"V~⿈��ԩ<.�C)��TVQ2��Fsyx�G��B^���r�X
��@s�'n���\�z���j<�v��nylt��C&���,��?{���6x|T������fs�\R%�>���7���3�����1h:
w�wO��O\��|��+'��"L������N\��D
^�?(�-ቤ+'�N�����%����bj��+'R�n����WR�.����ץ��뤛���������o�3���O���I�������4�����7��϶<s6�M�G�s�2�S [...]
+^�g�]�V1�!��H����E� ��W��8MQ���װ
2b�GN-��2�#Zf� �F�FH-D��<Xbɬ�Դ��>ɨ� �9���YRnHNʋj�EA%�v�("�$��w\׵�����_߾���ھ׶,ْ%+��(�sA�C�s@!sN` �
*焜+��UPv������P�c� ���k����생u^θ��\=�Ĭ�5>!��;�8����`�D�EW�9M;�2H�^J6^K*��51�}j{�㇍7M�f�XW��67�:�څոW� |:	��欂ҌUP����6/i��L�G�Dl�Vԩ�A�
�(:w�y��޴
��e�JO��p�N���;23z��M6oQ�&����~�e��ן���
m=�[���M�"]Z��h���u�l<k�zc���ڋ�OS��G�3T�v� 3/��Ze��S͢�F�7��l&ib��ۙV��'�-�����
u��>%^
ҭ�Fl�ꬕ_�]��%��Wsvi-�֬��|���{�ͯ,x�ܽ�N������8����u�רL,��� [...]
+j

�ݢB�O)O/���	����Y�q֨O܄�e���VN��d��*̥�⁾xP'�Gt�B�h���n��)�|�ꜛ}%m�ߙ��_��!x�y.m�5�
��e���W���	��
c6������Ո�]�;��A�~��M\�1�:�1�=����koY'R3�J�5�6HQ��3ce�Oϳ�%�-K�����҃y,����L����c��y
w0�!aErAT��)��Y���;w���מ�|���pz��(>/(�lꮜC�<j:����-_B/v�.UWr���������;��\&=�­�a^� ��E8\�ыq����GM�y%�O�B�dm��^U�鍸Ϡ��dl�Ԭ�w*�1��������O�+>�3U�!�Z�C����$���˖/�������
l�u�r/�m��g~c�/� �UtR>�,1��S����\{Q�!nc��m�sh
��K0����GC�z�I�5RA��jxP
�|�2����p/�CR���T�s�j�-k��↼_�@yD�ȼ��t饸�_�.p.�}P

�
+h�O+$�%��
�4eSwd�
�1*��^�G�b4��P�t/�AI[d����7m�Q�Mr��&5�1�5�(
*�א^Y�T�.�|�U�s�3��IG�)��6̧栠99���
��!~M>(��9�v�:~B�Jf�7�z��씃W�ke��ۘ�Q����
��%#J
�'����K,8p/�S�r
^Y��+�x�
y�h��R cȢ�f
�7�NR��\U��a��y�[܀��ǝ+;s>�	��d�aT�<������M�lM��=��U�ν
y�x���忎)�?�w��)�i���M�d����A����Tx@�E�U\�;M1h�BZ	�Sto��ޞ^H9��q��y����x(�QV�[,��q�u��[o�>M/(Z@9x�lʸ՜�I
�h�[�T�q�b|�����֯vgx�2n�hcRpi�I��[#���qU]nNt]�^�̲�n�u�`�^���׬Y��;i���L�
�
m<�XW���
s�k0�
^P{B��7D�zL�� B]��-�.���
�
a
��!NE'�6��vMwbJӈ�u,�.o�o�.t��o�C�����[;9�j�
��}�;�|�=��q/��zp����_:oWy�r�pjD9���	���M?$';�Pnn)��>Ex���q	�7���b�d*�
���V�{Eu(�
�+�t�D�&�#o�]���W'�ŧ��5{!֕|��br��;dZ�H�{-�Ε�L��BP-ڏ�u�\1��C	�Q�P�A� / 

u�(���@�c
�h�b�^*�S�a�`s�s1�=2�_2]��@q��Va�|=��'&<���B�Q��q
qw�J�&lmG��/20�O��<�6*$j&�����n�qc���켸����
+���*f�.m�:D��Wڎ������H�U"
t����,
|�z,Y����eT�WY�H�ɰ���X%�6nI|A޺9
Z���cI��窌�z���K�V�����8�gکf����p�=,hЁ絧��2�#lB�����uk��h�^���O����[��o%�k/�'&٧�^Ic�#���%-�G�D�
j��cƽF9��	r6y#nS���֟�}c�w�z���Ĥ�
wg��i'�<=�8G8�
E}t�^�u�Z��c6�rO�P7�)i92/�A�e��>V�_�y�]X��\~�:�����K���g���/�������l�-�xr�w.� �B]���˶[��П����:< iI�'1����jA�[��
�N�C]`.�rz}?&�@����ΣY;�
����Y��>5���OK*�B�K���dױ���_%F���eu�o:l�b
IN�.n��M��KW��}�~�7��eF��zʥ�Q>�r�>�~Aݵ�\/�|��:^}Y���X�ٮ�y�嬓>nG�@
�O'�m1d2�g+�����+��[�Hx�]��[��,�����k?��.�����Z[o;���:�|�nQ���@-眲ԣ�.-Eܢj
x�k��e�
"�U���-��x@��y���ޒ޼����c	�����$6��c�2
���_%܋��ŨRR�)ETHڑ��K1`��STE7Iy4��O#$<�z��8K�$��]\���(qo�1�J裗��������Vħ��[1��/j�pQq��a~QԞu���
�`>~u!*e�\��巜�W��򡾛�
�S��!��
 ��J��tx{����	�	*��c��D�g�
[��k/�h߽4�m�e��Y�I�%�*����y89=dJہ��²��s.=�q�r
*���1��9>�=�=#�O.�S=�Ij���Lۡ��̣�YUƩa�Os·V�G��
�I����J��v� �b�.(�ݢ��Ɖ��]�yU�~�b!���Ҕ�s!m\�
��睎��8���⿿]�2i`��zVnFX��e��}_}���⳦ORӢr�5	
+�K3��1���Xf�����񛌵��\�ψ[޶e�6m��N�G;r��2&�[Cr�q<=�},7�<�:���D��ܪ��te9��zg���ʳ�W�T����/;���+oG{����
��=�YK�f�}�r�U���]+�l�&�Sq�4 {dl�:Z[�a9��9dP��}�0֤��
�g酱c^y'
Լ[Rˋ1iw>"lڙg�ٙ��
��[���-	�0W��|��
0��u���I���i���Q��{�_�
�F �N3nAy�-�D��N*�R���,d��Z12h�
�w��ޢFQ\Ҩ�Q�� �"�e��;@nS���B�g�����U�������I�Z�{�ܢ�o� = Y��8�ՠK� �\F=�ꔍ{�T��=e��A�(�[�Yn�G���{�r>6R�*��Q#�D������ȻU�m`2e�Es:�hύb�ԏA
`�F��tu��͸KR�]`�I/p��\���OԄ���d��˜ϠJ9T�ǖ�_B�.�������}�5p�Ϋ�
��>F�%o�|���B��Ѫ�����d�{m�����y�y�켨
�c
jS4�gU��G�c�Z�Z~V��BH9]R�
���Ge���ؗ'�\��rxu�򃵑�osVe�׈���?gĵh���d瑕�m_{o�������V}��h;RS�+�I���T���,�Bz�{>1��j�f�r~P��
��ݩ�c��v�
慔�qrgr�l�х;%v
]z�]Hڽ�va.�BV���,�lz�{>=�>������I��o�p�,}ܫMX��c��k�r�Y���믻��
���-G�
�VrQЁ�
~��
+��;A�[i]� ˂�w��r>
7e�d�9�P��,�'̎{yW��N�_Q������>���
�p���kV���;),-��hH�E$mE���������Wr.n	
�W磒�"�$
|����QdB�^�O�/�.�����J������_֛1�W����bT� �R��
+1�	^Fܯ�"n��^A'���d�����u�����B�$mY�<}T	�[4�GR��P�
r0��;L��Dո�>�\ژq	+�a�����T�`�/�
E��
��&3��%
���D���
x?�`!f(���k��|E��cV�M9/� p��L�q̭b�~=deq
�Am��*�<f�Gz� ۙ��o�.-~/收�l���
\ׂR��z��Ǖ�0��o� Cg

?�������%ܙ�<�����T��[
��l�
�)[2VayzNT�3.�@�y����(��^D�ٚ\ڙ�@^⯍�|�;��U|���@b�� b�kH'��
+�o��p��8\�T-�T�%x���k���U�)�\�#���.�hs���W�A���\��X��j?YY�1��i�3ħ1��+Pr(��3
>������ц����������/aA=y�
O}�^���%���c�i�I�)�"��f�54+(%�z	�5m��}�}�?�_w
�
e
��k���;�B:5J3�C�M�
���l�|ZQ��/͸ CC.-5�Ec_�%nX���- {)�
�
�3�z$�d�P�&�-���r
�z��3��
�
��
++���	jV�
d����L_z�9 at X\w�[�7��/��|�r�
+��@�s�\�g��ʬG\�
��2��U���s
Q�
��	�0����9�Z�H��
A��
�Tx>��N+1������������|D�@��v�+_��I`Ŭ�<�� �M;��9��Cp�5٧fA��s�S�O֍��SQ����tDH��[�
+��[�����
+�~�E���ș���-���C�Zx��@�D�F�G1
��g��*:e}򮸃{�5�G�=*:�8�b�C��SP���^�������d-�+�u2r�J�ʬG�@�A�!�IZ�S�W�)��ܼ��
���ksAXx����K�	§bŧ's���촶#>�iZ}�.�
3�C_~]�
k��\����<�
�
�7�#*cS���ޕ�ɮw�xI�E��S���%�;�s�)����"aU
���׭�7J�cc��0�Gf�]€c�������6�Σ0��$�
���;��	����c�N�4~�.�
�;��)7�
	~[
BF�I�	JrVE�Qq)оbXɣ������@�*kG�F]|JX�Y��J�1�����+	�$�.�ڞn?����+¡.�shظS��
�L~��zû��X-�;�e�oYG�V at E��c^+5G���u�xԲFC���M>�k�� h�^���9G��9W�ќ�]�����"�E�r�����b���bL!(,q��Q)��P��-�% [...]
>�G��G����cR}d}qIo�=�j0*})�Voa	�gQ��Gt*ܧ��i�^��0:p���`ﭽ���
�[��xg�FUU��
�1���}z9�1�v=���_�\�.̯a����z�������k�=F�'�����y��)�E¥�Q�01�>����c�����նmM�+v��6^�
�
g�&]z1���Z�7j�#A1�����ߴ
L��Pn��t��!�m�����؂��^W��1N����yw����4������a�U�!ҭ�.
+��>�����W��
�\-��<Z
� ��W�Q�)���'��u��fj?��5
��t�R��
��Z��|�y<�5h
+����(XD@Ҋ8%
���G�
�
���L��w#5ǽ������۶�ȼ�
��k1��� ,�;ͻ��\Xpi���_��t?�N�|��8$����$�Nr)D��="�7���[T�g�L����s���p�M�G
�։p�I]��P��%DX�J�D����3S���zn����] 衦M�K���1cO>��~�����h
"�=��=�ո�('�j�sc>��$�ߗ��ňǤA���gԭ�S�˘W޵Ӫ��Y���c*1 �
���|;LF��BD-٧Y-l2��&�b�%fZ"�Zy>p��7��vi]��

�+Y�%��"�c!�S��g�)����U��9�{���km�:}�)eW�������a!<�z���
�
������B�ԓv��[��֌c�Z�yg,�7���
E�:M�!�؜��]0(v�}�oe�wMz"��ᠩX �Mن��z�
fYb^�L��jʯW���_��7�h�L��.df$UYg�a�43u
cCz���Ԝ����~U�qb��
�4�>g
��-J�=��)�I����Ԃ�{�u�������&��V
u�N�!���s�Ky/�v�`�.Y��H��ˏk���%�i�1+Ok?�~��Mv�q.s^��(|΍7u֞4��W�<k�:5�9�wi$���"�
�qI��D���
�"dQ�ք�4�׈��C
�
a����9�vx�u���IeƫU�u|��DR�Y���3�Feޭ�y��~ه��g�C�����k���윆�sX
8�3�Vq��q�뗧Z��s�����woکf��	:C �����Kٍ,��9��ۈC�'|JR�Ȱ�S\RJ߭�5����X�_��
ļf=�
�ߨ.F{�h-�zU4�ݒy�
+)xYw�y�m	�I��
|�iRѵ����e�~�����]�D�FݶM���Bl=�|H'�G�<�+kI9��dT��/)�DȠ��Nykګ����0d%�{
+fΣ� ��Qw��Yu�5�Ȁe����#�޽e���d����yD�Yn���ײn��
���{��_��J���%��^�>�}�&���	<�!��� ��[x�o�����bȨ�k���A����Sqǝ�Mۭ'+�ٖM��G �	�F�z5�K�x��ꕵ#>YkΧ�@���
���%�f������
�-���j
Rq���s���VIuΡ�޶K�]�
�쌊[�c���~��>­f�W��|���n�0.�*����]�|==9���q*�3Ny�b�5���$���Y��q����텍t-K)�S�#�ޞj>�u��]zX�W�&nHZ��/:�
j��rvae�pb����ӊ�7�5}~�y����:/��=�WA������S

?�NN)ꓴ�
�}R�H�ޭ�DXƢ�I1��mg�qj{�qw�y	���1T���S

uݟ�|�l�V�S3�J����}>H�e]Z��_���;:�
�r{�
_�8�m��d
�����s�
+4#i�tg�:>�9��#>�`�������Ve�u��͢]�t�D{���h��/���	
��e��'!{�����8�~������
�!ÃϨH�M�K Wwd�
'P7�
sh9�QD�����-.0`��Ϩ"��0�7�ӈV'E��g�yg}υ�����yT�"�6�:=�$�v����]:y©�N�E�OŃ
Ձ?��>݃k@�j��Q�ש9���#x
+z
r�����!K(ب_�H�{��u��	e-�� d�;T���(,-�#�bT�K�s�Ǵg>C�-�����8�)�ﻞ��=�"��h~{�,�~I����^�����#�>��\�(��1b�
Q�!m����p/�
qCf�_�z%-�^
+X+cN��#n-7	�|gVZ
~co�؛_VI�2R
:F��g��uu���N�lj)qs1�s=�42N��W�sC�YPubN
����ҿ
MҦ�؝�f
�:�,MY��q�:�6
�����
��]{�y�^CG�t^�����ۓ]G�
7|���_�{�bԣ��dW��^CbF޺4��=f�l吷NiKvNXj�]������2�S�C1b��r��r
Y��ˋA��t�N�5~����q�U�ߋNnw�ڙgP�^AA?c.5<���jE	'�lc��3j5j)�̸�wj�����43�j��(۲Vu��i��Ҫ��-5i���W	�^�4�=��1��F�
� �Ƒ�
[{-8�[�r1�^�q��Q�si�E�^�X�zi����΃�Gg5½p�-ԣ`�A������B%�B:��K���3�u^���
z�n�f����F��={1S�
�ᕵf$��]݅��<2$n-��R
endstream
endobj
43 0 obj
<</Length 65536>>stream
+
+2
+uF�
���w���S���ie]��cA=�F¯��E��QA��
����8$u�s���qΙ�CŌ�qO!n���
<%cC��fK.�e��UT�4�8�;�n�5�[�!��!"�7s?6
+�
t��2��Y
����#���.26�Z4�
��|X�&}��}�#�vA��<�
x���r����&"�)ϹU�_�/��p�H�hD�=����c2�w
�Yp}\"�3�[�)�ЄǠڋ�?O
$�+�ne'�U ʻ�Q�rEO����׊E�}i���qi�;
���o�o9��y#�
��s���
x4�ԲS���I�y`��Ԭ�*
+ޱ1�<���q03�h�:d��9ievAќ�Sԭ��NOK�~	j�,jT4GS������Ϭ��ғ�*�s��UR���$�E��:ܩ���^�=�},����Gu%�t
�灵}:�7�QQ�ZL_�1g���3�
ut�\�s*v�����#�뽁�z�S'@��S0?{KJ������
�*�m1���0��1�;�4�Pvl��}�����S�Ͼ���D�ܗ�h%�Pc��;/�W��҇��qk��9�
b�P~�I���6w_?����{��YiU�l}��؝���:u����z�?���?�h>

�C�&S|Z|u{�s
+4�*�?�2)3��!�?p��	
*��OҼ
T�H�0�Rb��s�)jȇ,C(=6�A"H��p/��#2�d\���{j�W
+s#�|*����?�R��аA��*��oYGA�Uy�y�xڥ�ԪV
+IX
*9���G�F7��%�\H-@���+
xV�M"Ls'��-���0��݄ۤ�ZWc��
�k�r3/�׽w��+j͇�&\FŮͬ���o�(��e�`>���!�
(�I'��j�%}ϖ�{����po��4�d�M��4�
+��>������71����%���J9���MEU"jQg M}9���y

+�cPB���=h�Wھ=�<��
+�zߓS�ݞ��e�ՠ�P��7{Aa}�Ͼ�5Q������6_4|���a���h
s�tNA�j6����2�i�
p$ԃ%C��N�|gZѰ3'����m���=�t�JZ�æ
�&�@���
�ߦ���T}�-� ���[
r<�w
Q
f�`Ny:?؃Z{d'�ri����t;����s
+�F�dMY��
��(3
RaQ3�e�C��
�GҔ��������Lj���
�	ymnF۝�U�>~
6�ܲV�kR�����XuL�n�s�r6���\�1x�(���Wԥh��D��G˧Y� /A}�
+�
�
j�����M��F�޾��w�n�sg��އL�+��L�+m���u��1��[x=�����-�{a9���kp��^Tز��>VY�ɹ�u�T�ZJ�����b�#n�\�ZүdC^�ߵv���F4�{;���2>�Ŵ�\�UB�-DP�I�@�}7�����;0����	ks^��l��y�,b�UR���ܘ�B�<��������f!6� �J��Q�	
�{K�
1�A��r�Cz=coI��_V)�neK��P+�x�ܗ
(�hH
y#`��o�N�t���J�FX��ֺo�K�O
+�}��������_�C��*��^���%j��
�QS�	y2�S�-� ����[��[RO�C��
+!���S�=�y
uK��kݵ��G���s:�>�`�'nF]�?'gk�\{}���D�	tAPO�T���
ෂ�o6�˘�Ikw����'�NA͏�	/�fq�� f�5`�Ĩ[�ݝl?}X���W���QK>�$���g
�
��V��$1Vs_���}j>��&&��=^_�XVE��kA����8�;��q���]�HߓD�J����K�,mۏI����
�Qw?��aas�ͼ�u*p����U�g��]�9Q��<[	�M�B��������D�Y
�p?żFub�{)9��Jy4�bH#Gݢ��\���t�A
+���5�K�%�
+�6�Q3
���/j��K2K�c6�V�?����
��a�9�q�@���:�Ǻ��jEa���K��#:�/�j�%��ݒ��sv����~�o9�_��s��6��=,���F}ƮhI��ݻ���ݹ��9�A��T;�-���3
��Z5
"�������*
0���sjX-ʹ�5�O�)�
��+Z#�(a"!A
�2�EA�� �mǣ�]8h?��3\\
x�n}`��b$�R	����$�_8j�Ǫ�>
4AIG>ʇ,ï]�>�\�"^Y纕}��=,��_1c/U˱��

q�Awq��>1�)�GdL�ݝk8D@�,Շ�!����K#��`!�U�C5|&�(&�w��y�
�G�|���{��:����&���.���T׏��*`�A�U�
�*�!g���E������rs������9Q
�?
�)uA�wՈG�6���� ��X�v�������լ��i�S��ܴ�
+sBMA.ؙa���2���}�ĥa 6���X�H�e�^��e����}�4O<������7�C�.��Z§d�>ct-� �'<06!c�f~�u�z����
+���m��ȯ������SJ�d]������e'��,������_��f�sE¥b$����X©�P[6Y���]�ϊ��kY�|g����X���Σ�O'ޙU5�g�u0�~�rw/*c��ာ��;z�7`���T��M� Y~�2h)�-�z����i/�����[��
++Z}j���(,
�����WT��
̯"2��^Q*�)�'��X�P��`�Sv��Œu��g
7���7F�g�R^�hͮj[��V�W�Q.b0ba}/�
�!�52�O��0�&m�K�O-+.�=�br~6̫��y�7��r+��?��Tq����s� u���7�_՚�p�d�,�&
+�E�d����
C��%����V
+YR)���F�Ө�ͺ���]?�^Y}���X��6����Z
x�����)P�����n��@���[��x�,��>x
+Y(
9���/�{�Qc�~T�·�\z_0	�{���/��+,�uj
�>$*F5rz�q��=Ԝb��n!2���\+�-��נ��A��K�W܎���9��t����G)�I�v�I����Ԝ�9V��
)ce�gLT���G�T��,�R|Np����Okb1�������o�:L�
���׵P����1gg�I�v_|V����-G�n�)�*���Ϩ+��A���{�ߠB�:s.Q
�1�/H;�w��y�_�dg.�Q������<�
_^�
���d#>�"�԰s>;�4Ľ��
��ekN\�c�y��+Yd@#-����wf��f�W ��gm��|�-h� �7�N��Y�{kDx�	��Qޮ�@o�&8%K/:��~"���(%�%��
}ozY���CcA�
2��|�h��Z=F-
M��3#�XPؐpjr0OHȨ۞����kwQ��1$0p���9�I��ua��
L�͐�,$04��oY�P�1豨V�J�
��>%�����ō3���g�.
��ފ��c�e���J�
2��[2
���H�2�	�u�K�Ɛ���Cˍ�5,2$�ދ������9ι}�D����%��C�N�#�O��lO2OŧY��AI{1�U�|qH�+X�
���<^P����}/1��^ϥ�e1�^������
��DxP#�l�$��v��f��
�n��l�Ό]
+l���{����G���YzRNF���޴�b
 cz=��*�p�{>��j ��s��[!�3���������t|�5���s
�1��ggFR�Y��X{�K�R֑�
�6�z0� ��;�����g�e��)q�1��A��=�S+�1)��rA�#kY���%��V��;鑷bN>�sn%����jp���
]ke�[�D�g�p}N�0����}�
󵽘J�q�/�{4�{�t}!~3x�V�x!o��'X��[o�Ƕ�Y�� �q�.��!��p��z�V�)�À�
0Nx at -��o�
���a��}xH�M�}�Ήk�pmd at X��p.g|����gT��C�����)f���|�h��jA�!o
+<���^��'dO*���"i#à
Ps�+:�?�U�_V��|P�·T�e�p~�t��j��_2߄�����_3��/�LXD#�/������P߭l@/��,�dtp���@`r�oTQ!�%�

���B�����I44<ND{n��a�~$c
+��D�7[Szn��ԟ��s��=C�U7���V at s��
+Q��~~
����.,4���<���l�si��4�[4��s�<�.����H���C�ۅ�ZT
K;�����qT�����i��3
 �Y���z�`�ٰ �B����,9%���Jk`^z�>�Vf��R��K�Sՙ�_�
�H��N�uJ`X	=���sH�sNi=�
cQ��׍�

'����9�(�AL�5<£즿/	�7c� nEg|AR�>!)�]��p��.~EzAX����wf����F��+�ٵѮS�?9��M\��7h��&
�3
����5.l�8
��]���M�X2_���^�1�}s�CW��zf�U퇕��z�x�>&,�~��e��[\�9��Y�%Īh.�� �ׁ)�W}��
�*�ů��*�ϩ@=�"`�S��=Q�!�>��~�Q�{Yg�1ȿ�(:�{�r��c�!/�^�(�k��,��
��V* �!}��Z>Ӽ�LFȺ�ɢ����L��8�Ȼ��Y�0�N<�`B�
�uwoM���9��5)8��?+����{�tR2<�Z2ߠb2�޲��
��~~e�'�+�f�K*���޼���8�	�
@��K�k�u���3y)
Y
<�*����#�
xM_\��UTX����δSޒ
������"�w/_'B
+
��>�UԣW�w�3��W��1�V~��	�h��y�mxH- �Z9�/�
��<fS1�{+�L<��{1H���� �#R�^X->�[�>[�x[\�Ө��:1���j���	�@��v
��.�� �i� hWX�ˇ���������F�?m��Z{�:���e���2��iΩ��]�o��|����c��+�<�&�%o!!?�삫�]T���
�Gљ���et,�m��^���ڳ����4�܇�,k���x�3���i�����jc\xqk�u4g�\�ظ�P�Y��|w�s����Г���'��
z
�T��#�0��)cc�I�u
�=��Ԃ�"1%)-���w�E
�ϸ�Kژ��OM�~NϰNnQ�~T	�T�,F�Jԩ�L͊JQ��f؞tK�w'���h�47-�"�)�����KTo�
���l�Qd���;��{Q�M*���.���\��X��e���1H����$gxȀA����C6����x@���º���x�οJ�d�t綠Z����"��_%�<�<�����������X�[#��E�ץ
Kz]����Q��
�|�_�	�}7�Ǩ 6
θ�G
+v!"�a��E�l�)�H�2Oeܬ
Ũ�_���u�Ö!
+z��
�c:
�3��%��І k��Paڇ�=�%���[ɀ���Qx/����*,���F>��b
+�/�jE�-mJK�ؔmk��ˈ������I���0 C*>�L���,��i���ccB^Q N,�P^%3=˻��8�	�<�{L�1�-"f�I�K��`�I����5�]T�=�qh�Mס��݇�3����e$���a����P��q=�~����T�v��O؇�S������S�3�y��(��ʳ��"��������
�,��zҡ,�`
���.�.q]�:k�������+&'���/y����q������I�9zm6������ÖOw}����2�/�\��͉�#�]��VAI�ν�8e�)���1������'ƅ�I��w�Q+�Dv����dǡ�4�8��_�l���I�ٕ���rsʖ�W-_o����e�#
���<�
�����\�}�?��k�Q���ph�YUSvNղ�V���i�u�7�c��V�ٌ�{q�kW��s�V���������2�~b���z9�Vv�r�״G!
�ҜUx>Si�s���(E\fub^V�8�]�Sі��]L�k6 [...]
sՑ��_a
^�9���s����.UW�~�~Jt%=-�
+�|:5���Ϋ��7_4�>�3�y`�-�s��?֟5}Wt+Y�y^��=�>�
m���P�:7�nŝhBMn��M�9;ӊ�ȃ�/���?\|��y�Qۧ[o?����p��yQ)長�>+kS4Q�o�5�BP�"<��bL������6iur�sq�M�w�o��'�W��/�>g���VR��j��!���s�	���7��^v�=j���ӎ�ןp~�MH����
�;9'�����
��#�Bm�$���H�����cw�>O��
_}���ʓ��W
���y,z������'�[c���m�w���O�
3��lG�R���j�?=-��x�?����V�
TP�B����$�hX 9�1�}h�5�hf^
=��Gm�.�����	�����>ܬ{?3ŹDk<��z�#
�4�S
�֍׼�Ꮏ�7}`3U�aLt�_"7�>Ȁw$�
+J��?WD
��S�f_c
�ܭ�s�~�ǻ���ܳ�]dP'͸���iyU�#5-)��������{��-?a|��R|u�E�Kܐ�a��ٹ��OT��{n_1~X}�<���w99�>��-����Yi%����(��7�C�ϻ�	�j�����okOe�V��..��
Zy�9���sh�.㛍g����l�p�����!W���_&e��+;o�'מw~y\�ɴ�ҿM���-t������GSГ��Fx��^p\|���泪��n]����ǒ3ڮ�1eM֪�J����_�N�L������dn�uz�^�_�_2Z%8�;&*IN/m��~��}r��pr��H�Iׁ���l<�<��щ�ZZy����˖�����	��urRt)5%(�z�}$7�g�}��iC��s�G��c�Y߆o�|�����(�\vFR����3�Ts�_=T�+C�Â^��Z�<w��)�9��1c��f�rP����M��o��%r����ݶ�G��}�1��.�Y|Lp>7+�J���l������u$r���5�es� [...]
���a�5��胶�"7?����] ������3�qyb
�O�[���@�yG÷�>��K~3!>�_c7>�\o:�w��#m��"���x�;���l��Am�}���۵����6QM
�|ƥa�m���7�s�{�_�=��f�a󧎞��

��ys�q(t��㨾����*����u	��֮c�/?[�W������t
��n�*5%�&�:ijV\������GU��]��+������{Dq�ߟ�K�x�yx�9�xp�����W
��

�}<����o'�������qYUrBU�3��Xy��a�E���k�t���a�A��/�'�e^S�Q���$�V^��Lp4��s04����G�[�S����﷟3�n4�59a`���������~�-��`_��e�[z��ɔ��ޡ��+�eg���>Y���拶�֞�}����T���p�߶ްN�>e
G���%>.�����3��+O:�Kz�����l덢b���t|���|e�_���o����O�ku����7i���IQ�6���[�эW��[��+�Z��>h��;\��k��c*?LͰ.P>�<kU�m�垥��E�V��kO��ݤ=�)�{�Ϸ��Of�E%q�����Ϻ���m�p���S��oxg�sz����9��p�l��s.�OZ���47���_�'����ᦏ
p����
p���)o_��'$%�2½�/�8�嵲�����c�#�S���KM	/%&xg2S��~�:0o<���쏾���Lj/�4��i�;o$%�qɕէ�_����4�/��UW�o6K�� [...]
;oE�����|4��s����������gv\޲9a�
򏯏J˲����QY��Z�_'Dg���¿�����O|�->n8�5Zw`^w⿇oW��[`���u��
�L3O�vA��rS���]/L�u��=��]���;


׼����܌��v������_�?�������;�3uZJ]�R
+�x���qw#��]B	I ���1"8�3�yd���{y~Ȣ��99g�{��jCV���<�z/,LV��8���2��^ߜ�h�+���41�

��1�����qT�vo��B}���.��LE���ʬ
e�wks����k]��[r�
)%��47끔ukrs��p
�rY�M�5�Ҏ���f���L}��>�b$ޝ D_Sr�^��\:���FHq��<g�r�X�Iw2�y�X��PW����0m%*x��s c �h�~�j��l.����~�d:�[�~r:��rU�?����}l#���n�7};�[�	�&����ܔ��6��3����Z�=�äh�(6�<�3
�x��}ַg���Np��Ly��F
Zm��![]0ϕț�f�{mM�K/ץ
um�{�0��0�⣖��.3��G���{ӂ�g�5i�W�^Y�%~b^��)��@΂L_���=Z��~���	zԝaJ�=N�׿&Y�oΕ�lc_��n�{��
�n�ֺ�b^�V�>0��E�kH�
�d4h�	�Ӊ�Ym,�����F��
+Ȗ>h����8��\n)u��_,5}���FZ�Ԍ
�5#H��;P��
u]n<�*l��y^��j�����B3:K�)9���E�ĄQ��.��B�����h����z��
?�-)��Յz���#����b|��V½����W��4�t�6]����U[_�nWֻ�QJA��1|�1l�#-�|{w�0hw$�u
}��������d�W0~�Pq"��[Ҟ�ҝ֛����0O�(�S΃�**0�f��
�7 �n�z�t������4l��9��t]l.�<��g^��v[��ng��EQ����B�3�t�P퓌<�8bƄ�
@=�Z��.Tg��V&>Z�Jz|�"�lB����~Y���V�\��oךJ>���|�y�.9~Η&i�>�2v�j'⻌������q]J���o�~���-��|����m��.c�ޓ"�*�7�������[b���B/.4�<���y~q̿�<�U
+���|\��y.�%��C�_���x:��t����
'��a�f�����0_��v
خ+�%/mt���~�#�:�G1��!,�-%^ 6<V[r^�8qw��~W:�
�U�h�Vl��Nl� K���
��������ߖ����Ȁ��a�W���y:�'&�1�Qt����~��	�gщk]���Ζ1.�4����F.5}Zo+r7��nw#|e��W�׿����
��$
/▶2��b]�+	�����'��Cw��u��> vuL2
@�X��R#��(!�� &��)z�=�X��c
+%��GLz{m����k�ST�=VV�>4�����V[
+ޮ6��nv�|]i������
)�x��S`@���ҷ�%����\�d':7�b�� c�
 �,�FWS�j�:��-�^]A�_��Ks
�
��w���]�M:�ӎ��b����E?���R�"����5��_r
~>��Cǚ��"� <ho�ೱ7��Z[�'1��
}[����
��*�_��}�����-��
��t���
�E��W�
#���Xe��d ^8n�:��Jm�
c?��H��6J�~K�bݮ��B�̀�^���^��Z��4I	�k��b����	z���Sn��w�QA at F�<W��|�
wgI�#�}�*�L|�ԌI�i�o��Ӗ�
+��Te���伖W@�
S�o����T"�F/)Zې�|�!�i�9�E�\�q�0S
y'*
+��
�
+
����P��b��N͍��,�|��Y�yg����4�&-������u<�y���fW��v
�g%nJV�c]5�M?-����N�FIq70���ػ-E���`���D\k-��k�p�4V��*|���r�&�d�
����d;�곜s_�Ve�L��̰��z�?�J��6�G�KJ�Ղ���	x.}{��YQ��>��rJУ��<�Aj��!t��5�rB�	�& �
�ʂOe!VI��|=��t
<h���eOL��c~lu{����È�5��)�ɏ6Za��1R�
;��n7�i���Յ�CD��r��h�`��$p�=����Q� ��rg��F*P��q���=Xk(xw8	=�Aū�?QSܮ���fE�
r�m7�i�
��9l�
v �%�K0������
>6)�t���݇���+���)||Y��:��FOYX%�]!�q���H��we��{��'#��W��L������د7�^?��Ÿ�����_����3��Zs��jcҫ�N cȉ�l����� [...]
+�>�А�qd���e����e�nE����D<�
E�O	!@��~����t�dI�v����4����W�)Z�� ��rW�7�-go����S��<v�����@�]�)	��9�}y
g���؀�2��p�EF^_��{y !��3_A=����<�q�
������YiH��f?�P�o��B�蛠>�QB�FT�z����M����2�
����z>_���
'}{���v:Æ�a>�qJ��8-w�ꪫ�~�dg<���?�R2_m4�~�F�K-���E_煹/5�����ǖ~��]NΘk)ѵ
���#�}�gg��jU�K�C��^��9~γ�V��F��l^���4LI^j.���@�Z�q�a�� *do�\x��c
*z	�����B�]�l8�!�Z��{ ���O�#�0��
+B�]J��5��O��
��&��0.蚚~ww ���~{�"呡�t���v�Ѓ��=�%��R�GӘ��ӕ�vAxc�#��/
� x����·�#����+;�����N7���n|�ù�d���7k��$���1Z����p(%�
�f��G�=v�s�kS�lv~5
�2�౏5��)b�E
^h�s����b
*����s�զ�X�,���?�V�?�QA���
�-����d��*�M����0_Aͳɨ9�JV�6p���W�p�7���/�z��
�ζ�o��3Ŭ��Za�
Cw��e�4t_�?�&@Oոt����~k��4�d�^l��#��eߦ��fxi��yiO&9ѯ
CE��<~~�͍a�<
+
]��v{�����x�<��a\����\w;�]vv��t"�'�h��3��j%$X�X���
+챒��
A��1��4���,�Yi�~��=�.��<
y���Ɖ�˝��#U��@���ё�ߵ
�x
��p�KL /��	& ��tP�Wq��oKu��/~�b�/�]j.���
���b&k
=�	��k�=,C���Q\�q�= �f
���~�>��2�O6�9E���楿��e���e<��E�
J���nd�|=�{o��nB����v���9+Hxf*�?P����k�Qj��ϴt��Je�cV�2H�)��p?}+�g��o�}v���LC�t;��rS�{�!X��~�C+剦���z>���ce��"�u�e�g��Og�k=�~*a:PC��g��w�[
+ ��y٤��~t��1��� ���}*�^��
��bV��"��$=���8s�d�m�ۀ�lj�6�?�
�@�b�w/�:!���pMM�qj�_�-�匿�H�)o���?�(i�
@P�,��P.���)�Ͷ�����OU��z���<������	b�� 6J 
�?U��?M-�6�
"G>����-�d}XiM{k�"ηC�����)�W�~��M9+��zw������oV	"�<�O ���f/)�X-�'�Y�mŞ]%^��D�1R�]�
~���zqy�Q���zK~
k��6).�8��a
E�X����t�����SuE!���'�T�}R�ݛ��&Y��YJ�;�#��4�C������.�ez
+�(�s�d���[G ;��?,�B��Y���

�!���s]M��|��d�g�M ?�5��o!�=Y��
�T�
b6�`��s�&��^;C0_���s�������_�e,��ޖ�iw(���
*i_N�:�c!͓���az��/o�����M}p��6�G �/V;K��;�~M����'C?'�"f�/4�|��&=�0c
�צ��� �ʂd���!�OmK�Cf�"����G�Aw'X���Ё���nmv��&jѾ�eQ7�`�%�k�>S�쓨��
��Zw�답���J-�D�$�?S�����Vf�'��%eĿ�`F?�D�\3Bͷ�z��
KYq�
����QB����iV١�Z�+��X��5�r�R
c�\}7&���
`�39:�@����-�5
���F�Q�	�<NJP�&>]h.�2�I	&1!�PɆ
��6%�t{
�Ӯ�is�5;L�No�W]c�KMu拥��/v9
��\�(�����!#A�Ʃ�;}0�ņt����O�#���QZ�mB�7�R�VZJ�
��D gi9.��
�F7��(��dE��y0�B�MQ!�=e�%�`Wp�&1&Z����+��3P�i�#���T�0y�!D��x(GD��|W��F)�w�t��f�:Q�Q'�U|�RH�OU3�Z-�J���]�/��<�����.f���JO�M��(���R��0���)�)V9&�<�N�β�]�
n޷��*�D�<f�T
�J&ts���s��,�bbz��#P5<:p���(�b�ݥ_�:��o
d�]�Hy�kJ���2��t�_��#�
+�v:_Us�P�ܲ}��<BM�
 G��B[���gpo�`����[o��m��
݄(�)š�Y5l��y�w$c���`�z�� mS�|���j
�����Q�QVF+:�ZX�q�
��O��
�ṣ�B}%V+�����E�&���AR�Lu�ke��Z&�>�B����qT�NO��j[���΢/�r>z��P��2F�{6I�x�ⁿ�4!��$Ž��>�C��4���]����_d
+��
*��.�ܓ�R�gi%�*|�bs�ۭ.z�Y��]�c����. �?��F=
��=�d�}\j�Eh[�?���k
+B��='d�˱ ���P��
��$<֮����l䞌�L��up8Ł^��>Z�7�^iJt���y��2�U"�j7-�~[���C%�kv�Y��7˱qf.�1G/�/�v��
-��
+�q����_
dBE;��E=��c���A��N?2�Hţ��Jܗ�
+�蛊�
}��u͡b���"�UU��j։���T'X����a���v��tM����쀣
+��o{��<m3���VT�
h�z'�W-�~a�+
�Ce
�؄��
+�c�Y��P�(��-���ݝd�ܟ��:�7���&K�.z�]Խa��a�ײ�S ^%�T}{��8��
/��Fo��y
s�,�]�*6R�
}�4���l
A�ڲ���3=�&P1��D�Z?��TS�t�T�n���J�0NQ���lگU��d��Տ�b��!O�u���5a���>����x��,�4�ɶ�	�K\�CC-��,�d��ě�p��ڊ��j�a���܊�����\�a�]5l����p��?�,ʿ;��>Ջ��nF�J���0"h��m���s��Z��
1�X?@OX�"����6;��f�l�+?7�r?"��
��a��4u����ASt��5>�c_\C��K�
H�V|�]YW�5��s���t��7Za��7�#k��"mN��X����2B
�i��*��]�� ����_�R0��6~�e��oD���(��r
�1�6�P��v9
��\��>ӷ�26����ʜ�&Z�NW%x���������$.k
!�_��?]�~چ%[}�~�}E^�il��,�z�T7p�T�������/��P/ /$9�
�rK��J}���n��e�,�>��<�2�{�|�����"H�i 폈��
F�F����ԓE.�p���0�'n�y;2Z�E�.9�������rv��&t�����8!�TɁ�%�▲�=���U���Ѷ��Iq�����2��.�t�,Դ
�W
+lS�b�%�x��?�,�e�$tg���
�������Ac��ҝ5<�gc��XV+��
+��-�S79�@\���b�V������1l쾂9�a(��°gV�=}Oy��tm�Fv���܊���$%�
ow�5@�wNs�>M��>.���uM(��V����O�
y>'�ܪ�
S��
��������s��,=Y��<Ya���?�����s���Q�gK�ӥ��$�t���������lc�/mm�u�4z�5��JO��
+{���o�cB�z�)S���=䒇m��ۂ���0�!��_J��
+x����m��kW@η�}wyx������;���g�C��ʡ�T���N�����u��i�5�ĸt`J
!�7P�5ɱa�8�1�j2����\���AH
�#��
(����&X֋x�3���c���d�0��nB��
�cg�����M�	I
=$��6L��jH�uFr�dD��B�o��1Wx����~W���^���
��	��9
�v��<��z3�,��ɪ�|����c��b[u�LuE�(
��
�?�)y2Jĺ
��_�!
�6e�+
+�����	������w//�S"n�
+^��? � .Ѱ�:*¤�@�;ʼ5y�v���CMo}��!a�>���_���>�WŁ{6���a��]AE]�q�p��p
���R
*�@I��gh����=��ߑ�"v�� �7�4Jؐ�r����;ɧ����\{p�.��ȇ�P�Ea����8�><�
+y��25!�Q6靘���E�
L�a����ALK��
�lԱ�K�MSr�:�=T��s�h��*�_e^�-���%h��%bL�Ud��U|딤�k�����y~)���5dl��ܸk;�D�4�h��vĜ��~䏥N���(���
��K׶c�O
+Kߴ³nu��@����&_���ވ����Ϳ@O�ף[�@o
��z�9�+
���o��K��d��gyiZ��O����Ҥ�d���7��?Pӊ�Jv�����1D��k�Åʼn/�iQ��r�o����x�D;���ȹ/���Կ�����
�J�` n|h�@�y�h9W
+�"A�n��N�A.��>>y
z��>�Ƶ?A/������y]j���S
�]N4�|���
c��X�Sm��Õ$�t�-^Q�5FN�hTȥ0��@����=�@��>���/A��?��||�u�*(�#Pˁ�.��n�7!���K�O����T�>.������
d�
� z��r)��P��w���7���n��=}
+
+{��v~zp�/� ��_W�u��8;��s�Cʀ��t`�����1j��7^E�l� ��b�N�H�]Zfʕ�`�K�_A�^ޠ</P�gw��3'�[`?
߽
��?@��߾�
7/���:��
iV#V���7���<�\?#qL�wk@�!�'\)���Ryh 
�t}	�������k7@���z����yB?9_��E<�k*�d�@�o��%ب���+�X�q!�]7��a

|
w�$<��������!�Ã� ׇ�Ao��=�qt�����/���}��B����1N����<ұ�G�Gٞ���>��P5�6!!�Qёb"�/gz��<
?}z� ��%(��{`��^޽r}����MЕ��^ ���Dόz���}�
@
�6�MU#ܛ�7�i���l�sUy�=|j�'��~���ܟ>}{�

+~��
�ޝ�WA/��x��	��տ@n�
���)f������
����nq+OV"����6����B�j�?�r�>
���М�蘟$x��	x�&B �����p���N��*���K���
3�J#W&x��J̻j�C
��%r��w��G���KO��=����Ǡ�_�~~���Kͺ׀,=%$�t �٧�`���ҏW@G���ݵ9õՀ~�3�.#�/��F_J }y�
�x��}}�8���=y
�����O�?�I!:�)���O��xm>PY��2]K�>��
+�b�\���cT^��`OP��;����뇏@����
+p�'�@�
�n�y
�|�
(��PYX��&X�Gm
:T�G�����t}�\q5ͷ��p�,;^+�U�,���̸������
Pg�N�A�oރ�?v=�� ����#'�;�@?���hY�W�|�;�������Q��
���rr�^�ɟ�eƍ�2�Uc�N�	1���
+��������9���Aw����3���{��O�A�^��c<�^�'<Yi�F�ɨ�ۣ�������v����8�B��f`_
+a����K�~�A	^^��/� w���W���ݸ��S��WЃ�w ��
�p�p)+���Qv��]A/9��K<��<oW3a[������w�z��jD�cHXȕ4�o�$�� ��@,?�������?=�y�X��g.�����\�_��BB��%G?��#���sӍ�f�UY#Z�!G/tS#f��?�(���IWB?�}~��y��
����7\���x������W�
=^��>w���\
I��
c{ 
�{�_}0�@���)[�J�a��f]*@��Po���k���?b=�/�|���
���t�꟠�n��
���s��,���.Q����;˂5�YγC���ǘ��3V#�!�]�1��D���
+�Rz�(2�&*z��
�?������-�tP�����J�
�|���y��j}���&��3���_�Y
O
�\S�yވ��r��ű��!1����wqI	w�))Ν(��t
3]?H�_�)��
�F�T��]����!,�6�5�u�BD�Zx�
q�(�CT�A��rK�%�\��g^�u� }xz�� ��@�^�Wɩ��mH���A���E�ޕp
+L2!�8!D-r�BD��
+H�
	�.0��sXn�$�j�IRp��o��A��t���Џ/�.G|
���z���+~=�A|Yn'��T�T�b�� �Ղ�����Y��8]�U��7�
8����!>>��y�"��@n��@�o��x�\Ed��X�
6��8���WK7��ǹ���i���<YQ�9&�-
�cU
���j�W=
�[T�(/*�jJp��`O �/��}�w�裋(54�t
+ԩ�\�6\�4+�ef95�@��
�4����ڎ����Ul�z��S�nj�f��6�	�+ E�HY���wKSR�}
����;觏/(6����W#��_���]��;O֓C��p���a�UMrN��3{��E�C�[��!��+kpP'tZ��x�kY�!2�E]�|�
+����Jv|�ĸĻ�q	W����|�}7�3݀�.�e=Y�*
>]֟�p��?�ݛ�L���
E5]���!"
cr������R��'(7,
+��p%�?���g��`�˨ܔ��X؛A.5|q@�0�*�j6ڦ�v���;��ٚ������{�Q�-x�Q>�c�f���5���
i�X&khV��e�
0)j�qm�mJ����4�E��9�F� �1U_WT�W&��KC
pM+r����:�)\�ҏuU,6"���a;����).���]S��S��)f����˻�L���-� ��1�eU��
V��G���W_<��T�
��+z{�����1a}h��VS
+�ׂD����J�n$�������}e
�`��;�r�Gs��L%{}����I��1�)����
V*;jR]M�S�͙���Y]]Ԅ��?HŽQ5�eH��{y\�>QU��@C��T5լ��Sl讄����6�	���ԋg��Qtĺ��
�4���*���f��Z��I�vv}@UGL7��u���2PW���Y��T��^��UVٴ�Mֹ������Åڎs 
�Ѡ�Ir�^�����}��S��1謴[,�y��1��W�?X#
l��po�yN4���[�^��R}߾NTw��(>Z���U�_ܛ�β�Jz��(9V蟼�⧲��0P]�$�)���R&�A����c\]
ȉ��8� /sm�����$�g���XMEn��#�Ä��Qn�Q&� gJ]���u����!r̦Ю�,�Ar�1v⣅>v���h�dw+D�.�������Ʃƪ=��5��VU�>�
�|;Y���7Zt����=%5Ϧ�S6�*ʗ���S���m��ɖ�DY+;L�__�
��hƛpKbZ��)jq��܏�k4���^�F|7�"��S+9ж [...]
S�d��Y�?�м7Q�w(D���ޚ䡍�j�c��e����C���~B�� %fG�\�
��c�ȝ�Z�֨ ��OK�JyeG�B��b�Xe��|��T���f�
jf��b�r�wG�3��uǪ��
��T�`OY'4�9%bBԦe���Ɖ��).l�����U�N�N
�����h�V3�J
+�&GE�
���
+tүe��6�#�|��|M�u��wC�ж5�ڳ����TԱ��(Q�#�^Z��U�!G:�t^�9�����#s�[y��:Mɷi8x�RU-���Љ��N5��s
�f�,���Dž�~ ��ʮ�deي���,c@�
+����ou���iO�-V����i��k:�*z!���
���v�Un���wƩk=�>{
+f��\]�z?&L�
+��>��
�F�(�4����b��3�/���&�
/���UȸC,�*��l� Bm2j��4y�䔟-�9Z6~w��wg ��ZG�
m}��)n���+'�p��N7�cH�L��j��D[%��0���� 	?��Te��=9<��FU�u��{�	
d��/zM�.�GZ

�覸<Tۚ�y���}��k_���a��<���:����2�S��ݑR߭�⯿7�-G��~��s��l뵫���g�%v99�(&�.5�|��	s]��g�K�
��8�>�1C-pL�rlr\⡚;��� uw�Ъ8�o_`�t��1�P�9!� ��[��9��l�I~�篥ꎣ��>�J�ܓ���>&q����ڭ*bi�^4R��;��<��u
���
Ӎ-V%�ґ�a��;�ܕP2�5�8u
&kOVI0�<��h3�N��9�񢠥��g�i<�X[�l��f�{*6�@]Yq���;��d�+%�#��]iy�ɂ@p8[ſ���]�'����
��Z6Ϊ"~�o�g
i��h�
1�s�1�TC(pL�����0�����5`�i��l�Yv�� 1��vX��
{��:��5O�3�*6�`��x�����NU�E�ۣ9�x
����?�'X��C5r�T��)es�6
��V��w�E�W��׺��uM�^)��H[ݹ�Xݾ;M+p���u�����ڨ�Z���e��<�
��X'j<Y5
�*Egk5�@mq���<�e�
JR��0�c{ ���,
�9J��u#썓ҏ�L��ZE�ɦ��t��٬�ɚR\WG0eK��ۓ4�u
y>G.9�]�lf�
rT�V_v��`a�Zl�1��r]4���:s��OcSlS��y�d��ma�>&�v6+p�s}�MN�؛�%mI1IKC���ir��2��l�Nj������¿�y<�1�PEɱ+���o�m�o
Ңȳu�з�iv��Bu��b}�E�Û��i{e���R_�h��I
+��ϖ�ͦ� V�X�۝��Su]˹��~1�&A�P���
*a�#]C��q��j�GZ������o���>�	t�/@��Q���Wϗ�5G�,�o�����\Eʴ�HY�34ȶ
��_�����x���6�G�'�Y��2o�s>S���hU
!����
���T
���=��U�Y�϶)i��j>mw��QOy�\��e���cUR�JT�M��5I�B�bH�e���)�e.����2>�d�~�O�E΁�M����򠍞�O���/�B�l[�וNx��L]�<���
+f�UE�7N�#l
+\��|�-���
� �3N�x���ʆ�k\ >�
�橥��O�����T?h��`v'8E6�H�7-�0+9X�>�x�

�S`.�\��*�i�B���Zr>_�r:
�{��5X�m����4��;�g�/f��j�'s���|&))�t����
+_h��G���}�
+�S2�
�;�6M��
�HE�+��:Wh�3 [㔌���&���>
�⹋�Y
���C5&�x�~8K�
�'9Iٹ_l�H	�f9"��¥[T��
.�x�Zr�T��]�Iŧ�k���.�|�Zz:��\�Js"y^�F�=����gx��R�m�b�

��N3J�C���>l��8*|G��L��8�
��@[Y�?�$>^��>^6��?���6
��6�
u�(�3Q
�ؓY�P#`
j9�ㅪ�_���ߛ���YZ�CM+>Yi�w,4��*�p��V�N�=��?z�7-����7M1ᵘ�^D����š߀>�(
����ْ�\��|���q
5(�~���?J�;SVRk*�x�OQ)VyQ�i4��t��
��k�ȿ�+�ut�Y�K2��v5>�HM�>P�rvG0?
#���>f�m��x ��YGq��~����c
�znte�4�˃mrZ�� 1�!a$䴍QL�� !ro�[�?�)ٟf!�rZ������D[dEr�q���-�F�&i at -W���y
�s�mjQ��\u��,z��$
�J�,���]12dwd��Ct
�V��~8WSw�a�
 _;.�w�q���:T�3}?|�P�v���w̒�m*d��QV9"�h�pN�v��4��RTq��0�?_]�x'��L)2�4��t̲��GM�
„�%������s �
ϊ��\�]�O�
(pL1
+MbR� 1��fgY�����+|�xq@�2��𠥮"��&nUԲ�`����Zu��u���������GZl��(��r_���1vg
~4�A��U�Gj.ơ�O���K{6F���=H��;^��N%J~g�&�Z�r�Y�U��Tp�fg�Y䘫i=Y��L�rW:�߯w��
)���HC�=K-�
��,�$=�1�
n����h�
i
+�pa�C#`��B��"Gp�@!]�'�o�w��
����V���y�:Cx�Y~��~�Up/s�GrI)���{�I�{傻�m)��>�Ht̢R�E�Y��8��2�
�>\l�94բ��P�,;��K�F˃��<�l
��j
:���Hp<�*>��������"WP�v	%}c �N��S�����u�^�3��,p[�-u<�_���
��� 
�ǻ�K���
�-�* �B
 F6���IXa�.��4cB*����~T�u�
��X�i�6�EW��b�*��BU��`�7���9�Ϗp�ه��h [...]
+Ԛ��7���I
+�
+�ړ.�1M-ܓ�
JZ�m��e�� ��ݟb�^<z4W%8�յ-VU��d�����
�U���
�aR�UV��P�aV9���2�*.�D�BY�T�
����A�tU��s�3w����r�XG-�W�G�e���1�7��<�,A��Jqq�Ir��8>�6E�9>�MI�7��q���\ʊ�&f��Y��e�^���.U5���l��� >� ���?�����#&�$�#�v]�[W����	��h)�4
#c����>x�UA,��&�?_g��t�C�I2+
+�M�|��%|�?�,��45o�����������C�۟���~oT�
/�K���́"υ��Os
�VXu��e�.0�6

~����^��
\d���vB�'I�+C�
m+7�*ok9���<��SNT4�]E/�H�qv	����<��i%��Ș�[�Pwc�k���>T�o/Tg{n����Za�k��^1b��K-\�1���D�)![V��a��r�
��=�/ �g
��Jw[j�~S7�xpr�=1vᒍ���Y~��n�};��|U6�a�/l�O�(-��"�=���en�߳}y�$��o��FIi�jOڛ��x�	X�~�4lZ��n
+_��{5�D���8���y����h��t(��'��}����i��3��i�Sr
����!T P+����_eչn�
��C�p�# �o�~nt@�w�r?[G�^�9�7�R�Ng�e��LԞ
Խ}�1�#c��ŧk4�1�]v
��,����繄s _��ܵAL�e
m
Eo����)�uuY
2F��,���ڣ� ����!t�Z3��ru�c�py�i�;T�w���lu�]�@軋CL�e��=n����l���R5=狢����T˕ugK,���_�$"�"E��d�il�
�Q��u
d�`�O�ov=�l_�O�
�m
��{P����/ۣ
��ê�඀�[����f����O�z��qq[��T����>W۰%e�5
���
%~�QB�V��".��$V?P�k����,Љ�
8��z���9v���{��r��2 ��m��$�4�,m�f�
�W0��*�T�D�4:io�`W�r�t<�~
y�f��W[5g�սGKL�
+�d�`���P[�p��
+^�.�ӵS�
��	�L}�c�}����rp���L�

���s��
ot�x��5�ƒ
���v;<4�݌žV%!��6�
����&���Bm�]�'X�r�O;���́R��a��
��7+� 
�y2���Z�	���7�����J�,5�^���d
��v�cT\�s� ��1�~T�V7싮)2����t�

����Th����@��]�bx�c�T��!��w�x�ԃ�N�4��L3�@��A�m'��ZS�'�8<����i*� ���6A�����bb�e���;L���Cl��|M��ڰ~
���RF��BM���q
\.�s�R"���c���K���J�-�Р_st�@E�+!�����~>���I��g���E�K=I�Z#�׺r�Y��̝1|��X���r�ִ
{��U�6ƈ�]S�}Y-Lzi�$�7 ��v�#�5��R�Vy��g>��S�Ki!��njk�]�:F��>B�e�
��YX�$1�@���[G���31�s|��<��{	�_
��DK.:�R���I��@β����ӟ�vd�:Q`�Rn��n�DZ'�qf	.aw�s��?W��q��$�<ł_�}�K<]�1��l�ٜ�e�� �g�g
��9QՎ����7Z�+Y{��\�����
�\��u�K��2T�a��[#�rZlIz�k�N��*j?Tc����0�
+�h� ���l��rx��2
ЭT��"O�+�X��9
+�I�6�<��Y(�~4��.��
,��V*���+�t��j��:�
�9*ʢ f:�\+����B��RU�CţZ'q�Qt��>���w]F��OIi��7@�L#�]M��Zk�'�`��L�dR�po�.�Ź��=]����H)f at _/4pG���L`�/0�{��["����H�ygK�
11v��}���c�.��v7�~:T������ǡ�����\i�}9W��\W��vN��\[���^��_��>z�	`PPx��$)�4^
�֙�vrm���Ł�P|0'�Z���c%��|���
�, �
+,���+�IχH��V:a^��e>�:臽v�����:���w ���o��������������hy3.�	}{��4��y>{��
u
ښlO�p~�bs��j���6Lʩ�V�Ԝ�ћ�ٮ����#%��J&��Īڼ�2^����
+��k5}��l�� *p�h
�D�R��
+&j�����|��	�+mH�IZ�#1.�����L��|�Ҙ�ӍL���d��\&'}��OÞh�����>ꪢ�-V'<4�A�~-�i�s�^v�O"����
+;�����{�:��
5斒ys�)���������	x���(��W��
�fOїYa܃��/7��N�s4�idu��c��3�Y���=����@+�M���C���D�� 0R�2L�
�RZ���Y��Y�&?�a��E�_
D�\�d�;�%)���o
��|X��9[`�\�/T��t�u&`aJn����L�#-�?�ś��m	)�>Âk9䋞��.
� /q2�IsL���R陾z�p�_o�P
+��
� ��$æ����Ζ�$���0+�}MU��u��.��
��H�8+�4J�]뀺����-�4�q5W��l�&��E/9/��
�6	"�t��5�9�C�؋g���
��
��*
���r����+�j
�D
���u12M�r1眏�I�cg�� ,����ܞ$�\ߑ�SG�������QV��(1n����fG��
:W��J%H|�������6IP?[�>�tz-�y������
!� !�Fh�,�t��"j=P3J���V۳_��d����u���;B���@��t�#�X%�ԏ�^�ߔ �
y������4 at I
�C>�R��M����Ћu���M�_��ƽI0�7����v	1��	�rT�\S�ۙ�K��"�v� ����^�s������j�ժ�S
���9z�6���{�hg�ә�Mݕz)���,Dqw��	�!BH $$h�����9�{}�?�s~�E�E�w�^�z��{�m=�8��v5��
.w���]�x�t}�5�E�J�_\�C�x&�%�	!*8EL
�c�6��ZqɃ�ʷ?�
+�cv�����	N���m
@�����#��װ�g��"�9�w��АA[��D�:
��0�1}U�$����y�O������2[
�%l
V>r��_��1Y�zT�6Y�=3�4���:���橃9�=Z�>���k��c�,�p��
+�4�4=?��"JfEOu�������:6M��}���ɡ�R��U �le��y��U��"�,1H!=�xm�rw
���@$�Z
+�%C��ɫPt-��+㤌��ej��>�����aQ]9�W:s.[;rn���;���	hd`�X��� ����z��pm��&:��U��jw���`�84
���<¡�O
+*�`�$��s��g�l_Ä���O�>��!c[�K����'v�R�&�:�Lж����!#*#h�Ć���=}M��"�"Uќ�`VT}`�
lz�Y�$"z�.����~� ,�k
 &��_�҃J��=�C�[�
����2I���P�zVƊ�MN�;��W�eA(Z�~��exU�����Q�
v��O��W��+�L�Ws]��E�ȧXl���w��r�2�S��t�*�u¤���{?,�9I�Z�e�e�U���jf�9-��� >��85���@u�r�V�s^�ɾ1Nʼ��Z��
� _�,��<g
��ѷ�<�j�
���
 �8Fʟ:��/]� �ˡQ_�<ގ���*Iy�::�pAT�%G}�w��U���$i�����ۆ	u���И�?�za����|*j�{��6��&���?��) ���Bj>��{��~��a��
��|�W3�ґ����

��Ȏ	ljPI�:�d���O}����Q��1���DYw�[��|����&�Ԥ�=
�� [...]
+�����9́Y:��Rzëb����
k��
0�AY
`Ϡ�^)$&�&�������H(
ikҎ�����F١��?ZXt�Qp\ζ�Tx 䦀�Tj�+��PSJt��g�i
+�� �'p�+
y:
+o�G�#l-�W=RLJh��Y4�C
+�cR�y*
h��ﱻ
\����61P! �m�m#�}���n ��>���0<rWG#~^j�;\��~�fg�R�5��w
�ޭ���p�
+Q�uK���$9c��qb
>�w�ֆ���oMP�wf��>1�Rt����yï��z��
.w'��o����琊�����;!�>P��ț{@,���0s�\�$8bs��7��qM��|��Q�)FզR��k������V�]sE�w������]u 1�~}�����~BzP���S�rS�(KG���KRz􉝹�����;��+vf�Y৛Ð�:B�g+�u��儵�O����3�x���� ��� �Ö
��W��6&	Is��w��)�o�#R�MT��5�1������ 1�� ��% $�h�C��>��e��,�?k
���P�A�]S���`�y:"��ܣdV1�ٖ�\��1]S�8[o�
K{�M93眸0�x<��{�h�D�K#�9����zF��P�Kw�
sW�uko�������k�
2FѶ�Y}�$j��.j�3P!�ͅ�tܼsK-���i|ꖒS�Љz�
+���0V�A����}qLA��I�I�#0U���6��.M
DR��7�0>��bC��E����Ȅ�qM=_lO�l�H9�uYܺmn��j$"��V��\�ud�P�,���:ZeH	��
�읪x��]��3�6�<�ޢ���ʡ�hIEA@��Ǫ��0q�$�O~ޚ27�ə
�*�a���Do ������-��ٕ{#0��
+��ѷU���n)�(�.�9�KrL�c]2d�O�M�6�P;�澽������#K��g�P��*?���8�� �ԑ�=F�_/�lN���䝥���Ru� ʽ`�,{�"S,������Z����1�-_'�n<�:R��6z�g���
�.g����ʐF�	h95N9!�?�M�b�H.u��ɮi\v����
��r�!=��slt�Wב�Z�!��]�W�Q�6|C΃.u��-���DM+9?M�<��-��m)y�CL>�䕿�L�
+��U���zF��˝E��Y�\��ͨ�]#�h]���9IH90	��&�h��80�)!@/{f1���{>uu▆Z����4]�C�
�YЫ#�g+�E7M-i/O�
 ��Gp	��?V:*#�y��9
e[�� �Q"3�U�u�k�X�=8�"�
+ȭa>6r_�� �=�=�Il���O��%$���1.�p�߻:|O��M���Q|�B�vi��t)8����2U����l:1�.���e�o�(�oN�JZ!�+g����*}*T��@�3� ��� �E�v�k�:a��qs}��:J M���8��\È��L��,��d֬
W&/�估ue_=41��&}�6Tx{}$��R[�
�
���X
�S��"�3���E�~�y�i��,n��3�
i�;kS�5�0���p�V���G��o�?\m���襫��w�N}�:�M��3��%
k7\��H�8'q�.)>�=Eɶ��,��_^n˹:��xj�%��z�yP&DZ�jT�̋�È��YR�g3	��B��[���y!�$��/�kj�X�'�}�X�}3�7`2�&b��@.2
a>�.y��"�%C��=�R��ۦ�'ߩ(q'���<S�,�%�����a}
���v�|Ҏ�T�o"����.��D;g85
U�pi��j#��fH�Z�/L����)п�|�Ѣ�#}w^"�_l�=X���[��Z|�G�r˫>�dԢ����e)y�����[���{a��;�?�lG�>FL:g�-������ʟ�b�N����
+1qs�蜀�	���=��';��쐁�p+��������6��BLnЀ+�ϱ�[Zvg��q(�i����Qb�b��7Ã�����2�r|�{m�GG)$��Š���Q	c�D[��g��6��h�=^�|�U`R $�wWP5��r���J��Q�^��\�
+ז�Fƹ�k�=*J�e 
���
#���(��Ԅ\KW�-57�����GW���m9�T�)|؅�?s�[��D���^;#�
vc���Rr`�Z��!B����5����H�(2*\�T�H���⏅��W�شk1�O��U������c�r
�o�
+��(,��5z��M~�\� }ح�������b�����Ks�W
+߬�T���
����y>%4�#�x�#
��+���5*��J�Y���&� ���mhl�6�!��a�$�l��T��T
+0uG��(�in)<�=�zpv������1\k����0��j{�}�`���~l�\�y���J,�����B��/�
+�X��
C��9#4��17�
-
+y���̔�m���:f����i�Qv�҉���J

פ��f��r
"�� �J!�������ڈ)g)����$С�N��Q|��>˚�
��1���*H�+c�t]
�c��1Jw
Ԫ�,4ƧG�fi�x�F
e�(b�D���K:\�
.
+D���s �Sr6��C�
+qٝ��7�M}p�al���~L�RK������rV�*a�qa֟ݔ����
+ =�#��
)"vC
+}��$��1�l�>������
##|O�z��~�Iz��#����W�Zj��o�xYW)���^�w��\��b�:�0�K��W�m���޻��	~�uu]��m-��s<���=� �#xgIy�V�KEC��
���&j�i)�n){k�V}������Ӱ�N91}��n{�
hKZ�W��^�I[l){��
���g���q�2|�8���=��!��Z�SN-��A#���p��F�W�A;j�ۥ�,4
x��>��5����~��}�:R����d��xjQ�E{E��
8�ܕt�Ԗtyy�❮�8j������*Ol�¦Ͷ�{,ԑ�q��B�,V��TO�̧?II/�������I	i�B�W�g~��)�c����
+����P��G&-��#|S��W�=+$
.7O
ٚ&%��I|������� �w����=ŷ�=۫�/�a_Gjk�:������f�):�N����ɻ�];��1�(>�1IN�)�!�4��V
.%���ݥ���<d汽rb���M �㋅K��	ț
+
�5%��vsR���u��Iq���B��ek+�nlL=mm/��6����V�r�VG̱Q�)R�OF/
j�P�
+��S ��ӰhM}��YI��X�/ͣ�B�T��-%<&�F��ϓ���Ъ��D����lbc���0?uB��\}�O-$�;�Q�������a��nL�����3�f\��%�
�l���M&��4+���\�`��X�=����z��-����1��&2xo_2b ��e�
L����5׵�/	� ^>��L�.6t�.ֵl�o�>]�x��Qa�緢�/�x����b� ���(��,'9�} 5HN9-�?�4�g�m�xh�x��o������5�u�hTm��4�,�U6
+Bs]��ˢ����
+
�
���]� y���
<�74ug���:
+�24__
DE{���
�ޡƒ,�蔠Q(ٳ��湸������+<���%MAS}��\}�C�,
�j��ڦ�
����Sc��g-K���Qf�c����yK�}�K���m

�bs����!�����b�L��IYU _R���-51oK��t�`�rH�m�ҧ���,��aN����aK/���Ҭ������]`�,��]����(��xؐ���4d��
j�h�,�����y�ٚ"&��9�J�w��Кs�X_t��E�o�&�Ƨ���-�9�ʺ:�M9=MI;ci)��$�ε��X�q)A���V�jv�y�}K�Pp������;�o��ޜĥ�벯gH�
SC{�
�GF�Xh�����ccɫoܼ�7?S�
37�E�l���W�2\�����s�1gU���+�O7&�Y��?�k
�ۻ����
�5/��F�-�A�ӥOl�_@����0�o�@�3�	L�=�Q!��,�
3]3����[N)
�s�s���p����w�KJ>�n�����
y�G%�`b~�C~<��EH�N��+��Ӝ�K�u���T������ �hKW/�h( �
.+�a���<��%���L&��Ƞ��k	�
��`�qlgI�
0
+Y+cȔ���W�CP�͘�Dŷ�ү���n���:B��;�YyJF�t��O��
��3��7�����G��=}C}p�K�����
ڞ'�VXt�"��&�&�1�n���\�loݳ����
���_
�GD���\��0��ҧ�����}�h�m*��\㕑�]�íaA����M)�8���$��>��	���m���md�v�D��y ���-
�7t�oN�kRja`��p(e�u�����
���?m�T��[���1t� ��9�
"w���7�{��ܳ��!=��=
Σ��}smێ��ǥd���1}s
�KM9�,�`��bm����e���qjў�}6d�2�Z;
��
�X۸m`�� ��:�*���7��['l0�!���
�g���F�Y뫼oo/���'�T
���*����I��?�ؤ�Q���f�][W�����ǎQ��1�������B at I
�nM��{��~� �
�%
�
B�u�`� ���S�A�)L�J'⥂]rg��
��{����(�oO��!I[ؔ�������������H��K�qW콕�}��
��V�_�H�)�}*s[W��)�|ឪx��#A�
�OE*��Q+�c���
<�k�~]�
t�����j��	\����#��Z)��	�ؔE'J<;N���	��wQνog��Wd��{����m
�����8� ��e�4�
��#�dy��)�k@�bBZI��,ґ+
��wkҼ7�iHLp�F+�4Q�.*� ��ڮ/Vd�
P#�v���=K�&��>��-��|7�zOK*�
�E
>���ݘ�y�Y��1�*_d�X�0�� &_����C

��o��P$k(x4�I}��^7�Q
��>2��3�rl��
�����B)'�Z/)���HM��8!��K���cb�ư�N5wu �ǖ�V���U�'E�}ں��|mCxo#'˼:( �ێU(	%��^\��
�Ϋ��SL�$��jSE���~]����w��.B���.|7Y_����c�-��\��s.yY�k��cH�B� 2C��:�؍|盓Hv���
����$
u��5uc�
����
9"wo��t`��k��'ܻ�k�CCV&��6K�3vC��2�����0����p�v� ��j;��RS���&��^&�<����Gș����8����q��Uyw}��_y�g�l�E� 2�:��O�������\�r��<th���\z�;֦y�g���3K�ՙ;jz��>�9DI�v`^�k
*��4����j����X�w�!���T>����pI1) #G;&j>.�TE�Ġ�K-�<���1`$��j:tk��<��~6q([Jt�k�fWK,�V�r�^`�k��}6�]K.Y�uOԤ�O�ӛ0/I�wVz	����s��3��ӀY�!){��*��RSUD?)�Z���߬tVF�(��
G~\�Fl��>��Aϝ����
+F��@u����c���
+��LB
�)��VZ͑���kQ�^E��/f
� .�w��e��@��E�	�{KG�
5?��� �u��7�̼�����f�Ҳ�Rrn�)iG�E��>��^���
ZX�C3�xh���/�*w��*��E���/�X_V���ad�m����K��p8�a���s�⬛k���;*Jю�V��n.����f�%>.��[�|�����P�#�

�QS˶4Lb� d�O��}z'0/�xՀ��Y�}x�D:gh�G�~�\��?HN\j�y%�'��w���<�J
4��\~�EJD��T�SN(�̲>=�c�B|�z�jr�OMη
B�ε��^�CښJ�:ީ#V��\��sj�ל�t�G]�a-|�R��A2��2��Ma{���.Ӱ-*k���5I�֊4�<�
X�in��(9���?I�����sWu쏓��S[RF��1c��v�5X�R3��`�ܠ
��9I�4��>Q
+�xǘ�]k�&`�C@^�_b�CF>ͯ�\�Z���X�rq��P��`V���o��"_ZZa��̂SQ��0���(9�
�p�
w9�a��u%|*T���p��rn��t��S��!E��+b��
��%��g�Q�k�������'�X�*�i2ϭ�ElkY�
��ח��e���
h�}
�dGC�
��3
#��K
�G��6l��b�Y��z���6�Kk'.j���8+,���>^[��[�(:i��䁱.�j@�Jܞ%Wl��9z
+(���'c[�=CS��<�
F]�{�m?���2�r̄���1������m
��8[JFix߇��ັ.�A�ye[M,U����$��AR���]k��D[[�V�a��~
�ρY&$���RX�\��[K��
�������,ph��;�s���1��AV�
d����~6�6P�
�D
hQَъw��웃�w?-w!�v�����qs��)��2d�H,�W�8�U�r�
+R�G+ m�0˃Z>qw�O���&�m牾,0Q���<�7f_1�UG��n�#�i.y�CSq������Q�j&b}�7+.����sMӋ�<��cr��؂-��ԃe&m�� n/q�N
5�Y��:Z��p�Y��\��㑼;`�{��?/Q�NYMf;"���
��کp�i�
+�䚀�\�x�;�+��SԻ��}3�֔�g��b����&p	�4��ޡ����xKK��yq�����<X���Utw���3��F_���$
��x_�Y���E���]����
�EKC��Q"��8U�
+vž�W���V{WZ�1�A~�b��$!�^�{K')����]�JJ�\�!&�gED��sȱ��iL�0���C��2D̔��
�
+ޝ66��
X��=J*he�nS����RJ�
��==�pKF.2�B�l�
+��݀/	���YJ��(�
����ؗ��ⳓt���~fc}��1|̱��W�w!�
'g��ПK͐W����7׿�}�ylO�x��J�ΏP"1�ǟ3u$�Y
,�3�B���7�Z���#��/���N����l��(�/K�����Q�����9���	*�h�K>P�`!9�`s
'�f?P�� 
�xj{
+����
��w�#ؤ��V��������Z���BT��S����G>�����
+�z쫥�sG�FԍI&t��v[C��32ЛèI�U� �t'�Ù\���C�@k��
ޟ�t��C���_ ��R!>z����x̶��-h��>ŭ���jC.is�&a{�T�@�����7�
4`3nf���s7&��&��h�j¯����~i�Şi���8+ȿ?#*���s��ǻ�n�(H�8���$4*d��
J|�u��6Y
���9yMk#���C8Xj�۳6�
�7)�l�z>/�p�@�r�UE8����fЃ�At�g
���F:�b7��ޭu�����$ V=�f��\���/�����>���U�����Eq�EG?��B_�S������Q\�w�&nN�}�T�u�+�~
P>�_�����#k��!�|`�����
B���ޞ�����
M��
uՏg��'�����U�~��u �|rN�}k�&:0C,t�#36'Q)[j64�3v
T�G��g��sO.u��xDZI�z.��_Æ��Ŝ�9>) �&����i�
K7�#����
yOϧ��h�;:>mG'a;'��k��o�|2+��oj�>X��Dn��Kt��7����̜�K
��<tW'.z��
O��BE���gZ!�w�St����ᜤ��B#��Z4rk����B��
h�Ⱥ�_���Gf��2wh��
."�L�t�K���z��_��OvL�f�
���Uqw�������'��1B�oG1�
*Q�"�3(撵S������n̰#OJ�OO�ߝ�����)�h�,
I)yuq�����+��p���F
cGK�sK�ы�����+@���^��
�t�w��瑢>:�`q����RR�9�0��|KE�_���H@�>� �q�Z��pY%2�1~�6Z�$|�dX��!`'��6G1�
9)�=A�q
3��\�� 
|�>HJ��f�o��q��uy����� &	�\e�`��:����qh��o������ui�3�
��=��:�|^`Q�r�*h
+���g������}��i�l��e�`w�I�[$����g�E
	�4M�̐�> �9{�o~l.y�/��I��\��]��|<&(~��(=�,+�ձ!d�y��PF��C�L���h�nУnb����ߍ�R�n׼_�x��ޚ��{�(�ؙE�
��CK��#]�YZ�G�*�
+I!���5C+tK���Q��e���-�[���E~oW��� w���3:A�S}�
� ��������9��3͆;F�����k������'�����9O�Ҋ����2!{:�+#��1I�Zbٮ��W!s���C�ڧ$�� M
�f�o�����Z;�OT��?�h)�v��5��0f�4���\}�S��S��\qo��wII���-���
���C�m� ���tP��c�*�0��o
+�!�o6�TQ
U��1u!b:&l��D�-Ґ����͓Jw���殪����;�c���+��^%�pc�&z���އKP
J�
���%���
+*����gU���
�|��R��N)��WT��kw���9.q^"v��a���������{F ���ܫ�Y�
�j�g���ӔLn�i|F���V��S���������k*~���%�殎\�aC�����_�p_O%��*h<\�"
c��+�y�|��O�-�&�������։so6��{�aA-��S������{+}��פ�4j��_1)�~�o/� ���(,��Y�Z�Px���7��wS���)H���☂�
�8��j�?ZnUs6t`a3�<	�9<�h	��Z7�TP鳭y���Lʁ]P�̢��_�h�C3�T"3�j:xs����W�N#̾��'�韆}�
�T¼�
+V��	r�ZX�1lb�wS�»�����?��o|�{��(�����+�
����6��t��oAD�:_�p��S��h��)�'�8�Х��|�[Å���1R^���QBN@#��g�U��؏
uŗ�x�g���_'	�'��pﻑ�ge�s&a��Eq�U{[Q�FOU�g���FGk�o�[ ;�򀔒~�=T�ܘq�`���BѮ���������O�ЋJ�¢�g�?x�j�}rtܖ
�ҰkBs\�CF�sM���#�
+cS�Ql�O#�������j9�A׀x��؆z�I8�T_��T_�bu��O���	~��u
�~'.�c��
+iE
SK�����.6�>�xԓ�BF.�1M/��޸�Q	��|]6��
��5m����*�?w
讙M5�#߸gxp��Y�Q40���۴�?3#~�A�_�o?0w!��
+!sS!@����w�y��%QݎQ�pN��Ւ������M���A-O�y�ap��h�
9��9�(ߐ��]���u�rZ}�k���{�#��1\�o=U~'��57�<*	�?���3s!�^�܂L|z���X9L����Ǘ.�p�&Ƨ��3��q���^Dҿ
�SKt�O�Kې"�:�`�\���@<�[��Gbң~�e<�}yV����Nsb��y	g���[��������:l��"�������N���*j��pŞh�[�Mq)�E
��uI�� �
+�D��ݎE�t�Z;p`�{~nJ!/�K�� /���Qz�e� %mGG��VVE���"V�E(m-��,��StJ�/���
�o�ǽSKʮ���~�d^����\h߶�C
8�`��S�
s����{��_�SPs]����iB溌r�����ȫ�c�d��� ���N�uO3
+���_�~�/z�C/"�g��t/��̛��A'=;ko�Fz��A�~~�)管6��0.���0�A��
+^�\ң��:�"5�r[+衞�~Y/��G7��w]�Ͼ����:-̽����7E//~��`�F-�Q���Ȑ
����v_WՕ]'�ƞ�$���f������!�_�@oMS�N��tmi�ό�?�@似���'?`����X�����|z���k
LqJA�樰�9s[Cq�8��d���߯
 �x�g����U9�j>�铵��d�c�>�ڜ���ϒ�\���6Jͼd���j�1��
�sCc������d�#�T������*��5rHk�\�,�ڧ���/v^��"��%d���2�ir�c�\蜤�
>�� �l�iUsq@�'��9����H]�����ԅz5Aϼ<LH8e�GE�&8%
�lү���Zɖ�I�H`�
���{��P+�.a�`{&jw�M
���--��f at 4��#��?�3��{9.c�ȥXF�	
}�7[*j��!ɯ%�x5��h�;�����P^9� �Gb��	�h���Žϛ��# w�[8<��V���@7&hY.��h�~�o�1w��/�F�K]�E�`�G
�D�5)=��w8�
+�I�ki+�a
���b�
%���|m�y{/���)a��f�����K\���R��ň[&ś�J�/4�]\�y��砃zj��"zu�p�$��3����"v`����(��y
9d��B�Ʈ༈�a����%k�����GI��Qj��nB�)VA��ݨ��rv��vH�C��+_~ۉ���JXzw�o�A�
���>���UE.��?��D/*�w9=�NX�`�i� ~T7!^s����zw�?��Z
(��?�v��=����}C��.����W�%%E��܁|>W[qSN.�S�˻��x�ca��o�������oE����������f`
[�����35e]�R��ׂ��0�~z�;Q
�2����^75����Q�;Z�;E+�V�r6�J�ə�'��@�)zq?��u�:���Yj�x�ލ�
���|T�S/��_}���H742�-�D�"f��pYF�:�ғyw
�
T#��� ��G�|�����!�
�_$�?/ѐ�
d�%�5�� ���(*u[�Dx�1�Rr�)9-��Z7��c�fc��n�A�	a�[VGY�V�
Ӳ6G	�MX�ýw����"�� 1�
a����`QP�9���� \������tu�^�c	W1�����F�ƈY}�O
��לcU�n>�>E��$�-�毌`��.0�_��O��ѮID�W0�
���A������,2`s%�YZ����v�H��>��,�훸�
��PP�vL<�ޢ@��"��k��<����jj�{�����څ}��T\۞%��)��M�����,s��j?�����} ���Qqw�z�> ,^�Z;�q�qv�jx�vO�]�`�
�4&ӭD%ZF*
�����,y>�'�j̧ᡂz
uw���`�i8����
쐡�jF��(9�%%$(���;P��Z��?�9U7Vz�9���Ä�su�/g�o�
��)9�%c���!�
��S���ys
�jA�M �&y�1I>��
��r5a�����?55#��U\�!��
�x����0)���஦�= �=@g}:�[�e�&Ǐҋ�
�?|�H}�/b‹�^�D���U��[~�w\X}|��z�[��	b̉IJ�O�ؘ_������{�	J���&�x��.��;_͂�C�����~mm�8�b'�[��[Fh��������9��t�.;�-�O�¬k�5�����|?E��ue���,�t�,������)|�s�f{�,�0����T~�'3�O/�Q�����7st�W��u�Z����������+�ĸK˃�z�i����L1�n�0r
m�㷕�B�(&nPjV��;��-��jl�d�S
��K�
e�m���)���
��]�����6���S�ʯ	���B&6
�`ؠ�����(�(����؍)��W�nC"5��
}��p}=�xc�ࡏR��=��
+�:�Z�O7G�q�RIH�%��6D]�L�OE*�_�Џ9����/���˲@t��g,�x�WD
��:�2�U ��Mذ������^�;�V:�k�5�6���
.P��Af��(�t{����W:F�ɖ����ւK���˛��#u�����Ex�S�p�>ث9I�SC�y�$�k��0��:!7h�-��>�q1>���澝���}�P�od�t��
�JL挨�{�U�2LI_�DG��W�:k^l��=5�zI���af�G����hK^m�ȿ�Ԗsy}�2¯��xg90[�
��/&!��R���n�GG.u�����b�g�Bz>i�X+ޘf{�Bj@#a{d,�[e�+{��V���!V����6-FޓR�oLP�O4�kk!n�	��T���V�
��I*n
1��s�^
E'�
��e��6�,v�E�yC�E�iA��TrK"�5��U���w��5�a�|3���������Vx�%#U�f�ѫ�ŷ��� c~��
�$�XjG,�0
���O [...]
+zm �I#N��{�=;����)1g���'�fY��$]�W$
GVm[��w+PɆ��;c���v)>
_��|ړ���`A�c���s�p�/�N��O���?�o�
�2Bv����+c?��/���#���c��Zl�����7��#)}����GA�
Y[����u��:���&h}$�Ζ��@'?�d?�E&�!���Ā�����e�e"��f�
%��!�ͽ�^��Ƨ4�4����M�7e�K�_�[��;e
����
��f����C
{d�0��8��iV��(=s]!an�[��u0���6����ܠ
������՘����T�� /����2s�tU��y��ӯJj����;!���P�!\lPC��k�E��,�g
�
41j
2L�|3�S��h� S�W!@��쮖
+	�����c#��F�Mb&�=�!��dFE�ƱI
+R^`��t̲����o
�舵aA�g��!�7cs��n�"}0�\gu҉\ꅥ�w�߽��
��@�Qz��5yMF�w��0�4�rM�)ݞ���!
�R�� �P��C�$d��l����f�
+��~�Y� k�fX��
(۔��7'y�!R��9!�ܔ
�﹥�tcS��IZ�'��|��r/-�:��6�2u=�
�0=mW�"
Yx�
1}E�Mڜ$���*�J at pi�d��������ۣ*��Uvg���}�����yq�rR�]sL3˧�p��`)g����YB�bg���6��垚�+�䤥nR�[ɨ����Ql�[F(=Z��g΃L��p��e��פ�w�S�\� wJ�|>B+��@���?m-W���?����s��sK���	b�MV�m�f���x�Q�{�ݭ��_z�\���oG'm
4��sC�4D�_K��_���lZ��QI�,`K����ܒs}����\/1+���+b��h�_6D��f:�5]��ܜrQA��u���{����	v���Ʃ�ñ�5M���eXOM1
�*���qj�����RpqFT�$�e�µ�6'�1�iB��$5oCQGsi����n��S�h��dž��]��qzμ8ȥ叜c�ϼS���	nit��&�f��>�kG�C[w���,<ݯ�Vd�*�#ף���d��rkI��J\���[���pn
>�6��[�"�H%%O�)�wT,�U�5�,̱� 3�	gi�]���z���c
�Du6a�A����Q�RPs7'�YRV���[�¾�02�u�%๮��������P�s�$��bg��-5�j\�7#.4pp�y.��f�w����l���Ū$�
4*�6T�-s��<�6f��e

잙�9���&RŖ���V�LYDE:�q	[J\�m ��<�|��
+�}
�����p�U��g�B7d|ئ�
Y�b���,xh��8Z�F{M.�y���F� �ң�V�R�
)�9���9~���o�?��C��̈�S
�����.�g-�Q����	K#����k�2�-��kS�̵�v�C& X�Uf&Ư��R�s�c0���Q�TO����i�!���
+p�1A�}�]�ղ�[ZR�/���%�4��-#��4�2��R�6E�2ђ�<�[W+	���u�

+z�a���3__�0�J2Ik!�|�l;��m���g�	wM���LM�O����P*�#
���6��^݈���,��9ne�챒�vj����8!�XO v��圊�i1~UV�u��5#DlLp�VGh��.�s7���=a��=��ʵ�s`�yཀ&_�d�e
0�c >C}�R�^U��,�V�n�
j
�g��Z�+�B��
�9 at L���+�*n��03��XxAX�t��A�vL�r����f��-���u+�ue-eS� ��Dn=�Tra�Y>�

+V�GI�pN¢

+L�k�Um��sѩ��/�Ms!~����B|zV�[ˀ��8�5���J
��>��f��gP˄��lԎ�G
踨
%s��f}�S�>%��aw�����ʞ ���>T��1�J��2���5q�.���<��U���=�g������"�!I�&n��Ե�lo���[F�E�͓����=3��ס2�������c�Vt���n�c�$>m�D����B��R��31D�[N.���xլꠥ�sS+�8TBB�X״�X����~1\�$ӡbV���5޹�����tMgY�k�w�X��w*ȥ
5�RI�꺚�sM�8���vm�[fee�O��퓌�i>rE��_U��-O
+����X��`�y��q}F ֫�1M-�X�m����T�2����3N�F�E��ѳ�~����mj|C��o��,�����\^�e�����V�p�KI+ߔSK6�l�����]h����
h���
Z���MT�KK�4�Q?��q�p�U=���0��ޢ8�5
�[k�wL��P���Vl
�XFD���Z�O��vdm�:�q��#�s"f�����0&68'zԵ�������[cW��;db�G!!,Ke3��G�V�
� �CΫޔ7����v����C�xԌ�p�4u;<J�ο��X[��7��u��Nmǐy��b�6 
=�먤R��I�w���j	�����[��qg��g�̞�v�iDZ
��
TT,�����FRR
����qf�>������wy~E]�������׬����Ծ1���$4В����c��B̼
X=z�lnݶ7Q6m��Y%!}F��]L����e���Z3s�fj���Nճ6Fɕ1!~�
�m��(ذ�f�	>
g��퍔s#rs�
���ϴtl��#�
��{������
hCW
�����T~��Պ�?*��H���
"@O :aNP��@�;�>[� ^���۳P�{ >�U��9)�dU���8{~>C�;�jj]�4a��V��;Y��>ᒩ�N��,���k#M��	&胢ym��06i�H�ڵ��m�nyM��bvF�a��,�%eeȎБ����zc����J�-ʹ
�� _�5-"%,*)���m��n��h�����]
w�=L��v�q6�Z�W�X��ajΊ��h�M[k㞳S��|��
���5��\4�঴�X��
1?̆�$B��V*
S
+[\��P�n.}e��gg�w�[��M�mG3�h�Ǵ;�Ժ=�ڶ3�>��С�_�

L7�l��E쒓3]��m'%��*�6����--ۓ
$��V�=�����pn3�tm���
o�ׄNI*|6��6PK�m
��閮o��y�6:|�Ԁ�s�������rx?�[���gs��T�`w���d�G.��+V*tc���d$��j��\�?w�N]}�cg�ҭk�q�i)3rv�i�5�]Uxe��v8�ڰgk�m���o�fۀ�ٲuwY�
 &,�^������4��ߵ?�;�ji�N�y��
{/+q\�.i�ʽ�^��jE�d
�w��9��� �_�^Ұ�g$
Ȅ����OM�u�p��Wt�
�>�B����M����.�KA�Xѵ��5��
�.ּ����GE�I
��f�Z)b-]mi��
��po��j�����Ϫ�җu%!G����Qf�1��<󦥡�-�d.)�;fF偝
+ݵ��W��*�����eU��;��"r�DGً
=
�ifa�l��-k=|u�Y9-'�O�|���\��?v62�&h�3�`�Z�޲v����H���M_Gڨ�
�4��ܴtv���.>"��V�f]�/ܵ��n%���R��ɫ�=v�������Ǜhk�f̪�
��'�.#c6.fM���y���^D肮�iL*`L*[��/j
�����������}�vVjCq��ie+q{�S�
`��|��`�]�5�� j�pF�,�
ke
NSQ{Nd���8��̓�uO5��j�}%C�}�C��3����L��/ز�
+�&z��Ύ���֞�Qb�Y�ߛ������=��i&ݭE�,j09����)

j
d$Xh1.	!i
��Qf�Ҁ�n��Nrzg�#�3]�����hk뼎��d�G��w��}��?m�"o��]&��I�
Lu�v\��%1cQC��sv��\�}'����!�r|‚�ݛ��O��7ƙ�MG+k�Mx0�nߟ"�
��u[w��e
T��}Z�P�0EBm���
D,H�
�)Y�F�l�i���V�J�
�L�����-ld��d�j��)\��P��,��)cdH�Q�d0!�7��Ľ0�Ӳה=m����
[#jQ�R�u�:��-�$E�@�����MJ��ݱ�	�-<Ɇe at 5��D���M�`�_9����{�v~����8dV�]�h��q��X���*ɯ� ԛ
0�W���rd%֞~�[֊��jd�5�Ĺ�
+�su���n��#.���g-h�fU��e
�h��ڸ�����kg~�Փ�O�Z6,nf�^�8܆]е`W�l֑�C�}�K
�Xݶ�w2��s�G+��v�P}����($�Y���9}k��ѵfl�
23�ą!F�*�u�
�G'���Ħ�KIy;vv㪹���o�ͪ:�	�lV�P�ljA/P���3
�J�X��ts
�=�Va���+�
�:��a�O_�C
��D6��!���Uk3v��J]4첅Q�5ά��Ě�
�l���?�R���jx�(
��:���q(����齇�f?)I,�A(�
�t��ͩذUS+ne��n�L-ݟi�^̾:��T���
M���
���fU��4Bn�^��A�u}�Sz~�Eȃ[�8_�jr��V�KCOH���f6eg�_��

;��1�Mu���ܳ���7��ύF�_��C_؂����-gs���5�����Ӛv�K�N�1r��
��tC��U��̝ݻ������YKKݔ��h�hD���&Q�$��d�꠫B:����$V� [...]

��_+
#����^�$��.��1:�j�A-�}yV�
�h
����/�
ܣ�d�8��ĺ*�w%lZ��c=�y]�&j�6
+y�r�)�[��<;��Nh&+�ژ#I\�T
�eL���%9�{�
�ݨ8�/���\�y�SZ@�Uz�@���Rb���t�܃����q|�SS�w
���U�\�4��a0X�W�)z���".|^+��ȸ���
+qS���#���Mu\���:D̜Pڴf�m�
�
�t 
�N[R�oꑙ����y�r�,����ܜ!6;B�ܟf�:'�E�� g\�4����˯
Id?k77�N}�n�����nÌ�!�-��O��C-�V���,�Ͳ��מ��i
+
��
+z�
��	('zG���B�M�d��HapI�yN
+�yr\�������Y�wllk�pO�]#j��iYt۲�\:�¦:�9�ZHS
4��V����h��3[��P<��
+�|*�V���L��_����z
v� �p�V�|��l�4��US�^��Hc���tk�E�:z�]+b+�j������K��ۣ-�4*���/,Bw<F
+˩}[[H�P����
{J/�O�.y,`7
����
�U.��tr%�.9�ji���
�66��q�;�}���9�3n�*�R��+*�5v�����r�'�p$����-U7X�<�m��z�GS��%k;ۨR���l�
�"��s	���}+j��Q0�x�fV2��H�MW�
+E��Dx<|��S` ���Ժ?1M/��]�N;����F�D���:P�Nw6�s�Ci�N�#���Ԫ��*OR�
[#�-�?t���g������x�"�#6��w���1	uj��u+�wZ�Z3�lC�T��!�����������y�������[��*�\���]�	D\z�������
���;���W>z�C-�o���
<Sv�&�[q��f�^�u�
+�[-����P���l]Ie��حSY�4��z�,��2�E���f1~�|�ӧ��
�A���XOb9�Gۭ�̨��eSW뚾�k�����A�S���8.�������{����#�l�ph
�D$[|J��)���^����������?3"r=���4
��RL?�E�>3�J4�t�"��7`G��:A8��gH��IY�ij�6�_Z!�����Ǐ��
+8W3@�_�yC<�>H��$�#0�v���r�`��X������l�J�G{�gG�P6�Y*��w,�칔�:���/�K/GGb���H���=$�v���R��p⥠8֥��<<}�
�`��U5�Gt����S����Hb��Q�LC|to�D]c�B!�팩�<s�:�T��W���D���]ޥ��B=^�J���������eOO��K�
+�����?^�+���Lx,�,Y
��>�n�m�O�ؕV��O�4��2G�����
+7��3)h��U
F�E�X?��H�����?RRH�⠷Rb�<Em��U�hi@
+D��])�s6߼^Avz����F�R~�M��- ���w��o��<^{eyG�<��`
�=�=�ї�$�Gq�
l���X��
�!�Hl$����9k���U��ӫm������0�Gd
����ֿ���<���z� �u�e��?��[������o�49&����6.��	]˰�
�
+�)܉0~�Q
l�ZV��jtv���é
7��=^�)��a^�B�x�����#(���
�w!���
W@��ٽIs������z���������T0�lap�ث�B����̟�ӻO������b���U?E%0�
�ƾt�I��oW<
�,�x
���t)�
���R
:z�uJӂ��kR��PH�F�%�ٻ����5�+>�ǓJ����J�ͬ���a���Һ����t�a��;�ǫ�%
w
%]
+��D�
z��צ6����	S�s2����殉l,{%�����λP�/�B0����?ť���Z����ٗ>�/E��GP=
z�=�G.ŗ�/��[�D�]�}\
�,�G���J6f�FuF�P��
�ֵ��l����/˫շ�A=W>V���%�ҳP��>
/��
�a���c�N���V��
�L~l�p�
��`F��iR�Z��cB�"b����na�?��&R��K�p���"ɟ����@���x�s��ջ
+Ϸ� ��<|��
��	?�����+?�O1Y��R���yP��^�8k���X��%�5�<�����=���1j�����|*��/ h������{���1����0��w�=��v):�����P��]��-9D��W�#�NtS�t!����dN�#��c2�M$_��#���W�_�}�x�]�����?	�/���*�BHZ4��N)5eLBI�H2eCC5]0f�5
ǐ��c���#O�SZ .�����t���_RA����;/{�
�g�,+� ���%]���C��y)y�H���-�iMS�F�J�Rz��ꆞ�\
]��$�2�m����+�
G�9&����\֍���G�H��j���j���d�T�*�&�m�M
��FX�
^�ӫ���[*�9��
+��ITf�U�؆_>�.����Pz���
�p�%�X�ǃ
w��e{DZ~ɯҽ�4�24���%cO���.�*�}
U�
+$5��-j�-�������5���J��伎_�<��x����'�������=�CP���9?��u��L���
�̢e#�T݅
Њ`�mu}�"��k>�Խ�
g͇���r�z��
ޯ�(�%��
��?q).��rL~���W5d�/�=?(�`
�
آ��b{���7�6��u��r�{�Ek�
�X�`
+U���0�	IyT�R��_$��{�4<G0
����0T�6��#	W��%&%>��E.��gUԬ
1˥ $;��\q;��'��
.fq�A�z�[S�Q6�$4��֫`�oߖ]�
��
��}#4p3;�D
{�S'}S[��1lz	uFIJ����p�[��f����Twp%vZ+�QF�E"���pcϋP#wӋ��������ǯ  6C
+J�=��v�w��l���]�ַ�-*W�
�H������k*h�4�0[t�8��-+}W=��m�3,w'%��Yi5�C#S�l�
�N(4�e
�ߘ��?c�s\X��P5�bl/w0�F�A���cq��k�VPe�Ӥ��+Hx��:��
8Z�KP��4I�D\U�N�vh��QR��_�=��XRᓖՄd��UR�L.A
��<~���ۣ�olR�(o��Whl�
�������
���ꕗZ�J�[;@ݱr��L����``����>�F1����r� ���
����Cѽ/��$���Kh�9!������A�ؿGg�����K
��Zz��f5����?�7���c���

�:�����	u��E`'q���v������AH��c��68�����i�
����
E^�_�G
��1.�j�*C��i)%uZ

\Ց
�*fɒ��W����r.�����r��N���)�as�I�n[Z5q(��≡�Y�p��4W&(2�y0��{�l |[d0�������ȞTҲ��A�Z�lSkdt��?_��I�u%
����u)_���	��^u^���40��Ȕ<����oF��[4���FZ�+�&��ᷢ��o��0��؍���U�^��QbxM�{٘�݃�lz�:��(zU��e"�baD^��Ml�E6�����n����h'���
Ԛ�X��Wy8�&>��ZV��df��G*�
��J���9
�0V�=�̱�� \�*�|����(m������H���K
���]y�:�+zB��)ϥh�O���
�2����*�V��=%�vN��C�*�T��:�E�>U��_Va�g���k������h��s�ʨ��Ӗ��Ck#k�V��f�$��Z.=A�E�6�T
�!Y�@o���
k
b�[=p��1khY��SW-
Ҧ��|8��x�jn:���M�
^���k���Y))qN�X�ҶcFe���0��ٕ� Yg���]�Tމz��e���k�T��	9!֭�j�1
���Ɖ�.{o�2tu�6lN����2˗��%�rJ�A9�
�	3� l+��
��ۆ9
� A�Ee��	䡷Dr�
�7��]���3/���O���;v�~��n\&�:��ϝ]��L��X�8���-zi�G����oDw��1`�it (���k�`�5������;4(��R�S9@[R0��,��=3	r樯[,�bn�{d�L�g�~W7�t�J?QJn��S�&�����UV-Y�'E���`��;�aCݮVƆ�;�k�<s���ꙧX�W���E�ݳ��U��Y{w���g�{X������vΦ�M۲7�m���#��%#�`��A͙��yk}c�Eܰ1ɋZJZ�6��]VT�.�+>
�R��:5�ߵ�(e�z�K��rW����%S�
��UC]�`�I�gT4d�ń0��9o��E�57����
�s��ڵ�7����z�ץ�����`���m���D�&#{��1-�9�ꆩ%=�Z�$��C�a�R*F�lШ���1��9t6�����㜴�܂�i�g
3��x;&vY�Ƭ�hE
C�/c]��Ξ��+ʆ"�0�b
Ѫ�wu����]��	 [...]
+������H�3�7�Qˊ��E`��E�~sBTȬ���0T�th��
_���R�N
��=�"״�h���aV.+��1>eZ��_���'����|D�KL���t�ƥ]5c���Y95ms�'\3vr�̤�eUɗ%A���u<���:�����}��3e��,��B�M��#Gs��8�is��d$�;�.Co�U�
+1t��
�-=�vSG���j3�-X�
:�1`���_]M@��ʖ�����*h�Sr�!vF��ӃP_g���4���I�[� |#C'.��"-�E~��(�t]
[�"�N�4��yu�
Ktte<_��a���r`B��s��ݟa��4�
���s��*���c�K�Nw�_Z�r����~84bsN

䲆1��>^T�s����	�{f���ٗ�|�����.B���[�9��q<��:�fҿ-v[Φ��Ve_f�2�9������}N�����$
u6K��g�e��,�c[W[�$���?wK���'�S���昍{�
,��R�a��
MwȎ�G��؃��,溉\6�D�L)���c]�e{w����<�P��gB�
����ܙ��<1c at _
��o�
#K�E�v��d ��:Qq�T����jr���.~O�K_
��.I�᳢� 
=�ᡦ�g�G�+qisܚ��aLƩ�b��Z�����8E�~63�?�k�U�}
ڔ�Y�=�V}�3 ,�#[#aCK.]U����Ё� :���7TE~K���
-�a�JL�����F,=0Q��u��%q��L��	�ˮ�;=X0�~��D��
+����Mi��Lg�݅�܇�}E^
��,˱�Ɔ��+2h��
�0�M�R�%.	*�����T¡
�Vx�4e����jy�'�NFi�--<��F ���{tܡ�T4.�NTէ���#�0P
�-/?1U�
!Q�ÙA�&� G6|���Zybm��M����*
�3C&�ݱ�[��\������5y�Wg��dG��v���rb�� ?��P�����=��F�
�+�]dخ���F�
k����W�k�� �q��H3�h��ٷ1�&,xCS
��C�mhk����
"aC�\�B?�;�uǣX�
�y0M>�Ȃ����1�?��Z�Ͳ�nEM��xhi� }��U!��U��}
,~Y\�*�Gl����&�ȄJ���T��A*9
A&/�f�^�^��y�$����2���
���E$��jS�,�ʣQDι�6��$
�e��س��.f�|�i`���i3���.~nāU~�d2�M�w�ˢ��!�3X䦅�:�i����#9�ml�s6��
�}K]�����F,۷RFd��}8�ڽj���
��,�|\�~ڼ��c�M�������V�F8yPoNU�-%�ӱ�Y�?L�<�s�*?,��Y��_��Ve����J��ޚ�G���	�
��]=4l�5su�5��
��o�Wm�a�kC��k��wG���S�E�dE��`I�4�X�
+�S���N�ZS���S�^l�K�
u)G\ށ����
+��� 
G��P""��Jo@/>mK>ٝ�t�_���A����o����rD��%�qE�
�C���:ђ��ޜrcQQa�B�aqwN
��}
!gK^�*�{��H�b$^�����!�Hkӗ���5\
��G&lH*����֤��rF�
,�[ M�k��嫅���y;�}�/���	��ՎJ;�`
+
�����䎡��8
��E�9t���7�w�xj��[�~�㕾ݐRJ�5��S"yo��]\����z�
(� �K��8�j���`^Tx� W|o 
��R�u�Q�ZH��4?`K����x�=+AD,I�ևkc���
�hER<?P�9�_�l�z�m��ZS��������%��6L�W+��q|��(�S;
+</(����ҿ9�Z�
��m%<jc��oK��QW�
�V�X�K�Ł'fd2�fY�CUQ�:x�"/�gSV�" ��*J��ڐE����Y^᫳Q&��N��8�Y�ʘM
$�-������l��
Z��}�:�� x��c��~`#׬�*C�{s�v���F��T��
q>�)=�m�8��1|��T�?7���<gM		\*����E <F:��aW� fh��GfLɉ>���/2��pĎ��o�'��Xg�EA�ߎ���!C�.�*>�(y�rL̦
XWIهu,x�����toq 
|fb��D��C:��\���D����3��¾Zk�V����_-䲓\޺�Sa���)��
��g=������6"�"(���o���Ʊ���ckUԺ
�~�3��
'���
2-��N�T�ٖ�"WD5��Ҫ�uyMغ���
~1�]�%%������,���b�e?r�g�X��
�ቛ:D��%�� 
{��"�]���hϼ7�{�ʈ�6�J{�.�|>A$�:B�������<�$TL�Ao%��?4��?G�I
+`��/y��Й� ���j#פȌ-�fW��R���T�>�e^��=<��Rv
Ăy>*u�_��i��EA�Y�c�� ߊ3>,�>��=�T�W�������+¼�CEoG�i�7 ���-(�lg��\W
����� H+���e݃�o���~�aOD(��(���74ج�1*��J ������'�R��]Y�#ce�7'��ڑ�z�� �/'yfG���wl�MZg�r��>ޒ�<��ڻ�����'�Lſ���P�t���2��S=%5/oj��E���|��jl����,��	|馴4�F���A]��c�.
��k�]`��Ap�i"�_���CC]晥.{��ɮ�����X��
��@�환�C[s��	F���R���k���UA���-�����'�{�����Q|��$��Ў*:�"s~�0��QT�� ��
7��������~:z�YpY�#�������t��	���C����7d�G9�������D�ԩ��ɶ�g���G�&�}Ww��[�
Z��V��p;+��\��
9<tGY����H�9�I��$�>������5R�Ӯ���ADm+�}v���u��1��HC�
##�ў��(��$���I�~�����!ȇ��ҷn!"\L̸ë��c��2hOC��Qc�ݢJ?kC�-]]�+�"�>�WD�\�撎X�u������`gG�

+�u��\�b{�
+�6�H�Ʀ�j0)�4�
�xn �oJ����ȫr\�eGK�
`�ה�a���ۊ�P �S6�%�G��q3?�K���y���=E~���-e'k��h���-9� �NF*#��O.n�
u��:��_N��E��
�E�pO��x}u0�����*:������
��1dKS
���\�$x�����EZ�� p
+&{~�<
���~H��~f�M_�漙鎽gb|�*B��:ښpwC�MS�s�8��m��33�x_
	t�'�S�|~3��kh��V���}Cm�X[�˳Q\����d�� �oJA�{��ȉ���JR�#k]��tO��
i�Ϻ�:pMR�?R��:
��#��r���rꞡ6o~0��� ���ϻꊰ=}���-me��1��To���-�Hߧq� ?��S�l�{noJ�m��:���
���Rn|���9�h��A"�%�6��VE`�mY̱�"�����
K��99X����.뙫�m�P��,�yffD��]����9�͙�g�>^��C�l��6R���؊��=�p�$�~:������O��+����NL�U
�rE��]#�f����My�L
Y��̬�S���rL��S��ޔyO�NY��6Ĉ/G���6����~ ンl˹��|�����
+��&�k��J��}�!��7��Š�Ad�o�e�@͂܃����'2|���Ҁ?���?�(�7���O���gz��EQu�dg����t�ՙ����y,��]�+�<��U1s^�ȑ��ž�ʚ�]2qo�����'�h �ˢ����
[�"��gn^e�	�݂b論�w���;��OfF�5*��E�-���{�aQw�Ѐk��qw��A?츂S
�x���h?ٗw��ȸ]eUԎ���ّ��Ց�jEP�8>����aG_��"�.
0�[���}E�ך0��/�s��~KM���2�F;K=�.t&.k����Fͺ�dy���o�~���}��×�i�x�Ws}���J���o�z�
o�/����s2��C|O,
��)����t���@���IjBWDU�;��p���5�7���-
&U�K������W|Y���j�a�	^V�[�#�Sr��v� @��\W_�����DO�i��߲ғn
�9T������7�&B��0!��H����
���9檉
�ۖ�0��
$�wd!������}X���
���l�|9ۗ~��V��#;
+4�_蹣��>��t�����{�Y:O<@К��(8�b�϶

���MuM��yh�N�3T����+�1<D�c� ��?
	�u{b�� ���u������m�x}���j\��^x��
����K��/�=9�����Pa�XX���z+?�%�8��9,j�S{=z��������g&֗�ζ�[�����]`�%),��V�fAP����Ⱦ7��{�> ��Q���z���p���vB���)y���[�ϕ�����������=�E92RLK� e<Z��F;�>t at C~�V�]�
+�E���e��u��OMfU�^k��\����N����ޣ2�ٙ�t�'�����垮:b���!'�gGkQ��9'�r�� ���y:����vȍ�]7,�
{wS���� ����W�}���>�����Ƙ��VBT-��O).��	Sv`D�
j�#�+ö��_��Jutg=3sr
v֤<��%>;t�� <tn��
j�����!b���at꺊 
�(�0�R�����5f>���{}�2s���X��&xC�����{���rq�[B���$�^�ͪ
+�T���6H�͕���S;6��؉���fV‹�^����Zպ
+�&#���%>p�C���Wŕ�S}_S
Ȼ�2�*
��d�\�T�)ɷ���k�
�o��e~[Ce~ʊ���kÍ��;6:rI�����XXY�ǻ
BA�;
+P�_��ϑ�
+D��	`�
>���
��Tsڣ�Nv��]u�����5�rh���vU]��ihD_d��M��5ћ�R�m]e��D
��EVۡ�P�>\vd��g�N��”l�K�u�%qꛅ�\�c��|�Q�o��
�u|��K��Gsjg"OL�B@['�
U���{-
+�>nHQ1�F&tI�O\Qֆ��}�� {�Ja!{�����Os
��
��~s��/��� `mN�km���*���1��z��fhɼ?/��[U����7�q1W��ׇ�AW����������}
�@OO�s1�hGG-�B7�����
�뉮��kt�@tN>*�֎�i��qv�}X�C�7e��9i����t��3k3sS��ޔ���TTȮ�]��]�<�x�/�� ��Q
���VN
I������-��<gz
+_����-
ք-ȐqB�	w�u�Ա���ζ�k�������k���򄯣4��_���fd�����s0O���~4ݞyg��b�W�n���S�$����/o������e�Ko��A�x�W�G��l���Z�b�B��<Ҕ���(
r�yir���m
7���l�||`&���+��x執��w��� 3���T�N"���w���?z�b�wA�Ť�'3���5ieܲ�4�Ԍ��~��n�Vl���

wܒ�EaE�
+p2*ZېvOI��1ݗ�f��ފ��膼�����E�m
�f:RLq��s�l(*���޷��.n�=#:��EN��Q���GoI���tF���Jy��A���9#�%O���k�|X�_�����؎�:v�
��ў���|��TD
���ne}�doه}
"��$������b���l?��Xw�54�ؒd����?ZWz4��;�W�s�P��UYW8 �}v4�H]
�
+Z� Cw4��;�|{`�K�V'-�91"����
-9wY��:13ak2t�Tg񳹾�E��('涃}gW

?�W�t��s�A}��iT�
��DD��g=_���,�^���

bcܷ�r
�:��.
�?o�
+B��������{vh�d�p�k2��yM�8���V�~����	_Q�r����Ҧ�=�=�
q��}&ڲ
���m���Aǝډ���2�uIe���	7׏˘�4d=P�o�1�OM,Ԏ�	3-��y�w��S@���q����0kSޣ豹!���0*iӈ�_ST܌-�>���f�ո��OT��aj�y����}����b����gC��=��6
й~X���⓮�̫�����0�&/|�,�~� �7dCT��P[5+(�U���tm����O{>��`�3�{�(`i콯�����+��]�5��[�Я���<v�#�.��aJ�CsK�
���R�(��%���
+K���~1��_m?o�W�z�T�'bdy�{�� �~�cG�/?���7dE������
�-+?�Kk�t��n���^�Q#�tĜ="n[U�(��R
��"���4Goy(��v���3kM⩹:��D]��)R͚�`k-�R�ӯok��ں�eUm؜��[N�z"�Ǿ��դ�O��Ν$֜�"FB��������*��n
+nCSin��3ѕ⵩*�r�%��eA��~��_�Xh��������c+4bF��99��v^�H-!
��O[J\���g�@�bx���(
<5��wԕa�}i���<���^
�
6��i�J�5q��� ��N<6��v�q��{�H�Wz!��
��]2nKQ�eG��u���n��#��=1�b����xU����Q
+�>�v<oI�;B��¯
+���H}����J�Is���N�QG���s]���:��K�e̖��fB�<L��*�|�ZylF����C�GI�ʚ�1�ͦ��{W��_W�SyȤ3B��q)�*��!��3
�r
��c=�/����m=&s�
�:D¼�"l����LO�����Gr�2 ��
$ȱ���ȓ
�VDI)��e����Q�3G%��
�ᙋ�r�5-�lVJ��
D�:�e�Č{�G�
��C3����Uy���:�H��*������7���6�r>�Å���3%��
����
+�>΢������A-�1+C����^_�4���ZCO{��B%���v���#+���8[{���%ꕓ����t6�ȝ���Z�%�ZI�#3���B-��í��O����:Z��M
�`i�&p�-��HC���^�@O�X�E[Zt��9�-���D)]�C��_�qҟ�	�w�:�<���@�f�u���
=�ٶ��k��_�@"�yA�_�
(ykjJy8�-<L)���b���iIM*:�������e�j\�6�΁�z<J(=s����̝Qt��4u��U�O� ���s"D���6xUWW�}��[����>8
�V
:��Y{g��Zԑ
w�ޥ:��Ox/e���㲴"`�'�ᶼ�wy����9���#�Ί����N�9��lhq��FJ��g
���"ﱶ��憄?��d at _U�|�hdn^��G:B֖�6�@��:��˷4�ĩ^ț���ǛJl��ooɹ;�-y��繮R����O+�J�C
>w]
+�\
,��u�R���	���m��>�Z�ԂJ�j!�
���j�
��Ĉ�?��c�: �򿹶5!k��L֮�
แ�r��B,��w75�<���}���
+\�C}�yEo�89���ĒU%:~I�����<���7���U�
h�i�FJі���P��š��xȾ��p`�4u4����`��"37���n>�͆�=��B��凜��tKQ��#��

#�75Qkʪ�M-<��Q����'��f�k"ǻˢ��Q綪�ΣJ�:�`GOޓپҐS+��m������o���]SUܚ
�{��L�vqr�ݏ���k�����}:A�[��KRh�0��}
-��,����L���E���`��t��q6AC�YH�kzL�[U
<; ~}1
kI�M���|Z�SA���J�	��&�
�,}�ΧS;�d�L�vt�}�(xz4�H|Z��/'z8
+���U��)+�/򶖁�2�r���
�j?���Ad�9	�I*����\L/�S�ĄTg_��(�����ڔ�懋X��Ef�?fɨ-+<i݄H�����y2a{7
�
�� �
��+~ ��Іɝ��q���n��6u폒��ʪ/�
+XȊ���TO��5aڣUa��
9!uGW_�,#嬫	i{z��嵡�ZX䙥6��("�65��}[z�W�5��� �}:���ܔ�"O����v|��3$[J���Qx��qN�-{S���!��
ueࢠ��:q+R|��
�imι{���u��C

�!FF�C�q������Ȼc�j�_�~�������qQ����9����E1�� ��jj΋9^����y{πH�� C�l�3
6gg�:|ER��՝y������`R�����4
��Ǥ
����l��
���3�PG~[ں��MM�F@;ׄ�Kk7$�~_M��o6&��D;���󒚰�n�+;s4S�O\0��85"�N�u9' 7��!��ʐ�!xҷ���!-��&*x��+�:2��EC��31ƶ�W��U!��&�C2+�;ȥ�VX�(�ժ���X��c�J�h�,xK_���y&���Xsf�%�h��'{S^�;�
:{
��k�ټe�+2�
_�Ԇ�9���Q�t� ;���oȋ���Q:T���j�zah�	<4S*����
t>I��>E#�kP�3�Jߋ,��IN���>�ƺ�=
&
��_�8�p�\���{j ��x�T��$<�+�6Ֆ�ry����t6IF~�jl\j�%������q*lߌH�Ҕ}Y�~M�Hز�*��M�%%9_Aݳu#�ܪȪ���]-4r�_�qC[�gC��kh?�f�;�ž��'����$ҏ9*�b͇dނ���[y� @��K
+D�
������W���!t�
+��<�A��>J;��x� ��w^WT�ˠ _�;Ҁޟ�AGFD‘�^��Ƨ��'.
+l׆N�5�Dl�@o���K�>
�k�Mm�-
:+��-ɱ�T�&�=��8X��֜q��J��
躯&jU�I��+�k=�`n
+�w]�Ew��8++����~��[�����<'��\WA��H�?�
Ն�E������Vƭ#+���$��((���I�=і~CQ�=��R�,��

!gEMH�46�w,���ah����P�ps�)��[\
~`�W�������gW\g�.���ޡ��ݶ�
d�eK�JHI��9ǂ�9��`e���P9G�LUQ9G at v�����{���|�_·;�e���(#��j���s>�yVx�{s�b�=C*V�7|��+�����;��m'�JRS��&d,hP&@F4<�껎�T�k���+���q���etyT!�[^�re�u�w6�D��
�]�� �w& �w�<r�{��%��z~�_=��=�?�~���B�,�z�m��՟;��/�-Bn ����y�-�
�`c�%�3�,N���
�c�_�|���c�\
�3�@�v�U���L�WB�ɮ���q黋
����eq�͐���A暞4�u�u���i�9�
~#c��@]z�0��ݜ!�%l��
��6󏐓rq��w����)����_u_�Y�lH{9�C�_Y^!rC
+��4
JX͡��
RH�A9y�Զ���wk�^�
�l�LCi����	#���v
��q^�}�.��^ش9ΨH�X0�����/�64��yw:j��\rJ��
�ܻ4��I�w�A�&:*a%unOC
6ǡE!-�=�&o^�9ˇxU�����6B'�$A��Pe�kb�:g{.m�5���scJzKL��v��n
_��`�]3�+���'L�+�o�F\ �{`��0��RZcv]K�,��=�,O�.n���8���ے'CKO���Ř�q�m�s�I�P��s�[���SlW���
7�1���*�{v��0�h{�Z�=��.(��+����`W�
F煥���	���1Z�wY� �4_u��G���z���W��k�I�9$��O����n�"��ȵ�����B/�$�
OJ�����d@0H��X
'每�s�Ɖ���Ը�¡ǵ,�k
~]s�����
? ~�a�1���ّ�da�fs����Q�+����j}Ϭ
��f�_�Y`�Z�������)p�#n.�j��y��
h.�k�
e�WΉ�ܝ��S�)�Y�4���(��Q�wq�gN�}
s����oMO[�5=�<���+7���O���U(t�\����)��r6<� ԇ�ڵ��g<Rx��
�ky3i`"lo!'7��q3�RS:������Ӷg�_
�~�;K��jļ]	�U���cw+(�6���JOv\ �d�	ݚ�7G,�OV'�U��++��<��ڸF�
+i�����8�FH#���,��h�%�,����<�������̊P�0�� '�]@�f����j�K��B���ɯ
�ʟ�4���^�~ z��ݙ�]�8�Z�s�"bbf
;a��Pq�3ͯ��+#���=̬	��Vӫ��x��栁OOX��W�������0���g��x��T��oP��)�M�go�&����	�	u/uw�>�sJv��SE���n��>�x�gbb����|�O6�t�q[U��.��R��{���O��]r��1ۏؙ�쌳�6�c��A
vw�qOw�:��������{؍����i^�����(��i[��S�/z�쾁�s��ϯ��]ٙ�uy��{_h|�}�-�֧���?m���>��u9r�ѫ��|�o�ٵ:����d��TǙ�5�]�
��Zzgv�D�$�����#߲�ύ����+�_��^yՑ�'7mM�jU����2��J6�=�)p�"�h�U~j�W��s��r@΅�G��ʻ�?�_"J�r�9
+ˑ
�>�����J\��@�_
S��^)�{�Q��@GNBÄ{%=���城P
~�
y�3�?Z�u|�S�Ѻ7��af��U;�����ONx���Դ6
+����C�h��
ߠo-
T
:�Ļ����D��]IOi@��ڞ�: �!�a"��Wޭ��1֓���_��%�|Z�$d�Q���v̻�hwN�*�����;/v���Έ��N��w�����ܶ�i~��
�C�
rj�}�5��-��_
ձq�v��Z�!

+�畓��f�%>)�OFn��8��qLaHEjIY���S�I
�
+ x���oMR�,�����!'�Zj�߷���6!f�u�q�{V:)�$�M���p��'�_ۆ��B:&lbbjrS�H��U����ߛ�
�1#�TR!��!-�{_����z�E�08�S
0]��r�4,���˷�
���ݿ,�/��ƻ��q��➧WoN�n�L�<ӰK���mgl?}������������}�,Z}G�e�y:<����g;�`��$}\���y�9�B�1-����1����_����S��;�������B�������{�����2�P�7Ja�ǻÈ
!	�"�ʮ�L���anx�p�;�M�L����o����!9h#>1�3]
Ԛ���3�eliH��zȕko뎯�)��WҞ�^��U�
ƴO�}���<2/�����,�{�T�1��ۙ!��
㯮��{��A%�%ގ(8�<��=
�r�{����3!�"����!���oCMg���
�yRsJMh��HM at 7���w}�=Ek�-ћ
O����Z�k�V:�tz�⸔�
V�:�c�+�!?�
�@�

��<\��!DԸ
+�
�,e��{�f����l�t��Oʥ�W
i8h�
��Dt�/�}7������P��R�?-������u}˨��Ꮃko�N
~1��u�M��������=�z�K�@
+�\X��r�C���7�rdc���3�g���^sWS�k<^X�/Oh�-q�~�M󩘉K	[
Yư��M�F�t�p�����{ߣ���?�&�bveVz�>
a�`~���I���y\�_N��
�o��r\�_-H���el��pۉ�GM_oCs}rr�_���\`�V�"�[�{
�	�
�WL
8�����u ɍ~`=�2?���'�
DP��qͳ�
3�j���*�:�"�o�B����Y�y_�yRY�O:.�1C�ܙ�W�4|�(��/����A]�|�r
+h���9!�9ί�σ�S�;�
_%M ^�>7�(���A�_W�v����9dg�R��4{�8�RU�����S���ŝ���Idi\'��U}�)v�l���t���!��+6?-�R3T�g�U�q�
w�O꟡�brN�dX�@�E5�Z�
S������O��}�Mb�O�Kt�co��t^��1�)
Q3z�
+Z��y��y΍��B�_Mkq.��K����,�dt��
�w�P��
]󌦰j�kuis��Ԣ���w�+	HzJ>���N�c�fF]��x$���q͠�����j�r���˟��Q@��
���h
���<��]�!��N�wj�M͗�*�
+,���:)e|�%�oLbn&,���J�`TCo�*q��ɖ3ko�>�.J����G�K]�d����l�b�/cwE5,��2������^$������;5�y\AXŀ��
Hp�X����
+vg��n~�|�V��
<ݔj,�:N��7
��j?VSڳ׈
2!�>ɮ�
����)k��V���+�g�
ӏ�߻��7"2L���� ���eʱ����*į �m� �lMB/Ք֌] ��=�jk�Z�|
;�=�����}[�p�L��:.o�(��F\���
�����O�_ 
l��ފP�����v���D�G��ީ�s��߅�
f�����f�����-�[C{vv_P�(�|9T�aA�]�v�
c�[�aj�jvm�a�k�
P��
+N�}
q��r|s�p}W�n�%޲>�^r�q+X����5��
t�s�p�7�npN��F!Y
u�3�y�/E���ydw%���QX����ܳ� �ӽ�~�9���xlz��C���rp���Q��P9�Sě+Ý�V~�A��E1)�!���`��s��R�1�i��5�
�R�͐�P�z� h����,�;º�����/$��j�19�^�^q���6�N��X�2�&�����`����
�|�dǹ�2
ho$�����WF0W�g��Z�]`6���^���k/۾O���=���NH�,��@.���
�3���9h1ȱj�P�I��;����,�	p<�
�&$�b�#��<vDM�ۇ!�]3
B*bC��?���D�.ˡa���-�lL|L��d
�G�j_��5��Cw<�AN@·d��,��-AD��nP�a��+�ݎ*����Br|�c���i�_-/:N�\Bfe�Q�*�N�i�L�#�wr!>l�"P�\خ�
w�9���S��=��
�h��1��t�� ǡ��T�g��ZXMj�gsU>��ݽ�:���=K���̨��LZȳ������R
Ƥ۫��׊8��'A��$���Q��3l��i�W��M;3Ԇ���_�ml���sr�����h���V����}�Y�q
���(�(���/�
+6�Zw�.O���`L�>�紂�+]y�<�X`59��]��"dP#���B�[��ٚ���C^Xq�1���=E-��T�$bT\�Ku�瑑*.�pL�
+]��F�
��1M/wN
\��
-�.�����a�7����
+K�,���oZ��uL1*��Rr��9���Z�jB�ysczv�����td��8�bBɆ��	��?+�|[u�5�~�=
��3a�%B�G�+
+)�1
�3�{6-n �9fz.�U
��}�7
>ܞ�U%
\�_�*��qU�
Ծ��)���yD^RKl��h�B/���y����i5
����ơGq��
�\�G�C�H�Q�5�$���H�9�'��ERCR�Lj*�XP+[]ri�(b��`& �V��}���Ԭ���&?�r�s��{��z�?a��k(�A�hu������?���.&����H��	
������m�o	y=��*ܙ�8�5�}!��������]d�g��
jT��K�U�el�c����H���}��x e	�^n�,��7�{nn�t��3�I)��-'�h��r��Xp���?h��@���"N��7�\�
<:!�8ɬV��^��^	h��-���l/+�y{��F������I��Y�\@Y}����(�r����#�4U�Ơ�T畑�" OR�{����80��0a`��6)icb"�oE�|zP�AM��و�
A�sW�~��o�
������}�ɋh��>��FR�
�P�R̬;�/���e?����?=LNPF�x�
+(��~��
�#���0`�njBF�(�zd\���ͽ��ؙfծ�����Ie�����µ��]�
�=W���*!>��B}˼n���P���|�����ר�w/��7'�Wm/��6<������c���[��G5E�v��̈�O�� 
�p��%�E�U/�A���/c���| 
n�<��d{��s�X��Ή���
�"�"��'�ty
A�q�6Zw�1��{��[�s�+A��|Rre�iv�эYJI��#:�!W
s�'�r�1���q�?��':Z��
�quu�x{LMj-���P��xs��������5ͧz;>w�P�"������"K�@g�X��:�)%��0

��n�}:(�����v0'
@�3��{
EuW"�e��$<(��% g+�
+|mTM����a�2�A�zs��c]�����f.9��6E�_�SZb�^־��9Va{����M�i�<��>��G�	I�e%�!���Hi��&>5��`�rrC4������3� 8�
�
]�ӳ0	�P|�1��`Kxױ���k��l/���1�Ћ볈+
���_�F�qʼn��6=|�
<�[�q�Jl]Pt�"�³�-J阽��Dz�����Ο���{�o���
�ꐳ�W&)E
)���;��~���3�
�Y�qv�C�u>/i�Awe���Y�-���LY�<I�������e���BmHC�J�����Ѽ�\�h�����~�bPC�+A�4�et%u,xBMkK����$�Y��AH��x�=������̃���P��b���Dؓ�>����o�6~�bK�Rb�_J�M�ԃ��g�+�����
)�� ��~�{��
+��eV��PX�T</s�Sʒ*
n���R��
^���	<K���J���hmq�1���-Sk�~U��!���`���r��[
S��e�����Re�$�
jEt���1K�퓳!~5� �6��e�w���Qt.�iP��yٱ�H�vW��|Rf�{�R�^&�{����q�e��:n�Rf&����
�D��K���A9���Ժ�Yo|�ˉ���������ۣ����[�Ws0i�Ѓ����^jkcD/b�\��
+�o�t�t��};����7��1�/q��yz����ô�M�.t_rN5}�i?�9�z޻�(O�ZV
Xa5
������2�M�"o�
��A����x�5~9�G��\��
��L`��
��C
�[a��"���Lan��@s#zֱ�鲽B^��씵W�qI{
+<�B��g�Nm��O���ݔ����
s˩$�̌���`��D�Y���l��O�c貰���
ěOÆLd%Lv�"`��"��6�/e�6:��O�����Gʹ.��Ҕ�G����\�ve��F�D����|ˋ���V���
+���DL�V��h������M��goOJ�
+����H���D��N�W�5M���D�����]ܾ[
�{	VS3�&C�E���_> �3Z*e�S"�XY�W8����g��2T�c��\D����XP�����k
s�<˫�/6G�N$􄺌�زo#t$
���lr�����
+�8]�eJ�k�P�]f�y�����])-��>�1[V_��q�"
+�ZzG��B���b���{΅~�� �[�C]����+�Gu��_�|X��^j
�qg�ݤ{�:�~�����Rr��ܼ5�+v~���6�ڔ0�%�
���>���
�J�؞DUz���>� 5��
����I�m	���˳[�҈�T
W���
.���b�*!�%zx�Z�5�����
[�ߎ����9J���ZD΁�U
8�
�V_7~����o��bX��p7�P��4ō<|��B
u˷�y-����-�ql~F�%
l<��ٔ�	��leH��&��┭�OJnV
U
��)�
+�fgP�ǯ���ag_��#�0ZR ��zc�
<G�_��,���k� �`n-��꜆��U,XR�åMl쁝�>X�
w�iMk����/�Ǹh�4&/��ޯ�v�
��5�nP�FxԖ�y�Y�2p?�eB�*|eD�(�
�����Z�:�(i
x�Z5Q��$���ݷ�*H^D�.��q��E���yB{�2�#�]wbV:c��*��b}�r�ˆ�k��N����~��2�(?��S�0b����Y�l\zfUؗ�q؞et��y��Ƨ�_����2v>{q��ͩ��	
���&�l�¢��n�������Y�_������k)�I�5��oO�
�.!nD4�Kب����o�j�m^�[�uu�D�N�=�I�`�
endstream
endobj
44 0 obj
<</Length 65536>>stream
+K���u��+|
��+U#�|�mg<�
��A
��ʥ%�D|�w	_�G\
ș��EP�	�1�����K�:��3��Ȃ��ܜ��z�Z&�<Ȯ���S�n��bVn�����K?u�7�.a�ܳ�2��ӹ�,��N
:��9
a��ܴ��<�6�s
|,�w);����.���S^������꜅���ᕐjbZ1ep���ċ�&�����r��;gP�7޵
:�tH�� 1�
�ᚧ׆�B�w�V�SK�ҝh�����8:7$ewĔB�k�Pd�~b�}�ٰ
SQ���2D�{��sW�S�sBځ^�<�����k��̿@o�Lco�lb�>��y��(;JEH/�C�Cơ�!C/ǵ�+1>������fT�!��p㏘3����]Ĕ���:�"�����	�����-�گ�̐K��j?<�4���8ơy~	�4���Ԅ:��ZT��"F��1O�t��
+R+�ޤUȏ�԰���(	
!�>�c����S)���}[�о��۳���p1q0�A9�z}��_EiOX�4���rH�������Q�H6>��Y�,J�@hH[�w���z����I�y���/���Nɩշu{v
+��N�� �,������1l��]b��X���o�'�
+2\
��	6�W��H���
+���S��Mg���Ou\�gA�ŏ�®
X�
,��ua5	plaL� Z�	ݞA_wͣox��EZm��%�dg�?�0P	�% %U��	
���qa)�%�aB"
+Z[LC�&�,tHIo�h
>��1��B�C���)�5���o��������LN�{�	
hOBMD�,����� ��ꨖ�*@��*�r., ��G�2�Ӻc�M_��
� �!b�>ZX)"�U<rHx����0U�Ş\7вq�g
z
��{����Dž�:�ܽڿ���1�pv�U�1?�oPO�����*"[߁�����m�9r�u�3:	SU�a��
�4��9���P���Q���ǔ��(���2�C�v�����1�cwz���3�Ӓ���H�2�,a�U�v����h�����Zrcp��jDEj�

k�����a�����>n�08T�zˤ��?%��5C���H�4�f�}��������wƩ��IvKp��������b�kDNX�g����L at r���~9�!f�Cӫ<n�t�qX���|�.zr����8�<�G�)Iɐ+\�>ț�E<׊h����`�"j6�ɖ��{/�~��_F�HYz����;�=�2�4nrc [...]
�,�—�
�7�8!'e��
�������6ߵ|�������,́]�;X�*�n@�	. ����1%�!�e�� �cfg
蜴�GN��䘖�
T�o��V�\�
+*�YޥJX��ǵ\t `v at Fo���q-
�4�!��U_ͱ�������"�x:$�d��rf�g�����N�mO��t�s�N��"K��Щ)=�����13�5��6E
�j�����s��Dh���O���ᑒ-o������g
��2�;��l���m
uqg�Z�ZP��6=o�~�y�7	�&c`£Jr�c^b�l�#�#d�n�
�hi��Y^ѿy�IE	�bRP���Ƒ�o�
\l\ˆd���S[õ_{�!z&"a��"��
X`�9�=�+-�3��Q���V��oI��Qc_����06oY����I��brص��иg�Bj>nw�V
��p>� ï`��`n������ã�OA.���}q���^p��;�@�>���2Rv�9M�
��1�X��ƳMx'�`d�D�I��ˬ�V�t�Vj~��]J�X$��0�E�\�_�G�jż��W�Y�~��} � XR2:�����	j�̀�Ve�����8Xa3rwT����:鑠n}X�
*�ͫ#�����}�3�s�H��7�zQ
�A,��|����[���{'��O
�`g� W�ZrGTC#����
�OAk
+k�,��E��G�m��zlE\�.��z�1p���^~�,T�6˻�o���
��o���r`e�?�
+�kBA�Ąg�_����q9�:��u�1�~vg
rλ�+��iM�<ևU/m�����
��IJ ��i���2	�i�O�m�`��˄�P
���|2z���`�]Ǖ�ITQ�H�r�u\��o�Α������I���9z��+���
�,4�/�|�rFʻ���ۺ�I�����;��jٹ�)ڜn��_BU���y�y�5����,�G.��U�̸����	��g��u��#
=�;GT���:�:߻L�M�=)
�ſ��i���S˳�����kQ�!�`�K��)Z��-!��r�=�ɷ<��N).�J7T�q p�*-�Ѯ3���ǣrhqڈ��.a+=
��
���!��;a5�G䛟T�U¾�����K����:4��t�X�e�;��mk/����q=�VL��Jx������膁�Q at s.�����r��{
��ޗ�fU�Ub�2�
zf��~�ģE��G
������[ ָ�1�~�$if��V���
�:������1�	
�F��5]�<�>�3��
+(���J8���║��߆�
t����
�p����KH��~L��CA�ҽГ���^�凔����ж�N�z�=�NI�%���{k�/�k̤��������P��BG������g>���n|�%&�5纯�}�$��{�����X�s�
[��ͽ�����\wK`5�&=m"��������5̮�NHM�€��aF^4���3�h9	�3��u~��ܳ��1-�k�x�nR%���:�t��[�;�aC���s{�@�J��؄��H��$�|a%�ܻ��"+SFr�Iap�����, };=�
�<�=�y�e1�.�1
ղ����n	�6��[@+69� /��ָ%�ֈ���}����Yo�fH���`���x(��_�a5��X�a����v�t׹��3N	�F�t�Q�4xߧb!�:
ѽȃ���kcJ.2��4��u��,�.�e��	�{Q%�%$���1�;��1�){�'��u��^b6��9�;3�����
�ǐ��s�3�*�x�E�_�1�{rB� [...]
w_�Kqe	�. x��L�Y_����	qM24w���JP�@�a2+t��
)%~)�&��A�z.:b��̳,"Zߢ�n��.���.�t�����Lۨ���ҽ0u{v-n�|*F��
��{q-���N�I���؜뼾��Av(���uA
���^9g|�tfm��FTx�J�ݘ@�^��X�F��o>��5������֓����f�H������gI3��5�}޵�)iX䄉��.�\��z���V��=�v�7���F����
�30{v�(ma*l}T��
�����i9����E_[�|���{�ێ27��5%�
J��-&O~��뀖K�[�
L�xؤ��Y�����V
=�g�R&ԫ U��B�g�
�)�+X^�ܝ�����mTh��!�#RZsDF���m	)
^ Tm���V->�۵'��r|e����Y��	
�g{���M�'����	5�d�@�dL\lX��
d� y�\�_u�xI��%a1�Ff$t
DPF�Y{�sڷ�/I�9���O� [...]
�.0G|�P瘬?�m��.��N[L-��4��Yz
� ̌��ͬp�6	�2F at K�Y��xg�]룜6Y_�_��!o$�
ONjH���l}L��D�4>߿���Գ�q
�����U�D��Q���� ]D�Ʉ��iz��-�fc��
\btQ���?��?�;ӓRQZÚ^��
��/���\lL�Al��_�f}� ,�zu�p}��Q���yl��q���<e��e,Ԟ}+
��)0<��z�
*7fr�V>#n�A"Jl9Ӽ�2&��c�P'S��A��em
h<lP�*��������{��:f�.�Ơ���ϧ$�y���
�)��w ]�
Ձ:����,�\K�X����w����Ċ=
���Ρǔ�z��[/j������/E������æ�iHɂ�f�`
�:Zg\C��-��
3͹�Yd�_A�OYE⽕�GQ�{�`��r\m��@� '
�w]L�-1
1�Qq
��s�л�
+|}f��\Q��J���H�^�rs���[fvF�
�}�i��c� ��.����Pסq3�l
�\����>VF�C
 ^α=��܎��
s�?�@}�J�M�Ej�_F���������a��H�Im����a���"�)�̅�%Ċ�����+����W�'�<���ֲ��� J.4����
�ƈ��|H�|*�
��_�ք�|�[�z�Z�3��b����ۏ���ű
+�3
+�kS�"`�M<JT�-���v�M駎Q̕���
�Bj.���
�ڸ��N��V¸g���l���v�z�����A
+�Q�@�J��dV
}�V1`�eb�k�B�ϫ�ޘ�ڞ��p{v&6����d���
�j�|{�廸S���W�T
�;�\�T���{l[�ۓ�r���1˨Y
��z%�2�,�䃅����s`cS� O�K��\�Li��#�\����V�ǀK^H���K�(n�w��ַ]9��u��vfz.nNt�����9
�K�w�gҘQ��KI�Y
I��ݡ��󎱊��/n
�P>��u1=�
+��:�+%V����G�_뽳�&~
����]	�vL����l��
䇨��������U�KJ׿���v:.�;
s���Y\��{(�
RUB�D~0�c����M*&���_�����pA
��9����[��8��ol/���5
�O�ϛ<Q\O�d��X8ă.h��w�o���Yxy��
.�`��땢*�#-��M
΁��gg�ۈ۪���F&(�ؑ}~IN��j�P0�W������G=��p���$u�77�|�
+�ͯ�3M��%�[{6lO˄��i-�-�ǖ'�Ȃ���0RZ���y�Ivs at v�7c�?�3��U\�O�}��c���	|qF�K��o��
?K��u�ZY`6
�ڗ1��l�o��_����^
U�׆o�����7���Fg����u��l}{mg�X�����6�ش��7�ޞ)�
�\·U� m�Q�K�⵷u�
���Rj��VHɘEl���
�
H�У�m�aX�B8g�Nl�4
�/�o�t"Ɓ]|?�����z��
-bnm�i8._��x��w>�a�t��������5.��mA�"�&��Nh)m�3�g�9�2<,�"�c���*�c��
k��g
~
�c/�Y����s�ܰ��Mx����V��7�;Ol��
߷�j,T�����u?�ka�3��t�t �uĚ��x?�i�,��[�����EBIPɆ��\�U�K���l�GF��>�Z� �O���B�o���bk��d��D}��gV{�
-��ߪ�gt}�����̚�^p&�"2Ͻ��ӈh	Ý�!�
�&�ע�>���h0 �.�����k��tP	��`ʲ�:C.Q�H��
�3��cI�{#��s�ɪ/m��~
���Q��_|�2��5í���,�hU�l�?���ax%ݹ�Ɏ3�Y��(��`��輍�S�=�P��Uaoh��
+QlzQ�W���F5D���pz���^	J�Հ;��������"f�n0
�����>)�y���M�f����~�_��-��c�����������ʎ
9lv��a�#G�
9r��ȑ�fG�
6;r�ّ#�͎
9lv��a�#G�
9r��ȑ�fG�
6;r�ّ#�͎
9lv��a�#G�
9r��ȑ�fG�
6;r�ّ#�͎
9lv��a�#G�
9r��ȑ�fG�
6;r�ّ#�͎
9lv��a�#G�
9r��ȑ�fG�
6;r�ّ#�͎
9lv��a�#G�
9r��ȑ�fG�
6;r�ّ#�͎
9lv��a�#G����M�������%T1�����������p&
�������s�
V1
��S)p�X
����.
;׈������-�����1�X<��		'�O
;
6�>�?�s��/���?:s�|9�s.]�9��KǮ�\�9{�����+Ws�^�r�
6�9�����
W.��\�t��nD�~�Ջ��]�s���
`��W�{�\�͹z)��n�_���9
�(5|t�؉���ۀW����۹��s��_)�����?������	�۔}t���#ѷk:����~ԕ�;;����c�۫��9���^9�}����c9�dG��G����^����c��)�\��/
��{����9�l�
�z�
܏�+�5�bvŵBRD!���V���+�vD�Ԏ���נ+BRLYDMn���q�T�;]
�B�2�¿D���8���O�k����
��X]�~Y�ui]���,�ncS����pőe\I\�����:
>���(�}�c@�/�-s���
+�
*/0��!��]�Tť<hJ+����*
�������"
v`W
S���RLU�Dj�H1�c*rS��B%�ZLMm��I�!9��9�̍�h�,}})=
U2�c>%e0�zܽH(ޞ����b
+�jmB- G�\XhI�sO�z�n@�G^p�����
�t�儜ޒT�1)-��3
�����cr�1��=��}@�>4�TRHF��mq
�6�r&q@�G�I{	�E�+�C���~p>���Ҟ1���K��Ȩ�����
+F�_F����-	
�ys���c��BJGl��s�'c��`N�sآ�yBeL+b�
�l��X��JB`�R6)m�s�.nWF���u����谆��+I��>oM�(e吒&abaSf&2�ƕG�҄_��>���,<j��Bƍ�����Tk�rC��D����CȘ{�	=�
�2qp	��U�+�2LiTˀ&�
ā�G�iU��8��J�8i�4<�Wɂ���v@�Ō�� �����Ӵ�����0i2�F>ccb���cFjg�Āgl|f��S�Z.>a��8a02+��j�@��@F������a��r\�{W+{�p��]
T�&�ٞ���:�;O*M�X�zEq+�0���JleBMj���c��F�<&߱�/9��Y����!�1��c:<$ǖe�b��
Y�f����q���_�o	z%��]Oj�%	5�8�&���ƀ��5��a%���o���tO�.��y	�:��""jF�t��_��A~ ���i9�24og���ن��\EJς%uB�  ��BJ�SR/�&�||,�gRE�L鐔�ѓ�9���ބQ�1D
)���efsB�A��P���
��/뿑����21�'!��
������Α�Sq)�(&�W�����E�S
U~_f��F!÷�������گJLQB�-N�I������f�B��s��`�K[�䘁G �@ͬ
<Ȭ��$
 �մ�����Қ�:Fg�@mϘ��i=�)*c���BzBKl�)p#�=�6�H)#��2��)��PL/��\XX%"�����M�K�p�13��q�ͅ��ֳ2�uv}��b�.~�Z����z3����><i���20zRzR}L�.�X0��)���W�
+�}��F..0'��4'L�ƌ�؜��[#jl�{v-�b�����[�&�ll at M���ѷ�JtaL��
�>��O��	���S��q��A#��j�ZBuHτe�}�lCL�"
H�Ģ�I@۳1P��b326!i�R:j{\��uΆG�⾨A���K����Lt��b�Y�B۩�Ŏ�A�be�#o�ïgXu�����ta��ƫ��EbE�§��N��D$M
<�;޾E�۳�iI#
�;K,ܕ�Kj6ԫ�u-
U~� �����}��@HG�ؙl��5��}P�� |�%,⾐��sI`
 ��h�{jGB�-�.�r�'�O{��!��␐����θƈ��s�ֈ�RS��C��ۮ��Æ�v&17�*.ү����/y�;.E娪����P�� w��b��6�y�2���u"JL˂$t��=+��
�;�֘Wհ�	��T�^G\%�$T�N�\�y���
���t�����_�t�N�
+=��[�I�͸_�i;m}U���H��gM_����&5<J`�{
��3�y�/��u��Y���벽
+|���XB������"����M(�1�7I�������޾��ٝв���g#���Lj>�b�2d�_�v>�H�H�
+\U`	��g�R>؅�l�e�<ZL����"f����鄤����_
����W��6+a㐜R\���#2�}�����f�ӽu�Ìm�1�=jROi)`yq
,?����
}ʞ�l��������=i+�+i�V�M8��Ы�����2j���۴e�AD�AU�ΰ��3С1-�Y�&m
J�����p�~o4f��Ą_�6�V�Ȕ���1�
%�ҫ`v;�V�������c�A��mQ-�g�D�80a* ?�.
+�
6mz����A*|mTO���A-�Ƶ ͳ���v�
�$cy�왥Uo�#/�$؂��֑ѓ�3&$��w�M"n��/Nz�1��Q2;JNO��cB
2B��a�>	�-�<K��j�uA�8�!���}�찎�<�9��� q�_��Ee�昂\��d{
+��z&"n�7&1y���8��6���vlj��ej��;���K��1�����{r\D������
f$�D݊�I
I��5$c�a� .�Z1� ���U*,�C��
+[
�k ��jz[@�j�.��}2�KR�O����:�F^����)X�c�럧�9�ȷ��������
����ޖ�
+i������Wp���{`>�R�����/
3-����>�"����a��jfg�(`��"�����lV�L�'MltLG�H�و=��r�H�۳��Fh�o��P;*� �v�z.��_��&�b%
+b9�a at bz>)���⠆Fu��8�;I���?N����7��; ��^��BE� �<���P|���gVy�ȟ���w[�8��.� T�8�;��og��Wٔ��
*��q���Jc��dZϣ�y䤞�עn����=Po*jkP��N�{3f>-�w)��b��EL��8�?ͬ��i���7_g�(аS
�9n$6��阀�ܴ1���5G*�X�<���*���
+i�)�!�鼼;�u~w
s3m��W�%m�wS���	��Ѵ�΋ [�x�)�2�VZKjܷ��u�#�⃾�
+pn�6�������� jy[\G����%�K�6�b�7�cJZsT�.�-�\r̢�K�Ɛ���Yĕ�^��5	�pBbR�ņ䴦�
+� 5�,�"�&t�����"'*��?�����;�+[���tw:�I:N�Aǔ���d13�J*ffK�-eK�,f*f�J*撜>��
��y?��r�j��|�߳���a�9�jRڎ��إ����l
����*/�*O������oD��O�q�qj�{sg
�}����lW�ѝ1Z&���f���ը���3���3��+����>-�bm�Y�>���
	�Hص��0oEۓ�[����)����
�u���k+8VIY^=wc���BW���w9?-��=�я��0��QC<������]�\͈H��	rvf�7���T�<
1����[�,@�%nec���Q;�6��Ax*�uX��C�P[c�
��蠙��i�ώ;��Q�dc
+�`c����R��i^ �4G)	hJ/��J��L�*q�za���D-Bf�"�uM�?�\�
&�B����L����7��;��	�w,�IH�X$��Y��Ӽ�vwV���	xQ;�r�r�X�15�Gl�C1{Mk|N$���!S迼���
+����O��[c���>5=t�&�d����� >%<����QP��f-j�sԶ!�U�]�Dg�䀝Z
��qB�������"jm���(o&�5�C��<��e
�� r�6� 2]heiP�(���
�f	^
)�g���A
B���a[�G�A��Q�k�����wV,wkH������'H^�k��gHi��%�=S~s�?������+��Kc��
{�=��g��	�1ϯ��&x��G	���S�]��c
�tF�&d��yN&�O�O�1�܊�ˋ��?/u��z������6��홡��90�#�
�+N���<�_��0�7߸�rg�����r�V�rO�&�	Α��~1�=�}�U���&>�5CN�
���
G�\`�Lc�n�@���1�<�GMK�O�,��]+�*��,4MJܚ <tM\��K����w�'V��s
�Y�
+j�k�hm���BW�a���ro��6�տ[����,
ZI�����YԜ����.Gt5Y|�*
+��5�;Ӥ�����f�I���]�B�چ���1�2���:b�
�f����jZ�*o�[�Ua�"n����WD��*Zb�WCL	�ȹQ;�2:17�	Z�Ȅ1���5CJ�QS2v�W�U�D8F�޼X
 }E�`oN,��
`/~�-���%
�D���$愁�B���!�0�
B��˒��qm�¨�hp	�s��0�1�D�1
+�(�^�c�{ �ҧ��
ȳΙ�n
5;j�#v�8b�H�sbI
�z�>"�:$�Ȝ�O*�X߅,5�}Ҧ�C��Wc�U؂<c�^��
7m�W�
+hy��Q
Y�^�WӠ�oeWC
�Fmuρ��
�7
���
�P3˼
+F��8
�
�4�5#�*
�|"��
�QU�^�M?0�6廍Q��-�py�W8�VtX���O�-sOS3]����!�c�Y[�w'6��wm"��%ic��y��4Pvas����D�	�t�y�H�y�4RC"�&p��Uř�J�
����������Y���Y���s��zOޡf�3�v�_�ճ*#fq �s}���JO���yG��#�5FI
��UQ�1��
�Aԅ���cƗ�?,w\��J)�@
	B�G�{皡e��()�#؛[c��~55'�g��4PC���^��Y%���߮�V����\��,?�f�w-"�a&�:���b:�$b�\*r�[ri�,���J�4�E�]�
p���)uԃ�L�_��q)�E6d�k�k�@���f�5t�0�*�2�̈�K�%P���!K��%r���G%���9zէ%r�'���Y*�Zj�#���~8��B������
6�3�JO�@K�v61f�!O�jA�H+
+Y%R��O�l$�Zk�Bf+lbc"�y
�:�
Y��<���B�ӣ6�od�|z:���
V�ȩ�!y!`^����5���VQ�}�&�Th��$�^�����#vYm�&�,,��H��mC�%:+o���f�����E|fw�H���Y*
�Fl�+v���
43Qn%=�F
�jKEL�l
���2bo|]�?��t����&���2y�XS�U���30V��a[�4�+=:f�;*Z��4%y��9JL�N���f>ŭ�V��P�L
�GW>��
<���w���Vn�J?�3W�(�
������Kz����0jȀFzɿ�,|��5CJ]���1 at J
�j��I~�k���1Dx�=JN�&%��iY�V�jo�E�Ӕ�tW^��(	L���1�ܝ����
+�6�
0���AX'$����CZ�5���3^|�?S~9��&D��a�۸2*���$%�;�)	�x�h_��%E��������iʯ���F�)���i&*0�,)��!�$����>����W|*��SB1#��j6�f2���K>9D��|ږ���8���S
)[ë���ۙD|�����H�y� �K�6�a�X�6�V��1˫*���T����)~3%?���p�>�Y����&nm~wp(�9bn��>���
ҢVy-�f��M"kyQ����pNSӃj�
�u�ƣ��2����̲��a֔�Z�+Kk_�Z�,jc�CFy��@��-ll�®�P ��C���!�a�L�@�
^�UӲ}vEH/l�`�;����Q#Ɔ�?򮑇�D�M�䨽�)���
>F��,Mo���N�y���Q�<�>>'�"
��
)`T����Zu�9xϬ���xA���<K���Jc�7qs]ۮ�e b�{�5���GI��y9[5����H8+h�}ڧ�.M��e|����V�Bj�*��m��JDh傀�N
�I����g�֧��7F)�!��1��1�C��0�ljpM��[Š�1v�&��JO���!���FL�xV����y��ա�s�}��ԈV�k��}�m}�|TH)�fxȺ�gsw�;��́�S�Q���
�ҏ���S~)����;�OX��:4�&�;�@%�jf^D'$�U�5S��d
+�T�]�X�1�x�q�d�ŀ�[<\���@���>�^"��䵐��!21�}jFQ�c�c�� �|l�X�tg������s��o��P��*fi
Xfs��xraL#��A )q!�
:��ȭb�#�
C�x �F@�"�掐��`�R��մ�!� �{��ꈵ�� �т?�!f�3BVzy�B+�9訃�ޛ�yz*v�
 ���/�>�sHk�V>-l���K{�򖰹�!�ppuP+e��|
�s��xP2K�a���ϣ�}:��ojh[
痯�ҒzvծC�ۃ:�}Q�u��>p�Q&��O���w��Bf!3f�3�V�ʤA�T���3�����Z!;jj��r��Y�VkC����\�8�c�&��/&��ΐ��&h��<�����l��=d�mV$��8�(9堹ZzQ
�0fm��Zz���F�<
+^��=#f�ոT|���ܭjlv��l�^������f�`[E�Z
#&l�H8����A�]�8d�����'�"���۞���S�҈Aʏ�\�uR����eC:'I���
��F���Js�C]�؄�R~
�
+j�B�uݓ}�9V���c�.���L�r��x��
1��A�T�3ë^ꭾ�6���6LMZ訾��C��z&�IQ=�v���5���#�o���r䘅��C�=Eg<c�GQ�󸎇��y���_zWzvg����Uqz��� �0��>��oM"�㌼�a�ŝI|"dQ��0%-j�>�C
�cV
�
�:Vqy���k����
�֎ʳk�i�首]8��^ʍj�4��]j|�q�����Ql�OͫZ��]�L
+0^U�$��
�ՠ�S���
�G��oNRÆ�v�������C�'oCH� 6�� ��5�jߌ��~��S��!�pIa+���2?-��/�39z0����%	�������I̋��~���F,
�G[���mH-c�r at -�!��;_�U���&뚶�B��(�+�x�G�=������Q;�г�vT�찝C��q�!�D
05�v���.��	�+Z!+!�c�`�:n%�%+b��j	�9��
+�墰��)d����du��~|NR������\ۼچf�V�
[j��u/�sM��J����s��V1oy�:���߁!�>���-h�o��D��w�"�YLdMK����i�-��UEۻ��Z֚B�� G �QBFӯ�]���_�B�
�r��S�G�K�Ԡ���9-g.��S��ڦ�9iC|��	ZxD�FD���U�ӌ\��_��d�4�EG7��e{�?������VD��P�g���L�V�1���G���-O�����q�9(��]�9��Z��\�!'�P���I�6z�V)R��ԩOG�]-��o���ܛ�_
+z��45k��jh���h����<�
E_���:��Ur�ڇ���~g��
��gn~��
�9� d4����3Syݯ&��
�
+˛��1
��ӢH��p�:i������[��
j�$���R�����)��5�&�
+v9�;�l��������
�%-����j��Oց�������n������<���5I�
+�flO
��J9hx�45��j���w�yx�3�=%¸�¥n`I���k�iݵ״��(m�>a-����.d�
+�R at X
"������#������+b�{�x	��J���_K�������4�տ��I��^���
+��^���8BKst��D�
��5�d=��W�#�����O�f�2x�K#b;��j����3�HУ"�'ҧ�p
~-�`�(=�3	}cn�OA�A�F�|�
��H+[kצD��an>�Hd��{Ms�^����B�H�v��9E�
>8柪m�_m�����O����[S�o�晄��Q6�����\�K��{EQ/X���955����M�.�����qbbPG/rO�S�zFY
�7��1����B�6��	f&x���yi]t�DŽs��̈0^���>s�X�#����G���Ҹ��[-���R�z���3�C�<�Y�0?��L�`[��ܜ���U��,%
%�ا�Uz"��m�����/u���5t�
�K��-%>a}����ۢӮQrzT/��u�k��
W�I�����
d+R3�<��4E{�o����5Y�}%n�?���
�:VEX/f��2Y�Tyg����T����_�jbF�A��Tb��bN�9��c��a���T�2V�1���Ra4sk��
�X�S�9�9�=�Cyǹ�i~ [...]
+�#mB�8��cK��{�!1`
�*1խ���>�\��
W�
W=nG_��?!��Z���:6l��
�?�]����3�������'�����^��i�G��ʥ�B��i�u�v��BzV�{���W�Z!)l��Ǭ|f2��,dm|���P�G	w�c܂���֯���\⮭�e�,�� í���*F��$%mq��`G��:��|Z?dk�
;Z@��^���ѳ+��i�sݘ��#�RD3C��f���%d�B6yC�*��l�ya���8�ʌZ%Rx�C��Ž��Ȭ�1�� �ZE������{SI)_��>�;���i?|�,d%dz5�����/��}6��o�iZ�ކm�/f6������E�d�N�۵7�On
+�Wz�\�O�.dWE��ނ�3	r�5`�׻�b�[#�o�P�����n��f��PG8d'�Z��A��G�B��=ks�� ̓�3AO��w�
`o.��\tOq�<*V��$3�3�)ݞ�,��Ƙ9�����g<��#������\
٥�5ͩpN2s]ӌ��a����g�UT��{��ׯW�t�)>��Qp��Wy)8�m���	�����V3�H���<�4��L��*oǍ�����s����
uO���_-����S0?�s\��
�kgS�����V�>�
+h���N��[�>Tqa�ꬽ�r��w7d�׻uB�*Ԙ{�����'d���8�[�շ�*�#���1�>�ģn��7��"rm�9��q��-�s<�=�g�c�%�^��I����+����(�m�����	�@�#��=׭oh�ۡ^�� �
l��(��ۘU6�9�{<��E-�-~dl��M!3�kx�]���05&q�?�ם	R�
-`��p~aGCGXm��*��\�� ��2/
+��,�҈!�jUȄ�D���䵭�
�3=
�ɟz-|�ψ쿪Ϫ{�"�	<s�׋Yc�
�V&^��g�
u�1�5[�,
+��{��y!=�<jmx��H9�
+9?`l�
�!��K��v>+l�3�&~[�K
+[���fMCL��տ�]n
��ն�,B�
i1SM=x쫘]^���������30^!
���h�Y�$<+��j���N���$\�7�-�g��'����
��I-$��03�S|�k�I�]3�0jħ�
g�\x���ꇢ�~�;��B/�c)�)~=��o�Z�ب�Y�

	�P�F��L�2�j{c�S�1I�A�����\(��f��Ye5~5˯�fz��
+^�w<焳?���ҳA���:���Լ��]�j��Oװ�jr�\w���1�9?ffb�FjX%
5���uȚ"VZi@�y��b�t���Ỉ�d��YȤR��_�3����
�=�򐁜�RK�ZV�O/�#��CrO��>e����U�ܓ�7C��!�\�k8(���
�	����K�R��-h���
��rm������7z�M/<��c!c�+�T������^%� ��3��B���x}��G==ߝKw�l\�H�
�vjٞ�V4�2vԄt�Z̍X����zr�O��e
5?l��!/nNW����R����mP�Mb�| �
+�&\J�D/
�����\�,b���
�ʀ�Q2P�*R��Dխ�)��M���1C���x��R��l�q�>�9�ǠV����]"
X٘�9I
�
�no��
���;'����8P���~�]���I^�m��
0�
�r��I�!�Fgyl�
��8]p&>��.6_�,ײ
^�7��
�YKȉ�Ģ(r,vY=���o���Ԑ'-"��
�H
���h��:t
�.f� 
��	i��~-�
+9�M�`�{�3)"�AF
�R�u{{"��Ro��p�
�
�0l�z+�o)y�\/鶂��9ELܞ���QS2"f�|�D�ԓ�f�Q��:I �د7GPW�o�����	�heQ��
E]��`
Ɛ=zf!sk ��s �bp�T5��--�9R���:��=vNs��z)>��HeBP��ǐ��gW{��b䚤O���<=qi���̊=�꓃^�g��
\j�J-�h��
%+��]|�gLX垤e��1
؄O
!�
fE�
-k{B�
i[;z)�9JL�
&�Gtz�"`�����Iԍ���8�^*�k�Đ��
��A�4hbT��
+8{��Z7d�N.��ˑ5�]xŭy�
�`��kdU�U�g���B����>��D����8�Osl�W]ywk*���T�%�
����R��a}˛���u�(����
%�zs�Y�9���5H�[:o�������,J�|���3�F
	��Fr��O�j�y�sH�����,�P
+�&68K)�l
+[ەA{�&���i�/6�~Zn
�/H��v'`�Q��?��~a���ߋ���&JQ�̨��ɐe��KCշ�g�i>=
�<��G�=�6~��6��
Һ���X�U~
��c�T���^�mRy���#�
+7'�.� wB����,R	�R�R荦�CȋZ$|8'
�(l�Į��9�>dⓑ:����gE�����]$rip�[�U׀��T���U�s*6>��y76>�5�� 7����.oO�
+���O�~
d}���Ӊ���~��
� �
+ܣ�Qr�O���5-�'��aF�w��PCMA.���uO`n�L��=��F��)d����%l�m� �!����a>9f���I<�/x|&���V�0d���ft�3�(
�`l,�d���Su)z�

FĄKw)p}\C&gt����U��R�;7~Ϻ��o��ܛ7�>/���s�
Ʃ��8F17�j
�e��R�Jšں���+n�k��ș��k�'�'�7�}c�W�5�-� c�9j_��Yذ	t�Ī
ٕ>d��$��x�m��|K�"F�4�!G��]z|Jjfw�E�-�^����il��;>/y��€��	�Ԙ�E��
\.0e��pɉ�a>j�}G)�����ܪ��ڧ��3�;zmIɫX�bf��-=>`#�M"
X�u~Smk�R�
�5 ���P��$��ϊ�׿
8�d����1�2�ZB��N�ڐ�aOF�K
ݱٚ'1��ݥ���P�c�A�� k�0_a

�UW?����'|F�̬�[����x��� �9|�f=J��T����U�\C���
Y�����=2[�62����
�
+�>��IeP�/�`H+Ős��ok�8���� 
� ���5
qkMS�.�ٳ
�Q+���
����ϣ�u/c��G? ?���6������;�����E���3�6Ǎ�
a�����"���z:*��z����F��>��Q�X.���=-��5|B
�<l��\:&f��g�V�ghz1�H�	R��$%
��5��hb��!D�����6U2�ƴ����P�Q3�ث�<pNTߚ���e�m�ոV&�Z��m荐A*�Y^�A�Ɨ�����jh�G�!
|�Y	��ܫo��K$����G˽����C�֢�!���7!����
bζZ��x�-
�hKϩ�г��&�Y�0���G#F..l0�>���qJ��5�H�G�ʏZ@�̲Z`�b���
j�kk!kӻ���%�F1x;7z�4LH��Py9n�7�l\������>!צ�<�:t�,dC�o�ڥr��f���\�p�g<2`�9U�</̓�"�O1
���~���������%A��a�
rVm����
��M�-u-�D
�
9.3�
7p�a���^�2�)��^�,����[|�i >_�"�P�<l�>��Z���>sm���B�k
�Yk�����-� ���wm��]+
�9Ix�����W���̸�����.Н�콭1������ۄ\�/B�J��\
�ʛ<&�
^G�Ƒ}/�
Yύ ��b�W�C���*�AD
��fذ��O-E�*�
���v+���<��?d�"�!H���d�mBN|^,�]�6�
b���_ϭ
+B��5H�0W�A��=�}�Yj���C�[
ݕ��*� ?��t�K�#l�3��3�5���_Ã|ɪtBX)�虡�E�R��MV3�����(�į���f�(=���s�&�ߋl�W�*[fe8��������]
P�!��`k-/�dƁ�cV!+�e� י"&8>��5ַD���1��y��c�5�dd�&p�/�Q
#d������k}؛�C�{!1ק�%"�!��'=Ac�kd�ֶ�Q Ə�8M|*r}��G����-�jd�ss���c
��^
!�m��!�G�
R~�\�\�B�89d
Q�����Oq��%����Ț��B��8x�[a+h��ނH��e
��E.;jf�
}w^�]�=�/�ۢs�gP#��
5�{K��y�,`0�fh����!K}��$f�
�ua{S7�c3�@1`�QʋX�Q�]~SM�����3?�[Z�B��g~ȰH?�

��p�Q1qG�it_j\�ધ�y
��\ಘ],B�_	X��.�kM���& 
�Ԉdy��Q���<r)�I~
��Ӭ��䭟�"
#h��C�~~�
��iq+�2d���|l�y���B�L�<sͽПЛ	†1Ж���wM�2�G���if��ٿ�P�ݓ�G;������
��n�8�H�w�".0,/
=�
�U1
�jf!�
foV�C֍<:��"�9�"	=��B:n5�m�\�����r�[3���aF�� -ik��Ԑ�\3Ԭ
%-wc���=!%��.�W]��񂖻��]�D�����F6F՞����ȭ��<J1a�(��{N���
z��E��A�nO0�}�YA5-g�ʥ�?���+��=a�
�¨��j�5%g�����LO>��O�)�W
��U�
���
1�sBFB�_Ǯ
���xrMԯ��ߤ�d�H�����	�7)��p��
��Ȃ��z!-j
��j��	���%/l`@���F
+�݀I&��
�L+sk�l)1��&vu<
�^��8Xȑ-���.	��8��s�F(	[C��oA��cO���6���ɟF
,��<����Frv�@+��f��x̽�|w��8�
�:b���9�5�:����B^�@V�q��ꂶZ�
xM
�ֶ�y+42�.5��c�5�2�,�3!{�K/�<d��z�߀K���<������ڳ
�ފ�տ��J�:fE�§��B6�/'ln|��eqG][�Z����A3�߅	��<84nc�v�|:�Q��“��J�`|��ŮC���C
�"���2�KZ	hVіR@
+���c�)�p�����%E-���q����sk���+}�{K]���Iz�g�����
#�[���]v|���HDKʌ�%A
�,
��������̠�Y�qОIv�{F��i%��^��)x(�3�9���A��L�2\�������[c��[윕!j���WAx�V=P�
5ss��@�:�˻�#����*1ɧ�!�#�*V�[�{�=Yy#�����в�����FL�Y4�
TC��0�]㤄��m�8�NHK�۳s!��q���Ws�;�4����
l�2
+7�+.-~(��;��	�%L�md�?��w�XPQs�U7|3�>Afߵ�>�X��
2����AB2�c��ٌ���	��>%)u{��8l���>q�&Q`� �q����Ԃm��WINkX�H��B��83ˣ&���$�<��=
ճ+BZf1�����܋��K��Ģ8r}O�C�r#p�� �n�:)ذխ5q�1����dg�jJ�s{ϭ�=��9�8r�
�3j�m�@�쵭Q�H�3!��Q���D��Z k��D���kbs"I�B/�(�!#����CxMb^���
+��i��%�

���|�[�,���Pp+�Fh�>mC��PS�9�,X��^	[x��3���3�-ȤA���V�*W��Y1��8pLD�ź&H�BrHCΌjXe�
Ө��-�}��K�g�;c0�a���
+�n%-{}���R_ե�����㸇��e�I�[%�?�CA���!�=�G��,��ߖ��/o�RWz��]���qv�Z?��BW�1[[��+�%��Ɖ�{ַUb���U�8)1��x��=Ӭ��!�C�~��af��G�M�+o}��h�{~{��Y�݁�_�Xu�����۪Sk=�+�)rJ at C�X
����_u�5MI�(��>%�9Jy�>@K��*��9DM�x�A%�?���@]������
+���=ws��p�s�;�-[�);��]x�;�R1
+�S�G�b�w���9H~����TH%�x&x%�I^�� �w}����� �k�Э&�������
�Ss�{bv�{q
br=ȧd�njbvP˭���į���PҼ��t8�4
C@����R�O#�;�X�>5�*��T�'I�Nd�AAI[��\]
 �rB.q�г\�԰�]򻉋ۃWr��@����M�4�(n���!CF�|�o�Uꛢf��()[��[k��}�T�$#�=�/�TT�*��[�9Ly�1���&&F�
�o��PsQ�� ԓ�$d��	\>ίQ��4�zJ�KALE�΁�
�s
�1�?��ظ����"��zFю���<���Q3����Zw�<j�@+��8���U����`l�zɷg_..���\�d>�ԗ
\�A_���� �xA?}
+샀���5NO������ny&P��!�È�O���H7��ϰ
6r�$��V�V��
�I�)1q}DP�1�H�
��5Z}mkuqg����d�
����Ҩ��x*��
X#
����ܹ��ݵ������g6z)V�YI������g�#�'e�{H���i	
��$ec�����>�pk�� }�h�c��
�M� ��V?���%���������h}X�,B�l���<�s
է�V
�MV���T�ޞ &o����'��0W���䄥n�����뽄�!�(��U9�{�Gi��1z:������+=%�W?��X��G�_
$%�[2���Ur.���<S���==E�m�����\r�V{���A� ��睒w&���1N��u�	s[��ٷ���
��
b�E����p���)ZZX�F�
<�G�)�@�E֔bf1/��T�
"!�-�
��R0s���K}��6����k}Ԥ���뛃�,�
��
!?rS6����>V_tt��:�Yyz�
�w����V����ۓ�T���� r)�_��چ�]�F_Q5���x^q��C������»��
oQ�7z�7��Q�g�.C���
��M�s�V�ѹ��
��(����;���w�1�V�w���U2I�,���|��[#���ۣ��՗V{17�St�AN�_!�
+ �8��7s]�V��Y�O�QB��>�}��
:"����
�|��t��Zy����g�,w� -�3۳����
�AJ�OAJ��ZeXOHq�/
`��^��hUtd�s�9B|���6��n-�z{���
��3��D���\g�y�K��w�s
��*1-���c�y�Ĵ��V�G���`�,��^Z�%%o�����2��|�3j���w}�si�}�K[�a]C��N֣�w���W�K
�	��.ͽ��Y�ܚ}�9��M���G}���;�2���d�n��.�G���-<:&O�jL���E�����7v�'�
/u�n.} ^�}]|h�+�K��o�ߗ��
V�
p�<�ª�	v��G�
�	W��O{��w�#���/s,�^_�<�
��lS�ֺ�Om��.lU^�
��j}Wu~\���J��NDCji�}񱕏e���0����7����#���QJ�Zo�U�l�I�
���:h�
�pg�me�V�t��
y�9�}��!5���C)0$�7,��)��j�s�a�U3��
+�mJ!���,9nm/<`{Vz����W�
ԯ�oq7a̶(	�	V�� #e�#���G�U�ˢ_�o5��
X�&�	�$L��_����
\���_�G�����x]~L�$��!�Z
+nt���w�[�Py��Zp@%��F%������R��5�昨�qQ��꺒���3�1J�f?��s�|���R7��� 5m�i�
Ȓ�>�d��pg�Qܝ�������LO�~���\��+9nn��T
+`
�E+������lO�����&=������;C�J���ik�_6߅m&ݰ��
��|9L�?�gEuOJο%=ڿ�]qk�F,�*>��_~f��j���.������
+Z^�[#�m)x�}�G���K��g�ߔ���I�gj��q�s��{�_�y�9�O����j��k(9�骛���ͽ���ؚ�o�}Y�^|jg��6��;���'�:r~�6'��_���ؓ��$�����o�%���{�-sk�!˓�
�qgM�GƄ������l;���+g{�W�1��Z�$^Y�P}Aߜ���.o��k��Ի�M	��>�Rvٙ
]��7������
����
\[ya�=���i�/���w�A�>�ɞ}�:nj���T��Os}�>scƾ����������[
oY��G��*N�~�8��Uq��VvH)����Ztx�wg�s�?)��F�e[C���>�m�+
�Ч-�������k}������[C���
I�r7���U�cs�����?�H��5B�\�z�
��X��\^�]�*;e]zLߚ���1�;���;������U�"���V~d����*⑝�
�+�����z�h)[P����k+]U��/����(k2���Gz�5)Ƭ�
J� [...]
��b7��Y��Qj�s���=��헪�S�G_*k3�3�
>����S�}��#u�}��Z���8��iQ�W�ڂ�^U?��/���;�
�(�hc��<�ub�%hn
�gk���7���|��
��V��l���~f�GY_�����5�2L{�?�ǟ?G������g�mѽ����S�;��g���>tOV��_t�a�����ZH�cfz�b�K)��^R��_`N۟�bj��i����w���h.:�������
kebۻ껣��-�
]���ޖ�o�M��4#����>B^xsu�xg�]�	�������of�I_���~l�������_V���[ߔ

&>�J�l����iI�?��>����۰,�+����S!�:�5m~I��k��Q]��OQ���8?��az�_&%y?�������?Vz�I#¢ 9>35e�_}[qjJ��u�ڟ
5	_�_��j�7�_1�
+JA߮�t�Nε�
�m+?����^S����N�2�C
6�W"�xu�
��f3y��p������5����?Lϲ~���t���ϱ�V?2V{)wW{pW�>��,vU����?�nLٯ������q��zm���ܛ�3�ֲ����#����'d�?��=�K7=�˥��+��GƖ��fjr���ӿ����N۔���iց�~�~���=��wƄ�Ѓ�F�,MC�>}K����y���}�Kq��?�S&��˝g߂�/?�xUx
���R��Uuw��4�I�V2˜c��
� ��c
��,O+�}U}��eC�Ȗ���(?��M}`j�:�n(������l���'ᬙ�ԯ�c.��P�LO����w
OKNj��>�<�E<�5�⤸𰦱���{F�������U}+��8������쌼�3���O�{?�

�R��=��0�KCc����e�6����TĬ��#��W��yR~b���n�`<��)>�GK�����o���e?���ߗ�X�):�1�Oh�bf�x�mޑ	��Ϧ���ao���ޚ���V��u�����3c���	)9�`������K�
�3

�'�/��˫�Z:�#��c���3~-X������_�jh�?j~Z~�?!a��5��~�ꀸl�#���{�)���C���5u����i߸��Pg-�U�MOh7Tu�njOP���пY�/|��Tp���^p��Ж��K���3*��?c��
b<�����xcɡ����\��?7X٣��/���4�O�LS�����烌�_̿-?'A]�
w��?i問cZwc����۲_
�ߏr��щ���iiη����o��_3��ߖ�	��jsV�������E��W��~���?

Yߋ3�v2X�%',wS�[��7NY�
~�'���p�_�N��8a�sJ�)�G���g_�.;�:��wi�
{��
u��p��]՗��}����<���~F���^�mdM-� ��T�T뛜�����$��
~�lằ��7ۋ�Kﰗ�;�G��)����H>�
`�)e�?��=�gh�=0H��Vz�_��RN-ud_�!��ޗ
s��s��-̐'�OQG{��@N��8/�Kg�s��h�.�0#��_�XY�g��Ҭo&��_�t��,��^���
�<+94�}��u��}�=!�m�K�����
�_
�e%~�Px�GD�?�Q�k'$�_�1@��5��6��8�M����Ɵ9)��C�Zz���|��p��p:�n�S�\��,䖍��˖	_�ko��=���}��������7�-���~Q��{܍��ғ��
+�Z_d��ϸ���E�	������I��.ԃ�w�	kݸ[
�K/��]�?�8�O?��'��p�
1�-9��I������9?.w�θ�	˃�[��k_�S����uw8��\|����'˓��#�;_l
R]�"��0�xgB����>o at F=�n��~Z��cC�Ws�rٚ�fե~gl#���<��w���������8".�eL�:���qd�%1�?� v�c&hZ��׶��7���do��u��rm���pC�Ϳ�B�V�h�����h}ZrX!I���!����'�c/�T��7��ߍ��ԘN�_�C_�}Syb�
�
}|R������`7�_O���^fү����.f���k�|����������>_�C_V^�ZPp�o�C䜅��
���tO��������i����Q��K�p�����h�>�ef�K�o�沿,=�j����1��}���38�_�&eE
�M�c���&�<�ݣ���	������'%G�[p7F�ŧ���%
]�[s�+Ϭ��^]���nF���s<�����L�%~��Q}k�#+{�
��v�ѿ�,�Q�5��ny���o��qB~3�ƞq�%^��d���Zz�5���!&O�f���8��
�#UCթAV�ߧ$���_�
�~���E��3DM�
$'�Z�Y^�^�
�T�wr
�w.�uV��{����T4�u���}�N?���r`���xR^��'��Q~�����02��rO:�w*����/_�����
�x�m�o� ��_�bmK�oy�v`�5d�1F3��߲��������ҕ5I�j�
C=�jBp��a֥/��J.o�����	�*��u"jH�'n����M���D��0
��W�;��Uߞ�-:����k�	�A�~�muK�/��?E��o���<^[�ur���� eo����w��4<��I�4��s�[a|��ez���5�-X�e�/�-?�����f��
ȶ����k�b��X�|�8��J8=,����������w���PՊ��e��^	��|��蠹5�;�$�_��俽�����g�
˽�teC�/����:X��.�w/������-�����/�W]âjߌ��U}ak���>�-���������k����;�����p�����N��m�8��-�Y)����.���.���1V��
{[�^y�=%�.�o�;�/,
�37�xU�n��Y�7jy�w��s�ڜ�
yGW>�Ӎm�3s���>R�}$�Z�@����*�N���)
Z���r�혹�ug�Q��wg���=Bz�''x&�[C�
]��DM�o�#b�����Gꍿ(���X|�}`Tv��*iƾ���kS����[zK�
i%
��]�&�l��-��8������U�ѠRL�/R��Z�?ҷ�
��9�{��ʥ/:h׾V7��dn+:h�5�n}���:��]C�L�ج�!샥�٧:
+��3�5�����GaN
.񛉦���qF�Z?��iщ�7���+/Ͽ+:�k������Gn�7�ƒ������k�-��x�=�����E�����'8E��G_��Vֵ��Lg��-u��-uJ[
+w�`���	����@�%����̼��^�?�<?�+\��g�n9������fB6����?�A���p��(��V�j��0|}�)a&�7�onw�
A�v���{Z|ɾ�n��}
���Z뀄�ii�N)*�<P�V+L�0�K���]�`G��
,��T�}����:�/������w��(P�O�<���6ꢱ>��
�]V��?�Q�@>�ɻS��́���|�c�Y�Sp1>5�5
�l
EŸU
�eg��Y�Ͼg�� �.䧑��j(y�c���|Ȯ�Z�Q�v	*r����08xw��[QbpqZ@� �w���Ѐ
YnA������b�x?�T�x����� 1f��(��pj��4�6����`#�C�����`>s
.�e\�
�-v1�㏴��ۓ���S����
�7��V�܅7֕���pQ�F�����7�M	�oV|��^5�i��
�x`�!*k�SB涔������{����T��=L˳
��嬄
��m��8`��'�qU̔+zQ��N\S�>5��c����8�d]������
���1�zy�yf�����`���Z�C�2on�<�ߧ��}���0�ܜ���'�1:ڣ�W�
=s��Ğs�+����@��7�u��v�
��:��%����̇ڪ�RVʽ����{j*d0�e_.*�%�ju����|]�U
'������Fo�3�x�7�8!}u %(=��ɏ��R�
���I�W��s�Y�Z��d���6�	'��S������/�����'#e�7��:��H�.X��k=�t�N̳�S�[K_�v�OpF��gm2X���cN�`�J�����)���SJ�2l�y��<��
xi9;�� ��e/�͕��_��W,��ׄ c�b�L���t�D,�Lr�zr�[�������f�T
�K�A����}`��L����MR���y&�?���)x{��������(�Mr�)!��#�q����f��+�B��喰��	Jξ�T�=T�9X��"e���]���9}��������'[�Y�}�Ȥ
1ko���Nв7�h��ü<c����Yza��Z��������h�}h�D��ǥ\��c��$������㜤�RF�cM����������
99sm���\�ȫb��$�ȹ���aB��qf��Nԧ߻Q���:�i�5��
Qio���#��@G�sM c��
�.u�������
+���]��Iss��:U�}s�����
{�}��愄
v��	n#D]�1�nl�!��#�$`�K���
+��R�%���`�

��Q
)ۣ�ܕ.t4�C��
��8�

��S�~{ ��2��r�3K�c�]M�ՙ&H�EBL�H�1^5��7�g8�
����P��nr��=�W������̛s�E/\rR���q�m9;��[N,��Q�7{�?�֧�Zh�{�1����f9Dž8�%k��z{ ��Y�[�M��cX�*x>)N�;���`�!#=�L�]I�wW|r�yx��
�H��+���z�^l���)�;J�
y�Ax؎
��U��6�
+ߩ���F�agd4@�d��Ӱ�{S"�S-$��Ut V�!q�����>/p����� 6f�
�k�˷�0�k����Ϸ�ёN&š@�X'P	�)&�������e�B�35�:�UB��Q�6�]�+����2��J��O/��`џv����
+f�
�j�#��z�����ۦƔ'��y��~�
�\lھQT��	�;*NŎ�Yl
�$o���{�a-���t�k�@=����[n�~Xk�~���Gن�)n5�¡g�� �
���r&�9F/p��K�6©��;�T�0&�2D��
af���N�ŏ�۰!�>b�s��c
a�t�c
⒇k��h˸�8@���*���_,��c\cL�O���CFmv/�f�]�(~��ࣶ��3��FIq�'hw4���
�p�3�1#���u��
�ؼgE���E�������C�H�
�z8E-�ip�M���;i�Vy=g�������p�J&��9��#��\Sy���Sy��0�ܯi!kG���4�")y��
~a��źtd�K�B��L�m�U���]h������a����kƚ��n)6ç3��р���G��� _�*�2\�U�����	�iZ�k��Ӣ�o�(�p�)m��=��v+)����QD��@���>D䮆G1Ֆ=��-���X
�݋���q�n
�b�
��߱J)Y{�h�$�d�����wsmA�ꔇ�m�!�������<CS����f
����{� �����>���hXx���V2��|/�*��[=��Z^��	F��	vl��>-�9���x����()å�a:�@�J)�+m�gc��jx1�W{�ZGq1�g�]2f�u����KM�y��`�Skv��-3h}
�6F /�!
+����{s�m6�ht��R�5��?��
ge�)�zUR
��]��<���^�7�*b-��l�_x8�a���
+cG��
o�&z�5\�Dy{��7߂zH�[r4@��=ճ�ϤD�Ӯ��+
��gǐ%WWĴHs=q��nu
��W��"#�\�q(*	�~�J?-a���L���N�\ifDL����ߎ���.L��A�.n����<SG
+U�`���ؠ
I5~C�/S�#^ϴྐྵԵu�C�3�w|j>��Pp� L���V�
�g-wpӦ����:J�b
��v
7��/*�n��*�&Є�Sd�Sk+?�6���
�t���w<�[�:�V�.�`��虚�z}�����߈Y��Yn�~��,Xn�,7�÷:؉��X���;}�ҫ�<�w琠l��a��8ح�d�NQ){s�����
��G24��m)	�B�[�.�o�-����*	��W|u�`3�2z�}�_`����6
Rw��;�b��������`��,�흫�ݞ����M95Ӧb�y&���I
~G��l��6�˞�����l�U�)m�H���q~VD����&��^Ȼ��[��`��}o���g�8��R������=z&n�������6�>.�<]�-y�ޏ��-���Z�
��a��{E>y��9"D�5�Z�H�
If��Y:%*zj���F1�;**�;I/��*�U�oץ̰s+��O^mM�?G� �4���AL�4����z?>|���]�.~�e?��Å����-O�
�O������sD?W땿���2l�\o��N���6���:��u	�.���-�]��=�����D��	d���������TC�CM�c
=�}�;��M��ݛc�V��aK=�e�]7��b+&�� ?�wt��ce�����ܿ
�s�4���㠀ӿ��ݺx���9+?`�
��<��s�M�h�9��ky#��D5��8vg���Վ.� g���I��v�
s�:3�7vj�Ir��c����"_��<}p��<�f=,�J 
��%Y����.|�J'��� ;c���(������U��?��)��G�޿=Š�8�K
?���p<���#�
�B�^�=�*	<�ͼ���H�JP����1·��	_��\�m�ʞ�↍�P��Q����+#L`?
+z�Qt��8�\q����7���?

+p�(-%�!j�]]
�
�$�
�c��-*2��^���{�)!�z�"��=Cʂ\�3�w&��gz>⽆
{�T����82*�D̳GG�� Ą��E|�m��QSѮI:�m��7&p�2dĦ��f)
<�L
+�W��O�)oƘO����y�K�^�(�����{�G�΁�>�y����R;&遄�����hi��I6�
�󶄚�%!Ļ�,���!8�䜹�� 
���t�͔��2/�T���GJB�!�D�@D~8�K��9)�$0��a�n
I
~~v�*7��f?1ѥ���Bꦄ��ڇ�2�Q�~m���
+��!����&��{-��S�X�3 V��s�ORRc��
+zt��_���ۥS'A�.��}
+�m�W���
��U��=��\��
+�7�?۟��=&a�E
`�(1����{t�b��ݒ��WI`E54\X�x��uZ��*��ټ�������h�W���+}��_+����
���n<j%�\��NR
s�FE��_�
^;�u�,��ˠ�W΃�<���Ӡ���@���G�����ٷ��|��ZbB����V���J�zT�)^q�IzN�񒨯G��b�(9(���
(��m��Kg@����<�	:u�(�1˟�
�G�elD���A
����OV"Ϸ1�����v����OXrʑ�/_@�oށ>޻�{�4��ի�owo�^\]8�;�:��	`ܧ@o���u<&��o-��߭
��WF�Hm'nLDyٌ��h� �5 ��R3S���x$��+Pf�kPޛ`P��g����@����|�,�c�@wϟ��������rC����	�ů�� ��E�j
f���8*��#K���C�9

��?�"����q	���������~
t��)�M�|ž��-��4�X��<�_
-}c�b��ڡ�:0Ƅ�]$����S����e�A��_�b�?]�zt�<������ρ.������Ź����~L%�������3�ʝ)
�g�Q �Qa�Ӗ�q�z�F�22:�7td����7��˗AO.^ �޾
�x�����gρ�^�
+���_��G��n�K~�eF]��b߭
	���V�SS-�+���Qz��
���U ���åF sv�{�Sг��@oo�>߽
���̉���1�\�:u�wP�� ��ϿI����5y����?��TԿ�ʽE�xE��[ee���a�j�vţ�YMI�yT��c	�_
y
�_�|��$����N|�D�
�&;=�Y��*�D.����+��)��<x��|�	tz�qpLұ�g/�\9{
t��;/�
ݸ
����qljֹz�R�]h��ui)N
�2�-�
���jr�j�!U �2����T�FI�
zq���}
|z��.�n�sr�����AO���^hG���
+�,���
��O�j�
m
������(�Հ�_�B�.#�����2�����G��/�.����'W.�.\ ���P��s�Ow
�*�%��X���P�
+[�ĭ�1�L��\I�}

P	��CT^tJ��8���8������{@���v���C�����g/�n�p��
�@�_<Q�bO(��%��,
 ?Ϸ=�*H�+Rv�d#n���
+��V�s�ˋ��w�n��^��ݸ���3��zp) t��9������Gc^�:^Y�pe�
a�Sr7F����a�m��V�&�n
s[X>[~$��;PBp0(��K���O����'0WA��=]8}��������d}}{v��
�R��vM<�w����8��Q�>F�W�B
(�p��ॗ�߾
O{���
��k��@._��$��7�y����i�U`�O��ݾ|
�4�(�k�o���K�����}�t��I�PW��I�3]���N—Vr�uXR���@�o\��s ���?���
���g�����a�����7n�
+ÿ
�'
����я���ȯ��(���.�$nkk��e�0y�_�{
},6�ّ��/��	ݺ
���o��Nǽz|��
��I�?
!g���2
�vT|�7dL
�RF�IA�b���jAx7���
M��A`=�hw�)�3ő�!�KΓs���3�b��=3��䍱Ɩ��<�s�Zl��-++Ѫ~N�X=t���I)�����
�Sj..�4��<8&�.=�,6)�,-%%����2�W���ݐ���������Vƪ�s#
$�@-TO>W˻)�ǵ�k"�p�|.�REB������@���b�*�օ����'H�7Z�7�zA�|'5zK�.�ȅh�9;�)�S.r�qJ9�gR�m�XE�ݣ��$}�?���3�] ;��v/���ۣoC����
'�d���
b�_̷�:5��8�R�>��j�(�ٙ
��j�n��t��!^���*�����7���A�������u���	xv�5
+�E7ƣ^쭡Y��c
��Lp��	n�ڨ�|f��i�ǏT����ۘ�KyQI'R>G
���#�㷁ؽ:����[A�԰�c���k�$n��PêbTX�l����-ԏ�-�[w�E�\�O���e�v�H��p��\p�%bV�yTF�YHJ�ooC~�������ؐ/G>?���pZ�4hi�D
)le�
�ɪ�6y%��`�n�2���/L�Ը��j����X�-��J��#�㛓Ya��3ΤE�����
���dz�s/%�%�͌K8A)(=χ#v�qo���wr^֕�N���9a�����\�����E��*������ ��������7G"�^�r�E���G
9���uP��7G��)Ta��
p(��B������X(��-�R75mf}���<V���EM5�ތ�a�;	%���Z`�
��F�m���P��� �-�8'�
��U�0U5X&9�-b�p�J.lYŅ-�Wa��a�vf�t'aq�C�<�+Z���4�����7���>%��˥�d�U���U���r)�F-���u� ��36�"�R73q�[���[W��n,�
��U==$I]c⨰.��F
����5#w&*Ei�C
x���jG�P����{&9X���۝0w&+Y�������!v���0 *R�W��:�mM�Һ�ymmԸ��q����i�͐5�%��8��bQ�D=dUYE��xH��U�%��/w�^[%���$�)ii�,�%�ة���������--ْ���:":��U�'j��b�_i��a
���+C�<������ܦJ��P�蘮o�O7�zgj��;M-1O�RV��(Es�sE%|����J;�,/��%n�o�q?T
?�p�����M�/K�f�u�G흫��1�k�

�����
���o�1ńm�iy�#�X=��f�wu#��LU񜤫jz��L�E�`��7�C� 
��G?Uu�#�[+�t�̥�J�{Z��gN �g�+��(��QT��>bc��g�����R��lS.dm��&��*�� )��(+��L/+kjx�y��,k�j{�E��F�Y� �k���AD�F{qc�vo��?\m6�iP�������kJ.tNV	U�T���
+c'�k�-�o���
+�h[?ֈ��P燉Q����>��^@5�y��.���ė_�5R��M�5�u:uՕfu%�h��1B����u]�׳^9�3�%oK	)&z{
�ݡrUI�ޙd!�&q�Mîpk���n���-�}c]�oN\cֲ��Jr��"t]��^�b� �P|h�x&��;�z v�%�)b��4�t[�K���;��M���[% ��<��e�W1ݓ"�CJJ�c6�����Miw�VF��c5��A�j5�!�U�j�
���C�����"�7����L�[ǀؕ
�E�)��z&+�
�����n]u�UY+��k��
+v٪�&�E�'�i�c�D��S>��I]�8�=�Ś�4
�j�CM;�����@�
+��c^(vN��V��c�nq������[�'[��4��k�Z�� 9j~XP�"�Fm�X�]
�o�M|�kdnr*�u
Zr�S�ƹ�D5 ����������C
��ҋ�2f����S�d@ �[Qw�&*+TԜy9
�"�¼���!߬�Ѯ���V��-�|��
V
��\,�
������dB]�|��%c��Ʈb at w�k[����L-��`_
��%
���ӷt"f/?���0
pҨoF��� ���0�����0<�)�d��
�W͆
���

�5R�~�?��R{�MC]�C%'��JgN�wZTk��eu�_�U
�o�I�g�w�
��$Tʏ?����aW��~���
�5]���5�?#�xT gJ�$�0CK����9.ǵX;���9�!xg<����)�;��L���5
y�>X��窰yW���Vu�խ=.]S��$�̥ ��%�ع��6>c����TSY��1�:��sOR
+�Zb�S�M����
-%w����՞�I�ρ�9>�2I.�V��e�x����n���Ǽ�1Wվkl�uk�
���h
)}c�T|���а�s#��anޛ�!t��P���5v��
�5�О�h�
�5��%%g(�Qq�Zt�]^Ir��o�Q�=���q9ֱ�й���n-�3T7�&ԩNx�]�Bzt�\���vW[��Q��6���[2h�ތ@���
cS� v�ȩ��y��
XX�� �A�G�0-kW��陦"6%���@>����n%4��1'��Q�Ҋ�M��z��X��0Ե��յ�*j�UI�thX�i.ao����MQ�����4
�3��?���{Fb�C�O��(�9.ө�Wx�}�V��������$�hH�K]�w�Fh�MƄ��:vf�ڶ��B���vw�v�犸�V��
l��H�X��yL�b�Iܰ7#��5U���������y0ŀ��Č�������ǻS4���ԅ�b#��h����&��_5Y��byc���at�g��kc�Z��E
N��M���
�[�LX���(�����Z��bcc�-}U�ť���;ZL�S�L?0R�{�U�3C��QAt�U�E
�Ԍ:�
���.C'�
�c�ZR��<��`�Vf�Ww3����_�<�CIH�j�9.&~KR�v�5����8�`����ͮeUxg�Z<�u�6
gU��������#E�,�ua�Sņ/t2s7:�y����C���蔢¶���{J�4��K���g�QZ�ei�a�7*�n
��q���~ <��D.�w�+<�V�N1?���{�`1ӥ!f�LR�T�Z_Yįyq��X��T�Q�qJ�vo�k�s8��9��ގK�����ip=�.g�
+��p�N5���S��5t,�zSEB�U�c�T|�C�Ou��QN5*�"�3K��lJ|����9׃�f���{�u�:�6f'�Y%����'ۣy/�������W

�p�dm�_z��C�(rh���qT�S�M���]�S�>r;co��ߟ���������&Bс�Y�.{�R0Q?��
Z6zk�]�ԋv��kU�1@|���~
��0	�����5!mG����)e�����)`�Zt��@�[ccQ�ew`d���`�
�½iJ��>�EF�؟�R-�f94ڢB��4h =%wMRʷ�
+^[&ʾ횈��
d��2GhV���c䌽��F���΅��b�G�0ЫC������)B� -隌����.@�O�*�	V
6ݦ��8&��>#�lo����^��O���i�3
��
�?��\�L�5H|yR+���?E)ߙ�7���N���
�A���Я+���s����1d��aS�|3l�GO.�*�w���bU�oY�p�|�	k�z~��֐��=Q���{S�W/`z
l�oF��c�z���ng�Z��QK�Z����-fSQ
�]�Q�w�B��:��V���ʫ�(�tĵ
x�_Za�O@?{�+>��
�5g��f�Xo+~a
�D
��ޟ���
�+)?�\���Sd�CQ
b�x�����KOC�Z�VyM4�U�M�(p�.
.eW�����9[������^F�s���Q�
#���>���Y��1���\�̺m�@?;Ԝ�~B�[�(ݖ��VGБ���H��pg�]��e"�
+j�?���? ]�g�^��n
'$mH1��	*�"��4ͩ�v����(%�zt⮦,�&�~ޒ �n��CmJ�Ԏ��P	i���Z��	sx����R`���Q��Ȉ�+}������]SU�{����  ��r(�n�[<�:-KYeBH�E��(bo���XUg����SE����#�SL��Q�6�aV)5��X�yx=ߔ���r�.9.m��Vҋ,b� !��ZGE��,�
��%
t�hq��2W`�s����3
�΢�ySń�%���Y���"n�Ϛ����-�L��H���ފ�QB��(6|w���aW�&�]
�� �'���M�>J�<�1@��3��z�'?piI�?�9쿗y��.ۥg�7'���ꖽ��
�1w�=��r{��]5��f��_S�
+� ��Lu�U9#��Zoy��
�V�"ͣ�/ &���K'�xgق�2�ߟ�? �����5��?(�
#瘤�ÀzMl�%.��<���'�uî��`�?�?��M�o��]��D�2�`_��re�g�C|�;�(w��;�l�WǨ�����#�P����j.�،��9)���R����#��o�?u�蒒�W��_��g�IA\ �:&h���O���K�s] ���ό��.����o�
@�^��?��q��-q9�:X�V��v��<��	��[�)�ڇ�s
��ʞ����2Ue�4�үΈ�/XJ�:��Lm+,<?"�^D�c��^jWr�;Zܫ�������'iY��4��RQ� v1wt����D����;h��`�����
5��3��c�0 ݂M:�$d���.5.í%���ؘ�QL�tc���aL�����U�ѣ�Z$�o���W6@��&�:j��ͯ�9&�'��uOl�h���l�{}��jjbM��Yt�����ڽ٭���,�� [...]
+d�2^
��c"m
+t�Y�ɰ�������5sE�?�,��R���FZ�埶F��Z���V)�C��sO���c�X�����ͩ&�%���~h�g�C^��
��,tc�~.�I��DM;::ܡ�&[�4 ���~k⏶%�'mJ���Rj����൩*籹�a���e� �,��B
*B�%A��2��kƒ�:t�UU�٢��x8�+�{�I�k)y�]����#<��5^@�.�[��Z}3$Ȏ��_�r�-�g���5E3
��
����`�KL��%*
����#�o�
%/���Ab�����P�6{����)>yOC-pih�6)!�%��k
�����bꞜQ��V���[��^�L%����G����~�1JL�n)��
ޖP�f
b��|@��=-�ܖ��U���z)� ��X���� h�Qd�F�
8�T�V�X��y{�܉M6��c���7&9i�5��
FQ6�a�7�R�w�5����,�յ����w\�EA�nH�f)��bwڽ��� �xy���V��`G�+��=^=2�9~o
�
\鈹�=�ږ��+�['8��^�'�s�?�
�N�p*�9�#谭A�' Vb7� ��U��Č�	��v�1����~�ٙ��1\�՟�|�75p�P��2�v)*~�{��
�
C����K���X�].=
i�(
^D���
�!�/�
+J�� :�6�����?o�}�S
�j�
���|7�Y��ʚ�� ��A��&�������!h�e�<rk����
�U�.
��U��2T��]8ߕ�ĩ�����>�7���R�W�
�1	����	x�M�
w�a�v��'�����w�QD�s�Q������
5.mk�ڏ
+��F~����=��v���]�o�Ž�	;�����vo�a����n�H䚮�_�1
+���O��e
#�����6	4
+��ؕ����ql��
����P�
��昿�1�����f �뫡
�l[�NsM�PN-�b��e
.U��5�D��d�@'����]��2���������rU��
�`נ������Ad�z?"ܩ��vA?���In]Ǹ{��֭�<jj�o���jI�N9*z�+�^wy����Rs�+K,t�
�v�ȇ��@s�{���S��
����At��Ù�v���w��P7�O�#��~ȇ͡�w{z>�>%d��7���X�	��řGH�K�e/������?1��;i1N�
K?����1�>�����Ƽ;���+fҙV���V:�EV������S��V��
+�3����β����=5��i�ҟ�xR}ZÎ?�Ԙ��1����@KoK��
���[���	!�6BL�"ŭ��B6���-��u��35�w2z~�Lu黭1
L!̻%#G�1ŏ9��|���}����������)O�IOO�y��F
�.+�t`,���#纓�̴D,u�>������ĕ
`�z
�=U���j��(p�
}����Q�0�s��_���ߎ�|��s����d�|��ϼdড়�Q�����f�	��1bK�(���GۆHN� �zȘ_&*���@����#��s�_=
�g �ȥ>-1��,�P�����[�w�T���Y���o�#
�8���5���у�8]��x���UɄ���5�!����:�`Z�tjو�I:�`FX��6�r������d�'�n9!y�
�r�=7�%���ȑ�C����k��Iw~���?�m^
&�!�~skЉf)�$d���P�b6�� �J���~���N3�{�L$�� n&�:��Y۝���[�=s��݅�����V�	�RmG� �!Ѧ@F�T�L���� ��A(؛5�5<�c
gA}3��=��2̉�JL{���

e�'����Z��l�}�
�L���f�<T30�3��691�
+�7e�H�8&ٟ?�y��AR�t]�c���w0ǥoJ��=�w�
�A�97�J^�
b���7iIώy
�� ��Bs�������������̀��g��-_
�E/v!�
p-·O�,c�𥎜���''��oz��Rϴ�c�Ѳ}j:�p�K�h �
+m#��
MI7��N.t�/vT�1Ֆ<��
+}��z�8��;�K����$�|����p��G�V4a#�ѧ�[ ���
�#����_Z��?�6���dߙkE���й��k�=��]*X얤4�<\�S3ເ'���=�������_Kս�Fvs �i���<����c�<*r��|K��y�`Z'�i�$��s
+Z�u
?��BCn�f"i}������QRһ�[}T̞AT�ޗ��$�>7[�p�<
+�1Ǣz���
V�Fx����v�
�2�p��Ū���SjJ�_k��wU�ܙvX\Nȝc���G�^�{�谵��S¸
ͥ/�Tp�\�MSQ
S���0-g[���{NT���g�=C�p�C���J�{��@�T2�'X�V5ݫa��u��6��O��΍�>���9>���-)K���e�
�h�3���
�p���
�w`�3^�M�	?3ߒ�t�@G�LqpV%
�!%&�&�0��M��\�w�Px h��It�[��r鉐�����Φ'����k�
��3��;�g�zܪ��w�ʵar� �����4
�c��g!�.��<�	���F�`�:j�2��lu�M-/��
+�1�Rxľ���V�����X���>
u8C��Z��-��s�����W�Qt�W��,Ki�f�s>�)`|
�)�% �p{�sz��Ǧ��:��|���<v�0��#��Ŧ�'k��/
X�tm�
� ��R[����*��}�%��BgQ�|[q�rs�;;���&���R|��05������-

�l����b[�����ۀ^z�'gl
�
�%�7�p
%�l{�e��A) ߫+�������
d�K?9y�~NL}}R+��r0I+55�4B^
���Iѯ����tI	9? O`V S��

ڏa�[ht
�p�_�YA���/y��1�/���M
򎎔���w5���	l�f7$t�� h�&��J2t���JX���J�u��g
 �c�x�&a�
����
l(���Z��ի��v��IA�ycMƓ���П�Ծ�Crj�PuSa�;��_s�4�|�
m@%�*��蘮� ��(p��x�����6��Y�
51k�����`�{����C��g�����f�<�J�g�~l_�$Y�^��$�4��*|u`b3�:>�"�e�U
�K�(�F�!H��"⤔
yv�5��
�{�/���b12

U	B~�щ

6w�����46�.���}K*��O6�<�P�2BLr�6������^��<��mi+�i
-i��:h�w�X�>
+	qM�}+5�?��[/��_|��@�t�"�W�zf��{�`V�;����xD��Ub�`"�{
+
[{˂�4�r�06b�
��5�O�Q` M씔�u� 
�&筍Ӳ���;:�9I���I0��g���t��Ћy}f�ZX�e�e� Ц �Z%�/�U�׵��KS�cC!�	~�g2���9�X�l��O	)��8������85��fWi�O�@�6 }�5�M�)Yp����HY^UE�e���>��� :��lUӏ�С�X/�M�Ir��iN�S�D����
b��,,w��ږSV���J~a���~Q�H�����b/�P���@�;�?j�iW���{#��'���?
���D�M���}et
i/~������V W��/��JޚG 
>	����z
L�MA�ؙ�AL�*�82b���{jJ�pa����R>��<�:���ߖ:ˣ�X':��"�h�k�8�f]ɛ3���JZ
���9
�l�+���V�֫��ظ�,�D�f��$)ץ�%z'��.-��5��w+h������vu� ���﷔��$D=<"Ly|lN���
c�`b<*b�o�V|0��{t�L�
��-4�Dy聉��5_����*�{�����



�O�s����
����ߩ��e 0��X_�z���k�(�--�n�D�u�S���ّWd��
o�m�BÀc��}���)����7�ޥ��O5ܳ)�X�l۴w�E���-��d.��Q
+��6��k_����9�{����y�pТ3t8���v&��� 7��CU��-9o�l��K��D
�(6z�%��vO�� ��RC�m�0:�3�F�
gk��{

�S�KK+���8��^�6ґ
��v
t��F���T��y�=y��"dw�J�1W�u`� y�U�s����^��.ܗ�6l�\�uw�
�)!%�ѓΌ����g�[jB}����G�`��R���:���
�k�Ow*)6iγ����ӵ�ƙ���(�{&
�����
��7} ��j��}=.�*)y�9P�C|5�⿏��&���6�襛
+>B__���gSQȱ��/��IO���	�� � ���T���z7>�-g���t�Xy�|K��	ηô/g�zh���U���Wx՘�������e�w'�9?���E��
*l
+�Y`^=�[�w�o�za���4����!���k�K1qg�#��=#�Bט|G[����%�q/���
T�
�
b�I0v!�O�\m/
����oăm��/��W.��i0Os��Q
`B�}����2�c�ȥN�����㌴+��!��*�\��C����BX!W����]

��W�a�
�h�-��Bg�-�����9
w� �n��9;Z�pNX�ϲ��7E)���~0�ɸ2א�&����RS+�G˧kB_m�l��ysRN
+�]ǎ?�����&�٬���
+_�6��2�Դ��aS��y�FD�y4��Ls\�lKܕ_���;�Mc6�Hh�Qs̊�
l�O
�7I-�(*�o�e�Ɗ>��,hpL�k-r.�7SY����z��
7��-C��>t�Q��?�zcCJJvMRK]��=�/@,m�����̹�ٖ~�5�J����5=��e�
��6v{
�%A��e�0���cd"���.��Iꛩ�?����1/���� ��]`��9 at KN3�z�SW��
���ɧ�Fȳ���GS��k˭���È��ΊWs-�ϛ���^Q���>B����� ���@~��@� \����b�F�vi���q|�S��� �5�
+,*T�Y�M��Z��s�n-����g����g)P�
9�V�p�j�`Ul�s!s��ȅV�l%慊�wUJN��g?�6�=� ĞQp�ﬣ����צ���ց���֜g��)w̃��f�)�|��0*|S���7
+X{F6�p�Cߟe�=�_���I�]yO
*h�]C)pH��>M���T�p.�Ձ�����Ɔ�k����z`_�Q���s+-ů����]=��3�p��*�
=��'+s��;������ �����C�5S���|���%�赾�`���엀dlF}5���^��N2+|r6�#eB����0�F?)�[�Ʈ�c��´��	L"���y�p��:��k��m�Q�\Z�6����b���S
��
���[��_�����2�� SV��V�S%;��}w
����x
�Zq�bGڛ����F:i����CB����d<�k�x�=\��
+�S��
����|�FL}�c�n�`��fOǨ��?-�e��	b6�
>���o�큅�E�0�tm��j�ԩ���">>��j?&Ϋ�#<s\殿޻�Z�-�F��qQ�1r겿�RCf�bS�m57��\Cڝ�.�k�L���G)E����a_v�ļ�IJ�$���;-���B��L�x�$���P?���s�/؛���S�$���k�"�L���u�Rn؆�9��$%=�JCA�Ѻ�ǔ���۝Eϭc�c9���y������"lG��{�<�w���g���Ԁ/�Fٞ`í�j�\%~i�o� f�h��0"��^$C�Y��gDb`���io��sF\�3��n-.�:^j/
w�(9.9�|c�������d?h��^�,�~�q�����!B̕Yq�m���9^n��\\�%�:啄�A\��(�[�l��_x�Q������j���x3�ԉS��v
�%�b�����{� z]�PG5�@�*��`;���]�������֒XB::g���y��{�Dl�(�cW�䎅�5���L�
�:j�b�udľ�I�)Q�����QL�mV
Q0Ay|<��
9*?8M�a�J~�5N��s���9t�{
�(����NC�:�k�y�_���l��+#mo��շ����sM8�>^/҄k�kK.ARK
Y!5��1O��ھ��<��Y
��1\����wZI)�a���w���;Q-�UB��3
K;s�[�D� �o���vf�/�LĦ�XP�AZA���)t�>���5��4���k�'�;
+y�u��Y"�R�ӟ؆��v�a1u}�w���ITv�Yq�
Nŭ�35	��b�l�p�>4�w�ݲ�:Y���T��P�
II��DE��L[0
�����]a��V��#��^� ��I���K��wb;֦Z_lNc���J�5�vM<����uh��w�,BT����o@�Ŕ�ܠ�28}
p�CsW�e�(^k���
+����@խ�d��-1"U�-�4�z���8(郕��������
+ V�Ĵ��=@g�9c��@}�����8�66�8�]v|�.�}A=��<�y�@����$ə�w�;���P+t��N�����*T��~L��I��o�*l͉I���r�u|�eGrH��ݜ����ؒ�9L�����o�Բo�L����䈪))�h�Ƌ:13�f.���e��Wpbcs�}�� ��㋷&0�S�7J^����W?͹}�iD�%�����|�5�pKN��M�)�9�)�m�{�6��wг>Kڔ��lJZ��h;�>zp�X��B�S03����	�]t�7��)�9�
z������M�2
/N��9�����Z\���\럂'�T�n�/�m}�:('7.�*/k�շvu ���(��cLyL�-/cK�}�O�]
O�
\��
��+�Jl��2����;:����rL�k����
+
Ж�ưU�6ّk�{�6Jٜ����-*�U��)��	��Zb�_N�iH
;f&.�e@|
+rmXKo7v��H�5�vO���5�:0�H���Xn}�>ӑ�W0@�Nh�2�G��r[єl�<k�ϼ�jx��J\�~U@
����y������{!%��!�|� ��mm�u�	�����m�4�����y%�\�:=�cQ>:���ut��o���ˍn�5 at 2]cM#RReL�l�]�`N\=����
'6�(���q�6\=�� 
���=P~y}��Z��m�����|gF��
D�2��~Uв�
�?��]y�kz���~�E�qy%�`τ��1�O�
���s�`U0���@��3ia9��@OC����� F�lܖ���r��#�
9������Wdٯ;

�
��l�vT^����cm���mI�F4"�Dd��
-�5��gF����(Iۙ��2?���1ᣃL
�	��jhƶ
+�
Ӵg�`[�� ��g���g�'���V���������������A'��?�g��rꯍ��/����8z�ٛs�2�0���XG�(<�%j�ŨW
V���ԼQl�iMg��m5�S�G\ӡU�g�v�̏�(��
+
z`��r�� /;zl]�6a���Nq��P�
�`�C����tN�,�#�@�
+N�_�psN/�S�����L�'q٧圲����
)�E�ц;qÝ�x
�	���p�æH�kgC����J��3�>���;&2k�
0�x��+
�kؒ����{xg��V���gA����ˮIhRHEl<v�:}jT�c��c��݂��
+33P�eRC�#;�{��ٷm��Ԕ�
��}dt��:cZz�g�T�0*<���WlnyA,�����Wgw�8XL�(����z����*�����wK�� _��y�m
�t[/�Ai[�\�T�ӈQ�o㱝��r��f��f��֣<0����z`�"�
��
Otl��L��8 t�$�h��2
��"4�ұ-�d�,��
+|ix�n�+�d�
&���f~7���qYP~u�Z��
"��>�����f`�c��w� �w�\bPM��_a��
��
��+�%�����H�ZDfk�E�vئ}K�@�
LH�ͷ����|!�~���Qz�X��5>��W��]U!r�*d~`��-{`$��&�<�6P�`sW����"(��i}	��x]��8�{+�fk��AL�(�
����f��ds��ɱ��G����#3q�̀�g���/!��
����ߔ�s�����o��
�l���	�C�G��ߎCޞ^Fg�X�5q˓%z��š�	�Kmwdz�	b嶾���k�
+daLKC
����l�
��7� ;LST�.��Im�.���*�'f�P�� �޹�g15�͎��2M��]�w���f�ξ��D�OC�/�a�]0������M$�z�*�Y����
����չcd��<����쮠k�ר��
��!��ɅWz;�/|�t�
:���-��y{����IQ
�`#�RX�`�v�5ޒ�M�6�k�2\Y x���$2eK����޵Hh�LËw
<Ʈ�C�5Ӑ�����
+��

ض���緖X��P3��>�nYz0-87����=P���S��J_M��
�t�����JF
Y ݽJ�
:H�=�18ϣ��#���"
�Ȩ�}̈�h�5>
�5
0ǞM����
��;O�<t
,�هM�A��Ն�	D�&Z�Ћ�
+j�B�t�4 |���e
�T�j���&#0
I�7��
T_Ҳ2~�pJ/�2~K�u�~��߂
���Y�k[O�
�p󭍉�{�ٚ�Q)&�p�[;�{{.��4�LC
A��lp��s��e���]V�9�L�L���,��p5A)<mm����V}}�Xv	������o�y/��t�dn/ �]#e�������g'�ON�a_��R/z�_��AO���?:{�eQ�����
������-I㓠�!�@�m91ӱ5��HOh��������-���a
�H����[��{�d���/s���ql�g���]vQ���y
��Cwˣ��7?]�]�1�n2+_�u�<\
lN�L �X��
+H�!�0�l�۔6=�-|O���]� �����WR��_jI�1���w,p@
�4 �O�`���rd��4�� ��.k
�
�8,�7E�|�,�>�a˷�A��ggH�W�=�Q������k��b��ա`r
vlŴ�8��C�zt�����,=���p"�a�
+$�a��rD�=58
ʍ�zɥ1l���R�<��9�Nr����9D�_F(Y������*������yD'��Yt��6q�.�%�� �wr�13��2�L��^��<�GJ�Y$���ݐ�C_ëo6Fk��(��:X�0:��������Y�~��$Z94�Y��\@^�2���v�@�
Z8l�$$_F-<c�����'p��F㜤⠞�a�#�l.Қ"z
dS�^r���>v
�Z��{W�M��='��	[ƕ�GZ_ ��kWǧ��(U����Iȋ�����ݵ��t�o�Qj�6����
��
�����f���
n��1�p7*ky}l�u��x�$$�-������]�5j
U
�{�N�lޑ�A�s�w�\:�k~ĬN>���V��!�mϡ��S�L� ��E�qGIn�UKo��!��{[�;K�I��<��<c�Ox6��I�������j^͵�^j���x��>6cA;R붔��a���`��U���RkS��B��JA�����`�W�1��"�Б����놿�UB)��6�Nq6�6�
+�*ș����_���h�������Ke�.|�6Ԙ���kh�
��5��pk��nH^�ؿX�8�$׹&��@lܚ��
[��;zlǷ~p;�;	���V���hg�M<މ�s8�/&2�@��
-�^;+�kX���' o�S��IJ�
mg�]�"�h�Xtw_|�O�����Ix��"2��Aş؉�;��Ȇmܷ㚣v*:��J�~\c�Ӑd�$&{W�����}�M/�w���
+�zŠ��j|徎ؠ��\�
�^E��Y�
k|l��cm��_N
iu�Z
+&f��6����
[����G
��#7
xM����x�#@�4�I ߟ�e�t<��2��:����W~�Ë��)��"˒

,j ������2�=b`��̈́�H�
�W���
��/���׬�w�+
�_�E���樍��� ���0r{��
i��=��c:�9�C��b	���
��ɨ�A
7-�9ߑ��k�
�㺀Z
Zb�o��2
��[������_��|�O�i[B�_���/�s�
Lv����912k'~nP��Z�Xưo����s��s@��Y{@^?Z%���,bT�!��D�L5d�_�C7
*)͞��?6� O
}�[:J�On�4���,.����^p�
-
�+QC���;s��_&�?:F�o�$ДIVCri�SRb�Ϳ7D������C��1��H�U���t��]
�m��������±�f?�������U���^
��t���G����
]`�m���{�
B&zGq˜�?DMI��>
��2W��o��e��dЌ�e\îS|l������{giꮾ
�ǯa��
+T�{���^�z�YrlG7��K���k��L��n`rG-�o�ȵ�}����fa����S��{ݒq�s~��oL4�{����] �l�q<?ǖ)-1-摀2��߂2P֟.��4Ԯ��߷҉�^�
���s��'�%�!9w����,�V�Ds��%�X-��6�����NB_}���B���=�N�(�th�C����#3�x��PX�-*�e!
������X�#
�a�������h�@��ߘ��k]4����"�^���������U/��O��5Иx���o��K�y�7T��_K�J �eD���m�|[��� ��E!
:Ș�Uů�@��j�9g�ޝ���]�����
�����
�y
+��J@�e
�)g�x��H�=��jXf`��w��ށY�??wlW��El��S�6F�)FVů
������S�O����
���VxU�J\�k��c��k���c����x۳�"��O@�}tQ�{v*&j�!�l�_n�
]�C3�Uӛw���#
��H�Ů��߮�b����*[��":�;��=�⚆UzNǯ��5�Ɍ.s1=�#��K��m`
a9!���xm
+S a��&��:m��=vvχT�����W[H�_}d��
��2\������$���,|�}�B�.�6go��p�3�{�!����~^$5�
��l<�J�j���gÐ���qEg )��jO�3�p[Re��ϐo�~u�F�����
���_��<���e0���d���ej��J�H�IY�A�}�����8������������B3l���H%����?�jk���~��;�PA{rL��$8U�(���f,�])$'$'6Y;o�g�1�<�@��T�☊б�!��Y�?m�[޾7�(��h�)��
�|�@��
�h�C
���Hi]���Ւ�d��4�_񻚝{z��͙	d�oS�d at k���_�����/����?v��nV��
)�ɻ:
0��v@; 6��젒Xyd
+��
��\G��2�6� I1��/L�?���Us�
���ŵ�G�y�g���L�&}�%��%Z��_���3������[
+n�Ô�?iy{�-
♇��\lM�3��>��9Np/�%�~������XzTEG�v�:E��7�U7��\D�	�s�}��׆���k����<2�7���?ٜ�%�{�
�z��c"6&�@,l~�D-��
C㯾�$�}?K�F{�
��_6^�y���u���⫾��S�YdNXڑj�]�t�K������Ț�U�3~ސ�;6�i���&�@Gn�U�"K�
+kw�-��힂�t�~j��������L@�~4r�.o�u$��
+�<$k�������<������y���?��\�#2

l���>0���F6&GdE�M�}����G�!)LLܡ�EH�U�zq_ϧ�HE^@s�t7�_�7޲��^�_n�Ӫ���+JFɅ%J�����@
���U�w��Ӎ��$^S֙����a)	�n�c��]��Z�z�[_n/��>6Q!��3ZDؖ���_�����"#O��$���8�����T��qt��}
�'$C�m
7�p�T���f�@/��:�ҧ����쨠y�ܚG��_���m���_zEA{����'S竟=c��"J,�L�૟�_bf=��[����$��0�A	8�&*��cf^��}�V�d
Sx;�!A�
+tiH}��j��%،_t��s+�
/�**J����������A�� ����g�����'����OA;)�uk��c
�
�b�$�`[�huM"�j;�nx&�ً����5ϿX�^X��ݘ�g���'×�F�R��O��\�t��rD+ސ�>
+��9�F2¯a1c6n��:�;~��-2�3Y����ݯ{��

���{h��F�mov�Q�1-�uu�5#��6E�X�g�mJ�����?d�w?�d�r-���8��W�ǟΒ���>�j
+�s��ݑa�0Pr� �<Rsw�����?��?oMw�^7��qK�0
+Ko�&��/C���l���{���2�*���ǖ9�=��� V%�4�,�
�+{o۝޶�oY�/?��ڞ�-7T�3zv�EKg�u
;����pz���jLNk-���YHJ�>�W��rC\}?4W}oc��~XҐ��G���(-�z.9,ÕĖ�':L݁�=/���lˑy'&r[D�-u�`͎Ȳ��'�8�Z�Y9?H�٧ v�u{	�`̜%Z�ycgۃ��^���ps��{~��/���r���
"_oM�[�SԚ	\�� >78�iL#�E��԰[�؄_M�PZ�2ܞ
�S@�
+��F� �|���=X��ۇ�h�u�7�%��a�bs�#�+���#�5�ڛS��3f~ŭ��PӉ)��9��������T��e��d�\Ts�
:G
+^
��>/�L�+��2M�y����94�S�����1P񻎝uF�ι���/���<��O�
�qD{|�����<:�{v��vW����[|�@���+h-�	׾d5&�920�^g�Nl�o��Κ��RD���
�P
��kz^ɵvV|�0hGG�	HP9�Y��h�͵��{^	>�P��x��/W��Āx�1
Js
U?7tU\�e~�(y�O)9�lHڒ���g��-/��t at o���]}`Φ�
4
+�'>g�_E5��.��+	��Ҥ#�aw�wQ	&t��U"�Ďn�� �A
�ikW�
�x��]հ�~�.�޸�ЩjN�i%��\�OP�W������+n���

+j�|Iʻ��QУ/g񯿆e]�d��{�d�K�`����߬t6�9ֳ�GFb���3O��٘]3�
�2��qH��Yvi}]
�r�Q�yk��*��`d��,�d}��.��Տ|=)�Y�+��©�l�U���|�9ڜ��e�G`/͂�+�ޖ��
����w
�=���%ʿp�����Vt�
+��jKt�߈.�0MO�wmoBҎ��
��-Ge�ii
{F�'#����v�����,"��h��K�w?���g���K@<{cnI?������Y�d�x��ʻ�1Ԕ ������2��o���qɖ������'"�3��bǀ��33о%R�s�\���g�7���{�@�l�r���K���7�[�4�]
I*�ప�RvQT��kĢ'_c
+
~?
+I;���t�>ܞTr([Jv�w
�w��䝬r��f6ٿ�-��+o-�joY�Z
�蘜���#+�
ӑBrr�_J�ߔ�����
�q���T/BU�{�<3��9d����o>����l奄��jO��n}�R����׽����N	���T����<�P�-�WP����c���uJ�WI����)i�=
̶>�Q�u
����2����)PնQ�DO>�a��l��ah~����GT
٘�m
�����P��\QD��
+)Z��JDv at E���q�m���&[L�xP���?�
���낉c=��bK���5Y}�2���9�l�%5^�L�s����]Usbd����<�4]ZfV�V�+Ұj�Y{���b�+
���qp�7�-���W��M�
-��S��a)2�>{%��\r�;�"JBI`	����.ؐQk�jz��ㆵ,�Wh�\�ώ�����5��t��}g����S����O���$�:�	,��Ϟ��D@��3q��ں�o����)_q+
~9	{wZɬ��̼��w���W�c`�]0p��0�z�Í�>��ҾY�\κ��ʧ�?ۑAA�F�H�FdO-�M�<q�T]V
�.cJR~
l��AI(�y�sZ�+>k����/�	H'���_�s�|n�ܖ3KoQ��O����wrR�i�`��<4-�И�Լ>6@F.eWK��nՎ^���^�hO����
��l�K;����	c\�o�%ic�)qk�#)��-�Yf@����YB���1T���4Oozl���+�� 
�4��x
�N���L�z�%�ej[D�*?���=L���N
/�
�B]x�o	W��*������w�=aWCl>6�y1

X�7�zI�3��89ku�l�Tpa���G
M
+,ЫcJjS�ɨ�����m
Rc��2d���4�%4��C@�
Z��
�g�P�uLԾ�ܢeW\�A������q�4܌ɑ�Gf�1�H����Մ�-):3�C���l�l�+�
S��gB�r\y|���*�
�����
~��O�rǑ���m[*z���0 #V���\����}���)�|t�>���c+��c�2�R�?��PJ��I��诼b�b�����xMWT�ʟWeg=c������1D�Jg�
�0��5���&�nLc���՗����c
�
t؎���]hOZ������:�<��
+�32!5�lg���3�{���
+�TP��K�j�:}��ᮖ_qa�Ptf]��<��h�e9���@��ϧ����~:���k5���m�f�����aּ�����ru���GߍAS����O�9U�m"�K� 武��9�8�kJ�S�%T��D�-�t��`ŵaУ�G[�|n誽:������b3_~��<6
+��q�I���)�Ͽ�xx���g>�}���ܦ�/�^\���ݝO�=�<������i�.�(�'��\�|���B[��<2��s�"�~q�'@�udDXJ,�Ub��ƫo�)I?���<
JIUbL��d[�[ܔ��ݐ�1}�
bs�孒�s����g^19�ԃ�7��2�3��
+z�)�ǵтG+�
M{�g�
`���


m����:���G6lӇU"�Ċk��J'��� ���1
��US����
	.�'91��w��jO؜�����iVMp���	���F�4�pk�h��q�k�
63��%�O`
+�i礴�W�6v��l�ۈ�:+���Bj�-�%m�I
�.gm��H����
�ps��3���eP���H	� ��儲���+������%nO
+,���e #�P�{Fb˟܁C;�\ud�X`&‚j,���b����#
�o��}J|待�<���
\�_�
��
+�iGC(.`�C�?9�	~å�el�z ���
}�>I*�ž��[�m�4��L�<�
6ܰ����Lp�l#�
+�)�?O�Z���
���l{Z�U�
�L�=�H�}+�|"���"Z&t��$
غF�W�������&�
�
֐�7fq�	:]ɩ�0M���5�

����(�x��f���Q��T�n{a�j��r2r��
�5� ���
	��.5v��ְ�1634ό��Ua��\��t�(6E�	~`�$�HS|�@�=�p�il��J�
� !i���
+|��XG��\�,��,��ͧ�����?�:�ɗ�ԗ����~C�_@���T'��&���(���&��E|�bD�0�u��|�a�#�q�a�����]'6+�����ٛ������w
+Y�!�4�=8e�o*>Z!�
 ���[��)�4����@��Ϥ��o�f���w�֥\�~
�w;*E���	�K�)�ź7
��K����TS2

�+K�n��pl$�t�i�:tȒ�
��`��8�I��5��f��{o��yEA.��9K�Ua*����5 @i�%7��;��l�y ��1M� �/gk�Z�-�����B� (e��+!��?��w
��h�6��Eݳ�P�C�X���UqˮnIY�x���!ek�奖�zns��NL	|�W�9��ࡷ����((CV��?���>ؚ��F��=-�������
)�5���J'���Y:��<l�G�{�ʢ
���k��{�CQ-��O'��7��HK�_=�
6�^?�;�mN��8�Z-����YJ�
\`5�fqY���k���_
���&ɞ)r����=�~
Qq��q�3#����謞�6�ˈi)m;zc��Zg���bdrD��g|�&�9�#3��r���R�
����yj�� [...]
O�n���m�R�V��ݓ
?~"�sn{
�n�,�b��"C<��Z��?�@oN)Y��W�iM�
ʬ|zmG�����}S5�VEEg�̌�;�n}jV>�
���9�NQ

~��LA�7�ڏt�&�BۛqD�w���_
+o���]qo�Y�����/�����4HLɆy' ﴼ�s��W��
+o�c
���g��1���O
+v�˿���k���N*q� /
*�Y����s��S
	*U��l��
��'@�;��׾������;�e�[�~�/��������	W�.z�
2����Ɣf�'xo���dhT�(�V6'�o�B{�q�/��
\
)	���>剻W�ߠP�??k���٘)���Ŵ²n���n�B27�����Sv�G�e��蜐���3��c�7a%�#�4����Ƕ2Z���o\}͏�2:X��x�9���@Ci:2R�'*⽝N�5�1�K���YR���O���u�J� ��O��0br|Ɏ
�h��E5��
�pG�E� ���n-SJ�
7��z���7*B�����{:ŧd��SȔ
-�1��U~�S�
T܎����sVzjn�%�E1
��2
+zV�!q�#����|Ӳ������^D��,lFp��^�3
Mr�#27����
+�[�5��#^�`��캐b�+�7ck���
ƾ0闡���&�9�VG:^�{ĵ'���xfI�)B�WF*�i ���+��I'6^瞉����fh�)X-a-�e�LG����
+JՖ�V�g����n�PP=P�%��m-�K=S�
�(���媜S3(A登ko,�Ω�%�tC��ƈy�IF�i�[���;�I�*潃�ؔa��$�̭E\i at Nk��耎����6��$0��⽕��
����W{�3��LB,8?	��QǪ��[��K�����쟕��סet�m�������k��Ś��:����
Q�u}���k߻X����
-<m��
���jCJ,1O�K�|��b�͐
]�����[������������桽������-"���u���
�Q��ݭπ������[晇e�
�c�q�S����G�T'�:U���d���&`��"������[|��[y�8�),y~�����g#&b��M�ؑ��
,5���d�W����7�P�
͵@�6
��JzS<6�H���?��))��w���Pa��T����+����t4h����$9����\$�n*�Ā��˯qʇx���}n�۳8�٘'��\Z�?��(,���-0j�i5�td�`�=��#�8��G�n�-��zzM�lv̑KBz.u{��
i�5A
�lK��qM�>
ʠi{zdyP�*vK��.)&[¯~0��>���6m˨��
+J}�H� \L	����yZ���9���$���c7Gp
ァ%7����EBᦄZ�%g��È�	r�A]��U�;+o�O5>V�
�؆�mk��󜚛
+^��

���@G44�U��Rudk��)Z�aS=�kSJ�S��C;�3��v2����~`�6lkP�{+�F���k��yd��
+��hyb����ɉ��>��1���x�U=��^�n�X�-9��+��TT���~���1si^9^�D�<v|�d����))�~�п K����Q
�h�?X�?
)x�M)��#&dlHH��9|֊���:C+�
��\��E>�J{(ޥ�O�X�Z�Ƥ��cs�s�ofSv�
R��@l���	k��{ůc#-s�*��*����ut��U}a
�K�%LEP�)�h�u~%��+�ڧ�Y^%�
�;���x]=���|���
+�tvZ�����E?�JZ
h��FA>���y��
�,��Ȉȑ�!��3�����s
�k�R�3r��d�=3��y��S�茳Q`=��	ڐ�6�x�u� �rI@�i�\`ԭ�s�è������:M/Z��x���
+�&��㋂2z�cZ"�N�WŁ���D������o5ψi��^��<���Kښ��E�ư�ѱ2M)��T��4f~g��������˝����n���
� ���b�LBn��D�U
P`��
hY0��ZR�����D��0R�Ls�<,�<&���%FKT�C������ԑAjz�W��u~�*�X�X �P�u<wt��=
�obbbztS�/X
E$l���6�
�^�n謿e믻��}�T�S�����4��:R���w{+tLXM���6=���];\�{ydk�ܵ�����uՀ�(f�;f(�Ǯ��w�䡝N���Q][ZL�,�7czb����o�{h!��
���_��gb05A9��1Mk�m;�Ж�K��9�Y�}h�	���UR�SS6d����{he�#O;T�X&�z*<�'��J\mHC�|�F���؍H�h�^)��3K-�X�Uy�UkK,ȚR�Z��	]��f����X�
�K�E
+6X�*��2����9�����=;W��q�$�^w�@G-,Rp��rk��M�maQ:&\J��`�@t|Җ�X�
pC at E�ߒ���4p�"
[{gBf�hCCo�YD#{����� 	舍�q��!��j�5������U�wwM
9�}
O��b���j�
�ƻ(�Ft�����2g}�lmO�t<]�������F@�]���F�
e�O�k)�h��]���5���8&��|rfۖ��T

D�\r��iȵ�~i�p��Vv�Y �zF���i�np�.�ś%]�Qf�s��h�gxFheQ
��
;n���W�)Ur�0�N����yf��Q���m\���C
+���<.�9�I�">���u],���\f�#Z:vo��
+���I\������Ӟ��ͣ���Ez����6�I[�lX�Ȁ��L
8y�m#3u��L������&TUPNݐ�$x�[� m���a���rՙ�	�' Np�w$lJ�I�1�#]O�u at c<�i��1 >{���r�o	
��=� W9�--�U�?�ft��
���[!@m�D��C>��ɀԬ�u�ِ��B**(�c �J\�w�-�~�"����3EW7�[_FT GZ+��Q�
+��O�\J�a�.+rL2��I�;f~灭w�o��"�_��~�J��mS�0��g�VXX��\��a÷ 
��옭{|S�Fu �{�ȣ��x�UYھ��H��X��̬̋y�E�عw��%��
tD��g�

���K���i�.�����k�ŝ5�Ԯ��
��u%��>G,����dݤ
.(�
��jb6
o��$x��m#

0�0�eJ��H�m����ɶ��閇!��Jrö���s�z>lv���Bz*įa"b��{���#T�a�M<ή�۹��5
�v�l��5%�xKGn��	*B�O���0~��6�<�jl}�^9��>I�q�	Z4c�����g�3cz&&(����� ��V�J���
�$��ޞq�����wd���}�2 �i�d���2�,0
�2�ӂ:�􇮦�k[:m��=3q�;@ޏ_�Xb59�������9C��t�+�go�I�[K�怚�wL�W��I�.�l�;��������q�L#��Z��� ׶8?�
��=�y�3}�m� ÿ0*����d����徕 �3ґ@|�Z��CZf�w�T�!�VF�i��rsTGl�� �
�pM�o)DT�1�"j�QP�C�,TX�Ɔu
�OMou�� �G�Ba�>���M�Y(�e\E@�@�u�.�����eg,
��=����;�`C�#�D}g�̀
[5���yB���p�6�����9[�
�6s(�e.ʧd4���u)�]0^s���\
�&���k�>���8�:�o��m
�l�L ��벱AE+�Y[��c���vtOo1��#��ẗ́-l`���Ez��
+��� �c6\��������.�I����h�ld�n�k0sJ0�ny��V���_
eT�u�1K�̎M4������4趍��9�gw��]o�.�S�2X����gdW�f�-C;Jyg��e��Y�M-��PQ�p`�կ�:{�f��g��=r|�����{��_G��
XĠ
W
5��wmT��j�l�> w��
֗ȭ1[�l�.�۱��^9��:��XӒ�c.*�p��4�	!�����Z];���];
��v����1	V1(CLu�s�����1�ڴ�f�d+:���}�4��@�kfNh����;K�|�s� �qh�]رu�
�,�i&9�)1jqx�],x��\Q2(�����
]wWDφ�/���u����E�p��7�'Dӯc*J�9Ci}
������A��U�
ՈǠK�c���V��t���x�\�H�jx	e���f�s�+��&s��k�*�;j��Y�X�L8[��������lֿ]
a�WH�.&z�Խ��}������5�Ƶ�Nߔk�:>; ��E�
�w�_��;�az�LО朢�ץ��59�[���ɏ�
�c��eD١��_�-}o�i�Q�(D����#�MnE+l��UL�YL/4
2צh>�uUB�=�1�>�����"۷�'�+���4-lt-2�65<Ħ��
h�<��^i��i�M΢�E��P_�N<V
7)��|x�)
T0���o�aܻ��Aغ����q�>y`�M-�%l�#À���M=�jZ>veaqlyN)6.H�T���a�8U��L��F�`��b���u��?�j�ϧ���
�v����22��erÎ���}���^�ؙ���Cش��ٵ��� fI�_��W��
�AƪbD�Ctc���4_#�ǚ%|�}�Xm�Ag�����¶mle�ݧ���&�
���5�ࡗ��;�
���?u�&�u��a�����qȇ;�=�L�R�.�gi��e!k��do.c�\��r�rwo�2��tu��<��r?[��4!
Y�Lt[��
}����=rg�0�:M�
��S���j�%J#�I?i:��6���富�K��]ȐyL����*G�K3#
�R�xb�3�om�Qg���wr��Y)�m�v��F� �.i�C��&*^U�`.�f��C���aU�o'�=!��Lt�o�#Q��b�x<7��h�c���%��%O:��~�j����%�f
ו��֗�~y�������<���i޳�o��фi��n�
+��KwW�Q3�ֶĨ���f,���$
2�^HF$����|�D?�#��.�����Z&9=�&�{��MpZ�&��wn�
ǯ
��^�8p� �A�lH�^���=k�أ�w,�̱��K���i�P�~R�m�N��Q�y��y�ۙDmj�AL >����Bȿ-2�y��A�o���d�x���h�k������F˳���ᮜ�>N�td�t�OZ��oi�c&n�@�<�@F�`�����+�_.�A\�N�8S��<�P�~[�濐�
��&xNuo
�M-����εI�Pݢ��8����+����>u��O�%bq�� ����Zѩ�<�g����������˯��(��@�_��ST��U� mM-���t���%��d���E���t�@�t�@��FȞ�ċ_�p��v��ƒ�[
��5�[E����+���u��
�	S���9�8Q773��O.�]�u��
��]l_q
*��)��_h�L��O�`'�'*�ٽ�熦���%����[�%�����Z{͊�Y�ݎN�؎��(� �)vw+" "Hc����1�j���������8y���΀��m��6D�z�U=%�3�u���6��L�p�P_��+Z��Ʋ�����(�c�DaDO�X�S
��^Z<���P�o��7�r�����;<{����D�rJ�;YsS��`+uvD$�
i�b�����B4Z���G���2s�#�H����;��7TL�$��(��8��NZv�/�
`�7oS
"#�����/[&�SJEߦ��mVQ�����raU�����c!�\��G�.�ÊF�$g�����y�J���ዿ��1��#�z��W���OP��n�9�x#�ͮ�G�v��5��.h�iˆJ戨,l
�i�֧�����:wA�Z��l%��z&����Z�
(�
yS�—�iſ:�����@�x?Э�D�#��nVR�ÒUmS��H)u��:�aO��U��]�֮	Bs���c��־ʬ�
��
Vq�~L��#?��gH
+���t��(�/���O	�t���%u��DL�S9䷹
b�Z����2;�MĪ�)�����}	/;�y3�0����nn9��rjo��:��ux�4����$�p޵�������[w��m��/�[:�G+�FyW�Dl�o�^b�k
+Ț������a��C��f�D7�ӻ�ƻ��s�	f^�*���	���AwH��V�Q>�3D��Fa���!n�_�<�ύ��w��:&��MK�����"��1��8�P�Q�z����Sֵ'�
�;%;|��9�}��p�����c�5(J�$,��ӧ�[q�}M=��c��G�u���
+���m�)ڇe�.逥��o���o���z.��P:�)Rg&��D׺B���}�o$$�n�D!�'D�9
+�� ��Z����84(d7w�`���Tz�R0�=�
�
+O������'���{��
�;�9���
���O
�
b�I�,���Y
+6JZ0���d���)iX���y�ڍxBɺ'�;�G2<�J���'���!.��ǀH��+��]�Z��e:�z
>zӯ}�!�
�_�I����T�����	UGՐ�	��כ�i�H �g�gaͷ�P�[��m?�s
�;�� s�\s
`;�p�8�� 8��T_���S@�u��қx�W�j���-����%��������Oq�1�sJ����;\�Sxr�o�)M?�w�sp�,�!,F𯐤�k�_&:�z���Ż\��~��/A�|��oSi�0y��eQ%�.��5M��%���Z}��m��#1%k
��%�4�
+�V�K�l�
Y~=&��'ﯔk�E;|�:8��;<|
w������������75���6��U�Y�4�N�Y
��%,|�)��� ʵ����j~�
+$���1��gҵ0�w�!\�g�`�Ƶ����I����{�
+�� ����m��f�F��Գ��5mf��qL�;D��A:���g�Ÿ��]{�tx�rx�tpb��
Q�r�OIp�
gҭ�a:��݈�

VLJ��T�IȌ��W����M$rW�q��ϩ�eׁ��!0���?���'���G�u4���7ތ
9���E�!"M�k��"
)|�V#J[�V�
�c�J^�A��鏫oU4�eQ�c
h��[(i�yn�����?|�;��1~�ľv�Q�������'V�
A�	J��1�;iK�Z�����7�o�"U���rj�b�I�<��IDJ�o�����Q�=pN����/o�@����]�;����y�@?��ZV��$܄11'Q/)M
���4uO`��hZ��
E�,7��?�
+ࢂ�ܒ
�3�N����x�=��Kp��

!|ˢw����}'��c��u
j
�"�*+�ʾ�������>Mai�d&�?�I��q,݇���g�7_���?E$���Yv7��<� zVHU��s
_[*t��6n][˳����%E!zY���
�Ҧ,h�ңJj��(��eXj�-��ҟ]�i�\��@=��=���L��Y������(����\���*'N�6E)
�[Ѵ�O��
B���,G,VPj:͐Ҟy�s'�_t�è�ъ��Y
�<|����m����X�����^$;x��%�����x��-��u7�,)�U
�h��

��}�Å%�>%M���f[:�l1BR|ʄ�=�az�Pd�c �O���~��_�J��
��� 6��	Öz
+jF�{z�����-E�LV���z,�f�D��i�敶��xer�υ[����:�z�!�o�K
�rJ��j��M�dد�V
,����:qfYaY�T>/�-)�iӃ�x�T�)j���jf��
��J�%��x��3��20�ᾓ?��g�׾�Ү�g5�
u�ˢ�_��c2ȒE%���X�qD̝����%�
5-o�R]9�j��dC
�b����Ԏ��K��ᴱ7��伾_޹��ݸ���	
+`3��X�Bj�wc]W�Q� �Ӳ�֑:�^>�:,jKd��.E~S�6��Q� �R�Xҏx��
'|
�Y�{P�aBz�kXa�k�`0^�6ʝT
+W�]=����uc�4
 ��o��2O1(����$�%o���e���E\�7��*.}���Jf�őD������
+I��UW�v��j
���B
Y萝QJʊ�
��`$�h~��,�\"��I�]¬�����Uvy�̏�����4:��
h�.�ꚶ�����掞��6)L/������]C-�xB@�БҖ�Ÿ)uw�A9�3�
���z	--�!��n��A�|��jyS�SLF�o>���~����W��U�s��v2Zt��i��蘠�#�c��]#�>J�k�н�2���]���[/����ZA�R���w+`i?�'��y�&����^��k_��7��U/�>�J�,`��<+�$Ί���*v�U.�_��R���y�m|��^��S
mi�l�U���u�ˆ�Vi
�٘T���E�
)�.��65��_�90�
�(:���f��T)�r���������I/M#��)��:�r�/������	ۛb�;;�z�.����W
+mkSdu��Y�C*΀�:�L��Sg-k�I+���5M�Ђ�Z�"��U�ͱ��y]C�A^�
��DtV ^��P�7�H�����"��	]�J�%4Eb��!�:u8�NZڢ�l
i�F����
;.fs�m��g�D���������E"�%��aM
����	lY�)�]k�������,"��9V�ϫ
+l�tQ�#��q1=n�)�[���vm��5��ʚ
��M*��i
\/j�3HZ�ZQK���6@� L�mTdw6( �vy�p� ���	��o-ܐ6������=Cqᢘ��"a���v�%Ĺ��
��2{���hb����Q�@aw[G���&R�_��l��m�yuw՚�����em�هU�ӕr�lW��t+���3y^Š]��æ��)���9u-cf��g�U�1���+i#��Ho]ڨ�3&�OH����]]�ȡ����DN�E�-����Ī�[�b��(k�ii�^,HS���ۻ3���ckK%>
�ș[��f��?2�
o��ڂ*�ʼn�-�ѽ]m�3*Q��I8���)_bCN-u�SMW� �����.�'m+䝦���RD]R3P�
�L}��)��F!(�`�m�����ʳ���I�S�n�ʠ k_���ױ�g��R쫮"깱1��Is
W��7�`�9���C%���掙��� /~���he���	"���u���6��
,T6�Y��.�J�T��4
u:�,�7�!�rF꼩�ɢ״��'kv���[�޶���e�VGٹ+N΢������Z4��m�eL�Q�^
�dn기�QJ��`A�����!}[jT�]}�n������i	1�:�
+^Ӳ�g4
4��
����z��]3X��1��ʬ1ms^W�]Ҕ�w�kjϖj��L��-
5�x�Dp��2v��j:��j�jKpZay�VX�>	���p�`TތU�[��
+YE�TU�/b�$"�ZV2��m�U��S�UV	��6��xkN��E%�|1^O�\��P��<�R?��XS��TK��5Y)�:T������
+��Tm���M�ֶ�*���J��6%>|g���$�$I9i�;P�����z|�}���?JM;��
+��lز��il��}
<�.a����*
+�%�
���C#;���EY��6MI�Ť��m�G���vGi�
��
����n�$,�X��rZʲ���e�]͐�
��V�—��_y-��%���~rܡ��y|�
~ba���ԫ\��#s1�6*@���9=aVH�^ �Ov�='���"FČ��8.iŒ	+R�ܤ��ξ
Mc�U�*���қ�hWҎ͕��3u���
��9SFl�� <��-�
Y*ˏ��*�F��
#w^�ȞV����Pu�gYQ��
)+�R1�k��T��
+>4�@G�b,p����
+��y�AR�Xs��M92�b��h��wG���=Hϩ�|��Y~������f��,,9�S�W�
Gf&ls�1�;��Q�-�{:l��)����
�A��-)��>W̚Qr2�$������-%.r�#��l���"��b��PC�8�V�L��*�Ų
����"��H���
���7�]����f�g��꯹҆�1z�鬀�ܬ?��lZ��kJy=Ք��ڟ�q:��^�T��O�g�\�mU����vTE9+�l�Ea����b��>���� (�/-�srmz
�h�a�h�y�h��go�L��e��d��3ss��w��ܼ�+ǯ�����G
�|�C;��':
+��B�\�7���@��d�x ���Q�����v;}[J��WҒW���+bB��G�O}v�,��KH�2Z�B+��>DI9�S�O
�����&�i-��O���/O��|����YV{����!n�jB́��:2�3l�lغ
��sB:��@J��!^+�\�M`�V���U%�l�Sxbd����
6fE���@���q_�����
��X����=�W�� EmI
+��S-�d>[l�8/�Y�Rc5�q�����|�R5n[F�]�E{m��1�#�hk�}�"徐usO���6YQzb�ᶇq��Fخ�&�+IQ�:d��0V^��t5Gd��#E�h
"5�T��I2��H�>6r�'�
+�]WY��-�[�Q6y�Ͼs0YL�+�Y���
)6�PG�ߐ��N7�8N6�9ڇ�A#_Ot�
�1�MN���&���U1���D]L��{jjƎq�)��{�^��Rq)�ƙ���̣��Z��w���m�m>�6\eב�v����"A~��⒏�T��z0��?�ʂVE�5���3՗�e5�A����{�/� }�ߓ��rl�]��^��ץ��
=ۮe���Ą��X�,���QB�R[�����/�
�W�2����/�6��؆�����#=}d�g\Le�Ob��jLʾ��v5s��\�`OEJ�������
9�S��$�pw
�3��cC����\U�_�Z��|y��T)o��'���ܳ	&��Ȅ�

�MÂ��*k竛��W���_V�P�M����

MQ����}�oG^2Չt�-�9���|<,�ۇX��#̌�n��r�ê�!�����'���m�/G�2�wC���{#� su�}KYĭ��g;�D��_���n�]6D���F
+BN�W����Ş|��N�N(�S#qj�l
½�=	Oքiow0_���p��e
hp1[�_��p|�M��������\��f�9��|W��T'�c;6���'ŇNU%=���
 ݐSBnMT�<3U&�]
D��Z�A=ب�'j
ܮddlK1!��,��8GcY�ñ��;3��o����5IQ�*𚷇
+C�#����_�!)
�'<���ݴ�"��
��:�3�����Ÿ̵?9�B��MĤS=%�PMɺ�ᰧ+%�K���ߧ٘C

�����
endstream
endobj
45 0 obj
<</Length 65536>>stream
+S9kYs[�}�I80���w������7E�
�Mi�����@�d
��
��ҟ.
+Q�g6��x)�p��hW�ه��6I�϶
�;zu汔4/Ƈ��
}6��"Mlā�YC��s
�:r^�v��^β�
+D��
�5��j�d�������Y�0NMD�bo���06�r��ʮf���pa�~�׶걫(
>7s
N�
�JO��Y�zAء
+�ܙ�5���
�����	�u1�o�3���,�
���
!�����RB��B�羆l�f�h�U1���
�
��\	���Ƭ
�g�2������⒳���osl��v1_�p4ۢ��Ш�VA�1\Ɔ
�ҟ�y[�
x�u<ɣ�) �P⢏t��

|��e_e [��]%�k�%��Xc����B�];�6@�\�D��圬M)%bK
+���9���iG|4T�
/w��ϴ܆x�&%
�ȩ;2|�w=.��
tn�D����
��s=~2J��}�q6UD�
 }�I��yzu>���{��BV�3

��8�}��yl(۔�\���զ>X�����#gZPv$��5!&p]R�)�m�
��[�og��<�%���6�O��u!*ꦎ��|�>��F���.vK����t��E޽��y���'�SO�E�6G�
+Kz���r6���t��
�6��b����}S"o(��
+�~������
q��H�[ �n�nH)�r:fOIL���~W�>�5���YlMzvh &쩙9�]�ĵ������.�9�}}aĦ�[Q��rw櫙f��-YI���؞�j�/��V?䣹<��03�.��?Y{s��j�~G�lȪ�	�k��f����-���}�
+x"Fޜ�3�M�cSR�NǸ�d!<��c_nI�n{y�Gt��
ahH~?ў���pf"$��ul(�[�9Y;_lK��.�p��f�oY���c=��Bq�?s
�(rk ���DG1����� ��{?���/��t���siL�a[����PI�e�G�Z��d"'����=`��L�����jrꙞ��p�dS����w�T��
�6H���
+��ʆ�����s��ы�%����麘��Y��>��l�Ѱ
+O����I��D�
ߧ)�
31}�7�m�5�ͩ�K���~j��,���QR�bGګC=)y_KI�S�vo�@���6��0-�
!%q�
�9Y���\
zn� =�n�;[{	~�BR�Z1�T��`��b��weE�־
�Ɇ�{���V���*\��N�9P�2Wz
>�)hq{J|؎
�+��t�����n���w5ř���,�b7��J�cC���Sl�C]W:`�}�`3�a'&��R�o_���UP�B���4���
tc��8ׅ���_�#?\S1s��F8�}��!᡾,��'충2���t9V��
�&�))	C<�� =�B������BoIi��-UI�}�ݐ����
b�Nؒ付�c
/���nJ ދ����-�
cc󶬱l���k�*�oC\��I'��ЍA����
�N\؝�{N�	ίr�F�_G*|
�����>9���*)����/Me�����,
�Gܢ�8�J�r�Y�	�e�
+p
+%}��x��l4�@�����7%�#k���=~1W�<�)�I
+~�Sc-���X�?�1��
+���#�� ��W5?���{M�
�������ޝ�i�gc��@����%��+!���Od���Gr��u�%��M���n�
�죘��!lT>�NY����^N�We-�d�_��_�yO�
+�) ���=�2��?�iK���
+��m�� ���՜©��7����3l��g�6��0/������Bq��
+�)Nym���
����c
*�?�
��
�{�>ك��c��p6]Q��&���2^�C~o��xS_��l����nN��ό
��w4
�rl�d��~8��Z�Ke�	��Q���^���yQQh#%�
z�&�F.��~�]]E�kmi�c� ��Lm��u)%\_
yo�H}��"%l�Ha6���&�M�m)�
�ݏ�u�w���%n
�Ͷ���
�a�F�6Y�t����>�o!���j�7P� k�u�1�� =�V5��F
��''��l�$�����jYX�7٘�-�{0ݘ��T��b�
u�
t�\���
2��C�[��<wd���AB��#}K���UB�W�9� -�$$�
�R^[;��'����湯t�|���J`�u�Q��~7��m��ؒ�J�
{ԇ�=Y
��@���n���y�]د�r�K�����J�ړ����R_O7�;��"�
�'�*/�
!��I������ma��}0�y�/�i�3�q�䲭`����F��b��Τ��6�<�ܴ;S5������-����T���ar�R'�i�=�e�
�ؚ�q�%�Mt5?-�k�6��b��D_L�Ud����
 8��q�
1&pMX�
x��N�K+&�ކ���$�i�������_WR#n� |�����i�Յ�O8�?^X�
5s�
�9x��������q��u�
.��N9���gb��*h��g�n��������-�
�g�E�V���,�bG��bk��rk��FO^���S����ۓ��w��<2A�
������چ���%�c�d��m(�>˃��1.��|]����R`��U��CMaܾ�0�4�s�c:�>7ƚA^'�<�02����Hϵ����u(DŽ-v渘�S�_�᪂���}��Dz�
��%���-O��!�
+�A?��R,���X��(�������OM%�}��W{�|��_k˾ޛ�K�?ݐ�h�	�"���r?,�X{�s
��k�^lv#�w帰����rZ��P��!N��*��Dc�'�Y
,���(��l
�kYJ��R��
c�
�d�O�(����?�)�?���
Owp��P����w��t�)�1veX�{�}��^͵�<���W���!?�f��d��
 �s�)�y��?��̥�ڠ_�kܝ�j��$E>��%�/6��m�e9�e`OkG��tC�;cy�#�U�U1��������DK�hH�Å�C�
i�W`�-�i�u��1	����ׇ�� ��W���.tԬ�aj�b"@Ɍ��3DJܔ3��
0��W��`gcyꋹ���g�
:PR'j2_k��X� ����ن�WS�	��kc�JnL��=X�ͺ
Y����:�������S5��ȉ��������m�O�D��ռ�M95i��p��
��R�[�(�]�=gڡ��*�{:�V+.���������
+N�}	>��bC�m�k��e����A���s�w�|Š�f,�z�/Kso�	\�y��|�� ����¯�C�GYP vA=�+q�?�T&=�Hz;U��fO����V:fY�
�
���+
+��夫L��	Zޡ	���y��A'd��eu�&zstd���{���6M�����Q��VD���3
��4��x1ٮ�$
�v|�Ţ"�^�GsjN��\@[Ǯ��<�;��
+�lbĞF�\��c�dE�s�p������z�.x�5��F��r����[��b}
��
�������
+J⅞_��$%��R�,�E��I���C���C��;�$���ߟt���]����3�O~x5�hW�-�� ��N�������7bR�
 ��.b���6Z���j��.w!ݷ�KBv��	�:�Q���P)�ƇoI�A�r.to��\�)�\�9.tf��m|C�ώ������U�҅��u�
�8ג��\
��ԃ	Z D�2� ��yhWǪb�L�E�^lM~:]�`�7��
sn�L]>uȰ�A��_SU-����������;�o;�?Mv�>�j!o�]~BE����Lͽ0��F�+�)��~�;�N�G��7l� ��'��7?�Vd�~7ӡ
+���2��p(��XrO����du�
6߅v_�D|�
�'�9}_IH�k�@��LuB>uE�h)�|<ބt��_��@}6$�U,�TG��v���l��`KC�C���o��҅8�>\��XƎ�;۞��~���0)��
};َ��=LH���8�5$>��M�ؚ��6��:6z��BN��9�kH��W9�b��0.|[��i�1��\S�Ӯ����g��俔Ro�vac��,.97s������H'K}��tg��v<�c[e%��mpW�
���"��o+���e6�yJ��>ݕ�b�9���
��J�35����d���|6�+�k�A��&C7e �f�>2���
�6Ą�]%5���A�
Q����
9�q�lj�s��g��3W%԰� �1@��i�{�О�,;�k#
X���'��¹f�'k;��\�C
���;���m>d�>��� �c��l�E�jyPcM�CYƳ����^ė-!>�`���/#�L7g�j�z}����i���kRL�x+��X��2߆�ra��䬌 [...]
+�������Z�l�I_��T����F�9Ֆwu�Y!5Z]��`o�w
+��-{g� �P��|��BW��|c���!Do
�n��~��,�4�0ӭ�Ͻ��;C�؇��P7�(�m�����LO��&�g��K4�ȅ����YU
wn'&���B-LmHs?����[E9>��
�	a��
��{!�
+^�C!П����H�+]Io&��.4ƾ��@|Vz���aL����>z�
Ui�����<7��Ըȱ��b���C��g�����Z�guU�H����H�
6a�%��L��j��xeʓ�����Zr��8�1���;��Ʈ��81�
m������f�s_/���,J��6��
�#<o�*��G*f��>jG^���ٖ��
�
+B�M�$K"�§�
+R��{�+L�6AF|�aa6d�c5�YFO���d�6�ɱ�򢠅�|w)#쥈
�nG�I����/�Xe
�1'������⊿�
�M	�UF>�hJpޒC��Z���}p?D��x`��ߗ*� OS��xa��2ח�8ٝ�qq БÌ4�.?o�hq�lо���p������A����@Ͷ'�^�Ns\�8
�2slCԤ�N�����+P�%�
k�q{ �L�d;�X�7�ڠ��,��=5!j{��뮌9U��#'%�Gi��jf��
��FЋu11ڮ��.����rތW�=���*��EW���>L�Z�P�:
+��'��#3r�#��
+#���8�[FlB��T'%p��ya梏u���t腙�ؒa��D�[0�=!zSFO�$�ݽ��=DK�
x���.gz.z��c-�襤��Nt�ܝJ�p[*|�b/*h��y��y�����
Y�ݾ�=�hWy�㭨0	'�g�
��<���.�r�Vt0�K]!<6���y	�h��i���1S
_�
M�B]u|����R�癅�?�,�_e-t�?���w��_��3\��&d��Ħ�� ��~��"����͔��Р�zt�Z��ծ\�s��7�,T�^oˉ�{�t����}d` {Ye�Ot�V�9M�ƾ<Ã���̅�L��^x̩��;�qPz.�>���`�۰!�T��W[JN�J?�w�.��hi‹�6�+�'3N
L��0)AU��J[��y���VE��՞<����
+F��$�ocD��
�<ًQ�3^�
S2��E�bh�jo����?j+�M���
�Ɉ�_��yE��
J��jf�r7�[A�|:H
~x��'
���)V�����k&�]�2�GZ��
pi�U�
+Y�M�E��*2��<��&��_�H|z<FE
Nϗ��s��*v���w)
;����K��(p[��|fZR��Hឫ��/���S
�ׄ0�Ss`�alôx����",����� �}�.���4�w� 
�W��ˉr��Uޘ��z�b�m
��ԴS��$�δA?L�g�ؒQ��E�hSUƣ��|���,4��'�a�׺�އ*z��ڃp=��`vF0��CH/��eК�zbҹ�	>Ps��j��x
�ˉ��}0��8� ��sm1���(%mOI�\�\�K�s�g¯�ݵ�&3��d�kR��l'��Xm�ә���.#E�H	aW��GFZ�M
+ܯ�u0LJ:�p �r>h[���a�qvmM遮���R��{����LH�I�_�]�6%)}^�E�r]$��j
r{���+�E

�m���
Y���0.��RB��'�>s
���fx��;/��X���"1�|� ��d��o���x;j
v�@;�����Q ϣt���w �H�
��;{jZޟ˕ͧ
ܱ���"A��>Q�|��2���U.�in_�
���N����	
~_�����Y������W��V�����kR.hk���p�;�6�h��
�'�v>���v
���w
o�yu4�O |��
��
yh�e�T��
��*ok�-]Y�ScI�#m�Hi�Q|��w0�%t0߈�9^�RdI�H�j/�0��ީX)O
i�O3��Y��1�&npq�Z|�l��?ٌ�!l�<��F@�|�{8�F}<ɡ��9��`���i�꺘�h��لeY���Al��$�u�%��F_������6)#qWUR�:���T0��G�ږڇ��g����f|�UOm)q�vc)i��Й�b�/��BW��� 6�TC��f�C�ΐl�99vM1�.A���M��V��n6�w��x��5	=A_v4Tf<:P�@�*^ޡ�������k��G��6{�������.��Bs����3�!\��2�uE��"�k7��
+n�ۅN��?���wna#ό��3=5cw�0xM��2ݜ��T��]CH0)SW��0ۅ
�
�$
j��gFV���j��
�#��ar��ي�=
�
�0����M\�u�ed_�-
li�Yc��ǚEG�ց3K%��,�fbʩw�!g� ܰ1ʄ����qq���m��&�s��[��u>��m�G<
P4up's}A��H�!�o6�؀�]f:�K at .������\�%���X��r�ߋ��sf���*!��m	�L�qϦ�r���$��֒!ښ�w��Eg��̢��؃��h��}8\v�"�
X�y���
�C
}l�O�t��$���
���$F���=���O'k��>��k�I�*J�w��M4�?34Ա��3�w�醺
�YJN���|��3u��V����4ظ�I6�|��|
���^r�U��s�v
>v[� �2�eC�����P��
+Ɗ��=�=66���R�� #���{�����\7�0:t�HH>_(�?�-.���y�������N�X��@�U
ZYK�<��r`a �J�+��ЭR����w>�c�R"W�I��rJ,�� @e�(����1�*�ys��ws 	��ӑ�r�F�
i�1G:>z[AO���9'�
작���Ƅ�@V{��o�៏T�cm�`[Y���D�H��[jb��`�A�.��}0V�<6����tݹE@\�Q�f���cu��bJ̽^\��z�۞�e(�~�f&߱���a)��j��
����r��5	��FQ�UH���)�
-K�d���'�˽0υ��u�Ol�O��0�DOL<�3�l*Fƚ����)���9��!��R_���$��hE�k�|����ϔpw�ب=��v�H�Ɗ�'Ʋ���"���A��l'�㉉�u1�&
�Y�#}q���,��Z*�[�S��b�/4ǿ:�b�ό%��.���*�>��>�v�H߽!t�� �˦�7B�����
-��zT�o{*R�_@�\�9���,J^��r��%�ؒ�|��p}���ya����UI�瞪 ��_����y[�O35�^��ɇ�35wc�?BL����}�K��p(�W�rp豎�_�ϴd<_��T@=�?�4��:.g+j׆�q�
U�6%
4��d(�P��꺜
t{��{>Wٲ�+�hk�^�u�����G�PN,
ʱ�C:6q
+� 
��QA�e��C�
��~����Ȧ��T�x9�c��yjV�����$��-�YkRF��$�X{��tiٟ��_k���y
o�@�\���V���Z ��f腗�
"|M��<
ǃ�[���]���C���M�֊��ł-��
��s�W��[J���@��]��?7�s��X��a\��N���#E��C(����3͉��=h/@���TV}2Ƅ
�h�Ws-� ϲ���ky��P1[r6xc��fu��fCU�]�R��;��&j�
��oh�Qϵ��ˉ
+���
+;#�'͊ر���ȍjĆ���ԍ����N~�ߏ	<�Q�V�A�ZҾ�
pi��6�q���m��6U|��r�C�5�	
"�����Ϯ&�
濣D��G�Zb�/��>
�
2U0����������1H�?6�2�^��/�YE�RT�Xm���
�+�m��f��y�cB�4ى���&�
�i�}�ؑ�n��y3QB��}���p��z +
+��{��÷��PMI꣱F��m�sM���*2^o
��7s]v��ϻ
+LԪjn��)O�x_�05e�+�i�5�i�-�cE��8�M�>���v��*q�vcuɁ��:5�O
�T�쾧CEl
!���
B�M1�
}�OkrL��,�vl��
h0�� ����Sͩ/w��Գ�r��=WW���6�
;�Q��t���(�u���L��0=�t��eYFM��,�[#f;����ԋ1�x��r^FKY��C����q�*��ؔ�
uQ���������((��-���dG���k��/ș':R��(&ܮ��^�f
X*�w
�]ӽ���n�+�7p��U;��Rq��S��ܓ)�t�I���/����O?�ž���_[I��ⲋys߈M�3����������?�D��\��,e���lm��μJ�:R±v�.
ޕ�z6t[��aW�/-��
%>t��b����	��
���f��#@�X�8����5��57f�|��ʃ�n
�B�Ɔ���Zʪ��9��ٔ��VEE�+ o���w0��(aMV
+���V�j	�
+^�� )d]B�n]��r�脻��"=�Ĩ/+"���/_W\���GL7�>�Qž�����|����oz�6LO:���v-3�?���,��&��/v�8o+ >����K2J��CCc�][��O��4b�W��n���]9k]�J5ס�v�����†o+�~�u�Of��^lI�|
\䒄�h��u]�BǞ���$HO� r�\
{�T��&�E��8��&����y9�D�����㟈��w�
+�����ϷA>�M|�D/.���p�ܘ�z�������)
�HOʲJ!�����}s]�t/&l�2�
�b�՘��)&�C��<�P_��1����
GcL��9탩6�m �5=���.'����
��zЛ}5�%�%N6&�ٖ�y�y�c坚9�˙�곹��U���W����6�˪�u_M
^zg}6����T^w5K��LG ���7��ׇ1v
6ʮ'g�9�e)6��L��>ϥ����f��
���ӭ!
x]F�� <�DЏ�Լ��Q3���p>E������5O'�����&#��q�c-�
����,��
���B�:�� ���<��ے��|�E<2Q�����q:��q�?�՝�SUUvc%s[E��V =�2_���~�#��u���۪�v1^L�Uѓ�Ia�
+b��s �}ޑ���#��k����w�rv���e!9l�3��d�������.1	KJ���9��tG�Ǿ��Ȧ(��k�m���7Ӛ�r���
�[�w�Ć��뺸�oW��
%�5=�Tr4	�
���G�	g櫹ȄĽalȞZ��RB�z���=`�-������x:V��VSS6e0�mQ책W��&'Z�Ҝ��q��G���Zڑ���|�Uj�cwT�,2q�,��()~UZ�9D�Y��,��A{f�����V�N�
쾊��@���a�>�yw�~�'%���ƚr1;궱&��z?1�PE��n!�^�IY�o�����!���G��S��=V�?Ԕ��tUYn _��
�4��C]�q@�UV���p�3
©��7\�}���g�����ҊyqQ���b�q)�V<
�`��0�#%Q�4e�����,�u�d�Q��*���vx]��0���l��w|�����1SZ�,�̴��G��ϕU~z�D�I�I�A�jD薁]
�C���!~�U�\��1���<މ
9F̹0�ҭ��.�3\��|e��@Q�xg���8

x8�߫
.�5��Q �ON913��\,-��Y�^��lk֫����*\́�������9�.�@��c�^��-J��}\l�z�я�Ȑ�1
���eA��X;у�<��i�c�A�����`�j 9������x�j��_�s�G.|[�J�
1���aN��3C襮4��B����<��*'
l�'nѓ&[2^hA�+"�L��&�q<Y�ΰ �%����r���$���HP/I/�:���b�/���i+������AJĞ���?��դ����b��ܠ[}�O7vd���s}]�N���������]O5���ָWc5���#���zB]
�4�Vxn��LF~��!�ƈ�v6b�=��ts����{?�uei�?�t�v�ݨ�TF%J%J�Dz���M����D�ы�(z����g���� ��w����X;�3���F,�G����|��{�w��e�w~��;e�K�je{�psg��\J��͚�ظ�
�i�]����_�4a$w�
̎�yrYh�\^�T%t�ޔ�O
+(ɕ�s���Yv[L?:��{n�U��
+y��/~��W��´Y* s��~��T
�!��=������������y�7�I,�x���/�7���_�(�h�˾���~�Y����|^�U��|j�>|wk�R�2���vJr
�p���N舵[�
'��W}P�+���q��_+c,�s��a�O1@�y}	#�����)�W}
+juH�퇮�ٞ%ވ�ٰ��
�()�#�=g�6f�ݎ�$�Ǚu����9r��E�q�ϭG�O�O�
�n�
�Z�������볃�qZ��A��#X����o�'W�j|݇�P��R��T
+z���ሞ

iiM�S�
k�3�3�K�ׇ���0�u��֧��y�|����{�*2�s~�q鯍��/�/P7w�������?<��m>��
+�{v)��	L4�Z}��M���@��=�
S�տ)����+xy�r�%������h������7�nYyK��}Ÿ������e{V�
+ke䀖��}�>��vt�
���
�m�
��g¹-0�1-��	H�F����zG���lMK��� 
u�?��}H�.��u��G�}�o�%�/��McK#~��sԉ�)��m���G�3�o1�wM|b�&�ԌV�
l����Uﷶ{����p%�BYREo�ŤX��
�:2Go��EL�<�o�	�ZTO�
i(-i
�4FDDž�x=1��`�<8Ոq	�9;�G\ؚB� m\�u�~%�!�gv�:x`�	7#󘒭�SQ%	ho&,�����<��֧X�P-
�s�³�� ���w��K�t}�5HX��Y��/P�@.v�����)��
�
�X�z��;��
�m ޾��"���f�
Q5�
������
+vs{��LTOiɸ��,C�I���2C
y}k�����CJ�8İ����˓�֐atį�5"TX��؞Ɣ��07&v?�A옞��#�L����Q
�fs���a�{�E�r�3t?�&FZ��	�;���J�q#��ZrG+ at mk�h���C��m���D�񿳿����ǡgm
���r�@m
A��
�o�,�&]^���&�"N���d\BN��g�,,�OEos�0��LR~XK�
+�aJ�s��]��3f

��'ymS��k��sn
g�-���+�I��o���_d��mG�8�$�o*
�7����/���wc�m'�.����)+��6g����*=/0�7�m[
��
�1J�A���S
�kS�k+o1g< �W���O0*V^�k�srl�,c�:,�� ��nNPK�'��3�IV��$���8�L�Dm
+���;3��՗��*I�?*���v�Y�1���(��:~?�3i�3c 7��k+o'=O0��ޑ�N���!Ϧu<Dl�\��RC������~���ou!i� 
�
+�
�,�cw'ͬ^(�
n>3e%wmN���U�t�z
��[�b֥�JH�������l쮋��j);Ytq�DiI���"�FP��Y�������k���m�~�(�.W��
+q*1n�
���8����S O.&Ԗ�a��Љ�Vvn��*36)/}�vj�Y�����OK��g��O�T��
����v3n
L[RFzgD�+[|���r��׾���i�?�J�f9n2r���v0W�Jl�ƻ�Sko��ČBJ�=x7n�p
+^7�}p�*f$4잘�RV*6�z.,��8}ϱ�e
R1��-�yj���������u�Y�j��9�hy��
+�#6�0
+r$f�򓮁�̢H�7K��qN��)���(�B�8|;�

�C��Ԍ���ޫY;�T�e���FL_|�������Wvׯ��G��ֈ��PӚ� O��w�w'��H��4me�rn>5����o�
"V���M�LZx������h���EP�����]�����M���e�}E(��+�4
�;�����?�o~?��5<��u���F���C=
��I�����~� �����-z6&��Koh��Ԫ
�u�5���˾���
�^B
+k��R�RP�Z9x��*�
��5a�|
���q�%��/��{�t�?�9F��V'�Qm	��S6	'n��
�1=�2����� 1\അԜ�$X����G5�YU��ͷ��z��mh
_T�Z�~_@�n�腸 �å7MG7'Z���������s�I����
?��5�2M�HZ���Y؅͙�c
����������ff��
�uq
{	�xw�@m�*�W�Vl}\�-_
�=��1
+�3tO�	Y����uq躾����*ЙW�_/nN�+�*	1m
ޘ"�Z�xD͂�T�n�&-@��S���~� cgN���o�	�FW����hI�	
�a���]�P"z|��x���i\i�%L9����ײz�jR]TC�He�]��r���K��g}Ƿf��;�K���q�wQ�*�#�D�	5Y#�w�.b�L|BHCkI@�oi�c�3��\
�q�A
�vI�{+�O��$�6�u!#�R��XȐ_�<�8�<���<=m��7�6�+~�
+]�t�E�=�(�'t����p�Ư �el,|ae��^�W
����h��
�ֲPw��n�g�^�WQ���1�����/q
7
�e�`oC2�_	3N&bG�+]��_�kX��s�Ǵ}p �
aHMnޙ'7F��������x�/�+3C�?�$��56#��Q�+�&v_��E�
̮
Ƚ�v����SV	��ŗ����Q
���9E���q���?��i�*�"TT����ј��{��G�
�p���D��v-� �7?H
+�$����R�+�Jz
��*�,�*�
�0�N���	h���fT�_�w��;�IJ�W�S���⠒��W��v|�-�lHI���ss�\��s�����<�6k�DLR��<�fs�|3���B�@��LҪ�/���op�NC ^/��ʯ�]��
�8�z�OI�����c��F}�*�f

��I���ڿ���ϭ�!NG4�?�S�s�f�3bQ
7�b�����n�M���㵕�)�3��MyX�ՠ���-RvD'@�z�]7�'i���zyԂg`(f
�8~!^�ϲZw=C�r.
=0�nk�����o:O��
�51��30i���\)��\�ϣ�W��NX�����i�	�,�!�-/ȵ�s�<�W�+Y�	5�>:��
:/������k�Ÿ�K؜����`���b^�%�$�j�IG��J�t���o���<�Vմ��{�G|�'o��]@S����g�_�����W��}�
�-h� &r�v1/��@M�e]8��Z�&����UX�
&
̾�����O���R
+����	
��y�Z�|��G�K{�h�۩�[�K[@���l
�$ϲ6o}�\�rq�����^>?nb�n�K�&��wh�	
�a[0���f���Ih2tqB�+���8ϛ�جUD�C��$�lMJ����زͩ�Sq
�>a�"�*A��հ9�.v>i�|�Mױ��ܔwR:v�䞴�о�ȣ�<Иب��Rқ�g�%�+��i��˚؏�D��X|�u�7�.M�X=q+
3
�������&�O)Bl����^�/��7}�}��ux��
x	�u�֍y^��g�Iý�/�g}�P�B
���Ib�6�7>� hþ�9N����
�`�߉P A�2z�DZ�~%�;������Ӿ8N��>G��}���2��֧
�V�{z#Jf3�Z|L/�n�=�d4���������q=�3C�_G�
��a)=���ŧ�_�>�9����i1Wn"Sv.ԑ��MHJ۹������FFwD���
#��M����و�G_y�8�3O�����mP�u�U�v�h��H� 7{#j�����$��#�cwd��,b���H=��i��O�����ڴ:���~kU��s������{^!ooI$�Q2ۖ^QJ�Ϗ	p����0t�_��jٸ�C(5�V��C�����c�Q�9t'k� RzRm\�������?��H��Ҍk���D�q��_��a�q3�2i!���+���s�'��F�...�
y�2
+�Y|�����KO�������;=����q��[�{q��6j~Y2�u
X�E�@������V�ϭ��
��3K��{E<�h�W��7�v&b�ͣ~p2�	%���Kw�K�գ������A�K��+�3�Ǘ��w

,��ƍ�KXy؄��w$����}�7�wi����ڠ
��J���@�6nϐj����=�0`ʂʮ~Eϩ]P���
���V�
,�*�gї�N�O��,�:	t6�Udh��������$�F�LkϹ�𘉃<��ƒz)٧��'8�k/������6�ڏGU�ir�_��]S������I~OĹ�f���Oz�-�����
Ŕ
�fC�i	�n�u:���e��iT�����sԆ�ILɺł-�?���4
����xk
+{e�E�Q�3�Gռ
s�(�۳�ƨFB�2FKx�P��Q��}v}
w1���$u��8���K����='c|E\�+�������[3IJ�n�5
ɶfq7���
͓�B��$��;���<�<l�7��5Q�\
��މ�F�E�2��<��������k	=��=#A�~ŸX�n($��_�4��
+l��瞯����V��Q���)Z��h㧀W��L���84���ꉍa�)�e4Gt2n�&�o��j7��7�
�,㒈#f���:rKTKoN�y،��D�=t�=0��	
N!+��c�F>�5���/��9�ӻ�.ss��|T���0��I	�T
�=�J�9��ܒs�G"JF��q۟�8�k
,��a�����M7
+^:��[�_� �B.��2�S��'m�Q�V��/�
7����4�&6
ڞ�r�3����(9
�;<�vB'-��~�ٿ�����������3Pw!�&
l��9��)ܕ�Y�U�
�FX�l�9��^
m��Ʀ�􎰊Z^`7��<d�$"�T쎴��k�]I#
��pqQ
�#nd��t�F�ք^����z'p��;�
+)�u9+��6�Xi�hOrC܄��c�C� �����

h�@�0kc2�buǵ�*�æ#�{m_��
1�ºfL'%��BZTx���H��u~��hٔ��)8F�ͷ�Q���P�0��ׇ0�W^���<)?�
��`�;��O�GC�
h-Bp����Յf����H���	��ӏ�lO�*�ư�-w�>w�o�
���ޚ X��A9$��	�RF1-����L!.9U����w1

�q�>J;d҈��
R�qqӀ �^f�Dk���_��-A��1���[��
+����y@�G
\xXI�
/���1{��ukoea��9�nXz����x�7�oQ�7��[㼎�<�/��!�'i宧袘N�1��x+�'\
i�-I;
�[
+���1�p�I��X���@��f�7�*|E�F��{�]�7Y�|(e�2w������
<
��
a���^JB`���ޓu�sށ�����y�
�
A��#d�\Z��%%A���	5;
�g� N|S��[��jgBϣ��Ho�������f(��W����kQӭ�F.p�ڰ�ٟw�������7��
�d}Q30z!��A��O,��_��[Vؘ�U:��
7��zRe���C��sJ�Y���9K(]~���ꋎ��o�Ϧ4غ]���%����� ���E�ї�*�դ�ђ1q�)�I#�7tN�!��
"Z���hq7�:vgH#�Ft����=��R&.
0;�f����Δ���XE�(�w��/f����:x�?'���,XL�Å4�>����t�LP��?��q�50�+�/0��@�f-<Z�)b%
<<��Ψ�і��C������c[��@
d�����c����|���ŗM��ga%Y+���vP[o�ǰg7fM@�
F4�~����z~n�*�'5�
TBG�ۜBUx_�9{G��W
P�jA���la��7�²��OR��@$U�nM �3����
+)VS���6}������,�L��A�m�'�C򈎏�,
)��A\�(����Ҹ
��ym�Q��
Ȃ �_���ί�?v�)�A^��ȭ��5��;����FJ
���!�gc
+��c���c����厜c`(ess
1?����naE��z�ȭI�ͰF�NZ�
�n�HXˆ��-���/J��y��9d����o�>�"��Ur;a�C�Z�$&�2i�#�~X��y�� ,��ؽ{Kbq���G��v�U�"jjs��F�y8���֟Г����}��^�_�ގhi틯;�.�h�f�
�*��,c�7
��@,E]"~a}�9�W2t��;F�o���'S W3&ZO��$'-t���|P�l��0�4��q�M�o|
+�i�X5)�<	�i��'�:d��C.
��]�=_�V��n���{��ݞ�G�_�H��$⌝���_NiX�)
�>��;������[ة��X70���B���X��
�	t}@�递R�<g�p�v	'g�	�-�UJ�wDI�Nh��1
�-�f��L`ox^�\�ǖem�����sޗm�lB����A� c{�մ�y%6C��ΐ*V�u�P	�}����h��'f\��}�v� �m)�e���gB
غ�,�80���G�ܘ���k$��^�I�d��[́~ø�hc
S��9�'�
%7m��JJFc�̆gʹ��s��S�g�Gu_��zZKX/&�x
��*�sr��G�Q�;|����ot�/̣U����Y������}�w��s�фQ��
�Z�<�)�bwG�RBTk$f�}��Ǐu�����Λ�s���f6"����X�=�i�
u-�B���?�� �'�ĺ�UHI�ɹd at 7
�mb�����R���7����A�*:BU~���{��Bf���O;���^��X��yJ�o_�b+2.��8�sv������Z�f6&mf#}��R���3����7�pua�푀j�o�+���6�<j��>�3�%fT�vmI���v���u�G#Zb�o
~q{���o
Y�!K�nr��2����/n���.�*,
?��1��@�w�Z"rC����.
E���GA+���u >ӑ�0�"3�Wl��>[�^�gc;J๜��qR��v��^����
�v1+g�uFT��LËRFN_�,a�lrI���q�œ�>A��?���gɇe6i����\B���+�Fne�RzJKo�Mv�������+�٨�T���o�̾��GH[x�M@� ���
��)�6k�u���d ׏��<з�'���
[�{
�e9�.�I3�0�����9�M��ׁVlۚ�x����v��t�7���Բ�������]ߥ}���
�h�<<�4�m�^�v�
bF��G��&�NmLv�ؚC\M�G�'��w�z.&aR|
+!rg�՘�	0q-�ug���
y>���L��K�
Q�FH�/�G^Mj�m�y��v�j�o�Ӳ=�oߘ�5��ĝq>��iVP����O���5��v<�!�l�ᯂ���p�A��ҫ��6�P�
��,�;)��PH'ĮN�-�D]\{�%�"V����0�-S�o}�W�l{��b���e`[
+t
>�a�
+N1�EW�T��	�Y����#�RJq=�]Zy�<�=�w.i&��\
L�� &,��
������)��Գ�6�P�|3��1%�>��>�������M��R��>�<
yۿ�v�����ҫ�	-�Mz�`�
�������$�zw��*f3��b��=��.8���L5i;���:�(�p�&�Oo�㫣F.-mgcJ���=�f[?��@]-x�R���13�?ia�
^�4��R�zBs�Hh�Z�耕�	��蠚���]^~�~�~��[��*��a
�
+��
_����e�$`�d�Y���12��
�򂅅�w	Yy
��r-�>������� ���iGI�Ml�u3y�\�
�U����Z�T���*!*6O�[y���A~��~�9Ӑj�>�����
��t�i׳�߄f;��
������������ y�(P�|� &g�7
+juX��H[�l���i3
Q��^��������XD��/L��V���3,�W�M����}��Jj{�ߕ4��I�d}�� 8 '�
+�
>;��Q/c�M,��
�(0%�[~��R��~��j�xjK���A�1kP�'I%!�f��ä�|4��S�K[�zO �R� ��"jP-�oL�j��
+ox�v_D�-5ܺ򛍷��v��EQ=�3f��w���9VwR+ $5|��S��I^��%�_.�&_Y>��<��,��A˗q5�:k�w�
�������oX�7}��
{1i��S.;�`��:B5�������d�68�[`w,�%]�Qao$����K��%�mN��k)��p/aPGk
+h7�fZ[�����;au�/�/�/��\����
P�eA���0��|VRGlv�o�n�q�'�
�0�Wd��W��:.l{�Rֱ%gf���̾�U�9�~q{S�R��.����� ���-�!6f
lLp��l�ٌ�ґ�s�q�r
+��1#�?�%5��|�%��4䮛�
PSkW��%A%�7a�S
+ޡ�Y����3O*
(i
��#R>��v6�au��y��x!cwڈ��4��o�����)�b���ڐ�V���������FGg
Ԯ�)���W��1�-� Bs��������
���ӵ'���ܻ��6���c�:"�cu欴ָ��tT��}X��
R2�:֧���hޘ��A;T�����GC3�uq<��A��@ �ږw��9��������}�yV������
U�
+�11��yZcJ��e��C at +�}S�s�9BiH���[
�ewQ~7
�(ne���,X�B at _��ldLI��~t�<��âX��0��n.���bfgT���Z������t|�����;e�A��x���5��
t
��;���qvuH%#�L��s�*�4�b��%�eI��s���'�z}\#�dM����ċjy���u�.y&k
��2i�&�l�J]����y��6��gW��~�6����$�8k�����TI��RQk!
�8�QE��ͷ5�>��)�C%@77%-B+ at W��̀�R�R�R!}wI6��$���敝9�ͤIDJZxX�
�	+���5��E6�Kz߿-�D{^ҝ�3�������Ժ����wPZ�}����U>mA�{�6���
U5������}vAV����?�i?�2�1�W���Bi�‚A��;��=���Y�
��c
��ۘs�Ê���&�T��뎯Sv>o������Щ��Z\��&��%
�1a� ��^��2��.!c��%�ې1w^[yq�'د�fk����
�z��CL
X���ϙ�]9
�:c��H�%i�sm�P�9�k�o��.1k�M�,����󶟚?
�#��2���ꌨ�i=TW��yN�
�}y�)c%T��!�	`�,	xuBK,_zu�_�On�t?Ƅ��
�:��9O�Z
'\����w�Q��
+��sZ�����S��8W��(�Bzh�P�����X�є�Ѽk���)/�g��,bj�1z?�
�3s�[S]��^�
	��g�R��W~'e�cSV>vY6�sp0Q��ʳ��j��Olw*�)8̞���3����ڴ�$`X�RAh�޵3�{r�]�7�{e���
dx�Qt̷�o���E]<�g�q�
bv at M�Y��^����UHN���1
�~u�����Σ�NbÞ�r���[�S�zS:~�
��Li�����v
��S"L���� WDt<D�" 캤�,x=b���jJ-���t>��?
;����W=��
���t0�(L;��$�}�a�6p2KC�K��q����b�<�R�(e��#��@;.��]NX��+�ᰦ��8x�����Gt�KQ#�
+���)Z��'ʹ�aQ�}�m�޸����x��O��h��9�D��<���-�����_v��
@���}u���^>;0�qs����4�l�r�V��w���
���]"��D�.�G��W�^3|�F
+rk�UnQȅ·D�H��;���%�q�ͥ�-�~0�ާ��A�� x��Ӷ?Mr����N���:N����1������
9hv��A�CG�
:r��Б�f��
4;t�١#�
9hv��A�CG�
:r��Б�f��
4;t�١#�
9hv��A�CG�
:r��Б�f��
4;t�١#�
9hv��A�CG�
:r��Б�f��
4;t�١#�
9hv��A�CG�
:r��Б�f��
4;t�١#�
9hv��A�CG�
:r��Б�f��
4;t�١#�
9hv��A�CG�!C�A�����ѣtl9���������5��y+��ű?i��(�T)�[N�pI
:�-:R
^:}�̹#�Zq(�c����H�D ���m�ݑ�`�+`���#�?��-��ĥ�ӗN��x�̅3EE��]:r���œ�Ξ?����g�_:B���l��3�/_�x���Kg/
���N_:
�v���K�/�>v:zW�ًE������8
�fL�O��t}B����G�}w�� [...]
迼�<^:r
�����;���'G�~
"��G.�?s��'�5�kL��K�$ԸVB
+����VG@�艛=9'�3e��DU��������Sv3�c�n�J�JJMh�ј������2J�q� �s��f`�Mw����iz��k|���<�@,�+�)
�&�F]I����������OaӠ8��f�5�lqxj����P��R*!"k����Pk7Ǚ�	#�?���ؙG^؜�=S��2vjG\�������V.6c3�FG\C��j��[㘋)5�{�90���p	
�?iѳN1'a�|
+r���(0���c4�
bZ\#@F$D߄�R	�s��1̙��o6^6}
��?�ְ:2:>k�7&�W�v
�|;��vv�M۷�9T1�%�S�jFsL��J��U�O��a� +���}
+>,0ǂe���`<褙ޝ��H`#f�<LB�h�i(�1-�3�f4������־:����t�����R�H{N1?o�pS`M�fe;��ڤI�MYe���RP+�`��N
5��VqGMi���=�2p1#�Q�s
���$��u�'��s	Y7�Zbe�D�K�M�np<����s1)�����!f��d�
l�B�����C&I[x`]8���OL[�Ԁ�T�S�+&6"�`��\B��E��}p܂G&ϸ�a��
�qQA�����M&
�XK9F
�\�_��������Iy75�N��i;�w�8𞘆њ2	Hi�ȃ�S��{��¢l(�dcbS�Fl��	u
�§ 6��\p>ƕGtò�j(���z�+	�R+�V0�n�4��`�6Z[BG�M�
P�#p<vX�hݜŗlΓ�c6>n}-��jI�A��������j5�<����'�
I��`�24҂�[@\�k�W2F\Eڀ-Oh�!-�5���V�(��|S������|��TqZM���踁�79p�W�G�@.b�&>:�Do����o�囔�X��p�������)���c�X$��EDJBM4��ڜ�����S��]���6)�3��􆕜����H��
�cK��Z�:~i�J5��Yp\BN���
���쇕'���z��}J�/KjH5
�a�V�?�Gk��RrQ9��
T //>������/�:|YZG(� ���$̔U at H@M/>6��y�sN-i�A,0򞡻y�|$m�l`v���֤�ٖ3�{sVFw����Y�m	5�;k���&JkRK���@,X���CH��D��]��:�F�	+� cz)9e�q3n�0�0�!-
�
ʅ��	�L��\����{�?f��z������d(��V6<k�6'M���_�wۢ���yjJ��	�I�9q#�=m���]�����7*}���	=W��}���&���r�_��
��J�&~oq�g�����G�� [...]
�
-g���
��Rz�ą��Զ�
�G+�
Zg�FlL���Y.�腘༰'���zN�o������ޭ���ίb�RBH��ݙ������C�k)��7�u������=?�}�y��1
+�q���Yl�ƛ�
�9TY�L�ϙ072RԈ!��%̮{``�%�yE���ޙy�qJx�P�xd	
�?m�"v�b������uy'�*4�u:�`����Ca-�.��,.8�}�D��U�h�%d&-||�"�$ _HX�ĤYBM�Ǵ
`��t(�4p;�80�s��i7���"V@]9r7�<pl�vW������ �
�=�E��Ȓ�u#��9�����
Q�i�����9�/c'���D�шK�S���Ԍނ���s�n���E�ޘ�ޕ��I��He7�����<�*��&�
�����Ԙs�[
+
&�f�6|�_G�
h9�[J����?/��YcS�VFW��=;�&
�3b`��r���)�T
j
"�'5&,�ބ��
1Q����Ǎ_o� T���if���|p�p#oe��-����	�XX�9�T����V'iS�:NOZLJg?���&Wk�~
�cw�M�g�9�#�)�Ɩg���]ԔO‹�ٰ
�c��I�� nB󬦄�ݞ���F�a2�9e�S)oe
_������1���W��;c�Ҙ��
�'�
LJBs��њ41��c��w���à���&,��^OY�-+��5,� �a�� .R&9o���"�0�*"ZTqLO(O)�i��1�+��v���

�%�&8����;
��\H�ٝ[Ȣ�w���Yz���fd�S����[ý��������Օ3I�9�����TG��s�^�G@���6���ͩ�o�JtIPM���FB<l�����Ĝ�C*�u

����8X����K�Y=
]�
+I0��6JS���N�%AE�W�v�f@�m��φ��%{�_�_�HރXI�X�ٰ�EDM�D���	3�-�N�-d�W�2�"^�#d<�!���.6n�����%�e�(�(�fA��-��Ȼer��_TK�ݵ�i{^>k��c�.��9
�Q�S�SŌ�V��f�"�lBZ���J��7s6fԛ����
���AY�!bBM�>�_���Oظ�U����H��hwu�i~�����`��S6J[��‡M���i�յjy�5���f��v�%� d��������L��Y����O�]
z�q�ʺ��]w��#�#`n]c�߇���9�u�)b���C��=��zZcTG,����93��򮔙�P�*v8]!�,l�P�:f{B�+
.��mN�
�֨Q��P+�O��u8m1i�f[Lj��X�S�fz�{m�5�(���
CCY�ɽ�\�+#zj��
�o�\�@��#���	z��sRlR-��h�Q%��6�����cK�z���&�k�$8np�,���q%��:��j��*�Մ��ְzwf���G�H�s�q`ݺC*lID��W㮭M���W���a�Y��
70�|���W�_��h�|�y��I|��4�x�T����{f�(
0#o#7M��*��͐�0�Oڅ��
Q
�–]7�
���r�Y'����
+�:k~�&ms��X9�����~Y��]da�
Z�O�+��2߻��_��/S{S��su_QX8�
3kcte�\l�%b�]2q�>|;����
�q�Q3�)b��$�lT�˧�<B�;R.�p�!b�\R�ޒT�~E:��$��.
�y/�Y'�E �s��[9ǭG9����w���X�_�33`NA��gllD�&���Ү}�~� �����p�
+�35I
�-�#U��R~��A�u���SH�{F~.,=����J�K
J�K�ɭ�%� � ��5�s�}���5�#��xQ�Ӂ�>����@
���zDB��:V��M̮�_�+�&rC�F�M,ȸn=�z��mR~���xh�K>�%�<j"��_6�4ݺ�դ	�G�A��ӟ�Qۢ��+���lL��ؽ����WW^�����&�ۓ:n_D����b�
��ʫ�?\|�әM~�Q2�	(��D�N��Q
���ۖ?��E��kxȔ]�؞"\�i
Q
�
0��9������G
_< ������Ă���E�p%�yLITI��(I�9�夎T��*�Js�!�D��Z�<�Jp�W�`���W���?���t����.f��B�L@
i�U%�fDE��(	��ӈ��]�oM*Ӏ�ŠF�:ZKDE(ߞ��a�U۟�3�k���I?q�+~�0�JR�@d� >�֚�pP ��!\�-
�<:�C�&$�5�ڨ�X�X
�38{�Jn�9ł�*����f
÷
+ >3N6:i!�E �Y����?G�/�巒.:�`�w�t���p3�.n"զ
������8�s�~����Oڀ&�IX1P�Zru�Hm
�\	�U`����<�ʃ�e���W��K����(
 �,m�f�/
n�w�yh��U������d(�b�c&|�)
ַ�
+SfW
+p�
�q��	0�)�)&z[�5rg�DM���[��y%��W*�/K�� @��A
���ܲ��l ��"�Ǔ�.,�*���[9���.��,�7n\�&��$e�c�v	�ʌΤ�b��

�c��g�'���1�ob&e|n�Ȃ�u̮���GKۆ�@���`=��:f@^]o�b�y�o}�+
�kC���<������c	
�К"*z�o�^	5��$����
+j�OA�z��>;�Wt(;��hz��s�E	
Cb��,�/�� /
Ɨ0S[�߶|����3��_[FZxM|��b{�������{V62gb���8w��Om��8�1��5����*e��
1g�b�lO#�lNv�?���ƫγ�Ԯ
�#i�ᡦ~-�1�����pW
+����֚���&CJj}�*a&��ޭ)�i�����#���؋�����j�%$!�d�c�&)�`�Ks6=b��GM at C]Zp
+{K����ѽ��
�
��q���ڣ�3�kskL\�;�(�
�
����
r
��4�	
�
�)��Q�Z/�Y��%��R9Ԙ
�Q/���e��:��=���S&ͻ���\�����]Q#�%fat��\��;
X���
+^!�	B�F�L����T�
h@��������up�9��.�4/eg#vW����`#�r�v&"ae��.�dW�(u���g ��M�4j�6$ L��h1���F��Ƥ��9��P�#g\l�ުXZXz՗���Np�’H��ppP��[�4��`�)e��y@�x%2Pi'
�3Z!m�q��hk0��s�[���2#j��5���u@^���ulXT
�
+����ҕ1
�ƒ���
�Pk€_�IUq5�u
+�Q+����;��
�
�_�����{=��5�"d`Nػ6&hښ�!@^P?����?��tu��XT�-K��3z��er �#Zr��
��o�\�5
I�*<�f��f��yJ]x�\��Л3Zv��x�Y���|�<�7�!W� �	��f��"
+8�m���t�9RY�"� 
�qݓ1
��4��s"��?�7�*rflY��]'Ш���U�ڸ�ۛ��I9�}�n
9�u�4}EQ
�4�āyZ-��m1

�Ұ:3:FK`RBOm�Q ��M�
�ԌI�L���Q�K g��I^�H�/�7�J��4�8aQs��_RV.>���
+�#i�s+BafQ"�I�z$����j�(e#5�
=g�&xq�J�M:�
���K�_,�Tp�����]��׻�\ja�Զ�e~@okHϻ�C�9K��$t./�q# ?�ZC�F��x]��i)+
5��@��,|�
�Q3�W��9�ȏy��q1�s
&"
=�8�����順�RQ��`>4A�= <�
+txO�HoI�8�u@�bK��u��h9�裏z��' �	5�&f
BJ�;� �,��:��Σ�n?�{o�������_da�P�\�Ƞ����)�Q�檀k
��>K"A�#�mb:�(�������_�:��-ޝ�y��;��y���I~k at 9�Ϻ
���J�$����ۈ�5b��&n�Sv-�ɲ����ALL��”yX���@}9�%��	��yjU�$$�
ZPA�Wp�R�ۣ��P���
+N�����"�
�4k�0 �(� ��eB��i
+Կ���	����.g�	���ж	� ��Ki)-�W������6��?�{<2O(Mi��Iԅ�w��f!9i��ZB��D�W+O�~�B]�j�YD��5��"��\�(:��:���zϦ�����@�O��ٚ@��Ra�!�Z�qp��?adv\`N,,D 踔N���G
�U��������	5�1�gt�
���2~��I�[��u�[����tC�]L۴
4i҆�9���m�33�!�c��� f0�-Y�����<�;W��r]�,-�y�c�Ɯs)�hȅGJ.�d �/�v���N���t�)Y��
 ���44(�������Ɗ��YR���2�KłM�@9>��S��G 3
Y���\�7��(��%6�dE��T
�� >�i����%�$db�:.9
x�dY\0H��� ����t��������o��}��yN5��V�8
}U��
�h{����ˎ���P���BK,�[8D'���퀱��
\ꑙM9�X�$��B�]�N��=
����#���2j�CXd0���
+�����?
�yl��e֫n���%�A�rf��9	.W��@km�<��ӡ�Q47«"�
�1<2Uw��u�!��� ��U|0KN>2�$v9��3�,rȫk����i��q�c�qlrB��46jQ��SUV/��@���z.�4ի�I�,��*+l�b�u�]�
+�A
�	|
����3� ����
3�t�B"�
�%:f@]��	h��#0V��~�?�
L�d�.�p�)��g��r&�=VPϣu"�O+�
.��C��;c��;�ص�}�d
b�s
�@kw
D at I+Z�ϼ�ڙ��WF)��
�֝uqw0��ss
V��
�9����nt�>�#g���<
�D��
�	`�?��o�<��)�[���s��E�;�Đ�C��8����C|�ޞ.~�6��>CIsh�LSG��.J�w���|��F�
��$��^���|����g�2έ`�m
��8�8��\�r�U��Q�V�sV�
+���c��f���ʮ`����N?�! ���A��(�p����Zhlv��x��������	�0�l�9n��^>��W#惇 ���I
��>=�u4��qC���9U�(�m�
+�#�
+
����J�[��޿j���&�"�:!oW�F�Ho�R	#d��C&Ϋ�
ʉi
Za��F߫�i�*�Ev
�
+tW�3��y���t��%�-iA=
�S��Yv�_#���5~��"lU
�r��A��x��>Ku�KUU�T	���*�\�Z� V��s��
+�g��9	�mD��7���T?��W6��
A3�y�;l�OL
*���n�,{_��@�az[�Ե6[Nۑ��N���~
���p�v%�T�^|ţ���ZZ�K�(�@��j.ѧ���.����������xEX^e3|F֭��]
+v�m��ᒳ�2
+Lِ{yo�\x�򏡼
+pv�_�#:�I�=���0�[3��F��B]�W+��4L�C��9���YJ�����$>J�{8Ό=�7�I>6	�Z�A��Մ�ݩ�����_����╒sm
������E6*��\2b�
�a�T�����K[=�wLåo�ȯNY�JcN
����Y~��!%g
.�<�(0�
-��؞}�HM)�c�'�h(h�ԫ��� ��N ^��l�UM���2��tsP
��Y�� )����Z��>���2��m
�1������晫 ��<0��;��b�W�rR��T�˃9|�h�m�w�xx��qħ���֖׸ �а��yj�c���K˹��%<ұY�pl�4��.�}B����5Ȟ�v�9�K����u�SMO�\�y	��%NE�+�
+��s1�E!ɯ��V�^V{ۻ�B������rH들ĥ
ҫ����s���R�pa�mVy|/�'V%�dx�]ɣ[L�UFJukY8У<�O"�O��5xTl������
�CM���1�3�A
d	ڣ#�L��y
fc��z�d�A��6`�T��A��>�:���F\�̗W9
���zt��!Ke[�\����TL at G)\�-~�҇J�k�������9	ɪ����ڏ,<�]J)ܛ�����\�<>ޣ�
�
�
+�1�_w��X��{�����W��U|V��"�R�q
�g5�h}���C�%�� �$�w(�BH�K�T �,�J�
+�Y�;�k�b9�&e��ϓ
rj6�,�N=�-g�8�<����q���ݥq��G�%Rց

�;Y�l�3��}
+��p�
5g�%�e�
�h���W
+����+���9b��9�wa������=
+���U�l��V
���a�H�ח�=�˻s8_�dw0����
\"��ː
���U���J.ɪ�%o� ^z�� �̃\
��l�L�p-���i�5�,v.�K��E���W�>�p���A��OZ�Ǿ��1	��{�5��
����k�����
��Ot(�t���C{�€�W&ʢ�K����MM
50�p^�
�_�.X䠑�X
@G�"�U�g\	[�<��#NM�G�Jr���xITu
�̯�9)i
�̫��Frё�M
�
�u�7U�{����0Q�S���ifvX+)���y~
{l�l
DB7�p�rj���=GH\�D
�YȥQ��J�����Ku@���.=����Kl
���~���Iv��~Sy�[[Y�7�E~��*`��
�	��+s}��2	������X��.������!�
Ђ��m�ߗ����>}u��آt�ޏ���M����
�1��
9>p�n�P�1Ij}��΀���k����a�F���U�02�_-`
[�ځ'��W:U�R����^�p�'k|���^��,����X����[$���ݶ�a޸�y��Pn��\
+�
�
x�W�EΓS�'	Q�y�g�I
�
[��盽���yF�SN�9���9�9F��0��}�������s�Â8:�(jP+��"�/0��s�
�%�6�y�,ꜧe�<�	����w'�ϗ��.ovd_��<�����h�����#M��H+�ș�h��⑗�
�0�{ӹw at fz�V��)%|��Gp� O��9^aOV(�c
� �U�U�B��}�W�<��4t;�̒���{k}�ۖn�Km
�� �t���mPc��}nEӠ_W^��2�
�.9:�-��u,�[K�w���*��
+
ڛ��Rӭ@�6'r�,}ȸq�㱏 �@g
<��n����
񙾦խ���I�#�7@�� �;�"�CSU��U7�z�r�
�50�^-��pP�L-�j������>)7d,��@c�����\�"
/1�a3
�U bvF�~;��%��!y�,�|��RU���!�s
��k�0��c�g@�Y!��
���J>�o�Z�RAF"�
L�䵃E�3jڭo��߻�l�[��*�U��7A�	x
̭Gçyu�-V����HN
/U4A����x��:{���kHE!SU�U)d�K�l��a8`y}UX��i#���3�6*6`�r+|Ɏ�^�l?ެ���7��\�
IGzI%�؏GqE�,��֛�+\v�BA���T�%蠅E
+.��eQ�K�Fx��[-`�z#Agм*lw�κ@LvC�\��$5�1�z
j�ͱ��ҡ�v&R���&��ݗ{�q����tL)�B9ţa����c#�SK�G�z(w@�`�I)>���7��ݛ#�C�϶Gr���?�,P
+OL"�GJL�Ȉ).)`~)
�I�f
�?w8Vp�r|PO��դl����U��<�5ς��P��V�/ئa�7�YG:��H%-ߩ`cAmu��D5A���ADzT�h�����!��2jdR�K�.9��g�f�p�,�ȯ�gM�|��V�ֈؐv���9xH����璢�
s%���'�z&��(0����Ws�����x��T7�7����֒r��޴��߮��vjjZ���~]�G��pa-�P�]2r�ԛ[/�
�MA��~�_���x�/<6�QA
>ӧE'
[��'fR�O�J>T`��
+>3h-�����C6ٯ&z�Ĭ���y!g����z��=�`��.��%.ǥG���B��^0�7T6-�
+��^��P
+�Zb�K�Kޝ-{�3����E5�e��0���[Հ[������{�@�Bky�@�5��+	2������vh=�x��:Ye1@��VFЯA�����J����Y��@��
A���x��2��1����o�W���V+; ��
�:Y����4�y!�Z,�J�́GOʷ+@�4��+"�Gx|�[4����C�;2� :��`wgK�{T�2�Z�����~��
sz0�%x����٬�Cq��ů<������Y*~K�
���ڤԬ�yl�m
�ʩ $
@�-�U��\
���J+^��
�?	{liO<�5�u�''��l�u
+�е�xw��3p��i�����}��쐖���HY��b��
�"*ں���
��r0ߓ%Q>}e\

�Q�=I����ToW�;S�O�(e,�KN,
���0
�*d�SNH��8h�,��9�H�>]�##�	���=,��{RR�m�����!�:���M��j9l��=*R�m��`��~\�_#�x�\�_�@y��<��T��S�O�9��eA�d�Z,Z	�I,�ִ��#l�C0f�u��ce�e6�h���o�h��g�f
��U6��:Υ(y}0�u�`���t�
�l���M]����-��
2Fᡌ
ߟ���ϕ�ui�������P��|\Ը�%Q�k�t,
`"R ʩ&6ɥ"gz�L�ђ��d�+
.S�n#!;�DE��	��k�f��Ҭ��.K���ClV���5
��5������輰ET����>=!�o���,x�e�Y���E|�[C+�\@Gz�s��}��A����oaӽ&j�Lj�q�	��J�ǀY(����X�r��r�A�Y��t�o
+ at _@u)�Qs��e��6�L���~=��0/ �W��l<T�!�:�e��dM���xv%*�`��	`~NP/��Kw���^9

PI�ú��q�ͥ��ems�l�|:ȧH�d}���V�9�M�ыAؗ�"���nY�G������'(�iB�Wj
+䂽�k�,�ő
�sj��� �Rϯ.�
�ʫ��נs�
�):��B(�h��:‰����a���2�
-�t͹H�����h��4X� 
�����
�d��޹��CƧy՘Ġ�V�P�9����^��^dSOV�������V%
aU��ϭ
+Ʈ�%����!eCOXWQ��S��J��]�͖>�iy�YV��
3;�d����BC�@�����^��{�b�S��ۤ�\��뎌nbK�h|�]�����9^��ָ|������Jux��siH9^=
��1�Gf���1��)�����'ذC0�2��r����!��R��>Sy��6d��yj��T7�l�2
�^�£/o��k�*H�FB�M���hٴ�je�w��w�pN
.š��{,�4�:V?ި�?Z����=ި��sE!p�n���К(�����r)�A=�	�2P��&&�����qx'K
6T�N%!ew��OC+��P@�`��|��X�
\��
.W�:�u�L
�[����B�e�
�_%�
A�<ߦb�
j6
+��x�d!;�aa��*l�Ԅ-Bɉ����X�\p h�OS�!�\�z�* ��c{�π��
Z�v���=ؘ�����\�sd(�
�ʫ
Z��/�4d�WE�qIq��D�V�w
�D4�Rİ-p
%s�<`b��j*bmx�()�D[�Բp�Y\��
!	d1��,<���%&��{Ӿ\��[���Z
"d �d��,��rO�/۝���*�(d�2m�7�Z!��T���W�u�\�KI�y��ד�/PK�kpi�B� dg,��҇͡�����ܛ~
���C��D��|�M�A��,􁒒{�a��i�;s��c0�� �uLT@ϡ������f�;���GR�RZV��� *
��Q��my5���7�t�*[An�og��lL`�W�J
�M�*���;YcR�+
����*��C{
\:��!�P
8�h�hp�n" �3<�k �Z�L�'�Q�۝�f�T�-
m�[_��`�V�����������r����kjZ�+�f�k�2�*̺x\�������y[3�l����ol�����5������C�����"�
 6t��
��o�v�m*oܑs�**`�Ï�Ăc�ty2�@_�iaS�FZ�[Mα�ٝD�9�F�
(�����	���5~PxM���Gw/Ck�й�%�Z�
����T��s�Xen-��3p �!
xjt��O&����R��
+ؖ������,\x��AO�f.#��
�	�K|�dc��Y�Y�X+`�����y
�sY~�oGFI����8��Zɝ�ђG��
�j�.ga�f(���j�cA��(Y _�J� lL�w.�3C
+!��,�,�=؟"�{�b^� �A��,��%*�?�t�KM+ܘ�%[�E��{@M/�*� �cӼJ��RR�OF�	�>2qi^-�g
+���)x��.h�l>2�k��X4�
��܃��˭��R������;����7~=6íB�@��!c��OW��ײ)(�^��G`�|z6��s
�+�j**}F
Z�ܟ#g�����l���3��#Z!��PQ����qZU��|
�q��������){
+���/Ȟ�%�-��	h���5��?�,֟�Lz�@G��,��!�.z^7�Vč�Fʏ�$�'��*O�5s����Ǖ~ce�Sϧ9��KM?��Z��� �{uBV�(.����K�\ƪf��q�cl�[$�
�a�~
,1(+y�v���Cy�ΡkU�
�:�U���U
��\vd���W�Fq�]Ӧ��۽�A�?UCYޣ�
J�v)2֣���,���
���3+A�n~�|dd��&j��@.�B���a���
v
�Ԯ̳R;��@ ��Ж����ϓ�mS��5�
�:��S�
s���YB�O�*�M��G���㸷�&
0,+ z�6�KN�q)�9�f'�\�n�Ts0�ωT
+�A�W3���l�u
Rr�[�(=X��oNP�FI�3�(��j_$�
�H{3�8۬�:�}�1R���
h�]J�9�	8�/��#��	?�s

+�)�c�ub�V����A�Ай9�C	�Y
+t3է ��������?����0b2藜��V�S���
+B��,&ֽ�(8���
��)��jA��=J|ZP�O��0�
5��
�=Q���chO8k��٩(~�ol��>ݫ��| /x4\R��� +���_�2Z
+��\�OG�A��Ջ� �O&:T��mHO���gA{a�kJ}z��:Hw�78|h�
�sv&	Q㸈��&�
�u&�G
��;�+���%�x�X�x�t�����
�
XaQO���㵊�A]��q4=�r
��c���@^r��< ݪ���ˁ��0����U��F>+h�"|:j�]A/t���?����E����~�72P>#�УE%y�|�K�aڡo�
��Z��
+.
+\jj���&�-\:t.'`���U�E᥊����ɭq|6�"�%�u�S ���TԱ�M|Ts�V?{�U=^��
/qX�w�^-9׭!e���|���4+�@�����G at S �q��]&&.d$�f�o6���� �n
��l�
;����9|���6�y�=Tvo����Fw�
+�TS�}Jza ����䖑R|JjnP�(u�ѳ
�<�[%��4B�[ʂ9��i�b�s��l��E�f�o�ѯf��[�Ę�q�3��bc����rb��
&Bݖ�+����{9�V���p^9-�!EE��J��Ԅ��ER�u��x��� Y��O򄒚g��E
N�^�gP��*R扅	�)��p�
��p���Q2��T������}��������
+t���_��/�ʉ�ٲg�Ţ��~l)o
��
<��w�c�8�3��J��-4D at G�s�p	�\t@/ภs� �� ���
��,�OG̶IK_�d����V ��]�%��PS�
+|�_����zbd�Cz�_E�,؛C��E�֥�V��0���fA�
A�Y�L ��	��
��
%�Q=}d�c�`�����>!�:�|�P���>
헁�
��날�,�
�%
ǭ�2
��̏:CkY�K��_r����䢀���ב�<���}�!\z>�k����}h��;Zb��\e3
*j�!`�=)�xc��VUչ����9j��0�Q���?C�˱�O> �ԧ��
RV��=�pbpLP�D�gq�^%&ίħ���B�ih��ɿT��K��+����4
�W�A;d�����eև�m3�w���[ϧL�_��@�㪡�
�w�)�cs��]臶)B�� �}
+a��g�`߬�]17e��՝��}��g�&�V��
3�����u�\�e���A�+�&������yZ��8>r�y�6I���fA�o��Yj/���Yvcg��=���*���e�7G�
��N6�-'$[�ѻ��(���߬�ĸ��U�R<
�W�Yأ�ɒ�i�
�
�䕒3�'q�ֺw\s����›��9�]��H�����D����yB��>�3ρy80���pβ�s�½1"x?����[������;���VAkW�\�爀���s
݋��Ӡ� ��Vt���}*fّ�����(�"!ѵ@L�)�	���b#�2!խ���
��Y�U0�
s�+�� %$n� 
o�b^XA.q,�S���������:�5{�������jn�$��A�
j�x�"��=OL����0/v���͐�s�4�
��p�S앳��Rf������s20��EJ�W��zA=y�\�0�]�Fy�<�MF^OH�K�	��
���Cg�}jJ�f:2�c��u��0���{(� [...]
+�T��"�I@�ެ����Fq�w�׻��������QV�V%���d�/��;�{�;B�Z��ʪ����uK�9��(��[�;����QR��1b�ch+����?�>���B}���
��J��zg��\�K�b�K�,6n�����`�Jl3���~���>���!�s���R�ʬн�S��49	�����G{��W��
+�m�)��9��U�%�ٓ'�b����-�9������y� Z�g�
ЄL׼{8+��M3��m%�
M�;K�Z:��C<	��%G ��>�'%4tX@�B9��� ȷКґ���%�%
�-���.�f��11�Ew�ǀGO�v������c�T�	4$�:���N����Ov���:
+[�.��مy䚠���	dm�ڶ9R�u�f����#e���߮��>�W��]�P|�:�}��Ur}����Z'��� ����r;�!蓢�Qv��sG� ��҉���Q�{�3������ԭ1���y�l�H4�X
�
n����g6��)����C�g�y2�AF�G�)�B{�ݛ�x�i�>�o�>���B����Ё�8n��|��*�½25��j��?'e�
%�}jn�>� �a
#Ļ����]#�4�x;`��Q�cuK����K�#�'�I�;�ޮ��Gu��p�4=���p��}��J7������j��� 9�#��Jr��
�K�M
hI9
��� ��z'���.�6�~�2
+��g�g�i��_[GPO��6{�n�
+~UW����M�\�b�,�=Xk�<Xo�<XiA���!�X����ۏ}~0L�< ��5�e��z0FM�ƿ��-�m�̹<-��z��������f/��!�I�����}�'�my�{�16E���[��6�-�ef:�e�Yz�� �Ą[=E7��׮I���֌�ȧ���w���x�1v�����0�m��m���UvwF���VO��c5���Zoޕ��›���V�׶IR��!~g��5�G�*9�ӂҵ^r�J���G�mSSᅵΒ��\�s���;�y�W�1޿<��CB�a�O�Z��<�2�.%�!�M��x��W�󯚚sΛ
.[Z����~[�D��cv0J�r����(��'������_���f��?�ݏ{�W
�v)�d��p�}�v{vg����R[�M}���7���e_��ǿ^�(���Wr[א}^�O�N�O��X_��F晩
�|�W��
/�[EE�9��4!f��:�
���F?���1q�}�+�%
�rj����
�qS�W��EהU?��sϮv#�/V�_54�_�d
0��ܭ!�SK[����s���s�	\�_A/�t�"��%nYM���p����Ԝq���9��K�����w;q�����_
��9�y��F�n���ʾ$���v�;�w���yޡ�����aR�Rk�����[����%I��u�g�����'#��'�	t�OC����Q��
eϷ򮬴���kH8�3\�PӜw�p���񨇳���k+
��T�q��O��y��~F�7=��S˭ȇ���������
km�����K�ܘo�	��Xn�ݷ���m���qf�Z7��f���6�GEE���қ}�ן�sR/�h�c�
³�v�}cC��펜_�>d^��,��ۋ|h|���mB�t-T	v�i˝�����o���*SN��O�t�_��'����_�u�",�ŗ7{�ol����)��o*�(e|gh��ug�j���3�'� [...]
+>��qz�����oǿ�
�&;e���#�4um�/�w%F�����W���rg���W�25��u-"�9��{��;���|2Bj@��
NSS\2>�.�̭�ǖ�Mˇ�_�
�g�:�n�f�)����Y���ocC��J�7w�_O	c��
̾�3�u�Ҕxj�=��{��т{��u� ��=�}��UtMS�tZ]�ݢ0�kyE���/ks��s����^py���-��qz�g
��o�ɑ��_~6!�����ߤ��[��
��{�ڌ3���SRIʷ3�/'�Q��d��$&�m+~��� 5v���3@�O�5i��;�o�s�
�>�D+���҆{���>_�H�>�� }{��
��Ҝa��貺2�'�$㴥�h��U_Y���.Խ�Aj�J澥~���?��1���!n�V-��yc{��=Dx�=�z��Wzk�����5�WEu�iyE���3c+��F��J;�������&�ܬ(��GT�?��1_m��n
�"uu�g%�&�I_-HR~Tդ�dx�z~g��ш(�� 5���4z0M^KY�zJS��Ѓ���/课�g���$7�w����]|k��^oѭ��9W��^��>#�x���("�&�Z�I�{��t��+km�{��%�/����*�<ȖO Z�(���O��7�]ST��5_^�!D�3�!�Z�$|�ދx�o�]ѿL=�}�}�]U�w~�C�U�m����9�*�����R�5UE���5
��s��S�ڂ����Eq�Ej��O4��{p㬄�FH�Z�����>c�Pxe��[�M]�K�Ԇ}�������H��A�����:LJ�q��xj�������{����^�EGy�UG
�3��,�ŧ���_X�S�4��67��bi�ߚ�ʻ5-*�f��2�1����=���Z�(�fj�\^��؁Θe\�6���IY�En��d�]o��M[�u���gV at u�$��Iv��(�pc �r�v��!:댲"ᔦ2�;�<%{�v��\vS_Oz&��_���.�K7}����~��M2�٧x��6�)��O��}���_���,
��g��/�^���ٿ��Ҧ8)_���~2ǎ�T)I�r�
�������Ew����^���J\}�1���W:
��f�4�L����a�܌�y���E~��������Y�U�gz�����J�����
�����Ԙ����Q���-�w at o�06g����~яy�?m���G��@�����t�R�r���Dz�}��=���Fؕ
̓��~X���~���J�F����%������r\��=��
'��alk���܁y�k*���R|m�
�p��pJ�r�����K�QJ�L��seE�)m]��1�T·�ow����H{�7�O4��_�N�ӭ [@�Խ�]
"'|և���
+�+�0�u9^�+%��?�zh��F��Ya�ws˜o��Km�"�
.�/.���6���[J9fŤ�q~�F/扡9���%��-�˪�{�3�K����c3&���-�4ꚢ���3̸��
+����
Wq��n�|�F��)J�䖽��Ɩ�o�/?��"�6w�>j�&���n��=�+��E=��/��ٕs�Ԓ��������k�yZ�R{�cS}���
X�rWI�N?��Z[�������ŗ�Iw?�/z��c�� ޒX8V[��6��f�c
�9�xQ^��K|��O
]��ۀ���y����g��)�'鯾<#��gxȽ	V��,�7#­
`���z]Q���/�
]U��+3~9X$��W$��k����g�v�Ru�E+3�L���.�Q�/-�b�<�U��.j��!�'UC�i}S�YKS�o�
�'�Յ�V?��G�k�*�|eu�9Me����_����2~Zk+��֋| ){�3���u�Ȅ#���=\�`����j;
+�Y��9n�w���
=����]?�_C��ߖz�1=Ԙ/�������?�o�����?F�O>�.}�-y�-'��g����^�=Cs��������9�䕙ggXq�,���B��,}�e2�/5Y]����e�\�ւK����>��?;�ԑ{����n?.5�-��M�Ӷ�7����1�x�E��+���Ͽ�P�z6)λ�;��_���Xi+��݋|�=�~j�6�K:���|o���ȋ�j��bk���Ҏ~iFG�GC+=QR��J�[SqϳV���m�[K�اӼ����oL
��'Q��ظ�����W�in!Gʫ�n���=/H8��Zx���
���qb�m
�nȼh�Xpo\P��͈^��<\�.���Y
+8
�\Z�u{�񺝞�k;9���)zN�}v����;�	f������C���䫒�۟=������O�Bؠ�<gi���Ԕp��>��J�Ӕtj����
��QQ�[���d��TѠ�����<�|���ˍ������~z�����5��W�����(Mu�i}C΅i^�w��_������F�˹���E&�`�4�:���A�T�e��������V��q3� ����
QR�����7�=E׵�S�j�g���0�u���������!J�zg����k�#�w�@��w�>��m�u�>~��ss��~�
�/ME��1rLP%dx���lsH [��?7��^04��(d}?F�����,��{�C�$YU�/���k
�w����3D|���2�'U]
���ӖV�c��^�6z��F�Y���
S3슺"��9^���̴o��痚��%e�f�
Uu�mUy�9�8�uE�w;=��ӴtE3򥺹�c��\ľ�t�כֿ�S��Ye�~��EQ�w
+q��KPwd��?��2/o
ГtM�[+1w�ow�/���/wiE�9�:�*�>>r��#CE��"%gd��)B�ma��G9g����tu�٬$�w�$�"�ɻ4@|�O��͗�i�Do�-&��hC?�>(H���F'&ïP<rz�c�?{�֞|QS��ӥ���}2>0|������ 9RӐ~������
�_v��|��M:khʽ`�!&V�^|;�L���������Ȉ�޴k
9W����/,��1�M�C�|7[S��:CI�A=׼Ͻ�ܞ}s����jW�5um�m[��f�w������>��
�-lӬ��A���ʼ�c�����l����)F�m�[�
+�r�����@�}�O��-E7ԭE��oV�q#�����3
ŏv�^٦�q�2�-%�팕>
f��|���k�U�?�{�ه��P��͢(�Ԃ(��I~������5���yO>[ ÷���W[������
 ��}����!���]^��}�%�~��
rb�Z_���!r��0��9-$8����A���a\�uV�� �����34d]PW����_�������}��c�Fr8'"��"l��w
�E/�ӥO��.��Ƚ���7���'������KК�f⡮��7s����=Y[t��������N?)rw��9�~��[xs �g�%C}��>R������QڹEQ�9�(���.�k�+�܁y�����
⤍����'�|,��w�$�Ǎ~���Yf�}<�e�S�����*��r��-�؊zd�����}���n
d�n��Ӧx����.�
�c�u__�~;�M�^VYp��Nz
j*�9'���|�S�%�����r�����|y������/V�
�����
q�=�7��gV{�C�T�^
��F�����K����G���96b����>�����qo
#�g�SdP����>�{��O


��&��(��?����so��/�Z��e�+J_|;]K� [...]
+6`w�����8�н
;���՞�;;}e��-9���g^w.bm��L���ٞde���E��&�m����Q�[
+=��V�XՆz�H�����|z����3���4�^�$~7Ɖ�FU�ri�c���^���)z�r?񝲹�}���F�
�<�r��];��?:q�>_n��N��
�GD~� ɿ�c�}*J�GJ�=��Ƙ;�:R~��էf��L�&p�b%wm��"��:3J}��8;��'��6̽OFدN�Z��R"�����у��
"'������,�x}����,*�P*�Ε36��9�|��O�?���L�b��ѫ]��}��[��ȃ	.l{�/�M�A�Tvgk��5B�����N���?�)[
ž;PִXM�Y|����}�9Yu�]s�̓)Z&�ɜ���sS��S�)*lw����
�mH;kh��}u�
�>��ܟ('m12
�ew7�p	��R���$h�a�#��bU�/���o�DZ��\��
�P߉xj��f���|��=��zw�͵ނ[;Ә(�����ُ~e�&اёk=��q��课g>�M?��a]�J��\9�`��
j�7NIXm��T7�^�7�
���Ѧ.|D� �R�?"n���7�����i|��$.~O�%����	r��5Ƞ��M�{����9ly���d��^ъK#��7WN��jT�S���isZ@�t��6��]Z�ͼ���|Nݘ�{@/�tk��:��扩nUe�]*��f��x{����K�4v�_} $���Fݵ�5P�zD��f���Ӎr�� 5�:'@��x8
ȼ�O9��e�����	6�>���ϰ����)���W[�ȍ!n�\쿥�ſ�����P��X��C�"K'=FY���N�ښ(������E��U�4}�G�r�~���7��\�,�cl����V|�6-ƭ�`�i����b�d�����74�Af�"
���F}ih$�
i+������;��ŷV������Y�'�i��.�������nv�T�w���=��oG��OrR�5��*?^�"��)x�U at QγM���<��=4w�ܜD�
H��)�;�-ܙ��Cu`���
?<*~�;Xx�ИpZ [...]
+��y�Ѕ���L;�=��t)++��r��8.n} �@ךc�&���5�c����N�r�M��<ʪ�u��6�C�$��Vw���al��<�l�
��N���4�x���΂(��IN�ד���U
�W�'�b��x��~c��~0]�ݛ�:�H���]%��t^��RWޕ�aR4t�`�[���H��f�6�^ꇽP�d�Q�f�X��F/�R
+M=����ѥ�i݁zd^�ޜa��U<��(�riD�1FP�򇑺�t����&Г�n��#���qD��>ko�\��	xV�j+�}g�5LL8���NV�7����� �Nѐ?�x�+2
��}���}[qޗ�X��*V�f;�Ђz�4�~f�����y��MWP�F�%�^V������L}���
ai漕W�o�s^�����BL���!����&i�i�fX�
&1�m���:".�k���| �>���_��o�qΉ������I߮�\��3�m�TE9醹���X�~��A�j�o�Jr4���I<匜����"�����m����l�"�u�e�:W�9�f�뚊�͉R~���җz	���ls#��Z{E��Y�lnd�Yo�'h��RQ�{�%?hE�w��ҕn����;�B�C�d�tu�N]]�U&�)�
+nj?��h���������_�;`7vz/���qv�n�8_]�~��,I�
6Pm�U��Nv��<�,��������n#[�Uh&�L��0:�d;������L���� f0�-�K�df�9���C/�ZV�
PwW�ΰ��ٚ�-%�*��l����RF�K���)9X��Q�1�
^o/}�
���ɘ����"�t7$�Œ �
i��N�p�e�;
+>l�#�������f���g�PK�b�W���t̞��ڞ*
�,����[�z�S[
}��<�O�A�0��
+���m�[m�|7w"]cU��Nz�FP�o
DEo����Rr�[I-qI+b��7&��痻��܊�J_�li��z��	h��!䏵~l�r;.\�,z��=1�aB
��3-yO�
�O��s��α?W�%���L���ފ�m��i��]��؝�b���ኺ����;bx��,��7+�ߞf�m������w��4t�j��Se�3-��So��ѻ�4�J2x���$�"|�&�^jE���&����~�4�ˑ�WoA_�ݽrt��q�ߙ�@o_:���pJ�����GF�5Ǥ�\`R�rb���NԈ{3]�|:Ł�
�!o�#K/�
�OÁ}�
a�F
�NO���
u�
x
�x,��}P��ã����!	7�<���>J�e�V�܅
[��m
0�f:Y�">�e7
z�Yq����51�8,4�h�GQ��9�!'����g�{s$��#P����G7Ay_�
i�_Yj�%X�x�
Qu}�
1tゴ@.ϴVe*���#ĝnD��~d��
�Y?|�Vx��(�|Qȧ��n^ݽp���QJR�C��{�:h��,�4��f)�@�^�VZ��tc�P�V
8KCԴ	F�

|WɅ>Wsa��L���س����'��?>
+
�r
+��$&��o�������+���M]���nL�C7� _�n�`�	�j�i.��8�¿�~��v�8�݉�ߎ~��z|�<���[GIq?.��
����{�Y.�ܡd"�@>o��S7�p��ձp61k��䥜�K[�x��?W�$����ݑ⯟��"N��>����"&���}<���#)o_��E��ʎ9�я��+88��O�c����f;�>��@�u�зs=�]��4��~
$��v4�9+�ى'I�ѧ#^>>v���A׀��'A�/��|{��8����,���:ϡD�/�e�U7�>ߛ�]~�Y`�(>nG��u��EV�9F�]$���!���;���3���?����|}�'/?��8%����vg���k�U�;���	F
`7
��/�!9'��Y��#�@!���
]� �}�
���+�{W/�N��
t��P��}Pv��#��)�U��ۻjB�]G.6
!��xI+'|���
��'�(�$5+�xq��#?��b�6(��3P�����Gw@��ς"_< �r
�����'@,{zD���FUW�h�QtCY	2�F���2���i�ŧ!�IG2��@��?��ܿ�w�
�õk��n���]]��w�1t�����������$���|;��� %vyTW��b����H���z��
9=�xn�#��߀�߾�
�}�
���u�`>��;���1н
g|sb�D�����^��,*X��@�}#�2rᖌ���Q�G��g���Ը���#�� h�7P��
Ы��A/�_]8yt�������'��߉������§�)X��h�{�*b�
�f��y�y�E(�T]��'<6�xiH (��+P�Ǡ��/�
_� �t���y����N
?�/ν���͍cR^���C�3�+�ޫ� �Q�#§,�cB���7���+�Ȱߐa�G�߾��r���EP��;��G��y� [...]
��`I5����� �8�"*�XܻWG�Ǹ
��w ��\�:	��E ��_=��G'�83�Y��"*
����W"6��.q�����'��9�
��}}����s@����{�
+���;������3�����$|l�|;�]Aʳ�X��qv�̈�D�U�5T��Z�&=�(4.�HEt�����Wwn�� ۏgOA���w`N���޼8���.���vD��8#��B?!V׉�&�F�RԐ?*�����
�*$�
+<'�T�뗠 ��O��]�
�
��?��O�^�]�:��)�ߟ�A��>U�����<�����K�Y�'zy�cU�O]�_eY�)Ay�X�Tzډ�ׯ@�� �����+�o��
]��8wtX/����
+�
DΈ>!�B
�%�|����8 �k/|aR�'���
Z�p
�Cu�0.�X�+����A�/_��߼	��)���~=���t�<��5?P��OG�^�9^�wu�
�#"e����W��sm�φV��:�^u�_^p./4�H�珠��oA��^�����9~t��i`>�����]<s��s�P��G2�87��|i�RJ=�=�a��L�]E+_��Jj�
��0o��%W
+~|?���(��
 ���.�|���@
���*��g@׀q?�qt��
���]P����Љ�����/K}�T�D�*��w"�]�PM'.��Xr�z<��CЋ��A�����{��@^�=r�ܩ����
��/o= �߼
�	:ZU�{z��s�[��S;.qMT��R�T/M���
�nq�Ihl��ϏD�x
��[���w@��
t��3�qo��ܺ	��e»�G��煐��3
��
?� #i���rTH}?Z�
��3�ې��
8�c!�r�Tv�(,�xb�bv��~Z]�������N\o�m�*�6��ٴ�B��F�$�DJ�Y��mԀ�*ҫ.:����#o6�X��l�_ItɅ���?1����	q�(II~
p�[E--uy ��]�z}j�WR7�B��x5vv���
���k 9��j�1�š0&���]v�".�TAH��O�^�
_� ��5��7@�oO��n�������ԹNr��3�,�#MS|�� +�M��.�9=�B>��Q?�1�Ϫ���"�Մ���
=����<�o�_��^}8�!�hJH�т�ܓ��{CL諹6�w���d�b�%L�Wū��
j�!Ϥ�f��jJ�byX�������߿?��-(��г��@�8�z��4��:�
��͠~
�Pzk(q}��8������`�4�bu�_n
�C�۹�#Uķud�
TQ�圈�I�G_r���@�O�=���

{
�T|� [...]
+�����q������a�gNи.g at U��pY/-��AxЄ��c]�gd^@���+KJ>�����?=y
+�	�5�h\`��Џ_������K�����l��d5u[T�3��%룴LM3액�
�4U�������)Q�b��?��;4-�lJh�����=|v<36�r|L������
\(�Q�^Q�(�d\��,
ܛ���γ��>��Qp�fu�`EZE�R�W�W�Y����y$��kP��PnD���/_O�~p���(<;�T��� �2�χn��0����阼MYS� `֦��K㵘�
J���~�
y҉+����Y�`�7����V��n�[��b�RȲ�[eVCU�Yɂo��e&9�"aC��l��Tjv�
�n��i;Xq
�
���^��h'{n���WW��G��JX/�_vu%mGJ�۞d�ۧ���Q���vM�CmH��u� ��M�_��g��֕(��TC}\iOa��1~�_�I�<�.+8�
�ݝ���
5`m҆*����)�溔,�[��x�<�SY�X�&�t��W��������P�^�,�l̕�5�O�5G�jk#���/$�}ySm�dc]b���W(� [...]
1���_�+Ç[Z2�Z�3��H�6F��>A{T��F�L��-Y
��l�1�V��a��t5�Vm}�����m�i? <�GK.6M��'0���6R�@-
+���'���f��!����2P����f?o`
_O51�ǚye��=[��4k��
c���A�AP�6a��!�2J��!Z
🸙
.kd�0�W͎uUi�K]�� =i�����..�_���j��Q
p��+�-���,���
[�U�`룈��!l��+�$�5%�M�3
]�������	���2n�Ύ2�/{���鮖��6~��WX�0�H1I;r.nm)D_Z*��;��
�4�z
+xGFʱ���U	<;Y	��T�N�򣧛k�E-�Ҿ�
+�hS=ވ�
#��
�#f��s}��v5�lq�]Џ[#��_5.]�ح�봩�+M�J�6�
6�q1�ڒwu%�ϹE,�S�&nM�̓�ȭqd�U
+䪄��T2`n��z[άpȁ�ӶNz�-{��vאּƤ`·$��!X��*re�h��}%ϥ��:e�@�ҋ�|�GK,ْ`�e����ig����p&�6�A�DUt�R@�NR-����>l�R?1jc���lˣU������x��
g��Tx|ڎ��C���@�"����8t�CE+ۑ�
+̓���V�KYIu�L���v���-�Zގ���%f���a#V�0�ib��8.�"a�{Y��<��gڵP3`�R@��Ye��
�1���.E$
��6%k�r�N}u��X׳��o]S�t��ۻW����Ab��0/oy��)ex
T䞞�<0p����`U�� Z�\���q�
+j ���C����E*ܡ��&�y�j�gVq��
4gY�9l��������DԂe����V�yg��;*L�g��uw�U睫��)���bx���� k����J.fc����
~�#�����֥>�CK��H�n �,�·\�J@��=��� N��M^9,�-*�N�_��D�L��s˘��.ӥc`6GJ?m��ZlO���Ky$a�^_�����
+j
�
�d]I���.4�vu�SMC,��Lpc�K*�n�!�+�n�LM�tc^�Y��jM�y|��Cp�xu

�k�z1ۓ��>�f�j6�qش,����8t
�[O*r*��v	&as����`ɛ�+�f����!��w�Z{쪦.��Vj�Mc��٦�W�bl���䣦����>�2��q(I�>�&FǻU�r����
�ݮ�E��o����,�iV��ظ�IL춄�%k�|6͍z}8[���7�:�B��$.�4R��<V���\�U΄ΎP���9�7���^]m�K���P44[e,�|{�����o��4q5"FU���U��
��8d_O�]-&�2^0�
yá�xu�M�J
Y�	��#g�]�J�[U]�QTҜ2j��0<zs
�k�����1�bFَ�Rh�RK]j`u
�U�� �y���Q7t��d��X���Ah ��I{jl�C�94�����J`�v���?�$�]����kڭ���
uu햔\l�ҭrF�K����Б��t�j�z�T�W�)8�C�����V)6ѭ"�β�6 [...]
��ۓt�GW�ᜩj�T��
�Z�r���ea�V���y&ǥ'U,��t�E^��a�(��*����}@l�<�z�kh�
��>��r�?��GC����
+�`A;��T���t-�ٻ���EA�EM.5&�/
#+\�5]���<�4$�@K(=0�j6�1<n�7���@a�GM*���E������K�
Y��
+T�MO�דѻ3U��!D�(/��"E��kFmb|ڎ��6�L�
�F�(�s�����I�VX�MO�3M!
�q8V	.�-'f٥��ͱ�3���&�����
�o;
+F��X�⚩��Vq0	.eg��m����H�[�$$��5~�Mʄ�wҳ�;�9{������h�@o�ÿ,������/�K��F)��aL��$:r}����@�{�"��_b�?�l��,�ڣ��~k��:�*|�]��p*��c��վ��_s�f����&�"�S���ފw�1Tԁ����yy36�
�|}��S�c��,���Q�j�e�i���N��)��
+ I7�*��Z&9�m)i�c��2x�M��6OV��
+�mK�������
���Kݝ���i�3!;S��8`�;���h�+���i-z3�	�*k[|Х��RZ�UN�5M!BmRt��?��>���]-��7WY�s���3`�
��}=�l���]LG
��
XL���Ȧ�vB�E�D�Y`��}<�#E����zv[e����U�J���{`�
+d��@�}c�3�(&f_���z�����ZR��:�y��gd��s�&8�,E��.7�=%�+I��y��ӥ?<|��<�����Ԃ�qb��Le�M�@ �B��w���= �U�d�����)	�'ٯl��&��14�"G�n��IV%:ޫ'���V6 q�k�sIN5�r`d����=
:}�3�� ��I?����T�Tr���x���놌�)�	���~h�l/*xm

�1	ݖ�s�F&Υ&�t��N}�w��˻�o�_^g�565
�؏
+vȉ����[���]
��V��n
�5
+�����r�r�CE.ٝo�;��}�Rd[J��g�B��2	��e*��Vx���©3Kh�d��
h��_
+~�O@?��*ws��6����f�\k+zeEE
�3q3>]p��s�e���j6�@���d}5��=��@��֮��~-���
+�"F'�Řx�
+��Qa3]Rt��02|k�W��K˲��]���:l�
d� ޏ��L�ůW:3����619k��혠�lMRVF�a+�ذ�qV�s�Y�T�a19ۗ{��ƁC@���؀W$���p	��0�4�e�У�0�A�������@C*>P#�=�Ҁ�Ip�����4`[B)0����R>ŭ��u����_�.1:q�P
��܇��7V�z
Uu
!�&���aCC
 ���uZ�`���B.Ʉ���3��N}U���l��*���4̡�>���>�
�L�s�������j�\�����0)���	��<����_X���R��?��a@����.}y 0�Y��c���
��
)��4FH�ϒ���ea�W�-�Y�xt��Ց�s�o7Gq�����	?�
��J
գb!
r`�&�?��)7Fqa��Y ֠����ćv��p���k�#8�g3�j&rc�V��V�����lO���s-��=�� �6CF�Ґ*��ߍ�	�D��K����F2�!���F�A &8�<�]�'�g�<�����'�/��^ �<z.�p�s����
�
�60�l��9ͣ&�v⃯� �?�?�}�M��O|�k��
<i߈-�{��ݥeQ�p�4�
�*�SɄ�U��]5�tg
�#�`5���a?�B�WB/qOR�c����"��	b�J?�{.�,;��E;���iJ�� ���@��Ł�g�] ������]a���������Z��ߟ封�-v 9�2X�a����~ u�;;�
c
&��7�>��ɾm�ʼ��^3
+/ZJ>X'��VHHn�?za�O��Ԓ
	
�T0�n�`g
+�ԓ��<Q���	v)	
+`ݩ"�e��
���E;�����O+�ş\2&Ωi�ٖ� ݂N�W�2=2b�]�Is(p)�"t��(*Dۘwu�n-�[�*��Q��c�[�eo����%�ȥ��O_��
<�O�+��lO!"
~�x�i|����	�,��6��yV@��YD��T�#�f8d�R�4)�:���:�)����	�h<����3#�����I\�Z䓊{�5�L>�VV�Lr�(�V1�l�2n9
���÷��d���##�5����]4��c3�R�S��ʿm��0O�-� �$:�1M���D�$�,7pn6!�4������4,��1����|7:��b��ެ�ɩ�B�2t�YDH� �oM@�Q6'�	c�ԭ	r�	��1*뉩�y�9��ym�&d-�B�Z����E^����1`

*d�EZh�~9����D'�(H93]%}�#\3�5n@�,
+[�Z�FB�S�Z�/zml�y��2Y

_�odQ��4�M��
,ҙ?�X�m�@~,t�2M�S��i�V�U���R�Vz5\⮜�g�S��'p1�	����2�
+���wE�µ����ⷋ�yϥ��Krn�cU���Q|�����b
�����4�(۞bA�@���VnMb3EUɏW{`I ځXݑ�p�<��� ��lS�Uc�Kfև��Nt�������T�R.����L��2o�&P�rz;�yț�GYI�o8�l�YL��A�Me�
�)��-�~;S���Ce?¤�N	��/@����x�T�'�@��厨j���+m�O�"J�e�^�E|���|�f��U<�ML��Ao¿���W�FT��
����A\�u��ׇ��+��7:�_X���n�g�X�M~���U�4��"�Ľ]B,��E{f�%{�d��.��
+�u��]
D�z�,��/LbR�� 2x{

i������I�
��
"j��,n]e�������>�\l*x0W�t�11��m}�7r?[Ui�R��]%��C!K����r�ڤ��R��3��]_]�����Y:���w{�=	�� ?<
+T�
������QX�m����o�zj�S�I�
���#Bf��
�W�#T��P�nU1�k�����T�!�FA��Lm��8:fm
��P	vmM��$-O]_�m���u��]�n{

�I�r�'�:i�H�y��<���R�j��j
��-�%:
�_�umϷ&�)v
aS�+<z6�`��~G��w(	;��8�
��1p��È0���>XhQ�/U�xfi�
92ak�>]뇅�d���.�gC1���r(�j

+6�%#�z5L�[AH����]9����++]���Kޘ{ []��
@>4�=3��|�ʰ)=5iϡ��D��;0ִ��\�U�; ~������}�*����v4|&�A�Z�p���c!$.����mȹ7S���4��Y�D�Yy7������F����ֺ�_s�J+S���ζB[��ZƄ؅>�7`��Mc��_��!"g/u�����{�+#�}=͖���(y�g��س���O�㐘=������1d�����f?<�:���
��mb�z_׻�̾�u������Ij�3cu���qD�Ϲ=I
;��F]���}�-��=R
p�� ��I���3"Nvȁ��ٙ,���/
���f��[��;�nO��7F1��=���
�CS���j����(5�Luợ*~�
�4!�
�
�ܭf
׆�:a�=
7����ta����~Գ�t5!��8�m����{���C�<����O�]bx�/���!�Z.m_�e���WM)����t����|�u���r]�����Rd�u�U�܃
+�B�Y�01�	t�� &|��E[��d���EB���ܮa���
�Gŀ�kyt��	s*��}#�ʥ
+6D��
u]�UQIߙ�f;D�ĕ���K������
�5��N-��>Ӝp�p���� ls�PV��C��7M��W\��V1$j}��d��秸l�������N*sHQ�iX�R�G���ܛkպf�����F�\e�� p���4O!� ��-�GlKq�-�e��S����
+
r�:��1� ~�r
��uf�^���/�0c�
�)~�-�O�J?���W�yq獵�d4Ԟ��v[�O� �����Ih��*ї?�8��AB������!g�M��E��@?�t�����z��U�fy<�N�EIx~�-f!7Q����w��7
u�����t������-_�D.t��
�-�ݙ����!�
Y��ON�o�D����ڞ�dzeԲ
�xh ��G�>�7%�
�;9�Q�v��⽡����0#�+���N�
�ڡ�1��?���~�$�]7��"�M��Fh䙥����\����������ז������ä̻��Ȥ=
<۔p}�'��]
+��
+	0
�{e4����'"N�#�����Xݻ�g�7����`�L���C
��ࣤ��rV�G�(5�
+�2MN�<�N</�d�Pq�o�7d���%����Ҿ�>JH�xc�����	���2���g��.�F
�
�2�n-���H~��z��6�
^
�t{���BU�5%)�O)����{RB��
����1~Q�c@�p]*d��蕆s����i1+�WKF�
��
Ô��IL�_����z.�/#��6U�}g���߉ =�H%}k��o�$��崒Վ�w:~�
%#���ˉ���Ӵ��[c�I���
3�
�w�~�7�q@^ٜ}����2V�ٹ�t��
+sjX��Z�>���+���I��\�g��h�]%2�!Ad�������<�n[M�|s�6���"T�S��ٟc�mj�"�8Ղ��a|O�����y�,�u��c
�E/�������G��!d��2��Lu�-_-1'��2�1l��==��%f�W�Ѿ{��*&��H��Z #-R����܍Ѣ7�Qd�[�@-��R
;>�\�m����9h�$&ȅ;Ӕ�3���S��V�C7�}�^�3��Yh*|��^��:	�֦ݕ��,��;�UV�'��3-9O�;
�ε�]j.���]%6sk�5LN�k����ya�KE-�i�{�Жyw�9�����SĴ�a\�����F&�%��n
ÃV{��%���u�a��Y_N��������#܂��w'�ܠ}%��А��X��)�h�/��}�ux���mL}��cQ��U9��U��=_=g1.c����WEG�� h�3��N!ۥda=rb�s���]�ܞ��X�{o�
0B�}��
����n��XFyp�8.�1����B$(*s�5}�]����s9N1�Xɋ���I{��S�s���ӱ69
,k��:Œ}��\v9!wg
i
@��*��蘮��A�qB�5v���C谧�]`T�d���ޢ[�ş��$�
+���
:�;h�D�� "����=5�`
�y�֓x�4��js(�;�Iw��d�%�!eA�bZa8�/�ӑ��Гİs+����Ă�湂�y�������,�R��W��?x���
$Zߐ	�[B�_�~ږr�ʆ���#��Løw�Y����*XoK�[nM�oI��P���Z|��h�W�W�]����o��J_m�]
aW�
� ^y�,�(5���
���ec�5
�C�(���B�z�XzK���i��at�f�}
���� M��6V��:	hX1gu���9E�u�X(�����
��`߶��xUФ#
�E��>������i���>���1H��*���Y�+x���E�
>��G�w���3���1���g4��+���3S䰳]%?
<�� ���(:a[€Z�
�[J�pK+B��y��I���a�f���|�Uh�^��1T�c�b�t�
o���N�0.����Rw���1|��9Y�����S/Ii�W��g=��+#��k�=����/
+~�53��>��Jc�������#v�
�L_�gUCʫ_s
ޯEn���́�כC�L#��*
�9�f�utԶ��TR��
���)x�R{�	=�O� ��ls��b6��<�F�w��;�#�X�[%�B�h�;�0�V]�����g'$�@��\RQ_W�m����[N-��11�]�~�0I.%!�.���\��M�
E�:Ĕ��K�j�Z'�>-4�>h)	9��xt����ج0���*�<��rI�^%�h_�ƺT�t���5	h���}��k���%�T��d>���#�uTp��;�ib�Z/�u��{��b�����}}ѻՎ�'��¯����Ѳ��μ�Rf�Y��"����z_���^p0p
���Ю�T���}s��2J��!������ʹi��-j/0��I(Ϲ/��K�������E��2b�]
+h���zw�vr��9����
+t\�S�����.���2�nJ�9�沷�	b�F�2��#�[�nm�d>4�YlH�cFƸ�L��q6�+>;����<e��"�s������۵�
+w
��Q�N
���?�{����.�s�b�W���;����7��@޸eĬ�1T�f/��J&�؆�*�gܛ�*
�#$�SΎ`|����_lB��
 g�
�2R��O��0"h
�K��K�IHy�Y��#�hkC�Oѿ�rI�����ԥ
��}�7� �yl��j+~�1P��:�nņOqr������ǩ%b.L]_��v����� c��#2vܝM #�ş.WD�8�֍�w��E^	>�>^
0ג�d����0%�[
N��je���[�JZ�)~��_��f
�3�{
,��;[��$@�@�j:����z+>��B~�LaRl|��6J][�dsng��'U��*j�/�[2����o� Bo\
xL��
�?�Ҟ����LΞ
[�=Yd�}c@K��z�[Ĵ" ��L�=*>�4�[�,x<ל�`��r�2��mA���e��}�_y_�nM�<**t����\{�㙶�{��m��O�f9l���ޜ�f94��,���%~�WC*5�g>T�Ү�6�>؞��%�V���Kք�Ҟ����婮��'E���U����qh��mp�Mrh� ��S?&����헑I�i@�
�a)�Ѭw��������*�3M��r�<I�>��
蘤�fWI.r�+�7��_n����k�j��f�5VV��3�n>�xs�8�vU���Ԏ�G[� $ڕ����{N'h
��͞�7�Y6�R���I�k8���G�C��
1
�9���GGm�!�M��`�����n]}���4�5�������*�sy�+���;
hI%>�"��T�̍Q�ϟ|�k,{>�P�X�O��Ԛ��4
���x3�B�����
+JׇXk#��
@�
��-���v�צ��;bz�K.`�L��6�&C�x q�yf)"�4�N��Zu��X���p���V3�^]3$�y6�V�h�`�fT�O��f[)a�
���J�+)9��1�\��Tѐ�}V�.�h%gη��3�$߱
]h�z>S�t�4��|���a�ֆ!cؘ==���gbfYԽ��e�
�0ו��*G��Iy�	f�W�6��i���2P�v�?끾!�z/����
H�� :�v~���͞�M��D��� ��"�%����SVf��g�׃��7I n��c
���X��ؼ�wLc��վҷV���/
Aߌ�n�$f���Q�+�"&�5A/�
b�D��������ҏN��SnX�Q� 
"w�X��E� �?����1Nα+x��)F�WM.�J�+=Eo7{!���}��L}�	zƒ�x�� 6w���/a��5�C�=���=��-�AW���:R�/�%���S	�z.g��,`�/���@ړ٦��[��/��@>5z�Lf?;�}>���B���Leͮ�Va�~��˸��E����}�g��8�		ʂ�������	�����
����+����
+sͲ�
_�w
�tk

i�D�lj�K�:K
�~
M)wd쐋�
)w׺ �
�<�\4B"H���	r��9�3���9B��<
���8^=_�k����?��G}}�~�qy�3T�M�Lp�q�
!KӇ��MH��=L�� &H��W��
��zuLB
���Y��2NL��㚉���I��׆`�N)�Vp�n
>gW��ݖ���5̈́Z$ռ�>R��>�4��p*�����Z ��=��
B`��V��5�v���^�P`�-S�橒�$)�.b��������{ݨ̇��������C/���E]�fܱ�Qҧ�
+�6��.���m�J�� &rk��CZh�,x��"�]2�,�!��{
zJ�SG�wi��
:Ǧ��vT���fn�0q�C�룸Bc"�:�.�N�ƃNpLa��nD�H���W���j/<b}��U��2��Y퇇�u�\
)��-B� ��׶�H�r����Z��=�Ջ�
+M�ڒ�0�4�"!��� ��8}�ֱٻF.�*Ŧεe<���/�hI�۠_��R����af��6D��}@��540~���逼��Q���4��Y.�=]��&����P����AX�����q�������c=*���G�@ƶ����� x�'幦6�>;��o�L�����������(���0��q�e�����Y���^Ɣ�
�-�d~^
 ��A��p�N-��Ҳ�6�@�"�w����*	y0��.��}Y��� ��pjj���J�K'���+N%�d�����Va��"X�y��y
��7���{�Zsϴ���+����^�nT�?�n����]�A���
�b׀��:�.�e� ��8åfa~��v
y�C#���;�
��	�>��V�����R�̵‚��9/��1���
+Vƛ�Z@��~r�1I ��p1�{�_�����}M��)���}���)L��2l[�O]
��+�^nNPJ�:A�GC*q�ʾ[��A�iH
0^̾�M���
���qiX�}#_�o��}}�=j@�S6zp��}�����ف��>�
�G��]�F��6��\h.��ޒ�R���n����q	��Y@�C�ׇ�>:���K�?���Ū��ya�]G�]&
,0y���ν��ό���ʶ�����qv��
l��=�����n�2<j�V2h�9��LS�����@��h��uOZ���T ZW�&� _mW�2�J|ƶ
�&o,� �)���w�.��
+b�Y�Oޑ��
,��X��Q�5��_�|sj��$mK0�˽�8cC����������xE��$&a������x��m99ok��i�R
+
:6�"g�6��y�r&D�
\��P�c��J(9�T�z7��J[�Ǖh��4�|�
N�
+���]�ug���L[�5}S��B_�7ecv��1�m���
+�ri
'k*~i��s��sd̞�b�d�
���}����@aȯEN��06n�����~�5��;W���e*�El�S�Z�,~c
�d�'�%N��P?v�X7�o�Z�0��
��

��@�-6g�[��~��`l.�_hB}r
��-�ojN��iF���dz�,�S̴'ǚ�?��
�$o��"l�KC�s�H%��`o���3+lviY��6c{
+��Q2������c��j.aC�.5��+Vڙ�S���U?N��o:Fy[]�Ŧ�{���K��Y�W��[��=5n
�'Z')�9��&AFYE�p�Dy��:��L�pyk����9*٢$��H�;��v)$fW�/��
��Y���'����Sr|�١�Q���Z����i��.�B"/�y�ڑ	~�����1�C�􅶊�˝��
����۶iB��45�E���']�V�HxD��V��'{
�|�	�%:����۴
�g��iw�W��役�1����c�j� ���쵱�𹡥��b&�
t}����6��6� ���K2f؅����K=����KS��W^��Y���s
���
�o��[�(ŀ�`z�U���
�l�1!��Z�K�6y���sh���X�\�x}=�=&�k�T�~WS��QK�E����� M}���^x�EL.ڛ�ToJ0�s����'�.
+;�Zڮca,2J�ȝ�A�C_ݸ��nJhy�����
*��r&ti���0��\�%n�R�m�_ȩ�Nה~��v*ek
��W��؜yk��:�C.�K }I:���ڑ��v��D��<|c�4n�/��U�Jw+����
}7�ǎ���g�^�QQ|���c�����u
}e힮��Q�Q.9�4�K#�r�Y�m�#&���E;&H)�ib��"�ИrWW�uo���Pu�sA&�x0FO�3���4A��<א��4��U7T��oG�8�|�YB���l��\m�� �1�)� �/�C�6��1Ҫ从i|�[_��{�2�O0�>h+��[m�ǣ"V�5r��S��'g���"l�M�����	�������j��+��?���^����U���Œ{K�e_��k���"�����ݘ�{m����p��Ś���s��������n	$rWGGy�4M#�
�y��)��)J]_�IP
~%/�ɟ���f���>7��#:���t�B.-�a#�G9�ݥ�'�I7eU�O�{�_�uЏ�=�
e��"'�nO���rzWǦ
�r�{3�[��9T�b��nWR�{
�C�YA�]ǣ/�bV�
+>�%?
rT��
������o�r��o�Qa[K�^�ć�i8׷��?{5��%�3;��9� �̫��v�Y�]��JB�S���[�SlFb��$*���t����p�f�;�8�b���{���id��Rm�U�nG�_Z�*
�M��5ۓ�t������^t��0>�����d���PU��
өc�ݳ�j��6
��d�l����	iu��iWs��bj����u'<�z/*��bs�C	/�17xm�փ�j������]=�g�4�
��R���#>
�'����za�IL���cZ�L�IJ�ݔ�˶��2
+k �nZ��毎���s�2�L��3ߢ��6�QX��0���_\���MW�k��}+y5�.X�Sʄ[Fq��~��ծ"��朻rN�)/�v���w�� A^�-�(*j}h�/~��V��S�rs0��m

���8>��r�.��5��fy��YVW�����3���ǚ�GG,��F�Zń\�82|��A��y<FN�
��SLj�b�����Ҩ�QT�B{�����{��k�����
��n/u}�u�����0�@O�
��?Go��f��
��Tfڙ�tꝺ+mi��@qwwKqwW H� 1BB\�A��&�S��|�Y����7���d�;'��}�뺳e�N��<
+��u5�.kj߬�k"\���^nӆ+��"����
�o��g9�&��/�d��@��yY��aT� ������� .1�~5!.���\��ω^���t|��w��*{�*�xy��"|��>1 4���n&W��kH֒��
�o{NA��������4��!CC���t�^��� 
��gZ��c��y
��m��
 ��;B�XF��A%)��U���W��E�1�əẁ=Q�?U��95J��p8p�	��8���	~\{Ņ)5�?S32�~��kvq�̆n�ٔ-�rCI\U�27M�
��V?.���`s��?ݏ���!b��)!#�`^�8�ǖ�jÕ���_sJ�m:E�;c�֣�F '��
�m������m�@0֏JrI��]|V at O��Q*o�k�u�|8��Wq�
N�w�K{1i��\�I�R��y�E9
��CfT~��S��]M���?�q9S
+h���{aB
+�������
��Or8�7���K:zݦ
]2A
+'��/Sݞ�}G���Gɍ{�T��Q��|�W���~��S@]7Pˎ���ШyIãIq��11�Q?��r]�ß�9�CZD���w���>?�[�pQQ�l����޼���
+hZSƍS�
���
�����z�oW~���?���#ޱ`�����X�&;�r��䪍!trHIH��F���5?�Pj�9�W�����Wޖ�kA
�C@^�*�_�fE�H8rLp�9~f�>�Ư�?�A+tr�	A%��/�c'7n�I
��(��>a�
+O_14F
8���VT�Ʃ��
��� |w��uQ���Y�:t�MC-~0׏������^6SR��✠*�AX��Iq}�
�{�������ژ}둆�%����ic����ٚ��uHW�z�B���7e[ l\
�%}' ��q�/~B��iR�i"t�	�X�4���؇�|�׉��#9�@\�ҵa�ǩ�vv��y9�ӴS���<t�=
�yjR�35!�.��R��L(��K
+D̢��u�F��'a��	͟'p��~|����Y;�
���~�1��*h�����
��b0���(31��?��
�o#��;I5^��		�æ�\�iA�M�׾
ךּ7��}2����Ī
�=ʥ/H՛nc{��X�>�A>�2��Th�L*>�{��9
��
+|ʤ�����G/��_�
���7:�~�@�Ni��-7�1d����!�n&z�Kl�<��k�Wn��ES��(OG���x��Wr��!�~k��\qQ@!�a��c��o�ޔ
P�<�v��
+<��迖��=?�u���v�r� -��mNut�d���t�x���^V�S�:@�u��s=��_z��N���74���Al�������9nLj��6��v��M��e
6�׏�WJ
�Q	�Ƕ������I
+|��&m���������jү�ubj-������b?4b���I->?�+���B$̩�̺O�;���w
4�Q_�M,iVV�t��~INH�s���IP�S�kb
��Փ���b��`T(���Ѝ)��}�h͹���
+�uҚ�����Z�����������P���l��9�A���n�3{k�.d��Al�ŭaf�b?�/]��
T�B>e�[}��.欰���u5<u����WTts�K�
���ڰ�_܄���w���]�F��O�LG�0D=�ft��`�뽣�]>T�?���ԣ���6�S�ر�VJ�Q��lW�m�(��� �Ʈ
[i��ؐ����o�t�3�~6'=l��Q|�
�6l;X��b�&��j��3��8
�;� �3H�����x��C����Ќg�W���|��y}LH���	�
�k>����*`N��B�z��y/72�o
z	������^l9�f��u;.Ղ+ZsrpKfj����=�	�'��X��T�������my7F���+I��e��_��?���?�Y
�猤6��N�,��#��Vf����c)�&D��Y�a#T8@�2C%
NQ���Lj�E���T>�V7%|�o�
�{6=,��(���g
�<�$"C��
	$������B����-<ue [...]
=���-�a�<�kè��Z�����7��������c��+[|ь�&j����LO壩���KMo�u�� ��c����Ӱ[>:���a�;
��T���+�o���z�g;����������u`cW첉V�s
&�w7��KPr��.����=ӇM��a7]4PЄL
+���Mģ
��9%6GîzB*�𗷽2�˴X�f%V�) �5��}'���(��Ѝ*�0�K}�
/���/�6)�K��cd���lI���Ó� >�҆�脗]ԑ�n
�3{[�o�cO�4�����w�BO�7�u�6ŔF������C�+�
+� �� ���^I�%_wڅyEu��
r0��������~ ��������s�g� �1�*�s�R&�k��
>��ώ8�<L�|c��i�=�xYN41�Xy��K9���f��Hu�-�����FR���mE�o[�ͻvb���~~Q��m�M�Dݶ�����I���=�n:���$.騍#†�]���K�/�`�F%7m�̿z �.�QI/*����*@�3��ՓJB��]n� ��VH��
���{K� ���G��ZH��GE�=�<Ԝ�;��\�ƍ��!�~s�V<iEf�͍����uu�~F�s�AL>� Z���.P܅��ث#���f^yx܃����Y6�-"~I���%��Vt�� 8rV�����	��
���-+�e�u�p�M�mQl�����>CB}0je�><��|t�W<�S�״�䠼�}HQ�,��� -{��d!8 
�_h�w�Q���o[�Y
���h�~1b>�:�Ϲ�5�
�y�G��l�=��Fe��=�����܇뚼�۶����Q_'��o�G��
�/�~�� [...]
;�q�ŧ
��֌��~�%3�����Zdꁛ���ɖ�>p��
6nۄL�4ս
j�LI>���}e��l⊞T��b��]zh��� h�1q�A�c_{�9����^�V߱0
����'��� q衋_�bF
+N���b�ui:�
�����ڧ
AՃ�ƈ����:��/�4��Q̀�	5����#��i�3�W?���4����Jw{]8��ÙL΋}�}͈�Z�y8�^v�BK;�(|v�r���̎���U�bT�^��CTmX��ޮ�;f��?5���G[>\
�W�ݴ��k#4(���U+���q�G�{Y�}'�pU��h+z�d���t��^�f ��d�N���1�kX|P	Jt��_kp)����+c
5﷬4�YPq4g 
�h��8-ߧ��m+458T�vA]����8�y%
���k�jDҚ	��:��*�9&f��h�{P��u����w'G���DU��T�{U���	iS�����Ƹ��{�noZ�����W+&pƮ��
�٬�	^��y������)��Lޏ�.�Y~���`��;��VnY�>펠K�
��IEcʚW�	`�����.�d{��cF\ŸkF|�CPzc �S������V����q��=5b�Ϲ���m�v�V<�bc�q�^�4�K���j�8/�y����
+�����#��/~���x�޵Rٚ�V�=�����
3�dU�N
+���3 ��w4=�hJ��]��g�魋���J)�������=�sbo�)������6���
tpP
�;ꏹ kx�(+�6T�|�?�ź�&zDž��sR]<ʺ_�m@�~ub�쐬-�`Ä��:Jiڴ�
+gM
p���3�%L�4���3��I�g�tm� �8f��^v����rE�(�l�y�F%�!(?)�{wv���^��qY�i�U�*���
S݄��!n��
+���G$��qEˀM�l��e|���m���'HP at S��p�c�jo�K���������P�n%�,��cd��� *�Ω|���^�
+J
oY�-�ܿ�^�
i����v~�y
3�>-͉��ab?�	�+#d�4⒊����Y6��
�O�Q�{��)I�M''킓�qg�@(F��
�
s{��m�s}��w���?8EO~�==>ۑ������
���O�kc�~v����}� B�CO�d��6mM	ߧ��u;
9�ȿ�����g��v�Ċ
:#��}
+�U?��}��!
endstream
endobj
7 0 obj
[6 0 R]
endobj
46 0 obj
<</CreationDate(D:20150504225025-05'00')/Creator(Adobe Illustrator CC 2014 \(Macintosh\))/ModDate(D:20150504225025-05'00')/Producer(Adobe PDF library 11.00)/Title(front)>>
endobj
xref
0 47
0000000000 65535 f
+0000000016 00000 n
+0000000144 00000 n
+0000049634 00000 n
+0000000000 00000 f
+0000052685 00000 n
+0000445389 00000 n
+0001618279 00000 n
+0000049685 00000 n
+0000050069 00000 n
+0000445575 00000 n
+0000055521 00000 n
+0000055408 00000 n
+0000051938 00000 n
+0000051184 00000 n
+0000051377 00000 n
+0000051425 00000 n
+0000052192 00000 n
+0000052254 00000 n
+0000052623 00000 n
+0000052879 00000 n
+0000053132 00000 n
+0000055556 00000 n
+0000445459 00000 n
+0000445490 00000 n
+0000445649 00000 n
+0000446208 00000 n
+0000447353 00000 n
+0000455016 00000 n
+0000520604 00000 n
+0000586192 00000 n
+0000651780 00000 n
+0000717368 00000 n
+0000782956 00000 n
+0000848544 00000 n
+0000914132 00000 n
+0000979720 00000 n
+0001045308 00000 n
+0001093575 00000 n
+0001159163 00000 n
+0001224751 00000 n
+0001290339 00000 n
+0001355927 00000 n
+0001421515 00000 n
+0001487103 00000 n
+0001552691 00000 n
+0001618302 00000 n
+trailer
<</Size 47/Root 1 0 R/Info 46 0 R/ID[<A150723D1BC640059E4AA15F6E5D55B4><A94F543560EB4AE4BA18C480915C9EAE>]>>
startxref
1618490
%%EOF
\ No newline at end of file
diff --git a/doc/_static/logo/sticker/iheartpdal.ai b/doc/_static/logo/sticker/iheartpdal.ai
new file mode 100644
index 0000000..f784ec8
--- /dev/null
+++ b/doc/_static/logo/sticker/iheartpdal.ai
@@ -0,0 +1,6537 @@
+%PDF-1.5
%����
+1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[7 0 R 52 0 R 96 0 R 140 0 R 188 0 R]/Order 189 0 R/RBGroups[]>>/OCGs[7 0 R 52 0 R 96 0 R 140 0 R 188 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 51328/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c014 79.156821, 2014/08/29-03:07:50        ">
+   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <rdf:Description rdf:about=""
+            xmlns:dc="http://purl.org/dc/elements/1.1/"
+            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+            xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"
+            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
+            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
+            xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/"
+            xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+            xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+            xmlns:stFnt="http://ns.adobe.com/xap/1.0/sType/Font#"
+            xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
+            xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+         <dc:format>application/pdf</dc:format>
+         <dc:title>
+            <rdf:Alt>
+               <rdf:li xml:lang="x-default">Print</rdf:li>
+            </rdf:Alt>
+         </dc:title>
+         <xmp:MetadataDate>2016-04-25T07:46:46-05:00</xmp:MetadataDate>
+         <xmp:ModifyDate>2016-04-25T07:46:46-05:00</xmp:ModifyDate>
+         <xmp:CreateDate>2016-04-24T17:09:23-05:00</xmp:CreateDate>
+         <xmp:CreatorTool>Adobe Illustrator CC 2014 (Macintosh)</xmp:CreatorTool>
+         <xmp:Thumbnails>
+            <rdf:Alt>
+               <rdf:li rdf:parseType="Resource">
+                  <xmpGImg:width>256</xmpGImg:width>
+                  <xmpGImg:height>228</xmpGImg:height>
+                  <xmpGImg:format>JPEG</xmpGImg:format>
+                  <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA5AEAAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQV [...]
+               </rdf:li>
+            </rdf:Alt>
+         </xmp:Thumbnails>
+         <xmpMM:InstanceID>uuid:d434f88f-764b-794e-971a-4d57016db4e1</xmpMM:InstanceID>
+         <xmpMM:DocumentID>xmp.did:155462a5-be99-4e5a-8db0-15e476812323</xmpMM:DocumentID>
+         <xmpMM:OriginalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</xmpMM:OriginalDocumentID>
+         <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+         <xmpMM:DerivedFrom rdf:parseType="Resource">
+            <stRef:instanceID>uuid:d1c078a0-2746-42b2-b0d1-25aedff8fb1e</stRef:instanceID>
+            <stRef:documentID>xmp.did:1b6690ed-28a8-c141-9479-b6a9cf6be651</stRef:documentID>
+            <stRef:originalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</stRef:originalDocumentID>
+            <stRef:renditionClass>proof:pdf</stRef:renditionClass>
+         </xmpMM:DerivedFrom>
+         <xmpMM:History>
+            <rdf:Seq>
+               <rdf:li rdf:parseType="Resource">
+                  <stEvt:action>saved</stEvt:action>
+                  <stEvt:instanceID>xmp.iid:155462a5-be99-4e5a-8db0-15e476812323</stEvt:instanceID>
+                  <stEvt:when>2016-04-24T17:09:23-05:00</stEvt:when>
+                  <stEvt:softwareAgent>Adobe Illustrator CC 2014 (Macintosh)</stEvt:softwareAgent>
+                  <stEvt:changed>/</stEvt:changed>
+               </rdf:li>
+            </rdf:Seq>
+         </xmpMM:History>
+         <illustrator:Type>Document</illustrator:Type>
+         <illustrator:StartupProfile>Print</illustrator:StartupProfile>
+         <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+         <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
+         <xmpTPg:NPages>1</xmpTPg:NPages>
+         <xmpTPg:MaxPageSize rdf:parseType="Resource">
+            <stDim:w>8.500000</stDim:w>
+            <stDim:h>11.000000</stDim:h>
+            <stDim:unit>Inches</stDim:unit>
+         </xmpTPg:MaxPageSize>
+         <xmpTPg:Fonts>
+            <rdf:Bag>
+               <rdf:li rdf:parseType="Resource">
+                  <stFnt:fontName>MyriadPro-Regular</stFnt:fontName>
+                  <stFnt:fontFamily>Myriad Pro</stFnt:fontFamily>
+                  <stFnt:fontFace>Regular</stFnt:fontFace>
+                  <stFnt:fontType>Open Type</stFnt:fontType>
+                  <stFnt:versionString>Version 2.106;PS 2.000;hotconv 1.0.70;makeotf.lib2.5.58329</stFnt:versionString>
+                  <stFnt:composite>False</stFnt:composite>
+                  <stFnt:fontFileName>MyriadPro-Regular.otf</stFnt:fontFileName>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <stFnt:fontName>Bauhaus93</stFnt:fontName>
+                  <stFnt:fontFamily>Bauhaus 93</stFnt:fontFamily>
+                  <stFnt:fontFace>Regular</stFnt:fontFace>
+                  <stFnt:fontType>TrueType</stFnt:fontType>
+                  <stFnt:versionString>Version 1.52</stFnt:versionString>
+                  <stFnt:composite>False</stFnt:composite>
+                  <stFnt:fontFileName>Bauhaus93.ttf</stFnt:fontFileName>
+               </rdf:li>
+            </rdf:Bag>
+         </xmpTPg:Fonts>
+         <xmpTPg:PlateNames>
+            <rdf:Seq>
+               <rdf:li>Cyan</rdf:li>
+               <rdf:li>Magenta</rdf:li>
+               <rdf:li>Yellow</rdf:li>
+               <rdf:li>Black</rdf:li>
+            </rdf:Seq>
+         </xmpTPg:PlateNames>
+         <xmpTPg:SwatchGroups>
+            <rdf:Seq>
+               <rdf:li rdf:parseType="Resource">
+                  <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+                  <xmpG:groupType>0</xmpG:groupType>
+                  <xmpG:Colorants>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>White</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>Black</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>100.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Red</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Yellow</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Green</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Cyan</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Blue</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Magenta</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=15 M=100 Y=90 K=10</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>15.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>90.000000</xmpG:yellow>
+                           <xmpG:black>10.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=90 Y=85 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>90.000000</xmpG:magenta>
+                           <xmpG:yellow>85.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=80 Y=95 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>80.000000</xmpG:magenta>
+                           <xmpG:yellow>95.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=50 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>50.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=35 Y=85 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>35.000000</xmpG:magenta>
+                           <xmpG:yellow>85.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=5 M=0 Y=90 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>5.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>90.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=20 M=0 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>20.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=50 M=0 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>50.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=75 M=0 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>75.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=85 M=10 Y=100 K=10</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>85.000000</xmpG:cyan>
+                           <xmpG:magenta>10.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>10.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=90 M=30 Y=95 K=30</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>90.000000</xmpG:cyan>
+                           <xmpG:magenta>30.000000</xmpG:magenta>
+                           <xmpG:yellow>95.000000</xmpG:yellow>
+                           <xmpG:black>30.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=75 M=0 Y=75 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>75.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>75.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=80 M=10 Y=45 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>80.000000</xmpG:cyan>
+                           <xmpG:magenta>10.000000</xmpG:magenta>
+                           <xmpG:yellow>45.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=70 M=15 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>70.000000</xmpG:cyan>
+                           <xmpG:magenta>15.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=85 M=50 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>85.000000</xmpG:cyan>
+                           <xmpG:magenta>50.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=100 M=95 Y=5 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>95.000000</xmpG:magenta>
+                           <xmpG:yellow>5.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=100 M=100 Y=25 K=25</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>25.000000</xmpG:yellow>
+                           <xmpG:black>25.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=75 M=100 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>75.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=50 M=100 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>50.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=35 M=100 Y=35 K=10</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>35.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>35.000000</xmpG:yellow>
+                           <xmpG:black>10.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=10 M=100 Y=50 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>10.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>50.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=95 Y=20 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>95.000000</xmpG:magenta>
+                           <xmpG:yellow>20.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=25 M=25 Y=40 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>25.000000</xmpG:cyan>
+                           <xmpG:magenta>25.000000</xmpG:magenta>
+                           <xmpG:yellow>40.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=40 M=45 Y=50 K=5</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>40.000000</xmpG:cyan>
+                           <xmpG:magenta>45.000000</xmpG:magenta>
+                           <xmpG:yellow>50.000000</xmpG:yellow>
+                           <xmpG:black>5.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=50 M=50 Y=60 K=25</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>50.000000</xmpG:cyan>
+                           <xmpG:magenta>50.000000</xmpG:magenta>
+                           <xmpG:yellow>60.000000</xmpG:yellow>
+                           <xmpG:black>25.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=55 M=60 Y=65 K=40</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>55.000000</xmpG:cyan>
+                           <xmpG:magenta>60.000000</xmpG:magenta>
+                           <xmpG:yellow>65.000000</xmpG:yellow>
+                           <xmpG:black>40.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=25 M=40 Y=65 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>25.000000</xmpG:cyan>
+                           <xmpG:magenta>40.000000</xmpG:magenta>
+                           <xmpG:yellow>65.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=30 M=50 Y=75 K=10</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>30.000000</xmpG:cyan>
+                           <xmpG:magenta>50.000000</xmpG:magenta>
+                           <xmpG:yellow>75.000000</xmpG:yellow>
+                           <xmpG:black>10.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=35 M=60 Y=80 K=25</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>35.000000</xmpG:cyan>
+                           <xmpG:magenta>60.000000</xmpG:magenta>
+                           <xmpG:yellow>80.000000</xmpG:yellow>
+                           <xmpG:black>25.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=40 M=65 Y=90 K=35</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>40.000000</xmpG:cyan>
+                           <xmpG:magenta>65.000000</xmpG:magenta>
+                           <xmpG:yellow>90.000000</xmpG:yellow>
+                           <xmpG:black>35.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=40 M=70 Y=100 K=50</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>40.000000</xmpG:cyan>
+                           <xmpG:magenta>70.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>50.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=50 M=70 Y=80 K=70</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>50.000000</xmpG:cyan>
+                           <xmpG:magenta>70.000000</xmpG:magenta>
+                           <xmpG:yellow>80.000000</xmpG:yellow>
+                           <xmpG:black>70.000000</xmpG:black>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </xmpG:Colorants>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <xmpG:groupName>Grays</xmpG:groupName>
+                  <xmpG:groupType>1</xmpG:groupType>
+                  <xmpG:Colorants>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=100</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>100.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=90</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>89.999400</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=80</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>79.998800</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=70</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>69.999700</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=60</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>59.999100</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=50</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>50.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=40</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>39.999400</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=30</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>29.998800</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=20</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>19.999700</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=10</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>9.999100</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=5</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>4.998800</xmpG:black>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </xmpG:Colorants>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <xmpG:groupName>Brights</xmpG:groupName>
+                  <xmpG:groupType>1</xmpG:groupType>
+                  <xmpG:Colorants>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=100 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=75 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>75.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=10 Y=95 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>10.000000</xmpG:magenta>
+                           <xmpG:yellow>95.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=85 M=10 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>85.000000</xmpG:cyan>
+                           <xmpG:magenta>10.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=100 M=90 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>90.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=60 M=90 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>60.000000</xmpG:cyan>
+                           <xmpG:magenta>90.000000</xmpG:magenta>
+                           <xmpG:yellow>0.003100</xmpG:yellow>
+                           <xmpG:black>0.003100</xmpG:black>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </xmpG:Colorants>
+               </rdf:li>
+            </rdf:Seq>
+         </xmpTPg:SwatchGroups>
+         <pdf:Producer>Adobe PDF library 10.01</pdf:Producer>
+      </rdf:Description>
+   </rdf:RDF>
+</x:xmpmeta>
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                           
+<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[9 0 R]/Type/Pages>>
endobj
9 0 obj
<</ArtBox[18.8456 165.603 556.565 637.742]/BleedBox[0.0 0.0 612.0 792.0]/Contents 190 0 R/LastModified(D:20160425074646-05'00')/MediaBox[0.0 0.0 612.0 792.0]/Parent 3 0 R/PieceInfo<</Illustrator 191 0 R>>/Resources<</ColorSpace<</CS0 192 0 R>>/ExtGState<</GS0 193 0 R>>/Font<</T1_0 186 0 R>>/ProcSet[/PDF/Text]/Properties<</MC0 188 0 R>>/XObject<</Fm0 194 0 R/Fm1 195 0 R>>>>/Thumb 196 0 R/TrimBox[0.0 0.0 612.0 792.0]/Type/Page>>
endobj
190 0 obj
<</Filter/FlateDecode/Length 1553>>stream
+H��Ko
E���+z	�i������"[b��"A��,"�=���k���BB��tg���8U}��ks��ڙgϯ��ns��`�f��?o?�߶��g��g}֟��g��;�e�����
9�c�6FWLq�:ߪ�{�iJ�����}��w��!�}>��n�S�-�s�DX
�M�J�%�9�huH��V�������n��~��l��P/K��^mN�\}�d|EM�Ȼ��y�8G:�(�p
����K�D
�BǞ�&4�Z|�6�{ �d�ˏΑ
lY���C?}Y��)���pI�6���d{���m$�{j��p��S<G���<6��3�{�ADYN��L
3�kı7pp�[�DA'�
�
M,l!Y;';�����y�*)N+�P��n{��:�y}3F=ss������'8��p�e������ �h�
z�&�Ʉ��/8T��kW�l(�
���$�6��
o�c3�zo
v�D,=����� s�'�@x��|D�c5!ڔ�sc ��s���Z�/��Ct�� �ހU'~��Z눉�]x-R��5�j@��D!�8%DĦ�M8�Їb� ��
�Wb�}M	�G��#֗Q"A��9����dluT���H�+�r�n2f�u��-c$��O�*0Ol��'�>�[W�(��GP�Q�Y�G�|������H�wen�,kKP�
+�MrDZ��U�R�(���+sd"
7�MvN%A�U�E�AC|�=��\٫+>���n�O�}-�9���;3_>�Q&N_h�,��
+����~}�+��
���W
��
�7Z�����B�o��}��[g�����hn� ����
z?y1\j1'�/������Y�d
�ӿ2�8¶[������F�/ц���a�y�oOX��9�� Ps�N�k`
�g���H���$i�1�ϩ�o?7N�o��y�4k����b���8\����Q<��G�e��gh�%7�
�⋕
+��35��
u^��qE�hQ�'F�?�����ˡ�������O=k�Dy?e�m�U�d�EbR+

�NNº�.����s��D��҅��Ii4�5P�H沬UT���)�v�zs_+
s�O��Z���$*��,��~�R��S�bY��ܡ��cq� Vn�i�.�Hc:]V;F�y�wG���)����?]ە�
��s��|	����Y{g�NU3�K^i_�-X,�/�Ĥw-����]zo~�;�p����
���b���+��;�
��.�i�����t���;,F��M+���~���E�U�
�øms���z�WЄ�>��[�"1#m���w
�7�u[E��*�夐�'In~�V�/b!�kv��*�o/nVE
�X:�Q�
��SR���m,
74�vӗ���!��|| �IF��l��L�,t֋Ն2 ��2�S�ⱡ�a��Ek�#`.��/�P
��-���:V�<�P�>#D�Pq0�A|�iɔ>���m
,��ĕ�ԕ%�+�����E��`�m����Á(i~�8�Є��?3S�/��Ƿg)|Y|���_�!���;f�'3��d���(P<Լ�鋗�f�K� ܝ�
+
endstream
endobj
196 0 obj
<</BitsPerComponent 8/ColorSpace 197 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 99/Length 484/Width 76>>stream
+8;Z\699-n4%./JUlUA,>?Fbhmfog]$S\YNYKIPQ4kU;ni6UWbS?`Y&n&q[r-0Gn[<
+M!/&)k/nJB#$;f+Krh3u"(X7$ZW0Lb;/Psd#.A&DEiG^l.k\Tc9'>MlI+8E*kZ:rS
+:`aoJisMRfD!UNf]&T)3+K7k4jID&##NA(-Mba1OHpCqa76]tq>)Fqf>**s)RPLrq
+a]nZg^D_t<jk%_hO-SA"\>3B1>/.[n42FI[0`1r&nU51o8+;4;L`.`Snip3FL't6S
+4&TmXDs:Q/KX?Z at n>q;q=0%@2F>h*'3dTDYj884dO*V_UoC(N=5;gtRM1"R_i+ShE
+EBkmC><#DESrc.?3\_[p:C#hrl1eLGV>"*a.MEFEN at rpB\M!0sC;&G4IOQDY-0<@4
+DgqtNq#UuK54\*LJWV*co>pEJR/$WDB[kpN10%0%T5f:0CJ%KPJEs at ah3DbNEAPeF
+7U[Oe?n`Gs+2.pZ$4LYA~>
endstream
endobj
197 0 obj
[/Indexed/DeviceRGB 255 198 0 R]
endobj
198 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
+b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
+E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
+6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
+VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
+PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
194 0 obj
<</BBox[220.259 599.937 343.985 561.376]/Group 199 0 R/Length 71/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 193 0 R>>/XObject<</Fm0 200 0 R>>>>/Subtype/Form>>stream
+q
+4 w 10 M 0 j 0 J []0 d 
+/GS0 gs
+0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Fm0 Do
+Q
+
endstream
endobj
195 0 obj
<</BBox[241.583 426.527 365.31 387.967]/Group 201 0 R/Length 71/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 193 0 R>>/XObject<</Fm0 202 0 R>>>>/Subtype/Form>>stream
+q
+5 w 10 M 0 j 0 J []0 d 
+/GS0 gs
+0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Fm0 Do
+Q
+
endstream
endobj
201 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
202 0 obj
<</BBox[241.583 426.527 365.31 387.967]/Group 203 0 R/Length 140/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ColorSpace<</CS0 192 0 R>>/ExtGState<</GS0 193 0 R>>/Font<</TT0 187 0 R>>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream
+BT
+/CS0 cs 0.668 0.598 0.586 0.441  scn
+/GS0 gs
+/TT0 1 Tf
+0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 37.9331 0 0 35.5889 241.583 396.8643 Tm
+(pdal.io)Tj
+ET
+
endstream
endobj
203 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
187 0 obj
<</BaseFont/HKDDKC+Bauhaus93/Encoding/WinAnsiEncoding/FirstChar 46/FontDescriptor 204 0 R/LastChar 112/Subtype/TrueType/Type/Font/Widths[378 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 588 0 0 579 0 0 0 0 290 0 0 290 0 0 559 579]>>
endobj
204 0 obj
<</Ascent 899/CapHeight 667/Descent -250/Flags 32/FontBBox[-113 -250 1276 899]/FontFamily(Bauhaus 93)/FontFile2 205 0 R/FontName/HKDDKC+Bauhaus93/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 180/Type/FontDescriptor/XHeight 487>>
endobj
205 0 obj
<</Filter/FlateDecode/Length 2449/Length1 4361>>stream
+H��WkTT�����
#3<Q�2(j�
08��T�I�
u�("d5/k@��,l�j*�aS��`���j�Պ��E�����+]+*�v�;�G�m��+�z��f�{�9����}ϙ[�bU>x�
�A�tk
x����\���sK, �$��T��s[�gX����G�:�~/ _W������ @���B|��F�J˵�&�o_V�뼽�V)��m��r�k��z㏴��������.)^Y�7�f���Z���
��@6� z\�M[)J�%��F⌜�@Q�M�\iY$�t��b�Z��%�1T�����(�HB�7�����F�D���0����k2��
+
2t���0)�1bd��c
���hkLl�-~�}��&$:
����ؤ�S�N�>#e�ُ�Ι;/-}~Ffւ_<��S�\�(�	k~�v��W_��;v־���w����?�y�����54�?����ܼ�
��/_ұ���K5_�ܼ���ʵ���ZZo5>�����?_Vq�{�ŭ���������?���e�68�Y�
/?_�����6o�M�}mۡ?���
?Q��ף��L�t&2'�����
+�%��I��z�
����R�"�J)R��&H{�-�j-��%�b	�DYfX�-�#Oܡ��r
;���W�V}
E_m��_
+��I��+������C_DQ�� ���!e��R��,%�G�{���t6w
�l��߹�sw盝q
;>rw�/�Ϻϸ[�-��C�����G�n�ɞ����
ȅ<ȇ�P �PK`),�`9���u���d+y�T�դ��CI%�a�a=�!}� "�$���:�r����q��Ч����Qy�&�2������j��(]�ir�#u^�qaF��&Rj�
+�"$�C����1$np`�a�
o'kr6T���"�_�ɩ\[�����+7���w0V��:��VG��I�������
����"P/���hu�#�ȁ��/�?����`4�%4xQ������9?�o���̸8�8���##,b`�`[
�
yE>K��!Ar��%f�:bI������@��o� rj���ĉs�8n�)�u��7�b
���!z���W��0 ���
��#SK�Xh�����~������
���`�,����n���� ��}���gHY��s%
�)�>9:zBz�c��q�Hצ�
2��/�y#2
ҏ�;�
xM؉��
��


����ꌬ4tz�В
8�@�.����7��x�`�Q��������U��yvqQZZQ1�u(�E.MI��KMY����]U���oW�a�{�au���
����7�哻��
��^���x�s���4��N=Y��Eo

�VV x���oI�aq�-.�'I|�c~F�#c>wW��\��JbϷ�(ycV��
&&e�ʳ��|OB�J]�Zd�}}�I�M��'��-$ �	
X[	��#��,����M�q�Y
.�HZ�*��H���j������Kf%&��xV>�#��������k��a�֕_[������x�W�6�J%X�]��z��Q�s�Ф+�{�Q�{���
�cW=�K�yX'@_
WtE�F
�hK���
+"��
P�=�!�q�j�Qp`�E|5Y�2q
1��(����?����0�'A6�|3���P)�`ڡ�kw�];������7���K|
m�(u0�G]��q
7}�����J3���W�yQ��G`���$�9�I�U'Ǝ������?��jQ/;=�>��>
\4
Ѧ��碜���Ж�(�u
����v|�{��q�8?� ��L�����n����$�UUޫ�
+��H��(���� 7����y��[,7lZ
�B�b�<V�*�@��{ċ~	Ql��M�<�~ȵ��C G �*�@w)ߩ��B�('07����z�^�#����q��
rT��%���}/�k��B�)o��w/�@��r���Ws����m��:bX��|�뫆�����r��x!��s��1(��'���=�0�hod2�f�@�14��5�1 Q�h0�1�'D�~�K��pW	f��mhO@���|�
yb�
��i��#�1o�\;�
+e� �7��Q-�Q|#�|�|QG�P��hGt"71_�hoAD
/�2^�|�=;S �G[�O�Y#�}�Tmo��
����o귝���v�T)�X�+.i߀�+��,���O@��Gh:��M�E�'�oF
�Z��N���5M��4����4�G���� 
�FM/^\�ڹ"�4���bEQAa���`�r*$�Ϙ5eʬ�Q���
+��V&�~��_b&�p�E�
���H	C9C"C�[�s�0T���NJ	P̐����$��T��7�
z�h38�(���`�A@Ӂ�
��TS*�
����
װ��
�����Al����
+�����  $���
endstream
endobj
193 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
192 0 obj
[/ICCBased 206 0 R]
endobj
206 0 obj
<</Filter/FlateDecode/Length 389757/N 4>>stream
+H���uT�K�tK���KJI,��t(݋�4�K���%ҹ�H�4J#�Ғ�(H
+w���q�y�y��~�3��̙g�<3�� �Y9El
+ @� ]��!O��-@� � �\����+BVKK
��:�
OX�~�����WCa���iHKL ���0�q�Y���	`�5 �c����k��
+ X�] �x=�
��
�8����	�X ��Ŀ׽�>�.�f���#aP�����
�n�		�D^{y8�����	
�d�p
H��	st��:Y����׬c xc
 I�V�?S��!�:��_����
�9[�YbQ�P�~�+rA
+S�h�����Hh���t^��

�'0�߅�™kY�X��Y9�Yq�q�p��l�'���W����z�E����E$�%
D>,��^|t*K)�%/�`���\�ҫ����:���&D
�
���[�7��dplDa5�|�mb���4�,�y�y��{�e��5�
������������3��
�⚅,t+w��h�l���
��
��A

��
�	�
m
k
+��xYU��
�H�&%��Ȥ
+�q��O'M�z�3�K�T�@v[NUnn^\�o�]�a�b�Tr��t�l��mE]e~U�+�j�א�Z�:�z��a�q�i�����5����};�C�S��������[�\_�ۆw�����C�a��Q�1������;>�L$Lz}4��:%8M7�l̎��Χ/�}�XT^�]�X>\�Ym[���n�!�ycsk��kƶ�ʷ;��v{���p����I�s���0���X������ݯ�3�s�󝋒�&�$��W�WW�*��)���!�$�$�%�!e$c��HNOAKIMEq��������
�����ƕ;KL�w�@��Y�X;ؚ��8^�+�Dsp����f���K�O��TC�P�p�J%���D=��+�+���O%$*������������8�I�Z�\�Z�^�U�K�_wL�������"d�x�����]�}����� �����>�9�=�;��s���_G�8/�̹N!G�z�[<�=��2�|B}����P�Q�z�l�H0Wc(E�e�n�|�P [...]
��kJХ�e����J�*�+��篍k�j5���U���[�ZU�
��h��0�|�e�m������6�]B�@�`�P�p�H�����������?QM1Msψ�*�iϛ.��Z
[JY�Z)X-]��R�޸Ѻپ���w�������?��@��?��5� ǖ'v�N��g��
��
+��W������3�g����L�C#u!��M�M�M�E�vAms˔F�V�N���A���̝GL�w�A�̬,��l�l�ؿs�ݛ�
���n��ͽ����+���!B�²"��<b��4$����݇kR�ғ��e�d���k*�J��Y*/TS
'<�S�V�҈ԌЊЎԉЍЋЏ0�4�2����?M4I~�f�����s-�,󡅰"+�u�M�m�]�}�C�c�S�Q�\�R�Z��s�v����
������G��i��H����3G�F�FaG�D�Ƭ��č��&�$V''g�$�F���LG��˰�4͂d����j�i�kh��C�f%V�Ne��Aq�YU�ڪG^/�
�Ճ���
��[�Z{�Vڱ:�;�`��=�c}��n�K
�
���Fv�(ރ��> 'R&k?���3�?�4+:�6o���
���T�\�ұڿ6���������V����ʝ�o���F?L����T;�:�>�::>�:�;��eq�vx^sa���wݥ��ʕ��'�_� E�F�O\D�K�LtAnF�F)F�|���
�ԭ6�\�`�@z?�m+F�;�L�wiA h�y���͖������)���M���g�w�~_
�@���ZH_XA,�"F)�%�/�*9���a�Z:�Q���,\�B^_AU񡒀2�
+�*����'[j
��o5[����uR1u��h`f�m$1�xJgBdr�l�t�l�y�y�E�e$�fe�g-g#`�dGbwj��0���TOC9;��� �ܨ��ݿx�z6z�x��8��I����P��=A���!.��a�Axۑ ��ϊ����}�b�G�-����ޒē����x�`�G�/����Ԝ��������q�_�O�?�0�"��������۬խЮ˯ǰı²����µŶȷ͸ӹۺ������ �0�@�R�f�zƏǦȾ�����
�*�G�cЀџҿ����'�L�sٛ������F�s�����M����6����+����1����M����Z�����:�{����� � � ��T�?�~ò��~i��~L}��~cbA�~�Da�d���
��~t�y�~W����~O��>~\���/~���|�~���`���C ��x
������}%��H}
�1�X}%�z��}K�
��}��
{N}׋<_�~7��A�~��-
ψ��|���|��Dz|+��E|[���s|���z}
��^�}w�O@�}��-�~ċ��	{G�u��{D�z�{]�Ĭ�{��f�{�Zx�|[��]�|ϕM?�}R��<}Ǝ���z��]�Yz��Hħz����|z�=��{L�Nw�{���\�|=��>�|��v|ېI�8z/�r�
z�;�bz'�s�Mzd�6��zɬqv�{D�[�{��0>
|;�
|���
y�����y��a�Iy��?y�a��zY��vzݮ�[{^��=c{Ф�I{R��*y�߄��yf���Uy`��Vy���y���uKz��Zi{
��<�{z�%�zȎ���~+�~� }��͇}W���0}3���}HtЄ�}�Zk��}�=���~���z��ɇ��� ���}�����!�~����Єd�*s}��Y���<9������w����p���S�w�u�����������u�VrU���W��؈|;,�뇔��{���R�s��Ѳ��������;����:�8����q)�P�CV���
:4�.��8�����Ȅ���2������񡂡?�U�����p
����V�u��9S���
�����c�
�b�փ
����R�����.�ՁN��n��	��U��38���8���A�/����ͬ�������δz��6�߆�ө�n1����T\�e��7݀t�XT�� [...]
+�\��l�G�N��ػ�ځ��N�ā�a�5�t��N��zl�ߴ�S<��H6���*���<�a|��k�z|C�V��|�Ǎ|����|Ik���|�Ru��}26��'~2����F�-����B���*���o������������j�����Q^���@5z�I�`����ٳ� �$ĝ�"����c�ߘ���&�U����ij���|PJ�ˇv4v�y���V���G����.�2�{�������
�����萾hS�掼O[���3��Œ
�(����J��ьx�&�$�Ԟs�҉h�
+~�2��gK�>�-N}�o��2ن
��
N�%��է�������� ���>�w���֣A}⇤�\fX����M��ݘ�2,����
��K��Ԑ�3�����g���°����[��}
+�0�e��6��M
�_��1��
�?

���1ӣ���Ǿ���I��^����I|B�̯d��ܪwL���e1$���:
������r�W������]�
��1���S{��z�|di����L
���g0��\��
U��������{[���G{!����{	�ޔ`{&y�E{xbi�e{�Jr��|�/c�5}~
+~���:����f�#���������M�Kx+�C��a|�u��I~����.y�W��	ώ���әߎ��
�%�¡唘����[��w!�^�T`����^H��*��-�����	5�G��Ȩ�瘎��=�Π����4���r��v����_�ҍRG��f��,ދ̋������|�,���ƕ����{�
�����Ҙ�t�ٕ�^��1��F�ő�,;�'��<�!���_���������Y�l�~�J���J��t�S�#]����'FA�4��+����;ۊL�P�f�&��ɔ��ޝ������ը�s@�夏]�0�E�����+:���ևSS	𧠨��jVPp,<XQ)�XVl�(Js�&�J!����K{�@B��E�.
�e���WqQ䆓���~3��7���F�HI^�\�������ӡ���+j&Y���b�dML��
�{#�����)F���A�;q��T0��_�
^��9Iݤ�xֺ�ƢYFh�9Յ�hX;J���l�����n+j�ġ�(�m,ּJ�����(Va�V/���aؑ�@�Q~.�8_]���7]�������
��g�|�F�)
-�/��MH�|����P��8�%�oFx��C��<��R�l�
A�^����Q�l�
�z�rJAU�U����d*�
���N�$i܏�
#�v
b7F�*4ނ���
+
���pv�i�x֖�����I��o�����J۱�#�
+��W��h�ԉ�l�"�kx
wVjG�Dz���*��ߜx�W���:Ʃd��P���$�����j�4W�M��[��,]�ʫ$���W��$I�&��N���}�7¨
s������1@�9�TɎ.�E��zN�Df��*uwr ����	�
*�#����,�h؅��"�8=���N�
�%�=(�p���Qu�9s�Lӓ(�&��w�ھ�?��ER
�AHi.R�~	Ԅ�6�����:�*tД3*���۱�x#�m?r~3��2�+�w����p���6�yX
a�TO�#��
+U�¼<�_)�
I�(��}��W2S�X U��w����
M��f�_T�)����?k��YYF��K8��u;J$��þ*1T� >,��#h�%T�,�Qۥ{[��s�:��9󅼓�&^!Փ�a��@�!��"
y �
+��.��Jl6m�Hj�u�,b�U6�+s��
�hܸd�-ʥ�}�wi� �-s�un=0�Ľ�i-_�*)U��_ˈ�
���b$
��na+;ϧT�
;p�pA7����C�4��.*�Iߥ�a�8��M��m�.���ACi���7�\j|fi������ԫ)��]ޭ�j����ʄ���U�]�3(í�
�wh�J��c�h-�4x7���h׿*
P
0�H됎L����랇ڡu��Â������,�{�Bz}��8�v�g�g
�Ҳ�d[�!XTZ�Z.��vl�A���g��
+{;S�
m�`v��ؿ`~�?g�a.�
+3�Ì�{����L�^�������W�����Y�e�4��]�L�<pq޴���������k���!��G�
�]�
l v���:DeH��Xq��E��K4kHoS|�X�ֽO�7����o���*�*�+ ����2���h�`���?���k6ݤg���,�M{ST3��`�b5��XE�#*�і}�
z�#C�//��
���7��}��V;�9�T��
)?�ވ���2[�ُ�]�n�$�~�
���f�Ќ,�d���p,��B�AdrH��]`u��P��V�k�aEV�vYN��U5/y�fD.�ݡ\ �1����Q�a#K��E�:�|��N[k�=�&[],����1$��ξ�B���0Y�(�ߊq
$���]�!{Ik5�U�3�j�=Or���)�<V��
A
8H��:YjD!��L_��|O����l�xE{EY[��9��#Ev�x���2�E��as=�[R���Q��i��*��i����66�`�����ώ,��+�#�,i��1����A2��� @������ƪ�W���m���H�XJ�NP�+�)�̧�+��=l��$�zU�kb��]�i��[:��<�旰��A��r)<�� ���+e.��
+�%���ӂ�B�s�W�����ď[��~�}F.+}W����t�=�� 
+��K�e&��,�^��-��v�a�(0����

�t�tz�S���w�0D��6j��tl��.\�lVդ����)��-
g�	[ѭ�'��x�|�|D�D�ߵ�����v��wi���8�ư=�݋�bY��
+���TC7j�KI���X�7 о� s�{��W|}��&饷MR����Q��rs�%5
ԯ1�G��
�*=��V�DM� �鶢l���`JY����Ke���\
+��kl�=��ּ sr͌�
+����_L� �\�E܋ʮܤH)�B���"�nĕ)J�ۙ��3g��Y�i&M{&MʹI��B+!%��,O���=Y>7o����k����!w����I�~� Ir�a^
=�C�#Z��h��`W�u}p����)��"�z�7ff&�3����$��
�F�����J8Ҷ5���m�
+
u��R�_,^V��S&�aR�~Pf��LL_Dw��*��`\�-�9]q�����
�
�
�����T�I�6)�>u6	D�`e͢/���xq�Y%�9��ʜ�;�åO
��
d\˾�P�&eR�z��;�]����.�R�<o��Ρ�]�P{?�:�
r̨\���ʻb	�Ҥ�3|����m �s�؟���W�9����oZt]Rn��
Å\�c�W�#+�n�I&�g����y��Ajs�N�06�HiD����'@����J+
��a5V~�cR�I��̫�vwtU��c[3+?F|l(��i��U�����^+O�?R��s����� 1�Hqil��$Wþh����=���(�RE
+��1�B��vџ��n��F/��
Bs�G�����M�Y����9>�ܖ3��ȗqI��
ڣ��5����V��_�1ȣ�β��i��JiX�0�WV���H[8g�� _�/���
+n3�
`�	���38A.|�f|ј0I��6�b�v�%�&� ;Y��㿜�҄# �d��D.)��.p�'��3�J�12K[D�uɥ$s8�I<�R�i�m�J��8�}��f�� ���DJ�ƀ຃ws�!�ʫ���r��RX��
-\y^�*�̏Ld'�雲9?)

"�q��^��5�/<4��i
+��Q<����
+��;/��Ա�JB"���7��t͚��,m��Xdھ^�;촞��&s�`�Y�"������Y
�����{>Ɗ�.���z^48��e!��R�6}��vc����Mi�oz���o�0�'�=�~���i,3�:?-���?oS,���9���w������#��R�Oa����������
;�	?�
�����p��B����
+�֞I����O�
ݟ�e#}ԯ�N$�\
�l?�
]�,��
��y,��>&Р����q]�yh�0Aq��K)ĝB�F��ҍcH:��-h-�ǟc���f)�K9T��127]����q��EjL���<>h��;�|�U
+��������d�p�G
+ƫ�`�&!���8a
��l���`83>�.��q��ɂ�n������A�9
+;�
���`��H��B�y�g���
KB���*k�㰗2fF�=#��OM�
� �eT?
+m��Tm��
�_����OBۊV ��<ɆF('�n3u�G~�Ȯ#�7Њ�9��[��١`N�s�.�P..콤
'Knp��F�
�\�?
�B>���-����`����N��W�O�OW�B���l�f��x��W�^�<x==���Z/~�4/�.*g™�Pʲ�<*V-}&���ٟ�w�z��Wq=g?:��;[���-�(�Z6*<�Ȉ��`p?���2���eQ�yў>�b���-_�

x&*/��(�j����_�=߆󑊢�zF���`�Ld��E:���SN��ʔ@S� 0���3�|T�O�Ko�k��t��o}bF���z$4���-���,�.m��'j*J���|)J
�6�B������P
^�3ewܫpX���.��*��,0��7xP�ڳ�:2�X�
OT�21|"7��=<J}|�wl\��}vGic��Q����S�]�<�C�jȹ*	@8�-f�������݂={ñ(
����]�x�Ѩ�n���?�ϑ]�q�O��ˏ�ExyU���c�0��t�M�]��u3���
j �o)(Co��~2�s�Ѓl�����x��֙
��
�{��L�7z<��"�!s���[��H��a����*�{���1��l��1��,V��&I*[�v�$�#1/�� 5�Z���p(3��]�8��i2|(�2�
| z�D ��5 N�s֬����viV�`D�0Û���]���R)L�!'n��"� <v~�x��)�~�if��
+wnK�ܑQV�B�"�����Խp�� *�+ت�ED���*� �����(���o	B�'{p���wH؆ʴ*JѪmA-n��WjGE���ޯ�y~�~?r�I^
WO
��@�����l)��ƶ�W��giX��
�"�C�#�k��nA���
�˻�r���)b�!�U�ڲI���b=��>�0�ߴ���y}ĸB)H�[�����Fs�
��V�+���̯+Y(I���(����x&��9JAI���'tXm�y�G�=�X[8�TK�)�2��
<�
TSR�v�x��lȓGO�|�g�/�{�>���
4��/�g�R��F�ȶ��&�A�5���2�
uЯ*B<�i�� �0�g�r+O��A��,0���-�b�u�g[�\~�-����4:I>幃A��uF�Ǟѧ��u�D���)B�,�
*�?n�`
	'qQIz���K֗�4�{��
B_g�6�8�#�ʉ2.A�$69�!�̒�ub1&D�3Q�x��"�
>ɏn��νx�VG�&��Tۨ����Ó)�sx�d-5��Kx [...]
��P��mBU#g���B�g˷�)��-*�E
+ar���>�>Ƶrn�[ɭ�F �-I���ByѸP�=��ĶK�UC
w��G
�D��}�����"��vN��.p�]�]Q��8u�Y��{�#q��C��v}sa���x_o��y�iN�r�����(�
d8a�w�2C�Q�}V�8�UWO\�g����
��\�����yk�@��d���c��Z�t���9$��u
+p��-���1
���z(�=�f)
+�v��
�ě9����2�
 w	u��煼��ת��#����{P6�+D��q3HIi����%��B�C��
b�!���kc5�&U	):X�$܎���[��b�2�
*@�PkcӘ�d�oT�B_L1Uwi"�)��=�2#���pI9,�R�O>�T@>�;�bn�����D
��PuC����
fk���^�^��\��G~�
 ��o�L�Rc�Hqܮ=-8^5Oń�y*9��:-\�g8:T<��?*����C;��[���y�X���+����I�;��lRL߭�$D��vY�TQ6�Dy��Vm��fy%/sIs��mXP1�Lռȭ����vow)�QB�b����_ L�V�wu�p����eė���O*��|�+�]�(uH�װ4�W�U��.�{ �4�\�m.Q��w
�����R~MAi���Rz+%�B����K��z�?'�{ �� ��
k�҉
�a��a�{���H]��sX}d����a~�3��_�au���Qz�	
�������VM\ĵv5I0�L�M�)�DŽ�p���1��:5�
��,�&����4��
%���!$
}o���c��ޤ�A�]R^x���T◬M&/B�:D�wA��2�4�����?�c�d&g]5�b���4���a?������i�ǐ��  ��Ĉ��.OA
6�vfv�
s�d��(5yT��H���/P��=�(�a��;zUs�
�b�W��x�Da�)E�ʼ�	$�sg�PJ�r�e�Y�3 �w��`�c��F�o�0|U[j5k��.�5�J��&�����e�T��o�r	��È´��}I	l�p�jC���8c���5�J=g�%U��o�|L5��8E"
+ِ��
�[A
k]�����J��͆�VB�M�"{�N�r�����Q���ih Ц@�Y?��6��^߫ZWٯ�]ذ���c؋h�KSLj:>�O
ɲ���.���ݰ��Q�{5mm<ٷ?^�v"��}�ъw��9��O��&�v��X�7�km[	�,70nΒ7|��e��P��\I;<��u�^`u�!��$P����B
+ET9��ٲF��W��c����m$��="G
+}K�e��6�~֔G_���M�DԿ�s`� g�]
�v�p-9�\N�d{:�:�gv�H�_3fC;}�Ɠ
 P�� �N���p�H�
��d�U9u�;���9$8w��
���3�r�#�A�F�iD1�n�����
-}��t�e�  ���D��H�!5$�
�,I�Q:�ȖR���1�3��<�7��
�j�1�[�ЊT��m���WwzU�x��|����վ+ք{������W��>��p���:ʤ�JRqY���^���`ǯ�<�~�j��!m�r.�B�+��'���OyY+��fN*żt
�W�$��W\�2��� �M_�c[�g������jj�%WuU{{�,_��p�W��n%}P�I^�W�|nˆ;c!�p���u�cʨ�N!k#���)k��sd��5n�Ž�6Q{H10���U�
+�
�
�-�"{⠇TZG �R�,��ɇjࣶZw8j	ICF���:�b
[	
�\+�?�
+���oA
n'a
+
+��O�j0���`�%��|�^�/si�_�Xǣ�Lqi�w]�I�έ�D"J���!y�!�Զ�n��0�R�	z�WC��c�c�h���ūK�_R
[��*)!
OSo��u���Oշ�܌W���ze�W�C���a�����ϝ�L���/�QB�o�_��k�/cg���&MV?��֫5z�� !g����"?w��P͚�I�Q"����P�AdtE)q4��j���G�s���n�{"�
���}e��UM�rk��zvi89C}���
X�LB1W�".ꕝ^M
�����t?WK�L�w�DP]t�U
�揊1r�J���ոK��V����GM;ph�շm� �v>��-wg����FN�
��cI�P�#q��W�����I
��;�N�ٶ��A�)���H~�7i� t�hl�~��~dz�Y�
C����x�2>*c&�m�b����{9f�1X*�L��	�#>�
��
+
V@���g蒼]7n249=M����K%
�;��,����F�\j�
�1��kl�Z�i���؊�����ΐ�.|Q��9��а�$_.!
��;�̿�l���E�,����ɥDi�������}D��
3^�a
`Y5�
g{J=m��ɳ���y�3���C�M'�jM�-i�Ц�m��
�n5?	�SJ�E+U~ �;����q.t�Xd���~���~p*Q�eS��%�.��Ћ�"ư��Bs���Z�6-�����6[\d;�^z4�`;64藸����ͱw���
;����|�+&�A�f�LU�3���X�T��m���)l�F�'l
�V��ɺ�gcG�Ob�bɜ9�;v
\�C��L,�
>B?�KGC��e"�z
-@��E�����H���</�s�=/�ᑍY���{��P��w\L�1A
�|U{�_� ���"҉w�+Gm�
�$�#�n��o���x��N����+���}M�9�MbΥ�_ at Tܲ�'1 �,�q��$;��!�헁h1kb���
�����Bo
+�\��w�J����
���uY/|ϕd<w��Τc�~ώ�����
x�¡�#d��g3�����~����g�‡� xT2��ȵ��6s3�i75��ƻ�Z�E\1�\�ɺ�W�A' ײ
�� M	}?;ʂ�8|R�0S�#❣� ��CۿU��b0���L7ֽ`���hcEk�T\�m
�+	6�&�=����B�9)� �곌����
\�@�^
jk��a�ƚ��Ph�<��=T��6�K^MK�͋=�݊�$�Q����-�U�&�>ILp<�5������'��҉�����$>��8#�g�L�2�m�	��
c�����1
��c�
��F�w)�P��+�r�kC
q�p/��u8#�!�*
g��
°�Pa�`v�u��@��o�H�`"Ž��:�z���
_��Q<,D�>'Ӆ��WP��� .����`�x�W��3�|!6��	�
+�5���
El�["�,0�	e���[Oz��0~l�U�O��+����&x��kP��c|u��$k�.�?�{Qp""k������r�6��isV�a���=~�@�W�_�
+.<�7�
+��2�#h?c~�m'r��E�_�xs��6����a��������G�+���K
1��4���L^kUp�^^��_�� m�S^d�Ш���'����>���}��5�����$:τ!
E��[�b�Jx&�n� t�(��m�;Z��s�F5u�q �X�.�Ղ�BqKP��� *�����l���%{�ٓ{�'��f';�,TT,�b���h
�Uq�2Z
���3���;�}�����T9�vw��R�R;G
D�
+
K�*��/@hUv������$�j�!
�@�
�vyבm���,W�|-͢	�^�
�~�D�_��􆭍�"��ĉ����#c�禘�*�X/��Ϝ�e>�|�XH��;�:��)���d9gƖ�4�aB��
��Q4 
�E� �w�,C
+ۯB�U�#�>�SV�$L�-��5g�V	ϯ*�B����#��}�
np�þ�td�����U�$D�b&$^�\^�&Z"/˺+�-}��%�Z�
��:}��9���A��Yu��	��rT�lP0�"���~!	�͚*@5K�?�߫Z�-�P������=
j�>��܈�[��O?)�a5�
+�����?��W���Us����y�5^(ge�${C����m>�	"���G�գ+�$�踿��ϫ&��
Xw������
��8?��g��,'ō�=�"����/x����N����M)���'��������EF��q�rf�
CįQ9ZY�$r!���6m<YZС.�<��V^�z{U�S=
�P
+k�X%3�x��fj��n%^�����
i𴵻���s���3�0���q�h�$��`kܯ�
D& ��!�M����1��W�}훌1r����=2N��Sd�k�b�
�\��ŀ�p���d�W}^�'�S^}�+P�0iC�
�1�R� 0hDz[P�� �&!��v@�B��]P]V< �SܒG�L�O�
NgK]+&
��-A
+�2���#�sL4�j��&�D���i�b&,�A��MS���U�D��9���y�
+v���98�����j�c7MI�~�(�sL#�}�3���(M�^ N�i�E�K�E8�mi�	u�zI�$N�r|}*��+�'�4��w���{�y%��F $��8
��@�N�z��^G.g����-1Vfk�)��G�����]�u�6K"���K���1�p���P��8����r���>�)�4�
��V�9�k�J�$#��
Fь�X��٥�C��p�[��ģ)C���S�;rFP#�I�m�K�G<��h/��U�-,C
��O�
kOK�YY�;�MH-�t��%�^N��ξ�B���7"
+���O�aj��X�_84�V(N��-{D)��F�0�$�!�o�J��d�v/_�
�(�ǀ��U�H8�B �c�1����f�b5u��&�*�ҽ�n�2s���G4
0:�\=Y2�߯	�$bi�8亵M�$ҙ:ut�N�)��Eh��Dh��d�j�21|�*T��V�˰���T�5ȮM7-�^��S���84Te��hRҨj�[�U�G��U���1���K{�Nh6v�g֨�+��G?���`
lݔ$Rq-�.ަ2��S�e�8
pSՖ�k!�X��C�\�z0�0	nlh��j�<~I�����,K���r�L�)�IM����9M
�_���c+"vҜݤ�L���$>ɺ��z���j>>��X�9,�ZL-j��Ib�k��ȉ8�˚?v�t�����x������P�IO}�_ay@
��:����|Ve�6�����ubd/e�3<֭�z�t��e�a��'�c�LaM
+�lz&,f^�_!��?�l����2x2�X�y
���ń�3D���
�)�\ ?�y�e�
~��4��O�+ 9$�
�
+���E�V�D<�O0�Vbj&��mLB�2Z܈�b9��U��;n���6L0	�+��oˇCr�E.~�>T�
Sؓ�7X����?MM�!���Լu�O��t����P
Cbt;���i����ް��a��@gW��#�@��4c�9.D���o�
z2>M�5��i�~�u0�
�q�s
�wQ�9�ǸLt��삟�Mz)>���kɝ���I�;���io�"���U )��]$Y���L
>$����$T����:gUo$���UK���,�C�`sCMAJMÄ��K��C(��g]���ٮ9�s�U�G�0?����L�5���
�QM%��0O�l��5&���`�Ƒ
1,��x�'���{��k+�mY�}����-J�s#\��d���:�i/�N�K�����  \8�H�����stQ#��-�ND�)�.s*�Z���y�m�n�f����\�1l����{��(E�=�VGW��9��s�:��?���w���ǟ�Q�Z�sC��6��A�1���ƃ��6K�@�8��O�UY�^��`���7��������j6�@�9?,y����
t4&�}"�T��-
+�\Y&k���V��x�녣3��9��1ٵqQ�=�b�eMq\���
�����`/nņ|���2��͌Jkz�D�mͫ�IR4�\~5Nl��օ���KɁZ]T�C�3�l�̅��D�3jSS�)�t��Ww$IX�[�w�V��
+WT���U�w^P�eU����h�WE�^ؓ~W�c�h���s
�s��I��g�����`��w��g�s
(�5��� ��mr��
���]
��
�B`7Jf�A�

���aA�3Ɠ��G�����?{�O[
�?�x�j�/����Z�*7�e�x��X�z�
Ά��})��C���?`��K�c�M����Ռ��&)����Y�5����J]q':]$�؞�]Yv
x�(�����ı��H1��e�U����>�_0�b�?*񸨎�b����
¤،���
���D���;W�xm]|N�7U��13*�;��.�=��>���S�Üj
)��CM��>��.��e�I����1���/�Q�v����6T�
kk
+�Ɯn\\�F�F��V#���Xd���
e�&~�WE��7�"�bj��
��u��^I@�j@�bQ�
W��k��8���w��_�D
��^��z����
x�Z�KA
�_`�T}�]
+x�}�Ё�M0S�,r����V+	K��O&�ƈ�`�;�E{irf0 F�]�� w86f�

����fm_8���c3����V�<)�r1��p���� +h��s|p�
� !Q��P'�Ղ
��ʛ����2�r�Ӥe��j4Y�
r���,
�r�?4�
! U��q�]f�(��*&umM+
�;�1�
+-���c�8�C���j�L=L��1�TDJ���7���>����)BH�*�c�HY}~�xI,{��7��W����jW�ާ�ʇ��h�g�_���Yov�MKi��N>���
Q��R���ǧ}��A��Q�j^��G
�s��yJG"�?txt,L��>�֍p��_��>�Po$��^<�%}���K�D��S4�
+�*S�<ܖ�y�d;���éIJ��~J�M�n>��ȸcI6��u���ɖژ��䩊i77�_�5W�2'	9�
�t�^}/��8%wd�� �0k��)��ͦ�F9
����k����ih��3�Sh�
�PB�U�Lz��s���'0�$Y�/L3����o�����
l���|��f
�ɪ\AW#�si��S�-�O^�I��+�3��6���xas�� ���@M��
+�A
h��m�4�5 V�-��'
ѵ�1��� S+
��
~*�
�%~k� ��˝��ʉl
�*�
+�lك�=�3���_2~���OgP��s
+�C�����c���d���[�a�ے{<Х��j�A	{! ߲ۓ
���;O'��9+wEH�E�����&�J��V�?f�iӺ j0�5
瀶bhW�Zx�o=��ƺ
0���z���hK5�m���o��v
(Y�Ou���t�;���e=��R�*
��yMV�n�,�$v:��Q�ڳE��.�y�Vl�;��svn��,��Wi.[�����@�����34S��D_!���M���F�>J柣ND ��@$�Y�~�-����C�Mu
(+lBpБ��^��#$�~�2è
/@̣�6 3�n�h�
+�;������۪.��������3F��q3��\َv�Zn�Z"/��vNF����N�J2V{�#ΚV�s����e_쑮�T��a�8C¢�!Η��>F��L��\�
�M{���5��eH~7;F��	�	�A���������B?���V���Y�=۩��Q i9�J.sӿc%��FVb�dեiL��`�a)kD���=W����
���
��� \n����e�>�N�X7Ƒ†2I��Y
f-�to7���/�~��U��as[��`W��*
v3_�`~����:k��� 
�j�R("�E
+*���
+��e)DDI��ss��,�f_n6�"���:hm�h+�]Aqñ��Qq��S�a����9�{~8�|�~b�h6�G���ZĠםN\�h��+��(E3�0�~������k�
T�MG����1�:zk�a'L��G�����2�>����, gt
���X&�@�?e%�
+�����=@��Ih�s��
��)H
��U�OeX^m��7R7�~�,���,�
�\j�����J�Ԍf�ͬ����
�8!*�]�JR:��W�R�]�M�ɚ�
�P��Z��;��J�N�.8ɦ������,�[�r*�Α�]M��M"wa�X)Lbjd�`�>:�?����|:?u��>^��G���$��fa��.�
+
ʥ_�S��%�ED�8�
�J��=�ĕK���{����
�6r
z�G��G�� ���
��U�i�<����K�g
��"���^ �q�
+����I6����vP����W�y^,��u�c/ 5��@�:ǹ+
[��N��+�l�i�{��P�#^�
�y����v�,ñ������-��N���ѳH�⺣<֡g�x���V�<
/���
nb�
��6���󴳜�Ρ
 �+nhB˾�P��oT(�W��#�#ĉTw�ZU
}
� w-��v��T����-9O᭺HI�z)����� �z�9��R'�d�I5��a��Z��GS˟�ag��W=��.�P1ٜ y?����2��
��X�)r�4VaG������X����Be�`9�Q1��͚@8�5��
���������$���W?�D�}��z��2�*�
+���
��p�t�
+����;Br\ܕ�'>
���-��v�
�C�Neʔ�����L-ʌ�q��K�H���r
�7�I�
d<�����B
�gNelB^փRγF2��A�qCR�&�t���7߄��{"
D9����u)��C��w���1��t�}?"���'�[�7o�̩�~�1�{�>R�u*�
��ʖd�C��l���u�tqf�2[�l�~{S4�>�J$����.nQ�nl�P�#� x��])By`r+��w����LH?����VD:�|��iU�G��~ժ�+��&+R��b� gP��>��}�����W�Թ�k�Qǖ]WSk
q�w���Z
+�D�Q���d����V���d�24����K�G�M�v���U
35��K�J~�4 & j��w�J�����*��y�;��X�߉˔��O���@��5�hw)�񘴕�o�-9E:��_�
�̂�o����&�6#�V��(ѽS�-te$
�פp}�4�%�4m�rn�z����he4�KX*��KÃ����2�9�ʩ�~���'Ǥ�l|O5ÍB�
+�;�^��j�㛑Q�`�exH��;�J�\*�`l���˴K�h��k
+&����t���F|(��8Vǡ�ܷ�
R���:ϳ��o�G*UjSKk��nR�
��gl�
��ޅ-�
6���&��Nŗ������7O
�4��rGm��O[du_T��vY�{�
̏Iy�\�aR�Ky��&�P�7ݪJ)�l���"�W�5�{K�� ���S_����j 0WSW;�w�ix��F1�^l�О伴^�'�
1���b�%�OA�����X�hq)L�7��j�}=�9PX��=��n��`��ɗKX#Cù�A
*7{� �j��WܴT�By�����ufכ���d=�A��f��]����F���=�_u*`�q������+�_i݋\�^`BaE�|�S&����%
Z�
�a�8����+Q��g�Q�[�IK��-�j��IKr2T�cju�=A
�ʧ�Q�"7��{ٮ���ם*�X|,Y����
z
����ѽ�����}�ƈf:�jCo[>�]��x^���h����lhNr�ϳEDk��c�C���Ǫ
ת9��c	���H
�t<)��}�z��!�hE~DBӳ�2�S͆��i{;�o��u��I��p�??砃4�6ٺ��^"������1�R������<�-��65s��j�p�C�����Sjqi6dzھİ�紈��
4�1�.��$�5E�
G�9���:�
�=��o���b��쾄
v#��[��x�ﯦ �AF�+T�����
���(C at RQF��7�7�2��I$��^a$�Eq��>
�.�AE��b����
i����O0�����]Т�K5ΫPÛ�G���
���
����Z�d��J���*�$d����
^�}E�*֤�>?��������Ƅ��������$d��O���	�_t�l�%��$^7��[�K��S��ECq�z�"$
]�*���B]��}��W�
zT[Rk�"�����n�]�E��U�Y
v��FU�W\�B��6�-RB�^M��e�2B�4�<ZR�V��jV�y�~��O��
+W>��/w�ͺ�h�4E��k�5˖�<1�U���[�t���D��>�Q!�.kR��涧�7�u� J��c�>�c��
+l���/��i^��3;i�����ڐ�
0��s������Z�n�S�
+���q�W7�N��p:�([���5�6�8���V�
i�AFޜ�~h�9�P�ldüj�2�dO
+�+����6��1�--��1E���wv��	�=JCH��W�3��4܏&�x��8,���&�����#Rc�3D�vz�6��RS��yu�_N/nm�ك��vT����֥Y˼?��RFװKz�n��9����Q��4�g�C�^�5l`�P
\ܲ����G�&���ޫ`��
��9�P����ҞٲX���r�6���
+V4,��{�a�؄���\tcY`]l�ǿԾ�a���r�鴯؏=b��!��&����Y�b

�^[\�aYt�$w	
+���[��R�)���i��[�{$��7f"��o
���X��p
+��z�Bz����'h�
O|Ō4ǐ�|-�j��
+:���}̴a� %Tv��5��Y9QK� �d0
?�$��ćH|�#�u�D�3�
p��h���r�d�@,@Xm��VK
Y��@o��u��([���8#!OM~�.�7SoJn%<��I��dZ��=�1�D3�!P#4����(|:]SYd���_��kG�����Rh�+Ot�B���%�/e�䱖�&]�h��r5�sl�or��Q����
"F�,bՓ�*2~��:ʼ��i��[�������t��˦����~M
+�U�6�DU�e�"udPO:���]�x+����G��B���]��q:�ʥ�'�:�-ML3\�F$�7�K�3�
 C��*s�2��z�F�s�'����
�
�̼K���s�����Ӛ��w�ER��	�!`%aT��H��v�R�W��SP�ƅT���}FVArB�[��SS &��}p
�`�	�~����_���1{�,y��o�����
���{�30��[�b�
K���:w�3��Mn����e6�s
z/0<x� &�3�nj���@���_d
�K�Bٓ�! t�r��!�6<�
�rƕ�KjT�;ҽ�����.�Z������.,��68�MUl��{D
6v�
���@)tmp�y�_.>OG�"
+Ü3N��|��
�/�'��O��-R_�1Vh&׺
N�Pz8de���
勊ZTH;X����Q�6�}��+���'h��_� |ȋ��Cc�����u��H��j�BA�,�N�OS���{�3���	L��� `]���1��> A���
�� rxӴ�*E^�.��ؐ`����Q5
�v{`=W6뼟�\9a����vGO��Xc&
v��1���w�~��� �0�W�:ʎ~��f��:
0�/˵��%�m
�KRK�A�������c�R�%�	�P�#CS��ߥ�f�mD�5�oEx��1�7B����0����<&������Yd�8"1�
�wܡ5�� TaaJ3p��5��
��7�A>��+��y��I��
M���c�u��
Zd?�B��
k1���x-���r�sV��9s
�H6p]D�G�g�O|
y��5�S�$a�E�`$�Ls
+[��Ym�
�~u�8��p`6*I
ߕ�`S8���8s�n��9O3nX�OE
/7
f�^�l�bN�[�PB�F�O��.�9����Z��_
.�5�>�F	��
�S��̉�R�'}ΪѬ`_d�X�|�{�d��HXԾ3�QlZe7P�R��q�ش�O5����OkZ��r�x5u`a ǂ:��*`�T�)��,�
+DPQʮ���dߓ�����J�����Rk=H+
+*�#u)���h��) ��)B�6��s�9߹瞏��H�ZG�z�G���T�"9��3h�D�ͺ
��s��r|��b�4��y	�$��TK	���"�$��I��~
�$�v(�B��#].��qi

��?�C��N
�����~�ޱ�|��ܷ�LcO�n���T~������vxj��̦5<.��f\K<��2p�:Cp���S�y,
66��>|z�C
+���� E
+T )��f/��:X1�}J+��>���_���~ ���Q;�^��ㆪvs&�۸>�.�k�7��yZ��S��:�˩㜍�r�
ݖۜ���aKa���!l��.g5���7�Kv�0��!;ڗ�f����e�
��%�]"X�T�
�J3�aժ�lwV�j=v�姠�α���e=b�I/��g�H&���
�:����g,(y	27�>a�b�a�8���8f��VV
�q��ɌT���0��N���������ɉB�����`(
�_"f��o!�
�t}Wg��_0}H���X
�9�,�Q���x���=�~Jٹ�x�>����ӱe�9�M���2mF��S��)�Vk����-eZF�F٥bt�g0��O?�D�ǐ%7ey��ښ6��W��S
��C��y�e��US}�
�l�`a�8i	��g"1лJ�"�|P�Kڝ�c�,��$����+�&���P����vꖴGBoj_t4I
�vq�f熚(�e��C��!��b�׼�^�S��b�Yi1���¨;2��W�`/7u�h?4
+�
���!��z��@#(���T
���6��
^��!�R	S��#�>E/�S�q9�z_ 
/G%ӈ0C�9�[ۼ�@�(٩��P��
�,�}��X�T�Ok��p��QȫU�G6
��
�x�2�e,��> ���
-?�ϭ��QެYz�/�T���5�FL��^`�tީ��3�\#�������̬D�:�
,�v��� w[mDW�����)��TB��Z���`0Ֆ`3t�BQ˟kk��s4�1y�	�`�\�޸�c�V�#��z`X�Hhw�A��0�چFTy��qӵܫ*F˪�%��*����/>�9

+�g
S'�"b'zL=N�)c��s�*����b�R�����)W<�#�S	��癛)K����
��
+&���L�\��9W�t�W!Y1�������7i*�%�����wJ_����
��閥�n�WJ�!p�����-0�T`�:K6B�+��S��z�l��L,~��J#ZL�HBEe�߈E�q1
+ڸ��TD}�bB;��*O�TC�nՍl�$OY��Q��0m��z7�o��9NŻ�|h��DV�[V��e�֩b7���Y��ZÖ�H��l�����~I�)ܻ�J�5�����oO��ݑ���%(��,�h�Z��G��ҼmR�d���!��/NEWutV57z;�j���j��s���^�^lD�Ǿ0-a���_a��L�؁��w���44簍b^
��ppi������&n�X�	����uƻ-�݂
�-c�Y4��_�����
��g	?
�j�G�I�fH���
�%��J҂[��%ϩ�C6Oz vW�z��oZ�t�A����$�?z���;�
�ؼ���FT2�/+��0���@��@S<@>0b��S�uq�w;j4S�'�/4s����E�թ(P[����V�^�5ƊH��k�g/�ۄ�w����
0��*��֭ �a�j�yB��5�TC�
�J(�_��F�4����!�m�,
R��N�
�?S����9��
:״��O��f��O�V��"յڇ1���,V)S��@�._
+���#��Q�`�K���|ͨ%c�j��/&\��:
[��F�t�^Z "��q�٤Jm�뙊jMarח�`VCg
+��w"�~><��
�8�i����}�X�T8�dzQ��V
Y<��<�J=��E�ۏ7
G8v6��Z:�%���hBò�94^�ԥm!
1���OD>�p%�H���G�����/�Û`rq�;��N�m�~M���s�\��/���Z�h�:�(���MX�а^F�.꜋�.�Y����s}5�`a ����(�(X0�T�+JS��
�4�&��~��|iB!!
!)$�)ʰ��
��WF�Y]E��븎3x,��˽�}���| 
d��c�
+��|�i-��0�Ws��
+Q_G�pRj�y�0���׿�t����j��T̎�ԍ�
D1��څ�ڍ›N�:ka?
���7�e���k��_�%]a;�ז���F�=�9��-b=
&��Mm0-�vD�'^�j��+��/5(er�^�+E��L
F1�$�1K���WE|f��O��FMK�����m��:�:1`�ڥf��X�ЩM�*i�9��
+l?+Lw?-Nx��͈��wɳ\C0���瑃f	�s��
��M;iđ`��$����O���0z��*Rٹ�B9�@�"�k��5�����
v��~�.l�B?�u g�]�ed����
�8J�A�j���͹um�.��D�O��^^��v:�y;��ske��+,L�¶v� ��ŝ���Ҽ��خ�����d��_��5�Z����;
q�#�k>���� �MU\��J����{l*͟��ґ�3Do����y����"UDc�����u��#H�)BP��it��/	v�`�_�Sʝ�{�e�5mp�Ppy�=�-2��[���m�+v��6
*.�Wۿ��Sǔ��]
�
+^DMk��,2�.#��ɲ�\���!{�
^��I4�Ԉ��.~�ç�lDc�BU\b�"c
�j��v�����J�G�|�H`_��2�r����
���H��ѥ
�
��t��HH���BaG�	:����B�f��{�'�9
+[�j��a��e

+&h��z6F�d�y?�>g�ۑx&�l$����^���:����^���n����x-'-����]�O 5�������@S
� U��ڏy]�Tu 
�_,z�
�WPT�|BJ,ɕ}`8�ߴy?p�7gˢu��\JO(_��vOUue4���+Q����bi�?A.j����Cxy���R���J�駥�P��t㸲r��T��fd�d$ֺ�FR>P�a�L���'��
�v�����2M���*��׵�T�]`W��*�cD�*��h�A�e#�"�ɆKO9�J���KL��2��J����(
KgK3jԉf��Z��nL��5��o��M(�_���>�FO����ӹGi}<���@w��#Nd����h
oo4�Y�
̾�Fٸ2�����Y�A��z$�W��֜5��Copl�i�
�\�
���3�2�l�;��a�<;�S�? B�>�<A��a�rL>�z��p
r�j��s�m��1t�Z�c̥�
�{�s�/���J{��c�*�#�3��ހf� [...]
+�oe�*��
+�p���}����%��
+K�"G�*�
yE�%��S\�#���V�9�
�ۦ2�4=���ZH
�
W}d��UU��$�U���>*;�$;�d
'=�NY��
,|ܶ
3�4�����q�T�=�ka%���h�s��䬺��U�X7Fl��[��
o��1a�puxf�9��Q�Gk4�;e
+˸�7荇�5��xB:�y����Zd�ͫ,�`2��?_�a[0�~9iY
Fs�3���g��	�Ë9u����<,yx�87��� �1�����Ja���,O�@/g���O�㔛�
9�4 �|.]�1�6��'�^� �@1'��p:Xt������wL,j��V���Qv@�wl{έ��̱���\�?R^�UV�\�GI�+�����9�����D�0���3o��y�d�[R<� "�"��"
+.��2�}��"!<�4t�H~(��-r��2��5D�H@��l��"K�����濣,��/S}�������"+���~w�������F}V
dR�z�,��:�w&?��C~Fq��J}Jݢ���J��i���rjzE�gU�#��p]ZF��
�%��+���[�Pj e�w�Vjl���W�7��wR��/*��C%�%�j��G�x�
@EFH)&0_����Օ�|Xu�
+D���RNX
A�\0JS���H���30��7�͛7�3
C�Wc+��U#�r#
aQOL4E�љ?�s~�{���s�I���y�?�y>�ҒL��ָKd-ޣJ1�v �*fH
�6��h�����z�+~B�O�:I��Qq�Z��UՍ�
P�[�U��D#�BM�	��>$�	�z|��?��^�������!J0��W8�N�	��W�zX��f���щ@'h�
�<�
+%sd�R۔e�[�$z�,��Z�2�H5����[&Ht	L���
��U�O�
췯�<�u��ɎrE�ᾀ{i�,8+ןwM2��O��\��7I8
��i�l�2�ewkv"9k�r6±��U\�R��*�q��o�GCxxy���;�:j��Y�E)
a���ΰ!Xid�j��
q(���8�S��=���l�(�P��9Iue�&��k)���W1����=k��Z�b;8�zB�C�����4��ڕa�v��?�su��UuP���\Vf�>+�5�2��j&�P�6���uR�ɮ�!
+a�+�r���k�!�o�4	��`��ܗ�P)f��%��V��Q�T��F�(Z�]s���,��TR�|O)O?��h�o�# ]�6y�л�)��O�U�,F��٠����E})�g�s��ٴG�y�Ҙp/kw~˖��I'Y��;Td�
�g�Y�U���'��I8�@F�*�	�8
$�I��+A2((�+y�8O��ϋW��ȗE��
{բ�b�W�"@�}@�C׌�t�e�Y��gv�ֈ���H���o�fE`�ea�<o�V�	�F�
C��k2������* ]v%녦L�y|�KJ���3��P�nW�(��<� yiBVO��h�P������|��q'�9["�<c-�����p����!p��w5
�ϔ�r�)
�􁢮^.
,�8L� ��o����қr�7
��ȶǫ� .�@P�p� ��"��X�SI�3����I����k�TGm���W����Vb�u6��Gބ ����`]O����ZQ���&'l�T�R&"N�!�v�G{�%���^}T�1�v�:Ȉ�\������(�IW�f��*�ڮ��ʃu��*����lg��w\W�d?�'�~�|S6�|��ɖ)ݹ��E< �K��7���b�%����J�\�*\D�)
��e�
+��2�G��2ћBjx$Z-����aV#
s�/�h"���K6WZ,�ɳ����L�9�0�~G�"~4�
�5"[���K��4�h�����q���ɕ�����F���a��1U�_��K�Ī�)��P
��
?Q΢9�ޒ"��zܮi$��5I��0�]x��oܬ��UJ&�]�:QS{%K��z����<�
�~m댋�/7�ƣ��i_��y
+
I<G�d
k~��x�k�ے��1��e'w�7���۲���
��U�y��ʪ����\���P��x��V���nL"�
N6t�Ħ>�gbN�_�����4�!/�e%�
���O;m���ht��Wv6�������[���i�������yF�y���4ʔa�t
V�]��
au���
�#������Q�Ym3rM�/q{�~�
�tj��D��
�7���f�i
���ɷ
������� �.
=[�n`4���qSh��B�r�x_�5wԐ
�%��n�
Q����~x�'G[	�`
+qb�]Q�2Ը�i�=UGn�~���ڋJ�(�����Aݪ��d��
���
E�7��K�z
+M��]������!}��
j�nh-Cզ_�魺��������a�٭�D�fr�j�6�$-�4�n�U�Z�F)�Zp
��ux'
�@��]U���/�ٳ�ۿ�3�Ug`iU�}��ڰ��U�L��W���u����+��S��U��[���;u��������XJP�v��O�ŀ��{$�KF�,q
�Q���r�u��H��.���}i�m����fZ�h~a���t���M����B�b0*��iW�
��C䶧���jZ��m��n��[nKfi
�c�+.�&oV.�� &
ʭ��{���5�_�s�9�d�m��I�A. �*s�5:	�1���Ů�
m!�|f���l'�6#N�
+Z��>���\�oM�k�CZ8�)*���b EE@��(2���7{�I�"	$!��0a�=+v U�ZŁ`-x�E���JU
Ǻ
+����~��~�7�<N�z���Q���T�!w�����B,��C)k���E��+�
�+��#�6�-��)��
p�*㪝A �����Ao���c��c~�\_xb�5Ӽ�����z�g�Q��u�}޵�z�Ge��X~	>T�S�
s��V6�������i�1=�2J眆Jh�@ U���u�;
��7!�0
+߽�\�醮���������%-;��=.
��e�/�T�7D�$v�{�.ʫ�����|�Z�Ѯ�mcDֲ+-C��u�_��{�>�1�H�1]�"�D^n�R�
�ٺ�:����E3�
[�h9�������
��7�TJOW+3
v�œ�Limc
@�6'��[�c�`Ǧ8v���!���b�R�{��1�_ӵ��u���o��P��E�2��\@;4"�mO��
�����m{��
ߺE1�d��A����}C=W����B�}[3']\PJ�G5�V��mnY�G
Xy�ahd�'J�[U~	v��W�ۅWo�]�Wn�G�n�R���9H7�Ѩ��Au
�1�v�����Zm�]lU�r�
�T�V�A
+sj�6l�hm,M��y�4A����*0����v�J��
R�?�� �Ĵ>���2C!
*�#�q0�MJ
!:ŏ�C�����R�|�d�F�a?��2�
݂�c�h3��d
B��
z��SI�t?�%�L��m��F[�A��x�Y�G�ҏ0m�;GY1űh%[�sጒ@�9�
q��_8�G>
r�

�W�n���)jod�E��z�C�.q�JviN&�I
f���8b��g�
+�
�v|�
s��d��%:uT���f�����&�L��0���~�p����.(R���U
+;
_)�w%$��/��
�t#�
+~�#�u`u[�w�.��q�s����Y��_�-����*'̳ɩ��k/���)2*
i�9��$�7fU�z�fl���c�9}�]� �,툏WYC�
I���k
S�-��t�y7>�T!����<v�`tF�W�V��"�)��'����U���!��<���^��D�V��"_W��퇖��6!�{�9
JJ�j��i_U�(홽�c4*j�����>��
���26�����Kݲ�
�	m�&c<kQ ��Jln�
'�I�y�T>��ӣh����'
�..+�upC�6�&@j�5�t���d�����P��0���=��I�˂Ė����
+�</��BིY%�V(��q/ܦ,Ǘ	�9(B��0j�tI4	�S:�q��ԙ�1��K�h^��ChhC��F�����( �|�|y�0%o:TA�
B�Q��yPI\�;hVʓ���2J
+ĥ[�Q�r��_k`��9h�� "?7�<18�����~���Щ�
t]Z*7֡�^��%A�nj#���7L{Lu�7�7]ČY	L��L�;
+�i�\WkI��S����y!KC:�31hZ�Pf:�߄���0��C�>C�{޶$tR:(ϭuO��
R4����$=��jl����uq�1?פ��9��S�i|c��q�F!�_z^�S
��K}��`�d�%D�T	�w
V�>�; �<�'�V=�(�5H�%j���WM��V�#��9�Y�D2��֓��p~�����~J
��}�D�]�gN�S�s�jJm�n-�>,v�g&S�L�l�#�����>���^�i���8��ʞ��%��4'��R��JD��h�RN0hB�A0�(r�0K+�a�������M��Y��|"�E�G����E_R^�v���4�/�?��m[˨�y�N`�K/5[�7�1���[G�ؒ'� '�铯R
�G��hqꭁ�]��>���iI��X�
+5�'�\�GB�	��ć����d�^u��x�+���[�^��%e��	�֪�p��xE��
+
� �6�%!It�ި@�Ҿ #%��
����:��* �h$r��7ש�ׁ�55�׈��Ց'I�+6��*ЮwȰ��%U�#��zD�+J�t�� �B�a�Uؕ	6����}�
�uO�r��7��d����P����
�Cu}FEu�a 7�RV�"KS����T���20
E���N�{��^��lk��ƕ$vW��(�,�F7��b
ˢÞ��O���y����<"_��)���.k�h���[n �9W�?g��ڈ7��yș�*����Ӽ�uA@ �Op��I�R��rP�(�$e[i<�H����������/�\�t�/��G�inQ��a�@��q�I�a�{�Yʒ�]��e��?D��98ߙ����y��dx ,�8�?����Pe�1�N�W��wA�i �N,�
B��=�%P�K���
�~�҈�G�!Oʽ��R=e�"!�]:�:B�I�\��MJ1�j�G�K)b
'xL"W?D\G�ԝC��{���A�A
?u#U���������UJ����
ǹ�	H{�F[�5h���[N6��){((��%��
>�V�Y�R
+n��#����(a����F�q�&mq�3%�\g?�%�ӆ��M5������X�D3�b$ʁ
W�� ����ƿ��5&͔D4�®K���
c�
�Ꮚ
�.
+��1Z�o
+^`��~¿`�6z	�q���
��aX����ǰ�)��Ӽ܄'��84�
n"Db.��� �
�yC<K���
d��},��{�*h
�

+ڸ�h�>���wMv^
c��8�Iƻ�(~��j?���
+e�o��y
��l/��Dl5�����Żר�p�y1���ܣܵ�����^004�{
�����.��%C�A2��2�d�Wu�����Q�>�o�kL<
��
����5.ſȠi�f��fh�7S��-��|�^����T�jX[�wC�Y�*��sG^1�Ve֗�+�˃������L���3�
��/2y���{���
��+�.�;C�t��J �}��
���-��
>٫y6q<����
��<b�s�
+�bk*ĉ��_�
V���
�����T�m
�}���D5�1o��U� ��Q�u
�*�n��ҹ�
�D��U4���|>�W���x�A�_P�Z�?	�Q	��y�����1�>y��K���\.�!�O�q�M��

+0C�l����];�S�k)��=RZ@�[ɷ�5��
���JBe�ǐ$��Ni"�0
-�ú�R4H��~�9.☫|Dϸah� �-�)�r�~"��e�oM�����
���K�%4	_7�"�‘e�
+QD~�0T��.��>"x*
�O�>�酧��.Ey+HVy55R���Ws�����Ek*
�PxEGB����;(J�
X��(8h�iq�mh��^�
�0`���}���_APW�D���L��Z�‹]�<��4��zG֦`��oy��Z�R
|�u^��g��C�F#�n�r)��Va�
�5�ƪw�����9��n�j�yI���t��
+xI��1b�Iy�>}���-A��گ����OSh��KF�x���6xq�qQ

+�3��S�U���\ka��椚̩�Di�~
�?{�>���J�3m�tߐ��Z���t����]�Y���N�ju]�ɒ���QY�lZZ�s��
NѴѷ���W�>S���ݥ0�B��j������+�7��q�҄fU7���m�	�����:�8���^�;�#�eտ�+���*,�_����C�Y�3���
�M���S��U*���L�X�.jQ�Ȗg�_I��W�J5a"9R��'�C�\y׳qH)��V�U��
-Z��.�\+�Ѥ�/�a��en�/|F�[��?S��Pk r�"�
+^�Y��>����V�H9
&ya���I��x�Q�<�zU1\���
+ٽ�l�*7�}��hu;Twfa^���cn����YS
q;)oZ�u�G!�uT�U�Or����lk;�H�F�-�x/,u�	s�m��>fd��}�+]
+U�.o�.����=��q�-y�]�[��v
�i�R����g���k*�`/p����LBu���+��A����@
��[�)��&P���YQ�?���i�m/��K,�Y *g�u��(i�2�`��؀V�"f��JSs��=�RU@� ��7+���>d��ْ���s�m�Y�� �)�w�=U?ο��3D�����
qjv��8<��!z
g�)�b���^�[$z�RYjT����)�Ԭ1�c�?M�2q�=�@��?��ܣ5�ew?SIf�q���D7����
k�\� 
L�24A<D1` (T@@+���7{��d�I؁	3*8����:@-�m��q�*���8r����><�u���ݹ�\��id��Xm�m��J����J������"��U��
jb'm_�z$b�"�uO���
�b�M��q_'�is��ͼ?M#mp_=~m��=�İ���+ȡ�:�L��;48l��mb�
3�埒-m�
$�Y|H��n��]�c�k�k{>3 [...]
e
l��[I��u��Y_(i��&;����t��o���

�
�����5��k������Z���/��
j���j��p��~Ch��⨿���䦿�iR�s!G�-�����֠���5����
��
+�����&w���a7W��AƫX���U����r�8��+}E)�oV�ӃIÌ}�qZl��h�<�gw�
+��A��?�=��$�6-�ޡ|,)!<�*�ǘ*z!���8�߀ϸu��Pp� �D|�Ŝ�e�=s�m4'���Ң�ؽ�YaP�OZ(���vj?�VG�gxI=V
�
�-�
̹��u�MCJ���H_�-C�]����B~�2A\�8����*�E8P�T��Δ�To�
9/�w���h������������a�ߣ�b�y\��'�F,Ռ�o%��w�U/�ժ���n�M�*��T Ƌ{�5NJ����ԢT�9L��;y
_fX�D\���u��ַA���:x�"�)�V%�V/*��]1���#
���)ԋ���@�X�"�SV�Ӆ����4u�.�f�?��Uչk�%��Nj����;c�~?�]Pۺ˄�W��Ҍ=V�듍�1�
+E�	�
ֻqd{q�׉�;�
+�N�
������YH�d�fttc�
���#&�v�P�tQ��jd����1�o�
��­�R)�ʽ@}����<7�	�&���8�w��y�y�b��H�
�04���͂
@>� o`
�����~�M�<��a9����(��n
����c9̼4��<o��/��E1�������:��ɕ��7e��
�.{��Շ�Pi	WE�Y���x�ޝr��
+�EJ�7
�T����|4��'�r41������� n�s��#?�Cśhk�6
�/ϻ���
�7�
n
�
��HIT�����c6�߱=�z
z!�?z��_)��c�)�u�e�T��}nS�3��&iq4r����E�U�Y�X\�K���88IX�`}7yIi��
+��S��iG���r3�8Eiօ�$f
����l+n��.���*d}0Qe��:F����S��S�퍆��֯�SȺ�8��~�%; [ژ�l0~{��^��
KbV+�T
�s I��x)�oe���q��ra5),k�xU����Q"��YN�פ����ܾWu8G�Q�d�!H�9�2�'���31c�C\��!Q-�;U���9�
�d�Z�o�8C�N�T1+�hڟl-?63��z�,�=]���Aw7!�z6��*H��H*[|C���_@m���s2U�r]^9��n������0�"��PuT�t$�#:H���@�бjy�b��~�=�噛��*��ku��U��Q�m�9�]'pu
�
����d��SۖHgi۬��6r-���>`Oi#�T�2��"-�!NSn\ z��$���S�C%�Q���%;���O���z�c�T)!�M�.wf�.P�o�1���U=B��l1�F�#F0HD�\u̞rڜ*��u�jQ��O5��u8�E$�7:"��І���(Uu�AN�gulW�YE�*Z�"cT\���k���Tx�l�x)�$��<�hT��',ʷ�
�����y�={V?$�N�)�D��P�Vl������]:�|�d��̏��"���w1*��=3*gB'����|�'#�sB�F�S^PR�8�?
�
+$	m�:��@����l���(蕉9
Ea,�_܎i�ǀ/O	I��4�a��S8!��%UJ������8C�(�&2�J:�;{��Mጫ~J����dm��rFW	�jg�Y�?��;��s�8Ҁ�����Z6\Fq�D
,���H	Y'{����
$a@Q��k�^����r
��h��"j�}+�m�j����y��s�������әM���D]�_CJQw�)��/ʹ�5���״2�s�7
�v���}���7�
T�V���S���6~G���oLF
��
YH����Km�k�v���~�U��.+�j
p��o8Ɖ$�5�)�\R��������(��g��H�m}�w�5j�N)
++����������p�vO[n��Hj�͌%=h��
��4�^"��l�q:i����%S,��P����=�Ƌ�G����T����	�B�ULR8LW������$G�xLcLS��},�?�E�;�8Q��E�$?\.�e�!&���KK����J����G���7��|�_
��Ҟl8!>�8��(Y�B�I�Y�`[�}��.�B���b
��T���$��=U8O��ŧ
y��P��-x��$�]��0��_���
+�j
��(��sO�����H|/=�wKR���������`�
p�t�l>f*�ӡ����uU��<�=�T��s�(�&zpK��A?sL�o`N0M�q+~*m��-��~F7�^���5惬H]�${��|�-Ҷ9Y&�=X'�V�u+^�ϖE�m���
+��Y/�0�X� c����A��dP
c��_X��
�V�Rx�6���b�|C�6������^FeC]���o�-�F?f7���Q3�V�>͝y�Fs���y]�ݯM�F�����͊��k�^Nն��I�����#F�Z�.�7��Ɔ�Q�f�eϫCJ�n�;Aj�B
JF���w
+��mԗ��6��t�����(�I5�beE���l���X���Q����͌��
��
i,)�6QS �1zJ�ezVBf��
۹���ʹ�/���	HQ8�9�SnE%�o���-�4�NJ�`�`,��)�~u�t��yQ��N��]�vح �p����+e�"�x����N�6y�*������,�7�$'�x�\���C���QL���[8.d@}���C�ɏE)1���D?@晹���b��$�?7�
+	�Y��M���
N�|�����
_�Td'wa�}��0Z�������<���9|��3�����閗3~o=��Y>���l0Wb=P1��jmE� ��X�R[l�o�uv:.�C=���;.�a.��Bř�S[�n�W�J3�ǟN�1='\Xr���8�۲��:K�X��j�6�e	�g΀a�p� ��%z"��K�1��.c1�ɇzɭ�G�T�Ri�VB�e����� -�)K at iͬ�!�u�@_�`�&2�q��
u�p�%P ���
+��S�Ч|N�WP� !���o-t_�
��n�y��V|�ؤ��賐�e`Hʏ�E�=>\� 
�Tǀ�|��cҎ�k�IS�T!������%Gu,%[IR�'�������+#T�}m���3��\��/���df)��`����n2�#���\�M����(��CQ�d�6f��l��qG����v�첵).Z&���w�I�����Te{�������JQ�����ܕQ����E\m�`�p�`��Ҵ���\�z�[�v7OV�o9ݜQ�����}��$SSFMW�d��ny��u�я�:�	�*�o�[��3� ���
O	��
FRJ���0��ո�l����+��L+�&�
o�E�+d�-�
+�@�?��
^f�E��ko�o�\fy���J���8�z���ΰ�Xmi
����
-Nw�}����OY�p
z&�@>��g�ݪHc���.��
��]7M����z�#�f�����e"�g���\��a��@�\�qyºJc�\��3ܔ���
�����r�'W�QV�E�
D�|��P�L���s�\h_h�
�#��9�Z-
�T�d��L�>˼!���WS/b�n�iA�3���.1Fx@Ǡ�3UN�N^n�POZ�d��t<�jGLy��s=���>�vW�O&�-8ךs��hv���eSȉ���`wPU_�c�a��ř�=շ}�m`�<<�$�+��UV�6�6d�����o�88{��η���zkG}ڻ��<<�7�\���jvg!5M��!�w�&�GmpfS����g��O�3x?���
+wZs�LR�q�/�~l�K�]Q�V�����:�o��m��<Q�'��

�
R]�AMXy
��u��
�
^��ȩ����
�$�}�!� 9LH��aH8��h��ʡrTtD-�*��fY]]wu������u[bg���g޼ߛ����"���ȹ�� I7�����H�R�7�H�B�H�u��d�t�
�*�Ჲ=e���J��t�j�|���	�#T����I�/��W?�{�Ν��O�^��'�`�����v�'$�^��E�=7�I����TF�2˵���7-��^�'Z�"[�x
;�����[U�7�,���Q
yWrr�9��E��6c�y'�I� �gIR�m��2��� Z�Q����
+�{0K�,�^�H�/>�>G��@l`�T��=FZ����nZ�H	�ѳ$m�¯鵩�K�A�3D;w�����7����ŏw��^J<��`i$�M_�x��8w��U-,�/h!��pbP���1��|*�k
_U�;� ��N�45�����j��<?�>�X���_�:�]��$
%�
ͫX�+é�
��Miw z�z{7��`fOE���5Fo�h�X�}�fL�}��k%�J�q�_b��_ ��A�5��4WK������'h?�:l��TH�mm.	�m�&�"�X7�r��V7�����l̨b�]r+�
�O�pK�[�{0�E�uwrf�ӵ�Fa�jCCP�k��t�M�ݻ�Vw�[FR��(�Y�-V��E8����	�����P��?�)�p>��͛�5�	#��T��t�F%��
���3�	qhk����
�;�`�LVOp���Z�ۓ.
��j��&�\
C<G�P��J�qzK�md
+���A�>ʡ	<�*�g�!��r)J����;ȁ��&x�K0�N�\��B�&���Գ����$�bԍ7f��p��t
(�0��H�
2����3�ӲG1�d?ź���
+�b�Vֆ|�����\[�w+�tj�j?b7����h���wJ�Cm�m�#�b.^V��B���DR�b��8��E]4�J�
7LG�c.
X
d���/�a�&ڎ�
�@�顢
��zQuֈ4T��q�i˽�èb˕ 4�3���~,�y�moθ�[��0� �
+�l�}	��T�C�u�L�Bt
2��Z���W�>��Eh�@+[���y����0=
+�s�U"r]�;�û]���(��̏{�����e� �E=�m��a^2�'FKv�~.�Оm��0O�j(�e�s�ߺ���
�Pk*!��3�
I�B��
s4�{^�|{6��k\*
�}X�Y��Ǡ���D�=A
%��$�hǹW���ǂORV�����
����U�B��ꯪ��r��+C�a6���� ��K��ԣe�� :Zڿu�6&��?�W�&�k�).��]%��]�,l�b7MX]�[H"}���WL)RI�r�f�r?A��ƁY�&�I�~_�IB��$�{X��l��Z����X�E�&|�w�#����؆�`��_v�ߢf���u���3����f����m��8�9�?��9�
+̟��N�Վ��`�jz1*�������.�@��爎܋��`�o�ْ�J_����+- �4α6@��/DWE�jE}HR�Dl���;Y+�
���z���/������1�D�ѓ(z)oι&�;��.�4��aZ�#�g��
s�b�Z+�X�Wi;�<~�n�"�(�	���M�'��b6��!G
���lP<�^\��nM8-�-a��G+dyXP�^��s:����0q
\p3b����W�u.�,R�&�r��m��#<�He�ĸ�vQ�l���.ˍ���J>��қ�s)��lej�(�^ ��,�=�/����FV���6fj����;e���x��%�D�����k�%�!FW at a��o2QT�vs�
�5��h�0�B�{�U��H�i�GCO����zL'�pb�I�q����+'_1���Lv�
+���Q��A����%�
��$��[H~�}{�1�f��K�ٲ�:HmW�S
+��ëd}�2w7����
j����<� �O�����7�i�2�G��;S�W�ݒ�!�@Y�s�Z~��*���PƐ6�x�Q�ܡ��/9i�7c�G��HV�f�3��R>K�����2j�Z�xH"Z�"�)�
vH�D�}
�@���}	Y�J64�T(P_�(*�C]���mi���S�Jq�OZ�g�A��(n�y8}wν3���7���;�?߇�*x"D���6�Hae�Z
+�5K�	e
+tE=H�������\ƒ�W�8
��7��2�y��m��]L����y���	��1N<�8͍�@��������:�>
�>���6p������ӹ�<�AМ�*쵮�5M
+��N5����g���ܿ��]7�c�D�!\����O��6N�(���b���H����ֲr�t1g���u��N�'w�ߢ�e�Gr��u�b�J1��a�#�g�i�|��Gc��"����

�'x
��&�YH;�����4
�T1}�Ϯ;c�V*���ܲw��f����|�H2;�R��l��{��K��*��G��ZPg��׸z
*ۿ
��?ʗ���
+�ד:�N����9u�����L7�o����|j�B�jEV�QR��!Ū��;~;�Z�Z����xٲ�
+�(�񆜦q�����E蠟�V����7�:b��g3��h\y����g�.:O������0�7��Ң�
�b�4=�N��Hdto{�<��WZgH
�NR��
�RZ\��s�W*Zx�� ƻQͮ�l<�I���Ts|���X)���c?��p�\B� ��K��u��e��|0|/a�hB�|樕���sEG���M���s��M�d���?�*G,����H����R�g�[)|�3��
C�Q��{0b��Iט%9*��X�����R
�M��U)+�^�
�P�,�p�y*��~uR�Hw,r�~L���;�_���v
N���"����ۿ�]���//S{̑��Ͷ�^���0X
7�4�����㊈�#�ޒ{Y�<mg�$���5`��Vs-*l��ۻ�g��r��i�˕[
����L��X#DEhgq
!N-_����c	YP�a
�!w����|Em�"�����P�D�OUHS�r5�a�+[��
m���
+�Wh�*¥{I/1Ywû�Jy�׸j�k�@p[�����z�3*R�e���RXwq3�0���u%�B�AŒ%\N�C)�W�'5�꡵
+&�F+U
,��d5�gR
"J�r��VDB�SDO]V�[EסdyVӃ�1,+�Iev�"���`��Wrw�Ka��
�G��|����`��%+T�VR�C
�F���{Ys*���Z�5� ߬�R�e�s� Q3
+���j�QA�4Ӌ<>���$�.7�$C$p��
��
���A�)h����J��ew�T��*Fm���K�g-��l�m��*{��{�����v\ܲ�s�Ja>3_*ݑ���ہ>��V�5�|���WG_
�>��R��R_YL�!�R�F�jz��	S�5fځO�2��<�� `��}I\:��X�i�Zk�R
���H*��4����[(�x��X��$u|I9̺TkV���z����l�_�׼g�C��%�*�
�w�XR
��nY) N.�9+�wZ�[��E9�ľW����J%�w�p`Nj���[���.�b|JOsd�W,��R�~�#�*	Ľ�yF�dwC��p ���*�L(8�Oe��lL� �˞)A���
��v�f���F��ʹ.��Kn�d�~A򥾺]�Di��
(i���]Yʯ�J����ߟ�?�>�w�[侾
�7���KK�6�w"��!e��D�p� �5��V*
�3VEa{:KoED��cɾ���J�#�oOU4�
��4����l�TjF�k�,>�{S�?ý�Sk�>��Su�����=�|��j}�����T
+�SU�.nk�.����������m�c�Ů)Rx�b� T�<�T�V*y�Ù<+�`R�C�;S�^����0�-�itp��<ȗ�2I�Z_0�ȡ�VVKHW�ol���9�=�f
d�

j��b��%}D�C��y�{�s��I*�{ZL����1
������r`n}+�D�����_�*�Uz�3�����}�i7��7��9_�k��jx�L�+u	
�;�FxL�.�m�m���Q`sK�z�������K#�>����&����ޗxiB�V�^�\s�3�_X��X_�ر��C�+ҭj�|S��	�k�Ͻ�|j|[����X

+Ά�BL���.�?�\��D��C��q��ߢ7n�O(M�&���JO����������i�ݖw0�� ���I�J�LM,NCOYPoQ�R�S�T�U�V�X
Y#Z:[Q\f]x^�_�`�a�b�c�d�fgh#i3jBkRl^mgnqozp�q�r�s�t�u�v�w�x�y�z�{�|�}�~�ˀɁǂŃ„����������������������{�p�d�X�L�@�3�&��
�����֜ȝ��������|�j�W�E�3� �����תū������}�k�Y�G�6�$�� ��ڷȸ������~�k�Y�G�5�"���������ŵƣǑ�~�l�Y�D�.������оѧҐ�y�a�I�1�� ����ڲۘ�}�b�G�,��������{�W�3�������q�H�
������v�U�3�������s�I�
�������a�)�����\�
���Z��  ��,���
+






��������
�
�
�� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1�2�3�4�5678�9�:;~<|=|>|?}@A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�c dee�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|z}o~dX�M�A�5�)�
�����ۈʉ��������q�`�N�=�,��
+����ٖɗ��������m�Z�H�6�%������ؤʥ�������������w�o�g�`�Z�T�O�L�I�F�E�D�E�F�H�J�N�R�W�]�c�j�r�{ĄŊƐǖȝɥʭ˶̿���������������
�*�7�D�Q�^�k�yކߔ��������������������� �,�8�C�N�Y�c�j�n�o�l�d�V�D�/���  �h�	2
+R
e
r
xzzzyuph^RE7)4=
@
?
:4 ,!#"#$$�%�&�'�(�)�*�+�,�-�.�/|0p1d2Y3M4A566+7!89
: :�;�<�=�>�?�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�||}v~oi�a�Z�Q�H�>�5�+�!��
������؎͏Ð��������������x�p�j�c�^�Y�U�R�P�O�O�P�R�U�Y�_�f�n�x�����������̰߱�	� �8�Q�l�����»��!�C�e��ª������9�^ɂʦ������2�T�tҔӲ������
�6�L�a�t݇ޘߧ���������������������o�X�\�[�V�L�=�*����������b�/�����f����M���q��  ��	T�	�
+�
�
�
�p_L7!	������}tf
U
A
,   �!�"�#�$�%z&d'N(9)%**�+�,�-�.�/�0�1y2g3U4D526"788�9�:�;�<�=�>�?�@}AoBbCUDIE<F0G#HI
I�J�K�L�M�N�O�P�Q�R�S�TzUmV_WQXCY5Z&[\	\�]�^�_�`�a�b�c�dxeffTgBh0i
j
j�k�l�m�n�o�p�qlrVs at t)uu�v�w�x�y�z�{n|V}>~%
�ہ‚����r�W�;� ���ϊ����}�b�G�-����ޒē����x�`�G�/����Ԝ��������q�_�O�?�0�"��������۬խЮ˯ǰı²����µŶȷ͸ӹۺ������ �0�@�R�f�zƏǦȾ�����
�*�G�cЀџҿ����'�L�sٛ������F�s�����M����6����+����1����M����Z�����:�{����� � � �O�X͙�~ʹ��~y��~e�L�~�j��~�Q��c=9 ����~|�4�~c�l�@~]�̳�~n�f��~��C�~لOiZ/�gP����8�v����}6�q��}0����}>�ϲ:}i�^��}��,��~�
׉_L� p����K�-~~,*���~��&E()D9�v��yo�w�y���=�TS3�wI�!
�D)�J��%����OBv���w�N<i����_��ΝD�g�A]�3w�^�|�
<�~]�
+bʀ�}�S���W���?������CN�<��-Y�4����� ���B����Yp�z�S�)j"��{%�>6��4��;�
>��FVW���m��
+S�^�D�i��*��bPk������pة�?�%"�1�#!ϼK`���L�<�n-e��2*���+�)	X䥂C@�v2l
Q?����(=�0�q��
Mz�ǃI�z����7ME�Y;���
Y��@K (�-� �\��U��������&>�r���I�^���2���I�Me;Ya����"��V�N�,S�;��o�_
%s�
�D;��f�Ǝ.�����R?l
;
0Dq�>�
��8z��D�KG)�3o��+�&�<4��@n͗0�E��O�9�4��#��Ґ���n�W9
�b���_��
7}B�2�yːv���/ąJH삻Ȧ��p$�ȫވy;�Æ���ǘ�f��o虔�F¨Ls���I���,Kh�W2�!�A��jHE^�τ���� _�w�d�lX�g�g�Ωr!jU)�[%�B��\D��Cf�p�
�<_��\?�k�,.���w�Ȳ����i rJ����R����ݐ=>0�+cv���Z�{Hl�l�
L���VA��c�۠����
^{6o�Cҏ���
S�
��
م�bȏ���:sz
�
7�j�P@�Q����
��;[�w�g�|z3�0Uq`!�P����-~|���X�3�+�z2lIђ��:�_<����a�X��S5\}���E�^����G���
+�X��J4�^�Ƭw��/��I!5
+�bn�#�F���O��� ����`.ܙ�-�J\�!gZ0�
+)�ݥq Aß���O��k�V�
��^B���f8KĈza>p-F��O�J*����Yr(���".
��O��'����q�ä����f��rC���RJ'�dc~��h��!€�?�`���}W�zBd;�hѲG��ϲ�m�T
��SAi�j9�<�� �
+ߨ��%�@`��8xL��T��qė=�
,Mk
$hJ�����d�����x_�r�̰gʱ��h�t�G,�K��
ytomVK0����X�?R<�J%��m�q<UG]I�X��'t�9E��
+$Vt�� �������ܛ8�i�(�G�T�+��tԃ��]
�6k�N�*���d�$m[��w�_L��-h
��k�,Ȭ�
�&º����^>���=Џ
�]ٛ��a��`sʠ�7�
��g&Gr�ŀ�?>��r&�z`�b>&���z��
%��sx�
bw�&�{�~
�څ��]"W�R�%��c"z �D
����zA ����r���s!֝=jcf]��rm��A��NJl$�� ے�#ؑ
�>���wTf�
GF�F69�9<׵.�'S�Z*�˺#�-�Jl.��Z�Zx�%m*�|�����
�o�	�2�ӝ_T��W�K4
�eRsu33'jRF�B����Wl|��
+��F��gml0L�1�
,
�����y�+�Hu��2��f;�[�T�0BE��{�:���qn�����to�T�]o������kI,
+
��LgV_R:�Kϋ0�d�P?=	��v��E̷փ(M4�m����\��T�k׉o�����,�H��=����������Z��w/��E�I�-LQ����[����
�8�F/�g֖'$��?�[��u~f�g���h�X�j����ݚ-�	VI�m�
K��Հ,%i�b���Q���*e9�7���������W
K�����M�YiHt�X�T���BUD���w�-�4��9#i�ԗ/�r]�hGވ�/�
+
+lD2
h�‘�%TT�T*F���dw">���G��Y?�"��[f
r5��ʊ4��`��TAo��4H5�rW�S�8��Xy��;$Yr���'�q �vUP��V&�����4m�/5LJ��E�:��S�7��Hv�y..�� � k�P  �X��Al���`��
+��,e��:
E�$@B�Kr��.!{�A$A�,�C�Y[EA;|�
TJkU>���4�1a�Ɯd�cT.�����Us
R�&�Bc�h�R�)�����
+� Pd;���ʟH�b����l?1;_�:i�^��m�Mh9Ӝ+,�x�+(�‡j3�=P6u�>��a}�&���b�
(���0�=��.À<��2&�m�%�u9��_�~z�����L��!�S`(�6͟>թV��
�l��W䨸�m5y�pg�!�2��
<��	P�R%�wC�>��u
�b�v���b�F�.0���UK�$�K�;�؂�P�,�!�rA�5��%\��v���"�
+[2�g�w���dx��J���:��_�'�Eښ_+^Cژ�� ���I!	v��,���V7�2UJ������L��N�ITU�K�ɎIy/R+�=+(֨����v��6������!M����	��@P�B�%�R-��-�3��|4�-�����)#ͯ�
�w����.�ܘ�<�;�
��b��#��;*��>$e�G���
+�>�3�
�����"�
و~A��Z���$xOU��x��
�
f𜓜x;٥Q��
h
X�(�Z�����x=�`dš��
8�b�†i��d�, ϐ��!�enZ
+b���
/�޲��І�����2��P�0~�
�+��1�b��a�
�k��tT ��	�?�g�)��˧�9��
С�`.ޓ�`>'4��\DRd���Paxԗ��
����?i|�9�,�t
��Ĵ�q]��"��m-�9�O�D��'���E
x�>�#B������z6����N
k�%��tm���6BDzV��Q�G�
q,2�O:��
y�{i��H cy[]�v�a�Z��T�5 �Ȩ�R
3��4�5N�@q���G!�fYXr����{�3^�
��M7HX1��ey����������8����7ҙ;N�������P9��tn��/D�=����}*��I�:��2s�̋%�����G{��<Ie�d�X�w��39��5�I��ot=�ޓ�*
̸'��
��(���#^s����{�\���d�Y����dS�j	V���΢T>�7��a�b����� T�B��m�6ۺ�4JZm�I��
׶�F�הz�\F�D*r��E�y� [...]
+$Iⷱd�`U�+�����z�3��
8"}��Y\�E^�\Q��ܵ���)<&uZ�!
FM)V��"�ڟ}���&à/����
�
���5��
����O546�PW�눤0��
�f�GlE�bd�c
��'�ƪ�r��Ӭ[��{�K(��"M/y%���0=����zF�Bx}��{w6{Y5��0��%,��4�0�R}ԓ�vT��p>�K@�f�R�$�7H�U�(	�����/1��0�f<,��1�B�S>���٨RI3#&�&���p�a�5j����1��9#yT����H�9c�I���[��է��j���U̟�~��?�����
�+�7��N�zM�`k�|-�k�qJ�}(Ҙ2������S��aӼG�i� �;� ��b�:`uǤayU�}T��	2����Ftm�̔
%OpuD�����U0m~L-_������:�q��W��g�0~�huw�-]�
NV��rP�
=<�]x;Y���1�iw@��8,���n����\(z��q�������b�
!$zB��&5d��n��6
�1Q&�
 �&�
��C��u�Ўy
#����c%$7�]w'z\���0L�k{8<Oz	���o%4�P�˗�
+�9hz���͊��$�L�mxEFGO��$���Dc�����n�:0td#�*�v��T��2��.q0��6���v�g����Aԡ�n�3����l�'��H:�<@�I˞��8!�mR�S����s�^���U��g��f B�
�u�2L�> �;��f�G�S�
�Fx¬P�~���K�����m�%t3�M��� �c��cM(���bC�B��$
_� ��J�,���@��՜   ��%ӸZ�
;�.�6��B��)�P��T�~��~���:_��tH�NI�T�S��c��Τ5���_�3���b�O�6�-[o�
�7�$���c�n����:�zN�q��n�E2~�7\N��T���'�
�"[�fTT��^2F����
��&��+�����c5r~ԕ��(����j����l
4�8mW�DC]X�#���<����n�_	�T�� 45	�C0
V���~
m��&AG�A����7w����@�w����;����Q8� ��Q��
��?d��9���#1�y�ʕq�_eS]y|�d�*�&6Q��3�0J(�WG>�H���N� 
v���Ag��+�[�o:y1ډ�G�m�UV�'p�J{"�����M at 3��X���|��*�oƙ�ޞ�%sfJ�<��ߔ��[����-0R'G
��i�++q��NPF�\���&���XT~y�k�P�x�>���–����������~u2LX'��P
�M�O�W�	�rة
Z?q�U�����\+w�>-�q}y/sR�Q�Q�����J��@737���K�a[t̷�����E�8X��,��T����p����!��P���V�� K$��`�����Κ�׵�b�u~*L��lB�z-��<�R&,��+?�AP�]�o����L�K�ِ
'y����
�Y�?�
+~�t-"X�n�v&���?����VA�G��
+�
����7�W����h�K��D�Y��Z�%4YF�
g�[�
��� ��C_�M�6ЅLJ��!��)�9�
�!6��-��l?�@��W
���?�t`k�;�����p��}�
+P���>�f�{��i8Db����Mp/�F
��_<`w�[�U�q��.
���Y!�'i7�L'� �R�z$���v]�c�-�ީ%HY�~�ٕ����
�鞀ws{)W�a��˹��ԑ`����{�[z��
���ϡ������Z�&
���z
+
-��
��U��@u�BP.8�jz
�B�{G�tϤ1�ޕq#
���^�o�2��N*`�D��Z�m錞c�@QY��@����O�����y`��ŕ^ ��)�H�?�?��s	%�����J�@�f���-���H�%�{#}ř�PK n@�u�5w:=�Y�X9����(5#p
�9#���A�v(~�-�"]�Qb'䠡�y����a
+�������'����£�	+��v
O@��%�7_�*Z-r*��~z Ց�4��
!��w�Bp����G-q.�a+��c��"wmqk=���WfB
+
k^����0����>n�pu�5� �㞃= �m]0o�����-1�:ǒ~��%u
i����;�p�V��O�/a3��;0�o��Kܼ
L���6��E���d@�ZU%�{
����^�
Ͱ�y�O��V�NHLm���u�?�u
M��B�EQ1\�IُO�u�i�@L����7�Nk\��dd��[i��|����lRܰ��3"���r
W^ ��
+�1��9�~�(�V��ZQjsf���b�5~N
l�,
$LAE ���\�����Y�v����3k��"�*��Ie����.�gj4u��D��k"�*T�~~���g�^�
�~��<|�1�c��Px7��
kF�84�K(/AI�\ %�H�
�G;�'��6�������`kK����
+���Z�J���A�Fq��K�q�$5�GT��#.��a<��C]�s�zO��9�����@yQђ�-��D�RP����G�D{��n�����o��^�7�P��vU�v����T_F"�T��e�
��^�9��^�9���(Zi����*���J�|1�"�]����.��g:��E�TI�FzN���%T�|�k&�J�l���I��3ʌ�+�r^�qf��SNM���X��e��
$��v�{�ꢫ?�I��B�-��-Oi�0iX�o�
�葚T\���.%kR&-?(�m��=���?~3�Jncu
�/�mS<��Ð,��Le�H:�
�i�_+MSV��a�
k�@  \Ѓ*��+w��qDS!h��e

+�4��9"(h�d}+ɗ�7��)T���	b�ǪԪhm��`Y�ջ��
�s
<��-�,@��͋������SCg�Zw��N�	CU�c��W�����-JGm\Q��A]Q�]�h&D��0���Zvnw�%����0��z
��MT�X�I����:��l���<�7�
�a�`	���5�P`��ݰDh��k?�(�b��	��
?�`F��g�����ű��y���=�4EJ���0	GvQ�O4��W����d� SA�nM�C���
+ұ|`�7ø_��vY���Io���R�yYqE�,D�;�&Q�\�B�xW��r���v
t�

�
[���\"]����U���ˋ�
����w�髐�<�
|Mc+�����
�Z�9�(W
Z�ʳͰ��f����t��~X)�U�i��?�m�<P����	���;��G��-_k&ڞI&��M�L�<�:��:͹�7�����Kƒ���KX����Ѫ��W[�5P7W��tt
b�E6ռ�z
������~0�i��W�űہi4
[$�k����i�l�$����VRc4ӫ���Gk~ʿ�YQ�:ٮHb�F�G�X
~�Nu�.�kf
��c`�m
��f��4�걳�qVP~�:�U�
#/b�E7K*�W0��]�q�=$ܭ��� �X���QM52ym�B�S<l�U
+�ZҸL�eD׊=�

B��kLBR��Y�^�
�#z�A�%�ڥ`r^��'UIo�Fg�>�;1
p�'t.t-SSUn;Q��Y(sў��*�M�8=���
+BHZ#
��GcD�S���{
d'�,U�t���l�=��,}�*��v�cr�+�]�(_�1r�Ø@?A[��K�Dl�v'”o�>=��ԏ������[���?�Q�
�
ô n!ܘ���e���o���i���B]�u3����PzP'ߧ�%
�4�4Qw� �	L7@�?;�gS
Vjgo�ho�p�7�sy���
�R�\7�����V�%xL|
3 �n��|�2Q|��-��Go�t��u�V֘��Gk�}��fd�'�̐�yQ/;^��+b�#��&�~����ي2����(��<��c 3�;�n`9��2[

�Lqzt�.��)�<����lJ�a�n��
X>��ɚ��p��Tֆ��)��$��Dr�u:5�z�j�,|�~��0T\~�>�*,6�Y
+�]�7E9!��7���;a����u�*��8Y?��Ң��#� ���W
�f�iA�~�\���mB\�$�O�wD h�E��16:_�����J��qB���R%��*X���3

�!��O���:�`I�����o��k��2�+��}�Y��'1�%Y
�G����PMJ{rK
�����w
��
����_��
��L�&N�����
�N�yA '�ճmﺾo4gz"�v;L�	j�e���
%Ɯ���{��N�S6��U'*���@�d���jNc��v�o^=�Bi
���7�95���l
�
€A��ⶫ62�7�I����C�k�y
V�_}B��.I=��YR2��U^�c���<z+w@����b
+�"���8ۺ?pG�Z:�Oȿ��7�Ý��T��ԐI���
��J�A�����x߹rx���n?(��؁ w�h���?���F��O�Gj{�D
"��La�W�e�}j� �w��*����62�y3r3O�(�1�;LS��P��p��a?��
��U��}��c��qT/+��~���3M�ҫy$�=IQ�RS$�@դ@&\�l+f���EI��1k��ڸ����v�x�}_���nϐ��M�fB��y��"m�
�9�nQpϼ
Ϻ�e��\I�2��Gt3y����)w���%�u�$w[6o
@&zܞ�Y^�Z�w�;<\��b���m�����"��������{���3
=�s�
SN�Ӑov�(����D"��i��dM�֬Lใj9��Z�K7_�<��ې���ø��9�74�P6��
�0,�R���?����D ���m���6��.�D�t���he3
+����>~�o��\Ƙa3Ƹ2���@e���U*Tl��m�c�ӱ����� �~� x������n��N��������U���)o`Iχa]�����P���F�ŚVTC&�ϣ�࿋Y�=�d]/��
�.��.F�BX�s+$��=�}buM�>�RWm6�Ŗ6ᢐ�FX �5�x{v*������j;�zv��<���_~���� A��VUJϐ��^Ij�Q�x�シu�Q�o�=l�K�_��Ց�E�kZ\4��s�qU7��vOa �J?��Q)�4C��^����\��k[{��3��y�~���M�|J��'g��4Ay,$�0�( j�H��l�:Q"V҉�1X��&e��������
�s)M�Z��(�W�
�|�Ϲ�\���8�8&�t��c�p��Ҕ��a����
�͔����
�C��C�
GU�$^�fb���|�8u����̸
����&���A֍�9k�e�7�;�㥦���k�o����Av���Տ0o5����y�'����������<�!�����H���P�4
��|y��C�{_�2e��lTr�s��*��Idg_��'
V
+Fv�z|"��ƞ��ҩn2=�3[�"s����t�	�}N��8����`
�����1`X�i��]�x���(�U2\�o[v1�d%JOO&rؗ��0ܵ9�Yx�ݨ \��
��D�m����]=H�j�ovfd���)�:�t��b�dH9\
��ϛ�Y�?�8��
<%�}��dV�ەh��nu�ӻkV��3�+��(+�$���
-������#��Ջ��QҰ�����Ж���X@��h-Nd���$�a��>�M3��q��"y���$�[Y�@S���g�Ó=ݎ��P����1�)L<�d�"�d��rՕs����W��	��DJ�
+t��b��
�c�j��*���!�A�q
+hG�|�3j z�O���� ��|�
N�
+��*������%2#
�Ǔ�H�7!�
;v����� '�;��
O����~h�ĥ�%�,v6�Bբ��Tx��Dv"Lt�ïK"N#��.ec�}f��˺��d�&�T���R��AS�;Yq!������E,������AA�m?~������[�7��[ ��>
\�!�B;U��!�)/������C$N���$�A�³u�e�uU}�,3Y'��/J���c��	.8_[
O�����N-<"N�����awG��m��_+�yj~P�]ſ^\y�
X��,r-�|�㒒��ܳ���<���L^T}��,�^eDR��,��n�kqց%��|r,�!g��Jx�����=~�p{"��\ee�E�N;��Þ ��=���$���{q@Q��_��\?�/иLe���>�u��#��M����p�'Y��n�_e<�q㼅����Ra8p�LB�=��(�YK��[l��`BK����B#4;c��;H�S��^��OA<�J��~�I4,���$"���,B\HV'&fಀ/pO_*���_�_�#���&l��Wc�K	B�Z�(��|Z���b��+|���KpT��
+�Ar3v�*>�����>Ʉ�x\�+�0lk������O�Լ`� �F���cfup�.���wlC�n���KJIi]����&���f�����XPA���n�1ک���F�TK��BoI!��Ӯ���Z�� f�
)~��X��h���y���9�
ݨO��C5�����&�|�T2���Ӳ���n�SLB5eD0��:��
yP�;��(��w��9m��Ϊn�Wh����K�u����{�`��w��k�����
+��kH���>*�ڲ
��1���
�w�p5�����Q����݌�$
�;����LvvJ1��f����3n�*���T�g at oO#9|}����?V0M�5.�ۀz�{"
N�K?�C�_$
P�&B̆e>�(
q��I�u���`���|o�b|�_�0l2�Wꂝ�sC��ܴLT�
�I�a?�f(/+���P�Iw��B
W�h�g��šH
 ��
Ei����(G6

+���
�
�" �
+"(�H2�̙�dfr�	$��x�Z�EP>�ţ��
�����C������~���E��F�:}<
�\{
+�����%����
rH�6N$(߫Nᷘ_%�1�����]�2�:$����o��-�8ȥ I-qt;�'k��TjJW^�}�k��fQUr\�u��
l�N�
kHn᫂�H����*�W������d6��
M2	*{���`�V%���VR�oJJ����`+"�yO|s8����6�V��y8�
�:+����;��9��ɨ�=�.q�q���ѝ=���ɥ��^ӏ�w�ld���G���;<�bSh�
	�
�� (�����%]�
�N�}uAܹ�
�`MV����?g�=�&�o:R�����(�tWS-{66C�S����������U���foEI��hzE�'�ܜ��&��Q�8,�g�]-2t��%��F@}S|��QJĜ�h&S콧�bor
2w�q�|�o�����/�$�
Ĭ�7�Aң���I�MXIc>��f���H^�2��`�zB�ȳ�
	ŞO�*�{M�2MoR�0�i����:�T�~%�$�9ED
~c�j<}
���${.�-��+P]c��=Vz��pwz\S�;!?���
C:�G�F����Iױ�q�Y�Ş
݇>;��]�����m�S�)�yr���Ez�_n˕�aI"l�|s�G��������vm��ߵ
���_7e]֭�>��Г��U�)i:��D΂�G�}�V W�5*��{�f��?�
+�(��$�p\)9D$ZY�r|�����(�4D܁O�H���ʳ
;ܫ��v۱j�x�Lr_r�
���;Wi��
nV�|�R��u��dܦ� ;�@������Y�N�<q�Iȗsc�E���^M|��K����ƿ��6��#Q�쀫��Hl6�\�r
��E��jJ����K
-�β+� �x��=��j1�(~ǒ�)�C[vQn1����򑾪�x��V�
���a���u� I[���
8��m���Y��GeLV��(X/�%W}��%
��
+��M]4�ǽ��A�ߗn�װQ�ԈX�tGd�Ƈ�D�\wQy�R�>�l-�Q���nJ��Ȳ�c�/�����14��
�C:�'K��&���̕BO�J{ߴz�f�sW��|F-��q2��
?���}Y[�pXd�Y<\��v�+�
�M{��i�r��8��~�LJޯ����
�vlL:��	?@���o�[g�`���}�>?Ur�ǛI2��L�k.�}GpI8�Q�RV%܂L0/PU���E��
?�ɹT��c�ۼ�f�H��s��^QM�C!��)�$
�;
�ej�
�uIy	�W
����6���#L��Mi9�Ħͱ��P�*���H��ʘ����F�g��]�m��ߝn�+|���X$Z�6K'�
�O�Q�J�q ���m�(B~�lj��Su�Z
�ť�bhW��P"��z@�U�
�V��J�΂\�,<\H��A�
��5���� �O�af΍�C75O
����<x�5�
��MKQ�����e%T�f�ʤ��6
S
sFt���TOU�t(���
�2���[
+ES!.?Ӕ��#��C�:[�6�$ߴR�2G�[�D��U��cb��Dx(M<����}��|�y��%�����}�ђ���Hm�zy�Ey�)�9Didh(Cp��K�o���Y�9_\n�i�Qsƚ��Ӯk�X3��6R7��U&�"c�T4E�ʈ0�X�,t	��:�T��/>Uݮ�x�7�����F���>Q��L��~:ʥ�#�]�[eTS�2��%��c�
���Æ~EW��g�9��i���%�3W4ފ:�}޼0�_�X|���-�ƣ�µ������V�u�8H{���Y�F�"qĔ-�F95E!L��/���3z���Lw@��
"���F���Rm�O����Q&�[�#�����
�Z�O��/�x��ˤ�r�~9�T0�0b��ܬ
�4��Pߋb�>_nMFY%��<�ip
+�;R�x���@��|���qj#�l�j�?Ape�  �[�ۊ�x�{�
+�s�H�t-bM�#���t8f���5�}s�c��0�f0

CcB�K�R�mc�E����k���ץ�JH�[�ۢŚ<!)�N�o�OC����I}5����2���
������0�9���tMب�������7B���0�؋��
����0��z�D�
K�
�Ye��R�U�J�����ѐ:N::,#��D~6�ž���4o1��l�`��q5��X��U5G�"����Z4�tX���� ������
��cV�u�{�_<�9������S�N�}h���%�{�nԾ�"V}V�"C�w}�t���)�b�3�zFj�oK�����j2�'��Q9
+]��\Bȫr1.8�C|��.x8�~��pG��m<�ϰ�"i��S�˨�
�ڠ
u[��)�E��k�+WE8x����5�
q�g<k~���[��0n�&
ˊڮ�c�A��a��
Jú�g���"�:�"].f��f�5
	R�u��B�Tu6�u�|�;4R�
�'���hNp�\@I!��Bq"��:*��pX'%O���$�K#(�
�}�vW��&��$�����n������x���T�eحk���U�^�I���kK��l��

Y�+H�;"�����^�\��#G_�Km��R2�y���fbI-�ب:ݐ$;8�$N(�Ӊ�x���a
+ ��1��"��*.d8>���MO�a��N�$ʡ˖~
&(��$~��>�����t�BM%^i���3��ϐ�Ef8UB	 �
���'`-�icIaͨ��+��	��دR���=�Z�����Ⱦ��Ł�=�5�U#��5H����R����>njky/����s6��H؃�E
oL��y����C�G��/��?QE%��F�v��MMz)=Z�B.��ϡƋ��/�•��3������O��8��5&�Y�����K�լ(�ST� e�ҝ�ZV�
��x'�xaV�4�Ë
�*H�]z~�h~
�i�0d,�K��8��CZy�{j��CF')�b�
|x���NJ>�V�{�0��e�#|S���E�1b狛*_�R��"���
���37�����B���oξ��(p�3_�<ݥ%-��t��ɫ�B�e��t�Ɠ��px H��uRuɵ)H?�m�����
�f@�Iz�͂qrgM_����D�|Ce�
+��ӯ_���w�CՄYK/��Ԩ	��佨/���Y0�����y��̸
7�.]�*ѳ���a �!�d��[�m��9���#{-�;�W�[����	
��U�$�mb?ci�3�ؘs���q�6�ĂT�
t� ֠}���
�dl����v��{�F�yt/ټ�t�����̰��K��Q8���
N��"���4�ʻ�c �'׸N��s6��I��
<�fWϚvЕ*�҇�T� 
��9�
�I#�{�	��mVx�@�.
��\�EyT��}��W�*�fҿS�ѵ:'��hP��of��ħ/7��n�
u�3֭F����c���ȶT���5��y�ŴѪ����L��i�Ӕ���%v
�I��G�	�ɒ3�m?PH-k�
�;?�v�bkk���Չy��^��4o B[�*�Bo���R
9���^F�t�b�Iyd����W��$ګږ�
�N��T3�VYzl
((�m��"U�a.\�vz��C�5H8�H�$?sZ�6���=:�hh�B�!É8
+`,�
g6�$cN���!L�p�<�
b<���Nz;�0y�%�
)�
�"�
�D�B@�
;�.a��$G=�W+����v�F�v-�����|d%��ݿǁ�gOŨ�
�;$KF���lb�u#�^$(�b�	���,���jdM�[s��kx�v�͆��c��?s�B��fl�S����k����Me͈Ly�i��3�TZu�g�v���#���V'{�F�,���8+�5��%\���Y`kY o���C��,VQ�"�B�k�5Wjؚ��


a�x����h�k�"�	�A�ƛ�/��d�X��!xJ
��(}�~��&�|�
����	�h��?��.��������XS ����qX�}|�#Ci�ch�K��VF @ d��w^��NH L
+jk�u�j����V�JE)������swm��^
��VQe��^*�7�c�Su�5�.�:��5!{3�A/��u@v�?�aD��UNC�k���H2)�
1�z%�9�U鱛������v򹰗�!�k��0>][#�?�w�sb���,4U��_	f�)��E�ď�*	uä6Go7�6ɵ�
���{�����'
C���Ga��+���RU�A=�@��5_�rgs1OU��G��*��ʚ�O�
&��Q͡�4��%����
��nl�c=�%Z� ��v�Y
�Ze��ਝ4�?
eC����`��
�

�_���wvĦ10�K�B/��*Br�v�4όwM��	0����
r� �`���$
����C�ܝ�G�a6;g-N_�&ɰ�.`	�`�0����M/s\�P���M�f�`p��3������ 

$��A7�	i��	���c���(y
<�N������6 ��e/�
�c�POj��m�+�YЪ
C�z��Xa-��
T��`ao�t�t�._
,qg��O�����I]@��f"�	�?4|T�]�T7[��r�5+�D4UffN�]Ϭ��'�Md�d����Y��%A'-�:�x�>�j����Ӎ
�5!�U��iMSD�-rB�FL��&����^:O����F�-T��4��w
�������T��3c
q]�2��R��d�/3���U�\;?���Up=���@�b�
+TYRJ��3���O�)*+ s�W�u�.��[��L6�Ǽ��A�. �귒�h���oN_�=C��|��HW�	Gz}��w\��2�h{?�U��r_ס�,[<���4�Dm�D��〷����C/
�F�l�
M�r_򑹾�g"�P\T�M�Ii�D��w�$��=`
��I�Ӑ
��}����6�.��jY�x^���h}]����"�]���l
+��8�"ӽ΃ǐ��
L����"�H�ڝ��k��:^֖T��m�������� �.���^�@1�~qxT���l�U����#U7�����5��:��L�E|4�&W2��5e��xz��*̖̆;�����M�0��do�^�lpm����aI�S�7�kD#���'͊$�"lL�?b�A���DI����N�mEh�
��8��Ԍ*�"vұ�E������
���݌5Z��5
���
�`z�~x�[�M N&�a� |�b�(��ǁ$�ch�
�����|cq�)M�_���Ɔw>bSО$
��	�D�p��
�z�!G@o3���
��
�a]Pn�N2);K4 U����"�p+q
��7b�������L����a�y�$�04��iC�c9��(�6�>E3a�{� R䏡�0`�?�s0��7y9'`L�q��`S��cLr &M���P.ڽ��,��_�r��u
����/�F������=܏��=1lt�Ŝ
�9>1�lם
+��KX_�t+	�
�=���#�ثL���
+u�uW�K���̹�
u)�F�@�������j�R��_$����YuBś�G�bQl+$���,o8�q�l����g�
!)
����n�2Q����U�>Yt�w�(���^�
�'Y�������
!�� %�G�U��9��� ���,� ��&>�YcwU���
�M����j"�
��Z�o6V��WF9�=�a��l
m�y������nqA/2�A�I�̐���i���
+q��AN?!9Nxl�b�O���{�e�i�Y�Q�̶�>S���Z�	.&�s���b��j?1_��ǡP���k���ٟ�
�x�`дY�!�n��6f�VJ�?ff�o���n��0�����6l�)�7�B�u�yMA�Ѣ�&�m�>�>�Nj��#4J%���&|���
E]ۊ:��i�2g�0��io*�6zX������h
+�҂��3;���1"��2ҍ�+O�?���K��ja����� ���Y|��n�MH�p�A/�LsI5��cu�*ΐDx�!W�
{�|m�p�q%��q�eh��r�Yb�Bt
M7��u�A-�
+w%5��,x�+
�z�!Ί}|%��w�pȩ�xe�Xx|Y��y$M�}y�A��z�5��{�+=�}5"6�~�{άq~�p^�Q~Md��~*XŸ�~,L��U~S@��~�5��
~�+f�2T"��P�{p�U�Ip �<��dG���X]���'Lz�J��@��ς5��)��+��g�I"ۇ���{�~�o��e��c��,�dX�؈	L;�o��@���}5��^�E+����#���zЩג�oy����cơz��Wܝ��L����@��E��5�����+��
��#N����z��O��oK�/��c����W����
K՘$�B at W���|5��%��+׊��#x�A�qzt���&oM�ɜ9c��l��W���K×���@V�� 5�����+�@�)#���� q���h�f��j�[Ű1lmPʪ�npEХip�;
��s
0�Xu�'���xzŒr{�qD��o�f��p�[ԯq�P䩪sNE�t�;=�%v�15�x�(
+��z� W�W}
q(��vsf���v�[���wLP̨OxE뢳y
+;N��z11c��{v(_��|� ׊b~mq�C|�fL�o|�[y�[|�P��|�Eҡt};O��}�1���~/(���~�!E���p޵�f&�B�p[Q�/��Pt�ہgE��S�;P����1��ƀ�(�Ā�!��ހ�p��,�Rf�O�6[B�5�Pc���E��`��;U���1���*)��^!�H��p��y�`f
����[>�f�	P[��AE�����;Z����1ٓ0�U)F�j��"0�΂op~���7f
��![B����PY�_�EE����;T�\��1撠�C)k��"d�j�pm����f�r�=[M�,�1P\�Ǒ�E��S��;`�Ћ�1�'��)}���"��
��Ρmf���n�i=��p�kq��r^m���to�lVu�rX w�tD
y�w'0�|Yz>̾j�qźjl�r�`n�t��p�u0�rnvgkbtgw�WIv~yCtx�z�0b{x|b��h�|~��j�|���l�|��^n�|�~pp�|�j\s}AVtu[}�B�w�}�0z�~l�;fׇ
��i�
+�9kD���mh�5})o��viNqꂿU�tX�BEv��=/�y��VǧeP�{�qg�����i卞�|l
��{�no��hLp�(T�su�SA�v@�Z/ryX��_d
�ִ2f}��}hƖ�Mk�/z�mt�Lgdo��jT3r��xAKu��I/8xσ��[c&��5e��[�}gܞr�Qj.�xy�l���f�oD��S�r
�d@�u��/x\�
ębp� �vdܫ���g%����iw��y3k��ye�n��bSq��@�t��o.�w��U�a����d`�R�f��W��h�-x�kk�emn)��R�q�\@?t@��.�w��Z��t�f4��u�h���v�j��xxm0x�yosekz.q�R|{itP?�|�w-�~�zK�'r�p{��s�qԜ�u#s
��vFtgw�wtu�d�x�w*Q�z%x�?E{�zb-�}�|X��p�z���r'z�ssj{@�(t�{�vxv|c�wy|Qy
+}>�z�}�-R|�~H�(o���Yp�����q݃^��s=��uPt��;b�vS��PPx
�<>Ay���-
|0���m��{��o���p��z��r ��t?s��^a�uQ��O�w+�T=�y>��,�{��¹�lu�S��m�� �oou���{p���sGr��latq��Ovk�?=tx��j,�{
�@��k��
��m�ܖ�n��l��p��rxqؔM`Ws���N�uȌ�=&x��,�z�����j׫��4lg����m�
��om��q�q0��_�s*�9N uI�_<�w��6,�z@����ja�観k��)m\�|�2n��q)p�� _<r��`M�tړl<�wJ�),zy�����}!e��u}Dh,�9}�j��
}�l�pp~.o^�~�q�L�!t";��w+��zU��{
oK�j{ipϒ{�r>�|2s�o�|�u
]�}@v�LO}�xT;"~�z-*��|L��y(x�*y�yr�
z$y�
�gWT�aˢ�ĮkTd at D\dPPp-HG��&]�30���;s�Cg(�� 1DE�*n�6ܵa�z�*�&��<��//6��

�O?��Q}�0$	8
_��{���[w� �/��!f�UmxrI
�WB���5�(����)2����.$
��5U��o�}Z�!O�O����q��m�����
��>�>P�3��ĸg|

�,�X񦁓�`���S$�>BG��
�DǕu��#�i��#��܌-�`
��xJ��!w����
م:��(�����`[H�W��eQ�2U��FD�����`�|���
:C��d���2��~Tv���k��dEeUb2�<o]�^j���j'{@��s�Jɻ�uiW����ŷ� ��o��Ws�%�PFU���V
6[f��
��r�uOC��U(5�?���"/�/��b��;��H���-O
+�o�_�%��{�"bHk�&9q\���W:���r��
�&�G�%2.i6�D�1�%~F���+~Z��C�?��
8��V��
+�2�#�⮪����
ui^#v
+�NL���؏�S���E��Z�Ln�Ö`���=l
�va�;(�>̽��p� ʠ������~��[��@��Qd��F!��7��H��$��������	����#��d�Lt�!BO�K�*��G-i���C��r�B�
.�U�l�mO�>�
�,B�2W�<+�3�6��7���ߛ��@��

�)�۠&KO�
0ޏ� ��O�
igm��82=D� �4FB[���!A�Ib4�~����Z�� 	*��fz\��O�t��F&�����ӝN&3x��F� �[�H��j���z��&3n14���b��M� �zB��!�
��|��+�
�

+/�hw{��V�\l�s��T�j�g�?қ����۟�u �깮�D�}û�.��5�ʺ�(wM�	��ұ=�L����j�e�o(u\���
y�P�X�����Ƣ8�p2�����23�2"uh�0
 �;�(3���-ybݷ�3����Wd��sF�@w�	�,��8#���!��H*9��)iF^
+��P7��D�g��3I�33D_����)�J�QNdO�m2�t�a':�=���J��.�۱�
+s�`d��+�uu�-� ǵ�i�ȵ\L
+�kw��/i���&G�1|91�:H�^��
�gW���@-� E�if�?Q��F?�/�Kv��ř�M�kz�݈u�N�0:ӎ3BJ]�PU@��׊VV�z��D��PC����9>R��Tl�{=E�Y^Sc��yjN��9����6b~mwj

[��
Zl'�d}��[�Y�ގM�:t
U9����WI�-#�d�=�sѣ�S
��I�Ku�Ʒ6i/JO{�s��{��c at 6o���P�U,�'9cV�~�M6���I�Q�1�W�wo��T+�ml��F0��\�O��d��?�o���i��4��M��4M�C%�H�f�M[�r0p�[�
���p�|R�’��/Ld/_c8]�
׍��
�YpF�KM(���Ewo�
@�jj�I0/���k�ad[�H�>��|/ѓ�L��
��|0�0S���VR��ׂV2C�æ���a��v��4x��,'L��82��'�7��&n���&
CĿ���f]9�-f]i<?h��_��]�ǿ�"��a���5!�	�+��C�Q�O�}D{�p����՛�x�էɰ��i��X1kt́K�M�w:�h_�Id)[`m���:��'1��f%s����7�^V6,��0���|����3���3~��+�䔓*o؜w�PPK��
W
��{�W���0�.��
���^�Mq��'r�>{���T������a��4EeNٟ�����ή"�V��_�ǔ3���t�f6���5��ҷ��,� �jP
���6E���x)ͻ��U��Su�@��6M6�d����������F�����V��SˬG���Ŧw�Ơ��u�y�@>.���TȆ���V�Odj�?#驺�syc���A)w,zl<��� ��ـ�B��*��7�i�j,\���P#���;}}�~��r4��fx�O�"Zh���NM��
Be�@�(7���8,i���A#F�a�N}����qǖ*�lf
����Z �ۋ
M��2�HB-����7�߅�,y�Y��#p��9|��
��q�����eے�NYƐ*��M��}�"A�튘6؈U�,��ۅ�#�����||���(qW�,��e��s��Y���!M�����ANJj�e6Ç�,��}��#��5��t�Pc�jO��f=_`�rh�T��k
H���m�=o��p�2���s�(��Hv� "��zbtu�5k#j�� [...]
^ٟ�t
S���uSHt�#v�=_�.x02�y�)B��{�!
+��}~s��<x�i'��y?^W�Ly�SV��zOH-��{=:��{�2�|�)p��}�!g�
~�s@��|h���g]�OR�r:GA=��^2��)��$�!��U�r���
hn����]��
��R��y�G��ƒZ<�����2�3� )��h��!����r��7��h/�ۋu]j�R�
Rh����Gv���:<ِA��2�v��)҈ƃ*"-�=��rY����g��<�"]2���$R1���GD�T��<�����2�䆡)�?��"Y�ׂ�r+�0��g��Ȗ�]/�&�R
�`��G;���
<���42��^�u*�څ�"|���/j	��cj_���e�U᪹h
K��$j�A��+mX7���pM.=�tsk%���v�
��\z`i���j at _׭�k�U֩im�K���oxA���q�7��ts�.��vp&(��y(6�0{�i[��p�_��`q�U���r�K��5t7A��<u�7˙wz.���yQ&��c{V��+}di$��w_O��w�U_�vxKk��x�Av��y�7͗�z�.ݒ�|&̍\}[ '�K~�hꭢ}9_
��}AU-�)}TK4��}wAd��}�7�~..���~�'
�v6 ����h����c_ �z��U��{K
�o��AO����7ԕ��L/���'A���� ӆ��h��ʉ[^񧞈~U�0�jK���EAC�ą17ה�1/7��D'r�	�b!�k��hn�/�^���U�u�K
�ʊEA8���7͔9��/A�O�7'����!H��AhZ����^��b��U�ؐ�K�'��A<�g��7ۓ��$/L�͆�'����!r������h`�JjNc��Qlyf���n�iMy�p�lf�sn�S�urq�@�x u</{,y��eEk��g�mE�j*o��l�p�x�n�r�e�qdtR�t
+v|@Uv�x�.�z={9�)b�v�"e�v���hwl�Ej�x6w�m0yd�o�y�Rr�z�?�u�|.�ye}S�i`��Y�jc����f6̈�h��vRk�yc�n�gQNq�Y?Kt�S.Jx�L��^ي���aɉY�qd��%�vgf��u/jO��b�mf��P�p���>�t(�o.w��
��]^����`c���CcH�l�Vf+�;t)i0�a�ld��O�ȯ�>tsw�[-�wn���w\-����_A���Mb0���ke#�SsShA�!a7k���O|o��>#r�
-�v��0��[D�n��^a����aS�h��dL�%r�g{��`�j哟On��-=�rf�v-�v��m�3Z���p]­
��`��܄c���r
f؝C` jR��N�n�b=�q���-�vB�w�~o�`^��q&cc�r�fB��ti
q�u�k�_�wIn�N1yq�<�{u8,-}py�mjy��n�lp�ptnR��rp/qs�r_;u�tM�w�v2<Ty�x�,|~{6��j�tn��l�uf��ntvT��pEwFo�r+xF^Jt8yZL�vkz;�x�{�+�{�}6�
h�~4�lj�~F�(l�~L�Fn�~Qn�p�~e]er�~�L:uM~�;sw�~�+�z���f��
i
���k�<~�m*�Rm�o_�n\�qǃ�K�tU��;w&��+�z@�ɮoe~���g����iю}�k��:l�nH�[[�pʈ~Ks���:�vw��+�y��Q��dX���f����h•�}j���
Շ_S ��VN�u��1���X�DY� d�0�@�/y{��e��`�@��=�P�����8�
+�
+���x��+����O��pO�T���+��g���xjZ�@���c}9`k`cTnw�?�+�^5�����j�䤢���
T&�o
+
�l���E��x9�
{�Xf�Pg at C_�[�G�=/�5��g�4��ʥ^E�*�z������	��5�#�p�
&��X��s�Y>���>��@?�n���C)�HKс�#�Eu��$�%������`^>[�
+�(?`~�^x ��0���� _�+�O��v&"Y��D�>s�5x'��]����~���-��i�f�~�>NF"
P����� ^O��G�#��
�ǖ����0�<�7�ӆ�7
�:
s���XL��!kݱr�
����x�{6�R�t�"+��@��q��*�7k�1��U誘Y�}(��~
\H��`J䞂��\��
+����5�2[{�F�;�On������ݦ��
�
*C�{
2H�
<��N-�S��2��Ur��u�UKm��5
ųBu��
+}�����3�!�J�H$�
�#h^Qv�0�q�U�Y:�ʫ�a�Z=V.���}V�Z��fs�y
����֧�M���P�8�:�x-k�ն(+�rީ�G�S�I�Э����O
���w�
�iι�9јy��������&��z�8,k�.$��x�=rmRM���R����u�Mb;d��w0y�
�2֤�T�{����
��WƊ�6m|�+�8�EC`��
�Gd]��Mm��"��W�rS禜D��~A���S������	��+�G6W#��jnA>p�� u�w0�D(�MHO�B$ ������vKѻX�� {���'V���'
5�c

+
+�sh�
]T4�I��
��D�G�ãTD�(2BNlz�9�eB_
 ݫ.�#�J�U��bG������ɰ������	�P��c36����߅!�3����?�o /˼�	��4Ta1l-vKWZ������A�p�ɾ���<���>\�Щ��ހk�a8�Z5$�G���d�W#��{{��ߢ��!	�e�8l&�V�
lu4��ʚ��@ԸQ��������WJ"�����
��쎛�����)�9(�6�g
f
�y�'�1?�J��L)��b���쭢���l��]4�L�kۘ�Pp�u�ﲹ�)nCA �Ŷ+2d���EH�'��H�m&Y3�u���ѷ��k�ѽ���ӭ���1��n�]�_Z�<ڮ�Rvӛ���pj� m9G݂������#j}d��A�-u ڠ���
+�0�\C"���
dhK>م�����ٸ�:IF�q�\BVhF�'$�[I�&3����B��t��K\ �D��'�`;�I
[�"��%�#���N���\����
I
+|?�a��8+�ş3�"-A��ש�_ZZ�K�O%u6`����X{c�ͯw1�
���$���+��O�M{�'���E�],�j�z6���+���~�
�Q��k	a=�_���/E	��q����bV�k��&S��7<R5�|m[N�S�<�
T[�'���c�֝"16`���f�i+m�Ԃ���
E��h����6��=��2%w	��\W��w3/VWx�G��k��	(�
+��K6\�G��k6ygf���p86�,W	C	~�����8
�y�q'
Sk���3��vI���ժ*�/��kffԛ]��_M����5Ɵ�$Ϲv��3����\�2
�e*��^\?����|�_��cj��1��xڶ+����em�[�8�
��@��r�1�
��3�4�6=���
�v�׶��
+�f��5�R���j�W����u��M!\��7c {1�
'a����`&y[8#��H���3��Ci\OR<y��0m�O�y3lN2'�\N
`�́QSL��'�}�)�R�찧�R3I�w('�g���V!��pG�Je�ضR.u��.��j�O[GC�����d5�a��L!_s��d
݂F����\nMͳ�&ֹj~*��A��%y   ���2[�\���f�-:H�Leyby �
+� ��}��s����-j������5+ڲkE���Z5׺ֵ��ޛc����[GS�J��o�
Ť��� ����+���unR�Ɖ�o���Q'�j
+���9y<�i;M����B�]
+���Y�5S�A
*bPW#�X�~$u2�ξ/1�a��+���` ����cv&�L/�0�̰��;t)H܄|�E���9�1��ݎ��j�Ɇ'u/���qvC��|���\l��W���ja���C�m�^~nc�=�=�7E�m+�O^�	|��v�d�,�<8L�O�j�%=���
Y0o�}�ď��vCB�W[�K&��I>f�g\"�&]��KOÑ:�
%ije�B>�%���j�:l=��T1e~��/�ߪg�
���I
0^Y��V)�<�^�ϑ�%
+�զՏQS-W��GpaθD�8�ߠ9�D֑Ճ�XM'�
+��U��J�]I�"��mt��e�uuE�)��-3`�Ҍ� SoO��
�� ������6Ju@$�Z�Z��ǚ����;���o������a��m>݄92)@m��{��������
���>�-�V�|���������WU�>r�$Ӳ]
�qّ¸��z�EYuɔ��>�GT@蚩
�\�'��}њG����9��mp.d. at L4
c�&,��r;b�
ӂ���d�l����t3�ݦ�]Q<�
b��-w
��
N
�k��	k�
b�K�%����H���@
j��"�W4�sf��|A�a{��8�c�%�J@b��W���\��E���':Ehs�ř�=�}��9fǹ��T��W�
!3ߔ�% 
פԘ�]YzĀ&X
I
kWdP�ي
�b�]�9g���bI��i�
����$ �O�1wu_)��x��S$P�)m/�UI
�.m
�psf5�Uwl}oy�h�
 4�;=DU�IKS��DS�j�j:�?�2�*w�0P��4��o���+G��4O6�j�eu��
�H�W)ϛ=���ݮȆ��s�51��
o���k���a�I�ӽ֒Wo�0�%>��#}?V�5N���_�����r}��%�7���
+�Լ��
{�!`�D}���K_�4�
+�!���Q\��Hҽ��zȔ�H�N�>�uA-^Ჰ�bg��%+k�5���8�W�	#�wi+���q��0��k�hc��uTT�[����`�5�Z[�`�J�	&���-��v�**��
cs0��� :�-�7���o�3
G�(�Z!�
d
�
�
�z	Q}v��x�'E����}��aQ#*��'���vi�Ʒ|'i��n����˵Y���;�eR{��E�1��v��i�k�Y��T�2����4o�/��;��K�
�
|O	c��
+Rr_��T��'�U�t�Kyγ�z�a�L�
=
z�s#k�)��|O�
���Ā�܇��:a�x�im&��&
^c���ŽoIѓ`�
+���W��8�2K/�ױϬ˽���^��i�����p�u�����O���:JD�:WtG<Z2��]uyy�+���0��H5W�?16א	~u��[4'�)B��rj�X��G���>��<�8Y�J]
+
Մ�y�iZP�-|xm
�4��r�Qe�`�d
Z�H
;4�S���X1̚�`��w����p�u>�7<dE,]��5�J�!
���T�%"��
�7%:�	-+�6\�w�����O��1=�zs��[ITNX��)bOIUq~�JY�����鮦�t ͆/?��w�U[j��+ϖQz�U�R�
�'d(�_���X�q��B�y��g5m���V�e�q}��J��sg[�\[���>�	H�2 
�<?\�`��L���8�n�/�j?*��BgK�ߩd�}��d��"KK{	�LT��k�a�(
�·t=no��4���i�H�A�-:��s0J�
ַYa�<Sebv]�
+�%�;�8;2�/+B�M��q�vs$`ى�Y4/�\ssi iUcd���U���a����fh�6ua�P�����&>�%�C�d>�zES�?��+��&��e�{�\�Q>��+)�
��^T9Z�P���F������� �V+�@������l@
A	��B�
+r�3���
�L2�$��
$���x ����*,^-�ڷ[]��<**�R�������I�<E�|N� �B���j��*�K�=׌���A
���ua�2�%V���/�.RC��
�v(ݴ�ܥ�Kp\��	t!w-<��
��ar[�fA72�:%�E;���),�Aj�&%yޑ$��xPM�E�@��Af�Wxx����M�%|zW�6�J�
i,�o�V�^>npdk�
ŻΫ

�:�������C�������>�
KXi��<�_�TT���Ֆ��q�cs�.�JmZ�E�Œ����:��^΄���hsVIbm8tS��X&^ a*Ɋ���n�^�m����=A2�s��^
�mICca|k��`�K��{��"Y١:nf�,ڱ�W	x�_n~�	��
+!f�睥��#�
��A�ɧo��
(u�
+gį�Vg攷���E)��?n�/ؠ�bd��S�u3�Q��Q���I�B`�\��C!���d�
+�P�,���2QC���[P���һ�n�`��
R������XYU�^��'�,|Y5
G�4-}�<���k�C���fގo�ۆ3 �����7��%�R����/4��!=�a�'��m���fUg�L���(CfU]@::&��
+�wo��߿���D[D$��<��H�׽k���U��*I�#;He6�i*��80C��
 �T�N/h%��
u�hvL�5'�ƭs*=%s+�:V9˲O�%����(LWӖ�s��w��n0~
~
I`����F��嵃v���&��K^U�*^�6U>,�V��{�:T�5zG�Fd������x|��4Z�ٲ�� �u�'�ʦ��"��Ww��[��f^�'0X�cx���������2��rK�J�J�D�������Jm��B�|CÁ=�55oc/�����h��N��L9�'0�jI��.��� ������ =$!_��3�s�^�>pX0�]S�c���Թ`gi�9��Q?�+�,O�|ek���kC)6b���f!)�,�M�����jQ����Z�F��_ ��Y[-�ۈfiv&���m�H�!�����`5o��I��xu�d
��P#�F�
+�P&�����h_2�n�nm��MsC�?�������w� ����O��t�[P�k+�j��n��A	��ǐ���� �H�ځ��Y�*�z��ל`� L﵋TL��0������1|w:4�4o�����(���%����j��̨5Y��J_���|��
�f�����
�y�l0���0����D��O+/�.5�T�"��$8��[g)T`MH��?�Ɠ��\�<f\o���-1�
b�y^�Q���E�E����*׺����e�U�.�_3P}7&^l������X���x��V�MCG| ��0A~�����
�
%_����o�
�À�c`�4]~rf
�5��o���{�/DRe�)��R��'2:(FQ�KL�U�Du�4�9��%���O�
�'����E��Gts���Ӻ|U[��nl�M�Ӵ��
+���/8*�;,��a���8�s�k�
��~!�!�@)�
�֧�&Ñs<-�s�Z�•�2�Eb��T�b~A��A�}D�ʺ0��S��{��{G�a�
oqB͝$��F8���z��*��d���
����:ٟЕLza:J��ea����
���q��
��T�*�1�"}�!�@��k���˳�߬�B/�lEy�~�eK���\�5��$���O�=h���Z����͓ނ9
����`�_��������ݎ�[�9�Ĥ���u2B�\s��
�u5=��@�Ό��p@
�z	t
�;�*+��.��Z�����a]�1��l�R�S���o�����
+�Кr��H�Y�K��g�<�`��7/�|�+4�A���*�K֨8���1��%�
�-1w������?Ɩ����)�r���~�K0�;h���+f��g:"&�6)�r����p�c��y�B��6 b����#�&l�:w����>fިÕyL/�\Z������j�@  Ν(�W�ڢu�����d>�P"Y��d'$�$�ʗ��
�V�J+W�>pG��[��^���Gڻ����2|M
5��k�ci{�
�ZJb��ILF<�fB>�P��C��R7<]'�w����K����QXb����*�
+��$f»��
~	^�̈́:�)�]��}�p��A(��+�R���X� zE����;b1t�!
���9�ݠ�B���j�`�
d�>�
��!�L7g���h
%<d:@dA��C�
�<�@��߈���@��.� ���
��Z�j���@pC䂻Qab!��
��M�b�q�q��z�b��ە�3;����@�A��K�$�˰E�
�N����T��
ۢ�H=j�o�n_a|�1��r(���'�m�r��Q˰�lp;�Ա�{�qe�� ������
=�^ՐYc�I$�ۖ(o%�
��� \�-�
Kч�޻����Α�v��K�W0d��ngXg��IF�~������X��QH��l8'Kr������gJ����
+*Xc�Z3}�E�ٓD�sj�d9F�K�䛉J� �
�I1{�V!xnK�-e>����7n�ׅ���
�_Qg1�R2Ǽĸ:@�n�\�K�X������)�'�WI�C0hݤ�!XL}����
4��l5� Vh2
��,��?��bLb#(sÀy�tk]:ibP�_"��2S&�F��
 ߆*:�/~���5�l�6���fݻ�	���Ӡ��v�<N�E���"A�M�B���I܆=��ӰD��!5��o�G�
]��Ml[U��Z~$g"��H�U�(�>�(l1���u��;8��q������i�7m�L[�@��Wxl�<R�s\�]1�^�>�g����	�Y<�#nMD��yY�ZO�E�X�;/C<_��IfG��u��R���O��M�++c�7�S��
+�4ƊaZ���ԃ�
�����u���	Mߊ]�>]o����/�m^&=�Nh̕.�g*>d_�$��
+]�k����oj-���]��w�z��`��g`�@�XR������
�SZ^6�u�V���^��o�����g��~X��Q��	�濮��a%{s
T���p4{���HLydW�)YU�&R?� �FD�/�'�g�H�7yO��G

+�S0᪄�g
:�po��)�-.XF:�
�e�� �*d�i��G{.㯙nwn.�t���Y���<�"��`����7�d�
�sSC���!�x$��g��:S����X 9
��Y������%�r_��']4K��
��.
q c�Yv�.㏢�
M
r��m������*ADbW냊��M1�Dq�by
��9���m��T'b�u�q�7�O�r�����
��}�y�XK�8���`����微�.;������~1K�}w���ҭ���rB;�ҏ�ޒ
&�6	�Rr���*?j���䆑lu��g�ICk���M��|���v����h�ZY�Hn8�V��z��Q3N?�?��֫zGP
������5�|No�(RG�J[�5��&Hs)qq}^�&2���n:z����ǰ�kFmP�03;7�N�s���i+Z�iӍ���	�^��z�s�7�T�m ,�
��zb�@��p����2�2{�9���6��ʄ��/�=�
�4�)�c���	x
+t&8
�3��B��-�(;�^S��e���dSy�7yG^�H@�Es��7<�A��Q|��h�[�\j���e��Z�Ҏy1|i�-��<C^ow���5���pc�
�P_���<.&n��;ˌpa��[y�y�$۫j���!�
ѫ�$E�42�˚v�?ݴ��^�wnYg?G��9c���K�+%�<qWŔ��z^}NV��]QvS{�q�8�ڷu)?
WV���1l��%�Wy���j�p���0#��>M�']�����|�k!���3h{�&��m��5&[K�i��K%�}UE���k̀��u
hT��[�*�F���k kO��Z �e�� ��e�v]
G
�ؼ;�G��L��W��[����d;o��o�
�3x����� ��Y{OEk[@��|�l��2��섐���^򒼗��F6a	�9�u�UQ[�E�m�'*u�WA���w��:^WfA�w:�R�c��$DZ9-N�7���~c
+�
+?��;�A�34VfO�
�����	5��*Dv��Ue_�Rqr�_����pM�v��]���{�қ[;��f�4�(
�c5ڑG����d�x�����E�jO����-n
+|�
�g8��
K��ٶŲ�]�{r3�J�(��?ұ���q�l��u;S7���qWA}�ǰ�����=��o
+�n��xg�|�GCT�p�T�aH���͗O�0�U`llڤ�C�lt��0�j�h�~��pڱY�_�,x��'�,�IU�jn�\�[M��
z��
���DB�b<Ô��]��T7S0C�o�}�2�%�s�F͘�MQ���
ś�!�7f�Sѕ&.!m����Fk����(+O�
���Oȏ��@
�W�1��f���G
�0J��Z����-#�=����q�b>@@
�g�IxFz�|�����޴\�E=�Y�g6�at�Һ*��SY�����5��T9vh�
��	�%2{}n���}I�90�v zRf����8kO�ʼ�
�jV�o�:*�x��H3�_	
6�WWx�4�\;�5ju���K:��:i�7�rʶ��Y
�Ad��~X����:J1<����;��e��
+(�;�M�s���rlڪ�U[y5�����vw�
(k
+-��Ol��
H���WeG㐣�݆L9s����ŠFp6���i&x���Иp0�C2�}�Txm�C���H#�ѽZy�ڇ�m{��+�E�Aa
����W��d
�V�Sy%�ې���8b�ש"SLL����1�4�$B s��&��B��j��&�d@��Y��?O��+82}����-D^�����ݒD��(��P��R��{���Ѭ.� �s��!�$��4��P���ڣ���o
\�i�(�����#�u"��D��8�
+� �:�]�C������>�6����ڒ������׶�*��
����m at 1GQm
�lìOrus�g#� tk-ۤ��<���v+l�U�w
+]�@��V9�9'��3ի��	
�P�?#�0eD�a���S���#�[%�����LY����ƉU��U�_n����F��η4F�/V[��&+�;�k�+�4e[D7\�~YCm[�D�����������4M��
�n/���9�0����:/[�o��`�K����(��
+��T��o��r
M�8���FECw�LhT��l�������
�;=���L�t��^r%���|�TXN��d�R3O>�
���^�
����G�)�
y����
ۂ�2��b�+�Pg�DW�B��;T��
+�4Q�v�����{����9輵;���!f��6~/ė|@�r~��E�M�$,<��`�2���+��oM�ҿ$ȵk�뤆���)<$�\nnu|�LX ������+z-]�:�r"���Xꗺ.KW�;���–YFC�	�:�Aǔ+�I�U�
u���+�U>.+͋�;�SN@]���
���L U������X�Kx�6
͑8=�*�U��4^q�ݗۥ>S韒�
+�Ż
�e�L��sf���	v?���m�!���'�粈�Y��v0��z�ْ2G����wT�1��e{B��H��M�,�
�&fr(y���)�%
��P�����
Ehl�%
+$EVD����t
o��
\~6-�s��/�/���E���
2<뤪t�
���:���mb��p��V�����n(Q�7:�
�ziZ����N�l*�3��m�i��`��
��
s���nX
+�U��\�b�i0���^Kc�=�!!{pwp�y�
�K��H��&�Ș/�U�D
��
�g�#M@���
1�����&����yf_s�Ir����Ŕ\
�B�c���7�H�e�x�Xl��tbu�!��hI
+&)�� ֩�ršbp�s���;�Cu
GF�q�~~c6RbO��'l�"<͖����z
[��T���0}�5y   V�|E�W�r��ф �\�2�aAA��0	��/ɷW&a�A
+���AK]מ
�q\k�P���U�"�Jѻ�?�W���{��j#�'rG�^���$U��)~V�H�D��Tup����7��e��Ê⚊��R�"�I��^�w0�^�+m��O��X���iM��i�-T��5ȝ��'���N�]�~{e�� 
��r���5Ճ�-w��A������-��V��YF~�Ug��BO�Jt�8y�0���.{K��O�(��vlJ�	u�S��0��փy��k�^?��6W��c+�
+�C���l�]
��E�ko�%���ݼ�脦���� g}<p���?��j~�t7�Q|/y	�u�"-�Q߽����{ޥ��w
�iN1j2F��c���߀9uTE�����ڵ粎
t������
�;�HC;o�sTH#d��
����}�[aT���*Ч ހG�X�;Pp�i�t$V.��x�P
+��C�_"�>�h0�[[���tVۃw,���U���^|}�X?����4:a<X�
s��%���هU)��<�@Z�Q�/�[�6���
�.�	�
0A=��f���x�Iҗ��Q�l�3\�P�BoJ]Դ�\>[3��������?,���
ЛMOyI�Oi>�
�'�|���2��k��x��o��6��<J�c�^|5�ܲZz;*�,�1��M;]���U��� ���DQ$6*ړ��
Xz#���U��fZ,k���u���)jF��R6�:��*�hyY���p�I�~��K�SpMn�Qjm-+�y��ɽM�4q,��t0L$t�h!f��
��_�yb
q��X𖠕@�Fb��/r��hf��Z`;k��4<a�%� K�E�b}��9v_Փ�
���U���k��w�3��H��/us���k�`�Ǚ�;3��������$B4\+;�j�K�D�� Z
FF��v��
E��u�{qcʰS��TK��k�
+rS4�,F�S��Q�?���D ��"�u�%���Z�i�^,[U6Pw
���԰�
��S7ž$�
�!�E.����H
���7�^ü���
�u������m[E^����)@Y�MSP�)'b^E�q���c�?�'F����x���m����uym.͇$|��O�Kb�
��1�c���w�Wln��~B
���XfO�yDz��2�MӅ
�B�QW���ci�2�� [
�b},�1�E���w��^��k��b�)�k�,]��wH�ߦ�4�U���mϪKc`�C!��Z�ʎ�5�I�C�W�  �fQ��9�Q�|U���ά�2=��-�I�d����	2_���M��4� /ڨ��B��>oy *��Zo�9��XY��i�����fNP?��1�k�𾠣�� *���_B����u�p�ֲB[�
�
���4X����
��φ��}�����P����73�d"�d
ٮ&�<����ăT�>���x4�
Y��"��G��XF%N�g��t2��S
8.h��pq��܏��#~�
�2�Hl<hކ��
+�aG��-?�J1��p�m�����"��2���V�z�|Raw�~�l�8�
�����4����������
���E�Z�Kݸ���UG�|�B1��&T6���;w��W��ٝ]8���X��y�W���G-����%��r9���Pv��X7i�x*�L�(�u��==��ϲ�͓m
qqZe��&���߰�n�=jc�i�o��@��
��x/{Y���/�r�pՓ�-�k�b��(n��
�J;7��N]�
�	|ט
9^R��,��q��i-�j5I�~Wfǒ�;*~x���F�M��u��ò~�7�����S.0.rm���4�P�M��X��
+d����6���͵�N|b*��4u
v�v#3�֬ަq�V`i
2d%�

�5���0����7Ӝ
���jx��9��x���!K�hF�	bLb4�Ezcl��X�>�eҢ��(j
=����~�n$��
Y9P�K���C‰/�q䢘��&l���r��S�� 1��|�8��+�����ۺ���p5q   �Z����(
�QӸ�AX��!\�$$$C�srL2�$�L��%,���*OQ�u��Oł��BuUX뵊]�x��V��~�n�,��[�|�nC�
+-�bY@�X?(�e�92�"կ)f�m��6@>��_�|�Xȼ
���L
N�+VJ2�v&����ǂ��g�a:y�*=>�C�,꽅�zq����wΣa���V�bP$���Ԇ3H����*
+|�t�c^�7�C�v��f�C���UʆN�\�A�
X�)�M��Ȋ��Q�r�K{���Fۏe�"j��%��h��C�����i�24��.$�Ҳ�ɹ�D��Ӯ�?2�
���]HMt���a���PZ�+C��9�J*��_r%QN�H�4�r�{W)�	|�em}�^
�e
��ٻ
+�.�v���_.e'T�)�V4��(F��o��Ugzf��0�=�r��ƣ�[(h��GjK��Ң��y�}����%�]�ʟ%��(y쭬��0�����L
1���s�R1w^N�J�O�7�
��نy�oxõ��O���`�i0)�¿6T���@J���JL#��״��C ��[!�)��9!���w�+����@,�&T��Q�0GU5����a��
+�5\1(���<U~�� ��ڌxݷ:vR�Ȇ�qV���t��.	�d7J���<L���US����0ݠL��w�k^I�p2��Z���
���#*��͚i
�1�.�~��x�E \M;.�7�vD�5枤���B��l�4 �&ɷ����͉�Qs�r�k�d�
+�B�2i�N����ğ�'��:d�a����9�<o�=���:�O8� �Zq��]��\�(�p�/@Γ��H�+�nind`�gA�د0iJ*��eW}o���
߶�x�"omz�r��Q��u
�_p=�=n_��%�!w~~S]��Jѯ5V�Q��z�<�L/8#�
��+�������>-�9]���������s�4���1y
3���yʍ����/�	��G䇫~IĴ41��_�35g%@���.1N§�
N�̡�P��i'�7����4�
�@r�z�8�Z?�
 ��i�;�f�
+�c�E�N�O�ri@�D��
�����u{A�6.ѱ>1���_�:,� ��Jf?�/�L��C�N�N��*E]٭!�����mq�=p�)��
�ݍ�
+�c�F�M�H���?�
�b;t�%��
7�r�~�����L&�3>��ﰞ�
~6slD'9�?��6�
�T­�ϙ��^
5�;�
+k[�}����gX0^h�q$W�KJm3�qV/f�̔��&��|�}3����1���s�O[�9�"6��ε�6
�9�K���+�|d���j�8a�&�k��ɐ���=9w�U�ͩ��?�������|�
���0,����lug��z� �eU
,}*�
��e-���^u��G�S���oy��7��7��bC#Q����ş�n��[�,(
��l�^	6���! ���ʌ�>�"�:�j���<rB�a̪�� NfE��
�kI8<*�͒"�e�[�,�A��v
:ks�Cl.�\șc�+��5*�W
���&��ŀ~�\K�4�sR^�?ӕ��
x0v�>biq������2�$V1�\$���Ǖw��kGԣ����Q�� �%�[�����`�ѐ�J�
Ή	`��]���+Y�)�u�!*�5��(H��Id��a�oE�lw1��7�����hY�xЈr���M��y�A39S��cLYg�Bل*d��lQ���
���P/���Džm���l)��I�R�`i��?Ğ���A��Y訌�:��e���t��/�
�y�sn琸�M����>d�SG�&H�P���e*p
���:��v��F���ӫ�}9��|%*�C��d
�ڌ����T���m ؍��θSV��k��q�����~V�Q<
��f��
+�C�B��'��L�H
�?� 6���ǍZWz��jxA�|�+cs�h�i�#a�43���
�K�Zr?�'H:���m�2��A�Ľ
�e�Эd�c�M^��k�^�C�j#,���@D�L2�� �I~tHGǫ��J̀�e��
�	W `_q�Z�b��
+�"�p�p߄CH�� 	I&�d2�L�)x�ʪ��*j�XEtJ�J]�EZ_=@�X��Y�����#>�(�U���T��#tg��E	���U�O4E���]cD��ix`Ff����w0b(���U
+�
�Y��]sA��vj�fh�w at A,b��x#�i���u+����E���_�X��x˼U-�E�W'��_�@�� c�e2b1(��
h�^EN�
�
+�`V�[@-k��b���n�_P����e�:��60���������l�u-'\��j|D�me;��tH�GD�˪&����աD!ߪ�@��M��?B
�=�
r���Ε
t<�GH�8�Jd	��l�M��
�i�lv>Sw��o2�Y�!�;DL��ž�]��򮆁�����˶�R�����f;˷��-r�
�0�ۏ첸�R}�"��?5#��mk+3�(���(.���R���
xP{K$
���~?
uX� m��
���(U$C[K��Il9v���L�"�F���]C2q�.�OI�6�1�Q��x�	�1i��Q�Zxl��e_��)O&uZ���C�j
7$
6����} �A~��8zX�������m�b|�n�^i>�]��fQ����Bch�JDj^��
k��]�r�ou��#I���h
+8ЂTc�1)�ü��W�+�-�*�kx�u��e�I�~���PE�:���LR]
&��t-¬^�*$M�4-�b������B
����c��鎳�A9Z�u�K�Dۄ������T}��p�p;dz��x0w
+�
��7
? r���
�lJ�����U/�3B��K3h��f@��j�m1��R�זD*��p
����֓�2��O�(
Vv��
+n���d���mMAO���;�1�S`�M����
-a6��)��N�˛,��_
+�l[c�.H�і%�Ŗش+#]l��c�ٶ����$ �s�~
�&���b�~In^�Y�6-�쪸ʟ���/F�R��a`	�����Ei|�o���$Գ��h:)=�k�Zv��6���g|V'E����;�R�����^�t\"ZW��
+Y���nN'⢒���Li�K�[��!6b�
���jnf�$=�+
*�.Ӄ���
K�vI�chP�*%�z��ډ,1-�pGs���D�8D�C7x��&�X���8e�!j5kL��4�Y��
��&Xq�� �Y�LA)$�]�s�_g�^
.��[����fx���́{�s��Hq�
��	������o���݌�� K���Fa�a)1$Poגי�DO̐Ń��w�q?0
$װ����ޮxYZ�N��8$��8��
_ُ$�`�l�cZ��6��ݐ?�
ȇY�+�0�H5z�ቔkQ}Ö<i�|�>!���~QQ���2�&
P{B�cH��|��7g�z�9^sy��l������u^�A�
�;�R�ck
U�>�)����v�Q
�
8�:oV�c���s�K���6��8#7�>^nNk�_�<w�*>��m�ڹ3���"Ψ��Ţl�`����
D#����
����ޣ7W-��#���h��� 
<�L�qf6��6@��0}����ك�i���h�� ��
�ӛ��R�$�0�a�p��s���T9��˟�	sJЫ��lO�
�I�w7±A8j^Տ�ork�l��17�x�&��e���o��U��d!SQ2��b+��(k�m\5
���/ [...]
�_���߷,����c��n�$k��a�����M�=U�lM�Q���"g��Ɇ
5iЉ�5M�%7R�%
q���v�L�S�G�[]]��M����	vK�s�w��>���q|�
+�7�p�L=��#.��[��CjϨ��^w�UOl���Tv�Ce�����������]�j2��0�uuFf�ձ��ʪ�:�AƆ"E�*��S��'_
+� !��
Z�:���Qpt��4��7�rv�윽Ys��9��{�<����Fr��׃d�+G1	
F�~ /b�m1�&��& x��� ,�
^�
�LtZn��D<�t"��7�4�"���ף.9���m��-��6��Iq�5�����5.1g�)�j�����������!0��OD<%n�{?ns
����
����8�Y����F<�p	���r�wPq�D��!\ ���F���KA��^���Z�Ũ�ˍ�
�R���휃�E��Ꮵ��
l�a�������?��aZ�뵘lt�U
��t�W�z������s1��͘iea1�����M�1�g͞���v��w����
��x��e�W�m��O�V�����u�m6l�Ǧ�mav��ov�u��m�w8�������m�^wO/o�}��
��?t���c�N�
:|���s�/\
	

�u9:&�J\|B"
�D�1X

 I�dJ��Դ�k�Y����y��Bz���bs�<��D(K�2��T�*+���RWkjj봺z}CcSsKk[{���������[}��w�������>

z4����g�?
�x����7o߽�0���6m��3fB|=k���s�
�Λ�
4�|K��5~X �p���%�&�(�*�,�.�0���<��6��6�4^����
�?|�X@`P�sB�#�b�$ PX<1����A͹�O�3�l.O I�r���O�S��#?UB�P'
+�B�P��T;��}�
*~>22
+E�OL���_�~���[�������� g

,v�,�cy]
�zF��l�(��}FVύP�q㫪���J6�A�$�*�H���$���Ρ�����`v0;�
�f�×9�zL2���ٞQC|�Q�M5���x��zA�R+��Ԕ k*x��Gj�sH�%Ť^Va�ݼ����r~��Lȡ�3h��
5$؋�#����2��'$
��
+�,��F�P].����V!���fo��Dc&�2`* �_
'ǹ{#	ݰw%{2��>��aQ�*X��
SV*�5r1V/�
�\�����2���d��L9�x~d����E
�]0�
+��
�^z[�AKm���<�L!����
|���t䳁�,&p#�A�e* �aʁ�'pB�r��	}��1��zw�A���j$���
+�,��9�Kͅ|�-��7\c��L�
Sy�
r���Rꈼ_��bl؞�Ұ�U��KT�U|YB
[��3�@S� �J���Ӹ�!�C�2�)gO��|�dgس�u��
��zw��2P�W^R�d���\=M4�
+��
�z�Oh'�
��7�@�nOP��J�-�y���V;Lg�]f�Γ'�R���j�
^[(����
+y�C
�B
I at l3�o?� �q�M����zۨ{�6����T�և�*?]FW^V���|�.G�2 �T�!YHl"	Iͦ
+~���]��tˑ�ն��:6^��m5�������
+�)��U�
+�&G��͒�ҥ�U	�>IL�ŤSK�`�`�;��

m\�o����j��c{.]w�{]}A�][�U���T�5�䄚T9��"#֑�$-QJ֙
+(���R;�7������n
^���윆����a�:V�V�T����ST at e���&���
+�P�kL�l���vw���6�Է�U8{`>��5#��8-Eʦhc�5I��j�
��ɱUx�(EU��������u=X�U=���ux�}{tj�G
+�����4�a�(=���Gr��(n�Ë���qZ��T�i�����vU�肝���
F7��
:&|�ؾ����ĮȬ8CLNlG\nt{B��vx~T2?�]ъ�����?����:��B':����
����n��A���S�+���w.�"nG%���PB��RBz�^�ML�p�z�&*�T@�� �mH����h���؇��Dc���΢��&Z�T_ Wj
�5yI5���LOї��5��m
+ � �һE��/��`v0;�
�f��ˡp��;�ϙ־�A���}��U
�l��K��8��SQC#k�דtY�FU��VEr�AF̾!���b7���E�
|��{�e��
��w��Y�쓌�E��8�T�@V�4U4��<7�I�Ii�����������A(��R��@�����:
j:��8������v��ug����*t��E at EQ��
*�r �럄
B��;� !�rI�C at V@�]��_���Ӈ�Q����5��<�n��.>��U�W
�/)�a�Y�/-Ry%�F���2"�
	InK/i��"�t��Y�{�p�8d�|�Q\Đx �i'6ĩ/�U�Ui��5��gԧye�bLY��(k�e��&�\1q�(h��-����Ev;w��Λ�6 ��!5kC�(x�H��@����
m�՝�N��&ו�y
UF�e�a�f5n\+#�$�,�۾���.�w���A��ڐ&�T%_}ؗ�Y6"�s�
��9G
��&��j��
�ơ���R9a�WL����t~�-��m�
��A���Nv$�&��!	�2p��0t�{z$�?5Z 
uTj���]Ġ��`9��t�&	f,���h�؈!� %g�S$��&T<6
n�cK /�
�'z&��b�p��`F*��8b�(�@����H3x!}'�: yo8�I��P&\���P����{�C��@R�t(���ɓ�ʌ*rH1𵐗��&���d��x'�McČ��`�$f��>��m|�S�~䃱ؕ�$�x0�mq]P��e&�	i�#�eF6AWB~��8��QChi�T�ɞ <|�����]z��[u*�nz!�b�g��9�Ԓ�r3l��q
X�r3"���	>��4�SPh=m@����A�8�
{Ͼ�+\�Ǖ--�F����3a��@��4�M�6�;ҩ'�Z�
��8JԐ�pj��j�6 �
D�z�Q0�'����չ=��;Q���v��(��X����
�N#��0
-z���#��}�
��2��Ң��
���>�ƾ#�Ah��w��8Vw�5�C
�/[�r�:mU�5�f�Y���H�7H�����)N���6��S
P��X�'>�}�<��5ӽ�e�~y'NNdtO���ݗd�jM�
��Z��̓x3�Y��A��dE��CM&�-ڀjG
�o����ž�����>ْm\��-��u� �Z���T��S#%��xG�;�Ѣ�8]�0^�`#�Hƺ����b~ں�n��
��A��-9���*�V��i��TR8�
+��`'�yM>��a�AT�m#GђZVZ��˪ݐ��ETD������_l	�}�m�ϒdo�8�z�����P���c�)���Vd�jG�T
�*��:YϪ
�z*�M�� �S�qK�P�}���W7��K۫Ov*�o���m;C��z�z�q�t}�J���e��V�l��|e��ry
I�t��V2�j)�k��b腳��h
�����?��|��lIl�N^�mz�Qr}�\E���+������ݫl(�[�Xp��1ٔ�Z��[m at _Xi�䮠����
p�� v�f�y�?q�)����?GZ�3�=��@W���	=
T�����2lvsd�rڰ
�P챢�ށz��E



����
���q�5�Y�Tp
+yO�C����R�eb

&��l�[Ghm���
��b9��M�%��>]8��!p���~�{��g���k�l’�B�4�2?ȩV����n���I�����6
+�e%2G-8�o 
��Q����P6n�c���N/J/�F�Q�&=	}-9�>#,�
�+�>n���ƙ�,��Π�
��z,�
>3�'Џ�ԍ���I�����6�
M���o$G������Wd�o�s�f��ܐ�T:�jGyh��K�ڻ)k[��Le���ٓ���#�ceA>V�l�
��������o�iE�Ǫ�2p˪l�Me.{J~I�T��"��C�vn�c���5�3�}-���"Ðh�I'ِ,���kHM"D�[Yj�sUZ�CM:f��D˂�
+�)U�
+��N�a��a␽Zfk@��
	�0�,��"IBL�tr�AlĐ
�� N9�V�r�:��#�Q�1��h�a�
x!c��oD��jԀE�
����
�_�dLq�i&]8�N�L�S����NI��S��/�)W����K�lƜ5�==\�[jTv]�٨@�(��W�K�s�m!fwO��)�ii�L�ڤ���?鑓�#�tɕOL�=�?ٯ������9��,o�9̳��t���2����UA��P��@C6����-!d!��@ BB6�B�ĂQD���k���op��9��4����M��re���9�*��Ӎ������RM�d�0W�:�r�B�5*G1G�R�Bd;
�ib"P'd�h8^��`B��5yϕJ\
���L�΄*nW��2���b�߭�L�)�3t�*E&�'	�sd�r* ��i����@s��?��/=:V�h,~ߗ��;{���u15����k�}6�EnA;��xo��
bh�S$u�,N%��ɕ�8�j��
��'����q/�q�O=�`�S)����г
�,�T���ר�s���=@
o5�-z�$^˚Fk�3(�l�UA�?5(��!�4�
��v
��(_uw1�f�f:�w-�}h�X��Kvz�q��A���O�Q�� NϜ@�:&�z�$B/�
��$Gc�*�8�?���z0�;ߗ��]�/ZZ���V��#sY
]�X&q�zlK�NC���d
P<dՋ�c�1ƶ �ؽ�P� Ҹ�=��Ӷ�1��S�o�<X�8�/%��3Y<I�X�s�:�Hs�oe�vn��$�������
G���H�7�G��8`ݗ�$����1�]�\?�2^OdJ���tJ
�z}�eb����8B!���v���@�YN��݅4wBT_D Ձ}`0��Kw������ͮGf�
GU�
l�,&��3�=m�2)�
���(ʼn�'��qv�c�
�F��+c>¶�G�F������ޜ�
=��;����
�èj��!,�z�5�ϥ�+D�`���C��^����n��" [...]
A�
 (��$e��EU���
Ȁ�ӏ^9���������,�>I�oG�s
}YE�HBW����h���֯�յ�������YTw�L3�r�S1M�O�eS-��)*d`���[�������hh��%؝��j��ӣ��͓��\$|�[��X�RK���@-_��J���oЌ+כ�ŋ8V�"����]�?���/&�����������{���d_$]B?�,k�ʯ������2x�F5�x�
u�n#��
s����
+[�������o�y�D��s?����{h�ow���1,��8	�f�L?��CVA��yE%�
+K.?)-����amU����
[�5�[�ڜ���Ⱥ�Mt��M�0���o� ?�s�}*�Ϝ|-��.̩� �{JZV�u

�(�lIne�C�6�����%�F��Q������n�j̍�;\M�{��w
��5��6��4
��q at p�$��{�{�bK��XQVx�

�&�\^f��A{�O�
򒻭��m�����
.���B����0b��
���@��ħ/��d�?��4m�/�o
+��y0�
�w��A6k��l
o�z�=vV�tbd.R�
C�{,�DŽ4�� ��]@��Г

z�Ӂ4#���L�#y��,�xK|�}]Xÿ�C��
�>�A𵲇�i�6��p�D�1�|܎��,H�ψ���P�
(@c���
�ii@���Rq��2��[eaU^��FR��6J�z��!���`
{��v'���
��f��Q��m�)0}^(�6Rc�$5
(�r~P�,y�9��wM�:���(�^�։gDH�D��ϡy�l������"�0A4�t!5F�5�bl���
”#@��
+�)�ۚ�+Ou�`����;�\�
mqׂ�Z4+�+'�8���bqu2Ǭ�N� ���G��t$����
���F��7
�G�,)�������O
'�6��b��gSo��/+�Wu��������Q.ml���c`rj�($oQM
+��0��rIF?�i����#@���I�_�S�����>8�Z7g�W-[���ܫ��
J?&�[���1Ck\����B�"�mф;[��
+ ���7q��D
+�$f�Øt�;Sj͖%q�z��f�g,��;�-�^�
�Q`-}"Ҙ�G�H���v��-
�35Sl�.�J7��o�@��
��
�5�p
�Ng�mw���ٱ�ٙ�mu���*ꊸ����/#7H �NH 
	��@HB��\�$77!�P���x �E�.�o�v��[������O���8������bD>������������)Q���6A�Y�-�a�W�j�LGU-o��F<B��8�4���4��N�_ �
�T�%�w�O_�@����9{q�/��ߔ�`P�ɥX���h��{j*h�Z;��0T��J
�5R�+ ��
4x�|_O �9�g.����m�Φ��	�^p���܀bFl���Y\u\,R�ՍR���J�	��K5�d
�A䉆Hl���^js�l�x��9��:�c6:��-
�?��y{"38�\n����,9"ARU��+���J_��ʆ��Q��$��e6W����}HN��SA[�����2�:7�<v7
�=�DU��٭�٭

��ڀ�St$K���������\`˓�l�V��+ ��h���O{ ��/�y at 6�N�.
�D�OFN�eئ#��2��z�
���F�if��D_h$iK�8uyZE�A(9�peko�R� 8��� y� �g�L��Wm
��|!S�~q�`��`�l*��7��aڲ�+�QR�%_E6����̌�VY��:+B+��5-�� M����@��1�u�q���gq��;s'/9���?�lRě��a�$si�
��hIQAAt>�7k1Fj�@3����\=ۉ� <��'��#Gޙ�?�<t�cz�ЏC��C-K���4�
��v"��b$�Sj���ѭ�^��M��;�ڑ�R%�R��1Wi��
�u�%���������|�ϻ{��<��k}�
)_���=������M�V���
�6�(ƆkF�[��
+��m�
��zw�,��F���p	h9���voZ����ͯw�x��p����o��=3��b����
+�$���ʨ����!G�l�0��3Dh�v��Yv� s��)�F��h�)�-� ��܀n�WK�/o>��u��ߎ�o�
�q���xeP
 I��h1�nzY���=�W�u
M��զ��g��ԥ��'�(e]-gCGi.�];^���ɹ�>�~��o�[?) � �oO�P^�M!=�a
Ǡ����tR�l69m^�rU�4��\�	O��%�%�-,O�]T�B��*s�;�?M���w�+��Pm���v{ւC)��#H������ܥ��O��)�i����h�\L�C.�!� K��'b��1�
����HQs�.�����w��{�ϟ��/�2��
Tp�
	�c6�#s6"���b�I��)���i�+��˰��exV��z�:;�9�

��s�YAn�S�K�G?��v��O������W{����$����a �R*��
��ը��1�o���7��l����	���˯�WC^������kh��+ ���qf7�	:�B|�J�+*�u}B�2#�P�C���Ѧˋ�S%e���*���:�g�
c�Ch�܁li��)�
+�`�Fm�5�{����kï
��
��5���!>s���^���sUX�t�9UJ厓���7��YΆ�-P��7 $*g�z0W��]y�����l`\:XA>�s9�
7<�5'&c�E=ff��ӕD�dyi�x	M8ZH�<Wa�T6T�چ�h��AgEt���
L�1��
�A�Cc�#�V��Evr�}fN�t
�1I#7ܤ�	G��ۆ
+�r;���a��t��)��Ch�H�^��0����
uΆ��c�p�.]���
~x�
^Lޓ(q��Uv�����&ro�(�Je���P
��<_ׇ�{Q
+c7Rg4�tFZg�a��CC�����Q��x�!��)(��04e�)
+�T����1�2�Υ�f�8��E‘��6G	��V�����^��؃R��(�E�֘��Y�ՙ�
�>6�.
����"4F�m	Iz���9��)�d�1��
ź� 	F+)mju�@a��7�g��DfFiUcԝR��ڊ�X�x�i�>6|X�G��/@@+$���k��a�����Qbќ0��/�n�M�ҋ��]%�:c!ר�ZTxY�
��jq4�F�ּ]X��yw�?����=5a' 
��v:�u�]��㌵��u=���,�"�@n9� �$$!�+���E�@�AHGBB�p��EA.�"(�hA�
P�뷙�ӗ}�Ї��w�
+oP�E�i������ԑ9�q�ͩ�[
�q)Q<\U�h.g�Y}��WS(35Q���EJ�Yj)zS
��h/P�k�����<�^~��'���?aS�|�� ��A�
:8}F�/�R�+�����|����cha
+�
4�Y^��H���j��ZU�7

+����[C��1 ?w�<}A�w�{�_�K�yē���]P�m�p\�+�ؐ-�
T�ź
ˠ��RV�YĐ[�t� �X;�-i�(i���7[�9GP�q4z� �g�6����@���0�=4kֈ�\�c�-M�ANTij
��*�A�+7V�	�|��ZQ�4�f��m�l��d/ �5���
�@��
+�ݽ��#�]�w̋���Usri07mN�
w�ˌ|��!W��Q�RQI���c�	fWlerU���:Gg���&{�� q?
+�n.���
�����|f�0�rg$u͚B���8�6���9�A�$�Vˊ:�bVoi
�L�,EU���J�@!Og)������@�v4�>4�=A�[�+�g�� $fy4"nv,9r1��gJc�:�5J-AY�L��
+:J匞Y��*��ϗȭy�5�Zg!W�����6��
���@����@6,
�G����D�OMBӆF`�+��٘^-��+*u�j���/i�u�U
cnC�9K)��7h�����s�z����� �5�]��N�������ٰ;��T d~><lt&a
K��]��VTUu_���;�����#�;st��x���m����-&ls{^i��
� 
+g�9yN�nZ�Ϯ^sw�s�9�
qq.�5
��4�̨��&��J���l��d��2zY
���.d����ؓj0t���=��#ۀ��{�:y�
?����ڈ���-w����~��B�=wB���(��z�?�1G�E����AR#�R�ƙ���6T�P�f�kG5��^C����� s��
��#?�
9z��	��%g������^���t!�̛�a2�Rx�c����,i�p�?T��
Л�VN
��W#�E��~���j7 s���Z��o��_;�wf�����	���.��U��/����`
+c�(�� N`+�G�D�+���:�%Z}�E�2u��>T�J
�4&
*��o��w��}��
��u��?���z�X�c���Α�ggS�+~��P2u.���3�M��V�&����*��1Z,�_e����%I#\i�P�pYRg/Pph������m�s�
Y��}��~'�kG��s4���T�j`�ޅ��X~>�3�e�n؈��2�4�"y��
���'�����ʸq~t�Zh/���5�����k���o�f�صO�a��8�s߸F�_�$����@3q˰<�R	�����d%��'���nQ�q����4f�M+���Ҩ|������׆�n��|�q���j��
p�Ch��#�/ⳟ_�c�bQ�G0l�
+�%=+�>>'n9;7�^^^�=1�.5?j���D'_X,�D,�Q�n�����?��t��/����J���\p�
��&��w!��ב���0؋���g�T�StZ�
*j���|��
�	D„=�bC�B
�3�WYx{�o��t}�5�[�,�w������$	���4LB�A#�oaQQ���\x�����ą�ʈ}IH��N��K
�ȇ�ߠ��
��K��e���'�s�}*_}�;v����$p��;���$p�\,��1~ �?$�� �
+
+�� �
��!�
+9�~��|?��}�S����R�
��wp����^@
��Y�H{��VD�rqQ�"�Ş'Vpo�TU�$�V�d�DױJ�tz�t
+�*�B��M"{�i��1�����a�=~o����ض�R[�� ��Q!��q/��e��UV.y�VH[(`��I����ʪY���L<�SJ�0Mu��V���~٫�@(���C��
[����=着0�#�?��/0�S.2s�C -3)��bg����$�395���t2C!��6+�ӵ�khC�5�Iu�?F�;��; ���?�z��{w��]-�SUԧU� ""{*(CF�
+DF$L�@	�;���/�d:�!��Z
u]�{��w����T
�*�� ʇ��F� �� �9xɉ��Y��9E���G4v����؊�?�Ƹ�@��ֱ���B��J�|��/7)�˜����b@Ջ<��*���@�
�;��€ ��f��e>� 1K�Wi��E2�c���9��rg0]����D��g
�Q])����ܚd��]ѯ�W�iMU}:o ��@�
:�v N�?ćѱ�@���F�q�?��.�[cT�(��y�1�o�M70œh~�8J�
��h.#l�QD���ҭ�W��F�[�����3j;�E���#@�� ��O���<��~����.;��YK��h�k&�qt�d=��r�T}�J����+z�PU��X}Ψ�9gT��z�<����
�#��8:���<1��)y/�%O$y����evU�m:�>Cn�^!R$��,�@�P��18Q�r�
�.���e�F��Һs&o|<�#�A��D
�1�@q4�7剜_���NJ��5yvAT�<��P�hx�0�,��w*
�\��^j4�5]�ͪD;��:�U�qZ�W �s��~���,�0PD� u������gڴ‡�lIJ�}����8Ma��)�BU��,��QdRb�n��&�8����mpZ9�.�7>
8a�@���*2
+hc�^�3~1��3�J�E�i�颸����r!:Aj$�U��^N��Mr� ��s!�����&����xt�~8���ۀ��>�4�@s�W�Ѵ�m)9�PV�-kQŸ��iP��8��
S�Y��FR��4���c�4Kl]
�I�C4<Q	��z�á�s�
��!{�2� Ѕ��f�NxfKH~�Jμ��Οu�F^4��܊����p�rf�J@�г:���6��BRBd����
+Am-[[��ꍏ��m@��Ch�[kd�+>�~r��`v��S�!��C����k��B�D��+Y]d=��a&���JD��
�;Dlw؛��7 c�_ �so����`
+	y툈z���6��tk4
6֗��7Z
��*�-��Kآ&%�ת#q�fB׆cʡ�
�2 G��MT���C?�����.�X��
[��Z�H�����5:�W�t6譥d����U�E��FIҬŋ(��ZǗ�kxZ����,����z0=�� >�=P
���~�
���?�Y�9=1��y~4����t��V$�a��i��x%A��!j�Ls�LdE�Զr��V!tZQ<����s`� i����	,{߸�?�x���Q��#/N�e��`%���z�yx+�U��nG��z)�xVY�'i��NC�V`�k��"��|Fy�T&�`y������'_ ��z>����#�n/F�\L���z�2���Cs/)��Tb%Ӌ�\8y��U	��B��+��|Ȫ/����:� �� ��{7Ӟ޸��h�o��;A[����,��8N����(��V�'O7������*�
�����x�Uzj�ޝ;�Wd�(aCV%l`P��Pyp<����}�捑
�^��g�Օ���B�
kQG5w�a
g����7�p�kŭ�Y�l���hd����˿L�^b��/IİK�(�� [...]

ۿy���7�S[��Z�����
h=(L�0��~l.}-����Z�Y�n@�."��@����P
+g�SDF�d{W���5��d�˸�:n�8� �
��� ��\���o3K>^��=ݻ_�%�%4��$&��8�� ��j%��|	���A
+oմ��Ķ�^Ƿî�:�f�Ԍ&��
��6-�L��zH|�

���b�?����ӑu����[}U��
+^��^��_��b6��Q�Y������U8��2��Tݘ��i�-4�3�4�o��'�iͩ��ZRn
+Z�o�H� �͟�s��ӹ��?}����W>ߪ�m���7�
+�b��#�1��e����n��
��?�#s
"*a�Q��{u5�k
�i�xt�JK}�
+��L�
��jH���
+0}�����0:����[gAM v
��t�v�3�t�љvZuծ]��u�C�;r�CDD ��@	!`BBHHB�
r�;��
\B���ZP�X��nŋu��
���؇}��f~/������76ذQ
����@Bbh�\�
�Y��u��un^�R!��
lQ�wL�s6���H-M{��#��R�p�R�ʒKʓ���7k׌M�rM��'����?��g�İk�S!"�	q8@&� 
���x�w���3�Ks�ޖG�!禼�:�����􊑟��� �%��� �X~H�<�齾v�m�Wka��İu�~A���D�
+(Dh>�F����,�A�C~�I)��o|J"��& ����x��ŭԤǮ03b��gF��}P����M}�3-�z���[6|�Ǔ�oK�@C��' �룐��A��
���	P� tD
`#c��{xʢ��
�H��� jl80bÀ�!s�'�<�jc�/q/Ӄ@�

�|�
+�8�-�
��QMxFeU>��i�HR�|��� ���/1����{��.�K<[�'�-<+�A�IgPW�7
�K���
�g�����
+��� N
���H]iD����/X�"�IY����E���M�
o��(���
+g�]�Yt�d��_6]8��|�pR~
=)��L�}�U�z�����{@�
yf4HsRA�:�VPR���X[CY�q��Du*ܹr��.� ��Y%3X�lsZ~=��*UN^i��\U^,��t{�gP�5�y
��- A�Er (ӣA�����eQq�����>IY`��<<)`?����5�Y�^2]b����+�0g�n�Ϫn]T_�\V�c/�=�˚�%>����x[@���A����#I��=�,-B-	��g
��Vm�<�Ǿ_%�߭P�f�ZewJ-�۸�?�{5��#��	�%��Sr�y���UC�� ��
��ݠ>���Ф'��X��ʂ��Rl�Fy�C���r�sT��I<MlQ��[T�p��o���|s^7�׍���
�/��.�v���?��A��bw�&� 4'��� �Y��4�y��h�s	��1�����b���U
+�I��I0k&K;tWp}��Q�h�� ����켡����E�
p��� �
���
���0�'#@����%'��U�������<F�t]�]"�JQ��I���e�V���Ɵ5
�L����:�cmvҘ�R�U�o=HB?M�h�> ��0%ŭ�Ґ���Ǟ���݌!�W���i��
��K�F�M�vW�Z��fC?�������]>jq�F-V��Ty�l���?d^�6b�#�Sl0�b�Y��K���O̹�4�KftD�uE5s����px�!�D�GS�vWL��v��|�j'�mm�
���c�U�Z�գ_��E�&Ѕmc�~0��
�֑��ܙ���y<wΆ��4*&ԔZ���?ȯ���
5�L��A׵YNZ���Sv}ՐCW=b�PG�*�Ǧ�y����
��M������5*`��#��Tr�+'{�
]x�\Z1���
RR�=b�������zScnamZ�ˡ��;�t�S^�v�#6)��U�kPo��࿂9�KpD�����+1v�'=�~��o�P�K6
�m 2�4��Ny��&�j�<����dn����L�C��q���N!��hd�ؽ�|<���5�mám`	��p�官��z"
���
�AN�)@������2FW
�gW�eF[�5��YҠ�5r�N
����
{s;��n;�~��U�����
� Ơ���:��9
�8p8tޝ
55��:ї_���{m������L�5�X���I�f��;Kc��%�t�6�u1�N�mg�F||�A�54n S�_���B����{<�|p!-�'+�������E��K�V+���P-U�j�����$n���l52��*mwVK\'%n'M4b�
Gl��� :�t���Vh��ÙC{�3�����݉���${�����/$8�p4�����R$b]ՠg�0u�&�Vi��[�*����s�TnG�|�N�yl�Z5H�Z�~��f�<�m�?p�3Oخ�W;oO&��g$
���*������nB���,������k���8N9E�i�՞��VO�:�c��w�+��MX	$���
aEО ��� *EY�dHeJ q ���.�{�1�����������wRX%*�U��X��ʄ�3��W���7j5W3K�]L8�(L6@�շPv�j�{��
5�m;n2���I�XKg(���Q��{8���$NQ#S~-I!����-P%_��e^*(�֔T�j���5
U�ږJr��Jj�n��m(���v�O��n�ص��Ю�
��QW�GC�6�{�}�:#�/�a���Dzj� �vB��&�ɸ�R�1�
��<���
s��
�x�
{�a9��n��m(1��̷C����;vNw�o
=��c�e߽1_�ơ ��di7���NH��Q��
Ƌ��化�|r����+F�U�hueI�����\y�Qi�Ggt�mù�[���6�����_M�y>��W���k�:nv}�þv
�sv$4��y4A֏�K磻��2��n������uJ�����UaDG�2��2��2�qwQ؃���R�pa�WPg�����M/�
�uL�nm�X�i�����vu:3��_0
%yN䍡I/�ɴQ:�8��nj�	��%b�P�,|�Tv�@�<x�֍���6yP�NPl�jL���d�a�s�������
&ۯ-Z�^��.�wv+����F�4�DM
�2�gfhɘ����	
7�(-bL�}Q(U��F�E�#��#׵���v@���W6��{��ꅿol�`btq�|ɒ� [...]
+�R�M�L�p�'ʸ~�<�x�NPm������
z�c�\�c����]�Ofy��lş]]��H���G$�;����zO'D�M�
{�BYL�������y
�\Q��F��є�{�V%�ܰI��e���'���_eP�[OÏ�s��,
�r��1

F� �
�\!��}�!C���
+�+&�w�o��F|���,ea��rq^���T�wg��t�\�w��@�~`�`��S��6��%�#�䀣�mI�눁`�(@z��;��@��F }�
�
�`O�x|�
u�,
s��s��
wY9���k��:�蕏����9�"0�.��2�� \-P�s$mC �> �������^@q���;$����8
ΐ��BOG�hO����t��P_��__����r��:!͆�i`�=l���i_(x� ��1����
r�a 
q��#��$������� ��
��$v�@���m��dx��8�$� F{���8�
+;��("���a��)^ST���S��

��7����
+Ә>��ɟA�dL�

�b�c�!�3쨠�bU�o����m`kR���S2i����@�� 1 �ȏ�l�r���>>��^��@=͚#�K�+���ڴW�+�lc�4�`}_8�������1C���Q~u��6�hx�F �0�l?
�	�y�;H� �!?��)|�$Y�"3?i�V����徊�H�!�fL��S��I̝�It�x�#
��{���v�MH��!��!��M@�0���c��r�?H�+��e.���%f�N�M�c�H����͐/dLk�����	�
�V-
�<����I��ϥ
�A����������=�j�2

!���}��A�P�t�<�d�F�d20��)䷩B��$9K�Tr_�K�Ӕr�dlM��N2��Y�ے�۝=���$d��>��I�9wȫ�_G� �7��^P�
�6P����%��Ȩ�ea�-��\`�X���L��)jY��F��X����|
ך3����"�紒�jro�/���&�ꀣm�j�v;!��Nz�A1������
+1�+�d�)��V�a�s��YV.o*�X0N?'�Tg����<'�T�Zs�{�ZI=yw)=�?S�4О\�������
�	���p�� �|��*�N�{���?(�ы
+Q#e�MeX�q�i��Jѳ�R�SF���z9���X�FR����w�O�M�n�Uzw�Oq��KqOV<mC��!�v9���~(�>g�
�Kx}E5��q
�cu��(�:�ʢ2�� R��^��P)R @JH��C�"BE0	A\��
���g��nև}����9���9? 
�^��!H�yY����z at -��F*#��1K���cH9}�b_�R�h2/s/g���f���
97y��7�
H���P������a ��� ���0����WRX�3a�A
*�v
=A)%�(����j*5ybf?���7��
�+�@\��MH�@�2�	��
 ��P��7��]���AP�e���B<�*#����
��q�
+r��|�h%�x�\N�/b�z�|VV�iè�-��
+5(n@��
+�^$����k�
+��$���ub��
+wk�<s�S�߉�MAn��#��6��kH���f�Ǹ��H�TA�t�VU�հ�	b��@)�Ŷ�e�K	��D����
�b.n\���
���Pbj����u��n@�i��f�?Z�_��x�
�w�))J_��zU�B]��;�Ŕ��F2�]K�D�HHh���R~DVM�I�D��Iԋ��q�9���@>��
�d�߁z�����f���������0��]1>���F��)�\d7KheR��U�r:[D��x%2Q5I%eu��aYI+��t�J�^�%�(G- ��i��l	\~ N
�S�y�U�����0��.Fy��a��M𔋵d�CPq	d��&��؜�
�L,�Q��d��J��)��B�J)d��B֋�$SC�
�w�N���yߧ6�Ʈ�6/���>

+q����J�hMI�l��m���"
Y�+�q���
&�WQ%�+�ŕm��������
+��T�����bs@�����
����@�ӞE��o�ܭ��
�-�~b0�������䤶�
�2'��rą�
>�U�epK�y�B�B�c^��3��X�VV��IqUz1�
>7����� �O;A������
t����������
�z��B;��~ICț���F-��LZ�,�8G��K�(^�4��#��J�
�]�c�z�9���@�Y���A�����}�O�_\;��������n�z�G�PLh�%���%l�Ʋ.�I�*\Y��������(ؼ
�X�%m�K�$i�k�
�^�-!��Bs@�i��
+�?�l�u���������?o��v����9�ц�w�D���%H�S2�{31�����|
+����n)c!��5�*!/�Q)Hj�&���I
A�� ��
|s ��Psp
�3�F��>�M/G�l|t�ĺκ�>�m�w3ȭU��
�
N��ӑ��98�żbt�,��B�w2�I
�j����Vs�:�L&9�Z&9�&� ����^
M��a��ݕ���ɤ���v�O�
��e�q'�Ey+�_h��bh�'�G���D
zCȺB(�k���AzE� �*f��5�Ό
�0"4ӌ��)ft��
Pnj�
��
X��o��]+o?سB�쨅手e��36M�$�Po��(u
+v�0�������2`�R��y=�0^G/�����z*T�N
�k��㷩a#3���
+s �r%�ۿ
+��V���e���
˴���
�?��s�i���1�ߓ��A�ԇa��q���I�w3�S��Y*v��5�(������Y51讆to�4��0x�Q�9���r�l�|��Wӆu�s��^�Y�~m�����Kw�|NQ^���#B��q��s���ғ�i1s�̈����9Zn�
0/G�Ϸ`��{�|�������{�c�n[:6-���2vk-��oV��Z�m-�F�C
��q�����4F�c����qƴ�(c
j�&��Rߕ��}�L�{#��}�����9����,��W�ϼ
3
�, S��!��VC�fi�}ؼ��þM�G��N�K?z8��O�.{—��`�bc?���[BD/b�>b��S�P���o�9����3)�{��J<��#��}�Yw:W at F4� �WAZ�Y� ۾��[h�Ϊ8, �v��
+] �#�xA�7���̀� ��}@a� �zZ�`C�?	�O-�"ܖ#�>6�5ڷ�;��2�"{��+�vM%��\
�-��yp�I^vq����2_gQM�g �9�=ǥ=Gg��>�(*(�Ȏ��;�H�����d%|	�
��,심���@EE�R�VOU����0��l*���w�o�{��_����;�C��i zC�g н����|_H���)O��� m�;�ݠ0�ʃ]�ʬ��_Y4���(��"6����5p`��63�q'	ܭ��c
��~�3��!�> G� ��P
��~�؎
�wr��+ ..��:���r�N@���uᎅE�c

��*�lظ
+����z
�H�MQ��
x��������zAԾ����DkW p���N�8t8�
@`s
$��@fk�a;P��Y�l�����n	"�
�b
H�Q�ƺ���<v�R# 9����;����PN�@<G{w>�
����oc.᮳c�ً��9
��ܹ�1�1���������?�`
v뀍5�}w ��G!�Bj�/�Y���D�}�鈿S
+�+�����5�wq�����������Y���.���棇x�c�y/q��1�4o(v�7��kH�x�� ��A�An8�x�|A�

+<A$���5��y�Ki����F�b\
g���]�����n���y���yʟ�M�	S�ḗ���i�9��X��d^�
��g�A��F
/��S��B3Q�SJ���*�bBg�x�7ۖ��)�����

+_ឋ&���Q�KQO”�
`}��v�A�l	��!��Oہ*�2�| �v$�S	�ؙ��d}һ�"�Rb%{�Tϛ��ȟ�k��������%S�1�(��q���7a2����
`c
,�A��
(=�����
=�H'P�AI#DB§�
��6i�^�\��s��u�����Yb��M��ׄ^�
aT��8.}��"��4��!O�nQ�e]f|i`Yi'��l�m�����`
w=��	A���Dx��"���S�޲L�7�R�+j�p��$y��t2�3m�x#>����e=�1��ı�.��$�{5p���נq�
+&+����0ȋ9	���55l	e��Ԅ��J�tJ{�U�K�?Mj�>��"��k�>��G�>EO�sE7�ڙ��+��2�<�b
)�׃��א��
�{�A���1(�r���hH<=�fDϠ��H:�X�
N��KS2jd�К2�SB�Q��w)������봑�6�HV+c$��i
���:����F�-P����,��SY��r	�g��2m�G�k�q#(B�C�8�z���B�]NEz7�
��ܒ�I���N����/3����au#kX]�y�2x�V���:ȶ�yΛ��k������?T�9���>�k1`�0)쉑Kx��P{
+�]D#��؄t
+J2:xՙ�&�V������"�_�����8C�j�7�1R���u�Ӳ
+�6�Y�
P��sM��ҹ��>���j���Y����,BO��z;[��Rd�:��MR�h�g7��5��V]=����{__�З�s���b���
�c
�kA��EN�Bv?k��|��?0�j7��8�H89PE
+�-a�o�Poꤜ�Y���B#k��
�����5�*a��\p�P&�k,�
+E�|�>O<�3�Kb��XC�㟡�m+�y�~�oߛ�`������b<
�&������Uȥ\5�9��颦�lY�€VɋTg�*uũ�
�6c���dJ�3��F�t@��6�cv����`���^GK�q��
;��}�^]
+��h;c;����H
�N�]/eS��
�
��V��Uf��Re�� ��$�7�e�MZYW�F�0W-�3����|@o�
l�1a
؜�u����m��%�]���V�;B=��v�B\pW-%�����\�g��KE�R�S�y*�ʐU��(������E�_0}&�7���9 ���@�͟�
+�S��߮\t�n��c��u��O:�>h�p�{+!�Z#9�RM2���Ǫ*
K��H�)��T*m�N��6���M2յ�4��\D�gB������9_2����?B��
p����%�M�u�m���w��������u��L���@#��p���BA^	��S�T���:��:��8���iQ�i�m��lY"��Y
�Y��9�}�^�Pd9(R�6�� �D�)L��I3�	%�8���)��������������|�'r2$E9)y���W
�ro
���
?(}S�ӑ���)�
�֩ CO���ǥ]����%c7M�5Y,�i�Y��!i��F�y�-_RM-ϻ�R�?{9,��Rl��|RRF�$5�t����YqE�������7
�
)�ɏ<ޑ��)�
�
Y4P��SF��5;��/
x�W�����g-���^f7�2�����.Ԋ��U!AyW��2*R/}8�Bfz��c�%9�gʥAgj�ĥ:�NwJC��rg�EC�zu��6W���zs����ms��w��~a��������
�5��e�
J�mN�� q��ȈԪ���k�Rb�
��WH���:&*���_V��/���+�w���_rDg�f�IkU�����[4Pe�1vGO}�MO���@�ٛ�K�_�o���mϕ���Y�'�	�Yw�������F��HN�M?x=G�_s���b��:�Uݔɬy�ɮ|�ɭ�
�RA�b/+�զ�tU�|�J���
+�W�mR}�m��N����W���)6'�����|�
�
��c�DŽ�6%ň��w����3�\Heܩ��%�w_J�{����1��
GV(�d�2*uT�n�V�y��xիE���5��.���vmy����N���5���ҏ��.b�<
�>����o�DrZ�c}[���-��U����$r��D���$j���� {�.�TB�2����/^�#
.SjПS3�gi�{ݒ>'��
O��
��q�b����_B�]�\~g��ݑ&ft�{w�
�t\
�ꨎ��l�t�z��9���)z68�D	W�o��Z�?u�#ꇗ�T
,��i���C�zҏNF�<,�i�QL�����?Л����O`��S���,�W��}��u��e��y�UL��+v��S��;3��$~�S'��� ��j���#*eߩ]�o^T,7Y�+��O�;'�=�#e4�@ӑ/�rdbO�,�B�
�&��xȏ����Y����h����u��X#w��v�ݗ�
+C3깢L<��F�{�F�x�A\�T:�����۴�����|��O'�w7�S�x�
[�ׁ>!r�L�:{NF��N&��&%�����S���T��˴}P<4�Mt���
+/f�V��wW��kS%*�4�ҩ��ǡ;�
�Ra�:6�p`��F~ �0�cF����n�uF��#��#��G
�!��
+E$K�s�@��9�]��0�������D�
�T���e��8�v,����`X�`�

�������N70�I��> ��~�� r�>ę["��
�fȱ2E�>��ރ�w��f6uw����	��� r�3W)
˕��
��
�0��b�
+�WS���
$x�9�[�Lkp�XB��A������{��c7$;��C#��@��!��M�O��/	�X/A�b��Ah)c�� �5��2�
+�E�0�"�Z�
+l��<W���z/kL�^��u��!Xw"u
�~R6lE���8�� z�o�*XF��[h"�n9"\tEق�.�- ��0�	�#n��y�YL�<
>
x����j=���ir��$�5w«�����
�/�U�
��r�c3���\���嬃h�D1w!���av%8���?)�b|������J��ؠ�s���~S�6�$�
o��=��O�Q��3M�����������Ad��pm�:���f�2�ɷ@H�
�q$�K��ˡ�S�
�YeL�T���~S�z���7I}��t	��_(Â�h#�t���!����	��Nu�M5e��x�uH�،x�1b��Cp
	�= Ȣ�{�v)�K�i�5�)�Zޤw=��@0A}����N�7�PF�,
���`Ȅݾr��<`&��O�l��X+m$9�C���iF�g�#Zd���= ̠�W� ��5���o��*o�Q+�����~(�F{.���0F�0L�
��w$�
sD��%
lg�gEw�:�v/@��2
ڿ�.���b�����ϰ��=��l.R��-�:�{R�U��p#V�$BB��	Y$9Y�$�0B�aod�����(PW+^!,E�^������y�>���9/��y��w��}�q�z
P�!��q��O���(
�CT�=��gd
���W	o#�oŸ_F� M"�#Q/I�ѯȷP�(7b��5. ��
0w~��B~`9P�XT?�9�; �
 <�q����
+��'j��p1�Ƙ0o�E�ר*���F�
��<��� ~�L!f(#Q�Q�P/i�1s�k�9���9�= 
n�mq����b��5�
_
4!ۀ��?P���(�}�c�y�J
MKB�$��g�s�f����2�dL
e
�N�E��F������c~c�Dϲ�1���
vK�} 76���'P�^4����c�A�-�B��ǔ�}�7bj�
�6Ö#����qr&�)�D
�Q
a���c����n� �.{ =����p��3�V�snC�sn
�>@X��\���V���?,� ���!tǻ4���̡Y%�Դ�jH�#
u�z:~��C�C��o��X}�:No\{�5�M�U�����?ͯ�O�+���r�3��n��w���f�B`��
����9����H�Y}L��p���u��D�
(0�9Z�MF�5��M.�t+y�&A
���	?,�'L�����2򤨈2%�����
`�u�M
����%�;��������sy�~���QC|�
��
%�'�bzjb7���2����zj���R�XM�I\I�-)'�K��b
mB\@�ḨO�H�8�W����w~r���C��s��k��
3�s�63��Q6���4r��6�[!¶K�&��~�������˙��F����"�D�]�?�L
�4�9.5��%Y�	�=7p��H��`�1��],��
Y1W|r�T��MO��w��eC�/0m�|L�"�H��
+Q��o\J��h�K�ٍ�
�U��}_����6HϵIӹ�{ n�����
� 
�O�
�O�?|�{��e/ʏ��U�{P
��u�''�L��٠K�T���2��^�fq� Ohg�K�
^�\��R����Q��?&�
+lLj��wx�Ѭw����݂�{��"��YMв֞\;T
�w�}�˄
nʦD֤�c�tB�5YN7)S�92� C�'N�E�E��C�,P�GI����1YR�
�P��J�[�r������Y��¹�}�'}�K��5U�v�� �Y��/�Ηg1c��|�I'�S�
CR���(N�Yd*�R!�Z�2�_ɞ*!hTAc2����p�x�3H]��}=@�����]�_��Y0���^���}�gwt�#
cOU�	E�ttAV����J�N��S��r�Y&U�+U�J��J�����E�1�Ha���U�@�5����i������
�kwxN���|ҹ�k�5��zC���������'K����Ԙ�<^�-�j3��$��/K5�u&��-Qp5
J�暒�
Qr4�rn�,Am�����@7d���K[�>Tluٰ�}�s��ë�
o�txՕ�`ߦ��*�P'�����B2�p��5	(�\��<af�(��+e��t}����VR
��Q9#uL��� { 
>�R'�
�G�&�w5\gZ׻�^��<|}���W�w��V�
Pr9꘩{.���+a�%��R��!(Pq9���<���c��952|N�<>�g�83mR�a�.���	$�r��t���
>�SWV:�rk���>��W�X��}rKEG�
K
2�؀9�ZG@$U�b�\��TDc+شB-�h��.Y�K�}�6(E[�%XӸ$.wBl���y;�
+�OU+��ڼ
G��
��r꽳ݳ��Қ�7����y(�

�n���)(A=Ǯ��52:�Z��Vf$�+̂�J��]���#���EO�P�)�=@��/q֯
��/qx���po�ӡ��r�Ο}=��K��+��3�F��NȺ��	:�VMi���	ӒLC5���vDS7����< ��]~�QmP.rF/P���m��`��C߽yݏ�:6��Ž�ў%��GVg
�� �
uDЏ
f��B)7��^^L�u)6�Z2>����u�䝆�c	Ъh](VED$
+�*���d��/�FI�
+�
��Œb��#ngT
-.uGܷ��0�n�
+�B��� �39��+r��?����%�R�C]9�˻R���z��U.y�;�w�;�l�`�W��q��y��-g��?c�S�_�
i���y����=*�|�	BKZ��JO6>�b��)MS�X�T*�4V��Uj^cu:��Zvc���tW�n��`>�ӳ~�˴[��9N;W/9��'��%j:f8�����#�m�ϲ�L�����viTv�:^ۖ��֚ǔ�.�[W���d�1�u���V#e�����ߴj�����%?
P�b�v$�k
���4����mv!�&��2yҶ��]7tG�۝8������
��/�t)�]�8IWN���0�׵���^�bvWrR��s�L�y��c��?��=����*��˷��	��/����m��
���$������K�Q���	���T��L��
�e��P�`F80+�c�_ĴŦXJ�U$&
U%�
�J�>�=r25j�"#�C##��K�n�D]�=q�=��ɑ���gD�Gw��>ѝW!p|!�ݲ7=�^Jp|��R��q�^��>(9!�Q����(
����H����a�Y��1!��;����BG.��;Q�ȞX?2�n
����)~c3:Q��/�H�& Ã
r"�d(|���!�/1��B������?���T��`���G�MG�	b�
��� ֶ�j��+��}<
�Aw�#`�
'p3���nI`�ǃ�Ѵ(ȦG@=#
:�d�
�R� ����y��=[���9��}�Ʀ����߷��� V��|���a��S
��t� �D�}
���Hp
G��P�'����'�C>i>ԓ}��<9S|P�6%_z����=P5uv�1�� ġ�P/r�.�
�ܙ�I�H�@Z^(�%Q�|
��D�J�/�&8�X`�a����:�$�I���!����a�
��x��a��;�{K����!�Ȉr�a��93aӡ�@�
+eq��q�u1�S��� y�n-��\�H�n��l��f����裆X�T?g�o"����a��H��i�9C�
+c�rY3a�aH
@FVҖEC�m<$�� �1�n&x� k��&�i�}�V3�
��#�~� {P�i��
	کaa5,
�>.�A�
C�+�Ĺ!��<��2 ��0�DC�:
���oe at X�u�
�Q
�S|p�S�\��(��n���D�{�;rP�o��,�'�!��6 at f� �A�
c�8�L�ש
(�� _��6
��h��L�j]
+䛙��āh���'��#�N�wY<L�[ȧ�򍤏염�̒v����"k[�6��A>���3��a��)X�<��
,��a�&Fc42��Q��)mkD��
��,�B��g��_� �ܒ��Z��T����O�.
P�&6+%��_e�- �� �/
_'�E���}�4
�p��R4��B�o��`,L�\�j�V���[x����
�~�IvX�%=!+9�x-���7+_�_)[��T-��=�YsSn�\V��/*G�5�f.
9s�Pl�8���P���Y^X#��*E�P�.r`i^|onI�)k-筮����E
��җ���vE���l�S�e�c�M�셦Y֓~G�>��A�^W�֯;�

����8"߇�UcP
���wG���s-�}�5�bc����)���pڳ�S�2�$�kw�[4�UՇ5������w��t��O�7T]�K���zu�ᔦ�p<��p,ctPY3dz;���/J�?G��	��ʔC��9}��~�kUa������O�^�i�[+h2VJ���n�57��^K�YEs�pI}%낺)�����3�=��=ƣ�
c��'���ݨ�6��^�(������aS�+6�L�X�4�}���7�o�FyP�:}�o�K��Vq�.[#���B~5wsڥ�
�
{��������S���]_QM�i ��P
��XP��2*:��
+�� қR	�ɗ� ��Ih� �%t!�Q"ʂh��x�w�#I�Y
�
f��o�:^�������O������ERS�"��H���N��
+8����LA�Ȳ5���,�2��_*\7���{�|�Ž�%a?<ˏ=���?� 
�
JI
���EޢĨȥ�
�ۅo�w�:����f�0E���4�(��7�*����H��w #��jc�
\	��[����Y��X-Tyl����f�"�n�(��<��=
ŷ?�
|#�jd7+'�T��J��5�k���r
��ZC�K�&<�K�:Z%IO����7�8�+�6�9��(8�.?b�\����̺�:�M/꼷�,
�Ք]r`\�sH��3A]i�ȶ+��&vAB�,IF�"I�rj%��^N��(�P)�5TL�х4=M@[�~
�̦#�����3�+�}�
�Xlp\�J�~Z���#����ʈ꒸s�B<�+�
Ԛ�)��
S��M�J)�W�Ť2f=��P� z��g�d�1�P.SG�a�i�!p2���
o;�:��ڭX�?f�k:a1�vz͓f7��~�V�
�+�9�,���PsX2^Z�$=+A��S+ȅ)����V(��b��#,^�
&/Y��L�A��z���X�
�H�f}g�!��������mG͞w���hs�:����6��^I�K�(�[^L
+�0"�1eY�af>?����VM��63�rz�\�?Y
�
B��r����s9z�!p2;i�
k#�|��r���[�a�[�!�g=�,Ʈ�l�ׂ�w�1�XW�e�f	ƫVD����)���tL^Nn?���Γ�8�rFJF7��q���x��g�3�Pr���|UO3& �S�5��`��їƽ���}�/�0~��_5�t�<�᳷�9�h[C䙆�xO�$�_TN
���r��0<AvRZ��t%OLc�4 at Pv'���fQr
��9Z-K
��::���
�I�=�mB���(�j;j�y��k�N��m�x���g��Sz��l8�h�8]��Q.��	�ȡ�b���rN<���K..$2�ʩTA
�T����3��Z�@���4R�a09�
+\��!ۊz�n�zyc�Y�
�������ɪ����V���u�a�������
y���Lɭ�˖d$�+���22^$�%�� LY/C��'��i�"=+4
������6�?��^�
�r��߳F
ݵ[٧>��󖻍\�g'�9Y��ߎA�Z�
-�՘
M��O����d%LM59���U}�v��!�5J�@��X��1f�G�y�P�d
�в<S��V��#����AӞ!�u̓n�e��������K���8/NW�E�5J��Ih��$�dc⚋�QMR|����P�B�F/���EbD-Bf�Y���k�'�j0u�
�����a3pG��4�L�
��~�źr�g�`0�h�:‰{;�<��C�I�ǫ!	�9�1=��K�¸�nIB�R����t�G�a�������Z
�3� Xd	f+���`�%P���ɵ�cr�q��QK����E�=����s`
G��
%�'�#�`�B�S�"���BՂ� �����<�o�7�W=���F�����1���ap���6�m�`De
+�M@Ϙh�Z
�i$�:d^��ic��
i���&C�)Q'q㘳�?ܢ~��"Ʈ�C4<� � �O#��(B|4���c#�^c�!^߆y���9�
a�����v��۷��r�4O��ڹ�@<gc\4{�<{�q=���5�W�=��b�_������<Cp
���
���0�;aZ��{{M+|<gz�
χ���E�O/�ݦ���:�lЌ M���5J�1P<4UÓH�U��ބ�=j��u�iݬ	Z�]����Q��v��1����)~�lG�|�i����
Z������9]����~
���Y���y���!� �;Q@ه�a# �4Es�@޻���w�M���[R�;nHz�%���K.���/�C��߇;���dヤz�u����ę����?�O9~R:��<�t�˄��g-�A�m t� @�A��)��c
�,[1����<�*�O��Q�u�
+��cK�_���ࠝ>p�.O8���0v�9���f
<
smO��v�c���b��8��fZ�p��(%-�$T�,��,5��K3�4��HDuQ�P"Kٗd�ZN<�9����\��v�updi��}��{����>�����������Q����

����`��>�7�ZN�HM���$R�C��Æ��Gda�����+2Z���B�'p��Ăp2
�S������Hr]������
+�j� ��
��yh��C�
_���K^�h���yb�5b�=����l���#
p�Q��,�
[��8X��G*�c�����E�_ �O��D�N�C��VN�š)�����i��8�
G���U;ۈ�����&��_�HfPHZ�!I��!q
�"��E���mB�"�~>"��p�g�#�!
��(Oh
g�����3a��N�Q�4��N�B�8k�C{�-�!v�,t���5�J�
d	
���@T ~�|p7���c1�?�#�H�KAo��*�V�����"t�@�'
�@�
P{��}dY�7�`
+b�� 
u�:�	Z�34b(�
���@�, �����i!�����֡%`��D�(0~���N��
�}����
��G6�9��?CL � [(B
�[�=�	q.Ш=�4�B�qq������%�
��x�g�`]��y��=�;�{���5���x��5,k  2�)���Bl��p'���0�\�Wx at c�2;�U
 ._
QM;#�����tp[�\��6s������������cc~�����p�����G���� {�Ü�ʘ�T�
�e
0�}���� �5a�lZ���(���~��'���gY�b.�cn��y�8=�לO�O�1��1�v
+�{*D̿D�[�!އ��-L�쑾h
�h�ś����H�� 1%:K谺8|H�!rP��6 ����c��
a�=��,���(������^���%��~�w
�Bx/�[b��E�܋=!��9��a�� 
gr�ܑ��
N6��C����=ڵQ�TU�nE
�/�
�����?%'b������W/�w���s�ᓸ����ے�R��ȬC
�A�I�Ƀ�L;�8b��Xɜ��!�|n�>�sZz�s~��Ē�7	ѯ4[؝����>�s�Q�SY���r���_�
�?ߓ�ߑ�ǷK��W��ҋ�a�y�u�!C�NF
+�;��ڢ0x��ǡ��<T��[(�����{��
�*#7���U��Mk�O
U�G�:��n�=uS�]�	�-�y�M�5Y�������GqI9�8�R6k��'4C
+k %������D�+t@��1����r�w�ƺw�V�t���
{���z?��u7iC̯��?
���	��W���m�ӊK�˪
�[�V�곚��f��nPs8aPݤ�r�
L�d�����S�o�
��_+���Xɜ��z�kg�l���A
+R�����ڳV������R6�^J��wc��\�~��qusB��d�
��'�#���C�ݾ��^�n����f� ��{���&c���𦐑=��N��_l�N{Z!�Fx��
v� ��f)`_�)��\ג�Yz*e��y����E�xŰ�x��h�2�1�v&�����	u��A3���l���Q�f�Jo�`M����E�o�"�=�ƚ��*���zU��5�ŗ�ҩ�+,�e�'s��G�*e3����5hS$�N>�ؐ|Ѹ#��i{�KcmJ�qkjobMZ��:�Oo
t��g�w%�;�y���}����w,p��>��z��ݭB��������/M�6小�\!8��D�߲^�7�ZՐU�����P�q̸%�5�:�=iszGRU�g���
cefobEf���
+b�,g�":�z������_Jמ �獡#�N����v�F:�u�n��rsԱ�LvSQ���p�xW�Zy}�&�6K��&w��*簩2��yC�����g�u9�I�r������r{�A"�r��YLtފ#�os����e�r��Ɂ`��{�&^�ɛu�6��L�f��JSdSy:�qM
���P\��T�ee���`KBE~Cb����2�is��jr��q��ؤϷ&�, ��%!T��� ; (]@���{�:!P�R�B(
R'�DD H�*" �
�������qw��Pag
��ȇ���9�9��ߒ�s���9I$�(��B��VK�	�S%>�� ~��"^��=�7��y�^a��s���`��&�E������T�S�Y����A������ʨcG�q�'y�3좂s�‚�n�Ô�/
.w��-XO�l�D�de1�%�P�D _����*�s�:�bhqИv��N~V�q�t��`�~��x�v>ǵ�6Ç_�TSq4������Һ�"މDn���W4��9z)�p�}��8�E���Gדr�l�D����@`�V�FExߡ³J�dT��=bH�2`#7��>"���
a��k{����?~л�>;���0����y��&6��)!��3)�l09�l:�`�
�9�e�����̒
�(�F�P��y�yX햅�#��`\���/�X˜pQ�������<
c���r�9��U�t(��PZ�=/2��*�PmC|zu;+��lrJ�'��&I�̩Zg�Tn$�Vl�D�t�_$
X'
ڤ�E���m�ۓJper7uj�Rzd�Y�g�g穾P��3Qֵ]���S<xm�~��y��-EYMQ�q��m�I���D�$;��D�����X��b��?Q̒%�T��x�)	+��pwBnL+��e|j���	�m
缴Z����"-+����d7� �'�3'0��д��Hv[}t��ָ�֞����,f�u��Df�Ĩ��bE�
i��-�k

�����#tX����99����d*%�a(�Nyh�'���E��Fcm�Cl��
g���q��zK����FFw�DEvwdž
���W�B��*x��!6�]4�n��5��������
�f�p�4
_�$z����l�ϻ�W���L��p���O���S]8�Y�����ђ@�HuH�HsxȰ`��9f����H��5���'f`�hȓ��x�E��!q�����<��7Aϭ�D�MZ㲵L���J�u_-����
L������R�.e:���G���f��������|�GC|�B�g��x_\
���5�-L�O�b��V/��Q`b���kTܣC�%hx��Z�������w�4�	�9p;Ґ}+�4�&�2j9�6b)��T�
�X��������8�������}q����G_�k�'�+>��N��A&&���t.�C�#I�.�^h�������z�-�;XO#v�>��c>N6�n��k�Rl�r��k���}����x�����g.+�98=�����7Q
�;��
pa``��4ݣA��RP.�F
}�C�ycJO��$
]ㅾjQ�P�pa�v����:M���aC/�a����o�,l���f���ʹ%�?wHo,�

�ן�DY \
�$��o����4(^���U5"kU���fJg��l�YsV�X�V^
R
x�_��m����d-��;]���:���f��ֳ{�l`�^`h�>jd�~��r��gc��"��
�t^hX�x@@��!��

���`��C��Ә��J*䣃t�'w9�O~[=>�*�~fns�������K�����;���jZ|����[���
�=8��t��
#�42B�/��kd�
@�s��u:pP�Q��D-J�S�ь�6t7t�䌞[
�_�Ce�!S�
+��"g�f(�`���*`��
�Tݍ=���.�n��e��4.��� �O�H�"Q(��D����'�P\Ј���hC�FG	
t���}Ja��FK�!k�.<�y'�l��b�a��&6�j`鬜:���<G����W ��
�
+������3���)f����hH1E3�ZQ��N|:�렻�6�о�@�&���1FB
�$T0����tE,�+`���H�c�H�dHA'S*z�|,h�gK� wi
RD�XU�Nہ
y��Z��N�z�x� ]F��7F�Q�����L�v�t�
m^�~1G�
�gs�E�o�/vh���.:P�ń�^$?s�c��4*b`�*��h�w�6z�v�k�>:7��ict�5A��=Ș0EƬ�_l�WX�i�?M�1�2�q�����J$��ވ�:&$���*eQyP�E
Y+:긺�
�(��#��
�~�������|��
�G �E������	3N:8ͺ��;8Oz ����@�5 ��!8����&�c�G��́�� ��
+|5;�Gk
�:{�nq ����#x�9��g��
��8����f�Ӹ/
�<���.o��u��[@�1 ?�s�!p�@�3��	�if �o^�9��-��j
�y;�Rf�5@nr�v' �tR/���2�}�e����_^��S��\?zq��fLxÞ7$���� >h��p�
A���N�AF\2��r6�h�jі�I���,[����t���;�RZq3~�.Ӿg\��^�3E
�&���$��ߑ����N�_���%�|��
+�, ����
@`i RkCٽ��V at 8y5�l� �9H�:��f����f�
+(w�Ĭ�Mқ\?����'���?���z��
u��:L�w�~v��{
S��?x�J�;�oe;���5C�B��"��/�oS����l�Kl�Yk3)N��d;����9����u�����t�3{ܟ1�N|ʸI�/���W
���
��I���s�	>@�e@��>�A��ngkJ����X��O]�%��i2B�ӟ��֯e�Ǥ鎣����2��Մ!n�	���1���!���k�t����k��k��:K�7�J?(}\��[ 0���G}Eb�=l
A�d<�L0�R�׼?��8
/��":��<�n($��_A�{

w��^��f�-�q�
^��5^?e�{�z�;B���������# Z�h]
 ��>HQ�@[�!�Mڮ���{��W{�z��n4��yX)��(6��~��;aj���<ⵠ���*�+�����6�E�I���>�9�?��nj3�qf��
�K�10�$H 0�<�_��^
ꝉh�4
]����\ܒ�\w��,_�!5{�o��mw�r�q�qQ�{/�3=.�iH}!徽�jϾ&�)i�d`O���ˬ����c�6�'v��M��U��� �E]s�z=H٤�[���
�<��E!~鰆d�[6�A���Zr���܅�ngc�<{�r}��Ŕa���:�߂�X��nN���Iv�� {ƫ
��=��V� �*8�����P~��
$�=�Q�4��Xh�����p��y�b�Uw
+h�e�-/�����#�{(ܺɞ�q���
�5��~4�&�A~�]�ɭ	;˯
+�&�
h�'�����e�y^�|�[�-��ӃH�7�P��\���lқ(ݢ���J���]�w����r>ע/Kj{F
�ܕ��XR�gk��ܴ?�ZWL���dUE7p�Q���=’�_Dő�E�Qo��Q3�C�:~A��W=�
���1��%�ޙ���h�F�I�i�V���
V��\-�[���SO�xgWV�S{z���T�g�*�|$1�Z�p�qXq�U_�-�khbO��c/�sc�s�^�r⦅��s��x
!��!n꽫Q�Z�M�}���y
6T�v�n���j���
+��Ҁ�'
�;���
��#���=��T>)��2U>�(���I���*�ي.Q��$]qW�V���S�4��)u߀`�_�vP��@c�MjM�給����`����:���IkOk[��
+lZ
+��ϗ�Ή#j3I%�i�Ci���bVvr/]�$8��)NI</Q%JTIc��H�4+T%�	�� �C�J
2����D�	6Ҹ{в��lep���������i�mZ�uC�ԡ�(�U��!��%�49����,zfF!+M]�MNk$
�'���(Ro"����"��Y�2uN���$~�A�	��t6td)��yv��
h�fp��y��FO�c����Vs��THvU�����D�k
+�9�d���
Zj�& )�07!�N��.���Dg\�Dg� ����YaL�� v��G
�c�Zc�q��^��f�)v��B���qɉ���&ʏuu�m�5"��*N��p�.��J/M�M)V�'�1�RNl�~T~�P�wF
�7�
#�E�y�ByΜ �
b���˱�CK�߫a��������+��'���t0n?F0ml�?�u��p��JPaTd�@B �BB"$@Xª(.��
+�U�Q��
P�Ƞ(
+n �
P�
��#������Z�*�K�M�yO�Nz�;�������պT��xl�6yo���q�Bi~�W�5�+�y;���)-4,�^
�h[E|fI�)��xҜ���9�?��[bؔQ4���u,̱,���%4xPɄ۵L�Rτ��6p������{��z�S�{��aam�_�����{��s����w��fUn�\�茝�����S���/������Tޓ��ݧ������ұ0��6��Q
���Aޞ
8�H��&+hhq�
h2�N��8�r(j�r+l���ק�V���P�t��
�����5s�m�L��a0UW�&�m0��=g�{��6�
�v�1n�X��	϶ܫ��{@���4h:A��V
l�{�x����(&nj�M]���d����s}�
[$^ؘ-�װ24�h�*�~�6��Lg��s��P�f��u�G�
Q�
Q�Р?8�P��m ��(p��I���
�.O���
��v?֦K2����+�GO�i3q���㵠u���3�SO�1����7��i.U���#�굺��ڈ�mDS�V{�?B{u��� 
� Wj N�4�$�6
+T^e@�	PtˍRxˇ���zō����΋�%L��C7�j� ��R��˹~���
훂#۷Ku�U2M{�\���~�x%W]�W(/`��<*�����U �� �Ԟ��D���L(�?

+
8��|Z� ֲ�a�
�Ϟ�q��ڙ2��9�
בō�XΏ���K�Q(�vl�
����
�h
Tt�
Pt�
+��$�3,��cܮ 8_
p�(��&�'�ϒ�4��ik~
y�)�m�P���̲qif�m�9zb���c��7/r��$�Mk^�V�7x(��\���'7�˞��g�r�?��s������a���#�_j�p�����F�W6ܥª�����^9S��Rӻ|�.	+�Keex
i��h�:e���<U�GEw���{�Ti�fא�27qO��7��|s�
����ۿ��
�����F�]gH�2��� ���YϘ����?�P�z9Ը^��'f��
ei�5�T�z+�@��| �V:0�.dp�_��&
�O����a��)>C5��Cǝ��/:	�;��/��1��
�n&�K�
`ŏ �� �X�4jFt��M�@-
��
+
a�P����B�zV �Y�a��L��Yㅘk��|kO�b����
X3�
�ٱ��~�&��6r6� ȻO�O ��G��6��ɠDW�
9�����i"�ӽQE����h��Ɯ�
,�0�b*�e9�,'�a�ՖS�����3c��3����{���D�Q�4H�0�)ځ�P�qE�
!
+�<Q=0�����i����`�
4L�O�t�=.��a.��ʰ�"��a��D��CE�����4T��Q�DU8
�c�P�f����([��
.R��n(���A������S�x���X�9���xG
r09���������A�C��ڗ�Z1�Jj
֨I�Gբ����8�hJ����*���\��'8(>M\���'��o<G����Q�`���G�����B�'t>t�
b`������8�d��LT������;Y�R6�*�q�~�u���F.J�=Qr����Nި�����?(���KGy�R������$��%�zQQţ��GC���1�
���0Vg�����်��Q�f��@e�;���b/Cxb�Qި�$D�*�,�,��
�
��]��彂w��9z��Ч[����0�OE-��z
c�
	�
L�Z`��
+�c�16���\0j��
+�#ڭ�aM��zo0|?@uDЧj�*[�>*/x}P��~�|�ݣ|�ݥ���B�Y��0��<
}����c%�	�\*�fS1��wM\���H
��t�����dr��t��q��ƽ7j�Cd	�n��]�
�7�{�G}^kN�ti�D/5�D/4D�j=�|���f���~Rc�5���u�ԙ�q�ID�Q��⊈ȾCHrsH ��� ���}��;�
+
+#x�Z�ʴ�i��Z�Աu��Z�>s�x�9�|���|�����񐊵n�.<��o �{�
�`��Z�$�����kT���"��:-�~*?�"Xu�9���"Z�{J��S��ķ���䱓�3_��:�'/:.�_;}N��<G���0�d�6�,I{�0t'
FY�!�"	�G2v�w���
oi��v�`�w/F�FJ?	W�<
�
�*���^���
Z�����
t�y
��2�~�z
}�z���m��1�B�k(�B�Q�r�b�m�c1I�
�ؿ��]����7<_ӗ��M�N���m"s�7���bDG�r�~��~.B�x+���lX�ˍ�.���A��!c��!�z]
��k<��H�;��!�g(�\�
�-i�8Hǚ3a֝;��ڇ�Sx����K���3a�#^��=.c�
vҁ9��l��n��p�
]rj�^�:q���jd��hD����a���I�K���ß�����O���+���q0�=�V
<�m!ڍ{�} �Jfk�(s^�(��B���g�V���ӜT�I���8+�q4^�r9V�~)���B���|T�_}0��~5���MB�	���3�%�BS$�a`�
+�il�8����;2- ̶Ľ�����8��r՗ro��و�
Q��?�z<�cs�˷�H��y��	*�
�λ+�ί=�5���Ghb\!�cfH
1Hu���jc'��BbU

�����`�9���K���
|��^����=(�5�/�X�O9qˤ4t�(�zX�h3�K��K��N���s��-l�Ϲ�j��9B
��XͼD���B��
��e�F.cA�&�+���8��z���`x���(� �Ֆ`AmcpS�fr]I�|U
l9$��3��d����g8��$n��<�z�ʷ&�<����c��4�A�4q��J�G���Ѣ�wHQ$r YɁ��`4vּ��;r���B3���
�,�m�����xB�鲒�ɀ<r_�,�h[�D���� ���s�*y��ڴ� ujm���J.L�$����[Լ�g�<�/��

y%��5/kN�z�1o
�Q�<ԙ��Jsp�� ~J�fT�񂊲�W��=�q�\N�]]v�c�X�J=5�|_U�:��l1�ׄ��{ќ��4m����
M�{�JxQ$<�`�K�8l��u JL�Ok�C�1�Wa�k6��k�x���!��Y����C��I}�N�:^��⨕�]J��<���| [...]
+^S3R2Y	db`����<)2��k��jcp�~#��߇��7����]N�֢	�]_B?TUo�-�8�(x.�r��"'�'GZ�-�EY
�@܉��C4�h��.��35]��.��"K�l�
�:�|�2
��\�0�7��=��F;��:��m���
+ڮ�ȃZu����(�9O��!͗�d�)2�eA��:r��
��.R��S4��>�5Y�M�AJ�"KA�	��5��
��*#p��L6�#-�pͶ��z7Ӧ� ���JWn]R
c��&����S٥�"��;�H��+,%p
jH��VJ�b e)�Q��a^b�(,D� y)��|�Z
)q�n��3כ
�X�)��a	z�mV�����o��R�G,K���)k��ȫ�vٕɎ��|��3�LV&�V�%��XU?���@�Uw��(1ſ!1Ő�(Z��e �W0Wi �
�x��6}=�A{�a��.'���M�6�eKȞ�&�!�>�6�!�$�.ݙ[+tO���fU��U�FW�#���ȑ�W���y���{R��"������wy �� p��ьÝ ����s�8��>�Z�ﵡ�7�"��f��i-hg
MoK�KiIuHl��7I�z�7�Q�����Ci
+n�

+�
\�+�k�{'�B >� �
��p��6�?�7���{qe�v��C�d]@?�ߓv>� ��e�Лb��w��8Gv廝��xw�{S;�|)
W���[�E?r�/~�V迒g9�j fjk`�����s����@=a�SN
3�w1_�3�"ܑН���]�QM^i
����@A����H ,!!		�	 a�Ȣ���
���Ѷ�N����jkkGfܵ"�hE
.���q����j�����3��/s������{�{�����sfW/�=�4�rl�4��:���&e����U�ԉU'b����r(�P�V_���}�P#>�N����W���8�,���9�u�
��>��K��~i]�ԅ�܋/����a坟Ýy�D�U�D�^�R�j�<�h��h�.�����2��A��>���
��NOD���{Z�\����
�����oO#��"�V7�Њw���X�N)iQ���OͿjr˹j�ʺZ��\�25/�$7��'6}&�o� �7}״G�m:
�i��=i�c���� l���:�;�wP^�����Ս��
Ϳ㌊�|Q�MD���
[�}���f�pN��ۊ<�zǷ�1tmk|cm_�bl��Զݜ��Ǹ����v�������
?�6�OvwP�;�����;��y��e���
*�pA�
Ld��R�ԩ�3vΰO�Ju���v�u�O��*v�t/v��^��^�ٳ�K޳�[�s�.�=͐�^cHz���a��k�=U�
�>���Ghùw�K[�w�@9�(�+J�c�Ծ "�_L��+)qZ;�@U=h��̦E�;ȇ�
#�J�$���p
��K���i��
+נ�Z���V7�n7�ˁ����p;���8��]~QB����i�8�
c>H7�'��""zBJ*'T����"}k��C�]dR�!�E�BXd/��4��8p�ܑ�~p֑
͎,x��
�x�5�q�u�oC(�'u"4c������
)��d  $L�������.9
t�?$�\0Q� �‚�̷�C��|n�	��
��
Pݠ�}�f�>������g�#�Ѕ�f !8w
+
+W�(� |�!����g�� 5�q���
̤+�$�a.9�N�	��)��B�r�=�H$$(�H��-�@����TP�i��w�g��p�Zw�l���!�_t��1 �����b
�v{���
c��b���h01�d��U!$Ą��	��Va�8*Ĥ�@=�	�>re�(>� �/�}K��

�����_����2AR�]�
`O��!�t��Z
+�WR`�H��R~��
�E$�b�P
+�ev0CK��q'��@�7���'���
�-
����r\�>&��@~
�a����
��أ�
�+� {X>�
��߀
8�r��ɀ7(q�VH�
 �pIj*$&���9f̙���!v�h���7��z+�bMD�b�G
d��*�FU'9oT��ת+��-Π��ӧ��<�����S���@������?��IH䓐��0�)����IO��0�M���_�=�_�3�[�|
��5��略�3���
�
�h���5gx/4�x�57x�k��}����10�=�c ���֟�.)~�
H���En�Z{�4:�M�L5y�$�҇�V��'�c�0l�{���nj
���]�^�A�n}��SwQ�DMЮ$�M�|�
���[:��A�8n����@��,Ҙ���HB>�#/�~|��qĒ�2�U��<}���̷;u
�3�+��ޣ���&��O�p/�Bh3���Px��t�p_t=ᙨ��*�р�K_�걺I��&�� ����(�NBQ(e�(�:\�� Ź77ǽ#g
�={	�U
[�Z�m��7S��H�!�zʿE-�����!�ƚ�+����ƛ��
�9��j�i�&"N} }	��{o�7s�Y��
���Rʳ�j����)�s�\�ΞM�o�BVkN�ŲZД���!c��R�֐��
a̻��̇$V�q�SmD����cY�i@~�<��4��V��J' �s<�0,b�K��%!dW����"����f��Ź��b��R~]�ʀs�>
���*���S��INf패��';�Q��̨�<�Ѡ<�qOy0�j�jo&��`��@9�=	����y�>�s,�A�e
Խ"�x�BB�Z�uh)M�ְ�B�XRȶ�[ȯ)\.<9���q]�QM�i��$�((H�*��"��@V,���f�5@	!�LK��@�����(������h5x�9���2��
�
��NGǶs���ȇ߹�~z�}�� [...]
�(� �r���9�#�'v�<�lY
es�$�a�����L�	N��X��k�]�;�]ЛYܕ�ڑ����ХM���ɍi�)�
J�r=
!է#��w"6C�l��R��7%xxQ���
+<<�r��U
���`�E)�z���Li��
�,�a>�c�����)��̓��*�u9�6������Ϝ �e^�*3W���uZM�?��Y�P��2��r}��m���ob
�Zfk�V�Pa�~�RM��|%Qz|Ǹ$~��(ŵO���%�
n���
+%ZnU��SOP�����j�8��=G�`ߡ��_ҥ��h�ܟ)�<���f�A�%���z�)�U��#�%ܫ��e�f���eE䶉���ò3���.��
��Ҽ�MB��Z P�+���ڰ�¦9��$�P%�+�2�-���%���&��Dq�� ��l��Z��`ߗ��+�	k��s�9l��3��k2�"Z�*?�﯊���"yo��u at +a{6�
}jKK��K���bA*h��u�E�!j	����iTo5���
����&�#YP�>�e�~L`C�&���ZSXQ��r�5\k���޸qM���>ʮ���SkM�
me�����CJ)׻���_V&	*W�"5QX�N��<�
�@��>B��s�oh\!B-"y3$���0�T`��½z��5�:<̶�ɖø��P��F�m[É�ZU�G�J�>EM��ʪ|o���HY�8�T*�Wy�-$����W6Ec�-�s�
F����F�*��"o�d�� �R�J,48X��`��f:�`�� ��-ؼ��b��t [...]
+BV�����&�*�)L�U*Cq��P|Ce���¬Aȿ!m�p �� ���Lp�~W��y�
�z{���ô
1���){��˻O9�w&�)�H�WԖu���㕧��4K3��!i��0��3"Y3JJTϑ��+�
r|�������ȭ^������:�Ou W��)��
���{�h
s�hF}p���|�f+<�X�?����p��e
`��
���{���~����䎆���v™���+�m�3bl뿈�-��b��}F��qջ,v \D�G� ����<e
��ݠ���VL��MR��1��N;�';g��\�G�R�
�*�J
��=;��շ���
�
zl�Nh��������
Ӌ�����
>i����� ��Z@՜#H��1�� �\�%w�c���홗��.�:3.f�$�p����㦥�NN�z
�j���
���5y˟>��?}�?��O�q$�6�nfDgpG
p
=�I=��@+��B;��D7�x�xK>ؼ�0��4+��6�g�������|�`��r��Ł��fڵ�C�k3��eO��=IW_zFο���C�#f�w�
��v��~��Q��i���r�
+o�s�+� k� ���c��L�V�-������&۞�˲?f`;Dx;�
e���jg�A�'�з�h�v	7|�f��k�g/]	���z
ٿկ{x�`���) �,@�
��[ �ߙ@�C
8��
����`���6���4���f1ƳG��m4c�5�ȵ�4��W+���jv���8�N�
Z]����� �����_;<Bvm5ߍ� ��=� Z4�����h�=��/p�f'�Zñ�N��G��1�gD,�Y���I�����f��l���|ˠ�r���Z���6k�?���:�j�J8��I��%��@Xe
		�A�
+Avd����q�ڣc��R��BQ,r� �V+�]Zƥ֭�+���&�g.g�A8��;�~������p+Y�'�,Y�U�GG���;��}�-m�h��Cc3X
��$�r�+ϓ~
�� ��CA��!��^	`Z�
�;e0���RuM��]Z��;�.�N�{��`x��֓�������l1����V3]ޞf:�me:�{�t��c:�����?p`#����q`�= m@`�

������@1(��Ȇ��dXM�?Sn�i�#q4�Tڤ?����̣�~\C����~ǰ�C
Kld���x:N�q�M� ���} �0�)�� 
��dh�:���=`*�
�)[
�BYbe���(��̰���B��f�i&x�h".�S� ���ߢ��M�>{
�z��
�
�LpA8"�4`��`��`�"��p��P,
�RFC`
+��l�¥�zb'���&j�A�'�^R
+��4Tx�P�������Q
�H�G�</c�h��m6F��&�Vj��r�
+��l�&���
��e�
+��#n�

#D����
+e��S��NC��CC�@:*"�=S���,��k�P��%;LQR�B��lt�$j������s
_%nsF�
��
ΐ��ـ�޻�9��sG^�x<���RH�?1YL�)ބ������/A}u����W���W�赍��El��k��
�UGɷԛ��Θ�]2�����k�/�6�9h���72��!�K����XߙB51UHC�'�O���c�qJ:���2ST�e�o��G���?}��?(�s���!E
oPq�7�h�W4����^�#^��5�π�
Z>W��So<U�u��x��O�P�@aY���%3�����H}�$31p����Ŭ��fS6p�O����/��/���X�QU�U��]�S�N�9�+U
���!�ÿ��X�oզB�~h����w���S8e�oK��F�u���hrQ

��0=�9��2~���	Z��Ҭ�vN+�
�a�|j1���2�u���a���:�v�YA�������]�+����v�գ�8�� tl�8ַ$}"֎�x
+�l���g齍�bvE��
�f?����$t5�=�+~[�V�?>�-�Tj}'��润�����
M��u�y�V�M���g���
/hF��5��D�Ӡ�DdEa0��$ L!g�*�S�i=�j���0���D�G3t��9�G.�ߌ���z�F������Zd-t��m��%m�Ӆ�Z��!?9�
��rN�����Gؠ
q;�EQ=QG�N�Z
�(��M4L�f���Ι��I��Jz{z����X�[3�ح	ټkqyV�cW�\�Yg�
��CS�ǟ"�8��(s9
~P�~��Tx��>좸6��xx����!IM8JE���o`iǒ7g�`Y��ûl;x��
+��ʩ�g��[at5#�}!Ugє�Pp6i����
����6������-
�)�>$����VG7yTE_�UF?�U����cP�=�L�xI�	��ds�0<��Z@{�-�ΑR�.�¸�
j���8�]�ECF��.-��D�
+ǣ�_:N� �N�&�!�Ƚ2~��"�RV
w�s܏^��Z�qO�%�����(ߓ��o�k"�!�dc@�1��3��E��4�w��кXD]��c�[lظ �]��lq|�,�ú��ՙ��3
+\+�ֹ�������M.�}7�מ���EI�R�N��+��g��^��3?*�I�1ބ�S8Ä́!9&��1��<&�_b7�r��2W�i��1_ì͍d
�I�U��Tfg����T6k��^�QI�ɷ�<��^�3��{{j�϶�:�-�畅�w�_�u+7���nJG��騘��=�C�<�����R}���ZVr�y��^)��.�jpdI�*/�W�y�`���v��s���-q-�[ �5g�d��B�V�.��Y��MY��2O(�g6���yK�.��om��Z
�>a"��^.�#�N�z�K�\��
g�8@����U+���b�e��V%y:��E�
w��n_�B�u���.Ϩ��<���PD� �H)#LQA�,�"��t��ІFpF�  �RD�� *�1X�Qp]��f�%'n�f��=G�}���s�����=�W�R���*�x��-^��nAIܐ�84�wQ�SQQ�;aQP�_B6���1x��C��T��T0^����,p�̕�_��-]��Q�ךnܔm^��`U��fW���H+v)O��m���R�����I����ޒ�)�ܤ�޹�oE��D��B�LH$
oA���26.�98�]���pf�n�t�.��*[;��h�Q]�&��8+e�6��lDz�BY��[�Q�+Ho�u�S�E��g|2R����>��H{-�H#B��K�&�E20�\�ߖ�p���Q�

)�qX��t)�*�+�4��W�֕�V�"�ҭ
�&ۖ�g:J��
$�\I�N^vN�WFv� -�h[�i���	��Q^�R���"�<Ln��y��3��:�dp�R
��讶gګ<9�;�ΩW�ҩ.1P�7���b,e%�6E��yR�sN��-�P�VP�_��wH� �\����D�M/!B��KH,�S�C!pY�W#4{
ԲѻK
u�L�.wvC��zMu���2X_��`,۱٢�"�Z�=�>K��0�T꺭�bQ���#����U�+�������,��
-})�.�$�)"
+&��{��d1pq�5����k7�٨��&+46r�5
�j����:�^q�:���(���X�̝)���,�dE�K�9wkE5/���s��nA���p���h��}�OQ�QQF�_�,���Õ2ڃJ�����w��f�m4����Յ�l�ț�5�{V��5�d7D����b�R�d��+�>�6�)���uSu墈�&ކ�.�u�C���q~h���Н��)�
+S��x��gz�7�.^�܃Z����Zi��>5��Pt:2e
^
i�RuI�*����K�n��m�7�rKs���=���M2�
�J���nHC�{p� O�p�C�p�C���
��
�:���=zW?��
+���-4��
]@e�*�{磤ϖ)�sg��.V��Y97�[��pp��֮(���f��)�����:�v!�;
����ikw���۪����n��{�����B����.^R�
��=��l�RMPz��A]H-�u̕I
r��bVύ>�u4Bc��uG�LB�d�
.X��P��W�v�
�ﰢ��qy�7N�}7
�{�;���s��&
�����9:�t����}��C@� �H�ĶQc$�:2������%���@��`�u#�BF6����_s*�p�p�q�p���5~'[-��<l�{�
底V�����"6>Lj�L.�
����7
�h�2h�����1=D�[!b܍Y?.b��/���Q����
��
ߪ�r<E�,g޲�}߱*������>#��ic�ؤ���#��7&�s���,1��7��]Կ��+�_6d��ǁ��
�\�D�U#���c�$�&3�+Y+&�l�������U}'�|�2爦�4SJM��&-��
m��)
��:�S��]{ [...]
+d�.�W��)6n�c�mm,�m
+��
���<x���� F0
���Y�wbX�;)l����\��n���NՅ��T��_����x��j���
~�4g&}�t����˨?���-�_��
+����gZ��Z�|h�C+�?r��'�
����J8?3NO�3�O��g�,�g���r���F���l����LP
�͞�d�={?�6��u����@��G�S��&��=`��\^���Ws8�j��\`��֯���?,^��ٛP���b��&2�r������M�އ
ּ#,�߯P�S��b� PN�P�}$�}�-�o����
8��>i���b1�91�	��q��B��G|�KV@���E�1��aɂ:�3j��Q!9N�����,vP>�'S�ߨ�־���� X�������ԤN]�O}&�gI}���D]\��wa�% 	��R�)i�~ =>BO�͂8�2�ٙ!.g.C
�X�~�خe�6�J��l��Q�*���\�iTS��@H.!�y`b�
�Fd�A at A�
4
aJ�"cD'(��
+�(�
P���ϱ���+������ �߱�}`������:{�u������I
,c��`�#ց]�����{I�|O�d�E��?Xc�����{�<
+8b¯�3�
7*��5��3�5�.ClU4�-��B
8۰::p�a��Qpڱ�X'v�1��e|�
2F9�#��a[ �lA{�̷S ɥ�,�s��0\;��
+"_
�h�@�	|9
f�рW��2:p�b5
��a|��'&�G�q�	b�{��̽D|�^'F��a� �7B��Mh���X�� t'�=��o�) ��<<�yb*���œ 
p�h¬$8*��
���u���&�#���@��
��~'8�="he
N2�
�7�n��{��s�sr��79�zJ´'$�c}$�M���6��3
+��oq���y�-��
���p�1q�ևo�����3�go�7j�q��|�\�|�T��©Ig��΀S��9�3���~�
V��3�^�i����;���N0��	
~���.�܍,��+���w�{>u��[c�}��[��k��
��������k���*t�Ϋf=�b��t���S|l�ù����dߟ{��#�׻-
�~C<fx]
F�b0�Y
&]S���c:����O�
8�2�x!��o���#��%0�<ӵ{=�t
��f�_�a�on��=n����ֿ��4����.��]:
��\7�ٵר����%�O�
�`v���ag�������z�9
�CC˅���y��K}4z��~��a��%3��*uo���׽K�m4��4��èӳ������
��<N������ǯ�<��
�l����1�u
+�½�X��.�P\G��H
41=w���N���vcY$�
Ϻ�D�����_mر���_������|k�O�6X��
�l�i�:�s����u�O��!�N�/p���m>��;��P
�,�I�F/�
P��ݓ�-�
�;j1�3"���:��wjY����<㶠U�Ǘ�3k]Ra�Xmu8���`�~��V���g����
��	xk�;`bƮ@��j���ƹ7���GhP�������XCt3���b�R/I��F?���m���o
���)M��̚C�-��o�ڷ��fop�m}P�]]��;�Nrk�~�����-��*x��5x[�w�@�;���M�4V�;A
ݓ�Lu%١
I���2Z{| �*
�=
�~st�Q�t���
���U]x��ΰ�mw�U�o
�ͭ
+i�m	i�o��)���C
�C?��€�1
fNKh�(h?/�2*�I��[�tԝ�F6�\DiKu�lI�#�e�Y���=��FuR�im��bGt�U�d5g�
v��*gTD���#�"�	�G�'�F�"K#��k"?J������A0M�@�i
B�Sp�Uh��t�����dX��L�Ғ>_�Y��ؗ�ڝ
�W�(5ܞ�dZ�nQ�cU!-�[j�!���.z��5�{
�%-d��p��_�jI��:��P
�w1 ���d_���h�
��wW�еL*���D�:臕f��J>�Y)�h��ץ��(��Sc
+�e&Ir�2��j}��S_l_W�-�����
T�C�|�)�<i�(W�D�;�
dn
��P��=�wp3��+)�#��N��X�1:�ǣ4���؝�Nߡ�gVe��7��0(Wę������fZ'�q����Չ��[�y�:AvB�P�pR���%�Lx$ʔ
;fʾ3e at b�� 
�gx��q�R"tg�3�V at G�U���;{T�r���iU��17eO+SFN_�%5.�H4+JO�T���(�v���������Z2#e�cZr�H��9K���,y�[�<eB(OR��ɾD!�D��sgW�|*�7�
Uk���h�*[�s��Z�v�mR�ho,X��6/\�8'ƨ0;�L��[�e)m�3UvYk��|Ez� 5��19�(Qqy�,��F��6.LLaR���û�W2�CBW��
�߮8{
\MA
�l���m+R7ϧ�-"��V�C��*�Q~A�iN^��27�:#'�V�]�M]Y>3I�]���'��:&�ͺ(�f��^�zL�d�/�.<�s���?��=
�|����
Ƹ��Ľ�3bf0F�Q�PI��.���
])��)��B[(%]�ە��n�v��Dm��v
�T[�UJ���:�꼴����5��|����{�y� �L�2��,�9��l#(�J�@��r�=��,�u�!�SM�ӣ�W��/I[`������I�
R�
bW�8�[�]9'y���j��s�ɭ�IO\g&
�D'g���|�����
�I������PQ��
��<'*;o$�.g�n�� A҆0�e��f�YsD���Y�g.��e����n
7'];<zm�"*�L5=��9"�Kx�5��5��[�T��L%ʡ:�3a9�E<'q��9��&���5x�>�XBV��J/��)�y+��n�d��)��˼h������Yh=w�2٬
)vQ�,y�v��i�%�)Y��aY���YW�C���o�a�d�b���τd����`����Π�� 6��Af�Ҋ�`u�
��؋M,��h����S�b�E	�n���U/�*H��,X%��%�.ls>���ab�Aǐ�SN�����7=p
��w
+�%�!9�kųx��)-v����bE8{�
��`u��,���=
+*�̃�/��Ŗ�Ŕ�	f�L7��=[�+�"|W�h�W+�Bw�K'�������
,:�������}�mD
��s���s���^R�
�(��shR��X\)���wPC�T�ffU�*'�E
L;mV1�$�b�ل��-�����m�W�C�_^!
S~\�[~	uI}�����������q-v�
P��߻`G)@N9@ΡK� �հSk
+�km �N3�<��:fjm0orm������ڹ��5�5K��֤��Uk�|��YxW�����W�E���NѨ���Q�?�<D��:�{P��_��_a~�~��C8�
���8��,~� �֋ �^�
n0���
+n��7Ld��c�u�bu}��
������F#�����5v��`��o7֜~a�v��	"Df�
/ 8���`~v��kO�Xt`n=�:σ�F�h
�
��;�i���@ʻ)��j��=��0
M���e��y���y��Ks��������;tGO��LO����t��#�'G0�o�|m@
+�=�@
fG|r��G<��a�5Spo����ܮk@}�\[��u��"A�C9�XD9�XE9����E���C��/gPm{�1m����i%�P�_��9��z
 �`�w���!? ����:.���]�ۅ��K��_`��
+�
����d�@��p�t���`u/��r)Qw	ey�����2�;e���2���N����4�_r`�y̿|��`�
 � ��4�
��	X��`X�
�z��E�
�?� �g�`�l<�<���Bb�b�L�W�@�W�}u�݈~�����c~�q���6D���
`t��6����������Lދ��
?p`�A��@�x�

�@���!Y��N��d���209��a�ӱ��V �[ j�v�lI7�� �� ƄC�1�<�3�<1��
qH�ܑ
+B_
��
|ozr�3�^A��k���DC+_��C(b9�&�41[Ba
+�B�h;ڍ��JT��F�ѷ�t�� ����~� �gF�Wf���
���4��^���M�x��p�X��D��&�d��rQ!ډ��~tբ�G�9惨��2��{�+�S��x�~*&L����zĄ7q�(��9w���.q
E� �&�&v�hbO�r���mf>Jw0�%��w�rf at Rɼ�
e�%ǘג3L���y)��<�v2O������C�ݗ��?�ET6@\$��+^�Z�FR�ُ"ʉ4q�A����Df@��y�e2��\��+d^r��
��}��g�rG�^����N�����G����v�{��[�v9��MN���	��_W�ֈ�(Y��k�t@�#q?4�w�it��
���B�jӫLc�(��#e>�P���@��w_��wOq�ץ��u*N�:���ڕ�yw��[�
�6�~���_U�%1��/�;�{�x��b �؅�>�����K=�
�������c���.�Ul�&�׮����V�sǭX�[��-u��Mu�^����u�Y~��%�U����4��� [...]
+`�T�Ri����y�Fx�s�.�q|��
r��۵����y����yo��띭}�w8�>�9�|nr�ol������ʖҵ-ˤe�=�UΧ䋜o)�
�����`������"�&�#��3��<#���“���QZ2��\���b$���D������+	m�k	ݾK�v��x�r�~�Kq���f(���/�]���p6��Q���4���3�`	(;�
e� ��
/r��
*<�EŸy�û�q�[�L�jfa9���
+W�})����j&-�Z��)=�����g�GN%

<�4I�K:
4�t!x&i5�X�Ð�䧡G��H��\ȑ5)X�KX�7`\w�r���>x�>	���]��.����K�<�
��^�9e>gx:��,����f�ٌ���
�M�`����tW�D�L�+�
�p��`����_����+����ǐ�5����|
���U���"wxP�
w�`EĄ+�͸EQ"�\!��dA�ל��8#P���
��܆���V�
k��=!㼽a�y�4g�T�h֩ȑ��tG�]��� �;z6�&��
+,
}�sQ�D���%��I���V%~pYJ��F�ii
~N�u?V,��'����Z������Bs�S`	�9�����}yt{�\T_�b��޼�1z��Dw�5Q]���_Z��|#x�~s�Kn)�$�U9	�48U��*��婄��\�C�"⁒R��X�?"����ZB�
����=��zO�ᨮ�Fg�yfG�*˒�V{�3f{�O��BlM�z�
4�e��ε�F�O��
�>pZ
�`J��U�D/�y:�Ľr	y��̿_�
�#�
���C{�-4k�-�C<L��ƣ�D���YV���,��m���e*Ƙc���A
�@p�/U�ޫ8[�	�Z*L����nƍW&�*2<
j�πJL�+�Sz��rCpgiC�����&�l�D�����IV��4�N�c��S+}���U+Ř�`������*ʿ�G�� p�� �� p0n�
nL��mX��a��z�4E��
+�S�
+��tA�*chsY3ͤ�lPأ��1F��(� ?��_���ߏ�ɿ��R���R`,���?�>F����(��^Խfjpp���Q0f|
7\���^��a3d{wU���ҕ��i�M
դ�	��0ь�]���}Q���N�bW���T�.ŪU����V�^�+�1�\��"��h
������:��еg=Փ�����p���>��j���
+�-�b�� �oЫ��*CH����׵Gh��(M����<�Rifc����
+�;��JͿ�J
�ZS���/}���t�ZE3��rϠ�7���.��g&��)
��7����x�9��n�z67�M�E�:�������
+��ԅijZ#ʫ��e�!�B�U�����c%���g��{��
+cɪ0�zO� �2���F�Z �� ������`�mg��}��-��Ԛ��В�cl. �$��,�Ҥ
V7ֆ�54��뭑���hI�f��[d\�)2�D>A�c�j1������:�� �Q� Lt ���wxBOg tZ�f݈k���Vߙ�^�������b��]�j�P��!�SXIsG���N/l���7O3��y��|�-0?a	L�YB�6b��>@�p��-3�(��.�����
7��R��F�����vs�նD��7ó������2?YWy�Īw6�vXhŽ������]��ٖ�
�e�ɳ<fd���nâ_�'t
��
Σ�ϡ��6 g�]H�
�<@��A�
m����8�`�[�`��r �K�_�#闐��2J�
m���.�������Ƴ�DdڎFrm���o#���=_�ӻ��wa�r��Z��V4��h� à �!�ƽ�{���n,4N&�;7��mx�3�P2��!x��}��r߼�_�H���f*��
��p��
�’�O�����h���h�?�'�c��6:�
h��P�� ���Q��� �q��CP
�@�H��~Ů7pE��r]�AQ�g
��� [...]
+m1�hfZ<�f	�4K8�j�eɖ)B�e�8�2WkI�N*Zd]�\Y�N^�EZ��zB�A���jr�.x���}�5A��~�J�(?w�j�6� �󁥅�ԋ�)RJ%�\�Ab�+ʽW
�X����,ښ���YB�u�(̺@
b]&	���Z7��w��[�l�[��~�s6~e��q�C�q%\�{�WGh��(?#��ƾ������#���@j%W��+^�CX�h���`Bm�k��M@`�4��a�u�_�"�[����S��~�hl�>ј�J�g��g]�ȳfP�Q�%���L���^`�}�a`a��Q ��PD�
0�÷Q	�)
��Fal�7��Ls:����q&�3s�ޜ��0�e
\[���%��%���I8��ù�	s>��p�ٴ���i���
+�]ʞQK�
@�	�?���I�oU���W�p����㠻6�DC{=�7f��f:47�Bs��P��	u�~�ڪ`�v��?��� lo>m�nV� ����G�A�	'��&���:�n��1�ߒBӡ��C
U�
��(�|�����
YO"$=3!�Q�2��
@�ׄBz��=H����f���X�
0��I��
F��)��_��u at wP�lP
( PC2��h��M��?	��tB�"��� 
�A
+������kS�R�s�Ӛ�Es�@�a�=�2`�8����Ȩl�3�q}��JC
��Hb >$�L$)�^��>�8������qZt^�w
K��-��u����D��'3��Ÿ2�q����'��v�A���Bp�aRN�H^ɛ�B~
C�
���X��H��P��C���n��n��DO���Z��u	T�
�5�2�^H����F���"�$��W�셺�=W�3u
�����G�n<P��W�Y�
g����k����J�H�܉�����g�sw��q�2����m`/t_�g��lH���j�؀6��k��m1{��`�5���F���
+��u�u��݁��\���?m�p/�#��8�{Q
ciMƘ�&3Փ
>j6{�ΆF.f�#W�'���~#{�����;��
֫�e=�֥?�:��C��ןd�����Nvå_��
VW.�D.�r�a����h+i���	���8������Jc�=�a}

X�a�2�b
���ak7lcwݿfwܳ�m�<v���nJ�5C�p���j�(���Z<��N{r�)O.i������Q��
�IC�فмy�ɄG�Q�����9�o:k�Y�n�,g׌k�e�B��K�q�p޸[�Oc�謱@�l<,:m�5�č�f�I���߇�:�W�_ns�g�|���D�AJ�Px8�ሡ���
1�#8mAq�
����wع�B�i�pƴR�dZ+j
�L|2`��D�N��{$
{��E�ڀRiM�1��FY�����jz�(3qe�ώ
Ãm)_
+
%�#m����E9�=�
�#��BdZ"��S�ى��BC�BQ}��ĵa�T���

�(�.t��ې]6�!Y�|yy�!EiH��$�AY
rIy0�۶(�0�NPW�{����
�I�'��Ij\�脳1�h�
���	�66M8���I�+'.��G�^V�'������M�C�mʃ�
[�9WUh.RD����k���-v{�?j������7$�
<�Q>ЗH=_2p5Y��Ir4'jqb�j�Q�<�UL�*�%�'�'9��@f��Ȧ0n�� n�2?�ۼ�/T{cv���dj�b��3c��{b��1�t������aG,w��l���x0� �O�~�
�g�4�J�C�
�SG����(�
��&	�ii��)s��S߷�;e�<'y�2k�JUf�Z����Cu�5}�q��K�o�\��
��Z������H!� @‘�+�����9��T]ī��u�{�����t��
����m׵���ٱ�?>3o��7��>���x�D�xG��#���G��퍼��y��
�1�3�K~{Է�o�f��Æ�_���$��T����T.n���T�wR7�\�v�4�3�g7���p$I�4���2��w�7y
�Y<���=�
���Aߎ��~m1��[b~(h��-h��Hh��\���`����%l�i<��?"ﻝA��tW�ΰ)�8��3�A�q�^�a��QY��pZ�Ӏ4ۥW�s�N)��L��jK��$��4%��Y���g [...]
+�K�<׭E��hJ3y5�YxS}k�]|�tDP%�VH�Ef�u�I�c�Q��ؘ�o�1�}�������c%���殺��9��Us0��c��lƐfӧ�ve�ٷ���͙.�J�[}F�G]z��%��W����Pt���!A�|BT*�˗$�� ��S�^�X�`E�а��t��P�7)�r>0O����c�
�m at o�6�S�m�9`ߨIv��V8ת�\����+U�r��g̬�-�l�/V�ʣ�B�Y�N�����xB�K��dń���3��_�
ܣگ逋���"`�~Ǹ�
CB��GGAӢ�ñ�G���%8XrӜ+����
wcN�g���3d��e7�
�}�|�aQ���$G}%@�~H���J�Q�bB���'R����y�"e���s�8B�a�+z�|tٰ֠�i����E�U�9�H��.%:��!_�Y�W�˫���m�ks{�H�=%Qi/dj� �)�Բb��-�����in �({�H�WF�G��'������5ԗ25e;8��a\sI�}iq� [...]
+���~VA� �`T��;!V�.J亻r�'�?$
+
K߱������!��u=�"�!�<J
й�d�&�7����|#*ʷ1��Pn�9�^oJt,0ɜ�*WmY�Gv��+���S�
�K/i���O���
���������ER=��K>�{�Ks�H�_[p��"�$�bP[�*���(�	b
�ݜB�~���xmu�Sv��%�2�MYY�^a�������S̃�$�0��(��8��q��KQ��[Q��&���'�]��%3����Z�Z:W
tCY�?�֠Ⱥ��Ywr��pnvC�}V}���^�8�v�
�w�֕z&�V�k�}�j��15�,�(�-a��W¨�/�U�	V]������u���T��z�>+�C4��-�(l�A~�*h�7#�};�j�d�Eqm��im2Gi��9�%�5���
�\�y���
��볿�_x�,?��:_�/�a���a
��ճ���`��>G�Sʹ
-�]��=m�]]@^7�^/d���ٿ
��A���0�����Xnb��>�/�!�W��[��cv
�����幷������%ޮ��B:��B:������㦉f�z~���t�.tV�.���=�Q7���!
[���@$�oG�x(3
͉
O�F���"Ʋ����
���9�
�u�5��ct�m��i�m#�
�#?r>����o<�Y��,�
�Q���}�h�
Pv	e��c@¤b��=%F��:�ފ��]�	gBgb�=3)���
�Ι
����m�U�?�nqxkz�q��	�7�/��ޜ��S��'X��c��@
+v��
��>ʵ���	 sH:D�&�u��9_�[��s�c>oχ`�|�mq��2o�T���h3q6٬܍�~��I����v�l����?ᮝ��n�9�~��W���c�����2	N �g��9� �ឋ@�e.�,x p���
��iq6.a��]x�j�_�Ǻ%�,e��%V/Y�UK��ʥ#L��yFr�6#Y���,��/<爯��1E�#T{'���t�����rcIIC�m׀�7�5�9`�
w����
+�ﮃ�����^��ł_��9�}P�V�

���)x=�χ���_�u����1>F�H}o��M����+@����
lzx�> ���չ�����l�e�
D��((`�W%���	1`A,H��@Dņ�(�<	��C�-�O1D!�ODQDĂ����g�0���;�=�;{���9���F
�9���P�Y��0�s C �Y�ҿ#�DH�N��b:D� �X
+AC��Fr�<�(g3�J��,Z��=�X�=�OZ��8����
`]
h��%�+"�6�!�j��&;��@�:5�ͣ�1� n�@h�m���
+}k7��j����GK(��]�4��8Zw }��0�`W�. ��e@~5��Gn���+��j�M
��	���:���k�Rs��G��?�:���=�@ON}�Do��G� �=�b{���� }
��`��]$7��b���u)��b�ѽ5t?+����� ��f�
5���(F? ���C��?b�>`�h�Uŗ`R�wŮ`0��o�4�H�%$��"�H>)�k�
��x�Cx�jt���h���(m����0k0���Q�����L��ɼ�L�Dc����O�WI%K�r��W��߀�|��Ex���N�
���������y��n���@߅�B�V���
��5��ջ<��RM�)O��H�D�ɿ#3�Z>
]�x)[��,<����:t�6ᑬ
��t7�J+�&�B��
Z�7pC���]h2ehT�sE������9塡|(��T������7��T��j
+:U3�P���Ÿ��@��7�Q�M��Ven)w�r��{q]yM��WՌ�C�k�p^øZsƝ{��=fK�m�`����f��9/��c� <��B��w����m"nh��6
M�ehԮ��Z\�n�%�6\Ԗ�^�,���4j��p��W�Ew�
�����ϰ~f`}�`v�`�*�j�
�|���vC���u!�����^���+
��9��[�Z��貸����i�z�;���U۔q�m��ٜ�z_�۶�l_*m�`_&�ۇ	+>��)���Q�Dy
P��+K����z?'\��z�?��#q�n����U���듸c��>�;����s�C�
��V�}��ҮB���ܾUXf�LX��D%L��3l �w���`
φ��1H�6G�[���g�\q��ǜ�q�y,w�y"��y_���s��W8-�q��;-�v\#,s��:�J�v�v:
;�9�:w�lqf���L����m|�N:�h{u�
�A��!�8�b��nq�m*���
+����[��u_���e�p�K��ؐ**2,m7�֛l1l5)0�.�7TJ6��
W��\:dk\^�V�2Y�g�`��(v���F�#9�
.�	%
�}#�c�w����JFs��c����S�[�ŋ6�-��X ��f��%Y�Z��=_�ڽX�����
U�9

��
���֥�
���t�'�+m�����Z#PM���88�>�(��c��E���V� ~�O8�qT� o�DѺ���k�6���+Y�"��ʐ-�ʑg{�fzmS,��m���ae��ye��
�/�/���L�:��}�
?>4sЬD}>͟��P�o����
;�`k�@�xry�����`A�1Z����ѓ�٣�L2�����e�i�t�,E���T�-��R�B���g��}[��~������=���h��(�1:��ӑ����� ���(����X2��

���d�
3lj2�|/N�&I
�I��?W��b�и�l�q�r�1_5׸S3�X��e<e���<���&����R}p���˴�S��h`o
�[t�ơ \���
X
a�d�{q�¿�

��F���/
+�$Y
'MN�'-P�	J7���Jܠ���<>�����j���f��<.�i�S��G�Cp"
+80(�ٯ��[�u^����ȉ�̘AȈ��Ң}��Q������XqR���9�Ӥ���'��S�
�E���
]��
��|j�
�)�ǻMk"�-&�1s��T�?p�jPEq����췍��Ҽ3N��Z,��ҿqBj�;�(v�<. at 0wl�pvL�8!f����)���xy\�
���ԨL��ȵ�"
��uyGEu�q�wgfd`����.誈�i*e�60�
U�RUZb�2�X�YK�(n�Q at M\)GO�-�h��k��n�Q���
�9��9��9s��{��}������b�<�31�=uO\u]�D��1�D�[~:s[<ס�='ˍ�y����
��kP�0e	�P�0I(��H��Ҝ�y2s��&3.N�
��#56Ci��uXS�h��vN�ޠ�G���Gp��>�36�o��_k�E
Q����Y�|��7��jd�Y�c
�?4�b���I�Q�4�I�\�t�l�-�4���
6)�1��D�")!�ΐ�c��/T��+�b�����۵
�\���z��/�N���Fŋ�~�>��\�3��T`'ٔ��uy�%&G,5�E^�rR�!+e��a򗤚����a6I�Ѷ�E	
+����$�}L�R�¤r'��V
aܦ	7�w	3
wY`�����%��Rf5�Q���|'��&`_��ԥ���<JҀ�t�f�9c(23=��9Y0e�J�2�J
�e��(۸�xyLZr��i������+
��u��bQ���ӆ�|�
N�Nl��
1�Ԅ�Duh�;��Zle�鵚����.f��I?�9YJ,6k��=��QX��%rf��ْ��itv�MTv�m�٨7����ʵ�*U/^��x����=�̣�9�ߐ{���_��: ]t~�Y����]��%�9@!��yF�
�%�H���w�
�#v��]�/�I#
+�da��6���KRAKr�������P5+w�����/���on���w�/�~9���;N1���\��,�k� +x\BҖI��U�+��ҡ�*�@d�d!��G�_ 	-�'
.��K�mJ�mg�d)�����W)�/��0�h�ʻ�09��.���^�\�T�fz�o�r
63��e��B�RL���/c߱��P"�R�U1�j$B�' ��[��)TIfW�KfV�H���2��L����i��)���&W�TzU
"g�^�?)�V���Z!�{-�����w}u��
<,�3�[_
D�=
+]c��'��Ŝ�a�U灙u��W���9��u��u:ɴ�ɔ�T��\����6�kkl=k����4�=j�"��
k�)<V�
+�U��x�A��J��
+�GRR�
НLwL
{����M��V{�ت����VOL�L�$��,��h	�[bO�"��b���IFYVIGZ,��&���̭���m�S����6n�����طӻ�mX��k���2��-�\��>;�I
2�ۭ���^�8cGbt�8��Nş��i
�kܭz
��a�5_b�[7
��W`=.�Z�
+���׆��]��4T[�]Mo�:����`+���@�.��
+L�
��p? ��f'
i�A̓0��
8�	׃S����

+�{�t�{Ȁ>-f�n)Eϖ:��4@�r��o�9t���
��X�r
0��y	��T�
��O�&`�R���3`�Q��19��*hZ]�nu�s�p2Nm����
U{0��C{2�O�Ay�
+v��P�7A��%����P��J^u��qW��}@w&cN��7s�G���80�
�u
+p>-�����*��ka{�l����(H/xAr��A$
�up�up�}�DwP��A;���6yD�t���3��=��S��-��i�w8��O.�ձ���]���#���Z�r_��`��HD��)PY
^�K�:_��K��F����n� ��)k��p��9�}�5���O
�=
�G��;�� �������pKŦ@
�؋��+p�
���By:��x�y<�K����I�d�;�B�$g��c�M|�
� ���W����
��"sO��^��-�/r����#�m�P�AaN
k���ɳ!��1�
�/Y$��^�������b�]LzWs7�� ����0"��D�KBI
I&Y����
Ux�5x��x�-���

�{�?|���3<E��<
�:q����>��DM?��} :[�K��WO2�
1�
�F.~EG+��#<C-]��c젫��O�j��ǘ�3�7�0uw������͑n�ѥ7硅��m
���!ʦ0/����3�n�4�Y��J�dL��ZG�f���vѵ��f�}7���"��
��ٹ�(.KD|��;����	���L�yTSgƟ{��$$7n�#V��j�FzX�l��$&� 	�@v������(n��R���(.�Եxlq���L;��T����tZ���y�O��w�{�?��=������#����r
+�O4~���%���<��J�LR���j|%��cI=
r
�ׂ�&|���\��
�]�8�p��%���'�.�W.+\���E��0TI��� C��Q�m at 0����x|ͧ�	��G|>�ɗ�K���
q�_���p�o�-~#n���
�T]��:�˪^�n�b���
��
+8K�!N��>�C�������<O}'��i�Ǡd�
��[�
��[�k���;���ϯ����E�f\�	��w���N�
rg��ũ!�p�/��3���94L`��
�"�"}*/�����@%�S
�������pk���6\�KÍ�8†�N�Q���p:�
+�jp2`9N�ű���	��
��

y��
y�9��t>`:G}�v���m��(/��cH?��5��'��Ip?P�;���2z4.����c��:	'�i8���ڍ���VW0��.�bf�z�W��t�[���=h/����
+���
��n{�h˸_E��	���zy����ɓ�Tb5���
�O��7�?�O����EOH�hq`�t�
�Dg���)`�Cʘ�!��]����Zv{�*vkp�hs�Ѧ�ŭ!��CΉׇ�7O�Z�4�gI�{��Y��*w�}?
�A�/�z�Pg&��2�S��:
�Qh
M��P3�}���:5��<���@S�n�T�6h�Z4u�u�q��UҠ�%Y���VkNq+5W��S�H�O�QZ*H�yY��ITꩤމ&�8��biޡ'�H�
��}�1
+�"'b{d86Gj�i`6D�3-vv]��m
/�
�%^
^%^�DR��[
��-
�&�
�+[v\^�'_�H� �{B�WG�7�&��3ҿ|�� �)�-F{� l��M��16ͱ�h�Ib�Ƥ2���l}�C�<�@�,�L\5G�$jW3�N�pZ��z�fyմ�yQG}*�.*�D=P̎�NQ-�x���yO
|JO�i�:D'�m���xZ�ѬS�Q7�u��O�g�
��x
�$>[T�u�j���Z��*���W+��F^���kS��
RΌ�U�i��gh�U�j�P��
��y�j9n��/L��]�n���s�!I���!X�2�)!�K	CmJ,S���,HNe�'e��%9ĕ��ىeܬ�Jiyb��L�R^�[�(��T�����Ļ���|~����$A�&�
\��9 �4{���I�F�� Ǫ�Xn
�Z㻨1�b�1��2�������h�![\npI��%\��BZ�_ +�/���7+�)ەN}��?����&���zAI(^s?�dN�~7�_m���S���J��< ��ñ �
T�MAeZ$Sa�2
s
+[�jfKS����\q����7�K]�*�Ӵ�'�Ԥ�1n���}�,�)�F?��?����2	J/�W��<�h��H�]���S۳��5i�禋P������1�3߃'#
e1LIF"[�nd
�3D��
�Ӓ/ɵ�Is,sevK�O��AaM��g�u��-�K�\'�Q�
�n��4A��۴���
����؁&�W��)��6
s��`V�ۘ��ҬPeE1�Y	��f`�l�Ö-��\�l[)g�ΑeZ��[�(Ҭ�xs�
U����d���d��ʔ�3��)�B�����u����̙K
P\K��|�gv��9~(u�D�c<
+r5p�F2y-�p��v�Y�尉�9y���bΒS!3�,���F{��`���ۏ�R엉�*��'^�-(_a�r�<?E�>袙�h!��kS.s(��N9�]Q��;y�I�q�#�
���Il��Ħ�3Ein�8�U(1�<R��Z��\��ܠHt�)uΣ|������Q����\A�����8��/��H4K�i�s�>}�
+$p�Gn�?��c�Uk���(�b,%	�����J,���v���-I..����	Eu������݊��#ʘ�O��ʘ����A��'�GHo���t�E�,���9g0����
���@X<�a�h`�D���2O
+��1�I
�H�q���K%q�\L�Ri���.�(�+��لaf���aQA��
׺<�T�5ڨE��A�	���EE�qA&.TD0j]S4�Vm�X�Zc4DM��'�>��3��}�9���ݓT�84ɬ�O�OZ�qI�P�/y��_,*��ʷ�8�
�o{P���z�N�����-gߑ���n���������1�>
c��	�ӧ#�%	i�J��-����,�K�RĦ�w�I�p�^��4;D������!:�g����k�{�R��e܋$�$ӻ0��
+Lg�6)C���8cl�7FgaTV?��
���x
�
�������B\�,Il�|�ଥҨ�ղ�Ye�Y�������&rM��"<�'"*�W�B
[��+X�IYIoR��٢M^��s=�����\w���D\�
C��5�`�0D�"�8�3�ƹB�q�fL��7�J��HC�vKC�viH�#iȆe!���Ԧ�.e�.��I
+�^�	̦{��~F`8[֘B99c@�"�u�(AxI$
%��_2
�J�F_�T��f!ش zS��۴N�e*Kv
+��PrQ�?
+_H
+���\
la
��d�5i
�!݉tO������R r+Z��JW��ޕ��eE�9��X��	0���e�,s�ò�������b��� ��3К�B[�m�(xuQ�!�b�#I��Y��}X La[8�
�� l�� ���
5N����
/���x�F��6�#�n�7�L����Ŗ�-�l�ڶ*�	�joAe}u͏D�t#�#s�*�g���1��6��J����ҿ�<	pnPB��U�N��P6�����t����>2�� �����kgB��C�����fQ��ttR@�Z�|
0�1��O'0��6 z?�� �
��'��Q@�86�!=��Õx-~�	�0h兠��V>��x�ڸ��\[
9��/��G��0�+��"�<��5`�#��H�a ����8���� �i��A�u#��y�㼖➼
��Ŝ����G;/"WX��_�B_-'{��9�ȍN2��I�{��F�(�;�޾���^�S��@y�\���|N� ���u'^�5�Mw6'݁�t�$�jV��;� ����.
�=
�{\��\��
��r����y��
�=��f��
+0^-�z���~I8m|E�&��w�͜<P]�G��c��;=�=����>��>�����ɤ���Dt�ح;D���M"�P2�$�ydI�O��K��
�����
ex�J<E��ߢ��'x��x��x����7w�3�Q�
Q�	Q��;��@b C�2���ӹ���t�q�L<�z<����Ltm��B�.����z��8Sv���'n��79��
�F�Btq��v��p�(�\�GBHI�{��-c�G�"���>Vғ�;؀��DW!-�tU�U�񭸆�2Gq��?�����"G�@ο����\�!����/�"��o™�8�9��i�ͦ�=z�Г�Q3p
k�Mrpq��UF���jF�g�
�ъS��m
�$3�‘O"�%�C�pb.đh8����!x ����ܒN�uY"����o���$[�
�T����Y�:����S�f����*/G�|�6�Eр&E
�:���=؝~@�JD���d� j�|�<\5x���]�7�\u�K�18��
Ψ��)�<���G�z��i8�^�&͇8�و#�"
֔��َF����8�|\ڱ��ln/`uQ�.b��>���ؐ<޷=��||���E�>8�6���p�c<�yL�a�ٰ{�
��P�
=�q@����
ا�{�&ؼ*`���n�:T{7a��ET�܁ŧ���P�Ey"�r��]���Y�t.�:ଗ+Z|p�G�{���(��M�^�D��ޅ��=��/F�2v����lT��b{@,e�
�By�
a��P�;+�~#���	�A�PD
+�@
d�!�XjY�?e�=���)P�� ��ƞ>Q�gv�ǡJ?�������
+���`�>e�
�T�N�X�I(ћ��`�Pl67H�CNI6�ܒC�HrCEIίx̲\fimc�?���p��}
a������2��l�E�a$��&�4lL�Y(6�C��OB�a��o�/���}���\��)A55�J
��.�{�]8����.�.�]n
r[�ۊ(���%��*X���ԱmSӦi3�δ�v�!m�Ӵ�t2M3M��il�/2f���9�����ߞ>f&m��J�`O��fO�-�'�_��Ʌ��ɍ��ˍ��
��"�ܱ���j�}6p/�{��V
p��\��q��z��܊5)��h�F��+"	ӚjLj��IMs"����fÙ!v43�gNsC��ܠ�"�\�4w�Y�S�e}���~@D���PC�
��� ܦ���+��;t/���m"�h��Uc*7'sM�έdF�NfX�a���젶�
i{�~�0ק=��hg�n�K�.�UEg����_	�	�y����y�����B��rp���
e�C��m��nN�S�gcD�ǐނA}�ۘ~������#� ۥ�悺�\�n�oӝQ���	~�+B�Y_٤�+�Ш�>B����I�N1�@��QD���,��6�0aL@ش
æ�4g"d�G�ٌ
��t�*����t�<l���m5vr~c?�l
S4#B��E�k���7���~A|��3�GYg�*=��1���a�V���4�(�P��g�|�(�1Z�c���$�ך�#V-�V:�V��"1��i���&K�hi�|�^��pD�)�ܖ��rYUc�E�
��E����*����ߘ�7���t�Y.�
�,B~&��E
�ǡO܄nq':�T��d! ��"�I,a�J�+:�z�����[��k�c
+�xJp�s�jqYeo��ğ�T����sT��M�
+�ܧ9�:�ި��@W�Y��L��1��Q��[�`��K��R�,e�QʃO2�^*b�r�%��Z��uJ͜C
+���QE�4!�Ҭ�B��*��#Io"�I�Qey�C�U�Q����j������y9F�z�K�"��	h���Q~^Y
�|n�0je
���lc�ek�9Y��+�E�<.��g����(� ތ)��#ʟ��ʨr��ʨ��Ϩ��H��Xt�<�S�O?����M at Su<�՛��˞�G6

�
�9J�!3�����c��m\����aE���`����د�
+�?&�#>UVG��5�U~B��$��Zʜ5���!��M^Z�{����&��Mp��ݵ6W&dw
*�&����]���
��g�]����
]�
+�+"�\�F�5��uWep��2��Ci��Ji��
+���z�E{R
p���qb����S#�u���Eu�S��nC�w�}j����w�ςb_c�٘B��5��Y���3��x�wZ��.	���
+��וy�w�������y�_s�j�J`��&F�
�O�y]���7�Gi�f�-�P�O�՟��
+f�"��1j���=��d���\��?�_T䴼��n��"��[���n~��i�~�-��J#0GL��Q;���;Z�� P�����Ž�0wn�)���
j��2@�eE~W9�
�����t��Y�V��2�s܁�wyu�6�
�5�������W�Gyu�7H��������JxZ)st�~P at 1�л����oA^�nhRqp@��P>�Cfd�J�	U!#�:�¤�z���q65�<�o`�M�>q�M���M���K�r)=k�Ju.�Ӟ�F�� �D�5�-��ʞ[��
+d��!st#2ƶ���
���c8ia=R�|+,a_؉�p���H�0�ç�]�
���M&)|�I��I�7�4
e��ָLZ��q��h�
�����c�q�=dL ��O ej=�N'��$$O�`���fb�I�"���
q��H+�FB���3�sH�\��3oF���H��2���8O1p���#�Mύ!Z�-�v�8�7	dRLL=�e��\,��'`��f<����
)H\8���شh���lX���|s��/�#~q�xq�o n�=<9�)��
 ���C�h_$��u������h
+П�fIH^��6]�p)��	D"�\ށ�����X�"vŌu+�X�E�J ʕA���|��-p�~I| ��gė�P�G�@��p�S�%gi�9����i�%ҿL�/��וP����1M���}�S��QQB_C�RJ�SN�����h������HER
!�|�dB�2�9>��eȲZfǚ��5�5�0��ż�mw�\]����������繟�њ@ҚC���eS�eS�E؈�x��x ��u�`
E�
D�994|Cݬ`����@
c�\	�0^_����o�
��!��(`���$'
���N�Rp�>�ٜ6�9m��V
��<Z��[9ɭ
�u;�
��yr����)�����ɘ��+ƫf����0j�RӢ	P6�����76�
+�
}�����@��R;�Nl��_���lL:X;��:8�

���u
'��F7yۀ��܋��o u��Q�`��=
�PS��y�����
+�*_��6���X�A��E����l�����<�������s��Dw�'
��L7�;� ��0�x��0�ZSלV�/R��"���ȭ
�N�'w97?��=�G3�s��Ǽ��BOٌ<�����݋*�%�_꺑���aуBF�qd�$�$o�����+�%��9V���)6�	*�5�����	Gp-�'.�
���o��
���
��Y]>�
C��+"�/�����N�y�Y�G(��2ꬢ�:�l�Χ���q�����&��9��[�<`_�G���z��)s��	1'�#�`u����Q/�Z)�ʤN�`u��SJ���Y���1��k����s�4r����.��f����
���~/Ȣ!��ӝ�7���:W�G�P3�ٌ�V"u�C����.�b�,���l�N%�3_�gp��q�oZ躙Y<��8I�� +� �᧾d���
��J�Q�ϟ��0��Ԋ�hI�>��K�\�P����\͜���E��140M\�ts
:���k4�2J�C斒��e.��F��`��
�J.�$�A�"gѦ��V�84�%�^:��e�^.���R
�/�N�Z�*
4؉z�z��u
u��a��w�c�3v�E����=� 2����,wwȍ>��6��^�X�㴱;�M��I(M"pX�2
ʏqP��ze6>W�N����bO�r����۱�t?��6�3�/QmvU揱���-�xN����,+?
bIa��J.��l?=��*q�|��
]?o
���쵘�ݖѨ�����)�n���y�f����Q�%*�W`�U56Y����Q1�
�^G���Xm����n�zxj�3�%�G�yg�{G�����Fhh�:�!�m3;m}Pc�j��Qe��v��l��Mv��`7v9Xg�k�a�}9V�oE�{�X�^�nA��+�'C�
%��bY(z�Կ���=�}�
bi���}z�5�
56�t�3�8zc��?*
ð�1�ӱ��#�9��J�YXR�<,u*B�S�P<l��dX�P8�^(�$,�'!������J�u��YЅ�,t�`����GH�7PK/��W���\��~��]ݱ��+\�P�����Q��!����-�n�(p�/,t+��J�\�uB��ja��:1{��\�
b�{����B��!��x�_P���������
�>ۓ�
C�������%��(��C�g(
+<'b�g$�<c�뙈
�Ta�W���'dy��^k�
�Jq��
q��)����:���2���w�N���o
� ���/y̔3'+G`�3����NX4�y*,Pb�J�l�$�UE!S�
U���Jf�r�4�1EU&&�6KI>��L�CR��i��mE��/R����.�����
a�����ǜ|�+��W��㬰@=�ծ��
�L�?2ԡHWO�,�T��c��N��iB�:[H�+����~���vH��ZE��N����һ\b�͡\�l{�����Jza���|�7���[ +�
Θ
�� _�!90
I�����B|��B\`��/�.�>
\/E�(�
TL
:��
��<&�J�A�ig�����V�2�9��Rz)d>rIv�!��cv�
RC��
⎙!c1#�	!a�
��ؐHĄ�
+ѡIBTh�0=4W�
-�������mSL
+�'-���kza�����R��Y�A#[�]d�����K��3��f��	�H�0�$h\��F�F�hM0�4ᘮ��i��Bdx�0%|�09<G�/�>_#M���2�������73��(�Bj�+�7&���
+"� �0#2
L*�8������y�2�T�2E���$�\�Ct�2_ۮ�f����F��m�o^R����=���|��y�ߔ-���}�����ԋ�RR���-�)>�Ϝ"3�
�*��{�$
��ef�Eim4%��wW^z�
�Q�M�	�	ʶ&�f�P��ndX�V�L#��1�Z���[W����,�2�Z�2���cI��>�&����6j!�<@<�Ms��L�)�.gf��2�˞�U9Y���,[�2m#e�%)ݖ���
�d;���Ӎ��bSR�ה���<&{�ytv�%!�>�ۖ��h��!Y>�q4�M�`,e,x��� �����	9���*#������f�T{�R�c�lO�8�MI�<c��e�q�1
��Q�J��s�c�9�q��8o���2��0���~�(����P�8P
+�0=}���6�Oּ@��uRʤ�JΏԸ�(%��Xg��8�5ڙ�QN�F:���YF�s�i����\o�q�2u
1G;ϙ��4���<t��
�H��|�
y�Zƀ2X �`*˝D���&��<5@�S�k촮]�S�
+�kdA�F�F(ޕ�8W���r뚬W��o
q��]U�(�N� �!8cTp�4h�w�3EM}�~Z�-謄%P3 2�OE����Q)a��F�
R\a���)���b��4�=L��
q���n��'i�{��K��~�5F_�v�����~ψ,�nD���g��j	7�UO�l�����3CW(��%
��L��m�xI
.骨y=5p^
�7D�=���IT_O��x��LSo�
Ex���Y�
�j#ܳN���%
Fx���������	��@!�'�=���o�4��h���k������)���z/Ž�s�@���
�Q
+�&+�kSwo�
��ے�겤R�z_P�w�B�'�BJ�+t�O
+}�g4�	�g�怋�p"�h'2�3�Y��R)�̬�g�Xy�����Ky�
��Th� �TĪs�hu�L�#���X�R��yj_Y����
+�ܣ��7X񱂞������i�̧����
i>�E�,���
���%��e� ��F��+�����am�ڭk��u!��u�
+����j[5Vm8���պʭVU��_�Z-�m�ߺC�[[7䷦A-V��s�y�\�۾HJ��1eRl�4�^kЯB��n��fs
��n����Ԣ:D~�aj^
)K�`���e��ổ�f+]M"�ˁ�샓4(���-��wZ^����;�i��r)	�㞓���nwF��[��
��Z�i&sMk.:��⽏B8�ji�j�pk�xj��u-���H�N~s���p��Rb]���05g9�#��э܆����A�V
+xE�{M\0p���v
Ǝ�4�G�h���
�1.�:�:6z
I�ù:bQG,���
����r/���ֱ�>����[#���>�A��VG%��h����8ٜ��h[�m��ӝi�h��ml҉GccPϡ_ON�It=���.��
�������9_��9�%�t
�z��uR ������g�l��f1�3�] &;Jw�>�%}�
�iB�PWf2�P�WI�U��̫8r��f`�Db���4�05�nt;�xZj�~��y�l�	����ҧp>�H��K�
o�[�ȝ�k�r�f�>�7
vߐ���@a5쇃L�� ���
�B,$B&��'f�����ѿ�H��i5�\��B��u��z}�M���=�ż���tC��:�~����5V����)�@ C(���M�44sћ��
��
4棱XׯuS�Dg-:Xs���E]�>����c}��X�+]`�F>�/
j�h

�
���
��� 
�<t
+��b4�o�񉖑�
+R�
+�*�ߨ�����9��z
����˓���x�6*���&|����ޚX�o�C��1�Hw*>M@'_\h��(Ac�{)�ezO��<��z�߬���M��7tT��~
k���a� ���G)��3͉s �v��0��X\ 穋���cg��h<�����<��S��ot��8DN���*�~�������D��F�4�c���Q�l�/�[~��n(1�����0�dt��Ł�SXy:n�]�W��%�,W-5ZCNv�]zI;�b��f��V�
U[�����f�>��=��l�K
5��9cnE��鄩�����z�j�>� ���^�TPnB�Hȅ�@B.�@!B�-	!"�BAQDT��R�u�κ��εg���z��������vv��n�ݥ]������9o���|��=��y���2|k���1��;n�m���m���W׆p%f.Ō�b�^������p��e�^w�������qb��p��GX�}��qQ,<s�<N >M��B��!���R�}���[�;�q+67�D��ĕ8
.n0���np�̆v����r|'�p"~����b�!
MX‘��8�p�����1��S�l�ӛ�+���,�e��
�
j�w���ѽW6����\ڔ�s�xi����XJ���$+���܂�d'wc.��#��2��-��޺��[�b_�7�7�
�I}���O0��v�G1�
QݟP{WH{���1jm��<OYΤ��d�
K��BF�3���� ׈n
��NLq=����$�{21�9����ؕ5�Ѭe�l{�m�c��}
�~���a ;����_Q�D���H��B`����,��u��m��l.^�`*���*���0���8ߎ1~F���w"��Pn;r�` � ��λ�P�m���
+~�����(�zB���Et�I���2��St�,R�Cہ�5�ΏǤ 9�UP�Q�
#�J

��Ch����B7��>��� �}=���]8���c,Px�u�b���'�k�����&����j~GI���F
�(�}��L�s�1�.�è(	Qv�
0 .E��
!q�bz���]�Bg���Nt��W2���)�Z�����XK�M於C~ʚ%���X�$���|@5敏��)p���S�=e�勔�Ǡd#�$�Jr�#�K*C at Z�� �Ԃv��enx�:�)
�-��f�$s��S�k���4���8?&"�fE�9�O�O5_��{Hc�q2Kc�^�2F9�)_�<Ay��)(�ѡ�]Q�VE9��*�(Mp+�Фt��l���
�;��|��Us�^��l��
��
����cQ���QfU=�
�|�ƌsd�L��3NY�)G��Q�F@�:��,x��p��hR��RW��€�
+

��WzPW�	[� �jƙEs��jN1��Ǩ}�|H�@��1j�O�'
Pݛz�49D&�N�7 at 9z�_�Ц��G�	��t��|4j
��JQ�U�������*;,:7�:?L�>fԏ��
��/1��*Go�6Gg�!�=G���r�O��4�\�Q|�̒�մoѽ =?ei�Ѭ�_�>
�T�x�
+`5��\�@m��j#�5u��iBu�c:�NVe�fZ�q�1^�T�r*L�#N��K�
�T֬`o�+&��&����u��h�<͔���zS<l�-0��`�͇�V��Z
�
+����VTY��Zڠ���aj�~��,�r�%����(�? ��(-�I�)�QVN�Z�/��#d�DH��S�fZ�s�e5��8m�Qmˀ�Ƈ���:	4u*T��PQ_
u�*���.(�C��'�̾�����~�I��O��LZeҺ(+#��h�!sd7$]�C�A]m4���
�
�jH��!��<�
�r�ܩ�ҩ��i��U��
���k ��	V�gb�9&r�J�G~�Dο3�3�čOݰ'ɋd��IirP}ɍN@�ݳ9*w<��d�[2!k�E��R���
J�V��.��>y�(�C�C��
x�I�e��_3��L��V�e�(��
%�d�tS�V�@uʹ��[h�UIѶ
+��X��6��#
�
D
(���v�B�	���/���
�?0���2���x�m�����
���Y�/��
��sd���?q��
� 5������i��ݧg
����&#?�E^���`!�!	rB*d�
�l�nFf���2�SH/!-|
���H	}�������z�+NR�i2Bz���'�6��� @m� ���W�7���Dd��;����<�GDH�Ȑ�DJĄ��$��#i��G�b��"6F��\�yTd��"\�
\�T.j:Z�S:*����
�� �+\���\REG'�r�IsL��:���Fs���q�<z:�� �p��{�����-{�\���-��2��=��3�� ��L�Váh�G�5֢]2�P�ŀY�O~+y8�u��<
+�e*
�{a��
+#�Z�~/c�`��˹h���fɱ�L�52�}�'2|#Ü���LyV-J�!
��w�db����R�,)r��'�?W�X�Xb''��
-&�%PKG�[̲����ZZF��%Y6�
5��'��R�vv̒+4Ļ�x�B���M�J
̐��&�l.@���藢���c��l+
eS�0��
w�/q�ƪx��h�U4�j��:��q�j����>灼����i06��@��0�{��]1���K%���5�e�dX+��aXo/m` ��ƣ�P�;61��2��������@��:X�v��p
��{���KO"ޣ�br�ϯ.��˥�*��4���q�~�d��%dԳ
ճ|�$�$
;�G��؍
�=��g~Iރs{�Ec
�����pnk*>'͓���|�]%5��!���qw4��V
��B�B%}l�N:��P�Bp�$
aI����v
g9��s��~�D�D�$�<Ɂ'���
=�����Q����%_BfjD�d{ =����YpN�'�)|FLN��3��,19�%]`a��
�B.�(}IN�P�Wʤ�8x��
d�8�D�u�:�1>�J�;�돟
�Ч�[
o��
��p���p	���p��������&����t;�1(�����{@}>��n ��p/���p_���b�?��'v�5Q�5M�+[�4[�R�
j��c��r}Ǯ{Gﱷ��EsS{�����^�
��=��9�כ��	
`.�A�F����hC+
�q�����r��C�H_i!e�W�k����2[�E�B� �;���ɳ�t���Uv�
Z���+�~�~v�uG�M���D�]쟀F3��A#�b�Î�Z̙�m
e���|��??�[�#(
F��XI�
���5��h�H��KS?����(4�H�
�И��9h��b4q�R<_�Z��ق���5b�.��@dP��+^�?��jF�
�ؤ���sb�guC�

� |��h4���)ڏ
$/{��;vk.�r�r�k���m���O�qR-Yۤk#�ވ�
��?�;@��_e��.hza}�D�����
Bc�>��
ر��lÎ�ر;ꔏ�<�-�zU�����v5��ZV��J*���T���
�)W�
��x�����+�>hv@��I��y
_b���h4���ICg�V)�B�^��f�U�l���l��F-n~T���Tj{O����Ď���\�봷�
h�����h{��N���C�-���U'���5v�k�}?U�V���0īܐ�e�-5L�bC��
f��a�J
�h��*�w��\��*v:�"��*p~�9.ϔ�bU��n�ܜoG����E��چ�{�[���E���h�s�V�Dh��������_��wTb
���-pM�<�I*v��"�
�j�[���Vj��F�toP��G�6]T��}e�~֟���h�<w{a
m~
-��*�e��AKM&Y<���u��6k�g/{�U�� ��
�<�X����^�땪l�
e��SF� [...]
�)
`���|o��|�j�o��|�5�]7�{M���R��@e�
U�_���%j�_���OS��&�����*%`����q�*9��݆�J
+���4c��i3T���Bl)Ɩ�� '�z(+�_A�J�Ҵ����Gi��498F�G(%8^B�5.$U�!�Jz�@��������E��vZ�þU\؏`}ɩH��L��
E1�c�ll�����wpӔPo��kRXg��u�����Wc�(��%v
�1
��i�FwJW\�<��\���*�����E܄���c�I`
,���b��%
�ұeJ��&w6jB��ƅ��؈0%FDjLD%D���o+."F��
Wl���
��S5,j��F-�;�
+
6oR��Q1ѧ�
��
kP���V
b��
+UPs �Qlz4�>��D�(9�I�Q&�1�S�9Dq�p�jdt/
��a�44z��t���c�-M���h`�yн\�g�̣�:�0��+*"�EP�E�a�eXT7�(
+.ǚ
b���&Z���q_c���5֥�1�x��X�Ҩ�Z�M��D�?	����\�{����������0��t�^���>|߂���3��s��1�TG9y�%��41�W�1~���P�ŌV�1V��$ٍ6es�[���2��͔-�WJ3-W��A��MJ��`�?f���r��1�
6�
�k`T�
�7�8���b�Eq
g���O9�����+����h���`U�9K��q�&�(%a�,���p���F�I�JH�c0'
�+�
�
	�?�:cx#�%S�3�=�|K!1�'tTN��쉽���/[�P�%��5)J)Iq�$[�����d�-��`�.s�\ŧ<+SJ��M���2�Z����
�bS
�����I����	��Q�g[�)#�Si)��Z�d�Q�5D���JH5ʜ���4�Li��K+R�m���9��-Qtz�ƦoԘ�Т��K
�j��0������;1U�e
��
+�����v~�ۘ7m]���Č~2g
V|F��2��-c�Y1YVEg�56�@c�e��h�K�����oPx�v�e�

+��G��
+�r+^e��ti)̇��

��߶L<G3���L�^��魘
E�iln��r�4:/N�yE�e*ܑ�0G�F9��HG�B
+���F�o�C�N#
w4"�'����V3u��J��E�Hg$Oɕ�إ��v;�SQ�}9��"
+V0\�
+�5�0F�4NHa�F�jx�D�kX�
-�QP�

+,ڬ!E�,�V`�
+,`r���ȡ0
&��2�F75���C��1A
+����

+)��%�
+.	Ұ�P
-�RPi�KS4�Ԯ��B
.��AeUz�l���~��e�j@�~��~��75��
,v����)̃r4�!���Rr�
�:��W����^A�<5d����Ӡ��z�<X��a��d�3A~N��;
��,U_g��8����^�������|���[~]=��^�ܭԡ�K8���"�E;
ms��=��&�(���UtV�9^�7���T��we�zU������o�E>UvyWMP�*����սj4ʳr��U
S�9��9����~��nբ� f@	�p<d���v�t)�2K
+�.�ϕ�.�|�������\�`�����
+Q7W������e��+_�]���5W
\�����
�0���P}A����n�w�)�a��9S����s�l)�
+}t��F���?�\�I]j<ձ�G�k��]��
5|�k����r���RKS?�`�L���5���`?�u�]�	����<τ2G�3�ND;z�4j�4t1���].�<��Jɣ����3 �{AO�<�j�5
Dk��6�o���@�5�����<l��
�}�r�
�NU�Y���M�-\n\�3�4l�+�>���WK�X�N/` ^����

���@
���8���)����a3/�f���fl^˹-��~��**�uv��4�{����W��n�u�ٕ-thF�t2�K���`
���P��y;��N��� ����n
��{7��M.v7��7�\�ĵ7TN��(W�Rj�����g�p�G�˽_���&h'��?�m�M��^��!��A9�18�P~�!�0q�� ��G����BA���l��p.��|�������7 ݾ\��G��� 
�x����`K:�9:A��$'����1
+�G
f�:GM��h�I��
���ކ�* ���]��{�
�.���C�vy��H�8�ZZg�8
�U���|J}��'�|�/������F�����k�~��E�o#v{n�;tk��`�3����?M—Nñ��=��]��
|�m-�-��M<�
��W8�/��t?���úB�9sI�����m|��y=�C��魇
+Џ�
F��{��o�k��:��K�����k��O�B
��<���u:�����=K��[Dp\���џD���l�AOЕ��p�@���F�=+�1�ɤ�I	*�!q|@
#���q�8��մNj�����B)�����
o���d� JO�X��WGt��a���(��V2:�h䳣�:F
G��q�K]k!�����*�Wm��Wx�vjgv��
�B��������m1<�{�/�H.ΐ����}�"�1�++�Y
�O䱜L��Y�v�N��A
�Túu�LM��&�آM��G2ӤO����<����J���p�W0`6�`�`6`����
+$��&!Is�
M�4I�&k�f]zd=Uu������ӎv�6�դ�Q�ҺN�:mk�U�v޷d�������z�����{
>�I}�R��/���xW�%^ս���ŋ�7��Zʥc�:�������\��G����&�dQ��qX���<�pz����}��^��ݐ���s:�����D��v)^�V�Y
=�HӨ5�K�H:ҩ�	���.��f�ƨ4&�$��^���KcE�����i�;�
:��p\'zL�}L��5i���Tx{Y<��򔞯+�='�$�eK�D�Y���5
ί��� g�85��0w����k8�vǢ�}'G����uW9��I�X��c~ξ[�c_��,o��������S�����)z�(�]Qx��!�˷�'&�s�y�[Ʃ
՜����-
�����
��
p8n�CqS�7ρ�E���l8�
�yn7<�R�����_ga���4~�c�+�Th)����_���4
3	1��7r|S+�"-
4:8��bB�	~�&�;a���YL�fW�N��#�(ۓ�2�t���יI��t�L��Ƕ�O�J�|�kz���JA.�=��yJ-�爼
J6p 9��\v��XJ�b1���R�YH��#-���si#̦M2�>�t�S�	g�b"�㙏�5�;�e�����2��|�+
+�O�����	=.V�%?{�ewV,�Y	,de�#���l3������3��a*��pN7�9��nek�4�y
���g(���(�F�s���P�;���."7)��R��.��JŎ�].�%�Y��
�ˏg� �m��
K�(�d���X��ѢV���
�2X4Lq���턶�GIP��ݦ��2=K��e�6�ҿ���7�Q׾H���
�_��Ny�����5�K�/Ib�$�SC�rM6�MN�J����)�&X:@w�8]e���o���
�s�[��<����7�C�_�k��ҝ�6��G�
���Yy�ҾLh_Fͱ
��
���3��k6�T�mq�ei�oi��⧣"D{�(���U�h�:D��,
�xlO�}�fۯ�_��\DVyF�W�f��/����k\�2,����'X�L�5�����v�
��I��M���[��a��S4�,�d���
��+48�/Q�xK�E��Dd�'�{�VwQi�>� f�<��a��Q�S��@M
�5���x���K��+q�
4;\49�p�v�X;HC�$�u;p:�S�<Em���q
���^���?���pF����L�W�uJ������뗏����_�ڜF<�T���49����P_C}}Ά���6��h
Ǯ�ƵL��$�M��5}
k�wůğĿ��"�\��F�ŢKy��z�K�����q��䊧ѕL}SΦBj��p4[�7�Q���݁�݋�=F�g�J�
*Z�ci�O<����[~���/,��*J�R��:�M%Ҩ�>ѩ�6�n�5z�q��mI�ޚNuk>�VֶJ��
T����z�x���#��f(�-Q�[�仗��G��~C���(���7���_�eJ�������"(��Y�R���Z����
X;�Tv�Pљ�����N3e�Ք��1�[(���80EQ`��#.����x�����
�O~�S
+��U.��.HgI�*�1�'���k�*�j;����ʃ��(��`KO>�=&�z�(쭥������z��
M��Iv� Y���
=DF�ۤ�~&~OF�'d�D�wK렴Ĕ�DP�K�I�N���A����?����
�L!w(���"���d
U�9�@�p��A҆GI
�#yd�GΈ�$
?K��Ż$
}����*wJkY�����E�H�M%Zc�U�V����Q�[cȘ0�6�H�D:)�y$O��y����Z'�$��bcx�M��ćOb_O7��x��G�?#~<Š���i1"�
ѡ5�U��I�J�Q٘�U��!}z
I��$�m�8��Ms���`�/6���8�e�|/������������H��u��^d��D�~@��c�L��<�0�"�"2�
+*�
��
5�"(Ȧ((��	(8*
+�+��˩₩
1n�&�D�Qc��%�i�[5�Ǧ�MjԨI�4��4�>�99=�Ǚ�g������}����T�:+�+�
Hϖs��<r0K����5}�ŀy�o�ԣ�M
��Y��j�%H.��r�D���C��f�\

���2`�]x 
kت頫��g��ȇ,
IF;��9�X2���n at 5��k���E��
r��A1�x-��Xޟf���ʋ��g�ȭԊ!+Z�p��^�����9��
+�"��҄9�a	9��Hx<��:�W0���\h���t6�|6҈��)m���4
y��x��8�l����0f�a[o����=�oU�fd�I�;��}Ț�M��
�Q���'��f��R�gx��m��v�h
��?v���p���M�᳇B�C,�1�̬������n��s�ZsI�t�J��k��9r9�k�_/7K4�v��'
>�'�'
-
<hi��H��i��?:^�m䤍k#m� #��HG�&���4�xO!މK��yp��z�5�$�/���
�#���0\�!K:NL^'&'�I;M��4�o��i�3�tΰ�ϒ賋�X�%g۹O]���
J6e%9X'�n�L������
�%��x
^B�@��H+��P༫t��\"7�eP�?.Ӕ}ċ�
+�y�d_�A�zN�ye��r����r�^_�j`}���s���à_�2|W�܀�N�'��
r�1�|� G�������|`�� �y���;��x��`�<��g̘�)Wߨ�ٴD_3�=a�{Ĝ�%s�&��Lt�����t�S�]��?��?��?��'ܽ�ou��wp
.�]N ǧ|�����i�q�衦2)��s�˻̗V�>ŏ;�q?>Ə��q�)�S�&�ժt�����"�_�u
�~�u���y����z��YWz��+��TXG�O�~>�/�~������طb-v7R
�(�=z�B>C,N��)V|���^
�������)<R"f v��'��
Bk(:�hL�~��Q6�OIa�To��S��~-���]����vف�>�P+[�]G���9DF�x��!�
��Ng�u�%y��ab
Qh�@#
����`��5��2yi�>ZU��
Ə��q@���V��f*�%��cD�
��u��X;��;�
����M,�$ǩ�W���5Ġ1
+�㱟��LV���<�H����f�؅;�I+�����o�[����m${
���
+_�v��'�
l�S�#���8�
ia��� t�����N�r
+�3��l4�?6ᇍ�l�>UG$��o�V��*V���[��r�����c�գ��_�K�s��4��g
[{/�^���g���	A'
+��h�Ec)hd����c��)E�
+�����ZV���,""[�.�v���._i��s�wr�#�
�kG�>>wp���e���l��w�U�S�Vw	�J�hY�G��%Vu.�ZꚢZ�L-q��"�|Y܊T�V�j���Z������֤y�-*s?�R�wT��c�x<Q��9�;�đz�㽅WMظn��
+Vz�iew/�w��R��Z�1HC�F����$��LU��Ux�j�g��<KT�5_�^K5ǫAE^�T�c�
+�_�,�w5����������}y��J�'m��|��^-�,�]dt�Bo�x��ۤy�����8Z%�x'j�O��|�T蓧�"��P��b��J�{nUN���������S��Me��
+~{''y�
0�
+ at Cm
����S�/��]T��K%~�4ׯ����*�����5��X��NP����g(�?G���P���M�cUf�M��%�ئ���J
���A���smױ���Ā6lE�泊�r�)Ɨ9�2;�C���(?��f�����e�TV�8M
JԔ�Te��Rz�<�������+e@��lФ��J2
��J4]Qbȗ�
�\�Ն�.ڍ�iTC�s�_�/��2#��r�{hZ����Sfp�2LQJ7
S�i�&��+�4I�!�������8�RB�j��Q�杊
;�4.��
z��n�]���F��f��*`n��ˣ5�!.Yfe�z*=�W��>J1��l�D�%�G(1,V	a����Aي
/и�r�F,�؈��l���CuR#�~���=�;iAo
m�
+��1� 
+��ǽl�����09�C�"�J��	�����(�EӸ�ъ�
��Q)5U��kTt�FF[4b��0d��Ǽ�a1��|���`��!v�
�S\7�y�a&�po
+K#.����M	����̣�>�0�dQv�MvD�}
�}G�EepcĠ`Ԉ\ �Ƹ���5q��i�Fk��U�ظ/MjzbNs��5M�S��Tk7��IO��sf`f�{�{�����K9�Y�eI�PfR��II�HJWzr�Ғ���R%SJ���MJM]��j%7)��MG�`� �������A���,W�}��́z��@��y>�9���J�T�q��� ��d2��ј�T�I)&���
+`��ҧ)1ݮ��E��X��gޭX��`>�x�7�e8نV7�m\��3��0*��������ǔ��.S��R3�(�<NI�(%�'*!3U񙙚����IeP�X�
M�,T��S��+:k���+2�,���=E[
�l"�*3�k�6��5��C!X!���Y�
7%ey)�jP�5Pq�p�Z'hBv�b��5>;[�9%�ʩVd�LE�(<w��r�Wh��pH!y��Bs��C��8�
���hEc�hTB	��*��'cW��|_�/�WTA�"
�Q��B��
+-
+-,THQ��5(��YAE

+,zN�;�u����E��_�
+�Q`�C�E�
�����B9���<��\��*1��U2R��
++3(�,H��"\���d��P�'��
+����1M]�&C�3�xQ�*��I�V|�Q�w�W�@�2���z��h��KUPy0	��"�_���:FbUB*]4�S�վ[=Vc�C4�:Z��x�1ȣj��)�Z��4ʻv��j��Y�~ ���<����k�C��,d����
+(��bjP*%��;&KQS��)�N2L!�z/��� @޶0yq�yڒ!S
��۪4�6Cn���:�b땳m���������\�%ܕ��jG�q�ـ^5�B
k��vj%�{]+�am����ly�=4����r���
)g�D
���d�j�� v~d��VjĨ6b��3|��9w�Z�V#5��YoX��h'���QX���э�7I�����]N
�����P��������J�[)^�lX
=��m�����|�!�3�]���
��rȣ���zf`�>}t
����j�K�4l)
w)
���W��e�
7�v
2�
l�
{Emg��6�k|�m~sn����0�(��z���8��E
BװH�~Rr_&�,��K8�p.�+��*.]���tq�������í�A�aa=��
�G�
���w1�]_�5
ͩPF�s([�\�!k�\�>�Z��
i�Jɩm�*si-�䱎<�S�
Q��
zt!��a�GO��>j��b��`;��6���{[
�V�f�6S�D�
E���V��Fr{���	��6xh���$��2����.�c}���c�����c����}
���ǹ�} 7TG�KH1��Ia�1�y
�5�빑�o�z	v�^x���2
+�� �� 3�#jr�K�� 
y�3�
6�
Y+0��;���g6�~��K8��N[�
���u�?��E�\vih
2 at o��!ނ��18��I��
59͌�#�
�
</�W/R�K
ե
�e_&��*F;�Dj
��ǒ�7��������pj���Y`��\��
�U�
+���\eN>aF�ї�2����gl�
�M���V�żu��ؠ�u�	<���=�w��'-�]U���'��m���u���}�����r
�uv
x�a���}�k���}�Ӹ�_�C<�ω���
<��74}t�WE�/JD3�|t*�-6�������K��A�N�w�}��e
�E|�y\�Y
"��qyW(���
�2�9�?9<�{�=�;�B���Dz�QD�J�^G�t�<ΐ�)��)y���|�<N�B�i�~���N��C�ُ�<�8�$�����
����S�%^�
+^��8��=�t2��a$J�*"��y�I_k
�[��X�����k�
z�
�*C��o�B�ݺ�](�Du���x8�}h��ș�y�k��!~2�f��]ʶ�$v
�m�=j"��.f
�k�Vj;ً�d*[�j37ѥ^}���':�<�����
�ZG��H�|�?�ÉG|#�-t9�إĮ�V棏9ݬYĞK��]B'����bB��Y��
�z�Z7���D�f�V��-7м8��
=���vj��=�E��E�⛈ja��_B�J��R�z��"~1[��R:ҩ���r�|�.t}�lc���+�78���v�ce�+ڼ���
Q蹡�MEǠ�F
��J���B!_�I4&�QK�ј��<v�T�C���	"�R����i�OǛ�����f�8͑v��u��>X��5�<�\�i�0w�|��G'
�X4��HG#
�|4J���=�ͫ
�O����[;i�$Nb'�'�sqbױsq��iR���M���6��Z�:��um�U�
]K+T(L\�Mh�	B�6��&�B
Ć
m0ډ3?�?~:�w�}~�{���������c�c/��
�V�0��]�b�
-�|Q��_�75���������O �op�}��������$��1�s�4WG
+
:�kѡ\����i5ϫ��~��j%?�L���
F�X0���i�*��\ъv�i���f�/hGɋ�*��ɒ�5Q�&����>d�
+���e�E���
��i׸?�-Ye,���-5j�Ԫ��J-����ЬyC��
=�i�j�׌!�
Ɣ��iM�5a<��Nj�Į1]ר鞒�ה0����F,Yڬ^F���z����Ч��}�c~��,lZ�s��Lf���1;5mnД�E����am��i�2�1˘F-�Jn\���U
c>�nzRq�U
Z�j��u��~���?��>�.�/8�l���>X�z
{�f,3�qږ�)�Q)�&��
��i��U�֦�-��������,�x���w��n�m~Lъ��k����s��xUa��
+Wާ���y��E��i�t�-��<�3�M2�s3���6{��f
��5dw*n�נݧG��
=�9b�V��r\��Ym��(T����O�����5w�U�:k�oÇ�g�Z�I�����"�r=I�8ce^Fː�H���_mU��P�Y�^g��8[��R�&���Au׎*X;���Eu�
T�����o��͉[�=�������?�kh=��R�
��io�ޡ�yd,}�<E]E\�]���V�U�.W�:���p��^ߧ@}B��I�5�R�g�ZO��xQ͍���������o��;|BVW�9��4�c@
+F�j�g�{�xr��)Q�cR�Ǧv�CO��<�jmlS�7�oT��!57���<'o�}'��]P���[�"w�w��\ ������i4`?[��0���e,aBGs��F��6��W!�ϩ&_��->�TckD�ָ��Tߖ�ۿG.Lj���j7T�2|[��/i�W��?�ճ�@s��u�~NB��/
]�m�|��5��j
���RC�%w{�j��c@�
��霑�sE՝GT���*�^���eٻހ_p�7����ά�濏�
�Y�jN�~�#?�����
y�J���
+ZU����V�n����T�
TeOL���CS�-is��CO�,|
�$[�[��&[�=��>Vy��54�И�V�A:��R��#Շ�}
rn1�*bQe�\�H��nU�����Ce�٢C�FS�]�C�;'K�̱{�M�b?�9�WY����7�3h��zϣ3�N A�ۄ%n�໣RU_�*�KT>`RـU�A�6
�j�`#�e
�
�)>s2����/�]��_SI�Ǵ��0� �:��
tf�|�0�^
B�-��'F��)ՃR��u�P��A�E�D�6$�dL�eH��K�ɘJ�	'w�(�[���*H^T^�r��*7�C�%~(�c
Fg���J� D H�~��h����O�b�l3��ɘ*QIʤ��&��*Lժ ը�T@�a��تuL.����EL�%�*P�l��܎������3��%
C��e{ˇv���LJ�m���<I
6����b���3K�O���$�����f���4/��	�xi��4ET��i�8�+�{�@+����A
�$�Vb�s�8��c�F���,ڵ^��ԖK�%
�2�~���P�p�g��3,l�?���
+Em�$P�f>ϳ��?�ݿ�}�"�	��JH��%�:bv̠���RѰ$�H����@����p���
�h
Ĉ
��`ּ�>�5&ym
xy��X{�g(b����5��
s/�w���)� 1WΣ���0JW�AJ�c6��ԔG1���	�#�u�ơK�?C"<˚�eße.��o-�q�3<�{>M�z�mx_Sh�B?��ʹ���
|���5�[By��=g��®��r�'����oϳ.�0�g��K��2{�9����	�2{�2r����{�������	�8�|oa�<�!�j��
]�q�����8zlk
=�?4��W�Ә�녘r
�
����D��
��
����6B���4-�q���EUs�wJ2�1�sg��
����t�@5y�q�_!1&@�� �p
7�" � �V�}Z�V[;�S�n�U�u��^�Z����Yٺ^�9�����g�tk��s�Z�5�a�
�w��/���������>�ׄn�Zr�1��x
v���� �fK�0�4&{C����Y����i>���>椏��� �~��q� �>�J��%?��A۹B�>��z�Ƹ%�9����j��]���
�c�F���2ur��9�A��Ca?/�~곟B;��i��8�'U��9@��m� c����A�g��|�FW�(ćW�$�
^�~�E�a{3ظ�!'���}�q��=/�X�Rl�
$�I�p�.G�&��&��
�ҝ���j�K�t�>�o�K�����O�l�H��1�������ӝ��S{���7$�

�ۘ~S����� �����M�̫2ґZ�v�>����
�Ϫ@�V�O�S;�tF=ğI�����
|�����ݞ�pOѩ���y�
�e
�	\���0]׹
��<w����2\R��@w^6��2�
R[��(�ד������b
=z	/��|
��Q|
a��xi�R��r��_��G�KV���L���
�v,t�rSk�Ɛ�2C
�K�����@�b�� ��~M!�t�����(ޣ�l"?�Z��I;��η���q2���n���?Wѽg��@Yk�@nj�����c�i}���ɼl�>�i"�'k�
���L>
�R��X���f�)������'Z��:���%t
,�e�v+�-�H�|';��!����.'v5���L�qTa'�&3�i�B/��mt9.�h�XI�dn9��L��?��E����v(��
,����r��5�^q�O�Cr1��/$v9�u���&�q'�����
-��[|c!.��yds.3:�
+��O�n1���.��̓�ي��
+��U2�E|�
��$���E�/�"|,��||���\�q7��˺������L�OgT��T2�Ce��O���8[�S
6��[���.��R^��/i8:4��D#
�<4��(G�J3�1�y�J}�P��\M曓����T��p�$�:���������`�v�� [�6��
�jV����
^?��!�=8-:q���HC��h��(f���S��wԫ�Mԡ�AS4>�.�
Y�����2�a�
ݩ�Ѓj
+=��!��v�A@{���ql5[�=0f��O�5�3\�6��;ܠIC�tg�U�aɚ�R{X���i���
�Tk�h��7�9|���u�q�
5D,P}�J�En���
��<�j�I�
\���hn8z�`�
�fB7�]<��K^:�C�n0j�!F��x�58�l�P�!G���1���X�:c�j��m�����Ue�����Tiڨ
+����I��߇�4�k��#�[c#
;zy����\�s,k��4G���
�F�I
�8ՙ�5�j�9K�f����U��Q�Uլ���E��3G%1�Tl���,�T{ ^�/�=���
hZ����W�L����
Z�1yހ�:��Ɔ��bT�%Z#-6UZ�Uaq�̒��X����*��Rq�ƍS����Yg+��J��U�m�r��);�%8
��:�0Z+М�Qt*��Nh�1m���y>G�BTa�T��,�5VŶDٜ*�e���/�Hy��&�)7�U9�]�N�%�}��Ik���2��*#��\�g�s��ó�֣���T�=����
��W�|$^h)U��b{�
+�F���ʳ��'+מ���le'��I.�;�FY)��L�T�c��
���|P���r:��#�x>�3��z��h�L�9��eHc�_#yV���R��!�:
�q��q�)ˑ�L�S�,��yJO-QZZ�R��L�#}�R\
��z at I�Ge��Ǖ��6|��W<h5�
ћ��<�X�uP�u9~��� /^�N���
�I.W��\6��R��pɑ����"%gV*)�A���Jt�(�=O��U�y�/��G��	���}U6w at +ј�f��y�PP�����ϼ�L���C����D)�3BI
���iJ��(!ۧ��r�rje�mӈ�)�˝�X�}�xQ�w7
U��
��������ؽhN�%i��� UPE<��r�{ ����H%��o�-?A�|�F�g*Η�X�__�b
+�*��KQ�2.���T�
����^pQ��C at KП��Dڑ�P
�P>ȅL���|�}�^��d+
+W\�Q��hŔX]����tȑ�_$�4��(c�,J�*�t=�T�����O��\�K�%7���ME�
�F4��
� �g��R]�AQ�g��]w�EЪ(*
+�-,�����
� 
+B��
m�ă�D3i�F���Ui;1&ͤ��N
k�
N�c�̴�L56i��֣�c��,�d�?�Y����罾��}��F�L+�����`��WJ�Q��dv|d��ȕ�Q
�Jv���\*��C	�~�;�+ιO��c�q��X�����^8V±����`>(� �
���*i�
��d�_+�;IF�YI��J�d���T�'[��y*�u)ڋ����'/ыp�| <�<�_h���&����q;(�@
1τ;�~$J�
~d����ʼnJ��**�@0�
� � � :3��"$�� �*�� ��!�y���U��Rx�P	J �l�L_��qÿ~L��l�u1JXbPt|�R.�Fz#ì�C�H�	��
��N��j�ų# a��K�gpK-��/p�
+PH�9ĜE̓}�O?���/��Q�_�µ�EgKO
�F+�k+:w%�K�����F.�(\/�Q��u`;ϰ-�D����M��T\~�vPB�s�y&1O	�_?��f4`��9��V�AZM.��?�P��px�s�{�E�z���3����
r
[d������!m��\@̳p}j��Ϋ)��$C��7�X�l�a�X���?X�6N`���LM6s�6�����U|R�M�y����Sp�w�+�TQ�"
͡|���ի^3uK	a·A?�

�XWY<���e0��":�����1�%7����	p�;q|'��q�������L~x�Թ�|���Ӊ9c5�=���m�p>
+�����q��/�O�=��r�,
�w��}�q�K� C� M~���'��q~g���<�>�,��O�
ڙ��zb/��k��u?#|a�g �D:a
 /�Caq0&�X���k����u�7F��4�(�8�
!��8��G��䠿���&M���������
s�A��
";`4"�hu��&x����`x?NsfO��8�)�������w	�/�:�r���΄;��M�6���H��hD�9p
���ɈH#��88r�p�u��\���,b���%�%
+~��O
+y��.����!��M��w�A��Q���j�@�|�ν�:���+�OQ8��|�����H���❧I~E?"�sp����h��B�p;�C�-�>�U�n�3o��>�$}����|�Q�X5���=�:�7j
��~�{��
���=Hj���=�k?
+�Ux���3z]W�]R�t�+p�k>�\P\f�Fi�3�
�[G�P'�^��uz�|���:��z�:~���C�E�
�0-��{/��J'i�
:
���A�� ���ƸE���+Z�d$�����,����%ض㷋�\D�����K��è���!�A���6���
�]T�y�xs�cu��9�/���pޏ#��N�����[f|�a
+Gb��]�m;V]��a;��l/�n�v��S����<��7v����#��dr

�E�A�+|2�����;�1�7bۊ�t�f���.�v#ʎ��^�� ���DZ��=B]��F� �yB�z����
}d�����%��,��ã%2v������b�\lQ*�'a{:�sυ�.#�U���{���~=�7Q�������By��
��5d��������f'�ީ��~�.�=��$8#��`;
ۓ�=�b��eد�~���
?:�C�ZE���Ko�����
+�rz��S�L��9���q,���Ǭ�`#�v
�����pF�H�o�~:��b&'2�B".��
+�8�p��@w���tұk�����uԣ�j�� �.�����3�H��x��U3 
2�_	Vq
��G�-*
3V�ÑG&
��ȃc
�e�T�� 
<�x����k1Q�舅��K�y�t7��͉w3	���ùs
W;#��k�#��w3�p�5&Ū1>Y
1�G�T5I��i
+De�=G����(�\��jyc�����m�+�U5q�r�
�?�����'�����L8����4��^���z����J���KXk�'�/S��IF-6X�3��k�,�!K.�l-H�WMb�����H�Qu�O��zU&����.U�Uf
R�q�JL/��tBE��p
|�'��6��\�p�-�������^~w[��6�2�UcJ�Ӕ�j�T�M3Te��|S�*��*7W���U��V�㖫h�jͳ���U����k}Es�o*��!���=��pm�`�c
m�zk ���.|q⛃��SbUeMR�Ţ
+�M�I*�NS�5[�ֹ*���Z����S�;�Iy�W)7u�rR��٩O+���f���L�9p��{HC�����
+���U
|��w�*�_��Ԗ��T��RST�:A��575Ksl�ʳ*�V�
D��Eʞ�T���5#}��2�.�5-cD��55�,��!
¿���4`��$�
|��e��}��o�Jx
 b	I���5AI*����;��œ��V�YK�f�n��V�b��UQ���y�U���ۺ�uն�]ﶹ��]����n��9�	d�
��'y����^������z|���*|�̍W�%Ye�ty-Y*���R O�G��r��jU��(��Ek�
+&-V��_v��l�4�~PV���g�~�<�mYm���j8!
:�h
0
L�ܫ�J�)��JA�� ��(�ͤB[�
6p���U��J����kRA�����s�R��~Y�;��|Vf�)e;�ו�%��?��
+�zX��]�
p
��U�[(�p9&��HQ�#]vG�lN��N(V^�O��S�k�r\m2�{��^�,�&ezv��yF����=�V���2��h���oh*���ց��SJ���|�w���I��cTn�I�"�r��e.r+��\Yŵ�,	�TҪ������)ݻQi�o��
'��}�ܔ��
���R��Sp� ���@)>”�߬�8Ki�̥��*�Pf�Y��I�(/Tz�T)
�j�hQjE'�U�o@ɾA%����;�Ċs2T\����*>W?�a;���R�ԃ�|ǤJ�
pϊ|�THپx�&')�ʨ��Li�ԪP��*����J�nRbuD��ŚX�Fw�lU|�^�U��	կ�+|�D�U���ݬ�m�o
���W
+<��w��L�F��j�V�����J�e�۔�wi��L������@�أ+�,�X�#�,�~o?�c�-�b���f���6WBQ9(.��ÝW
-��RZ N)S
24���`�⢇X��$H�)Z�Bh�B6��
�)B� �&ȖD$4�>������TP
*1Q
+<|.��HF3ńٴF4P(N�i�O�;�J�N3�X3��

.kᡖ&��lAĵ�)��0�(��4����1���� ��{���$f[��3����K���7�E���,^�m��f��v��
)
�
�#�#��ψ�v�l���/�
d��x��:��4�z0^o��
�Q&R1��&�J	ȵ	�����N��y�=/���亭�M�ԃ�
����>��������!�g����}�6blS��|�s>i�m��d�7yp.�]�6��E,`��c	5Y������Q�>����9�f�q/�r9br9�c/[��y�fg�0��%�� �<R�I�Fx��K��� -Ƃ��+��j��'k�cmt�e����g���3���~i� �'�җ_c6��QaR���k�
�����̫WFx
K���(��
&ρu`= ,�k��	,�����A��R�0/�A�A�n��>�.m��m������,����o�:�H��C���Y�k�7��f-�������Pl
,�`�'�&'ߡO�Q�!zt�~��
"�'(�~����sbϫ��5��*�]�Msv��,!�{_�3��hl�<&Bh-�TlDŽ�0 ň2���=r?F����(�8
+����a
:t�Pu�V���r�4�%��-���|��4.�F �&�1B�Jg蓳�q��\�����E?O��Ar�3��!pF�p����v�R�#<�+�;
�<�a�u:��Q��x
\ ��(�.�A]�6��������}f���J��#�+�{��^��8���i����
=s�yS~}������=*�:�+��G
�/�P]Wiԟ�%.��~J�~B�.�i\:���op����s0�^/�c��_������>Q\f�
+�4�G��5t̻j��L�?~�ʹ��y
-�J�<Cs?��D��P@��L��:�	�t
k#Dw��Q}�;1�?������R�1�
<eد%�Sue�2~�ƏS(��
X'P��84F��~����6�f

�s0>C��xЙOE������������h�4�7�jvP�}��hũ�߄�3�,j�i��0��)�(�'�
+���L5���{�� #u�̼M��`��pEW����h���T�՟W<~�`;۹�v0�Ŵi%��m�x
}�
%��rǘ��
as9��j�j=��7�{L`e
��R�5�:�%.�Z;�����}��Q`�O#6���Z�m/���u؞��{�݌�VlE�ݥ�����
�Te�� ��е/��i��Vқ��b�X��������1��\�G.��t욱k.l{�]��Z��쇰�V+�#
�]L�b��
+Y��<H����0�
g����?�>:��1~6
����ktv
�5bׄE
�g����?���R�X� 
a�2)s��n���M?ӳ��ٮ:e��05&9���(�F�����d�}�{���\,�XH.�&=�F�ڍ��c
~t�� 
!셱ۦv��,�n�/f��:��z43Ua��K����H}$A��+oX&�fp���:9/:��
jQ6��LC

8J�dR��r���u�a���ĉc;Ǘ�N�8N��vlDZs�:M�$m״	��K֭�b�BJ���A�V�S���
�V�1D��m0�؀�A	h*h�6&.ZQ��PG�'�e=:�����������3H�ì�1V�*f��젗���
�c%����X�z>���A4�lsG�X
㰔gKH	�����
;�;Ѩ$� :u�4���2�t���o>�.&�	zg=;�6��%ʯ�c�³�x/�U�|��8fw��
��cn
������i��L�"��.��|�5ը�\�nsL]�:�Yuv��0����-W�x�Z��(m٣f�A�,ǔ��V�r	�����v���M�{�R�a�� G^�{
���jSW�����K��VZ�liD�ҸZJ�J[;�l�WʺPɲ1%��(n۬�m����j�S���"��
+ۧ���:��\G8N
+6
+C��C7�]'��c�aV��DY�]-v���J��~%�uJأj��w�)��UԱ@
�1E��(llV��G!�~��*h<��G
+W�^�k���[�K�Bz��N<Y޵K3����JV%
��K1çF#�#��Ѥ�3�zg��C
+��(�Z���p�V��>Uy���9-�粼���u��7�
�;�\�MZL�3���v@�gi�%���r1O��5�m
+�
ջ+rW��]��'�O�
�W�T]�HU�+��ީJ�.U��q}�����\�Kry���r{oj'�荓��@.�pm�4�$x#�F�E���[��ת�ס�ץj�WU� D�J�[զ��~UT��㟐ۿA����
|EF�pJ偋r����P��Otk�#�Z�!��kR��]��'D���~��vy�*��婩��&.W0#g�G�څ2j��<4)Gh��/�ò��RY�
����cm����݆]
�
h�44O#��"���Ye�P�P�\u9��r�Wɨ�Uy}�
�4t�
�'[d��"kd�lUidJ%�#�DN�
*��\��d	��Կ�EسA�,$!�=���P
�<wG�r6����.G�){�R�h�ʢaY�	���T�%�Hű�*�oRa�^��d�?���*���*���vt�#�	����ih�Y#ԣY
~�}<�`�1���%�%m�&
�$=�$�U��SQ2&s�E�T�
+R��^��Ҽ�{��7��;IƔ|f����R��(� ����"P5Pų
+l�3A��4��lQi�M����
+��
���h6x�VLk+yt+^�o�Jf�%��b2� �cfF��{1u簆��	�Gc�r_ͳʤ�¶�c���m��������f��F���c���oՍ��Ƹv�
D��=d
�/û,��Ӯa��6h�&�5@�{?M������ �&��������|nc����� }1�G�x��a���)r�
�e��m 3���h)m�x7d!���s_C�}Y��5:%U��IE4O�8؇��9\�0}1B_����2yG�Q>
�ˀ91B�4B�6Lֺ�"��og4�� t@
mM@��m���ݍ>���T�𚱮
��ib�8d��6�cL��
�l�l&������q�c|-0'�3/�
�<~w�4\�|tz�����F��aɪ{Y�נ6t-#���Hb���3ı�8V�j�XC
�c�1�d�O��T��
+�3
�
o�c�e}~��z�����.hE7�5L��\�=5�-C�h,�I5$s��o%{sI�
��F�Mı�8�17v0&;X����T������V����f������H3׆A� !s���+��+�z
))"�ö[�/:@�n�dw�t/��
ı��v?��~ޗ��}�S��)
+�k�yR�{���꣯��s�"!����R�t{^sk^�n�h
+Ƃz��8K!L�t?I�!���q�8
f�
e�
ep��#Tx�p�l���C����N.a
0�U��X���R��|�������
�e��>oH
���]�)a�0K$������S��gX'�0ٟ����q��%=y�2����ղ�1@ۏ�k#��VR�+�{ ��@^��y3�xޔ��T'��Y{.o�?$�
��%�K��E&���<{ŋ��s�g�W
� �
�ml�}y��`�}ò{ސ͚���:Lm�`VKs��%O�,�~����c��c���l:W�� �{ś4썓d��ŧp����O�/y��C�/s�
�/d�"oG�G��,���~��~ͤy�I�K
��L�W��W��^/��}�_%Կ�,jg���'��ހ�
�Uf���yw?�6
sZ)�
+��:���2q�����Ӻ�{�Esx���q���~���
&̳�g��cۼ�8��m�~��v|��;�
׉�8i���M��鑶뵵��)�F�=��C��ݠ�$@��c��L
	��ILHC�C􏩈C�����$P��P����}�~���{����<$���%<����t~�n�+k�|>��
�
�ݜ�7�3
0�(_f�ѯ�=���M�gP^ <��?��QR�$�gH�GH��X��x�<	r�/0��{
>O�߰y
ކ����!���$�=�~7�V��!Rd
��c�s�e	�e:�#h�$���>��+x�y��K��+D�gt���������*s��B?�Lm*
���у�_��u���]S
�2�5t��������,���v��#Wȑ��q?>�2�S�{R�#��a����Cd�C����/6��k���*<	�3������ϋJ�\;�-�[Cw��6Н@w�Y4�:0
G���t�7��)T 2��d�	�V�9��
���-hm[���=�c��0g���!��X��=��G�G���
��x��l
'[�p�<��Sx�<���:Gϟ�#~���)�|��{�6��o

'��h��Vt�aE�.��U��F
�&�1KT���0{�l9O�.��:
�H��������:7�Ŏ������v9V� �]7��&D�n�,����n��_G�q��ɐ9�ߏG�5�,N�	2i�x��1��1v�1v�q|X��c
3g9򎳥-s]�y���l����.���G;Q��gYl��Q�� z
t'��]��C��óYI��Ƞ��o�p
�ͳU=���
sp��Q���ZyֲQ�M:,��������6rc�

e�4ԁ�6�ب�7��6f��~f��HՈj�x�2{����?���]��>��3�=�Ѳ�Єq��Q���ϰǦ!�[[��-&v�؉c'��
v�ة`�;����f�L$��G�S�\V��Y<�:�ށ���(�Na� ��<e�4���[)���3,�y
��[Tu�uU��j�-��-�n[^%{�����
�*8���ة�sI9�1u�V�u]R�u]i׋�Rη�R�u
'����k��c0�}�{�/e�Meån�W%�_EOPwT���r�.ux*ʶԕiU�;��w��}G���wIq�u����UE}o�{�z?�
+6�`o�Rc%�
A�=�R�]	_�L�:M��~��O9_ at Y_X_\i#���W�QV��W����Z1����c��)l^Q�|NA��#��_�_
�K��q{sQr�r�P後/E�u�K�!��A�R�G�d�TŒ(n&3;5K�kj
�(
l*ZT0tDfhEf����gᦌ�k2Bo�z��?u
+�7K�3A)<}Pᾄ/���
���Z��+r*�*�5R8
W(�Q0ܥ`k��֭
+D����=$#zZ��c�Ʈ�%�Uy�ߓ;�&ܒ'rW���{;i�`�R�ʵ
|��.����Z�����z�2cAbQ�c����2�e�u�&o;K�~y�Nʕ� g�9�_���;���\�ğdO��1��פ5j@
*P�<�dy�—6��-�ĭ
+%�2�.��>�|�ay�ji�ȓ*ʝ�ʕ
�3ݔ=�$[愬��e�pf(H��i����cc{S���P�2(�:x��$��!��(��*�n�?�/�UK�/w6$gGL����
���*���)r�
�F%O���9�s*�
r� �g���}-ck��l<K
�J��Y_R�o�(��f��g�2r.�tz�,�LY�H�.�E
_���"�S���DsV�Y(� 9��/�wo �K�}���>���@%�!��4����
+A�hߌ�M-]N9K-�u��ma���*$MG+],lj�
j���@���i�CeP���P�o�)�C���$P�n��N�S���!��6J�@e�����
4U6�]?M��S'hu>��[��w�4qu��:�@�z��J�����ʱ��{�-�hAz���<�2�Lr�r®Y�~���ΚE�~��A�!�a�h�66���@�A<�0ǀfq�&m�&А
��ឦ	]�`
ta/��)�q��
�ĮQ�<Hr
�2ā?B�;ꐶq��3�d��h�M���5��I<�4��ɉ����I��	���w�&�V�B{ƛ��!��]��a����6��)h������8�w�7�6��b��,
�x��e�s��n�Y�ݙw�]w4���Ս*a7�5I{�S���u����5�@�Q4�L�)t����e?~,��abr�a��0sq��q8S�
$'�����}���j�N
k��)�
e�A>�a�E{HY�a��Na�V��6
��3]� [...]
Pb
F
+*��e(P*�S�S
+J��/Pʥj-2� ʴ:�ڱj�
3���H�m-������ɞ�t���;��o������el?V��~��Y�pYKb�r�5�
c̉ջ��c,N����Y{���&Μ��&�38���]�p~�ᣴX���,�k�:g�HL6��}?�ѯ�'���	�v
?��m�I[�����-�����~x;g�r�!�q68�w�sΕΒm�
QQ]·�˨#
r�s[ � 7����c?}��&{�������v���dV��ĻH�����"��8���s��IKi�&x�A;�.G��d�#��#�h�^�e~��WN0?H�
��H�3�(�qe3~V�p��N�
�E�j'�[��ٜ;�nG��<�$�����H9��X<
�WU��~�H<^�W^ef\�.�
�eu�qD�I�N�
�ۿ�����^p�᳹��ϏU�6�K�<`�,�D$��+�5�>����>�ɿJ��Kb�&�>�f-�
|
+��������������Ol��������.>�I�Q��Aa�M���2z��
���2z���Q�{u��΢k~��8����	p
޿������z]u
q-����l�$.��%����~�u��9G�e�m�~<G���HOQ0'H�q�o���qt�x�=�;���x�y���W�V�w��3��v/�!^D-<��8�~8��9��:ΰz�A�4
+�)�w�&�>~|?�D�~�bz�":����'����~BiUh�
+^V�Xe��]��SNڟ&�h�q4�8Z�j%v�؝�lj�~��>�^�
��n��.�N�C)��u���}�v��!�~D�_�v���<���mv�\p�ǝ��;�v
�d`�IЈ�"v;�;�eZu&v��;�#��bl/�"V��c(��p<�
4�z"����%�kЙcp�_/;mu�i�G���:ў�؊ 
�@
�EN�A�{�;�ӱ;��a�rX��e��Q��Û����� ����r��W��+b� ���f����8
�S
�
a��@䩾"�;�=�}�
��ll�>B�~	���*Y�o���a���T�1�v���|*8�=���ط�{L�cz�\��c� Ql�z+�۱ݍ�>l`o6

�;������s�:��>G��NU
QuCt�
�~��1l�E��о��kپ�
Tc�	��~
���o�~���;@V�d
��jY�dg:Y
���G��-��e:������5c_	���;�~�σaWuM�C,��lr2�ژ��T2��c������^��y;u£��)TE
��G7Y���.���wm�k�Uh9W����J4f�<��i�S&���Tr2�ژJ���G��h���v�M�nY��m'�� ��dvQn��Kt\�iUd��~E&q	6qݏr�-e�/`5
3��
z�nz��W�n��A�A�
I8�p4�Q�^'����t���UR �Tx��'�y&@#5��Th�G<�����BV�a֟Y�
���:�l��<*�jU�TtG�ꊂ�
+���]9x
+�L�f�]e�\s�u���u�2�U`�Ү
t��<x���}Fu
a���V�B��/�|)n5�|j
+��j�E��5��&���(�̓���N��}J���|�T	����7+�T���,�Y�˲<�e���{�X�|xgq���ɠ�xW M|���(�*�+
+*

+�*�TH*�*
((
lW,8EVp���<��%�Lc�"ƣ�¡3�U��Z��E�
��5���xn�}
d�#�Q�Σ��_�H@�pH1#,ˈ��L##3ܤ(B�1��T82,�Q7�P�&뾭@ݓ�j#��U�#7��/�7�4�IhE�̻
�e@ҬQ��*�ˊd��pE����@��ht)d�4oW�\�Z�n��
�Yߒ�:(�uRn�pE5�
-��|��9�H�.�
+<7���%a����L��f at ufPa3$Ê(d�
+Z	b
���X���>y��$�;�B5�ur%X|�
	���E�Ί}��ṗs&�o/�E�̻,H�K}ܥx�#+�iժDb񠂉�j�����O˓�˝lSM�G�;lq�f�����܆i���	�I|H��bx�S�GdQh- ϻ|I�y"Q�X�+3�SD~��
+&��
y2�4Xr5��
9�g�Ϣ)���
K{��ca�q+�X³��Y�φ�$�/�"\C��edj(�f�s��I>�'ݲ�=�&=� #�U0�?�;���ӼMvū_nF�5#\�O&~���mX�fl�ؒ��!
|�|e6���;A+h�9�/)>�O�&�d\2�5
+����r73D

�V�:HJW	������xm�ǶA��lc�oC
��%K��"�K+>�|��pN�+=`hi�y׀)����ޅ��~�F5}fa��X5	�Z��Z�"�
+nUƱ�3h�:����Z+ne��J;�=��HYB6BIH�@���P� !Ѻ/��N�T;ն�K2��x:�ɇ�0p�=!����������?}f��^��L�R�p�φ��`@Vr����@�G�� ��A�w"0<����A! ��\�ŜԪ�X<71
1
�'#�h�G�����w_��C0"
��
5 m ṫ�`
�
�",B�",B�P�G�b��P
�!�BpS/� ���t���3�Ϟ���ߧ"�$�
�����/��0����`
%�����:�B�r�Xa`F6;X�Ap��ٕ�Vb�\���r>�i:��_PK�������
�-��:�G��/�Ґ�9�c+.q|�h"�|�X�
~5.�5��uб�Fl�
0�a
|x=��u��
��04��.z�E4)����x	��C�$����Hl-
�
y��ױ;'�jn�
i�\
W8tl�-б
k���؎�nA�
�pNlEMla�Y�6�{ר`�
+��Y�;���y8���0�
��_�w97�=�Ec�g�@Ҁ��=�	
�б����Q�R$Ή
�{P�1��j������`��	�<z	� ��aXB�5n���&s�;J
M���BD�q�
�~��Av{%���|�{
,����wQ��G
��\�:h����Ex��5
�~�<t�;�Vw�]�|()
��4�1�#�<�=��J� DQgP�
��6�X
@s �#Lt�G?�zj�e*��{���;�
~���v؝�;O�{(8C��#
�\�
+���F�س٨
)�S�"̌��tN�T���f`��#�H��8�00��;�Iw>B�΃�Vݕ�
�Y�k`������(,7U
+
U�+�'F|`���
	
+ ^�EMB����@n/����+i�Q���'B/ p�aT�/D�;��C!��X��B�"�0�c�r�>�Q�8�
8/l0݊���M��?�xy~n�0���7|��c�ǎ�0q��)S�M����s��^�(d��^^�2l�/W�Y�n��_�z��W�l۾���ܵ{��"�ވ��־�o|���#G����?�����>���3L6��ğ=w>1)�B����Y"�D�-��U�5�ڂ¢�Ci�����TS��ź�Ʀf����f�pvv]��|���nܼu����}�ŗ_���o��������~�O�����D
%�}�y1�<\�'�_ �g��K��<b}���ˉ�_��+�� '����	�HB�M`8 at 8��A�Aq,>"0X�8�d$
D���0Q ��P���p)#`�@�L��6-��F�8�n��#����m��O��@zH(=&����c̾�dݽ��z�~���x�
�F���������Eyy
��=
�
%�����
�G�	�� ��X �'$`(�,�K?W-=C�
��o"[	;��=Q�o�;p0�ȱ����4�Ï?�����!Idr�
�-�bX�w��AWM�1	��	�0
+��z��޻��}�_>x�������o=z��;x��ɓ�O��k�M�����uDT_�_��ba~Cٖs�J��:C
�R���
���Z	�G#������e&\Wf���HK��i
h�0�a@À�
4���
w�|��k��f�dKe����Uh�_ݯAų�s��94H�A��Se	�*�g�)�A��x�Ӏ�	���n�_To�O��*HSo�Tb.�W]���ޠ�Z��A
�Р�%4(��ײ3n����膆��>�n��E���$YL�!�`*�_mԝ�/Qs��Р�
4�y�"�y��SIf�uaƹ���gc,�i��0�,5���pCu�~S9Ѡriȇ��۝+�]��xW�Y��"��Z:��Ӹd�M�3�^��Dv
�9��7�V0��N6CC4��N��۝#�����>1tdBG*�������@C��'�ie$5��h��ͥ�o�t��Р���Ur�S!�\ʖrz$N�:Ҡ#{��脆�ƒn#���Hi�	Кʷ��kJ��
+�A�˱)s�Ny6�K"cwgI�=��q:E�+����6�
������Zg
+�U�o-/�4C�TР�a;�rV�(�Օ
�Б�u9'�_�4
��q��b���f��՚�
*ʶ��̅ڸ�|5ǢT�۳,�8��Ȅ���#Eƾt^�鎗�{<��6�X��jwУ-VZ��zQQY�kF}QL�Vנ���<V�Dɲ	̎�
�#E�r&�ٝg�9]|ak��۝�%m�[
-
��j���tg���p�Zנ԰�e*�5+�ٖ�d���2�
+VG����p
\9��i���Ϸ9��[
���2CeX�ְ�RUt�6� �N�e5�4̖t5Ӓ�b�&�I���.��ps�6v.��iXm�q-NzX��
S^������J���YVwQ�c�gh���Y͉VK��m x*����2��
G��6������A?^T��Ra�X*+��5���j�������$
�!A�nh9��|N'������h
G]ǰ��.چr'�=U��t�i�.�4��'��$������l'Nb;niP�� 
q[�
�RN
��RJK9 IӬ�"���O�l����i{�%�Z�6[�mْyKҙ�q�L�8=��\8F\���w�����ߐ�LT�e�$
(!�a��S�
Ic.4���
��3l'��u�߻x�=�ن7���Ӛ�VTR��L�z�"����_�E>�ϋ�I��h4��X��$�&�}4��9߻����w�?���c�W�{YE˫���}�?
���Q
�
+˱lp���WDL�|r���V\�`Ɖ��
�м
V��mӰi�4l6
��m��{�Pdž��g0|ǐ��0��a���V]ց�灡F!ʺ[Kn۹�l�{�`�����?�)`�o��h@��l��ǧ�"���sf
\޼�-R�tɌ)��N��m-���n��ë�=��
+�5��e�'#1=0h�tH���h�#E��A����g
"�F	��V�h�•��I�b�m�0;;�6
���������7`�2>���A
:�S��
�vI���QĢU�]1��W
B�%
O�Xo����L[��n`�	�`�Q/c×���hޫF'�J��cs�_��+�!��DtU3(��˗�����vj�������Yy�`xN +
1™�
-x��[�V
J�f��
��Aƻ�
��C)�,�ȗ��fjkۭTk���ë����K���
/c�k$f����L��<z��Ң3������AA�h��%��{E"_�(���v}Ðn���ѡՑǀ�E{�v��X��|!
��33Z�Ѳ]��X4�A�-j�ؒB�/K�C,�_)%������o2-�o1ã���{�z��c���[O�v�ˈNـ�6�V�Ԕ*tA�D�����@�]�)�K�����z3�c�7�
Z��f
�۳��{�p�~.
qte<�`7"e�
����Ui�9��
��!8��\$U����ij��ݱ�f��V�Xׯ�Y�!C}��Oł����)�	)
�ZU�:hF����x��T5Lͭ��������\϶���|�Up?G�\=)����D����9��3�}�[Wa����P�X:x��Efq-6�jɺ[�5�|=�홯G�޺�ng��T�~�N���ɤ�ѝ�ڐ�
l]��=!5��F��Xx�B�
+�Ǫ�����hC˵��}��;޼�kaO�F���#��}������T�YإA
{\,|4�1�e
��W؈���XÎ�R�Ͼ*m;��B��R�q
}����Z鳌�ٝ�9���b�Il��V�ȵB%��0
2���qȌO�[u�a��D�ӵ�7�&��(��-��k~����iR��N��PF
+
�vhT at Ac<
+ʓ6���;B�?[�"ۊ��T�a[���d�����dcW(��i	

i}EU��q%ݝ���� p�P��s�
��vd��c��A>�G�z�(6l��j�;^i<�)7�m�}U���ɰ�w>&�t�%4��a��S
�&�Hs�ĉe!�e;�l����[�԰�0ݸ/Wi<�k�Q���
%ߤC�����X��
<p�C#I�F̍2�c`7�b��T��L��8u��xp{���lh��=�W-������
�r��ɓw�͉���;��0@"l?:��Ǣ��H������./����#3>o�����ƮO�W�}�/
���>{�cI_ᜲk�s��,�p!�m�,�g9�@�O�v.�Rg�u6A��$Ⱥ[�5��
�X�=�ښ�Wǖͯ�s���l��w�rl$&��"���;$�� &,�aq��
���J'�=ʲ�[_vw�MæaӰi��7��X�?�ښ��c˖�9�_��
0t��JddD�'�%x:,&rA>'���>\0�EE�
h`��Nӽ���GW�����pk�z����^`x���� ���+W���c"R,��B���q&<$�Lc�i7�_uA�[=k��V�}����;��Ǘ�/	�����b$�fǢ*�	˱\P������W@�i.w�Ef��x΁H�m�j�i�HW���#-��]
��`�0�(̩�

�I��HL��`��

H��w��EĴ�ϙqrxsvB�@��E���͌����:yn��8~
^���I3���m��fځ�6MmҔK�
IJ�
q�C�wI֣�y�G��ﻭ�Ѿo�bK�l˖%[^ �p(t�4u�U}\�?�ɩ��k����3������������X�b�?<1�{B1
)
�����ʠ)��u
+�e;���5+��j�K״4Œ��^�S5�x{
z��
~q_=�a8���
�ie�/��Ŵ�xX��j(�Q@Ө����ʨ�V���f�
=[rS�PԤtuE�h�x{
~���
{����/���ͩ0��/��
���!=��k��[�8�P�&��ڪY��� ��V	$7�
yM�RU�LMo��gn`�#��#4�n�%u��b��D�@��tP���f
*haTI���Ț^ʸ����,��o���e>OU�q�
x�
-�"���8����g��3h.����P�ԗ����M��Ь]
U,*��WPW�2�M��~K(���d+\����+x{���ڍ^o_
=�N�i�o���Yz!�p�g�'�ئ�b�
+Z�(�e�^�ik
{�����d�E�DU�ۆ�a�}�B���{_k_����ӜB3�sޔ�J(6�y<d#d�؞���I
.h5`U���J��UPW�
+�
+]�_f���t�����--���}�
���l?��mh�tƛ�]��k1�m(�@SV#8��S�ZʂDC����"
�	�Bj��]���*�QT�v?��r?�m����c����
o����G�#'=c�3���#�
�F-��D�Q��L�
u@��Y�B�P���Q4�
+�-��^�u��ֽ��/[|���<�7�Ƒs�p%'
�Z�f#�,��՚���D�ɳ\���S�
8��2�C��:v������D��o��s/��{롽�K�����m�x����8dG�R!k�L����B���E�	��)3T�}@�Z�d`����&�7�+�ܞ���}}�}��}�T�UK8����=1��%
vBFcr�Q�p���X��L"�l��*���"�D�&��[K76�ٲ���m�~��~y5���L�
u?�=�Z��	��8���
��0
k�cw���y�b��d+�@�"�����LCӝ��]g�^�)5Ah���]@�Q���2���8����
�4�N���`��Y�e)68G�Qs$�#�⯜mh\�l���t���r��B3lH�a��O$�+a��FT�&�.J��R�L,�	��N(;�1�	�Q
�1���
v iҷ�4ްin���|���b��-dY��~��FN좃
��a��
/a����i.(����I
+JM(-9�"IJO�E�|�3�٦��J�/
i=�������#)}ȧ���l�
�1S#�8�N����
� ��0��C����
Q�=A����D���R�.�Z�;�[O���j;r��
`��aR�4B������NuK�
}���Ae�A�9N�\ˑ���(��,��$
�fh��w��&��}��G��
'�����E���_���y�عr�Xꂯ,�@.W����D���a���ι9���9*�l	�-�qWG_h���w�퇎�-?k���׽�ҏD�.gF0�
QI��������Y�0����L�,�I�\�(
)'��ڼ����[p��������jx���څb��mwu�Ve��9A��{���@RB
�H,ʡ'�L�X���!n. &��⼏(+�����Aݤ{�4�0�Twm^�Qw
8R���vW�~_UvJ�v���
oJB
+&dp$&��#|$b32A:3�9>
+��%��<$i�CPM�����Acqd�<���k[cݍ����G��
���ۤYѧ���ۗ��	9�J����6�"Y?�1ᣱ&=���3.�t�ET��]�J0L	�)<������u�p���}
�'���/%
��hT'�bj&�����H�Cg�0g��d�sX]���sF�aFG2M����P�`3�
n�c8޿ ?)�J����._J���ȱ�N��p�/��\ڔ�I�Ai�9�_�S����b$k�d���l��Sݳax3���`<�_V��夗]i�5_J��ov�+��À���
5
R!��ڃBҦn�u\�#�.��@33lp�1�%Y��K�ִ������_�[�l�6�$��4�
��_1�}Eo}������O(��E�"9_72����NƘ�ɞ��x%+,��C�T堶 �#��y�{hX��`{�a�4'�ĝ�7�PeK(�"��*$��}�
x�-B
+N
�h�J&.��F�%9�*J`mA
�G*����Z����]���i�;�8�EU͡��k�t@	�{d�K��م�)
�9k��~�a��ə��
��(�k
B�~���gx�l؂�k�N(�?��d'�i�i/�i
+Ŵ�xX
��jx�W�:ep��C�1u3��D�r~Ϝ�K6-�('�,�e
S��$̻챡�l�o~lP�����u�՝���xXO��u�`�.8��YN��J�db�=�5�P:��)'��4c�
]��
|kˆ���E�����+��؋�1SK<l��}FdХ�
5<�S 3rrETvp%�9�T:��VL��1O;ZI�5x�Ǜ�;ƭ���=iN�se��<��T0nk���Ĵ�
�tP����J%4%V at 3\�
+Kƾ”w�0�)F�z�.�*	�-���ה
k0�&�
��Ģ�]i��g�|�7�8�O��섌���ШF
�K���@Nq�4]����iD%�D�qX�-T�c�굘wC����w�	�I�q�#����x���q������A��+�@�[
�q5@���&}T�'�j��U�jM��0������5�o}
�z
w��Ҥ����[�
{4p �v�KX���L���@�
��Q��L�Bc��j��M�8Y+
#�U�J��Va��k0����w�VC*y��C��Mh�mg��p��jL줌�
+��,���:�5#,���QP��v��?v���
=�J‚K��Њ5X�5��Uܟz���x��?��7��c�
���M	���Rځ��J��[�~�`��A�
�&d��H&Y#$c�0�$����U"�W�;��[��e�7�u��C��+fsp�O뭍(��rW;*q )�
�tـ,���V���������� �� X����ދ-]u?�z˃�z�͑eu}��4[�u�*�/ �օ%��1��=���<'�r
`���4;���p�#Y������v;G�uV�\b����KV�
}~�����]t�;�Q�oV���9E��A��b��!���@��
&X.(I/��`r"(डT'=Eq2Rd+Erp*��Vͻ�[���}�n*L/|'t{q���

݅-����*Zkb�>��"mnf��:�p �~0H�A�\^�0�K
����Ì<�h%�����\�|l|����5���Z���س52���C�Rj��=wIM̶i���5M6��(Ƌ(�Ԍ�
I�Ҕ�-�&h��8�VI�l��G�,M�����%;%�_<����3��mɟ�!��
�J��-�΅�&nc��~/l�E�#����aj��!Prj��
�d�
0+j�o����U��7�*Öo��6���
�|��$�?6��:��x�_����󔺫����K`�L|b��
���>*Q��J ���82Eg
�`�*)=P���3�؏6r��[h�/�w`�}����o�羣�=\[����u�᣻���nj:|����Ͷ�o�Zp7ȗ|Im��K��u��:�m�lB%a�5�0��as5�ޱ���wDGI��^�{I��vx�\�/��$ٝ�����h
�c
�D�,IFI�d��B#mZ4�7�"��T�Ձ>m��3��V?1�Y�i
ޯ�-:B������}�K�y�/�e�
N(���^,
+�ю�d�,A#$9Z6��m�toJ�Zmio�=��a�����qS5�ݾ�|O�����ӂS�a�c�O��0��.v8���h�x�'#TQ*L�I�H�L��ʆ�t� ޜ��Yޖ~�0˪�a�
+��аm�=�ć��“�!A�)# x�B�1B	
3��QFg2�R!@�	R��`�, ��}�o�w�Yr�6[�iì+�a�u�c�7�1��'���R�	��9#l��D�����
��}�q�N��ܱ��qZ�ӝN�U�z�uu�k�@�zW���EAAP ��I�\�Bx $�����F�$@Bȅ��pAEV�Ժ9�;�m�-ʶ���������?�
��������������*9�M��8b�ɢv�:j�h"(VV��@��ߠ���T�e���i��4EJt���Lp����avw�k}n���䅜4~�����1+�=n�*�(N
U��
+<L���;s���YIN���iBx�6���
+�_�s�Z���fF�G�������ܰ
��Z)H�B':�!�T�Ur��_JD���o�t$
���H�\$�\���V����Q��"F�a�]|V��aG�
^�j
2��#(Q6�"*r�*&!i"�$]0��
k�
��A�]0ݺ�4!>�DZ�р��/�rz[I��V��-��9�~��`q�L4�5�z]E�����CmdULD�D�](Հ���������OICV�t�^�D�A$"�C�
V[��+�{�$��SL:��Q
�1h�G���	5M|CF�^k�ʇZ��x3UA��P��i/
�
����n҄di=�ۊ�~i��+�z�d��%�C6
�@��>k\��O�X�["�d���>�Еq]i��B�6gx;iذ��%
�
+gd9�	�
$*�M
M��//uxU
�����a�����k�f���R�2�ȕ\o`����*�X�(��
�0,OƤA���q�����.�<�1*;�
�O[�T�������{�j8lQƒ�
�.3&�B��a��:A�8�/��	W=��h�S
�g�� 4IC�΢���/�}ڐ:��=k�J�]�*�
��
*8�l�]Kh���-nH�6�j����	&_c�i�S
3Ҁi�r`xaؚ�D�y�]��Mݧ
1M�&��o
+Zr-��s.��j�)�kjT�A�
Ad�GO�۸7`�p
�HG��ܤ��M$Հ�!�o �?f�*w��m��2~\?h��2b۩z�2�ln��ʯK� �@1����'
��
TY�Y�0F��G)2��U���h�Ӳ4`^���2�nK֬f{�}�V�m�&�p�ҁ�-Zw���Zܥ5U�Uz(Ԧ��MjJ���
m�3G�r�A�
��A��%�h���4��
`Z�	�����lV��y�1>����g���<��X.t+L5�2hA)�-�h������D{��b��8V#�aU�h���%i��2������4�!�_]�+�.��
x����k��q��n��-1c|�Fȏ�`

+�ju�~X
G(ZF���
�ixX� Z�E�u���i���2`y/7e��Z{�~dU���b�k�"UW�Y��s��e]-
�
��5� ?�H
0
� M�((#DDYa<�	c��0E����P�ۯ���e���z`]��Q`����%y���$4�)l���	���V�n�b�
��:3��6�z&�O3��#��dd�
� ��
`

�cs_�Ǣ���|)p�^��g՟oM,��w�9�ԛ$Ib� 	�i�{����e�:'�ɳ��
+��e���;`/����L����l����{1f�/�
w.���{ɒ���}�x}c��뻬�2
+dw���6����M���f_�����=8=�M4�<d3�
Ypn��	�j\
[��e��bۯ8��
+'?�nu��lֻh�?‹�Do.̴�.�V�{�df]%{j	
���'^@��-��Uqu��j'�
�/��� ���).�ѕ�}LU���:��S�7}���k��#��p��r�d�jz�^.���"���*���`�N��nR+n�0.���J�*��Uq�G1��|]����0��?Lm8;7�I0y	Nc�
��ϋE���ƫ+��}�
V~��R�}���s������ߟ�Xr����+ߖV�S�9��+��;��S_c	'��'��"��OQȹ�i�c�
��$��jѾ�W�C�j��-K�r��[��
x�#��=P�ác�
?��8�lޣ‚�K�����±�%GT]<�=������C�H��A��—��eV��T����+���^��˹`�;T�v=
l�\>�~	|�y؟��~u���G<w���
xz���ي��Sg�M� �'�9�t���L&)A@
+mBS )`B���mh!1���Rc�ӒeY�u߷dIֹ�z%!�v�]iu ��pd0!L���̐�$�̯ۚ>�? ���ӷm�
�H�
��oz������ޯ'�|%:��W�S�����
8�#�^�87Ѐ����`�S��ӏT��]�=�r�{L&��u���~C*�gN�{�i��%8�
��dp�?�3 ����x����
�\�ahe�
eh�
��jO�y��`~���R�M�OU!�KrU��h��>���D�u���38lj�,J0��pz���T��~��ޡ{�&`jm��
�յ��k�˦�t˸��("�R�(H�ɼX�&�Q�oAq�
�q��
˓�2�,
�a�h6E�e��X=7e�Nަ
;63e0�u��O����ɧ4]��jn���H�"Q��RĀv�
ߌ帶l���a,/�1 
�G�#���
Œa���ܔ��>ehi�3~�1k<ʞ1tȧ���i�PQ�'5�D^�LRM�l�)��l8�q(˛G�|����
��0#x���eX �+)�z�
���9�Ys{�xJ1�?o�����'u�d^�H�2�k�����<k>�q2,9ʄ�q�0�0�|���h����ah
e�>o�
옵
fϘ�+&�; [...]
+%�
��h�>�鵐i���f�qf����b�5\��É���ߊy�s�&`�`���1k�{�ڦ�4�vT��ᢁ
/���A�ɩ�YL�"2B
��5��=�+	v�:̂*;\�q`r�!�=�\=�
���y�������c��ʚq
�OZO:���ᢉ/��)�,�du�
�P�bM9�7�Fz\W��j��z{Be7&�H�΋��	�(�����
���un��̬��u�yP>�8�Z?�]�'�[E(f��jY1)QU��oh"��^�jN^�l�^$o�Gs�4o�-��Ҁ�28��>u�9�Ƚ�yh�l�u�^s��K�O�3�;(j��zIyD.�
�A�s���\��5KT1��E� ����7�� w�>u�>����3�
��m�u
*��].�������NQ!iWcZ�DX���
޲=7�B��^Ut�pQ+.hD����2�-��h�M�;[���l��'�Ap�d:�d��;
,{O�H���g�����p�j�]<�5��jT:�h�Cj���J
+]QI�%�d�@�����
[����[ߎ�A;.}�߆w���[|�pRB�\�G;���A���-��٤���
��}S��KU��T*K�0)�!D=� eR�oh`�2x�o�.���cxk���{�w��t#;]�ds��=c�?�bv>	k6�`B��:��E�M��{M��DZ�"V�E�
+��Ӽ�g�w�o������2���o�M�{�
�ir�e��Ӈ�Ţ#�3P�S
+	��}���f�j��;8�wy��m��>3tE`��uÅzA� Q���ln �w��G6
{�x�����ϫkE�7���]�H��H ~������5�_8��ɯs��뜀g���q�+<k��k��z�ʰ�2�Iކڰ���
����ꚮO��'��6Lj�!�D��D
Q.aB�2,�� Q������1&d�1B�*�U��P���z����/��i���D���~��?>��>~���?�>].L�m����`�=a
���cܜ>"�ˑ~R�J�ai�VUXaS��/���%(\bxa��@�
@�Յ �e �nH����\�tz����K?��Y)�ƶX
�f�#fHv�uq
����Ҩ�Fą^DJ�
+��a]��XH:�$�?y
.��d�_Y«�����Ѷ<�����/����"|g����v��tȣ����L�eU���'���돉s����F;��3����
�����@^~
�\R��|Q{i��K��|�
�;��yw��p�Q��~��z�D74�� �(/�����	vj �H�R���twB;ڕ0�^L�G;��t=���@�A���rɊəū��K��~�5��
�
�
l;��ζ�Й����twfe��vu�V@D@9��\"�IH"$!	���"	I�r��Tģ��]ԭ.�㮀���:}^�E_|�^<�<�~�$���g���oX7�XMs���S�R�8JI�j��'��C����=�
r��[�k1^�	�}bc�O����7����_my~{`aa�G�O�?d��8V��9Г×��;��-%Pȷr��
�|%��jMk�
V��"H+&Im�Ty�x��d��,
c���T���
+1*S���]����S��wB?6o�?�����>Oo~~���������Z�J^]�r��rj�����[���E
�ۛb��.�A�\��Ԓw��ͽ����
xY�b�N���
�8�ww`�{-C����p
�lI�nF�'�L�Ǭ�/F>�-/��,zT�B�^������
��O
>{��.�����V�~1�
��v��tnYH�I׽{Bc{C�������:
>g�ώP���:}�$%_z��^���U�S~n�ˢ��e����Ϫ�������q%�k�ҔIe�?R˒�6^L|�,Ox�ri'�
�	���ޥ^y/���	>9� }�Ǿ��+���2�2AnB:@$����dP����������Ɉ�ğ?�Ǐ۠d�~u9;�3'��ܝd}/Ds;d~��>�O`��?T��.�@�WY���4�v,dG$���xPt2\���11 
ЧO|�	@<(�1>0�n�N\x??��G� ����	�)��e�U��Mu����ƥ�6�-�k8�b#S͢���v�횮�馐��J�~�Ү�����*��`w��o�2�`�i(�`���!�8)��:���W���@�K�����D�|�Ъ���j���)��{���g�3�Wzǫ��qd�q
�1����>��,��
��A�����y�-�"�8��Yh��f�NS���%�o�_%B�)�X7�o�Ƕ���;L������ye��T;-����

��D�A
 ���
���

�p�[�Z�T��	ͷ�4�zS>Kk�L7tD�a� 3��f��Y�`�l��^{��j��{���~8
&x@��
��� ?=
+�R7
+��E�Une�2�^dQD�L�r���9I����[M#D�%@P؆�~?V��N�����
8
��o��
@�A$o
�@����
(�pM�@��/6,qkً
�x�դ�f�u㍼�*d	�%v����k\C�n������\��ӂ�9�X��g�h�
�?�)lń(9
+��R7D��k�P�Pq������Kf9T�$�Y?���.
���c�(w
�5�A��3��x
�ی��{�6�
gsv��`�� ;���l���lH�k�lԪ��a	*�,�ђY.I3�����8�a���O��r� ��7���91f�k�p�oui�6�����ٶ�0 ��( KJ�lK-Xo;_�*�%/�K8
P��*��c�K3\iaY��<�
r��|^|ǐk
2�L�=�>_����U�SI�;��
6�mN��H OH�T$�+�U=Td���웒r�l+Z3! ��6?��9�(�zI�!7�3`�z�ѯ��P�^e��-'ڜ2�������a@d�#��LҖ*1��:�H�F�מӼ(/�J��	�pEH��y,���p��W��t��:����;��7
��^)���m.����3ȷ
'����=�Zs&�6��qg
+�6�q[�ͷ��O���G$$�_�py�
��"��!hgT���6�! !�E
f_+��Rl.���[�b��u��ũ�@���36��.��}"~�'��>�]W�6���
S�L�
+��
1�f񌒢�Su<*�q�O���h�fuqi6g���A�m8�%h?�w�=� �Oe�4Ĕ=1�a��$P����[���k�匭�sH_g7)h�v!oF�VϷ0�&9��6��g���t���du��l�`�5(�
_�YT8PG
]�����s߉�5{4�;�~e�l��H&{a�L0�Ejm����<,P���2�|��s����sz��l� �e�1�-
��
+��?N��٭�<�������T3���T��TN���ؔ�f�WZi[�y噡r�x �((�x���J�� ��!x$�)���ef5��5M����>�s�����׏o�P�ʝ~���w8	J��W
1�4G��u'��C����0��VЮ#�ԫ�%JFWV]� �R�-fE�`����%l�a*�2
+�
��&
7�Ym((C
U�5X�B��~�dgr[7h��~��
}���hč87w*A?������:�Lڞ�6�4�^or]����������҆
�Xѝ&j�L/RiY��vCA���)T��u6�Ae}��
+����{4�8=��?p�k���������b�P��Vg(3���]��BGi��K��{h��nzicg�X�e�TC��P��	T!١} ���փN��t[�>59w���#;�vމ)��/
)+F
�$ev+����Ӥ(󻒔�.�R��PtSj]���Τ
+eGr�Jc(�D
5f&P}�j-~�&s�w
�l���
&���n.Y�h���)�
Y�Qt���в�
�E~���Nkb�r[iWr��a;���=��VCjRic.���Tڄj��P E
��&P�)4����6_������.��K{OkV�W<>D��:�Ew����a��>r�:����lH�d(���qm���6�r[uKT[�|ks+Au��t�pP�.�0��Vh�a����f'��
,�լ��R�:!]:� �se���p�1"�@L)�F���K�%t��ەYݑ�@��	�29��
�!��kZ���b���.���zۖ���7.nޭY�����[��"B��>�ߝ�1��c�E��G���C	�z)�?�"�W���Wc{5:�
��D����UՄ��/
+j�DA�?��i�W��7l
Z��7�ʷ��;����[�����%���NJ�d&�Dr�'IY���\�hR�6�0r�-��ʺ6�W
��C�`}UI���$P�,1�oDAÖ/V:���e��ņ-�����`�,���o�Y/ݱ)�|���!	1�i���Tܽش��D���ι�t^�73h��
0!���-��/��
����]6(֣��5�~c#턉��ӗ�R05�n�l�:����C�Ly�!�
�a�1Q�_��sO�q!�)��%5�#�����03�g!����0�̃�T�����2��^6��:ע4C_��XW	�L�����:
�ip�=<��U_��A�ޝ�
�[T���X��+j��Jr��K&����x��?�<�pj��xrY
���
+��F�֠�uF5��1�x�n]!���L03c��y8Z���,�v�cAp��B���
^�G���ubϜ��>��'>�������s��Ca����@Ci4kP
z#T�=�� �sa�Tؽ��;�`�����f�
Vg��
�� �;`
� �x
�N�@vv���G!��	R\
!�p����
�J�C���Py���8��Otغ.̾���߄���?�m?.�N�����8���B���p�D
t ��=�~��8+[�Z�!H������[C�k#`�X
���0�- -�	�"<�A
+|G�F��1���<�SJ^�R�0�!Y��@*��'Ve�.������a������
+f»3�����a����C����6b�@

��F
L��r��p`E�eR�+)�1�h����
�"�0�Alq�<���T�;K��?C�L�ES��T�Z8q]41(��
�n	o�o�>dl2.b�"�
��>c	�@g�aЫ\B��X�K&=�ה��%?}�*���_��Ŗ�͐��i�ŢIb�h�X<��"��� �JF���A����0(�&~>� ����C

���e	���C�f��pc�/ش��LV�bJ�-?k.A�7_"���NDˊǣ�%c�ƒ1���;���;���A�Ͳ^bYgT������2Cb�!�,OK�=�
y����7�����D�vZ�C&�3O���&L%H�q�1�����|4JYq��Zy��-�����>i'�:�O�J�|�C�>
1d#�LĐ����3�ѫ���or���ٔ���T��Ûc��M'M$��c����ؚ�r]�0IU=
u�f��#��� �Ȯ���Z�T�!�΢�<�0��ZO��sj�Ӟq�ku�Qj-����"eA���`	�@XB$d%!@VI ��%$lj at A��A�
V��
G��;ߙ�uz��ݼ�</�W�-�D
4�P��
��Ƒ-���
�aX��kSҞ�d�h�����[dj���Z�
"Ox�� �ɤ��+�3
-�:�����]�VlW�1��U��V��[�T�P��Q-h%�B� 7< x�G?p��_�1g�0�����;U$�x�9ZB�_/�4
�	��9Җ�X��J�Q��r�]�N��l��8��x�Z�w��N������̆�P
��!��?�G@�ﺄԧ���)f�=�:N+eyʫ?�X��|A�U�DُS���VM'Ρ��8�Z�C�"84���<��&����n��@G
�}+��/ԇ솆�Ph�:�F��L����-��ʡ��I,��~��!
(�k�˓�_�i����o3hrme
bh&"zi�]'�wh�.t�{
�P
50Ps�
+o������𘷢��ϛNb
+�
��eR�YD��^Z?D��^)�.�u�ZB��5y��h5K/X��
6Cc��u������wC-j`�]�A�@�=H
���w��KYL�#Ib�dSj�O�l�?9���������-;r�6M��֜o��
,�B����f�!�:���:o������
X
{7�$pȃ��p�Z���Q�OZ�I�wd4Oc
�
+�,�մ��s{��.�`p4��b�+����6#�1�K=�Į�Ԡ�Z��D
�=ˠi���E�~P��
?�
Oy���N���9Wz���J�LJ{+�m��:�%:'�l��J�Vf��\[j32JmF)������
`�j�/��zhٽ���
:��p(��XҔ�x�D;lN/�Ug��R�X�'�72vu����sUU
U�&[�b��XMU6cUb@�{���ų������w�@��4�����4r �+,v�RL���S�}��b�>�٦$�DbR��f���w�9Wi��Q^c�UT�-U3�f5URm�J*��0P
5p�̇ƝK@���ޱ
��C�?�
+��
;61|��������3$�-�!��x�UF1�x��&����(��b��JfX,�t����f(�F�ނ�Og 5p}��o1(����f������������<?znFE_
�O��1�ʮ�!��ѿ��L�W����V+GO��d#�͖��\Ȳ�j=�a�y
����x�A�u�|W�qˆ��m[���w��w�vH��Dd�k46U;t*_ܗBc�d�˜Y.Bn;geR�
+s��j�l����V^h3���k��s
Zo
5p��� ��w�l\�
ٰ�٥����\빽{Ǖ���;��nE��G�u?&S���>|Sv/�%��V}�)�$;͚�F�.Meם��u�EmvC�'�h��QCݢYа�sh]��,��^�trx�77n������9�7Lw�@���,�Ddu,�B����
 ��%�k�{��=���e�ե:�u�S�.u�ܥʐt*�
����ڿB۷��/�����7&V,tOm��x�}������ 
o*�<�^DA�xbyލ��0��>P,8�Okĸ��D�T��6��.�HO:{��
9F�#OV{x�A��W~�%�=���3ϭ/?u��l����m�Wۂ%/���=J�=:�U|?�H���d�eP2<���EL���p�Y?���
h����1���
}
�־Fo��/>дp��y�7g�3w�{j�<���U���m���v���?�6
�T��Xq*6;��ϸ�AJ��S�+�$����<��u��	#j��6r���
`D
3���,o�p�H���
���O�m��\��ekİ~'��  ������g���g�=�`O?H'���O޽P{�\3A+���E��%,�a\^~l\�f/�Zvll�k �������sip�����9*X�U,_Æ�۩�#���߇Ec�DǧM�'%�HNIx���+�\̣����$l�/�ptl���%
��17�~K^�}
1d�N<<y�k ��g�:ӧ�w����G3�/?��_͂U�V��V������Y�
+Q������:�j���8
@ϙΔ���Zt�V[p��
+�
+J����,ʒ�,$�@���D�L�$ ���Q��U�"{A��(��"� "Z������3y�������nt�;b��7����i���\B�+11쥂txNE���%���!�fZ�s=�ycr�̏vi@��~Z�j�^��������֬̆M$�k
�ەA>d8⇃ȀX�
�<&(G��dl��1�?�Ƞʨ���1���3
?��
������3v��jjqB�n8�J��:j`�G'`�21|��
;7�`�&�o��P�h�
1�G a}C 	
)ȁe
���d
D#O�/����6������
�P{]�䈪�F�
�(��䠀�K���c�.#��K<x������z0C |s �l���~�wGy�~���4�����;�@�kdy��n�#���֊B��B匣P2��
>q��gK���hpu�
�?ŀ׊@ؿ� 
tAC��}��"��c_zA�W;���(v@��ہ��;�\�B��Pn�
��
:�w�#��-����y��a��~��	���C'��z6�
UC���_�����
+�
B
�9�t�
��;���{�p�?
�*���N��N���&�	n�

+n�������lw��
p��?�8_�QC��<
+Lq�;FV�k�)�+�>e�RƜ%Y8ω��g�z�4�Q0�kMa?M���4�7�q���1콌!�}�
�X�u;1pC:b`���!7Ey��!%x���„�Li�������RK�33o�T-�"֋�2��$��+�Il�l2�_� ;$���'�I��$�ʻ���厐������7�Fz�,

���\
�
GN�-M��"Eǚ���T�`�R%~B��L&6�
.dN�(&p
�G��~H9�8���8�l'
+�����]��m��E
�P7Ȍ�E
2��&G�rp��I/�9��iγ�"�Sz�x2�*}L��|DjP�'^81Nh�~��ʾ���}�8��K�� ��i���i�1��U v��p�9��l��	�Z$���N0g�y��4�x2�L6A�T�'�f=$7�< ��Kl�
#���&���s�)��'
�/S՗���
@��	��A�
+N��*��1h��b ���d��|�
Q&�O%x�ΗL��(Ɠ+��jU�)
�Q��S���4w�75}�M{Ҁ��6��D�6%h�'h
ĈA�D�A��
p��
���m|(�"F-����l��Tže
'�Z�8�8k�aV��m�F������wI��I7
+�i����~���~���~}�F�Y;A�2��	��Π�q����@���P���B �^���W��f�ΔT!���
sF������.��
Jsѯ���z��Jr����И�k8��W\��+�e^_4� 1b� �,o�
��B��!�
�APw�}A"���N�Uq�SJ�xBrR9���
a�C���۴s%�Ime]�+�n���n�Yf����SV��)��)���
��!c�H�ɽ_��o��C���P%���
�I/�
֔J z�P*�5�ani��Ԛ����>Z��*��|��a9���8�fkz����.7q{�ʹ=���O
@�d�A��
(F���0��a�D
Y0�
��H ��R'u
��J���P���
+
;�-�ִ�WS���Xm�zN����f���+��
�2~��D�]nt��1���k%��~f�o�2�
�0~P�y]�܊�?����K��
+��
Չ��LM�eQ���k�j�\��r�U�[k�תK�mV����H�aы�LzqW�b�
1�C��O@��s0���
+�&�����߷ua�s�Q�O���
ԑ���Le����-Zy��
Uq���R+���
+�Yg�ԕ�[j�2Zk�kU��6�N�Q��t���.�bA&b�#�Vg���
L{�B���P��z�7
����C���F7��}���V3Gv�H�wV�e���U�+�mŲ�.�5���[�4�m���y�6k���R-�4���UN����<W�e���q��h�w�wϝ�}򯈀�+����N� �LR�b�Ц
)�skк�8r͘a3�$gR"��
FB��0�M�U�D�)���M*�W˦ҡ�=��?0�^??�ߞ�	8��&�6�
�U}�|kY
�� ��jNve~fI-�[����4�
�
}u���^����6$䥉+PI UA
+R��9(1�B�N�7׆K�/�v�o��������u�Q{�8�7#�Ng��&�eTd�֦�T7&�t6%e�6$g�եd�פf
�RyC�4��%��ІT�!KOJѿ��5h:������.����qƳ#^؉a��`o ����t=�\E���ˢ���
�IW�㊅
1ŷc
������&��W��
�J�U��
�HG�І��7��XjMv@��o��\�ԙs�y�����(���`���;�0Q����\~S\~r]Ji�(�*J(�
�V!諍.�9U0 ����4\Q,��x�\��6����\�MPi�
���P�S��ϯF,~��î�)Ӂ	o�[#d������^ΙK�ii7O�ĵ%G�d
��˪��m"Và�p�*�lHU2\](���+;�_"�n�.�P�-
�����KW�X_iz��h�V��_�F���
Z
�+Ǩ��bV
o ,)�7&�D����.~	��Ҳ���唎{��kb�F,��W
Zv�,���Ոɀ�6d�
W�6@ݾMЮ)�a`���cm��Y�m����s���͸;�<'z�<��'�I��nj�L
���E�sĥ~��$�B������ђ���f�X	G8V̩+�2�HA��:h��k{d�v��̍+I?�U�
\4P�|e�ۺ`o.z�+��'�?C�'����~|*l*�
c215`��#M�e��f&��>#�rH��������|j�x>�A2�
9�1P��R����o�<�݂x�.��NW��@��Ʋ�5΅�ʃ���vz!0$l�Ŝ��
�KH��H"N��_Ԥy=�H�z�g���04�A�y����,����Ey���٬,��G} ���"}�b�g}��OX��e��e�K�'!v�D	_�0Y��ǩo�"ȋ��ą����s�^����kJ86׍z��99���`���t2~@2ȓC�B
yvK�߿靐E�?)�ԯ��&X�׺��5�\��L^sv:����F"����e��d?�	ƿK	�\⇻�)�t{]u�e�5�y�n4nq2�u�e����I��
1�@�&d�	��t�G��e��ɍR����R�؞Z`n�v��b��, �S!O��"�������
+���Hu��
r��K�}*e:.װ�~��v�x�c��O�ѥ���$Z"��o��
i�eLMo��ʲ�@[�
F{�^
ؙ�Μ�����
�.�z�D{�@���
�,����D۵r��Z����
?��
���8�r�D��݁A�
b������fL6�lL
�0V;f��`�K���dp3% 
�	d
7���
l+G�q@�#[8ko
�G-��x
+�,�
=�j]��
�b�O��r��T�!H�4�d��T2���-�p�Sb��j ������'�t��C>
���
Z���M��ISs�?���Ç 
k
+��L���DF�r��$j�@�#H�$���C��!ױAU&46Aw�'�(���vG�U��Nkp��+����o5S�B��!J�b�
�D
}��Ӄ���P��*��C�D�}��qI�E�3� a�Q����*�q�G�
t7Z��#`&gV[��VpV0wE����Jz@٦

�}�}/D�І�
�����.�ݐ��r%�`U
0���j(�6
+�pUa/S
��1f�-����u�%o�/&��|E�@j�� �R�|�i���A���
+~����9�_�y��"�
�-c���>CzϐBT0�Bh2 at E��jp
�B� �e�(;`�uz�P/�R�
�e�@�����SWI-A+�v�w����>�o��/��e�<{�g��@|˚�]b=�{ǖ��
lMi2� 4k��p/
��7�0��D�'���^�'��
�Rʚ���B���ka~�mg}#��|%��#�3a&�����ϰ&�5���==-�:+Z�QԣuTD+�ʅ�u�Bf!��
�H�,�'$!�Ҡ("e��(U
(�L�x at e��(λO}�����s�7�i� �/l��>B�G<s�g5Ġ�f�m��>/`���X�/Ш[���
D��Մ.3�#6'�=�0�]�	���3ĉ�jқ�:��k�����c�i�!�i�{J���FӚ0#N�I at Z�
+��݀�������������xr �9{�"=q���H�{\v�[laSBz
YF���
+�Hz�1��|��
`�D>e�1�̦����X�
5�Q5P7y 7����@��?H�
����@O<
���qzܻ�,�\>�5�F}�)����b��_d���

��<	�y�`ۣ�pna�p�E?���t�ݦ,p�8�����9 ٹ��i�$��,~�'�<�=E���3��c�h/qǘc�Ӭ�*�h䥄g�x�=�?1�x��~�M\��!�_�;�_�[�������
8>
 �yȷ/�5�
�Yt ��A�c�|bI�o���#�e\���=�;�0��
c�Ñ͢G���V\_�͘>�؇�:�Cɹ�>q%�y?�h�]����� ����z�jPo�4L �	A f�~�	�'�J�8=���le����C�5�Q
��Q�I�^�M|or=��񁬊�@v�ܛ|�ܛ�,`�:j��p���!u�l�,���Ap#��@�䐏bv�/����f<���#�|�`l��	�\� �Qރ�R܎�V^��N9O�J��t��Q��'i=
+�G�,`Ow&���� i�נ�8
��`ڹ��} 3�
ѻ�k���J&��DD
�0�
�G�
��M�I�T:�
�wc;��
����rj���ޑnct�3:S
�])��l�G
�en G��
��`�2�w,�� o�o~g���1����Ag[��$�K����i�Py�R���T��'5kk���CW�l�Ƿi�Y��<V�*�ݙ�,��m��
+	^S u�W��̀�-� w�R�۽�C��W�a�#��A&RXo�H�0����H�eNNZ-�D[C��W��ӌ�x��P�n��r
�ln�6�ۮ�$t���i.�B
��S@�޽��� w�',��_V�)޷a����B���<�V33�N���"�&i��B��<�0��]n���M��fS.����kA,|���w��6-"hW;
P{�+$�w
+h�	V�o �7����m��؉=�O
��;��~1���#��+�	��4R�)i��$D},1�pTPj:«�d��ZL�f"�gԋ�
Q�^'r财�g}6pP��q2��
r�=���Y`�<�M�V�ggv��8���<���	܁?
+ȸZ+�Q���'5
+Ea�NsDfEL����ƪ�4ei�w�jis�Zڂ��v�J�ХK�4�
z[pQC���
8��
�m�����e�����
��.�[�Zuxˍ2��ߏ���2�Y|A!�,�֪5H��(�,��_��[V��E�h6)�-F��nP�Z3��mZg�o��+ȿ�
��S�����{ڻ3g�V�4w�n���K�W޹p���}�J	زc4Zq
��mː�T�JoD��|�D]ni�[Ū;Iz�I��bLJ����Ɋ6��@�PC��ɐ��ū��Sk<�+���n��װu��aNJƋ����[q���R(��X<c�(YuD��Y2
��\3�x:�e�j� w-��f�@ӂ�v�(ݑ��֦u�g5��
Y2l+��T���/.��zએ{O���;�ۗ_��߷�.lwi
."�,�d>��jl|��(9U��ѱr�����fr�%
5���0�3����o�'�
:��M�,��s&��[W8�n�R�)UK�]^6�a��֖
����6�X~%dg�El��|
AWIg)�E��
+�	��b��	�K�1��F|q
B̳(�V=���1�m�xC��Y����0��;�̂�c��&���ε�k�����\�,�����č��
�`�rlLj
��x��cW���ʴ|�Y
u��6��NQ��aK
:|a�6.����ݮ�X:ҝb�M�f��*�7�C��IC�<\:�������W{}��w�/<�ص���� SS�~Ս�����u���q��uDP�QT�(��b��I�l$$,D�*0�:ŒZ;N�Z��:n��ǵZP*���2�)�UdK����9}m^|^�������K.�7V����z��a�Z�������j�BK5}��F_�\c<�\������m�zG��i�af�ӛ����0�ܻ=��|��j|
4�쳨�Ǟ$M�W?l{�������I]voqf��"k���[ե�m+��U�n����zZ�h|��:�^E�h[��m[�?���<Y�<���
��
��id�kMn��s���Π1G_F��}�
��7^��g�Ī'��AQЖ��n-��h-ϥU�+
m+��
*��/�?)��(�^{�\��|������g�`
s��v�}Ε\��J�
��}��y�����*!dCOZDU��[�M�t��Y]��U����g(�֙�][�u��������j���xi�ڝ'��S ��](��U���N:��HӉQ��
9{Õ|��F
���
���`䔿ڸ!�m��2�8n�M�0˦M7��"�-_&��R��*:���6վK��^��<�`Lj7����x�^�[^g��X
�F����tƙ�it&Gﺐ�
�
�\�
��U��ɫ�T�4N>�Q��IT��"�b�ŋx���F���R.��p\��T��*�m?���;��1�t�e!W�r�Ή
��D��y�jx,k#�]�!Գ
Q>ňX���&�gk ���*�Y>c�Ȏc���d�%rQ�
��)�#5Ңq��+�Qh�G��3bw�F-!?�&�H#!�����Ej��Z�Q�q_��qY����_��iR���H
�
 [...]
��sp1n
�q�
��9fG���!�~%d͠3Y	/�RLt�F�kӡ�\Ob�
��IC�o2�� ��: Ʃ���:K��ayU���4c&�Ϝ���Bp,4?��
�#G�2�_%d�B����R�+>a����.|��
s��
���xF��=�qs@��
݄Y0�)։AX���ISQ��-~�b��Oqp�?��;��"s�;�T�R4HH6�•%���t�0
	�`�Hp\�"b4�G��
�v�n��M��- �1��
3Vw_,���
Q�1_������@?�	�`g��]!�gC����zzt�Ph
+á.��r=3��'C�M*${y�C� ��B�EXtY
�m	��R�w2���6�M�V�/z/钼�vH�?��i�3
�lhS�`�¨DFf(�Ь\ �_�ܜ�v
���CrH �1D�%�3O��
�;r,j��ߥ��h at a��Evy���7�;�S���0�	�A1���lz�,�
+��8��H��A�6	�M�PnK�|� ��bH�-��
�z9DW�UB𘂠�z'
�~٨
�]�Bf���oU��
�A�
%�@ǰ���l�r��2p`^
cI<�B���W(w��8 ��V�)%$u�WT5�!zJ
_�6� �+
�_(lt�rH�
e�<p F���c����G����<��e�a�r��
KQ��)����"�z��~G)�O�!��@zU
�}ݰ���.y��
�:���ڨA��T6�
z�p����tg��\`
+g#/�
����H
�B5����]
eE*L��o�@�C�^T�i�<���N?"��1,���V�a
��;���V���>�&�f�|U7h�� 2}�`t����06
+c�P��2A J�
��$7�?OC�j!L�0lSA�G��~Du��AYgV\7��?��Q��tR��6�?�I�:�?���K���
9���4d0
�\`�Q�r�$T�OC�l6Vh��%<X��ȪV´��a������=}��NU�m���3�|�ۣ��m׾�m��Y���~2���h��;�ٗw�X&9�4��,�5+��bu�֦M�ZI(V�Q�0qQj塰D�>o
e���Lp��q��__�ӫ��ڣ���I7�?������k��� ~�"�-�ց�j�W�u��Dd� !���I�
2	h�����QP�(T�hI �
ǭ{{���̋��yy~��y����$�A��'b*�3��7Em��J��O%\�OŚx4C����<H�2
+�e����z��v��A;�{ೀ���M�yK��P�a��,���`�����Bхߠ>
�
b'iݑ/���f�
F}�KF-�%�:v2�2v�f�A�i
:Oǡs=�_H��`��0��Z�:�*�J?���,�m:�����	20%��	��q�qC����hm�ݨ6foT?�'j�݆��4�9u�	NU��<��*��А^�	_b`4���0�6YA���P��2���
�4���]f��2�e\
w|D�
x�����~j&��T�x�X���p%�=�6�s���@4�j�
�r�ѐǓ
+)�
[�`b�c�1�`	i�,�p�<��f;/���_����
+|
��A;�s���T�!5஘���I	7X���-	eI�$-�>�CX?�\I
j(c����O3 �4#7�6��N�0
�������Zd�{�߽\���m�l�׷��m#š�C�����.9
�!ƶ��˜LV
���]�Q[�j���6,�K
e�D�
=�<Àd0��
�x�9h��@Z�jK���f�{�p��?�����p�j������w˓�S?�+�<ڕ
�ߡ�c�S�X�8�Z-P�K�j~!�B��l��0{R2Y:��=,V�G��r��
=/�mDP\s`
z��[k	��sB�f���jv,��t^<{���	��j]��7�w�Z�u�@�E
מ��V�ET�$����x�b%R��ν)S ���$�"�B��˸D�5ŕ�hڷx��HG��z�,߾ோ;�^5�Y�ovY��cS�%�]7+Î�j�~�jrXU�P�P��l�,S�.)��Du2qrg�H�\&餢�a�H8�,�	DO�7"�@����@��*�,��X�S�����i��y���}�-�z.��h�
um����ǟѨ�1y�H�J%e+�f�%�
b~j���ږʑ�!K�餈tX�HF�y�1_d��
�9��i�9%F��Wa`�F�����
���N֏o��������U��6�>\w1ҧ�"6T���U
�"O�e��!�<3�2%Q�*�f<�%��Ii#b�|TȖ�	8)
GjD́dtm���-��
��,_������tm���k�Ń�]_t_w]������|�`e�DAmLpf�V�"���tn��K��R��%q��)�y�I㲇%dՈ�znLHK���
+B���@
+�6�X���� ֬��6�c�7W�G��0}wv�]�:�����֋��5-a�9��A�ZR���N�V��
+�T��#��$�J�đ%�"\�hrL������ǟ7��J#�rn<�
����[���% /sڥ�Y�-x�g
~��5��=��?�
X���t,���S~g���Z����x�B��/sI$�4IŎ�� gj/�C����5z
����*4 ��F.!g�CȚ0
���-���E�m�-x�l�ۀ��l@�З�}p��Ɓ}�U��7�ܭ�>�"��Ϳ
{��IŒ�81�k�5��R�ji`����M��K���	vX��QdbF�0
��
�v��<���[�_o�7l@���陣U��eE��m�z�]~?h��n��/�$�%8����v��C�2��]�$���ow/���4��WԀ�W��K���կh!�A�b�;, å`��
+t�Y��
k�2�4��c��
��G��f��M��c��ݬ?�Q
��
�}#ف!�����'Gz6⼆�p��q^�o	�7�}�����:���Y0y!��`���X��NK��g
j�,e�UL��9or^!�p]/?��4��$B���Q.X=�㴞�0&���+��A�m���;���2�]�>����0�����Gz�b
L��;Z
hk� 
�,A�}kPd���k-��[me�{V�g]�1f=��Ϝt������{j�x�&��{���9����:����j��o�|�}�{��׉ϾGt���~�;���߁��p���F :0����Y��c�>:̓|�ޖ��y9�ӡ����7F�y:�-p.����]gQM�y�?		q�
+.,*  �l!!!{	I	�7�k
�KGw�KU��#-�X+:�u��A
=z�L[��8���
+B|潚��|�w�]=������hi�l�*5{�.]0���wp3�G��N
RqU���"֘[�> a�s�bOn
���"��)����{��>�G�6bڸ��-G�x}�H�Y��|HC4Є�aX(AQ���<��f`u|�$$c_R"����mJ
n�Ƣ/-H�'�<�<IQ�ϒ��(jOEm���־�V�U�M+E(݂�	�|��L�C4S�,r�pa
+�@qH*��tA<ֆ���E�<"�\����q+:
}ѡ@��9�FQ_^$�W)j�m��HQ�`Re�
g�
�|2

��2�������$�S� �cA3-��q�Έ&�"Q��5
�uv���en .�EW�\��A�G��
�%w���A�}��
�(h��i0u��^BӸ�f#��B#l�X� fF@>>
���a���@TN������q�
���G�����q��2͓�
$���ߡ(��2�)*%�`�8�z��
	d
��E!�;
q��L�
.}6D� �3�e|��4�|����E
s262'aq�h��/Ȣh���f3 �2���*��� (\���GA�i,�; <�As
+��R�u�
��t�:3���A��Ld>��
1�y���

+��J
�'�� J�C�ʀ�ÄF�
��KTaP�-��!��D��X
K��/l��d���AV'ɺ��.�g� Ivg�|���[x�bd=�xM��4d'ѡ`1�IgB'��^
 �9��p��GC�I<�ے!ٟ
+��t�Nf at x&�v.�Y�wg!�>Y��� ���/��y���B�	����t�&xC�Ȁ.�	��&E ����
�[��D(��@����/8�n�Bܖ�>��B�E<�����C���!�ρ��
ُ��Qx�� /(#hP�y#o1&�����BPPCU
�ꓠ�4
ʝ
�� =�G��BH�#�3���
�����
KG����R�<U@�@	��U���x��@/�Ҡ���1�k�
?8�`׆��
����0�`A�!
��\��P4� o�@z>9�� �&'}HN�J1&Q��O�n�=�[}K�Aݝ
��<Ϡ#
4��>��(:�qLT�}��å
+A�1���(�I�y
�-|�v��{8�TgP^R�W���h�ʟk�4O��w��y�����w�:�?�.<C>�)��4�½a#*�}P�2��3�L
�}*��Q�������hA�d��$�?�ҵj���}��������j��z�o������W
��˦QӅ�Q�9�g0��"7���x�&�����Xś�U�@|��e渱jGʰs)w�t��u�V�+�ne������E�c8��8��ᑾ�x_����~������aK�y�r�p��f.l���=��tГ|�{]Ċ:�&N�'��ؐ=�ա#��1�+m�W�U��]����G�F���&�
K��_�
+n�[n��Z��
�d(�0��[mmEC�S�C�-���_���z�l/�y�A���o�"����ؔ�-�Y#���z�Y��[����|���%��+���p�2\+9T�cqK�?�gK:-��;,�J/Y_8�Z4�h�
8N�J����)
,9��y���L~#�d
+ȷ�.��ͱLlK�2�ȟ9�(
���v�����mp�o��]_�J�SM��k{A�s_�%�Q�{k�7%�γ�����������fG��pY����eM��>��'( ���d�ȾWOz4̣a[4;Y��p��؛=��n������[�m�
.ѕ�+�
+��ۗn)��z��t�AG����d�9׉�+��e�U�|Y�y�+׾ʾ�ݮ~�.��
��'0�
�FfQC��5��&2�
����%��?�1��A�d���袻�[�~���mC�������?�h9�|{ɉ���Ǫ�]�]mK�:j�\����]���E����tm_�W��l�y8�yƟ�8����H%C�E�S��f_˖�
��88��9v!�5d�l!�Ҵ���eFi���K4�L��������������^���XY�A�@�����3A���������Z��6]M����D�j+���.;�
��f�w��9�&G�7�%��ƞgTF�.�8�M�<�m^�?�7���O�g�g9��9v:>$��,
+�%t��IIl�b�樒���I^�֥N��{��:���+�v�x�o��f�:4�
�kR��e	i�"anH^lYXVt/#��\Ԉ 5�=/%z*"9z&,9j649j>$)j�%�=�֓0�{��"_��B�4{Y��S�.u�E�p���@����
+�k%���Y�5_qO�f���Kf|��
��P�w�� �.�F
+�&�B�W��Lx��YN\�
;.v�%
+�#<���{�+���U���ͤ���Hߴ�z�rL���N����M~�jK���
+�O�D�dg%2�22YI�„)�x����䇑��	~d�7*a:<:~�7ǎ.�D��DaD�r����xY~nS�ћj�ᮽ�&ʷ�m�Z��_��s��2����P��"�wZ~ܙ������� ����*�d
8�ᇧOq#Rg�y)�
~�
[����&<p�H�,
�'
+�2��Ui�!
�{T�a�n�ޮ#�;ڭ5�]�������T�8���<.���)Je�
+sC9�ᬼ&
3����#/8g:"$s&,4c6��6�K]`���)K�������W���[
+��(�ݾ��=��oZm����b���ܦӖ�
��	u�151���$�<��,+�)��W��[�.ܿx&, ��̙ce͇��/���
b�3��]^6��H�<����}_��v�.W�g����A7��;=���4��i��q�^��b7&��g2��J���؞u�C=��ٞ5s�Se�!~�
������LQ ��!^�0ZE��&<�A�t�A��6J�#�ʯM7޳�ɼ�?��)��[
K�
���������~���Z�m���m=L�ko]���'./1=���^�ˁ�J����T*�-xVG�mT�E���b��T�m&W=Փ*6V���L~����^t�����{!V�~���
��g_��[o��So��Co��}�۞�~
���M������'.���!0�
�
��2�v����
M�iP�R
+*GUIE����W��S�c�~�Gm�3����t�p���������P���P���P���P����qW���'����æ�OO��?�
Z?� �
������~W�Q�z��ck �����w���wec�7S澵�
2~R'��
��A
c�C�c_;�e�ڎ[
k��|}��ś7V��}�6}���C�hq��z�E�e<'2������
P��/h�5%
�&5��hQ�tٰ�cJ�	u�	M�	��'&��&8zv1��t���Cf�5FG�w�L
O��
M����&ߢ��gh)�Q"�u ]-��M����2��� qIb�4�ܥ���%C�e�e+�eGu�e�-���Y`�X~��0]��e����h�T�����������h`���2��AÃ�"]�U 7��w�w rR^�N��/��:��Y�������߇e\�L��
��Uł8Ža��1�j
ƨ-0YS��a��^l�ٍ��w��]���hz �ڈ�{ r
$� ��
��IQ�䋪dwԤ����
�G#)34�6A;Y#t������ۇ�J{0ZYS7l�BUm�U��.�m8�Ig7m��[E��
PIt�{ � 
 �=���e�דlQ�l�_P��.���ш����zh-��$w����Ii!KZ2���_

�n�Z9U�߀�
+*���2~Z'���D�w	� �k �/ 
+ at h��׀9ʑ�Q�t7��Q��u)�����t��mEs1
�SCg�*zҔ1@|
��+�PB�%�b��,�H�b��
�I~�������ݦlm�#H�(
z�]T"�in%oFm��7�
E	
)�hD�GS�Z��ʠ3u
zQ%�I�!_��Ib�q(F�خ����<
+� �V�渶(.��@ �B� 	dO	 �D%���AFT8�+x�vpk�:�V;��z�U{�J
F�`Y���M�&<|��������GtN
+���Q�b؁ʹ'�

�8	3�V�CX�|��#�⌀
.`�]�OW��+�N��~n5|�w<���>�����
�`��
��A�
O��_
B��'=����q /n&��y�d,@؆%`mY����`�Y���n`
u���g=�w���4�{�@��7|I:�H��5
�?BH�I �t`{R��"�n>�
|��bf�/s/m!��?�삐OV"x���F`�'���!�,ɹ�
�
0z}��OX	҂A�g,�7��{Ɇ_g"D.�ǃ
+�Q�v��Gl���Y�MtBt�"�s��+]��*W�5�Fh+
!���:��i__�#�;?=�G�+b������� ��`>���7���ҁO=��3�@$�fA���b��"�h%�[W�WG���mtp:���f�}6 aי���
D� �@+��5z��q$X?�r'j"D���u�"֕
+��
��S g8@>
J�d��HJ[Q�+��<���:��
D�3q,����]b��k��,d�;2�{���!���8?D�s3�듀���U�HXA��P��AK�
+}�,�N�&-�*��unH2� ��_�x+l�ƴ�Ew���Æ�؃Q7��Q�9/�9}���p�ŀw3W�q>�&��!��?��{���ԯ��Z{d�>@V�#֊A�rAr��UU�=,7�J�$6�^�Z�^%�s^�[��%���*�7�!�q�+�C��;Q� 8/���DN&A�-��d_Ɠ|Ň����-֑{��@
w.

�lٲ�t�[����R[����"�WQ�T�;�����KRg��I�O�����{�[��7�c��!� �q�e
�#�C1�$WLh�b-���
+#�G��4�g�	��_4��egy?Y���H_κ���s[�+▲%��������kҞ�+�o.J{�I�E�eW@ܩ����j$���>đ|)�֑�����6�UT��N
-g��7G8���/yZ�\�ИN��n}���%�7�,ܫ��Q����=��V�!�Jy2������7ң��v�[��V-��@�g�_B��idg�'=���������6�M%sz_e��_-�
~6K]n�t^7
+r��
���9戞�����;�O���?O9$��
�w&�8�|[ٮ�]ٖ2�h�[�ͩ㲦Է�ƴwI
�����dg��Q at zlZh�R��jw��Z��OkCf>����VE��u��v�$�ٳ!�}*�$�\KlWv��#�Ir8}��`Z�j�Mk귚��}���#ꆵ���VE}Ƹ|{�[)!yD�m��H�@6o�<l&}���
ԭ��m��ݣF��yN��$,�P��}U���.��
+*�w����W��d�S6g
�4e��6d\Kٙ٫��N��
Q�d���s����qYU�DH$�[G�
d�Υ�‘2V���r�G6O�]m�5�
n6�;^�.�{vW��6g�?�h䷙6
+[
++���e�y�U;
�jks?�լ����}���0�RiN�0��-�1�V�U��0.{$�m�J� �l޲�T͡
�p�<߽�����V��ԫ{���5�8���xt�hWf�lY��Wf6�nI�Y\#�-lTW�O�0v���Zn|�Z^0�3
i��M�qTU�?�(˷��y�����{)�L|2���8��k�
�݃�(7x�_h
�{�Y�����G�Ռ����F6Z
+����Ě�*ye�N�fSkʦ��Ԓ�4S���b�:S��T4�1��L��
�	� �a&�.&��������{�S�͠|�>�r�ǔ�m��ݭ�%��"���J�};���u����ʍb��Bf�\�.1�M),�,ո�LZ^ُĀ>Ӑ�X:�)(U�ƔLV���&�Bٜ�3(CU��沧�i�F�uh:�'ʿ��۝j�[W[Ģ��x��=rzSS
+�nW&��./fk�I�i�ViqU��X٬5X��9�S�Y��׺�-C�u���yTe�4�\�Ѫ��u�����MBXEA��� aIX�E at 0�qW
�z��Z�D�
+R�EAPAܵEܗ#n=3�v
+c�NUԞ
�,�g�g��|���~z��y�}?�ѐ�f���͂1=�ŧo�A���4ӵV+����ok2?�mW{$QRYk�+;��.�b����}���˶���S����"{qI�����yy%�����w��,��>{I�@��m�˶��\6��E�~����у*!ݮ3���Ft�mu�M原T�յh'l���y}�Oq���Oj�#
��Ǭ;�&a��)�*>K_X�?+w�᜜}m������d�}�=�@V^�`�O�2�w
�

Y���٧D����N���6��	u�1�ֳ.��3�&������s�Ւ"/j�T6慮;�T��nu��Ûf���=��,=������sӪo2/�
U���YeCs�w��F�Rև�D��"�_I�Uǧ
M
�����%S��,��\RU\�,=㰽C�Q�>�wݩy�'G,iY5-�yc\vSѬ�c{�SkR�N�o�
/
��Æ�/?R�>�*F���GRGC���o#zTFt���b=�����t�G_]ҡk�T�%�^
1��M�m�D����d+/d�/>�08����g6��;���>�'^�:1��U��>���>��f6#9�(�����T��Ѱ�臝Dw]������۽j/qTyÈ��M��{�\�]���ۑ�ފ�_q3�m��,��k
|��V��S�\�1�s�6��zڌ���1�יӣ� v�y�Ŵ#>�3�����D�]�!�h`�?���Utr�뮈���Ӗ����O}�����[�8�:���>��
����
��˼����&<ت�}�;h�����V����F��B
y�Cx�]DFvAu:�yD���gD7�
��#jnf���ʯ���Ӗ�"��kNkzż��r�� ��=Z���kCO�]JO�xV������cz>�F��ȵ=U��͊�t2�T��8��w(C��@u7�5�2��ω.��4
>��/�N�����͈V����/
y�/e���TF�Wfɯf�Ox�dחa3�/�N׷�!�o�c���.���܂��M
|{F����D��7��$�/!����5Z�!���Dul+Xvv�'��_�=7���-)�_�3�{p��~���j�Z��x�����Y4C���
+�UC�l��w��~�����d�5�
�IJ�A�lbY?
�h�GX�a��D��|K��#Q�;#J��Î7n:��Z(���3
+B�H�c?d��`��
��l.A��T
��VK\��_��0l��_�Lj*�P�5˿C��)�<�?�g�D(��5E@�SÝ
�� �j�
Q)f�1K�
+����X.���"[���$��X���
+Ϙ�
LG�b3Pr�h�-�O�rz���ż#�Q(L(���?&�|X
2��$��B�9A�9@��A˷A,�
+I|Kd��c��
kf�.0E���Bc����<����M����|=����H��U�
�`J�'W�
��›'�
��
+R�x�,���Q��
[9B6����'�2��q�c
��=/���J�Gp � P'D@�~�&P,6��:Kȋ��Yfσ��
���e
+�
��� �[�1<~b�8�c����!e���N��f5(�8��auhBPG	/�*����h"['�{�dxW���=��
 ocg_t�����N��:C���3pf���/F�a?�������/��C8�#"P��0!Bg��I5CH�xXAU8�v�/��_��
��=�߳�P|��]6"�3/ܠxnj0�|��r
+��;��A2BY
!�
"�8����@"�n��d3D�L@��I�l�E�v{�uDP�3�\�jv���
�KS������_�!	X�
+��@H
��+5<��B6��9��X��C�'���
+��+a
b2,1m�
�k� r�ỜV�К���K�i�����N�'Խ�#�מC��~
<WC�V����7>�E��pVCԿ�.��4���Y�EjE���( �"A��%���	��#@��#r�
A(�"H�M׫�X��VG+VW��Z�]�gߝ�/��g������|g���]�ך��$���i	��V�c�jD�0��!D�
+hzG�[���C�q
n�@=������_�\���r}A�s}F}���
+ns���[ x�
+ϫA�y9��*Φ9�|���f��9D�Y@��D�B(�
��K�����
���D��*�׌F�!�.��mz
<���vl��i�'�k�?~�1K��w���Zl�D�i&x�b�6S �����a�
[nb<���
$^�@`1��—�	��x!Js�C���)W�<G�nz�n��O���1�y�5�e�uz믬+[o�
z��|�}�	>?2a�4;N�a�1v���k
+�ZC狰o��R 
�#��
�
� ��~�H�{/px*ٽ�_�
+LJ�j�ٰb׻��ͷ�=o�:�~��y_#��!�|�\�q���w�|��
	��$|�Q>P�@
��)�w����u�s�W`���Qn2���#5h�����y��R��/��ף5n3Q�-߇�/�5��u�M
��
+�N	��:!�x\�$hB�6&�P(��APo8���.S��3�)mO��EH��d�����`�\�i�X��f6�iK��'E���d�
R��t�v�阽�'��;'�����
:>|$l*���������@�zg���!�U
4S��
� �V,�
�=v�����S^j�R�
+\�g
�[���ͨ�.�Ǭ=�"w9���9)�xOHK���U|%i�
�t�
D0���^�y�(�ewE�&:b�h�
�F	0$@��@�)��=�Į%�Ω�s�?A�

��şS~+[ov�l��Lq���ɥgr"
�2�.G�R<G��>�IZ�YEࡄ�c|;�+��#v�l���6Knsc�$�S�A
+�j)0��@7��b�-Ǯ���ȳC����c��S���S�f��z�3%쥓a�㹱.#��->�J
�;�,�3���*o&e=d}�0�6�ߐp]P���W%n�
8�r �r`�d�0���q�����-�=�-@���Ѝ}����M��>�*g./�.�q���<��J�ά
jkF�Q��Q����I>��L�'
꒮�O���+I�X�"�) �]��E��7�!�=*��n�F��g�f
����O���NT�
F*������=ERώ���\�>��fP陕�
}z;�D�/�*'D�ˡ��9a~�5i��(��akR�e
+�-D�}/�
+=˷D�u��z�|�o�.5-Bg�7�߿�f�6x�@
w�qo��]�GSI��:m�u~
�<��Y�S�Ѫ[xU�0'k,T�u!T��H�R}�����R�lu:�@�B��L
tOKA7*,Е�y8>�n�G߶a6޲�z�1hQo
ge�!̩�R�^[.��*K�ח�k�U�
M/+�(L�

U�~���P���^��^Z6��j`���0�p�X�W����w�T���
�h�u
:y�Mt�5��2��-��&bEK�h}]m�[UM�6]e�_Q�*P�+��K+���njQ�@�
ɵgCe��"y�;��B����� ;9S w!��
�!tC���}fh����@nj
���Ք��UO�����g���uUMbW]C�Vm��7ϐ���N�Աu����/�	��D��{�X�[~|p��L�[V�)���D��B���w��N���c=fh��

��r��Ͳ��������]�5��gm[�Gn˞�Y���ʆܠ��RzB�����N��Q��H�
~T���
+Ș
+�Ht@Ė��Z��Y���pـp�{
���C
|i�/C
C.�_���
�-���+��aN���n�݉[S���;���mŴݭՌ��V"��0G�<E
+�os�M�8����"�XQ��4�=�E�j9B�a����7j����O3�>�)j
s23
����^;B|�3$t�oL>,u��'{�
R�F�j�+E��^O?��dr�7��
N0����7]X!�@*Bw�]�A�d
Bc�
������_ݤ
��t��{�+<�sA��!�(�s�X亄#qΒѤ�Q�a�N��:�8�?�&l
+��C ����D�aI��)Te�Z=z�Sm�:�g\j�
�j�=
��.���Z7w����:V2ֱ. ��VD�
��ױ� ·߹���?��>����k��/���7�����ZT_ks�7�6�m����Dna-r�[�;~����c�x|���D_|J��������>�KˎEћ�ԂEG->�
���
v��8T)������N�в@]��n|�;)������T{s�%��35�q0Ͷ����m@���yW���
��5�;��d�d���&��Gy�S�-<
D���6z�<m
5��򩊐��ꈲ����Wζ7���V%�}0������֨�j��f�
�e|C�q�����H߱

�H��'D��j�d���V
&ZrR@�𢙝~4�
E��j~��"�t����K�\��������/��v.�dw��f�7D���Ǥ�k��r�{���
��<��sHL�I�SP�Ժ�h�����`S=�{lV
"Z�vЗ;x�~��&u���+�*���.���;ˣ�����]>�vc�_֍Yc�o [...]
8=�
Tx��V{����
.
�\�;vh�H5�mL¯����.��Cw����C
׏���ma3�>����^g�sX~����G��[B���Q(e>����*�
�
��M��C��ra�x�a��
�yFc��
xGa�w$xKp�'������
l`3�v�o�g�&_$*�B��M���#
|Ʉ@�CBZ((	*.�\,�\
�x��H���`� �X&c���	�ࠇW�!���fpU3�+�l�?����D�
"� �\"
�Hų:� �I�x
+C
=�q�?���/�8T��
��籎簝'�c�??g5��|����M����˾E��r�b�(xS�(b
+D��ZD��hĒT�	
�/�j!8���K�"f5S��dZ�m�$=m2]
+{�
+��-��HE�bfy"z���} ];ҏ|!��i�ү� ��9ꏨ��bD�2w�a1�x��d�]� � ��Ԡ���kyX
z� �LVG�'zB9�
q
���h(��
�F���|�?��b��2 ?ɜg��fn3�~_�r�
+B,��#dX�,�T
��<�I���i�
�b@o�����i^;oTo�"q�	���P#F¶ (wB�+�&�x0�
�U�&s/	�]�
ND�P��}�9�0�	<�T<�5<,��6�]�0N�a�h$�.�n�?�
��� h>�zG����P��A}����1�a�4{��W#��
�"�f2���ς�友����#;��� @v��
�Ȩ�A�K�H�?�0��q}�5�H����pvE��,��U���O��
ɯ)��cI
+�n �e at t�	1W͈�<�Y0*Y���-�C
S��ph(����	{�r��!{�Y����<�q������6G�O���g��Y�I-Gd��n[�����/�<��a��˂���;
�g3&�YHe�ϖrȗpp2.VO)��R��lO���s�h�pV���WC�K�rޑ���G�b���f��蟳�b��_�{��=�S���W���d
V��H<�U���6���@ud�������
e��D�*%��d*�=�'�
�U�x�x^h_�I�c���pM���+��c/���]�k��hoR��'��/%v��R��?T�١i�C{$��h�B�gX�8���$����^LUp�6�0�,
��yߜ��멚xm����F^,]}��*�\�{ʳ�?J<S�%鴳N��ح9�8�mu��
s��:��
04:a�]C�xvC_7rX�	lי@x1�0S�=�����J����>�1�Ҵʀ﫧���4O�m�bEۄ?+[+�M:V���Hi��P�v}��>��� [...]
+*2��2XP�H��TA�D �@(��J���ޔ ��A�B�6��=�������sf��κ�޽
������������{��b��
O��MbCx-�'���I?&s�>���XߎM�9#�s�d��kQ���5���n�B���N
y\8��	��
�<��;�
�?Q�B�+
y��#��p�!������u�N��x���ʶ��
[Ÿ�]
�X&w���g�������<%ݫ��:0�/<8S�6|����n�:9@틼H뉸A�x�h�|K�D~��F!ZS4����.y}
+
+���|&������t3�I�	��l}�#�fr+�Ȧ��0k�4�f,9�nD$s�&�
J�{�j<�b���1=�V���7�j�=`��~f����Y�G�j>�U�wQ1�����
�k	�����n����$o
<.������x:���rVȖQ�F�"���v�I��v$�5�
+Js���t0k�울	Ne�
NE�O
U�{�J�X��( Z� �0D]	
+� (��� ަ�i���0��E&p���J�ה�F�ߍ�yǷ
ʣl�2v�2��&%ݵI� �ť�3ɵ�D
K%�)^�U
+��
+�/�
+E�s
+��!�B�h`���/	�
{o.
+���c��2���{WT�K��E�V}���
9�{[�I
����
rU���:]M/�6�
%}
���_��7[��͖��7[�|�Ē�C��_�dD[	:����U����7��JH�u�!ܪ��5���*�5�L��� �Ne莖˜=j�С&�K�<�\�YH)ʨ�+d
��n���Qnz�
���1����!Y*b�RSv�1���0��x��� �{�J�.7�[�$��5���;	��ל���vU
���<�
u�����ST�b���t��<%7GEϒ׳dY����a�$�8�̯~�Lđd"�4
1�2D���� �
+��Xp�;O�눠kX�M�a�щԭ����q-�5ǷUWF�R���W�%
T�
�V�ze��R�kYE;')O�'̝��{���/!�s[����Y��)(��J����"���j&	p���k��
0hk�Z���1�i8f��
���
�.�Z�U��*+�{H˔Ԥ�j����
�<�����|���/_�|b
+.1��]���$�[�=��gp�{W#v�V���vYB{�>bc'ٸ���Q�9jU��#���'�!�@j��YR��.:S�%���񫚙'+|�*'8�8�|"*;R���%��S"�h5�[�K����L��q�����f`34�&��w3T�1L�z���-�#�6�-�.Y��(l���5+ȼ&�WdC#-������
n��
+V�a�#Fp
��V#ZX�+*_ͿE{�Wp�
��`����`��� �#6��ფ�!��l��y�� +�@�����N����{S
��s\»J�C:՞A�=���q��;�
��m��Aԣ͈zL�(Au�y�{�
oq�`w0������
@-vв�u������q��1����Q
��-q��/x�l#GN�

��*v:��s9��>�Վ��i�q�
\r��@�
 �o/"s;ٿ}5�2 �G ��p�s� 
g���N� k�dӻ	�iWR��X0�o3�9�j�U���m�W�;'2w
�(��������t
��ێLݒc��}
9�. �ra���
� �� 
ut
 4� ��|�$@�MH�3��v�;b�=IQ�>�as����7
��[
�M��Φ[sf
+��fjv�g:��`K��ږ:�d�u��
��Ȏ���1��{\E�+�W�w��A'�@?@ίXΟH�	 �m ��!��f[���B��ਞ��_l쫏^��'�1�)i���}�g��6K������y+w��Vn������|�8x�8�]�M�����
h��_ο����-��3�'����p����C�"�Hv���Y(��9���y�ѡ�Y&�/J�9�hZ��r����u3�W/�
����~���,�=A��}�ny���;P��
��g �D. ~��gЗL�{�(�m��#��� ��a��
!:�
5px�7�?��ՙ���Sa�20� �

��f`F��P��"JQ,X"q%��Uc	jt�
E��=��.Y{�u���ƵG"%(
+��!��
���;�O��}�}�'�~�$�~���0Ofh����#��v^��R��+��u��BW
e{;�
��F��;�m����_ x�(�6Q�}�اD��
��֍"�j)�]�5GPps�`|�(|H�?��-"���"��)bϏ߈5X/v�~�nH�>6J�-�߳�*�
.�C4��'����D�����D�
�8?��(

+
+��
А
:��H>0Z�ArCO�Y�
+y�JL�X R`��
Ev�%�����,�M4�����/q�-�T�{�c���DA�D �3
8Ӆ<�Ajt"�����@4�э$H%��ΊB+g�l��jٛ������?�-�Q
+�=�����9ߧ�ȓkpg.\�3���D�\�
�$�7��1#
g1,�e�|�/A�b|���}�~� �̂"F���M�414�b�C=A�l[�*�p�ªdp�Ͼg?Ƞ�"���cM
mdp�k7��
�a߁!\@�Y@���][ELA�,�o1:
���T�4V.�f)��A���CS��As���=��5�V;x�O�LO(��?��o
+
,�*�l!$F��
bf��/��o��Il�
�ErhW��v�n�����gGОc7�3����G
�:([tph�‘W���
!�s-FQ��^�w�M�'b�3�͓ x��	2��a�o�2�_��MJv(X��#0�bW
ax��bhpl6�wh2��w#�
P1��F��
��o�
���/ ���^����"�u��Ce���#|�=�s0/r�i�#L�l�S��ʹ�t����s��_�&�}���
�w�/�p�3���������
���
!*�s}t�$�K�z��x�g�[w1�˗!v�]kt��C���:�szk[���m��m��k��W�j�k���zV]g�I��V������
�[������M��t��:���\BO���$ 5J��b�L���+oJ,��I�CC�)�/��V�vY��"a��y�:�g	[ܟ��v
��a�i�	?z�Mx����}-
>�㡽�.�Cw&��]�mqm{w'�♯����E��^d��֬QSzɫ�ly]j��y�h�'��P=�9]}�G����K4w�V{�J��u#qg���|�&
�x��B�S��F�ӉПHD�1�v(	��C�
�jx�m�<oe������Rk�Qx�)���*~�/]� {��n�0����k�'{\N���b�N�S���K�НI��:�J�����
��s��W����Ǫ�
�m
+��S;B�!�󳔄
^�|j,�Qm~��xp���d鏟�W^�)T��?��L�	^����
�3Gw4s��&se��J����A������}"���C����v�����󓛁��ݐ���L���
����^;� ��Б����n�=*���ő•�I�e)O��
4\S3p\�C�u�s������[
����Н�7mϮ2o�Sc���ec�/�����a����}a^����
���Y��)},�QC����P�ӑNt�ċ.�2
gK�JO�譬��z`H���p�OU�_�w��-oV�߄m�]aސSiY��#�b���g��<�-�i�.�A��\D.�EĢ\�/�������+�
Tϳƃ1�#�[cty�;�-
����

���;��K��|�
�G�n)
��4�K����!k
�6��_lY9hM��-�%y���;�0�^̂�7���6o0����`D�

K{���~�y�1ϝw�
+t�TJ���ѹ	�t��(
.���
�S����˶�y��F��,�_3bBЪaSC��_2da䢢�����
w��-87��fܬ�W�_!zfl�:��Ӌ�
2��Q�P�ux��9��/��/etr���L�����]�췖e�6��լ--�]�Y�~��σ����d�e��yQs�/�<kXe���o��Z\?��j�������ˢ�
��EM)Fd{�#�@��p��>#�TFtf��NL�P�ɮ��+����( �}߆}f���DTDDY�aVePY�M�*�X�&F����M0.5�9�Ѵ1i�h���Ks����������޼[ą3r
�{�����
��ʏ2h��nڒ�۪1Sb_��ǯ���*Ҫ=�R�D�n���a_Y�9�����s����MF���""�,�MB��0R�߯i��P���Q�t	
&�V�X�)
�������w���j+�\ټw�I�l�徼T�ʜl~Yv��<��s��Q��q�;Gr�/+}�_�~�?#��_���
	��I�Q(MC��0
+`~'��4�T�?P�L)�<� �j0Rm�|Vw�ﲶ�ns�z�����5�;-�
�mK
+2��d��<�gnn�(3��[�=蛚u�?%k�?9�_r��>)�(N�BQj&
+S�(Xla���ᮔ�^����;���4�>#�80Pk =u�L{��Ӽ/xE}�Z��h�Bg./�c��$�1�8�%���#�p�0��U�$��M���K�]�O�=��O>�d(N�GQb.
+w�`1�J��D}���P:��} 'i�h`A�=�h�cZU��4���u��
�kbMeՉV9�i�Ҋ
~���-��F�X��_r�'N>�+��+D����8�E;
+Q�� ��B��`��4ԃs5ԃz�{����vH�[���C
��je-�ZEM�+�c���-$u)�)�Y����$�Tz�U7	�U�xm�
�����]��;��xs�6��pk
+bJ�s��� �S�
5��P�H3@/��*��Ʌ�.3��re�v�.+���k_��ٶ�0��Ӥ�{,w�d��h�9�
(w���辩�K�pB���r_�����:l�E����X��
z.��,^.�����V�ô6� T������~G���K5��=���Z)G��v����M�w�[n�̳�>\��Q缮��kD��{x���������v;��a�=��"�z�NϤB�
4�M C���	�r�f �h�
�a]�
��';m$��gx�F�����[�b��F��l
�6_7 ����o����7䴺���)�����A�U�輺���ɡ�QA5h 8A����z�v��V�,��Ns!e��L83	��������G����x*Ng��
���L�бB㐱�U�m�
�
+
���kp��o��o���ȱ�>^����A��wP~�1�?O �H��1Ł�i=�����3
L�L {��յ3��OǨ��ޥ�zZ���t�n�T����!��AC����ӷy���F�sh"�D3���\p-�Ds8I�?D�������M ���y`�%6�U"�� l�BgE�
b���� e�J�2��L^��U++��fMOe?���Y-�k7��g�]����e�w��+���b��
 G)���F����)����O+a�5�X�s\�3� �)�ς@x+�܊f<ndz�nK�.w�T�w�U��
Qu�����
����
��P�v5l>�֟��b�t�����R�k(��j/���˔?
�'��O D�T��
up~�
������	

����`�$
l�F����򙔱xV�2���e������ы�,��?�xO��{�*��Pu�A�o����_t��?��_��#��?�����%��7j`��X~�����|0�^��@0��WA��Nx絔��A�h�ie�ޞ`�og�?���hΓ�����|9�g|H�t��7 B� |����{`���'�
�
zh�%h�p�
4�40�p
p�X%�B0H��1B��o	��F��ʗR��Q>�=���
��X=�Q��[�L���Ʌ�Cy+)��hE�ˉH 	#[�!� `����|E~\BA�Y��p�����S� 8R��B�7��(� ˉ
+r�o�	��}bL�	�x�`B/Hb� �͇C�<��h�Ơ�3���̕A#�z�
j��A�M,�H`�Z&)&5��t�>2L��$����U�)}~D^��
����K�K��0h�Ƞ
��]�̝ACo�
�
�l`��r�I�$���
!��	2A��%r�|I�N���e�J�����vv
:�2hO������Z1�[�•�X���B�\RJj٨�B:	�Bw����,��\'���u}GEugq �S
F�A�"3� �u

+D�PAd�2��30�
 ���"�,��BK�5�ZWc��M�=�hbY�-��b'���s���u߻����}9(z�y'���V���&�q_� ������N�q%]e�v�^Hi
���h�d�e-r8hQ�A�:���'��h��E��� "���[|�}mq��B���L���b�?�ǖ( z�Ũ�����-�,����rw���(
e�}
�
��o��w��?$kxo%
�7���W�
������C���gҋ�_�w�?�=�߷{'�+E�
;
��oKQ�ܒ��(�[�'e8s21�E�3�f�N�Px�pz]�8o���W.Z�
���?����Y�̬�
�Y�����	
0��/��2���]�7\�
+�g����'\e��
+�/�����p�@w��$@/#@oZ�P/��^���z���~>+���]�}�A&����ݙ�;����U�'E��b��;��w�>��3�_�q������)�0�J�Ƨ(:�@��3��8]��z~@��I�w�}҆��<4� {����~ެ>��;��ܛs����\�Z&��U�ٳ��g��7
'���d�Y�>��=��x�����5�qχ&G<ޚ~�f�<p� ���h�
�=��#�)�ͥ�D�l/����|'�3ϝ�� �����K�����~����?�&��3:�����z���������3���ȔA���}������E�>���#z}�b��!����\  
�C
�a�	�Zd�C���_��E
y���
N68�=qh~��y&sL���?�ݢ?`�xO�n�>�A�]�g�w�d�-�Mw N��6]���V�@�A �`�Wal����-� ��pM9�G2p:ҋ},b>H�.��p ,ݨ?$���E��v/�6߹��r{�Z���6�A��[��K:��K7]������`��'�Q���k�Ա�O��/&���f~�e��%<��疈�JGT�؃q�����=ѱ�����{#4�=����]��7���nm���tۯ��6�lM�%YK�#٪�w͡hO��P���c��8� O� 7c���q>�_'��d�$8�,��d�_��۝�P�=>Ұ;.AԵ$�lSl�EGt�����m�M�ֈ6�e��Y�˩1��sC�9�z��:��N�(#5hW
�ұ0���
e���7� gRYp"�
�S'�g6�7c{g�7�'u�pKJ��Fu��=1Ŭ-![ܪ�Y�ĕ�6/Yn�"�UV�ѩ6�����̥2�+yy�]���7Li [...]
+���Íx�Ae

��� � �Z!��3��|gVg�lnG��^[΢	���D�Y	f
i�t�MuZ��<�ʾ$�ɱH��ѩ���I���I'ܴI7�r�/�Z52ĉȴI�0. x82���L�cT�e�} �
+�AO�)t�X
���6���ei��<�q}n�YuN��"[c]�)�g��d48楯erҺ䚴O�2Ӿ�����[F�
yF2�)3

3SQF
Fa텑��
+p:�z@��Q��V́�t�ڱ�J���q���
�
+U�bM˖&Y�gZ���m��ڜzGMv+���,O��vK�
���|��<wUk�%Y���Y蘒�������m��:��ȣ
P��R�
�9HG�$h�����i���9�����e��JK�'-K0_Z�n�-̝���e��R��8��7��v������grU
2�\t��E�-�r��td/$Q��8��
P�>ʟ��P�j�=�����V��ٵu���ZaI�BC]U�(�Re�S�*�,˶I+-��K�
�5;�w01E���]#�.���Bd�S�
c
+PF
F�
�9P���g?���\N� ��ay��4;�ʛfq��+�
�
�F�����uj���,�Ě��q��Ҙ�FYd��NʊmLXŠKh�����LX9:�����R�����X�U ��[<^H����}� ݍ �� ��kW
���J�8�
+�(8��������g�����6NZ�`�jN��m���z���N� ��?f`��af 
n�MP��EES�����k�ٺ��n�]6�e��y���Z(�*�X�
+��)J��Y��Y����ػ�ہΞ���;0
��}����'�MZ�B��׋�ǽ�2��-�c��$�)nJ�jG���%��W�?ō�'��=�v��pU��B`�������J��56<�ցYki3�d�
^S`����gꪉ~E+��߷bz�	+


�|NX��c�.��ts�ȥձK��,i�)X,1�$f�=bao�y-~�
�������K�U�^����
�)5cFi(
ޔ��mJצ���JG��x�i����qoM�nx$p̆��;��
.X�$lhIix^IUDnIcD�ܵ��Z"sVId��ގ�5���^���u+�7�r�~v�'�l3`Jy �*�qE��X���[Q�����sl�$���S}Fn�a
��)k�ֹ9[����V�̭�����3ʮ؇�-��%$}������0�=�5P�����-g�ť����ʁi\�&TwW�QX
�����J�(W���
wݣ�wy�
2d�f3]/����ӪK�R\;-�]�
��lI���6h�
�)�wH��p�8���_�����\ɞ�
:��P��;`�
y�V���C��Nd����Q7F�׍���j)�3u�����{&կ�r�o7$
<dH���_{�ؿF|���o�>1�T�(c��1�f`�6�ɝ��.`2Wû ù�f6h��X�t$
�G��<�gS
��F�cw�A�
�����UQ�˴��2-��Z-���~�ˣ�Q��;"���ij�r�o`�R���?����
PT���Y�@Ƈ��& �c
�O�!g�|&�_$#�%��;`?;}�MC��O"���h-���ݰ}�
���`;+��BgD�i#�3~��n`k/b݅
��F ��I�'��3@�9=.�a� k[,m�03��L�v����^�N���O�й ^�6Am?t��uނvU����*�3N5���?�ev
�SO 	��Hf�l�o|oa�������1:w4�;p��P���A����
��7�� �����-`�s̟ɹ���2;�ك?e�[��V��`�'`�
� �x@�7B�d��Nq�L9ćᇡ�
�7\�.,P.���W/��{���r����g��̎� 
X� >
̽��o����,v�$'e�h�B| �C��G����{"$(��C�� �i���J0�~O��
z��J��cl�r����}j�O�]�[��B�
	��9� �<�9���Sb(T�/�yf(ў���:-��T�D�A�����@'��/R'����y�N�[ߛ�3?�;nD$�_��}�š��<Z��$%�?(1΢�i>-&�¸��P9U�^��x��<~4^��.�0���#�;ߟi�%�G��\�������
��)P���a�I���������6R��e١���Ԫ�֏�
k�괶��M��M�6Ѯ�����Ab���N} ���:��F���9�Ur����ꧠǕ����iE�`_����P��K�u�f�T��
��:��k�A��+��i_��
!7��!�q6Tt-����?�� 	A�$��b@�k�"q $>�����ǫ�
P�
�����Z��%���vٱD��X�}�ب]t�i
;�֨�ڹ����S���+
�D��7Lj��:#�#ݢ{���-����T3$���8��8t%����|t$�ˉ��W�ӵ
��k��i-Η=>w��qڹ\w�Y���s��s�����s�y6%6{6&]�jH���`���T�$>5���@����| �q��4A�y��@�+#
Wӝ�t[Z�F⋴��d�ډ��
�S��5���?���gc�b��)+

)���yL�e�K�g�Mi4
Hm5�M��'U�vSU�X*i�I�X��gk�<OH�	]�~h��/�
���d|�������Ɯ�

�?�?x�c^u��j�_2��z��׬%>{�����YjveV����c��<dݕ��u{�U۶,�/˒�w��m��
��#��v��( �
����
_���aAh*H������QZ͈	�}S=�
>��5�	Sհ�|w
��c����e����my���U��W�o��5��+
�o"�	�Jb�Z����E�(� ��K�!@��k�� ��@ E�(��޸�j��u�nk�n����۱��vv���t����;�ad?����=s��9�s
�����߰NJbMH	k��)	^
ك{�x

�
����s%��'	
�0!n%��&�,%�^JR�/�5���|Ϲ�R����3���q��S�����։ة����PG�2{4�!�x�W�!�s΀���e$	��k�g�����|�¾����Ct�� +J\V卵WI��*9}V��8���=�0�M�TL$[�ƒۘ�I=!��C�C����Y�=�2�/�.�H�����]r³�	זDظ������T�
�u�Y�c繥�ΕA��t_����f�MM�tf<�T���Dz��#��DmZLU
<�lb�u��R�ܞT�K1#�T�
֡�)�*�[SkI%��p�^��u�
^oOq���
�<�╻���l/Xв�n38u�ԓ����c8;�{0K�o��e��=�[��s8�Ϛ6,hUO	���D
���z�������4�
�E8��ᷘ�?d`�A���{.�>v��<��g�T�F�0즎�Ї��yj�^]�w�!�S[�lϩ	m�n�6gu�4Caͤ�&s>�*�
Ie�#�Y�BCDH�YC��B� �>�9��Ή�װ{^.p!g
�0e
��b	�GP���
5&0z
+�ޝ�,��}`k~	�I_Z��ȭ�u�s��f털\;')�Y��h?�P��[x���J�$
 |���s�×j�ߢ�7
�A	��R�7��
+��`�L��R�ʢܺKe�M
+���
��"]`��Ȭ3V�V�s͆v~Y�QaI���H?+)�/n(��|+)�1"4� �#�U��cpу���.��
�{�F�������[���U���QyнŜ��X��[W�]_]j6��B�Jj9%�m|cq��P4*��Ht�+r��ޠ5~#���0��t������`���a�B�	8Y0�O0{�
��Ͳ��ny��\���V�QS���
+(��2U�XE�j�����/��-唞ה^�d�ޗd�����3MD�1A���J^�W%fA��=X��
��4��������B��y#45�Z��ѫ�
�ޥ��~E��@C]S_kͭi�f����!az�S��z;\Yu�:\Y��HUI�Tf"P�	_]Ax�<K���
����	sЊ3hA}�����`�o�ڎ
���(�2k�{�5ų�-�'�U�k)
�i.gi�,�����q@��0)Li8/Jn�-J�&J��G�l!��:�O�%��<�9<�3��38߈g�
+0�ЏX��F��� ��	�򞭔��7���z~����Rz�ز|5��靦 ��ZVj����n�&���Ƿ�q֛a2�Yۿ�q���Bx�̈́���XEna���̣��
s�
Ѓ4
0����El(
x�(�Ѵ�8zf���֟ᥴ�|G����V&�0�z{C���cz�9�{��H{�đ�<�H�Gj#��6�������_��]@��v����v`-�
��}4o�ZGd;Ġ��c����!����P��
�
�o�h�� �HO`�#8jx��g�:�y�_��AŠ
@������"f`
��=@���]� П H?p��
�N�Lo���H��K���Qe�
+ځ�
���<�h��#�i�t�|^w��������|�1���Γd��	d���:f��}�dž�,� ��T�D���H��&{���C̼ �
�a��n�vI!ʕ@��RR�pe�v��n�\��
��u�]C�[]3�W\�
[\_0����s�
��4K�7�%>k���C���?4
+`C�z'f�,@�
��w 
+;�kW� �j0�\Ž�-���nؾ$�mˉ�uY
[�u�M�e��W��/�ة��)Z���x�M���*�
��u���]x��p�N�A�{&q38��;���p;�@�5��7h~�D��@t[ �ۛ �N�D�n���^>p�W��
B�Cȃ��z�`���u�P��	�y���2��cc }8�ܻy3��i����t�u�`�
 ���� �cOx �������>����>���� ޏ�;x}~<?�
_|����^PQ]i
��o�

0�P,�$�51q�T�
+"* �D�����(Į
�ŵ�`Y#Q��	QcC�

֛�"9��s�p~��;̼�~߽�3�Hu1~
�}�|8sȼ{�¾g��
���O �Ӏ�
`}^�oZ�/頺���P\�t�-@n�*���
w�����j
g&p�!pS��|ƟT�d�'���3�! ���1��$�vp� 䋀�@q
�-5ِ�m�f�
��

�Gܔ<f;�p�{—��
��xv
+��	�������w�N��֟�5���'sv���/3�k��cߦ�T���"-�mK�@MC����
��n�*�)\��DZD
؂I�{��OY�����2�p�mfl�_ w��t��W��q�3���!�!�DX�
�&ƒZ7�"�^;��
\0���O�[/
�|�����Dݨ
���M�i6-�%���Q)�2:N��.����sbl'�q
ݙ�'�ۄ�H�ԛR��)4���"ZNŴ���^��Q�F^�^���oI}��.��҈%l�z�*������!�F4%Q:e�����E���b��+��v�w
�9�'��c�G��CzP��zD#�n�
�f�0kۡc-d���a�B�6����k���7�\�R��
u!j���L]�j�F<Vo�CU���;�J�>l�Fຕ@��
�Cq�
 �� \��֥)��������b�J��r:�ɣP-g�<
�<ܗ��\�;�Jܖ�ᦼU��p��8��^�E�'��	霽��:�'�8����^vMm <er�f-7g{��ܹ���������2d��0����j��ˆ|\2,�E�2�7��¸�{p��G�r�"
w}"��	�:�&,���7�B4SCx����ހ�y���w�ͨj��Mb�[�$�Ꞇs�#��8����L��\�G�T�J:�Aq�s���a�������[��z���%T�i��P���#|���
+�O�h�k+-^���#o#n4�¥f��K�`��[7��C�w���P�O��O���g��~�<�}>�-��,U��)Q��٬���j��i�f���M~/������-߿-4�˩ŸS
��۟*p���-lQ�犓�|P�: �Ma(����U��OU��ϰ�f�Rn1MPm6MW��f�7�
+l0�Ԭ7m�\k�eYb����׭V��h��
�%���? Z+j�s�������l�g�X��gz
j��~���:J[�EJ��,6PnLW�
�.	�)�l�ڜk��\�]n^b�Լ�f�y�\d��\h�,�7W��9��� aS����s�\
Nq�+��H�
+e�u��-
?�?;���w
+W�t��X�1Q��cJ�e
�j�tȴ*
+��O�Y4K�Th;7h�.?��~vP�}^P�}n�#���~z�Б]N-�:�3.m��K����vʺ {:+�=TFiXC��Eq�YZ�X
�,
+�Sv�fU6�z���Y_L��.4W�:�~F�rǜ�
��!{����v�z�iB�Џ�dO�����%���⹷����7u�bM7g��j����H��wP,��,��ΏL��떢��u�͌��ls�d�v�q������);|�a\�N�����w�Yo
_G=9���
7Y��#Y.�{{3~,���K�`E=����^&��W{��^�����Vo��c�vJ�4yR�p�	����}��ب<���Bcfd����m.#"�]�E�tɈzëғ�H�P�)�`e8p���v$p��������(����x���J�����O�2'>R=9�����$���A���_ٍ���Cf�	��=s
�c�;��eH��~��kZL�tN�r"}z�p���p�p���c�-<w���L�x��h��I�1����k����I91��:�oO˱�	ڬ�d9�ϗv#��tȈ�F?4n�!=��yp�
+�A��nɱ���^�.c��
ɱBO�u
�
��;��y�f��d�8X2��y?���܁n�I����6���`�q��Y�5��kG��/g�K��4�!=i�>��4CJb���e��6�%%
p�p�j\�&#���������}�������YI
�%���)֘�ꌉ��!;�_3�����T#R�4�b��
J�IOd���e
���7	1P���,,.��V�:,��U��H�A@��*��`-�k1X�b]Q��QD���#U�ѱ���rԊ��:��k+ڙs���@��w�����Ť��,��F/(�GFW�ύ��8;j�SxT��QW�c��(a>_�#�

����}x�k�����+��$�|dm���8��IZ�%BN�(If��4-y�YrR�"!1�ba�\eLB�Ut|�M�,�9���"V��6:���p
�kv
+���<r���X��������`�A�'�uH������^4?U��t[df8#=�U��1F���c�(}Z���`�����h՜�눔Ś��BmH����IF�I�
��
�']p����> A�>0^舶�K��
g�ų��f��]�
��
޹�>-�)9���;
�r=$���eѹ~�Ȝ�9�aّʰ����4���<M����W��3��2�O����/���/M触	��T��Ov=��~le�s�۲�s�r����)y@|�
+q�XP8QE�$󊼤��&��
��g�(�
�X��(�S���rm��j&/Y��]R��YrH�����{:�\���v>�$Khz��:��
�w=}�lIV��|���(f�Yb����.sFx�
��<%!e�3˦�˂��K���Q~�-'-�Vy�[M(Yc�^I��W��ؒS����ڎ]*l��H!)6=
g�;ؖm^�!�I.�I�����}*$��BP�#�� `�h���K��W�j�lҪP3��y�U
�UeXxUY���RzVnQyT�W�W���+��>j�����
+a�^��c�{�s��2�|s@�鎭 �W����U[`�
|7�q8���P3
�k�H��̐��	���Y �I���{�6�+�1n2w5�5w1���l�m��xk�:�VX�X�\s;�}F�Z:K+��* ���<����m�o�Ԫ�Y��G]�׏�[��\?�M�x�,i�+q1�K�6�H��VȆ�jdCL���N���2T+䃶�^7�τ��=�{
��tW�
+�M� Dofm������]2
kP�O

�3 C����
�w��ǀ�P�o��sc�6.C�}�$N��K
��E���%q��\�[H
v	����l�#�z
���,z�a���
�˞�u?0� ��
�&5�M:�����0h��`�<
�c��=F�`Ӓ�rX��B�z�\�U�3X
�>"$d3��8�2�;�s��
`�. ��������00�(лв]�:!�e�
+mv0o�
E�2
+�N����?���!k���� �vN�}'��5����) i{M�'܋����H�Dr�A����.�.�����iT
�����5/
Z�\���/�_\Jy��C�2�h/��`��pB�/�������뭐yO���3�3��O��W���:赦��;���X�_�*��8�kx!v�7\�[c�ی���@77�����,�]N����)��K�Ogͣp4��x0m�ځ���=�jz/��ȏ��I~"�r��~���T<�<<�E�W
��y 
~
+n:��-Z�U�����C@(�4�nO�y�i��<s	P�+��p�%���<!��_
OEl	s"�6,�q�q� U/�`�ŷ�V�o��!,�!d|
��EƑi�CRɇ����5�H6�I��#�89C��"�����?�aC�5{\UoE_�f AƐ)$��'�$��2RI֓��s��k��8����Ё�,�&�1�x���n��g.z�̅;�&�d6�#i���9�9�J�`5=��l��������
��3��
|�n�6?y��y�
�:-�а&Ē�(X�ȗ��'�H���e�U@�rz��YK���-�l�i`q���q�������
+G���#�֌C����cŚ(�CXxB���3�
<���=i,����)�A��?��p]V�k���*�W��p�l'.�}���V��w�L�.t�?�?�h�8�|��kD_��X2�=������/�#q_=ݪ���
�������eU.�����T+qV��UFt���z;:��qR݂6�N�����l��E#Ь����%����
��Z8��;���	?i���;��z�& g��ѩ]�]N�2�>�/�qC��.נ(�+����+��7&��F���,(,ȲܖEv�v���rY�˂+

"��.!xC�E��h�&Fmc��6�If:i:MS�M[�vڴ}z
���<�_��9��y�>|e
>X6�����e��7���pm��ŕO�K���\@��$�
d
��X�q��u,x�F�V��e���
+��*��U-�]��)�[kk�ݵMp=��{�������aj1d��r��r��r��_w�~k�o�7C��fC	�$r"�����C�kK��Gm�o
�����Wk�q�Kp/4
n���R�Z�
.G��R��Z�pP���9E;}V�C�)��g~֬�(�b�}Bq�}Lq�=���=�WΑH�H���둄�CH���W��
�ׇ�G1 �7r�}��G���͛`!:�)3aNi��(-�)��>����)w�f�
�i�^�Q�g2z�{8�8w<z�7���U~�Q~�?�_���\��_����6�|f~�F�dܳ�pύ��J

�V���8����	i0�`����dB�pB
{\��S�r��n�!��7
���O
��	�
+}�	�T�����{TDгD �ق�@
zN
�?
����1��D�NzN$��%L�$S)Y�XJ>}Hca
kl�!M
w0��7���ߟ�WЧ>(�U	�Qϊ�귙.�=�C�Ӟ�OQ[2	�$��<�%�b޿�{?�@ω��l��sc9�ʅ�49Lføv3�3���
�@fk����זs��5�ތF~OF����-�L�/jO���J[���>���})iN��ؕND�"BW�O��_��z�p}�b
�0��L
+&tRݱ���p@G��t�>�ի/`wg[�]�6^�g@ێ��֬�@wV?Ӓ��t3�Fݼ�^wK���ZV��w�#��ơ#"$�9�p��
�7 \G߷`�=� `
+c���i`�@�J0�C�1��)�Q��0��󊸞<+ߝ[В��r�E
9{�NÈ�a���ޒWޕ�
��m�'2��H1���D�>���O1w� W��9K ����(D}�7��
+�A�)
����i�N��3X�&{���m.,�5V�4�
+ZE5�=��!��8)������Ae�_�������H�S�GD����瘃[x��q�z���~\�__� z�_�Βh�l�V���iI�]�lvcI>�Yb�9Jl5�N���-�,�+̃�R�aY��LP��Z���I���Xn6i��H������;����
�\��>�b�<���aN��<�]&O�p[#�ٺ�j�jhg�����TW���ր�r����ETZ�)..
��-�Bˬ<�r%�h����h!��"A��b��3��:���_C�y���~
ρJ��Xڬ,pۤ�l�4V���:�rT'��UZ��*�m�����r��V-(�5�+w3��$F�,�zRn�.��֟"��+���	�=�g|�}w뿈�s��wj ���� mO
���
8
+��n=T;���L���4��.�m�+�9,<��
PP� ̫��rj���k�����2]�%���'ȟd�*"ɬ"�L;atv"�ٖx�}wW΋�u�
��D�Q�9 at Z�z�W������
+�rW�����6�t�BW
;�����d�����B]�
��aX��0#ImX��4ܗj��(IqqJ
aR�(���w�1�}
���	���
i�o{
�
7,�dP��*�=�P艁|�v*ϓA�x�,}k!;�����Z�������+Ը���if��<���$�1�-�%6Q��nF�w1��s�?�FߋV�q#������:(0v2�۵
r����n�
��խ�2�ut��H�yK�����6q�wu�U]��&ۺ�	c��c;�����0��cۈ`��7���γ
�q��Gv#M� ���0�����/��WC�/
R|J��A=�N%
�D��V�*Xq>';���(}��-�ü��gyQ�ۼ���xQ}��z	?j��X�x�c^��.�=�.�v�v)j��d�Ґ0�@��+w(�
R�V,��� Ư���\�2ZBm��6���^V��������
{��������N�r�1糨{�{�i'҈ߕ>�j�@k��� �<ɃȣP
]S!>	���k�jX?���7��vy at E}ea��Op�}P,�	����
+(�q]����ՠƂ��ADET,�NPX�
�h
{,G$1�qu]{�X�ۏ��������{����
�@�x�g��y��gΑڛ�%_�>�`�Q2l�]f(2C����/�)���멷4�y�����赌A.��| b3��8~�Z��9�P�	�rx�ë�;<+"�Q1�ír\�\��p�4é��U�p,�2!9����V�3y����LYǻH�?���R�O	VF�*�gS�݀c��j���u#
`WD�ak���26�1�Z�CcI�ڲ*K%���\�@]+��!��=��b
��ԝC݉�
Eݸr��6�����ԯ��_��Ƞ��AV� ��h�6#G��
�de��Y�PV:��
���S�^���
�
�jO-�Pwm���.�߃�k=�?�
���CIl�3�Yw�8ߕ��F6eل\d�i�kbR5љ�
&��+"�CV!��V`z�m��DQ7��� +�|
�;
��R����@.�
Wtl��l�]��>�
7� �L�b��|�I�I}g'�&w!��h!�y6��
�N�(�F{;Q׋��� ]# �D��u�Or��Lh�v�/��C��?�[7����l��O���
��1yI#_ҐW���������h� �
v<x����ռ�mּE����xD����3��=��桍�i<���,���`��!Pq��k�6@���k�A�?�	$��#�dYM6�RDJ�vRK�!��u�/��+~��xI��!쨭�Pp�W����;H����32�$�t��䐍du�r�
+��.����2i��.
�'��W��G�����
�ƙ�5���H?2�|B>�N"u��9R�kC��:k��%�2S��Vo���>�~���C����G��7�A8RW���m!�
+����Gz�j���XjMf|�tX@�Tjd�������s�"�@#�
�~��I�
�p�'��4q7F�� \��hK_h�ZG��9&��ۇ��G�x�}L��ԙ�0&���H���e��%�r�M���8O_���ŠS��	��8�t��Z%�#R����9��ST��hgG�8���A��'5�qU�˲�h�%�|:����bN+�qJ�'�98�̃UY�ê
+4�jpHՀ��&|�����W��2c�j�AxQ�eN�W^/'������7�~��}�6}pV7�lG��X
�����3�`?���`��8�n��s�W�u�2�:�A�C=�84a��T9�F��@Y��Bz��7ˈ�����n.yJ\��C��;N;t�Q��w
��ð��Թ�G��T{$a����L����敃*�|Tx��{J����
��Hf�Ki���
+IA3!�!�Z��=��k,���	`�;孁����Pg���}��� l��ʎcPR��(�b�dl	H��VJ�
�� �TX)��Iy�'e��~����L��Y�֐՝�F�R�K�0���3O�v���@ol�
��=P4 [����Gas�8O��gHy!s��!)�
!���!9��!�5!��U!��쐣���e�OKC�"#TțY�?���]���8i��G,=�c~��3X��P7l��a(�<�`�G`�q���8AZc�"[eL�eʳ����ƕ�L�FE�q�2ݸS���^�~E��X�(\(�I���<	�ԝ�n_>�|r�8n�����U���	�=���+�LXc�F�i��e%-7��e�&�2L��t�\E�)E�jZ�L1�S-�0�FlSϏ8��gj��1=��6	�,�Pe
�<��W{��>��s� �:��W|j
+{K���ھ>X���
X�?
+����#����e��&��5E�
��\�������F3+�P�yd�vf�>����6�#h�E	��(��)Tm(��O|ǧ�J�x��
�b�c����a�@OdFwƒ�0������XiQ�G����d�c����NR̎��L������N���N�γ�]��
m�M��V71��.!Fh�����*a`+�"�}�����c�������c�
�buX2��q�H�
��&̏(͍��͎)K�#���"q�4�!��S�R4��Vh���u�GEy�a��fav
.D�&�葨(�((�"���0�
̌��
(��q��h]\Q0.
cM�h��4rZ=&�Ic\km�m��&��A����;��8�}������}��yI�ir��j
I�j�I�4���j{���'�J�x�U�?3��~��F[�6�a���>�(Ѡ���Ԧ����*C�PnH
��t��$=WV�^
P�V��O�W�5�
��Mߡ���Y�g�M�Y�Hc֋*�^TZRE�S.q�a�Q��ؑl�ZV���u�d��D��9Tf�C�i*�L��i�PlJ����N�]��Y(_�Y��e���ƕj�q�&˸K���ΘqZ��qC���&#CT
�ҏ����}m��f`6���9�x%�R�uԘTf��bK0ʬcQb����BA�<!?;E�k͔:�92��)϶��-5J�e��h^�1�۵if�No�P�j��M5���g�*�ԛDe�IT�r�������,ځV��q#�SüTpM�9:ۆ��

+�c�
ӱ�1W�;�$9���J͎\y���a�V��Uz�:u��UM��6���6�vU���P��-��Ee��	�^z����o!�c.���*Z�zR����,�U#/o��
�4X���s�`r�I��,��鐥9������
ʄ<�j~�vu|�M\�IrY��@
�PT�<��xʟ���1�.'����`�!�<�N��Q��@X��#�$
&�]�0��	i�d!�e�$�r���ق�ry|I�"�d�2�x�jv�����Y�ߨf�S�*�1��	�>>d��b��Jx
�yh�I%)�{�rs� ��~0�AZy(R+‘R���9H�LT�
�I\E�4��L6��-�U�]ު�^�WY�>�J���"r���,�J������B�����2`y)PK�8�]L�WA߳H^�FB�@̯}
�a�瞂��hĺ�0ǝ"ĸ3��n�d��X宖Ns/���n�O�}M>���<���<��<�Z�G,!U�|��w������K�RE���C��Z ��ާA�������!�n
��&`������ ҳ Sy�_�X�)
��&z%<��=
�<�H�<�a�?H�Di�ˤ�W�d��T�<�p/.��$�H.����L�6��XE��Z��́�hƤ�ј�f"��Db�w�{�׈0�c���B�^a�� [...]
+�	��~�u
����@�����7hYGo��
ڥŠ�$;Fc at G8;#�\<өG��
��]
+���	�����<M�
hw=�n�];��G;�65+���P���`0���^�ہ�N`�
`�~��
j��Cp(�C����!�EA���e���a�qC��1}������C"?
���6j�e������6ր����v�1�.���Ao�8��]@8���B{|a#��hB��>��n~p��s�y����n��u��󘈿���+�2�7���ԝ�Xg
&Qs45��9�=@{��?0�#	pZM�����3�lF{��p�3��,?�gyٟ�!�a�{(p�m>/��
����.�d/`=�
f�C���70���ԧ�'����������J��"�H��5��K��\�~���¿ƍ�	��b^?En��D|B]k�4�
R�
C�I�
�X�=��
+(z������%�-�B��R�&k�O����m���?r
w���޸�p��0�>&��?<a����������;��QWw�}I����~���%���(��Ӌ�\�C
�9Y�M��FM�^�"��ċ
Xd���Oe��D���
�$�H$�'�NJH�#�I3YOZ�+���'��q��p������w��S
�����!��

"A$��!�%�$�X��,"KIYI�p�
�m�w
`7�
�pwp�:=L�
��������QC�@�����E8�&	��x
���:�pS��������8�V�g'���y},�q�gp
��*q�3|˙z���:�t̅�o�
��d,�J͹�"�Z��Q��U�x�.�i��k9W
��vn�|������S8��<F����8�Y��v�Ey�q��^
�] �[�Q at PNA�c9V؅v9v��Z�e9� �'�x�b�z�V,�x�h�ĚX�4��Sg�:��i��$�f:}�Em�d��g�}�?��<���=���?��5T-u'�@�D����Ok�%k�)"�����d>6�2�j4�h�G���L����A����I�þx�q�1�Gx������P���R*Ǎ�+�G�sM�ԝ��PS��20�l<@��
?F-5���A�ո�
��
��޸�5��Z���x
WX�wq�+0"<���⢤��MT�8UK�<�y�X>�Ʊ���s�
�qW\���
�%����u�W7�hZpYӉQ�
\��ň�v
��¸C8?�
΍��3
n�&<ĉI���d [...]
+��^�
�?�`���ST�!��|�:��lG��
�<v�q������2�k�
����p>0�����

�V�#ӝ84�ߛш3۱�j웹	C�v`p���>�ݳ�10�v��%����%U�'������8V?	�_L�Hj�ȹ
�{�<
�3&�̬)8>'�����$��r&���cp�{T`��:
5cgP'v�ö�~ak�
�?���|^�
�.l
+���>�/�څ��Cք|�/����@܎Fcy�G����9���� �2����
�]�ұcq6�-.���Rlw�/�#�	û�
�º�]bO�~qu�i�;�����X\�/�=R}F���4�����X��Lk��6c9�

�b r&�G/Ė
��$�W����|��ٱVW.��j�ձ��*]�إ[/v�I
�!�-���;*��ޕ�b�$7��Sj�U�=c������;�3Ҙ?����o��v�$�/��޸ذ,
+��X���n}���+�Ra��%��=�W�.���H�	��Ƅ��'��NQ��?Rj�j�Wr�^�\	�E
�kp���4r�iӊ
2��)�I�~<�'����y�NGWJ
VR�n0�͐/�
B��Bl4ԉ
C��6���
�r��U�e8�T.j*
w4e�ߓ(N�*;ST��<�����Uڍ�fր�g����_�&k
t���3m6:2B��СŘ�&�r4s��Hp�b��F�66IU�N�¸Q.3�TJ3jJ2��qo�؍5v�ߕ�
U~J�*ٟ��D�2j^� '�9�1�M���5�2��X�Ek�
4g��
�Y�9
��l��l��+�
+s�Xn�HNs�\bZ�8Lەb�~M��O�馏��[��K�դ*�,U&�5S�l�#��5/�G��i763����+�w.֧�<	
9S��G�%չ��MEe^�P��/8��bIn���uKŹmran�b�ݪX-�4y�3>�u�
˯��
������lU�'��
j^,�^��h�71�n��F�Ș�yP��"\ֹ��-B�-΂d�,NJ�`/(�
+�bAA�d��Hy�ղ�֯dۆ4f�i�,�5�L��}2��dZU%3_����S�1�1׫�=W̽H;��X�x:O#c�㳪��E�p�FI�B8�1���(r��Б-�
6!�Q"�ګ�
{�d�w�Y�>ey�&���&��
M��CMZ�MZ����r��4�;��ej�\���A�����+����X�Eq�
��挄���2r˲�S�/d��SY���l���N)ݹINu�VR��5���5I�4���)I%����)R�C���m�|��Gi�J��%�i"���ߋ� k�$�UN��j
r�!ۥ�ɕ�,��]]EB��LHu��W���� �]򲪣r|ը纯�U�U��T�
+U�+W���g�`�/��*���!m�M��VXE�]
�k�#���ݳ��Fz}����IE�DŽd���A��yZ�8�Z1�~�����SI��O�r�Y��S��ZU��!�ϸ�\�R㻤�Ž@�H5�
5����� �IFJ�d$�LEb�<�[ð�u	⽉��f`�ׂX.�o��m���B�w���{P
���޻bh�'bh�*�6�FU
{��'��Z��a�'�|/�����^@�,�
�%��#�k&�� jU8"W-EĪd���Ģn+ºK��u�G�|�q����X�YĖ�,�$��&ni����TUk_�p�
+"��$�D�ԒPJ����2��Uc�LU����jj�:J��ϕ�:��Gr#y�����<꒕�Ȭ
�g��*���]Fh�I#t�M#4�4B3`�i	M7-a�
�*t�fpY
Sa*��gC�~m��w��@�^dQ�bOE��*<7P�s#�)7Fay�
+�믐��
+�����
+̟���j�_�v�;�\y�)`��j�cmAv�3yf�.�f����N5`={e!�/�b򥈥Rpq�/�R�?�-	T at i�ڔ�ʿ4A~��kS>��jm��V�����ҾU^�#�_�W�OjY�Q�x?���Vv&g�����R�\)� �"�K�/�ʥ�k����%O��<

���X�p���1P�
o�m�$5q���Q �c���XF��Tޕe�)�
+SM�4PI����Yh��x>]B
�I��ϕR�)�51�Jj�I��b�۶2�1
oc ����R
P

���RC�k(b
�Wov�m7�)�
��
+�	��z�rj���E���
�o��TK�;$�]�++�>v
�۽
���c~�ǏZ��Z}-ͥ�b�b�� j�W��#0�G��
��i�%�o���FɺU���h�$��/5?(���G��	~
ŏc���0���$~�b 9E����Q�:�����_�|F^}�I�;l
5���wK������a�
M�ch�JV��0 ���E:�\:Ǣt�%�B{�
�K��u����L�/������� �gds2y
��4]�!���T�=A�OI.����? �H+��X���MXPܥ�����
���q���>g�A*K����c�����zM#�c��/�v?�>�>��~���_�zN�o�:p�t��p0��J���Sjc� �
�&C���0��&51I�I1�/�g��
ה_���q0 ބ10f�
X�P+`
��-���6�P���Ol����s
��&\w��V���6=�
�0�a&��~��j	���[��Z=��W�^�u_���:Rt�����z�m���e�.������4�+��k�4�xƠ��F
+)O��<�/�~v��VW%qm�wڡkڧ�:G�6�|"gֿl�"\��N�:u��[�ז�j�D����+D1�����x4�b��j6�������plVcw
v�R����+��4�g��SX>	ίu/`�@��hȉ+������f7r�� }�!�>�w�7%�,g�ҹ�Y���n!�K��kt��
�v��>
�	<�����Z����äŘ�
>��<�r�
jr�sqQ���A</��::o�1�
O�E%��=�h�G#{�P-�^9��ح=څ'p��S��[���m/`z��u���܂��Ϋߔ\�"�D��UG�*:�8�o�1��h$���M��	X�N>�KP_�
٤����4�*�3Z�zC�Ǫljjm3S/`�R
�
_Z�-��
+�N����!����M�h��o����n6\[�������b�6��R��\�wϑ�c�*=V��c��=?�j�CZ�yF+�n�����{�>�@<���iGK
����i��O��)r��N϶��
+ז���ѻ��Z�.G��Z�z�ִ��r��Z�3]+}fk���}���Ϯb?���j�ԿV�����r�(���E�	h�!��¤ϣxz��
ήA{�ցgկ�6��h��*�ku�x���/{��*�0L�
FkYljZ�1I��Z����
�+'�B��[�0x���Լ�k�
}��P�
�����~�+OQ� �f�×u��6�Py��V�WIH����Ra��Z�i��:����Z>N��Z����5/b��F*#r��#7i�{�YQǍԨ+ƌ�G��(�HyNd7x���
�g�{�=Ê6�Wvg�"7�
*�l��.a����n	ZЭ�����跔=Js�'jvL��bR53f���g̈Ya��T���2�c?5�b/ScSbM#�I̯\%��g�ˌ\}�2|)�)�e��n�E1>���=�*��U��)��@��=D���a
���)�f�n$[�I�
c�u��huX&��L�;by7�q����3�q�Fz��Wh�D{�o�͌
������	�q�ڽ]�i�V�K
4+>B�	 [...]
�1�g$��b>��
�������0��{	KHe�
K�"�I&�L2If�LB&�$$C!���"IT�BR,	�@�!�(}��c��V��V��c]
+B����_H��g�3s����9�|/>����X�$��E�
�Ґ���cU�8E5IsT��@U�-wd�ґ�
+G@�2#�Xa�:�Ŏ;�BG�Y��n�;�[y�c��q��9.YK
��$�_�m�q�g�����.j��]��L,k�c
�a�c��S�UU�
+��TE�<��'�,ݩ�ӣg����F�s�Q�3��L����w[���,��q+��'+�y��N��+��fNj?g�8�I�K+��M��u��J,�����T����y��]̈Qif��3�ȝ��;Kn���EF����k�\�m�ǽ��vo���[��V����r_�\���GF��9�Ʊ
�l�M�Ԁxꉧ��,'�r�`�fE�8;J�9SU�3GK=
��q��ɔϛ�\o@^o���1��Mf�g���<`9={�4�cV��y+�󱕒c�}�fCV?��8�+��/�n�-��xB�R�g��T�7\��c�_-�o�r}���'��w*��Q�?_n���0��#�����b&�w[I�^+��Z���\����x�m&����}$�=��o��%�PF<����/o������t��
��]�̂eR�
+d)=�WZ�X)��#��H
+����̈́�.sA�x>0�
�7��f|>���x�����h��A
,�B��
eVVQ�2�#�*�Rz�T���Vj�|��&)�ԥ�`��-
+V(!x�� �l��c�
�4o
2c�������ؒ���bی-�͸"ۈ+��c��/bO�~o�&�j`��<��H���i��X���1J���E�ӕP���	ZJU|([�C��
+���Jņn3�ڍ١�Y�����������3������l�1tzJٓЂ���R�}e��e�WJ���>�C5o�(�]��k�(��F���ӜU���ʥW�j֪"ͬ����F��nԴ�nM�=�ɵ�(z�ۚ\�1��6&��gJ�m<��h����|P�u <ش�����Z�Ճ4�>\3���	�i��7�Ѵ�xMmthJc���uC�2Mj�ӄ�6��i����i|�q�kzC����z[Qk`�mD���#hl#���Y�����y&-�)
�tS�4
��<D["4�e��o�����o�I�Zjlk�ƴzu]k��m���uնY�m{���F��WD��l�I��I��O�ݷ
+ߋ^
TB���:�^Z�V�ŲNoA���
�Ȏ��Ή���XX��.
��Ӱ�
+
�lPX�&]ݹC�;�誎3�~AWo�5�n����lo�l$ϵ�Y�P���F�u+k�Y�k�f`W��ѿ����X�5L��"5�k�̮I2�8�8 �y�w��Yh�$�M�][S�
��
�������λ�z��s)9�[��
��M�Lt��H㱉��T
+���K2v��W�����C3��d//���`�������N��'�����
@��~:�s
�5PB��wK)���w��D��Ҩ
i������pЂ�
v�q�8

'
&�#���a�ˁ����ea�R�#$p���K�����ȵ*5o3s@��;�\'�E�Q���?*
�E�7p
~ۇ)=I=�ӈ?5Jzz,�0�቙��ٳ
��K'��
��'���x�5�Wh��+�-"�l�M�g�����x4#�JÞ�̧�<'�9�=��?��Wь
�1�9� �e��2q���8ρ�
+�U&��. �ר�k�[�m���H�}��+iޯ��p#�
;9��<���K�2�����M�f�]j�>s�!&���E���
:�TK�Xܗ
�.S��
p�8.�j�k�a���R�3н��A�W�e�4��ހ��Rbc�‡�/�L�>e~>g�|�A��`����fN����m���
��h5@��8�
+q�
�P �`%��:X������>��q���B��x_�]}���%�~1�%� ޅ���&��V� #�7B��%B������70v�ޯ�ե�h�>�g^�}~����$%zEs���`@�}x�ËWbCa�ADA
�z��,E�L��
+F���e�;{�v0-[��nr��t�#��L�q�������j��h��8���Чm�>G��u���lꖀ��i�E�P�0'o��eX�׈�<q�L
/�����Y�Y�=��-s�\�yL��ǿoΆ$@��Ä�!�\�0`�
��c�m
6l�aCH ��%9H�PҜm%�Ҵ9�4R�4G��֩��i�V�Ȧ-�4���e���/	Қ����'������������)���'t���pg����Sx������x�
Ƭ�Z��Q������N���
��0���]�����s��?������u������
���]��
W��4����#={���Ԍ�O�J�5�*�:t�0�#4q�V��N|H��5��*}\�.��I\�\��΋x�N.��y^�s\�٧'�y� 3
1��n
S��4���[B�x�S+�k)��j���9�6��.j�Rc����sN�u��i��$�
��c\�Q��4W9s��f92�^�o���:	|�sk�L*�n45��9�
+�����+���9qJxpB�q|N^�3��s����qL͛��y�ph�yLο�
�`�
_a�o�'L����1u��4�tr����X>?L�����0?g�pj���J��U�^l��b���Px;�w�@x�#F�7b;&"�aw�Q�\r㑗�#��G~�-Q�X��M��7�����g����Q;�O-����SQ�p2"G#q$*���q`i9�-���2
v/k�ΘV����#��c�ak�6���X��.
#�/a8�6��
���`�����Cj~���c>1�1�������_��Cq��y,�$Ȱ31;Vc��JlYi��$+6%90���H���A�O�P�KL=�P�IS�A��&ze?�Z�#t�I� �%U�oW�9R2y���WP�~X�a��Jy;R��U���496�*�pz9֧�1�ڌ��v
d���?�}��ѓ�ݙ��C��M��7�!�
�Y�'K�G�=2%|�'�>K���L!��rl/���碗͙s1��
�
e�c [���Do�=9
�V8Px�Wt�S9��ڕ{�QN�Uy^�����	g#�?¡���3���m>�K�,;&Y����g�ɸl`\�*cї���y��Ÿ_�΂j�
+��(��[�
+OaZ
�p�6¥��jJ4��	�ꚰ�>���ªzB$a-��@�S�f����4�(c�CO#��	1.��a�V-EWQ|řh/΃�D���*���.m�������^4��aS�$��E���������0�� ���u��3J$a"?���J�E>��N�ś�i�^�����t!:�Q�%��,
�r\�pVh�E��
v�6�V�Z�k�`�n&�AaԾ&
��E��Q�������H���5咸Oͫz�4K�I���='=駛q��f
ܚ%pi��Q)CSU6�U�hԕêӣAgF����&} F� 
���F@����N�����Z��O��IB[%��*%q���X'{��j��}�񻋿���U��Z����LXj�`�-��P�:�FC#j
-�1tBo
Ag
��}Bc<!ʍ�2�
�6�F�
��ZI�k$Q6C�$nQ�m����C2J��_K}����v�o0��R
S�
+M�0��5�Ƭ��\
��
U'*-
�X�QnE�eB�Z��b�;���PY~%T�I�L�(�{��:�ۢ�&`aۊ^��q�5���,
Q[��x�2TY�Q�X mc4�z��L(�5Am��փb�0T�](�
���D��#���R(
�U�
��K��z�2I��A m�F�V�
l�t���6���9��IP;2P�P��Q�b�ENT�F8��w��Z�k
9�W��zY����~��o�;$d5K"���%q�e�I2AF��O|���쀡�}K���
Uk
+[P�&C~[6��
+��A��#�c���^��dz�a��0Vy�#�{2�� ���6	i��-aU�����-�8YO�i��ɞ���m���@�o>r:#�������w�#�K�
V�5H���A� 5Ї��f$&�"p���|��wH�d�ꓰb�	��|����
�.�&�
7P[��M���`븪oR�#�����$3�2���R$uHYjA\���,
����iD��"*�cD�At������H8��M��
�E�N
�Lm]'{� ���L�wX��ǿ *��p ʐ%D�qE��ׁ��
/B
���E
��yj
��Ml���`֓&����8�֪16Mn?H����}~�~�����=��~���_������Y⦎%��(	��)Dn�(�/WS�:���`ʖ��@Φ%r2m����K�ʡ�
���|���2�L��h�L�cx��,� W����<�$�R�k3`��\��r2����#s��͡jg�Q[� ٙ�ek�,3ƛ���vs�Z+�*�P�b [...]
+�S3`���V�j
eSˌ[ۑC�h��(�u�:.�:�.X�n0g�<��̙+
��[�F�_sa
+�S�yH1g`�^.�@��U�s��$����z�
4���fp�'E��g

�
+m=E�������'��������{�x�����K���4�b�X�94s�퉮�j�#��M�C�d�;�s���rÎ]ر;���ر;h�(|F�u��l��]p�w��r��߇
{�)�5���՜��� ����݌>�4��A�p�&�B��
��4��hΏ{H�c_N`G#�I#ů�K��u�X4�`�;�1�'-��c�ٮqu��x-t��ɞ�%�CR[��1Y~ւ��}8��6�9��4�.�Hb�U���(�M
����m™&>�v
~�f���ت�����n����c8!�;ݪu.4@�W�	����9|������
��-�M��
���yw�t�{���>S������ӆ�#��I�?
�{�Y�r��U�
�
+n GL_�M�%݁{ց

0�=&&OV�ۃA�
���c��Y�p
��

��d�r��Xw�@���0
�C̄9P
eP�`�~a��Y�̍;���ټ'��	�K=�=⭇�܁���uޔ������_�8
� 
�l4r�9�	s�c�x�
�Ǝi���
��)�>s�]��u� ~˯�|�
�|
��\�K�68�
ش����
��+�/�����c�Hg�i�?��
؂�.c�*�Z��k�l7��ң�49��Y}��]�Z��Z9���flA���
M��O��Ţ�:#�W��Ϛ��d����D<��/W��2v\Ž
Z�s��.�$����B���|��D�*Vޅ�p�نg�O�S�-�3�7��V8~$`�P]dO�)�㘁F֞��\�.f�2
���VG����r���!���e��~�dJV����9
�]��|�
��
_|�#�ht�����Y"
f��Q��;�c�^�أj�"G��&�A,��[Y�
�6�M�Y��
��߶i9�l�숗�Xu— ��N
��n��N�a������F��
[ȏ�2�
�d�2"���62� �P
�Y��]�n�@�y�r��������,��9lk��
�tŧ�dX�"�I���h$�1�4429����J��B�b����*_T�*�c1�����
+ۧ*oC��{���S���1���ڝ<�A	����<8�~Zg�ն�Z�f�V�
ղ��Z�n�j�MRu���j?Sf�9��/Q��b�9�j��&-p�-��Q;]T��-��Ԉ�����ɏ��>eo{g�)��Q~��h��A�N^Z�
��0U��i��EUUn�E
&h����er�U��|�w+W��r�m�
�]�w?�<������
��5����n��k�0�I�!�vß���WÕ_�n/���*�}��c�J;�U��
*�4X�;��<�1*�J�
�,�{�T��\��,P�O�f��ӌ�o���������v����?)��E�]�����C)�!��*m�U2�a��.mT��AE��5�k����)�7Vy~��7L9�ɚ�?^3��kz7����
P�� �2VkJ�6�
Ҥ�3J
��&=Uj�E�����7%��g���a�z<+Ŗ���7�fn��^	��� ��
���jz�M�9X�=G(��e�JSF�,������B�W(5x�&��k\�A�
yOcB�+%�F�XZ�(.E�Q�6XU�
�<+Ė|l�%69���i!]55��2{�+�w���
��>�4)l�&�MPjX�&���
/SJ�
+��ج�%E�҈���
���C�E#�\
�0�6�C9�,{rh�a�
�V�ᮚ�ɑ�J�쭉}�5��
5D㢒46j�R�'kt�Q����@#b�jx�F�
�OCcNjH���,
Q-�����נ�\Z�
Z#mP��G�jR��Rc<5>�_�b�5&.R)q��o���%jd�%ŧix|���4,ޤ��5��^JأNh`�'��P�-�?��<*���?we1 $�� n "�"�

�2�,�0Q��NHAA�(����M�q��Z5q�4զ�M���6mz���ĸ�&��ƚ�X���a�9����}�����"Ρ���l����X?m�
_f�K1�S�U����@Y��(/i�r�'+;� ���,�E&C�2
2��UZJ�RS�dH�PR�>%��RB�NJO���
%$�Hr����T�#,�g���=
3�
+��b��oe�Ȝ6R��pe�E+#=I�t���s�j���L��J26(��\��M���G�'�qA��;�Nw(��4�bS
:F�
�@�Q�U<�Cq���l6�)c�22�Pzf��L�J5M����T%e���U��
ř�4�lW�y���4ɼK���`�nkB�C�&���0#�Oa4A
̂�`�
0eIFs�f{Ȑ㣤�@%�VBn��rc59/Y�y��ɛ��M���DK�&XZaY�p��Y�)��
_+4ϡ�\�qh\�C�R,���r(�)�J�
�<zn�?e�&�{)��_���*
Ӥ�I�X����tEXs4�:M��
+�Y�jm��5ں]#�����
+�~��B:��wh��^�0�J�V�E7�Q)��ٓ�1jZM(�TD��‹5�d��J"Z��%�)�����,-SHi��J��T�j�����P�
����FC�C��
ڞ�� 
�lP
��fю�2��_"�gT;s�F�{id��B*�\���H=Y�@[�F��4�V"[��l
z��&_�V����vnjX�C��t8�-s�E4V@TCL�\F4#�lyE��_.�at
���s<�_�-�� =Q
�ǫ�ɷ&J>5IVc�w�U^56=VS��5��Y�!���r�>��>�<�
��e�k�z��P ��� ��
+)�il���u�O� y-��P�0yڇ��>���
+7{���4�>]�5�o_����p��S$��l�7�SO7=ϡ~�z&�j��"��9�Ff3��A��(h
�
�����ܚ�4��K}�i~�i<���[�dZ8�Z�L-P
�ky��g��ຈ�m�
��l��y�h�*^/�|�3Xs"k�ĚC�� �7IÚ%�%m���,�1ϵ�x���XE#�����
��C��
�N0�1Ҿ���C�� ��P���"p8iF�j��z��͚
�� �5J���c�{��J�����j}?���@�?6��f���	���p뤰;YT'�:��p�������p�
z��y�b�F�cI�7x��Z�Z+�o��w��^B�m���x�B<v��.�������c/�>P\���w���F�z�w>�{��pbGs֏�

��ŜC�9��V�M�(���g���U8 ���@xu��������q
?N�x���;�A�Equ����O�/����
Nj[9���W��<��F���^��W]ZG���Mg �_��p��b x���%7�Ҡ�Ï�
,\~��gw-�������/�M�CO���H���9���;b?��%�=�].���;�z���Çp�9����Ae��W�Kä/��
+M��
��y�"��
��uj��M�穀5��Z��z���a��qi����ȥ���g�7�`x����a
na�
����w4������'?P��_���
\c�
+���z��� 
� �a:̂�`�&h�6��5z���=�}�o���Ôx�$}��L�_�
�6o�p���9o��@���
`
DA
+dca�~P���:�۱߄�V��_����?���4z�"�J"����<}��t	K=|�Yx��C?���KWL|Y[0�Ϛ��2�cA���د�j����������~|ʴ�	S�ټ�T?�QJ�
z�9"�>��uqN�	��?�%w�ŗ̺7��5f�/��N��LN>V	1,�v��b{%Ө���;��[��|;�x�R>����<Z7t�H
C�u8
+���#>prWJU}���s_�D��щ��T�MNΨ@�Ə7𣋼������:~
ŏ�Z��u
[����8�}D|E��
�Bm'�|��.85�go�����-/���(t"ш�Z:�s�_��l���خ��|l6bs����ll�2�9=ق�
l��ds����
�ۮ�����"G�'�#��$:��D����
��b��]P��r����\l.`w,$
+ϓ��T�V���W��UD��̮�������r�]��9��� �]���;��A��1���B���9
�(��h���r4*Ѩ�f
,�R����y
ZDd�+�G#��r���"���pvrԾ�ѿ�+`�ܵ^��
Gk4:��ı�T-��T�iL\�����Y�n0˰/� �2,�� 3,3��1��
���$��v�c���xK�ʭk7�V�괪*�R��R�U~���V��.Q*�J��c;R������{����;G:����	r�q���+Y�Ȧc�n:�J�F�d)���ﱰ��G}��Vu���Wj폴�~U��e�Zr6�f_T=/�F�|T
g"S8�%�S[K8]ͱ��lsrx[�����}�嘽,�Lr f���Äc�e.v���L��g2�=&�> �1�����,�wvi9Tk���%�?k�5�t2Y$Dq"nG��9o��r�j8��`!�E8��\���� �I�L&�1��B(i����K����{S
H�9#�3�j���J��Cq'_vD���Syʝ�i%S
K�,'�r %�pj6�i�L�U1��������݌��2���ьQ�fL4-0�`�t�ݙ�2�y_�
d�������2����L�G�_d}>'.�z�i{X��d�U˜j�Ɍf*3��Y&�w�/������4�i'� [...]
+�Ū���I�W=����f�8��%��K�(-����޲Z��<�.z*<tU
���b�e�e�6�Z,��l�:M���񔊧�#|�
+�ğ�bF�k�
գ(Ǡ�Y��gI�[����LwU]�V��
tT��v�n��i�N�b[�a[�ѶA��6v�ר����� 
꬟Rm�v��B��CY�cbAL���7�c~�اz<�(�m;pפ�Q����gm%muvZ�Zh����G�}�F�~����'������&��������=U�S]g<���]�[�Q49ܠy ��; ��߫Z�US�=���8�RhmȢ�� GcM�5465�����䥮i�Z�86�<Վ�T9.`qܠ��e�G�:~GYӿ�Ay�AE��]i�,�{�Iߡ��bH�.
wiۦ���
CSs"
-Է�ao-������zlmmXۺ�n�S�6��9G��(��(q^����B�(p����R�jP��7tՋd��" |�#\��U�K���
Mm�l�4��l�:
+��`騥�����N�:�)��C�{�B�*��s����u�
�����
9�� �� �e��npS�?��uBX��!�'�Dk;4(>ֺ���"�t�QޓDY���
3%�R�=V
+=�x���z1{G��N��]a��92����������k�=���c`�~�5��3�t��
�
�RLrH��[�
(�m
$`
H#Ϸ�\_!9�
+�}u���e��1���ӿH��4)��$���(~I���$
�=��5���X�E�_Z#�_t	�^���}�Wt,RT�
�$k$S ��@:;���I
T�h$9�")�Obp/	�yvO�L\�Mb��&&��+�#r��r�C�|ǥ�Ġ�p�!
Ү��Zj����B��VCq$������Y��!6�BL���a�CSl

a��Td��o1��'"����lg�qHL��ݢէ9(�Ji+"�J_�1uBp:�ع��	D�S��bs�����Ma}�a�ܰn
�Byw�x
f�kf?T#������VJ٭�aH=A�a�+\��8�9�J�I_��4)�ҟ���MD
��Z��Y��XI׃(O
RS_US[�Ƕ�\���[U�\=%���=���@vP5,O8"�Y=��%]�6�mz�I0�H_�)K����0l>.�wR��
�)���Z��L�
-v�j�����5�!���/����C��p��'�V5�4X�ք�,(z�۩g���

C���|D�' z
"���9��&5x����
ZpT�%���
-vz'�5�7�`
B�cㆎS�}���&T��y�i�0(:5�
:�� H�tR��w��K����c���)�j<�)�^�x���rS��긭�����
M��z���[����
9�����5�Yi�Gcݲ�9�S
Ok�I7���e��.���5��ӍB
��2��{2��ce���e
�y��
(�K�k�]XXXv�]`9DPEEE-�}�3�Ѫ�68ƨ�ǚ&5UcըʹM���G϶&iL�L�9�l?�q��g~�e���}��y�G�㣍
Y���&�Fa���V��[O�?�r��&�4ݑ
�C�ƹ��ߢ�����ԩ�~�?�p� Ҫ���
'�K���i.�g����]��l 穋
L�h���ݷ�S
c
���)+����C7`?��vj�	��$��ur.�{�gx��hV.37������k
z���nP�7�I7��M�����;*�D
2f;y6�U�+�6�����S�|���}�.���U�����Xz�M�|��;��]j�
sr�E��5�zH]< �t9}���"�
v�@	��Z�3a,�tS��|
��=���t��������}M��>��|�������\�sOz��O���  B�VȆB}�24F�QG��@�����Ǘ����9
�3���Е��b�A�\�Ru���!u>}��p�?��^0zݣ׽C.����RC�('~�n��>��_~�fb/�%||�������%��
+�x
����6
�O�t���k?������S�n)�qG�>���H^�WB�ԟ�q
��sϨ�سu�������8�Mhl�����6���u��F��*�
��ާ<�k1N161
��){:&�2�l��Q|���#�&�x
��!Mg�M:���c��
�w�����/w�E�cj/�v��wz��YΗ:��Irq�\
�.+

v��*
+��aڃ����I���$bNgkbw%[�z\�h3n6i#�7P����P]�I��4ou.�w:����h?��K.vi ��nE�A�\��G{4�XK�IěN�����R�j5�*"� �/��rfu)�f)�O�U������p��-ql'�e��Z!�#�1�Ѱ��Ɍ�i
>V�c%>V�����2�e	�e�摍�ϯ�il�JfSQM�����4�9�αͷ�
h��f��
x�%{�Z1�p"ơ���4-�6�o,P���
+4j��T��mnq<��Me>������_x
��������
y-���5
�+8�{w��n}W0z�h%��K���dhVW�fv�Wc�!�޽LӺ�R��8M�I~�T�c�&�X���[U�s���<�1=/���g���j�j�b(G�ˋl�a5�ø�p
h��� ?��
�Y�C���i�f5�iJ_�&��U}�M
(Q]�H��Ѹ��8C5�
T
�FU�[U�W�o�<�=���ߏ�2p�Fq��Z#-�9��3#���gj�Ҕ��>(B��lQmp����֘~
��+��~e��_����U���C�,d���lְ��ڪ!�T
����~ �

������q���
>O���������

И�U�Ekt�I�"�2¡�9*P�J4<�B��cU��sh�l����+v*�pX^�9y�n)/�1ON"Cm	\e8�3���
�O�o��S���x���ʨ~*��Ԉ�x
���4&]�b�44֣!q�*��¸j��+�8K^���+ǸC.�!eǟQV���p;8��6���\E@#���$����#�R�S��A*��ЄX4�h�M
l�Q��P^S���U�5��mn�˼HY���L�.G"�\�i�'ބ���}O�0�t ���\{��L�8�g5G~/�K)^�&vWQb�
+�B48)J^K�<��Y��Mv)'9_��e�T(3�VΔi�H���g�f�&�����SJ�^��@��%w��M�.���rdž�P��2(��b�
������4 at n�Q.[��l��L͔3�#Gj�2R˕Nc��� [�\Y��(9�yY�(1��iW�S}Jj���nt�s�\�N-ک��r>�@���)��;���҃�i��
��
��V�gd(͑�TG�9�du�(�9Yg���dr�F	���w�AF��2:�)��SB�}ځγ�$�
�:P����^
����,�g�3���_�Yٲ�5(ۢ��t%gg���W�k�̮*�\�Jp5��f�uoQ��eE���ຬ(�]Eg����S
�Wg�ђL�1P%P �����R�]e����`Yr#��+s�Y�<��9���S�g��<���)�;S�2Ez7+��;�y�*�sIa����SDn[�X��,4&r����P
^p��V��,�o���4� P�!2W����d��U薡�P�E#Q4N�E�
+-Z��E�'�̃�>�8�dY�]p9d�j
F�����Ev���Ǯ"��!�fR�zD�1j5�6�$�HӚ��1�Zs�L�5�Gڴ�4u�S�v���~��L�LJ=���}��}��}��J,}Z�җe-=/k�Mي�\!iZP[O��h�g
��J(�<�E{,�#��K�!�ʨ4+�iS�3E��L�8���
#�+W]EJr�ds���Z�W�,�͊w�Xf�Q�\g�.s%�k�=~�FG!�":�P
eP�idz�
UF��3�8��dw��
��$ٌ4Y�!J0F�b�W�1U�5劫���Ƨؚv��e<�H�yEg�
+_+�
TtuP��X\�~ �ZpA	��x�A{
��]�36:<RJ
3��HYL��Ze��5��P�w���*ʛ�Ho��y���	$�
R^Ɔ�p�`����}t��
+�����V@L��8�GTKC�
3��N�1��ϊP��X��1����}\�~u?��M�g���3g���!��0�C�1�����Ü`��v
.��tޗ�T�g�Yb�3��g����`6��F�����fc!�"� �]��7�f
��́v`�
0D.b8]�`��.�
Z��ЙM���"ׅ����ziX����dt�
$s�
���
�GJ˘+;hv:i4����ts���p]�f�.
u3gv��
�y�g/p9�|�
��G��� �R^'��Ĝ�C�x��Z�H�eR���&�4u\�!�c5~�!��c=~l�������uk�؈����q��C�}������ڠ|��S:N^��u�<j�U�\�>�~��ԏ0h.CM&
l�X��o���ӈ�`]~��񣇋��5顸{�	ٽ	��]��k4N�>��br�K	�$���B]�)f:[`��k�i8`o�g��g��~rr��9H}
�;¥{���Ev��$��
�9�P�,z�)Y�J\�B�c���U�?t-��=��7��������
L0�cQ�q��-��)�8ť|��<�B�$�$��!`=޺!�����\D���|�f)�x���R�����O�hX�ux3<�Ҫ_�;�
�

L
�Y����c��'��E�K�e
+�2A]�ؕKpS��9
��(b� lj�P!ݟ�+a�p:��+�5�
���pH�>�?c�t�$�`]��9���s�Mx�B���@w~DŽ
�q`�
+�a2�B5��
X X��Q�f��e���z���E�|�^&���W��T���_�?�xN���D��H�
x &@�Q��G�ՠ���oLNי�1�]e
+�?>Ǐ?�Y>c2���D�|��oI�9�d�
�8��8�>�//w�@<)�3��̤���N�L�
�?>ď�0՝��� ?���{�wg�RO�yN�9��%�x�%��cd�5^�� ����\���{%���e�3�)�/&�.lخ��ll��n应�w�E��Vو�v�ϓ:��^�<@��G!���������.���b(��?��h�Dcy���2�Ķ�uDڄ]?Sm+�_�qх�*�?J&v�����%��}� �
(n�C�
+�D�:\��fk�m�t��*�t��3z�s��<l�`ۉm�gb�I���
+�R
K9Һ�`�6��o֓�ul�����t��j������

3�
�I{��nYа���1������f���;����L�5b��J�q���a�����x�E�:�d'�ӁⲾ
u��#zo���Б��F�BWA�t�h
!�#����Z���х�G'~,#�O&Z�D���X�����\@m.�6��n��s
����;�w�ޯ]���{d�XN}v�&
��Qhdk�&�Q��,E��*x��
�h!#��#|�B���,֣������r/�!�4G���
Z�-�
+������u�T&b����V&ֳ��n���dt
+�)C�
+�Z2ш����%T�J� ��TO
�e�?<���
q[�Ƞ���}�Ǹ���X�Ƒ��`	������"�
mּ�6͍L���C4+�5F��7:G�1SUS��1��1����2b}r�.Rul��LT�i�*M��0
W����n��
�/G���$3����
[�kK
+-��Ɵ&X��d�W�y���͈���Q2���c�$��@Ֆ2UY��ԩ2a�*�,a�J�4�K��ګ�ʷ~�|��!�{N`8��NZ�u\���>�7�]
���/��Rk3ɰZ嶥j�m�\���L
�ʤ�"i�ʒ�U��T��ZM8K�[T`�T�}���wj��9M���
�E�$�Qnr���v�J�
ˤ������3i�
��Ɨ��R�
-g�E)v��8T�:Lũ#5-u���&�0�P�i���єA^M
Ԭ����I_�	�ە��O��_���
��k���x
+�G�҂Ҋ.�
�
�`��+�ܔ9"T�0k�#Q�i*������7�e�y��G�(�
�A�uY`w�]`�e�]�]6��x�M0�xD��⠉��h���hԦ:���M��4��=�$�Τ�v�I
��۴�
;���^3
�7{���y��{���wi��J>S�����MM�,�)O�"�t�]�-��)���n~]6��p��D�o����}=׿%؃��
+M|���!�.��oNP�9M�1#U3&_���,UV�S�SE���嶶�i] �u���.�Xw��zH���b=�x��p�g�ي�lA�
S���!������|��(^UE�UY����\���QY�M�29m^����a�,�-��<ٗ�оY�.��e���|�9�)�-�0�pv�Ӎ�*��-�M0	&�]
���*�pĪ̑,Wi����*-5��,���T��RŮ:�&��5UW���2�7j�{���/h�����*�u]9��r���Fc3��e.�K�FB��|P	e��;GY�l�i*.�RQy��V�e�(���S��^&O�F{f)�ӡQ��]��FV>�L�+�y��>����F�G������
��� ����


�����*^����3T�͑�[�|o�F׸�[S�Q5�SӨ�|3��kW�o�2|ە�ۯ4�	
��\UZ
�FoT��Q=F��h.&�
�B��
+}/��P06F�k��[��
���y��o�H�CY�2u�LRz`��
�X��mJ<���q%�(�YI�{J��*�6�-h������ �Pe`G�Z�>�-o
�cB�2�)�f(=�
&����rkxȧ�PPɡf%��*!�BCC݊�S\�b�o+6����zn��ڌ5]��
���0P
p�]����W�>�mĤX�6&*%���p��¹J[4,���p��(.ܨ�0
/�6�&|�f�,4b�96Dx��5�ƌ �@=���|��mA{�D�'��R�b�45AC[R�@�p�D�T#E�M
aP��������<��0��i���BS��Bc���a<�}P�{{�
�$�7��e�h�6�u��grј��?�v6ʜ��M�����nc�ښ�
0�m�x�9c8����GX��f��H��⽓1[s�)��V�)m�
)n
�ql(	�".�ɣ=���å�M�����$w�c:<_��O&��
���(���ӧ ����&�⩒i�X�
tS�K�(k��Rˆp�p	[�eg%yt2'�9d�r��cN��/8&s-�[�ֳ���j�i'7�U���j�����C�m�^0}ƛ�nr��
]�"W4y� �&걙zt�G7��B
=��V6�,�Ԣ�����\�1o��v�aM]Q�D��:�����R�o
ig3�tt�:��~͍�[`+<���(f�"�$���<��G/r/~/
��~�
��[��׸�q��}p�Թ�Zj�^LR�
Z(
�D�TL�棆ˋk��ś���?x��0
�Ajr���f��-�8F�
cN���Gg��Z.�x�;\ qS�Y��S�;�Z{����\���������ٯ��_X�bS��@H
ؠAx^������q��4�[4ُz��q
+q�]��C��&�9�����x��
�1�~�c��I��2�7e��
8c�~��!|D�^ �K��K
��X�}4Y���+]$��>���#�I̯e'{ 5N�����1�bh�of�=Cc@~	�W�ad

0�����*�r�޸Ξq�M�&�����:$�fϼ�ɀ�
$`8dA>ؠ�A��d,�-��=���qB���~�#�M����]�[}�wu��O|ʯ~g�
�	��r��y�AX����z�Ea���� ����N�
+n�2.�S��Y4��y����y]����C4���b���9�eh����'�{�̻Ja,#t�Z\S	Z����!}����5}L
���>�U����3��	�xG;h�^��ms�{�V���3���]8
+�����Je|�I��NS���4
hT�O[��}?�#ĞI�y��bZg)�W�*7�e��ƻ�
�j���A�r��z��}��}Fw�����ㄧ
Sh��G�V4\ԭ��~b��
&�Tb� n�_��}�ث�
�ѫm����M-v�,�ϵ�'`|

�/�>g,��ƒ8B-^T*�G���_L|7�{٢����m���Ӊ9����:�w
[i��ɨ�
�F���ܤ��
`<
W�;k,���Ex��N�T2yg?��f�ۈ_F��t���A�7
+�Z��9
#�9N��Z֓I�:Y'���
+��\��9�y������v��2�È?�����#�����K����B�h&�t�0�U� �jg���BF5��׏��p�����6���X�f��
���Ʊ��ZtR���'�e
��]��o��
;v.�p�8q��Nl�p��9�
��&M��N�v-m�v�JW�rT+[�v
�h5���[�@�Q�ZXA\��1&
+

	����
+!:�'���������}���<_+�Qˌ7�ъF�Q4���$�M�,�c�]�O��x��a��YEVW����^e�N�{��{���J�;��Q��>��!���ctM���
:^FݏN�
t��f6R�;�I��h
a�
�:fm��M����E���Q��ڣ^C�"��)R�QX��
�s<���
+��uM!}*F��jT�����
tj"�W�5�=�d��Ʋ7k��
7,j�pV���7�P��E�,+�s_�ܴb�%4�J�{J�CvJ.���Y�m\)W�eʘ���&��+W*ߩd~��
+Z4Z�HAD�˜��*��@#S4�hт���k��"���6�P��
��:MAZ]ƴ��w�R�IJ���fa��	����X��<���1ٔ097�4dnҀ9�~s�b�}���kIi�eF˜�,
�
W�rFA�e�Y�*��]��� �Y�z�����J9ZM�
`
��<�ĉeȖ���"
X-������V�����(b
��֣.��:�c
+�7(hߡ��}
+�
Sk�j.����7�-}G���\�ܓ�<:�B� %�C��YXc��)O�/�;Qb�-�SO�Y�r��ʫ�Y�V��I��6+��^U�rD~ǤZ
[��ث&����xF
Njr;^����
���Ɋp��h����ƒ�8$�:j
�0.��k�QmR��D�5j�q*P� m�Zj�j�����9�F�fy����|Bu����|A5�WU�|
� qO�P�ٍ�Q4�`
�z�=�^�0��>�E���ü�^����P�.�Z\�jvW��]/�ۧ��v5�GT_?(�g\.�&9=���<O��sQ��*�|_����Wy=<M���ۅ%��� ����������<y�jh���T��Nn�W���ꚺT�SMӘ�|U�W���|'e�]P��+���'k���߲5�e��u�v�7�
؈MK6����B�x
�fh��ӼF���Z�r�����Fխ
U�[��U��S�Xe�)�;UxT���e	</s��2��
����J�����n����@?�@�ڠ�w�{����rͪ
�T
t�,�R)��C�zT��^/Kx�����%�_Q~�6����`ZEp���b����ǡ��]?���3D�OiZޙ#{�Q%�VY�ˠF��GőV�#�2E�e���(�Y�=ʋ<���"/)���L����+�
8B��h+��A�h�y
4�]�vU�XY��lY�
+d��e��T�Taԥ��O�Ѡrc�ʉ���VV
�0����ˀ��o��
+�U��Nڟ�`
 ���+/��hנ]�V�G%K�L��*�����ʐ(Sv�M�`�&�$���&0�	��F)~0C�0�^e�o��C#����Y;��]�#��U��
�bƒ
g)4O�$I-Y��@Oqئ��)X����`]�x)�k
+Ә�����$yҫ�o3h$a z���ʵ��5Џ��K�����f�mٓ��)����Ý�7́>�A6Á2���3|43
�#7�96��4U��_�.��4&ab1��۸z�s
V��W6t��-��ri�bA�L���"c+Ƕ�DOb�I�cN�9T�YPs46LJs;�0�c`w^�@�n��w�Uf	5�V�1!��a�5&9�f6�Ԍn�&<�V���
<��cw.�,㱗8��������@c
�<? x��Wx�[�Ǩ���
�)��`��v3֭㬁	����5��O7�XޔF|
4G!��Z�IO0/G(Ǝ2/Ljc�w�ds�M��X,ґ� s�	*�c�أ��`��wi�Go������X7n�
ڂ>�لn�ތ�c+Z�$
_-xI��L|�1y��y�uz�8��c�}���:�`?G�gi��s��y�Ǽ�O��&�� �
�ٷ�=0��ۃ>�9�g4Od�N�i8�)���<|
.[O��+�q�8���O^a���X\���ū�Ú���RZ#�u}��g�\�����"ӿ���3��0���+FH�a�
��W�
���M���q�����M�7��-:uq���Su_��qp?��a�`����ә>^�h^����� �;
�s�͌I�.��1���
����
�_�^�	�}���C~w��=u�e|�������>��r��,!݆���!y��tVL�
X1K�/�W�[�����e�2c�̦Z^�ً@'�~��y�y�_��=�ͫ
�O�8�v?;N
DZ���%���n;7�zI��m�vݺ6[E�֪]��
��B��ҁ(�	ʠ�*�k�T.��T`�@
��`��m��2���sQ�S>����w�{�y+8�!h�n�	X��
��_8�wp at 7)�8���2��}���]c�^e��� ��?��̫��
+<߅o�7�9���|
N��Fb-C�Oo�c���\#�Wp9/�|^�u��¹�|�<~K
��hM�^�#8��0lO1|�e�.�c
�_��
ރw�&��2�؉��_�3/�^P'�=�C�%��i��/pZO�~���|���1��!��}
+�"�zA�RB��L�y���,|>����O��s�yx��4c�$c�syy�0���;���G{�	�W�=���hϳ<��*w�n�Y6e6N��Y���]ad�Z�yN���8�K�΋e�T��/·df���
}?�ed��N�a���A{
�)tg�"֣=�S�q�y9���	�ܯ3�
+����O�Tn���a���w����j~���	m+���'�`�6��@;�v�a��hO����0y
$���>�f{;�{��n2��ŵSϰ�ހ��a<�_֜��B~�c7E�E]
��
��
��
T���K
�2/{��]B?��J��5h�g��I�8Z��r�s̜��y��)��u����&x"�<���参�
ǃ��-h�Qt���1����"���Eo��2K�n�B>@6�X=G�����Rf��f}��6C��<��o�'�G���q�։J�e�kC�}7Ƕ�a��1���1��1��-��4+f
�:O�l#�������
<�+xr
����d���8���rD�.�w-�
+�2k�9�s�9Y�޵��XE�N�f'�;VR+��	��8WY�\N�c��o5��R�T� #߯� ��"g�� ��~��m0�a�{�i	��g���XV�
�q��;��H�V"����/��4�gt6���覲���4�+���dg�dG�$~
+>K�c�@�
Z�bK���I�~��hy�Y�E6�Vh��F��~
,	)��Y}E	���S�Q�iT]�I�Lk�i�S��;�,>�D�j+>�V�%��������%9��ib
"�6���N�&!�����ˀ�Xf�2e�z˪�c�U�9��9�Ty�:�;�Qޣe��JZV��2�V˼�
j�
Q��AE-��\R�rU!�u��9E�q�s
��m
o�hn��0��*��]7�t�
Ե�Ti�U)�C
�j��ꔴ��XS�ҤZ�n�i�cƄ��YE�y��
j0�*h|J���Tg�X>�E����:'?
'�n�݅=XK۳��|���ý49u�_;�-s)�(W�a��Q���V����+�TѦhEJg��ά�kpn��r��*�[yZ��srW^Ru�
pSngN5p�woc-u@[>C�
)�V���B.1W���ljtU(�r+R�W�:��긂��
+�����ܫ�uo���n�k�UsJ�5_���#9�ϫ�}��*�s:���Ļ�v|�O�A?t�
�bq�o&�F�xL
+y,j��+P[��Z��ޠ�M�y���u����7)��6U�>(g�9|'e�="���|��R�uޜ�p �-ĺ�V|e�:�^�$�Z���"��s��~�|�K�w���F�@�܁���rҪ
�d%��
�"#�O��	Y�_�%xQ��gT
xS� �J}NBw3��h�&h��ڡ�{�����P��a�\a���.UF|rFB����t�
�
�-:'kt�,�=2G�WY�!�D.�����5���Wi8�{��	�5سl�y��	�Cc�~��;7�zUS����r�
�cN1d�5�O��Qy|L��j��7�8�SE�c*����h�ct	��U���
+�9?�ހ�ڣس^�V>7C��Pǵ�Irag+Z
+e��ʖ�ʚpȒp���1�xi�E%ɔL��%�I$1ILY��(�	IpB'��P������o
�+h{��$�qh�~�\�r߅uc	�H��^"sʢ��!Sʩ%)�
+S
j���V�
`
����V�4NaRR�Rl�֝��Iّ�]hϠ�ņd���6h�3 /���/��<P�@�������M��M,�"ϰ�2�E�
�*���� &&C7�9ų�>LH/�S/9��t�5��H����u
��i࿏{�v�w�
�#�����A<��0��sqsc,��1�
|�rl7��mF1f#���+�>��i
�<>]��s��
����4�y%����lH*�P_���r�s�N0+8t&�ܧ�H�(�)^b���)<��v�;[�i[A�:A=A�8�m9d E������A����ĵ�$+"�o��<8����ߐ;�ݼ�l��dw���쒓�!� �SAn
+� G�@e"
+�JG�C�)��)R��Z��СPfl�ik�RA�Te�j�~���N��ξ�>���
���e`�.�ɐц��
?:񣛜���M�' �х��.;q
��+��\̎����
�
'���)'/a�����S�}��	0�Pc7�!g� 
��y�� ?QK9d���%�
.���� 5���u!�����}�0�kl����V���O)�^ތ6)��
�`�{`�5�=�0���XI}�Əu�a���K}���u\��kWr at n�zc�y�GY<�D^�%���-ći� �5�M�7�a��&X90��Os�� 6���&j��>괟d+�V곟Xl!y}K؟�6Sϟ����!�s=�U|R<�
�����/��hr�뭁H(!0�
XB��qa�C�*5�?�+8p�l�I�>�����|��	��L�}_c�uM;9`ͅ�9�����x7Z�}���� ��k
�-Ǹ(dD\,
�FN���
�?#'')�3q˥����|x���Cul���b����3׻�Z��>�W�]���y�D&�Qp
�$�
�U\0�!V�s��%���q���@�ϓ�s� ,QTg~)���!Ļ�<�jg�	۬������13 BM�� [
�I��> �����e�W�9�I���н�Fs�ƺFA}�p�C&k��@&0@>�r0
���u�-�y
s%�
��kT�m���r� � YWI���e����{1܏�-S׀�C���X�5�ȵ�G6(пјwU�H}�r���:~\e����������M�!
s?Σi�j��OZ��{���$U1�#�1J	]v[>�_���mpmu
}�)����'h��ЗQ*���
�8�fy
+��>��=��w��$��)
t��9Ïa|�$
���љ�Y�;�6�����f���_)������b�
�5خǶ��&b{�gb���x�
�O�)�5d��t;m�G/Q��'*;���������)p
��X��U�f{
&��wѺИ����P���n���.�N������Vjd
~����E�=�Kx�:\?דDt�O��`X	>��������-`��U�2��K��@	�+�\�g���Q�Q�����H/5�?����z
�OR��z��^N��l�߰�Ǩ��c~g��;h�$�
��i=��
��lYnl�	�W�P��:l7`{
�'�!��n��
-�n
_�%s�ŃtAz�����D��w�m��_P|�
�ت���]>�`�td��J�a���7�#u:��ID�Q��R-4�,M�GZYm�� �b�ÛV�͵�ǐy,�G���1�C,��E'9� '
�F;5:KQ���L����䥅�L�>��f2����H���6��l�����q�~+��9�3��=\�s
s���A�OǾ
�ٚ��5E^8BpD��J8j�����nV_����D�����*���P�#����
ĸ�c7|�8�V�3�p�w1���wG����6Q)pd‘G
n���Rx�੅�
�M؟Ld�4�H�R1è�:g(UW�^1DwA����ý��x���K�#>
6s���1�3:m���Ԑ`�ˀ)��𔰓��U
W
\�ᚈ�x�C����	v�~���nw��]�Al }����`��hi�`,�
Y̹��ß�I����)�&;U�����^U'�4$y��R�T�R����LPij���݊�.V8u��S_T(u�)G�9%�RQ�}��_��ι�_m�>�@�xV˻���JP�=Eՙ��a�2å�L��2�T�Y���rEm5�����W��EA{�������kߢ�^y��䶝U�����r
�F8����X�ʸ�
�HjF�Jޗ�O�����4�:���Vđ��,��Y�*�*U�� "�� �3�����X�|�W�F�\�~9���6> ��>`���b�:ɧ2��0ہZ��yVJ�)�7W�J�I*vf*��R��R�Y N@����9U*�!�k��]S���˵HN�Ze�^���+��쮳�
9�ALk�=�YH�I�;c �Q5�W�R���>
B��K�?/M�<�
+�*�ϗ'�'�;�<w�rݵr���LR�g�
�9<�e�l���2<?Q�������|�
lυk�1�
C@�"�S
�|�^PP�,w�My^C��\�������*�7T�o�
�f��3e��U�������Yɾ7��;�*�{G�ޘ
��� W�!��A
��yA������-��@��A��������
��-T��P��C-J
�ӆ�)1�B�&�a�a0�L
�bZ��N��0��uȣj~�@$�_@���u
ϝŃd�S��d�ʌ�*#�Uz$��H�R�ÔmTbt���(�"�I݉�À)��a���%�ى���>����A׃A��A���?L�
p�����ew�^�g���;���n�	�,$�$�\ T� ���
+����D��8V�^���Bq
�2��Z�N��6�#�2�Ң
��
��>��q���;���9����o��yn�'�[鐫�%g�+{ ]I�l%
+e
VP�!��d�"Z��� �"�8��<�<]��LpUq-��@�ԉh �ܛ_!�
+���c>
)�
$�Uc��֥�
&�S�a
+(��H�w#��)�<a�s2�9�C�>��q-���J��FP
��.�~1���͵�~L{�	��M�H��i�
4���
-J�G	l���l+@�5���c`��*�o�
>40E70�c�ۭ�
� +�W�/��p����dK��
,1!���a7���f�F3���bl����l
m�
��B&�xjG����؄��� �;@�� |�R�o.�����<���)��>
?:�c�m9�&'�4�^6O/����
��3�J��κ�s�ܺ�b��Cg\��o3@�j�i�y\g6��^g��8
���9�@/��}��o
��1DN��Q�C�b����wD�&�A�����z�kN#� 
�����-�:��Nc�nx
�_����`�=��'�d6���2�� !'#�FW�?���r&�e��R���
R�;㚅�ͬ���U�[�uv
~��&�v���6�IZF�
P�I
�`%XEn�E㮥>��yl�>7��
,f=F���5���\�3KT�h\��5����!��%�>��擤!s��`������1k���D���-
^[�c������s�X|��0��>��
�CMlFY}
�s
��$����A
�n–��Z�5d�||�X��`�5�?b
�ߝ%b���&&ϰo_`���a��M�<~���H{xy7����1��R�X���:�8{�WY����I��ň�%
@�#_&��A�%���WL����$��u��8�x�WX�Q>8B>�0uUJ
�&�^�p�Kd��|<a
�&iD�
+�ɷ��e
+�ׁ)Vޒ)V��p��˻�K4�w(�_��
���B�����S���4n;6Y��a�s����_����"����
xP�z^d�t�
+u
|L/�AN�Aù�#�����$^{Yz�<S�����U��)��� �[x30�I�PJ_e:F=��3��S��?)�(���G,�
�J�.���y�_� ?��`0���!ݴ�o4�-���2yV��0���~���o4���}6�{4���?��~�
���"~��:��8
��ܛ$�_���,�`x
pz��&C���k��*��2�����h�K�
����q�x��i�F��A�8E�8A�8��{?��'��i��~��y�X
ԟ�t��N�-�8xl������w�R:3�v�N����k��8Z���~
��^�i@�Gu>G�|Fw�UV�3�]����6�KD��_P�Lpo����Fp�*%���U~/N��
�)ڇ��GN���vSO����8��j�Q��v��85�mjd+~<L<��P6�A<�AT��N�ye�s
|
�+�E�ďX�`��8�M���Pei ����ZN˨�n
v���6�vh=5��Y�k��^�t�7V��VRy��0B���ږ�;
�K�[���Z�n��v���X0c�K{N9�.�v9+
b;B+m�v
vgSݴ�~�߁�T�Z�ڄWߣz�O弩��x@������j�X��l�f���a3�.|6@���b��rl5��]��m�*fc��J
�x�K��H��n2;���6�� s������tr��1��#�<*��]'�`;
db?�J,�~9���c�{���_Og���hgUmD����B�g��&�O���o��<O�2� :�w�E'�� '
�,8��(��� 
lF��v5�U�h7��2W�
+������t�0�P���q�5��;�@�H�1�q�(�N�{����Q@��S	�t��Ox��ZV1�j���TW��S��UE���_�m�^\[�Ɯ�$
-
�z�l��u��
�5�O}�
�8��!
d��
W!\��T���Fl��U"[�y�O���d��n�8����(G�F�>Ɵ9�D��!�Mǧ�)���;Lr+���j�OU�,U���*���.V_���ZUb�R�mP���*��Q��!�y7^��'�q~��&
��������>�@
��^�gU��cS�;Y))*wzT�0Tj���b{��
�*tT�(�Ѭ<g�r���q+˹Z����xJ~�!���ȗ|
�qm��2�˻�[�
�U�2�O%�${
*v�T����S�+Ky�<Mu�(�]�
wX��&ez:���W�gX>�j�-J���sH
�O�U�/�Zl���(����
"�Tr�
��O��%*�HV^�SSS����I�++5W����0*�7B�MJ3:e�K�1V�ml��xRS���4N�a\�ɑJ���b��1ǐ'� �A9�J@!���%7=A9�$e����(����ϗ���P&#}�����cr����?��8ʫ
+�o6��$�,��fw��I6�l~vIHBH�&@�J$
+�$�AkJJ�J��RZ�j���X��ZdZQ���t:0�V

�v�ږa�V;������0/��۽�=��s�}�o�
+|��ӷCy�d�}K���e+��
�{�y�3�����݌�s�lP⼫����`�M�2�|ey��*����
(!�Uh�+ت�`���>9�ò7��RN-�F
 �����6`|K�Zi�
+�����|A|�l�r�
:�)w�
r�(4K�P�
+�Q~�R�pB�p���N�ˆ�
/B׏܆hD��Ѳ!|���PN�c%|�a�#h�p���JF�0ߕ�K�<G�r�����rG�*��TP�V
���+�*��X
瓀�-� �c

+�-�[�� �1��!ʜ�ޅ���J� �x��]��%�oʀ�gO�&w�]E�<T�/��Ɠ-�Z�MT��D+`�J00%F �Q������(b
��'�h
|},늑���]�/���?���<�w�}Qܦ�Z�
u4�zX�;{�S$6ł:>ż�bxLq㤸S���n~ǐ�� Ѐ
(������%�������
�]%\a8��g��|�JH�l��H�Oq�4d�i

��X��6�5������|Ն�oexhE��0W�!��Д� ./�n{
y೎����Y|<���
�
��sc�Zl�ŏv��0�
��:r�� ��E�E��0��&���u���٦�0k�@3�������nI�k�%���e���
o!�y��a|��Hs�v��B�������!'K�A#KY�d>`�]�*Y� �� Ճr\t�u��L-�1G��l��k�� �Kx_
o��8I/9kA��!�h.\���c������ <�FV�x%�X�P�b����1����4"�sq}F
(�vx��g�U����m��xm�7�%��g�#rVZ���5�d
�c?��%DN�)�q63���c=
+qŴ���yּ#
3��6\��/5��������Q��
������%��,�iD e�	��$~l�6���[)��l&`�,�4�o�!��$>��2ꄯ����MS���~��w9Xeqrđ���&�f�������Nj�n��
�q/���X�6�,���a���o���������=puV?�&�k���y��G�C&g�
���3�d��L(9!�Qj� g�����ky?ۇ�G>-}����)��w�žk)�
+��!��#������6ko,c\Ɋ���A�(���f��C�~
��
�y�Cv��
&��ړ��{OK߹�F�*J������y�W��=烀%���
��qe�#3�p�H���\�΀���j�<9y��{�@�&�/|N:��gT
��"b�c�|'�k���u��4���
J��g-�_�-�_�_�߃?���[�m��rr��z��{ҿ��r��
GQ
+�-�@�t���%��"}�v�̨N�|S�
t�LF�8$P��3�\�P�E��M /3y^b}���"��3ɹ�#LV��9�����2l+C
+3l3�ԑ���)e�X��%�x?��<�>j�*��
+
+�-t��L4���&��qX�sh^�x_�xO�Nj�qJ�tR{�
L�(�������P��&˽�v�+p^�Z!��3��N�e�8�
q�Y�
�������S�q��u���
��s�a��(�C��2������M�~�]��
+�{mf�{�L��m�5��:'�`6�?�)�
=�|w��|_APŎ��L�籟.���L��i$_�y=B�z?
"
�k��z��DZ}���p_!B<DK�M`�2:~b��9^_�����#n����r�GL_�����Y��^.�=4����.r��ى;��v��
o'3��x��ll�y���`<g�����u͑�v�
*�49���9�T�
?n#/[��ne���
t����Lh�l�
+
�F����n$'�Dh�
�R-며���U`
���V�f�&�&L{����s(!lǰ]��v[a�`���^L��S
��7
+�U;M�ܧ�,����~x?
�,<f�ﲸ�U`�s%�v��X
S����jjcX~l��?�����m�nQ����p������J���U���=ŵ�[�}m�t��ڿ�
+6Z��0�jT�ql�A!vݠ�g?�#�����o�^vP�}Tʠ��N��AV�QQ��f�^�\N�\��Z]g���u�JËꘑ*F:t��J�3Қ�p�c?���R�l�B��M���fb���fsR0���$�<�7Af�����5��e%�"���H'#ݸ�� �(�'O�jl�c�I�xӀ��D���&�l-Y�����8K5��t�8��&\+7����c��H���T�û�H�>%��}'�]�
J�)��
�(<5�k�n
����t���b��#BŅ9!:N���w����p����CȎn��$���|_�)n�S�V��"xf���O�*x�l�y��x��H�%k7�
x�x�S�spd�;�I쯇o9r��8+�[@
+ԁ8�c�ҕ�h�C��|E�\
+;��{��Tn���������6�ٻ���4wX�܍*ɝ���yyr
��g�E�o����/��(�3�?�d�o�%3���$$`BH@���
��U��d���(Q�"��EED
+TP�M(�Ȗ��-��Z�"��"K��w�;=����
�4�s3_���s��g�}���ߖ6�(M@�rA�k&�Ь��%�vJ��^	;��
K���g�M@��	ú�Z|�
�u�9I<�9�v,�}��l�+팸�	O8:�C�_
�mk��<�b���$�J��.!�)A�-A�&�.~OHtO���H�ZsѴ��Ѫŭ�$N�V
��i�%M["V��x��sR��ܢ�x:�{u�>4� �gq�YBz�t��}N�}.ѽ
�z���D�Eģg�q�%��+ġ��~���Ţ��N��y}d8/a�Kb�rg��
�*bNE�} 
+A
�3A
���"�M�~��K��[4�[<~M�����
���[���[�%�V�A�[���r�Nj�?�����]༆��e�y |�1�G@(h�`�*��]�S�@�K�!M��>���b
G��s��)4
N��_�(|  �SC���,u%�7

�$��ђ4���ų
��`�6уv�-dw�C�a�آ
�ļb�1a1������1NS�aȤϋ� ��8!5F � -E�Sw'�:�{U�!�<�\>�y���0
���?�*>���⎤�3�&��C̙
"�,�\&57��K?�GӚ�
+�4J�C96g! -dSCI23!�rm�3��A��{�Z"���% �I�
��cfqdZ$-�*�
�<�|6xcw!^"�0�Å�("�q��k�N�Ƥ��5�!96"M�%�3��
C�s��o��#�:���2���������4�s�4�/���
�%���RLZ�Jk���M[����f���
+�ESjh���rٓ���\�gRG���������B
�%�xP�EWjI],-��V�I^T0�
��G����FZќ^IRkA#VN�,c.�'�Z�ϕ���W�:���g/�\��h��L1�$�i�RU�kku�RG[�bNڱ���E��AΚh˺���ن�TI�n}Rɻ�@S��3$�(����
�4�[f\��"��	h	/\4����D
�SGw��Ά�݊��+yލC�F�3��gD�v6gT��T� ��a[>u��
���������4UF��h���F��4�B@?�h�I|
b�aX_���Mb���H��������t��%�0>���B���S�
�.���z$�f*|ըj�@8�:F�F�0'�YP�y�H�`�pΪ����4���M
LH9:K��F�f���������� ��T{|���j��H���h#O S�4pu�d��d��������q'�q�m*i~R����R��B�7��
೛%l�jۛ
�Z�o�����Iq�@>CRM�}�jP�~D&�%�x������8�(���D�笚�|�9*Ŭ��v��h֘Ws/�w��QqN2��,����AI5F���(�SB�)RV�$��M����׍l�ux��U�y���d�.�/���(ǘn+��Д�<�np�5�K:ٔ� +�s�jU���dӨ��ݒjb��+�1'X�o#�M�����c[�:���>�ЬB�݆��j>��׍l[
�����{
T��3�8؂r�99��<��c��Bv�OU����d���
N�[����`(
���Y9�y�
+6izEq���e-Z^Yq�խ�暶U��_WݱS��v���7��٫w����8�v�C�
1r��1�7~¤�Sn�c�o��5�{gκo��s~?��.x�?.|��EO<�䩥˖�xz�3ϮZ��
k^Z�~�Ɨ7�y��m�n߱s�������[{���o����{�>��O���g���𑯎~����}���Ϝ=�ϟ.\J���������J�]I��YW��Q��dg+��/R�K��r��R�+��k��A��ݔ7)
nƃe�-ʅ��p��a�2b"NLUV܉w+3~�ܘ�
P~<�
y
G+K��<��+/b�:��&e�+8�f���M�y[�sP��>�|�
�
��T}�<:�I?(��)�.^J�
>�\ͻ%�~����_�_b2���lv�����ǣa�O���
�G8�#1<�\�|��LҚ�7?3'�
�t뮶;�f���[��m��q&O�6}ƽ�fϝ7��
[�x��e+��.j��[�ȤƟILiL�T*��N���h��j�~��o����'�G�~8��3gϞ;w
�?]�p�����ƶ��e����hbm���֮-;zW_�5����a��
3�Ж�����j�꩛����sӲ��Z�d���O���G.
54��PCC

54��PCC
�w
+����u
%^��]��/��9���	_ԏ�����-~k���w���e�
����ܝ�V�����O��Ѣ'�~�H�PG
�VF��ծ�=��Ͽ1���}C&|�w�w��>����/n{y�
/Mٵz�
o.���Ѳ{�_�d�'��װ�6R�k]�/�޳�̾�����{t�t� p|g��v�zf��fg�i;f��i�����N���д2/A� oF)�TLP.�� �
E�["-�����)'-�߶g�/������y�ޘᎀ�N"_�
+)�U�k�a�"a�>W�~�ՓĢ��
�?J!���&�v�e��zz���c��-̣>�$CkS�F��kCe\	��)�j3J�-)|��ʉ鱶
d(;���nZ���s�����>w�'C71}f�Dm<W�,�Q��d�uY�կ���b
�Oi�6 �
|� :���n\h���[��S��<Fǯ���%��wE:��!D|�%K���Xu���#	���?�װ
+�����}��~ϴ��v|�ʵ����M��4Yg`&_�`3�Ȓ;
+TEr-ZF�b��J�_
��6P���@ ��]T�n�m��=1�l3<q�Z��'J��7V�
�`��tH.]�*��G�S�¤�j|
VJ�[(�
�{V��5o�'���92z��ᴫ{˔�z؇"�
�����ȂD
��A��ز�z|9ZN��6P
+J!C��ճ�'׏���:ڴ�^tSM_C�Ƽ������
Dz�1$���$7��M��0-���,�6P���XP
�j���w摳�Z_8�l|�rE:��Nxc�����~T*�� v�2pFB6����Ŵ6 ޲
�v�eF`����5m�gw��8�Ȁ�Œ9�[y�ވ���X��DBGG<����3))���若[�زl^��ў=��Ǐ�SϞ�)v�����{7w�o��8�2�
+���bpO�8�">����X4	>J��6 ���3��O;F�.��
�^�h���
���W��}�F�]�υ�
+{��E����"�f(��/c�`�4���Ѭ����7�h�^!}w�>8�5��K�h�ʙH��AΡ �5�.-F\
|�{Gq�{���im=�/���Z��t��Up��
pdK*8�+��#�K����D0��
+�3� {���� ��7���1�7���@���A�����o���Pa��.
57�d0�~D�K2qH9�y���BCO�mHLU��1tՔl���2�"8���dX2,�
K�%��e(�
%6@d�u=
+�ם�����j����^A���\�ˎ�*����$�,!��2.�K
���Gv[��=����ZP
+$�A�=]����+�#��zw�^
�X�aF�*�b��Z*SR�D	�&^\��
��4��h`C�͏@v~'��x�<\�վ���A�G��i]8�^@(W�I��<�}I�X�A�-ed�YÍ�DV���a(�
e������
��Z�g:8�QCHz�,��I^���P�Q�%�x��I�-��0�2����,탡 2Ad��
j����k.s�[�g-���H�Q���$Xi}y�J&��E|���N�e2��
�@ZF��� ����O�
�A�F�#
zw��/؄9Ќ��ވ��0RYe�J($�9J;�C��`�M􂜇����}0� ��P��/69������&�I��l���됼:y���*LYT~?W at l�ͥt%��SY��Bf���a�C�*�Pn�;�ӑ��W�_�ހ��}��]���M��*��'�(�b��N)�%�O2�qbzȅ)}���^K���g
X
$'��mo
N�_u_q�
�

y�[�r=�P�"fU��dV���p
���=!�:qܴ.K�``�ZJ ������s�^�9
z�����5��-���&i	*ઑ�9u(I�#O���bD
QHnƖP
��VKE��2�j���Vwn���
'�\
G&���Ǽ����Բ֠�m0�NJ�\���ɰu�U���H
Z
�
%4Y�@�"� ��5P
��o�g�1i�p`䉳���ߦq/�����g����(M�Eɱ��Z�,��T"�V $�K�M� 2T��jA}��)���Ï
���9;g/�(��Ė>������Ȝ�f+Z��5�b�� 
m ����@9��� 2v~	j����l��̆�q���'G��%���7B�#~�̇��ސ��t&�
�n�磛#X���B�.�
��x��ю?�S�]1a<�u��톖)����/�W/�z�fn��N�cSG��q�(j�9,	ߏO
�%���Ɍ����j��1!��@��πt�/��,7�]i��u�䁇a\ŎU�q\�3:Z��:.g�
+8g��:
+ElA��,DBHHB�@¾�- 	�@�%1,	{ 	�E���"
+ZD���|���>^�‹��w���>��L�p�P
8:H��"���O�l at H�4�@D E> E�ߧ���h
�x
3�{
=�p��~�@��bI��b����)���y���`o%��6������5~)�
+}
�Oz
t�Gr(�
�y�������_
x�	�{�L|�@�m�T������+5s7*��N�
ȁ3GR�]
x��څ���)�
�|9x��^d\	\dy��b��.pP��d��m�k����k���m_� ��"8��'�q��*�����)�c {&��B��?P�|��5
+b�} ���\����hX�L3���5��j1|����%��/h`�?
�b��!4�
��У( 
���^@9�	�S��a��6������
���r��
��%'����P�b
5��A
�(�=�)|F����I�S|F�!�'����AcI�n#V���4j�Bkn



�{C.b�E
����aԞ���=�����a�g*"��t�
V�P*GhHL���f)��sU�Q�͚H��%����P�Y����~5�[y�6���V�!�zgkhpw��K

+L�y}\DM�3
�3�]W�����dk�i�jJ���$��#d=U$y��A�����
+�7B��-P����%P��_6�`
ׅ3�$����}N��+5A�IL�6�2�U�<C��TE.3�Q*{�Y���3�7 at 9b���*���� �>���`�#%�yWF�SE�
E[V\Ks2�[��nh`�Ա�Cb�x��.�
蕽�|Đ�
+Cű-����N�����V��>ߊ�=j���Vy&	����ޠ�e����=�����<S%�tX+�gJ�y�R���3!鱿A
bhv������W<���Z,�2<�_
)�*��4��6%��S�K3J2x&a�`8?A8�ͮ��bK
��� �� ���
1�8ZA�E�7]^
s�������̈́<c]DU���T�1��v�$?�P��
�g�G�S��Ӹ�i\���~1 �b�?Cbh��
4�Vo;/�/�<=��������h����JMm��^��V
+�z�E\� ����N�^禗p�$Fs���
%�A���A�h�SϷ�
zO��}�
��G���-��rc���)���.&xũ��œ�B��W>�ή0�ۯ��k@��G�
+*���h�����\���̰O����^LA�� m��(U�4�2fw���O'p���xa�0��|�YPa47(�t%��1� ��Ο;�
\0^��
vw���
vgԟ�g
�oB����� l�����;�e�^��cdUd���
���~�Pb07(��Pf�
G?���^��;87�rz����ĸ~�_|�)8Wх�����5�S����S���r�I���Td������C!b�@
��As�/��<�q�v����q���XMCA�R
F���ӯT�bkt-�#���sU���V%�U�}8Y���@������@yd���;f���ј���/�
Oy`��Q\Gg��Cٝ8	��P�&*)��&b�W�l
�M�@�fv��
#b�\MG6��l�O���?����w3.�}��CU(��&:����҇+au*�mDYD+�6��Z�Q�(��������~ʌ&s��P��cP|��M��
3�[�ǿ�3������E͋KA�IT�`

�9�IK0�s�
��^R��
��E��`J��2_m�
�M�67n����Ձ�/t�]w����I�}�Y�S����Խt�N��xh*w
ǼIH��
�N
�d�
�r0�� #��oH,B�S�}���ĈA���7��ar�����>�=s�߼t�D�[g���n�y�QA��A�$�L�N�'3	c�8�
FB�m}����.)u#=�g4��b�4~n�o�����U��c[������Q8�� ܾMYBy�͇�f�BHOI8�t�8�:K
+���
|�H�{�
��Ƞ�Ld�
T�}ū���o�ݸ\7�gMӫ�[e`��
��G�p=���ϡn��O�"��@E�d���Y�s�@�\4�yj��lf��lV����/�o��.�=ٴB�j�:
�*����n��%}�
���l��Nmg[������S�e���JK��n�/T^�����P@QQQ@@PA/]�,�Yi��n��m����������������y�Rؽ�
+��e��[
+���C�>
�yE@��)H;����a���#�s���sE�fK��ϖ��?��,���?_�V3|�~l����EfA��x8䌃���X�H��?B�� ���r��
_(�{
J��h3[��^^0_�S
�3`��
p^A�����kO����� �o� �t�7�$磐����dm���Ð��А
+P�+����6/�
+�f��^

G�p��1~��)��$�T1�|�RB���.���玦�T�M��
I����千�����.Yo�A��7�7�7��SC�kCɦ��C
��?��#4
w��PO���?�N���fo0��qZ�bNY��Ln���~(�VbOKm�k�Ze�u��8�M�B
̵����Օ�?��?��#Ȏ��,�kN�D�s�:#�:'�>V\�9Oe�
���t�̚R�2'��L�掞8�N��h�mנ镡1�!?mb#�~GP
qEfV

�	7UO$��K.�R+��
�\f�9�\cL��u%�u��M�Xy�
ߪoNhkG�W���F
5�A�k(�9���ԁ������Z��$)9��3�Ε���4��R���f�i��Nb]�6��*M�Z�I�nAӉ�W�2���v	�-�&Ġڷ
���6 �[�ɐiuL�
Ye�>�3��YK����@e����6r�U���/"4�
S�jb�
M�C
b�"5b�@
�����Ї�IUB�EI*w�:S�W���.+Է�[i�>9E�ߔ+�U�K�r7Se@p^*6���A��3�x��!�Y��!,�!*y�-�vAN��E�M&A���Cӫ�
���c��uԆnv��C���$e�^X_/.bm[rĠ������yb

�g� \����)�ƴ&}
I��Q�RV�������m��z;��hg���y�n4�6,
bhغ
;WB;b�>���t��
v�/��KWt�:A`jNm��g��\}CE���Ŵ�6N��Π7Ҥ}�4E��
1�1��1t"���/,�1��Aa��O�\4Fٴ�C
A���J�d��2�ȫ(��8
�Um�3��R
�HaD���� ذ$[��n+A�����?�
��
+
��cSΙ#
ͺ��vU�D֜�Zא��
)F�������/�
+(�F;�Lj!����
+14!��
+�r�f���ס�^w�������
Y���]1|�6�Q�HUU5gv�Ź=�uts��ԚSͳe׈2xRKFE�MP�8��1H�| Z�Og��k��1�
���5�zq4�`��.����dz�X�FPV(3�Kd��&Z/��a�s��b��P+�K�V���P��B���
�CǎOf�{�~4�������]=|�RP���IZ�-��`��
I-����|M�����)�z�圾�Ђ���x��M�E
�������os�
?�߻���Io���cA�����?c)ґ��]�쉗RtI��ZbA�e��򺣕E�HE�)B)2��*�����A��W�8/�1�����/o\��
#�=�s# �ǒ�F#�l{t%�/N�Փ %�	ʸ�tM���~����a�B4|}���M�G
�5
��qtl^��������4��4r�a������8���((>��
���'	�)
1�tIDIz��*5+�
��@}������;�X�p�gӻ�G\�^��k��m'�#����!_ٴ_D�TXr��R,-s4�A8K`��qq�Y��9UX[~M���6�®���QU�A��۠]��t�w
�\����ԮU�G��g<��<?x���_(�>6�`**9{".#u<��p�H��,���\x��;Jg��g�������h���j��_9L��q���4�ku�˽N�s�w��y(��ϗ��dyI���K���;�N��$�'s�OM�g�]/�
+��$^���y9h�:�жr�����L~�`�v�@���
	��( W6x���ϛ<{�q&: �YBH�Tl��������)�؇������Kc�����ǣ	����ڻt��K�_gaM�YǙ�q�ZG�u��ֺUjQ���V�n�����,�!�
�Bd!
K �,d�D��PZ��q�:Z�Z��g~�y�:��E/�����7\�ߙ���}E;�Y+ /W
��
+��C�A"��f�?�O� /8�עг�����V�:�sMx�
#��L]d�ƨ��ӯӌy����.��Z����rp_��O�F�����6
ߙ
a����^��
�c��P4�
���#�@94�p`���X(�^��<��|ͳ��º�<ض�
�J�smxoƒ�k��B��i�팄�Á���}��C��3Ȟ�P�'�{���$���N}�s]�����
+����݅T��f���
�V���;�pd}l
������I�m
�t����?�n;$T�Ǡ�C? ��E}����e� {,��k
�|7�(���^������^���B�|X�λ_�+�'QTy��Zs'��1��]�%��~"��0�����]�_��,p��
��/
��P�X���� � �/��O '7�'fi�w�Ԭ�u�Ӆܲ)���5��6����2]ɞH�iO���Jq>�
7
'8��́j�');�m{��k���&h
�ho'��'D�X_���A!NW1K�)��L��Y���[�Ff��Z��y
on��: L
��㆚�
��P�
5ۗ@��+ at t� =�	�
 �򆶤�YIV�S~AƷ��ST*e�\W;^��^'��c���F�:�/����n΢���w���t����@s[\d� ���FP�� E�t$�H3�>�eOs�J�0)�/(��k�
�h�@>�Ӭ
�n�
f��v��hN1�{�����vg�o�'���h9��_

��
��>�u6�EgZ�cin�=aq�W�u7h4�(�N~	=�"���l'h0SF�I7��21MG�M�l/
4d`��B�
mȠ8�4'<@s�gV
��;5�Q�9�Ts�
ny�����*�r��Q�(����FR�iھ�,
&#�{Zs�Jg�K�|�ݶ�� ۷��6@����|ftgB��&'=Te���H�[��H}�����U��{˚���6���˪���Zs�}�I/��S9�K
�� ��'h߷
+T7�����P���1!O
I��=��;s�c��Pc��ƪQ���m%�WY.��(�I���M���7����ـ������� A�d�
|L��g����GX"nJ�Vx�+�9�J�%rS}�Z�d5
LV%��TH��d���Hm�/6��%���^��A�fdP�]	=��{�}���-*�[[|�
SJј*�9(#6a�"��[�R��)����|����Υt9Xe*�\of�{{���8
�o@��eЅ
��փ�o�s{����Ȑ選�	
WtE�����i2�ȕMe*ic�A�fa<&�ZO��ki
*��QC���P�:g�Zd`"�<�A72�����`���/F�L]8�|ÖT4dHc`JB�FF��%%*��R�md`l�ʨ�k��JF��L�a4����g�!���MP��
�}ޝ��n���I�#���\�I��H(t�S�M�@� �Z�E�<	Y_'����lkW�On�:JT��
KI�I�lP�
,d�.92h��0�u/}ݾ
�t�ZX���i�������ڐ���s�M�J��LGk�6WJX}�"��P�b���y�

�Ѥw6�[�� ܺ:����y{�����G�=�~b��xH��kQI��q�F�ډ�s�B+GC�+K��U�b9#���2�� Sڲ�uAd�;������ ޺�ܗ�����<r�uz�������D��X��bbu��ȳd53MĎJ}��X[��S�L�P�-i�.
^�7���:g�zd�C����z��_-��?
�Zs���-w��yޘ
+
�0
o�C츚P%��R_;�!���Ȋ�]D
Y��K���lC��ɔh����$-�q6ଜ���@�e>�/zn߽����ʯ'm�y����t����Sq��ф������̚�t^����s��4{�g%w��Q5g,lm�E����ڬJg�d୛
����m������
?����g��z�������݋N��P��*��|3�I;��
!	R��ʼnC䖸
5m��ke��y����_goM�i
�#֊NǺ_��ъ�b�Z�Ԋ"�(�	D�	K�!
ـ� !!�@BB� 	���"ua��(nXQ���HU��^���h�?������ܿʪ�
�@������-g���{��~��o�٦�w7�i��aݯ�'�^�	E�Q��G����	���T
�Y���̂ȟ�Ea|1��Hx]&�����]�-E�"͚�`^?�e��ܡ�����aWtL
�m�qu�~���)~�?�;I �_�)�O�Ԅ��i�_hY�=�A.3���+�ݑq�+r�nW���-�n����/��^2���禰� [...]
+z*��)S��hS��es��
s��
+�����)[+�,vU%8Z��y�p�s�� 
�T z��;v6ُ�.3 �-#0l�
�&��.	���.

x�
���D�
���ꞏ�|c��es`�"5�^Y{�����JO�D�'"�E�5
2p!�8��� �;B� 
���q(���7�n���\���v{>F+,U�y�v.��5�ก
+.�I�-
+v�A��@��Dl ��
������8p
}!���������:
�.uXb��,15���(`ռb�Yȅ�K2��U�w
�ׇ���	���_ �yC�7^���R����
@�qX;� o�;�w
��]8�|�6s�\��F����V[�a��4��,�/� ��A��qp[��k=��;�\��ȯ� f�+�7�@��!H��26:C6�� pm� �m��l
��O �+8{��q�\ׁ��D!�P at r��ԣ�a��g
+B�dI�R��&�ԉ�q���MYϢ�hc�.Ɠ�ޜG��{a�87Ns���o��5d�X�݋�`�J#�o;���A�
��c�c�x�⇿��L��N�HV�<O��xF����62G��F���_��#��yCaC���[yh�����}!��D?�١u ���� ��(�� ���K�d&�̒�=KU�
'U�
Qjx#$�~�Yx/����h0�_|%|@t)� M�F
Ld�0�-�/$�m/��ߠ��	,�#]@��N����4��<����r�Uſ�P]8Ln�"�e�1]�}�}}���I;�"41� �7VP��
���@
�v���2���~o�i�E9�����ќ"΃,�`8U)
J�*�A�W
�Z��1]���
U]�K���WN�c�K�����j"�p��k����~X�
u{_��F�L�UB��	s#��0]"
L//�j��(��+$��7���
�S�ӭm"]V�Weh.�/X�m�kg❟A�/*����vPs
 [...]
g�
F3�Lc
�L�.�S�I�TS���<��F
|d�Hw�*��@��4 �7v���l�

�%�=T'�eY«�,��<���%�n���5g�
��ڦ���fmR[��z�A�ҭ-K�U��A�i�"��2�=��n�gM^�iS n�)<�q},��&�q�,]xQ̐ux*3�@gd����
+cuvu�&�ѤHom9�v�(�8_-ͼ�B�"ΆyP�����a)�!�f���Z=
��p㭡��є:
+�2E�)˖���*�����kX�F%��Tƨo�����3M"ZWM�M���,�����S(C
U�K������i����s�����໦���z2���*h�gʌ���0O��֗��e�
+��]k�[�F[� ���TN�M��A��Ag�����6W�鮣�//
w��
�ER�
$zGu��Y�.�-��*�\]Y���D i,�W��y:3?����i5�
z
�[�&����1T oe���м���g]l^u����m�;8h�=���Co��?�P�"ՖgW����K$��BQq#�Pn�	�f�����[����
~�Mx�Ab3Ԉ�n�����m�����#�Ǯ����

��F�4i�
+_���(�J���'�u���q<,2��Z�VP�\Q�JUd�}�=�5@ !a	;�D�HD���Ȏ������
V�X�� Et�>󞞹'�s1����{�����.b�X�ܛ�|�mz^y3-��9���D�^鮒d 
L���4T ���~����m��8d{�嘳�����@�_h[;�V'�(�����PJ�I��ki�)%�F��'�\��WT��on��u���wWI���e����U'���z���+�fjo�l���
/���c�}I�����6K ���m�+Ψ�U\�f\�V�����nF����e�o����ÅwE��*I���> ���fh:��֥��ݰ��˧֚�.����n�&���(���������袔[������1��Z�(�>D$h
��$���k��+{*%��KGu������S[��o�{d�<5mq|셽q�������j�?�?�gpzB9��(
��R
�F/oeV[�׃����Z�E�-M���]5���rI@�.i��'
�7��crk]:�_��Sz��p�؜�����q봋s��d
�

����2h�D��
���Ӌ�����>n�_��ҧ��ʫW\���[��1(�\Ax*�P�&
��e��~�Qa�ў���w��5�rr,��`
����)||�dh2e"� [...]
�֭]�,[����y���
+�)u�߃����
�'/RBHo�ƒ�H��g�����y��Q0��	��
+��L=��E�D��]
+D�I��(�
>݂�]�+��Q�[�W���_M��[�f��1��-���c�C\ÿDa��)��5:6`5��������\��,��+���E$�Eq�$���r�V���7�z߂jZ�'W
�ۄpN%�4X`�E�3@D�߅P Y �&(�����
�N��v��
�/���W�m�����
��FI,�ˣF���9"�/*J��~����
�?���*\8

�'C��|�� X
d}�5��1RL܁i��
��k�|s'Z8B����$1�"��۳	u�
��od����8��:;��r8�
 ���8
�����DC��+D�8C��N@;�)�/S�
�~����l��
�ZC�D�ݑA5�"�*{&#U�d8p@>�3Nl
�]80��
�{�`����
��
��m��a
�CVs��X@�s`
5�Qd�
3��c&�?.��n)T�C*בֿ��$��\�)��/�]���
N`��,w[���V6/S�W1���F@�g��
 JU�T�C��
����4��$��"1�� Bg
$�*A��H�P�
'
`�jAj�9H�7Z�
$d;A,
Q�^��j�C�>�Ak�6�*���8��$l�(|�g�<�59��jC�o�_j at nE��
Dio�K�� ���0W�,
`{k���X3�_�*��y���B��J�Z���J�EZ	n
���$/F.�D��>���y
;�5?�5�H�oC�IH>�,�
�1S��d{jC�<��, 5���uj
�S� h5�<��:y)�!j���@�Ky4@��ݿ4��$i�g�>�3M��M�$"
q������:��y�;�*C���a���Ӈ,���.1ҽ?'q��L�.�\�|Q�&����$NzE�s�eP�
�O����N��M%��O_�P��@<Ґ�� ��ֻ��<e��h@!Z��
�jY�u&�o5�C\�D.�S^GU$ͅ�`̐n1���������p��=����p��
�S�����4\:� ���9�
x�� �V��a
��d���Yˤ~Hg�/$���'�g�K�'�d=
i�N��%

���t=�n�?e5&S74�!i��
�HC
�������J
�9�@��ї����^�\Z�;=z���4C�1���O#�
+
��
FI�%��>aOЀ�~��9x,�&i<��4��А͛�l��G6�8<d��2K��^�QM�k �CE�u�:N�U�b�{ӪnE�D at .K��� !lH0B�L�ɞ
A�a����V��b9�*x�Z�����{��������s���?Ua^��W�^�S/OU�&=/����ԇDs(KPٗ.w����F�%���vB��1���.i�o�
3�)��� 	i�C�[���s1����ZО�̞��7�̯����Œ��L"i��J�'3؝�\A{�D�JP�[𵪦�uC�Uc�u)t��"��V�����o���Y
dϒ
\��k�p�����yW��icvR�5.M�ss
+�d��V¾[�6�
���ʺL��:�֐a�)�V���+�f�ę�L{�j�GJ6;o�
T
X
+ڣ����ƹ��o.yM�G`��bF)���B+�Do�S9&j����+3%*M�F�̹��g��E�� �[���W�>`��H�7K� ��
+�A��Nm��ta�Ls��)
���J�M���
+����
+
+���.�QY2%Y��")u"b����b����]
+q@�$�8�@��50���E�ڿ�����p�����������0̿b�����v9��Y�C���u�7D��r��V��,��8d��I6����Rr���<ĵ�H	i(ߴ ����׵G>��trÛV�
/,أO[C0L��]5���SI
��=��V��
E�
���fKt
��XBk����US�
j�OL�~Wi�_
����	鶅���	�^9k>���=�퓝�#�ۃ�͑Q��q�Mz
�ZA(VI�Xb>Y���ʙ,uIr-
��Rz����V]@�j
+齒B� �
� 
dW'`#g!��
ƽ���ß�o=��Uǹ���C;�|{Z#"[o]M��I��j��RE6�')�
oTWV�(
���V�X5�
֝�
�U�[�+�+����h(��\�A��j��|l>��m��/^�����7��K>���fs,�ؐ�'�N��YJdXʮK��2_��f	dz��h�
�F<ߪ!�z��A�=P�4��;A%r�@��Esw�]���k��ЙM?
_p��8�#,��-:Ym��+j�QY��ņ<
YK���
G�*�h�ez}��I�$�jp�^i�x�o\GJ�9���t[�i��v�O��=W�{����y��{7����Q�UmqY��d
+݄/�4�s�
+��b)��R$Ī8�V}�pKs�ة����U��� u_8�t�#Tov��������4�t���_�����6�=s�
�ꋈ�w]�`X
��Ҋs�dU������4a|S�$�$�E���#L���M����aT��
�!
LdN)�σ�M�~k�������c��K�_o}vvo�8�~,�x8<�⻘4j��������̒�by��Ɖ�_Qy�"�Z4���`k�0�m�z{�i��4����hހ������&ǁ���qܵy����	����9O�"n|�@
�F ���'gR�> ݈����6fY�M\d�2m&V�p73pp�,�g�n�W�A����8���vx2�
5���������c�/O�O����p�>D�962{"1>m"
��S^��gEYQ���ϸĐ�҂����z���6
+v|��y�l��@�j��G�r��
j`b�C����o�+
o=]�ޜ�����������3a�93W�g�C��3"㧉1��Ը��k�xI!/���)uJ�Tm��
s�E7
��C����j?E�X�z���f��?l^��s_)�����;��x����ً
ٳa'�f��K�����f`cf����K��ʂCgy!�$a�~W��������}g��{�e(]P�������;#
Q7��l����a��
+8��
+�����`�� ��x����d�( ��
y�B�r&�g���
����p�>����;~�`���}
���j�uB���R�*G!lu)���)�6<ק�i�x��
A;/CԞPH�
i� �=H����1�=�
bPz\ �Qoh�<-^���(��e��CUM-t��Z':�-"��%�,���X8�.
λ��� ی��-~����^��m灴�
\�qJw�֮� �ud�O�~�q���|�2�P�G(
��a�c>lpN��������j2[�Ke��8v
GEłH


"
��
BH)$$��{$!�H�*(( �X����.l�"(�3���{��9W�?p.���Y{�o���fF���0��
��� dI 
_���} ��R����b/�Wx"x�W���]�^�
�<�������|�s�8ųq��0}<
�N��b�8��!��
���cV x}�
s���<O86o7���	(G�s��
���
�
]��p0n�".��K'@22'0.@t��gC���:���u��m�t�vHzI��π/9ت#��;
+��
���!�:��	��.��񑈾�7შ���Q���l���uXk��@q������ 8���
�
2�.��y ���?M� ���*� {&0
a���5�5�sL�CTW�H䓘�����㞇
������R�L 
��� ��S��18�
@p�	����I�
+,�.`f�@�� ��h
����1\M�פ���ċ�_�ſ�mC�Dwaޠz����{�q"�&ޏF���
qH�� �-S��c�9����C�A�
8�=�����0�냁��obI�������u�1M��諸��6›�.b?�)�'��|?�UjG���o�� ��	���
�?N���S��}H�
A��	��� �uA�^�0�Kpt���Jˋ�B.B$T`��Τ���HN���&��6s�ރz��:��hG
��F�&\���ȈqHC�Y6қ"�� �tu�h�6�2�
���@@�e��	�̒G}��ߥ�G���?�մ7���W�-�����1��ۨǼ�Q����}���W䋱�D[��a�=����<�S@�6�{��9�n ]���
+����|����W�(�m���j��$2_�+�ϒj�=�
��7ewb�ʯ�t�[bs��{3��i��l�E q`��B����3@�{
��C�ag0���I�y�&K��<^R���K�e<"�ywqE�Τ*y{b��V�e�u�mus�]E���.�Iv
�9�Tҋt[@�@\m�5�@��;� �g�5,���z�y� ��C^��p..蕒�\�Jy�%`ܡ+8�
э�|�U|��%���ۤ����;��Ԟ�ޓU&?��zY'qϙ���@Zel�yeH��N�ι`�^:V|`������~�yI�ϴ��n)����0o�$��t��9ͤh$j�	�������)Wr+q�e)]�bB�Țړ]��˲P2��AzS�� ��
+<�@�%�e�׽+r*��볢C
R�
*�U��q�+���RH��s�����*riN9��$��XD�e��:5�}���k��m4d�O[i��A��K�F��
J���y�Hu��������6���(���̌�WˑJ�XUä+N/2X��L���<3�f��ڡϡݕ�h��Z��-�9А�"Z���y
+��=V��CM�����]�j�|��bCڬ؄#�ب�3kel^�P$-�*U֬\�9�j40���sf-�E�h�U1��
+�����g
HG
�+�@��_7	Y�@��Y��{�U�z���֧u�>w���[�1�,b]�Y���H���Le����l�Q�uҬ`�ZdY-IV�Q¾�gu�DY���@
��<	␋������
+��_�x:��[9p�ˣ�!��5Q�-e��'��&
+㤞�-Pq$F�D�k�
+��(���ܚ|
�9�ǻe��nkx�n1��P`
�#���|"Ȝ���̍�
������j�]�w��{M����E
�P�[[�L(�'1�F:רgK�j�J�P�ER��+.4�ŧ�3�M7�X�N-Kt_�>��k�DP"ga^c�'��q���q���K>˞^=�Sgs�ו��G���Ŝ*OJ)*J���S9ZS�X��W
+tr]�:ǐ�,ȣ+*,4EC>UuӜ��Х��K�e�"[ q`/�j�,
+�����I�g�M��k�@���76޺|t�Ŧ��ڳ1ѥ�|~y
+M_La˭L���Q�M-àͥ�XL$}�9U�Bȹn&�;t$�=)Y�-�0
���e�p�D��`����a�nj�{9v���Zk�g�oaG��Q�u�dC
��� g	K�v1[F?!RS
+�z��dH��4%Y��0��a�N����8�������u��)�H	��d�9�s
�8g�
�
[�lI�JŴ\u]I㚚�G�1�h�h��js�P��+]ռ��\��}�x���n�~����sDr�^���G{����TA�PI�
�=uz�:ڬ5>t�k���7��ͤ﾿Mw/uk�
zDs7�u�#)y��)�6YA�O9e;�푷T֦�P{@���!AsS����w�ZCRs��?
U
O>�R��j�&;����ߨ}�����M[����Z
+W��}�^�w��76��M��U���K,�Ց���=�8�RA��by������ڰ�s�ԁ��
��֫�	�u��TqZ�V��"���D
'�(�`A��^Iyݿ�20d�u���Q琯U�P�������i5w���["I^OjfƵ�<ɕ�awY9���*�����y�;z�Z����]���k^
wi�T���4��ل�ݔxwg	10dB���V��I۰�ՙ�!NG�|�=���x�a��~i��w�\p7?��W^��)��m,��m*��m+��w�4X��Ƌ��k/
TA�!G�Rpn	��.q�.qst��	[��q�3c>V�F
���n�=
R����R�L{��
e���"I�bw:C�/��8��hΎ��C
���B��h$3b�\�PpJ�x֮C�����y�K�2c�~�����q_vd��r�T�]��p���t��Inp����<!�I�ȍ�N�0Y{،�\��1~�dsR�d� �}�0b�(|��(ltT%4���4��_��+����g��Y���)���F��i���r��M�2�!s��:��ω}�� �27��,	e(�"������G���7EG.�C]�
_����5-��;�F���E
��K��xW�h_L9�Z�a�x/��wa�E|-�j��h�$$8r!��B�+Y
tn�E��v�xE�7'|��_��B���{Ax�R�9�躬N����5��_
��J�
+��ai&ܖI�m���UlDZ1�XK�u��ZO�
;rpl�@�}v;��nS0�q�) -��h��._�t�� Z;Ո�^
+�8�N�a�ZVh�a��
�Ep6�b�)�f1��D̊p�V� qURV@f�
+_}냊5^�Y�
��z��4[{།.���N!�n��Q=�A)��Z6�4�X��=&
�cຄ
+/�"���˼���6pͶBh��rwr,�"�����m�گ7���8���T:�M�� �Qm�
_��a�Ά�&
�:T���q�����e�_�!l�
��8��t����C`d��
��G��-
+�mPjb�jR�J�T�F\G
������ 2cdD�##a5ҥ�H�߈�*'��Bxr
-ې��
�e_p���s+ 	}�`>F�"�S�p�
},t�66
�!l"F���M�l��� �I�
��3Ff�9�X��!�A�N{H+��R���<!:�
�y?$���
��`�{C���T��3�#>ƍQg�S�����w�y�*�w�lHڨ�TG=��
��c��ps�dX"[��,G��\�Z�	�$7@t6�K�H�
��
+/����������i�m�>MK�H{
��
+D6XkB�A2]d� ����(�["O@~bN�{@��i� 9���Z� �F���?x���9���	ϙ��a�c<�M�
��c���y�*��K"ِ�^r��۬�"/c��cW�������Ȭ�>iǩ���F�9����ݬ��ۜ��{����1�H�H��@���?�������!i�&R�i#g�.���Q�i��@sTn�B����z!�<�y
���1v>��
eJ
�?�Vެ�#�Cb�h�w/e�=(}�z��,~L:���%|H�Şc��d�A at 6��}�Gn�R�Ũ�j�=˱�j�*�
��n_J2}���r�cf32gҎ�$M�I�ٔq���Q~��7���ל��G�᜻	�v�fOJ�s�E]�Y�*H�P�����k�P�N�����a�Z���n�Z����we���CI~�T~%c"��7*k�HN����T$�����K�c�͢ܧEw�/
�sG��x�vt�'��g��@B6$�7���ϰ&�5�o�T��#�G��
�:�� i)E�
�ed�� [...]
+�k0�
x��
���Q�bF
-��&��*�E	��jQQDkbaĠ8?R�9�Q_�3��kỵ@��`������ �ܦO��_,�Z�_�t86]�a�ɿe?����'#���a
<�R�N`V0epIt&����+�٤FI�7)��D�F��P^2�)�$9enUH4 ��q�!
�uL(�n�_�َ�+�;Wc��T�����]v�gGjx at c5�FȢ���LG�Ŧ	1����RI
+�.IN��迈��<	�E������d� ��^m��d��F�1�Pa��]�{f�펎��_
.�����h�"�&���%
J������L8Y��V���E1�F*dޑ	Y��b��S,A�
u-�3А��Gr�k���uA���K�[~�0z�d{d��څ�
+��
U�{}.ο2�HP%G�s%
F�(
�
�1/S��UJ�p��
��`������)
��F�V"�Ѐ�̥ɑ�����+O�����湖�vN�Yz��r�G}ú���M����dG��ҩ��X�\ʇ��@�.���KX�
+C�,�
��c	L�3��EGD��s��#9�h���h��>����dë�
c�V��[�L:�<��W޺^^
r�� 
��M&�31��\_.�s�)"�$WB�I)�
2��_F��	���0U8M_
 "X�� 	��
�=SvXk��Λ�����n�ky�^��ٖF+u��kQE�ov1����J̥��
+��������)
+11�8)<�^JH�'�H
F�'���阵�(�|x'ȑ,��Р����+��=�t'��n
������L}��eY��K^m�wZ%.DR�/��XJVlt��K�I����*q��$X�-	�b3'a\�t�Z 	���
�
�޹������
��/���}tzc����Z��OUw�Z�a�2�0Һ� AMx��B�.g�D�Ʊ	�b^HQz|��P觪���D~Śx�3N`�4}-�b�	�Q �_(Pf�Ziڍ��3BMh�����4�
1�w����~�
/y�-���`?v�@�$��P�\FpM"�O����.�c��/u��F�x����,��Z 
��m(��
5ۡ_;�@��
Ѓ�=���'�5ǩ�
[S���Rꠇ������
ݍ"v�;tbP;L��*�cZS��-,�5�zk�z����4M��=KF�V���)[ P��n2�Fz�CC�5�z����_�Z�~nf���:���j"
u��>��H�A
����������p��ѽ?��گ���i��4��T�޹(�΅p���U�&Pl��������}�k� j�ۯU5{j��ٮ�W��%/�{�z9��JԤ�#�)�-p���
����p�5���4�X'M!�����0�M��x�w[�^}�[�Z@�4�҆
��B�:t��a}�~~���
�o7����K�ha�]�9
��ڹ�y�e�|�e�<��o���=�p��㹺�Iܮ�gx:�z]���8����_�i�f����������V��{��Ps�T3���lE�.�.��$\������~ڲ���e���%�3�K��}�p�7�I��

��8K�e���J���J���J��݇f{��6�;X�����B�ECM�ZPՀ6T�у�>�@ [...]
+�5@;�
��
A���_��m@�%kPkj��~Cf���eK0���Jjn at A��((�g4�:�I��?|�kX�y�I*�x� ��$%���Rt���
�f��f�fjj��3Q*jS$�b������Z\�ua�b�'��q�(�����������\�}�������
Tp0��zS��s���(
2��A��
��h���B�mT�‰c4�탱�!�����]�~�^�
��q��D:�M"��!��#���M)���
X�ag�
+'�d��&�n,�D#fa$ȋ���O0�K!��G����>(��B��'j�����
�m6�s�+.\�I�9��M������D*��9�N`�

�
(�7����Fx�!�$�f���ツ�^��� k�x�]�����2_K,GT-t@�B{�,Z�����_��]��$���$��)\�N�a��8X�E=	�Ì �z�s���\2���N�l숄���^
��
RMVBd�2�eP�ڠ���fV��*`�u�}P\����\c�B瀿�
<��Jm�Qۂ��
�G0�ց~��Ӯ�^� �
7Pz<����^O$��B°7��y��i}>Ǎ�hc'|>�B'�:8��<

WC𼍑2�M�0,��؀�oN�X�ׂ��䣮�w��v�
�k����ʯ�H����H|�;�������č�������WH^:
�4
�.�x#=h�1��, -G�rR�:"����
`
q�'��y�q���~�= ��@$=� �&j��	ڐw	c!o&���
0	*��r4 ��b�Y�0C�FsȒ,!M[�t�=�N�U�"��)������3`^D��`0~폰I�𱤡-Y�I
�|�89H�
 #D�:��#e�DN3��a��fȎ\E�%�+�!_q�
�U��7x�w�܎ pN��}!
�k�H�)
+�'�c��-uh�&���W�؁�/1�(��"B`��p�����7Y����ke�9�⬐˶E������TxAT����GLr�o������
c�?��K���O~K�
R�S�S?�{i_��c�#:�u6ᐼJ�U��O���joS���p�
+��'r�"�
�R�q�ΐ1Qc���M#����)'����X���
�kF/�%m��G{�~B�?d�%�K����D�.�����
�v��X5
�u3Q�i��`sl��B�E|�q��볢0H+��z/��}+�K~�?H�
c�d��`v�1n
��O���
�?dh�=L-�6k�q�=N�ƙL�R�
+=d,�G��J�fb��	*`[�%���ƶ��h��>U^ذ�l�`����=�>��ԧ����ٝ�G���0od�g>��$�n�ޤ_��_I�\�2�s�)� �p��Fn��[lu4�v����?5�c5�vw�ֿ)�
eG�+
��˙�%5���oD��H��:2�p��~L�ξɹ��������Χ���}�⏰O��2t.��K����C	�7������:�y��,�
������T�z�d��V�G��[ʾ��=�VF����9��P�i�s.��)/�����w��"�`8�P#�~�
}b���C:1�J"�n!���ȼ����=�sS�bMs���F���])����c~.SPnrn(�W��%3������ʓ���N��cž�Q��[��������=�T��
�,�BBx�y���ɮ�ht�9��e��5h�p[Ԋ��˓v��ja̭J9�j��s��T�}�vi��.�|o���C�#���$
+�$��Z���-�����2�dA��C�.�q� ���{���'�i�:��
&�C
�D,{ږ���^������;2(+r9gJ�'
+*�GU�Y�s��[��eu-�Fv��A��dO�se}���N�6�V�
�	��i(&�A��;}�_;c䰛�p�����­�s������}�V�t�*��Y����IVe�˯W6嵨��~[T�s�d��Jiu���je�j��e��kq��@H[2YD�,%�!�i���AG�
�F��>s�:j��h��[i~W����#J:Q#g�W�	�*J�-e�ٍŻ�uM�j���*Ugi��rY����B�?u�z at Q�
���5B]���;s������k:�� ~�#-�����4)�A)�ԡ�Z�	�I	-���
+��*HDP��]
@?����8*��~�Yѳ��}���s��s��v�:
��
{�:,��{�����~'���Š�B�zj�Z���ƲԨ3�Y	����i%9ՙ�����
�p0W(��D/��D�)�췉���y�@4�!M?a{g6�-—KR�.��~��4�q��j4�h����^��\����:Y]�_^�+(.*N�/����g��d�����)��Œ��Ԍ���
񟱒@�:
�m�C����y�S�n��~c��+���
�ǯx��`���q��_��8ΩZAd���
+ё���TaiEfF�aj�Ŝ�¾�#E��%/���KiG
�$���I��;8����-88�
w�>\��/�~�e*=3rp��AO��^?۶�[cK8������!)��Lj��F��U���^Y��\Q��/?/�/��[>�_�L���RZbٛ$���8I ����r
ԫ⾶oý؁{q{nv�h�䘽��a�����^�k]g�O�hV��0q�ј���Ĵ��d������L^M�0�TW���õO��5Ki1�o�xU+q�@6�\E
T)�I}�QFˣ���{*�޴!��ݖ�17ݶa��
�L��jiO$3�#>$�M��r,�ȅ�#q��)�MU���2C�u
�6�d7�m\N	;��~��8I ���j�����<z<!�
>TD��fl���\��o�,jo:�
{�F�e�DzS{�“z�bb���#;
���W
�ק
j�HjNgv̦��_
�-�8���$�t�%d���i�F4;$��ݑFS��h䑎T��^Ŗ8��6����_p��&

������������ׄ�!�q쁊D���$���߁!c`V�7�61��=/�{5J�qP)�^^ ��>�;JB�f6��gdt��m�B�᱃F՜�A�Cƾ��,Ǵ�PO��hޝ����6wBš(����
����w�h�ñԉ9
mb%�~�c����PI _}8-��ۤН���
<�F=�Q�+
��߬�O�8�������)�4m�i��u�y
��(�<��4'
�+d1�*9��s\�\g���h��'ع���_l�{�$�2ZhBh���F�I�+�D�>/�οQ�������Kr�k{5��.���T���@�%�u�R�=w1щ�������X�E_��R�^K
>
KC
����
��/>�/�i���E��%�F��o��Zg��aAլ����
H�k��U�-ɫ���V��"W��CW9F��H�����Ք}��B[�Z�~�Z����
/9�}����)g�O�rv����e��N�����fB��8�2�Gu�R�bE�|� �|�#�5���l�YwT
[��`��w�i�}
����ӣ}x����=���{�ɏPc�M���e�C�0cy^a�[I2ކP_B-7:=�P�
��&\h��Ά80����d
��WP�h���
�'�
bp�N'��t�<��P�m�u�༮-t������0�y�'I7V�:V��y�D�8t
p|P�G�."�IL0�a��<
7y���+Д��_��*���bTm���ҷZA�V
(�f��M�Q��4L�_�nHt��
��	�#�Dd\(�Y�N�m"
In`!�
�2�Q��䬁"o�d
`n2��M&�`��� Pԇ�ͻ!��+iC��4+kB�Du����d- �_F(
+�
��T�n����R�����7X�5��7��Fp����.0d�!PF8�;!\v��j�@ndʩ�XNNȫ�I���C ����o�@+����!W2�hJ�Qf�:d� ����{R�v�O�>�/ }�hc{�6m���@]Ĭ� ��	P��e���t
�7�|� |����ϔA�$��� י
�T%���OX黀��
����>�]4�.#`\5ƨ	�L��Ϭ�_���9��,���P�-�R��
,?S�����@5�� "��Ib-a�d�V��p��'E��BP�>0O���]�QM^[�T��zYuQ����� � ��Ɛ9!		I�@�
@ �� �A@��(rUZ�P������E�
+*Ȱ�w�;�����9�]笇ظm�@�X�
 �o#D�� �/�����a��$v�l����a,�|��Fk ~�
`W�e�0�
��;xۜ��{!p	.��B
�
i+�n�	hk�rx
�[6����?nn��̀ Q�'q�-���[F�Ö�8ā�� h��=н
�����0�	D�
A�q1�O�#pR=���%�~�h��@m�
�3�@�	ҵ�@�<Ex�}��!�3��)j*t�o	��5`
 .��*{`�^������A8da
A�uI��D+ .i5p
�]������izK�$�T�J׎	�c�����g�����ȷĩ�${A��'���[�$4e�=p<�A�rȽ�Ŧy�
Y�=.������
+����4�/���qN�6KLM�(�)|��1L���҃
"_ǽ'=�zC|KxE��N����
+�i~���� ��h/y�kJ=
@��+H��
����p
�}F��@��-��af�G^��ANE�;V
���G�43�%�<�9�j�S�]�C�k����w�S����΀ȟ����	�� ��-0�
Bw{P�� ��
A��5��}�˴
�>�ez�$�|�e�[IZ؀ w�s����*�Cf���V�=zG�
�%v?��&��W�0���e�
�'�w�aO"��w6�x��� �

�	Æ9�
�<��c�X�^�O��;-��U�,�iBr��3p�F�m^�V�!�uv3�։ث��ˌ>~/�ϸ����n��l�$��;C8���
��T7[�ځ|�
��فa�䮛
��N�!�F���#{�4��
i�!�U��!��_�ٔ>���oA%��W���
�;�9-<þ$�`��O�Df�hl<�%n�|T QG����
�wN�::�>r�~�u�.��;Z�m�`�.�W&��<���AȍԄȾD
�W�A��3�JJb;D�|��I��o���K��I�yO�����%�^<A�Ok�3k 
�\!:_�:o���P�z�D�������[��
�ꮉ�w#���j�4�V�?����Vf�N$q[eqG��č�I��SV+�"�>��H>�J�����3*dS�
+�4��p�1:?��,�y��7����s������_��pyP�]y����W��~1G
yF���ԦЎ'XG���E��6�&�Z�,���L(�� %�;Hi�{I	2�+F,,�jB&)� &:W��n*J.���e��W��{;�i�4�IsȒ�����VI��T
|�(�0g��-�$Z�.�U��íN2	+TU�%��	iC
+�nE>rSiT��՟��՟�y�	z��
���߾�C�7u�27ۉZ���5/[|��ٲ��[��
Wj��ʙ�N���[�QM�*jm��U���-M-�4�cR�<7�U��>�4���2�_%di>
+35������L���A��,��t�y
]l����rx��O�g���wۂ_;�CO=aC�A�ֶ2��fS<�֨�T�hX%��B}�0/�D��=$ק
U�R:U�)?�R����H����ӎ1t��hk �uN������f�����	�G�kf���,�ںkyWS�:s-=�hU��R��*S�� �Y�����#0d
��e
���I�U��+*���"�0$N��%�ǘ��q�5���@�:g6��t1f��_��Km^t���?��p�#`���:�Ἇ7R�4ԲwVW	��e2ra���S���(�h��r+��F$!ˬ�e�����H�P<�3�Sd[X��1�5@�� ����c�bf�q�݉Ř�]K0��W����4��t���
���Qr��FVXY
_a���S��֗�pRK
q��b��\&-�O�+�=JA�]��4_8̗-,�q�i
��O��
+�1P�=�
f��<��^g̍K
v���;φ���ڻ�p;iSe
#���ݓ� &��ZJMr��`:/�2O_^*���y��Ni7�.���*���a^\��W<ƴH�=�;a�f�~.�a�l̽�s0�W�0}W��u��8�/l_�t.ҳ���Wl����:�j��� ~IH� �("��
;�BBB�@aG(���Vԩ#.�u�Sw
+�,�0Et ��VEq=�c=
���b��ʎϼ�O����;�~��������|}&G���P��n�j����'��Stbo~~́�����Ս����Ҵ껥?
eU��e��>6��
�S9�G��g?2ɃV���Env�K���7���r�k.
�^H
+��/u��sYq[[
7�s�bM�FuaӶ����9Y
��k�
+U�
E��
����┆�u�9��&��NMit����
���t�In�3 �.3��^9w�^Sǰ�V�Ց|��פ����Э3�7\X%X�Q"���L�{~�:�ܮ�Զʬ����y���m��dmC9����Te�Zl7$ch�I-��if�+�
�q�A��3$M��S���c�CV�����{n��
�Э	_}#/��zq|ε����I��JŕJ���*-��A#��HO�r��{��kJ�x�BrA7좑���ܭ����t�~�NZn2I�##r�ߒ
�w���Y���Q�۞�7<�{�<L
���Y���ȴ{�x)����}"I_�D�W%�5&��u������}��zR"�Xp"]~�$����ҤG���Hs���a���F��%z�_���	�_�r���|���2�U��^���~���AɃ�B���%�����h�`U,���숋}�;�&.v`��o��?O��]GH�O����#'o���LR9<�|5bO�r��ܬ
�W�
7/�򬳵b;�6�I��tSh
<eڵމ�-��N?���������#?G�k
��
9:�"�ݻ�v.��:�� �B!����B��^=��)�TL��m����Mz0�'��r'�Lӧ��S�������H�RmEӹ���bG�t�oz�K��^�ș�ܹ35
�M�᳝찹
�
v���	�.5�B�A�EB�"�DŽl� ��Po
��������B��
+Mg&��<J�h�����K=@±aI�۬�
 �8h�v�8c�N�-{?�p��o:��L��v���	�s���~B���B��e����2�
�
���#�0�Ƒ�ϋ��$

+��.B�Y >7�ú�
��{c���D�����f�k�n�NS
�2��K��R2LH.$
&zrX艨���Y?
+^��3C�� \�?bY>.�Ԉ�d#h�ݐk��y˰q���o�oLlq�d)jMlp��-:
�2�{��-O)zIH�8!J"����HX�>�--�t?x�9��g#��0�
��e�e:@����i��5�
!�e��96�̰�p�\�C��8���h��Շ�"	`Bʂ,�R�)��!*�B�k�� �;[����s@\�#��/�x7)�������{�4�<ǃ�.�f�q�q�!�cB��E�1�"S�T�,B�%W�"�=�U��^�jo�3�v��+�w)�n࿡��
�)
+>�H���m�W] �f�{�!�և‡�� T\c�M�P�C�j1de6��C��
!>�Q�
D��Hhu���
«
���)�5�Qʤ�L
���� �@�J��M������
����0�&�j�Tً�����H��	�C��ָCR��6�� ��
Q�r�
q���	Z�لq�鄏�	�� gL�Qغ|�A�A��Cil2}
�
f�l�)2�HϠ�Y�
�_8!e�+�<�8��!������v�C�K��ľ��ā�I�p��1�\�h"G$���wH
+�.Hp�A�F�ڕ�Lw�8(Xa��hS�-��^��dlt�f�'��,��r�w6�&`FQ4%o�L::!�
�Az;���׈Qɛ�o%�Cҹ�7I{-G�K�+�
D�4ȝ��P�*��y��L�a5�%B
)mP���1o��L�6�Ɍ=~�i�ޫ����Ԇ�&7rG�Qo�1�I�yC���W�W�/dc��lL��g)�B�CBt���!ő�,��:飔�c}�!�"LPƷ�:��̚
��bϱ�M��r��6s_���`�k���c�N����8���MEqk�K��Xܪ� {H�
���� @ b�	��B�-@"D@�D�
+A�^��VP���ֶ�^�u������9ߞ3�������)�1�	ŌyD��>$
�< ������{��>p�}n0���	��1�[ n32��+�����$lw��}
���b�:������X�ۯQ���)G
�r���U`�0kq��&�L��x��O��������1�
�����Q

f#���@O[ a#����O}k�
Tm���=�0���}ډ���}�B��s"oףX��}i��$��6h�W��������ѰV�0�+�
+s�~�1��e<c�^�{�w�;���‡޶@2���|)ҷ����ld�9��
\�:�ز�s�W?� m�U�w�N�xL��yZe)~W#31�������ϫ��p��ݜvf'��eaO�γ��f�_�f�<�U�-"�,���@*2��̏Azo�h��	
�;��|��g��%ϋN����o����5�z�%E��O����Hs	]:�E\j�1[��&~7��7n���6~k����G@|m$��D� [`(2W�
+㐾�^�t�
hX��ݫ�=��)�p~\���i�)m讱
����H�^e�WB
+�]�Il�.����
cd5�N�ĩ[x� _/��WJ~	�����e�T!��r
�2�=H���@��F:�+�C���
+7�gU�Tu|�L)f�x��J.ǽ']�yA
�oV)��D
��K���1
ѕ�Ji=�,��?�',��
+uҧ��X�K��Str�G�Ð��H�S"2��(Z���l#�7�6��u{
��
]v�2��ξַr����e~�j�>9�X��E�T2K�����^Q�9A~�E�6fL��H������@�S@�V��@�((C�^�
+d�!�o5����n3�a�N����KǪ�]/�wt������9Q~uq���X��N-Q�1��J8y�j^NB�03�S�
?*��?g$����z���$��� �{�� � ��s����羚P?�l��l��e��w]O~{G��I�=V��kȉŔe&ti���r���:Nf���Q��J�8Y9$Q)�JRR^�������y�:�m�<$�H�X�
|�\^ԯs����v-�K.O���}ݪ��7�r�V��>���VA��N�fgf1�Ӌ�jMOu�^��>/NPJ�Է$��?�I��I��e��H\ �@�\�k�
�����X
+�:��G�.�5y�io�nm>K�W�g
�(��K�����ɔ4m#%'���]ƍϬ�f��e�iƴ$:�7�<�-3.�#%.
l�b$
�zo����b0[��=���\&:7�;�/�j;�E�	�����W_v����_�U*є(�ɧ��B-K^P•�Djω��^�H;)���ʋ*|˔|�J� ��d!���"���5. 7�
��Eg0ri=��{��v��U���M�-�ݥ�
��:�gv��_c����Ąr5-�4�uF��x�b����$�[�ܒ�\A�?LQ�G��l�2d����
�=��iv�'p�o���ٻǩ��ѕ��7���w��
�6q�i�D>�YP|]>�&�
Q�*4�q��
�����w���	
���m�������WB�-P��A��;�?��k�#�t ���{h5h����0ph����Uw�-������uHy^���/;,1����

+��0�i�dҌ�,���M6��ɍO�h�oht#$1�a�-0�	��p���F;0r�
�]�����m�3`
�fouw)
�^�
�l��w+{���/�J�#�E]���
J
˒B��'Q:*(�v#-��3�>�xJ÷�!�a�
�m�� ̝`�, ߷�A�
,�h�r��O-������i�
�<m<`��*a�|��7r$�]8$>~%�s0ɇv9-�t9�(�a�x�@!p`
�9���� l
���, n�0a�ߌ�����@����v�;�(��ݎ�[G�%��];��1M�ο��Þ
�Oʾ�\O<J����Y�1�
+� k��������5����o�k��z�2[���A , 4�P}���qy��9W�z��A1��
=�R�0x-�'�a[i;H���v�E5}�a ��"e"�}_"��	� $!�H�$h��bQ�tܦ�Z

��[-�8:��Wqj��v��T�TqÀ���n�|3s3���wr�s��{���S���|��Y���Y��ճ-%�gO���Q��v�@z�a��g(Uz�m����r����tG��w��NB6_a�5��d�Ս,��3k�ќ*k���*r�eUxXs��Dž�
�l��*(�Z��6�ɭk#e�-Q��]1��C��N���-���/|��/�C�-�5ұ����4�
!�.��_
��
�r'�C�̹C��ҡ��‰��Lݰz�z��
)񒏔{g�,�"��FWL�n�K��2��<��4��8~?0q�E`��k����� �?I�/��!���q$pg�1�Y�0��

�
T;ʡp�A�,�L!f���|R2�'��cVz��ɱ��5
���8�
�.�h�R�6���Do��<!+���&!�)�R7b ��E S�(v�8b��	 �OA�C"��ap����|�v�F�S����!��
�����5�8O]�����Y��+4����{��Fh�
�™(�����"���(V��ӑ��#�'
J���0�> %��(w�Ɓ����f�dl��fG��m�r�ޟ~�n��^BL�	Ѿ"4�	
I\��dL�C��pfb���c�!�Ń�5R�lOh��0��P¡E��
j9Nh�8b��#��M�N� �dB�B��gC�b��r�Dd9CV�I�;���h�d���F�
o۸�O������@p�꣞Sc>�����k��� ᳐E����N�C����P�@^ᆌE
���
�gސl�B�����@|��<�:��S!�
R�Ԩ/Do�/�G
�[1|l��
�h��f�;��
�U:A=�*�$(j=��'o��s��背f
2�N��/d
~�~C]��'�^ �O�a�M�)^� [...]
+
�|
:���a9���z�� [ 
gBƄ>�c8�i
�8�0�	�:W�=�7�9�>Э�vc 4ۂ�nA��P��Au,��l���ȗ��Q����!��ѿ)^E*�T��'*�
d#d@�G��4�L�X(
aaV4�D{�%1K튢|O��"��Ə��
y��%��~G�nw�v?Dsdڐ�T�
���߳���`F�������5�}�E�=
�z������ &L���`�dcn�=�
+'�\��y�0���.��+\2lZ
�b憘���g�M�Os�N��=ɪ�H�ӞK{��*���+��y&��O�����\�������0�TAt�L��i�/���v�NuĂ
�7�u�cżs����J>�?.\�0s�}��Իy���m��9,��?-��w�n�og\�?�]�
}oD��|$u�0�R�.`�������a�̥�S�������.��͇��=�/4���[��/��[�$����ɿ��(�*�n�)�1w�����Ǝ�K�N�w����=Rv�
�<[ �7E�)F��$��z��".�5��,u�L,��Xo?�T�4�8˽o�����Ґ���17*�f�hiH�R���R�F酒���EM�s�-�3�ԧL�4'L]�c�;ڣϳۋ�d
)�����!�J~r}�E����o�Y��{|
�_
�y�"űo����2������k�s���k.�_��Y�B|Ʋ.���͊c����/5�K���9P|>w�Ϲ�%�V�Ke�
d�Z n)��J [...]
+b}��_�`߻F�ܽR����|�~vL�U	�k��,��W����Ty�|�zߜ����_��);�����q��c�����2�i�@Vs%dM�}Q	ỐOs���ڷ��YVp���3?
c>���� t��F�}i�1�\Ci�������
�`��m�r��kU{*7iw��<狹_��(o3~n9��h�2m���:oH�Xն�f�>��L�0 ?I����8X�UA)ғ`B(�@�(� =j��j�A�@P�((�2눸z�Q�	3{f��{vV|��
����>_���Nn��MF
��*�1&�8��xx��ot~
|��N��Ό�ъ�X��Qu�TY�٭���9�.}|�gWF>U�VJoO��&51�/�'��&������Tſ
+�NZ
�� ��4D��#/�C
+��
�+2T�Vk��r��R����tLg����ve��뢰%1Gz
�;ry
�r)R~1�)�ܿ>��Y��ƪL�a������&�K���E���ļu��s��->��T��C"�{٘p#�W��7��
ư�nA��:hO6z�I�w
V��zE'�:J��
�<ZY����$K�_ɗ0��!��Nvq�`Xa�
n~�na�?C�3��/�F4�\���U�(|ɺ�r�pz�*у_Z��o2}�NfF��xDk���h���S!	��Uu�]��"Lv�/⓫
�rA����*fIvSHA����y%<�?���\�fg�����=0_��#�B'�-��͙���:xwj��6
X�ԅG];	��Úc��Z�;z�-/I"l[+c
�ʼnn��yd�0�VZT�WTX��7������p^�Mnz�<�'�;�_����"�Q1�*�
�P
����E�&|I��с�˦��nk�a��a_�	Syk�^ic�MC�c��	��4o�8�D����[*�,�c��ةE�aI���Ģ9nb�2'E�fz)b�J�?�RDU��p|M�$T�W<mՀ�
�0ק��&0�wP�j��A�����b��
��hq�%�)^�5�>9U���*���%�Ie��Q'Nt=��h��/��L�@��
+�T���P�![
�� �ד`�]

tk��
�5��]�R��wҗ]&ok��7��B�ۣ�K�q��-I
�M���<zJ������W�Š��bGWs���EV�e���1ck#���IUJ҂/�� O��0'S��^5�5H��#P
[�:���J�zm��c�.�a�/��
�c
�.�u嵧{'_���ƶTD77E4w�š��r��C�M�C›?D� ߨD�nFU(��(ƿ�`�oO�Rax� �qC�� ��
�iq7����\	;��w�>�7�9�'��LW����B�Ȏr�0y��L
,

+�M1e?0Y�~�rD���#CdU��V��&z	0��_�@�]=h����x�V�r⸁p��D0`ƿ�ޟ:es�Z���d����j��J��h�*d���AC1��b�)VO(�P���
�T��{�k���n��~�x{�o�eF�g�C��5�='ݼio�s�~�)wC,��D쏹
k5�t$��9ǐ����27��zO�1�7ml��36E���|blՋ6�<�ȕ~
W�N�P0-��
���7��HP5�	�#(^�C�}l���g��I�q��LO΅�s��d?8{ ��&`V`ǘ9�f�
�32g�̠��촋�������#�
:J���R%����n�+Wq�
���g�C5(~��/���r!���Z�
�����Ɯ%�	�Y���g�f~�������,��"/��|&��x6d�t��m�G��U����nߣCnO�6�p�`��s���Y9P�@�
-HU�Y�.B�� )RyL�����R�7*�71�[h���P�)���,SOe�Nwe�n��6s�e����w,�~^�p\����O��;�Cd���e�.|�-���{ �2�!aYb3������V�������]5�+
ꊟ��J���J����M�Wӌ�V�}(���������>o;�6kb�������6ە/����a+~*�p�<@���� �k:����>� �}�K��ې���
���_|4���kC�:(r�
:�k���!��T��
+5�C����^���pZ�>}�w ����
<H[����_ �H��h�
�\�~�:L:�
Iv�M�Q�"��
+ְD�{P��9J�ڍr�w�2�
�I�u�|��u���
&�9��+m������8�)@
�g)�k ��H��
E�	vȜ`����
���d�YT�g������;Av�5&@ �$$$6!�)6�7�,����E*n8R�A
[EQ�}k=ť�ӊ֭�Uq��3_ۙ�x�;�����}�sr
pig0
 b��ɴA$�
+�ZH�2E��1ʴ
�J� Y�e�c������'6�PT�9����I~�������(����“��F�p���
[83ؘǰ�'�

h�iC���z��u����%�i�cj����&�v&���O��N�߃�Ѓ�`�O
B
�J
�π_�.xz��ǂ6p����0��~b�8A\4��u�
�xg���3��O�>C�|��x\-��,��@�0��Y��ï� ��
�������{M�;H
3��)�W�;��=%��w�Ô/��x0�ȃ�&��|�<B��D��d�,H�:��τ(}��
 Xi��ct� `�)����$���
�����-
�?&^[�?i���	>����T��h�\H>��D����,�Ku ��	Y�
B�
!�2����m��@���½V
"�i
�Ekn��ٓ�W����B�_
a5
�W���\R'��H#��ݘ�ZX�c!F���](�#,��2S�֛C���M��ʆd�͔dp�G����#v�g�&�W�߉�ڏ�ux!�px.��S	l�H`�8�G!�ք`gr{Qv4b�gم���D�)t�0� 1&�*4�����
_c3�f�E��;�v�7�{�^��u~%;4���
�s�I�\I��>���{7s~���c
+��R�V$4���e�Pͦ�2��4/-��!E:��
>&����ϵ|3
So�"j����9O�=���w��60���
��G=��/xߑ���I����;����vM	�+�3	��"�	��
D[1�`�@*��&��
��
�D3>�+�ߤ�L_$������~YT�|?����V���.���z}nF��s#b�{=b�wUy�wTy���ߥ�7�
Q�>��
�v&��c�	a$7���d�;3,�!7�#���ў�L�	�{�g� c	�N�r�����Pչ_Kh���ȹ
���&v�߅���s1��D
<}Ip"���X�ˀ���|�ăs8�Ép'�4!��
�ι�t�l2K�
%��d�s��o��bɬ��&?�$���3��K/�w)���|�*Ι�������=G�
�
:P�u�i����㟈�&L�U�w(	��dx
��C�I�b��̀B�	�R2�
+{ƛ*W�I5G�neЌ�eJ�ѢD����Ng���N�˽����
^��w0�5�@r�p_R�hh�
ɠj_Ȁ꘴?�lw���w�}��K�o�p���[b�
RH~6�[EFV�Q��lƯuN�������V+�.��Y�*Ns:���v(���@Vo���?��,�r���=K�%}�;�;RC��
˷��W�$�V���Cؓ�/��
M�7&wУ��(#��Qo̩G������0�6�N�X'3<Yc}�"����۾�|����sk�}ٍ�
��E��6��d�~�ޯ�Zz �s�)e����/B;�E
Y�́_g.���`H�"�{�dd�:}�e�!u�Ō��Α�m3�u�Qb0Re�U��qhE��/�r����y�
���5u�6��rڥ
Y=�̾�V�>�Z����Ȗ�gaks&%�C�>���_GT䷫I�+&�gR�V�R�ZfQ�6�Q�mv��>��-"����{�9�צ��U���[^��RZ��*^�Q�$ސ�A�.o��9wGxS��#V�D5�\�j�}�\�?!m,DPS��O��;��!oQ�z�R�[3���~:�����7
��S�����o�h���U��ڻR��]���\Q�o+��/]%n.Y'k*ڤXU�MY [...]
e��Lm
8���Ȣ�TE�g�Ǚ3=a>����~��s����>9
+�f���?pf�ތ���=!)�B�3&�w��7-
�����:�í
�T~!3߷���1��
ײ��~\��bt�q�j��ZVWdx�,Ҭ�d���X�]~a����t���,����^��}w:��}.()�;x{�����B�r��%Fe�T�
A�:�']Hx�
�uE:����L8˄�M|�j2��$�Z%�������&E������Ź�;���i���
tK+��L)(�I:Z㟘�
��
�7�5�Qp|�o~	��^���B���D&���}
��8��jh�]π�4\n�AG�	��b�y�эWY�oP|&lm��M�95q��U;
�U��.�p�u<�c{i��G��~[�b�.n.�.zS��7�dAW��m�(W�I ?e���ϕ@:@��F
+�� :��@�yc��C̪ns�-9竟�j�s6��@}�pom����)Ҥ���	5�q'>Vn����T��Uy�?��? ���Ȫ���=���us5:����
r% �j � ��8Of��.-��lH��a�^t�tz/��Z}�=b]Z�f��x�
�;���:ƞ͒G7(���=�����:}B��|B�F�:�V7�^��:��{�N�x��
+�۵ W�:?y�O��^T]ׇ�^+F�5);�ǃ�ѽAO��ﺴ�4�B�U\�ۘ�{�>�ȔF|rT�^��^��v�=���#�}�#�mJ�6'jE��V������H�]r�.�;h�H�O2����pl`)

0��?�c��Wh���-K�j�э��c�ǚD�&Zn��*���Q��<������ZG�+
2�[2��Q���)'��9�O7��^F;uߑ.> g�_�E�̟d�+��?Ā���p���{߆���L3�N�p�p�~����;	ơwRL��2,��X��
+�km��
b��>�����E��
!T�*<M:���P�
Pq�` �RGذst9$��Q�F�1_�iF}��
	�

ٴ,hd�~�j�*_վ5^�\#U�Z7�WU��\�g&��L�匩�_ߘ:���Yl���,y� 
�����| ��bB�C6Č�`ӘD�	�q3dܓ�a<��7
��
ߢ�
��s��w
�^./zO6qr��D��tↁ����I��Y�p�����"w��
+p�@U/ɿ�.?y �!6>ք��!�>����8�^��L�I
�d����l�T,�q*�+�N׶�>��~�LW4Ӡg3s�'|:D����x����	ꩻ��D�a5�`� ɿ����� |
 �9�_����!(_�S�W"�y֑v�uc8��aڽ���԰y��e=�c��\���\
�t��m2��Y���Y�pO�'������-�B�a
��������-���|P�&(P�q%H��ђ�����BW�
=iS
`��0�F3
1��
+Ә+��{X��Y��2kY|�u�S�����}�.?�@���O �߁�2����`�`A�a��1
+�5��Z���JTP+Л^��4#h=��up��,��08XKt0����Ļ��7�5L�U$�;��x�
 �#��0�%�u���j�}4��d/K�
�P@領�F)�AWJ�)

�(�� �t"�� ��E�ƖF;�R!��"�Jh�`�8����� A���hy��ǵ���H�s��q��'�*.Z��o�ω7r��,�ɖX��D8��(�g����?�E,A�66���0G
��\� �Q�J\ �����Y� 
?ψ�r�ȝ�/j����:Y��B(�>\E
t�1Q��B�0M�Ʋ�!Y
�2���P����ͺ(��EQ�K
���
�
�g�ij�oĨ;K�����x�
,(��R�fB�Ҝ0�S�D%
݂5�%���;��_
�t�߸
Jkx(i Z�����G�>b���9<��J��/$/��%�&��Oߒ"o�
�?B����zQ��o��3��4
�oh""�� U�t	%����B 5�@B
��TY�X8�V�
;zг�c�X���<��?���~��y���qY�A�:5[��tMި
�D
`f/���^	4�>��
�z���
}�����z��3u�����<�
+q�z�������:O|I��~`��V=���.h�`� t
"�7�N
�qQTM�
ֆ���AH�
��$2�Ī3�l5�c� ~�[�>`��-c����5��Sf��e��~��	���#Ɯ�}Ƃٽ 0����L ��	Ƌ�B��F	cJ���j���H�}�1�@LIJ�Q�z#r�߇�zVM�#�����ٳ�n�'A���F���}x���iۻ������n����zЂ�L0X^� �W6���!`�`���U8ߐ ���4|�3���-��5�
��.!q
��1�GQk�G�,�7[�޸��V�N���a��{��r�q&��Ր�ΗB�;_
y�4
����F�=֧#��TX`̿6��M�{�W"H7B���d��]�沼5_g.}ʎ�{��f�k"��f|����*�k1�vW�Z
~޴��b�.��#��"��	�t?>�1>K�g�
���O.Q�x,�ŀ���^
�`3����8�x�ػ,�|�+>I�q������峜D���K����m�%�8��op��ks=���}2f�43J>}��p�Iʡ��^�~��3 [...]
+�� =/7A�*l	7�)��Y��Q�S��ɜ,�#��9eN�2$nc�z�?�Z��N��5���ӟ<Jݙt�֓tƿ;iֿ3��3�gW:xt���+
1��T�{ܥ:h�T�顇U���]�"k��X�Si��DQ���L��y���9B���"���Zr��қ�ͻ��Kݑ��֞~��J�b(�fZӟӕ����
 �e�;ƹ-�����{�B���抵�#��#Y�nKuь�
]���OI�:�����Lƅ�V#��`��iW^�[��ܙSOٞ�����k�2�����Pd
g�3/3�9��YR���\���=��;��@
���qݩ�D�����V
����wQ���-��:D\
�zwy�e���"�S��ح�@Ln��(-�M����~�>z
w,��;XýȒp��>�I����dY>�-���-�\!B�Eݔj�o�BW�h���N(�Ԏ�}��ɂW��D�+�,z*2m;�x���B�a����"4���hR~/C���)�;ªțf���c��?���] [...]
+�	n����OY	x����b ��- �;��j����p�:��D�U�ʎ0��\2�������ck�Y�,ͦ�&k�\�w�U��Eb�ʊ:������NFQ���� �_r*(��VP~�[��|���(B�0
�l5�g>B�U t]������*�щvut�c%�߱�0�N��kc,�l	3R5n^�Ԑb]���P+�u�H�<D5���ZoaU������0y��,�h*(Kt#�+~��U}�ͫ
+_��@&B/�nc�V����}�4�I@��Оn+�@��fw���m!��mѦ�-IVҦ
�*E�S�\�^R_����ڋ/SPy����Ҿ N�����,v�/�
�+���oV-P�e@�ʀ�=�������
+�N�����ً�o�.�3G��\5��RuZ����;6���'XT��m�ڲ
�����%�ܦ*
+��އӠ���;���d�qf��3Y������7�(l��Ѓr�f��nE�v��8������w�u
9��zk��WHw��{b�J�S��:���;�s�
ݳ���
U�Wj��7I�KKP��c����ʫ�X�
Z��/�%x&�	��=�
p������6�&z�����a��G5P��j
�W����:j�L8��r� !�
	��!�H Í	nA�x_�N=겻�Nm����ƻ��T<PT���
+��V�.`�j���-�>�d����|&3�e����#3�0���x��=��Kv�H����U�=k�
�i;m_
<e�*դ-��OزE�m��e8�i0���,�)<ۀ�
��C������	@-�?+��m��Z���I`u�'��6���@�pqu�����
�|�'�QU��޾Y���'W.
ȭX��޳.$�ܠN+�
O)?�/o����
K�m
+M-��2T��n� � 4}px;�� ;��� �?� �h���WX��ZtLÛT+�U�.)>��0�p�t�n.��>��'�n�_Zm�}�W���
+���>H[�4�@o��Ƥ��`���G�Lspf=�1Z��e _��L�Rs��`6�`a�(�����nQ��5��
����S�≧���
3��JӾ��U��_��z�k��;�q�olc�oLc��9a�9��1
�5Rk)�C:�{��P��W�X�����\(n���vW(hd��Dzs۵����
�DQ���:�8[�3.�O0�8ĵ}�ݶYٶG�1ֻ�5]ƶ��D��\"ΡK��Լ�����
+��� ��*�/=
0���"&\Bֿl!���:�!�#��ԑ��ufq:'��:�	�;#;?�����:�k�Xݵ�&��$�F�$��W�1h|
�~��z�
�=�}?����o����� ��?
 ����n��3b{˜��XFӛ̊�
�V��sB��s��>�)�K���k�
����~���ׅ���By�
�
��yV������?K�v���@��x ��D?���
Ÿ����B�G0�qL�d�0�%�c�
Mc{
���x�g���u
7�v����+{u�+}u�+5=�J��p��
_���A���_F�9 �\��w`l7@�0��Jt� t�T��a4F1n�ed��8��
Y�8�e�bI��e��I
���52@
�cs
�'��?2���5����P�@�
`
��EԔP�\���

��1l1
l0�1���LF��>�b���a�



���c�<iǚ� ���o��ܧݢ���  ��r�-�i�1:��E�� @?�X4�� &�
RD��F�
d�Ojށc
*
6S�P�B�6��p�+��
3�辘��+�g�K���.��
&'x��B��:=�&���������~
��X�BE$�9��E�i\�^�CϿ��s-��G�m�\�
U��
#M�<}�ܥ�
�!��7��[�G@����`8��3�`�z,Cu

ʦ1�p�>�/��j����w�JRC����,�Hn������!?
����۞
Fz0�E�Y�f�&���\TO�a�l>/�r�*�	Q���D�('U��
�DE���
+�尢��O�\�\�D���E� �M�‘0��Qn
ƹ2���8_B���X=�&�P3]�
�^"°O,ߨ�[�Ve�J��ڤ��
RU�UG�/T��g�s⧪+⇪n�}�Sq����[��{j���VwF@��/eP��`}��\��z�i=u\Ԏ�c|��p�<�˘�VtS�~U*~���Q�V�@d��o�}v�5uv���^��
ͥQw5����y2�F�k��H����Wɕ(���a����z{�tG�h.��
�R�0#�3���{��g�$i��n�u��D�;n�ݽ�����ov�%n���=N7c��o��K;bOI�Ƕˮ�ޖ]�}$�7,5ƣSk<:�O�Q����0����-�m�H�8&� ���d��հ�d'�
d�X�dY�I�gs3e�]�~�õ�5NW7HL4�\��r�A�׭][�ަm}^���9�U�3�~�fݐ{S"�6&��d2:�HF'��6�Q7���t�̓ М���ЏyT�b���q~��t��[]͙i{i�B����έ�\Υ���M�8�t���2�& [...]
+u6~3p:�����7���?�M$!�q6�OF�ƒ��5(n?�`�L<��h�;��$��g�/���坳��'9}��r���羜)�XL�x�s*}���H3�-�)�������䩠Q���a�#� {�����d_�O��4��{�`�{9�5(g��}/���go
+
�[�#|Yx �ˏ��Bq]c�@
ﴜ�q���=<�+��QyOfk}�2��G2)��m���
Z�1zW�
�3�~pGڳ`K���ΏA�
`�D$K��x[�.��9D@|"|'!�K�-|��
/�{��⣰��]�k��C���T�q��<��@�=�W��x�
n-�zNsP{V'�-k�y5s:�9c9Ԝ�q�)��0S�[�)Q�����C$��5��;�x�}�5��?�l`K�
~�q���C�BXRG�ͫ�;�P�]�d��C�>q�w�HE��Ӓ��ԫ|�9��0��������;�F�zx5�Oռ��Q�Q��B�g�C$kP��
 �|��sKM�gZ;���

�>�
���
��.=�w�$�e@�q��<;eb�6��tU�!�ŕ�FQ=�.��Q#����U"t�G�r�
V��M�N��|D�#2���f�o�+)�
�;�i	�Dok�vp���a�2�v\wz�`Y�s�:�P{q�G�2�ˬ��6��d:j��H343���!Z�HXi�\�:�!�$;�D��0u��t����
�[�8 ?^���|��
W�A�
,�
�9�a��i;d8��;�^�r�ji��&�������F��7�Q��*�Vnbh
+�CJdC�J�,K!�)��.R.�>�H�_�R��T
+DQ!�5(�{�A��W
�i��e$�J
�����/�����wwT_��Z���I�q��<�xu�اB��/Wk(�%�����R�"W�K��Y��{��O#��o�
T?1e�(��Q0dkP6�	�;�`͈���"v��&'3{�@�x�1��Z}�&�e��j��*���BtB�/�S��PTZ}����.+m
�h��D��z��W?�䫿����)*E��2D�� k�~[� O�p� Kf�]- �{`��t�R�m-��泎u��.U�il�R�л�ZJ*�R�%�Ɠ���@���M����Fd�>ae�������-�Q�(��w���=|����kXh�ރ�k�}tw
K���
fW�vzoUk���%��ƜyTe��7J|�
E��ueTam5-�hf��t�d֌��W�	�R��UXz͏���eDL�5��
����;h���ϴ�`��!@[�+�{}	�=L۪�_9�w^ܧ�Hr+�p�ڸ��V�w�U9)�EC�i6P3�&�����4�l�
�6m�&���l���bB��&�fBdk�*�=�[\����?ޅ�;`�@���
���I�v0ʾd �Qџ�\ЛvPԓ}��-<��zg]/&q:+ȩ

Tv{;-�}�
߾��ԾΈ��f�[�%X%�
�1~ּ���i%� wpϿэ;��h� 0L9�n�(h�(�T�m��i�x��p,م7�q0k�8}D�:��b�|��.
Z.
Q���<Ƽ����
8߇�/�!�ך?��
� V��������6OT�b�����7(\����7mǻu�!k�S���ԛ\7�l���YőK3Zϋ3�^���N��
�==}�3�F:5��tj�O�$:��@^�<�w��!���;�;�j���� ]����'pW	��D�����K����M���/nEx�Š��ܲ����S˭G��<���<"��<Y˯<Xw�z�� �":ʺ�K
�o�R� �?���� ��P~@�=T����Cʆ$o�@�&���E�ی����h�ɱ?��s�ِ��(v��0��hq��w	ݸ����y����+s
�1���~�j�`������K �x�5��'Hxf�~�g���-�l1��v4!z�!j;���ɰ	�چ�(�;:{��i7m��!���C��G{��w�5uoq ?��$� �� !�	j8*���,�ɢ�Vi
���
t���Z7����V\�֊Z�<l��":U�cQ�Td+�y���8���g&���{���{����l������ְ�{��o��hG����J�_C�K����Q~=@��� S9�o
>�b�nV���>h�����0�-
<��m[��8�u{\��<Y�9?Y�9�W���<���<�'�<���}+��[��G��6���_F�����_ ��D��
0�w�	�F��B
ڗrp��WZp~�
N]�cWؿ�ew*�����0�/Y�&֪�[ֲ�
+��J{_�݃�E����u���)��
�_����; � x5x<p��f�

��R�ݐl��A6�X�/H1$8
Ę�8D�)#�"�73Ƹ����H#�7c���/����_��_"~�0�����w�!�
�5��%J)�ơ
+�P��cԃ ���P�uB�!���4t��Р!5��g�?w$��=�!�_
��v �� �/ �� ,�1�t�ƔiB�jaPN��"�%^d2�$Ʉ6�1�F�t��rl
t�2��Π;q�1�gP�Ϣm8��$��9��sh���&I9�$դ�CI-9K.��L:X�xC�	�#�ZuD;R��
BYT&p��͡<�C�<��$�d+�+�>r�
#?��
Z_#�3�M/�e�Ȑ��o�e�wbp��8S-�]�Y��r�N��aU�y�,"_�M|Tn'U��ԐZ���\&M�a�Sހ��ׯ��T��%=���

O�z{�U
z9�g�IO�1!�E�4�1�C׹<t��s!5�H� 5[I�K	�4���ӂM��/�-��cA������
��3
+:ȟ���@=eOR l��A?ꉯ'�?}�r�O����T�">z.
銌������hԯ-�iw
{���=��k�	a�������C�,�C�R�D�NئC��

+G<z���Y�([� ��	�E�7��i=�b�AC��\A�O��k�B�+���/��w��L��w�<��1}�?d�D������UEԬ�]�@�iv��Y����BQ�鍦7ރ��`A�b�0)`�$B>��g���s���Y�g.��/1n�_n���������ߘ�7�wϰ_�d8"i4���6�[4�X\3<����oq�%�P|�ǝ�C�s��ɔ;e
�T3�(�#�j�nC��Lo�7��>
�嵄�

��3�7%_�������A_K�n�^
,��
Pi�s����c�
?��\�����t�N��� ��
B��`��hD�SE�oOu̐ &ʡ'Q
�<��8���H�1&��FT��ȅ�?G|&�^(=7�ت.�Dv6l��t�v�S!{lO�
VԆ���!����������a���P~`*Z��p�����ӄ�qt�L�:R͠��L�Cs��R|�I��_��Euq��ӱKO�,���^&?����u���-�Ñ���
�#�w�6�N�/►*♺2�jw*vE�ME4ʈ�hn
+�ҵ�Пƃ�L#�#�Z3�p'S�2'2�����h�����,��ď,��Q ;��mu\�ݾ�U{��w����+��ig�a����ˣ��l�ns�ۧ.���eqhW��D>F�� ` �}��l��A�
��mst��l�6+Bx4s��Pz�d�\���y�ʔŊ��B��b������5e	Λ�]7�w+��w_��cmB�KI"�K�PU��v�v4���
 t�6�L睦y
4,����B�8��,pc��7p5�aFr�D{�̔�=�jG����|Ŗ��6�\�!u�Si�z�)�k����N>�*�ve�]]q�+���aM�LtX��*b7�2�)�:��F[\�B:��qP��?�Y@���P���U/�bT5?F�37Y�-g�UYv�|cV��t�b��Y��k2�5��X�2}�ۗi�
�Ӿ�-K;�4�����N�ҌA����^6
�r��u�	К�H�W?�w�|��98�/�#j8��g�>	�̛f����M
�-K�e�Kr?R|���Z����9E���5.�f [...]
+���iՅ�g�$Y�(2m�y
+qAn�$/��I.ovɒk�ҳ{=R��d)��=�����uM�aND�����J���T�C
́�j@ك���`g�>:k��Q;�k���i�Z2E]�\PUnZV=CU�`Q�J�V����$Y�N��M.)��g')v�'(d�s�8�]ٚ��&�3��&I*`�F�ga�4g˨�}���=�@W�:�Eh[+�������W��V��(��D�����V�erی�"�ԒJiRqì5�M���
���h�'
*o{D���ZŜb����'z� |K}��jp�v�A���H{W�A����L��l�:O^U��niC�a����n�4�:vf�Gɖi�Y6I5�5��تz���v�����++�ET�u���
Q�O��L���9DU0�D�R�/i?�
WS
(���l�����
BԶ۠r�W�~>���oJn�
+㬖��u1��D���
���m��R�U�j����Nau�g}Pw�5�n�|�����5s
U3b7�
��%z��Ct�}���v�=7�[�*�J5Pjfq�o
��Ez��
S:B���L�6�ψiO3�ڐk���6��V
��*Y��%]ֺ�)���s`�7΁-�
�Z�òf&^��l'��~��L��	��!�߽�PvK'�^�e�.=ӑ�#Af�'����O�Џ�l�=R�-�4�+Y֕m�Yd�bk�u��f� M��_���Os�a��k�%[F�~����mf6�
�z�����
P��(�h�U��(��(�H�"y�5�������E�/��_��f�m
�7A�|o�i���=�3�z���j,}{����=e��{��g�����7�>=���
f>�yz��

��
��Lwo�T���y���#@��D
��rH��!O.tȇ<�Tg�`�n��J���8��T��y��ʦ�
4�.8�e���}��GO����������y
b"�����

�u����
��kh
+:
d
������lX��a
��uF�v����m �H���~��P��;_��7W[<�K[g��&CO�
#�����ٯ�<����~#p;�n'�p�c4�}�����S����
�
?K;�9��0��	�]������<^W|1�J ޹�y^Y�y����F�y�#�:.#��#��NW?�K�~��^y�w�4�'���K.N��毛�7R~�A���}XC���(��{���������THoX at zS
+Ǜ����C�p+��WC|;�wT����Y���,�
�,������3���3����nN����A�
�_z
����|J���>e�|��5�r���
�B�<�����x�
�G���hf����L{
�'�0yZL�A8�
�c<�
+���0~2��$�o��򏁜a�?O��
@�
([�@z��0����F=7��
3��������0z�
�׋��z9�cQ��-
�7��ö́
�1j��5򄌑�����+)?W
$��ïK��(ۍ�
(��
0�`�
+2=�1
�	�|f	���L<�B��_�!3z���3:�B����$Ք���D�(�+��;`.e��
���3e�э)߀z����]" &DD,�=q!^d1	!����5�.BC�NM�Ĵ[:8�e��1
O�M[�1� �	"8f��1�

3(%u��c[��K���M9AΒ��w�>���m�o0���8qLJ��8	��ƍc��
��Gg	����0��H
YG6�.����Y�c�
��\#'���+q/����?d�yTSW
���K¾� !/�@�	Z�*�,�ʾ�H�HXH�Ը����ТH݊�8
�m

�ک����^EN�w~�
�����N�������r���Oq�w¢)�^/
 �(s�Hl�Cb�� h&�M+� _�
�
��<����8�	��x���K����K�O >�
��N�c�t�f�'
��HbG���Z dAC�6�=��|Gw��ѽ�8}�|K� ��ߑ���g�cr�?F>�c�!S���M���A�\�=��iO�c��Og�#��SbH����5�|'.���5Ԙh�Z��z%�B��S�E]�3Q�Dt�
�
�NSEW���G�-��M1f����O����	u?�Ax��
�}aM>n�ۓ�������O��_�)��S
�'
z��R�C�*�}I
�d+�d����[�}̛�~�?$'�7$�XW<
�.z�6�0��s�;pv*f}
�p [...]
+�,�I�����K�`btV
�`����Y.u˻��w5��2�U�&�߽6]��n|ѳ���
��MF<M�y~oz���I�fC޿���Ʀ���76�#�
u�Am��a
��G�����������-��Ƽ��\%��9Z�y�%F��jM���0=����f�a�v�o}����O��O�Հ�)�c>׬���>����~?l�������������\�Ȃ�
��a
�h<������N�;�:
�-4�	���˘'�����כ
�[

0X�4[���>��a�߿���~�}�'l��_���o�
0��
'([wb+`�5�
0���@hl�FcY�q��e��F9�
�3Й� �ۨ(���֑p���<�
u�}��ֽ�K�{BVq�
+n��n��
���
+��+�og�Y^G�-�=�w[�k
�
��[?�0^�c���_�t-����
:�����a�q�F�be�=��-���V���؝�՜��v
k���
��No
��o	;(�
6�1�'ǖ�g���;����͑ض9
+�|�/�=��7S���Ѕt�>��L�C�O�!�l�/5�ѓc�;)մ31�bG�ں=���[n�[��
c�m\�L�_�&X����'\=�*�����

1���X� 쁭!
�Bwa��0��$Ѱ���ѡ
1���&��T�,ҨC�h�-Mfٚ��ޔ��$��7'V94%6ҫ�V�ovZ�C�,n�KC�QQ}܈�.��K]¸c]"��0��I��i<d ����^�y�`�
�"�!���rF�Y3�]�yT�"�՚g�Q�f�^�`�MWsVK��
i��S��Ɣ����amr�Ku���o��䳮��w]�SƄ�T�קa
��I8
+�����
�F������s��r-P�Z�v���s��-9!���E�k�)�rkCFg�\k�tq�C�����-s�L_',����Iw�K�]uҿ�Io���q�ɰ@���p'��؋i��qꞀٳ� ����Rc�viy�]+!�hf�-yA�&u��JU����t�YJN�2ϮJQ�P����d68�f4	�孢By��V��M#vϓ�t����E��
5
+��*08Lz
�пd����cE0��`� ]Eƨ���Z�?A-E3ɦ�@�Anܘo^��fU�δѫT�KT�ܒ�r�8�α k�P��I����R���(�ܳ�7ܳ�^�r���*�s�1/7;Lz>q
'� 
A��R�����
:J����m(sEM�^��ğ�P�и�(Ƭ� Ų\+g�j�m��܂�RZ�W#P�
BU�QV�W���-Su�=#�*x!�Tc'�
�jLޤQ8�'� 
•�\C�T"�	��	�R�FM.�P1�h��a�,	1�(�6-+I���d���,[MQ���P�SV	�
+�;ej׻ȵ��e�=nR�q�4�ew���8]���,X\�i���P��%�28Z��2��
����X��N��vQS�K髂X���&�	�Z��:�\�Q-Q�g�9(J+��F��u�i���W�I�cn����(Y��S�
 ��üIw��y����pB{�a4�ܷ
����7X��FU7��(o�E�42
�Í��b�rkS,�k�lE��V^U�M�*�U.$W4	*�\��ݢX�q��0�����4��k
�3 ��!��A4�(AD�q���p�U�֩�Z���
+X+ 
+8"8Kl��Uk+���.D���:��Z��u�}_�Z���?����y���}r��?h��
<Oz�w��pf&p�{������|Πe�I��SaNJ >L1+�'Ǫ�$�;LZ�_3~�P�ec�^:A?��i�Ö���8�g��~����&�h�;���+�Wƒ&�^��I�>��7A�R9���
��{��u{��d�*`}��¬4=f�15�����x/��j\j�ѫ;��|�v���
������G
��X��{E�wϔL���m���
n�5�l�����%���$
ݓ�W��o�����y?���8�lJeҁ�5��29�e�g�a�:_�_�q�ڋQ�q���=�C�8���9N�w��n�����X���ۚ�]2�xu��j��8�
�Q�
��gCl�s��4و<�+al܃��?/
�b��, q=0���D�Gcr5����04/��"�����~�}T�s��{�r�e����.�r���,�E�v�ܜ����GD����������7H}�z�
Q�I���;��q-������r�i�9����Ѩ��
}�>�mm��V
⭱��5^t��Wt�S�Y����Nq�̟���X���b�ߢm��_�6����*m�管;�k莿+��g�s����'� 
��v���}��8 ��
���.B�-
��8D�z �6P��F	�m���m���m���m��dۤ�}���h���ͮny�c�!�xP:շ��n+�9
+�d�	;�������H΢�l@��@������Ѻ��EA0[T
�V%=вdKƠE�4+�+J�D��u�I�U��>%�K��ſ+�
+����T���
�O���ﳿ&3{���_3�[�������_�
�
���wE
.�R�.uC�K�ɗ�������"�����ۡ�r��AWY
�E	]��
omb�j�/e�?f�SX�hf�?�� �
rh^�U�?�����mw���fp����ػ��> ���p���b��P٭P؋!�v��I����/��3x ���G�������@�� S`�
�
+����j'hj��X�U�5@��¨#񥤆���5��kx�k� ^��]zB/�Hf�����
,d~Љٖ�@�ˀ�O��&���|P��:�t^��;5�o
+��@]
��a��\��:$�d���w�X���<sc���Ϻ�W��� �[�����g�Cp�$�S���HO2R0EP<�EY�,��$�<D�ߐ���~�!}ȳ%�.�9
R�R
�hͥ%���2h��N�K�+*��t�~��I����M��ҟ���#�e�!��Xb?!
G	��,�r6}Bɔ�ȢM��v�>���NR]����%�����
+RJ<Q�I��
hB~l!���u?B�����3LH�{B�̤�)��
!����mY��p>�:�R�p����U�u~�ߜ%
�H���x���]��/d�����Ϧ�{̽� �j�
	��~�O�9�^�D�.U��e�纍�.O<��Ot��c�
��BT���Pw��k`w%�襸M��t�
�����l��V�GK��f��#d�<3#�K��w��a��5,Ն�!]�j��r�}�v�a��2
v�7�Ἰ�}[��S-.��R\�
+�@��!�nӀ\!Cu�~�a/Z�lE�Y`<
7"
���{���n\$n������
�q͸A�h�?�����J�	�ŀ2Ey�uŹf�)�4�S�6��b*�B:U�l�|�
��	2���������ۚ�0�#�Z�ŭ���	�i��4�UT��$�w�T�9S��i��̴MuڴWUb*P��ԅ�J����c��
������
~�
�2W
����:b\Q���q�}n�E�%
��󖱢�2YQj�PYl��:e^��Ɯ�>iNs8a�r8�.��h����v����O8
2��
0��|a���j��|�t�m����GF8BF�"x�Y����;��
��ը&(�n��1�P
�O|3Bq"z����Q�t8
�/ǃ�K��G�h�E����2
j���Ī}Eb�'
{��c\jl!�B�!�$K�@$6�Ib�ر@��
�8��X$vl'�
�Y&��v��L��=i�&�I:M��m���43��3��{�y�9��^�+b?uU�L�$�L�(��8/~�?b.����J�Ϥ��T���J�>
�F�I��
��l��
+|,���Ki� #
ޖ�_���LA��YB	e"�d�D�
�G_���vQ��
����e�
sI��Z���OKB����/yȝK��3��kFJ0��}�n�3�уL̽�{T����
+���r��r\��9��f�W��
9e�AEE�r�5����� ��z���!֜l�=+;ŝ�\��2��S�����	����cr��0G��Y)
kX��P�!�J��E��Bl� k�d��J'�+RR��D�.0����ԓy����	��5���
���L�G
�a�Ÿ!�5�G�h@�h@�DЯ$���a!�0���\̜��
/�񨻍�(#AḦ́˚Ͱ�y	�4i�ӥr�)uQ�L�6�Wl�zU�DQs���=\��
,�
+����
{����xw�/\����:
	>�ul��G<�>G~���=<��𞍄��r9
��8��	�z1iV�I��E
זƌ���3�SZ�
P���J\ܞ���x"�Y|RԡZ�oS�'���&��>Ij)�{|K	!hQ<��� �0�*������A�-3�^d� h��E����0cJ!M�����aCq�G_N��U�{ʭ�.m#۩m�v����4�B�fFԤYJh,]K���N�i~�ɦ�[���ڴ߮%�'�7؇�� [...]
+ӏ�J!@xU&��K���>zpu�6�͘7�9��o=Fl��c�
�61�]�A�SF���4[˩
�
+���ʪ�n�X�;��恸J�q��ʟp��|����&]ՇȗIz�"���C�G�/�_p�3��
u�
8mx��
8ل���ǚ��y��RH��G�"��^m��Q�lF����Y]g�Tֵ�L�}q��q��:����4��6�Z�G�H�X�#*�qe�_k%xa>�}� g�6ּ���: �:1wv��w
�Ҡ�Mζm�֖Ljn=Lnh�G�;
+��-����Ze��ij�g[���nAYè��>_b9Qe5���^R��s|�^���b;�Gxa��}x��&ּ��+�?�1s ��[ܮhhw���~�{I6W*�֕I�v�FVvǘ:˩��
+zy{-�����ns�[��
+[gD����<G(A�x�sB����<!@x���!��=��������0�
 
Gܽ�������[�f���
5�HU�R��Oa�-�*�-�)�1�������U����uy�J��8�{I(w�����E2�g�,׿��.�/w�l'�	���3r�,��{a`z`�Dl�e��x�����$��!�v$��ɏ(VG
�c
+����A;=g��%�
pd�)^�g�/=vE��'�
�� }�	/}��J�	��z�:�`
�?7�
��8^�`�f
+��T,�||������
(�I*�r�/���+�PNi#��*��&�b3&[iRoC���yة�5�A�[
��S�x�l�8�:8��0wp7z��wa
� u�O`f 0��N��IP8ς�@���2�
��!�< #�y䌀�"�7DH�-�i�����1�����߿JK�ߡ'����}G�w���Ef�rÍ
`��X��`b�u
��� �����dc!#�i�9H�����Њ�V�IW
+IV�䔕J��;eߊ+bop$rO�T��२]��Q;���v��.z�2��,�c�)!��+���}s � @��O�5b,+�<*_8��5e���
+ ���wu콚/�$�'���!�
+�aG�J�
j#m
yH[C��C��/l�A޲�	y�������_!"�[{�e�_D��}d{��
 *P�t
 ' y
`�� ;oQ`뛌��]PQ]y��7}fPPi�
(�
���PP��%G]O,I�EWE#Qlh,A\l(6tQC46K�b�z����.�ݏ�wO�w��p�w���w
<���(v'
܋���H�>������dZ�$�E�,��,�si
�J����g����|XH�CBr<(d��s
r��뀯��hf'07��!�_��R�����:�W��Ɗ����2��B_}�(�VM��*
6U����	M�	�
Me����0?������;�ϋ���gns�e@�@�Ӏs%`�����-T�MP^q��7�W;A�T��(���ĉ�ff>X�x�kU@�c^_�� �c?��\��p/0��Q�z
:��U ��� �e@�+ �n:Ԥn���ZpC��͐7�݀��3��!��/��o)�ca�؉����?�DZ��ڏ��CK���sw�ُM�>��0U�﵀�&��Ѓ�
)yo
�c��������ܤ���Q}�E����.>o9����G윸�����x�~�Q` ���:�ϞWX��x�}�ͼ{�~��⦆��5i`M��󞬉�"��C��FQ�
��l�`��.~ �� �<_���
��@��]�Q
}F�i
+ͦ��Iٴ�6�6*��TL'���;<�wx���Pß-����l
�٦-��/����!�9M�J�%��rh
�S�a�޷
�q�%��Rճdo��6z�'D+7�l9�����/�6B�B��Ih��Z,����=�eB
3�2��X�'(ar9��
��!^����H����3DG�����z��p���t��s<l9
�a��4	��3�F=��@:^���\��'���WmB�� �T����~�mU5n�
��5jmjt�6�����2��� њ��.l�?�%��I$�?�K�Qxj����0
�
�����
�qǰ�
p˰7
�Pk؏�qT���!�ۿ��@�IHT� �ӍLMD{;���m���
^
�hp�g-{��e �;�m�1���j����)�N
q�i).9}�
Nkp�y�:�@��^T�
E��y�lyW*s})��
+鈛��݄�p#�?��(Iё��e=>1�E;w<��;
A��&W�
�E��8�>
U�Q�1�=�H?y,�NxdJ�<��2�u�Q�-R��.�����i������OeE�B��v�W��jz���/�+�/�
x����=�K{+�~�rK
NX���2Z*�L��-��!K��e�l�%]�ϒ%���#/����X
+�|�*
+}�)v�\Ul�Sl�}����M
�bc#�?4esZ
�4����tU���
��\q��/���Q��]�}��IE�cd�����O��Δﰦ)�[+�ZW(7[sU��ͪ����
�#���s�5�����oP�t�U]�*������60�>��k���t&T�� 
��Q
�?w����Q�=F*N�m

%�
4N�)h�"/����_���W�f�Wdkr6h�vج
�o�"�nY�o�̠6AB�m�А�c���̿���B$�Q��~<�)p0�
Ea
�W���
���HiC�x�ڰ��ܰъ��_(�{NV�
��^
���
+]d��L��k�$d�>=�H�(�aAh�a^�S}ZO�#��=�vn��4ݛ��jfWpj/�s'Ϡ?FJ��׀�7�G�bCdr#�H91�������Pf�
��蛤^�'Y��g����i���3l�z�2�	�h���8;��8�������R�}J_�#�6{�܎ ~f������췏��l��:l�v�ژȉ醕1aRVtYFt�b�aʅ������&-j����i�ّ���"�
)+�G�7N��i�q�4%�Cr�c��G	;ғ�=�F���� ��Y���c�P�'p��Fn����XoEF|��
�O� v�"-6Q�͠���hfL�ΈI�M����=ߐ
�e�
��41z��W�
����CR�[c�@a [�5{�砚}>�������)8��	
+|�`BV��
����`)-��,5!Z>���ʔ��U���L��M����
7]?1n�ݗ��bW����q\�>���r�{�c����
;ғm��|/�����#Y.��h=?g�o�ÌX<�5��/�e�����
��
�GAk���!�
�#@� 
A����z at T�Bt]O������Za��]��-3�um���n���~���L����
_�|���?��~���i����扫t�$���))2k���89ǹ0��Ւ�J��T�2k7�gk[=Lڃ�Y�S�L�^�&3iH��$���%Q�S�����{��
K��r�ٻ��>�5��`�:�d�1�U�K��k�R���$iAz�c~��97�⚣[�X��Vu���

����'4i��^�ԛ�4�#u�NpK�	J����?��sY�Ij�����e�C?��1���4�Lӱ��ظP\���!?k�Ԝ�s���r2�\�
V�A�Z���w��mꔌ����5I��^Z�
��Iz�-Y/(�b�k���ی�8���(b��q��1;�¬A�y<��/��
,���Ź9�$�9	RSv�,3��_nvI_^,י*�)�
nZc�:Ѹ�#��M��&�����x��`�D1̧���L����ڿ���bI��c���HQbQ��`
,��-�-�)�,Q�L�R}~�,=?�15/�99��U�W�H�]��������k���=O�yƘT/6
*��5
�a�pݝ�'
��恥�.���8Vr
Vb���k}9%�`*	BfI�H_�P�f���Z�I�W�ɖ�09%[\�K�Euʘ�-n�E{�#
;�E�<]UG��
Q(�"
ed����\�g��S���V�k�z�e���r9�*�a��GF�4�*CD)��⤊E�Ċx������L�ūr��*q�*��/,ۤ�_�[^v�-��,��-��*�TP�[�
+m� ��
t3��� �[k�7ֲ�!%u����NH��@r�Xh���v��或�E�c떈cj����
iDm�lA�
+����sk]C�[�WQ�T�YR3�YsW�Z�א�眧'J�#�o�n���
X� �L�m!�Q�%�#�41M�����pQD�"т�qx�N�hrm,���X!
n�w�ݰ�yf�a���^�
�̨��<c��<cY���<���:z@�-��[����}����,m"[\����mc0���lA�k
E�m!^�ŊBlI�Wm�,[�$�V&�޲�aZ�M:��lJK�,��#Y`�w��m�,`+�"8s�9?B�6����n�f�
(�	d�҃�@�^`n���J�n��,��쁘a����9x�
�i��0u�S�-쳊&�k�������O���/�Ƿ+��g��
��o�s���~��dܛ[�wq
��:hg��X�1� 0�0{��RL>�¤c>���	
�x�c&�;�b|G�:1�S�����Y�Q��1��
#:�����������A�s�9�����|�������

 ҩw
X��=|�}鄓���2�v����
��q��~	�� x�́GO4�=ˠ�5½�
+���P��B��E�E(z�<���(O=��޷��z�]ɸ-��w	"N !���
���t�;��<���
��J��i��7N}���7
��PH��I2$�9��CԿ����p���;�����7�q��BƝI��S������
��
0�"��@�!�tI�e���Ko4pe"
�WX�0��/�#�t�pL���.���#?�o0�5�w1c�b��z��x��;��~����~	�3
�' �M�J��p
�T,�=�/^`Q�|9��Y0�y������\t��$o�>r�|O~|F�!����Dϵg�/P�d�c��E]� c���An�ArKĂܑ���
l�X �� �Y,?`���/�G|��b‡h�E��E>{F)�[6S�Dϣ�
̘.c�	x�6o�>����&��w	-C�}1���<%�ă�=&�Y�E��y<�����N��
�>Cp
�m49q�42�,&�$�� Ud=�LZț�N�r��
����qO�?�/
�
+����z%q��x:�)$�D-�"d�%
d+�A�Pg?u�1��q
+��
�x����k������%w~���A�E?4���t�N"��|G҉�X�y��8�&>y;uvQ�
?� u�R�8�ۃo�>�?��pn�A��+r�7Fx@�q�nT
�\�9�C�41$���[���1�j�l��f�4�h���:�Ӆ/��u������<��;����H��T�}Pem�:�X5�$
�p
1$�$"B<��x-�J=pQ�깞�jkkն�V�c���uW����m;�
뻏��:��3���̛���~��۴�o�7(S�韮W���_'�}Ք%�CC�P>"�QmCT��oB
+~�Z���C�
�j����]�����
����FҊ��6\�l�U�~\�
�_��qQ�
�
�B�Y��OU"��1J����� F* �!�zR}��/��&4��� w�
|���kuW�a\Q�Ɨ����#.hV�s�|�يs�=���1|��
Nw�'#
��k"�uq���
�
b
���
$?��-2�z����p��۸�%W���b7;>��Ź�U8ӽ����z4�Þ�8ٳ'z���^m8�k��:�C�O�`�k�����O�]�"���_�ǘ�٧����1�-������O$.E������&�꟏Q�8�Ñ� EO���g`�
f_�BfO�r��2�lav
��lp��x�ix�m��7�1Fd7�w_A
B>
��'����

]��8\�Q�|L|4h��9�'�6{�6���`���ٮ�f:�S�-ڙL�v.�Y��ݤ]�n�nb�kwr���ܺ!g�5C��V��_>T�-È��G
<&�w銿6��Z�Y=��[|0,��Ga_�p�ҍ�6�	[tyجs0�t%�z��m��u�:vMl�*��[��/�m�[b�J���,ѝ�.�ݒ6�x,m!J�?���
+O��?���$�[F�M|@���380J�]��b�^��q��!ވ��,fM\�2��]
Wʶ�UqK�����i�B}��Y�HҤ_%��o����5�O��W�����̸��񢔐��O��%R�k�L����!jy{�Io$(�'ClH��&���$�%���IfQ��mN�pM���<C��c���6̔6$4�f&,�'��OK�!�O8��3\P�
(�$>�$�2BZ�
+��
�P
��)Ҟ�s�=�n#ڌ2��tŪ�h����1hNMa�f3sR����N���a��C��1,�36
+��K�5����e0��j��*`��
+��G11E٫�` �S�g�����~+�O�fz^��b�)K2��9s�G�1s
Ӑ�����c���
7_k*�ԘҐi��:�A�/�OL_��LoWU�P���Q����*�L��,Ch���>��rp:���>�i��B�z�eE6�l
�r��1�M4侍��>'������d[�P�����JY�Ҫ��2�
��ܤ�W(��6u�y��8�Ɠu��E����^�W�(�6ҜN`g!�XK-	�5?O�Y�=1#?��o�v����`��
��UyvΟ���-R�%(�Z�B�e�“�LU��Q��ݭqZ>�8,�;9,?�
y�™'ʝQxɷT��d�8��Gڳ�����X@~�*P`���ڢQ3a�6=�$��fb+
+rٲWZPėX}�5 +��	.k��a]��[׫m�]���NV�M�_j�UTXE�
�gܤ:�![G������-^��]4�:��u����&���r�D�����i�י�;�����

^��Q%��k�}��j_�
ooU��wj,��\�u��b�����3���^�

��w��Y� �G���r`���C��3��}Q�ye

��1L��ȸ�f����nowKlE~���F�/zGn)\��)\��*ܮ6���,��x�2�Js�� ��KtNR�S��*�4~�$�'���j�+텒�x|�Q䋃�7�q�2�	���t7���畖Kr�!Y�w���]���Q�{;Tiޣ�T�ď��Q�V"�_ <�3:�S
�P��4v�������N���O�~%��npUF�Q9�F����X�Ҙ��l�Ri�r*
��J�$�?I���R���F�*Er�Ve���*�I�X�P�T!*��E9!�{�:��;)��`�Tҝu�i
�/>���aB0�H�������1șld�B�Lf(�5�
\Z��O	N�$�I��2Cp�0��]
<��^P�U� ���T��$
+�Q��S���o��&�7
h"i4�L#�UOs
��:
��{�\?��a0�G!=���p:c
�0��66)�a
�~nL�>���\�yT��Ɵ��3,�
+ʦ0
�'�-Dk�$F��5
O46�5"�eE�
8���H�pj�%�����&*.��TӨ(1�>
+&������y�{������E���
+�9�^��٬Iθ�I���&9]h��Bm���^��]�u
�
KY�+Ǣ�V��w��dX�'���!-'
�Y�0�����0������g
#Y��T����:Ga�f)�r
+�/�lV&�TƜ�Ҙ�Xe\*T�%�R�=PC_7f1�&��y�e
Vr���� ��d�ia���=�����H����>}��BR�8�Ο,�$�}�o�ɽ��X{�
c?&�ؾ�c�~RĬ
�v��yw��R�@�Դ���`5�G�Qk�׋�W�I%
0��PCi4�K��+MA/�@�t
C�c4b
嘆HG�;r�X/us��
�����Rغv)�XH�k�����}/�q
�;�z�8���x���@�M�i3_�pz"©G�3�*�ViDhe
+B*"�r8�*Ǣk�$T͆U����[U}���V�<��B at _.��S
}�YԞ�qp
+5�Qod%0�0o��6 r'��Է�%�\:�+���2�A�v���k
<]S��ʄ�e��Ue]#9K�@U����
�{!�m����y�`<5��X:x�k���7 A�z��>�
��RS0�\$1θل�y�Y��<�n&� �;��|�&�y@�/�a�����r`:}�@����O��=@��@�A at w�:(�����_��h�
ʹ�8C;��2na�oa�i�&o��-\��
���?$O���9_H�g� ��F��W� �
���c��$��9�ϒ����j6@��Wz�BW6���
.�Ao�
������ʢw����^����Kr�����N`���'��N��f���nu�N�_����_�o��JV\Wp(y	��es̘|�A%��zp�v�ccp���>��&�7V
lc<�.=c6��$�z
�=�0��8�����WO]�
Թԩy��$�&ߓ��Bwp_��<�v
�1=H"a�,h�`1���0肉�g�0�P�B �D�D�*N�@�#3I�"����2RN��N�@��I<�7���>F;~�v���[�.�vB���-�ӎx�J���d"���%����"��SB�
ԩ�N
5j�{� �q���|�˿�C�?��N��?D_/����b"���Od
+�fRg>u��
�p6�Q��)����\s;SU�[��wh�W��p��}����+�\�D�� �Z��BӅ9	����H^!����M�?Ө3����m��&�SǎXC
56s�jn�ݸ�X|��8���%�:�U��j-��
�@o���X� �^�z��XH��o2�
L�7�7�Z��3�����X�
Ȧ�
+��󸮥F5*p��hf,Nc<�Gi�a����&
���U�nO�G;���<#pW��
+
.+���m�W��s�)hQ��窏pJ�'T98���Qu�KpH�nu5��uد9��
����:��P�#�"uO�
+�v"©
�A;����*<�
��h���?��p�{ �}���X
�N�!��pkg�I;��,��.V�U��OuEh��u�]����.�)l�����m�
+p�-/ XbEw
�(�K�e
��*\�y�>'���Y@*������o�1�zuAS�;hv�cG�bl
^��;�C�Q�	��T�6`s�Ql
+���n?J�p!���!��
"���'��,��Y��<���
8�}�h�HBm����cj"G�:r<�Q�Q�ʣ>Ħ�
l�Z��D����B�4z�T픊��51n�(�T{G�����U
HOi�c�{��W����T^o}�kd4�h��g7��P���i�h�2�X8
Pbx�
iuB�T��#�'�I��b9/a��2a��"a���xF�q�-EN�cEv���:Y��=��k�=ן��@�|��U���߶�^p�Ħ�X��cBI�Xc�զQ�7���4QZe���k�!�0}$-3-����r��P�e*S,1mU,65*�N*$�Pf�)盅"���J��C�ơ�q�s5�����>��}{`�%v��,iȵ��2��j/e[&IK-��Ŗ兖
y�%[�a�)�-%�y�j�ť��e
�y���ޙ{D
�K]
�q�D�pFf`��f�����D�
+5.�K�q-�5z�X��Tk��Ĝ4�mz�5m<96ij4Iۓd� 1��w�=�<��������/�*�&~,�$~#�$����h���������he��3x��9[/ �
��)�I?-�8�7��`�s�l�ِ'<kp
+��
q��J��4u��4�����]R����՟�+
o�z�WryjH"�>
�|�z�e�m�A6�G�#�����ulI�����1kLs�lJF�ɄU&��3-���X,V��U�ZM��I[a�(�w�
c��m<�+1�
Vl�
y�+6��"SH"���?�7�w��g����:x��u�H?6�#��<
M�Xm�E�%��4�X2�E�Z�
+�S,7{�2�
+�ۼZ[b~^*6o�]���B�e�Ka�?�����L�K�^��Z�e��}%�s����4���k�ah�E��I�٦���*�
�t�۲�m�Pj+Kl�b�ͫq���ֵR�u�l�����:��l�sm�/�Ԭ��k�Cz�����u��]˸9��D�q-빮�l-�#Q���W��
+eʔ$�#J�L�HY"8�X���r�]���+~)W�$/U~��Q��)ʅpEy'<[���!
����܃�Y����ż�1t7����|�ۊ��Q��B��Ru&����T��@�
j���:�\�L��5�
�IRԀ�Xݭ�R��Y���Vx��O^��YՐL��ܢߗ�u���J��@�o�/��K�} J�#Pd��c:�9��p��HG�#KP
���X&.q�5َ�,G��jo�2�;u���q.,�q3l��>�����P/�����^����0GO�4l��^\N�G�V�
G�3
+���w>�<�\��$丌X���]9�b�C��J�L�Wcq�Ҧ�6H&g�lt
ҥ�^ե���Ou��o�4gH꣰�+y|'��{������X���[�r

z��TB^i$��1�qO�➉ŞdyRa�X���,�|!�S$.�T�FO�&ͽNkpo�R�
r�����F��I��II��>�KB�^ޠg�S�@-��H �z��������dW
BV�HX+' �;
�<��)XTe��ʆ�U��VU(�eb��NL��,�n���
��{OKqޫ�)��ڸʐ6��'.��S�8\�>����8��4�ʕ�]
�
\��n �
��~
�OF�o
��}�H�Y��S��s	>�����Ź�͚پ����S�X�[�����hb�B��ڟ8�
t������f`���5�
���|?`��
�4Hn���X�<	�S1�?��$��0�o�
.f��0��f��i�������8�Y���c��c�
�1������Q����u@�fύ�C
PD�3I&s[�1�ef��ƌ�hLo��i�q�ڪ�3�fL	(�
(@L�
с<
؈	�=x*�)����`|�W��
�~���K����wQ{s+=��o�^�[��6 �Q1�L�Lj��ۢ0�m,&�M�S�X<���`*�30���`1Fk��Z��ن�;�aX�"��FԎG�=�a��֐��Q��e�۩�B�F�T'������%`�^ v�����>�ۣ0�}
�ڣ1�}�t�'i���;w,Ǡ�F
�؂��
h?���[?�
�
�C����Az
dݛX�'�$��b��_f�1G�
�	D��qrº����+RW,�]	�Lz?�]<X�j�z�bNt��x��|�M��=�|k��[=�tw yG��_ )����h�I�
;
>
�� ��|��d8pa
�D8�vs ��0��C���K77[7E.��
̹��3_�oI��
�}�^��3��v�i=�E�W��G���A� �
�a�:-� �Dr �:���0�������
3�G�_�l�����]�B���G�>Z�{#=�`��7����ԧ�_�_��	D�Q��ԾI�@�!�j����{����r ��a�C�я
 =��aO�p��a���Ȟߓ{��G{]E�
Y�bj���٬5����
{�����#����|D�c��1=�GO>
�g`�|C
�x���/y�=dO
��4��
r��j��b��E �20�*��;���o����!���"\>�'u�g�_���K�H�
���2�������kDT��}
**	��EZ��n��nh���YDQ�A@����B"2��b�M0�1��rRV&N�RV��8ff\*5qܢo~�T�����������{�=缤O~���l
d�!�H����u��'3�en��� ��D���ٍ��^ӉYD���d��d�"�d3�Av����t�S�"�oq?���x�W���?���"�

����~�
�1�
1�t�K����l�F3�`'5ڨq�s�s
��g�#>��mj�
O9z�<&�ȿ�?�eg7�N�
�&��qd�OT�@���E�ꬤF5j8s#5�P��{8g;���V��!}� �i�_2�:���2����G;C
5��ķQĝL%��_AԌ�3�s�Ө�C�Bj��F%5j��H�-������_�'�Q�B/��/�� }� �M�oq�~�$7� �
�/D��Ác�
��9}�r]*|=�c\|
ur�QD�UԨ�F-5>��V���9��w�d4��o鋫��˴��
���wi0Z�"��6�;ٙ0�eG'�\�;�k��B��q�5��J�N&gͣ��p
�y]U�
+��D���h���9��Y��ВS��G|��k
w�ql���C�y�e
����
����o$O�^17�����x�
��Ұ,\p��9�b�u,Ǚ�U85|z�6�S
�9�G��#�qGF^��Qߠ��1�]��
s�h��!ȓ�����x吻|��!�+�ȍ��p�y~���.��
��)�D�pM�1�lt�-C�[	:����jt�mD��6
to��O���$�x�m�
��}��qo�c<��6�WL7OfRߛ� 7�0
L.Ot�%wW􎝆��|�=^��	�����
���}��`��M.�k�:�-S��cJ
�O9��S��y�l�v
M�=D��+4x�B� y�4�����������O3
��:
+]�&��s6L���*���g��sf2�ϴa��R4{b�W��*��U��Y[Q?k�P7�S���+��}]��s_���\��u��S^���}�)����ZO.���;�
��v{{b��s��%�}4h�1��'
>Vl��D�o
j|�P�[�*��B�o��ηUX3��P>�G\=��X6rޏb�|Y,y�P<��\��{-��]�~�t���S��\ `�<Wl�?Mz�a�?��T��ӡ�ψ*?
*�ұ�/�~�j�R�̯B(�oJ�w�E������}bA�]iY�b~�<@����}��6�/G��d��&�8��o;蛦 g��G�B/�*h>*�a�R��J=ʔ�X�LA�Ҏ"e��BY$,W�
˔�b�r����+-]�--YtI��#e?!��,�C�G�߈.1��0�vƲ�1 -Zָ��.�	U�c�6��C}P�U�T:��(P��L��<U��TU �ʄlU����$�U�%[�)=�"-�"-��"5���.�#&���5��
����C�����4Ўʈa(w�ʈ)(��F����5�U둣�G�:Yj�`W�	6M�����4��U�*�h+�"�*,�_�(̑o$s�,Y�!�sG\�{��k3{
���|n�{
��kEG��0j"�^����m������`���� M�.��r��
+1Y�V���%�n����P�G�Q��o(���D��1
r���q�)jw���ge��g#߫���v,vF��qX���L�l� ��C���D�ހd}"�
��Ő-$�
	�r�d���
ۥؘvEL�i�!�B�w�Ȓa7xP�#����} ������v,5�@f�2�Ӑf�ո ��`X�j��#1΄����)�	�q�D��Fԛ�JѦ�
+��G�5]SD���2��X��{���sI,���βoW�Lj9.�]��Þ��7�$L�%a�#!1��p�%�`4kN��l��<!�\*j��b��YҘ�Kj�	E��sE��>y!E��_H�����^����X���<�j���
�#5Y�%�	�`J�c�/bS`H	�����D[��ZӅ(�RAc-"�Ub�u����B�Ǥ��+Rp�R��9����_���P�p��|�	l6�
+�
iG}�dc͝>
+1�c��x����@k[�H��b���[f�B�+��:q��#1��&.��헥��{R���h��2�q��<��3I��+�s��#k��v���x�a�>�Y�=�D��lvBP&-~�����,�"d���%�Ğ�X��VjI �5bԴ�c�1�Z�i�C��vZ3�\��o�1\r�{��y��{����lb�>Kz	�4&�Vq�.�]#�4"!R�hX�0�&>������'����dӀ��~��M}��̽������5G%]3G%>4G%��V��hd���e�T��>`
+ 3��8�E<�gTJ�&;iH��bR�48%LS�h at j����T����6Q}Ҧ+:m��Ҳ����+���3m�),�)t�USh�Sh��d���Ar�Cc#����˰ 
Js��z��2������gکO��zguStV������_ٱ
+ώS��	
+˙�М��SP�E9k�S+��c�͹,�����2L����/���R��X�ݲ|އB���}��0��	����f�8*��]A�
+,
V at a��
��Zƨ�e�|,3�mIU7�"u����e�<-��\�Ga�<�X����|�"i
z˗З�Q�bjP"M�1+�X�
a��F�J�Ե�C]J}�U"ϲ(y�
�{�H����k��r)O�sy��)/�S�f9�
�C�y9�~#ǒ�r*az.nc[
5(�X��hda	�V�>���c�F�g��W�A+%��r�:���!����-;k�l�q�l}Q
�3dcMW���2U�P��
+#[y��L���@��^�R�E7�_W�?7Hq�؃�R�)`+�5�o�
k��Tg/S

��
|�!��adg,���@���PՑX
��uw\
����xº2�����s���/���)k�S
+܍>i��
ޖl�oaHa1��~R=Ci}_�
CP
������o���,^�Ç���<�OXI�-�A�	��Gh�Foz�<�^�Òs�dwT2G��vN�I�8E
�a�g0?�:Ǚg
+�hrM�@-�H���|
-�����/�:'����
��֣��?��<!9�׉���s����������E
�%o���*q|�`�	N3
�����sѼ��&�'����gS���y\��1)�
�OI
����ԾU�C�l'F
h��§p���Ĩ}�j�0,����]��o9-4�^�W
B-�I
�|�r�v�w������뇮;y:\���X�J��gp
�_۪�p��{f遭�=5�����b0�
)�T��@��63��8=��
/�0q�L�Y0r��C9�+l�����n�׿(���O=ҏ�����w�v���Wrnǥ=� �
#`<L�7 2a!�/�c�'�Dc=Pڦ�[uPt�s��3���?��v�V����Fk
��������"`<���g::Ih��;e��EEh���*֯`�M�����b�Fݤ�u��r[׈���>��<ŕ�l�d�l��l����j֟��%��hMFg&����9��G�E�q\#���d������G
�
�(�+t��|�+e���`؛����
�=�vE��Hr��sh�@
���:s��t4���C����j�Q�N�F�i-��
9�c<u�j5�Y#
+
�Էc�b��z���;��#�w!�`��sqQ����D�ʪo�1G'��
�8N
�!�#Z��kuX9�z�Z��{���K�B����A�S���y�[�x݈�:��5ud]hA>�֋]
DN��g
:��C�GaoA:���N
:K�(g�Jm�5���b>��
�i��-m��P՝
U��|�Ǵ��
���U�����l';���c��WC�(
�<D�l��v�vڽ�Z���n��dm�����
�ѡPV�bU;�U��&�wܭu��Z��;�r��r�G*u6���P�S<B�+��������� �'����I��N���U��	��~��2\�\Fk��
�r��
+��Z皠�n�Z�6_+��T�[�J��U�^�b�Z-�8����U�ק�ty�������k�şVۓV
ɵ�׈`������z-wV���6z���k��u���F���X�vQ%ݧh��
-�N��T-�Β�'_>���N�z��M����=�~W��O���2��|�u{�7W� �� � ?w1Ԅ��Z��Y�����?T�}�40VE�q*

�����
zM
�f*7h��+;8WY�E�Y�y!�
�GsC�+-�)%�)��a��_�ڸŵ7�+x(��0fl�#Yi�k�͊P-
��%,@�=#��� ����^���+e�O���iJ�WZx�R#2�
Q���>�����_�
+h- Z�E%�Hy!�@$� 	�$�BТm����������N�!��Z��ҭ�͵
{������3��n�u;�֞vN�Z���!�~��>��Ͻ��`͊�O= �S��&��'�,V��
iw�� �$���uL�s�������0��^5���K>[R��)�G{Z
+6�g�-=��X�a�ڌ
+��pŸQ��
?|�mX��
��
+o�^��:"�Y�D��X��\�f�!��U<ຒ�����X�`�d?���|���lΞ���H�)�E�k�Ӱ:;�9:�rLh�)GCN�9u�����]���Q��-\ʰ�Q�j�IY��̡�T�P/
*IT�80��Tf�?گ>����8�b
팣E�5�yhV-�O�

j����
Q��`e�
�<�y
��[���v���&*�w
��_�4#2��]Y��&��H�4c�O�79��rZM;렂
��Ʊ��	�_3
��9�j���&c�6.�N�
�:�t�p�Q�����æ_/��'EY�QZ�'�
�̆wd%��["�G���+��
���?X�u ;i����&
}6��0�(�
�Ӱ�9
�lT4�
+a+,����ƕ(5�`1��h�(.z^��ɊLC2�iTVh�#��H��Ec�[L��y�B�~'���Z$[��s���8ܦIp�f���
+�b�L�a5e��X���X��0��QR�Bq�*�[`4����(0z�Od:�y���c���/"ɴfI�����J�G�=L+���s�����3���Y&Pa����0�J�R�
si:�K�0��PTf��̊��ʽЗ?]y��X���}"�z\�lo�T����Be��(����me-�r
��A/�{"�z`-���]c,�M���b{,��KQhO������|�+��U�A[Y��J�*WC]���[�:��l�1�p�YU�D��+~����g9��� ۀ}M���.�G}\��fN*Kq�C0TGB_
]�"hj�!�&y5*��P9�P:+��Z�lW3�
�tu�
W�H�=*�gDj�U�O!wIB�
�F���s�/Qw�Z��ǀ'Ɇ5�y���0�(�Ȑ_�{��8���C��A�G�L�	�V��;�V߈�� Vx��2oR�/#�{Z$y� ���H��D�G��qK�U��(���=�C�$	�s[�*�e^
�O�o*2}QH��GZ�"țR�ڔ�M*,o6`Y���UHj�"ѿK�[�'���?�����m$4�CB���$�!�s����;ڹ��'�Z�g��[#cR3���	Hi�@R�
$��bi�,i]�G[Xܪ���		;�u�
�Fl�
�1��1m�an�%�
�¼��"�EB̺1�q�}����~��ux��@��s
`�3]�9 �;�v<���Y�휋G:㱠3�;���ż�
-�������
!2x��Ø�����cf�0k��}6J���s��l���O�\�<�N�DI�d	�%s��"*���\���$�����1#d��SC-�ڊɡ=��}
��c�ӟ��1�K��mc�q��[���g���<؎U�`
�4��
�H�v��f�'`Z�
L���p
&� �4Ba�����{y�����,�0
�`=��z���
+�bc��'.���.��v7u7R�j��<x���d�����L{�}h?�o?�p�l�����
�
���3��`!�3��
����n����pHB������\�}�C~�F
� �3�0��G��y
��
+�����da
C���8�8��M�/�
�#<hFXH�L�0�����o�M�	/���s+���<�^f
�9�ZF��!��0�0�g�~���?lJ�2�Ǜф�m�����(/�Q
p������a�AF����
��{��|�gn��8�N�_��I�fs	g�&�EMN����8�/�%6I�f��
���s� �_e
����K������Y`�9�ϓ�ɗ�[�3�M?j8�b�NS�,돚�Ԝ��q-.#�
�²b���G�w��2�)�
��&���8�o�M�-^|�x~��w���ͺ��I����3��s���G��ԍ���M}�c_�����3�I�B>#%L-[J������pm�c�r�����6��0��%&^��J�����I$�"��|�H���L����8��x˥^ȩ�I 	�@����@ 	� �\*""^��b�2T@�W=j��>gm��t��]�3�6�v[�����N��vݦs����T��|�?D�~���;��K
�N�H�#�H3i#ϑm���%��1|�I�1��G,�C�����y�|G
���3��y~�g_2��)ѐ,�O��"Ưg�F����Cld���b���O��aj��W�L�� ��#��>��[_0���o�6��9�aOƒ	#5	&�$�dP/�:
jT�ι_������72~�w1�N.�~�v�p���:��k��ߤ��0ڍ>$���<x�0z�
��oD2�D|�Z|	
k�F	��5��Z�o`�&|B7���q�ܲ�� W�8�_�U��m��/��-V��
+WțO!��S
�\�Qs2s
fN��KƟ�/~�l�Q@�RfV�_�ǻ���e���}��Ǜ��N؃>��%����q��αRg�r��r��
a�ga�������oj�^ԓ2�4j������Z����}\��
�q�>���)t�vpg���p/�/^�_ğY�op�j�G�7�0������8����=]���O͙x�ԓ3��I�<�87+]J�j��bf�@�F�Rc�n�)����C���\�v
�
V��{�k�4���W��y�?
��C~9��wy�D��)�B�8�%3���/
D����Q���U��^���j���M��
]c:�u�t�=���'�y�e����&���I���-`�S<��m^i���:����?_���
���|px\L��މR윤B��=�Vt�8��ǃN�2t�T�9�%h�]�g}���w6�vc��>��
G����c���h�"���x^�Q��y����1��H���}^���
�Y�:9?�"�� 56�qj66Lub�TZ��GK�B<�kW�)h
Vub�]X1����e��G��;���Kf	?�6��I�:�����E1g
~��
s�7ڧ�mF���eV
+����5�f4�`Up>V�.���X6��!�QҌ%!�X
�5���0�<�_Eu�g��x���G|L�w��
+��d*g
>��
�I��ǚl���)X>�#��"B���T�GP����\,�S�Es�a�jTϭC��FT�mCyT�G
@Y�̋ �Q�o�
+O��}�����؂
ձ�!�|�u�
iKd�煕Q~X=u1���cQl2�jP
kDe�
qN̏�,�
��Q��⟠H�n�
(��D��
+�•�
�>��.S�L�
�>{H�h��%��kS'�F�$
$���Ơ\*C�4�	z�$d�(�OB܉�(L\�|�2�d�p�:��F��8�7`O�9I�a�0��x��'29g��I���i�gk譞>�'�B>e�`���H!�[��B��IF��lp&9�H*F^r%��K����)�)w"KyU�Ȣ��(S���`����n�:ظv`�`볎>V�G-}�+Ǣ$�
�t(#�R����#O�
+�J�
�٪\�Rݰ��#+���F���¤�QsD��yUd�� _Ad�� ��s����6x�����:�ْ�>�����(�}�T"O

+�:��X5)�h�ĄLm6����KaL�A�n�6�tۑ�?
���Hc�N�A�F?�V'�.�����w��/����Z�����d=���F�. V}0,�9�ԋa�+`ԧ!Ð��
+}����Bk\�q=�L�H5
��|Q�4@�A�4	"� F��'��Aj?�xK1�#�M
Q��2�����g��L�d�L3�a���

�Y�t�
+Z��L
ԙyH�!�RU�2�d�"9k����^���>d�{|~y�0���B�c�{?�wp$�(�^ �J��5�ř��i���� h�!Pۢ�f�"Ֆ
U��lR��H�qC�Sy�R���H�o�Ծ��s�G�Bl�$v��a�3�#�{/u�+9�Tq/𹼜��<����\z1:EP�yC����YH΋D�#

+�
rGd�
$:m�:�!q�A�E�k-b]
����g��|A
#�% �9�i�?��wQ{�"��>�9*V�K!G���%�=
�B$��A���

�;��y�� ��@TQ	��`NQ#"�7#�xŠO!��m�9B�
!�H@���+9�~/�;9�_
+4��s]�QQXW
�e�u eߑE�=�-����f Q�(̸ �`T
0q�8Q�U
bզ�A�lVMM�`L�6
{b�CRc4�h�������o���w��{
xm�c�b-��fJ�M
�`�P��W��`Ř��Ք�hSE�(�4\������l�dZ��R��[��_����yE�`��o�جloCk�i�Y�Χ6B��}�3�U�XO�|)�uF�(<�K�9]����$*0��r��?w��rS�%/C�y���{I�y�dȫ�W�{�̻$C�2�0M�icv�E�F����C	� ��������]o�Ǻ����*_���c��%N�Ӑ$O��,�L�[��f)��e�\,{�d����39�oɥ�.�����߸H�\�y`[���t� C��H�H okG�[��j�V'k�\��r�v����:Z��u�
�$��M�ℵ�D�
���\���C��-i�
�`�|91��]%�^&*����YH�h�r���U6/�֙

4>6����V��v��
+�dά<Ȇ3D��$��ͭl��J��a�b��WS�2��m�zAWڄ�f�_��0'��xn����i�]�'�
�)�vba'��l�uPC!d��|�R��[Y���p����
�1�5��6��v)��4�0���wI
w���v ��j�Q�:jXG

��.@�Z.�Z�}-����K��b�����na�14���,��tt���N_tb������\�K���K��3�4@
o�/u��a���h�j�!j�6p��EN�c��$\bq�'-%��r?�=	��k�g�Y,zA����&Z������@��q��.�I����X��4i�Á=9] l�i��x��3�o�'3���#MF{���-� ~FK.�w�uN �Đ��v>Q�@$M1p2 u��1(}��\�����4�׸�7qț|�m‘��3�}�l�d�� �I�ƿ�>_{
�
[4�Ү�)���y�W�P(]���%|
��[��6��]?�>��F���C��#�c6�1��q��F�./�l� ~
�`0��)`�
(�b��J��zآ���~d�|����i�s���Y�;}�/���\��p�e�d��Z�
���AwH�0���Ŵ��}��k1�˰_�}�������-��
�:��5���5�u�]�|g��u
N� �����|�OC���x���̹7T�}
�c�
��ضa{�.0��.�S���0��I�
����v͏�C8	�Zנ������"�ZI�J��a/`߈����"ih�~1���/Ƕ
�����\M��?�
�Ч<~���b*-��a8�k�7刦��NƠ��A�Bc")��}�gc� �f�cߪ���^��N�������*�ȎSD�2����P�-�T+�nK�K���_�������ϡ1�L���4ʓI�g
�#?��EhX�����
rc�;Y�v��O^��}�5��1%�;J�U���<�f
�ȋc��Q���?=�IBg~�E#�ih���4�S�N1�ehTh���oֱ�5���HUD���R�n�|O��FI���7�c]O�;�99(o4�ыկٓ���p�>�h���i�#:���cFg1v��՜\;���
ke��ҧ.���]�:6k	�8�q�W:Dy��{�+�e� ��Pvw9��]��
�Ƨ�im��Z�q��
G��i�V9�h�s�V8��s��\
+��e�J]�*�T��N���u���A�2�_T��=z6k�\F�����X�ᷔ��a�w��͆����SUn�Z�
�
=�̣����U�9R%���3E���i��I�
�
�*4,�\�J�hX�|���~C9>�5��f��Sv��Vf�s������p��N����_Fъp��uQ��������7N
:���s���<�y]Fin��*�KU��t��ei�_�f���,�e�
+X���m2�Wz�J:��w4#������^o�c��Z�ן��཭���R�$��x�(0 at s����]��}5'd�f�
Ӭ���
MVF�TCӕ
6[3�
+5=|���W���F�jJ�Q�F~��Q�59����6>���h
@
h;��3�bʹvK��|�� �]9�ʎ
UVd�2���1��fF
֌��=Vi�)�=MS�f)�k�Rb�5)�\c7+9�Z��h|�����qݚy�����}�;����`s�آ��#;�E�Xo��jz\���kj|M�V��*%~�&u���nS5��Q�r5.a��t_���7�W=�hTb�F&6jd�ѳ����m
�/��
u���T@T at S���2�
0
�]`H�䲨1�
`y� ^�K$�Zf*h�Y�)=�Zֶɶ�v�:��k%�ִܓ����������?>����y��}��}��˚���ƎL�
��}%q4�bb\9\�0�
�-�_E��U
����G$+7ª��\eGڔY��Q5ʌ��5�E���J��Tjl�,����5����?N����ܛE
r��a
#NJ
�+��	q��-z�
+��)?z�r������X͎1*#&U��,��*-ήԸjY��
�R)��JNإ���2%�Șx~��)S� '��F�N��m���[�q8���8�G��E9�^�2LT�a���J3D)Ր KB��	�JI,Pr�\%ͪ�iV���'4˸Q���2�ː��.���;�� ��?�^���b���9�1�1�A��a�a�V٦�0�Q��G����%#�d��ɔ$cR�f%�*1�D	ɏȐR���fř��E[*��|	w��)�<@75؇�
����~
��gא�2jSH�d����d�8�̓d4*�<S	�,�oIU\j�bS��6_�i��ި��u
+�nW���fZ�Vh�<��))}�#�`/�ߎ��2z��3��2�G)�)�NVb5Y]�`�R�u���͘���(Eg$(*3E���Y���e�9�F�Y�5#k�B��Qp��
+�>���<o)8��O
(�^`���y�R��̳�1��μ�gyĘJ�
�#���
oE�LQxN��r�437N3r�4=Ϫ��|��SP~���55�U���K�+8�)s>�yS~�N�C@�S�K��o���ޖt/��*z�XlȤ,bI&�X�P�,��cR4Q�E
+*����(M+N���T���V�)�
+M�-Ճ%�4��CJ�ɧ䔼K>�yC�6�&35‹���JzY��Q΅Zz-����X҉oya�+�>J�
�+
�)��5�
�I�0=h��D{�&�3�SV$��_V�q�Ojly����ʳ��<��˳�:8�e�
��,�\��~Zʹ�4\�S����H�l�2�y
1�����!�P�&�JO���ոJ?��
�HyU%ʳ*Uc���Qe�{�"��n�[�F�V�KիU��F.�w�Z����V�mh�Ƞ�F΅ǩ����zr at L���I�����1Z�(7�T�:B���(G�F�e遺
����:
;л��X�_�m�Qg?��ߎ�����I�~%g#��=R��b����|J��
c��ʥ�UÛйM�����\��\<�l�F
+�H�-4���9xp�!̖�bhpj+�ވ�V���Jx���m�
H25��?��F���5
�m
[m
�m�����%��E��%��fn��WS��,b5:��.�_B�冴��O;�o-�W��e�9�7�6q&m��OI�0|�3.O�
�o�v�
0�na�`��� .��6t�#|NA��������s4�5�{��|��w9>k�1��>$mI���g�iໝ�S�Q;�v���M
��G'��$]���0�P���`�C@�uQ�N
w
�����+

+}��|7���[ً���O
+�FwJ�]��#y�‘���PR
���������a�#>
eԥ�8�
��t����4v7����1�q�z
��j��iW|?�<g>-/҃�
+܏�W�O�
��1xN��A^�S�I�AN�$'g����R��,�Y��
���h��m���y���׵�u/`ͅ�3�5�
b
���%��Ұ��>�Z����
҅�\��Opn��!���p�8>c���"5�ec���,�ý�K��K�f+�ų�`�����ߐ������o���O�!|����
z�-�Kp��\uC�ѫ��
�7Rn�Wos�ܦ��Hv���;��;�
������PeP
h�fh��(�M����EyEև������b�7:󺮢g�����Kp>���5�HCax�$�q`�\,<���u}��[���rl��w�q�8�%�����̾F
^F)^Bg~I� A��gX�>�?�Y�u
��!�y�aM���Z�����
��`{!��`{9��)E
����h̏Q����h�;�:��.�i�o�f��p^��'Ѻ�7/}���J3�G�����~1�`�9U�~
YK
m�@k6Ӣ?�ڵzGOѺ��ѩ�l�S��$�8A�Q�n<
��r_
w�_pY�X�;�|�r�"𓈏4���-��"el�
+ֱ���c�	��X�:
V;�؎��t����^��
*ׅ����5��
h����
9���$���
�	V,�a߆};�plՐ�Z|��	�-�]�����ɳ|k������yF�;l�ݘ؀���m����@��a
n_�L �b � ��-��M�&k��k�^�5�SWU�v��6Ҥj�Ti�ViӤ�ݴn��U�NC�����}�>�}��}.Wy����%z�"Y/��_{�O�b>
+ۻ��3>wi���J>EO
OUE79��𓣛
}��!\��+�q�~��F�6��e�������;K
�0������"�W���ҽ����M�y���ޑ��`���H�R���sxx/Yڱ�8]����c�~9��X�ze

Tt����OҢ���Q�B|�������c��29w��
x�z�����8�-��R�L��Sγ�hqy��i'Ooi=�l�f�f1����s��
����c�`4�!F�?�јop4V��c�:��W�y,=��|��`oŔ>1
���D�`1*��u���`6Ǝ��jL�z��a"Ώ�n
��h�F�0�pC	L��Ò{��_����CI"����%�M��{�M���l���b�dK� ��II�%�LTc,Q�cI%�:0,�APڀ!i
�H;0 �E�l�dcds�I^Ew�Ut����m�DG����{+�3����
w��L��YfV
�3�7C;���1"�#���#)
��/ՆC����Гք�6t�w�`z?:�G�Ϙ��2�іy�Yw��z
^�ω?�9�B���
x��6`���u��Kl�fi�q�'�
��L)��
�(��R�‚@v9��N�g�Ѧ�U�G��ޜ!4�L���E4�?��-x�o���	�s�@���Ïy����<����m��6���6(dᜡgm�G�J��*�*%��������V�@n
�rјۊ��.���>
u��Q��D��\���,���
Nݿ��{x�m����t
�M���c[:�o���C
�x�hd�j2q@�F�V��
��
�Z'�
+ܨ-�Z�K�g�1TΡR��av�+(7~@�����N<�_&�-7p�%~�X��	�R� u
d��
�h,L�G��z}j�T�p�p
�2Ԣ�؄
+c;
E즣(3�@�y6�uX-/���>��K�%�"�Y�����=r�`�w���
�p�s���:���T
�:��&9�&*M�p�
a7�Qn.C�ŅRKl�m����$��iX�ga�]�������GQ��"��}op
�K�
c�m�*q�-�$�
RG7u�2V<�U�5
�
��
�Y��f��j-B�͆b[,�n�K}0�u��l��
���ۯ@g��Ǐ�u���W�9D�($^#�
/c������H0�u���G'}�c��1f����I(���خ�ٞ�݀"G	�
��W4��2 ]� 
+�&��ZB���w��|j�'���,r����<G��������^��q��q���i��j诲�H��9�08��w�Q��A�2��Umu5򫛐W�GnMԵǡ�=���
P�}�u����W>�P֊�&�E��&�.w��m�
��
l��i�&��I�X9���㡭�BS����
�5�u�v۠�T!���ӆ�^(F��p
+��Ho����"��!R�䳈�=�%��.p$[;��x���u��w��I�������E덂�99�r(���ݬ�«C�ׂL�
��:��|H�u!�7
y�I$�lB�r
Җ�Hl�I-_�Y�̷�۴���?7�7��s,� ����i��jڥ�Z
�Qn 
Y�8���H��!ů�ܟ�d�2��pA�ф�� ;!	� !����3�
����O��q
�F�_|�g��|���
Af�Y��㼓#��VA}�FK=J�}�	io{eD$�
+	B�
�
+�
+
D
��!L`���0���!J���{��e7�#b�
ɽ6ɼ0�X�a,L�|�q��zJ�]
PSSm$;���8D'!b8��
+��-,F�I>�

d0�� �1�y7ȹf����{��5�"�I
q�
[�\9	���N�����98��<j���%"j:��Ùn������}H�WdBLl!p���!C���m�8�݉]^|v�c�w��G�x����K�zb�����%\D	��~�" '$D߱	,��[L"8[.�	[d�_d�]d�]�-�
t�B���F�d� {�����,J�&�Dl�a,.s�IJZeN�HڶΜ�Al�\�D
+!�{����\�	T���/�
�"�
;�
��
�&� 
+
+AW���F�&�%I�Ab�q\�
����ZkԘ�U��$�K�xHjcb��X�N�Ԧ9�{��,�޷|�{�������


+# 9Y�e�����4Pl
���X��&p
�?(�^�{1�O`b#=iuH�h�2ë�ϵ�+&n9̠���H<6�&�&t4��
-
F-4�fP3�h&�M4�����u���b�C���ɗ:Kf
<�pd4K�Ͱ	�͒�V��6�~
+0������r����C}�eHn
�
N�s���B:@<@A�_Ơ��}G�{|�|�>�|���_%~
�/
.�)
._��\Z�!�,8
]�u'0���B (5
w�N��
�FO3��朜�>��d�P�g���<��Y
�]��qp���
8����{��N��
�!d�†�Թ�^Z��>\Ҥ���}j�Ct����r�t��\�\�ȯ�k������K����8D�??8{=�<��<����w��rx\��O�
��&5�y�� v����h�}���q�����-�
t=��!��� P
F�j0��ؔ��f�/���T�d���V�
[�=��v
�]�������K�u�_}��K�7�펝ץc��+� XA��S
����Z�Q
vg�+t�B����-��l�7�?c�k�n���c��g�����X����>Nth��o���+|�������+{n�*	��^�k踂�?��t\B�{l��u�m���29�wt�t��"w�7�1p
�����y�����G\Vx��塿ۏa�
+��]��x:�
�k	%�
�^��i op���tDoq�>!;�p�
(cv;���i��	�w��|��-�8�8,����~>^���rlWa���د�����@�Z�=ZA�X�f8Z��_m&:-D���`�k�wp~
>s������
�z�K?�"�'f)X��~�v�c��N^��F[4E��т�&tl�2����!'���*,4�2�"�^��q�6�Q{�r��ר���_\1�a�#b��P
G
cᨆc2��p���Ӝ���
�.E����(>���;�����F��v��f��|��¤��n��
���3�a#<�H�#�8��
�
+-F�"t<C},�\=�;�:�':�4��:�����S��p�Wh��������Ͼ�8��ֲm��;Vʛj�g�?&xlx���\�G�\t<�Q�T�S�Y��
^M�ӈ�T�5��M�!��m*�Sպ|��.�G�H;=�_:
����)DZ�H�������
�>��)��r�k�K��w�մ���Z�)�e��Z���T�m�j�����KU�}�*{lVEσ��F�]W��=�x���
���2���u�ndy>�у�����n����Oun�5�W�&��h�{�j�3T힫q
CU�1Bc=�U�9^�=����	�y.R��J�x�h���~K��m*�
*�qt<O3~
6�+W<Xma�`Z̕7/����L��Z/o��
�*o��z�j�w�ʽ���w��|�ԧP%>��S��>T�g���Y�B�*�ݨ|�V
�{Sy�+�����0w^����s�6�|���;��:rT�
+?O���j�_�J�#5�ߤb�*ꛪa}sT�w��+?�\C���o�������50h���v++��2��*3䞲B
��#����u
��
j��v��}��L��$7���T
��A*
2� (F����588C�B)7�P9!���_���)�
��t�2�1����RJ�q%�ڕ
���P
+x
�w�ۜC
�^_ ������
��IqD7��g�� C�"���De��(#<[���J��Ԉ
+�DNRR�l٣���Z�w�}L֘K�p(щCp��`�<�9���k6��d>��F�B��r�<�
�̨~J�2(-*F)Q�J��+):C�����
׀�r%���j���"�ǭ�ٴ]&��gzWq��2�
���}���6��1�d�Z�ʧyo":*�1
CБ�T������Cd3F*�'k\���T%��b.T��L��j���e�<�XK�b�*:ᨢ�����::��P+�������֣yé�Ԡ�

E�� r�f�.��S�_%Xe���l��)!Aq	Ɋ�f�h-Plb���)j��
�@��۶�`?�P���-^;�m�&�-�¸������z��8Z��2>�΁�kJJ%�<d��(� �-T1�(E�͊�������<�'�PX�XR�*4e�BRW(8u��R)0��ং�
�׉����ˣ苌�X���CK:J�7�8eS#vbbJwSt��"S��������v� Ey�a��f��]NE�1j��'�
KXuw=pD]P��h@���<�� [...]
+ˢs��h�o]!��l�0=r-,������R�e�����"�w���E9͊t&�d]���p�(��2dp�➮`w������"?�A��Ip]~�/�O�N�)�7��8OZ�5�,E�`�l"�$�\Fy�^3��$2O���d�5��T�'F��Dzz(���=, �g��B����5=�:����to9tq9�s�o���\�Y��{�\�W��m��!TWj����e(
U@!���C������r�x9��l�^��E�^^��Ǜ��MC75�"�k�C�OM�w%�U-a
�x����Ԁg#+���ޝ��H&r
���Q��ex�2��D��R��*��� �R�R>|�
`jK0��~�a||��}�X�z�f
��X��d/�,`0��o��JfJ�j��_5�����	����	�T��E��
+�WQ�%+ at 3��T.¤Vބ�;@_K�ڕ|VK���H�	���F�7�D`a��Lr��_hvȣ�<ȣ�<i���F�F6�w������h
�e
�s-��*
�*���1��2eX�I��3b3 I��s�m2<h~~�泙Ư�<Zȣ��pk{SFS�]��͖���5����e��ģ����*�Ro\9M�G-��mR��R�
�3���p�|�a����kG �A:@C|}��G�hcN��p[�E+�J���s������3�bƖ
��1�<OWb��
z����x

�o>���Q�"@�z�
cn^��N�VN�����$��)�I&��O���/\�T	�yp��ײ���
~
��
��h��
+x
�Nw�
8
^o�7h�:9Ϛ��Q�L3xm\� ��|�p�Z��+��>V�
4�X�9�np��
9�����
+�� �%p��b]7������9��E�|�F�k�.��=tq��ߣp_���	 ~ @�z�! 8�d�
+�%8�b&q�O����,���	�7�G���;��[�s}���F7�}
�#8� �>��oD�X�
�׏x�o��b����E�.!�}F
���'��W\�G��8�?#���}
+y
7{�//�x���8x����B�/��?���x��x��d!�]ʥ?��8
+��J
�q�q`��2ϓ�9�cʚ�v鷈�uX���i�<��^�^G����
~_�[��'22�8}@-��1/i��� ��z�]@�"b�#v9�1��:�:f�)d�̲�%�8
�)=�`��A��}`7x�#vL*%����x[f���E�A�>���N�lb��=��Ӊ�e��2��į�~�xV�a��v�];a�A-����63ڧam��F�n�f����:��i�y�Z
�G����1��c�W6�����!~>�g��b��E,C�
������%�F��3��QV
��
Xn��8ױ�wl=���>t�
��3�m�I����B�6�wh=�X�)p��1�b8�{�V�
��e5�����YЕ(�އq#�%��Y�/��>�`�ݍ.��F�(��$��
�p<
+G
+
68
��jȣZӴ�<�G��	���UJ�\	#��J��7�a�́{6h�^b{?�v�[�!�{8v������
+!J$�����D�
�@�2
�-D�ʂ�	�x�P���W���`��k�, at 9��G
�Y?�[�ԟ��0G�^��m���8r�К��.5~a��_\���0�A�
��O:�YT�	W*�N���.g���d
�m�$�VM�{Mn�+rޓ+����}�GXo|/������D�A]�U
�9fy�;kf��T�W���5-h�r�,�lSN�C��ݚ�;d�\�%��X�
��mh�#��aǕ~I�w���w��[��~
�8����:Z�ڲ��E�7*H��Fy�b�����=41��\���	�T�3f(�8NY�ɲGNWfd�2"+�
Y���&YM��j:.��,�/��>R�+�ц��hkk����nт�ҖQ�|�k�9T�(�ƛ�m�,S/�M���y�2̣d3[�n������\�F)%f��ĬШ���W#�^��w�h�

����8��ӂ�%m�h���Y��
y>��̠NSi���kTF��.���+�_���l#�
0
3� ΰ�l
+(0.�D4D�wq�;hc��9�&٬i�&VLlk��XS�i�&=i��Zcܲ��U�t��
��
�=�����}����kPq�QE!�
��0ԩ��,��+7l�F��SNx����1W�UJ3nU��K)��rF�7�r+%�.^��nr���n-d
��<Ffx<Bj��B'e1R�i�
+�A�7�)��
�M٦$e�Ҕi���QJ�,Sj�K)���~T�r%�7+)�)%��Dv�i%X���_J����"uw�w��&|m
#�2,�
�E�f�J�
�J�Q`�U�9@��a�0�f�(՜����1YrX
+4�R��؉J����ڨ�2��6�f�#k�+��;���+��˳[6����~v#��R���Gy����84R�^s�+�6T)�`9�aJ�F+�jS�-Yv[���_���dK��5�^��%��o�9�IE'��Ȥ��eE%}��$7�è���l�
+l�`��|n�K-<&�Fehek��V
���h��
�x�Iq�X��&�(6)G��"�$WȜ�����T$������N�;_T�����;�p�e���Nrn{ =N@�`!cp\��1��;�Y�d���T�9��0��P��,�3^�N��R��R(S�XE�NVxZ���(4}���?!C�g�	.ʐq�w�>����߂Y?=N���#�_<&0��ҧz����s�+&�OQA���1#RV�g&),3]�Y�
+�*հ�I2d�Pp�<�(0�C9��?�(8/���<39����A�M��֪��l�Ti&�Sy?����;�pM�gq�$*��r�kPHn����Ȑ����P`~���˿�̖�qHA�>+��#�C
*�B�
ܼg������9���G0���s%\*��(��E��Y�X�'bt��T���P%�b���_q�����q�-��OI��,W����Wҍ�1	%���g���حN�ՠ�:iV�4��x�
���i�|��U<}��/!㤀�A�+
Р2�|ˌ�)�h`y�����r�\�r�Y�X
+0�嘵r�CƠ�S�W��.j�B�����豉��4��/Ɩd�%���ӛ B�M�������
+��0wE�=�\
�.�BD.���"��c
'1!Mdb���6��1�;��-s8��K�pG`O+y
�
ɇK*�����a�@ȡ3$�x��
�\�
�\�5\t5\@5� ��!`u+�-M�_M;��"88Lu�m6{�������&P��
�\�����	�U
����jb�ib�h�[6ҋ�P� ���@/�D��G=������l�����y�C�2�����D��-�\X�:���`
+���X������X� �
G}��
��3�5ã9
p�5��X�ᲈ�XĢ.$��ml|��|��<���[\
+nm ��5��ʡ]�ֱ@!H]/Y�
��@�
&����
+�Vx�ҏVx�£���%����R�Z��q.|�j&�UL�+q4+�ZO�X�9Hf�F$�|�6K[� � ��w+�(����݋�����
�
<�����
d۹x���vzю��(���8�r�96����5�]@�:r��;zgA���K2>A�������b{����婋�t��}
����A=
�=
�=��u�h�
�$߽���V3u�"o%9Kɓ���FbvI9V���� ���#�=� u̐�ǜ�c at E�?e�
b(�E���a.�^z��
��C�U�>_��Z�>�QA�\�%!��Կ_p���5��5AG���y�1�~	���[�/�	
g����?�>�q��&8Ǣ�%�Yzq����]��9@��"g �5�7��<Ǽ�=f�
/΀w�9�Q|P���5�X������r���*���
��.�S�
�8��y����P

 ��q����
��-��M\�׸��p@�E~��
_�).�:
x�~B�>�G����"Q���U�mp�����A0�ҷ���x̯5��c�=��U����
�K��+<.�$���;�?�1?R�>@��k?���e�������x�
+^�?
ni 5�3|�5��ezqA#�_L�
+�^.��{�8
�3��w𗿂���8�#=�C=��:�n$�2�
��y
�?t�,���Y��?8��Vr�����E�r�?�أ��8�
G��:�rX���D���^��]M���2m���~��A�馲.�=
��ݠ���&�救GZ���q�+��YȑL�LV���8��D�D��RK�������X�%�_�"6�c�v�v'���i�P�6Դ��
� l _����+u��:�~��G-rE�.9
�Ϣ�B��1į �D�W��c���
Ğ�2� ���Y�N���y:
�߰Z_j%yWx�=�19��v�-����{�E'{�Cf�$��I�l��q��1���	�B�jrԑ��d�kL����7���6�`0`n&&`CbH '@B(�HB���[Fi.�K���@�%Y�e	(m�fi�6AZ�N]5mӺ}��m�6MӦM۪}ؤj�ڥ�4�G.S�	=z�?��y�9�9��『�w
f��
�8�����$7e�l�{�W��('ߡܿ�$x�q���Ö����8���	��1Ua�#��f<ߦg��3�q ;�������cX5�#Df��=�
��	��M��S��w)��h5�����졅p�$v1�i�L.x
+8K)gY�B�D�i���m��`���
��$���]v��>N�K<��n���'���2LY�%u	)tY��='�e��*�����\v/�<e�'O��7sKZ�ꄧK�{�lY��s���[Ȩv2���o�V�R�Z��
�˥���_��^�mOa�
�h������4���
��rx�܎\���j��Kmq�j�֦�iE㏪9ႚ��!����Ր� �
�
x��ږ����Y>�q~J�����	�M5�+ɢmI�ښ�Q{r�ڒ˵9%�M)aES՜USj�6���1m�"��Z�~D�
��XR(�j
?R��/�1~
+b����:m�:r�"8��+GS ����I�ږ��V�QQ�U��6��`(V��B�Z�7֫޸Qu�6�Mݪ5�R�i��3)�yNU�
+��V��UX>T��3S �����KH������'�bCط��E��ȓ&K�"�L�3�Tg�U�\�Z�_5���ZjUm�(h���ک��_��Q�gͪ,��m�Ub{S�����g;>S�#�{Lo��
&����Yg����{���(�C$;I!�Qk�,��ek�ͭ*[�*m媰W��^�2G�J
[���SI����3�9O� Q��sWޜ��������w�
�6�	�%��3���3�Icu�KZ~vl�F9�{��IW�3S�N�ʜ.���*��8'�"WH>�涩 �G�y���v?�<�U�<w�������+���\ޘr=1��Ht
ދ̳�[�p �3��h�
]H�Vr��|
!�)�*v[�sg���E��T��Y+�7"�w����*PN������(�"{�m�|�+��[֏e��� ��u
�
̲'����4�Gx���:�q�j2�#�%	�f(��,O�]y���-,���T._P9�z9�Z�(�i�JƕUrT֒K��_����L�_�\�O��
�g���|\
�e��-�#����m�'J�֓#�Ħ��䗥)�oR��*��)��+{i�l�3�4,kY营�_��}2Ú�2V�*C�ʨ�%�G|G�U��9�8�1�x�Y����:؁�fT���[�s
�Z�O��;�$G� [�YY���<Y>��ʬ����Q�5�`�
�Q�)-����[J��&���R��Vj0������vƟ^�Dw��;�X҃][�K>	�'������d�MSf�I��,kr@�
��ʨ�Vz(��P�RB=J
+)1<����G�C��
F%��-Ÿ*.����E8O#��wr'E�Xw3�n�y~i��jl���q0:�R��ި���F��
�()R��H��#��k�����/�� -�� �	�+`ތ���Y���tdw�������S<o�/u�(@||��Eܬ�Ÿ)Y)Q��4�(�%J!�r��$n�b%�Q�
� �ME��PԂZiF56� �c�
�yx�&F�)F��~�o���]̞���/
be�
�K�LR|'
m�	dI
4�^Ť��� �:0���'��)�~�M��v�[;~h���^r�c�6;A>N�����0��u�R�;���Hfb��M	���~f�/��w�
��_�ዾ�K�����ax���
���
e����"�'q�
!�a$
�|�:�x
�qb�M���G�#���a���{i�{�s��p�� �m�x
�A��Y�2`��͐���ѐb:
�	�}�0q8�k�]��A�(�n��bL4�n"�L���vLa�vL"�&i0��b�K4A<&��?åC)�{������1���ǎJ���w��
ցJ���9�>������c
;�c�ܘ������ɋ9.�
�?7Fҳ���B���_H�������x|
+�:;_ ���U�:G ;0�������\|��H��v,b�b
��,R�(2
$�y
{��8G^��~��;��?��o��س�Ei㗩���W��H*�_��%p
p
��Ǎ' 67��%�X�,�e
+�2�X&��8�ҫ��>_{���Ŵn���a�"�r܄���*�_��a�
�|n]������M�>�g�V�c�B~�P�W��
+I��ʊt�����9c/g�g�TW6\�ۏ�_ݛ�¸� �o�o=^I/�G��!�R6��\�{t��
Ɵ�6�%inmzK����4I�IKK�EZ.��E���\�1AA�Ƞ� �
�� ás��)�`�e2�q2&��s��ӝ�Y�iO����s~�/��<�������Yz�,��G���G��>ۇ��;�h
+{mf�5�*c?����,k�
���s�
5�����1#�ꋚ�
�b԰��> ���_�8?�@}^�Gn�x7��u6v�̀��/b at 2�(CAw6�ڦ�q-gҿ����������u7�g���8�?R<7�{�{B�G�e�E�R?.�������j���K��?�w�v�T����=:�u�ч踂��8��9,�C�%t���z
gz��@�{�཮kz
_����>���/�߈�M��_�p�귪һ�ܷt���ɜGG�8���qy�qa��6��W�qR���6��K��'H��z��
��0�v�]_�p|ܟ>��ݛ�����,�:��:���)��t
G�s��c8��8�#����8��Z��ܬ}�d/
��_�R@��m
!B��� #�_�y
\�����b�3�e�'�"֯�M�z���G<����S�q�������?_;���Wh���
���
+9�1��
%c��يP9��`-�	���ђ�o�c-��^,p9�=�R	���B�N<��Q�?��[92���t��d�n=L<��A��ȑ�]�Xe����\�h��E������x8z��'��m�H�2�G>
e��k=:
B��t5��J�R���=pt±�n����ѽ(\��S�ݰt�*�O��.r�����?��b�̘�C"�f��'���Q��~��m���m���I�G<�4�����v������PAo��� �ɠ�y�#�y�����n��s�mE��o
+����
�8�����,��� OU�B$�����P���]����*��,�����Od�_ 2��\�G�{?v�����X�-��s^tS�sd�+�\x
+�)��c�:����h�������_�P��
+~����/k$?�f�O��yF��>Oq�m��r��Ѻ�
!.s�Sc��>;\��䱧"���p᪇���pMd�pt�v����Z��f��^��w at d G�\��ȝ�� ���
+�-a4��u�AL&c�jHָA��9�ʂ�͞���*
P}LHu�ª
4Z5�����9���_'����`�K�0\RE�-U$Fp�+mw�����_�ղ����q���lI��&&c�qjHNQ8��:C�j�U���`b��+4$�JUI�
+$5ȗ4V���H�%o����U�q���O��xB��wU`��BSDE� �O��ƮG�� �m%�
#P1i����(��bP�ɨ!F��t��9�4y4�T*��R�j�����ܤbs�
+�
*H�W��5r[�)��\�ʱ\��zD�
���$#F���#ϯ�w泥��8�!7#kȍߚ�
+�Y��J-*���R�BK�
+�U�X�)�:Jn[�rm3�/T�}����R�c�����xG�i�3-»�����[���1n�Ō�s����JnFS'���R����*�U`��cO�۞�<{�r
%r9|�I
);�AY�㕙>MNg�ҝ+���*{�^�2^�5�M�l���
�����k����H��=S�l-~�@�
�F�����y2���4+�iS�ө̌\P���
+93�*=+�4L�={�l�]��< K�7���#��L�_�O�̔ z��vx75R�x�eXՅ|���v���ꤖz
P#����6(�e�3Ǣ��49\��#��L��*Y��e�k���.�{�L��ddHO��*�sLI�s�#>��|�o��
�#���c�`�;�3	mc��HrSCn|Ĥ����*� Y�|���vY<���TO��>�
+ke,�K)EmJ.����+�x�
��U\�Q���y
|�;�r���Ȼ
���� ��chiCG3#�t��2���7���^���R�L%V�J�e,u)� %�
VRYH	�2��*�ۡX��x�K^n"/����˴����2K��-p�g�]9�� ]m��	�
�jF_-CF2�֓b�$&�@��>��*-J�L����x_�b}^
�SH~��gC�� ��c�c
�~�c�U���E���p>4��q*=�N�s�����aXF�h����11��+)���`�b�

A� M
�h�P���i`��0MA
C��?��V��j�)x6����{�Lz�Ӑ����أ�VB�V7�q7
�������$�K%l\xa�0�
���t���\x
��
��
Ǹ�cB�Huh�c�C��걓z�CO�N0yy@�0���"�d��F\��1��R
��
��k�RivHM
dM4p��ġӄ�&��4���5Go�L�Lk�.K�hh�h
�k�\��ni)![�
�9�<tѓh��24����2��<��ù����.�ˍ(���ϐ��D
QA��`�	1�X<�i�1QH̡�
3&��Ĥi�f�vjb�N�1I�4c:�Iu��-lgZ'�<.����y��}��{�C<Vrc`k*c��.�rɗ��rQL.����i&�ԣM�<H���"
�\�ٜK
|b��ӣpoA2Mk��:���
�f[|v1���TR�&Nۉ$_
.CXL.q�W3U1U��JtQI.*9<�ԣ�VT ]�`�
�0�c�0͗1�����#�Z�	��2��hB� �x���D�*x�X 9S=q,'��ı�8�I
M��\�r�j�G-�e3�Z�$�s	F�!�a�
���V�_s3u@�5�� �7S��wv�d���p�)��
�
�8�F#�[#g�]4r�8�
$���7�	aj�aT�0կ�����&(���/��\�$^
�����?h��A���F>�<�� �h#;�?�;: ��6�����
�+X���y�#�t��p��
��30hs�1
���;��� 9��tG7��&�4�nrх���U]Gy�,�A����U���Epܳ���:^J�<�a�<2h6� �ƺ	�����gG��I '�M/u�E�賏F�G.�Y�
'�ṿ�����;
�1p�a0�p����{�Lߐ	{%�W@�Ca�!W��қ��O
�
c
*��r1@��� �_R����qpf��
L�tL��R��l`���u����t�
^ o$6hV�Ӑq�
�-��8.sf�p��>�rF�qخR�+�_W.0Y��
āt0R��οgj��s�;���������pH���}�A��#�
G�G�s�"^�@�� ������a��G�>|��T�p
��!X��4�T
|�p��Ʋ~k��g8��8�K8���G����<����
N�]<�E��D4 ��(�y}��Y���Z��Y��;b�6�� �ԮO���}�<�
+��n�-���qS���M�8��z
{���S�x�8Nk{�M)�(�3H�4�z�~=���1p
�p;��T���_+�}Xኁ'	�,�?u��
+��q�@>z�S'�u��/��
>�z��:=E;�

�N*ңn�<�7��U�#��`�
:�.�
�_�OR���ܠԍp���/���h=�k�!G��!�^7���Y����J�g��z\��h�����Dt�*��bn���
6���^
��489x,�؋�h2� G���
��M>:p��6��N
�v4����#ԥY
��E�f��U��R��0��we ����
�m���X��u���8#�
��t��e����D��
�t��2�!�U�e�/�Z"\B.j��(f��mV�]����O{�

j���ȭ7��\���~��t�� �\�χc
�9��)���2x�Y�ŮC-�Z@�泳R\	�,F}������9�(�48ĵ��5��x��W�:E�iU
5YJϨ�.&�j�$�
+���n1
�Bx��S����(fYj�C(�����i>'{��og������G;k�}+�l$n9�C�5���r��xx��K<��s�G��Ή��x*�j�]�r���~"}�nwUL%o� Nq�
O�*c
}��e;W�&�YC��%/��
P8�f�fc_1�)
���	k.\�p��� ��ṕg�����t���SO�Y:����o'��`��Q:9 -x��w3Ӑ���Q�z��>;\�p%�'/\�p
�k4\5�h�r��#{#PN.
+
�i��dgqe�d�����Y������1 at 3��z�MaL$?���
r2�
�C�&�X5>ȡ1A.�%jTP�FgiD�
�a!w+'t��C��V���:��7)5�C)�O(��
�1|!O�w�D�t
�.���X�m�)��1���PAN��O!��ǁ紆*�dT^�U��r
.eGx�����
�G�RZ�y�S�b��dS�<��J07*�����
��/)�|Q1���{�Z|z��x���-��k~�k��撧��f2�KmF�•i1)�
�Ts���8%���dɐ�2\	����(�Z(��L��%rF5(��.��춗e�]_�[����}��vƭ�I�����m3��l�4
�Lb
���
�	R�� �͢�(��b�%�e�*֖�[����m�%��TvG�l���F��òD�(S������/��t�N��𳛱��A
���4�8�6S��42��dS�w��F�8�r:
��v��,�3��木������Hf��\���R��W��~���M>��d�{�����<
=�Z�Q1��]!��2�Y��Q�,j�LN\�r�,���r���Ni��
�9~�L�SeL��Ȅ*W*,q�B=�9� �
+N��UH�O]p�w�L��,�X�ߕ|VLl���)�f
9�#'��CN��PEyL�xl2{�2y�eLJUD�0��(<e�BSf+ĻPA^
�����2�z6����$�����;�݊%k��� K=+��
NǦ���
G,�h6��GN
١���f��u�u}����-��m
�r��
-h
��Q`
�r��*�1n� �"ʘ�TT��W 1��h���
���۹�-s�n1N��M�O̘ۗ����������{��sE���H\��Gʐ��i(�
��P��,;V�e��
Yb /9
o��
C?��p6YMw̕��8Gm�7�;b��k�R�'��џ~z�I�ѩ�Y�i���i�?Ҿ;R�)�KZ�f���̰ef�2ݧ�Qj(5O���Y6�l�[�_�s���A^��-�//}>�-U3�Ui0��v�|:ɮL��1v�
+ͥB+�t��r�)��D]᥊y��
+ݸ�~0)\�*��ָɽ�û{��Xfm�հ����2��V��|�ߵ�=rů�Ĕ�T��M�T�۩��jE�Z��
W��j�^v�q��q�*�B�˄ΆKZ�[µo�5�c[��_�U�`�8,���G�� ��bK�^2ٓ:��hh�5�i|1�/j�Z�V<ji�V k�P��V�bi�l��lZ��sBcCMk
���U;.���n��X�G���j>XA>��ך��_���,N�7Ѧ
_\���[=_�i�u�`�x��D�@�yy��_�2%ʹ��x�
>r��؏{�Թr��`j�f>��+�T�e$9
`c���U:�
I
~�%���
�ٱ�/袁/��h��
_��s�)q��q��l��������� K�3[�j��
����M��L_�>���7\;ֲc��4��Q�kTT�((k�x��[��w
+�ሕ������Kk4��U��@���{.�J�1P╢
4�
�ŗqE��` �Ǝ���U�n�\���ɼE���i�]l����'$��{.�y����ǵ��1�Ja}���
�
�!����Ϛ�:mfG3m4�I3]4�E35q^��
'��$�;��i츎[�u�
�r@
+1�T��<ȸѹm�	��a���-��߉MKvǀz���(j-|�BL�9���~���3�p.�Q3
xԭ�G�n�߶d���N�;�|ܛ�}��6��'Ѷ$��3'�qR�<%&�4�S|qJ~�DzR�>���ދ�x/�9���f �|�ʸ'y��j=	
k�âٱ
]��0���!,�
�ڣp~����ӳ�q�0rN�<����Q��ٗc�;�ޥ��`|��<�\�����^�\e>����P��F<?W��O�cq|��x�
����i�o��r�M��_�a�{�	�u|	��=��&R��K���忚��6�����W$�dv��}������*�1?��X߶��i�{�#_��\��Y��3Nmc}�
���6�>��|d������)�]��;��_��_����
/����9�Գ
+�3���%�Ol�OI�'	�<!=��1�9��G�c���&�}/��>�3d,��mB��=�E;��bW8{�;�
+�,g_���^��U��*Ilt�B��t���l��	�x��������(����
�$�/����g����� �:{��'�iv��6�l`�����
g��v�;�����8hûC��������Q��O�)�͠s�'���I�=�.�
\�x�������
����
��)����9��)#+����y�J
���9���ۉ�xs'5��ۆ�
T�x>)�3�tSI���/
WB�)t~���-�v���k��~��ƻ�Fv��NZ��������M���s�Ep]��z>�Dk;��d�����dI8�,y�b�
i�|
EN
���b��W�V��f{�c��r�Vրco��5�(������X�e1/����s�SG	j+�G��Y�v������ꎣ7�b
%8�pTȊ*J��3�L<s�,r��X��y<3�/.��:j�M���o&�
8c$|(K�UV���u�#�%n�4���xzȂ�8�(�eY��O�L��f�d�'g��t��*jm�L��c�*R����o��	�]�;
+7i����]��Ɩ�q�Q�,�.n��/WO<}�
�S���2�c;�:q��&yb"
'�D5}V�d%Վ�=c(�B�U�����r��բ�����Ξ
F�5��T���2g�{��̞���@�%��
W9�*\�p��5�'��"�-�e]w�H�e��
�ϡ5N��k�Z�>�JY�–�ٲ�_h9��
+uk�<���q쨔+c��v��0��
�j
�k*�z�/jW�PY2����@�8~�R���5�3~ަ�

n�0^i���5Ə%F�9F�|2�fƥe��ƙ�W���~�5����U��b�S� ��'��RYo9Z��Rm
U��N���uo���ֺ��{={V
1��I=�L3�N���9)1�k���%��ҩ �����Q�2$���(�"�t
�ӦGQ��(L_=�7E���(�8��#/�|$2ގD��#�U��y��l�u�j��6��EW�m���lq�b}'6�t2"�s
����D��D���E]zG�.�Q�uX��::zdVEAfm�g]yY�#��1r���H�d�����|���8���Z���
#���_��y�)N��RlF��0�)N�EQnf��΍��yQ��3��F^��H�F�����;9rr�"��������L�.�Ñ�8��#-�*|��ָ
ߍV�k�Z;'}�^k�\ʖ9[C����k�(�)��=;EaAz�%�p�Fn���IAq���2�������Id"���AB�(�7Q\� �!	b���)D1��Q5
mQ㫚�ؾ����UZ�E�
JI'���n���[��z�^k�{���9{����w)�ʢ�c
a��eZ�2��R�[Xh�	s��q�����$z}&f��D�
U�Y�������[S�F���8� 0�*�\�L8������V[F�8�k'OaU�OX�
�u��s3�qahuaq��u�1v��te�u9�2_�<��;�}G2
��KB��#�� �&`T�q�&��I%�Yw���4v�6���NX�9
+
7ga�V^h�a,��ӽ)C"��G��`C��������A��N
�yb*��c�4Z�̲IhW�G��V
�L�gMb�g�Xޅ8
|�DIQ��Nh<)O���z�D�D�F(��73��@t�i��iN�i6���3OLf�1�;��CuI�م�Q��|��{
b	_��?Z�j`&�ޱ.v?._�Ə
�������ς��(3��8��яWҗ�>Tz.��?�����.��7�i<�
�%�oD,!`R�8��\�)����`.� .�j�ȥHB�@H
�1�%�폎�@T��
Xb��/&f:���.c�K4�#1�wsb��=�8|��L��f�Җ���xxC��Cx�t������	�$2N��(��mt
�5&j0�T?�Cp�mG2�a���E�
h
�9K(�U/0q&{���@�Ak ���
X�
=������	=���Y�&zfͺ
�u��Э�>H�V��^iPfPwމ��Ћ������������������lxH9,4�ٲ�5���f`�
,�x�8�08�!�q�M٠)]I���
l���"�1 [...]
���>[3�F�5�b(
�A�b${��i�z��з9�&� l^}�p"F;b2!�{as�E���
+D&�x�#�8j$,by�b!p,d�L�Y���]ّ!1���C�H�l�p��
��������\q
 .�������U%N�LH��-R��dch���
+�^��@�D����3Hv�gx�q�|�D�p��*�жhc��H� u�}��6�
�7j�ʌ�
+?R�#�3I�3<�� �P��S�,�>����� ؞�E�q�����\��=�-�R'6���;��9IA���zɆٜI6�|XdA�,@��W��־+Y?��[�ړ�C
�iB�F-����(�ӊ	�-A[(�
�����o�q@ j�	��ȡ^s8�
j$,A�E$�h�~?�Xhڊ����>�ǁ�-��•a�0|�!�St�+�R)5�D�@*zm�ah�C�F��nl�V7q�m�͐p�n�y�Qњ+�{��O�#Ok	��R�>����5y�]��Nb��s�0
�;P�^84~��E���J�c�
�i<r�g.��	�8��`�r���E	Kkےv��
�h��]\˹{��������W��*U�ר�
��n��z�6j�4�Y��Z��l۾CTtL��q�]�&t�ѳwb������������
M
�6bT��1cǍ�0qR��)S��e��YΞ3o��E9��|���e��X�z�ڿ��|��M��l�b��]��|�����?p�Б��rO�<u曳ߞ��� [...]
H��̿ DH�I:�A���D�0$I
�%�Ab��b$XdH02%��1M��d.�,��|$1Y(�$*����V	�N��RB�Obsp�KtNKx��
�� tEBtCbt�
H�~�0=�/HNL�.��\�}�y�

+� �)��.doF�X�^�Kh4ff��``i%Q ���JفDiG��:��
�"$`(�,�B`
\z
�B`�%��,%*)6�kB�^�I��
J�6j�����L������,�x�r�EVˆ��X��k	8QH
+�$Y�&y�(��ꕫ$��uҽy���ܽ{����!y?z���ߟ����������UQEUTQEUTQEUTQ��!�`�y�
�����bQEU����o����n��b��}S�V\+����e�:<=�c�o���*����oW���gֈ	�����W���G&��;��D�›&
N8:<�͂[��ߝ9�qt���O�	����
*Ʈ�*��Gr��~���\�13��Ǧ̏�.�K?j�a��`[ᖰ��=7%��¶�
+st�P"M8<�[^�R�6��+;
�k�
��k
��ke�U	�	�lY�j�9e�Ks��b"<��.��RE�?��<wx����c�c�e�0e�;����Q���_�/��j�n+;���P��|V��lLu��`�]�:kfp]�
V��"���C�]�C�b
w�Ê
��Qr�[�+� ,|j�w:����e�Un�3c����+:|�a톣�<5aUE��"Wv�M�qФ���>���l�)���%d�t�U��[�PY����#��Wq���€rF�t�Gz]����(9dj_8�`���]���భ�K�J7H��K�ws����ؗ1TT�..�(r�ۮ�����ѵ}
�4f�>�z��{�ϟ�ࣵ�L�A�����ϻsƌzf�zkfL��(�ք���C�
~�h?�j�}�CJ��3��E�%�/c_TV��J�*�p��T�_���xE���y\���_�^H�ڨ;Wi����
Y�A�"�ҭ[���l�!�I�v��^يR�9�$�V�d2���nq�y>��=/�����<�y�;�s�����+N��w	$�
ӟ��mWy0����\�*c���<0gל�uN��@�B����!���
���+��
G[Y��u�?R�
|�^��rr���H��/�
坑�������,�~$���K�]�Kn�`����l����=�Z�5�[7�q|g�Unr���"~��F�8�ߛ-cY����
đ\ೖ-K1�Es��� �)�`[����<pb !zٔ�������z�{t��@�E^�~˷Je}yU����-�#iږy��k��p��?���0Z/����j���,�bh��}��F�u���D��R�����%�H���2 ��
����� �v &� � �e��u	�Y�N N"�{B��^��{~ݾ�V
���>�>��zy�H�����]P�F(볫�ܤ;�dq��F��V	�Lk-��z�PߔJ��K{�w�W�y~��P�'C8�d,ߴ.����
�
�:���J�@7
�d�z�qF�@���`
�V�"��
 6X��  �#����#�
��	Z������e�W Ŕ����ԃ��N~�a�~�qfu��#E".�l�йy.�?Xϊ�
��;��m�
HK�=�`(tu4�G!g��n� ��_��:�� ^!��B@�� zh�C�L Z8�l�$@��
+��+ <j�e 2<�QQSS}?�4i�ǀ����(;�jv�,����_X��?�j�_�Xr)z��XK=A��T�h����0�B~[�)��ܦ�����bU�q OՆ��
Fv�
�S�����@���g��6��_8��1 �>� 
@
�e ��!� O� �����Ax
�C�8���~ⷎNs]=�/��I���֣�3ѡ��M*{q6l�j�K~!}
9Y�����m!���!��_�
7�Hl�ް�(��Qp�p��j�`�0G��Xs,D� `+�� ��
�/x�G �F�
@� ҚSШ
+�s�=�t��##URuM�T��������?|�����zq+[:����s����M�n�ִ�������䂹3���3�o�\P��7.��B ��<�L
0
+� wz B��F�1��2
+�Ȇ�� �DG�r�
<�6� X��`3
+���83�|6
�~!�]{=i���5�$��>�*�OE�t�O������1����o��,N�4����GO\ٞ~��pc݌
)��G�R��0X�
��
QA�l�(f�4�� ��M<�Aoc0 n�`��� ��"��0E��>���)h�@<׹L
"]�N��JY���s����
r�,�'��%����hݹv
+��� ݆/�U�)�
��|���J��n��P��W��
+�x ������k��F�E�Q��`0|�=t�[�
1x}� 
f�p��c3��A&��� �ŽpJ�� �~
��7%�1
�����,۰�PRN�D�,^�H�U
0u�����f>���
��7웻ñ]zQ��ZV�����q��6
S�
��d` �0��XA#����G�V�J�[�(���9
+R�
��WvH� o�^0�x�3�
 bx
+p`+gQ��(^���1�����ױ���>���9��ږ�騬��*�^���x���#qb ,Y2aHwc�VM�O�b�/f=-��ȁ/}	��-�
��`=���瀾�}��k��)���
+���4���`"��
C �!�)�p3 : �m� �u�@�X oQ�v� �����n�gn3����
��w
:s��+
*�����q���BV-
������M$Nre�O{�} v� �R`��
�8�3J�yM�O�4�)X� �ZG�y��Q�j{�<E�T ��I���v\�5�Y �8�F�a
���j5
�X���+�~6���yB���UX�D����C����j��*+�j�߯
�X��9�q�x;�aV�,�;�`g�\��L�Z����[�� �6�
zx�GP��k0���
ܢ���@+8MA\��Z ��T�����g����P ⚖ (�U Ͼ?�4
�;���Ic@�����S�l|Q�gV�e����O��H\����GI���s���}-:�l޸�-�P���
4T/�數H���1e
�N1��@
+���^�Sp��|�v:Q � h	 Z��1
+��VKȘ� �1�>DM
{��_�Y
����̸�Ӻ�|)�we��Uef�ᨈ�����.A�]��]��dci��I~\w���<����
8�/�t��
�P���g�+ ��e
>*7E`S# �
��3\�G��HpχH �n
aKS[��K
5�u�k;�mɶc���V�ރ	iE�HD������_+�߾U\�'�9GVXJ¬���9M�<~̨���փ �I+���q���ij�L9%��A�
��0p��cF"((�`�77 Q����#�' q��� h[:�-H,�n#*Z_YXO�
+=�V�y�!�p������
�LY���zY*K;�x2��}{"w��7�e�r
��"Iw�:G�S
y�\�V[�<�6'R��չ
n%�:溬'5�m���Dtb�Z����L\�&$
+��ܾ��~v���ן{��}߻�����<%E��&�g������IN�
��DH�J��
"�NƄdD�]�	Q�!�c�@
+�d	*��>7
�8P�W%

 \� h�`3�^l:�9�3��
c<��xWo67��!����ʺ���[�ЈZ��I���4�z{z?c�vT�g���C	|ޮ���X�.�qDh\�1�y�X��C>�M|; ��egA��� ��:܂�8XJ�[7X�I�|0|�����N�7
�����w[{�Ekv��c�JȬ�����i%J-��Q�#�u��|FB���ѵ�<~�ԠV�T�w<k�F�K�};�#9a�X!���ЭѨP5w�8G��ĥ�eb��5�@�
+ݡP�
+�`(d�B�
G $��8������&��{j?��S���
�p䴥��W5z��N�K6�
�V��i�|Q�Ah
����4�ݪ��(����d*��i��sZdD(k}P` ͏��Gg��墂t���5R�LT�c��+ʻ�#��
!� �
1M��e�+����ƅ
��xoBj�0�ǻ�8���O�U��N�������☤�"ţ���>�|���_�JvV��{J,�͓ɯ)��l/`�
���R|Vx��fm�
��96���pL1c����3Y0��ߜ,��/���N��P�[@��Q�t�+eK�T�e�9ۏ-p�
+�
Ȯ|BpW����$�
��%IH�O޿y���:�~0?_(g��D��,�rE}K�
cШ+)�J_*=��I,�?!�
4�
l=Å�[�P�ծ�=�Ğ�	[������ �}g���
OZO$o�!xL��=�5�dbBC��)		�O�մ�>�R�I�r�\���r"#;�@V�2[��k������c��lz��i5a#*�X�m�?�;�6�2.�#�:ĉ֙Li���������_ �8L+
endstream
endobj
199 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
200 0 obj
<</BBox[220.259 599.937 343.985 561.376]/Group 207 0 R/Length 138/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ColorSpace<</CS0 192 0 R>>/ExtGState<</GS0 193 0 R>>/Font<</TT0 187 0 R>>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream
+BT
+/CS0 cs 0.75 0.68 0.67 0.902  scn
+/GS0 gs
+/TT0 1 Tf
+0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 37.9331 0 0 35.5889 220.2588 570.2734 Tm
+(pdal.io)Tj
+ET
+
endstream
endobj
207 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
188 0 obj
<</Intent 208 0 R/Name(Layer 1)/Type/OCG/Usage 209 0 R>>
endobj
208 0 obj
[/View/Design]
endobj
209 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 18.1)/Subtype/Artwork>>>>
endobj
186 0 obj
<</BaseFont/HKDDKC+MyriadPro-Regular/Encoding/WinAnsiEncoding/FirstChar 32/FontDescriptor 210 0 R/LastChar 121/Subtype/Type1/Type/Font/Widths[212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 834 0 0 0 0 0 0 0 0 0 0 0 471]>>
endobj
210 0 obj
<</Ascent 952/CapHeight 674/CharSet(/space/I/m/y)/Descent -250/Flags 32/FontBBox[-157 -250 1126 952]/FontFamily(Myriad Pro)/FontFile3 211 0 R/FontName/HKDDKC+MyriadPro-Regular/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 88/Type/FontDescriptor/XHeight 484>>
endobj
211 0 obj
<</Filter/FlateDecode/Length 623/Subtype/Type1C>>stream
+H�bd`ab`dd���vq�v���,�LL	(��
JM/�I,I���f�!��C�G���_�~��~?�������"B
L����;� ��g�(ZZ�H0i��`d`` &M
S�R�+�KRs�<��
+�KRS�
sr�F+����!R�,VH�,�H-RHJ�g���(�%���&e+�d��ix�R��S ����	�� ��R��mI�/�+)�L-��w
�,HU�PHIMc F-?�(V`��
�
�-~tt���f/#�T������g����}������>���
��
+��~q�Lb��f��
���/
+b����g�}o^P�Ӭ���#��?�D��=�i����ڂ�֗ʅ�<����{�C�;W�
~��6�wքr�gn�~H���`;���
~��>�ov�t�m�6m�+}im����e�od�n���;6��4O����������HY�fOi븄��6�=�7Y����{�"��~d��(g��#�yʏ
+����X�z[ڤ�:Zڛ���r3�+
+K�jK[:J,��6k�����=8������zlڿ7�g4�5�Iv�5���ذZ��&	���?*�כ>}���l�Ӧߘ�.� )������
�c���<�  ��
5
endstream
endobj
191 0 obj
<</LastModified(D:20160425074646-05'00')/Private 212 0 R>>
endobj
212 0 obj
<</AIMetaData 213 0 R/AIPrivateData1 214 0 R/AIPrivateData10 215 0 R/AIPrivateData11 216 0 R/AIPrivateData12 217 0 R/AIPrivateData13 218 0 R/AIPrivateData14 219 0 R/AIPrivateData15 220 0 R/AIPrivateData16 221 0 R/AIPrivateData17 222 0 R/AIPrivateData18 223 0 R/AIPrivateData19 224 0 R/AIPrivateData2 225 0 R/AIPrivateData3 226 0 R/AIPrivateData4 227 0 R/AIPrivateData5 228 0 R/AIPrivateData6 229 0 R/AIPrivateData7 230 0 R/AIPrivateData8 231 0 R/AIPrivateData9 232 0 R/ContainerVersion 11/Crea [...]
endobj
213 0 obj
<</Length 1104>>stream
+%!PS-Adobe-3.0 
%%Creator: Adobe Illustrator(R) 17.0
%%AI8_CreatorVersion: 18.1.1
%%For: (Howard Butler) ()
%%Title: (iheartpdal.ai)
%%CreationDate: 4/25/16 7:46 AM
%%Canvassize: 16383
%%BoundingBox: 18 -627 557 -154
%%HiResBoundingBox: 18.8456334022867 -626.397155761719 556.565490722656 -154.257751464844
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 13.0
%AI12_BuildNumber: 446
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%CMYKProcessColor: 1 1 1 1 ([Registration])
%AI3_Cropmarks: 0 -792 612 0
%AI3_TemplateBox: 306.5 -396.5 306.5 -396.5
%AI3_TileBox: 18 -752 594 -18
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 0
%AI9_ColorModel: 2
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -2.77501553760067 -148.132380360475 6.436 3239 1348 18 0 0 78 65 0 0 0 1 1 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:0 -792
%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments

endstream
endobj
214 0 obj
<</Length 8498>>stream
+%%BoundingBox: 18 -627 557 -154
%%HiResBoundingBox: 18.8456334022867 -626.397155761719 556.565490722656 -154.257751464844
%AI7_Thumbnail: 128 112 8
%%BeginData: 8312 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD0DFF7D52275252527DFD33FF7D522727275252A8FD3CFFA82752
%527D7DA8525227A8FD2FFFA8272853A8A8A87D7D2752A8FD39FF84277DA8
%FFA8A8A8FFA87EF87DFD2DFFA8F87DA8A8A8FFA8A8A8FF5227A8FD37FFA8
%F8FD0BA8F87DFD2CFFF87DFD0AA85227A8FD36FF2784A8FFA8FFA8FFA8FF
%A8FFA8A827FD2BFF527DA8FFA8FFA8FFA8FFA8FFA8AF287DFD35FF7D52FD
%0DA85252FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA827FD0EA827FD35FF527DA8A8FFA8
%A8A8FFA8A8A8FFA8A87D2752522852525228525252285252522852525228
%525252285252522852525228525252285252522852522752FFA8A8A8FFA8
%A8A8FFA8A8A8FFA8527DFD34FF27FD0FA87DA87DA87DA87DA87DA87DA87D
%A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D
%FD0FA8527DFD33FFA852A8FFA8FFA8FFA8FFA8FFA8FFA8AFA8FFA8AFA8CF
%A8AFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA87D52FD34FF27FD
%07A87DFD04A8AF9AB593C9A8BC8DBCA1A9FD19A8FFFD07A8FFFD04A87DFD
%0BA8527DFD34FF527DFFA8A8A8FFA852A8FFA8AFA0B0B0B08DBCB0B08DB5
%A8AFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA85227A8A8FF
%A8FFA85227FFA8AFA82727FFA8FFA8AFA8FFA8A8A852A8FD34FF5952FD06
%A827FD04A8BB8CB08DB08CB08DB08CCAFD12A852A8A8A87D7D26F8A8A87D
%7DA8FFF8F8FD04A85252A8A8767DFD05A87D27FD36FF27A8A8FFA8FFA852
%A8FFA8FF99FD04B0B5FD04B0A7FFA8FFA87D527D597D7DA87DA8A8FFA8A8
%F8F8F87D7D27F827F8A827F8F852A827F8FFA8FFA82727A827F8F852A8FF
%A8A827A8FD36FF7DF8FD05A828FD04A8C38CB08DB08CB08DB093FD05A852
%A852A8527D527D7DA8A8FF27F85227F827F87D272752F85252F8A82727A8
%A87DA8F82752F85252F87DA8A85927FD37FF527DA8FFA8A8A852A8A8A8FF
%A8C28DB0B0B08DB0B5CAA8FFA8A8A87DA87DA87DA85252FFA8AFA852F852
%F85252F8F8F8277DF82727F87D27F8A8F8F8A827F87DF827F827A8FFA8FF
%277DFD35FF7D52FD06A852FD04A8A9A8C28CB08DB093FD07A853A87DA859
%A8527DFD04A827F82727A8AF522727A8A87D2752277D274BA85227A82727
%A87D20277DAFA8A8A87E27FD35FF527DA8A8FFA8FFA8FFA8FFA8FFA8FFA9
%C9B0B09AFFA9FFA8FFA8FFA8FFA8FFA8FF7D7DA8FFA8FFA852F8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA852A8
%FD34FF27FD10A8C99AA9FD14A87D7DFD20A8527DFD34FF27A8FFA8A8A8FF
%A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8
%A8FFA8FFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF
%A8A8A8FFA8A8A87D53FD34FF27FD0FA82727272827272728272727282727
%27282727272827272728272727282727272827272728272727282727F87D
%FD0EA8527DFD34FF527DFFA8FFA8FFA8FFA8FFA8FFA8FF8427A8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA87D52FFA8FFA8FFA8FFA8FFA8FFA8FFA852A8FD34FF5252FD
%0DA87D52FD29FFA8277EFD0CA87E27FD36FF27A8A8FFA8A8A8FFA8A8A8FF
%A8A827A8FD2AFF5252A8A8A8FFA8A8A8FFA8A8A8FF277DFD36FF7D27FD0B
%A82752FD2CFFF87DFD0AA85252FD38FF7D27A8A8FFA8FFA8FFA8A82752FD
%2EFF277DA8FFA8FFA8FFA8A85227A8FD39FF7DF8527DA8A8A87D59F87DFD
%30FF282752A87DA87D592752A8FD3BFFAF52522752275252A8FD32FFA87D
%2752285252A9FD3FFFA8FFA8A8A8FD37FFA8FDFCFFFDFCFFFDFCFFFDFCFF
%FDFCFFFDCDFFA87E5227F827277DA8FD4BFFA87D2727215252A8FD23FF7D
%2727527DA87D7D27277DFD49FF5227277D7DA87D522052A8FD20FF7D2752
%FD07A8522752FD47FF27277DFD07A82727A8FD1EFF7D277DA8A8FFA8A8A8
%FFA8A87D2759FD45FF2727A8A8A8FFA8A8A8FFA8A85227A8FD1CFFA82752
%FD0BA87D27A8FD43FF7D277DFD0BA82752FD1CFF7D20FFA8FFA8FFA8FFA8
%FFA8FFA8FF5252FD43FF2753FFA8FFA8FFA8FFA8FFA8FFA8A827A8FD1BFF
%2753FD0DA87DF8FD42FFA8F8FD0EA85252FD1BFF277DA8A8FFA8A8A8FFA8
%A8A8FFA8A88427A8FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF
%FFA8FFFFFFA8FFFFFFA8FFFFFF5952A8A8A8FFA8A8A8FFA8A8A8FFA8A852
%52FD1BFFF8FD0FA8F8272727F8272727F8272727F8272727F8272727F827
%2727F8272727F8272727F8272727F8272727F8272727F8272727F8272727
%F8272727F8272727F8272727F8FD0427FD0EA87D27FD1BFF277DAFA8FFA8
%FFA8FFA8FFA8FFA8FFA8A87DA87DA87DA87DA87DA87DA87EA87DA87EA87D
%A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D
%A87DA87DA87DA87DA87DA87DA87DA87DA87DA8A8FFA8FFA8FFA8FFA8FFA8
%FFA8A85252FD1BFF277DFD19A8A7A0C9A8A8A1C3A1FD40A85252FD1BFF7D
%27FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8537DA8AFA8C3B0B08DC9
%A0B08DB0A1AFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8
%A8FFA8A8A8FFA8A8A8FFA8A8A8FF7D7DA8FFA8A8A8FFA8A8A8FFA8A8A8FF
%A8A8A8FFFD04A827A8FD1BFFA82752FD12A85352A8A8A78CB08DB08CB08D
%B08CB5FD13A8FFA8A8A8AFA87D27A8A8AFA8A8A85227FD04A85227A8A8FF
%FD12A82752FD1DFF7D277DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8527D
%A8AFA1FD0AB0CAA8FFA8A87DA87DA87EFD04A8FFA8FFA8A8767DA8FFA87D
%5252A8A87D7DA8FF5252A8FFA8FF7D7DA8A87D7DA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FF5227A8FD1EFFF827FD11A87D52A8A8A78CB08DB08CB08DB0
%8CB0A7A8A8A8527D527D527D527D59FD04A87D2727277D7D52275227A827
%272752A85227A8A8FFA85227A827272752A8AFFD0CA87D2752FD1EFF7D27
%7DFFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF527DA8FFA8BC8DB5B0B08DB5
%B0B099FFA8A8A87D84FD057D52FD04A8FF52277D522752277D52527D2752
%7D27A15252A87D7DAF4B527D277D7D27A8A8FFA8A8A8FFA8A8A8FFA8A8A8
%FF7D277DFD1CFFA8277DFD12A87D53A8A8AFA1B58CB08DB08CB093FD05A8
%52A87DA853A87D52FD05A8522752277D7D27272752A8FD04277D5227A827
%277D5227A827272752FD10A85227FD1CFF7D27FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8AFA8BCFD04B0BCFFA8FFA8FFA8FFA8FFA8
%FFA87DA8FFA8FFA8FF52527D7DA8FF7D7D7DFFA8A87D7D76A87D7DA8A17D
%FF7D7DA8A8527DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A820A8FD1BFF
%277DFD19A8A9A8C28DB09AAFFD0CA87DFD06A87627FD06A8FFA8A8A8FFA8
%FFA8FFA8A8A8FFA8AFA8A8A8FFA8AFFD11A85252FD1BFF277DFFA8A8A8FF
%A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8AFA8C3A1AFA8FFA8A8
%A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF
%A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8
%A8FF5252FD1BFFF884FD0EA8FD457DFD0EA87D27FD1BFF277DFFA8FFA8FF
%A8FFA8FFA8FFA8FFA82727522727274B2727274B2727274B2727274B2727
%274B2727274B2727274B2727274B2727274B2727274B2727274B2727274B
%2727274B2727274B2727274B272727522752A8FFA8FFA8FFA8FFA8FFA8FF
%A8FF5252FD1BFF2752FD0DA87DF8FD42FFA8F8FD0EA82753FD1BFF7D27A8
%A8FFA8A8A8FFA8A8A8FFA8A8277DFD43FF2753A8A8FFA8A8A8FFA8A8A8FF
%A8A8F8AFFD1BFFA82752FD0BA85227A8FD43FF7D277DFD0BA82152FD1DFF
%A82752FFA8FFA8FFA8FFA8FF7D277DFD45FF5227A8FFA8FFA8FFA8FFA8FF
%5227A8FD1EFF7D2727FD07A852277DFD47FF522752FD06A87DF827A8FD20
%FFA852F852527D525227277DFD49FF7D2720537D7D52522752A9FD23FFA8
%5252275252A8FD4CFFA87D5252275252A8FDFCFFFDFCFFFDFCFFFDFCFFFD
%FCFFFDFCFFFDFCFFFDB1FFA8AFA8A8A8FD79FFA87DA8A8FFA8A87DA8A8FD
%75FFA8A8FD08FFA8A8FD73FFA8A8FD0AFFA8A8FD72FFA8FD0CFFA8FD71FF
%7DFD0DFFA8A8FD6FFFA8A8FD0EFFA8FD6FFFA8A8FD0EFFA8FD6FFFA8FD0F
%FFA8FD6FFFA8A8FD0EFFA8FD6FFFA8A8FD0EFFA8FD70FF7DFD0DFFA8A8FD
%70FFA8A8FD0CFFA8A8FD70FFA8A8A8FD0BFF7DFD72FFA8A8FD0AFF7DFD73
%FFA8A8FD0AFFA8A8FD71FFA8A8FD0CFFA8A8FD70FF7DFD0DFFA8A8FD6FFF
%A8A8FD0EFFA8FD6FFFA8A8FD0EFFA8FD6FFFA8FD0FFFA8FD6FFFA8A8FD0E
%FFA8FD6FFFA8A8FD0EFFA8FD70FF7DFD0DFFA8A8FD70FFA8A8FD0CFFA8A8
%FD71FFA8A8FD0AFFA8A8FD73FFA8A8FD08FFA8A8FD75FFA87DA8A8FFA8FF
%7EA8A8FD78FFFD05A8FD85FFFF
%%EndData

endstream
endobj
215 0 obj
<</Length 65536>>stream
+��
ݕ�; �ό��}��b>{H��ð�Y-�d����zٔU���jXE��՘�m��e��/���㢲�
V�E
6�
���t��sшϽ��ޞ�ܜ�*
_�OZS��BR�{����lGC���Q��!d}9����	�n˾��А�qL����l���T?����K^W��w�M�ֆ�c6M��
:}�Ao��0A#�pEG+

rj��;jd�AX�/b�E''��x[�- �}�v�>�6$��l��k�z3�>�eg�Y쩋���]����}9�e���<��������͊�6��D��U{^&&h �M�a��X��,����q�{nti���i+�5���QBたN�ˠ��fx���_��R������7�`s���&]
�{��Z��e
��Ee
���_'y�}/������#m��}=
�w�,���V��q6e�I�Y3Q�C�%
>kEO-[42k
��W�d���?;�B���W���u��^�d�
+I��j^K-hHx�K4��7�c�A]�"R�����$�g
��`�Bfj��_�l���?���/�d������D��@oWԍ��x�8ޏ~�Ȋ>��~�ǴT�aC�g��޶�{>I}D at Z
��B�|�`�6�<�E�{5dDW~��m�Pek���U
2}�J,�v�k�]
��r92Z�����p����/����eMÛiE�#�@CĔ�U�&�^�U2�]��]k}��PU���s
+�n��J��2J��ٕW����gd�vA��p�ކ�+zB��qq�����IH	z�>����?hh�fd�I�b����l��,i�6.f��[w�
F@{���;ng�#`�(��Ҧ�!l�-��O�C�~1����'�^�||5
����lWc4�矏�.O���
+so�Pq�y%��,����g����u�g:+���Y��܄s�Ƨ?�־�y�t��-���⯰҈�?�a���F�N�a�=d�VTT����ݶ��nc
���nH;g!�^ԡ2�2��/O���t�2�J����'&V�cZ���ć��UF�n"��5�]�xE
KZ�զ�4�x����� V q�llj�Yn�8'�D�
���
6��
7' ��i�m��AuC̢�.zY�
�5�+�a¦P�jbε�~t���eԽ
m�z� +
_�W<�X�����8}���
܂�R�9Bkڴ��|ԏY�����>���r�6��
���0�$�',(1�
���];���G�߶��+FMP�A^5�
P�&{aou��*L��Y,fE�(߶��6��r��ۣB���JX���BFTΜ
�� ��21��;�`t잏K�p���vJ��Srg�y�B/�0#�y�mBe�2	52y| 
�a#�-cR����u4}V��!d���X�u���F��$���#A�Y�v_(���s��
+ZIM�VF㒎��b$�|[l�oyY��	.��T��G@��c���2�"��x�
9;t4�p�v�'�a���_ɮr�!O���;Vf��1a������C���~d�XK�Ù^~ɴ��v������%���o��^]�o~{�f�w�Ě
$f^
K�:�o9����c<����\��v�X�=����k����V���U�|A�I��y��\W�.H1��i�)�Hay�M��[���'���m��{ �ظ�'�QI�>X���<��ONuտ��T?���~X�&r�_.nٓ�6���nl�]
y�͏������]?/�z
Tս��.��
zu����	wk�]9��f���q�����k��%kP�W���N��_�|p!����㼺��YQw�C�
�jֱ����@�#�8���sVX�����)qN��V3n��ʣ\D输�\&�Zp���LԘ?'�*�W��e2l�)ES���.vR\�(���.bI�oag\�{�󂌒5ڎ��v�RV!�fF�u#9�Ϲ������i;vHڬ�`��
'�b��̘*����'pu�'IЯ����
��
0��E5,c�F��k|�y)�΂
TB"��ؤU���bW��M�FaQͬ]P�r�՘$@�&�
�>�p��#<�
��
N�2L/��e�Ӳ���o: �g�w��
ACS̆�ܼ��q��8�G� ���
as�j_����
+
տ_5��g��� ����Es����T�Y��
آi$fEI\7�`Dg�yH
�,�$�~
����R���_����l�W?�������h���P��c�'8����I&���n�N,^���� ��EF�5�vGp%6	!�-�E�+ȹ�n��yY������W�㝍�g�ܲ	)�d����������Mo�
��U+,%0X��'��?�em>�jg�6
,؎�E<�h��2)V
�[����Fx�R���g�h0�n��nX��Ɣ�vF���>z�X;�
+�u�#j�0s��ܭ�����b���A?
=��
	��BOk�;��.cS״��M#�l
`��>b�x.��~�k�F�ژ�ѣ:4I�����7*\�

�����#碞�sN�7W��K�Ijr�enѧ㔌�ǰ�o�aߜ�%�?�/J:ߏ����I<�-�9�"e\c��M���]O�=%C���Ħ\u����nis
"��Ͻ����9�_}
���h~@ӻ���K6z�%�(0H*�Kzy��U��y��x �Ω��nn���wg%u/~
�Ğ�$�P��U�=�CK�z�5��	)���Hܖ�꓎}K\�������:�Q����U���/
2���Ib�U�i��9	7���kӊ�O����rd
aj�
3%��R?<i׊-	��s@���
+
.4go�8D����"� �����Um�
�ø�)	(n�x��t���40 ʙ���8��c��|t4���;�l���
+���.k�iRD���&nY����N��4P�t�|�_���|x(~IS���G�Q%�=�w�
�/����M3�|����s��]����)�6\��q����O�)�w�#�1��}�dӿL�X��x��Y��l9��Lq��3�m�� V�����v�=���/Ț�.�����}
+jΒ�Z�;"d��صA5>-�S}��Y|-�U|}Y���UR2<��w3����V
jj ��#ȹ�kͻ�d_^��S�
Ԧ
�����Q	^*v��֥}`�M���|����x��
�VD��Wz{UK+�S�&{��ݜʛ
=�o�d��پ��nAޕE�t�"f|V�aj��wݚ�ʿ���
߲��G��� ���L��+CF\֬
�~��rqwt�j����{��%�l��%n;�5#�n�Ȭ
�Y�(q�NdĴ�V�Q3
|�#
�鎎 �@�Mua�Ũ(����l��FU\�j�()����oO��
�[@�IZ��M<؜IL��bc;��Z���G=�f������ӊ��Ơ�fRռ��吶�
A%WV���Msc̼�잧%�
{��1�
+���dW]�� ��)7��7��
k��teC
K�hɻ��&_2"_����;�	�t��n|0&a$�%�>�*���cC��a0�ʊ�my�m��?Z�
w�JÝ=�Xp�󳴜�?�T�7��I�
�>
 ���?9)�}rlJ\�\�*~����)=%�ݞ�ݶp�
rh���~���gz��cZB�����פ��͜����z��	��M�H�nDѪ�6�U�`��~vV��D������3rP��cP^� ��x�8P���)A��SvN���Q|&/�
*��9wKm�w/��c�/����<ؖY�a����%*��
�G��z�zy�B$|��|����U��C잯>X��`�
����d���lI
M]TB�CZDʶ
[t�B����W��1kVVS�Ĭ���?�[�͛V@#�������5����g�;�_��
�����TO]���Z��C�ѐ��
ꮇ��7�J'��E���d�l�Ԉ@A[�p�)dn�;Ft���P�eGd�X1�;v
f�����j���������X����9��\j����(Qq;r�_��OC}��;>JsЈ�k�x�@��
+_�պ�ݴr�Nb���y�ov]t�:�Qg���m��:����4����h��K\��
�׏
 �F%���j�,i=���<Dʚ����t��)�w9*�ʤ���@\{�[Ŭ�\<�$�-�EA;4c`�.��c
��	~��(	�bCe��)hf7�;h
{^jFOȞ7S˖-�=�Q�l�2�+fZ-���5��e=�pV�Kq�����
wM��G�L�W\�POJ�bc���M����̼�>^����=�"g
�i�osɈ͚� S�����~����8�x��
&z߬
6F}'B�z�
LvVޞ�7�Րr�*��:���j���AJ�h�~\�O��?��j|>��
5'çNJq)�VJ͖��8�F��1�ߦ���3�;D�����4��
��aR�W�)@_��
��03ⲿg:�o�Yi��̋���pG��e
�x�(Bv"s�7��rT�!`w��u
�`ł+���Sw����
%4���Ly��[6"��,q:�;C��w
Y��xG����Ǟ~ln��''k�]�
%��X�����+��x{�U
&�̾��^�ӧu���
td�¨;��+r!��Gzj�Z|�ʩx
�KƇ��}��f^��='
v��nY�]5`2����%����ho
�$�)S�-���C*񬾗��%���\Z�,4T�j}�4�cV�+�7��o�^@~��:#-z�7��r11sFV}`�R����6�8�5�bՉ+Z��2����FXҞ
U��@��
�����A�K>��V�a�Uo����
�b����1��W�Z�#�Y�/3<ї�����=�v�B,X�s�4��e
4ދ|7+�d�t"�$��%,��.}<��}m�^��~�a��k�����;�
���i������g�e�'�S�����d�txd�B�{�gҷG)�C?�-@�
�p5vt����gœ�>�E%oXQY3�7~94*h"���x��B
��^=���f���%#�lb6,
ӪW�4�
+�6�a�xy��>�־��s��'��|ڜ�Z2�rC:x�
����ܭ�c"HĚ��^fT�ʈ)�r��!mLFN�
���D�)
��فz�0�N]0HXA#`!ZՌ
+�4��e
�ɾ�C����ХnR��Y�u;�z�Ǧ��
�o�S6k���;��
'�d�_��RȀ-Y5b�7
����P�0���+Ii
h�%��[���-���G�}�=kc--�C�8�F���cF$u�gTh菣�Y��-�67�l�P�kfB��`+xBօb�?�۠�Ls{6�
7��znee��b��j1)����b'h�ĨY4���F!2�3��cV��2���H���#��yc���Y-�=�/�����U#��1
��-�+>o��N�K���
��}��[�m��,˱Y�fr��<��戱%W������	yA=)�/�~4Ғri���᪅\�h�
���Qo��B��L����`ÃZ՚�
҃��DƊ��4:D�b�3�b�"Nl�
[V>f��l�tӚW�Т�Ѱ`a�֝B����e�����z��s�Im�s�a��,춋	[2r&����C���a.��z�n�~<�U�`���ڈ�0,}�I���7'z{�	{c
캍T��{5!ͺ8V���DCꮏ���{筒6��U
��~�n��iQ
��-,{�ٔ��D�{���.Rդ�<�Gg
�H�=7�d�A(�����`+VM��@?,r�Nk�	�z��<F���l{E��	�� ~oٰG�Jr�6j͢�߼���)��
=U�+#d��Xw��!
�r�N��D����G�L�t�
+��U�jZ^6������9K{��)��s�m���A��
h[4s��~�
��u
���2'[z��<�����6�n�/^s��[>6yu����3�Kn&z�Ǧ�8Y�aF��q9*o�) /�H� 7�XI��&b��������w
�yEm�vF㶯M�7)����+NR�w���''&N
�\u����mU��|�iU~���}����Y �B�_�+
�*�BئS��mJ�	P��X$v\�
1�B��x�5���;�ڽ=*u�Z�Z�F>d�"�Lk8U��3w'�M@�K�XM˦v���G���Q6=��5;��h^�]��ҋ�|�
+�����U�Drv+��
��2��J�R
j�팔Y)�h�. LkiEZQ�#k'�ݤ�Z�hb�=�ȉ|¬X3���O����\
��=5�M
"~���_u��C#"����`��&��U�qT�O
n�����)���c�/��{^:b��!/�p�k
&���`�߶�a¶G[;�G���
�'
E���������YU�i@[-��8��Z0H)�0'x�����%
,f����^� �o�
��m >/�h�3����>:{�m��:��
+�
\̂Y ������-�%=3f!z�&$�l\ʁ�A��bn����0&m�Jm9��U
�pa�)�~	�����yw���7� GZk�׫
!{}�K���QW�
貼���2�%�x-
������T|_N:�0Lm���V����,�9�e���\���x`�
�*
�|����Ϙ���V�_�
+�
B�*�0`


���~},�����<���v3��^g��%l��h�����i�`c\в9ݪܚk��̉���MC�[(��!R�H�d�Sx��
���؞��7�Y�3�v�CǬx�؅jM�Àox�㊦�IUC��`o
�f������ߗZMG��\4h��BnOH�3zf���
�
��(��;�kٟl
�o�.:��9
!�I�_
��� �������	�峿�q0ѩ]0q��
+j�Ԑ���/(�J�z:0Y{
k��®��
G5�k �lX�뮎v��Uƀ�\���zb�H�
LJ�;>�p�!�t�"���㖰S�*aTx��.����A���{�Gy�
 ��^4��T�j�����CIq��=[F�/����f���O����
�O��k�9˦ܬA™���g�ܦQ)"~f��0���&�Z��_�q��d-
v�6�%̐�O�`�dN�P�K�����DО��: ����wd��j^"�.jh��#��]7�~�I�
Z �5w��/��h9)��V{g�L�_a��]
ܺ�	
���!R�8��[��?�����"�G�%+N&r��ֺ0�B�vpR
�mY
u;d��%^s��+f�/�E�Z�
��p�[n6iAK���k�L�6�>�H�'[z6�\jh��Z��A3�p~��z�s�'h���$��9S'wlp�>���
�:���>k����ͭ�LVe饀V@��U@�ߝm7�ζ��8t�fK��ʍ1}/@AlO���bΤ��ka�_����M�����*ekw�R(I���/&��%�N����spg��' �
z谍	&n; V�LI\�
�έ ��`�g��A�4ib�;��)�>j�_�O[|8�a��
,��0�5.��Mwٶ��
+�6Y�#̚ŋv&2�m���z��g6iՅ/�E�Nа��b��_b��r�
���v��_ع3��-�h��C��9�~{�F:\du�zĵQ{g�E�;.lݙ$6���W�ث�E8�58s��l�e�(���~؜JF�r��-�W�NA��azpH�V�l�-���;��r8ޡۙ�V�|�WCϳ+�96�
��UCdBI|
{�¤懴�-;Nq릋��7����*��/[��M����D�lI�O���כ�nن�W���Ӎk�0��f�
H}ZU�^2�0�*͵�Уj��=h
0J�,OS)c+2�����2ģ�r�k5�?�(RW9;{���w?���i��hVȶ�M斷W�:��#��ZWwkޜ�Y1��$/�H�Ng�k�F
7�2>��ħ�^F�QI�R����-�9
���m���F��P#Ȣ�)^��
-�:ZG����\F��rH��f̝�uw[{��{e�\���:���ֵ�`�'��t?&{v�X��r�#⼙�ֵ�GU��i=�j��G.Y����Ϛ
f����F��j�Xz:K��
�����,�0M�z�p���I��$�������Z���,��E�a�
�u/�h���	_r����t���!�̣����{�d�B�"�A�>�5I.���U���+Q�T�����
��
jv�R�3%�:�}�?%�m�Y̕Q.q����w��N}7� �4�T�d��S7s�,ms�z��~�.U	�.�W#@�
�r� &ueDH�
��mL���tZ�'��{aח9~�����U��?A���p`w��Y��2�]��So����0����V�GM/��w,���lZO(��;�|=���V񴃏�
��
��t�+�#����6��#}:@T%��y=
m
)�
.�ܢ���t�U�]�lsG[�؀�`AߊZ�������>�aPڬ��d�I��k
§�_�h���ToiS�;��EN�T�:\�ϴ�qH����鈫�r�_�2�o
+Z{ʚ�opk�s`��Fs�9�VY/x�W�I
��^7F�
N�4oZ��.�d��mͤ�_W�/W�/}JB�z��X����Yok~���"U\G�H�2
+w�P%[^\儁Y=�ޗ����wQ#�Y�Q��V�ٝ�wAg�rɸA�e��oPp�?ȉm�EͨG��_(XŒl��HZ7�:�Sm�ƠQ5uQkfx��x�l֥
�
�����P���d�&���\8e�yU����Z]�9����ѕ����g��f����5�`,
ъǥ��i%�T	F���uR�ۚ���FK�
+:�K��|�
��	
�|�'IR�B}
/��* �.�@�NOj�P���R�y"���;{��9���_�m�A���a2'�E0�^F�p
K9���Іrc4o�k��U����b���K����ذ�?�,)���63��0qVyh�$�����+#<Ƃ�P1m�U��r�V�����J%�,I��B��Ƴ�l|G2
B�X[������"�8/
r�,��
+
\�����䷖�
��C��k]�U�Kv'�-_���
��L�q3�mY�v+g\]"�]٥U
��]��^N�ǡ
e�Ѐ+u��Dm	���LS?3}��B��K���b���Uh��;�J�S6���1d��&�D~��{>/
{*1�kn&�l^�����`a���
���tq&�
ͽ��hϜ�taf�bdتS
�JIJQC��O���)(��1�Yw� ��%���1MW�k�7�J:.����+��~^
v�NNXb�g�r��m�~ ��8�$��i\�s��|�z��왩D��"��5��+م�����QV��-���d�;ر��愅��
{��v�Iuدg�����?]Z�?����ҶKRg�켓G0+Z��
��#�ʹE)#/��L{1E(���P���{y8��(̣�r�F��7���#�~+���%�QÍ
��8�do��,̖�K
r�&,F��W��vI}�����{��*��
��|�%�@r�W3OU�`~���]�H��~�0����»=YV/�qOA(��@��:ՏH��L����ύ�K&ʰtϫꆁ� �]u2��a�B����ϟ���+��S�{�ɋ�KWS®��
+{O=v�Q]��(�	
����6v�{:{�m\�K'�
�ܭ
}s�p&��ފI �z���d|
既2ř�|���?Q��Z�6�p,2�}���ڰ�Ḱ�r�&�u^�L!�i;��Ɣ�l���fWJ��
��>WJN$4�,w
+�.W���ցM�	?=}Rt���谇���^F@���Qv��ݰ�wS�U7��|Je����귴t�߲�����c?�ҷ���&u�F�V�m�Z�C�ў>���%[��SH��>
+=�@v�B��Ϫ���E��:��A�#%����ļ��vE�"��;X�a����g�a��sq����ă�Z�o�������5��|Q��_o�
>����=x	�r7;,5y�AT<Wt
��;�
��l�JI�+�DA���$
+�Ù��M���H�Ť�֟�~���%���e	~z�H
�^�'�^���={�{
�;��-��*��vC�].�͙�8�i����V������]��r���"�珼�o���Oc(a�o���yT��8��=)��Maw��a�)�cI��O��O��g���*J�f읭�6�e�a	��/
�[:�����Y:p:"�q">���Ԝ��V�=
:�)��sl���72�~��m���J�
F����Qv�����s֤�ϙ%��6�fp �9��P5U�S��\�C��hD�ݬi4��+�����9���q"����k�aO«��?�
+�x=���(�q����ByhoAD�Xm�(��k���������|�R.��$��{��t��
�Oo�Q?]���e��'�o���k���%W�Of�9~���Q�]��u|yL�Z�����:e{�
�ھR�LG@	�{u`����γ/߁O\�Wv�ֳ��{�
a�^ԇ���?�"�y"*[z"��tJ
�k��w� V��;>$��31��rB�\H��+^�[|��b6�|�[��=.�}����c�"	a��4��}\�:lXx�0�v������
O�S��Q����^�P"T��۹�E#*u�@-r*�kz�ʴֶ�2�x�M
o��T#'���m�R�;~z�
+�<��Gұs���~?��X|&����ٲ<�m��;g�d��R�0�}`��
��Es)p�xx%l�JB���T�Ɉ$��
�
;�ǫ�;/� {��.����v�u
�
q�"�O
R2�T�L� +W�T6��� �Vg2��~Ek�UBm7�2�@.
��<;,�@p*�L�kL�����d���:�
"N�T��y7������A+�z��G
�F���"��gtʬ`V�x!�f~��X^@�#�rjU^'�}����I�	Y����?
$׋�k`�������
��K�Р]D]�4�{�c
�6Xo���Sb ����ȑ؀��)���7��SϢ�ǞF@ {�9v�aA���׉찫��.9�E�0,��q�d�Of�s
*[ˢ��u\��w�!�<Zv�J�G
{=���t�Fq=m�ye��By�����o�]�S��%$�ƃ��Kg�E�G
K��((��ߍ�u���KVj��
��(����`&G��>[H�X͇�gc*��'���k5M�W at h���+#��#ba [...]
�fm���2og5l�s�S-�����]ء�SYo���"SdO),�K8A���a�AfE띴b�ݬ�m�fZ?"��H�H�UK���^�G+����9�:Jޜ������G���va��[^��?\�
F♊�0��uNmߍ茶��GQ~����ث8�����?����a<7�(c�
+P��������1�ˬ�Li�YӃu�Bl�����7uд��.��*��֒Ecq0�|T-v�v�v)�Rv�ދ�cgΧ��}�����#S!�1�q��K�V�e'��-8�N�e��U�Zl�T_��e/ይ
�)K
z
�
>���o%r~������ϿU�}�ahҭŧ1ȗ
�~@�����X���ze��Q
�R�Q`$]�YT�
ʼ��)Έ�F�ʹ�Ƴph�U^y�T���5�|�`��KWk�)_�P��<ĺ�Q\ņ
���å-��.)6�"�u�
��
+9 �I�5%]��bW�%�=�������GX��@(�wK>v��')%C5���`�l:E�A��Y��	K_�Ӡ�7��!� ���5���~�&��֡��R�:/|La�H)h��m<�dd2���|��OE-��Z��nT���==>܈��:��7]4hІ-
Z	�[>6er�����uuu��*&q̮�2,�
	�9�����Q��s�ng
�~'?�M4�؇dԙ�r��0����}o��ə�]�D*]�1��"�W'�TJho��u]���N���k�T+�j�[��a�P�Õ&(�5��w��
��Rޣ
,T��*��^��ҁٛ`�����.�۾�q��Zj�U�O��-z��64�S���L�w������K�5R��;0T-��z�����[����k���<{ɬ��L�S�N�
(���n�!
�J�@��-nB�$�B������{��㽳>��u��!���<$r���<�U�"�-ޜ}G�V����
+�n|��
f74��L-����Z��{�T;�O ������kPX�{/N�2F�!k�e��$
�/�ѦH`������M=�]#S�3�ls�cム��SbR
Z*ҷ�6�[���>N�����ɡ���1Hg���}p
��a��1 ��Wv\K,���
��s��v
�ɪ�
��8-}��8L�ys{g�^<7�,6O5��]5��6�f��R+�A�F���߷F���d
u�K������e��@he���:َ�;����:\����qF���U��668uu�Im�n��D��Kw����c�z3�]-I�c-%��n�v�~U1м�{��մ2�w,�|s㡹I���/���3���Z%��U!3mm�b��'&j
V��N�^�T>с�3ڂ�1�A|03Ԗ���E�����-Yg�S=<��5�
�k
+�J��]	6zMD�[��a��t[; Z�����E�q~�b��t��@Q�XZk��5�>z�S+���
1X�k>D7����
H����$}�ԏ��U-�;Vš����b�D0���d���?V�Tܝ�%�)F�ȣ���.�V�����F<�q 
#_��0�d΍ֶ搱�a�bT�Z
p����n
�ҭf���u5��7jA�o�������9qcU;�
I�eNR��^��]�iBi'��~f���93�O2H[�[�w�63�]k�8�z��Q�?����i�C3���*֧�y���N���eu�������4�o��Z�}c�]�CX����Yv麢�����_׶�ls

���ڔ����
�UI.�L��n�"^�
l��F���֮cC7�*���%A��XUK��T��Qc��H�j���T}�z�
�5�T��Uu#fc��4��
m�����J���X��ow�6z�����-U
N5�X��-X ��$��+��0��n�X$��׎�J"�(Q!j)7�0�l�ͭ����-!,r�5��\Oi܆�J�/�>���d�l!�Ns+6��oL�%w��
��+�$�x�Xm���%��q8�9t2�g:Ĉ��Q����&�'��P�6D��Iv���^D��9&��gx��\���02Qv

�9[�ӵs�|�:��%V96n_IL�>
��o� �$�,�l]���r��%�,�N%�dm��<H�\�&�j��E̢�ij��T1+�3�m|�e
+��	���6tm��*��o�դ�T�@�
��
=02 n%�kZ�7ԒlJ>�"�VFi��#Ԓ�	R�B?2d�e
�'.Iۉs�N�iD��:�ɶ+����
�5e��z�=�{�#'�
M��Km}������)
&�2����~cS��A`Wր�g�e��
,��C�v�
X�Iz�)��;f�v9
�#��y4�OG-��j1��
�@�s��S�SW���ix��"��g��JN�� <d��*�`�'�-�j�R�o&Hi�#�X��

+�w�

��
&�*��.r�g�\�K�I3v���
�0�B��H�_���J-sI�.\r
O6�
٥���ުG��ZA��^�S�,���XK�H`Es���i\Ѿ���?_,������z��?����ꚿ�ԷL4��2�w�٥9Zj�ܝ��Y�̽��Ypkk����
s��<�^��V9�?m�cg�
��rl��xI��Hέ-!���<
|��D^�7����d�2����/�O�׻����A�BOł��H�K"Fў�sȢ���T7�-����>�o��
/��GF&�@M.?6R+Nwەۃ�\"j���
��ӌ�
1��1Y��Rs,c���qB��굜�w�'mĻu�=5{�
鑐s5��mM��$\ݒq�����Ե��.4ԝ͑���-C�W��+���T������6
�;���}B^5�ܯ%�ئ+B�G˞�{�=����ȩG&v����ؕ�rL��("t��dg
�ƥ�-"^�:A7-"R��0*�!&%ۅ�����_7�������<�2II��O�~g��V�0��t��&m{����T�
1ek�\)Ƚ8BJ��%��-�
\�C�K	�� ���㖒�}jf��pu�t]ν�
��X��$,�@�J�͂�풼�Ӆ�_G+	�8����Q7����[S�d�t�k���]���L�ԭi|�u��SӪ���7��;
��w<2x�w��@M)���M��g(Yn
n����¸��}1>�?�M�j� [...]
+ya�љŦ~��[�bD��46v������]�" �C=f�o�Q�>�|�9yh�>��c^�N�2��ϗ?�_��
�s��z`�k
mx�|�ؐ��»�k��,�����1o�c�'�Ѳ��T�*�;��Y��X� �	��Pǂ
��(�4lk0���H��}1$ܣ���k���Y\�]�
+��p
�C�D�حa�s@/�2���Z�*���_u���#&槽Q\�k�؜�����!��ir���͹��M�?mN!b�=��AL���

���ݑ�'���;���K���:Jn����
!6�|f��:�3CH��#_;�P�Vau�dm��>L�w[C���s���x�c᣹��++c��U�c=1�PC.�)���.u=���'~��Q��,��Ȅ�gF���v��)�
�<[�<�	���Uy��g�%���Ѫ����[UO�~)�ϱP�����#��##
q6W����dy���
8�&,y���;��{
�I��������{l�Oςy5Ԋ������;+��7���o�.��V1,job�TE
����ZJ��9�56�PO���w�09���f��^�/����`��I�K��:���A
h�����5!X���1T�O�K��+zi����*隂D
����}e��
|N@��
	�^
2�.Gl��Cܳ����R��S�-��W�Kd�{��:�W�B�L �.(���b|�ں� [...]
+�"p��X�
�
�3����̐�R�jrՁ�
+
+h�%�
�qP�S
+
��οb�(�}s�:�)b�&�I�}�g�iv��$9�>	��8���&r�#쑶���� .�H��YG0o}
+R�_]��/�g�kpy�:h���#�Ǭ
��
kX�%�xo
����zA�O�WS��;
��c�k��a#̜��fi��s���yRQ@��ߛ,�ґ��Jk�/;ø��!Z�R7�ᾐ�3�~�+D%�M���ƫ�V{@���*_:�����׽�7A$���f~_p�:\��;�K����{C���N�9�B|������mI��IL
�W��������U at G�h��2���9Y�#���������2~P���D��2P��#'��Nݛ��Y��\�4
��Ë��?�\�ɾ��3]
+F�z?1k����r-���ƻ5Չ{b�oGs�n�X�*��.�Cm
��?��.�e�xdhL� c��h��[Ce��-�?�"#�JV�e�!"t{�lk��CX���D<�re�z����MJ�?4q0^-�|k��>�w���5Q��?��>]����9�?�F^���,�֊Zl��h���ެ�ɒg'&\��
�P�{@CF��V[��
+��+�&�' |�ug
���v)*��"�b��+��m*�k�C�4O�؅��:f�%)!�{
/����
�|'��� (�|�A��Y+�)j�45.�K:ӯn�=Y��&ng���V�	>]S��|m��W9��&�!E���7��^�k�i 0��a�Y}h�U
-�*|zb�_K(<7�A'b��Pɳ���[�F)83���,�|����ޛç!�U�
������l��
�IeԸYG�YK�!
m�7
���
+ʯ�������R��01F�P��Z/�m��)¾�.��О��|k���#�^9.�T�G{�̢�!�
�������E��NQ�c�

�3
+z����i���7��	Z���
�����C]RT����v/���0>f��{�
��F/2�-e:Ŕ��d��>碼&�۝��;+���V�ud���W�(�4�.w�ᑋ홗4
qf���M���%��SS#�)�d���L��
rO��N��8*r���$5�����K���[E�Ѻ挟���o�δ
��S/���=�V�����Y�=�ut9D


�pcsu��Xԉ�}�D�Y�@/�=���p�?~�����b�8�c53#x}y�������+^Y�*)��w�f�r_
��`��:z���=9��7�����c�i
�B.X�E�o|��
~��ݏ�؜=a�Õ��˪�7ߏ_���.�W���-�]յB���xGjF�G
��M�<E}��������vqG��(�馶��GjՑ	��׻ �ۅ�niE�|G�3�_[S�)��Y����&�������"<Jt��܏O���0쿀^�r+���%�@��}v����߸|�
�m̸��!�忷�̳e*
���9���o�9�O�X�#����Ce�̟�繌/k��n98vo<��m����(�+�&Ԉ��6�4U(�
+�aa��i�S{d��5��›�����
}�i�xx����˟}��z{�cÎu�J�
�*�%�^�S⓷�
nZ���~���a߭�b�:�Y�K9�ww�)I�����~������>������Rk���Ir����^�w�-'e�m��7�t,P��IX(����
+/��#�f٧P�=iMMo��r��P�}xN��0"|����;hP��[��掂�'h	߿����
��orv�O�������R^��͑ꈅ��;���_�
���[
+�O�����A�	��>�`�]��
���]S�4��^`�2�Rp�e��.��7F��S�ܛ[}Ȕ�Ko
U>�
(}l�|�B^�k�/L#�
��� ��zw�QL��������a�zj顆Q�ޏycl��lg���]"T�s�*t�=惡����
�qZ��bc�s�&wG�	�
�
#�ឩ����{}�w��˟8�L�C�G: w��:���܅x������Rqg��������Ǝ�.9��-�����[�X�d�#$b����Zw�u�hp~ZQ�\k޵�^pȁ����ܘ����+��C���;#�H'�-�}�'=蘟���
���5N͸�P����A"�.�$~��a�
i�������.��O�t�w�Rd�X2�I�������\���/��BNy菽5I�U�J�����ͺ$�����)�{/���,��
&�!'$�5L�zo����⧛=e/���� �G.�ϻ��1�ʿwY
��X��[v�)C&�̷��̽k�c�_wh�� 
 �*��ޜ����8��ն������1n9<�7[��VT'�v
pL��������?�f�E��=���<JB������}�O
�r��"�f
�ʮh��a�2^զ�f����%��b�?4
y��}@���%O�aq�.
��Hn��-��������7?/�e_4����	��-�����
n
����`OW�
.��_��?wN��M��7��o�Y� ��%�b}s�����["v�H̏#ؘ+�����IB�(7��3���	b����i;<�o=���5N���49������^NF"��;xԏ.)
zh
�x��Ŏ�+ݹW���w���X�������UD{Ϲ�Yx�2 蟾����_>�_�
����q&��)Rү�!b�z{�]�p�=��՛���
Wט��-�i5L���� ���8P���YR�OV
� ��'�� {�e�ʿ�n-�ցμ1^�v��
+@ۿx*�DM)��(%뽰()#��}	)ko��k�<�k.�a~��k̻��]���C^!o����ַ*:�6��_n/��ؚy�ܚ���>�ۅ��_,��ٝ�'	*���

���*�PO)p>i�}�#uC����O郿�(���iJ�#󧡚����������Qd��Gp����y;���=���
,��82R�θ(��\Xo/z���:Ơ�6"�}A�X�����BR����wMC����ҷ��!Ω�����?֘x�>֭d�L������KMٿ�	�o/���r�K_��ECoN����Wv���vE#)��r4O����	v1��
}0_������ӑ{D�_K.�s��>3���g���堈�Ѭ�Ew:*�d��ƣ g
�f��k҂��
����
��i;c�������èg6!1�5ˇoO��vDؘ��Ч
�;�BL���6	.f���ur����֖!�kmSƯڦ�_w��!n19�D���HIي�+�����iz����'	5�;	-��1R�wS��9)?���c=rN�
/�RpN�S�*�
$����s���U���@t���(�{r�R�|��}��n���m���
���˽�o��M|�
�`��D��9`��3X
��_~g�����G���W�ޗr�����w����þ��P~g����
��� :zc��<D��"��GN�25���ؖxa�'窹9��P�#��zl�����m��
����/���^%.c�����y�6{A����
/�B^�[+nW�<�"���s��DWS����
�}(�D\�������M\
��t�<��ߔ�����+.�=�IJ���c�ļ��
��{�,�j?��Z�C���s�[J���Ⳁ:�]�x܇M���ty��|����� ��U�L��B��Ē�`�����MW��s/m�WGl#�n��N&&��/�XI?-,z�	��"#����>"^9d�l�p������K���{J~�M!Bz@��psO�=�,)�8��n��q�p	����+
q�W:3�9��d��V����]HȻ`�Ǥ~^��;6�1Nqu�\K�=���0s_�ӵqD|��em��>@�z4��O�L�[l���,ƧUr�W�+0�g]7u%\�N�cf� [...]
���1T�u���)�d
�ٰ}	9ū��؟0N{y0KH=R�J�2V�EH�?P�1�	R�RG�͵�Uw6G@�
���.�F11J^�J���G��c5�U���po
"|����[�	�ˍa�}���Tq����+چ�k���G�!�+�>�;E/r��殒G���7}��|���g���ٙD���?ӵU=Y��xu���v�����!{Blc�W�5F�����o˿�5X���KJJ>�3*�&��{���B@]��.���i��N�c~��$�x�j :���%EQ[��k��~��=�d����-���/��*!��g	)�)$�͔�����S
m�)1D��Q�I��>~�Q�AgsM
g�������iZс�]�w��֋�д!^��A�$�|�nZ�Rn�,{h/x�5Z���Q��
�
�:T"��\�е�#-�`�?��|c�յ���[���A�=2tRp��0-�Gy}qX@Â�k��
+\��=��xM�v�5us�m]+�����aE���&�I�O������K-�����r��|,{�V������y�����z��SJ�
�Yն�������
�~Y�*��1�|�.ľ�"���
�S�O���3���ih��p�k��2"�F��l��[`
�:Ť�#-:�P]�{6_;[b��"R��]�}-��})
�'�I�Lc�׆��O���%�ݗ��N�5'�̆�	D�8;�U�,�s�V�e�M�I�qꦤK����o��
�04���_\P���~�Ӵ|��.h�+�Ew
+�O :RF���CDM�*Y�n
�5�
w��)�)h����#��?f�\ȿ��[qϫd��$���>�s�(�
P�%�f��. k��%��̤�6>�ߞ��.!�1�}���@���IY
%�ĭ`g�,v�_�
'�x���A����[s��*9��������ͺ�ъw�����g��<��@��k
+\��Ā
+�x�D�!�%���o-cĤP�r��i�f��wFA���.1!eOD��#����P3m�0��ɑ���������$)�_jz��
9o�v9>u}��}��

��Y@ܹLp�ȧ�$�z�Bv���.hڗU.��5��D�zgpy����V
�*dcW	I��c#�r0�h��ħ�! �MٝD�
9��F^0�h��H�K�i�
��}���'3�����4�|����,~6��;[��/Q�>
2qg�䱥�����Kp)�R^�M�41ͥ�A]�����%6Y�>빪9��bO���&|��_����e�z�e��j6«��<&
N�y������.e�n���Mm�7����W?�?�dၖQᐑ2�My7Tm�!^bŽ�
V�3���.����ԑ}��D,?]a�,
�b��›�2r�K�M���c-C��_x�:P�H%ȼ6�SxH=��Xm�m1�«��z���h���tu�sɫ�g
t��"��'�9
���e�o��N�x�K˶F�k#��Gl䮼��l�M���\�ͺ0Q�����jC�s�Mܔ��\��w���p �e����Y���K�y��'�!�1�+}S�O���vF /�\���E�d�
�,�r{���i�禶�����?����B$��7����1-�/��;F��^1%�P˂9�����
�K��E���QB��������'@�Z넄-�����G��䴢=!.�2{z<�F�Ϡc�x�m��
h�C
1�X� yl��
��\[���YZ�W�K<6��?sm�QV!,¯$绤�$
��
+n�4��^[�(�f��w&�/��*
�Z
�
�U�"R��$!>����QKl���
A�ze�l�,��1�+wH9��at�� .ʣj���[��������#!�&���=�II�R|�_�D�ο�UpᎩ�L�$.�+��ئ��V*�.��
�ȫ�Ĝ�N��^t�\4~k�2�D����N�:^$���ſ�~�D
j��
+.ƭ���.�.*�:Q
�Af��@JH���]
+j��ͦ��y6.���l
�ޛ+R��k���g�k�?��8�
w2�c
�X��y.ޭa�Yg��[�Ց���YX�S���
�IN�]R��)����i�DF�
B
���PO��y��N�ӹ��~%>�i�n<��"�3�JlrD�U�

�mY��R7]���\󫰀 �{��ܣE:λ�!�ҳn��JC�'���ŏؗ��]93��V��������ɯ���":���=>�/���:��/�$�|��>���>
qx��\��
z�5
�����*��X�M���&jGX�t�;�g�p�o�å�m��,��e�`������'�o=2Lܑ�zn��{�.�%xt���>�������E7�����'0q����3=�"x�C�.���� �=ךsQ/���2zf#�7�����#�ej�@w�M��z��r��[�rA�QB\_uԅV��
3�����:.j��d����@�}�l��
�0�Ʀm��� �/��^�C����~q+���F�HǪ:�P
+��ꘝ�'殼_��	����L*R�!
.�㢜3�,��&�HǬrJ���@�@
�:d5����kЎ��=!:�6^
z��������	2��n������Q��g����9[��@�=�ŧ��
 �`U2�s�Ȩ�1\��\=�!��ۄ�O�#�w7����U�n3s��s|�l��=*�5# <$yfdAZL��Hѽ]a��,6�|��84��&�1S��u��;]d��t�t��"r�C�]}G������n�
��
+UK���lԑ��<00ɇ:�;�M�MV��d��^91�kl�N7��V4���ld@�A
�h�'

����'%��
#C�Yʇ
�]��>�ٚl���
�݂c=���PK���ϗ�O&J�N��c��
KmEw-c��\����x��q��PMl��s
�G�OsHa at _�=�N�S
.­зE��)n�e]!bk�
�;AO9�K�[�/{f�!��:B��Z�����:cOe��tX׺�y&�|���X��H(��|�5~�5��^S
g{
+g�!e�����.cw��d#�9��i@ϗ:��G� �&:(��7U
�7���_Z��@����S�j
�!�ezԴ�3�ґr\
+t�m���e0緽q�
��
P��
�Z��9y{��cW3��設A����ʇ����چ�]��;6�"r��G�}S[�o��ԟ�pI���W<s��چ�
+FΏ[��|2�s�������;{��7;B�
�6zk���<�
+W6�^�k���Z��$d�;����+�)X�G^��@C��k�69�pGLϴ�6�v�M�.���K�Y)H��5
+�����Ku
���j�)!���Wt
�vG��M!–��
�I�'�,�OÄ�5��C�9R��ؔy�ؘ���!��ZWƍc:�HW�_��Ej��/��_I�ܟ���$Ș�)�Id�k�&�9˭�v���#��咓�� ��s�C�K���
.��5�s�>
	����� }�+������<�",
q�Q)�<�W
�ˡ�����oڦjr|Z:
���Rf�`�3�����ym�M�`�P5��j.�2��\�.�m}�hO
~�� b?�r� /��.
Zw$5�k�]6)�|�#���1��������1 	?^i궨�٪�ʛ+�Ȁ�H&6���&�lR@Ϯ��RS�O�
��Z�>�gϗ��/�,�׍��S3����)�%�܂
Q+nm�_�3I�<]�`�����>o���i�r�-�hGB�p+�x
uc+�w�%Z��*��*�%�L’sx��Vm�.�
v�<����xK�qn���O�75�}��&z�]
+}�3Qr�#GD
�i��&&�)��>>���g� "V�

-ue��
D����Fû�US��s-]�g���^�.�E�ڧY �Lw�E��b�7b,����^�����_d��oU��K�*\�鼀�#n�,��GYi�c�$�%�:���4e�: ����s�=�~{�&�[���[�l��	pi��5�r'��?>T?��^���e6�i��F1�V!*£��8,r_
+
��T�.v���9Z�ا0H/�oNc�'Б���L�)#�#}]g�N�X�$"�Ԛqus��)�mXyk�r�fT5ف���3^�ԙvc������QF�������~�'��yEؘ�Ѫ0�4�>��������Qq�x����X���}
+�7U��9
~���-BL�����Lc�U;�}m2J�Jٽ���{K*_n�VE�����E�|��w��%��yt��Z�PG(8��FA�]jD�U�p�Pqg�
��0���4:�d�G
ɕ�Yt�u���ڇ�ۋ]y��K)yG�F��
�L-(�l����Ք����
+\@�a�����h%�+�ݛ"J�B6b}����W���NL|f`Nд*��M�c&>50�Dl	��mRd������@'
����������-@��+�)_6�}QSt�&�z���"��D)����=��!r�� �)�7p�co�|ڨ
8u���
,R��K
��2�uj~ס{
󲯻5IJ��:>o�6��2n
&ץ�)�/�h��
�>���
�9��e:����֏���M[���I�5:ާ��qNW�z6�!�z�2N���})>nc
�D�>�N{��y|���%�h�#��41�2N�����8!���Ƙ���X���mc��l�
+�{^��$+�2�}�
p�}
��)�D����
Q=xKԆ�HZ	{bn�u��+$Ě{ʃ�h=��A���_����Gq{n�[]�rJ��.ȋar�����K�C�O�Uv@�d�l����U�c��������}��
��'s�����
9��r���ӣ���'��L��Y��g��NyM��43�І��/���Y�
��"#�ڲ�,��_�
+�}Z|C��ҷ�=��G�
ik�v!<D�O�e����1�g}S�5�4.٭fC���皦��SខF.ve\�$��qQBK�����G�C��ގ122tT>�kx��9^��"��א�����=�[ڴ�r����<��W6e�|V�[��=^d�:���@�|T�u���
~����o���6��OA㼳���
�t���G��}�-���O�:rn9&+�� v���C}����hE�j�s�7�<�E«�� ~b��q+H�~�K���S��Y���m�Y�
�/׭��ڕ�R=jL�GSS�5�����Ā�Tz�ʡ�cy6�� {�xj��@�"J�� ���(���
��-�֘��Ej��-��*�t�'Z���Lݠ�kc�7�y&�`���k��d��@(?^�՟m���L�_O[��Q�9��

��滾���f����S2
bx�JэaR�7Ä�(y�����?;��%;崜�)R������_{E������>&]5����d�����0�6Gj�7�*�
H�o�g�X��
aC
+y��ʻm�|�V4`m�*@�fئ�a*A��K=eO|�w
��������W��
�F8L�G[�����-�w���_�ǐ�����#Cp.2!�%�ĺ|��9ncbݳ��a-�F<⡩��PPr�D��^6-`�b]�������[C�w�3��,5�oh�8���j1�r��O�
��2�T�2,���{b��>j}��e���l�CJL>Ա1n91�)�G ��p�}�}���y at C�<�5�����qV�]K��1b�ON*97�N
�b�7e,�V=�NSK=JZ�b�
�f@����Ϭ ���=�bc
a�~�>�ꭩ�`��;]b��L�
�~��a��]��y�^�:�MP��?�9�@+Ll�C����K�6�w�!�����օ\2LI�I\�u���u=�ꄭ��[�U� 
v`�V�,��m�b��z��|34�+
M�@�
h�ٶIp�C��k�`��^�ddHx%����s�?[\��qj"��p[C%O��8�զΕ	l�\_�9�p��A�獆�#��5�F����F������.��X�λ��R�ZB࿰_�lҁW���>�Ѫ�U�̽��G�ŷ�c�H����k��^`�o��l:l�� <�?���i�}�[��\p`M�W����x�w�#�α�~-�3
lz��#䞾��VP��������+O�~RM0'
c�в�$�������ot��� �쌖><Yվ��O�
+�r��4"lOXx�?S
�K��ž������և�"�*�!��M�]rv�[�y�l��	��Ӝ��q�����N�y^Cmw���
���l�UOgq)�=�7L-I�zf��6L�
+y����
0~�H���y
-&q�c�esW���}�'K�u
M=�!�&�K*_�h1Y����C#
z�����?��c92J�Fj�]AH�*	Y>%1�HO�<Y`��*B�c��Ӌ
-�ݩ��;c�Of3�`#��f����rO��8�ږ��UGy4\�W��8$�Q��Y7'�/~���_v����ڴ6BM0u��:��U\��h���=�
���
ȼ�S�3N�٤��v���aa�NW�>��7�h�#=.�.*}�5�~�=KH�y8�����S�E�<����m x5��#��B%8U�X�,)ëgB�gj
r\��j�`���uf"�|Z$c��t�r
���쳵���B��Hų�ޢ��F2(��M�Go�X�+c�"�\@�Քi�J">�C�>�<t�a��L��-�M~ ����j��Syl4�
L�WW�o� #vE�P��\�y���Ok����R��?�Jِ�����Z��u����*�w�/��n�� ��
�� >A�\r��:��
����?�(�C5$�=]�rg��A��f�ק��A��/����m����j�i;��'~
��qn%�ʩ�Z&��c����l�q~�C^����	n
�1�|����#$D�ϰ�-Bb�j/��
X�
|j���*t>�>E���X�v1.fWꨗ.I��s`
�#
�aVY��푒�Niu�_ˆl#��%�x��K���	T��96���P�6F�C��ĸ��ʇ掬_�t�O�M:V�
�M��`��2R����y�Gu*Po�2 at O���B�WK,<]�c� <�_�������&A`^��֢��L�M~�T�"�x
�sΗYX���{h��}]fk�M�+P1vQ�ˀ
+xo*�XW�:2�w��c"�ZQ�K�
+F�O��q��?��/xn�Ӿ�6w
��i.%)
��2��R�/AF�e���r4-9�WzK��ݡf– ��r�V�4��U.��H�o���
��Ѐ�Xx�*x��$8��c��54<�..}��<���4t�K�m��E^c�;������>
��!E%:gP	Gst�A���=�K>�ϵ5���L�tU�RO�o+}�:��zS��*�3����#��|��"�zh�Yǁ��8���t�u�����w�PXڳo�Fɕ�v��C>7S`.yٛ#���Um���i}�9�c����y��E�l��8]e�hH����	�m���ձ}:\�g㙁�=6"3� �<X�x��bV�R��]Aߧ5cw��>~�ғ��*,��k�B������[\�m��&'
̳y������2@�@2Ζ�`Mi

a��ˀ�K[A��)��v%�j_U����
=��p��|�e�Աem���Z�ٙ�����z��\����r�m���s�
2n�ML˰��	2�p���3�
�e���Q�35?킪6���@�ڦ���
+�ِ`Ϝ�Q�Ό�<�,*�"��X@=۝" >
b�����Y�%!�TG����	;�ُ
�'N1"�x�w+	��\R at O
��*���e�M=Y$��$�׀��9^m
�.5wX%���Eѫ�N8Y�e��A���JGt��
��l�Xx2O�!,,�D��ȡQ��L���6��in�<15� -���q�{�Z���!���W��$�h�Txfl��yX�+�
35ig�:�?x
f
+�rs(���p�)?�"��_y�
䦌^�6Z�|hl�.
+NL�2���9V�T՜t�)+;5S �����<��<��i�?gnA
%*ڧ�Nܛ�x�;	=0q�gk���y>�=��Z��
i�jb�O�M�I*"��K��s����t�\W
��B��T�3	���W����"���iV-)wn
�-c"<���\�
 =r�P�>^mh:��պ��L����Ć�Z`>Ss�Ɋ��0�e���XE���Kt��������[[K�
�z�-D��nԷ�����\�7��ݚ��C�O΃�06��V%�RbO�Okl��s��e
Ϳ�F�~��B�a�m����7=�,0�_�������
��A

��fRɟ._�
Na�?���S���^�����`�55y �T���W��Q�33
��c3�~l���4
�]�Tr*��̼-aM�ULJߟ�m��l�V=������|>ާ��<*.īi �t���y@�2K��_�Ll�S���Qk}U�;+n/wC�&�A�U��#�;�����
!�z`��y�� .���@
z��b��Qv
��������c��m9��Sy�
+L�g�V�Ѳ�ܳ�B���vu�%̿o�.|�T at _;g���3�c#�t����5j��S��D�

a��<�k�@��㬓 ��A�O穕;2FѦ�:
+�qб�T���~^��9�U��LV>� � �sp��t}�u���}<ק��9T�b��=����ɩ>5w��Լ'!$^��_C�z�t�'����,5��t
��><���� �Nz6˯��
Ɉo�_7D���#�|e���W'˜���PG�
h��-���T����e=���_t{c��]N���G�:NI�P����B��yn�U~]�QN��X����(x~K�@ݛ��$֭A�x���U~����?v��6%&�kb��Y
+.=
�5b2����m)2���Ӆ��F�u�>Z
�m�9Zk����e��~-��gI��Ylҙ���bi��t�����ʿvy�/ۀ����W���	Y��\jR��5���+�?\`��9���\�{����<��
+��A'�H1�.-
u���tI� �
�WC(�W�����5zu`��1�c�eMEO=:|�_�tJ@[��`�N��Ug�Lĩ�Z�	轿���46�,�)��I�
E�؛&&�U\�_-���)s
g���,��+,��Sc��jb�WM��d�Q�Xo��u���d��
+�h%@
�5�S!���|�W�,��R}*r6���N99����}Yi ֒��nm
ѧm�u)y�}9k_�K�C����o=*J
���Q�3�<̫"f ���6MH����7F�
������\
ͮ�ɴI	�
-
�5z �3��&}e�jC��|
����Z�Ԁwױ�<jF�SI�r�Hn59gs�TRrNy��eF��@�ﶩ��N�e������^�m�۾����93g���s�w�-{[�lK���%R�(�9G�D�9�`V�%+g1����
t��Hi�sj���պs���L�}��a��r�(K
�����
���~e��ܸ���z�׍h�M�/�_zY�?<�񳕕�ILN��o�f���2nS�#I[��i�y�
��]��Y_WO��%p�F=�9ƫ��zn�="v`���껪o׆��/��=��(€kb&�0f�%�2V�RX�yns����������������ZH'�ڞҋ���~�]t <�kIhi%�	����8h��w�s�/ڎ�mB�ʄ�����p�+�<*b�0�nv;j$]���a�U�޴�k`A˪�Y�gC�aB?21e����n�{\�������^�
+c�/נނfQ;`�0锋P�\�"�ے�+�T����!
:+;��N��M!�
+��
��nuZ҄��Mߣ�3�I�d��O��q'�vu���*x���OO�8吉���
Bz!i{��E�/�-���qj������8��>�I�����)B1b�'�8�0��>>��3!1e���x�LӮ�Q��{�Z�ŕ����ZI�*l
j$M��k+�
���?_xY�/i��e܌���ސ�S��gD��[D�I�j�M�iv��� 0-�
L	����R	�?�
+jf
�
���KXx
q��#f�UoN�
\��O�oZֶ��W������V�7��5߄�x�K�����*�}�O���_���6�a]
M�����k�o64]t�M
ゲ�qy����8�F�=��iXzK,ޜ���rr¥�Z�Tϼ��\gm|�w�y9�g��&f%���4�
��
3*�k���9e��I��{a��Kq��y}�]��r2�7�Fq;x��3�*�Yx��Sp��HL�yp��:�D�*�!�%��N�P烓�'�fN}d�_��r&c�0��o�El"������'(�Q���tt�Sޮ���U�￲G�w�K��ƈVF�=k�qy�V���
�פ �Q���{�~H�]����Og6���T�V�iu��
j0���v�([~�hkV�X��V�>g�!��IH+C�Sa�z�����IY�T
+
6��:6������
���P#�8�︰����(���������$p�EH�<r����1c󩸕t�QK6&�N/���wﯠ�������=D�Jp�\���b��ò�/?�����������ʛq��ffNџ�Jx�E��6�I�����9�V�>F+��e����޵\J:�m�^�CHL�Z���>��+,��FMRja�bvvm�H�_z[�70�q6n-a6A+�_�0��ڎ��M'rNNKʁπg^���
~�tm�v%8�,��:�΋����
?�ög$\
�$��S������a��~cx`�^���\%��xe��
և:/ VVu��m�Y
���5�֠QI��*�k�ŋO���ݗ?[y]�?2E)��njō���!y�Ґ�!�4o���y6�}�z~!l�3�'�W�'� ���w���Y�Y
i?e�S�y`�y
��)�\���'��W-]��M%�?W�:L<=��f/���Q��jN��6�+�����4��T��(��_��Z|�qd�5�xT#j@

+��[�E�o���5�ӑ
�z�ň��`c����(�b��-�ZzT�c�
�ǥ_�&腡	^�������=��$l�����W�6�<b�
u�ߌ�U�	j��^ُ����F1}mT����|`�
�Z`R��$"&RYp�x�{���qIѿ�a���}����aV�T駠�/nj�֕�m�B���Q#�4l����A%�;��1V���BʧPa
�,a�pb&vG�@�����UD���ߥ�=�rޮ��G&ͺ���^܉�%d�5�#��=o�2��
	we��X��y%b�4�w�%�Jy�q{�\s	�Q;�"�Q�E�9��U��{sw����
+~�yRv!�g�����-
�2		���_c1mm�qu�U�/��_Ͻi�
k�e�C��va����
�2>#mcׇ_W
0(�?��p���G> ��XA��������	څ������mKä�kc�����
�Ini�%a���X�>>1igׄ5����<iR5���$͂渞[��ym�MH�x5q3�!�e�
	*F)1
+*�5̼#�4߭�:4ɼ���HA��I�KZ��=����
Qc�y� ��$,�怞��[
�Ia
�>�����qݬ�
+�N}�
�C���
]ܘAI����t��ۖ���nN�
� /���YW��u�����O�<�	ڽ$4�y~�E�O���{B���'ݨ���
���w�Z��(�.<ʺ%��
#�O"�%�
+F��߷6ĺ���x�v��sϭ��A��#ve� a�{HZ
�4�f9
1
+և�N��]���n�c:v3�t��#�>���.	�^n�ª�L����A���EBM�
<��
�vI���ވI��f^
O���
kÜ���8Ó�Ε!���g������v�U���ל˫oE5�	ASL#j[b�{
u
�d|�	���C�o)gC:v�䵥g�����v��%]=	���-
��N]
�_�Ԑ
�V�O"�Aߤ��
Ԣ�漽w�`��&Q'�dMX��3!8>�e7�ܪ�/��Ҿ���K!A
"J�-d!v!
��X)W֧Z��N6�i�W�O��2kF�O9��|a��qmu�Q��8�{�<�
���m�͊�:nK�#V���#Sܪ�a��3KCm�b&N#����]���W�����
S�Θ]ٕ�Z����Q#�rz �R���
+q�!���Q��^4~�����W-GP
�j�#$o�ҭ�
s
���C���Q
�,b�T`!�zF̂F|N�%e�]2b��G�Ka�6�S#�na`��
�K�Q���ky�q#���0���~�?������ۻ/�����k�D��Nд9)��
�ԯ�c�{�|��xG:��!�SS6
s�x�KD|��8U	;�$��9��ط��v_� f�R$��ljX�����yV���X󙔝�~�����5����
�ZwD'jqޯ��w���I#�Z�.hOXM+���g�foh�65]̰VҲ2L�8�S�����
b^L�@4�[��㌓Χ�
+j�Zf�ҫ���~k>��	:���	k�:b�e�i�x�+
�1<ѐ��+q��9%	G�*=7�rjZ]���N�_
�d�A��z�¨IF]���uJjP���{���s�;���,���V�g��5iWW�
�>�s�݂������S~.au�y)��v v���٫�
���w���g��ff��[3"��8��N��)��H=��+	;��b%,j)bU)3>��Ò��Ag�4j�7n���K@��YՠU�F���߱�02nVK�H+_|����8����r0�gUϼ��;�����7�g!G�Of�7��o at -E=2qv��	�+
���N��탄�P�U��jH��t��n_
�8�s�bf~����A��[>�c�1�
+j!�#�����s�d�Z6���O�1�(�C����Z��-���=�Pl�*�SЎ~���Q
�$<�tx�M�O˯�LR��&nն_*ܞ�K�N	5a�?�p00�(��6O;”S!H;�>���2°ߑizQBO/��XUA-�j�
��i�/�o�SN��h�Q���oW�Y��Ơ���6�+�}H8
�FGi
�kh�G?]xR�����Gݛp�
�LJ��4���P����jp��T`�prs����H�M��2��C%I{��
�٧M��_w�m�v��У�	ҙ�4�4e左����t�9��W>s߻�e`��d�Ȫ唍)Q��;n��	���N�ލ7�3�;��ԅ_Z�
?
��N�Ť��_��t�}�doBז�vPJS���	FYDï�j���q�/fwl�u�qݹ��qѱ߭��?��P��o��M���F�+�eu��ю�Z�6�y�J���K`O�ӥ��wȹ�S�������7��c�z~ͪ `�ffļ���:�r^K�%�Č����W�`\�#����%�egz�fo��h8!=���;�V>ac�3�y���V���a�հ~�/��;��}/ZNl/�>�Z�$|�l�
+���^ڮ
+�K�IW��)��?��oL�
_m9�1A85�d���
���k=�:�z�</;�� ����
��V�ѯe}<bnN*��w�
����IQ
�Dǭ����v
^�lJy�_�O+��OS@�
+��
+̃U�}�|zc�p-���NVmDd��j4��
+NڡV�ͼ���#�����j���<�a�O����Y���X�MYG� fT�Q=�lc��ǹG�{W��D'i���|)k�6�]"J�&��
:�/f���Σ��┃U=��@�Ǎ���	�/���lܷ�q�e>x�Z�*�LXDm����
�`?σW�Z
]<ƹ�1.��k���g��w�֪��u�y�wo�Nl��|�����{vXX�6%����
�	��ա���������E�}����A��3a�26&���^)b�t�����і���c!-�Rz/a��D5�
�ir��[�YDϬ¯�'��o GlL	*�����â�g���������0�ӹ�?���Ҍ���ѯ������5�
���d���߯�n?��┧����AJ\xG=7������Ө�Z�42� [���{}���:A��[~�y���81|
9�㑲n
5��(i��+�9f�����{��J��	���+‘������V��p:�^5ac�,�.�N�.�0h�7-���8���`.f�E�x{N���Y+zF	���Ї=з-sϚvܭ:0���lB��(�̿!�Y��"�njbf9w������?�g��t�h[
��0�D�8�rpm�\5
YI'��n=ж���\YӴ
]�l?��˕��1�����Y�D�v
I#�<a��Em���]���;�ZN����ܣ�ΛW��<i(� ?6��{PZ�Oȧt�M_�-nvV՛�J)��[���gm��m����		)��-�g�u
+��d��p*�j9��R�r^N[�%�g�=�q
�:�e� Z~]R#m�MЯ�?.�Ƥ>�O�w���h�)����t��VA��H�A���߇�j�'M����לqJ(1��1�> �$��l?�159F��d�����]���OZ�
-�������IZf�1��a�]�����Dž���(�*�l�m������iY�ڄ�1�ň�G�4»@��J%���������a
����p(0,i�{)��vU�i�i��$��t̊�S@��1�0ֆhgB��K�Mԉ��
�W
w�X}�x <����E̠VA^
�]�?�\�)��L�"��<����/�*߷>�z(jd���*��0=?4ΫG�
+�w�?j?9$��ń"�����K�æQԶ:F��]�U\K-J��u7�5��un��^��*�j�1�8bW�Q������q���T|���c�6�d��ݻ1ů�}E;
��/$�m�S
'
�g>[n:�3*#&Vh/i��*
�(��VVj�5�/�OX��,�g6�ZO&�BZn��)�*�a\ɺ%�m�����[��/>��g�a�!Mg��yխ��ݨAؼ6¸�X��rQ3�)8�^�2\}|m��LH�(Oy�꬯�Vt��[HG-M���AФᱦ#��Q�8�
q����%

�4f�D��̌P
ZQ��ar^f}@�,^xK?�4&,bF��s7�
+�������i�5��6�%fy^4I�x�[�.a� ��]�X�4�/!֎�+��?"�O
�js�S
ҲJ�g��_
+��
)�nu�����b�ܪ���-4θ�"^t?(�R��������A?7ny�-"�
�ΰA�3�j�vVe\�p0���!<�v24͹5Ȉ�N��PÏ�����?���?',TH2.N�ת�[�O;�섞R����7�Ǘ?[yI�%:�"F��ҨIN��:�*Eubf���D�n;�䅦Eu[3}��f�7RPGq;�)��5c��6�	�iF���u��3rb��g�Bj�/��L�ڨVX�����S��^�|��%��*9fRp�������
�
���٥����FE��_�yM9
gn�P
��B��f��-��
<	M�K�:� e�Ϳ�
ת��<,��)h��)k�(�V)Q���<A��<i:������[
n=�����
?���J��}���qȅ!
�Ǒ�I��l<���ʟ�.}
+~�
��2�&�Z_m�sFqX�,CmRvnV՗�U�F�;Cm�^�]B,2b�O�L�E��.ʻ?��/�M�>#�m�yT�w��v
_�^�=k�`^M��.F��p:�c�CN���G�_�������Y�\x�qdJu����c�����'���|?/WX�*Q��N��[���I��.?�|�w���Mv^�0/o-�T
��E�7�S,�Z�i����$n�����Q+���
+~���]���`}Ol�q�3
)g�/��ƽ�Yk��?���C���:\�]h�r>k�As��oI[�ui��u^@M
g�v��;ʩ����vP���y�s|
+6C-[�9~-�,��1�x�礳���?$�8�pJ���-ྌ�V��)E�	��$�
�K���N����/����Ŀ�1a�7������W&X�so)'�_3�޻����<��vQ*����K×� 8wh{F&O����%�Iٞ�ו{Q
�<gQ�3.�(h�U�693�꿕��ތY�
��u�_T�	M��J��_}
����]LܞS��]���$���㊽Z��O
�
�9f����+���,��J�����R������ևz�?�w��?�X���*���^U�es��$��-�J���Z���Q��IJI٥�[30K^7�[|U�7�^�rs�W�M���赘VԈ�-)+`��q-nb���U�\
+q�&���&���
�I(9�R����XD�M-���%:-��.�
i>8������
ߧ�����;3��N��\���-
+[��l��̬z0�im����D�	Ĭ�&�}Q�oH'�.en^�ֵ䙻/�����Cۉ��\����0���+���x�,��
+���������G�	��ٴC!�����{E<?,)���~
xU�,t����-�W�6
X
i?� .���-�!��ǿ��]{A֩P�uF�ʀ��;�
+���=�O	3�����<=#��C"��NVUw��BF��o��(�?j��p����f
U�eHp��^�����5�c�C�?�	���'��U�&��b7������Md��n";-v�i���N��DvZ�&��b7������Md��n";-v�i���N��DvZ�&��b7������Md��n";-v�i���N��DvZ�&��b7������Md��n";-v�i���N��DvZ�&��b7������Md��n";-v�i���N��DvZ�&��b7������Md��n";-v�i���N��DvZ�&��b7����� ����=������-`�ۅ��}�7�ʱ6���v������m?����N!��n������:���{~�$�3���/G���i�����I�~�~8�4<>9��О����}r����'~:r��/�O
=z��/{�?y�_�8~��Ǐ
���<�đ��
;x�ؑ��
>���t
���ɓ'N
?��/G�c�u���'
?��r�� [...]
+�P���+ha��68ū	�8
q
�!�f֢fҕ��\7�*�6~
�q#^��%/8͸��"Fqf�1P��
�K��Fa>-
�VڵIq���l��`�
9?:E͏OS
P�JL�~:i��b�뷢���-��ത%0ƾ�9J<
�'�'&�WQ��-eQ��^2�W�r�fAKP�ya}���ʻƟc�U�ɬ�kȗ#�*i1����85q
�$�c���<�j����MDJ-�Y�N�傄Mؾ1I�_z�z(0B��&MrV\'!D�ԍw�VT�#	�C>�;����v�Y�硡�cI
�3��)���<�vl�Q�ޕ��V^5YzY�]x���P�2ʙQ-�<��סf	9mW��Nuw���
jT�Iqs`�׌ٻ��|:+�>���AMYE�	�*�c����ڐ�s-n��$��ꅡ�VF������MB�r���B�ž��R.��ы�R��U���q5��Da�Rn3헉v	u]�(��j�5IH1��
20��>�,;���򈙘[HN:���K�7Q�z�夅v5�˶��zn)s
+;Q�5��FL�k13�s
���]�r���J���`_�)������=�xCK�����0�c�#彟Q�چ���Tj�ۥ���A�
ħ�@�!�2
�����=�����^̮`1-���Iֈ�Әt��3^� ���t�J�"�%]}��n9?�K�3����ߙ�Q�P�*n�\����R�͊_�H�C�*i�'.�
+Vߐ�Ƙ��vXK�J�zĤ�U�0P��&f
>
^�6p*W��gV&h�1���4B>��U$�P#V%�
+ۣ:JADK��E�sC�k��������Sm����Ә�T�4�&VyHϮ
��	�Z3H�7�)g��5��p,2�~*�e��
�����4�u�w�{�?B/v"qGh����+���5S��lBf��Q�����$�fSp�6
��L��i�9��f�
+qnF�J:�B�!n� h
O
��fQ
+�� �Yz]���[�ך��ςo�V�	��/��n�q�a�V_���j�
�J���66p���_�����C�NN�<.����ү��Ť����`�K(	|*�lj3]�-�z0햰������znd|꾤
��ĭ�i����[����vN}�ɩO��U	��>eQ�F%��^�8�lbR�%e�
2Vʩ��=��M�
$��QIGm*!�UH�>	qIY)�s�7��7���ܻ�#��Nj��NʯTef���)<i�B���[S6f9b!]̸�%/�*jk=2.�S�P��� ����ꤓY��0�3nVm�D��1A8�0�HYǍ�9ύ�I��6�K6u��)�H�[3���we)����~�s�5�
xqH�q�4f��DmB���1a
�i��s���S��z�Ŀ-�����9%�S�j�I���Cݕ����t��zq���'Z���a}�a�H��{�p����e{Ӯ_u�	R
>�z�a���$�J�-��rq�%���b�4�VJ�
s;�Gy���a��-`�6M���~9mQ�sΞ���ݰ��꛵w��E��f�Gjҭ�Z%Եq:�`��ۘ�s�&Ja`�p|�m���)zQԪ`��3����b����k��5DO+�NS.�
w�b�Y���s1��3d��l��
�
j8����ݜV�̩F�w��c��}7R��.Ԫd#as�ʬ�z��T�
V-⠖&����U-����	ij���FA��h�A����l�q�_��k���()�Iq��3o�-�|�-�
��n
���<���싆�����=l>����8`�������_B���VZI��y����IA�7��Μ��+�Qʷ�2I�ήE�o0�B��kŧ�J�-I��-g��>8��m�z�C��qw���&&y
ikoOXO��"�ʺ%�m�B��U�#�"61�)	�
	���XL~&=��3ʞ�l�`z��7�
�^1sUC-
 �@����u]��@n��nvN}3��
���l�ꨞp
+��$�����#AC�)|�E� �SP�5�a7aNJq�I�n;�2\�]L�i�:�?I�{oĭbR��k���u��׆XD��R�y��$�rn��y�?�qu��
F�E+M��Y�3��Q�x�@+�-�Ӏ�����ɤ[�3;�.a�f��-'�J�3b�a_(io�ԭ�絅��҄�՘�3�#Ƶ���S���,?�d�w�7G�%K�;��)2vnC�Ƭ�8�͘�טv*%)g�:iW	��7�qk�c�	�V��"���σ����t�Q�13�"Zb>ff��
��:�(f�7���Y
��KB݄&xe	-�ѳJ�f|�0�
�	:P�R4��|�s���״�����_3�bӜ���R`�r&4NϏ�9���[��zh�
���x\�tq�#�y�Ƭ������
0�.g%�.P�Z���=�!$������T�H�O��I����W�
+�����8
��y%8�qz�m���P�/��_���ph�
�xh�]���u)2$(Y|^���f�?�~+�sBǫK[��C)Z�'��%
[Y؏�������/V�k�
Nw�	jWbf|Ҏ��0	3� �R�r��.�l!��cN	��0��#k�Ҳ��9�,�!%
mg���_wcPkˣ�G�
g�@_��U(�C�$���f~3b�1����&��*���2���،L���̧ꁾL��ĸ
j�/�o�)�[s2YfF*LA�l��?�xUj|�]TO/�9Ŭ-���󋸹;��"F	
+�*ffW�&�6);됲0��/�
ܖ,�M�ȩ��EI{�*�q�K	����ŝ���Cر�������Ҡ�r
��2�춘��{\�:UY?�
����G�gG��Oߝ��g$��G!O��
+��xl}�����\�%f�fz�a���f�s�e��� k�y��Ch�|>maV��2~fN}+4y�+b�md�F
����p*meV �סV^S at K+X�ԅ����I�@
�ꄞt18�zte�t*0ů�����Ij��Q��0��
j�&�Duܪ�8�D-���I+�fs�xn�Eǡ�Vܾ���I�S����z9bd^]���������	?���؅L�+��VA�O�����sk��o��>o��d��qx�4h�`
bn;
����5�յ��t�MX�k:^��(9ot$hGꖗO�}�i�g"���q-���P�����j�[�cʤ��M�����C
ϫ�ZxZ��“�/7��gF���i��a�6�`˪�� 32zx�ʰ�rySG�2� �Ĵ
�?@{D
�Z
[r^)���
�)���t ��Z���_&
=��vd�.hO�����$��
�3�c5nhI7�8��=����K��瘍���hD�t(�
k$_J98u)�����x�J�:{�'�^�@ġN�VfY�ʪ@����_�J��<\w�
uo�%�=J�֬R�~^ٳ5+���z�
�j9��
H��}�F���[�9�,3+�b���՘�ߖrH�I���s���B��$̜*����g� 6VU�@��:��Y�60KRn);�뻟�鹋OU�ZPtgf
��jHϋ�جT�p�'����xo�z����L��:
|���v��ՏB
����dR�t���MI
�.�'_��q
�Z��nD 
0��Ô���C)�Ġ�{�>x�}�U��z��Y��e�&�W
�#>A�"hI;�UQ}����o�G��� v/M*۝�)g�_��i�e����)2-n }T0�y���d=b��ܲM�(�
��	�Y(E	31?jh>���⋥Wm?�u"�rֆ)gczNM� ��1�~|�E����/oS���FV�]bJFO��F�Ig"�g�ӴˑiZAp��$b��D���q�<�0"zF��D���T��rXG<�1>|�����?[n}�������:P
x!
�00M���
+"Ӕ����#Χu?��P.'A���I�VEDC�_n�q�y�_���s�o;�ݥ
��{���{�€�4p 2E��ŪL���-8�����wd��)-��G��|�:�͞�ӯ��rIfA�ǜ=���w 
����
��v5�f�]�w�㬒�W=�x8
)�5�d7����U���q
�8�bTe�\Bp2�
|�:�o!�/��Ӌ�ffiz%d"�9��j���9EW�/���d@�eg�]�P%�Z�
+�¥�@'a��'x����òrp{Aѓ�p[cr>%(��u)���[��FI�7��
'`�QД	
�*��'���VE�+��
+EگTf��
��
xD��Q��sr�7UW�;��t���3]Y�>x
��_�<��UNc�Zt��T��*&��
+�ʜZ�̆�ƹU�	~L����
+�N
��[�{Q3�9n�����"V��{
�T����y#
:f"�]z{���'�ؘh?
0��5�:��������KD�Q
�,�a�n��/㓶|O[��]��ɥk�̢�Iv1�%��p���������"��C���C	
^Cr�&�,�o�?a�.Q�/aeV��}��3�����U�1�
z�U�W��꫖#[v>!m�5�p���-?���ٻ����<<��$�5�:2.5��ǀ�F��
��s>�����G>x�ui�#I���Ի��]�2�7�I����U�����if	fWp3�qu������߯�%
�
"
�?h��	ڷ<r	�k&��3eQ�6�2퐱#&FI�
|i�-�lͪ�N�"<7�
��
LC]$��=ږ�13�8��%a��{Iw� `� l�^kO�
��^�^����q�j���Ķ_��'�
5�`��8
�
���n�2�鹞���F �뺨�U�qj7Ag.�6� ���Z�/����V-�d�c^�*��2��A�-�\b�z�#aN�P'�-7/�gfE�%��O*D�ܶ���.�@+�L���!�hވ�Y�P�&���+А.�
��$
��w��|r9�ᓶ���l�]�_2���Y�~�Y�
�	H8�l��
��;�V�R�g�>��B��I�ymQ#��F1��#`�]o
��� �x�YP���$���Y�1�"�.u���7�zX+������1�
ǃ��]
�1��A_'h�q-�9�0�vQǪ�U�zܴw�5�
������iVYlRF�K_K�V�Um�̏�c�["�K���j�Q3x@'��~>%
}
�ӯ��w����L=��F��r+6F���	����ӱ�1=�n�m�������p
���ыP�1�q��hˡ�d+p[��h��q�ŔM� 
�u݀Y�Ԉ���j8��[�e̤���x1|�s�G��0��:a#f�Ҁ}9���v��B��CQ
�
���	V1�gUL�kCu�Z���� �Ff��d���w
�1���Y\�$�$�Rj����:�P����6��&F���T�,c�}���v!9��y�]�X���T��(�P���O!Kz �2�A+���-���vJ1�f�dss��/fz~�z��1�(��"7#df�hU9?������{�k���I�Z^�'F ?�:ֵ��U�
x���Y���
5ӯF���lb�x�
+��s�]��w'�P0�%�㶥�
	�:7
�D_�
�ܞ����]j�	L��
q3�"a�b�.i at O�
�:΃c����>�]��z� M�\RF��sr�G�gR�u4�࣌�>
u
�_f�Għ���*������Fŧ�������1�2I�''
r6>I��嗡��˹{�n��N�{��ݜ��	���!qe`�[���
π�J:�������=��2nu�N
�T)_Ww�$��V�����6�������mL0
1���vIX�Iʥ���5�G�Ռ���umRP�	������()/eQp@{\L� k�*)>
�[
m>����Hp�y5mUIR�޾xۄN҆�,T/nů+�4��K�J��9ܸ?2A�C������_Vߴ
MY�t�"%�����w�_�?����0|5�:m��p�VܚO�v��L��O�|�4
A����3�
��[��k?��+�Y����s	ɘ�ے0s�
X�- >5HH)g��ve�u�����c	-�5rjP�)
Zfs�~9�0k�1�� �4F�~���ȏ��5����N
|i0(��s��<�wӾ�x�x�Uܙ���|�&�rv��%ɂg��%\��i�<��
�=3#l�u�<U�v������ss{F՝�J�)�����=���rw����]����]B�}n�A
�U�[�H��`p\̦�$l]R��wyJҲ:����
[32�6��EEfF�I�@�8��	ǯ�h�0h2�-�e}�6�ռ]��K%�X(�����)�L�q]�v��#�6j�


q�ȹ���9�ǬO.IZ�O��[�0Wwwҭ�@���'�������Y�"�6
+[ s/�VN}�0�
x���x��u�: f��9�YwWw�$�M�Z������ӃɈ���KC&f��$�`S�nX�fG��w��K�O��.�OQ+j��
����VҔv�$i�B�N�>N�Ww�2��_�Nq+c�n��;~It
+��&eWI��VPsB
�t����d�ń�۴��t
+������i�\�vv)��4�w.��<�6B<�6�*Zx�y$6��ê�i(E;~�NHLY�-
����R���m���YxV������b���
�y�&� ��ʻ�CKO�~k8U
�[���3)w��{�K~�[�2�v$���孍1K2N)�=�q�I�+�>��N�
[x��}d�[��D�DŽ�מrKP��-�!gW�2V1	����~�s�O�	ҕ�Yܱ�|"���
e�P�I����r��'�mj�WS��{Qko�,�`��O0�C�6�#���#QgB��uw�%L
+�S
=�Rss"��%��ÒX��5a�AԮV�C�r�$9�

��.�8
�~N}+��c��\�b�.>bP2Ps�����>୞�cM���2R©��$�k����[���������a�"�R3sB�Q*P��àY���x�����=.!)n@[��.15iV�Ӓ̮��\=����7���ݚ�Jrs�^�����
�
܍[��Ǭ*^��ݟ���|���Oo��?{���΢;����
�bޛ����IW߭�O.��~�<*ŶW�ïi�
6
7�&\�~�\5�}�0��_3�)1�����S�C�RN�"lw=j݇��m	�%��}i�������Լ�qNq��3�5����K�I�����q��#��V�M��u#��r�~���y{����tvf��bzֵ���{�j���pH��iJw�&����EĨY�5
7���Ko��7���m�FEE�n���nyUx-��P�	�j}������{T�5p�C:V�����^BN[�̸�U?
�h?>����������
r�}��^���4�s
�(x���S�N"fj	��z
���ڸ���*��'��IQ�uc�xa}�x>i�Ѓ6f��F�kϤd���4� `��
��W�o�~a��Eh�\�4Ÿ2�]�-��\�7��^5	Zq^��ؕ��gF9��I;�F9#�3�t
��p�
�q)-�2��#�
��+Вf9{��}k��}�âj ����0j�����=[#F)uy�^�k����N�n�Ky��}�wp._M��	�+�5ɨ�^��,�A����ͩP��q�J���B�g�!e/��Kf���e��}�{.x=�z�&��pm3/W��O�
a�4b�
�fQg��.O8�t�Q9�Sާ[p�UBu>n:�@߸c�����g���~	x	!q�R��5���4&��
o�k��}=��
�Ωz�G�9�B
�R��e�!ڞ��{� �)�컙��=L������<��rr�g_���{I.��o�Z1�I�4�젥[�����˕�yc�V��q�ZF1b�6gA��Ake`�1���UF
�/ߘ���ޚW�f��<ȕ�ˉq����>���-���ǝ�6|��4�f�oF�JfԬ�~�;+�
��
5K)�gW�$E���{�!����e�DM�Z�,�1��!ab9�����Kv��_���#v�/�kFJ��xǩ�'�"�k���ؤ��0�Z�ث
N	Z�^u
F
�L�6��k�iX%�{uߩ�O��_r>��S��[Sv� ����\�����`XK8����ۜ�V���tlI�B��~F-pB{�.c��ҕ!�YD���3:���ڄQ-��ռ褸->%j��$ó�ü���%<��b�[o�{��\�$�V��Q
��8��cKo��z
u*�Q����q����ߋ��]=7�q�^��C���-o�]�&$��b:����
1'�
g_S.�_�O�U�r�o����o�
+|u���LW��3��o���QҁZe�Ӓ�Jxi�@��
x����0R
�'�烓�ڜ���q0�����{�vw����M��
�vU�,Y
�^
�Ĥ�aڅ��K����fn ��{�.);fB:v��+���qI�����z��w�)�0��?�U*�>)p��0&�^
�e�J<�������z �� ��x咔���֫M#�eUK��t
<F=�-q��!x�.�K-�[��)��\(M��'|*���>I���nΏ�y����rU<4fS�������S��1��=a�.td�R����3%�^+�S�E�
+Z�"�l�Y�sC-?�F�zA�9�)n�%��ā�Q���r�7Ǚ�yJ�Ӝkp��0���
⑨VX3���^EL/l
+i��
�y�I^��L�aV*�ut4 �(^ڡV�w�脭A
�*��V�ƨ�1Т1-�6i�s�q�\�>�yz�Q���ǵ_��&���
r>~ohGa��ӕut��:Nu\�_w��!&�ٜ�Z�1Y<Ӊ���v�ҭ@�rf�
+z
+�gkN�ڞ�R��&~�
+�������Q˽a�~�Y�$"���
^x������>�<�V�Em2�*�XT��˄����ӗp;�γq%?ad��bj��m��@�Y��f9
o68ͫ
�-�����j��S.ɂ.��u@�7�ŝ7���>s
>H8����k�C�
������c�.Q��#�
���4
u
I��۴:(��u�RQP[�}�̮�xzn ��X17�kĬ�!-��Q3�pm����4����:�d�K��?N�V
��C�JY�."͎�O.�3�|�xĢ�b>%Ԫ�
��s��	�k=�MHI��L`s��q���p��_� g������={��|�9p?h�R��9幙�{Y�1�s'��w�j��n�x�-*�A-A��ޥ����U�����H��KH	��E)���$�+�ʶx�N;�i;So��*J��R�ݝ��=!�(��
 	1� 	��{�{�ۙ��|	�d������k�iN��&����T�\.�?��*;��ͺ�r���
[y���>���3�7���&-
eP�"�.�
k9��Y��4+�1H����e��� �(�
��I:|}�!��}O|�z/=lw�
��$��jr����n���p�)��Yw�1�
f
����>e��5�o����'*z�O�#A>d��`�)�b�F?+ac�e�?[툷Y�:��`��ę�r��9� �_�A��u
AO�����b"�䔸�1r���?���?��؝ F�5�X���6���j&�Ԍ�Rto���Us2#�?��$
L�|�eh�#9
z��N��9� g�'M7H���=�X� �7�I>Rc���P���l�s���C�
��cY�9	�ww(����#k�ݗ��	%�H�'����}!���PI�5*(	G�iMa��dN��d~���G��2�x*™��>���ƨqG ߌ�L�:��p�������0��s�$�
*��?�dدi
+�P�	۞���M�ǚt����>��!�z$����X���~!~s$�u_-Lߟ�.�U�Hz��m <p0��T� ��
+;R3�L��꜒cmz����z0IK:R�c
㄰�A���0��`Z�8ˡ��
h*�@'�m�<�Ur:��x
+rռ�gҊ�SL��9Q&��A����j�z��9>��<��1ׁu�y���ѫ��}
h �7T���g
��Of9��iL��H���\n��|N
�r�?W���oZx->�xZ(81�E+�1�
�(Н	�'5��91�#!�[�=-޼}
+�ݩ`���I\��`�󾌎0�uSB��mF��~�<QP���pW�`��R[�K]O���()ޤ���Rߒb��"p��%���a��~�7A
+;V�׊2t�Ę���I�� h�}��
����Xi��;
��NT\���`Ey��{��|�Vg�+]ģ�QB܉�K<�Qbu�)�
/۝Q��n��\k#���|���
N���f�;�D�h��=I����T�#e�LO�5CC�3CM��e�Ͱɦ)rҞ

�7N�8��;�\�^?�;D�8T�y�jH@�p�G澇Y�pCB��
+�G�����t����!�
�y�3
��/����N[�ɟ����&�y�R>�H��
�ɉ�*Jҡ���k���5+���� �HX	�)#ü��\gS��5��4�JF*�c��Y.�t!��H�]n^�=��3�e�3�"�3�$&Rݷ�c���a�A��tc��
	k�,�>��W�(Ӆ�c,���9L��
J�4(D�-�����Q]�p���(ߨI�5��P�! MD1�}��b�Qcl��(��?�x��6jHq�:�p�9�o�*;ԖI��f�-�����}� �7iy�
�l����7������.fU
�H	GjZꉖ�
1v��%�'i�#X�}s��l^��l~��Lz����<��#�5��=	y6�]i�N�8��Qc���7�>�	�T�!��#M�ԅ9/�Am���9'<
+�(����
��9G*.ќ�'�>g�񯅌�V ؑb����@��U��Q�qb��8k�e�)�~�Tgdߜ�܎p�Q����������돧s�r!hS������lJ0>�}� �Xq��Hkw���E�IQ ��/�����\NU��_ �R
�(
��Y�&eV�1�k��}P&	6�TKJ�����;
rϦ��#��`�6����� 6��L��T+�����-�h�*L��m�w�y Dž
+�])���������8ʥ����g^�����rP::Ӈr�Mpp;*�[�$��>�7�)�
�Ɖ�}i_�:���iN�
+uc���5��;��LV�O-mR
V1R��T�y�W������Z���ج-�Bࣉ�;�ؠ#�3?����� rŨ��~:��|6�&)�*&�@�&�N3��g���9��^��·Aܷ�D�G���&rrwǿ�dߛ��lO
+(Kc���az��Ta�h#ô(�`J����*>�d��s��_lҐb�|����8�ϩ=�a���{JB��
���G
N��Ê�Ζr�Og3�NA��\�i>Y�O�؍����D�|�4
�a�u���:��N�t�����9��,��fx\s��II��Èo����

+��#��{��.;�ͩ=��k��>��э*.�h:]
r�g z�H&���|_/�bv�\
��/�)�
� v���=���?Ӧg���'Sl��/�0�p����lv���{ ><D9���5n��
~��;��.?��o8Ug�)�rM�"�y
�ܿt8I����	!�$�eE5�cbƎT�ҏ�Q�R.���4Ŧ��騅�=���_���c��$l
�B�ښC4c��

w��{�渘�1"@��
+<ĉ��hCy��.�
��Vka_�db��փ�8R�
N�r�� &���*��"�>�AJ�~�z�� ^���{�0L7�hE"��@�,��9LF?�'�;���Uf�fc�
+!K?��
얔��5�Jݘd�ֆ�?Al?z�dcL*
�l�K3��� )`m�

�H���{���g
��?�A�Yy潵����㙜
+������ o�zpAsM�gS�G�l¯6�l�E�Ǽ7=�����|&��'��
�#
 Vw
����gF G
��	�qR�̓Q�.X��
�
+��%�FU^��b�>���Pt|�i*���,����`�td_�]x0-
h��
5
�z\�ƛf ��QWXq{���#Mq�y��l1��l>��l!�i�E�gN\h�Ш�*�U���t��J����-c�0�?��I?��i�C8�_�����\����f�S�w ���=��1�'j�l���3�r��1q0����0
�
��k�澗�ؼ�{
��LH7�q�FaT(�j
	x3�i���d>q8�N3H8i�ct�m98s����C8
b�Ҡ&��i>�l^(����g�
+���O���k�T��`��U���#�o��̼}���X���T����/@?Î�"��8�1@��
���
�d�K9�_2Ru�,�&��ƜL��~M�3g[?o�Q���
��:]pj��
�u6CG�w�I2���
F�n��l�7ə�D���R��%���1Z��ѧS|Ɓ�5�3
���&�eN�:��t:���
��+��{4��A��˨� 
ç'��6�O�F����׻1
G*|�Q��7�C�h�Z��U�~-�-� h�S�C�l��s
���Nf�
jH����5f�ͤ"���]9�|>¤H瞪�
���?2�8͈sO�|�\�Ϲ��q&TՀ�f^����3
�[h)�)�
 �~-������g��<Q3�'�缸�dQ��l1��d.��H�υ̲_K�'���4��5J	|�s��)�S	���l�6��c�Y�M~�L�
k2�N���We�4�eFuIᆭ��H�Y�<��
M3,�\O��Z��=^��UVHwԙ�@W}��=] �
t٩V(0 [...]
�1��
c��&�� gP�f�
�ў��ە���(�R�X�#
��H���ྻj�Q�J��E-�ЂV:)[x�C)1bg�
�=F�� ����x���6���
	5��R��9)��L�xY�õnr��7&��Tf��;�Q��
�
+m�5����0#'(Q��ؤ�
���:��L9
�K����v(��
L�b�q�Vҩ��ɤ.��x�qRԾ�y�"F
)q�rf�*]x
���'�?N�WW?V�=ܛHq�7����'��y�����I>�dJ�,
hu
���c)Ƥ�o�'
*p��=P�Ӂ��L��ʐ^[c(�y8˼�&�P�BYh�ݟK<�9λ�s�zI�[���� .<��'L at 7M��
�e|?�a�~Γ��׉�y��ĝ�6�q��?�k��W�)��9�k��8S����W
����>������&<�Z[#�
O�Q�Jz����\��T5e�Gڜ
+��H��
j��}&t_.�&�慠[ׁ�9�u2�Sw<��m��S5\ґ��4���y��
��Lv��Tv�Q*�
��T�[(���v��t��4
�s�K�(��B���J^��bf��
�-�@AM0NRb�TT聂���5�#
���N� 
�;R�bN4�$� �c�a�ց���N�Xj�|����
v����8��6�Ǖf�ۥ����2B���=�2a&�
c�P�%�PJO8������q���Q&b
N���|o�
��7�� ��P�v�~���V?�}k���M�_��8$8�]	����89|s �%�
+���{���\H0Np���
��Ju:��b�G)�>ZȩTH�x�S�χ�OH�;��^��� ��HF���e�e�i���	v�� %d��h{���ٓ�y�	���O�2M�� �y����O��
+���ѻ�'�h���g���*9���;D��ޛ]�@����g�δ
�IIM4���?�J�3��ā79���񡊃=T���4�1�$e$�kgg�OZ�G�MC���yH�4l��$3�HFOZho
�|ռ.}:'�����
�zC�1x�� M`�1��Y@�J��X��i&�
��?Z&�p��D{��0~gZ�̼_�y2�Ux
j�T�U|2#�Uf�B�m��љ{h5�k��
O�yH�y:'
i��&)�HII��e��h�J�9�ʭ\��d�M8�a�3�e����m��7$씥^J�Q�[hTd�l����_L��g���
%�mOz��w%�ԕ
f�)Љg@�
O��;��).�HJ
?�2`�
ӓ��ң�����lN�)��i��?��c������K�ϋmH� �ۼ�lT	��)��s(��rs��[߇�Д��Y��:��H�+�h��>��� 3z��Аl5]�`�
�fg �m>����P_w��Rj����#n���m>�����w [...]
��a?S
{5[��]kE1���
������)ho
h
'���H~�_M%쵮�
h�
����GPn{��/۽����Q.G���	5z���P��7
�a���w���
�X��qZ�a�c
��I��]D��a
|�?��9н!l��
~�m�-�n��ig�;�6��kW���(�$9�|&��,�B�0��ɧJ!�P�F���(3_�9�8J
+1��C�3��1
ȸ(�X:�(�����	6�`���;D�י�
$������N�����Qj�� %�4Ƅ�G����!�5�H��N��q��p6��y<��$�h
e$��a��.��Z��J��-rw�
���
�sF	;y���хq�����Yh�(-�`�
?�� �Ӿ�O��`G����d�p=)tG�6������s~(�%�3�D�)90�y/�`���=�Z�C��M����������i�p��ܓQc�@l�ڈ��U�O
u$��z��4f�Қ����)�2��F	��`��5@
ѶS<f�p.{��8���n�������@p��?ʌ7k��q�8�%ޕdp��;�B�z//y��
+<p�V�q��i{�I?�t3���M:Qe�=�
�w2�� �<�1��N��Z
��b=�n��������D�4Ѽ4%�SE0��V��z�w��0��`���i�0������}VZ�k�Xg]'�g����K�WW%���O�֛&�	�:[nF~0��\
�v�6��8�p5������B�~P�s�� �.5c
��p_��p�GF‰��Й���Q�w�����=��_6Z�oW����lt�}X�"L��]n�ڟ�ؘ�aBЊ�;�	o6;`v�;�wV��ɇ<
���p:~{0
��ϊ��J�V�&Y�֦��֤�Y�B9�Ș�����:��
���&�p���ٓ����ߚהN�BΑ��z6#�mK3��ߑУ��8���d��.��=��vr�b#��f-�0�G
���}t=$ߍv��Z
��L
��|}��:�C-�S�k�{�(��^��f��
)�c_�E���.6�}ϋz<�#孮�X�j�P��v��n���;[�s u���ɍU�����Ws��@{ct���h#���~z�J�{{��[%
��}�����zQNz��}@k4#?����v���Y��
�������Է�Ҹ'���ǻ}� 3���O2��x�	u{����Fp�*N}�.�>���-:)���K����u���B��(��I\���K�����G�ʄ��
(G]/��|�ˤ�we\�������O
7�Gd�
�a�"�j�e��B��R��Ԅ���a
bRP���=���/�����m�@}/��(a� ���
�#A��:0�6�Q��v�Ҥ���K�
��:��l%��B��b5��\9�n���2[��[o�;o��}���0
~�eDluу7ډ�K�i�k�_�g����Д��[nD:m��|��Lp^j�;�V%>_m�z�)���ܘ��#V:�1{#|�~���Bp3k•��w{= [...]
��0$�Frx�����F��\
�u��~�f�P�j�� ��
��q�G\���
J�WC��aa^���~.Ф`a
��]	�mc|�>��\=��TY��钤W����r���Z̧M��N��a���E
Zo�9��`�NW$<|�Z]}��Lp;���;n���3�e;CX����|]ڧ��d�ɢȇ�,�K��8ˍf��|M��rS�{eq��qa��qa�-MQʋ���Tѹ_ �? ��5�
}�
xF�O������:��`
ߖ���ֺ�!��c܀�L2�ӡ�
8�
3��a��듭����UE	���Q�F��oեH��1
�#3a�
�M[�b5�=��Tq���
���3Y[
���f��������
�f��T���0�z�����Ky�C-��b�9���4>~�;��FG��ZG
+ȭ���ف�����K(1'���Jy�-	'e���3S�f�T�f7_��f<3�0��j3곦��!
w��`C'��w� �������jK��\E�Ceq���4�ɲD��>j�I)�oR#V����j���
+o�R
������
+��@
�=[�vXn$���S�k��-�0�U�)/���7�Inϖ�?�Q�
N�F7;b�
�e�	�q� ��Dv��lUڻ&���a^��F�v3|���4S���)Nz�Z�b�G��zm���F���{�3}�m��w�"gk�oU�a�T�!7�9��ya��j����a��H��Z���,��rC��jS��RC����|L
}G]��b�
�X�r�Rvzٰ�nZ�j;��ٗ���w�%'
B,@}����"���[�Y��VQ�r3�k��RY�@Y�H���W�w����i�
�ҊrX�v�f��J��,(�
�?Si�=��;V�{#���.�������K����f��G��v���M	���ތu\i@�k�,W��e��]m'xm
	Q��$���3{˽1��"Г#�7&2,�1�҃n)��ϫp��A~����ю��̉�C
�܌��܀����3]Mp^l&y�J�_l��t=��>�_��}��e��W�?�����
m���� ]7-x�>흢8���0��� �$+�~%��^N��|
�m�����E	���[�W ���Y
�D[��<Ͻ�n&l�'���&�,w����rrV;��g=��;�~W���Mt{��M�X��0,p�s�,�a�;��'��n?��p�a������1!ygL@�� Ֆ��i$<S�<^�I�3
P�%	�c?��MS
�l����uH��t��˭q��Zb_jKCn/Tǽ4�Т�	��t�Л��x���d�ɢP
ya�����1��Q��
+�?\Zm�xNU'���^�b]�f�^����\mź^���x>>/E�m��VW�?�
�Md�ߖd���_��^�<�%�<�Jq�{��
��Ox$�eU~��jm��0?�V;��"������.��;�W����xI ߾���m�ʠ���ɯ�9�����2ܗ~��*'Ռ�_�07[�s5�O�
+�m�S���oUIij�6~�J#p��v����Fr_m�|YjJ�[lH��Vľ��
���7UNs�T�
��H�s�H;u1�RS
+{)�Ox2(�\���L���Ԅ�\i��(
��G3�o�rC��d�ߗ�G<P�x�֑��C�g�J�����#A
F*�����'
c <x�������v]���^~���=v�>�n��^c��Le�[��VK�~�Ƴ�n.u�|�ct����8HY��Z��~�|O}3[�����Xn�S�-
�:h�&��r3�KU���ȅ>R����m y�u���:k43��b#�AU
+�R}��
�����&>�����`挪�OC��Ҽ��FZ�dn��l5��d1�fH{[Q��t�
�~4#�9=���dн-�nN��ן���늼�G�0��n��q
1R��
+����(�z�#�:]C��L|�N	��N
+�=���Av�k�1�i�5�f��{ ��=U
���1/�.����k�"
h�#-�K�ϴUH���D�~1�zg0�x0�C�|�ៗk�v
5��S	@�#�55��^q���4�n�
������NjU������ߓ?���ƱL�V/7a�S[j!�.4�m�~$>�̋}$��=�rgw�7��)C�SQ�Ƴ�V�"�󩒴7S?�[ĉ��<<�����'H�Ta?�	��~�����g7�状�f �<%��O���󛝌�>^��.���!��eifȵ^���.�����d{��U��닲�T�S���э�:W
{�(�{����
�qq$=�^
?�"���o���7K�8���'ٱ�d�Q����p]�J{}n�&²Q�����p����Lܒfj�VS�dX�w3�˅*���a���R�*R�+PK��U�ϳ���&����'e	ܪ��G��"��o����g��;hKMD��6��yM�PB:'OUG��?\k�WZ�ѳ5�o�Ҕ7��)�Kuh���C_F�Sr� [...]
+�N�=��[�2ݮmu��w�
N����1 &,���G��ȋ}0"�[�xc�2���(9�;;��������3_/�P�$?͉~�+�{֟�l���������
+g������
Ui�cmi�����h
�En��pw�U�Pi^�ɜ�GSߡ/$���T���Rlџ3�W�!��R��O�b�j{����T��j
�gio���w�y0�v�]o�sm��3�D������O�u��h!z^�����N��Օ�����o�xq�lv�Q�e��E1���O�sb
po�
+B
,�a\r�<���} �����瀷,f���V$�
ύ�W��|���t{�&�����`��q�����S#W 7��m��lD�nt%�A_�b�z3߭w��

D���T��F����)����g~ �7�顣��5H��F�\5�Uߎ���$#헔��J����xf
�t�����v3��o��8�
V�ͩ�;���Q|�pq�V��K��T��\�m#��aQ��|�-�g����v79X�E��<�T&}��!��Y~��8����s�i@ǣ�%y��gjQ�����Ԡ��m�����ݬ�k}���=�л���m�h[E
�-����g� �H�{��
���N��UqϦJ�-4�C��U��O���~�����Nq�'�@�c��d�~���n
�]�a|��� u��'43}�eǾ5��#9��I�̋�P�[�
���}^��Ls��(A�e%�쎲q[���5�	�.��F�u�0�����J����6|�@
���F-bg��ٛ�1ߐl��
�x�{�S� ;EوuQU�}��aǭ��Bk�mV��֛
)6��Uզ}[�����
M�E1�]?ʢ���dv“�.���,�u0�%X�×�D�:���"�R]
y_"����
�R�t��-�\n����&?����,�0�k1���W�91d��@��Yh+�_wzH� �Ԁ���Ɍ]�d�O����ٱ��Qw{ّ����OgJ��+��e�E���^��d,#�<;��Z��V?#j�
�*/K��;�C/��]��ȏ
���aBی�6*��3�w��~,+�,7��J
3TY�����9���=�Z�.�Mx��VF�a�C�
s�2Ҿ����T�]�=J�_�w����%x�
}��a[��(y)�i03�WH�O|�Bv�$�����O���xz��*��0�AQ��+K���#���?΄��6��
�a�'��]���yu8&�
�0Q��|���3Y
}:,���������Z
���DA�cui��T9$�r��
a�7 ��t3��Flu���#mj��*
+���V&�_j�Gb��
�'9�hk
���	ֳ�qS
�����U�_[؁w�yPm
�i��������2ۊs�I|�%�~�0Q?�J��c����y0��50���'�O/U�ɶ����I
s��~�siV䣥��/k-7}2�0B�%�ȵ����,���U7�'u���܄�4�zsT
q{D
q�W��t�9�s8?�kF�㕙*r�
��w�"��XFН���-d�[��x�-P���oV�A=	����ą�(��6j�F;?y�?��7$�.�b���	~�Az���ބ��.����F< X�x$��v�Y	K�4U�qw8?s{HL^� x��gm[a����.��4���ƉL�
+��J���;�q�0�y�e��,Mz=]���m���$�6�����Smך)>�md����|#��r
�3(�b����!L<�jD
�dT
�d\
uo���ŁN��<dE��m�I	�k��b%����A���Q_�ى;C��"6���R�@�]���/u1�4�/���
�؏�R�������̌��T�ľ\k��qیf���
�I����x����J�
*��=)��3ZTd
�J��E|Ί9~g<�����$��H���t�l�C�=��|#�ƼO���z
#x���П
����f��K�
�f���7�g����J���@9m�QA����u�~�
�a��ßv�<�P�E�
�Kx�%��*O�1
����g����ς��e�g˓^��B�
�<�uq�ݘ�O���A�o��"g�H>�H��^�V��8�u3��^�8�,��G��n�����C�hs�
+���@�z���zk�&��|[��|sڧ�.��j%����:z�$W��Êє���T������ӽ��uc<��b�D
9!��ꆲ.�{o����MXnǻ,�a]����z�k�����|�0ŵ��{w��՛IZ��"���a���T���ܞ��m�1��1!���so�0�vo�������Fp��
+�����u$=V��?�r�v�i�������YN�a4���E
^�8�w��XFu���B|�i�!�:��^V�Q�HZj��/4#
V�xq�
k����T��&ħ���7��16{��}?=�0�ǭ�rb�[8�
��Y)�=�ݟW�1��נ�i�_eU�/%$���0��a�Z� q�4ͦGr���wSV�r��܈r��cF�6���eɯvȵ���4�a+��Z��N5����������w�ϕ�L�G�
{(�A�%���^��t-�j�&��y��r6b����+B�Gs�
������G�t����'=<߻U��;�n�e�
+�ϝn~���|�z5�n
�vY)�]��k��mIs{(���΍��}��v\��������~�u(��&��J+�g��_�I
+��M�"�W:�A+
T��!ro<��9�C�w⽷��庉�� �P�x/�
�d,/���,��V#�d�pn��>a�m]
��Ɋ]�G~QG>V�%��o��-��c6{�(�m�u��R!�Y���
j�c���ڌ�=�M���ڍ��
���X0U-�nHL�bV:���j����w
�Ivk�8_��_"o������c}�>eZ�1���� }P��0,��s26���[y\���nZ�|5�8��x��t3�o���eR�g�w��g+Q��eh��V��� )l����K�瓪QE	�n���yi��X^��>ۆs�j@~�I@�(Ģ�Z���mH
���~<�t�_D�� �OU%��k�y��
{"/	{cR�s��yJ����FYN��$����}���VV�b#�GSGu�A
+~0��|�5�V�	�e�/���oK5T��Vz�nH�����}�e������B�z��a!ns����O
_n%����|���Q?I�R^�U�
�聛-���6a����/ͅ���&���d5M�Ѽ�gC9�wS�D��N>�h,��щ�Y�M�הG?�T����gpN������{9QO���O�,�L��6�u������p��)4�m���/6��͵��ֻ���촽aJ��4��\5't��X4U�
�d$>8~���s��p���ZY��� ����n�'�]7Md	��$��N+
p��Zػ�^�����ޒp�}|�Z� j΃�!ha����/뭰�`
Y��}]9jo8���a�
�e���3$|-@�vSW�I��� ���,�^���
�c�;�
h��f��n��b~�r;�m�	�e��;,f�
ӬU�I�ڒ��zr�A���
�P�:��pN���.V�A��c�ge�u[���Pۑ�����X��Q&��m��� -��ܗ�,N���:H2c��#���㣷�ԝ�t�n��
�=i����X�b?"�����+�(+�x�ً0��͜�K패���� ��.V��a�I��<,��1S�h��N�3��ou�SW�X!K�����f��.��X{YE��\�o���j�%DzK
���5s�
gr�X�
��}���5L�E�6��(��^G!,jw*��2���z��
���n��J1v���t�	tc,��*��� 1p��
�=T��ޛ�\j%�~
�T|��@?
P��T�.:֪�x�*%�Z'
~O���Z����1�gZ�N�䇕n��<�F6m�##U��	���:i��_f+�^�2��x�}F���l�͉
��JMz�J
?t���4��XNe�m�
�������b܇����¢�
t蝽�
��;�R�zk�"魮�3]�
1�E��.b9j
+��K?�#t�9ȥ�����l�^"��8�h�Z����,L\j�~�lgF���t�Hy�n(���φ*K�������⨙���:;n���P�
�.�M�p=���
+0�V:�i:��BL��l�L��G��O�׍��w��,���qOYX�3��I�?���/�膄HU�V]��l�n�ֈr�j#G�ts��MPy>�q�,3\�ZL׷��k�!cYq��

7(D�
eA��hm�����ǎ^�m��S��b��_�Xh&��W���;��!!f�K�Z�
+�\����ȡ{���f����U�Ok��q2��0�_�'���
�n
0�&22�����OZ�Is[hN����Z�����I�p����ȇcb��r=/y�� s�-
7[Fq]�a�nw�f����9�V+�$��v��~�
��n����w�ݮkk��vF
+��5�
���n��
�4�b
�}��ꡭ�y�Sތ�S^OQ<�%x{�����7�ʄ��(�h�x�4�ߴ�M�Q֣\�$Y�mEi�A�WePs)s
h������x�}ez�Q�S��+B,4Ѓ���5G��k��=_������Wk�x��G�i �M�	���ki��I�e&��A�u�-����w���� O���v���_�C>?�u����>A���F�߱J�9�9+�̸�*⇾���|�
1�i
�����v3
}���w?'
�;�
�0�����7j��o^,!~V/Η c
cB�f�m�8!�]<���ꥭ��,4	�բ�,�m-
������K��v��q>���9���q��%��
1ޟ�|����������\%:��t%/d�#�ޗǝ����ki.���y��y�nm
“Z�F#1�n���~R�K��=%�z������B�޸�x��<'��J
;除�x���d��rve�	�U����,t0Rw�r��-ܨ.�~�t [...]
+u�p��p���s���"%��Of��%0�
n��E��\�����pi��
�5"�m�f�:��3
8e�a�
�--�ګ�
�
+���,��L��J2�������K�p��>��~����
�n_���u
�����Nq��2���
?S7J��4�؏�ZU
�<+{e`I;=h}�
�-a�l
	Ћ
�ęf�?푕����WN|���k	�vW3�|-:9�w�EQO�
�p�VT��zf��K v�U9~3
�p��w!��
�a�������k��w�@�ݽ�|�wȣ����YYB��ϕ!#�K�b��[R6\�Bt�5����-�t�bB�UqJ�%n\����9���@�>��ھ��;|�8�|���7���9���G���.B<_�\���\n��Y	�G�r4�ZU��(8V2�yI�˘аs�..�Џ�!_--!Ϯ��t�
���cȇ��!7���
����"�U�LJ0��usa�Օ���&N��=?R!
+��aٕ�~�p�q�k��
��_�ڽ�D��$|���XCl�[@��xܹv
��o�A����

�(����B��|�kU�
�4���� b'/
�I
���\��b|���Ƞ
ho�sh7G�����	�݃�����.C��q���U�#�<no
^,Dzޞ(I~�܃�iO���E�D�WW��tfa^�0��Ы���
i
ΐX�w�W[�[�W7o@�n݀<�q
r��ȥ
��ŹwA����m03��D�5Nfe����=���j��
1�H�
.&�/����}�~'z�������s���M�ӓ'ϗ/A�o@�\���{r��ȅ�A
��
}o
�D�ܔ�?϶d–��s7���23�܈�b��F�a:�:%�����[+���ېO�
B��=�< ����E��Oo݅\�����;����
�$˱���
�o{26�tN�m�d�j�y	S�Xy-�m ��M�z���X��n��
������AN��}�&��˛ ��߽� <�.�C��RT#�W�^�
1�1������%�&]f&�.#.��B~s�~w���[ �Oo݁�z��m��9<�z1�l �꤮�~�aA7%"��3
�h�I
�)�k)Hw��A�8�
�=���=��y���=��߾�|~�
�� &w ~�m�y�Z�F
q�YI{�)Hz�idJ�)߆���F
+؟G��y���)�{yD�
|BŸ�v�'+k�ËW�g�nCn������m�Û7!��'����oO_AP�AWJ�񯥅7m=+@����g�w�
j8؇و�?s��Wsp��H�Q=��A^X܇X�<����f����C��k7!��|=�m�����Ž�؟�y�2�KZ�@���Ϊ�d��~F��K�8Z�
h-�}�#�,���~syg�l�h�b���񟐿�
���Cȭ��C^�{�w8�g��B64论���NJ�o#{�6��T�/�r��&>�Y
��$
	���8��3$��
���b���
!�/_��`i���� /�A<�^��q�t�Mk�5�Iە�y;J�`[&�lIxȹNZ�@!�E�}
6����BćO�[P��[��o�q	�����[W����~s�1�ɝ���O!	�n��C}o�ҾN7�"��J37��sյ
����x5ͥ��z�y�������SK�C�[^uq
���?/�{��`m=�X=x
I�p9�
��xy���w���ۖq	��̹�l��HA�tw&�U�����
���������
��=���ȕ��C
\�
��}��G �`.C>|9nj�����z��B9�}�y8�,k�gض�r?��gz��VDƃ*��U.����;�+�
+>~�����+��˯CM�V2�;��������mN�箎�LdE��\��<ֻ>�.�}��&>�NY��)S�So���R"���C��q��
V�q�#��Hm5p�a7�L�\��.�r���Te�w�XS!:
z� �� 7�2��K�e���#n�����yD_txk
yu���{��7�C��/2¡�q�cř��j��b�0i�/��ܓ�W4��Yذ[鰀�]"�uW&�S���6�αd��8^����
`��� �,m!.�>����t>�#�<,8����E�}����ng�Vz���!nO��g����s3�G�E���Ԧ�T�����ˮ?����
���
���[ȍ+�!~\/bc�,ɪV���)�:k�
8��Ņ�"��Z�MG����f��G_��ֵ���CmO9mh�ij��8�cff�l��,���e��,Yf1�!i{�;��Cޭ�a������|`����{��QN�R�a	v���]UZ�?
+^�}���
 �/�{棯?����~T���7xA�Q<+˺�AuI��.1�<��0����ؖ`8b�����,6U6M͜��
�1WYu
���ʿ���|*(��퓗�zv��G���}��2��ש�x�����}Jnk��уOڙc���N�[Ԏu�M��r� �a����މ��r;Q���E�f�x�Iٻ�AJr�,z����kW>z���gW~����UiV�?�5M�p ��
�cE/�]v�<z}���Y�
@Vz
�S��ߕv�EÔ7�X������>x�?������m�G�i9O������(���a��v [~�c�M�<�]Ă�Tt�O���d����_�!m�v��S�4� ��|c
���ud�?7�8X�'�7:I^���sv!�ѧ0}�a�����T2a61�sѻx[�[�;���`�(-E;���Z
�m/M�w��Y�>�u���p���0�Q ���v�GJ�q
�-����xb�)���s��R�@��X'i�;��
+�tO�b��A�0ÑNM�Wz�s�y=I�d��NP�׃P蕍v~��B�'��J�z��NNH�D�uLtD˥����9J�i
�����=\�-s�z�hg�t��Z22P��3�!��N[�1_�Q?��K��=�Sl��i?ec��+� ��l�KBo��������\+���,=+a
o]����sU
���^�˅���š�����

�����
4c��y��%Yf��v8Un1�Ы"7
�|���߫�
�h���Ʈ��F��F��`g
�&
l�U<BL��f�ˊ>���\��e�Y/�:y��X�;},���z�ue��RN�›=�A��;l�[�lu�
����	�����U[K�L5��AV�����8�Ѱ�2ѡ��lVL�5s���J�
��'8�[��Q��p{�j�]j�hG�\��\��&?�"B��);
�wK�*�H@ �h^��&�/���{k wu�]�ç|�L���8M/�,.
nL
�	Gx��iA��J?�!��{�
��<4]��<s�P�$fbrNv
A=��##V��
ž�ն)lo�L���27�rEC�ҙ�V��C�ڏ�\!�qi�9L�y�ܯ�
"6�2yj_�&~8�Z
�F�a}ϸO��܀6��b���M�z��|1A%�`_�8��t�*"�+rUB,*�аA��3Zr ��¨~h�H�3�t9
�]B(�^�&� �w�Pe�Vh8ѷsC�NP�
�.�1��UE��&���Q�����z' �b
26|�
w�:h%��]���q3�w۳��õ�p�,w@W�P�K���R�W�n�(xT�(�C���D?$:��N4X at Ey$�:���d[bֆ�픐����٨����%��zd�<��Ѽ��I�[A�96E�Ul�K�l1N3
-���dj#��5�Ӓ�@��xe�:��~8_s�/�睚y���qI9���s�k��U��+�&�䣓{�n��<!ͼȭ�v�mRz]�@A
鹌�������x
D��P�S3ЁM~���z��x=�#5���@����V#�<g6fޜ�B�vd㋆��V��TaQ�vD,pX�[ݻ5	�=*tM��>
�
���1��\h.z��.
0�JZ�_�A�K��m�=Rj[P�=�=�xk��e{���C��H(0��C����iN�u�"
+p�r�(�ʡYaQK�W���`��ˣ
+&4,c�
�8�����-5?;���g
-�Q�St]�|wng��eX��6,�)ž�D����n
�b:� ���w�@	k��%�<bp��.�k���Ip��m�Z�GF./�c� �i�[iK�
U��9U{Ͽ�b����l�8|Z&6l�::,�'6��R��g[=۟oz�~�7Q��c���_50TR��b|�c��9�|�-ƔhǛ�j�oۗpY�utV at I�
(p>1*7������w1�4�X����&��Tj�bL�]��vK����������
�}�t at .�z��\�R�c�J���v���\"7,��
��Q]�hH�?
P�
zeL�e���ɺ��y�+��D�	�Ru#�<�v�C�#��iӢ+\�
	����
+t]T�9�VrI�q�K��
��YaUgwD�N
�(���L��-9f�r�>'�1n1
���}RJsH
�C

�c=}�\$�E�}�!-	z���bo
� �c��S��e�H��M^;�-~��{l
Ŷz�\��Q��gԣ��KI�.	��+����,l�DC�uȟ�׸�h)Ш
]wjFT��Z��V�b�,�OFi
����r{����Xh��
_n� ?5�=t
im]�X��1bS�jnwd�{���`�?�,����鉭�+UwCLC� ��C����9�3�籆
+�p%
5wf+oD4d����:M��#:*"de�b{��#+��&5��
nm-"ZC�]��8�D�o>1�k6S�1,g���m��uDMlr�(
���K��3ֱ��A��'��I���cظ /^�_tIQГ��e�W①������yH�G�o���]�{�B�V�9I˿�XG�0��^	�8,'T���l�J��p�5��!�x��� ��Q�[�Ǝ���gҭb�]l�g���o
�̾T��)�����I�8��`�Ru��
<1���>��5x�}�b{�鮜W�����c�\�\D������'���ǁux�)�
��?vX��M^gDC�����U�R�
WT��V�{3��>��Q}W�O�׉e���G�dƉ�����p� &y]x�p
+��^�e��L�GDo b��%D��d����C�I�(|p���֜�.!��r^9��+���d�L��5ɱR��-��	I��S�.�3���봻�
�g
_�ZiK؝��i_���SbJ4�
,c�䨲{(�C
+.�+��{�j�:��O�ʋ�
endstream
endobj
216 0 obj
<</Length 65536>>stream
+������r�$�es����L�Ssb��뉠����~1
~��3�U0�uF�O-�z�K�@��{bd��<�"s��	�=��2lQP�)����'���#
0n"�ቾ���s�u����`�t�ژ������J��,�
����;����N�
�S"���b[�y��h~1��,��6��S��W	%1S{�OM��_wq�a" �U�¨Q
�`+��y���{��� !��%���b�
U�U�r�zbsl����i��C
�9�#�tb$��4����K���(xi׎4Ė���;\���$�^7$t�/r���ٙ��ޜF&�’����\U����Ԅ����3��_�nuLD�y}�V�q���S31�YdR at N���D��b2c.=����:.j䏞�t�����5������
�����	vKI�쐉���P����
��]v�SBw!ޝ���\���u��sh���g����`�Eswم���{�ed�
��:���7�%Rձ���^�œh� ��
+�↗Υ���mq�����۬���
q�QyN1:ׯBDT��Ua[D���Ͷij�o����K��
*ѷ<_Ae8f�]v�����I������ɾ�/�]B���bR<�����9��A]bRe<����s�����X�W�;ֱyk��	�e� �g3 �A�������DCl<Q#r#�����m�ƶIpK�u�QT�W�#����!5

 �:��%F�g�	ݰw�wf�5���ሡ�'��W���
��ӼbȻ �-!`�����<P����]��;�w�x ���TB��됔���<b��<"ɵF�>�w�� ^/�pB
+&�/B
̶�
H(��\�
6�����w���Z��&Xt�hq��Jw��	��
#F**�%<��@�|����F���
�g�3�!+��Z���[ږ���˨䈒;�
:�J.%�b"r`��������ؔo�p � WYe?��?���S3���6�ba1�j�p���v�6����J�h���њ�#2���H�b�{�퍱3�5���tK������)��D 
�j.կ��&7b$���I�p7
+�_D��Z����*I �P�����b�73�5�y
�t�0.o���ı�
9ֽ�k!�
��؈i�}�}4�eR B��Eu� �d��*jkLMn�,�%xdl�f���� <�R��JhMa!�8���>m��bѿF(ޝ����|�ʻ���[���p�jw���u������3���4r9�"L�,'���
(������M6
��� �#��
O�ho���R ްj^]t������,K_�MSW�%CG��z~�F~�����'�5B�b�\�������7�BJ�G�DtHXA��S��Jo:ך"Z�/%B �U�F�
�V�2cjhfPޖ�7_�lw��YH��5}Sn9�-��c%�<"#4�e蒀[��2l��dm�O{��\�0(�:��"$#�:W�o�n@�E7���*RsLC��k汁Kx�x��:<
���v�{�o�
+
C@��Q�N1i� �x]32	��#Ɣd�f��̻���:3(���kB#Z>7b�
���
.1.�)���O�����_�������0�I��+��� /�31
�#
+
"d�GF�;6��������7��Q�9�jKq�Z^ٖ[�8��^�֠�^!*+��/�3}bE�m>�ڱϲͶ�
i��
+�[��K�$�콵g�h�?TQ ^*�)�xT� �ȶ5L��
+�ؾF�u c7��<2tT�p������w. at 3����i�K�[{j���l�i�.�B乤�����'���߶i��Xe�hz�2�w�mb
���G�xPP�؛m�o
���2�
�ldR��T�O��Xi��V��
�%�ۭ��{�
\�e
W�b�z�Ã!Ew{T�!������^�f����Z�
2շ�+�����#�w
Ӎ��5w���3rN�Ǝ��˸"�P�#�P�C�
+��!����Lpȷߴ�v�S.�(�eo
+Zp��U�4�
��Y����ŷ7�����2*��u���
S�

����Y�^���_pX���5d�c�T:ê������̂��b�)&�
�@2
k��[�E?��/z�[�v@o����t�o��	�a����g����;c�Ղ7_�T�
��
�
f��4�U|
󩚉:Vq�>1�¾�H���^��y0z ꨼�+y��yl���P���uw�+�.6>��V��;]x�H�m
+�0�<;Ľ_B���B3#���#+	�˯��tcMw���Q=s�
��Xi�C$�WQ�%�냙��r^�uCw�/�: h����+b�q�X�=�����]3w|XhKvε����9���h�K)����7΅��������>i��T��I0�ץ2�woҰ����
H�[K���o#
+d��Q�b�S�24��N�9�o�zJkP�.�̓vg�ɦI��1Rѽ�%
+&d�
���}`�n�+U4��sd�<XEe�b
*>߯���RkԽ�W�����%L��d�#�J[�'�;���\먂����Q5
�0���
��8ƶ|�`%��_ot#uw�k�"���)h�=�zbm��ȑ�<ϳ����p����O	�����!��v�Td����y�5d��<���,4�'#֘&ڞFy��z@��
P��!�:�a��
+|�OOߙ����e}�;���:���9N�O�=���0Ps�1���+�Mu�܁���<"�ꉱk�/�`�RF[ ��%h��,���B�Ә���hx
 �JcZ*�����v,�����6����z�o:U[��
9��s����
�
���D�=C�i{��Zޗ������ջV���+`�o9V��	�! 8CD��
o~h驹
��P�f;�7���/��/���7���#���:�
+"U�_w�6
{�]�溗p9�|��4���$�3~�n���*�T�6v6=����b^�%!!�S
'��*�g���{�1�TKF̲
+na�n}!bW&���l���ձ��]Tߐ�9�w�8�r�:^��[�-=\F��L�W�iM�P8W�����)�_t�?�X�˻���W�BӮ��S��,��"._'����~��|#$��|y�����K@
Cm+Ԛ�iL�{_�Ӑ�
laH
��` ���TDTˡ
�9��� ��ɠ��p�#4E��(೼
��vz�/�FK�Ĥ�
��	ڙB&�)�ut�k
�c�G�
LA_h;�oXG�߸$4p
��&��ȦFTtȱ�K�)Р��vl�u�������Q��y�4��2 ���N���
���B��"�;�B�#� �i0�ʩ��y�%	��e^Q�ۀ
��X���� ��bp��"�-�[�NQ�OqXa-
��`�N��\�4c{�4�e2����Ц�;biۇC�KuT�s
��\���bKZ.�
x㠎Ǎm��r6ѻ��r.��z�~��uYdf��+��O}o]�s�c�,�h
*�i�k~.�e����|m�.��DFE
ۻ�"\�
��8

+!)�ud~<'ޛ�l�<>K��tý��:�dQW���S���cMw���&��#��Y�?����-,f"瑩�����β
���kZA�]G����;��mٝG�oM@�
� -��lજ�m�ֱ�k�7�lR
�0M!-���ˣ2
+�D�"��ȥZ��e ��<��'����[c��
ݍ�x�Qyo�w�V�=
+y����7-��G��'��s�9f���Ի~H��C�w�9� ��ݵwu���]
կM���W6�G:R��@޹ݩ�_�Rp�m�)��؜�Q!�˻�n���ף���s�HOG
��^
�@_9��*:$�–����̊��e.�2
}�A*�n����\q^�)���Wy�p���L�(yq�c|���2��w�ϔ�0�ӿ6u�q,�=<ݤ��Zs�^��������Ƣ:\�{���VG�Jb��2bʿ��K��H��QpV��+�5$��NHC�M6���
l�����x.�%�C��ŭEr�]�.�m���^�a�f$���Ao<����N�	 G�i�
z�KH*˩M{cM�t���Jz��K����<��5��}���Ogh���e��ͱ��=����b��Yoy+c&i
*��Q�A
�P��p9~%

�1������ǀ��)E	�̯Ɓ�w:��N�[M�|s���N� �AW
��8��qI)uA5�}o�;����~xQ9�]�U9������[*^�U��α�HӶ�7u���� f�_�4�o
��H�f�Ō��yBf|�wTŀ�I�[$�+�p���>\nx�XF��Ut��
+��0�s΁��\dT�F���
 .o�3���e|z��/\b��,�T��/��=Kج����{�
��+�$mw�97�{�H�S]{�s
�j��a�h
ix�=���識Sn_�d�I%��:G���B*J�i��筑�+���ˀ^��]'���ٺ��k��w!	�پKܛ�<�p�~�iL��S��)X�Y�,!�S�+���'
+Auⱒ�d�+��z�7b����>s�T���a+NO��
+��ŷ�uL���]E�=��sc�f�GU4�o[��#�T�+CJ&&"'T7PŇ����њ�Ʈ�;c��%j�^���;�7�er�k�

�b�KȜ�	x����v_Ëɸ�o�b;(&7*�i��Jn
L5'�7�G:&�'���j_.1�o�5�_���� ҝs�\@_�9f
3�t������������
���n��C2\��tï���g�5DAD+��ƈ� M�O۞���ջz����U���t,�ܳ-�>860h��\#��L�_L�kK��[��&Z�}�FH�jw��ޱ�P����?���Ԓ�?��r^�ߤ�B*T��l㓈U��3�}倾�7��'��CP����Y��L}���A�o�Lvh�%�`����p�E�P�OU[aX�k�_��k�
ѝ���{����
�

3P�~�>
+�UD�D.S*:6q��Z�X��D�F�
+�}��k��aLNmq.���&�������h�����'^!�ae���ur�m�Z
T1�>%�,���4�I�#�oˊ� 'F*ЋDQo�m�6�H3�x
h�c g]+�DmG�y3�;
��n
+�I�{��,��*
f꯽3�~��
+>�
� �{!-��uRʗ�M	�
\��\�3�2*�-�C�b64,ŗ���5O����s�����S#�� Zl��{�b�|B@��Q��؛��	[�f��,lO�<���
+vH�N�E	����Z|V���=���~�����T[��X�
����%\������
�AG�Ǵt�i�������3�����t�b���o[h|�Xt�:(ὅ�
+�hH�WT�A�^�g
�n{������������`�-�
&��%�<�ͭZ�[ҁX�y%�z�r�#� �Ǟ��_��n�CB���"$e�=-�vG��唖c
��6���� ���J�
�V��
+޶����M'����v�
+A϶��
5%�M��?���������t� 3BR\YTIn8ְ0!�ԯ�؅���hI860��]!9�u���Oܒ~�������շA�ޟ���{jZ�ȥ���mx�7VsÿZ�2�֒�Y���<�2�
�Z��ׅfj�
L�%߁��
�i��?����뗑[4}5?�%4��4�
[��Q�� ����߄�ؚ������ڐ�s����v
��T��&�E��㊂J\��M~1�F�Q~�&%T)A�k��#
��\F��
��h�*��9W���W|ٵ��
+i�}���[����y*�+�
��Ȉ����k=8.����:����c
+��	�}�u��eDIžnvM
��S o�2B�g�j���ڝ@'GP/E����	л�|�*%��%t|��O��[�
�ҳL�
ˈ��>1���D;��~-��k�kw�Fӿ�v��z���ӐS3�~�oO�=?x3
+`YD�B
��Ů���s�w���7�eL�:�����UJӡ�U�6ߜE�|6P��o�������+�
�\��Z��j���\��%�<Txc����"9�˰�-�����x���
Yp0�x�p��QD��8�0hG[LF�;{��@���j��ڞ�O�>ٛ�����|\��
+&C��pc
���g	�
�[U��Wݩ���nLcS/M��] � �X�4���g���/��c���:��9ѱZ��/4��
��4w��
 &<��+#*
ձ
+O����b
���N-:�^�����s�YP�u��%���Y��!��@�f���G�~1�T]���]��}�d�":
�&�TԶ�M^��ۼ����l�-�Y�,9��W}ͽ����M�aؓ��C愲;Z}{����ǟ��I�R1����B����=�C�����p̢K?�F>��TՉ
Z�X�xd
̺h�:�a��?hXu��<��Tyj�����::�$5�ĭ��3�wݫ�����y5�n�����;�,
RX�� �ܹЖ0�H9�/���Gͥ
����JR�_N���I< b�6���p����H�O�UxA�
�j������#f�l��L�**öOr�I^2'���ºމ�a`-j�=1�̞���,
.�ȍ �nZR�+u�)
>U;�p�'����;���_4��s�õ�
��,�x��!���YA��4��`�Y����>���\�+�\�ݨ�P�8p�R��Br>ï`@��
�
�
�8���8��L��0�k5�fa
+&<��[M��{u���mN!4�4R}g��ؠ�
��@���K=�Ԏ�'%U��F��V.(��諺3���R̪{�Z&�[F�
�
+/��_n
W�1�\q̗�96�
+":L��"<�p�u���cz�d�I92�	!�/�d�<�D�M��-�#'�x�-Q���fd�-�ݹ�;���}9��O�ݛ'n҆͡�)_�
5<8Ҳ5�T� 
$�\bh�e�鑲����xN&�!�5��uL�c��{���XA���4?��k��x� ��CH(�;���FE���
�G�x9f�2jw�/��wm s<D��LꉕI?�/�kg����
+.ӽN���I
^	,{w��m��`��q�v�c�-m��wmV�;��^��ޒ0J�8f���
D����S!{�
�[cE��#����|L�a�ς�fʯ�ϕ��
(�žؘ���S��`̲J��
+�n�,
�ڻb*j�k���SvE�ͼx0[��]N�i
+�,⃒�������5��\�;
}��ǻ�Ȭ��
m�h�x�w
�پ�Jw,�Ӝ����x���ҋ[E�e��o7����O��\�y�&��ߟ'e��S��Ԍ�,TLD�eG�<~��.82��[z��}�ޛ9ܘ��iy=�ҥ�Whfo'�܋�
+�
!OB)>�W��㞊{�R������Z%�g9��ҟ&�����IA)V�qa
�*��T�e�/�D$�7����9C̶.�
����
=,�-�w
�sb�
�1�#Z>'f�
?2
+:�.�@�����M�^!��/b�
,�
+Ĭ櫓��G�2Ϗ��~>�����į�gM����r�zG��~dƙ�i|�OԎ=�G�ۗA�R�k���^X
/
iH`��
+?���ɭA
�6�A4�*����((Ȱ�Ű��9����Ql�q^��`�x���A���y�9X��$<Aį�έ���4,�`�n�h}�ZCe��’��w��^�E�, q�Ѷ����[ �s>�tL���Ej���xm�5h�c
��j�S�$ N��u,V��a{��b�H��Rf����ȋ/�Ew|rh�Q~g���1���*���逼��������"�n��`
+� �k�G�t�}
��k���}1}��a��i/2�ʛ�g>2�T%�a%��������;��ҟX����-���c���_��^�_g�R �-�������G����n�_,Nܙ*�3ז
+�qdb��Z6!�e�b�D�$�i����#"N,8��
���,.
�VzP�=ԴsB:~WT��*�D�:��Hİ
+]�As���/�K�׀�~�못j�ך����\�
���n{r8�LY��_�@����DK⩁�}o&��
�r ���rly�!�3Bj&���{���e�9��w�MA@�9��&���2���y��Ϊ�u����V�\�,{`���b�]` ri ���4��>1��X���y�$���Ƶ��9XB��E��l��t׶Fn���
�) ����
`��c
����=�
�0q�F��������GԀ�_"
Na�f�oE�T���q���>�E�^ٛD�n�5�����N��Q�-���-�q��s�8�ͳ �gw�x�N:X=
�!���?�=�֎ɘE0��Q����'[
?~d鞋��! W�
+b-0��WY��0Yg�|Z4޻]�/�H(5�D��`�e�@鏻�-��딆ev�UiGխ�кj��j�
+[�W���2\���D�U�$l�MƬ�
��P��
+=2R���
�;�+���ױ�[�WA-
��]�3
�1��>�oI:Xh�s���

+�yK��gȹ�
|薓j���r��\б�.9j۠Ը�
�n�z{�Cϔ
x핐�
KȔ�ɶ�#���s�,��E�	K%V$�ߞ���h|c��A?�qqk�����2A�_�ַ��}�վ��̑
4�u�h�s�􉙄>2�y%e������{���\}�+�}o�c�¤�l�{��Os��_;�oVL}P��o|�]%W�������=��]9��,�ݮt����ڑ�
x�+�`��ݱ���
���[[�g�9do�J�.��A�:7~�%��֧��ly�m
]h[��zE����PP��
\���s*�)
i����^�F�t
�?(��L�W���X͎U^��(#{�Y�SG��OQ���V�,�:PqUם}�2X���
<�2���>ߖx��ü��|��\
��A>	"�+��:�Z�ٗe����

�ߛ)$���H`�
q�����@�1����Il��ɬ�#<brU\?�\rX���rq�ah�*�ap�9���("�bw]�w�^T���tk����8��"��-��o_��� 7'h�c��3����
	��SR[cz|cԀ�
�@\��|j�OK�EL
�Mn�����}+c�P���w̿et�8\�0���:�.�%����-�+�S��Z^�#�So����i|֙un�(��\�B�X�
�d���x
�����c��[41I.�wsB����'��� c����{lG

��p��yL�3�Q��"t��|K������4,�%&5
�ٝ6	��<
�
+���U0��2Q~
풑�]@��L�����ߣ��$Ԛ�R���=���N���^&l-2˷���U|�q�����g]ͯ~��p�Yd�%o�4>5��d���	��"�	З�S{�G�-�H�IK��zs�u���W�,
�9�YF�~�֣����ET�fE
4ԑ��ѷw��9%
���@��4����	w��p�����g�X#�6%�x���芮��e�����r���LPvm�Vpy�uf��󝹯�c���k�gEe�<�SB���,r��=0��rr�
���YH��
+*K�Qx%��k
���`\B\�����H��vW=�X�,��T��SB�zj�"L�O����Qy�喤����j���%䗟�
��?X�H;��
+ʮn��^>7^׼�+��Ā�>\���#Kp�7k��,
^x�ƿ\�0,��t4d�L�"��_�}�\�\g"ս������׼��9���W����F��8�`ic�7_L@���`����֝���k��
����)�Ky����£���j���/��b:�t��;2�a
Pa}
+L�_In;��^o�{�:.mg���P��/i}�#�ð�X�Ue8�6Ǭ��=XD�|;���[!��E
;�}��yTCFJ�*��*�|圣����΀���<T⫃ZL����3��Bd���>ț���]�Qs�F��x?�ɺ�%p�O�-�B�Qs�zfk�9�6

�k�B|�8�rZ�e�t���
q��BlڞET�̠�����&�ӯ�Mń{�L�O3�t��&�-��j6�&���:Z����M#3���,�����N�_��L�ޝun��c
+2�|�&�5��!����Q\A�$�c1
���U3)��&��܀�] �
)�{KĊ�yP2�h"�!�kC�A

b����f���f�l%�K7�
J0�26�1
}�7�pk{�ꊜ����[ri�U��[�}įy��s�q0}m�m�a
i��?U�6_}۷���b{W3�O>�c���e�|t�)��
jx�c�+b�2-����Y�ߨb�_�\E��
����U���J� ��&�8�
B�/����ed��h�e�d�Ueg�ӈǟ/�^��HL��=��J7��5�K�Է؍I	�1
,?��d
.6<v��?�(q��:�+��Ŕ��?Md���/+G���ei�`�D٭��ʻ{˨l>���J�/{����ևƞ�KJ^��K���{�~�+����^xIȪ�ɪx��u����PS�����
���%D�D�܃��g��E��Π��
)��6aū�Œ����75�-tB at OluH`��h�`����ch�_
+͈ �
���
����	�s�
)��R'�:���
ζ$La��#�������m�V�3M-2� ^E
�&7�G,��L�G��v(1®�_��wN�;�\Rѹ����l�o
Y�Y�8g[r����EF�q\��9H����2�I�N"��- ��Bb��"^�-�)�U�w7=Z�T<�*:�ZAW|m#���n9���[����u|�v
��
��r+�Y۫��J�������_�{��z`�5=��W�`2H�}�o+��i�M%j����"�s��ڗ���䐊��
�44OH+��8
+}�U��
(l�t��:I	ࠒ1-�V�^%
z�.�n�{��C��vc��Un
�PQ�x�0�D7
+z��{�YP���ר�����i���曛=5��=�7ǩ�?4&���
>��}	�&m/� a�}k
i��?]��O���HE�U<�j�ٖ}�_־���z��S����ޙc
�=fb��co�R2���U��������\�Y@��g�!�S}7䎈�pA�h��#���@u�%l�����
n��<v,"� ��h[�$o�5=��W_�죕(��w����G:\K at JyVIͧZ
+�T� x��,��yD���QE�������z �������eH��
+:��|a�Z���8&�:�t[�^��%�
_�k_|5˸����`Wp���ŏv��⸇��ڗ��[����5��֫�W�
�D�ڭ��<���
��#ql���L�9��>,�-jK~ob�����cc�H<_"
+4��V��[^��������NA�Zf0%������_�+��yR��k��K�P��oO#�WP)�f��D�
����6�|&�_�I���a
+���7�ilVP�����`�f_lߝն\ۛly�*�
+R��W}�8�~�� WyE�B�x�#C��;3
���[\Rb�GN��5\���Ϋ�0�Z.�-rDEǬ
�5j� ���
��ag��i|�� ��":㫑�Wgz��\��=��J��U�Ƽ���TD�}
S���^
����z�R|�W�/5O�^��j�&��<Z.߮ġ�Jl���f:������P�!����my����
+"�2�G~�bw�q�

�(��-ү�
 ^�`	�!��q��}�̵Ƭ;��g��Zn�
+�
nM�t�-�+��o=����9l�%�K�4$) �d�7P�����uX��
+6_?�K�!���^�"�A���a� ^�mR�!
��SrI���(@%u�g����4DEԦ�����ǡO��-�Բoͼ�s�YĻ�y|���}�)rZk���WK�NV�Y�f��"d|c
��m[�%M��ߔ$��|��v�����F��
Ua��
�]�g�gk��!x�����L
㧀g�)	Ua9�ؿ�η�A_o��*��
@���|�[f���e ��2�J�ç˸u?w7&~.(��{
�����(���҃2|}P�-:R������
T���T���ǯat
;7Ѕֹ�G���.=��Ȅi�k�J����KX��bp: �`xĔ����@�U]G�E
?�RP���
ԾnN��~ճ/":�:�H����3�r��Gq~�˨�~9
��ؒ��M��)l���䠁����A�}�}8�F��.�
Mӊ�f���3��M��M5%�g���B�|�+}w�iثm�@_
�sn�
�)d]���
�a����~ ��R\�S�+u)8��
j]@��F�l��&
��6���@�
��?S�����f���
���$8��ުW��|�I]�7[�
	)�?�(����3��:�� ��{�E
1��#!� 8@<ڢ��f
+6�ɤڕT�l��e����n�$�%��Y8��G��񞧭��D�]�'}QP����{N�$�
�r󓽙��5��/;o<(���V�*�ձD+��$����Qi��i_�g�
��S�}
w���|"|��t�
�Hō�᚛���kmO�+����{�Ec�L4�OOGFL
�oV �]�Q
��'a4E�����Ix��1L�N��s�]i�j�����R�-�Y�/�.e��S�~��f�d<�WIk��#S�k�40�:1���hg��Ȯ�M*{uF�[�sd�Yr���;��W��Д��P��j�*T�G����7�;�F�
�G�\�
k�-A��`
������dQ7�I?���r���zf]g���O�۞�}�����;�
+�����T5ҖX����Qo�}�����V�
~�#��L7�zV?����tݓ���h;���Ф�9T�{ ^�����?;���
�~U��ҍC
w�ů���=��p�>�2�GRZKh
[v8ݚ��,�-�e 
,���*4۵Nj4t6�p�!3�BR�o�����b"$(%6K�Y��O6'�h�T�K4�E�
�SP�Z>��a
�3�+T�L��"('7Du��,쭆_~Y��93
~��*�����7��*F���������!�={ĥGNv��ɮ��7A8�T0�
���,��T�tBr&�p���j���$M{��)�/T]շ��y�
+^\�t�{~���)P�?�Ĵ�)����l�%��7�e��[��I����9�ƿ���"�`��Zmbt�e���u��M�����z���i>1s��5�tϟ������N�H�c �

Ml��ת���;���*�6zi�nJ:��}�7Z�8�`!��q 6�_�]�G㯺*"�~� O��"��B��ό���m���
��y�/>�o{�s
��^�������7܋�w����1��x��>���2�G:=~_=��#
+Jcp�X�]��z�o:��n0�
��}>���������e~��^�,@��r�4�p���A~e;%�!6���od�ygי��lU��^BfDTL��'>9�5�jg��l�
��]o|f[,��<
+�Yhҩ�����D�*�2�d��J>ݾL.�<���ឌ�pK�
��3�xy�D�R
+��?G���f��m��$3�LO&m�{/&&1��{。�{�AE���QA�����>�r��<x��A���{��
{�u�N-�h&�ܝ�k��C�}�G�����p�9�tok��u�}r������8�->2��z�|�i��pX3ࡂx
Y'휚�/a��4�9
-�
�}
+��c�X�6?�W�99�(|��
�,����������vR�o��? 2�
�@^��q��5�ڧ���
S���
�! .�f#��]�~��h��3�C
/6���57	��yq�L�~��9�p^�� ���E���ړB���^Z֥�nW�˞#��m��u�lMN�*i
^�3
*�//��ܘ������qj�
�����9F��I*i�ʊj�_D4M�kO>��^	��I��%
$}͊*\5 J�
+dᆕ�6���x��o�*P9Fl�YA���nJ��1^��$+���LEH�����Tۻ�G��_�tt�,�ꞮX�swG�e��
b�>�3�5��Y"�g
1~���͈�_f�}�i��i"�CY�e�x��Wm{Pm���5�y3�|Ԓ��	Dž5��XP���Y�
NեaH���gG5��3��?(A�g�L�}
��7?1�Y~L;KkH�ɿ1�}�E�YRu���5>�Jo����E�O���Oa��@�57�z�Aj�v3Q{~6aÆ�\��ӗ5��_�E
�E
�?��^dw���Zo;��}��K���[.F�%!�ϱ����Vr˚��
Հ�
�nj�Z_/�j
�ik
.
�<Z�5&���y{^b���nA�n�!Y����0�	*ݰ��?�:6
�������f禛G���S�m�����L��S1v��a��3�L�>?���xEG��6���R��<9.i~yj��xc��vI�h�Q�j��ӓ}��U-�eEM�4A��m��M,;��Θ�	 ��}D�~��b������`
�
hy����Z��J��q�L墪3)"����2\��;ʮ��N��-;��Y�wK��S�
`��_�bg�a����d�?����8BE~
 [...]
+<g�C���B�lي�T��f4��4��jp�fl�/���8��J,����oZ3NMt�<v�?W�O�����b����k��+8�S�{^!(��Q4=_�@�gU�W;~t�^������Srpª���%���9�`�O-j�y#��+�1��?�i;��a(a�Fk_w�k�
���pW��Gd�_A���������U;��dg #zX����y���0�FT��Su�ͯ��o}��1�N�(>��	�^|㚕аl"4,���+Fb����d�����ʽ�Ь�����<����
�&,���� f���~^O,mM}������
�6E!�; Y�~x��q
�c���Pa�6b����`b���h����k�
�[�_-k/V4m�b�(m|���x
V���i%�z�	-5S�O�hg��AIK���!~�����6\,��St~���2��o�`�k���U;4g��������^e2d�����?�|���?MRg~W.�Z�O+j��[��&
������÷�:Z7��O��,���|�M���A���E�;7.l�;#��qq�/�g�
h-<g��\4ߜ���[V^��`��7:R�Yg��
[�b�g-��
R���g��=tH�ӞtɎ����PẄ́�iiG���kw��cC�w?Z��N'�=ו��̬�-1�����φ%�G�E�T�w?�*��Pt��i�U]�e=8��كn�魽��_�3S����n����&x�I3��j��?����ck��ƒ���A{pYTQ�|JZ}�ɫ��,}�{_k�ovl�,�O��l��vÌ)�#�N���%�H�{~l�W{�J+�K*yt
�v�G~ݫ_���?��Z����+���e]��O#X���������n��R�b�x;'&�
���c
6kY6u��th����v�k��֤Es⒡3iˍ*�qS�Sð<
����������4?��ߍȪ���c<�]s�
+�8}�b�T�@(�t�:6]� �m������݈�-?�~3�ܨ]5�+���҈�Qv]��O#
����\1S�~Q��&dO
�_�U��?fe��f�Njތ�䖟�
�r6�D̚ռl��� �[
l��(�!��>q��d�6�4�����aT^S��~���N�H�l[aT̤�1>ܞ���V/�Y[^Dɺ�3��x�lE���h�u+�����	e;��������Q~�厏�Zԁ�XrP�
��
���B�q+@#�oS|ݷI^����i���	��
�`�pޡ�t�'�����ZXI��
�����kjՙ1n��١�G�ZT��4a����� �rZ*j�
 �-�P�aq��q~�����~J׎�1 ��5����a6{w�E�
�Bל��1z/�a��;c,Ҫ�X�j&�D䈌	Q���[|Z����T���\|�J��"i}}L	I<�o�?�L��ɬ�
ꃥ����վ�}J��zB�p?�G�
��~��s��1����׳}�� �Y��#��ͩ-3�e^^7�j~<�Wys ���`��c����rj�唇����^�:�z6�m�nEW�����'�<^��b\ޭ�quO/e5�;����Q`���S��:���.
��	
+�.�0I�����)�
��n�H���
+4�ܫA~ͫ��%@�M��];�di�掕������ɪ	_-CV=�Rt��Ț�'�	
R���M,�ZS������Gd��Q!�  d����6J�E
>�������ڳw\��YiE�A�v�tDP�,_�!�c
��1�j�:�}
G7��`W̐��\^Ѐsw�D�
��C'�a��]�H��J`¢
��j�A�T��U�c���,h�M�hI�H�iٌ�a�ۨ���fa���¾��s&r��O!F�����q�8
�3�o��;�6|��� �9�����Hs���+Zd��pӣ���+�ږ׫xά	[c��U+�|N
y{0N�~��ٽY>-&��i�#X�y{#��X�a:fs5�n\�A ׵�D���i��
�� �$!�vL�~�F�b0�M�x���?�a�w\؊U*g-�OS�?��ʮU�`R�p��_��z1/k}��n~4+o}�k�=��vwVάIٕS���e=�z����`�����R�� gN��-O�Ǚ�͘O��(�M
��aB=��&���6F��QKWƺ�а�A��vf��>p�����.J˵�Arɘ�^��?3�눷1:^�{��Q
:w�B��ׂ�� qb�3!���FzZ�
�c16kM�ڴ��c�4=��D��t�?
+A��N*l��
�����@�s*���Xq�ӇM�3a���Rꬽ���5������G	�o� 3�A�=?�J{}�]�����"�0��&�
+�{�Z��g2�#&��
����y�˪��b�T���� �w� ���'���
d�W
��:^N�
+�r�3��(a�j\is��S#�撏c���X�5<�3��
u�<%i~�	�|rN�)$֧^�w�W=&�ޖ	^��lO�5�m���W
wO8�Y��8
+]���
+���i��g�B�g�y��nZ۳m��KdڅiE��!l�C94����u�F(y�8ԕ��@V.k is� �"��^�,ذ2�	�`A����_T�a!���PES�;-<�6��%4���0�pz��Ŗ���
��$�c
�3J'�9�`�����
�B�<ݍ�T��=�s�õ�������5��1
JY�5���V-�ʉ~��qQ��%
(mӆ���P�_�
�Yk6H�U�q��������r�5��~�f�>O�ɟ�i��s��GX�[
t�?S
�g�==؆�!��پ�{s��O"�����W�DZmA�pQC��us)�zST�Ξ�o�0)���$�&�*	�#�ȗ3���lj�b�Sx:�S|��)8�b����;v|L�N��W�R2X�
[��~�/�fr>H�uOW�F�9�
�B��ꪞT1���O�w��3�.G�;�/�P��������s
*b՚]@��YՆ�3)�W~eB\rqA��d˅�YwS 3à�+1h�dRc
_�lA��ʺ^O�?^P��
�V���� ��h&T�9��m��f!5/Z�-�jf�c����
��V�J2b��
���t\3`�
y8��SbDڴ �*�k��v���jO�p�)	UW�E/~�te�~�o�
+Dz�D��ZY�9���@&�@9�;�5O{��jZ���
���=�o6m��yc�#�p��V,��M[[Ҽ���Hw�9(�DۻT��_&��OBjbEGQ�/�/�
�oxnC�u_
23��@��@*�q������vkLBIoN}v�Vs�	��k�B�*kN��:i��v��=��U=����s�">9�-@��?z��ˆ�����_%��s��
�T>��*����z�H(x�7Bm�]9(���97x�=���=&���P�3\��?l������
|���}�"�v���U;8{T\wK��95����+ޞ�{t��9�b���6*�������0\~����	N��.Fʍ�Qt=���IX�����M���o!6�K�I�!�����
{K��.�_f�,Lݫ���o�ٱ�/S���3"������L��
�.��nmx�m}]��Ԙ��Pւ����dn���>Xῂ��"w�A�Z���!��u;�s�ӈflL�����-�
򮬓ӽ-ϖ-�v����T������s���wG(�y3�jB�/\�s���ޞ	
u�rw�\�S�c�|�c�\��
�h��BL�8x\��&��
hy���3����ۤ��֞�I���%�ݎߴ�EW}
�`_'I� �3j��	k�,���^tmp�t�� m:�/��p�|�oZw}d�zL����Au�MA��iVN��C���1(�&��
C_�J��DT��5���pnƒ�?3�J�a�_�
Y��a��&��ob�{�k�c�V;��WL+��
�<�f���R�;�����Fq�+NX^L3tDm��u�u/@��1�6b���\�8���,Z��Ɗ����K:R���P6�De��
���VfÝU
"? ��m�e�sRJo�	�/��p�S
+j�� ��7�*�R���$�Iuт̟�A����+�e��@�x�������۞���^}���oM��]��w���
+�+�r~��k�D��� ���9c�T�]s#*B�-�CⶇӃ���d�	)*s�Ah����5ЬU
���4�}Xs��̩��O��?�k�`•��R�L����fE�����U\�Ӳ���Όt�>	��-�3
�Z�-�r,GU~��ݼ�=~ݎ,]���g�]Y�1��	��#JP
���ɚ��緜X��,2D�����3���ܔ���긨���������
��
�u[d
}
��+斔�0�
�tr?@������r�h?<a�Ni>��+f|Yl�����Xq�������V�k�U����6Vã=/|��n� J^5#��زE;���,�$�)k?�/����*��q���Ǘ��Kb�������麩+}�@�&��vf�6.<�
C�O��ܟ����s��o���9
�eRK(]�Hc
�W��E�/9`��ʶ�U
8}��X��KfL��i2Gǩy�@��w��7,��
�a{��q1q}�C�Г��-	�4§��
���p���дbǖ.�E�:RŒ�����
+�
<�D�o���d_��ye�3'��t���醋Ԣg�ޱ�
�R`{cTĦ�ܾ�W�kT�1Ԓ��%
~�E�D4"#�����a*y{� �&@�L�AT�
^�7�m��3fN~���el8`�3���a9�UԊ�܍��
/
z؃{��窏C�12�-t����1�V
���"����`�#V&`}�/�
+���'��lҜ�X�lC-�Ҷ���-/
��i<�Ư���E�vV��\�ዦ���1>cBM�X��S:B�W{1	����0b,D��Q!������5�0��1����R?���g݅k�
҉�^,�eTϚ���^r�����k.���ҲY�jA�lzp��vLEĄ.
++q�;
���rv�=Ç}��v|���޾s������qm/*�����$����
+�vxn��<�ʷm���VXٚ
�4��i��-�뭋*�g�ٿ�qs���Z�zD�)="��Vl?c��`�4.���y
�
�%+6&p�@��W�r���j��/WQ�džH��z
+`{,�ژ&��1ūJs,Ǵn�vs#f׼�����|rq[@-#���9=�9�ӕ�$G�o��M�Nj瘊X(@V�c6e���G�����Ꮋ;���۫v|킃�Y��0�Fy�U?
��V�t؊������
��e# 1j�䮌�:F��|jW�yd~��M3�u��F�٨��~R窗 XpRZ#v:`���l�s�7�4T,��x�x�m{~2x����Q��L�� 4aAK�_01�}|�-w�ݐ��Q���*��&pΆ���L

���Q��N\Cx��iH���X�돡֬� �
�;$��aRM��4-4~��V|S�[>p���#}�
+�`��}��	i�è��!�k��#+�<������A֮Z��C�u�cg�׿�eQ�N&b;�|�$�����yث�0�$6.X؝�#��1Eg���>qōo_� �>\��
]��"V�
����lD M���p#&j���T�`$W�	�sf:h�Χϻzy�Ff��Ox7iV
�M���=�_�Q3�j�I����{ao��i��۝d
����� 
�:F�ϸ(�~*|#H'�xi���
V��������7�8p
KVl͒�ܾ�����k
�Ei��{�ޭ ���5���rl����U?����
��Y���L���W�d��g��r�a�fRͪ���M�@�eJ���a��jPrx�<.錟SA��p�k..ew��o{Tꙵ���6p��AL�����^��I9*5j�u,Y��UG�dk�E�
嬹u���\��D���� �����$�eo�2la�
�� -gJ�i�
)��Rr�����֓����;�^��	�z��E��	�at�&�>6|˧���g��|
�
]0�E�Ec"~���^��З�<Ҫ���PP{T���mT��0u�X���)
��,)5{2d���/�]k#T�?��`������G{Dۣ}�/��ģ��Uk{ڂ�5aV��t:���llԈ�X�&T����x"�	3Ý	�:pRh��+l��Ϸ=���X|�Hu3jB}Ԍh?�=�2E�}�`r�<LD�Ɖ������-�$�36.|���-;��� ���9m��"{�Aly��U;�,��H�i��Mg��y [...]
+y7 ��
evby��;�3�yJ�kʻk=��L���A��Y��k��Ԗ'3��4M�	A��
��ݨY��1��g-̎Q)$eFMn�3JX!�^�
�!<���Eu/j�$�.�k/u� +X�ֿ���F(��X|�
+��<�Έ_��#Um��m�~B˖�
uP a-�h�Bo_��I�r\v��tm�FjYs���>j�KE���I-�`<��[

�?�A�A�!Knt劗
+]��{"�n�C��4���G4B�S,X�+6(,'����XQU[~:.���:؍�B
�������� ���f��vjKԆ-�7u��
�

+r���d��8g�e�����zN�졭Ǯ=i�v�Z���>[=�VW�פ��٘�6b1wVhݝ�Q���VM)uc
��$�
B7̻�	۠8�
ҭ�
S�A�E�W����Rr%���:;
�hb�Z��
o{�;!���$�7:Bo����I�fgJ�ۍ�z�&)���+w�
/��0pVz�w���$��U����/���
x�Ćo��${�b�֔м�ˢ#
άS��B�¾��_o��q�>t��(�b7DB�N4�a�uJ�)�7ڶCB�v�ۻ��"VRø�9���lO�ph�� �6ʡ�Lw�vǹ=;؎�0��	��wH���Y��nY���z
�
��T2򨔙c�&=��rҧ�%��j-ϯ���e&�ە�a\d�		d+~6>�#��B�R7h�2�$E܅�f�K����;^AϦ��7���rQ�]0X`dd�؃�<����;5��٦�O��P�z
�:�%�����Ҷ�^�m�
�j{�E�3|T���նa��FS�tu2�"ۆ�����魡<� �2,<M����!��@���O3y��B��|�_.�w��5�^E����x�B��6 2���u/����N�e��R����2
�>�$�ϛ�sV6"�����|ŷY�%�c�
7�����p��|��Q%���C<�aQW<Rq󌭗���
�
����R�`����h�u
<��
B̪��~.#��`�m,ഁ�5��5Mi��.6t�An�i��Y�ʯ�Y��/+���Vye���f�LG�i�>�7�^��z��뚷�HQ/
���b
��!��(����X�S�}1V�pPc�[k��LC�`� _��e+)x�}T��,��{�>��wt
�J��4c��.ri��uw�8���W�S�f�F]eb��ްG@���f���6�����LZ��6)�# y�H�T�q�Ĩ���q5A5"k���o��6BCc�3���	�|o�+�4���!���ʐ�;�Q~���N1�!&e��+��tۅ��Is.l�!�h�e3n
}g��Xt#�����e�@�췭���=l؄[���r�t�)�C�L_1�dx- at H�cUi*�������J�����X��xU���_`�
Ɔ9�cl-0�����<�Zک���2�S"
�I�g2�.�ʳ�� [...]
+
��1Q��Gz���t�}~�4k�K���eh�U���c�y��;���?)`�����l��l�����1�A".�_�ٺ���{d�>��[���%�R%���b���V��IΝ���ޖaVw���7��+�@���4^����
5�iS
+ZiDK�������v�F�qk�P�fj
��5�2M����^S�X
l� ��� �m6N�)���h٫�R���\�՜�����s���{\畩���o�������-zp�3D^��{�2�q،q�5,���C�q�D�uХ�X]�?U�O���������q���=^Y����I��O�s�ŀ	��<��W�,JČ����j�9W�7�UU�*_�k��1�)4��

-�@�o�J;�vV
���� /VT�C���=̥%(�=5Z�0ΫU���Ī���N��?�s������es�Ͼ�S��ļ�K)�+�(�X^5����+[��:��'�T������<�5g��M�K
������0{�J�W6O�x����9P~
�:�Gq�D�;�OEy�S�U�o��]�Vx�勆*�`'p�
�H�҉�6��mrT�Q�@6
+�"%$�~)���	���;
�1 �ul��*�c�\K��ru�诚��ߊ+$?�zRw�Za\Z*�{ �~I�o	����X2i�t���>���Ը����:}.B�y��i;WP��SY���յ��K��?y	>���¸'�G
���]���ө�q/�[~��`��^�
%Y3r�����5r��R��ѩ�D,����Yʣ�2���b����Ѽ��M���RY1����>����P�se
�:����"2ç���K�Y��[~�fٯ
+�-V݀4�K�]��P��'�[��p�9\�)�M�'`p�'�������KPgsӻ~xp;�����Y� �rC��9��%�45ɲ�C�a'f`�aKB�H��ӆ��KM �uq"��U{��ӆ�V
/���\X=�ýG
q�ό;w)?�e
+���;�q�^!�!����C�8�E�7?��?�dB|)K�����0$�L. 渒��?��Q��w�˫'sJ�߿~O<r�~c܋$̑�t���7��?Aŕ��~t�/�Њ
+��\/�g�))%!ۥ�B%�AC8W��R;Q��e����������3�)����+?r�lb��q��Aq�_��;~�z���YGZU��gQO޼W�sv�o�p�>:&�Ov��0In�Wo��
R�f�P��ek,2g*�6߄���0x�S(������B�������_3�[��M+�.��F�<Լ�1��8Ѡ��"�.B��Zq�[M��S��G�r	߽x�w�Qy܏>��}�8�U
+1��s`ܹ�qY����B���{;<C��J��+
XN_��[��F�uB���3�%=߽x
�{��;�����u1��Ƹ�c�:{�,��sH��xԑ�/����sOͥ.�
<g3��Rq���6��5��
+�8�[���X
�����sJ����$B�Wj��i�KL�
y������kO��29G��yG�&�B;����+ɞq���:9T����!
S(�d��-=v3�j���ʱ��OY��c����=|8�>��}r>�ȯ���~��E��7��n'����T}��ԯ��ah�w֪w��$�q+��S�<O6E��@��tP��4�G/�A�.7�Y�(.�
��8��/:�~�̅��{O�n>��;s1�ȋW��$��u)�p��
�_qP��~^a�X[�Kܥw�k>ͬ�����>q�5�HJ�hz.��牰���^r��+�����	qn���OFɨ�
�o���E
+��[�ݚ���1�ju�o��0(�C38�p���1
��o4�O�T��z���؅�G�<h���5�ƣ��Go��
�R��*�
�o�������ҡ>С�1ǵ��9+��/Ǥʹ�Gl��)�;�G,�(��E��_�eя�|�hb
+���L��{�q��6�b
2�I7�j<��_�ڿ��
y4�X�cn�����m	WQ<�b�,����X�U����
�X5S0U'�=iCL^k��.V�;�*}w�)8�a��ӷ�#�����o���N�M���.F\��s
F+h��L`�p�읬���2�(�O���s�����p����ߟ�Ut�_��]{�
�7�т
+�/hP�����d�y;�+�&䎩�y
5�H�Tv�@J�7I�����@�˯rٱ\8z�aA\A)�D^�짤��GI��2(45˯aQ��*!�帒�9k��D
����
�43��2z�L*��9�i��eH���`º�6�N?K��t�e��o�1�R�Dz�迗�J.Vt).�#��H�^���(у�.
1b��	�;�=z>x@(�镘�����Bԗ����<�v��+�����=4
�x�4�Y�ȳ4z���q�rԣ4n\J��D�zOs�U��Goϸ������*��
��
M7�6*ZH��:�kڌ���8s�,���ʸۏ�q�n����wA\�kȑ�ޱ�r�IN��=(��3Rj
�F���"�-�T��U8[�����I�P㽲&ɅƎ�s ��Jfm߹�	���Gҋ��S+����{nv��(\g�а>j�λh��L��T�ШU�Uk]\�2L�I�D��� �O�)wa�*[�o���\ˮ�^ϯ�]S�ک���%��S%�5�z�~ 4��tͻ��i�xΌ)��9�ZJ�B�͔��+��Lut�:MU�S��
+�/%�������ㅻMG��C
O)��R=�G9b�r5a�N)L}��j-�W��}6aJ�͟V7�\�#��G9��UD��M|��O�HG��w`���&���Z��:�7
�
9�Gf��7b���hB��v� ^�-}���\8p�֍�tb��$P���A��^(vU��\
+ۚ��j��{M ���2�/oӑgrK�W�
0(�
��I���E�t(���c�
�
��� ~���3��x(���^C��g�ɒN�7��Mr9;��T��<
���*.#кD6S],����5;�foۼ?���p�

��E#:�'E&�e�r�AM�hU�a��\ڧ��Z+L}?x
܄"�� 1�
�$E�'y+�JWJ��
�
�
6�<�A��ZvC���dP�>��5�lf
W�����If��
�����pǝ����o3i�2K{~z�;����>��}�}y����_
��c�O���(���3�b�o�H��Y
u`��t„[�Ur��bqV�bEG��4B���u�}�G���G.^+�{��u�M�dy
�o0Hv�Eп�I�j&���I�eԊ��(�

<`��)%�C��f񀫡Wb+[�R]M�@��k�I"_~;F��
̾'H�%��~��L��u�a�����Γ��Z��?�1��zb��0D4���F���
�P�{��}�����
鰱Q�0�
k$cy�҃
4Y��@�N{>e$��;8�'��`vy{�ϗl��6ee�˘v��^CO�n �:�l�[
�
�KH=��N��f�ZR�%Lb�1��L��
����%�$��j��i���o�:V���u/�mo�[�7-�,��i�VY�Z;
�+���R�PH�
p<_:0W��RKɷ
+�O�Dvb�Z
+w��
+�
��[	o�-���%�<�c�ƍ"ب��ɣ�y��6���^��{-���Ɗ��V�gh��kZ}�5SJq����q
8��n����>���/�q�{^}�G�L�ȕ>��"&e�����W(5탒�
����Pr+<�^�W+O��K�
B��î�8�� ��1�b�za��ʛaq͍e�`Z�͚10Ö
���\2e�'lB�_Ϫ�:�+�
���m�pw�S��1f���贈E��t�l{>6��V��lK��:�����Z(͋�A�wP?a�AF��2��Rl�uW��ˤ��,
M��V�"���h��.ǿF�K޲zTy����a��`ª����mk..cɄ��8���%$�
��t���{.q�
GW�]1
WH
PQ�V��ގ��Q0�1��
����+N���f?S��
+5.�$.�(��
Lݶ��i�
+�j|�f�_�	����FF=��ߘy:`���E�6��!�X��d���&�����-�0��&wgX�O���
��1���
F�~
c:����Y�h�/�ڥ�iG/}g���
�����u?��'�.:qU
|嬝�qK���n�j��Y�Qp�|ي�и섗-� �s����#x�9�y��v�i�N��!�#�֤%�~��G�r:@)$��}
�ȭ@���Y�c.!f�� �9�m�a.��
O��G׭�ST��ޱsb��$�7⢂\rF�KN.���1� �i����Q�
�Z�J�	�W+ v=�z�[�d��B
vD��*��?W��S7=�R������\x�@��S�ߌ	+��z�o/�i�<�$W*��G[V��c at 8�%H��[
��
�V��
2oN���o�����;�
x�9;ND�Q|0���p��j�8�Q��bb�_�l�|��d�`j�|���QBkĄ�[uPۿ�S�BDȗqRצY1��$OA^M��)��׳zlټY8���o��u�=�WM����Δ�����;��� �����9%,{�/;8����>�b�]�ù�U�#d誓Ҷ���L)P��rdŜ�2.m{6.�+Щf>$�v�əE�ZB��s@�����X������p��
kW����y�{�k�/�|�g��]�4��qQ���,�~��\s�
�i� �K�^-��.���7�Z�m��5+�a��Y��A������>20v=��03��Ħ
4eLT|{�В�%��%�7���ɡ�g����&I̽	�l��
4k^H���k�w�`Wl������!"��,���f�
+
���0е��uAK�3�G�L��f|iHM,�2�^3������N�knx��Wg��9�G�]�fL��]���T��&4ϩZ
M
U�
+��\������0����P������P�����y���K�5��^		K�F�uO>N��_����$ȧi�W��o�t����rAU�0+/�Q�<�D5�3����
��
��#|ժ�ر?���ϊ��3ܡ�q:eŅk��CS'��1��_$�w3��NZ{�Fi�%�>�㑟F�]���ϣ�گQ�sa���
����H�����W���el���JDڂ�+iZxa%]�33��v*tE�̟w��1�
?z���M�K77�<���17������ox������p��
C��m{W殇Ժ�c�W-�ƨ��v���}/�`�P�|AQ�p%�G
Z��E=<�����Ӹ���mX��
���S�m��T�7[vT��P�1a͕E=4cZ�\7B��Ԁ�)A�_s�ef�jo�Ş��Ed9h�?/iZR��$��"{]�Zn{���L:�C2�l�������Y��
�~jˌ.�6Τ}!��-���fǎ(�6C����ڀ�=�@-�y�Gdn�9cCۜ��H�s4�_3%|
�5��P>B�/���f�6\TpDI_5T��v�d�[c4d� ~��f�Q��ڶ7aA��q~��
K��]��7�4���U$kÆ���Z����L�0�eG�n��������Q��Αi�5.�t�0�
o�G�5����u+8}�ҙ���o����f�u��/!�`Qs��:[r>
΂�v��8��L09_��܈��UTߕ���c~
�2t����;f`Ƣ�->�%oXQ;.l��
����m[��ٕ3')��,�x:�_z{AVz�I�oSx���Qv��{�m� [...]
U�
+K˒wݐ�/!
+��8�}���~��?��[�P ��آ�Dx���
�v�F�
%�v<��OALۮӴ�ŃW
؆�)wo�#��{a�<]�7<\Q4>^;������2��mlM�0t&�Z
� �OY��,��
�hφ)�
l{0?�xgQ�tY|ՠr�Em�&%
O��t�?^&�[,o�Zގp��
���<�ɿ����۱� kF`Ⲳ�����޾
���u8w�5iv�>ar�6�N�O>�p��x���)>2�{nI^|m���r���� �w
��5=�厍c8RǪ
�
��=���Ց������[����}���W��--�]�����|J������s�]x����}^ך�7�
���`'6�ѥ�ڎ䨼�~��}�GO;3���mBPquی�XRw,��y�Ԟ�c��\U��XW�/�ۓ������S������
L�t_��@wʹ���s�����~H�G�j�/?���um�i�H�¸��Ql����uB�>�a���Ƈ3�wW��Ɲ���[����k���<떹ǧ�3S��Q�-���	�qw!x����Hq
q��NHB܁�̬����x���~(D��8�}�]r
��J���i��~|0X�`�u���ު��_��zn�TC�/����:��s\��l����ŚFJ�X&�	���=����ab��0���>ɥ�"�
+to�t����jW٥���G+\�Q��:��������T����^�Qτ���c��d�F_�u�
.����␲�'	�!�#��U��
h�5^�z�}e�WN�Ǭ`�&�%!dlu?0�V���U<��WGT$��04r����_#�{�|�WK*p��I�iX�� ,�>G��h�n5�bw�0�LC�c���	�*.vo
����m�������k�W����:����^y#=^%��mQ�Pd��E�
U޷L�‏q<���h�4!�-�Uy�
�G�(
� �
��Y���o
+��^�_���<�Np
M���nT�c�Wr0FK2���:
�{0�{��qK�\qv����/��h����S�'��'
+B��
+
PbS�&��뽈��g�

�>�^W7%�8Jy��0�_��x�B�<����?DŽ|��+N(�
eM��Xŝ�W�?�����'D��1��ߠn
�������#5Icؘ�a��N�����V��[�.ij�R��

+[zYx��_q�9KH7K�I3-����?Cs�G��
/��.�H�^Y����!痃~�C�<1m
�	f��mW��,�JOŭaZ�������E����g�z�!�䛁�
���#�<�$k�&Lp"�s���i��a�3�W���e���6z��{=5I��r�K<�]�I:�
̻��[|q���y��f�������^���!�-Mc��3�AV���W�Pݚ��� :�=υ�?A=�采m�/�i)���&bU� ���0M�
|:>ΩdUl"�
/�/�G a��ʻ�9t̑��P���XxW���'�դlPk%
%>co���vW�y�XiXPG(Vw@"*#.x4ԗ���/�<�S�O6�|�}e�O�tML-4�T΃s��k.|����a�Ym
�~��$��&E~�&}��
��F.��\_{�8YaS>o�6���|��Zh^��:㗭�«�5:ѩc��I)v���R5�j��Z�3?�x�$f�/��ҋ�3�4�z��
�q0>
�ʿH���d�[I*:Y�A�r�N_i�jg��>-��3ݧ	eF�k����Upѥ���e�\���b#
�F+�4mɧf��1в��a�_T^�<��M�Tqn�~}���;@���'Ǫ
+O�w�����	|�vٵ���������pJ�Gr�9�)�髹o32l�Ą�	��D�m��7	����q���7�������G>0#٦k��`ww��om�c�yg��	_ov�#�Ӝ"����=�~���=%��|��
���C
��G'��%����Y^�]�|jh�:�h��~��𽺹�����H�ȷNѳlӴ,� be���R�p��YA��c��j[r΀u�0N`bT-�?
�c��^g�G��h�ήw��=�>��.����(�z�a�xհ�N�ж`"��"��
+b�w

o
��_�,��MH��-&�Q 4�j�l����QJ�����9gBϫRҘ���k�9�_ǂY�11�̤oii׿��\��6���>�Z��"�t�.X����j|��H��Վ䳲�g���[�<�g���#��j�
���~9��!�Elw��
g<�J*L�aZ�~jo��3t/
+��5�*��Qē}��摊��ih�«�s��n%�xk���ʛ��L#�1��H�<6m
+��CL������^ζK�%�Kol�Bn�u��Q1���߄�
:F٘yf�mރ�v8������>���%���r�-s�~�g��fY?�O뵍v	,�`8�i�d ��9O��Q�n�H2�������;�����v)�pw�蒼6�[�(�3o�
l��"��NH�_�CT�J�
�GI+�^�'���^Դ�|݅������Y�ǿ�e;ͯ��7LO�$F�� �țJ.��
��E?-�U^��%*ڠ7�M���J�� %�4H|��Ɓڌ��!
߽�����p�
#�<^�ҙ~J�
��������S�o��Q�Iq_������~�����(3����O�~��	/�Ǖ
�����K��‹[���W�Wd���^�]P��e�|��OM.|RTtc�j��2�p�b'�ۧX��	B�u�;Pvd���r�8#��v7:�
Xz����No�m�pe�u����6��qr�7�~����xSrq��s?�����)?;ň�5�̧`Wn��i!
c휍NR�m�&�:Y��Оi����^�83���Xo�����"v�h��L�c�캱���fwɕ�7w,b�2#�Ѽ����ʙ������C+��E�M���K�W�7lf�}�Z��
��������ȍ��[�o
+ΛC��?ҷ����
�*j��ҋs���@��
d
�F�
�<��X������d
#fZ�i��S
���Ow��Nӓ�U}X�=ݝd>�ğ�]��A-
朣/�����~�	�~RsO)��<rb���]�䛇2V�i�����>#f��ύ�Nݜ�L��e�<��&�d��R�
+N�FW�ݍΒ�[����+S��?5�̿��.��_�\�[M�X�*�b�A'�ڃ��-_6Du>
!0@�Q�|�5�x�����k/�<*&�,���%�x�
&�.�$�A��t�|��x���c��֫b�;�I��:��&lt���<ϻ��]1#�OX~Nь||8#��!<ӿ):7D��j�
�/EC�������̔��sX��S>u
�j{�=>BߞyI���'Ë�SK�E?���\��Ū_���쫉��C�]m/<��Vr��y�:IHн)�4Ɉ�j��}�W�n)<����	^ޯ�ձ?
�cϭ��=�#�
+r����7JNӴC�#��щz�_���M����i(8����l@%�
��m�	���a���@?1�*���&��`�U��{��]_��sh�0���뻽 �t]�ԧ�~
{^;���>��\Է���}�č������k�	H�vW�������Ƥ�M��V��AI�w#���^
�f0��)t���X�lmG�%y[ѯ��Y���\ W�l�
�TdPN/q��K7�Q���o�(��,����������K�uUc���7%7� 9�������X_��X�01a��䢡-��R[������2N��ٟ$&7U>��
�ӟ��j�|jz1��䅗E��
i�W�N�F>qH5��Qv֏}��_�/a��]���At��;X����^;:��NB�o^
�=�~*�e�!�~��^|�2d�?2M�"[1�O5�'ZUB��%A�PrA�PpG�Q���"�:^�q�T�e�C�
'���90��gz`���&D�k�9�7}S�eCk��6q��?��ح1d¤(�ܾ�a�6RB3Y�
�J��hW?8��c�
T�ǭ�.5
}0��q+iel
+y�K���٪�C	$rg0��fo����k�)-xd�'4�EBM���E$��S�u��*|����VM�i��d�!w&��{���w��+�#�(;�z�!v����=<����b��>�es���椟����v1-;����)9Җ�s����IV�����)F�7S���(�ߌ�"�!���߃�sH�e���3�}��n��{r���Χ�7�
��~7SM��
=�(�KZ�|���
~w�y�<J��
�fh^��ta����"�
1�<���O�a�Q!r�=&|����zw�Օw���1O���~b�s�.=��_m���������9���{l��()����"�CB�ֵ��`x���Fg�/K-q��}��l���F at Q��<y�L�~NT�蓡�s�����𷕗�g�� �7��n/vUߗ�A/W���*��
�<��:g��;�y7���wî�s���k��&�\E����o*�{�aœ�{���{���{�����p������N9�z�}o���2E��\h�&�9�٠N�
��������$�տF��d^X}{b
A��V�������
we���j���lc"��Q�;=H���ę�����W��t�έ�Pҵ
�ˋ�P-3�
S�����_��
+��,�`G=�A�Wq�K����s��@hN���j�!$Z�Kn������:�u��b�2���.�������}\��
hx8���oM��}Y�x�����0*��p�'�0�o�w

+b�
��m
�-.��
�T
+�z���:O'��s-���ya
�ڭcR�z��*�z�D�
L 
�+������j"�äh�4=ӫ�!�h�N)5�ph��w���3K�3���z�W.�G)I˯*/�����5 ��iK:�mH<c��z煘����w�� 唒��	і	b��e�ﻣ�����	|�U&��Z��)�~]j����C<4��b�)o�����k�V`�2򍣄g{c�h}',L�����[�àJD؛���#��4!6G���C���ă��n���m�d������ʃ1���at�K��X�b䭴#�)�
~�d��8�O��'k [�M��z����m����ԫf�
���(�J~���8/�/��8E�0ϑR��h������#� ��Yq��
��?��F,�1ς
��C{z�
�&��^��z�\-r�
�x��/y�������
�0��8V~sw����`��y�L��]35	k}�p� �� �O�k��JJ�NO��
�Q���J���
�d�=�c�
�{���򃤾�G�E������k�9?L��n������貪
v_�Ru�x��Q^��������r�ߵ���9����v�d���J���7����i&«�bL����ˋ/�O/w�_��G?��?�$�~���*&��%�"�,1�p
��_��2Q���yԤ
�[D4X�_�bJ�_�M��1y�
T��2k�����C�O0s8�fU�P�w'�1�}U��X	��W%���"�4p�GQIü��it���M��y
�4<^ޜ|f�u�u�$�O��\�G"�o�G ��q�������
S�Q"�V���,���9r�U ��e����V�<�� !�:CL���#|R\�U��Yy�si����z�s�]f���lt����@�~��{��6�5KoJ�K8��l��Ek�E6))�2�f� '^@n
NR�
�R��]
�C�����09�!�o�����.�]ߒ��<?���k�u�0K�G��]������ְ�N9��&�$yd�
��I�qR�M,��iѻC�䠆���)�'
LXP�A�'�1{������{61)�`���M��1�G�e [...]
+�,t��?�	���G:�9K��D<0�p�k#<��{R��~{��w64�h�
v�%������Z>1��(
�*Z�ܒS
�=��<Tt�����&��܇~|��g��<�7���'�
�K�N�*���S~=��l�l̴0�e��n�g�ms�R�����z�}O֒p�Й~!�#V�5���w��w��i>%���PN��		ʞ��oqq�J�Ӽ��!l��Eѥ����ko+�<Y�U���J��9���EQ�Sƫ�
$Dᆵ��k˽ f����*�ʱ�\q�ʥ.�!⦅E�gh�6>�8
���+����[uK֔��BgY`��nV��ڢ�;bԩ��;��ҭ^�c1#��qz�����Ѱ��N͡��o�P
+�+l�[˨	.p��K˷Qq��X�;��}	z��c�
W>]���ţ��\��Z�ZC�U�#oI�嶙�`<2B&𽬵����ԓ�7��
���w��ͩ?�3��
T?�X�F�5�02
s�ʝ������{��?��Ӿ��2A�B%
-4�̡ycRf�[�*�
�:������LSҗ��n.�,=o���n
�R�-E?otV���p�u�������zЏ]f��!~�=�n`��=���Z���Lc�v�5}
+rN@��8�<��9��E�C�
��9CH
+hAf�{_[l�q鞧ئIɻ@ϥ���
+6<4�]�T����_M5{c�+��[���k~5�j���3FJ��t���1�}Џ�3�
�
j�VX����~l�j/!�!k�w�ۚ�&���Z���o�=���4MS
+צ�����;#���N� i�fY���)b�i
�`���4���:�� 9w�5��j6^�O��L�jr>m��D����ڻ�(��Ap(��Jz��
+e�դG+�ݳ���3�S��.b�6)���Vs�o�G�(��;#ȧS�g�O~5����.��a�C�Kp��!ǫ��
�]�)7��2�'1O�z!7B{a���:��������<��-#e�Б��o�ڹ�S��
r!F�~W�^v�=O��a�@F}60�.
��$AE'ЏC�vAo��Q�����P
+
��<��Ep.�I]����e�6�x��AV��
����������������eKT�a�K�(	2bƟ&Q�
.�p
+���P�>�����:L�RъW� 7����[z�kM�
.ik����8.jo������9����]6��������QNс��c��=��v����
+|ډ���)�4!ѡ���tï�w����/���S|�<����ы��Lh�
��W昫E v�ѷ�R7e��;	3��[}�{�uR�F�Y��+�梟�A�K"�tM
 �AR|7&��6Ƚ�gY�?
��n{T���
�����
���,�HGzJ�G�O�����/�]^�Ɔ�
+�OۥČ����U~��:������ԑZ]���
)hR����J!�:K�vɨ�~��:
��
���#�
��d���6��6�`a�<
+�X�G*�)�@����7��1
]Ǡ[�9��6�W�h�y�9b�o�Z��`�g�����!BƑ��k�@F�F*�ʮnv�_w�@n[�}zm����eM�m�	0�}��V{����k�#w\s��=�}2�� �e���yC$<2��~.�:
}��6��UƯ��e��5[dT�����Z/>ʯq�ͧaᜳ�T��k���Ӝ�F�dc�eiKQ�K�C{�|�WŬ.������49u�

���[l�]�q�Qs�Z��€����@y���
���^�]��S3�K������/���U���p�E.)��ظje���w���sȉ�i���;�Ib�E!@ٕM��	n鸠⬪��=Y�e�A
�� ��z��L3�x���X��[���vV�+Z W�q��-p8'�|�b�.-�ds����0�S�B:uu��qb�y��i�2*���8-yw�o������ 9��
�#��	�w>�D
�"�_ at o��+�x��H�
1�-�-bf�C�,�.�p6%�&�ƙF+n����`~�-i�zd/D��Z�Z-eg��k��3�ب��Ȼ[�+o����*2~��\Њ�����w���
��~�#$���f� �(J/Jٹ?l����A[Ϸ��2���
L"�� ���1��ԕ�5�
y��J<�X���_�}z�E�9�8"�!�D{�l��]i����Ĭ,�\#���U������W�ui?�7�^�
D�:瘨��:�U�K��Z�NQRUME�T
I��V�:G=^鮸�USJ�.٥� ܊��N@����6g��6���nH;�ޑy1 �f�Uu��
�SEK�)�����Y�c��:�`
��`
��6KͰ�	��o�Q/Q	��I(ٟ@���9��d���n��\���=o�����*�@��W�J�	�d��HY�MR�zb�>�:,rb����i���R��W��z�q
+�d�%���?Y�3�x�Qn�EY#$�#w�k�.�)�m�=�ց���@�}\�3�/u
�4��MQ3��[:L�̊�w������m%�9I��~��:"���fW^ϓ�V^Z�E?�� #�x4��G�hy���1
��������)f�!�ٓFͧ
.��fë�%��ߓrJ7���m��AQ��+�h��ǞX�o���:�i�M�_,JZ��=�>�,t�ۀ�������5J�Q�H�C${�D��vm�>�{�B�]��u`����n��
�ĭk�4���X��i������	�i@�,
�8��B��
��,>�2��\�)��ܑ}}�=����/�
Ͻ:v�S�(�ki̲7������ *�<Ʌgߴ�οi5Jq�c�.�����3�įe��3!�h�I�'n�-
+sV��[C�d�(=�8L�Q4g�܋|�7��6�+��c�G9vY-xi��-��k����������wG+<�U#$��Gj"
Rj>𰧇ӈ�l�#Û�߶Kn�@��M��1r��(���9�8N��(ş7x̠�����btm��l����d���W;�ýr64�ɼ*J��py����]EW�@W���#���������	|��`�c�8<�<������Y�
+z����
�n*�d
�~z0^~�:	�ocSvGp����������f�y�=�ז;ˮ-��|�3X��5�+<1��'k"����4!ޡz^�TrQ>�Ы$�oB���$�"�2Sl`���a��&���!ã�U:��ơ������

����~]��p�Y.o*:k'$���R�
��e�
��p�{B�g���Ֆ7[��n|�� 9i���m��ԉ8
}S��#o}��щ
=�=b�F'
J�n5\dV~��
�4�l�Lr(Ŧ~�
+���+��9籉ih��ĩmn<Tv�,�ђ�{�wo���6�a���t�dC��h�2�t�"�
-=�z�
s����Lu�>n�6�8l�
+�gSSK�!�h�������%>ͷ�B9@^9Zi{��=o�z�SN��ȱ	.)&�:��y6�2Q��!!e
i������!�
���s�����շ��
|Zf�� x�B�C��6���5��&E�S���y�P��؜m��N7���ec܂�A|��`�P�=����I��ڛ��mO���N��Ă2�(%n���Y�G뎱~���<�z�3H�<�T��5�ib�RG��~Z¹!��3�}y7���*3�C�f�S&D;d쪭��Ɖ�{�I轍��1�IPϬ
홸9AK>^�R�z������P�����
��>�J�%���|�
��iV�W�EY%�D�4:R�"����������
ag����n�����Z�y�e��d�}�iL�Iݜ��i��b���_W�S4CÏtl�}��Бyn����ۚ�SS��Sko�7
j!v��=���Q��[!��B�A at q+(%�#����&%�®yѺԇM�o��
pV�]��
�dP���Yx�KQ�c
������c�U
7�myL���qx [...]
�W`WR���i9.š��:5<��.ɣ�����
5�*�᠏�8�V0�S��?A�X}�x�9���+���:�a�C
+U����OkLJ at MY�����uo �ׇP�<

�w��wi�%�%ҩ!Uք�Ǜ�����V�a���(��Y�Y������;`hiq���	=�"F���_�<���t�ya�v*‚�Z�U����$
���61�s����XŽ�wɿhڢ�
.򉇡9���j�fwe�w
+��
䊿6٤���'���K]����I\W�k�i
�X֔��rg�
��9�%�|y8-B�1����V)�P����
uk��(�����g���ׄ�E&e�fpq6��2@���Åヌ\3O {�l�FB�O�ȶH�y���2|�G+�ۤ�������}W�p�
���y�*��
s�jq����lBp����S2w�j���iCĨ�ar�m�]�V�Жir�O���%�t�	z���ˤ�֩�{
%˧j�:U���ܔ�U�%����E.	��DK*j(%��2W��n'e�yf��|Ǧ�3s
�k�0#�⠜U�U3����H�;�ݍ!���f�^@8Z�|ZB�m�q���|٩o��Vߴ6�O��V�q��� Ȋ

k����֥�:���e��ú
Zi?=�Gqm�U���]�u
2L����vU���^
�*�\_�5��Z�f��?V�O@�y�
�,�"Eě�<���:�Μ��f�E������
+b摎\�
+��J���4�Z���Q|����_�D��~�m�����گ���O��j�U7�

+z��h�������V	!ͩ$��^�Q�JB�S�H����
��YC�6^�\6!�:�T�S�"�^�l��L*|��{d�{����V��S�[�>� �ة����/
}*Zᑞ�v+�p��Sh�b�.����n���l�� �/�������T��N�5M1���9�o��ωb�R5%��|eo��`����<&,tJ�����#Eݳ%�^r��SO)��~��z�51-3���qZ�M�+��� )%���|Bl�$?��~��'j҃
�B����?�ͳ�ߵ�	�����9B�Jg�E]k�ώYL�]�CH۪o/��D�<8�d䉁�����%.i�]�٥�������ˍuE=�"��
NU>	*q�'
<�O˂{U��ծ��^�i��T��2��RR�s���'g�լ��"�h���-��$��U�մ6�c��
Uޙk̺6����5
O�c�Vp�P�Ƕb}�P(N�g��D��g_���q�q�*� �kk^`$�^#��^�������;������]��ͺ��fx���v�49sw�Z��a��ůcB�jB�y���v�9�
)
�ڷ��bS��w&��y
�:�@r*�U~
}(�I���q�9J�Sͩ=Sc��̩d��2r���\��@�HX��n"�㌜���νYR�� 4l����f/�WK����"��7ouHPl�4Ѷ'�劎��ŷ���w�7-bD�O���k���
��(�Ød���RS�[Á9U��:r�ȭ��ܬ����ܻ?C/Tw o�y�7�������:�=���N:�kL��>�J9�45h��-�W?m������y�_�e�N�ɫ�쓅�Ƌox�x����q|�TS��O��o��o
���mp���{��;n
�V	P�y~�U�*�
%'l��B{;��,�z�KUO��x՛��k=��{#���Yn��9a�
��
��WŁ
-����쀳��8�
��,&���B9�m��S���jC�ȭv�r��#�؝�һ�iL�[ɫ��G�3O,@����
YFk>�y��K�l��^�9�	7N��7�*o.��>��ƺf��9��DWK
�5v�P2ݳ����B�UZ��:�
�ѐr�Jr��"
�0�[́��P�Bs�g��������
�i��*ED������sOV�x�����0�?�p�1Ƨ��5��	���؛
��~m{��0.�8�,y�]�.qIP�vP����=7O�"槵�����i��d�^,w��E�S��
"�X��5��jW����-rbd<�
)ϣ ���D^p}Z&qs�b��>�h�E�kM/���M��:np!���	fqYؗu61�g\
+�&�@vČb����M��s)�(��Yf��I���$���j�A,��Vf�%��ա���<Jb�i���rg�o���[
��q���wMğ|^���
�;���5�>
�fy��,J
ڪչ:�5�
��
��� �d7x��
a��?�j)%�P�*[�����[��g�iZ�� d�
��5�h���.2�V9-
�j���S_�s��ٚX�,2:�Eg
��.7�:�-M[bn��������\��(,�<���Y��8R���������<�
>o}��]�	�z��F�Av��<^!W�c�t(�(��W^/}c��I�)1�
�eu5n]
͡�
+>|��;Z�h���(>�8IO�
�e9f1��z&�a�MA��
g��$Y��bˌ��$ff���D���OO)pih��3�ؽAx�\����6�߻}�7��FM���PmyԼ�P�
���ZR�s�&~wq��&l�8�&�8�||��"��#9�)A&���ܶ�B�XŨ��"i�'��f	�
5
X`V����:�4�*LS�' k������-��S��#��Ta����?6Y��k,�GE.�J���zrQp��!�g
���>h9��Yk~��R�렮�
�\�M%�
�k��#�g�	����O���(E���_-��,��Rӏ����5�q؃���K��w�E� �?t���V�� 5ŧmi:245u�r���5T~W֒|�:S��h�^�a��γ $���?s
q��ĸd���q����G^��|����[��s\H�z�C-ݯdA�rr�K�O3MA#����B�9��46����^.�I)�{c���᪇�V���u
Ө������;3
�c��ɽT/�
�.��k
��[�Zۂ��4��U��?�iED�t-/��M-��,+��8Qw��"~ڬ�?^5mW�Ҷ�n"�6��mJZ�[C+vk(v����$t
c�]l��!m���#
�a�G9^g�| o�V�L�"
�X䢿��6������K�9.
03�������q(�//QJ����o`�산�4��
4���ll�[A�z�q���N��
�҄fp �%+�TK�)���y^�u�=s�G��F1%�p�U�5Lz�5Xf��G���4"�K�G8d�j����R5���Z唆���u<�u�
ٛ�F�wW]6��^^y�e#��V9�Q%~���%۷($�f�z5�t�<�bM�
Ԡc�]�T��`=�CV�f�5�7��7���tJqɎ9f�Cɫ�ϱ����p{��i��U
+b��?��bZ!�x��3����4--`�MX�i��[�5��7��Cn-0*�f��[�(�㐀�R䙃�}4`r}*L��X�]P�
�ϡ=�'��-S�
_蹾y�3�<"pf���ILKs�E�#Cs��)�v�[��;�,X�"���r�
���~8+B��[f��i�g��*b�_KC���c�b��\��D�C�46�d��)�§z5���Y�Qs<JZY at W���.�
�Z�)���Wf�P�/�Q?���k2|j|�[��:�1+?/
�A=�TR���緔
��1�#�A��
+l�c��;Z5~�my�e_�f���8u��,���tjqY;ӈ�;��H��G�ύz��7��mz5�_o���%�����p�
%�6�O>^b�>�6t(^A��մ�?��M�v@��}�<�Iɩޘ�%�䔂�>h�s��Ƿ�F����;��Q��
��x��8T`���q	6%��d��������Tx(%�{tԪ�uƳ���zp13��w
*"��}ݣ��t+p�GzV��u�eT| ���rc���ƠADܓ�5��0IN��0����	�S
�5��C�g�}�����+.9>�.'g8���KB������7[�n�G�,5P�V4Ѭ�&�].B9e�2�
)�%�� =ϰJh���j8�"�Cˆڕud����6/�JiهRB����I��v�����rvaa�Q�c���	���4IJ�
���
���R�O���:�YJ�2M�R
J.̩y �ٮ���:�|�9�}
+8
r� t�lr��*n�C�.��Ӳ�2J�]N���EX��A��r���l��]0��޴����!
���,੝Yv�R!< ��-gT�CoG a�����,jy���������	��طX�r����t��u4�@+��ɥ|�hh���+=��6	���F�k\�]Z��<Yr�2	�)h�Cg
��jk9^-q� �~Yɥ���I��{}�{���?o��ܳI�yN���8@�n�=����y�%cV��\�������`�=�x�[��MR^�zoͣ��ܓ�zQ`�O��JC5�t�t�
�h��
m{
+j��U��V%����q���c
0�2
��W|Mќyfg��]n��zs�(�����Znp��
<������%|�yr��Y�vEM�F�SM+	��U��0��U���~5��8v����Ɇ�{��#�~|˔r�e��]fa��,	��	R�S�����:|�����J�,!i_LJ8��f�W�ؿ,��?�Y,�<2;�e&CG��ؤ�@��s0'!��1�,�'���+0ɦ)�����_� 
r~�m��g�AG��^���u�H*��J.��N�
�lq�V�x����W��
+,R�]ƭ�ϳK��W������D�.�ꭸg�F'��L���A{�-�6Y�
��	0�|2!�2����E.�.���[v�5�,�x
��@�-Y���׾�\�u�/��9穥�bB�����ذjo�]`���o��0;�B�AP�t�q�m�1!M-ο��`�c�nM�g��ֿ�ݢ��T�ܠ�R
rO�[�(Z��jD�,�a�`
a]
�#��4l��
-�8��S�`A
������k{���)��WUt\�`����ģeN
`��\�#

▱�Lc�؏z>��n�Ľȥ�#

J��

���x����!���Z�~W>O�z�ҭ7�w�Ĵ�
a�,���xp���ч
+W4��fƝ���)^�-��,F�5
�^@�����p�l
E�2F��9)���1>�$�E�B����*�����" ks/p�6�̷���x��剞�j��>:�8\
n�a��ך�-s��
��Z-�����[��	��9D�QB�V[ށ��<���~�|����	.s��(l�� l�����
�Z�μ����o�O?��;�֓u>�㖨�x�ǵɰ�K]�7�:K/
J�7�ܹ��+{��)G�
��\�_�t�_F�^�d
2�sr/�#�`�zZ���V���R�e����8�d	�_d���/��v:�:[�y�^}��OI�x6�2C�rH)�_��5~mM�CVq�6}�x�[|�1��J����,�3��
����2����"��̂�.�CqMb`�Z�a����h��`�rܡ�#Yu8�$;{��hJ?g+
s��3�Ӥ
��W�/�El�k+�b
ԫ`ì3�����[���൐.]-�`��u0�.��������+_6yt�t�4*���}���גO�k���|�9V�C� �,��B���01�e�g�y\(�9�0�E���(E$����Wҋ\���aD��0��q
��#�Bj�2AJ����
���*qi>6٭@�Y�U	�B�C������l�f_�e����2�lb|�_�\�;��]���,-˳�X�^l}�Yj}�1��,RB��ۂ��}��~
�d�������Yy�9Q�}��b

s���.�Y~�O���ӫo!�SԴ���� �{5
�i
�ť{4�|��T`W�
��z�o���$�f��	�'���5�пȧ{�4�OM*�h��.�x����z����
��ׄ�O��Oū	��� XW���3���� Gk|�i�Q�d��t`g��PW�]�
+��
�ph
���Z�s��^��]ru�
�o]S���;[���6i��67���f9�
�ݦw�%
�2K��
�G.u^��Jr) ��
�ș��_7���7���4�k�䞺.��k���=��
�;�
+�h�KC-�j) ��Z`y6�8���H�q�R�k���a�O�s�K�c��92��\rJ�k�Ux��"O�B�W�*;ұa>�"�c"�9X��Y�ӱ�
��د`< C9U\��$������s������:�&i�G
���<��&ѣ�I1��\����X�Y�^%�3!>!c�����W%��@�:�
Jޥn`x�u$�F@�h at n60�\�m��
+X6h`�|Zi��-�xs(���G ���=�9_��;\t�7�w'Xo�'M�͖wV

�w�Zx�
��5C�q�`l$�$\�_%"{5��-bj�y
��^pa�u���SjZ�h�_
�!�1˯
+�j�
z8��Z}���Jgگ^%
v����h��έaB�
+
֧o���8�S����(��R� =���	�چ�^�t.4�=����w�(9�yp��
�e���?JOv��֘Ĭ����
����Q�Ã1z�y�[斲��r.�(����G�{�B�	��8,�<��s*iE�e&�Ö����û� 8yp�x��$�t�YBJ��qi���?6��ϠoNV���:�����/������e.���^b����
+�d����f��

��FsgpE�,q�'�
j��!�Ǻ�Y��ՏN@�X��	�IL��
�ܯ�R�ܨk��}�Ȁ�3ϐs7��q�x���ˮ� @6�v)��x�m�y�yF�u
+��,6�(F�{���P~�C�� �vF�1�c���yV��P��ԺOG��h��@|^��}Y�N�����3\yco��m��qP������}�	�l��ǫ
�d]�,,�-EGy�ظ��^t�� ���:vep·�Ê��3!n6ťf�;�"�[�ı�7Ӽ**��c]@�]
+f�O�,�9�c����n�ι4�y�oCS�)��
4�	�X��]e�c�ئ���Ir���܋&�Y��h�<�  8�d�K=^2+\
Чr��^�7�s�ʲ����[���[~�dž����n��Z��Wxuk��M�=1P+O�oMY�<>��
 �5�����.�͍��+Gb�G�WS�LS���Ap�Ɖ�6yť�W������g��_�Ĕ����7���E{�ᥓ{����$�&�$J�v7��3#��Z̭4�������C���M��8v
'�m6� 	��@���q������ְ��3�*������ZK����k^k�}���Ao�|���^�3�~ig��ӛ��~����
yi�wN�5_\���ry�󿸰���g�,>���|
�jg���͝p~S+�J�ӎ��5_��䪓�s�^j�{��Y{�g�������սK
�qp�pv���O��6�޼����g�<�wtM���l�_��ɔ?���)�^�ym��O_ڷ�p���W�?�S�����`��{������tz [...]
+�/_ڼtΥ�]ͧ���:������:��c���ӿxo��š�C��
v\؉��j'6t>xl�k�V��[�wm�'�� W;O�~�ٰ�
[�4���=�䦥�?�]�}�8���։W���
{s���L�����u�O���T�7�N=����Ͻ����of����36����������g.�{��S�Wv��6���g�So�>z���'�Z�}�.�t�t�g�WdOm[�wi��k��a
����G_IO�
l��ۖ �.��ɺ�='6�\ݕ_xuW��S�?8������kz�u?vz����o����w�
|a�=�~6��W��9�i��u�����ul�k{2g��g���y
��y܅͋&]��>����|��sꙍ�9g7�l?��GϞ�>�r���{���ѿZ�o�񧿝cb��
���l���C���7��W��>��Y��[
�K���⮎G/�����;O�����{��
{�ч��|��W��k1��0fu����^?4����O��Ҿ��
{�.��(wn�`˩�Kg�\�9��[mNmi����B�ơ�����z�㍹�Nm�~��|����㯧'���t����?�&���-�?{b���~����o�_
y慳;2x��]��JM�n��=�K.��_��_�ܙ-
�
_�������u��9�u�=�.�}����m^�
[��[~����{�\ݍ���cg6/�|�ݥ�7�Zv���~~r�@����3���yqs��3o.�����~{������
�`���=�Z��
�O���/�|���7�-_zm_��3�yc�~iG߼k�V��]���s��6��r�]�~1�N��{~�~>{��|���B�ŝ�y7�>��+�V�\��3���s����f�;��b���줋[ښn��wm����-W�.�6߹�
�x{�/�L?ruo�l��W��?�m0��:�o����o����<q��$�]f]�5�������mi���!��ӏ�	v�[����f���d�y;�/s�vӪG�lM����_��~2�滫�;�뙧�)<��ۅY�/�]��9�^�w���g7
[��ދ����}����B�®�������)���o�y��7h��[l����tx���ޙg7��wjCۤ��-��▮��9�~�s
t���
�䭁G��O��?2��?����'��[�	�z�3�{uWv��}K�޼��ck���{����C'�Ϸ��ĝ���.���v��K;�~��֡������r���`���
^��9�4�-G�`�o������Z��
?Z� [...]
�_�s�-`7m[>����v�b�
�������܎�G^n���f�y��Y�����������ϯ�,
y}��ɺ����(t_ޗo=�a�wb�B����d�B����{o��|%�F����[pqw���{�+�
(t^��>�Ž��gw�[N��O��9�rrS����x��jƸ}?y��ya����?��kP
|��������靃�7�z�ꮡ�+;zg��cҍ�KS_�3������{�����|r���?���j�ݗ�/������7�]�?��ƞ��9��w��M]�7�g_�8�:�nɣ�z��o_����=\ns�����7�yr��]}
?zc��ί��So��������سt��}����8���O��|άO��� �|���
:�e���{V��G�_�5�rfS���/.��������
h��{Y���7;�K��_L=��R�W�L���i�?��
�Će�O�
̾�}���
O��荥���~ph����k��w�]�?�s��w�X?�fp���
������ы�{/�����k��2��������=��g����O_�1Ђ���5-�W�h e��o�/�:�iE��ח>��
��?�m��3o��Y�:a�����ї���隅��m=���X5��%�N�]:������Z>�U�{��_�[1�;�~�d�G��g��
{���}���w�o�x�Ꞟ����|gi���޷�S�s�׭��=+.��,i���[��5����6���
ГW�>����3����x�g6��waۢ�N�=����=��x�<�����l�
���ɭ�SOlno:��{���K�_:��.�S;����
���
+ٛ��{��;�q`�����^��1흟θ��/&���#}jc����`�O��p����Z�����>>vmW��v��;�>���kf8�����Ԗ�iW�Y��ƻO���=�a�Nm�ru>}l��o�3���yq_������KsW`O��X��̖��
+`+��y�{�̓]sNl�z��ז�srC�vt�x���zp��$��O�e'���=���K�����|��楳>��d��֡���.�9ι����⮖~��߻���ƥ�?[�{�Ԧ��/�����B�GzZ���}l�"룗5�[�;����E��v>|��։~1�o6����#��u'��O|~潳����魃��m]:�ڞ���o����8㻧7,�Nm�M>�uY�����
}}���<=�?�՜q���sq� 
W
^ߟ[�������깰���#/?������o��6���U�g7=7tv��s�S�uO��y se�3O���v|�"����	�6����г�~����
+tt~��y��-�}!�m�/>�����W��[���Z����ܜ�

7��k?��w��M�9Ww�_��㡏~;�.mmk����_پ"w���α�͹ϱ
y5{�G��:�qU�o�'z��9������������sxh���=g@��z������}Ww>���t8�V��_k
+�~
lIquד���Zyi�P��u��ya�~�$��
]�����'�{䕹�;������Y��?�xq��©�]��
���o���Oh����z�M��
�^�=�~���'6v>rzK��K��zn
^���ë����@��?]�m��sY����փ/��ޅ=���ud�S�?�y�3��
Z�����v����-�Got���,y����m}�/�w>�߇r-��a����œ��մ�~���~v���3;�>�M������J��'�}F�
��~�|��?
Zyi����S�������
�������v<9�/έO7�����Ϗ,[ubc����f��_�70����l����^8��}��!�O6-�����~isϔ
;�������M���P���
+
`�N��k�>x��e���ѱ5��������ѿ��ξ�7��\��;�������N�wi{�=����:���?~���Mϯ����_��o�r�c��m
���:��'^�N��c���^����	qy�ܔ���
�
t���٩W��?tr]�ݧ�禂�Zu��
[:&
~�����?�~�v��T�������_k����9�?��S��Kۯ�o���ǿ�њ���še˯
�9�v���/L������]ژ�vs犞��W��ܶtƥ�˻����>�s�
+-��̾��o
�?�.�ë�V�?o��/�
h��g����W={m_����~����mZm�������$�0��_��_��gvvM�yx0����?u������k_��3��5O4�.��ў�L���w�->�V�Q�c��g��go�<�3~�wU����'6-y��7[�sۇگ�ZryW�s[��?|�;��<k��
�??�^�����)���m���ցWw����9���
���N�����+�.���d����l�_ti�`��wV]������6u>�u/g7
�����go��>xq��>���;�
�k�⃕O]?����z/b�u�S��w=�w����|����σ�������׵�w�콼�������ž'W��`�3�7/��㩦?��y�?�u�{vGۃ�އ�t߿�_;�O�>�����|���f���k����_M�S�カwŲ��?������5���٧o�g�����?|�������
��_��p썔qt9�U��W3w�=~���ƾ+��ЊU���;��eҾ_<�W����O/��\ [...]
+�C�; i�,Ͱ
�҄Qߍ�n��
+[����v��.|���y�똶m�C��y��i���>W�C��u�ͮ�{�Ϋ����9��f~�usq�&���:��
+�$=�b.��뙖���=�


����
+�Cݔ^�]��>���]�w�����5gr�\k
mʗ����;���z�`Z�lK!Ӈ{��OE�Hwd�Z�
�wQ��=���
+�zi_��5mܝ�w��ɦ<
��i?:����g����[?ܓ�ga*���W3F
�l{G�l���#�ӄ�M���H-���,�
+O�>3⨔�9��ޗeU��P�x
�
��%�tab����617�l�h��(�G
}e#z��e`T-b�Пo����3�.�Z溨�4
7jV�����2�3K�a����[#��(�����Bj S>1_q�zr�
�Bzu\į����� ��;#�!�\���3}�]��q�x9�K���b�o at rff�)N�s����d{�ݕ\o&�*��e�K񅪦�l�0b%hc�#���\>�y0���Ȧ�G��F�y�rݽ��l���:�A�L�S�kR��~|�VF5���
X��L\��w���)�����}c�	,;�T�>`�3�0�0����c�� ��'f2]�;R���1�
lc���
+���q�ʶ��
+��2�N�S4��(�S��|m�t�Qj��F{ծy�`���/��8,��h`W�3�NeeK���c������2��	�+`��ݢ�p�Q����U����V�
+�ͤ��R���zs=���,�����"ٔ��+�n��#�dٕ5}���T:#km�E0�҈#ׅ
V��s]��݃
ú�A�oY%���UmU�Fn��?
����W-r�A��g���V�Tw&��
+pY^6.�G������+	0}=���t����=�hl�
n+�P�ه
+UN�AG5Xr�j�	ek��a���~�#_�Q6"�x�AD�j��:��1���q�h�T>[�����ג��X�T��
����G

+�R��B8�
+-o�E�V
��
+�ə|{W��L�JYm
o��7���諱���&
+��r����Lfy�q��:�`��=�[6"�
�M�����U�zej���@�����Tk����U��8J�ٮT�9�Z��`�[وԚ:9����u����[�㶔�"�n�ty�Z�2m�
��i�V��*j���r>){Kj�z�!)߭v�=Z�6h�]�i��f������A
���vP��P�:�|�ƌ�Z���2L�M�H���P�(���@�V}��beSY�8
+��z5u�zz2]�3]�t%����#���eg�n������&e�z�R�Lw��09�[{:�;C���	_���U�e�z���دz��r1���7���U,��^��M��f�7����e��j{-e���.$�?�]�=_*���.�&�o��߶���ڲ]]��u���
F���x)U��L~z��t�-,�����B�/��[���)�S�tw��� z�WF>]6U��ߤ��
q\�r��ު��l!;P�F�/T�
+o��˗��p��?
+��=��( ��L-+��@
R���6??
+�z2���
�S]�ɹ�|^%�$Փ�@BMgTj��]:)��6��-��hx����T��ղ��*��7E��y1)�)��™
+̅jײI�L��)�)�䩍™
+l�Ό!!��$�3��L
+g�™[���[8�S
+g*���]�%�3�(��I�L-�T ˫]TC�L-��j���R)q��V�p��
+*!�ͨ�f��_�<Fwc�e䄇M�v4�*
˖e֎+?Ȗ����z�1z���I�[Y���&˷��O�["��VS���< �mL��
�i"��H7�n��H�D�%�m�I�`�hQe%cLȕ��W����,a�D0��Mf���O�(a�0M�e��u��-��h5VYZ�Uv5 ����qԒ����/ѝ�]Dғ'2Z=i�交!ͭ�͆4z�4�t�Ŏ4c��I_/v?)�?���c��iʹe{���:�k��TaRlxc�%G�>^h���������w�s<�C��~�cTܖ��T�)�R�u�U~J`d��Q�=���%+��o����PI��f�W$«\$�sݽ�>������+���'ʎ�ue
�>:��&qD�

[�lD�)�
+"bT5"�����ǩ|��ѝ)��bjO�Vh�V��
�SK���oG9Ti�?nkkk�
)9�8��ϕ����8S��24��s�I��I���@3�?ӣI�9�?�x���I�����0-���jIι�I�9�9'9�B��snͶ����I�
��s�\X:=�[�GqY��+7X.�]����{C{���f��&ʖ���6��Wv@��Rn��z��%}�k�
+e�7�Z�$W�!�J�}���8\r3q�K�pI
�6�����L�g<�c��q�=7~ �����3��s�T�py�$@7�
�ʎ�f��/��o��*s�F,�<��_�
Ƞ�WϏZ�gR�� �hv�r��$vW��X{
�����f�`�������M��QȰV�e�A����`�
)��U�Z�1���Q�P
�[�E�&��$��s�`N�I�9I0�:�92t��
١�N̩n_�k��@�TU$��$2��Le��j745�[s��cŷ��'�Q�����
��PH�sT"Uޞ�|D��
��G+-��z
:2W���KV����FKT�(�Ф�U��Ф�U�B��ũ~5Z�Ʃ
�t�S��*�֤��m�ct�0��ZM�H�����JIߧrV���e�a������e�U�3�Nee_m�:�T
T
��hk�����֊�m3O�nUٗ ӣ�&�Җ}�|�ۧ�1�,T����'n�9q���+�N���]ɧG>�l��QG���,��ǩ�j�~���*{ʷB�U9&图�b�&�r�o���f�T����?�ug����$�Q+��*	T�N�U,ד�G����:օT�\U�V'.\Y���S�B�kJ.[~�8�\�ʨ/�0^���BeJ�Ѡc���f>-�������LO�|�-����'ˮL���
+�:P�!��+#�YOnz![H"�I��ٮ
+
�3�l���U��H�/�f��_�@4&�n��h�+J�U�Q�׭���-��._x�ã�Nٷ:r�[ƹQ@%�#E�>�#��}�F%�Tq7��%�4�?���&B
��>05s����D���o�tZ��eLd�U�U�Q
U�5ƢaN��@ȼ�
��:���H��j?�Q(�h���֨����'I�?������ \����X�>`%,�x��#�/pq
+{�em�X5x$^`�{�c��Mk,�GAm��e������������� ���c�
�ƜXF5����Z����o���
�X�+�$�k���$}��)�5���c�"���FԲ���+�3@�H���/$i�Z3�B�v�U"�ҹ��6�#�ں�oj ��n�J�;��3(כJg
�� �WX�U~L_>=��l_��	���
K�Q?ɦ��Xc3��4<��pper��
�Q��j'�]-b��
B�\�ݏB�ݔ롻��7W��8��
����7�!YXF_q$�.���Ϸ�ҙ��T%v_��%Rl��z'	L��h��!�0f:k�e7��t�_*
+��y�b�-=S˳��$���G�Ԛ�%��\IR�k�0��C�ԕ�g���yM݁{�Po�'S���z���k�6a���(L��o��tWfS���xJ���xj�L�"�v���]�Uַ���D�G���
���~�#��lD�I�1��a�81���r�h�T>[���Tp�D-��J�jU�C�d�nW�0-�
.ԓ��QP��˹D�V�QS�*�|D:�*��jW��j�D��

Z;���R�*���vR;[��ͣ��b�v@�p�
�j��m�K�ۢ+��Q��t��۩;C�����^�����͇��2�V��P�� �U��x^���v�
�\V���4Sj��pn��[��Hxd��e��n
S�|7�����
GR
+8�
T�i��m�jܘ����1�{2�p5�^��صh���G�}��X��-�1)��e�d��E��}.�Z���Z�y���s>���ʂ��wF�XO���*c���z���An&�6��S���Q.T!�*�ȧz��ʿ�z�lFNn�D�Mn�:�����Jl�$r� �ƛ��U[S-Kr{4�����<Fw�s�ո	�ڢ�{Z���d!dє\�4���40xb�=����)�4���4}YwK���3�Чw�i���s�L]]�Xg�2��#�� 
֛����-��[�����h�\ݬF���n}w
��ڞi�!
�n�&���J��o��3�Nk�tϮ�
�c�z@�u
����
o7Z��80��5
+
�kpmay����	~J�����m�N}��hz���^�����h���m�,�E��:�W�_�ua�7��m�0�n4�� �6

Go4-] ��
ˢ� =�Ɓ
��)�f�i�L��c��1i�k+��ި;�c�k������l
רםF�¿:���Ϫ�	:��+J�q���X �uۄm\l�2�c0C[� -
Ƶ  �z\;\��)p+�X0�>�W�`��l´�;�m�F}l��n�m�w,\�C����t5S�].���2a �+O���r��gx�� �& \�1m
�� ��� �
��	o���0��Z8�%,��6�'�%�8�K��r�	��4Z�i��MǶl
��
��4
�k���,.A��o�H,��
�z�`�2t~�pHS@>0
�8�Ec��t����5�&J2]X
 -MhDZ���4!xQ�5�
��
���� �4�ѵL��1���3 
_�
x ����溍0Xj�bSs�A{� �=�a����
�̡�
+Кf  ��4�
�{D�z&R,,.A �K�3��`��
��&��i:0�@�C!O���,�h�ͳI�V�@����l#Z �@~���!�v�Ejph��H����': + �i�.���kjH@m<y�ӢqL[�L\$'�8�
+L���kD�8=P��j���l`O���@���u���(s`�ij0w
V�(_$>LI�7���
�����_�K 7���hM8�i�Lt�DZ@�E���m�(^�}��lY��r�A��� �i�$� �
(�⒌F�G��i�`�m��FINt���� �vy1�l	��>gh�ß�L�;�xDS�	�D$m�:�,K���l�g�%�6:"��H�G�
���$p<�"�C�b@.�u\BC�c�:�lu9�a��1P;d` �@� �y酋{�<]Wr}�kYix�F�FZ1uy���=�0�>�����v���p�,�t�
L�L �~Z;Xm���"K~+"�o1��t4
Ԡ s��rۥ�Q3�WA��u@���F�'MŇ'l�G�E*D�FQ��X�� _MblM3��� ��
���F�.H�Y��A�F� 0�K
���u
g�k02� �?��O'�"��-(��:�
l�dX
\z

+`.�
+&�d��s��s�:�U��,�UX
I�r\W�p�0�F��#�L��Q�.Z�f K�K���I3���Y�&IC�ܣ	X���xWQ���+�x�Q�2m)-�.,������vK3��T�Gdh���
�Y��u�D��"l ���#B����]�ރu������@��%��#0
�bZ�9��)9�ؠ�dĺ��Ok
�+H�)Pi�%תԊ�V=�3�����F�����Go�D�a٬�4�~��KH���Y����bo�
MϬfXY���D��	�	��5�='� Y}���%6@L�d7�w,{����
 -6�T�&|�� �7`�Bt��;�W0:
TDܶ	�(�
���P��a*_qQ�j��N�����7
Z
+X/�&څ$��	�ё�&} �����6\��Y�:8Wæ=�,R�-%RhpH�	Df�)E����|G4Qt�(!Se
�/ �z
�Ͱ��	��[d$��B
�*:	�8�����d����#}e�Z�[��<�_���ug
h`\Q43�XѬAo�$�� $��Y��6�A&JI�Y� �x�`C��l�$1� �*�'���^C���g;ӮN����t�t�&lyB))
�
�"�F��O��@�*�]I/y� �
��+1��)l)�L�J2�Es�u!t-���j
4���3��2�G�4'�u�`Y
k�~��Cڐ�	��(�}I'�&�)LX_xֱ���		�cͰ�ܳ�*Q��V ҒXo5�:6l)�1�>�0��m�W�V��l�0
�:�"0Z)�A at e(����uH�3&��s2X-
+��l��T-+L��
+�
��
���o�#��H#bH3X;�Sȴ�)���p�e��ټEk|S\V ��{�?`��@XK��W87�X�.
� � ��XQw
��.m���E���`����;��.hv��E�#	�E6�]��-��0�
I�e�p�e����Y0����ޡ`@I���5
�.0(þ5��M�� q�Ä'�^���T�`��B�C$�:a�����٭��5���g�7�3��&�C�G<P~�(�Pa�w��Ȼ��E3$9�h�Q��J~��pt¶i�tפ�a��^<�g0k���(
�͐Ӆ�aP�C	�u(s�-(J��
�� �,
+6J:�L�(P���H�5Eg\���?�4�)�����������-��X
/�(W�8X8T�����#�� ��a8H#�FG���c��L�v�MХ5P�;;��Ce�\ ��F��u��p�<W�'���<�q0�=�q�B9�����wv�Q�	29t�
�Xl��Z��i��@�#�{4`q͑UQ��V��6!X��$��
m���%z���h�
��H�b!�X�5
��d F#�'q�8�h���%��mu��]7�L�t���r!�כ[rY� �e�\p[yǚt�`;
���uI��>=P�/SmD~?�;��Fm���¥H��j$��5][�؊�V5]W"
����:ED��HŒL���
*�(��� ~?�L9h(J:P	�Ƣ��H,��k�S ���Or���ݨ*H`�Dž-�=��j"�3 �H \��9�aP�՘E� �(��6�)^�oŨ��.Fcͥ�0��@]<

�XG�ڴA�
i(��E��ؼS�
��]�q�0D�
���f��H8:���I�	rX0��=x�4�:�fl�n)�aG
rE1T�
ɝ���\*\

j7�
|������Z)#%ƞ<|W�Iw�~?�� �EcP�غ�����.k`u�c��F�1�hdq�۔�
�����i�؂|��"0���H��u��=�l0
+s�)��ؤP�E�ތ����Qi��]9ǘ�b�pS,L�5PJ�B�
Lj�#&D��
+ArE����b�yV4
nI-���
l�݂b���4�D
�"泹8$HF&\O��
 ���H��@
`0y��%��0I���$(I�)R4��@� +��1(X�v���ϒ��n���n����QB!E1p��lR�FHwT`�E�,c�U.�Eh��(m�-�q�!�����e,T�wb�`�h&����q�JlW�|<�/s)�D at 4YK)��kc�sT���@)
+t��,��]��R�!�H�
�S
��S���RBD��\�.��1PW*Gͣ��H��[Œ[u�͢c�0NҠ����0
��Ŧ�!N�M>�系i�8���Jf�♯H�)���i!�q�O�d���-���*�B�D9h����DL�~�
���J�%�
��ȗ4
��S�B�b)-J
E_��X$��T:�N

`E#ϕ2U&gNd*
(A���1YT�2��q�
@�X�e��:Z��pނ���a�E�)M|��ɠ�Ϋh�2P�PE
@�
+�Dt)8ٵ�mE��_M��(FfQ!
��!���u��Y��]�Hhr�!�I����ld{�}��1e
Ί�0~.��.W�E��s���a�Δ2��L|�bk��
�4G�aIA&S0����A�%t�
�Y82�)G���ˑ�7)J�7�=6XmD��r9���yM
���t q���IlWni�#Z2A�ՀY�2�Ӧ�m�
��\ʞZ�A�aI!kk'���B4���q���h�2�qɓ%3�h2���HW��SDC�)b5�<]Wb}�k]�4%;L!��
�F1[,%�,��<A,.?@��V�V��hRv��D�6�ލ%I��\e�H��
+
+h)���N��2��(�8�A�UC#��y.��z��f�-*aN
+�hڕ�T7+���P�fbd���Ú��G�E��d+�kd;l�Y��c��t]�$v,�
M��)-"WEc;�O���bY�zg�C�Tl������$0cEuu%*�b�yєt�.�����K$���bL4��8��Jוȷ���G3�M%���
�@]�Dn,���D���u���+M�	` h�a��a���Y ���Hҭp0RjR�ɢ01�<
+`��J��VT��q^s�a�G(�����1<��<H�R��a�I- �
�5����!̤%u8�AtA0"��4���/���xp�VS�
!���fBG���%��؞��E&N�lD|�b;��+Y�-y���Y9D���|$��sQ��b�D��3~�R¸�9'��	��
+�d�cϔ��,�XN�|q�e��I
+ESLő����"�z��R��y
�6u��Faz�|��{L�z.'<=��`e��½E�ˠ\�q� L��P���H7�p�9��(;sŌ dR9Hi�+L�ޡm
�&c�_"1x~�!�x,Q69uU&��zQ��RR	��Gy+�Y�ue�^���D7�k�4�wX{@
+ k���2�����e7R��S at o�m�h��pyF�~#R���W)�5
+W��
�C᝖�C�j � 
�01���"Q�z`��� �xT
L+������v�x<Z7��c���(J21�
+^S	�`�&�
[�>��N�!
���XV��
+N"e,"���H�G�
+<,���e ^#��f�
Yh�p�4����`فKq
��w�9�F��ւF�V.Tre���gG{�
9>&;�y���,R��S�
���qk_�T�I�#R)1P����ZD�
�-@����6ݖ�8 س�%ٸ��[��6��2�gQ��a�DC�r7��$���ڱ��f�� ��(;`P���<
�Ҥ�`p��MYf�E�#� � �Y�݌�7�+a!Ñ
+ԙ��+�2
./���Ċ�"[xk�f �
)
����L{�����\
�Vj���ۨ�fX䗹��'�@�޷d�-$m"U/���H�
�3s�˧���Ic�/��;A!\]�L�(ש�s躠M�\O�
0���Љ�p�(i�egd at P)��3Ĵ�0�`S	 �걊�L�螐�7��� ��

c�*E��
�b�w0U,7�u
+�Df�!�'�\(VI�)L�m
+�
+��F�X2E1C�I�c�x:E�b5=팔��
+�J�I!��O�!��e�r�
x��O0LI�c�u��b�ΐ���:���4%��'s�7�-Sx8�Lt��
?E6]��X�Q�)Z��.e�n=Nsr�C�b
�-$�=k$�5�m���6s/ϸX���
k��"�_4�k�ckuK�+��}�0��+q�,�m2t�
�.�<m���
Gvp4k�
�،�u�f
�+�:��'�Z<<'Sn��
�sp�x
���f#W*`n�#R�5P��
+��}IUIu
/��$G���c��������^��@D��
+KM�e��}�(¯�21a�e�L&����!K(<�S�h,RU-:����
��ȡ3X��X"AƗ��
+��u�J���b�b��X�Yt-nE������^��w��
���h�U��st�;�*\0��K��T|�c����j��u��hq[��-�%$.��C��\��Q~�0�h
jE*B%Ҥ�	���b�hT��V�V�E��h�Kr��F��D�f7q���(P���/r��F	�i����#.�)�Mэ��c-�j1�b���hh�a:
V�A���VLi�
@<�c���j:��a�G`�̢����)�U�fBV;j�d��
+.�c�RA!�n�-��H=�@]��-\)�k�-�-���)�iI��s�q�L�s�F�Qʗ�U��3��
b5i`5Y1��M_o�r
+���qJK�)�i�M�a��#���h�@���g�*H �T���m���4 �Y�n�^?�N�|�eG�
��lx����UU�Fn��ƫ��u�R��z��,|+R���U�����x��o�2� Y/����b5;���H�
s�
qb�:1���R`�D#������SAZ1  rh�|+O�w�,��Ru0��e�5�Z�t]���x�E�2�
+:d�]� ��υ���J4��	���leJ�dډLJ1YT<g�H-��M@ǓԱT6�P ^z�v�5��bO6�ߤ��I�x�4�@��f$�V*N�#K&�L9�2ކk�V
E�
Iv�'u��ˬA<G�#ij
��D,iT��h��
:)�M��X��_����pP��D
*�Cҥg�y2�1�h���+-)
���%���d,�T�kI�.E�W"��h$*E!��ZJ�b¡�.�"~�<�Ba�U�[q�XV
���c
q�1�?�>�;���:�]u%��
�Q6
+�B���v@؇D�.�fF�Ј+�b;v�%r&���
+;GQ�)���v
"�EĀM�E���n�U���L�l���麸�5l�V
��ѣ�cD�kD�s��{P�3@\� N��,�J�mK��K�>’���T
���	���$$
:
+`�X���Fm�"t8ʠK	���
�!q*��  %=�,a]<�Ů&!s��“8T�h��3�B���EU�;2��=9l��Z��ox�ܧf
+.a�
q��̛��RP���-�� ���t���LQF*]P��@��Tm�ѹ�ar	��u~9�)O�4%�!�4�RZc͞� ��F����3�(͕oJCkc��i6W��F>bD0��xp}1���w�ƃPg���04�ׇ'�8�i��B��d��m���'Md_��*����ϸu�U

����|�r�����E�d��C2�
Zp[�f�8
��T���)GZ�!�0(^%O.E	]���+�i���︳~�l��J7(�.lj�)m (m:
��"����> u�
�����-駸H
+Bv�C����=�F��;���jàr���8.��H��� 5a5N#Y���i)��TM�!�u�|�/�R�`���L�5�ge���7�A��|Ȑ<�F��P<L��A
�A���+�@��xB>H��(�S�
��aI��8��kd:�J2��l���c�fV0�'E�-�����S���%��tlPl�$�
�|(��5�� �&��2e�����*���1�r��8����:�t�l�	t\� �,
�Ea�Q�[ `^P���m�	?��������ln��
:
�:POb
��my��� �LZ=�r�9�+�%�Ms�ͨĒN�b;�ϐ���Gs�9��
��l� q�8��zL}���W���ْ�
��L���=
�
'4
2%H*��k!�Ҷz�N~�9�U9�N�
+�M�˝��H#��?�=���6����
����S��J�/�ipc7�z�EgU�E=���2�zdJ�6�"?��o�����
�'�	J
{��*�l.>e�RMBݢÌ!`漢�����,t�DG�(PN���'�j.>�\R�}3
+�H����7������d1B�����U�QԄΧ�u.�k.>���+YNW�$B0�c��W=����g��
G
Ƀ��SF>�N��
 [1����.�R�>wG����p��e�d�L�x���	Yu���B�}-�,%�ԋ�S���%��V�'ͣ�u��5!_��
�h<����6���h��pWWw�'Uȴ�Oͧz�3���]��_�
U���Q1���KԐ��M�``*��%��q�c���:r!!
�W��s����_�?i�_��t��Z�b����X�;f�`�����|�5��)ԛ�NZ�H\���Ol'��
\0��_��P��S����5��Y0�l�Ws=�fB`�C�qF\�9�M�t�!��0�Cߐ/a��⏡6O}E���\����4*X�O�l��d0
+��51�#�BH�����
��m}
�98
��6��v�kV��
x�
��|��a�
XL6�#�jv�����,U�>D�
w
-���\�k	W~�\)`@��H�$�����G]�s�ր�uۨ�!�G<y�6���
C
+��+����O�ٳ�\�lP
�P�^8�5l&T�x�Hr_ơ
���o�s�	
�	&�\�
X�Na&�I�?��}U�ExǢ
4��,08�[��}
+�� ��@R�B&�=��
V�P�
ԴgU�],�\��#,p
p��/Y %���.<d������-��
��q����H�?G6AT��R!h|�_������|T���]C��%�����j�s&�,�iB���:
��T�~�2��?6D�n(����Dbs
`�T��,!�eLw]\*��\q��T�u�)l����T���-�\�
�y�Dd �� Z͜�x�
��P@����*�4�N�+[�B]���w

S�@Ϭ~�X�+}�x��.۸E�/B�G}ܢ�C
ޫ�q�no�-�A�:�oJ��耺�g�ú1-U(d�=�������q����&�r]�gz�z����|WN�a�i�\:��W�x&]H��w}y�A�8�@m���
�떼��ո�
B�ț��q��$ ��lI�%8|���'�iԆ���uF���Y>�� T�!!4�e�
h.
+�f�;M^�X
Б%�<��z4�[T�W����*IA��X��؂Դ�TE>�����\`z���4��M��<*X�#El/���$ָh&>$
C���X(��ae�e�	�2lwYTょ�
���:����!
�ņ� &`�� }�m}̰�C2-�g-�h���([�	�����/����٘����N�"��6
�
�J�(��*��7E{(a��ds�
�sӦ�
^&�)p����_�Lr|���E���f
���t� ‘	+��
,���6������We�An��F~�3�.����s5v�%��0`az��v@�㮚�H�'%{v��]fXJ	Ά��l(�][�ݍ�bI����
+�Ãa`J�AL

��Or�1xN.����V$�������rv�.���T���l���tQZl���ȟ�|D#|i()?�	r]��[��ن
N��,(A�eJ����"	�\۳��q�
+,B|�@���
+�Q��*
覈 �4
z���4�d\:�Y����iT}@sV�5�ס)�0�0�b�xff�/���}E/z�ۡ=ĠCl��",��ѱ��
��XU��?�mi��
��?�{��ӏ=�Jܽ��lPo
���
+��6#ς�y��.U�`�<����&�cĸ�c�)<
+����:��B��ka�I<`g�qU�<��%���
:�셊%H0mT��NS
~�b=C`�*:��5���

FMl�G���˨%��p�,N�s��R�:�ң���o�F�OGj��ѩ慎�pw
Z5���B| AXH�u�؅���͂
�t�:Bm���
���aR=�W��1�l���
d�L�H��X#��b`����Gh�C�tT7<�ki�Y+�L��mQ�A���Ô6�xHK���L��t �e�
��Փ��ԍ϶P��j���)6�xl��kd�:F���%��<g�n�'���ݏ�
+)|���GOL�H�f&vezZ�
;��zDŽ�撏MN�
3r3m��zv��� K덆gQ?^Y��M��t7�A׺t�&�Ф�J
�?�Q��LlM`	�pȜ�mh� *���(w
+k�7
endstream
endobj
217 0 obj
<</Length 65536>>stream
+��HH�l>����n!G��:l@��=X�LMu�O�Kv�X`+F>k�-	�����tN��A�`gd:��[t��r�Q|l-�]�M:,��?qQ�>� G�6t:qC��z
���p��
q�[Laz+�=7�ЅJ��\:ިČd;.�xau��Fr �C�
��\p,�F�C�1f��qXjt>��6Q�-<u%l�E���K,��#{�f��x��-y��
OrQ�6J&E�V��܎�o'��C���ڴH.r,yr��@.vM�s�
_�I77SE}�𐉰�A��O5�X*�9>d{��V<._��m L���4����
�f��s�NN#Q�xV/P(n���e��"#H#���l��K�e��.��`	+7��;@H�k>E4���,��M<��ATL�t<�i�mO�E֑n	�/���%����u������&�X�OW��2b�o\X��f�
5��,R��[�AH�+x�֤^K��X���P��b4���@�F�t&E�ߔ����A
���e�@���ue���I
r�����gn�
-5w�;8w:��pc<�<\,"E����v�M�z'IR�VȄ|PU�M�w�����,���ț1u�U#;�E�C8Lx�Å�X�NכP�4�����E]5E��B5!_l7��2M�%����	}J !'j�]�h{��>`B���F�ǂ4$
�|�
7
+e�-[�a����&s�%�7�N�O�!��8�,�u��K֠�a4l5Hǰ�6j>B�=ZI���QY�NBo�6����#⳸��N70y���s�
��3,PL��+N
��O}���ɣ�53�O�8�
�]�x��25�T�ħwq������E����Vޕ�Yp�dS:��Q~_xc��cx��:)����V��J�@K�B�%���_��:���]�]d
j@��#��ۗ���Cb�s��#,,��!�
���z	Sb�<�7x
��
�
�~A��|�:��cJ��r*O3�T��
"F��#at��z�� �{�9�� �pG0��Ë���t2�Bӿl��� ��� ���/.�>p�D,
+kb�l��RӢC�:��u�q�
�P 	����C�
�
.���V`�W�#�*�<��!
+C�&�l	(�)��eP�yY �Y��Z��,
l�.v dZ��U�OĨ�F������#g:�4��#rwJ�嘘Yv��2��ұ䅧�6�r�P�Nf�
�����_�ql�G�D��7^"��".*���}�bT��H
��,AäR�#+a�p���K=�*�
�T\^^y�o}c
+D�G
+��

+����g�es
��
�1"�jO�YT�O�M1A��p+�d�d*��
�
�7�)t1j@��V��p���;
0�Q-P
Ʒ�ǖ�dˮߴ�
3�v�CNg-�O� !os
�i��������T�[�NP�@�^���S$W���D���MC���Q{/&Aj��.��e�
j�[l�Iq�{:P�m
�-r�ߴ�{�+�J����j(�E� �}���Q�qWyRJ�������$y��0nCg�hx��i��K(�K�
I->��LO��S���:l��Tӓ�� �;�oCpt6�,<BΎ uJǏ8�
I��chҭ��QH���@��%�4�
�g�]������
��JG�דGr�KAPP�0�6�(�I�؂祻�8��pQ%xt���N���T���थ`��*\M�6����w,<��)}N��Ԍ�׆}$4`=&Gj����<I�v�lD��U<��<O
�I�Sbl8#i��	�9�}
�
gl@��R ��1�X��w���8)	8ݓ
�Q��J�֬����_,KV����+����6۬G
��,�
+�ws��'�fE��6LvD��;��1E���$HՕ�$RP͘�
� 2���{�0�*�{��ؗ��w�����l�MSw�P���� �
�y�˥#�t�]�~�o�Z2a9��[�]�8
{�	:�M�
Ċ�jؖ�+|��w�/�s�A�D2�q(�	Ly��O��ʽ�M�
�r�B�[�G�f.ڄ��:앺ض '@��P�ɦ��J�8���,n]K��[�Ȟ�
�?dZT�
�.��P��ջ���dc9�U�V��_�ȘDp��&���'}�d����!yP�[�_��S�:�N�k:�ţS�4�KL�<I���t{�A�f��쇅鎈E��.5�b��ơ+өs��hKq
DFj0^�Ԉ�zl� �AQ
�6հZ�����
�?8G�U��
wV��2�K
ߚ����{�{
U0�yn J���şG� F&�j=:���)��2v��":ܻZ�9�o,�$����ޓ�I�����.mw!7�m)P�Y��xV�Wِ�RX��>������wh!�Zt笼/��K�ꅼÈ	����-?��ή#{;�D�6Ű�&!�Q� �}'����������Zv<����~1&	tX?�5��y
�b]vw�+Q��$�3_����vs�o1���š"DrH�22��b�%�]ǁy��T8�cP����V 
�� �og�1q�����{
vf^�03k���,�o'��U���R�]縼�.��Cz��h�"�0�	D!z�c�Ժ�
i�����R�^Y����b�.����ǃn
��i�(J�:�k��K(�U4q�kR����B)h7����I$5]�&��
�
�s����F K�W���զp=FM�X��,
��<����in��דr�^6���
+�Fy�
�
�ʃ��x��*,o�dh�rT
���x���lĘۤȘ<���ڞ�}yp
}F�:�a�����'�2�������U�Q�����)ɯ�$�|��~r*��W?���l���k�ޕMg�����Z�r�kZ�Gʹ�	���W�Os]���C=T������8̼����Y�es@ސ�@}P�NH{tq�A�_ٵ*�J���n1l�N�K4�z/<=�u��
Lu-<�z/<=�u��
��i
X�
�
�:��&
l�����h�
�u��-X/n�Qܼ�h��u��m�
+\��w����o���}+n�?��e�]
P���o�?��~~DG����
�#	/�
�2��
˟�
�`:-
�
+��%������ߒY����������
+:}
C�!Ӣ�U�Aa�[&ȶ7�(� �j�@�!_�v�
��m��� jy���� ��E�T��a��Dz%��;5
�&9&4[!��Y�k��n�
x|�i�L4�\��Pȑ�u1bn�S�{J(}5�
���
+����'M��o�=+ԍ�Ѥ�F� x ���
~��k��m2���rD�9�FI����{I+��_u(�@��
�� [s��u��
��
+�'�J^)��1�\K�E��ts�k�(
AԒ�� pD]�����}�v��'�/�rtƉ�#�����{&;S�bp�,:�W�\�)_����>��=�f���0��Ad%����7�-���-��
�J<� �*��x{
+��B���d�����5H�o	D�
��P[jU���6R�"�)N�&��!"7[��Ab �q�z�]��ⶪB����o��st��Ʒ/gɅ3��:C��iD�21������E\4�Z^Kxꛦ��Őn��$�ʌj�/Ӹ/��
��H�\_j�Kn�Ѥ��E]����T^�@MH���\:b,��<>HQ�N�|Β;C�љȩusU
�K"�kst��
��6	�(�$_�@��lr0�� 7�Ꮪ�y=�|0�yN
�s�
3,
l�0�<c��ǰ��ھܦ
+ ͧ|��R�8G�AG���Wǔ�ߢT
tAH��-J�����F�
�6
S*G0���er��˻$���j_� f�
�$���!y��,�A�E��&q ��
��S1)�
z����	C
+&�N4ן
+�V�SV�b����E ��&�2�j�I���B�
(
0hG at GYd� ���H��A��@�$ a�(գ�v
D�
+��V�x�2�8Ҋ _)|y
�.�A�Z�4F�h�qHAԡ
A��+���
_fr�����]�c�20N�Q)�� E��
+�ꢾ�O�<�-�,�lK���&�
7
+�^ږR�r�(fɟr�4�/7'lB�"y-�yTr��|�px�Y�;gԺ�Д� i�`���ocG%N��Be
+x1�tU2�6�|a7J��A��"|���W����sB��%��٦�"S�\#`K�+i�UV�%�OpE�B��ڙ̸1 �C���m�=3}
U2��ɖO���"��|SI$F�*���4;D��Q]�аR�Z7�-��0��&�L&���d�����&����W����_Y THIh)k\A���0[.8Whd6������"� 3)%�}Rq����B�{O�ȅe0^_�91 _s
��Xrh:!�/��a@�`)jɋ�&�R(�&Ւ�p�QO)��7B5��5���
%1(�d�s�:��R�����>7��&��CV��^d��0��g
���Ҭ,5�Ք�f;�!%M&�7�|�)��܆�V�n+���D6�XI!
e��a��
�: ͗L|�3�Z�v5~�����c�1H����*7H
F���G����rr|�'{��	W�jꮣ@�H��s��D�IaQy�|q`x&f#�%��)
� ^�
`�"�Vo���Z�t
[x�MYc���r�h�
�>(���+
�
�(�� �񌡩�@��'
+$fW at fv����� 8vQ��@O)0�/��1�������R8 �u%�Yj"H�.*�A�,���8F�rg�@�ȒPb�=��@�nS
��׻H	I�Ė�W�	A=�	
%���VBV��"(�(E��xT^b��#[A�K7��Ц�}>ȗ�v�Lt��H�lIW����r�@�rB�V�
z�H\3#H|�aY9nhI�����}I�UԴ�ç�	dhk�
ol ���,��rqC��!/׌)��/�
+}��Y���3AG�	
#���)
+�I话����7���Mm��ED��գaj
+�
�&:�G�	C-Q`Q�E���z$���\�*�j�^
�jY���+��mE[l>X��3xg��0��1U3~��Θ|�3���
v�G��*LΥTqT���1� ���\>����ln���i(�A��i�B�fdݚ���	��$M hZ��:C
�'
�DH1S�������TGPѳ*����2S��p�W�1E���Q�+ U�WM�U�|��S
+���E����D�)�]������o�J� ��ɩD
�49�b��
��J�(?A2Qc6�u�f1���}����N�r�U
+F�O�^���1�
_�C��D
+~%As5��3<� L��~PZ8���An W �\
�F_��Nf�S5��
�*U#�d�)��i�<K/�_� ?��RZA"`1<��A�:1�~�Fi�35�v1]?ScJ�A�S�9����CF/�d�Ɣե�D�b�ld�	�v#ϱۆ�y�'g�e�5��f�OԠ�f�F
�'j@��1Mu-�
+a�V�
$O>�)���H/J7�8�'jLy���o�Ru0����1� aX��	5tα�t��%�
R,C���st]<�&�$�LG�p���
�v2Sc��J �LM T���@Oej,��2=?ScI��X�����
��Ҷ�d�
A2��T
߮xΤ���
n��ce��J&��(�1�h���
+5x�
(f6b���`���0J�@��/�D����!����4<�J���&�}x��F��?����E�^��ju�`������J/*�QЕzr&j�񐵥6K�o*գ
� ��`2�ė�JѮ�/:��n]�q�x<�!2&���@�M�7P�N~)ѽ�©S� �Y�A��$�%��VUH�cpX
+*Mīt
�2���;
 �
ݰ+僣6����
+�s�AS!M?��
+���P�C�P1�A���bq��>`�!D�H�E�z�Or��BK%9|P0�Q���� ?�D�
��M���$�^�p����Ar���Ox�
Y8A�M��"�If�^L��( e���+�	$S	F�0(f9��$[>���#V�Re3xt��)%ы��{����90���UY2��q1�`K��BU��*�+�(�B �|�4�MC�����J�y
�Z�U�����S�9�� E��"�
ѧmK$�tL-����t�s'�C
eJo �R&�
+�lX�Ot�A�0o��\(p�#�T�CA����;�

+�&��䱠9J�{�
e�i���aRN�T��s
m>��BD��Y�kA���VH�c
�uB: W؎�
+���T���^ �Q#�>Џ��J?
:�0�T�:�
P�2�P��ܥ�n�Y�
�Q��˲�KX��䈙�%2'������;��fLs�&%��0
?�!���Ǐ\~5�ۈ�T��ۈ����
0ٔ=h8�
����;�t�A�l�C�0`<���9?9�7�!�'
j��|g���8���2
z��1�O�ycn7�ԠL
MY25L`��A�(}��*)
�B
+�	q��G�� ���N��9G�@�(�0�=y��e�9�YH7�*CPt"�d�.	 $�<~1 ɋF�/<}HP�*�2�L�8��X{f�\�R��c!З����s���k� E^_P@?EL�v�/�T��׃�T�r�������*|P(��U��%�!~���Ҵ�ń�K����H�
��l�Aʵ&I�{gN���8v�4���2ڰ
��_Vv�%+
;`��+S>'�,K� �&�f]� �*
��<�J.��q��Qt��$pv
�!
l��2�*�EI��/-�~�k^
H�
���O�o���
���H��Dl�YE�Sf[$�4T�gɣlůn��qv�"y,$w�c`-��#\�A
+�jr|�-�\��
w�28 �.���.
KA۷�����\uNw$̃�!A@��B\��3�=�z,�Uxoml��XhH
[|�1$�: �Ỻc�� NE�Ԣ��ds�N���x� _A�R�Y2�
Pw�
JW:���@E�i�r����d�NHC���Ж�6�̩���tg)
]�l.>	�FG)h?�L���a[��D�J�M�Ɠ�`�s��A�X�ua�5)���
O�
?�Q�B>Pe-�i6�O�T�jrU1
+R���P�M���ml͈��bl;�	���S�g��S6dMX � (T��U��?X�V)�`�,�~	�:��A��E����b�"�by�I�%�T���� )0���uI��?�a�
G
�;ņ|�?A�ҴocAV�>�tUq&��!���Ĉ��ss������-MW��ټ�(A��ƮZ1 �d�|6��V��
��C�opS� �R�����%�	��z�X��	m�!�-S1���E{�@>CEh
 �;]l��h!:�J��T��0���Q��(B
+�"�tuxM�����>�J�	w�U�J���&�ϡ��Q(�lE&(G`�5#��"�1��+%+9�O��|1�h
+
�k��o��� M�@_�����Y܇���~a�="'��B���>H�@PDa�5
+
ʲ�v�;��F�h�Q<���~5n��m���;�/�V��CX��a�(�V��CX��a�(�?�����;�U��CX��aŊ;�U��CX��aE�;���\�!��pUц�b�
�*Q�!�Xq����
��J���CX��aŊ;�U��#�-7Z�A�V��CX��aŊ;�U��CX��aŊ;�U��CX��aŊ;�U��#�
w+V�!��
Šw+V�!��
Œw3Z�!��
Œw3Vܡ@*F�S�
Œw��9\Y�!�Xq�0c�
�,Q��Ǟ�����Xq�0��
Œw3Vܡ@>��n�9.��c��p�0��
Œw3Z�!��
Œw3V�!�GS��C���4

����7�Y��C���aƊ;�Y��C���aĊ;�Q��#�
��+������
��
9������`
l/�T�{uÔ�����K��#�첋qyr�%�����̬�i4I��L�Az��!H�;i�s� o:w�;�A���!��;��s� oq��w�
�� [...]
+7tg$J��l9tg�С;;*S���՝7�B�]ېM��61[�{�y�'[c����l[Swv� ՝�"��l���eH;v��4�8t��B�<?7tgA~�;��#��
��3�^�3�6ug(�НqW:ug(z�;��ԝqk9ug���D�{�y��
@�;��u��8�M���ԝq�N�ف{��lC��;;��ԝmKf�ζ�5ug�Ȧ;;h���������T��,Tuu�c&���t�i���-Չ
8Y�ӝ�N�W©;���Cwv��5�M�y����� 
S{�(T�̻�;ۺ5�X
ކ�l
ek��FO��w��
w��6ug�:�ƶ�;�VUX���u�
��j�)�n�ӝ�2����̯�D��(��v
��5�l�w]�c*�>�֛eB

��,�P/Zz3��i��2cN�h���B����E�^��5�A�G/��1vA�Ts�%��9�7�L
���yq�.��f[�$[5i�9Sof�
���fS����j��h}��.��(Z2�f��h��2����6�ټ0�EKo�Y�h�u"�	��fX+A� ��Jy�қe�o���f(�5M��2l���,��Xd��2s�Ō/�Ы1^��fR�+����,���P���ՠ�qS
V�w��Mm�.
�p4�vA��B��5+&s-�Sa�YoLk����l+4�f�zf��
+}	QG-�Y�D?�Kk^_[��ܙy�q����6�Z��զ�S&E��
yt?Yj��BUѴlMU�~���2�
+0(��'�G���,�'�Pd��2� ����p�N�-}Z��E�SO	���-�Y��%(��;f�7�f�%P�"�]��6�
+M��b�eZ3���e�$Y�
�Қ� ��
P�\ɦ2ӥ2��,�@��;�ܶ*űMc6s�@!g��Fl�`��|U�'ټMcV�-l��Lc�Әfr�(3�05f������1ۊ��U(��Œ���Ƭ��H�#�)Ilw��b.�hi�6ư֘	J�^i���2<�b�4z

C�E�Ԩċ��,��EKc�<J�k����o
�@%:|�8�q���K���_[R�
0�#=#-=�&���l��Rg�'���
+o��
+J��=�
`�;�=����xOֱ�~I�.��\�
��O,�-�b掰�|R4vbQ��K`�~
�:&�E���C>a�uJ�vgm���
+�͋��
Rk\��
+'ٸ��o1�Ӧ��nKk�~]bW���u�'v�B>)
G�a����fM���}��M�%�ý�����N��{
Ϩ��^Ǜ8����7
�=�}:���XEv��u��^G5&^���Qoh^p���&�]��qk6g)��
�
ӇΨȱ�:ۊv�:"�w~2[�'Ag�/[�QK0�~b�H���h�=�
�I�t[�e at f8���l׭Ѹ��3�%ɬGG/�x{�'����I3%/;Vh�	~#ԏ,�/�$k=��j��8�3���i�.��@�����FRV��L��F�&�w�"���+![ۂ[
{ʺ1s���2[ȵo�z�X�u�[8w�l���mj*6�:���[�.4%<�6�:�����Wݱ��RNtn)��/5��I�&��SI�����xs��[{��<K�a
,
��1���T��.ڼ��Ev�2����e�y��T�s
�2��h?@�.Tc:�� �)��m�Rt�8�?�~��P�gg��Ş���/��Ak���vуF:vLS�y�\'�f�@`W�6�X�ـ�m҈� 3���DqF6�]i]b� �
+�Vc�
�ӵU�68�z/0�Z۶X�Iǖ6/
{ڼJp��<
Pb� ����4
�m�"��pL�Vdօ�4a5�9xS��I&�d�+�C��:�
�<�/���cK�
+�W��%}���g��(���h��2��
V�E�\��ڢ�@�fҵ
Gk���f�]j�@'�!�J�fCf�

�Q1��C�fIќ¸���V7M@�B�d�6]�ζ�SK�o�%c�mӘ��5���"�Qw]hm>MfB�ڪ����f��tSBgK&��K��
+4�Ud�)i�&�	4���@� VȒGo�̮���沏�
�Y�$n�������l�[Z���������,Eκ#hZ��ZsX/?�C� (0�p�	����(��b�A�X�:�x�6k������xv�j#&{��{!�ܺ�5z�>��`R��XkY�ZR^4���l3�Ӄ%7��l�vN�8�l����
+S�"m����
"A1�������z�]^v��q8iQ4-Ծj�Z�4V)-�в4���ے��-���8�l�;�����F�m��s���n���M<�)����r ��k/1z�A�B�� �c �x	:ӝD��e���ډ�R��/o��Dy���C1�_�CVY��ȆT�8?�9��8�`�f��F+}���~M���uRu��z�ǝV���6�A���R��@�٫o⭟YHI�Ͱ�����#��k'1z�a6ц/�m���
��M2
�X>g�:a�t�x�:��)�2�mM<�T�ԪȊL�	�,4�R��2��#;(C�i6ۊL��؍t`�>oV�}�V�ڃ��
�d�A>5Q#K�&!��^����ɱ~L�aE=;��X|��h:�Φ�
Մ�"{ߴY�^��,��zD`�Q4ǸE���� �TD�}�i(�F��̰f/�#�*�>@�5���e��e�WR4E�������I,틃��3�NS��j�����d+��v�I��IYG����z��K֓_���m*3C\}3��$��AY!��
#3�ٖ��c;J4��:	�>@��RQ\��DV*0�0�٣Fcv 1A
+NR��e���� /gژ����|�0
hvw2Ls���Q��������2^6=I$�
��=�ʹ�1q-j���1r.g�JV���X�Z'
4H���9Čz'�hm���fFi��"�w
�"���q�����Y��- at 7��W
�@:ı�? ^�'�q����E}�  1΋�V7����1K_hB&eA�,��>z�p[�k�����
+�nN���lT$�6��
O	
+�^�jM�k��ę\
�
�=l���aBIv2W�
+���
��͒e��AE׿\�+��,ʒ�{��{��`!Y�,�{�}��l$��+�
^f�C�/���ۑǔ䤜�4x�5l�p��6�������?��#\�+���,m%*<�J,��y��ɲ�/��Pr7��d�N�}D�',p�_�٦h�/���]��!�Qȵ�S�Z��1b,�m���T��φ9S�]��b���f�����MvQ��N����kp�/�bVWG}���6ӯ�^�����E��z�O[���L�w,����6U;�5��g����^�
�r�5"�E�hdX+�0H@�+�^���ج�p��o�Lz��͖��Av��q_��Q��Q��pl(s�+[
��,�
��T��EQf���IU�" �}��T&��dK� �/k��f�g��{���~�e��Հ
���G'�`��0�C�y��`�
[1u	
R!��L��,�<�+ 9��"�lt�N#�'GIM
Tȱ*�$
+:��w���j[~[��a�e[�k��-V�Nxcl�eVC��i-�l_
ɤ\�����ѣnV�e]��Qj? �TAJ}��n[!�Q;`�]
�e5E��ǯ���~|n�"m�c
�~L��I�z�Y���]��GeΏ���o�\�MTnȨ[z�o�wr���ھ��'﫭��Vڧϻ����
���|?�w�m��(2奭�۲[��˦�pO~@[��;i�ݢ����I[*n��[)��`�vĖ.6����eR����x�!q���{��k
?���o~P������S��C���i���el؃�;��\'�Hv�R���N�b��\�}���f��uL y]����
��
+"�ρG�����m�RUt����(�Y·�������h�3*��h8y����7���NG-����12z��o��t�t�#�Մ�ߏ;��l:_�FlkЂ�V�Wþ��P��
������
���I�����v� d�J�u2���E�>6|�B�i�����
�!�����N`~#?��R�7 ��{��'��,�<ʞ[i
+�IP�"GWhV�r�E&� �����6�V��N�t��D��=�D�h��Ew��@bX����&�CY9(�p��F�
��:{r�V����Hx��(E��H�w�<B	&
�K9���(�$�
+D���1A��fFK���
=�A?�N����d��(s� ��k>��7A
+���Ɓ��

Dua�"̊��t�P�L�<M.�Q�}
���4��Ū�@(��u�Iթ��0�",&^�6Bp*�Z�AN�~
-�I�c
���
}�`�R�=9%���#
,t�DY�dz�
���0J�Ęp-k�]���_0�-�#:����hŃw�[e��^e<s"'8�q�M����Q2�"i�8?�:D��gFp����
+��
�E	f*�i=�{��&�"
+"{����*Ǯߑ2��/0��Jf
n�$�%D!c�|���
+X�n��Y
+s�kd�p"G����	Z��$0�
\.ȚK�
�z��9>�U5��E2����:B�V�Ã1�Ѵ�@p*<��"L��@\O�p^��
+Ip�+�'�)�CC����L1ӽ���>���S'k�o%�����d<�H�!E`�% ��2D��b ):�Yf��"T�e�%kAڇ��<�!k,2���lƺ'�!�
����x��
�3sJo2�]���'�o�r����u<P�"�"�^�u8]�s ��tI���RE���`M�#'1�fr]I�C��W����Z�,ؚ��L�2��&-������P�;�
��2iS
�h�����4E��S/�C��e�@��I�eqv�I��t]��gI��3x
H���Gr��#�_�6���O�JbQ�ɒI��d��`�N�Hf"}2x��__5�i)�	�Y��J�u�U0�6L=�p�r�3��30�
 ����"(�U

ͱ�;��ԏ��4���U��+o�}"��, at 2ChT���
�cl���Sa^+d��pZa@)~S����e8� 
0U�T�FI#�A�H����L�N`�u�8���O]� �/x��"Ռ4o�d�݄q�U�H&��*�����zT�O�d���(Ð�p(�+H	|�R4�1�Q��a����LiȄ<����x.�H�
�`��#;UR�;��R�cLADM�8W%��h^ 
9�$ӌ�PE��$x�
����;HR�ƃ|�K��	��Œ{\f!Ik�#�l<|�G���'k���
+
y���48�@&�#��C� �4�8��������A~�
+D"}2C�F�:d��&���
+
vG8�tD��`���9ZE�)�����6�I�D�� c� �AP��G���m�(@&�}

	�W������
B�P��
+�)�!����b�d�Z�@��MU�nG�p��1�PUzp@
x�O�B��,k��J�߄��:
X�Џ�#��t �$tg� 
�0�B�f�IRh�R�0�j�Ю���d�1[?@� Ϊ��+I�>�Y���:{a
b��E�8"Mӆ�FU�m	U�U�3�N"����F:�hS�D���͍)�7��osu�:䜣�	$�օS�cI��KŠC�� ��5�6,!?!
ʦD��� VJH�Bڔ��'JTXR  0����o
+
&`vg2�r�#Ҡps�Nc��HO� ї1�
@�2���c�bKd�He�a!�gc2Q`��A\�~D0�T�T�<�EV���q"$�*C ��DH�G#$��	������sk���YG۵�2�+��`�:��Fp�p :��
���rH@��R��{"�eB'q��a�ݍ��w�nx}��tN(��E��<���Ҿ�I&�c^�iH��o��*�Q�nAA�SQD�=���SQ��
������
+n�*rXR�
��U� ��ׇ@��D�*��Y

0D%�)
��
+�>E�A%v
��&?�@ �B�<�Ԏ�7)�r!��ᙋr���8�`�c~
	��?T�t!?��@~)����O�ϖ5
2����x�
��#�t��`���
+T�Ҁ�t�9�f��P�;XA���}D�
�1d�E^�.7������N�lAm?`��b��ʛD&�רFe�ex�-�
�Y�T�$f�g�%�ʨ2g&�!�I���� 0I
����@OF)�~����xB�o���P��+��
VG)0�Q"$3�����1�
�h�x����h*``�-�����Xj�g����h�g/%E�E:���DC2ՈqA��}L�B& 4��	��?Y���Tw���ɍ	
��2"
��Ƀ-Y/��	�!�gt�"˻x�>b�
�����M��`Yu��O�ij8�Mj�	���t	%|�HPM�L�D��HxKL��
�,{�
+i�([Q���:��[�#o��YM@��š�(QI
^>�<�`Q�\�����f
�T4D�X�&	�8�Dz�ы� MlNQ���<@p�։`�F����,󚹵�͎�F'�D�&�у��"�C+�C�J�J� �@5��z�C� ��M��a V+�/hy�;
X�Q�E-Q����`f���àLdI#��?�f�F4t at h.4��ﱮ0S�L������X�?}G
ہ�6�͘o����g7���^G	���:;=D�:�onU*G�,V"�	в��d�ʘL���Vh�Q�
�
t�Q��~h�F�f`�(5�lnXłI"x
+�	a��I`ԥ�%y�F6�B�:�PM
J���73z��V�W�ΆA
+��̠ʱ0�<�G;���#�,�%T�e��$�k����4���
�aݝl���A��� w�����2ĻCs'iH���"� x�Z�!QgҊ�
!q�Su���yȲ�S�A�%L֟9U*���I"ct���P}m�|� ���Sňg��`Y��A3���
+�vD��e:�M"��5m��FZ�Ou�B��l����f:���*`��U���w�������$4]���v��n)nhih^i:(Z��%>8�R2O͡,��O�y��h�6Pu& 7�D �0��	ٖLe;3��K#:�LA'R!M�GVX�r���s��l����Z@��R��1�B��k���e�Ύ9nIQ�c�rR�
Ud!!@Q%�!S�8 L��
/���W00�>1�
ªHOg��>��.��xP�1�
�C`Nd,�>Wd��Q1/�i�mS�����ѻ��0	I�W>@3<G�h�:"q�/�4]�	�"=A�C��Q"�;��u|�C�������v
{K�Q�%@QC1�-�
nn<�	�(i�1�F�
��
�39�bG��7�S��!�YD�S��p:A�v��i�)ʠQ� .�F
�x�����Db�j�XrS
F���і�� ��T�9D5�� u0
c�]�aC^d	ٞ�����[WL�$k��3�
���ț�
� �,^��!�<�Ay�y�� ]�ۅ�,�i�$L��S�� v�8�"1� y���N N�)
}H� ���M�\&
+f�3x
ȳ��L<���r��T�#J�<��MU�&T`dC+(�6`{�
�<�΢H��B�^(�j�eپI��TSìH��1�!H� ��4�2�>���
@oÁ@�%�:
`�X
�9����2��"�J.�%*��~s��w`D��T�ëK
X�4��\Ƌ��3nW(%;�[Q�7� E�F��E�wp(�@�Fq/��D��T�&�hhh]0^�B
'H3lx<��J�&���b��
l���F�]
��Wdg�U��
�4L��
��;f&g��"
w ����{e�)���
�@��am�؁��jʢ!B=�E��xq�`��M܁T�p,�*
<O��*�3E�!lH�W���q����6��-.ެ��_�j��*�=N:���
ئ0s:&!W��
���P���f
3*�����QQ1�+�mTS��0��)�=�5��V
�w��F�B
.Av�A����DG~��m��Dc
+G�`7`"4�`J�TC[
+�R��浑����p��J��]�{�^e���W�p>���E�(`<��.]�W� 
��\�ڪp}�����	��d+jA�f��pW	\��֋��(����x|�
+��HfP)0�T
� \�7���]h��@-� ���ցBOq�󂛌J�m�LR.
��@�}Z�讄�� ������e<A'

3 o
���b
H�x�n_��gP���}�?Apa�2���b
�Q��C%_Ь �4��%�,��A
�2�w�
�@d9���
-&�B��#K%!���y��`�A�n)��+�P�p���5���i��A��p��&	�lp?��:�
+�B
+F	ܹ�F;X�H	�p@݂�f1An�Dj*EoQ��G
+�*��K��|����j��"
��z�6�Lq�9D  �n�I{@�D4��,��6 5�d�"�j%z��9y���l��0#.Xd0i�A�^	���-�#
���
.p7M���z6	�,
�$�

�2���J�
�Zh0+�M�% 2���$��q͎.��x�huGGW�0
+jI#$&�
|
~Bj�dcT�`��t���p� �
�y�N�@?H�Tv C��7#�#sӀ&���nاLI�!��U 7
�Z>��	����`�_�
+���
D/N��7���=�
X�����K���>�]@�3�@Td�c Ȇ]j́�H�Y��
+r���B�c����G���F���D/��s�
+X��'z��VD�F�+Q20�I�~!������cH���F�D���9HO�� #9���I�J� 
�]0�pO�B���̈́GS��b�0|�I�
QS,*���,����)�j�LeHPzax�
��(���+��S���u�
���u�J��Vl0��HH�_ W�
+s�\�D0$C at s��L,<;"{��e"|�
Pf
�`8��t4��eAC7�r0R��	ȼL�
�fG6���\�DH��6U�+<�����Z-�(�#�S��r?�Ԑ
H��C�j��H�"�G�6�_�EG599��(��|P�FSJ~
�'�|���L�f����02��
�d�4��@o����dӫ�I�p�6k�<
+:�o@�p06
�
ut;��8�x��%p��Obf
A�"�i�

�wp��u��lF�h����dI���
Go�u���ݥ
�Љ�J��bj�
0s��Q��K�sX�:�ױf����a�i"�E�� (�l6��W�^dn�����H�
+|~k�����	G��K�N�3�L(�(���0�>+�W>�k�
�f��RoVS-���w@*
v/p�ڄ����W�e=
+�P�d���� \	��
�Q]�I
=ѫ\*��� �#c,2/�Y�.
�p�3�n��;������  ��Cs�4ı
�͎�4
�V�on�9͹z��l���]�Agf��Ӿas��O}��Ԇ���4B�$0�
-�+B:�F_o���. ��}�ǹ?�{\����tR�'K2�@��O���N~_4��8Z��/d;�p�5\��j1p�:�γ1w�}c�����~�vF���3
{
�J�rɮ�2�*����\�
���y
'��a�B���Kx��&(6�	|b�Y~�46"�z�-0fmB�	Y遣��3�M����p%
a�?��Bh���7l�	���LFa��2&ñ�bt�!�+Hi���B�`J���m�񒱒s.�{�.8�ɿ�
+��ť�©vdN������a�p�v�B �6�
���Nt&���|D;^;)�O�m��*�̘���gc�]]��c�D�#g�

�8�f��v�_�[��,u���ԩ5W��
+�D8�?Ǜ�K;^��5ߏ�
%1��c��#��6nEFFy����B�r�&���軔���/mW-�r����7N���[���N�~0N�V7GA���&�(
���U�+�#��@��9p[� �w�ߧ�#W�#����'.��b�Y�� ��-*a?�݆
���
+�~!
]Y�62;��d��	� B�7<��C"�'C'�V(L�_
�k(����pD�����>*L2�c����Őp���*�N��Z�tÞm �I5\~���+T�̗[Z�,��W����è0gI�va� p�,�)��1<��q*>q �\�;�f�]�q!��l�(@P>��"���'�O�S׎�k�$�S��e����ȣ;�a���0�>
��� )d�3$�j�6�7�y
��
]�'�,tu���������A�Ǒ�MMCP�?��\��.f��o��j9vT�ն/��##����_�O񂍭����g!$�
k�[�`�*�A�����ˆ�bL
+�>��l����/�7q��Z"]B�^�P 2JhUX�#
�k�o�;Ϙ#��1��4~�J#�3+�s>S���W���I�����o"�v�N(���[����&��xU�� ��W
R#���d�� 
lB��Z
+��WR
���ZL6�Sf��O4���HlDb*Q��vz�}.�]������"�g���8'�?��m��S��τ\���Rne8��,)
+��b�?ح:���O�������_xUɈ����CT��*s�k�^��
�Y�eA�%��AQ9A�ux��H��
�H
D,��"���1~1�Κ>-�Q���Z�m���1���H�N�b���e�2<�E�G*��Y���	<���>ŨޙX��߿�r����J'�Q
�C�Ӽ4\k��"�g>>.o��a��+Z��%Ý��X�� �!
m}����h8�Q�~I/��
~�&��i���Rd��s����Ml�ͧ3We��O���P��
����{���;;(�3�
��C���
�;�L��:�9�,E��[�{�[4�sw�B ���
{��1�N
���
���씲��!g[�_�F��$V
�X�F�He��w���uG$^1}dq-���:�V1��s�U7�!�i�
l��]� ����s���Qu�
[���	�6A����rQ��ԑ�3Y�2���[`2z[C�c��{��j
�ΆԳ�7����v�Q���۾X,u>]v�F;f<�
���'�{�0
wYd���x�o�Qa<��t_\"�Ć:N���d�o<��n� 9ncEc�3���fۛ�
��Jv8a��h���<��4W��6~���$����6X�3X�w]�T�O�y~
�_
��S��4��9#`1�q�σ�'�y0�$��K���\�C��CN4H���.K����H�
�- �U�*���g�e�d�?Y��[x|!�������4&sC`D��y|��uM��P~2�4C���0�!���R�a��9n�`w���"��
V���?�
�.��'�,�Ѱ�l��+?o.��7���4I����:Z�E#50X8��
i^@yH��ʽk�'��z )?��Ǿ�Mc�ʅ��O����}��:
���h��
���a��t���N����2��,��lC�+�Z�UR����]���4.�S
wM!)���$�S���x7F�tE��1_���O}��U<r
�s	A?�6��k���������
;�vn
���P���Ok��mnIig5Z��v݆��I��_�c,�����D�e8�"Q����(vwh\�彵G����i.v6Kw�=�d���pi�
+��A-a#�дy��V�U6����e�F��'~��5Q�&���%�[���;>DF+����!�y&ZO�~���t�r�9)ɝ���:�9W��i��4��uN Z�(s��� ��J�ƜP�5A�z�È�I��� ����B����@�
���@
�e;��
Fu ��V M6m�&N5�S
��)bTd�" ���P&:�f���^���#�~�w��]��v�
�C0���ؠp*�Zk(ޜg�	���Z�
����_68Jn@
+�z��mpk�t��
F�ˆ��Ey�
�5Q��
�m��$M����
+0W�At�9[�"=�X H�)��
+2$"��J�ٷ�&� ��faQ�����q(��
+
�1(
s�
Õ�m��jaԞ?�D�5ՁQ�
�f�h
As����
;
��Ң
Xe�T׻L��l�v
��1��JA�v���.��]&O�~��^�Q�w&Ϥ�1��Z� _�� ����Uy���6l���yF�;��jF�
�BG��'p~���5��O/�6�r
+��Fo����{=����E��~���hrB
+�����{8�	�(M{�9�hM}�:�d �28e�=��?��>���?���>=�&m�T6�+2>��[�E�k>�)���*o2 {c"��T�~&ێ���Ž��#Ea,�#���XG�R��DRS�����Y"|ڥl�[�����;6G�&����G�a�}'U� ~O� ���hJ%h�����Ӟ�X�����
d�[7�^�H��1�L�F��p�Ye�2HH�A>v��p�y�5\\z 3J�� �nwJb�1��o3����Y0�Ǧ�՘�ɱβ	��߮�e��0�T at 6o�S^�R�
��@��v�u�Gb4����p1 �Zw"�^�*®)�:���h���W2��)�U]�
��Nu:���
hҏ4�.�ӱ�
����kc��U]&-@��/Z�OtQrV�]_�o52��{��Ԥo�Z!
+4��@�-���u=���mb8_|QI���������>�f~'yX��Q�
+ٸ�C
��6��ɘ��i�s�չfsca�	���b�g���W荆3L�72~u��N�NX�P3��O���
~���:
M�� ii>쮖f��PxN�Z�On�h��
G��1�0f�*�+�ki%��
L�_:�ũ-��
��(,�/>�/N
+�F�p���bg2��@�h�{5����	���Ww8�����qT�e
'�����������?�ķ�?�Ē�!�/W�/��Ղ��?k������/ߞ
�~���<:<Yt�t��l��㟾/*��o3���]�x����4����4��*ˢTy]�UQ�D+��GS�װ�QK�\h���bI���ӌ��:��G���}gz&�_;��"(AQWyYV�,�W��;s���5IVDQ��(�_���oq��|V����4��тvJ����}���x�|�2]�{DK_M��|@N��zcc��q�?
�����gF��P�
�x۩堥�1Jv��i��Ϙ�b
����,�����f��TA��^��y)�9��_é�j42-�,�(�J+��
+��c�'�y@�O-�
��,��g�eS�^�N�
+W�uz�%��$
+���0گ��N�	�}8����Acl�Xv&=�)�;�80�d;,h_W���^�
Y{��CG��-���R젒���g�QU|FA���/A�A�
A��
��U�t���Iğ ~c�x����ŔX�:�����Qrb0@��6��^�}<��t>��t���k����F3�qJw%�U�Mi���+
7\�9��z���B
=��v�Nˤ��l���9{ŜԬ��o�FF�V��)Wx���ʝ�Z8�yZ���;���E�|aƞ�����p-�ms
l�3_v��y�E�;ݜ/ �:p���W#d��Ż�#��:��^I����t5s�4��ff
r�~#0�>ix�TmMSұ��"K	h�/�+�Q~n����6|,�_M�#H��!B\�x۱���й�=��߂���g��U;�I�ףi�3*��ha_i�522�>������Z��>�Fol�qp��t�
�i��t��9UM�]��˛g�����'�c�ω 6q�jrP�՘����l=�+��
���
+��`�l���2�
����:Ps$ܷ���9�0Gˮ���L�&񊨉��U�3���X�\ޱ��Y��
W�?\v�!^?�#[�3'!�jQYuɩ��N��20���*xosF�����+�&��p�ں4������d�☖.۪��	 뜱X,ٓ�7�^�(��3Ÿ>������{̱V��}@��Z���5��'ۙ<�:φ�8��\ю{�UY��r�B'1W���܀u �K��2�2�q8@���/ΧOÑa���V�I��
a[�d���f���N�vm;�>[
�[{�a�6�w��3�`��@�%��/dT�r�"�ݚ��t}W�N�.v��)u��Zp�3�Rv
�p�Ù
�3�~�Y0�^����Z�l��~Z`G]�~�sAU��N�B�J���D�T�o�6n׿��+�G �'��Lj�Ϗ�~o�vs�ܻ��c�
J7�3���^�� 9�G�s�i�`3�Y�ϓc���`Н���i�s"�
n�y{���K0e���Y�f
S����U�r2
U�)��nj�4u�m
��`�&�b=
�T>����
9��wZ,G�>m�eb�
�A5�6�|�ά?&�G�oj��v���ת����I��>�
`X�kي�
�p�[K�ze7���GP�1�,����M��
5�.}9_w�����R�/�9�5B�}W�7WlN�� �L���}G�
�}
dG�'MMm��'�m��[t�B
�s
�7��M�>�]f���EDa�p�Ew�
�2�7��c9��z4�����&Do:�
Q`9�d. i	%]�� )N�
+=��s��Tܷ>���LZ���lB͘��-`���O�����N�؄�
f[_����
�٨���\���&�ޗ�0K"o�����#�4�̾���d���kИ�
�3�
P
�旔��O�7�w��_»j6x����(a�p�:y���wAg��7�ξ ahH��/��W�_u
+�ng��d
�3 <�v�|xi��W��3F�z

��a|��7`m�ض��&�`�9ˣ0���t���Ūk�Gq�-�D-[�VYc�A��d�����Y[�> �m*�‘�f�y[#����;+��b�!���	� �X��bBƶa�� tB�������ò�6uo@��f4�l�|ބ� ���k���\�Q��琣�',� �!���%? ��z�pX|���_},����
�@���m���E��-�>O�i5�}BQ�)�&U}q�`��dbޑl�l�+5�7��V�Z�t5�.Q��%Н��(�|�_�/�1��l���!0���mr�`�w��o��k�)���TJ��-[��®g|�����2RG㫅���ԷU;���9���,���:{oH�����WcT4����eL�.5;]���!])�	f�� ���+��{���'jP�Ѯh����Q�q(24��J4����
ww'GSy��	�..�����J����z�
)����ڮ�;���\M��N
+WKyu)�����gw����=:������v<���]�X�
�?�
򯽫�y)œ�<��5{
�2�a,��!���۽#
x�?�%�|p��'�E��@~�~��W�#�'�[
���
OD�[���*Mj��82
��Y�#
�#��G�U������)DO:�<���T؜v<�	�;}�?��r���n��K����\:Q��Zw��
��	��Ry��k���<Ryʑ~��7q2N�oG���9�(E��������h�
��z���v�
N���\��


��^�s�PO����z�/�ޗ�n�W�����l�?��������q)r�N"�$�>�3�Ǧ�0��
���n�޴��j�H��?ˊ����
,4)����.�ʓRBRj	�Z=�y�4��g���nY���'A����0"�N
Ϸ�g�\���7|����㹸�k�^�g��ˇ���ULa_v�����H�MJE�{%��]��2\�*
|
��|SK���u�����t�2�<I6SG�P7��= [...]
�Vv<���~���u��qfк���o��z��&oS�x���5�Z������Ë�놑o{Γ��1?}��^|��Z夓8UR]�jR��=�FO��
O��
����x��Я
F�8O>
��˧��H|֫i��Ke�i�H&+�=ix>,�C����y��>Zq������q�+�.z�w��u�a
K_5����"��gz(:�Z��6
^���n
~�M�ݷ�\"8��j�����Н:�m��Ꝗݾ]y�~����K��#^�~��������/g���é�����x���(㫯�#�m�v4y�?�
���q�۾<6�Cǁ�]{
<H_?�ҧ��s#|ZT|EB
+O1^V����U^��M
�W�q(_J����uW��=��%��Uw��RoK��v��ڲ�-��e�s��SH��kߟ��=�٤V�����0�.^.���v��*��WO��p8y�D|ɳ3�S�7gj����5F���}��'�j/��,�������;��&#g�@j�&ޤj�7>-{+w�a��2���F��4�f[�f ���/s/�R�'��
O�������ZTw��?�/%/2����^n>��%��T��`T�%�A�S
Ej-_�[W�]�>ڏ=42	Qo����轪������*������r�s�������=�+B��|�-�}��̤�mg�@�9r^}L�o�@��c�ݔ��zdž���	�O]�<��k�x���O�A��
Rj���~��
rܬ8�C=�p�\�d���kP
���{��ޏ��^v<���$۔_��c01
>�V�
��z
]��	�ԏ�����|��ր/z���ދ�۟�v<�0���G�s6�<
Ðj{⡲��=|i����=���^��|�c�YV�~ [...]
s	��>v
ǵ�A�З�
4Ʃ��asǓz�$��R�u�᳭�̓��e���0�q��\+�絧a6?���C�Q<��R�qp�\�*�%K�t*X���'�4ڮ��Q���F-��ڵ��2���SEn
�+7
#x"6S�ؤ̎�[�U�qS8Z�������m^��Z���}�!�}8����{y�.y�''����.�:]ϭ�̈́�=)}����1u�ӿJ}#һ�����ӓ��|�j���x�
F�����?���7��K���5�G~%t?z(+��i.6ώ/��ұX�r���i70���W��H��v<oD�8}�
+���:o�E�
_���Ai/��|q�_
w��ُ�
z<��@�ӈ��d�fv�Nf�Q�]�-��-��j>�,�����Q��]y������|`�8�VǏ/g�����
L��`�

�ݝ��u=ɝ��ֹq1o�KmO𩇊p�ˉ'U��8��CR6u���{����};Q��;
�-�̩��yC
%�GZ/��{��d�ת��g�Sy\��=���b��C���0�]h�j�b��.��x�}��]�>�v�z�f
�c\$}
�x��=���F�b���)�r}9�_W[��~�yNĦ��Z�}
]���A2��:�y�u�*p�R�_ѯ�wc�iF{-�2���K6���s��a4W��|p�v���?L���M���.���W���
�j�ؼ,Į&�~ 2������H��WK��
+2�n�>���]��:+��Y.ڔ���KB��2G��ͱ�����t;��m��vwxz-޵����8���LJd�
��<��+��)͝vr��TWo;��98�-r�\ݽz
��iϙ��SI~ԞOs]upp� ��)��K�|�%���޷��s����o�2���ړ��?�
�f�u�&w½�A�8��
H�|~Uʦ�'�g��x*�m<W˩ǃT.�{���kD�KU.�\� P�]��\4u�?
+�O➢�[]xҡIf�j�2��������=i�*���Z
��ٓ�w�u�GS��{�i.˵� (x�|���(����
W�d�C�n�ૄS�$������ιTO�S�r���yT�R����e��]��B8�~�
�F{�ٶ
_$GD

/��U�t�������
)��}rV���PR��
����:�=�������
R��P��'�ÃZ5Y+
o
o5�6ׯ�ɇ���8�W�(��\��r��R\v2�v#�}G�
�K�g���d�_|��P at N&{R��Ii7"��a�
����"T�+z/9;Z����dT�=<m�����4=�
{�a,)�������ŝ�wO�7����݈��'D2�n�"�8����Er:�
���S��y�������JO�u���V���7"��彴�{L�����LϴB͛\�yvw,�����ٗ��$�����n
���^�Vk���ݗ\�O
&�������~:�	ɰ6V.<��M�-���=m�
�U���qŗ�tϟ��c���<�l�q��O��KɗcOfRxM$
+��y�bp���nce���R7���h\�G�Ĭ�ۯ7Ĭ���ӫ�z��,ɴk�a^�ϙT�󚉾���~�1sT��fΓy"]xÍ�`&���Y��П�x��8Mgj���N�*�
�|�Q�|��#!����} �)�����n6[�LY˔^[}��=�g*����lzuV�<:�,��@.�/����xz�)���|7s�;I�{��L�ѓ�ݞL�tЛ<(��ԥ�W.���@�Ҫ���c��o���t����qo摬�l�{�^���_
���z-e��B�����^c��w�۷&�m>����9�Ƿg��n�\,�nӉ�������4x�kf���n���woj��~��
O՛*�Z��j��F��X�����[?��V�/̹=eԫx�����e����v�c�����^�r������#�W���c$~:Ԯ�¹�?�6�'
_wX������Cq/�Y�<����C7�)p���E?�V�r%�}�h{ڕU:�t}]J��ۣӼ���^�B��6�s��
���7{	���a!�:	�V7�BɯD$�_�zF�
%���D.;��N3��bJ�r����A�IK��Y���
��vl���nn���
t3��;͕r���l���]�'
+j��}�[
�����q�������B38��7�\�%Ny-�W�5{�B�����0���U��H���|+����-ϓ�ngOz�`~�������[�m�	�
n���RloY���Tn������}&�����f��
�y�c$�����Ð`���m��cͳǻRe��'r��U/��]�K�!��M>,�'����x��Ž������n}9���0�����g-�Ԧ�4�}{(��겖\�?e+�b*<Z�&
��� 0��w�����
�/
�3w����L?�����ȵ�����s`VKq����m��({\��Ψݮ�EV��N�Z�{��l�6\�+��Al�=��U.����Z߼�M1{Vx������FdWv��=��K$�O�r'�8�'�����W�7�ҫ:i
�A{�t�l%W�O�ݓ��E���L�Ԇ���yny2��L~)\�7ꯗ�j(7��O���Y�
�e�k�9-�������Rqwю\ճ3-9x�+�Ie礚{/u~�/δ�S�tuT�<�£�XU��H�����
_�"��\�&�X�-E[���;���j��I�6����O�^��{����}5]�nz�o���m^��䊝��a^�����^!����kf�l�(�����B7R��UӍ`>Z��w��̠�+);��N�j}�kO�"WxL��ٮq���Sz�
7:�~e��[
>�fA�����P֭�V������4��;������}.�]�Z�,?��/#'^7���2&���EH
wO
���1w?6N
;^O3������Y�,��5CI/
+W#�(�c�Jf����d���O��A�-��/�w�u�e�T�9���
�廛��	fin/;-��
������b��W���^�����Ѽ�
t㜤
��\������XM%�JD�����~�7H��O7��
�se�+�Z����T�z|t���7�K��|�y(uOK��u�q����.T����l:>���N����]��'��$S����R;ؼ�����Uv��vq�| �R�H
5�xI�R�Y<yr�tW��}�0��Tɛ)�__����8�|���b�Ep�eR7Zڭ;�U��ڸJT�e�h[���-=�
\����Qiz�#��y�!�#�I��Z]�U��,]��
+�ٙ��m
H�q�"'w���D˅R��r��
����2�PBwŗ��l��tv�{����{���'xA��Zl�y���
�������,մ��pQp{+�R���<�U�yϸ�[X�����M��ҒP�~����ˠ*��B����~Q~���J���>�TgUBc���
��Ÿ>.���P�]N[{R^_���Uu�Ժ�|�{������#r��n�ɧW����e�6*
3�B9t�:
-|Ւ�k��ˇ�
��c����z� _y
<�
��t�Q:
�J�� 2+�ek�Ģ^��\Cv�Z�2�\���Qg/�.ݧ	�V��Tk�^귳n�\��ߧ��C�9\�o�\
c��3��}�~�zjN&���3�Kٳ'
�C������5��W�J��5-\N���ŧ�C)�;OE*��ٍ�p)�ĸ,��]#78������=o?.���q��*��
+��ޒ��J���z�]�
y)Ʌ��j���9�{.
$3)�/1ߓ���M&W��~)�U�����2��)����n�.j�X����BO;����
����K���@!r��$-�
�ʗ��%ѓ�X�x�
+�v=�o���(�����ⰑXN�p1yU���u�.e��`�,<]����>�Q���h��X�
+�b�r�4�O�`�1�d
+�v�X}�\�^�d������ro����Y2W<�Ԓ
y�@�c2���̧/�~#�/�
+��8(<$���b<<x*��@Nn���f�;,u������X�j�E��*�52�TׯOo�+Q�e��#�zP(��
�:x�
��FbP�<��	ݧ�u)���ҹ���]���Y:h<_6���^jg���˸�WˋJ6�_
+��R��YE(��zV>�W�w�����Q].��nqQ8m�����ɝ�?���� �\��["7L��O�F/��O����"]��B� =�]>c��n�u� s�Hs٩��
f��X���o(��I���w^��M.5;+/��~R���L2]
+�T�(

+��˵ja�`�_=+Nn��n��6�WVR	�dq����������1��
����t�n����[2�
�k�kmF'������nS���C�?L��×��}�HJ�;��ދ<�����T듗��2�Uﺼ�q�Y���pW�ݗ3�n�u�;IU+7�s�K
ݭ��Uh�h
Z'�y�y��+�Q;
�x�ѓfn�n�cɃ���
%P��_t��S�aXPNơ��D�G�=����˳�<��U����ifQ��}�7+���R�𮰯
N+Ѣ�\�zޜs�E�66"2Lq~$�6.�7�s��\*<��(
�9�Yy����_
+�s2ϒ
�h��MV/�V
���y~Ѭ=��#��,_N�/����XW����҅�+V�+�/�D��/����|�J�+C��l���E7�OF�~�־�~k�
�绝�ke�
U�o�[�b�U���S墝=#q��@��D��=���VN
+�v<M]�{#��e�3��ki���2<+�kN�*�G���X�^��|i?�.w/���D�/GI)�����B�ý��t�ih����K��s]X�T�v��?��P���ǯ����ǧ��������U��U8*ǯ_4��]u��^RN�f�B#����_�B䩜���yᆗN��X������ċOZ:5I�7+�^8yX��R��h�y�pq<9uR���s��Q*���U�
��
>
*�B?~�M����y%�]
��L�`Wn���t��<f�{"9��]�~z���2��˼|�]=]�E��}����͗x�+��7a��9I^�s�e�׸V�r0D·��4�ߴM2��	��C��J}H���	�t�Z����3�//J���5
��[)��+x���zP����s�V���Gm�Z�^�Z�'������o��/7bÇ�8�Ϝ�ٛD�b�_�ϲ�'����K�r�U[���d(�S2�f�a鎤���i��(
�o��Y���E���^3�{o�D��\��2��[�u g�G��E�>�
+\vۭ���Yv����D�疢\����.1!�9�s�A�9��?T�����=F��f���ܵ-ӏ��Of��5k���x��@����q�^�'���٣'�
q��}9~�%�֓�ڴ����@��1IW�,t�t����O�<��V�yCx��'��H[{Y{
��ҕ�p&��U���h�Y:	I!O-#�:�
��YH��%��WVb��c�m�r����t������@��B�S����	�ë�6%[���Wi*�gGĒ3o�ѥWa���T�Jm�k�ъV2X5@g���:uZ�e�]
fQ�Cult�*��{���O��RF
+�^t�~�s�k��g�#k�g:V���H�7�a?���Ҩ��o	{�ݢV�M%*���Xmlq[�9�(�.��U�
�Y�.MP�za6�[V��~o8 ��(&�S4þ'�2o��w~A�_f�rh�O�eۗmf�)3�J���`8ߤt�a��7?
>Rs
v�[X�t��&׵�¾!��-{��_�R�(���)�\#�xxo�@��*�c��$���֪�6@� 7 i?Ъr�|�lˁ�]��r?��Kk����

��٪�Hߝ]�Z��YP��KUŊ3��wAʸ*Ov�
��n]w�3n�v�ng��]�.��یm[U(Y�-� ga������C���~z-E����A[�����
�H��	ҫ�M��Hl��m�ӯ�漢ʥc����t�J^���ϐͼn
�ҭ�E
V��N!y��M��t�w�D�5�C��2]��U������q�� lFx�I�/cU3�*�/���1�j��O�
+}��%��;��:�B���9;y��	l�og(Y����4���
+�rR��
t�-�0��/�.�ҤQ�(.������b;�
H�y����N�xg�
��a��ιs���'	jb�] De|�
b���!	�/�o��s%���}
L	
�	�w���+�4#��0?B�����^ěT����%��K�Ww��f0*
R~3i�����W�]��0j
?mO
�L�@�6��������֠(����"�	�뾶I�sf�т�o/頾1(���g$���m�n��O=]S8�*_*��ފ� �c��z���1
r�3\6]�r7�
@�2ع8�NJ�kt��-���B=Q���G�谂.A�2�c+��,,�
+����fʬ��ԉγq�
�
눺�r����+��ɤT�T������+}ye�5y�c
g~X�W���,y��2��\Y����K�2��B�֞Q�!���o�d��3����5��y~ik�����j�pY��Nm�l1*�eG
�I
+�ρ�X�
����Z6
+D٪�c�]/��M���sǤ�kUg��ݩ0���8o��}9���{�p�W��ݳ��V�~�j|p���J��z�͞Y�Q�-��|����ydI�	���{�zRĿ���.�	��H|��r�|jg½�˱D�z�=���KsIV�����DEY
+���.;�t	!�4)'��,c�h�P�Ԓ?U��J
����D���7$��E*/Ҕ���@VD��$�4���<�z����=	y
Tk��߱�%nD�C�4�.���������������v�jF�T��p\�?�܅NW�ސ�p=D�	�B�CJ�q�k�x,�\=�P-@��s h:���;�,2**�U�)&CM��n,��O/Ԧ�i�`��U~*Mr�~����D+��}}ߐ�LW��fP��Z߁\2𓺓��x�Ug�}��joR,��rג
��ZEL��QU&�N�Y�j�jxq����
+�*�&F4�Y�����l6Y
+Y���e/e�ɣ��yCE�`���5x�0
,����7�_�ެa��M5B�襱>j=%�O>�O�ʓ�Fu6��z;
G���S����JJDș�<�6�F]�"ף%�ׂ�M���M��q�V=��{�&@�|�	e�:X���s��N������
#�Mli%x� �9�=�5�-�P���-���R�[|�����U���J�{�Ib�
�(R�oeUn�z��y����W��lN.(ϸ؀7�܌u���
۾n%��>���R�6�������=�jm�Qx�_��(8�PO�1W�
?Z��Z2'�).N�X�>ٯڣf�2��u���=E}��ZX�o�ξ@˯�1�H� �j��E��1��wg�ϻ�v���I�L�����ۿ8u,$���
E߬��9-
+�
�te��~���~DdX��H!
�5��IPXY�֎���J�[�a�jY�Ҹx��r�{��i�R�H��W�%�nx5Jڞ:m{�%��1�#��g1���ʖ�r��DK�Ժ
n�fJ�!8��Z���~-�ӂ�]����*��P7�g����ِ�hu��J�wo'Z�����s>�j�х/��٫ïjW
+OE�L{�lk��=ԀP�L?Ӗ�]*z눾X��x����i�}$�
�/�a�7e�|�C*�43�Z�=��~|<
+�z�Y���ρ�D;M����]\��	���?�Z�e#3P�u���
g�0Z��x��UY�� j]m#�����u�ż+��o�1p��*͹W�~A��?7�(�� �5Qk��]�'��e��l����:*���t.�*>�C��
[Y�Ք���ra�?���Z���szA�f+�9��f��ްM��,���m�0�fa�N
+\Yh�]�>��4�&���1�^1�б���4x�@�}�3�w�T)����֠sь+�S]���tqs�o��K�KAٲ��O3�KW�ْ������B.tjDsa
P��+#���rN7�w���R!u��!x��<�f�l������@Xh
�Q��_�9��f	t�4	#��!�Ol[��U�{�	�85�)jR[o�;+�L�k�{� �',�k1`
�lw��<
��{9���v܌[Yz at l-�P�
+.L��
���v���H������`.'i�yh����@��
}��v���s;�U"*�
�x��.5+�s�J���L�~M��u�D@�
+���u�o�o�Tb-
��رЊ�z/�t�{u�w��ݖ}�K
��y�0z,Qz����J5r at -C�{�'>ۯ[��(�P���nj6=�6=���/��9���(���,�*@� �Z���k'���^&�`�ֵ�yq���l\^ecRv}����%)��x<�-<�X`��Q��@����'U3��7P �����7�]_��&�A�Iyc��Ҫ��XHSra:%�w�D���
���bvж&Aլ�"���įN�N��Yt���*U���ZD��SC����]�U��y8�=)�����Ik.;��E
��s����h|� �6t��j���h�[�y�9籒����������D��Qõ�O���L�k�̨��F�ԥ��H���ܪ�)
�(�U�c��)K[wg�`)|��	i��n)0����
�=`���xZ���.���^�~�'�9}g��ѡs���%����A���ω�[��-��k�!W��naݨ������k���]ú�
�͖���f���+uhT
+���+��<���wa:��
vHYi[�DcX��mu?i��Lr�����r0x�~�Za�dlg���Ŋ��|١�C�Rg
�f^��8����"��V���̙����e3��^�Rr�Whc*�4;��������~	���b@�Z1k�A�����$M�xQ�ڠǏo4�ͽ�Q˵������/�K�7��Ǯ]p�np
A�9
k�]�a]��H>�����ř��k?���),�
�pg��NN�,�<%��^&�䖣
����$��a�Ҙ��`�J8���
��=z=-���N��S
9���'
��
����S���P
1�Wx\)�9���j���'��t�CV�j�g/���Qn�u0R,gSz^~�d��l��;�j�^�}6s�߭�'
+���^YT�=�ڊ�
u찲���O1x�P
-@��ʮ<��s;���4d6�;OLk���;�����A�|L}\�:�_�կn^m��5qЁ�7�Jr��y�ZA!�+̫Ϭ\���N�;c�
�
�R�
X�����a�AҀ7+��C��6w4fe��w"�6�Ͷ���q��5��=������
��ʆ��9�p�^�\�Q��=�FD_���Xl<ɺ����آ۰�Yne�
�hڹ���+�}��~�ѡUχ�7WO����i����Z1���g1q
ˆ�^��j���
ոo��z}�!0_��d9-f���(�\Dɚ	�X���.����B6��8
+���������Y�����)��n�UJS�
+s at g���]���Kġ�]��H��˃��Uձ�y�__}�b��s��y6��c�b���`�y���>⡦�f�Y�����#�^�B=�=l�@�p��k�栛����&x4Z�a���-X����~�۲V�%LՋ�f�E7�U����Rǧ<o��ݗ��9�x6#�DM�·��-��1\H����P2�>�u���d�8R��kUo.��5��v%:�c��O�^�X3~�D��=���3� n8���.5�m�d&�
+���r��Y,q�6^� �4~��!EuYA�ߓ-Qꁵ��c�\[/�ͤ����{���3�����k�������%T��eh�.\%�?�+:\��!jR�l�;0꾿�$�Ge�oU~Tf֭��\�q��$���'����
���X�N{��?�:E~�
����Қ�:�ٗ{��K

+ș

+�5((��-�cnEJ�G�6�'&!������N���^���H
��#�GEV
t+���<���_5	��(��_j�,�j�2s#��V����l�v�{��͖sa�w�D��-Hbk&����R/y1�Ơ�Ν+�Z��{z�b�Q#-�躝����,1
�Z#��M��`�
�_��/Hq�6_���H�Ƿ��l�����t�F_X�@9�լ��	��**��ૌ�w�Ԋ#�t���p`�]3C�h,l�
,R	�r�vt
L�F�Fh
	�Rl+��GH�
��_�K����Bz�Qe)ԙ\�Wz���~�#�C��ȫT�|���,6��Q�t��"�.-�z�hQk2ξ�LI|�=���-������T�1��]�s4�W�q���'�p6����V�E�e�t�ب�d+Bz
k���y
����g�
a��h�����ҧj ���
��!�P���:��՚�;�0�R�w���RC8�xW���%���Z��urTE�����x�݉rgwz�M~X�a��u+����*�n��ύ��I4�	�PnrP�^$���b���$�B
�7��Xa�~���N��xD}�� ���R
���U��
�k�ҫTșh�Ush�&E,�dy��:��#i�
}�f�@��~���/�������,��D��т�w��7-�TϾ�¢ާno
��	K8%>
�>nʶ��O|k)> %��iRo��uv���]~U�^�6
�k�VQ�{J���k�ۜ��V�v]r]#�~x�������_���-~�
+f.��|�ʫ���j++�Rc�pI���
#�
���
�
=��-<���N����V��#7������#�h^��b�M�X���a����P��TF?P� �6w9S
�U<(�M��m�B��\`��|+�~HL��pݟ���E�j�~�r��ȓ���'>4�G���g�	�E0�]��hk���K�t ��|�C��Q<�x�e��o���t�2��<
+��b+��	����G��N��*�����YR��H��&
q��H��Ƚ��2�tg6[�<��$
��>�8��-)� 55���4�q�$BFϪ;�v���
�8s^  ���R�9�sJ�J�4��J412���R�3炴
��̀ﮌvaE�8
+lk�z*F��U��ύ���ǽx:����j���Mu�j/(@@�J�E���;a<c0���I���g>_��3��)�֚�ȐA
��9��-��� N�z�mJ@����j�?����-$_Eת�H���bn�I{��&�`_���v"�:������͞���-�����wi�֣�y
+i�|0�f��V	�q(L#��9n�늤<ך݂�Y��$E�/C�#�9d����h
+�
Z��g�O	ba^F��Z0�ǎ}w���=���X%!����:�ح�#Nǔ���|�y,:�B݊
;�o:�u��4��=�>�/e�~��.�ܶ	W���C,6A�r
�PP��t�Ҹ[,�U`�m
+u���=�ɔ�[ԻS��	H�ʼ�n��r�����&���{�򬲿�:IK�{(�䨰��2	�%��a
��o�U7��0U���,
+�*���j(���r�v�W���Ե �uS������jt^E�k,B���LW�"��ʲD��ʤ‘Ϭ])I��X��z�
���d\�Qv1~M1E�U�,���Y$_y�N)y^�y�
v����qy�{��usؑ,�q��{f�-g��zf�&t2t"
V�?O�bu2o)�
�����!�
���6����m
����dzkdn�{?��"�B�dO��ը��$<��/'V���ط���������Y�ƕ���-@�tD�*���Q�ˁ�������c
+_
�2}N����y�ݶž�
+mE��op p]�֘::����f�>�b�^u������������z~;2��T)kO����fR�D��۩���`�ʥ7� �^�J���9I��������(���̒Q�
y���
s���v4_���vr���&�U~45mXVm��z3;
+�#6M\�S��jV?1t�6f��bS98�a�1LT�4�}�x��#I��G����J+"�	���RԐT�5�<W�R��:�
_�$��';ԅ��[�(
�O�j��Z��(��(��
+\'��[-��ն�*҆ʀ3m�P_�L���g6�T�����I�6ܾM�r�E�~k����!�
zy&�s��Ef���p̆T䶔1ޟU��k8�
+(����ҰBk7��U��q�=uE�8զŃ��Ͱl��.R�"9�'�[��N��w�#�#��uc��'J6�s�����E�m-xVu�>�m� �@���1Wl`����Z��@V�
��'��A޳ڠNk��y�J�K����kr|��V4�D~h4Ď����#�Bt"/.���S}
��t�]��ѕ�?�&��ʪ�4�o݂r��|Z3��^�"`ծ���ʬ�?� ���Wk�Bݵ���9��l��[�7�ٙ��`~���P�l pB�.�A�姙O<F�k��{H�cQ�6Yh��y��ޢ�~w{���Y_��,�7~��?�Ok�0b�T��7,D{��g�v���3I��&�~�\mYW0��RG;O���q�W�Ӧ�ȓ���m2o#����ry
,� ~����!W/��r��ƪv7�V�ؓ�8Nw�3��*��q��tȞB!_�1�q�^�
+��ym(��`��J�u����C���H��W��–���i��Ҙx{���&��B�b��Y�3�
����ÿG-i�*r-´�}�v�)gx�E��<��
�<�蜯�=/��no74��|*`6ōZ��ͮ|=c/|�V�LT�6���崉��̿�Zfl��k�S��*�Ч5{�}�Y>�9H��W�z�f*��f}Sl�����yf���<��uE�K��C��%��Z�ߧ-rT���j�� *^��BSOC91�

��hG�Y_u
�?�x��;DM�-lG7���3<`�9�_�A����m&�b3��+��\�@�
��0ίL�6��o;����'s�`�"l[���m�������+��:q}k����(��#lzWc�MW8>ݚ.�z�)�L�y�������
+�_�k��6̲����3܆��X���h�m%D�F>�X�VjaZ�,
3������p֮b=yx�n�j۹+�q��6�Uj�	&�5%Pfc~a&w!k����Hɚ6��J��r��ʵ�zm�yj�iyf��C�=��WJ����8��]c�"l<��G)�z�VѠ�|/��tX�mA�����.\�{pr�o9�	��+�A�h��6���h����x.�|����|E���٨ll4��a��;ǥ�q�c�^0
�2H
@xK����
%c�.�J�HA61�f��/�Rw�h�*ݼ�
7�ڟ
A�ܻ��i���^�ږ�2�N
�=
Y�
�8�{��۔�$z��/��2Z�,��j�9i�~n'm�cC<�ąSD��
+)�G�c�r��T�۰��@vC�YZ٬���~�|���d�n�;tk����a��y�pV�~
����q���YR.�����\���gbUg�@�E�u�j!ȠSD���`�Le"�-�,���X��ł��)&�F�ªT���sܳ
v��ދ���k[
Ÿ��l�$�d?�v~�nVX����,$Mޔ*��T�u���n��4�X��a;'�6�_�U�4�r�6w���$�1>*�S^�CS�E�
)};�z�J�%l�(���\C�6{�}Hj�Qϲ�˽X��wK+�w�v?~+�s�u�A�z
�ʼn��=
+�
ƣ��4ޒh��r h����Q
[2�A
R´BvQ�KT
+Z;ay�֐\�g�Ҽlm�3,��ޠ~­a,b6�\ŵ�����C�M��a���^�J�uQ�wJ�S��^q~��Mc
�5	 �
p�ݺ8�[����.�b�m�K�$�C-�G�����e�Lv�vV���C�S�/�h]��i�֢U��=-�]��)��5��9
MYy�c4*=�x����̄
���h�
p�F4������~���5��"]
+~����7A��J(�寭�<����FO :=�g@�Y�׆��u�/a�|OQ��s�
���F�^4=�C�o�ŗ�,�;�c}�А@���K5�-Q��
2��g�͆Q<>��t!X�Rnm�`�vir}��������˹ZV�U},o�6�^����$l=J�Vo穤����kw�������U��V���n��W$�q������1�
��~�K�Tm®!�)@˻iSf]�Dp�uL�l�OCw�����?� �c���x]�6C�l�����QJ�U�����e��,���2�)��x��ޡ�d;�5����"/F\q`M'S�r�~c��Z�
+ɉϭ�b*��~��Ҁ��h�oN�v^�@ /�Rp���(\EH����K�{I�S�zX��|ȃ�˄���ltY�vE���w��m,
��g�Ѱ
uX���i����b\]��@�,ybq��
���?���\��!M͐ގNd6�TH��*�,�4 ;�0t�>��םn$��'P�K7�x��A{=�c��n���:�F����Ip�|�we�s��7p�-]�< ���{X��;^Nu�{�Sy��i�gݸ�eeڃ7�8
O��t#��!��Ḉ)��6��Ԝ��E�;�6% x�-��5蓪���1��q|�àڠ�s�o�2��J"y6ܱo�������(T(�i�����a�Y����c�p�x�u�D
�����q���]��x$�I�b�E��^��ŨI�R��!�h�ծx��jy�5��P��X�F�����}�t�(�l�X�)}���K�	��d�)BS�ʧ� �\V�N�h	̥�h��9���~���<y0�;��V�#lu�z|w�F��xx�(]-i���Y��{��ـ'��e�`�ȭ�q��.F���
+k�����N��a F�7f�@@~p�̄�j��^D	
4���S�ۍ�IAв��u�i=*
���9�m��qK�k��y+��gc�
 �0��k+��3U#WK��]�l�.��Mk^9
��-1����p��d2ڽ��<R�=���X��2
+��������&��g[o�<�
�����5/\9W�
8��*0X�2
R�a�ߪE�6�z��ƛ�R�,
+
Ր����,1
��~�왢|��s�
r�˓���\���
b~źny�Q�>�ވav�/�w�6���(�w��9q�8c�WP/vyoٱis怽�ڄ���|�Aaт�o�A��D���kFu�NX
n'L�<GFZb���M&�	;+"u������u�q�q6w�qd�U�}��x���i�>�k�!G��k5��8r�λ��n���f{��e�ޚS��������[<�G��%}�Rv
+�
3�uF�_L�w�x��1���Zx��p���i����2�ʋ�nw�����&��s���F�P�W�ۏ��D�Έ��uS����U����T�+�t���m�*�K�H�i��"}�|��{ث�����pJG�@�RW��{�Y>���鮬J��^�{
+s2pb��k�Gɘ�P�r��t꾧b�]q��kCH�B�����B�-/�7*6���ƪ��\��8�/Ԡ0n
+��v'�
�*L&9h6lh�4Q��k���,*���"
�����OM�8
N�ﯼ�3����B�#佸�l"��r��ɻr&���g�ʣ��e��ďg^b�cn|���8��
���<Uǟ�dn�ꝛ00�qz�i��<�p+���oC"��ru9:�I���e�&ߩ��
n��a�}gvS ��:N
+2^�TR�C��
�s/���0�G.�m����#&hr�=�lñܮ�]��_��}+O|�
xtl�g���
�
ks����۹5�$�e�n
\G)~‘��x�f�GQ�|h��|X��š]�������~q�
+�bN���Y��k+6\{��}{/'��c
�`���{L���a�i�6?k��2Z6�Y
+w�Z���6kYܷb	�S�,gf��
+��N�6���`���Z�"
�Y��fI��1+
�����{$e+�)��
'�ǻ�i�ZZ�d����"�f�z-&�����<
��j��iP5i���g�A�.s^%莹���`Z��%�����`x�lyO�=K��C��Hp��C,qW���Ŗ>A�խ�5�
+�Fm��.���\-�A7��0�i��Lr�H�k�Hl%��F���~ۺd �Et����
N�����W�d���VwX@�h)_�IEd �1�1�klɶz"�|i
L��K�

��C�Z���^��iv���W*H������M$�����b�{���3e�N���+��8�Tn?����/^
w�|h�yy�������l�e
+D ³*+��S^Kj,"v�
����.�Z��m���U
�jh�D�)�*V���Lq�/����r�S�B�K�6Љk�����=� }����V�����Ƕ"�Nd�M:'̩��Qb�f);��s�Z
��=���>�{_U�<�!�&"��RyL�B�8�c	��� xN�c�.a��Q-d�/��ԙ���
_`�.M[x�̛鯧�I)�TM���ȦƖ������/c'����}iT�_M����G�
��4�2���ʛT�O����F��
�ȪY&_�$P
�أ�4��UM�IyF���;�w�"���y�o���d��{`L��	�V���V&����<{Y���$D�����^�5`T���
�yWN
�
����ޔ��J'���@�}k	�uiN,ފrz=������k2����}/\�-to�]���3Iq��*ՉE��306�P^
�wg�����<�^?PO�I�����L�����ff((����X�
1�&_W��b4� ½�I
�-j��T�%�)�����js۽vbM�?}�6�{��
;ћN�6~Kl}e��;���~��Ϯ����v�(���O��ӕ�J�����B�eAG�
J��s���ӏ�t0��Z����ͮ�e��`��\l����B���Ib%ݬ|�g�
�����o�ȳlqg~��@O�B�nt�G�.��0�$|��u�$~��\&%)��Ӑ��"-���޻�T?��ҐDC/0�>��`U��՝��@s
DIAΊEV�~�ۿ5���PX훞���M[ze΢
Sܟ�n��R��
��O�_52��:?��טwU���?/�v�͑5�-DFAGtkg�lh�U�ZMj����!��'���L���bx��"?��g���=]9�#�vw�6��ܧ����O[��n�y�8wP	&��~��f�m��^�aT���/H��A�ړ����㽡MW�ץ�������9R��j�ׯM��B��7jQF�1������a�-�f�
ڵ
�ә
_�J/���
���A>������=
���=���b�`cA��r��$��:�c��hb��-6�<S`W8��s���oq��5�jɖ��"�hi�� �ϭ)�-���F�_tzJ��)���5�M4c��X�������Շ�ߪ��v�S��Y�m&ɭ�f�;����7�
pT4�M�7.�Ь�ϋ-�=4��n��
�5�={��P����X�$nO'��VV	|b|��O|qQ����h��\&��2~9���`�˻�9+�5=�\t�ܱ�+��Z�G�PV�ɸk��m�>���jmRӌ��x��6��X`���rf�+sZ�#��(�Ƙ���P��:�ެu���7�r�����/J�І
�@�Zt���ִ6;jod���w6��4�5����P�\ψٰ_���^�?�neF���3�z��0��h�@��T
^?��
��	-l���:�`
t;����U����w׭��jT1����^E�/��6�Fs�{�
+�1*|s`cQ���n_�,�ϫ}��BD���*
  [...]
�R�]�1֔��3݊&;��GGc�v8-
�4j�sM�6�O�L���{dy���V
�O�x
�Sg��-�
�v��
v�1{}X��Z�8C~�ݿ �Bvq��Ր��8�g���e�%�06�N�
tm���悭�Q��TBJ��#��@��H�f. ����)����@�.��[DOa��=:?�羉ťZ�x���"�n����>
+jcx<����!�	�J!���D��w���&+���
���+� m� ���X��F��al��`��ki�m�n���_��cy��Y�����OXp.��s��[��)L���a�%>��U��J�~}��!��	1�НU��e~��n�Kg�'J�Uǃ�)�z�Ƭ%�)��:��6�>�H|��p�x�'躓f��_g�'��Eq���B�S��I�+�����g����*=���uʟ��*��ږ�|�����imMZR�%�zD+~�;���[M�
+s�lbz�C|�y��b�8�A�
+��Eɻ���E<�F��Ёil�cXme&0�%^�i���.F�`Z��އ��G���Z\Y�����$��8y��[ng_�ۆ�}�Q�*�kn%5���F�
�	��Y�B5��
=��]�G������{�}�@qrB��Q'�a�8��;XZQ^�S�1��1*��)�i4��.�Nj,�|rR�YH��xQ��UN������bnsf
}�	 `��7���€G?�
�
+�
�8
�{.5�D�
�~Z�qT7�ô■�(��^�VtRW��
�Y�ɓ����
+���~EH[��5�����������Pk���޶�
��k�8�A�_r��@�<��F�����r�E�9Ѱ��a����ފkA������~��Ƞ���
�h��@K���{I�ë ϑ��6�\勵T� �(��� RY�s�>\pPs�z7i� ��9�{�s
�C�+}����@�\-�x
+\�7'�?�����ߚ�ߋ&��)�z��G΂�H�f���^����TE���Y��|Q��J�����5�|Z����x�B��
����	��q�ő�_�k3�	�W�EW����ſ�s���7���C�.����v�˹
�Ns��~ ?��xUB�u� �w
ٿ�y���e�y7�tj]Y���~�����-Օ��'��@8	���{��ރ��U��}f����j TJ��%�%
����
l�[�B�Eڰ*�*��Ά��Y��
T����v
K����bu�����Z�Q��5��jl������3�Y�`�ĩ}��e���6�U��i��Y��>K�Tj|��n
��Ȧ2
+o�Ӗ��j���A�>�����hQ���H(e�rj ��	K�&����&XH���!?�"o]���|���dd5���B'��U	�\u���Y���
-{��mYwᱟ�1>?��vs}K��L�
��t��d���}
{Kq䦛��|˹��>-Kc��I�:
�·�
����g��-+_��5�XQ��I��(��noܠ�U
��S`,����Fv�����
�nۣUdy�C����)��2\���e„�?`���S���_<&]ʣЯ]G�~B���-푮?T	쉷�}b�Q4�6��
��Gzv���wIn`^xu��u����|��
�١�3%�<{��I�R�C;�;9���I����.TKEop�[��������+������ڦ�K_�!��6��
��>�����F�P��<W~Y�gt�̟
�����
�j5�ÐPg��ᖼ�|
o
+"=�ig7M�a�z?�:�2D��:ch���+�X���E�tUl
�Ñq���u��zB�v��(8w��B��vJ�&ao��?�������[��sl.gZ��u^��#�+c"m�������S��h` �����{<�7jv����;2�u�r�c�)&6gF3��
N}Nh��PW���
�R�S���#���M�-����ݙF!O|�8;1�Ҋs���^�O����q�Y���VS�w
+�_�ɒ��j�^�"-�-j��$\z�b�����n%��Z۸1�
n�b"����^����71e<�j���r��&��dv�(�0����d��w����HK�2q{Ϥ�q1Z]>�i�z�I�Bc�z+�rmw�Z]6^� �&ɨ2�T����f��J	J��6.�6�qifU�%�w�T��Un4*o6dݳ�ca4�
'��ԯ���x���X񴟚�W7���b3��F,	����Ƙ!�0�ۘ,
͡J ��XZ���AP�]�O����WӍrR�~�p���:�?_��9�p��E{�,A%b�l(m�
b�s
+�?���#M��eM�
OZ,߈�ι�
�Q	U���4�O��`�dCe�X�g<�`
tӢ�e�]�c׌Y��=v��0��/yF։F�AT����T6Ԯ�
��ͻ�
�D�;4r�;R��4z~_	Lxyړ����#V�^7�`C��h�ʥ^�6Ǧ)LŅ*�WhCu�gO�\쪛�)��	y�w���{"����
+��М
AN
+�l����|R����fm6V)۞ۓ�w
ͅ:.z~U�Z2
+nZ�����]�h���9Z��>�'lj24U����[f8��@Z�,��Ƙ^���~Q�т�l����Y���
�U��_��˘\��U�3~�&����=zjc%i2�8"V�	��4�aɥ����.�M�R����U͏~/�8Z6�핱�F��Z!Q�W��d�Ȕ9�Ӑ��J
B���9
��a�~�V�VG��e���'~$�(�w�m�[ӵ�D
R���7?�洣�V�0�Y
v�����Ivf�F��!���
6,��z�V������t�:� �yU�mES���<[S�U��˒:
�^?��M��:�=����=�њW�����jŘet���5C����y��5�:�������S�`�����#Z�n4^��J
�U{D�6���X��F�_|j����j���ґ�g���P�M
r�C�MZ+�
Z�OG�#�fd�R��at·�V������@�]�/���(/g����e8��=�u�쥕�n�
+�����q
����{�^���֪e��J�JRT���"}�^Fqx�o2;}�i��
h��2*M�)>����y
��k���H%g��Ի��M�>�Si�{��X��
��u����ݒ׎�����cV��e��Z����{E�Љ)�^�\�KRԓ��9~[/z�=�y�\��#��<h�$�>��m�K��N��
r��;�!�3�������$��rE����S��
L
�{�$�1���48j��	9�"����-��g��h}����
+�!�G��չE7[�]��`��CB��l�ݳ)h��c�oa�\:x�4�J'��U@�
L����
��Vnc64y����r6b�%ZxW*��:�~���|#9Z۴ߟ��뉨�dӴ��r�
`�M����
+����@�`ۍc�(Y�[Y�W��LP[�Žy5��{��7�<�V��&n�h[�Ğ�VWl�V��>�Cm���!~� �N
+G�������v���֢.���B�G⭿Bż��v� �Gχ����$
���L��׾�ʚY‰�xe�>���̓X)����u�2]��-O�7�|&
�?�{I�D�
�m�{֖�:L�اf��>��E�c⹗L�N���;_���c�=��
��C_��3��B�<R�I�K�I��9뻎3�{v�rwF�%���7��q)~��܂W?2_ag3Nr��L^��s�C[,�f�+y���H�%���S�� �)4J#�\�����5XZ�?�����O5�Uѻ��=+utD}����4"�+4�&�0�ikU
+���I�v����9O�/�Wݻ��T�Ɗ�=��<#ߢ�ѿ���QU�e.<x��?�FuG��*���r�y��.e�4gcK�v6��HL��NR|��JZ��
���%�8c�˕lw���e�ڿ��L�}+�
����ΨZ:�-�}�S�;E�(;PY�
���w����W��Z�­�V�M�sя+���}I��B=罆
�h����wNya?���W�6���
� ��h^J�\�X�U+С��Έ�����=��`,�W>�aj���H���–��ڿ�gͫ拮f�yr ��-"�&��
A�\�����2�
��l��z{���׷U�Q��.2y��b�ol@]�/���?��IKJT�
���GB�"I�ԛ+�.m��8�\�Hei1�V9�,E��dE���FI�
+�1Zp�5X}`%/P�`K
@�^%T�_(�
+�+�-�E^S�E}4T1������b�H��
Eu���˫�V��(�7�K�oa~B�]�s��G�3d3�/!=M�K��)m� d�r���>%�?�1@�m�9t�_�1���j"�Ô��8�g\�xuj��P�M�15r����sP�>��[�ҥ�����
egF c`��q�S��jA��hRWW�
���O��]
��6��(o�`�\�j
��/�@�e�!(��? {{�
�Px?9��=aX�LA��^T;����i�o�-�/�M!
�Q[j���0�@Po�/��4�l�z�ʪ�܈�ۤ�GK�;+�/k?M����I���x�\h7Z�K����^��Du�k��Nx�!
�۵�,�>P�ag��n����pL
B�JS"��B�
�C�?o���m�w��b#Ƨ}�6���sV�8}�p�_�ɉڽ$
0�J�}ܣ��d)�s�D5=얷
#kϻ���t�ܞӏ���{��_(j9��'�U1[�ٺ�<|��o*gAy�z���JQ#���u��V�~�2�b��+ [...]
+�����D-.v�夾�?�w���z���T�
�>+{�����>��c;p��z�c`�/�=sar�x�K��+bgl�G_
�v�J���`ءp��YՕ�2�i��=� =�fc
�n�Rݸ��"~K&�W��(��*52��#2���y��D?t�59=�4|��
����ҁl��r~9�n
��*�Ж�bk2lzݼ��I����]
�Y�(��W&��.�������f�~�w9�Z�����v�缿��A.K��)�������w?������1]���������,c J
&k�i��T"�uv=@4,������
l�����}6ƨ
��ޅ�}�ju�J��S�*dH�n?��Ǵ0�쟗R��KF�������B����չHc�ff�FuXPhm*m+�t q�s�ǭ����7Iw��3���_
�;�=ؙZ��p��n�
&
|�h�O!!���cGG	+-�[|U�^��r���
����oJwO��f�C*��
�+
��=-�^������&�
;���
�~fS���­_/0�3�2d��gX
&�^8���	z�C�/m�/��2d��B��N��
6�
"
��Q����I����){U��D�8��(|O9�.����>]eCDB���'�U��4��—{�j�������d��C��r^#��׋�Ҡ#� f�es�p��
+iV�������x�s�oo]�
�hm�q;߭���iZL���q]V:
(��;٪d���\��~����.�l��Ilb��7��,HX
+0����g�st�1���J���Z��8_Ϙ�=T��ݽ#_N��f�IKEc�P��3�}4o�m���
D�Kf\���
'���W�&�8
-���e�
M���!�Ox�g�����;�ˇ �K�\�9�
�L���3�;�_ǯ�c1���+�]����V�w@(�
��	�s��٩:~��z� ���j��G*BE
��V�S�׼ns��Ӝ�Q�K?�w������.�d@��<��iKN6R#��L�#�wzG":!�2��
+w(Ys�0�j5I�/�Q1�H�z1��5-��?-8�
��i
Z͢X�Xc����G�P	�ˍ����%��H��
/و������
6NY�Ri�X�k����N�/[[Ѹ� ��Vآw��-�g��,��i�O���<fԃ2�37�V�tv
+U�>�Te{���l��P�Mݖ�D\�[-٨���*Q�Ct�i<*���Zh��e�
+z����4���Z�(��0�&�4r��Jʴ1���3��v�M��W�5E֫la;�O�}�7:��K��^!�]�+�$d��.�
�����BR"�$�b�i�'&)��/�
+�$��b�,O��
 ���
T^����0���̋�ߜo����r�
���C
+�-'�A���i�C���)�O�q��2�EA��uZ��D�]1�Τк|�> iFhR��[
|1ii�x�
79
��6��u*q�K�Y�s��BY�Z�Q�H�r����u��8w�U�6��yI�+�s��"x��b���b���!n�O�-��.'�+��/�b
?/�Dj�kP7!��g��*��{m��cŜ��L�:p�z�KǶ�M�mI5��W�q%Ho6L��%LJ��L5�z�dr���3���,�b�'�ꌆ~�[�$
'oKC���,cs��
 m=���x�k��z3������ etZe~��L����te\Y[�I]� C��@ث��Q
����v�Yw@��B�k�L���_2�c:]�VT���
�E\(�����Q�b4Tb�������a��5R]�1�9j�Z�,��?�v�?�~u�(
�$���fl�
+�N��_g��cR�
+8�Äo�wrp�'��
�ox�#�����
O�{��������u��,
���6_���)eJ�B:��|C�;�^	ā ٸ��tǡ�Ⱥ瓕����~����x0<x*A�5���E�U8䗙D�"�$L�1�Jc�r4�D=Gi��e��
��A���l�Ԝ/�
&��?� yYW�i��'.�%/S��V����,.hI��Bd�lx}0'߹���ؒ�cʫŘ��^(�%x��G���x�����T�+��	H���8'w�b�׉ޚmO�
�����ݔ�J������;�s
�W	L
2�-�Q8b2
@C�{
+�8jAA�Ӟ�WR>�-��v��Jn͠�&$�ˆ
LؖvZ3�pj�
+�]��l�����/��Æ-�Y��ķ
<�~
�0N�G��M
�3=O�/
<D���,D�T�``cC��9>Ճ&�V.�]O_<6�
I��Χ?w>�	�I~�Ъ�Z�*�O3m\�/4����~n�C�7$+033^����t�W�Z����}��,8Ǎ��껚%���iO�M���CƟ�
�=K��Z%j���W���jӠ�n�j2�ƪ
H�_9��j����t�{@��j���!a�}�����*��ek����û�-
�dP$���jܞ�P�?\pqE[]��Ao�r%Z���C�����!��@�7�M��RT$V�rL0��S���B��4��c����'��cm
��=��x����5�ϧQ�p@��kY��֕垽�LX$@��
�:��
R�~�|y���� S��[�5��6���B���K:�C��Hx�v�	$I$������V��
yf0$��0���
�bQK�*w�:9��N����9B9ndʫ���tE�{�F�bUϲ
+e���V��ϚػSBj�J��Y�Z��0�k�z=0
DZ�e�u
nd����F�:Tu�i�̹�����ro;#����b��Yc�b^����7�=�Qݓ�
�v
+W��t��Ylֱ˯Ro��e��)6քY�D�
٫F�7|��J� ı����{t'
j�R6�c�M��p����$�6G3/��g�}So�
��8�%ۮV��.ȑ�
l����	E�?���>6�ꚪ"2�����`H?����E�_�Zo��.
pnC>�#������}� ���&
+(���~I�.s�t��Ƹјԧ��۰��P�	���
X�%�>���P#�Dy��+���'%���ݑ���̦ "���Ց��\ˑjx�v���?�QǞk��P��B ��5�ڌݦ���"�k9�S��N��QV�Q�-��R�LTs����O^bTc*�uj��f�	�I��u�9Sr������U�kErz�����BI�'�A��յ�GcO^�,W�����R܃:�˂�M˾}`q��ӯvz4���:
���1��Л��|ց�j�9
���;�+i$Wnj�ዥ�xf
ǯ�^���� *F��x�E��$e�S���2��]��+[�����T�a�Z�Կ�A�Z�Ä�bN,�u5,Y�_�&7���–�ȇ����� ��E�뭵�o�
��O�K�q��\��:���8~��
hҳGA]�����)`f	~e�,|O��gn{n_��x��Y��������3���`}Vp��
�0��rD
,J+�{/������!8fu��U}o_�M���5�s�EU��	�og�%|���":��`���!nn�EΓg�K0�ُ��;W�sN��R�(��ԥ���flF<�v�c��H�m��%�8_u�*�)��
������<{���e��5��7���>{�g���o'	��<��`�T����j�Sh�̻d���+��!_P{���_a�-wb�g|r��m�ѷ{�V1
���`E�Z�����5�kƅ�3�/��W��?UJ�
U�[7ߥ���j�c�l��R�4�dT7
+�I��4�o�w��
!��v�ɲ!O����z�i��(��V�_+����蚴���!
��;+W264̛��N%;��9��/��˼�^����l��~i�99��
�Xlֳ|�����{�+�_z
+�&g>�"��� ��gU�(�B�l�T^̿�.�=e]�\�l/=
�~�V6��v����f�E�
D��H#c���y
Mbuu�![Ə� 
��|r��voܳf�LH�!ڛn�w��)6g�m�B�piV?r�LoCD� ���j쮯��랜�/@V
���?`��
[���,��Q�����ɻN��}�
+j*cJ��<�0��]�H/�4u�P��3���?��+R2�^�i{2-u���gB�tk���@k���![�޸&�Zk5\,
@�syRj
��
+��kN��#��=g�l%9���*��B�Qǐ>��5���\#t��;������M�#
[����E�{O¸	��
+q1��l
ö��c+�
+
�J�DDž�a��_ e.:�R�L��L�S��&EUz��<��H��
��.e��[����p�������
�fx*= ����m���&��-y�<��
���?�6%�қ������c��RjF���
j��4:W�K ~�~	8�C�!x�v�|�u���~J����p�{e�/
5�S�(N=�<����x��h�D|���S�����7fdX����ԟ��q����ڜ�إ\�]��lŃ���M
�V
���M=������
�F�Z)ϐ���J[v�4��F��r#����l���O U+3�٭Zv�
��8Mrn9�׍.qṫx�
��
�N�iݤ!D*
��j��H�1�%��c%��n��/!`Z°,/��N'�x�*����� ^8~��ĝ?������F�6�)F��z7�:H����4��^�qq[�jBp��e�}*u���4݁^���F�9a���O��_
�~͐��
(��|[����I��w��uC\�d�G��8iWD ����8���=�;b����t�$��ѳ4��L\m��឴z�u�{%B���z�X����
�
b�g�O�_(�nb ��F�A��{�$�8&�.��yzk0���!���<�N/��"6e�N�_{��s�!rO��w9��߶׾�z���ӨfUU7&�a�5�?[�Q�@&�==e�*�`�}�{����I
p7�k��i�.œ#=@��{b�4DŻ<��bszr�yv���sL:��%|�u��
+�x,I�*��
���//�fed�J#TY	��W�@}vVC
n���,��E\���?�1A���R%eT�B�����M+�;1��'𒕓��
���Q\.�ۜ�J4��<h=]�k9���� G�z’��F{N��g��� �@�7��1�ã��X�(,3^��B]P����9
t�<����?��J|���<6�s������x8�}G�P�݋���t��3�뭭m�Ńcr
��O�+E;r�����
+<���6nZ�ݩ�C��<B�i��q�w�����J�AUN�'ܫe�-��V���_�0�O=��[m�2���e#�Q_b*r3�p|�	
d����3�S�}YLyv�۰��y��2������H}G�
�s�A-��n�;or�K���j-�$v�轔��3G�( Y���'
)!%`P� V�ɖ�i0��J�f��'"
3����{P4�mve��w��ޖ��i!�+�
+ބ�
�ޝ{h(�Cy`/i�3�K��N�&��I4�t&�+��_�\:�+kyxL�]=F�J����R�~�AA�@������:
�:��'Oc"�8襁��R	��@��xă�*w���%5�9�K��
+��_�%�p-Mv�

��E
�yL��ީ+]hɝ��RGj5_��S�zXt�0�K�<��d�?V��@\	��q�7�z
C��"T��44��� 挘 �
++����K�;��7E�c"�al��fn���9�!ɑ��W���ӥ��2��͖��jr"�LG���N��0d
��ai�An=w��y,Y
}k�����=��Ie�z��s
����FۋKFA� �V���{焏&Ƭ����}�h}�rt��G��
��依�Ž?�
2�#�ݩ���ϭLj^77��_�
�I��
����� �ʀ�����:ϸS
P�|��}�a�B�2������X��I�2�h^{�
ۚ
���d��٬N��mj��U|�mh����~X���}�Y��/�V�v˝N4q.��P0Έ�T��+E~����Eɦ�ܶ��ܒ�V0�~�)?/t�ӈ�������-�-u
�~n�ۇ乥ILh7��d(ޕ�%�ֳP�*��+-����YU�.*KO�_���3=�%�y���y���>��0��xio�YS�bW��d���E%� 
T�q1]����2g܀�&	
+�����5.ݯ)3�C��ҡS�8��̭��_��0�ѵg7�mž�l������{��R��6y�
k
P��0�U�>L�Q��~��jͽ�k�_��DUЫ:_���]�f�q�m�,�n��>�|�������ȣ7��p�`��u��/��_��+���
��+��x,�H�z�z�ڍ��o�����  �+���|���O��MaQ��/�ЉH�
+k9�=J�I<�/�$�N��gd�]�l�j
I�#~/��̡RN��ʴ�f�I�f5ר��jY>^P�<��?'�
+���y��)j��R�E�>u���7��*�2"q�*�g���}4�r1�����Ou��'I��խ򍮠��-�,~u5��1ߨy�|���Z�1H�W��ʊl�5�йrwD:J���V˺�l&y-���hKq
߇<�/��~_�Ux�}Is\
i̧�U��ި����65f�{����ԓlzò��V���fM���w�:*x}ޕ#�s��nݦ!�O
�sj�" ]
~�0��ڵ�������t�y� i,�բ�P
+��Mܚ��� ���0�x۳����[m޺�@�v�aԋ��
+�n45��B�e�z�+��0
�i(�1�ӓ�o�����[@o�@$�^VOi+Y��,����_���Q՘0 ���Xr�y���ƴ-<l+��<p����0gq+�C�[n��B��o��w&�fǸ��%�;�
�@�#G�k
�������5��a�R�3��!�\ц8�m���~�}!��d����q�v��ej��i��V/ޜ�1OG�*7�X�>�֞G
�M1�~:"
�¬c��AJ.?�d�մx��)��՟VK�%��ږ�_�bW���Q�8{؀ˉ�_��"?����n�-�A�Y�����
��5Xp��ظ�
3��<WP[gA�JO�y[��gC˜t�R��jMj�o�ަ��.
��_��`����^���)���h���A;��s� ���=�g�ڸՆ�^�����/�c���
�
��
+�/�U&��֙�1]�3#uM��F{
+��������k�E��f�j���`���q�ݤ%������P"
~9_��*Ebw�r�yZ֠U*CBc������
���)
燫�M�"'u��w��IU��NM=����?5u�YP�
���ª�B�)R�Z�Q;������n�25曑��m�?Qq����;
@r��j�����-�m1;ix
��{��0���S�X�ݕ��+ِ}%Z`K����U�5��vd��(9Ņ�C�DXJ~6 ?UUTY��!���a���!0����G{؃�$%���f�/��eQ"W������0I#7�Ժ?J
��v��
 �5/�WĖe�r��
��)���x���ҪX���/,�ו�v���)n��_�VѪ�u��M�2�k�qt
�[*�dC�5|=�7%U����u����2=4b�i�G��fL�(W��D7��z�0���O
���,t⥳�^y ����z���4P:&���d�O�sc�sj����m�+���mB�瑓^�nCԬc��+Mp��+�3#�;W'
��v���g��cQ�6��k�B�g(={*���Ô
������vÁ�S;vo��ȀM���k�4*����\M�~kt�W︮y�r�%<6(���s�����:�|H��E�@�F���; 
?>!�>cP��4����0O���<��lN����Y��9���	��\��R�^��{���-b� [...]
x�^`{�oW�V�:�<��P]�QlK<�>��_h�~ö�� �~��f5x�}Dt������vR��X.�_ 
o�N�{��3���:����Rt���վN�qx�퉪
>.D���� ,Y�{ʼ�v���d�z"�i����
c��"�eٱg�,�
X9������G!Xj�i�$��EN�jߚA��#qjk�NuX��NG�kU�طt�yӔe�a�v�w��9���3�.xF���X�%��B1��np�?
���W���9��5�v���
{<�c�eF�r��1Y��v+��o_*���Y���ma�ٛ��g����f|&9�яһ
m�z��)�:y��-��Ԡ�6r8�,�����յ��D�Q��:�n���jR��p���٭��cL�*������5�
�%�����U�HS*�H�\�F���w��A�,�C�OkZC��*&�#t��Q�F�
y�_�
K���ov?z��]���n����
k��߼�cS0,3
��"U�Ua�������U�M�K�0G���
�5B]z� ŭ�<8���$m�9�!!bT;�O��	�_-���e���R�V�=��j�C ���5����85�+gd���R��2L)i���֩�G�O�Y@~N���ᣩ���
-
;�E�������dP�
Ȫ�
���hr���.��?2�rv$u�����R���u�l��XC�<�ts��cֻr����u������y_`�
{�a�����c����T�9�
��W���<�f�'"����RX�-��~:��$'��R���[G�]JM��wlq��\���E�2��)���? Ӷ���YɊe)�c��͊

�H7b��[���V$�/�}0�<k���N�%�V<^��!��r-�3�\
P��҂��^��G�)��B�<���3�_N�W ?��?`ڒl��U�}y��|���J����L��~�k���E���dj��~��@�u򆞒I�:nwn9�`nK�8;$�"��(v��)ag���,��T��K?�{�O�:��
/7̱Tl_�xhHd��L
��׫�r�@�j�_���
��Ī�,�|RGyo"��7m�+L��œ7A�`����2 �a��R�</�j�/���ˡ��
+�!�������t�����)�'��p][��:�;��}������!��g�_�U4�q�n�
�8"�aP
m!� �
v7^�z��;�1ɌU��?���K
��jha�r��[�ᵆ0�k	�j\�2
+�F7�²�
2��/�0.�+��Q��t�H�:���\zͼ��ޟ�L\)��[�3ˤ�����5����	Eb�g����ϫ��ζ���H��X��ղ0���T��8/%��~�ɛ
ܾV�ô�f��lg�V�,����>}��/M�5Z���nwo�*o����z�h�F��_, �O"uab�X�����s�X�xnM�I2Z���( �P��=S�Q{�7��L��J�}?5{ }�r)D�F|��Ä�Gb]k&&�m=�٥���U����e
ǀƭU�
��'l�s
�4

����\Nw�W�l2��i��ӌ��v\p� g���w�W=n��,m+^}�b;h�iz���ʹ%-���i�L������S ꜷ��E_'%֯<P{�y�$�Z�-OY��Gr�.9d���FU�)6�S7�f��p���f�A�R]�LӚb�N��8zZ>_���n���67�}��j�����y����A�۞'^K�C̤|�Jk�破��׭�~Н�4�N�B�ߋ [...]
+R^Y�{���W��^�e�">X�XY0�=��t�R�	�R���,�M"N�K�
��$WrĴ�T
�K<b�:P����r��i���7BK�;}Z
4_�U���=Y��ܷ8CG�˗*r̝�WI�c�낉9>�
���d�����׿

J��X
��2�sn��
+R\᥌����_N�x�豻�� ��u���݀ݒ��65k���r۵
L�"R��4�G
+!��iȭG�)�?�)��A�+�V^v^�mAk m5[j��^�CJ�]��ҽm+p�}P���C�v��o�+<Uɫ6�̛ʄm��Q����8��I���=yԀK���8�Z���3���ׁc��w��{g��sJ�)D�i�D����^k������a��6l�s΁`r�N�����3������郆�TZ�V�T�����I�w8/
Y�1���
��	XZ~������T�B��{�
��(M��h� DS+yH<�@+Oi
�����*,R�H��M\�6�p�4k�2���ׂ�)�C<>?�¬�p�ۥq؈
��~�k{�
�z�b#�(h�.�<�m��ϧ|�6��*��S�Я!���yW���\gq�����C{�4�A͵9hITx`�Y�~��y/
�8��z�ȯ-�?�.%�z�ݓ��,駄n�(��bI�K��L���9Oт�U�a�5)������x���7�[4��{�O;�6�B�3@�Oڝ�F�ME��5��B쵄���	#oﲴa���x�8M��L [...]
�#)�!MM�<Kʂ��2EV�&;5��2�+<+���
�46NCeИN����ќ�뗯Y����
+;���#Z��\O
�[.ԋ.Y^�c�N>���
��

x�P�>�w������I��:%܃�eqgt!f�L�xwj�ю�6��-`��2Py�va�Y���[AnʯW�Y�uKHn!*"
�:���7o�!³�c�StRRJn�h�gӾÝ��b߿
��@��
��b�7���]X:�ɰ�Z�t�����
n}��枟�+��g���)�z@��`͂��D^qU~��a5bw!�j�“���l�AK1	q�3F��r1���u[���]���J�Ӽ3�Y�cx.��
�g������n(���0��Zf�s��0GQC�w�'Z7�f�caI��k���' p��'Aw��H��ޠ�A�ִ��4���O����j�
���@�{��K��

-�g5m��z:�P�/��J��=<�>
�h����N�h �^GS��׊��\�c��A(WI
���U��+ZphT�a�W�&~7j��7���U���ź��yˢ�j
�TY�z��u5���槸l�q��QS����mc�Ɩ�WV��?%�>����6p�̞��A�r���)���Zu�����d*9
郙�On-���Gg����S��Yp
���R���":)��`�I�Q�6s,��2|�s
�
���
�Lg,���%��'���臭��">\�-�
��Nr2��ݞQ;��x�_6���a�)��9,�
/]r"��秓��Ol��v���o_.]�*�Pɹ�]ճ�.��\0�
�X��3b�âˎj�M>��b�b���v���˕��$����F��7�i
oM���P,\b�'B
�'$�n�oK,���=O��®����o�<V�-��S�_
�����B�kֺ���E��ؔ
&O6��Z���G����=*��kI6[ ���V�t� �͚���#��l�p{�"H�ST|�{#��a��j�z˷ȱ��ތ�T��s?�_wzj���ʟ�*W�8<��*a�
X������7��*�Umی~^������Z��Y��������J���:��ٱu0�V ��
�!��������ʈL��
`�i�ɸ���HFM�����,��x�ۀ
�V4���H����~4��Rh�+���U��
�
+���&��Pku�w��L�}Kk��uc:~ϝ(�ؚ‡�?>�O�oh����J�*��.��C�~	u��@k��Bo���=�b��Ulw�&����7�n4a�x�2$U�9�{��}|�hO���}�]�641�?#oտ��}H�q�&�OSHd�6�������y�ܘ8/f�m~n������QY�XU�A
+��3a��6�n9�0��	c{�8U\��\[��� 
+�Z�Mk�r��Mw������
+G�
-�5���x��]���YQ��,{cw��
Mm��JZ���Kx]W����i��ې�5���S��9�nf
l'u����pΩV�Z����_��毟���o�#W��JoFD�ܧrD����'�4� l���H?J��y�EXpk�|��Z�m�DڱE}�z
��l�Lz���̓�lvx�$ǖ��w93� 05&-��K8�V~9@�&��Q�
)���̌�w�C^�F�G���\�+|3$��p���)+ Nh��Uѷ'D�kxͧ���U�=�c��u��n�5ݝ�܈�+�?�0m�ޣ6������	;�jTd�
�.�ʲ��/A��|�"r,��!Η&��O+��߆x\�B���݄���<h(���q�S^��0��
�


,�0�gI�S.�-�W����_S���j�9���s��W���S�7 �����A짷��]�60dG����OyH�!���:�1
�R�,��z�v�r��z
S�
+��e�D�X�p��f挤�C~
���T�y�����w\I��)(�z��l`��Q��
�w�mظ ��K�_t��$
����L-b<�隴��nA1j�

+������<�E<8h�}u�4��3�T&4n@(oAr��x��	�6����ΐ�?��Ҙ?���5�{�����//C��mC�
�/k���4�:h�	"k��&����\r�CbM��Ǯ��M%t�H\����;����
�ж�k�~=�	g_6v�>��ز��@�ː��B�^<�N{ ��ڵ%���7�>3��&�!�� �e僉��r�7b�����\ĭ�u�^J�r�Z~�F٣�r�lM��u>�Z� ��
R?M\K�H����(��
��2����g�l��
+�o�Gw�
+�����p

�ga9��B���^�@����t���`	�!�Bh
��%��L1�a���Q��>�f
.᳏�L�W
Z�h�mH�����
L��.J��
\����r�
�omW�UeY~���3�������D�M�Zp��:��%Uk���jC�J�0A��������o+�j��`_ ��N����@B3�Q���W�-pQ�_�Y�[���܎;�.��1��>���:
���'Ԛ�6��Uk�nq��bjx�T�㋗��,����}����?��9"�s���9�~6�����ϯ��n�/���m�Y�u^H
�g�_
6��M�9Fg���j�=d���R��W����Cf�h��
�t���d�8:R��&�F��p��0~㕇����J��d"7��
2
�eI�c
�x�k�"_�S�H�Tԓ���Bx_�o�vM��,I��t���\τ
��� �l�i�M�a"�I���]8[
����'���v-}{�m���hY5ԥ��*�����CR#h����oRCܦ�=��jv2������Æp4
0��K����#�
`�o �O�ѻ�cKYV+�F_������f�y�
M�n�"%
$��$e��������&,iFYط��x$W/�b�c�p�f�oA�3i׮�r'.�`�8E�s�o[���l�
��t�ԣ`��E�:5±�pVʀ��=Y9/c@�b�S�A�]T��t	�@R'�4�B�c��G� �`��sD)�"Z����{�"���ź�- �x̖�819�zi�#"p��'F��#^��>�j#���vP�U�O?R�D����'�k
��'pLK)��,�7Xg?�kC�m�&��W�2-9�z��kW���Z�~��}=X�>=�.��i#�P���m3⥒D1m��{3�,<�Cu�+}�S(^w���zj�7�{���zrۋ�`sd[���k"
�<�Wi����E�,� ��]���5�c�}�4�*y��
��C�����>����Dl��´
l�8-ܦ�n7-E~kt�9U	����
�G���耤��*9&S��	�sM8��r��:ꝙ��[o�
�k�<��Ȩ��!�¥����j�=9~㊲��9���Im�@՜v�2󽬸f���|lo�U������f]fסL
��l��^
w}~���`�!�
�m���v�ɍv���({��C�*����-*��
w�]�@
+}k�
f���p�$_�Т�c������M`ṇ����*�
v�Fؑ����s��L��H�{�?�DJf�_�>��g�g�
+�[Y�6Z��1����'��66"�o�!� 3��ڒ���z�50����#���tU
�R{�7�>eX�������s%Ε��E�ˡ��
`$ԑm ��
+�]ib#>
+�N�Sr
E��.-�RN�O��
�nE��L�_Ew�>Xbb�}:B	�^� rv�"W�����k�*x�l�A��=�3č�e�W���Ꝛl�g W�'�y�W��"�0��Aj�?;�H$��o���~�o���:%Z��t�+?Җ�]bi��+�On5%��{��r���=�����#��H�����UoS?O��PӍKQ
+����l'����Ź��1�����'�C��C]Ň��m�2�\cכ=��c
+f۱����o�C�5�,5���Q
�
Z+���'u�Ul���
���ҹ���Ù����ݮSi��2Ĥ\�.����.�n�wl1tZ���u�]���o�h�칍�竉(
�:�qN�&1o
��v���[��
�k�
+9
�0�����I�Ma�reKs�!?�����`WRc�����^�?���CZ�g1.
�>��^�ah�˿e��
%���
+�{宧�#�U���{M�t�o�z�:��E�v;��pY�Q��8��P)u���*7[TZ�VK�(xp�R/x��Z�	*���I��L���(ߡ:���|�j�^H�<\�V��6��s	x

����v|��
��]�q������T�ѥ��ڒ����x=��j��y�q�tU�h�z�	Q�A����hg$��]��
+XZEt��|���h��i���g�\�6�:7h�k�����d�O���a�Ck���*��B�������M����B�<Ǎ5�
!� ZL5uĵ�ds�U��v�����iL
m�سb�����jE�ۺj�
��=����i�{�
O:ݳ�8��3�L�/�֌:��eh��B�6����q%!c��aq�P_N�m���j����l�0͗�}y��ir�cw)�neG���O%J�A����/
/V��1Fmg��|>U
�?
\��2�mL�b7���ג7׫���`�CT6 ��E(��ؾvV��-v�e
��`��j
+�H�b�"�%���:(@��
����]۞;|��el��_��A!�
+
t�?6�W���r�������S��#w�W�
(�Qh<WB���^�+Rzܵɪ�e�>=���g�W��J�J�� �3�T�W�b�2_�����G	}3R_��0-5�����fU��#e�=.��;��!b��?�v��qb�7x��s.V�t�!�J���:���GCwoyH)�P]J�Xp�#i
���4�v+sj�E��P�T��~�������Fw`
�6(���
����g
�%:���D4�d�ܹ���t������v��6wӾC3U@a�r�koL�C\��z-i�x�B-оw�9��/#�ox��h
_xR0m)���v�<+��2s.�.Ffp�3'0o���ס
��dLVðs�:���IG���z
v��>Z׿|L
�v?�<��p���Lw}�I��ޢ�2�nD��j�3h 
\����
�1�JEY�rr�y'&�MJm�
+���ҝ-O����F�
+��C#�Q�xZ[�\�Y]�	������߃�ux�]
��9_�M��ʺR/� �W��
������F@,d��BՓ
���Ԑ���s�ӿ��/TFG!�0&�+���R�����ZvS�p���:�V
z�W�
+
+����u0�E��G<��=
�,
i�.�I�<6s�YLy 'Z����I
�P�x�����nW?&��
>^$��
+z��w�]��5*�q�8���.�b�U�m��`��sX�����/˝
+��n�|A$�׊����]���f6�N֫��R���S�а
���W����vG˝s�����>9&�9+B
nšqN��5�^n�y�)5u��6��n�w�/��c݉S{��Zô���"�3�d�D�`��@U�s��t���y��WӚ�����q��&�١��"�
߲ؖ�%�J�眽"l
+
>�ީ�~>��C̤���#����d\.���-��"��?�I5
p�S _2w��	�"߁⦝2�'
��N�l���b#
���D�Z��(
+-��?U@©H[;����Q�{�d�ͯ)���J��Zզ�/���y,���HG�U	n��b�EW�'
�
�Fy���������y�º����Q9S
+ at e�U$f�"���V�6C��g���"��{����8�~`S=�s�]U���
�.j-թ\֍�7�J��ԱQΕ8h�s?�~�@���P��p���Z2T��5\���`��`�R��Xv�h{���Jf��R޽EG���ϫ	���p�9X�u����h���*T����oշ˞����yn���G�=�Ug���JM�(�L��~y�8@�o�r>�̜�����n���:������Ɔr�e���}��[�ԍ�����!'�3��:������'
;�~:��m���}�8,z
�n�#+I3�$!��p:[w�)T�c�n��_"�W��ocr �E>���p^�n���3Z at m"��ZQ�
��h��
��282g=N?"ӿM�Qs�,�
�z��=�1DcARF�g��,&ǻ)���|
+~��\��~
���OeW��ؙe��[Se;Q�N��l�4�f��Xmt�Ϝ�~���ĕ��8���<)��YM��l�ф��e��_��a'��T4O�T/!�O�������������õh���������M��q���mۿo)�o�������{I���q=�ZvITJzOqP8�
�:� ���-�hb����������6����$�O���.���v�XG�F���K�Pʵ�d�H��&C~
+�?7.��69l�a=�<�F�
�4`�a��L�"	����F�8&������ece
��� R1��lXq&c<ę�"�1r|�h�~�4���h��N��%������/�6X2�
9�-�
�ی�V+��*ߺ/V�
rz�UN�XD~n>���	8
�pY�ǟ�����뚿s��}T����݆S!��KL���+��F�0����mur:�,~��S"�?9�q��ȪEN�s�6�{Tv5��o����
�� Gy�(J�q�S�?��}k�W�j~�)��1|xi�j���C#
�m���Z�?��&�
��P��`C4�.zJ��.��Sۿ��t��u���<`��/a����,6|�9�珸���=�|�
�
d�L��/o�Ae2���M�a�ߟo�+��CA��r<�ů ���������7�0�"  e
d�1X5�]$_=
����Ҁ��e	]�?�Yj��j��x��
�zY������P*0%�7�P
endstream
endobj
218 0 obj
<</Length 65536>>stream
+n��bX)7M�=@[�M�ټ���67e
��Mo�~����a�m�@�jx7�Z��`�ʄ,L�79�:=�U�(ڍ����i?>3]�0�����S�ɐ������FMP��[�:���^'C�x�
_�]y�ϊ�&B
�rP��!�Y�w��!Y�e
�Z�\�K�^Y#��'f���E�T��M�n���ޓ��
���<�kP�b0��ǰ�|��@�i'�"3��q��{�b=j���� vR�������A/��
]ԆVu5���a�M:ŌL�Dv�V�ج��Ii]�NF��3%�M��27�[o��l>l���;U�4���5W��-]�!x�n_:��f/�7b�ƛwO����5v

�wS��{�U؟b`w�
#>����
�k:!
;:M�p&������­��E7fW���׭]���ܸ�;��=
��� �1޶�'&oWϙ�!�v�����
�
f)���"��暎
+U��*��ާ����o���(Y��P�w�AyA��
+j��[����W�����Y�=7���
+i����m�ـ�����,}�L,:��&���w\
rg�)��Э��u��&#1�/ض��qM��N�˝ٷ�wEb� 
+����i�O�^[$?����?���Ef�zJ
G'�|�3" 
�-��l��X��:�܉��xg.?s��B�]ZE��$�j0�4�B�ݖ\к2�
*�����(Yk���r(��$1$��%H��L�ϖթ���DQ�h�9�
���
�.!�{�u#�(6>�ـ��;"���T77���ը�
�h���qW1�������W�H�BASJGUi�'��v�RTf[�z�:�=������ž�V�����gL�m|
��o��dޞ
��>�o��
y
��^b�����K�����v��Vfg����h�
o��Գ�f��v�˵�u��}�������|p�Gpl5ׅ�r�N�暞���pކF�br���k�z���3��@wt�h����}��%<�|]ϝ�_{�������2V�N.|
h�
^��8�-����{��R��]p�O�QT1�(X��椺l��?PM�$�zA���C��*5.�U
ۼ]Gj>�Gf�3��@w�|Uk0��A
5��񾃶���Xwf���8�h���u:��mu���k��T��"�H�iP�zl�z�i�w��%*��t�j7�#�4k8�نSgص���1_��9n�wAx ��8Z<I��j��
+N�ޒ�.&�e|�
p��f��j��T�իJ��\5&��j2Nyh>��h��Q�n9�����Q��х
+��T�呻��]�a�wf��4pz
+c�_�D�t���]Z�Ǘvk��.1H�D:OwZ��7�ng��l�E(lh��m�8����2����;��2~�"t2
+�Q���L��j��hv���<�x����e����4�W�Xz�q�
�_�Bl�#��J�I{W���
+�{��d���.�=u�r��
?�<���m��\����2���+�*���ona��hu��������_�q�TGO�0���b��b�x��{W�*���!ƩP8�e�9�I�yJхh�<ץ�=J{��(��v)Fݨ0aZm1�V�:�cMn�?�/����f�6'�
�[���y	q�5�Y�L���3P�t����k�m[6O��*Q�'"�bTR�c�b��;&�t�`x��VO��z����(��lj��vո'M+U
+X�b*}3�S��?^	0�j���ؒZ޲YYD92M|�-/�e�1��\a�?/��<��OA%��E�n}9K��B�o;��wUOF/���_Z�<�u
8_���z0��:�[�k5�L5C�
�tkr-�6y��q	�
Օ�. 
e7jv)����|ꚹ��Kr�Q>�aQLKa���hK�Xl��� s.��p��Mķӕ�?��.@�L�
$W
��E}x�:��]�����g�ea=Vv�sR�ul2�f�Tz�Y�ښ�3Ü�k�Zԍ/��Y�Z����±�r�x�s8��09C�*�
m�vYޅ����q(q0wؙs�>��I��3Vyn.��N/�4����s~�QMw��
E����Y��Wi�-��%��z	?��6�������<6�
"���
#�2� R�J��,w �2���"��c�T�7z�C��:9e�p���Ϙ�"�0����ie��9��}kWzm7���9ԶԣA��g�0V�p����!B�󘚝��Z�����+�ͤ�3+�r��$�2��"�\� �����������k`3�1nn:J�O�^�x�����C�%�!7�V#z>+S��)%��̭߯
���C��a�c���|]�C[L�z7���-t��0��.e�ɽ*ޙ�����L��~����؝e��s�O�g�hݰiD
���7��f��`b�J���?���3�{7s��u�y5��v��A��/�;2(=(-���5FO���l�pp�yT�t�l��4m��GG����N�.ۀ$�n'y%F��_
�Z� �1ZV��ǣ86�����zٸk��n��q�ϭ^�`^�M�E��}�Y�Q
���3����66��8
�Z�>�f�㟾�b�I��!
+�|�������
+��F�vĽ��`sq�X
�Kp3ɯ�؛�s3�>2�†�e_�z����Mi
�H��^��F��|�����ޙ���:�i]�G�{���#_�O���^�Jg�����i�3VDk��
D��m�(�~@(�
|/��؂�^��D��m��w����gԭY��W���"��d֦�0�y���D�i�z�F�|�m����;���O
I��K���q��m
�V�'��^<"Ŏ��
�74n��(h�6k�t_�� o�
�V��x]'0�by��M&���n��e����.�*Y�9\�5��M���vP+�\k.
��w��}�
+U#�
���K��-j��s"U��n}Y̡
����`X�c��yY

[G�����Q�_����
.s�Ē�����-����k�_,����"r���oa�[wK$ŵ�v/���Vk�B<!�� yW��~lUu��r���� _�(��뜖c��8��Fob����L
?���/\
 ݀�J��,<�M�
V�k$a�i�ey:�	!��e�����8�ꛤ�\L�6
Gf�"OQ�n��h����!jN�jk�N�y�
t�\�t�`;8�Q��:v/2lc~��2e�FvX'�?8��v�y�K[#�*�}������7�{�s�g6+��#��,
��Ʊ�ž���'\ޝT�y
���N��{�X���`��M����Ů,���G�K�
7�Y�p8��n&Mg��L���N
��$J����	Y$���-��
鵹< k"#D�1�=a�[�ƶ�^���N���ؓ2�y�Ssgۣ�M�_�)c�S��:7�<pf����C<��%ѽN��Ez�_E�uv��-~�qcQ$ �=�
lh�����N8���Y�Z�h!g����z�
+Nr�M���EɃ��s��U��z-�~�
���(v�s�����^� r�B�e�
��Y�;þI��Ul��x�5(��ͭX���•��Z7E����l�"�i?���v��<��Jt8
�uݞ��>�+�4&�cWb��'Yp�>U����:��‡���a��B�s�F�g��UGE��4I ��Wdƭ�\�43����똰㮖�V�
G�,L�;��=߆��x�t����#�s:��^��J�ޅ�Vp�b�
''�#�4��߃�'h��G�U��c���@/�KBp����A��"�l
��:Z
+�7и�Sѻ�$�tH����gÅ/d\&
�S�恇��:`��\��̟�j�7{ٴ��
+
s8^��c	�}	K��}��_�wC�2�{��Hm?�|j��ܦ��:�Wr�x�w�3Xv�
u���N�\�i�z{Br�
�����rm�e�����
yڔ^�̢�2
����\�Nߡ�[#d#��.�
��Ҡ�I�DO��0�Z�� n�jQB8g��v��z����j'��w1��t
"��#�jb$*>�)��[�T���s:GЇ�����#
��ځg�fsR����KаF��̘D���|9� �k���c�/jA�����[	gZ�
��
��k*��}��T��
U띒��s���K
b�B1�3�-�]�h�<н!I���m��.��BUa�Iʅ�U��ji���ag������^�88n.�,'��U&|�)��I�o��{|��z�BOL��e�i�}
��9='5=E�~�>�v�D�	
W#F#�i�t߿?�N.`{��p��Hk����.�0?p!�jPd�z�x
��C"/�.�`|�惻�S�!B͛\�|��z��~u���\'�o��'O�z���d
�K�ZH��]��� N�6H�T�_y�����Z7��l�:���~�$�>�p��u������5[�6�p�v�}��~د�� �8����n8u��Qt(�V�h�'6��#�>k�@��yC
��S�ߍk���m|��;�{�c)
+.�3�f���8Z��&<�[�8^�Y�s�E��-Y��b��)J
J�s�������
+�c����:�ԡ�<m��=�O)���f��3����~�
�S
+S�~�9ڤ��Ax���a����-͓s���Υ$4��m"'�ݿ�=��[�9j�1838�������n�,�բ�G�`ŨML�;Ӯ�dw*tV#~҆��ܯ
��"�_���TNܴ)��P|X��j�>ݑ�ٷډ����E�b���e0T��:^�9Z����H�
�5���u
�FyβW��P���Vб^�v��v

{�Mo���o��|�??ٮ����LFo$�&�c��Z��'��2�"�-�r�o�z���A���l�>�H9���cn��[�8)nh(1�?�G�r{�> C
�x���i�0d�N��e�=�u�Z������ܸ�t�ag
�H���Г6��0��8|��I��
�t�x=����
��|
R�r�5^����l��Ԩ�v=���N�u�%�����q��4��X٣�a�z9
��ޝ��:;�_�
n��������lf}$�%���q�%�_��Ttl��۞�ī�]���� ���Lc
cB���r�%f4(U(|�>[Kޥ��ZU|�{N���޶����
�Rn�dF�Rs2#J6����:�`h!����*U�},>ױI��EE<9^@�
]x���-c�3�<e�����?tޥ��	X�*'8�
����/
����p�����6�:�/�t���<V��
���F�h�_� ߩ؏s �]�l{OM����.�
��?Б�"�%|`Z�u�ȳ1���8T�1����j��n�z�t����vr�q�7��sȷ�v�aO����/�bbn�S>6�H�QҲ�����__
A�N"/9���h�i7���[��W_�����T줝��@��Q1�;�zܛǃhc�*�����z��&�
��ח~i�K�˟Qm�!���cG.W��	26��k����b�ټ��ʥR�s�mfӜ'��W"[�]�)C�Q{~|��Hp=��C�l�
�~cFy�p�*ȶ�ڎQ>]O�/t
��
��xf��
[�m��Z��$�]�g?��y�q�2\
w���*�l0%>�Y f�J�� D�7�v5������N��)���XK�<��Q��
׿ͥ5�:��\�[��`��?� �Jof���ώ��L�}�v��MM���U������|�W��.tӇS06��4"�ڎ#�:b�W*%=��i&h~P�n��n��ϝc���U:�;m\�;��'f���"
V��vJ۸�}�k=9C�*2�s�c�/�ZgS��^g���l�a�8	�•��۝��0��?�vcg�v_��y�:�ۗ])
0��"��v~f]���t����d��jJi��u0��
q��)z3���uIm���%�4Z?�ҽW�n���4���פ^�
:~��PVBp��{�LA�
+�ń���N�=ݺ���˜���(ګ��ޘzj�I?�2|9�"��d��|��O'!��I�qW
�KE�#�������Q{"\sv
|R�=^��Mo��!����<����j����׽����_</ ��9��u�A��0��c֞}�۰�:��сlI����w�U	x�x�O�
L��U�:��!
�w�1w�-�r��j�./����X��?��4��}�u��f�s�W�8g��3��Q
�
}&g��+�,F�j� �1�O�fx�W7G�Gc$n_6��o.�V31���<��?���A�^�vq�X���*6��ׯ" ��
��󙸠���.�}�?x�,�Ύ��&�М
V�
Cm����/]11&�4p/--����O��/P�:�2Ί�8�E>�����fN�Da��R�t�N	F��h�"2JaD
�Aof�����+v�K��Cq��F���X�I>cy4$
+p�ki�
+�e=�w��Ravez��Cp��~����;lV6,߯�W1J��77.
+���Q�[�!�W��l�Uo6����
���"r�YG<O蕏��J�Ŧ)���E�]��q�6�`�t���Z�/�nd�NM1JYL��2��>W�h(�5��l�T���G ��
-Ѯ��\�B��c�z΃}��QЕg�X�+ru�O��
���3}.������^pK�X�2~����+Naf͞�������#?Hy��ɵZ���aS0
�{���-���ЌI��5]�s�4\�
�\�j�ں���cR��C��闵�=rj$���e���Zd�2,*���
'�,TL�	Am^��	�=���]�ɮ^L�Qԉ�`��
\a����9ç5u�~�6��x֋���V�
�
�
�%V�輰ߺ���h6Q�mp��W�N�H�h�_Jճ���H��/�+��Y�
+�֣���r��:H���:N�i��pu����= ��Y,���;��<`�(�3�ݝW��Z�:3o�{��
V�޲�X�k�P�������@[��+x�0�Q	E:�n��{��~s�=!pf†�+���P�b�zy�B+�S$L��xnc�RU��HC�t�G;������̧r��/]�9!V��<+�)�c3��Qhx>��̟��Ż>���l���Թ��;Z�}�+���:or-(%.%T�9_ݔ�#
+��)/�U��L�=�V+���>�^M��.I��k�	��z7�
�e��Ʀ_JI���C}Iw���>}*�ZʮGڗ�)悟����~���a�~��ՕOc6�~k�m��D��ްv8�W&-,>ʶ"�ڊ�	�em#5Z�m�ȋ��"��Z�q���D�j��nk�v���&��$��|E����C�?
i;u�ٹ�l��MjB��1���p�G�k���/�>�@C��
S��w�Ȯ6����/Fۑ-EC���?h
��ȾP�J��ٻ�7���գz��#qh����d�� �l�]t��4��p�
wJ��驩n��<�����vW��6�����m�����Yp[.T0~N��hRAn�#���� �V['YG�*;TU�����K�K����B[�h���j�R}��Z�"���W�;=�
�]�c��s��R�L�2�
g'uP���
Ю�[��2z�4nHپ���@��٤�����N�
�B�co^^m߉�{x
���U�6�����}�ɬ�Q�#�=���֊O-]��]�`
����HB����w�\�6$姰�V\��#XJm�˥�aWƽΝcTq
��F�=�A&��2
�2*2C��?W:N<v5ya79}]t�l6��P۰z�˃�9�Th�A��FYLc�j�e	�iճ���c����1��򢕙^�%��rh�;-�f��%�P�~3��&�7S�cԅ�F����~7���W [...]
����e�
8�h��2.�er%,'-��*al���j�U<n���̥��Q�`�T�D��;\�����s�N�}��ҭ�c���� w5�����UO�u��f��r�,��� �N�j��%A3nhWX{s×��G4���F��&Tr��7oky�b�t��<&���gW
�_��L:JAa:�Vf<�Y��??�
+��p}�_���6j��{���ɑ����K��+�q�ǹ�Q#n�7��Va��䧦�gh@�����>{��,s������a�Z����Ų^�s��,�/Y*��s��G���n| �XE��Ұ�
U-�x�ݠ�iRݎT
�O��ib��;Tj<�b��=[���x�~u[x��B`�L��s��Ԃc�l�V�Jf��:��B�y��@\�t ���s�3�RS9r���
����%x��L�&��
*A\𣑡��j�
�.��ؔ01z�Ժ�ֈ��a��;�rua�
�}�<�rK�۾e��u̞K7Gh�k��a;WGQ_�͸�J7�͊TF��!)�J
�����0������Zf�o7B͢}�Nnz2K�ߤ95�/��;}zx��^�UfڽX�
��<�
�h
�\ή��D��Z/4z��wV[�-}�թDZE�=��D}��O%���pW8r����vp|<x�̠3�SCm��(yĨ�-ӓC��_�
:4��O�JQAS�e��¢8=c��j����rf�Q�/c��\�0�>���"�ܭ�ZuU"$f3PC�y7T��v�.���h�in�
��^�8N��r���`��8++���˨�оr�1������絖6��N�R8
tɛUk
�.�;q�1�t�.Y;�g��@��@�C����:+�
�
�J�(à�ID�K���A��O��)����ᱡN��f�b�������/c\>Pј���+���>L��x�
�;�B�j���jYo�Ƿ��Ŀ�������`9� �v]��S'��}��J
׮��˿za�
��t�k*v))
������qCz at v0�M��J'1�Q
��"��s�&7�N��upT�嫸1�
��Y���īgm�9�-eB�V
~�k�
+�K������~�
���w~��Y���<&V�Ű�Q�wk��*wF��j����/��N=	1��sY[��S�_©�nKFL݂��уu� =�����֐�|C6������0H�__a�����b�~�C�}�.���
�x˝�ژ���h��<��nj�\踍#}��C���i���Fu�n`�+��E��8��wL�{��� 
�0�3?f�~�_��gG��R�Ai�Z����2��־h&��!�i7���:<n{�J	���_
h�X鎡�r�ה���N�+s�J��'d��t�׿tI��\���7��V�R�U�#��Ys�3~� �HC}�.��=d�:�s�
��&ʧ��cX�܀ߋ� ��IJ�Ύ�!�ԉY����\��sB�=ݧ��V���Xu�sX
	�C��٨���E�z3Z]����V���A'׉���A����i��v*��
u��N9��=XK�o�/^�fT����3{ߠ��y��N�γ��]k]����C�m��
A
����|��Am����S�;Y�EL�
��^�~�_,����9"6jx�Ad�j�v!B}�����Q�1V��B�\q-�&
�G[��̗Oe���N>	��è�����L���%�vo�n4���|(-�Y����qM�(8
��bh,��ߪ8s�Ś��'o��CW��rk.*k��N����P
$jkg
��ߍP�%-~6����\IN�ׯ��ً����q�Dm�0x�~pn�h
u��(��x]��/h����6SD�L�ֺ}�c<�� �1ż�l�-��
�R�s� f7�����N��z0�M�Df+�#�Ńl7����=���
JF��K��Q2�]�zR��(q/�
U�����ɽ�o���x�?�շ�Su��r�[Maf�k�d�;�6�90:�U�˛�w޽� �2� [...]
+�n�}�)S~Whhc��@�Bw>Q�2\��r�ً?���k��i��w��zL}q�MG���(�}��g9����%�X6rz?Ǵ� �4^����3|7G�cY�K��lKi1�<q)��f1�@#:kC�<~�s�YL}�te������D�\'�6�|����S?�uS	����߅��iQ���P�1�:�M-���;�e(����W�=�9�����@\��̿��n?5U�8Q�.�� zf����,P�[5z��P��=:�
#-h
����b�zn�T��}S�V2����og���$�ܢo�������ǐ��6о��#�%P�sG&��G^S7,TDB��&���m\|�Q��uO,q�^Cy-�*G7,��i��ƍ�*�M���S����>��m쏼x���\�cX�o��v8���1�7�C*�22R����z]���z�xxo��M��%6���(/!
o�f�&c���[ ���45v'Y�{��A�v�|@��`�g,G���_��x at -���܇܎De��
kin1��o�B�./��5K�������K
��E�1(Fߜ�B
+�H�f��󌹏��_�^
-���''�Sp�6N��^���j}�ג�;�%~���
[�YR����]��:�'�*'/�(�
�ޅ�#��Ե�u-�斚��0��B��������;��@�~QE���'g�1ݍt&w�鴋Z��fǓ�}��Uc�$Yu�+�i�
��x�)�,lv�y&���R��R�V�d����b�a�_`ɻ���x�o	�9߮�.WK
p=�Z�,
+O� �
�
+�B@��S7}ݺڻ���o[l��y��-E)o���m��٭�O3iA-ƃɜ0j����c&�/DHu�$��M"���FR�8�MU&����4&s�79�����h�����h���^���`�t�F\�n7�V�-@}��xVa��I�����M���a���^$w�ö/��l�.���
s�'묏G-�p��F��_��0�w���$q�픏�+�d���k�Oß�[��1+�c�Zۄ�[پ�E,+��R$��)�ׅ�4�昼�._ZuCgɾ�%k���η��� �'F��acr��K�a����S��Y����.%�g �F���(���X�Io2���k�T�³�>)�Q�1���w�]w��je?F�)���LU
���t$��~K5~�M�6�3�̂�:�����a���&	����R�Q�uj~
�
w;3!����`��Ib
LRTP�DY ����
�����_%݄����!Kct�WբcʒT��倔���6�B!�}�������%p�ڑZ
v������>��Dz�g���rK{��s�2����zWЯLjq��~
m�jc[!����
X�Q�����GA��!Uq�q��e�w����I������qa/rm);��2�wv��5<SY������YW�b-�S���tv���7L�V,D>J�q���˰
�J����_����涧+�	I-�֍�0ImbŠ�"%�~PϹ��
%|�	D�g*~���䡓�� �j���<E���G��{�?���$<�iqZ����~W�b�)�,���Y*��@���a
�����ן7���a��
+��m��<�ܤ�Q���A軫 ��`��-3�٣�y]L���j~�
�n-DZj��;���Į���骎W�M��R+��XUJ�����“쭆g

���[室�>U}���KU�����a��#/��;�^ )�,F��p����U��%����NQU
��Am2�5�A7�O���e{�V)�Tt���#����+s��j� Z�p�_7�4FZ�p�����'�`mrG������۳�ۯ�6�Q�܃;����qp(�-���2v+�
�����I��VO���s��Y�^������*ģA������tR'��5��L0+���
��mf�o��J"D����D6��(��|������N��b�!�O��)mj���xJ���r�2�H���8Csp8o�Ѭ-m���<�k� ;��:&��+V�j��� ?}�J�w���2�8a�J���H��(�A��Ϋώ���(��
M���E�P�Q&��2��F���)<�_��?���ة��5\���h�錙�A`�R����Jպj
9�I�O
@��AV���3 ��|��	�U�Sz�q�N{;��~30�\�j������ޝ��/N�W�Z�?]P�� ~>�*3rE;�l��2��L	��)�_3�
���Z��+�W�k��p��?�1uѢ�f	L�_c^�+#���@I�qʷG�I�sL�
9p�������E����q��tz55Erp|%`�mMn��r�$
�s򰴍��~e�tm*er�MMy�
Ls^SXm��ߔ�����[×����Ě���s�$��_�Ϗ*hc�H�PLhg���!�
+K�+��2Ӡ�z�1귞��6��2�E�i�/m��
�Tː`�Qrc6]+y���j|����ܤj��g~�O�R���zu�45��S�V�J\��?~\2��T�!]R7<CO���Օ6���c9�+�\�۳�O�����}_
���jT����i.2=+P��T�M�g�,
5�Y�<��c����D�,�&k=>��0�k4��]Lg+Shrc��#*y��'�5�fN��&*�7�oz�Q*
�`�?)���R�驩'��1W�"'N2�ˮ*�6�R�KÏ��
����L�
+���c���b����˰z�
N��vƭ�U[O�f߾f�ŋ�]t�̮����@atp�&�6l�4 ��f�������R�[�P��M��� ��v�?�/�D��^��-�б��r�>raֹ��X[v�����x�%��ݻ4,��ޚ�^<̓�F��T�
WUCV�#`��W�69W��f��
[�2�T&�/�Fw2��[������q�
��l[���( ���+�u ����q�o{_I
�ܾ��
�-0݁��|^�ȱ�~��)؝&��m�����f ��v��oCk긖Lv�Ԩv�$�Ǟ~y7��|PwCwٽ�~� ��-�уj
����n���\��|�݄f;��$�E4�#�T�n}�l��:��
+��Y;�';���������܋��ڋ@���Cm�X
�5
ۧq}���`�
w-�z)��A9�v1�6I�<?@
+;��Y|u�KN�W���O��llDm�.�X�`��Z>�ӷ ��*�(N�+0M|�br�flIV���ax����ռs����ޒ$-�7����c;#͒�V��ֿYK��9���{K���P�pi���n��#q��B��|�HC!Jv��t��/�l���5�{(f\��.HMv��G�NX�U׍Jmy�޿MC{��
H_�~
�iC����_޽kn9jknz�*��;߰���P��vpe���'.1Ց9�tPt������"n8���}�׭���j��݊j�q�2�6�7L������'])/N�]��P��
�u��:�g�
+��Q��>&#S���F�
��Qk:9���),�8���A�m
�Ƙ�9�9b�r�Y�c�tA��F�w�(Ѱ���}ȱ��B��|�.��Κ7ܘ��1�d�r��x6�gԲ��N�B�}�5��Ι�>�S��_�x]�j+�ڍ;���w!뷎
�nA���=��|�
�h�[	�o?�Z�eʜur�?L�^�N�l�
�Q�x���[�/�<�x?�$iìДW̼�|6�~��{[�
����9��u�}VvE�gd�h�V���Ʒw�O�9dn����ւ�|���s�����#��S8������pp����:�
+uX�����Ճ��G�H�yd��;l� �z�r��f��^fH��&ͤ�'l�}���1�ʟ�]�44n,������b�͑��E��RO�
[�	�R�E��@y]�k+2��b��+ P�k~��&���Y��n	���?>������mW.E���ed����߬G
�P����v��9�x�j^P>
�A9̆goh�Ύg}b�)e��A�o+3��5�W�X`9cYݽ��x��u�����w��nµ#+���7*�,�KpK[�{��z-����	�������˽��K�Ў_�8R��c��ژ
2�'I�#s-T���eų&�
#�v�;�i�l��
+A�N�a
+-����YL��Jԩ���)#����}t��UIrަ��˗޹�[�~ex�jb�k-��Dm~�d�i�;�ON
��W`KU�c�]Q^4X�ͅ�w�@�jz�ؽƚFrGVS�s5���[��Ըm�C�i
��
[�֡4��>)�h]gr�S�8|��U{
�
4ٚ�YeZ�z��ժ���$Tֵk�4��qy�gS�s%�@O��]2���B���Kʝ��+U���4����-r���!�3E~���FH��V1�ͼ��8��ƿ���c�gf/{s��̖s�,�ڳ
�*�v.����� ���]s3�gD:cSɋ�i��8��2


+Q� ���ɼ����w��Ő���O;
�k
V�@��Tf0�(��^��r�,����f6�܄=�~
Ay�F4_ڝ�都B^q3vv>�C
~�FЬ�8 N�9�� ��(�@�˲��Z�yĝ��X��z���{`�>�$��[#/iK�:�:3�M�����Y�.\@.6���y(��!_���[r�.N��x���@��.����Ĺ�\(
9����:@ "IK.8�=��r��QQU��T��һD?�5�Ny_2
��Y��?�� ���xy�D��6�1�i���V.T��Y�k���|P�N���!�蘎R��q[m����K�?h�Ī:Y�/��ǰ��V�Ʃ�l(2�Q�a�A����Y�ko�v
����;�b�\t�ѯ��
+R�ԏf[�	�h�������^(�G0�����<
*L�z_�-����O�Aa�c@�O
�O�.
�sP��NF)�T6V!�s�"/!��%������E�`+\�V�[
��-�w���
5��jM	Y��� w����^:\�>��j�������1��k��z����8�?��>6�š��
+������?��a�p
+d����ښ<Q��u��sg��>X����1H��ZQk�;���
H�#�"׮�ܳ)�8�G2���c��eU��������,�C���
��X&��=�
+��eU~H�-��>/�J�D�

��v	�����R����b@�ѵW�u���gsk5�Wm�6ʱ�0:,`��C�^�>�_������))�d�Z
�vw%����F:z��*���L��T��$u��
��ۛH�z����2��hx]n&ʛ�Ͼ�^'���+��p��
l�/���u�����*�hB;v���-���ݦs'3�ƭ��m��cCa��{�ǭR
�3�ND�
�#<�s��[`Fa	�h��&���;�m�?�u��3�<���{��G���T�S���V��.���:�>o���P��)�fl�߷e�b�{�zu� ���x��mu�>=
�j���9R�
�z��ѯӐ�
bm�T#��6�I&ԛ?Y��nF�͙
��+m�w���1����n6���
�bk2�U�Z.�ݦM	Ue|s�NJ�Jj�y@[�[����J	཯�6�\�鴋�m��u|�a�_a1�j��擄6=6�d�c�+PY7�n���7���/W=�	���d�	��>�[Z�S�[�9�
���v���u%ͼD
0k��[�j֟�L)o��L��=o:��縮��
��ґ���wz�!���@.���?�UQI�;�S�`+�:A�Aư���(�� h�5JTVV�����UyhWx1EH��1Q�4��^J�u>��QG�\�/%W'_���Lk��W9U���0U�mɘ p���03��D��:@�������g~�& �hG�l�&r|N�Z��Ǽ��0�%��r~i�GL�(�q�[͒a�-���F�ţq)<���y����u��y(r^�����@�~��̣�_)x���)d�mC��ۯ�BdS����?h$m���;\YVi����ɶ���4��߼�G�+�����n�O�"v��)�
��W����߁��,Բ��^bٮx [...]
e�e�X�U�N�s!�Hs���; ���S�/����
�����>%)X���0�[���䶲c��O���]{ȋ��91
+�dٽ"�l
?���su\��U(�����g[�w��8�h�<|�����
7��ZI�
1��ϴ��JU\	���q嗿�7B�*T��x�I^����
���K�-]��A�iӹZ�m��ߤ��Q�W�R1�B��-_����߫�ׇQG����)ٍVM>3�-�P[�þD�L�m!h������F~�a~���Ӗ�F�p/��s�F��Zy�{Q�����
���4���l9�y�gN���5��t�kg
����ě�04Y}Q�^zm����?(�6.��A�01s�E��@U�gD���F�3$�����аr�X&�e�7B�7zu-jF}���ɒ�v��?��C�́������G��\��
)�U���,.���֒��/ґ1��ƛ
�^s��ǡ(��մy:��og�#������]SW�]��^׋.�CCM�b�c��='&qa��8����m/HS�b���|�.��������q��U���T���Q�4��Z���Mr��	Ԍ�����_����T�EW�
2
��~��J�VKR���L0������|ҁ�w�mI�{�]O��0�|)5���;����@�*��x�ԇ��3�F��S?�_��D[boWS�lL�Kٰ�e_�c	��7
L�*�h%h
N�=¿�i���u��w54-+�R�Ę����
f�Z�[�	��;�rߞ�Տ���.=��J��GEa5�)��:�~G�����:�4Ok�P��<
+.f#N��灂��l��vi:�*k�;
+�Z2����x(�2�P������IUY�t�׶+�i�Я2�H%�U���Yo�M����^ݭ
�hZ��eq��z��e�?�rQZ΀�7A�.��f�,^���Qo�ǫ(&9��U��cC������l
���gl�%�܆
��#�<
+�
�:��ij��{���a�B���k_�}�����(����Nz�p�@f�t�:�aA�E;ҧ��7�!�<�ê�<�f`��c�|p;�S���&6�e�B�cE�ނ>�^�y�c
�:ڴ٬ŵ�7߲]�{ۘ�<똅��Z�x�t���
M�
w��^���
�����_��$��� �kE��H�U�8PKF��3������x��j85�+Bj</xU�w�
+u<����j�wdMџ����Б��&W>�bj>��ҳe��j�Ts�}]��N���}�q�L;���9�,��̕�Q(��Et$i���h��g<�ܢg�r�b	`�S�3��v��
�c�[�m��c�������~��ց6j�v�"���k�
+��a)x<�_��U�f�v&��ԛp���Ҷ-)!�
6��f���Em(|�
+dℱ��]\�
�#2��Z�c�	7����e����Jߙ�3
��zvsAdҺ�u�+>�=��WS�&*� ����t
+u}�:����.TB�M�8�I��/8eK���7
�R��Ψ�<_��P�M��⿽ڕY[W'�vo�����o1��[���y7���=��
Toi���e�"ś�ys��t���Ή�.�
߃�^R��i�W̳�V-n��Ec�5v��%.p��/>-���yC���L�&�x��u�
@^�3�����(�����؄��WZ��e��QZ9�	�,�l�!�7�`�O��g����6ioF� o���d��!����/�àuR�
+��5�2:�-�)�;���M��SiL�'�+ĸn�����<�g�V�6Һw֊��x����ǂ����i�i���t��	faZ�,�ɵ�NjfSyo֝�j����{�8�
2Nx!�磧X�!�إZ��oG�r���ӕ0�3���b��F�����nP]���ԅ!r���\���-���h�S���p뼤��z|7,v��^��,��ǫW
��O*��ÛЕ��rSZ����
����-D��>m��z���P����CwZ���L>1W���'��ũ��J��/��F��l�
dzp�ƙ�w�����?��u�����Z�n��$��#g�
,1;��
_T��Yo�X='��wt�a�B �����^D�Dwa����A�ՇS'؋<^��
��"W|4���
�k|�PGҗ��pץ�f؆{��48�	n)��ݶ�A̺v�q��@�Hf
K���V���k�[�_q��
4r�#м�`��$�쐕0� 4��<p�t��y��o*���0nb�C�Y׀�VU�8Ǩ���
0x�
>Ya`��������dx
]�}s�-�u���
+ҷ`>�Q�%"7O�뿏;p#-����=V
�6󭌥%sX�F�7s9
�����6z��=Ȣh���

I ��
�
�h�
5��w?�y�)|���It�¦�ﺍ���ذ��R�:�^��s��ɫ�}7P�M�K�ڊrP,�I
�2oJ�u�ٱ��{wg!���Զ���G�B�`��lYвŷ�?oF�-K)ɜ���/|z�dS����P�C��6�{p�0��4
�*�&�,:U�De���YU����6����X�ly��	a�V�^�z�U2�0��׷.cX��b5ӊ��m�-�k�\���
u��I*�$�sBVl7C�Ϥ�	Xt������ �~V ;z��T

~����J{���/�2���lި�ދ��P�T��c`�JeRѯ�ZfQ����
 ��"����C��,�k��,�ի|Q
+ʭa�Ū�2Qvf�
+Z�f%w|6�9p?}
uč�}��/8t��Ud@�B48��We�#�.���:�GNu��Pz�-�D.�k9X΢MC�����Skw���L����k������Q��.�D^��������̭��Zl� ��������4
�p�pj�z0�c�G��|�QC�
+��֍������NE**��7�>��v�K�\��Io��j�E�9-��>�
�(�D�8�Bk�F�{�*����j酿<��ģ����&u�/~���ʧ��[�r������H�,pצ�0㞿�TSbu<�
+*���~�0�C��)���icTm���K�V�_,���8h��I+Xso
� �1�V݇� ������5�X��
���[}������+�~i
�~o��щ�|	L�W�/��¥s��I�#��@��@K?�Tg#�9����Vwp�5i�lD���+�
�6<:(M���(U��
fM��,��X��m�m,���p	.wA�)� �
E��ne,
��[�`G�#�?���F���ӰE)��@��k����\մ����A��mD�0���9���<�_#8[�V`�q�6I|�����S��_�6���y
��P0�a�s�����}h�'�Yp�+��5�cJ�w
�ڴN�����2b
H�!^_rK��S ��|���;�;�
�Lr��?����� *�%��<�

q�sNo.�
���z����u&J"?}�@�˄)��y������Zi0Pw�TrpY���3G�QE^���?�:�K��YZEEIDL�)�g_�."#�o1>�<�_��G[X@
�v��
U�a��vT�Um޵�ڦuC5�R�Nϱژ�ii\Z����
�|;6�i8Z$�j�j)^YU��0��jcM����9{�u�4r3��o��x����EZ���}Լ�x�'��*�k��\���]R��4�	�~�_cz{�i��W!��x��:cn�o�܉��ŲZu�I� ����!�3c�w�L�\o�����f[4��_�i$e�y$�-C������^U++:ȲMA�3��¢����/v���~��:�e�7��l���H�����x
����
+�����RW1�i�[�9� Z��r�O�=@��y-�F�#y��C��Ix����^�)B�3�볭���
+w�z��b�Ml�G��ՉNU��Z)���+��5q-�6A4Lx�HQ�g{DYE�������L�sI!|gϓ�B1�O+_�n7�+ll�[xH�FO�m���z��d�6�u�\k���t�^�ʬ�T7xi	�b���HCZX�j)&_B4
�j�
?jǨ�����I=�̭g�� p�T6�p�<p��Wg{����$yU<_-��� m���K]�r�i���^H����I����d�R�_vZ�4����
+VZ at 6w_S�v~���	çAka���'#�ח���䂾X#���‚d�W�4�o��� ����ơ��ȒM�A/8׳�3S�D �yWſ[欫�v"�����N����æs�]^�x�p��OQ�Nహ���H]���\EF
+	E�Cl�fq��0e�]?n2w������ÝWS�OcQb7
�O'��u(j�
p׎�5[:Ӓ���*ѵ$]��;�n9�%
�t�����)�j����<PިA�S�u���#��\$��M�:XI��7�J�Ʃ���9:��fu 
+��[�
nTl������{/�����L�$ ͙�yci�F��{��,��"n��PR2hZL��9��_���4G#k�\���
~�y�y�X��W=����e8��,5��g������"��)��v��Czi���V���(�
c�݅�ެ{�Q�]s1�����R�L=�2���Y^� �����ނ�+kn�3�p�}S5d��bs��
��?��t�g���>�dT�o�whʚ�G���5��:q�Qㆩ���
3E�}�":U�Α�=�

V��?@�V��ۿ�A��H&yע�.��9�+��0��G�;j>+G��~���XczӁ
���3�ԵV��S޳�����ԓ*���h'�����=ˁog <�+�_8-'��R��� -�]O��
8����y�&G�r�ʭ��T�Ko�G�|�K�ə ��T+�����j��X��ؤ�;�LL��O

+m��a�D�r����ȷ�����F�5�AC�Gͣ�"B-��*��2�
+���ƽ���Ӌ׋����i����?`b�)��Mբ�u9��5Y�X��қ�L��X��Xǚ~m�����
@�>���1��L�
� 8nS�R=i�e�3�.�5N����d��� ��̀�R�2o��,9�ŤC�n0/a�>|�ƹ�7��ăt���ᢨ��g���d�>-�����[v���k7�ծi��1
�J�B
���e�h�ml�ߧ��z�

��I0�r?
.�->�����Gb
����X�5h����Xz�hU7?���Q<8��F���ѷ�BtyǥMtdY�;3�H@��*Ud�w;�ĕ�x�s�e�>��xmT.˲Um�p��Zа�L�;�5��pC���<E�ȗ��ʈ�T��a���$�>�����Qz֊�Ѻ��M����˘q��+`̐m��

8�#�荓�'�Lc��At]��`E��S�5����v���Ƕ�dG:��ӧ'@�`~��2���h
$-Y�ظ�m��=
ҳ6wVJo�I���2�fTI��-��l�.<?�Z��Vǣ�s��h��a�й
W�@c����ep�;����yGִ��w��
?���AN�_�ZA��h�j�.;\�W7����ijEM��p����FP��UV#�]?��R���$���|��cŗ�/*��#�<��@��ݬX�ޖ(eŭ���o
��φ[��
t�]m۟1)MM<K{���oKΙs6�}\��	:��N�z�BZ߳�/����N� S9/"�����X��

��xq7��� [...]
+�U�jD�
+�ty��w���i��
+{�����g�ᜍ.�$�j�U�����-�f/���qh�\��Y,?�q��n�����j�
�)W3������0)H<!���<c�Y<�[���4�L�.�
+�`��%Bg�x����].17��%0��'[��9�4�`=/9db�\����u���Ȫ���O�;���s^����*]�&i�J���
��RJ����~5H(�\U�x���p�X�ȳpv~���c�
��1�F�R�d�)�����N�X��n���ޱd��~h9�8��]
6�����£p
��Zs<����h�
uAӮ���`����m
"�n�:�O���搽�N_}_���[��w��e
�r�:V�_�"
y�;
+k�L!g/���
�4kq���noh���qc]L]���q
?� �X
�]j��Sz��u��\t��)T�,�p3
t�R
+u6\�طrgf
�
��e"��\�����Z�U��i+V���I���S��B���F>n���玨v~�JK��*I������t��\�a=�	NQF>�!M'�3m��Bfo��}!�m-ol�V2`Y�e��P�%�k.ꅒ�f2
z��J
�Q������
vo}/��`g�%���,R�
4��M^�UH쮗L����Gk�\�1hl?o{
�~��t"ޟӶ�:��QA��=lc������b�q任J�
�a���m�I�Z�Q&�W�_J�f���z?u�
^��M/������6��|��`Ci�ڭt[�?��X�<,E
�1k̽�
MI�8�D�n�-͡�t�;�AhC��BdN�|!/�n�$���!���ް�D�Ҵ�~�
��e=xb��bn>n9�L��ܓ����=l�ai"U�+Ȯ+>��Gn3��V�ic
��@��d�
+�����,-�����4Ȇ���0d��
V
j��H���S����GT°��j��K����Q��a��p萃x�>ok׻yhcW����k�.��\�g ��+4nE\���&�!�;��j8�بB�kr����
���5/��7ؒ��{�wO
�*�[����s	�4>��utv������t�&��5^uӳQ�%

ҁ�A*�a���x��[��*�H-޹��;&~���:�w�+�B7�}9��?��%e��|2(i��K ����F�Vd��~T�b�}�B��t
;	y
�kswZEs{�+;6�|�5���ot>�NFJ�nF����m��A��A=���?�D��:�:=�
c��5
M>��9vPf�]��Jk��~�Agf��T���ʡb
j�\zQߚS{��f办\��I֍;Gz�ۛ�ch>�
խ�	�
o[���ζ 
͠� ��&����&K�
�{<���-1܌��.&t��vL��kF�7��re�6��pĻmJ9�kb��
Z� �
�aZ!��8��-4�LZK{������}��,�v@��9.o{�j���=B��c	�\�6w 
*�j6����~mm��Bw�sZ8���}�\�V
����{�R��U�i����9A�/J�;��CV���"[o#Z|��n}��T�A؟=`�
(6ޙ�
|�?ܝ�xuv�.C2���򜐷�9#��?�p�bvH�ʟ� 
+����[®M����
(.qe����:��M8��2�J��!q%{��*�P�
͡z
�\�����<��jճ%h�<�I������dnǙӋ!o�Z����f;�R/�
��E��,Ɗ&T��. r%���<�B0:$H�w������ڄ+��~_��q+}}�PH�O��g5J
$�V����£�e����~4����ہATU���ZYR}�䷇ܴo�B|m3c���R8�y�Ewj�������v���w�b�n�	��u�IT�cJFi�,��-n&(\�I��>"K�߆��3?Nڢ��V#}X�����2�8k�������E��~=Kls�#�v�n��!j�0��F�e��G�
)�M�vM�E����6g������~��gۙᵨ0%��b��tE%����"�����s=�dU��k^�ʹ������v�Kx�3'���bmV��gk�
�x�a��p�	�p�!zP�$�0��9|ˆ�z~
͚xr>C����A�JG���}��	/�u�>�B[Ѝ�K��[wG	T���G�`�]ײ�P���8 i���x�
$��
B<e�����N,��J�s
f�UN�
+r8�_����1�5>� ˏ�
g|&���
+��8i��-z�x��l5
?��l�f����f2i��guD
V�ЀI���
�H�܀��u�їK:�U��C��ߴ���|�/�pd�H��)�����=�� 5�pH��#��^�i��_7�,�[��y
+�������Z�`ǝc	�n���Q˜�u;
+%�ơ�������9k:�
+�,X
6�fbu���5<���iu��dho�
'~��9�?���3T�,,��o�#m|�`������ZDz���1h���I�,r�
�X��fMY��e� ][������
B���s;�t଻.�j���I��+bT
�H׃u.ˮ��������d�|�������\xCyVh�
4aoZ���'�=�l6���G�lg~d`xJ�*�E��t�p��YV.�$�\��Z�<‹�Nt���sk��M�O�nT}�Y�R�p�L�����ޝ��[މ�*���S
GT���ؓګ\�z�SU����
d��6�T+�:�E
~G�+�iu�h��iIy��h�>Y_yνs!
F�,٥纺,��5�0�=Y _�dW{M�)�ߕ+�8�^|'��˚��D6��?�~
ylm�
+{�́t:����QD�@�$���j�5��-�6^�¾
���a�ݸޯ�<�
�*�fYUk�{۔���'�;�Q�:�j�s}�

X�B���"+!
jZ�J	���F����
S�"�m�5|�քS�N�m���SNv�C*)h7Bť��q��i���:�o��
=5�ҙ�A���И�툻�5�@uơtB�u�W�#��g�	U��y�����
�����N�q�
jC�I��
�Po���Ji�O]�d�7���[�d���[u��w2A�]���A�e&
hpIAM���1��7��X��ܾv|͏��Q�7z�w{
+ʚ�i�

���f��@>�C�~�d��{<J�*�)m���v��

ǒp���H��*�mr��W>zpFi�<�B>�55j���CťK_t6Y����\e�!�"��vv�AHԒ���.b�B۷��x�NM8N��me�l��C߷Sk{
��N쯒0���"�h��O�pz1��<��U�2Q K.���ξ�����e�QU]�~��Ac�-�P��\��hWq�L�hs�
�ά����U\vh�s�.��x`���Yɵ,hD���/�u���P����lAC���&W�qfױ.#'w�y}�0	��.��7j�G�*��^�T��E��Ve�)���{�"�C[�s� ���uP��gЉj�R:�G�-��_��5U?�N}w7g���G�\��I�
đj����h�-o
+��S�[i���}�Eо�R$
X(L/�2`Y`���e�-�ꩧ�H�%�
��º�nn?1��t�'r0_����\�;���W?̔G\�����
�
���O�%��#�A��h����0R*�c4�5�奁�.-9=4����?Ebf<9>	u Uf�w����u�u� �{0v~݋f����ډ�._1.��i:ur/O�诇�:�S~U�fj��3�����E}�M?v�l��w�#�}��
K�8�� ����u��|��Ǥ��%0C��~ϐ�=��u���O
j�g��A�sUp���e���¨�����D���إ��I�F�(��9��"K��y�
�{�a��11��w�Zч�;��d����>��r��W�
V雮�ɑ�1��]�
,�ü�ĝ9���5��f��8�t�u
��v(��sԿ����\8�
��X�{0Mɻ��7|¨K�8�yOl�hY���JR�g*b6�D|_���ș�}�!�w`٫�S�9��"����q��H����
���L;�K �x�w [...]
+�0�����nY1�p���wV�v�\�w:ښ�	U'��!w\+��P*Ɏ�m�5<
�e����^c�����n��<Lֶ{[iQA�_*1��+
�`�&ml^YQ
��4�-�y�R��m���G���[?�٫",:KK�
+�֛y�:�cӊp��j�zU�����VR��k�o���֖~�ml��َ�Sy���j��O�|<OC<��B�E��J_Z�Y���z��(��,Tf��G�v�c�tL�b�&e
��:/�\�
s�slU�5�Y��ȍ��:Nږ]�y�|�{��U�Z�#���#���&��c�Ɨ�
B��4{|�ݢnC
+���CcU�+.j9<��?�M
JF��S

E��7�KC��nj�v���U�i\w�io4*2�C�w3l��v�0
s'�V��ɱ�|���3��Y�[0y�1��)�U)�]G�O�c��>��p���ژ;���,�4�_X	t�u���:W���
�gyZWf�����gH���O;���~m��?�
�X��oaװ�qn���E7�\l"T~I<�Y�o���_��)�x~nDkx��:U�粶`z
����q�� ���]��Kq����p�_r#O��V�����ٱ뎆3�f
��k���>[}�x�`�/�?Y��^[�����^
�T>�����[<v��o�)��/ϛ�S���I�7f�W:N�5��$p�Z͊��U��Z���O�y��v~�
�&,�3�b�m�N1���� ���7Ɯ�a{
��h���0��R��jl�?��1�6l�
����Ȭ38؊S.C�2[CER쎲�l�%
���vsR"��	l���R�ҙg��ۘX���
�=
K���ǭ�M�+o1���۴r����^�'���
��5��e���mg��w�|�_���
,��16B�����
�e�/�[kpj���WJ�mKhZ����{|L�R�b��X3u����
+͘łg�:�q
Y��2���
]�P�N_�c�
+�r-�v�q���כ�k1��� Ճ'{%a���v
׬���[�j�	f�:�OT������e��:�e���(�v���G�\�6�:�;E���Z�|�Ӳ0I�bE�� *'{�H���V����—m<�<B������P��^eh|���?o�î=q��ve�[|�t~Y�lB�<��h>��+�h\q�1TA�ުj��U�I�\�>�ȟ:��C]Eœ�6�W��9��:?}��o��5ѝ�ƦZ��t�� �Gt�Ʒ#xc��{��Ia~{�=i��z��kk
]�:\��Q�Һ�_�4��l�j�út��ͅ'�
+��=y�H~xmÚ6⢾SgK�
�V�����6��D�Œ�
l�N�Y���^
v�zPܭ�]u{}�9��ͻ�+6��N�8���;n�}P�j8�]|��PDc����Է��9/t�틸p�:w�����'Jy���
/�Ͻy�9v��(����I����
��
P�
+�Kܷ�+��v��Vd]��ͼ?v��v�wg��?���SJ��?��S~��Եc���ݜ����>��Z�]#�O����5��ܻ�
�S5�����=�N���<҉9?yx��۬�Aqm�v�;���|?P\��.lL�W}^�+?ߑ���x�ǥc
�+U
+�_
+� 1��>9^-�k瘡�ղ��_X�D���
!G���c�|��]�

JR�2��=��o_�T���=e�}��~�
��=B��܏n��	�܅_ʭ���v8�?h-K
�?7���>x��̐�l�Mv�k8'xP�Ũ�MOK",�@�p�l��G�_�R�<J��8��%Ϩѕ���Tf�.r�����j�G]�!�Ma�*�h3�O��h��lb��F��?������f/�Rwyӵ�e�d���]zN8����|�9MYz�y�Dܶ_����يbFcð'�'�ntn�ސ�ն���
���b,v7���d�����W�Oi���"��WP���t�p��!u�8o��GƟ��~w�����.C"P�1�OVH��$z������ï
���~����w�j�8t2]AM�T���P c|�оޕ��{@�>��;FF��
#I�|��Wύ��I���L5�9c��b�i��˗��k=`;�_ �)Ѷ�Dž^R��ST:�1�K]�Զbk�5�Ƭ7m���n��t2X~dZ<g�\�K�f�,��^O�G� �j at Tx?�
�tmH
G�2���9
�)Ű;� [...]
�(4��+6���
w�|��>�����ω��[�
��2Lljƍo���`չ
+���ڔ7��
�=y~�<�0��+��2.��p��Z��>��䱶X����
�a��?�;���k�}W�D�2Gn���{u
	���?�Z�C�� �*��Q�����

*/@
�Q&���@�/�f)����m/����ء
�Q{m?
�2"�՞_�:gLH*����^O%���
���s�mzQT��7���E(��>��]�,_��>���@6��ޢ��퇕�0�\E�j�ɕ���!�˃O�7Zޚi����bȰ,�k줼�h9�^�
=!N��s�
j���g
X�7�@�p�0�5���,�E�.5�j�Ӭ�
{�i�tt9��G���P��9+�Vg�C)��7�
+�(&(��%��-���3�,^hUEcp���仰Ǵ�RU���\�ڏ�}F�us4^��a��h����.�+�E��֖`�����}�仄Yf���m
��}�YI��K�+����g�T��<�>
@�2�� |S��4yj�?
l��n��i#����^��O��������7a09���� ζ",��U�>�
�6Sx�� ~U׿1|�3��m��
���F%��v0%��NG E�>��e��6��'����J�$�I�q���ʮ
v�߾����Z�-�ͳ����uȟi8��������5�bf�G��I������mGi�ٓ��*��p����B�GޫU�Z-r��>�
��	�v�V��2?b6RP��á+X9�뗢|���r�Ӵm;��[
�
��x�����k��¦�
C�[_hkϥ5�e�x�>Y�����Ō�K߃1;x-�.wy�y
+'�35I��#��)R�I�pMN�6��he{%�X�mt3� ����z�GX���b�ǣ�pu�k����cd1v*�*�
�S��2��Y�'���۩m�ǎ6��
�)����Gw.�|�a��!����ƜZ�{��{�z���T�a�b�-�*��&��;
^�ϯ�
]������w��_a"�5f�e[���{*w����T������3�F�������
��2Z�O���>z/CV���M��8^ �4��}#�=��I p���y�q�hH�B������+�yp��6_�2�V���l�t
�v�j��
��R�����|N
�4���@�$0��F�h>#��
������2<p#€ہ�B����ׯ����S���ɇ�){��ǒ_��VI����qT�ڦ���!�����|�4���Z��L�%�>cjc,��g���Yo�d�(?���!���Yv1J��HǺ�!�j�nf
+�������zk@�t�wof�6���O�����ʃ���\1����>��w�� �!�ZAք�¬U08��>v�����
+Sz;��%�½�
�B��M7�Mш@:ϡ��Pj�88KÕp�Rq����Bv�Sq��"����\��
+Fv1k�T~n�N?�u�<,�-��pPPpJ��q���'�
+~�'&�1�_���
嶜4�7�RO����&
���P�tiSFP�v�i�|�$ֻ�
=�=;ٰ���=K���(%�w
L�QL+��
�{�2��x�@2�8r��7�W�92�䧭�#�f*��-��^(*L}s�sZPn/�dU��)����v/5X�$����7��v���\��؟Ú��Xj�Ó�����\4\e�z�W����6|C�E�4-h���K
t��p���+�v��J��T�X�l�R>j���0�{�����c��h	ɗH�蝹ZSR�˖�E�d5�
O4��;�,�>
�S�������a�%�5Q�{��L7�i/?w��װ�m0���"��Qí04�ݕ��R�5X�7�XH���@���"Y��?K2�H�{�jl�e!�.�b����z
#]���Y���`=V���5�
+�lf�ш>c~��]f�
+d�^Ԛ�~?s���5��ԉ
��IKM�c�����^]狅����a��g%S�T?Ѥ�����\�e�"�I����B1� "
�퉾�h0��(>,[n���
���� ��%�N�K�9{M<B����TYa˄
+�7tp�J5���{K@���O�nyg޾�-�tך��KRĉ�dp��MI;̪f����
�i�b��m
�P�.��|TX(^�> �����O��t�@�R~']�;��AStDK�G��$�صyY�b�9�#%�����h�mp�,����ٱ�(X;�J����b��)`<�A��������oU= �খ;�
1z��3��gf0�nX&�0Zzw��!e�ڭ�%�������j��ľE�����'�O�qi���C׬]����j �ko]�g�5+����^
�|�6Z��c�d���.���3�²��?��b
&
�ni at w�>�pn/Ctn1z�m��M��c�M��Ϫ�}Wx/WV��5�L}�=�
�=x'-J�O|aH�
+2^��
t���F�ݒ햶�W����&*t��}}qȼӐ�h&fNWp��
[�✒ە���H������+i[�|��g�'o���Q�O����-��5�U�9�y�{
��FTEƼ
+7�M�IZ�--��.�y�4o>�)]
��W��;���0�C�
��S�E
+l�:�G<���� U6HU��C�Ⱥ����`��}�*(�o9�b��.r�w��	]Q���ƉJl�;ꮐ���1;Ё���'&�����f-�x��Γ�
w�O'U���wd����Z�e�?i(%&�Z�*\5��Q�J�X_շ�w�4�:EOlr}��ׇ������Sg�9+J����V}��S�[o���Q���Ղ��X;�չ�\���{�A(�E�E�����<���I_���|�u�E�Ќ,�!<���h�ĥ��kcz�4�>I��񩽦�>�#�<IïݼU5��#�i���8�@Inr�ܳ��I��
��P�3suڎ��#>�FV}�p�54|E�uj������^��v�~�c$�!h���.J��lt���i��I��6
�Q9c��`M��Ԏ���/���)4�;Nd�5����
#��	>��?��L�q�M}j��-F_�
D�]���Z�� �'����V.�
�cw�a��ץ!���;�ؘ�?���%p�~�R��ی�vc��3�[(�ȗq'���C���:�?I�� [...]
+y���^!GĮ�Z���S�u^V]�x���u��Z=��1?�3r���R6���h����ܚ�
�l_O{-�"+��R	��9�
+\o!Q�9^��a�[-�<t�s�y�,��X"�ǝ;
�^���W�i��?��0�_�J��-\������K�.�/����7d
�Ϧ�z$�Kw�ތ@��֍ɳ�	�na����JB�m÷3fς��S~5>��[���Úz��;Խ|}�Pw5�X?n\
ˍ�
_�O�Ύp����<Z�g̺*�ӡ&���
l�#�a�o��;}��:�A5���V~o��;�I\��h\�]������D�XL��n�ޛ��j�u4ġn:{:n�_�<5��{�]5U���g��|൨ډ�}��1�@_WSvk�>��I�{���y6vq$�|L�����L[�����̂�7SF�80-9��]azЛX��T�9"M�W���fv80
H�ԭX��K#](�fj;�Э�������~8D/_:3@�t��O���
�O?�MMH;��̞	i����-
OC�.]Dq���
3���*.c=j��]^m��US��͜����ǀ'#�t������Ͷ�Vb�D^�*�;$^]-�~a�&Ō=/�k��
����A6��h� [...]
+�
r2q�@�Mqs��w�
��:��!w�S@ɹ�X�u����E٥����#
CLL��
+ʴTh7A;4s�+�h72�tЋ��u�[���(Լ��^5���TȊ�&�۸�K�c��k�4�M�է
��k�)p_c�
���R.I����h�?�V
+��6���
v�툇UA(M{���B'��f��ʥ�
6�f��)
+�yчx�� ����d(�:5�]�_���2	hVvC���ēz���PCGF
+�{���{$�לm�����
<����6y��w�
?t�}������Ά �:�g^�/�	�:e�D�7J��?�����~��x����L��N
��;�6S�6�/��b�36�(	��jO��GK+�Y��^�m8�Z�
8Z�����]o�9`���Q
U�X�ny��Ĺɯ����=�?�3�م+�(7~5w��
�m��7ޝ�p��aI�g8謋̙>���r���6x��^��
K��w#~O�	�ތ��,7�0}%#��`���O^�y
O��1Szt�"��\�m��U�L�b(��#��w�c{V�W<������ 쇱��8��eyo�kؾ%MCMN�-b�
�	�@{��+�=���z 
+�^�1��R�q���|�����x�f������L�ӿ;��N-[S�T���>Q�;Ŏ
ҏ~��Kz�BJ{���Tu��p��1�
��&
����ŵ�k��.v�
+яW���F��J;��w���$�����:�b�
+
�5~�Y��i��;b.(۹�ӊ�-�}Ћ���u�V�^oשB��_Z�A�XAo>�ڰ�7N�h��Bc�c�����
+r��$���e�;����2�҇��Z��
+`,����WL^p�-�(��
��s�/���^G�#l��t{\���ʿ�Xk۽m?3�!ec��p㕃�)�����V]s���A�n0Ϊ><�����L
�2��=r$A�=;Q	�N�t����G�Oꯀ�2���%������ȋY�s�
�o�ZX�@�����C�d
+�����dc���ӯ�S��>�ć
+�X��Ca�H���O<�5��^�
+S��Ȍ��i
�W>�}dB%8���-�M��9���]IHK<�d��̦ڜd&��#cݽ����l��l�UZ��O�T��Wߪ=}�`���[�,9���"C[����4�sx���B���X}}���o2�L��X��4�67��k��C]�`�ŋ�F�`�����£�K����}}����hX����Y&��nW�Σ�b}x���4	�
5Y9R'��
��;�Au~��h��f�x:t�~�������n	���%7��^�
ΣL��\�~a�u�J��i�Lga�$^㭫�P���)����G5�;g�K�p	�X�w�
�rxrA���/fE���Mz�=6T9a�����t�y}�0_6	�-�
4vO�5g��zj+�a�?�a�:�ہ5�c2)�fe6�^�6"u4�]�c���$=6
+�ϫ�]6����M�^�9�����
�6GJ�����=!U����c�r��D�

<5�UuA�\YS��R��K���T�O���d|�7u}�?yf����8��14������`+�E��..���H����lU�Yʏ&����5DO��au�4ǵy1c���K��w���H�n�s-��K�Ă��k�lv7��Lv	�x�]ps
,̙�=�z�⬳���}���l�~züQ��h{ӭU�,k�
+����^���o��GAQ�A�?u����Fee�9�>���3a���b�ZaH��|�m��ﱒ� t)W[�Q�"��E6Y�5���xU�:X��.��Tn���2s
��� NK	�٘�Bs)(ގL�
�:XV2H���q�����4>=.���" x��
h:�Uj��������M��g����|��*+z�b8*I!<��;��U呚��7��t�2<�z��,�3�s�e\Z���l����ɔ���A)���߳`&�n�
OC;�#�d�i|��8˽H �j����/dX�ta	n�Ճߝ���$ -���
�+�j������־�̲�\�b�L
��c��[
��M���!�ɥ���
+;�\S$�ϡ�	��O&H��
G[�И��/��{[1�+���F��X�_6�"ˋD�O�������z3�%KN�gŤ���43;�
����.�'����
���mh �b3�t��z5��[���=�O���.W�U�T��ru
+��͗�����MF�|I����4S~%�B����
�zT��v��:P[v�dw1;Q�&����G�[�S-�� ���4h�Ҥef��̵����2~��%n`����y>]�I�od��x�1*�'�T����{����Q(K�	�'�+
K����v_�
�Յ���:5j���C��+�Ǡ_`XU��]�K����n���9�7Ҏ7��Fܳ9ͯ�^�������G�޼-��N���7��(>��Nvs�	M��8�07K��u#˩����7a��{�'S��{�SW뮖Uf���6�q�lD
A��Ϥ���v-��ti�ڮO>����� ,E���*T��w���)6j�8�:f�
	O
3�<s�nh��R������1�r~���T{4�ko�(%>dF��-4G�Zk�U=n��Y�. ʔ}'�ӹ?bF�̫��i!ì����h �a{/��^|T�eP�r~Ai�.�kY;��P��X��g��e:hwC���k��5ֺ�Ԡ�"l
ve�G����vg�����rc*{
mƏ{F�&pe`�����3x�h��0�F�[6�s�^!��gd_3iM��j]Bq�_$����R���R�>	�o�ғ�Z��̇�\��R ��iv-�`[�hK��
���`{*���!���E{��Q����ve6v_Çli@�퍤F7��\��
+<�^�f>Y�$��
܎9�y\����]e�f-o���U��t�@�y�֊�����VכgC��r3ƤӘ�4[6��z4�y-
���s
�X��*
�X��ʗ�{u����	@�KZ��,m*5�A�}���7�7l�¾x4&�2ˈ��{�X�ބ?P�OY�j�
���N��$��ߋ�����y�M}ϐ
vM�F������(+.�{���R缞�Y��܈g<�
�Pr��H�鰳)Q쥒�
*���`r���?����]���؍����x-�	(fº�)0�񌳩&I�m��舕�
��FP#)s
�\�[��8
+��q�+�Ǿ1t��X�6
+s�G
�y����-�ِ�
��j��߸`h~�^�"n�B�������Eh�<�Jx���Ʃ�`�}`��y@���H{��7�aP�|Q�W�8ijQ�c�J(
|��E}٠��%�YJϜ7�dE!+2�a��I�0kL��SLr��n��t�t
�M^���
/IG��a�s�]���}�
+_ 
V]�8q�TE��-\��Pa�k���'t�N�N at uYgK�P{
�TВ�-ꊟ+
4oYjSl2
1�>-j8}�Y������ޑ��`�
�2ԯ +y�;�B�h1ו�OT1�k�1M����W_M��
Srw`�ª���(o����c�ك.w`�T�Ò�SH�I�ze���>P`<�K��	���&$?P�"��U�w
�S��4M/e���g�rG��7Һ��bC��H
���[�rL%��*������̔
�eJW�^iCk�	D"IX�(��'����K
+T�(��H�=ac�ɱ�!���Db
�ҞA_�\`�F�=����Zב& 3i��~?Lasx�a{�Nf��ǝÛ#�+�܂!�/��.<�ɠ=���M̡�&�^=(�1Q��P�y��əu�	�?�y
�q���B�

+�s���T��h���� '��ZtN=B�����4�C9�č�	<�P��Y/�ۏP����}
+��գd�?j�%\a<�UOV�'J�$���})�
9�͎���9�Wft�:�8Ty��o���v[f�"p$��o�
��~S}�c�t�iw���cv�Ҙ�5�T.qy,#�}�����x@��Dl�

yK���C#_<ե#^�
§�k�c
Z�vig��G�Ԃ��y@�V�{�������7{
�����[~<�,��F՛lsgQ�{;�!�7��/�Ϗ��cr4
+��R�̱c������T��P[��G��F�0Wҏ����7�pp��̆�,��K��y��6�
�@�ғk�x�`���2�s2�
9,)�BOE�]�ƈx�+%�S*z�烕��[�i�x����*r�T������U’��ҙ�jD�=
�$1u5�����q�-��^�\�;h�y�e �)������dm1)
�>?
r}1��@6�=rB5���GR������$�]��Rn��Zyx⋝z-�z�G��$&��,�̓=�
+XC�ϛyQ�
ρ�zd
����A�:�k����O�Ʈ��ϙT���l\j
�
٠���<s�X>���5j[Y���عGǾ9>�rIZ�EfD��ܳ|���YN<��r]�>�
�Z��.&ȺZVy�~�x
�沝��ͺO�(s��2jT�?泡n�k��˹Ot玏�\C�7�L�s�
UrUw��
7�Ym�7�-�$Z�7�ck���
��G��k*dl���[�����!:W��iKC�����i�<]
�y�MS�
+�V�r�HF��77�G%Wߓx����z�j��wIJ��3v����G�^��r
ȳ7倮��YB�N��6;���	������6y
��<�����0^k�T��уLqأ����3n̗�O6"W>
.��-hb�:������w<��&�"���s�.�����7���}

�5{�au#�
�[N��c��,

�ˑ̗��PFs��c�ʅ����I��}I{9A���
9-��U��O�R@��I�d��v��+���:,'�)�H^�mȰ��@DM� Wg�*Oھ���gDr�R�<��<Z�
>��
�9i��,Y�?�0��ƒT��R卵!��JE5��mQj��QM�g��$��#�i�K�x@�8����(
��չk�r�nP�Cn3�9�oK��)���^�>��M¯�[�S��%��[Z��'>x��z�5��|�K��;~8��w>M�
>Բ�45~�m���y�v٠������R�����x�6�e�]�b]\���aJ�
�Mg#
��7�5�>�5 [...]
+���%�j�����	L���e�T���	�M�-���CA��s�*�
(Bл�/�{����4�n�!:����ž=��������&��>l�H^t��2��S�$/�ԇu��|��ÿߤ�r'�
����s_�<EL
K
�����kB��R�hs��c��{�T�˻E�d ��@*
i����$Vr|i֘|��M-&ػ�$r(W6��!:��%�L�W��q�z�Y]�$Ƃ��򢓕X�
��~�{օ�x�U�z���'I��`w[orf��^�9'��Eg�.I�8�w�,
/��)*�w�hh��I��|�
O�@�
u�G���r��{3~-b��WZV�5��&�\�]�s�\�yF�����F{���Y�7�؏�*��`�����g���4�a^5�N-��O��?%�/����[�����}q��:o_|�ʉ�_67�.�b����(ix[+"�2�
+ϡ�dF�C���]���L�_�V��.�l[��~�e��IݻCc|l��嘑:ԦL^x��q�VM�o^[�k�
#
**sd��/"I�e1�1U!Q�mO%�03]p�م�\-W�p���E���yO�����K����+�T�:� ])	�6������@�:��NO���

�Tg>D�* o�Q�H���/���Xc偘Ǯk#�R#]P��� ���'�<��W�0U%����]�O�|(O���
玚U�m�QtS�u��
ˈ���h8teZ_�������ЬB[����8l5&qKh�(����ߟ��nAX�7�(< �x�.7�5���-I+F�
��O��ؙ�L�x��V�����Q��.�sr��&�Y��w�c�ƃ�LŦ1�h��B‹b0f�j��Z�w�yȯ�n8}rq�v;c%%n�o�B�y�N+r�`
����5X�@��T��M��z�����Q,�9yx�XcY�E
���
���s�S/�%�#��>܌*I&�U�Y��l�/k\�m��
��_��`!�����}�)n�)��o��{�[��
��Σ��o�zE|�{:�5VvM���r 5Ót�'k�}�	c͘��,�q�
hY䟼�Fgx\�
ypi�Yi63��m��.�t���ՑF��Ѵ!��pE���Q-�i�)� ��$WxW��� *g��)(ժ5`��Ɂ�z;{*��"�CǗH��o8�f¸C���ה
��dh眡e�y���,(�x���ie�@����x��^gptn�T1_�rm�|�f�No�0�_0����ɥ�}�O{-�i�:��g8>4؃��e�����x�X�I�{I�;�_�|��d=Ƿ�=��
�d0��ˋ�J�s��|�Ƶk��{6�jc�Se���E[	X�'��u|�'ҿa��15e
2��z�-'E�+��۬ؓ�M��
5���+!�\�N��B�F��e����Q�E
=�,q�Ө�@��l���-4�a,�
�TZ ��jUz�<�8�f\d$<C6�jù˯�ڈ��!�GW���b�!y��MG�
+���������O
+��ܫ
=M�~�
zw� ���`�p՚�H��7�_Ӗ,E˂��

+�R���_my(�J
�v�'�.
��gj�4�=�y�H;��}�6hR
-/�wa=*�9�F,_ݟ�Vǫ�)�ʣ��ߟ!i������ٓ:Zf\u��ʃ�� .���4�h���~���W��+�h|��H�O.0�}<�^�q-�X,��&
���l��1�!
�"Ut�\���Y_�A����^�u�^���e�LW*�_j�)��Rۥ��xr�}	A�<f�֞z�l�.�.���z��N7n��'՟5>��K�� ��Fy�ڐ
o���P$>��ȍ�K�VG��[�tr)$:��n;J(8}��kZ��

�e����6��Uz�f�S�f$7FzR#�}|̰ݨ˶5
m��
+�r�>
�E��l� ���M^=n΍�~
��|6���j�Ɋ���M�j���4oܭ5���Iq	�*��{��Y��c��������K%�d�2�n�xg[	ɍ���tߓɩrGGY��G�3�n��Iuz"Rz_瞚�5\z�I�`#;��׭{�S��t�����%)�|DM��f�aW���ȶVí�X"�V"@�"
�|R�<�<ə�-9x?qe��6a%Qn��{9j��ÎN�r����!��sJQ�5N䀒���� o�̒d��P�4�;S�.�
mdM��5
w�HG��

�Ci
2_Q ˻M�t�W�T��H��
5�_ �
��VL�ǁ�
�s�;�&��J�~�G�����5�^݅�c��Sj��/�~���d��3�|�k
��q��@�:��haI����'?Up�jE�;�p��(�s�)�ךK&����	*d��o�$�xpj$s:�ܷ|%}>�A��٧>��*�%�.�]��H����ڻh�g
+ at l�`i�dV�<�����:�8��Q/�ˏ�_f��r�Ȯ�+ɼV*DQX#+%�
˾�`��]�ҀGr
�.̪\H�굽>�P#�����P�Z�L��:b�,}
+�o��f��y
ǫ[K���1��z���K��9Dק�X
�"�ga�3p#��,�#��q̄����I�AU�P�q:��^�-���%�I��Y��!�w�s��8�ky����C���i'��1	qe�hд;
�e~�g>V�'
+לO6���hiK~z²�^2^V�h�Pl� �O�;VP�`�e�� 7�,+
+�
�5�����P��e������zM�)�`
d>��2J�M��q�Ͷ^�W���v�Y
+X���ݚ���YlZ!�L�iy�~��F���P��,�p��1U
�F[�j��	a��V�%҉UG�F��� �B��?c�
������Q�E}�
+��v�ը����G���Is�%=�|��U��1�b2U�?#v�_��q�D�U��MX�i3�-��<Jd���1��Ikq�R��h�kẜ���X���3=@�
5�
�}u�/�
wD*Y_��31�a����<`�F�=FC���%T���%�
�eA�x5�$鳬����w��d���cҢ��^��ߒ�NN���`��,�K��o��}�x��
*���ގ"ES�����5E�6Fx�b��a#�q�[��\��cJ'9߇D���,�
'ʬ��%\$����˓�p
Nv[��HjiB
��kQ��'�|0�LJ:	Mh��ȥB�A
^��Q��f{#���UO��ˑo
�C�ܑ���ެ�
+�3[Qx8��"W:gd\�/k�2J�r;PJ���Zʪ��#\�@��?�W�����7�Y����JL.�f�[��D*��CB
��7��̓%�p{��T�'3S���Um�k�����{O��?���H�-6,�6�1pI��U��|� �AZ
&����'ޘ��@�g��v����#�қ�q���
�jPd�
��� �j}`
+�Q^��a;��)�cI<Vs�F�'Y�����ݛ�w٣=�1x���B(#��OTc�_ at O:R7�7a!�/4ԫ����x&�Q��Ӭ��ք��*ȅ���?�VY�Q�Z��� �?Ƕ��.B
rNb
_���!�&���o�)G����|z�r��{n
�A�.�����ރ�%I�9�'���U���Ȳ׭8�F
�w��>��[�Phb�ҡ�p����#�fw)�М|�l�.��T��(���|�\�Rw�
D�Ur�E��-=�}�Vr�]�goc����5�uCnjm��9p
�Z�t*C��\��P�XtO7\��YR(<{(h��*^<��`X�$��ʲG�ݒ
nJ��"6N��m>]�l�sT �)b�k��4�*���
�����zve����,�[��<]�ն(1۰���I�^
8���vK�\��H��;"W����A��2����~Si�֢�
�$l,cF�iTV��=?V�򤺪��!Xdq�Ԥ� �p�,j_E�
��ߨZ̬�Ѥs�	���Cr��K�u�T3eF|����:9�t�
�W�]��IJ��_{
-��gҕ��)�N0
���f�7�EE�oiT�h�]��5��'
��P�h��v@\
+�cM�	�R7/1>�|t_#����ww�-��G�,�,
+
pć�r
��.��]mӻ���P�h'�(
z�����}�R�����VԶ�H~|`���7!-7V��S�.,:�o5��FB��*
���Eq[���J��_h��ܖ.�j��\��Ю�S��l��+K:=ϒ #;����@2�a[p��v���
��8���`���D}J�
�{��5
���wp�R�ah�����|�'�i��������ׂ��չQ�b
�w�63��� y�� �{z6�k���tE#�h���Qh6��_��܌�����i=9�N�
+������wy+?�䐝���6�j�WW�eԮd�.�vg���r7���rN[�P|�j����zAT��"b�$'
Ǫ0m]�(�4r�K�����d*�l6�/�����r+��+�����)
��HᗄU����|�I���v�`�����ӣ]��H��l&}�'��VF�R�6�eQ���#�������1WT��O���<���;���^�&X7�yA��L��k���<�
W%�[�O��mP�TΗ��z�ys� �˃��:;���h�~�_�+B�{�%g����r��{I���R��B��{r�%�;�A	�EΒ��
�FA�ë-���R?��x:PI��ˁ_/��0I����,WD�3����Q
;�mA���G8�-��0wخ-�jO�����r��7�_��:��\��������u��C3+�O�`*g�x�n%�e~N�+
��Ԋ�
+UGݧ٘q��7�/�}��-Iǰ����n)-l{��v�/	�'es0���0T���
���F�FYaw��i��S-�>�3ݔ��� �
�̧���vb�)��h�Vek
�ȋ�]WS��^�=h���Y��dِ=��Y�������^��
+Z
+
+�)�C�
w�� �]r�k^�ޏ��ؖa�_k���D� 8�\?|��2М���OO�KB}��%��b�H�$�?z���xfV���Kk~�.dU^���P�
9h/���~�txܿ-��0�G�Z�3�Z���k�H�K�f7f���VxԹ�=㒃T��M���0;��z����G��m��@וּ��O�l�
ճ�:I$P.
�d�|���
���E����Z��L��(0�2;9�5�LEhUw��*�;��g��������ͷ�.��'���l�y�;����W��.�+^f�R�[��FQ
QrQ��վ���2z1��`�JG�m7}:=q�L��}�)R��<
+^�b�/�����b6R�;��V���
֊)��)8ۯ�;���n�v\������C5l�xY��s���}5��y�;�ƑŵۭV�L),���4�
�����Q���	�_�/�	�_�/�	�b��%�4���,����o����bɞY��������u{~�Y�ߗ�[�_{^��=���,�җ�О_�o���������4���,�_�˯���w
��}�}�����9�/�7
��}�e{~�Y���7
�w���4�D�=~��&����M��rJ~{ɛN=-�ۺr���&u>
+l��Oe�hle	���,�rsc�_
��?oψ
:)��3{~���
>���6V�
K�&���Ի\�[�^��v�R/����׶��f��w�W:&֪����f�ݐB๛����-�
+� ���q�w�[_��IQ�+}c�M�Q��	�d͒��2 Z�yԀ���D.&���Sp��
|���h
+���Y z�����X�
�R�Tt���8�/� &o�&�`���o���.��6�
��U��|��xl�vT\����aSF����E���:��֝V��í
�9f�.��Z��j��U�U��
M	�y��F�G�Ofib���Nwo���s�wC
+!�̞`�UIg�=#>��˾|�&X'
�� �q�mc%ƛ�z�9�g���{�Va^�U�q���^�}�h�!|�����D���`t}�B�u/?j���=��Q
�݁��ul����‹��ه��!�:Yk�������}g�i�b�<��+����)D������s(
�w���n���
k{vH�.���=W-�N��c�׃�u1ר��T�
5���:w�f�ݐѼu�A�!N_��h?c����=�(7W�+�̞铱��N�6���*���E���lI
�r*ت��b
C���/���
��wR�Xi���	b)�M^��cn�]�W���c�S�܉=9���y�6�
d��j*����9%K�Ƕ�
qt�ː��_H!3ɈJ�����mL
��1}ϝ�������t�4�{38&/�G���b!�Má3Ӯc��A�P��u�����.��o�:�;�)G�3�0��L
B6V½��>
��YN(\
mWt�N��Zp�i�r�i�u�j�:��&	i�s�P�a�V�%,�
|?�����N�.��-x���žRN����c�03��O��-����>��jq:�YlN(yչ�2��4
Bh�ʐ�{�
����[��ѫG��
�{�^
?9�l�]���UR��+�/�kkI[��=x�����6�|���r����������!�r�w ����. at ii];�őu._��)~���
HIv^�R!��u��p];�c��k���}�y�6����O2��`����*jL�6�l���H��
��R5]�B0�]��l|�NLb7N���
+� zս\hl���y"s�M"_)b.D#|?��nURp|�S��>&�p���}�*�](D���p)�͑�)��u�rޙt>��19/7�8�|ݬf����mnk�Z���c���8�2�9ͬF�U�??՗_����D�/�Y��K�����f��/�=3���?h~��[����Y{f�����՗��A�~��?h~��[��5���=���,����_�o��/�7
����D�y?�>W�8����C� |����O5��3��K���;s�~ng���,.��f����s�^���|�*���+z���/�A�9
)�y��<�	tψ��`h9��љ��~��
+�[W����*���wH
��xlpA�ץ�5^U!1����$vlC׿��&�?$7�|�L�[�����ۢ�
x�{���qo��yg	bF�]�8�Ĥ�
n'+���,�йl[��i~j��!�^���_ #��3��LxȈ�g�
+j�y<�Sux�||�����=�H
����_���\_��S-8�^T\�h���Qaf��\/�A��W�
���<�+�M4�%�u�}�
+7$�g�v���Wb|VY��!�kk
���&�Mk at y�嫥U�����1�0�M�r
����X��3M
�h�q
x����ʹy���A��H�X>6�������v�Yt���_5���\t�j\�V:k����0�9|�(�??��AT�e
��x�NȈ��BTC����
�w;ϟ �=?V)���8���s���:B��B�����MC�
��vVѭb�BO�F���!�ĿQ+�P��Yԫ��[�hE�Gl�k^n�f&�F
�bk{����]A�Ӛ�����^g� �Y�r��ea��|:��uz!�Of�~
~R0Y}������w/��ď��+D{n~Wk�Ϗ�PNe��r��Y*gٺw�sX7N6�^Of��S�~Y*��Ӓ>y’&$��	������?}��ׅ��G���wz�hޤ�� #��_s��!���T��|�
�^�E�
�� ���j�]D�؅Ԑ>�Ԑ
+�����w���3�癇BP�I�،�3t��Id �Z�=U��ޡC�]I�%�Z��%U^Z�q�5˝��=˸Ժ�g)���.�R��������B���s��'D"봅�	b
r�jB�����fyr呵o��y���IO�܉�e����{�q=ma��%��
ax*}�WM*�̟���Y{
+�nFԍ3{:�"m]���Х��iǩͦ�m�r�/�A�gO�Eܤ7�`pcp�'�޴O��iZܷTX�
e(�S9Wɩ�]�&H!�P��K�M[=�N��o��=�������ty�������Y�qC�4��:؏�B
t�:U
�.A��d����&�;T����?Af��}�/A
+�r
+Yu*m�;���g)(��M�0\C�0��|�b��T��J��n[���Q�$(		��2�ۼ���T�59q�ׄ�_�6��y.g�썞c��7{�z��U[�Ch3[
�%-�v�wN}l��:X�2��cy2~�%��P	5�{g���2*pq�	u��7A
+
��뚊�,ZvO��>�nZ��W�h�t}�4d��+Ky˛��(m�j]�
�)��

+���I
�!+��
tmq����:��/�����������VB
+�s����;�X��%mXL�	����Y#�Q��g)h�]�����7k��7
/��D�yƾ/
�Мt
+*�|�۫��K8G�Ǖ�.:�/��6��n�%�1'�]M0s!@Z�����g���K�B������΋�
� ��{���"
+�������{R�v�u]\>��}P-�,Om�>T���ϡ�O!�`���I���Em��9U�?��'^6d�]ol8�;��.�0`����
��,�#����Gi�?e#i
�>����i�
+RV7D:q�L��a_�ͳ9���ׂ끫��]T'�]���x�
��o\�H��9��ܤ|3٠���/��/�:џ���2џ���2џ��,�׉��L��+����o��/�7
���������=���,�?���	��fv��+��ٸ�{��y�ٞ_�o�}������8#z��`���1�;q4kW�q膦��)
�����j��ZB;p��̞z<��9
+�Vuqv�&~qfJ7r��n��_�,�]�P��+���~�D�ft�h���3����Aw��IgURK
��o��_~�־�6^k�;�]*��
s�Zn�q\�gg4k]7����c����eq���_����7Q+���e��g���q�rψ�@�ܯ3��4x�B��^�̞���������c��Ǽ-�_6�J.����ג���\������
��~��5!#
+Vo���a�/��q��Vn
f�=����Z���?uÍ�������h�ݻ�r���f
߭ךl�Kse%]l�Z�mD{쿀��~M��
+� �h.� �7��xb��7>��:g�E0�:±4Z[�n���
��Ǽ�Q��,K���Ɋ���"�)�jU���\��b{?_�6�/�7;�v���;#���/.;�n�>	^'K<nņ�WW���R��F��s���dC����Ɨ�E�F�f��96WG?0�1����
+d4����|���8#z�}�~��>U�j�{��E�$
.��	�Vs��A���Y�ә`�ۊ������st
+�\yp1J�
N}��M�fm����9�K�?D�G*�R����~ǟ�Q��e�{���I�
99S?��N�<��C_z��3Z{^���q��탕{���ߝ�Bd\4��yZ��t��w�_�B��1��^�@G~5���U�j��ꖧ�@����ݽiع9���j��y_z��d>f�׎7��^���rǎ�ڝ^	Rp�e�9v2�T���
	�
_
{=�r/?��
�����GV��ǡ/���.YF�M���Zx9�hm�^�r��xqT
�<eP�.��	�3���������3{�W���F
+
��K(�G*v*�ݧЏp��vg�V���D�B��W y��f}vgnϣ��Hɕ1�R��skib]=i2HOҤt��|ώ��
�L��gD%z�����sTcʱ#ΑH`bႸ�����.-������1�w�ܾ�1�����2F��a�{N��4ŒF������~R�_�����)䈙���i�$����=�л��>��g�!�m�a�Ec�k�m�
+�̤��B?����%>�2����ח�X�]`��J���Ϳ����!dD�̞�3Ξ�������u]����o���
��C�t�V�\D��e��J�$��l4����Ӑ:�~,d�S�Ҥ����9����,g
�w����<�Q�͈������&A�c��=���*
�v����]v�'�^�
̬�v�.F�8U��T��'��T/��
+�&m*M�{.W�}i��������
�)t�i+��cr����s2��>^^�IB���f�d��v���
�C��D��'F�M-QIJUA^�׼�
YA*
j�XvBA�J{9�P�w�Y쏚�R�&�ᴅq�s>����~�oW�
�>V�و�M�>
�+M�1����;��AO�(�D�yc�KD�����E�|J����EmIg�a�C�~
R43�N�{a����
s��s��r���@�{���fvrouH95�3my�U�R	��b����7a�Q("�4�y�}\�>
g`��)D�
�W�k�B�T	��������*��3�z�Ъ�R�y����J$�I^�>QI�C���Ʒ
+��
�
�s	��Q�5��f
+1vƔ����
����B��=1��3|��g��gU�ch��z
��Bdm��w[� agA��;�n�1�kt�/�5�����
�7��f�^b�F]�H��D�ZF����K�����X�it(�'�h`�/SF}��\���̛+^�Uv죢{������Z
+�I.(�X�)"�/��WҭR7���;Y��Y-F
���W jL�䡽��N}�8�xx������6� ʢ���*w�8�Y�W��c���œ��hEV��5�3���Ɩh��

��=��ǥ'{�!e��9|ޞ�	����U;��Q_��]�E�d�"$x$ge�b�s���ʒ�
$"��p
(x�־��հ��)l���麢ȶh������^DE@��E���k�>U�NVݕU��
���r
cF@�p��tfk��8
+IB�����O R8��/[�j\��
p�kOg���ѥ	��+^��m�	O�V�k
)gcN
�v���a0���_G���<4l�^�^��3�j���k^�}�V��
d|����7�%�
M�#�S�o���g���74�?���'��j��_=��'�_�	�_�_|��������w���5��������z&�9�?�,q�P� ��G�g�r��J���~&��iٛ�]'��	[��9��7&-'X������uJ���n_>�N�<��i\!�U���))ګ�Z�7�{MA��-��
�a�
uy*
�{����G�ڪ�	;^��s���L
+_�O��2���j��h�R�^4��8Z�mx�S£
�}r
[�	����gw��j�k �<|@���N��qeսEb^J���W�K�J����2�X��7A�oR���T.
NF�x�
s�x�}9�����Ƅ��q��>�x�z�[�r&�/�;��c`V=|F���
+A��t�H
�R����}�;W��b9�������<Q��4ӗ'�V.9z�c
��x~6�%�9�_����N

K�����o����a�)c�.
&��温��}�n���
sz�	c����"���<?���Qo{=ޞi������>��{�dg+�7�ZC���������֟���o}��܂�
�m<���ҳrPX;
���#�̅�ݷ%K���Ҵi����	�|= ��ٍ餳ͻ���8~�n9�k�~u��_G�z�%0B�
����܂����l�k�J�*v�Za3�v��6t�<���I�Eoa-�f
�tL�v�|�^ֆ��ϯy��;}�bg{����j�U0���@5�V��CH�R	��6
80<��-���bg���ݙX_-�-ụ���;M�i��
�i�Ӻ����0F(��`�=_Ȕ՟!��[�!� ���Ƨ���+q�7w��N݇�;
�Rׯ�f����
آne���W��C��
��Ag+sͮ"I��]��N *��Y����D�]]r��7����N}
+��p�g�)��ʣQ5!;��ڛv��+]RVQ;-����
ֻ�D�U�-E�yH�=Q�𧮢p3�8�j������cW���7�{MĤ>e�@S\;�fu���!_��ev�3d���m�<Yh[�EܷL���ev�6����Vx3yVN�Y�̨�.�4�
Q�/;��H@�>�`p2�OE�
�.���ӃS�h���t��]��hټ�pY��n���r���	H|�G�P���U_���M�_�%MbF�IcTe�gbc��� r���wIQ�
+D{])��4;���T$�J���^�^�
+�.;�>5���p0���|��_j�:7ɳ\��f�wa�d���j>6��lr�
g��Sm;����o�K�|%��
�qm�XO���wt���N1�����ܲ
�J�1����+�{d)B��᜻9g��}�H.k�9q8-i+�9�\��Ӌ�?Ѵ�<�5П�D� �
�^o��-�|\S##��a
v��|ÞLaԸM7ԁlݧj���$�f
m��7�`�m���ٓMz�5zV\��ty>�������^�� �n}i~=�����Z��
n�=gy��,4��‰�{�#�z*������Y2D�F9��b��,�� �
N��T<��=MϛK��X�.+8�|��:@� ��b��5Ne���[�
��\��}
+�8}$
+l1�<�.Hx�

�a�X�|�O����P��g��Mј�+{r�����, 
������ָ����.����{z�3
�J�r��0�y�t�*��ϧ4.���c��`���I�/v�j�
Fw^�{	hV�'�4SuS��!��OQ����䆐���#�?��5n�N@��Ri_7
Z7��j�A��I
Ş-Y�����e�w.Z=Zd��E��<V��{���?U��_�&�ޙ�р|]�
	���"�<p z���֔,z^�������lۊ���
�j���,w>����8��=+��3�������1������:�}~"͗�I��H���{W��N��]$�?4��$�`�����U�3L���~5����EK��X��@�aw%3FN=��1~����N[tϣ��g0٬.w2>+9�fO�cI�x{�L��
k�zvL8���D\
7���O���4�z�(�L|�vu��(�q�
M
K��i�g
f�N��uG�xZ� D�D��;����
]%g�O�1��<�Ć>u�^Z�"���~�􇆿��3�k�LiU]��]�_7�`��j�bQI
3��2�-��j�	��$�2
��у�D.���T������YC9ⰵ���tl��NXu�Y�;�(�w.���۱=~Do�K��
��W�c9	
�sgw�-̀|t0c�
E=
�"�D�
��o�^�["��v�
+�:+mF��(\R �����	��v���
�3�}��~�i6K
�o��<��ƒ��,*�ҋ�dV�ưt�an	EP��
��F������Gr�Д�P&��p�M�ז��?c�m�Z �;��	�g�?C\Fi).����ø<�
+ Q~��e��#�V1�{��E�.U�:���2����hω�^�VƂ�&q�
�
q�O�'��tĜO�s=l14,F��Zq��%$���"�
��E��	���T��?z쟈~C3�ˁ��Y���i~����K3�ˁ�V�'Z� ���ެ����!&�@�t ����X at sQ����K3�}�Q�x:�D�Dq��DME�#�Q�f�O��������>�z����:����t�y z��B챬�E�ڿ�n�tڎ�ڈ��h�XФ�5I�u8��Dy�i�S�eX7�5f�Ih�z�绤0�����u�e�����&�?-��ԯ�O',=�.:ˆ��
����
��3!�N���ȥ)��œlA:�7���x��e�8�Ʀ1�Q�(�_����ij�}���
f�Ο"��[q�e�B����ƕa�W��3Z�J��j��du�%
!�2�B�9��US����l?@^y*��1oMl��]}a�lć>O;pſ��c`�:~h
+��'����d?�� �R�Gt[����+W���\'���PA;�+���UӀ�@�go�dSw���xV}�F����n�pQ�r�L@�C_�_G\�n�/Q04ٯ2F�S
+�Qw=�P�mX%�TN�O��V�����\�Q��wwB��{�p2��J08�%Ӹ
C�p)�w��xjQ�X���`����MQ��1Q����,w��^����J��r=���ϧ�ˣ9Y�I�P�\1<��?h�8���3�����.�juZ\�ڝץ�C�bt�n
?4w�
�C�������[
@�̅>
g��V�q���
nc�\:��cc�iic8�H�:��|@����N�j6{e��t��ږ�
�`~߮��EI at _/���l��р������[���x<����k�
���o�f�t
�3kh���Z
/��a�Z�.{��*<��2K��u�wRכ��#YP�Ca��@m���ߋ����>�]�QQ
���-��|=��ف����y�V���W�W��,wdc�ro��
�k~�'U���l�i�=�rS��QG��MS�u�W������T2�
�
�������|�
��ZpҲ=�.Z���H.͙UXhwd����\y�Ln����=f��%o �Y���bN�fŨ��_H@�
qٷ�0�z�O!x�� �y\e�۸���gS�2��/�M���RvbC7K@��8N��r}�5����z"
"��(��
d��]���
쳼
DMZ���.�oǿm��σ#i��Z��X�S���E�:@�W�ߞX�B��EO�U�oz��x���8_�WĪ��+�HT7�%�ī���8i!)k���_�v����籑�8'*���m�('�m�[-���,��[���ZĶg�A���h���
�����z��f�
?ח3�2U�xw$1�5)�����
����w?D'�6�*���������vރY������O10�o~��w����@�Q�<��a�Z���w�&=
�f�}����k>e��DӍ�<#u|�KH at _/q%V	� ����u"�M
�qKg��x�y~�
�����4
'�ц�jw{!���#�w�d��q�>�]��T��p���Hu?����	�Zm���Dj���)�ɿ��j�@^�Ƨ��k�����X[edo^e2|��[�d�-�q�ݬ�"\��H���6�����h2��o�vO�L���`r+ at 8�H��䀬�D���'�%��	�g�@\���`����Z�k`���ǭ�0!�������U4�S[rR]Cr*�q���%ޙ�	��Ti�P�H�IW�����ɍm!�n�
�ry0#�fM�Ln����.	:��I�?O`�㚺����Z��
��ڸ�
�`��@���H�6/��u��
��a��SرH_�Zy�>
�X��u�C>�pE&�N#^�rFl7�� ����?ֵT� �r��/��u�:� �/�ScyT�z�r�ӕo,zWv4�T�?�E+H�N��LWR&Gu�ja"�\�T�
+�}�˭.�&[��1��?C�ӷ� .�yp��CЕ��m����anF'a��
��U��D����o���|O0�ѹ�3�����̗�X��[^^d�/��P&3�.��L�T�Ry�˗���t
�++�ϵ2<_��<r��UN�ң<���H�Iy���ڰɮ�0��~;c��9��3ս���@	\r���^�݈�{��N-
�z�����|
���� ӧ��5/���Ϙ��J:���Sc�#6
+���$�V�e�Zm=���
+u�Lu���=�*�#qs��9ο)7⊗�����f�U��
���'��g���oŵ"LJ��<�*Ʀy$��F�r�'p�J|�<�-�9�dJ�nF����6x�%���%����u �~kK
~
[�",�X5"���
��*�9�
�o��s
	��븏�b�t��g���m8�U����{y�U6
+C:��(
+in&$ě�xzB(|.�il�ZsԳ�%�a��N�0Z(q���0��pw�a���M��a^j7GK���ކծ4�_8^(&56-
��eb@�P'j��Pm& �*�����w1��!(/?��[pAG��n<|8���	]|vBsd�&��^�I-����6�	�g��w$�u�l �Y�
+�M�8�u��=�	��Dc���5���}gG��
+�+#oM�!;Rj"is��HϺ���
� ,F}� �>�#���:$~
1<����Z
��Zk8B��\�r�su�
����d!|#x#�b���ح����ѝ��\dVaul�K
+vOm��FK=�V�p�w����3R�B+��� ߟH����oh�
���~��}�_��f�Ǣ��������y�����f����>�Q��[%
�	p�AB��@tsIF�\���z����GW�����hn1���
%7�-�s��d�Y~�w �Ȭt�ޙ�i���`
��v�f����b���1�� FҠ?s�?v��N7
D�Z.|_�� �x�=�a�(����u5Z�R�Y��|sF�%�z��Gk�

]�/JvC`���&�
�n!�v�׈a�DO1|t��%>�� 

!�9�@/���m8�W���y�M&������S�K��v��ϊ>�����Y���Yi�q�҃
+��o[O�2d��P�\��#f~	��凨�����z��?��
q��� �qn��Mm�@Thu�Yk�_�"<s����و;�{N<'��ba���JK��<�nN��Șe��1�<ݽ�蘻L��b�p���Ċ˙4���8�En at s�ٷ/��5ps�ثU�A�=˻�n�@h���� 2�Y]s��/��g���$r�if��oX==ҚP��+R��=�5]�d���~�ߋv�0�J��~�ŕU�W����=���@�UC:u��&���*=u�L�L@��X��5E�[3��
N�m�U��V�l�ޱ��j�r.T���~�~	�k�
�1|a�`�7��[
��䵊+�@�+.=��8�Q�
J�
+֘��������ϭL}R獳7Y뵫�9���� mk�}��@��z

��\;��M�c�_��5�
b�
}�B^~�W��Z݃+�1���g�P�S�����r�O�CG�Tw>3�}��Z�qq�v�<l����e�T
��.u�x��NZONJ�a
+�? ���7���9s���h�b��]�ȳ���c\e��CH�ۛ��¡�r���<\���"n,��Ŏ���ܿ��t��:
�R�o9���e)<�;q#䵪�z��"�4?���!��}���"���C\=�at߳�[&}/��^�~6r>B��i
�Gںƌ���
�%Sl�Fl|
����=7�_��@N@����4ּ^�񿄸�NS@����"�� �f�L\7 
�'�{\!��{�[�f5�o�{V�t{:?������r��@����C�
�5�]L�q�X��L�L�)pt��t~��o�G��?����>p�)c��U[�=�=Ͻ'��=(���{*5�W���b�<>�Wk�F[���`��	;zWT�gO8����`"���Әc�Tij�[��~
�i~���q���
��`�R��!<��
��7��g�Wq��XfҮ��V?�񶾅3Ú�ZUjb�
AkJm\�{�ZM
.�ÔX܍�bqW>���l�����/!.�Y 
+o?���|\�^; �8
�Z�E�c�d0�=�>N�k%���Lbam ��a�e�}�*�<�U��r�k��r��^DL�ǨEc��:=�C���,�
����ߋ6�\\�
@ԞO��S�j�j�,�n��&�A��
�}0�o�F���D��>��"7�0����/�ҨΤ�G{�E��>����
+yvF*�y����r���Cl��ۄT;��6ԓCs��0�l��N�\7�<�f�:�=�Kz�w�Y��YYq?�fy���@
�JnS���L��\�24ӣ�H���jZ�
�*F�:����
����!>�lƵ�|tŐ
��i�ʱy����ĵ� �?fR�Ku[~Rz���`B�Ԋ���
��Kω��gµ@�>_��I��8#��uIާ����
˿F�Cp���Y)�~��1����wt���5a�t^/�h�W�K7�;S�H���cmp�5��s�T��9o��ꂑL�H3Gn�L�POlg��El�3��xO�B9�V���̣���*n\���`��:�k3��s^f�<�kQ6�X2�uU��H�G%�k{+\�9�>7v�]�1�>�i1_9"M��(�
���fպK��ܨ8�}�����]����O�uu~~ƵW���W����`XE�~%
��`����A�?O���q�Zn�����t}����p#R��^��g��2U�
3UËp��Y|
����Q����q\��姂Պk�8�
�b�q�w�-#m�%lx(�Z3%*<9)�=�|3-��8�i{�Ӎ�}����C����l0�ǚ�W1�DB)��M�y�`e��F�>���X�	q%X���T���ֲ��
�
X�}1JJ�AW�\�Ob�p�|,

+6`���@xl�ޖ���)m�=�����~����
�osoԹ��h��*�<�Tqܠ�����_#�,<�JU�oYR�@N@�M�%��Q�^�!�(��or�^�S�j>_�y�i���(&�&�ZU&�{w7�\wN[
�d�
V
�]��kڀkш'r�W2Û�-~	��tfe����ἲ����&
C�oݷH�X��*Kd9��9��h�%z�D�S
�-Ƌ1>W��j���[�`5�NFWKl?
+��/K��i�:��ex�:ް��nȓ�<	q�9����{�ICr� �&��;k�҂�YuR�/
+OdzG��	��81�ub\�	v�����>��VGX��K�
u�0ܠ
q8H�$�:;D�����럐�s�
	�
?�%��WC`X�����N~
+8�6�T�,`X�ϫ�M�v�2I�獱E?�xU��X�i
��lOޣQ3�����C�.L�-MP
+Ss$u��C���@�P��-L�%���n
��:�+}���8nˬ�+������'�L|×y��Z��~ܳ��nW3JّB
I���g�3 �Šo,�a��h�NC�gM�do��O{�a8�%�
F啮>EX�s\�)Ձ!��\:�SJ�
V��AN%|Q}lQ��
�^�@�ZႤO��(�A�`�{���
=k�{�f�}���L��V��EW�w���q�}��B��? ���7ĥ�Z�K��,.�v
�$8��0H�6
���6�8�Z�P1Tk�F�1�O��7q<�拘�4=���{���D������Zᚻke���55� 7��.�ֶ~r��/M�R�����+�*�
��E�������74A����ǥ�p����r����
�Z��
D���yɋ��W<��h�K�(�m�q��g��Q�
�Z����>s��2{�x�ZQ��sm���n� >��t������
�G��".!Z�#��%�����R�˙	HH��&���c�~EA.���; ��	Dh�3�w̵6+
�C��
��k5�䜫��
���:�C��
�9��I-epR>�
�l��ָ49�q�"q�+\c��~�mɸ�
���Aޜ�ŏƱ�����r8�ܚ��ީ���4�^���Z]d�j�aW�4��|�����C�u���y9�I�J���i�连��".�^9.�fK04�'G��?�mSG��q(~4�t��O�p+�[4�޴��ܙ&L�
�9s�^�:��y}��zi=N�}����c��L�^wufM[ iӖv�I��w�CTY�`h�
����v~��<-V x����|��]�.M��n�#У'
��
+�[�@���͹���܅?��}�r[[DT����
�_�C�>�~`�Ss�C�X�S$�?4�%9����A"@������s
Nq%ٍ
��ݣZ�
�u����g�Pܭd�ԵF��K��WvO�
+�
�.�+�Gs�N9�%�^�m� �^s�% UV�)}�6.�*��|��e�|�l������B����������������5���]�YUG�����<%,�7����g��}�:\$�-ߏ�;���(s�f�kU�a%���
_�.~��
+�������ң����"VR^�yuM�uK��Y���K�l��ņӎ���}3��c�J���XGaS�
��3�G���Kz{�BpE��_�fu�
+R�b��F��8f��-����܁��.��vh�>�LJ��
i
�.&S^Ek����Θ���������t���}|�v��B?��‹T���\�	����
D)
����6�u̾����瑋����)


W����m³�����!�w[�[z�>�x��������iqS�W�	|�Te����4��r�خ���
��N�u��9�[���j�
\V�;
+���^��X��E��s�l��c*��c8������O�b��
�y
%�t$�����
+��R�\�
7�gn��3�m�W��J�T6���E�����:�h��לł'7
���� d⟗���Y��(uӇ-��LQf�x6��̿�����
�{��c&�v���C�d����*���o�t� "�YY8 ���u8�rf=9�J|y��Q &��}@��V�������\��[���a
����p.ݰ �����|]�
�sn=��U�}
��4���KYV��M�DR�!@��Z,r�]-����r����
�
`h��?H@�
�)~�� T�����-��m?�6ɩ����-ۺ�6�g��@�?f��1U��
Ss�M�v��(�x	9�����bW�za�vS�E��1J���|>]���	���.>�&T;
p�O��Y��6
b��ĵ�3����2�3)�
P�dg���
�ǡU���l�rP�B��R��\%�l�����2Ɏ
'�y�.�f�㳣U��X�5��&]� ]9lư�]��^����6�~6Eu|�?Zt��$\%�>Z��<�bmb�c䨵s��F�[gѺ�1x/`[�μ��s���4}�6rӳԨN+9v8���	M]
$}ʤ~��?��*�9���j嚉k�i���r�P���F��e_�('w�9
�v��ڭ�)w�
[�̓0_�ٛ�
+���y�j�<[���ҫ
SW)
M|.[��nH@�P��NP���6bx�5?�J��,�qu�Jǵ�vQ�N0+
�nw0g�S�-�Qc�����Ϯ.�n��7'6\��bx4�y���N/�Q�t�AJ�K�P�����
+��
sJ<��	)��w�
����I������OO�J��[��Q�u9H�,��E���!n��l�Qf���@)�����-2����p�:�Ȟ���%��}��ߓ�6�p��t�|ҟ�ZҦA�� >�OZ����}}W��
�O-��l��/�緓��U��.�efO�d��Q$^�̭�
�Z�9����M��B��Qdo�s��i7�
�v
+��H	e�l��!
+e��V���E
�J7�

����\5�G��$���*٦K��������P�e����)�׽��|ur�����Gw��P:{�f�s�w�ΣS�.�rj�
mxԴK�4
Eu6
��8j���w�SVļ$ŵ�s��du{���ʪjmK*Qv?;��$
	H4VK�
(�D��|3�r�;�|������8-`V��
��#��Oo\)?��u��yHMy+�gH@?k���7W���H��s?������5���,N��6��h�=.伬F�s�0$vA�S�)�3v�-��]���(@��Ὗ�W��g��Ad/!�� �"�} ��t��Q����%�\�fwE5K~ṀX�<'R�%$ƒyE���s��M�'����}�լO��FI#����
�}�f"ϸsE��f8x߆q�yv�Uץ�"�vn��L*�U.��:B�
KOYe��Rz߹���-�
[���
c�S*���c0���[�@�I@�n
�
u���pc�x��$d��H�
x�i
2�����D�'�D�H@h�$���w8kj�w�g���x�^����s9
cԍ��QJ�\ 	�[����Jhm���'\���
1䝗��A�58H�l [...]
���HB��P���#e$mR�c�����T
�,���f�>ك�!ݽ��L�j
�ԭ*���8��=�u�8�A��"��VX!~�
yjָ��d��<Q0����.���
�`U�rw{p�^�`�A��*��Nh܃�M�	
+u�}��ʛRg��`���7����k
��k$�ߎ�L$O6�Řغva�
�Z��j��$��ư-�@£�sk@����pѧ�5�7k&�݋m���S;���w�8���h
��jw�Υu?z^K"���<9@��.��e�Dž�ۈ���K��5.q��Sw8v��Tr�qQ4�g�H=�U�����C�&N'��!"�p����Fu�&�Q�9
��{��4��m�ǂ��gf��-��wi%����]���T��	��~���g�'���+�*�C��pԌ��h��7.�f@ӳ�O�OO��h�ׇ�'�������
]�q���� P�'��;$����/���Ң���{?#L,/��x�#>��F.Z�j~~����Z�d+.��@i��?�����1\�
+qɄ����zg� �r
���6|�q
8��H��az��
��#w���e�g|��4:�=
�u ޿V�Y���:s猓��� �"|��=7��W
b��*1������-�ǥm�{V��3Z=��{���sJ7�w��	��}�:��7ǩ����G�;�#��}�r|����o����J��'�l��Fi�チ��v�fg�Cs�r�0������a���B.�������<���3���§�4��3�
R�;�3��y��H^`�<|�ݓt��Ӧ\8E	��V;��\JӮD��AU�B���g�!�-�18'��+�[\���e�e�G[
��6|V�p
q�%�PQ�z��5�`�
� �!g7�HŸfzƻӅ�uK���ql7����>�Ք�]Yd{�

�ЫI�7���kY�ٺ'h�%
�b= :c0���#���g�g�Q+ܤoѻT
+�'�`�F��Ό�W�S�[�4���*^9�y,۷B�����쎼��5i��B�춇
�C��w�8���ڋK����
�e�<�U��h�>϶}֖�uj��
����@
�~>�.��h�p܃Ӿ������#k��	�0b�'����������6;t

�QX�jaF.C�C�o ��G\�i�������+��������J�~��-��ŋ
w�ȣm$ye�
�O��P����<
�ک��4
x"�k4D�F��
��b��O��=B��r%/r��\�n��o����{� }�
}������9ˇ�y���}��$�ޙp��j�z��͍-<�%OS���Ӛ�$|��j}�T��n�
��4���F���;v�6#	
CK��x�
 ��3.� ����Gq�!Ÿ��?���Et���
�Uw`�����]���K�a=�hb7þ"����!�����
�2�kA54��X<ݖ/����������Ѧ�J���C�N�`m��ָh�����?6��
��~��</t��#�.�"fGY�c,������
��˩L�
M(��A޾o�C�� c�dq�2�7��g奰�TĨb���*
�v%���2�
�ka�
�G��L"`!�׷	�;��C�S�:x�
+u۵�EP����j����0u4���I����A���n�QW��h��桛t˲Oq3��֣B� �\��H
�s>z�;m	�+��8@�; 1o�q�*�rU@�G at S�
���^t_C�[&����X௝�|�sV;��
;
7'H�g��I��%�QבDQt�[<

+88����<ÕZsx5?x�U�Ȍ�k6�٥�����2����1��-�<�|\���3�aNb'^��`/*����z�����~�N��&{
U�$�7׻f��?��v
�7�*&�K�*,[ᠽ��Ulq[�G ��� 
��+.
��y�)~vH*���e��}����R�
�|���PU�N5	�
+�ɻ�d�*�[g+E���WY�7
�\]���m�=!ˈ�#��~}�}���wc0L@
2�� �w�
+�;.=�Q\ނK~E�qu
A��mUox�n��;����5
���
Z���3���^:iss��82�-:û�C/�e8JZL\�^�M+��қ6�1LS�c8�:�p6����ة ����D��
��W zk�ꡞ��a���Y�X��_PG�OW�E_��b7M�8�Ys	�N�0aLyu]��r�嶌�=6�T,zZ��i�0Բ��S5��RNKLg�u0�<��
ĥ�4�caW�}\�6n\K
�	�� ��3:��Zm�@
ƅ�Lu
�bӿI�5�\�ܢɬ��� 2۽'�t�O�Su��'�5#��1C<�v�\�"2���A�x��
�%dDg��'繲��
w���
��3��es�:�0�Cw�1$��N�% W�
_IחlG����7�g���zI�c�@���E 2�ѝ�����]�CI�Bn���F�z�K.�S�L�u5���s��%���ۭ����q��z>m
��{���*.��mR�+I���|z1ڥ��ɮ-�K��'�6$js����^Y',��(g�Ċr�`�x�*��G���$�3`��8��H�k�X��v�ה>���*u=��~JK�ʮ�
;�Xi
��፮�4^�rf�\z�*���7�V�vQ����b�D?�L����gr�"tu�(֩��Z~� �z�kĥ����/�0�Χ�g+��=�.O�S�7l
�b�
�2E�7���I�����1X����/E�Ŧ\�"'�}sF`�~��t����
�9j�p(�lj�Y��H4<φ��
�g|�
|VJ�L6�l�I\+��T�'���FN�z\i�h��n(?�~Z,�K��ӕ%*�s�W�M�
;"_��Ѓ�q�Sd�+w^�|�9
���S����w�v���Sk
޹�|�jQ<2������[
p����#
ɱM0x{G��,��:$ y�4����q
	�.3ϜW����"�E�;���vy�&�J.F
�& q-�E���i�
�A_�.�}�8��ܨ�����'���
�
��
�
q%w/�qYG�la
��f�~$g�`�7f��
+��ܠ�գ�~,t�ͮ�2L=�x��h�>.q�N��5�0	�y�B�0���z ��j�d:F?_����!D�)�dz�T��=:�o ���e0_ ��A�a
�J����Co3Ʋ3��b�J6O�br��gl��PJ��#����/r
�L�1�Ag�8���:K�׽�_(�W=z�P\�v][Y��LSp���u�s+�.��dk�,js��Y�GE
,e���0���9qQ��
7k8�3y+�KP�S��\醶v<T�E
+ّDnp�;�A�ҩ��Z�ӳ�҃o
�����
W�/:�&&tgBnsAk8�k���^����
�*s{�9X(�^�|s��D���v~�X8?����M�w�
[tw�5BY�ލ=�>���qj���\?���fM�ѽ�W�n��}*=��N㽩�l�jw2ڠu��XK"�iK�d����ؤ"�(X���L�m+��M��T�O�\�M
1��_A�n��I��Ֆ=k���[w��#wV�Ӷ�x9�g
�3�5�%g��υQj*S��
�
����/6v
��
(A)@D�B \�#P���jϫ&|��n? 
b
a.�F�W?�0Xփ��|]��d���t����m[h��^��4��ͧq%�
+�Ӎ�ٞ7vs��*�u#}}�u���ճ!d ��? ��5��9��=�
"O����5.��5��ǝ��LN��$ZŅd��H{ϥU��Q���0 ɜEP1 *A	*Qň(���۱f�����{������1��;�m� ̮�^�g<�f�y�'<�t�R2��?HRf��8�|&�g�Q\�EӸ
+�etߌ�G숧����7���K9����&������
M�����
�T�c� ����P󘠀��& ����. ^+���c-xqW��<��ȳ_�DD�RRV�z|#�N,;�~\+m��}w�E�=�GK���_u
+���! z���sVR��A�� `�+�����؆�.��� I �
�L�L ��->)8 '�ۋG��95�lr9�Ȥ|[���j�5mg��#'����ᢥ|��&�^?���Z��
L���|���,��_ `A��g^ 7Z
@��w
�|9��\$#��_z�b6Q�kBQ���o�!�����o�U%��[+z�3:Z36jN��#I��#�0�N��%ؽgNj��`{9v>��go#�_ `�'��ްjrp���Y^&oȽ�q� �h��4qan?�+_�-��T�N>V�E5z8|;RK|�����?f�no�G�-
on+�e��F�����t�#a��[� �
M� �@D
+��
EA���5	q���x
+#{�����v%��J���G�8
����I�H���G���у�GG�;(n�кG��4�8�qy�g�`?��{���a�$����Qj
+6LB���;�7G��5p�G� C|�^f��S�S"��(n�TԮ��u���rWmC�¬�do��.��N
�z<��C�GЁ�=>
�
���b?9}�/ �2E�Z
+�� ������\��1 �Hȋ3�Yy��X����#8V�-����]N�ƣ2��K�Z���2�Z�ǽ�
�K�;R������3ݭ�/Ŧ���t�	�g� �. �{���
 �T3���w9T���4�
+����������a�'�
O�FX��:W���>���
�R�����N�C�HP��'w_Ԏ���(�
G+��d�3�
�5/2��+>��jN�}X�U�{L��{��ݶ�~�/�'�KyX۲
��f�wQ�g����F?��h��]�-�Aګ�#�֣c��:)�~n�鬒�/L���M�
)
+����π�E��	Eם��c���{hh�{�C7y��Q�ЖpG} �tQ�4.�ͱ�����t����6���~����t�)+S�bf
+��P��:g�h�/s����z���X9����#Y@�>(��!�����[�%ޯ�x�/1D�G��y/\
�P>Z�����T�^em�F�ݱ������w0�l��C2^���	��&Cr��җ%��:D����<���{�_ �:u D����< ���">�.����i���b�N�_��@���I��ϥPq8o�ծ�f�
zmzύ�!�[�#mo�&݋�lUc�S����R.��l�,����Kj����_�A���o�Kt����>�r(^�X�y�҃
���,M�K̈��3�����l�m���a�
���zV�t#$�U�];i��`��s�r\��4�.M��a�-n�ֿ lC���]�a���˂B��`0�(�04^c,q���Rp��[�O��>���nrg3�	Z�g��x*���О���2�\xq�U8.�}uR��]��T2R�vi���/ܚ��
��D�BM'}�<5���U
_S��h#��8?��a�k���i�Kk��>�"k#��xS���Ȓ3����
<S������VيuK��[���=��Ĵ!Bt�������� �ytdUE�'c��/���O��l
6���!?��1�](1U<_�.����W��3�`��6#�s�'?���~���Hriw[���Ș��g�~c�i��$��n�i&[�O�I�6�����4�6�k�%>��\���%H:�~���qN��ɩ�^�KT�Mk7XP�+��

��l�.��z,��� 6Sq�^��4�?�B���<���?'��
w���+a�߂w�_ v����#����W-
���
���)<��U�:�#�j}w��g��c�ԪY�v��ƩLi=��,|�=��P�
endstream
endobj
219 0 obj
<</Length 65536>>stream
+-z?�1xe*x�����1��;�}�&_?�1lZ�I�mV&g�)�?�{
+��#�L����9X�#�U}��(b�M����s`���|����
�Jk���uZz��
v������ ��Y��
�Q���i6���r�x��a�i���!5�k���WFZ*�
 "��@�M�����ۄ��H�*����4kO�8��N�%�$��lf�b�&
���iT��Kk��o�g�Z�p���J�3
/v=a�Bp�5�Ϛ�d��;Z<�A��(��-_c7�q�_ =�
�Z��щ%[]Ʃ�S��xI=yՇ��y�Z����K�]!�N�E�g�RKe�3ەq��\�+v�M�

׏
�f���ߝ?F��4�=a��z�~��;,�F����~�< ����a�#�KV��vӆ�d���9�v-;e9�Ix�(���օ�,
�rN��1�t�E���e�������ː	��`[��}��{�QUgD���a�ы�T�oIH1�d�`�E�π��
��&(�Ҵ8�Axb`o�[B��
���C��ŕy�.|�=�C�l OY�n�y�"�1�ù�/�^�Wf�Vs0�=�~�ꏙ`��]t�nlF���g�n����n�*�ъ��
�<2A�ʗ@���g�ɾ��ڵ�v�����Y���Ƈ�]��ԓҀ3�DL�.N����!����
"�Ty���f�
Ќ�k�i�H�]�:XS�q�;���S�L�YA��-�?��� �x%�T�K�͊���� [...]
d����vp�s"�v��ʗ���RnR�A��}{
+ѝ�ׅ1��iq����ma���X��{�|�(-Bk�JPO���ņ�k?��#�v�o.
�������O���?]��A(7�$;�Zn�Q�՚�A3�Ԅf�1\6�-٪��é
����:	���?ȯ�a2�K�d+o��+�-?y��XP*RFGz3Y��������
�Ѻ/�B�ѻ���xy�r�����|���Ϊ�i+���Zb�
{�j]m�z��j�Cv^[
5�Fd�_��D�y2�}tr���z������
���9W�vD�F��;8��~o�j
�u��u3��
�u�P�.[���h���l,{�[�]�P����漨F�Q�j��X�_&K�̭ը���b�.�Ev^
cMO�˩��H�Aw5��P=}��gU��t��r.����Z�B���z��Pk�=�I�٬���VB;��w%4��h"�k4s
��+����Yީ�s���j����+EԖB�T�O�R�	ٌ��2j��r98O�U��d���Yn�ܱ|h
�ۥ�ʭ�d�����gm=I����IW��H��\xΗw�;̑�x|o���
��Ϡx6q�X��B����y�H���|ls�	IET >J �໢x(� ��� �r<@
�Gj���;���@�BR '�(��[�k�j WP����/
�͟�U�$'������{h���Y7�}����o�?E�o(z{v��� ����}Zy�	-�Y�8�z�Б�;^@.��.g��貈A[�m���6Q��X�GP4��|�l%�
+�E
總�S�ss��
+&ym�g�(V��LA�
`d)p
���~	�kv�����Qu E�"�gb at Qc��A�]aP��H�։׮�*��^��S�S
���IN��m�h��m�1�v�dz�eN�?F��h�
5��
ջ��&* �� ����o���
�Y����r�TL�V� �>E���k��W_�Xo=ؠ��ߛ�3�Om�+H���m�B�Ez�������l
�Os�
?���� m� :�ma�
g`(4 �u~��KA[�pɦ v7&�
+�5XSo0�Frh7
^���A^�&��J�y��ԓ�g�7�d�&Nt���
v��^ʵx}��ҷ�F�3 ���xN���ES�-0�Y_ �H�3-
g�``8r����*�@�g6|M���E��S�����+�
���`�da�Q�G���|��)��o��ֻ��y ͔��HF�M��ٟ�T�ڳ
�;���P�Hb�r�
+��� I�U��w�5�"� ����d����I��<�ZD�H�吨)���ng���3G��jiZ˅zR���n
6�D��������+'ph���A��� F�7�v��
�ˡPT�V��;��r�7 Y_^�5�'�g(�"�o�v-�>��v�3B�
�b����Y����Y��}�L�{
yz��v�}��=��=�?�:�[<�
g9�3 V�� �}�8���6� �o@~(=�۬1�:�b�����DF�8}�R�2t���m<�O�a�8)�Jħ��}����@Ytt��>hI;��?�{�T�������
����
�(A�uE�u�u�Jȟ�P3��׼�i$�5ݍ���}�>�o{�+���^�Ajuj���>���S[
�[���*���B?����w9dX'B_Sk�jM����H�פ�t�8������ ��\���w9����D� ϕhm��a��n�T\+�a�0�p�BD�s;~�; ��v�[6�cRg�w$}q�\'�W)&c�v�J��h�yJou2[�!͞
=
��?`��	�rj~
&ʻɯ�8Y|�M�
vM>�ƭ|;�1�*wY��mg�a�=��my��ܻ�Q����]I�X�,�Ȼ~ތ�d��Wؚ|S=CҞ0bzc�����k��g��g L^A�a��#f�ŹrA�3��u
+�D�<D��
+U�H���)
rK��;9&�)���1�p4M
�ty3)_�u^��W%y�5���E_lͷ׺u�5h4�)��{m��������_�.w��4��e�����Ůx���5y ���6kً�8���Պ�B�R��|���;�5���fo��kh�q��E��2Xj�hg����_Z��}��b1l�k�Ε��d8)+�/��
9�c��=#K���:���"~� z�V�;��㠪�ߧ^!�����֜m�y]��Ůo�
_%;�ky��6>Ҍ��Wi�#.�
T[����L4�*^^Z�͊t!Q8"K�-}Q�3��i"o\`B
���	0�u�hQ�-���5w���fr�����7��
����ޤ�9L��*�_�zt�R�[���
��
,w䣪��e,�ś��E�Xx���4��������A~] ������]A�T+�‚��e%���
�
���G�ә�^n���^�F��8�������_�ǭ�
o����5��C)��җ���-3b�����ՙ���o��9(L����3���? ��db'�y�.�������&^����D�a]�y{���kD~��(�l��3�Ɠ�h�TZ��"�M) ����b�l5��S�1�aO����Uޤ��!
�$����
���P��xj���PF�u���O���e��.F,��Y���Z���s��ɛ��jQT�?��.;�ғ�"���$���<�۳n�0�K�#~�k�9���3b
&璆ry��9~�c��\���.JOv���GzG��\
��c� [...]
�;��M
I;v��(�٫f�98��=���G��ءp4
��m��J����`�մ������S��&�=�K\��k�o����n24z����1|�`�Æ��EG��7�u�- ~���W�<@A����`�8Uf�7�cQ�~�F�%��z�Iհ�9�]+��Eg��}9�%OY��0{��΅��mqȜ��5��
<�W#���2��` t���>V�;Q������Խ���O|w��V
+g������>��U/tJ��Ci욝h�
���	j�X駃�Y�E���]�*f<ˮ��R��
�s��� �t�U��������
���˟s&s֝;3���
o��>���?��y;~��خ$�^�v~����>Ge�J�v�G� V��LW��ӵ!9����Wjp��
�Ο�x�$�kdDfz�&��`4z�d��d.�C��9�����u�q;ݺ��)�5sQ��p������ �T�� �Ԕ�gp
\����k!�x&:#lR�7��

�fe��L�I�	o�n+>��.�e�p�ul]�%�[������x��H^�A/�꠫��3�U^m�ջR�O�D��S�g�� �sEt��A.���
H���;|��G�f����3tMw�6��q�(��X�#J��}l;Q��a�4W�[L�qC�=�u�1��Y��T�A��SL&��~�
��Πr�wl�Q�d�����Ο�sx]�c�0y
������Ӗyu����$Y=wUj�`�:&��0�
�
^�9}��N�(3��Y\|]�������L��N�
���ZTf̱
��I�]+e�'�2lOrB���g��?����A���
�:e
���l��^tr����MG�*���FldQ��5�~��3.����"�7TE���jP��잒?�L���o��uSk.Ee�"�A�b��U7�ִ䚗mVm��|׬Й'D�h�N8�g�z���ͧ��ŝ����%NwPIZ^+�]i�}Ttjl}z�>����q�MY)}i�kLt�o����u{�݁���A'�q;_TR�R� ����7��k4���Ե�P���ݮ��v��u1.��R̰N�>f���ֳ��_��K��5��j=L�su�҈�(�q��γ���U��_>�ZûB
IK���i�}�Uz6���vm,������t�又�WjUkn��~9᪙��V܅���������[xk
�ú�I]	;^[�W�,�g���c��C|�����3:�+t?�� �ht��j��v�
+۸�

���hVR[s�U՚1N5p�J�1��w��]Ɵ>Z:�ӕ�@W�ƦR*����.+
+C�欵-דѳ9y-��nH����`湧���B
�y�>H�5�
Z�
+�O��^!�N�Gk�	��Z�n����k�a��)O��^�`t'�����
�� ��՜�<��ޫpy�F��-�YE(U���hMY�h�{��5�r��6�*̼��=W��ju}���h|fU��ʸbw_�-J�2
㗒�Ʌ��&��ܻ �h6��d�|��UI}�i�k�O�%a����}r�\�[�����4N,�h���,S� ���
��
r���
"�\��ș2�N� �7W��/1 at F�
����"� REG ��2��~aM�L�!mF��Q���z����jn�- at O�4��m��>��� �
l��
�Wi��}(����_�F]H�X�V�}���'@D,
m�t5ZP��C��˻[�;������&T#L����1O�or�R9l	E��-
e)�M�X�H 3E�nB �,�
��&x2 g�ߓZs��r��
m���ߡm bQh;*A�} ݎE���/�V|��C���\aj0�%%�;������<
�R��Vo���읦 ^�J �<�
� ˟2�
+De�R
�S�[PP�'z�us���t�x
�r�o�浭6��ߤ��D�v��
��ԍ`�I����A�0�-@�b�0��@ՙC�g������;���U4����P�* ��}h�����0�*�
TN����|^����w���T;9�_75
+��y�N�u0vg�KɎe8o'Y���\&��_��k
��s8��r�i+�����w(t�� kr�^��D�y
Δ�̃�19s�[RrZ�8(u�qu�Ţ;�բ��Կ��~ZE#�gڹzե�zx�C���\e�[|�X�ʰ��
�����N��vjS��?b`� ~��0�J�Ez-�Y�!|RɅJ\�5#Z^�#�̎�N�
���ܻo9Z
��AŒ~o�rf��
���iٝȾ��Lw� {��4��"��- �=(��&��� �E8�>���$���k��w��� 1�3�r�*�w�Ԋ�Ɍ}Pۼpgz�
еq��K熲s?�ȓ�U����y˥/e�+���w�4�ϒ��ۑ+�K};�Y�b�5�[ �p����|W?B��C� ����ܗ.�T������D��Mw+�[9wn��|���kq|�Ϸ
����:0�=lR'��j�7���>{/��v��i�͓��iF��L�9h���d�������`5ɂe>� � ��' _ƿ���˳��$�ӣ?�t[CB����N�z��^�yi��v$�w��������u{�כm�f�<�<߾���B�yl��M�d�
�A{�U���iUV�s��[ �/ &�6�c�{�����}���5/K�X�C�'�|"	q�y_��5zn!*� �m���ݡ�R���yR9;v��~�$U�����6����X�0�R�`��_M�z͐r��%��0�?ȯ�@���Ŧ�1�J ?��/'Zl� [...]
+���|��- F�5����bS��mu�YBQ_ǫ4>����4�j�t��?u��8q{�6�����p=���Xp��
��*#�r
OSH�#��\X!m��L����pd� ��yA�,�+Y5�g�q��"�x�
MbPH���&�qd�Q�k�K�S'�]�'�$���1�x���Ǘ�� v1�.w�^-'V3Y
,��&#�jL��(�f}����4nʔ��4��i�]�L�J+
A}�����?��E��[9����
����\�ޭ��3���P�Ͷ
1�;���69�_�V�I�(�U�W��b
�D>��o��W
Qv��Č�u+����Ic̏��%���g�ˇ��)~�AR��>��p �
�#��W�I�y���?����\ZG��¬�u��5�_Z�d�Y_e�5Z��W�ixZ�
�@>G�C�۩�
��S�r�eJ<��\>�'�qI_�����jfj2����$�o�
.��`���=��(��J�Z�[a!J��23kmU|>r�3E2�>�� ��`bi�P�.���˗[|k�6#/��u����{��.9)]���/�Q�|�cc�
��-�3�N���:�����
�J>�s`��� ��|9�
��67r'D�s{q�W]��{֞�Oײ[]��ny�渁�̄�N�G���=Ȟ���q�9&
[��"���R�c��I�Y0�)���6ŗ6lJ _���|��*�
���- �Ep�!'P ��We���'�G�9����@�{�6���-��b+���#�^�.
+%Ҕ�T۝ww�n��\|
����G�0{
WXa�Y
 L��9¸�
3+�w��Gb55�z$������
��O�
+!w'�ԙ����?/�{�O\��A-~�6V����;]
o
�_��u��|������nRK�#�{���On����evm�3�M�LI���)��
�W>=҄1�/�A~] �� ?]ߒV׍��
o�t��W������tn�M�Q)�a�Z���X^����m���h|�[�L�
�
Q�➵��u���~ʱ��0b�C��u�>�dC��J�m�ڽ��
]�����"�_4
�U�vʡ�����{
�Fɕcc�mqub�J��bD��O��
;�K�n1�
�1���ɲ�ֶ�{�So��Lho����n��֨�a;v���cC���'��F��o˜���#
sӦ�S�7��sK��ꦮ�\�,�C�/�ӊr����9���Uz��om��D�ICC,�z��p�z��~�Y����o@��9�J���N_ц�l����l��v/S�
��R{�M˿�-�
�<1��d_���F��y�:�*᷒�z���畛Ґ���3
䔷�w�\���鎆l7
��d�/�������cw%��T�b`ĜEH��F��
���6^ͮZ�=�[��D[䕮6OR��[\�61��<7t��1OT�Yur������"x��LI�H�p�pI�$��Ց���d0��)��Z���)�쮯`CY�d�q���޽��M�U[����2Ͳ	捛�{��t�i�Z��Ҹ��oq��㾮l�<�ݦ��-u�!�JØ�3���}���!�&��F�*
ND��
�E?����5�G9�������P�ug�ͫ�
���4�o�G�]�WKk�d��V^��u����-<
i7�P&�i=�*���r�i5��Cɜ��`�i��e�遘=�R�/���W���G��(�R߃M{m�FLZ�Vjڔ��ܸ�`U����
Hz�Ajt���ּ��fn\��*�ve�@Ǖ\�g���&\��j	����$)%[���T� TO�z�1��p����䫿�5��3��r'�g�
+�v�>�6��}�_h43H���E��z�[W��O������,OZE�tXQǒ�U�R�sJ�6Y,�$l/�.�
+�?�U�tE����M}%�qѽ5
�L���*�[6vM�;sj�'r� n�ּ1�4��r�tq���7bxt��
~XqE����xleKBgGϛs�8�N������}C�/���o��G�'s�[�[�G������|r�����3���V_�-��>6(wL5ۇy�n�D5�t�W{m3��Ǐ�wnM�;E�x4KB[P�s�V
��1
+5�c��9���Bv
+�;��7�	m�7�E<��Z(�[ �{L �ND���rT����h�T�;����
�ᆱp�g��H�W�׬
��3�]$���AVi� ˉ����2
��@��� �
�.���S��ߜ�"{�>
���`&���@�����Pt��Z�(ۮ�
����V���
��Ԍ�(t�ՠ�HΟ@�7��[рKv�8PY9B�"�]T2��.
}A�p��-��Qj*܍+9�-���	�����]K�����θPm�A�P0���
����1��$(�m{ a#
 
LZ_AL=��z?�fHAu�55�5*���܋C9���rT�l�wj��7'�� 1S
,���rh���a�D�m���S����Nj�����(m����#D�/2d6PY�B�/ ���`��v��͏��x||��y�����g7D�M�<�����c�9l��r(j/ c�
�6O
+`&5Xod�<:t� ��[�6�&�1���3�Ĕ����
��0b>�\�<��vM'E9���BE�uk�h
!|K���c�RBv�c���o���An$+0��5̖�����w�F�NC(�B��w�������k�\�σ������%��&��i��2�(���h!��G�]�6.!�� 5�^Ebnlc�0W�N
�?<t�ٻ�z緀ͧ E�5��E�
+�� �'� .2���
p<����|��=�$�㚚�DM*�?t>��/� ޻{W
���	{�a{s^���cJ ;��5?q���Ƕ�b��l���CDys�o�?�����k��m1�7�R7�'�< ��> E�{���T��#Һ�ԃ2t�����0�A۷��􂉴]�=��{��\J��:���wZ����̡
Ze��f��n�0�|ķ�{�i��n]�-@�҄��k��A]�B��֓	����y�jv����=3b�ۘMRi������0l��Ӱcg��
h�:��m~�w��r�f��n��V2���[��-8��rʹ���ƫ\�ȉCئ��&ʡ���w��}

����E
���9Qv8�J�@��K0���������v�o\b?����j��q^�z�^YK	nm�����t��,0)��*T7�o�D̑�"Z��`&����)La�7TX/�-
f*����˞�l>���n�p+��`�������|t��6�
���v�=�^%PP����Nk�Um��n���f��6��칢oFe���zdzut��Q���^�:��^%䷀US��j�-�y('�
ʥ� [...]
w�K?z��~st���]���z
	1Y��ߌ�Re��2����
�+���xe�ʱ�hQK��ހ����g���'�[ ��� ��UX��
����
ZzVC*J�o��`�k��G�X�|
��xg-W�,�[ڀF�V�R3�V���8��l%g
I��bԩhZ��Q��p�R�/��8X��Af�vvie�_��1'���/S�}i�á� %��]-�	�P޽��	��>�ٹ�����+���F^ư7��ez���:r\]Rf`��n�7�/��;����<�X������S�R2W�{���[��o�\*i䞿@��
�%j.<�yuȟ��H�j�)���K�~
���co9^��c--����۫
+�mu�����
�)�
w]~+�)���tI:���T��(�)G��בX����:�y���o��
��>
oG���W��'�bCފ�?�F��#�����
�l
�;�
�m�U5�]C�������?.�u�&
^"��YJ�u��/�YmG'v��0��3��SP&����/��6������y~W��	���Y�
�}�����E����g��4cۣ��$��|,���=��?�%��
+�}l�b�8�7�
�:�O��7�|E�k]F�?���u�Wa�)�B?F��0:/<�ր
. �d�qb�2!_&S
��8��v�jî8o��X#%�/B��9&itq�\�睡�Z������a˟=��u�y��0��~$���޻w8�:�sd�9r���s��
����=��{�o�#QCD���s�t�
m<�y+�^t��׻�4�^�l�⛛����f��u8]�\Rn�J)�
+��M����M3�Չ߮�;����
�`�+�l�+�
�ޏ��x_J8)����]j���m2���~?a�~]�Z�#Z�/;�^.Mb�5�4�kI�w�UcĪ��d&�K�YM�KO��|e#�����?L��R0�n�d�8�`��r�6l+�h�^��P�S�a��Q���~
��x	�h���
���_4�5OY�j��U��^�l���>ys�3e#�--S��|�
ɕ�%�-9+��[�<m�Y����
=��y�;��]��6�F˃>;
�C�
�GH8�\�! [...]
�=��C�= ~:)�4���>O0K:�t_�RA�)͔⾙dmc�}�TD2���0���RTD�����'MV�T6
7G���>�.F�eWg��������u��#�S�������.-��+Zb�+}��S���
�0�5�wi�j�a,ބ]�����)r��f�i�9�3��ԭ�=�A�ru\j-g��}ڵn at 0\9��Ls�
���}���w�k����� �k�ë�TQ���E�/V�t9:S:�zv�J�7~�< �{ds��
�1�����O��7����k3���ڐh
�K:��Μw5/���U��=n��ސy>��mS�ye�
{r�8/�谞�Q)w���ҫ�n����P
f�h
F�Ν4�<;����-�R�\���u�'빯��ݟ��2��B;�F���}�,-ʾnKY�μ��
+�
�<�~a2Ic�MO���&���s�ܐ��#�v�:T��_:����v�
�z����*Z;��]Z�F�����oq
����a�ӑn�ڗ��z��7�ޓh/�M�'G
����j6��{�ʷ�?�D#Ωs�`�h+�O9��m�a�cr�}f��F#�c�NV)�/m�N>[�3#Z$��6O��"���9],�f1o������c�5��װ��yy�HIQ�T��₎�Ҫ�Ps�~HS�ꭹ�I��k�
���9*h�h�<�L�5�����Z}*�}���ɅԲ=ipvK�L���Ǝ��|mg�ِ
t
+�����V��[�4[w2��������6+�
��7M��*͈�Q�wE�=�
j�-�u�K_
�bF��?]�P�nQ�
�0����j���C�ym+�,k�
+�E(ٜ0 �"@�`
�i���~����s�<�������]U6M�o��^�
Z9*N�Q�/���J�+���2GZ��V�i�U����o��<̛���4:I�EG¦�3A'�S��\O�����]��ե��˶��w2R����K�4�� oH&[�E�2}�2�ړot��Œ���H��ͥ]A��g���?�T���a��(�X���d=l��jA��	Q��Jj��ϤП!�4��o
{r��t��yʲ��l�U�E]��8���
�}3�A�>��a�Tٌ�T�B�����
��֧KT<�'�F,���Q���PB� ���\�f�'
��Ҫ� �S�%%�+ă�:�������Me욽4�� ���4�mO��ְf�$�����=���v���xD�K���'�Ͼp6�S���n�*N��6�٧?,g
q�f��m��e��8Ϭ������]�`���@

)ݹicwg�uc��+��d��:B��琫��b����e����v�������*?�v~�-���N�sur:�㩘Yˣ9�	E��j
���;��v�D�"2i��?�[��.�( ,}� 6f
�Y�`��
�( �~vփ�*�um���3@��
���
�qЌ� hJ����H� rj,!��đm�	1�!.E��2
�\�v��V�L�o.�s"�@���+Pf
@�e��{�W� �����>��9�9�9T;��Z��^��q��f	���h�����Yr�4��0 E�/�<�
�1�b~P�Q�
{���?�*�xT$��������?ۂ���+��ٳ
p�؃Z�P��o�V�
+�� @�"	ЃP��e�3P�ۇ�_���*@;���.���FXy
�K#��.�8/�u*l��)���۪��nF�gޱ�
+��S��K�_�> 
+7x��C���Jx���� ���o�>
0|�'ٰPw4 �� �@ͩ��:G/!6��2f��N�Y
+:�C������ܖ�k3쵊����
 =M{���qf8���=#�@bS�9�fVD���w4q�����N!x���F�%��J'�Pm��Ԋ��I�_�Y,ή˸@��ϋ߸<«��/�U���+x�L�骭`0�ЗŒ/�`��T�
��
+�v/��	��5 dM  � �� 
l�R��
k��5N����Iȸ������X���5w��>�uQn�.�����1z�W��%x�/&ū[M�S��O���7���-��o���@�2��)gD��
�0v 9"C@�.Ȉl}����l诼���aE�
��{�?����(qk��Bd�A-B�;nh?�S�8�< _�u
�� ��uw~��܎�^�E�kg�c_xd��e�؝�9�7@���K�
�1-Q 9�oE��Y�����8�
#�Y<
�qgZ��-����.�߃õ��O��ί�EQ�<{�'5X����S�=O[nw1�����>����v�~�s>A
���H�O� �}@��1 SE��{���<����&�e���R��h���+�P(�� ;��t<�Ow�
}�zkO�1�k/y�E".{�s\�p�y�@
��$���d�x��k��Fkj��\�	�m�Q
%��ɏ��o x�29{������#L�c�kJ6�F�Ѻ[��!\�m��%�.ʩ�|�Րl��Q�#�C����5���{���ejs��J�z�i9�r*��;6`4���Z��WMd��[��'�K'�+ >-�=(4�
@�G�CC3q"NԳa`E�����������`>ۏ�����y��R�5w��m
y�w��4����,�},�Q$�]�.��|�^�'i5I���2tn˒~��k��
�/b�������?�~^�B?�	�������i��+�
�ޭ�x8� �K��~G-7\�s�|��*��t����fjk&�;
�o<��=�ζ��U!O��K�+W�Z���S�\���y�p�X3/X��[�����7 <fy@��(�����-)+ȯg�&ѡ��\���ښ�q��r(x{{7[}T�#�+�S
�7��Ku�+i�o��n�ji�z�x.V�"��Y'��{����
�S1�xT��
��
�f�h>.����> �9(�Y�`
+ΉT���Oq'B�y�wډǓ
�pNI�]����.���^j�9<mƫ�2]Ι`a���Jo*����S���ā���D*ih�z�:�Ɨ�L�
�'��x4�i���
�Y��z�
{4h��}jȶ3�W���n�y���}pJͼ����Ծr-f6�#[��Ԣi��Gw5
��}p�ƙ�-��А�o�|��M�s���g�\�>
�njZ�
+�z&9�6�L/''�9���75
P��
l�]U�1�0����˽,d���4�z��5� w=U0ݸQ[]�c<�Ng���9��D�˙��:��
a�4�<��ƺ鹈^b��)q���f���E6����9�‡(�~ <{ ��J��S�B���#9.�0�7'��,������a�k�:���Z&I)-�a���I��mJ��J6
a.N�ފ|�6K)fխ�~	�ľ	�	�_cc~��c~Mjc��;��Ї����~�?
t���з�����He{�k�n�}lŮ���}
+���ݷ9�-�����u�j[d�T�LܝK�?�鱼8�d��u�c�W��4�8:N�h�q[願��C1��`6
o��� ��!�NWd��AosYy����p�ta��ث}e�鼣�妋�*�1��,�r
nz+��V�>�1�=��˜�츂hͻ�I��1	�QV>�kv{���{�
��@��"����ʍq�9
+����
�ّ��d��68��x2'��Hg|,���6��,�Y�Y����]H��T�P��u��_jhuz��R>X����_G#��M���օJm�����of����R���_ɫu�uɺ|#�k-��7|y�P踠?^���c���vр?��
aO����
k
������~܁&`EL)ȓ���:%p��"�ط��L�;�3���
q����Ʒ��gS����;�m�$�e�
��K����i��5_�� �b{
2QǸ�
�;�Z��nIn������
pE
�cu=o�����+�L~�3�V"�6e��^��ǣì>��pFPԠ���ɨo�[�
w'�
�*
��[=�f�
���v�o6��_�v0��;���� }H�<ձt6�F�=n��>�g̖�*-�X�9�<�岢-ut�
�|��4Y�,L'�~,f�W�O��p������W���f�!�g�R�md�����k��奃��6�lG,����j˖٫ǖ���@&��~�@�)
���Õ����CۇpR6��as�*����+��8μV!O�9�"ao�8�ְauhQc�.�)$�{[e�p�����u�
�����o���M�W�(������a���M+iD
���5mJ�����Gݮ��[��C�h��q�x�ve
G�\�O'S�Ӆ�![�f/��2��O��B?f�!�έ�둥���O�fg:�s�қ��
j�1
:qZ�`{m�<"�t4��tDKmr��irA����4�!8�F��K��^E���%�9�$���.7��"�ʼ��g��ݗ9ڝM<
.����(�0��Z���g�q�K���x����Z��9w��~-�,o�����i�����橆�(�
A�*
+�m��z�����W���U:\��0�n��1�{�\2$�-�`�ϵv��{$���'ݜ�������p5�Gú��{�,��R
�l�\ɴ[a�¤t�i�k|�
��yc�u���
�s]�P�z�~�����З>��r��ti~��"��������K�,ȹ��k�Ȩbc��pB���FJ�����M4�{.h-�b?���(pe����n��4�5VT��̊Ma��
����;�ŷIςƉ�����m4��n�ִ���f��n�I�߽���/�
e#gS����kjA���\u���K�ɸ������Z��~���srX�;�뮱-۷��<�v�rm
[��k��q��?�z)P˴R��ڢ�T��[�2��Sw'��z�t�~�|�:�m���7�{��V�,l!�닪�ċ��(B�� ��It�in�̷;�ʳ�5�
�(-�T���s�4
+�w�W��+�J�GM�w��$5&*l\�t�Y�ܮ�2���?XI���%
��Wm ���X+�tY�X+�a]�^ދ
��s�;~H|ËFʴ�����MO=��St��
��z�7e
�.L��=�멇Vka�e������W��v�r�xd]KCz��n]M��3�=k����n?_%�Y���6�s������i�~���@��x
u�7i�;��* g�?TΝ�!�ڟ�apwC4'�q�
���x���<��q�Vy+Oڥ��q%����\R
}��U)8U%Q=W��v֘���zʇ�'2ޔ��
��[�]��
�]�%�d���+�dD�#���
+YfI
���2X1�o�UX�7�Ϛ��<�,qN*�i�)
�tqҨAIm��W�+���S6k��B&9�����(�*5��b�!�> ��J�=;�q2���
v��#��a��(d@�}
 �w��^��3��� 5Z[�n�@�	P�k �m q��ӵ�F9 ��� ��@�^
+�C �P,@�k
V �k
|`@�]����H�N&��'�����_����������Єd��)��q0$������q+
�����, r�9
+�I�؛����z�S�2 at z�}}��s �cq	
=A��dK��됅�(]�c�����$� 2;5`W��̓�X-6�ouT�\�M���I`�� ����
���=@)= ����
A!hh!_�@X
@�k ���,�-��_�Q�{R�
��=e�@<��7���ߖ*���#(Tg�P���� �6V �b��m[ ��dրi4��W�r��[O��@���l� h�����d�[�O|B��k8/,��bt|�_��1���~G]�^����=�o���#V� ���E�	��U���ɖ�����}�ئ .<� ��: ���[�&��z�@po���ר~�bdb�|����~NQ��=V�U�p �U���b�u�������#!���{h��5��
��7 T*@��
��w�
����*�VG�8
+�.���&��$��3.\q���u�ۣ&%��A��1"2�W:_�1�L-	ۉ:�<�ҩ`삢{=���"�r��t|��`'Eր�P�/�]���z<v`/V
��3������8�����1� ���M�F�_�VAk
�b9y?J_3Qا�W���t0�
��eʅkV���9����B:�i��^��w߽��'>�<�q��;�}�����/�Q
ॸ
t2�_\|ϋ�_ at x�i��=���vo�j;r�P��r
ˣ�u�0��f���y]Ot{s�um�x���x0ǧ`�j��7}���~YU���Yp���M����p������7 LQ��)���
A��% �oն�b��vy<р�Yr5�~��ǍΥ�8	���a�����y^��q�=�i�;
���@
��>'N>;i�Pۀ:ֶ3�:ب���ijۣ���W�3�/?��u''���z�`���U؟�D�I�f�=��M&���Y�
���
+��rv�%@��S�׼�r�r1d�?
G���O^�l'{K}Ċ��E�����
���ĔR6�����|4��H����⬩�+o}�W���[�
+��o��[_��]@�2����{l��O���.�0y�.a�{�k�����:{p�����mT�7�%6r����6���r2�i����$���z�	�l��Fz�/ťlφF�>
�:�
t�=.��{�X"��7 �[��&�?{Ũ-����=���
���:u�0��A��\޻�C>W�wG�mt�����b�.��}����S^��V]����j;�z�O��hNjxx'����2�:��h���W{5z��>��o�sQ��m�����
R6_���w4�N��>���q�8������폓|0���`
p��
k
{LbdnY>W�f���X�ڂ�kʹ/�م��~��2�%�,�������g3�
+�3;Q����$@V���ׄ�j;�1c�$�h�'����5)�����tܩn���Q�J�C=G�ζ]X�I�f�F�Y$��ޯ�PK{
Y�v
]!լ5�e���a�1��N��
q�i�R]@�m9��AV��
�ȗڀ�@mN*�X#��p��p��S2]������e���+8��M%�0G�X]f7ܸ�������(���j��O����pvzlf�k`���_�d;�>��R���f�W�!�/���{�/ �աP8� ����6���s��E��yf�c
�;:*�����\��uaS~-k��֙,�5�*fT~E0%�;��
���@�mH�ҳWY�I��m{|�X���t�V{��2�������7@�̤2:��`w3����'��3�!���sO�7�M`����[�K��R�Ew}U���$fZ%�1��kn6%f�)
G�r}�wE��F�O��'��[���	�?:��dD�=r/q4�

q�?o����%yɝ_gT�qZ���=�[Ǽ3�������jzp���;=�h�V�@��X��g~j��YY�3�#�,J�ه;�=�"m0&�<ʌ��pr���O
�
zeA�ԑ ��
��!\*� 3��^��������zk�
�<j>��jnfޯ��b6�r�ĝ�����4�"vX�K�
��}~.ԓY�vӲ>�� �l�����=i�FF�7G��P�	m�
�-w��_H\�_ȕ?�4��1�!o�7 at g7`�t1gX��
Ie�"������Wn[wz�y������#]7�׍ƻ_ɳF8�R��l��ӧ�I�>d�TyX
��yZ��Dg��C^��J��f�-��Zٳ��Y���G����3�F�
��
:�s@
����m�R<\�Aq���MZ���q�h�"u72�SY]`�eC���q�4���̅w)�$~�I���F
e��*!Z�=��>&߳bg�m�݊�k�sw;�7]/Vd����������5 _��
��jTɸ�'���Ivc(eS�K~=�-�˦<���CV���r�[yE�=�f8!���H�ܷ�
:X�2�o=ٹ������y��
"E�fr�Ug2E�N�l�;yh�N>CI�|��u&��+��w�y�{pv$���22A�`����
�b�B�t���7Y��3��Ion��g����yT��#AeV�A�̦�V�����ڒ�f�b�S�M�l�d�mE�v���?X����v
M&���������
+��m�h�[�뤃9
+b'���S��ef�o����M�e�
dq{�B�
{������ʯi���4��R
+�z���H�e��Y�v�nMF7�Z
����jk'���n���Ϩզ��o���4af���y���<*a�4k"��F|��h�,�t�L� �=JIY6�C[
���X\���")��R$�|��{�
/�(M�����aú��������Zk�
�T
�M�h�h��j�̭��ޚ��֞�
�k��R���c.�-�
Qk��Vt�H;~B������)&�&���U��4�	ϴ#�������\c��J��SN*[�SI��"��[��Zi4��wi�V���zS��g����>�mF��$R���
+�?���"�B����Y�Zf�s��C�D�hڮ��ӆ���j�a]���ӠΣU���H�랟�EgnZ6[�K�v��^��~�8��n�\=�Z����{�|Λ��r��Х�KӥLmX
��R�7:�o���r	u6)%���K�W��Z �1��L�I�2���W��Lo��u��e�W�{
����{l#<͘�nLz�ڴ���k��q�}TP�PZ��N�j-R�nM�w���n�Tu��W�!S���
_m8��j��oؘk3m���`��]��p�bP!�z��F�+r��>W�
�n%V1�i���Z�
W�q-<����xޘ��U]��7tp��t����`��n���z�Qa��A%ŜeΫ��Tw0�(��̨���o���=1���>�
�����F!�w�}r`m:걲e�2�nw�c����<>����nv�e�#X�6�Mj��T_\sYy*v�u��
�elk}Jd��ϱP8mzA
�B��?�����_�T�7,�G�/����>M<�4�ܲ���y��$�ҢZT�q��D}vM���Tk�˳��S�3_�ètP����\�
+2l���%w; ��6����_�����d[ž�I���Y+�s��]�߰ �j8[�Y�&)�����\�ڰ��]6F�4�b��=�]y�Z(�D� �
Vƃ#U�J�p^
+��f��*��9m���Ƹ��$��aK̄�j
���S�ē�O
�̋v��]���m��Y�
�Z38��
+�B\,o��؄!Q3C��tMZj�5�q*�J��s,N�W���9?�6�\�HG�V&�vɰ����g��Bn���B
��=k]�'�3��|�b%27B�㾆Vs�
r�`�M; ��g�o i�.����:��՛Ⱥ&@,�
C �z����ǥ��L����e[�xZ =���3H3�
b ��M�����l
�c�Y.!�
Hw�����k_ ��`8����P�����j$�v �������8� ����t�
+ at r-x�!��3�A��;m�w�+������+��� �
H�;2�q��S��K(ħ؝��x\9^⬷�S�D�c�O�@��-d���)5���YZ���
���
�-�P� ���y �YBc}k�y���n�{AO	@0�hf!T���I�LV|	��h���}J��=����-;�G��]�Q��@�R	�XeJ�Ʒ{��$���_α+�!k��o
|Y� :�� -x���@��
+b| �m]�~��|�O^���~	ѓzQU��z�疺���7��}{*o��<E�(��K�.Z��
��/.v�U��5��;M���=������
0��lRI V�� Cߓ���s�*�o���2����;O�y~|��R�s!L��J}Tk|������
��V�2�RŶ���!�{����������t�\������?����n�-C�#��7: ��P��C; �g�Wf �k��kL�t\��g��>jEtz_
	�;�s[6���2p�Ef�~�R0�
�� 
���vLܼ
9V��$��B>���q��~x��b��� ��(�֨,4��M���%�MD���^�&�⢅"5���fC����a��&�pM�{��d�l]GJaw�OY�R(���tX~�����W!�7*���Ʋ������C��$\g<Z�~4R�}6;6�
�i(����Pm@�����: |u�d���Ix7��+
��	�W���iM��3��O4�����v�J��}+[�휶����#6<��l9�Ұ�Ϯ����x*��65�[9��a�����_�`�^��,�N,j �K
@؁Ȫ`$nf�{*����n�p��W__��A}c7�xl.Sr�	h
���=���wo
i��+����j{u�mY�����%q��s�v��V��1��f��&��`
+e�N
�o��JI�<��?X|�7��vg�
+��ݺ��é�R/^��<�\I
2b����di�O�6�
��y�(�;���vԥe����Nf�I��S�+�z�f�[��K�U֖����)�`�N	��;
���$Lt Ut�dz{V#|ϯŨ��IO7�>��8w�]� ���5ZM9�Y!l !;�>W-��eL~`p�e�V�!OW9`,�rm�3=	�
+�q]�|ڋ�/.
y�,Z-i�%�?�b�/`��m���2
�h�O��IWzɩ��f��q ���5_�.��h�܆�v�I�m��N`[����ԏ9���zĔ�+1��.�x�2B6��`��q
���?_�&�Z[_S���d�����=c��`��׳���������
+�y�	�Y���8���K"F����|W6m�����]�M-��
mmdx���u��1�\�aڈ�
+�?2��"~*�aM��'�j�LO�]��b���Gp���^a&� ��Y>n��ʉ�ˮ>�b� n�P�g PB
L���
�딎h�<���H�vw�>ٴ�jsi�Þ�_�'����(�H$����i�b\\��V^�Ru�<�
f�� O�
˔�$
;o}�ȵш�
��Hz��/ƿ��4��R�Gn
+/
+7���/J��?1�w�y����
�m�b�v\fj
��r%�r�q�Qo�ճ���7uK.^���O��c���6Tqz�%�L�&�����Rãtq��"s-"���ќ�׽��}PF���/ �W�^���2d��91
��z7�:f�z�0t�
k����ׅ�l��!OSo���f�BW��U�����<|�i�8 ��JϼV_�	3� �0Im>ޘ��Gf�1��j��6�
Ya�7ʿ4�Bg[��YwJ��!�t{��e	�_��$�j��
k��h��fmE_���H%y[
�w�l��5&
���������ɮ�O>V�8A
�1��7N���+j�0��a���:7
����pB��Z������[AOLAC\-!Ɍ�
�^`N��+Z�E�V�����G^t���:���s�=�����Q�;�YZV�7��!�
ޘ��Q�z��`Éx�
+�p�_]�
�ҡ0��Mb�����.AD�%M����� ~�¦�9"N�n��{��&P,���eɭ/�X�[|do���|~��Ƭ�,X�0�Y	���S�xw
���n�buJ
+ӂX
(���
T���e�_R�s��	ӏG]8����� }�Z���Z���)w����A�~o[����F�Ĝ�bU]�*����5~4�I5%���t!è�?u�'۴;J��(�1n•�A�������/���ɞ��tj/��]�٣D/�
��4��z�~�W@b�!�6af�3
����}9v
>��v�X)}:m0��@χ���[�YX��r��(R*u]N��`��
��k_�r8�{ո��`��;Ng{�(M�`
v&{]�ԛu�0>t�(ƻ�7�����
�/ r5�_eA<��I���$ެ���:v�*JEWc���E��R?�::ʵyyHt���
�T�ɓf-F>�6�%%�
����N��_�J�
��?
O<�.�9U:��s�!���n��;�-.[UV�=��.�����
�/gO�8~ǥ�k�<�b]^
�K�]�U[�}��T�2��+E� �.fCJ��ބt������BT��AC�Zp��S���z�O�NC����������J��2�~Yd��a�1�ho [...]
>���#I�V+��s�~(ݺ�q�����
?M����_���4,���#��I�p�ƽ�F$[�5.�Eo�b,��
�|��ﹹ&�����ۣNYN�ڄ��vcP�f\u[
>6{�һ1��L�x��l�h���hѨ<i�
+t�M�Y������8[z�f}�Ǧht"�u�.����f�Tu'a9�U��z���6|7r�}ܸ��ܨ���˝��eXzo�d2��>S^i!����?�ۆ 3������$���^���U8[�*��^��RT�,�bUuǍ*ݕ:���XGky_>��_��yu��j:���X
�q�M��	��SM�z��Rmc)�Cq�V/�1�ݔ�7�*'�}�U�y��t9=<�ɾW��
�6j�re��\�i!j�M�.��ɔ����&������k{7�+5��|�4��Qr��ft�����unh*�J���7[x�=6�~4<�6r�L�.E�:={��ڍg�}���jde��HƦ�N�K��ࠌl�li+�
V�޻�����+��B�iB
�a]6���պ'��7�rgpߎ���y��>^r"n(�W�.7���1��}]~rg:䍸v��j�;T��/��9�7����)�/0(
��x�K�b��9qe�
��睟�\._������YNIއ\�xEs5�\�����_�?�tVΏ�+���n,)
���@Sڌ�K
��
i�5����ը~�X:��v٬[�2��%�1�s�N� y#:�GL��\�s��
g��N�$��̴�U���6��|*�ݵ��nNI�=�H�e^�Ͽ���4�dt�d�Bw�ӑ����+��u�9�=�>/�^��(ke�pܗ��r,���P|����;z�4�����;��h4�i��9Ð�E�L�f���l]�'�{����qI0yX�`��Bc�,:�(���t)���,�؃���8Q���;�����1�br\i�'�b�O�9Vs�MW�>���I}.�M!�yC�O{G
[�#�O:� ;o��{ot>��&���1G����K�
c����&���]!^��BR��3	���v.�^�
ҚP�ɾ�=r
+҅�R/��C*�u� ���
����� R#N��To�قԘ���n�HM���Rbm�8���ڵ����ڋв��XOk_,�·�K�GA��f
 Ը
�i$�
����A�1
����u ���
�@
+d�?��Bm��������b��ދ�A@���3����
+��G���|A�|��BW��f�@ZM��BDr ���o�
�uo
���{/H��H�t���
���
3����N�	�Y�V�i����{�0q�n��l}��J!v��<�V����������cW�{M�ۣ�� }áP�
�^u؟/��淼�4E������9� 2:�B�
+ ɱ-� � �4�K0�U_B�^�ȇgǮ~;��r���x{J�&x��������|�J(9jWsz��#z����[?�a����@������U� ���tS��X�!����
+���h�p(�b��&.�� ��9��y��]x�)�1O��GeA,�*
twzU=ܞm�|kړ�%��D�}�"����\)u�]��z>c�\��f������]*\A��5����r��^f� S

`���`��h
����P���{;[��u�~kM��h�|�B�Iho��=ؚ����z��u9�_�ɨ�?A��k�����]��e��
mC���b��)��PX�c ^.	 g4^V,�ꛇZ��`F�s B��ƂݦY�
��5����}����
O
+r�{+��u����Z���5	�}th�r�A��>�����w��7�^��� hO% ������A	��T��
��X������-#�,�!�|�ױh��֌O�#�+^�#�1s���SsӘ�
{��;�lst ��l?bv�>�Im���Ճ��r�l
m8�e�o�oB��&�L'�w���
 ��P�Bf���* �z�z��[C�
����K�z���`繀�~������Ǿv����w-ߝ�UvWW��,�77Q_�ljkUp��J�_=װ�	v����e��w����zp/�֤S��
��`�� ;�
+����ʡ

+����{r�G��{�n�� �c/e��#!�V�ɴ�ە��hC;����0{�W7��>�huZ��XkbOCX
��l嚉�w���,�q��u�BK]=z�;�j4Y]�v;`�7	��(�z��[qӺ� սY�~=�r��
6�^ ��h��w��l�k:��xg���oq�Od� ^F�����*�6
K�n�F��u�����=��`�g��/�k4��3����Ϭ�Yx�j7l�7 옥 �5��Ъ��יG#�P��s�ǧN��ǽ|�F�m�K�h�yI�dw9�B�gs}�绕�a��Y��0�z�^:�י�X꣨%�WC�
���HQ��#S�˥��`�r�!G4�|��E�
�c�0P� ��%ؕl�f�-�Z�J����?�]rRo8��*
Vs�Ϊc#���ʇ���b��)e������XD�k&�ĪS��TtT���+͇�Jk�a���S��8MK
+F�amT�Îِ��B���P&})>�t'w=
Ư�d��������'� ~�VK/�HPl��r�[I��؈��\���b�\��q�{��?|e0w�����3�=OO/���åQ��ѡ+-������j/�{)-.���;�R�����8�"(ȠL2((2������7�=}�W�����r�	 b�N�Wk����/��Fv��@���ڹ�
Oj��xW�֣�>����̹^�ڜ{횲@e���v�m��y�g3<.f,�S�"lT	ď��cyv.��|'�Z�-�K��8�eQ�Պ��}r��=պ�*\�_:�d+��}�
����@�*`��En���׭�
+��Γ=[��˗���h�~]�'kZwu�׊�E��1u�J�P��Ǖ5-�
[�����݇�0v^XvM �A�'%�/[���ƒ�	�j
s;M�G��p4.=��n9;*���5�KP�߲5�:�O���S>� =�#�˙ӯ-�ܹ�{8�k��k4*��*�"��X�
�2'V�[�n��
��	���Ơ�ՠ!�J�Ͱ�F+��Ɨk>f�ة�6�����#;�&��~�ߧ���w~�:oΦ}�Q���r�fo��El�u0�S�2z
��������R[W���d"������Xȵ
���
�W�vN��{��B�=��cj����(K�r���^y��4����GـDz���9�C��׀��z���{v�8l��XM��w1�����mT�1=��ږ$B�{Ef��}^��,��-��^O����d�sp�N��c����H�&�G�8m���♶�z�N^n�K㿑��[�Z+
+���S�m
��<ww�j���z�THܥ��
�q�Й���	�nMU�]G^L��低Iq��0	��2��=��8<Ͻ�m�왧�GtjK 
,�*E%G�*؃	�&�Y>F�4Gt�NQ���R��#<����w%�pZG���9�;p�)�/cM^.����������G��.%�����3�ec���|�ߥ}���Uٳ2F
+��}O\�m�[:7�^)P�&�x�V�;��
�L��xn�Ց���N-�_�o��qn
�G�����v�}p��%�Z`�[�������jv�
'5�/��;	 ��X�`^4�>�-a�q�y�#��$�jO4�<u�4�w<`W��P��OB��E�򒺸j�Y
&�
w�W ʨ׿����מ2F�M[]�<'��m��6˞�;�zr���Y��X�l7�e8�&޵���O�oԌ��-&u#Pf<��
2(��C������S��z�
+�
�>����
=����B}cT���>P�����߭\|����#w0�/x��8{6�]Y
ߺ�L���O� ޟ�e��Y��UG&Si����s�hp�
Rem���t�:
5���^)��/�
ao�cCQma�‹B���D=K����YB=�T�o
R�f�M�<�=�=<Y�٩��e�`����&�
�
��$�l���q��%�+U at z�j��:dm�ćM����
L{�O�����l�c���(�@o�t=֬�=?�{Pǿ!�cDv�N
�-��?��s]%�����q9g��98�ܩ�/
�8N�s�*dc�s6UG�ʷ�;��q�S<|���gP&Bm��o�$KA�q�"]��>`u%�0o���5�z\<<!��<A��{�+xW
+ZW�%Q�%Y�	�\�sM���#�|q}gp6ù�[
��?�,��-�1+RaѾ���O�R�s8%��;T)�D e�c5:7�[C(;Ɯٸ��C�X���!׫�P�p���l߉ևG��e��_��Ť���~��D����Tm�8���\^�3�;d������� <�O�b@�4�^�J
xy���{8$!��?����~���R��@�E.��'e�W'-�EW��t�&;7x<����
6����N�B�&�1��iy
]jyE�Ԣ�ѻU�|J����T���x�H�CUq���=)m�9�u!�a��0�*<3 ��Dy���Rw��0�����ݷ��Eo|�`�M6��
+�C�N���v�9�Vk{�*�C�Ɋ�Sc��
�,�5�g5nԏ��.1p��K^���J�y��ߨ�>u'�Q��4�1~N��׳� �!z�����m?�Xl�>k�S�j��.h���ks�hdl�2��CI�6�3����A��lm���N�^U�H)���e��
He���� 6P�^P:o��0_��tJT<�pB���TAg���
��{܎�5��`C��b>i��+aj��cz�� ���Zĩ�Z�f���|��b�#W1�Oz�jM��q���HL��<����
�$
��}��T����e���5����c�o_��(o��ð���0���^�a|A M��nוK����wQ�V[h^�W �B�?D��U���m���%�����w�QI�
��N�Gb�p
�~�S}����y]��G�Mr�fVr�^�r��8[��k~�����/��1"�njl
Zr��s#DՑa�ň^CTf���o7+�^B���evc����/A�-Eb)�'o��2mg���u�4��^���l�뷕 �m�s�-���8� �����L8fD/����H����IR��W��[fb
+�c8��a�$1��.F�ѫ��#�C�|&�RƸ���e���C�L�aZ�'��4�Zf<��3³��0�(l6�%yM�^EC>�I>�#��������~�\^�@�\������O��k�I�(� ^6S �����E�m
+��s@�vƹ�|�*��fpr��g�v�y�A�%��Zx�r�ƳR*�
�n����u�矌Ƀ��'�?���,(��Hs���5
�EiN��Yjxa�\�:M�׷���)`����:x=��H
+�<�?J��HL����/IA2�usk�F���t��ge!�3��n��Gn�˕��Eƽ����"GF�:�4G.�0w��?�1���f)��Z�[
�_�4_i�i�6�Ӝ�Ҝ��u�g�]'`v���x2�<��{��|V���1£Q���󥰸+jǽ��h���W���J����0
*
��E�Jk u�7���Ÿy��v�����n�{7-Q2�_g�4o
i�/�_����� ~
��w�_.�����-2^�[7}c�]�
c�c���"�?��o{�
���s' �lf�[��'�3�U�<8h�
v�
lw4��_��\���ia��~�@�f|�ˋPNJ�a��ôy�������
b,yǑ�ͥ��H
+a�M*W���E��\�`�@,L��ga��SSOͱ`
��*8 ��{���j��݀
j�֯<z[�p�m����D��ӂ�(�`�� ?�^�
����풿��K���B���4��
�/Tܟ�Ox:���q��?��ꁇ^g]���K.���R�a��֖� � ���D�
+X)��P'[W��z������j*��U�uh�!Ϳ�Y���';Q�{�e3�5��
��]S�a�0�����ؖ�cT�h=��
d��nX��]�E�5���%C6A�,o*�E}-ޝ�n:_���UحNW����z�r��6���A������M�Q��+��A֙7��^Ki�E9D��މ��u�T��-�n��<��.V��F~�6���\���_*��o��e53��w��o�ɠ�\��I#
vl�D8�����4���
+���j[j,'V_6�f������;��E8��E�n��a+��b�� �����ŝ�[ۭ��6�@�}5��+m��z��_���{�#�['�'��Mck�ɉU�*y��-k�c��,'��2.��b��d�ЊL:�gY�8Goz��k.BHA`�u����zq\y\/�b

Wi8�b��T�v��{o+[^��f{�c}�M�2�BO��$U�����\����1k�a�lR��P�v��";Y �Ua���u��Q��Ƽ�~�l�
��l�
�#��3FK˳"���
���Ӳ��r�y��k �O�ֻw8���n��ö:h������^u�s�c��aߪpKڬӊh\�lt��I_����z"���gz�5��ʾe����r0<e5����
+IpQkvPN�������HAn�d]���@������0���ݪ���;����s�=e^ΪW�]Ϋ���1�M_̑#=_�V�n�$E0a�:�=M�͔c�tn�"7�^�曫�Wgߗ;x"ŗ�^��y"��K�[
͚/�?d��K�Uͺ�
��{�ޭ讷�9Gg}	��� ����>7k����ˆ�(��/r����5o3Y���?
ī�
�۹Zw|Gi�V���E���k�l��IV�i��D� }�X��8KP����_R0	�{
�?�e"��C�^ �_���b��+�.y�ol��/fsA�
D|��cVt���������n0��=����W�[X_Hh��M��^����<z�
+�y�_s%��N
+�w͘#E����JZl�ޑ�C.�������nN���{~��kao
�3Ou�֓���<Y�?z^Ƌ�m�ؘ�`
V��#�5��Fa<yqgq2�Κ84צ@���_?Ð
�0媽lytx�;1�%;�"�
睱ʎ�o��!-�@ \c���%
�����i_Xz)x�
�LhV}T���,��!�)a��mm�0�]|H�R\S��-D¤3�Np�#E��s��2����Sx�=
+��8-��Z�@�Hhc�H��G��8��9�d�}���lG���ǯ��3��?බ�;~�Ǘ�3�2��ː[/Os����Y+���>�}��^,ʽA�6I�a[t�yO�Q�p�����Ȟʠ�6ɪ;�G��H��1�<r��aB'���N�����3N����c�^�e
w̜^�����d8�83f&(:��C�v���=|���W��3�{�^~bw���.�B���|�b\��&�V)�Ɲ�q:ұ�b�N����ϴ��܎	S�}(R�P.r�g$/���_�Kl�Zt���>�̆��d���vuĽ{����[�6К
��V���YF]�1���G�^�<��
�.�*ȫ���n�H����,��B�� t��
+��J��@�Lk�M��p�
9&K�����Qa�\8n7�}�[-��������0U�4]�`��6�F�
��\�	ӗ1�=N�%�����BG)p�
Za�.����.����T:WaE
+�,}o���3qX
�0[�6���=2D�v�������Q~���+�~.;��ܬ����rf�էk��YՋ�9��9�S�NM��MӞPu(�F�-���`�4
���\a򱖝=L���Q
�R$���P��!�HW��q	��@����yE
��t���`���/������j�?Ћ^����s6S�1�H6`��z�
)=vOK���um��p��Θqd;s*
=�z�X�{>~vjĨM�#�
�(�2������
��������|`V�axd1|?�1
h]1�6z`恸����n�rkoxT=�6�;�1��@�����9£���
^.��ư��Q����C����҅�N�Z��
���p±5B�17�`ps��\��j���A�Թ�-_�{k���=���ʩ�F��!��o^ࣣ���$���w�5��P��oI
��/a�j�99�p[`>�Üɷo��ܜ�=)��p(-�/B�J�Rp�B���5��G��!��P��=�$�Ȏ�EH�T�Gy�u�J`t�x��=��Gw��n_����5n=�{�X2
+y�tD���4e��Dq��6&�>�
j�)r*Kd�O/��!�&:����6�Ӄ�O���{���k8[W��26�Uj�G´+�
�s=�/����;��
�t��9
��=
��
�
�_V�1�u���Y�������P#��uL~@����#B
`d�����
Bq4;O��B�����z�
F��3����h���{�1TD&�f�{�a�N�©N�&���2ۯV��^���=���J<�%���[A�^n�-[��_n�����3;j~5��5���\�0�Ÿv;J����;�߹|
+���޾4B{B�2ȩ�dy2"=i�ڶ;-��N�o�
�x��F3.�X����>+�kQţ���ƶY<*��V��[�2ilǧu���s
��,oM���6
wvT�K٪�f��M�K�>�v�A M����\Z��ЬѶ{�n{XxRm`ә�<u�h���k�@��\{H�,7�w#�|�qר�1\?YoЪ\�4A�֞N�j4�BՈF��ɲ�3?�W�(��1 at N+m'�m�(���4?��
/iY��? �+'iq�*<��rsS+�f�X�][�^M
�T
�=��^�k-��<�]�a�Q�}ޕ~��@I�"����P��e�R>�)s�
Ġ���վ^-�mi�<���*��zb�AE����vB�l8&����Fʣ�
g����rc7;�5x�*O��T�mM�|�'CCL��v�fa�K���-�W�]qW�]��UO�U�	��!����*\ֹkA
k`����������Ɣgf���z��;��MR�	]��XɄ�n�[i�s�Z?�v�*r�s�)�ˌTEtX���(C<��	(7�ؼ,��_��x�^��t�\.<��(d�0@��qF��^�z�>��p�
�\��"dp������H�ʓ16FY�s���/���R�+}��/��Ż��c�b��A�ڠ�����������3�o�@t!*c3T9� ��g�.Y��'c��¬d���Y����ն�l[�$��ķ(�q��|��
b�H>�B!y߉F�^Y��-=��=�fɻ���]�
t��I����bYs��7^mf
�J�A<`�7��<�I�+����D�9>���j������$
��|��m��C�I�4�T)�̬v�&��SC������}:����8dLn�wƻ��/�Z�Θ��a�l�L[rBv8�| [...]
+��,8�����~k��j
+
�H
+�q:�D
)뱏sY$�������3�L�|�6�P�g���u�/f?@^Eq<x�g�zBʒ��٣�V�{s-^�X���aإ���0�g����������f��jp�Ѽ�9�}�9�THs�JsK��3N��KM�m&�;ؼFK���F��YA��c�Ps�z_-�|�R�v��M��v��t��
�z�=^YF}�v
+�!��j�2�V�Y�v�����r��+�Y\H��g:��~���.I�з�
�p��wx����kS��O�p�G��Y�vS�o3N;�hc������

�}\	��G3.E�J�5�Z���eL9��̳��x>��a��>���/�ɶ�[ZVa7 ��?d�1Y�o���f��M��-/C�;d��������]��q|���y?2E:cw�u�~u}waK��y7�����>9I�C�x!���
j

���M�E��w���

�xڮ&p�٨�¦�}�z�������mr������������#-�䷼�uu�~��2ܾ�:z'"�>v
�
�Z���D��#l��qyk�x�W�d��v�6>�����Ҙ��U���lS�l�x�s�z_Rd�T6+5,E^��}<dQx���v�s��,B3
�f�u_i�f�W������x�u
+a���e>�7�����7�NG*
P3A؎$F�l��bS���Z����0����ꪯU�`�<}�W�^�����e����#��|�g�P��Ѹ�X�r��s���d1
��@��,�I���.��/l.~1��:v*�1j|�Fr�*U��Ω������~Q&W�c��FH^�Ai�E�N��=Ǯr;`��Mm凵�,s��p��A�50��i����P�Bl���sr�c1�`�ŬCfy��i�
�i�Ј����Z��F��
+B�\	�u�v��9mYI}��IXE�R�U�Ökv���C{LF6�N&�X�fO�?�Y���r�d9�y7���Z��Wi�m���\[����胱u����M�wn�
=҆���uetI�� �G>~����>]���j�ع5l��Ӊ�O{׋�����|���m������;�{ˣ����NJ1ڡ�/��B�ߥ�b�n�nV�@{ӛ�6���Z��j3���?�t���qr۫;�}	U��^���l���{��t��u50��Z��
+����Tܙߡ��k�Ρf�����/S��O�X6#2��\ 6�̱y2��˃�>P�k��Pg����n�؛B��A�ͻr�q�"	��|9�SY5�kƕ뗋C�����k�s�<�t����9����ɦ�9p�����ӛ�����ay�Ƒ�q��ٌ�z6�A��7�|�ug�s0��=Zݓ�'*�~]U�vϔ�;��bL�J���L
�Nk��
��Ț+&J�$Z������>G��Z�sk��w�X�m��ğ�%���9��+���Rqۛ��;���M<6���Na�J�P
+j}xF��
��Ԧ%}n�����&}(pDK|
�ϥ�(xV�7b����U��P�tN_���}�������F0��Z�ME�%�������Rm�狻
y����k+����f�
c������eAcH�\��;t�I���Ej�"@u�0
���o� o�
����J�4��0�C�d ��e�K���rt娎���h���E�G���:ƒ��FD,/��xqh�
�������|Ύ6��J��rw1 $tZ-NԽ"Ǘ��9�_*�Rx��=K�'��j|�u�c���ǭ� 
�˺6n�ی����w��
.�1��ъ3__���%PKp{L�Ǐ����1��*���7��$~<Ur�@���E�[��d�/ѡ�9����A�:�k1
�ʳ�`v�l��(
wԥ�'f����:
ʟ�? 3��>3���/�b
x�N����H����+�[Ky:��^7�y��
�����8<�Uy�Zrlpkɨ��|��r1�[ބb{��P
�s�\a��bk�2��H#j#�>�e}�m‹=��_	�Z�r0E��F��������C�ҧl��W��V��2 at Cq|�)���J/
Q
�)��g����s�P������	 ޶��/O�V�ĜX�X���S )�b��`
���ޕ�i\I&���
*_'�QVO�cu��LHf�:$÷6�*��%,A�v?������4�be�悃��Aoz0ngƽ���*��P�9uAZ�Z��{�a�}���\]��>F���3��q����M��.E�
���'���|ȕkb/7B��+�� �
���=l������r�Q�
��,}���\J�k�
D�]h�
�`U�BX��4X������-�caⱊ��Q����|��1��&�m�/P
�W��@l
��+�yM�g�
��Wo�X8[�� lG� ��%�bo����?�f���
+�"[����UsJ�~6CH�d��t������'d����君��I"?g�2j��>�fL�r�
tR+|� 7=�C��<�
+T�h�o�#�[�]M���xr��x�^9
�^y��=��u��o����Y_G���^�����X���,�hڳ=ɣ�� �w��N�7�N{en��A�Iw��X�G��
���	��}XS�7��

uj- ��bEP�+�e
'�6ꬠJbF%�&�������D�����"XuV�*l8cݝ�p�0�;��0��5R���6/�Z�������'�L�kH΄.LW:�
{x��5q�k)L�w4�9�ɝ\���:�:���h�"Oz#�_"�m~�p��p��@8�=C���C��l���\[Yް	-��R_d�%f���"^���������m��{{*� �oPe��'��'/R%�i�'�
�<�H$��
��
��]�z��:�4{eb4@���}k��v޹ P�Q<3�(+��Qdt�QF��i��U�*�/~�,g�I�e��������r(����C�XT�#!+��� �Z�@�'��)G
k80�W�o��S��'K�<�W��*�{�n�ڃ�"\+��ӫu�(�t�l����4k?�溽x�
�E��!���m��Xw�����_����j*����T�*nCVPa��C����L�Ԉ������`n��C�AK�
+�㒾Ыlu
�T,�{��~�c�������I
+�^�R{��ۭ����<�-`CzM��nM�b6��}2i�`�,07��'k�{4]�0��^��fj�7�p���#NMB���KgxF�Z?
n�
��n�����R���vF�4�~�l�m
+����e��$�9���ۺ5r�il�@���GX}��.�U;>W�d��4�ٚD�Z�:XƑo�
^8����"�
"���m�}r2���)V��V�u����r��߉7��=mT*E���1ͺ87�z
�еs�:��ۡ^kM�n5���,׺U;�Y�2o�ڕ^H��s�� ����ʗS�ʔSu��S<�2�l��k�� ��9k�cM�4U�
+�6�
�c�^BXX���ۻ���G�����l�ߠ�=��z�s��\΅{���}%���?`�,�R������`W��"�i���%�{b$�{����&k'�W8��3��\;`M9�~Ѫ�z!'��T��0
T

U]7��� ��:(�׫�
�ȷ
+3:�7�U65��Lb�Kq[��"�E�P!P��-�������
+J�
+�p��gã����}n>�9�t�����@`�?��� ��A{�fɈ`�o,~QQU��+,��v���ޘı����'�?�a���g���<�כ�����
+����fZP�S-�IV=w���
��; �!��p �Ħ �m\ �7N���vF�8�� �1QFR��͸��ȶ�ۈ����<#ܐ.Z����,+Ͳ�+Tc |�?�(n���O�0?�X��"�>�5� �!�
��i+��fo�[��£
Iʸ �t7^
=��b ��
+@`�:cs�~���T~I>���ɧ��&o��'�z��;����Y.I7�z�N[h�r�QF�$)���:cwLR!gt�$%I C�>Kn��v�Rm,Ca�p���x��H
A���GE����
��I��Q��H>��j��@��6� �u�>t�{.ޒ7}�'�f����\?I�nfXT3�,�p��nK�:%iԾe�ӌE>�%����_�2�{у.�\;c��k�~���"ݮq�xfI�%n��˥It���_�5�d���6��J����,Z˽f�|}%�j����T+y/����u�i��J��q������W��
d^�禔K�e>�-���?"լǪӾO�voLw�[{jѝC��5���k��:��q%!�?������� ��:�����v)0�V�[�'��b��-���|�"��Ľ��Dz�
h��y�~�A�]�#��兜o�I�q�!���
+��Q��h���6�vBs�'��:#]V�{��^���s���\I���0�aZĮ���j�zt�@W�*��>�4���n>���Pa�}r[����
���8�ϽI�z����o�ڠܐ��۫;W��_/�B�]F�����oݪ��O�T�
��h|��[c���� �=.���00�[�-���ŵ�|����:�� ���K���8��F�~����^7�Ak�
��xp-\i�R����rA�S=�jG��.�r�
:��f?'�=�篻�H�f� 
���j ����M����j�r�'��qu�����2_�?d�%�4g'�4_�i~�]����xA}�y�b�
��4;������AG��4�w��ݽ���np/ҁ�A\���-}�f[p����
q7e�	��G8�GJ��R!˫.,�\��
�u_9�E���1�r����~����n�K�w�mc�O���)�?/Q2j��[l��<�g�%@zK
+wɂM���o�f����Rk-�K=�Ԯ?��J�J=U/n�O
:s�Q�;���m��9=;��}ڟn�d�
�� ���vLH"�K!�7˚������M�_b��նu�p;���g�n�5N�R���ӭXc���z������%�Yl7�(w
����ϫM���,_oKV� ���%��m���dK�z��x�\\�%a
?��\_�yo ���=Z�!�+�U��n�y
s/�t�1�p
,6K��ܶ
3���v���2睻��6�O��?�Za�f `U��#�处��y���cƋc���	U�9�9�����e�k)ǖ5�X�f
6�gTr�r*�eJ�5��v7�*�	ic��T��xUf��M)��B��p xXq0w�Fյ�=�3w��<�キ>������{M�|#���GD�%㚽�G�6�M���ڏW�r:��Nϩ�����3R�^�2ڎ|���BA���WżT���7���v���T
b>���yqh�/8�e
���3H�@��e��������l5
+�h�S6 �
p�j��2�=��U�Pn[�N���SҪ2<��?Y�ˌ�5AӅ�e�KZw�('�1�49��x}Z��*^�7�K�=�7qS$k�q
�ٶ,t�cꉻ]i�������2+��x
+�DVݼrLڐ|��
F=IS���
�	֛袩�+���6$��8H��
�fm���d��Y��<h���1��>Y“m����3�ݔp:NʷL��{�����'j��Ou��R���m�SN���4_��
�v�Jz��O������D�_`�[ڍ�<�Ry�԰�mkr��,p�vr��O3�Ɨŗ�/�; ���p0�Q�XX���z��w�
[cZ1B���O���C����J]���\�[�-����n0��z��2��7�r���PAȧP�
��.p��[�Ȋ�&��Ƨ�ˌ	�[��`�j��
n�E��t�Kl�}�4�Z0:^E6i����c�R�;�
+�
}8�����FO������l26$j;�A\�D��9������W��%V����3g�L��hz���
6��~k����2FT�/ڗ����G�-���;�m�j	�ytf�U770�b
�>cԝ�W�m�YgZ
�CE-�c���䅗5�~\
�
W.�>j.�2{�Z�
�m��k��Ta�b}�y�3lG�����A��t
=�t��t���%�i1�~	!���YP���{&�fl��٘�ʏ�|�
�д�V�*50�~鉩�����(�:_^1&W��+��5wc��G��sc���J�B/#��5������^�q@�ִ��u�C��.�����m��+$֎�ŏP�wɾB[����oi��07�a��O
Hz���_�1/8���l%i���b��g��[�
�G�]co�R��oe*�0ɔ:�p3
M�啛��#�J��H+�5
�7�ٗ�/?��,3(=���nvx�	&�)�|�
����eZ��%'���L6_#Q���W�!�Lj��?��|�
�}ڪm��r�����,268d��&�R��1
�,q�7��	o��$W4.���Kz��/�
��o��X��}���.?Zv��S\������#�!RF�J|R��|�=��x�J�#�� [...]
]vJ�PX�Vw<�塾z�ֵ����*�G��?F
� 0&۫ю����R$ɍ#rÝAL��t��
a�*��Z�����l���K/��:u���ӣ��le-N�Ȧ�}z ��=[�=������ZũG��b
f��@��X+O��|���lLF�G��K�B�5+����Dr�<�����u�f�2�Wuu�$u�o-������3Jƭg�y� �m����ɮ�,(��r��p$�ź5ƺ5����N�����3z����9�ލ�͆؛|��
+_[B c�qL��iX�[�u
��YS�
nV��?����A
Y�f�2�S
�
O��f�WڗHe]���r蜅I��:8<+&pg7u�)
��oti�P�m�����P�l��W�_�n���m� q�'�\���I��
ɃP�����
��f,����[n�Y��z}F��ϥ�[�
�������:
+�pd?/? ��+I{1���+�Ж)ԅ��45��3
7���t`s�t��Դ?��/�X4�H�����T�ɑ��^��_j̻y-�B9���`�!ʜ�{�v|�]�_~u�6v�C���T�(
�r�k��,����pl���r�"���t��{�P����6J-`\߆S��i�K���X��U�ΗI
Z��_�K4��?�L�
�A^�'J�Uo�x1>6�-p*�qzc��s�~h?=,h
q���Q�ISF�	����X_�ncl�D���u�K�*k����/�Q�'�QT�	P'�E��C����
+Ο��#xɄ
^��
+k+��7
6�;p���18
O
xt�և7
�w&k�fC�Uâ4�a޵Q�4�[�������2���mo����.nwQ�7��+�N&��4Z�q*4�|0�����X�6��y
Ց���ٙy��n�>� T��Q�J�M��M�^ť
Z�+S��w;
���U��{�,� �k I
+B�Z� I�Iu�I���g
ϭ��
�~��1�����C
+���� d����H�0����jA�onCHfv1���G����9] �7�j�
-�^h�4X�Z	V����Q�T�?��)[/\�;_������=0m���
0m:l�U���T�Gϵ��$��KwO
���ZǍ		t2����bt���I\�3t]�[�,����Q��C��N~V�����
+/ ��z�C�
o
�K����h�>4�*���Z�z��f��Ή�v5�/&K��a�ȿi�|
{1I��6~�<��ά
����:V�
*^�ƐB��ҡ����~�ݺ��~���
����q�
Зa�?��T	`�D�1���'��=�l���1
`�� `�a � {�ڵ
�u
����i�7���u�qk8��@��5��nsԦ�\��Ln�,��-fga
�ok
0�q���3�̹��- `���|`
XrL�QT 6�
�+�1�5���-�E��[l
r��O�����>��*�8��}��4{��I�f:�,���,[z�,�oY���՜5�eB�ϑ�����Xd��
+s�8��k??ln�ת|^�ATz��C�!�NZ�=!7㻖UV����L���Cˇw�"�|�y���"�՚f�i��`�/{���쭔�ٻJ|��jղ,9���<P_��$y�A14����Z�׊k%���8<%�q~DJ������]/5
��L�n�x����fQ�"G~rq�Ex!:�������Y9%�"��o/�"�y�I�����˼x�q��{�>͋�{�G�
'��e�m��|2�^�Q4}J��{l�$x����Q�g�������^o���u
��eR,U�O�������
ޚ�|�
OB[�
�
���mE���/��-��wt���N�yܷE�E���s���gb��Ƀ{Y���#��^�ԣ�{w��)��w6���ͺb�mz���2������*��s�#
��^ҮJ��B�O���9V8T�N�x7��nb��e�
�e|ּ�v ��웕������<ݜ�Ǧ����'G�S�U��s�����R���O���N��ؙ��t��O��p����,�qc��G� ��x�
���߷��h7�*��rf
	�M�xv�ؖ�d=��tB�b���:B�ٿx":T�yS:�������|(:<��s���s��i�r�N�!-
���w@�͖�܍��\���*�*�
�Ճ�u�t���i����R�&\)�M��|�����B
+��~����G�`������y�/��C
���o����B7	ޅz�~���{���YZV�ÎJ�;
v���1/��z��y�EBëm֒�ڔ�>���}j]�{�u�g|a�
�+Y�y�t}KԷ�[���&�&��OC���L�
+���
+������yH��]�λ�
���=�]llt��=���gZ�a�q3�n�.�T/^�#�
�;�tNK���
�ǒ���6���kx"��·�>�K��z
Ȱc��G�\p�NJ��������NY��Oz<=���t$7GS�R��?1�����aiHB�Q{H��t˟_��Q�(k��2���O}�t�W��=^��S�Zz�r|���8s��Pt!�QY(�9O�2ׂ*3;@-q�R)}��F�)2��k
�L���PA�k��``��д�c��?o����pۓsO]���p	����*��"ho��6�S>�#��ݡ����ܼ�W
uZ���(����e�nf��x��N�j�8z��<�m���
���X�Y*���L�V��w�p���F��a��:���0��_���û�<i
w#DN�|��s��
�T58��z~'����֌u+���w�3�
s6�z�7�0t�<��Ρtj{m�n�z{�4^���������Qm�S�z�摣Cs��l��а�U�@ψf�o�߼���=�t���镰�9�n6� K�Њ�{�vK�E�-��S,4�%�G�����q��-������ţ��:����:�]��n�9
�M�|��,��!f������Z�3�7�}�qO�N��_���Q�?���moğ=�or�pW��ߎz`z����!8�
�	�(�[
�v�����
��I��_�;���
5>[�b~������_R��ԙ-�֖u��
+Ƣ����Z���ᅚ�o���YU������S�:�+j[�-w����l�žԐ�EC�
�+~��Mk6�~
�|�Q�\���',ig32���3x�����k���H�B�Q�9���Y��VuUaS\�}HT ?����F6�'(b�T>7���_Ŀ\<Ͳw�cQ���38��\�Z�B�
3��:��ev1
�Ƒ��G����S޸Ƣ4x���g^c�Ծ�����"�߇&�DUNų� ���p�l
UDJ;nWB�!^	-
P,�T�s,��_����}��\�k����"<o���d6���R
��U��H�j����A�5�gPO�TΧ�֗w����(�z�*͊��M��Ki��Kh�\���� ,<B�f�L�Jc���׻�]�X/��B#4*�i��X1���3�V��w�Cs:Q̯�w�X��/�ae����#*
�^��=1�4�}4{����ʎ�t�Ƞ#�m����A��M�"a�.��n�w˯������{�p��f�ߛ+����b���~��r�����$)��Cn)
��T
�'�N,�
�ǵq0n�:�oů�5Ԫ��v�Ӹ���Y�x,	r�S��%�~3ĉ�g�t�lz�X:����G�_�9ޕ!@�#s�m����j
�[�7\Ή�����3��;��C���E~M��]�jNaX~��bgbvu;`�o�p����wI��RC1�%T
��d�o�8-le�%��ǽ���y��<���]y�~r�W
�ruV@��w+��pXXȎ,L�
v0Ә�i��=��aG
�������Ĕjժ��m_�E�
�BM$�}�Zu�@e�}��g[���m[��}B�
+
'��/�x������<���]����FX1���o,|��Qo1��գ/��ֱ�UB��J_,��Q�c:[��K��zh
��2��ܢ���En�q����#�&N8_Ւ�Vi�kG骡/�1@��r�+
�^��|��|7��S٭n�Ӿ]�=�d�I��A��3m?�/��_MjzaX��wC2#Ԉ�H�BQD��
E�-�/۲i�܉�2-p�밑�_l�䕇������:RZ�cs�ς����& ����/�$���0����.�
a2k&
�971�AelNR��{$�e�Mrݸ�$Va�"z�d@�*hH�X�Iq��b�B�����߅�n���Nޅ
'q4f�½ݢX��sOxO;���b~�ҼĶ�y֭��27X}Z�	q�R-�
�z�.�W
R
NH/�}���
�'.S�
+^~�$���*��+�O4
X��B�~�J��Ķă�%�A���sy~F^=�����YK��oj��&§>X��5�֏��=-�	�4;w�
� �3�:=]n*+�)��N<�����'��ˀŗ�o��^-�1ր�j�Sm/
�]Ie1�u�2�\d�9��צ��
+C�wѷ��m��.y��ɳ�]·���(�8�
?�.�m�
�a����2�'� �TaB�k
�
W���%i�aMt?F��}��ia��(y�8;��~VA�g�ئ��Mc߬Mǭ6�H�6uH�~?��p
�Nk�^o4���
\��V]����~��d�8q�>�M�rx
(n�z���+��=��2:\|[��p��q�E�L6��~U�6�w*
Z�Q�
��=

�� ��s�\��{s�-�k+$��~H���=���q0}M`ծ�[]szض����d�=i�;q��$��C��X\ ��:�P<�jg�q�^
�k���ޭ�	����l���$oa`1�*0$㣦+�fU���v�<��^7���r&�ZJ�Z�"j�S6�g����
�<�	+wu�NRn���ʹ��"����wa��Я��'6�x�"��m�v{��ݬ�����~�E�#Z:Շ ��ِ�P;
~�f�O���m�z�Ju���*Yh�g0=W�r,��6�,{<(w���-��eenӣ�2Y����ͩbΑU������hPU^SZ_���=H�78a�i���d��F�i}x����|��Y�����7@�\8�	̆�����r�n�9n@]��U�-�/%+i�\���^ј���1+����.�ݱL�4�_� [...]
m,mH$j�RoYG����xV,(�#��
+��#`/����m��P!-�S�U@�#���� �s�}�K�
� G	����M`Dԏ �܇rnh��ed�G��w���PB.:���j�0�
+X'
��r9�Z�Z�
��U��0����S�V��y
 G�,G[�"� ��s ȴ� �,(T��(�cj�r"�b
+P.T�Y���v���c���ۜ�
P����/F!y��I|�@�;gP�
+�R͟�6;���W������6�(���
�cP~0�9���;
tA> t}~h��h���Z �4Y����A�e��0�)0���^�rV�
�GNX�I���'��1`$3��^Ai^
7�t �ڽ~��8��S���-�!������+x 
�s�� �������1?=��O5T� 3�@�9��5��I�X� v, � 
�	� ��%T
�k��9�
���bN
��7�����0{K��e}\ʲ�6ȹ/����9��O��A9�NΓ�2��s�f�+��UV�ת��^E=
+�a�}����	
��G�T������W�k�r;�
�f|m��Z]�k*��Ov������٧'�٧Y7�wxҲ����@�I
#���.yp�BΠ�s$3v}���,=��Q{D��|(�}O������1+7�]��Z^{M������@s�o��yV7�3�O�43�e궾˔M�޿�>�0�c��?���^�'���0�ޝN^�qw�e��?yp��)��՛O�, ����gn�ũw
}O�Y��S��|S���2;SI}�f:����Q8�V
�q*�'�(>�1s�P]n�{
ߎ����?����/��*�h+�샟��C�z^����
}�o�U�����~��c��I�v�^����	!g�������)�h	��WN�6�%

�;�
j��
�L��'g��NPw�Ɠ�]�>l�eZ��^���c��7�
~ɾH��>_,����k�'�{�˿�G
}mn��4�Ld%=�5�v���$`
x�)�v�s(�?��;n�ĮSm2�9�
�I+��i�1�8�v�\y[��&��f���u֛&·1����W����{��?d���Ⱦ,,柆?�� [...]
���z�ZҺ
+��P��^,l�j~`�Փ�jՕ�r�����ڙ��
$�\�~ɾ���ӗ� �ֳ2
<U�տ^{a7��>}�V�\��S炕��w�YlB��#�����)���=8��w`�����ي?�5xu�
t�h
f�x�|X^0��3�8m���&SX��	�(�g~�
v�y���?��a�kO����y�709�Go���9��֢#���&[ݺYݬa�[�V�
�Ց���m�X��wk��w�����3����q}u
��ݬ�XtQ>���AҼ���@Xx3�.��oL� ��;T�:�������_~#|�K�z^�W��h�;?;���E ��º.K��3�մ��Lʩ
�#Wx�&�
+y��J
�ZI�g{Y?���uz��tT�'�X�`�gǹk���U�G��ab3<����
+G
������鿼
ut|�'�1�U*���^Z'U����l5u���%��+&
����ziؾ:k���tt�����|���i�o�
�w��v<[_���x�P��
�����"��G��i���;��m�&��Vt�~����<�����>.����Ҿ
������m�E��
���V|�3�����HN��uh����3��`Y=�0
��7����p���d���t�3��<,Œ�.���X�PZ��Ƕ���
�l}��
G괂���f�u�TS�B�E�z(5rԁ?�Ȥ�+
��\
�S�.|��+V�ot,_Q���w��"�jKJ���<J�c�=jaX60�@KNf��'�x��h
TD5.���E�GOv�w��~)�VԵ���
��K���E�\$;Hpq��r������9ܨo&����0��n��|h��d�Q?��w�p�
Hs$�q�"���DL&��?_��3l��<'	4�y���xW�+��VJ*�l�	���T�h}/�n��<�v�� �? ���U�ג���l��)�[� ��b�8�s��^V��Ω�(��lh�{%s��
æTt0E�Z��}FmA�^�~?h��>8D�?�*_hO�q)R�~�g�-�ֻ&
)u�D/���*�m����t�EZ��~�}��0-�:+���:0˦����O��Įƛ�55��<e׫a���`�y��E�����xG���Ui+*�v�)��v(�q*���/!��^�
�)�	��
(����{�Gq����^�Q3g������në[��t��OT��A��d^go���5�c�D��z�z�Eԇ�"��~�
�y�E��T��>�4,���;�J)�%d�h�}�ƒ
,��k�2�}뱓z�����o��G�_��O���z���/�/����6Iɢ��x��ʼ[�^����.�(�W
sL�g�� �:� �V|�~��|��b��4�`Un�>�4^�x�|(��xa��Ƚl棋
W��y����w��	�J��E���Io�ES�U�h�ju��eG�g�� ���{3:�
�+O����*+�xخ���b��n-
�xn_
+�PU��A���l��4�m �y-k�Y��Y�=��=�و��s�%��t�(�O����ɇM
����
�TJy��6U��6���n���K�-�B8�0r�bg>�6!�[�o���m
'��<�Cr����R
R��dqd*�v�Lx���P`�Z�����#�:6�]k�^�|���~;�؝uY��Ca�
M�Ŵ��*}��4m��!mə>OL(�Ȅ�_�����eBD�8�:�7<2��s���p8�#��<�}����`|��
��{�
+/�s�E����>(!�x�+�T��,��M����̜���'kL�m"����d�@i\��
�3>R��s�
�d�5Y8�_��
�}:��n\őɋ���~
+��;�Xk 3q�A��}��
*��rx��Yk�^�2�y��_���u��o�Ӵb����jWqfԯ��e�i�����O���^����J|"�D,�%F�uR#���|��^�N,	������vW�ډ\Dq�R��W���V5\v$
Vta�@�^�)��Q�;�Vg����ڑ=���_~�K��� �I;��
�����(�.
+i�w����<D'\�A,"�QuS��-�_,�4k��S��Ӯ��������n'ۨmm.�i�����@Nۘ#�WD�v�p�~e��;��s-]1�Jh'C.4ioj^�(z6H�:$��D>�O���yU����oF05A��i
P�x�"�*��E�ܝ�ȱ0ː��]A����33��j����-�9:������C�z"���>|V\3��6����J=_�biNzWwCv��H`�A @E��r��X�41�\q�J(��&2<V�Υ#&
��d�{��hO�ߞ��~{���=o��c�=Q��_�����4Y�v�zׇ(:��R�uP̤
o�v��d������,"3qż�X��-��f����^�C��іy+"i�\CF�ݹ�
ձc����A��
��[ķ-6
^�������fa~5��������C0O�+q�)&L�C�
������S���׾i2{�=P���_
S��: ��NAMKVT��
'��
b�
�O����z�\��A��E~���( [...]
+_�BA�Y!��B��|lY!��je���~�.Jwɪ�\�xm�Z_�N�D��4�o�̭sY��՚c�D�:���hk��]4����~��f��ve&�^�n�?`9K?Dzk��2�)�2�=5�@�N���@�z��Ø��|?��;
�
#*X�:1e��w�N5�i���R!
�����g[��=��0�r
t����g�k�D�:m�ɰ�o
+z�&�R�
zX�TPvX!
Vi�j����]�ꬱ/{q���Ex 
�iJ:�B�\���&�#�M=�L��!4��� Lɧ��b�~��B�p�MR=�q]�Ҩ�5��I/^����?	rC��%�yc0Z��#
�%�p�,R���j�U
�g� G� <L\ _C�
�����_T-'  <�( � Q6O QA�9W ��1@ d
�B!����~�L�+@���ݫ��YN�d99ߑ[�ZB

�v�W�
lAa}d��ыm"Q:	 ║s��Z��P���|�1 at V�g�D�@��F>�����Gcz �4��>j y[� y'm�*��j8o�j֚�����g-u���؛�WH����G�viAUh[O1tUq��
���]�3c܎�@ο&@��1@��P�tP�%(�T � j�= �X)4n� Z�uzڧ��Z������	Џ�0��"'�
�x���/*�n!|�(g��M
+
� j/�ϖ�
�ck���n	n��yq�n& ��5O�����m1p����'�dp�G���� �!� #O��-���
`)�X� �9��
k�<�݄s���=���Wη�����ی��]V�,�
L�u��
����fOF9�5�z�b��'�	�|��i��U5^|�YϰIO�ⱷxBC�D���';z�%��
�w��o:�܌O�z��:.A��Ufg�2]�,6�?��ᒇ)B��"��J��r�Ͼ�y�� ��Ʉ�?��+/>��x����ݡU
��	֕�)ӿ
(ټ�����`z
�{�
+�q@{~(��J��40�=��?�i�6�S�
g~*N��/ǐ�M�>��O���eٻ����A�1V�����r����o��$i�q�n���x�k�B�?�YU��T�.��ϳ
+�=S1%�n�RS� �U[
���2=BS1�d�h���΄��]+��$U/b2�}�	����u+��s��y�\���L~h��K��@7� �����m.x�
�T��q���iG�Sq���uW=DĶ�O��o,=tg����J%�M��Z���N�>������e�b�s�>��͊V�
��ћ�֡ס5���v�B�
��Y��7r~3��(I�?y~����f��>�
%f��Pv�mw��{r����
;���>Ὕ�F1z�F9r7�FT�MO�u~a���|�a��Nšs�;a^�����;�2�:'o�_d�x���jx�Yy�Z��e�D^&Ԝ<�.j���|rv5����+�y��F�S
���1��zi
�2?���������)
�o�?> ��(fu)��֏��
�c�%}
+��&[n��!n!� �@�t��}+�'��yq/�f��=������
����X'��e�\;*��Vʜju��4�O�:�@wW�	V88�.�两���{�m�ǒ���q� ]wyEE������盗�ͫ��s֘h��	N����h�2I�%�*���#�2;6�SYK�v�tK�[#ݾ.n����jٰ짃a{����&=ϕ-���s���k�->��D�W
����U
��k��y���k�lKS�����'���[y�8�-��y1���[�6-�|mX�6���7�}���T�f2-��m��.�r��ar�%�8���y��x�#��%/n/��9����l����q����e�z
'gt&PY87

$c���m�:yY���.Yi��Ì�l�ֻq<�Gw�a��j�:�V��cP�sa>&��;\�T#qw��F��
���a�W�^�B�>�y}Z�'�L.B���G-�!�a��h"��"�ս�U�yk,<��8�|�#����qw���Z��6�&U5��3N�G6F��\��}�w��mE�_��_n�T�ZXö�٢�n"��jf��?v��&���[
����Np]{�YG�/nV�"m��������C���7Ԣ��?A�f~86R0����v��|�_���,h55@��{M�_c}���z���
�����3�t6[�/�}{��m?O��r�J��ĩ$��J��ի�DZD�ϑ��
+C]�ULS97�4��Z:�����쀨�>�Ky+|,5�Ӟ��u��᳣Β�*1͊���z�Tjpa���% '�M�_�a�ۍ�*�^íV������^��S
]gv�G6�&&c)hz��ڌ�#��ƙ%��[�ĺ[�����5ѸP �~Y`���,�yC��e�+j�s�
�@Y�sw�HMJ��P��]i�Y�c�Ùh5��~9&q�mKO�X��	��1>:[g�)�-_����`;6���q^{~^bm
��������L+N��@����=5�
+pj+}�BȻʼn�\A��~e u at l"�7�ZĪۓ0��IZ��3kʽ绱�ͷ�gη�
�T
����?�iz�}�`�;@�اo��{��;��+��0�_R30
�/
�k��A���AC�����)��R���X�ᑘ����t�
���\����ޏ{/���1k���݇�&�F�N�
���
S�|�X~��#
%jm�;\Asc\����_��
+�O����$��o
�����6���e�y�Jy�/�GAċH�JYC�*U���Zt�m��4G&_8o���$�.���f��r
+#w9�����A�
��w���Y�Ș�K��@���v����]�1�^]�YL���H��*��J���q��ꉾ���V�c�$<��@����8ϊ�s����"���
��P�9%P�\U�#Vۂ7��U�C��0�f��IR�1�>lC@������
�s"�S��]��yjA��o�b�ֳ�^�Y��V��$�T�ƍ�-:��+�ph��f�]�}#g~�ş|1���PT��ĠHop��b\uq�_U��"c�Zȴn�+=��R΅���nF��ى
w�����Ҕq���"9��N��O�$�V?;�(GK�ﶤV�+'�>�x=�af�F�]XM{ ����w�[v���Ƈ�q���:��c.T�i�+�
��#�6�����
;�P�E�Y�1�Y�8��
�g1|Q�~����4:
lő����� {u���6Zh}>V��esshӽw�&� ���1����
�.��k�vZ���(����5c��R�i��U�b�-��$5!T�|�]��?W�x�����_�
�х�1��KI��$�����C�� ��m�
=9_Kz��&�{��a�Js	�A�=O��|��v+՝��'��
,JSV��&R�tt'����Nc��KM.�|tA��s�dfo��0h��.U
��
�P���(��_��ɫ���o�[��;֥�_Ǹc^� [...]
+��5���V��兲o�M��bw3�Q��wP�Z~aԬX��L�H${f̼^��dF�
+�O�s��f�Km�EV�TlXE�鼍6�-���MBZw�Y>*~W�����/��#��~����g����K�W�,��],�aU��ݘ�Ũ�
���޷I�v�1�u�;��Do��q�_���h��V,t�a
t �!��y{�88^�a
x#��~�B�F�6���	�ZO�<n�93�ߓ���
{t�
{
x{�y
+���
v/��7
���"*UG-���V�
~2��䥲+�d�[���:I��)��^8�
$�|�;viiv��iҞV�^���Q��t��1������?�W^�
.�d�)��Fܴ����JJ
ͯ�Q�=�F%�{����[Uɺ7*���ˢ�2([|N ?^.�k9�
�PՆ����D?���3X}7�;�}m��	���P>{m�t�l�o~҄����WJ�P�S���<��L+�u:h����|W����y5]�U��*ו�W��1�"�ʾ�£�L��/�Y
���q��6=�;Ќ�y����'�w���F.孈�=׹��|�fX�lH�zsG��!�q��˔��M�L�Ǥ�ժ����o+���VHr���ϬZ.�])3�I�� ���������A?�_~-��;�[��P�<qJ���7�R�֦q�-��z�q�VEt����x���sdd|�
-O�ئl=�ډ���T>w�oqGB�y� ~X��b�6��3��
V��*� �c���4J���(U�.jI�BgY06�Hk?gQhq�n��}x���r��_~��
|�eQ5��Ud�f��̧�EeN���B;�q�fRXi*�ѫ�����H��V�
+���dQ�O��,m��gn �� �- ݣ�
'��� z���+����
���
@7��F2��&
��w���!���eh� D�|���n'��y��b`7"����Z�p�v
�Q3��z��0�
+}KyH`U��}��©�� ,
�9^/� ػf�HS /�>�W�; �y��̷�A 8WPs<�����r
��
�=c��8�1��U�s�,�>��Fe�B-��
;��C�W
\���������*�%b�A�=��}� ~?� Q,
 ��i9�	xh�uBg7 �,O ��� Y�i���
�lH>@6������Hʯ�l���� �r��?�pi�+u^;�%��;o���_;��Õ����J�)��� U׋�f� �M� �qT��@2�����9�� ��� �� ժ�J
�jz/�c��fM h"�Zc��/@'
�͉�ö�㞀|����w-u/��&K
�?=rE�?��Op?lj���K�k�b\�J�  ��?��=�]������bk���=@o�W���_ �ɟeF)!?�7lV"�d���'�v  ,3  V!̜k�c��2b��K���7J)9��e<
�L�,���	��ն>���-�ZUv���
�g�x�Oȼ�����R����޵G3�7f��f���-o3n�qa��"!м8eG��q�>?4�?�lp�H>�=�%{���@]� [...]
.��5>�*�əJ*^�6���;d'�b��!�Gh>��g=�'�z�ˡ�<���=�_����a��O�&��BJ����vE��
�)���]�ӭ5�nWd�d�hϳ��Y_��n�l������T'�!��G�6�cx��^���ݡ�����g���WA�4����ֶ�Η�RW���#{�ؼ����e�q3��i���+��]��zה.i�k�i�gPy����x���Q�����l}�7��eg�$'Y�DS vjS0�wA

�Q6������x���n��o�
#�|
Up��ͮ�sF�D�v����_����7���y�Y����B�
�[??zA3e�E~�m��O(Jܵ�j?A6��I��R�l��̋�
nV��kS�w�uH7�5��Zhea5�
Rk�Au����ո���x.�n�$
+����/��l:��O��k����
~��o�<��������(A�kg�@!v�]eKc�����M	�u�ex'�����<
�������o3����\S�i���F�
+��� I� &Ŝf���=��~Ϸ�c��q¨st�MWW]S�Qn
+�v+�q�@����}��O;��I9��o�������%�B��L
)
JU
�V�<��{���X��Dz�i�4F��`6��nK�V�S^-G��4����Q���ҭ2!�[v''L�Y�ƹ��ϙ��
u�Omţߋs(?
Nn��03c�����
J��
5v%8B=��7_�wT��G��n�f�.[���m�~�u�
���t�J���)�x�m(8���CO��,�]d&u8ݱ���|���c$���X�~��N}��b����h�`���f?[�n����;>�Q��I�򹬻�[�t���c�=�|���Y�C�Y�3+y���	���;�;}�G[t{
��x��Y
Ɠ��d�$i�m�^B>���|���C�鲏�~P����,��\�v}����6߉ڡ�~�B�
��F�� L��(,��$0<v�ͩe��|�ܐ2��o�[�;�zs�U*�<b]y6�N��/�+ӇFl�Wcy��y��
?�����p������������v�^v��{��^��=��ټ��d�4A�y�"�b�bZ��Ul�W����_�V|�U�E
Y���vksh2�q{��������x9b�<5>r��Ơym��f�Y��ܠ7��^ ��H"豎a�
�4����A�1���
����
Gq�m��<�����|�w���W�g�
J��j����T�ً��'���<�
�2�������=Z5r+�f��
+���!X��з,�J�
DžCЫ�P
3��
�z����!�����<_f�J[���Jsn�1>
��c/���������\��T{9/��9�m��o��5�f���ϩ`��K�Z��cY�gn���Ă����
0��6[�>]���!�2������ܒ�"�&��t�r޻V�nG�P����d�{{�GM
Ͻ�^���đ�骑X����ov�mT�O>|s�M~as��c��ᔱ5�S?��-���b-=([��Z�4���ǟ�W��4�GS��?8�b�>����	��x�it�_���8l�ƶi���P�N�<��w�y}�V#9�Z��Dv�C�
P+s�a��;�S��aX_�\�u�a��3?��Ey�
�)�^u"u��-Ty/�U�Q��2��I��῰�7�ʬe��D��>#w��d&���1�sM��>�V�#o�b��r��J�
sk��YY����&��Z��+=h��~Ѹ��QL�|]���^ڤ���5lS[�p��N�L�ǟT6��$��Z��ȥ1��2$� [...]
+�1���
��
+�������-���������*�{�ߋ��/fG�B�y���Y�߆V�
���l:�'��CH����O>%�K~H5��X6s�l�QK�`�/a�����(1|Ԟ�N�dS
��EH}��Y�s��G�H�{���5��I�͚����M��N�.����t=l�b�ZO/K	�3��}5�|�.�Fn��ӀCX1N��"@�jB���Ê��;��2���
M$�[
ۥv�f����̩�	���GG>Z

ܻ��q�D���~ 69�
��;��.#��Nc�vcڌ�-z�1�_qt�]�w'i
���O���ְ6ݓ�w�9�&�#�1���d#Fx^
O+\eG�����]��
/=�
���Hf��=;њ)�m�_fn
K�YFiz�4�t�z��6������`~��a�Gm�j�Sۺ��ˉ���]e��P
�¡�lg�u��nc��ڿ�w�M�Iy�uJRe�C�6��
<�b���	�yJ�:;IU�պA�B���b�۔1�
S��3��hOu�0�<
	��2�J�>I�@B\��B\�J\�I\��1q)��$)��`\_X�Q��}Ps���;?�]�
K�:��N4������ړ/��s��[b��[a,6f��}/ӎ�h��y���(��(��.���v �z'.!GtƝ
+~�k?ޟ�..��Q��Ԏ���]�'�Fu���swY����n�̖�R��l&�F��y�J�6�8Q1�
+%�+埋f��z�ް�̎Q~�X&Om� C�H:�Y��>k
|j��3�Q[��5�YW_������\ʕd��*u5gc��9�
��
sc�4�0������� ��"��t)\��S󉇉��W��ĭ�r&$�*��������|�y�7_���B��p�UGҙ�*�T�4	��U�N���Y+��f���k�� �GW�6�
��8K��a_/WQ��
v�5����Z���Ĵ�
u�
,i��J߭c�xts[nlU_�@{^�*�,nE93�
�˂�3�J�Rĝ��'��*SJ�a������UP��fʞ:�8v6���H�"�Eq��J���\b�2(�
�j����~!� 
n�
x89�aI���;��H'�s�-�� ^��*��k}װű�ҷ���6��_<!�Tyv
wh�H�U�sHez�@��s?*�B��ڕ�5�R��h�� Jp�k�ܟ{�
�0�q(y�;�>J�PA�!�y~)���嗟�8o'|���,o�A3o{�0��.�?Pv8��5z������:��к��۳F�z:7����GD�Y��jt�]!H�ᢈO4����Eu�J�ϯ�
�o�9�����k>y/W
���h����z ��"�af r� }�
,��
F�k!��НҎ��CS^N�
�
1��,��� ����w6��[��$gu2/���$�3_U�ϞA��9W* �
��7�
+�z5C���"�L��64L,2D@˅
1
�`�@��342J
�2�sE
P�t����`
�J ~�c5s���`*{��@��MȖ��&y�)Vu�9E�n�vbp�w}� �oy��V����#�An$`�%.#�nj&
�( L���� �C� 3ޔ �H|��
{0�4�YL���C�
K�
�-�-�
+��'��
�W"w�L8s�P�C������UJS
�F�:<	ܿzr�k1��E�B��
}.�{���3��}���'߿��
��
p���+�&���p-���n��
u�� �w+\�y�p�ߥ��>��CnE��씐���n��G�h��z�k�nW������j��W����6w�
�}N�)<��� L��?� ��&
�y��a9 ��:����b�
�Q��"C7����|�����i��6E�L�=i�����*@!��</���{s�R�n�J�Z�ͼ�-��F�
45�܂Zcr�1Ȝ�O�D��qxr��
�@<3)����$� ���f��:��K�1����K	���
+%��
��?��B��LJ&��;
���}I4��un۷
�roέ׺a�Q��F��W�(=��EJM޻K._�w[˟#� �^��b�4��Wx��!��UB3|���p�
^q�Y�@Ϥ(�
���߭�9W�p����$��R	F^�:����z7�
�T��r�?��j�����Q=w�֟��n��(�{�����/��h��H��S�����t�^�`��QB��3�����9��]xuoX�5���wyI�tw���������L�G��|�Ì�pwT�[�Ay�|Z��^m�[|�b7a�-���@[������kg�jӳ�tK?�oT�.�ZR���:�������?=,�~g�+fp+ϼ��s�i��vb�O/Kk
���:���s^���Y�B��:���5��WQe�_	��y���R�
�Y�����^�"q���Ζ*�ΐ��N�bǛ�
t>��#9�O89�P��z-�?=,���+�'��8G�uTw��
鹥-��y�:5	fuwq����.[�|8s���R�
���F+�S"���E,'���%a�;'��}��d�0�wV��� B
��;�&�Y�N�
�������ُ���ɀo.��\:���$����yT��T�,��fs�H��u�?����ਜ਼���_����p؄�9�q�SKm̞}с=�C/��aK�u4L�c2�'����J�hi1��F����W��]���Ww�ۿ������aG��[_����g�/?�~���<�j�.X��Wbx4�O�Y��nܝ��Qt�?q��
1���a}�V��K�u�;K%��K=*G��w��V�� Q��IYd�=G��K����u�;<��ۏG����2�P�)
���?P:�ã�א�s>�=�?.��9��Coڜ.��������DΎ�\ɟe�a�ݠDt/�D�~s:�#<�{���^�3�m_�l�ƿk
>j�)v[��Z�
C�YS�u
t`��BK�V�4m��?�1���@�o�7��R�9,��g����Y�g��}�r���c5��P[�G�h�q���(��tYj���c���^ےxx���-��E��ކ0��[�K�m!�(��|��1z��{�X�4�l}5����s\��|�a�D�n�/��h�l���cވ��� v��[�
������#�
�q�so
�v�N�a�{a��I��\�l���7+��g>���G�l�y:�H��=ܽ�1�r�Zq
8�:�P�Zi��`֐��� ^�'��ۅq>�檺�f����X<)��r��'��cCS��?������#T�-�&,��Zk���߄��6�󈫕4�:w�5�u�opr����"m��$�P��'�nk
�[�[��h���'6���D�'0v�Y6���1��w��4��cy?�Ŏ
젅5��c��M��w�y���V
c>0w�j��U�Z����.���o:O2�
q<�5��ͨ�3�3[[�W6�x
,s��󼤒�<�ƛΙ��@
/�Fu��z@ �N����QvK�͋��0L�v,�~`'��X?�V~�s�-6J����V[�2��
CT���5/�k��gܑ�[���g�օ�e-FE�Br�������`yjx��2p:<�A/��?{i��6��v�R�ok|]hF����S��^R���|Yܔ`���T�#E=���T��J]�I�ޤ�I�ݚJ{�r�Q}��e�좂:ý�o�m�lú�[��p&�Բ [...]
�q!�,^�i]���Ԯ�H�W_���j#VA�=U�F/�a�Bqu�g�l� -d�ΒT69Wt�ݡX�b�
��X�ݬ�A0#�ҟ�Ŋ7�b�y���ıO_�a8���w�
ɭ-\2[��U������ �i���*�Z0j��*PƚR�.JA��d�����v)�V
?���N��Tl�G V�$V;��B���m�
բ�̋5�[�mFٙ54���􅶬�� ��oɓx޽�7
+Z�Ѽ�U�WO�V����o��][�>`��:��%e��p��c�H6qI�V�nH��M��Ŧ���*tKj�Su��x�,����О\�����#���w����{��
��T�{V.
�YEc�o2�?���q�䆍�d�]6�V��
�����C7+�[^�ΙW]d�75�<�����1	�6��LN�X��j�uĬ�p������G�
?Ӡ߯jO�t`nH�(N�*��m;�X�-Y~}X��WX��ٱ���1y���6ˠ�17�)�|2A-G9��q>T�v�~����<�)
\e��$ta�DqK���V�� b3c����x��}7��B��A
p�A�I�n�~��+;N��/�qf��)�n5[
L2kI/�ɋ��20fΏ#FW׃d(ڹ��GW�U�;�[t4:��f�6�ԟ-
(S}�KW!w
�V
�p�	̋�^"P^p��N�^�_�(T�omf�I��b�5�c�;ffl�f���B/k�/m}�
+�����3
��	�-�7
+[�<�)�r�^D9g�Om� �������"��r�
����T\N��LL
� #�w�#�
+���rD̞\�$_�;���/d��2��,3��L17��tߡm
�eBX�@���T�����
.�~Ԉ����X��0)�D8!X"��]�t�"�c���9zv�|��m�SK3�$���ފ~�r�_��٪�:�
�z�lr�_�9l�������u���ފ��:�QM�R�*K�A
l? [�r@�{�)��
A��;~�7E��!L�1��ՁQd؞~��X�RՁ6�*�Va�_}X����j����������L]�B�\.¹Z�P�|m�LY-�
�U
NT3�+�ó�!I�)��F����Lw%�7�a�g����Z�:D�QU��V�O3�V�U#_��UɅ��M�K�n�=Ef���i󨓅#��/�
����r����x��}����jA���A���+�8�N����ȣ;�lir�v��)�J��|K%�2^�\E�4�J�
Y��~na��a�id����E�ק���ղsx��X�u�}9�F��F���V�X9,cX��.PģO��ac��\�lΔ��
���Y�� [...]
ğ���F��\ޔ��(^�w�ؽ�R��_>� ;s8J��������p�
S��"\�]S,"k�
:z��UT��c��?��y�Y�ľ�^��DW+^�rgpƊ�Ҿ���s���o%�~|oP��{G-�E�O�#��t���+���Am���p%��� �r�
+_��b��ͨ� �v��6�-h:����)L��n�l�kG���&�����}U^M��
���7�:D���ѧ:��̌�ruZ:o���Z�Rם�w��
�baVA�� �����%9��H��6
�y9��ށ�x}���>:�{Q�p �/Tn
� 7�n%h���v�f�`y����*��lO��C��'�lG\�:��r�U/gv��7z��=F��\�]���{�ˑ��zbǁ
~)��
2Xz�]
f��jHH�>�<��xum@��8������ �4�W�k��Й����gͨ�ݰM�"�0 �k�}�"/)�K���Ԥ��Kh�8�{\�W�
<9/?| ���^2�����U3�
�ȩ(	jd0;���3@��s�kP���C5�^�7�'�x� �@xfc@��Q�å�`�HY�0�v�i+�_t�Ti|��wf��^'�Ka����@���S '7�t% ͱpt}H �=��n�D@�D
Г��]!�-\e�޲ka��%f���k@�D �b��;q�q����W�)Ώ���v�D3<��lb0�i�CI [...]
+ �f�]����).��j����a�%��s�
+OP�
�$�8�c2�������_=Yoeg���W��=d�a@
[T���
�N�n�o�SӁG�9�����q�g�B)�
��%@��;d�B���0�)���qӺ��^$�9��pq1���k���D�����?#ǁ,ko�OE�����궿y���\���[��\�>�����#�5�/P[��@�j���+ �<\�a~��a�
o�I����|�aO�������������o1����?�?��
��?����b>}�ۆ~
+7�)7���W�U��xL6��AJM�ޥ
)��n��s�
v��{~����
�a�8&������?�Sz�OVgv���+��ʡ�J�oF�d��ܸ�L�u򘕏�u\oXw�^�A���\R5�.�,F�Q�A�^�.~�ф9~�����)��]��^b����9�Mw�N��ɢj�"봩���c���uIF2T
+h�
���C�Ԅ�!��u���4xs�
;%gaIL��faq̷ޛ�9����|�9�y��s��?��!<��
�O��_��
��қ�H������u�����I�0[jorfCo������̛���9���.�0��c���A?��=җ��kC��Κ]��haig��R:��E��E����gB���q����~�n��c�•�dos���TVe��H0f�����g�<h	z�_��o�VJ���w������p��m�1wXw���Jؕ�K�T-.�+Y���*=��%~����)6/�'~	2�����C�qꗂq�`�?����G��1������k�y�槹�����^�h�HV���.�����v�ה�Vǯ����Z����c{�^�l^f˚4��9a1�a���l�6N��gt��HH�b
sK&�K�O�fj(
�?߬\�
��S��i��}l�Lz>�n���w�R�=�uҨ�v�b��a?�I������5��oJo{�a�f�knǴu�άWM����:N��5��� ��C4L��d0���3��#����ƺ������"�����=�r7�H��vy��>�}��v��j�q
��[�|�
+�K��e�m����e�ۤU��_\{㛭J��<����pָPv�ޖ��c-��ȱä7�Ej�Fe���W��n�Hrq�]��;���p��
�|���#
�'T�N!�4<$И)����
�2k��V��h��5���W����ç@6Ig���6t;*�ů���N�~��Jݱ�
��
i\��u*�
�G�M!����/��M�j{pF�'�0�
Q�-�qkQV�-s�l�u�9�������ӫ&	h
��b��߫�%`�I
��s�#@h�Z�cC���dse�V=�����y��
�n뵜��u����â���	��t�B
m�.�
�D1T�E,��e�� ��c���{���6�q4��4%.kDs�Nl����
/�~kH��������lš13���c.
+2m�5�K?ol�v�p��0�3*�b�[zz�Ͷ+��/�\i�[��uĊE��[i-��B�����<�榣&�r������x�͆L�C;�<�v=3&�lY�Y�M���>�vϽ�g/�,
w���C�����kjg���ڰ���U�]��?b�����
;j��է
\'
h0
�����O�
BN���"�%�Ӥ�۫˅��Nn��E�MZ��]O?�5�K�U
V
���Y�h�Ѭh]��2�z2Lt�3_kmu{Ԙ̶�{-
���T߂����+��)Q>����^�lS�Q�ɠ��b�C�u,q�q�x��m�~[�ě��r�x5F[�bO��Ú'��l�(��^ԪQU��w�u$�R
�Z{����
]g�q{v�|T������J�*c�yQ��(����Sc$����H��K�.~�,
�3�m���_,I����1B�J�,u/���o����a-���t��|��:�����K�[�%�B.ϪC
�T	fuel����u_�];]y�[�d�,�Ųt������$��!�3�r"���ھX�����T�.�楎�a����ԟ��eh��Ϋ�[.���}H`
�L�,k�܌�}qԃ���XAH�d��vA�V���]B��+��^����.Y�#!�7��X�Jj��b[�ܭ�
X8GZe�hp�������̭��
7~�����$
uO�
+l
�I<�|��8'
�Q�~��%�U�F־~׾k5F^'%�^7y&��2�ų�](��Ƭ�K��ھc�y��φF
�'�p��m!4�X�Ikŧ���&X����=�r���W
��6�1��>չZG��¡�$���3����S��|b���ܷes�\}�����Sj���r���NZ�óTƢ�X!�ߚ�
�5��bB8�R�~���H�|�l�<��rp�<2�j{�ľ�]�*��VY��PX�0!3�o��D;����U����X��`
����}��Ay��dl��C�ѓ9%8�r���󂿔�5�+}�3bo.�9��_=-����=�v����Cf�Ӣ��t��*x�c�i�0��g4�{1P���#Ѧ�i�՛�%��fhȴioܟ���7Ϲɦ[�ĝV��Ԝ��RV�1Kz����oO?�s.^K�
����:��u�����x>n�(��$�*Mcs��L��̃e��Ac 8�!mn�]jn����T� :�r�
]r���+���i���};Cס�f�
���{=���E�1��)�*��H���K���IBKƪ֚�����	��{+�c�w��NRfʭ^����酕Ch
!	��Q8j�m+���-
+}<Z�n�
I�
+�$��)q���D�=KP���/�����/�r�sE�6A!r�,ۉ��"��+A�wvۜ	�"}`��<���EN� O��,��q$�Y��g
\ �ټX-�H�/ڍrƽ/��
��f;��[9�8��HM'�񠉧깇w
�)���S�n�sՈ
+�p�g�s�+�~�V�-�*�
F5*T2kY�?�v��׳ �<W�����θvK.����^�x��(���v2g�_tL[�ۘ�V�%�3�
q�rg"4����
�m8%�˜���v�V�(�dNcW��v������
+���
*8Vo%V��
V�Kg���Vo�4���,,����X�fc:���q7�և�1$/N�g�^N���V�
�>�sڮ��
c��gՇ
����p_y���ʈ��+�
.T@̢��v(L+�E���h���)4�h
endstream
endobj
220 0 obj
<</Length 65536>>stream
+�uX�W�ڳ�P��TF�l3�4����Ud�J��l������9����Գx��͊����u���v6g�
+[�(��Te M��4U>�h`�'��0dQkt��G�����57���
\F�
+��(�KA��q�tt?�RPUf%�M��P,;�Vdn��"l�Zx����b��,�����$��2��R�_[���w� ����G�م���
լ7VD{��Wť5���wXv:���͢t"N�5z����܋�|
dKEv��<X�����
X����y���3���xf��s��a�-$�rZH�e��U

��7�:7�K_Ş�<�~͗95y��l�p���Q�Wҍe�H\Z�:�_�
8Ӳ[��J����O����
�2�RH>��h�„1�B�1�B?U����w�V�e�k�W�<�d�܏�����nz�wW��jԺ;�
�Ve��ڠV��U��$
+C�ؕ>��7$�s��(;l_��̕Z���w
+?�I)�n6�(�׹��mr�ރ�UO���/P��!P���
n-Cj��M�e��@���>� IP=lMP]�CP]�WP
�4��=%��j�d
l{���}�
v�
+}!_�U�(�_x4_+��<������zxh�KHm��%����il ~�w�3����_ X.g��
^@���if�
A6v�� �a��v�7Pd
+���	��N ��odh��G�����b�+��wWG�e��� �/O at EK@��˻Q�Vb���
�#T(�|�{mq
W�� Q䞁z��s�T� _�
I�06 ��a�����9�
�Ԩr��ٵ��n
�A'�������Ȥ�gXW�{K¿#��
�B�*q��o"uy�*���ް�g�l]���IU�2Ԝ��Ο����f��5�ˀ��8�CP���� �?�-Ԗ����
���.���hY,ZR�M�,��kڥ��G'��|�����T�j�h%�b%�#�`~���� �n��zrf��q��%@�`�

���ndWNL���4X��
���K����2���<V	�e�j��XN�d���y�艗i���A�A
^Ǖ�'�;oɗ��ױQ(7�����֥�e� ,�1��_x=
����W˽�Sс� �}�%�
p���t�x� �x��w���j�|O�3ܚ���8�v#���H��X�٦�����
+2�YH�
���0�
�P�ۥ�>���[��t��~[���O�_2�r�+�c �%n�#�1��ߧ�%�j�|j����l
D���R���W����6��_}�W���%���%翵�I�u����{
莄
rs�^�����{v��$B|��%���K�0��ws�<
�Ex��]���,hvLH�p�w��<-k��[^�j�Ė�%�����~o�W�C��݇�Żw�ȎoX_�@W|�mSj��.�,=
������y�
��:�r�VJe��
������^�ֶ��n�⻱N�J{����*"��J�,�嫋�˘�+?����y����_��1+]ћsn��I0�K*7��]kۧi��|�o�,��9��p��xs�v�
��-�]d���Vww�_E��y�j��'��^X�oy�r�Tq��{�1K�[
��+�'~E���K�#���]R������v�O�{�<��O��
5����S�/H�o��/�����3��Wof}��
I
ݩ[x
&{�1��Hq����6��e�%��u�ӄF{ �׀�b����w�_������O�������s��{�[�S],_�R�P/��\�3듻M7*��b���@ɩ�Gj���S���	aG

#�+q�cY�O�
&��
կ�
��A<���Ed�v��ƅ^}�⡽}P5z>�
��+��z���{���8ް�q8I��h����2�`�l)��d�U�$D�޸[!z�����#/�ߨ��o�<�)������h�7r�
����n"?P�-�+�}�G����ҥҳ�I{��>k�v$���l�P�jH�]"F��A';����
�^�S�w�;k�zsC	�ɾnf�r�:��)5L�>?�I�zd�vcN[}l���|�8��ˬK�/�N�~�:��vlߣܵ-�>��5*}C9�AA�ShP�
�5��r
ޮ��_z����̙�҇���&���9���|�_\zZ+�\
+D</��=�>V\
^
l`
N��!��V4�=y���ݾ�h�-<k��Y�|7n+�sa7�?�a��q
��澝]�_�ң����~�����R�pb�
�'ٹ���t?�A�����4ڤ��g�����{8B��i�{����jԇ����u
+w����z�g�[D�pTA0[hk��)�j~��Ҽ����j��7[���$�b��ő�0��rz}z��B��,�{C�Wy{�}W�
N
���$�z�"�ٙ�S1KT5֢h��Mj#۩O.�8�~(�S���W�(ӯ�y�Et=�����n���\�A�u]#n��Ɲ�t�
~��&j4�#ڰ?��Jʴ�\W�,�`�-h�[�Vir0֝��p8�w�&�{�U�"�c*Z�MZ0��4J��?��bJ�r
�1/��M������(=r��R�5C�<�)u[�l�rt�xmH��k��
����YzG`��]��Vd�Ʀ虆���

��[�pk�����
+s�w��W�����4Q��M嵶'Jܵ�!|��?мQ�X�.�
CB0�w��a~�
>J��g� %ga����2����Q�jl����^aQ��.��2㨅ͽPO�{��
�z��aG�&x�)�5M�+�ћ(r��� =���)Ʌ捓�fK��
K�Q����#7��	�M[��d�H�FG�N�e��yS
�ɟ�����/f~M�my6�P���Tr����V��_�aX
 Ly����:���!�����'v���	%���C]�
�sQ$_�mӀ�5��l�jU�ժz�!
�52æ^������eF��Y�©�^�K��z����;��!���$�h�E-��\n�Z�Zy_�����C�����˚1���j�Jf�L��ۙ�E�V1j���՚��'
��Th������K
'�9��̗��,�\x6W�3t�
Q��-TG��m��:�� F���
+�����t��Q���~��c���ʸxN�)��ːw�J��q�
x�����k
�a��6I!(�y���T��{d֒��\�g����-'(қ}���t�
�mVjM���0vx����/��huod�0�E9/u[�¼�'�s�X~�P�ne�)��/C��P*����5�{�x
�����\PT[���ELI�sF�,fQ�b�z���{ﵾ}�<U��2�0}�Q�15A=�fk�vxŔ��A)�9#*Z1g�O��Ƀ�*��/}*�J���]��5B��C�F�zډ�v~-�N>�:��	��b�+����|��/�R���B�����&���s���L�k�LGg+�Pk쑉��d��
�{��D~��<̖3�y�ҧ�e��ATɁUG�v�@�뻎��\D?�EXl�l��&�U�*
��:�����
+SX�.V�Ra3�g����|���H��Z�ߜ^��� ��
��7�j�p�TCc�Sn��X~&�X���Z�
ɑ�W	����6*z�6-b�\LJ%�c)=�a�[���O�`�
��P�
�ngA���˝Png��n��/������Ӄ�@g�~�qE�z��tkyu%6h4�Ӛᵝ^cJ�ݐ_r9����%gT���X��v�Kvz���)#�79��+dU���X�vի��u��q���=��=�*w2l+�DV�>s�����.�J
#�-�`|�Q�f�
��Vي0�� �,���?oL�D�Z�Bv�{aܒG�.�1�!$�',��P Q9�+����|�A��e|��p����*�lkQTY�癫��1�kn����~�ʛ
`G�6V�GkvD�C�I���~�V�z�\��ǴK�s�����*��ڠ�����ﮜ��-	ᨺ��
+�e�!�7}��c�T������6ILW(>�3��G��� ����9���85n���-�T�ry��i�!�1�']/铮���A��2���E+��j�Sb��r�!\I�|�
Z<��z��N�f*��kO�'嶰�>�]�3�^�=��&s��.��zpNi��^Q����w�F�3
PP��%�l̑�꩓hh��2n�GvF��_[$�`b���	q*.��^�S4���J�ZWm�*�r��
�Be�ǝ����9!

��ԫ?�ʙթ/�b�W;�{�U���*T�6dt㺤�sC��9�X6�j��K� ��_�z��z(g�����VZ
;R�1�ܑ��,&U
���z!�3&��l�����)���잚d�
��o����u�����b�m?�ղ;��]�kT�&*�R;��igw�e7[W/�,�
�P��{gL"zo��ah�K�)��j��A�/s��G�
b�E1��
+��*�z
$�N1�@�{�R�z[�X.pb��N�9�z}����5}#GLg&��i�5�r��}�65)xiuAf!P��`Ҿ�@�f����� yD�)2^k�d�C
+�	��#
7.
l��g.�"䪇B��23^_��Td��{u3�d3�����d�G����ݵ
� ��S�ޜ>�f�vR�%b#aBe��^���/�>���
2�vZ8��19_� �b�	GA�
��|���8�hWf�^|�����	����7��h�� ;E�h��)���gIY@ݘ���P��
��N�h�>~~��E����j����ޡ�)�|�����^�픶�<"q~��ٞ��po!�y�O�Q�Y
+=P��
�o�(Ei�b�
�:�?)F`XN�)>�
��
����H)f�?~:���xJ�޲f��G�3�?i'z
i��������ۅ҆�h��3����S�� u����l
��2���T �=�������
+��f�� �����UN1��,%)�0`��ؼ� ��YV;�����Y��rͲ'��h2\�JXR1�~�B�K.�ȥx��<n/Ї��!69�B�7��~��p��pj�\~q\���Փ�bp�&��M��v�؂y8?I�
o����t�^xp�U��v�m]�R�y#�s��̉��j���
`�Ӓ��<F�����
���N�"�s:�M� ��� �?'�o>w��G�/�_op���,���P@�>�.�2�����.}+6}i��!݁�1 t��"��qS7iCQ��ˊ�{H��P�P���?� o𬿿�[O�7 ���^n�7��l�
1p�@

�W	�RQq�d���	s�����@�4H�Lz*'����
�b=��KJ@꛽��]��
�`JeЖ��|�i�*��q���w-�"(1G2���&㙿z�?����Ł�����7ѡ��~�zpȉS
+��%�@	�7�L�$P������-9 �>L�=�t����ӈ�k�/+hy�	b��c�V'�Ú���%�`\���O��ɿ��
ʟLg�_��W��'����8�¹
+Թ�����?�]5���՗S���bV�c�w�W�S�5
U�>��@����1�~��g�F�D}>s��b�|>���i������m���׵�x\���T�O�7��xf���F��ĝ��#
o\;j+�:<˂{0���8���%�wɬv����qd��&�2Φ�������5��?��uF,�5�~
�{���hP���z\���}>���f���C��aH��S���wعg��,�]๥F�Ϧ�y�냗��`��
+IF^�X�\<���b(�����o��
d��(Pgq��
/�+3t���k]�gK�Z>f3��c�
o΀<
�]���sc�
���
;A��0�TV��\��_}���
��9����lu?�����E����zMTG'��3��6�CU�E�1��U�Zm0�)6��]�~�������i}0��&��`�>��fb�i�#��bȒ�ܾd�{3q�}�k�$O�����Gn�.���Pz#a��8X�c6
�$f8Ү��p�U��g8�

p���+	}��Ei��-���_����3��4�,�^��mu
�r5^h��4 IgRC��P�,#a����
�����>|��w

D�
�7A�1Ǧ�'��X�z>�[�u��~�.�
*��w:�������µ�l�:ĵ�׵ֺ���װ�=��x����&���Ő��b|p��f���z�[�LniH���V��������4쮋�K��e�F������&o�B�T����ʻ-ߪP���f[�k�4���Ҵ��݈<��p�V�
�v�:�(�ڢ�)?H��R��v
?�Z_�jf�
cz7��PȒ#� C�~�{> � �N�
���j��
�|[=5�4����4?Q��D��҈�CԀfI\�
�U�á]m@����u݂��)�*59R*�
򂦡5Ὕ���*�yU)+H�M�[��;Gy� Q�I�L�Ay��v����pb��>7�S�����P��Q�4�8K�=�j����dU�մ~�9��4
�
+{�׃C�M�3(���
��e�
�?HIG����1���B�N�a��4}
+I�p�J����Z�^��>-��É��o�L���]�d�m��º�u���4�7�@��~�V�>������pF�e��ɥ���Kz�h�/�Q�^��o\/:�iX�K�Q��e���?y%l��ɺ�d���R��f�:��}J�!��C��b>mJ�Ѡ�2�ՁM����]/z�C��e�>*G�	����o/�
[ؔ�5��Z���d|�8��xA{La���B�yN�}oy9X^��t=R��neH��{"�,�oS����u�>�U&�.��mu[��
5e�4��'���/��S�6@���y	^_�ʹ��
+��
=����g��Z��s�ڰ8%j�œ	��Jv
����Y\f�C���7p�uN!!9mE��k_���s�UX�
�I�z��yZ]���e؜�5�t�}�D���D�~�D=NH�H_D
+GU��
�6�k�Uk'�^�;���B\X
Á���m�*,[�v�����M��A�,��赳o8��D|垜
+��|6g�Z�eZ�eO'��K�t��d�-�e��fd���^_���s���Z2��Z��FZ�B�RL�$���dsG�d]/ŹT_�t����g���8Lܝ����լ���ȯ\hkW������Y�i�PJ,h�9�qg�2��6c,��3|
������b�:�v<�6�U5�'ꑨ�����T.�O)��6�*
~�P:B�N�����)�
�*���Ҟ�\�ʍ���;�ȹ��]����q
r@��,'��7�h�7��ib��B��N��E�)�C�݋��70��^'���J�%�攎�/+*�����H{1Ch^�7 ��)��n[%���ڑ�4�����|���Bsr¹��A��Q
��2/
��ݿm��\�I��}�db�b� vv]��vڋi�qy��Pc�
��J��q�\�۳�i����e�~O�e�+�қ����.H�q�%e�M,Ni�,�wLD�&�-�!�sٓ����������ҭ/��F�zf����y�9��
��7��^��9G�Uc�)���
��
+����\�O��-t(?$v*]a)���^����[�_?��i�Pq*��f\ED�sW�א�P�[!�G~�j!|9���5�b��\mc)�,���S��m9���f˦N
+���own���F�]�f�Q�U��QE��Z�ʵ�(ɏ�"�`ؐ���+e��Pt�$��m%�;�^(�ͻ�#���3�_
P�/�6OY�
+�����n'��c{*�
��6�~�6>Մ=XZ�Bs�|�~,�\�kt�n��^5Y

m�s�~����:�T+j�u.(���˦�y�]qʢ;Ы�yAM�-��ϯ�`̗g�9OՓ�K�癫~�w�f�c�	�
*��6�j�
�>s
�7L��?�BVx��>}�	F�?�]����!�\�̈��n6/��u��yn�,t���n��]Q�� E�
+�¢H����*�T�qI��p�[
�����r�aE*>2����Lا�5�Q
+���l�
Z�+ꥎ^��ɳ�5�(kt^R�w
��@Q_4���n
�,���3抻���3���!:�~嶒+iU�D/O;�o,���.�y3�m
7UVl]ZLx����E��ӗt�w���]�W뒡F2AP9(�)'.9)M2���H�l�v���A�N�%f�ᜄ��;EB�y�L6�U[���x�ڸ;zz�}�o=y��^��a"�W\~�_l�N�-���
�Sj�~�P�AhC�7�ѰR9k9�2���-�!�U�D"l�E̞�,Q���9|�9��RlOp����d�Kd��dg+"�n��
's>��F=�V���ߴ�H�w�Z����h���-M�OE(1V�ۭ�yV�+ݿ�5Fy���d�t�Z!�y�I�R���;�jl�xYx�q�¥G,���l5�d�,J�~�
�F	a�>���BS�L�]�
��|x��C��fᕋx��i'y�x����y�G��L���Z�[�lx����&W`[�M�~�
+9�f31_�s���	����ӵ�eC��
~�5�)&�:�\؜��?)J$*�7*r�(>�S}$�y���{����
+?ۅ6���S�
�� ��_�P,0(�د��b.w�F��Ty پ��m�tI�
}F�f.5�
mf,<�:�l7
4��ig�*�n9Ŷ�ܹG�����2E����

ޙ,l�+"���DJ
��d��!�+��?|��˙���d���`~����\)�=�7�����F�����n q�m�e5榈e�Ӛ�����A���M�
���o�Z�s�b	ΐ�*4��P��df��4Sh!�LVR�?(u� �ږ�n)�U@��{Oqf)�}@�� ):�F��o̷30\`	�7l�j�$����P�JZȞ�=���'����+��a��#��큍��M[�R&�ċ�"�r
+������� JB�)
+�[P�Ħ�� ������P���
�8��,��{��V��'��ȏI��Y;C�V������W��Y����$�ڌ꣚�ᏼ/@�kP�f� �tum7RLC@��nh�X�h�R
�6TЅ�h�˧X�m׀αP���N4�o�X8����k����c�9�U
��?�7��FL((�
u�m,���eYG��R�"�a�w �k�Lf_O�n������c�؝`��-`B���R���g&���P̴8 L��Sl����
�
�.`��0-�L�5�h�&-�� -<�oЉ�(��n�1�V�1�����.2b.azWŸQ;C֍&`N|��\�F��b2l�5�^vn%�݇g�>/��
+8- ��v�n
p3M���찀K;�I��W�%�w�Q+p�T���
m��+�
��}do|=���vI�w�uz�)2�zh�Pƀ�O���<��c� 7��E\o=���x)�7�R���0ݶ����:�x�
�S
?@ }��H�N��s��'Q�z����Rq�~���J�dzbO�De��n��"�[�@�����'��=�_�	�{���u�@�@H�/ �!��M�'�� q��	��nی�����Y �fH�K�:��'��96_I]o���
G7�J�M� )���n��L�Dڍ��!}r;�ݶ_9rѿ�_H��������NѺd�����^���*�����5|���$�3�VXK��
+E��b�#Q�ʃ�٧
2録���6����
���"�W��
ҟ���J�+�����o��� c��^��	�Up��Ԣ���tZ�rZ�ā�,��z!�
�
�Q
:�8@�f!�yb�|Z����$�W��m�'�\y3��#B�����/ox���Ra��gɬƻ�8���:ɱ��u�
�0$�?�f��],6�d�6���
+����y���l��#�6��
+�q៌��u�����[W-�!
}G�/�����%�^΅���)���Y����`��A�P�3Jr>ڮui�Ir�ن�"�uE�kaA
V!A^��
+�\j{Z
��2?��c��
�
+��G�W�ϗ�?�c�]-�ͫ���[1�s㑿
��t�G���s�/1�I̦�f����i}����<��y$���_}���¼��W/��5��?��p4���":\	;�:>���X>
�QO�����s���
+��'f@�
��s�-�u�Y<��p�idfs(D�3��_b|�<&�{�L����M��C&!���̎z�Ai�2|�ch�?��3����V�����
���骇�
��'��R���I�A�&:��e���(~Ǹ�7��J�7�9���rѡ�q���4��v�ᳵ�
�2

"
���uO��?��/\p���׵���g7 H�I*Y�Scx<<4x:l
+y�}+f;Tf�֭i��=j
Ӵ8���?N#��a�!ƃ?������kw�^����ksƏCr�
>
��Ɠ��P�v,�;I�fujU
5�
+G��%�ۺu�A��iQ�9����2���D�4��{�AҸ��b�]��5V[7���)��n��U�
++IG]Vj���ϝUa_z�|��z���p(B����k'�{��9m�ӎ���vW�������α
���ثut�rj�R�P÷�ru]�Ԫ�lU��S���a��ܧAS�@x��rh9��m��J��],騕�A��5}�t7�O"�)VZ�������䳓  �
z���nu$j8�:������㫤��S%�v�LpQ<�hڽ��}V(�oJ.�Ƃ^�٦�?c����[�-�Z+F�vXt�ոW�˂�Igo�j@�/]9��
w�]70�W70<ł�b6�
�d��!lgw+~�o�>Գ$9�V��R��;�a���]P����Գ•��
���D�bT�
E߀B
l��G��{1ޢ
�/�9�q�)�~P��
+�sXCs�V/���;���
.2�����VF#`++�JA�޷��J���@��U��	NA��?Jq��\�
�fz^��==
�N��&Co	�b��+wý.�z]�;{��
+�8�uZX�t�cK�/��f������p9gpzh�����񓕁|Ȝķ�N6��n��7���O���hP��
A>`
T/��Y}e�"*r�B�>�z�,z���&a���1���3pZ]ij_����,*��V��%� &ϜQ���lQk�xSVnȈ�H���T<c���Fv��$z�>:9�Xm[�|��#���V5,��P]�[�V��&���s7X�Co�&�M3߄��i/��#EǑ6
�V�n�զ��=+wL>7��>=������(�����LD/�6���AzĴ�=74�&Kj��U�8.��Ǻ)���T�J�Q��x�Ƚ�#���Gm�bF	�"����ݹl�A^,��vo�(���k}
+�����:gAй`�غd��`��e���{�H�t!ֶ/{�U���z ��
�T�{C���C)��T�[i����ѐ�q%����,Y|=+~�t��s"	��M�\5H�$�4c��7��'�}a�q�� zv�3�9P�����:&Ŧ�s���K��NM=Oc^Y=4æ*\Žr�ģD	�癢 ���ν{Y���i�7�	��?E1:9�iv�"�##aF������6���Ck�O�w��/B%t��
?�
��~���N�}��rR�f�U�(A7G���զ@V�(a)���V��ɽ=
�z�kJ/A�JV�%��f�
nDg�>�pz
+3AA��?�t�:_b�2O<VCn3Tw\�Ze�J��r
t�J`S$n
2���2��J���c��'��dֱ�w�(�ZQg���qWEW.�eZ�������}bI#c�H`<)�yh3o�
+خ#`'x�/�ܜ/��"�ޕ�$�t u��������g��r��dž9�i'�z�"�z�i
Ü
t���a�z4�Қ
+��,f��m����ܘ�w��`U�+w���b+��]�
�.J��*����	�D2�,'9|�%xR�W�J7��A8���8�z��{[�
�ub�Q�fN�
δ)Qb�[���>�]c��5\zQ����
�]���uBk������i�U
��G����kzQz�LK�� �݊�Ϟ�euK6�U���0��
`�=d�
^5�J<,v_y�l�͖�S��1m�StƌL��u
�t��?hM��}	?5X:e��&���
r|{<��}̑����gmC~�σ�p��k�/����c^��
��؜Oն���@���'��%e�#U(ڤ���mz�q��Jd��ʜ
���S����"�]?*�SEZ)�5xTbʜ/�S|]�H���}�$ԅ-"v�:�axL���_�e
+_�O�n��
��
8�����n�~˟3�*7�cc�2m��+V��s�������p	{�ك5`�s�e�[#}�g�j��)[�gVΓQ}\&
~���$tzt�8̎	�ɯ
�
�������J�DZ�f�:��E�
��K�v?��V^�66�l0�.�������-�tqn�mi�����Qì
�C�牱����S��p/0a��ҺIQ����)��e)�H[���n_��*���!N�N�l�zϲ���c�r�թk�ӿk�a��^B���mY�1�G�L#���N�
C�
�Q~�
�K���
�i��K��W�Vze*���¢��$1T�BlE��(s+%bV��x)������f+՛�힟<VQ%��i��
zʬ�h+A��T��Rl1�sʊ)F����=�P�?Y~��Qk���EԺ���Xv�V�s����iQ��
_<�_��{�U��wV�\�Dh<
�2������Ӱ'�m+�Q�m�y�n�7�
�X-Lэ��a����6�bz_�,4�6d�vf:֗�>�3�ғ2��4�L���lG��_��NVV�g:������mJ�P�A���{ܮ<�1��Q��T&���2vc���G��E�CzDO��L���fB��Ѕ"a]��󭑉U���3Π������
�M1��~�� ��Y�8}iV >(7>�.R�X�z�{cS�bM�H}�5�6%�p��R`[�Ȧ�-i��0U��Δ�l�#��q��5�"lu����0��NX),/E����DC���&�hf���I@�� Z�: Ү
!�D�H���Z�p������쌗5[v���T5��\��Vġ��k�H?��<i|_;c=�em
HF��B��f(g
+�@���)

�N�X� YA�y'+f?�x�j搢�I�` �kـ���
 =����O�� ���)*�oډY�v�I�ϔ��%{w�D)���L�#�t�\j�
�5�cuhJ
�Lv*���t��~��[P^�o���v5�N 5��)Z�oP� ��)��k?Qw�.�Mq�U�U�_�*D��V���;M��B������f�O�NE'8 Jh���*��j���Iہܑi� 9��z�~=�4˺)L�Z�
+�jz���
�:�, }�����؂i-ET�S
�\ �ڲ�>Ջ�>[@o,(�Y�p�v�8����,D��sbU��9:j+��gЯ�ZC-Ñ�)e�q�>�b0�A	0�* L�ZLi f�v ��
�8���}	X�7����
�C�~��O��b�cd�b�lؒ�qꀭ��􇽩i���n�Q���g31����g�^V8r!�W~u8��[`�Fj�(���B�z���r ���?����.o- ��%��$'�]��I|�@�m�)�%���������~�5;ݪ���7�������K��³�D˄yBȒ\t��l
:D�Qj�a� �@u7��
ME��FK�+��^���f�O�Cm��
ǀpwi ���$^�M1k����X=߀X�1@��K@,�3 Z�b" 1�T��̈�n�������Dy/~���5
�
+F���}�Ϡ~�GJ�
+�_��w�����"�����7�7���m�e
�
Wr���<�w)>0��S
��R�#=r�y�6�
�U����)ν�Y���^�1��
�ן�WOd�#
���Y������
�+ݾU��r������h����f,��Ů�'��������%�k��&#܌�0#�m< ���O� 
_�>�<
���$O������u�~����}o�{�],�3;4�Izq[j\g7l\��Ml�[���_�jpg�
���P��?���f}�~�����
���	v]s�R���s�YPOg���Z������'
i
l�a��a'f}-���*ĩpy
�޲G��ų�N�]�#Y�Ρ�v��/��;�k"1>��i�~�IR��'5�t���l�_kd5�
�a��u5��
�!7�
4��*�M�0�o���e݄��J^V�_u�����S�X%�:��7�1��,��԰w~®�bԤ�_�*R�G�3�I�x���C��9
>�Gf�dr� ��F?.@���~�{Y���J����z��n���Ms%����S�*3�{����N�
4�$.5�>�
��s?������>߇���D�
���w��8���^�N����,w�%����u�jP�m/l��y(\�k�܃�vhd�m�݊�I]��k]=j1;YrHy�����T���}��gs.~�@���w?[��F�z�=�.�:�;I�
u���M���{�>�3��|˜Z�^���^��
iH�ʸT�3
ȿ�(�w�q)[�{d}T[T_�ڢNH5�_����7�au�ϋq�q���с}�>�k���Ԉ�

+�>h�B:���
��)�t/-�A[M�����L��@��^�k�ѕҭ��8��
UΚW�c��Ԥ�\a��'h�0/O)���PV �[���S�6{
�ۼ�� �^��~�=�1>�	鱣2=|z8�M�[�-7kD9rU���M
]d5� ��u��T��*I�&+���CX�������~�,�F��A��{P(���C����]�����g%��U:�d<��
+詟/�g��-:�+œ�]V�bK����vӶ��ҩ�,
W�����չUIjQ4�گ
���n�xS����?'�o!�W� P1�1�m`�W��1�P@�����nz�9��@i.u_��d�O�ڒ��{�%�i�5��S�������>//�ё�=����

��J�j
{�NY�Ւ^�}
6JŨ`T���h<*������|�>���h�R�R��9�t7�|M;����9M�u�L���SI�4g�n�N!�����r�5�����a�s
J��4h�Q�n��y��c��g���t(Y�{��,��ݡ�����^*y�������q�Ϫ�R6�����
r�>Z�>Gn���8w�U�\��^���8���������ò
*cF3!k:�*o���0�(��S��K������ЉƋ�6ֺ�mJ�)3��go���X�Ε�����m���i]��(� ��ws�ԁt�
+?M��:��ݳsz���X���2'ҹk�!tl�13O^��7�c㢗��S'3	�mb��NS��qPP��l��('�4WZ���H��H���HM{�b{N�w������]qZXb�?�j`�Ķ��>�5.������9Ŝ
E�D�sh�J���˧
襡��I��Ѷ�7�*�x��d������7�r��"Mj�|�
$Y=��h6� ���{Z:��$ıw/���!�
�$��������L�z���Ϙ�x���v,S�Y��7c;6��I.�8������$mk��Y�,�AO\��mJʩ~�)��Ғ�!ܗ��8�5�Y� Ҡ��$��n��t�D��h���0�C��6#~�y���|qZ��b���I����1�Op
�ۢ�
���{�ʽ���� 0/���dr5v^a�ƙ$T�!���
+���Ȳfg
�	�4�s���rq|��D�5ꋐ��1��#���_|��� ޘ���
+�
�C��M��-[3�
[��������$Erlx��]�E�M��#���ք�����sڎ�T�9�JJ�|�m��v
d��4g�Ou����+��~lM
�[G@'�"�p�*�R�[7�X�G�e��-vgk�<�r�F`���1�e�aIJ��/���}���c֣/��a�jx�t�Lg~k�Z{�$~���X,�.ʩ�*�*ʺ��z?CI��8+FS
�F!Ӽ_8n��ӣӰ
���|�%��j,W�t�#ç�%�|T֌8���OB���3Խs����5)�y���e�I�V�D�օ�J���[־�㕇[��q��s�_7�k���K5K�4��l�y>���hK�p�F�	A<�P.�?Ivg�i��y��eF�?}�
.���2���M���~��)C���}�&Gs�"sŎIf�NL.��!&W�A�{(O��d���7
2�`�J�|݊��t.�oM���������z���7��+�0�v	~9P��3l�f��)���-$�N�Ǥ������h�QF�f�o
+-���Y's�j��xۘ�f��ȟJOioq|��^��U<;�&�U�yɮ�5�]��
<;.�x�K�\
+�.,~�!_z朹ִ���.*�����b~���Z%��E�&&F�Z�
�2�N�[Nzt�Gf��LL��"\4��?���
�E�<�Ap<��dW1y˖�*�����mO�2V
�q��cՀ�X�QŪ=i�m���k���36Ͻk���*Ϋ_�[~
iS���P�\Yn�DzW�Bw�A�Ԩ79
a"�,�� =:O���C]�q�ӳk�t��ͺ��*�&����>K�
���!'�h�\Ih�*�P!y�Pa�$9�v��$Ea�O��?U�7?D�F�*��+��/CD�9�ys,ᒌl$(5H�
9~�½�?��\�l �Xn��9/
�LAs�JQ+��Ƣ��§����@�N���S
+B�+�w�,��
��X���}Ga�y��d>�oWfU,f���hN��6�~�i��W����!�9��>�,+T4����t
"<	8�D/,��3�Qa�8)v,��
%��&���A%ź�U*�A`�Q�A#s��r�� 0�2Wje��n��G�;�}331�0�x�����КkV
+ճ�������ZV�?Ҽ��)ʢ",�+㣃�����|�c4��N����l���r����H�F�F�r��
ex��LNV#����C�%��s�!
+�EMK񮃬՟�l���ij������AV)Fߘ�
�'"�&f�J�F˒CXyaQߘ\�cd��r�
�)҉c
/�:�eP ���,�t���T�ȸz�ףX��
�3io�gZF��p�����N=� �˷
�L7�Tm
��
Ⱦ��~����7���KDZ&*ۖ<�>˿)4��ק��
1R��H���Z`�,�Y��g�SÐn�IǸ�d!{5!�Bϓ 4��
�Ǚ��e�$�)��@N�����WO>�
 �����\-�_G!�k
�
��:;� >�F _�w�蓬
�:�Jڒ��
D�by_O:����"Q��\�*E4zz:䯞
h
�a��3
z� ��gQۈ��T@�	3��.���t ���)�;@
�O�9�c��	�b�> b
�o5��.	������v�J;�#�Ȏ�R����o�ַ�w7k�d�+H@��5��![��̌HhD R�s�th��c 2��~��(r���y���A��P�b
+J�
+���Y繦��u�#�(r�AE1a�Y�	�r��k?k��3V_����@U�=j�	�_��}������s�m��Sk�?��T�l��?��&�~P��T���q�1��*��Tx�+`+�"�o��x.	���虀i�o
+s	0~�
+���,
���u��X�!`
e�Kz
o�f�
+ؒ�6} �lU�2�:`��	��AM�����=W�c�'�����Nl�v�U�8��_��l�X���
���Ϝ}3��X��T
����q�Ǩ����=�U
+�M'
��=�I��
<����r���]��P�*|� �
f wv�[�ׯsx�K�k`���(3��Mm���b�)���U��J,!Q�Q�֓��Ĥ�9W�-����m���q�6\��N<������л=~��К"��,\ "�)��o�Ò��-ac.�0�^�\-���4�,�љ0
��'ku���M3�_��nB�]��	��S�_3po��
l��q 	o�@2|HC��s�
�̻_n�Y; �  �ց�m��t+���'0 ͗��
���б��ȣ\1��ڥ>F��6�v���i�[�o!I�D���ʷ#�,��9	�M�i����N�����Z�F3��
���
�&IU:�J
'@��PV���ų�oݹpZ=�ep��,�E��h���?��{b~qvRH��
��
'�6��������],���6q��MN��M��S���S,#����S<~�s�}�Ɓ>�Y@�}���&�I2�N{E9?�������ܠ�\�Ν
��[�4�yk~I���o��9{Fv'O��Z����{r�3�?}���ު�)�pgi=�
�U���U�����g-����:�+�[�f��A�ߴ�V�u6��-�v�z }�Z
����O�k���I�Av�n��3y�:څ�X�ʫ�mTWه\_z)��̇��[[��#��r᢭c�B��g���f���'b˞��r���$��=�،^����?�
�
?�
z������ތ��|c�	J��&�����y�XzZ��?z�pa
�

�����h򛿊	�.�(��E��
K��:i��c�*�ff�9�g���AV���]䮈��X�������s���O�J�����޿�U�Zl�訰�W����b�����L��
?���kS�D}�W���
��(>
�����]�t��%�3��Wg_P�?�x�%�l��U����Y�A�Wn�>�~kl[�����ڌ�X�9+-���]M���x�����f%���l⿡�u��
Ho@�]ܓz��.իӡ�m�B��
+܎z�~k't4�k������M�7Mx�
�_�k7�Kl
��k���`�z�VjU�����腺���u�����$��O���[b���>�n�;]q�š�s�|�/�Y�4��$��E4
����eH��H��jD���h�zl��*G
�ߣ+nKW��H�T�fn�ăY�+��.�ϒE�X1�
��ʖ�6w[m#b��,҉����Lx��������ϓ��z5�	�պ�O\��/~P��D��m �*]��WԷ�.2T6 +��6Y��[��u�8+u�"�o�
+^u�-8ܱ講��S��~~��zyW_]r�1��VS�	�.���}�	��b��$q
I�큚�����Z��;����%�9�8+d�Ex�i�JuXp��<���Y�O�$</�]�~�:T��+�H�;h$ǿ	��'
+k�299{[��l7?w2��R�
��$c���
+�����l�ێ5nN|k��DF��u�+�P�p�oOayRj��Q��bqe9뾤9�ϧ��
��=2��_̗���v��wl)�ygo��4�!
/,G�̠�8d
b�[����ƕ�۲X1g
5����X��^g�I;ZKc���X�g�d6�dY�Q�䧱<��e�{�
+����غ�'6,A��ۯ|��R�v�ީ�{���
++eQ~Ќ�V��,k\�
ˢ�9�Y5��Km������ӎ<[���nc�{��A��[j7f�)�rp�8�z=ft+64�Xh�rᦵ*"��j-W�Dz�i�*����ޣN�^�rzQ�8�t��`�̫0ӬI@	ğXsޚ�B
�rB�1E1�Ei�(��A!;�;��)�1�ƫWV\6����ׅ�}�]��Z'm��
��v?�H�f�V���
��U�Wm*���E�XSR�d�ey��F�2^�&�pIL�ż��r��5~Zf^/ش��Rҫ։7��
eЅj�&A�����2N?կ�.\
�v�@�&?>Y��qE��(��㙦�ʰ=�)i岑'
���z�k1HXRR�������
+��ba�?��2���^��2���j��ͩ�ɉ�}n�ښ:Vv����S�W���7��%x�h
�Z��G��E)I�w�Ҫ^��Я�J��1�<�ʙ�ԑ�ܵ*-�OKʭ����2
�poD�w
+�m^�zݖ�C)�5e<乀?r灏q����r�Qu�s������Ci��<?-�2c=�31��2��E��я���SSmR^��[1��[����<�|L��GRZh'��HWE2%I)^%���t�
+��������5w��>��. '�4�^_C���.���[&�K0�
�t�U������]1v���S��l�����P�?ODMcQZ	7
L��H��������fCq�t�H6"T*.0L��k�����X����5'7��*L��1�
�	�
V]B'f@��ʤ�[���E��}�6_���Fћ�&�E��C�6?��Uw�M������	�N� J��dUP����ChG�H\wk/�
b7���v.�J�|?��fx�8i���.xӬz`E&�:3H�l&ze:\Gmz\V'���w4��'5�*$e�8�����(�t���tz�4�Ԋ����i�@�k�Յ~�-_+�
s˦�>��O;�+�<%�%�#bi6��0������������ݐ	1�
L�G=<�G[%?�h@	&5��
+���)$�%�ݐ����x���Mf�"ʰ^%(�4��7���V
+�[L����qJ���������et��Ԕ����2�IqcF��>ko^�b'�gWV�gf����O�Z!5'���oe�\je*��H�{��WT��4�*Q��=">�K|?�_�j�����E;��
+�h��X�c<0Q�U��U촯�JH6����S7	�H�&-Kӥ��dD��
+�"!�G�o��oN~��v��{/�ip��ʙԃ\ΐ'I�ț؜8�(7�$A��&^��28��p�Y��5N�
k�TG3�Z��v���v��U<��[@�宂�_��Zؤ�E���&AK)Qq-u���r�|eō�%N;���j��^���t��/�L��ӑت�k<M8x
?�8�y �\�0��*,&9�������{ǥ���i,�y�j��F��;�
+���7'xԮ���:HJºN���3��NӶZԕ�m)S��H+��	�����qZÜ�1?�0�tf_���"�����������&��/�F�#�sx����cIKH T
������:
f�<�g[(j`Oh&v�q��0
��ix��
O \�l(�u�y1��ff+�$?D�}���,n�
V��$�]
3�Տ̛��wO*�;w���+~�7g�7�x�k/$8�C��8�0<n�Iؒ?<=8
�SJ\HX-o}����
. g4<��8�o
Mo���q*��[���ϔ�"�j��wXPM7e��"
�X��#	N%f3H
S�Y\���}_1������<���`�74����Gf|�Q��� �kd|Lǥ���X�q�g���m��N� |��_� ��0��B,�n�s|�Ҍthh�v��{OK���B��a��
&�T�ߕtv�E�:7
	&2���n��ȳ}
+�ImB�R�N	�W @�x,yN���D���n
b�րh�A,>
�b�6
�㗬��
u�]3�V~2�|�_W����ߕ#!���ؠ�t��Q�)
0�f���!z_
+/�E�/x
+��:
~�-�}#.�	�8 i���� ���cy:��
@�� mf�(�γ�\��c@
+�
�O�d���L�j��M�k?�2+���w�PO:3�F4���8���.J}hm���VgU�
V����>�B�I@^r��mP�F��d �v��������c� e��� (%]�J�/0�
P�X�k�d�;�%�5����*9I
��@*k�k"�!Kҙ��k*���0���<U���bp0�
=�aЎG o���T ��u@��h�� �
뀮�������
�N|Y���tz���^Ӆ -K)@�\�v��{�֑��KyP��{�
+���QE&+B$�R�ŢJ�K�ișN���2�*g/,�����G��a����lFE��R5���]���9`.�C,�`�
+�>
����\�fA�����c����|AfS��R���
F/�d��;���2����$x����.��B
��
yFBp[���O}�i��Ŷ	� �N-� W�l�
6�s���Xpձ�|j8�θr�'%�}��Ն/z$�RK�H��D�^�"�Oo

z�4���Ľڥ�Ǔ���ۿf����0na2�
+Y�e��{�?��1�cŲj��Y��|�`^��QA���@��@�y,��>�fçU�6�y�r\
u��7��ّrJJ�I�%�� ��w�!��aߣ���&��I8"@jH
����Vb9��Hc�҄%���@�l�@�� �
+����|~@/?�6�l]�Y�u�yr���~�.���_C���������V�
��C�
+y�R���sQ�K(o�K�ʧ�R��G�@�]�@�O��

=���� ;#��l�a��-0�E�I]y�
�7
�����o<3�wp�_x��n�]Ӿy	@��%��X�����K�#�3�L;t��%�/�}
�����E�I6B�yE9��E[{�w�l at 6J�{-����z�/A�����w��������Z�L�71�3������c��V��6^;�6���
���j����K3��V2^	���]�.9̮�Oo����O�P���ΐA�xC�|/w�A��
��c|��
؁s��ǵ|���L�]�-lR���6�������ӫ�%6*g�bT�-vv��p��;?�9�m�fұ7�v��v�߷t�
+txl���h���F6R���e�V
�;��S4��wk>�����D�o�⹹6O��j&��KO
͗�`�Y�P�0�cE�����}��`4��$uc�qؕ�����,�R��G�^V�_�c�w��g�~�.���߮=�R�
��0��t��u��i�6���ە�!fY�\����Ze/]c��|�j2��x,�QԻfFQ_,����bs�= ��^�%>�ޱ����c�m	�UW�<���r=��
���ϣ�zsQk�Q�f�(�M
��(5�CzP_מ�zId�:y��SWk��5{m���
$�6���g�_GDׯ��]�\w�R騷
�����^��������%ۄ�S��9�����[_���z�~�k�ڻ_s|R=�)�ZW����ݻ+�s�ҵ��Z��A�Ly����~����Y)d&�W��u$�&��^����S]6m05�UmV'wy���M,�s�9
�������Ԑp�'�T�F�W�&��H-0f�B�ϖ,�w���t�6�o��h\p���Y��SR��C���
.��^��ȗq�W�_�9�ɝ[c�Iʫ�̬��m�-�I������؞�J����}Z�V�h���4��򭀝���n��$�a��6�V�4�=>w
,�
�ޛ�?E��
k���ϳ
�3���d.��
��YfP�ߙ���E��'���f�m)H��D�h��t;��Q�!}�̻�d登�䎽l%�~+W��
�ڎ햹��Rt^eo��.۵_Ǭ���̠=2I��p�B��[���ԗ�Y�1�WM{�a��H;:uNc�9���q.����4�Ii']���Mx�
���V+���RM�su���V���)`��H�A��d

I�r�pc�q�T�A-����Y��6m��3a0J{-o�v��*�݃���cW�
�Wj7���k�x�8�z=���v��޾i�Vg5Wji�
[������wSc�X��!���ߴl�)�a�,�o�EĴ���"�/:�� �Xwi�(ib� ��Lj7��Sn�\J1�FU?N{M����tޏ�
ֹx�L {���nj�҃��xb�AðC�5C*.C [...]
�*��?,�-_�
ϭ�w.	N�S7�Z�_?(���y43(ӗ��G�~�N)z�Cr��YUjڬ����(�72��0���5�خzD�bDDѕ��j���`�Գo�Wɂ;��ן\݈�(łRp< �B�\2w���}������z�/Y�
n��i~`R��D���+m���	�j�}�sS�i
+s2���L2?��k1��6�f
�l>�3�(�XÙy�Ŏyq�
S�;w
g��r�N��m�ĂqZ�W=A5�)�)׳N(0�����򉽵�]|���~�
��G��ܒ6��-5��{
+v�#�߈>��
�XF�Xg�$Q�Q� ���wW�9�k<�8�1��q�;cu7
d�W1�k�����xe�j�^h�<WQk�X�L��Ҕ��l6e|Y��v9a�̿�z�v�d�91��c
v��-"��l��^
Z�؛�%�'(=���n��q����,�D�c�e����b�M9�	�e
���m�#*�(OF�f��t����
�Am	��T>_OoZ�
��8��u3|���C5<��'�
�ŵޕ�J�1����
+�eW�x����ri5���v������G��wLX�!z)ea�-��X

+*?�
r_��'
��_��k��Y��a���4s��i�Ӈ�g�
��\�=l�ɵ:����j>Հ�:du^F�E\�f;�
[�����+3쑞 �
5'��s�Ă�և�ާs��[���y�Cۣ�	U��y ���<@�\��_�H���kN��b�(���)x/�̢t� P`�2 7e� �
�������\/���A�a�3&��S��L
+'��k�}�#��D���Ï4nv�RX��ī�C\�|�Wn�A
���o�<Ҧ�N?��3||�������
���<��z&��o2�4Ԯ �/@/q����t�9 t�r�
��w����o'�ty>y�b��c_��hF��̰U�ғ�p�r�͞$��?��
+k�s\c��BU�_��El��b����`��+��бT���<���
����`5������6�
+��̴0+'��.X�޵�:�׶��NTi
�?Vo���E�dҥ�����A{�
v�p�����?kT�=6Hj�9B3mz^�yصr�gz���X�c�T8����)�ˤ
pZXƲ~ �qY�#��c
��$����KH���Dq��
��U2��"nS#�?����_t�^����Jvs�y�z��vz��z������G�
G'��7�w���o�$|�� ~�S��E���K�
�
��R_�J� ���_c�,|����C���̓c�8�Ŋ�¬��s���8������������+�{�޽3�r'����\z��\
������ �
�ڄ �[ဘX@,t5�^6�w�3�����e��)��pњ� Q.E��ts���QJJ�e%�(K*vt�/�fBƅi�~Hr�>q�E�\~���O��+����{�u�K���' A�Hj
2�,�
 'U	��}�[�K�K0�,{�%� 9變�gꀬ�;@:O��[
��Ջg�:()p�$�o�oMyv@�zVwQ��{�
�ߘ��/��
6X��w@��H�C��! � �F�����6�8��<y�� �tr��\@��~,��Ώ���
a�r�x�=�[� U-� �/�T���2�|gDW��~o��>)�����ו�2[�ȨP �"@>��
�9
P���G�Y�����z暀�y9��Q0�J'��
0z�0LV��
��
[ ��
��@U at o)_�����~�6D�y�*"U��X�;�iL�X1O{
r�e�OII5��Óo���/�v�ŸA��T l�Sl���m��1�-�X�8���T���.`������Glg��;>+9,��g��w�}ѴA�ɑF�&��i���C
6��?E���_��/+�
�
K�E�7᷿���o�_�, ���@�;R�+ A`r@�W=�_3��8�{$��z
�Z�!���*����o~�LӘvdt$�
+tP1
%97���I�DRJRE��Z�X�7�!q�&��;�����?M|Hü ���R3� R��%��5�D�`���y�S���D�g��[i{��
2��9��̟�������ѿ.��/�����ڨ������J	(�F(P��5�6��(�
�n3^�T3#��;P�%���o6G<���U$��U�oo+B/��m� �O��v�7}7���E�_��odB���7$Q	������1��G�[�
+���4�t�@[�(ІQ�?$�]�_�(��G��`�� 
��G�d~�[3\�.A�Z��d�rΞ��	k?�]j���fk��򝝴����Nn�4]�E�[�Tr�����&f葋�p��2��Ry���~.�&�
���v�����ĺ���^�i�t�:y\x8o����׾���mo#�1ϡ���/��3�?
f��N�/��FҼ���9���=����4?U�Ue��������1����}�gr�.m*��;&�u�
�O�O�BO�'
4���6�A�O��N�Wp{��֩n�#�w��=?�v�Y�
O���MRWg=
��~
��(��.C/c�G���`�7�r����R�3�*۫s=���չu���9ص
`��q�SoY�$&�\���L���
[I���^�d�&o�*�(��
�`���XBqPB����K��
+����X�+]�گ�5�E�v��Z�(��_��״Ql���ᐩG}�P�<yl�#�z���?���
+q��7
(��&ͧ����
v꼙l�O����'���|��ު����.���L�ڴ�a�5^��d}]:0urj��U�1�^=6����]��rܖ�]�E�+]�딃�2*��.���߅ř[�6�v����,xm����*8J^���?��
K�S\���Xc�݆뷍�+=�^��������5����v�g'���m��ݛ(xU�)8
%���:%IK;䭔ϻZ����O��������a�r$m��ٱe\�m9
�I6�'�;9�	��
�n�����x]���M�(`�f�Y�F��O��o�_:z�z�(�����ܱ�-s�����a�h����nY�-�F���GPVC�x&X���A~4+��9��zM3�9ku玲Ȍ	��	?
��wT[��W�c�9�V�%'��E1j��
�
+�-}X>�ͲrV�-��^Ɏe\�
�[��kZ��kY�?4������
i
�&�C�Q�k{�Cc�c
��n›)73��XX\�Go���F���`�םs"�T�/�o1�V~�<J��~�ϱ� _F�q��̙{�L��`i��"I�#�B��J,����V�FIk;�ݰZL�鶛b>Æ~�.�z={��^h���i��sSo�n��ʓQ5�1��4�A��R�<�
�Ò2��3%�VɵX
��E�t�����-Xֺ����2J��+�[<n)7u}���5���#��s�H(Ok���k2f��m���n�b�մ�`?**��*��mK
7_Cْťݫgi�;}$;��$8<٢7q��7e��7�ʢ7�kLB�dT�w�"�
��
uk�xs�x��8���.�G����U������Y	��ET›b0Q �'�
��ㆅ˖hSҬc�����Y�uM�cKt��#b�&��RO(ek
���g~�4!�-�e�%
%���x�N�o�eH+�~��CVӡ魝y�-%�U*U�G8�}!�Tyq��
 [...]
+�q~7�0��ۈ<�>S�q��z�v9��X� �~P��o>X��(�v�����
?2�;��2˖&kP�5�y˚2�dTP�L��Wo��37�"去�X�8[a
�k�\C6B�;�]���N�u'�L�\}��qBa�d/b<�m���g:������h�w�~6�=4=�N�F��
AM�ˣAY�ƚ�>m��nH<�)�Z�b+{�4��[Hq�����G�6k	=��¶���C
�xn�\p�[;��pʼnZc�^��5�.��}��^6sft�z���^H���5m<H��!j��T�2)P������� s�ەXFKd�y�FynI��1�����2��1/��.�L�_oi�3��v3��|-Om�����k�<c��8a�"1e��g��
ԣ_�gI�k�5��?{j�}*3Q
��}�������+�����'�ɤ�o��
���K�;4
���V�Ru��]W�?�X�.+��)X��X7��jj}����6�s�L��5G�5��L��M���5�Mz;�����ʄ��JA�Ό\ȵ9�Λ+b��"��	bu
�m<��9K��/c��+���z����6�{mvJ*���J�h�\�M�J�(����Z0�j�ڹ�&�[��K��5A��M����)7�GWtBE�vH�X�O�-�G�w�Gur�o�����gHi�
v�VskW��=��3��0��h^D����6}��J�� �e�=҅��zl��0���QGp?RB8������&�j��VƊ	Kخ����µx���<�+鰐�SQ�3��|@b��%�s���3�[�m�C��S�W#m>�-�B�TZv�ȭ�#ȭɳH�l�5:�`�t`�������~�ƭ=Y�a���A�
t�l�^ɥ�	�h]���Y��Ē��4��n��32\��G�S��yL���(���B-�`�±�������c|�0�
�
��m�D�#
|�x0�D�Q�QЛed�j�H�`�����n �Ui���l,�
@�E�=�Hg�3�5��S�G��	�r|1C�ې����	�Ǎ꒚u�9�նcbݪ
����3�b�B�C[S���h��
��s�] [...]
+��>��y�~�da� �aC�
^�O�`��M	�IV�™Jj��`�������N�0!(*?�Y��a��G[�[�w���h�/��(��/
@��&�
PAz��Bc	��Y
��G
�fuP�z�r�T ʘ����(����gt�9�c�HuQb�N\���~�٧�"� ��0��}~�5Pi�^�q�
+I�]
��G8N�k
��f �w�c/֫X�=@=�K%>��' z��X�_���7�y�B��膊�MP�t� �l��u�B�T�ݲ(#��
+Uv%fof(gz����}��I|�.�}i1�N����S#T)Jq�32�qL����
�� �o+�e�
�*Y?�N� �e�;�1�����m��@���,�S�VPk K� �>��K>�P��>邸Y��a�4e�4X���S�4y���_Gwo:G�sm��Hs
+E���M� �����
`��	���
�#�$����X�)���b,�
�{
p� ��4�#�/���`a��Ũh�2��� ��o=���*׸�-\���]ax�PU�.�P�-����G�� '����
�
�o�$|�� |��k|q! �
+
˂��#��ebٸ�� ��D	x� �}� �o� _,y�{~;���
+�3����£�y�nO�ZW�؞Nx�)�1���~���y�@��\�E�^\Me
�g
�pD�����W����7��CRQ�Xz,�o��M at 2�
����1@���7�C@\�; ���Y~�$|��ԊK��	zK�7�:[w���/	�F�L�
O0���*���Ȏ?P���z�k\O�H��di�%���ƋN
+o�r.�BP�R9�(3���� �\��p9 at 1`
+(������L��5��t[�t�3d�������z�N�yN�w8Sk� у�JJ�rk���ą@������'�4��h[Kz���v+�� 
�~�G@��=N��Rtc�t��ʚ���
��6RB-<�l0bh�v���.񧏵]��������ҝ%Пz�<�%'���|�c�?�T*��i�
���
`��
���
X�����~.�� vؠ ��M��`���J�,L��gE,M�VR�M��u�� �����l�s�������
��<9���]�h�l���Ep���
o3=��O_jk
 �����uW��)���>ۈ_�2�Q��u��� 
&�AWj\1#��
�b!���9��^���-�	"��%����������mx�m���(����Z{)
���e ��<��BH ?q���Xs��������F�Ƥ���S^E�|�B+���Ծg,�K��}�ITBRC�ސ��_��
nHreb����5�&���N%<�nۋ��f�J'����@��5 �� �����?�
���p�����~9wRWBmCrRMRH������?����n����IKܶ߀�_���-��1}�Z��?�n�Y�+��a
4/x m8`�dw|�	�%��}��3��4��	����ܝk()L\���q�=���}`�dn��Bg'-�ŭ���7f\]��z}���t�K�%6v&^	�W

��ur
�Z
BOo�nv���$
+6a�I���
�KB���5!��Χ���_��q-Y�}�}�g���v-?n�8r]���}�i�W�Я�
C��1A�}�ZT at LoU���g��
��8��66��5��paϤ�[�ǃ���]��~�ޱ�z�
Yu��s��ІW�
whR�?���f@��e��i
f6���rb�Z��*sg�e.��@8���c�
e��p�Y�I�-����ƪ�+�7}fW���n���O�[�%V��[�u�`���Ah�S�jYp�ڜ9�i�֟
��

����A�
�'�rC��~����o��/����Wl�g�����ןX�h�?hlׯ9r�+�Z{�SF\3����m7g6Rh�KPnx����H���P�:y��?hmW��5�bo�u�~q��:r�7�U��z���|�
,+p�Z�t6ٿ�0Ѥ�W�#+).A�	M\��uQ
�Kdq�=��_��?�r�՘��U�����;7ĕ��]Q�7�
L1��Ed���-F�P���Z>Tz�x���
}uJJuȀN�����]���L4�������m��2��2�[�/Z��&��h����^��Ќe؏�2+�����N�$��rv����u�3��'w
�P�npx���;�
�-CC+�͟�Y
��Ay���Y�1JYṱ�B_����I��`���I�4���Y��r%�xXIph��D�vu��
�cYgc	�v��k�یoe����j�9�

+�$c��
+���5�����/�>
+�
V8��d��d�4�r�zHw�Rz�5�(�v��-�X��Dr�Kc��:�9��j&X�1+\+�eQ(dΪ(�=
+GS��\,)�aʄ�s+�H;�ݖc��W��v����N�F��rMj�b"m��mk�
H����
�������Vo�TG�V_�/
�}XU���m
7�$�t9�sI����Bƕ��VG�=����S����b�����
ǟ��Z��x,YF�������u��;)M���z[/r�FM
J�ߺʠ�h)O����,�qkx�-����G��f$/��x ���]��WN���(��/�.8tV�e�b~P
P4l����~
WW�U��my۪�m�`{<*����CBÇb��;��

�-�"���Ҭ㊒��T	f��
�y�1"�������\(e�'�B���-2�e�-
�-ޭt*�n�h��˳�P�޵%el
++�7�O���/�;�

c)�.�\�����`��������#�Xؓ褄����CX��P(Yv$P���y���ܜ�Y�r�5��zI+q�j���6g[�x�#�7���~��]�xcn7����%���RD��m�ρl�*���j��棻<�G)�Էb<��27��{37�wQz»6=�Y��Ţx�q���zA�r�9������l�R��2���q3���d4����K�tiCsWT���T��xj<���DYP�i��ˆ5�2=�d�SC46/��'�G٫�󼃰��_]��\c��h;�EE��[_���9眳 Qr6�����՟��jW�����J�cH���a�s_�m.g�Q&��o�\�Ѐ�2��fX.K�
-f�&g��3�V>dZ��%���niN��h�JCq�
AR�~���ȁK���9�(6�TT��T��Tt�'\)?�.�N��@���9�5:}�W�d�RJ�}au��|����.��6p���3f���i�t:��t�������4��s))��R�sY2=�`
��j [...]
�����E�
?�=0N��؛����2�
,FD��;q{w�3Ǣ��ʼ��Zy.s�5:�>.�tO�n��n
O
E��%R|"��N����B'�=A�p���CO̗�s"�[x�%F�{6_��V<?�-�s��CЃ}B�#� �q�D_!�6�#��(֧�S�
汙��Y�ػ�
�0O.�!=G
&b��v駼&�Q.�������:�L�$�0K[,17gX"��b�c��Y��B������h서K�+�>�R.9�$���v��
&�I��w��vE�\k1:3���lY�5N�g��lk�̹�z��eY����|s̗ˆ���=1���]�_��Q%�%�9e�0Q&�Ș`�w\
��:V���Lz���`�`�"���
��aWL /&�� ���d즸��v��f�ģw��GY�D;
�=/��%�
g�~�Ui���T�E��x���r��#���y$�|Z�i:%�M"��.0p�l�� �U6ș�m��#XÎc01�q��I�39v��y 0`��S�9zxQ��Ţ
|[�^U0����37���L.�i�X�:�b]�b:�Z�r��ʫ���س�Bq����/��;���T
\b���
M,&
?�K�b�"g%�F�Mn;��ks��� �>6e��.��s�uMH�0Կ�/(&��@���)��' U�;c�%(��P

����ӭ_��1Q韏Aq\�|YO�Mk���_���+�	��c�l[����
�j�MA0����b0�0k^},�E

1���
�\_�`�n !m �g�9 �g�
�J*?�`��@p|Ѓ�	ŜpŃ��`kL����
��x��^����=�#�sS:9�f��º��S���b�"�W_��`ւ
kUa,
+!
+�

��E	�8��u�� ��B0^�B0� X(������T
4 x��}cڂ�	���]��
�4,��UC�
i��ni��cG�,��lD'SR�Ld��6�I2(��
 㩻���&���hZ����+�s at BH����l5)\,)f����!�iB�Q<̓˼!�	8�L�
!���

�u���=���5���I������e�E�*��̿���r�
+S���[�,H
�+c4�	pM�BG��AH3
�B�
`<�*o!��
d��MB�ߩ9�!�����r1 �A� D�3B����k����Ry��c����|s�a�DCI�׎�LW����(�n{$R1�܈1x4�$��
@JoM����-
�3��{
��=Fa�h\�o@\���
�ť���@q�u��L"�7��O4
�w��;Y�v�s���_��~�ػk
�ix�V���)$r�5��H�E���.v�]�P$IhT
 jL�-
�q0	�?
�(M_z�wwJ�� �(D+~Ys�ۭ����v��.�i(1�L�D#/C�B>\c�x��]����߃���>��KCL@��T���e>*(
��3�^[�C H�pEЏw7ա��
�$|��d#�A���	%f
�3��-�BI&�ad(��Pr��dG�C�
+�A�
�����潾w��rQ0

;�?�o�t8&3���*ϯ�w�P�15+B�dL��4Ҿ����oW>��ҥ�h���C���
+�
���
�BC)�fB��1�RҺ
���Jm�(Ն�P�����f��B'J���Rc��
+K����$ެcBj�C�,��+T�~ɓ���KG���^؁��L..�;�BR�B*��2��e��
�i�)��_��$!J;�p�`1�)v���71�#���|�qR�B�
��34!o��>��ѭ~�Єkm�s�o�Wyǥ
���	�x�
޲n�>:
(72	(7Fx(ך�\���r%4e_�!�u/
��Xʮ(;n��Kz��>b��r�z���
�&	�����,���'����i�"t��:_�p�o���J=*�m�
+T�T`�;T���P�˵�B��A��̀�'��U�c*_o,
+�kf#���	���
a��_��/��;J�����w(����މ�{фo�-
׶�cP���B��	�^�
+*�wTZU�ܲ�JP��/�b�P��΢���z���L���/qwؤ���H��H�t���;�}������n�J�t���������;,}礳h��wȪ�`	U�
U	p����p�U�$
U0�I��돵9`�+V�����Ÿ�G�>��w���nۏ6�o��5� ��o
%�k$|4��|�
؆+
��3
�@@M�
f�zƆ[!5��6T��[��l�P}R��?�����obc�R,��N2�:eR
+�
2]ͧ��Ipb�<��B6�)�-�2��5������lekz���/�WoL۵�z����T�50��\���l9����D\A��[��m
���q�.]�×
�!�)MI���i? z�%�w���Rhw��a@Ȓ7=�
�5�H5�m�C�9�4�h�N��z�4⫋7Ψ�+>�9��p3���?�M��
^ނ&��~H���~Ƿ��Z��o�۵�=�~�k�3gۯ�A>{���k�gۯ�A�ྐKD[�W#F���T$L��Vb���I�W+�a89��������r`ZQ��s�5����"V�1�:�k�j����2��u�o�J�s7�>c�L�җ��d�0z�P��11��K&��eO^>���B�����ۺ�uS�_h�.]m
�- g�
a�I���)8��
٘2l3��n������ߌ��pH���e\
nʚ"�O�_oi��m`4�6��B<�ն}����I�B5�i]f��V��d
?:���ABӋ�� 5�4�Nܣ�At��?�K���A��\A��6|
���.O�i��ÊFΛ�>�-���˧�E��3�u&�b��.��D�#��|��O|TNIc�2
׌��J�k��m46�nxʢ��m-��r��κ%0�1��\w1l�4nDg)k���io�g�zv<��Oj	��
�Gx�67s��ʫ*��
+�w�+8��Ij�b�4�Z-�����ڤ f�6
���&�|!�ܞS�}���:��F������,b�~i;�1�C��|(Y„��5i�N=#<��U��7p�
|s9��}>��{ls���X��
bW�~�I��]�x�4�Ǐ�w
�`(9=x�TܘV�1�9�]e�B�6�ڇ�U���Ϝ�uK
+X���I��5�R�މxxJ���ⶽ6��l����i5j��˴��Z��2�lA�c��U%�����n��Ц
�F�

+�UDF�)��ɻ��e�:
��E;m��
!�����"�I�(Qi���49?���B?n<8)ѽSI�[l�p
J_c�z��^=/Y^�#H�
����'��D���
��Ep������E���������=��E�[<���M��\BYZ�����UI����C��t�`V=�����˔`.}�䏥y���3q��I��R�ͱ�r�~�D�o�?	�	̿��/�?bF�_�A�~������=�?W��Z�nj ��?�_��+�l�
�.���'0#�.������	��g
�ƌ �����3�����_���H�U�l�ߘ`
�g
�k��!?#�.��
�ツ�֑�?b�+��-�OW����� Њ��]`*+0�?Z!����J���
T_Xԯ ��&�����Pډ��EH�Uh�b��#��A��#
�[��Zrnu磹:��:N���ԣ��/ �H��J7)d�C�_='q�M‡ ����5�)�L1
+�/��o���S�
y������N/#��7�1<�0�u���k��8��ZV�$0���>�>G��l
�(�1�
�����c��_��
j��ٮ��	�W�4�Y*�WG<���^
�KO)���>0�m
+�J,�@,���0;չӼ��
�n�G"ȷ�Ӡ�����:�w)�w�����Qy��&�§�{9�L>E��'���z묯�ݭ;0���ϒ|��S�!�i�~K����r����ţՃW��x�ь3~.�ޡ�F����4��qz�@�};�a�ʓ�^���qhxL[u\:ڟڤ�xXĜ"O���ٿ<*r�s�ڹ�I�T]OiF��g�v#����Ӕ�7�.�+3�/����ǎ�@]���t�C�)d�=fZ��+�e�F� ��x��`�7O���R���W����
���Ӭ/d�
+�R�l�`y
�*ٴ09Z�(�?�I�b���L۞�i��D����I9&
+��Q�_�������V�g6�@�#���ž�{���X7[�w�.n��;bQ2A
�i1�����y�.a���1� �����(�����
�E�ܠ-Ym��9�Fkq&75�$�
�29;��L���X�ܓ����9��d|=�J��+�cU��~�D�Cz�4�&��W�lEweI�儗�vj�[���]���u��y��3�ג{R��Ub��$|Mq�c<F���7�7� ���C�_���~�-�f�W��B$i"sE���snk�ypG&��a�l*Z
N�T\8Ơ,����b��#�"��'��<��OH���M�.��l�:�/��R��|=ȳWƞ�vQ�f�B�1ݮ}�Ɲ�J�B�7�8���
F���UPo�#7��Ml:��n1�d�At��*?�Kbv�(lc\�0�q8d���%h'�p���t��=�+��H��Po? �V��o�q��_�a�=� ���'D�߼����4y�vJ
�����>)���Tº/I����F�-���o��,��ڞD��3bé��;Ioע� [...]
+Ҩ�B�h�y�k���d��}��['aE�N���k����w�-��톇�ئ�v��l�I}�
���g=ƿS���
u����C��~�?��I*j�ϸ
+�L�d���2ľ<i 27QQ+W1nX��g(G��󫐊�=��V�"]��&�{{?!�@?�A~���c�!�O`�1���~̑�l���?�'���-����w��	^����	fI��?S������l���X�H�ߘ?}��!?�}�����+~F�?\��
˟+�O_-���6
bB_0��7f�A4b�W���P�?���W�+ �\yS/�A>s-C�p,���,ia!�><o h�2�y�?���Ϥ����S�X I��.���'&�iP}A7���:�7~�
z��+=�l�cϖ��=A�R%(���+��*!蹠_ d�X^Q�p�U�N
�{��)
g�@��6w�(�}!�;����p�ރ�@�W���
�ϷD�o�?)��<��ټ�v��z�y
1�K���# �8J'Y���5�����)&��S��*O�л��ܚzr���kٹ�T�aj��A��y�y.�@&�߾�+ Z9��+(�%� P��̕\��d&�DE-
C��S��I6�|�v#X-�0ko��;`ev�X��n��#��!x����
+KwN�Of��� 4� �y��
���F%y����-‚�Sa��l#�9�$ށ��z�'��S��<�HQ�`}��
?$^�y�z�{xO�^�s�0%�� L�0�%��^� ��qqZ�ąl��<QEX'.�v7�ev;�IC^�A�|6 U�D~H"���mԗQO�& �������j9��M�s~�p�W��䛗��A�_�P�+�whw�L��=�wN��+��C�W�Cd�����t3]z}�^��) m
��A��Y&�JjS�P�
s�X�q�L��lU���}�����u�!�=&$���=nϩ��o�c����.��܋�K���L'���:���`n� �� ���-��E
�+�q�� �Q�`׸���=^(�6����;����آnBǜ:d�������u
+Cet�_yϋ��cw� ��
�r��F�ۢ�h�-ǜ,ơ������]���'/tԤ��6���i�k-s�W����$­to�}�z��!�%-�����:)�Xhϴ+�

+�Z�I?�S#�SF��m��>)����y*�n,�-VN
a�ƣt��'a>�O��X\bW����{�멾k���<�I�8�M�j��$%�B*{�6����~��jT�Ԉ`
2U�*�� ���y,`�
f����n�6��I� �aul������7���/r{��ڣF
+d�����:wQ�K�f7��HgJI::9=-";{xa�p���b�~@��)z�H�INbo^9{���l�m�9�Kp��3��Q�hKL�-��62K�ӮUL���6H�/��2��
��"�s;�	
+m2�a��G������2�Nbpe�
<O��d��gKݻh<�:��r�_�y&(�Aƞw�a��g1��텺 FlCc5�K�L.F�WbӱU�W
��:{�
Ƿ
qT>��ٍ<J�\��ט���h�R�I�G�8[ܤ���r�B�#�zjI�̲E�-8�5~$����~/�i���W�2�SYxι���0��X���}D��*N��=�4RU�X*&�{Mf[>(�d���b��ئۆ�k���	����b��E�D�G̨&���:Mn
h*�b��
��d�1W�aq��� )���m+t��d���P�,�h��l7A}�o���v���Zt�_��X��Q!bq�Z����\���B�<Ό1��Cm��ؖ`�ږ(��m�WXcT^�펻��$���r���f��4i���de����z���Uy?��h��T��%��z at g�2�
��Ӟ����b��
n�`j��N�s��dYXf�Jq�>���%n��nT��._��U�9W�>#(�3A>�GA�a�A1H [...]
+�G�&�5�
sw�=���$��m������ږ����
 ���U��_��}|Im1�&
��MT��U����ϒw\!O�dם�X��"A�`�b`��smE ::B�3�Uɨ�6���#���wI�>�yb"	݄Y��	����/��;����D{�j������7�����G����f~k9=�k
b��/�"0-p~�'��a��'��.��]Hg�;�,
�ܩ[zq�
��؝~$�ݙ=�?.���þHxPjh0����2Q J�����{D��뿤�[(Lm_b�_Bڄ~y���鱀�b�߹Z,^���)1�9T_ڟE
�� 
v� ��`�$'˛m��_
+�Qԡ���hj3W�~�me1�Q��P�?I��h�6�V�<�.qJ�>���69F���$���S����h)1~��# �@ �~�
J��� �
b�5�E�5yn�`~e�\�y
#�´��ݫ]��Z-�~�]b�1��0B��7 �a��_AI��:�V+��}�_�ZL����8�B�R
�E��-=����
PS���<��L
����W�Pf�_�GuFa_0�^�9=X�vb
+����;��:Em�C :��$%��!����?��Gch�6r���r���?"�ϗuϽ8�%����o� �����K#��_ P.呎���F�{��|�\�e��w+�1֡}0��5�=���M!�ԉ�
���9U�oKd��R�l��_�r�Up
��}�|c����b�����k TJn5r8�U�l�߉C=���/�~K���
<�V�
�W�����74w���n���ܩ�p}�!����o�0��]��u�<�/��̒�]UT�b�����Nj%N9�a�ޅ�>�#9meu�H���$� ��`'n��Nٰs��w	�{�ސz�{��� ���۩�i1�40�ڹm׫�֨�8)ѣ�IJݸmR�a��=s$5o�c��E
+�P�/I(��v��mίz.��xB�6#%�1?�{�ow�jm�3�IV
402|�)!7��v"^ؚ�u���7r�:�/�$|}��a��jK�A�c�ڰE���^��=&��~R�I;������� B���5��w�}f�J*�ݢ-���6�pt&��Z��<lȢc�Aβ����)~{*;̝Θ/I�r%��Cb-FW�/O>#���Sg/f�X9oz���	SL9�h�ҚH;VԠ�RE�k�>�p���E�7I]���r�	x1�m�w�� X�5�PfP$6&�7����
��Q���པ��R���X��v���dŌ�zl��6�^|8��
+J��p%Rcv�{���
?b�[�E�)#�z�
Gr�o
~�t�З�pP�з ����CrT>���¶3c�$�m5��Vl����aG�P��yL�'�ȳW�!�dFĭ"�n�j�Ʈ��ձ=F�D5� 7�n�h�
5Z�>+�D��
�

�����Ecc�,_�Ntbf���>�3������F����tIo+r�Ĩx�D��xw^�+L0؄
��m�y���d8j&�_���>	��׳�ߒ�F��.C�;�����Ͷ��ƍ���9�Q]�6�G��闽�zo�kd7�&�zܾr��YK
���_f��`q��
F�$��m�'ĸw� 7͞xt;F��<�o^M�q����k�Z2דQ�_��.],s�^���|����{��3r��fuh��z��2�yfڼOr����~H"��v��5��I
��dsk��x޲B��)r��y�<�+nQ&��Ɣ
g���]&ѕh���y�tfב�vo�	�3�Q2W�F��I�	$��	���
+��n�NP�L��^���Uc�
1}c:�f�G��&]��ًZ�u.
+}�,��Q��]\Z2
WN��*���$q��%ؑ�I`��� ��0��
�.��f�e�O�_��'A?�	���
+�	��
����?#�.�_�����	^����	�����/�	��g
��X �p�V
+�s�Q޸"R�u�-�U#7���@�ɃV�KW��5G�͋�<{g��b �r`�m+w��m�"�mK<n�R/cyD�F�]����O
+ �?��sP�&�0U`&��Ub�F/�GN�k�wn{U��*̱��ͳe�E<�hIB+8K=ò�hUr�hT�D�VB�Z��i�n��D�
0N��3�3 JWCP�g��6��E'�|��~���7�%�]�c][z������]��m]D��;�^��pM݅d��s�qX����@�Z�՟Y��L�@K��V^���Vtk�n����j8���r�U���+��“���J�rfK�	l�2o8""�\A+L<A��/��n,j���
~�~R �|�W�g5�����Q�'��&ʮ�R�a�OÜ�[n
�
Mݛ4�\QiC���
a�
ބ��
�
�<X��^wU�i1
#��w� ��`DA�6�i}���#�X#�k�/�1U.�g4�yy�����Ip}v��5�f��^y����E�e��|�U��C߹׉�@��O
+ \�~�VX�7���C�����#�_C�s���y��m 
��]
�c_�������g��W��]�6��{�����t��
���?._@�+8W{�7�0�̜�
�PJ#R0���_�$
Q�w䠏nۄ5WH��\}rE�
���)F?�M�!�B�w�@����	s����/�L���?�~�Bк��PR#:%��ĪtJ诩�OE�U?�Ђ�x0��AM��A/��r!���@L݁�ѯ��R
T�pk|�e#?�g:�G��XUS��* �Ԣr,�&DmV�
s_�Xw`w�vb4��^���	2A=|bƊ���N��^7�A�mV���~�o~���G!v(��<ѱ!Bh�6��=0�P:�(ơi1��'��3��*f��W�?ZW3y�Jd��'�sIgk���F-����
ū-pcj�
G�f�ġ�i$ғUfJ9J�N��5Ra

������j�;����a:s� ��lk|��R��q�y	B�R\�{���N%88
+�C6����@5�J��?�nE��/˿�������O�'2�{_�P"f)(�0t���m2�Q�,��I�ێ���>��!h[s��q|���q�G{F���u|�d)�?���"����
���1�U�L�cS��B�
~�[@o��o�<.l:I۰B��a��I��~���<(>�cP4�upm���
+?N�{1��d
�-�ܫ�8;N
~���\�����:־�d�U��Bc��
��"E�}}�	��!��v�����@���0���U7����̦/��s
��D/l��~����9�<�弿�M�5V!�x\��Vw�L3�ׯ������}
K�ǐ]�t\��D������8@���� (?W����=7��8{�4��_tg(K>[ŽQr�q8ǨqQ��f-⅃��o��[�W :��u��"WJaB��ܜ�q�><����Q���`�\�
����s`\.3杳�~}��%��%���p�ϣڗ�K��~�j��������
+�H��b��W�'V�˜�I�ɱ~�ސVҝ�n�G�Z�
���?x�~9�<�yF�5Z��'4L5�M�<�����j�|�X�~�{��n85��O�%�����v���?=�M�7������<����l��h}i�ʯv�l�@i�s�4Tm@����k�%¿�.��r{��y�����G�%�w�w��Z|�!!
`+�f������<m���oq	�[(���eY�0����/��������a���H�Ӱ�r�5F�%��c�M��/7��v����b-���zX�/V*�X �&�`�J
�˟����S�6l�Kb�jl�p��mQ��i���y\�����v톷o��f�l���)���\q�xv��,Q//�'��(������
���G��s�k3b5���������~�+9�t�)��ql�ӕڃ�fJe��9����\O�	�2�Csy�e����
':ތ��Y��d����i��C�`�C
Ac�.;�'Pg�n#1
,Kɟ�`���_�5ŸP��1�o�l�[�3�l�Zk35��r�u����݌��ܴsj��>�R���5�q�3GK
GIw| [...]
+��_�
+8Ǧ�ac1VO��h^Mm�+��2G��
ӷ�%����B��
H=�i)=��k=r�2z�l�������%���SAa���̵��7�A��Qw
����t���r����~2�^�>��Ey����Z��Tb?�U�tc�*�����'�
+5��
+�[:
+o=��@n	-���f8N�E�O`F�_�f���"�'��,���oL0����c�������c���oLp
������ ���+��
�ړ�k�M,��E�d���fq�b=
+��� � f�0ש�Z=�'�V�N
+%n��S���Q���U��җ���!ue����$�Z̆	0/Q0�W�S�M&�X/ǝ}�����,��er�m���U�E%�}K�5c����i)���,�V��rem��]�u��G��-n�%�|��� F�I�ՠ0<�Ÿ�Խ:Y��ї&9h�TZ����E15
.��j��;`>+^�e)�T���rl��2�]і�Ʉ+��Ő���;w�9��>+a���� %��R �8���TȜ�e�i��9��ݿ�Z��˶Z�Lm�A^g��n-��w�r{��HA��&���M��p �.?�#g.�4?.�\�ߘ���ęg���'��\��q��dTתp�Q���U���	s���7g�W�\/R�g�t;�EX�{�������[�b�oA����
��Z�#�+�=g�g�X��sY�h��h�մj.o���W�~an�0w/rG�\$���j�ەo�p$=��0�r��`�lo�gn���CA��1��rB�(�t�&O�ۭ���}���3��a/� [...]
sp�qyvU#͕��)��X���;'6:1��2�{���|�\�_0
I�g{0	6~��jU���9��0g�_���r��r/!w��!����A�6.ž��MHr�{.���:g����t�p�)!/*0{��޿	`L���<g(�l�~
+l�t/w+f&u���LhN9���A���'�@~f��c�
_T��+�=5L��w.�;��P�zJ�I�N#��F�q	GJ��WP��:���Y:&N�N�df:ϑ~�=�4#�7�
+ at w��,d���bc|��Ã;�:�]� �3�.T�
")k[���f*�����WLlI�
1A���9ݱn1���K����h%Q��mKaw�@�W=XB��0�����́߁-�
+ʏ0��ì�H�Ȗ��sE_�i�{A�� �� (BTx
+܁�M���d���>ݵA�\�3}�,!�^
E���-��� S('E�M�k�"�[z��$���h�e��s��q{R�����i�M	�\ ai~��z��2�O�:�Q����M�4�F�(��|Ey���N��%=$eQH
+�aa���A
%�&�yآ����a�ڲ0{RWKlk�ůҏ
 �?�;�y}?GI�g�ssS�(d1i%�O�'�bl��n7}V�湓
��7a?[B
fn�~
ڤ�)��~��PQ�]<�ti`���>�T/0P*j+�(a:�O��0
��;�s�!������k�ey�Kb�+R���DwjZ�IU�?F��
;o
�t����-g�
�Zr���s���7�~��d��M[��
mk?.��������LP����0�չqp�j5���[��
ńè p6�?���]�Ε:Q񅠆��B��sf��(��ڻu��J�X�_NJ0�W�{��q�U ڕ����L9O�ɔy��o���Yޡ�(��j�u�G�p�,8
�1l}��v�V��t���T|�[�[-7
�"�-�+%>٭�[T\�9�\�g���%L�w/`l Й
+@��tP8��G���n2<�:���el�S f��2Wͥ��]�J2�Ö(m����*����_�-Q��#>�,Q�X�
=b�W�r�F�e�j�?.��
0���H*�~�J<���p�hG?�&����ao�C���ɐ����Ws�R\%�����G�e�^�7ݢ��-��J���*�@���Q�2����~�!	���� �g�A�m�XY�N���N����>:0�j#A��{7\�u�<��d�D�����Ƅ��d��e�e���'	g�j���K��#�3�`>!�X�{GP�� ��⃢����h�zv[9�E#k�P���T�H�c�z"��s���g�qtl�[�(�.���'
m��p��o��3���L�]%�6�4
+6����´��9�y�A&f�U���$_�I��c��Fsr%C4^��ֶ
[�0:�1�':(�n�7��5\�u��F��`5q*����˹|
,3#{�X��h����sT§o� ߶?!�}x���W��&��p�]�ٞi�ȓ��l��C��\�
{Ug��(��$f��*]�S�\r�^l�����@�y�b�f�L��j*?���”A�i�
�'�Q��D�oۧ>B9��pɁ�<�yV̏T��olw�;D�Nb�N�8�ʎz��
�D��f�S���
���Y�;�ފq'Qd{�c0N
ï�}���`4��Q�J����\�A����I� �8�u��Bm��|�@�"��z�c}0_���v^�6�i�d�	\,S�q/Ǝt�F��.�SQ
fō68���`mu�Am
��d��DŽܹ_��oA����\�
�Ӊc�U�:�`
M4�ǡ�iz*-˖>��k4���xd���1S�G��u�V�Ry������0I���
ݣJ�]�n����]�%u[JK����CA��8�r|���ԩk��
�qN` ��p��k�yH�I\�g��
[
l3�z�ƾ�=�u�]Ve��N�
ub6��k�y'z,�򸵎 �a�m�.�F��Ҫ��%�O�� �"� ?]D��K���q�J1A�1)\N�Z��M��C_�w�����G
���y>=h�y�P�|�J��I+>bg���.���l�.?������
�
+i����^�{����A?�A~�&���	��ˠ��� �����T��>ȣ�JX}-�N! ʎ�i��_cn�p�4˽S����1S�\�O��Q/�̓v�
�v �(b�N�ͺ�jO�7��ڕ�V?�
+�k�}�-bp�!y�L�	��
+�)y�H�'ɤc����/�x�A���؏�<c,S%U/��'�:�� O.
T��x�,���*���jEԯje���)$��$h
9ߓ����
+�~5ȟ�!��@�‹��'O���8��،w�
����W�6����ᤥ]B?���Qu��Y���=�8�?���xV�K�Q�u��a���$h�;����~H��:��1ߟ&���e9=P/�j*�=��W��	��ԥ!�owU/�'m[4-�<_[�#�-�ʞN���Y�U$/
+�۸
+链�<�w at h;���ϑ��$~�3�Ov�옠�{�'�� �N`6�Ʊ��bΨ6�o���yKێ���VG��r��Y�Ҁ�n�n�?�<%h}�c&!a���
��G� ���u�
��
+A���Z��X&s�W���kcs&5}#�$��!G��r.�;_�ø�R�2�����&9[ޕZ����&L��ͧ�葵���
+���|`��fX��	@��ѧ5 �&Sg[zT�� �i���7�M��ZeuTr�]>��Ƌ|'�g)p W���@HH�
w at o'���߄߯d(� ��y���
NS���u�B`�3��������At4y�5��|i
+��iGa
+��̒�w�-���'Lҍ+�j�[ʮ��j��3�^\�w����A��#(�l#(�K�WPP�|�	
+ov
����^ �(�33Pi���(�����^����s6\�L�_��E��0��k���K�e�+�C)��]=�z6�����+f
�y�&v���/?����x\����r�(�*]s��V�uϰ��*�-Wu�
�y2��_��U
��Ս[YG���RG���y2�P�3'�r���kÃ�k��Y�_PP�|�i���¿"�9r�6��QX�[��\���
+�c���t�F�
+�D�2t���1Z����{2��RŠۓ26SI��J�&Db:�
+D
+nq���m;(��fPh�(p�R �=OA������u4���%K珯�OeԙQHI�<�4�K��ª}H�GdL���[9�����A���k������/���/Ԝ�g'i
϶����b
��
�G�{-'xW%~��s�=�k��Izbl
+*�_섪���Umq��8}(	��P}¸��Oq��Ư��vB�.�/c�����>`��b���w	
+u��
T@5�y�hwb��n19��I[�ĨvP;��\�g[3���5Y	�׳8���{�K�?�
�X*!�
�z@�g��R=?�?-%����7K@ݣ�}V"���+h��
+z����tMU]m�=�:��l A�P�&z�;֜k���o������n(F��n���<	`����kL��
SW��*�k�Roh�
+5q�ADu[���vN�U�fC��w�K-�͊���)����k����Z\;�9;l�{��G � ��`<�:�
.P�S5��L>�o�}�f�n�\��7�7�N���c
��
������V��e�X�,n����W��
-f�
C�1;��I�h��Dݲ�D���,����`��G�
��V_�ǟwT4P�{Ok��Y<��kZǬւ�ng�>���[3���g�F����Zu��^�w����
��h��I+n���o�i�=2��80W��G��%�X�K_��_cP)��g�!�qFF�@�����a���֬�[
+�ʣU�
�"Y�?6��ˬ>	F�݊���:�8�4U��(
��9�Z�y�{�m}�`�j$ԔPs��A�(���Y��n�;
��~o횰�J_<V��ݗ�4�Y��Z�~w�毝���.�wn��{��7��37�n�>r�O9�`��/����mc(���qx�P�;�U�
��T�t�t�?�Q��/3�T�}K��/��#Mo,.>�q�/��3%p`.,��-�gi����$t��pVf.��L����� �����M�.v=~��!�h��g���

��o��(;����u�E�`ˎ�1X��N�
r/�9䒔2d����5ӣy;�f��ӳrA������N�Q�V�@�� *�*uF�8�o}zz����d��jms�:��&�0bF*� �����i�ۮ�;|GU����|���g��^��9���d�,�tl�=zE���!�����
>��'P�T��"��M[��	��'&`��߬�UJ
��	�%.R%UgMr౹N�>g(�9��8l
���2��s��
����X[r���]m�:��je�_k�Q����pӛyT��}��nP�ڗu:���F$��u��Rq��1p��s�x7�����6�M㕼;�'
o�kk������!�a�jŃ�Z����r/��g��,���0 ��G�N���<����BÔ)	��K�/f�3�|�a�9�c�K��
+c��
�ѱ��ݕP
8��
�yE�N[����h�����ӯ�]���u�l�+g�֭����z���7p���
1�(.�P���#I@�+�����$�N1�cէ�%E�ۂN��eL�`���截��q_|;2ni�/�l/8�xT9�P�H�����R#�b�'@k�3���?�uY[�QX���6���h�o1�ry���Z�'���6
!��p^Z')��!}��)�
+~��4��a�Ʒ�-���
�ۗ�To�
{��d�5�hޥE���qW�B:3�+�G0�'ɩ�������6�֡ޭy�L�gb1��cy�a���𳐝w߅f�O
��ި�|v-�����3�q�k�3�_K��cm�}���ǵ�
+��^K�A�UOd���
��(��;@�>@���<J*΃R�==�������{.Z�Q�8h3�Q�,���.]0�.�WU7�/�ռl�'u
+�NJ�L{_�m{���������
i��J���S��&l��[�h���+��/���ܿ��_
+�[�S����� h?5��
P���a(|��&x�n*^?�(S��B����e��'���^�n�.�
TǨ�7N�o����ۣ�iٙ��>Zӕw����h5��HǗ�����PG2����� �d�	�Y���rh�Y%����D$c<��+��B�§�r�-�u%!}!�~U�X�u�0�7�������<ND�>�3�rvt`9+�j9���d��K�S������Ym
 -�� t��J�uP�����Q*&���]'Ĵ��t�I��W�+7)˚��խ�Ky��

:k[nq�Y�]?�u
���B3��Y�����(�v���VM
@���O�y�+�R�U���YXN�1�^�.���	�I�>�^��n�	����=�r�Q�
,��
-4�8�?��&�.&��n&'�?����.������P8x��dG�u�� (�|��G u��G�
yF�;={��	F,^&#��{xR���-�v2eq��
m	9X^ws����1���\d�Y2�Y!����>�h����f�ʮ>y�ǟ�/��҇�Q�iE��.P�žc
���k�
xO�`ݔvVl:`��)���4��������`���MXRі��`�e��^XW�j�̟��5��iJ����C�^_HL&��er�k�����E��Tx^�ys��N-:���g�3���b�t9���S����@?�IWc�Ik�(�{���w�
���/ �8J �E�9X�[�n7���>ξ	b];�/�fP	D,Oz�GM��u���clX\+��K
+���Y�j�A\G߳	Ѿ�*�-
��i�00��r�
�Fvf(��) �ϓ��b��A9_����<(ד�㒶����g/�w��c�8����M�`i�����E���X��S
+����o[;Fz�D�����>�7�f{E;���6����ߢ�\]N�f�ә�x�M�'��j$A�R���L�Vu�{R
k�oi�.�nqN�h
+\

�ü�{�Th�M����=mA��n�ύ�*��L�
MN�{�|!w� =
+�?EkUO�3R�V4�|����M*ьZ	y�l��L�vw�9oOwm�����F�Yk�eBc�K\�i�uQݚ�R�p'��FNҚ.�j�&!�.��d�S���[O���e��3�{
(���3���"�#�~�Θ�������F�w虠�F�1/55�ww�xc�e�͜d�!
�a~n,�9�-i�
#���-E���c ��E�\�3�_�/s�e�{����޹ߐ�hԅ��
ʜ����'���^Z�Mg���
@��Q��{���h�g~v'���pʥ5�{�U��"x��
+� �
�������x7��U�7���|� �� ��~Ot�1��*Q���j,0���N��v�.�00F���n��gK��4�Ƙ�R|�-�����I_�k���5�Wx!y]�||�~
+�
j.�9(����P�� l5ހJÏ
r�N�HcY��{x>�m1�Q�m�٫��&��^���
6�T�465<[,�g)
��Z������ݞ����[c��:G�� ��
ʩ��t#�XU�%� ��5�� x�7$
�T�
��k>)8�mku �����=EyͶk��T�E���ք�f���sS���q7,YWuV��*
Y�Y�G|!�\ 劓�S�oC����Yh;R]=�վ��z
٤�Yvj�ש)5�J�=R�Uk&�����p������sS��s5��)8
g�C��i��0H{�f
�Q؄<��?5��)�����~��� A���Fc�
U-?�W[�¡��˛*ګ���%�	�/sd��Iz���9ˌ�+?/�j����7��	_�=���`������S���e?��&|ޢ��
�<�ނ���e
�+��S�C��Inx^�|c"�Ғ���GHKhfw�E�J�Y�ڥ�ӡ?�1ā���y59��
-�ts"�c�F�ͬ���/�sP��yP�?�h0>+�Ӡ���W�e��~2Ղ��x@
+w#��@M>_b��.��r�W���_��찥���
%fe��!�*�
'b �'
�(�m頎{
}7V��
--z��y��2��cp��̂ۆ?������ƅt�ōx��j:��IX�m
+r��
�+���7,��(*�g/���.�$J�M:��#���|0�-�mT���f�>ܥ���}�`(;(,n6��h=8��;^�Cn����f	��*�+HwX�Bǘl������}e
+�̸�(9�AzҪY�[^�D�W
m�Fm�R�����  �0c�� ���
�> ��b c���
+k��ߛ���F��`R�n�7��f��DZ\���
�"���k�)2�9V@�鲺
&m�t��h�xp�� O��8]������ ����Sn�X��F�B�i��w��O0i�L�:�%7;�a���aPSh8�����F�f�q��ď�1��
�K�3�k��\m;N��(S���|��3jR�ڍ��r��‹���)�\�l�27z�o|!��# ��Կ.;%�
H�|o�l,Bü
�/��4+\~U�3
�4
�
�9vtPhֱi��'���BU(A�
����9������ҭ����p�Q�x<H�pdad$ęU��C�Z��H�*VS�,#���M2`�A��
�T�vnh�N�
|�l|��t�⇥AY
G�
+�&�c,0�����9q�k��>���q$��I
��
�t�
*�)���o^�~IȊBc.����ߏ�9;Gf[�&�|,����ud�ϰa�o����m
���B��A��TNh���y�7*qx���]PÎC��,��;%��h����f���/|!�\���t����e�d*<�l� ,��f�9����&4�ڪ�p^J�P_�H��	"�6p*��Qq�|!�	&���P:w�u��>ɓ{�k�_m�H��ɶj�E�m�JS��V�v�{?�[
_��ϑضXy1|�
�٥x�����$�'��gɛ���ި��O����&��y�8i��#����z�܌6�)��m㶗
e�ڍn����x��D�p��=�]۲��O�=�"-�@Q &�H8.(��(�1���?�._ȣb�޷��Q�j:[�(
�^�Q�?Ӱ�>��I8��a���o���{SXe���ik�I†P��bg��5�8;�E����˅��S�h~!���4aO�����-J�]P��4(j�)(NB��"(N���ej�}�v?�
�Y���U�&H�~�[��ْ�A��&�4k��V�,x?Ѐ���W��֯�Ҧ_e[>�twL6�w���+��
����
+
�P�ta]��3��	:R(�o
(^j�ӛu
w�ƪ�,Gɶ.#+O�
�v�.�$�R(��a�x�*�.��:]���,��S�<;��U���sv�w�Ahٚ�,3� P\��5�f(�?���P<
+UP��9P��ǧg���q�3qo[�D��T�@�t���3?TҜ_�\�tUً��[�㍷�e�kG�ﵯ釽[�x߲-�t
��>�=� ����fA)�eaKgP��렴�𠤮�空yߛ�9w}m��/$B���y:�
B�L�ʬ��u�Ο��!y��`�u��>ރ�
�u�!v���Ͳ���"5w�\Z֮���/�
0��(! J�Ł"�]@i5A�Ί��2
�^����w��_��?l
,���S(w�,�)
#�O�
�/.�-�-�w��~o����w9��iw�mm?��-��n J‡��<(u
X��N�M8�� E�"�i?Oܛ ��n����<{D�}D�
�9]�Y�S���Ʌ���8�����U�sR�F|̳��P;��]�6���c��7��n��z�� 0�� :
+�4
�T�� M�ڟ�-�yp|��
�����uˏ+|�ȟ酉Q��I>U�����^^;T36�}�>��c
iX[B�t6�'��R���d��^s������#>�m�uJ�y
Q(��`�
�n�q��v� �� ��]NQ�8Q����ĝ����%J�
KW7Dš����M���0��w;�F�j<o�i�w
K/�
CC���x�*���@�	�'[/���-���������#��B� �xܯ������
Q��<~�G���{��%]u�#d{<f�ֱ����\�32ԣ�֪��"lU�����W?��&�� Jm�s�-��>��Qd[���$udʓ���X�H��+X4Ƨ�3�۰�G�
�=���&���
/_Ʊ��5g�xw�i�f䪎�n^U�6�L���ݫ��^'���Z�
_�����O�Si	�����26@������C&~,�%䆧$,2�~��
�T vx��]�$7%�5;�Ev��g��P�#���d��ެ�U~-���*��i%'k�,�^����Q蟚s�C��y|gG�m
`
��M����+�
ທ��:
�
�y�2&��:DŦblrim�K�M�����=�od=��rwi�Ud	�+��D��r�O�/���{���&ӛ�a��$x���(��~vn�,
��s��PIfn�ǰ|�vO�3v���\�Q�m�$�p�]X#�n��},�U��|V�"��%�
���% [...]
�q�2�jq�6v,6���b�)y
'©Z����
� 	X��L@� `��7��_��2���@ߍ(��O�1��g�*����J
��ܖΜ�˰~�<����؎I�D)��n��r�p}�~�'\��N�Ty�|˅�
�9���
+|�=p���u�w %��L!
0�MZ�Z��I�}^?o��2=K��p�w��r9�w��>��
G�f�v�S��6��[�[��g��R�v٤V�f6���3^��ˈ\�.��2�N��
w�� J��yV�E�����r�
�aq3��
+���n����΍v�}B��ұ�+�w�L��]B��hǚpK5����Y�~��h�&a��̦Ny	G�c�!0�c 0��`ɲD{���5����tƯ�}>� &?��"��G{w�\'����z�
?U�c�����^a�S�����%k�%�e:����Z���H�$#�lkt��I��(ΊT��
���|��C��o�dG�Dž� ��
>�I
�n6,��g��b�)�z-
�ι�.O�[�B��ޝt��v�����%��MBx5��~!̄��5퀍�j{ԯ����R]���2Vf�%�<��	_yq��"���
�~ ���Y)���ċ��|��l��+,#g1��xf�l�K(
��}��⥣�g�@�^Aį���
{`�W��I����xԨ�R�bo�ϩ̀��!����r�!��{,Ʒb���b0�`��`<���o�a�q|��lx9]�g���(-�����9�;�kEݾ��tz�-�)�
քb^�����??�E&GԼ��z��`�o�B�`�8딭3�`<��C�z�í��~��wW:�� }��_�Y~v�����:!A^<J�-ޏe���&�
/�Wq̓)����0�ն����=-
+a�
s~�Q�5(��,Ť����m����ː�~z��<}��Vm���� Cه-{� ����|
���8L�GI���ܠr�4+fU
R%���/n-p�H���N]On[��}g?ڹ'{H�8P<�#���>�U.�&�c�D6��]��Q,�T�:J+d
s� �`@���AEc��(�$�K$Y��i]֕��f$�$�,�ÿ�"�+\�va1m��(̈́Q��^
���Q��|�DŽݯ-[!��ИX
�	�C�y|�c�W�G�������
��(��	�9��7̓�u-��jd�z�z�
+}��e4���m�,�ΰ֙���x����O�C;K���*�-߯�s�
![6���j����81��x�H�z�p��3r��z�ݽ^! P>Eɓ�#G�I��.{���E{�[T�+{f)��
	��ϕ&�ӭ�3f�98uW-��:x����d�	<�M�M�b�$G����t�dk�
�����O�c(]���Tp�b����m,1"dc�Q�Z��h+x{���|J,���cN4�Ϛ�Х���
!��x���-Iv��
�>pE��q�ިD5�G���3Eu���{�l�}b(��9�Ż�ݪ1��?�
������?�������KR;� ��h�2��Voډ
��(=�Nl��#y&C9L���羷�ZǮ�*�'vJ�ɵ͵G�/��=��'	�iF[�ؔ(�޸
�NC��n�:it�Y�0O�6"��c;�s����u��"��[<�
:S:Mբ0Ov^
�oG�f/�^;�|���'I
���8m	=�iF���l��rC
����ֵ�ج���[۲�s���{u/�_<�`}�pm�u��{'v�y�M��*�&�5G�|I";@Y�T���ZL��.Ǡ*2�c�Hg��ۮ�ht38R�&�\����U.Uj��֬�jX���:Te�j�+�{��
�]b���0w���} �[q�J�y.Ȁ�xLC� 0)����
�,��B7|���Q�ę{�ەn����Wo،��w�k��U�wFW5���˵kЋ��U{�F�Y��%Ma�6;�I�[�'�'���{M���oE�����m���<�/�P�LA��#��I�@!SY��Vق�dryx���M/{[f��/$��z�
v����C\{�<�DGz��Dz_F�Ik�ޘjk��5
�J�n��5
}y��
0b�T
+�IQ)�����R�A�q�����laH�v�:�(z�A9q�5����X����U}b��UH��n�F�>�Q���.�����Q÷#���c��E��*_8ڃ�tg#���P(5��i���X��<���,8��|>�'H�V����]XPMޢ�W�W"�]��Z3z	�^�I�Q
�C=�/�j$~V���4|��-6
�[���u�6N��e'
kj��}�G�B�EoS�e(z?0��*>(6�h�HJCx�(�;t�sK��a�Hߚ'�w�Y��w����O�C��e����E��㾶<�a�y��;,\��'��I6U���&wfy=��wS�=@�?0>+�
(�z((�>
�+ E}���9�A��h��OyO4�nw��NǷ��^�ư
m���e�=�/�A��n~��9!<�5����p�˟����I'�mˮ_�� >���[��b�Z�
�00�*ԤeP��
Pޟ��R/3�jS���/x�,�O؃@H$VS�� g�(��z�LkK��0
��d��2p��(9�be�i��e�y���v�������}'��o|!��PX2����(̧(\��'�
��r���ߟ�ҁ߂�b}~b���ސ��W���Ĕo]�Z�<�we��KZv����|P��+?(V��b'\���?[�p��|��u��z���f�>��
�
�(lPsv8}J_b0P$>I��쓷�� m�s�
(���ɾ��Y�sqo��"C\�/Y�M�|��f�	�Jv��v�t���6��1�|x���	�/��Li�=��:
1�6O7Z�P�_ 
+���Au}Pp�*(j�J����਴�~v���1|�?����K�B.�q�vY�sɆ�U��S��k�+����΋'��h*�`����M�Mf��4g�[���c�
+�Q����˅o��E?���P42j��td����g+
2G��Fޯ5@�E�F3y����Xk�Ps�j��L��=�'���
KWW����w����P�S�����`�>
�KUw�"�Xnu���bզ�(�
�i_Px?;��:�@g��g� ��e
ʓ�&���Ym�����\
�(],��Y����fe����8!��y�9�Cm��[2mhζ��!0���ы/d�<k�
��L&��LN�������������+�������5各����W�����|_��4V�M��6��M�ɦ��}�O1d��^
K�BT��`�+5��^{�rb2� ��.c�^
ʯ�B~� ���	��>�b�܄��E��(����E
+`
q�X�=3~�M?���=
Q9����=-�E���o���x�����b�9]���R&��B����p���\n4�65�����_ �U߂��-N-X5������+(��w;�>�v��[�n�#nm�}
����v荔0/5$�#L��=2��U;�j]�j����X�p���X�8���T����&<h��eG?��D�0�Z�
�>�ezp>�B�G.�[�FVQ1k
B���狗��j��
�.��xϼ�ui��ߖ�Y��(`�qsq	�sw��X�tqю4�!�#��7��/�sP읡h
�
+0���'}7� l�́JR���I_������[O�v��<�����Z-)�V�]~,
f����j�
a��a̖�
Y�1��2��g�s
F��Cn%���
�8�A��GFu ��֟}1Ο���"�<�֍d����"�P��4�j��ֲ�9�U8霳
+��=/mks�)�Β��=�^��)�]��=I�G�܈IE�!�7̶փ�1捓� ��
�t�
+J,ׁ�yR�l���2+�hcc�j���K�5
��0�mN�k\��
�x<
��
s����	u��m�r������ygƱ�w�eѣ'�1M�n<�M�5����|��H��?�
�>��:�@[�z�sk��GTt�u�����.���7&���Y��(��Sפ�`�v���8�&�K{^X�}-��#���eHM��p;1���э�n0����O=r:?��;����4��Y���./�@%q�
�±X^=\�||{yb�:^n[z�k5�͂RVj��X/O�D_<ɢ���~�l��ы#���I%��nR�a�
��d�&6����Pc��&iqe_-�;�� Š��Cy ��p��{K��6�9�&lWr[w���c+%T)^&�쎝�׳:/OmS�-L;__��gR�
+�i;���q`�s�d�Rd�^Zd
3�>�)3��ƃQ{M
�ƺ?��b�'����yV"]���O�qF ��p�G{�}����ZZ�)ﳵv~zÖ�ޠ�\Rc�#;s���ܬ��I�uӇ�m���ąl�s���/x��W���d�h��e�E�]�
P��!�`M�
�Ԟ��$� (�mT4�����wK�y���p,��VA�_W��J]в䷫m�+�Hֺ��Y����Di�
'L�P\k�#�>��J�?�dLJF�9K��ǖL�2C\�m�\8����|����/4� s���K�c�O/�&h�
��%=w^��
�W���v~����:�I�ϗ���)}����dE�K�É��mY1�K��v/u��z/}/�ݸ����<�o�H�
�tu>�eytJ��`��Xcv< �
�N���a�
+�6�eT�����β�UgQ��~�A'���$�6�/��xT',�J2� �moP$��a8���nV�ӝ#�6:�d�vGͼ��'�|��	����;
+$��،
j���ж�ib��̰���]6]t������I�>�3��Eh*1�
��W�BqV�7�|���{
�\�Ao�ͺ�NݜG��Yfb�=�������Rj
��f���v���/��_p�U��S���~�XpΨ���Mj�,`��ʃž��7��v�4��xOݝa����5�H� �}��O�D��9�*������J��u��V(B���͈Ѭ����fӪ$�Mͪ5n��=���[�A���o��l�&����W���U�4g��ٷ�D�$F#kܞ�p����Β R����{�k���q���>�Ĺ�=�G���%�5�7n������g�����<��hK��}ņ�N��AM�Ԧ|����
+�.�V���q�a
j
�$,z��w.1���ҏ$'Oh}�
��ͮ�\�μfPm�Ό�ȄJ��и��F7;���eN5
+����guT�䫙�V�I at L����r���m*�v�!^�z�;��;jk����Q�2%J�a*�ԕ-�����ۧ�1j	]�єH6�P���'��B��	�ժ{
kU3Q��$AG��v�ؼ�J��f����i�+�GX�����P�i�"��2�e��'��
i:����oq��<�{{����+^��V��D̦�.���D
[�(4�TG��V��Ȩ����杓S>i�_�芆F�D��5Y��,�,�V��on�U�G�|�{�ܤ#�\���,C[ ;x" �(���4���k�9�K�� �?ߎ�UU���ds�
ȼ d�\d����j��O�o7��1�C���~
�R+�߱^ڌ�������pI�#̟h�|!�\ 9��x��gP�Me@�
@n�l@�>� '!��z8�eXhk�_^�t�_A6�~C�j�9A��3�U����+�
�K��`���L���j�jS׺*�x��_�p��>7yk��i�%��g�/�
��
썃�29��j�|>}��Q��ڪ<�=nA�p�@�����˩�d��=��������G�t%�1������D�V�V�ܩ��m�-1k�����޸�|k�{�)J��uW0Dq���<8� �O1�ʐ�U�����9$
��Yx>'�<�T�̹��@�����Iw��ݱS���#F���nGOm�G=��O ox-�Z;��A�;|!���EC��F�v@��@�7����0��ox�W��+�ۇ��H
@��=?��,x��y��W��Y�v��f�z&�߄�er�e1�Dr{U:c���v��j���4'�
�cvW�
Y�*�a],�
�
7%�?������ڠ00���� ��>���%�'
+�m]�E<�~0�G��{E�5n������� �Bs
K���z�����H����{�[[���XG6�4��r�{�ܓ�����X�K���m��
P��Ӡ�Uڠ��� ���@~�:>m�{��%�A�����u�V�gM؏b��%У뽰毊q�#b����l��uwo���UD�Pmu�8{c��o�9�|f%��7���>ȫ�
+t,�X�<P��3\��
V��N�O�@�,�Hܫ'�pkL�j,���S4]�3�@{�XʱuΎ���F(�N��n2뵼�
o<H��n���� ��j�6��(�{UP,t��1��6�RVȁ"�z�Bāb�C۽����
�H�v�d�W�a���:�\��Hoc\��q�B9��$[�F���,��j��:���"��n��~!:�����6�ퟁ+g1�����$�R@I9�AI������ �Wm�G�~�Ԡ��y�붼�ŸS
֯=��G$u_��S����>@o���<�!�
�]��	�d�fts{�j��x�f�9���̾�
�t�c+'y��� ������
P�Thk���!��a���w�ۭsܽ��h�ˤ/�h���n3`�.�W*�ɒ�tt�h!�S
�C���w;O�k�.�U��(e�\��ǟ���
��������[h3�|�H(}֏m7�O���P�)˺���{ǹK�P4��v�
;뤲z4�gۚ���Y6k+c-N�M�v�֧jy�
+Io�4C~�R����4�p��}�G����j���<�PT˶>Y��+^l����g5���e�+���K�"
��O޺���~-b�M���PJ��MQ-kk��n��T��
���x�H��x�-4)�h�Hi�F�D��7��.���!{P(�1(>[m��'
ڎ>���AY���UuI�I!�.Ө"�x���i�x4���o7��A��͈Z&4g��\v�S��
+�/�n
�	�FI�z"���_f�\W<��� �TX�9�9wPꌠ�r��2>�|6
�=.N��B�w�CF�aM�E�S�
��@i���ݳ�2��d��\��gv
���nR�
��p��<T5J<�'�X�w{�;�w&���Xh}�
����)����M�`�: ��,�"�B���|�sX�|z�>l�������~����z�� 
+��4��x�
e�
���~~��EN`FYB(W
+��]~!&�|�~o��½�8�����$��7>�*[x����\Kj�
��3Đč��r�䜯�� "<*l��Ս9t�
o xM���}���M�h��G>`���xI���v�U�3J��˭�����799��(�r�!��
��޽��`�,�V6�����8��/�)�}�!	-g:�I�Z��]JL�uo�,T�Y� 3�D�%h|=���<1�M�1���j��L�n3��b^Πɼ�d��E���˅o�ۧ����m�"?y t��a�l( �}�ZL
o�[%����$����w�:��o
m�^K��l���eQ���8ߨdeV���<K��t��ф�5KS��g��5����<3�5��E�>�
����O�i�b�<?��
�+
�I��8�cC���;�!�r�E�\)X�0KǞv��)�#)�S>��v��yNM�&
kf�c�F�|�
�²E
�%�؄[��S4ԧ��Q���G�� �fU��S
�ڧ(W?�;f���8)E�4^����q�
���B�T�)oXq�T��TOΡǾ �!Gp��|R[0!i�㎌��M���t�
S�
�
�9n�:]�65Z�V�I3�,��l��
(,�#(�RoPV7�'��ܒ�xzW�O^/�
4B� l�i�QNke��j��Mz`/z�^���c�R��G!��s��y|MM��ݟ��T�z�U���ɀm
_m�6Re�:n]���
P̝
�6�$��
�?�Fo9Y�
K��u#�|&(sGg{W]T at R1�]a�F߭4�E��S>,��=
�ą���B�M\�Z�X�Cr�2{}g���%e嗍��6����{���0@Ѭx�-f�����=�zs'B�m
�z�ģ+��+�V�j��nv��
��%����g�̫<��w��^+��$R��+�IከDk�p�c�{`p���xH��K�\��VM󵾃ҕ����9(��
(1R��3���̺6
���с���ڹ����T��jr����Oy	X��H�j�&O�l�
ۤ͠X�N�˕>�B�gB_��X�賂E����=�Ӛ���>�W|���ոE��M�� �
�v(����f�O�\9��/�G��V�Cl
6!�d���</�=��=��ܞ�Y�B�tb�L'�m��l�UR���KLz�HݬU�:���l�;�י(%�;ĴYטdG_H��do�ۿ(>
+V�"����e����]��W��rX'g�*�Pj�8�"�ԓ[t��Y#�^�:y���Y����
!;�I	��Z�
*Tg�V�6������2[��̃P2bEPLfT���P
E�����׻���u�\����j
F�1U%txͰ.<���r���F�����:
aw*4~�������a�ýQ��,���Udm��k���T��qN�����C/�ζE|ӡ�K�f$��rf�r�R�;�)��?
N���
\�2�If�w��H����f�%�<엣�����q5����Xuy�ѕ�]>����Pf��=���gz�Fj�W�O����B��=6����q��f���6����Iӭ�*
�݇��y4�*�d)�ٽ��I�Ia�1��͢�MvD��
�~s}���o
.�N{�㑊]��y�Ј��A��񶒜��u�
P'����n��ONz��R
9*������]���wU)��kT���I���:ÖW�N��"~_!�x�
�P���nT����{�l����ޫl�l�h��iaR9��Q��}��.�:0۞�/����
�u�5q�
+�n�����Y0�
�l�%Xg�dY��sE��T��@��7o
��{��'����l������"��(����
�A�p�
+�=�Uf�{C��ͻ
|c��`���� Q�!�yK������^Y�㒈�t�����Y��c[���1�
���~��$(��]����I��Im�/�
ӯ _���q���\~��.g�	�P�S
+��l�S�b�
���&Ffo�&��xQ��c1�DJy�d��;y�yϸB�2wY��l�LY�v�3�f
��0#2�)m���	�k�Y�y��
o�,��]�H�y���w>������rv _� ���J���
� |�e ^� �$*�
��.�%��`����Z�
> �I�,�X��Q�bk'��h��͸e
=��F�`ӳ_�G(�w�p�Z@��=��p(A��+r�{Z#Q� �v��j#	�t�Lрj�T;>B���
_ c(�:b) �V�C�#��ql�y.JN<˟�Še���y�/�����o �C�Wg� x�s D��h@�u at X�# F��z,@�I
�3r �VL���82����
�;��5��k�y�%$�)��,�~h
�ܒ�`!dl�G L��
2��h��,��wO"^�� ߳
 6y
+��c��	H�s�e��j�" �X�Qi
���5ưY�wT{}��5嵔�Z�e�5ll1�^�>Z�`�\T��͉����{�{��~a�����z�}�� �6 r�Tؠ����<l@ΖW(��=��x�Y@�s-��� � �Zz �nP��
�l�8ڂ�|��)}b�"=�~���..
�M�ؓK���Yg�'��c�4V�����/ ��}�L/P��[ �0/�\.@�
+���%,��
���qPkU�| �n�X�}�B���z��K��8?�_�ݺ�"�`�0(��o��>j���3a�:Y}z|l��W������;��e����|W�����'oK�*�t
(_�J�〼�K��:�D���w; ������)����ٵ�U]v���y��p}���x `r�7��۫۰#���o�
+ at x� 6��N+��
��
t��a�Fs
�� tnGj���F'?s(T?����.T
��
��Kmbt�I.�K��<}�x�n�I��{e�
5�C
��ٞ�1�ֺ��@O|"����_ �v�B
Z��p ET#@�-�E߳��0 -! �q� �l
P��2�sg�{��������mX4�U$��-/�^�Ў>��
+Ԟ��@3e�]�=�¹@]�M��鬴�=O⒬�+���k� $7�U<|w����ѓ�2!�A�? ���d��\U���Ȏ?���0��[�kF|
!q���>1~vp⯅I��S�҅-J��Û�,���-��A��QGX
�"?��o�W ��@�'
+�l6�F1Ȱ�o��2̨w� ��_l���ڣ�[C��^�'�h��g!u����)�/Q�t>%�j�-����ʽ�C�+�n�M7�!�6t�e;��"� �9�G�U�M֌�&�_���-C;�P�����?�ȸ\��n�G�0��Y4�L��CL*w�ѩ���L��������&��}�G\RVn�@��v{��KTҟ�8��II�W�ʋ�R��y_4)�l�rk�4��jT�W R���L��I/�^6L^�sz��AVǮ�qVH?�„���S
���g��tz��4N�u��x7��E?�uM[�W�y�����>Z���ߒ��{��ز�?,�^�٥0k?��LF��� ���#�e�P":���:�Q��3&�G���t�]-I?�'�s����Lͫսo�[�JOU��}7\�zfj{��b���;�Vi����kP���R�Ɍ�N]kR��b?7�"!�?؟
l��1�����AF� �o:�x�T�{Tc�zSZ�3�F��`�xО�}�K[aԜ�z�/��Y�뽁�
3 [...]
+��; i
О�̂}h����.���E���;);AX|
/��.82��c	_����>

���L;��z�#֧�`�j㤥��l�
Ώ��wr�~�V��̰�w(�D�K�����64��P�q} L
�`�
��_��)��Q���~�a�N�S?��	��|�Qzu�9�"�
��YA�u�4e�gu|�T[����x륏��CO���~���[o��"��o�
9HW+�"�+���P�y�͊
G8�����xV��R�>��%���cN|��y֋�Dj�����X�W!
�]f�9R,�����_�˥���syM
唍��:|��.�>���9&{d
=�I?XOI��_Ƞ��Llؖi8Zf�4��g��e5�hPs��P�['*�
����٬��e�]���G���m!�^��|{�Z�Ad�p/�IbVQ���p��P~���,>�O�YQ���4$�@]��f����눩�`��
+X��}����E}�
+���7ϸbT�A����v��A3���Tv�
eµK�$�R��svJ/ߚޱ
endstream
endobj
221 0 obj
<</Length 65536>>stream
+��í�>U�2�np
��T��ٶ�ڈ����V&�<>�L{��)�JzD��
����P�=��P�p�-��&�-�褐�V��y�.��l������r���Wo���g�~�G�djw
�:�}5#jH
Ɏ5���͢Wi���i�3�~�̨���LS�6�VK��'`m�(h�������o��Ӝ�
�^�
�ⷮ�/��>zGq�
G��ݭ �Ea������BT:s�
��Sv�=�>X&
�a��=�Sߝy�B�-��4��[�~=\��t��I%1
+k�ժX/�C��Tkd�8��
��-,�? ��^��sG˰��W9?�����F��z��y��������E"=[fGN�Y��Y���}7Pg�;Ra絓�৚�D��/���J�k�v�W�b=���5�#T��_��&#Mz
+YF
+Q?G5�W :��
*$
�i��<�P�n�G�����n��_�c,/��>��ӭ�4s��jE�����Fb�W�����;����@�z�G�T��*��v5�V,���n"FӢ�l�E񃖸*쌹���5�1#�����/ 
�������6k��r�Aw�����b�c�H��9��F��e��9�����;��	��7�V�i�VmC��q�������kR��N�Ue��\�n4f�v+/�"I	�v�,�H��E�� ���/	^Py�=��Z�5Vy�m.DK�*I��"�K&��	R
䈦ܭ��a�U���Ӻf5��k-=C۫-�IT��AJ8��l���Uy�r����,�S?X�4����&��/�]�d�l��-��_��r���U[I�U���̥�,�ٜ�r��5��׈|�2}� COI��v5y̴[y��5�
+�I�Q`V���FT\�C��A�H���:W��w�{9��I�ω�y�u8M.U\�Q悼X�[�_�g�?8aժ�}-X~�=�y�y/�Y�[�f�2rk+���kqҡU����&{غ�	�&1���>G
*��s��'����%��ݽ�ÿS��/��UPEyU��2��V[��/n+B�W�˃��o��z�2����>�xE��`pZ+�rP�+��x���i�9a�Cݪ
+Нk�b�
L��g[(�I���ch��_�$z#��ܦ]�o�a�z��y��r�f��
v��Ƴe��r�zdn���á�3��Z��"m�q�g�~�t	�櫪���N3r] �Rkb�/�����\f-�g�(=�񚳕��:�Ź({AA-������Fu��N��"��V=c
.Ì�g��=1}Z*�qZ*�:����~���缈�
��c��{�-�;��Ŵ.�I��0�"�;$u��+���	/s��'�Nϒ�rAn�� ����0�rh8��P%Oz���W�=���3����,�.�5Bm��
���Q���h��i��L�ո՗�&�>Ϗ�2���YRz8T�~NR���@݋��e�F�
�@��Ȍ�iӴ=ld)gR.RȽ\&�P%�E�MP�����)�E})���
+T�	�X�Ʋ�`���U�y�A� +�� s��<��� ̨Y �|OZ��@��>
j�J �h
���.@�x�RfC4� �����e Pȓ��B�}���0Q�b�1��:wcPj�
0�^��B7���C=3{�O�
p�e����S{�n.Pm
 ��3Pm��ZgM���&3�vK+��G����]��P�Ph6ۂ��W��%_'�g����%��Do�o�
+����Pf|C�2T�\�+�oF�^e���
�i���|��� L(����"T�� ԍ`m,I
���b~���	@�
��8^��h �/����$��V��J�ɍ� 8�j�O��B��
jď ���_
���d�8� ��4����m־�����+�u
�l�
:.��� �"� ��a���2D
5�fB�e#.��q�V�~�۝�0������
+ 
+](t�i N�
�'��?��͞��f<r ~�D �
�	�C�t7X�x 0�4 V�o F��;4eT!z�K��w�!@���
v�
O��
�j���l��Rj�[
v⯀�RPfDtN��_�e����2��w� ���mn�z8�>
>ݔ ��a��aEX��F���}�P����l݁�g/2k��H�[Q�|O}&��O�h
��Z�uٷ�+ �!��Y����th�x�҄Q~�iB

@~�g�ǀ�� 
+I�GRx�2��Ky�8��#�%��ˡ�λ�KzȲ��-�8��QK����1�j�]�������.�����_�y���
Y��Ypg�8ՖP# J~g��x��
P����z��2�xV��C��K�
9M�0�|�Ro�X�`U,�gk��I��-
���EH16�y�
����{ι���Xq�̻%g�����;�
�"��Oz��f���
�h� ��
��͍ӹ����y1�
�����cj��Q�w�C�n�峊�����s�2�yn]��}|ۼLr���
ewyj�
o^gI7K+t~�/����.l��
�ه��t-�׀��b@;�=�)�2�� �
�IA�_����v���E�a#�
�
a�{�^GϹ}�3���Iԯ
Hw_^�H��0���
����
+�>9��2�����%F�
+X��y
}ς&9A�'��L=A��e�VdB|���9N
+ ���
ݷNLH��2����^򖯆|l��၈ݥ����.o�]a˧6��E���:�
K�\r����Y�g����ʾG�
+@�rY{ ȉb at SV����䛵-}�
$�Yů���1ys^^�^6���XH�@�yH��
����T��{kW�uBMg�����;
WXv��3�7/�Q�4s=�X�ʤ��Bo0/�~���
+mʀ�Ph��.O� S��q�gO���H
��U�W[���^O+E��R뽿6'�+���p��Bش�j��ƒ<�zv����z�΋������56���9k�\|�
t�LG�_M�B��m���w�-=[{ ���ЍSJ&�C��O
uK��FquNс{�F��^���m��z��:��W{�����"�떵Z�����vk����H9�>��%&Ĕ��ؤ�Ȅ1��v�ϯ ?������̚��`��d3A�YI����U��
]�����<b�_��L��`�&��<|�%�͹��1�
��s(ζҮ�����/&�mԦ�q��x��S�Ԙ�x�_����� H�
���V�fj�0���u-=�x�7�Ξ
����S�`Ƈ
�.v��ޯ�
��rD�����2���X�����y����jI�RX}
����N�w#��FG�>O���>��7��
Z�	�������,��,�?{��T2m۹{��� (MK��|#
{ƶ�/�kcSo����r��฾X�܌F�yΔ�<5�0b
���Q�0�l��z!��ޥ� �R?� u�>�-�RĿ ����� �F�Ɋe��.L=�##Y�>/���%7����b��`�W۾��ݜ��O��7��J�I~q��G�
��
�&S�u�x�{��V����c�������
���n�Jz;+��/�`����
+���]$� �2	��뗊W��'̃���rf�c�����f��A��py~��<�ǬOK����I�
�c��ǃ϶������ �=�)���-)l�vP*�}�Vsw㥞�ë��
�ݮ�@8[Pms2��0�m�x�&��j�|Z��
�Ý&�V
+w�C�guq�l5�S>-t��l&~w��;
S�i�;p�C�R:�p�&#?
M���m��l)�w��h%?X�
�
+�?�2� n
z>�@f���-{��=�<7	������
�p7��3l����ֶ@E
�`����˱yv7��
zG�zQ���;��H�j���rs��{͎��[�.کl.i���S�R,?���o���\ Y{Aw���နu�p�
�H��
�D5EŲ�x��l�U�d�-[31�S�W����UA6Ց��f�:�d�
�
+ګH�m����
	�~t�>������i
�̫���Vs�{�>���W�>��æY1c������+����F?خ
&ᶫː�-

�07w�<�aS3�ww�A(���I�:�
�32�v�
+k����l�G���;�tjz�j���Hڶ�����kd�g�0���D� d:c��h�S�A��Rg[�ŝ5E���B�e-�|�d���Y��h�͠2B���{FN�,�k���2N�W���hv�Jg5]M&z�Z���ޖNb�p&�b�!5���k�B1�49��߹2��6�E9�����I}+iJ����}�Քy����x��s�a8��wd��J����	��;�.�k��r��U�>q�{���jonp��S�̢#l׳@�]Jh�r���QqY���b���p�L��7'
3�H��5�w���e|$X͖
+�}�{�[.�h�������1����i��M��J3�z���ڪ%�x[]u���fiA)D��q�U+��~�d�,�V _����\H�)	���Ed��nWv�
�
u*�1�̛�h�������7�k=�^�K����ۘL�
Ӽ�%��߉�$Y��ZK�kM�>��f�ʉ	-�r�0��4���ܢ�*�)/_���LYc�D�:�~���$y���?����1hGHj:Y3�����KI�Ut�Σ���ZV�vF����\'�-���hP�b�k]86w�ʹs��Z��g��R2{8�s�e��jլ®��]�opx
�:�Y;������[�glN�&f��)���QK���BcX�
+�r
+��-S�ڽ{�jN�ձn�Q�eA?���i�Le�O
<
�2�t[%�
���M	�nQ����-�@�T;ﭠA�
7�e������7lV�&c^
3[�Ezr��?�]����R�Gitg���6:�I�ѭ
`4�9mq*���)�'��龬�;��d��'�ńm����$��w�j)߯�[�Q�Բ�6�d9�~gn
Y`�Av��9˅p��b9�꨹
�?Ѓe��g��-g�D�����b�B���Z��f�|�2=�x��5JVK�9���,r�
�xx���5���Y�
+){��0���J��X���P��2���
+��E5+ǐB^��.�_aI��{�U��P6>��Gq[�va�d��Z]���J�~�#L��QӜ��b,r���;Yg��� ��*�,��J
Ob���I������3ITrk�5µ�9A��G��Z?�,����;�b�Cv���7�~���b�WW��ָ�Ը*F4Jp>�j�}�����ce��A<q�?8���ʅ�m� c�琖r��j�J���2/<	����*��,‘�Hshp��(����w�i�{�S���ls�l�%@�
P<#6�o�*?�T8� *�(h!$ J�@��. at f9 at x��l��J���B�t”A�o7 at z�ꁴ
ݛ�=?��M :8HO�����H�{m�g!�6�ܓ	��� �M��}U� mϡL���� �n� �@�����x9� ��@��'����e_9����Y�aJ>�A�Uu@:8�PR)҇qb��*�}a�D��</>Fj)O�1�?ؿ�? �T�V�IЊ
��4 B�`��0�� t7�� [...]
 ���}�\<H���z�K�u���C\���@�J���ʣ��;?��n���
 �+P�P�27F`��w�>����������5 �!@���� �� �B`�݅2 at N�Ĺ�M��9���E� 
��G\�~��=��8䪕ۜ\��ZfrA��2��p\D�u�!��BW���#���7>|��
+ O�m��k3��f���v�mb�Aj
y��08E�
��z>K�� hf~(ÿ!N�+�Bb�$�Њ�t�-{t�G���yz9�����
M؂B�z
`ӻ�5� �{s��e�۟e�e��
+�Wu���<���`����o|��=��E�	]��+��+��"�����]�����T��4�ծ�U:��<s\�3�a��ѿ`�� M9�2߄
+�>D���듍��@ �l
+�0�> �o�a��n
 <��*�����[ɑ����ɟ>�X�|����Z�x�����
����
+[�^�Q�.�+��s�ކڝ�
����`�ib� x�S �{ ��:r���ˬ%@6J#@<�+@��~��%�=G����b|+b\n\�w�
+�$��Z��D+9���
�V�3�@:���xhk���R�ͭ����L;�5��/�H�{��m@�a�����	� rr��#@u0�� Tq9IΣ��a�}l��]�ʟ[*�$#4u-�r�$�g��=~׿^��������Ff�'��PG'�*��-*m'e<�i�\9�'��{��v*� ��W������zRf�"�{@Y����G�
���fR`���18�O�]A��r
+��|�
+��?�=�j��ID:6�� g���v۽7{�w�7�l��WX9>A/����0
A���
�
�S�7 찮���m��
f&���#�D���.�I�ϻ��
N�P�^,?*lΦU9�`��8ǖ�x
�7������]�uqV��-��
��kQ����N�K9:e��Y�:J����6+l�e����o��0�
+}�- at R�
����)z���;1�ʥ��Z����x�:U��I���Q���no�8���(��h���̣���PN*
V�yX�f��E��fr�b �`^�c�4���Q�Ko�n%�����lC����?2	^m�VI��y/ �:�@F����N
����dÞW㮷�~�GS�pX/����fm�!�_���i���
+N�O��ڦg֢��눵�G�a�Yjf$�s���Lj��`�
�����A�M������� p�
+���О�0��,.A��tt^�G|"�5���gN�u�|��Lk�Ql[��g딾^|�oV�ڞ���EٷnY�i��Cڨ��A*�M;۟a!~�Ri�5�
kO�
0�������|��{�����}%��2��1�{�=�Z��h^�~o
+�{pU��˼4A��{�w��}mk^
�:� �Ymv6X�sn�lMk�=RFu�.��n#&=/]���
�jkyMڍ���9f�K<���>��m4*�� ��+ >О�-�94��I�e|��xX�kt�J���?ة5�߇���x�]Y;�IkE5���oF�WʦY-�+����3B�_&��q�
+���
+3|lաX0�C�ڏ��|�"9�3)�=�����t��$D�q�vS�Y�)����{2�%�K/�e�p�X���S��S7!7�&ή�]�GՎ2/OC�
�`ħcKi>�.�k�z

�܃�s�O��B�'��ô��	ϰ��P
������<8��B��7����2��w��If �9m�#�}.v&�d�'
�׮�mb,�5&^���-����4�J���>�2��Lc��bd����-m�����{dVF�҂����P
��z:-�.}_^�]� �ڝ�)��
���u؇6͌���u��O��\���v��
��ؗ�;�+7U��Y���d��,�r�jO�u�����6��9hثUo�7]�Bş~ޝ�s�x(�҇�:�҂-_k�3.����
��տ?�����:�Ce(�X2B�N4Ϡ9mz{r�92
��r���Jtw�H
ۚ�ŬŬ^00C����ЦmZ
������M{�@Y���*l\d
�m�~ҭ�Po�>���^<sWY�9v��Nɫz��u�`W���{�P��˄w��TG�v�t�p
a��m��[ �ky�9��r̭~�2+�̘Z��f�~uT��Z�֪��2�9T��w���j���ִ
7w؉h�,�`M���7�nrm5��s��ɜ۵�s��7 ��6��u��i^9}��t�{q?[kխTk�֝���r�l��������$��RG|�e�����}]J=FHZ*���:��ګ�g���h���rX�֘�WĪ�
�m='���I.
7�OM��x�m�}��,����\�Z�����U*{�9d��Q�7�ޅs��
Ƿ�¤?+��n��N���g.5褈b/;�V�;���ק{e	o���w�s��҄�5
ݥke$V���>JdT���@�ѹ�
�S}�G�� �&ҌH�(���Vp�w��mk
+��B��T~^k��vxUg�9������I�%�Ow�΁R
�+��d_i��z3��t�c՝H%l�T��w�>��S�t���ĔىE�,FU�x_��)>�J���o Tܖ}��pGzB�v���:n)Eۓ�AY+����zq��������W����ũ��ED��܈3tK�m��KQ���Ӯ=J�V]�Rl���^�>.�y��
+_�+��
+hP�
+N�>	��������

��S3���;7�nOS�
�:��\�1��.�	_�eF��
;p�����D�S,
�޷k{��͓�N7�虑��V�U�^���6큰S�y�0Xx�E~x8���iE;��G��D�4��L����{��7���
�N�lJ.�^	����/�S�=Vd��XX/)����-Ŧ���%/V��w�@��zyM��KIU�IX�
F5�2}���o�����$�|�Y����۱K:�32g�Ι]5����ĭwǿ��_8�] <��P��J�[�
�/M������'��L)�ܭ"��m�uj�z�B���}�W֩-��c=�B�x�ޕ�rC��;X]���qz�=_�WU�v�0����l����TT�����Zln�K��������/G���w��55����OM�⁺wo�I�
�|Z��7�-ߨ
B�������C�͌U%/\��N�ry8NJ�mb\m���`lc���ۻWp[�E�ڟ�|���l��r�qs�B�˝���
�op��12L�~У�&��[߻ɾ���ЇiS�ʩ1�ɖ�����-I��,��'B�-���{�gS��is��E<�

+0H��
�^�B���_������1|��<.�G��aKΈ,?�_7����&��)3Q��2?��-��
$�[�Ve�
o$ |`HY���ڍ��ӓ�8V�
�RA-B�I�R.����
zP��
3V�j���	Ñq��� E�bX �,��ۄڢR>O�m��7�`���ߵxD��&^�j{�5/��P�Z�J�x��g��c�jl/���E9O����.��#;i|OT%�aӴ��0��!4)�
�V��{RųhY�F
MG�c좓~'A�l�En~��蓬	q��
��
+*%A�������eŏ��{m
pLf��rQPY����s������
�~��rƷ5)��5���-ޯK{첑<��K>:Q��M��*���VSRE
�$�@��,%�
���
 Qz9���?
 ���� �.
A�Ա@��
@��>A:�ɀ��P�уPM�Z:��MS���V��f�)���GC�2*
��
q��_�Aj}��t�A���_ؐ��
 Ѵ�7�{�qP�

+��DIȤ;g���{ }�^ mY(�)�t�@Xs�&�=H�� ���b���)@�$���5��wV�g�<������,e
+�ԕ���g�v���,fyh�!�����W�P��’e�W �?kH��4�RX µ@�2�@z�@zN��7��Ƌăi%�B� ���
T���WĴ�x'{��<ηC����� �_�;+���� 
�� 5�]X:i 
}���M�?q���2 at V} =o
�@�}�d��Y� �@�'m
b��W	
+}�G��
b���������la��~L�
�\~�U�7 �_A��_��-�E(4
7�9uV.��`�#蓧 ���W:�
@Y�ȧ} �mċ> YSD����A�a��
�^���b���'קس��O�-�1�\a�m&�@6�k?
+n@�}��w`��7ո�2�����=��uا�]���ٞ�MX�
4QV ݯ� ��'@�<|R���XU^�����J�K� g<�����w�����߬<u��
+6�
z
�p��S�^_~�?��@s>�� r�8�j|���Y�o��Կ��}
+ ���S��o�΋�V�$Ӝ����F
ףN�`�"��p�	1����ʏ�d����c��W*�Mn����
��f�7�
c�n�6���2*�z�B{�C���-�6 �߼��^C�}@�
��½T��z^4|��
�����
���B����0�Q�7�pî�!�?��
�����u�t�����+ �ʲ����L�%w�x뛚�)s��I�[�o h+�B��2��{������Hn�d7A̰d`
�Ǵ�]�y�d�&�-B>�E�v�{�+����?�~γ	���S>�%� x5j�
r}�>�`�U߻���Z?�|��T��r��G�S�?���-�@�$
���aM�ҡ��=�7��0�%y��͹K�V2_
��P�Oזz-�c��
+���
���x�v/�v�M/q����N��n��m��ƛYrs�V��
;���2���}?�/���
+���o��'������
B_��j���Ԩ�&�iݏ��~C
�O�v�U���B�U�t'�
:��ȥ㬹��Bgfw�͝����c�\�u��*�rFds�]������l�hh���l���x6�{C�
7��(�
++�p�u@��
�o�v|x�+��6��ir�_��b���h1�h��琐v�d�l�fk��ӆS��U�^
�r���z&��U���⋟�����ţ��J�����
;k���tg���-l�� �L	��X�o�q���;e���
|�M�=�v�i"�O���y�
�/��ܶ���um��;H�T��IC��	b.r=�e^��U*ّY�;�J�Y}9��z
+�Y�;;O;f�09���$��6ڙ
+Vl�vZ ����26J��Y���
�>����i��mG
�Ş��<�Kj�j��HE�O#�yP����Ǧ��ZF5yn�~:Ͱ�5�v�
19fw�If�/����~���w�c��n�ŧ�
Ec�� NL��>/r��u�kI!8�quߘ�L�?:�ƻ��-UW� ]���I�i���`���dW/͹ΤjZ#�mH�k_G��d�V�ެ�׆r.k�vj���h6O��rG?d?4W�z(4
+�/�����pq�:�(<�����(څD�y����v�'��\8�X��[9����(�Z��mŨS0�H����]}F�ꝉw%Gڨt6�kz��z�h�N��rL�S���
�Z�c�n�S۾�:_��
.�؇N%@�d(S`;�x�רs��t���>�GZݷ��c��B�
�WC{v`^�p¬�լ�rCnz�;�$�H��i��x�=�

o�1no��=��d�����}��0F�����X��������o ��^��
+5k�`P�r����{�v��
+ke�������<^���Z���e~;w
��{i�-���Z���1~\Z����-˃:�1{��kt���Q�K�\e	W��^W�%��c�NTE�?A>�8� �(2)
+��󈳈
+��
�:�������|�3�dA�B*T�Jk���T56-_5|��7��& 	tಯZ��.��_< DZ�AHl��Sy��!�X�'cV`d׷���e��}�V�ә�U�泼���v�a,�gS��\U=����)��<��[�(�Xfzq[
=�S9B��N��M:���:7�	.��${Y�w���o���t�ۖ=��f�r�[��AͳW�3TK���ըe�����z
n-6_%8ۃ�a��L]
����$w�˼)7�k�Lyߚ��O�)l�VS
{���>k��
����|qeF���
Іh&�!-�g���f�����G��_��$;�rr-%Mo|ڙc$�̆���`U&��|�X0��A�5�+_Ќ׵�܊ӡ��Ԟ�/�%я�$W�mS��W3�6��J*���O����[p�[Mx���{gA{y��2}��<(���lj�(Ek��s��L���\]c�R�Q�\�
[�gc�ot��
���F6�Aq(f��lR���X�K��Mmj�y�����m)�9!�)(��r�>4���5�����M�;�����m��Ml�m�N
]q�:�nj�d�}ܤ>�~�1j]�N޿K֍����Nzh�����vQ�V��yvBH�WN���j���&
�x����~
���sc]
+��R\k�
�
N�ǻ��6���P�6�#�a'��o���!�k��@��M'W䜸q��gfǾ�rY�ާ�CƝ����z���U��:
S#���ڿ[�m M�Z.��.Z��D���
<���)
'�����7$^�H8�4f��|�w�7O��F(��Ì�b?��zǑ%��C�^�
{��y��ٱ��)L~z˫Z2�o��.���D�a$
ڲ��p ���M��X��
�\�$�1�

�Y��
-�^��3���(����Ѣ5'����\���[�Ƶ��wA�EV\f
�
+�G�p=���H�j���QB�;蓭����9-w&Ǒ�^=D���FMӍ�b��9��r�LY�W


Ui&�u��c�:��3e��
+e��U�v[~���z�A�2�_*�����A|O�����M>�)��F�`y�n��l6	�����A�H����{;��Va�՛��)�O�ۑ����ƶ
�����O�0�`4��T%̴�CZ�),{�E�Q�ԛQ}37��m�q%I�Q�
1��ؚ
^,r:���O�^���nWĈ	�n��Nb��>��5k(�NG���#���c�ղ'7TU�1FWwiPXkʚ�ug�ǵW%.T�ب
+^O�,�0�H�!�HG�UAIyX��÷����uο�L�
4���s<�77�_HO������{�δ�YJ�bu"�Nhʋz!��8����l�$�c�����lRutJL�3k�97�θƲ�l6��	a�[�%�f�%��q� +�u�2���PON����|�T�!�?���?L���˝`�}X���`�:��;���KĪ8�y_5v�Պ9�61ma+���U��x�*�t?oT��+����&����`d1�,�
Y^��9�"�[�
n�
+,�T�A*��l�K�(���^pVr���^����}�d~Z�?�`
h~Y4lf�5���>
�
E
�e-^���\So�d��Z������™b�:f
�ݞ(��c-/��FN�
[Y���*�#<��L�D??X�hO��.�i�߰S@ �����+�ύ���K쵼�6�fG&�Jl�)t��.ܯȄ8.�B�'N�g�]#B�̋N{�.�y}�K/�>���c6�B�x.y�CLc�����
+h����4$صB��������
		
�C/���
��}p_��~*���)E�1g�4�j�[i5�2Y|�� ��^xn,9?1d-7��FV�'���^��&vZxz�t�h-���!�.�&P|�, ����i	t�*���e�Ճ�F�
����Y��H�f�'��ZH`)G$�Ѩ���w�;������$P�����3�Ӡs�Sg���B lp����n����y�S��\
q����
�
�W�_����&N7��e�@X��͟@a*-&�"8h�@�=D;@�35��'��*���-�j�@�N�{-���@0��L �M!�
��B��?��upR����	�/�b�y� �������k�nX�@�
4���	��A��^L�l$p�'0�m8=�*�:�.�	4�Z �p�	d�	4���
��������{)�F0������N�ob�2ݼ
+%b��z��	<�A�!�O�G&���%�&j$��}��Q;�y��4A`��G)I��\���	,Kj��
�	\Ɂk�4� �����+	\�;��x,��2|w6��;�{��9<	��}�#62��/@MgY�f!A.>��Ľ���l#A�}읇	��	rS�	2��	���(IL�����0�<�	�R�~�'����(M�
��TܮF��0�KW��'I�Ѡ�
�j6{x
�{p����^��r�f��~��� �˰���
���B-�`�O���H�"=NЧ�I��)L�~)���ZO�쪝 �x���$Μ��{�i��`�
��� }W�y��
+��{R����
��?���\pc��M���UF��ɔ���	�
$�_��n��Y~_���9���ȇ��߷m��s�`F1J0���يI�+Iz�m�x���0�bi�x��A��s�b�g���}
rwaTfn�s�]q�49���dǚ�l��m/;�=z��tև^����\�..E#MFT����$��
 ��e�?�9��|��
ݷ;�1f�F�Z�.z"�����]�'qv�����i����Ԣs)
§�p$��
���8܋Un�kхն�
�ñ9Y�s���dk����/�
9����? �[��d�3��%SIp#�������gM��l�}ݥ�'sݲ��E_�̙�5Z������
+�n��AҼ܋��a�̄��� ��v�fu�%9cui��Og�zp��}Nvg��5�l&��D��/���'��-$�.����KU�l���E�
��PT��Y\�g��p��%�s�v��N�*�����v}|��5Y-V�"�yh�Et����sќ}>�5C����{�~ u
�w)
~0w����l��E�
� �WJ2�u%�
�;o�T��D������
Թ����{|$���m���-lS�	ru+F4���d�\<�ce
o�Y:j�f͋�����i�-��In���"�$���=�:(��Nso�\s�w&v�����x�K2�N�;CRL�I67i&�mQ{�FH7L�D�FG?9�q4r�����x��U}6�,�x�O�9$&5�_sq��-�? ��;�
׽F�ڭ��_Ǝ��F�2m��\q��Mq�
�
�k�ڵqe���οkM�#e�����9����r���pܹ��|0U�*���hm	��r���
���D O����l���Ǡ���9
���ȫz�3-y�?C)lA���y�l�np���
��l��^��Q~�`Sܜ+�H��=Zb��ץt)����6��b.��4j�Z�z���}��sI&vS_�S�|{��u�̨��#��|�u`)۶׷�a���*����(hQ���2�
+�J�
��
�u����Y����5�G��+%
+��4�Ο�� >�=���ﳜP��o��|�n�|1l�S
:�}s^=��.x���q��
��c�ެ����=a�#�J�rh��!֛�ƹ��뾻�r�=����ޙ_�].
��g��|��dp���Ժk!]��Q�
_L��-V�g��x�+B�ոufMt��~䬙
���`�>�x?J��őF�k��� +0�����d�:x�&e��n�=u�	]��i
�eP,��G��������v����!i�`6
R��
+Q��
+�rf�
�Y����U�%"+Y'��"���lsgZ��zx��1s�|������w��rq�V@��t���ci�f�{��W��j[Qu��x�U
�ͨFv(�F6�@�45�>�T����/@�0�	q�T(�Dw���_��׶W�����ZN�˥JyZ<~D/dݱF\�ݐ6��K�s�ׅO�{]�iw*YC��e
�QF=@I[9��s��e�ZS��Y�� ���הrq�Q�Ȭ�o$�Ө��r�Pt���`���=.G�	}��:��M޷&3v
��h/�.�A�4\>ަO�맞�:�]�h��M��i��UT�����6
I~�w���K�m.7����m{���_Ӟ*�;]���"����Z�Wx����
	��˒}���@������O��kg\�i�G�)l
�m�g�����Hg����X�=�#�x��S���ˑ�)��F�kͲ-��;_j���Ժ8��$)�F���d�5���dI�&���|���"��N�Yњ���[�׋�,�ξ�]�]/���
�C�vx���k}����[$x��Z
^�Q-�['�Lb��n��Ԩ��U��4�H]i�d��}�*�s����M��� ��J.nI��4%L��_��9oʞ���~��(���v�x�o��a�q��v�_C�Us֠A�}�u��'�4�ȶ�#���3��l:Lf{n'#�ђ�:$��lN<���pƉ6�[6o�Jg�Z�U��
+o���`�aK8��(���\�w�&��?u����n�O�6�����{G��669�\a�����#{������/
+U��e�.���d/m���^�78
1�3���T��N49�׵X/)
X�.�Yo����*����9��ȅ���p���!ߛ�Q��z�]�p�_	@{i��ֺZ���T^��-=��^�uc��Tk�;���Z������Z�'G:
+V���Sfc
+5�
#4��i���ҞY�Fƴ�'��m�mfiRC\����4~q
t=���rk�c�kvn~�;;����MRZ�	�M
��Nu��
�{��(�@���s�cm��I�f��&A��p
�	?�`xP,]X�\K��X`:���Z�l�������D
8�E�\�*�W�
+��@��9�����d3
�BZ
����3���Ks�w_�y7�g=��*cyv��2��/�
B�~

+M���BH�?M����m�Y��J���������z�]�~��j}p�����Z���c�F!�f5rsb�>N�Z�}��۳+Е/�h�5�����a��m�E��l��0u�+����a�\�C���3�<���[��d@9h.эu�������F�ٖT9r.�Z�Mk#1_���V���Y�댳�dqa�~�
+�����ʒFr�XSW�9�(��1���Qn���9��n�d&�P�ddz���dr�sd6�Q�f����M���5xVҤx(Q�ڨ��r��Y��X�n��:�ʼ�|V�1�+˙�/gv�Cn���ܖ��u���`�kG�(��/�kn
�ů/��Q�C��fvק�T
���ʾ��u9Q�t�"vQ)+�&������#z�yd-�N�B�.YA/6S��6��?��ႻQ��?V�Ϸ�R�Ŗ����*�'�y�nr�ǩN
+�.�d�)���Ťbc�1R"˚�
V��ԡ�mY
��͠=v�W�o��V��d��&��*K�-o�޹�+
�d��Cټ���C��*<����MN��������6���wv��d6�q;�v����hS�U�Z%�\6U\��*�����.�Ʀ��Gs5Ď~[�cGx�Q���	��:M��F��]��|��(��J5x�*ҙ;��g�,/�[N������`x�*e�fHc�5)c��`�^�l�Z�FkD�A«�#��| ���a���ք���g��V4i�3d$DDy�PlF�S/J*�b�-��	StZ[��*��Jj7'UX3+S�����	��;-
>f��%j��q����	4�~�`�>		L�8���V�8�m�!��Ȑ�
{���
s�V�`�W�"蟺��8��zT��	[��v-�?o [...]
u��-�{���0�,j������}c�
C��ǣZ���wCPS��;�uQ���y�L̳޾��U��
ݗ����O�l�����Q�
� ШPM��HL0�a$�4JPW]��c��*	x]�0����F�z�fa�>i��]@*��\f��L��u%�����p�lM;�>s�>�v��+�>�������]����#m��
x:�߀�E P�<`1����%�����	v{|�
�����΋�.i�Лq�X&^7�A��)]��~6^�p2�a�h���(�����I�>��>a{�
�s��'ōz,��_���:W]yUv��b����W_��H�
��R�!�
�1�$î���%)V�����z���my�x��BY�������n�?�nv/v��]K���u�mn�h_�h
�Zf�ɚ@�ê���e�J�Õ�9'�ڳ�r*��&N֏,���
�0R�n at a2i�A>(��K2�M�����^�Okk�������9�Kq�ಒ���rמ��\�~l��n�&q%�ԛ�r�h2��j6A��
m�����3�P	����<Q B�u�-��s��z�%�V�fc<���/��a
+{$ɔ+x�y
*	.��wi�}r8��U�ŕ�c-1��C��G����{�k��,
uyZ��0�O�z:��>C8��f(��(� ���a�����zf���Av
"7�d
+�#0�᝸6
~���s̪�"A�oQ�A�&��;�@>^�voi)r�� *�nH ��v�u
k���Γ5��f�*��ʫ�y��n��>䝶v޽�:e�z�c*��#�4
8� ]:|x��&ԇ��������L�2�J�5+���_��4a�$X��Aaj�Ó��r�#�Ӱ�ގ�\~o�Q!��Rwj�>��sx�t���j<)���;�{�6���q{�^�=�$�eށ�cp���-[�
uk{#<+_<�k����b����7o�_�5�VU~�:o$���3�����y
+f��a��Π�l~��w[�S�2GԜ0�q+��ɂ��G/o<�-V#��

Q�߆-�H�N
�,��K�n.��}"'�7�i���s�=F�Bo��=&#R?�wSᄊ�J�S
�/�:��4
��
1�^�	����t�5��~}=3�%k��9����R��ɧ�v�Ź;����w��Ne:lS���n7'���1��$e{QV��%v9y�3�{~c��1D��|�
��W��
�t$~�`�����O"v�`=<QY��_	�ݶTe6k��^/=x�[��5�rۜ_�	5����h�ۚ��+��#�ү�r@��{���蔾��]��D�`<EY
�U�o�ZvwB��~Pײ�q�K��OR����/��A	^���}���g���c�f}�>��k�/P��}�O~�
�50w���Ѵ��
��:��{��S<t�V����'^wc78�6y諌�j[��W�����He%_!�B����*�U����� ��Y-�"ɐ���z��K/��dr�o�Un�b��b!���,�CO"(^��=�>ֹ�`���Zk
��ޯ=p�y�p�\wnH����
}���('��;W�^��~K��J2���i�Z�
1S��ZJʡ�r(��_��5é|y�`��7�춋�nm����S/f!3�g�Q��0�{��iw휭K���b�E3x�����.\\9�z�N5�,��R��������i��wP����
+-�
�-��>[�o��;���D�����f�U�IfŠw�>��>n�K�b��z�&�ŴH� B�4�
2qg�O;Plpe#�|�=�Ƿ�-c9�jz���c;?V��cީ��;�ѧa��i
�����G����ia�#����1���$�N��9��x{��i>�
ַ9�]���z�
����Q�XX^=,lc�E��1_�8߃�Fݐ+OQ
d���0����[}
��y1i�Mm�j����Eb��^��X8�i�Gb��+�W��E�±#�‘cK������,��x��y��]��~��e���x����t�2�wU�o�9�ԋ��������(���1�u�yC���ԡ��NJk�5��ǒ�2�Zgb�Z������eP��8��Q9�^:qN!�rR&�����*���&��E(���aB��M_���̎�S���=Z�LG��6�*�g����{�%u������^���R��Uًq�-:�v
�L����bWc&B�]��u��s��l:�4�EAmL۠+���Lc��� [...]
+7Uke�E[��K�E��:�]{D�P��F��^�����w���O��+3�W���.�n�6�ir6�=�ľϾ���V.
�S�+
��{�{�`%�?��s8A�}À1˛�����f�_��>�-���v�-ϻ�
�P*����UN�r���er����I�e2w�X���S�������
K��
+o�\�hm�F�Q�('���W{q�{��K���J�67y�PN�HN蜐l������l�Ѧ�w�\���oh���y�'S
+�/�!Y���9�nO�J�Y]DP�J�*�,��"Z
�r�~v��}��!�Ds��C��,����J3��
ZU2�����~��)��v*�5�T�=��y�`=v�b����b��� �?f]��
+�uk�@�u�C*�Oy4�dk�P+��
�dRp�@_/�<�zI9�R6��a�ķ.n�$�qei����
f��3z�:O���!M�صX��M�z 	,�~g�Jx�
	��UC��Ns��Aڭ\,�x��Q�#�
ո`�d�l��Z���	�*��0�2�{�kC��
;-`+�Q�e�-�.�:0[
j�P���
	Te
�n�@����(H`�
$4��w��3.���@������D�rm����>��<�>nƭ*Y
��J�em�Y,��2�C��|@��u����0��yj��L������|K�>��m� H> Z����.�A� ^

~_
ni��Sa����5�����V ���g��:q��G�N��͋����Dp�8�@Y��8if_�&
� Gp��� QL���ǀ�1N��7���K���J�a|%�NNQeb@���7��+�<V1����'�O���z���F���f�8��W ����>F�B��X�5 ��f�Ƀu�S�D�p���3S��R���z�)V�_���:����3�L�@8���I���:Na
��ˠ��w�7�\6�S��	��?
+Vp�`��9��y`���d-w�?�
+�gT�x/�L��m��/��F=���7��%0�x$�󻞅[��&
+�xU���~�g�
��p��e�4s�Ӓ
n��
�S�;�Lt*�i#N���
� XC�s#b��δM���btb�T�{;TD���**蓿�q�%�1Hi�/�������_��O i.�i��@���@�FO 
%P�[&PnzI�<��C
���F�`�ե[{˃)�چ��Ku��3x�O�/��9g�|���
��=�F�6�o��L� m
��u������ �&�k��~�

zi������ �b�T7�׬߭^��nu��:�_�W��<�;�'A�Ө����,�G]�SaG|ȴ?��'�;���ۧ���`�ERz_:K&��b�x)E�c��W�^)�:O�S�0n���3=L���o �虠X�N/	Í�r�[yc���6VT�f~�̌��
o)6�nM��\��-~͠'�t���~ve�E$n�z�b�8�y�0t/���D�]�g�;$*o�]��l.2��l����/��a��K�d� <ox���rI�
���HУ�x��3��`��=!��M2��e�wܳ!˓)��c-#�4D���-��>���i���K��NB��v�I�L�nցwMV&�*,-vWZ�S��pD���a17g�,>�/��_������0�]���c�'�F��Z/��uR��l�R�p�h[v+x]Z��Ԩ�v�Ne�]7
�
�_6�i��6�"�:7��U٢��[��-k���pb����^~
΄K��.���u����f��
+��"�9GQ���D�E	f��e�w�eB���W��ħ��e߉@&�[g�m�֓��v�������狨�l���̽u�9�dK�Ll�s��J�M��'
�d�����
n)䞟��[i?��{�Ɍ��	�/��A��nDz(�L�<^�
���6�*����-���u���$��j���f>�.Ce�/�/�3燒9kʵѴ-�g��8�I�Z�����zDq/
+St+�F����2��b�<���cBv�����L�c�fB����%�H�|�`�.�# ���.��cqt����.��^nV�C}s_ِ-�T*Ρ
+^���7q�
+
�7�~�3s��k��b
r�~�ۨar���ڙaZW�yl��[������Y�j�x��
�[
m)����/	� @��F���/�_
^����h�)6���.NVu�<.8%����G��n<-��Ǹ7
��ꭏ^��N�
��x9�j�і�a�sh� �����ӻ�u�:���ZF���p���
�����������{�%l�;ݴ�"���x�G({C����>���Ǜlf��
'�e���Bޭ�?����ygj��ER]�elk�d&?��PI7�s1��7��2kM<ӣe��}�'���˝�Э�1y�1E���?��<���?u��:�^uv�b&��P���L��e���
�T�g�by>)���7����G|q\
.E��;�X����޼����i��7�Ԡ��И
+]Ȁ;R���`���]��vkk0��/��ֳ�_��:7^�&�[��9�xgEu��?���tכ'kϳ�[0v�u�z����)Y�sLJ
����8�e)���e��
!���Zo9���~�?�.���=��۝*ݭ)��1��|y�Z�<���ـ����x<���z��
���F:�ط���y�&F��y�H�_��ve;��,W>V0
+�2�H3�Lo�DŮ}t���`�K
+�WM��sU��J�hG��y�;�;Ӑ�N͕��
�'_ޝ�c8�_��$���K����&G��>�y+���@��4�-4����^�3A^a1� ��u��Ay0�Lg�{l��u�ꫮ�Ҷ�����ʩ�L;�"��C�
��B�nD���y؊+��k�U2i7���P���ا�_Ċ��o� 8⃙mHWw	v�����c[��cq=��c�L�_�A�YF�ȐA��M����h�+��1Z^�D�f;�k�1�0z�����i�G�&��B*I�aEB�����ԓ$�X���K����DR�����`��9�\����g��l�xw��·�B�<��VK����:�Z=R�A
mL&��Y%����P��v}���ש�����G��Lf�U���l!��ͩ��ͩ�!�-L�v�(�����S�&ۨ���Ǘ�/W.��m���>]z0��:������������ɓ
�m�O�A/拋n�M��&�>4��`�r�r��<K�c�N��h&���X����of}*�A t�͋��3�"
e��<v|�1
��^Z�9�/�
�����Z_O�����Fn����sQՍ�0Y��������w����U�����-fs
mO�K�5�/�R�
+�Y場Ţ��
+���U�����^H�mp3�mTv��/v,H��[U�s�������wu ��Xѻ�t����?�I�Q:�v���
d֐�vM;��z
��r��
�
�������#��LS�*E�8�u���"_3H��;��w��X6&+�ހ��H�Ld$�f$B���>�9Æ̜��qf�`s
+�>����
�š�W+��
Srw����V��粜����qkٜ��
띚:܏�n�I�ʢ��u�$9��1,��
qH�L�m��=8S��	S�;c)��S�bDT>��̂��;�����0ݬF�~1�Ls/
��H-l�l

�����/V~6d+�5*Rn��M#s��Y]�k���C�r���g���7R'�o }��d�9�ΙE�*ڼ[�E��ve��� �еAMkU�
�w�)U��2��_�-��z!Fc���2O��;̧-��,u�P8CR
�n�V�,X��s��S���Id�9�cE��5
ͬ�ى�O�'��0խ��z�S�۔lW˶��U�x��xZ�U�
+�j�CK^9�O���G���!})
z�7>7��&����ܩ�a�A}w1�m'UU�ś�y�����d���pz��2�q�+S�F^�Ȍխ�ը^�gV��
+2٘��
���aK�S"��M�7��c9%3
�Fl3���Ԇ�Ҝ���9���p��J{�>�b�^�~�/F�z޳%q�C���^OB[��.�$�a��Kn��e�X-T�py�#e��/��g�&�UW&q�0��H�Oψ
�D~<J����%�R<�C���{��m�9��/�r~P��&��Ct�G�<䝣�bRn5���N�^n:���=�k�l��"s��=��r�t-����
� ��]'.
�O\��(��_��;)�?�9��us���fSf�ɦm����
,�LjT�������i&�q���V^�kr�l��)�y�_���d>,ln�9)������GTn�:���b�6�R����\���V�T�|�ӣ,b�/|M�J8�&��]_�3Ze���{;��:� =�^��hY�b�
r�62,
NpdR9x��
�m�.Л.]`FʃV�g�'�,O��=�����?"�6{�Ħ����QIB'��1\���$��{/
ǑG� �0�[7��Ҧ��L���Y��@�&��	��ރ�'�L#�1yH�P	���E [...]
pm at B��(`?�����WW;���(Sn����$h�B_[����r�
������bpS9!�$��<1�z.��(��&���f�����I�=K
��_j��k��O�!8}�*�g֖����� Z1�})X�S��b
�!��M���37���
�1N!: ���g���z��I�p������G�R� ��q�bU����

w���� �O
�����W�8�$�Ԋc��Ln�
����iMa��!Nab-�0���;{�q2�qRm!q
z��W#�Gl0'
��8
�[��
8�@{�8��*
+P�e5��� �wAp��W����N������	�N(CP
�M:qNqzu@�[jɠP�m�i��CH�8�LA�[�'���Q�]���*�6��
+�E�bN	""I�ŀY@�������gc��.�������MR��}���݌M�}e��$�zI�P��q��Y�PɌTNR~���Nx{M_A��R��s+]
+O=������'�)�2w�6{8
�h�lm�������ɛD:����]|rɻ�����>$���!�3v��]�5|v�}�5 8�H�$ѵ�� ����]:���s�y	��z[(w}�e��d�O��fX�����ܴ��/����ɇ=�O�B&�<)fjg��ҍs�݋&��R|?�
�{?��
��h�\�.[v�
�/�ٹ�U����y����yS?QQc?�`����~��?���Os��6���~+Jsu�����wH���T��f~�v�q����|�e��{w��nڲ^��������Z��ˈb��j'����؏�W��J�0?Ύ��^y,o�^4�݋!_;d�znS��ئ���/���^v���]�s�A��v��oᒱK�\�/�Tz�?�ʴ}W7��5. ��ަ��=�h
�zT��V�Z�
y�z<Hz麿čx��zY?�Wxu��n��-��� ���̭�k�8{��������緥��d�����9�;�4_��Ӽ$��:���E
��6��,�J�^ [...]
R¸Жmt��H��Y{I���Q[@��_dǗޥ�����x{��~:��	��>�ˍ��p�����t�>|��rM���Z���m��+�dwWbq�ǜ�"ل��4T/��{�;�C
zj
O(i�4��q��U��ݫ �=)봚�����B�@�e��4���
w��"��Q�֜��E����)ln)��C{ƛ_���j��N�wOVб�%w�
����
��Ֆ�\m!�!'Z|��4�ښ��`e�zt?P������wt
�ka$I
�f�8��Rڋ�F�k�����mRzm�}�x�W�0�8�.���l��gg�z��I8��&�S~h/�[o�hC�ո

o�
��5�������󚈩EiJ*��0?ӥcIt�ne[e�
�R�\������En�e�e�%���CZ ���cV^��E8B;BPU�W�6�.��`

�.i
��c��A7U�6��]�5w��NWղ�,��
^��t<\F�9��b8I� �/ys3kҾq�%r+� 8�ֱ��c~�}�Z�����ia�8�b]�N�nn׵�_K�6��y
_���.����t�L��t,���pe�W�Q�l�g"�Ⱥ I�Eֶ�	zu�
��R
�̀�q�";ߧ�E��w�ak������W[�/Se�͗��)���1�����0�>�~O.P+���6�e3�e�=�<җxQ�rAq�҅�Z�9�I��)��	 ��^�_�k͙���9�y����Ͱ�K�0��ۦ����R'VM���M/���q
�������������R��V��p��Ȝ [...]
+:�[6
���I7C� f���n�#E(&�̮MٻJ9-��&�������߅����Q(^�]�:V�+?���㖲+�/:�JO��2'�R_����,B#Y�<	[x��-�E�h6^m\U?l�Og�d���t���Q�b
����iL�KL��U� ��� �EU"ƥAVO���%�&�o�������Ϻ�=b�Ϯb>�����{l��;�g��2/�r���^�RZ�@��s~��Y���l�'���
�ҫצZ+�!�J�N�BBguF^%�7.����7�z�]�ǃ\��7�B�_��;&�A�^��܇��ͣ�P�ȮUAx�auz�ܢ�>�ž2s&EII�
q�`a>
����\ޝsTEw��
+��:Q���j��4��8�B�A���`��V且?Jx%M��l�E��?���a��z5��/oT�.�Ѭ�f�w��]�r�1f�{�h���1h�VÓs��s��t$u�,
+��P�s���m���:��O�
qeo�h��d\�.�7�I&���ׂD��ƥ묋W�3|Ը�<�>�
TmWh��;���;��hw�vѮf;������W��R׹�͕씤���`��u�-��Cs��}��˱
J6a��h�|pT��S�����\l
	�&�����kW�4j
Gm
ڎP��Mdh:��&;��
��Kr�F'K�tF)Ɂ
�����:�
�.��k-I��>d���K�]
+ͼhSdZ�.�4�\��l�K&2k)MV'�N��`I��Pö��>c�y����<�j
N�j��
���:�̀<�頨.�Aq�/�:�
�y�
�c6�?�~��w�|
��5��K�ʺ�Y��MFB"n!6\�)b�Ʉ�*����v����WB�O^A��SѢ���|�,���GϬ
^�4,X%hPr�>�Ro�ݼ�+C?{
o9��C�{L'v�xA��q�[��ߛG���ցb4#���<��t��Q�}Y�$�V�qi���o�iNoؼ'����D�iE��F��"Î`-��9���������:�wЁz7Z��.��Μxڝ>8�C���@��N搑�mH?�KH���ƿ��ҡ£���s=ODE��`���
��)zl��
Vy�ƣz���sX<]s�@�5��R�HH?\����o(�c4X��
b�U�ٱs{Y�� �!�(t��zJ���Qo�B��"xj�Dn�~��=��W���tq�oY-�Z��=���o^����ۍ
(elr
"�&�vL���G�āǎ�<���~����!��
��v�l�\h�m�s��oM���lnJ��I]��Ʈ�
5j�%�(���YG���Q��
�F�
��ie,k��ݽ☦�5�ҒW�GM�f��6�+�=���
S>Jڧ�/w(V6�����c;9�[����r�b�<�5�QAk�IWo��Z��[
T�S�y��*��v+�`�i�얭m�+[�wVÔ-7�ث���uN�
�S�����k�!���I3�$�'���?�D�&��_`��z%PR*_��
��v�� A7(M���X\G�k��gi�Z�����wUs�jy	d�
+d��3X�X[S��a90
¨x/�jܤ ԡe�����/�?�.^2�64 at U�J�M|��
+��Ava�T{�&@��lV;\T�nðl[�Mq3x��:�
+���+�w��=w�����U��l��9k 2Ф@&-/cwa� �e d�� �a�:,�T �����z�,t��oڛt7���!엕��V'�^�lV�4���:T�S�Sf{0��B�z����>�=f����@�T@��&�b
+��y��`�y��Zз=��iXw� �g���J�
��/Ĥ�P��̦��i���C�O����J��:@]�D�
+�un�`dE`

s�s��T�Xct�����JC�3�9 �J 6���׆ �) {8��CW ��@[S�N{�ΌP�{�*�d/�ί?p{�%L�\���0g�7F
�{�Z���P`�v��>e��=�=\�yzPd�P3=e{�<����1kd��?Y�>�;�v�}����3��O��!��_�{*T��������:ɻ�ZI��I��$��$㻌�+I�����~�L�
Q�8g�$�^f�({��d��
��
��R��c�i�b���_���V�G����g���Y���2y(3I����Ѳ�u�{�"l2�v
0� �
�M/�Yp�M�p�n����$
���gJ�2�nb�s��IJ��_�x|�Fq^b^/=����!�TK~򩼲0o��q��'驧eѢY��m�8�Km��e���t&�i�"�S�7c���P��*>��I
+��P���s��
�ߙ����=B]?�D�
u�?ݏ������!�(m/�`'�d&�P���a��΂/ۏ$��B�vN�o>��@��Q�����"�<�K�"��	f||����Uj��'#��Gx�G�a6�m(�o�6����fuy���e��
/��������/���]e�gsדOvQ�B~YYQ76��

��D|%�橘��m(�
8.�m�U�t�'K���~=5
��̹K����P�
o�hE�^�����
���F���"�&b"-����w���
���f��f/W����.�#'��L�VAO�"����nV�Y�.�X�s�ݒ�XQsO����5o��pp}
P��Q�u'���Y����E�-m7?np����;����-�j�7��0;��0�4Z�>�yc������/R�`2��"[+�)�Y��=l"�O��<=�n�rI������Y�"�:�S���
��:�?_*���(R��a��U
�wC/��^�#}w
V��F
p3�_�uՂ$��+��i:�Z�-�����}_~�����Js����z�y�SWV��O&��~H
����gEk
+��|���������I�[{�*ms�B3 ���Z4���ݝ�kcd����L��Se�I[�� �vr�c+u{f�v�q��ߢ��s*m[�Ggi�Fea�B��i��,.QOsi�|ձT����
�+V%�
����C�K�� U��VX�r!\�ջ/؅�w�5��X���Q��2\qp8q���?U��3۲���"��m����eeB�?�y���ٚY�!�����H#�_�����;F��_V�Ü��y|�V_��<�{;l�C7������P��#�_�@������� ���&�qњ���e�c�%3�Eh
䢑3xS$=�8W�PX����8�!��4�N��
(n�/��
+l�?���7�4OW7dN�Q5&���(![WB���k��E�� 7^-����gم��Ynm����<Y��l�E�P�ZC��ZW�,����t�JGq>�~��;�lU�弔56��[���ըgJ{���$���Q��摏�l%�RH���(Y�-YY��{�jKR�W_
��<�68�3K�T�/���c\�g�?f�H��O
u�������9��TA��W(��۴�ʵ^#ۼA��)Y�E�&*µ�g~@�'.
�і�/��_��Eǻ��8
���s<���%j�͓yk��%'�#e��C:
��ƭ)
+�q
my�p�\g��
����^J%��z*K¨�#G��%�އyc`/g�"�ϖ�"Ͻ�ʄs��ƍ[y���E�"��{7�Eo��|�
�>���W���*��-�3�2�����֍��hIXe�+����~�R�V��g��A��UT�k�p#���_x5
v�n�{]>8�\,��:K���-"i���c*3Eΰ�/�kC�V���D�.�ײ���l�����!�Nk����4ϛi�?_��6���ya��*��Z�ggېĽ���$��$��5�U���>�N��_�Mv��&h���B���:
+ԃj�L��
����E�"R":�/
��Ԋvjo�#j�_��he3��.}��E���W��ЀyT�vRj9
�NΉꤧ
+:ݳ~@~A��3y��ۻ^���ؒr�3U>�ҳ͹G�aBL/`]�vi�!��q!|�#–�xI_DR;�/��wɶrj
J�ʻ;:���p��MC��a
��w�\4 � 
�e����S>Fcq��_
ν86�~,��2NL�*��&H�)��S����/Ll�r��y�D�0N��-!�
�l�+~�4��}��p[D
����f�
Q����6
:�t1�{Fj�D����ԛ�x��e� �
��6�ٸnp
x�U�|��L-�<��
v.S�S�I�U*Lb��$��L��������
_��&��k�
J��e
6Y~<��_f����2����{#�7?oq�6��YcN���ܼ�g��
|R�g�q~
�ؠ4���i!h�9&�y{:_�p��I�<߉�%��ǥ:&�@�kUr�uĵ>�Q��j�5��M~�U����@�h����y㻋]��Ym����W�^�������o�/9�
�g�g�

�Ƅ�mH�dB�7~z[�T�>/'��{��4wD��.c�a�8}^�F�}���c�E`-e ���ߠ
cUD;�@e�����+�}a��U�
�V�׍�~�E��!s_�W�vq��}��+U����6ɓ>u�"u�(�靶F�kfѓT��	�):Q�N��t;
p�#����<0ѝ��s,���g=B����%���h��J�a��������a�}`�~��/�N4_GUm�r�'�j���|w`�J�Q��)7��N�i��^C�N���!Q�U�د�p��d��#ܸ� J�{��]sԄ�+LR�;T�WD��o�u�ԇ鉇�8t��m�
\�;Y�����f^�C at p2H��CH������)^쬥��(ͩ�ϡ,��
+�Ɠ7�#2�J�d���	�>ƛ-_
Wjk�
:����)�^��
�w^�kx)��a�Ԋ�T.�+���tK�v���a�g���
�loםgT��h��Wd
�3+��q�P�y�Y
��Vf�VN�N1!�\Vi���Z1a
+�M�[�.��>�!�X��i�Z��p���a��:��x��3�˭:`�{��n�dO:�]��(���Q&-�Ӊ��Y��NG���~G�`�~o$8�BW\B���ch7UZ�ـ����X�R2��˸����;��`{�	��s
N��{����ڏz�2����.��>�U_&kvO��w�9������m�ގs���N
r�]:g��O��JC�i�xڲ��B���kɚl��
و�ٜ~Χ?�Կ
\ GJ�7������������N�X�h_
��!|�\�yڙo��N�iu�g�� �a��0��ˤ�l}Fh�����q�Yd&��T_B�>���'P��T�����ݼ2����_̅���c ���xʻ�{�i��U2W�>xӟݑ�,
�v��vn7�l�ƃE�OY����{��zl0O�ը�+��G�d�/�R��[ڵ�,w��OԻzY�:��'kzd�D�r7�z�>�O+�%?�hA�aݲ�����Uft�㪒��G���o�fl��%'���r�C���9,5ب�$B��˖�`��Q�b�Q�C��D�MyI].e�RMK�_�K���Ɠ긔gB��)z���H��r�tr����R���"?�E���߁��m�'J�ӳ�.��q��
^�cz�
�n�ս<s�6�)n�K׮Η�Q�H9�X|�¾�p
+
&^�O��1/
�g�̷M�]ϩ傔��D��*@o��D

}
.'\���`7�ڛ�/�us�ʪ��x�"i�뢓�t��tM��`��������}]HE���\�����'��Z�t��8zL/��Rp����g�
+�E �v��S`������ �l�e�� p8�
�e%��C�/߅"�AI�W�,�-�*����4y*v�s;nM�ιvN�m9U
+^��x�p����\� �z��
 ��@j�	@��@�f�Ov
 �5P �<������{FT���Е�P�* ���\ �N�`�wڻpC�Q/��à��;�������^�>�r�A��n}���'�H�� �:���%oѶ(\ T%�y ��:�5gC �
�
vK`������~��6&���
�����
��V���o�{t}x0\|���`���V
t|+��u����z�W\�d��l+�}��-�`z�+���V10�!�b�Ѷ��$p�?�����T�h��,̊�O�K����,�kb��Q�r���,IpA�8I2�m2��$!�o�v����:�;d8׌k�$�J.c\�
m���H�7R���@����l�U��r��ŻAɻ�S���IZZrY�0��T����`��~�b�
��

�?��c�Cdq��}�˧�M�kd�&V�RH�-\�?�܋W��$΋������E^��Wq^���Ϡ��O���f���E

+Y�zLcq�O��V&�ϸĿy�
��W��*T
Ԕ�^�4�qh�q~�/�q޽�Srz����o�����,�~���=k����꽹)�xw묣��I�-�o>y��� ��Go�E�a��=HI�^�s���|�Ԍ?���u}mv�{��=$�~�U�.$�y;�\� ���6���k�^/O.��m��V�:cgs
���e��g��I��,��Sa�,�2���2y�Yv�B�ɰ��$E�����x5u��4g�
!C��bsܸun
������/H���-���!G+�3�|�sNS�
�
�
�ߟro8� �,�^tu��lv\v���M���|��y�U!��6M�(���
Y��<
Y��	�{�o��;]�
�~Y���=��h�Sj'
+�?�qki����CT��D�Lx��b�jOcw���n���m\9�r�frs�5]X����g>WƸ���밿$����g$���.6(���\�-%l��*��t�JO�,)��+"��n������uQ��
�F����viN��;e���UA���7�q�כ�TZW�j���Ú������lZ݄�X��d昣�u�b��U�����C����\��d'�x��G��_�w�H

Z�{�
���mGշ
p�۔��p���՟-їw�p9O
��{i8-�+m��;��W�U�v^�8�Z�mJO6����������,�@-��{�N6���)྄�/��62W4�!Ѧ����=T=
�\!
��J�v���V�L�f�#z:6�
�y��ȅ��"��7�~@����Ò5	>��V
,�B
_�Z4��)K�����l�ǀ�Á�;H�f�J&��<V�ĿHs����z�z��9�F��
��7P}�i�s�
�L7eb x�4V�-�8K/;cŔ-R��M
x����-�D����0[4 r [...]
�2���>�)m�J��$Muj����PM>��-͟�j��$�������=�ڨ��]�^��`��N�
+2(�n�1g���?`���/�z�\��c��l��j�Л����t>�΋��M��?u��4Ԋ��
��UP���Œ̞b]�WK���F���^P/Y��Qϥ�Pl�g�ڇ8�@��\��@ֽ�V,�/�&2Ժ�}���
e��/ϖ�W�%w��V�k���*$k�
�E��
5yl�e�q�g}Ϭ�Yk\�TX:���]9N��eE�I�7Tڙ�:��g�č���x-ςQ�`���w|��k�rI
5���S��=��Q͇�|����/�na��xc��g�x7r9+�V]��Zb�M�e�
_�B��T�e,םOU<O?
��1�)�Y������ܪU�ج韵a���]�6�+ͅ�7u,t+T�b�SyP�Q��y���}�
+�}ž�_r
���/��P=�<݄�⚊�S'�f���
�6���<9�Z�����b�-��x�
�و	'
1Y1씶$&X�
�����5%���TA�'y�OE������"�}5�Yc�D�
+B+#F	k"_`������
.U�\�(��l`ޱ��R1��k^>�r�'+�;�v��y�˿g�� ������4&0�����~�p�	
(T�AS�x�v醓W��OA�#�n�W��hLS	��J���V=�C����p\(o������
Xjʻ�1����v\^�.N�QY���S�һ�x�6�RwfO�=�.��]�i��F�6���`�tLq
+�
+̴�KERR}�VY���tK���%�'7>�z�����FFl�����0U��z����s��`�<��h�7�"b�i[�ڄ78�{
�]S=TK�j?���
��Ț�
+�����̮���*娈st�����#��~:Ym�x3k��Mts<ٸ>���O�]��jX���+j�FYE�J��Q)�˨d��!z�`�����-
a�
�*Mˈ�U�==���Z6ػ8/ûY�Hl��5�`�>m����������z$�R��� ��Pc"_�q���)}�[�+��C��^<�N� "s�"��J�ѰacB��1�
�Q��=�w�gx��/?��N�ۋ�x�cAt)hX_sV6(

t��g~�V��ݚ����sH�ņkd?��{�D1W�L��|�+Q�
�*5e=KP�G;����+l���0ach�
qr�
+�`U���6|:��������3���&����U�͋Uo��:a��b^_�&���Day������UmY�^�vB�!�v�8�<�����X��#�y�
�tP�7��Ԯ��~2z�|����ƪ�/V�~�ev�Ӂ��OV痀9+��>��#�
��l��
����k�{�_�MVp�K�f���$S�b��qG�]%��#�>VE�Ёcd���jC��p7q�8��>���
k5�� W����~�h�;��tN��99b�s�3P��=��v�����l�oB#�$)�57s�ƕil�-��&ήI�
+���U_����~���Q��0������
�d���0֯��i�si�{
��+޺��s7h
�%�O_�m�.Im��?ۆ9m����6��6ڃ��x���wFZS�bRe'��{9��nTo�l�Iҳ@,��58aVҠxf����{
Yu�o���ۣ۞u�K��u��Յ����O�i����F�ªe�7�@ԁ�[��=�5
�rm��v�l�^j�F���R���1�P�ʚ���D��i��c#OGF�:���;��7W���5(�ݓy�AC�Z�.5o�w�i�n���Z9�{kz-hN��JT�Nc��F
:gq���1�\i��׶״&�ǭZ󔣫��>U�P�F�*T��T=�����z�Xo2Y
�����_ 6l�sSsT���
�&����_���Bpn�7��M��sgVk��R=O˪��j��F��܍+�+V�]~�XٔKYK��t���+����҈�P���gǗJ���)a�u�o
���boE�/?Ed;�`u��:�¤pz>G�:��|�����BOj�7}K�j��
.-�DG�V\�+Z���AJ(?�2́�mr�
+�
�
5ܖ�|w���s�oRJ7UH9�d�i�������/�n~�U;�j����j��:3
F\`Yo���� ����N�~�����-z͵��-����ך+zd�+��ʷ(s��S��OK��y���}��	�z)c��I�ɸX@?��@��4��f��_�AN� ��	�sf�.t�K���`���.J�ܠVp�!3��S\�:�m�1�!ɇ f�"��J&

vY���Y��|h?cs�](�#�

U����Y�/CGt�a�=��e�y`���5
ø"f��?Ȫjp��$ԓ�������E�콑Bqp����-�j͗]Z- ���Fͷ��ès���� ps<ࡱ`>^��� ]$�� H���
@d�dO�� � �{ �<� Z� 
+��@vF�߼e{�ͭڻ_xrNim�ň-�t��*h
8E/@�}4�U�Py�]�T8�v�//��+h �/M 
6��5@X�_��I�[)]� �vc ��\�]x�
TP #;��|7�5
X�H v� ��U {Y`TAv��F�6�	5(Ø1*BÊY�ږP�_���|�,<3,ҍt�?�y���~��R����=+�u!�;u�;6��= L��@�UgͿ��kzo��'��٠���GȎ0��0B���s�5A�*&�KIZ2�Ҋ-2c�}�I2�y�K���o�.�����gB��w���*W�gz�^�6�3�SbUni������?��;����%j��d��
%Xc}�!g1������;�C�¡���e������-%��gP����y��Ut���xU=��<�T_~
��ʎ{=�~�����#��������4�qG'ió0�l��
ɷ��*��<8����j+�
+{8�P�q<޽�8?+	/�TU_E�k>�k�~V����g�n*绐��{�~�7%?�\o�3�^�2��<9ڿ�w��w�b�1�_$�A�K��
��&=J��(
�s
+�o
<C���}�ȃ�{�g��>��ܼ�F��Z.���qƷ�jG]��av���,��9���;���
+�������W�{����Xq��a�_H��/���������䭕����Y�����g X�����$�`�R�Q}y?�����Z>���||�j }�R)�K��߭�OE��?�q;;.��
+��b�0
�T�;;D�iu��>��k
_�F��?h�e���ǿ�6�i�������F'﹇e���NyL��9dz�5���5�~� ���]iz�*��_�~*�x�0k����a���hw;O
�A�J�����E&N5�6�v T�
��Ǜ�p8[O���o���_uO�q�� v%���Y�Y]��_$�N�L��
��w��
c{�� ��u�.�/�sJ<ڧ����'����l_X��8k[��s7J�n�����*xVZ��g��
�����:
7�s�
�
�Rӷ��9��
/z%�S�ָ��������;�擗�I��rxL>��Mkj�	�G��h��_�Ӿ��
�F1��mh���Q������F癶�����l�{^>�v2�$6�~@�����82{K;��S�/.~盡%䌣{��vs��ϑ��y�
+-��n�l��|b�J>�dz��a�\x���{�޽�p�M��!+�|�}�C���g}X^i2�u��l������wח�cj/��/�k#4�c�j�y15N�hH�KS����}fW���\�_;/ξT����h
R�w�����/~ߏ�:�/��2�ϥ��
���z7N~��^���%����v�����C1�ͦ���ϐ
��_ᡮ�,��
��ֆ{�0_6��
�^��+jNG��$V�
+h�T��>��"��A��D�K4��y�����݄��"��c+�nW⼴�aB�j���Y� ��탻���~Q��_Ft��
��gS@�IG �6gU�e�j
]j
+�x�R
_72�RX.?~@���9Q8
+
�����|����(���z
�����n_�g]��5��X/��
��
��J�}�I���_��^p���
9�����Γ���~�ǚZ�ߺJ�tCe�M&Rx��R��EQ�����r�.���D8󃑓�L�X撤��F#��걄X�B��zI��ԾT�f�V~y�P���o]"�HHV��؏�k�Rjh�-��o�p>O�+G]��2}_2[B�ߛ6E	����5þcze��C�����<C>��ل�q�"ܳ�;y0k��g�C֦��sBWCyA�y>�x�S�8�R��Z��_�}.�
.���A�[�C;m0��Z
֗��s )kv��k��Fjv��M��Г�^��l�J��F
�*Q�W��,�VU�r�Kz�m�2�d�q>;T�(�6��t����gN�a�I�4�F�fF�K�K��Y���ՂwL�: �Z�y��r���a��L���桩PJ*J�f���"�����\8��ϰ�rcH���\���Fq	zg���X�� �i�\\���t�1�*HbI*2���W+Õ
���_�R�åP��
.�_6����V%�7
ӽ�B��)	MW�%�0*-g��qc3���0A�W��v�E��a?+1��C��JN;
+>#���:y6%{�nH,��c�i6�㱬p�^�q��?�q+e$%�{3��vH�[p����5@{:VJ�6�_U#}��0_��2}�B+�,��>�Ԥ����=Z�j��4�q:�m��A57���
M$��<��5sL�ܧ���wQa�j�Qe�e��>
��1�
�8�X�
+����t�[�}��-��
@
���!Z���
}f��,�?,i�9�H��C�����RE�Ӯ.�H-6ʓ�&���	��a��cb���S󠍂w�U�P��̬WtL�mTt$mZ��'�*�Z�
��"/�������m�#�V#�l/$�� vr�R��_���j����$%Ƙ8U+�I޵͆
���dA7"
a����ؕH蛵�r0N�bĶi۫sk

��?��s]Ue��>�~%A���b ŀ�s�(���
s�������_�������h���|n�o��
ҭ/�RO)��
�O�^
K���B�_d�ب����x��!�L:�-���;��SgTZu��ЮU�g\6{��]
,�v�CӒ>
���H�
+��*�jk*j��rj�L��1])�+�r����6X����񃈃��>�]>|>>�5>0
�!��+��L�2�(�0t�5��3ǽ+�݉���N��j��w�Ҙ�*����ߌw?�sol��W��Fୗ�!�
OLa�%%wz{Q��
%Ib[
�Ȟ�yّ`0э���
o���#�v�#�~�#�ė���?_>o���9���w�t���4[p�sƬ6�ې�6�����t]�>e�
�t�S�?Q����>z���Ǵ��d�K�1�u9!��U�/k���yt�ϸ:��M�
+�Ħ&�Ķ=d�Y���b	w X{6Jt�/��\[
��kq��W�
��ǽ_��b�ej\=�s�:A-
�
�(rw1�H�˪!�Kp_
��\���0��w�tI���c|�I��J�E.?����̡�j�
�64Lҕ8��8��Rz�Mc��-o�J	u���e+��磪��c$��'[{i7�=��oT0��{ۘ���J��$=
U(�/���s��[g��f������Q��xW�lq4��Vf�1���ҝlV��\��]? �d�&���.�y�.�{��/����b��^+|���}�|_&����d�v�|��]o�=_&���em8k���ɑ{��)�N�0���i�T��plR�+7����qmp C��$��{��"^4^m�
��BP>�,w�D
%
���M{��7�����v���m�������6�K�[�Xj�g•����O�[�����
v��9i������g\��CW"5��*��F���B�ߤK�Wn�Z����[�����C���򮐧>����q��(w;��\�%�zG�7��3�>'�� '̦IN����_
�%]��k�h���p��\\���43��TZ��
_����rer��j!��|+/�?H:7g��[0R8vV�
��|��qįS
o�Q�!ʫ$2��
�
�6b��[�\�h2
]�KA1�1����-�_��嫑�u0��=In,���f��a�s��7B��m3���%?>R%�kI�3~(e�a�Ca�����V���@�
+桞9d�V�;�Bp��_}̿�.��K��
+�a.Lq�6���
�:��\��J0`
l��|�5�Qէ2������K�
;g��*�DddO~�����۶
+y$c�YO2�#1Ԑń�a�rA;�d��M
p�m
p�lpgg�b��G�>�G �\�W
����x�xBNו�/�-���
�Bd�E��''�n�"��������u�{��܈��Q�v'v�l&@�H.	˙�V��*�{�?u @������w� @c �j t� l�
�9)���C�f�@D��'���@��	s���_�M��t��fS��6
+�<'��0ዴu���$v�|�I�b��-v���\��u�
+DznQ�8@�^] ��
����]$I<�]|~=�{� d�����,k �$�
+��	�)�ȾQM� ��;pj9M����`l3DA~`�w
�O��פ�
����օ��d��?�:- 5:���_{�1��w�Up��%�W�#���;Ph
J�VJ�5���
�R���ju���
��*�������t �	�����zr���0��q~,�JF�����:�%�)bu�a��͂��'U��`�
J�Փ�K��c�
�=O�Y���k�u]���,��	4a� M����0h}�+��E1}�c
�S���f
�q����M�_%���RB�w�����X����?F�E'1y
����5)���8��G�~���M��Y���I�+����d�t�Fy�b���7p�?���o�.��̲��k
~
c5zL^I
�^�ݾ�yz΋��i
��c�,�G�F*�X��+k��y@�}��շ�J�F��y}�/~[��S�:xq�WI��o��$�P/�.
Osoi�%�0X�Q�A���މ`о�E�F�����ݢ+3}�.]�p���6z����]�������z���
�{�2�L������w
+)&��S�n�s�A���6������n{a����=|e�'�҅����`���!�B����=j
'f
�6�
�;���b)��w0�[��ͩn0f;+���u�?�-���"�@���Ipq
j�1�4,�O~;��:�r':y�z�
��
�OZբ��n���8�w�
+��X�|���s�e����<�fy������z4>�J:!�2d�J����x�&����
tz��K3���ț���w���C�������m.������x9!���9��C�W��������S��^C͍'��__��>��.C�:���u�G�DP�-�7v�/u�1�g40ۘ�܌Xv����(��K8洋��Q�5�(7z�g�Q6�o�������Fݷ�^:�_�i�r���r���t��W�Wr��F��*.�*?_F
m�gՙ�
9���TuL�
�L�.
�o%�0��h@�@��,�pT*?H^mXf��`�y��d�� A��r��
��Ɇ�ݎ;����P���ms�L7��=Y�a{
�Ck?���kzX��dr~�
��{ƍ��]
�J��3v���V���`Xޥ�=�m.�xz쯵óo�4�\���m�w
�'�N��w��J��J��d	iɀi�ߎ3��8�]ԇ}{����;�B�Vo!�Ef<.r�c{����b�ӱ�v���6~g���jR`����GL�*_�Ĵz'�m� =�0��f4�vUd�yL�KG.XI;>숶��6  ��bxie�h.��Y��?������I�=���>������7�"�������M3�&�`PW�Q��'瀪�
��n�;ϊ�u�s_i���r[Ϝ,j>�~9K�[
����\ph�����C���M���4u�6�c���
���
��_xl�-��Q4v�gh��j�ɣx[�2� �Ծ3�/���`��
�eǝW��mH��
�LZ����!׊��b+�|�Y��OY�s�v��R�m1��q�V
���@�GL��=,K�s�#k�oc+s�����������LM;��Yv�$xv���$4�݀�
V��ZF�U�m>�
-��MB�?=w����B5�2M�lt.
��w�ӇV�ώ�c?�k%5��yeW�S�W
�d�ڒ�5lЙV7*}��	��ţJLr�*��ܾ��KF�^
2��Hd2��a����n��t���jӜ�*Ron���y9q��FsӸ�W7�q^�
Y�#v8��V�k�*���z��*�z�l�j��`P�lϫj��_+��@+�^H�
ӟ�#���.).���=���_��SH[�1�8?D	2ΠεO�Ѵ�
�m���[��Z�</0]V���
��<�,��
~=����చ�Z'[�N�������6���_R�p�+ԑ�m�Z�o�Ź,���
�������1��{�ލwP��~�㒞(���U���'$���K���vٓ��v�U=j
Nj�
35lU�*�Ǔz��k���R��̫�bP���X�9�H���Uk�R�[�ҋ������h]��=���g���C���C�#,q�y����C���\vW�J�
��SWyI��Z�[
�E�?HC��
EK�*w��z��pk�5
�]�XT���Ң��y���{��r _��kӥ�A��g.U
�mz�Ludv�h��k�ՑT������v!ܥ�o�
_/�8��sR���c�Yq��ƅ�Z�#�Vgp�dt�tˇf#�#�
��b=4�f��z�5B����]�rN&&��i�s�\��V\����p!fnX�g�9�����j��X
+T�����z(�T������Oi�b~������B�&�/6�k��c�dcȮ�_7���N�����Z�Y���P�]`�Қg�s�*����n
�B��:�
v3���+��h�z	װ�ê��?����k
+��;�_�2s��R�e�Gj���)����+'�
yg���Xg�&7�,k�p�QP7
ѻ��
���Sum�5��}�JK��m�r�
𥰱5�$�6��&���֙��d�-_��V&��pF-���

�|JQfKuS�.����SQ.�'�
_Q!<��B�<�5��س�
G!>
'!^Q�/��P��M*

�t&�϶I���D�^׈�y��ز�5�(*�>Oʊ�u5��<�궖
�&�{Q
W��4��M>&��
)�h
���8P(Cx�뮠C�?�G���#<�iܢܜ�p �x��>�����۞/��!"r8;Q�A�g1Lڕh�qod:k��˩��T��k�^
���5�6*/A9\�%�6�
��zr{��Jw^K�
{_���FFH[��є�g�����H�`sՕ3`י͆��%��MFa�>aq�pbqfu`ql�g-u�s?�bG
-B��[[�^5��
�W�Ω���Q��Y�W��}��2�k1R �e�WEG<�s/�qО	�y����›V6�
�p5�*���@b	�Vc\����n��7u��y�
�ˢ����e`�i��H��>�#Z����iiҤfiO�^��ulS�LJzT��ʱ$�`���o�:?/�,�%�[��:W�v>�q��z�uDz����{7�S�	}��0�E�,u��%J��>�oȋb|\>���3�К�����!A�!�o�����t,
�=ٮe��w��U��z�K�f�ƕ��٭�(�&u
���nZ�~�>�]�ng�ͮ1��u�6�バ
���������چ�#{],��Ε�2m���U�~%�/�$��Z�Ȏ�=��?;"[��Ў[��v�H� ��
-7���x9Y�v�j�
"�1PK+)�nC57���?Ӵ=�|�O�����L���	d��L�:�'M�V�D��,�_�㶶~�D��w��'�{
;��)�egO��~��]��������t������[����{m������"r�ѩ����
�J�hS0���|��b��������k��\�b��^�|��b,4Us������M���J?����l��r���oxS@�H�Q�v� ��"�
� %��H�!u�$
{��O7š���+�tK�FxY_�[�[�5�<��EC�|يP~�*�6Z%͗Ta
P�LF�ܭ���w|D���RHg�� ����ZI�j��<�s���֙��=��N���4֨�D0t�x�H��G�'�L�#������1�f��䜲q|T�]aYBj��r�]��1u�8s%�ɴ�"�:�x�͓i�ݫ#
{xA�K"Zc��F0���&*�S4ۀ9���9Տ)� 0g�̅I���&��L��َ��
��̓{���L����\F����ݨ����5���p�t���uiѤ�EdP�q�\J�>Bqh�Q��3�k��5*�xq�����{�;�_5 �g{��9�
�‡W�ҿ,�m [...]
+x��k*؀��}�����?�+ ��;�R.�E���Ͷd-�Ja�-Ձ��S �#��5���|�j��s)��[��6{+��c�:?'˄6ě��申k#��T��*��Փ>���-�#�\�ҷ���@d�k���=���H�R�mi���N at ZJ�V�o���ա�t3��Lo���Y�
/kJ�'9̼G�♜)I�3�v��d�-��F�����ԓ#���\�����	s��o���7�Ao�<���	�Ua(�e
(K;ʙ�僓@�
+
P���8��(�o�s�ⶬJ��
"�� �qpx��Wm��y��|c/�u�ӟ�mϷ)����x�����^
��}mS
�@���_�퟇�}��9��L�b�M��Sl{q�]������V�J)j�����f�tЯ��)�����'�����
����b�5!���q����
�ꠗk5Z~��_E�+Ԇ�_�j��I��������t���f�~���
���켒Z��z�9~��&�y�M�z,���Q�B��F`����S��*�77ٍ��2����|
��Q��
���~E��s�o�v������!�z�&�]�9�w�ǒ\
��c���(���Q����y=�����|�ko_���??j��Y�4�'�0������<�E���
̗�;��B���R�;��^Vi�o4���R>����ե���k�<*�y
m>�Efx�0��F�͕c�
?G��p��?�)����r�f���s{lK;b�ֶ
��n�\����r����jէ+�J�<�e(@�׿�g+�ƿ��fL�����`���=�ģ�o�n{΢�LX��}D,�BL��P�n�|��#��`KNw�
���.�W'گ�Ct^����T/�$��	���Pba~n�4L}�����+��{������z��g�#~�B
/5�O3��#y�6��t�zL��}�d���%�7x}�����z�ː<�ф=����,��֞גCs�)
:3~���N�
�����~�
���K7����G��)��R��ɄX'� �-�%x��h��E��������G}�}�l�:�KN~~@[���ϴÕ����qͬ� s�c�\<�W hr� ��6r�%�t�7z��4�n�
�=��/�&C�I0�K�٠�v�e
�����N#'	
�Swߣ��{�ϯ�v��_Q�Ymh�r	p�>D��q�5��rԺ�QI�y-��v&,6����i����
K
+,d��ou���zА'���>5zM��hB�� ݶgo:�wt����~AC��4���~��֌�
���v���1uc�7vD��Ϻߍ��:P��q�'��N�W�
ߏ��
���
��¬�[�6h�K�^3.��K���K3׹�dG|���kxS�j>[�?[��
�
Z��d�25�،�f�ĊWƳ�]����K���8I���������Ϛ5�6=��X���j�#Ɲpr�W�h�!
�vQ��$b��b�ۉ��\�Y;��[?i.���9ĭ�q�� -t��5�M���>"�mƖ��A���o�K��Q�W6
�ؿ��B.�O��lyr��w鵵F�qci���_�NQz�[u1��L;�<툫EXޑ~��=���ť�5q��c�*m�p+~ɛ�ZYk7l�������+�ě�����9�A������rF9��E��ۏa�a��v�X�����Y�Z/�
��8��Z�g����\W����
���2���>�ņQ������d���w#��)�:�����������%�v��m�o�Ĺ�����h���V���5Q��D$^��
��l\�9Q��;|�U��&�]�}���"\!�l�l�7#���U��}�+��ez���i�a�UR1��� �C�L{]��'y�Ԫ�<��O��W�:t��r$'(��=
l�V�K��`����oꨢ�j�\����0��T7�2[%�}��|��0%���5�Wy6,��ܶ�I�_h(Fܒ)�+#d��b����3?��'��p4y�����?H�MPnk���GA\�*ʄ��y[�?Y˸PF�ivm�u�5�<U
}U
�d_�<�Z�(>6�����J��
�L�oԒ�C�Τ�bhf��'+������ij��Z���
�َi�
�ta�u�tڬ�K��
����n��
_n��*R�p=��'G��
+N��V8ժPAi`�q}j��ɦ��Ϗea{}��Gb�}�#�-�W���+�j
��ֲS~����j�
Zͯz
ek�
e���_� j�f_l�*N��
.��'�䰵�l�]q5�=��ԟb�Υ���b�ڊ��ۥ�-Z9e�uJ�^vTRDva|go�5�ס:�tc��`mq8�Z��y���e/�[J�O�CR���)Y�i�kɴ���r1����ր���d
�����(�و�֯�lI�5��t���l�0�@f�9b���E���b|�j��A��T}}F�g:�+-����wu�T�s�
-�Xyj2�\�b��sL��I�7Oy1`^��۳?�k�ls��r!G�4(L�Aq�޵gƲ�0Ų?.��sM��
�
jr�0S�l�󝂑��Ĵ�L:S֢N��j��U��f�ڕ�B%��Nq��B���+�ty[��sY
��-Jre(
G���~�O��^��
A-�)1�ž/�e�d����e�o����\���[��I����|w"���
`d
H�E+�0�`T{�QU½���i*���'�:��Lo-]��!�.zx���+#J;
B�,�?���
x(�n��,#���Y�y�M8s�L�Y���kf�(6>�

�g|�"t���ԥV�u��z��fS���M7�i1���U�� �)�l�5��4p$!=&�#΄b?���[!�Z �?��9
��8�Ұ*���y�MGKfs{f� k�f3��e�l��tˋF,�?�g�����, ���[y'��n\�
O2�S��+�����(T���n��O����sɤ��]�Ua��UA��<t�
_z�G<�Hg�E
?rٍ�dWNe�
�4ܠݦO7E8����C���I��NH��`L��ֈ����g�\�<1�o'�vEu#W`�m
�
�rZ�b�
����X�z�D��Kyq�O�Y�G��-����PgW�S���P��m���w�4���B�݅n^r	u����g
+yWh�ǣi�UҞ�!��A,
������'~8N^(�����E:,6Z�m�1�� ӢH�*�g
�z�V"�Ћ�޽���	C�J��"�r�"͐Z���<�⵰E>�i@3tNJ��/�dZ�~�+$\M,��"foeD����!P�	Ӊ���0
��f�d8�bP����
�yt���k~��e��Jz6��
Nf�O����1n(ߨ.�@1t��R�
+U��
zBa28�
+%�
+P"��|�D#|y�.x�U��7�%�wzjۿ�����
�y���<c>���e
+{����q�?H;�4o��O��
i�w�j�2�SR](m�D�9�
hfoNb��cEm<�ٕ���L䷳Y6_D����X�*j�Y���>�s��=�Ar�,o��w����,�����RU��-�a>ETѳ-t`U��@��]�������ȗ&�b�i�����c�B�;�5%L4(���w���'IQg�'���n��EN٠{�����#
AՖQH1��u�#����j���
�Ņ3l�FuJ�j��a�4ˬ?�A ��֠Z=BQXa�D�A�ns
?�NV-ʎ+W��s�_QN��,���Y�9����^��`��N\���k�+
+��
����t/y��d�t�
+�����Oh���� E{�(�N�� �k�1@u21���*�p�ra�/��elhF���
XvZ���9w�&
�M��.#���Od1����=�יLV>5�iX|����	ZY7�I�����)LП�	�� ��ƿl�pH1��50� 
�[ 
@�nu@��K@��S����M.� ��s/���6���N�#�|���š��Q�Q?�^�p���eS[#Q����wo��(�B���"+�y��
�
�l���L���_ ;/!)���	�a{
ذ�vT����
���8���
r�l���k���zR�q2��&5��s,6)Xg[��d���,e����I��v) ��*��P�zr���[�u���U���.�) x9^��y �E�S�5���.�G���Z���t�|P�S
�/
t��U�>�з�-
�e�8θ]kӧb��Ǥ�u�D��
^(\믔
�$���*2O
��q
��Τ	�u�B�N����@��7�a��)VU ^��0���-	/w��; 	s
H"�+���:
��2�0�ש�����/rT~��6x
��x
&���mͯ�lJ@�*@̅�?i����E�6��n��U�e�@ƭ=����k+
����^=�h�%P,7�NCJ�>���u+3[�\��*jgL�^������a/�r)F�k���Z�f-��B�����
���r���7}wU���
�[�=P���/P
���4.h����L?C�I���٪��tЯ��Œ��m��M���o�����O<²�"��$�)j��s
��W�.�XR�e��7��OJ�s�4/��������jO!���QB�ȴ_%􋯶���?7��f���MF�?�9�^Iu���������4�O��6��cI��C��^��D�������F���Շ<��,���Z�E�v�	
�j��Y���Qh�ܒ+����V�vЯ�5�~
�v��Cݔ��XO���
��{��	�����T�pm%<s��x��/���Ώ�Y>Kk�v
+	�=&^�s4���a�]��/�����X���b�l/�U�1�_a�o�
+�_
��t�
�47��5+�۞�xד��n�2>KKyqR���h
����f����������dK�^��G?���ʐk~�
�>���ط�z[�=M$�A#�_T2�����chŢ3�y��'j���{;�
?�ᓺ��G����c��^�����?Ț_O����eH��(i�Ad��p1�&��oV�v:̱��6s��=#�BvJn5r������q�}
��݅F}Ʉ����?^�ا�?mT'��}C�N��'���6^m�J>Zw��v%mW�(i����!�2��6Ƙ��7���<9Y�>av�9�kk̟.^��>�ꎤ;>
+C���IX>
K��
��;t�.i�����>�뮃��9���^N�5���ͫ��h�;��k��(r~�K�T�/�GkFL��ɩ�����i3z4��t����x$É�����
�F�8@�Y����R[	z���z@�͞G��ݓ�Xt�;q�\��A:���ڏ1�m���-C��
?���/ҋ���E����.r�p�� *
�5ϛ�<ݗV��jW��tV�a��
+�� M��>��?H�`֦�w�
�lߺ�ҋ�ln
u��.��j��Ж�V�׃��[�U���?����٭��,1�x82�o� �\�͝_;�ٶb~�H���S��#e��CGİ4�Ѓ,�r�s0�
�v�.�ڝ^e
���W�V����sg?���[��i!�7��4sҐ�V�E�p=g��]���C�h��{�
x��o�v�@C[|?���q��
��{9���ɍ��!�dK}����b?H��w���=)t�`�����H�W����N��G޺��<�ů\�f
\���V7x7a	;��	�����V�b!jZ�03�'�ީ>ɗ��R�K�VA�����54���"gW��6{=�
��e2X38�zzW��t[���o�
�a7�=oϾ¢��T��Ӳ�\�N�q�ڏ�rn��re���hizr� D~�%����TH�*��V]A�]�σA%��v�F̓0��M��i)
������{�]+����m�>�۳��Mܮ�L���vB6-��z������~_�:�s����j��U��ӫ���S�w�V%�y-;۪�y�*&��v���J��f�/�&���ڞa��
u��ު��Ďb�Ǫg
���b>���
E��c4>��Ak�9m�tQ�x<)��`;w�JW��zZ���O�i���E��+�F�:ZVo
Z�F�*��yl�
+�Ȥ��}���ne.�RP�J�f�aM(�M����\7��[��k��L���L������bsﴠ��!�!::��}�m�j���2�J���d���W}&��Z5)'U�`g+���6��l2��,_�t�)�U�]z�A)��fF�/���q;���$�#:d�(�ܟu
mʞZ�L&*�5
�F�)�
��)�]�>�:�`�i�Uπf,��� �l
�I��{��$:�Z���3��-�泺�"���@b�u!�r�
+���
+%�
�F<�X���{z��{��S�:t��|��k���.g�̯��
�c5d��?
��P���"���(��uK�]��"_:M��4b�I�s���
��
+l�~��l�T�
}7O����XW�K}w�0�b�@�>٩�KnE��CG���mu����.7S�Q�غ������Kg�%v٫�7+;�]�(<�9'<�n:��/�vZ�v�/D���r�Bc-�O�^!	Z�T������"_u�;`��׭��ԎFKg}
+�X�>�U^���=�����I�Di�5O)���|�vc��.�t��G�+�O�v
�D��s 'VE��(����Wh^7�������Gv��G��Z8�S&\to��Boz�\�r�}
��j��W�k/)=����b��Û�N˾���c�4���R���\,��>L�
�}U��u�b�ٙ��`��X�.(#�.�qa��V�̕�V�Cz�-I����f�,�bo��!2��
+kΩd�Z�鮓!��{�ve;��\�1+c�;l%FZ5���&9��b�K{�ؙ_�tzK�*@%�B�{�"�����°r���z��N�q���3�م3�{�!�dk�Lg�
�����*]�� �z����0�횎����8g
���֏(���A�k���P+
s�G�n������r�/m�N�t�v�!ęAFP�m�O(��㷠�ƨn�=�}�3ws�C�ǐ]RĂ����pØ!�8O�oC���ţ|��������a�J1��G���/�]w��PБs���e}G�M#��l%Ϙ|
�����e���bpήu{��F
.ܼ^��J���WE�����b���l��*��5�)��
�5�1M�ɖ�C�A��$�_��
���.�W��(�9�(��fQ*n��Խb�TJ��16l9Ӎ�ǥwB-"I�J�7��ٯ쭐C�*>�ʞO��5�e麒͗z���]����^�dij"�Թd	{��䭹��=��$�+;(>'~TT��9�X��c!KLX�(g!�o^-

gD�O�d���
b��:!�?
�U������k�C3��6&�,�a�{"]׏���W9n7L��DT�����
?_��88W������#
c�}”>�B�bYDy��	��
�/��\?|��J����aە�b�enX#VTl��
lO�<.m�<N.���Xz�y�~MߵBa� [...]
���\�6�rL��e;q3=�Y~�Wч�l�}(8���(��lgy��E������;등���N���jI�6h��h�d�$�^9=X�?��+��"��VZ'�7-b����*{�A�lwM^��m~�'f���D��')���� oe�B�#ڤ}@@��)��Ҳ�A
�`�0h��-��dB;p�(�ч�+�3���Ю�h�"�h�T�9Rs߻��7ҭ-|)ƝꞘ��u�9֢\�Of�`4�#�l��g�����;�X E����s
*�&�J�:�u���hܣ(��(2d�U
[��<(Z�	���E.��h'��=���
���=C�74#i���0�1d܏I����J��o4��
71ר��#��K�';ྴ
 �� ��
�K �T)��Ȁ<3��
 /�*��
��o
, o� wX�9�r�9)F}@6{��#��-�>
+���3P]0f�sBI#��)��s�M
+��~�]�z�>��	��������8��P��
P���;�t��4>�����h�� tIS���.7!@���
+�����^�����Р��"��'}~_ۏo���<�����@D/�4T�x�
����  ۏ��6rO8G���&N�ɪW�P�
0���� �I���0K�z�1W̫�&�g�E�+`�2�"���$��3Цs���S��-خf�S�'/&��`���-�x��5�O$���8Tz�4K+<;��Yd��Ȏ�
�>I��
`�*؉�vcg{
��g8���
8�Q\����#9 ���ܥ��-.�U F�_�����K�{c����g'���v4�Si�g*3��<�]��Wk�Y�c|M�ٸ�H�kS�C��������c���oz�� ���d��A�#_Ti �����%'@���@&D
��
\ ��%K}�b���^ ��$�X�o�{�"�[:Z��Z͇������&��D���O�H�y:T|?���*��ȿ��p�j����8
��Tt 5.�_O�N��;���i@�% o� ȷ�(�
	��Ja J񔾕��[�:)EE��<2ًPWr�t����b���%��_)�:�����m����􆿏N�#�V;�,�P
[��
+
�;Q�:`4b� �0���51�����y��
+�Y�
+�"JEr�QQ�Y�9�����}�<��5�-%PP�zV�Ҥ�hr��9 at S��Jh�&H^���?i�
�m�c�_���h���7�x��m�b�ڿˑ�al�T���1ʫ������1���L���ƻ͹�4	@��8k����7�L�ȴ.��ɉ
�bZ������&�`}�7#6��9��tYd��V�nsJ�n�c�����{�:��Y�օ�w�烶��b��g[����;�h�t��p����?)9�i���
�̛���M�}�4>q/��S�ԛ�<�@w{=�ݐzgs�
+�����gfX~���I
o��=J
=�Q���
no
y����ۑ�Y�}���᚜��U9�+f]U~s��w-��!��&���$���O��
�����^
�k�إ/d�+�������
�H��O��`;����J
�>��W���V��Z�c��y��Bڽ�>�f��Df�]���RU��pY�܌2������C��[51�z%bԠS�a�M���¯�_p��p<���qol�˶x������Z5��_\�����g��B���ccj?�NT�����/3n���igL.�ѡ|�:�2�a@��fȟ*�t���g7���3�������v�B�����9�:���f�7֍������3���M�EȠWI/������9b�!�(;� ?��#��Fl��
�����z����F����S��9i"�ֲ�a�K{[#�6y:AChv�~_&�����Y�ÿ6��ek��Š�՚F��N�1�G�����i��l��Og���ݤ��"�[�]�̎���
o�w|�@m��C=�

A��ǵ��5oݮ۔��F�of������GE �ӫ�]�*v;F9�/<2�
8]���@��l���+�x�e�a�o���QF{ƃĻ�a;����e�	>�̑i�N
+���:lJO5j�5u��@1޼U>�M��E�Q�� �?�����Z����*U���U|���Pp���|�k
��X��?\+F��L�87`+����#�{���w{�Ȃ�A�A�?rM9����
���u�xY�h�-ղ
+[�9����N?>{�i�ee�
�jq�{�2��؛K���H.�9�T�ˡ���vn<ا�3vc�*��y��u��!����չAn&~nX���֩�D�z4SM��oD87���Oh��K+��R�Jp�R�4m�w�^s
�׸�+wR��Tz��i��k��j'W�4�n�
�2��
3ͱ
��-p����)�-��
т
ס��b�}�.މ�<
_�z���
+����_�zwPC����q�muc���^S�ީRN���!Vz��LI��;�>,�(�J�ə��@ofw�_(N�Sg�o�����el�[!�C�}�Yi5��=�&�x��|f��,�6)�C�`��<"/�
RR#s
�>>���:8�o�Ժ
�e�l��[ދ��������笢��xN˶��a�����uL];V#ʍ,�fp�
�;7~�-��/���콢��;��B��̇jh�^��eꆓ�J
����6n>��.���ۛ�����D�-�.��
����Ŭ�n
��}q�o>G
���H�ɥE�2!
�m�E�>7*F��j�@��Nz����t�Fw�x�?4(�˩�+*�9�VR��P)
�7U�d��{�VPs��sKR�;L.�6���W(�+����Bu�P(E�ҩ4n��[?W�qۛW ?L�"d����
����d]_
L=�Fʚ��j�S;�L����j�V�覠{��ꌓɸV����5�J

�%&;R���숧��O͹%�ǃ=���m��N���Yj�f��i�u'�ųP.����-�џ�
č��l��4��}��b�$��4۔)u6�x�X
t����<
*
+f|Z�6�
d�`̥Cnx�� ��B����:�-Hc�*HM�9����T5��@���7熽�zh:>9?0e�ֆ�H��������x|��>�f�z��Wlh��m<U�_ at J�u�l�ee�d��j�t���Ԑ�H<]10��p�Խ:��<a$�o�L�sGn�}�8S<g��ō\�/4͌����ŞF�L_t�r^��R�eA�߭@/��s�Y��uc��4x����>W<9����*S��æ��XiL����EV�[�S��/�0���^~q�d���,���b�6[
�>e��7٬���5�A3<v� ������D�..RD�>fЛ)W��n��L�.Cū6{��oO��z�/��(��o�pw����� _�,�jOe~ ^,
�3en�
+M���vZ��l���1���0(�(�zҪ�DV\���@���h��eҕ�Š����$yߑ��!�y��Q
0UX�P�jg����;-[3g
+ޙ��k�ĶH��̚

+S��{�u���8��
��<;=�4��
l�_
�4û
Z��te5?S{���~$�'�����cA6o4I6�c�<��y�
�������[O/Yx�pj�2evK���9?��z�ξ.��
P�˿�Sȧ�T�Y;t��h��ޕ'�3L9=�3��Aӛ*�UZ�h����(&�����s ��%Ct<���m	��;��5��+t�1(�hZ!.
+Zo1
���HkT.����
n7GÔ�W;-'
�rm��	K�����m��,����)]�,74)=�?u��o���a�)�p��8��T�&�E����So��~l��㼱Q�Ec�W@#����Ρ�jXZ"b�93���1n�ȕ@��	�6���]=�[��5�������:1�`l�e��P��
I�s"��-!�+��o>x���q�%	
�����C�@�xt�Fs��f�y~�~��y��!�c�Dp.�!8���ۨ�j��,�<��(�k�4��A51};u���
+4y�Dɽ�9{��G���t�Äiwd�ĵi���S4�2��
���
-d���?�R����O[
+Y��T���u[�\My��Ǒu�6�w.�A]
n�Bn���_Z��e�E��w<N*�)����d�

ӣ4	T��^� ����b��3�M�:}�
8�M4�
M�r�����s��3��r�$�eO���mQ d���M��;�J��V�
a��h)�!�y�D)��׵����!��2o�W %�~�p�ϡ��
��O��w�G+�jsK)�C�	ϗ���`A�
+�	)�v׃g��n
!����+�&,͎=��\F�z�.2����<2#q���
��4AL; ,�@ix�i�\؞��{z lb �`]v
�����>��
+�K)�:��1��JNg�����
���
IKB�s孔�g*^mI^�S�y5>�(B������߯��y��S
�6 ��8xT��� ��>b��G�{͌���P��H�b\Y�/���
�۫o�)�Qm�Wy+A��e�b���VWΈ���#����t�vgKO�H�
+�5>|.g(�gƹcz>��%�
�R6LO?�6�(�
 ��Q��w7q@|�K���|��
+1�@��6 ��*�,H�)���x�@
�2 Nh-���/��t�qNS4�x�V�.��ӏ���ۋ:W2g��K�{٬rdz:����Jm�4�QC at N=@>�8� �� E�O�oO@��j�T\$�hy >���o���=�z�,���	�Ƨ
���(Oq ee�WdG	�r�ٱ�{��+E�C�w�Q�>�G@
��-
K�\�������d������QܨKchv���� ��
 ���t:�~ }\��~�1��l
0����7 S�O�6n�)	`�O0�5~O��/0Tz�Uz��)A��=s�a�J�G]�%���s�TQ�EW�W����.�=S��nq�a��d�s�������x ִ����둀
=��i
p`P
G�1�����o�é
+���p�"8y
��.�CzH��,�u4�R�;\�qU(Os?�>)"w͕؀p�Z�?M��̯���m?|�9ꏌ
+,ग़���|Ė
�@�	��	;��-;���B���� �6�'�w���a<ĵ��X	�L d�B�����
+���ن��6��ͫ�!���הּ?�mb�M"
7�p���&v�
��� �#n��z c]ȂS��D@�b�{!g�ˎ�\�R at n�_����ڎm/$����*�&ܭ��pV�ꕳ�Y��i�����$��?�mܐH����J�߭�
MH,�]���1
�J_jǮ5��@ݡ�{� 4�_ -�db<4��^��3?�1M^��ğ���O	MRb���D�1
+h�1�<�n���
�Ou�O1�=��|�H{���ާ�9C>n�s#wCڈr-?�DW�_��
�M4�-2�5~���z��+�&��4��&��~�$���������e��.�?�
�.�[�$oH��]˗�tيW�R}���A��gf��O��F
�^es����S_���6Sm�$a q�ΌW('��DO��[M�����Ou�4�<]��k�yC�p��?��A�,OAj�9�����t痃��?�#b��E� ���qn_���jY�6���q�Ȏ��t���
+!�:̟��L���O�U$��dN"����U{YW��J���
;�
q��'�.�.���M�����V�
�����\�س=���\=>G�����az�7�yD���L<�����V
��:jP��1�%4<77�D�M
�����Ȝ����ߠ�k���3ꦻ�X��[%;]���jqs/���r�>�wf	'$*�'�de��h�uzܘ\�Q�i
�3wpk,���{��}���}��Yo�Y�^z�}w
8E�swW	]4޻��|J����<rtho��1�ץz�6��;�:T��;�8�;�;�_��l�H8x8
�t��������ᵗ
�����?]x�΄.�΅�|�w���io+k髎��
+
�
���n��Ѵ�?�s3��|SN�*�^վ������p��۝���Q_�6�K�x�LEbp���z�?P/ݫ�]xԲB7>t
/7i�}l�	�d0�ɤ�y��n6�PZ���zm�볡��L}d3h==��Z����~T�y���aw�z�"
)U��S�lCߏ�����ip9 Ǟ�_�4�!~ �e�g�;��M3���}��P�ís��7o��m<�/��~�V}d��zz�uwԜ
ި�K����6�z�9�b�Ʈ�s��w��R^C���y�H�@ߖJ�����v��=�>W��_8]��˪9��~�Ie2��zQ��i������`Ӕn�]�3(
��I�V��U�#�z��
����
+y
J�!�
s�j��k�̿�~�6����A��sW����F���V�)�����X-8u�w���q/�)�Z������O�8��`�xd��f��-	���� �\I_�%�:����2>.8^]y�\�T��wY؞�R�zb�k����`$l%�8���b�U�
+���Yȥf]g�MM
������~ۄ���Z�(��|��L.�ȸ
+g�!;�]"*w�~Mn��C|�
��j�Z�y��pZ�(p��~ã�h�3�M�7n����E�f�r
s�l�c:�${cmu��

k߀+}![�mL��Y���jHy#��*^{?��6
d�Q��4������-^��*	���4�����V�e�V�牭�9�Q1�F��ݐ�"����Ü:�m�jпZ�{��6��L>�3�M`E#̸��,�E���ڧu��@�c~-�-U'wH��Je_d�
˫�8+{z���j@���fSޜ����
�ϐK��^�^_����>��]{;��lr���@V���@~-��?2/��筒�5���AvJh���2�KQ�n�YG��E�(�R4��������י��a��&=����~�-Ev�`�&t���c�F�ug��
�lu�_�қm^�9���w�hl5�l\�aݦq�
MCnVz�6�M�19^k�~\�L��K-�"�,�J�RJR�V�ρ(W��.��+ժ��D�N_l6F+�ә�О�8�Ȧu���ty�|��5�_tG�_�OD{
�|�
I���Wڐrv�Yiiq3od<�K��^VC�wU�<s
���Ceq�
+*V���d���H{杕j��Ή-���\܏�k��
�%��{����x�q�sCM�sX���.����I�b�@Q�#�,ۧ��P[N�t�q�REɝl�Ö�㬍t#;�h��������>�����}O��ޑTWŭx�g��5_"�O2B�6CIy���CH|o���'S)s�ݱå|�ځaa�bϓDcZ�*�<�U:�0�ƽ2y`
����$�m����*
_p���h���B��C
�j
e�;��W�H�Z�&�ޝP�˓���n�ԅ|��� ܧ\��0���q;�l$�5�~s.37JM�M���&�h�4��m��y?�)�S�aCQ>|�Q}n��=���M1���#�H��r�'k���JR�2��|�H�p+c���e�>�Yԧ��
7\��?�Q��d
�ɰ٬�2n�L3yt(ӫ�@�2Q��Ai at Q�}����J��s�`٨�7<��N��P��ңH6?��+��ğ��m&�EW\���s�?��<ѓ��\숁bW�G<^�%�l|�?]>
6kc#f�
�=���\i�2{�����v6IP5�ȣ[7�&{���#�gs��(��T��^��a�B��
T�^�gqyf�?P�R 
���I/�W���͗n��ݙ�M����ڂ�R}Μ�K�s�L�}z]�h�3�Q��-�h"�"�{�H6�Ɲ���^����ч����}����M���K��j�9�������;�?(
+�0�Z&B�� #��4j�;�����u�Q�e
Hi�.m���
�m���AD�l�����Tm��d�.ԉkA�N��?����	�
��"/l��f�K-j㰃B�r3_�7�
��������₹���ܦ�t�‘�k��֫�5�쑗�챛�.S�[,�K�o��V��l�
Da5��=��.q����k/����KK��6:y凨=��(����<տ拓�'��x
)�~�5C=W��+92����k�2�*H�H[��'�g�ò��c�z|�����W����T�t���=�Za���{����Ki���I�Y��:���ɺ�:;�[N>
+�N�;9�>�(f=�
.`�m����e�Z�@k
�y	�F	���
n:{H�8�c,�L��g��K*�ɬ�C���
��ʩ�\t�9�3��顢��N:�ٹ��a|��n�]m��$?r*��}��h�. �<ae��wn��
,�z
1��5}���zw̼��WfX��.�ٸ�x�iK�����6O��+��s��A�C��;��B�E�U[
]r���[���ax�PHz���̂O3Đ)�
���6��T��S�XF֍R1{|�lX
n�(�N��9���u�H�:�0U��c�
䖠��'�����!,FSX�cl� }T� }�
@�t�'/~�x�<�Q�������a|���pt"3��AP/��
+ЈjL�y�&:
�5�2{�!���@�̇?��`V����Z�1� ��P�-fǗ��˥c4)�##F� x^Z 
�S O�e���m�=2i��#`��������
T���~Or*�/1
��̦K�:��Dw�����Fm�����eQ���^ɘ&����Ͱ���
� "�
����/{@��3� 
+��
@�d;�i
g�A��_�W5�`�< Ъ
�T���^,�c�6_�ճ�Y^f��7?n�'��k�1�O1�-�
�YA��Ѐ������W�=�NJx+�5��\�Hz=�
+���;@��+ g� &����+�<��<5O�<[�.B��  ٵj���Ns�vLݽ��d���y����
y+
�X4���O��s�@����|�Ÿ
��k(�� ��M�`�� �r>%��
 ��
t
�z�a��k�X�=v����
�C��nj�z�t���=l ���v���z�1���Ƹy̓���>q(=� {뽇�xy����ɉ��@��8
C�ʸ��	�

6cc��{
`+9
���I�c����0%�?�R]���7
�
dd���9`��'Y��4�ϒ�ڊ`>[
C�C�H=��O�>Y��? J�SDT<�iH4{�����
2�=����d:$2�A�t���|�5���1�7�?�$�tY|
+�
�l �����_w��
�+�6��-X��F�W񝇍;i�r�ݸfS�GJ�iT�+����'S��ᐈ��̮IxB
�8k}�ɒ���` E
H�0 ң
����@�v�@΅' #7ȠZS�i��O�B��๷��nmW��ؑK�:
���Ӥ�7m�O+����7��M|����7|ͷ���J�Jv�J�y�I���dT�� j�-�}Ӏ��0~�Y�ڪ��������S�S���W���dĶ��I�m�����R���Cr�\��c���G��w{���tyCZ��u%��U<�B�$�|0��$6A"�&Z����C�ʴ�FN��D	�����S��[X?ըvz�K��noJ�[�`g�+��]���]��:T�;3��|
+2e��O{�QZ��C[v��
�@�t�;���Jl��f�7 �k�M������~�Я;��SB�fu�R�t��癷��]�V�8d?��NA�

�9;��dVf�������aS~�Ok?ս���<��̒_�Ѕ�_2�>�Pg����ҽ�w��q�?��
j(�g�~��'S��Ƈ1�������r;����n�}�����#Ʈ�jȭ��#-neV�?}ܜ}�gf\�;�$P�����"r&++ӛ`��d�#�jt����a@��-��A(J���w�%
+m_�<>�5���K���=��&1���:?Яy���su��ό�i:�o�MT|]Ol������=b֣��V���}�������Ճ�u��J8/ A�,�q��Z������OO�6y
w�C_�V��V�L��۰6�א�
��
��/�2W�g-B�@
�ӱ2
��6�����s�j��i�t���.<��Cj�;�bs��V�}��k��P���T{�έ^���&H�^���F�
�O�l�G�+����Q��@�9Ӭ�{�
?3:	~��{���㛖&˳5+&j�}��}6
����	��˶�%
m��
d��΍�ռ�C�)=��F_�7�Q�]73a���F�����߭,�+����!��G
�ʶ��?�ޡKz^C�
=�3I����X�
�����Q�F���
�����C��޺��
+�}v�
�ݱ����H_�k���7?ߣ�����U�!T��C���è���
ڄ�1�V>�Ġ��~)4
QIΌwn�py�� ő�~��I�K�����9[p8[�/��rq1��xp_*tg=
AK��c8���[=^,��
�G�mMZz������q-r���n*�)q���p58d��y$�|���]�*�r> 
�e���\:K�OW{�Yk�߈�*��C���4��`����)C�ǵ�ots�2�ׇGmFu7U��{�;�-_�~�
t�v)�@�}����g��MF��@;����wݴ���Y{�^�7�0��d�;�4��\2�e\���h��A��F)�ː��
+f%mP��Ag��ti��b�9b�]izݗ�f�[�nڵ�斥�
���cˢ�ZW�>��Y�.�Qa�6�y��v��ު��7�x��f33&��F{Q!
�����f��J\m��>h��I�S!��(�����\�(�K�}������#��w�F��|�����,g��bd���Jx5�ͻT��t�haʳj�T�l���q���!
���?�����U{��/mh�3ZjvB�I#G�Ѕ�Y�`*4����%��������]�?)L��ώ���ȔOp�k6~���%���@��5'ԣ'��.d��C{��V����A=#�w
C�������A�u��:���՞�W*\DJqE\$�>�J�B26�aҶ�����|����\��7!P�S���W>4�/C��=��o�)�y���sQ�
�f�\ԸJˏv���Ca�cS�Xχ��/��ؗ m4Sm-}z�j�%�1����@^
���Si��l$?<����zK,%�e��M
+�ߓ��urxy�5�A�=��:�� �� �~ f*JSf*a �������X�ʭ�Yf��Z�RPn��vb���P�u��e����
`Kq�+]���-�'Q�C]<:HWd�!�$\��R����O:�k/߼� n�DpN�T�
w�kI'��.�!�C�z�� ��2�>�����|�h>��EI�3���q��
F�@�e~���ig��Ud(Ѣ�Y��,>�\�ϖ�44�q
�rp���5��D�T�}�M|����9�o���V}��8H�Pe�g
+��W��5x�.]�ej#�T.�Ƚ{M��$'��'�]�I��y���W�7�X��7���Bn�k�'z����}���%�
̭H�:��?Ի�+k��U�R=��N�A���h�̼��)
+�
�{`Wzٓ�tY���fQT��(�~ϻ$�t:D��Z����>�����1\2��i�)�z
+��u�Hu��ڮ�Ɉ(���S�[�ğ�٥fG���/14�
+�Mh�=7�r������n1����L�A6��S-��i��E�6����p�� �$�w<C2]'�\_$�姀��`��r��g�~�+���{������Z
+S#3F(��:i[>��xb��������S
�HU��'�͏�����N�
���j"��+*�E]��A�"��:yh�:dàF�9�D�8[B��W�v<\��=o��ۣɁ���j��|�K=�Y�E"�U��g�s�ѳ�Q3Z�+I2u��h>,~C��t7?R�xC����t=�\\�
rj���u��(B$Y�3�`��Z��wi������������6�U�.�fw*_H	���*Rʒ�ܺ4���-�ew���g���y��'�&��hD�C��)`g�f�$����<�]�yMZ��c�&�M�<ʢD��+�U�����󻈎�h�,���T䧳�,�Cdq�\�R[I�֏���.rv�r���|��ܜ?�0W:��x���f���9�di���#�Z����
�
V�]l�Z%�{����e�}ޢ�mM%�%T��ЌGǟ��/�;:�,�l]��ܦ��sU���;t��w�E��t�Y�}|�-3���L������^�:E�Iy�y�繌J��"�/3���ĝ�
�r$�u�lb�֦B)���Pv���n������_q͖4\�@��G'�P����#
D�2!��g�����(���^�n�$���i
I���m���S�LF=t���Zic�j�"�_�� �s� ��*:��]�:���t�Ͽ+��&*R2^��E-��t<
FB��os�C�T�K䉿�xO�tt�;���
endstream
endobj
222 0 obj
<</Length 65536>>stream
+%�o��ϓ'���_�fF�
���~�����V쥦`8Ke�������"�!�|��|ٜ��	b<e���(�%�
�I�}B�}�/Je�,�+�
�@��鰹f�F��DH���Ҷh��^�Q9C��m����YȀ�MK�}
���EP �p�*���I�����D*+ߕ�P�U�-�xi���Pn�(V� 4�E���d�2��g��%	:
q��+{��F����LtP��Y��Qӥ��e5>���ӓ�A��H�'2cl
���e��j`ڰ�1��c,�
���6 f�-�Y�`6� L:� ��
��<0D�j}�G`�z��ᩘV�c�*���7z���Ր
�&6z�+�9(�hu`q��2�m�L�
�l�R ��}2E���*��^��5���>7x�� <z� >-� ��X������n��	�		�V��7: ����W�&�%İn�6�;��Q���]x.�
�bD�7��7!D���6[˞�5�z��1�w)�6[�V:��T�n�
�8��(�m@�
+}@,� N�% �Hf���c1�
+ u�
+Hn�u�|�H�" ����+ ^3+�o��������"]�J���s�j~G�
+1Ç�1�/��n�<���X43�U�*�Tܚ%Z$]�[�u�?��ݮ��~(B��
+v���΀� /@]�,��4�� ϵcL׀�J@=e
P/i����j\�؜&�����J��g}
+?�����>ƭѼX�e/�j
S�0]Բ�d"3�U�i.�X���Ѝ��Wĥ_�	0T�g��zz��]�l��(U K��Ò�3`)lNrA\�� 
�<`�� 0��9�p�
+/IU	M�W�.�w,G�N�Vq��F4���0n��Ө�=I+���O$p"�&9��6�q������ip��x
+� �
���u�C
+��Up
M�;!�pX�����>xRaV���T3(���
3�4¢���.���?zr�$�L�q����ʷW�:o��7����C�
J at d�6g�)�˫+_P\�f� ��1��mHZ���%�Ga@���8���Ē��D���׼
��
�q�)��'�j�I��4�DE����_��_��7��t�u�&�m��𺜀Rkg�ғŸ�!@yA[�� 
�H�
+T���C�<Q��ZMl�,�W�M��ɢ^I2B�����b�6����#��o��:�c���#�e*w{�m�
��W,�VIF칑:fOgg���:8����J�a94Yw�w��g���OZ�������}����H���#4w���˵|��/������<uf�s������Y�G)��}��G���E����%8�x���>�|����<W��$r ����
:�C�k������#]��oslM��%^�'ܺ�a��7r�Yߏ�J��OJ�E�\o����59ޏW
h?[�r��y��Bڝ�s�tz�@3���N#����ah�/��N�UOT��Y���&�ծ�So��?g����Q�:���a��9�9��JtOV�:��Av�[H�&6�4
+�4i&��9>BF9y�e m�-@֘\B�Q#
r�>�
�G�7�Ҭߗ��ާ�{��G��[�:��&i�W�\2�����Ys�ob�M���Q�����>=Ý���rT|Ϋ�[�u
���g6
��r�Ѯ�lE�_���
+���������@�
#!2�
/�`;����}/����K�
+�Ͼy뇹f�O*���Z��O������� �V�n�(n
bLV�
�K�|��h��hP�H5�pnZ�f�ΪЫ���V#8��v�
��V�UG�[�
5�gy�x�뛆Z�������Yj����5��.Q����3U�-,�ص�����|٩&&�m�tiΌc 'Zm�lޡ�z����;��u�ּ�)�u�j��P�m�n��b��VT^�������U�Y�z�V�6�͊�.�ޡ�
y��8/����, �]
+�Z����]���Kŕ�au���^�(yH�jxJ?���`��W�0�k�D�
X5Cފ�#m3���N�#�����Me[�+�i���C�|W�r ���mp�Jr�
ו�s�ܾ���������Qp�r� �
�堋�\���IW���i���۫�}�ڎd��e�Z5��?�Wk����V�?P=SJM���'���Y��P/��|P
+�l������ v^
�m1��N��s�x羝y��q�S-k�Z]���cmõh���0�|�ln<�1�QA�<Bn��C�Q�R��2�ư2��(���΃��ϣQ�U�6�~��\
���
mӋk��ײ3�^��A���8�om;��E>ss�Ч7fCS��y�\��*�
je��l��edCk�5�h!�Q��RM���ſ)Q'�+��ԕ,
m��R�{��-�_��	a��p����\*��fZRS�NafN�ڂ
+ve21���֭
k�e��ɪp�VL��b�w3��.O{3m at O֚v���=n��$���2�2�UI%{���.�hFoI��x*{w�
.�*��HK��H;���
1��l׊]p*w�ըkB|\��P��V�g

Q�Gm.�z��������UAӝCE
?-�ja=ez�FJ!2J�)o�e�s����)m�CF"�4&�e��A�Z�5�#�W_����p���r=��eocLn\O�]�G{v����|��L�GwT��v��@��z_4,�X�u�5yզ2�j�Y�q��U�'ZA.�NE�4��Te��xL�
���s!2�g+���Yh5��zidyI
��F4Nu�v��
�4����e`nQd`�d�zI�1��q�_��0�l�
�ʮ���#���6�{*k1�y*����eG˘8e�jo-��b��w/
+g��	|�j�7U��!҈xi5Z�@\���z�<ؑ�O������I
������4r~l)O�f(�i��
����(OI�t|k���
(����Yk��)lk
m,K�
[�OSƛ�,Qօ�
+)2��&�iM�e�ks����4�X�@t�ю
�f͜3���2N+�Ћt<�w��<��i<����߱�DR��h|���!�`'�4Ft"���8r�s�-���	?%0=m��

�*4�i�U�+���
\.�'�N�r7�q�7�r� �xkn9����"�jU&;�6�EiףK�kB����P‘���sAUe��W�Q䜃f1aN�&�����k�u�9ߟ�VO|-��zz�(���Fz�s��K�Z���^W�6�3�ӯ�_�)R�)
&L߫��GP����g-�&��Wq�
o��2;JC��4K���j���!)��i�ʨ��򴴦�Eo�K��AW��ir��M)
՞��T��7����m�r�u�ugo�*��Å�
 $͘��?b�%
��5cr5c���|�NO�3=�fϭ�H�LE�5\�d�ah�5�aT|QoC^&�V~Q��^dM�8���h��ʌP��e���t��.Ӽ�����rʕn����g{NcΦ�Ŏ�WƢ8�
w�

=����:��M<N&�9�A�W�L��I�Gr��O�x�r�v}&���q�5RM+j���QޓCJ��,�kkN���o:$�]�����@<c{������,��38
��xw��
әIzE����-V/2 !�,�-��h�*�
*S��!�w����>^������
	&��}�Y�2��5K�:�1�}��v
�=���`��Y��bY���i�q!�S�ݼLTƺ$zbD*�%x���V����*��[d�/��k<�-F��=Q)W��~���z�S�ӥ_¼�<�d�tE;�:�v�u���	����ѱ΃,�bh���he�F�~�����	`�2V�����'�x��������a�D��|���!O���
O��:��Oi�r�����C����`��s�5�‰+&��z-�d�˔�ȣ� }�;���?
c[n"}��!�t�j�
D�
r���m�����o5�m�
+<e3�n��:���N��3/�d��|NR��ʼnjJ��+~P�|5d��ͧbf1�	��
�<�XCTw��g��� ��
���RZ
ȩ�
X�G���
+�J����~,�)���ߌ���-Ms�|+�hR�qɈ�r���Sa�gY��Y���א"�=
�E'�[����J�s)kȠ��������_�3�����r���N���
ij�D�5by�q^ ��|*�� ��)w�J�Ng5���E~�:ˊ�o�D���;F��P&-�D��G
Q�U(\�4�]<q
ά���#������/Ēo�
 9aV�܌��J$ �k��F
�sc��]�L� �� ��#��VÙW�|����Я]�WG�Ր
����庭�y9z�5j��$��8,�\�)�F�N���et��]��V���!d ��ʱ�[���Xz;@
�(�6
������T{~T�� �:��v��g�Dr�N�
W:�;��Au]��*�_�ݺo
�=�,j���^�,�mD�vĎnP�x0���
�YD���κi at W&@w���V/��
�3�;=k| =G�X�9@/����CFt�k��ƿR����
��@4?�ځO�K
,�*��K��̖��y���!�&����]UI��d,���v���$��e	0d^�䛀�N`\��a|����L�
Om��`�4�4>�c�b�L s=� s[� ��~i�H�
&�D20C���sN��Rf��P�ݘ6g F����E�PE
�;w=c����;:`�'
�<�lN��A�r����_���5=����2�%�:�	p��;��pӺ
�
܈e��?F��:�+v�K�ҟ\`z\��<L~�\5<��f~����6��
��Qn��^�s�	s)B����'��U������z
�D�
x��|��|�1�Q� �N at p�=��%�&�
+~��>: BcqB����T���퀠A6���cd���&

+�<l%}�13
�|��`~��B�a�	�o���O����	EN�mU�a�_�1�R���/�U�@|�>@2>�9H�[H˪��
+�4
^@ju4 ��= U� �̗��u��`�
+��3������y �o�sg��j���<�[�/JN\�����;~���In�FBIz�?�	��W�P�2l�����X�P	�
��=~5�9@َf@�M1��A(�˅��!W��ý
+�M��3
�(v�Sl>�v�!�
�[T�N(r�mv�XnIL�Ip�_t�쟖��Km'U�[����w��a }�k at o#M�w�л���zݎ��pm�2�p34�)N���MߨS#��� ��&%}Mȿ
y�0��ސ�_���&�[.����6٧l�� �`���,0�N
�nm
+�V��v#̉?���^s7��r��X�m���XW�l,�Z,��?[�%F��3��
��틑���	�7�p��~̙U�EP�V�dkռ�o�����Q�K�����9E�S/I�=�Z��uuV!GB�C�?��?�z��+-U�e܊��q����
p��m#����#s
�o�r	3��|�3�9�b�iH��q����a踺+{�/pw#���Z���?���b��Z��䤼�&�������X����g��=�
O��v	�j�9�׏�}��v���VK�����an��
�^�̧
��p�iE�e���|����mrYl�w=q����D:=7㰵��ꭇ�RQ
+NW}���=��9��'�nC�]ɟ�CsΟn��c���b���ʏ�W0��%���Y�g�L���)jʯTv"�a��Iyt�H}��2�|8ԥ��3���̧�����
+��On,�W�P+���%�Ie��U��_&L�u���k��.�
�Oz
�X}�L^�L<b�
��Uq����ѽ�����0d�դ�Ӆ8ӵO.G�^|S���J?���ųsj,>
���
�ƶ�}Tm�ަ�
3�F�3M�Y»�|sW�L��ڄ��~�[�M�S۴�ޝ��Χ(�M�
tP��9A���6{�A&��m��ݗd���l�s�յ�t��m���Z��_:j���g�6��l�݄u��'*�zP���.3\�6���Ɯ�g��RX��祊�
+�r8��ʝ��5Ա��Z��Q��K��=�������t�-p	��mr��#
�k/��es��6�y�7��W��.UFj�j���E�ʇE�r�4�����N��w;W��ǥ�/?�;�ﺮM��⤬���,�]�.%+t�^��](�x��$1)�׷��~홰ZϊG8
l)ukfҬ�Zn�-�=�WV#{X�닒��M�g�F��8��Y� �VȳW��
�w% �ɐ5rM�:�~����a'{G���ͅ�p��3Თ�A3
���tJ#$�-�W�=
�$�9m�C�v��~�7�
}Q,�>�S��ӕ"�z��<���ڳ�w��۴�a���sg��W_�j��gO��)�٥[V�W�㴡��Έ�}y���v�5s��u���̬�\	-��S|��Џ��_�j�W�}j\{��X�Yl���4p_�W��hp��{kZ�J�8�N�9�#0��߷�xS�t2�jFC`/��n� ��=,3S�f����3;kR��
�v7�	�Aͼr���'e�5jNj3:z�J�Y�X��������^w�}����L���7�����,
 �S(
�e�ȷ3Y��2�Y�ӏ������
+ɶ��fM�[��r����������]ٖL��:�$�9zA�Ҝ�S�t���)t��3��
��2e��mT�F
��P�#M�O���[�фw��I{c�+�NmZ�ɸ��iLk�3yŚ@�P�K��m�5Ֆh�U�XYUݠ6�L����)��]���צް��v�P#�U��º;��n�?J�P��uuyt�2$YCi^N�7)	M-���b�l$��7���Ec{,E�����̪�8o��{�\�(�XoG\j7�T�xb���M��,��$iյ�E�hJ�PT��BE����<�2��S��F��X��2��Tr^#B\��H�킰Ο|�^g�|��	���|-���G�c�N��Aj{�up3�p��/�Fz�s��F�z����Z������4
�a�6jSjOi��s6�
����)���[PQ�nhU��Ė���2��Ģ;�
+���*�{:�����ᚳ|�
�pͶW�U˻x�¶7�9��'������tRvE,�
��ݩ'�_�*FJ�V�֩p���ׄ��H2��?)�3
Iʰ����R$�ڴ�ⱙ�AE�9v��ui u��C��:WXs�f��y�
�aWdY��O3��{t4�qbC�������Ѣ:g�����b $I��-�
2�����V~C:���������r6�yexy|KX 1�D�H>�P)|D�%��oT��w���U8�?nqr�6d;t�j�������_③�n�@;4���^��O�&�Z 04��csNM.�y'7������O�O��w�,1'���S�|�e�W�%܃aѝ��~L�,r;(/�;$wV�,ׂO
+{͇��?V�H.�h��q����|=�GtO����
�G���"�K�J�40#��<·��!�h����?�$����-R��Ks��s���jT���O�u��H���,i	�,\�v�h_�y�?9�ۭ�8�8�U�L����x
C�vQ�Nי5=Km�i����mH"w�k<�ti��ս^���j�5.�'��̳X#�pν����6�	k�Y,��U�۾���qVI5V��
���UW ��Bo@���`��1���8�b�������~�p�N���zK9�,Q�0�"�n'K��D���&Q�>AG� ���
v�~�k�
+&�tm�FT���"
U�\m�)&^���u�zhC
+2�?�k�WI��jn���\8Q\�mZ�0�]Lb�=��q�AW�Na����%IiK�΁#Q�=*Xxm���|�S�NR�c�+���n󌶟{��CKD�����f�<�
gx��Ux��H�ٞ����q</���;ڟe:��v�]�V����IE�-;�L�M
�9��Ìe�o����;Q�d#��:v�0�3�T,
��G�E�
�E;��jl����xTޔ�p�"��B�
r��: �� ?9��6 ��O�I%7+A���i;���AN'�lH%�e3r����
f�{�O�h�r�p&b*0�~�d�L"�b���	Ln� ��"�<2:��a�E�yK�_����k
m�M�|B|	�{���J|�X �
� ��� �My����<�$�%�������޾�%�ck�_�7���|s�c��{���E��� bs
��z���L>��:�a�!�!T��`qCy@�%�B:�E	Չ�� ����L@X9����8B Xޏe�I$~V���s:�F]�ښ�������
u�&q�Se[
j~΢Ė;\�7����7�7<fhB�[���X�q�$$
+���/��Y@�x5���u�� ɖ�D> �e�*� �e_��k���<�9�S�
m���)�sk��YT��{W2�/�k�e^�҈P$u�0\�0�L0�� <
�`o�-���k
�, W-���ȷP��ވ%
���r� �
� .�%�0� � y؛�<��g	VQ"�&
���0ѵE<���"�P�I�7���2�d��K>��'�@o�
G������ݳ�2�/T�Ҁ�O@�gP
$�G6
hdR4�ub)� ����2 ��h|T�۝꓅ u�d�[
5/`�؋�=��"6�h�º�8XT�u|�%ŤgRO%�&&�R�cQ_6��q��}">E	4<� �n@W� 莬zS� 
�
���
�j~�;
 ��T��)Cx,�`�Z
0���! ÿ�c��#q��D�nLv)e���o�ؓ�ԩ�+�k���8��h�.3�tSԏ62<��"HR��	
�1d�Xu
0�a�-�y�˫����֖
`�8�� 
s>��?�C�
��|�܍�x����N �zՈ�u2ͤG���~
�K�g��\N����e�._�j�UF��ԟ����/�eom7�3"��z���r�t��b
�& ��
���x��%>���*�CS�_VO�o)�O�}��"�����1NbxN����r?j�9c2oQ�ٵ�s�V�R��V��L��
+IPr���u��8�_�6��%��U�$��	 �J,�<��FH2�uŁD� ޏ���8��������_d��Z���`B/��VT;1)C�����O�K�R뤞�>��r�/����&j��Lk@�
��X/�`	�q.J����}�d%�_�b���� >0���*�
�C���u@�3�����7D�����෤�@�/E�Wz����K��
�}��
����&	��{
���
�.�^R at W9���h�<�A|������ I����ٗÕ����NƆ�\^���OeI%�������m�f6$5����Km��7�� ���m[g�x=B`q�f|p=��x\�{�]D`�H�
|&ϧ�w�A��5�$#|�2b�-Ȉi�-lc����޿	�B���WfmJ�9��X=m�n�U���}��'�;���"8�]�~��g�8��^��XW���N�����~q���&�2b�4�$x�9���Gn��ɦ4��5l��hu�@���c��)r�������#�t [...]
+*̦�b~?9U��:+|t�P�(��&á�|%�%���_��ߕ�������mÏN	M�M���l��ŋD�]w�i�F���L~�99Z�����:9���8�_�{��Th áf�O_���!���A>k���s{z����Ϭsj�.
�������
|��͉�
���;P%���a�y5���7w��C'�A���MF�LZץ>�t���$E����R�����1�e�[g��Ω�
��_�A��m�m���ɋ�Ǜg��9ɑD2r#O��zPC[u���$��cV+��P�xi�\�g���`O���nUR㰴&����W�����	�vGb���
+=Z�������l��I�*7�y#���
�׿J�J�Z�/��{�T���V�r�v���
M�
k�.ݧ ,�N	�zG�ŵ)�T���uqR�I��_��=�0o�R�Iu����R'NXm[�t����8�E�S�T�au_�L�u�\V���������H�򳬾2��%��0�Ү�yBq���b��S�yu�.���
�Q#O^�An�mor��9u��9Ĺ�Ӽ~u�f���,�O"%F>�A�
�����u7B����g���z��Y��b���yYo����h���U�<���Mku�1�����O��z��
�h�Kt&�qb��s��=�Ҿ�j���^��Z��m�#X��ڷ>����c�2
+�������T7[�^�B����f<�j���4O����S��X�S���zfT�J��	'R+�!R/}_X��A��v����\��6�;[���ne�=��
L�yU�L����񌟕��Hm&T��8����2�X��_��.�*�;KdW�J�~�8�+|��8�f��e4h���\���`��Cw*Y��H�&�U�Y�,wu,�\s��U��M#�
�յ�A>��f�S��?������

+�Nˬ�y�}V
���ک
�j���UMx�UM�j��_%����n:BaU���˱88�#ڒ�~�N����Pi�\�7��v��]���3� �k.��oJ�b�S�~��z���̹�i��47[?��J}�S�ϔ�n�U�:�*�P@�ak%˶j���4�&�v(e��%e�V'��0�\ϣ��
?�~��cL�r5���Sʚ��$��M�#��qU?�����!�P"a�t�QMNa�F<�vKQ
��R�k-��^A~�˪<B�m���4��ݶN�B�꼰���*��lW�zўߚ��o
�:_��>�m���~���򤰬l�ٶ[���UML��~��ůA�Ej�������v�wHy,7�b��x&.�ˆ��Z$��i�t�ڒS��%����B��	�8J��B�-��W'�7wDn,�XV��|�����17���Ѭ�����փ�'q�?h9E��<#V��T5������jK����%����G���S
�W9�I�rz�{�P6��fH��B��ϊD����O	��=-�
��k�Z�Ayn]�qM�7e/ [...]
+�(8�{���|�r'�p�7|��l(��^4sw^<��w.�
+4��<�H[�a���{��D̒����Ķ!F�|F�7ޱ�W����K�
�E���=|����4$6W��?h�>�fpl��neը?i9[S1goas�
|���p��w�H۱
[>2��ve�j>��c�C�
���)C}>��L�A!
��c��.y
��lf��'��
"��
+V��+��K�Qo�c��1��xX�?x��{�g9��
^�%c+t,�j�%�^�))b��
��A�������s�
��K{�h{ .ԔD�TvC�(����B+Q$�/q��쫄�>��m�x�5ZءQc
�~��ЅЖʨ����됞��H7
>HWųȵ=o��:h���l���kO��k�����oy��Q����]�_ܹ
��km
2}�8��㼥
��&�ő$��(�������^P
��E�Դ�
�-k��EL,�
�ZgG�Rv��]z#zc"�O)U���z ���;��Wl��&ܟwZI2K�Z^��E��ƽ�H�-��J���5Ia;	a�Q(�9���#�.�k+)�pؑ�Z]t��ë��;��w�I�#LܭaL�C�P
m%U^�
�Kjq��`���
+z�6w(�h4��7��S
�n��ےr^����9��<���Y�H]�ɦ�n�D����i{�;�so��
�iW._��QGrI
�Dnmq��b�����pE�\��ܱ��3
I�
� �z�
���
�v�r��`��`y��e����f5��0yjL��X�N�%c:�2=�z 
���/���
�7
{�S�֛y���޺!��QV�{�
+q�%s�v��10�۔�M	�T�'y �M
X�c�Y� \>��p��2
gi�=0'��`�m�3��e��j3p.�?����WTPޛ�����ٛ�4��և~7*���:g��_
1iUڣ�t��BY�����| | �X�D,K�CԈ�T������G�E,���>�I9~��L�S �����<R�cA�eSdvb��Ϧv����[#���q��8�� ���>��:�dӾ�u�q��daqF�R�3�M]���3J? ��o@�MΎD�Sb��c9�Q�z�+ at 4�'�g# �� �i �t�}		�-�r:�#���j����ak�L�-����x�љ3
HW���zG�cr�P�u���[?���yD�� b��+�  ���d�M2��,u�X� �Z-���i��H''2��/��"B����	�K|2�b��H��9�)hl-a_'�����oz�{��(?'��y#O������ K�t�\�ş�� ��׸B�
+_iPx�k^)�jP6��7���T3��Ts�%���B �^4@��K�(�ȣ@a�W,����CͿJ��%nm^vo
+3"%���
?D�)�-�
U�ݑw\�"��X��ĥp0��&�Kp���4| �	:�+�
��<��c��}=���o�<)@�[�
�=@/S�
S�K�- at g�}�huE�Zva���5O^Ⱦ+4��͚�Z��#��xʍ��L!��L at 8S���
,��K���
�zÊ��䪀)�_
o�uu2'�,�n �v�v�, �O�������� [��2����*�,",���3
����:#u���ߴ�)s=���s�:�D���-��P�yP*�ŐY���}������_.�ܻ5��X~�=~�y>0�����*z����o�
(.���;2�)��޳sy�7�|HV�L����1�ɘԂ�?M���X�w��T�5�LҀ���&9ͷIobwM�i
���  ��w״Z
+H$Zb�
�����	��3
 ��E�*�x��9V� Y=�^���4*c�"QD��8�[�o�$�61$'�$5$���w�����ٿ�4�܆K(�n e�u��2|���=P2C
(Z�
+Z��TŁ<րܾݥm6��XqD��^����L�Q��2�ONZ'���*v�D%��5�_�
߸ݿy�	�Mܶc���hk�=�
��n[�Ѐv;{@��/@k��/=��"&�ba�������4IRu�1�s�p�ސ��7#�۶�����_�������$%!ٝ,1�&��������{��㗀q-/�1�a��⧸�� ��������h�_�IFl��m�O�m�����#<?�'�̬��cN��V{
+����6
+d^�)(�W^�!W	���>ߋ��U���D�C���6�E3���|#���C������T�=�����:p�R�kF��
W���ɻ1�y7<��%LW��{.;;
)vq�p 8���f_�Ow;f�8nN��u
����^mAԜIˉv�,�V�;��'a�?hBkP�k
������a�7�^ܝ/�􄉆R�����wx���Z��)��}1
zoNY�^��-�J�b`���7������c��I�ɉ��U�BiZ'���T�v�a�;
�[��0�=���(��p����%��M�Jv�JphbMXm3��_l\[��
x�YZ�}gv	���E�v�Fl�sr���*9�����8��ף{c
�i�?>~�2ȼ*�~
�~���>8H�B���~�.�
)<�
]���2��x�\����{���V��QM�hg����G\%A�SW���c�!�����
�.��4��R��ja�
z{��^�Ֆ�o^4ش��u��i��"�Yc^����s��,��my��\�ZטB��_�*��F$p�M,��Bg~W�������u���gm�j�
qxC���?M����5�9��G�� ��T�m�m��o��Ŀ��V<����~.Ut�>��J~fPv������eP�����
�¼~#
+إ`�Nv�w��Γ�H�U�@L��'+�W�b1���Ű�Zi-<m�k��ƫx
+R.w�k�t<�$�4���#7�
w��7���=������
�Q>�-yW�~W�w�\E]�V� ���c����z?.�}F#�P��I}�O�ɪ�_��J�Y���(�V��V[�׵�w���F>��Zn�1V�"K��k��컹J,���?��i�
e��l��dgˌ��7���rL�%��
w
	�>��&��f��KΜw����^[{�#�U#��4��x�+ɍ�\�Z[��=DŽ��=�&��d�>[�i[	vle{�u{X�ӶM
ykRJV��j|���CU��&vu�F��f��O֩� 8�*V�H�@C��St�8�)hw5�$�5��YMf��&s�F��6��'׹��>�\i�?�#d;b��Hۖ	�ʲӗ9o�^&v��F�
`����H�QJU���bސ��Ǵ�
0Q�Ns��yy���x�����D���J�����P�;�
��<�/�l����y�n�'��Ʋm�D��lkl'
~L���Ӱ�T�T)�B�&n���'U�s}-/z�
\�Ӵ��A5��49
x��2 at c�hU#�r�²�WI]���%��#�R�$}�fS�t�})�CKq>��b�Z""tU�ת����@�'^��]<�(j
n��x�����V��/���L�h�3�2]x���W^�
,o�����c �?�ϊ��9��CyX�-Do�s�)�"��Y��,�y#��ثn
�hR(h_�7s��+�b��W�W/['0�4{:t�������-�k�D�.��	o8�� k�U[6֎C��5ڣnO�\C9=����
�$'?�K><IH�;�
�
�x.V����(oE�[���U��C.��40�ᄓ_c[���7r�2�T9d��CЏQϢ�;ڤ�8R�&"S��ܥ^�}��Y�I�jY��I>C“��J���c�.�*�Y\��{���$�f��K�k�A�1��W]!�9�~r����D����O���Jd��#�t�H�ѫF��?�.m�5��
+r���I���#�PkG�}�(
��J,׭�u�_7����	[&)]�\pe���2Lob�
��r���k9j�
��$�
��ٮ9��ݱ�pd����܊ bz$
1�F�Pz�9
m>Z*56G6�~_]r��Z$��O�"��uEF�2{2�]3��j���j�#b�6��/��W4���b���'�`�#^S�k\�p�w|��tʫ���kƖ��׀mO�sVժ3�HϘ��纰��ꑶ������;��^O��e �Ę�;-֫9��
���G���ƣ
,���ou�9�k��}�Q)Gsh�w��rλ���w��۵���H����^=L���x��\�:�9)�6�:Y,i���T&��z�~Pj|����X�s�ޑ��x"��y#��!�^�7�5������KJ�ӭ��
C��
*� 	ۮ����
��|o
)��5҈,�_�E�^V
vE3�WR�L:�/��>����r�U?�5c �%=4�3j���<�
�|<
+"��l���y�+94�YL�g��"�X��ј ��mT�9�-|D+!+�A�/بS4\�0�8�87	�vDN[�B�*t25+���kZVd��.���V���(�~	|�=0�䱡��֒������$���C|
jC�����A_�1a0��r9���vG[�
+��H"��@D��ڀ
Q��k����
C���F4 at f�
@|f�~� H5c1sI6K��|�@
��?hVZ�**Tň�n���<�@���buI!*7#��mBP�x�
����c³6C[��
+���
�����-���q��� F�7)1P��Q �
g�Ӹ� *9c��Hˁ(�) �)� ��h��% Ϯ�ޫ�j#E+��s at SF&�&�?2��M�z�^�Ԕhd��͉v���=�D�<F[���~�+x���л��A�u35s9���W��=�/��m�%Z��?h`� ��y��N%���@���!����e�p�3W2�]�WM����H}>w^��cÐ��Ǹ��Ö\�
Q2�9^�.3���M�6ڛ!=���-���2k0���*
b�笘:� ,KR���X.��t3��
`��`�-~y�)� &��)��GnĒm�_g���g���T��%#p��
1�hr�G]�H��bK���
+���%֤n
��,�Ho�V���A!�a�@<R�k\g� �4� {� ��H,9&��pJ��2m���C���$��f\��z��jl5�%d�v�����le�vUq�0	�fo��b�������$��
^�5�,�+Tu�K$�\ƭ�i/��o-.f� 7�{�7����w��O,5<�����'Ό�����b���\���BL�����
��Ɵ��Oϲ�n���[Ή�"�р���	e{���3�s#�~�w����?v�z�pt���I8[�� ?���{,��`�@8����
+���b*��2���5@��C@
����
IJl"(}���|�vXDe�D��K��rU�<##�iU�ym�k7Nc���9��L����W��
��B��..i��O�<��'@\�K“O@�k H��r�Ѐ|u%@�WP���ǃ5��b�] y��X�@�c@ί�T�^5��Һ��E��I�
]��y6���	}%*M/¼uG
��
N�Z�ߢ�@eo�u:��B ���ͯ�w���R ���+~.���e�U��z
�:u� m���;K@}����e->��O��a��|k��͸ep�n[�'��$�5
�Z
�<
��n�(���K��O�7@3
$P���V cM,�
�`�b
���XA\�2� ��9

0�[���f�ᾤ�^� c�p�Hy�7�:�u
�9�6�Q�&��՜�.C�@"�Cy�A at b����I5�B��n�.`���B��l�7a�	�,C������# |1{|�; ^��S�
�n����
p}S\3�hGB�ޠ�3��X
E�YJ�T1[VP\��E�E�<�_���'�Ɵz�F8��G����w���o>���m�uڵ��
������B�@\ǝ�8�Z@�l7@Ի1� �s- ��(��
e�ƣ��P�&(g��4��g�x�ڟvJ�mRRBG�t��\b�W�	n�������7�6q�~Sn��#t�@i�P��P���]���r�p��^�a ��m��L�2SQ�GPp���V��Q��t“�`[Щ�ܶ�Mm�̆�&���+�o�m�L�)	�&�/'���*Л��m�
+tyϚo��|c����L�@��n�饆��;�_�zp![��i�_r�NI�|淞���ٶ����,�	���muq^�Ͷ�5������xPО�4�$0�l���c��Ç
`�_񯋟�^���d���?��!p�c]M2b�-Ȗ��h��Iܶ�s4�W����pi
=�Z�Om�{܍��+?�4;u���S��4��!w���
+lV�f9����B��1	3��1�x����O��'k��,�g&��"k��	��ͤpۈ�����%L����:�!��
3�V����F��A��up����D��+�=^���|/3�\��)mN���,f�����̓M�Kv�Jx�o�i���ӆR�J`h"��\�}=�%&�����y��;�?[~<��%�
y^f���=v����}颢����)32:�#
+N8� �(�*��>�M��S}�t�W�UU?B7X��Xd�{�r�,��_2�<����&���3��:����<�
Ol9���7�cK��[������n�ֆF���C;�S�4tkÇ�ä�o�BOt)��[�M�����D+�J���C��s�;�����S��Xj��`�Q�=Q��~�*=o���*�?[f-�a�?s��Ր�o��[�{�r�Br�C��׃z��$+�#�Q��ѿ���
�P�p��C�q���i��F��k�/Wl��3
%Pq�������|�=����T�Y��ԫw��i�{]j����`�aN���&+��MFw��H9
��ZZ��7�6��b�V�e������D�R+|¦��D�x��Z�Y��
+�#?'
���n_B(8������W�~?�SA��R
���^S�Q>������|�j;�~���f�׾nB��>k�s.~��/��Uh������tlA���w



�
^Xk5|���4Ŋd��E	ٞ�
��h5�L�!9l�nuVo
+U3�՜AuUS�m��NZn���*�޻U��4(_s�<�
钿~�KZ3_*>w�vQﰋb���
+�)*��>�����G��o�C�ka����.���
�V����$�v��v�
�ʣ2�(��DB�A��|˒K9������{}T0;p�\�]��x�:_O<w,�ߘsn3��r�sDf
���*%��e�ȸ���t%���6˻�@��o��~uB!C����v��/	�E��Le��`�`��uq�@8�y�|���
&�6#.�k����3�Y%��e�W��q��NF@�jڳ�ZZ���	��H.�43F��M$���J��e8�$���x�N����-CH�Ru+��H�*V�{�-��
+y���f
+�f����q��1#��9tB�ju�|<���XK��7�J�x<��tR�����$�~��(Ƈ���bkqs����#���F�z���(�6Ko'lV���Y'�"��&b���B)[�cՄ���3�i���W��i�*{���K�g}��1�&�t�]B�jG�9Q67~7W�$,��(%Zˉ�\:!�A='4KJ���FM�w����
��3��e��ʯ'��)'��� �Zj
���t;��9�*�d�2�8��B��m8�Lط��%�t�U"וq�,Dkw��zf���n+lf;�� 4��,Ѐ�yg�<�qQ�]g�+5XN��I�s%Vm�2��cf�߬�t���ק�&��1M[�bڌNCP�1��7��`�ֹ&)��2�̈��+9}ȗD4�b�(n���n�a��B��w{ɳJ���{��=n�	bҎ��9ﲪ���Ӹ1�0��
eҹ�_\*��[:@�6����z�L�ƩJ�)P��zFU�$A��"��
+��$ݯq�I�X�ᓟ�ᡟ�(]���ԝ��k��
N
�
vp g�`���AO\���d���Ōc�u�޹ٱ�=�rw�#�����Х茦����`TU��(��n���nF~�@l�'�h�j���� �UKO|W�% ��R?�V� ^(`����SK49������9Yq�ck��Q�dn=
�+����
��46��g��~=��ks�~�K�.5�:�����v���Na�T�\=%�$��8aӏ�
+��3��\`X�/�0��T#&��;����j&/aʢ]���\��N���G���)�:�`�gg�dn��<�؞��Bt2��΄���1
U
p|K�u��+�)l��k�l<�-IΆ–�!S�7�o����"�
�E��ɘx�k�y�ۡ�l#���{
+���.�E�+�E�,��3u;_j�
+�&�c���l�Ѱ�q�&Ȇ~���eS��2�$I�~G�]�J#�V�vŇ����$yN{��r��{��w �'�g�O��sP,^�Y��.Õ8:4�
�ǢC$+5��'��B{o<�����r��|�O�:)L*��8��L,̮mo�sS\�R�o�촴��Q�.OfUSSÏ���$�~	y�
p�܌��Nq~x1���-��
�b�i��^��+:"u���C!Y���b�-�g]`��(�Ww��K<@TA�@�x��b!L2�x��(Ԭz:L��(
�o���]�m71]�,h3v�)�j��!�6
<�0�
q޶F�Zv��ŲttT�|rzӄ�B���Cr)��5�-��(0
�h����� e�@��
��� �S�$�!��0�\+�� �J���@��wh{G0.�]&�.6��_�n\�&$\`�	}q��A���S���"�
�
�

J]#jDG�(��6��. at U�
+�A"
+Ac:�>{=��Y����c" h��h� ��� ��eZ�*��X���(H�r�=�+�wh|�#=�ƞwc:ޔ59�F�54�.���,�����+�/ ��5�%epf�gn���
 FP>��� #
E�
���
+`t�
�(�BM z�a#��O.
z�I�J�����ɢ��Œo\�{Bpc��xCWdqI�k{���`3�zO�;D�Cw�L��$jl���	
���
`����ˋ0�9A��6�o�2\�`kN�p�lc  3�����G�� k�Z ���B~W�Wi�H��)���������OnL�4ZNZds�4v\��‘װA���9��(ZڪH�9�F�c���{
p9{�йB�� W(
+B'	�Ux�����;�׮(������ O���g9��ڂYJ�٪'��{����
�^�
�1�h'�s����`]���!y��"X4�HJ� ��@��r<�l@�� �����8
+��B��
Q�6!ܧ�(���REl�L\����r�h��
�2�h���擢kfI�L��o�7����
�޻�p1�Mh6^3�o�2@������:���
��jWȐ�jy���%?��d���� Y��Z���6 s�y�
Hq$5o nA��~��Ng<���l1.p;
~��f�Oǧ�k�&����	=o�)�V�
+[XB��O�s
+2[�Hjb2��������m#�*EI@
��H
�,��hPrs ��2	}�j�ϊ
@	��Z',`�|�t1N1d�?.�TX�$V�u�������'˻�"������(���~�4�
��:F�'W��e���9�X��
hm+�Nd@
N�@
u: ��g�~,���� ЛG
+��a hٹ|�{�{a*p�J�~���_b��o"a�B`Q�v��N���ݐ�WJ���o��T��$��w�7�T���d�g
0�ԅ�� fK�c�63i�Ȼ`*�
0�$ ��
bv��a ��{PWL��1ˆ�C�4jl��H9z}�>�G��.�J�
������Ǽ���_J8d���+'�^׶g 8,}vM�\w�b�[�S�k��8�Yn 'L��F
��ۇ_�/D5]��f�����Na7�#�s�껇wH),U�-
�[�ml���ż�V74o�M��K��� q�@
2	 �K	�lF��~���B�!}����	�
�1�Nƅ�{����d�%�/N�����~�S��KpX��?
~����~smsL?
lh���
H���m$K����:�p�$H4R5��g6 A�h_::79�Mz����U.���Z�"���=�
)�'���|۰�m��!�6��&�vƙ�>ih���
Ȭ�&����ItP��q�}ӓ���)�ʂ�y [...]
+X:5�_�-�azݼg��6Qx�
�}}~�K��Ah���u8iHv>�ڡa����'�tag;�0>p�v�W�`�6WoS8�++��Y���X:��{�����y�̌�.�|�]X��_D#{yf���]����2�*���i̷G��c��*��+k�څeV���C;���JUOǟ�Ц
�.�m�"XXm �D�ؒ������c����-�ޓ�<��XGk���D!��ؕmm̻k}�
+���2X�����������/�H��g��b�y���c�j�����nmh�~y~�e��fO�i�a��0�24��=�B//Lm
h��3��+���>��+�-+���2G��:���-�6cX��t�\���v7�*�k*�ّGq���Ҽ�Cǻ�޸?�Ej Hf�mJ�'�º�C���� 
z��[C�
�a{����ϓ�J���.U�M�໦ߩV+�mS�*{�V<�B)�/;Q�Y��y���US4��3\p5�ߥ��-W�WZ���Ѵ�@�c�����H:���X�U|z$|�?�DÚ�ai�?>�����B#���S��w�5%���2����@HI�N��jE-���Ŕ��Q�o��U�*i��]|������Xd
�����BE��yk�,rG��A
�_w��lK嚥�����K����r�azm�1�.$)Yb%
tI����s�D�E��;�(��
�!D0x`�.T8#W@��r�
_���e��5ӻv��_�,��N�J��g\3��t+�1��GZ�:��F��e��F헛J
�l��~�?k�6�"X�>�C
%�nB+9���	�
�[֙
�Y�9�2�>�@8?3����$�*#D
l�[��t/'S���M���������֞��
w
$��k�(&2���j\��#��GuG^��h-�.��4�0f=�*ia�CC�6_���W��J�Ri��$5YY%sLs
A�%��y��|C/���}>Eqs>��G|�--�fV�ݲ�,md�F��X5�W��K�Y��Y���ܝ`q���p�;���̲J����NPt�ʲ��%�iR_�M�`�ָ7뙆&⏶a���@%�+ˆp�
���h ��R	�<�o�]�וJ1N�zq�sVyVm�Mp�!s9�kf�JO&�dL:��c��

�O&��H�h�}2�?�9j��*�����V�N\��Q��8jЖ�|�t^��&<[>9ך�n}9�b=�p4 <��}�XU�n�C+��Q7�G0&-��1�4#b��,�r).O?�v�ֵ�.�=�~
8e��2e.ckʴ�	�"
PPj�t�V�z"LR���39���8FԷB�}�w1��df��:����Q�q��2�I
B���'5��
3�i*��r	^���Ԃ�Dž5]�H;����)sf?�J�Q(�򤵘�z
k�>6#�����Ʀ�DSAT��
�D�å��>�nԃ[�����������(
����k���&;8`S&�c�}Y�_8գ

W��t��qHh�8T��@=�B�
�{I�(|C֝ԁ$�FlY
̓#h)��w�L•
7���ꈳ�
���t
s��3�^&<���b=��c��
+ٶ�F����Ǻ��g�+�\��8�Ob�em@�6x�Z���U�.���=ru��d#���h@/mLl���h��9C���>K�w��o7:o�#
;8L�)C	9r����
4����4�l4q`4�����S*�
��#�h�5��"���B?9��c��l
+=�*U��
r���$�Sڄ-*]�eW�DL.��X����Hq�������}�
	��zg�����
=�t
��r�g���e���J~��3,�G�3� ^E� ���#\e��s�ubʤ�B���:qx���6{6{
&K�f�VR�&�'�ʦC؍�B�d����\� B�,��4����A���i
=�&s�&o�r����$�âC��ҳ
^VMe�Q{����ʃ�;щ��<A/ٜ�n}�b5i�^�Z�91�S��"6
�t�YR����]k��l��arL�8�
+�� :��
:�Y�w�a

��1Fn{v�L:�e��l:�t���{��2� Ws !�.�$��Q}%��k�]H�S�R����
�����#%�y�<����*o��=�jM~@J�׃�Rnt�D��씋]�Gr=�_':X
��P=�
�H���E���0Z�
&�]�+>����GV ����) �[��A�^��O.�� )�{��x L-�f���/21�OA>9^h|���_<o����n�`D���m���L��
]2̡���&p%
}��]�^=P���3
�r5 r �k׃py�Vg}� �U��K;�<2@<Aȶȼ� �p�-��H�=�����-�cS��6V8s�7ϛpP�O0yS�;�f�D�w	
>�Uxy.�m`�mx�
� *
F�@��	�iTu/���l� 
�* ����]�V�1�����
��-P*Z�9�{<�N7��#,
�h�nK�2iRu|2%�+�q�]wE
F��M��+(�(G(��ޕ��X��|L��	,@ק@��0<g at P,�=�Ƈ�b�q��r`9�p� v
@o�Χ-��'�1�ֳ���R�{��{�t��+)̤po8%�
?��ަ��/��%�J
i�6��P%Z�m[��P�Ƕ0.P?~r-�qp�9�n�
+�o��!�� ;v/� �%�
[S�y�3����9�l�~s��W�-$�Z

��i���O.N�-�2��l&3Bi�c\ȻL�M
#�>�
�(��ې�V�_v�
�,����1Mx��<� ܖ�f7> ���}�dg��.#|q0 ���yMM�����<������ݓ|��͝���K����M�����
�>�	6�c4��KP�,cB`{Ax�8xI� |`N~�� 
��
����1��|A�҂�" �L	®�m~x�< 1�ӀP^S at d9�9,�@�yb�}qB{�\2E=�<]�b`�u�}���â���Θ�4:�[�M���Ҵ�2��%�T[�Iѹ��+�# �� ��7�PI�T���pm 
+�� ��˂<���� ���l8 �e#,2o܎ܗ\걋<�B'�꼀w�0�f�K4[���
+1����_2�?��;#���%�^߀���:�+��P�zjv?���
����b~(��v�C���
w��ڞ�Ż�����Z��
b�x��t��㼍�����st�J����'
���$�?����� #��Q�
�4gS��b`��'`Q 1?�Al��@L�9K�>�!SJp���3
{
̛�fuW��sX5���W��w~rXZ"d����̺];�K�k�rړel ����� g�Sv4�2�"�xfX�u��� ��.��I��Gl�|�4�d�4j��>�Z�~��w��'��BuB>a���"��һ_��Й����y�� .�J�b*�"r�aڶ��/�@���o)�ڱ�]��T�ʼY�M�X�r��F�~���6�C6!�W�����l�Û���o)��|۰J·���O����m�A$��
+$,* 	a���r
�����S���q�!�/<�i�&�u��O�/�ɟ�}�(�CaB6!������?���Y������O���+,���
�9�
�i柰��E��
�&�H�9��r��ޯ>NrH
\��t�o|�T?9�m�Jġ�

+�mX�!�m�%�~ۑ,����;�7l��
+�s�
�߅(�[�m{� �we�O
� �/  WO�@��Z��E]�w�_G��
N�6g�j�1��ΕXq}�0�3r䆀"��
+Lt��a��-�R`&!�1�f�q���K�m�Q��R}r��߮N��UOQ��%��TRM��o�mpW��
W�^J���^q�ys
c��`���hP���'��)b������
�
_ڭ
+X]��8�U
z�a�v�5o���&��
���zluV����i�uʭ{��0oT��0��,�G�������n?[��g��l�"؟����E���~D���Wۏ����j���[(KDs�w&�!��QFω��s�z �Y=JnJ�8��d��ݘ��
����'/z
V�
K%���
 V�2?_SFuM~Q1�4�\��5�;��
ί���Dy�7��Oj��ԇR"hx1�k2�_n5��*����G�['�����z,�V��i�����c�$%'�QF�fYZ�ނ����������|G�*��j7���q�_=�7z�Ҷy(�ֱQ��ѫ�i�hr������u�^V]NO��`�
��Gr�֪PU�=����6ς��%nqi�?��6�LM>��_���g*G����
�~���r��:S�Hc@�,\=C1�H�կ ��CA�����snӁko�����ΏQ�VJ҈����׎<�1Ӓ�f3���K�<���	��(ʇ�
ߨ�<�%���KC�#u
���ln [...]
�%v
�gCH�C~��wЌ`?L�;hF�&�
�7m�9�iF�_
��&���
��E��	gC�6�Ӗ��������F���_G����~q���-?;�?�_���0��6���-�R����?m�%�����K�������ö������m�u�����{�������W���
e �6ދ ι�3�"��J�����xt�N�f����
��Ud�p���;R`p/��f��m\����
�L�C��0>@�2���
��g쑽\��TV�D<y�[���
������H.O�j��b�
א�v�^���ώ�#�=��
�y�����9��ؽXq����+ko�N��f��\O�y��fvF���S�f,��ׇ
=����X�����<
7��Jt"�`� �Gy��$��+�M��vG�qjf�vw�:[�lŞ�'��,}��JE���E��E�w�3C��li��o/~_|«^z����;&uk4�ֹ��{�O�t3j/��j�'G��io�<ջ�Z��?�w���g����w �*�
�v�
�[���Z~���/*&u�u��
+�]s:��^�����Cq4Ϳ���pҠ����{�(v�m&�lf�¿���� Q��!��X�
��M������+�9�)���X����ۚ3��:
{�Nԇ�ױ��6ٮ!���]��	Yq:?
���43��g��ZE��W�+��y�|�4#'��<7]�7�ѼWe�)�ⵑ|]�a����Z���W���ĸV��a�"�ߟ�K�v	�j,a{E
��|mEG3�/nއE
�ۉM��������<�N���x�v��l�.W�6��y1�9D'?�ώ����x������ W8
�0v-�Nϸe��n���RЖ13<��b���ٮy��v�2"d�uE[q�WI��G~6�nЇ�&�}܆�.��:���}�p��k�������Mq��'1uRK�h#�uH��*��%�:�E�
=O�d*ᅦ�
�0 �m׹Y	-8�_
�U��.
����c��͈	
��A�����W������G�|L>���9�f��ḷT�� ���!�<&��sJ"������u�G�
^��z���4JZ_75q�U;�K�>�Eк��5�^��ڸH�(i��赁l�p���D
]�i{�cF����L곳�Z��L!&O3>������ƺ����o[���H�Z–J:�oTG�}}u�
�$�:~D���d����WZ5�\tt���;n�E̸�ǍL�s�6��uZ�(>l�
�#K�R��g׬o�E�j�˚|D�5F�ρO�������6���Ң��-��~{�
�7�p�
O��K�"�z�.Br�|}�嚣��5氕�no�T��[�^EM-!D�o�.�)
��\ [...]
+�/�~���D��-?B�;h~�b?��'��4��ߖ�3����m�/�ϊ�wЌ`�8��Ֆ��g�Łi~��K����z�5�
��Ֆ�ؑ"�/|H��_���?�3�����M[~O��q�S�Aε�B�@,���x��^���㺵�_�m�ͦ��6�Q+�]>
]{1���fV���W_��];�
�JSܫ'��C2i�aX�@��9�z�1A�ꕬr
/���=�;:v,�8���t�i��/�N�5k�›���}�{�7�}�
"�_��K�ư��h�
+�\�!M[�B��K 
��cR1GW��Z��C����ö�����s�Ƅ:.P�~�o^��`q�&V����_B�Á���v�0�pV!ѵt
��3��V6���qB_��F,v�x��y�U2�e96|,0=��a
��1�+Ǧ�<F��{�9�f�
����>�oS�3Szi�@|���G�w��L.�zr��u�A�����[�{-��;:g� :Kz�`R�׏q�_V�
�"�ߟ�\oV�J�8v�~���Q�87�?|���kra����4�wG
�_p��i��Ŋ$/F7�xS?�;L���ah����{��`U<�D�o�m<��- ��
ļ�>/��q:���6,��+��C��۾�Y���`
��f�uV�v���9��'�;K�᜿;������ir[8d��B �|�{�ֳ�
�Z���k�i%�{b�_��Uao�bҚ����v��~��a[(��v->W��y��=D���P7��F4s�D� ]��G���>��2��M�l
�؇iboU�����)
a�ɵ?��
EUNJ�}j�Z����Y������|%�{
��G%Z|%|th�r��Q�
״�k�yg3���
��,�Az�Ƣ�1l��aK5l��a���BS�]*,|�a�պ
+�$
�$�-�,&
Y��ꧧ�.|JIy~�jN/�W��Y3�נ���#i�_�e��R�T�Xbq�
ɉ��}'����|D���P�
�58*�F���[PCM�fnԽ�����t�����_�E̢:������]P��2��먋�b�=�1-1�g�����i�~|fJ�3$zǰ�n��\I^�˴�M�9۵�%�9�b-��,$#��W&�u-;8e��>谝�eD+��#Z}�Û)t�7f�8Q��O2�������Gu؇ZZ ��_��4p�uw�=�|��n��x��vv�t��wG��ԙ�]t�Ǖ
k��P���H�)����
Σu�+!�
�-{
r�=�Ϥ�<.��&ܚ����6V�F��d���gl��DR��5�[k�A;�o������Jʓ�t���W}!5ߵU��I {�(}�Fnq�]��C96���Z*��gJ3U����

��!�T��齇��{[j7Y-�o�Ա}��
+yk�s��@��{��)����
D�?
�G�j��'�����joyYU
+;�T��
`������e��4�
�����Cr�d�r��[� ��Q��Ԩ��s�~ϵm*v�ѝ��� ��N���=��}��4����_���J��#���U=~ht7�|_���iKc���.���d����.U�J�Spjr����ƾ�Iǟ~Y��N�i��J
K�{f�
� �j0�o�w�|�Ў�K1��{��zN/KȲҨo��\�vD��p@�������Z�?����:���?@����� �]寫
+s��#���5��7�ճr�U�w&v+{{
%d�ݡbM��՘C)I�Ċ7�$+q_̔/��/�rb��
+�J�7���V��ώ��Ll�ol���5���k�V&���4���)}�y�u�E���}
ƇQ;��
ݜ�,3��ݐ���p
S��z��[��3��uiT.��m�����g��A��A����wЌ`?L�;���҄s�_���g��K�o��/��`�8��Ӗ_��&
�m�C���������������m�u�iF��x9�M�
.B��{�w�@`��Ϭ/�y�f����8�O�޼���LVߕO�aK�����ņ�⫵0�7�D���F��yQ�{�,f������C��h�
��9$�^A��\ �]���w �r�{���]�L\?��co�C��Wn��q���pk5���V�N�K-�
���blVp�M��͏ T��Ht����m=�
�g���@�k�@��QͲt�.�ǔ<^�je�mc������,�7�nt�3A��:=�p�G��4�G=�{ ן'H�Yb<�~�m
f�7&�ѹ�Ԭ�?\�w��lۙ�fu	䭕�i��ug���
|�ƈ��4y;Z����}�/�
"�ߟ��T����
+}݌��H4�pE�-Qj��saS��ѫvn'�CN������6���Y����J��>/*i�1�n����{�(nv�Ҭ�
G���G �����(G��_�_�P&J��[������J~�A�3gێ̃�C]�M�;x��A�/:s��2q��z����۸�Q��zD/�R5#X��/�wzr�(��`ϑ�2��>�����v�
�/s��x���qaO���]֗e����F��.<��v��?EF��p#u�S?, \�� ���S_��R3�
+$$:� ؇Ґ�_?��
�Ț�f����'�'7z��l.>�W9�~17�|ԏCF�i�����yo?`�����V˾ZZ-~�UɧC��<�3�T�]�.V`�S�g�oQ�"�K7�).O�z���ܳ��"==�Y��f��};�7
�9����n�gT=��K��'�E���������ˀ�W���zƼ�}d/#ү4����rp-�M��(��z�Â$K��
<[+���h�̭A��-��J}�}عc��뎡���
�ώB�

�Y��_W-8*�����s�Ϯ��t��_J�|���C;
�ޭ�Z��Ƒ_��9?a�	�1
tK�4��SNe�-'��|�v�����u����<��J�Ѷ��
4��cr��~���/�T�qJ%��\�vk��X�L��O
s8&�XG=%<��K]�N%�o*�{���t���:���������}�[p����q�5���/�[;����J���/t��l`[,t
��#�؟`�]c��
+�^�M��t�L�ʨ�jz[?+�q�(�	J�Fݎ�����ׁ���v�V��@��c"k�[}�����
x~P���y�.tv#���]�)_�X���\�T���D%�=�V/-q�c
���j�^\��uP�J?�/g!׹
��QLSp�4�\�|���g[y�u���^�B{IMoM=3�V�۔�SG
+�����-�:��L�:D㑢���L�������?@���	אr�;*��L;��0A^��={|���=-
�v�/�\/�-���(����Tz�p�ڛ��������H�@���ǫ�OU��%��!�}{p�~NA�n �t�G�+�-q�
��m���U�T	����ӊ�fF��'�3��;��
Q�c
+���n���w#h�����P����V��	V�c���;|�w���V�wgax?�f��s��Ej[R
+_�/��?�50��[��\ЭW����{�µ����u�
+���(�
+A��#A�qټ��� ����T�N��=�� ��Meg����r���1�ܛ��7�㩕�c�"��
�k8�ksqʃ#L"PN�)w?IE�wn���n��k��
���ܫJ��2W��l��%��d�>�����"^ݦ���"�9���qV�d:�Q|�J��@��&R5/��Z뽒^��Z�n�fN�q?�k�h
j1��U�V�
�*� y����[I.ZZ��t�X^�Uu�FM�p�<L��d��Gَ�O���5��E����m�ʨN�ZM�X��
�OQ	bU�
����ݩĭ��|���"�ߟ�E�������RF#���!��v�q��)����O�
���o�-_S�q��[Y��7l�*j�U����T�hm�<ʵ;�T�Rk�=��`�ԆZ/�5s�uz]Ԥ{�9�^�	�=y$x�dZ���jW�m+�[�+���G��;���X�	�XQ��b
+��z�(��$
���,�#0�:
0K30�K���[8ɳ�������3�
2р�2�qE�3W��>K��uhip8�ͱ;��>�6�]1�1
�B�
�{��ep;�x�|_�w������w��쇉~M�؏����b?G�O�i��������4#�/|H��_���/?G����7m���iF�_x6�ľҜ�;�ĉ:pz#��j|W�|��ܩ���$]Q��;)����o� G����J�)3wP临��|��$�ݖ��Ok�5��p��C�����^ؘ��ނD]�����E)���™�[�!,��G%�����л#���&��xNw�-j8�~fn�|��K�Ն�|{ݥ,wW��œ�nMT�;�_��9��E�݀�g��'�����F�@`N�S�
��we�;ˉ�v
d_ӽ>�
�66�[;�
��Z��l�H�v֨�8��b̞㫳eP��/!`���h��}xi6>�&����@n�0�٧z`�7st���f
��c�[0�–
��;���\[c����{Ze�n4��z�Ys&���o��p���
Q6��\�D�-7�;
6����D�K�\{D�Vّک���^�ؼ��JS�-Kq�:^���m�V���
�U|�W��6jϥv-^�Zz���D�o�OT��jy=>‹s�C)�@��S ��~��
�����ܬ�Y�m
��l7=��F��,8��\��qNz�'��j��e��
Ge6.�_B��t�+�a�y4<�P
s�d�셉����)��Fк���To�71ǖa__��ni�m��iې��=;�_�t(���R?m��fBa��������W��
$:B=+H�f@=ϣ~�h�L:Mџ�@�����l��κ����[ۚ���8kCY���Z�V����I���F�%�
���l 
��C
_�Cv%{6�
���/]
m�.�H,P.L��8fvۡg��z��e��Y�c��|6HdtM;O�cS��z�i?����%C����Kؖ����	�</?���S $Ob ��F?�M��3݌�j�@9�k�t���z{0�K��6LSҩ�ޏݧ�}h�E���](N}��N��7ʶ��?��D��<�
 Q��B�#��h58B+�b�2|�$�v/���k����}�wk�jn�ݧ���2�W��j��f<�D����H=\r�����
6� ��v�4���W~#*�GpTB/�щ@�!�G�)\�J�(^�h5>u�7]͒�f�J���J*��{Q��zAU�kU�ݦ`��陸N�y��oW��]咓	;��볌�(��1��4���sX at F�"�#̍���YT�mw1(��	>6Z.���8f�C-p������@�!��?*�:��Nm�6��"�,DC�
��_B���_��8$:�4��s�@$+�G��7��
�?mo��*�-�>�|
T�Z
+Q�@PAA��������yN�/����:y��.-f[�n�#
�?M��N���΅�3;v��lg/�f�Dž����ߢ/>��x���Ǽ�'�b�
�.#ǟ
F������3[e���g{
GŰ�ZѮ"	�y�^\�[)�R|���Lj7��t�I/�_Ԛ��O/B�
�����Z�I�k����5lho��2

���

��?-�
'�;���f>��T�
�a�w��Ⱥ�%����e�=�Wgf7���i����H�g
k\�f�El<͔�QCdrE�Q�$��~��� _�
R�����ѿ�(�q�J8]
4P;�(5z�]׾�7�d���@��o��<�誝#�Y��aC
+�粰
�y�V��/��6����w
+O3�g���Z�f�Z����#@�+�4�0�����?�����b�FQ
�����V�1��Y-���u6�`rM���m��X�85{jr��<>7����J0,�Mѣ�0��˝u�>�������V��s*.o�L�wn���a
�{Ԕ�Rw�׭\
�/D��frQq
+�������K��2�rM47�i<�ʀ�7&`�y��D2ݟP�,u3�� ?�/JAI��|���sZԜ�hol�x���w�S�i���U��봸��;{��'��+����-´?��ޏ�,���B6�o

�21�-����MQN��J�qṪ����g��2t���tTl�*F�W6�-j�n>{/��
+�?�
Mnյ��kJ؃��qa����U�Í>}6�!]�G���r'~������� �ݳQx�:s!܁�~�/��@�/��
+�^
�uɭ�F�Ԟb�{�؟Qӑ���Ô�X
2&�e�}Kg�����V�IOO��Η�̸9�>%���O?��[�\Nr]��
�����v��Mڼ����J17I��
�{/�/����~2_�r�.c�g���C�=e�گE��s�Vdj���T�5rMj:�M��G�����t������:��,��/K�w��<�/�M7R��DWg��͢����K����1M5c=GF�H��K��&.
"�[@B��=�@<
+�,�>G��t��
�3�w���޳�bT�"4���[n�&�!��:a�d\�%GԢ-O��{
w}�ڟi�n06�~N���iu���c�M q|�2�#蚂��*W"������ ��&A�ɖAaT'�����G|({pΪ�`ȜWlP����荇_��iևA���ޡs�Ѳ#9|Ց���z}/�<�+o�y׸�
+�}���wY�[�i�.������#����@�
�Ǣ?��B�����g��5��&l��n�k~Z����?o�\�_�����,���
+(H-(j4���!J�P��A��%
��K���d��*#��'� s�|�
�3���+��U�n5�u�����
��f�?�
VxB������㣙������€��E�����(ҧ�U�
+J$���ҽE bꜘxC� :�3>�W�k�V�֕K�?k��qi�7>w��i�fo16� �w�9�
+_���� c)�e*	�R+V��Jq�
��3
�+E�\���
-�|v��\�s�߫J��][_��h��/����~<1�ƶ��=N���!���>�f�������
VnU�Qi/
�0Ub�8���4�E�l ʬRy�L�	��{�
�|wF��5<�Y;�7v�G��lv�[�f�c'u;�[;W_M��v�`��%N�} l���Y�����,(��Pss��̼��|�r��δ7�ڳ�"�a�k���-X߂�L���j�wzkY��7��o
��}9�a �w��y��s�6|y��7�����C�Ӆ������p�O��+�*MV�0
q���=���(`N��-)����
�s?[ߟr>�3eb�ͣ8m�u�����x�RA���ˬIc��������D����":(#�
ʗ3�?�~�\�}="��(ȼ�0���
��v�t��|������$�8�������I��x�^��'C�I-~�2�*
�O�en`� �d@��i��]9��Ù?�ɑwƚ��:��el���
$���혂�i�zo�N����b[k�=����K�e�_K�po��R�����P(:l�sV����$���]ܠޯ�UXփ�2ɹ�^\��sy*��屁�:1�����c_È�j3
7J#��mwh-�~v%nŹ<P���������w��w���EǕ>�V#��Jů�
�u��{p�s���2�=M��龨;�٦v;�םuY^��L!�>���b^�\i^8�a�}���G���I�>��4����l��O���xF�{S�?˭7�NOg�&
��r�י�D;{	~S?#����e?o�������nf�p���V�q�� _�_
+���1��a����ʡ���7b��W����4ݚ<c/Lj?�*�?6�b�ۡ5g���p��˴���E
�G�q&i�Jl��RX�iI�FK������u��>!Q�%�6�)=�u�/�v��{������ǥ&�{x�V�	��!HfIGMZ.�+U10����\��@�&J%iJд��/��� `a7[_���S�A���@��2��۱�������~yb~R��y*���/�xM���y5�6�1\p�Nj��jLJ5��ۮ�L���hB��"��
+�}'�� -�?���5m!�-�P��'P�@.n�T6�UT5�
+~�6&��%{�:�b��zuqի�zk�����'I�'��>M1$	�e�G���rS���J�k�M
�������j�.S8�6�����xF|?�x�c�q�k��]�[�q贷Wq�R��
�ּ�
��
*�������Gm�/fT��pq+���\n=�_��'����-@��fa��
PR^욭K��h��=�&�egu���Н�fh�*z����e�Z��!��s��č^�M�Q_�C{䵫�a[��AO�
Y��,9����l�
_��
(6FY�+�q>a?�̅+���~�ZN'
����44����og�ZRH
�,&�2Sҥ�4�(�t���pB�׵�et.�}�:�k�Ɲ�i4�裡�~�H
+98�S-�5'sP�^�!,���6(����y�N��~8V
���Q����n?1)��ya����xMr�u:5 H;��1=�d�!ҷ;h���U^�[Ty�
�_ȯJ�P��s�T�������J�$���oP+@��ao����$a����Wk���BO�;���B&�(��g���

�s�b�o��d�T�̅i�ƜP�
�*�<v~�o,3J�\���:���y�����zn2��2�P{ ����I�֛��v0�Z8v��`ݕ`�?�p����P1}��������x��;g�Zj��rW��>@8P>7��X��6�3����Adw�s�0�]67\�mL��PPf�tp�����Wm���s8V43}�-�a9�c�T)��8�����+#AՇ�
��	�_�
��?}��f��:���#�gG�q�]���MJұ��2j����F�d���	c6]���[
����
d������`��R�K��^:�YW
)o>R���M�2L�����c�b�ּ7�� [...]
+O_��H-���Ə;"��O�����!
>g��W����Oٙt���\�-b�^�V.wM��莪x���g:��.�\�WcB���̋�A�ڕ�
w8�gl�T�ׂZ����6LOY;������Qy-vQg��ؒ���uS�`��o_��c[h_-���.�)�
i9j&�}��
A�=A@���@A8�	���7(�V]x��v̝?_���]���1����t��=F�7�j�1�ߙ��S���O�O[��o
2<^�\Kv�%
��%8�-��_����4��,�MXc�T�����������W�׭��w�k���/6�N�����,h�C�V9	���E:	w�H����S{��΄�Ǟ
T��]9�������Xq�C|�ތ�Z��)
��]�����|���0$�G�h{k �lO at 1�1AqǤA��"A���+Y�.t���6�d���*v0
�=�����5'��E����a�z�v�ƽ��۬`�eP
N����Sb����?�Aa�F�P[f 
M��S�_N�QF at iT�!��������=
{؋V�
���
������^�����V�*�]��*o_VC�7���:�+�8yb��꽷�P����Z�|
�xF�U��̖%���&�@X;�
D�T�U��[�Bu*�|FT�37��M��:���,߶��
�x���[�
�ܨv>���h����	��7��?��3�]Ԭ�a�w$P�
P�y9P./��	����㸺|V
K~�
��m��5��R õFSX]���\���{:�n{�r��3�q�w*��n{>+[��?���
+G��P4&:��d$PB�WPr�<(O�O�r��A����r�;t�ˏ���G���{�7�'V82��9��
f���un�՟��6�K�/�濅���#�9�ɰ����j�s���P4�O�+��׫����
w.
+p_��/*�/ldӐ�Be�:���A�����s4u��Y�
*��զ���i�����_�'
MV`

���
��xe�.�J*�I\�N�G2�
+w
��C�vf�����
��'s����z#
GC�%;�'tm�=��f����PYQ��bݚ�f+%�~
���O��N�'}JG����6+|<O-�G�R|���^�q[M_�=���[l�м����"p;d5�5n񜪥�.o�����齤�%�Ғx��2aG��(<�����

_���\P�(�����I�t��N��s=��H�bqܚqXver�~���,�����M�Č���=Y)A,/ɡ��JQ�";�sU~�|!�*�Pt
�ss�=�b�@)�-A��z���*�r�dz2�B�^��Ԭ�
�m�rq��
�������ˊ��z5��"�(bg|zI�F����<,�+�R��҅�O�i�2�-|k~Z���@1�p%װs&�OkTs�����	~�;�2�k25�[�Hm
:�Bs��̦VJ.�J�:�W�*�,
��et
�s�}���8�}�3���9�1D�� ���?4
1	�Pj��l�l=nP�4�j#�.�z��4;>v
XH٬k����
+�q��l�N��
U[
����~�;R����s���0�'�	7:��+|!��?D�.�(zlo`�l���+��*%LC��ˆ��x�CO�ɶpP&l�m�J�����þ�%2}���{�2��ZSxL����G��}�0�
��'�ac<���� ��	�
���[��z��7�R�V�
�x<��40W���
��bl*i��39#�k�h���^�sK����X�(���
6�:ٿ�&?Pt|ly�w�^�_Șk����o�~
 k� `�t
�Ix�!��p�#n�D=������
6�!���3f���G*��=zi��_3�=�e�sj���G6'���0�6>�6Un:�vF3Af�
xJ�������
���B~U��h�X��}Ƃ�d���u}>6l�
��4���y�4��Z��џo_��I(xUJ.N�FR��3IAkeS�_˺p�q�AG�<.
[]�5�S�IO
t—8XEI�� 0ځ��.�
��Z<v�\����?\w��w|pS�}�
7�����x�y�����6vc����&�l�
��vj�﹁r��,�
�>�i�D��_�ϖ���&>�s�T��sۼ�?6��{�w/}{y��;_$��H
��cr�B4��kzB�r�|�aO�‰i�q%�a����Gr�ѽ�h�qo����cZa����ϗ�_�_
+�J�����Ze�1����v�r�Y���u���&�W6[G�ʮ)�W��H�N9���y�5
+1�=Ж�����~5A��4u+�(U�*�t>u���:&�f^�- ,,&`��ꠒ����
��K�3��
SI9U#����!n�'�^�E}�R����w�^VC�_
�a��=����
�7�
�}�_:�3TuM�9�jD�X�D{u����姀|+	�|�>��x�N�!~7rS��mx4��&��TF����>w@�z��\��
�:R�Eg�X(.˞J>��\"�X߀~aT�]O��~�@D
+Q'`7�� ���5ls�s���$����)�(�]]���S�kQ�Cf?�,�,۔�ڞ3T��Lϫ�X������@7�G��̞�q�p�'����� �W92�L�E.U!��2F��X�� J,�י�������e��9Y[�ҷ���E�ϥ�lת��63��R	�s�� �;R
2fkʢ�ʂ���
]���/5�I�kp��n��dGw���)W��7`����Fد�/nf��c�}�2̫j�0YMn���ht燉�
O\$���0�A�L��b�b��`�Zߑ�4kST�d��<�M�3"�KBeD
����F
���S|��Z�mi�v���n�f��
��Wcp���b0L�>�k�x<��8�
�
�*�J��
����hD�o �@�)�}�s�n8,�)��}!=��{lq��2�
�5��
U��o� M�^��Tَ��RHȼsTt�,����KC�=�16�j����G�q�"�tj���o��|��������wQ7cv�9v�����Nؾ��g[谉v92-G]c��t��
~�
V�1��b좲�-$ܝ�S>�
+�u}
2�����AF�셿�J���lwTr�
�v�!���j��
o9ʹߪ��A�ߞ�悺M���;kDF 7�,P�\v�2
p��S�+@���B�������n�
����/� �-#�Bsf��U�A�3��Q
�֛���n��J<��/[�c����WԨ�g�/$x����>x� 99Vn{����O��Ϟ���@�
�Ǣ?��B���4a��w�[�/�LT��|�5�
��
��
2W�	1��{
��gKP��gP�./�7�2�w߽
w����پ2�����w[�!uۆm�:��$mz���r���r
�tY<����
�U�7@~|��K4�.�@��'�&?�����أ��Mf &����;(�2к����'�L�_H��bء&r�a�k�5��}R/�
={�
K�ޯ�hq��|؟��D�)@^>��Z�~~Q:�'�$ڲ�
+`�������� *?U��r
��&_Z���ZP�h�H��nU��Z}J�/=}��x�f��{zq8�򮮹p?��c�h
��jJ��O��m>��kr�%�bFG���E{S��
������g;��C,.��^vX&�\�hV�m箉tV�ikN���9���|�d�jY��qw,
��Z��+|!�*�C���c�_b +�iPLM�?��K��U
� ��y�tvX�!�f7|��O��dⱎ.����.�kSUnw��]=�n_����lr{�8�qT�C�\�7� � 
+� �ga����gw�,�̕�>���U%i0%B����S�i��Z��D������B���E>؜7����*%��U�xi����	��iu�vG1Yi�
ᧀ�.�O>
�~.����<(�����%�� ��~���c�n�p�h�u�?�����i�ک�E����F��KM,t�͏W�_�tꨇ��~�]j�-3��5��u��&�/�/ �=`�.�F7��Oj��K���;q�����ٜ,�o!� Y��,�����t�[��;
�Gܜ4R��EG
�c
1;���Cܫ��zG�[���U쐜)��J�r?ȿ���; �ؿ�-ќ���qَ��c��<'f�§7
�s��~*�wQ�rBg���aM#D��
X��n�iS[v�
j#�%���P����b�LW��
�c��4
���*�e��JxU�U����>�
�GČ3}ӽ?
����9����'k�/
��h��RyOe��`��ì���̳��: q�NԌɒ���2�L�{�g|!^��uAޮ��S�a�
�Ai38~m�3�{���6
i�3�Ir�[9:uF^jڼ=��Afr�~1�ߢ���
Ӓ2c�O^�	��O�Z&|i,��<��˩����O5�������[\<~�@'c7	z�^�<
����4��8��D���I=qW�ۑ�L�e��S�����|q���|Ă��TM0���r��
I�u��`�
��� �Z
֧�}�����1"���_M�u
�"ry�q�>:
���Id:��}�`7�u^�X.��� O.��Y0�|~~���4��l6IQ��r��kQ
F��<��H���蛀5zY�A�z��r��|��>�\2�NH?��7=��s�:v�z���F�iӊ)!�+2�E��$�ELAfR�
+�J�� U�sF�S�=���d�*����O�͊]GoPL
P���=�@e
���P
�

+U��E��%z���j��C����
�`�:��b��Ѽ�����I��9!�Dk�M��M�g��Y���Ǝ�')N}�
���oE�(
�	Pl8-8��"
��S��m�s��Qe�(D;��������W���}~�/6[�e����)��g��"���A<�y95���
w6�*W��$W
˝%z�W��O��[�.(
)P�b(���`��g�
R�
��`﹛ֹ('a�w�v����i�:�U��X~�gM/�O�d���2
^��h։ӟ
�������ͤ7z�$3�����f]�[C\�y�ڰk��h��ы՗oo�0Fv�7���h|n.���g��N�1��J�M���[�`�9	��z��8q�7���
��(Ū�c�f�ü��g7�e�l��'����p�$���Ii8��
(��x>W�afB�n#��]u!N��3=�|u������UMC�ל�����O
��D;8���,�B��W�}�R:���}���i6D8����-���w��ႩlP!
��fu�2��W}�|��Y�}���p�<I]���jP=��ғUE�#w���sRY:
�H���R��dH2��f��&��=���K�W䔚2�@]:��� ���")�@���bW�/��-n��S=9��yT]����t���2��cW����B|����)��p���4X�V?і�����AU�K����m�X�
3"`�+�w��_���� +�CP���$zt�
�ܽ'�t,��h>��ż���aCI�Y|!
�H2S!�V|9>+��H¸r�6��&Ww�
1Q_(���ϒ�#]"V^�����o"g��Ys�S ly}��
/�H�U��5�a���{DŽ�^�'��ώ�Z�RaQ��U��z=!��0<\e&��PCmc�$-�u�/�Dhx}�+�ԜI��e��t(8*����µ>�	{#��8���ȿ�/L��,��t����[��]s�hU���J|!3��#ӓ���Z���Y�?���1{�3V�5=�
�}s/���\�I

d��������@/��ɳ�'
����_���#ׄZ��A��.[?U�7�rn����|]bM���D@=��d�9|k�� s�J��k-�*.ɾ#������	���!�K��u�H�����͛����S�R�gL��Oq�Ve��j�Z7Ɖ��y�5�����X��/����n�<���z�9�
�]5��̗.寖1Ռ7irMl�D��V�?�!=�x
G=�
+=��[�2�����F�]��?�%�YQg:��V?<�5k�������-jS�ָhN�����c�q���&W]�k��	�O��n��x�D=c�^�:u�������zu칙��
�`����N�
�L������s:�����Ȩ�\��@n�
��
+'`"���(^J1k�֋.;��|89�H	Ş�ի]sZiwl)�w� ˴�vv�.?+|	/�[�wk��w�]s���f+��4���k��g��
?�V+��ա��͛J������R�8
w����yO�����=c$�:�,ﶯ�tԒ�7��{��J^2�5s�7��{���N�:��7k�sث�&/��/#l-��UCj�ٲ����O�n� 9�p�y�	P)�|�L���]�B"�{�
��Վ�N<(�}NzQ�	 JJi��2�]�ȭ
�����T~�'��!��UTWZ۰5N�}�Tt��n��)��/������4�g���?�����C�h�{��L4w9����F�y�g (�@bp�_
+�դ@~��A��9ԝ~�a��ڐv
�I�m#�֩	ȱ�E\�G��mï"�o�aK{�}PV
ow�

�t1�<���g�����,E��	�
@�HC� ? �PA��P��T~3 �W �
^@��yÚ����ІߏO�?�
�!>/uc�,�*�-�9���8�}�,Z^��|s|���x{	J�� P�p���;�^�*�
+4�@����]_vBİ�T�������5��6�U��d<��s*�Ə���
�ce
���>lw���1�{h��;o�-�Σ��k;!ܖ_���@�%(ZiCQ�������,�V�� �O��X`U����-t�z�����]�	�0ņ�����M�ӨY=��US�OV�����K���>I�������Z�X�KunZӒ�|���8�nJ: ��7(�7(�'�� X���
6v�L �;��<�Y)�pu���KY"jϣ�s��d�%5O/ݏ
�{�r?o�޹�폧�URM�}Y
��T<T[���?��;
�$(HY���4\
A�_}2��M[�,����93fA����
*�����>s�{L at q�p��1f,�W�ݪ��|V�����q2cV����ퟤ��7�
��/���_��6e���]�� ��'#A��[�h�a����x.͟uY?Dk���i����T��QY�I���q�
ܶQ���vr�����X'4�)R�Uv-�^��d���-�? [...]
s�Q{�)/Ї�@������_��@Ԇ�6V�ބ�\^
�|���4q`�?��Pj:����H|W{��X
�RH���g���Vtt]y巭��	�2���֖ri�/ꑦU�1õwo���R�r�

Q
�ړMy����^/�!�'����	�O
,�M�.(����^��`ӭ
JC�
+Jq.���
<·'1�4��[R�[��|ې��š�籺���l��ArO\��]�vG5S��T[��6WA�g���}}5ZE��.AbF-����@
�f�y�,��
��ϣb���I���r��{D�R/�7���#��.s��L�������]\}�}�;�Pj�=�$�%7��������z Fg�v���$��b�����0C�4���%��,��'��M�R�� e���N�F������v
+W�J��\71}8�:W�8�D[���3*����3�!�:���2����
�t:[��#gO<=�d���#�a�_ȯJA�)�@�r8�P�B��0����y�f/%϶_Ȯ�{З�gJl�r^0�g�j�����l={��
����j�r�[:,h8�ʹ�$=/4Ģ4�|vϦ��{��f���Ϊ\��|4a}�`�,��|K���`ͻ�֨�	Ӟ��J��������WW����lu*��[��?�hz�z�*_;w�e���J�EOJ�B�l4�p���<!�+=a�ɶ X�s(�K��d*y�5��'-��y��T� G]�n-9
]���--1�Y����wYS���z�r_�
e�朤�{����'���s�yl2���R�l�=b��|�Y��=�~�/�/��Y(���'ߒ�m>Wb79�"�.��Bt�ޣr�=��9o6�)I�
�b��k%t�yJj�u�v�M�<	\\&�\�&�I�W�y�Yx����8
��g�4�gn�6�9L�? ls�'�
+��B�o�~�MX
6π��C��~{�W���<M��ѡ��Mwז�z7Z�q��Z
�ǵt
U\�5b�
����1W]�h^�XȠ�J��nc��(7Z
���5(:�G��ؕ@��
@%���/Z�d��%�:�?x��>c�0޿#ϩ�4v�%���P�.ňR�������V{�]��
UU�2i9���
���� d�İ�E��Fi�-��?�A~{��u�Gq�T����\Q��D����{�S�.^��Hmȝ��6���V�ٟ�%�!�Z��l�s�9?�W�P-����*�:�C�y����m�kuf�R�;��x!���ɲV2����Ta��F��V��`x������
�@fX��Yni�v ׻
�,�vz8
��XH�c��VE������J�Y�8��nG������N�:��>�A��y|�_��?;? �{�3���(�T
T�K.��˙[�_�
���7��@
It7yF�M�<�,GJ~!��ria7�x��s\M*NqN��[]���s��UN_|r6̤�ZmS'g�dL��m��%�?�
�~���;g7��M3�����������ctw藄`w�f)����jH�jso�wDR���Sܜ���slZ>���Wԭ܀�
��{g"hB���3�c�n��(�����~���ٺ�"02��?[7�Q��N[�F��ơT��W����1^�����ت ��F}b�V{\��aL��H�&
���� �Tm�
ɦ0���p5�zo����誷-���v�/���?`˝cN
�)�nc��n.���ȥ����j�펧U!c����
��I���"?�wnp�<�!tw@��}��t����Y����
d�o���O\��ě��޾�=A�^zpY� ��Rk>��.l켣�>D(W
U��$핼�v��{
E$,\&����B=~
��yv��d�Jmz:.����kD5���Z!"�4�̏���;N-'1�j_�
�ڽ��]��U~ ��y��(0V�M�!�󌫨�
�X�-�X8�wJ�%ݿVc_,�#<^i����Py%��𞥚�D��{���!�����/O��J�-���}~�j�g
ڥ��\v���y�+��:/
��wc;
o
���� )��G}FE���:,w�h.P����2��
�
�%R��iEv�'�
!����w����N�G���^�B��*Z�^���
݁Q�}]_���+i at 4����
+���������嘎��{<D&��3�S#���Y�}�h�<+B�L�P)����*�c
k�;*K|ǖR
��ui���i���k��q��4�=�n.h"׈��rc=T;6��C���Bgq����٢`��e�(/�!�:��P�|N��
�e<<e^�QIzu��i
�A�%�z���mך�T��X�m����L]��Q�(�bm7].k��a[K9�Ye�;D��������OlV�J}qƖ��4S�0Wܺ,=���*�
 ͡\v�Eo{�-4�]�F#ғ0�<��:�zp�\��w���]�*[=�Ռ�$+����QT(�J�R�{X�t�b��@�
�p��\�Q at v��s˽~�9� h�U�@���&�B
@�[��:rg^ ���9&u�N'�������Y5"@v� �ȌA�@-��潄ѫ�2V�T��y-��xt�	����'����?��B���yl�lp���4	�^�PE���] P5Q (�%��D��� �B
��R0`�9�~�=���.��� [...]
+�(x����$�U�V3�}_
i[�_l�̻��  7�n��� 9.� ����!7�����

�/�'�O��*}�i���ھ-�6��eh��@[�
m��U01��)�x\/#�5��~��>A�{/�l�i'w�+X)�����f�KȰF�*����
�=��B��} �F�|(ՠ�1 �r��[� ��]my躨CW��9g7�B�aΞ���D	[Z 
%����y���*��ʹ���?�����x��A�X�d���Gi
+��KJ�g7A!�ΰF5��4��5��k9�>˵G�q_�GU��h~:�Q�y[��

�r���}�x~����y����Ar/�  ��`7�o?��� Ve/

+(��
�,��];
+�T��4���
y����!m�q�(�2��z����
z�N�Z�z��P���t�f��%(uu��Z�u 9��;��A�����
�����g<�P�P��?G�#KA��'�zu�-��B�q�Y
��֢6�=@"�
N����s�QY�
.�4�Ʌq�M���u��f�6��O}�P���4��<��^��+���@���hR=ʧΟ�M

+ �,�����נ����t��ł2&
�N4	��H
�k��
�q���9��}	^꼡f9���O��5�Cܤ�\}*
K5|�������xG:<�ķȾK�  ������
`�+��L�$.� .��G�m�B@�o,�
w��r�}Q�ٛ����SF=���I�Nj]If]�7<9]�C�H�sA�%��
���j3�;��T�z�/���_�h���d�
��.��`ߤ���c4ڤ�݀��=gE�^�
��ˬ�N�<�gB��<u3]��;z�ǥd�̿�[f�4���
T��
l�T��Ԅ\o�Ԑ� ��e
�PÆ]���<��;����ݧ��k���*�lH���w�[û�f����a�6K��=4z��wA����co������^A]�
��آ 
+�t
+(��"�
v���o����s��{�y�(�x�� #L2���,v��C�
dRSf��&v�˹3��ny(�̍����͎�ÿ�
+u�=�b�]��h���N�]$Vir���*�@��ze�T�7v�
�����*~��G��؟s�t����܋\Mϕ�nbo��ek�h̕���s��(���h�0���Pv��c�������9 ������f���X�p1�=U&s�6��]>���Y�l
����p��?�=_?^#�'�9���2��d�s|ʆO��
+��!�^s�m�i
r�S��jئ�? �'��H��9uހNo* �/5�����v.?�#8Q�빶(������DZ�fg93��+=��5��p�
��
㎚+o6\El0P��w���2�J�2g9�*V
+�y}�%s0�?�A�>�o�Kh������|���Л���G�ɟ�[y��n�>����Q���S��#
�33�,�ɓG��ɸm�2�~8$2���s��
���bt��V�O/��R�v�V{q�Q��
+�|��w �
����6;
+9���-� ?�����,��w�p;\���p�~��K����/��[�k�^�^��rם2ʖ>��x+��l�t
�_�K��Ə����K_G���j�h�~�h�g����P�����N��PR�YB�>V���j�0;�e���|7�� X�GKλ ]pcGj��^�=̝��]p���J���
rld�ǹ�i/����N�q��U*Z�-��N����
�4
e�
����9�5�HM��9��]=!AX
ݮ���J��R�Ci��5vZ}��q��
Ý]�O1�8�fM�*�&Q4t�m���]�k�k~v�^&���d����� �I����wgI��A����9
zQ���9;{Sk�;)�h''���*�
D��
+�W�Q*��
J���t����m
bU5��~����:�5��'����y}��c��vj�g�3����p B~W�*\�
�� ����T
�C�ލ��+�ܖ��
z�̨��3$�O�X�u�Yq`���ނZOl�:��[*3��ݪ����
��{b.-�Ճ��@
+�K�
;}�=�����oW�W�,�!���½x�o�g�}����>_q�+0WO~�QJ�*|���O/7̿Uڪ��BO��e�DεD��$�y���,�-U
+>�%*�g�ڿ���-��~���
�f���Y� M� �
 �%��
+�<�D�^�:+�}��ʛzs����]��}�����\֊�"��t��N5�r��ʝ�F����ؒ:��m
źټ�i�8�!�N~aXKׄ[��5�<Y���� ��j
h}&۠�Ōb�.�
+�N���rC5�
.'�g����nF�h�})���F�•G]$;�y[h'�*��t�շ��f�^Z[<���
�8�� ?�
r����o������@��
����r���.O���s|\�Q�̑1?�_����z��tz��#e}���S?&��Z�[Hg�-r�U(Hd�߲*�V��
�F�C����|�x\����r˥���˓�7QE� ��}��Guu���l3,�
���9X�t
�z�)Z�H��p��uhO��ח�D��+�Ie�׳�jY�Vq�Dy��߳���h	_o� �b������u�7��P����;�C#��? .��ݱ��͠���8��g��M�f���@�:��C�慴��5��7����
���;θK�e�Ű�7�#�i��jM�?U�Ѣ[�4{c
����z_9"���w��P׺+
bk�7� ��kO��-�|m)M/�Y8Yj�9u�N�2�:۪01g�>LKu+������L�&C���^�>.n��W
��Ͽ�5�j�C�y�^��s�產թ�s��Wc [...]
+�������ݥߵ�3k�\��
&�²�I���o��۔�+�xKʛN� ��u���Z��,��Y�Z#���<z�L8��.�������v���^ݷ�a˩�^�/�v�i���ʢ��@ X-nf>�+���ʼ8�5Z�zz�{Ԫ�����a['��t����ۆ5���1� r
qy���\���ϳ6��/�+U��J�ʎ+
�[����/
�~/}N�wi��%�X(A�˿��s����ۚ�
+�h��,}l�)�s�9=C��6]�>k���s�^ש�uφ���g�{%Z�
+����h���A
y��A���+���+(�T,������f���O�����^��aAx���3��۴(t<���ц
�	��Bڊ�B�ڵ�0���dmT\I3�^�5,�41*ʅdR�
�y�xޗ�^���w��
�ә��Ӎ.#IB9J*M��B�t
�@ry����9�; Fo,�N�������`�R���*�8eN�M� ��Q��3`�T`%��C.F� �{�ޣ@��&�U���&@{�@�-�u�J�r�~
_�
]n
;*U���w�K��h̬��nPcxsW�VT f0�gsw��:8T����
+�
+�n �n�Pk� X�M�aSP���΃E�u
�m���nǔ��/�Q�e�U���
 c�P��4X��x�y��� ߾k �}w�����
.�8���=s ��4�������
/ �`e8D�r%�<@���6̤��1�D�(,��s���F���|����+ &�6@��)l�6ZI? ~�c�(�#�\ B���� 7R���
�{o��v��aǰ��V����	�t��l�
'։d�
g����M����0�������G�]��7>�|Vy�p�aJ< VW
a
��(�
+ $��d�5Vt><,�� ��� �Dj�a'N�L}}��h��|�ߓg5��w����Dd0��%�
�8�w L���|E�t�rp E�� $�egM��c6����oć�@l� A�&�
��l�B��w���X��||�06�/1��}+
+_�������9��k0m��
�������Tn��?����9� �$�Zk�p��<�@�n� �D��E�{�ї�,���* ¾�s
+QVq��ׅ.�~�W��g�A+MD�^z�0��d���z#��A�hG�\h��ë����l����� ��e�J��^6���w��A
�����a=�J���Q�{z\B+��
+�Y'�W���:8>�^���m
ܛl���|@޲ZP���^
�afp�
�L/�'��)l;�mo�
Mu�O5;��+Q����
��<�66�]w�Z��w~<@�v�'���D�E����\ɺ�w�4ƛ�ڤN���nC㳙�gN�}:wdWH���j�>%��-��YkCH�"}T���P��LK�ߵm��
 5R���{s(�P袖��.
+ݨ���s@��Gl�
,h�1��=�8��96�\�i�;

y�������������z
6ۅ�nr�}qM�j0�Tu?&y��|�s�92r��(�®9�2O�w�<�0�[�	U(/�*�I���G/FF
�Ϊx�ڱ�L��ӽ��)Z��=o	��m(<Z�.}gܚJ�|��xY��?y�j���+�\��	x��=�i�u��;�og`}n�
��F'@vg��?+��.��C
��&4�ۖR�$����^�{iUkoU����ld��y�tSWן^�Ţ%��y�ؼ�֚�x����ȷԜ2�?)q��;����R)�?�?.@�T�5�
�Pm
�e}�N�
�P��K�V��&���������u��>(�j[*�V7�.-_A��
��Xd>�g
+�y�s:��6����н#aڭ�cn\?�ّ��F�x]p�)���K&�<}�۽����wIt�^�mmƕ�z�l&��M���0���ڧ��Y+�����jrc�L��
��
OcmrE)�u�3v;��ȫ;��~"G�=��|�Q�P�����`s�R�hCu�7��^C��z��w�{�U��-S�+3���t��m������3G'��2y���U᧗°9�0y<a
u$���r�x�U��@�q{���Pp��~]�mz�!�se��o�A�>�ЀB]�d��~�$���ɥ�6��j��āX]���dq���Ȫ�LIX����8LJӐ����X����k9�� �e�%[�>�F��5=��{s�/��A;�@p�YA�
D��w�G橸�%���s�~��[����zj΍�P���'��h}{�2�y��ͷ�B�+tky7�u��Oc���4fղ�#�cވ|�?Z!��dW\oj�&�C
P?Ho���
?�a���#h�� ڐ� 4i�@���WD���ԭ�:���o\ [...]
+���nya���U�
�rӚ���5��q�����h����T�t���t{�j���0�Ct�5��I��l<�����X�t�e�j�f��S����ߕ����Z�rvXa�|{�>�ڵK�`9@�>�I��gWrj�𼩎�I��{��N�:)li�E�Ֆ��[�K�b���p�0l#����O���{�g�7�#����~�Q'f� '��S �lm���,qΪQ ����<�W?�OvۗU�a�K�J����a��ԖJ�h����xK�ƌ�k|C���oLV�:?۽�|��
9i�o8�;B8���-��	�� �����s��;�;]�|®��J^�LSu�5V�*9��O�
����]ͶfV7y��N&Y�
�:�>vZP�V�'Bt<��$<3��q��L��p��뛃��+�jRW\��+�SW����Ml�퉎��AV��;�j{l���F�F�iJ#�h�9�UG�U��.�;2^����O]�ص��n��غ7��֧���GT��u�^� [...]
+,�|�����2b�2���}[�(G�
�%����Džq;��lg�@���G�FgdI�b��V!eyt��u\fKI�Zq����k�2'[,l\�ُ
����j�B*��Ah[6u_��
+�5%]��%��&'�3��D&b�x���A��P�V2�M���	@��w�34�� C"x��� 
�]�nI��
P��h�� 
5 �Yu
 �� g}�� dM�!<"�d�4��e��
+�ؚ��#J��ɩ�:��+ Z,�G(�/��
|�c��`=
+X[cV?� �*3���]:�-ː/T�4ںj e�!@i~�v� ͞� E�)�ċ@�
��Ԇh��mz�xg0�ױ�W��Ж#�����������Ps?X�����ر�C�� ����0� +'Q��:��w+X��� �N�!d��{���Ƿ,�r�� ~�!D��
�g�;�1_=�ԏ�V_{�l�Y-��_k�
e�8
������ ���;������ ��=�E� `�%�T`	�&�j���=
�z��n�PV u<�7��
�

$U����z*|P��)��)�򈰂qOr��}z�ʿ�
�.Z�*��8? ���>[�(�o|nX ��k���`/��d�}�ɝ���0B�~�`���
���>��ȭ%
�ĔZQX�g��:�Ķ}���-c��kPj��
ߕ(�6� �v�6�Lf��
zU �i��=j�0��|/������&�.YX�Sv�l	n�(�p��g�������g�S�RvR��C�̇����3Z��A���һ��{����+ :�u���7�؞|�>B^} ���c��/�
A�'@t�
�?�r�e�Rl�'��

F���XD���}>����x��
Z����w�ql�Z��q���(TD�=�S��lP���m�W_� ]�����?Y�B�y�3 'N* gdy
+��$�����QxAO*<��
���8����]xU��ś�_�c^��
�J�^�=�rf�|�_�����>e*�vUMI���fP��M�� ӓ!�����
�3���, s���~�����F�����G��e�"#]ל��꘶/F��
+8�|T���˼d�	kL�Y�NT�����u6��H[ӏ�
\W��|ܖ�r4
��d
Ɵ������w>0H�P���^Rr�?�װ᜞�<�ܥ\
�*C�p95���v�Z�x���g�f��C}�]M��f�%�� G�5=G+3����ᗏw��ONua17_���2��M�W �e� �Ua��P��z �{& ��<��~\�fO/����]I�9@�)�3�v��v!�!ߺ���
jp+���g�<�_������~1�����X�;�Ƭ
������
+�
���������MA

+��O@��
�z�F��^�N]��-қ���n���澒�a���E/��[��2Rfuz�[���t�m�h�֕���1����<͏�ؔ�
�I�`���L͏��DBt~�!π]S�\��dC�a-������D�
q�����ky�/�����ǎ�V`})ݳ�H�p���8G�q��W´7M�ˉ
whF��sO��uz
��]q�!�����Q΢t# �p4���� 0q�x8
�\�� rjC�c�t�iF/Ӆ#�
+/�jv��n��s�
3�=���~�M�L�W�7���QӾ�&e­���(���q>r�t2Mn:lO�a��Pf�}���������A�~�I���
 � ��t�Ĥ�9�
�s�e��&i�[: �[z^�E:zλ�
��回\��
�N��,�v(+��@����7|��N>��馌ٴ�'�3bV���c�� [���r8��a��>t%�ǕzT�	Q�2�{������H8_��r�
�h�^�~�&�-	�q��
5�:\��@��%��"u�� �Y6�~߹~�a�3f9�����Q7������`,�����e$o@�"�U�ʽ�`��L>�CК[��w��-~�����x��3��8�v�(�%���.9���r���3oV��j�u
6
p��F����f'o���<�5���`~�I(���@w�
��oI| ��0��A/ܨW�r����^����.r�rn��su�YO�S����e$����
—}BŷU�����5${��Q4ҽ�#J]�:�o����#�QVG�~Z�n�D�;�O�Lh���?o!��Or~g�G��tx-
��o���s�W\1e� >*ަ�|���
���pK�B��t��O���m�6X
��Z��"d��j/*
A���=>���gU��T��!��~�\ �]�Cc�x�Bd(Tm}�����J�\j�&���,zSA6ͥ����^
��Ã=�����[˝}�FG��	�
�����[�
(���p�/u�C�٩F�)G��s"�n9�Oum���>��sޙJrB at _�4
�O7\�zn���1�w��D�&w��P�zW�a��E���A��
kmUӧC�m��R5o���/�<ݤ�峂�/�+��,6�)��$�Z_� m��ed.L�d7�߲��� ӳ�
�|@
��盕o��{

��z��L򾩖7�岓*ύ)M^�
|���Nn4����r:
��ݍ��F��RB.�Θ�%2�c��\ȋk�P񞭶vj.��yZ����R�_ �� �Cc_i^��^���X#��N������{[;�
+�qDy��w��I
��e=�G��̠���R=gV���,
:
�
a�-�n$�#.#��<��l��
E�̬�Ǎw���іf�ӭ݅��
+�#������AJ���}�zL���b���.�r9����]q���h��?7���{��z)���-�7Zܶ%�x�C��2
+r�Yx��P�jcT�w�to��&�^���}�O�w�ܮ6~&�{t|+���ngc��Ʋ��
=<{�J������{��>�<)pf*W���(-KW����t���j�F~%j���fvwa8��q@�S/d�O��p��s��O��'4?}�������9�67Ǘ� �	| �Y��Hiޞ3��6}�ގ��4�#M�E�a#����Q2�5«WЖ�|i��R�<�T�0i�
�oJͽ���7x0$?|ʭ���z}ռi�5	�� ]_I9��Jl���
+�_q�Fn� M:��]9
+ˬS�g�A"L</���S�a�
��۝����J�'�I��Ӻ����Mu"E��}�evܬ.s~#i�v�Gw>�M�8�)���K�j{���tB_���i�S��iG���8�~s�0~)jIuf�����Qn��_u�&�
{j%�kב�(|�ȫ^��NT�A��;���U�����YO��,��H?q8���$�Ej��*��X�Xs
9lQ���b��T�G�P�.�⯀�
�x�/?�Sivncy�}��
ݕ
+Vܫ���C����Ա�]��h�hk�
+-'A��K6>�XldH��Ѻ,s� u�W��	q�c���-9aT��h�Z]�J�
�J��r*�g�RNz�
��AR�Js�� �wG�9T�,�a��+�k�M��gr��
+Ư$�r�7�I�,��J8%��ԩ���1�A���Q�z�τJ�:��˞���>�ܺ��+��Xئ��0EC�BQf[���������~��M�"�:�2G������Q�W:r��K�|IoU�}_�ʀ�sظ�7ϳZ�:
�0��9�i�T�P�Vr��
��)e.ux�R�.(l���'�C�wF����|_���Bvr��5�����b�2��$:��˘�i��{���
+��։S�ur5AHͪ<�/��z�`v},V�T�SN�%�{�W
�w���⹟0T�����"�C?�Q��������tu��%���,��	�@&>��E|
��W8�2�1����nw-�%^FZH�|���y�N]�췏�RqE+}vt�(3g���W
C�f��2]�VX��q�t5D�%'D">a�%�r���8=�ф�b�P[�{����4{�z;��4��~�:�7 �
�@v<R ��L���)@���D���� d�dT�1���a`�0�@�%
+,] YP��.���@���:��
q	�A�Υ!\",��#S���&
�T���y�u���?y[܅B����h#������Z ��	 ���/@8�!5 R��>@p̅���	B�B,�߻	
�
#�A�:��x{��b�hW~@*3 �o�O:��� �f�����"�
+Q�0���h.�4�<�8�@�1	���-��}X�j�S��� � 
���	(,�А��OH���
/c�ע
�V� �-���� HӇB�W�t(��{ ��`�c�z�h�� 
{ �� U�+ at +�4@)�hF� �`U�q��� d�. 2�a�$1@,��8�	���w^��mGMo=o}�{V�W�W�G�<��t�
쟼�hx �yChy����d�X��(X=�	{��Z	���huKJ]m�f�a
��&k�❓�_G�f�˰��A�7��<��~��W�>�}��A
�W D]A�oZ�k�
Z���r��MC� o�m�S�`��w�-�� �9��%6�h�������9�)՘�N�Q��W�����T��U�Y���	�����ٹe��xE
��ѓ�?�?. d�ʳ��p 5� ��!��<

/��� |7\{
��{LJ�;�:׏�WAX
Q9?�<��q�Y��a\�p�������>��o��d��
U
+�QK��
V�Bm�ҹ��5��0�
\�-�
+���않0?�M��o>�3@�E���A������|x�F�|����uN�w0���)�nݲi�{���nz
6�P�?��Jt*�>yp3��>Y��ov�����շ��Q6j�W d{� �u��LD߫�|���&r�r����ٍ
U�<������o��u]��*��
����+|b
��Z>��P�{����\�ӝX�m��Q��%�{ٮ�T��:d)�Nn��1b����9��T`b`�@���{W�~7L{��~�d�n��KV�jc�HY��
�ǐ���TBR�x�B��KB�$qQ�vp�ݨ�	��
+
�L���BO��f�_�=,�z�E���UfѴ?��쳿�LZ��e&�1�e��w��?��w_TrT�F�:�V�b^wYkz1�����^L#����K6�;�^]�>
�r*�|ĵ���
��Q]��s��z��

�Ng��:k��x��Hy�F��L�� ����O�D��S��:����~^��%	c�h޺�X�XCft���|��7?�F_4��p��U�{�I6N-���/�.5�
���C~zL1�4_k�sz�L���=)�to�	�V+Ff�|���Y| =
М
+
?'ߝݠ�u�T[����Z��j�
��\>&��߭c�1.�Ū
��%����dv��A1����{z����e��C�-��CQ�}E
����y�v���r�G
����rZ�U�+�
�P��@���H� ���	��.Oa�3�C/]>?&Zk\r���$�*�L�w]X,�/3S��qzN�É�mDn���GI��:f@:�ܠ2l��`���Aw�^��
lL
�-JQ�|�
+�7u�z䪵9��P�l��H������y�1��1��r�.�w������&?Ȍ�*���,7��*
Ɯ�	G)R���Wx6���.R�N"�[�
+FRa��Z�^X�L&c����*��ѯ�>_t�
Rׄ�SZ�6��#��&�*sS�H�R%��~]VJ�o������Ѷf�j2�Z���
#
�NG���!楮��^����J� ���Ⱦ3����y��8n�賋����O��/���e�-
v́�\���2>���L� {�a�&��ueP䖩3ә+�7
�����sw�}<���@]?�v�����
�G�
�����E�/�E]|�#uS��lMc6-A�� �}�Doj_���kR�h��r�������-

��T�U+������9�ͱ��:0~i�6��6���e1
�ʭ���r:4f��K�,/�u��n/A%KÁ��������(���� '��ނ��8 $�B�����[��Sr{
v�M�	���lY��<.��`���`�ԝ��]�
+�
S��2������������u�.Jr]��k���u/��I9^�X�0/RI�������9�K=v���q���g
+u7Vۂ~��� ��b#��^�ڜ��H���D=��+��;��8�{
hĺ�SN"s�Z�O����<���>8�rԭ�;�1wKG��-���Ŀ��h�m�
��Io�3YǷ׷�o�v���[9,� s���I�*�V 5���ձ�[O5k^��Az͎���{�
��\)8Ժ�($g�=����
��b�-JY��H��i��9�
�@_���7��[Ӆ��K��kC����elO������(h��z�v���#�0y
E��v�W[f}�tz-�a��*o���nԽ5Z�N��Y���� ���!v$�~k�L��)RK
�q�:D��bI�a�_m�g��i���Ii2hoOUh�젢�c���:�������u4�
��[Ŝ`�'ڜ���2��u��r 'b}�n�>����5{��#\
��`�
I��KX�٣E�r��5�������r�e���S��jc�U+�M]ĥ�
�
�
wf��Ιx��v��hp�6�v�{�rS��Z��\O�ԭ����ϸ/���� [...]
+f����im��G���)�OO`�̥�;y��

�����
+�K�
ܴs��VFy��W�-��x��[�B��
���p���{Kk�-6Ӱ

v�:���&9vjp�Աb?�cx������.
S����$xX\�*��t������,
��`��ؗ�L�10v��J�����./y����n
H�Ag�����B�(~�'��x�O�H�C�⪎>�i�a�=
�E����g���El�!�_X��8d�����
+�%��$ਯ]%�Axؑ��,���]u�W��w��z�V���ؿ~^�G���DŽl�A���&'�J]�
�ڡ���g�c
�ܫz��j���QR届&���;W
�cRy�.�Wl�U��[���z
K�
2��l��߳zoQ�8[ѻ�c<���p"^Df	��r�
>Y\��$Gܺ�I�w�J֎�N���<[ʘru�_����5�ԫ�<
�W�!?r�O�n����W��o���'������2��9��+ٱԛ�օJ�ū��,�xw�3K�t�I̥�oU�d(io���są��NN�Ć��^�Ϯq%Z^���v)
�[��T��	�rQ.w��f4��z�T �����ͅ��-f�+f̾�qS��g`�O��VJ/��o^?H'sb#�O{l˩ruAH�y^&�V}o�����ݻ�WZ�^w��5/f7(�7m_ ���ѹ^��7�4
.�.�I��o]�Q��?3T�K2:I!�3�+\a����<�}��Dꍶr;y�Z������(/�G���k�3T%Z왲�q���@)�"z-s�k2T
�<�v�rv�RN�`��������	�ך��

�,�en��Q�b�yA����
?ȟ��8_�E}�׳p�����tN�
ߞ�ou���l)��+\&|�j�QD�r��G�$��o��|(�fH�l�9�apbaS$
�2�[�h�)cJ���%�t��!��6D
+�z������u>ʖi+�+@y�@-~���@ү>@��
�����`O�dW4<3���CdKud�i 2��dS�d
�
Ē��� �	 s4�9e]}�A�����߀w����ߑe�:��kP������B5q����?Fw�d9
d�^d'�.�Z��vw���,�������A�L�O�|b��,���
"y�,ͦ ��?�6��.��>�+�w�#��l��v�3yן�v�dAE �u
 ��QA6
N@��܂������]d��0>Y�#A�z ��&߻h�du"���p|��g����L�ʛ#�ܼ��
+X�8�y4D��W(�-X -.<�6�D|s���C�Ȩ��q����H߄�4
�ɅY@� {�V�u�@< �+�!������;�Pҭ��Q*������5��\�� �&�%�[VhG����@�����CTi -�M���
�
k�,Go��/���>R�\�©m�U?Y]�#8��-c�υ/c�"s<��o�<s�Qu�{\�s�)R���|��o�-^����O:���� ��>�F�`c*�v�0t�h :���y�{�~��	���X楘|��W/��^��E���Ŋ�>>{�j��y�>����
�[s7���֎���5��1v�!�+`��9�W(s%�0�� O�W � 0���{�eE}���A� �󌨈2��
���
+8�D�������U]�_���Hoi��d%k-ChLp����x�����$G���y�
+�H�&q͉ҏ��.�5�h�;]��������u���+�I;�:��q*c�i{ȟ×W8ݲ2qj*c̏�������
 o|��� �2
5�����\F��
�\3��C��3̅����6���݌Gr�Z����#���/ii^���^#�V=28]��9<�����������^G��@����q��
s�
!����p8�� [|e���=U��ƙ������	�N5�p�v�Y���G�
�n����Q.������βK?~}P/��Y��y���j4]�y�ܴq�ɵmϝ��9����Tg�}�H)[�
+���l����o�m���
a�~nPf�[���� WL% 7����Z�����r`�5�RP}�*z���GM�
��%6�㐛Y�}�?�
Q�lYb뻛���Z�@���Ա�l�M�{[Tj
,*�{�[uy���� �	��!O��4+������
r^���fJ�G���� �G��pp���ij�k�����Ȧv�{a]N?p�oo��`��6�	j�X:gb�������
������7���ď� g�/�� ��'	K�LD��
I\�@μ�A��߱� 7�D��Y�*�^E��a����]o'ZtE�)����d7�9�8�(:yf��
V����S���s���h�!:�����m�GI��Ʃ�M��
�z�it��`�LA�7k���\�g�|
^!�}�?����]�2ގ�W~p7?"�΢ˏvz賖5/�&�8��l�3֧�l��e��ˊ
i��ꫳA�w�))�FP�mr��>��`8�+���(es���?����t@� S;3��MV���)c=x6���m�k_�(^?���M�^z�w�f�ح
i��=z�揜Q�5�+����*��΢�SI��+�\�xpI�Z&+y�)�Ô$sZ�]d��u1y7�E�X=}��hC�>�Lb(�.A�������G�؜/ [...]
ĉ�eS�r
��EnHi���1����J���v��Q�
�Ԛ�
0fz�bk;	�8Ξ#��0�_NB����e(t��@~~w
	��^�����d�1V�>T;�e���5����y^����IK#3FO�U��e������
+x/�kzg����_ڂ��μu�b
+�7^7���fu~;�=����_�_
~4v~ m��®�����f���~^M���d�$>MGKQ���֒�On�u���d[���@�,��{_��z~eNTOkq֛r��z�L�Q�.�γ��ϵЩP�S�Q~pֽ
cۧ/�������Є�kO�
��9�7w�曩7�]f�Zc�ڽ����,:w��b}�1�?�Wqe9���o��[�ESlj`������,���T��I�?��5
���E�1��&M��֞�CzZ�/����s��nC��%�lL%1�M���6��٦ݙ=�:Z�_li��mf�$Z=�:�(Y"���*�E����О%�+)
�3�O�e�厞���h��1ݎ�_w#��Z�D���l�y�-�L�>s�̭\q~�H���&9N��)	�
/���Ch���W6��pg������f}#�Nr�S���Ȣ����*34�9v9�>�E&�Ld]�V~���C}3�l[��O�=��8wcG֪�����0�h��tr�o [...]
+�F��4�
��<�ƫŔ��t]
a[b=$��� g��?
���&65��U=���aN����\�Io[��)�j�\4���lcg욕c�U�rP���$Jv$�K�Ξ%�^?�~�@�t�\A

ӚJ�혴�dעF;m�
'�����܊*y�}��o�u~ɐ˚���uC�bգNKߥN���
�k�tT�7ꞽ�U!]�}
+J��!D�������{~�h��d�����
5|/R
	��{�WE&��>�t�d���1"�Jw�
�4%��B_&[:��ZNOg�[7�Rć�us�u/v��N*����ox<�)y�+�В�2��5M��!��}�n���V�em4��vi.Ds��쑕�:ѺD����q��
���4;t�ל< ���V��v7�bw�Lt��>���Ig{�]�
���T�q~Ct���K'�¾1���t��1���7��w)���[5:7�&���J
��K�>��
@��K��hJnރ��)��-�I��%����#��*78Zv�k�nO>�k;�}�-Ox���nk��:vlO�ġ=�S��pZ���a��
+;��lʷ
�o����))^&�̡,�s�T)�W�֟�x�c����6�
+��L]��{_=2�'v�
��T��Y��a��f�ɲ%�׻Vi��5��5�]
ߜ��9��Cs.�p�l����o8�j���;׳�s������Ga�<�����w儽2I�b��>=m��C�"d궿��:��~u��=�q�4X��
�,�y�l���~،��جw�fC1Ԡ�b�X�����miu]Lvu�I��O8�q�39����+}������ك�pxy7�1�4�`4��� �P�#���{W�m���eL����Ծ]b��5?1qs�pH��_��ѺQQͬ���6H�v���U��*[�/򴊻��s�
D��
֤-���EMT��~J�3y{�2U�XH���i(�79*�<��7���d���Q7�b���6�V�ŕf��4:	���9�T��̵jK������J�I��|oI�
�_�U�T�6�w]j�
�dQ�"���>Y�`}�nu|�>��^�
+��M�
�D
endstream
endobj
223 0 obj
<</Length 65536>>stream
+OԞO)��B�'z��)�)\�b+��f+�m�'!k��mX�E
z

�0eO��r!Q�R%%���H�����c�
绥\:��b#gH7:ׯw��羳��6J v�ߠa��!/�&T8�pFn�
�ζ�^_g
��$�9����ּ�ɸ�E?���=���l�V�u!].�z�R�S��^.��W-�͇͜1����|f���ͤ_/���K�<�mY?͏�$�ӽ\��^5���9��nn��k�v����y�F6����
��Fv��Lk*Uc_7ƄUC��S���p+��C123^A��|7�>���Y�
��̸U��U����;�������bX���qUf��e[D�6��AS���C��?����� �Y�
+�ɮ	�'V�h���( =�
@�
@�-
+�OF����
 AZ�� �'�8�+@�8
��a�Y��A��� Ow���O�X����?���?��c��C�3���)l��F�U�U�c��P��tY�t ڼ� m5� -��� �%$�� �
@�#��t���Z�l D��}'Z�]� ف��.^��
+�
 ����
-(�
���1�
� �s�H6�L�b��r�2|
�W���\�+, jML��P�/�V~�~��«�Yo q_T���a�+4Nқ(~M������ӣ��/������a�k5�u(��]w�p� �f �,y>��� ,�g��: c>S��X۵�
�
+ �+= &)���
����4
)u!�p�}<���LJ����Or
���+��+��%U�=�-v��� 
� �U��e���e�'��]��9X ��� �o��z୸p�	��K�_
�t�1 ��t����d��	!���4�3���.�Eak?.���pʸ�� ��
z��{Ua0��f�F�`�k
�H
+u]
+���wc�a��=wi�F@:�@:��_Γ}{G��1k���p=����,U�H<�L\-$��b��
�Lyx�����i��
�.[
yD���"F~��1�Bv����h
����`�
+e�6HW�Ph0���>Q�;c�`O8� �Ic �4��4G���Z��#
�
�K��?vg�ގ��m�;$���Ů���^�7��e�߻��Q�&��=Ϗ^xj�盯U��{m䓷fE�#�c�7@�)A�������Z
 ���N�?{w���A&�P/�c�}�ޟĔ����:�=W���h©~ȍ�kp��9�h�t�;����
N�޺��f�d��	st�
&�������������
�_�� ���{�w����E�߷�]�>Ȁ��UJj�����撫]����V�I �0�8�����d��bz���|D���;��0�/����Pn���|�miW��n
��)e�۵һ�6�L��o��k� i��*�d����;�D��:S��#揯:&����@"

��+�<�z�Nw(
\$��{Ij휽`gG�s�k�M�k�����=f%�l�gjhZ]���uj�X�;l����8��v�T�7�6�C�O�
��5����{qZ ��N�����U�fyw�y���3?���_k��Hg�_�v�X�v�7"m��P���i�Cu	5�Z�!��ؘ���ۗ�������b��瀳�70#��T�����Ϧ	-�����]G��Ɔ�
+�#���g�
K�ݠ��D�6]z���ݗ��h7�F}�
�?��Ñ92��&SLD#�������՜0��"o�ڝ>'Z�-��r���`��+��SW�h�����~H���_����w��i�]ti���úJu��)�=��м::~��u�>��dһN�8z����҇+�П�
P5�����Mec]`\����
�=l�X��¹G�g��ߜ�%]��K����>�ϛ؇��ɂ
�R@
�=�]
+��8%W�������ߝ��R�ֶ"�ã�1
+���3ݺޜ=�Z�w�N�͗���-2˒%���I.�K*-3��UiF&�t�k�@�,)f��@�|o�LV�B�	r\y����u�İ��gw��ù��؏��Tغ����)�V�y?��ڥ�}#[n�P�u��L��H>�'�
;y

��x�w��?�3m:�̴3��"*�MoBZ���M�7 K�@���o�D㸸ܦ��mw�q�A�
�18�R'n_{�
y���޼�
iī�P�h+� Ԕ���u���NM� 4r
iF�M;�Y<jjBB6��Z��7�7����{ʂ��u!y���ܔ� m(�����C�/�j��Gӷf˳O�
�V���#
+��V��MA���k��j�
T��Kf����2,HsB���Z�#���t�n,��z2���.}���i�~��ք��\�
����3��ۦ����=�@�(4<��;�S��x���<]��	Yw�z��ܕ�p��lќ�+�u�
+G�㙡:���rR?�Dp�*j�\| ��l%}���$��2��Tds,��g�;/�kRYĭiq����,K喬�v�V�
����:�Q�??D����B�孤�������=�9��,/����l�����>��s��H��5v@�z	Z�wE��1�òzw4-�	nRM�T��k�?�X���]���~?�6�d�
+�����
��
��e��
�����
�����0J�~���.�m�y�8Y7�s��6��R�oF�}�[5"���>�2���!�e����dWZ�JQL#�'�,�^ �#�6���{�L���ү��
k�b�4k��?���@+���:6�WT�{���9���u��nn����H�j�2ۡ��ڢ����QGZ��'qռ߄m~��D�b=G��[A��&?kc�����eF��j>�Mw3L[��c�!}j2#t�,FV�-�>+V�
І�֕!�Ӻ�θ��s_։
e��y�S�Q[�
����6�b�ܜS���׵�Q�ۈs�҃-�`r1�Ӻ��4��h��t��s1LͅHy�kP�^zJ������St<�ѡ<p
�Ő�z�o Y�܋�WV�d���޽�fe�^ʐ��[O
GB�ras�ykZ��Y�)����]Lٜ���ix{_&��2
��~���������XT��)����\ ��o�
�x�=
+�4��?4y����E�~H䥿����Co����ɺ|q�;mí}{�2"4 P�襸�^?��\H
+8���]w3��������_�]G6[x
���������Z#oM�ߋ���M��%���%�
�%�谛��R�#<��vB��2uNyo�6�|�a�]j�lf�
@��PO�P�w��
����D�
�uk��t0�<:s��	y��
O�(Cp����
Ԝ����g@��������6w�3�sZ�+^�����퐃Q�
�&#Rgx��!Xؓ�[����\03`��S
[�ۢ:h^DS�"��O���Y�vړ�i����o��C�

�nKE���_
:�#^=rB���+wh&�iO��u<+Z�P�x�B/&Z��q�*�R+����9x�D�
���]R"�zy�V���e�"�}����b0yΜ��L/`<*���硓\}1�E?��jC��n��zTjr�_�3�|W��Yl�k	��
8�iV���XT�ccAJ��"G�����uu#5�:�
��J�ۑ:����Y��}@���B8�����I

����pf�����T���d�]S�e�];�}�y�6m��<�εe�*+�Y[
ҍ��S��<I�;�zQK�ҡf��T��]?x����S���rN�
���A��^=��:�.��Ը�O�)�FUgt̬mJ!$���4�d?
d{؆�v\�ف5&�k�ּ]�
�,7��`�&��{U.�mL3�nm����r��\��J����Glq.�U���ذ����2[�
�������
�q]��f8����\�{�79�����7:���L�I�O�'�
+#��\*q��a"�Nrg�6��\unr吏�Jv�ٖ
�����D��(F��.֢�^�-h��P��B�A>�R>^*�׊�߰�㮝c�p�N��_��7�����~�����V�NnM��<]���}�VCϩ\� Ų����y�m#K���jXhe�I^�b�
-��<��Y�dl}�dƽT-�~�4q0�B���tDb�A9t8������i�5i�����v�!�Zg��>njW���[�ֶ^��K�7{)�Q���c7��%�;�~��';��xf܊r�au+�=��L��� ?;
�d�5y����d/`��Ao�;�
�j�]x

�"��l�m{9�Z�kf�������N*F�ɢ��M5�O�Z�_�VY�3�xjY�5�<�u����"=<c�{Ao����#q8J�
�G���M=�oic��w
+���x��4�<@�Z�5�Prׂ���ۋ�Z�2���#�{��fI��<Rƥ
R�:
!
+��R˲19A� �dQ���u����.!�H�@�
x����

�4;(t��&o�6@�7�~~�
� ��� ��"�У@��"@*�
@�1�šC$߫ ��b�B�"�z?� ���&@r�b
OϧV3�>�f2Ұ��A �� +��
+g�o�O��M�Ph�p =�:@�����
���	T b�a��:
/ ��m �=@�^"�a�I�,īy��
1��쨺���9���߷���7�\v��yO5�@>5(t�� V
+k ���oe0��"�Ƅ����E�>_�n�@��7���y�@[5x/��„g��J	@q���N��w�4�>^��J}ȍ��+�!9��Qcz֣6Y�[�m������ʤ�P�

+��P��x~3x3'�05v6N ӓ`L�\U`��#���13��ɸ���X�vN��4&���bO�o��`Ҋ�j�>j�cyo���E�j̮��_>n/�do],c��
������2W��ɏ-:�e�������
�-4���8&�{/�;0Ol�����c��Yqevsr��{�v�sF�}o�u���+�ك�&0���T�]�l�9)�
�wl����:�Q]�
�*��

+�|�N�.hLχ��uyH�
�w��
Hg��+�ne��j���c��]
����r�W���+U���-�
.��C��ؼS!���?f;��i��w�W����
��Y
7��vD�����X�~��?��y�B��v��
+ur��m�M�
+#n�L�'��d�������hoF�MH���~����
�g�iq�?��(6m�='}ou
\����}��C�
-k��s�={�kΉک�,o.��c-١&�_����(��A��S�p:��ǼD�
�N\���
1>޻�0�bs�r�%
��pjz�K��Ѽ�FG�X=�I��
+���0�:�,�!�}��`[�5nE��n5^�[	�-�up����,Z����H�+���
ƒv��֠Lc�~Voi���
�
�� $`���&�
tSp8rdž�=�JTe_���N����{�얏�l�E���ԏ�E
+��4#�j�9��«k
�kL��dd��hdAJ�����oZN	
+WP(_��h��|w_��D�']yy�x�2��U�'k��7������N5sL��"�ٮ�r�2�Oô�i����c��ӂ�X{b�Y��
��
�qU����^�efz}��{��jw�7�
 �� }v����$�
ғ����o�H���eV�%��'�;��/����̬��������cM	Ý׋k��5VA��]U�'�ׅ
�)��Rխ�� �rV���)����fG����P�9Q`ӌ4�Q�{
dj
+	����Y
l���q�ߪ��ԑX�¾ҩ(���l��8}3�K���
+ϵ �Uu����T(i�v���j՞Ba8���2���������O9wt2;1�2+�����H>���_�� =^���*�H/��n�]�b� ����N�
^�u%�g��-���fc�9l׎Q�
+���Z���ԗ�I)��#� �ci������PR_�wf�T�I�`��%�D�b���k�9�W
��KE��K-{8��޿ i}eZX59JV�2�Έ@ٌ^v�0i�ܼ9�;�
1�n��`2�f����wM��g��7�^�}L#�ѭe����硔��+g&�gm�����K������.���x�TF3�8
��9
hC7�/7N%<���+�7���1��{i��w�	�Mq�15N��b��ѵ��Ow?�����r�,�E6nܿ���y�>��f�g1&քכ'�#Ny�K��>{.�F���;<:��� 
+���MQ�G�
��w�D�2윭ڕ��n�o{k���
C军����ۢ-���fz]
IQ{umME�s����7�$

Ѽ��
��F�ĩ���Y�����^�h6;�̧\�즅��=��e�;z#��U�
�s�� �f eJ|3�2z�Hpd��*���28&�մy`�u�l�]�Ҝj��b��.+��l�Z~��}k�g���&�
��7 ㈎�gsu�9-�����
F*p�.�1�D�8�L�Zc0�_s��?�6�R7���,A|$[n

�֙&;��5���8�W�0�id
M�4ݚ/
+EG�jh�c���;��z�
H1q��,��?S���N�y�Yd�����
�d�k���)�+cu������_" �{��
x3}��ן㾐$��v7���Xos������z�m+�E�|?%Hru��Z�^
��r�ﬦ�M*q��O�}��	�x��c�ր�O��Fw�9�&#��ц۠���\�MҽͮO��+I����O�r9T��
X���4�V�����̝��z!������iB

��e�1���0`�gs$�R��Ək��zst?۟��q4�K�'�d����_��n�j�z~<� vI
M�d>��`(�4=�����������*���fQoƯ�t�;c�z�.'\�j��=ovQGo9�d��$W
�#���x����r�
+����O��;F�Dw�Zݟ#4���)Ky��A.�_~P
2Ҁ�/?���YI�T��$)ϐ����d-$�����^W9��ب��^# �HI���/7oqNDZ\�aY1):��R��?X��M�e&��_
à7��=I���m�A��}��!�������H�@��޹lO��d��쓋�����9���O6��*���s�GוV2�*-&�

��<~�#h/�!�ƃF�����4��#&�׸1y��4:5��o��;P��k��l�x��{W�d�4��|�4r�ΠP$:&wkw�V���>M8��V��
�������"���z�z�ڀ����&��]Ƿ��
�<�<���'��VazؠKo��0��o���o�u_*6�Z~��S�n�E��pV*��2E���/���5�D���6�
�����
>E����M����	�Ř_J�����|��Ο��N`Ķ1]�kc���!k�d�<
�Ѥ�Ԇ�$"�P�����E���*�޻ev���vF�~i3�֧�&L�y�oa�5K;Bh��m7�q�i�U��3\����o�������s#��U�f�L��'���3Û
��������V�\9��U�N0�ٛ���l�5R�=���^
+3],3;Da��s���*6��8�_
Yv���kו�.�[�So�H�_��Zl�z5��������N+=~�����
�G��W_���l��lYI����U�EYV��P{f�n���uG���������4���j���֘���ƒ��cg
k��w���b��~���a�(��U��)]��ze�j����t~���/�z�{G�]�d9�OٌLg�J��[��6�c�\]/�΄�6����<
[���u�!��_��ѽU�Ԡ��	�:<T䊓n*�j���+~�s�i�$��p�,O�\
t�R
�|�T�vQ<R��`T7��6P�E��]�^lV�!���� N�r�,�|�S_�f��
�^_�+Q�,ן5�`�*�er�L�V�\m�*͆
�:+�X�Ra������c�rI�Uʑ�Ae?����ҽ8k&�b�t�������oY�dg���q8��
8l����p���:��!gUh��#S��
+��`�2���u+���T.<�ג�s��'�AAkh^g�L.9i%x�O��g��u73n�4qX?�D.Uݤ=�ͦy��B�M��X�|L��~�P�,y�扛}���T�W�ՠ:�8���լ)g�q��ި�q�2�����2ũ�
������Ba�
Vc;3n��A?�D��4O�
�y�|�
+A���˨2v�8�X��H�~�T�X�R���S�.WL�{� �:��^���f��5���zP5Z��7b���M�ÓG��*(��$���G�O@�{q�|�֚3M{ƂMS��#VĢ=#�7�� qP�S�5�I��UbB<A
+9�{7�o�b��Io!$�iMAdѿ���=��Y� �<��%���@Z�*H9�&H����h��s}�������> �X��Ī�|F>�|hl�!d�����g\8Bhq��r���.��� jA�\��KC�^�T��;�o����AjJ 5)m@�6?%�O��T��P����w�σ�!�
�,Cx�����c����L>O� RX�)�
+��d8is�^�l������� ��FrLp�f����<@>4zۑ ��, at F
 ����A�P e�s %���,r�p���
+Rˬ	18@�H)�¬����l]���1{�E\x��/>�Ő���5o�WHT"��5��0k 5p
+�SJ hN�r� ��. ���t�"@��O���� ���
�]p]}=`�moM��<g���ޑ�p>N
��I�_��}�{C��G�d@�(s�I
����1oB��������h
�n�G��r
�F �P����	�
lk��P��m��:��3�|��iS��22H
���ޗӤs�t��+�/�.���]���G���}�F�ܘ��N
+�8�B�u`���<ۅ�' Gs
��}
`�~X%J^���?=�)�g�i��Х~�\
&����಼�0�u�����J���3w��na�p�΍����b�Nrߟ���:���0�b� ��w
+c�x*� �mT �:$���)���%������"z,F��޺^�W �K׾{j_��]?��
��
��2̕�u�K/�,*��~�^���Xˢ�ev�cy
�[�ʸ��

��zp_���XL� �6��2���7k[�9A���a�>�D
�ɏ��X�5�
��^�D�M�<	g��)N
�[��q��=����!��q��1etw��gd�L:���|��_6i�'�hw���naY��k
��� 0u���  ���J� ��7�lq��`<��/u~
V�e�=�͠,�\?&��#;����ŏ������Rڳ�G�9U^=2�=߽�ݕ��۶���6�^D)c�6��i������.�͎v[��,��*M(��d����E	E��]m;Hآ>y�s+�����PH���eZ����n��u�
#��Yܸے���r��[m
���\���c�L44���oh,
gdc�

#s|�5גʫS��N�Lw5���,�7We	����OP!Q�m
;e�����5���K�˜�aI�4��u��#���{طe�B=�;�и;���ϭp5� M64x"��d�^9��
�Kg5��H���L�M�km�{�����醪w��%�/`ħv+��? ��J��M ��^����_�L�8�b�u�9��,�ݽ�m�g5jd76'~ۛ��v
�
#����u��W�>��eG4e���]Q��U�7B/�A[ZQ�^��<���������~y�
�_��l���z�	�?��r��p6�_�e��>���
����^��.���;!w"�`cQ[�f���h*���U��(`ɼ��H"K�*g�
Y��F���;���
��9�>�AW���IŠ^���n���?�擁Bc&
_Nx:�'���\�����o
z�������>�A�OV������Z�9�
덦���F����H{�
f����h������E/�+����h<�+�2k��ˬ�_������q˳G>(� [...]
j�G�AD�C�����
1H����b�JoU�X����)V��n����3.��a����y>��o�"Ⱦg�#�Z��o�K���<R ]
i�O��2o�{%�m�/�� v��eP�dv���g�ڋ
��ڞ��2�w+�t���1|�P\-�zS�}w�XJc�L��L�:�B��5}.�>��\�ܙ&z��f�'ovV(��o�
�
�I*л`3�y�f�뇝�vEv*\��/p�����9�賊d���0x���4t���i_��}��}�H�lؽ�^W�qV{F��7��f{KB|�2�I�T����muSfz�X
1�����]Һ��{��fK����e���0�rihL�
.��
�´�������ro8~��-���oO�/�=�R��ַՠ�nͼi����[�
+�Z��U3�--�ږ��q U"z"�X"̺KCRD_�1�b��\:!\6{OE�B �I�C2L��kc%3��G����l<��,#�����/�� �E�:r��I���m���5���,�'�֘Iiw�
'W��/�����" 
��I���Z o���X�
�������TB�L��=3�щNJ}�a\s*� ��F��j�����u��E��#���T'7nm��? ��/����}�qxF���)o���Æ�
�J)X�f4�@���{��J�$���7�,7[�۹
x�'\fQ�<�ZL���b.��n�.�^��m�ag�pKK�!v{�e�É��Ƨ�[��^���d3��{�/�
g

�:���}�3Gs�h���D�fl*�bGuo�*��o\�a ,|��&O_$�Cz:�0vR��s�Y�h��
�����;BЯ�g�� #s��w���\��O��Q쳎Qǖ�
0��d���]l��J	���G*���p��&��дp]�ECa�Z�#-�E|nV�YJ�dy��*,o˝I��Q�"]��>�4�f�#To���E�dg��*LKI�,�YR�/[dm�z��w�-)
1��2|�_f�?s�q���S����A���z��w0ݕ���vQ_�a�!�54�{n�v���;b1Ɩ
�'�Ͱ1~��Goxg4evȠ�|0
�*j�]�"�'�.d�����t����v��e�����}�\�53_���
���u�bhk�*�ƃ�y}�m��֒
}�i����.��d���3��5n	���f�d�(��������k
+
5�P�~��_��C�~��ŏ�޾w(���wغ�
�l{thy����0�A*|�
�����}?�í�c�MQ�{���+̣���OF��j�DV\z��ND:�,dݱq)���H
���̪B�ܢӯԀl!�i���J�~���
�ۦ?���G���˴���C���[���RHB�ERD!R��{��~�������Z�Vg��̜f�{��\�xx�;'n�wĒx��|�wN�Y�
�9e��_��u�pQ�u�B.��8�a��e�s�N?�[D�2
h�e�64�V�F���7����
����=+�2�.
[���'z�<:��RS���쎹�ՙ�R�^�^m�j����p����� m/p��^��B{���a7���f�ۛ�>���స��,��U�dNec�����,�� 
���N
�k�3+E�좖���Z�b
�
+a��\0l�$!�-C�~�v�`z-�%-�4�5w5�i������I�/�I�A��
�/�Tμi��}Q�S�Q�=����f':�����nj��
�ܗbH@�� +�p�{^n�����;w$n����E���^ma��1���q�?�����
�Zz��Y���]�v
)��5g]��ڸ����%��o�-wZr��a��^�I!ɀ�Dz"3y�'��Ȑ�%��N���^��~������(��mn6��
�a֠5�&W?���z�fwj'
aj�,1��f�^m4K~E�7p�M7�r������(/y<W�B�B����y֔�*_8}�c�0gNF��G?�����"�aI�w�J����
�`y�_w��T/�;�?e��5VN�&��*���.?k�l�˥m���ɜ.����.fv�������>R��\���^Z�k�Q�c����_����(�|c?ͽ�;^�+&�-%*
�c�p���z�F��ɵ�F�W�5��<�\~q�U)^e���[E��wK��H>��m�|�'],����	_���H�;u�׿�Z����{!��'Dv)�����/�.ʤ��ǔ5
v���k���d*<����,�aD��
hu��2�a�U��E�	�����*�O��,_�L��gCs�
��.�.:�l�긙^��&A�Du	p� 
+'�Y�{����
W�&l����/f����-x�2l��������L�k���(�
+��"۬�ռ���e�P|��y�������\p�{ه+�2ꬂC;�C@Z�$P$���'k��}s�]$�h���8�k�M�^�7�L"�@�z�@*�$�Ť`�����ğE��l=N=����g
�� ��㴷��@|�8��5"��)���^��64��i7 Y�S�r(�8
d��$
+t�߽�?/��K�Lv
+}� PU�ş�G�c����3�?
r�/e
���1N��;�;��H�ڵ`���!�{�ol�
K`�#� �F�:��s���l ��8�b��^����ջ���
�$ә�0��fG��f��&�Toj����R�qS-�,17����%?�ʀEp&bН�c���~s̳�
X?b�YA�V��/_hu_�q���Y�U9��_��ɥ� �)T�A�w7M2��?�@�Ơ�dh�L29�O Qh�7�3��|2��M�����B��7nj���^�8�_vo+�߅>~�J��^KV-�A�a{{"
��t
�G4����g
���,�����'�Ι�Lf��d)� l�d̉�d&g;��[����x�O��h2��x�FcN#_�F�&��b�Z5�=�9�|6[]#\,��c�	>wB�Un}��	�{��h����������d�}�d��;��p��`2��0��͎����#&���d��6�o��}���T�<�sa�	�ֶv
+v���������[�N��㛿
���P5`�۷��}-�ě�)��鉞��}�w�u7�
+5wk
��dG>�
�AxM���%p�Fx�{
F��J����������Y�
�#��1�>�ۦA�0�~q�,_�Tm^.�e�
z2�4ut^f���ż6'��O�g�N���Q9�͠a�5�f}�r8�g���b����
3 �!
+b<��s�Z�7�L�\�̾�7�>����P\���5X_'������s^���I

O7��je`�x4�N�Zk��GVB{���g�RG�
N�H�.)�oY3g���fv5�lD}�hlʛ—�_$�Z�y
% �=��	Z�g&k�w�A
k����S(v�T�k-��u� �z��p����8R�=��χ	�߬�鿭&����1��}�F����Qd]"�fr�X�}ޠ�v#�GvH����N�f�"ɭ� �����g&ɳ�r���h�#��y�W(x��Ts��=
+.mW�S��
�b{����x퍷�p�tv���szj����̭��������m��q/٨~�������UX�g��Z��3_���^/��(/"P�������f���Zx���:G(�9z��,W��g7_'�6v�(�K{�1NI�q�Pߺ~x�x'��ԫ�P��n�����º������VXjΖd��*i�ݦr��E�@H�"�A���|�O��s;�/ϯF��
��������n�^�PN-� Fb�M�v
��譸�ƛחT�F��e3�[�����/�uI
�P12�G����
P��G2��,�8k?�'� �/����� ��E�w����#)�o�y�<y��`����mdoOn[g�䧡���D�]���iH�j��a~�U���e�_KK��,�g�;�m���/r��E�J�f���f��f2�]��5�6k�Ϭʹ��챿��"�w���i�������pK�� �������R�����g+H��wF�}��֘bw�iA s�.�/;�C�K�`=��GCj��3�o�M��O�zT��]LL�`&jY�q��҉'�O������s�
+�X���r�����}D�����z�����|?����,fO�QB�5Nx��>�
+��we�u$�^Ue�kʎg�Wo>
o
u����	���E��>s8�	9�l�|o<
�[��A�����?�0�Vї�_$��5�=�W?'�Oja
+��Y��6c{'�D�;��ٛv>��ȉ�FE��L�"
�c{^���<�����F�7'�yU���ф�� �����_�bu�
]n�=�9��?��
+z'B}}	�"����n�Ip^.��v����?�v�W��ڠ��������N��u�,���
+��\��lm�����^�	ɛq0\�CN�1�
�yW[�'L�x�R<j:^��
�>�T)}Ԃ�ќ���|>G~���O�
Ջ�y;
��W6��0ߙ��XiΨ4�6��\��
8��~n�*�,����J����u�jy{׆h�`aCr|l�
��E���(�f at 4,za;},b��u���29��
�K�ϼ0%���lǴ���wPn=���l��Lx�
�����M�L]��d�_���!E��9N}��o�3,��N44DD���
+�a���Kd��W+�k��Q;��l'vwL���
�	��nP�i������~-��JN��j1�p7���"��~x����ͯ&��U�0�Lg��]c��Oϳ�N��b��B���~�<��
;
‰�fS�k��9�����59���
�bW�=�l�[i�A�
m������`�4(t?���=G��n��{
���sp���/��xP���[
��Q�Pk9[À��nWG���S��b���<ݓS����z��g�_+���\�c�Zd���"�����'�w�wO�x��f�M�Y�֔����:�&�D^Od��&�9y��.5_B����2�������Oz|s���L=���{�j��X�ol"���@���n/'t����7�ː�k�t�9!yW��݂��0[��t��Ѓ"L
+�g�T=ǘd3.�2����P���vy�{n�#��FH�קǗ�/��'��ju�Vjz0|�}���[��PQx%g(��I�X����<��x�.��p�
�M��f(�Қ[�
��>(��n�Z#�T����v�5'���zY���}��ҩc�SF�>Fd��
�][��l���[�g_���L�A–��vf�塶YȍD���?���7�3ǡ��\��I�dt$9��0����
ʌ���(�B51pVQ'��bzD�5��
r�
��=,�;���n!��n�
�#X����So����]KO�� �F���,��5�(���/���`,")=�[���
�d��d�WV[��jv��J*��'�h�>�
c�^��TA�}��.�m�X���܌Yw��rD���NU���	t��[
�}�w���o贵��c�^������r

��E֖H�}���&����r�3��D����o��r�|�
��FDr��%��ߣ�f�ӏzc�J���f�ܩ�:Uu��
m���}h�=$l-�-�'���mu�,��V��f����W�����]QW�붳Y!�~����
���Q��g�<b�چ��-J�i���3g���l�.a\s�����-�\�3��#���L���K�N��n��$�|{ʬI�A��/��1@�B#�5�F���{�u�易>t����]� 9o0n�3
�X�>�:#�υP
��(�z|-䚯����WAө���݊ ��R��՛Xj3����.ƯM�⢆	����<ju6(�5���5>�o�g
��3[�:�ZU,�r����L}������nΝuZ	,�
C�Y�7W�#������ݥD����yW��7�)6�(֑��T���F���z�zAW|'R*s�gv^�5�D�G�Η���*��<]Z���knqW�$E2v~`�3��}xȧ� ��q�
u���n�J��I͏�=U��ǁ%U|O`ǻ�B��k�����5��ʏ6�/E��`K�
J��+R�4+B���
��Dr^�+
�˨P��p�qڭ�xqd�c���^6�a��ቿa�/�p�
�p
z=��^�
y?�D��?�y���S+�Iu�0>}t�+3�5�
V������v�O�Ia�&Q���A�
kl^X"|�G2<�W�\�:�s-#�~��.=3j����k��,Q�eQ�y �I��)�C�� ��������j�Q>]s�nv>,
"��6�\����ڗ:�!ʕV0�����FY%�
'�_
��h���#��.�)�Qg

�8
Q('�%Du0� ���R
����~���ʔ �@EV�1�Y�
�>:�!_��d�K|�ku��֣;��4����R@��ɏY!��ɵ
�R�[6
+P
���^�4�K{h��Jj;�����!O��;(�� ί'�bvY�h��0�P�n�E�9
��y����/;
 ��q�Qa�›L��a5Nv�^��*'T��I`�g@���� �
@/��8�"�? �"�K�5���%N��0���0V��K�{�ۿ�����@������-�����4/�q��qrk� �
�;�7��)� �J������! ��əa�?~�x\kS��
������������@L
�[�a^(� D������"�'3kũwĩZ�eV ׊�Q�
+�"���X�;�$R(`A�l�RU	 o����a��\��{�����#s�s�Fȳ����o	���䢟@�"��j=��	�;V�O����b�0��O��Ɵ*b�ਪN
j0�>5��D#ζ����� ����:��$���_�v� �ǣcfﯞ�����㎄���pە��m�A�?$�J=H2B�O2J�
+�Z �����'�n��@�@&�F�~?24J�j�z����|0V$���e���
~^nJ��@��0xڝ��{$�L)�����]�/�%�� �E����+��˹��^��4ƕU���k�����k�E?�6��$�e>I�$�I��F�������9���z��h����sz����a�徙3�[��H��-��
�vH0$�j�K�
b��
�����UOR=��̸/�]d\B�?�
+��_
b'�u��H2)�) i��~�_�Jr���[��$���w�0�=�F�z�`����L�eRV��������g���]�ⵠvxV�F|zn��	�EwK�.��GE���_��6G��� ��]��Uo�������q{K�W;HrUP$��Mݮ�I��J�$�)��`V�CHR
+���j^�6ž��{��z��c������#�]�ؾ�vq�|
N8�9Tv-ĚA��>����o*f�,9�>���;�t�h��紺k�8����I�`����Ι�-�K�7y���e��ӊo�;��֠4{ƪJ��W���0��6���	k
���y\�ۂ����r:Q������W�S�FQ3n<����hǪ���
�9��p#>�ۦ���/�Mu��Hr9�����ݣ)�cy�Ϗ�O�,A�w�]7U̀��7�V�h7�gŒw9
�i���Ȝj��A�
��ݮ�8X�q��m�����ޓ�*u�e�i��^��j�g�a���
�/�/�rs������;�6��h�t���Q5��b���v�S
Wu*�ۧz�lͣ�i�/�[����G���ig+4����곶�6��|�d���{��{�=�i�|��U��mK��Qa1�Bs��u[��l��Y�g����z�3�p������<�b��ί��� ��ݬ���"&/��H���ջ��g!��{vs�5p���GvW�r�\�p<\�|���nfJ��,�O� s��e�n�\ �e�3:}i:D�R
;���0��8R}����(=�
ܘeyˠ��&���
�����a'���8[�#ꭉ����'��Q��Œ�BEt��(B>3?
z⼢���Fk� �9��t��*A���P�'jv�L�*lO�n�4Q�������o�
�Z���Yb�4�[
�K^:H&
"��C[��ڈ.��9�W|^E�� =�>4��ܶ�]�RI.�I}^�_;R7��,���q>L&/����׽����ǧR�n9
!���p�@��@/��/�/�/?��"��Qx�LN���?�P�Wvmw���*o���@���h;ͽ%U�<�ն��`�|]���P.W�t^+
`��J�v0lL�g�3��(��Z�	��46r�
���坬���Q��Œ�������ȏ�k���e���+��7k�<��#�sEXZ��13��J��7�[��iUQ���(�2�悫�OsO8�$)��f���b<
O�Y���L����
�
7—<�M�=�.�����{S��<j���H��푴�
F�p`}����{?8>��I;#[�S;�~�S#;s��	��7-�$Wq�8Z��b��>�����R��{�Y�^�1�r�[�i/#
�Bnlw��p
ʗ�
���IGEag���gVG.�`cl�`Jcͬ�ˁy�=�n�&�����~vX����
^���)*��gz>9��w��~�-�ґ^
��l~��T���S�\r'�
�b��	�|s���2�W
+�W/W��9S����BUX��̇�-���ڣ�U��ᛠu&\��ei
Ɋ�n������#^Խ�M�,�몵,}�8���\^�j�݂:�4���m��_��Xj+�2Uo
}�7[�
����+蛛���
�Vy_�̋|aø���O�1���v��N�|�N��G����F���U���,��_�?܍U|>o��a_�su��Eg����i��HJ�L���ԉ�Y�B�t3+��
m��ُK����U�F�蝄�燉�S~�2�!�5P�n���c	�����u�;ʛ�Dx����s�.�������Q���8
��O�UM;�
F5!�R�2R�6�<
�2ӟ�ȭ6[�V�$eV}q_2'�-��W�������
���;C���a��f�aN,F���;����sO��k�X����"n=P!�X'�OmF�țA6v9���U�/�IWt
NJ5������-�� 7_o'ͱ����l=[T�=y���}.�ca�q|��ɣ���e��t�l��i8���)*���>}�����u�oP8qGY�@�K��
+
�F��<�*����]5A�����E���᭞��}<��𼪍��j��o�U�x��
zQ��\
��u�
�y�kW�C�u{O���_
��h��A
��K_�1w�B0	
(�x��
mw���8)�sL/&��[��>~����[IJ�j8��`t���S�?���
��7[?�k2\IJ�sR�SI�0
6F�R��d����A
�S�
����sj�����T�N�9�U��6�*�'�n	��v����<�8p�wJ|'@ϥW=gR=��m�T9_�8�Ōa&OF��S_jc�d��l~�FS��#�5
+m2� �A��
[�{�X�ע
E�ɼ@��}A<
���+<��g|P��1&���6��w\�Z�M�Bk�RlK�˦�4��}ZDZw�6n-n�Mk�h��Zh�]떘�m�7
8 �m�n�`�\L���ls̲���z���ݤ��B.{Vҋ=�Q���n� �QYĬ������S�.Ov�d�.�j>�B�
Ԗ��r�a�X�uR�f����΍�\��1�5ȧ�i���7Ƚ��������e�7�I�����3���9D{�
rJ�1ٗ��78����n9&�Z
.��Ǩ�6�+�}�EB{a7�ֳ�۵V�ٱ����&!��
���n�Un��\;��EmdN
�t25��U'p��:���7:����Ӗ�U���G�|��c^���a��^�H)��v���[=�}�]��\�	��z^�z�c�<��T+z�z�FvUl��j%Q?�Y?�VY�*��I*�����x i�qƘ�;�K
���:[
\/߅��m{�g�8^N�x:
7:�ۇ���6�v2��vy�kw�CܠQ8�������W1zu��ƒ�"�^ZHڬ�V
,������=�WAa_M���h�c������s}���O:?��J~tЌ�h�H���u��k
�s��w��+�E�̄L�� �W�+�b�uO���܌*Wc~/az�G2����|���t
>yr
`�����㦹k���fn��5��+{���l[�v?�
+���qt��s��y���4�� �4���"��v
�?s��ms����	
+»�j�Qm�
M��xDR���g�
T�?p!/>,�k�Gg�\��U�J]�g�%��'2�: �"D�5�;B�m�
+D�
D<f;���"3�&DV�K@�Bd�z���H*���Ҋ���
.�ɐ��i�se�FS;��ZٛgJ��#Y��K%떛�� �[�

w�`G�<D��% ]���^���:���͘UYU���+�}<,�Ν!�W�>^�� �0E��?�N{��YcBW�j�>�\/;�n�Z�:��|1>�i�Ы����f�G/��\�Q�
������[�0ڀG�?Y��ٶ��	������l��i�K�+�t�Ϭ���1����O�����ğRՎ�eh�i�9��Hs���q,DI
��2���\|�P���`���1�: ���x�q�V��A�n ��8

 [p�	py�1_�b���_�^~�?;�`A�2u�?PJ_�8���8�V�8!G�8)
jq|J@�&5�y
�; 	�\Oπ�
��X�@ �
�L��n
K(��A������-���+b:��&���)�/D��b�g���'� ��!NCĺjx�
,ƿ�v�8	
+�8��d���8N�%�3 �	���D�E�����J��p0�b���f�بp|��R�Z��
^g�w(�Jﰑ@���U'���
�D
D�6��Q���
Tp6S����j�)���i=�1Xt�{,��)�� �Tʯ�pVN�p���F

������i�U���s�����
��*
�no
t�{�
Rnz{�C�T��ᛃ�[��X[�h*�	����_	T�2�Ǒ��g|�ğ�g
Y!���<*��R���x
}���9~�d��t�������tlje��N�+l�m*��1�?^Ǿy�5��q�rn���A~��d��1ɠ��O2��qP�&��~2���Y�
�ޅ�
�L��B���主�@�[�*-�OR�t��r���
u�
���Z*��E�H9o6_U��'�O!L�\���ٝ�&�<��ǜ@����ul�R=څY��C�� 2-�:�}�E�3`������&q.��E�N�D%0�嶏���|��$��|^���)�����[w���N?����W'��=�C����Q�ڣ1h�˸����j�oN4�\�ド����l���H2����'#Y�n%ك��fGc&���ܗ��V;�A
��@�s=��;ؕ
}�l
�� [...]
�C�2�)j��ٯ�a��k�>i�v���E�����I�cݡ�h�;gwz�~p�r;�n����Q��=T�9{���솷HO��G��{D�IJ�ޱ����)�9����l��5�����|�[������7�,�F]�4g���*ԥ�)�,�Q ��7I�:8$9�5��"7�ʰ|~Z1�{z�fZ��=�nj�\��&v
iz�G

ˠ
�ύ���k|�׷pWZ���\��;l=����
yE�Y��8/�a�x\�ӧ<jƥ�c��|<��eL�~Q��{���$WU���h�7���^G
L܁'�Ǣx �[���#
���?��H�r�tsSGg}���yn��o;�*�
��+,.���!��+#�[>���s�T�v��_W/��"��.�A�T�����)�z~��,�_�?���Q�_�����c�T
Z�}��w�}K�p���8���Kk������5��]��*w�/�eN��?��}bY�
ʈTo7��Ŧw�?�v���d-nT�}

�l��B60A7A��/��?�����z�A��y�����
vm�R.�Ѭ���wG���\��K���w
Ÿ��+t�r�P8ͫP�K��9��
Z<]V���k�-Mpw�IK'��qB���`P���8�

<�N�<���<�y(<_�����_�x5�u�w"���c������R\���͵OW׫v��L�m0S���Tv��r.�WMj�6֬=���]��Oz�f(��Z"V1'd�Je̢�.\3C�8���F�u�:�1iy4c��h&��h�Q��%�@컐��\��?�;�Dp�p
���
�C
^y�֫��*Z���4wm*p�J��Ł���i��
W���"��D*����Ao||���|����(p�i���5jL*"+��	[�Y�S�Y>�!��V�L8�Zbۮ�_�X�����h�*���x�����	�a��i&FmE�V9�cE
'#L�!3S b2y�Y�^�*���1>x��;G�ėK���{$�t���:nf8�M-n�|�?��	�q���E'�M��/��fV�/
$&[^�KW�r=���d�����p{im{�WY�)�
�B/S��wk�ig��r��<yq�qg|S�c�v|�HYwGһⳋ�'d��R���FyH(��]�!�i�`�d������������Y�2�3T8���ܳ
k�����~�`nO���g��&0��jLju�TSi
n��\�&�u��YA��N�O���Mw�5���
���
���z�
^	
C���>����
j`�:�se^���ɤ��QBs�Q��������f��j��_-�+��T����w�c~`uy�5-Su)�-�ʵ �Ջ����g�>_��9���K�6�_���1��d
ɗ�߆qXe�=�O�~�w�`�$yɷ�d�_~�=(�Bb~iuȺ� lBNO�_�?\/��p����eCa�86�u/%�ߤ�4°�H_���A�
f�&'�b\�
8f�U1�0��Q
R���fvg�dv���_��O��
g��dU#����=NѸ���[���u˶{݆����)�"�
W�~�߅�
��=�U&UdgZI���]-�W��k��.�k\F;wN�u>��Y,�+�e6�
j�%��]���l�wn��/�Y���{���R�A,�ԧ��Fe<268N�B
Ӹ����0 >�ZX?�s�6�L1
}
X����)S��֣
/�
MI��ә���U��[bR'k����#����;���i��l�Ѥ���Ž�Œ�PލUH��n�{�0�N���p��[��b:�!X��v�:��tu�᪗��A�S�3��O:v�.~�ptem���B���
�&˽�g����Mw
�1�\;Yf'^�t��{
J���f��<�.(� Hd-��.��zꮰ�㰠a�w���V��e���s��|�x_��ع��˦�lψ�k�?�Z�~�2�i��i��"��>�rm
��r�+�Ś����r��m�=�]��\[/����R͒����I`��m�~
Oa	����`�� `p�,wG�m�qܛ�)W!�Ck�\ؖ�&�]&�ڸ�͕Җ�X��6�n\iD��nD[WlD�Ј����޾�jBn�V_�P^�-D���-f
+m�8
���S��n�&���1t9�:�k
+wխw*#��N]�A��xڞ_$��hl�Vgq���g4�^�� �J]
��@�J�l/�k��U��k��zXchW�1�=����O~�%P����
�ugD�D
嵃�pd_�9�ʓ��.Ƭ�䣳���ꮸks�_͞�#�F��k
�Lv�jM�M��t
+�܎�k#H:W����M�r�WxeR.M*���P��R��Ayv������rc0
�aw�;���gb����~��\�
p�հ;���*%��<nֻ�N5%���<pjv�:T���\�g�{��>eߢK�9�l�[�U��+|IQ�E�3��x��> �">R $."-d�8�����
��§Т
+�M�Rg*�>)�A}���rk�|q��F�C>�C�嶩�6��2�s����������f?�N9��b��
��9���%h5^y�1��
�S��a�#x
�dx\X���
��)�&hJ媯���n� {���U���
1W�
f�ʙ��,]��i�T�2[������)��f�v�SǪ�&� �Z�������h���+
.�Cַ6�zɶ
+?s���s��`\���"�4���p����6�����l`��c��}���â�
)S=�&�?�M|3�\��st���IJ��Q�	F����j|:�PɆ�����
++�IPꡄ��P��PO(|��2)A=��B��@D����^!�E�7 B8
!�{�X1	D�I
"Tt�y��l����Kz���m���7ѣsq�M
i��"�\zX���7��=�b�N��eeC=��Na��K/
+ b�1l�8��xw�	��ɀb%�w"�E�W�
��������zQ
��͎6��h�A��V{�F�:����� G(Tm��{��*e��V
y�m�׾@���H�<�O��e����7�,�/�4��?�f
+�5 ���>*� {�:����9�N
� 
+��ӂ!����
�6���Ոӥ����D�΃��8N��8��j
�.���c�@ 4���!`6\����	��1�p��4�c��
+����`���ڇxW������#
��Q�����S��8��4����
����ı�ـ��� �r�U�7�
Q z
0�x���2wlo ?��! �Ĥ���Fy�}�;Y��:bn�c�W�ۋ{��(�Ϸ_~�?���`�2܂h�u��#j��qB��8��@��2�)=�̓c ��B=�@\y��]������n���{FVMH^��y�r�)DG�Y��p���G@��Cν�G��;��������E�9�����T����i�=/��Q�>����8���8�j�8!o�8i�	���wgkC���Mσ]d=
��P�دR�xz���^^�G���ݿe�K�T�E�^o�q,Z���:u�aap�sN��s7�x=,Z�(_�
+ P��ğ�adh��1NC֏Ӊ
�)�L�V��e,��s2;0��9��f�,=���
��
k��-z��.���>�
�M��P*^�
�ypc
+��6'%����(�s���n��y/Λ�y��/	4�v�6XÒE1
��S:~v�mo
�/7�&����G��Eno{^
��

2�9�3���j+�����is���e}�Ou�tl�ԡ޾���bg���ӯ��U.�6�>���:
�%��KK����9� �%��H2ey�d2;�77n��Cv(k���k����oW��DތiC��Sʟ��R�U��6�F�P4M��
s?�-WU�B�;�jp�Ni>�Dw��Ϯ��l�uF0VYe�G�`�����-g�?$��r
��$�-�IƱ�o���D�3�}�d[��E�L����ݽ��:�5U�`]_A_*�䜃HQ0焢��Aל��Yg�?��~�
�곺�ax����8�E�d�\V��f[,F�F�
f��:>�,3�>dy2����^\�W]��)3W�A�gF�<�W%�7�/�ް�������?��k��=J
�n.
�ڛ:��I
�&6݉L-�R��1�F�Ek������ש��hXy�_�8��ji�����at�]��c�
�2}i�
+W氚�=]�n�Fe
�mLF�x�8qe�;�v�:�>T>���<ףg{
j�e������������~5���F;Mg����O���߱2�#
]�.����y�v���
���8�E�l���Q���Nl,қ�c�����&s��5����^3��#E�,�����|m����9�}��}fE���B�o�yYo�Sn]�
�
d<�.x��X�-r=���]+��W��q�4t�H�m�ɿl��A�	���C����{��� Z������/�F��*�^\"{�H�>�O���'�
�ofht��~
��*�;�|5����*���e�g�)��[�9ܖ˄g
����
��|�����v��nt`y�2mv�/��[�RZ�
�Y���~vk�Z%�-��kי`j�:S�iV
xD�٣��Z��}��"�-��9�����K9*:�`w�P52��"0�
����� r
;��ː-���ءܾRo��^���Z\�Z3p�wW���f3/��7J*>�ZJ�QH�
+��
�c�=]c�?ڥ9������۩C��E�b�	+����a��
&ä�K �qg2����CD`Ê*���_U��V�)�k+�@�x{���~��Be��q�Ф
������cQ�D"��մ-�
+
�tU
�����;#l_����RNw��v�2���ѩh��4���:�{�����~����;n�����F���^��qZ
������J�J�B'Y_���T��kI<dO��x��bU�J���u�ck��m�dsx��
pU圼@p}�|@}@��
���^+�B�`.�*2LnׯdU�sp�)#�tU:�{_�W�ީV��ι�h���TҌ��֊̋�!I���鋵�3z���Q���>�9t���I�Xab0��`|-2ɵ���i��,Fj��+�3�:
7�
��{�����
����U��X�#��k��ҳ����EY}���2�&�,�*-IoFH{l����;}�i7]ތ�)wm�+��
���?�
i8=�1͸ID������9H�S�N|�������}���Ϛ����-�WJt׳)��0
�7�`��B�A.�w��1P;XM."$$n.5\��Fh�
+2߭\un��m����,^�̘+
`��O�6B��L9�\�є��Q�\�}(Ŗ�
+�����2�%����_� ���Hw�u�R��
<�;
�Z5������,
��[R�@YԋϖЯ>Q�.�(έ�E��-U�%MM��N�t.#$�;J�R

���v	m��:���!Ͻ�:uR���Z`���
�����c�P��Xt3��̡�WT�JA=�=��R	��\Z�������,���a��
3�M2C�y�ԷdhҐ�pj�|$��ۘ�
+3��������6v
Z
��
�	q
�)� ��c�_�x���~�1	�!��*��<gH�_Q��s_5�Z|��<�x.\
�6Y
+��
��0�/�4���*�Y���)���1~�%v��3E���z�LIh�F��}���
��u��

I��h��jڢ��]g� j��Q���.v����lt����,_6��[�w�柚Ë�����	�s+E��כ�
tr�tIb��t*
+n�[朋
z��3�Q���<�mk0�!�����P�Z����ա���\9�������_'�I����Mv.֙�o�+*���6'm3�#7\N�
ةL�壸�*�p#���!�J��C���ݠ����=D4=�
d
g\$�,�0k!;Hp���<�lU���60:۬�l�j���]���f��1;H�ބ���^�$w�_}�}+�;԰�MC
GnN���
���f�n�
~ɺ��=�ZO
��<:��:Jx��9�d���n�g
�'7��
A��U�
ݧ��#|��́X��Z�Rڴ�/�l���le��l:���7^6��7��	m�5�i��~aАת�T����l�;��G�n{�"9���gy���J
�$m�Vw� �n���ξ�ʝ� 4���෮$�l����
�B�If��h
2�W
���
�!��Ӈ�z������G�ʵ�H]��M�1
��/Q�esIL�~��w���
�c��i��/Vm�T��n*�n�5��B��f�a\�9�

��Z#`l���mgu��9�挘���[����������KUy;A��L���/��<�
�N>8H��-��Q at Rf�~չq��Q[eq�Qds�Eˍ���o�>����������˜j�=k�d���DžFU�0�Z��|e����ׄ���doʦ]|�.q����aE(��uZ�;�b	zH1
�h1�H��6Դ
H�V�I=���1����W�5���%ݑB��w�=k�+iT�;S�,�.-���Q��£��l트��^p&SrT�@͆p!#\�B��Z��}���U��A7[�h���S�A�<ȁ�7���
���5�}�~�,�L��f4A�Z
j��
�
F��+��/d�	ĝ���kRF
�*�¨l��Sx7�F���vn���ڙOs��c�ݹ�K����0��o+�����N�� ���
#��֤�%N���PMq�R<�_8����w)�O.5�1P���-�:1�U����9+쥙y�ꮠ���?�������M��� @ڨ�B� �8� D���
� 2��d9f [...]
رW�G#BF�j�0Y�0��g;+Pe�9����e��j�@����
�n��e�/ �"E ��] sH
�&� �6����7�� ��d��K_{�y Kt�����>���i	R$��a���I�At�<
W:
~�V�f�-RRs�/ga�S ݬҷ� �[�?�-����n ^,� �3o 7����<�t�� �r6@�%@�f/�j
��3=�X4V). @,�.@�#���B�ٞ�MG�<�6��E��qB�Q�!I�k�����T
��z��Dt[l���u�\j޽y�yX�B=eb����N �Y*���x��Cw�)��GOF�����ߊa��Uc�+׵����%�R����s'I��<��$L
L1l�o:�G
��+�h!����hKII"��/I��XG��*���|��K����w��s�Вg�M߇j�)Ffjcq�bpLm?J�VKq�f�š����_%����sB,���-mߏI�]�Y�T�G
�s�W/^t� .���+�����xS���V�����ֆ��
�H^՗�vj(&�IR3-��O�6�
�O��:���������x�d�A��
�����&�՛���Km���M�׷[�K�W�U+]�t����v���
���S���x�D��!y�,3y](=�ی�<�K��!5YȤ�z.��D�u�J6�sB�A��N�hV�ۺ[$oU��z�W=�˗#Y�/&�X�
�{gh��O���O���
���vx�3��
�}_�}~T�v��nm��U�ӿ���ZB�?����o3bjr+��F9�so���l��_��r�%T�=�
+^:�l�G��	k&ݣo������
�����y��$�=تf{�nzh�>��e�1��j ̩���s~���Y[P��$��&�vn(��6y�r�Z�H��e�O��"�
+��y?
�K�&nNC:
�f�~�����rt�m5fS��g���U�v֖rGW�{�^!xAX�_���i�Y�w�t����9x�Y�cQ%���^y
Ӄ���i�1���'���' �ԧ�gFB���M�i��Ҧr�n5c_t���A��ݧ6[�c�$�yA�N�<��p���l~��g���)�
UY�
�9�N�%˙���lrI
���gk�#0��
�gJ ���+��'08iO@ۨ�T�d]O!A��=�:cx�{"���n]|t�N�%�>iK��cd�$F�"հðg���S68L;|x�8��3�Wv���&��m��q
����8��ވ?ɻ��%O+����5>����>8�E��L��f*
�ڽ�1
�辒��sk�ߘ1�]��Ea^�y�����t\,˗&7��4qǔ6	��!��`{�
	��4\ޏ�P
��y��^�i��CNBܖ�qk��
�:�G�m�Jv�z�!f5����z��ב_<3���CD9�W�ݦN��sy�����\$�ѶyyN��e1i��8�R���*
W�k���N�Oڼ�n�{
+�{]����
��]�ǭ��	���^�ְhr����$��.
��S��/Q뚡DYĨr1����w�_$�t.^5��7ŘY=GV'�cKY/E���
���y���m���QiV��]�\�����ە
���/-뽩xS�O�H�������K��9*���F���޶{�;H���q��I4W�e4��t���:�A�O����U6
#¬Ҋ�*M�~d�
}ޘ
�5^�]����d7҈o\��ִm��
N
�eKT�e[1
5��޾)�����t�fo�kct�`s
��5��X�(~2�rIM�i����x�LqjВs�2����7�63K�/��F�Q�ԡ9u��d��k�����eV��v;����e�B\4�iTԯ4cĨwc��B��n�;E
�z?D�ϯ���Hy^�B!ٽ<�W�r���%��R��DYt=�R�
b��ׅ͍m~��.�K��I^X��%��U+x��GO>
_��<;
�i?�3
�6�3z�W">�;XjE?�R[��<�>4�T^�&�P��,��fO��#	g2WUf!Vz�I�6O�n��K��[����"xM�*sg)���f����<�R��ی��2��i���Q�����t��u��vil�ǹ��ǃ~��>K��i�������-%[��r>;#$�_r�j<��jfi:�w�����La��
�`o
�ĺ�eѮ�c
�{d
w��$�y���/>�hڜrϢ�z�xf�8���߈MY�J�	��γ�
Mq��.Muh��ǘH����{��伭դ�'wĪ�Â~�	��R
�6)���`���Yt4]1I�3Ġ����ե�ES��ru [...]
+�=Y����e�DM�8|_�B|_��DM��T>(P���Bp[��Ꝟ<�_���gWȲ0rƬ�����s�<S������`�`�[Rw�]7��
���"3V�:=5�Ͷl���.Kv����ܜ��ƺ}
<	nq��>��V1����+�ӈ���,v���L��>(~�
=/Ҭ9�ГL熎�N��!S�ý��7:��GOΝ<q�?���
��%��}�b^b��P���kP�
�F	+�E��BVz4Eh'Q�����Y���u[q�e䁁$2|�4�.dx�Kȣ��E�Uv��u5�pzƆ�Y�3�d͒�T���^YN#�<�5��&L&0 �qF糣%�����V�8K*v�Llw��h� �o5H�|��vlh(ڡ]d4p��q���I�,�š0�
(���ce8��?(�t�,~����z�ؠ��a�y^�
F���}���1�v���{�yHا#,�))s��5�����!z]��]���ܱ�]�]��K��C���EH ��}x�B8;�g_�^�
�vK閎��Y�̹[
+r��b�d�_̌��dN=���ڨ]�6��Au�lobsݜ��, ��8~��ޙzCl ��|�
�a���U�"c�,#��i��ۇ���HC��"u�Wbv6
4��f�����vs�t['��k���?['t�o��B���Sp���[|
+�4 d�
gN
�8���h��
T��0�o0�����%Zn���(�!Ժl�a

`��o`pxLg24'�/�8���CV������
�>(��n�v���*͛B�n�4
�n�Z/�1���0���n��_L��R�k
����p8��@�spmj4��K��
��VsM���C�Ȁ��L�Vǃ^���:�].j{خm6{���r^-��)��l�ٌ#
mb�k���4�p7�Oxt[�.�W��V���� ��羖
�Z^
��0�_�˩4�|JrBZ�M}�z�O�Jim���H��E\������'k���r�t��X�UG�p0���?�����Z�.P�M�RM`��Z�UY�I�J�q+�/+���,f�(��#�ܪ.w��������J'�F��Tu��d�օ6m8�����������4��

����%�A�펵z�
��6�J���9���G���J}S�T�K��
^%�w.�V�SD�.$��(�9&,�8
E����!>O��:��l>���|����%e��+�`6+%&�`�%C=�8j��Q:ݱ�|��֕~Ԇf�[�$A��Z+��	] �>ϼ�j��68c���%(��(��o��Pʹ���sr���0ٍ>t�Z����Y6c�{DƨANƨS�̞�������AvTW�f��sb��6oty��U�j���X����Veۆ�����
+�X�ϻF�Q�|X�p��^
Y���L�Jj��cL �|?E�  �>�X  $��+
+�$6�9�F:T� Z� �!� ��7 B��0m��/�2�P{�ÛSVtP�զ׃c�F	˵񥍐��>ϪA�_�#�l乐Vsk)�
�F�`EURL�)���.�Ә ��ޤ8_��� 8� $#� R�9)&k �IY ���/
@��4�m )2t
+G�¸޸r����`F�id���X�7���$�C]T��������; ����I� �H#�d�7 �@� 
+�S �?� �! ��	�F�"��S�j���8L?
�� C���u&�}`Bt�~�0SWRl�/4�>�D�3�ق���3��+�ʶQ��}���0�

����J�26�rzQDt t��
�� V~ FU� &����
�N�����������@�m 
+�#@4E�h�h� �@�� �j%Ŋ���*��@�r4+�2q��MDܕ�mOټj��}*ݷ�*���QN����5�'�f�~���\���[#B����p �^�o����[��[w��[�^�}��^K���H��CO�|('�U���*1)�(R��$t=J1>'	S̤�)�X�����WB���b�o�m�M���M�ug��
U�ۿ�ڬ!��w�6��F+)I��$��km?��z�S3����?%
�)�Pj\��f��J
+�Lq��U���C˄Xл�W'e���j��
�w�{��n�╠���1��Qv�d�;���^��t	l�o����<�9�<{Jڣ䤓"!Ri�o�2�L�����̈́�M�Ǥ��Ye/ܹ�I��k?�� .�e����O-���Y\�'��
)�ri�����o*gh��'��3�I/;NQ�
��;8������\�_�#Ӿ�s6�T�H��<�$f��6�������ᑕ�[�h��ۺCnՁX�6F\�����ˆ�����)l����(�u$vs�0in'��{X��^�]S\a[
�G
-�Mc�R�f�%�ۛ��$�uQL^ʜJ;���Nē��ө�
+�$��>ޜ=��Cÿ6�cx�P��)控c"�����֯}����eY�-�eu�Ƨ�͎
t6�h���˜Z]䥸�����k�
�ˬD\��oͳ�
:�,��T��Ԃn���
+��Z��<K;8dR���#���[��δx:���G�0خ������pm���������K������Z�}:?�\>���
��f��F��+d�����]�����6߳��r�Hp�Ϡ`0
v��l
+�0�~���ih�n=�/
\�����Ed_,y���c��Jb^���B�yq�d{�L�4��ż?�R-w�eT��}�����P�Sc��&�Ƥ2��v�o"@BZ������m�gp��g�5�mcX��������8wk"1tz6��c6)f��=��
��>׫�%��s�
+4�U�����N[�*M�i���
p�I)7N-��0���!s�wq�)0\T���x�u�5�P^u��;u���;�\�h�q�F́�j͎���/� ;S~�X}��ӫ�@��)Wփ]�|��{�l�y��wf�1��3� �^�1P��~��#�k�Ci�սM�<u�z�!Oܦ����x7�L��Lv�+���n�
�5�zN�5F��9��3w���kV�*����,}P��!��r�D�P�`h��aa�g�dV�'�p�Ϧ�	>��Ϡ{�s��s���EO3��kL9x`�9ҹ�D�ATE��{ݰ^��cQ�ȷ2�an��cן�q_Xq9cUu�F�w#z[|`��k��k�|�[����v6��`����6��'z��6�6h-x��GM}L�-����m4*��p#�2�j��A[~�zg��E�dr�������h(�B3�����o_?$���&��v�
b�5�7 �EI��B�����qP�Z����z�ҡ���p8�Ƭ�d�)Ҫ&�)Y؏$�6����
@v�~s���L|3�˻_��
����{�������~�(�!
+�Oʪ�嚦��x_!���'�BY�d�V�H���%��p�br��k<DI;��r}�� #���₆�M�(6���z����
�U���I0q�EӴ&����F326 ���d��М;[P�PS�@n+㬆�^�Lʟ'�K���Jnl���}"���VP��C����x�oИoN�wR���i�?`������vEfzfT�<�П/&�a���h��Ě��F_zL��Q�Fz�5^hHuR���P� O�[Q���t��
+�UC\n�X~<A#3<���{��
+C�4.�n�ze�
d��
f��d�ܟ�� 3
�^<�3�/��Vb
G�^Kw��e��5=�
4<د7���^���F�S[y5�@�Pݵ
r�I�C�7tF�ֹ�P�s޸�-.�� ���{k�2����[i���C�@�_+���l��h�
��{:��������{���sF��t9�Ƒ��{��
x=�hEm"4ଧ!���P��K��	�R񰚉��v+�������;q���q�u��ʢ�j�)m�!��@|ߠ3˹Oq�̆c�E·`��Jߋ
Y*sOR$���i�_l-o����@��E�<�>
�i�LI�"�~[�;�ќ$jUETF�#4"��LYr�Jٳq�eў�dF'/���_��ۺAg�#Lq������b��u~�"�e��*����"��%��7�$<~�~P
5��-hB�P}������eOe�ܯ
K���q]Z�YJ��;�7�G�s���z�w�
x�5C<GzBAw:�o*�<�_�UR*�
��Y��Z�e|g6x㪤{2v
�b��%���p�%(ϰ���Hq��*�jdԾ��A�_��K�8���5���ժ�& 5�V[�L�r�7��S��Þ� �(�󸤢k��
+��J.��,��
�N;e���m�7�aة4�s4Qg^
QXt�Ƚ�("��L#�{�/�Ĉ���?HO1�^]߿X��W"��4.��u���J���2�J�n����Y�քb�S���( �9�iP�)�K͙�僿!�vt"j��7�{����G��YD��^'0�"9�C�¤?�K �U��]�����3�h*cX��?K�/�kfIL���+j���B��dkF.=_t��iI���<��{�Ь����eȐx�Z��R-�[���p�u��
���E�M
eO5� 8(�
����@�"�;/�w?`WXy�nѡ�nq���E�|����.|�b��D0�Ш
�[�Ū�B�A�}Ebu�e�±P��wv��
+!Cxo�y%��
������r���3B
��!���wUM`�g��lsV�8y��ηw�[j6��b�����n�
�n7�<�n�Q��>
ڍN��n���?�	�@�E0@�
��8�o�j���{�uW�qv�_N�GG�E&�����ə�'rE��
+�@�k��P>�q��-gj�Z��-vjy���Ic�u�\Ŗ��n�r�VM�[M�m�j���m������F<\^~�M��Jv�+�7d��N�8y��6�|�L�
�WX�*�b
�S
+f� �ʠ�w6}��h�C�S��n{?�¶��Vz�Z��y�RsśV�6���4��)_^sv}<0�u�<~�����5�
+�
	���.�`
+
�A��ɡ錈�y#��k��VQ�C�D8��{&�	Ѻ�����	���䑦+dS��!�1R8�A@����a=��:�#�z6��j�j[�qj�[��Y�*{���������탬��I�*o��myk	�?���?�_M2�{���-,�H�u�7�`�*J�r�p~��S*Нb
�������&�"$�n�
+
�J�CU˝�TY_�����J�S��>�ʽ�����r;[2�b��ѷx��D�"<^N
+w����^)`�X+`�j]���-=o*�/$�
-���S����y�k[���"'܃)��>�a�b&D�����Fm<�!]+vwp�ؔ[Edu�
 
�ZS(�{�����8���So���L.0d	����
j����CN�h���+F�+�YN8d�4�z�f���o-k��Rƥ��j�ebg� ���}'[�}�R�y���i81�5�&6[�X!��:y���һ,�3<�-2�r3![��{�ݲ�ez�ǭ�L=I�N�)��q��r�@��/�N��:�
t2I t��hLJ�/�|夾e3���%*g�I�<DN�������谙�:���VԲ\a\wp��\����s^ƀ�$�)�<�5�=�k�n
+/�A�����N�݉M���e��o��;�]�ǁ�P�n�JRl�)n�/�ZS���:�k��)�R0-ߠ���4�F���\���@�Y
K
�m�
+ �c��@QY�
�P��)�> ��
 ��� ̶s ��� ��|���=� ��Z`��|�^	
��M�R�tX)S_���U��	�G�U��>���'oH�s��$咫V�|x��ܚH�L��s lc)�=�_����-.4 igm !����@�-�$�
@�L	@��S�3LKq� �!�� � z.� tu t}$�*��P��)x`7�c�&S��x� B[H���h�O�2�

�|�r5�3Rk|�=��6�j�
����G'�귕�
�(c`��
+`���^�O���p ���/��/���[m �{)�@ > �
ٺ�]#�����
+\-
�q�_��]�.�K�	�
Z�l������m�'�{Z�?�-���o��O�[��>��
��9d�<5my�[���l[t�-f{F�H��K)ƒ�<���o�m$	
N��]�0���?�o�$a��_
�h��g����	�}���o���L��h�"���
o�=&5�����S-���]�����IgM�=;5���u?w!�_k���Omv�bOmD
+2��;�7��[r`�$>x
%�<�>&�d��7��=��w� �w�K@,^����Fn��5�;�1�J��ƴ��
Yp�O������<#�I��ޔt�)��r��B�D���[�᫂����n�A���{T��{�ǒ�xbٸd�M��u��UO���H�������9C
�r��H�h�H
a�0阃}u���@�����H��M%OM��wj��j폼L�?ҽ�?&yۻG�p/���m�>ܮ�}��
�]�|�ץ3��'��ky��Gb���Ƒ9dͣ�箱�[ ok��/ަ�{G�H������rRo`��xm�]���E���S���7�Ir�Կ�o6��z��|:��
w�?
���4���Mo-7?d��f��N���
�6���>r�d�^�2+�<�/c-�,�C�\��-2;7zN?���P!xт�#	���4߷B�4n�յ����i�q)54L�I��R���t:�+g���
A�
�=ډ7����7��۳XY�ʺ�Hz�� N
o>鮃y�]G3.٭�y�G�����g� [...]
�N�|� ��㮍��ĥ��
+#v3W����?,��o�~^eZ_�:�
���J�����t�qlv�ڮi��$��,B��滾K��=~��v6v5GQ�0�����<���� Z�_�P���ʈ�xd*;?
������k�[�̢W��۰�����i�)\D;�c���%�J<tlOqa����d*�w?��>��c��L�2L^{�{�jx����{�����g�8�g|gs6�E8p���7S�M�a5��#2F|�q��j2s���t�ul�����S�ת����
sH�)�� ��dc�`�Q
�VO+y�^m}Y�F�t՛'��� �u+O
��^�'ӛ2����z�r����wOg�
q��ns;���8
��m�5eprO���OCk<:�����g�rl,߅�Qa�`O��K���4�w�3$�Z�3Xu�
�*2>9�([�ʯ
�����%Sg���b!�0$.w^I�{���僳(�3�/ΣN��\4�1_ܪ��{� �v#�zM�#�
�3X+��d��Mcet��N#s��cS�_;���u���v [...]
J����
�����s���
�1ܯ�.֢}�������k��g���so9�� 8k�b��5dE�.�m��J��
+�
d�}�Hs~H<�͈
1_K�RMX�h�^����^�/����L�8�:���u�W���K���ј�ođ�� �?8�V
��y�jh�׹ �/�í��nd�@̘?`�,�ݤJ��GV!�X�1?��u{".��R,��^P���ܝ�E&��
+N���~��V�
��
so�:�Y�~��-MFڛ��Ƿ�̈��/����������YC��eX�"{'����=�;���s��{�rfUl>A�iN%%>��Ų�3�
���K=%��=.9�qٱW3>��5�3w��a��Y��
�MSe���M�Plr��1X�U|��̪E�W�X�z�Ζ,�&��W������2ӶzeB�fn�.;����g}��
�Ƈ�<�0
Q�^aA�s
��.�@-v�w�,B�!3�JK��;�{g:ӎ���r)j? 9{`Y$z<�|_,��B3|[_�p������\� 7�@;K�/V�����Ы
8�
�䏨��ύFXsԑe��,�-�ИB�u
�
�fTZ��K=94���T�z�� Kr7����dq6�JqZ"*�g�kM��
���k��
z�V+�͵z?`�\����9jn~�d
�B$T�U
�N`��<���\��e��6]%�s��˧&��63+
8Mg�Lq��'��0���Rv
��iA(�÷���m��
b6���q
��$j�H
��� q��#��"�
N:�A������EqXoO�M�So\�י�^i�
.���_��3�>���p�b��FE�U���7�,��P�NT=�����㍱aGy������^z@�:�.����czbp�
+L<�!�^�{h�8y���d��
Sh�NW�2\ζ�L{B�KՑ���.�V�6H
oơfo4�l�D����{�SS���Q���Q��a��4v<�̴@��*
�l�œ�B������
~�_Y��+hrd�1�b7���.�
s�Of;�"'t�J��������o�v�Ó��:��F�+�{�<�o�̠�
� ���r�-�M�Z�:~���4��5�G�ȼ�`�O�qxL��0Tf0�aw�T��P�0~w����-\�PGF4����F2�v=��Z�]�m�߮ݻ�?���_�pc���������04c��*7|��Y�)�z-�!�V��Ĉz/����
�j�:L�
b'�
���a�=�Te­�#�(���sPE���	�9�����5ߵ����v:��zj\�F�.?'�}��?My̅�\�����o<���EX�b�`��a����i�$4X��kk����n���s���h?�	���Kr���)�<��A���Z
7���KLL��6
+�6[P��6
�E��CxKW��jWa8�1V9��L�>�j,��
Af�����a�=}f�;-xD݄.Eɽk�
��&���!�)V�Ę����)w�Q4�}���A��#�t��۸1�<R$[�Si����I7�Ȣ��� Z������t�1�����
��.�Ӣ\�S�g�L���L)�O�|�1���K��1~� �.�9|��8j�k�%�
�*+��:��e
��e%{�˒�,W1��V����fY�{��2W}�T�T�m�X�J�P�D�S� -��]J�Hf��R���L;C�%���C
/��
ӲVn��7c�\�م�-�첵��Ȓ��4/H<Vf�N����p����^
M
+�
+�6��ƋH���O���c˝a�)�s$A7���q��	,��?�cwd�&ڼ
�5F�o�LB���3&�q�,��0;+���h[DŽ嬂ުw��� �w�y��3�
�h�1
�l
��>�?
+
+r9j�MXF!<z#�/

?�=q���s'�.�f�Z��V�f�c�8*���\�����j\����9~��܆��2�*�F^�9
O:�,lH[N?��~��(��M']�/�4�JO�崸�rH�Lm�Y<E�

4ͧ
�W}���l���zS��&p~�I�Z�GT����e��^_p�J�z��s	�e�
S�ԩ�xZ�s�P���=��w|6+W
�#
�36ز��(1�&`-�Xw �E�c����}�o�`m���l[��J{��yX�=���	Q�e��+*�ĀI����4mlg���]jn�l##\Z22��q�t�J��Cp����xK�ۨ���tl�]�
����
����� ��
��dp��p�~�)G�
��h
�u������#*�����e�/�(�&�xz�p�|��{�SD
������N2� �ɳ?��ci �zU��p�oOo�����o
�0���p��@���M�e�cx©� �9@�v@�2���}ӡT�E�JVT�
��l�g�<��.<=]��
fbW���a�0uiU�P�I��d1u�Q at u �D�6g �s�@
-\ ��.?�H�t
��tRt���v4 c�
d���-�E
+�\W2_��,���<#2c|*I�sI�FTa7��
}|s�
�
�s�ɱ��^�DpRѾW�Փ�~H���'���q�W�M�
w�
+��*l��O@�H �Ӓ*�@��
�VN;���(P�N��_��^c��v�V�w|]��<���•�����A�5o�k��	:�I]8۝��e���i���j��m�vY���w�H��t�'�+O�Gh�"�+b�<��mB��� �
1���0[
��0
�����?�3��j�#�%����d�~u���[�?dc��?���K�1�u�n���I�mt*<�U�����jf��B���w���ƚ(��sy�x>����&ؿ�j���n�Bi�ᐃ��y�����vk�b���C_;����{H��;�
W�
n��]�"]�C^Ꟍu�ƃ����.�xؤI?�N H�?��
+���� cT�?%4��6�F���g]m��>��)}s��mAm�[�u���$_vҵp�?S�s�OU��$U?�
�;	s��o�1��Ny
i���0fS��'�
������v�Ѿ�u�~�?��f��R��I�G�c�g��>��|77��߬>��Y}q���ݙ
Q������D�Q�C�ç��z���!���H'�o��]��W~C�ws������	yk8��|�?��,��-���c%T���|գ��w�௵��i��K�Z��lPV�7�Z��L�v����n!�[<8
6��0Y��y\����|��9��RޯN��Y��o���3<
�gn��6̄�:uP�:�U��	�k_�-���[L*;f��L�ѹ���ȴϧ�~_���wsE_o��u=	����vo{�U��F�kv�&�7����ߔ;g��)ϐ��	�Ͼ9]���
��v
�#�2���f�3��

�<�9���](}f�cP��4�~X������Ȋ����
Q�c�w2�}��s�x���|���`
��e/[���7>3��%̌��dWB�㨊����FBq�
I��i��@��g at U�Gh����5�U0o�]{��K��Og�1
������>�i
�`��q�^G*F��LQ7�ZϤ���_���ޭ�jv�xS|k�A3\t���nuǜu
�w�C�&"����Y����l��񼲻�|�x�rg?,�
&ת��z���T��:�ϴ�H��v:x��(B�
+�Gݝ❙
7&��\n��W{��L6bN
+��l�������n3����i��m�O��1�
�r0
/� ���
+�n�^w��t�*�ݻֲoO:���%���)��Q��Z�YUq���§c�i����̤+�]O
�U�z}��j�
�� ^9g����9,\���=�Q[���u��9�	o���k�6��V�Q���[�Rʉ�K�
�� ͌[c�Y����\�'���K�7�U
4����wu/W��S���Z�Rp�9oˮ#Rá�
^[)8��
W�j��w*�=�W��
�G��N}��n<l��[�v��ye;
�� ;<����1�
;���%��%�袼�4���7�V}To\�y������Ս�Nf
�/�ݙ�le�������?8[cS�Ĩj͚'�*�Rh������4�r�r����K��9�E�
&��Q�Yi


+b�:z>��~,V�I�Z��~��7۩��5��
� 
�v\7
�rj�[��j��pw�)峮�Ͼ���*�Գ�BE�\=6r�-?�K��h
JZ<�3]t:2�'�1���{W(g
�5�/�d�#zQ�q(����k�'��iG�/�v1k���-O<�Y‘�%m���<�jj�*UL�nX��[�5�m���
gU����<lzg�%�O��x!��ϒ�����d]՟���`�kC
*|t�Th���ib�'	6ރ�g�����-��˾{B��z/:J�h���0�T��AX���נ�/�ȶU��~�t?K�87�Oߧ�[�ז�^&�ן�x���ѵ�,W�w�P�K����%�Z���-�kQ[,g=m1<��Ja9�y���s�΅͸V
���GT�r��
nO�q�Ys%�&N�|zpym��RC<QfK}H�y�+o�\��0LC�
+�������P,�W�4�����uϗ��-nmF������W��z�~���%WS�r��3��
,ǷCn�{�����I��?���y�nF�گG(X�+�Ǵ
���{;;�#���StP��tZ)��S3_�
~
mc��䥙VM5w���_�rJ�Ē!�&�V������2~��
%�|6ՎQ~#�y 
���aQF���4k���߻g}y��|��^�.y�:e�L�
j�o!��'\�T��޲B�Liym��M-{�l�&Y
�f�z*	_�ߘ��ȕ�pR$/�ܞ<r��%���ؒ��⃏Nb��b�>w��
�1��T?�<��g��@��ztEhr��t��-��
��D�^�
_2OՇ�ӫ s!�Ǥ0����Ƒ���+�n)�+��k�r�3�O��0�������� ���
�,��{\�	:�:�c�R+�
�0R�UO(�O�ၒ3#�+B���xv����.
�&�GN0+4,�_������hp�rs���k1���C�����y�S�t
�L��@�$TK|���8�dz~M�n���}������M7g���9kBo9kJ�8+d
��u{�h�]n����)���O���CeviU�����
3Q
���r1��x>Ӛ>w
=e/|���YI�F
܊���Z��)-*��5}��
+��O�`޼�+
�MO�B� �YY4��OE߫mf�<.���D���0���cvU����&�
*
�^��79.o�}
�R7�V˞ڊ���h���(����ob>翄q}�����a��KN��T���^����
����~	
�(X�O��
]B���y��R.u:�XI��2D��V��Px�� H�����a(7 �
�y��T{^�<�nq{p�B=��x�3
zP,�]�Q��3$�ŕ/E�[�
�e'5�
f7Ƅf��^b�-�3M��0�ؤ��^�n�)�#�
թhwJ�vY��eR��u��RCb8B��p,����u�����:������(�������u?�Z����ПGTϭ������>^��*�ݝ%���a��'�>�!:
sԵXf�n��P�li�7]#,�o�8��`�`E�p<��ZE73�����Y�i�â�=�
������\�݈q�x�9��
��jg��
y��+��\]l��_pc�+ՖhH⧅d�5{���r&�^�J�^��G0��!�񸹓4
i�ʹ��l�7�g�:=�:P#�E��T���
uzZX�{�>������b-u�H�<,��v���_����fkr�
+���p�����TSꠐ]F�|o�U�t�H��i�U~]q�ʜ���q����3���f��%3�d*`G�Z��SE/�B
�p���`�ܻ�җ�$��Z&��=x��N�P�exHN�˸x�2>�t�^OXF���+���f�� +(�b�2?���p

�'s\�R^���s��
m��E�̒[�v��	�wD��D�@<rp*�-�:12`��p�`��Kz��Vi���A�N'a�t>�j��TR6�)��Y�U��C�?�Ag�:
�A�M>��j:<J[��v1F't�DK�A�o��a|�����D	�'
�-�nHo/�7zBY�z��v)�"x?�1
h�,��[1V
�Urcr�����
�ܸ
h�� ׾�:�t�����~
x�h!��`�O�FT�;�2��۹��&K�w��R�7�K7g��e$d��#�ޯ�4��j�ty�z��� 3l��(�0Db<	��0�A1ƻ��ыq\fS�f
�L{�f0��0�7	�V�
�J0�m�_oQ�)����\�_pY�N?�Ү
��@Z��mf�z�A��n1G!c	}�'$<}ah-ua��No��3�Z6�M�p�#
�H�
8���DG1���[ʂcpe�8-7�qy .��ǟ��û��W���WT�V�DT.�
���_.	��sֻ;]2�j٨��h0��/.�"��O7xm���J�ˆ�oU��f���c���"&���� �u	
Y�q_ ��@@z*���[�%;/ Pp��&�E�?�@�|��Ψs�B���<5%g���
�i-H

Ɗ��b�e.��j
�)a:S~���G�
�oO/Ε�(4�@��6}$ ��[)K>�ĭp �:��$������6*�۞ �ׁ����1�GT�<��
�i��c\[����.d��ES[���}��i���¯������&9��W,��o�����Sf
�T���������
�V(y
�k��ԃ*~q�J���
������̏�q]�@�Yz�W8Q�*�e������Q3Mp��J��
�[�Nt�D@�
�_
��������uVy�xe�Vk�@���CX�����L y)���Ov�v�*��U�1�V��A����M}>
��g]MvK�'�z5ɿݲ�m�h�s���x�j
+��mko�
�g����S�ȇ�
h�at�!}Y�ȴ��v!�sb�M�У�c'�r�?�j��&H<�
!Y��8��E8|���w��B�G^���)��{���{Hdݻ��:w��n֩8�e���j���e���
5|!���_�Q����ӟ��$�;*6ju�G	��i���"�_%� ��_���~�Q�t7���fEr�[&���$�.�@�ϑf	gvl)'?mN��-
{�gGO�ی�ݨ�D
��{�Gz�c����!L�'k �b��SV��+}����
��#}&"h�Gh~�s��#N^�e�N�{~�B����\��
�,� [�
�d�x���u���sg�U��G�i@���R_��0��9q٣$}�lU�v�u�������
��R�0C��.L�+����EC���ip�v��������}�H�,o����<��v-��
5��չ�i,o����w��"�o�|���s�����g��!��VR�u�63�)��	�Q�q�l)����}�#�2_o]��e(xT*y����s������\�~{F��a�CV۵XY�[qXު���Y'����2�P¨�z?�x��@'i�+]�jy5ƭ����Wg$D���=���M�����8�o�ĸ�K� �-�7��lf��5��x�tv-g��{oA�����
�.���0����яޚ��ꋀ��Y(�~����Τ�Vߏ|�
{,�
+M
>}��l��(�G�,�[�8��Y��/�����ή^�w����-n1�Ν������GL[I��g�
[A	����H_J�3�F_�yi{X]��h����z���u���2�ʳ���h���o6����#��W���ö��ݸ�����o5go�|�C�(��v/<m�

���Z at 0*n1
z�G7QO��"�+�FU���ͼ>��\oT'Y{�?�2�nޫ���I��Sj�5G�K�8T=�
@�*�Q����kt��x��k{=�*?�~���t�j����5*�Ss�9ܚ��;�?3H#�g���b�4�Z�p�;'��;
�l
~j�v�VJ��p׫
+a�������G�������ll�
Y
_K�
���9��u���j
o�A�m�jͅ����A�a�_�������i�գ�s
+�['������?lY�R_p�	��VZ���	2+�g��:��9�=,�mk�
+ȶʙ
��D�z�GTN
���/��:�W��S���
$��Mg�n�ޝl��r5���
?w,۷��f˯t��^�3͎*E��U�(��J\1�P<�c��J��VI+��1S60���l
�k<����ap�Y��`G�Wx>��׉��A����.y�-w�څ{Wl.�{�N����G�Vjo��0�R��4kFJ%
u�A˕��6��j���ܗ;S��-��ѻ
��H�
�^�;�P�2\Y��]]5����]xӌ]
���T�uW�C3|L]�~�[V
TF��9�����U�Z�RݕP�~ �geb�/�,jp�Z���f�������fon�תj��S�x�S���H
�̈́z�U�ޅ~|��(�N
+;��O�e1o��V>.~��܉��%M˚%îf���?,?���F{�:�p`�'��п�n�v�����.;=잩L;�[|ƪ�ӭD���Q���d��#����>0�R�Ы=k6
+���秝�(oJ��6_���Z���L����������+;�*;��(��
���U��i#�",dR�����q�=Qי�V�}wyY��mZW�}�Y�A�n��}*^��]�R��KXAw[T~z�	y�_�u��HGf�{��Z��]u��z�}���N�o���j^�䨕�e�R����c<?�_�$�l5�Q�����Y2c5����}��w��{�V�Ask�����W��/�>�g�GQ��lj'{P\��1Hk�4�U�e�V
�();��WB��P��#G�͓[e|(s���ΧU\�Kb��{�ˋ�Yw���^�0/�t�!���?�͈��W����CGΟmD8��c�tK���n�E��3���G1?Ҳx�:���3D��
.��V� wI���.��RE�=W���؇��ܓ0�w)!��%~R,�y#��y�*)1>q5�ȭ�����M��
�ޭwxo"?�>V�
+�
5���e���Q�V��!5�w~�7j
��Ƌ>����.�BJ�P͌xo�I��M♅��{|b�hI��u�@�:x�C~2d<�������r�-r�Jv���rdW c,j��2v8�[�8,ړ+��i����;�u�[��Ф.���
m��;�P�{��q���Wz#u:��x\.��oᝍo�BMŅYe�I|ixc�7x8ln�U<��i�8�s۲�'����\�̶*�z��f�]gG��!N�!�_��=~4��`��U�(��^�xo�{�3��3�N�=�����+;�n�������/X�յ��?'w
�
R��Je8+CR
v.K��oX[\V����2u�
0T�����v;N�:="���&%T�5%�U��h���b�
�<��$H�gLR�;J����gj��K8C�ҭd�n��=�|�d{�J=���GDi�eTf��#���z����)��w������#�Qi�]-Qg�]�|�إ�==#o�ޙ�O/�x�}�
�F��ӂ��D�}��W�苕`h�D�'N���o�jD
�h��4`�޷�ִV|��r�����E�B�v�^p����t��[�wD������D���{j@���V$�RJ'^(_%��j� �f��o�/�����a4�+��
���
Z�fs�i��th�J�N9^'V���t��v�g
�� [...]
�w8w�g(�O\��i�>`)�>��`��oĸ��d�j����S�y���Mo�נ>q�ZDc�i8h�d8�
�
]/�����_�������p��C(��!��9B%砰1/��p��ߜ��k���T-�Q<��*���lRX��V�f��2��!��[.�;�����a�g�6*�u����l�~@��
�0���"��q�j�s
��<�q�R�`@2���df��
 S��[�յ��dG�q�gR�;���~�%L�k,��$�|,s�NW��|�|	dܩzA�������2����-��P��qL*�WpSAO�*�m�1�S at y�3�|&(g����ʴ��O���0�?��u�ڨsE+���a|��m~W��rЊ��(����[�2�x�x�u� �UQp�~�@�
�
�
 ς}�<�g�T� #>;
$h1U���n��
+00��q��LV��/}�S�	�Z��zR�%p�kȍ!U]�tI�2�†�l��>
U��f$�)��G�
��)�7n*U��w�*����[���5��D [�d���]	���	�y��8�t�� W�
�
���`�G�����g
�y�Q�6�5
���b�Ε���ˑV����-;d��c3ɕȜ�����>���,h�,8GHnl"�[��8��W� '>k��&�����
� �Q��
�}K|���MG��q�7�7{��
xk����Z���K�n�h-�s��wzI�D�_|��~)�Q1�=�Y���\��������
�[~Q*@��
 �t��
D�< �S� ���8��@�% ��!���[��? �W�ۣ�
��	�����fv�ּc�&!wu�v ����tz^1�a��/�
I������G�R���%9�W��Sm �Mx�i��k�pW�R
��R��@��Pz��~v�v�`� e�VM�d�-1
�w��
/
O�7$��3�"�"�LUSQ�d�Z�����&n[Xn���7��n�m"�*��l[u�@#��jQ1]��
+�͘,���gf���˦@
Ì?%4�?�[�/[��%����ou�'!I�M���"*��
+��Lbh�g�X����^
�����77��5�nF��
iwf7�z9����
N��I�>���dW�?�j�&rh)���?	�M"
R�??p����� m�O��>�UM��x37w���ޑƬz����u��ZW�z�]v�et����
��:���
��ګ
�
4��h��k5	\M��?�M%�]ⶥ�g���է6���1�����ju�������9����h��|h�o�]\�/w|�v��S�
+=:��!�t���/x��#�fgh�udݐ�=����Q9i�O��w��\��D
�?"h���
����}�p�;��l��N���������
>�f���d����2V�FJڮ#�?��^�Y鱼դ�R>��"`-|��=~����|��pQ4FafN��N�MLvN�L�OD�G�\�Ǽ����'���'a��D�r�؛�Dvk?�ئ�)�kv��7���m�?�5�����O�y��03ݩ�`�ωp��Ыq���sS���S
��	<��B����`\4�A1=x����1��~N���v�>��ww���[Y[�w
�|D
,�5&��gx=3�Sh����ԄZB踕C�O~�����C�����"���X�TИj�Ki��-�樗Yy�ou_�;
����I~K�v�s��|u�������8���@6��{˭c����
m3����$_
�2�;�g���e�_p�ݸ�@q�~)E�z
���2q��u�d����H�AJ9?rU�g����j�}�w���^��@�g�l�"��4C��o�H܍�w��A�|��C�[������6�_/
+��T�4�Gat�a:x���@xroQ���\�v���F=>mk�	W{������
�u+�{�x���xg�w��
+@Y/�F��1���Q��Y�����Qf�Zd�����õ�
��su���p��{�K���XH��;u�n�����#�������������{:>�%��9/��W_�;^�fx��&ZVZ��J��7B1�;7gZ�+΢F/����g�۞?vG�f��a������J��.Ӫ���59���1�8\������{�8�mX���ް[A�*�{�	
V�a��Y?ZC'�jμhTKp�^k��\kvI�9!���ò;ñ�Zͭ��n�u�Ja=	+)粵�8��,�)��m��*^��

s��f�;C&���a�(����9yH�ʉ�<��q0�u�W���?�v�=θ�_�׷�x�f&�پ�ث�
h��ȊΘ�5
�U
��by
�r���Kv{���K8���{bR%ic����`�W����(�������c�{�9A��s�
+A�6�au���p�hl�h��a��靭����w�.&��zS��m��V>���B�<�|�]Z�>R�A�k�֜I]β�2>z�<���~w�ۆr�^���4����P�W�O~|���b�,|����lk3�?h�S�j�k��	���{����v��i�Qa����N˼_�
*K
+��ʤ�ڔ��me�
��q�D�s��/��?T�k4�+c�)���\��+�h��|�Գ�����f��PC��Z]6�7���Y5�٪J��וZ��(�‘
+Y:�]��~��q�$��ś
���y�jnV�굸����%xǣ� n޼5+Jiq����}a蕮pk|�F���at�k��Ѱ�ET��lA�)t<W6�bܔ帧���\n޴���ְt*��1G�ϓ�$�;.^�
=��_[?��~�2
+�쮿�s��Df���+�h�C��
*ߩ�\
+��Rw_���i�0<�yc�_i���+���+	��)�J
1p�P)3��mK2s��S�U�<S�$�M�n�ye��g��
+�]7�%	ZS�ڠ��@)ZK�B:�\�L�����}u�
ZX4��.�C��YY�2�C�P���X���X��ՙR7��0o�U�캳�t:����WT���؝��([Ux���08��6��c�6���߼�
i
�%.��W"H8�Q��Z�B�L.�-����k�=��7��k�v��=��ɧ����;]���16�����@v��t�ȥ$����KKg�YVB��)A;�2��;�����|1-ſ1
���\ؼ�V\q�g�`�
+�f�Hg��|��_��~w$6���l�Yj	����l��Px�A,;n�r�_��R�*|��J!_�>�zg�r"B�#
=�Z
��n:��j����/��+����:•
���g�T����*���
fC��s�o�^Y����iz��c%Mo�o�ީ��;݄�j��;�������#�S�62�&M�t�g�t*�z�����T���<q!��GOȇ�/.�7���\i;�}�쒚�����d�Cb6!��ru�!�S���R�T
+m긜L��M�(^Xb��W�N��&�
+� ;��W��Q��(e���/�
+�&I,np��s ��-�����d�P����܀�
�.[5��Yd&L�"���G��2����Ќ	aT{�S_�%�ʍ���\
q�2-���y�uYH���K�GB��
��I#��rB�bJ0z�
�:���޺����w�R`�R�ܸGz1��d�BCqͯ��� ����m3
��,���Y)�x�)��ׁْv&�Z�E<�~�8;��H����������An:)orf
N���g�G��Z#+�+��Nf�뮘C2S)gjs�'�D�//=e���Z��Qe���K����'F�ќ#�����ėX#d�)�!��V���=B�����/C��Ϡ+5�
�F&g�B&��oj��*��,�
^f�s���:<�Q���F�z�Q�(�5Y�veM��3KL´�Wx��1S=}��S��8��3��B�7�n�*��&�
�,���e��u��
���+5�~vqL���67�f
�uf��
3�t��%���(�ct��#��+%�u�]�
�3�R��H;���n��>Y�#ⴗA������
���*�g
G���
���0�DX�[�g
Ιj޶��,�T����̸���T}�+{J
�_fm����h{0
P^;���71�g���}�����e�~��ڊ�w���G��%]�ճ锚ӡ��2���{^�Nq!�.TvBz�����6�<�a at 3�����p����$
Xm��8�CY��_Tk������tP�6�c/{��4��1��G�����(
����k0d��tj�Ք5��`�Y�nP��4�́p��\�=�q$�����gH��T�ߔ��$��㱒8�+�5e��Mua�}�P���2��}�:k�^?�_&��ΰ����> zX�0������ �ɤbt@�i5F�����
c̏��Z@ؤ�
�߶��!g��(���eƥC�'Z��������S��c�pSY�t��£������`��^#��<K��8��l��pc3�lc���w�#ȋ�Lj�B�ʶ �����w@�s4 g
�?��`�d��N7%��Z�V����c�	�pM�d@��\sOvW���5��<��|*�v�i̗
7$O��4�����m(s at K�M�^cq��`M�
CAb�O�%���t��]�@��h�o�7� ���N�k�����y��d-Q��׷���C~�Qø���O��z����8
+��9I��
Z�F���{�,3��s
���9��
0o]�1-6�4cLƀ�*�o�7{� ���s3����'�
��D���E��?
94�ތ��
.)���ߔ�;EV~�ix�*��{*X��$���B�\O6�?��|��
�b����-��nR� wy���6��!�!��]ܣ0ܓ~ �bG1
�$�AO����(�/W�Ey��`���,�[��vM�g�$8
;�o�D" �s'�m� E~��JnY���R��{
��]4b��F  �+�T�D:�"#�@dq�
6bN�h���JF���R���Q�
W
FQ�>�!�z|�(�H��Ŭ�b��ۀDE�w�_�6��&��ȸ�v�_����5 Ï����C� �>m~�`�P��(Ȁ
+�v����@ɈP�Hр7>�y��]\�
{��ɄD.;��ڰŎ
�M�ү
8Qm����M���#��Rn����?y��%P�
+�~?
�G�h���|��4� �9T���z@
�g�
�
��#����O�h��gf�l�u|�햕m�ȁt��#��3�w��6���
+����&�}@5�r7�玸;����-��W���')	�j��n�Z[�k++n�����Y�OM��O>��Mܶɶ^I6���
���1F���>�ws��n
:��2�|]������N�*��(_��Isx����x���Q��PP�p���/�_ at l�M��di�5����&�mr�w��c܌T�jw���o�
_vbf~����t֡�x3�qoy��g� 8|j��aLe���%���v����-li��naDcu���J�#�e�YӉ���]��NKd�$puB�y������������f�j���}\3'a|e���D�6P�m�몱����:2,�έ���X��ͱ¥��������g��ͽ��*=0C��L���驃"�ɮZoN�]�0n��'^��h���y|��'���O���*��Y��vC��q�:���j@��R3s�3�Ar�Bc�麈iS|�'�2Y�P+�
�p�1:7o$
�������[�ڳ
��T\ �t����<�Tն�}uC�$)�`BAs� [...]
+y
+��.��F���U��o�g��w�6F���T�-~�M��ɣG���-��L�塗�k��,�G��;���džijGK��G䒛�<J\����
�#wh��ڵ)]�g�y��,�7R���O��m@�u�n��7�i
�O6��ئk�U������
g�q�n'=}>�A8AQ�8dO�l_&XW?3������Ҏ��Ŭ+B��+jS:W�@�W\��{��{��
3���ש#
o������6�U����M��U��
��*N�O=3[�S�b)��VIͬn�
%���V��/
*��b����ek'N+
��Y��/��vq��Q��z�~ֽ�
���<��h{3wAx�j����B�z�Z�2�KR�U|�R,�ڗr9�S��u �%���n���8�W}��ɣ8��XѮ�d{�:�lw9��p��V��b���nUK��WT�����_,�?pdc7^�sJ��Dp�
~�<l���QrsU9p�S����J7o	��Þp{���Cr�
c8�S(N�-�)˳KV9�	�߷��1����\�G
�<"�
�%���0ߺQ�|��g����_X\��z\�þfGa{~rK��&j��Q
�=~�6���L;�R{�O�>7��N�������^`O`�Lƪ�qҢ;W��f��
L�lR���J>�fA>{�����_����i�<e��i�H�K�>�o���֭X��_̆��z܃a�˭�Iە�}���pb=����n�q�
:Ӷ�O�n&
f
�٤��˕}�8�;��\g
�9�4��e���i�g��[s7�f�`�9W�a��VPRQ��%P�3~W6�������w����4�`5+j��Z��������ћ���T��}q�\�s�F��Ӣ����s]�>7����0A�d@��S��]JGv/Ts
��p ��rXԓ�h��lv���u�dŗ=��.믅tV�6�|Vk��B{g������ZY��6�̬q/�oW���<ޟ(��L��ځ�Ȕ7�f���G�揱���͝����[���N*��wsR
+�n�ك6������
+��[r�*�ɢB�M����˷�<��!e�7���ޖ&�X�M��_��;��&�AP�͞d6%X+ք �K��-.���,,'�ޡ�e�PWu+P�c��ԥ�0{w�Y1������$�J��旳��nW
�4�Ƌ��H{G�$暥���?Ba�>�����>v��q\���M�b��>������Qq� �
�c��&6���,�(��7�m��]�>�
+Wm��m��=�
^V�Pn
Ȯt���E�\|Y�N�#�����^bʿ"�H$i�J�^�����>�>[��[��+W.OH��l�]�
v�p�T�
G2S�+�vL��P����M[٪�
`�nz;=W�tR�9ii�7��Bw.�X�9�*g��G�q]��љ����o�|�.�i
��NA��쥸�nIpe9ҰLv�
[[g�,
��^-�
�H�~�L~�A��7i���r�ވ�oJu��g�a'k
|G��<
+Vʯ��sJ�3Sh��Ϝyگ4J�w�ґ���s�,X
��Oߪ�;7��ҕ>W��S��o6�{'U[{Ko��f_�q�O#��kU�Թ���
�u�B�8�蔪���2���S�u'��L�^�
�17���~G4�?�ӹm�~������*���٩ue2�զ�	Ȏu�e�
y
�i�-�y	]f�7nj_W�@����x�a��i��1�
]�T|���S��d�?0iLi�E��v�J�	��4�I�7�E��.jz�	9�Q�<ĝ�u�n�Ƶ�]d����eH_���rTn�׏�|	v�,������y�>�+�nA�M�cjH�luN�3�
�
�7�'nSd�H�]�z�"Q��>i.�x�t �°�ͧ�&6�#7
�
p���q|o��
#��}+zr���k�:[����`�t�Hñ����W��d˺*�J-�Q~q՝[�[Aˡ4%��G�F���̹�
�Ÿb���D!����O
�
/v�(��pK�F��>�V�3����(��U�gv���G6�V/�/�L�y
�����Sc��尒�W-��VK2�O�k�k^�n�G�Z	�f�ayݫR:	
'
|ZE��]Tl��a�Nk���J
#޷
Z+dn(C��n7d2
?cdx#�#�3A����F$;�DG�_��	�\C�]�ѩ>5�Dv�X-��Z��
�m���E�p�¼1_�h�ܩ�$s�oxJ����� �u��U�;Y�3���ٗ�ՌOރ
�E�ȩ�
!!WZ&X��M���D����`�6k���4Lw��z_ D�"�e6i����n`_�n&�&s�_߮��V;�uVr�n��}�f?
z�|�Ym`���#�c��8�xN�x��2���B�q͆ۙ��`T���=N?�� ݓ�Eڸ�8
��2_0��E9U�&�Tf��A	]n��a���
�G�	�Ǚ(A�
�KA&�m31j߼�v��
�������%��rfAm>w�,&�n.�3{�;�qJL�����鰓~ŋ2d��r�A�j
+��}�0m@
;��5 F�[�E㬔`� b�v 1%��l>���N�|�fr]�'
��jZE4�Y��
�(����_i��,mf��/T�r����
i�9��g]�:��j�|AɇUM��L#@��@
�y��� y,P	� Ov-�{�U�
+ȑ� rL��l
+ at 6(<A���_69�;
�W2W���D������R2y�Y�P�P�&p�-d�B�p�iz��d�B�YTB�j �|��DG	�n��0Ao���,��3
�z�+@3P3A'yQF{Ee@��u@��;@�N�Fy+�e����a?U���{���k�g�Z����V9(�#�t�zN���z�[&Z��p���C�o
3�w��}N�����1a:�.A|��	ffP	f*`�R0�i��B��Lx����V�ud F�_3�7��������X�B~�/�}}�͚Y��
W` ���F3����┪"��@� 
>XN���[��|�
�\ 'J�n
+p��<���0W�}���p*y]�LN��S�ϸ�pX;�7�^�yM/e	w��ޖA�Im���3�xJma�y֘\��#hW�2
����
R�y<k�o7����������-�$P��j,�;��ǟ,d�{�O��F���tv�n� p �v��N����a�ծ�ȭbv����X�aq��w�Q��ZF����xa�7�Oޅ c) �z�uj�������?ܯ��
) vi������+ԁd/@*ZG 50,�:$�
)�@���,)t| U��V�>�/W(_�.�}�%Ғ����f3FCΦ�j��3���?�����/�Gz�G��
+��׾�����e���D�hT(4O�@��l��>P��P�8k�
�E��QZ�9������v���
��ti�Q���7��w��X[V��_�
�	������&�!P{�
+h(~��m�+
h���}>ړ; 
%h�c�j����8tB�q�~�ϯ&�u�~�~�����MF�f�~�e��
���:(�Q�]�-��[�0�~�/��oP���?A����9>�W,4җ�m&^�N�y� 1���뛂��j�o/����׷�?
�����0ۯ#��֋=������Zk���ߗ�����`�M֢�L��O{���$

��d��4�1�����׷�t7��
f��u;�>��o��wp����=��/��W
+�����ݬ���:[�pYr~�\�z��)g�WK
��0ٽ��b��Q�혧[$�.��������R��ro�����"$��<fr���o��~��Ӂ
+��8g�;��_��k]��Cc�J���PѾ]���zj�K���T�^_��]~�3[$ ��F�)K?��}�`�КǤ��
�W���1
����*��zTz����0\�*pw?�8���Y>�O
�[V�ڲ�=���}s�]��`������K�O�
+C��ӿ�P�/�T�?����K�6���p�X��s���Ԉ
K���QȁO0L�T#�~�H���絞r��?p���;]���:���@�N�m����E��hYQ������l�n1gy
���2�o��M�՞>����Փ1��63
4���#�~���gJX
n
+�Ǽ���!%D���]��O:�]��9|�FF�)v�c3�Upjm�\����9.�O%����
A��*���|#�N?�h�{k@�P�����װ�/�*V����
]�雓�
.-��F���
�y��\{�[��M빈\�v�#�J�R�n��\#�
Ċ2�]e�@�7i�0a�X;έ�,=�T�-�{��i>��'竕}{ѯ���
�l��S��^�/~�\|�W�
��a�G���{�|����������ƽ�C~�Kװ��]�J5��P�%��̫9�%�VmY��5r_�V7~Ш2� ��٠�W�{rɇ�jQ�n��
+�O�����^eǤ�Nq܈{E[覊ȅ(�_lQQ���J1
1��:ŭڞ
+}*�%�B��'5�rm%&�m��s��*��R��ݫ�K�t�ﱲ�<ѥ8w����$��\�9��#����@k�Z��i��|���͹U��΅M�L<#~`s?"J�oSk��n�)h�KI���e
��-w��Po�
�n*94F�m�
+�Q�kC��)�tK�a��n��;G�8��M֕E[�<��$H�8��X�ㄴ���+l�[���O��c
+M��oA�^�f?V�6W~���6zf�2rt{n��b*����٠̎~�����zV���V�٦t�1�g ����Y
���
:��i����Zy՞E=��B=7\����h���?�ϯ|6��s���4�f�SL��Fί挔0/��3Ԧ�9Պ��ECK&��.oS-�ŹJL.@%�DF%v
�ݚ��ۨ�
�Z�>���u`���8�T���\28g�
��9X5�����Sͷ�
?ww휶�
�>u���e����A/�Ż65ŷ椝��N��Z榒J�R�R��5�I��ن�o�<?I�dz���rsT���M�`��h{��z�yŵ��5��GG�5
+Vn��WgR.ϭ�=�2���1^'�1R�wY����攱H�H���eO���Z^)�^m�0���{��k׌|bIFn>˪t͍
)&�HR����ؗh�gQx/���>߯�!Z���֨��:�U�۰

��X�H�R
a�,A`r/��,�X:�uϋ���7�Z�ؖ�������F���V�?o�r�݌e��XJ�s�bW�}�O���?�hX�$IJ�_BZ�f�$u~�������Ft�3]J��)��c�@уq{Y��[r1����v�-��+qG�]d�}�
[^��t'����V]3�wqS���np�,�N�.>y5�'�/�

�tw%���QH7�'?�
o�<77OW��:��.#v�
�,��I�&�RbiJ�'�Z٤������M)�n�
��ϬZ��!n�
o���z�
+���ͽ)���ӝ�p������{\�A�W
+а"��[�拙m��
�}n�d�\)�n9�/�js��j]�XZ�j���T�����,w�����nϡ��iC7�d��o����g��i���f��
�Y���Uj�
���m��U����3:�	;�H�ؐ/Q%/��-��lD�GY.ϕ��b��V�B���V�ҵ�ٱ�%S�'����NKO������.�إ"M�P
+zܓ�e%;��Mv�pIޯ��
J!�w�n�Q�6��T������ԩU*�|�H[Y��R���ф�ʼ_�Xz(�%�Ǫ�����>~�]�^`
Z��>��M#ע%P����S�uzOE�� � CvfO��K�M��wL�і��
���W
���& ��$�s�E�ȫSBs�V�\9��
��W
�u��`K�n(E"�[�.zIs�J �O<Ǿ�;�����N�O�H�%g����Ρ�ʮ��_
Y8 ;w�M��Ҙx;�51�W"Φ	h8��Epd�
�Y �0Wܧ0
���M0�0{b����jS���as�O�ˎ׸��X�˾J�����	�R������Zw���bO
�H��,&
V�
+��2i�u�xo1��˄�-�t�G�x�
q�,.�
59cn�0\��?0�|�
�*�̖>�3޾�ʰ���a��a�;�̖�
(����e�7�7���[;�AX(Qu*�SΒ�!����[c��>���H�f��Rb��I��;�0�R����g�L�Kzs��*�ǝ&���=�����mY�e�R�a�w
9L�8�CD�;��+�	�"L�[q�����FD�x bZ�G�X[5M�?kP�iP�gT\N�i��-@�op�1+i�ב��.�'|9���=�dn��b�"��h)g�����ϒ�
W�J�^��TG��%X�1F��E-��(����"����U5ݡ��.P���/�C�
wim���;(�H���&�;�E��a�o��*q�+rY��
n�W^�ޤ�Y����cSzD=���8w
��1	i��_ΡG�A.�Ձ���$�;��0���5�&�+���)G�NY=��Ԫ��{ ��� ��5�t�E��L��kh��_r�/x��J
���
�nʕ�(�ִ����9{�W�`���M��LrO�*�W
9C��R�����Z��]
�ޡ���n9�Io|0�"]�c�4A�p�I'�� '�b�[�[rp8U� �k )0� {l?�>�q~5
���Q�^����ekh����n
�R1���D����`s�m}E����6�z�H�E������R(���|;�������0�5H�X��o	� X:
�̰
�
����8��w
�_�g�o�p�j&p���η�SՀ�Mi6�gEA�w�t�|Ҁ+uU6��=�����p�� m<�&�tr�t~<��~��t
6 
�M��:�p�	�]@
+�) ��>��
H��

@�j��R�9 �Y
+�H9�����┡����ƚ<��sS;���{Uq\V�WV��d� ~��Lv��Kr��	!N��j��ޛ� 5��	F
��u���������	�7@�sH�� ��a'xĀr�-�J
+�<mJ=@�rP�FI�0~�����N{�Q�v�[7j�G�i�F��JrW9	�R�d_XCI�N��-��u��}���R�W�M0%�N�����C 
��`RH5A �k���z{+z:K��1�$?u�k�;�KW
+��x�^��Uk���$��u�:<����p���/��i;�}<��0�i䤰i��s� \'�
�.�
��n�� ؍e%�4;��;e���
d��'?
F{��w`�I �5�
�`J�{!����~�d��8��B�.d
2Υ{8���4�-.
�=h�s |F?}ܶɗ�+貍;��e
+�E|]g �
������.�g�
�L&��|�|8| �5� _�o������2���������P�f��H�x�!�~�a��n���ƛ���
���H��7��?r��
�Oz��U��- �)?�xģsbr ��*�|�q�� q3N^wO����C�:+?sU��)�Jj*2�8f�b��O�Vs�C��'��� >��Վ����n�?���Є�b�u�~Cx��p���:-�)=��/;�5�0Ȗr�6���;`N ;d�]�+7`�@�K��U�4�kq�(C��S-�m��z^7T�¿��
�g�ݶ���=������䄯x���~���
�P�
4��M����F�Mh��	����P�m
����fR���*�ߨ���O[�o6�7#6��ӂ�k�-�}R���bK��-����mL���*�{�Xė�$$+�
��s�^N��=���9�h�ׯu��8��!��
��QB���aZ��~���c����&7�:]^�|���a�|�����^�O|�>�� =J�%u�3Kn�(m佾>��wP�ն�E�7Σ1[���c����o(�'��
|���$����9P}�gn�b�]1oȜ7�0{f�C����8���]��1��63I쬗*�_mr�䈭��k����rqr^ۅ�J��1�>f����<9
�
i2���ͱ
�/��Ӧ~M�����V�u�~���/s��+����C��n@$�Rė�k��x/��[f!�'�\YO����I����N��Vn�tZ��y�hi�9	�C
�Cf1�|r5���-+}�)�,�՟��[�YKfk~�QV<+c�o�j�oQ�?q
��q!���Wu��`ɏh����i�X�&H���X���_�ɍz3ػ�c�T�o�k������ve��7�
4��@}�o��v���]#v3~1Z�^D��q�ٿ'�/�ǐ�<��\W�k�:�|��eF��ѯ�u�.�_���'/}p/ͺ�;7v
��1�_�jO9hV�
�����o�ؔ�F��6n�b��2�9z���Q<6CI��X|�S��n���Q�k��H���{���Ŗ�2�Em��ZE��y�����z��,6���i��<��O
+%}�(~��2�d�L<�wш��D��\��rpm�z��
��߲�$��4�u�uda�=�T{��g�k���n_e.�{�W�\s�)]G�^����>���5H�pޛ��_�
����V#�q����b���A������f��d=��4�T�^��(��y.���*t��n
�ʜ�R�O��S�a��W�P��#��BQ��ڝ��OcgP���c^��v�g���+��*j�f������x���
������a�nO��Fe ��3b^lT],���0L�w-L�p1�-+ʨ�qش�_ޫҵ�ٖTp:���;g�vL�ǕVD�7��g�4oc��l-Cְțl<ͮ��~�����"y��h��,�Si���yɩL!m<�Y�Y�D�Ɔ,wz&��
߼�ar^�<f��E��U��;*�H�w�f�wL��M�m�lqhU���"/�U�S�{s�-�L����0x����]�S"�bk�x�`�0h�����M�6��C��م'�e����3��:��_L\�E�x�T���l���N
+��޲N]��s��:� r
+�^��k
��9�E�o|֕��[j��J>��[�g<���辚
�;[}HNOz�[ܵ����L��y�T|唪z�)ԫ4�n���jF>�MK>"��

��?�|d�����qwغ֢]�`5ۧu�Q��D�=ʏ�Z��
���u_,��Y7s�� g�X;�{��é��k��:�b��o*a�gJu�N�d���C�>�oY����Q�Q��zd��Cq��l��Ai+j�{Zxū�𚼧�kZ;!�pt���S�_�f�P
��Z��]�����ۗ���^A�r�\g��u�����n�U���P����6��R��<�r�O��x�:�%TGR$�
�>	�b����:�A�~hrB^^��h*%g���ŌG�ҋ�^�
+��>7Kcǿ�k�u�&�}#�Sg�G�k��b���!�����p0̷Y�n at o(��Wg1ۨh�,qp���&�J�$�bg�sE�.Մw���A�-@�vď�`�[c��#v
p��@rX���
+4����3����x�Nd�\��x����6�Hf�<�h��`�7��C����� l��{
 �� u,4����^��+����'��/V��#N0#I�����`m����p3
�q.�59l_Ljv鷧,V[f��
�W��
�<��߳˴P�ԙ�NTx+���i���ao�����Z�i'�+�f(�J�򺘿
��x�ٛ�x���辙���R�����V���y��Ӝ[�Y�u��4�K�e�ټ�%���
[ME���ִ�Y]�N���
+���>��L<�ʁ�!�腹&�<��b������K���p�l�ٹ�m/�Ү�ew�mI�

��c�X�3��Vv[�,�]�
+�˔bW�d����e�{���D
�F��E��|��_Q@��.ٮ�3R�KG�y[���T�6,�ó��c�M��M3�:�
�0[|xOoە��Kf�[{�����.V����z��ò��y�u������S�8n��hM3������ǩV
����d�7SH�t�/q��U���'G,e�&�%vx�XaSiGbN����i:D�|�B�����%��e�:C��C��m�U���
�D�E.ݨ
b�ܯ1�S�Ҝ%�\� w?�VM���p;
ā�Z\y�
+t��&�kcD_�	"w1Y"5�e|d

�B66�6
�sr�!�MWh٣�(�Fxf��
���>m,~`����Hc�/#{6;�0v}�Et�u��1��IjRE��!K7
R�B^2�TP��§�m{�Ĵ?.�����b
!	HP
Q2Ɋ�>(�
�G�@U���3Q�:(e6�G��=�u0ӭ-��{�">�G�r��S
4�Pc簌�R��cEX�!
�rk��+mZ!��#�*�
Vc����e�|Ta�p��6��J�vtW@�M�9�U��I
+�&�����
�D�3ol���,�ߩ9�oT
D�u��~'�

�,WGgX�I�t��g�j V�g�6��������A=8�@O�^��(�	��؟Iᄋ_q�)��_���U�(p����/%����� 
�q��ƣ[�j�.u]�

9�[
�nqC:�M��7e�o��n��l���1��13(�[�6P����T��vA��� 
+��M=P4�V��
L����V0�ȑ'��^l��_�y�L0��:@PVU+;aVA,�'ʼnX/�X:/f���u��
tH��P��SPn����RS#-m��>UӼ
t
:��	B �)�'ع �� ��7��e	������5��n٠n�����AR�&�ȩ>���W�7�!��!i�3�<ՆGt|��]
��W,+���t7+���4a�s(� 
J|����i���tc�������S�w�Պd�EZ���s0o�X�������
T/���β�#��
x���=�/��(d;�8-,����k���� Īn�E΋��~v�"���"��[
��Yx;�&�M��+�3�
����J�ܯ� P
�a���ঐx��'�Wrs�3��Y�Č;~�%*��~������G澭��K��m%�5���z3�)^n�Q�Y�V`�� K�4@�
)��b�B,g6 C�� 'M 1"�� q�I�. �m$�m@{@8K
F����B A�z�L����?����5��;�@��x!k���@�U�~j�3ᶢ*��6ܝ��m'� � �?@;A������h�1?^@>�e���G���ǡ
ȓ\����jt��2N>d=L^�
 ����U��m1�/0��
����bi���l/�
endstream
endobj
224 0 obj
<</Length 52674>>stream
+���:��2?�_��O���~�m���K
�e4H���	���9�+�C�
h�@�`	�
@+�eM��ԟ�`,�4P>�(ua4@��ŚVh�rq��ٗ���;�U/�nMrb-�I�7Oΰz=)�~��<�1`��O��s��g��oqÏ�|gg���M��`y,#g�E�����:,Z��� 
�"`��!`6P0�M0iWF{9�0'�M�کY�e[�+?0w�e�L�0���
����uO�?
+�����;W.	j/�
f0�^x4����8��ƀ�+7�����Z�S���o��g��,����01ʦ�����DM^����!����Z7��2 �'��+���o��dž�t���a�#�.�Bx�6E�� y�b�OQV4 f��
~"�N�G�o�^��YF��ua�TRl�/p[֧-smc͕)�cV$R
�C����G6�Um;���D�~<�ܯ�JN�\�}���C . �F4�/�
��7�ͅ���, ��%�����A��L�c�c"�:.�H
I�?]�Ru�N�� �n��m��l���~ͷ[���n�ӪLM�c��P��̷Wk �
E@�ЈקW�3 ���-"�[`��m��/��z}����կ��O������v/��^�uƢ��9p�e)r�|ɹ�R��L��|��O���(���!�o�AY/��ɰ_M�׺�i=�C������W^������
r��uF��|��g&�NN��cy
S���j�e������W7��7 [...]
+��t(os�w�͵������Z
h�l�u�z��\���xP��pM�Uo�,ysb]dy�L�_�jW?7��u��pf�z�,�VkSVJ�ޓ��?(�f(*qp��n�<���5��UY4eӀ���nc�ݛU���m�T��=��&T�*s��_/$ur�4,��y�;%�y��;�F���u�ZWcb
-߼��F �X.!~W+�A>��Ƕ&֑yN�\"���k�d&��{ͩn�B�ʜ
���-4˧N�]�֨t

��c2?�FrKv�
�@�I�8nح"rv��,��U�����iL7���ɧ��}2M���Kk��f�
g��T;�q���t[�ԣce�l\+���*KO*�9/SRS1�v��u޳Pp�@q�U����e���lc��oU�H���苂�Oo�~�a� Gz�4�
�a��J�B�21�|1o��ƨ:�zZ�$�
�G�����gy��ז�GT�E/Y�����vC��
��Qq\>̊�漶]����#�X	|�8>�OEas�C1�ωL�4Ҥ��$ˡ�m��c�mC����{������j'+�q|�k�v��'ݯ���i�gQj��7���{�x���ۓ�+�Q���[���kc�N�"�M���k�ɿ�(4zy9�����ؘ�T��6��hg����S7�G2�&Bj�U�TW�T�y�J>7Q(�p�n&-6�9�0��2Ay�e��f�4�Zw�Q�h���?pS���o����z�;{v)�6
�yMNN�Us�-�F�D��{Mu�a+��g�-�M
9�m�͚}�{S�����f98f������;��~Ǘ�3�p�pU��[����(#��mET_�q��ꋁl+^'���-�!T�{�^U��*�~pM	���Q��M3wGC�և�J��i�Sݥ(*+9�)T;��n�R1�.��Pn7�@���9������mAm�vپ
+�k/-��iNH����P���ڒ�ܥ4W�~���sj���s�Le���0/�N2���'��4�p5n��˚�:;�13�X����xd��!��]����)!���.����VG��T5]����p/	�
�	)m�#$��
�`�M��+���](�-=:�.�
�F<�
�z�>�>�'8O�����lD

w�7N���1"��U�xCKya~/�27ϋ[�3Z}Ws3��ݽQL�D
^�+"�N'��W�/�!���P�s0>ǡ�|�]TjU�L��̺}�35�X0�t���Fe
�<�IT��-S���+���h�ϓW9ץ��=��J0�8
ⷚG�
@C��61/Wb=C��j�������k�1�V49��dr��
+�H�Kq�KN�����$��:)��
ez�\��F�Z��2�Q'҉��u:��6�'c��"�ŝ'�r�!�{���;�3>p��_��0���v����k_���K�����E9��
X~&��K���GO�aNjSYFH#Ė_��a�Ӌn<)��>3T�%��d#�55KƊo��cV&
s�ItK��0�ц ��M;b�4J[�ݜ�XFv�
e,c5��=z
��5�ۭ����jc���tn{�����.���cn #��y�٦8(��m��33f���B�� ���M��Dt;�L�-MnZ" ����\qp�5n�i
�b�>��2�����N��h�Ϭ�b��r�.C�>S?��}���~��Ɔ��=�T�O�(
�&_\���B�}]si�2U7>�W��yy�p�}9�-�,�Hu��	c�>�!&��t����\�1��b�b��b�)^@�
����A�Y
��L�Z�dh��!�}d ��"\��B�*�#�a��Ŀ_"��D�0���X�f��pT��;J<�b:^�޾ԑ�&_���`���I]�. r���M��
C���oi%8ͬ^��T������
��2��R��'�QNp�e�&^�a�B�K�Z�#���/�}�,���V�� ����5����з~]��u/ً���o}��l�þ7��c��i���.��|
�V��D��햩eV���c��TG�n�+ȋy�G 	�{g���Ȫ5�^�����y�P�$"b̡�	�; v5�$*�
+;�I��q��k���5Y�A����-
1���%��E��ve��L��jc�[��h2$�hgi���
݉�W��|;
+��u�Ͽ���4'R�-W�d`p�&>�Z�8m(���	g�q 
S?8�
�'���7���x�2�Z��Z�尫�Q��p0�p.�]���ɫ7@�l�����q0N b��	"#��,ѭ�<u�w�o��o���y

z� �<n�޼�i�����J2
5�M[�.i�|{x7�I�d)~�D�,���h�D�D�v�;���,2��𳏸M��G&
�٤
�օ�o � b�2l� YLM�@zn
��dNUGoqP�����|6�F���J�2��4�X�+
[2J�����j-�6�.-"6
�W�8*
7r9Me/�3
PB	�1/P�aC�� .���q �
�R�'+�P�p	(�A
+����Xg��,��â�`�_p���2��(�͆�|�|���T��w�|��|<E�So�I��7����f�,�D��1q��E��q��^ 
4��MP�T
Pr
�d�a����WY���`��Gj�1	S�D��|\uJnZ�����z���4\�����,Q[��z�aN�RkЀ��
�bVE��
b[�<'�����q���;��8>J�\.T���u�ė ������۷��
m��+:���
v�-�SN�%�W�ī�#
+�cR�\^�����%�Y&��1��I�FrSWl��	��aـ���[0`q��!.�XQ�l ��F=�$��/�:`F�0-����~�%>%�~Ӏ���b<W��z��]��I������0�����c�:^@|DIn����h��1ܮ�������d��
�R��z���m�
]/�/ �/a�
x~����9��%�.�Ӏ�>`F�&[�bnÉ��X�6dÛ
��H��K@@:��{��/M��
� �U�W��
��|4��j�� ?����:�w��)�E��>�����K�-�
\�U�Ga�
N��Ʀ�­R7�
&���!��.��y9u6?8�N-'�OZ@��
 �M �ۭ��}�
����
�k
Ѻ1&)��ĂB�@L�>ݢ�Qz
'��<��8 at xɕ`��ϜF����>3���5�|��Iץ�s~~KS�Y��n��[&����
zp�
���o��'��ώo��/� ��
ȩr�-9(��
�5�<�����
�>/ �N���

��0���w�Ɩ��؇W~��[��0�
7oF
+eh�g������ߧv�K�����|��~���_/�?4]^Ŀ�l�e�D�X �&Ӄ؜@���A�]��:�%Ht�4HT� $��.���}�IM
��h*j��y�t�fy+���B�� ̣��b�'u����+��_��_��7�6[5���|���:�1mt@7�&��9�'�?)ͺ<Ӏ��@O
�N�߮M��

+�Յ�*��96q�+�I�
�T�?�
��~�ܜ���y�?
+���oh��r{1��B�7`i
	X� �����%����U�&����E��m��������
g�G��L4^��>�]��,u��1�,vJک�.YǓ[s�ul
��K�`.Y8��w��f7�/�v�Ͻ����o���;�?��_��!�~��tg��mLǩk~�/\�/�*O����H�uh|o�e���]Ħ��[n�
+�lf�y�^Z�Ӛ�m�+q4/c�H.ND�_K�97���,y�4��G�1���g���A�6���C�S��ż���J�Vdzبގ����?r
�{"�%⓰�$#yc���S�5oq�3�J�;}W��4}�
+S�ɔ~�I�����7��P�Bܚ7y;؇�u�lWD_;�}K������
�:k�a]���������x<٣ٷL�����R���#�f�
5����r��w�Y��1}
b��]���Zd�Z�=�4�]��t����I��N{�^zmb|-�|�k5�Av��7�����
]�u9���Tƪ^��ɯu�e���b^{��N��!���(djS�T_�T��y����w�n��=P�|<3l.�i3����&,l�6w��r�\W��g��U��ա��s*���ݮ
<*_A�z�c��h
�ȗ�AiY�ĥPW���<�������'�xM�jh~��?��6џ�ͥW��K�X�Z=��Ֆ�������	*׉*�Ċ���(
���r��I�;��b��O�9{���`�)�,������k#��7f��UW��~������
+
��<]�_��G�^9��vǸk
O)_�
Q|E>`�P�R�M%��S^c=��v�
�z5�~�-Xh>�w� �
�S�
+�Nn\ZOr��{�����첹�����e6�p��\��H�����T\�c�d�}=ua;��lr�x��V����Ĵ4(��8
���(���i��tW~7������)���[
]�9��ެ�#=_���em"f��\�����_ ��i��>��vZ'g�T+���c��n�:���;N�����n��Sl��T�`t2q�kl��w�6��,q�oX���Xe��VrUο'�rn
���Kx=����̦��g��k����M |�>
�CZ��s�:U?xʢM��i*��bҕ�F=�s��5k��M-?��[���0�#�c���
bq�bT���n��0��]��5�:�d��Tܭ��yު�Y��ʙ���R�0!�3��N���l�:n�S�
+�n�UN�׭ZrP���~г��rl��ܚ5�[����f��/c3�I#ʴ�~z���p�:εz�4]�4]���ؚ­�l���ӞEe�~Z&�x�Ա($��P
;�o��
e��L�~��z���c6���bQ�Ǖ�f����[��I��v&kr�T���
E#JWc}?�6�����|>�t��V���ZROt�%�hzNy_�-ŵ�[�M�
+������\���jή���\!g	�xH�k�;��s3�mfE���M�d:��m��3�rS!�MO#���c��	ZݧeMg]����j�L�7�����P��)��P�2���Mwi�@X�?W
�i2�X$�
���(�?�}��/�X��7��SM���2{L�ؐXޭ�p�wܺdž?�����gz�)
B;�ވz�tA��H��h�8%Cu%[�49��,��>2Ҽ��R*�jQ�7�	ۛpd�B�GZ�y5lG?8w�)���8g�8�k<
�b
������R!
g��-��76�O��>[n�_{mr�x�-�1�� ��=�z\�\u�����Xs��k�bq�Že���MA.�._}�^��k\!�����{�����i̫/�L
d�F��������2�R��Z�^P�?r�^�/��
C���Rh�V�S���L��kM)sV5�P�(��H[?���:
+&q��ĝ�	)�]*)�k*�3�C���ɐ��M
+~��W�
&��+z4

t6���t��Q��ѥh�P�릩��Q���w��ۺa-9+f��Z�*֋�Tp�"�
i��ъ�y
+�W6&��P	`��皑g��],��^�WΔ�[�~

٤ֻ0������/�I��A�J�����?�p���v�]�d�
p$7Lf�M�����H<\�HƒĦ<.��vSi*e���������f����ho�.<�V�^9���c�� ԛD"��.���Go!n��<\3�^1������{���n
@�RG��Q\��M�&�Q/Or�[����3!�!��ǝuO8��H�L<�����5�4��S���(s}8���	땕p�fz����}s���ڃ��D�*��
�/��>li�SW��V�rxߒa�=Cd^$/Vpb�X
D4gMB*d�OH�s���O��G�sh�!�S�~���[#�Goͪ��W��5��� ����dm�	^���)�)zr���*Z\�Դnv��W"�6%�ɲ|��^�p��)f.���1]�}�!���DH3���,�W
W�]��#5�5J�2fH��ޞ�j�1y�]
I�
+�P����|U�8��Vj�Z�f`�Ћ�t2�(�J��@�tj4�ګ�53�
�S�(*�
H�1�����4��I����#~\�jr�Y���	�0�k��f4j
z7�j�py���:O�Ҕ6 ��! �Y:��hq\|W��p�xD5�����������YZ��L���v�j��K�:�4�E��
+z�)���bTpbND�W�a�=�C���M��#�]�H�C��i0Z���;I@ԧ^a�;�0aC	��jY���U@(ܗ���U2 �֪�k�Q�C�hn���
پ�i99!��*�-��L�'����Jr�����箙`ȪK��������>f�	q��xT�����@ �4Y��
+�3��(�!�@\� �	�Hb�o bW����:J�}x�|ى�Q��&Y�|���>����t�J��*�繋6�S�����Y6s*�Tq�ф��/�]8ߑ
c_9�_ �~}RɎ�ȓS	�]܂(�!5@��	�
ޯ����@6�. ��/b
@z��WY��ֲW:�V;�j�g�i�U�'�cn�{3
fS��[�qI̖�XJ����Nr�����}�@Qd�|jU|jX�j4Q�)	��TIP!�i�sP�ӆ�|�:�r���CT~��)�r����,��tb�,o���x{x�_p���=�nҙ����I�9��۶0�ӾΒ��O�_Y���n]B]y�-��7���
KA�,���BF����\��:p+������t&P�UK���
��
+4���~_����(k��5���>����8���݃L,J�Yl��	��
j�΄�.9*`�
�
�:� �YI�_S�G��ڂ�R"
+ N
�T�S��0~�L���T��o�{�	A0D��
�(5��U�ƳY��;c�^i���Yu�{/���YY�g
�GS���Ds�	1T
+\�%#
p���څ�~{:`O�� �MC̲�]�}���
+D���e�Q.�ƈ�q�{G��lE<6�� �«�����
\t�`x=t��މ�;T:դ4����'�2���=3|';%����A*|��~��`�i�
Y%�L>4��<\���&�%y�> ^0�SC� ��G��7�ɬ-�mV
�u0�

�+����_��۬�*��b�
/��N�,�s�Y��#
���<�.lG9�˨��}�F��I>V?��&�k��w�'
�s��Z�Tv���0^S at h= TZ�`������^���E}׶L'*��
wć��S��4O��!��?ݿ�Jo�n�7�&:x3 
�; ��W �]
b� i䀴�������J�lYR��R�)<7sZr�Oψ�غ�������:�-v�|rd�콱��?�%;��?˷}�����+��e��#��Pn�qL�/�	"1	 ��
Ա�����
����&�p�L��:9�b��Ts\a=���RX^���� �X�'�ᛖ�'�Ꮢ�G��������*��@��D�
�r� ���-��@�b3��H
+hu>,
+��Q��*v�p��|���Lx:�A����Pþu�>��k-���������̆�H�����T,���3+��ټc�
�>9��v��}z�~j��n���J�7��[��j���0����E����u&tW���^���t����~������)�ŏڸK��R<���g�������-����!�mWQR~���
����׺�?�O��mˠ�N2���&\�蠞7��>)�^�p�T�}��w�Z�f�Bm��"�5�]�VXt���b�T��ɢN/��k��S���ˬ���4}#���N��?���<�t��6o�/��y��ՏO���ڏ7�\:�������y�ߎE���_�Ӄ�B��٣������hC��.�%cz�ڣ�R#n"{È�
�}�~Jf���v��{-���v�ɹ��QD�E����[N�����?�j�&���W�6�+�~��̥8��h�֔�xfэQ�ݡ8=�����f�3��}���ዶ�O�,k�꠽	���	њe'L�����ҿ�M�j�{)��	�Q��I� [...]
����v��uTҝ��f$߫��DwC���a�&N+���yhѷC�7C�P7�׳cD����0~��9}���Mӹ6�^�XB��0�x��v�[���1U���]�x���%���
�f>�d�D��^T�z����o�YA
��ٶD��(�2��f�)m.[M���ސ�@�����'����f���3ͬz]M���cwi$��W
y��F�������I`h�l�*H~�H
i�$�
+2�rq�~�[�O��*(��(�ů�Jc.�<.׎ܚ�O;/-!ۓ�L�aK}X<?����T���[�xMt��pd�U5OT\-R�q+2e�ꦥYo���Ե,.�t[
��L�̧g!
+L��oI>.gb>���tN���rp%~FР�x=�n�S�2Y��R��C;Q8��^k�k^2�I	��P�^�!�����͎������N�l�_%�wag$ʘ6��.�(Dӹ*H1p�CB���0�r��~��𻟽�K��.��<G���y����<�R|�I%gA��5{�0ʋ�L(��!VH�����~^����Z�5�=-0�	�%
q��4_;[qU���m8\
Ҷ���텯ڷ'w���
+4g�ȶ�E���I�y�p��
+�=���ܒ�t
���7*�����Sr!�
�3EQe+ߔ��L5�O�2g���JmI�޽�WZ����u2�"��g��OK�W�#�-O[��X"8�y���~����s�mo�-��#�{��L�WC�ҡ���"�x$�T��STu^'T���f�$�e_�s'�@�ݘ.81I%����

f��mmG�H������ۚ����7LN�W��
i]?U��[�0i�COB��s�K1�GH��!�7�	5�tVT
��)jz����§2HdY�=�5b=³D)[�	�8��Jտ�/���Z;��j������+�<[o�繘�
����jAw�q�مB���>���x�'�%�fV�wNk��2)�ė�w�4K���B
����CI�Or�2%���(�k'�݋
���x^�+���+�
a'g2��?��t`і�ȣF�P��yfu��ڣ4�W��=]J�h#pN	1ό<�h��4��
{Y*������i+�������7�֑rq��S>S��%�ڵ��7�
c�"���艝�o�'M��~
+���j�
�����i0X�pK�:L��BA ���
s[�s�U��s�.
��[�ST漵����n�p4��\����(�&$�]����y�1y�$��p��OhOh�!v����斘��
��"�3XԪ�p����L�6�� �'�
��52����X�� X�zB\4�U�L՝���@S^Ѩ��_p	ip�&VCR��<���6��
}������W�W�N�Ʋ���AS��؁���`���u�<{��K�H����a$^A�
+Q�=g<�^�pj �6��=��ާ^��.�9�p>
 ���H��Ǔ��OB>�J���խ��o#<��*k��s��Sm5#�%i˕m�U9f����
:����
^�0�T�#}����z0xi6x��VD�;�[c�)�Qr >�#�� �3�
�9��{ �W� tP�7�鯲
SP.
�v���4����g���wڙ��U��7z'��Sgf_�Q�ᜓ(�� �~|8bצ�A�nm	��{�4
�4q�?C�ހ��O��q�"��!n@d�7 at x��(@
ǀP. ��WY�+cY��A�X�u�QFw��!8�'�f�k�4T��Y�%�^H9��F��vzF�
�h�Pw��t6���;@ʝ ��	�� $-�%�h��}�U����x� �T at b�����]��bq�J_e�
�N�x����|�g3�m���
V�D2|*��$�]����b��G
j�)j=�J����}���G at e�oF�!\%�w@����4�a �	@>Ri�y	��Db���� y�M at .�U@�&p�h.�u��l���u�����;
x�h�Yc���7��հub'K�i�w�N�0
�&N���=$�d� �߸�i? ��‡�4X��;
�
+BL���9��^���u3O���)@�:i@�rm@�g@���|P�n]j��i0]�o4˷�љ�,���
T��y+���
Kq$|_�����6��Q�C�i�K
+�8`<�e���2
DY���Ϟ
+�L�������
�� �5�A<��
/�=��q 
�3�	�k�S�O�>`�[
z�kc
�|Dw�ka$���r{�ݣ*�w�E�W{�K^�'�@lp�j�!� ��5�,
��
ģX!݇�m+(`�W���W}����=�� 3��a?��p�ѫ��<[��ͼ�b�R��/'��%D^�g��Fꆖ�e���y�z�4x���7��>�~
�{p3�\��!�%�Np=����U�g��Xp�

�U�e�-�L��D����;`�	9�Z�����e&%��v�

�M�����z{����\�QBj��O���+��Op�w��"�x}
+��-�� b��� �"����An�t{��G�>{��f����C��܎�u.[3��3�(+��f�[���l�+4?s�9~���_�����
O�v�
�3c 	�b|�i}r
6��J$٘��P W.��ޕ#��͔�f��tB�[�lYQC)���S�g6�
Nt���7�������ߐ�e6�7|T�O&�/~���P�[��m��1�|�������VJ at q�
P2���Iϲ��u��[��$�R;9J���#/q�������z�z�W*�����룎�Ij���
����Ð[y}̷����P�O�n��S� �9�ށ�F�G��Vz�9��t�ޭ�F3�s���d2]��%?��� �������W%����f6�Il��7�K��L��ns�0:�0f�OJ &���L�
+�q�����7�6���7A���Y�x3b�����
W{�ϥ��9p�O�������C��
�s�'W��n l�
Z9S����6�[j�&-N�����6D�-Eq�i�d�����r�'��5�7ވ��^�����&�
O"
��Q�
���%���:xp�'vp�.c��/N�S���h��6��m��aә��h26��	�CczD?F�̢�30�R:
(�������0�o㾷����ԓ��It�֢:�^����?ƛ�MV�6]*��jn�z��R=O�z�>�٩�h�6��Kfi�`_P����~]���5��g1��f����˝��i���5˳���s�PXվ2m#J��o���&����ѓ���ʡKe��g]
MO��n�-
�Fx"(K2�]�g��U�λy�s��j���
+�hf�j��ɶ�̯�Mn��6"~�l��
Z��];�Y�zm�v�|��A��� �/~�
+�t���W�����]�ZW/K���-�Uzů�7Z&'�;�g��~3�Yz�5��LnDlW��b+Y�'b�zmĹ�:z�����Jq�]�+�ި���]
纃2��N"��J�hs,n��gQ�JL[��SK�p
��Eu8��T�/�a]
0��_z�7
a��Q�W��]�oW�+�j^��ʻ׻����#��ѫ��WKbQ<�a�zpj筠n�R�k��-����p ������Ȼ�z�G�&G
rO�W�|v�Je��+\e6��
\���Oܷ����o�.ݛ!�����ww�+� ΓK!�
�}u9�fk\h9���a��
�~���9�.�{��W��6Pϗ�G�\6ԆRfӚh�u�8�̧O�D5���(�*\��c�Su���}ͫ_��|v�u�O��v��W�5�;c�4r�Jpj��1��]�y

y�~WɆ�]=�i���������Uޗy��
Wi
{�S����<���
9$��jtҕ��=�5�6q���o�z��a�[eM
�7�ͬ��������
����؎�g�z=7eҨu���
+�N���E��E��l�פ��dZG='e�z���\��
�Aɍ��މ�q�5l��u�Y#�}'}����{v2"����S����k�p�k��舘�뤶���Z߁��_��Z&�b;
Uk2�G�&�⎮

+����6�f������	��x�����$���8�E_/�Z��/ۈR��!����
��	�-i��PU�k���J�QⱯ�Nb~QM�P\����
�^j0�k1m!2��|i6U_t���hT�4��+
+�C�饑�t��+�ϭ�K-ee�d�N��ky6�C��p�h�� �t�K�����0e�c!�-���#/ueP[ڊ�]3��.Ȟ��Ҭ��H
Z�����,�T�6��-Da#�<w������Za[��֮7��x�'���T趛��,a52�+��噑��m�b��'l^�����I���Iy�G�U�<nFw�3�oi�m`���(q9
�b��&���l	���k2�_�E>!�M�;͹z�����I`[�R��,��Zv�`
oƆp2�h��՞Me`xx
����
-�w��Z�m_�6un�Fy�{��a���<n��Ҭ3_��Oa
+��(W�	U=�qP��	����є�t�³�#���f��ǵ]d
�֡�/C��JcXݠ�S���S��:S^U)�׶U�2�ᑖ��Y���
>n_���;Hߢ\��hڵ��J�kQM�*ٓ<yF+�����-��Da=���Z��s��ζf�k��-�=O��ğ�Pp��WD���CX�"G�Y���dm@�j�F�k��o�=!�;�<3v�1 [...]
W�\/�8�p�3�}���uR�
f�
��5�hs*�
v�n^��򄐬�2���p��Yx���5����� p�������k�ê��

������Z<�u疴|Μz��{󖽠+�q%,�i]X�K.�<Yܨ�-_
�C־�:4
���U���~�A��n�X��!Q�<pXq{|'��x�5&q����c�X�?V0�^����󎚠-!���#
O���H'��}�6�o at 9奖ԋ�L(��N��S�	ٷ�w�d�#?��ڪ��]����k�Ü�_
*��D�s*x���
+��k1\>x]��;V7k��殘�z(ڌjʨ��_��L���5� ]�9�ҫ
@����(�I��J�y4k�7!��.�
_�w߽��}
+��#k�|U��e�U�X[�D�e*��n��c
{L�+�I�騊
L�i*VC���F�#w����y��#��o�N�,H��9?�>@[�
@��3@;)�]&��=h
% *j<.
+nm;lc�7
��\ n;5=;�>��Xm�-�]PQ�����Z������~|�'AnF���'�V�V��h�:��?[`�>p��
�+���Ћ�/���
�SC��
^s��� 0Ҝ���A_;+&
5�[
�/�_pyϒ�]�ܜ��Y[Ҭ��[�|Yŀ��C�օ��M�iP�P�qjN�x��5�S�!z��C
`��j9��~��X� V�Q�� ��@�#�
2�
�'������Z�5��}`y6U)�|I��n�7Q��|�L����š��<��n��zb�

+�d	:��o(���o�H������P�u�L�j��� {�=�U�A�w '�D�\z+��]� \A�=YiÃ��d ��V ���sp\ؽ�+��rP��v^��b*L<=[{��t�U’�s�b
lj����
�|_8W)�
\g4��;��(��3+�	���! ���������F;A�`C6W�۴��|�j@<�!�	�yh|�����
|�x�~�hש�pp
+�l>��LZv���iW�R߬]�j�+�@G-�B�>�2�C�c�����{�#
+��
/n����
+}s
�Zv��`k��D=)@Lm at 4� b�D����P��N. r� �� �s�_��μv�F�@f;7�&�i�O=��UюVS���
�\)����[�g�ɅI	�śX��u�
(���m��d�d{q dy}��\���yb� �/��O܄4��|��%�H���F�Y��
��y��3��v1�
�]�;�\.Ӿ�����Hf���[-�DVir��֧�m�$���c�v��z��L���
��/�f�j^�*� D� T��*k��<�<�1������[��.�i�}H���r[��q��<�k�a�^�X)���J����	񐷷̜�
M� �
+�9H[X���0���~�ހ�^������'s���*�9�B!�J:H!�]@���oGp� ���ZJ� MI"�NA�8��~8�u���V֜%'�N,�!�L"(�W�Ԩ9�]��A��	��l�B�u�+�6}���8�r�o[�'ub��x��2`�g0҂�s�i/c�t����8O�*|�f
+�`қ
`�Q���?<}�
�M��3�N{޾`�˲��ؘ��E��y�ьRR
O�� �_88��ܡ�T�<���������9��
C��}8�� �!�9�n�C�N+o�vK`��5�xsz��������fb&�g�NB�z
�c���:
�	��bM� ���4@�;�a]���Q>�?�e�>��R��B���o(�M|�>.-_�9>�����-�����M����PxDF�XN+�-	Ȯ�ҕ,u����	�����e۾�
������	x(�@��k��
�]�b�O�ځ��?��#�9��
+D3� QZg��6?Oqبe&�z�(�׶0H���r���vH� e��_��I���ݿ�>�
2������I睧ocx��� .���1���ȣ8�qm �Ir�YJ�qfdYĻ���v
�-{�h0�p�)�~ �H���j��	n���g�ߙ
�QQ�"� �ɂ��/�_	�29�������
Tw ՘��jny�Z��u�J
�@[e��3l��D��Id��<�a �O嶿k���m�$5|}�2>
+�?3�G��oٲ߼�k
�����+[��g��� �a��0�����
+�mQ���!J�ّ���
��.�LoM�vDwB
Ф$rBR^f�Z‹�+
t����l�fM�Vl15�'�������k1�޿ƞF3��^�d?t5?�ֹA��k�C�BY��^e�
��0�
�dc�4���۲�پR����c��}��+�6^�I�`ӫ�0�q�[^���|5lߛ����Q�_=vr�+���t�2_�
��%7�����4�<���_;��?��������^���[����k?����^���wG��I����������~������ �D���@�]�
�.!\?w��A�C�YJS
��O�5�va��/|�!��/�j���4�J�x�c���Z/3�~{Q]��U)�={#�;�>�Pؕ�Dzhr�
T�?x�g�^-�x��ZJ��5]�+�8���ɧ[/%���Q3-Z��cqv�Þ
�ks��5�C^m��F��1�V��|���`��Eپ�_Qe���ru���鸯����|afZknîn�[$���}X�|ߌ8�m_۽�7�Q�Pת����?].]
+.��N�{��W�G2���������x���R�
���g?�y��*6�]�,IN�T��
+�'�mfp*�>�t��7l� *����E�֯jV��^=�y�\
��]{��aD+�3d���R%�v����L�&(f�q{
+2�?�f�\c�
w$/V-��C��
+���b��r����"��(E�G9�.��3
�K���:f��.�����u�����
��6�6�o�`8�.�c$���]B~�is�Rf�P���6���X��;�dF+y��u��S��Mj����VŸ
����3�E�G��RG�W�E��{���
-�q�{
��_������ʯ�,M��*�^_�lOdZ����>V�{ VĦ�Ў
l�Eeo�*����s��m�గ�]��7���lz���Ʀ�ϋ������R�����M	���	���z;�{�����N�8!
s�y���^k��X�,ɒ,Y	ORUM�3
Sߙ_�����7Vۚz��ȹ7�
{��s���5@����
�Ge�98^
��!P�J0H�+E��b���ln@����$�V�Ӯ�27]�������IƤ��,Z��p�5�W[38�]�г�[Ǡj;"�yjl'�$
�
�ǟ�"�1
��N}
_��">Di�P~��B���
��/�_(�P~��B���
��/�_(�P~���1Z�k������m���🊱_(�P~��B�>
qGUL;���t١�Y��
m���'��XՇ�4��r�M[�P��oc��/�_(�Pn�uM�L\(��$��5�D�}�
ڇ����l�o�����K6hY/�ӕ�zZ���B�>VL
�1�H���1�Y��%�W\�_(�P~��
��d�����{"�������#j�v���|{
���l.�@�eU�,�b����U��Ǵ�����WV����>
�LF�i�������4���
vV�g�����X>�����ex�N��k�����x�����a?��ve�%}�
+���od������/�_(�`(�����xA��x���w\�C�,�Η:��L*UH��-�Y�Y�R���&
�ƭH�c�R��J`
ǏAL�%��f�`mU�
@�i&��0�nX�׀
�
+~�Fe��ti�l���Z����<��= �
痻��Z��ͦM�����iAzL��l;��*�_��H�Z�B+l�%�T#��'Q�/�_(�
(�K�Z
�j|�N|�+�]��!���
a(�Pzk�x�(�NW
�뱔)���/{6��󂮮��1�������J��B�Wi�ۯ�j�Yv�}}��ێ�;����K��8y<
|s@�&ߤLL5�ٝp0��BS��QMq��_�����R�>ڇ��R,2C�U�_�����Ae������
�B
,$�VM�:O��ܕe�����
d���I�P~��>
��8�5��B���%��`X6](�L瓺��+q��|m���8�&V���s����\.��)m�`�1�B��K��
�����ȉV%����p��O�L��5�ɋo]�
��%�����Ÿ�r�
�u�F� q5
"7�����>1i�C�ז��
�q�P����/	f�gbW�@f�c��`�$�ɝ&\���V{0�
���vW���U��δ���/AӿP~��?�y��=��N�*
��(G���nm
�̿�nK��&�Y�Nv���.-����Y6���
������6RU�7�TR�Zy�d�n�x�
���^D���`�/!^,�ky~�h�R0ؒ�̹]�D�0vm�WΕ��?H�E='.�]�j;a�*�)��������\QD���7�B������v�����7:��y<�j[�4,V����ʹ6�ߝ+~����W�j�R^���t���8�3_5�s˫���V^(�Ja�� {
�<��+���y!��֡C�D�"(c�Fc
i
q]D
99R] Ai[�
]�p1�zB@Ģ� WPT+((�Y��۽��
�_�1b��/R866��|�j at T6�"�.�;��H�_���\����]�R��� ��5�
W�4=�RY����V~8&��rĜ�U�0>w��'�
+�4��EA��"i���8+��ɇ}}=�:��_������83�ԧ�ob��h��V.�"�]h"��+���eKSw�!�Y��\zc���
+?|Bl������ �i0���*�[#-�st�
3/��ޛ>�:D&f��^1�
+�Y�p���&Fa�@�6w�B�d��-�5B���6D�
��j��8��Y�J*qM���J�n:[?#>TZ���ţ?)B=B}�?�ʩDqR�
 ���9W
�Mj�$����j�{�ˡn�V���;����Ȯ���"ǝ`��ߓ�~��?��o�
+re2�Nx�)�t8�[�їk�
���%٦�	)^������|�os���|
�^?�Hv��\v,6R9`�]���4�|f�V9�@�&�Q����j���P�7^���U��>��^�2|U��q��]���T�t�bvZ�eQG��+V
4�J�sh�
+v��^�]����wɮ
%U���8���ҝ*_u&m\^�F<���QD�;�JW�U���(�R���K�
�l�E�ͦ3�n��裂>ٿ��B�1(��o��*
.�N�-��nu��+
+@�՝���I4Cj��PH�Ji�[RE���_߈V��$ݨ��
_.��~f{�GAe�|s�p1`h���r%h-o��@�Ը�/��2�K�*�Q��x���������і`��T
+[��B���
�\�k�U�Q�Tr����HIQ�H�+�w�,W���S��J�T�cj��2� �v{i\'`E~���(B�
%�=�T�A0����-k����GN�s8�
+e��cx~�T!��7v;�W2���}�:�
+"NA����a�d�HJ�ņ3i��T�ZxQ�B�
�*v�Qr��a��>'������@�s���#��81-
������I���\ݐ�	�7+Sl(vGh�
�6�����
����hV�
�A�%�Tr/w
���&-QT�c�T"P�4�9砊���`	�hj濨
 �8Ї��IO�#�I��K�)�zʭ[z��4FZ�Ք��P�kX^��B���m�|U�����4��
���:{x���6����.
,M��H�
7Xx��)I��
��k�A'ɉHOQ�
О%�d8�-mr3�n��
F6�g�ɹ��]J?I�>�l�/!Ut�'�K�j�n"�q��J����E�$�!��ES��;�!�DH�
ř�5�$��s�'��
��������Py
������}&
UV
A
�k�B
�J}�&�J�u�����Y䤴7Ŋ\aM�#E����K
���B]�
���TyRӖ
3GPv�l�k�8���z���~� 1�7u�+l��H_0�pV�x�Y��!�D���F�4�&9o�z�շf���K�������})= -�8����Ɓb�}�o����iS\�	�7�*�:�k�$�);[so7)���[n캮�E�����z
�
\�y�9R�z�F�y����"�a�
b�Ǿ�������s�1u>�t����P��)���y�ԧ�*Y�ؚYC��]eߥ��c�3�$�:ߑ]���
�����H�hʵx����+��wz�Ѭ
+fHi������P�
��ڗ�_��x��E���ӟ|W鏳�|����
�C���XM

�n�`���UZ��c�Q�N��P����UG9�U
8�<�
(�T�
�� [ɋ�,�Oȸn�
+UN�&�Q:��{�G�F�Nل���@o}��Gl�`�1w��s�X8��vK��q)����&���v�<� �����å�ژ'�a�J��I�E,m]�_�b$f���D�/�I���6��)
C�2
���6��;9��=cz�´�5l���0s��Bq�� V&`�	^�
�7}]!�U$�̠N�d��_�w�P��5�F�SIZ�Ջ
+��h[,2XN�s��GȘ�Z#�}�V�4A��u�;f�o��9����5mnn��@P7��oJ
�UX�I
�vZ8�bz
P��خꏨ1Q'����㠾KY�*,bϤu���3����}��)�B]�-V��}9�i�
*;_�}&�`{�>n�S���|P�����r-��r���Ӷ�sյB�'�i}rN���씔�jE�{=H#�!�@�L����W
+�gWwǡ�'�o
��
h��P��k.����lf-�lX��?;�C�ڴz�
�~2(%��g�˔�H.@��f5��
+���Z�B�U��j0�zMȍS��`w�5�{J�a�#p�Uy�`i���:r�{�=�]&����
+9�U�.�	O/��`z�u.�K�Q��`�Xs��|���b��r�r��w�n�^��R U}�ف�g�,#���CE�n'f\���\f�oA�ίE���Aq���NP��k
�'�S4�:��3�j���%;e����F�]�ԙ����
NM�:���w�_(�}��t 
)+�jƫ��z���+FLHm��`nˤ7��
��M����	��� U.���\��頕}��N)osg)�
2[s9��~�/o�f
+S]��J���X��/�p�Jl�%=,�!��8��x��.Y��Y�Vunz���.�!
e���
8S}�/�ʵkOJu�1�9[�>I��j����Y(ԱOӨY;b-S���qY\�LYiW�J�>�(mS;'5	��ץ����Fgڹ��~�;��K�o�]�PP�KvP���
�ֳ֨�qqv))�K}�4���l�
L��'�v P�@��PT6��B��zX��ʷ*�[8g�q�F�:7̣�u3�1K�т`�q=b�Q{6'�ȅ�R���&FL߅�p�J����+3MNɃmU��Ŵ)d�N�d\�g��3� !	����1Lle�j�v��+̽,�
�R�+
�|.6��&��;U� ({��⢏��s�!fM��9�sǯ<>�)Z�K뎅J������P�rP���,>^^>�����ll�e�1/1ި-qC�'���V�Q�d
w�M����/�jՂ�o��}��2؜4��3J�-�ܞyj�'E�Td���P5����1���_�
��h�i�B�施��2�������\��B
����c#=@�U���I�0�f
��&C
�3gpNOy�MS� ��j���
+�uR鹣�Z�
��0�7.�Qf[����u��#5�>���'�P��P6��>\;
1E�^
���Un��#��[�
����hk����s��!D����҇{�t
[���{�q�����qL�M7��Q��
�3c�Oz:6�
Z�
dJ
=�؀�<��:��N#�*
/Ԇ�P��s%t�0�i�N�Yw�i�V9'Y`�3Ӵ�.��]�2�e�J9��X��`�T�mg;I������\+쪍�[�
�/NͿP��P���fQ��%�G�P���n�����'���[aOgj�����
�L+)�F}Z���;
A�?�⊊J6�zYK�>�ی[jJ)7e�!�]�H�>����t���Oj�&٧�mO�D�(��o0�y��;D$�.��)����6�m)�G��p�C��FJXٲ��vBJ�/�B���`��e�@��Jf�r��oC���ZPG7��4|�\/����B�����GGñ%�Z��eU����j`3�d���ӁǢ���ӻ�A\$e��a�'��y�1 H��9��i�e3�g`'v,�q2�Q�{2D:S-G�L0Պi�鮚N��O
�yM�Oၝҙd�8�cW�R&""�I�U%":WS3��<�-���kd���nm�>ZP�)��5r�����
��R��A���h��]9��n?�s9�sV���f�����W��_(�P~ [...]
�i'�I_��H?�b斮7E���.D�2!{8���#�b��͊�P�`;����i�69�*K����z�윗��
+�eJ�+���;W�S��'����
2O�slRd��p�_
y.�t����|QI��ڸnL͓2�]�ig(+��Q��r�
��B��򟂢��WU��7�i�3� p\y�FN��Ezr1Œ���=���>0Hv������
�����Q��N�qr��u�p�2]���5=��Y��Z�i�id��RKK�֔Ei�����.J�クE�ǩ��͆���M�z�?˜]l��~oii�0���I�
k|�9\Sꉱ
u�^�h���_�h�������¦�����/�}m�����nfS�hs�X�W�P�I�r{`
����7����œ

�k5LFKE��7Z�
�f��#�/��ur;�Nшqr��>��O�`B`�.�:yc����M�(���>�
��ǩH�Pwa�M����/���Ht�/������ҧ���
�B��yR
f����������� ��5�|�7����
��?J�3�\^K�Z��׫�lp�
؝�yn���j[��)���
���Ԧ@%W�^[�Ϻ����*r�W�6�&M�3�����q"�1���:h��B�
N����k�Շ
ٍ����8��|'�qܪ�}.���p/I翵d`sH?%X�T�>�\/����'"'�DC�P~��B!?\
Ey�]����q7���?D;��`�a��
Iw��s�D@�(j���w
�i�k���U�ѷ���|��Pr:��Ύ��� 
���&���@j3�F�3tI"�[��:��2�'k�	y��ޟ�z������
E�(��Y;a�u
ָ����G���f�v1�����
��/��
��s�
�6�])z��tTބ���Y����2b�
�V�v�
+�a�z��G���G-���g�u�ڮ���ý�����BM�Ub��X�����
�a�R|F�0h6+�����WX�_(i(��_A�r���� ��Q�_hԼ3�?A	6��QG���~z��w�?��~�����Ǘ��
4q8\���)
��4����dcS|5��������L���2��O���x��7���r_��?��b|�\��?��n5�����i����6�/���z��M��f3':-��
5
z;8�R
R�J� x��߬��|��g���w�ӟ���Y��� ����|�,����/�KV���3���O50��@��|�A�/.��?�����ut�췂�"^L�������
�Q��7�
��ٌ���S�^�˟��|��V_c� *��~s�_����w���w
����<�
6��j7��t����k��-�y�O���-1[] Y�Ƈ�d&��-���|]O
�$Hv2ތwSTH�<|BQ$$_:1�	}l<�Q�=�E#&,L�w*A��� ��	$���R�"��! &��  �X?�K@$\�`�����N���0>�wO8�
\��e^[^���x�9��Q,W=�3:'��ƻ���±�t���~~ʏO�ڿ"�`��~����-�^�/���dja}�\�� ���!�E� [...]
�ڰ_8��Y�I��}9���(s�~�ʹ��>��V��4n4�>8�r�6�����I^����c�G���9��^���S~��vE3��Q5%X|a�L��)\���Q��"����������x?�=���
����l!�d�# g�~�݄7-�"��Ė������2>��aH�$�C>��=��<�ӳ�4jp*"U�|G��5�]%��S��&���:��}�fS��H���xl~���7�����J�X�$d��4v�V��w5�̢,�2�t�k$WU
��5a_fi�`N_��즪�.���\�^`�r��
[�4M[tk����4�97 �\���i3ϼ��i
�ג�
�yt�*m��sX8��˛	��q��:�AWl?�����:���n�;
L(����t�Mgy���5NE��Y�l���q�دĥ��	Bq����3Odi;�]���73�%���ٙ�mM�m�u�`Bo��>T?̀�7�,
����W�:((�Q4s@�1 �:P���v�7�4��-dwv���H-���/L�cb<V)��I��O�Hm9�DJ�i>R����G\��
�3�$Z����"�jd:X?:so���m��������ݎ5����$W�,�C����2x�tZ���|3D��۱:9��i����3`��9q:�ox"v%�|��U��7��9���yE�tN�a_�"��2�+���������Vr�h\E�x�V<s\�<hbKg��������tқ祀�>
wd䒑a�BP��0�!�f���kL�>����q���<
[d�fKv2�c�m���5HF7�@�ѷ�
t���<������56��~(al慷�玖�n
+��/Ƀl���|�
#��y����+'���nɪ��S�Y��^�prE�+�
d:�Џ
�c6��i���l��2q�*�����3R��?Zz�'����̉�

��~_��J�����IL�G�
 � �1)��]U�ǀ*R�
��v�q
+�?��UYj��l���`4~{>
�\�b,w�Y[�V_DT�
P��F�$�d�nX�1a=�V>_3v��Z��&�	}m X,7c��`�i#�F���.�Z�gpjRؤ�fSܟph��p.�
ټ�c�M�l�k�}��
Zi�����rtvusV�M��YԜ��"�L;��ZA��8L�������rL��U�n/~�oO�x���
 ���>�]��}��&�1�b9$�Ã���P�qv����Ȭgqj4���@/b(�4�
៚h���ꌘ��F5d.М��
�B��hog.E?hT��n��J�� |â�LC�ώ�p�e�υ�PK��B�����}!���
Y`�T�n�':�v�?Iz!(Bf����}-�s�$�
�o�YQO�(|��,:�
}VR��,�‹,�&n��6F"��
ڜ����$ߡ�ݻ`���.1�n����rG	���$�`��&P�B�
��N��\�$���jq�B��$(L�z��wH6��}�
	�&�����qo߈	�i�3<���@�ڨ}��E*��,P+�ֆ�5�;<l��%XK�Z�P;i�ɵ���ᥦ
��%�.�h�n[�AAS'hZ�J���`�a@�/`
��L3�,٨ST?M�ךr�:9<b[+2�
����0$�{�1���
φ�v:��p
���H���&t9���t��=��fTT4���֎�b,Z�:
�]m�(�˜3�).ߴ^��z�J<sҎP
D
�~:�m���L��������D�~9gl�=��v0
+�–�.n���������|��V�. ��1F��6��+l
�B�n
=(N���[�"
�lc�O�ɷ�b@��Z N�#��2���
���V7�GW�����I��S{��M�P�G at Q+�bK];fZ^j��xb�"k@�F�a	C_�R�@? j�C�A��y�8i�3*�A��
PJm�e�����?m���<����0�'ۮ0�V�5iϳ�-K5=��B�X�vT�/꺤y>��V�,Ar a�Z�ꘇ\�r��W.|������:�b���Z}�^a�]�\&Z.��\��e�_�X�\�6�fv{� ����Z_'%s.;9<ld����Y�u�-{R�.�
o��7�4f�����Ńg���2�������`�ζ3 RKb���v ���!�]��}c݃��
5����+�˶e�|\J�}#����K�d
ץ
b
����9$�� ȱ��|%�SB@�A�sbx�L¾��Hs�Y
�oq-}Fj�q �n�x/l�I�ҙ���`�
�_�Q��޲v�^zg"��F�(
+���(�����{i���(ה6><��Xu�v_��Q��O�6G��hn�$�	�%��\�����>��-�����g8
�����
�𩚛�����L
.P�p�m���`c(
{�x�u �+�N�\�v��ARr*�Gw��<�|���#�m��H�M�#vl���L}��n��Y
����_���9B�p�sv9�����xWc����.�H
ͻ~|Q�/$XB��_#�p����6��Dy&?�5�
��l*4"�\����
�_
><�H�b�{W��xS
օ�ސ�Q�(&�
+J��}K�5x܂E�������� ��5�
>��TCO���c5�р��

�e�K[]��W8�!�ٚ�^�
g�[l�}��;5�
\���.ﵼ��&��lr�6��fOG����u�[���m�ꏫ��X�
F�0
*"�'�V0M<���G.m�ϱU {ql�
9[�X!�ݵC'�����i7��VJQ{�z�,�@.�����3��'��/�L-�Z���*"����owy�P�V�GW��;[����~�B��'&�΁�y�#sה�*>�+�`~�^b�y�>H.>���$�UK0o^g�Fj5��A,���
奢�"G
+�۟=
I��X�T�p��X\_s�}��h=�H�qy*
�(����y���`
M%�a���ճ�
XI�u�<4�^�ٙ��.�ѵꒉ�۲z*г�D͔R����=e�. �#���3���a�:�t
690:�G^�[Z�5��%�m[f4��la�m=z���H����!I!�-
4N��^�WW����&>Ѯ0Ont���NF�CY�V
�y
1S/���M��f-W
x²P��HEv[ЦH����#��;8����ȟMIpӯ@Yj�gӲ��L�믥6
6_�`�w\��[�	[��x��sl#��!7�[�V�!�KW�5��]�1����No#�e� ��|�v \��-ڱ?x�R�����E��E\Uy,���~�Q��)��Y��6.����:ZO�ϓ>$6��g}�X���6/�j.j�,j�.,��
����~Y��-'!N%��f�	����%N�ZY��j��Ē}7���������`��
+B!�(���
�����O�ڠS�ǵ��Av
��
q��{�
���gJwA���O/{�
�oۇ�Wg�
�"�Z���M�:9,Hk��}D�2�'MS
+��W>�J���|�b)R�֭�
�q����3ض�[0�1�P��+ c�YN�^�N���M��d�2<iWS6���(-�nuJ�}�1��*��J�h����h|Ǚ)�PC��)�����mG&���I�•��<j�F��,m�MN4٪�@����g)
O�ʗxF���1h�<7�l�[B5J\�i�
r�
+�q��Ci��{�� ��#e��ӭ�.�3׋9�M�Y�@�((Ӛ�0�\�����4f��w��Gi��9�̼�͡��/������hb at Y
�`5�Z�w���� 
{]l��
(�qĮR�=�f�q'�6 ��>kZ�x6�?�����`��?��-zq �grz'E�ط�
`\�R���7�aռ�<�s�BJ��aP[sذtx�d����Z��p(W,�u\7�uߥI9E-I�X
	F
AƖ]����o�|�3]�N���ħ��:�]��.�-1Ot���=I4����poG��
�B���"0V�j��	�_#ıdh
*C
�E�`��i�k��@)(�
?���^k�G�)
�N˲�C���
�y�4iI=��),S��G*���<j�t��8����~��N���%����
+`,x�f�ּ�-�J���!#��Ã���P~� �\�<�S!������
�Đn�QkY}���w�K3�Ժ
�,j`7�+�xF�0�g at 6>X���"Bl	8�syY}�Õ��]|�����M���z�kɫ�0�d;�c�a�*1���b�V���>�7������%��m���(���U����򽃃3��&�Q��Wm9���! ��q#��?Ì.�7�������"` 5�xF'w�!o.��t���(��5D���)�����gx����o`�Fj1�X�3`a�
��>2��#{��#���_��v�%���[��_݄M�΀�(� ���`�
U4�+���#
�(UzNgf���
kBj�����X��h��XS��f
��VҮ
+�N;=��
+��
Ҙ�l��
���IzN1�����O����3-����܂�8�
��G$&Qg��O�d3��-���7�ƭ�sɪ�����0��7�R�P���zs����-�����Oz���[�/`�����~��
������eu��#��d?>�
�>��i�0���Q�X����jW�����LB%�A�ꂎ�
X��٤���q��oV������߈>[�v�c'�N�+�1 �v��Ԫ
T�K�Z��K
�&�@\��A.U��)�)��� �h�������!������2~�!B}���Ssj8��N��.�i|N��|9�d3&k�R�N6�r�bx-do�M���ٚS�R��H���Y�p�@�Sl��I#�A��(��mι��d=����:�<���(5TC
8+�T���ni���� ^i�$u�R�J[�%�R�ڼU��4��>���@�N)�?$mx� ����Z�
�
�>��]�іs_u��T����tv'���h�Ln�3e;��T��N�s�����f���&���2xWױˬ^-xѲ��� گ;�@
e��D �`,����?^�<@cgel�"���M

+��`SvY��z:�eʳJ�?����#�B=QTz(�:�5G��
{�N���)8�@���:�ș��O�bg�X@֌/�)
;�J����:3'��6���n��&�.�=gUU[/��R�V�vj��P�62I0״{��%T� 
+�P�j��/ƺ
���u�>9��iප &X
+h!����<
+�Y~��|@S!���a�PHk�:ߦ^@��h�M�Ԍ{A
�N���8�������7��T9S~�akS����_
,�
+�j�.�������PR@�Zz˸6�
+K!z]6М+�\I�mԬ�:��u���q�L;as��p ��Rdzk-/;@oҒ �מV�@��a,���1W��3h�Г`��\Aε:
�x�z�L�h��P���D��
lN~�~Lfn$�Fβ�ZO��>�Y@ɍ�-��k.�i
��h34��
#��(t������~��A-?>[q�	�1�y�J�mI�l�̵����
�֜��s
	4�ip>��ua
+i�`Α@DzK��4�ӵٵC�:��>��
��
(X�������=ZP�Ri�S;�UT��@���GF���!g���N
 
�}�����
hH�г,��E	��f���u�T ��X@�vq
�-WN�	��W6��*���z�F�LS�(��@m�z.ǘ��{vL��Nc&
�,��Q�Z�r �r��)2��u�͏~u���\/�zJ�b��X�7�{�
���X���%9�)X\/Ţ�8|�k��s�p�>琍,�<8w*������*�S�����츈�\���Ji��L��o�/�l:#?��f���N縲���}Y�9,��W���E��j�O݅�E�u��+��
+	v_K.�������<��13��4�m*N�(���\J?�9k=������4觅���<L�XO�+�>���������7��n��v�tӝO�ڮ��7���ظ�C��q���]8��U�/��c
s��Lːoc�򬡖B���S`X���j5|j�r�)`�����>g�!����Y�W�O�3AOJ�I��P�� �r��.ƶ�);W��Y��x�)�7U�~8�I�]�~+A�7&5d���
��`4�0��L�c��{��`�
+%��Dž�TnZ&���gw�df��$��%��B;�&n�r����	+ɱ����!p�@�
?P>0�%�
�>vK*���� m�&��-��\m
����{7��
�}:P{UAGo9\a�c3�R��+��� u,��@���(�����2��?P�
j�>�c蝒�s�%�^^��N�
�uPh%Q��#X����U�聶@�'�Q
Q��P��ٲ(���QV
HE�;]�k��c������eB�%��L�W��2�[
jpi17��9>Y� 
��ć��B���\��bv}���%%p�n�ø�����L |Դ��1�!'�'md-���Ӎ[��O
6�1|O@��	��$�Cc���X�r��<�Q~
ٜq`���I�ڙ�90��.8��h��]��!�K�%��Z�A�!���dZɽz��'�@����A,$�s��H'>*t�1��%���}e=�G|�[q�����<��In+��SC�R�����\?�eA�`��{
Y�Đl�C�����.�,�Bul	�]"�����B�z�9<x����M?�9����w�s�
+�X���߱EO�;����￸��%�?'�����*	���+��5
�hٮ�]�۔�����
��
n$W"3����l�wj��x�֓
N�@���!�@i9H���a��4JbVhbo��m�Ɣ����P�Ƞ�;2��</�L]�H����;��-
���B
���}�|'���u�Ō]�-���#��nbݳ�n,ˉ�3��(
�;�1~o��w�����֊<����&�`b~PR�pD#hc,�[x�����u�ȼG��Y��hǓAORU?����21�Z����Z�v�$��!E
�C�$!bp����3�5F��Β�T%i�gc��k�Ux[� �'����O��Ȃ�3��İān-�
�c4↴�����>�<��J'�X
�*A�����*���#�B���Y�M
'� �ģ+溼��3����C�u��$���3��I2%�cJ��1Fy�(B�F[m�pMAVI<�Jn�1a��iǗ��ASh�\�"�AP�=l��@���+?R��5�}�P&�cQ4v	aoc�WF0�1a�$K[�n޹�,��e��x����<�c Ϥ �@h�e��[����@Xl���6��4�-*��_�
%u,�3�Q��8��
����5�:5�:L��I��� �!%d	#~P�!= ���(V��w �4A�P��t��B�r�1?��.��g�f%Otyk����=?����%��
)d���
���"����"�P,���w�Y�7�Ecpb��[2WF�s�R�`p
!_Г£!Twʲ��m
+/t<3��]�4ɟak�ߚ�55�.O

t,��eq�
z�
+�6c����7'���|t
���Ǧ�
�"(���3<����� �@�sJ������Jàh3S��>T��I�0 
Ux��I��*+t&Eׄ��A£x�27B
���&|���K����s��-K���o4��Cu�ƚ��/zB�-�  �_�D~Ȳ��o ���FGJK
�<�e!v\�(��	����fժ�MX>��<9�$��K��9C�

"�;�
��$�_��[ag��er
`4|}�O����b��Ӑ��E�=��ED�Bd
�}RA�F`ߓ`/�|Dg�B���]°���ꎭo�߾y�p?�cv�3�
1Vx���/*k¨��
]�hZ�D�
K4	&Z����M���ŀZ�Cߑh�5�PdFD�.��k���R
�Uٻ<['x�;j<�a�F����|[�=ld���%Z�#рQO������n���
0�g浠�4�CK����
+�A-+�
��͘�V��)�Ƒ<XN���̓\���e��ň��A8�%f��Ða��F$m$zq�8	�'jܣHc�|7�ًI����~�9�&-Y�!^6�����wEj��P��
�b�{�^��] 9��~-,v��������#�^��
;{�}�ӄ��]y��
E�bM����]��#�}�"c����
��B�)�
Dz�U�n(��'V�/TҳvCN���p$�ٷ�����G����Hs�<M` ���<

h,<�(Y]���ѝ�b��.XЙCDg"�6�����+n�VK��K;=EY|Ó�����<bH��9C��&k[2"��6�-��O�5�&g�mIU��+�k|�o�c�E2��c���¶��h[��Q��./���.�]��!i��'sOP�<9�
+��:�Q1bF�#V
+ქG3�X�BI�-LQ�_�ً� =2(
�q+LE�ץTaf\ޞ2�`?�C�̠#w��s�3��*?�C�JϠCd
~+�N8���S��
�y�3�n��n�p��N�7s��@ot�l��s�3�
ق���	g��/?�CGS&t�$�'r�3����ɡc$��
$b���z
V�?�L��2�ӳ���D�R�YQ���8�.������<�_��6RK������%��L�go��H3��$<
jH�g|��_�o����9��3>�H�����a��'nPO�`��򭤹�d�=v��?���I��{v��`"������I";�� {jw�]0��i���P��y��D{�֊���@���P��
8�3Ch�|�����l֤�B��
���X�x�Z>���^�H2}��Y#�LJJa���
'<W���b
g�C4
�M2�YiOrħ��'�ӳ���u/���+y|<W�*ZgI�I"����ӊ?5-x	ex�D��bc����c��KǷ~�<>ų=W���=�Ȝ [...]
+�bz?R�~3�?��9�?G�#
+�8O�
��Ƨ��
\�?�\�
i�'F�+*��"9V,=�?�g':�vK3��H�ßŎ ��>��o�K��8�Q�eWZ
����T?���s�.ǾK�2�!��E(��%�
wH�O	��CxBxd�v���$)�5$��;B�̙呱)<�u�GAc���n�
�#C�{}�l�f�zd$O�s,Y��S����
�@2Wa�����`�� a�	��~�'��`�G�y��S�<
�I���[B�8�)a*��+�,sr��EӈQ�ٟ�I
�-�n5�mp�g�!���N
ީI��cg�S
h��S�Bٷ�
#y_�{s�+yu��S
��Y^ݷc��̫�w�=M
e���G�OC��@= Y�b������,v���3�W��ж�O�����c��p�i�|8Z�jUd$�7�����|8��J���pO�(N"�ُ��I0q���ñbੌ�W�.1�pO��������
�@O��:�b�0�q���e�s���c"9Q������;*����kH�^n��7Nxa?,㙯	���ws�a/dD���������F����xF
��6��UZ�(6
�(��ӱ��vՐ�*�x�0�k?I'��|�kF'���O�!�'@���G$
+��A��>�^L��ÈT��ΘW�]���`��p~:�
��T���O2R�?��
+�,~,#�w������G2R-21I7Oԅ�,O
��~F*�G���H�<I�9�Od�
+^Md�I�T����A.M
+2��0l6��
6�,��h[���H�C�b?�
+'�.�wR�\�H�{߮�
+'a'��GR�h^�����V*

J�g����)�[���0�� �#<mʫ{�B5�~ʁ
�b\c��393/�?\@ߪ�\K���Z�ЅX�hK�K'"��5$Eܣn�ƠR
�2Q5M�7Տ(q�Zt.	��j�t���A`��זXԔi���L5
�Uk��H�ߒ%�N�[=|fUeqr3"ܽ4r�� &���B����Jv�7�%���QD-�u�|��Zv���k�j���<P�\�h��vm�
���hRީ�U�'ƏW���4�n%���� vV���R��
;�����i2�d���
Ԍg�%Z,
'��^����݆B�n
+'
+�
_Y�A͕ %��ʏ��V�[�6({9�D��3WUA^Wp�Fe�]���v�v�-f��<�z#"���K�u�9��7/
�uUOKL(�^ ����:4�3���k���kV
�������b���c��S{bO�IY1W?ZI}{�OW�C-݋^8Υg�!�ޒro~r�83�O��<����kE�x�G���H��?-6"0?�>."rZ�D���g!Ӣ�e��|T at 27�����l:T.�w�0��t(;����d6
���g��PS��<�c�t� *F�����u�~6�s��Odӡr�uC�`6
*���V6
꜆��̦C�)�W�h6
*���~��gӡ�	X9#?�M�ʥ����t�d �g��P��B��dӡ����y/���~T.�@Ŝofӡ5��ΦCu�>�}?����Ӛ��ͦ{c����b�l:FWϳl��M�ʥ{�c�z6
J��ͭ�v6ݣv݄�̦�S��l:�����t�	I~<��B0��g��ؕ?�M�B��L���PB�Aħ�����
9R�O�»����  [...]
�cB��_�H����z�f�Aļ������,��E����|�Җ��hwC�ou�
LW3>YI1��՟����\4TUd4ԓ���VT ���G�;G!�^�Up�E��|˓���D{�~��ˎ�nA��ى��
��o�.��[ag1���~ǯ��ά�"�i{*�|ε5"
I�D��iX�<��=S�Ÿ�`����RfJc��Dt�ۏU0l�D�wy��ShHD�O��
#(�uO�R@/�G��3��+��9��B��L�x�s�t�^ѩ
�D�Q�IdP
�f��dC���+�BG�/�pR�o?Ɔ�
+w/j�߬p��|�?�bȞa�V���K�5�~dV�$�e�����E�0"�'�Q�N���0H�dȱW6��
�Րeȸ����ڱl"a�>���|�~*2��'k{Gao�Ș+���k�r�����Z؋нp��7���IL7O�l�zɯEF��W-2e�Y��
ObӘD%�q�v�}}"#l at g���$���-Qn�IL�Ħ1=ρ4�
x>��gO�l�
f^Őǫ %�"�(��&����Q
cƧ5�E)�mB1䭔�j�k��d�q�P&���3>1�P'6|�3�Jq5��)*�ZL�+;z��,IT����=�no�E�~��c�?�<�YHG{p�ل
(x����<v:�,��W
���ޮ�;�S8�r�2��q�EMY�Y=�6
l�

�]bfN��M��'�LM���ù�����p:ߴ�N�#��V�
�K�<��P���
Ԍעe���JM�g�������<4�0G�����a���w���4{k����a��yS�Nב���Fg������j���]P2"��-¡��j�@���r�t.�����-~��B7ɋ�G�B�o�[�*`M
+<�s��v>�
M���r�z�kJd;j��9��
7�ů����'&�j�c�M2o<��˕��W�����=
�a{H����!ѫ�����R(
qЅ���fhjH�I�2�XORI�$ M"O"B��f��Z%� Ɗ���T=��Fi=�퉋�1?�e��:J�~�$:�(-!~��
+����9L�ڸ+z察0%	���>�o���X��έ�8�S��$~��V
��y
�ϲDd�{��{%���+aW�(�W�c����u�Ι
�r�9�,a&��O��,w��`����Q7�]v/!��
+��s�
ӫB�
� H
+ߺ@��Eg�	l�b5_�/?s����wҏ�)oZ	Ç�?�9�="�qf}1���
+�Z?�q"2_t*��꺷����ď���mb�U��=��y���uN}�W:{Z���=���
+ƞ&��$���[�󎋕.�>�}-
P�1���&��4Wrr �n������z|���e�����(6P�>��,@�9��j���
@�X1Y�bs E�X�Cl �TTt��
@E8
�gV,�I�(���D�{^-�'����g�?\���-4^.��#�~�(3N�?U�����������|�ԯ_�O�|*g����u1wC��~����Y���Gc�72�~�n(�u��g=�D]����y]?QwC�]��u�wC	��{)���u�X<˪�'@�/�����[�aY|���w�l^����s ���F��X�O�����������[�@]?�~��
߯�':B���~�B�s��p߯�'̽�=W��������W���\X�˷�݉�~���"�������~��ߍ��U��Y���\�z|o���W�{R7At]?�p21���'��ˌS�~]?aK�k�^]?ָDV2z����9��~R�F]?���ͺ~"��~���-
]Տ�[~���7x�u�P�e��z|"o�x^�� [...]
u
�4}�H#x@��N��ڔDZ���S͗���;]�Y�#�
��y��)�R�F�r�.���jSO����0�Q�1����,nK:���/'��V�N6�T���̬X�4�ܴ������Q�͙g�.~:��%����K���F���f�

+��Z7'���9Y,,O�U�p�.���J_���K�L��1�
�
]�1|(%��̉�kx:d�fSq�HԺ٥��%��#9<	L% �*���B �@��#kc�W�u���9
�f!���udTh�X��p�6Q�TMfT�j:`�(�N�=5,S/!�
����?��AzZ�M0������M1:���
ó
+�	�h?����,
!�ʫ�[�f���.ڸ�c���	k*
~�g‹z�I9G���
Ee�g�)b��h[� ٚ��-�l���j�Z�cW\�J�-���[�M�8��t}�M���:L��f��h�{�FD�`�
�׶P]f$kn�]�"L!��aאPT c�=���#��\9�?����y�'��~�j�Y�b��r�wV�K4Z�H���gj��fЫ�l���#
�g
�G��m傷���` �
	x�!��g��%=B�m�Z�~��'��=���}v`$�#-)E�L�Β2�6��B�Β
+U�e�	f�|�2R֓��
+��"  	��L

lb��O[�4�v�?�n��:�-LK��!fu0)#�Oc��
`��P����}����������\<��V����b��E�}`�M
+��t�VM9�w
+�8.%�<��?"իb���Jf8?˝lF��
�)hlx�i(��\���5
*��r��4���Aߓ�~�P��I�S{��v�f'�H��P�t�
�S�:�ۻ
����Nc֑u����c�?���?
��t�,]�F�6[7U,��ha����
��
�
+5�����o| �)5E��>�h7�����Jo������7�c<e|�h��:�����ڴ/[�y>�:	�r�
��0T
hIǁF;��>D�C�&A
v?��τM�C����TDIPh%1KSK�ْV��4$��e
�r�&�#��F�c���>5�I�G��;,j��š!J��\ZRx�eU;�74����I�C��$C�D8#���O�>�����.A
v�W>��UKH�Y
M��=�4����t��,I��G�����|�d2��6эl�[
���.5m��,���qCWg6%�:�jy��4�k$qb��P�F2g2;&Y(7
+�3R�:s����o�f�	�%\��.�pr2c{lJ�l
{��v}�L�Z�GE��m���벎��.dUZ,I

��-#xM1�
a`��l��2%
�a�Fq�����׬���Z ��"
�����l�t�j�N7�O_��̅�"
1B/����^]��rg�y
Wi2��@�����Y<��Q� �v�ZG6�-�b-3�A�S��o��qb����B!
�y
��%�臆<��ߋÃp�n-�Q,�T����@(\�����4�d�v�����D*˥O�3F�����<*�|��۲�x
��}�E�kh�����sn$�
+������4re�O�w�$�C��z�
68޷�K�`/�l�3�����)�w
vrf���9g<@��R�꩒j�ۢd��N�����oY@�A,� ��eЧN�f� ���)�߾�	�A���sdQ�y�^:�|F�$�i at .�+��|���E��dž��M(G6�07F��r��@5��tc��H,C ��r�ȯM�㻩u`�^	[�˦�膿Ԉ�A p ��&��4�����6>C��̤��|
S�J�R��'���HH�p5,��S^���(���7F���Q��K�x�+
�P�^ͮ���V���\�
��\��������k��,
+��$'�_�	��5ǧ��Ͻs���y�܋L-)w�l
-V�>5B���R������d/��?5�켨���}�%r�$�M��K46���q'^�J
J{��.̇�db� �b+^�T6v�j���g���l�W���z����QA�JGGE﷛��f���؞���?���ó���oŖ<t��:uv�������Sky�T"
�Y
����d�vg����.���a�벛{�̫�g��=R�+����O�߱+3�
Z
pd�I��\x
�3�F�s�U�s?�
�
�'z4(�X("|��t'>�JH�M��"A�iK� 3B��
%���Z@�De�RH��$�7�y��ٵ�W�d��#���\tI���$%9y�?WX
+H�<�>� '���;��k7
�=J����^|0��Ľq�ˍtV���9S�ϋ����B���
c�̀�����ݽ� "�d?�
��y�j�õ�\�
����Ոv�J%/�Q���{�7���#�B:�1ņŧ��Y��uT���+�3*E1Y�2hy�X���Db�;yL�:��A?
{���{#�E�ϫ
(
�bӈ��d����4"� e/
�G�AW#� a]���D�1��WQl�izI�+���,���6�*D�q���b�uY�a�Ry�
Ⴞq	�J����~�Q@>sc��^��(�A��$�����+{�!3�Q�|�$W�
-��p%�-���ؓ/
���#<V��_����Dm)�uvgy9�JN��Z䫊]��z���W�Zc����|3�5��׸�t���Ɋn��M!
�ʕ�����S�ύ�i�\i�P�&f8w��焢�P����}\�>Ԫh+d' ��7EbH��#�Z)t{x>�݃NdO��U�(��,
E��Y�X�9N���o�� [...]
+�  
1z�@�P�G�g1z�dGX�ֳ��,V��
:&i��hR��l�Nc��Q;�Q'��f�33}Z�
�ڮ����A�ѧOv�;v�M��:L,mK^�T�gv�й��
wM
+�������j,|b�Ed[�|�~�ߙ�X3;�j�><�{�,�[9o!�x8
���7���0������ۦ�C�j��'��P�\"<
�Tb���X������!	"l��
�hSiiuH?w^�N{��O����y��8��c��դQ�z^�F�z�5O���z����D��I�T����$R�m~]��P�
ns� �J�+�P�ָ�T��~�P��2 <x<����٦����)�F��G2�Y
�Hg�)�X����E���M���Aٮ1�y��
+NP���
+
2��;+
U���)4�,��E��"
C�
+
�~0��.J&fjL�Uk�j�?')�RΎ��{[��
�HY��M{�EWs�����^�}�y�|�U�M=�#5��g+ ���
+k���ǼYA�1��qӋ�^J�*IK����0��n�Ƃo�[a��G�,j
+�e�2T=��P�Y�x�h��S�p�.%Cq��B�g�*a߾ȩ���W�^�g�5(��G�q�I3
I��xY/��#�UqY�|jq�3.b���I��7!}�$�����,�r�T�
O>=ɍ�0e.Oc�3�޶I�
 �z�D>�H�?y#��


`���\�&>/70
�A�K�������&:@�}��F~�&��灏�B��2(K��r��ϺlY�L��y���`xv����1���/Mz�]s�ٽi���z@�7�SQc�p���F>�1ꇉz�a���#�5k��
	��O���\�5%F�X��&w�/�(6푋�\��9�,��͝��R��ﺧ�1�r�Z��a��LͯDc��Y���P͋�9C�u4�]���~�?I�՛��y��nM���З�z��I #�Ep�=��; š
�`~Cy�Y^ۗsZ��&mĠ���Uy�|v�@_O���l�(����O�<{,�q ,x���䐕R����gs�68�`,�<��%+���p,�O�5��pl��	�R��X8�q
�
�uԻ�K0�w�|^��JhRl/2���E�=
A���p�m����=�`7��^��������`��>.�����Ƚ}�+]]7�B��H��b����� ��H��"Ac�HQ7u����WU�
YJ��C)��
/�{z��(N�7~�(~w��mb]S��y���!7C��f�|$c(�G����e�LOԪ;���~�a��[0oO�G���]C{b'�
5
+��Ԥ��|�'�t
%��U�������|�����2�&<A8�ev�J(!ʤ-�GI����PDa-	�f�(nbs���6�+���~��&���]N����f)���bۆ��hpPP��(���������
eaL�|=�LG�y9� ��ƻn4�1�>�#O��c;U~|�cb䜭��20�
�������E���#�4^�y��������/2
�><4���lF/-L�§�%�Wئ�
�v9;@���,M\�B*�>��� �����y`��=�Sډ���Y�jx�!P�Y������A�Q������}����4O���_�kI�Zj�����k!�d!�b���}-�G3�m���ܙ~]
�ky�:
�_�kI�3ݾ��;|-i���ȯ���yZ ���ג�����;��آ
����ĺw�;rW��~
&�b}o�����e؁vZ�> W��I�{�P�iI�[|��B%<��kM�o\�� ��ٍ]�yz}�.�V�u�}��K�O�i�B�
�\��wfC [...]
�n��lA^�&7��6X�l�Ϫ���R�Օ_�m¡
#��p� ��^�o�\�R4	�9M��M�V���u�8X0�O�;���rp�m��:�>�K��0�������&�@~|������˦��+�Ia7�}
�u�<�\0�<���Pm�
sY������O�e�sb�e��?��
��
��+F'L�S�dh
+�bb��]59�����B���Yus����i��7R�STM������hKeF��G+��b�_}��ݸ�.*��Mo=�Zx���H�0�R÷����cZ�f^��)軩tU�H�v|�� �ʲ�.*شd<�8�^��\d~B��b�j�Ix�����i��r����7���/iQ�|�1?yMx��H��TGu�"�ȁ�[	p�����Y;���A�s���H�bv'��*럋�e�̧���؎cfm�5��͗�vg�s}y}�-e&3�ꢮ�ܟ?,t����_��������sv"[�n�
��>{8og%l�'v��eo�A+zm�Uy���۸i~ܜn�/��LW՚O���Á�{��m�6II��f�lz�������ƒ�M���ik�3Ӻo�~�q:w��Q��
�R��jv+���R�i���g�]J�R�	�cب�����^�v�����
m�,L�?⻀�R|��4~����L˕�f�ҬX�t�c;W��3������t�2j����V\�~���n�
+��P�r���S��bPc���ɅC'��R����)G��r0*F���r0yg�'�UG%3�]��5Z��5Z��
�
<.�/�

�ˉ�`b�K%� �{zL��Hc(3��̡�"��w�C�1$W�7�C�1��}�Ph
QH��͡�jx|�-Ց�ڜ�Fj/����n����|��;q�����9W��P���<Ӷ'���g��v�Ks��,'<
U�j*�n�x;9GO2c�r�a}T|r��[��t�T���<zh��<��M�f)�
�{��4�)�gz��&
,!��ܬ�(���f��o*��y���WU�%���
�xz)���c��e���Z����\#���
��(�<p�V��M����?Te�fy��EWc�"ŵ�W{�R��ib��z�//
TAH��үD̀5((�WO�N�����zy�B,�\��2�m�(|���
�A-��v������l�*�O�Ƶ�A�S3�?^�
��5��9#�W����pL�Z*�
/^-�E�_��W��l�����5d)��*
�J�,����	��@�S���z
��%[��=�^��Y��g!�-b4
�s��E�v�.?��
eY�D(й�R�P
N"x�u�骿���I��+Z%o#�
���('1y�RX��l�q���7��!��r�RXy at Om�ɔ>~�y�]
����{��0 ���uy6 
�
��Q�p|4þ��R�y�VĨg����I<������C�]Ѫ�mJ��+��j��n
���7�	��V�)��٧E�|�9�Q�O�r��_x
���u
��D���S��ʏ�k0+�"/#�j}�/����P�bf�"],~/i�.�fv���a���"/��cZ�?
I��Z
�����%�Es�
���?���Oi�ә
7ǥ��h���+}†����<i
��QaY��Ο�W�D y9���)5X2#�UX�wA��^H�z Q�+@���$ 	�χJ����#D8�S��0�G�Bm���/D��c$0~$8���+
+�a?J�'Jl {Va�HКZ
I nu'�j��
	ij����
�dF�U�o�
�O��̨�H�!k�ȗ'
ȋA"}����Z�m
ǝ�Uz`�.N�����F��w�����O������
bя�b���^�F�S����χX��1Pّ�����b�.�5W�΢���?�G)�����Y�{'��w������C�!��ns�䱯��汽���۳���v^g��~ӸJ%e���R���
�[3{�I�M�D�1��F����E�)[N�2���%��n^a�P�.�_�3
t��I
�=�x�0������Ǐ���?};ȍ}�ڊU�;}�h�7Q��s�1x��=��w1:�yz/Z��?��ȶLh�ӟoq���\����q
;���5�K!����F�t|�K�	˹���2e�Ip�OU�+a�i�N��2�W>�1�,-�Lzy"	g�w'�ydYx���:�'1�F���ȴ�X�o�L�
��~�˛ҏ)�)-�-崮G�[�Δ����
S�qU����������[̟%)
��Fq	oHu
��Ag��߼�>���M$�%9�V�V�.�]��85)�+�=��_v���kP��J
+���E�4
+��@
+��q�ʭu6�8H	p�:��Ώ�/���
���
n���k���G�H��M*֨q�y����ʡ=��*k"}�6�ˇ�
�!*�S�������=��R�*�YI�H��O�(��v}�v�x
++�:)��7cWǁ���$�0�W���ܭ�Q�}TAf�X��s���^��F�EN�d�aE(���e���iU�I��X6���N�3u����k�t��������X<�,��H�����#e�]�c�q>������9O*�v�@ECO���H�슒!��m�.�zAoLw�_����b磥���鯌9$�(z���T�陒|�(Ȥ(�/*-j��ҢN��1E�
��%3�hM�D�q̥�sU��0	�A�\�[�r��6Ͼ��D8��w� ���4%�ˏ8����A*E������l�0�
:nm�-�O��\���K��
+�ظgq�-�/EwA�f��� G%�4�S�*(R�i_�7�����;�q��i�#�D@��c=+�)ϗ�
V��>)c�bߚ[)��R�n�����*�#HN^
+�S��Ť���4<�y�C
�ۨQ:\)��H�,ыI�6<]��^x9��GF��'�G��ڕ���)�n��*�ċ�/G����Mt�I{?��sci�cc���w$+:��sXش�D�a�z�w��y���ņ�9�O���5w|���[��s)���4�P���9���C�XmmF7 \���J�A��"�x8[pFEur�0i��阭.�@�-L�&q��N~��Z��V�
d[G�@3E��),���P���<p��˻��uk,���m*Vbc�Ϥ}�I�Y��|� ՗|qQZ&ed�N"�����܅�L��f.�/�J%	^z�*��2)ջi�%�m������t�Rچ%�]��Kr��U�P:�"�\+"�
��
�,���"xM��I>��|�'��7&���x����_[�7-����_W�7m۞�Յ~���zYi��Я_��=�_��~�u
�����mq�/N-�ޜ�rY�K�6
p����ҽ��W�de���&"���l$Ue���R�Wٷ��Q�w����
ܻ*�Pחv|��;@]_*7��ʾ��%]��ʾ��͌���� u}}��{KI�/$��:�_J2��3ypЬ�jz����
�_��^��ˌt
y������xXS�"|X;�G9q�`���2M03�3q1^+m$%�7���
ͅ��ِ��%��w��B�� �U"�0 
@p9~��@�Wdx��;�x̀V����P
L\���
�^�N����zCKx���J���M
�+[.z !z,z�������hP�r/>�PYJ,����I�U6S�ƅ�CG� d���F�r�l����'f�
~��8�Y־)-��"Ggq�e
�����r����"���_�

eHY(%=��+4��b��`��>tH�K���̺�LUPSL{�i���wjѲ/��?}���T<
KQ2�Z����
 w�x:i=����.��="�
�Ai��o�m���u��B/l!�@�c�sPWa)ZW��<
�UX��U(
��4�.��	�F豧4�~������;� �y5Z2�qi��'E���R�)�R�Wo��DZ|d�bD�
����=�Y
����rV������W�av�ȶ�u{��#����Q��|#�����
e��z����
�@��یdr��P����ocy:�V��xNw粺���z~�|��7C'�"�G"0���Sz�X�[��KoԨ��7��<����O��$�t�M��$�O��b~����}�GX�$�A=�}|�e��~�F��
��O������e��V��}ߚ
�$�e
F
+��������
��'
m�ri�oF�m��p�u�Vw
+

�+_��U�w&k�NX20(L�/�
����1�+����#p3@� \�T�a�G{|\�U�3ы����xp~Kz�s��+,S�J�ux`**����)��41.�]��y��@�P
+7�?taO�;��퓸���'�s�VV���NoTM�����B�@�������
/��p�	�*�G嗆桗�O�+^�����H��e��{��e��?���g2��R�����hݪ��~�j?�<R�x�}y}�������Y�?���_�����r���~]>��e۬^�.�gX�:�9�T;������V���������X�Nd�
Ǹa2�ǐ�1Z�R�*f
c���
�������Z�i��Z3
��,��/��wm���:��d�i:��:,�����
�f��a�l�����~d���:ˮdY��
����	�,n�n0+[�
Ws
<Sp�뎓�Kkd�0���0��/�4-
-����M�6u�2
��
+!4�����e�nk�k
+�&�s3�fhL�:�]�ZxvY��Lӵ�.
�2-4a�������fYD2a;.�P��\�
��:s�m�4Z����3]�0]�=̵�阆�r
���paX
\��5f:����
G3tf��9%�e,W�
+��0����&e3
Iw�pm�����ju7p:�a��LwWc�m����ڌ
$W����/ơ旵@$W���i��\��`r
I��nt��20fa���rnĭ܁��04�X&�N�1e.���o`˖��MSn9�
�3��7%W���YFg�f��a뺚]w#�C(A>Õ�!h,�j�:�b�J����-[�A3r����l0� Ոoѡ���j��F\��憥z��L�tu�6�#t
B�����$�
x�IƮ&�.���
8�b8�#�	
���!ђ�SqS�6cSOG?� �ĤM�x�xʆ��R`
[���	�t
泦
���p����`�]&,��
�I<���  L��5I�Y���y	����QȦ{�M��
+��� K@@]��^pN� ���-f�������L�o3G7hap���������P$4S��tE9�@l1m�X�t�� !����i0�P4�1DZNm"����10�ѣ�n�t��4
ܫ�p�A>
�������6Mɑ��[Ә�|q? ���!L�z`���m� �B^�F��G0.���:x>�@xM,,�iAOR
C��: �ENJ�quȌC�J���4GaaZ���2@�-�'5��#o����6ȪIx#�~��X���$�ޤL�u`��I�h�]0�m��n�8$f&
��Deb��Ġd$�0�B@^[�&�̏~!B�z�	�vATK�Rnc)�
.-9����CB�j>qI�����N8V����z
 $�*u''���V�G/��01L�]hmA�s���X
�
+��$,ɣ
K
��ۆ7+��Ճ�r	~��� U�gu�]�:з����*d�i`{�$�	�T4vLP
�`��lb�+\��j���V��#�t9+
60W�@ ��<t�#Xi� ���x�eAtɤ�X�-`�Q 
<)���M�t�!�`������L��6��
]5A$�܆�����dB�H٪G��, 

5f,��E(�p�����B�e�( ��茌Z4�P��ɱ�pȁG�RjH!1:P��t� y
( ���`K	x�� !���0� ċ�U)�0�\�DȘ�!)���S\"=0�����F�����	/8I1ƃ�O�� 脱%]�c�	��e��.��4T,5�+Td�[qɈm
��63Ar�E��ED+CK5a6-�
j��
+ٵ�ūۅ�������_������l~�k�x�������
�J���y�1��
{�J����s�u�t�zn�Y ��^*C��O��B![�z�\�_fUۋ�Ν7H5��3.��<����إ�
��.��K� H�ZT��8��!"���?���N�ϞWZ���b{$��<ce����xK���{�X���Ⱥʴ/E,[���Te��o�����y�/|4�����wnڝ��P}�p��؄X�3��
�*02�,(=�`[�
��2�4ZNiD 
\V3�M��7P����gv�3��J�����
�����x�Bt��?_�n�[O�~T��!�����g���go�g�	;�������íb�Z�
Q:��{������
(�Og�[�@�AZW�`T�i!~�҄V��w� �^DW����r�<���鴺Z�]]ߞw���
�`οJ��˻,2�h��iݾ����o@���D�/�k�����
�݃A���*9��3���3���0���S��Ty$�>���xO�O/�ϘR��p�Ry<o��?�����j���o ����G��I���
f�nt�0 �|�;忆�A���48�O�׏�w�������:���9����Wz����z}B���W�O�m��A��uK/�e at k��aU�Ku�z���%u=��ܶN۷CɈw�?,r����e����W��l���d��vap+��iջ�&
ǵ�<�s�
z�`c�0��4R-�4J�ջ7P��`��dܮO��8q��i��
�:]��~Ӳ��f�R^������l��`Z0��
횦�aWn���|Ee��
is��_R�\��
�%9ˤ4�B3M&L��-��u��5�cȤsGG�1�#69�
]����j�'1�9�ԅ�m���jd8�N99����į'�a�?D��hj�t��.Ў�W�{ij��~l�	S7
f(oG| ׸��c
fXn⪋���(���k��@4��u�(�ME��x���������jA>��vw��݃�f����4J���ݓ$
@jj��w����2 ���qaq
H³eC'N"+��L�/ac&�X.����h���G�6�#�R
�bQ�#]Kw����5�
s����5����
�5�O�|�Bw
��&��38�1s
U&�
�
+���*e�+9�1p]��ay,ba�xb����Q2[s
��4AFzT��I�!�`ڕ�c����$�
j�Y1և�yqte�v�f/ ��:�� ����t�n��$ڏA�
ea[tk
+F�����-��,W�ɑ��u�����	9rX�dX��I�\��H��C�	��1����X�~`
��9ێ.�I
�h?���.��\�/ڈ17�(�
�:�5���M�0�ӣb��Ј

��\S���XXI�%�LGc�a
�y��Q�MM8�
��p�
K���L!tF�	��F˪H�
 5Z�<,��p��ӛ�Sw�w�6�	�'Ӗ�Z��Јܔ�"w�K��9hl��'dH�$��\�<��aqP`	�͵e?���4�TJ���` �=h��L�u;.2��LA�E�v\��k��~""Ln��!�8 ]��-�p"��i��’��$V�׽>>
R�Π�O,�_]q��f���S�!�0��9M�<��CF8����gg/w��-j���ƍn���OF@�H|��)^ �4��q�bN�ԎC�.�� Q
�
#A'��`B�r�ԄL`���Lg����.
�@�A.A�@"%
�y�,M'�!��\�Gֵ��6�ae��4�(,��A�Z����,(C�%�"s����m�m��Kt�7�q(
�A��-M�H�0�cS:��a�
�lDz6
����g�� �>bģà�
+\�Z��zR��e#<٢'�,�I"������Ǧ��
l��If���}�`V�h� 
ǂ�C#b%$�ȝG�Z�t
+�F�ơ�r�
+].9�V-E������6� �����OZP(���
���.���5�L�{
�d��H�!Z)ۥP�y�	
+��r��¶��s�
r�;��5C����
�0Z8yr!� ��#��r�%p7�uF�Ga\�ئ��c)�B7��7��m��rN�O&m�l
+D�g�v
@(���
i��Z�\�6idA�֕F�mP� c�4��?
�2I�h�
)��/�z�Fd�0�m�(t�$ȟ�h �|N9�8
8���\��0b�� ��Q<VҠx#K�
[[G�
&9���ej:&	랶��j
wHE��Βw��(k��'a#�� ��/0f�DZ'J@�޶�U/Ș$�����'��K{O8�Iș��1r
ӣ ��Ք���8�'�z�E]��AY
%�$��$�YN
+H��bZ
%�
�>mÁ"r�I�����Z�ς�Ӄ ��{���
p�Ȓ�l�%Z��#4�&�I
�JZ�1U` 
?�ɧ��^(��pBmo��9m_0�B؇0� Ñ�|��|�Z�vQ���(��u�
ƍ~��7<�=�Ǚ>�3�')�?���O�@K:S��j�,�@�!ϐ��
	4
�:L(�J4ZNiD�
�@��Єu?n�F)������ןޓ9����������������������7��{���Ru�ǫ�ǫ�_���޶��]�-�e`�i�v̄�Vٱɬ�n��.
g�nJ��F��N~
[6�z�@�R
�;���s*�u��\榖˙����e{�ӂ��d.�Z��ζ������+��N�	�mg��
�C��������B�� ��

endstream
endobj
225 0 obj
<</Length 65536>>stream
+%AI12_CompressedDatax���r
��&�����{���@	�OGGp��Ssl��U�t���
+Zb�8�D5E�]������`a�R�}��bF�Ƚ�`a�o������7/N_����Ű�w�����������/v���7o>~���G?���w&�{�t�U�.����7��~�3qo�_^�����?_ݽ�
>޿�����g?�7���|w�������WWo�W7?/�]ί��;��Č��
7�N����������f
���߽�y��p��|���h����{a������������q\om
/��
.M0��~�nꃵ��f{�C�ƍ.:�����Ƿ���sw���Ç��7�w~�;�����WW�����_�߼��������W�\޾�ǩ���?\}�0q
�}���n�^�n/~{��㛫�����~u�꩗�~忻�ys�%x{u�3W��+c�;|�y���������ȏ����������8|��[|����=f�功��_���x1���ٿ��7B#X����|���o�����w/�dw���>}�����o�Բ*C�)߽&�o�G>Ù�8x��ê��������/v��} [...]
a�{�q�=�
b?��
~7��0��ɄUt����C܍~~!����˧���+����w7�o��"�DZ���y�,q������1�3�~��S?��{�G��S>I������~�g
�z�����_}��\�{uv������D����u�n�]����w��
�ɿ}�����{���M��뻫?]'��n���͇��;|}r����͛7W'W/?�_���
{����rZw����tʕ������
��7��~r��������,7��+���t������қt��t��ꜛ��wr���6�{�ν]�{;�{�^�c:�c:��rjw�q>������w'����'/1�'���p�_��O���͛����Ww���?���W�^��
f�N�������{p��?ܟ�?��&G8I�0?n�������'�'_xs��n��=d�ۛw�����~w��c�q��+���{��5nu��������QN��������������N���囫��+�����\0_�=���;���m�\������~�+�$��{�������'�i1N3���]�ܒF޽�+�\���	!c���tO�k�<}���O7$�y��9������Ҋ^|���7��2���%��N����3y��'���W$Y�e���������N������Hwr�"ы�柳2.旻HS�U���5�~5��U:��t�׫��q���]:�w���.}��+|q��:-�۫�w�w�9��l���ӎ�N~������Ƿo�>�cB�����뾽����w�~��Z��𝰩�w/o�O~��n�+1��'��'�	���������쾽�x��ﯟ�T"�o�><�&��z+���Z�jF�9
��p�����Wo��xr��{���W���"'�m"b��Gg�������z���� [...]
H���~�����.����s�{���s�@� ��`�T�v'�,����WO�d;�2�ۑg=x�7����/o�����@��^>{����9i�����	���k<^�T���6��7�5�yH.T�K�p��	�)����ۅ�V�������o~}���ί��8V�B>�x���7��W�1���Ѿ�z��]�_
+m]A0,7������
9s�������xs��۷�i��}����ku9�����x-�^�x at T�~wx����(.�z~�s%��?���n����
^Aႆ��\�w��A
�������]�������T�q����4�y�=v����N���w����u��y2ʘ�����
+��C�>��|.��1��n��?������p~�8\��g�̞
g�̟�g�,�Mg�ggg�gg����9��ù;���y8���������������0�b�.܅�/�E������[��� �������=���G����E}
c�1N�4
�Y<��r�'3��M~�0�(q:
���|��.O�SsjO�Sw�O��pO������Ywz~zqzy��`��
�a<�C<L���!Mhx�1>vt�WkRM���G}���C�f��4���l8.�K,�q�
�9�F\t�;uw�p�XF�w�����O���a��r�ьv
F7�q
��i<
���b�
}0��!���B�a
+���0��2��D����.///p��8�q�q�c�q
���p
8,����y��/�/�]/N���
���-`ύ�y
��]
؊�`[�|"���9���iغ Fl�x
�%~�y��=���q�g��奬�
�
+� �
}����6���s��%�m��1g<�L���.7��`�8�9g�\�
��π�YP�Y��9X0��o��-��W��\\�L�F������
.>����
yșq�
]�y�B-`�8��p/EʊBg�r��H���?Bӗ}*5r�(�prx9F9B>�
S>N��0g�l
��y<�p"��
B|2�kA�A
+�&H�7P`�N��|Z��0��
�rv���)�đg����
�}�ô��SNOw�G�j�lߗsl���S�[>|
�l�����+����9(雏�	Go��O~���o^��v|�g
*��?SV�����+�̀p���N;� �23��*]����X�q7�K?�´�
���+���|��:�9��w��BO~�?��B�CL�+���(�χ�c�C�ߙpO�O9��6sAx����8��$G�G�c�����1�!���G����$�v.�Y>�3��$G�G�c������ѝ
+g����(Ln
:�������V��<B>��q���x�^�u.ן��� l�,��R�
�r�[E�� Ձ�[��
����,
:
ef	�.
f��2��� �9�\����g�q�2r�7� @:�,�0E � �����3�ӿ �:��oE��
�X̸
����

s
+�!�FH3	g!� �!
+�A�s9AbHOI:@��C�\@ܞa5O!�#D��� 2-�tO��}�U� ǘ!��^@��F��
+�<M
�0���t�Gt��=��Kl
S�8m
���K>�y�h
]Olz�ŏت���h�$UGNY�]��~<ʟ���N
��\"��dԠ8�e��=�w#���B�������]@��|���h��]��'���G9����4�>��}�rv�Q�i�i�G�
t�Z��y�&���7b at P�����cl
`0
�Y
�q
갍#�tf�ip�D�աw�j�t�z{
�ޱվ��-6���,���U��i�ל����>��})�(�(��@:�F�D�����
+
�Y@]���L�:B'���*	+��$���J/�Ņ�$�"�)�(���Kb�vBM��&Y��	r�L�TKr��Md�ě8��$��g�v�t�uI�Q�%�G�'RO�^�|�~��,�hq^�;��Nȶq����� �)�� �%e�e�
+a�YFRJ&9	I�ea��*[g��B�E�E&�B��Li����.�BZr�W�T$+�A�Q
>�$�#.�
�LQLT��
a�
+"�
�� �`Fb�^�!Q�A``��������ŝ����S&�' �Nh�3"�N��3"�N��3"�NŒ���>�a��
?����wϽ��k��n#F�応���q>g�q�A�]����K��{��ݕ�]̰��ݨX����0�e�i��g�l��
[��v�d�>&p3�|�̝7�z��
+����1[$�X%�1e��X(�q�-���Z)Ks�%�%���ɹ�ve
�wfԾ�n��8���X���}�X�V�#v��H��V��,z�=E�;��u�2��D�Bz�Zɱ�}n��'^�c4�$6�%��A�8.�
���j�S�����F�C�H��z
��
PW�sQ]�W|?�#�T��h�����9��a�uէi4���8�g��?�/8�-H���)H{�R6�M�N<A|�/@��e�X1�'�'WqseG����ήn�w%�W�y��+�����=�@�1{���T��8 	�/;�Ä�X�
��^G�M��!;˾D��K��Y�#l
:qS8q�yq���B
�F��J�ĝv*.�td���ݼ���n�
���t������
���l�0[C�lI�VƓ���8s��S�l�L]���ݬNJ���9����
�"	�.�g�����as��ᗣˎ������:�����m�[����;px8��q5�'Dh<d�
+�CG�v�:��Oy�਎�'�S{
?^����Y%�}�5,-���<Hvǐ� �F>�tX�/uO	`Z���Mo��P���E0/b��gF�t"���<?��k�<�
i#>e�>�Y<�Y��Ǝ�'1�c�_p��5�z
JX�c�3~��G�0�rt
y�Hd/\bN�[�)'�e�ir�&Wjr����4ń�Lv?�%��M��Q�L�5��:e�or��	�9���R8P/\G'.��^v’���Qt\j���FC��C�~��pQ�EA(l����+�r��h
$�V{��V=����ӭG���殝
+�SCjk��
�aO�{���Z�Xܟ�������-Ee6�
'3�1
~�|�5�
ƏR�NN�P�r���~s�����3�qMz�c��>XC�����8UmBJ�sѧ��cS�]
V��A� �S��a(��E��$zbs�3R�v)�EW(��@�=��<)���*�z��H?���
(��T�LN9��"�K
�,�5,z
(�aQ�f�
�fpT����$�� 4�Us����� �N0��0
�(<�T��A��炡.���K$��hp©!�c{�U<B'�*
+šM�<}���gy����91�!�cHG'!�%,��&�s�b
+R\�i>NW�a9�
Ÿ
�	�v��"�*)f
<��G�
+���#��]�S���
�c&N
)@6
�[.g� 
�)H8�bK"�aLA�
�
D]YGI��\�I�W�ۢ:Ԋ�Fm�
�Y׊â:,l�0.�e�2@;Ͱ,��ٌ���k�]+��)�U�����
+g�8����ם	�I����L�ό���C�]>��/LG�Gƚ|�.�
+���g����X���娢�
Uӕ�N8���q,C��m4l
�I
�u<%�$>��w����{����n�����9�K��C�b������6���r2�^�a3�̰s3��~X�ڇPyy�?
:�&t�_�8_�8_�8_�8_�8_�8Q���
��q��q��q���d\�v�<�h���ݧ\��7<<��v����T\O��iqA'��:�3��;�l��.��y��M�3�[�P�"�n���9�0�����*�8=���s*��Ƈu1P��q�����cXy��V�����ɗ���"6�nc�9�i���<��͕=f��-p���^���L��L�
�KJ~����[)j3�<�(x�:[I�ߦ�_��7[��K�}J�Ojܢ�-�ܢ�%	�%5d��u2�E�Ke�ԹJ��f��(u+�n�*ݔENQ�.��I��]�{�2��*E!^��Y!��	>��{\�n$ow�vǰ��g���H��#<� }�
�WtG~?��y#�%OuFF��"�g9#�5��P
�$�{炤WF�
tF>�O�(MM��D��-�x�
gO8
�V��������t.f>ڪ<i�u�rt˯����y�Ɓ���b66����=Z���xg(�@wD�?��/s���NY���닭�ic�Z�Pfm�I��nc�R�9Q�m���M
+rT��*�T�
�-Q�RUa[!?�����Rw��Z/�]2J9Ao��R?���U2iI%=���J�^I�[��$m����u��:wo�������9���s�ZY|G��ֵ��|]�����!̩|��z7Z+	����>.�*a�wr�Č��,�}��$Y(5~� ����	�~+���%�l�J%���Z��Z
+kŹ ���{n�DW��Q?�A������C<H��d�NYTT�T��T�Q9
��"��{b�P�c]AeSC�[�Q�
��R*aVn���ʪ�ʢ u��|�*Y�XY�K�0gU����t��+�
+,��ʧ����Zn�$l[
��6�
��9���C �ӏ' ��I0g{

:j��#`4�?!��ȫv¸N�&����7��K�xI
_��KyI!�VU
��8��÷�_�TZ���z��J:
d���YHu.:dI��^��_P*�U�Q�㹊��1H�n�cp��ep��3����(�n�l0��3��9�x�d�N.�ūz#ۺ"U��NU
+�J�4J,`�Qߣ;Z��!�u;��Y���\�ɞ�p���>�:�k���)߲B,vh�����c1�,��̳�
��“�;]e�1+o���;�MP
����i/�nc�Yy�f������������x�����o���;��_����~�79�̊�$
�b���{)�2�Q%�a%��[`�V��h�eZ�T{ۚmS����M���iwLCm�:fT�=3L�Ᵽ{���qYW�����ѵ��v؉�.�;VM�Q���Q<���@�h�!O99Y��1Hzz�F*p.E/�=N�ً��)g��a�	�k��xfE�Z�!�����2
��2��Uev,�#unr�����qt�x
��#
��9�
+
=%�+ݻ��鰇���78r�'M_���ۘ����C��Bݑ�����~B���|�]+���.
�6��*���׭
jkC�ڀ��:^V%[Ⱥ��L�TY��֖�m$���O�ZK��
:���âr���`�S�=�G̢O�j�ZqJ�i��>!��s�'
wmd���΢�|�����9|��8d3��{
+���C��J;�*7��.Zʢ��[u��T���,SyEt�G��h��6����Dԥ`S��'쵟L�ꤟF� kLE4)?�J5�#����?��m���>*k���O��MFN�
�b����9Ǯ՗#� ���r�n��X�3�g�0z{�=��ڍ�Ӌ7�ڍ۾
� \*��
+��2oTۇҋ#w�8�5.s��+]�nv�\��r�q��^��5��sȶm/�D���S ������`���\��
�
|4c������u���\�;
� ��<}Jc�;��ue��\T�*8)�,��J�I�fE����I�����/	0_`�$�|I��� �%�/������K̗���Y�$�|6��%�K̗�/	0_`�$�|�?�3���/)0�x���x�
+��Μ9.�t�Ri�F���~+�`��/z~V�J�ߪꇙ����Kskޙ�9PL�a�b���|wa��-���f�kָ	
�V�cg�ڻB��e���?oa�
C��uk�
+
�U�����9���fö��\��F:Y��#��V�5�{$u��(���P����\Sϖv�Ϋ^�3�t
�9oR�B7~:,a���p.��P�G(�tC9kq:��"IO��v��ڏj��U��AY���m~S#é{���\Gq
���T��V�8Th�b��̚�-%(B�d� �r��Ѐ"Wa�Xǚst��
�~�V�D��O��
��>-��a��mG��6۶6۴vu��&w�?�����/=7W�k�-5M!���N~�`��c�%ϻ.�)‹��'����l��U �_��R��K>
5������YxH��A
T���s�	��J�=�6�`�wu�.Ŷ
���XlH�ˇ�X�ϓS���Z�����u�k����ZMq+8�Uh���
�U��=���J�=����;����N�t:�����tn�?�O�1+����Zn駨�3m	��N�
�BC��I
+i@�=
i�9��
��8�
+Z�BqeL:�E�
�
�{����7GYȚ�
i����A� �1ɖ��G��'�'��?�(G��`�[u�]�#��'�9�A�ͷ������
+��1a��F��$�Eqr.�_��pD���X�g^�4��HH�<�4_�Ix�Y�7-�U��g�y�
�gu�}��~��_������1��ⲩ�5Gr�?MW�GԎ��UsQ�,V!�ٿ�)n�VQ���vs�oqt-ыK�b
��N�]�1n"K,c�f,�%�1�
��*�q�l$�i�7^�u����H;L|7�����?z���V�'�t}Y�4�\�{�iO?���pۜ��nQ
;bi�be�,����.ye�ǩ`��,�_���/���C2=,:����m
�r�,^��AhkK��zM��.V��+�+������J�k��r��6+U��
ΰtWY:�����;��n*ݪ�ʶ�J	x�������t��j~�X�f����qx�8k����U?��rt�9 �o��D��c��E�d��
��~��d�� �ix���3��vT�f�c�7ڪ�o��*����Sm�
j�w�6+�3����hg��`�и�>���%M�q�$��E�VicU�ؒ3�V�V��VFo������z�n&�J1z�֒O8^��S�3��뇛���
�\��#&w���y!�r�9Mn�)r~N��sj�YN��9%��l�>g�,�N�༔�cI�^J�K�S)|ת�u~��W�x9��u�`�pa����J��\�+U�ZJH�����Wc.��Fvu��c5#���G
FvO����2m{U�T��Y��G�|���w���yw����+�^���=��7������{���}ss��_~�7��Qo��F�v�Dp��Ӱ7TD�ȶB�ܹ�w�
(d|�S���������>ʯ&��?�'~�?��Ϙ�ݯv����ݫt�o�-�w��{��
}��/[g�������l��
�;9��?�yys������/��
no��~v�U���.^����}w O��|��͛��~{���绿��7��'��T٦pI��#d07>�qgb�c
�9��
+�
6��!kq��;d�@�#���	g�~�>��g@��nw��;��aw&�
龸*b��*
v�1t0�;0`��'����Lgx<��}��C1�����q��&����]č=-��[A��h
�	�:L���rc0���r�a6��yl�s�w�<k���f�_p����1����C�Y���@�)���5�H�bD`V8��-���<����} ���c
dm؃��;xE��X�1�Al8��8Mn���y�f?�`ncĬ�ۘ=m��8�܇�
�3��N��x�09��<'���0젱1�����W�25aW�6�V�T�Y�\�x,=xk�K��k��8�
NX;f��a�!�{\�!Q��
	��
�0�o8e��?b
8��v�J�Ę0�	���10���o�
+{h�
/�7���qR��iB�}H��\

+�'�H��Ȓ�X=CY���:`�1h��On*�����>�H2��CZ`f����+�
���v�H\�
�)� u�N �A���r��ǀkӘ��� �J����� t�X��w���$��\~�D"���0x�����M
+�]�Bp�6fd�,	��`sAf����A�.��3�$��3
�8g�
	�I�����ig�xp ���� 
; ���u��&GW�0��s�x��4����g�7�
�g�،�g�P8v�
�0D�`G�up�V,
8
+0f�M�|�[p
L�J�r%��3@���2��~k�!��[�N��P��+�wƒz�^��bSc����W0�q��F
6(
{����g0�D���X��&�Ml�:��
O=��.�A�{�^L
&ɇ�.�ڂ�����9�E�Q����s�M.?	���9p��+�KF
x���Mh�񃼈	
2QX��X
�������0
x$XF #��8�a"x�)f
�ˆ%�*�0�c���(10�)���#(v� � ��}t���Lg����
Q�Q��di��ֱ$��	ُW����Ya��Q��F¥�h�z�3d���D�#��a�&��0�}qhȝ��'�
���"#S5pV8U��&��M��� G0n`�;I-�
���G�a轼h��{wwtC��?�i׼{��o��P��Ed�
� �T�|/�_c���T��(�
icwx�g�����|�u�{�	��v���4�@e�V?���)kD���'\���5p'���#�
+Pд�g�8xz���p{�99 >�b�<�8K�t�3�x�C�xAA���0����{�om����
�"�\�2�'��I��!�z��,��R=��dž�M& �����#���@�S���Q�6 >Y��;���=����+����֛��q���7������w������WE����ۻ�髌��_�����ӯ���"���d�<���f�ϯ
+}��@��_!�<��g?����Z���(c>�Ox"� p3���Dn��
���[���X*����
+�]1��S�!��A�j��@�͇
��H��ň`�9���Ğ���t��*����A
q7Rp�� ��q;K)�����(��l;�U�|L����V�O��a�O0~�+iq�:ym�� M�-%GLn��0�Y�5`�q�cfp@d
D��
$z=pC2[�H�
T
l�)��)a'L.��w|��!�6$�{�qJA�V�0}_b5��y�i�R��v�{l;C9
�`�

�
+;\n�N&�^$	���a�� J`�8p �o��;��
�_��@~��C��N�⸗�� ���4aN'��
�K��,U��8��
$�k{zS!�H�����)Ұ�^F�G%�<`2�v
X6Vǹ�h�.��`NX�(SdK��n�x&*�A�Y �� Rv�2pMGK#06���2�aZ�����<ѻ01 ZS(��p@�ԏ&�?( 
+%V�E�>
�s;��2��:bApl�
��Tŭ��@f��
�3���W�,C���
1'�)&�YN��~�w
ؙ�<	t�W �e�9�U�,����#?��Dz��B�Ў�𭮉iB��F��qO
���_f�
�v��I�j�Sc������ZPV�!K��@�\�y  wA%nM!)��-��(�}��H$
./�S	��ĩ
6ԎH�qD�`;�N^��1�	b�
�ʣ��8�5&�
�	@7�����=2�f���L;Bs`��s��:b��w�= #���O�O��GR'�<
>Q�.�L �xGo�����N�/��r������Y
w�6>�!�R|j���=1hyO0^�O�
7	�x/��h�M ��vNy4h�@�z�!j��g�� p<��1ܾ'���[�O���|��f�q�lyO��u�	=�VG���b$��'��˂��!+Cd�`'d�P/�Iv~�3��
�$�H;�1d��@
./����Pa��
�uCs�Y�
��0 
p����@�,���:��"�a�(�7�2���z��.�_ o
�H�.
$�
+���O�ܑC�
�(��k�z�u3W���-5Q�5mg^�65f���P�d I�c�D�R�] V��
'h�d]h�
 ���pr���p0�aP9���a�	;�*
�
s����}>��Cp�iX([fO����Y�'�Z�5���=����7C��@���@MLe���}���H	kK1��QI_��" ��Q~Bb�w�#qz���J
�q^84z�84: p���ϲU8Rņ�M
+�U�����YD
��#.Q_�n���/��b�bS���D�rj����R&�}
/:������<������WR_��x�
+�{����4rO{(H(b�s3]y_y���y��
�xeOj_-����HP#z�Z?
-ߋH�,K��D
+3A��Z�l°�
�tV�
�x�8�a���1�M�Q��<~�*���$��I ���~ ��W�Q��:��F�/n6�w���6�{v�,[U������
+v8on��
�k�8*�a	4�
+ZS�pO�o�i�e��:��jh���0 ��R��\o�9u���h���#
ؐ����=�	P�d�y(�0\H�l%1�V��i��&� u�5W���B
���e�a
U��Y��.ƒO
�5Ҫ)_�D�:0�]b�Y��*Z�I���,�h�(
#u��
�UV�)=�Ǎ���'$�5f�F�"m9_�
���n#�=A��~�-f��
z� f,@[��m�؃���!�fH�k�TROA��@	�0`�
D�����@~��
	ۍ2�K2�P(�uHo�-��M��h�x����`
�yO��M�AFg��	��x
jd+L�Gگ'ihH�iF��E�w������b�8՗��TO�9^"�*Ȗ|Gt/L4
���|����3r�1Cg�yY��
+���
+n�.�A��9�(
���
�
+�TY�|�j�@�Z�2��z�7L�J
�4 ��`�
����
e�L�ҚY��C(��d�*��'�py�"�
+k����.�4�e�v
�k��cy�"'�
#�o끜3���<����-Z&h��+�c�[�h	��ԍT�f��Wa��d��*0w��hs=�ES����
� ��
L�RW�t0r�x����	7lt{������ �.d:!�
al� �.?x:Fh��; ~�$��px�.)�0!��+d0v�j�{cq�댷ø���jLG�`��c1�����
ŚT�,I�18��.��q��R�8K�����I�
�䰦!���� ��l}b���ሾմ>�QT��&���eiI�.)*�
�3��A���Z�b
�(���PG����g�7J�����E�S
s�O�
Ӱ�y�pop�髮m�����^�I`ړ�Ě�cҠ	f�|D*�n-�u@�=ƅ��܍$o�ղ��(Z<��Ц�e�7�P��=�Hn#TL��B�
�h8��-�RJ�
��a�A�� �=9����]4����l���O���Ń�]C��%�ӹ�dZ����v���4
b�a[{as��������ZA�Ғ0���

j���&�s$z��.٣��8G�Dk�y��c�eeE�
x����4#8����U_nYb�N��ɖ��d=� j$W(Ȟ�_6gb0�
:�4rn5�v�/��� F��$�j�QE�&�?|��W��X�,�0i���x���)SFMa=8
8尥��"N�ҞfJ�τ}ߠm�1 ��m{�5xYv�zk�7�È��S�
��`�#56�ؤ�<�f�w���y�n7;A|ZK0?�
+{��0�H�[-��^
��3�.T��@�_�|"�gR1/�� �
���Ѽ�>�
���
{�M&H�;����
+�!06�S��95��P�	
x�[]6l�F�naDW�NI:d���!�G-`���(���J�t��í��˅��}ց:_%
uM��5�
LPIP��=j�>�ܕ�5�a���e�Y-�
[�‘��y ���Yܵ�[��`����0"��t��x5y���8j��I�@��f�^�
�ƅ3k(�
��(�Ƭ��8���'O3�$��`��Ӱ	:�'�p��p�
��N$���4��qg�]4bs�j�(n�y-K�O�Mn}��J�'�'��_\�
8 I�0E�c��H����^32a�	%Ƨ9�F憎�t��8��b��<C�^@����`���Z�0T[&|�q�@m��H�/3��(4�>Yb��@͛q
	\�`,b�5��6�C`(���ʘ>����
)�&�$�L�V��r�}?
�P[�t7hw�'�t�`�=S��#�(�d
+��
r2ӕ�+a�ؘ�)����L�D{9�(���Z�&f4�c���SZ;ϐHφ��CUJ?=�xXc~Pm2`�&)�q�V�lmm`���Ș�)Q+)�����&	2ؘ:�$�L�@‘ /1���#�*p��������`7
�c��Ĕe���
<�Ѱ�`We2�	v�~���9ѽE���O
��%4�%.��E��z���U���_H�$�6a���g�ت�!=�c���
�h�9�$R�LO��^�&�=F�ؕ�'J,�ٌ(׶A㒊�$>y���D�HI�	b��A�^�A��tYEU&L������ɸLZ��p�A�L9C#���$�-]�+f
+2*Bɐ�խ��0��P��!����+�W&���Uىy
�3|�'nU&�D
�)&Ѩ��Z^ŧW���3V۷�
+�G�z�.e�[$WmPi%
�3�ٷ���3632L
Qmʗ�L���@�K� �1�	�}H�D��'�
+�;�}��F�v�R�
F M0/�-���B��PA&�6����p��`�g1!$
+
�·k/
�T
+��1���.���0X 2�8�
�g��(ci;�Ԁk�D��1q�~��,P*��� �I yD�3������/��h
H��&�v��ɭ}�GI
�ee�cREqf6i�8>+z��њ��G���?Vm�ړ�v�r��[7r�
��؊�Z7ٓrz+6���Uf'{��*Ǽb�ʧ�8�
+	hJQP
 
��E��`hI>
 QKP
:Q
_x���:\��*�C�(҄!*�D���R �
+ci�'�p����N�4��Q8�D��B�p=kܫl���VŤ�w�{R�]EK� j����t���iT��ҍTx�ү�-=M�U�{%N)�u]S���)�U��=匆��8�R�U���ثHŦޯ�
�]�Ie�Б�-[F��,�ĩL'*�i�Q!�ʔ��O�9h^]�T���A� Ye�R1�M+�
+�U�4ܫ,r:H�e�S1Ƶ}P'��
+in�#U at t1f�je-��M#j
��l�%�[�qUPx��"ʋ)�AWFh��2a��we W�ʈ����x��L�*ҿxT~@ә�/��*3A96TbC�A��"�E�VԮ���r�ĺ ��iɷU��d�D�
� ���6U�31w����Z��)�����/��=����kV�@���yc�ɷ
q�k�J
�٭F��C�&O
ɬg�d�PB�d�t�ԮŴH@
i[`���p�
c�����.��S��c|x��ki�s{Z�W+D�h�\N�D�
���ڿ��\��� jW���4�.k=���[���eI~�z5kw�����^�V��W�Yq��
��(A
+z[��
��P�S��*�jd���چg�q^rɷ�<'���7�� �1o"r��"Y�GRY	�����e,�
ƠC4Rv٩g� }���
O���[�a�)�%^�>(��e���z�W���
�d���
�
�
p��S��5޷>#�h=nu5w�B̊�3����/����ƀ]4�\L�Ò�C��E�m���.Nl�$	_٥6ѰWQۗ+1zJ��ѫG����� �h=W�Q���b<ڜE�=��������7`20�T,9�3�T耦A� ���r�`Py��-��Z
/���}����ؚ�ܮ�u��E�� ���T�8<^
+�Z�{�|5��=��Mf�;��&�2�~�>3���g1�߱�` O
�!�M�|� e�3�۰
}u�?��[[���"���Y���z
�]V�_�A���U}90,Nr,�;#cS1��W4��rUEV�sjz�o�����㘘�)�J�il� �����}V���h~Α�+����H&�D��o�������:,�K1*�`%^8� ��䐲P�].��I�i�P��"S! gh.D*��M҇����G���=�*:��� T@<N�p�X3iv���ĉx��@A��Ʀ�.֍�Y#��A4��p�i�-����F
̢(��vJH��C���g���I�ej"5C��"
��Je��|�>�X/V]]R��L�!pQ@.��=AI%��	Xq��5�y߰��`]d��]�I�\����F�e�
���1�,�!�s2q��r\ދ�
�#
�Q8��<�)�F�� M1�~�Do���ԇ�} �LI�
+�FS{qL�Yo@,�5��Ѳ�B�5�
G�,0
e���Z��%��#)բbw�S���
�
+�nIRS��� ���A&��Os�+��ΐ���~#�U�K���N�TZ{��A�v��<�����i��ջv
jk�K�
������S��
J#^�/l�K�D��t����-�]�
h��
�Q�ߗp���B�
�ʪ�rH,=
+X���1�,�
c}����ޢ֏�ױv�e���F�%�<��,+��H�!��������p���-��o��D�3�r��iԛa���n���
��.j����'8ڀW�|:��8��tߴ�'��Y\q
�%6
��\�J�Y�rQ����L��r���cS
�LKa��9�¡^-`�eԂ�EZ��Ԥ�fM�Z�6r%����p@���[[UÒz�G4�pY�T`)/?t�rC,k���|JA!�
+�ca)����/G���iG���EuF�b���Q��:�*7��w��n���D����~����z�,d�z�`]�O4	��.��0Jm����-KJ2 �3�$ºW��+�*
Z
�Zyc/Q��$��/<0A-�&%и
+%!�CO`� 
<q��
;`���/^�"�"u���:Aj��� �̱�s�]~�
4$CY�}3����Q��N:�媐��ju

Ui���rV���]�(	S�/�cBXa���&Z�Y�MD�
����
X�Â9� ,d�R˟
��[

dbpR�%���ۑ5��e�4�E Rd�H&���0bѹRة�Ob��8IU� !)���jJ�'������ g&� h^
s��Cy��+�--$Ȕ��'�C�:Z�ܠ�Qc
M.�A
ܒ�f)9͒�^I�9�3�Ҧ���!(}���!�_
1���&s�%6�`����8�Pd
�&M�'�9>I��3C�tVB�1lM�Uc����	�7�f��� �點&)�潄BM���
�[��
��G�
�%)O�z�%�3�bb�>�+��+-{�0�`��i}	�Pc�����4!���*`�t�k��Sq��R��@��1���0R��B�q���
_�$�\_�/0B>�
���id �̧X{�J�TXk��j�I�
O�c�j�0�wcc��?@��
b�2
�}��F#�A� 퐆2F�)+�F���Cδ��KW��N��OS�`�m�@����L�2����Fp�d���
�2(�
j#�b9i� ��� �#L�
+������ �d�N �ދiŕ�#�a�%�nd��-��9���A:��]��ЊI���r�p G�)K�n��x�b�1�z����2�0%}y�V�y���ѐv�ĥ#��r���a��@w0\s`R��>�L膽�;3�l=���"��9���1�]Re
���C�7`#�,6Ɉ�ÌG�1#�T�#
�2����BȄR/�
32+o�(^6�z#1y��@�
�'�I{�`r`f`�ʒ^�&B4�
����7sIm‰j��J�Pc�lO
-c�|zN���A���b?%K�p�)݆�b��L
+F�����R�fK�
������5i�tq�
�s-�
�Y�9��8.��
��SoR�.�^o���znjn����U�UR<O-�⛊^�mѝ��5�6$@�j�Q�#G��FE��>|�����W�ׯ(7bp�K��(0�U\�%ŮU
��:�e�H�`U
��OU����iX J>e��V�k�%�xG�F��&R�� Ńf]��I\$�D)��(M�O�2!?��t�k��è�0.�����*�:$8۴�_����G��u�寱OS�u]�ڲ�z�b�
�'�f@�D�HU��z�"f�*ז�[\���M�ڵe

I�@*P��5������3���j� �{aY��xQi�,Ru�k����}�_u
k�	�6

oW���Q��}Xm{�U���tF�]�ڲ����"�e�ڵ��a
�B
+�صԜMvb��F��Ƿޓ�ǫ?Q=KU����
�or�kK�!̀��V��iϣ�4�j�,}NK�`qc>1��
�h���L�nK�#31��{ dX��g��Hs7>�q`��KN�i�� mC��K��"e�--�̇�b&u����*�^����I�,��Ȯ�^!����5� �BU'R�&ս�ply�_C-�L���5�3I��@x�ҷ��,�UBz�0���e��!�	�n`#y&f۷� )�ebl[�
l�<"R��?��
s�$Z�3-��w��FRLc%���F�8-A�O
�64iZ2J'�.G������6�p�����:���
U�Q�ѳ�`c��`�09�
=u
�1Xwb�����V
+����ij�-R�����T,�4�V-l��&SOn�ja#�W�:ǡ2��na#9J�6JH[3���
����l��J���P��	��u�(9�<��8����:
+���OO+�����5
>���c
S��6�*��)���5.�T,�$I[U��T��ь�U���81'z��x�_
�ŁFu��+�
0�$IQ���>tb��tqy�T�����O
�`[#����}j
�
���yOl�mڎ
��
��g01�VR
+D�z2ʟ����s�4��g��$�@Y��d� 5X�R��_C�Vz�
X���`V at f�4`h6
گ!X�����Q���k�:I���6~
a�2���[��g�'��ګ��#(�J���@L�`,�f�^����rnW^ЍW�0�JV\���WC�*�I�,M���gZ
�"��k�$� �ʌi�F�5漀M�T�jPSc�	jj�ٛ���is2�Ӷ�L�rȳ
Ltګ�lИ�=�&*��x|k�d���|�O�i$|�
�6��a��J%��
�.�|�a�5���
i��̆h�g
̳��d�7?S7�;fX�o��6N�3#��?�����V���"�b~�+��
F�	M"L��S�=��A´������`��\\$��a'`��/�=�RmJV��A����r,3(���a.�I)N�3�G+#���3�U��&�cb+�0�d�2�d[�\v?L~Sܓ�K
+ �������"��ܥ+��
�&C&Q�
�Rn�U7�Tš�z,�˚
+ģq�f��T�U-TAw#M$��e��d�@�>up4s�U���mh%c��L�H�n�6@�W-�]K��I���
��@K�߶����H)��Z�r�Y�/5�����0�SO 3:1e�U�Vp��
n=̥q��Hu�[1.�a�\�27�»D���U�!5-�r�}��(��M��'X:�v-`%SK)a�ˤ�AfѥT���65+�S���|z+��'�BDŽ	��`2�N)�,H����t�
֪�L�
�|'�Vcjs)�L�'=K�/��.��&,A ���� 4't	0�R
��C��3i9יV_��R�/�n�n���q���Y'D�_`1�aS
[�0'�"
�������*�����B��R�[�垓
�`a�R���g3�<2�m]=�S�V�-C���E&�PB{:�R�r�
$qr��
V�ͥP�{l�Y�<�C�$�� _^�$�
+ꤰDDVT7�a�.�
{��X;�� �
�*�mk�utH��:M���洢�͙�Z*�3Eg�-�"6��(��8�⌙�֓���J
+���*���[᥆
E�)�/�,b�G�P/��dE����ܚ�?u"�o���YVf]��b��Wq���+�x�����(]�-1/�
+M����֙mJ�Bn@�'��2xUZ���.�"�t�a�ހ
-���
A*t0����H?�{�%E��i���Hs��!
)�x���������<���t�"�5��k~�
!Uk�
��sl\Z��ߐo���nR!�
�F��3V:[P?d�ꇄ��x�� ��mgz	
&*<u��u�0��ϰ�/�|�O+V��G�	d��C��hBU��sK��|��')�Z���J��Q�N~�vD��	�@�쇒�(m��61�$�Q�a�ňˉIe�"K
�X�%	�@Hin���X7kQ_���˘*58/�>�!L�L>���������,��@_J9��a�L�
R�0ݿ�x�N���H�q&˗
L�y�dHL�g}7��m�+��E�2
����8J}������_C3��+��9r/V�����>D�
.�ʙ\��O`ô}�
��f�\ě_-�ɳ�](�hL���^���>UH�7	�>�Ɂ�
n�T���Fk��;�i�
\/�V��4�n���fqH
\�
X�������E�5�N[�ķ��Ii�0�2�Av�� FPm���Y�=䮥�0Ѱ��H
7��(�ŔP�|a��Ň^�ͶuX��������Ԑ���4-�{�,�+H�i�rN�F"NR�i���d����y�L��	����Mjib�NE��6,�9	�� i�6MX&V���ׄ
Rj�1���`�!�$��I���a�(	�글
k�B7FH��VP�Y,�[p�9?6*��.H��b��/g�G�A�C�A��A��B���m!����Q�
+_���磟�1m�匄��b�	Ĝ�;����6�=-'�p�!�3X*��q��q������P[
�.Y�YE�N�Y�`گ�JO�gX����
��o��7��%�gVu8�to�_�
;+G�#�:1
�H�M�
�C2����f͌(�%p��F5��𵚇�Ϣh��2Ec�v)�?�
/QZ�fB�nVR��C���l�Ҕv��Bg���MS���v��X�ޞ�U���%�%�}n�
+�A*X�[�2��]3s�ؑ~;����� n���@� ��m
�N���#�n�g	��LSl)@vĥk�K9ei�
�=-�
Ctۆ�xr�b
� d9�A�|Qܥ�af�Ho�I��f��
K'vs���i@�'���Cv�F	�9R�������u��O��SG�e�j$2�&d�C�;푶!��fQW��I�Ъ"2�& m>�4)�S=@�[�Z��^�ә�j�F��(sY��W���#/�nᑖWw�ȴ�,}��FN�	�����U�i&sU�)�]5*o�vѩ��Tͪ�%U���}�Ų�r���
+tQ��7�5�2�Q�
+/R��2�� K�MW-�
p.s��d�SF横�Za��/F���v����o����qEB���aRj�aS�Ӣ�U��7UR/�AU����f-�"`U)@%�U9A-�W� P5
k(�� * �,��p�*˨ P��8�V�G�TI��T!J�-Nlܧ����f�F���YU���_T0�YjT�pU�T��֩>�U2U�U�^-���ڪ��f�W��*�J=R�h�N�*c[�/U��i�ln��5{V(����U�d�g�RFK�଴�
+�Y�m�'.��\�8iʺ
+rV��E����^N:��ќ��v������D�JKgs¦ u68�*��0Q�����ٳ�#WݮM#u�neWiV�VfU=�rT��b�i�-�"U��T�te~j[W�+U����J�wek�/5Uc^���2���U�^����lXUگ-��*��^���+Sg��
�ͦʼ��h�m��@��j��Ϫ�
�:�2D7[?(;���2��7Qg4G��R3S�����f�#�Ty
�E��
�<jE�̔��&��5�Ƚv�47M�Q;�v���[���{��&͜��>i^S���,��|)֧�f�k*�[��*��b��٧x}q�EE�XT�x"���n˖\�^�Z,ji-Q��u-�g�l-��3W�{�
n��JVPCy�
8Q��&�Q�o����<C���ބ]�M�@��������!TT��1�X�fʠ�n
�0�
+�h!l���
+�����h�
+u�V9r��VR�M
�|YkHu܋V�같��V�h���y�-�S�U�U��V�� ��*]�8����QZ�WaVM�@
�5�.m�����v�:�L�G�4mb�����
��:*jN��r�]Ӡ�"�=��S�,
!ز�� �ڜ�"��M�3��v*�X�T���
�їM�b
���*�S�4U�h� �N��D�*s��g]�hU����YeV�M����U�h�[,�*\�i�֗�V�����*��i�WA��ʯ�k��n����8�w)�Y�)d��
�k4"`%
�33Ŷ�#V
+�2�-�b�5�����/:혱t1�����o�u��.5P�Ӟ� ���E��%�Y�'4�Q���aI����� 8J���p��Y�kM���R-2d�$�a�b>�v�������5[
�վE=5�Fj��;S�M���k�r�*R�]��ڊ�V�ڱ[�zq�MR{�φ�kם
Ȩ����)�c)ʼnN��A���NL dqu&i�\�_�2X�DF�a�˸�$2��Ν(��>�HwC�i��K�[�� 4��>lIT_\U��/PW��iU����&���tM���܊���a��j���Q�e�������թ�9M=����s���������`�
6���Q�~�V�"����a���}��W82�/7���+?m[<�;o��V���l:� ;�Yn̑>$�m �憩ѵaL5�7����&
����Jy�vז<���y�5�g���&VMԗ�9����NA}�n���Ui͗�gX55�?�
$�z&轶�� �rU=�s�LP�GZF�m�@KH�Ѝ
�0R�4��
F�(�N�~Q��v�ujۆz
+[n��R�j'�N�*ļ
']�ڬ�A�
+e�<�J%aIbC]u^*
+QuŋSX�O�ݔԻ!
i��\�瓤���y]]�?��,���<�ڵ��>r�� Q|���g��h'��G�х�nĤ�jK��؁n�N͢@����|��淺!�&�Vc�%^AFP���X�3 ����U��z��ئ��erx�
#��&��Ǣ15lL��l�'��e��L
��#�x�X�e�mc�-�}��M�t�*4gSe:�nA���:
�� ��^��wK8��7���}�9��tl�XG����bw��
��֭�� �o���0
F"��}.�V<�)��1v�ȚB��ǯ��W�`Woݪ�_W��X��
�R!��E�
)���k2j�W��k�+j����M����Ti-�vcݔ@o�Vs�
Jo�WJ7ŖV-S�/�����N�o�زm�����r`3�J��5Q�H-�iM�P�Qј��:�tn��j�(��6�ls�*����Q�S#����;.�X,�p'�����:.Tu�I�!�Xl�ɪ<�^�X�Ө,5d
��p��é�(Y7�3ܑ�F*22��˚�������Rև�z\�;�-�,.�lq��kԽw�8�JόP���”��(�k��v��e[l���ܒ=ڨv����5�!�n>K_X��!O���S/�RA�q ��7�9�!
�A��,s@��L���F�$��~3�4!�ZFk�o��T�!�r�1��X������#�
���Z�=@j�r��қ8
��W![�b}@��0ۖ����R���u�`=�V�a=u�b5�ud��J�zE��̚�Κ�Z��5a�5�5q�u���hջV[Lߦޤ�U��
RfjFo�'Uq���Ʀ�V�DE
��6�L�hE����L8�_�ʵ�}�d�"��H��vg�T�g�84:��y�#΀n�&�3�X=؊_&'��A
H01�����Ĩ�H
+�&���
A�qy�h��J��42��6Z�t��Z8BEN��4���#snb�z1v��1��,z�z���n��b�G�'���C[�?�#ȗ'y֋
=�e).����
u���A}#�<[ˉ�'�
A��|&NM`
�jĂd b<�aC�IK]3�g�J�J�&�1�4���h�����!�6u���F� ���Ƌ�'�<Iu�}<X�3� ��
$Q�R �3�����s�}Z� �=l�T{�6%��i
��-��0�w�xr���E]��7�gg�󌌙R��$F
��3VQ����fW��m�1N/p9c$X�
E��9H
���3h�ՠ�?��9����#�f�;}�!Ν�X|7�,G?c��cd��է���$�Bt�
�~�z������ˏo{{œ�څ����
�����&�
�k�~�&��O�� � ��ʲqS3�2J$mdH�`���D�
��
�D#���67���P8{��
��<�����ݔ�>Yy2s��d�`�!i�d8�^�;�^�!G��0� �a��bR��e�UV���M�@
 .b`������ ��
���F��Ycho�=:����7�-;��5�tj�b380j��
���a��A�F$��(�!�yM��0�uCO:�+p(^�g�
��-X�g�D` � S�'�sp8C�y
f@@�!EP�>|� �	!�
C��
S��1�4>VpaW���|V1��;�!���a`<'���~HL�aiΑ6U�^A�ݱ�7!���H� 5���Y!Mb
�͸�:�sZ�
+|���$�U�j�-W(��"��o�V����c�T������5�`)VF�ҀX�2ii��'�

�b���J,K�Yɛ`02ږX������cK0��ذ�'�biba.���A�=�g̗'ӝ��D#2�3?Y	;6�AYd7�{
�"�e�˞d$X4�����
L�f���2�y(��
ˉ�Vg8
[3x�
�3E�%4U:��&��$
��2�u���X
��
+�#����#d:�m�({�EL��#�Q�
�ƿ,g�UO8{�MN�bq���h$ƭb����l�2�(�1m1V?s�;
�|�1

�`�Q�I�(�j�2�w
��Ǣ��!x|+cx'�΀�#����0F�_&Z����CL(\b"����X�0n
|oO�-�'
��z�h�oҖn�b^�|��
+��|�(u�&/� y{��1xkH�#�WOx�����i1�@�m���/�ց�r��YX��+
�\�*�!�9|�uŃr���i�!�*
y
ͮ�#Egr\���c�o/�~-C�X '����aJ��gւ-��;2�eR��9p�jA�V#s-�
�%�t'g��1�
�
+�T�`�o
+%F�3h�ݍ�ԆAH	��@>�{�7�,S��<��2�}`>�йgY��1�lq�
6O�K���H��,8���(c�
��Nѥ.��/*�k$.�x@�}O�"\
ZԘ*Y1k���f
g,�s��:-
Ѱ����~�b�%�
Ob��e�a��
��h�=}ʖ����2�{�T'=/F�3�6Γ�"��ayY?��uY�|	�э��0K�-���X<�U��
�sb�F+qƊ�ْ��ĉ�����YLWᆄP�܍L���M��rÆ\����e�̆��ȶ f�t{����,��)�
�	�E
�s�1��'k�9_�Mꨐ�	�#O��{�-�k�0�Q��]bZ2g�qrad&,_X�>�q� ?v��W�q�i�ș�Y�+��v�IG�[�e`H%ܑ���o�(8�k�})l�	F���A���+��7���H׳���k�!�y�P��y#���]E�J�,)`�pO.�a�h��c�ѥ��g�F��ˢ�y�A�By��Emi�<3f?��9v>[�`Ga�� 1�����H���w��L"�0�:��HI�va���KQزc��W0\��≭_qF�v��nd�62!{��,���5�r=��Q��`. �%[��,ϒK��4��I��� [...]
1�p�[���6
��5p%��1�Қ�]eH>�ۘ^J���
+�[;k1���0�0�P�"`�N��x������K��s2Ea�{I2��u�ܤl�iu�s�vw�
Έ��d�T�!
>�}!.c�4K�K�N1|2t��c�l���%
RV����
�bDZ)�iH�L��E�$��IX�	H�:'/�@#���	)
+j���Ԁ~�?�0\V��+%&��I"��Ō6BР��l�^?x<�� ���z���>GV��e�b��P�`�U�*r
+�/��	�K�e���Ҕ����^{�c(�I0���'PO��$��1��E
����K�S��D�2�
��)��K����B��h"��a
yƐt
�c
	X$&Z�%P$��V�
+m4ǐ�O�5)\1j��%��]�5����=|�4is,�@�l�ey�4T�9��+G�����=��Q%�lɬr��ri.1f�V A)��"�]��V�i�#W���#�f'9�G�]J�d;�>�R��a�I�ԃ�2j������l+0��\��$,�6���	V*3EOV���*�֐�Y�԰-=Lx�ȃ�^�����
@L1�e��j�i
a�d +�`.��>��}�����!�g�i�g�O9���A�|���6���<��� �����Y��hIem�jw;�)�"$���
��1P��y
:�>�i1
v㙈���Pk�-�R�}���("���d4�tC����Y��l��I9�fŴ
	��h�q�$e�%`��H�$�61�S�� ����9�@�ZK"�(�-���25QI3�cO=�g8jS*�
R��Z�z�D�������`��GŘ4.Y�-���@{�K2Y
��R��	g��j�
�b]�1�р,��b��
� �4�铔�3#0h�D+R�&6RP���x+-{�4��T
�B�J�i$�աÚdX���(���#�Jy�
+����c�YiO�[��آ*��0R۩�q���
��Hi�A�g�w� i��`�O��Njy�vN��A?w)
0�)�P��F
Ҩ���:��"˧Py4���Ѕ)��){�k���3B�'e�k�Q�Fe�D��x�j��0O�!�H��5Z�g��@}V�O�J���lEp(��
?���2'554ZWz����CQ�Ť�#
�\k��w�
OF�4:p�
��p��Ks 
6m
+|k�d�u� ��}X��z�!F�7�����
�#V�9
�q<+k

��!�5/��Ƴ&9��E>�4�pn���ǀVm6R^���$�{��T"j�8�Th��>P�/:�鸲�y�ecCR�b�X�<;�
s#�Fڒ��`��&�
(�kk �� ��g���Q�gݽ�"�\ch:�� [��bzz�A�`���
mk�g̝�
�ڦJﻬ���j�ͱ�!�,z�P�A*�7���Y��oκ��<�2���Gv��t>6��ļ1
?X��-Fh�4� �H�Q��)Y(�m��ش<A�0&H}ۘN� �
V�1�
���t�%w-
�~(�|�wI�=
5]t(&��gOoʭÛ�}UN��D���6��+C�%�A(�!J99#���=�04�/�|����:���J��� ��߲����ҭ
I鵃�If93�0!G~��s�t&!k1��ޢp`�L�#Ls�{
<`�3z��o��e���d�
�2k��KK�˾��h���{}��
,��:ѵ�KG	]0���{�����–�p1A��ڴ�}�Cг�ᲀM������I5"������C��@�L��:ӳ�C��L�'� K`�<I�
O�� �
e���M����P&cq`�J�����S�
�%��Y��!f.��q��f73�:E� +��v
Y86�dp�(���D^/�I���g�0l`o�a��%��8�Cz2WD�)N�;�esJ�>���IR��D���*�S�BRKlb{C
�ӫ��Brz\+�Cjj�H�f{F�L,5���@���)�L�c�r�&���a����d�����,\a�{
MV
Pd�����ހѥ�
F��X�r�<�"ͼ����
BY@!���H �Y},RQ��3�q̧�8�D6�����1�d�>Ȭ��'0�
���G�4�l�6�t���H5
�?�������[��Iq� kz�#�	Eq�%�c���Z�`���!��/k�*��8c�@v��5Ít�E�P���096`#G
��0��
�JJ
+;Ɇ�e���T%�
ç
�_jy�m��YQ)4��;�
X�2Tc���
+�8b$��ȪF4��P�J V�6^Lh5��l���t�D�0�,���vd�
[k0��b*WA�IL��=iD���$F�NM�%Z
J
A)�uZ��@i´���AB�5v=� >�
+����Eb������v4''������TI3L���V8T��D�c��
��Q7��	�6��%�RY
+gz)�������LLI� ��>RkP2�`�y�ĝ�œTw������Z�Sg�̚�F+���
+%��Ѿ�À���/F	��)Sc��:^�	�sR�ҫϨugP�T}�,����
��P�
��(=�I�ubmI^6�3D2D���.��� �V��s�t>*����L
�<�^6ȭ��F��+�[m !w��]�X�y��,<l�=�Q�6�8���L��r��T�|
�'i���E
+51(����V'ǜ�&��d���X�
[d֖���
+�'��ē<����4G���PF�
;e��
�g䬶�9�S'�$����B�%��%f�6���)���3#][+�H�Ռ6�N�c2�J�-����g PS��?���3��)�@\�NW�o
s�C����	�1
��ճȝ�$C'�R
+|6m�E$*&�m��]1f;ҿHO��$A���C
+왚A�Ȱͼ�*��c‚HRv,~��]
�"�)��$R��ʾ/�>�6ˍS�1����ʝ@���q5��J��r�Z/Ey�صw����$J��S{H��C��ZՎy=�m���5D
,܋QKy���82X
+�-���c�]wlY�+�'�;�Rg+���얭�uC�`��1E��CP���7f�Z1�X�Ԗ�EqW��kD�ۘc��#��,|�̎<�O(6(,NH�
+�{�b�z	�̮�w�a�C�1����N3�-���9��_G=^B]��s��Cr-9�����_h�x�彥8ؠ�dS_늼yaw-��
��Ɇ�v+D.�M�JY'���&��@�F�)LK�6#�,85y�<�Y�>�Z�m��1��þ<9��tL@�
��n��HK	:�'��í��G��«YK����%���#X��=��	7�`;&b!L��p�6�#��?�,�*Z�a%��;+�86��=	�K����� �Yw���	����l�ڀ�	[v ݛ}�����K at 1�P[[PU�fdV0��5�(� ��
D��m
��}
�
�
�P@ݽ�f/�a�|������|���Ҁ�
��;$ep�"3�ۿՍ.���ߠ���@�m� �!����l�6�	��5�
+�����h.�Z��h
����K���!�
@�/���7���<`�Cd� ȷ���C�gY��!W1񛔇��C�$ �C�% �����R@��`M#=ZvY��ٰ&�BsDH��&�m6-4k��\h����8������h
�+k�2��l3���&dLCΝj�{wv�ٵ�g�v�F�5
���)�Ф2�k�SHn�v�m�<�]�d{hغ���k���b�XZ�B�!4�m
�<��:�B�$t�mK/��/Tnb�R󉽄��ѸI��F��-%(=+�4�Z���*��>,̒U�*��'�-,1r�ך��_������CY�BBm�n���mu�v�+lҏ�c�PN'~9
<�Zf
��ɽ����R��TE�
ݜX�
�+U�_M��d*��:D�h�:��Ɗ��
+\��ܦjk{�X�Q6P�j[���Y���^�Jtx����y�B��x|�k�]=4������
���8Mv��0�V�A�����[�CX6+t"��}�q70�2��7�ó]�3�
�����|0�횅�v�B=A�QNe}�6u��
+���
�c�0���� ���uEG���@�m�����8ؗǫ"�Of�AH��p���:�g��p�<�]s!�F/̇/�����G�o�A�8k	�+�qB�P�#p3�
P�6I-�@L��/ý1�S�վ���%z4������r��$�Ө�4[���
+��p
�@��]�ɧ��ש���&��t�"��̏\d#�m�����y֗�壏���㕶_H�Y���n�?[�IGs�ܶ����u�Qf�T�����9k�Y�'zy�Q��j��L��q��v��8��*� ��i|��;��;>��-!>�����=h���U�L;�
Ȃ�b{���D��$/ ]&�0v#.�t��6?_�����~?��mP�p��In���0���QH�}n� �L��Qa����	���Y�K
���k��
��Lf�H}��bF��K�Pv
q�ra�m�]����N2.z(�]��l�gZnH+x�iRI��
-���d���^
�,�鱭�.�#
c���l*�`8w^��]8��<Yq��R!�ؔUHI�4��ʩb�O��FŞ��C�&���<�1r�c}X�vj"/@<Z�:�k&򖅥�Ae;�iD��p8�l
��gC���g��p�b�'h>Q�
����W���^��o1�	�.�T�]�8�,M�79IE��
+^���$U�K�Ae�
� �	x���m���FB��N9���r��^�z��a{����#�aFʯ�N�I2�-d 6o
�����o�Q]��B���3���w�x1;�4�f�t�6����ʻ
������۪�eb���}�����6��Bt|鱂�籘�^��
��5�u>
o�����J�G�
`r\
+��7�	�F*;��Q��#
���y½�%9��tc 9����&�����e}�PhJ ,C3�CJ����›�����Š��'���	6_�a>Iݚ��F��q?$e$:�H��� �d�i�LT2J\H�e� �q��l�M��^l��OKr$w�
R-yB
��Q�?�
��ɉVї�mT��t] O"����`
�#]���>mb��,a��u?�>H؍��Ǎ|}s�
ؾ�hF��-�:�A�͠hי��2����F����\�u)�G�-�詬;�x;zM�N�ڒ�
+�6W�E
+�0JN�T��`6��$~�%Xp�����4�<�B�D���Ky4�M���R���$w*��rPE�3�V;�u-
:�L�s^(�
����$Z�
��{4u�{�uJH���/���e�-=�7u�
#�tH�G�y��%���[Q�Un�"K�
+���D�_]�UV�
-��bֳ])�	� ��
ɭ嫁�y�`f���a$�[��ի&��l1
�qs�i���~#ށ
@��=U8B�H����
T
[��O<�=��($:���
�X��Nő��s���J�}��D��3�����8�x��Is�
=E��G�-
M���Iq
�*
+�&�r򻃨p�y�[��&��fDt(��"���c�Ժv:��WY(�c�"��q�?�=�Zf�{`�:�B�V`b����|9&�J�a��
�Gz?fG
/�����B�8FR��f$S�������=ϳ��ʾ��05�
J=I3N�]l �%
+]��\�o�&�K����O��R�v���X3�'���~ۊ��3Sp�_������҅@x���
Z�H���^
��B��隡֦�|�}g�S��O
{1Dҿ�B6��K��=Ù�MOT���~T�v�f@��9�<M�t�05�F�Z
_�HT�@�	��3�Ѹ�&�������g�m�Oü�
"�v������%�x�N���������]l�_>�� �=�:‘�K�H�5O���QT�yT�M��`d�{^t��־\�I��.�G6B�1
�O��.j
A;;<�
7�(���~�R��hq>f��A�
+?=����q�Ĩ�z1h�H��X����
+9����D&��l{���N��r�Y���1p�t&�
�/�@<����r��LUE�͙�Dp�
0.�<��ȅ�E�(�u
����@zꛟ'�`̠sy�`�<�����M30���c��t�R���T�����қ �G{�`}HU��0��w�D�q��~�N�� I�����3�/��^�I�f&�3�����<��.�%� `Z��]�zs��I���	\U� )

b\����L�LU�<�G�����TꆶH%y��jn�8�8��⧱PI���6�;�
_���p�-{��y�
Em6�\�L6��7u0��u�=��q6��t�i>ƾlF|,*
�	�����벌W^���	�]"��u��osݱ�_%�|��M3̏���i��u�n��2��5#w��Q�uD@�H�R�r
�談F�G�އ~����:R3v.�)x
���ҋ�����&%�d}�����iW��1�Mh\R����_C�<�$��+�1C��R�@:+_���?e^NV
P
�6�����p��&j�M���P����\
+�v����@��Łn0�#�U�;�Ufu%���6
��
+�Yjk�.�>XZ
�
f���Ò��y��:���J�a ꝰJNco���
rkl�t=�Cl�����v���_��!j��$A���Jc2��#�<&~�
+��!�80�v�4�F}؊*�:Y�d�hq�zq� IE���%,���'��)])�
<��V�D��"@ԳG�`�-���w�VH5	�)N�z��B�,q5�!D;-��6j���~
��2�
+�y�,C�_
8����E��WӼ��7'�:��(�h��Z�۳Yw&iPY
@>]��k�!�9ac���
 əސ�{_p�ZE���A��h`�k�H��(���4��!Oh7~�
�e��'�U���=�`��"��ĺԉ�o�7_E�4��}��tuo�(����Z��d]�7
_�׮�1Y��4IL��b��b��bsM�w�tn,�Q�Dž�R�ʊ���:E�,�ۛ.�R T�3mL�YE�b�:�qcc��C�W�.R�R;�%gX��$j�u���v��6��n��p�����<)+DDZ�]��f��8AD�]�J1�m���خk���5}nl�uzM�b�Qne�]Bx |��*{ۥ*6x��v�h� P��6K `�,  ��ڬ��3$G�r�z=ly0�6�/[9ڬ���l�^�>6
I��~}��z���䝭��g���Bqk��/-\�t�S��/
�5:Μg���
�P��`
��
�b��3���<^���x\.�R~u�����v��t�O�.�aB- ���@.Uf�����Rv��(噜���F;~�‹tX�{U7i���M#eW���;�.jb�
�Y��j�
S���!�3�V�S�n*;PP�i�7/�d�=	@��� ��j#�Be���7�~Ez����(G�f�y��H(qڍ�7ꌏ�A��>�nep�hL�wj7��RE��B�SI��
r�:d+(��'2�_]��A.T3�rIʵQ$)W�]3�.g��;S���
�{k\�R~���NRs�o4�xnߨ�!���O�=��N�e��u������c3�g�����
FU����N��)Nj�5�
+;+�u6����'�N��:��[�U��r��(I�����2�4�^4�w���CP
��KߢJKn
�J� ��Ǒ\֦�(
+��"��(D�A���
�o�q��a����n]�z+h\˺'ۛy-tv�|�ԾR��G=��w��xD��eo�$t�mR}���`��޿�M�=Z��Ń*ܠȆq$�;8+F�	
��O�ceԫ/�y
�<��isq${c�d����&��q~��:�J6�mU4t��5cB���-�	*}�*g���);�j_Y��'	�~ٳe9q��;`Mi=H����J�v�A�NB;�=���DQR�ܾ��
�ޝ��T�VR��W�� ��r�n��O(&����]�X�p/jpsMNsƱz��Hz{�P�����ⶬ.t�ن���>l�
�p�Ო�wx0�mJ0
�
ic���V.IY���^����A�,�a��k	�|�9S
+*A�?�gQtÙd=q�R�hY�|Ut��Z�1o
�f3
M)b{��*��ԗ��N*�
�hE��fh�q�ZI�]�D�@q�-b:��D��oF��Z �����p�؁��.�#��{�l֨
�UoK�q��)�tr���9�s�8\���
Ѝ)

1�^��	�a\ 
$h㼊��P[-��@����K`Ztk�۪ޚ}w��ퟞ�-"����1�H��

΂
>��"K��ġQ{��{�IxN��I�J��
�+ ����Gbb�d��a,�?}�� �SU�U S�@ԕ�g;KS;�oѨ[0$G�VG��\_E+��
�Y
bϠ�``��4��+NIT9\���̖����
S_!�jGv�8y���� �lj��7+;[�C2�#s�KA���Z
��q��(r��3[hvk�P.(��
-qd����c��~�H���E�������}ӽǎ�e'_b�r��i%Q�7�{�
��MtO�'���9�=t��� �]7����#h㞣uC 
+Ax��=G�5�Zi�Zt�u]��+�WR�zu���$z���(�1�bY��9j� �ls�<��{�<��
+*����>A�肭�H�kq���>pe��{/
��NR�&�#z��4�}t:ܢ�n�IM{��{��K/ �K��wХ��"�vG��og��k�����7^:�Q0j�!�>�^zQ	�/�m�-��K/ ���,��L�y�e�R�M%�v�^z�	�}�ޟ��W�W��}����i�~������W��`��oy���(tQf~����",p漺ꐎ�:uC�.�Q�J���M.jC���_r9�_�]ȉD�X	!�]i�~B�e�g�q��C�I��_�l�k͏���
{���ض�~���.G���JRχ�N#Iٯ�����T�+x�WR���������-��7%�qyl���O�wY��@
�����D���{p�[�����]�_�8�ۉSٞ�RP���Ɂ�>�%vk��E��{�����t�-?
U2{_�~�����ӛ����~����5�e
�4G?
J0�4���見��?��D{���%=Q��
}v�
?��oW
�E�
��ȝ�����?%
L�P�
�b��
�H����'n
uM�?�&j=6
;#0�za��V��O��!I�LhSpع
}-\fױ^
vf��A�s" _
�Fg�
���䰋,�}� ���a���"]X��Î�E۬֯��N�
�K}O�
�.�#*$]���S_וm�8({��)D�Z�r�;<PRtY�����V�lۂ�p>`&3�
���aA��z 9���sAX qm0���!�-�����:� @��A6#
�������k�W}m̱D���X��
�
+�C]���_�!���
j��/�P��r�)�#��ώ�`"��k�dޡE2X&e_���S�o,���˷�D`e����/w
�
�����ه*{�
+�T���z��j O��yH{
1���_�	~;
+�Y���E��
��X���
I8��}�����t8�a��+�q���)ow�B!�#W������K��7$|�k-^
/_T	V�ɞ
�6o��C�/�Ы8��b����^���]C��ˆ$�+�k
��
��l�|��pԁ�-m
'ōWY��_��
u`�ao����Z��8��["L����τ�g�6q�
 o��	�0� �-I}�!>)
�$w�†L��s��e&��<�S*\�B����PfM�g��#eP�>�a�ʭ�k
1�Ow#�����d���|7흡
��`6y�c��M���!��3��
,�����7p/%{���
ioN.::�@WL{�&��
�2��k�;�	����� 
$	�A�n
�x�����.�\�� r�D��Y&�� ��|I�gI\I
�HbIZ�[�QH���J*�41n����q���
���@WQ���Lx��VNIc&��{�R�̊֌x�c��E!n�_�i����<x�xT�Yp�-��3>"���`���3�a�H�Ԙܨ�އ����
�ƀ��ڶ_���e
a��
.w���XpՉ�S�x��̽ߖ��!߶
�?�B�k�O�M�f�8������?�ie*7�k6�'[n�,x��m+���-��x�E����M4����
or���go�[��a
����Ϗ���<ԑO�Ǯ�D���m�@�e at d�B����� t
+h�Y'�� 
�}�>#e@\dT`����#ک[:�i��bs���}s�]ڮN�ϑO5�@�E�<�
sρ��	���RmdEc��K�<Ӟ"]�R
�֭�mM���
p=�Z;&���h�NX��!�g�T	;`Y�ë́=�IO([�1�
�eIn��9�X�{-k�t�m8C�&"�=��� ��cT��J[�T'r���!�$���h
�œ��M���"��n� �T:�P����@���hS�A :f��9j�n��;�w��<�bfTKue&RV�����T�Ib���(�k˒�@��4�hr�~*:�SbϾ���`m�r[dx(�J�M<�<�;��&)v�٪#�a�I�� Fl�ta�J���
+x�2��N�~��\�)DAН�r	�R)Ǽ��*�����/��fD��
+S�.6�V�}{��Q����f���$�c{^
B#]�M���t�[�^ ���
�\�
��ڛ|�&��4f�q�g��%-'�4Q�:
������� mDR��^N��>yW�r��<u.��>?�6@���T�_x
Q�f�UԔW��@5���<�ү��D�_ �Hw ��h��m���_�Ĝ�&�gIl 7=��@,2$�
+
+V�[�Q�~��\L
E
㨓��M��2=V���I����i.{����x��>�N�:��M5�a�aׄ�[�3�O��F�IG/��v]��ɦ�͚�
MoXK�3ױ`
m
+����+�
krU��i���k���l	�
�[h�
Մ}X��ɡ�
+��U\�dHA���;�)���ot�����F��y\G�(�6�kJ��Dž��6�b��S
ڕ��ik˳եUP�=u~��
�BàL��O����
+��@|"�d��$趱_ʘ~;��DԱ�d@�0uy��J�i�y���fD.���liKُ��5���v23�bv{ضE�
+�0�TܺXYd�a�WW�m�*
���
V���s��ݷǤ�Ѷ��k�m�L�Rm��j��g�a)#���]�,�]�@j#�D�=È���X��Zb4��$3�$�L�u@�%t
]�t{��ͣxG���
��	'�{x�jo��m���o�-2
���E����O�让e4g��4/�!="R{�$���7�اCs3
eѾ�.��I\�C�4��u���!�����^�UL��?2ܝ�D_����w����Ӵ���-)s'ނ}����Ey��M�xVəbl#4ӥ��c��-P���FZ�M(�A�LZԦ5�g�>g�XxIb�l���Y��D��v�
�}
�o+ԁ�E���AUg2$G���{�R��/�|��(PB�+i�5Z����z�b�N^�OH\��6��Q˛.�r�>	`I-�֧#���^=��^*�#�T
��<��u�Lx7G�K�6���(��|Ӎf��.A>(�C
+� �o��l�$p.�������H��c�2t�+���wb{�t&�9k 
+����]dH��Ҷ��r���0*<7�
���@�z�mW�F�}��:|�#�F
+أl���$@m2%P/�3yz���	�ϼ��m�73Z4���
	{ ��|���ED\��`��(ybH��2�/�MDy�n�@�R�Hr���@P�d�YhWk���)S�=�ۙI9np��"�y�5n���")�m��~�ך����QSf�@�ЈJN��)���H�6�����c2�24�X���؜��%�+Z���=Byf!ܶ{#��=� 	-S���Uh�P�
v��MB���8��[{^��	�&�um��rޠ(a\��[ۦm��] w���|\�Y�z:�~�i?%��
x��Vjg�uq���MF/�꽉�[��NI����C�j�MY�W��Wf���^t:�
�m.

Ƒි����
SX���>��L�&:��F�C|���!f�����4�,�0ԅ��^�2�
�k
Wߟ�OX�>d`M�^�'3}
=���6hF��|����
շa�}�~��
���i��=LuKd!p�g��¶0�� 4`8Hq^�J��J�I��cr���S����˛��>��[u<ė�؄�aT�a�P*�*RT!���Z�K��3����i����Ӣ�k-�:�D�w>‘C�`ۢ�{�vL֑��.-b7곞�7�’X��[ӎ-��}z�
�KE��$�ٝ@�B�����/�M/UA�4��=~LSq�B��E�xMua8QoV���]ƌ�[�V�m��Z]o��i�2ѐ�c�ƒ���>Xg8n{�R�1�H嬁���B�(�#)���R�����L�e�g�|�
������ ��\c>��lJ�ɔ�� �I������cJZ
�kj$4��
�}�d
KEV��
� ���<��,�;E�;E6}��r
��
(�2߫��z8Cn
s^�4�2�5�Yt�*��/�?�^�
T��/�I�mnk�4k̓7x
+����P6���f�3�e[}Q/E�"����"+l�$�p�
2�+J��@�%�H�6�Q ��pT�{�C��P$.j$��8c�z�3��X�D��KXs��������yp�Y+(�&�}CӫJ�Ξh�K�_���By{V�]]��t�QA��y�]����
\��ٛi .�B��B�o��G���Z��CKW5�^�-0Я����	��L��\�y�BJ�	 0Jk��Y]������B�����MW�<���TC�\�)���l��:����T[h���'�\���w�(���|H��;�Ө��ؚ-f��p+�y�ir���#Y�������}dy3���a�ۇ�}"X��O%R�g�ړW$5��/
f���Eaa3cx�"����4��:�xW�-/q��@�6q{Q�f
�ݞ�ރ��J:�]�NtZ�K\�v��
о{d�aQӼB�A����H�
���wD�Հ�7���_#�ٶ�Fu�� ���Z���<�w�ʐ�&�4m�����Z���{�n<Ϥ&���ދ�,0QR�y5;�vI�`�aE ���*�M�����
�-�\t�Ѽ���
AN�aL/k�yѐk!
�#�|��(�uF�{f��k���DHI=m�
�8Z��գ���
 �BU�v  v�l�$J�����_{ٞ�\U4qU+}V�"F��B�S|ګE�z*�d�Δ�ꉙ!7瘌�=�<�՛C�]k7)v�x�"ܸ����&<uF��|8,��-���)��. ��݂J�ƌF�voW/�p���`3W�\-z��-��7f���5O��0�

8
����b
+dDl�z%�
+
+�� �Bp-Xf�}���$I��	*����nC�y�{�a��*q�)@�K#�{a�G�Kܸ9��"C�L��n�k�
����ǰ�>�Y�M�!��#ְ�z�f!Ա��
+�=}~��^���Bf :��FuH�7P���6���'ؠ��`A-�'/!ǡ����,b���[�����G���jM�)h!mO/!]�5U�ߌ�>�j �/$�gX�f���y.M4NG�w�F�=-�Q�1mU��E7�����)����Xpe2b�
i]�~hx9$��+y9�z��!��3�7\����ir�j5���>�%�ş*��5
���Λa��Θ�t���i?�Y��Q��T���~��R��VB�
 ˽��ZFБ}�JO��Zm
���<�,��
D!QNL:�E�&������%y͊Tid9�k\2
+/����bjA���ʹ�$<�̭h��
EO�|AɬP�g�^�zۗ�ɩ��΁>�8
�lb>���l��i�u
�F���Efs�:,�&� N�GC�%�TtM=R��K2���y��7lL|D�6�9�|�*?��t@��r~��P�KT鵻Ck�	��\(W�@��X �e/>�ZC���m��3���J/"�XJpj�:�9e^O��<^J�Z���E�� ���w��s�*�e.M-Z]�:�6�m�T�]h��^� �eֺ(�4�P��ɚ7#l
B]KY���jx�P�}4��
+q���%�>�ݜ7�ʏ�� 
O���}0<�Z'�/h����ohU
�i��'^���"Œ[�
qҮ ���_�q�x���
h���
��u����}���M'�[�V02a�[�6�]3 v�M7`}�6
0C��~�
�F#`��ݹ�O[��S��
��`/xkkw,�� $
>@���u!�-x �� ��zC72/8S�
��	�:v+��v
+(1��+�1����@���
��&�V�)\fp��38�����4�
�C��
aV6�Bf©��݅eq���p�xh���F
��#v��f���p��� �}��b�c���!`�۔F�ï����Y����%e�?�vBC��
+���R�K�0�v���
+���Wl�X�h�1cM���7i���fc�ɚI
-*ی����U&�FC����j��	����s�r�^�]8v�y�ح��c��.�
{���xh�
+i�о�Mχ6��ݏ�dk� v��*
�<k�"6ǭU��d����f��
+��JNl
�U�ڔv���y!l�,�Ŭv"h�cuJ~��u�Զ�Ō�����կ�2��+�:�����F���tW�CjT
+\�m���cяwO-���㊅C�r�ٵ�x�h�WFa����6 ��k5�G\�k
T
�A����^c-�)�fS�@��j�Z�E�D��t� ��n<�Z
�w��������7���u-��/&|���
?�Z�̌]�?N�@'�A�s|�e�ke�D����*>n�噼e�M�p����
��uJ�b-�
+'i�̩-�4�b"��>ԡB��Y�m^�:P(uH��wf�~
�<��LJ#��D\Q�q*�z�����Re�����g��P\�P��}�%)U�"�<�:�?�|���E^�[q�0}�׏��Mt?m�\���6�ъ4���g'��� CU���Jk�LWM�����sJ�� ����z�登��J����"`Z�<��発z
Ԫə[h�F�P���%�uu�����i2~���>R�ҰI��Uҋ�^�[���^��篕�^��@ʑIl��m�ԾKR�u�#E8d�$���u��eUϏu��$��W�������y��I5.�`*^,d�
+gY�n��u���m"�k	g�/v��>�>��[g(M
ʧ
SNg
��F�Z\�i
�Hh&�V�sle�
�
D����֧���2)7\G�7�y�m�[��A���q���%�I���ym�O`>Y
�.���G3����?�ox�����!󳭫��D9cg�̄��!e�B���w M~:�s��ük�R�V�EȘ�
��L�����z�-����S1	�lV"�뭤<�n�Z-m#���wi�XL�-A�	:��N#۽KN�b^*�����
� � ��9�V��}��>���$�̵=�6^rȨ�
�;�d�_=os��0��n�W,���\�fy�OJ�˙�/�vk�=�y�����tU��%�2�Ԧ]�����7�����ʀ�d���Yy���v8��^C�,l:���a�sӢ�*�b
�ݿj��JMZ ��z�<c�%��wn�Q�a��kY��0��N
+�����:�'�w���J4�	��,�wS�ȍB����ӏ�P���/����[@���}�]%2���0�{q��j���w��J
������lWr�4H�>�ex�ݪn���ݠ-��$y��7Ĕ��Rڬ��d]ўހ��}�p#(&"�+��qn��G��B�:sI�u���Q�V_��J)r���H��J��Z�WJcL٬�8K*��D�4��k3�`ɢn�{�u϶��Ml��'|��2�a��Y8�{���m�����T䣅��)9_�ڵ+)}e�� �� �g�)�G��3���*T4� �����H��ˎ����4�R������y�
?��za�>Ƚ���6��.���~���O�Z�{R�&p;��%
S3X�uv��]$�9�-�a��O�]���Y����|-�11<��?���)L���sH�B�R�Ti(�~�#������hv�����[0����� W&��7,���
I��_Pi>��
�f|��T��-�f�<���>�hF��
���Sh4Q}��\��7,���~e�
,�oY49�͢���|��~ˢH���JJH4)��Q3��F͛�>iv�-������@Ox0=��F3��o��LO�4=��N3��:�@O�4=��N3��G:͕�>�i�|�Ot�+M�J�X��f`���i��@�y���,�/�o�,�')�B
��`��4e�U_a�M��϶Q}mb��У�U_!&�.R:���YjFc�GG�W6
U�;m�c���o��-g��gJ|�}̀�͹�9EoZ���t_���W@��X�s?�(S�5��v�U�բ���@3��*�ʽ�
nqI�l-��+�>i
m�e# �-���4�" ����
����"�m7�n�}��0��#ld_��������*���;`6�l���kf~�m+ �������*��q�-pH�7���%1�tCĠ[�w4v�{{
���t<6�-6�E��g �1�7����G_S
�Ipu��j�amȓ4,�����yyϊ��8,���Γ��-Кmw\�a�'� ����
JTk�]�
�h����M��I�����eky�
k��>�K�6D�b�Ȥ��}������deX5ҟ���W�3�Քaߛ�0�
����|Q=q�|Q=q�|A=qk��zb�|�zb0xS=qk�|b0sA>�6sQ5qg�
򉫙[���
�[+����B����ĝ�������������;k�Wk�W[uw�.
+*��.
+*��.*+�]TV\�]�X\���
�+�{?x����n�X���Yb�
����YPI�[a�.�z^�ݡ�䠰hA݀��!B���E{��Xh�3�*2]y��v
+����,�|�/{2�W���j�,�$�Wy�?��
�@
�+w�;��v
��	��7)���v*��d����hQ�l^���
k�S
4�5r�e#;f��h�,�?���
k�R��{���G��l�rc���ܘm=�x4W���c#7Ɠ���'�[
rcB��]ܖ�q
��zc����sT�1n\]�	�����=�9���VmL�r�~��Y��6%Mr���ڨ�5�+駴�J=f[�������c�6�Z�Ji�]�;��B��Uɀ�2m�������
+K�lxR
���%M ώ�W
�&��MB�ƒ�
<.nrwר:�]$_d|v�L�<�o<鍨�H�}s�ci%@
����� Ѽ����}�����I��i|���9��}�a6�
N�Sf��
(�4<_�7�<�����>�
OHO�펋�����w��6��
�H�5H�ch��;@e���6P$jyB<'
;ĜEO6���ئ@�>!X�1.��� �)
�m�'�p�G��(�zKSS׊c��x���w)���AZ�0�Bzu�Hx(�^�s�W�& 
�,��;͋�40a9��
'�^
^B�>�� �`�h��_9
��C
U�;� ���g�D� �a��vs��<f�:��T��aG�Q���_oJ��>E9�)O{*��!��v��^j_�w�.ń��k��|�
�s.o5Y��|}}���C	*]���O�$��9��g$|�^�n��-�S�n��d!��ޙQ�%/���tnf&��ssE at Po&5?QG��Q�
D��4���lۖv��[�7�%�
VE���;�o���}P&'E�9���)ڿUh�V
��mh[��#�
+7x |ZJ�U�i�]��:;�#:���f�5�����Dy�eɱ�$�=��2�)�9�y��-�M�*:'2M ��^�U�yX���a�oo?l�5�]&�ʰ[m?I��§
;g�
q~3��};Lɸ���#�q���*\o�$�P��Ui:k}/
^I��Wp0>���*/��!����N�-* s��
��W�!�q�eb:1?�
+�I���J�i
(�i�1�<oU�L��բ�B\l;��
F1��oE��؛
.眱؞|��u��&O���W(?�~A'*@F��(�����ɋ�i���
��b �t)��V�R�I*͚��'i�c
+�S�9��6��tj|��R+���HR�mV6Eʱ�BdA	i��A�fY�΢��.��P�~5O�m~ځ
<q!���m����l�[��*��WvLP��6��E���u�h2��T6'R��
�U�>|i .zx'�ܶ�0�~��?�y�~��4EJ��7c|S#�w+�9G��hN���%\e;-*«&�7���U��
�l瑝oj�w�j�
I�sa�=�H�GK���^�/�Ɲ}i �Hho���0�e�3[����i��R�f����6;`c�hm���Q0�m��E��
��D1����ڛ�����
��M�olwϽ��}y'�,)L;���L�?��ɲd���T\���<
���
���o���l����=;�~\�G�T祩��'��~�˟��я���?��/���������^����3]]��<}�=�ϐ0��U�fX��
��>�*���a��
+��A�6
�t���0&��Jy�zK��&�}*`X2E�4+0��T��cۚ��,�r��֨��:7�,�`�=��BgZ��vV~�o���C�N?��C�[��{0�7�B���N�Q�:y�s:O
+. ̂
���-Y��&{x>�f�LN�JR��At]�Q��S�#j����$Ӓ�~*=�Eo]}I�Vf��nv|����V��܁��X!��|Jj���
�-
 -Ux[D9���׵W
+�
+�]2ڻ�\���F�}jbǵW}���:
+����ںY�:9E�XP���s*E�F�pu*5�!.{(p�oB�i��W�����U�l�dQ�f;�O� �B�é��aV�Y��y���P�l�hd0��wN7JuWƙ�k�
!L[���������Ȋ�{��YruQ����U/�2��^����D��-�%[=��J�6k���d6˔6��i���
5G��|��o���Ο �9�&��\C�*<Cl��W�]��$��J�%���\ ��2<
��#`���T��N3�iL����ت��
�jAR�i^S�!��t�h���w;�rV%d�ٻ�e$P��Z��J�I|g�B�R�c�j"��/U
 �>1Y��;��c
��(us�jD��dٜ�4����Bj4a���A���t�y�0h8K&�Ƨ+��i��شK��1
n��T.���U�ƶ�׹`S���Ch7ы���U\'��YH�{2�$��l;`�	m����3Ug���:���P�'ҲMoxS&�)@`:�����
+6��1�|�YlqHv�6U:m��F��R�Pe�i��&:
+䚪/^:���آG>1^��mE@�`�.f��`�fΪ��r�80=b�@����a�1�8|���/��G��R!�"���
���|(e�����H'I+$�D��3=3�K��Ȑ�*�2�EE��[D/�+���եyl��z�>	u��!h��Ɏ1�ڷ$9�L�|r�8���^�,�E����E*F�� 0��=|�h�Pv�.e ��~��ن�&��MK��
+����S�n��$"�
�+��K���g��F 9\GD1���"=:*�c�e���?&��
��ʈ�=���:�*��́�By�|��B� ���߄�o��!�"���ibw"��"v��x��X
+����f�c;�o�?<E�q���k����ɇĴ��)��v��FO�I>�T�kn
��.�E�����5�:[;s_�)T:&]��\E�$9��5��w��I41k����{8Փ�k�|zMMD:��HM�2)J��0�l���f���%Lf:TY����<�Xq��b �{.8r��g��R�K�-�bLV*�
[��=�K�n��k����d�E at k���]���_Y�"B����P]�o#��E |x)7�7�VluP��-J��Y�?���ҵq*�)hӷ��en�%-�:G at T%R~

+a�񧻄 �x
[w��2�dk���4SRk<UT墘1wt�f_#��J[.�]�,���-��X���)�b
�.�Il��Ol�Zo�� qH$�9U��h]�F��K����;
�����kY���.�6�l�
�~����Zk�,h3�fT��<�D�;D�qh�z/a���¨�np���
\[��~[
Ǽ�;�{�inV�6U�K����Ԙ�;�=U(̋���:��v��!�����f�ZH�#�+����f��[�W	¶K�Ieb(\�-��
E��]��M6������]7s���f�h�=(
��q�GI���alۺ"�د���80u;�|���;x�~��?Z�B���gH ɞ�cr�~�c;x&�B�m�<�JJ�f5Z'Be�M
j�j-^-%dY�Yl,E,1n,�����Җ� �߳��	R��$L~�FH��L�O�
afy�
qWm�(u
�W���
���o�d�_��|���ؤl�|`��ږ~':����fjT�b ���`�>`�:�һ�Ű��8�]�j�i��C��:��<
��M��)$�BH`�ޖq�n�tm�5�(a$�����I�*E=By�g���
+�P�
�¨�q7DX4�07a

h�N��Ğm�����!���!� Rڛ�����6

+�1����)y�1���8���$��m�^���a�fGޜ�����/��]� ���1�
�}`t�
+ /o�[���I�к:6���5�*���

+[l�k�ܤb��U��sD,�
�erي&CL
+e ��2��F��%"z$&C6����ٛd�9	�
��&Ur#k�,���`c���y��
����F.n���Gq��O
u�Ěi�Xi��Ij�:n3�Ȳ�w��Cͩ�)�L��]�xʿ�4;�]��h�]x k�W6��爡u�%�
������3l��>į<
��C��g̗�]!�&������17��S>�޵1]B �?��ZC at w���Bo�X2џ
�r m�U
͠�����<��bx�͝6�����

�P�ռ�2)��q�X]�vr� h%�i�

��`1���v-A�TY�e�����TEX�
+A"̲�#��a��Yؔ��58�qk�h��k��M,ݿ���"���o��.�W�M9�;������EcL��Z*��v������xtk����ճ��\���
+�t�&��/�2,
�Eq?��o )��x<�9�� ��ݚT���.���y`�*�����a���u�~n	�(�s<�V痼��3@�b���i�A�G�!�'�g��N��?��Ъs����>��x6��3[o�L�;� 	����X	'r]�d���r��%�zN� ��.C5J�E(�l�*����� ��
{�{(�H��/>�V>�f��oH4���U�0��
���5
{�4912���ӣ�����n����H���%t�{b�Ss�g5����T�
��A]A�w0O�>8�ʵ�o��kE0��5�k���i�-����.�m
���9��h�/�2���V�c�����1k�>
���a����h�51����I�x����D�}l�`"f�QG
k�[�l�細��f
�ū��L�0-�=��MBV{���p.d��L��MŃv��-M�;l@��ɣ�k8q
��e��E/�կ
Icd���s�Dpłp)x�'�s��`k��'=�uMq� Y�'i�
!l��E��G�]�+;�J�
���V�T�9C����%8�p_d�걧�z�Nr�yz�O���<��Χ���*	�]qy��Z�>�q�]E�u�1x>GD-���4d��(v�e����m���T�_*1�j
+��\�p3�$MA
s�ڇb�����=��wu
jpP㈆�]���S��]�(�!Y�
+�����2��Xe.�
	#��NxB�9����Ϣ���u�ِ�����"���P0f!��5��w}
+���A�^
X�b�@z��@5�b�jWk�f�b�1o�e&-펗����w����
+��������^��w>E �q� ���¨������g��I�%A�v�x������;1��U:��כ�l&���J -���N>A�A�2B��>2V
��B�(�&��LsA�N4�>
���΋5�/I'ӈ��4�B�P��/�Vd��'q�c>P�3�o�wД ��ڇ$����H�<e��"�;�ȗvm�U�bf(����X�������G.F�
��ՕA��(ҮYT]�]Ξf&
�d�H�a#��A�����B`��
�6����XE�̧��w��]U�P0�ͭ�g��m���>d�%��`\�D5��d84�>%J����@�`�;�C^
j3
̸����f��~�Ϟ�x�]���7��`����Z�h��|E�Uc���&
m�6#�	�ņ`�p?�Z�2Tk p��O<�Akէ��
+�r���zϳV�⽄�g
+�»Y�j���չ�����§]���9���Sj-Mƙ��7��^ˤ�U��[�b[
�q�����z_��q�XK�q�Y*��}k����_(��}3�添n(�M;��m���5	+!��a�(@ ��,@)�!
p�`C�ck�oPH��O�Z� Kٺ
��� �	~J�ڼqnP'xD���3�u��(8r�\� �
+��;8UtIWXVpm;q4O�� ��ۥ���#
pj��X�
+���}H�"�Bd2�z1��l#��`�VHa
�Vd�>�[�18\1�_0b��Qk���>c���G�!�
+B��Y��1���]a���
Ċ͍y��χ�X�W	p㐚YQ��
��<������)�	��&�V;�V�wH�E��.�@�!/��kF/�߷������ ���+���\� f�3��y��|�ͪ�
�����B7tOl���
#�C�Ɲu��Tu�
	��Ё�䡏e�c�癉��o&d�C�Ͷ �wB� v -���H��[��ڼ�UY���
W�Gd*���`���]�6e�"RT�e^�EZ�E�S�Y-�{���YA�Ü���IY��殺�+M�<aͳO���H���>����Z�
CU�ֲL�������+óyc�:��Xy+J|]�V�I��p~���+�=~���ת��~�Z��O�V0�;Z
��	�~z�k�4~���?��pf�Z�
0��<~[f^W�Z���h�i���s�b�le���;��3~~��4# �(!.g
��������Xy�6��]W*�[x!S�O�x�zjZAQ[h�.�����$(4+�Sc������o'k�1Z(���~����A_�nV���m�#|��O
���5g��t�}�^��8�hJ��4=�L��l���e��TV��@,.8�*�1�S9�_��Klr�25��+���~����Q�V48�>A; F�8os"�2'�LD�<��bX5�6�5?R�b/+C�}s����-���??}�O@�nW����|��(���@��\�M<�>E�
�qN�u딇ê�wf��|�=N?���^ެ�ǍϿ�>�5��^�y�L@�$�~�=xqK���d!���s�c7��O�|�s������w��ͪ��7S)K:r�I'F_��/�,>ᖡ�f��dr	K �%��p��{��ec�1.��� �f��e	0��i�Cj� *�����T����{�c�$y�
�u��$
+��h.��Ș�o\r'��
M:;�M�	Y�y'
�

a�-S% }�0��`#$�������~���ƛP���
<��	3��~8���C���6���:��@���m)	��?���r��  O]ҡ@ ��Q�4��`6�t"UR��7Cց_�Q&�2�&�d��D`S'�H����_�H��.lM4�[�S�OA���+8>�
^p��a�r��9�a.��5�>���mD�|�y Qգc$��
t�I;Y�V��
�Q�+/�$���W ��>��C�Ǭ�e�, r1�u>�kEͅ ��O��f����Zﰟ�K�s�>�������o���Q]��ɗ0���f�U�

+����>�vE#/F���+�ac�8S�	[7]����(ܣ��*I�8�*|p��V bB1%�t�����{�������"w첝�S�
o��ޱ�
�H#~W�u��\��p��D�6I~�����! ��v���fh�!mA�*L�U��M��0T(��<�Iq��nu at I��M{	+^��a]�>�	s� ��^�0�B��D��K�`�Ȧ�H{l�y&K��v�tk'��.�g�2í��w�Da߾_ȽӇ7����g���f�)L�vf�g0��ľm�vY����3�
q����������(v�!��k'�w�w�ՃxH:��:�+���^��|��%�G2��
+éN�J���As{�R	����� ���E1;����NW��csB:�J�A�O�
�ts�笪��Tx��1�B�ܘ�Σ��d���,U�6�:0�Wg��"
��4]5ΟH�#���e����@�G�n�.t�N�0����hDaf�O��:ϘY�H��* �
�C���[������\d���
��3gu�$=\�d�UU�UU��eO�D]��Ϣ��{n�	�&*�<Pb#l�xM�
�
k'����ǡ�n()�|B��΃�I�;F�C]i
+Σx�h�����Ι�A��7��mI�	)�������#[�
#C�l:�����>���T3�Y�`��e������!q
+v+[�R�%�rii�����)��Dٽ�����5y����.��� S�
ҒQ�r��v��Q5����6����6E���ի�|iz��}��l
��΁����ckLm�����X�"�g3)
g��A�#�%�*������~�9.����_3]Dz�EB
�Ǫd'6UV�6�b'(tۗ�%�4g�&�AO ɞ.��G���7�E�?P�)�x�Jb����b���)k�a=�}�
K�R�w�"���
+7���
s<aҥ�^��l6
���y!j� �d��{�v��C;8D+�i��&�*{A����P&�ȇ�&r���]�LG�
g�o�!O�����y�U8S�P*�7�џ����z�=9yi���6�\rZ �l�
+� wL�ÜHzN�[�V�T�+�����)���������G��ȣYd��Ǩ�ʇ��-�'g9ˮp at C�d�/��e0����Y��\�(Y��
N���
�D�)	0 U�hR;���9O�ķ�M3>�v�j�j��A�ѯ.�dk
+�Ss}1 ��ԩ�_P�HجJ-Wn
�`�V�1A��á�w�
��w�
��⁂�2cQ����A��'����Q%J3G�γM��I��\G3��rHC�
n��o�������ٻN�-���(ۻ��q���y!ŜN�9�Y�-�h�V��n�Ξ�B�*	lvړ�o��S�%ײ��Va
N�4��%�*B�rW�d�Pـ���2{v{�A 3|ٓ�
+�z�$�n�5�.p�[g�+<�P���G�Ѵ��Y4�{�7��/
Z$ ��سN��]����ۿ�W�| �K�E
ԝ�
+�Ӝy��Z�\#W�Ը��y-�
��F>aR���y!ԆiQ�KanV��-'eGIbİV�
��iʴiG&4MVgg����v��G�E����Z7�z�
�@�P8 at I)��
>�;(�SH��w�H,j>Tl5�<:)��%�
�B��?7(Bw<"[�������M����q=� �

�s�uf�*:����(땇����B�z����ݿw��*���������kJ`�~�V�Q~LD�~���1U��$��0��;.A{�"�]|>�Ia��&zg(��
��.
��%��ќ��6����grt��z�N��oD,� lG��"�T�_%�
I$K�1�|P	?�
Y��S�<��ër��mJ���k��v��.� ��c�=��q�QʹR{�}�}��JC	�
Pݛ�~]e�_��2^x]����Cx����w������)ÆfC�X7�*��an�=~��ڊ;6z'Õ_���?���<��_��7���׿������W���7��S�d_u#�9dP9KB@�n�ߞ��~����������� �o?��o��/0���7�����?����[�<�=�_}��_~�?���_~8�O��7?�O���|\��?7;��寿��Ͽ������;J�؜��n����_���������������}t������/~� [...]
+�<5K� ]���'�	
G�/������~�r��v��������c����^���������/��N�����RS�z��ݨ�`��◍�^�_��̏��|��hZ��f��߼�W����*Ym6�v[����h|hz0p9��P��N �ysr���tlJ!Vz���3ˁ�ҿ
��M� h-�PBo���@L��~A˔���ȑ�����o�f��ê�;\0�$S�e���vw1��o�����e�PhT[' �#`	�#ܾ
��W6:�e�D��&��Ipy3�� ��SrHI�y������T����0�1bL�
�lBP�	
q�H�ඍSC�u��@^�(�_%pGE�	<�5��|��;0�ȅ~�O�dƁ.�j���JBQ~bAh�;u�|]w1ƧK8^�O�{Q�9��d�ǝ�.�h�s� �$���
���EN/�������T g
E���	��H*yg?U
t�¬gl��2�~
-���x����4@��.���q�%�-Ԍ�6�M\��5�wuw����S;�.)d\��/��<}w*<ၫ�������
��\6(uG�-J֦F�tu��V�Y{sjE`�UX/�
٪Slu6m,J��N�2���=:d���8� �	�L˹���
+����ʭ������R�WÁC,_���h��+{ �%_��^<P�
Ϳ���
������N��h<
Z�	Qy��7f����7���x��'b�Ӌ�
+
ǣ��14!2�%U��"
-����ش⁨� �'p4 Ay�{z'޺!lA���gϡ�|��v�}̌I��\Z�3�*��?V�~:�d��ۙl
K�ԯ��":*MͽK��O��d���bE�;���i"Ml�
���e�M�R�@u���<l�T^�6� B}=����1���$��@�NT������i"@>s�֒�,G��j
j��C�ڼʇi(���5o�;����@�԰h���o��Á
b�`wEگ��ɡ�/�>
Ơ�QMV$��= �-�Y��O�2�<���E=A��Nl\��/�[h9a�шF�;:hC(n1`@�
	Nc��2Wn��� E�[0�-̂�t1=<�˜�1k�
,���Ѫ����dY���9f�Shw
��hN�y��5�4�lC��.
+���]�4M0m���4�+�L�����
+��l
��V��
r�x
D|z at J���gw���;�o�NE�j��,5x��S$�1._<"Ew ��f;�R�$,��džC/o-1ی��ډ*HaT��:��Hj����v��w��kH�DN�W�i�JHW2J`E��
#`p�f>�
��h#]h�À�n^.dw� x�'c֖M^�r��,
�4�k�5���M��+�b����
+�|�^f�6���
[���
���I:�>PӳӰ*��"<�0�TQ��Ro�.5�����B��^wK74୉����ಫ�?t�Q��	
+h
5b�F�F���́�%�~�7�?Uu�>i������-�J��b �dM�)�k���gFh�!3v�
�Y
����B4�q!3�B�a���̵<gv
�\�-
u�A�N�� ,<E��r�ɗ�h��9�02v�|J`�����E�C��$5m
4����A�^��+}s$Si�?����k7��AC0M���^︥&�Nh���w��`��OZ��
Y�f��+�v�={(OL��y9?��z{�
����Β)���kv�v�*y� ��|
+|���6#Մ
*5S����pi9��-�A�"�'��~�%e��k�T�H/���G��,��*|vJ� ���{$�^Ӽ�c���S�+,U�@�Mu-E`��$d�
+�m��Eȴd�j�t�I�
��D�F�6@�f�3:J�T}/��0d��B�N�7�1��
���
sS
m�����NO����R���FA�t�-�z
�7n;��*A���W at R�.�k@��'!
+�\χl�������މ��-{�O15��y�H�yO$#�
��Ġz�W�	��~.=�	�Ћx'׷���?�y������@SO�	��-W����$|�š˘���ǧM^=ϡl8!7�+�cw ��c�-�q
����8
Ғ�>���x{(�G�P(B�<\7S�41�
޶�W�/��
V�T+��>>�t�A��		L�;yEQ;�M�S
ꥩl��'����a������/����g�2��44̚�8
���q�+��D��@��
�N�F�>e2°b�a�P9�N���f�t6�bN�6i�|ۦCY�i�
�!v*2 	�J=���Yw��롢�)`oq��#��@#ہ� ��-�A}��}G��
��fч.�G�X0d�E������"��r�s�1/��<\J����f��תQ��Ʀt��ek�n��Qg����v���,g'��������1���Z2� b:�>k�v�.�'f�\ 
�D �u)n���O�Ji1��&y
p�J�
+��JN�Po�Ӎia����V�ƭ����e�Kf�*�<�}
zvm�"ͰOR*� l�K���5�ܝ���E�C��2[����l���
ؐ	�X�.��\�B��|`��4z����'� �s
�1�,
+
�Ћ��Xb��~��C%>v9�,���%mnR�׿yc
�������`9p4Q��tJ��,%k��|�.��{��K�����u���c`��D"p��
\��a���/͍��"��q�. W-����@<O:E+@�B+əZ��'1<%m��'�@�3���+���V�Sd��T�N%
+:�6���"r

+�� �x���<�$�|�z :��,
��9
��O�_ �"B�-���
O�C\x.


+���M�(6� pFXDl�����:��A�»S<�����#�)��'y{��ss ��\�ӭQ��
��t��I�]��xn�|
��<��<��_��4� -����W�Ue�
��7
*�~�TA�X��m�0S��-b+�f;m����.��h,�A�|�N��قZ���+~�
�^Ё��:r�t�;YH?����\�-�L�X����%�J8�"={�B-�1�j
��!�_cl�p ��
�p������� ~
Ϛ�_uM��xd��[h.�J;��4�t�8k��ા��
%%�B(���I���5����r�_��w�D>Ηc�c(����YP�
^�)�ѻs)��H��B鰹��.��_�
��
+�
+5����G�݋���
\Z���=�����Qĵ��m:�n��)�څ��}���Ň�иx㙠�
��b�ct���@�������^��$=&�a�}6�
8�Ii�.tI҄���6������Y�~�����X�P6�W�ƞp
�:�����O,'������"O�<�t6%���1���/�N�u8@^�����|�D��J,�����?�1�Drw��
j��*�� *�ӵ�F#���ԯD.7	Ğ��������z�+��

ZHh�W'9�:P4٥	A�
�6�ƝQuวZ�
Y
��� �{�wTdA>V�5�Y�� ��Q��&$�{��
�=
*�	��*7�d��^9���c���e� |�����/2)���{����v�_Į����~�|Ne%I=�G�0����^=HY�3ѩgs��ͳy
�|�nI��j���]�)�H-�n�u<�v�
a<���꒚�+�����,�횈�
\r������z��6f�v���ж'g&I4���Hl\
p��܄��I
�I
���Z��*5����i6(�`$m�ߥ
M6[;0�L�op6�Tҩ3���C�R��]�4J1]�0ͱr�1RY:F��f��~��� ��
�Aq'��t$i%�$
P�ˌ�p���Oǁ�&Cs�1���N)ߝ�7=^��80�'Ȑ���!��Es�'��l�
�ﭪ�r�r*Huq�TPr[\s�9
�̎�X	�u�9%h��y��=$����E��SkB��>�z
T`c��‘PW���$=͌؁
��N���	���%��a>8�nP�S���r��o8ל}�!%
z�DLW���k�?.ߌ����C�Y�JLK�W�ң=�L
XՇ����/�
�t�r,s��^E�_���tq�}�R��"�E
�43����-h�S
X�J���Y���]��[�"�3]�֑�y�5�$1*�T~�L��hH�h�a:S����&"UG�\�xDc���԰��[��J�[�⼸�:�FXLu:7vo���/~�K��e�ǕDl-J����d�\�#Ĕ���e?��� �����7#M�Th-ϖx�;��'"9�+��
+�H���L�C�]�s4	� �E^�̾�8į +�
���/�&]�~]�^"E6�D�M�����:��+���	}�$pP�l�%zN|FU�vm
��򹣶��W:��S�~��(�>) Ć6������rA �P�3ͥ�T�V�j� ��{=� /�_�'�7�h
���R7Oܿ���t�rJ��j����W��1f0Yl^t���ǵ�h
��y�y,�)Q䪸�ŵJ��)F��
+
��Y�Ħ/ǜD�K
����[O�ߌ���<i��ڗ�KZ�Hx��'�u���s^�_�y�$m��Uؙ�P�cx���-�;�����J�w�
��v�;eo�QtK2���H(����u� �]�)G���p�o��t�l霢����s�͛���В@���96���0B�����H:� L�
OA� � ��Y�\��
+P�M�`H�CS�/k�y��(�>��+z�O
?R��Ig���N����m~�{��QD�BK�4k���Ni<��
����
���~d��f��Y�W
+��J��<� �	�f���V�W���P@��\��3۲�
=-侾��Y��&�v��{(.&C~x~��x �H��;����kN��y���)��*� Lr��� N<$8s�c~TTВ�$�#C��Q�Њ��p��L�D�'��.v
^�Fd��4^��i
ݢ�$>�}%�a���G�i˨&�F���
�2&4�n�
���{I�,��1��
��藗�N�*���H��N
+��ĝ_(�6��O
++V����6���g
+�,6`���"�q!�OYk�Ό�JH{H�{H�.��<]����g2��<� Ƃ3_0���� ��F������.��*
��. `���Fse762� Y�|��~��>I&C�C�Sj)�
���S-&��4���:0��u7��.E���5���A�mg�˒V��`�����a�h�s!�
�=���p����m���*<�����H:���
JD�]���@�S�
S���u�21^��А�:�
+b�!Zu	D���^�"�$�e�-�4
�If/��tGQ
rI�����4}`.�$1�s��rvI��
|�5m2�0d��׳�SZ�L�C*ϭL��&�^���򖨑��@x�6����Err�8
`&i��힘ϡj|
+L����e'w�R 0.

 :���$!
+�^�S�y%��g]��!����+6c��1��2��y�8���8J����	�Gv����T��#��l3���B���
�3 _i���W~�)ۮ
Bp�&��.5"?�6!�$x΃�U�ovLP��[{m�
�U_�5��;�Y
W����(�
�S��'�Au�!�
���v�kY�<����YF��4
a�#��7����>�=�����F]١7��h��;������TI��
$�TEc�z�%qê�
+qU� Q|�v�?��w���ۻ��<c6,�;��'r4B�a�3
�nI�r�@���%�1�q8%�� �:{
��v�^{ᚪ5�rb���
q�)�\̩���YFW��݄���춇��i��Q���}�‡�Hh�Z�
L��;
���
A�D�5v#�P
�8i�C��p�s���Ve���PeT'�����>�+�����C�W���(BMBg�L"^$ƒ�T�>;�l��
+���q��2���
腺�m	�-Σi�����J��%	)����A�|�$6��,W�D�>�̀���'���F Lڜ��0����̲
}�'z�ؿL��
j\�yu���7��\r�
�L
�D8
E�Ϟ�o�l��4�ߒ�����~:�����u�H�1P8�S@�
8��c}
�S��Ok���J�9���I]8�8���̴"uaWSTmg]�3��~�r�c�H�����9��4*�.!',�cTvD�	>�=k�����]/z �=N��PkZ����8!�`���Z��6n);x�
��c�����(B����&i�t����E�P#�@6���y��n�(_���]zxԌ��6H�o��V5��t��H\�ÏK����Pդ����{
�:��F���:p\2
+h���N2p~����Ǹ���ME��� bc�]�7/F9[�٩U�yA�[�
�h�x%X�

+��1��D���,d�*��r�eŖڰN�.�Δ�d�ez����&
+����l�b ;Z��k1Vp]) ��B�M
����w�3 �1J�0Z	̀�����H��T���uY�H�&���D��(�	�:�n/��zS��$�rt5�w��H�"�m�M�s�QB��A���K
�s�� p��}���5
��y
�.�Ow���.�d8^�Ѹl^Go^dC*���M
+Bp`
�(�8Q�yK���ĩ�J��\w3$����z�9T(V�F���D7��U��d#�
��P�1��{'
^1	
v�����0�DH��ԝ ^"U�� �:��?U����u�ݕ�	'���4.y���Pv׫�O##¾�y�*�i
i�)���Q-&�E�t"�	�d��Q��
��
B�g�J���
e|@��f
��
{*�]h��F��MS���l+Q)|ش���/$�9�2�������Z| �Nh�Œ��
��l>'Y[Y~��P9!ڠ�?�ޮמܺ�����3 at z�N��8H0���J0�N`$�
Gc �>|�E���٧%h����䮪]�"���@��u~�E��q�&SƔ�v�oŰ�5
V�CyG�U�f 3
�������ۃ
.D�@�>�ϒ��@L��!�e�&�����L3ŚƱ�4r�OfUѝ���ƙ�>RQ3�����lC�K\�(g}ը����&X��-�R�d~J at 1L�Ud�B}ҹ}.xG�$���蓈(%ؚ���g?�%u
��&���	$ ���Bbt��[����-�U��Hz
)�X
}:�H�
UJ͊	��'�0p�,�L$9/
�<�
W�u��1�|c�	���գ�A���+W� ��0mbbRT��0uz�9*��p��N��W��_��)8��o�
�O�@2�3Ҷ���S&痐���>}n.9;�@%����Z,u#���)Iܭю
 [...]
+ O~B��Y�*E��E
�<8��n�a�
����c��(�3+@���P9P��Y���lp�I� ������Z�U�}=᭬2��#&_�ob�`8����<_;���
�m��)�>߷ޫ&G
z��xu���OX8���QX��l�o"�P��G
�:"G7
@G�.�	�&K�ɓ�z�Ѩ{{���� %��W��Ͽ�&53�
>߬Ϲ�l��3����.��J*k��L��ĵ��ñG�
GS�������r��S�,
+���<�Ra�\Q�E�^{�
+{P!X
�M)=
+�3gh�r%�f�
^
+���W*i
\�~VF
E�{�h�r|y�O�ð4Ob�A93���,��	���TE�{�P�XY�α�7��u.��p!���ݴ��B���K�`��HR�^����.��#��^��!�j�ۂ͍}�:�&��X`�����Q���ܱ߱W=�U�?r��e��4#FC�}�~^�
a����r�G�
<��:X�V�+�`|
֡( r���r�Y��0;Ny4��[��
+��W
�x~`6��Y�
�x�)XB�i
��&>����D<&ǫY

!�4��
�A�r ���i��MHG��f��
G�,.�I<J;f���p��oΌ�	��U��Ä���Q$��K>��3
ƹT�
��&ʙ��M{özi�y6}�����w��:F�t�q�c��
��<��&��:��O���
�Bׇ��{�eÒ��*>*�C!{��עD�It�8���T+�խу��4I0_�_'H"����j�{I�5���/'}��7���q�����v�4���X4ļ�1�vJB,�J�O%��m����_�DZ,ȫ܌���
٪'W��ɮ��ŀ�yj��l�I���/��k?
V����rr���� r�*�L��G�8&>�K₢�R�<�J��q�n�� V���Q��(��%$�y))\@��qZ�"�OA6�*�>]�'8b��T��
��Ͳq(7Zs���/��;���q��`V�eǼ�_� ��nG�(�Aٯ}Ҽ���,�UhC��L [...]
+
�.� @�FI�������w_?^�[�(�8Un�E�ҀH��i�
<�
mNӈr
��OO9���T��q�%
L��,�-6�{if�R��G��= ��p��<Q ���?�0���8t	�0[�%kb?�K��Qi�8�<g���ߒ�q9
�'D��
�Dub����� ��}c�ߒ
L�9�.���!�J--�%�˔r�b<�`�w�~Eom��:��	��%f�
5��e��jc�m��Q�AF��ڻ�֐e�`a��>Y8`*��]�8=rY(�PZҏ�2��y
ha0�L�b���n2�������"S�� �Y��8Xz��'����
�iY{7��#��.LHk ���r~��i
*� �\������
�{,��K��)Z�Oz����ÒZ?X��yM�
�u0�P+ �"� ���	-������-��+���8��rR
�
!�J�x@ i/�8��x<v�P�d�Q)���O�ٴ��-�t��.�Ĉ_�M?A���A��3v%�
��N�۰�l��e��
�g�(�F�y��+���S�UmzQ1��47�^��
��d���<.���~�A� �5��j���^�|�%�v=�W�$V-�n�
M"�7Υ��^:\�q(����:(ڇ��W}�
����"�ɤH�a$)��^&�$�?���i�
+)�
J��h��ٖd� ^�_*-z�R�	� y��Id�f��0@(�s�G�	��^z��( C�<D.%U�?{�`
�A0a�^٣pA�������
��@O#��ԐA�U\9�$Y��^��
i��:D��1�o�"��ˈ+NC�9V����.�����2~R�?�Q�|#�{
0"����<�e����!�+����f�p!Da���{�$��s@j	���S����D
�f�P�~�Gp����M����!p
+ڋ|�!ڎ� ��I:�`�$��z�Z���j��ё�G�d�ڱ����5����ޘIp�+z��ӣh�!�b�
y5A�~����>l��ZeS����wC!D�s:"T4���,'��c��+V�{8
+Y4ؘե/V�
�[�
*6DCi6�0>��1°
+L�wK����M\
+�8ʌ�<hP5{��Z���A���
��>B"t}�*�����ɉ@B�-7�JToN�-�pbB �鄪Z��01�0��X(��N"�'�&*�,
���Yt��Sc�u��o1����a��Y���p��\苰?l*5P���m�ҩ
l�U�ɉ�|��.���pSIQ��c~�1h���B�%|��H�P��9E.
0 �d��=e�e��
vz
�+����[%�	)�*'���[��0M=
<jB�*A�#� ]�� �i�����)p�oA�Sr#'0�
	9D�fq_���]��$H�iX;�l�R3��z|YA	Hx �<J����7Ud[;Q�> n��.��Ա���.I���0#:�t;�
>�h{����
=����>O�:M�����KKk
A!��g�+P�cN�G ����Èkm�F��H���= ��}� xb��J
L	�{8G�
a]z��^��P���-��7�3��:̈́��w���֢HŪ
6����L"�
�{)��	��@I�$߯fQM�y.!��
��?{$�V?�T�.�t&�4D[K˯x_��|
׈b7�ȗ����

W'�rI#Y�mvt�n�Y� �d��
�����^�
c��J;CVɱ
m���e	o�@����K�-��
h���ڭτU
��"@�һ).m�E�	�
#ql1���9LV��"�B3]ƭpB؏ 4P����3d^�"�J*���
JSw, at T�8 r��]_D�WI�N�^s�>�N�
Ѕ�դ��5���y���^�`�r�?%V�
'
�W�
+?ϒ�O�&�	�D�GLȔ
��hQX��h�Sg�h �D-s��L��r��O3?z��,����$t`�N��[UOP�P������	�
+H��|�p
+^������5�ńw���`!�G-��jd"8�
$�Z��-�7��>֫���۲�e@&��j
��Sx��������
��C���9ĻEE
>� ���<�a��"6S&Qt F�X~�v�q�6QCլ��r���L�>�,��L�֐A&I��W��hڎ@A�G zl���zW9D��[Qu�H2ԃ��ܨu&+v��2����T����a����Z��Rng
+�Vm;�i�Hke=oX(�s@��(#���̎*�ϼ�
+=jSSŸ!B')ǟ����!
`�IZ�Ҕ����[_�<b�7��
n)���of�X� �'2?Q��Ҵ�����,�18�U��p��w6i at _
^z�ȸ�2�
!�ʤ�~VI���
'�!�U�`-g^MG��8�
I-]Z{� }��$���
��H�~���^���-n��m?
i�z��a[�ö�!~�*=:�8{D�z���^��|у�:Ǹ	<���
�M�-�A�I
�E&�����1�ΰj:xޮ#^���N� C)L�۾���p� ݎp�\�
�C`��b�YXQ�U�{�Q�*Y5)��Bo�<��Sv����r-k�'�a��؜;��BT���zbM�
��3�[�Z�5�KO�S�H�	b�-7��[�� *@A�;�D�]� �9�
��ɑ�c��+`#��2Fz	�����*.�)�i�O�e�d�g��j�C�o�O�_1r�`gԋ#(��W_Y
�ٕ<���^i�xV�Ѳ
̜48&����`;��GIm���f�O5�idM���R
+�eP�rs$Nd]� ��q��``7����6��T� :���Tx(�L�������9�_@��%!���:��O�S8��󠠡0�Z�̠;�+�� 1#���8
+pXh�kG���!��n'�,jP�+�D�z�a at H�����S�@4�*K.��Yݜ�����}�uυ��
G���Ȅ�w�X��LM��O
�]
�6�TT����a�
Q=2$'���"
+Se������C!w���CM�|�[G����4rQ��K��ja.��1-�ө<�W����y�s��Vf84ot2����;F��
�8����>wJ?�j�[��K�ZΏo�=X8�@��
v�c?�gz�;T_J��v��B�҅U��2bފP
+%��J����
��G^C���^�H
��_$�p��J'u��}<~�HlP��oRJ�E��|qL�rT������3=r�eF1}d��U�{2C˛H��6r�jx��j��x�B�N�����eB�uؕR	�� ��L�ihڄ���fp�0�(U�� �x�|���BZB*����R
�b�.�$��}���[N
+�_��Q��������&�]�k�
���,S`�!���L]3Y,����	�pu�7K���|�rvFS=�I�
XQ�'$���(��En
�hɡ�*
+
��1]��V���:��B��2P4ѽH
��8n��LV�
+O��H���L�
+&���!}-���y&q.0څڨ���
�
�G	ݣ��?������

�Ίu
+RS��*|�j)��s����$h�p��qw����wE�A�+��Dr����`w��K�
}1΂��
+�s{���
+�:a��4#�
3A�u��i����b%�Y��MSI�!���K�䮇�ыY�^ ������Q����H��
��R<�m�KA,�#3,%����'lR�Z��!7c7�ɣkNj��U��>���ȣ!
)�Mgjٙ�˽]3�َ0*#>[S-�Ҵ�B
+y\Ė��R�:���`�5W�}kM2�ސ�n�T௖z����Y����C�TWO��; J��'�5`�T��
+Gx�J�ڻ&UWK��P�Pײ+�O��5@���4
��l���XuBo�bl8ys��� g,�Z�c���M3�
R�z�}]�h:
+s^a����ӞXD�,E'\o��@}�y�gXiD��w�|ǩvQ/��*���Vԩջ��#����:�?D�M�Q=�V�H�P��[-J%�
+R�-�0��W,L����?��������L %�G�) 4
c��*���×yd�_;��p.c��у��
��{�nO�	�I���Z�y΋CAW-��S6�0
h�!
��)'��n�i��4Hu���

x������?u���<ߨ~�U��\ZA�W�J���� $t�AϽ>QL�q8%tv��M��
E�ּ�h�/g������9�
�$+�>p�r�눭
���Q�e�U�t���G=���p�y7Y���p���e�$`�	������[
GRDH<�A\Z�UvZ�8��j&֢���[����@*
�kj�$�vðP���մ�`��d�o�\

]�~/5��W ���W*B�I��i��Ív*�ˈuW��I�K?���U_

y���0����Y+¸�(��k��~�&�Qr|k�g-�K�ҁ��
endstream
endobj
226 0 obj
<</Length 65536>>stream
+u.������KH�=�e 
Mq_�
�O卷�J��w�
�k��WB���7�,!��,7
D��ab6�S�tF��a?.^�4M�h�
�R;��z��BsY�A�6~�D
+�54�ve�:�@����e�rpr�I���?"A/����)J�q�/��g�1D8Y��!�bN��GY�H��s��kb b���l���I�pq�d���ǁ���K�d|{�눲L��$�L��I���}�/�2��)�NX��e�
�*� 
����!�Ђ����F&BE��@���㔇$%�E���$�u'm�x�	�
��y.�1XK^`>W���/�w=���E����|Й�ĵ0��9K����V�!rJ	�A
~5Dv%8~���n�;9�
��̝j�K�bB�,�1JT,c���K�Cыd(� �x
k��F��4���1���'�*L����x�bM$�!��p:V�J5�0

CЊs�m!��jP�����1H��:a���h��##(�|�Y��Ą�=\T�
j����@�w�~u�w��T|n��
�#�`�
�+
��n?�Æ%�Qۂ!9Tg�
%��&ٟ�a��b���b��:�,M�*Ek��NC؜(�*�`���s�!�{��n/Pq��������cn1�jI)�I��E
�U?͆
Z
z�4��7&o�?����K��+�G	̊
/<n;�8D�θX:?�7$˒<�.{�S�W�Ͽ���k��<a�]y&+��
q`�rH
+ �h��
��'
+���#�r�� 
PUv��	L��
V`�,����
��8X���N��b�J�n��GC�*��l竔�9�x�N��5z��p�Ȁ<��2>����^O�)i-נI��N"��zD8�Dd�aj�Q���:
+2
IAiP�b+ȚG"���xS��i� ku��~z@�v/x�
��v\�קG�|�h��\�:��a�`�	���Q��
8q�C��H�DޕPyTE��0�a�5�p%Y�1��N��==��o
+�ĬAҽ�y:�"���U�

B-�%+�Q�N`t�>
+��� %q�B�%��?�$r?�G��S at 0���!�X����̓��f� ���[a��r�|���{�~
+�{<��Ѐ$4^�,���ُ�h��E�w��}�����A�玝�7�9��A��Z��l��G�x�\���vy�o����ړ���M�3:��.�ۅ�N6�P�tPK�A�2b`�󞩅��1�
+wEjU[(z���=ڑg{��bL��w�j��fF]H��u��
� R�<<�
��&>���
��6��(��z1/
��<5�(�=�:�Ź!L0T8�Sp�f͢)1�W�vߟ�}�[����9�����
���������]�w�t4
�0�Q����1�]��8�ïߦPj� �9upY�o(95j��|�����OF�6)�}F�]N�U��z|,.ղ_� ��W{�h � �T�>�#
+� p-�l���@72)�h�+UoOP���<�� k>@�tԴ3���Q�SP�m�E�d�m
9��]r�%a�|Q��P>3�4Q���?S�nG
�[��^��t�)�C���H]e��O���3�ߐ
%{�(�NA�Ş<���
H���8sh%_����
?+m:^el�+�����y u�=�N�^��E���
+��t��w�t�����P��VX1��$�IDf��r���������o�� �#l����
�����=�E��#!I8��7��1
���󰽭�
�T
UP�6��>�C�G�1_��l��+��C��NKQ�dF��|
+�2����(����#�R���5
���{������n�H6Wy!��F��� �nC��"G�+��!p��� �"=�2|E;��aY]��\�s��D��A�[�n��b�`Up�׊L
Jlh�f�

)��[
	��)�
A�5�J����pؽ`xG/g`@=(��LB3{����I�Q>=���!'�<
�G���r�)d�v��I�^�(�A]TI�.p����
H�?ɪ^��D ��A���u�E�4�& w�� ����(�=�$]�G�����>�&�2z=�% ��@�
+��j��A�0�`�������Ӈ@HR���_ �
�1
h���q���^}9z��z��n�A�
E�����(��~��٫f���D-���L���k��s�L&�
Qy���(<��p
�
#z�a
+�+�Q�e1���wf�k�ݾ(]4(�ߔ����p�e���JOȚ�
+d�g����j&��4�geY�C�t9/#����Q�'�E��S:��
+�����N{I���_���n�C
�Sy�q�M0x����E�n��TG��`��bi�
+�RR_C5�����ˆ<`��kR�Q�V
hX�$d�w��>�ߡOe�9�U�=Y�n
����{�B-h=�PYq�h�߷$cr�+(*���!���L	����}�S�~��Z'fB40S�Y!�^��BM9\'(w�K�գ��t��
�TZ�w�
	݅| \��t��#���J́��i,�ޣ�t�:�^9gz�E5���=�D��[HR�Z�c��M�Nf���Ru���#n��MA�:�o��� ����{L�0
�ZD_:H�ׅl��_;1�
AB���
+s��~@Uj">���!
�����x�q_RD:yI+b�����X:�U��j' g˷=�
��`'y����bVQ��A��
�/�jl쪁"فd�"V`�J@�PL�[��y9`$7���{�h7�j)b��4�)�7����/�<���
�f�F1��$
����4$ep��#���`��RM;}
Wۗ�0���s�R�8��'\=ȫ�
��_e�yH��qP�y��U^\�
|J>�N�3D74YG�K���ƐX�/�{�B&�t(�����F|�)+��o�$3Ġ������� �����x4�^!�{'�� �/�Jv6Ue�gG
P��
(2BI.�Hl%؋@}�s���i�[��e̳Bq ��
"�v�_Px�]�v;\"������z
?:o԰W5���G9'��t��c�V	'��ごx ��
�����W�
�CȊ�'� �t8]�}W���8��O�t�Ι�鱄*�gF�2H��RP����Z�3��PCW���8���p}+m/�
�%E��:�����
ct�V:=�����<�T4��!�����k�[�*�e�"�O�J��y����j\�r���営���M���P�
v�~�s�Pi
|a{�������.���n/���a
�� �A/X6{a�"���
x��O���ڕՂ^%��
Q�8���۔����Q�[��
`��* D?2��=
�Fi�`{:J؞��D0�Z$����� x���'9��������=$
o64��GA�R��
M��d�5TV`>�D;��4���æӘ�0�����nj
	Cq{��./z��c�3
[�w�<$�$Iq��ӎ�Ϗ���Fp�{�o���
�|��	5NGz�~�<9�
B��\f:����-��B�Ӿs<�	�j
_Ge�0l(W}�*{bXz�Cz���5 C���,B�o:��t���(Ą]B$Eq���Z����/a�J1���p��L��0w8�I!h���H��<.�2�2Ƿ�AT�0�t��cPy��Q��#m=�>t/t�������wr-�L�܃�0���O�w�J�K����q]9^��1·�U�W�=�
R�I�I��
���
�^��{hd*��^��yT��մc�3����4<_�����XԿ �e�}�c�C@�5
�k��y��.H�/ud���"��UEF`� �93�q�ٶ�!�I&�
+��ݰ�chĈ�a��c(�J|�]f �`���T=��e�:ItdL� �
���yj�W��b�O
�Q����u"�
���@��"+�J ��h{|��0
:<��U" NB��,W��&lv0�El�*�l/�C�`̰5V��ӓ���@zv���n�]�7a�
+C���S
�I
+��cT+��P�����o�k���ٙ�u5�!1)7�q>�����[��8��3H����2�B=Scάs�a6��)`��{�?r���/��	l'�sK�K$��Ҙ4��wڿ�� rT>B8�i~v�9�-A�	���5g}=�)]�j�S{Rr
�"�&1�~����nJ�թۜ�5�'�b(�(L����.y�
�M�.%�3��x���pv��a����s�J�u!Ή���ĸ�II��]�4�
+�J�ͺr�+���bd~
"޾��;ҭ�b;��.�
+�����:��F
h�yY
����(�눫ԩ,J��g7�
8�@�����H
��͇��Ge9(
�	e� K�f/W7�
�|�

�f^IL��G�MA�훴��
������Q�ƚ����#u:"��0	%�Xq?��5(e1��!�^��.(q��
�\Ъ�K�
-�S��"e7#F�Ά
+�-���-n�+�(����
+��+��C�a�	�4���8�?�P��ˁi5��A��=ؗ6H �8B��"x�PU�w�+�}�M��c��L�nU�5�a�
+ ����BT��ϟX�n�����#5Z=౫.�/���-\]��/���z�������=C+�1Q��R;Dw�"'�=��U��g�w���?�ed�S4,W�>5$+,/�D�F#٨P�ꧼW>$����GS1��`��gzMe\��5��&o^����� ��TҬ`4Ui������*'�a�P ��BZM"V��`�O��-�+��7�
���Y(T�^����WHSm�=b��
ȋ���I��p at Y��r0�0�5��
�<�x6��^�
!:9O�W�V��|�&�"#`
�/�A�B�XC��IH}r�
+�q�a�3E�Z���V;j{׆zx ��mh�����XCaPJZ�
+�'���s؞
+a7x��ˏp
�\�\�(�
����F`�����O�ܒ��h�*�8F	����[P�.H$���
+}"�0L�	}C�aȰ�)0q3�l��߮�{
N���q��j�����#��}VvT�i �Q_
q�k�9!�w�����U�"h��9G�: u�dq�
l4��F��M��C ��?,A�`I��=�D�Q7o
h}^'�������~�����:d� �<%��
O��QF��^��ǭ���V�TV�g��
٢�
�����{:�`vLI���_#JO�a�P���W�
A
����7p#C
+�rh
��)J���V-�}������ں@#��w����l5{/�3���X�H�3*�^JM�<mE���2y����X�#�2��a{+7ƫ��
���~h�9=�z������o5~�7�(W��6�{I���C]
ej�!����~]��QLG-欰�@�1C�v�?

�`XVh_��{�왔��-�g{���	�9��o	��L���¿�`	���#U�����������������7�����������o��?���������������_~�������������O��O�������_������������w�tq��
+�
����{��3��V��ox�{�%�
++�hz 4
|����
5Q���4��� )
p��
ll�{��qDz
�?���-��BLA�
��쪘)�4t�l��^�3���)\��v
���>c&
����h�=v�
�ky[�H����,�1Z>���
���VaM~�P��6F|	_�B�R%IH�I�]+��
�y
�!��=���#
�z�	�#@9��V�Oj`}Q�(p�����V�Y�t�;��B:N:�ʻ5'iT����g�f�qEW�*�xE�%�[ V9��!wP�
��Q�A���D�O�Q p�Vb�iNa�{�K�`�S��sl!\���'?�n'�B'����nt˜�N��K��!T���qt�N�S[W�o��
Y#��;�
+�BT_���A��
�d�*v̽)�Zwf�r�x�)d�Q���X'h����e�Ti���
���9F�\�)wr���r�~�Q�y9~IQ����ut�(��w
&d���=��<\����o�汨���� <Y%�� %N֊�P��j����
�`G(bD߾��:��,� �N��!;�	+4�nY�z����s�G�@�d��+�
�������yX�WP(����g�!����꼘�n�,'e7��v�BF���N�X��(HN���Ҿ���3ua'�=Bi�FZrE_dUQ�a��j��V
���0~I��3}��vPJG
�9�)Q�U�i��]³ρ�Ԉ��=<��Z�ƶ����8
+,��H�
��֬dw4����a��	DV�^�"�.�9(w�x��D<v$׀�`�
�:H?���@��m�d �5��u����.��Ŭ��{@�<f�hT��ϋL��g�[��^ɨ��� >��+�5N�
�&�^���J���Z�Q�Tl
��!!L�><Q��C�Êà,[m.�%�R��;	ox"Y�/�$�k�
�Jڿ>�`
+^�����)4�

��c|w�RG '1(��y�cx/	VR+��E�r�d�1��FU�����^�U1��j$uC���[��?�*�	
dN����p<��� ɱ)
+�"�
�0G�����t �n�Ў�<k75.A!g�p\h녷v�)A^�Ʒ��dp�<8P)鈶O��=���#�1Dumh��=��C�#0����2#�G��
�LУ���E��cz�G�:��94�����|s8(�Bҝ�h�o�{s���.�$RcO�$���G���tP ��,<���!^
����9��1�{��d�TD傡ɅVur��2����w�=�O��Ɓ"�QP
F�5�=�R7��܉v�$�
�NCk=����
�u|� &zY#)����
����4z8��X���
���ĕ
��@��<�����l��$�P/��jxo
��׻"���>��K��y�*"B,;�0'�V�j�ET�pC/���J6Ԩ��|	vT̡�(�Y��
�2:7n�n��4 �AC�Ӱ�
���� ս�;��{�nV��x�
.��u�!^�(��7�<]���
�
+�4��o1硨t�<lɡ1���~�p�3dCrę:�~|��8ڋ	��*`�}�q��ܸ/k`\��]9�U>SE��
�|���
[��⑥W�r��{F��L���{�v�)@3����~S���l\�F�ؙΆ���?]'>
~n1���Ο'�P suo�J���v
LJ��
!�r�%+�5���Hy��f�2�r]�	En���j��
C#֥�+��[���������ϓ;�8�75�qqs0�@� ��2���;B��%�������!���G�/�^�!�����@��B
�$Ƌ���'��f�����Ԉi@Ɔ�*\|Dz(��\=�R�y�;X�b��P�^@��	�R��z� �(��8��j�&4���y��)���OfOA���e
+Veq��緀^�M��'�
�o
*G
��[��¾���^���rH���
� G�
�|E~>	Z[$ ������ř���ɐ��~Tm4��y4q2{��A�Ue���
�?�����7 at d5�H�'��`Z�B
o�'��4�y-�����3ib&��EE��c�H)�Xz7�S�c�N�w���;�1{|�U
��4h������%�e�Q�e?�}]!҂eD�@M���$V�Ks*�{�<�)�h&
2z��!� ����b1�v
��#d,�N��Ze�����1]��Q%�_\���
�:Rͅ��Q���ك�_��^֧T2�a%�H���)
�t�m���0
�ʸ��� &��]�Trm� �u� ��-�*oh�%Z�%��^@+9k��Ydk���̮�f��^���`Ept�
���\A��
�(H^�����5On`�a��������~{
+y3-BD�<5s�:|�PD��=
Xǀc)��ha�t
���H�j1��s�@���U������p�El���*����3���e�X~_� ݃���d�iXZ)��5ټz
�
a�}�X���F~�V5Y��

\t%�z��QHa�d��z���t!���0A$@+�0<���M3�-��du�
�����
X���`��ozD
�g�U%
������9v|(������B��h��F�0�BKE
��r��]�	�۱���4�m����f�!Y�o��ʁд�+9`�o
=�^
�k�
+�K%���a�$��M��W�}���[��?��Cz#'���:,��
�\�t
��b��
�F^U��8!�g�|m�
��~
nm�����"��0 /mV-�o��_�~�x���OAYUmŽY��sM��I ,��(jNtK�/Xm�Xe�ɦ:
�j�x5�߆�u�1���n�2�8����0ͻ��ƃ��J�rn�������R�^�)�����+ �$�÷�HT&��!�[��!�u˾4��T�*_�~7���ݒ�1����-��;dc�N��_���̢���^A�?%�,�_�k�*�
) �>�.���2���ʣp��q◮��&6>��η��~��7����G�ύcfw�Q�JE\��u
���Ҡ�
+.�.wn�����{Lq~
��۔z2̍ݸ�?f�3ae�p��M_h���� V��@ܡ~��R�n�F���S>wN�a�
���#p�Dϐ=b�Bv�6���(�ܡ4��-�"^�\&�ύzk 7��0}m�h
El"I�Ɛ����p�`SUm��d�8�gJ�����
.{H
)�6e=�wS��B�y����7����z
��88�y��f�Dr��'DSl�⇵�T�
���O����>`dc���ސÕ�p�Qc�&$����0�|�N�&���4�?>[^�btԛQ&��{�%
�0E������.�8�.9S�.����g2H��b�F8�)�W�c��C�������!-a>��"�(¶ח0�c�:�}/(���?�v�6"Ǣ77�J�{�������B5��>
p0uӨg;UӼ*�g�oI��%Q .�[A:�X��6�
d���T��!�M����;(b[�WU��PE����
b�)������4
T�˴��G��]��\݅�6UBb�Zb
+��9m��m��?��GC�
�4<����R4��I"��B�^����f��BSY2�
�@+!c�!3e������cu�]�0L@mWo�h>�<�K�R���=��=(;�pL�DZ=�XS=;
��ԓmʽ8?&� �9zz
��A.Q�P2O�9 S!u �}��Ζ_Lm�a;�8��
�t�z
��y,HB��
��M�$A�<�eM���ZI�e�n-Y@xeX��c��
��O�E��~�v3
�&Бtx�
~�o�[Ó:��/���Q�y�N���
�
9D*��fRBCo�*fA����A����z&ݽ a�
ʘ����^gy�LP‘_G����_.ˌ,�l
������
Skͤ
k�ŷ@:9J��"M��4�w@�N"ѯf��������=�� ]t}P���v��:�7z�g������'��	i��:~�+k]4�x�'��Qp���L���w��;�a4��������
��
0�/jg{����S@�✈�3�i�~��`�
f2���^�G 9=X�e�(��G��GG��Z�۫R%�
+&t
b�L�
5��3!

r-�
�[�A]�qx�9oq|>i#�}?��)!P�`
��I�ZW�lH�*�=�\a��(W|���؎��h��H�/Q��󺞿#�B9�3�H<��[�&G��eʓg)�6�Є��!x�A
t�cAh9JG��e�+d�!%HM�7�K�x
C)�g�*A�
g
�
g��2�9�ˀ����U���Q���Ws(a���
����I��|�Rђ�|;�&{!�SX/�PF�A	�1	-�a��-q&� ����PëD$m���z�:�ky�gg��'$Òg��fzIs��.p�0�Ɇ�*J=� ��9l�!�+7d�(U�X�	ɨ��]V;Yڥ��!
�����-VO��uOP� �@����X�y����K�|�-���;2�i�kB=��PE2Χ"�P��vQ������/��o�S�o:Y���U4	�.�S��>�U�aB����l��,i��@x��N����Kd�zo�zį����
�‚љB}-$�W�rB�ԧ���(;�N�:
+��߽~)�E/�2e�L�<#�3UKckV�\�C`�9����G�P�B�.}���
w)u*�SUr��80��I� �@恷���V��*��xs�ã,O0D�P��*���~���v
��R�S���׾�AL2Dh���ۿ��*@9�����
+�+�i�a1��� ��
Dy]����D0JV#���q��c
W`B�EUb
+��=�E-��)^S�x
�uj�-X�
+<P�=��4L���``���5Q����SUk�z
د��
+�W�„�:����#
�HW�s�[��k=F�ςa��
jǂW?��� �����V:ۣ8�9��(�eC���>
z9��l��!ܹ����A_<B`k��iG
+�
���zf`iY�qϹ7q����0=DSg�IЉ��A
+��X�c}��]yr�G�뭓�[�)�%�k��'�������M+���v�Z�o
b
p�}*J�z|9J���#�{�8�A��Z�vS8y����fɁ�`�ñЭ�IP��{��O�3��>kjL0,z����W�C�-�S� 4}ї_MϷe�L�|K���hҹ�cVp�y�̆�����b�<��{�ʯ�A4�H
9cf�|O
@��7=�gۡXk�,���^5m��<<�#6��	M mW������)b���*z�J��%��k�1���a��iV_��|�	E�'ʽ�#6� S�, �Q*�):�(��9�� ��(�BL _a��#���j+�t@��t��P�/΋�Q�

�zG#QK�
|
�/��PV�vO5�R|Ӄt[}a{�4&��E 3!��5^N��'���
�D��������B�� ��IZ�?
9q���p���X��2#�G���a<����ڟ�^{��=SK���2��2��R�$`���l���2������<K��`��� ��2�� :��Y�ޕ�X�d?�
�ղb�f�\������饘��� ��������׵9��_{�ܧ��R�6��\c��􈙢̊>
8���I:S�=e�#J��%I�*�_��(�S�S�=��@�VB0;ənaK!�='Cu�L�0t�}Ռ
"1�N��$�����)���![��p��\�$���N�N)f�B5
'b�
+��o�β_���8*�&{�
�����ݯGJF�!�
��S�[uoWCm!<�JG��knW�K�
�
���paŗxi�u�`9�Ŵ �GY��^�}��p�P�
_�Ҫ�R��^̋��x�
�����}�rP~d�գ�K�Xip���]��[�S꧓~�ڐ��R��0�����)M`'��U���U�8���h��
+7��8�vG�
G�n!o
+mBKa8�6-��v�n{���NH�N��g�8
�)g��4�Ǣ�����l4+k�^��
zGȒ�
)ɩ�ϰ�K����+�Z��WH��ebVBh�^Hj����Y�T._��ނ���Me��MEgV
ƣ���U�z��U��\����3����x�.V�zX1$qJ��
+�n6-�@	����/��7�G&��&�9 -)ƣԓ`_�#u�K
.��G���gN�t��+dQU��ϡ�B��xPST^�6S�#�'�ԥ�^!����,�a�o���G�!l�,C�܋�c@�oXw��M7
�W:�AX٣k��M�$tv���c��A�A
j=��xq�k!�@�jI�lf1
�tԙ%2O���%�AL�$�Z�(#�p�T3�[I9N�dz��� j��Z���-�GAl��5�,���˃��ç��-)�j
��&\�"9MY�1W<I��=jʲ��L��U�78匥�P��:*�W��{1�<)�6�����%�s�P�u>���iq�Y]�tp���/���GpېN�L�
�$Դ��$��y�un<w�!�Qe��P��GGG	OEN+��gR��«�
]�j�~
��V����
g��K�&}P#�N���<=�s
F-	
��d+�kU�1�[�` skb&�1�"Y���������
�a�X��3��3��ؓ
U�W	\ ��@$�os�߉��ɣ ��!
�1���V'3� �bu
h��
+�K�U����L�n��9%i@�0u��يr&
g"���V)���vG� E��.3_�U0����|"��N
+	n��LL�`(u����5O&�}G)�sQ
C��פ�[}�;�烔#�
R��LIƲ<�<��~�����!�H�%��؛[k��Ԭ$���ˬ6{D�E�,D��8{��Q�K<
+�R؈��;�H�a(� dO�MNE�y��q��,��`6]�+7�
lQ�Ù��t��ӘZ㔻Q����q�J8'9v\�f��]�>-L��{�Pp:����~���N5��Y5�h��F�`%���n~�
h�,�i0�"�I����J�
��z�cU"�rG>�%�3'6r-5z"��802;�
[�?�ݸ�p�>T<1t����
Ĭa���'<�l
b��.Ρ~���HG�
+��p��x�����O:�ۗ7�����M�ȩ���d�G��@Ӹ�[?�q�u6�,6^�NV�y$ǐo���s-Khe���l�HR�wI�B��
��m�N�x��*ը�i�/|=A�D��z�v
�1Y���G�
���<��ƛ�m?_�0��d�1����,)�.ݞ���&{z��S-����a�}�
<
+�lO�
+��
�%Q�^�B��5��5��F��g���_X?��c�

�ԇ�*S��ā%��G��O/�m��3�Y�n{!��
%l��lL&
�K�H��b'��<g	�z��ō��&e�Q{!a@���vs�Z��ӣӅ��B�ᗫ�sg<��+i�
��3�	���.�>l<�����t9��Oa`2
�+A
z� %\/ˮ O7
h��;�Q��Ŷ~/ps2UA��rⴽ��*�Â��n/pW����kx�"�f
�,80j���G8H&���K��-�3��_'b�C'6��V�q��q�骧�PO�揆Xw
p�=

*��zq�����Z==�COh쭓����6`kQ�C	= ��0D�+d��z�ix�M��1_��D���̲jGÀ���B�A�e��
@<@�W{���������+y�c�%��C��샑nςxp�Ě�	M�IE����:��\E,�*��<jxk5m^���IR�
��[�2�h<�;8M� �
H�u���й��*�w�����a�\��1�B�ӊ*��l`���� ��=Z��k����|�W�yԞdq�^]��
�_������^�[FTCY�����4�y~
>�*��9v�ꓶ%2)��H`��O휔'�I��U$V������P��t4G�����Cb(X�A-�Tê
��q=T���
W^�dX�T�q_
�IT������7��,ȊR��sv��N ���|�?8|���r��c�J��#t�`D��LGV at IЏ5�ZF��@V
�ΚҭS"=��
��Z]*H���=l�+{��8
��9�%W�yu�N
|��_+r!Cr�
&J�V�C���x�!�ڇ�6�q�}���Su"v�>����^*}��ն��*׻�!���,�:e
+�xF�\JDF�����n�W&d�B�r�}�d�l�v a�������9�岫Q��0%3~ؿ��yp��kE�C${Q"���y��Q7��
�;C��W���
�E.vh1��H9�UB
	
���Zj�7�K|	?��#�_rc�]$5.!9�E�K�u�d�ވ/�����g#��r��@t�1l�U %mش�~�x6�wH��T��3����"�
�{O���fk��`�hs
�4�(U��> O����V�JE4ۧ�"�ȷ�ؔ�m�a���9ր���(Q����#
fO-*Wm��	
ruIL6��H�0W��Cm�!�BȮ
c�!�
G��g/������!��k���0d�ʡ6І�]�
��F�9�C
p-F[��#����Y~����V�٦�p�Bi��� n�h$�E����C��
 �
!n`J�
�X�ਲ਼ACd�B�����T����I�_
K�\ k���0�&��T�xG��Y�z{��� �
���܄l��7�#-��\T���_����|��œ�c�"P�E0pCҥ�����[��
�
�JT�0�b����X���`\�pO�0,�7����/0�b풉Hrd���2�
~{ ��n ))L�O������w|��bC�	u+j]$�V�/��ՉV]�ʺsf�v
���י�)<j�{���,Q�L�5ڥTI�
���x�����+/���k��># ƾ�A&$d��]&���+RD8 j*b�j�'=��s�
�X9J4 "��/���T������s�G�/$r�)�7��y���K�qE:���l���+~g��z����&�]n�
;%H���ѯ��Tn�
TNS����
B�\�Yn�g8�E��,<�is��*0�
d:V�Y*/ζ�7�4)rB�<
�����y�#�NB(�$A%xR�@�QT�M��|��a��ĝ^�\���l6�d��|6�2R��
3�z�$Si8��P�Yf�rP\��ԵaOˍW����\�
Y�4�#}(�)���%�j���a9�
���ȶ�$I@�4��������S(�(?Q��p��q�3�M4�����(g�Ea.�H�E��
$+�
rs�����2�;Dc�}�nl�w�*�Q�t��E|�L�
9�r�ha�����҄13|⺓U��~�1'���� ����-�gD��,�͒S��0�
�y�ҡD:5,�
� �2)�u��)�4�l�N���eJu��Q]�[?��@��GB���s�c�v	U��O=$�v�^	�-}"o�P`W����B�E�݈ħ�dNiP�oOp�=�j<6��/|�T���%�	�J����[��6U5�'�Esd�� �0U�}���<���uQS��V0ܨ���>��
�0E���&��_!����F(:5�������T�(="���D���%}bAJ|�&��

	Q�d{��f��"5_�G
�Uo���_����j�98��%�®���'k���
�:+��AK��xK�nL���mߙ@%����ٺ�����¾�qAb��
���Ԙe@$udf
� ��ĩ�J��ٌ�Y�
�Y��(�E	�mn^Љ���!��aEbĭ��`���T���5tǢ���#'�F�٤�TfiIl�G� �L�O�� 
�".N���sl>A|
�ܐo�0?���1����@�@m���^ڪҫ�Ì�a�^� �8=}�`X��`M���X�y������
Eu�<�t�5��
���s��-^Cz��V>�����NM0
;��.�4�SX%�>�ݡ*����<�$t�#���4�`��̓�`�h:��:�<B
+�t��0�gc׍��a	B�t�8I 
ρe�K
�@y0�+P�˻��Ԡ��
�)h�H�S�%M�L&c�{\Èݘ��_����m��2Y�x��m�jt����CJ�����+��&�|
N�
2��)�w��T�$���9��;����r�b���/:�>5p}p��UՕ
qXh{��
��5K3,	���M
+�[��D퐅 ux:�0:�㢄��,����u?58�q��{I4&6c��w�g
h7 @��{sWU�'"wd�,'|Ԃ�Ų�"�
+
��4�"$C
�����O��P�<A�n�
+?ϒ�O�c���~'�z��y
�uꉷ�ϫ8�p`gi$e�܏ �lݗ
~�������x�򴗋�6	
L
+�{jc4{�5m�SoS��Kp������5�z_�.�SV^u1�+�MG�Km 2ß�ʼn�W �=Nh��ɨ�

d���
UY�SiFRn=�
�~����Cܽ(3�	�>�
 

2"Y�Is)�-%E�2��p���!؛���&/��#�M�G����(#q�Z�V�J�T]�Ov\����m�qgXA��A��PC�p�
+�^�Ǥ�C��
j�L҆b�j)F9���B�B��Q�.�+Dqr�7{�2����7�|�ZYǛ2j��n�>�C��G��?��
�jt
1�
L�2T��AgԐ '�GH�+��o�Z��'@�IW5�
���L�9ŋ��$��D�
+~��e%�
+57�
^��x�R�L���C	�j�tZqR����
+�)T����>�akSo�*��A�M��]h
��}�3��|�{C1C�b�VbS�阙Nj��W�\�BꤽN���u
+�!N�бP�V9����
j:,zu�%��)��Tޏ'�
P��A&�;·2�V�
b���q�PM�-����N4f$A�5�_p��ȕz���N�(}w��b��u^�0+��|q�a�H��뚁��ey�@�dtX�HK������)���*�C�4Q
+�L���aj�zD�:{7���[q�.a�OHh,����|��}8�
���%��/�A"�
+
�>FtG~E��c��m���a	�ʧ�$�ΣU
���[0� ��+~U�}��f�.(!��H�ا{-�9�B�!�a�r¯����ہ�톊�)
�,689k���\�����w��FR 6�c��9:}��B��
���w#c�d<.G
I���
+`D���vdF�	��®���Din�\���_5�d$�<٥~���'&�N
�:	�\�dp5�/z�CĈ�nN�K��<�
�6�VGI�% �����%?������
1���D�q
+�6�(Y�8��9JkJcVE�����Y��H���)D�T��H��+�%���
g��A)�}~�hj(���J�`*�u)ST�Z�ӫY��\�	����ڿ�E���
�u�UUv��*=P,�xk���*VhXa
+ڊ^؃�d���A��+�Sd���RE)�PZf\�B�WT�D0�����b;��=;a���Hh(��(
��P�  
�-5��mL��<)�����09O
�-p���i�+����5�Y�8޼�$D+1�>�3�b:*Y�258f��#�,���2pp�`[���n�5>C)��;�D�L�����Ѡρ�Iio����{�e�0M��Ҁ �>��Ґv|�,o�(G
�
l
+5J�R�|��b_#Q�f
0� K�4�	3�H?�;�څ���/�g73
Bu���3!��B0_�� VH�ŋ�*<��Z�
Kl�L�H�׳�G��-:��:�����,�
�>��8�e�����&�X=)aD����N�?C�:I����~r���\����C>��?�IH
iS��:��$� KK�:k��kY��G=G
+XT~�����踗L�Cމ@R���ʠ�M
$ΐ�o�$hG�π�wg
<]�^0^�gq�ف����
j�	�	�mw���
ė�r�M
+�q�M�X��g��Мp�'D�+!�/�?(�1x�\US.RU��^H�v�%z1��p���U�:�wQTa���_s~
};4;e�����jiG'8�
�����?�€�wM��
�
�)��|tT��R�cُ\�L�����z��t\U�M�ĥJ ʡ���Dx��
�Z>f
�?�(�c�Z}�^���Dg�X©���.���Hj�bOed�z&�F�Ez�a�Ҧ����fw8�p@�t
=+��X��}�
O���’6�/�����&N�KAוbH9��
�ԔΌ��_(v�z�k@:���F���5H?q20TT�]���N��.3�
�� R��1Z<�v
H����V;+�|m6����8<2���~�O�W�� .Mk�
D�P+B0p5�0f��7
+�B�-�.��W���������Ai
�Q���R��{D�7�bݛ�
Ӫ_{I�p[�
�f�=\�|�!-'�'ٖ�k��
+X]9�/�2����e�
	c�7��}��O�T�A�
nT���A��L9�B����y���ƫd�HZ#��tB��'S~�� �ry��	��
������g;># .��Ӹ �5���b�L�\a	
+f0��+�=�ج0�{�uY&Z�*(�S,���v[d.��iy�r��[+<�R3�O �?��bh���d���y��UT9�V5�}L���1�t;>����բ~�1

��/��'
i$8����р�9�h�}���4M��ϩ�	�������g�֟`�RH�:��ْ׶���$*P���'G�G�P���%sS$��)�2�����P�Gy�-������2��-"Y~��ѠuYR�󸮤#�Z�;蕖��a����/�X���		�ȑ��	�$J^�9�P�cr�$����)h B�a�6��f4�6�
����K��cSً���[�����L��j���7�vU�	��N
O�Dz�؍�"mÌ"��
l������_�E��k�dA���r��~,�育Ɗ�# �$1�>jؚ�-ڇ��U#����G��kc0���`���VJQ�����y)l%ا
*K+aذ��#
+��F��
�Sِ�o;�
+��/Ui�*8ݳq:gW��6 f&
� !?@��9��ěw`��Z�m
+�)���)'�')�@)�N4�Om���@G�"1/�EF��A�)ȭ���s(�-���5oC�׃�w?3�v�>Y2�sJ/���SZ�[�5X��UU��i�E�'za�M/��
�R��!��s�
�xk���'㍿�B9�uZM�5��Y�_+��ޞJь%H�"~��äS�
5�Zd���l�
+gTIp�ɕ��
$����P��E�����YY�
c6?!�|WCfp��H�>�
+"�9G�$<���&�bq���e��R�F*�ge��O�!}-���|z�:�<�d,h�� (/+
�{;
+N�Mr�<���̡r8���*�{O5����ٽ�Sw��Ar��eJ��oq�,�`8���СV!(�.�r��3�"�K�幐�%3�?O%���z`ؚ��K�^;�u͞

��	�I���0e3WK4��
��ñ-��
F�l�u��i�3��lD4!�i��	ʤ=Q:�s�-�S��ԃ!@�	<�j���Sh��"t�,�c�F/�΢
V`:�
�����M�ǎ⎕=��r����>�xUF�)�
&{y
6
)�O�
*.�_��DB)Y&V��FI.{?(���Glw�)o�$z��0`?�Ƣcԃ
�8v�y����_��ܧ�;&�O?�\����ɵ'��
�1+MW��]R�]1�pR�;�L�\�x�L��P���?`}����!����B�q�
�
j�l2����<v�e�c� 
LĘס��
I%
4
+�Ѧ� �H%u�C�����r�W����Y6^���
�9x��+���H,g<��dQ�V����M�5{�|�����]���pQ�E at BX�Z��/S���7�Kٹ����$_�z�
����q�jM��^�uA�'��\�$/o0�]
+�[/p�ZoRav	?�pn>EaI����&E��GEI����Θ�D3��`х�64YR9���B���{?F��B����
J�#)e5B�TE��!�"T����
1 ���zL��
���Ljq&�e7���!���	��T��8�ȓ"��
�#����I�;W�I�r���
5,f�c���_{�E��?0?����
n�?
���.1
nx&_?�q|�ְZ)��~��Gŧ*Ԁ�����k��FQa��/%��^����J
+��G��2�z� �|�����<�����[Xc(]�?viuU9g�kC���p�
b�"?�&���=C�y&\ݐ����/�A�հ΢����Hik��D�����
�5�!(��/
+#2�,Gg�梙�
�e��
'�4�Ӌ�ܳN>���Y"����5?�SmϬ>�� ':3p��}G�+z@����B��h�
5�8~V�t|V��3��2E����y�r��N~�a�6�A�����l�D=�=��R�)�
�v�L��n�7��!G�b;D.�9�|H�[n.����o�(��V��A@�=�m���l�]�+���&����g�v��V��(���
+�A�De�
��q�\�%�
3f{���K+D���Q���u�^Τ2s9����1?]K�q:g��>z�Al^w��EE����"�3	0�6�z�Fe^� �B��V&���E@@l��o�ڬ#s
+w\k������\8�1�F�&�i��E��e4���]����+��Tcm
4fV]���>
�K�2��h���  Z�73ǂ��rdn��`��(�)@1r`�^g��C�r��Y

J(���
==�Zc�"�d5��o�KC�
A��']�T�v��{A�n�����p/ΰ(�W9'	�o=ʍG&���Pf�&�±�����i��=&�>D3��a� �nG!�
=���
�H�WU��@
+�^�{�(��|9������Bb�#�T��`���*
V��ab�YqG{}�%~��y}��Hj7�YL�$~�J� n��1N��u\E����$
97D2b�| 
f��
�>ԙ~������]�Lpz\�,�����L{��'a�
��i!S�<0���C#�oHQ���{�tD�չ���#.]e�3)��3Thˆ�B�z����f**�o����9Q��Oߘ'�^��k�w2<�F3,�t����udX>�W���h
� Qi*L����a��l)TkV!�v�H�
�D%���;�ܕ
��}�=�<G�������;�>c��9l� 7!h�R

��Y�=l����	��"�Eu�vٶ�
�z�'�a�Q��Y�>��5��
+�H@�&K�'V�@l�w=�O�X�{��^�Dy��fN w�����4ޠ"3�$���~��b�W��
�	D;<10Tm|w
\�u."[p�8P����ꝶXĞ1�֋��!�&L��I�y��0���$m`��2�Q�a����}M������|s
�Hd�`O�c9P�pl��{�֍.��@��5�U�ъb1��P�Y�!b���?G-o:���,���
q�Z`
0W��|=Ε��VZ?�TKMeͣ��F���Ի�,�w��!���&U�!�M��� |�qV�
�]v������G;}
W���k�3Ӵ�d�>;Nz���=f;��
��NV���C�'
+������Y
RGDC�LT���E|\LǛ�����
�����bi譗t��OCyK�@��p�^�����I��`筓�P\��F �
L�'>��������k��(��'�\_r[=�u�CA#)�ү� ��n�� ��؃��
WVH::�~y��!�A�»:�C�mH��3Eh�y�3��E�	�}<�r��:=Qm�\�抍���P<�Ɯ�ɼ��#�'��>ꬦ������8ؤ=�T�������a=$��8*�̐�C��;uz�՟�5�
��dž�Q?��5�&i�ͱ
+^0�ɬ�t?��CR$ni�I�"*6�l�a��3���&����Bt
�6�9o57�Ńx�	�I
�
~��-U������0Ϻ�9 �=������%�x�����k/&��#9��Ky���%�{O�R �@:;�r@�a�M1����n�]�Ա���6�Za˅�I��\n�$V(�"
#u��<IAB[
׾j$R/���2� �FX2&�O�ǿ�
�S��׵h”�+v��s1�~�N�t�e�c�K�{~�����e���Ne�N<n:�yc:
w����c/n��<=��A
G�q�t��w�n�F
b���g�H���'
Dx�AD�וa���!L�xA��w�{	 �İ
,!zPd����.�s ڛ�
)H�
^A�0�<��B�i���I	��4���pE)�xaC��妣��{�[w!H{^%+X%	�T�d�8��{.|f(���f�D6���G
��q�c�)u�
�V���3��b�
}%�dc�|�Cq�A	�
ǵ����+�/�
1���7.a]�v�\%=�P)@ [...]
+��
��dN2;� �)4�����r�sBI�JƤ50e8���
�;�l?��9ԣ �3�Ѻb�p#�����*AS�.�
�̞>��0mع
�<Bn�F��4h,���|h
����
����|i��WSh�r� D�$l3"�˃�dG�Df7��
��fV4�c_�IT
|55�fhi
�
���uw	�08�rDž���p�Q��;6��Ǘ�dR1��Y�Dm��)A
K���lh,�d7��-'#�����K��I!��{?F��1���F��j��|�!��He
+�<��x~��y���/\`�c1�:c�4"&��Iy�w�*��~�Q��I��C6���"�U�]��hO��_{(�r�߿6"�%>�W��>�$r���3�������
��̓���	�_K��Ӝϕ��?��Ը���g�����n����tN�(��T2
�Bp����8>�X���<��mO!�8�9`7X h (CI�{!΋��e�c����\�r_�$(_)�B�[+���6Ľ�I�}
�
-��bp�������{o��_�S��eu@��T�Z��	�����U��[����o��b9�7X��{ؗ
�r
�

+���UH�媃���1DS�ET9�����G}�U��T�oҫ_{<�y~�|�´q���5�F�"D�|�$
��9����a(ě�T�����2�_B
BQ��4tk����?v���[�}Q���A�:��3B���4C)�8P�^�k\Ze*P%3/��U"��q�\`�������ݪ49������
�}Pֿ�va����sT4�mpO5�����z�%��j��)���k���
+ii���u��R�
�?{:���l�(֟U���1���^
1M�H株~|��'9#dȔ��C(@|����֎�x��~�,�p���hv�(�<��^
��.<l��m���3�B
T]A����jY���ޒ,�7��e_�#o�S��@S4X�q��Z�^^�|
�Ty>�
+���dJ
��;���
:hP�6�I��挈�
��JA
@�0ᨚ<��/�}>�ġz56>��|T���}?vb���ܕ<w��F�^
�|)�m+\�׷ �h9��0s�TW
+�{;2�B�#��ፈ�!�Μ�1O�nc��$�[;@������<P@�ck�P�h"`�-��J<�[���I<�M�gü�~ /
�\?�5����|	t"ni�>o�{��VC2P�Y���� ��0:���K���@*�
�c�b7��r $i�8�Y�]Y2��6LI���8�����ag#zϲA!z���L�˥�c�XJ� $��7U�Q�`��V�������0��+>��R�O��5�����"��Ӱ2y���� ��2U|�
�	�}7p��}&��ώ�P����q	sZ�76�6��s�ǩ�0���@&6����>�7�_\�ݰ}j�piE̬`�-/ =��pmt���g�&<�"Š����S^23#" mɩ#XPe�(��T��������֎���
�
[
����8AT'�*!�zU��ѫ��B6�
Y
����6�͈۬Pbv�e��3�����*�.�;.'����)���*غ}U@������rv+��K3�Tq�*�������ÿ{A$z��b
���꬏o��ڿ�I�f��oU|�6MɔW��42�3��
IMC�"�*\�����e\'/�ȸb����F5YF ��=!����P�*<����`��?g
��.�Ƣ'��ؗ�i#m�R��K�2��I�����o�o������O����������������o���_��O���������������?���~�_?��?��_��?���
'�����������?��O�{^W�+
��ʿ��?�ŏ���8w���'2����Ul��g�y)h�	
����i���Qȓ�U��	E}\��.�a�鴄�L���<����-����~<�@�T�¡Q&�/
��S������d c���OW��Gj��?�E��d7TRxnPg
]�=��H�
nݠbI�e������i��� p�qR�CηYᶌ����!b�y�o��3Z�oG2 ���U����"��s�ؔ%��Py/���b�}	��x
��\$�7�@Zm
`%F�\{a�w?7G�?3�籦޻?^y�}3�&���V?hˏ����YZ�+;$�m{h���7A4�<rx�¸V^��?cf�z>B^!/ � �ٷ�}C
a�!��c|��c��R���
+i�����X���@�C׭��[,,-
��s�C\Wࣁ�Ҭ
�ŗ5[�r4!f����
J�Zed�g��
�8�Q.V��@2q o	v��^�B�/�p=�ߟ4c���pm�b&9�����+C3���������F�{���J�rC��@鹣�64�Apw���M�$��s��0P����`�0�\R���A���%��DtX�v�ߊ䘀�χ�7��x�uf$q��G9�>��b�×�ߴ�����	�TT˝u�#�:q�e�'(8`F&wɥQ`��r{-CP�!#}(>��H93O������a>e�UO��JC��
�Jv?�
��m쪐���s4�&�F̒�
���\��k�9�>y����02[��A/�����#(�̠h�0����G�W׊��Cӳ�ee�-?�0m�k#؜�8&ꪃ�Y*GKqb��wvQ3×-��S^�orJ��\�9�}����HP���1��AH
��A`� q���c�'�o{;���0�pf�
��l4s�FI�ѡ�':��E��s"x`�D4U����5=G9X!��Ҏ9Q��� [...]
�e��L
�M!�"�a?�ZG TR���K
+B����
����6�W^7�i�C�f�D��
�vhV�3�:
4�ARM���T���pC���4�7�T��&�f��t�G����)��N/:�#������Yq�u�7҇j
�
�QN�bY
�
���L�P�$��v�K/����a����@
+W<z�[��l������Y�[熻7
��#�
%�����D#�V}H��&�5�c`��+% � e��gp���˯��*+f�g?^9֔��V��!�D�/J�N,p_
.#��e�����h�A�V��,����P�>��!Ryz�"9����G�5�+-����s��
��J�iX1!:T<3H	�
�F�
+���8��cD�S�����`^
�� �
:�%�w��#�WN�����2����I�O�[������˜��ph#_"�.����z���#6��oL��'⚚� FS��.C���g͛�0\�Qɑ�p���'}7��3����a�;V�7�G֗y�W.02j�(	������;�3�v����P.�<����o����^�=<��94��fPO�~&#	�F��T �nJ֧����O��j�
3n��b��{K
2�8

&��08"x"��J�6��`l�$O�e�ͤ ����^0��N����@,�.b��wS���&��U�
*5�CI鱣��P��/��FBi�	R�5o�a��^�z��B+�������ӈN�LY�VY�&
�BvR�4�߲j����P�o���HWD�ii���A�
Sc�I�˙�F/�3�c+$a�S� �-�ET:�#�A.
�ǐ%�5��
����.2Y�F�
2�.�&/�c��46k^����r%`�je�0��f�}

%_���ӈ����������<K��
+_/���7�ǔ��a⺤��Q֎��.��/hu�Y�`(�������Î��
+`g��Q�r+�*|��T=�S��.�\I�Jr�<��o
A
�=���IS�_�O�L�I	�2������4�l#ubv���%eV�I:R��H�
}`��iy,�פ�g�>#2"�1�.��rD���1Y�����wk��
J7�*�
�wp�5�)�2a(Fq2�:
��Eߛ������!�
�N
+�N]�&GΠ
��+���T��p&PQΎ&��"���0ۿH�>R��v&,�X�
peP�CU��=b�N+��
/�e��)��CX�#�
W��]�`�E��h at i ?0�F��]�0���B�J�ɰ��L��������
ٵ���z�(�/�
��|k\Q� �
�
f_
�����V�0�����*:'h��KKY at lm�VÝJ
'�n�p:h�n5�ZU
�ǛJcb�Qܲ��e7����8�/Y�Tv-U�v�� �i�)U�0ؠQs�E唍
��eAâ
{x�
�_~���OjhUvV�=5�Jd�Ԩ��8�q!������(��y<V�*��F~4r��p�vOR����]ȹ���S
v_��_b�–���$Bϫ!~"�
���S>��(�0d����a v���FԒ(_g��h���1����䮴��
�D���
��������)1^y�n�S��r#�y�w��
A"@jE[�������N#¹�:��#RtbP��5��UQ�Kw�!�R�#�b�=n�I
sH�c0�u�B���sUX3��]�
�K�z�i5����
Ԍi�TE�[?�1�
����
!�e8
O�v(qk����Q?[�������(��w�@��[��b��ѹ�p�1 
��	��o
$�^�ύL�'��y�G��2z� ��:��x��bWb\���<���c0�0�6L�{:}$�C�U���NR�G4J�I���h�\솄.��g��;���Lb7��&��4Ϻ��N��.�m��m
�A���!�
��O���Ʀ7@yoc	:Y�r��RJv��
��1z �)ֿZu�#H#Ԝ�D��v	���?��s,��jk�U�X_�}�2B���
�u6ՙ��<7;���n۔	,R&�˾���.!
�OA=T��~1�~n���L(
o��ۊ~�8HM��˓�!o��~��)�$�;�s;@�iKnZc��L.
�9��$��c��:Z�3R1�D3�j���9�2-Y�~n�wf
�����$����|�X6`|�B���w�
�nTǙu����Oa
���k�Z�Y�'v��=���G�S 4~��
><�y�������
+%�Yq��Gl�U7�P|" �f�N{(��r �"'��&@4
P3��y�	"�>�X�`a ���
R�8\�S�A�Y�W4<�e�
�ih�鲷�f��
g3��E�x�$�CO�9���Oԑى��̈́���Nj��O���"Ԃ
27�-r�(����9	�U�&��1�qaL�˿�尌�<J��
Ag=�{�q�A )YjxN	y/#G��N{�c+��ʙf���:�W| I�OP"���	K���{�
���8�cYo�t����)ae�����px��{9��MG
�hL�I-8x�f�L��9�]�pS��'���h!����6�=$��XS��

�y���3d�]u�K�W�0z)����� �J���v��9�=�Y��z�R(`��pmx�Uu��S���Đ������&�k^^����"�^�_��GZONA�ۥ�\��S	&�C�!�s\���ѐ T��(Wy�6bX�
��'�$��[���&�H�2 W}5xQ�i��

�2i��U�C�^�u/���$t�2�e�ױ�|��^ZS�\�t�Z���	��w �*��S�����%�׉�y_
�����3r�a��&��[
��2
Ņ/z����
�G��%��$(�\>"S�o.�1�G���rU�,!�TE�C�V�tL�dzD�
U�
��%UTe
+D5J�<|d��9S	�

��3�
�^Rd�
8_��E
�#$�V�mb��}D�1a�N��aE�%�\=�{"w��R��A�t#S����Xs���='���i�Q^
�>-�oa�%ڽ���y| o
�d�y��7�s/�k�[���k �5㲞�USc�ı\G��c#�X>w��)ٚ1�/�9��0��X	)�)^B�r
�����b ���U���
�	��큐��7��:5iH,���yH��#)s6Xo�P���W��H�b��9F��{��:���g&N����n
�;���W���
+fY�vV���k^�
+���[���֌�lz?r+�?��3ŚG��Pȩ�E���΂
2�
+ ��:�q��
IImz{
ig�Tg���;e�
p3�O6 ���͔�6���ESP�j_��8ġ�|]�{��t�ȢV!@���D�W"
��!!Y����ߟЧL��
}�{�K�9 at OY R�����t�O��T~(G�a�E��b���m�wt���������kFh ���/OlE�U��QJ;�� {d�׹-��5�S��N�`�^�D�g��k�}��R��0�B�&Fq�,:�HL�؏Q��=R���5i�X�볇��
�s�

�gF��D�(��]�-f�R�D��Ҟ#�����ܐ8�<�Y� 
�1r�m�A�}:I/�>��=_�8RC�1�;��B
1F���&�D�`��ZW-i
�$�3���s��y��!\��
.
+�9R�f���
�Jq6s("�X�ljg������� $��.���
�d
�m��y��
!�?�@
��D�߱��
e� F~�����*E��Q��-4��{@~�hxh@�L߯F�|�1�]���`^�{�p:�AuK:e�S��'0~��'���ٯ�$�wٟ�NR��hW��'�F���(�4e�b8�ې�"�{��,.���T}�݀��3<Qm�ODHPD��GHWaŽhv&Ï�����7�ϒ
4�9!s�Z12���"i����rɭ���85��l��XU�n�|����
V9��o����tL�OS��#W,�G�A��~׀;�T���ظj��Ev�?b���HtyE���m��k��Z at s��]g����Z��ɴ
y��
C��E�ϫH��>�B @�C^�K3.�G�Dk
ޣ��,#޸K#3RgG�U�l��E�uU�+��~�am�ʋt�
�
�Jh����hY?��W��P��0��P0(/2)P�^e�º�:֞$X��O�e�$tP�9V����O�콠��uX/��}4��Ac�J魷�WM�M��L����(�=�$���eX
��B�{j�}\��O�3��j<����[
}��
+��$�[�(�����y�;I~�
�(�{�
�Ul�����U �E:��xg:d�
��r�*2,��*��f"������6C�x\��W�y�*R
��b������C���o����N��诞�&"E� }�f��� ��	`�Qn�n
��\2�a:Y�h��
HA��}fv����� n��uP��
�[!�ڎ���<�1܄�YB=G�Ώ��'�������e�Hq�H $��9��QVc?L��
b;�ޠ
0�nQ�����;
^�6��ݞ�� �U�H�s��`�\#���D6:^|�1 ��
�'ւ�F��-����}��,Ů�E���"�\ʰjׅ�19ot�@k�$J�{�F�e*����Ū ���
!��
f��}
-�Q��ƣx����ܗ�l����@9�ۋİ_' jQ����;
�B#:p%
�%�[�o�0[��g�m��3�c��D�q�1�	c��3�ԔV	�=�Um�3�h'���e?��5xl��eZgbo�m8�~�2��H�����*^�aA���GXl�
�dq~ XBT�-߾�T�CP�����<�Z�T\N��{88r��$6�-ѝuҪ
q�c�xSx��P+St��K�E�X��^]%���
+S9z�s��/�j���
�h[�Y�f
+
,o8(��:l,q6j��nT/[�CT��
�z����4��ʾ������8�%�
���(�=�uz|�Q�;lY��`4�P�j�aF^f��0��w����މ������R�Y�&s�{u,��<C��!�mN~
=����nAYвQ@���
�J]��_��o/�
+�t�*
�n1��
+W
���Z_�5h��X�����E>Z�3H����L��q��
5WcP�- j��4��8^"��N�.38P��� �v5�(�K)��[�a�jz�t�=9��(E��hv��*ȸM(�� c�Nò ]K��=@8[,|(���h��*�b�{�4r��ѻo�R����u�.HQ��hq���{�כc���HL\��\
���v�a�c[2�HoJw-��tP� z�#X�A��
��8C
�/J# g��b){-�����
+%�8�D�����MI6���/*��H�8%
�X���B��m��D@�
+��q�	�^�Y�	g�R;���p�'0�O��ipT"���Q@
�jvú����PxD;!��	=���:�>�P�������2xd�&������%]t�
���g9���#RU�3igFf�D���[B03���Ȉj z�W��U=��A>|�(�7��d?H�e���o,�m<��d�,J������R�H�Ш��`��S&Ȳ�	G�����0U�	�O��
LRP������
g
�\
+����4�C�S-g7���n�H�%Ȅ���~�r%��jx��P�:��`HJ���4�P�ѨU���k,���x�8�d��PH3p�6�k���~9�~�
�2h���^��[R��h�)�4�ê�
���$��[�T�QiJBP��
��ź
��hdIE$�q��~Kr2�/,���.|��Y����7v8xs1�@����lA؋aT�)W,�?�����b�L��
+��.���g,� ;P۫?������/�č: ���(�L�,g�؎�2�3��k��{_/FMF̘Ɗ0/=�
�����
���	�ܐ�A�����Q�A�x�RG�
yN�m�Np�A$�ܖ?�袆0�^����?�䳰�'u�gC
 M$��N���m)Tjv�<7X��S�H#�F
*C.%
f$�M!Gv}7(�g͓��H�y�no�i�0#)H�cF~%BȝCY#�>Xe��Ws�{LQ}&�g�
���<"���PtO�L��
$��_�$�R�[�O��gO��u��kH��3����q��[H�Rc���V�e��}�1oYA��(��
+�
%���,�c�y��4ώ��Gt |#. ��q�n��z�DwbEN�H;r���a|�N���v~с�
>��
+j�Kᬑ(˗��kgeS�j�=��tG��U�w(�s֔�XV5umY�
����_UŽ7dxn�
A��8�##�N��g�L��ҝ�~:��!�.0�
N��l�
V �w%`�l.1he^N�4�2I�E.��+E�|	�ˬ,��l*ܿ��'�f���S
+��PYqF��/��cc#��A�����#�X���S���z��'E܏ߢ[��B�-��`�H
�$*6��?	��4����$���
e���ۻ�$e�E�<���
?�Ol��E:X�D��1^1Ҽ��%�'�@��̓�o36��w� Y[�eyU��
B�%8E�+��8^U�[�#9���T>2�u�x\xAw}s���0t�
+t���\o� �:

�r�������/�G�
+�/�m�xC�];
̗�&���w�YxX���`��F}��)&�!̳��q��q
T�(�1k���q�F�`�7�H�OА���G$$[D�t�8Z��S9�85����C�i^ҡ��ޏ�����W�B����x����=o%Լ�W�\��4��ү�Z�Z���&v�6��3BO,5���!I�7i��
MΒ!
��.	�����*�q�>D�NH�)��So�A��>� ��qoߧ�r�nA/,�}{�Gby��x0��V&������zG�A���ث����܉���7�Y2����ջ�@�E}��(y�Qm��\�8Er
ԩp
��j
+gH������K��bclI�ʿ��D0ܶT�A
�Ô$H
,��
�7f�g|��)^�
+91T�-��E�i��˸���L$o~�'nIkp@��ɱ#��}Y6��3�&b,yG�
��)_�MG0k��~gIdj���N��|����of�񖃘o��)��q�G�_ي����Y�O��W�ya+��}�!f���m��������QT�z��b؊Xu�'P��G�m��I�a���QK:������J=�(��ׂ�A.��a��/=i›�
�S�G�{`-&�%��]�'b�<Qr��f�
}��%��nO�
+n
�N���~�����0$ږ^r��܏�
��  �j�
-i�+O%�Y<��NZ�lv0R1C����u�r����h�^�k�M8L���2ˮ���\�l&G�X�åO7g�#����j��Q���Aj�i��+
+��Ju�����L~�B�˕� L�	N!�� �~�zkB�GRnџh*nʢ���M�«#���NX��W'M:��"|���d�EN$P �/uyFf�
�%}I�zm�2�k1����#V�5�	o+X��|���
u�[��T�H��ޔ@��ه�7'<�r	��+��}5�b/.��Na��G�F`s�K 0Z��g�Fo�9��&׈X�A�c?�'�ث

 �$��e1!�"���i
�U�b��x{��4X'w�%RU�
��Z���n(<�^W>�I8��M��E�i�����8~
NI	t�s�"���-
�,' ���9P2$�*&���O����(�V��n
�̗�4�*�m�W�f� ?�
C����ͥ��=��E"�}
�d��5<bi�Q���9��|�z���
zh�CP
x<�X!��=M�
�{�Ff���8��$
��
�4��
+��A��@_OO~#q
+W;��[�q�ĺ�MɃ��1��ͤ�Ը�$ҹ���?-1-�
��k�k8����)~ڋu�^���h`��&�S�\����h�ac"�=e�r]H_Ǖk>�Y�"��!�Zഅ��
+&3ܓ��,рD��7��
�;
+�d� 9=�v��"ۃ��D�t�{
+3��D��=��JQp�D�|L�g��n�A����X�N����b�>^?����b��T�R-��D�F� �D���E�&`����.\f�����B|'�Q�(�d��aHb|��E<j���ڿ�C��<��H��],u䆵A��
�����O��:1�ie��"y�
+ԩ�AH;
��h{X�G-�
Y1��_��?8zE��ęt�&��0R�A�����Ǫǣ�:���q��E�&�A�h=[H0&@ q�#.��|8�x��W_�&�Pwj�h�^����o��#��?V)i�+�
��� ����eLĿ/��l��+��
�P�F0�h���ȉ� ��X���O!���1C���}�E2�����&��l�:4��B��;	i�-�Z<��@{ܢ��c�.r��,"�H���i�x
"�t��E%J���� 2
3��5/-Qf
؊_
J� �������L`�8��n�C���3>M4
s)�P
+�D =O��NA!�g
r)F��
+�Ç����I�u܂qGƗ�+�F� MF_2�n��#����}�x}�-�kq9��ezz"�=c���: $��׌�N�閈p��a2\����∂�zr��4�:9)�$�^�S�&�D�Ȩ%Aay��		�³��4j�8��:z42O
+
+�
7hQ:��	b
�31+���q�39����.�i
�M�X+hwȵ� �i>��)
��Rr�dS�
��P���&&I�/'p� �9{6o��ĵ0#t�6�A��6�e�
���!d�t��_W��/��sxY����2|��1;L�Dž����y ��l�9R�RvYQ�8�N=r�	�[̏l�M� ��2�C�A>���A�܍�D=R �)��o�/Z�N� ٴc��£��� N5��F��J5�@?2��KaDŖ��t�b�L�Ԩ�b�(�>��ÙZץd�{���H��.��M/g�4��L��g�dJ�|\`D��� =ۣ��_�q���V�8��sTT
�w�¦.���
��#=�Ew�A��b��H<Q�� g"ᄬ�
+;Q�C�W3��Y����*O�����u�o�y�H��C�
5���Z�݀
*�
�Ȱ��UĞ{P�'���縚����St=��D�rf1,���rWS�@�Ϲ�J��~�@ Ú嚡���ȉ�`�G�Ҕ?
�)���uCY��8�;9��
+��AW 
��Z�V�⟗�+c�?{�?��BI�@"�
.nD�Y~F�O��v׭<�|��r8I< �np+y&�oQ��@�:��@��{�ܱ�Wp`��U��%}\SP	�K�3* �$S=�4VP W��$,��Ӌ�;D���h�Cb�a5\�îT�AcG��-�8
Z,L' 1���
��,�J/�V�̀=Ddy at n
�
��ud�Gت��K�u�.��b�l�/fд?阿�$^���$�� S�w�
�v���V&��Tn��E���j/�T�+��#[�+���2\�To��]X��S��yXR�5��G�"�#Yi�jC�L��Ս��p 5z��#M���

XeO�`[�`�*��~l!M
�������GcD�z09to�,l��L]8�q
!\���pn+�o������Aց�Џ�?G_m/(�^
+ղr�����u��a��?���hÉ�&�袻L:T�Ч+*>�q8�~�M)��B�8�W�	��{
W��
r?������w�>��q:�h$�����3�

�7�q��
M��k
� 'J���uZc��u`^�j���[؇VG��� �B���
��s	��
^պ���Z��6���&azT�%Q�[�p/P,W^���;��Wi���C�G�X�B�򁥮`Q(N�a
+]�Z0�4��
>�9I��C��s0�S�ژ�hC���M৕k�#A<�
+� �(�~Q=�Aj��8�N!��/�zw�:A���:sU�ʺ�n��ψ���� R�̷@�*�8#Z6S�
�eKp�X���E h
j�
�2�--D�|A��`_-/v�`�T;#v����Ǭ9�Y�~�汧�ᖲ�ଐ�t��=�I�� ��D>K���(���̌	޿�4<+1Pr�a���J�Pq䇌�sEpSp��%��@�i5��g�'
}T�NȊ�����Ō!%UC5�`� U(���ze"Z
+���Кa���
`���@[i_�%yW��
��Gr`)精�S��5�oyEi��cQC����mEs^�<J/��[�
>��������3�����K��
��Ո��%(au�N �yMw�eF�s/��B(���ɟ�S��p7��,D�O��2�
N�P�(z�Q[(j�T#e
�&�0f�H�
����
i����&�Q+]�5qq5Co��Մ
+〢��y��-Oe���5��lj�o��1D���q��'t������⇗�`��/�l
��
�ہ�,��D�m�-
+�L�=���LZc%�{*�G7b�$J
|��
\
�Wȏг%JU�!-8.�^�0�`��a"�1Ӓ A���dD�`���K���fɸ�)i��'
�7aġ-��;(� "�[<Z\

<��@��Ĝ&�hL�����m�>�� �T*}�!:bP�}����6�����(#�K
A��h,&�`� >����o
�A���[c�e�@hƇ�2�*�Hj>E�6ְ
hAG8�ǥQ��a:����
�R<I �8L��/�a���*���
&�n#/��/�1�*i���?
��a�sʚ��=4�@ٍO�S)�U`뒵�A՚2�^��VL�q���Tt+
�@�^O�ƈ��<V����a���X�wo�Y–�G�JAu��p���>��
+Y\BkV��w#e��������!6�N�i/�HQ���T�Na��P9�]z��d�^R͢����d���	�8���[#�S�P؀�'k��y��(~�/_�$�#gu�r�ك9k���<�V	oq/4��w]���Z�j%%�Ń1� ��Y�e���#|D}���j���a�4�L��VJg���%U�|�rԖ���C��Ҝ��*]�3����Ub=Ԟu��
���^1K�
+p��9.��_\y��@�_iJw(.�9Y�=E���
+
+�E�
�;�d��x�E�z��(�t��\�N��ܴ��G�G,����TS�5f-|�y'���)��#y8%/��&����'r�(?�pKU8��B"����^��X�la|K�=���
4Hُ�r�J���J���u=��6��ϋ��գ�t:z�� R��!�
+o�į���*^�����(ǻ�����<��u�M!��ՌtU�P +SS�R2
Uj�-��X
�2�[mx�Τ#�?9b�d]�
+nX� ��Pn�����A
��8߻�"A��X��g
&+R*�y�[���f�5rM��Ô� ��:�� ���ȀZs���ç�W֊�
+�A���I2� p6Gb)X�&�CM��r �O�I���T�b�0
�@�胑������+D�-�|�8�cRF(���;����{Dx�O%��ŏO��:KE[K �� #��2
�R���nϱ�
��h�_�j����3�J ���%mW�R
+i�ݣ�
�G�K�
�5������|^I�~�
�HG��/������J� ��b�t�=�����j�+p8�KV�$�i
+ 8DY����K兓(�>/Jf�d�8L�(V/�A�ʃ�����3֟&>h
+" ���ȝtݪ�l��p�==

ݟ��ѿ�)d��
�*��
{
ʬXa��J1�g��~3M�~����8�E�X�R��{IGLa'k�����3P��4�ۈy�>X��-O��5��J`�"
+Z"Z� @�7p��|J̮��#c������1���rH��Ǡ"��zxD[��T��
�Q� 3����]�{Q�c��:
+t�"�HB�������]Y�/=�1�eڰ��e�8�>Az9��3���E�Z����#�
� �������[���U�.oԜ�s��Ͻ@z�g�>�s�NqϪ\6*�#*�ϕ�W��g��o
b�:^3hs�Pz;
uM���
�����[��F! �ΕBz�=�ټ���"������5�5uɬ�
�T�RW^�"u+��fŝ��Ǐ�ۈBif��؊N�� !	x�5 �x�����Ll&fx���zW7A.<"���d!�E]�X�
P�
�̈́�ĺ
+���AaB��~������$��R�]��N�;5��9r�f�!)u��(z�%�Gn

�

��mo?�	�[r Ԕ�ǣ�[���M7�'�jӍ��3(j�P��gC���c )2X=j��"ˎ�`E��gu;2�?/*=��]HP뒴2���vVX:�4���T��aOC�ۯ�H�嶢]��gwnJ�ɖ+ء�6�
+���h)��ՠ4a�Y�2�qf�6;������4��ш"�{�)A�P9�!�Һ3d
J|c^
��-%n�?G�DPN�����HD��m��,/���n���i�n��ԇ|ٴ#����=k�~h�y`��uO�X�TJX�,�)�p 0�Л��r�Yմ�"�V��F�$M�����Z�s�1���:Ҩ-ww�`z���������(sq!�Yn�
���b)L�j���ɐ����=f��}4���O�q�l��n����c��2ҿI�E�ۿ,�q��]� w�{E}��¬�n9ں��T�
�Ӆ}�^)"B�쐻%4�.)Gy>_���ݿ�aZ��,�
+�A!�0�L��}��t!6+�K��0_S�D�{� �]��#�}N8 5��z1�-6�|�![�2Օ�dcǎi=_�hd�];�5,��S::��
�}
+��o�I�O��<��P��p
ܜg
�E�R�5*�U<*�!��d.�����V^��!+DU�$糚_r����
�)�K^��i�A��i�c O*T+���NK�� ���;�(*�:F<\���K<፠��D&C5�feS7ֆQ�t�/|���b"<4osm����^�B�����p4���
���F����L�F�����aN�H>�7����/�����VA���xy
��%�yP�̈́�:�;���N�#��
v�IC
W�� .H� ����s/RH��@�
y� �����٠]��|`T�i��*�
x
�Ц� H�e��������!��s�������6y΢�R,��"ۏ_���8<\5t�dg�A	#�

�)�w�:�B	�� �~��Q����ܜ��ռ&ؾ�k�l'�����V/K�

�kq�ܸ+Z.^c�!��ȤĆ�\ǜ
�4��u?�/o��
�b�Xp�wT>�(|4�� ��c�ژ�H�Y�f��}���.D$�_�o�
+��z��hT/
)+�z+X���� T�r!B6ݍ4f7���BmyJ�#� �=g��Î;T� �
��=�ѽ��J
1�"w����X�pm��jj�����5��#�U(�
��mT��$�Z�����j�܉	�J�V���Z�S��e���8`��ZČho���۴9��y�=��0��R��NR��~��|j���ƃ�gw����^
+��ˇ"�,g��2ub���i���N��{�,�1����{�P�_`|`1�XS<�6�|�|�I;f�j���S=O�{T���w
�x��g/��,~
)��(��>��3����2
)�f4���
�zQ\9��o
�|���[_{���_����zJ
Y"1$6
<��B�Q�
�������+�U�B�N�vb�I�1�aD( �:O�=T��<=�]���Ǹg:�u����r���)�+�
LޒlvD�k�����ii(�C� j����q
�G�+9��B��f�NV�sD�{��4�����J*H.�+�zU�����k*�� �+W��	߼1\HW�31ۘ�`���~L���^2M$-5�@�*υt�ǁ�)��)�����д��
P�#-'�2���
���=4s���G��W=����j�h�)q�+�
�Q�ySQ�i��B�|��1dU
�/T��61�'㐈�N��^����E	P�`�S�r[V��(nWo�����"����\LG/x[=
+���.ͼY
%�)
(����#�"ϲ�����Y�DFx�
Z0�`7	$�!C�n���>J܏5ZT%:����+�VG�n� �+
y�d'�A����g���@v�S���`u�
�
.�3�F sw���/w�{
�p@�;�
N��_��;��3�e��O�T]�+Ʊ�'h�o6��V����և4?�`�Q

�l{���S�	G���������������l���{��fwoS���=���c^��6�+�m<#��$T)E�}Kr
+l��[/S��dT���5����{|
��z��{�l��l���A��F���
[9��@�3כ��Ը����q����y����R�y����)�u�����+E5�׷�
��a��S����� {=���f�:d
��2>`��Z�;�@�#��a�O�0��{���F��^\��^YFԊ���
6�#���{��h���s :�M�����
#b�J�!GE,���f��5{��w�:*|���@~Gz7���{�m;����&_G�OTU�X%�{�=��F�i��jqY#DY4k"�QCw�忍Т,��~�x5`@��I�h at j
�>�|��)����g��b�u� zrdĖ�V%�z�焭4s���[��~!
+���<��d�̰C��$5�i�u*}�~�3{����q`����6t�D2
{QVy���
+
+ܟ�R�x�D?��A���RH�PR�U�Y$�*9N�}�ե|n\\���EƳd���eq�����$���4rT���k
I�~?v�r�P��
1ʞ#������-�߄pL��������O�s�0��ƫ�E
*���vA�B��5�����f鱖�T��/A�Pi`ߛ���P����@."B�97TB�ߙ4eʮ6*�C���P
ťo��P!S��RH#V|n��� ���0��_]�*����E�>q+�SF��+�p�
+��x�Z-n���)_|>�'�XZ�ظ������zuz�.ZTYw_������Ϋ��"����8��z˳�PC�%#Np*A�1Q�6�`'��#�U�.u]w�

�.���ê:ږ&=����>N|��f��0�辆t{o�㐟�[�^��π?E���
!o!T��7�Cs ����Y�_d��o��A���=���=^aj�MA�+���T����!�VL̆)�k��!��[�hEt��^(@�<O
��f�3�
0w�
�Ɏh��=�L���3~����!��@���m��q��^��76SЉp�FP
 C4`����!6>+�o�nh �F 'AՅ�7,�8%
&Br�ܿǛ
cl��~�ClĒ��ι��љĩ�J��x�,��N8s��#��L�Y������w�O��u�W�Z V�+d����IF������hx�
��v������<
WV�L���D�G��FF0a�
��#��^��*L���0\4>J ٩?!�&����P1��_��j
�2��!� J��m�[�=��
>w����}
+�nF�Gd���e����o�?���O.����������
�L��o��ҡ)1
+��v�7
n�O�QU+Dž��
)�Ē���^2z at h�����ExID�H�<X��O�?�@6�����o������o��?������7��o�����?��?�������ǟ~����履��O������O?��?�I�����������?�S�����
+����=\����?�
�Sc�
EGD��"=�*؃�QH����Ԅq
����m�XU��� �ѣ�����~+�Q���:{8(K���,���m���z��C!�H��Ú��^��{�פi͞��>��ko�5��B���榝XV� ?a2��)%=ʈ
��
�=�s:8>j2�k at C�L�ŗ�����ù��L2�l2}E���Xg5o%ȹx��߷�d�q� ̺w8޸���H�UkpЩ�#?�@�ⶱW
��:5��&?R|����g�%�c��4�a��Np���R|�+�
}S��I%��#š뙜�:P�
+� ,
+�;N
+_��
��!V��$O��o
�=��!�;0Y�$�wM��_�
������z1F/\~`صs�qzL|
������Cp�~RR@�	`t�K�<z	�cKɮ@~\
�5
 w�a�<�
+���
0G�q6`;���%�,�N;������>7
$� M������� <
+��be����7�½�kL��b���9��U��ݎ
+��y�Q��|@i��_�j�bJ ���a��;�����k2
+����SC� �}�o�A�h�opuQ�e
+��E�
��@�&:�3dHH��rJ�ы�
F�]z	[��j
�= wT��V �嵤��'�������Q�A��K�	X���!j�7�GZ��hG_M�Դ�W�Ǚ��)t@�.?���/;`q���+
+��
���
���>a
��w�2k���/z�-�#�\���^�aR
r��O�����6y<țUE�g�A��O
b��p��aR�x;��#�	S�<F�p_
_
�ۘ�����\
��;��u1 u�
��'*�H	D��\
S�J�Ś#��A=hd�
5����V�w,2 �T�v��H�'f�J���ɯeZ+�P]��"�陶�A%�
�	у
۹�3�<�WF����^+3��~�Y���^����1V����۷����1�4�aTHz)Pwj��i�Zh�
+{|��ɱ��?��:�`{
�EX��*����gZ�ٱR���8M���6?��
������,E���N�F)�H'��W-W&�[�

�vPI��Uh
d6#&�
"&�~=�1rp�Ձ}�Kwm�R���ۯ>I��JJ2�5�5��]�^�%�F��A8��h$o�P�b�do�v:��bd��m{�*�u����BL�=��g�۪= ��#�3�q=*IzL����Y'���p8ҋ4���lݽVV���Ι2�'у*
=��e��.�%T�ƻ��t�2���o�R�p^A�QQB&},|ba���
\�r h���B��™yB؊|�	o���m;8B
m�x� �7�{���M�We
yK�{�$����FV��m!;�g�u��K��
첧M��d����cЛE��d(l ���B�ë�5�G������*��K���.{0��#{�
X2�՞�_!��}+sؘ-��ꗺ�p�"�""�=0�9����^��+��Q�\���
-u�`
+ [�ӫ% J(J
�:Q��9�K�8�N�p�Ȟ��q��
r�O9�x%�R��Ac晁���Q��<�-8����^�dL��!�[)�,�8l�0��WFi�"@r����f
lj���=0��w]�_�!ˣE90RZl'T�1I���'�:��_����8�vJb;�C+
�C���'D�
����Y�rf��B29�
?��g{�8GӚ^�'������p��.�DCJ���N���z��5�b�5İW�O���:ۖ��:d���#DO��+?-=�ǘe:2'�u�g����8�&3(5<:�5��<(k ����K�

+�%d2n
��'���J�4��8�6��H���\Ṩ4�ޏ�:�{�'�m�3�܋�)GP��-�&�u�5��1U�C����W��#B��=�7ao���I�����L���b���7h�����r���l�>?�W��g#�H��dS1z=�tB��s�âbB� #<
�GE�t��bdPܗ�!��N�� �Q����Nfڡ���B������=�"y�2�C�(CY��/D���AB�
<���-��
�a6�ĵ=�����8.��y\[�-�ͣRB`�0<ûX�/�6���z].x�Xk�3��zBI�2�< Un���"})�{���Y�
����hZy��*F�,Pn_
��ɞ��$�|�\��zA�뽃�\ȫB�=e�/z��
�N��w�Q	��u�JБeh�)R�-
0+��-�l
p+�n8�
�
{�7P�tZ‹F���#�Z

�FZ���ק�QC�E��8��b{Y�K0��0�G �
�
DtuX
�H3��(P�ȱ�� �o
���I�ȗӋ����H��27����'�b-K���K��E at MiX��)#���.����7����ز�Xz�^�WX��
�� =vt�ߑ���(g�+K�yz�Nx�F�ӈ�_/r���X~}D����%�{�Z�v�@o�c$g�
z�dg�?|�
E�����
yhLOy��5�� �%�rD��[�Հ��F�v
pm�dw[�x<�S������t��
���諏O$���QK��o]ɝ=M��^gzH��=���2���i��t}��s���
�Q��O�(
|�$-�{�ؖ��X�����5�9Ӹq�{lp��=>v������9q�+�4
�8��W���ʐvE���S;�)�,��_IxAL��:�򕥼%U
�8�P�MF��Wi}�딯"T3ʇހ�9'(�=XU�{��Aq�4��QB;+�S�eV�4鴔�ˊy��J	��`Nk��xb�e��{p:�q$h�Ր��?Γ�u;��v>g|{?#�
~���$p���k�5'�5(z
)+HgX�ֹ��]U<l &�ǴBy�����bo�E���I���%¤������L�CR@(�P	�.�[Ǩ�WcAB0>��<�W
���8I�G�cG_„�J ����	�l@�g�r�+�
��1��8� �C�5�!k��
)�?��"�w;��������'�`e��d��
�$��I؂�j��.��ґ����Vɓ��E�F����=}~
�_����pz���J�
+���
�9����{o$m,��
���vO��@hyO<f�>(]�SC�O�
R
�qo
�B�h��^[o�(3LߦTa�C�s���O��w�z(�
����������K_����`j���]ގ3���
_K)�
�`
���57aM�X�n�)h����j
V`������&!�޶
�j�`���T��
xNz h��%�3Y�Z��
�l;��o�Q�c��T���{�N�Qd]��M4Yǻ�	�.��^ `�;���󉙏N-J���t8�iH��l�V�w݀�
�<lW�_&.c��^�ExΆ�Rť�z
C��z_j�{'��T`F��_��+��IL����n�+�NZ$���?�{�\'��׷CPb�D�������qdp��1�vh�G�֫h��$��}$k<&���vR7Ra��ݑf.܏=\+���=���:�c�܉t힢3�ڄ�1�ҿ��=�~o�S�zS��{�'��0Aq'ߎ�Ⱥ�]
�~V�|�ҁ��Z��Mq}�w�K�f]u�z;N%�֙��D8�X?�w�>�g"2V�ߤC<芙�#i
1����\�_G7	Q䗔��L}�l��P}�FA6M!��"�H���*N�1��]�(��ЎO��o)���8²�{\3 [...]
+�E���G,b����~��<�sަ̌V�{)==�x���*>Z_��^�6զ"Q�����	�`�v���������;(M�y.w]n7rC���"b�8��/�
����T����ڠ�=��2����{}
7����+��[��q\
58��bkFz����M(0k� ��R?�����?���?4�a
��)E&]�d[�/z�@VUͦ�|�̷^9\[� �;0JD�C��`薈��)���W�k ��\P�~}�*G�[@2�e���ۀd���
N6
�j�iւ�g���W��\ԡtO'���'����IZ:'�V�6��Ri{Z�q�T�j
�=~Kj�4'�����"�N=zo���2bR��EV]]�
_��ۑ����po��Rs�a5��{!�C�����L6H�X��a�u)b"���
%G�'@B���� l@�{{�TkS߅\B����,�ߔg�|�֐e%/�ص!���
+n�  ��ݳ��	*�T pj֊�}��|�W�?�DJ1��(���[:%� ��{OX��p`"�G

�
+[�,������"F���6*�
VbуD=���;�H��G�
&^�4�p�y��֝^;Z`5.�D�X�8N
�D��.{8b���4�Fy���ۣ<�C#���B���=/@����^�9袦=��N2�M ����j�#���uX�Y-���9B��!��[��"v�Q;��q��&5�t�l�Y`�H]Sf4r���EB�ƪ��Jt|NDDVZ|t�qZM7e{8K��7!Y1əA�1|�o�11,u饄��(�;a+6F8��i�=�|�L�8O���p���{��J_Z�-��l�QS�y���v
����"� m�=�d�3u���ɘ`�F��σI*
�����WWM�J2�W�����j"���GF
 C�>�s�� 
+.K�t�=�����	$'��
hĈ2GA��PWĬ��	S��J�3Om��s�
+Ԉ'�����t?c[�(�$D�Y�Հ4��4�
+��uD3p�����������K��$*�;N��
+bA�{�f���3o�yT�������:S�
�G>ד��{�J�o�����o0
C�� DzOq���q��)�ч�xi��j��������S�%�Uze��=�Q�Ǯ�#��h�����>�
Ti4��&��	�H�B3o�
j��уm��S at cv�Lq�K �Q�Q�גN;0�C�N1z��O�[_NJ�
`2�4_���_�!
a%�[�G`���~��$�NW�[;�ݫi��]>���y���Q��N�
s<Q`H�q�j�wh(��D�#Ge�sC����o�G� �F�4��/����#���{
���6gd��
i}�L�E���]� P�T4����̨���
��ȯ�i����y?N��cU�~�@�@Ңj�������1:~�k��ԩbR�aF�Kc@Qð������ O3��L.~~��}3��I'�2H�"�C�A�CF�� �7�67:P�u�YD8 at _�u�c at 5�4O�����V���KR��F\m�DR����B
�}Z��L&T1����PB¥�`�y�h�(n��M�l�i���;��1-|��C�`	h \
+ś9<
�z8Z
�|�߷^+BV�>����zw�����^�2�jb;z$�}p�~������2��S�;�(@|�;=��;��v� �,�L@��c����
�'���<0%����t(�-���
3�f�D���{Q!�7�f
+���=�)*�ng��VP!A�cp��
-kpP�U �^��f��]%UK��NEq���[�
�g��S��ә�p��L�Z"�U��C(YjX�ڃva!hO�,�!vO��]5���
+T��u	ط=���>JE�:ǎ����	��\ei"��+��*�Q$�q�S��Io�ZU�l�3.�|`�O ��c�M%�A|G֙�����'j��֝О"�8N�����@ee��6��
;�8��/�r`p����V �''f�������`eROY���[�ׄceAȀ���(P��s.��5.�$ڞiِ�A�a��tJ�{��^�[e��6�=m�餋=�n��@��rp4���Ax"��
���Z|O3���5{���q�k�A�8�
8u�t��'�8�@�&j�
�
�t�wiPfywJa
*��h~D"���0;A�Bob�W��E�C�+dq���{�
N�#���(�Vc/ -�\R���*�E�� =2`K|���9�������q`.PE�c
+�ZQ���[��
�L"�o.9��[� <o�W�nC_	����S2i���b&
 �)Yԭ�!�+(J@�\��I�m
y�X��Q|% Gd�Ԡ��
�ir�0�u��&O��8�mo
�Ԝ�@>ى��s����
Z)�M���#`�eGSW��W��]��<*���~}K0� �T���P���'=�
SG�
�f�F�3�K܏	��
N�X��};D~�qЃ@�.�L�u�騀��u��������Z���:��@�e�=z�WQ�Kw{���3d�/�5+�8��)��Ə~��.�P�����_� UZ_��_6�P��B�!�=i"��3��Q�3�5�1z,�
�{Ľ
+eFHF{5��8��fQ���Q�U/�������s]\���wSƬ����s9p3v�u�u��g`{M
YQ{/�ˌ����_X$���Q���L�)�_�B0YI�
��c�=j
��i�U&V��hxw-&J�_��3�x�L��~q�uأ{���E�\B> \� ����0GT��z%2�!�͔6E��&q@&C�^�c�� ���0�X��dR�h��VDq�0
��	� 
�6�
+5�A�y���)��+<бÏ�%	h�r��gǁ����g	h4�����V���-��{f��S�F+}!���'RO��H5�J��E\��0;� �Ö�\��ϣ��"��� p��o3�i��y-
��+�=Xy��ۇ?l��N:	��W���'�Ƣ���E^Z)
H�4�bUOI�k�
+0Q��@�%�
�>~u���!�(, ����(��������u� ,otF�$��9 3�~�L�@a��9�<�$�)�C���YzH|B!v�x�(Plnr��G�ۇg
�
�
Dn��b�P�I��������ƃຯE>
s����+k��HX慱j��^Nl{����a�&��_#z@ u׊b#=
+�<�y΄�f�k�Ǚ�cM]��+���r�8��У:�46t��49}Zp��O!�sN���*{;4e��Z�A��8�c�
��n��c���`c��V��v
� ��5C|���	�u�����=�Ƚ����HG)# �#Xi���IdT��"��܈U��@l�EqmJ��@����H�}�(�Q�
� �*7
�q�o�/5�a�ރ�ɭE1�����u�
�oP
X%��A�<,
�s�H�~�����H�#
`��2���9!z���N�!Z�X���H1'����؝M�w�
w�
(	�%P�i�`9��:=�3��lag�p�+5r9�W��w���O 8W
+t�e,��ؑ'�
 d�=�}gX�p7����
��%A\|S�K�-��=qe%���a��l![V�"�:�#[Jg����~(Rh�b���,L�(�a�睆57��Hb���P����E���  [��MP�ۅm5
��d(r����Mň$�u
�!��
�!�SXT�t�D��o�i���8t_i�""w�K�A�x{�~�Ɖ�L�Cj��Y��e:
�oq���Z����:����*;�%���i,PdG�5$
`��v��P���=�'oQU��TR���m5����W�wT�oTN���
Y6tn�]������+����*~w5�
+��kM��	f���|8��grV��O��C�L,����P}��*
��05��{����	�D���C7Q;nj�pXKgfV0����'�=�0ȑ1�~�J�P�B�b�|�]�)��//�0p��>GĘր��F03ω,�>N��,��K��
+��Nd��D�������8=�*ѣ���c�q"��߯ ;,!��Ⴙ�����
'P'�K٣SG!��HPq����f�2������$���R��[��[D�����Ё!�
��(<��DDz���r_�Jǥo����@
�ɹ�d�Z�x�Xt
+�l3�
mD�M,634�Qb�6�;K�F�
$a�b~�N��'�T��'br]%�"��QK �b��/Go7
�-�݃�
��l�����
9�B���$c
�2,*D�

��{�ࣞ*�
����4�=t9_p&�Da���G�Fd�|��)�!<P
ρ�Ά�{4N��9��4홑B3ѵ�R�3�j�o�|�
u�y��H��=��6)�q&4 bj:���;����!;�Y ^ׂT�T�3��$f�X��)�ױ��%��/���2F~7pKQHǓnI�b�UhUh�����0��`O-9�D�,#pS�((�v�;5+���(�����O�{���Qc_�@�h�\z�z���ʛf�rgH�9oz�'�܎]�@<�p�%�5�
a�
4�ǧ��u�C�F��"��p�6���C�
���a�����,��Z"@��~����7|%�L�!3���;�%���?�^d��Uq��4�B=
z����
d=���
{����3��i���K�~NJ�8cE���/�HK�q�r
)��a�
� "�Q�ZP�Z�
�	�bM�����@���ਂ��Y[jF{`	 �s�~j*� �  e�W�
HW-&�ӄ��HO$�Mw�nK̽�F�%���^��������A����{a
*�"ӗ���
��
�Cz�j�(�a�Azh�H_�t��3�
��H;Ћ�ø�8ӹNb��M�_�#��xڶ�03���<�D��`�C�1N-��h倄~SޘM�ǡ��^�R���J��D~���L`Ƴ@���
��4�/r���*
��F5&;�U�Ru�<D�O9)��%(@R���@Y�]
TD�zUDR.%���h:��Iܞ
�ՙ��sϴ��0'H0
+`��v\^����&-�D>4
+���i�o"O�D	�}lV}m��	�=�`�᎐�!{O�zޚH��G��
�n0��~B������û���Jq��s�I9
8c
�y �53�~�� 7HUك��~;)>3^x`��
&D
gl��������yRu�? ����������玡.&�*�;l� FP3�i^w8`�H�)��,�Xt>6!��͖��EՐ�q�a�$��ȴ 
����!�0���\u� �L�-��7����4��0�>
+�k
P�a -�z�r!9 m���z�/BvK�)|����[�����W0x�q? �*����)j��e���|��[$���"]�.0Cd@�y�J"�@pQ�G���֚Ӊ�,D<+��{T�tfď�������
dœC+�2��,Xkp-����}� E*�F�\�`XPD��Ω�e�����t��P�$�q2"�BH)����a��"�ݹ,~鿥�%[V��ף���@u9Y�hp��1��l��
|*}F�~~S&M�@�.B�
��r4��2�������g�
�҃�?��!�s�N傗�Vo�h�؞��_W�D�Σ�qV���Wc��rS�ޞ��"���GYh��
+DZ�XB+�b�ㅽ�
+��SMw?�~Yb?�pxcⱀ��R�m8F�0��Kkr��;

,������Dx�jY6d@ ��û&#�\<���
�<�|2
�I�����#z Qڠ��=�R����
�ĸ^�}�)�9���"f|��h��*�%�W�u���&�"�80e�
�4mӇ ��F&�}�|Tө<�f��-"s{�K�e(�*��
�yE}�cA;'�

płH1;ش��
�
+��l�?D���ڽ��K�F�5#ēT�x�5�Ӄ|��
fzz
9�E
�
<2z���"��^d��o3��aVxĕfM/
^	����#$�
+��Qr���
"_O���!�M�^�ظb�^گk@�
��@砢0�f%
B%D
+^�IPD2m4��O�~?�@}�a] �J
��O�f5a"�����k�
�*a˧�?o��@�-�3�α�
��i53�]��	.%:�D�����*�� T�dA譇�Q;�]WtJǬ���T�P塪��
�+�a�(G�+J{˒G �;F�[�[/9p�$�*1��6��n�H��dTl#��i� T9 F>Ú�q 'y��NHN<O8��#�y�L�﮺bb
��JV>�¹Mx��a-���/c�d��~����� �&��R{
22�F�q͂PC�r�*%�!��)�*���Z�����A&f�^��Pf��d�7O
"�yb�O#��\�/͡p���a��։��y�M�k�GB���x�
�S
�W�����NʼY#5
cONJUV�\&��P���=&���ܟ��]�G�����|sJ���nCpxA
+6yY�t�m�D��L�'":2qq����[�G
!��!`�
9�
+`�l�2�L�4���
#�/hB�Hߝ�.q��r<�q
����������T�����0N8S�4ݘ��� ����>�#
+�O'����P�l"x��
+=��!���H����o�4�*9*s
�P���ǮRj��_��1@�]��'�)L�*�/,Q&�
+
��)[��9���6�C�T
�l���XԶ�рp p��
E�:���Bɰ���"�4{�����X}�F{�
+e)��f�9l���F`6V�G
+Ȍ8h@�{
JV��7�U&��1�딠�uXX��L��)�V�6��##!C89�1���IϡOO����bs�y��Y�G�S왨��$=a
yĿb�� �;
+��8zz(��Ǣu*T��B	C�8Q��]w�:�(y���0dG�%dwA)f'~�*�ŬOxC�8&��-���t�٣��I�9�VZ�0���p?�{SK�}�D�Q�C.ApK��'U ���*+岁/%���*q�HQ��a(�IrD%P",L*��V;��u	,N3�ޱu��!�PdN����&�
a�r�E�d�P( E"
 µd�f9I4^�2�	X:қ�i#���fzTȥz9dl�@�����D�Є��ho���� �AZ�?q�ߝ�� r:26�8�5k���@:R 
�5��L;�=(�2)��ۣJ	V�g=�~����.Cz at TU;3E��Ƴ����p�a*Ȉ*�K�Ul	OQ�e�眠��f�K
��T��j����<OЕ;�z�����I '`�`
�
�
k j�*��
�cU����{H��d���6��*���=�
�hE@~ϧ�
B��W����B(j�V�8����c[&���*�fbb^�w&�'�L�;g	�����ɒ �(e9�Ȳ����������C��yˇ�?�
=G��L��p"�� ^����2$gf��;F���"5i�l��1U���=���
� w�����'�� �{�͙���b��'(��k�
��
��1ei4?�V����.��,�y��
NSV��Ȉ��l��@Æ;�Z�P��(�2������k�Zs��
+$�=�ʜ3/��_�C#��`.�YG�G��,i��wx������1�
pGAۮ�\�@�#t�U�9+B����↉�WE���:�6��,_�mF[�(E�G���|�JDW��Q�K�EN��	��eّ�ND۞1�����-�v݃\�g�+�	FMU�9ѭM�i·s�z��,MSi_d�H��H1��&h��#�>*|�0�j5�'�i�6��5!��$aw'�'�:�IU,�J) e��aE/a>z	�	�!:&�����A��M_^����X������&M*ٓ
*8�:���>�U�q�$"+�*�B�o!T�$x�OH8��m=ʸzXxKء� S��~-lڬlu\�V݊��͗>�FY�#Z<�����cY
�]8vd�+�
���J���ۄ�N��������<������v�y�eʻ[��ܯ`�P�]6�Q�{(J�7�������xU�x(�7G��u�Ķ�TL�)zEܳz����'b�+�8d�E: �C�44h&��,�"sT�����EE_=V��'h�����5��
�Q�?u�=3<W�
& �.�^FZ@zFR�m)t�;j����'Q����%�4$�8�6B� ��$��6"���!_��/̂'�+�����
H�����QP��l�yh�t��g�
+�
q��k�i"��@�}�����^�o��,!M��}�?r,
+�0���R7�� ����0{��l�h�G���]h�
*\0�E�
��<읩��z

��h���\�#�S�/�Y�����m�7
n8S(�}�I°ߠ]�[S%��S��&!���EO �
7�J?�Q&\#~�=3=^K'
�������}]��H���m�WL��	ҰA�Jw����:r�b9���Y��?���r�;�^ﭹ—�Ly���
+/	��R~��ɍ�
%Z��
*t���:k�Qj�_;��̮.�D��k��m�V
ƈQGh��溒3?
]Y �e�
�
+����q�E
��N��XuN#�j2"YX�K������^
�s�<
��`bm]Q���j\���`
���Q	��0w�ʽ
��7-*
/��b���xo���S��߿~
ue�b1�Н��a��[^�K��(�G����?0�S��O7��*�����������4$�<�vZʼ%j�����O6+0
+
���۞����BQ`I�$��>���T�����xFUO~�_�&
���
�
FA�+�i��oͳJ����A"��@��1`O�q�v�kW�5�C<3��h�7q��8��%�95W�M
}}�oo����k?��H�n�D\�jW��
�pe��8�AW��� ^��u�01 m���\
, ��r��-	�W"��@
����/���+�	GL�	9"#3�j��pزK�i�3���׻*�j^����+�}�|�M�
+�L&]aC�-�2 ͢�K����‘�*3�)
�H��*X��W"����������_{9̖��XU ��:��>�^���㊣\ق��w��w@���֗��ۃ��7{];�� �H.�5�X�m:iT��pU�����F�Z����$�E�FoM��*6
S3읊�

+�S��+ 7
WsF\�-���9֟�<ָž��(��qe+��
+�(�G���]z
���8�u.r�wl$��c����F�vrc9:��/,�����p"P!�>����x�'T�Kc�h��E��K!�� �U�V��2��Q��4#	� o����@n�sv����V�H��Aݯd�ngJ�
�vB+�F��ʔP5zZ$��Iuŀ�H�r�$~s��:��i�	�]�>/S����{�f�&�e�0ԃ��V��
�|����;�OP��.
����k��~酙�	�8%��n)�y�z�ʘ���?�tV {"�V�)�I��o�qZ`�e��������i�
1٦S�y�MU���)+Z��
P=h0	
�7׽�
J���AgZ�j���+i�.� X�>�1�
x$�O��[@�N��,/�,�|
��Y�+Ӄ*E
��S����x�y���g�eL�;^�M�G$�#/�Fc�j�#dmQ� `lEЙ%�xm h2HED�
Q�䗳{��J�=yـ��
+6��PT�}���r�N	�<��%IOT��d,;=�
��T
�lQ[\�՜�r/Sh�
{�<2�3���{2)y�c`Y�k�\�¶ׇ���U.
��3��P޿$³��8���^���*��
K�?(� �d8P�i����)l�ڽ<�J+
Q;���ܙ���G �]�"���13�
!�N/�q�_�?:��
XщWJ�ɰX-9�w$q:��]��3�Q�W�ϛ�
+ A���삔�Y��v�$�J��پg�d	�2�u�略�`���x]l�I)-�������X
R<��<-+/�/yI6��'�eJic��ۭo�S����p�Tv��E�M��}ZC�I����`����c
=����_���D'4�]��n�KR���h���q8�⅐���"� @�p|P���jV:��L���_B�SB��&�� [�|{�/a�`�����
���
}?~��d+�s�>
YsMB��	����
)�pJ^�?Cj���=�<^umr�����̕�[=���}n60����|��jZ�����v|R�oo��8( ��
=���
�7Q
����*#��qZ�c���!B﯉�7��}���@�
����/��|o^ڟ�Y��o�q�"��si����
���|��d�?p�GX�
��T)жJ��aV��X#�FGU�bj�E�����
,d�h.Z3y	
`ڗ�I
�p̱��(ē�.����B`�	"�+J�3}�g��s���
��:���
ծ�4�u� 
'
������-�3
 �F(Ķ��Έ
�)�w�me�xE�Ѕ)TT�wI#^S�{�j
+���(
{R#�+#r�կR
&�t�p8?�\�@�+K�*�Jw4�ݡ
+�%I�}�̳�S�e�\g�S3��\�
+��)ۤ]p*{�#
+�R�������b�!�N��Icjww�[J�P�/)�$yED� !|��K�@���E��Sv�&�����b���N�
�WN����.��D�S��/� �E�`仈�\%ֱ/�x��/���1�a�
+��mPI��_%ϰ7�����&�Hd%��P�>"<�}z�
���p[���
�ȠCH� e�Q�
؏p`r�YxO�-��[��
 1��l
�H��@UtUgT��<������P�5��+��UNC����־OHU�"g9��"�Z8�!
��p�h
W�̟SWL���x��6�q�Tk�ڝ�`�'L�_��621���D�nGM�ǹ2C���qJd�ߌ��;��D�8�;ʛ�u��N��4�:
<v�(�0Պ�(��� `��x�]1�T��'�Qg�����A��jf�t��eDM�hS�uW���o���Qt�Y���/<�����R�
p�ӶaKc�����u�Qg���6qsňe��DР�qe{�}Z6�`>��'ZJp�P���
�Rچf-OZ6�!h�����Nu���E
+�_kI��%)q5vS"��!b�̣��
].�<S��'M��m�CtiU��,�|�z
��?g7�\��	��%c����t$�2�y5�@��H�us��OH���#��G9�krX�z{���gDڇ���9g�w;�v���-�X�FL.nE	tJ��P7�ǜ�<
Q��0*��ȁ(z%
��ر�R)����qF��&�]���/c�
}��z���*��]&9hC�
�{�
�Z�g�J����p�=i�dƒ�Q��XK���q�饿�W!���^��\��`�vU/w5\�8˜���P-���3��ș���w����
+x���ߘy��Ն�9��|�%	�&�M�裉׈��i,��^ʹ��M�a��gƌeEC�9�Q�+�BA|�w<#!��E�^�z�Mhӿ�Zm��&A"<��2w��c�v/*5w�\I���Ծ�}�\�c�o��xӗla!N��6~LI��x���qܝ���ƕN��@z%L���x�!lƜ)�,�jß��E at n���U~+Çcj"�V�w�-��^���H��oS�[cn
e�x�LBx%nEƳ���K��*EU�Ss:�9Q�
��7�b�O"���Ed��%�ihDn�;�(�@������N�d����@q�� iW
�G,
�[����q���x�|��������?K�鋂 �QlR*O(�#
+r0�=����>0����~դ�� �m���
L�Z?����Z
�������^fT6:͢G
3�5�Ȭ���D���M�w�q�j1Bs��J���C��)b>����JD{���OX�C��aJ��Zk�G(�.`\B���A���� '����׸�ՉO+��W�^9"��&���R�W�y��uo{=$a)�6#��-��_+�ؽA8��ȭ�I�c"]�ڕ�|{�
�
{��
���z�ӭF�GTq�vF\+F���#ù��
���Yx�1�*�
�-��5/�d�D�t�t�Bj^@-��d����D����pZT'�����^�Zϥwv5p�h<��
�t���~�g
Aڬ�^��iD%�����)k�f�ɯ2m6"4�ɒ�GT�rY��V
�E�F�Z���G��fd�VQ�g�@{��3�J^JehϏ
Vn�1Z�6ZJ�y���
WH�uE.��eV�E��V��*���_�
DKu����ԛ�=
+ !X�u�]�]ށz;
���I#����Y�^m��%�k�7�-��%���>> H{��P�g��j�x��^�2s�J�
g}*ɍ��+�p�j�{��2~BTsW���ϝV
)�
�I@��Oς�K�h�A��+/�=��T���
+
�V�`�����R�Δ;���/]�3ijӯp�v��������(�V
�p
mA�������K̑�v�3�x�':��hY���%�_��C�������-����uI��z
�o�r��<���.u��QIx��>q���r�����
�]PZwj�m���JQ8���4�0b����S]p���O����c�L�Q.�׬� 01�٩T���"��e��(��9���J��Ⱥ�@�~���p�m6K�š4�f�������'#�W7�_��(�Q�;8�D����A�f,H��_<r���džH���(Q>��zIΝ9��G�:y���=���{��+�쩿(t��i�
aڋ[�~0��
�M���K���%���K������T�����sԍj��mQ��^���z.B����
+
0”�D��+
�+�mC{@M%}����n4��W���*kG�Ւ(E�!��QP1"�3k>=��
�0c:�:2��E{
�:bPD��>�ZD���z��4C�xDŹ���=�ſg��E�=�_zK3�͌
͇�<���`�ǿ���|@�*��~���%jU��R�h0"[��
,��֎��%����3Gz��g���^�~�`�՟�s������K,((L`�������Y�;���x�3p�'�\kc�Γs0t��� �kP
��O�k|�,�~����Q�C0cA�d�S�e�/��R}��+:`j����>$���
Z��d
;%F�tXc�Т��O������;�2�mר�3���F5h�	2��
���	��� @n㇈63�:����_F�'��'"��,_�]yi2�/��r�34�4�)�G��lE���(��KI��Ҡ
+P����
����͸^.�S<�}Q^
�V�<Z0�
U�
+w��;�
��k��?�Nı8W�?�`>�E���
�"��D��X$"
����XY�r�#S�D����L���юJ��79_]3an1�\��A��ZP~4ɸc��J
�Oy��z����[2�g�:"KwA3�"!A�qH>Н�/�x��{.�>"� v�мr`�Qhpk�F"�� 
E����P�38�Z%�Y�1����5#�
6?�Jן�92��{x�Ϭ��d��� ��� 3�
��� ħr�5z絼6�
؁�6fEwus�o���,FTooZ.��#��Z�-��
?
�2Iv�=���f`
�O�O-�7��~�U�;�eE�٢w�$v�*
z�S%s5>�s�8��㓽׶6���k�%XK�y�W�~�x�q$�b/~֋KA�8|9}B ǽ�DY/�[��/����S�'��][��KM��-%o��!3�!o�L�~w�~O�c�/"x�8� w��c��?�Q�x�E	r�<����fl�AFo�{q�A�
��^�>�m"S�V�^:�o��������+K�J [...]
vat�U�(�
g�K��>"f��[�-{>����U��9��A��O7��!��Ox�Hу�vK��(Emx�/Qj�{>�
}Hg����
�
e4�ڷd�?�"la8�����Eg��v�����
�
+���@�
f��n�kQo�
��w���&�*�M��/owteC�
���r��?n�߂�M�V��m�3�<
�!U�Q����͝��*+v1�c~؟j�Q���������=pC��~�Rӈ[0T�59|�j OkQ��{�J�!�tfF���S���u?P�?�E�X-$W��Nm-o<�X�J����_̕Ŧ�w�sCA�x0G@>���I+�Qk�Q�r�T�:��
�pE��h�"V"�M%�4���m��0�	��s���eqh��ǩ�r�̿C'E
�~�
O�,�{��:�@εK����<`�@b��6D���J-�*E�
�'w}�$��,aR̲K�
+r�q�̿����/{�gQӯ5��<<v���s�I�{(Q�{�	'���H��9LT�!L[�D-T�@*a>J*���X�s�C4@�
+���:����M
?S��D��G� ���	�zT1����|d��U�
\t��]R�n�L��8i2AJ������+�YG#�]���o�I�

\��j��(��.���,!�Q�/Na��3�k�c�n��Q�����������Q�<��=���*�.��q�a�4u�EU���;�=_��#*9��u��
�%�gIȼ��4�� ����I�ʊS��*����ǫ�ܙ��gT
��r� +�ueL(Dr
��D �@���Y��6!H�D	�γ�)�/��3��W�y��
>������<tD(�dWu
+��j=!ic�|Ɔv�X�,n
f�k���^���`!

+�ڔv ���\���Ru*��F�D�"bȧ�t�2B]d�����M���ϕ&z�C�y�D-I�lב�ȶ\Ԯ��0�q�7��� ��n��U��3�e��]��5�c��Z?⍠`��=q�W���ND����E�T�:|�wd�q
���	Hԭ֜U �
��ڌ\5�Y����sz�+�'�/d�ן U�/{[i�� ��.�ʂAP��
+N��=
+�L�]��.�y�} d�G$�p���
r����_��V>.���ß�(@�#9��5�^�>�ӊڋ*�J�
�J��c�nBw\�Šͽկ}v��b��7�"aw��27�I�q�S���z'L�%B8 Qo�*�9Z��'k�� 3��K���OZ���(d=�OD��yf4�m��`�__�
���w�׆�|�{�9h�#��P�a.��Kr��yk�3�?�
�ƒ�_ 
T���������>�����?� ��\����1K�����W���Ͱۑ�z����PWF����%�J�T�g^� ��P�n�ʔ��$@����x��b��q)�Ut��#�H=v	�:�9~hxD�;D4�_�r���(T
��Ӟȡ#bd�"�#0�2�� �O�f�;2���_��L�2�ܩ�Mb�q��rmuvDp��P��H�ГDOI
G!�!�������$�p.fϟ�L���A�g�����ǘ�[�We(�����
+0�px
���T�a��
}.�$@���Ϣ�
�#�}E��(�I�i�%��0�"��C��3��0���,́�r�G at 6�
c+�>�T�����3�wĭ���4#��P{�}��E}hl3�7
Cy+���E�S�]fy�TRg-�^�G|�!���	���8{�Sk
+f��C�H8�����1J��މ5�{ߴ:�Q+�ە�_�4��!9n��i�Tާ9$B�3"�� b����e��2"#H�N��w>�D�('
+��9%6B��~�ڹ�K
wL[����U'Z,8Mz݌-��h��݋���z	:yަ�QZ���|�U�
�WD�,�)Ur&�����U��F�l��(��?
.磨����#��dx�S���xh*�(V�J��Aی���PW����<㍷��GI4��]C";��	-DA�tdq�"���
+�2��]G�
+��0̶��>VS��j��W8��((�eL���#��X8�;�;��8�t��������s�!��W4'߻�uD�O���:<��Rq�(#_

�q���)y�\Ëvj��ߚc�e���
�
�*�D$/@�9�6P��?�h�����؊ �WЕB3C�����jn����?_d�(̣xKxle[��
����Q�EJ�)�JWȿJs�ű�\A�^����ƽ���)��Ki�-�E�-j�� ;��-NF�I�ʲ�����"@��ψ�)pY�^%�o�9���|U��
�YA��Ҋ����<�罿�_��Q]�
E��(X[��	k̤v8�KCg�T���x"��ѭ���;�dx��:�����}
�Y��O�tYئYjU6=ݞ�"�f
+Ƽ]�J$���B�z�EY�6�C�
@�TO�z�9R��h�Z�
�Z�"
+G��ܻ�>*���h(J϶�
ߤ�s������zEEK
�^�IH�[�8�k�ԢXl�c�RZ
��
+�M������ʹ�y�	j�����c�%gRLbH?��-��
�{�fb�>yۥ��piGP_{)ԗ(�
�!��r�:����
�hb�ߵ���E���`9(mx�G!
|ȡ^"�J�
�P%t��
�q���������2�W
[�k@�UaD_Z�R�:�8۵�{>��UzƗ:`���(u.*{M���{w�
����� l`����k������t����������a��o�������?�铵����������_������������o����_�������/�������w�������������������������o��n��/����
�@5����n��k�ϝ��� �|U���D�u �=-f1�r�o;_�:-ƿE)�Aݹ#@��lp��h�� -fĬT�w]����QĨ�B2:�1�{j����5D}�Z��'�.�j��R�{ǀ�u��2
n/�1
#v��ض�,�T��xd�0�$O
?R���bاbhQ��	l�����5j�]�U�%��D��1h��sD§���Ɣ�dCQ>�/�C�Y��{>��Xv��ѽ�i[4^EC@߻k����n�	HD5���Ɏ>c�"�����#��F<s�֢�t�}P�������Ӑ
�f#<B��d��*u.�ˋ���,�8�A �OP�\whGWD�@L�
+�:��]%�qt
<���ϟ���+(���i���
+�e�#�aB��5R��
�M��:9�s�t�W}���G>����h���<@� ��x�q�(;�n���P�wx
�{"Qg"�y���9j��~P����7h1����9	���
�C�9�L�Ιu����f7���ܩ��σ�	��[h
K������?�T�`�?��Ɏ���>��*���B�M:M�^�U?�{Mky�DE���mΟ3,�Z�G�ڥF�
�B:K'�+�^.NMr��:S����,ݯ"7
��)��;4S2�e =P�f��T��i�P7�oF$َ�
�t��f�Of2�(�{h
q�ֽ~��R<���|o��(R�
��=�+g���3Z���`}�na@=�`rR�x�5c�������j�%nҫf�~�
�!&���{�O�GM��#v	����A����
p~�
+
}$Q?G#�R��%�ٳ�ˮ����N��h� h(��׹�r��
!��!-W�f�~�
0�Џ�ݥR�l�'��
�"����j�ԫ{�t�P.�(�
�S��
��i�Ҋ�rj�]�4R6�z�YfG�E�3�,!
+%��
�$��
�Y޵G��u��N11V�u���g��h��4�'���q�u��
�GL5�݆0>K���NҕÔG��?Wb4<HD���=�2
+C����=
�ϤN0^H��U�q
+�&ˡ�wKl&�C{�����Zx�yV�~ޥj��*4�^��
��+�\@��m;W-��"ՊPZo.E'�(n>��7	�k�6��@���'���k�<r|2��1d�3=AE{q{�r�P�(&c��O	
�����~�J3�q▀5.!}��{���D[ [��Zqh8K�X0���.�����wR�,~��5�{T1�Y���oե��5��NMO�����w�9&@�Sw�p�u����~wf�Fz���z�
w˒�&�g��W���sPP�"�yl�
+,%w�
>�#�:<f�u'�S��'
�>���J
G�D��!ʲG2AW�|��X<uC�*�P�o�_�*?��\M��"K﷝I��z���
�S�S��ٚΓ�;�q*�2�C��?U
�R�i9F�
w��x��}�)�(�;�1 ���M�&s�Jj�aT�zp݈R�4w�Q�����R�
q˗����k����V��6m&�,�j�:�
���WFj�f�77p�?�H�҂$엲~?
���������E��U_�J��4��d
a�ɂ~��
��'E=C�.�t`�qz=���lHBJd�j;s=���;
�>
�ćiuCom-Q�Z��U�<����	`Ή_Y�+#��|�兿�
��ݫV}"�)��s��.g��끅0cl�j�+}'0|������k ��
BG�� �U���js�X�v������kj���3�V�!p��LQg!؇���V�=n�������Q6�;�)e>���o�q*;���qp�g�e�aZ��}́
+�G H��V||6�&��!�[1Hh�O���3�`�6aL���u�&�q J�-���#u?�9�Vyg)�_{�a��Y�zCe�Ye�2BJ�{;y�#��\
/5�<��-D�� �s�.�g�1�TT+`�qa�[�T?���f
+wa�k�?�ܥQ*J4x������?DH0� :Л�}F=Q  ��@�Է
X��q܁��i;D�����}Dd���v����8ס
ǣ�Z7w��T��C��H^O�����!
+
c9Z(,�X@
+��%������3W��p�q�"����T��רN4T�<��� IJ��������"/t)����{3��z"p��n �BIp�w�6P
��;9u
���0�2���?qf���T�����
������j��|�����Se�T7G���8���V`x}��j^��|�
U{�!����멄4�#XeT��|>o�
݉��4"
ʐ�N�!��
_��{Ο;��;��g`���2h���"
���:
��χ`g�xp�C�n��J�y��h��$�����A��

HDd���\�D�$关<:��c�d�~� �g�&`�6��
���P`0�՘?@Ӭ�5����|�z�
�a`
+?�Ș"���Ef9ʑ���א� t���׮R
�'����;
�T%D�-��
0M�_�U�r|+k�BOŇ%��֎D�K�a�O#T�?���
�f"Z�/ߚ��p(��B�Q�
Y�kd��� ��n�n%v�7�{8ǦD���+곯�W�q��
��Zz�<N������}d�w؛�
�Ff��^)��%}1?�IQ����ԇ��L����t��K�}&�� -���Ѵ=��ld���
+���.�1
͎5s~�s�;$�E�?����z�B܇�~�}2����KjF���2b�3R��V�\_w�/?D�	'��Gj�À1�Ԉ�`y,�L��	��>�����y�-�!���p
@�(�7p +XK�g����Ȁ	#����
Hh};��O�!��^%m�i��ѐJ�xjW�W�xyH� �f9=�FB{��~R�7d5;�<�-���Z�ۚ}�(��Ƥ�������Q
+ i�
+��
��ј�
Q	J��2ʇ�I�����ã^˷���R�ѧ�rQɸ;n�`^�u���S��
%��j�|���
�b@1���:!iN��g���]vS�\���8L@��9c�sʱ��K��
��Qi�d�����(uS�X��h����ԃ�
�
�ߎ��md�)�w�SK6�S �^� ��P#c����g���N�$�����8�1P5-h�u��G�	)�i���ĩGt)gj�,�����ȊbML���<�dz�
>�X,�d�V=l@�k
�- 7���<�{�&�jI�cټ����G�R�Q���=�0Ж��0֥;KsR����9��#v{��?ϵ���.�YB�q�'��k�o:�<���Ə+s�A6�uO�G!�+r?�ϕo��<�I��Qݛ��ԝ���A7���x_ʹ��=���	Go��iP&���៩�N�Y�]�}��QGY"!a�l��z�����A
Q�A��v� #���!m�o�dw�N��x
G�h���J�f�c�T
ȯr:q�ǛZ�����7͇ [...]
+�9~8̮�
M���u��xQ�(���Ӟ���	es����n������#
�
T]+1(D�kjW�#T�>3m��
�
&�J4O���~�J��`���6./�F��3=A제kb
%$�r��%	�ٮ��� �2'Y������m!��ݬi��g�
d�kn��s�
k��)\�R��Fܟ��E|�LAN��

����M2
endstream
endobj
227 0 obj
<</Length 65536>>stream
+����w)or_*bT�Sr��:�ek/c1�
����tn������x'w�9�٦ش}��#�I���L����t#s&N��ә�/�B�m{1��)FJ��#���
�޹À��
k��,bRg>�3����-�E%'y�i�.E�}@�(��&ǡ��P�0�X%6�	���}�Xw:�|�l ��Ţ������K_1M�p��=s��h���{�R����0�S�f��;�QW��X��|
�F���T��4�5�/��j�I�YG����� #1K��`���z}?��\Q_�k+(٧����k̮ؑ�mugz�����WW�d���()iB0E�ez\�a�Ԏ���C� M��3
+wx${���@'Ϥ�QW�
��9�[-�*$	�/<��!���z�W�~P
��r̉��赳7�	s��ł~0�WF6��8��I��3���7O	�Ik
�D�ǘ��)����]�+3S�)gGa�8�b��B�?�,
+;Q�G�H�M�悴���2\�/x�
:��#���	�5�=�P
��T%:
9��-BKk�{�n13���
;V��H.�d��ɜ�s�	��uՇ�g�(���(I�I�˘�!$�l
�=��@��Ǟ�'뵼c
�:�F),�����>9�2N�o�
�_��N=.���X�w�6�
0OܿZ���-X�B��ZU�X��`��Cy��p�>�O�s:f-����S
��&�CлPV?�r��A�%V��C6W�����߯"���~�C�g��E�>E�E�A���9�߮��	�

Ȋt���S/�ܳK%��\����x�j�ͦ�S;A0J��
�1����Q�E���bQ��Nz���'�
��Ӿ��+w3+h�
�~]�� ޥucG��%�
>�=� ����p]5>Wc�L9��Zw7M.�Nc��?�˸��d���^�"Y��s��x��wfD̗�I�
;�R�r4��
+���r���+�-�>+}���P�u��
�[�=m�8Κ�
v�ӯ�(m�^�g����#о^�oAԇ&��h����o�?01�GM
U�D��kK��.\<��$J<6T�H�3���7�m�@/m�SR�J��g�c A-Q^

�ꂫ��t���l{�ٖ%�g�<�0SHf����z跖9)�oדc'�(��M�a��\���G��������>yj}bT���
4}G(3AD�\��_gr���Q�4�R$�����q� b:���.�!��gz"ü-j�
>�8��›�z}��#��mC$�j�Hgf�9[H�5���
�d���_��Y�*�.'����)�53ޙ���IY��T
�
��J�T�V!��م1|L���ب�#�.��#P�
_8�o�� o�e���P�������E�
q�����0
�ZIી��k
�Y:�|3B��Y�J�l�]� _���ȵ~}���ML��z��%*�ODМ%B
+ΠҌ>�ɜ�Awaʪ!�{k��V�v��څ�+,�q��)���)��y��j��ӹ�4=�r�Q�h�MΤ_´�q�9�,�,�9S[�փ��ߴ�f��{�y�U��S�RAj�<P���\U
6NK���f�؎�` ����?#Rk�&'�í����P�Qf�"�=.��Q$���y�9[:	�,�['��&oׇ0ڶ���<�#�By����\�/mL��%��5���t�[YՍ��Pbn��@�hi�D�
:i���-HA��v�#�?�/����V��x���(�P��P�������I��G����i�^\���3ֆOu�Z	�i�t��'�K�|]�\�� �5j�D�/$]WG�_{�����@ij�\�k��uk�&.��E)i
��{(�.����<�	4��#
5 ��[�t+,6Ԍ���z$�yg Zsg��cآhh�W���F��X�
+�B�����6��+&"1���΂?D�
�M�>>��Zq'A��/�#T&؎hb�Ì�����	V������p����
�5>Vx~?!TZN<i��s��}��}A�]�6H������>&�\���
��
p��~|/�+"<�j_l��O=�#��F{A�ߣ��Eı@W" +�c�yq*˲aCh�s}�7��,)M��S�f7ʵ�x������
����k?D|ߔӨ�
�أ\Z�Y�ٟc�+�+�}yƓ�I��'Z�K�T>]Ͻ���,`h�P�{@(t����" �	;W��9�^.�U��0	����<6�
+�
�֠���O�LU���/���:�[�
�W3�X��$��F1��=	i�
HHw,,) B���Q
+�X���3�Y�b
T�?E��
�:�l=
+]qHG{G���-
�A(�
A#pJw���t9 [���f��>�^�����r����e�<m�Yc�	�S��s�;�٣jaȅ5�����^<��O"z�w�{�y/
�B�4:Q��w!���*J
Q�%{�y�Gxq����ȯ��j�eNmcD�
�6(��w(��bZ�,��s���7:��^���!��XV���[1�[NG
r%[�x#�pfҨґu=�9���_?B ��2L�H�&P�*,�#�~x��Tw�,D-c�_'@ْ�!��PW�:hL�[�P$��r�q2���bL~����w
GI��0�Q�2�y��l���b
��J)M�d�H���G�{�(#e�/�� |�(�2T�ثt|Om}t�Т�/�pt��������>tRWj����0V�?�i1P
���@��L��p1�h��� ���B���rxں��ʊ8X��\u�W����\~�؋d:
�� ~ి%\�F�
f�~k����2�;�˶QK9�GC$���{���P�w��ͩ�ْx1�tOi�wqy�MY�%��԰i3Жf�}�H׹º�o�zktF㒥w�Ѳ��f�LG�ά��<�� gH
~@o�	b�i?>S�
��/'$��Yә�

S:
��Ń7Tq��Y��'84��)ɯwZ~C�|[��}��'3����׭	��
��ة1������)��
���>92������p<�P݉Y��Lz_��QC>�Ō��<݈V
b<}'9�x��W$���#�%aд��L�MD����`��=A��1���a�Ĝ��:�����&���΂2�!:����� 5��q��s���B�d��b����/7�A�v�L�}��MH�9�eޙ�Ѱm>��9�eRӬk0^�e�ƫ{C������^�@Pu�	d�;{� �q&ng"_Ʌ��.55��
�-*�3`k�����2�{�}��5g��+��AMC��8�?Xͯ��������=��m��^���g����֠�9
;.R��
|����y3y�������3����5&@�T��
07��h�_\�[~��p�ʙ���ݟ/�[3����U������r�8����a��@}�+O�?C���u��a&�7�
Z���C^
+
��G��ƒ��xW��P|��Y��8>�
k
�����!��A���!
�-��z�bg̛��n��hɼ�dE�ˋƼg$��
㼫
�0�2#�Rs'K�;�T�"�NE��gio������{�����*�w��{q�6(،�2����;�GuX��_E*�we/O�Z�y@���l?7Q���o�h����h��!=0=��
�G"LCQ��?��8` ��ׁ�
��L��@��4�i���Ug
+�q�|xp�_��ќ�~itvQ�F���#k��;��P@΍p�"B��<���M/J�
���$��*�RX�NƏ����3#��֩����PL4�9��l���bG�#~ૄ��xS�}�\%7_��4�.��������>Q����yV�w<
Y��g
+;�;"��3&?9��|
�n)V٩O��E�$"p��eˀ�56�+ �WoS˝e�.7�b at WExH�
õD���\�Ӱh܌��ZB��������ǟ���8��g�B�Y��_P������K*)pu��<��*�
�R4�p'��q@4%�&ap���]o�P
�\gJ�qkU`�K�A�C�0����\z��
����a{�6B�1L��hKL`
��C5�O��);�m&ɬ����Qp�6��s��
g�*����5
�5�Z�D4j"Q���}��i���NV��M��[�f�z$_��W���U�
u�-����[�
+/��0B���"
�ea�ʸ����u"J�!n3_G�M,\�̉���{j�{:[~���@��2[�
�}'���A
��{0W��v
K��=M{�P�pL.ќ��Y����s�x]��{��9�r7}���
+�g�Y͑��� ��׽3!����{]�˳S۝M�e+�X�
�D� w��(���]&���^h��PsX�sX�{&rop��`f`4GZ wqy;���檭�\� ��)0fg�Oխ�c����D�NE�|�4[$ ��Z�m�v}�+�<�9N'�I�{��F��|�_���Q[�M>Q*���4�?�A�qTumOcgv<r|~��4O
�yFY��n�R��Q
!�r�T__��*8$g
��H�t�w��?^�N���{�/�O��.�f�x��1S�1S���

�a��Lŭ��)��Q�@�f��cO�
�"���)4�MF<ܤ��7}㸒��
�  �
��T����2��;�9R�9��;Y�^,C#0�{/L��3^Z 3(.��"��v4��+M�ʊM�S9��W��#}�	:�P��菤�
��:b�}��G�q`H��I��@�Gr��w�)���A���c6}i�
h��$?�6v������̠
�՞6a�h0�d��0Q�#Ԛ6�˳�L
�Ȕ��R.����DU
���K^"-�Sh�
���"GyL%d��B�_��Y3�V�
�n�jWB^w�{�x>�����+�/�w�%��(i�ϳ�l��P^��a��1�)�V���z<.����Z}q���=�&��w^��ϩ��3�ы1I~��g4͚�S�!��E0�>1M���D��
��(�C�~"�bQ��TٚF2e,��">r\t�F�),�#@�5�:}�D�|p]�E�0���,E!�Vtj:pWtC����y��"e�+���x�~%XD��
�(?#
'�g[
�(��
�Ai�;� 5دø�ǻ���,:�:�(���$`�[��
:�
	��T�jt�
+�^�,���z�ю�:[/A�w�
�É"ˣ����W��JQz�Y��f�k��|NF�4H}Ƹ�DI�	
+�#��� ���I%p!#�y_�B���8�p�����w
FD�h�\ta����H�ue��H%�
n?���D/����1�d�7��y�
?�+&rj�H�] �Z�����y�$������F��
��N�i#�Iji��=�&C���0	�����m�H^�t�;I�i�㪲�r
�r�b��K��]�Q�H��Z����T
+��E��3
�nH/Vj�#�9�G�
l���W��M�i�O�|{��Z�����yc�DM�3[��ģ���"ڏ�Za{G�_��Y�
z�r��b��"�Ʊou�m	�s�GQ�
^e��(�L r�G��-*�YNr��mh��
`� 7�|]�t��
��D��8��IVMjo�Ko��y)�#9�l>
+,
+�RmC�'� f(fH�'C�T��g��q��mj%#س�C���m
+s���V����h�gJ��y9H��b��H�X
+�~q=
K��
)�#�^q&�=*�T
�Ζ�Tq9��{O+n�J�,ۏ~��N��f��$��z���i��pc@�7sg
�i3WG鉫�+f\��}��atMO������,�H��於�G��\w $�<�����_�
�
����<�0ѹ�=JV! I��wW�[��ή�7�Ҝ(�,�*+Ͼ	
Y�k(
^a�`�fًi?�D����`e��9�����~�]b�S�<������N����)�����o���r��-2^O�<
`׹J�����aF�Y[_X �J���0���<ս.���T���[�
)�G?>s���m�
��^Kq��˚̍@��s�
�c�����8hF�C6Ϭ>?gm-�VQ��W����y�R
3�
����
t���|��
���r�� 
q�uA9K	]r�r��C��!t.Qc�ŝ=J@ϖ�`=��\�D��6"�m4��DDfb/?s�_g:@��~g��o�:5y��	����ig��3�[7�����uQƗ|��\�I��w
E�D^�B!���@?;D� ;�5.
�ib��s���#
f�W�}k�3U'��ס�%��ˌ1~O�ޯ�t�
	�hډ��O\�Ғ<j��|4�b�8�7ᐸIBG�<`�<9���
��$�u� ��$���?��R��L��KeP��R%���w��܎���
+o�ʹn��K�2���:��h2�fb?k�tz�.MO�u���vE���zE���6����6~�H'����З�^:U��>�9)�
+zh^
�
n��:�
�)�Ia����\��
ze�����࣐�F�
��"6EL������B�v	+
+�������	�2#(���ʺ��(�o�G����9�V�ǝ2M�*�

+҅M�o"��?
���]�#��b�0P�ƧՀj⁓1aR�R�~��������}���c�^���2$������d4��%�<��zWヹ�� �����"]��5���ΟnS-�-N��� t2�W-�z���-�u��V
� U��s�NoN�
|��4Ϭi���s�yۿ�t#�����$�ᅬҫ8\Pl��'����3��Ns�

�d�a'+tv`GK�'x�+�OH����~�^-!�ee�U��
ƴՑ�*���iņg:�^~����v�ҧt���덠ٌ�}V�,�~wEО"�x~��܋�sK�n��=�Ҿ9ǎ�L$��>
�W'�1#
|*_�
��D4�i
Mg��\�
G�8�z�N��O��x�G���>��N�]�0������f=LWy��
u���m�[���p���@Q��
{���Q0Y!��nT�o�C���
��fTx���vO��),�	?�
���������
�#v�w��U \
+��DȽK���@�$���Lڤ��{g �m��23�2z�`���Fk�N�
+�3v}B���o�p��c}�SxKؠ�#;r�V-��,]QO�]�+��h�R�i��4r��v14�~���4|Nv�1#;.g��N
6�h3�x��3|!10��8��A��)�����P��2m�5�'���'8(�^�����<� �f�� �3�;^q+,�Ձ�ph{,���0��gS��{|꘻
u�������)�z/�0h���
l��3CI�y/ Qw��C��/����P���5Hl!�{\|K��*d��j�M�s���IG�X��2oa+�������(�eh�)^��
+r��}�.�����]��
?A�� ��w S��6$����12���ExU� 


�z��gf�kG�
+&e��NN�n�a�a7;WXϊ>���f��dxQ2D
K˂д\��9���>/K��)���#�#hȢ�r(T���m��O0y'�4�,Q#�W���ҿBT ݧ�嚖��}�
}�=S�S�A�㎨����菤7�޵��}ٗ����^*��Ͱ^�wE1Z$ؘ�,
����
O�@v�#f
S� ~�;�Y�W
g׫�IU�#xkX(��.��D�
+,
+ ���S���@̠�%:�us���>S��t'��0yQ�$aG�1z�*��>φ�aD���.��F&;2��ٮ�Y�n�a
�V���:���.b��s���4�H(W�^
�8�=y��a�����+$IF �!�J�w�hDg��Q^�G*����q�Q5����C��J���I�	��+��n�Kc��u�
y�4`g��+3�!�	u?Ǚn11��	�T��
z{�v��u��Ry�N��öB���U���Ʃ��!�Lש��������L����][�	Hf�eI���C��nq���*'�כI�h�q�3M
m�0��|�	��,�;�����D%1ZW��J،C��_{:��4��tQ�ow��{����q�
W�J�#��
Y[nR�����f���ն8
�^e�h���
W���:z��r���d�����1��I�;�գ�̪��Ǖ/�%DOZ��[��(���t)����Y�78�<4ZE"��+9��>y�{��7� [...]
z0�����H��i�ד�uq��O��B�z�!�=����y���#���-��&�Dss�~y�n}��¦�2e���\O��(�+DZ�d�j58���
�MJ6?�qF���C�
��+zBP~�����K�J�{	�W1[ܬ����7�㋭!�S��<�H߻��ȦGu�W*��2�g�ʥ7
]7��
�p��
U@�cz�ll
5vjܼf�����b����VLk��n0�b3�;�i���C��
���T��bB���Vf=Y��nF_�0�)$_������5��v���s-�A;�$�J�$��r�j����7[=`���oтagN��ߴ^��$�s�)��O����[4�,߫��R�<~@�)�Π����y
Mc�ij����
?�*l	�8R
+���IE,|w)��O�F>�����y�?���z	��)a�P�5V�z~	k<qȃ�2d��J��2o��>ޛ�ܣ���\g��~�Zx����[#\�l)
��ۇ?8xf�b�.,��Ln���ޒ�BmQĆI�{s���yc��Iy��զy���D#�=��S%���L[�&�#�������
���<���o�QV"B����+�O6�ؔ��h<�"��[��'�Z�F��gm�4�n��ug��u�&p�E�1"�}@ T����EE]j
�M�\��
��:�<�B�&���\<��`�R��B��7�R��� ]e簴���!�J�2H@�T�1?��;��~O6A�%�f;B!*F
P~�T����D�ig3Q����
+�͆
#�ۏL�X�"�|�D�r���_1s���
����7�^�;:,�U��?��%S -S2D����8
+�@�����`ER��!]?:���G�
^������|�a�#/^�#���7�t�����Q�%�SmȽh��?S�%r&���!��/u��l;e���������<� 3W+�୶XQ���V�������~�/3n��98��	��u
GD4z���Vt�y\�`����V��佃��8��şN	��LQ@&��=�}�/�}�I�ū
+f�}���u�J?�Ӥ�~ˈ�C�&+��#�k?(nz����=�깿��*|���zr�44�J��r[q�Q���B�/��CƍJ�#x7�[�5e�ǀ��\��l�h��:4��
�Q�	jMBq $�qZfa����C�_��o�I������=����]��~��]�L����^�w�Z6��\�h�x�%
����M�*>���
�P?H���-��j��� u�dL��4��#K����^W��
QՕ�\�KcGu[Ƀ��m�MwR��q�j��O�T��ߙf�]v
��12n,?��LN0��u����
+_ �:@�����l8��IC>�w��D�o��|�����3��0nU�f2�:��et��]3��Ͱ�e�lsݯ���bQ��_`4�@�+�H
+#��w
��[
+����+�80'�EzΙh�<����-�R��N��R
iMx�!�+��Yg���?�z�`��2����� �k��h��3YY	� k%b
���q�8����:>rDY
���~���
E�������W
�Jhc�{�n��� ��ʴ|�5mP0�-=�X�'���eX�^������<m.a�ޟf
-I9��@��F'֛=�U�JP�N> X �s� KA4����
l g4��2ܞ���
e̩�&;��� �
�	Z?�b��_iw�
���C-۷	iI�����\=���3$�#Z��S�3ܪ3=�_ݎA`Mn�2���D�3A
O���?�<^saY:�vqEL���x��@��Sb��f��O�����>'zGu���샰�s�8�E7��݈��i�ȵ��8�k$����u�<��.T�qȑ8� s�8M����y��`��+�(.��q��ኞ��
+�p
�i��.F���~D� _��٥
����T2�A�
-áo�-��2����^
����>�v���uK=�Vi���گ�}��(���YW�
q�a7�b�E�[��K�{> �����Ms�o�nG��^'M+x��{q����%Q��U(Q֋]�!����N���Q_��Qz��� �L_�G^�G����@N��tNnTM�}�H*����mP-���=��V�đB9�l�
+	�h'.端�)�$~��
��v���

+˔[xJ�!sRJ
��W1����ل��/�2Ҽ���
Z�m���XC3�Y��x�)Q�g�-����n_�rɁG�<������*I�yk^*"8x��Y�[�YD�O@<�;����l�
׼��
Ah�-G�/���4�mL��/��
A��(��F
�s%�PP+�d�<��l��#��h�L��C'fU/���%�EH_�#O}��*���h#�?As�sF�5���&O��6ә�B�
f�����#���

��;*�Zqt���e�8���E|K�R�jY#1��"OXs�=*�p��Ʃ)Ү��}����������� �v�����Ŵ��
niW1FVĝ�U�4�>���

	!�@�Bn��;
�ȅl�R~����0	<ؑ��_�u����V`<����/̟��/��5l1�A�D r/�=5
�G~����@C����V��%�@�(�Q�H�>�[5��������F����ׇ�x�-������������|pV�i���CD�u�|��A}uj���u��6p����~m��B6z�M�#�ս\HU��H��qh;�}}
�(U9�e�!�#t2,�W���`ӆ���f���\�4-�4
gd��uӷ�M���Q��D���-s�(�����%�7�����=�U��puq���
+�?��v"�ް���0����NH]��8ϗ��̪��
+!S��p�a]��QfkD����]o�9�e��������
��kO���X�USTM9�P(��hs(�L��~���"�ퟂqy':Q�ӣ�&�

?��2u�/�i�+f����������>�W͡.��q
+�y at G��]H������u�`
���Q0��1�.�^z��4��e
㚅y�)'�k3���C\\(���B���D�W�2���0m�un���*&�����@�\OTp�
�u�#���!���g��Qgz"�
F�M��_���$>��?���<�zZ/��L.l��b�!WM���fk$���iD�Q���}�]
�G�������O��Z���$-/�~����y���q}���`�J���������m�#���������IRuh��gF���sE�U�N{%�W�p]����
�
�@��ץ�
؂%
+H�J�O�+陱�D�Z}{�"�L�g��7����\u �(,�iW)??�����A���
5j����ұg'��Gig��*����-;:����K(������q��|؂k�g�aʳA
���B����k)����D�+��.Z(���� {�R3�}�13
%����Z���?h�@��:�:�d���m�����_�@����A��ͼ�
� �k�GT8���l�t>؏ ��es����to��6u��F
��w��׺
+����2̊ӯ���=J�7���z�^����Ñ��t0��Sخ􎸢s'�L�x��!B]��b��\U�5A>�G�72� Ͻ'@x�ժ�<��q�
�t��«�����`pK�U�wFYѸ��~%P�
��۲�.���6m���j<�l	�\Ӿ�
Ҝ�7sXPx��d��x��7�R��3�7w$ķDj�ݦ9ѹ^�Vtv�.!*c�"�Ԅwx�Ne�H�zd�U�#C�V��;Cj�M����L�:�:��d�b����t���Y�������e*����w��?�&�ә�=h������g��k���~�+���U��I/+ըUQ�,���@�2T)�/��T'8f�f��u���3D
%������o$rRc� �~��Y�k�G-�rβ�y�/�D���n�th��I!�&-
����F!�C���&

+�{�_��T��0W2ŠY�0��-��8�U�U�����>-��
�
�B�ơ��r��ӱkZ��W}j2�y#��x�5��L�;�)f
P�(Q��x=��ׯ��く�63�:�ќ_�����c�����F���n��Jg2�L������#�}���9�򭟢`K��$�Z�]��0"��"�?��_�P��y��f��$�?)(�8A��ƙG��Gh�'���L?�?
{��|��k�_�nFŪ�Ou�Z��;b�++�dD�Pd��|M�m=S������Z
+^ܠ���
��3V!�`O���T]j0� y�
+��9����>�2�'j�%
�	��($�(5#����q�+H���� Ջ(�#&�Y�l=�w�(�Qַ}�L�	�������@y�N��qF/#H�;�
�y~�ˎ�ˈ��
�
+���[�鈐����\f��+ gw�Z:h�(H�v�MG�B/�o�#7T͞��'
+�����j��$
?EXD����g��X}B�D��%�bk��6��6Oi�d'X�I8���t'j?D�ڍ��������8�v'D�s�ʸ��[W�|Gp(����T��{4t��/k�^.���$ny�^���w�=EM
�� ���g
?f
?����;�@�
+OlPS�0����(PdJr�'���|��͙bv�&�J�#��(�{/N���\b
��h�w�4z߀[-
�U�[h�gE��W�"N
tت�(E�^r�.%���j{!<M5>"ZШH
���Ϩ���<�7���W�D�Ţ��/A
�_�e"
r�����/y͙u�u~;
GF%#j8��KNwh̆�F�h����^9a��)F�� �)W[썗^�����r&���0��^�
o�]�Dvb��<CZ&�2��������h-mm�t��̠��?D�!:Z�~>�T�QmՆ?!��Z�~��9�˟Lx||��T�J�d���0�����x�)�����'Ѝcz�o]�eX��\����$���,�$��y���s�r�3���ﲵ�p�p��~i�0:f�YzL�����?�ߣ�P�2AG�o����8
[
�8��
C�Ǥ6&��E�fdĀ�9[!�[��'=��D��$��
��)�������?S:���1g�t��u�s���ƻ���He���=��#���������J[��'�yk�|�BF��;�`�bHN���x���*�+�~^��;�klx�]3�[��X�W�Q|���OE��u�ӷ�F���L��E�	��d
}�C��Xڒ�̿3���^�,�
+�17��lh͔���z.6/���S)��FJ��ш���X#�m��(���{�W�)�[��7�R��1�E��lV]��윊�_5߃5}�|����_yw
t񝀆�ⅳ���QS�P��8���:NH��
� �uC}�����bbW���>��b�e�H
�z\q+pE��D٭�N�uƦ���g,!O-4P}t��(��ӑ
�c�d3���v^=Zu}��Ή(	�Sw�3��E�U����m'=?E�/�����5�9b�`�JtՀF/��-�띱G��{d�>C�7U�w	%XȀ�I�"��ʧᓻ��mTC
8&3��w虊�&�R��v+�	�Ym*�M��>^���2IlWd��B���A�xoqp��*��)K�y�_�bo�DF�ǫ�
%��w@��9ߑ�qC����K�����v){oD�k���W�
3�Gq��

+X�|m|�>���`���0C�iΈ� ��
+��S˿/
+֎RXN�Y�*
݁dQ\��y�$���B
�`��x�;.M��*�Hv��C��8�j9Ӓ��X��L4�9E�BlhY!�6���„�:s��lխj_wGr̾ė�:�x,�{�
Zi��qm�^�<�2m��!3�3Z�)��s�5��8�V���&�v+���롩��Z��m�[���=*�G�M����o$�}���]do`O��)r�='�f����G�+�(L�I�)�Ө�vZM�V�F8�ڦ�TY�����k+��)�
�^���?�z3�s�N>���;]�N�x��Z!Ҩ0�_f7�
��T���u�*�)W�Pښ��.s�I�p�T���N�B��}���m�)m��􋷞����ۇ[G5q�7b�mvr�֪�x"N�
Wġ�Pd��;���u�9Y�_�eVE�.V��A��k0D
��~�
����~'y�9�3���嚺,��c�B�}
����}�핈�
%�ca=��-�F�1���j
��b�bjp����4��(�4������2��u�Q�fIQ�z�W�i(k�%�V�X��#���-}�� [...]
<�~�4������GX
ǫ�����k1�D\}
o?Dy�n����t�0�U��(zC*��;:l��������t�C���ϣy��y�T�uf����R
%jܐ`_/��Ed�Owԩ���Iv�2h)����c���7�ۇҚh�M]#Va[��Pnz����
L��u�)e|Fd�J�)J?
Q�����-E%Ϲ��4%�H�㾟�W�[ԇx6��Cz4|�[�a�)®rFQ at gP,�#����7Vn�ǁ���T�i
�NP!�S�ϡsC��<�����	�Z��.�d�B���QC���K��>K�k��
1��lL�Ӿ���)L�YQp��s���v
+���{{[8Z��M�o�N>�����31Nۛ7���/�����7�0���
�����|w��4٨�����Мg�1�R������$b��t�#����3"�T�9�����8�D�Rb��b~�E���M���(�T�*:)�<-ƍ�]'dOW������
�
RHG`�	�
+Tc�Y�Z�KBdi,�q
� ��+��c�*|��V	�A�Ss�+^T aB�?�K�*X�4�)2_��
��n����B�e��E�b���^>+u�{+>���*�(:f���鵊OŮ�P�J~�3%hO`7\�S묵
����OFz��g���]�k[r���y��Kb��ij�w����uU)3k9���rG<
+�����D ��*��=��O��m�����i/�{n
��`}��Fnc߹�$�����{/k�!>@[):�����/�f9��֮��⇣����/h�tgE�{ޟ�\��>���qz�i�����"h�PF�Mz�1
��
�����S�0􂈢�I������d�7�
���tr���y���

��m~F�±��?�~�3���!
�%v�}����&�r��U��
��"�ۜv����A�	B����҅ox��(�L
��"ԯ��Y{�]Y��<�
+�{XCك��Ϭ�}`d��&�G�@ɀ KdZ����<�����M�������Ȉ�|�x_[#3�
��*�[
%!s��c"jG�D�)�Y,Gz���˱*�aU0�\�Ѿ�_'�Sr`�襩��9�F�U��0?����^�ì�@���2.^ s�
+i�������%MUtMs��
C4k$����Q�@.��	�B��80u��;
RP-wiG{#0]�꾲 ���{~���� rt����y(u˗&!Vx��[�q �A{؏��8�=���<��&�k��� ��Sfq�Y��A���a��a
S�ВI����S�
9���G��-��
1?ʵ��V�i��_�'����̓%���/)������c|�տ�����_,������������_�����������������������������������������E�י������{0�
�?+n����R¿I�*VL��c
�_�~P]4��k��y��AF�LDX����|r8B�¨]�/���bHgbQÖ�A�Y(k:�
V�Q��ǘ������8О8��}9\&?�N#�
.`�n�I��Rm�se5�< j7Xʇ�匳�2p���¸���5)��T��BTC���rO���=3�
��h$���I�(,�;������l��N
�1;rᣖ
�D+He�U��X�/��J9�����(bD� J;�������,o�
5�N|j���L�I"�޴09��K@��rq0��q��A��B="�3&���n�jK�\��u��d
"/��_��%��N|ث�	��lC��I�}U���>k��Ϗ%� >��;�
lQ�eǖ\��y�
F�����t���@`����Xo귍��5�[jT�m�
����j�ݯ�f�
�jw��OգLꛥ
�'tT��6vP���O�Ȧ
`}���ZOU���w�
���x�q�$�X�C,Bc�=��� Jw�.��{��<��ܲ�9F��LMH? tc��W���_�W��T����(L��XVlU�R+O5}
)��+�;]�x)��~:z��
h���ʲsl��I�������}Ef���ά×^��gΠб
�~&&�q�M{&���-�
c�}���� C��ԇ��X����"`!,;�	�B�(h��#o(��~Pc�� 6�)�=��H4���u(C����	\+�oB��)n/A��悰
c-€>��
�
��!���i�R7�cIX]�>/�73	f�
.?���~c�B�N�1:q9�B!=��Rh���;	�x�98ī�3�r��;�J at I4�
w
+́.!ooo����^P�Cx{
ab�؛�z{F<�\�
U��(
��ZGJ%C�\	�����)߿�#���*r�ޤ9A��`cDP�&��'"�6P��:�q%x�<�
�<y=��f�2�N��P�87%�����������K��Ff��U�8o���c����V
�5���ڠ
�
�=�S�ڝ�-C=�#_��g��x��\f�a�ס�O����������p�bUg�QTq|]�
1���d_x"�mCDA���J
���Vh�@;� _�:�m0#΅,a�x�z���8݄��~”Ղ�ھ�d���O�?�7�*�ݱ����Ԗ�4 at P��������B��~�q�
���[��_����gY
��̅ �0x����Y|����
VWsd��D�^�f�<��������
f�ݫ�r���JtK��:͟�ܱm��C#�8�#��f��آp��ŝ�d�G@wZz��*Rݓoz��+���� �-�
�ngF
����i���Y�


�4�ZB|ȍ;wQb�߿�@<����i���~�
p�Fx�v�~Mهd��~����
�歱��]�^�)$���XW*5$|q:0�=�q�S���V��3��xj���p._O���q4���8@a���9�=X*�:�)

k���S���6�R���b�s���ڪ�Y��
 @�q ���^�
+��
��(:>��@V+3$-���,ꘇ����m�����|(D��J�+����Xm�~��3��	
%��*
ꫡH~e�h˳UŵdE��
+�,�[�CP�|�v|�x�s�yڄ����u@�*�5&O�:��Li���ZxsRĉ�}j:nM]�?
�U
?���v���ƻHh�����;����B�=(���P��/�;2��H at n��~=d�9��*F:
 �1�V�mD���{0���P�|���wy��.

~���e�b
Ur�;DI}�0��H�^��$��QGW�Rf�UUOzL��1�o�Z畊��;,F��m�;�=U��@�O ��K'�
Ւ¾8�
�:O��;⋂�bU�%�
+��F���`[��T���l=�/��4�1Ӥ6i�E��F���
�1f
��gM���y��
�!�a ��\�
i�_\ �X�
�/�
+�M_���o�r���#�XC-w��|���j}3aM�XH�n�Jl�z��I�S�~(�h��|%����������&c�4���G,�W�Z~	�f�(2�LF�3�� /���*hШ-n\g�����[�2"�%B~�����Β��m^3I��m�՟�
+�I���"�s\	+
� F7(���o9
ews
d�w���J�I,y��
��t��`?���b�t
��z�1yA��j�1��.ڽ�
+��j��^GO���%�F���~�у�N�3�kR���K��]�����7�8� +X/Ӄ����tf��Q��:JEu9��ĺE�柳��i�4��[�e��?Ξ�{���K9)�
�R)��
��դ���D���5N�]0R�i��j�����z����1�bqqq:G�`3A���b~���6_?į���d39��`��3HU�UE5=+��*�����4��h0�Zv��~�I���"L*4��
����ܚ�����ñU�0�K*��-8[\4�ܼ4.��A\l���&����d�{D�
��T�q9��(~��9U�
v���ئ�2?D|�y����(%O�'u*E��R�E�!��)�R]b
Y:�&6Zt���Fh������~���'P1
��Z���bi���[ -}��0���{�x	�'��ȶ�0�g
�|��W
+#i*$EHa1��{�
m�m�
mp�>�f)
���x��=ʜ����dN�nD�7�h�$DT!�����F$%�3���=�E�Av�KÔADKG���>("P��B{�b��F��h�vOS��\lB�7z��v*Q�B�-�
{�iT
���RUM��%&��b�S)�x{�����=M����ƨ�����v<
0�7۶� ��U@��R�+B[��Ha��b���-�(c��bڍ���_��G���|?
�j�
f��KX�΁�!l%�f��qs
�#>��3$� q~��(�/�=�������N�����x�3e�����������|�tWpb�0���M��gv>EFU���=*
������q�
{�颢 zdK�Dd���="�SFנ2����yHF��\
�����ȄG��+�aH7���p�>��p�
�0�p]
��S��L��B��yoW-~��霃� ����1��_T�cL�K�f������!=nѪ!��·���3H#A���(�Ws�����$s��
+
�
��"_� 2�㦆2XS��"�h<5�H�>�㝡����ѩ�
��_GD�P#y�
����o
�
HH����Y�q�:�2�0�t%0����t�_:0��g�
�������oj:��eD(����r+!��d�U
�����Du��yjL�Ԟ��Yx����Ȃ`lY�G�i���Ka��
�a��~���*?8.�q\1	3-�yp�Jq�,l}>D 	�ΰ�;��J�Q9
亸�؄�B�i����,
H
ͭ���k��
|2�`��Z�G5��rC�-�V�s��ϳ���G�pOe;!�,�Q��+�ɏC�b	�SZ:H���h^�ը
��
x�{����I�G���s��R˶U�v����N�a���"��'.ۧ�O��[�2�(	\�2<�@�>7�s����%���X�7۱��V����-�
��(s�m�����?2^X��i�}Bw���L4$$In�X����c�l:�㋀�
(��h���= �E�,�F��/+��:`+S+��
�P����9Q-��t57@��@F���g 5�S'�o�w�ME(��`+_���Y {
h� ��l
+xOWC��-z�>>�����VQ�� 
8�$R�R(����
!� ��ߝ�B��"R��W���{�ǻ��s�W�Kv:{�����px,�
���^B[�����6/�
�X�2�b�J�߇�=�pq`(\�
O}ו$
�����`����S�9D����'��J�e�t�\غ: 
Z
x$���.���` ӷ�s$�=�V}=�/`���1
��E����UA�	
	7ʐ	����ˏ+��R��upRx��0!|�%�Wlψj:K4Z2�h��~�NoE�(�ҨC��������&v	0�eB�  JNL��P{	��ʈЅH��fܔ��=�eo���
+�p�b[�v����CI�S���²���E�/N�
6��gG ���R�is/������5���E �'�AG�G)���=I*��{ހ�3�
����+<�s��|��2��Q�)��SБ� �Ĥ��������
����,.���h�Ǫ vթ�
+��٢��^u2�w�p|=�B�И:[�l����!�Ǡ�Hy<q��Z�/dY�	ؿ�Hه◦�r߅�UQ��'0���|��"9��#O��t�V ��_
 }�8����)
+��'�#*�V9~Q�9�N����ڀ�ņ� }3��*�p��#�_�߅� TS��y��T�&y��$���q�ߕ�~���QX�����8Y�n�}D����ƙ}0�Ԡ������m!b�t����<�3����BX�I�����0N�D��(Zp˫؂}�%�cZ<�l��Q�&F�q�Ь��9kf����o��?��
(�^42؉��aB;���!=���S�xct��;�uĬq�~�4D� �(�ڸ
��A�)�\-b��-�~� �2�PF�t=��ے��/��(�\��h@�
�6��f8B�ڔ�vԐl�gg���Yb l
s��
������<0K�-~��9��BZ� �"
��g����Q��C�
w��s�3n�92��률N	�1�J�~{ Lv)pe�?
Ha�.�' �'�t�QC:$h
`M�+�'�>@(������\���bX�\YH��^�J|P��
��c��D�K�r;�h"y���u�{~�#��'��R���?�PO+�QM�(��᭳�Z|��?����K�p�lm��Ê�ߏ+��J{�	��g�͜�x������VvG���JlJ!��Q'b�/i47����E:������.�WI75���0蘺z�"�
+�Ԧr��[(_5�L��S�T
=p|O!ɶ�4Y�9���~�'�*��JP�zp�Tʫ
�3��{.~
����ϟr�ف��
I}0����~��L~�I���[�k�h�@�����[��O�M
+�l�u������Z<��fK5=�h���H�
2�B���Q��
+ Q�/1�s4�8�\�
�A��gMS�<m'%}��|nx����vŤK���L+X�i2Q��9��3����L��g��� ~��v�����aY��'�F`|S����$�{� ��ca䷻n|�R0DgB�����JfFϺ¥+�K�~��
��~�%�i�\��V� M�
E�* 8����\�i��y`яn��Czޡ0?�Z`,�k�Zp���E<�+Li�h���>C0`�l �d��������:��
B
ʹ������#�eg��Lܯ� �!������
���<'o������B�Ї��	�G���5�d8�n��6��=���.?B�{����$���I~�q
Myf�O���t��xks�>ˌ�#�!eU�r#׋B_X��_
@|�^�]��_p�M�j���,z.	
��g�ߨ Ɍ�vېJ7bk�
�9�̱����d����v�o�R{��)�._��_�.�*(�:���@
��VF'�
�)IJt5[_k4�M�e������ꂽ��i��Ϧ��4>��� �мHb��k�?��.Ŀ����GT�GaG,Z��l��LG�Q��w(�D�9l��C���P �Y�������JQt��|t��?��N��{P!��
+��
%��IA
�f�)
�&x�
�
��)��
���-����������A��S%��+�ua,C�
�?��{����Hk�
 S\�Dڈ�־ܘ�QO�H-���<:�c�gC������#զ�I���l߂Z(��b�Ry�),
�m�`�Z�
¦���Vis

d< k�[��G�1Q}Z6�hx���+�E�V՟�o]��D�w�a�e�Kra}t��
	��tO�6�x�?�(a
r�Q�	7)�OԷ�)���8�זQ����UQreo)~�#����d1����h��
�^�3���,vd����t��B�a�&;�.؂��f:X8�ܺ��3O��k�a���d[�'c1�m?�(�a�A2��*�s���h�W��AT-G
0MhfS�	�TT
�1�3
i�
�CQ!����}P�8�v�He^�ۥ��
�[�'�v
>��b(}4aAH���I.�YΪ;�����'8�X:$ #�1.ޮ	6
s����B�=� F;��c�V)2�wm��
}?y�e����kTA��P�a�!(c~,�z�%��j
6�c���U����P
QV�M��
+XMX�װ\���VMq �?��7�1
+i
���a�#%�Ϫ�tM�
"���8�O�WtW	k3��\�&1B*qtR9O��
%�<k>�->�'e� #=�6�W���8b%2�9�m��l\d����
g:|4�|a�6B~ch_��p���V��xZD��ըz*5�7ib5�.��Z�����LI}PB
�a
E�_�ͣ �K�@_b
�ҵ@�;��@�����L���W�Z+�8���������RC
p!����9�L#(_�?�0��
�@O���=�U_���,�������j\�]�P���
+��$�a^�d�#t��++`|�����b6}1}SI	D��
+K<�"��J����O�
T���`��,>eKG0ў�� �p�
�1`CȢ�-����
�v�?�KV���A�<M����j>b����,T�w*
+�+ы�Jr�+�li`�;�1
+f	�E��l?`¡�t

�:�AV3
F��jjy�N(ؑ�N���{�P�I��3�>��!�uP��qJ<��3�����ҺOi+�t){ۋ��d	/afV��I`�j�M��+
�8#0�""4���|�U�&�M����o=®��e�v���uؐ�퇱�s+��f���}��.�K::
����l�r���C5�xW�uI*�?4�xi:NRN
E�ub��*"	�䣤��� �0)��9R�ϱZV�Ւ�6Ղ��O�!�:�d�HҌ$G5g8� �P����߄�e�Hh������ԨD�B���b��Ǔ���}���0=�$�g�
x�.��
l�z��l_'�[(k�4����y�̑�<�
B��L�
�pe�I����%�A�x����� � +��D<Il:@�������b��
+tK�
+
�A���u�g
}��a9�s6>�	Z]���]�0�k�
y���FGZʔ���Q
VH`�>��ס�
p�f���*
+���O��m�1��q�7
1�ة�h�CQ����1\  5$�RF��3kY�'}�
(g��V��w�Ld�)8�;�n�Q,�|%
��>
x������S5��e����=�A-��`.h�v�|�
ռsA�-6�B�,��[�0���hV^Hυhޑ��#���X�K��:���k�
D�!�L�RR���b� ���Ҫ-/0�����ߓ����� �^c��#���,3�JɊ��[�x�p�)��Y�l����Yt6����5�Kγ��Am����O)pb�,�n�T�P��/���(9��]�T�c���o�4��J:��z��l�
����$�F(�Y5L!1y�=ҿ���H��o�'5�
��u(%�~�.��
;i�q@�=�U�nُ��(�C�lLhe�;��9�/0�'0�ts�Q.m V�
˄�9	��	ehmy���a��ˁP�PH��㹕EdFA���^�Q��3 d�/y�3�	H�3XY�=i�%�X�y�&���2b��t��>q2sZ@���
+]S�
v
�*�k���}P�ja��ԈS�|nw,Cz�t�i}:�9 Na� =�J�6�x
��@�-
�@F��~%��������8`���,�|Ch\F(@�5 }~*T��=��i��s��vx�O��ۼ*�(ܟ�*4֫�S?���g���7L���
���#LգFu{]H�������"��E��DP
+ ���Dc�H��ۇ�ʪ�q+h���0b^��R

<��D�
2N�Hc%�+�~\����F
A��j������쟎��#ūjQ��t"�N7Z��R�j����᠟��M�8mNa")�

�mƬ�
����Ύ�B��}�sz#%]�e
�Nq�t�Os�Q�گ9���E��E"a�+$�PPP8L�rEz���ԣESNd-|_��D��5��EۥS��)�d ����|!G{�^��$�� d
me�Ѷ,Vk�E,��k�
KKpTOl��*��ak!�Hݤa��6~�>.�������4	��|N�	���[�ġw�����B
O�Q� 5yN�f"e��=�ۑ,S�X�C�Xg��"Zu�>��
��#cpu����ɄY�'G��z/[2fzu<�{
���A�����MO2�(E�y�,
T��^O���&�c��
 �C�×d)���+�����
5�9��$ܭC�w�)����� ��MoB=P
d�%��6\�t�#� Sqj�]IAh��o�e�4��2���"���6�S1BPB^�M!�k
[�_,��fv�ۿ䯲/{�fH��
�ة(�����f!�x��p����^�
vI+��qƇD�z
re'f���~r�H����=�*~��N��@��z�}(�a���!E�����-���x���Nc��[a�
�	p3H�� 	�7l��6��TX�d��8 /9�#b��YҕȔC߬��
}OY��Ɏ��=�õ��D��
+)�)�	�
���"<��C��K�ô+G�
V�b�����C!�];<C����
��IE����_�@��4
����
��8X\
��'�좃k+���̞<�}@�Um��q����Y�%U8
���
��6�
+��
 6���9�pV�L�
d�f���hRCE%�="HA�&x
v
�Q�?�7�l����Hj�B<��������MTf`��ov�e����U�a�LW���̐YM��aKN� \�u������
9�(oǰ��-u䠠��&�j�m�
���V,ҙX��"������>x3qo�^a@ �͒�t_hV�(TXs�@����%N^�U��
+�3�"�<��I���Rn/�;�Yl-r ���Ue���
+�}/_����bMP�%��N���k�x�*�r�*��bC0
��ro'^{�
l�y)��M�[F�m�rj}��
�b
Q`����!#�����قq�����6^�a(*���}%k��鰊��
r-u��c�"�uV5
Z�bZ]C�
�#gҜ��"
������,�`�7�9m��!�� պ:��
+���xvA�/1��Ҟ�Ĵj
��ҝ)G!%��,�Ϫ
��	�{;������!�Q�>��]��ǃ�)"��5w�
+B�%ѽ�
j� ���O�
�:�,����C�P`kKHۿ�����-������	CeLlj�lթ�˂]
+���d�b����Kd��t�F�$4�����$��|��c�*��%(��ķ6H/g}��h�
vA�.��� P��D�q\5�6 3��͝�ȇ8�:�����7�i5"\��SaQ�
��5 �B��l����dʪ��
���:
���?�ӆ
����u�Z�
V@�AK�V(�����K)l
WD]�v��h�]���1R���9�+���*u��RXy�i>򚃙8]�౒��P�i���2��6�w���e>�����T[v:�j�x�[�H����x�+ݿ�P����zXA
=G~0}�y�i�d*�O1�Q���y�8p����^��P�?�:3�"t��ʡ��8�/�DQ�_�A�fsle�d��8�h�Q[p����O�H���7�
���܈-wc�:��g�:��zK8����yE�g�@��u��#�x�4���7�,�
�(v��	�O G�zj���
0�w�C���(�}���%m)pۡ|���E���H%
�`�{�.p�@>E�km�k���T�h������Q�1��UC����J�qp[K�ͤ�~����
nj�6�����
M�L"F�#+��B���\AhP�$��0+I� qHM�:�Ѡ��È���0 �S� wSQ�� B%�c^ o��A
����ԋ�G��}erx%d�z���,QG�r�f��
^�]{
���>V3qY��6��c�$R�L2��ރ�Xs�Ϋ���"U�>�T�fl0l�*���h�<�4U�t)�����k���>�*E%U;Qc{xU�A�r�w�$;��
�mE�V�w`�ӷ�*�SC�9g*��=�
+�ϑ���l�YT
+��<�µ"�M)�%F�qR.P1Q��%��J�5�c3��1C�`O�
�:��ݪ���s �`ؙ��5���1�
Z�'�~��L��ΐz�\
3���(rF�'��@�v�9"��L�s�� n
L@
+��(@a�w/d�y6�-�,����Q^鴠Yd\��Ѣ��Z��
�Y�2�F\�kd�9�홋;DGf�P�	���X�t�i_)6�p8熫�
��uw����*
�c�g�8:�o�����=5�uI��
�
+
r"B��FD�G���;
�[��/��
+1��I��H5��ù��u�����
Pe�qU�w	�b��
�ƲO��BD�CD�k1�����9�_�g	;_��I?�0H�6x�2��a���s/c�꾤�W
z�b���� X

J�JLOt���f�
q�4�4�/ӈĆ�t����x%5c��?�8V�A�W�=��>:�����Ew���>����č�K��+�
�(�f������O�x��+��3:�\�����eԒ�3ޘ�5w�G����
D'�^oY�Gg�T��
��NПF�3�����F%ȐHVH�\��!���Q/�T��S8��R$�����&�X
+���c��
S<�P��b~����B�aY�>>��=a�~:�d�}����7���v
��8T?^�F�_�~�!F��t"�!slE'��HE��3���Ͷ����~*XR��o!�0�:���H�d1��ĭ0=t�4>�׽�����](�7�I(Mٙ�sAugX�	��8M��;�
�' ��d]B0����'�����V�D_i$�l��z�
�-�h�2�ؽ�<�c�z)?}�L
+ۻ�v�m8k�ֽ�����Fs�1D��"S���䢒
֮=7ɷ�9Tw�9C����F"#�o�f�c��#j6f�<�C�v����HR���j���z�Y��	�I����$�G��b�;\��֬��kI%
+Qř��]��f��BQN#"���j\��Z���q��
+ڽR�5�
e	%1��W��c��$��_�<���h�S�e�jT*�Ϣ^瞛Ѷ�}�F���\ia��t��tG�dt�
������ڝ�w��F�]V�Nɴ���
�1�$0�=.�]O�{$�(����{Ȫ0m9�d��!��gDx� '��T�-ANu��8�VP�AXOSXG��u,�\�yj�d` rsŸ-�!ێ���.`�P(XpE���8��HZ��o�P���Ò
E/

�^�H�pdp�~�T{o��s�]��DQbc����[��Bd|�g�d=:A՞&��TJ����y�(�V�
�蔚��!�q
�kU��xt����f�u���8]5$��{\�`&Wq�8�։��}�Hal�uG
�]�T�s��Xݴ�,�l����V"[@{�B��b�����̄�zT -D���l��N�m�z�?�����
hX0+bVi��Pm
+�E�i^fd0)���p�h�:�q�Q��f������
�aʵ����"9я�2��T-�7]�,�C�[�V�F>.0�%�F���SG�@�=���F�p�R1�a0��awRh���Ⱦ�]��P)�G�B*XB��= �Ć�X����4�m�j
�͋����d�W��:�ď?�
z�8���F8"1'1� 0���
���G�#�2��Wz�"�^�z;�U[}�Mm�l���X�p7*���E�]�*lTM�����
p��Wٞ�i����0P���I��Y�t� ��~g:��y�x]@

���%��J���`,���֭��k��D�����!B�o3��H�r������VHu
E�9�V
+U�
ʮ����~p1f;*ݭ,�\D>��բ쾯��JFv�N�����th����.1��ا
��?
�lѱ-�4[�6��+l	�>�c����f.�;��rQ��)�#�&�Qq���c{����/h$*�b�6��<�#A��=�GDo/��{�
܌��
+���6K�6��ʡԨ4��f�
�G�\����O�En�B�i�3���9J�,�{����R�Yr�y��K�%H���e*�K[m[ޘ�P4)7��*�N�ds^U�C
,+۵����n
� �Ԟl���&�-J-�InXȄҨE̺������;�}��\���A���ޛX
H�#c?5�`�
�a]"�m�9�AqM�N}����lY�ዾPJ��F%q��QMka9'`��F A����J�U�+�@5k�SD�
���pU��@E@?�8U�����)�*��k7���� �jt� 
�

+y'�
+�`>�P����Ř
+�#(�t�.�ȵBs٦!;s��Y����R�K(}6�h v>9�d
+>Pq8��Z����ݾu��R����D
�%�M���u��'����
2��P�2Syũ�㝞�Y�&�
��`�E��D�S-R�F��8����bNl ���� Ir!�n(&�(,l�u�e��ս�ﶹP�|��*��L׃���@zQ�'���c"X�*!�KJ:=Ombi&�,�#��[jO!�vƂ_o53��ׅ�. �(j��X�k���2Cݺ
�G���VsoD�إ76h�{�-�㺄H�sJ��1[tw�l�s#F��FǶQ�$	��IKl��{�v�ꀯ[K�ȁ ��wo�
E�l�'|�ٓiH�΅X�yfTOB�u
7�Ny Ŀ
�m��:�a&��l|�Ϥ�:f�����ӑY�%(2{ δյ
Ay�=�qgm�Є�1
��s�(��v$�8��<��x] ���{\ �Ʉ~�
+� ~P|�1����X&[8`��p��!��.֧��

�Kg	�a��_������GCXY�
���8��_Ex�f
����!LJ�b�s�j�y~4b 
 ���"D����[TZ�ZcCOO
��^� e
��D�4aW��d'�5=���[P,^hԬ_|*����|"kl-k�PV���U|4���^��V��^�ݑ��:������CX=H�`E����l5ve;b�~&�V
���X��Դ����M�e+����
�ѭW
Cf�]�N��t����1u��|9�$��j��:c��
��Kf��APKAP;��Q���.�����4XOdFt4��Kៈ&P5!�'���~�_�8~;f��ơS�	�
4ԣ���{��!�ߵj
+Г�q��{�{^�֣�$C�^���M��� X
c�X+=��K`ا����B�k
Q��3�%`f� �:R~>��a�fE
+u��[&��Ue��*Q���{ߘ���5y�)Zq�~��-��|�P#B� 3����9 ׌7�r�;��T*A�/ד@'YS��
��QQ��[
'��%
H� ���="�@�튩t�x
�v֣�݊�$*�{�r�w�ٻ����wHX���#�K���	2"DQ�8�EŔ�X@#eR
���V�����4�LC��\e�k�]/�PO�ӑ.7�qA�J��
n2���ޱs
+�)=rn�E���I��
����ȣ�1�fX&L>�B�>P +��f
O9O{""u
+E���P/S\I����n�<���vkp#Je�X���i���\ǵV�
+/�R�MJ��6�8z[�YУȖ*����.���pR3������.-���'��M�#�����Ggٜ�� ]�u����3���
+�ӧv���Z�:��M��%�qi3�b���_����
5K����ϦBD����r�^‚�ؾP����
+c����~˱�
��sP�XS��#̆M7 2�prA�9@�=��UQ>�j��N1�5.u���&��=l–�ۆ�>��O�?�%�F�ش���Ӽ\�g{��g�%���
RzD�KP�RG���>Щ|���H�D����—��$D �O�m�r�GK�ۗ�yB�r�	8̳�^BQ�
π���9�^;���rZ���(�.�S	�<��3��F��&ԴN)��8?R��ذ2��="�E�t>k���"=i��qW��F�j��Rx
�z�6V�)���NS�?�Y$���Q�$�S�������Ў1.�	@،+� �B�3<��#"�*�����JS#F�#�
*R��pC���z�<����kDth>X�J����;��}&4�(^)��y��0)Z�
���
p].�p�ٴ����Y}�e�#
��*J{�EC��9AX{�N��B����a�5{��B��}�ؼ��{��X�)������į�q�ٿ���gܮ�~)mf|���if��+����� �١���[L�_��� ��n@Q�3���6�G!�,��Q��ڵ`����A���C��r���~5�#jo����ȊN�p�)u� ((�+
D�^v����B������K>����p���R�� #<�E�	�
�0�0+�'](.*c���s�3A�~Tt� �!��3W�8yg�"߮�t���[ [...]
+èX�WLbO �b�s@}<ꕔ� 4ճ�聶��iC��h�@?�~R6Vֽ���T
�%�x��,NF&B�d��wb�(

+R/����g�
ܿ#��?�Ss�(` j���ֿckT(rMKN�!O�)���:��(kI��R���‚�3�&�q
+x�ˬ����@����c[a�#�S�J
+t˒��W������#�:7_lמ(�,q`
�xMΟȞ��|j�{�
+S��~����1�ن��m�x��
j9���`[qP�"8�p�9]Ul>��\n"0�).��z�M�8�!p�G=���԰��<�_z%��~�������A�$j at q@��s=�I�
3���s��<��ļO�$C�*��v��
�)���9�i�:��WaI<糱���uN�Z	
����H��S<8��
�;���s��)'
+U㭁ſF0��#P/*��<�k����	Ò�96�4��Tz��!I�Vu��@	Ħ�Su�q��'�8�W�*S�:K-����Ȁ/�v����}��)�)c�k�=3����p�֐;���%v��G�:ơ���1X!�G����w���&�����)k��w�Ii�6
Q�Yߏ�L��Ǎ�U{�e�cZӇ������r����.�Y?�p�
��
+�~?�3a���`(�=gam)֝��p P`j�C��r�h$�HP�B��ſ���*�#B弇���

ԟr|JlE���O���|ROX��7%9���1x��դ��C��gWDu)96Y��2o���^	���ΰ�@9�3}?�o鼛� ���w%��ď9�{��3	�6�pPg�A]�=8|dsU�a
@BCU�t��a'#ꌢ2��S�;p %z@�� �+�z���T�׃$�V�P��]�O�f8ѳF5���O�o1ζ�ɳ,�M���Um� ��&��)ה-�� ��
��J���I_U@례F]�n	��w�����]�;<�G���20�h�df�oE�1[�Տ4��g�E�9f)��ء��3U�=]�-
+�[�F����@3��~෷�0�� ��ޣ���w4E�q����/�G|��ߢ��f��ǰ�_��h�A�I����G#�
�1���q�����)�i
�
xhN�v��DE�A�8*�p���JI�Ȁ���ai�
+�؁��2J��D��={O
Q������zvȱ�_���|�����<�2J
+��")��8+H�{���8�L�����Z0���|��,�R�<Bn��መ'B�z��DX�ȡ�G��q�c����|�|L��0�:
�ǀ�P4�, �mfb#؞1��"��(^M�J���;�e�Y���$o'â��"vh�a�x�-�<C��:����=:s�8����m*|�s{�d�u
�5A]C��s�W`�u��Y�5 #$�i��C���	-Ey(�x
�}�d��9��K���U^X�H�N��@�/�0b>E(��jIS�
��q�k0 ��E�V�p�m�]��)ɢ��Uc�뺲K�ChC�q�ym{�3���e�Z��l���#kOч�k�: �~���#���� Ӽ�f���p�kE�C�	l\��P�o
X�
���kc�D�!+4�3�ִ����*jƍ��
+j����hm�$�ڽ��.�}�S��^f�<��w�Rb[4<�jQH,�F
?E\^�{�"u9e$"�ΒX��IqZ���dsԐR��QV1ϛ`���~�j׎(�("B�
+�^a���
B�a�*���wt��J=� ���z
�s�B:���$k�\���9_h8�N��X)Yߥ�&*|g6/6H���q�w��#
+�M���MF	gc% ����Ck@
+_�ޔ� ������;e�jr�
Hv-. �_���*����@Ft����9"���L~�<��Ѯ���2�������r���"�Eh�Ղl�f��!
+�f��pt�*��+��v
�wV_�������'�M
�G��=	���
u,���
'"�)��~� 0�:�����'����.��{X�
x
��R�FS&+���x
+tjY�jF5��&/�#"�/L�c�H�y>��1 ��"3�E�T��c_#�AH�e��J�K	�A�v��u��
�~�h8
���a���/��ls�<�P*��>��^���|kDK �v�Yy���ev<D�8H�v�n&��E�o�
�
 ����2�:�����m5֛Q�0=
��^r�����a�
^�T�z>���J�{D<�CS}����,�Sy�2�f��*i=���
�l�*�oQ�؝IT�}΍���q��t �
�` u
+&�y�r?�,(=��
8�G�G[O<�@^���G��
+��r����e
	�
�J�B5�#M�ɐ �G�����{D_�A@!��6�zQ�n��A�KZ
��JH:��P9�C��5f4��d�B�v|������8^�Ȭ
|��!��"
����d�8 ʗ&]ZGTP24������#�
+�в�T��$ZT`h�jH�T�)e���'��|]S��0Xw���F������>�
@���&{ �����h�M�=�(��hۡ�W�Y��KW$�Io
�3��pS�G�����0�8�"$�,96��g���jk�%{h�4/E�[ԛ�*��$_s�Xs���d�x
�<}
���
�%4!N0�ۇ���0$o�@�/�=.`�}�S�ȨBMZ/`��.3�3�ϕ`Q
���GJ	�jxKb� �6�r#����u�#���ّ���Q��w�U���h��<�xBIL�G>
��~��C1d^�^,�w��W��+e��6�{��е�,���
ԯ0X���.<�
+�f�h_ �#�n�
Օ'�)�-��&��F����h�GĘ:Jpo_-T�;�T1�yrk���T����_��Cu�_�o�l�xs`�!
~�����:H^8,�������l3��Ր�bT���I��X
~>��$�N?b*T�����������#�*��P����)v�qfܑ��H��?�&��=�D\��o�R��<YC��BV
!��t�p^E#LO$rb�T��xTEc��M�"Ktv��_GH:b��
׸��	x�	Eo��_`D��KTp'��B���J��,
�'�h�=�c�)?��_QP at Uz���e�$����hy4�@[���te� �G�|

u5�
�P�V�A#`�T������oQ�I�>����Y)^(�
���P� �jă�c���ÊL��*Gߣ:��s���`�W�pO1�
+�"��υ|�1��r�QeE�$s��	{��̞_��o�0S�� lM4�й�Xq�J��W�E���
.}S�cb&�tA���©�p)a+�(����c{�(��3�^U�Ղ���K
��`�c���m��oQ�;����Ƕz1�z�Nb% ��5M�A��}����ѵ�k=�\a:�; �;7�,+
�
���苕� �)i���v����g
+�-u��%�	�7�H��'&�u4�
rv��Aq��P�N�����f���>���)�G�P�
8F�
+�
��l�Ǣ�L"��r Wf��'��^Yyq���߰�W��>!h�
y�^<Z`0�dRu�97p �H�^�z�L��_����H���4�?�d	���K�����h�|�տ�����_,������������_�����������������������������������������~���������������K����
�	���� �_f����R�Í�p�/ c�|5v!����;��<Q{Z��~1�ߢ�����=5�W�
�̈��T#�ri��(��a���046��p�{�o�D�Xx���ۊ(*�A���$X�
=��(�O ;�C+Yw�ta)�E{�/��Ixg7#���(Kj����M���8�5�D�?!s�,�l� �KD

�2h����Q�8SfD��
+Vq�=�lI����šy�����S�@R���[4gŎუ�^�[�f��v({ƌڀ���(��E�/�cë)��A�
��cQ�í
�m"ط0Ce1��>q<)e��4�'�SMh�x�;^�;AF/yDƳޠ$3Y��ɜ
+�p���+=EX
e&�Nc֛(�NL(5�(~��f�x�q��w�~���'0$�.TJ���ç#JQ_����7���F/�}��
u��s0
��q�+�=����e���Ǝ!s�C���iD� E�E�-Q!TJ�`~
��k��{��|A0��>Ӯ�
+�"�`A?�x��?G ��ϻ�uW��AO�¼�1FUU�Ԁ �� �ëދ�4��s};��ӂV>|�
+�
O���X���ݒF:�glKOe�չ�!>��*(pp��
�PD=��F�].�~�
3�
S5y+)�=�}E�%"��&�����M��z&���it�����v�;
؏?���C!b�Q4�Ѻ��2��B�aR���A�F� )Bu�&���h3!a�$�E<n`&��J��(&���R�$2�[���=������#l8�.<x�u|<��"b�)f��D�$F�c����/�-4�$^>��{lB�X���@|F��f*{;�<�wz
iVq�9��
�(��@H�E��3��z��*�d�̵U�<���?�����Ȧ/ā��[�^�40���;�;	J
+x#��Ž��`П�9$��2Pr�xS�B������s�_�@׀�'�| &K�
+f	 7{�݊}0Z��b�(Q�EҼ�w��!̱�7��H�
�y2�(�Go^i	�� ���y��ej�Ol]
+�yJ^�9�<%��+c�8O��ʗ�;
H"��b�P�5gbJ6g�3����f�A�m��P��"&exŻL���1S9
V����^��Z�C�����
F5��c�VN
{w���W?�Z
k���`���,��g�����m�؛�LV�g��g�,q~� "r>=4�[#Q����K藞i�O�m

�(+1�{�a���[�
���`a�y]7���A���g�M
+�
/�3Dq��,Bx͓8 at J�֖Sx�nF����J "^��bZO���,ٹ_\zR,�=S��0�b��
�+�V��oA!�V�ΚX��"�|
89,��Y0��}��3��J��*�0�k�&�

����D��4�({j���[AD�LC�6"
q�!�
�C�&JԶ�

+�6�h��x(��ȯ-e$Ф(
W���e�F3��
��zC~>/�Ί\��
#�
�P5	^]+X�D��N���
r�f,�
gy
g(r蚴h�k�@%�,�V��y�9hNzO�-���)����  ���F��aSn;$P�qX}��
}�{!�!e^Hk��{�c�<u���>@�݄b{Oy���zi�;�ڷ�H,�݄�kn�4�x�"J�S�ԔgXms��17*��o�

+�B��^r�=<gx?H
��R��5���&Hت!q��Q�|Z�:���\�g�m�5 ="4HW�1Ώ(J�:˰^7{�3Ƴ��\�,W۬;��qj��=IC�b�LR��t�y�`��
�����i�7<I32Y�Z \�]��%�Y,�0�~VѫƗp��p
�@a�T�<?c�=jr�) �=.�/�����@y2�N�LU�v�+Օ���- �B͋/�$g���F
f�����B�
������]��۱�֙��ю�
�Į�aL!
n/	z�-*I[�|N��*��	��=!��Ԁƺ(
=p�9�ҵ�c9�����g<
Xw�4��P_[($V���Rق�_N�`����;8`;
+R��jMb��
w*ԋ�v?BUU�ZZ� �}F� V�5��d��aX�x������S��E�t�joQ�PL�?���
�9�����Q�R�s at A����
w
��"��Bw\
���y��Y�)(QS��xM�|�{�:���A���{��]�
ͤ}
����}P�m�r��]�%6�M~�='![Uש�Οµ�@�~����	 lT�q4�o#��^�
�����g�K��bǸ���nV�VV�`����&3��NT�Ip�w����'�q~Swϸ���E��sض�'V������bs#֕�礁���
+�w�Qa�rB+��6c��DT�.�(z�Du��v��$F�##����'Q���߁�'�s����0���ܻ �.�_���L���ۧ�zg��
ρbf�r�Q�BC�~ȭ�B5ÊPQU�VI6K�ī�@�0�2!`�W�'<����)�,gu5/Hiv:�%�.�ZR�N�����
Ώ��*y
+��+�-�`�u�+d�RV�It6�̑{�זͪ�cM����ي6s+nZ��F�<kYC�`�j͕�u����<��#��I�a���	S�9��d�7���CC{xT�c��\�|"3T�
+��z�
]���M :�m�@�'��{�tA@��|5��H�S�NLJ���&a�b
����8󸩫���
M�e@���1�5e|O
:�!���P�ޫp�p{�w�F�dv�{�c;�+Qv�Ru�k Ff�ui ��
+;�0�}7���i��j��DžR,Fra8����O����q��q���EH�Ȑ���3��'^�H��i�ǁ�T�
+Y�fB������#����|?���	+�����ԁ�|5�
�i�=팰c%��1�io^	����
+��y�V�

v�ܽG���E��2LG�iXM���v_,�=s��<�$��r��*���Yr:
+�n
ɔ&]�.
�y�F��J���XV���W�l���c�lN
5~����^Wv"'�h^��
Zܣ��
\���›C�I�1H+�"��`E����Lzh�c�w�(�B)t���۫췷�@)j�kh��
�2�:���"@
A	N�Γ{��� ` e@
+�
+=n^��喇,��
�
^~��ow���c�5�i>�d
+��@KK,v�P�\H�u�'R;�b�I���{S�>Wz�<���g�D�P��yL���b�[�ch�#�����K�6;�g"
+<��yt�u%��#�"
+Er��4��
�X�DT3�q!�Qd���J�5��]�WB/���')F�R(��IV�`
2"�B(F<.3��1��~T�m7'�WB�~�8əŵ�7��*f����>
�ÄP�]�ߣZ��4J�T+�"X�sd"u�n�I &�eL5K������+&Z���i���Z�`1��[OG�="$��e���L�ׄ�~4;z�[���2:����c�㶶�
q�Ѩ"]�߃,�6�Q��T�1	y���+L�P]�9�GAf��߲3�����P;�!��,�A
>����G��*C��7{�p�JA
�Ů�������xb���먘�/��t��
����s�8螟}r�~
݌
1����of�~��K��:�),���֛GF)Q�A� ��
� ��Q/"Ҵ�vx���C��XF at a2b��M��3a\A0�Gɉ�$n��;AH-JZ���>�
�5U� Z%���"bM[v�Hl����<�y���A�!�G]DgL�"�a�
�^�\��Qh9��xMSb��]��@;�*0��[�NX��#-P�Э&�ڽ9`��
 ��� �^=M���T��_
�8���
ȬX����Pt��w*p]�v�K6ɕU6�{@��2����e�Lݢ��Fo^GszM�N��
??��
�Ht��GY
�����
[k|@���7B9�j|��(

㌬6ul��^�-n�h��/�
s~
x
ߝ�1|
��O��b3��#a|���t�A�@A1΋��ք�l ̺�Dޏ�e:⬲dx��̫�\�vHt��غ��
��H������ޖ���9��%߂(�Ӎ���
1�(Mˎ�Q}���@�EQߔ{�HKD�a��!�ؗ�av��.
	63����`"�&8 �cM�
+��} ��9��+��I<���<�<�$?t��j�uڦF5�Xėb���s!:�6���(Њp�W
����l��j9)�ΚHQ��)�
��
+�E���sl�,hXa����@�Q{b
S�ʔlie��а?�*fDXu�9="ƍha��%
����$��/�X�S'�m?$Y�0�{���j�[�kT��4
r|� �
+Wg���Ȍ�4�ي s
�>���a��� � ��/�!6���x�K at cc���j(C{V�T��r "�@�3�6N>�^zW�o=��nG��m��h��Ŗ6]t՞��jF� p=U`1�I��u,��fC��
�f�,:�c�V �PO$j�JG�
�3�ڲ�rd(�a�
,�Dװrn�0�܃���L��R���'eB��x�^֨Q?|��NTm��1v�a��
^I}3Jԕ
+�/���b�� ���9/2����|?��6,�(˅~җ��Mۻۧ;�ϙ�� 
Q�}���
Y��ED�($.x��g��:�8q� �ĕ���M�V6�� H:1.���_�'��}����	q�T҈������=�U�hp�� I
+"�GD��+�#���5���q%Q�	Z��R�%˯�������[6���Zhb:x����^T�ҡ6H�-M5�!Q�iA�=9~���#U&���E�
���p�0�kWJ�8.]~�u
+|�`-
d��Q�+�m$�R:�:QO������}�n6��=�,浜�S�ʼn+��y��[$yo����
ȂX�!u�D�����T�!�}���������z�m�w������91�0��~�d��~�ē�n�}'u�c� fH�ݷ�Gq>���g��J���x-�x^�Ļ�<��=��<�vn)�Df-F=0+�q��]����~0�:�{y���\d�G�
�h���o���؃	�����އ����}�����Z�&_�B?��H�6H�?]3+IQ�_��3����/ke �x��q�� Ath���g=�� 5�{�Cü��]�։��wg:��;n
���,q7�a���[���qh<Tج9x�;�U��	 ��r*��B�@�Ta��T���c}����@��<����6e�FG��s}�i�[��~���R��ٱ}���r���v�Ex�E�Q4g
�r�s����i!��C
�>��w�H�n��ۃ��3Q� �x;�(��HO��J�
+1G�G�Ў�
�
v�Ze�B�|�Kb�t��S��t���SUOi|���LᏋ�x�B_� U�0%�Œ��}_l������cCO��%�C�M��{�����te���6���C��ѝ ך����挶`
+�W�����droRa:z
NKĠ1��D��B�.G�{j�Ņ�E����6+�B4��%�~~9X�#�Ö�Y�l��p�
V�-��O�A �d�j��*�>�8}�$��@�
+!�P�w9�O�;��p;�"~{����0�P���v
�),>Y�˴T����[o(��:�W�  
+�EnTؖ����!����7�xQ��N����{�kR��4�;R
�u�b�q�r�Uڛ��t�@�
��<���߮{��-������prwG �Z�qv+��1υ�nP壌�.�뎠Q�PLۧ	G��
+"Q)�f�!�}���
 pOpݴ��	����2�
i���0D{S�@DF�~t�d�{�^S�+�iR�E�
�x��C�n�ޢ�ޢ��E��j��3���`qs�]�Yl��2�o1�ZL2{7��
?
Ї�
+29`�� �L�Ht!���sH%�Hw�A��	
�,�> �{�\���s�p��i��
5�D�X��H��W�a.�q�B\j�z��� Q*C܍J7�̱�-0� I*�="�P��6�
&�=�*�+ƭ��L/����~�@5M0�w���hr
��1,���
�JX1��t��<�{H?#"��u{<����1�9`�ʃ�����aF&�S���v�
�
L��x��(���@|��AW�Q���^A������
n˲l�{���M��d��tk�V��@���_���
����o���]>V�ȉ���1b�t}D>

��*��ޓf��1;���o�O����="�U�L�� ?�g
�4�����Zs��C��f�Q�(�scAg�C���s;p4��
�]t�Y
��wݫ$H�
9o�3���^�=�4����^���@�E�%F����iA�>�jT[U�+7�腓@G�[�Ow�#�:)���Y�F:i����d1y���
�<Gr�=
+1
I83�H��mZ
N\��v�;sTRb�*0T'�'_�B
�	e;,��tA���]�1�B��������L�f��o�
+
���!-�
� �\ͳk�j�=�;�tB�$.�B$�����x�{��~O��ʞ/_b�9m���%�-& i	(�I	B��D�I�ݯ�
}�%
mOx/��O�jt��4zT���}� �BO��v{[oQ�
[�ir�7���u'Pܚ��N���D{`�����;�ޫŴ@<���Ѥv�a��c�7>��2&̖��?���@A����
	�W�s� '�F�4��ٙ���w�O�!tO�|��o�‚���T�� sg#�Pܭ}!O�f[X��(�Nݮ���̃x!���
)�M�
+�ctb(ER:@��=[
wq��bF
+�F��CB߶�({�`p��f��Va4�s	�2U}{L�[��(i2�2�T��<�A�7v����X���h���4�<�eQ-�
�w<�is  �_x��煔�J���C�"��y�'=���@  �P�S��OQ�,h�,������� d���ٟ?) �����K��=�(�9[;3�ݼ3Wם���5TY�*M҈:�4
1#g�Ȟ�GXT��h�1�*�
c�f6� %+�{���q�=�9�$M
�
��n����ɒ�2�9���=�`�
q ������qFqR��ȝ����Ԩ�1�xBo��{$�j
+���ٕp�؜�Q��L�p�4'L��T��Zs��4f�Z-���ݟ�%⒠�];�r��Cy�b�m��zj
+>��e�B�Ȉ=9�+�h��T�CDC�<�z���
 �H��Y�qE�N����'�9�ْ��a� �n�H[ߥ�0�P�ơ��	���-���!ύ�_�0`醎27��da���@�N�W.�a���6�R Q�F�>�M�u���u���l��
��!}����|u��_�Ѽ�'����Aa0�W�L����ʟqks�w�h���4A�SUzAUۊQ��B�unh�RAaL��0a
��J{�
X�_��a���
���ʡL�
+ �����tE�`H�g�����g.�h��+���|~�
�����B�x�-Ϝ;S,j�,�[uZ�"��@$
�ί��)�Ϫ����9�
.�M��hS�Бq���[�
�
*�L&p��q��w:.����^[�$�U�Etu֖k��f�#���gU�}��x�g���5&�
W�x
C�1S��z�Di�LF p(�#���X�U�'�V�=�_��f�4��:~�}�y�
�ىc����}�
�O�pX�ǁ�[#
%,<슈���x�:�9!�t��y���V�B��ƃ!u��C�\��7q4��l1%FZ��yS��.0��s�A|	���ɡu`�yo�FT��fϝF�uͦ<
��Cd�͛Ī\��H��I���*U��iK+i��΢`N)ص<��)�Ge&��'��u Y�
�%�gjC�Q�P2f�@����qj #���n��@
~m�]ñ
6���a>PЊ=R��Ȑ��Oe����
h�,����kDDQ�P�
�4�)v����(ׁ
+�w��GKY�8K�#’��T.���uV��8&9tm]���:<+'��|�� �n�@�"�?�ϧ�K�֑�k�����"�:�ߗ��G��b�F����Y#[��r�\Op��|H'���An���<ێ\@�7� J
u˦UQ"���yq%sAX5���+h�L��I�&.���^�#�GL��V�
w3��#o��ـr}vh"��h���wK�{;�b�
tB|'z$Җ0�m�p�\��#�'	��o����Q����ݣ���^ʁ�/
æ�aկb�X�X�Ř ���Җ�w���3�y�ޡ'�PÅ#z�0P�M_uQ�,%=�4ה�H�Ì� �<,+D�=%"� ,��
>�C� 	��:�3C�e�Bp�R
�-(
+�N��a�5��e�##���p���v�W;�B��
MhJ��X�6[�xP�a�IF$�v�=ĻƂŻ��P�y+�������f��B"�R����]4d�ʚ����ԧԗzx
+�P��q5Ȑ��q!�ܒ ϸ�D�
�s�����P#�8�G��ݮ8޽� ��
��?� ���)�7Ÿ�ey{��4
�t�'U�&w��W
��S�,p>�o�U�)b5�|Q�&{����t�r��}EY��+;5�}�{\+E+��]���
�ۗ
+f;�	���S��X�ɍ� �쉝��]ѫsU�AT΢6-�d��a�D<�!	\9r/4��)�ߥ���E�f&� �
�l R�Ma�y��5�&�x�>'�^}�b
�PyNl��~��!�
�`;�n�C��~\ d�q�*�ɽ����t����5I��O���Xtw��ٴb�����ԝ��v����u��b�
�m��h'�
�c~'FC��*�1IMȶ�2�4,�9|��k۽o�
��L��c�%�5]_#r��iqU��ذ�������JT�9��1i��€���_Wx��#cN؊-����Y�O��B�*C�g]�]
dG�x�|)�C�y���Ե�ۡ��")nQ)����},B��y�G���l��
$�-+�:��� ,D�������k���
+T�^ ,
��G#�\v�ΆXn�H�	��0 ;�2�gI&Y�cI���|^p�"��j��&}�vn����N����0J��C�*�����ߚ|�j�EC!,�t��o,�蘁���Ϻ!0�v�@���v��U:bW5$?�c��Z����3�!\��+0⼝�;A��v��1�{����

�LCQ��z
(J$%<��K�k:���I�	�y��5ٓJ���PhEm���H�T����
��0)�IrV����=�ϭJ
W
����4
+*E��(�%���j�P�T���
�v�XmD
+gF�Èv%F�#
�I�h�wܐˎ+�\QB�r��7_2�?�R�9[���D/�6 ����~�P=����� ���p�z�����9}�
QE��&�!-�H�)��Ad;5��&���9�2�.��*~BX^��h�!Ǡ���S�+�Z���V���=۹�Q���w۵^I�����
8�=y�4����9I|$m0Y���ݧ��-��
SZ�jHh��$Y�m�M�+Q=���,2JjV<��2K���-%u}���4؉���:�{�H9�ʻlHO"T� PZd_a�x�m�7qĔ*���~�%�#m�	YHe�TnOyͯ����Ñ>@D�x?źkR�\�>k�/��:������(UNj��J����i7�n��MN
w��p;b�����=���:�������Q|����
�q(����-�d�@H��]'RH���S�\��5�©/��iX�z��ך9S6uĒP�@k��	^
[�[_0_a7�+��Ȅo�)ւ� �x�U��
+eh���2F���,��-�CQI��p�֓$
B����U�7
m� ���?�A�
��8WY6���(XU0�[j��^�(Sm&�Ae��`#�
�5�:�C9*TQ�D�z���\��L`˥65`�
m���\!t�i�H��}
?�%P��]_ H>3���7�

f���|#gR%�N��lg: �,�Ԝ��V��ݟQܐ��ƨ��������:�b��=evF������� ^B��ҥ`"��
+�L��
�����U�.�?�%�TĔ�,>��'p�~�K�� �HI�Λ?c
�d�ɻ?�z�t =�)������_Ѥ2�y���N
6��8W61C��,y�Z3�_S���h�Y��oH,ĘCUd'��F��2�:�~�?K�y�A�[��5R����_8�'�-
�`�r}Y%��F�{���Rc����K�,�H��O���p
urT�J�N�6�BT�
��0��� �����<�y0���V!a�S|����y=�y��
��<^��:��?�Hu�v��7�1��LH��/��53ly� ��X7�]A�;${��a;���gz���ݎ���o�����2s_E�?���*�r��M�
+�BؘBv�R᧦�A��[�P��c�|4a�r �x=v�?��Z:m�AuI�o(�� �h�
+iG�B4O�:��w��G
���
��
 ����<������j#�׽�0�	[r�+���;�������C٣B
ÃF�"�l
W��l� ����=�Z A��W���qք�9
+A:��Xlꇩ5Pk9
+|:2��Z��
�d�j�7a�(r��K�rfȪV
�$�;������b

�I�'
�־
jVRs%�����qS&�
�^H��;�c5�ɵ��I�w^��#��F�4���ng=M4\\}���VЗ:]�d���j�V�g.�0�

�!�È�$"2Q��>'���P������A�I���������ڀE�+�
,�] 
��o����
�g��!Q�ӽ�Q,��������'ð:j⨚�{j�5��R�t��%�L{@c�Yƅ:n�<n��qN0�K���5THBPZ�/D��a�ƛ ܇�M�0���&
~	i����vr���ӿ�� �-��+�� Z]rPu���Q@�^���ߑԺ����F�%
�z
��v
�
�
j3���C�F`�0�b`�̠}����K�3t:	�TǤ�R2W#О��xd�B�,@����B�d
W�
m�r�.���[�%窫
G7�} 
 ����t
���|;s#�P�LH
_��B�H��
�����`�9��0vH��s��Oqa��IZV}�&n����
�<$�HR��������H]���
�VC\Ez�7���G��D�D�덀�A�י���.�����W�יȿ$̨7�0ೣ�p?@, W��u�����i�-�����ų�=�l��b	Z��Q�h��Z�k���a0��7��E�f%QV؃�4��?�r)>,�`d���L~���@�!ޜI��Y*�T��A�x�3M�!�d!M��\��v��4*,
��` f��C�j�x���^��ع��k�wC�j��@�<��)塛)\���A%����=�q�< s�W��{��+���Q����j[��
N�}[�#��~p��'a��zW��")_�r���NǍ�O1�x*ұ\�j�S���4�y�
+O�g���JJ�@�A�]c�
!Ϛ�I�)��YM��
+é�ޱ�"}@�34fڮ
�i�,�����
�~y����Ϣ�KJ�����)�~��dQ��'
���B����
|��]f�;��ܯ���<
�X0�P\s�������ݿ��ŏv��>�Y}�I=Z��IP��ݹ'*�6|��:A�1VE���J����uW
�
lt��"O�O!��aWk�+�$Jy��$@�����
+�z
t
	\4�@M9H� ��U_�t��4/d���8�
+}`o#g�'� %y�Q�E�8*=��	�v�3�
�
+)n��J��k爙��ֳ_}e��8S���aw��-�Iu�8+	'2= �Tgؙ��A��
��#rf1�A�S{�ּ�Z�k		m�Ե�Uߦ��Iּ
	=��i��
�La��?J'
c�}�w�U�3h[�� F�7z�[�P�2�w at _�e	q��
+)m vp���e'S��r��
db

�V�ᜈ��qN�~�O�	֒{
��B�/ �� �H
��h��[T��X�A�8�	;wy������5c

��ڌJ<S��[��Jl�������_^#mݥ�I���e1F�Q(���P��/{�v�������� }��Me�w�>$����)�f�
�rh�IƢaBD�GE���k�
=O
���B'"cJ���Y��
��J�����3��qg�Z�"���^Œ�Ux�tTz�:��
ّ��!
+�d��$��Ҡ �c�&+]LߣK��^�F8;V
`���Y*Ys�����R�J8gYU��Qū~���O���I��k�p���)��G.�tT�zTX
�Sg�'N�=�C�s>�ջ^&_Y��
4���2P�QE���
+T��#I<
�P��S�`���_#�s���ks�y��f���;�ޠ��uL�/�թ��Cp�ˁ��B��J�2�B��E��px�F������+
^�kr?�e '�����q�$���F��J� ��rNSvw�z���˜*+���ˀ��G7�\Q�
�K�L���7��a��8��-怦8�%�
�U5��X��.X��r�q)9��–�m��g��&m�ZOC�T
��
�"J���VSHp�
�b�/5
�9���}���WT
�{I̾��Y��`�ǰQ��up�g$���l�`��������$�"�����L��39"�n3�q ���aRX�GP� H[��PY>�����a� T��؎���G�D1Ɨ2„iF�E���Z�Y�]-멣��i����a/������1��Hb+`���}�1`w;�i�ށ���-�(ֵM�_lU�鸒e74��
=���]��\F���P��0er3ܻ�{���x�#8��Vq7a_�*Ԩ��A�
v�O
��
�`�	�
+�Gצ�$���������h-��t
wB]d5*!l��8���J:�4�)��1_g�+1�<��4�' m�m�c���	�>�\�=c
ǁ���<par�H

H�J� �~T�w4��E���W��]���#���'�%��DΧ)��_����GHn�t�t��
�.��"K��^R���O�%
���_eEFf�Ԏ �
+����u�̧��z��R��!�?�_��������1�
�v����w^�赎Z_�lU�]�ð��[@��K�����"��
�q���z�T�T{,�cA�׻Z�xC��숥\Do��춟K���Q�:�09�@@�u�AJM�"�����7b��;��l`����<+I��B�z
V3F�XvZD��R���W3.z���ƽ�$֗{J�
K��� l���˂^��b�BC�*���p��D�T }��y8��5%��(H�y7�Y1W�Z�;	6�(;!�d]G�(Z�wy�)�֣��?��ڏ���W���
 k
�
’�_�b����V ��D�9rR	x�Ó�^l{���!��
+�~�
��|6Y)��#����VP�N-fx��v0���#��X�7 J��wD0\�i<Rp�����RZ2!Ey)��q
����V�U�INpZ�^i��Qڟܛ�G&z���b��I�I6{�_��
y�ӓ����4Z���$VD�$���j��	�N�
��(zOwqCx���P��:*
GHP'$Vm�L0C9��pJZi�5����0'*���r
I �q��l����N� �a�f��S��x��7(��}t�d�}��~�`���Z��i��؏������1&8�0^��@���Utp�V�Ӗw������5���
�tt
�?�ӎ��1�������8��f���rf�P�
�z�q�1�^_
	���k���?�g�/<���??��D
�u�/B1����YA�se�Ů��{.��X��K�����=r4O%���]�U���~�r��W����:k�Y���з#鷓�3���A�
���M��Q��DU}k� e�#���x��ey���c�
C�9��s=�
vTq\J�ܵU�'�}�Y��=�R�'�`���
A�($�D\��[��㌄���s�^�OK)k<YB ɒ�jOb�;NXψn����qv�����6�AF�Ԩp���\����$8����3T�ط�L�Q�c��ʘ	
|��-�����5�# ���
3�+L�ᖷ�J
�bRਉJ�%�'50��u%��f
��x���	D�ʢX��G ^����A��������JX'B`��%w<D�
��\�H�~����3���Ǹa����m�r
��p��g���=�G�A��@��ᙎjȍ�sy~8�mP�o(%A����"��{���
d�ch���{�p�g
�i�gP3�k��`��j�C��G��|�a*̖Y޿�\
��bQm����u<+DZ���r|Ș����P���@%���zX5� �E�tp�V����t"4F��]FV��i��u.c@�{;b�>P�р�3<̵�Z<N�C�m\ �=*p h�Lo�2�
I�"M�� �M�aN+r�:P��Y��A?�iM�7�
����h��FP90��- 
���1�S��)�J��Ȉv"2h@/{~�p�ӂ�֑
���0t#�߇�����Ϩ����@,�O��Ht��?S��;�ޤ�G@��#C�'$�Q�;�G18�7�`�tl�u-}P�^h�k`�
`�a�� Ԗ��
�]��qET�)�z�=���/��J���51�ZE�0�
+�v`��Vz�<�5� �
�@���	;��}d4�����*d=j?䥒�#Ѹ����K��1~C���J<��ψt����s�C;W�B(������>"�<��2-:���[w@&��QۇW  ���dR:��L��G��?�}6�2Ͽ�j/ �F<���B�`� ζ䀶1��r)UG��.��B8��I
+�69�亝�g�Q�󦞠ۀ?����`�Z^<C���`�Qqu���L�%#��Gj��0d�v1p
�
�C	m�~
�J׋{
�o�՞��9�D
k�~  ĦR
 �����	��юX�죡4�Ci�&�v�
x!���tu�g����ߗ�ߗ��b=���
KD]�^�ϗ}�
v�#x��Gu_C���y�>4R���nG{E���ܷ����|�mj;;W��na��Q1&%�ji���r��L��6#C��`�6
+–�
�_���%'��8��z
)��Jp�%�S��:�?W�H,���=�bJ�t�
+��R
+`9:�LFf�V�,U��G+��V����2�+��2QTƭ��	ω�dEAn�����M+���E��l��@��)����SP��g�i׋t����
*��#�<�I�t��Bm�ضkO�q
-H�
��D�-A��k�Z@���	9�(��#5팵K,��i4��T�W)�u�n��H�dX:�h��R�JA~�6T�D�FD0'j�^Qh��-Z�/P�(T.&��H�
[/�=�h����6?�l�FDч7E�H
T"����,֛������EW��a,�)'�%���e��f͜(�
E�^����i�X�&B�w
a
�H��W���ńbE����0[`72J��]�6V����
� �:�ש��R8�1��:fr�����|��~LG�"�G�0�Äҥ_`��`��ji��Y�<�#���
{�����D�f�:U|
�@6'ߴ�Z"m6C���ld��7B�o�#
+�#���#
+��ᕞ3%�G�ګ�竚)��DZ�%,
+���/�W]�D ��� uG�s�dX��~�f�\Z�*���� �
���|�D�f}�)J\4��a���]ϙb�H/yE.��=_6�9$�U5����t>�f��x�w�|��
�XE��of��s�ӄU�{�h
�=�pUo[�_~}Q�A	�"�o2l��$���!
G-�X`*���߳������O����"lha��ڼ�a<?| >�%�_���Q��=i}����H����{<Bc�v�Є���.��q8��8�w$ �SG5\<����PqI'� ���{�0�~s��p�P�/&
��N�c��\;�ҪZ6�ٴ
ig��Hd�e�t�� ��À�>+�`,
�Q�&w��+AcG��1
+��$R6-zկ� ��``/QX�� ]��C
b��ID[q{��}q�����}������%xr�0| �	�
+���Ap�_���V|+�0_�}������<�5s^�9ͨ�2�y
`a'*
�R��f�D��nts��� �����ޡ���\J�����‹��������oq.]�9��8-�"�)Mg�W�.��P��d�_�_���*f��1Vo�p�dF�a
[�DP
��ў�9J�_'"Y�`�{����)��rL[����8��^#cS���Z�ha3�G�M�
5�Ci]x�
+���=�}�X
%x�Yv5���)#�
��9|�F�S����؎b��L����A6[�N�02�c;R���l½Wڇ�5���*��ț���Z���R�#�u���wf%tiG]t��`���z�-�}Ṟ,Z`,k��0eWW�e&\�
+2ٯ�}��¤�ܳ'#�`
*��#
w��FYW��n���1��'1�:�D����#Kc6�h�
�0�X3�Ύy�
�a�x��������/2��'�?�+�����M�f�
�xv��S%,����c�;�V|��x���:i�8�z~K��G�M��p�%B���1�=����-�
�9�`�A��ugZ{#@-�1!+^��W������C|�V<��ܢ��C� �����r�E�Y������x�/A�2�r�9
cr�fp\ǔoeٴ�(�3\:|D�5������;�/��Y�Z��)4���[���!{��n�ēx�x��+���� F�Rw
��T���6��f^��/�{?!��k
:�3F�
U=���M�j"�4��y\ym	���t0�~p;��d�wh�#��b�˝��C�Y�
�B2��
��"t]#g
+i�<��<�@��*�Ũ���������rnAS_̨$DR�'��;"R$Fѝ��=>��ȏ�co�,ZK#�L�
a~3,��2�M��i�A��?E<�슡y��>��R�å�?*�U�:��P "��U<�S4�G�gDn폮
+[���y�+.�_�q���b�!�
��5�~��DŽ<��ݹX���ۛ���7��4�?��v���=�}?u�CeA
�����[.k�n;̆N�O�O0��uV�0<�G��S���
��6�G��p)(��}	��X�"w�8T�!"7���o���ҟx<�7��Wҭy�-�K�Y�
�n!8G��
���KO\.��YRk��a�
z������jK:i���%"o�L��w;j�
���s�V�
GԜ"�/�2���2 2�1T��,s?0�Ҋr�w���% �ch��@0y
+���y.cS� o؁�nN
���~�@��*����(%
�++�Eio��v9�P�~F�:c�?��3}DYhs�K �b�������,��1��L/
��Xkm��$g=:����1V� ���9�P�����
U5�
xU�:a����u��i!G}�Y�Sp�J}W
�"^HGw
�Y���"�
�����
!Xh�9S���
[��� 6
���qp&iH��r&})��Q��6d���u�e��N>j����X�͑�	^��|d�!sK�?Q���c��ԙB�iM�=A��8l�݈��w{����Y��	?`��=�N�_��Z�)��l��4�A>#��N�t�

���3�����^I�� �6h���7~Bn>�~��
�Yc�
%U��8Z���d�~X�v�f���|�����UR�}��T{L���ˉ�_D�׽�?#��א����i�(
�"p��e�q�G�
.|4�,f�S%�oܢ��<�#���Bg���
<
%`k��AG�Nf�x�(��
�!@����1�%h�7�6A:%��U6qw?+��'Z�k�4���h���<
i�סA�a4]��cY�
+�ʿS￴�a���e�bGc
4$T�����|K�BJ��q�֦Ή��

�<��H�2��A�	�+��[
!߫��yuLe�;���c�z?;�A��M�*3�ԴM�]�>���Wl������@R��X1D@��;�
#V�����q5��/�,~�p������
O���k
���
yE\�$��n���)�*��� u��ɋ��ׄ�3�Y�=�]-箯<�SY��O��n�H\�A�` \�2�?E�+��������0���=g�U�a�E�
�檎W�{U��'+�B�]H)�B�"eΓzr����? �����qd+`;���W?���Hk١�N��Q39��;��
5
Uu
;F���s��3�6D�;����e㑅�k�"$wR5ǫ���e �:}_�z�ټ@�JN�A�[$��)�
 P��� <�W�a�����-�PF"���X|�v�?�µ��`��Şz�{3#bo���R{"�V�F�f��
�
+ꧾY~�6
���:n�
*�8R��Rgm�]�gi�Y�7���VRY +=m:�V��j@{\,�NZ�,!���^(��eF&Sfa=�]{"5�
!�g;ۨ���ޅ��7J����g����7X_�ڏ�@q���ˏ�.;�P}@:��yd���NE�
�0��'(��^V�rR�k���?D`�R캁�z%8�G�v0��I���T3|��B:��Q׎-�|=?���˧
����)����5��֊cj
v��>�@��:��i�>�ד�侼?,�Լѳ��C�#5 ��&�)V#ާ��X)L0���Zf�E���
���
+����3QO�F��RI�UԴ��Н	8�9�������V�.׽e_VQ�-I%����Ck!L�
+
�
@:c6A
8}� o�����ϱ�9��Kr? ?V&d�-���W
�_��G��{։n�{�s��ʦE�0IO����������8R�8[ #��72uN�,%�Ȥ;t=��P����6d@�
־��8ׁs�.�B���|��C��#���=�R�F��?h]DiS�WZ�]��h�6������|������±^���������sg�{E8�)� ���yD?�I �o��$��y���@�_������+uJ>��Ȣ���J!-U?ޅu� 2ٞ �HM���
~m|��2/���C��
<4n47:�L���b���"V�08���!�&�)�9����� W�����tk�Gi`��
}�di�-\E�F��C�}�C��>�ir��
O�-曶6��K�
�aW� p�
�t�#X�_
�$^���?����B娅?��
H�2)�l&��o��V�ʇ ;R�&���㢁�>�� 
��d,�|���%�K����4܉1�n��ћFEM�C��<���J�c�,�z�M�\�Ԟ/[���
��-V�"����r@�=�	��?| ��;0��%	R�d��e����T\��N��Q�{W��j�]֡cTA�}F�X����"�y~8��G-����S�(��
++A�Q��
1e���,��)�w\6�PA]�ܮ)
��8�}�qY�au�4o!<�D�������a�tCz��6F�-���0�����JEG�)p����/aO
�퉈B}ݏ��/�J����G
i�tE�zQ�����H쇈��ڰ^<��G���~��%ҏ�
j5�W<|��LU�J,���P�i���U���GQ��w��!
��0\�N�N�R��L�gΣ�l�ғB+C��|�G#9~8a��[��a���L$�F0孡L?>d��><1O����R��f�:BtZ�+\� Gg{�i4q�j���g�*%I����3}��13j?��">�/D�8>
���;H
�ψ��
�,�G@��q��@
;S����Ck6P�!�Dɋ�%?pǢ�ս(���t|�Q�>Q{����z���Hh�VK���<�7��
�O��/�IcP~!�6�.������>LQ��+
�,;4
��՝Y��ޙ��i_b�w�~���D��6N
+Vh��/%�KFvQ�G*K���˦��=j�[qd����q�m�験�"8j]	
k��f��u�
�13x���Q�b��d��"��GdY�(�	~��=e- z�W��/t��&��*�~G��u����[
�NB�����´�ڋRP�hx�P^%��#�A� @`�%�
�7 娧��N6E�Yҍ�*�r�M����Է���4<���QPE�Ԯ��<H{ݹT�>�E��~qT��C6|��'���sLZ�K at 4�^d���H�O
+WԎ�ݣ�3�>ߟVNkrzw���Rx��xN�.��yM���-{,H�y��_�'������
vaz?~O������_�o�������?�铕�����������_����������������o���������������7�������?����������������׿������o�)��➯+����������e���;_�Հ�
F���в~�i��iEw��!������ꬡ�7��+����/��d# �jBu��+u-���=J��2uH7~�����>V){���I�(���\��EܙW�u����G��GKT�7��^�����/��[��H���}�^�d�9�?������w.Uv������ٔ�&�
��;��wE�L�����'�K�_�'�@y��R����b����C�-D�������������������#����
[��:a��Ԁ©+�;��w�6��
&��*��A�A��G	���W�2t�w޻W�~�o{w���_E�A���ґ�"�Ҡ8޿
ځB�����h��>in���DӂD��B�! �A�]�?
r>@!m�e����%s�������)�G��_$�����҆�]~��[($��R���
p��D�0����X�f�ڤ�w�\�b�
��m
����
+F�8'�k����Ŧ;�Ǫ����hh�7�!�0�@�w�<��䊟�x9��
d
}Y�"���ȃ�7�A}����;U�D�� ����O�
t��������K�;�+X`�0{q�� �[E�����!�	��9_]k�d�Q�?gB4�	�Q�N{�� h�G�/�hb_��D
�X���|
*��Ð*��6�I5���'R�@Q�� ��3
�m������L
+���A�<��	H%
���
�F��30��n�o�uG�k1�ܼ*��A�L�H�*w�
��rwݿ
�0��Gx&$�د���ѐ���^5�4�JM��i�?=�A�>�
Y�|�#�nA������7�/�׼_���u� ��,��C�.:�����9���P���M�o`���]8D��BEj����M`�u�X�~���..�J=B���`9�`~x�
>��-��vx7�l�^ߖ�D��e�W
��M@Ľf
e�����Y��Uψm���]#�l,B�����0��#v��vG<�9
�����p-1�~���?
�"S
4���X/&˕����5�f� ��I��
T��>���h�04�h��.��i&y�瓰7]Ͽ�)�fW�4�]���9TH,ؙ����K���Bi�[�G ���\�%J���A����˔8�'>Y�>��6L� �V�3j
�p
�=6#��bvn���+��
G9���g�m
D.�y�&4�ˣ�����m(��' Z���S��ꞇ�
��
e%�N��Wi�������1bM2
�L�P��lI^b��cĈ�?R$7Fu�o���w���#y�cJ�<�^�n�C)f�?
+�v<{
+뷒���}
�p��'WR��@wV���Ҽ�����
Z�J���dn2�hϖ_'���f�D{j��nj����#"�X"|��\B	��zr%�^)_�/�®*�^Jҗ��oi�~��a������j
Ah5��+��F5D٘�+]hC��(�32����D�싥�C���>��1�t�"�7�W�
�;�3��kpg��&�d|qy9�X�3���m��h����y�̄�x
�x"��j��wU
[_
_�GJ�Ӄ�Z�����Dd�����V�v����q���o]�
ǖBO?VX�"R�����
t�8Nk�
�sh��cp�1."�~�'�f&�<MK�����y��'U=x ��y|�R��x�@_(j
.�P*����bz�lt|p
>�׍2Tc�@����H����W-SN�&'`e
+|_��jŴ7�AKa:�T0�7'��ԝ��xG�UD�S��
+Ú��ǵ\�d��s��OO���Ll'�;���g,x��}K�^c��W�>73[�u��}�#*�u]���V[����;���E�A��}��.7�?pK����Tv窃����,��l?WE˵�t��p&?R����?��
z��L+� �R,�����Afdz���>�1 �;)z4K BIEZ��]����9d眃� ��i�W=]"��i���˹�Qq)앉�ǁ
+�`��ň54��)m7���hE�:p��G��
��@��ܔ�b�8I�����$&4�b$�c�k�ϱ�d�yS���gFk�Q���.�KWR:������p�
���^����Y�Z�m��b>�C��f��5��y�@ ���,�)y�<����1��?��Lb������1��fj��E��4U!Fk
؅L��
� |+[���y
@N��rb2�H�����d[
�>I�n�y�X�F�E��������@V�N_�]�dh�!}���>���B�����s�̼#M����n|9c'����τw���P)#@�LPX��K
+�ƂW
C�|�
��C��.�,~D�V��v5���ui����y#\���/���q��e^��u�q㯝iq	��چ��&�
s��<uF\���?�s8
��S�3[;��Ήv����1 �u
+���D|�
+��En�,��
��q� 
�ڱ�¦(T�����
�-!٣/a�?q
+�:��dH~8�M�PZ�s��N�[B��!asO
rq�P"P�&�;*��L#�}���t
{J4IE8T�O�i���#D�%	Z;���u�|��rZgӮ���2W����>��GW�T� ����jF�[�o�o !�^��X<@�ZLӱ�����j�N��Z鴹�z�i[Ww�y�'��w��fO�V�C�<
�q^�Q߷����Ҿ�� ~3p��ޯ����-�1��FE���מ
҇c%b�ӳ�b��n"�F��ڭ��]�_�9���wQ�W.s��v��ٮF. �i�����G��v
~>$���)��.,�wM-�xx����4���A>#�%���C�凈-]����+��ht+`�F=�x2�
�@� ��L����������n}V�S�G�5�/�`��G��w��fN�z	��W�pJ���>�:�aEԬh
SEG�_�VS��x�'k?Dd��Ը8�oM����A������^�?p#>#���>^���/e<db~�M4jRW��k3\E�
�a�%h�}D��~��w����p�]9� ����(Z�ˋ�S [...]
+�*��:�
Z6��D\�H>j[(~�~��b�f��AOZ�
B'�ծ�����ga
lL	�õ��hв7�{���HT�3RJ�r�Q2�y���Ȩ ߱k�E�h
5F|�q��*��X*��:�y���v�>#�+��ßw�
4ǜ%Iz|�qHi?,�Q���D�=�G�7T`��6�ӝ:�r����nl'�w���=⾘.�q���
��D���+�n%U;�"��_�:��9ӷ(p53�׃���V}�#,�b'K� B������i"�{DS��8X{!�]�앐b>��K-nP��u~�Z�AR�
�d. �FNͽ���
�"��ǥ}M[]�#r�n�M����y
ҔK��
W�I��I͞�V����H�/��*yH��.��9�?��g�Bv�i%>5#TN%�j< �c�TD��9+�W�;t��^0�g㵎�'�(<L�Hprw����c�q�a����7�h��
�B�F�OO�t
i7�����E�)�b����3"�G�j*%���8�%= [...]
5�A
��k�%��a���
+���S�>�̢R�������m&�,�,h��g*����
+�f�~! 5��,��4��0tn���
�ٺ��y?T����ϟ�-C ɎsV�D�7�����S
1�׉0a�����_���i��K����&ڈ�&�
�r-�)O,���3�$��v�EX*O��X�)ʏZ���#¿7~a at b厛�u�;#ΐ~�A�v�hոՁIu�>�R��$�"~3Nk΄��qx�����?�|�S6�J�Z8�
�|����
)z����s��v�Y%z2	X&A
���u|�
;�):t�H����7'�T#�cD�ԏ�(�
����\yfmS�nr�
<����
F�ܚj�Vە��~*v>ScO�~:S̝��kkz�>WX�$�]���49�DžU�d�u��
9�0E�eD IC��-�)`Ŀ�1dN�{T����q�g���8I��
��)<��HXQy��=C�K� ��<�+�?ȅ�
l$g ��'��se����#2�4U�
�.�߳��v ��ea;DUєE�
+f�
��
���9-ҙ��N*�Ü��6�#�~�y��^iؼ���K�H����3����Il���_�
��գ�Y���Ul�����]�Z��s�D�GJ�<8�S�~"��3W�s���{ь�����󵿮ι��P+-:x�n7��L~ٌ���ȻS`�D��WP�*Өƈ_Ԩ���iEԧg�[ƙ��5�Bym���牖}�u������.<E����V��@�S��ə��>���W~�?���a���`w2��f��G��*
FC:�
�+��^?�=���N��3�V��I8���עQ��
z?�qR,.3���~�Mz���c�0���{
Y
C���-"��T��A�P�~
��}�9��
��U�W�w�@,��'�e�F1�t�@
�����u�&��y?i��Jd�`��܎�����~����5��|F	��$A���p�
#�խ)�
��H}�w���4F��~��J��!�l����-cY+�+
��4��l!��]��|ٛDٸ�?%�G�������-C�Lu��t�c�O����i�Q7�����[��y
�s����KQ�ű$���>�<��Dq��f�c���s��f�`č�.�
q~�-8���E��������C���&
+�jT�T�=,w�����˃R:�V� ����C��Dz1;��!���I�%l���9��(f���K���@� ]�8�����w��Q0�RU��+�0�v��M��UPo��w�
Q6k>��
#=�D N�Q���pE��:��$�jH qN)Y�gn�O��H�G�� ML��t
�³%@ė�k}B|�o 
+'jx�&sl13���w�˹
�LL�q��?D<C�$�6��~
v�"
+�������W�H-��I
�V_W�dYCT ����ɕTo�!���L
����~jT�qW����{���
���Ek�FkR�,�-ƾ�=����_�ĉ���������
+��
��� �r�}����_��U��%�l
�-~ܧ���s�_o�:�J~��
+�!�J�faG
Z"V*0�;��XϙLl��ݥ:�-��י�b�ћ�f�v�U�#��f�)���z�R�i�YA�^0�#�au�{
Ct��e>�s OFZ�S��I
z�<й+=���[���G"�ؚ�@��9��*�WV$����L�# �����y+���(#4`����N�@�C����+v١���yKe����5@�O�B�A �[S�
+�F����e�Q˄�8D�^iғ��^�R�I;�ݕ��ș��$k8y
iJRL�mW�|T&$��÷���ց�U��?
�6+�`ATj�Hd;�����~�t�;g��zbk��� � ��k���h|��c�(��T�G�Oi���ƋMk�)��>·⍙����c�L�K9*�2�h@䦝� �uhD!x��(ēA��G/��&*�&^
+Yl6u�wD�?h
�\
+�6�:Z��U�D��DS�����qқ9�|����
Q�
���d*�c�R�����+
S�{c ���t��������`��ψ�`%=lPT֏��97 �]�#����b��S�%{�0<W2���?�γ�Ӄ�Q��=G[�{Կ?��d�_,����1�����z+e�� ţ�v�еF
�Z�[{c�/�#��-�{�=����@nZ9�o��U
��������,Z�����*?
��X�j?}E�1=���
�5�c�=
+{{i
{�p��z�Y�Ӏ"�
D���<dג)�(��
���.�&���8"<��B@
�W�
+����ˌWc��&L�<��|e?H?@#f��\�t�xl��a��Y
�����j�[� �m�	2�/`�"�]O���d�8�v� ��;BWU
+P����~
��|��LiV�89���g/��;]1F�=���a((�/�,��QWD�~u[
�+�	��qe��1�9#�ͮ�?\�H�j&��ˮzʙ�ŏ����E��( �%!�u��1/8P"�'
��>�=�
S
�B5Qq�(�:����S �(�*�׃p��LCڛ]����$
6����P�:�9�}PƟ�UR��Mx
���1&�:�Ac��1�$�˖_��bi�a��]��'kUzp� /����!�bFW��1s;����/m7(S����34h~�%%��<4���Oו�.��(ك*;�8��V�W�D�J8c@�ˇ��/���
�U�[���	�d:���p
�h�5$ՍOf��-T���>e
V� P2H�C
j�X�B�j�à�D�q�̃T2�Ǻ��<4�F��!�~Ta���>�;+*qM:P�@
�M��ر}ܹc *��5ĩ)�*��NH.pV�$J�R6y4VU����A��\Uƕ0�G���Q��P�5�'5x/M�'܅[?�?��A����'B�
��&F�F��\�c�����v��.��]D}	n�Rvt
�s�щF�J���R��RD�AA��a�A,y�#N��ꂁ<�q�znLq��t���`
��
�H��ĨwE��#��
+�T�n�
r^-�	&�.Uy�
��H�&��J�A�_M#�Y��s21���V5EUW����j����S�������� Q��Z,j���"�����&��P4\��	���������_�z��Y��H��0�8�f�Ď"S�ߪ�é�E����;���`��q)w���Qt�h���7�DP�3���g
_�N"~�^�6�d �;�Ee8WZ����j"���OU�'��K� `��l�Ԛ��s�*�~y����I��Ga�μa���=���CO�'�O<&<J
&q�����q5&Ό���܆��v��k�z�;d����r�(l%,�;���(.J�$ȼ�.���-�ԑ 8�}
��h}2�v���H%����
+f���D8� IЗH�a��ݓ��n��

BAE���л
�Qy��g>7s"��>�zYΚny�Kʲ���0��+�aW� Q�ӹ�u��P&�*8EmR�0<o���,-�#u���P����Qh�j��->_ at p �5ތh��!O�–F<q
@���n���VԔ�C
�U�[�kg_�$5Xے�\���"^�i�JثoR��∜6Twܐ������w
g*����0Q{S���@u����L�O��(e��/51D�
G�s q,N��cHF�lM,��[��#}��$((_����Q _��=@'�$^�G80�uD�D#g"� ���^D��/3���D���~�V��2pķ-G	�b���'>rVr���N;(r���Qฺ�v^
f����rD��)M�R
EH�^��X�<*�}f:�0gI��2$�wVY��y
+E�0K�F�
���4G�ro�/]�����|
��[b~�#j�v6#:�����
�R�'�;<)�̵� �D�E�C��e��L ��9�w���}0^��N���
�NU,/
+�7uF�
>�!G���:1�q���*J��.��U�&���L��W�Oŷ�����
�+�PT����w'
+:T� ձF������ |�]4tz
��[�wb:SHj��EV��
5-�ͿU�7�Q�p0����`h(�M��#v>Pr)p�:&d�
+?
c����>�F_����'��H2�
0 	��
��E-W�(dh�
��tG��
�v?��1�>��jGن�ޭ\�!�a��aB� /A���뎧�ů�Qu��{YKbkOoG���~R�S��5<G����a�2���)�(��y(���@�#mt��W�k�Tb��[. at 5���̛�zI�;���L��C1�E��<�>m����9�
��}�> �v|���$Ϳ�)�xNc��o�vm�}�F
T�.�ƙ��W�w[A�K�eJV�9?$?��0�����jz�]���ԗ������]�hF��a٤����
e��kLw��L�nN��Iq9?��
5]�F�Y�q����L��`y�s*Wy��N��Y���C��/��b�
���xk�6
�O�Z�JS�	w)��~��{�5}
�E��]6���
t�S竟�[�/�9k�FZ��LW��=�%�FO����Z�0#�2�
ۼ�����Sq�~�y�Q��U����>L�J�4����ڰ���8U䊘*N���XB=���e�g�,�����ra���1���Q�T�.ΐg�qa/��+
��ʌ�(
�d �GT��+qe�k�9[T�Z�,��2@���
��p�G|��=�
�hk�<^�~�2'�LӀ�.Gs(�L�{�C�>ˁNު��?LJ&�fG�
ti�~G籷�x�dڹ/s�3�g�.�C�W%��ja�B�oҲ����Z�X-���z�blyF �꼑�/f
��H*U�[9������|au���Wplt	���7O
�s�)���x��7Z�C����(K��5'~b�k�W[�(�5
�3Er�3�5w��]2�Ov�T�g��Yܠޡ�4 
~�IO��<��
�]����z��]�mmv-{��%.S��
7&�"�2	
+Ɉ��L~� 
+�H���Q8���>���5˚����c7h|K][��47�*
��KGp���ԝ�I{_�6�v>a/Q���xA�T7������Аz�Y>g�(�>:)�jkO��g-GZ�3OQ[�>$k�#d�

����O�
�*�����6�����
�Z�dr�W��ǵ(�)�
3��	�i
u�[�T��y������(K ��U��_�Lm���w�$�ɗ#ڱ�Xt8g�p�^H"r`U�d���F�W��������Q׬��f�J�
im�.+��K� .r(�"��L}*��v��fPڬ~!9G�K��:��|2�!��"%���a�
#���tY��@�-�Dh�A��KWG�}�n��S�l�J�;ޞ�h^M;��(����b�4f �"��__!�h� �r�d��8i
+zV�٣v`�U;��
Uw��(�Ʒ�e���Fɫ��<	Β�����Je��KԝRJ��]�=��s?
��F�� ��*��J�@@c��ec�yа ��]�9o
̺���>=�!�oo�=7<S���f
~�9
+�1������F
��0R��Cw����Rr��ݔ�|+$d�#�ӷUEJ�˪2��7�JX=�	�j�����%� ,Fv��
�.�m^�}*�Gj�~w��WwI>�A.��X�d����4qNMA!ɢf�QjQps�	���P�
x�J��X[�$Z���+嫆�S���GlZ�
|��SL��B���;�GpM���5�2_6�9S'%=Z�����<0���û�6�d�a��fgIs����u
0�q�6j���3�
W!O��������2��1/3F6e
g&�B�
8ǿ3�h4�Ok��n� �*5=����z\�9Zb,n+l���
endstream
endobj
228 0 obj
<</Length 65536>>stream
+�;z+�W
i�2󎟷d~~:�^.��3�S�"�8G>դE���z�l��9���n�A�CP��11��!F��"
+a�;b�*fq
�mn����V�

tˮ�z�
X�k|襧G��cW4]KW�@A��%�V�
f��mT�c߭������ë9_ɾ;E�~�Kt���}"h�v�<�����iu|.��E��������
)�W��[��V��i�
;���ē�\�\����=���TIL�:��g�%:�͉/P
5�Ӡ�����K'MX��~f>

�r�I;'X�O�����G���Ҕ��j��ށ���A����I})���j�K�Z�4��g,�9v�s�کs�bzn�4�`1�6O�+��9��b�Q�+��;!L�}�I(���6
�v"�{���q��؀��Q�3�8�W��o0�u�1xAϗ=_��^E���(Fl���+��Q�k5�]\��G�K�ؔS�NE��^I�&����x>n8<=�JO���=.Gj]��qd���C�r&�"qw���{���u����b+��5Ax��d=�V�
G{�K���P@�E�
~�Z��k^(����u�QD�Q
�y�8����xi��/�15k�T#�5�K�!D������40��Q@\�$�*P���5�`P���zN i�^>�3���fϯ1��D���YM�����Iȣ��
+~h8��{�iu�ѐVG��%�#4�����v��u�i&� ��V&�F�r��2jM��,j��L���&^�M�E�^+
t绨���@��!]��o�A�#��]�>�k�H�'�:`@TO��;-����,P��lw��~��Ŕ��>�UN���W�z�p2&����h�~�cx�7��2<˕���b��Գ)~O"���d:��
��^˘�Z��9̓�6
r�_|<MB��FyW��)~��0 ^qe--)�[!�^!�LEU�}��ٴ�8�[
+UW�
l��-��nC��y�n���E�A������^�u���~h��E�\;=-<�a��c���
����
������AGc��Z�Ѓ�Yd<:�!��{�1�fxF;~��(�G�fp���-���������̴������3ID��w��\Y��3�t��hpy� Qg�6�ڊ�ű��B7���K9
�>T�&b�b12z�����иG at cם��̨�Y51U��*�Kd�*�_Kf)+J� rNtO�U(��x�ぼ
��ρ�C�1��\
�`Ez��O=4�g��V�nӻbb�EF�����Bx
'���h�>��_�1B
4�(6�w)��/��M�*�0%�����~����@��S&hR�=���;���U�Tw(j��#�+//ީ"|��'Λ��� '��ͣŸ���1�#���`	��6E>�wa�#���R���l-�?����b{���[}B��_~>����C-��h��H��|��(��'{
����=Pͪ2�N*`H�zw��[��xЁ�9��c��$
��Q�m��}�pr>�_QCh`�
�(�@nPs=�_�Ja�,#�~EsOS�Q��*ا
ȇz��a~H��_Y��"������@�����뭍�NQm/lH_w5�pc��9-W(KbNs��;��Ҧ���@��QHֿ��8�Re���T$1����@�����a���Ęj��zD}G0VH�D��g����@D�_@=
��  �r)B�
[& y��/N��^���n,��%���K7@�A�S��u�^�t�
+9�t-2
/M��)+��+6$�k-QƚO�$����t<��	`S"c�~�)��o�?QJ}���4x��F���u>g
+
t� �}�����[MD�&j�C���e�az%�J
l�X��i��f��3u�pV\x�� ��&-�_���m)+˔��= �[��W'�
+\�(�cڔW�z�r���YEF�3���LD���:}�L%$L�_�9$xҪ�װJ�WDg�z��U���\4�^���P�vW���eZ�2���py|�z9�-��3ZC��B���d8�l?
?����1^xO�
E��v��3|o�"/fr�ڕ$
�	B��}Ή��}��*r^=�;��Y����֝

=�SWW�!�L�y�Tr)�
�rG���=$	�3
��ڎ�ȘIL�}򍔍�&?C��
FY�ᛉ
�~3�u�/L<��L �S6C.)@��P�j�3�R�@���A#^��e��G���~
+ћ��kT�k��+N�t7h��`
���f�f��ќ >�
+�ɻ9D����E�:�|eT�h;O�>���@�������@��R3�?U��u*�ZM�`��es���kkg���F�=R���ea!��@ඨ�PG��P��[H��<�Ú���x7��Al���k�rm�ML6s\�,>�g�e�ʸ�-���]KЭ����_G�;�]~La(_�|�c_�8T~�6qץ���AAE$���2�%��Z�t 
H�����aU��8�a)�o��G��D�IW`�ࢊ*��7U=�eZ�0�cاB�u�h���'s��ju�d����''$Ѳ�.�������'R_�rKQ"!�Eנޗ�L0��7��p` �v',�LL���EoiO��@2�
&�@��F@�Wu,Po�1ҝ;&W
X�\
X{Z�
+&V�d
�M� {��F�m�5Ѷ�ZI�]9j
+�����0���mCJ���k7��7���n�'�W�	h4����s�r���&�@
�_����|�n��YD� U��V�>����ˆ��#���
[{�P�x�"w0]��{��bM��~��]{��OMҭ������"�(��\%�.}��y�]�0��G>�p0���R�t�}�� �Av%~9��!I���יD�^>�XxN�-��1�滞��Ы���%�M̻��3J�-X�
�ƾ�(#� �T}ˠ
;*��9�3"������u(�7Z�̹_l8�,-���cY�.TZ"�m�WX�K��Gdc��uG�2 �<v}�'}��#�\���_Q0�[q�K�B��u+�p����]egN4�g����n
��<gZ��K]R����d�XfG�����k\ʵے�%�h$
 �>�djgz�����x��눏��䥄�Lĥ9T_��q:�h��鼐 ^��5��ct&���#�N?��<[����&{�ܰ��z��Y_˥V�D�%Nꖋ'�^��e�ռ�� [...]
+�w�(���#��)�f��pH.��=���\x�N�������#�e���1[gb�� 7�+I�K�ȉ@sҎDL����jk ��B���3%
&������<`'�e��˜_�c���Z�ٺ�oq!k��>T9�zx���ll���r޵�f<�*��+
�2ׁ���S�J9���װ�Ž��W¼�\ ��Y
+M=?�Gݬ�&Xa�d�2_��[��H��h�3��
5g�z���qz�%
F���K �=lt�$!fH��U�`�#)�W�k9"�J�Y���T�����ུ�zT���u�o
<�����m�sLDLd�F�<{�d��C=��
31��4!�������ҏ�_x�?0z�~0v�TU�Q��"�b�ݔ3w��jb���_y�\��=jiܨ�ƿ���;��\�}�˿E��W�zbuu�r
+Y�(�h�=+���w8�hT;�C���9T
���Ⱦ;j���bQ\Ŵ����
]��Q��3Eϔ���},
8ƕc(GϠ��z靕�e��]`R�#���Z�JL�+Ema�ЌPT�	�V5D��q�n?V�L.o�.W���m#
�
�̰��
��4�
I��}��
��
�����'@1u�Pj$a�����9%y*M�]긖2��@	hB=
{� �W��;��B�f[0>� �k�K���8��Y�=�8�ڳH�w�,z���n'�����@������N�ʞy
��Xک��� Ȍ����>��? tg�
��n�y�&W��:�r�,4�
���y!x�r�Y���V��ؒ(U.f�n6U�U��K�3���0Y(�ə��\�8��N��-�U0 �q5���g���b6����#���
���yh����b���R�>C�|��"Q���KN�׫��.��KC+s!�DO�t�ğ��Ϙb�φ�P����s����_k�-,��L�2���x���t���p~"s����s"
j ��U�v��nq�������C��W����bp�Ab�Tڙٱ�"<�Z�/Qz	
�
�q�n�6�����O�9���R޿G9�� ݴ
- P
�is3�l��` �d����=��N�����96x�}`�\�险��s���zP?���#�z M��_���
�2Ԙ�U�r6����]�.r��uvq��*���x�E@�m
 [��H`
+
ѧz�
+�l��:
���U%�`$��ǏȪ�����H|� �[Uѽ뿫��&��X�]��J�[A�Y[*E>h*����I_��>��]%�G��S��y���=l�O@��-�&6N
���3"]�p�?>�
+�=���g~0ߌ�[�)zd�S�.����Et�Wg�(�7S�Di����:�|J1WI9$NK��Yt������6��_Ɯ�`��qB��KpV�`[r>�9z�ҫ�N J0u�Du���%�%mN�O���5Ń
�q�������B9����Y�E��u�)P���
9X2"L\��]
e�$
 
��3i�A�z��w�fGIR4�
+_e'DԎ��WИ����>צ�3�r���*�(������v�LϽ��>�j��(=@K2;և��p�g�F�`F(yϗͪ=�$]ى��h��jW��u�hx���
�]\,�iW{	�j=�P����OXq����(��D��e�]�abT���
��b�t�
1�L�`L�\8V�D%�s�Ț%��Dbrp�s�v+�3��#���5IG�<�B���Ύ��^
+�����GK�Rݦ�� �V
+������,Q�v�8����D�X���Sl?	1��
cF�xD(��e���8 � w���|�*
��
�i�u����1NTY�(	#�
3��Q��ze�peќ؊!m=��'�����@���w��܋ʛ ��ӡ�@�s�A�x��5Դ�ߗL��������ʮ3�0g5G�q��k����Ut3F�{��[X�h_ Qt.�
h��(U�_>�X�u�:�D��O�bO��#���D��N=8~�mvŗ
��H�6���+�I}%���	�ʎX�dr?:��.2F x�N��~M�2���
���/D�3��T�BG	�Y�|w
+�4L�GvQ��)L١M�¯=�~��T�DK&��u*N�����
��0S����AR��*�Sx
��Q+l=�+�����K8SS�RL�N�����މ
�����3Q��B�\eߏ�
,&rhww��������c��Ľ�c�Q��f��j��7O;1����
�-�#,����+B��"��
g�MΎ��hɭ�4mW��<:�����;��]]8���(��7��3`zT
ॆ>��{Oʙ��툮�3�X8���]}

�W��-�[Ny�х-�]�pb���u6�k����&o�#��i���}F]�עz���AN.@�MWU����XT�|��<���pD
�k@6����N
�
>>0탵s�{���QP
�Ƭx�*J�O�dv�D�F�UO9J(8G�p/k�u"r
�6��@�Ϗ
����=����S��ʓ��!�C��'s�iR��<�(J������P�(@�I	�I�p?SbV
p�E>�
W�c�e�vt��%v������JE����������%��Uv,��8[e�����.՚��U�

k�*�]�=L�z�w�:z��d�D���tG�}6<�o8LꙘ!}���յ��O��&1�z�l`��(}2�Y��
s+�V�7x�?���8'�kIp����oiuD�w��^%<��_vZ
vv���̎\�4��*�
H���cq���"승�_?����
;�C�jqy��lFj���U|�DZ1�#fdaF
B}�h�
�"�yy��ɍӅ7�t���,�ix��;}�s�U-���E�
+(8}��\��L��g
�	��X�wO�}&P�l�_ǩ�G�
��z��Qj_Ǯ&we�A��.�lP ������l�?��
��|A��̎��j�
s�۽j�r���*�Ֆ(��0��n^*
�%2���dK#�+��3�v^�#�
�3
+j'Q�\�Q#�NOKk6/rL�s��~'& �v:�W朠f�r'=dC���|���Q��8�]1�\�
1OBb
+���N�(̮�cE(�:Ӄ�T� c+xfE��$�����#�������7 �,�1u�
�a:���L<������2O�]�5Ӥ	�vg�hJ��zT�z��]wc

_X����L�������ԕ�Jgl�
+��q��l�<���
+y}�p�c�kx��Q�ؐC(��(x�a��?A`
g>�����;�8V~	�!~�<�(�	q<Y���@o	A�@��3 ��j�q����/b�Y�
+D=�qL5�<G3�j�Ƈ:A��;S���c�t���CPU(�הf��|��
��B�*�?^��
+wߛ0���n�#�{���?�'�VAHCƘ
w�)�+Lcj>�ђ��D��C"�|���j���f�Ɔ0
�rC%��
�땕	9�8�{D�Y��*�dH03_s�l`6�} kP��P���NJ�,c�)k=��GHd��B�?#r�#24�M�Zw�H��m�� ��%Q������g�L�(��i�#Jg�6�l3Bm��#��(@
�ɣ�.�����Lpfྂ�����
=�D�����W�e��� �8x�I>bhC3�b~�ܹ^-����s�:{?,�Y��!C����;�m���p
Lx$���V�_(Y�p��1�"*p%��z�O���߻�DYlD�f����tƉ�P�����E7�?�>����Ƚ�A!�
p��8��'����I����
�v

�N��/y�x|�,����Wj��XR6�0Ñ8j�
+9�����@��EQ���1��Q���+Vu;J�g��봾r��7(K�*oV2x���
�Ϝ(�a���jD=�H��K (m��b4��&k�"3�/�r#/B����U
j��~��,E��$Z�Q
+7$�{<U�Vl�M�0��
Q�X_ܷq���W`פ� �	Y��25�)��L��7yl	�8	ݬ@����8’�x�1T�4^=
T8�t��9t�x��T�
��	"�E���]S���0m�L�^���8��OW�_m��(��(���!�o��,���Ԫ��w��} Q�Fid�KS�!D
+
�gr�;?#0O�3<�xK�Ϩ;�N�X&�Qb�/�̟,y�~6���E��n�����W��~
�N�bTO���'�3�ʶDnD
ӛ�$u��,�U��Ŧ�:f
	s�L��(����Y�g�����
��;ƛ6�g+��?
�}�:�dW���ψ7ȏ(�H�ƋFT}����-L���Y�
� �c�Gl�h���������B�x��v��<��w��L6�Ҭ�7��)�l,�
%9��}Úo{f
#z+�Ǭb�n1��
�;��#�Oɵ�����@OeWo��Y��=�&Ux��
��8"?R�;
̨���JveP]'�fA
+��v�P�N�J�p(#։�o0"���t]!;
�;2���t�C[�€>��R����e!��4-ᖼ�~L*���f�T h	 �N�h���P�y�'��}G�Q�k�F�
�	���7cʷ B�D�a��,�+��iY#@�Pt�o�z,m�=���]
?�+�0��Rw�M�R;�"vM��q�������ۮm�q��|�uc at j��<.��r[�V� ؐ�(�d����EP%	z{��GDεל���"w�\9�
��Ȉ�P�.8�ߍ�i9!&6���M1q@~{�C�d��`�/�xM���}��%�VL$qG1�γIU�&��E�WSL��xR2�@`[,ٌƌw�!�=�{N�諠s��nSO��	J|
�,
+�ɘ=�8�T�ld8o�&���z��=C�N|3�ua��
��A�g%0{\�T�q�p�HQ
�%����]	By�l�4#W��S��o
WZ�;
+7��Y�Gg[�2�c��`O�Kr�
<j�:"%l��^	�V2N
=d�
�)
%d�Xz���!��՞�\�h��"
��	1��U t^s�_+[�Q�^6��	�����O����\�z�R l�j����"��!��dBY��S�X���
L���='�o��M2 �0��'��\VI&��
�N]�(* ^p�E#1��W�T��~OAz`���B�:*�2K>N�
��S��#���T�3��LھJ<�#
Wb+�`�1��-�xx���.��u��
�rB���GC[9
);SS1�qc1���JSoӘ�p�4
+dVV7ʮ��܆2�y�(�P`�T���u�v�
+�Q�&N��
�X�TQ��]L
+ at 5��
|
��I<�O�@�	��(�C�V�Ƨ�����5����a�~`؁p��x�ׅ�_���s^�i�s&�D
+���
薌B�k�{{��g�l��8�a:o��/`K��
_�}�d�%M���dk2
���~X���0N�������>Z at Y9���6�Q3�!E%n_�����
,��_�&ܯ���{�Z_
+s����R��&�{iM�;P��K��*�U�Mŧ���~�̞���5B8���v��MĊ�\�?��S��
���	N�f��
�_g"�*jX�>԰���^��k\,�*ua'D��c/�� �B�;m0�l%
M�ݤ��$E�5,�;+�,�k3���b9���\���_亟z�n�B�	\�z��rc:"s
9��H�Ȅu	@
��$���L`�"�
Y�2�1����E���|-7"CL���:̬aP������T�sMu�Q�����1�-�PK��6Ș�?��TF���偼�GGUI'  �� 5&�JM���
���6��"	^-5��n�;�0��OJ|�c��e�k�ǃP�H�i���Ǵ%bw���@�A|%y!M���/{�2̱*�>��q��!W��O�K+�� �H"����C���T���0x��.
v�qV|7��s����z���2*�OS
I�9K�r�����a�+,�2|P3�
��]����p2~u)�+;�� 5a y�4.<
� ����Up�V^!� (8�J�
_U��1:����
g�!4#��LZe��@5�di�|���5��LQ�������3aeT
~�F�P�
�z�a�D�pZ���`\��u�;�|��w"%XDu�)1�lf�E��&yXT �o=��W�e
a(��^�ӳYd�-�@��A!��S��k��b�c��ts.πL�I���L
+CL��VwgrN�5bPC5s�*5BEI�Xr	�����M�q���ĘL�[�/T��	GbƁpd���2O!=0�gjL�t& }������8��T⪎�]��Δ_u
+k�C1PV:A�R��
��KA���	T��T����-aJ�f<\��,
BFP֨�L��{	���?*3�m�Τ	�z� ���hL	
�DM2B�yMc�װ?��ew|��ϡ��47��Dh/wAt>�*�ʆ�dR�(���rK_���M{�

�?���/o��U���ܭj��E*#��O�I.v�N�W�t� �uޅO'“_t�f��$�/���c��z�a7�[ԇ�h���T���q��"
&#ʜ4痞�R���vSVѷB�%p�"��^ey�����6��2���=2
 �g�	��O�E�E�}ف�K`��e{䉾��Э`y�hI'����A�I	�`��
�\"�ļ�`�H�ʒ�ʬ�i�
�)���gJÇ�{ �:������jA��^(�(��Z9$�$��ޡ"@�B�2
�
+�٢�����	�.

�!;R�L.��*&��Ң�K��
+���Pr���BK.oK���]ߡw{>�9.�C���-U������C>4$O*x\q
��?������0�s$8(A
�N�KD7�݀4G;߬n��4��!o}
Tu�+��
a2�FW&��8d�E��iD�Ɇ�q �A�^�:�Y�!)ʹ}H�YKD�R�������O��~'�����ZM�%-�{�
)'U�&]
�YA�
I�<
��
�a]�o?���c"�D��*��?8X¥�����������'�������?��~���?����_���w�ݷ������~��o?��������/����~����I_���~���~��w����⋋��
+~F����;w~�8�Y��^�L�AyJc��
"��v��y\��䖤����7)
I�1}F�lZw6�(����MZ�r��)�T�:���u�K8��
������@��A>`|�@�v�`��t 5/qئ�3HV�4I�z���-cT���9ddlt at N�:К�B�_�[�?�p#�$�/Hb���[�$�� 5M�ӄ=@	�'�
u]m7F�i�?»�
+��o�T
K�\I� �+A��i�d�:�r���?߬<��
��2�����Y���-,���.&�:�CN��]4���0S���1u�X��K�9%7�ě��i�+R���6U��i ����Z��Ą� ��
X�筒8��ZXKrS��6m�KjMx�H�t5���2�Ł%��%9K�!�����q�<�����"���"3*�IJ��
�t�*�8(�N]	X��|�_��p��z
?��׵��*ZK���ԕ���3��w�Y9�@�ɝ�d}4��m6�=�,�d�
+%%bVd0��2
+��g�G`�mDyj)��*1o
��U?n�y;�
+Th(;�GqlI�	 
��7JHl�$<�s���[v���������|0	s���D
�����H�
�o9�\4CE
�|FHz�@�v���}�Y�r�������L�7KUy�(B<LF�Z�h���J�Q���l�.~
+`��W���	3ƫf,��>t���W26�.���7�P��J�����ʇ�
�6�|�p�`I2� .ӽZ�|�2��#��~ng4A�ʋ��t�4�~ė(�?��e�D��
U�Ͼt!���u���<_�ijg�Z�^/���:�8A ŹDd�Ϯ����4���M�>C4����ΔRB(qֻ�
*#�%C�3`6=-�!ܻ�E���0S�����'m>:&�a�n�_P:][=�"鑳h��5a�v�b�#�Gzsp���g:
C6��N��;�@�z�i{[�	/�
���.�H���4s�/��7�x���c�$FL��C?�
����y�͐B�"�߻j�ښ<
�
8D��3[����y�z�NB�ߍ
2C1���S�sw��nGJ ܥ��x����8

�
�����ӡ�b��$�	�3�q�0t*أ+�6
2z��;tE���0e�j����;ϲKu�oa��';kr�fK��we71�=&�f\E6rW8���|��{A�
��� U�Hm������{�Ւ�P�2���.�����q�z��˲�hX���
hGq���d@
(�B$�^Td��Lݠ� '@��5���`�R�G؂��@�l�LV��L��[��3�ʬPYE��ʙ�ea�b#|�f	V�*��zz at H:�Hsu�/zh	k �����ܾr��+6����� ��i���j2�i ����-
Uf��ʶ�Dl�L@H��ہ.��Y|}�Bݰ���Ģ��i�������3mB��!�Q
���������|c����׫>
�
��ޠ�Jv���k��u����V�`'x��d�恄=���2��^�5j
�K��b��"�tѸ�f�hdV��>��ga�8��1�QʌA�%���8���H;���mE:m����>B�<�'|^��*DzT�l
[�'/isK#�Αz�n�dV��*����mc���lV:Z(�
�u����Σ8��N5�"���~)g��fz[�a/�I��Q�G���~6��9+��J�uj*"���e�k�nm;��{p.�ҹ�\��>��X����篦ܿ_
�'�)T��7Z$u	f��`z
XnB��=
��8���}��ۖ�Mq+�&��Γ�Ğ�ԛ�##ބ��dÉUX�� �얷M:��xB��V�`��rfz��ZF�[�=,�hM�Ē�L�g��@����K2[Ҽ&Q�O,E�,���B��r�̊�&�u��>�:U�Y�E�=�����Rk:�
A�?��у�&zJS���i X��Y�K�"v��%�Ƅ\�y��
)��)g���C}R��S�s����]��sn�r�
��
OFբ�>�Y��g[DTbd+�X.\jv)�O�|v�cM����
�ģ{2���i�
�^�����
�q[<z�� ."V�0'�.�RKRMG�bԢ���V*�V\4���L�U
+/�!?1�gt�h
�B�\Ր����Nbx6��ڙ4���ͮ;i.��Z큀�I�}X
�4d
Y,.�G��(9���{�*ҋE�Z)(�`JV
+P��3��kYz������*�Ѭ�5e`�8
Z`�����[��+s�g�SS��jXyT���,krecI��,0����-.67�b��y@Mrӭ{�7+^����iN
�T�)�}�P*�j�D}�����c|�=��J��`s�.�捪=����y�z5�qQ;��˰�^�R�D������K.dzd\^gE�R=�Ӓ�V������@��ph<��wi��~v7��Idΰ�G����
gH:
т��\j
)kMx�a���>�/B�F��6
a�.L-���\��E��7K��E�R�rr
�v�O� �LH�l��Ţd+;̐�	I���l%:�
��m�r1��Dq
r��MK�� �J�g���"�
�ly�J��=,� �!�b<!�
>��&{�l[��)�� v��J?���o�}�P�|(0�0�ӳG��;sE,�p������
������C�h�9��bh/z��
PR�QUo��qyՃ*������
��^BT�0%�Jƚ:b�
��]�4�r �"u���s�x�_�y�Jn��0K��xtʏM
ߖ�YBx���'�r���
�a�z��6��f"z%-����Y��6���O[=�^��}lH�Ed�
r���Q��l5��P�i@-9�[S�FA��<ZQ� o�3����_dqT6;n>v�G���# <�꙼���M�7S��`D<�޻}�e>w���#j
�_��Y�̳��3h�ȩ����ÔA�F_'GF���P�2��k�	;t1i��Z0���{�-�����./ơ@�IV4�.�iEAZ�L�S��T!A�����>zI
S6��d]�V�!�m�������}~,�|��H�;ħ����_w�(Hc$���?7kT$z���������H��T�ko�4�>���l����n����k>���D��^x/�&�q�M�G�]�H�O�Y��
�y;�!,n1)�pr�C�ﱍ2��n��r�i�'rQ.�M,聙=�6	BT��Q��=���bxf�ȣ���N�9*��c�����������\�b�h�
?aQd|^�N�g�P�"j�ָ�.�/b�O82�U�
����x� [...]
�7�A��`��s�%�0/�H��~�K���٭�Xr���
� O���*CUƢ c�%�b%��[
I�^#�O
��鐵^�@�f�g��:{�X�gϤi=��Dt �"6�1%�ln��!wzu�
��g:�
z� 1��#I���P�%�%

+w�\��A���
+M�]��nެ<~�2g�P�A�h騂g�OA@��I��� |��lA?
�?��K�r q�
p��P)Y���O�xh����
�gB��A�����
��5io
�YLڇ�B+ْ�n��rr'Pj�����y�6A~�υ�4�
+����,}��!m�K���z����@#%�m�qF9w
�-�C��~�S�2�E�����^�qV��K�A�eX�
(.'�winx	��,k�ɉ
���Y�<�dH^�nyуҸ��~@K�"��QD�e\5U�|1�xe�)�����*���MB��
��h� �,
7�UF�%�s������$�#���)��>��9w�fh�N�����@��%I+e�Н_�6� �V���6mہ�Z
���
̈�8��B�Q��dQެ�d�F����,N
`�,��d���pHo��e�;7b�yf
m4c�!M����^��y�X����R�9���ԝ��_��I�.��;����p�pR�P�`88(�ř��� x�BTt#�n�EF�v��>�w�Z�>�b7)
���*��a��}�<��TyEY~ga���RR*�W�H��Ӽ��ž��Ң?�dX�E�����\�{'�-��
*6�`��j�D3��JZ�]{7'�nK�~� T�
�*��<5�G�"M�%�-��0�	�6lX7�P�MEV$��x�UT�q�h<6
{dYf
+dB��L�R/�FF��!�D%�z�PRg�q�+R���q��;M�`��'=@En��Jh����a���r%{��L�w%�1���W�^J���d����
 ��k�cR鲸� �
��I�:.|J�N�qc�o���B��ءL!](�A�Yd1��R��2;
+���Y�R���+�c?�ǽ�<nHbm��!�P�${�>��(5��BQ�Ts)��젺tl��UQS�
�����@�j��4Y�{��`S�"&�]Q�2�(W�'��B�|?���0_�d�O��.�`�#���o��	�{PT������D݉�4J��Y�H�cQ�d����������`�:I�FQNG�
��Uh��
����i ��^�U���$���$��
�r�����x������=W����[�����X����k��H	�Y�Eض�<�����
7UM.��3��ܤm̳,�&_��v�7���G�)s�B��,*'t���.U4x1�[5��;P��@a����գ�v��;�L�(�g��EGz)8�
���Hbg"!z��𼰗��4=��Ձ5��S ����R$
�uO�t�
+tӸ���&
A���97`!���gC�#q �����ੇ=���8�^��X��,]
jK��Y^��{��=��S/�ZD�
�?�7]�+ޮ#!��"#q".JJ ���IM�c�_;�I
,H5�?
܅5�C����`s� Q�L���^��C1�
 �e���x���"mI�E�ψ�>w�0d�0��^j����-R��ޱ H��N^�#�xآ B�|�l�'� �S��&�A/~l�+X�,0� �����A�,끭��˯z�2��<a�Ǚlq��!�
@j�:�H�ʯ���h#�C�e����t&��]��B���\�L�x�ܩ��Y�Ob}�W�
%�����+N
�E�����[���y_\R+#�_5���!�\tw�M�l�l��'����� �Ly�
e��zm!��I
�`�8 ��ΫɄڊ	���˖
�
zl�ݹQIZiİ���s�;m4�f7�� p��s!,c��"W-:!^+��_��n�t:�P�Ht� 
�D�S��h��M�������-�V�c����
�f�i�=����U( }��fB�~��� l�G�@�E?K!I=
�q�;b�j�
w7�N�H&3�4/��W�<��!�F��0�/�v�|�M|��+j��M�/=���do�'I"���"��
+a��¦L�@��c�^)���|:�o	�E��IS5���?!Ё���������#�A?m
+Kb\g�xvd`Z
+; ��ISb]��ԜQ��I�6����8�q�
�hc�
l�t�S��Ql�B�#� �~��̦
|ny����v�@s�@��} E��A� J
�1�D0 at f�Gg|-\�V4	�����)�$b4	���ᦞ	7Qv�
L]ᯆ�;瀉Γ�+:O��=�|��(E�n4��$t1Id��<
���aB�����3׀�y[��� ��[O ��V�J��f���
+	��A�E�
�)�
tE ��[l�
��n+�>K��̼�烟�Tg��y��^w�h�ƴ��Yx3�q ��i������� zլ�����@�~�d�`_��DËy).��!��O���i��
cB
#	�MvC��QI+=�xZD,
����Nc�^-^i
+K��
+�,[����Y���
7]b�m�6� 8ڴ�&�V��,�`0����

�(�+�!�*
�i;�J��lk6�cܰ؝���%hS��)����cE�'��a�W����I,h�t�mFb Et4��Œ)>�@bM�I �hx� �%�pN6�SK�'ی��2
T�q����k�X��v��1^�8	*��Oz�j�S�d?f%`C�f�$MҼK�tq�1�1����:������ܴ�ܸ��e����U����%���1��s`�@}�v�L>�p
�S
������@�*�S�
+�c�K��{	�1`��7��7�Y�����1��x$K�m��ߨGf�K�_��+{'��!&����=���c`HS
@��� 2�v�٣ٔƛ"!uH�z�7�H�/Da�I����OC'M]�d�t	��|*)���C�fY�L�^�0�8�j�;Q�J��Z\APS͒����
+O��J����0ȫ��`����
�+>>.�[d�����DN�7Y��W�9���G�H K�P�����W2�:�f9Yp
��}�-�O��BI^^}�k���
+�'�
_�:{�-�&dO��B����0�ފe��%�	x�9j
��a
a�ݶI�Zї'!a�*DV�ÂlonL ���z�ϡ*4��耴��R�������v
E��u�
Pi�����沃�F17%FN���*�cj�$
� bQV\���dLʙ"���g �Ӄm�U��n���S�v
�$h#� p�m�K]�8 .�'Tx�z��hHC�]F{�'WJO
�XgE
�=
M�\��"h"
+�E�
I�2re���~V�&mT�h�LL&p�V�:=�3��O��1�#������D�
X��ܾ���v������BF��
���So��j�ɲ�6\��"kE�A�?���6��!`S=Hd*۹�z������ �|N Q�[�ֲ[9�^b�^n�a!5l�����!�Y�L�d���E
d�����3m{�$��;�)\R���a�&��U�ߴh2�E
$�(t�[XSf�x�M�g����/^��
~�g�$3�%��
;).���Ftp���y�.ǼH�k�"��__������k"g�"��ɔ���
�Qв(`*���w���m>�æ�i�
~{��-r�����y���PIcG��Лo ՞��y�L�#P����:��<)-�APd��%�u~`kR�ZC&���L��<^�z���z���,�X�W��ԣ�
+�I��?
���8�~�bF>J1H[�v9����FЀ��&Ǖ>f�O�q����l�����H����e��B�5�~l$��b�+���i|��Q;�{f���{�a圅�5���B�N����p��Pa�SH���P� �@n�H��m�'�p�ہ���$i��YtԄ
�.���'��s��|
��K

j�L�!/bCb��4Q�aOn�8B~X�x����D�{���l�@��:C���lhR��O�]�/��H��#�zKI�lpo]
�>�4`�t-N�(���Q��:��8��"�'
�{��\�FE1�{��C��ڢب�;3��An�{z+}(v��J]��Zu9��i���6Mzp
+�2-k�v����m�F��F5�MV�E|��
�%�s�A��Cb�F��C����"�9+������CS��9c�d2"1���L��wT�P�r��Y�a��ө��MH�y�3w҃��cP�6����υ�
�z6���T�cK�
O
�9O����F�I�d�iR%;�.C����R�3�����q25�Z�p	*&O�M�3K��~"���_%�"��.{�`f~#/��
iڣ�ϒ�|����U-�g� �!�1MQ
+�j�5`%�39� 
�
�J^r7�����
Hg'��
yl�LC�8#�T��ݡO�%��lmV�=U���Zre�.Cbn�xX�a�`�#���f-�k�τ�.�����X>b�d1�������� ��s��!ۯ�x��vP at S����d�G{�nLñŠ�b	s:�Wg&�
+���;F6w
ud�3K7�L�a��2���ő@�ը�+͋�GQ
�K�z���0��2e���i��� 2�đԐy9)�I*�|�����[ρ
7����̰
�
+��rwn�x��<�A��‰�:�ǘ��y`�K�`2�
��q�I���h�C�%%p����KD
+T�&a<
��$Ĭ�LkHL��� �6_f�
V:V~@{`
+�U��?�,�'J�p�χ����{�FuAr�tk8�L�T��b�TB�^�qJ�nT���
+���
 �������m(w�X�; �@���
ێ&�>4 ��D�����v����PQ�]�z4�I�0� �;HW��aa�֣����*���U
��Gx��(�IϚ�s��T�D����J�J*�m 3~@�
�ʨ�D:������٫A#T�w��h����`w�Ͷ�V�(*�ߨ< ��[+�� ���['M��7�+�������Ȇ1p��I��gY��
 �Lsό�i�T�UiS[)$�$ц
�"
,�K��Y
qj���-�6yU-.��*��%�����/�Bl�|�o�j��jh�e�8w@Q��,���↧ڶYjr�C���?�\\W��A�f�d�
ӒJ~۔Ŭ�օl��P��P���B
�#�
+f�6!�~IڣBy
+ E:7�/��d�r�:#w
_��&�?���.�
�3�nRK1��e}�.[��A�j���7��G�
�R'��ҟ8�9����pB��F�v� 69dO!%NJ�
+�HR%��,�'�@�~@*����o���E��W
����#Q�&����J5?n�ߋ�&�sJ
+�I۞k�@k�9
Ft&0=��D$�W�@Bv�/B���YU�dѓ)�QoĊ�!W�%x�̇�F/&�����%���^��N�8�)���z�����қ
�˲������Ϯa�#�=u@�
��5��W%��H��C�:�����q��
+�v����ᰌ��}`=��ةԓҒ�2d.�qY'Q9����j�n3�x��i��u� (0�S
^
�<�
+@��j bF��JNe��OB
�!2׹K
q\a�:B+��;�`L��[�(d��b1ٚ
W~/>1v����B����:
l����48 � ��Z���ev���=+Ì
�ِ��n�fvD�ѵ=�}~3%m�~&0C��ج)�!S/N��2�D���Rϛ��	�?
����\�о�f7�6�?�C�K�N�Z{��n@M��d@�o���
@Q�rJ�v�)
+��&�
+z} �m�d%��A
�[�Q#F�T/4=p���
"�ŧ�-�4 
s6+�#2$R;��9�p�-�<L���d���nh�����F˻�/	�O�G9*���[ƅm�!Q{��� ���Y�>��5I��P�
� ���*e�s�d]pwFr�|IGR}c�f�˕>t;Yq���Ps�
'�kv-��w�� ����
�-�Tf�g�m��t����lX��)׳3�(?P;[��q�Ih�S�dc�.	���N�Z�ڒ�ٚ�I�9�x3���eI��@�L.z��lq}
ә k(q>ܘHz!*F`u��J���p{lRD�=�'�r$�4KByD�I9 q�����1�H�Ƿ����%����Q�@m��Sn,rQɈ`���4�b{��02m��%['�6W��X�;�פ����Y�I�$��J����M��&�֐՚׾ܽ
+p�m�r��� @�
+�ȟj�L�@��4
8Pc��\����*4�V~�� $�S��)
}�b�d�߱�i�42��h�e
#�H@�6�%Ifj/_�/+�fY˩M�M���:H(F©Qز�'�i���C�Q���#�{U�&k��푰���ٍ
N����N]����7�3)�;�Ac�)�r�Qk,Mb��hKBtf��VB�@<١��SҴ�>ͣ��լL������j:����%�4_+`8lw�7�j�]�z��Jk?$.�@"��7��J2 ���{�*t�
��L�g�X�
]]�٥�z�M�(��|�2�E��YLM�F����+�I+�'�y�h���Kcvj.5?(�`p-���w%rK�W�
+�H��ԉw�3���1�U��쏄�2��g���<�:�,���FgK��na
��Ih�o��&�P�ڠ��҄稶�/cPY%/�<����.�OX�z�d�D��rVb�
�i��\W�D8r�tk7�l7/Co�@
09�m�
oaԁ�PU���M�h���m�q�ܿz�@���L��&IK(K�
+�P���8����?ō�*���J�R�5�`�����׽���W�q� v&
�' ��!;T� �>��8U��k8fk9�H0;�s"�
�!�ͅ(�]�c��y4�ӈT�z�q�3�>8o�e]�[6
�'q2���=*ت�D��Q��/��~��#�Pt����!m��u�\�q�>LH���RvEL�7dq'x��/�ّ�]�2$��~R�f���K����ز��zL���"�%���=�CTR��L�X����@a\D�U�O

�
/3�f�TT$m��y<�������R�e[0%���iwR��C���s�,V}�G�9Z�>i?џ��
X���
P ��1Z��u���YD/���?�O�B2A9rh���%��c}��1h`h�Kt(k2XeU�n1�(�L�+舍v�!�͟��%
��餤�6�mbgre��
�:�4p2�育��Pb�^-�������r�rPRy�Q����
HJ3��n�
��{�i��d�EV1���mK/.o� f�)#`�:T#��3Q��ck�6�
hS�ͨ�Վ%�L.Q��Z�v��N��񗑰LGB�,_!��\�@�bIsd�Ce�5�TB[�	�S���f�-k]����n�E/��c=͏m�#�r��Y��a�d
����B����p�8����k{!�5ǩfo��0;jvb.�"7���V�j|�W�+��.3�y��2��RX�Z�ڷZQ�#��/��qV��n�Q�P�V'!��F�9糇
Y�)Z
���
¬L���&(
+Y�F�
�� !6!� 
!
D
+rFnL��I��1�-N�
OhH>cZJDB��mt~[Q�0��F���ܺ�lܳ
.m_� .��+�3�B���%����k���M� -�a��B3�#L�Id��_(Im擞
D�[8��źuBK��4��(��eN<-�����T��t�(���k2�:���R,���e�8���^��)��7��.�o�M�������)��mX�G���"���q��yf��8��,gn&�o�O�����M�4�h!����!�����XC�9�X��f��W�[�rɲ�
+U�f
��%I�.+?�����9��n����yy��E
+G����^�(r��~�x���a�T �]&���rl�1��ZJ
+tWɶ����VM�*�s�b;!�|6�1Y�l�,Բ�S, �}�ջJ1����ݾ'CC1H��T�L`�W���$.���H{#��q
��$3~c��l� �9M�@�M*�u�"5͡%kX�F;� F�nr/�.h�$?�Xԗ�55���,QP�ZtU�8 grJR�����$��q�UX�Ȇ~;���Ыh:N���U��	�NE�c�g=� �]���j����L��wC��� Ͳ�
�i�P<�teE=@$��L�
�E�H�Q=t�}�ӏ
o��ܰ�iB���R=g�S1\�����J���6�jX��>��pJ���
���
C�d)
fK�P��G{�@*�`�.��b���$a\����D�ϸ���J'�r`�lA��V�Am��(=p�H�v��	���@�B Z
+�E��-�01 ��'X��#)����_��ظ��!`���d�[K�Ql3	 �(�h����na�260�z�%(�
�6������9�:E��13�22s���@ý
�
���e�-ྰ�)m�⩩���<Tp��U`.(��q����Z�{״��2S����i=��\]��ng:�K���`E���n�
R��D�Dg�V�d�!%*Gg�*=�'ٰK��%:�\Q
�T��Җr�@�ͬ�-�k�6��.�63$jPtKN ���r�/H���K��P���$
+)��䡧-T+wT[�%*�$���i|0T�g
��X$���
I��oY�s�T Ңv�F �l��嵚��@��33�k�#�A����b5µ�C$���ƑD��
� n��֦� ��0�?� �v at x
��-�n�`®�DQ�Dݤ�۽�q=��tp
+�Y$)I2������� �(�1僭�DH⦧���Q�k�
�N������P[��0���ۧ��J�g5�ͱ�½4
��v��
+0�vD;( ����5۱*
@�_��m�
T'僥��ԟkC	�m5�=�4sz@�U;�4�W�un’����ȕ ��Qr9Y�>
�r�v,_�kp�@	���`�r��j��@�°�X^��:��@��Q�lY�Q�
�ס׮�DХ\(w0 ���� ~���Gy!Nص5݊A�[�/1�
xs�_A�Դ�u�Y�b�O��-�l3��
�(O��7�raT� z��@O��4-��JT\d㫬�y���l���\�agu��
#�H�J�ԃ���K� fC���2��%^���Z/㞜�\&U ������	4%�Lh�D�x�V-���tL��?������d��v��ȵ���YS$ߞ5�\PQjH.�&��"��
.�``�7�{xC�	�B�.KO��ʪ$�M�X�,����m� ����!KS�Y��6�
C
U.�45(`Ԧ����x)���
��$8�y�uP���3�^��)kXq!��z�-e� �yR6���
+�ݿF^B���T�쫡�Ne՘C
�k.�
����4�T�Tp0|s�`�y��kp��� �=ԡ�J��Ԑ䫲;'Ͱ'�&=�ц�	���el���o&�Te�Y��h�@Tܮ��1U"k
`�8��ER�>�cHCɖѪ�f�#��ld��ݡ׌srn�
+B\�7x���g+!fͱAW�Io�x�*�菉q�O_5���3��/
3E�Au�
�7�\T��E�|��{'͈ 'Hd�$^���S%a3�Y�-�������~���M� I$Csu,�"���z>�
A���͂>m�B[F�[�ު2uHvŠ�]odg�~>�~�T&���^,��BnR��&4͙B�!4� yhG�!D����M*!	2��X��y�/[I��j�PMY�s��=
+��I�
�I�6�RdU92���-2�JD&��LUޥM��V�D��
V�AH��uF`c��8�2��%A���,)�
+d�����m�%�Z��P
=;`]��>z)fǎ�s��^��ZH���nII�S��|U�Mʯz;��lH�)�Ηo̵n�i/	=�
:��zW ��EyX�
�h�
bQ�&»H(��,@�
@�_����B��F�S=����/9o�$��Q�eB�7'y�qt��Rl�lf��|��}5n1B�4Z �M��m6c��qX�/0TY:Jy��	�i|Z`�|��,��Û�E���'�γ�Lh�kRa �=Xw3�����gz�յZ˿
-���E㬥Ұ��ޡ�K
�����U
Mv�~ 0@�
����.���Ӝy؂�8�
D��yg�Ss˓�F��
��~69`�y`�!�z�}��f �I
�p5o]zhWvz ]WCjVS$�3)�wz���3��:�+��ɖU����z�	E=H��D��@��]a�M�Re%���U�<cU��l����8�
�a��|�5��t��f�S�����OĦg���)��
��Уz���@
���
+����n�����҈������צh��=d[L�(���D:�[�z!�^�����ԁO���=<?-)竕@�@�!D��C�<�L邲UK`!�
,�^g�E�d`�� )JI������LK���6�
�$
i��`�
q5��	�u�f�A�ҫM�=��hg1�Q�=�T��^�~
�0tE�`i9Quj�&mNg�Pٶ(����
P���lr �@w�a) g�2�㰳S6
+�rry�*�MEV
��%��"
Xp|&`i!�'̟سu[��;Ѐ���f����'b*�?&LĔ	�.���0�?h��U0
ʲ�c��)
�s�z���FAzJ��6��h�2	A�`�K��,�ќe�)�,�CU���P�"��9bB/�[yz�7
�!��Qe�)�x,}S{P:�D��p��IB��wٙ$[~z�g2

"]H��+�Z�)�r��t  f�"�	��� r����c6_7�^ ��:ZRl'�S�-R^fUJYF�x,�(E.�)`��D߶�\��Qd�uK{D�d��(�q@�F�ɜ5t�
��ia�յ\��o��-{*E�j�r0I��Q��Ym�
�Pf�C��/̞%�R�0��yf�&DV�1���dT�O���T%�Aэ����o�Ƨs�v- W\rO�5ЁP��3�� ����T����I��U�j� �ox�8���=~�����������N�=+':������y�����1zu��0�Dc
]T
]$���R�Eqc��J��X�
-b�P
$p,,�@�H��<�KF��Q���䅵��򒏁hgJ�^:
��l��J��j�oNb,|��^l/�����
Ke#�����c�u�z�"���^�q���8#s@����ڄa��~��^�t��
��nDq�/�QT��EBr7sw���\��
Z�O���T0P"���!�=z���0��\	b)}H���d��v�<n�����>"5
+�ZvllAsx�P�*�puC̓(g49$i��x�]s�ݙ�{�z��ADW�s}1%�I
+=VQ�묢$��3,V۲�G�y}�5��(� �nҪ�c����iT')��-����IYF���	�Z���d+��/SŌ=~��
	<`�R֋^�:Zs[���Ш��	)nw
�y�j�`��w�I�2�F���L�E�l����T���j
8z��䄶R�tC܍2
�!���W�`Y=�1I@���q]��*����@�T�׀�[S�!X-�Ϯ^r��8Bp�
UB���������E�8��.��
^<"�iv�J��g�d�8��7mr�=G��{N>﹇���a*��+9l�Y�o~''
mJ��9.F�f�%Y��D��;�\�.��<"
���S')5T�#��| �,&@fC�E/�Q�K���I� �Q������
8@�4��!����bW'��X�s&�n@�
\�S<~(��p]x*W/^r��rԕ�}Q���Ͼ��2�X�gz��,.h�,,U���VM�T"n�r�%��[��Z��eY����R]�a���(i
e*W�AL걈�I�ƌQPň�5Mu*�x
@�V�[�
+�X:%A� ù�
+cJpY��D9������Ǫei���$D�;Mh$�*�\N
v&���G5���^
��E��
�6k��!z�<Í`�Nb��S���Q���}+tM�|�A���#�)x�� 鏹=j��q��B�A���i�����"����eJ
�#�Fw�l���[&:wa�).���Bk�}�R��ݑ}`��40My��_�����A�n�PW����|w]�
+�{㸀<Ĝ����o�ۋ��X��b	��pkgI�<F2�s��E���M�<+�<�
zt�����9jձ	P��*��6+i��A}�$�����&�a�@����Z����@

E4�
��Ǣ���'jce%���I��V?��H�x�5DT�C�l|%�!�) P��͓����� @ь'�tP``�2��
U��{����a�
��D&.��0k	��JAž��\�=�cQ� ��8,�����E����VY��|H;����gv����k����H.���L����pob�1l>?d��i\";�
+�'��,S�iQ����W�b)�Aj:H)$��!���Yz�lt_�X�
+&�龷�����Χk�#ذBa
�a
����$����휚��<&k�jH
`+��ڨ�,�s8?�����U=EJɒ�&+�!T��
�Rɫ�
���v��v��*�b}��^
�R�kS�M��00	�a8}���;�}5$��02� 	�l��^ȸ�a���=eJ�t<���{���	ͅ���y���>l�l
+
�>4����k75�.f۴)�����|?�D�x@���⯐����l��iȒ�v���I��]t
�V �t��7פ6��YZܰ:[y>�nQY�"�����lI�3��2͙�o?
'�6	���6����L�ޔd��|�5CizC�$Ԋb�T�y���x:�{2A~�8h�g��Ֆl]=��Q
 
+LJ�g��
��j�����%�i
/�m�<Z�
�@=��:�u
�!�)��UUT#f�(�
+�"φ9(�b��nV

`�
6�mw֝Y%�� �IW�j�ٳ/{��@�����
 ���U0 T
+�K���
a@��T�ӟ��(��� TG���=�����.TD��"�/�!/|q���U�#��#�e�
�M&o

��Y� L{�W
'��|D��h�e��T��POܓɨ���7���<
���ˆ%���
��X�I�	?�%�x�b�@a�}����
�!�ش�U�����'�_h���8R%iw�(
J2q�}� sb�Ɇ~u�홢�|�9F�z=lɧ��5�sG�v���T�A�a������ �
̖J�^���P�U��Ч�Qm(�(?�x5m?�`���
�\\�\X\��
P�L���凒�E���H�G~g	Z�t����.ॺD-2�8Om�\�!�UD=I
��
v�c�M�*�c���qoS�BĜ�sm��f�� ����m�
����e��Ŕݩ�
*�<�6��Pz;[ui���x�ȇ�#B5�Bu�щͩ��ˇ�Z��
�z�'�ރ N=@!�#�� �g4>��^�Mb�U#ZP��C���
+/�I�h
�L�Jm�A⼬MӯA���� wh��Nb,"�w6�&I94@��\��m�@(���f��
�ӰZ"S4Y���
�������)M������ӻ��	Q��
&�OQ�^�5)AqP�G�q�y|U,��O�)�ң�;�"'H�JE<Q�w�ha�^�G	,zjJ:�'�a�P��d>�
C99Z�S��[�;��{���"Ƴ��osU��
2�2�=�(��(�(o�JlH�բ���F{�
2�ے���ݙ�3� \O��/���1`\_�bb�j�,\F������?t�Y	���������B7�a�c�����߂h��������=p�R�i¼��j��K��;:��d��%
9������e��U���8����TU�S��x4� ����
�2P�8�����2]�۞C=L�
+ej>a��%�.9����t��w�P���m�$���x)U+�nC�_(�f��0��zx�",㧤�.�7�/�G�T,��V�գWW/֚�|$��b
���Q��b�V�
T� �q%���Q~�G� U5�搳���	$ pNP���d�m�.��s��E� �M��
��Ѯb�m��@̪M�C�Ë�o�ܙ5%.c
7D4�+		9:m��B_��(���_�0T�kQl�_��5��e�g������B%�j�o�8r�����3-FF�:�S��-r��B
+��
+�A����_�U����K
+XܴS��S�ˈ5^F��S�a=��)��zK��A�O��j$�Q򲫺�
>ȭ�_��ޗ�}i�+��̪��K�`����
1�
�-N��R��<�A[4
4�q�Pt7j����
���挬��Ѧu�1� �
����
+�]�,�3u��
��x�(�4�O���{�Zi��S?V_ .Stdʓz,�:�{��
6
*C*6XJ=<��
v�=R{��O�}�o�,���
+��
z�ݞk��:e$>��d� �:�]�pM4Y�b
!��av�@,.. wda�,㹗@d�f���hF%�e�تlƚ삡�8�e9~4B��䒯*0���Vv�9G�ܣt� u}���E��^�G	P�VaX0�X1-Gy	#�&�`�bma�,ʅ�s�����0�u�+��Mx�\���cf��l
+|�Su h�9`�_�ԃ%��
�k
�	��L��y�Z��S
Ļ�	��GGД
H�ӣJ�@*p�������7Hii�-���ư	!#L*rn�R��̲�)����o��L4�B�o����ߪ4�;��LO�񝑆&����^��.8� �4xqw֛%�
�_
 ��pd��~��A<5Ke��

�ahc�4d�Q��u�����N� >w��a~��
^u� ���Z�F#��)�7�v��ġú=ԋj��B7���a��Ԧu@�I:�B��e�G6���@t ��l�ȰlQ�]���R
RM��^R�l�zj�
�R����5w�	������m�@ac��~�W0��f�_>.��:ɞ�tBВ�6#D�*��̛�Ir/��,y�ZꢘW����^)��{�s��e�ʸI\�>6�>}�Ud_S#(�Q�5�|1��m}x��
+(D���WC���&8,�����Th�K�%@:^@݀����Yn��8
+�:����I�b˸@��R��|`ˊ<]�l&R1L}(�sx�i
΃� $��Li#�&�@
�a6�?\�NJ%/z[���ᏽ 
���#��بx_��÷�����mw��b�\;IR�� �B^߄�
&	���A2�nrtUB6)}yX� '%���\ ��{"s���?�
Q ҳ��K�.%=ĢA̸?�ųA�.�k&N�~L���I&n6�m�PN#�ZFF� ��{N#�W=���2�y�k��c/�.��$+ǰ��X��.�]՚BYv��?���ò(Z8�FO� ��d�e@K��|S��M�8�M^6�/��3�����1L��*�{�(��_�6g��V���W�	
�/I��
L*E at q��(R;�L�$�y��x��`�:�(KbI����
��s�J,Z��$\��*�5�UK��
+��ޅ����:��<�c[ֱ�Tc>��DFQ2�	��5��2+�i6�o���
���m��R�ݥ��
6���BK��%���3�I'y��ђ�.r�'�%O'�.�<K8sH��K�2�jV�k1E��M��q=`9���K�HpB���X4F�[�\fI��&AcJA�[���>
p��e>
��L���� y|%��1}�	�fO�
�Z4'rDD�
���0	��p-�zn��<OH4�E���kzq��&(���$MZ�<9�j����c�}D��*��?8X�
��'������۟�������O����/~��������o~�����w���?�׿������������ۿ��o�/��_~o'}�����Տ����s�/.n��P{0CSC����~��/��~�÷��o��o��������'��/�������z�����{~����~�}�۟���~|��o��ݿ�����o����������?w����?\��;���~ϓ��w�����ݿ[����� [...]
+I�E#��g(�/����H��[�<gz�6'FE����~��sq��Ύ{�,�
+�����x���4��i��>�g-�棓/R�e/{ok$}d��l�섫&Y��O~
 ��:���Μ��U���K��\��n��#�|{y�q����ĉ�d��7S
{�F
����'��>�{Ǜ��>��JE��v o4+>K�O�=Z�/�F���q�����������[�7[��a�_
N�'����x!�7�:��O$��o
�'t*����x�͆(RIWc�ޖK��-�}�
��}��▱y{y]��w�v���2���Z�7��ek���
�c���o���4��q�Y	W�ѝ���gׇ^c첪��
���Y��$n��f����y�e�ϸ/Ї
{\�,{���'��R|2v�Ӂb�;.�����Xɯ�x�g�W����W���?��|�!���gk��/M���<1ۊޤ?�y��,�)J��nT{y6�
��)G�ケ�hF���aR��틦qd�p��;�mu����w8�
�'{"���EBm|ya�+�p¸�f~/Y�e_*�w~�2{c�!�c�r��
�
5��m�j^��k?̼E����~�g���3�y�W�{o��V��t�b��+Oe�G�1bp������N�)>ʍo�(K��R%o#`��.���L_؛97X#  �d�
R1{V\>c�]V\�Z5�
3幵/B����4�{s%��wn��R�7J(�'.��
�O�3~�>`�
{��O��b����&��/&[�-�To$Q�_	���| �԰qӾ�?������噣�׷���bQ3��A����>!Ho&���I�$�-�7��Fk����5EW�`��p]�I f|�l�;	P�y���N0�W�VD��W�w�W����
+b��(,�����U�O���s���ia���)�
+T����X����f*��‹{u���
ܟ���
g�+;�U�g�݃�z܉��?��k�����������N����v�u]j�����nۯ�����A
s���m�s�9o{�}��v�g]m�Ʊ�A�L c�������Ip��ںg��
u��W!�{�U����������ߕ��#&�T���
]�ay�y���z
+Ť���\�E�^^@\��6b��Gs��xH�uǻ��ZѸ���X~i4?��q
(��ƞc���
���1O	
�Q��f︑ȕx_o��
N½���4��G�����3��
q�X�杹�㽼�ǂ�o���+D
�Y�Hָr���J,r�c>���_�yGԷ���՗�\��
�to9B�>0����� :uی҈W�5�y���f4��-.�W�V;o�_ėW𳗖�^ �X�������_�o��w�+������,�mf���ŷ�Z��Q�> �Jv����=&�Oۤb��m�
+������9s̅����rC�
`��C�ԟ����c�z�8(Y���m�b����y��%{����c�ͯ
+M����
�� 
���
�����qz
F�=~�N>@��q���%�S\j\c=&���s4��w�~U�
㶜���l㡓f�WD���Y��L��9z�~�%?!|�t�T��K
�R�}<K���r�g�c	�u���IZ�����qY_���w���������z��w��"~�W��
oI{���([s�\YAZ��F.�F�#����|�����qX$��	e��V��
+ּ9�
J|��"3F}
��!�]�%�Eϱ���,/6����ݤm��v��q
Ǿ�޼��9�q��[��_5��w�;�
�N�;����O�|
p����z�-�{O����Ĩ7��>��o�/g~�3��Y��;;V|
y���ok�q��T�l?s�
}�Ec�/�ʋ�թ��_Pw��i�t�w��7�.��q����Ģ.U��'�me��h��Į#����c��bnFc����V�N
+h��U_a�W�9v��H%c�[c�o�ܗ'���+J���������o
;�
����O[�"��7�f
y(w��+�J�fһ�ei;��,$��;��h��Š`-�5�A�pk��a��(G.�e2&���z���ۼ���]�6�<��U(b����c��ꋋx��Y��b��! ���I��ϯ�EM���G�����n|B��
1�?��� >:ž��P�#r�2��XP^��ͽwo�
+�7Z=�H�r��
�oS{˕�5zH���>��a'D��6��"�����^n{
�O�H���N��
�6�P��ʛ5>�(ž ��M������~�r��wH��51�����"�yy]~��M�>g��
��s
�r���w̆
]o���H]�� ��]��mP���ƺS��*�wm�k䭹�
�~��_�%Q��/[�Qa�d��������!��۴����~�	�;ޔv+R�yX��E�	b�.���c�2�|ي�/���U�gG4pS
STʑ�y�Ƒ"�)�
k<4�ؒ0��ѱ��\[���+x|wQ8�
+93��:7��g�{d(;��|�W[�O1�M� h��y`�|q���"cJ�?Њ��ݸ6��h��L3G#����b�Q�M�;M��.3�R�O���e7�����f����'践�
+C�>
f�:����<JE��4���F�Z����5�D���v
��¾W�W�ӭ �N��ˌ�����r4�<Ոī7&�i�|7�S�n�y����
+"��]�no�G���w�r������!cq]�<�r����y9�
+߁0�F�}F~�i�F��� �h��c͛�c�����
+�.`�5�Oͺ��G���]s4F�z_�G�?� ��'5��;}�y��O�=��oa������%�w�lξ����C*7��|;����~��\W�@�H�u%��8Ҍ� v(�.GP�{.�i�����7�$��^^������p���Ý�j���!��埾gUZ�������?�y����3��������r�O��{suE}��Иm?�������T-;1o�,���#�p��+�<.�&��ԣ�^4�e��ٞ�Fs���ע��ќ� բѪ5��CmQC~�.���\��
�.R��{s�=��q;���n}��	����
�V
{y:�C���/�`;�XR��f�-`2����'�UϏ��-�}��$<�Z�)����?����:,"�1�X=S@��Y�E}���7�+`����X����6b��-ro������xO������"�#!%�����ǽ"��� �n��W�&��[����
=^�i(�!
��ԡ
��H��>;&��Ar|����N,�u�y�q"��&�/�8
��dK��Y�w7����	��Pr����X��bח���ٛ�������,��V�8Y�q1u��V�+�ֶ
TC6p
�֎��䯲
+46 9�x�xo?{�vYbQ�&��
�q�3�2�>,&�������b;�f�
5ǃD5�+��U��O��w�+�$*w�h$���Ҝ
�ik�;�'�F�<)P?A�����nM�#z���F�
ٲq��G��]�M�TR �܋Q”��2��֌l+�E+�� �!(Q�2p(W?�N��Z�d<�D�<p���ߘ�����|�c~��;��?/-�W0CT��e �%����
@zy1���V"A��Ӓ���8��z4��B?�N(���;
@�oF5��S����}���f�I�
��~+>�b
Hk���
+Q@�o1�x��7;E�e7y��ĥw����,J�H�'8H�
�W��qYZ���
��Wyk�7���Z��b�$�a����񾓏��K���9=�D^e ͙c�m�(}|5�S}W̷�uvk��1g$�+�K���U߄P���I[V��1}�q�՘�P�E���
5/������Z�xhX��u_�?n�xgsE�1��7B�%�5������w6����
O43@�
��[k�AOTk풏�7����)��f�	���]!��x���7_�
ᥰ��<���Xjz�"6���|�ێ�iI��c�Rq��(���_S��5��H�X"4��y�܋��B��?��?� �8|B�w���#
+/�����J%ˎ[cq_V� �
h1�j���yFRq:&���㺺g�::��(�������F�e�o��/k���Q�}�ʾ�(+-b�YJ�g9Ǡݸ��;�"+�%�_�z���ݶ�����:��ѝ� 
+{ב�q�
���JP��:�f?na��2F
�h������t�-��3-�KLH��G�cD �Y�
��i�vx��|���
����՞��f��_j?��T�q���_D�,�1��d�b���7��M��L�����ȹ���1 at z���Ml;�_�y{:�x2���e�9��mk%B3�
{����N
Զ�.h�o�[O_��W�}{�5��+�s�[#�k�^"z�9�;�L#����[�����
��6�
w�(
�&�n$\w���8髳��
ijꆾk���N}�{gFT�xaW�(-��1?�B;Dz��1��h
15���W;�#���x�6�"��K�Mj�|1H�2=���16�*��a)��
Q�\��j,5�I�jI3B�֨���}ԓ�b�h�S߰ O��1#w��r�P����{1s�Qs���B���4�^l�|Ի�o>�5T+[l'x9b�jClhn�M��wH�6ϩ���4���!��V�ѧ(��a�J�
��V��3�ր`�QKDXwk���ƴ��V���)�"�&��
�e@vܼS�gDAD��]���z����9N��t���;Q/����A��E���P�; [...]
+Tl�������$hw -�ޘnL]lB����$0�uE~A�sӻ�
xȀ���n�"J!��M��Cc�]��G_UBh���劉
�Z��_��sG��n Ҋ;��}���xj�
�Dy��~pè��T�2�nMF�8Ɗ�6�;��<�z�>��2��y:
��^��1k)�t���ʨ7j�UYޫ>@��6�F.��_��u��c[�o��Q��ނY�a;��
+x���;j5|�}�;�AW��h����,�rW���+嘈�r��wr
�����,�$�*n�c�t��U��n
���/�Od�{Qi+|O�jL:�Yn\֘�����	�2J��
��w�
n�!"�[7�]K$[��(��ۜ�tAw��
+� ݋:x�x��ǩ�X�U"�>f�
���ݗ�.���)�
��� �3{�m�[�}W��Mє�S
�
$"����n�#&�F���=*v<��e�������ݔ�V�y����Sz5�\v
P�����?ޡ%A���z�i
+rw�)��ٛ����0�L3VCk�@�{�Lj�L&�P���<�����X���ϵ#b�@��[���^l�\6���Gf^.�	���[�G?b����U<�9(�+�;�

+
U/o�Zy]TXN��Ƌ0
�X��`����x�r ���:._���W���p\��}�*K0{�YR�l�q/%ړj�d����
F
�.���
�i�kb��
��j4j��|� e_V�Fw-�1�-_����y�a��z�C�. ö]��;�x�<� �y����
�-�CR��i�w/����t�ٚ��! �hw�y7v�5�����5�מ���gg�#���`_��|�Wl��Ż��w�	���h
���S������T|1/�E�C�:^�_�s)��&�J�=�n)
��^�m�+$��᱒����V嶈����^���Ti�:/��c"�_���9�o�D$�oζ
��
+5����\���DV
�ˊ�mV���
b�f0��8��UP�֊=[𯔠ؾ�s�/�Ě�g
�Ҹ�r6��9֒c3[S���S�n��w�ր	�or�
L��r"[	����k���m
%�^/^7�ũ�D���ײ�"h�bS���/�*つW�`�F�sŒU
F�eU��������x^F�w��P��w\Br$��%��餱�+��-\�$�޷��EB ����]>����k�K����
+�z���D��H.�җȥ=@��a�M8���5�<�����HB�$���>Rq�=8��16��j$
c'3ޑ�ڴ-��,[<C>�.d��?����X�,�Ckř��ɍ�+jqt� i�V6����1H�GZ��ȒF�f�)�ś�"0&�}��t��<K������d��W�B��=�#Ղ��Z��A4]�~��z
+��B�hn�n�"0� 膱�{�P2)
no��� �~�E�_�Gyc���ͭQ�)�<.w��+�0�M��jO]�\�%=�{��
8��zz�
tJa�`�\rO>��ە��1�l�T�/U�{ �5��r`{����\}�?2_q*E�1@�qZ��HM������-�zD�k��X��K\lTVz��Cy���=����fy�H�B�ǣ�
��i�51��>9?*�c�X�nM;n*`�x{X��6���`rH+�~��Qf&n�5�oK}Z�o򇲑(}����
��q?
�-
�C�
�
D��]�eP
Rv��$
B��̛���ǧ�M�
`�������GV�"y�]�M���Z�s!_� �\5�~�����o%������v9>lo.-[;�O>����
���ԠŸ�� �� @����@��
^�1l�Ro�n��8�'4  I�m\�ٹ!�����������q\I����gwGg罝�73=ݣ�i�QK�(�*P��w  @������)J�
E���@��/8zزYYY [...]
�Kv1#NɮLZH�c����1(���t���Ңӏ�b�����6�j-�#��$TÚ�PJ�8��)��f����


&A���4�ؗs84�s5���jUyq��+��
���tfTG�9/-�&�Yz��P�␰�I���,
��f������$)1�ޕ���vq)��ȒDtn]S��
����LeB:��,���;F�!1�U�,�Y����	]�\V��2�
pv�]�tR9)V��Ra*�R:�}�^
�Gۋ�J:���*��UTR�
+]�̢}��A'�*�4]S%=K�E��x��Aǽ4�"�@F�e+M0����YP��sJv�^���.:.����J�~L���N���f�0���CUPN
��l��VFʎp8�*��$��JA`+{���J�u���0� ӏn�`� ���t����kF�w�K�ɀ`W�ۆ$��ϫJ�H�]�i�GY¡�%���K����hqC�9�!�hҋ�I5��N��������K�bRzQ�.�ws	�,B��.N[]t_t���
+I�IF'���i��vG��]U�Y0S�蒩bɋ
�Jv�0UmH�E5%�"��I�u]:˨b T1�
]�QI�)����U1ǽ�f �*�\�E;��*&J�dFE�TE֙a�M�v
l�
B�N�0����R4VcBS�H
+MS�
+�QtU	1(�#*���еJw��ȫ$1,��#B���(a%��h�
k�"���:� pvt*�
]�̔��`�T����/++��*�F
�j9L��3��,����. A)�~X��i�8:$ �,:2��e=�E1S����G
+�
�-!���dӇ(�TI 2�r�[Y���R6�=ɱ��
X'�����XС��D�ٲ]ާb�)�!��l�'�b3�T�%�+�J�T�a������K�ɖ%(���*���=�b <�Ϧ��0�����7�=ѳ
^(���-��1��.E!���0)F��P
Pї f1CC>]��x�R|�<&+���*j�X�eeӛ�9H>̢j;Qۣ�l)s(YĴEa1BoW��]�9�'CW��W:ϡ��ȑ0OdzP�ER\ʢ��Ѝ�ԳTn>�B�vf�������T�M�%,����B d\Bd�1�n�S�ZT�e5�%����V���(ΆDn䢣��0�rf)R��S���eLT%�_H
+wR
H� ��˙�9��G�KJ��b�+�z��Y��Y�Ly�H7@�X��R/+�RA�g&e�IV��^�Yfl.I�fUћ]
+Ek�N�L��}�)qI׃�i��aёI�%Ԁ���ES<
*
+�c�
���3L2ç��z�rؑ	�L���s�ieWA���:Z��#��A�L�
��a~O���U�M%,�\��d]�{t��ġ���� �ؖ�N}t�P�8Sʢ��H�UE��
E7��vR�\U�9VN7��2R�MCi)�
EL�.
&PU�+���*�,v9��G��]��*&W<�����w��O�|�mg�i'
�b�L�����*T���,Mɫ*����IT��r"�~��1� �� :;eS��vU11��e�t�x}�@���dS'�U�-`t$Q1�
+ݫLOSV�}�%sʊ�9�W�/�X����Y��I4�ns#Cʋ0�I����J�'�):f���U��O*�_F�]V�&��
��D=���Ho\QH��G�U%����Qd��NF'ť4򭠗E�
+�o���3��?:/�
���fYIїY��\ �
��!S�鱢�L#N���l*�S�*B���\�*�
���l�?UUңE��"�ġǵ��8(A��p���ш�UБ���
�~���}2������.�K��Z�j�������LP*nD�Eڮ�����L�7�mzb�H
r���
Tў.���/�btMī����'K�+��/`X�$�i�e*#��a�
K�w�П@9(K��jJ
D|wzJ�Hs��j�+�K��
{W�2+��WT�����.��;aP�4&©d,kWMC��'�b����i�
��VѺ��I,���dX�\��Neѓ\V,�_�%���ϊ����0T2�����J�j���S�!㑘Dy:����$G��UA���pU0
P'�d�+���>�b�9�n`�
��)ߕ��f��AL�9���U���o���
����L,&�`6�7 at w��)�t�/t�ߎ�eSk���ZK��T�L��1�ȇTFk*�_�bV�Π�W�p�Z�d�8��b1��SU����wѐ��%;�)V���,0�0c���%�>M���ʹVƀZ:
9���*�D���TN��pX���+��A�
�ezJ��Ҕ�$0
?�.�M����XL	6��&��wg����r�Y�� ��f���
�0*!}��)a�/�W�/��Ȃ
+��?4,��B	
�J��� 
&�SB�0:߀zv'��
+�A^�
+f��l
��w��Q���r#��v�rTϜ�!)���(��V���.�zU�K��8����R�=���ص��
7���(
+�4>4ut
yulq��2��l�sW
+5�gW��>Rd���Bs��9�%��'o`�a��
�&��h�E�b3�Š�2�M�ŀD�$S2 �0��LT�O�,df��J�2������$Q6
��a��N爢F�QF9�@XάC���
��4�"�#k�Њ�t����$W9��2��ˀVjX�,g
+!T��1A�hXo��è#b�P�r*ɚ��Z.c�5
*Ki�AT��E��TU��y�`�X9U��	�-ݕ���Ѕ��L VUq�K(1��NHZX}�����.g�Y4T��I�FȁM�7&�!�3!?� ]
��R�)%��v��QW
�
+����SB&D�lWldySᶜ�G7�et�ݟ�� Y"��в���2wZ�Ā�i���>j"��V0�g
�D�*�h�.���DK�G�̐Zc�!J4.!�Oi1x�f�]�b�?����Z����\S�HM%
ȼs�XEC�����$����>��I��G�J�T0l�S�Ծ���ҵH!�%H&տ�?K��B
+ѳ�i:)d��˙
+?���Z�L��2�4)��yYU��#a]P�����$����z�!=���ABj��������$��X4E nO�+C������@��I�`2��V�Y9��H��G
ph�%}d���Ӆ��ﻫܹ���+p������
��·HXʦ�i��?�&�c��1}��������&)�p�O��S2�rV�8E�Ô�g�
��t��2&���MU#/G �2��!q)}
[V���~9�)�Aժ+gj�r�tǟ�kg�K�+-I�O�0�8&�_葤���a
��K�|�e?�sAb&:���8�r�i&��J��_�����i}d	.Ū��?�>�]�L�;�x�BB���،O
�P��lfQ�+*� �r6��A*Y:4���Ώ���r�.�Oz�Sݏ�D�2��T1�*���HXE���|��HE��
�~O!o�B�K�@�Jƃ����,��+��9����K��A1�V�)U^Q�#�Q�;5 ��^�fU0�3��*ݕ�n���sP��AS�b�2��A�H&�[J�
|�����&�@羱J������N��6Lw�ԻE1��R�d���q贔ҝ
<**w:F��8L`;j��ް,Z�̗1*�)_O�;z���w���r�]Ǿd���o��et�:�.��S���n�lǕ�a\�(}�I���P�G	]좂��U��˩ge�R
+:�<��َј��IV�*VH(1�)�C�҇��UU�[�B*��siSYVJq�����m;GgnS���+c
�t�Cs��}drF�Bt�#�S�)A�T&]�et?��ƺWU�y����;�C�)���S� �R�
6M�~�H5S1�SN'ғ�t��R�Y�+-c�@��QNBŎk'�a�=I

��et�
+6�L at y
+,��TT��epJ�jp�罜�X�":�t�~�;���2�i�̩
��Q΀C��u/E��Hr2���gVNU�BB�gE���..uZ��KH��J(q��U�j�d|�"���皨��.-��2&�@B�����ѭSw��`�ʝ;�wB� ]�S��;V����{]}��.�@3�o�Db�Z%���QM���J�>SYIS6�C�*�Ġ�UꔈU�[|��_�s��C{�+��.�A
�����05SX��X�?��x9S����s#����ei1M�(��d5=ڣA{ZJ� ��� �V�����
��?�}����E^YH��
���{�I�� ~��s7���k�Y%?�Ǟ
�j��@���������;���٥�+r�w7�Н�g�Bg]�dP<(T�h��mt���p���Q���	�-�$j�t����@Eߋw�9�*�|������1(��h���5�=U�$� ��+���225�b�"$�G���%�~é�i�
=�&�
-���3N�nc�?
mv�B�
�
u�hf�2�?l�W^B
��S�bԝA?|��x��[�����LowZ��Y?
���
jp��#S^��]#�At���&����]��>2�����w�z��1⠻��*~�liy%�G�����b��;��|Џ?��ojr���U���c��m8r���UV�Z
+\�P��nYQ\���S��tZ����eѳ[�Mƒ���*�뀇��ۆɑ@ #DVN>���������mN�I�F�6�+�:>A�;������ҽ�$
��~�u6u���g
x�(&-�Π�D����{�#� ��R���--�x�b6:�BB�i/.jV�����Ia9�nj�*�K*�]$	��j��L-$#�g9�"&����U �����o�T6I�~�](1���G߅*���]Ȱ"z��B�(w�G߅6BL��B�bZL������(!���_������_���ui��l�������6�a_�F�����Q&��� p���P��@):�t����j�]}d�>�GW��{��'��g:U��o�h�3G����^�����ɦo��y�<2��d���ܜ��[�F'���J4���i�/�/��r@����=-���[�Cv�`��s�۰K�o�;��'�T�1�I��5	6��
���k3���K�D�
���X|�{$鐜Nz���� ��ͯ�x��'E�6&d5�9m�2�0�I���u&����US�i��6�|$=��-�Ы�܃�	���$�f
KLw~�q�	��q��O7]}��I]�����={6�tU%&{��ƥ'�)}{�eV,�qO^�r�Zק�?y=�Q��~�S��_|69�=����e��
�g��
���qu|F|��n66-?�
�Z�
MoʮjM;
�lШJyԝ+�ƒ��
q?���j2�$9��O��+��m�t�ns����Wߝ���oN�r�AkEfFq��Y�A��A{��͆w^�jy�ŝ��g��~�9ڹ��tv�(�O�j3�F̩�^�6��mڭ��)�pe\۲6�h��}}П��[z.����uk�SvY]bFT��U6lL�N&�g3nI���w_<:W�u�N�=:�VШ��Mj
���c���O���.��Z4볢kS�Cq�lP#&�mʫ㿞�F�4�s�zN5w�.�%"C~�v9Ҋ񠚛�yـ�;��M��g\��Sxj;
�
�e�_ݍ��m)��-��L8%��'푞����\�b�x40/�ά_��x��Y��i��Kَ�][!��ͼ��6�7���ն��
����u������bބ�����o� �5�p�V�
���O\��ɚ3~eg.lP��Č�
��	2��+��Q����yK&��Ny��0�.�杈�����k�/��
~�{0f�d<�����C/��~��D|8ㅱ
[�XHՓ�I�Rv��C|v+s6(7� [...]
+`��Y��O����h��Q��M��}�-??6t��^�
&\e���wK��߫�ͫ�
��ͪ[@?�3A�5���_�
+a
@����y��)��
Y��`?������h�m��]����WwD{c��
�)����h|�w��îʹK����=�lj9]��]~v�Ik�ꃦ��L�	"(kÜ�z
�N
+�`�I��Ŭ�ϊ��ҴKݒq���!��^>�
IC�ǯI9՝�M��w��雰9#73�j^y�Z�����W���_'
�y������V�	�n�|�M	��<l|/�ʼn_.|��G����|��Ɲzit�ʓ���n����O�Մ���#8�y-�`�`-u�Vk!d6nE
��Wڐ�}�M�Z+�5�Q�f\���ר�ާm��[!�\����hcIj\�D��7g�'6':��:�v�d��e(���
-7�1�R�R
=?�6����Lt����X����"lTg�Z��)��5�+�G.���o���w-�h��
\��'�=���l�
���a���ɺ��l�޶�%?s��iy�G�F���q?�8�烎n�x��Ĵ�9��
��tk{cs��Cژ�*��.Mg.b��a�4z��8t+
����'|:Q& �!�����;V��>��U���ڬ���$�@��_
��>U��^Ycʥn���M[~�
�ϘS���#�C�aA�l^�朠&�4�����Kt��X���g5�y�5�P.xmr�����w�룼Or^yS�#����-�G�L�ͺ��ϖ�ZTi�Q����2vm[�\���£3���r}T٘qΚS�Ɯ�S�鞃�Sr��r�&�V��
����
���1ũԴ�>=+��8�
�9Q-�Qua�f�
wO�F�_|'ػtK���w�}�IY�Ƙ���#އ�ƒ�Yٙ�K~.�]��]�ρ���L@�����<�ӸWz�uK. :�k�d`]`.�f
�����#��=��ܓ��
L9E5��	��qsZݸ6.�]���[��`�����tWb�ʆ��;X/�r�O�G^ޗ
�=PU?���;ǥ}���_S3�F�eR>��Ť�h|V׵쿔��X�����w5�z�����'�>\�
K8M`'zRUs�gT���Z�f���kz�nE��t�zA
Ʋ��ʇz�f|�����l�q
����me�c]n�x�`2�������t*[�
�8�2�1��)�������ܒ�
+>o����X�a_�dꞤ�BT��Z4ٶ
�ܼ^�����0�u.l�e}�����x���lE��BT#/�k�DH����1�T	�����y�^�{d���� ᓷ���l��b�>M��g�
�_'Jyt\
�_үhM��][˶k��� \TX
��[��'
܃0���OT��*��.I��#�GO��B�W��M��y�22	�Y��4�l�x��|��'܏��VT�ᅫ������K�Ѕ�Dt��m��w7&�{	��L!hP�m�7�/Zcs���$5q;�`l�c��[ވ��צ�^O�7f�,��(m�קf{��O���xԻgmBy&��s����o��;������x�y]bl��$1'�ɸ�gW'z>^������vn���^uW�)�޴����'^?|��X�/z��\����v_z�_R������
�O�|�
+���{Ϳ_�������5y�K f΂�I;�?�O7�)1���L[e|����[��jF���1w�6�H����������Tχ����ӽ?}�V�d���\k�c�aQ&
���'m��[������_.U�o+�.?���'`��W����6CtF�'<����,���
���]:O+( ��#nW4 �R�z
��\T��U��T���팯 Ǝ�{U�����͢NU�Wt�"�����+Od5oB��,�o�͘�|yl�<ks
+0�
�@�'k���=��A�
Y��`$
��	
\�$a����S1��t:��$�Z	�+��B��L� #Bf�ւ��f�ܿ��W��\�lx�e�?0L���ˏ�Ѿ˅E�!����0����q��=�Ӊ3^������= \��r��@/} |�X�#�۴
c~�6�T�o���٠^��
����_+,���M}���J��%�_��R�D�����;o�ڮ&��]���])D�C�
�5b��k ]y>�7&f��c��CI��d�'mN�.�C�_d#�K���M��q���!��_L��Kx��M�/Ӯ�K���]`���.U+���g[?x���o�?����g��N�-�GK�v�'����?֧���Im�C�w[�[�����x���*pܣ�v�.�є��`��R����_=����䌦��e�
�>J�����s`|WF;��߶��~�߮�*��)Ùߥ&

�c����cc��'�c��C��Ui��:>�{8��f:QlVt|u����v���Û3={ [...]
+_m���0�JA�@l�mI�d<�N�٭H��e��w��>$}z���x|�0
�:�̞�
+OA�.��U���!<00�����]i��D
p����߭�J��a�p:$���m�������H��3Q].*�(��$�#71���8�ϤH�MZ�
�t�k6a�l8�G��=�K&���E��ի{�r����f+�Y2~� �|0�������W8p��e������eS?��%\�Cq'�H�70�1���B 7H�
�`�1��)��.�ӃL�wIN��z5���ٜ[4�
�`����s�f�h��X����x��g��[��`��o� ~�l����ܴ:��!���d�&�ʲ��S
+k�VU7�1K.2�)`;[�M�emA��Sђ���&�_�I�7p!�R���|"���pt|����[���?��u~�fW6>��6�\;�ޫ�~��kZ�3�S�)i��c���y{"_����@p`+bԿ]�
�$z���tu��{k�
��f�Y�ͬ�
ZCF�*���m�
VM��r��,�9�o����P����3���������_���Z��Uv.E�|����/�}��w��;�}�ڸ���t�>�Wu&��z�^������?;��ʾ�	�#��	��YiMlZ||u����q�޴Sr&�U�O�`
M��q�I�v*�_>l+�_?��^��`�>�aG?k�szFչ2��39��Y�Y���̄� �9D�qph���^��`\s��=��&g�FX/؞�Vv��=N<���с�`��n��ZgqWp�)"�'�fX���KlGͶ|@XJ�
<@RX�u�y&jz�?��s��
Dh�J��1Nxd
��3��/��U	�Q�
+��I0��

6[�~���!���Fe6��!B��C:1�i
�W����܂x�N����i��=啁]7����	�!�8`ޘC|jm��/��L!��3H��צz?����x��Z���){�����B�5d_r
�
y�~����z���Z@
�ڗ
Z
Y��D�J�d�(���9�č>UךCp�5���gDt��ܲ�S<��ŝ��щ��j����veK|�
+�z6rm�ʄGq�M��~cF|l�����HrZْ
��q���嬤:���w^|���i�k�={���S�qC�ڨ���w�S/Z�a_�I��֒4���{�~��ُ9��e��*y��ج�ċ�.��Cᑬ���ҵŦ�W
�n��Nl>
�g��������2�����;
�?���Q
p��(��ǭ��xض�=)�t����Y�A8��u���cS��6'��O϶V䜽�w��,��B8*`��)��䌺�h�BX#$��ƍ�����=���$��~�%f�،���N㠓Rs�3���?xz��=ܡ�.�
s�y��s f�kY0����kQ��G�=)�ALD�>Ǽj���+ҳi�VH,�����
kS���
��0�j��	j���Ҥ�mO��;����A� _���
����B�·�y�8�(�+D���0��\�֏|��7�|y��A
��>#9��I�A_�#Z	�U�ĝ�q�,
mϫ9��n�W�������\D��C�V""oϢ��T�XHս
$�5�Е1
8A6l�NoJ:��S.U���f{���t�
&!�C�I���� o�'@���(��l����"?Zh�f.:�M���ܼ�'���ɂl\�kc�Q�Q�hQ�@~�Y0�r�6�3J�^��w������,�m�_|HD�&����c��
hϬM�i��+�9�Y�I�r_�s}��/�N�4]�� ��K6b�K9�|�m�c�[�c�{|�w��4o�ʘ���
��N�>�;�
W5bs#C�I�hm���j\U�
+k���V����}Y�I�c���o��70�/��<��V�>!>A�-��{`0�65�k���lVۆ�J�������������bc�}ج��Ń�ʗw[˳n�0��s���C����z���=� ^��'<a��fZ�F �HLw7�>9q�ɩ�2l�--7�����җ�;?�y��|���Z��\< oM9���!��}
x
f��f��W6��^}����Gm�iq
6';�9��eVDž�7��]�6p �/�1��AO�|
�;�g�.��,��Rt��%��
\#"}��	b�ѓnm7
�
+�Q�q��U�ΐ���xX֊��M�yygn^��^�
+���x�	ִ�R���yK_.��f�Y�����b6�7�!��:㶨p��
�ܔ�� <h��Sރ�s	�I��X���е��֗c�c�Wյ5o�n�:���i(7����C�Vs���t
0�&`2<hP�#:�6�ja�%��c.^��DkU�mP��$�6[lN���

,��p
��7
+`��.�1�y.���2A�6��9!>�F���)�9�n��s���a
���/
��ws��a�vm�ڤ�&���
:٫qMk�1|!��������tШ�p�k_�
��+���GJ�V
0(3�S� �'��
sl�ڔ�Ӻ�Ϣ#�&
�u!�7*��C�O	�'�g�>�������k��ע��X��S�����=�����)����o{�`���{Z"`T~�)��7g����u�_=�z�Drt���Ę
8��.1�;��"ߝ�'�R�.ߩ���W�����[c�c��9���w��)1�s0s^�hyi���XϾ>���)Y���7���\z�6`�7��#�qy��'�e�S�#�E����s~��
�qX�|X/|�{9�V�|���	��נ	���W_˫����[�
�E�s��i����^=��XﱔS���.�����$
��
��V3^uG�-k\ka�N�Od}����S��}���� lXLj�O�4ݩY�*9s�z�a�>MO6�f�j~aQ�x�L����V�Eg7ab^�	��Y�EW��]D�80i�c�,�.!�0��>��-�*�v�sZ�hmm-
�����590�1g�M�-��v
/����O�
U��F�y�-���lT��-�Ex�l�#_�;U�1�Azז	WB�'��Mz4
�-�D@��8͊�I]������7P�X���¢y ��(�·
_K��.$�E6�7�[��[
�.
X)�`(,�}���G��^���>
�t?��	
^&"FM
�����z�iy�hf�]��d����K����'����F^p`=1��+�^�,�Rwn��>�U��|�֤OݑF��
�$���>cS<�
/��G�-C�%�:�
+R.�(��um���]��9y���wV
�Z����� g�n�$1+9�p����)~����#��!;s����Kz5=q��=�T5�N�k���a���yo�W<�
���������e�4�׽
;_潶��\�Y�6f��ۘ�Ծ����gu\­'�$������:�K����ŭ����}_�>����#��
����A5����6g;��N~u�'o
�lx'�yj��a%�I1��me���Oz�f\:�G��X��W��i�瓘x�]Պl����Rͯ�����{�ل��x��ߦ�@�\͆/܉;TmȮ$
�3��:?Z���36f���9�(�� �<��I"����bӊ3�icO��oxv���(݊�]ފ�]���e��<5���{�{�����珅��B��wD���lx���l	�ꎄ���[X�9
��E��. f�QX�
c��>�l���>��騴z����sh��������
����͒ф?Yw):��-����u��{}NZ��i��G�`��h�nA�n
����� [...]
�
��6�=ќ�=2��S"�w!��/Z�a��
Q�q}�_������Dp��5��i��\t�
"2r
�7K
+~�/oY����x�[�^���>�6�']w����C7�Q�9f���L�d<�s�i��Wޒ�K �����`�Sn�`x�ʤ���+[K��ܒV�ڳ9k�I:M�4೸G��t������7�c����Kq�Y
wZ䤾s��vbN=����������7�ڎ�iiuܡh �Ҝ�S5�
ڎ���u�ž-��wϾ�<�|�i/�Kҳks�C�G��,~u��ؘ�d�k��=za��dan��>�j]��U�ف[9T�Sђ��Tۯ7������2�w���]�t��
e[�kR�V+
�ط9�T�9��y}�������u����O;Mj�3����M��z
�u������3:smFx
�bCjΦN���qm{rBӖ��uؿi-U����
5�����v�t����	�  G�س{�O���7���$�.=���"���W/>�:|���ӓz�Vx�Zڣ���B
ŀ�qZ2������9/����x/
�� ��y�m^�7�5o
�|�{���Y���
s�ِ�5�)�@iXgxx�f�_��z>�߻>�i(����
Y���"��A�%
�CѸ�7��W?}�߿����?|�r[uxd����E���d@/MxU
3�S�wzث���Hg���
)��E<b���P6l6�#z%�	��m����S���&
xWv~�b�6������Q����]��:'n}9�{8�
�p%�W
���x�*����ս`
��*b���}2ᑯ���XPŅ�	���f�h!�C�
�v+:tl�Hle­�LyՀ
U]��^��lB�̌�Z��m06g�]�ʬ�v�A�7
�?Iͪ�`
qS���N�&|&	6sx� [...]
�^��Q����3*Ql`Gu��o���,�Y}r����Ҏ��
+~~�����L��o�J��gJ;�����֢F��(�mEUb��������-�u�!��M¡�x���t�v���߈?����Ń���� 	k,>�����]��?���f�?J:xSs��_�O���	�6��P�i����Iřu�gϟ�+����m�Q�\�b
��K�$��na�F>K��ֵq������<I �O����w�b�?|
���)�@XP݋��� "�.��{t}����\.�1���=<���J��ՂBDك9{��zp�����j�)��r1����З�j����a�!���.<����������c.�
��a���$������6
zƣ�W��EەdH'N�Q�U?ج��x�N�c0�i�I���o����W�������<�[迚�?�����^ik.<ts�eQ��m:��~6
+|}�2���ِN��yN��l�`�.��^�'
+��7��_'���!
�|�ol����m �
#saѠ�F�=I�p	��j�Ăќ]�&]�
�cV�<f
�7)�Aü��ד��g$5)��4^�*j��:�װ&��l%�9?��'����m�/^�>��4�
s��$�c.��W�C�����7Ptl����Gq0��S�U�2�>�2%;���^>h�����y�v�ڗ�Kj�s�SI;`~��;9q���������3�㉀��H�9I=�Tu��G��3}ʸStz�N��o������U�<ґ.es©���27o
!����`��{�țs�:��f��Z�v]����䄡;1�m�}�z",iN���)�U�t��0>c�M��s�v��T�8�I<���״Kݞ�KO�
�a1
lI�'�M�}���gS>�9
�M�.މy�ޑ	ϧ��s�T‚O�Kxm�9Y�-����k�z<B��O�L����K�E���VTҲ
��d|ܚM'�d�i�!
�R��Cg�:`.�٬_��и:��Q:h��#���x#`�$�`�}2�=�
�Z�3}
�JD-i������>�٤CX�z���W���X�:�Y�*px&�2��>� N�
�j��ᅳ��6k��Q�
�z��}02������ȟ��h�n/iհn��x{a���l��(
��� �]"捖܂V��p�>�i�Saq�������.n���^
�X��AMDL�
�K�:�b�is�	|2d�l-Z��M���	�������!���^~�����nE��]ְp��<1e�o�
��d�Ӯ��6&���ٽc�Y��qzVܘ�i���:�ފ�	��
�
�������t��	����Ώ�m�^Q�ƒvf0c���n�`u��
�Y�O/��S�!m�t������lρ<��
kO�����,3+l��t"�-=�>چb�ދ�r�Ϩ�_�פ
0ߣ
�2N5/�8�W՝��7�3ɔ[Åy�s� ;+ڶ��]o�e
�Q�`{^#Ɇ%���c	��6���b���ĸ�+>%���;�Cb�&:	��
����vc�؋�/�y-��1�э'“�G/+��[ڸ1վgm����>�^�>�2p���y$M���|& o�^Ы���q�,I����͆|�[�W�m� �C��_�x����S症n�с�?[���/�4o��7�*a�ٱwm��k�-�0�g���51����^���|��[L�9u�朮{uZѸ:չ/�3�<V�
+p�T��
�;�y$�8�����B�D�,�a�4��c>
??o
�^6X�yo*$n��+z3
�fX�#����L�+��X�\x:|����Dže�H6�Wc!�$[��,��Z�����L@|�;rQp��g��?ܘU�����3��i��0|�X���[�N��]��1w>�F,6�lǗ�y�au�\9���`�0
��a_�ui��1��7hs!���xT/
Pu��y
?�t"�s�Na�h�^�]�F�Ƙ�{dm���_O,FXg��̡�e�}�
+��O����͝��wUlLIP|:��޴
��âKyLz����T���V�܃�c����˟�fl����}��Lr\|sš^�2�����06n�ZH��=)�Ո{�/f����5����������On
����?��6p�����{VA�%f卸�&d�C>��ݮ�蓿.��D�{2f�
H�gȢӘ�_M��]q������V���ԬN��d�~�d{�^wi{�ݲ����֝Z~, kˮlκ�r�˷
+��
	����X'��æw7&;�d|F�ʤ��ڄ�� ��=�c+���@�
��#���[_§m����_̇�aˠ	x��d��;�Ú�ZR
+��S�J�?x%�8|��d0&��F,����I>����e�0e�“�w�>ѵo¸oΙ����'��CqǕ���+w��
nz��gsڶgӊZ<|�n
+�Q2b�`a�@:�9꿐�
!�9�ݰ
��}:eai�+l^%J��u	��T��?��
+Ng"(>��X��Н�Bߥ<�ۭg�wrO
�
�=�?�|�0_ِ��tv�'2�':y.��*�5�������7n��uh�&\�S����2^e:C���C&
�N,
~E,
��~g�zE*���ֲ>	xw[�y�
���[Ǎ{t\�?�m�)p��B�o��)D-}�Q�.�P\pt|�{�����g�%3�G��!i!�W!wʭ�w������|d�V>�����z�Z�E�K��
sK�v��Ϛr_�rsΪ����COڥ��a̳a�4�Q�,? ��Pڰ����i��£kS��� [kEH'���
�b���V
V�ʌ�����%Mɹ����.�:��˯Z��՚
4�7p�Ř}Q �X
F���4�3�6 ��)�E��i�{�v.j6w >j{~���y��מ���ǽzM:�����N=/����\�sk^uNJW��jJV�c�|��k�ـ^Q�����_�}5)9|�T®<�
�~
Z��7���ެ����ᑯ���π7���k�7Ϟ�/��(�mCxD#�^��
�j�t6��עsh,hP����Zl�#/��~H,^|�E9#`#���ܺC\��yJ�,��ӊ�������T`���I�Ր�~a�9<8����O.����fҡ��X�l¢u,�h_�<���� [...]
	��
<t����<,,��(,�}����o���
S�����
Gf���T���+�A���s�!U�VDr~+,�\���N��W�Gu�BHٙ��c�w^��~�6�ݗ
��
�拟���>uba�H"`T%��o
Ž̛�ȟK ���&ErN۞rk�R>�4ԋ���f��v���Q�Ef�"Oڵ��9`[-����� ��4�IU6bP�L֭e�pv�dJ7N{5]�[>��j80�aϝ�A��C}�i���>\��Q��aG%���cV�
Z�ʄ�6>;���S�]Z�ʎu� �F[�����ӢߎX��k*_
�5�=6c.h1`�n��ԅyE�_���I����e������g=�V�)~.8�� [ۥ��9ycpt>lPbne3:g"�?�Q��^$����ۅ�y�2��
C1��{z��J�m`c
���6�O��ս�������O�.��
A琹Х���(^k�)o� ��a�2��o�
��
�;0�	)���suJV��e����,�ԣ���Ϣ�.�
�Q�Ӽu(󹵬�N
w������O���=�y-�y[6
����� [...]
%CC�S�������x��j8,ڏ�y�|�Iӟ^����o�q�g�X��"�+��P~t.�|�dD�+X�6�~��B�71� `���O䭛���1{�ѴG~�͂��˶�o�F
�<�
��	��z>��Š<(;�!~
�ks��1��3 ̳x�
�O؛f3†y�-DXŋMKk6�$G�3��`^��qINǧ7'�G3Nm�ƨ���C��독���F
`Xm��6nҡhL:��fz�
Z�7Jx���ۀ򜤄�,#�z!��t��6�ݸ]V�r�;�f�g�?��PztmBp(���f%��sҺ�	ɱ�I�`����]�M�?I��1��q�o�oy�Ƭ_��~��
K�ŝfeb����۬Y�]z������Eqs��NlL�Q
fm�)=�
ֈ��ӿ�_��	���~i�����s��nN�f���K���K�)����;�g�.�i" :����i��XL�t&�vH�7O�2���_$�m �=J 
�5�0O�5|!�5Hsa�
0X?`u>��V" ������
��_َ�.�Z��M��������z����
�,t��3P�������3�	�s
lΫQ�����c�z1GƄ���WĢ�
+1��o-IZ��_�/:��I
+����Z���ɶ�<�%࠯���<���"���	+:s������Yw
d"�`s�|�k��`�IK�=��3�T�$B`k�R��xt�$�񐚛	�Z�>�ɴǤMz?
�.�}
8���[
��X�
$=��LH'ƣ����?�<6ka~�Z.<p-��3A�
�Փ��:	?��������� �l-_�̿~Tx�wck^����|�s)��
Ț1��tֹ�9�0���N�Aw�5�\Hv~c����;]%�
�V��/���-.;1%�IL�����6������U��N��}���-<Ex����%
�!9'>����ʸ���31�j���)�Y��Z�)��=1��[Gy��Č�&6%<�1!ط6�ۻ6�:���ȫ��=I;�p�.8��u�pHN�N��{�8����
�y�~�0	SN-�Gbes��ݿ1ձ'��o�Jk����y�I��h
�s�	|¥h�Mm�r?�Mp?�������NS�4i��ssRZ����o�Ϻ卫O�ʟ�n�]r\q&�4+ at o�������ɂ9$u�ɮ=����7�ٷ��W�iwD�.�>��o��˒J^�*{�~YSjNxbcBx80�(N
�I0m�q&��e���
{��9�ɬKy
흘� ~=��M8E'q�8��v;��弪6ܭh,�[�D���/�_4
�|ϣE��:��{�(�&뱨^����Լ|D%(�����x��v}�����{�U�
+�
��
�_$`���s�F}*�8��e�g
�І�k��ad�L}�E��Z��Y�/mJû���3�!��
}��Jn^#�ϫE�/��q��y��]��lTz,�
����
�N)���̆�"�3�]�YQ�pҌO/�۵
/��j�
�c��76)<����p��TΥlA1����k�|�U�,,
~��1�z�̭��礧_?�(v����	�t��
+�TٰYO桠|\����|�����_�*6��G^������&Tu�
>Y����ȵ�y�M��b�(g}�a/�?
}�[��ot��nu[QQD�
+
+� �{e� �'����{�BH%���IH�[�����������<� άY��i3��B���qq?�ɹ�@]��i�f	>�>_�6EM6��NT�l�}Џ�b����f���7��zmuC�m����"�]����񩆩R�Cq��x��&\�R�ӄX�)f���*!&��e��%�]��g
+طci��3"��,>廆�e����^�J&�0
+�0
�;W���R��U��l����b��G^��`��2���2ę�>S� �I"p=T�a
�i�����QQ�sؤ���+J>��_K�,�������,�h��AZZ�?+<��f�?kt�]��u1CH>WS�{J>��}���ЖS/�l���u1�,�>ǀ�*qqV��
!�P��3L`��@.9�!��(HI��t��Ye��

?�\c����'�Ajj��7�E�2��Kl��
��BEL�T-���1��䤤3%%�TΆ
�ʠ�g٥f�y�e�D���q�Zc /f(Y�瘰���
���U��'�l��"�hӒ �'��h�I�u.�q�s�c�R�?�t�WX(�
D����K��c-6�pr6GE��
A�6X�ˤ��7�4��9����>d�
��G��F�WA\�%���� ˜�y�AF~��%[��d�8)|{
|������HQ/�1�w����*p�z�����	s�S���7D�?Q�FiY�IJI2p�e�o��|���
j��y�]��Պj�O� ���) ���u��l�����~?��4F�4
����t�%r��v��b
ŅŤ��1J��&��I������,2|
��h���h
d� E[��H����U�P
~y
p��9j�
g���/v|�����{���Ґ�����`���6�U� [...]
+v3
~<t�$.�r8����O}|8 ���u��%��3���,�x�����s���\
+��sU9�XQ�1�9�]��Z
+]�{��t=�G��-Ћ�r8��S)��
�k��:�0����L�5
��"���[\�m)�@��h�Y6&�`���<	h�9�h��?�0OR���
$�!1V)>�:E�1�#��F�>[=�����
�}�o�S����dm��6%)�*ń�'��H1�v�
����%�fk2��ڠn�Ql�~_�>��^/��4�
ҵ�ܶ�1� N��&�9����Fػ�^�7�=aZ�}�|���'2j�~u��[%����e]����E��^�6
x�a�W�"�TE0�ȻԔ�~����߹	������͹ΧӘx;�_ ��Dx�_v1�'ϰ��c�Ѝ��7k
�A��)��fs�S@;����

.��푊-aO �~0��[l�y���k#��Rl�}nׯ5.�t�
���6�>�e�4�:";��/�
%��}��r��,��s��,G��k�ɿ�Iy��onG��{�_�c��
~�a@ ��9QP3����Q�q����R����7��o�i��}���N�׽.���n�םv��~��݉�4c�,��h
�+�U��Hi�Ij�i
v0X�y�7�L_�M����8
�
�� �`t0����*xm�|����p�(�&��'��gjN�MA�=
���=�~���l
+v.EElwd�<
A
����D�1�h���2�I�}mR��F_�yy�=�@I��${-�
��G 
	"�2�
���II��ӄģ1�߹��>WW��e���Ar�N)d��y���[��*�E��)��qL��96���j(�=�}

��)���@�K���@��Q
+N5 at n�r0������6Z�^n6�ӵC���a��{Q>f��,��s-�x��h
��GP~�
�� �}�V~iƅ�\�SO4�b�}�3��N�����W��U�Ԑ�$a��X��u1
��v{�\��?�4澜�=��e>\o��9�nt�d\�S97��\%��)�3V!�,F['�@��G��䙦�P K^�R�F1&�d׸iT�n���꬧�
���J��Z
<쇶
�Gz�~

�낺n6��h�{q2���9G/���"�%��
mm�e�
�
@܌
�h�V��M���j�wYl ��E;�C����ͳH
+>��E�Gb(P[�og+

�|�Ԑ������2�EÂ
����:J>
�x�v~��8��g?7
#��w �ż4�:��ݾV
�r��y�.
2���td8�4&9
���.��O��~�p��
+r�a���NO担��Q���m�Oׇ	���
H��A\�Z#��zC��^��j#��`�zg��c��2mS�<����׏�v8�^��y:W���U�1D
��*K}2BK<����
��1>덅/
=yo�ڲ]�����A��zS�+�y���'۽0���ԇ���֪�
�jR
vz��y��K���^Z����p �n��
@?��@^kY����
��B����J
�DʄX$��86�ٷ���u�K.�%;�N=g���#,�
+�a��w8L��ꄼ]��{�R��\S��$��=�HIiF��̓�@�(���{w]W��Rc��|M�ӭ�
�c9*��e.�L͂'�Q�u-t-Eo�K?�ُ���v4�;��- at m�����R/]{����(��a
iQ�FyY�u�
cϖgZL�>�'����������ϴ�W���01@}z�>�4�
_��{>EI�9���9���9�L{�ٍ
�&��6�9�&�[�p�����_J��ʣ�i+R�.�罔rb
 Nκ�p��qJ�UBI��/�Xn�}���Ss3�k*r�v�#���2]v�С'Ӭ|�$)a��q��\��Ɯ��B7�~��I�Ô��ڍ>SSϴUU1-c�.��)��	b���;�������#q�7�ύ�
��dԩ��"�S2􇖐�k��=�Q�ε<≖K�� ���
���W����{=E��rr��.�s�������~-x�}���LJ���Fr��Z�
��s�^�)Y�'�qL�/�o&���}E�R
�
͔�ߟ��~ވ�[���a��]�N�I�=IK�)���R�H�ѷG�!����Q�W5�tO
P�k
X�ź��s�iQ�C9;��9憒�������
����K9�N�帹Z��h腺�8	DZ�חE1�t]���Jl�n'5�x��� }?��N+�e����bUγyQ����MƂ�Y�*���^��<JM�����:�_t]0/��js�+�'_?@K�hC�F�1�1B�a��`��s �Iב�f�&�q�2��F;%p���0D��{�5B\�[ o�k�_(yΝ����{C��)z�
�<#�r��S�EiOjӟ�5��<�|
b
G����2
�`�
+p���t����g ��bE�����e}�C�Ir����
�C=�{�,����s����?��le胃	D�MK�Xe�d�A+�p׽.��zS��N�7�/=���/�l�o�A;=E_���������W����GF��g͈���"|W[`��M��
dž-7�?-T��n+v;�kFW�����f��q���T]�ݍ�[jD}R�r
��
+_n��>�
^S>]_j |�.R�Jz$&E�9�I��\��|�
�j���_�b���)o��~���>ĕ��
J�RT�f���t���`�����,
+���d�@�|����g�����~�`�T�"��Zӟ�3
7[��t]pOUu��L �x�(�ז!O�� ��a�s����FG>��K��{�YRA��rK���,)�"�w�s���
+�/W�[k*�r��S/�"�E��7L� #���A��F[�륚���IKUɏNU���!����R��R�l%�u��z����F�{DP���銔��}2�-Y�B���>�
�]Ɖ�SB���k�}�׀_C�?���u�j��eL��ݛ$G\W�cn΋��J鑷')aww{�����ۨ����ű�,�&	�o��~�.��43�N?:���<��'˱ ��o3��ØUE֋�ʜw
����a�u�������t�A^ڻ~j��a
s8L ���
���zk�
/��0�۵.��U/Ʊ��𤋐��R�v��vg��!�����J3�u ��� ��:��t��/�ΆŔ�!|��.��L���s��ѝ�N^��t4·�G�Y�=�����v�ǃ>��n�wZ�������0%�u���Dܞ��uX��z9I���P
��З�~Г��$�'o�]�Rr��k@�\i��#'����!g%߳�#��rl��2�
%����Z�b3�GQ��HY
�P�_��p�m����z3��vw��v��z{ɷS��d��
+1�k��/u�.c����y�פ�$�b��VL���3�@�Y�-z�P��|��p��0�F�ו��B�FB�\��?��yb�O�)�g at n1I����1�*Bnk��7{K�5bS^�
�
��qq1z8�
+4~:��{�ў�AL�k��x�����K�6�^��"���c��Q�{]�7�(ߥ&�;vʗ�
EN�rЖL�
�/פ<]��|~8 �<Uab'�%�w�In���`a�G����l�u^oHs��C�Z&�q'r.�4�*8V�&� �7�
2꧹��gjn�����;�Y�,3�4Ie�ӕ|�q�����M_i.z=S��\��}%+��
QR�nw`s.Uռ�>j�|c����d�Ֆ,g]
��~����g',
�*L�|M������M�7~�_��Y�������_E�!���>��!��Y�
�%_���?�v� V��=Z���
0�G}r�2F��5�����m���6��cq����	��m�x��8�aY��-���7��^k�qZl�v\n�{1[��,g%<��&?;�CW���mAF�KM]��t�q�\��·���O��_o��[=��C��g�a\���+jm2r�
�& ��N#����dї��;u=*P*,�0���|�NW��a�gAl 
M�Mq�j��Ʃ)3ܸ{�=�`�-c�
bGG��%Z��)`�dI�zG��
a��j�s� ��:N1�l4�9��BOf�	�ƌ�T�������R�IZ�_*~��n�
�s�� .�XBL�M���_�wz�%���~F�n?�w����No	��A����[���nzʛnr���1R�R��,a�ܝf'ݛb�<
���
ce�/� C��>�
+|���c��������+��FK��zS�˝. c�(��
�[~��N
+"�
���?Y��p{_Qp{����� ��"���c�h+s�~-r�?�X�>f�&�q�1�E�MzD�~s��$��r3<DY���t���L`� N�N�MbD�\}֫6t��N|���6A^�
�i��~��e��%�E���ҝ���^Z�L�� :x����2��5�QR�{�>���b��mW{K��<�MV/��e/7b<�8��}��?�*�_
O���^(g|�������ՇZ��wYk�x���<��'�ꅇ\�5ü��)��W۝��
ZT/���1��|U�������:�:�~'S\��
u0 ��L�s�̼�V��be�S%7󱔙�PB�z�Ղ�ҏ�JWZ��
5��
y/�������`_,2Z�\+2d��8�TU��ņ����{�4��U�����	s�n�����O����G�)+-ϝN���1�hl†GiE�Jުb�K�
�\��Ze��
%�ȼ�ӄ�y"�ǜ)ȩ	=s��|�Iymm��b�
�0���`��iA�_��]h���T�[����
|��,
|��'�%0�����K7�:�����Ȁ�ϟ�/z�?J�^j�TqS�M�������!�?��Kq^k�w� &WÂ�3�=��<򉄖pl�E��<�p���s[�K}��Y��`��Y��{��-��)�GbT�RS����\���b�ݾ���uiϗ���F�	��k��t=���!|��-l2t{��*p��fy 8,�)��iF�M�)��r��j)����j{��bG��َ��q\����z�"��A���Hi�m�p�&�.4Č���qF�����s5��<��8
B��+R
��
Ԃ��R^�˃ah��6�OX�kk�
7��CW���Q�&>A�>B�~�И��`���g'.	��~:K,��tՏ�M㜢3Y9�L�C��q�V�!��J��s\�ӟ\��s��9Q1�&(q�]d�SU��X) ŸH�}��(��t�(�*+���x1'b�ܻ��_k"�o�a|V�
�ڟ�
 |WZ
+�o���uC�Xi]�� !��jm���0)�8F�<
A�B|G�@�]k�t<"���<(���Ԃ�3�����'�>t��$
�ك	_h�}1���4�X�V����R��gE�O�~�
+f��8��R�4.�r����VYo���
L�R�;P�tm(�N�����:����3���V�s�
���v��?TpRk�
+]6�I@M�)�)?�y��y�d���b��|���"���G���;�����½̒r�� .|�)��� ���=P/_�#�$���/+�}+e�|8�`㏕l��p�G3��-@�Gq�bD��4�]|�ސ}]'t���
��M{9��c�5뭺&�c����^��\�,]�zeI�CY,�R)bn��]mHy��ߝd�����x<�;��dl
�E����H��Q4�X�~��dZ��f�5��Z[�k����&�'<7���_}�~�d����=v�J|w�K|L��H�)���}Ԍ3M��0��^o/���.��Ʃ�w�$���Eg���_
�z��$�L�(6K������1t�&���y�O��!�N�l.���
c
�����`�V�R�t�^|�H��Qr�Z:ت����O����eX���?S��/���Z$�����#q��߫
�v��Ng)����/�k[�/TU�ϔM��$=������L�Z�a��+J�OF�pV1r,e�^hh�#0��a��~�,�>w�HA��
(�:*��l���?���l�l�Q���8����;�J��/��?������y`��zW��B�[3!�� )��`��$�,��|��'?�,�}�P��v��{8�:��gm��[�ޝ(��#16r�%�i�xw����G/.��v75}��ۄ�����ϕ
�
+�RCɷH�q��`׍��W���Xd�
M��,R>�6S��e��V�<��Fݖ�^L��<��x_�C
:J�:(я$��g�x�9�k؅��8Q0����#*�X#�++��<]>�����`�K.�X����C�

!��h�f��&j꒞,��z���D��
{����f�efeY��6�2_�n�k�*��{}���r^hk����yX�iـN橪�^L�
��T�q������ܘ�֚�aw�
�?��6OU�
c����/C�$ g�V1���a��i�:���<��A��<��`�rd�`U
+���ct��/��E
{���G2L�m�;L��0:�&�&����{�_���1z�
	
�u�/�U\��l�Ь��[�5l�V�&	%i��ؘ�6�
+��9L����G�Z+%���N��V䧃Q|�YAH5��).�4�!ts3���>���
��b˸I[Sq�,�m�a7�߬ +������� �A��fkZe|�����FW�۝��׫��/�S?�ZT],	kV�|dQ�/�jO4"�M�Gئ9P�(#e���Gm#$=�a��X�)�A�f+��v;1ࠇ
}4JM�*����[2/�O��NsJ�l�e�
;Q�0f9��,#�
�B�#��1Nf.�/M��N��8 at M0��r
c�"]/=n��v�������Q�gj�^)� 
��X��S+*3M`��z
��۳^�wA=l2!n �T��<N�*ee�T	�>k�h 3UƸ��
���k��������L�P��a���2�(!�}�e���H�-�w�Y)��F�F?;U#,px�� !��=���,��J
<b���/�|X[z��\�&# \^
��|7{!
�RT�ECGZ4\�q�9���up"��/�k�~3�B��5'9.��>�N3�T�e�=��~��e�(y�^s	)� #��D�

aY���k[��r��-}{ x0����P�ȇ���!���L�J�X�/��Z_�k�z
�s�5�L��
�և�QUe�4L2��竪.+DG\����J�]]��v�#��t����QJ˟o������4u�
��<���DZY�*.�d��j��x/<����}P/� ���,����И�f�����x����8-�"��� ^'i��ҏ䨛*A����W�8)��-�E�)6
1����7���/��x-td��Lac�'(��Lᅶ��|���Ȏ��}(g�O������%_7F���<�C2O7*�>���^�J8� �� [...]
+_���܏!�1b։�
6	���l��VQ�m��j��
�����΀L;_��NV��f���iv��43�H�-9�)']��6�to��Y��6A��P�P�I~q+"�f/*��r5�l���L*����~�uA|�&p������ֳ�J�Y�.6���gsB᱖C�X���JB�����;��[�0ϝAB|=,Ρ
��?
���M׉�c��VR���s,�!lus�g��\�Ä��qB�M���̰���EE��IN�=]/2�D]Wi��>�V�О[]��}�����v��NJ�����@�/5����^�m�
MYV;��W�U?��6k�%��~D𑦂w��"9_��:_c�v��(uC��Ŏ��F6�r�\x�R�x$��
P���o��
endstream
endobj
229 0 obj
<</Length 65536>>stream
+9���c���4U���z�7�ݑ
+w�RF���n�qS�5������턂�D��cB~+	�����
+���_��7�����
����r�ϟ����A|�߫<��u
K��窻�_��)����S�ˑ2�s'��A$�&8'-.�
+/!�JmV�T�����A�E~q��
�~ވJ~�!�wXɆ�2���
��&�
�2���I�T�^*�U;
�����z
~����
+76� -�9�۵�/��D�{

+|�
+}�
�w�҉�z��Y�l��������K	����^�3SS
:�½��A��K
�Qn�8�~Lѓ&h�=h��U�g�A/����yq��qk�Y�JӀt�v��$�h��Y�Dx)j�?�i�'�*��;s�[�t��|9#D�
+1�*
ʳ�$�;-�6:�z��wW1�~Rb�o�"���R��?V2�6�:_�ޕ��$؈=1��MQ��\�R+-P[K��
+�
�k/1�Y����:4,ટ���=Pț�W�a���7b~n���{�f��3<�	��13c_LI���سy>Ŭ��t������jp޳U�o��ɷ��_���}�Pb��c"�]'%�IO����Z�˳+�^�n`�B�������&Y��y���'�l
`�W����c���v��j-|��UZQ�҆ʾ�I$|j�0/�#-�f����
o�z
�o�\
����>!(
+��"l��Gd��g�d{i[>^���Nj�z%�%��D���p�aBMJ.r_�.��Ad����e��U�%��������-*�q�`%=��3_�pi�t���1���'�` n�k��
T��o0
s�FG��=�@o
�������}�������
���
��
+O����q>��
+,�L��>pa��$oD�TR?6��n
�7عi�`�!W��^��
Jqw��z�߾ �:��|z
�~�
t��uP�{��>\�.���Ќ��i(};Ņ>��ľ_��D����4�sY!�&*%�JNp0(��+������_ �'O at a��A_�
@n��
���:��� o'G0��I��N�W�+A7^�Uw��'���x�6Ʊ	���J�V�w%��3(��
(��
���#���#�5�������o�W�������
�;��4h0��C��
̀(�EJan��4^Mrk�ߡf$^CF_A������H� �g�O��A�o�������۠����~p�^�p�k.�p8�	�/�>�$Dot"?�u�MT����J�����	��Jƒ@9�
��O�@�A�
��>�z}�
���[�׮�/�y8����o
+Q�ߙF��X����
+�g��?�ij�� )B�H�܌�<��D��������
r����P����o�~�zq�
����í[�kW=����
�ʊ~��'~�
A&۫ͪ�
+�\��g�+���0�*d�=RZ�'�W��\A�8�|�;��^�=�w��u�
�/>ݾ�����S袭��= 8[`����W����u����qn�b/9T^�|7�C�b�>��r��b�~K��q�p
g�&B ��� t�@}'y��J#B�S��Z�K#צ��J��VF�C��&� r
��
����G�+���=����G�w�^��>}�FL˾׈A��W��:�>5l�𱺉r��XU���.w��ܿ�RV�Utb�D\̕� �Njg��������+`�� ��(��+QQ�C
t�R�&���i	�ݤ e-�C]���n�v����H�'5x�#l~��A��@׏ �7�@�
:��t8��c�Ӄ��~��t�
(��;",�V3<��|=.T�ψ�
p��Ey��o
�TY��g��v�!+�z����S�
Pg���@.oAo9���} r�����GP��G3;�L�z����,��6h���AF��M�
+f���G��|j�Ǣ��߂=\A_]�A	�
��Ϟ}�'��ᅢ�88�
�u���(���j���k����k
��4#ow��=D
]��[l�
qp�z؄p�]pD���o_A�^^�O�G�g���]=�y�'�/.�����.(��ݕ���c�
w��Ur�((;Yp�x$��
�3AI�ח��5�>נ�A�B���%���z`��7 
>��1�᭿@O�vx�
z��)���%(?$�wbJ��L=�os��q8�"2)k��zi1K=���nJp;��)*9�Z�7�O�
A�/]@N@�>����{�7 ��y���C��A�ϜA���Wk I���n��b�
k��8㬐�3]I=P��nJD�Q���w��[���+��<����;� ݺ�;����>��
��e�oW����Q�Aڦl��an�X-�}���=^+
+�r];�g]�j�%6��42�6v���?X�7]ۇX���N4��OW��@�3��Vf�6�x� ?e��
8T����=�Qh�Z$�Y����#9�߇���&ed�%&'�e��:ua1^���
�9a���sw��WU���,�D-ye���
�GV�S�ա���;��"yh�r^�"1�OHx�u_7wл'��Z~r~���t��~֎!zkE��̘�I^�~�8U�]
�+�!�7'����"�O��VCe�0����A	�|�~����
�o.�`��>�W��ӮB�
+n��ůFxh��j�YU��O� 9s�՜/T��f�E��Z�f��x��)AD&:ee�
���-��
�%
���
t��=P에��
�#�����e������XYc��b?��r�AZ��
��/
7T�„��W�� -qȏN��}5����
�v���y���
���.��I+���)3(�#�x^�;[k�8_�n?]�j�UqњAJ���,��K{�B"�*�@
��9�q��wKS��������#(���|51(�z�W�+���?Y�b'i-T7T�:�Բ��+)z�xw�,g���ˌߜ���:ʓj�0G\z�	~�7�#B�@g&�I�����KЗ7n�r�
���f�'^g���
�ط=<����uZ��x��4�b���|�/�a�Q-$뵵U[��t;;���~����#���wOP^X4� :�Z���u��OA�A�W�y���.C|F��`�`�
s�����<Ѿ��e00;S
�͉z�j+z���=&D���\6:�P;C]���f����iRTs�2�@‡�g���v�i��I?����x��*iK^��T��֦j+Í(m''r����>�U�9�_��._
jBo
4���qgr>�
��E[YfT��G.�2�Pc����U
�;2aOQ]�;]E���$�z+r���ս�P�ȀP��G74'�W4�v�Xn���{��KieU��H٬h��)�l�Z��
�x2�'�Ή8��J��;m���5�+ܛ�B�
U);k���򎖬Ɇ������
+����j�ϔ47��	�^��U�����-y
à`
r.l���ٍ�b�3�^k���ic��M	)I3�Kl���4WF�����[s�x�n��@UglW�Y��	]�/֍�d�4��Ub]��2��5��;�s��'Ku�߁
x:DŽ
Ji��IR���I��j*��e������z����~C�m���ʫ=�Z���V�a�Oy���o[��?Yk�������&L�
Ծ���>F���'k-�R6�Ök�+➚���u=|v��:��
 |p�����L�W�k�Y�J�uN��׊��_��Ugfw
�!G��������2V'99�=$��aZ��$�]5��C��;��$��~n���X���
"騈S�W���Y��*�JH��Ĩ��
�@|Η���[���Ҩd䛵B���
�"�D��*3��+⤭uI�m�0�@B9���N4W�̤�Qj��9tu �͢1���
�׃1L𯽺�����BC�YS[y����`�/�/��P
r�d���͔�&)�z	!�`eR X�3rl3\��bu푊��� �͵K��&/:�V���<쁜��9�	�b�&�ـW�~_�
��m�F�v9��Yj��
��@NJ9R��f[�SuB�BD9T
+p;R�p��c���&i�aj�� 9bs�
�7�R�

����D
qgL�`&�$ĩ���8m�C����B���|c�U��Z5e�FyD/���
�g*�ǚ*�I% Z5��y�Ȩ��8��J����m1)�PJO?��$�|�R??m��
+l��I����s,
P��&%
b�ac���n.��jE�yF at 6(�t�Bm�i��oK�ؾ3�ֻ����V�sV��ѫ�"�NR��Wp!��l�ł��}Q���52����uMjz�Y�#YW�� η��N��Gt��C�/��V5z(�e��o|X܇!:_��
]�V"����i6D7]�:���[�8r�\�lԐ��˕��k��g��]��\ܳ%�w�c;�AZf���	F�F/�ۨ(C����7�a�m�w�C���!B�N��
���}M�_��vu��4i�l���L��?����$��Qt�y��s��cN�<�岐w<�%폕��
xlt�=�oH+�G8�s�O��GlICq��|�ޢ<����i�p����Ia�=ye�3�
��c��״\�#m�e�}�ɋ%Q�鼀	�
l[�
�o����W�aY)�[����v�����%��:�Ş,0��r�ENJ�-��.��s���T�2`Ut
Z��}MK�m���"��
�)q+-%
G2r�\w��ٖ��1j�a�o�aZ��\���t�aÏՌ�s��Η��
-b;.V�<�

| #'
HH	GrZ��%�M*����R�y���oUU�%��ñbo��g��nR��+c,�hy���>�l���X��mU7���|�Zg���^���0:`��)���k�����J&����EӾ���
)�0
\�yjU� g�-G3"�l7�ߨ�b�5��'���Sue�M�.�
���K���K"��l�Ю1G2n�Q�*2+�%�Z��D���A��~��}�m�>�cb��p��at ���
-��*G��Xd��TT�[�բ�Ֆ����I�B]�i��Ө��?P0a9-ˤ���)��
���z�kܞα1g
$ȏU|���Ф ��h��r�Y�F
���5�w�\���fS�r6zP_��^G�t��˶\ӱ�fZ�D��������o�W�X�	��Mq���"z�X�t�T�x�XY}�Q; �����2�UI��
���?�e�����
L�q��q:_�?�(/?߮�بj1h����T��Q<�x��gW������s����5��pV6q�?��(�T�(6L��
�y�ښ��]�omjB�Y�͸\`ϗkڗFp�'������7˨�F91yG�O^F��4�����r�^r8W]��Iq:���ZLrJƉ��kQ��P�����h��&Op
+�Q�E�,մ
/7�
i$���n�B��J}Ɗ��T�v*��
+
z������ο�Է~_,g��4O�B�~�}�,���⏇�4�()�HB��
B��{[�p�? 
��H���+���RQ{:������]!�U�,���m�aBvŸ�큒�_�խg
u�f�g�bd�#�Xń��3�$�L�S���;Ii�{}�����ck��B�Z�$�
����i��}y
�
+�����e��G
+!ޤ"����h��� BŐ�#99c[��Z�#������!�:�G2
�8EK7���[����=�3���v��.T��L}��
�ET���Ȥb
N�"�
+b�}�
�g��BW ۙ�s��je��
>�b�
��H)�\`��zK<-2��JÐI���O�fm�Ȩ�.7(y�>�/	8v
5*���	�{v���t���s�e�|_�m��ڭƧ�
A}�������.ɾ��<��|�Qlϧ�P3/�ʙ�ք�����~�kR~j�2À�O���%a��T���r�ɯ8��!;�����f����f���bV@?8�D�O;��g��R�YɎn����]���f��
*bƑ��j�!&�-0J�W*����׫�
�V����g~_b�^��6�ӝ���7�ѯ/fpی��7JM2��{�0IgK���Id�n
��Oݙ���M�"�����%
�XK/:����-4���kz�6+�.7�?W*��Z>yc�jU�
�{�
L���gE���s2ϣ�-Uu���N��6�f��V
��|�m���8��࣎��t,�u
�ul��l�Z�gKР������}�H�_�ڟ�>�B���o�f:��g?��z
���*r�
+�}��Ƙ���J�Om9��,	�Sl�I�׏e���"
i�[�����Y^s��Bd�d���dѐRO5�c1wu0**��/�5�ӓ�%�t�1�`�l��.&�
�<���_��� ����3HɳN�L�ҷ��[��H���&���
�A�̳c�r�y��k��ˁ�H�8��$�N"�R&P�Uէ

�9XfMu��\M��Y��t�*	<� ��Ř��1t��Y�$������c-e��j߿KFLY
��c#��p�˥���Ś�,����$�m��#���
�9�-�(
��.�8_n
�-�4�d��"���Б�Y�����P�$��r���;���f���j>�2MJ�
D�[��"���4DI��݅���f��?�գ�O#X /h]�n��
�:]*#�֫[���C1-�ߛ՝��;��]���
a��<!o{
�ڏ������Ogx�
�5g3"�����������ӟ�S"��Qs�!L�g�QU����i�?V���7U���y-�'-�Z�j��W����Լ�΂����7�J �-3q�f��!d�Rm��������%&ުDE
�#�.L�jEeM�d�':]�S������3 �
B�5ƶ�!�f� �!Oy�������S-����x���s�Y�s���,��g�C'Yg���Kd�6+;���l �pO����ښj�
u�)C�kY%�1d�Q) ϶�}�[q�?g�EgrN񉄖a�v;��f�-��AtH%�Ny��
��&)�po
�5T�1v[�xx���?K"��4<(Lp�
�&���
�\���Y�l
C}&9a���i[�!�� '� 6�4J�_k*��\��X��|�*��RU��P��i���nG�D����$�7I��F9�hSs�'j&�8��������,	<���,
+�.�MÀY���lܹgS!#����[�0�c%�b�m�;R����|9C�9Uҡ%)Ӫ��Mc��	�s�`��QB���4q��w�d�Ÿ�����G��;�RR.5̒�Y��_�/Eܟ@V��{r4��t�� ��;Rj�bPk�e$��Mؗ��&�מ/��V5��(#g[�����m�$%z
g��K�߄��U�N�;N��j
2j�^BI��C�j�	����i?�*kN N�jXp�����2'*>�\��
��i�ӄL��	�\����}����֟��ܳEF�M��4L����>�Id�al��RZ�q�g�3rO�{3+i�b\�� 2�x�O_����ow�z��?7&/V�Zl6ڤ$��i� A ���k��s��oif���93gf23��2�}�L5�{�!�H�#�޻�@)"M;U��5��9�s}�?�9?p)\
+��Wy��{�����\�<���]�Y�Z�Td��nv���O��]
���Qh�K�+?3��N�t�[�U!3
��H�����*���:��� �����G�

- ۟�{?o
+z�Ⱦ
+��5^�R�W�ط�d�5|���E=��H�e
��Lg~6�����NC?�
�^��I|������v��
�j.�HN.��)U�y\�g��u�tL������EZ�v�m���_�T�O�$�&��o*|�3��Y�ym�{e�%U�D
�Ŝ
��u���*�.6e?��e�����, 晁'����]���N�sf��+�At�m�����P�r.����B ��rϣ�m���1v��ؐk߰�B��K�X��R�3[�l��D�
���������lLA>*��ܗb���s�
Ow�+��&�7��/7F���W��`�R�X`խ�"���ϖY��������$<
���1H�bSq0>��ϓ��k~@��L��7�+��?s	A�,�E�6G���ո�
�7�H�v�+�s�d�*���LF�˳L�k�_mL"R�,�)�/lR�y�C':��#w���r~�C]k�#�"��
0ˁ��ů�� [/ߙDD��*
����N���'j�,�U�'z.�g�<2j��Pu�}�6v}�<�8T��-
�j
>54v�RZOV�@�_�B}�S�u/B?��47�G�šw�X�[L+;�_�zj��&�2	��
G����;�T�O���R1������V�Wѡ'zA۱�uxg��=�����JK���V��	7��C]����a�k�l]O�7�k�;��#=w�G��5�l�*Ps,P�W��L�{��<���5}O���
���p+�~-�vjnhߓ�ҽ
+D��2ͳ�/��8�
!"Χ��O�z�O֛F��4ܞ
�a�G%�L�?m��b�K�2�P]�����U
��ʶV����-�K�L􁂐�^D$n
�<]���9~m���@#�Cuo-�?t��ƫ߻��9#-yO�s��0�L�w�o��ȹX��Y����4,vk
�;U��h���S�@
�?Z���L
>��4!��
~��Qr��V��&d��
R�䬲�q@�c�lc����Β����+��_{���o
�+
��ص1h8��Ol��X�_� 9c�\�>~ej+
>Z"�=�6Ƌ����_���_͝ŏ]sДc ߟ(H�Yd����e

�ť;��i�)B��("lg��
�_׋
+շ މ������w�9T�/�-"����&]��AB�f��Ӡ��
+r������ENq쩖����O����Uq����=q7̓�:E���L��0�eݫn�9�js�2x���Ks��oT��;�Bi;,�A?&���2�q[���4V��p�/k�YD������5-��;�Yfie;��D���-��<
�l���EG��hi��.�D�e}^��2r�!T
k�Շ
+|�!��\S��m�7,��w�d�4���A�Z��q.1&�1�N�Lb�wF`V�
+��}�h��
�s���;�sh~��d�Gw+��}%��D�o�4
+v95{�m
.E}o�Z�]�enU�\�/���c�៬S寗��3�(��k�}*T�k��W�L��À��B/�]hҎ��[��ŀ��V�ȣ:
�$�W�Jw,����!��+,汱wŷ���75t��
�>
�K54�]�H�!�)�'8e�|�
+�����;Ztx�
�K�M�O#>��J
κY�W�9O�׶W$؅�4]s�MsO�c�8t��ze���������
u�ohu.�
@~
��]Q}�S��
��g#�c�$���U9�	%'�l��,.y{����@�sck�Ý!P��$*f�������	
�;��7u�Yi.��k+}�ҘCӔs���)�k6'1�kC0�yl�E�{
��\]�y���$2��1��o[�[᳜"J��r�f� f|��9
yo�ʸ1�?g�y�6P�F�
+z�'d����]bz�z�[!&�gz�����~/"�]���%]�O������@>���2���o-�i.|�*�4t=�
+��"��5�ծ�k�#��<2h�e�:�&�
.����&���-rr
�ٜ/���c-�;����&��g*:�'��gH��嬢w�
��
��@ι<���]B)�����2u?�
�elϐ��>������e��:����
+�t���
Mi�l3��V�6k�����>����5x�Sz�֔{UIJ:�D��y�3�ީ�P�����_���OM�n
W�P�S.vW��IŠ�v�BF�t��5!��*��]�|�r�_��Z��7��u"�' i�[�9�@N���~��g^W2R~�F|�n��Ϳh�׬���X�=Bf�#�`i􉞎;��T�����|\b��j����Pa�j�!�V����<J:�P�$j��m��� ,q�D�x���2
r��4q`�9���n�q|m_De�1%'F޽̨wȨ�˂�-!~��s���,�k�^b��%��AOT��{�ir�m
+��Ґy�Мy+P
A�I��0�{��ӱ�òJ�u�������Cq�'C����_���*�tw�*�6�L8P1P볰
]w��9��P�r�-¤�pg����>���yB�4+��%nQ�g�^�7�KY�|��_��5
�Yiͻ+��a��>�44���񆞒 �`�+c_ի���w{ o
)���yl�UH��jh������SQ����?��
+�� ���%&�Y��TM3����OJ[�𨭑�P)��~(�'nч�F��W����in�3|��s��Ҩ%�Zב}��-)��?摯r������ M`���W:s�O4,ʙ�����"��9Kp;㠗�*:�뚠�X�"��>%
�K�й�Ð��������{�iZi�,���4�1C)q����9\�w��;��P4�wT}�a�W
} �r�%���pAے�xg
��@B
kX��^��U
6�L
+0�GN(ݛE&�'� _%����~�T�ү�3_�k
+
��?k���`g��u��5������٥3
 �L#�'����
/�	�ɒ���[������
��Uq��yJ�WƂz$�ʁ��y���9T���<1����'
+b�WWpfb0hy~#㧅}^��}*t��8����M�v|K ��)��
��7��^C���z���u�'����˹�ћs�ԓs߫��>X�Wm�@�<+��Í����Kn�?��
���W�ej�Z|���㜬��'j޻� 9fQ��#eA�Q�#9��.D�
!�=s،}	:
`�W�Y�[�`�%bɖ�Rh�J�U,�[�+�i�^58&�8�֥
��N�4
�������%~yԱ�Gx��	g
�����
+V�e5�"H3�K�W��i �p�
7t�?��D�4K��Eݘ���
���
���Pu�g
��5Q��2��pJ�.	v #
�j?����i۳n['�q_
M]gz>�%Xl��s��as�"�S%�t�<�u„��������,>kc��-�ߔ�s/�h�W���L�Ӥ��#u1k5����������Ǜ�>
�ECG
�0І1p��#��#����mv q�2Q��2zk�8\
��lb�4t�S���WR ':~Ӟ�i��<HJO>��]\�.b
�&4դ]�D?��<X��:�%%U�g�^��o������	�NJI�_�q�ڶ���>��9��D���g�#�b`�|JB�g	�~�$�zl�e��P�O-���Aޯu�>詎=�Kx�O~Vз������QQ�YT�O�/8TR�N�l�O���,�gYE s-�D��X�/Ɩ!��R�=R��$�h��*���u/K�G��.19p��v��cA����[eA���0�|M��
$qk�음���bma���X��Ѻ�3��CG+$������i� [...]
+x
�ױ���v���}@���P�� 7��/s���C��D�xm�_IƝ��
���g��
,��fQ�Qx��&J߇[��3A>��2��Nc���-��b���2�'fS����ҳ¥���2�|�ӵ��?VZ?�.����b�t
 �cs�G�BO��y�2���<^��:fA!���9X�m/��\��ߙ�V�J���v��qT�O]�a߶WF}K�x��%v�

#���k���=�M�.ҫ��\�\M��';h������r]��z�+�PY;#������~%���Ĥ����쒡� f�
,�ު{�=Z�vk�qO��qK�y;�ؤ�֪�yT�o{���#-�VՙyW�A�S4���=��t�ɀ��i�`��OO~��/���s��V8E�(�\i�G0�
+�i����jOL(���4�
"�<X���]�@L˹�Pv��6�}
�h
�1�®X�qU~�~k�:��_���Wr�4Xp�-����a�5|�ED-�W��NW������$����O%+��jG��<&uO¬�����\
+�&����ஊ�?Aޜ[$���b��O��]N�M^����6����o���g�?��%�ZX�m�赾;妡'�ʗ���}CלS.��E��3Ccߩ�I��c`���*��6~w,��s�2��:�ånl�/������c�|��ymn���C�]��qo�Gۙ'dz��j��8��ؒe�:dw���n_�}�
"+pG�U�pg�R�'a�-s�d�
:�2����`1.*m_K�hڇu]����Sc���������?y~`��� K*��9�ʭj`�Π�$��	yj�~���^[�-o�R���!�=����F��� �3Ū؞&��<�9Qn�(}~�!Vx�
�-���I�U>���Q0�bl�{	�
+�聆Pf�!�m���@���e6֫`!|*����@��S��.���*n�""l
��
1��K�3u0

�2r��yb�Eyc�cEG��\�v�;�
���_�Zג}�1
+[�-zjhϺk�,|zb�g�5آm!"vw�r��1��L��*�zl`}�^v,!3�C%�]���=9��5Ϭ9��	��}
�wAlN�_m�=�v�]����5�Z�@'�"�~��
+9^a��l⾒�A�!�e�F�_+���m
��d�mR ��Xâ~ѷ}
����fQ�[c�W.I`����FD�D��@�����Ef�o�qLb��i7�	I7�KL��8:S�Ϲ�X@��ydd�N�,�)�4
��9r�G�c9��er�K
+O�
�ze�F�־	��%��3
lO��6'�����'Rf�]�84޿�L=^��$����䵁�7��;'Z*�H��l�C"��
+nO��v�=�
+A�qu�?u��L�8;�M>���Z�􉡡�HE�u��MmwU��;�e�or;
#��E$Ƴ�:|��:�R�6Ga�N}�9�J9PQa�U6����!����D��`�#f��,u��\�ʹ�Ď��ڑsw{��+���C�	RA���qh����̀�	�#
�_�q�|�����X�����>�����
������
jB�z
�q��u�)$Y'�Rj�Wߴ��VJ��`
�|�#fiLji����ä�k�S��}{������#-�Թ�ad�u�Y�6�V�H��)|�m_�� �B
���F��e�pO��F`����{�o
<�76�x����"���X��T�Yd��L��$l�aT��u��k����}����m
+�t��Xp�3K�7U��D%]�
%�p���D�
$�+�D:D/V�>5j���kͣ^-�v_C(����^5�ĽL��)��
�iYĤY��Gq��>D�k�]�ƃ��1�	x��0"bQP��W���(<ag
+�h
�}�G�l��c�C�Ϸ��>8�)�?�W��>J�J� 9��e�i�4P/RM��jK���l���)��8����၆�>�s9.6��W𧌕~i���{_��_�]9O�r2D�,|ڇ��|��GM����^;
�r6jg��g�0k䍐Ǜcج j�.3`�IXD������� ���ުw���/�C�W񷙈�H+b�Fr��[��
_|�+|r�6Q��]N���Pa�� }�-�������E�������Fm��nL���A
8��ѷ���ٔS%����-�Ԅ���|�ǧ ����n��W7p}Aˡ�A����b|�H�&߳K�
k����H��C4-�L��Zs�+������O�uow�Qqb~��!L�C5Qg:X{�C�:�#�� ��r�o���lh
:���gz.�8�Yb�>�}v%�Z3��4C-2�¢��g��)���E�
+VA��`Y!�����|�
�ry���[�/=Q7	��|�K�gY�c�v��q�E|��.]�yn���4�V��T�]�D�$�(�4
/�D�&
j�
����Y�=��D������Ɵ&���w�0�G>�&5��?�Q�w����
��׺+��驷����Ӽ�[�Ĵ{�~\�	���	DԎ�#�����?���r���M�G��
���'L:]c��̂�cS������SA*�7t��u{�r�X!�z��	~)��:��Z�.�c�ʿ�9ZiS�f8E�dM%O� �.�	n at W{T��_�\���;!o[*�
��Gf~�KA,�/����u�k,�߱.9��*ƥ�
A��W��$W9�����4}G���������
�\mܮ�1�)�s����ȇN9��*&:d�J��Mp�Y0���)gB5=���B`
tm#�KJ)�M��v��>l�A�mNԧXX5�fx<�(���pe��(�ЗtUەtsm�2\�Y
��Y�ѽ ��k�ݰ>�J[�=w,�����S#s���qI
^
+i/����3Q���i�b�
#���C�l�Z���y�T�W3�r_KZ���(E
�z��;Yk�=5�͜���YL�������hh������@��@}w���.�{�Dc�V*|��c��r���Wnѓ�yA�v׼=g��d[f	�El�OM,�H�':����<�_m����0�6�)�e��
,�?���,�k�K�]d�ms���~f��Uq����9!:��w�Wk
�G����iZS/����oM "L�uﬓuQ��
�k��Q
+�r�-E&�a����(ys�%A�e�TU�g#��P� {Rx➤6�#��
��!�6����J���ɬe �$�� ?{�<��rs�K��za#�
���Kr^��~d��֊���vt��1�����`}� 2��<=��{�P�\�V�����K�fP䞔Gt+i�GZ�P�)�i��]�3�jZ�{�����VyM� /;f���
���cX�0䥾�򩮧:�<���G]�3�t�0��#��~�%f�C{������QB�%1/��!��

�l�@�S�p���@
�
�_����*�7�Ȏ%&�)i����Dgk�6��Z������1����������KT�s��9Y�n/��6
+�rH�U�FN�E�)5�#R�����8�Ya�=ƱD�t �sd�y�͝{�͍)�̫l�
i��t
�
9�~}���&d�O�2-s�
}�9��O-���r£@�XEu��c�w�����\�4
�� _�N

M{2\ޞ
�i�����i�ҷ.)*�@��5�3
�ø�{*.���E��`&�_GG�m~mC뱦��W�Q>9�ԧnl��Y��'!��y�ߛ�%{�I9�b�s���̹�i.�g�#�w@�~
Ǥ\Xj,x0KϺ3�J�4OL�l�({l�ť.wԾ0��S�J>�.����)G��1����.�TX��>^�;�N�5e��.�Aږ��9���k�|�W���֒w�,�򮒋B$�?;gh+��,b��T�[�ΰ��Ĭ
�\n��CJ	;��]�rg��%kʽ��Xpo���@]�¿̈́�S
�tw��G���
+��斉����H�g��Ձ�x�����i[@��:���
+)�v1
��^�^ ���,2輠��o����;�৶ix� 2��!X쥍>l�s�S�1
~3�̺��Td�����߭��������X�\@gy�
�M;[��
܁�p ���QR��Z�V�

��1Kٚ�x��~��Q+���.x�=e
4�2�*1uօQq{��.��n�9	׬c��C5%�)e���>��
�Z���,��������l�������"T�5�~G}�ͳ���Cc��!`ˁ~�[�!�ih�[�����T��im
�M�
�k�"B�
x��t�i
�+�� �_�%U��#s��־����0���f�
+��T,Ğ�s�{�w�9�-!�г̡Z$�򥦚����k���[��?���?W:Kc��y#�OW�
��#
u�t�*�vh�P|*t�}:�G�YG�Ʈm�MB��c���H��\j��!N�9|�� wm���[Ӥ�Cc���Ч��z���
�ol�W3�̀^�\��-4������V�Z4C��}��%��a�[CUOֻK��9�d�����[�O.�CPy�>�Jڙ�E��AA��'�#��-����9\*���s��>B�5��{g���I�R[��>1Z�:
�4�NX'���J�s���^��EFɣYr�]`�
crc~!��U�
NڛA�����1�S6�\
E�9?���*$��^�
+�
ռm�M�`�绅���Xz��g�+�v�Uo�s��~%
|�a�]R|���T��o��_3���9VS�桂'���ϷfЩ��+S��G[C�����W����J~��Ĉ����~��<�f��}[�.~�.��j�)
Y�[4���\��9D�,�"4}g�
зH�Bм�DC���J��(|K�j�G{�n41�^-��&�'�ዩ��	>���=2X����K�R�
&q}j#g ��o�*���5#�ث���
�=O�J>Z����
�2�P0���8�� 'F2�xo�[$j)x6�L}z��4�qI��#�P�bTٞg�Is�Q�Bf��A|J��D}��46�4��2#���P�V)ws�ǖi��ŭկg�E�]���JcK`o#'˝rJ��O��+��xe7"ܩl`���Jg�ew�*�~�
�y{��w�6�@�(��&_�
���lsa��*�z��1�
�

�l��0�le�OEG
jy\�(,CDϺ����I�s`�6���⠒Qo�"���2 at .%�#��
�rڎ�=�_7���j
+�g��݁:aK�<M?�:��O�
+�9O+�o���>lv�����Yi�}<H+�
+�
��!�u� kȾ!ee\4�Um�V>s����*F���OT�’�Ro�`���_
չ�$����������ck��7�P��]}y��.�@F)ߛ�$XLjI�
�;mk��Ej�
9�:�6A*0t@^i��nX����#U����؄����,3��k�!҆҇�
�<��2Vy���xe��
|�BE�i��=	"�6	�+pE�t�_:��낮3-����Q��L}��,&�
{CH+x�1��1�T/7d]]�&]��wA���&�IwV۪C��Yw�_���FoUԁ$�a���iX�Z?$dw��C\��:[�ڽH-_��Xb��<�XGD���crf"ן�H0���\���l`s�

'�澀���T�_�+r��D{
+�8)�6G`McؼQZf��9��u�=I�~6I�y 觤
h���Qd��,:��H'�ȸ��H��:0��:���J��`5��a��Q\ʾ�A���dZ�AH���4d=��y{ %
(ȕ����nL�k�R�ZDg��^�:����zf�F8d��=9
�Q����
+�����N�#*:�����`�rA���_�6���W���	1I��Ն_j��!�������m�n	bc

K
�K��
hH`W�
��P�򍣐�
euC�O{+<�U��X��j��ò)�5V9
l[�|��s��2�'
�=
+�4J@}Y�4��������52ʣ�g� Zxg�>I�Y�ft��1Ϫ؝$$;j���~�M���.��Yd��=!�bs�1OM��6Z�aS=
�do�ܠ��;����cLj���S4���-��
�׏V���Cv+yd���(lDǴV�\���V
.Ҫ׻+��
��5v�<Q�
+.���
��O��4��Ŏڸ�^9�6PW�%�Ǜ�K�N�R���.*�-Bx�(�2:/"��
9���ۭb��Q����
+[b
�z%oɼ�=^
����� b_i.I�jh<4���Xr ��z0��	X�jO�3Y
�q*��.��
�n{��.�[S/:bk����u����7�ID�JKI��)��GO�_"T�Kq9�*bi��
0�O����궒`�8p
��׾��6O�^�׻���c��[4Z���G�F
)�G��&构Z��a�*��iʺ�d�ޗ�ʤ]��Ġ�%��(s?2��Q�l���9`ӯ�ٳD{�lĺ�&Q�K�e�$Y|P�����
���fC�w��9y=J�}K}v�
�Ϧ�A�F���c�c<�2Y�m�~0
+�a���������W+�;��G\	�{��CN>Ǿ��w(���Z�W����9ijU��u6���?|{�䙪5����.l���p�S{I�wm�a�:+�.�uWE�e4��$2o�� H�ʽb��y,�%F��IP{RbH�k4򡑊�_eѬJ|���i����f��p��׵��;�|���
�<�=[%�����nh�e�2����s���n)"�6~�5V�ܿ�.���?�/�\
�ڽ9^�m���=��Y�ޘA'��ӓ~u�U��
��;���4_s/��F+?����z�
{��
ս���K� ����3�qn-�7p�_̀-[�5���Y��Ȩ<��돤|�� 6v�m��[j��b�~U�r�T
+
+�8y���[k�$��R�k,bT�u
����)&���l��2���`rA�%M{Yڱ�m�!!�n�B�w�����H�/;T�
�D�"m'���(��X����d�R��D,ޙD}�C��!v���Q��,t'��Y�\ro
+}���ݿ�`Q?N�/R��j;����.�(�޿��;�b ^��*YW'�a?i��h{�/o�V�=X�C�+ͭ�NX��:�3`/�����V�?[D��Ut�OO��T=���J�x{nw�=]a�e��W�;Z'feK�I�K��?Ku�� ]sU�s���
�
�t��㑐��e$���rq{
{��� -�,��\
+l�WE��bl�=P1`�Zig�YjؗS�5T��8��ZPxG�M��
�xy
k{�6�Z����
�
_�~�X��3`�{Rh�S�u,�F�+p��Ҡ�v@��aR��#uS�O���N�'�/�˜3�uC����_T-��-��Y
�؏L�>�L�y�����
+haX�O]51�[���/q�,�KBb
]�86��]�>��ݙ�D�4�Z��k��
5��E� ��?+�mk��0�ǫ-C������6��
���}�(�Tu�E�T��o�"�
���$�:Z
�;\
��_��@�Fm��XX�r���`k
����")��)D��B��E؏?�2�[��/uC�/���u�E��O�S�s�q˂��� �0��GZ��H�.=Y�pNM��L±���W?T�(~��@�w�S
um�'����
,Ћޚ���՟~k(��y�|a��oo�>ʳ�+�L�2vg�){2ģl���$�CT�ԐqE�J���S��9�J�Xx�'n9�֯j`
,s�
1*�%��s
�
�Ŝ�لC�d�#(9���a��do�{���Œ�ꉶ
�1�
ۙf�(+�/�ro��r���Ty(H�P�b��6a�
� J��	N䜣����.
��Z!o�� a{���c5
v83 g���~^��=5�1�ר�*�DK;���N,S��B(�?a3_
h9�&}��2h����"=�wf޳s�Ļ�L"�����'������7L��=	�Bӕw�vAHxyQ�
���`�;�"�X�È%�ϳ���{���}�aS�<��6Jߚ�T�N��t�8#��.+�#���
�<�
k���7���(xY�V [...]
�Ǖ��>�/a�<r<du��X��\@,R�r��B�o/y�O����P �
Bƞ���f���=�ݹ1X�U-���񻊖��z+���K���疿�v
+����x}��p�s?��妼`�HA��<����ۦ �s,��
z�g�����{
�B�o��Į|e�{�Q��
'/�_چ�wJ68HBͽ��f��6g?�q�o�QC/��d?�ՎyF�e���5
�
.y�*y�=���)���*Qi>
|��S�"B�g
�t����e�t���'F����u.	>�
hZ�5�]KM,�4%��
y!��>GN9�Ӎ�yx,��������u/mBf�j{��I��%!�w�ޟ7�V��ރ��
�B�c��B�ec1�>ū���>��q�|�.`V)�P
+hm4ڣ��
hi�C=h���|��Pa�~)o*�=��=�h
uJ��;��Q[��O�C����"�FP�ĽH*m�eݪ�q~��oSJe
IY1����S懣e�hE�`[��`��^����j��5@����W�2v�Qp�/+���w��ܰK���{
�է"B�-9���Q�q�m+~���#�_I��.0�Y��TE?=R�pmr[O�$�e����p�]���ә���)��f�9�
��
������TjbR�����7���o	�i��?#S����]�����ɚxco�{UK�D�/��W��Q�:���{d�e���dz�u�t�S��ر�A�$�絉��ЗͦI�"��ԙu�F#
�s�O��$���y�
?1`�V	,�.��vg�[C��r^�'��{��y
'��]Z�g_�!�^l�I<�J
�v�Xd�
i,{�%���5�~�$F��H���qt�o[��0yOٓh��+͠��J�h�
ٝ�Z�&ڤ\ܾ�C��Y��!X���ws����F��8*V�T|s�������,6��Z:������uE�+��o(���U�3P
�G$[�a�����
��f�GHL?��
�
Yk͸y<��[� �
cu�� �,����hM��B�G�\}�K���cR|rF�o����Hy�z�u�[�i+�?���a
��<��
+n�U]k�] �}�t����	�W���h���L�"�k8���{A���~�5A��3�Z�Yp��O�v<��zc���ǡ�*B�O��Z�)Ŧx�}
���݆�/�6��	ۙ"�-����灚�$�0,Ծ��uJ�
�-4	��!9�͏�̐�`��W�@��>h�}�G�]�B�����v��*��@åZg��2Aѓ�ֲ'�^�k���;[k=�q�
��!�VX�;BB�m�V�-bU�
 o���B�r���,j
+���@���q��K��h���Ӵ\��?v�_
�H��&&�)A&
�0':2�HKG��,�u�V��P�lu��oK���*�R��v��֩�w�I�k 
��1a�����~[�)ޓ�r���e�?4��j����+��+Q�Gz6}O��/
+��[E��S�եD; ��ET�MB*�(	U_�CN5�;L/|Yq��#��t�q���
��.��߬��<��ߚ��U�����Ĵ%�z_R
�*ٜ�����K��Kf�E�욮���y
.���M���ym�X�@�zh�[�j�;���!D���{�<\�Z$���1I����m��.�at
|�����s���U	��e�>O-X�{;�K�����w�ИE��K���ˡO������.H�矫��W�m9A�Ƭ���s�F�.-��n������S
v"'T�;K��8�7U�O��C�~�W��_s����y���_\�G������5��F_���2���,��oL����M��p�1z�ɿ/����A�^Z �\�
 ��.��RcYďԴ7ߩ�J���'��!�~l-�𫘒|i����m
o��J�
+K#��I5�e>m_N*�n�W�̴��En�@C
�3{� �����s�� �s�:�<2B�e
�=
+�؝��r/��K,�i�6Iʼ�>��Q4#��������'[�E!��r�GjR
2tF��ә����0�[3�\���%���T��uv㑞Iv.a��*R�
�[�<��2G(�Βr�ư�[��}��xY��qp�yf�e���3�To
�&�����P2o�c.�ãl3��"
�lҭbc<�F���FtH� ���1\��-'Uz�,�!���d�_����<����9�Q�rn��	L�������
1:�H�"'Q	����=)�xw��V`s�rX��d]�U���)�p��P�#q��fz�d�]^�ٮ`��
GF&�"!��J���r�MD.<�n�ukش=����*�ll����2�ul�W�gm	)�@��9z�Nz����a�S�j�>U4��KXE�4�_]��؜�'�Q�+�uA澆µ����>j��8>��UrOךw}{���_�DxU�ʭh��$<�d�����а��gx�Y(����]a|ߧm�����Z�}�V�5�MX�|&ޜ$e_�ǖ]�$��Ͼ'f���}7��� [...]
+�m��z���PxK�λN�x�}a���=����Ww��b�O���觧ߘځy�(�=T�Xۖu[H�:�X��Q��sΙ���it�$)�����_I�
(�(�
�`��;T�XL����Ub���ޘF�r�à�ն���~x���88v��z���_[��tu;6C�Q�h��F/0n�(62��Vj��2h�z��Q^����;�� �
��U2�DG }^e�l��
�a�lO�S��4�s�*$D_���o�׆ZƠ�;#�x�Ljw�Sj����EM��IV��89kwhل�!t�e
+��Y�6Gp�=�������zn��$4�%�NǡxW(`�|]Ԟ�R���6F�1��� ��ۦpY;CU/�͉w�S�av&e}��0I�]L�ߘ@F�u4��u���q�k��(�,4�)A�I�-��_��݇:����¯!#�R|�_�a���#-
��c-�Ģ-�}��r?�M_WY���+#�g�)��L}�P������P�M��j���
�dz�6���w&@/�G���=�A�Nȓ�^������K��N3�7��*�,�uo
��L��h��|��~u��]�O�e���
���$��e�x�m<pmao� ��	N�b{��aby�7{���: ��˘��79+����?����.p�>�Z�o-BB�MD-ٜ�E
�:P
+���p��[� ��I�id�KD-v�6 at J�
�c�͵/��})
��C�?_�~3�O�=C+����Fx�`D֧s����	񓔢�����PS#��Kx�Olܛ�qa?7��_
DU�DeƝ�D�'��`��e��,1��aT�Oc���
+~�c�
�H�_�L|�����G_
ܖ-�c�	��{o�ȸ"e$\�C�'ȹ���痻@9G+������*^������A/�5���yc��I+�t�<��o���`�
&�:V�?�qϖ��F�m�x򃔖t�	p!?��qBZ��2����d|Y%���\��6y����$.���h��AR��ԧ�s���
Ԝg;���}	��:��� ����;T��'�4�Ȍ�qR!�~�����=��g��kb�0q7H���9��{j
��\�~���q�>-h0�W�a8�4����`W�J��#��͕1���09'���P�S�"��*B��$�#�C�;B��C-��.B��B��: /w'aq�|�O�"��
���

�D�_x�cRN�L�#K�u���y��?Y�0����
~�_[�^��P���m����r$'Ulּ[�o�ֆl
׿���p�#A���̝IZ��R#�>é�L���
�7�]7wGP��c���N�{s6�%�MC5����-�W�����YD�GN��*y,���I7���FG��
���
�[��
<����q��{ s�J��
��{�iz��81}�������3�O\�S	��m�ӊ
�m
�ϊ���Q�����]97�ǪB�2R�s�Yc
�����Y�c
_f��ׇa�=�/�'�1��U>�ilؙ�;$<�G.`8DtЎ�U����K�1�N�۵1z�f��6� {,$�ݟ!"^����.l�Z�������U�p]zyYPy�Zt�����$"�B`݌����9Z�Ėo�ۨ�>\t,傄U���>Y��0R�6�i\�Z ���
}�_Z�ֶ�3ɔ$�̤Oz1=1FcKb��wT��"�#EA��n��{Ob2g�s�y���>��!l�׺
+��Zs�N�[&��_]1�+7�u�s����-�������>��B~�m\R
�WS�rb{}�����

���%��(��e3*�gZ��
����u��RFRuB����;
��
�R��qQ�+�\K��|’0OW}
$��Zv���#T�� ��C�^�7|�CE���{rJ���Ĥ����U^s�'%��� 
�m� �
+X���v�������'t��K3�e��X99��9���6��<���v}��U<uHR
�!����b20E1W2^\�qZQ_�c��YR��.��=��+
�}����ONN�����
+ln�it��󾖪�F���~��h������<��
[M���iz3���3H��k6"�h���u����U��?�쮯��yuA�W׉H}�&�>[����C��u��m'�������hSŊ��fg5,Y�Ձަ��6n�
�&"�������{fzޟ
+D�驎��e3�m�z:�U
v�V
�B���PGuw���3�J����6>u���:��/9:;
s�B��1c�}��-'2cǎ��q6c� 
<�^��EͿ�]�1ᴝ�x~�-;t�å.�8��~�
7�j��T�- at C��5�R����ᶲG�Zh�l���պ�۴sP
b���y@���z��u��NP��G9�U;
h�<vZ�JY��
��)�%�f��vH�
�8kVi��܌E
)s�Ȥ�]
)�)��W�e���E��跲�r�T?15h&.9���&vU��(�
搿�y-{C$Ȋ�x��%+�v�M��a��
��9+�t�F/�9����,Zc�J��@�V�h����}=�wz^�=
�hU��
�?4�R�:�����7S���I%3w��9��Ӝ5�"g
�h��	s��˜բR
M+zͪ��]�𚀿���{���{{4F�NvW��w�ߙQ4DjI�ה���=��K&*�(F�֧]��Kb�\�"W�C����TO��YySʸ
��j�Tn��us��U3��h��;>s��Ffͪ*�N��B��I�#��|#�&�>Z�`˦ť7�ۋn�X��=�K�-ea�vp��
W4m�:P97�u� �*>�nN
�X���Wl��
"e�1;
w���~u��ږ������_�D���P �s��yw��K
��r��<9U��ٕ�!R������rӊ�&>Жv͆�=�?BǬ��Sz:h�
�lcTc�\ �}ı�2R�n�9e��u��1
���Pt��
~��Ï�����U6c�@,X�	I+��e�T6i���RH@�����:r�0/�R�eMիu#"iV�,�okL>?�V
�C}��y:-+|��dny��Y3�fBC�_�6�6�9MknR٪_�hG�O��E���I{^tѪ�7mD'NqiZ>襲)�ʾ�V�a��7�T�� 
�b���1���
-5Qc,ʗ�f�i�����=7�j�F�_4s���E
�~��fFA�Z�
����^A魉Β�s�U�~�E�Ն�V��=���/v��a&v�I���0E����~�פ,Y뢏����}PN-��L��u� �&HЃQ|���7L��3aV	��Cڰ�3���
+��%
�x��;
�8�{�8s��gM�u
fv���Y4��+vdo�
+=�wF��A
�~}XԶ5��
�?����fm��e+>gY�H�r`�<�$_+���f�a���91y^KΙ�R���O�jzѪWȜ�R
+<��7Ac5h����
@
�*�U��9
>�xM�G8�]���_�#5
��Yw��{�l겇�
�pJgL��u
��a�<l��Y���M��U3.o�M�X���Ʀ�@?)5hcկz��@k�q�ޒ�\��8�w�ߵ6��2����j�^&�%�~<�����7��
��
+���ɛt���P5�n�������q�`�Mq�6��UV<��2��a����W�����~�¨�7�0sfj�+��gV̩I�nLT@�|;�'���ý��
�~{x-�Ƀ:BQ
pL��P� h�"�
B҄���UH�F�r�h;dVǭ
iE�.*p��Vrպ��8��f�q�W�U)��vr�
���
��Ւ|y���᪍\6oݭ��!a󪏅Z�3�W\l􊛍X��*��جeC}�
��2Hk�2���k�̈��&f햝�]�2k7}��U�~���
����
{Lв9���B=����P��|t��
��e�̄��
TԼ�Q1o�B���P_
��_R���/f��"���
�f��1q���7���;H�@O�+�,���pŻ��ڔ�QzcD�=g���,�Z�e���u�Ey`����-OCҶ]�?B����*�e��KL��(	���o�	���w&W�ji*��G�;i
;®EO3c���n�Ň~��/ ��
�㬒�%�r��k\w
+3�]�+.2d�KC�{I�e[S���Z�������A1*q��*�3��y�t�@)�5�a�6{��!�2pk�"ʇ	��'`��[9`�J�LĒu
�;�e
��t���[�g�fD��	�x�G�l��ɫ�
̴�Y�11�lڊ��42@������h!m �a�N/Z��E

�9*�YkW��E�NF���H�7���%�V<���>��Q1q�x檯����ցo3����ϓ��(O�w<
dH�
(�A�沠A ��%G�b�	�>���z�qc�ƈY��� ���0v�[;��d���e�̃����)-��ڂx��@��P��,��EK{��%�l�l��֜���yiN)$�N/��mD ����z��eOg��NѶB�zXi��*_#yFF/�r�	S:Z�N���ށz3����[X_6��ה03 ���\������q�k^nJה5��%.&~���[����]Bڪ���t3�{�L�� �nH����
3s�Q�Zt����``��F��
���� ��ȿ���$O�1Ȅo��ou���aJW-��ymmԌ�����<�������^�U z�	�}�Q
Zx������


+x���nJ�6��A=�|ZM�X2a!�gϏ&���q.����|����O�|�)횶
+0�i���
�2(@��j?���kvZ����^�55
Q��K�t��̩s�����m�
	x�M �W��a�j��L]8
�e�
+b�\�3�o9��[$]��H�A#�~c�E�:�g.
��FJ����\4ؚ����������3A+���<Ɯ��7�b�V��Q 
��	�Z=���|��
��h��n���>g��%l
5��g:�[S\���es��kVdؙ��Npx�>r�F4�����`����3.ޮl���m���A+�jc��]d�.j�� �1��
S6D��j��|���Q*7�,�����B��8/`�K�-;Y�m��9m`6Ni����a������־��Vټ�����=���aq�N,X�4�?<>��>:��]��i(��A����/�/93؎��䳶�,ܪ�^{|���o6l��uo{�[�*e@���G\;�c���e��Q�q�ͧL�酣
+V�O�NQ	*���[��
,j��q��P3e���τ�M��I�<�h)swQ��m�ςFdڢ�
Z41kV
<„�_5�j�`-5{�҂�1I9��6����0$C�O�鵳i�ߠS8z�Xw[K悺�a�2��=����9�Gg-X*����� ߷F�]knVcPCΙ��J6]�]�f�C�^�3�jά�
Y��h
+Rꨨ�V��bcֽ
���	[r0�&4��1@�o����|�?��=JE.���W<LԺG�4���dS�(sp�
:��b�
���ޖ�G+|ɖ�M
+�ev^�]wC�A�E�=�ҵ1¥.��1K6f͒�X0gD$�
g��[\��8�
=k�����c:~��q�מ0
3�N��������`��\���	b����3m�ݙV��(��lɤ�Q�1̧�MP���&�S���H��^튷[?iꑘe����)�i������Lx1��,^�H��G;�;~Q���ci���3��⁝I�w7��ٚ`ЂfD��	��4�!�[�5�^z����P5��=�<��,�Y�I#�5&��MI
[�m���|i�ϟ���L��H[���[��
ؤUohkS���v����eRGȞ3Q��m�Aǎ�M
Zh�1
>y�M�ٞ���Y�#
����3�"�
��vt���]<�ߍ��j��N3��E���4��K{�*9}H�M���^y;�IS}��)�F��
�-F>�[�H>
k������<���:��lG�
c�
���x	w�Ƥ�-�:Zv<��M/9g�U�6qO��ם���d
+��P\q�?�Ժ�Mw�|�ݭZu��Ǵb�S�
7u��;�du�:U�A�W�i��ػM��πOm�3ˬ,e��\�V��HH��G
 F� ���Y8P�����o��)��xV�v@$�)�*
�
+��CY��l͝53˦��O
Rٺ��Y�zT+FXZ�-L���nF�Y M��A�-�Y
����"���63�c�
��p���x���C��b��\N��v�$�����OԶlgAF�
���2�O/^��]��ج5�p�'�,���9k3tJ/B
��USVł��Z��k ��9cd�������J$Ϸuu�x�]kww�U�eZ�
,c���A��(F4?��v"��%O3v�ǧ�v�M�]a��/��c"��Vs���zC�Kc�ꍽvyOM�H�(�)�d�S|��
+
"�Y�R�{S9��J�Z5�@��|�� 
=�T�L�%��W��b�f��\�F�;n1�c�ę�rk_�!﬙�t2ǭ2�[�
��*qN���K�#Z>&`"�F�ؔ���9ܥ����Nwض�E��	���,��0Hg�k�#�{���uVз;�����9oGۄ�����H�0���V�� �`�%d�L�8
.\锁P���o�vYׇ[�Sn
z�%�xM&�Q6�U�ǐ�7WDӿceO���DØ���} ���  �mjU�k	Y�!�weY�EY�}�����6�����l=B�Z֨T�r�8W*��h�r�6�"���D5nqg�G��i[���L{*�d}��]/OC^���/ J�g����5O�zk��o�"�y�<����6 �27��ۇ����$���#U"
o���&uxE>�
+8�|�c�'O�O��L�!3��,��'J�uW�$��e
�`w]�5�/���`M[OV7S/���:Y�o�2m���3˧��f�
+�i at b��Ur��+����F�#HRܯJ4<aZ��.ۤ��
��I�1h�ym��5+"go�U>��M���N*���T�]�^�E<fT&-=�UGM_sK,�����Hz�i���(7
,a��@'}�$aM*Y�A
�hL����A<�K#C�zP���t}7�(�)��0K$�5
��IS=�!�$M

��&�ۊ|�tԝ��ƋE�諕��',����+�gR�&

�E@�-�I��zl��(�{
r��τo��@�4]6����S���&�z��zi��LN&�Ǭ
���ą�މ9U��t���x����+$��)}�!����A�l�B+���@��Q�H�T��s����g���Mퟚ�Ԙ���Ǎ%�ge��ǹi��Y%W� 7���~^+H#�#y4��5�D�
+��q^��9A���ygZbޜ购�t�O{%�g�D�T�EI7�=F��_�����BI�J(J��dXz�i���v at j�+�=���С���;�sl�x
�%��k�W�P�5Xm��i��?@����-Q���
<�ϻ�?���\��>��p����2�Z	vªT��v�J3$ˇ�
q0�&��'s7�ф�ǘF�-L��0��6�]����*-n�
*�>�[$�94
r�nvHb�G(�vS"��
��D:a�7��Z�^���?��1������($e�Ee��jVA����J�Tg�
+�O�����q/;$�
�������O�!��y
Q�sI�<�綮M�2m���<����h(n�s�LG4��z��/f0����x.�jx�$
�c��X��fA.��{7�~xy+:$-��lq�
��fn7a&
f�����lea�|��e��o3[�ݲ�D6�h��7H�VH��B+ߑ&`�y[���(b�T����"%=	���e����3����J�
��d/2Ŧ��*�
��
�'���胯��}7��U�����Z�ŰW��?/>�[,<�]�����גC���
yO=q�QuH�[�I,����w��3�;�;��
\�W/kV�|��=��`:�
m�
�@�����S����*O���~|��z���ʐ�X‰�$��k�B��C�@�_�L�iM�gJ��P�.J
�gd��SR��2��k�i�-!
�	�x۽�2ѕ
+��Z5�r)!��O
+O\�
��AV��X��7�CN��r�^�	p������O*Φ�5ݐ��V,
���'Zz���q��Σ3t�uv�f`��G
`K�k�t�d:��� �фȞW(����g�����s�I5�s�)Z�eK6!~��B�
+R{���!���7��֒��YUʳ���)����r�Ea�/^�<
�
yO
	}

�z/+$����|�l׀��wos�M�OP(�D~�H9I���`.�7P���(ϥ���D��B>$�~H����]"5�VXe������/y��8�q$�Dz
+���6S�S!��Z$�9�L2j��Um�ny_Y2�_/��˭���ϓ�|K	��6(��ʐ�Ɖg�H!7�6��
C�D%�OD$	x�~*2�u�L M�vv��8�L���ŧ��d0��t�7�4� ����x�����_S��N>|Z
�<����Ɍ�2'�����ldȍ�%!�0!n���|�?���?�{�:f,:�U�6fѵ�>G�NeH��T�NMs1�3t�5|����Gn��TL"�Trf�Ɉ������$

��yEȥ�'"�B��z��(���dĊ��u	�;%����<�`�p�W� ť'�M?=y�9�&�!)]����\��w��[ԉ��cq��?CA!O�N|���ʬv����vJ,���.��T�:�9h����z�IԶ�g*F�ݯ�.�v�y�r����'n?�	�Vr�EMȋ���/�'�f�NfVY.��cϛE���N/�>��i��ا $(�<���e4�"�ς1�^攩~���>������!�Ԇ�{\	`
.$� �ND��C!�x��CB������C�@�;�����蔠�Z�Q�Uv	�S[Eå\�d!�6
V���
F���@
�S����� [...]
�Rl/`Dף�*����O����D8���9�R��=�Vz����5ݥQ<�;��
�T[r
+�A[cڈ�1έ���d���^,s�2���Z���ǜֳ�Y?={�;�4
+�C���C�cq'��!מՆ\8�E� $���SQ�����6�
-���ֱt�G}5�c�T��{���;U���(���</o�]�Υ�~�t� ���␇/�!7C+B.��
+�x�<��%<�_(>�LR�q���e
vj��
iV�@�=f���d���W�`��2��IA���ʆޫ����Ϋ�`?G��O$��N%�]L�h}�@҄3�O�}n̐�:�d�n�qۓ-�C�v�Z����,�H)��K�ȟRX�/Ehqm_hFY���"��b�
8��´� ��f�*V7 �p�a�:)b��ƙ�SrgM�܀�)mH�(P�	�e����^c9[��jb*���쪞���
�R~��qՉWp��
��/���;x��2�(�~�ȴ�u���^��2�#fN���,�p��C�急���E��ʗ
U����̹�U��;eH��r���_ԝ8�Grȍ` �k~�J�ހ`���G�BT��$����[���uF�J����
mg1OlOg�,�8��1
�~RS��T��-&	w)=�w�����Ц٥ʨ֤Xp�z���ixm����G
��
Z%V*�ͤ�w�`�+l�D^#�QZ'���^wk��n�
C)oa���<�:W!�WY��@A�7H��—m80��z|ꂡ)�+�E���B�^�ШP}2E��S[,�q��(
��1
#~��v=�d�|�4^�)�i��M�j*�J
1h�lz���Q~مʝ��a~[O�Ǥ�]���5���|�![�Vc쏒
;.�$�N&���>�	�c|
�-?%���˪S�!xº�F�.��uXŃlzi�%�t�N o��)�6b� U"���*��LI���E!h���D�����d��~7/�u4���O�Ӆ �
8L
�Lѽ�J{AjrƄ�f�B*	��v!fD�/��"{�tՒn'�Cj-��Y��2-�E�HH4��vo&����λ���^��6PW��``���n�l��=?���
���E���,G0������T�I�b0
�4}]E*IG���-���+M�g��)���>
X*5v���=F
y@�
ֶ�_O�sv>j���.ڹO����R�6�c�

8S.ݣo��v����7����^u
�Ր�HP<��[�Jm�PBw
��Oh�|`u>6K���R��a�����4�8���=�����ޔĽ8�9��;Ԛ>t�����K�/�
���|Y$�7	
+�jn��τ|zhv%��ʋ�P�0N��0�§��
+#,��w�M�#��€�3���4-Une{�G-�s*;*T��w
+�"�Ol(��T�z��k����
��@�5"؎K��ioy�!s^M���p؛^&r�H/�����Z���o��E��H��+M�.H��
����G#�O�zx��Vʒ[H\��I{�<��@3w׃.��?H@�����)51eZϩ
�[1��I��i��F��K�
����[1򡵯%ס�j�3�F5M�Asg�%��yy�C:o�Q�dl���!>̘�
�
Ӽ�G7n"�4����k���:{
+d-�)B�:��IJ�["�H��	$�]:[�ܪ�w�|�I��-��M�º�p����C-�G���� �hƈ��SRv�ޅ��)�0J�
�Ԫ�����;'sz"j�1�A�sD
喰���+۔j�_�C��2
+�݄�m�e����|��&]��S����F
�
+��%�2�∑I�k��6�{�if1� !�����&AM0�������f� _v4�d|
Ŗ~
�k?��>|ٌ�)g���6d�	��
�1�hs�U��P�}
�V�� �����36!r�%��xZh�#lª�A�3�
V\��e�`A[=��}�?HF}�����k����l����1h��]t�*��"
����m��n��Ӯe帔M1n]sᰳ�0��@g��̀@�eVؿ�k*_sa�&����
Ç����#�dœ
+N�SA��p���p�ۡUXk�q�4z��HЩ�H�NP:h%f�N�{~/��~;"̼6")�0��zea�i�$.h�%=�l��~��螿��ᢎU4
+�C���~j��-�T�y���h�A\7�F/(�O���&x���1��djȹ�g�j��
!A��
6{ہ�="֯yI�svf��Wt<�Q�`��/Z�4~�p S�	e{^R���6h�g�ڙ��1����<�!6
���~d�D/��
+?ԍ~7�#��q�s:LҦ�X~�!�j�\�6��k?�h|=-G��RSsg�ѩ{NL�����p�P���
�5-���V
��
4�ħO(pE���1Y]��
�.�lJ7��#궆a7gJC�\st˗�bẋX���x?ߗ}oǂ�=l�
o��)�
�Ly��
U�v�L��P3g��]s������)���I�

lkCE�X5�Vv㚥	�hi��qcA{^\龗�'���N��ע��s��kR�����!*|�A�L�ք��*^Nи{~z��� *eNQ��ƀ��w�*W�Иe3��g?�}�J�rAS�ڲ��
ghk��:Q���&cw&��q9߯������L��ٮ��"�}7��LW�=;6��
�`"�m��szX���R=��y1�[
��̻3#+���@��L޿&Y��a|��	��\���xsے���d[�m[ޝ`y���&��<�o{���2E��g���}�-ڰ4ϫ��fYw�jЫ�Q<��qb���
���
4�KV�Ԇ�	���L�cZл5�f�8IU�:T¸�P�2�ַ�ko�sq�
d�ʨ������q_���C�����ے�1�[�`K�K�?W�L��'�<�1���5�O�&\�B?6q^���R�GZh9�8�m���eNK��1ٟ�آC:we��K�vMX�򤋞������#��5Mᣅ��k����6D�V���4��I�Kz���'��j*����V�e��%� [...]
+���,
�������Y�gj�
4�l/6u]�N��{��m�=�!����OAy�
7���tf��T�}��:
���ͰO�&Ў
��mB%�e#rH�����8Gd���ӆ�:��Y��g\3�D}C�����/���å�YN&<�E&��K"�]5ɻct��0
��?,k���\��eM�����ޘ(�ގ�&f�Z��Ѕ�~W��G�lX��^J͂�q0H�=
+��[6l����ooL�� ��f�,`�
6
̈́��p�K��:��U$n�OZ57&�P��6x�	�a^]���OA
bA^hή�&��x��1aǎ��k���6��
o�t��=7�
�-|K�H��C�vL�O
ʺ�%
,nÂ/�qK�������߇��
��Yi��eyѫ���������,�8�'��U3<%�ߘ��n����
��AA붆�m7*�8s��$��eAeN���
�
+�v]��#?��m
�4V}�0�#&U�kn��$��_A������gQ��h�
7���(�n�K����v"xg�Y�7�o_�
ga׼ZP���(+_�
�����g�!�6�Fm����5/���ΘɅ/̌�
#1g�Jȟ�{6�[�hAY�tY�\����׽��6��7�ay��� oYkb�I��	g���n
 2vl��54z��tYY�d�Z��y<w�6v��"j��
X�ڰ�^R�g�~Y[�M���Ƚ�a�|�cC��q��vX��͎�
+h8Zê
�׽ �����;c텷�d��n��Nh��+JXܖ���˼l�ŝ@Ĝ�c�Ύ���5��>���sI�1�ФK�6jՎ�)]���(|���/
�RΏ���l�E��Ƭ�=�!q;VD�.r��������_�F�	�դ�=��}u�S���GZ�Nv�^�w�#�����ݘ�=��8�a��Bl�XȿGhؿ���!b��e�:P)�}��9E�����ǫjr厉T��	O�6VF�(+�m���=π~)�!��y�f�o�
�j����{VtƎ�q�
�]UE���7
��<�PS*xܼ
+�blL��wݸ�EU�ۙ��{�]ŷ'�K�~� !�
��V��5c���^L�W���|���M�}H�L_I�������ؚJ6t����կ�5�M$�� ����T9�[��ЅH�,w�����:�]�6P��W������E�-�ʢ��K
|dP|��"w�[��fG��m;"�`[��Õ.��^}
���G�k�I����'��[��ؽ!:��8��}�?�T
M5��':lߧņ�d4��/��o���_���q �ƨ�E�&ا}��Ѕ
�qE�3��*Pܦ���HG��aq�͹>��M
)ou �8�]�|GO.\�`�4������
@ߎwV?�4�^�끽��d����=*}߅����3�r�r��V�|�4$-���=�Ͼ�IU�\�
+�SyY����� ��I'�Ù����{	�1�/v<��l�_���O��M��Iq��Ia��E9��D>q���ц�aQ����OX�4Ĭ� S�����uuS���!����)Em�5�z�5��ɮ��f�'�y�`��
�yW��G[s���$����
�3������8��S����~
��;k����>VaO�Hi�9���A����S�bǂ�Y8ue��ò����7l���:b�o����o��H2��� ӷl��2cQV���	:�(@�o�!	+�o����z
+n����\�1�}�����[���;k�e�9)�̄����$�W��'H�cQY�� �-(>P׾��W=��<ZW��k
x���IEu���q~Մ��<L��z�J���pk��55���@��}{]�7?��#�z8�Y
󷟂��Cd �Vx�iL]T�>ve�X�=?���Ao��on
�1������=IF�Z� l͸�jx~j�TC/{s!3�����������9��\SWFz�	�L���^Z���
pMB�h(t���	����=:���p�X[�9y���),|w[�"���
�Y�u����)
+��a|��ԗ
hI����枃�f醝�<���2�*��!��=����� 2o���������!
+�83���f���9Pi3]���ܨ�m'&k˂L�4TG��?&^0�>����d�w6�����
�^�pK�ګB�}��*fQ�����.NwU=]���7u��Ay�1Q��”?����X�7�a�D,���e��n��7t�a���'{p����J��N/��m#�fz�^��k–U5��L��V����*��X%!�Rw��ӳ]uQ�&b���TԽ���.X�1����M���
+Rэ��G',���/Vr鶡�_�~���p�J�x��\|w�H)�6̡l��[&L���
+�
��
وEk���VꇳܛSC��K���Y�Ab����7�
� ^���+�r��LKr����"f�K�Mt��>���ub���f����V�;r�3
u����Iqh7��y)$�l���9V֚�Vn����K�)Ww���UQ���?ڛ�þ
7��M�->�,&9�lR�O�؟��� �`�f��c�	�~��G���_|�Y+��G��W���gȰ��ɗW
�L��WX����L��"���o�]�W���_l���&jʅEuM쎭1u�%���A\ŗa@�
TG.���.}�m*�0*N��#&^���
�ԕ�':����+�V��7˪��
GC��$���g�G��rƶ��p����L��<��[�ژmk=�߰�us]���vi\�
���D��	\5��/�s
+���w|ܬ��I�/ ��������߿�R	���s�-�U������%(b�\�pઍ��
�l%�A���֥�s���%�mٶ�����]���+
�q7�=��'���όI@�_���^b������)�=o�O����Ĝ�<���!�̔���q�D)����&�)�QS��.n�m'+�����Ǹ�����=�qs�n[P�+J��U%����!�ͨuM�k�w���_�0 >nj�X��GMHR.
7G��P~
ce^ ^�aL^�����*���`/�Y@�ws �_y��⤅�����楎�w�D˻5��D��K�9���>A��|ҙ��S�\h����p���B��<|Cא��E�l���t��M8vAQ|�r1�
+d��};�]��������=�O�T��7Օ/]�sZdԙ�~�����(���~�,��<7�I��k���ˇ+��&��Ƞ�8��;qF�H�����W���rnDy���
�g���6���E5��B&~]y��-]�<��.�7�Q�t�@�[73�ŕ�fz�u&.w��6�K�=���i)z4Қw{H\�p˂��6�sg�A�;K��vVF�H�Ow��XU
��
��9�?tӑ.n�-;5�"�㯀
��j�^TԿ��E��T��Dz��n�d�pi�y/~�|{ʄM8��a��vA���C>\%���h�	�k�:�­��kNZ�nZ�-�
�O)}}�
��h��T�jl���3.p��'���kN8�E���+���,�nA$��3]��f$���$%a˽�I ����ܟ�̺��K$¾Y:�Uro�\4*
��y��a0?ò �l����VG�S�ߧZ��xК�!v�R�a�IݶAOS��nx�����ׇ�ܳ7
��_��@|��Y����3� [...]
#*cE�U>��
+��B����
�� zh׆����	������
�/���=�w�D� o���'r����~��b}�g� �������.v��	)�S�k"wl��=6s���{:��P+8j�
�fIY>�	w�J_���J`1�I�AU�[9�
{nFT�h]Y�z������6�W
s��)�����j�G/�𦛝�t��8z��4|S[���QD�����-<n�A�xI?e�E�4ޜy}��y�/Ⱥ�e(~�� �aNS�Q�ȼ�d����8��,_Fq�{���5Ce؆�.�p
�{�ݲ�k�[1���{0������0֊7PԼ2��lO��/��h��ޱa2��=8��bA�
F���@
:�%��NY�
��*���?_U#�쌚y=>eQ�;�Y�lL������|��;!)���[��/h?��
}�HOs�eOs��%yM���q�5.�P�6^��ycҒ�)����݈K8c�'��GE��bޜtQ>��$k�۱P����K�9E�R�\/2z
�
��|;�~8�VqgY��_��/C��b>:�ua~Qճ9Y͋���Y)u����D��O3c�
�_�@c���� �f�>'+�7�]p���"H䆉R7!���}��D�2'-�7�Q�p�z2��3;�H�k��"�Ҏ�1�K>�oI87#ɺ��]\��z���N�:HE�d��-5��ů���u�:`i�
y�'Zs.�u���tW<�|i�ݭ���dm��

bK���]kU�|O�##6�\7��)���U$�_�x��ݝ�n�����]C�}S��=c�
/+�
��?��97v]��)Y݋���W�Fx��M��
;<��8wٓ����
��WF�j^(�i7'{���꺤ee�g����
w7�vU�
e_
+� Qs���yY
���x3+󊎔��Dg�����V̨��v�ݱ��W�fD檼8tR�qm\��猤�檶�����^bM at R�`ێ��z<'}���2���U�O&��N��?�4!�6m�|���snAM�{���:H�n �#��C����gӪڏ�TRPDŽ�I����y��!"�$��3G"�s
+�����������5�v^n��-��� �r��2��k�	�-��� 
�+��?�XꯏZV!�7MشC�zÈ��kC�m��SW�
��_\��M3�`A��x�b@�P	����ӝ����„�C��K[Jh졃�l�z�	����ڐ)ZX�
7Қ{ga�*lV
+]�5&n:�`�������g at T�x���՚
��m*��!��E�����{vL�
��< {��i�
���{[*�NIk_
y�E=1�
���V�����wAEu�hK����'� ?m�PI�}��M��U]잍����eO�j
�Y���M���)	�?;��M3��~��
/ni1��]z��mX�c<���z�
������fG|Z��܌-�>����6$�/���獔�K3}��;�&���f���LOemت
_p��v���.h������_ډ�:��-�-]֔<ZP�=
*�#���nUQ�r�\�q��,�@ͺ� �е�_<��yY�Qλk����޲��^Ћ
sC�q��
�t��*�8p�j��Ѕ�6X�(�
+��7#9�O/��W~i�U<*��f��z䁦�����,���7����vuuWWw�*W�]��
�9gH(�"����rB!r��r"�U�}g���#�y�yf^͋YkXw����䟤�>g����_8g�i�枏������Kˋ�_�rZM_K�O�?�_x����9�B5<�m�1i�Uɏs�?7?��a�}ei�p�	5����O��\��S�!������^w�5�(0i
�D�
q
t�W�	jaX��)�e�Fb���m�Q��wO��J��3�nޞ�寏n[�A/��3��ge��#�G瘴���n
Fe
�ؚBW~�l�<X�3mS�tEW�_���N��o�t���^�
D��B��/w�Lӳg�VT�4Ko�Oso��,

9ͮ qy�1�,����J>l����&�:G��!)>�9�����뛊��/Ozg9u�IF��+�ŭ~�M�_����r����Sn����n���.)9�1J��
�d��C��S�=��Z��S��C�����AJ�G¯_y
������o���?��$�����k�4�fs�Q`}��1�(~-�ѫ�U�$ج�
_ �2�1JNsM�a�W�[���V�(��q#
�r�1��~�i�p�E�9w{�U��\���
��If�ms�6 ;V
+��@{���<B�����]�3C/� >�%���w��s�,O�I>E��#�q
�;��

����z��g��!~�u�x���P��*���L�w�X�ҏ��5̓/�	�o�ٺ
��1N��u������"ȿ��#���N@��u�kY_C�HD�
�_��}����<��p�G7�C_u�b@&@��E��Va�̄��謍�ڳ��OE4B�k��������fYp��^�W�A_r��/ʻ3N���ѓ�ZR��E���w𼐊K�+�(�R���ED���K��i�H��ۧ�uk�d���fۊ�]|�p
�ɪ���蘦I�ʿ�߯J�������[�o�N��~7���7󣒟v�����G�{�H�U��3M�v�	�[����w57 /�Z|=#�,����.0L�+v�-U��&��^U+�#�Ԯ��_�`f5ʸ�W��T
в��&.fGC)wj��ůcb�F.	����~T���tG󂐲)�5�.��M)֗�_�
����Xl�q��	��5�`lF at N,u�h�%�����i��;#�� [...]
+�3v���Ƥ�r��]��#�x'!ᘢ曟�N�=���>�(]�'�j�����
z��+������6_�x��擰������o�#F>ngw�9��j�_q�RRJ"J�+�C�w!'
��e�Z�41+���㼶�ԭ!�
�,��5E�^�\*,�SPɁ'�w�wV}=���k�&ycyy�U�����a
�9F�]!g$������o��w�Z��
�ǔ �ЋK��!�z�=m^Ž���St���֒�mC�+��!�mS���)�����[�T�t�Ҋ�#�l�$)�6����ܰOӃ�V�b?���q���nx�X}ӔUcJ�(Ј�
�=��n�EsjH�.ܑ
+�n�6��B�䘜��$�
�8��r�Z����'��ٴ���$d�*V��2eRt��)���m�U��.���s�n	>=jq�z
)l��Jn��
�`u
����Kb.��QF����ƈ��>ق����rr�����m�Y;�B6ԣau���
��ϒ� �%�ǐ��&&ҧ%��$�ԭ1��z[�`l)ګ�R��~� P+<�����M��	�/��'�EuW�F�����b�
�emO��n�W�Ί��y����mo�Gq���rR��6q����3��Y�P
�>���>=L�Sӫ^BN����W�_G;{�<�����(>ucz��4���ޒo6{�~������V��0�j{�]��=B��Ƨ������T�S�)b�G�F]x?e}U��ro�����?ه��!�zW�jL\C���<�`�ۆ{��t~�> �`�@'��C]���1�*Rއ�����W"l�I�M�)!��ON�M��
��3��϶����B��k�9����ߙ�cjU at A�_針r����G�+\Ҍ��s��T��a5V2����;��s�O�?״e��GF.9�Zquz�51�9C/��i�a5�J��
+��c�V_��tɀv����
�%��W#rvmL-&{�\����� �v@��߯{6
�u	v@-�R�B2RAHF�
+�ڰ5ˁzѩ�bA���s�!�mCM���~^~U�/�m^H	�t�}�I�L�k�0����5T����ꓛC
�|2Bq� �����S
3���%�(f���j|�s�1e�y�ϚG_��ם8\w9�FyO�ϋo�a���r�!-�!��F����^	%ϫ��wT�(�J�)��F��Y
�9a�,�lOQr-���Zʡ�{O�}<2Z�[B/�[�0!��LT@ɬ3��_4���h��)~�w/��?5߯�y}��K�/���sG����w���xx����B�qYnk���P
+QnU'{m�W;*l�B��|cu�
�9�΍=�F�/���`�F����҈��Ah��U��)I�
�	�kk���ƭ1�b]>
�f����� �W�Fz����QR�}�Z��1�"!gs���>@Mw�����o :�裒 �G=�X�y{��=������\P��ᗑ��
+�1�*�(Xu�y>ޥ�����4�p������l�/�%
�����1Ղ\|G�Ya�ڥ���	\��[����M��]e_��
>s]щ)�c��
�)���o�y��#f�m�A��9G�^���S�����s{�6�S�/��+�i{
yscqik�p{������<�^���	�̵�W�5'Y�n�_��m��`o��b���d���6&�EvYѩ�Cm���������y��v���ڏ�㕱Pqs��)��@,9'���Ϊ/��Y�n�7��
E][x�p&���DM<�O�E��-��^HZ�k<��*�����o����X�~��
+��V��51E�]��������d�k}g{ve{}�5C+pʄP�S\�Tƿ�$��0~�9�\S�ҕޚS�����Ǜ��,b��͉�
	2�1��\�KrI0�q�H|�.~�P�*4~���J}*6�j�W˨ߚ�g�g(e�y��FkGƧ�j��w@�
+!i}�b~Z���[ș�	�e����(`���2��yoc�V�v?�M�^�Ϊ:
+?�W�����n���99b�z��h��{�~��A�Ԁ��|zPǧt|j@���Ar)
�����IV����s��c
.�?��
y��rk�F���c���~q���(6' ��'E����W{6�M��B��^�1�(t�v�<��{ ��v�,ll�ڴ5���Ad
$H|��c肍)̭}�8���(��"�&��;�>mb�&v�}
+~}c���G�J�hXu=��9M� 
_��!�qL�nX^W�1?)>��}h�����A=�٫`V'�tf��_�<m��яʳ�� [3O{�g��lI:��#��ŗȳƞ�ϧY��.��5"'�Ō�⍉n��_T����_`go
3��I��]�{����Լү��[A�b}�t{u�Y▷�A-���W��c���=���;M��?��T�VD���S��07<RZ9�a);S�d�L�U���oV�k��� i:�+#�;kø��J��(�0��V.�YQ��A���+�j�m�y��6l:ay֜Tp�,���m
֧�����g'ȫ����!F�gE_�&��1�~�5�(<�>�N����M���`.�[l�����hs��h�9�8�s��>�O�>n�e���+;`_�4������Y�I���k���,�2n��b����)b�G}�ի�BjrePE._�\t)PY[���iL��������n��2�
"f at Go��p�[
��+4=)�ng�Q
�wwfX��Ϊ/l��
��Q�W�r�[��D� =�O\�9ͪ
Y����1J�^n,�S�^5]uM�ʣz17`��Z
c�YGHi��0pQ�C��)tƎ�P�װ �9V����5��ѽ
+4Ɏ�{���ꠂZ��ez����5^]Wǎ����w�,��y����M�-�t�A��/�A
2sȱ!/6���"iBT�[I�����h��=�����2��V�7�X����{K��C�zh��� �[����5o�6�WA-
+(p>)��s
��l�c
z�#!�tm��)R�� ���A��δO�^5����������DD���c��kU�$'����Ο�è4�����{���N����n{�W��O��j�}���s�9�6A(�k����'�O�#oO붆�i�C��g
�k��m��_�y��lD]Y�'�؞B݊�s��5���R/=��Z�_7ߕ���1�v��lӬ�\���9Е��_�Ơm��^��rL4^�XM�9���Y��7�T�
{�$�>i�yF�GA)^{���1�)��l�s˵��'w��A
��3
S����_��|kjJ����!N��^���������`B&����3������L�U��m���V�g7_Tv5&��
�{�bzR�� #�O�17�2��������
�g|G�5�)���Q�y�RD�D��IH�+�5�C��m��6�����3��1�UrpV�[�+��8�ȝx�O�)��^����s��'�5�ʾ�
�S��t��X�1cf1h�b���n)b'�=*=�i���3��6��|\��q7l鼷.4�L� 듢F�sع�~�M����,�3C�
y������tZįЭ�A7'y
>ǣ��z�|��>+��������h��]#�
+���>I�l�1,o���ag�F�߷z���\r�Ą
�
+�,jDCZ��pL��O!?ZP7F.>h�|:ZMp���j�
�EQ�#2ϥ�5
��(:5``5��_W���=�.�C�(tL �,����^�}/���ϊ��m���B��BwJX��Ԍ�	J�ky�;�|ig���E�W�{����v���q�W�h˯�.'a7�a�4���!/O5_W<)�q�e�e���`�h��ZhE_�w�f~V�'�+�I�=ؙ#��77	7�R.ģj%mL�
+4=
?i�%��
��fhEamb^dr�k�撊Q
}���w�������1䵀��HD	�;8)�l{���WN����V��[qj�]���H�SƬ�k�?���x�-�
	����]�✳���̭�IJ�� )ui�r�%���5|�c��R��n	%�9����iレS�Ɇ�%�(���y�=
���O�=5�6(U>	�6�#�G���M�
/��l�3�<��Z�3�cg�_e퐓��
[�G�栆ٸ<���{;�4@���4�13�
��\ӄ��E�}��vo��sq����i8�Q�Q�z>�1�K�i��Z֞��c
+~s�*�B��e��y���g���}�u=rl��@��^���ׂZ&4jnk]�ǧ���/�fX����8sA%��6��"��*>l}V��p
+'E����R�z&��BaPI*��)uQ-�r�]�Y@.v=�
r
�jN�
,4`8��z������a=
�ZYPˁ�/�ux�\��;�Յg5ߛ����*r%�/��<�T��JD枕�ݑ���,=��qk ��Q��z6	�^|E�jS�o�I~cϓ�����m�Ͻ��<��j��r���(��W�
|�_%�;$�J�$�t�E�IMO�תΆ�mU�[�ïxד*���&Y�ۓ����U��ķ�����<�+�u� �Aw��0����+��k�CU��gj@��|kz���üo�z�)~y'�1��
�g�$�Z�,�RK|�'��
����x��w�0�Qc�ȫmgm��ʜ`[�1��
=�s�|�����g��V��{�g�coET|8��ȸ��
�)�
>k�E��O�H\�
5w�z�m����3�t=��Ǎ|lHdž���ˆ�~��a=�Ϋc�٥�l�,��7K)k�M�9>�-'�;fHY	�&����
�^�h:'�(:�G��o����"�[�m��T�RH�*Ex�$6u����a��?�2��pN`����13���'��Q�v [...]
+��W�WzQ퓤
���簫�aLơ�Oܟoḕ���>l��8%}i������Ͻ��;�iBvDA���[HQ���ij��^�o1�R�M�4�
+lz at K.�(U�96�=`
��
s���Ʈ΀��=�j��u\�mv�)EܰO"� 6.�/�.9�,�e�.�@r�R�
�X�倜؛	��[ya��'K��[���D-uK95>	����(�����q��u���$b�\��0�}rF��$��{�
�X�����e��m��

+.�
4�s�\P�X�g�����EZ
��8&����������Έ��5&442�>QwὕC�8D���p)���	f�W�sץ���T"�OɪsLa��3�̰��
j;��׹g�9aM⾶�ր�Td�^3?�����L at - �/u=.��w��R� |���&13��Y-@�(���v
=�L�g�E\E�_�������=>�@�$�7�:j�71VUݝN彻+���[S��I�	�8��E!'��g�Xh��^ڤ٭��5��}jb�gs�3��ѡ�vA�
�;{<��Ε	^��$����W{V
gsv�> �dyVqek�2����;m��W�|��Pf
�e�|��kh��p=�.ͅ�
�fЦ,�R��I������0WlRn�}Vݑ�b��V�G#&:���$)}}su	���0���8#o}�_���F�m,P��.%���4�85�1!�vL
�l�B�%�1��2P+|Zz��4��F?��B����%�_��՟��������c&f`�����^&}}qi�
���(p:&iky-��!��䢘�R� 37zK�:�!���9�=K�s��6$bd5%����gFM��$�:�Z���{�^s���IfI�$�x����
���2{��FԔJ�}k�@���@"�fQ�<xꞎ���b���=���
�r%.���h���n:�׶���8I	˨U��vvX#"�ZY��η���s0���+�*~X�=7%N�
`�+^� �2ͮ���rB��Θ��=������앁�����:�����{K����
2
+{֏��B<���>96k{����p�ՠ^Hٵv>
�
��I��3�0�*vcPA)��	y�����u�9�/tt�Z[ /W���ڍx�� ������Y[*j����6�Ey�����6a ���\+?��޵�"jq���1N��-��t�O�}?j��%ֲR2j�ƚ��f6�`��m��hʭj���AO�
��c�m]*z�_K��k�n%�"�I<qc����,�%d�LlԞ�Oݵr�!��B
"���L�������[��2b��q�
��s�&���&G2� 
%������B��),�Sq���g��n���_]
�_I+���t�*1�7�F�6����#�-
�R ۙ�78g�����!Z���`GƮ^$�\�^���o$����b�O- at x��f����Sw�ϋ@�rk�_�z>�9˃l��R���?�
7���~�6BI�z��j€���bNhNDN���X�1�n��YN�Wɩ��� 9by^���@ɷ���o�姽R|�Gƪ���P��]��
+qn��C�l�U�8�����u�
.3�Qw���%�]���ELB�M�a��=�W!A��ҷF@������MӜ�1l*�㐈�Z����M�Ґ��1�tq
�c �sbN���o
��P⾾Y���,"
pf�� 1�6A��)�Ę��{{��X��_ɂ{l�*��쨹��K��ؙ#�;f�P����-��I�a

��*�s�¡���ҍ��+�)\V|��3� �������P�J*z]D��=�
+y`�Y_W���z�.�� S�6���:���4�*��P׳��"F��'xU��p��-U;s{yh�4�����c�����o�o���f�%^=�XK��a!�:|�������
�����u��M�{�
���]OV����P�W�Q�\2B��<
���D��_Co�uS�y��֚P��6�yi���RP+������f���
2
+�kB��mq���H�ka"v����)|�K���-w��̝�3�^%�rGJ.�iи��
x�k�����
5	��&�PAo������
�5rQ1
�a��_�

����I� ܓ�ҏ��=N�t˅0���H
SL�k8#�'�����o7���)�n���`��͋�.utGM<L@ͪ1P�Wvҝ�N�[!Fy��:�����K@>/pJ��Z!����R���8�nU+ŧ�iq͊�;Rz񎔘�:��l� �����s%k��
[��k^9��y�m���>�I^�K��qsG���ʲKiE�)r�GŃyu@�q�>A+��!�,�R �!��&�ʥ ��A=
+N�s�^�S
�
+z��>�9�(��D������;�h�i�4����_E.r�Z��Tο#&E���L��`�٭!���㽕�Q
���y�� �
Am�͵���p�;��#Fz��2�z���Էs^S\V��Rף�E
�-m�n���1	��1T�-C�ZԵp�:&"f���V�)1�.)���;�Ź��[~
��Pʼ*q��\����;z�E���
V�JR|Fp^h��q|�� "%4�%ؤ|��
�꾵�_lG�ꁅ��jq�Ω�s[Õ�����m(i5�G�'�*���<��a0��_{W}R�U�׵a\A��p��ͣ�@N���-����jJ�?����yB�}
rn謃uqgx�	�j�5�~t*�
v� �X7����V߱���9�$�Ŗ���#d��ۥ�T;`����L�.>/�m���j.��F�`|���M�b��9cg�V
^`�~s�?l���YdqD�L����>>@���ظID%bEN*�O����l�$�rHC*
��B uͰ�l��[�7��m
5��͑+�-��C+�1f"�~X���,<`Ll@ɇz��
+�����ܳ�Z��иA���'JN�ʛ���)tV��j
��蠡��%r�.�L4�\�p��
+6��7��+N.��;�eU]j
�z[ʫ1��^�=�� �뗰�V来�nNs
@�8�d��ЍN��L
|yD�]����h����,�Gۂ/t��d�ڕ1�ͭZ���[����Z�Q���i�˙� ��Z1�1xXΨ�
�%���d����ۙ��n�n�T|XT�G������Fo�%�~-�Ƥ������XPGj��BR��� ���Țn��
�_�������%�9
}}qyGJ(h��|gG��~ף�ժ{�N���� �f�_)"-���oO����f�uq�ǣs-�w�$egŷS���W��rA�T[�T}c�@݉j��]���g��/
y�WE�
9�fu���x|L��M�o���5
h@��
,�����yh��QZ�~�k�z7pQ-�8�Fgn
6'���uQcG��b�C�
�D����`sFP
�2��#s�R�
q{KB�D,�/��Y����ノ��_�����ꛊ
���z����̯
+/�fo}�h�A�_�ĭ����}�������է����#!�/�x���6ƛsbf&⃕G���@��f�kHA?3�����	qQ�~�D�i�[cu�ܳ贐
h	�����ua=���Dg8g���fFs|>�<5�>��r�4��#���_�`�:L�G�p�%k�|j؇s䒐Z�uϒ�
�M��q�@
��
#��A^EzgY�//�L`2#FZ��"
4p�@��vB�G�Jv*[�qN�f�3�K�H��,��9E.p)�M����DK���1������t뛦3���+໐>}
e[F/ږq�܊{��ߎ�U:�6�}
+u���;�
�,bh�ĭ-{b}b��ch����������}u� g\(y� �8�	�<���fyXŨ����6�׶Fp)�1��
c���א3�����*|^H���+�yN)4�>M��h:�CW�]��\~W��WJ.�JYU�	B�of
����^ߜ��=C/
+�u���z
�{
Lm|���7����]mzX�';�Ũ���[��2�L�q��
��#�f[_6�4#(�l�v�s�sȍ�IZ�lO��@��L�mq�;��h��>
�­fT�5m��|G�MB+�M3�K��E�(<'`uttHC�
+��#���`<n�z|hm�9\	,BVH��D�|�_�/]h<���!�E�6Ә
�`��:
�3)ljm	�?��,>
+.p��jo��_Ψ\~U��
�ֿ�;s����wn��"�`�N�����,���<X�|��
3���a���W�?��B�|JbС�19ݞ���`c����7G��Fj.jZs�|�x�_[��}r�z�
+B�r��V�Q�v!dEtl��
��$�C�KsM�3}2f�ނ���2��a�����u>��7ˮ��yȸAD
*�u1=R3"zbw��
hXu!=�ѣ��>�T��Bl h(��׸2���V��WF-�3�p
��c�6V�(�I.
0�-&#�����
l�[���,�H��	��
�*N,<���į�|�vfP�Jj����f6�K\2x��l���
,�<	�?ݑ���	��a�v/��b2��.-��=��
�Igt���S�G'�;`-�g�����x��.	p>+�S�ڞ��	Z�}�<�����U�}��Ы� �5�1$�xfШ���rw&����_-<��:���v-=�c
m�~-
�U�q!C� �^f�@��K�SCZj����A@�[�7 ����]0uw�u\�ON-�͂��0
����aF�Oւ�M��V��������5���=�ȷ����R4��!�&h��o�IA��
b�=
+K��Ҽ*zU��B�1��'Ac�p�I�]�ݍ��Ӊv	9ǥ�����`��C0n▎����yh�~�
�_H�À:Y�S<�r�
��*�qK[��r��������,� D�y���K������~#�hg��j
ĉs��a��ڙ�և�<�K�������L�2�4�ty����GM�t��͊}*f��"��U�?ˬqN����ٚ@$u���~
h�� ׆ᷗG�U�lL��ھb=�'���0Z��-b~|^@�IYk�M�l����n�UaK����b���h�����������Rtj@�K�hU�.2
+�9��4E��-i{
"Z����ո
��]�U��~M'�=�E����A���S��CZV}��E�D� �W%?Ls����3�/a=�x,���*�%�Ը���qJ��i��6���qܭ�,�"85>ǣ�ZD���S}@è	��^U�5�l��x��0`�]S�8f|�ʥ�U[�U���_q�%�݉�hM�'kAmͱ�`�mK��:�*^��%���˲�bZRپ��
+khP�$*o���()ݥh����f�$!{���)a���&��1��[�qfp{&!j�!}Jj��pŹ́�����

���*l���k���e^yb{WJ�OژRb+1+7g����6s+�[����O~���7������Љ�;Rf�O�J�(��^ug{�>���kӣ�/L�˿c�no��+jn��-��w�>q��`]��/3��	j�O%DGL
��D<[�w}jvbN4��JO��Jk��
�1��_xZ�K\����~�$�6�^U;-l�F�m��K-��m�=� ��4�a7�_mi�,p�~=�h���Z�ga��/q(�ZsXK��
��u�`3>�����i�+���V�*~�
��)�?�v�z
�t]=NK�E�`���+9q��(��
�}�(��ZcX�$G���It�Gͬ	��0���U���Ǚ��mjw�EQ.7�龉O8\h�/t����K_�I���?k���}�E���y�+b��Uqˮ��Jܿ
U� Q��'�^��B [...]
�h5
%�f}
����xcg
�
�g@�Ӎח�k~�%���
+�<�N�c�U��y;8M.L��6��]T���[qj��'�.vt��w�{u�4�
��1Q�;�-�HP���M���=��q��$����o�Y[8�kW��I�#�,��!-�Qr�C���3��F6<n��y�tˋ�/-�K~p��o���*������m�3
���;槰S�Q�
���_4
?{
+>�ͽg���v����e驰
+��7O(w��]RJ�_��������ݠ��vJ�w��|3�K����zb������k�P����)N�mD԰����4_��!3"FbI�$�D@��[lo���oa�gy��!J�m�)A&��%�Y�5���>k��A�,d��Yͱ!#���
+V�GJ)sJ�Y^56ow�K:X�z_}8eS0��jZU���Čl�s�e~^sU�����$�ħ�׭����r��S?lv�
|\b
�#�#�h���I@�-�/t����b���n��"�4�;�Vr����R�S�3��@˳V�_%昉�%�w���*r��
{�&�w>����m�虺��Y�n�=?���ִ?/�U�ّ���4n�����k�^��v� ��-�=3�ޯ d
+��s�{F1co�C�ӳ-�k�7���WugA��m�M:\bc�\B���
�߽��m�G��
+������S�䵀��Q�sLL�����w��]���b�{�5`���0&Ż@뇴�K
+�vq�>�tfk��
��\�.�#6����t��
��5�i��%�2�
�>�l�'�y�<���l+�l�z��Qh��C�:z�����In�c�[Ե0"@� =�O@/oO4\�� �"滏���
-6
+)N��3�*�h���^�3�|�%E&{���{a
�.��gz����1dZDM�I
���`)NP#���*��_�=ɫ���]�<��,��Q���|�U��T�of�}*r�}���)��zd��Ձ���Trx�Q�5tuy5B��81}���9�|;� Ĵ�
+�-ۓ�k}��C*�1Ʈ��k��=��\��_b�,,b@���*�e#��B���]�V�b/.u}y�1�
1�j��=+���7o���5��]q=Z6t{u�9����Jw���6y�k�v��M��)��y�8��y�vy�Y���HZX
t��E�>��2�j8�6�-<�x��[������������󀙊bf
��F���ws���C�/
蹴���u��7�J8`{B�C��#C�
,��6j	9͑96�`Yкg�RbZBeXO�̱�n�1��
%��5��������Q�����'�y����n���R݇��3��m�q����g6�f��s,ԇE!k����8��Z�Q��.Y;�SW�[���;{Vbš���_�L]�!�6���F�솘B�
+J�%���O�:�|����DPE*�/�I��
1#�5�����
���BLG�;0�`�f!��6���q��㗡R�S &%�L��Z�S��b�V6`dv��G�����>�����;���Ή(�'�
=�����i�
+�X��$�-�
R~CD�����[S�2�8�V�`���[�Q�.c�
,��2�=)��
���5�l�a�b	���V�9�D}����WF�ٝ�a�z>:���It�}��"`��0�7���
��=�*Z����j��l�_���ݻ���p噝IxR at K����;��\�

Q
��us����T���� ������!�B��IՏ!%�0n�7�[��E�%�g�
W����1���E;����4�B�Br|b
G�P'����Yv��0)
0
���f���L�lc����/m��d��R�����z4�
+���2�j�V#�RH��~�5
�3sI��=}��y�����a�ϊh����k�n�*;���{����z��
�.�1E)�X�gd6E�L�G�*�M֦8�0w�jJe|���`��q�
'h7��X
_`c<@��$�k�FJ]��E�xبE��}Գ��jR��
+����p��<�R!n%�xc�|�#�4�
|��r׳�U�񀜾#%e��2P��>mqv-�bտ׷s�5B�{�
�>Bbz|NĈΰM7�����V�j\2F�WI+�����s����IG��
�ID�� �RPƬ	��
��7�Ͷ���A՚�����@?7����6� w�1>� ԰��L�ꐺ�J at Q{�'G���e��T� �0*�'ϫ�����r�;��/�r�X���@ ~�ٷ����BzXM(�
.9��.�K��F`�
P��b0QS��򨊏�5vwV�;'��3�,����~���Õ��qG!
3�`�	|��e#�rJ�cp��\��JK[d�ٷr��
BPǬ(���
�j5�pk�_����eW'fl�"S�㐳���6GIi[c�B����>�.[!��g(�)b�
��U!���G��|❥��T
���S�>HLQv4|;�-�
hɫqc;o����R�����^hR8q����$���hӹ͑���	ĭ���n��\�o�z��D
��8�Y��pѷ˯r><tpsEdNbp����VP�}jjEtNH?\m�{���$
+����RN� "E�xXk�|��#�}���6ȗt�?WD���,b�;m�蔭)b�R?�
jIL��|X�T��
+�
|l�������^TR@�'���� ��l[��#��?Z_�^��٘_�[:~��F�X�Ĝ�>�����,��p�w���_e��������6�[�<Xw2j�����~�w���z�0�ʖ��m��T�򰁃 ��0*�����\"иe������̟�`��}��w��q��!

؁�ݼg`6��
+w�0�Q
�Nl�^�9N�e�������[X�؄�b�Gۜ<���K�()w_��Z
��M����iu�Q
�r�ރڷ�@��5
+=R�-��QrW[�갚��:���M��1����5����6)�`m�ps{��������{
�*�����d�W �%}X��Y�t�,!w���m��TT��<4���
�<��U�k��/�<޷v?
+�h�dÙ���^).#nle�_�x��c�&>��Z�ݽ& �g���:��H�d�Aޟ<@ü_`����o�V
�
+ؿm�t�[Z1��1�ag���8;�w�G���9H��Q8���p��.	�&����m�
-l��\�5�M	ꄄ�IH���A
�tc����p��C
�콅�*�8��z-��5E5���n#�,���Ϫ9\�-ba
�}�������9�p�U��
<�KI)N\����Ӌ]S�+�}��m4�ݳp��[;�W�:c!3�8ߪ������ծ'��
�C at 39d�[N):5�oe�Lw� ;���n�M���>Us��3�S��_�H
����^����^P�;f�E��û�{Cʆˎ���o�?,��7/
�u�^�fL
+�?ۙb�Vm���Η�.�����X�E��Z�r�W��Qܭ��
㨼����+�}�pA-:����Uwڧa=���5��"�&���gH�@;������Kٟc7��(]~���Q0j�.Zy[��'�_������]��M��/b���w��+;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9j������E��N�ѱ�(.�H�'�����u5��ű?)���r��K�pI
:�-:q
�u����'.W�P�g�s�`�l�Do�`PT������㓺���&�7���+Q\���������}��NG�p��=�>q�j��O���� ��
xJ:q��?� [...]
��$��[�eչU�Ɛ�Ѹg��G����_�ѪBs��Y��kXM)!�#�yg�-�kQ�z1=��BZ.4�dVbjZ���h��W���
����,17$'�E5���u;f������/|���\��Ћ\��[>IblFXF/�*������6D-��1+�zN�G��ܑ"o�ƛ.��]3�.���D������ݝoaFt����ZPQ��c����	�`io���pa
�9���Nx��r�ȹ[��$�>�?�(������;�,M��Κ���邬��ʬʬ�J��t��A����̠Y��I�b)�Y��q�PDHΪ�����C,�%K�{�����}����feGzF��~�jC�M��$|��?l�h��ړ���1�����S�Ym?������-߬���_}^�Yr��0|�J¦����
u(�G��|ƞ�� ���9�ӊ�ؤ������t�\���WΆ�pɻ��:c�f,��ļ�J�&��\���њ/��4�@�������(�>�
�9�g�ޚ��:�������
�\ƈ�ydD�@<J��<�"2��
jW�3#a�U�a���`
&�
+

�10��I���Y;�"ba�ǜ�˨�S���
���O֍zEm�Wܖ�s�d
�J< ��܂Z«���z-�üH;	���y���]�=�8�8%�_ҵT��F��{𾅰ވ�
ƤCʼnYe�q��
���W�KB�����dp�	����=Z)�U��!)�:�:�6a>Ig>����3��
+u*٘��:�H�a��՛���q��Q/�:�b^N�Y綧Ye��*
ܥ�MY{���:v�~n�%�hl�w
��X��:4(�a^~5be�`v^-uD��$iV�O0��O��f�
+����䌸�A��t�K֙63ϥ�g�y���J�m�A�&S��7��c��qw��av�Y�ίHXUI��
����s{�yt�I�ۯ;�f:c�RҪ���%ͣ�3�����bwΩ�J̶^{y���7�G
�K�[ց�4
ԣ�n� �k��Z!�V�s�Q�6N	��^I[>�U�Z=��ɠ�Di��)9+��
�v�/>E;����S�����
���r�y�0>�9���嫥�e�o<���c�ΙٗRVޕ��ӿ���|���:I�V���9����>/��2NcV�Y
��jE�G�D��!�
;cP�F��d@��yT
�a>lʇ�}���.��̋�rs�j�%i"=†�O�@��ȼ��pjŘ�[���.�P
n��x�W�'|:90���ZqҪ���t
ԭ��!�
+
+�9��O@�S��
��£��.�n۟�o�=7��N���RG�A���H�7�"礟����:�n;��w���nC�JV4'��`>^U>ȭ��uY;���T�ψMN/x�
�C�1����sJw��1+�TΩd�F{�@憎��C�I}"8�

�My����S�qrJ�niG�:�!(��2Ȁф��:ܧB�?W�|H��}J�6���q��ά�h@<	uD5�|�έ�o7��ܚn�:ec_
+�h<�O����d埒�����u�����O���K��ZLF4
+�/��}
+6̝�Щ
+A��ʺ��pOmM��'����K�<�_�����S/)�L��Kи������u��,��G0�.%ks�c ��5<�F�μ��8������ŴK+X��]\|�����Dj\Q��\�Y�ӳ�3�c]?ڮU�q��xƦ�NXE���vF f�e2 lC
�z��
���
�
��	rNY
��U��
��.�e�!Y'�2*S6Uw|JՈ�4
�&m�
o�>x��=C��Z�q捎��V4m��N��H�bG�����޿��³Ư
��?
+�o9�;T�,h���������I��tv����r긂8��Rw1d0�:�nD��<��
�

�ʋT����-mŜ���G#�ū���y5�A��|��Bb��{dZ�H�zMI
�rr��p!��E��.���A�(�V0rn�^@�*VΥ���_,�ՙ�� 5�!�

)xs�
1�葡���*���=7
��k�P�u�=!�Ԥ-
�QW�Q��y2nm���
���H�
`^uK�Ƞ��1KH
4�������2�¦���#2�;�u)�)��)c��<���Sޙ��xH!�@����O���9�)�Ur1?���s*
aq73s^FɎ�]�H[7fA+���,�U�\�ps
a=┵|��]���r(i0/L2�
�4�y�I�
q��&��^ٜj?
�[���c�|����Q����I�ɼGԘw�j�>Q
�7�>����1�^�sixY���*ڈw�'m_��\4_�� >)�ǜ�Y6ik��-O����~C�K
]��g\��-��7���MbJ\��Kjr~栎�V�ni��ɗ^1�4}���}b�)���
�̬�"1�>{�<����Z�U9��!�m��K.�go/���ZRV�	�ͫ�=�Z�떼4ã�cP��(߅^ߋ
+;�\��y8cc�E
�2
�=c�'�e��iQE|�}ɻ��:������h��輤n�uǾ���C�	�����3�Qi��Ӻ���N�:|��ψY\O:�ҫ��S��[�]�ӵ�Gl���ʋ���j?��v
��s/e
�q;rb�6�)�ש�A�<[��ŝ�ONϹč�[�U��ˢ�[^�/b����鲏�;Jp�����ɩ����o�ڷP+�r�!iɹռ�S�B�C����C*q~�x
���xX���z�� �Ѳn���J���5�.����JF@��.�?·�F꘻��SR�)�������Q��
�;RVn)
+L�q���&I�JP���[X�:igH��� ~��	�R�
9�����ju��V2P�O܊xe]��ƛ���.*.�>�/�3v�Y���˭.DČ��_��ule�w6���HĨR�j5$� ��V����[���oM0��~�5��C=D�t

^}NF��`l�/Z�L�2N�N^U1����É�!C��m㗥������ä�W	^^���ͱy���i}�үOڵܜUT�X��3m����f$Ui���6�:zP�>>���&�Jf�,�����
�
s	jwfhǗ�u�C��{~�����wpJ�V����wyk�}|{�s*�〢����Zp�OȤ����2�3���,��&��ʫ���6}������r�$03�s�I���17~�6�����>���m�fq��8��
p$�#k7$�ü5$�hGSs�G����+�m?L����f�W�]/�څ��m����|�����G��
e
]~C;����o��9�v]F5���r�!T%-��;f晄���`)� �H[�u��CRz�;������y�Sa�	�����
c��=�N,��y������|�ߴ=O?�=!,{�
~��Ҽ]�5������}�9`X�
��>-T��A���b�
d�N�.^y�ů�$�dD�'�*1�
h�؋��B2�S�.��o�t������R [...]
^%�(�E_�pz � q�A��@���s�V�yԧS�
����WJT�|��N!j�I
������/H�h��H.)d��J��!���CC#oW�����i'���"=׋C?
+u�R�V� �ՁV6cNQ}��8����e��+�WД-������Y�N��+��M}��}�\��NN��I�9��5*����1RNi+��U�-�G�F�������u���i]��)��ҳ��yA9�ǚ�U֜�U4���l�z�i��
+A�tQ�d�M
�	��d^D
��ik�����WGڿ˚�
�O%�
c
�X��i+h���d��gm�xn���:����SW}�̨;�S�˩I���T���,�|j�}.>��s��.M[��vn�WrSn��Tב�L;��|�L;�=	9|���vɟ�C?xw��]����s!6�:��c�K�2O��i��{\����y
x.C
�j�W��g7ǚ�Z~Z���8��ګ��7ه�W�F��� ��
�@j�	��_�����٭����e����Y���4sJ��9��
�'̎y8WȀF�_VHp�����>�+�f_N�,���lg�_ZrAa��}���6���b_�:�%��[���:���d`����y!z��
xR�¹�t�ʒ�+	;�\#moIkDA_�>�[���
�K�f+Dux�1�����/�Z��G��av���_�t�{�Z�e��s�QA�o��S�nQ=
+�BB6��
#0�(0%�Tc^�sqc�ɯ̇TR2�Ւ�.���A�G8�#�|Tg$5�zx�{��􃅨a� �����Y6e=���M;3�GQ��F�����u9� j��Vi7�1}>�{�Θ�|�q����{Q��%k��f�,r>��J
W��|R���
��w
[}u�/
�J��=�y$f�ԯ�)��7����9b������Ԝ�l{\p�:n+�����Q��ݰF�9ͻ�=-(���]
k�ag����lݗ)sӾ�d�>�LՐ������-n7�1�>�ūZ
��K�N�<W+~���S� x�_�U���H��]���t�Q�����_�~�����S�g�M�.�yW�/g�>ig|`�M��
���^~�i��_B�z��:�.e���y%;��#�iƉ��_Ex�͈jh�W�{���CҴ1��������zձog�v(r����Yڹ�(s3�݄S')��:ҫ���Ҵ24��B@%�]��Ŝ†�٬80�3HB]`
���C��\��H�-,`햢���k��a�]�e8�dH����MP��_ K�EtF��rУ&��⢰��*��-�!��僦�d��z>�u}���̸�u;�����_�@K�)�QI!O0Q/��	�N��)�����P� 
�H��F��J
�
�IڋK
+I~A9X)̇U��OԎx���j)���s/������);�<6�<��� �&{��
h|l�~��J�1�~2b0a�J��]a�t�����jد����a)���*#z��^M ϒa蕈V�(����MXEe��W���/C����KF
嗍�q�R�v��f���`,�z��VIK�c�N�o��\�q�(=H�5	3�R�*>ž����%/�wmX����͟��`
ǽ
+Fl�v";�/�L�;b������1};���z�X��9ȥ˯>O��N�Ȁ>a�?"&	}��p.�Ov��=ƹ@�M��-5/��
g�MLq/''8p���H�7^���\/�������M��s��O2���[������:#�t;��ӄ[�n�]*Vj�~*9��M��z0#]���m1 �'9�+ɚeM�[�&A��!9�
����}i��=��kbS����Y܎��u�UX��&!6^��t���׍_�v%wjE�]��
*:jf�)��X���F5��JA��-[y�8�8�<2����9�W�9��C.�TxT����a�

�Vkը�]��7��u�
�z�%� �� �[\ ���n�}�xP
]}V��x�Evu1">��

+�!��Z���&���|X-K�~���+��_�z]+��Gܒvp.�!�$�
+ڦ
|�|
~M��n��R&
��aQ;A���Ѡ�{�J
�S���S8d"d0'� �7f
�J�)m�=U�B;7w� 㓾�[��O�ޤ��f�~71]�ϬI���:Zp�A>2�:u�/Ө#닋Z=�q9����RG�k��{��|X���u���y돣_
��܍����ـ�ek�sfuTQ��Q��y�,̫�"��#)�CO�w�y�)�B}j>
�뉰��kX�˨B]�F̭�
�0�n�3OmO�.�N��+��i�촴
�
��f��ج�msZZ�����u��8���
+�=Nv�Z�^E
	���m��|���m|�w�t镄���l����M�G-�6j])3G;�:R�睱��SS�S�Eٹ>�������K��9U���yn�u��K.�15��Z\C�՜�
�f^�FB���w�HM�}����";״�QyK��C6\
k�a�u�ѼG�*��&��J�/c�~Q+�5�0&nq{
r
jU�	_���
��拦/�o�"�2�&�E������4�|ra����A iJQ�
:�q6m�RG��;ȥ$h����x�{o�ឡ
d�d�K�M�zo�>�0�F�9
�d�BD)�C�V<(h,DE���R���s���9@
5m ^2]ۋ�{�!���Eॽ���G)���\z)�Q2`�3�9��x@�%�}p���[+D�U��smFٺ1%��z�]�Q�b��m>�"~��A�xoϧ����dx at -.���=��B=�׫RNfY|��g¥���W�>�1eץm�ڐ�r>9��h�S,�5J�ugu?��==X@�� ��0'�B��=j�mA���8%m�V��ӨK�P�1,�
�C/���2VE[lVXVzRv�psZޚ�\M9n���w�S����F���*6���v,:ٶ�o`��A���
4�C~���PW_o�b���ͤW�$}Z9�:w���@1d|�s>=#��8zt�%���k£W`���d8u����O��]���y��0:o�C�)H�FJ�
Z̫W%-���W݇6��~ޜ�_\~ؽ?3%��ï��1/�=�ڝ�F8%��#5�,=��j�� �,?��x�e÷�i��<�yѭ`��s���۷����䜰z�i�7�Q� [...]
+��v����L軚�
L��tħ�lY���
�I��#�5�|D�A=����_IDd�����uZ�?x?�<j1�
AV���/�g��`K	�W�0�N
�Uv�
���q_Oo1l��]R)���^��ܬ[ �e�f��5�ҋ�`O~��N~q��D
�^\ik��o0��_�,<t�5�ﻉ���ɰF^��.�ڽ�JL�i��7
�]�8�ߞް�|�<k�lZ5�
p�
���9�J�r�:��>�y$�WҚ��:r�}i�������f�xmRXR
�w���%�

*؈S��:�]	��:kWvo�D���O�G�-{Q�?S?pv���3����5�&�X��3�
�����k���'���Y{�!mڙU���
ڞ��<m?8.����KV�nHOղ��:Eܼꭩ����'�c�A�_Q��!a�Wl<�<�[�
ҥ�em��,���T硥'��?m�>���}���"7;/��>�W�
����
+�����sVi�+j
>������]���A���^I��
�����Tr�n^�}����'*F�yo�B�J[)L�H*
��>t��0�qqu�{i���ﹹ^Е[�D��H�.m�|%cT�Mu
��q+pЌ�Y՝�i����(���xM�Y�;<
+fj^\����RV�zuXҡ�{�w#=ÿ���ODX�[�vu���ٖ��Xk�R���b��
2<�
>%ý7(/�\ݑqt
Ϲ8e�]��Y��y���NqQ?��g�zl�¿Y�J�2)(�>
�;���{.8d=�N֭�)�Y�hQ�'q��c
�4��H�yw�&�@�
+���@��.\CΥd�
6����	
>ā��� g�Ɉ�����	�P��漆�:!��
�lr���\%"=�E�	zDW�h5�yV�����yS&0p/~���]�G�������]���e�Y�O��e)ϵ�uk�ju�Gw��
+����F���Z�g�0��!=�-�yD-�^X+c���#.5;�|{V\
~}wIߛ_R��Ғ
-��rr�gi��ue���v�'�)as1�s-������޹ �X��Cń9�4����bR%����yAi�.���Ҕ�I��#c�0\��=����'���5��K�ژ�ynk���⣆oRS�+y�Z�s�8�1ɕ��W���.�t��Z![٥�Cܒ��Zo��o����T�X
�']º�[�Fx��b�`��
��s��'�;~�zY����]FF�];6��C+#��Q����IxԂ��S�>J;�3��$hf�̹�X�،���(NO+ڳ3�Y�a}������$'u*�?�2n�
+G��S0&d@ܣ��8��c��x'�5�iUi���v�Y��Y��Ex����'�������ܬ��꽙s��D@�A�= ��](�dP#[x�<�\q�w�k՟#C�r����{)�
ru��n�п
|�{$�i��2gSv�.5�
+[
!���
��:�Cr���m�skS��iy]��cʹ���O��
��%=n�.�߶��6�x�+��I��

c�D\%

xBD�@ۍ��_%�x�
	��|q�vhgR�Li&
2]E�}CxXk���~"���*	�wyBQ�2.)χtzxiq�]Dt�	�`
��=����FIx!�{�Gvl�֍y�y�?�
�qf}�G�
x�U�u���^�
endstream
endobj
230 0 obj
<</Length 65536>>stream
+�����^�
�\�B���p�
4 e������vI�'!C�n�b7�� <y� �̸䝈G\(��GT�e-�g:�^+6��lZvکfn[�����%ްN"i#���u��,x4�P3��Š�I�9`����J�c}�~d�mz^֐�K�s�ʌE֜���-��JM��~	�e�,�G�����Ĥר��ғ2���s��YT��`���E3�:̡�Q�^�5�}$���ӵ�u�_w
�恵�	�7�QV�
o�>k�d�Ժ3�<g�8V�*��������9{�9������`~v���Es7"�QkU�ˤ�\ן��[c�g�I�.��o�a�y�w�'�c�;�x�ؗv�EPci�����K�g�C���X��<�ظ%�O�B����
���׏84
��l|V\=[�h�>z���=�FY .��:�<מd}מ����">�!6-��5�:	x���q�iO������
�dt�+j�*��]��~1>_��4䃦�
56��A<@�7*c��]�
��{r�S
+s#@�
+
+����?ĀՒ��r!�:���0�.+���9��)�V��uP�j1d$~1 g!��b�����oL���٠�����W&��x��N�1�ۜG+A}w�.�v�"�(F{o�ׂ�F
^���w��#h͇�ĝzَըD}ï���%�`>��A�(�1�E"�V�ڞM'�rq������ir�t
�).�=}��
+co>l
�֛��j%Ѳ^Vp	��(�FG,��N%
u�d�['�zP{�P��}k�~&n�!Ծ'���5).K�+A��&�ov����yes����g��o<o�"Gq�MR��t̩S9%�Q2���ݠ����;v�#�
Lij̼�
s��Ӳ��9a��lc�������9��e/d��Y�9�<k�*��3U_�GK>L�i��
O��ݸ[P���5�Cڕ��ə{$i�rq���t;�����
+�F:%M��
��05
�!A3ꡝ͹��q��)����aC	5
�T��*;���쌺;3�hŽ�2�oʺ$��Ǡ��
Ƈ�6k�ͤ��d��s鹎#8�$�3���9��=kT�n5�b1
�$��T �o��W�x
8uo:84���
d<�w2��Ӹo�
d*N�+��
q[�&�á����$����z�����
�ǭ���˻~�^XЂyeI�Jơ��A=h)��G�;T
+q��u�k	��	y�~��q,��s��[i����k�Y�4�Ve���/l��N"z�AF�9�����q/�6k�m�v
ݜg�GÆAlA!��{���4x�
���j���n��
+P��Z
�А�����q�
��-�=��3vՊ�%�
�V�8�<�R���}	���
*�� o������ȨF�_PHsaF특���b���R�C`��]���W�����22���k���=9��)�<��w
�G4Z�-I�%��֡
�w� h�P��*ݚ�<�s���kݱ
+�F�2s�
�`�+l�9ۏ%fk�Z}u��D��WOx��W
෼�g��K���kw�����3^ ͏�q�fa�}j�ա��9���3�~(���/k��삖�_ɋO��Zhg
+�
��Z
��4>V��p��^%u	j�m�
��S���Yֽ��W��a�';�a�@e\��;k5R�$���t-�;�������Qa�^D�ދ��D�ߜq�/e�
+̥b�f��iuWzNP��:��<`%��=,h��VAEbVC�]�OP�^�b_LLp��n��TIs.A}b��pl�u?	׌{�S��}2��7b~A3���-�d{
:S2K�mԃV�?�Ԛ�.��!�1�qC��I:�Ǻ�
JYa��9
�C����/KJ��E���ut����~�o9 �_���RV��
=(��}zm�&kIڔ�;������SY�N
sې-���S
��\�
"��s���|
+0���rjH)Ⱥ�5�W�*Du�{�j=� �#A^
ӱ^�� �e�"��h?��3\\x�vm`���$"*T�����_8b�NJ�
��5�QG>
,í]
�>��pK��s��<���=,
<'_�Q}/
QJѐ�+d�g����b�="�7�0>�
��Z�3�p ��	Y�
ƃz
�U�z��BT��uJ�L4�Qt�/�z
�9��+�T
���4��e�
"�Ѥ��
������U�_�����ڹU�]�$\=׊��ۻc/��ε�]s�:j:�Sz�	Y߮W"n�
+��Oښ�
�ce�ݙ�^Dl��Rf�,=�jON���Ӽ*�5�`{�q"=K;Z�s������X
�m"|�x�ڗ��� ��K��y���/FU�%�Ze1�U�^93��v@�2Q=	�{�5��ˮEГ.�D��q%ee�A��C�V�nV)�t�]��'�#>���+bQ�����,i��粸SA���M�)ڑ�C�J�����&�i��;��}�W3vn��T�ͱ�/���1�F�=�h����H`�����nDB'���~I�v �z��ؓ�*�	����P!�S�[����WR
f	5��$����,�
+��^X
).�5Y��
�Ki�O�/�%���,�Sv/L4}�2�lO¸'m:��)���Oۯ?κ�����%=��MѶ:/��CC/`�lX�GC�ޜ�4�MW�p?���D�W���/�JIq���r3!Nu��)O�X%��
S�îMW�G
+
=�
+P���}#��!׎@��Pk�0_DP��:�O�~!�R����!9��E���,�4{Q���ٌ�W�5��3摴Q�P o��V�{o�
}�ȅ�g�n,�#~%�
P˪,� �2h
+�g��O����[� �Q���R�Ê���b�g����E��|HΦ�������B��’�Q�D�k�C�bD%�ָ��C�*�{�ƒO
�բ��Oxt
+j
�ڿ�y��_��rJg�q]{��$)�A�0�i9��U�1'BrA�-�-����	����wI����\���@�Vp)M,Fe�<x1���
�A�m�t�[
�
���6���l�х���x�r��2�A�<��{��B��~4���K�t�
\g�)��<"���q���Y���|D����>j[{�y�1T��{��ܣ����~˙�W+K8T̬W��9E
1��c�#mٜV����B
%}r�W��Q��������Y�e�#���6}
L��9��NxMԽ5<4����݅ܨo���7�����
�!c?
�s����L�7��RP��рZ
+�j>�7G^�
#�&��H4�o��y5Y�'$��l͋�0��;9�1�?p���Y�A���B�Z
9�!g�L�h
�4炽ChX�E#jY* n�[�ǽr6?�	�gdu��
<8<J��WNJK�;���DX�y�h"�
��i(�c���!!ӍM��
s�DPڽ�7�;s��{���}�KD).%��[X��ٚ���M3N���bX-��b�W��m2f�i��H��S�^�:��Kˢ.�8kS�#.E�����ٌNx$������M/�Z�i��V�����~���4��e�%�awY?@D�Z�q�#�� k�zur��̯�A���o�`�@�om�yty���ͱ���[p�N��+X�3���e�'m��
+ȗ��8d�������&�Ы�†���v��M9�Q��5E�ѽ�RV��i�X��nI�ꄤ,nV�R��	��up!��+Q'��UP��D�E��BH-A]�&�>��sh�y_��U��F���y�ڣ	�C��
��c�b�y�z>�,��|M?�5�8���Ո�q���^{���S��Q

+�_�q��J>u��]����aAI7���3'�I��~~]�ͺ���k��#�^Y����
���?󹻬��+yi������gjM���=ɨr����v@��-k��XS(~Y�K�)3Tw�
������f~�xjĴ��sko�x'��1�a�8f��������V���z�����U��
+��O� �FS
rW��ӟ
��B7&s��q<�s#��G"*-N4~�9�e'�O|i�]g*�3\u
~_a4���j��WР�/��D�P`�*����֤�v6e�_̹E�o�=�\6��h`,T",���� ��V!�C�< lF�|
Q)�Q�p�'�L��y��������(6,���!)35/(KL�/�����ڿ�9���9���,�"�Pt&&��w�����S�!�
VA@�@ncd����C\5C�[P+�u��[�J���sNҩ�.w˻��K��M[�5�K�����&D%�c����9�ɭHY�I��z{�)1�g/�d�Y
��)	��-OY���>�j�c�>)�~��������C'�ش�]���E㵷�J�	��7=t91+��aV`A�^H���������0~�K}> ��\�:���Mβ."fYs��9�L��
l�U��J�ϭ�}���[ځ��Z���'����.xX�~��v��E���
�u�0�
9�Z�iU�`&`u�+���^d{5�I� [...]
<"��ɨ����o}
���[��
+ꊠ�ĢB���5�.�>z
�����"�j
'$��C^�@V��;z{��	<G�^�����Z�0��3吶d���{~$x˂G��f��xP���–��q%��*����i���-�
z+����\��f��6,�����ڗC�n�����D�P
+�h�W�I��S�C�a1c7�
�._�-��)���ٍ����W؀x5�_؄zM�Y
1����{o@S��Tx �+$�����
���H������_sN�>e
��	�2s܋i���4��ƫ��GZ�X}R�	�┓nQ收��6��&(ǜ��-���I��
q�$�G/C���̼�:>M=��/˘e�9���
�Tl�y"6+�Z�_�
g
�ZY��V��
�u��/ߙa�v�/?��	�y���8��
�.iJ[�s
�17�&iTħD�����h�s@�p�S3�s�IƱ�
�8���E�O��bD-�9��YAi�&���'\�����+ϛ>�N���N
�����Ο~�h���_���:�XZ��̾1� ��|�
uyf�
�|��,IEň�F�����s91�9O�u�,�O
�I
�=��
+&���%��G�6��)i�z'�Q�f��
+��@��U��̼Gچ�č���*	�,*�.]X�j���=��Zo�&��L@�!�z��p�	>�1
a)���6"eb^E|�~2�b�/Fd�"u�
�32
����i8ը?�YD-I��8��6Yƅ
Q>��),jtxP�J�y��OИ��"��1`��_�@C���K��rN!*������]�$��U޶:)�����oO�Μ�n�5�G"����T�J[�e1Ȥ�W�M[
�Ҋpb8����Y�y�ɺ�;��y����c���n�Q�
j]����� cNxTlԥb�m�ʭ�������>��a���/#~���T�C���uS�=XgS��[���=f
LL�.���LM�N�f�՛���O[?߬������R3�3�3�	����v(=ù�9�uY��YR�3�=C=����n��
I�Kj�ƹgW���%&yg���$��Ƌ��Z>]x����K���<�ur�6&���v
L�y%�b�ŧx����Z�
�_"���+ϙi�3��?&';d�iGq;�
+jV�Lr�,?�}����l�l�fc����,�,n�g�Yg
�bv�we�
�tn^՞3��q����U4e�-�o��~��7^�}�5־?ef�I;ؗ�v%j =�
~5�L�.�,�W+��!6Ik���b.yW! �Q~Myb�f��+�J3p
�KIClz1�4*��j�!�B
���
�B�Z{��J�Fi�6�XG�K�aEjVp��I�~��{�� �l�u�c
A��bH�S�
Iz�\�"iF��e�y^I�
���+о��̜�2=�lIN��P��
��[w&xg��0�d��
����XDըC�N�PO9�Z�&H9���[�O����+)+�2�w�wj�9�5�
K�E�����
QC��.Y��
�8��_
û!�
+ɰ���$���6c���{l�>k��cޑ�'�3ξ���_v�X �/@�ɂ~"V�i��)��K#�'^��ffEuP��8�
�U��������i=�Fi���8L��ը\~.���ײ�&U�ۓ�+��/Ŧ��M��O�[�'溏S_ߙP6���~�s�߭�W@�N.?`|���|Aۿ����W��#��;c������ퟄ��|���slkTpn���m��Oۣ�S�UZ�枃>?������K����ll�zg�w!p��k�`�_����C�@���H�>�?v���sd��b�8��e_ڙ�v'f��0W
�������C[�XGp��!�Ttũg��S��+�ϧ��]?n�l�b�y�k�ۣ����p.:���s�i��E����甬S��᳝іo�{�A����V̡b�&�d���䬞�=-�
���2p����G
_D
�}����S�%�(@�>?���
i;�U02VY	��ZS*�
+�-�(F5j`[Q�?eW'�YV_�~��<zBxy�5���3��;oDY��r.>�=���~M�i�E���Ö�/=��f�1��섨��!���s���I�ɝ1�9R�ɜUٕ��]���>P�A�v���+�;�Z~�����o�_ҏDn���u��usLY����;����#����ML=;_�������o�g����*��
h9`z86I;� HLk�t�xE;��B��sVUJ��|�l�g�ͺ�7�>HO�.R����<R��
+q�I��u��xh��o�kMZ
�\�U�F݇i��^	b�\�粠��JR��c�C�;���k�dg��S|�}�z��h�i��;1-�J@}$�E���Y|ҽ/|���Ǵ�_���Z�6$g�'�6v)���=�/i?�<��zŹ��d�D�����Ԭ�j�D|����kځ�g]�o6�������'��+��q,�g
Xy�:�x����S�х{�o�F�Gb��gc�+���/�����������:�
?��t�x�7Ӛ���}����pz�������s�O
�?�xZ����������HbFݵ>&�ɘ�]�Yi��
�q�	ן�~�����N2N-ܭ���
��k/ygv�%�	��͑֯c��H�w
LLv
+=��7�������Gv�UK��?_��Ml�v46A?��NL
+.&�x%���e�̬�O�3��\~&<��Pp,z��]�f�Gˏ:���r�ffDU[�Y�p�����P�;�����>��
y��1�Qc�
+�ͦf����4}�U����O#w��
�����G��;0f�1޹쬤*�FT������
ơ�݆����=0���qܭ��ʎm�yg��
���h��K�;�G�~�V��������>�
�Xz������|�u�k�o�V�.x��o�OY�C��G�5-��������a|&>ͻ�3�<㞂k�yu����~��z�qȒ͈]ܴ5�:�My���ғ�/����_k�`�	m��������M�(mX��9r������C���&8�q��5��tr\ځ�cSʖ��
�f��Э���ڒ_O��K�F�G�kM�
q��ae���n�]o�n{�����6���O콗~����UP��<�v�1��m��l�n�W��;�]z������{���?o����Ֆ��`^�<R�o�t眼�����Ƌ���V�������΃�[�_'��ՄO#N�
++6��~����C��K���/��_��٥�>喾�p�~p��h`����֏��3���}2����׼��{�V��ĸ�*1���
�W,?a��������?:zk��p������WU|�z!)I���/?�
�>`�7�e�a�ߖo�|���㇭g���ML��Ys�n덬r�Q������{K�+/0P���æO��e�
u]~$9
�����Ӷ�7��}����K�͖�m��������q|�	�hnN+HM�[b�K��Ǡ�~\~��MX�s����e��eKτ�b�&��K]�ڈ�t�^�'����]�������I݅��M
+ʷ��v�����
��]~��u�~���������_�Qr�q��j���m�
�
�w-"7[?Y}����O�?@�|���y"3.(�Amn�0Z��}�N�G�'�����x�9
��ҶfT�q��Eeˌ�uaxҬ������w͟l������>��:�
���i���쓞��?O�J~5�>�����z%/�}������F�ߒS���	�����_�������f*��w��/����&W#V5{���$>.�����pݟ��6k*c5���^���1���h�1�xjJѰ�Fpi�q��KwAs{�?�k?�<h�>�eƥ-F����ڨ�,c����T����uBp�_�����v���=��������hݾy����U�A�B?����iݟ���l�
+¡f'���Y����i��C�;�o"�����`�a��a��j�w�?����k�.�6���Ĕ������t�E�'����-?��1���p��W�5�� ��c_z����ڕ?��.�ޢ��{o͟�iG��j���x�8z����ҿ����j\z��̺�ߎ
���K��0���q��ת��65
����}��ώ����=忛Q^��	�����
}�WZ��7�$3齘�^�cL���{A��ޤ(�޻�� ���]�4)vMf����#����eV�u9��?�{��Y.�ygQ�-�)n���
+X�kK5�.��"O5+��(*�� ���
��Dou�b������}�O�-��ͅ��U�Ou�LC
�OA��]�*>�G��^��}��ٍ�fh�}5tB�)8?n-5����Yy�~r�jk��e�mc�,#p?�`��N�'C{������ʔǫmĠ�v\�q���Zn��^i�����P�r�w���
b�f1>j��|Z��`��|gJ��d�&��rc�K���O‹q!E��+X0 ����t���u�O>x9N��5L	������+�����m�+���to��k�#�
�Z7c_̳���{Ʊ��=-	�T�l�-6�ܶ;>+��7:`>@��Ҋ�^�2��mv~5
�"�ZJ=fE�g�ME�7���V5��gM
��
��.5CݖO=�
+[h���h-v?>׌Βo*N�[]u��� 1a^T�z�
�?� ���d?X�-x���2��C��ty�
���H=�yu��pg�:��J+��.+
8�A�M�%��D�_��zX$���nb�J��v��d��@I��#���(
���dCD��*E�.�9;=Y�Ԝ�[������t��f�+C'�K-��R� 
�
+̙�Y~�DG�@����^���
��y�//
[�FdN�2��
�Ng�ـ��Ֆ�|�3�Â(��rc��S%�t�P
�<�b
Ƅl@=W[���Wg?�U&>��Jzx�&�l
B����~^���T���oV�J>���|�y��s�\/L�}�쒕N�w9'�O9'�O+⪌u�� �8Y
~S��j����1r���zGJ���bD_�	�nOP"oH�a��z
+���������1���h6���a�6穜�|�~y�"��0+�%?��Ӝ��!d�Z��b�2��\eƳ~L�U`�.u�|��ޝ�z������jc�MCX@[J�lx���Ps�n
!�.uB=/�9�.���ǝ��� ��7:��7:J?���w�˿-6A�����|/^����
+�l讄�f
Ą[���ߩ�Ҡ~ϠW�2�O2]��\�y���э
\l.���V�a�-���F����/q	n
��9LjIZ^�
]ẽ��̗R��;s�,�	���t?�&im �� d8�l�
���F�{1!�� &��Iz�
�h��s%��KLzse����o�SV�=TU��7������VZ
+ެ4��lt�|Yn������
*�x��S`
@,��4���co�r}.M�]�q�OZ��.F�g�L��)|9W��l��� �/j���ن�l�[t�����!�&
ȉiG at n�Ɋ|Wڢ��
+Cnhx�w�zJ�P�/�?Nաc-v�i 
�;T��ԛ�~�-����횡-��PM�w�������Fn�G[��?�;�o�p��Ƣ��䯗�
#\'Ye��d ^8n�:��rm�3S?��P��6I�~Knc�//�B�,��^���V��|�>�e�z�!��
L��m���}%��6�Co�����i�:��;�֢(��fG�+�4.UV��d���;�H��c�-6����|6��y����
$���hGe��E��^R��!��\C��Rs�sCsч�nl�t5䭨(�j4
�*4��:��|U���F�[
7��(��vgѧ���Ґ봤o7k�����ђ�]�
[]p�����X��Ր����G??�\��>�`b�I��[���!ń�5����Z���!�y�ğU
x�����]���
(�Yn�v��g�,4澘��z>I��7�Nzj���*	��\
�/)E_
~���
��fDi��߯)(Aֻ���Ow��i�Y��)�f@���x(/
>V��ؤ�_������A��ϻx��c����2P�oF�
M�N~��
+
�����ٱwv�a?�����.D��("��͓K�GG;�%�+�i�NԌ2'�ߖ:˽�{P�
+v��85��jC�ۃ	x��4*^ݐ����~e��5#*���o���.[�w �a���}.qO���7d�Y�(�˸�[}Ԙ�>��f_��͞�Ǘk�������uQ��v^���?繌�|[�H�3NK~4BL})�gz.t���~�
��>�
���
�l�'��
�9�V�]V�^nvCA� e�_O�uq��d�d� ��\e
����Jf�q����~��C���D?�Vf���g�~�(�&z�:�e�!��������bGI��&X�J���p��t�!� '8��(��,d�.�U+"�F&���?)� ���&&�
(��������O
�i��3_:'iE��K]%�
㴜]11y���e�a�}��v��$�*���u��AN�B��8+åyu�2�ž���\�lF�ޕ�&1�ދ	^i�{�ܐ�D��~$��_\24A}LbB�VT�j����M����$ƅ��Ue=���|������`�
;�f�0�%{w����u�Wf?Q�3
M����(�/כQ?�#���܏��/s��Z~�=}e�Ck?�CAΘm)ѷ
���;#�C�g{��jS�K
C��i^��Y~Γ�V��V��dN���<LI^l.���@�Z�q�a�� *dw�\x��c�jz	�����B�]�l؟&�Z�̻/���M�#&1�GJB�CF��7Ã����{
��&��0.芆~{g ���~s�"偱�t���~�؃��=�%��P��S��
�ݕ�f^xm�#��/-� x��ٺ�7;#����K5;�����V7���n|��������y�W�qI"����4��I�@FN86�!+�4�{nw�/Ԧ<��(�b
fe��c*k
+|���4�
<ߘ�ѕ��4T�՛硯M}��Y�?L���2t��v1V [�)�E#�0eU������a����g�Ss�T��-�,��!n���o ?�[j+�Է~�i/�
EgJX	ot��g��"?�pi�
<E��hp�Vi��(5��Fgi����.EG�˾M	��M��
L��
Mp�_��"�5y��������E

]��V{�����p�<��a\����\�]vv��t"�'�p��=��fl���#E�H�A� �M����[n
�����,7d�֋Ҟ\�{��<PS�c�إNB���F����v%�Ƚ��ڎ@��
8%f�Of
3�{�;��ˍ���V�ź�w�s1���.6|X��I1���؄K5Ş�!|ԮiFo
@�����~�[��p���N���x�/�y�/fx�w{aR:x�>W��+�@k�P�-���
�>����������b�����S

u�\Y���Rr�J;���
+���@��a��#�<�%]�N��Ԕ��:J���i�w_�Jy��*x�օ� j*�HUA���a
�X������a�jO��Z��P��~䭭�@ka�vYz�
�k�|�5 �t~�
+�����D������y7AO��?���eC�
v 3;�ڳ���%eA�rP������N���)&\[��r���RK滩��Rv��ն�O�*Z�<�+K~�W���*m����R}�c57���
xw�/�c�,l���>�����N��G�MQ
u
��ȑ�����-Y�[��8dȟs�?	7��}� �շ�]�
+��֝�qK\�5T��&EDZ���\>l�ҏ4"�e����V��U�=�Mt
%E޶����z
k��W
�vw���瑖Zl���L��&1�������C���@6��+
+�E?2�b
���;��
�P���$��,1Ǯ���Z���x�.��H�D9&��#�����zة(�a�����b���h�p�1�|=�״��U���+p6)1�
�#�qћ���Bأa���H�)aC�'�9'r�q�=�5K�9��]�*I9[������okm�w��>
M������Y�2A���'n����_ ������h�| 0�l�����ׄ��;�Oq1�s�v�|sɧqn�C)3��\m����i�,x_N����Ե�?P�aV	*r�9�u�t{���

�W:��F)m���Xu}J �9VQ���S
1�1��]���v��:_�/=��:�OtLpa{�U��j�Le��1��2F��qf�N��e	#��\{�w;1ꡌ��؏�������L���Ԣ
)�Ǫ���k��}��j
e��1�@��� {�*�q�2L�Vo��q�<�<��r����1R��6��|s��YBJ0K1*6�h�ϴ���[c��]M�s�yةd¶{K���_h�3�-�~v��Y�N�E�/��N9	�;F����-4�?_n���5B��Ӳ��B�EL�Zn)�j
D'8Ks*p���ֻ���E)�&*b�Yd���ijw�
+Y�)
t�x��7K0ц.�ם����^V2zOG�Z�gB���P�
+D�v�w?�EL	�%���6�屚�:����UB�c���j�MFL��}�7�ϴ@�ֆp1���ȿ�+��2l�FGٗ��O�L�]�M�)0)�	t�m���bg�p��5�P����Q��ZhR1�bd�j?�ϩ����K���n@�������f���5t�~Y���9��f�#兾)���K���y~�"��
j\��\ÚF@�Sr���"�5yg�
��Km�&>�f��:��~^�Z
�o�
h�&DYGH)N�̦e���
�S�C9��>� ;��5i�����T�6�<L�2�Y�踛aч�v\�n?)�>Lϱ�9��
J�N}�х�6�
1+������W�*���L�c����0mc����W+�E��|�N?2h�.��(9��=㥚��܄ 2�+f�}��D�^n����PUw~��6Z�3T�9\
�+å���J������7�]�d������H���<��u��h���a��k���Fޯ)��������\^
d�@}�z �M�X��R�а��r�:�����$xa_���ow�u�)�e�6�S��8R��+ݴh��m��3T
@��e>ޢ��Y���,�̱X�e�4��'+�1r�Fy�q휤��@6�"C�a~����C5���+�X�+xmh*�6��r�54��Y�܋�VW���H�YǺ���P`���w�a����S5)�ڳ�)�_���N��t��w�:Q���k�_� ����4pw���ff*H�If!����h [...]
�
c���Լ����n�Q|������2HM2��� o
�>��o���k���
G�l�!��Ȃme��bM��
#j�4I̱i�V���y
� ��r�C
K� ���V�'[} �K��&YY�y
�mS
+��l��Z6�Y��:��7���U�������Ԋ���s9��U�ƻi�)	��
��Y�{
}l�#M݌��6���aD�J?�YFι�kST�%�b� =a����B���`DZ�3U�/�ܰ����{�|����"���J��'M��W�8�=I
aK�/Q5 ��
����a&���#�o��	��o��;GYk�i�B��Z=5`��bl�HsT����yAe���l��q����C�|� ��>JI�S�HΩ�a�J�t(h���B/������>Є5tU�5�B��*�k-���&F�N''qX�	���������>,(��+���+�vNa3gh��ź��ź^��G�5|^h�zy!ɩ���Z�=��
^�tC=�e!1.�@� ����F�z� uo���7"B�zIZa�s��
/p9��}�i>qC��ۖ�2�Jv��t�d�G�S�K��0�[
%���q'*�"����^�g�]�"E
���&����N�7�|2_�q<_�r4W)�O2�m����Y>_�Ÿ̱�����B��v��z�ks W�}�Kw��p�L}��#y��."7Z�!�nr����*��*t3ac����=%
r0�(�W��+�aO���;��������s�� i���IJ�<��0&ls�n� ���}�b}��LJ�P�
��s���:�|���U��&�^�4�pY�}e?�!g�Yv�R�y���oJ�N�g�ѷ��U�bO+�'�U
�	n�v?)�]C��ƞ_��f�xi�Bk����V5*�x��_�DŽ���S&���{�%�۰�7�Ia�C�(	�������Û��W.�\o�	����B·�rv��� &�%��
+�nVSr�:1_�M�/5���<��a&�y���y
\�
v�s�&3�ONj�Jl����?"��Ÿ����z� Oz��{n�ӓ,R&��M�4t�lr2���r!ɳ��xՆ){X
)��HN����X���;&�/5�
+!��R��/"޿�r��{
+�_�(�|���L�H��j��8��!�����V�=]]*��_�!w0%��D�� ��E��qcQ杢pߋ�O�^޽
+��"=%��0���
��
��"
���"�J
+d���[Y��q[B.>�V�ֆRv�9���4��#}�
�WsI�-Fj�%TT�������W�1W�~.֡��U4�c��v�*[��m*b[ |�O��
�o!ik(�|���̭��\�y��rQX�E�׮���B�>�HM{ЁMz+��z9�St�s��> �l���w$�x�u���S����bO5���l5�g�
+�W��t���4��1&�22��2>��UJR�`ݗB_?�����
+26�Vunܕ�R�c�G�O
i�N�z?��b'�wC
��kCx/���u����׭�
8�P+w���W���ע<���r�/�c��������Ay����
+C~-����8�1�+�Y�ږx��%:e_/�4� .%%�N���5�"��]�#a��!���paq�
fZ�ͪ�������y^7�.c��G
+n�
C?:�o��w�+R6���(�{Bx�ZA��HP��;��]��;�A
=�ztt�ʟ�g�n�B�^�r��/����h��Ϗ��|���c��X��m��Õ$�t�
^Q�FN�%hTȅ0�W@�>%{��r}}@A�^��
�Ez���
t��eP���?^�G]�kB~�ԗ�g=��D}XjgEMֱ:Ȥ���5xrʅ�?@�>�A��_�^ݹ	���1(��s�W��{7�����uX�
���
8�?d
����w� =�0*BM�s�ƪ�^-��V,ҥ	�M�L���!��
(��+(��������؏��o����Ы�7���͋�s��%GFZ4Ȅ���/sM��h�F;��H
��PŷH�	����P
 B��"�^�>?} ���t��5Н�.��ܿz|�Џ���`f�
+?�Ƒ���>&)6j����r'�oL�M.�_�@��]*	e�~�~z�t�z�.���]Л�w@��]]�t��x�+��_�����ix��ya��
�t��Q��Q�+'��
�#�
�/MH�CTt䟘�苙�> χA���x�x��������
==�~
t���g��%��3��i�p�7���MdW�w'���QF����� �ZU�~��I腟�n ��@ߞ���_�=�w��e�
�=^��q�/�������JX���yo6�a�Gs4������ c歎���=��ɚ��bN��A:ܣ�s
�󏄯�/|��9P! �xpt8�{@}'~v�F�^�%��\肅Y䥑��<�@%�m
��>Qp����Iϻ�I�#���G���{���C���/@??�]¥f�i@�����;�
ST�]�E�*�
�bUwm�pmE at 5��̸����
e��҃@�_<}^a�A�߽��/`O
�b�|�����bRȽt������ 9^ׅT��>O�ҾO5������x��j
�!*/�j��'(�����=������t8�� �{�@7��
+r�q��=�,,�z,���
j���YI�>A�����MG�V�f_��ިB���ff\���
z����3/������@�
���ܾz����;\@??{�hY��|�[�$�����WQ�K
��,
+r�A�ɟ�eƍ�2�Uc�.�	1������9(��3���S`���n��'��W���w@
����}/�x}�T	Nx�܎�ؕSs�ĸ���Хv����8�B��f`_a����
�~�A	�ޠ��^ ק���.��\���c���n�{7o|q���BVȷ�bv��CI/9���<��
��0a�c��ɺҷ�z��jD�CHXȥ���@I�� ,���X��� �O�}��&�1��O��^<|rs}	�
	��
�`�����M7I�6U�h��
=�M���"�h�?�'E\
+����
���k�+����^pq��������_�3�|����9� ���jH�=��k[��+���9zw�OٔW��S�5k2j��zÇ�^A�G���q!��7� ��/@�/�	zz�&�O@�=��2��JV�
<��BgY��1�uf��"�!{��>�5��
ۭ
C~�Id���/Q)���"s����w)�����XyMo�|Oek���#�$؁�g��Y�k��&+1�n�X;#h���������5嘧�X�-�Z
[|�{��y��p����ډBzO�1�
�����R��!l�Y]��Q�膱¢���
�+"�����IjEq
��H����[��,!�*$<󲯻'���@-?=����
|��
+~چ��h�K]��
)��,bL�B�� ,D�ܯ��]�r1
R�[;��^M����%�_����
+�N�; �������b�i�!��W8��W�
��vR�]]I5�s �I�H#�>���ݛ	LS5\�pm�`}c���{^��y-���pwoP��0��Kw���w at 1_C.#�a.�R�[��}��^髥[
u[c\���<QQn��(�����~����]OC���<ȋJ��
u1����
�v��\������:��A��[
�fZ��2������s��ƎWDm�KUM[j6B3@���c�v��o��W�����茌ۥ)�w¾���������bB�����/@�Ү�ˋ]'�ɡ��
+�UVð�+�f�xk��=ӂ���ŭ�א��58�
:-�j��ϕ��п	��"��z�y	����Rv|�ĸ�ۙq	����|�]7�3Հ�.�e=Z�*
>Y�/s��?�ݝ��ښ�ue5]���!"
br������B��(7,
+��p)�?�כ'��`���ܔ��X��A.5|a@�0�+��6ڮ�vT��ۀ��
������z�Q3-x1���}���
+�
��l�4Q�54�R�2+��
�O����6�M_�h��v�R�Z�_����)+������9��MX�����
�]K�����z�v?-�h�
?���V2w�t�UƆ9��
��Q���nS!�n+E�-ya���h��,��O�4i�����^���)qTX�E��הB� �/'*��և	vec����~OU�ߟ��t\�ᬀ�7]�^d�.t�~�s
+�Ǫ�˃U����TeWS�d{s���%F^W5.��Rq���u����^
׻OT91�P�>YM�(y(�$�#���u��Z$����%3\�
�&�'j�9�
��ʟ#��ْ���zƵ�]�_�����ja�.���yV>զ��8��Uv]m�m��cw���`���
Ȁ��4�i��b��-e�����Ff
:+�
{�-j�o�U��[+*<+D^������e�Wu�X߷��
,7JW���U���&l3,�����"&�j�S�T�T5q����%�ճ�5%Sݔ�AV�x3#����|����9�V��e�NTb�����,TT
i�ȭQt�a��%���"
+p��%)+[ߍ�"�lH��z>H��5�N|0��Κ�Lt�Bd��ة>Qኤ�n�l��U�C�huU���aȷ�.�l�E�7G/�UQ��Z>ec��|QVY>�[�>�&��h�M���Ô��e��N�v�	�(�%.���	�K�(?�V at 3�y��n�w�����Z龮]q0W�e��T�T�+�
vƈq�����!��\��t�(%��e�h��M	`u���7�F
�E5V5�̩p7�&;�k����w
-�jMS
�q���6�
ڔ`�ץ�,�+��U
+����{��vYУR��,��8�O����{�
ͻ�|�R at 4�x��	
�$�f9��X6)9�2D���'D�
Pb���[��0Z��
��m���~Z�M�+;�2w��3�*���Z�'��^�
��0Kw'���[�#��OW2�5U
���sjjj,�u�]U���KQ|�i��f
#&Z&���>n�rW�6�;��R;h����ZͰ�(��=vw(�I���"�4�`Q�){s5�����uMC��tkφ��gCY�Z
�D-��Y
zGɆ
���9�L�g�_��mn�yD�%߮���U� ��C'��#:�R���
�s�Qd������qP��3��F��e�JZ�1�+����
�G
��]

|�P�v�ܦ;Z�鴨酀�b��k8�iV�c���
�f�����*��{�umk��0}+��� ��ne�d��S|Ǝ�����x�4B@�4z4/j>R#��P�
�5��˩�GS\䁊S~�������
q���@��Վ�g���w��CWN��lU�~�ǐ��0*����fձ�J��e�
�� )?��de��]<��zU�m��{�	
dV��{M��
��:

�膤<Tך�i���c���X���a���<���:���M2
�����R�͡�/�ׅ-���~��s��j�uh�����%9�$!�.6�|�*�]��g�K܍bR�e
眦8�H9v.�@À�OQs���;�oU
�5K�1p��瘧)`���`��㭓�
Us��?���bu��\c�S-b�ʈ�&q��YR���v���XӋF*�|v�1�G���}MS�s��Ŧ⢗;��o�@<w��;RJ��
���d��+i ��'z
�|���,>�2V����9��
�j����L"`W�F�k*+45u�S��=�dk�#+?�f���cU�Kw�B��Q���P����D�"��#�Cmc��,
�-��o
!� <��h	���_z�ע���1%�.5ˏW�������cW[SgTҠ�Ir�M͆��V�X��ٮ�9�q{8�@
��!��0��s����|��B�+Xv�l�|غ��V+x�.��{jr�j7������*c��;���w�h�eAݡ�n�A��_��_�
��
�lM�繯'
�E���C}��t���-�!p��3L�SE��{n
�~8��#6�T�j7���)�P���VT
o�zNV��-ZZ��)�meS��X۽5A�&�g��3�y�f&ک@%l�e�
j��9�h�)���:��jgλ�)l�}�~:G�
/T����GѮ%yf�
�+H����M&iq�;E.;^�՞n��L���
V��i
S���g�$��)9%6~GR�m�-��QVy���
��;�.;��n�_��jxx�$1mw�,�>^�kz�e��l
+��Jb�������;�Ե��+��s �Rt�q ��[�f>�7{�F��|�U���,��3X��
GG�t�o=��_C��lQXs8�B���->�U�L����7M�lI�1�%/�Z��j��|�c��e�+��`cΦ+�v� �n!�w�S]�{�ѿu��}5�+g�
+����v�|Oç�L�2��)O���-2
۪�cljB�M����бfYY�I	�N�7d���^|�E�g
/���i�*8��qr�ER
�ޓ��8���>MȘi+���	?��k=���S�M�,��i��qt�]�K:�O�	�����
�v��,��T��{��=��gzb��
���S��P�п�mS
��8�Ȯ	v�D
�g��<�u���Jl��|���61mOK�>�RK��jZNf�uOa�7���5��G�q�sl��,�
��x�Z|~��,#e��W��^�
M��h��vlhT~J�v��_�%a�zR��2�x���
��%�x��ɮe���B>��d�G98�@�I=����s��I.2v�g��s2B�E�H��q�V5.�6�K<���
/V6u�gV�{Z>�l�K;������2׺Ҟ���L	�ޜ�Pa{�<��)�>y>놆?�G����!�D�b6ts
�-�GX'IyG�
⾖R����ٛk�
�Tw�	OW����Z��KX
��:Ք���1B��}��t
��|U�/C���
~��
�ة�/��9��w�\�UI+��@����J����낖�]�՛'��ZL�K/"���Sš߀�/
�
���ђ�T��t���i5(�~���'�坪*�����<�����(�,�x�=���o
Z:�﵊�=
aQ��
+|�C�O9��������O㈠d���c�$�˨i61.�؏�a���bLP����fIy�]A��
 �:��b����.�D�"wǸ{���)Ң��c�t�i��k�u@V$��ƉI[Rl�y��r��p��<ݮU
�Vל�P�gZL⡺$�*+ޑ CvĈ �$
�����)��ٚ�}-
���y>�K�K^@ա"��������C}u�s��oW# ���)N@[��sZ��K����U�ˆㅆ�����]�;��g�Ȑ��qD�s��<j��&�"����u�Y�hF�ߟ�b
r|��@y�s�Qh����w7:�"�k�v��
��Ӱ��Z�i�-vy�3q{+��m%��$!��ך��_���7�����o=�as7İoK}e�;����Q\��4�kNT}4-`
j��8?"l�.��(1��� )��XE�[�(��c�\�k���g�Wu�\�qh9��	f�s���x���:A�]����~{�r�
��
��:X
2_��XΌ����?��a�*x�i����IN�����

��<�t>���=�w8���Z�"��Xx�4
�
f���C��Z����e
j�%]��G�nx���&���s�#�d�,"�9�J9�'�g��c�� r�`�I��V���9�
��XK/���x��ط�t��i��h�U| #��I��[
Env�
RJ�� "��y�"���[��`{�>X�:v_�x������M9<��n,M��P3p�ȫ p
uY*�&e��9
Hی	� �Z�Qq�r�rc�Dž������gsU�竒�Y��٤�̩6xx~���>d���Q�;���M�S4��8<r�7�YZt8�";�T�]�=
�P��Q��Zd잺<rc����Wq�{3��V5�-���ib���R�P�3�S�4�
�3�
�m���&j�JV����*z�Y�3�~�~�h��|���
����5�T/`���y��8:�a#��7'H��V�֤L�Y���LP�6��
�s)�)jᮂ��T�J��,�� �u��$�������*�����p��ڢ %�eĤ�^���
g��k��� �$���)��'@�9Ps1�ʪ����،]
r������+U-��*�Gzjɞ�<�"��¾����)�M��sN��v���Ij����*r�I���(�؟�R�%01���r.��j��d��yO�@�T�d�����o�@��w���m	)�(������_��9L�p���/�02�6A�Y�ؔĂ_����56�PO�85�$��0ج��?[���Ƣ�NQ�����Ϗ�_��= ��٪���zU��<�tO��(�o���?��
�U��\��<�j���g�,��U��EF1<l���4AJ_
"e�Z��6E[��T]��
�r���
jz�UJ�sH��0�A�O���z,gn�C=L}P����R{_͏�9_��5JJ�m�}]m-�6J���]j
� ��3+�4�������Ȕ3@
@��*�y�<��(uU��b3��ē��푩
�l�����Ns��٩�檲
�~f�b�Ĵ���<��/.�)~O���^�%AĚ���+=i��[�]w�a���Ұ)Q�۽I|�?��9Т��_�`���3�Vrk�=�ぜ^d����ϟc����N5�]A�1�1�;C�@�Vb��K�ȫs�I�ׇ��.�@���\�xlw�~��@�wr>����������]):��{�$b
C�
.�OVi�#@�
ZJ�Y�mB��q	g@�0)�����P�.�"Fo����)��uY�rF��,����y� ����!t�j3��Ru�C�py�y�3T�w:��lu�C�@��C��e�k=�K�����R5=g
����TK�u��,���_�"�*C�����)l�
�Q��mdg�O�ov=�lO�O�����zP�����[ba__�a�pp����@V�Ӱ��U�'
u=[c���1b�SSU嘭mؔ1�چ����?�����j��G|k(��R���ģy
�P�N�ל�
;�qL���JA9�q��
+ѵC<�RL�c���O���*�g��
�jl�s
+��;�Ip�H��z
�0����0qg+��ӵ���E&qW�I2J�Q[C���d�]E/t����)INM�s���9U��W��f8��)r�]��6t�yh�q׻K���1�ƒ����v:<4��Mž6!��6�����&���|m�C�'ؔ�r'�O�bd��@���0�����ݝr �<�eb-���ś���ն�ϋ�y���?�F8y+]�5��< d�B����
��o�{��L$a%�j��i�$Z$"�J?<8{7�
�$9�f�i�k]%���`�c
w>��0��aZ}S͉��ڔ��6�;��t�
+1J0?uM�7;�`���h�v��q�}耭
����~]�o��]��w��)��3ƃ+�y�e�ȫ3�����R�����k���Hq#$�ݔ�r���x�]4�t�0�h�(r�'��|k��jW�[����=�O4����XΙ��#`�ֻ
+�G�7k
+�^��^�'��
Ȩ7
�H�m�hs���A^���t���2Zȍ�������@
#w$L�V!�:L�,�c����@�����O瘘�Y>�t�����^z�#��(�GS��# gنK|
��Ow:2_
+1	6��Ћ
7c"m��8���3���Ջ�����^b�d����1�%���6�tV��Oq�{ӌ��ya����j[΃�j�mS���	F�SNL^�x�u�;d��=9*�8\�U+�rYhIz�k�N��"j?�`�l��0��h�"���l'�m
+x��2
ЭT��<O�+fY��Y
+�I�N%6�2��Y(�~8��,���/���+��*�������8:�
�V*ʪ$f:g\���tB��bU�Sͣ��	qf1:L_�����.#��Ǥ4�?� Q�B��&�u�5��q��O.�4!H�3_���L�Ğ�W�Y�
����-CDZDZ��������f�?X����
+ƶ��ً���Y�T��n���0�

��|FO���@��la.�侘��z���3+�|���t]k/� �/l}�ҍ0(� �w��g
+_��y3�	�2A��l_N(ޟr�2z���Qz6SA�x KVq��rs��!R��N��Jg����~w�]p�nh��� k
�o#����o a�?e�S?1Zь�hBD�\k-��w���2�|]���&��2��М�f���r�
�r���/6'���f~r(�;�� �HI葊�82��6���h����jM��
�=�
+��G��0ѿ4,�����&?Wss�;F��6��-��|GA�y��g>[n����F&m��r2��_$'}��O�
몪7��>諢�,T'�7�B�-�i��^v�O"����;�t����Ju��ij�
5��FS�3%9w�
���aQ�{����g���3¸{-ş�)�?\�fi�}}���=�(�g��XU�{���g�Vf/
�
���� ?`��e�`Xd��5�x����N��d�
wG���<��4�
w1JJR�{��:‰y�ܕr:�"��>�������T��[K��n�:ro���L2 [RR�c�?�q��=��] �^�x��Dg9���SC���2�ު� �f��Y�Mٛ��.�Iv-aQ2 {ڪʍ6�D'���;Rs��1V�YL�]퀺i����b�4����L~�P������� x
�q2�����!J����G�l��{���{�N9]��o�}1�b�4l���o9�s�G�e쑚����	 ^L�cnN�b�nKɩbn�[?�C�*��V�
?nt}�Iࡳu/Ղć��Я�t��f)��Bkއ�B��"ﵖ�ﻀ�:�&d��x�-㟅���E��F�B;��J{��Ֆ��_r��S2vF����n|��$��8���ы�@^�C#��s����b�(�b>�)��)Q���iz��1յ���Ը )��5K��CJ��d��:۔�~���-
��j��k�'���Ĭ� [...]
2t�=�k�_:QAbf�!8���
b��YF(�1�)�&lw���*�����R	rC|ޞ��Dݝ�����[�{��>�q�v5�\�\ ��8�\59W��6�e |Lw�����}����"���0��s��omf���93gf:3
���]�RJ����[���.��,!B�BB�F���̜s����C�;�\$\�{g�%�w�׊����(4O,�
�~�
��͢��tȜ�l1��f�i&Q��1T�_+�3�z&�=^�1���k���c�"�h��
��T�,� ���
+FU_m⏂�7�
�}:1K��m���鑆\���/�le����Q	ӣ�,Ӊ!
�d}�jo[�-���ڊ �%���ɫ⓵m�'���̠�mf�޹��
ɠћ=�WV�s�X�rou�9�
��)HT`�P���$����zɢpm�E*��V��jO��L�Kn
���.���#�,�g��9T~�3
~~�f@��'� �]`�����L��?
z�
;O.]�ъ
2Fَ���k	�!#23h Dž���}]]���"E�Z�p^Xsh�
lz�Y�4<f�!�q� ��g
"�0+_�ԇL��3�E��+
����4M���P�vN�L�EF��uk�&�ˢ@�>V��1���*Yu>��"�`��3�M��W�c���憎�KB�O	��p�[�4&3(���� �*��	d���I)�3
�Ah�s���:A�Q�+�(�ygT���^��!\ʹIJ��աڸ�>�[�0����ss��u����������<�Ե�>�j�	����
 �8�*�9&@�\� �� �_�\��*��;Z�hQذ-C~��V�S2SN�駗;+
�F�
��K������I��}JJ�{����>���_y��S�R�#�T<���n��jWM�
ٸ��y�f6%�%��q�ZrY@�%9�0iA��В�ڮ>)��Jg٭���'�w�)̾��r}����4&9�"�ki�G.>���u�N)�\s��E뫥i ���6��
�Ф##
\�x�?G.����ɨ�35�IZ� ��3�V�X�+����
+�B�� I���U�_w䰢��›#O6�k�k��}�(��m�����A
m�7�J&�o�Yصv���y
J� {.{╀cC*B��9i��K����.���i<Xk�
Y��e�E��u ���h�E�@n
+(��Ɔ���T�	y�%�
b�{
+��ڕ��s��{�2�֖w�#A����
@�8$�Ƞ
��SQ at C�~��[���ݵ��
9n�H�����ÿl
C�� �'�FaQ{Z*��r��Ѣ��3�7�����iL�c�nm �ԃ��

oX ���I�3��_'q����7m
��1j���rw�R��&A�8�xX���JJ�w���Joҹ��O�˘�~
)��< ����C��G@��bٞ��>���<Ӡ��1��
"�5�O��ʮ�	Knn��k�|��|�SGUԷ�U1��3�s��~��"��YX���6�A9�z_I�
�@�-]9��8.Kh1���k���.���؝�do��m��_�i�ş�l��
+�
��>6`���	�V��aث�a��m.ׯ$�oN�����f1��mO��L��=뺦9ᔩ���0!����e � �`@d ?=�i��"�?�lޡ	_镂c\3e� 
4x���G��b��m�dO'd�fP��ʻ�Ί[2F�yQQ��
X�E�($�6�b�G�w���t����HKo�]sO�
k�U����2��gr
Rz�Q{�,l��.l�7P�K�E������me�����m�f��*��Ӏ5����=�|�� ��	9)�
;���L]����u��u`q��_\����KM=_���/���c"�5U�b�3���+���Q���cƫ
�Rj�gs}ϱ�M����
h��!,ak��w����vA��P��s��K��C+���!m�
Aǟ�=�q[/`lΒ�ZjM@��Ӊ�l�1T��_|k�'�f`�
���먺�9A+�Vp��l�s��FŹ��8���cb"w����
��K��ǖ����諕/ ~
+��q�/,�%x��j�N�ޚ†��;K;䑵��A�w��]��%A�Z�a�]��[���a1xs�S�1IJ�xpm���m��ɾ�\ r��^��`V��bv@îs����yL�FR�[�Jq�bs½Vw�\|P�A�t��Y�p��c3��-Eě{����]s,ئ�
Y��[�X�f橊Zza��uZ]_t_�V�����[��3E-��ּXlʹ�E�t?2�f_w�=:2#�����
	���4>��$`
����e���"� ��GgZJ��T�I�jJ�o�
�W�H
=s�gA�������2��_
��:�>�Y�&v��_�8\���\�	�A
+ģ@dY�j^hE�����{pr�.%�[�|l�п.5|
��{\Ә���s�"��K at 2u�b]Rr�.����Lؾ�]�eB<�t�0��()�rp��]�f)���<s�
 
�,
Ʊ��:�߮Q�ۚ��4�Wƪ��S�}Jd��P�s�0���0�e�v�k�6q��ykc
��6�/�f<P�
��F�	{s��y:hW��[�NY��}i�ɹvd��L|��($z}����X�����N	(�/����%6{�[𲇘���J��Y�t�c�<��w֖��:Aʕ���w����C�r1$.��<x��<�W��׆� ��rm����#B�\�^�޻�
+vNc�\\�{��c�Yj+��ґ{m����r[������T��
�%*�Y�6F�1;����f"���9�2�{
޾I(>X�.�7��N���}��f:�o at gM���TlA$e_�J���1r���w����7-�O�U��O9��
{f�٦rz'��� %���"nG���jx�]����/���`
�c�y����J�m���#�h �0!3�\!C�����K�z`���1�`���p��q�M
jp
(�-���R�r.ts����o
b�n�֦\�&���t���!�����Z`�V k�|ގI>�6L*��E��q\�s
+TA�{��OwP9!�V0P�+��A
�c$U�
輠[��3	�:fw��v�q鎉��QB�R��7Dž�d��`3�2\�{
cDE��ewUQ��#7'�I��s�,6u}��2P�d}���W�N����[�A�R� �����
���z�R�+\[rK�(��!t
`�wv�\����S��,=��U��3rF��=uo]��}�WS!vѣ
T��#�������Ps1�3�|��
U�C�w��
����g!���p]S-=�>�����_�bү��9󏥞��mdT at Y�>����\p�[��{Aу�����n�Z�5�J��;�n��V���u&�U
tC��:T�:V� �}h�qwx���x`�Ҏ�
��t��)�c+�nu�vs��
+�V֎��s� ⇌�}�H���Q�2b9�H�]
�  G��%�(�$�=��Ʀ���p��ʇ
���k�%�õ��1�2a��\��Иϋ,�
v��-buZ at M(
+:#䌐���bn
8^p?/�Y��k��5; ����c���➥#�>
�K�M�,��p
+#�� �J�ov��E��:�g��Q��IJ#C�xG-$���}�u�
.}s
��V'�6��,
�k7�(5�yH�O����Ӂ�⎌\�Q��3	y!�x�$�?Z�
�}��� �O�s��I�#�rQ�ݒ���I{x�������嶚'+�Ud̴?�������?z��7�z	�V z��P1�xܦ�:��K�b'����|�5

X�Fz��0�x�-�l�Z������! �x5�
+`}#g��W���5b�~�w��T����;G�1˝%��
�
C߻e��)^�
UC�

��z.��ꀎP�
���|u;䕼��ծE8x`��4�"����=O�=^������Y0����2 ����%�ګ��ץ/�U�Y��mN�2�3��-).s�Wt{��q�ȇ^5��)�yT����K�9�
�ܫfÍ]u��`
[�<�k��V���o־]끼^�Ku�q��Fd�8��}�*j{k�I�`�H��2R�N�^��^��?���k�+��`��;@O<r&���<|l���js}��gƳ$�W?m�U}�j��%�t�>ѫ�1�X:���4��w�N�ӆ���!�W�A�Zq@ʭٙ�VZ��m-SGK�f�4.��Vu�p�h�;[g፵��;�
K�5V:0o�c�u�]�wz^��9V��.��_��~d������c
��&e������\
�Qj��CK���r}gh��;6sY^!gO������¡��|Җ�
v�ak��4��fC�l��� �
@F�:�o���X;�o����������1�z�7C��IiEA5
�W��}rD�{�nL�6/�<뜨��b�S=Z
+d[�L�V�b*x���o
���˔گ��&z[A+
�sP+����}*�܍�
�f��'�Q
*��3�4W&���bS7'�+=���u�}��̌��9R�w��Y
`f��ϨA﷕�_ˀ
�H��E\EȈ���70��r���q�,h8x���6���Ե��ж��u�l����bWM�mWЎ��(�f��O�J�C��
´3���S�����!h�0)��LP�t�|�9l����e���V����t{����y�Y�c�P=�l�W���{��W�-A

+�����1ox~`h�	���^9.cm
mh-��2���(�Շ^�C�+���R�F�x�V�X�`F�3O�� �s`�M�����z��Q
�����-�E�5��>E�^�p���,�
)w������&�
;j*���:���#��K�E7�s��u� m�0k ��
�E
�*B��
+��RB�d�t�H�+�S��$�[Gم�A‡m
���j�|OG
3do��=�[�L��C�����bBj
f`А��!�格�,Զ��n{����������iT�b{�ucc�
k%�
���(.��|}�if��1L�Yr�YK[�}�4!M�{j�Ŧ�B�[ɬ�]��,�#���&��V� b�}�.fk��jȹ
�#�vMM��s0
)1s���V���ͥ���s�/P�#$g<>an��	��9~&ͯ�f���q+}����甴������6�H٪��?�
o�{!Q��
�5/��F�
/�ʶf˟Ԙ�?�8���i��V�pw��x���'
��} f�����川Z�[���[aoĠ�s����~���P}s���5�L�C��2��xf�����V�/g�ٗ���Y��Qꖺ��C��mm�أ&�y��5
{`�2>/�fa׀Cu�_�/hi��+����րQ�\�@��OT�(a�jL�B72��qC��s�qJ��L���R�+^�E�(r�@�(�J"�ů~s�� ���Ơ�C: ����T���/;\e��K���2@Ͼ�V{峽i|��>��r����`e�k
�W� 6B�ʟ�bά
�c ���r�WJ*p��	�c�$Ē`�+Ӕ�(:7�qv
�����]6�ܦ㠶�
���5�5ˣ�K(E=��P�+�����Y�1)�:�o+Y����6&P�C�O��s�E:����e&c�B��t�j�d8����
���>���
�����h��Z�P1!^�9BK�M@��ؐ�+�')�������ǰg�2��6�R}�Ug [...]
+(`�r�{���-�;!��,n�[p���D�(���<��T�A'�v�_�Y�w��ׁ���ˋ�����WS#8y{
+���[p�6XtCۘza�����	%������q ��	�x���,�K�I!��������%oI�_�g�"��D�M�)��ZJ��4Կ��m���Kޡ��
>X,y�>�M�?����] �ۻaϗZ
+�j�I�&�ѿ����&̽��<+窔[r�[�����,b��&�>hb).�;G+�H��
9<cs�з�Fܸ3�����*���ݺ$?�9
�
�n���A�R"S 
 �j���b%�9"y��;��2�.�>��t�P3_.p��5�­Qh���1Z��9��'�
����aF�e�n`�%2�p� 9�PQ���vi��Ҧ����G��
C
���!*
�/ÔoK���Qh�O�)����S����O�s���� :v}��R�ֆ��zlYn%�D�\�b�_�Ƨih
+.�7��6q�«�� ۵
+��X�ЏM�v��y�"�}�Q6M/��R�{{ջ�7����`I�Tq>��LJ��n,J<X���,�
6��9��"�5]�1�c��M�e�)ef�]�E�����=��k��o�9I
�A-��<AIۜf�|ZbS��_�
Z������{Wy
4H�����u��I��^�[l拟v4b�w�Q���
F�]��_n)������(� �x�_c��'�It�J�sY��<m멾�1\��/�?Ա�vtB�n�R�v�[[M��~xѯ�S�[G��|с�C
s��,=HT�[{v��6kWE�؞�%:G���.�kSs�#9����]s�5F)4�A��/;$�w�������.	:`��T�Ǖ������r3_#�|r����Р�ٞ��?/�1�Ml��ꚅD�i�;
+l�_�
����& �kH�à���i\F
��e	���j?>��U�P/ʾ0GO>���⊷��!��-��D
��<�����]EX� ����+�������
Y�
�t�
��^�2T�)b��2�p��>2��f2䳕Zwl� �d�W^����7�DGK�=a�3�{ZB�g
+���UtW�K��6��`
��3��

;�19�Ԝ����[�~J�Uq��/��c6���G&��L%
��uK��]3��of�=�}��L�UN�mk&��E�?-l�c�v�����(��� �ծ�\���VɅe��:q�|s�R�
�c�~��^q{u���S���(�j!`�6f��>
�
X��*�GtL���
�f �s��p�#@�T�J �&%-wֽ��끽;�
+~uY\q�
�K� �"!��:
+�)�z�Yp����5R��p=^�ܧ"X�!o�m�wP��b���sj	5�%
ǥ�C�jإrB���j3��E
+�:L�|]�5��%�
�鸣*&�AfoZxs�.Y�^�u��3˩�'%[ڠ��ٿw�쩍�~�xz[B�\#d���u
������
6%>7(C�mM�L�ď#䢻�	y�ک������騐�G�kT���,���5W�^Zm�W��5������W�v�
��EXt�3���:NJ�>�n��_	���p]	��`,{4�H=?DN>e�|� �yU����N�P����,�3ԋC@����K-���MY�7F+"v4��.���KS�47�4���\��&��pY�1���.�cU�~&��!���S���Kꕵ��GJ�T�nŜ�/z��w
���T���Pp- E&�̓�v���C
�,���'cG�}CK�C�,�
FC�{�c����2a������3���%}��
*��
+zyx߇���!��A�uuGE(WvT�'��N\��=
c�E�X�`�W;�O �~�ρy8���h�L���[
+M����"
���&�.������zt����03�."��wx?�� Y��q���5�
�x�;Ssέa�Vzo�q��I9�~�rr��Ɉ�E��H(�W�8�Us�rb�G�'n�1*�
aO�#^f��s�_�C��7FJ�s�:j�F��w�	?������$�D{e̩����=�1�Ο�Sp�λfi�@
K��й�
+Lᶒ\���
+��o�v�9
�����.b
��t�֪�_����D�A�
+��ឧ����SZ��	�;��'c��[?�9�W��]S�W�#UO�����:��;j!�7LJm�`�If�F>N�+�<�M<�f&��
�|��O��U?Y�\��I+�Uo-=��V���[�
nmԾL3˾��
+�
23	~
�g�s���hi�7�E~%�fGΪ:Pq��B�Z��j!�=�+Yj�>��'����֊��x�5��?V���y!��eB
2L�s��
��+����䮎�$�����wg����֖I��R�:
�%A��jȥb��[�-%���O�������^���G
4��<�ds
������f̫vTɹi�Zx?�����.�Dw��� b~�$���˭�׺�ژ����~�ub_�x�P�g_#G�d�L8o�J9�6\�jw�	�[hlֶ#��ư_ {���,��9Y�����_��%!52i���	-�ݯ��W'��(���Pń�d�­aX����P!L4X��D�GF-6V��a�Rj��P�r
+Jݎ�V�ROo
�?
x
@K�rd�O�/
����]

�o�P6���z��
5�z�HGm�"?�Eה��3��g��	l��b���+|���Kߏ�
�|�r[	��U�?z�`�;0�
8�
0�3�T��Z|`h��9ĭ��ĝyb�w
+ge^���E�T��	�y+��{���Щ?Ab�SSV�-�x�S4�lsM�y~��9aiD��3� ��󖔌�O�?nNC�CF2̡��Y�`���������mYC%�l��r����y�x�E�eS��y��=b�k�&�!��׵�=\
F�{&���!H�s�&nk���zo��]
�1LbaͳYf��~,0��rJ�o���%�?J�~Ze]r
��-T=�ޞh��=�
Ǧyg����[���{^IΓ�����"��h��;����I�F>+|_}� ��i蠝9J�o�^��~��P�d�z�
M<�Y��7Q�����)���u1�9B�c��5�L�V� ���g��<RX�(󼌓tj���w����} ���,؞N����&�'�qHr�Zz
E�}6pI�:
�5C-���Z1�9E�Y4�BK��yq�S+��� :js�U����)��]�e�>X�|�{ZQ�ӕ^X��#��mg����`���Gzq���fȫ�H��4�������Ps
��?�ť���Lܗ:�Ȍ�?ZB��� '��ZA��w?ೞ�x�
).c����Jk�593�wv�����ߌ���
T 3ƅe��e���}�m��ؑs�uJBzv�����ONCy�r��K�ܔ��^�ׇ�e6r�B�[�Yj.x��&_
 �}���r���0��!�s�|���1�W7����k�ڪ��
+&nN\�3�0��U~�g
�P �
�����O�gO���_AvRpyk
����S�\�0!k[Ɓ�
c?�A�����iJ慖�7�ϳ��,4T<�F'���!%.����W�?	���M��
���!)���v�t�S����mGk���ؿ��,�p%�
�[���&�:X���V��%B�_^�ag
W
P!�Ð$�
�b���{��}k��J��Ny��B���� ��	~ɋo�i����O� �.��GRB��:F���f@;��=�%��ίx��1���h�����'a�m}C�C�Pa��<2���YZ& ���SK<
+fe`^@
�D��9j�[�Kp��>� |en�}�V��
/?�_&Q�k-|OA�;���\55��U�c���#�,4��
+�X5�Y�1��
��\Gm
�>�L�>���}�TE�����
+�^))/0�N>�*�T�
���-�f
�>1�hZ�5�|�

�$-��
y���>CM=	����Y�G�1�fY%���\v�rk��q��ĥ�w�ޜ�4Wݶwa�o��!�f�)������ԸF1�|3�x�
�`
�	��R����
�2��&r�� 45l�X��@�4��<S7T�ݘ��}^��*�E��u1��O�l��_~�|�(.z�S�	��$<=9�/p�he*Q�i9'�R�a��z{���"�<
�/~u~����OO�o�*�Ͻ湥�蚆�rV�O��9K.D�E��e��h�!
bjʽ9����_��ۖ�G���ro�iI��98;�����G:
+�5~���({�:�ݧ����"j񪘘)v�
�(��g3/�w�P�\\�s
���Wyu��ɺ��N�{�3:��
�@<��&X�K�蚊������=�v�
�3N�V�S
3�!-�[̓�+�*`�F-,�'>�%
/�@_�Ɲr
+m�=?�`�A>���W��=���2yd�Ý
+D�[EmM�r��ީ9�T��?����|�R�F��9=E�;]M:�I��v�\t��^Q_��Z��o���'���r������C��]���Q?/4�>
jy�=�5��d����|�Gw�90� "V�-��6��
�d�
�fk�q��䊞[pNBH�y�uj����uNJ�>o�X]�wGl��$xFQ)�^T���䦽

�;Ů
H���>�#U+͙Wg���Z��)P)���h[g�=�4���D�04zg���g�.�'C�o�p�!5�.��
RJ�k�Y�
�W[Jn�c�CF�8K�tN�Ͻ��\v
�g�
�w=�ēˍ5/M�/��'����ݠH`^?� ���
�
dH#���
+�W�tI1)�Q�۠�T2r�YZ�u�E&�{K4�uU�ұ��t}s��5@�Ȑ=3�b
DD��0��U�71��;Ԝ�?�"~�C$\Z� =4��S�rcK·�Ob3����eaî�OwN
T�����L��A
W�y�i�`�GhhU
��9C�ܔ�2\ӌ�
)�zV
y�m�����1D�6�����M2Ι[K�D��+�&y�Oo~lC$=;�Q�_�l�W�N���*����Ss��9F�����r?<�ߎƙ�eʧ��oJ�o��׮q�
 
�/�����c3���2-�Vb�fٱ'U��s��ۦΚW���W;ZL��������KN)���*l�i�%�9H�[�Iu)(�-���
�� �2��F���E�r�V?tha�{~mI�/W�K�������qZ��09}WK��Q�D�&*"�&�HM=��<�茂]|Z�+���
+{`ľS�+�
���g]�&��Zlݱt�:G�o�3�L� Ꝅ�w�6X��S�\���Y|ֆ�Y�V
+�"�W�C�K�9E�
��|�^�q��
Wzk_Mk,~�]?<�G)��L?��l�K�@%??g�Dz��A�qa�%���>��(6(�aԧ3rn�Ul��ֻ*��ԤJ[{�#
/�N���^ȣo{���k��� �F��3�(~u�_A)>k��
�YOC���|�p�Kko�
eC�
B^ܩ.p��rJ��)lڙ9R�%1��,9�4�N�ԗG�HO����졌������;t������*���Y�y�D&���S�����z
+tO/d�)e@�-	j�Y�����C�HO���$�a
��L�'@� |�����T��l
�����b�����<i
���S�.��qq�Ft�$���\�`}�8�;]�4ͣ�f��8}�
+��l��=�7Ϭ��p�{&:���[�Ħz���~
����c�T�!9�)y�#���c��
��P/T<�k�]�j�m�5���)�=��S��+�����Ad�k�]�3A>�&�:..`�okd��rJ�Y���W~5�*h���
�o�"��X��I���pq�*:X�/�9�K�]��?k뭺�a3�
�e
��8 ��VRJ�f��~
>׫F���k�9e�ܐ����H��=�\v�D��t}��
�����:��-�9E�vI�E���~#���$|�6K�X��,�ه�\j�$�Kh��p��f�N�=KG�M��B���n*8���
.��!O�&�����ȅ��{�
Q�Jo[�J=~c��`�(��؜i�������
+�(U�S�qd�Ѳ�q�,�,Y=�Q�
�
\R�(�L�=�!�=�(u�2Jׇ��mU���+㔜������¤{�97d�����F���5W�����G����R6�܇|���-�p��Q��Y��_����h�g����K��({ᣪ����##��I�,�fm��c���Ut����>���tM巆8e�>>��
19귕.�
}}�-��	6�#���EW��~��?ʟ_�F��>��o�
}cm汭���@�}SK�U	9�d}���Q�Nx�j�W'��㔴��ҷ{Z
+bWC�xg��;rb��@�}#��rGY�{�V2H(~i
�͵
�b�[�"7z�QA`���r^ڥ6����3
��Lc4�=��c'^�ҢO��e�;X��U�{o!���1A
o�%x�� ������T��"	�e�Mq͢3���1�L�Q2��It��{ZFM���
�t��#7�	���(��=%�uK����Qj��8>в�����	br`^HY"du�.ΰ
+�
.����}j��y��
옭�����vMB��0:���H�!{s����1�s�&�-ť�g(� ��e���1���E�
��YB�� <�5
��JF���Cz*�놰s��$6WꛧV��(���[�q��|C�51�9�x����/��_,†?�9��
+(������
���=�H�����<�H�I��kA�Z�e��P���O6�@O�C�禮�{���!A�R����M�wN�J�����*�9�k_zf�Yn2�2V���[�|wQ��>�V��>5�q){KM}��-�����$�C�J���L��(]�B&�h�$}�b��\�c�.�b>��3��j_��k���
R�KJ/]�@� z��.����&�C��c�=��d��^��i�����G�S7ž�Z�;J�އ�	~��S�r��ru�QxO�E�`��?��+�m�%%�ӊ/
+>|CO{�OB����_�@���YT�p�Sy�RPsr��v�S��)B����1�?��.i���]S�b]o]
:���z��~5�L|�k*�?����-󼒕x~}[`�����w�rh�= vZ�*������ޜ�=��
>���1r���劸��M�3
�gpY�X��,<�?]�a�
}����JF�^��Hѿ���#�4�W��u�R�����d��9������+õ�)�O�0���0�o��so��v�"�8:~P*f޽����m�b�Dgn�R���K�gVlKY`�
1��	����_�$���&��e ���W�گ���1C&�`�����(H���֖��ԋ.W7V�m���Լ���e�r��:R��8��C7%�7�&
+�-�-w��,�A�m�#�}s�Ґ�C:6�Eo
+{<s�$��Xt�Ȧ
/�y_-
�v~����h��:\�r?�
+��Zv�դ��V���6AӁ�R��}m�=\�E�ֽ�
�}{�H���Y����z�{�W�'�X�+��
/[:
+�l
ab�#�4};፭�ާb���zq�YSS��8�k�P3j�Z'h5,�a?��>���ցݥ���@|`d�jT�6�
[
+t֜���{�Y�:J�X�FE����ֻ�^n��}uQ:q�ōQF�G����x[Vc�*��ܑ{ec�:¯��z��P� �
��/&��r���aDE-w��m�a��g�B:
q�X/ڜ��xJ at -fy�LЦ�Sc(��q�v̫�f�q��>+Bܗ�koN�QO�b�k>~���� {����ǖ�Ջ�n�Ћop�_�G%�
+��e��>�(qȄ�UY
]�C�mC��RpJ#�5���5/�C��V��5���|sԊ��.�����
Zt�%%V�� 1k�%���9��?tC�N��]� E,�1
+k�c~}y��?�+?\ܞD&.5��4	�K1/N0�n��
�ᤜ����N }z�
��՝�G���f;Fʞ,7�\Pr�~k�x��8B�
���=9�̊��;����9U�a �+?������im)z2�-|~�iz曐������!�'�(�b�ݿX��9I�=g�/{A-xzz��
��M��yU�uleRwt��
�b�(�;AN=i���q��/�?��/��0(��w
��u��=�(��~��8��*���~���36������F�˒���$��t�_�)ؖ�D�w��:�����a��x��]~dkS��� ����}dB�m����V ]���c�Ǜ��x�s�P
+��ج?M�
+�
>ͣ��:d
�����+���F�� �
�b��薔�{y���J{�
��
ӶU?�v�"�T
Ё�;211�f6cG�&��2���iYr1cS�޴,i�:���AM=' #����}
�¯B���J�_8x�
�`��w������u�~VP���f�
i
�����`�jZ�_C*�lfb?[����^琢�Z��;%𜀆Tf�>��������P��� ߀w�,�Ш�iLb�����������$&ySN�,��yV�� 歡�>ʯ��u6��flMP3l=ď &��M�u�vq���
�w�����2�8�pe���.�8T
�m�W�.e��,�iGK�Ɛ�
+s)��f�u���^5
2���ir��
�dK�*
��~�[ k��Հ
�ؒ0
�����b��5%ߒ	*�%�
cK��ij�E%;��B
��J?5�:��1�	��}�L�(-}O�$
[��M)!cU�Iޚ&�d����wiD$��yKݐ��1���E
+��Sqw����}�����ui�zJ�+��eTδ`�5 at S�����=��¥�{K
�'+}uoWI�˽�$��^��1 k�d�_~���Ϝ����ъG+���K`�6f�y�~ތ�b�Zr�#×�ZJ���^�qS~������"�m�/���6i�
��G
��5 G�v�6{��\rb�}��pL�,�G���?��<��WR�����m��^Ĕ9���-��b[�}?!;�����
_���_6��f�5[��ܚzI���y���yD��)V��锳A��욥�k�*��f�����IJ�����\xiNX�4�a!õ��Y|��4%S�@u�[����^��[�ꄙ'F[��=��IZ�(ȥ����Ͻ3���)N� ��vk]����֮�G�ނ��yX�_���J�5�	z�G+dn/�I
5�̭!l)�i+#�Wn)2!���ո\�
6~e��*�>&�^�U2A�Rf��
�2�g" .fx
b��$�R�X��ȥڄ
�6A�a����^�S�)ٛfᖌ
]�����3�S
�e๶�䚥����H�
�8��Rw��m�fRPvNT�4h`cC

�Oł��p��%K5Ɏ9Ht�3l*;��|�&v��a
t̾��>�P�{&bն
+�
Z�T�L^
FF9'���
+l�m��<�x�Q�v }
�p1���p�U��k�@6�<薌^�aV�LXHπ/�yA���.@�
ͭ~���?�щ��rF�s���B����\�FH�5��-4�_y�D��v�}���!�e�L�Si��c�B���c���5m�7�3����N�C�X�Ya%$�M��s�k�3v ��Q �TG�
��񪨕!����	~�}�U�հ`�6B�+��
+�%�,��-%����
+��\�>C�6�PS��\�[[/���u�
rZ�Q��視۳�ظ8�N4I���!\�|'�m���g�
+�L���\]�O���̑��cM�����^Ռ���"��9nu�≂�~z���$>�XO vB7d쪍YnMZ�q��5'�oNq*�ƨi�
\���vc�V�8��Y�g��'����^@��O�s�R6�1`���~]!@�)�i;];�1�
�L#m��I�؄��"d��h�^%�na���B(�(�N���E�qLSsͽ����ί��s�ie�z򖺉�14�:.Ʃ�@]�<�K�C9��
+��霆F;��4��Yk� gpPi�����r�~���}:f�[C�n(��u9��ԋ���>��F��gPÀ�t,䮁Kh9�M)9k��1��ؘ���л���K
O�~j�~�A�nk5���xc�Sh�M�*���>��ތ;�
QK��
�ml�YSt6����1F��J��qx�̦���L��6!����)�-�b���1�K�7Qa!
�ȯ&����L
��-#Z���^�6hi����� 06��/5t~�_I�*�r(URQ�W�ҽ0\��v��`.-��RaN9�ܣb@]J1E�P�B߂������g8�qf��4��>M/Y��!V�ͼ5U{�ʴ�F�L�����g�7��0`�J
��b��	�1
+��ˍ=!���>�do��XD-

�7�h�6Φb�6u
ܶ��ti��v��!l�K#�mɨ�� 7���-�tKƂ�L�}�Ŷ1���yCņLͽ�eq��DA�4�j� �i�o
�\Ց@_�M��m�c[�ȁ�~p�$j�{��E�aa�eLX�>]��iZ:��-�,6mm
k��.vֽZ
E��b�GU��Yh�
+z�vyG�C*�{�b���_1׈z�kG��
?9d��-Y+ϭ����t�
��Q�����T��h���gc}�O����v�:5]#�6�Q�7�qS���j]+;���*���If�dC�}E;���(�dCV��u�#�H�������j���m�����	+��L�!��x��I��4��
L�<�S���eϭ�B
äęFx�T ��J���>v��4�4dd��u|��<��s�_������m=04�
]3����\�[��s��}m���0]�Z�uwZ��wwK� �B���'@B��Q�Ip��[�ݽ���<���
3�u��LfΣ2zQ^0')�<x�e]~DD˒RA��E�� t¬�:`I�u�+>[:!
����5S�� >����Y)�hE���x��|�Vs<�мln��t�@�w��,��EcO߬��Y
f�W��G�L*����!l†�^�c��Y��]�� ��EmCC��m�#��
�����9ʑ��i� ��,cJD�[PPr�ƚ[�
]�ՑVN9��2�k�\�eomYm�]eᧆ�Y��z�2��6��������U�Z����Hs�Є�Դa��6����S�tT!lr���@������!\Ʈ���
k�ߴ5���ùn��LC��Ds��L���|�jo�e`��i�FG-�`����5Wi:(q�ɷoW��hjښ�#�t���vm��s�hū#L��Xs*xRR�a���Z�e��L5u~]j�^�
ذ���:��8������@���nڛ�
����m���6ޢ�9�'f.[����zҢ������r|����G��59�.m}�SLK���ˌ��,vE���.l��Hsݮ���e�]<���-=&k���iׁ���{��~���pG�<��x�Њ��:�d䌋��l=��1	���"�z[i�e9��?�ѷko���qOxQ�*���@�E��>j����k������յе�&┤�dR�G
�wrZڲ�?�7t��4
Uv
*rV�(�W�4:T
+�0_�5w��,I��[C=���~�K�];��I]�
N�*F�5G ��sM�j����(��o���6*t�B.]10+�2Z���U��k�O��	��%/�ut膉�ٴ��7-��af����:h�
sK��|�#G=cw��Z6��,��MK{�k��d誏S����
v��9
掎5]=��C[[�ެi��;6٥ ��_8�U�G�V��dk��Xm�ԈY��BWt��!d���̡��V6܃��v7�J�	Es��E�ǞҰ�s�^���߫kc%��ߝR4��:$[ ���uj��ڤ���
�f�U�­�f���� @�
���~��ė�Y��iu?G��-h�`�D��݅�F��dmަ�G�;�-�s������WF�-G-~w�cpo�Ǻ���L1�.
2iA��Z�'OjYP
�g�E9%��M��WGX�%s
bz�	�3��s0�ޙ�T���
WF�����Ec-zu��w���iy�J ��1��:n�cp�٣�V����]G�ஓݽ�`�]Z:dB���7S��3t��b]����aof�ʹ
+�'�m{���}'�f���,|9^׫A�
+�$��O�
>b^"d�y
��V�gkwš��lF*k�
�Z����C�83w<ѥ�st�lM�19#�(nH
bT�A����A�^�ki�����=KG۶�
��n*u����
���&n���?�����e�(��{o�{�[f�d�ܯ��w �B>B��/
����VU��L��K7p���e�&�	4<]��Q^(d��H��Wd�M7��=���jZ�,�}�`3ꫳ���LC�EVȮ�]hu
w���nq���-c^S[0���.i�����5����
Hm󋶖�~���ְa1��ʅ�V켶	�bb����os���j�L�����=Z�v��j�T-؏B����)��u�6m흫���1!3��C��`� Z�Ђ����|l꜔��mcׯ��I
�F،�
i���̨ꊖ�M�%
+x���!f�m��\#
�JڅY���|���R����Z-WU7ԫ��&�Gt ?����]}�҈]�5S
�df�m�1k6/�j�E.Y�fnƏ*U|�L/
Q�
�~(�]�n3)�����{�J�������IG[ɬ�
[16�G�j�L���f�����嶳�v��@Z��v�;hU/N-��}�aa/tJ�[;�㵛�\��/�y�f����7c�j2x\��_3�)ۣ}�-t�[�;�.:�bsN�z�]
�?����W���ق����MGs���9���;��S�6�S�FddϚZX{Su�K&
hFE�]5ut���6G�:f�M5�&N�U�
�FD
(N�5���
����
H�h	s(���'�{�+��g��FE��a���SG�Y.U[��ߺ`�K'��-j)�Z,BE�
=�	X}�[H�Gi[�P}� ��ћc����!�֐PO�}g�
&�
����� �U1�3n��/���i��VQ}�Aȭ�qUH!ό�sm��P\#Y���
N�LV��
�T�Ի(�r�E�������K^Ob~H�+�J���4��L������?Z��3�/t�k!���Tn�2�C�����<y���7�&���4��	� G�痉:��H�[�k�TƄ�.�AD�
+�
������n��t;�1�Eyi��~0�&��*�LRK���`��$�})V��cbHĞ����I�����Pzi�u!��c��dt���Uu-)����5�nZ\���s'x�Й��Jˠ��$�M��h�-I��<���t�q8�P&N�PQ������Ve����,��$��Ę�۹)5��3`�������T�Z�4=�ݴ
�%3�xV�Mv
� ,*!M%P㻚��F�"��.Ko�j���
+�����JzJ�O�錟^�
+s�x
r9/�p�V�|��l7�8��
��p;c���t��3Zz�M#b+*F�$��S��ӭ)h�WD��_X��X�R�U��:��� 
�6#����PY�X��
hj��d�Lڻ��H�]�?��z��
��7��r4�S����ށY+�e�8�Q��xG�ϭ�
+��
@e9N�‰���Gi��Z~m⤦����1
Nv�-ml�R�-����
��E�b�.��G�D�eܛ��_��a��'7\��������E��~�_s�k���4�Ttu&;�
�N,6
����ChG1;\���,J�V\
q�-�Z��W������*�}h	�)(��.8�{=#��W/���in�Qԟ`p�N�ԡV	�,��)UsՄ�aU��MM�}��5�� uֳ�Zw?5����<�5P��jf6���?��c�47� �O_�nO�A�~������k~n�M<�����'~�Ќ[�4u�V��k0��ٜΪ
&QM����d&k1��<�QOS}�%�Q�|�ѓ�
�o�O~��4�-1 t5/�N,�yi�Ԙi�F�d�l^��awl��U�ġ�h�\���Gv�:�8}k��%b[�p"�9�D��f����_
+Ұ�e��%� ��:�ϴ�l�>�0�Kb���5a�O�Q�z��/
��6TS��c�|��	��TH�kh���e��^�!?|��w9#��j���;O���qn�����G�.=xS��
��������6��wa��of�eU��[[W�<�ΞM��1<
����ѳ�rd8��
����L�OA�K�����/İ.=xU���w��~��R?���
�
EW{�� 3ul��`
�{��k�;��)lGT5^�]�~��R���R{'*����w9���
v{�*��/��Ɠ<�˗�����/A�$�#�k�x���jB"ᱰ�_�2��u8�ڿ9�@�T��-
+U�Fa���}�B'�#�hd4O'�	�W5��b���?@ �����HJ"]����J��p��
+V�-�s
jH."w�k��
3�����2��#�D|52��Ct�G��j���9n���q{��Is���wOu��E_f���]2�U�]e�7��%D��@j�
+$��&"kW����B��NLfۏ~!p���	)�?E�ܞz�� �u�e����[_���~�
+�ط���,�H���r��<θ��iH�	�
+��x?�(6r-��p52�����T����n/��G1/}"�=~_���
��|�7��wA��~�uW@���=	����Z��������ɔ�1�!p���|����̟#S�~�O�����B���?D�1
+Ka_��$��~n�_滽���z���
�SF(���9��8���ж3�R��Ŝ��Y��x{Ъ�e�R��I9z�iq��fFv�����q)]?�~�\��0������"�;�.��~����<*����f`�}-i�
Yvc�x&��

�s
Xt�]0�wA�K���b��?���x�=�ҧ@��3�0��C���0¥�"��R�H�3������ˣ=�����A9�ɟ%�:ײ��3�p��ei��v&���'�ʟ�]z���ҫ��'��3��gT�ρ���SJ��ᔉ����,~�f�7LȚ��L�MD���M
�gV�x2�c1�\��^ �3<�u��#�/} ��zW�����:��W,��/ᇻ
�?�����!�-	j}���a�3�
�EMM�KM˱�;���	m����

}ԫ
;��v<ʯ
�
��������>��/]����͐K�ɍ��Da��2��mJ.n��B�	�%<��S�@7tO�SZ���	�B��~TZ�����˾1��n{�_���g���@�1~H�m�� ��"��0˅�=�R�F%�d��.}p`���
�l����o���B�����&��*~x�1�-5���d����Ԏ˞��_Cc�7KJE/Hx�{Ig��� #nNIJ\1�!.]zJ�P��ℼΤn����{"G�yc�zO8��&�Dr�;���{��Bb�?G���
�ͺ�U��()~X�U��S-_�L�
|��Bs�Ǥ�afE;���w��+:x��stJ�$"��Ot�/q���€z(���u��w(�w4����2�� GyF��"�Ϳ�Vh_Q�ij�p뢡�mb�&�"�}
Q��$��
)���c�[�P����*�mp��ZbN��w�g�=x������G���ǩn�A�K	�-?g�t��H�������Û%�XՉ�ӈ�a�~M [...]
+z��������t9*��v|Q۫*�̛�
��
����`�+ۚh`�N����.�Tfdw
8iu=c KH�
+�S�>!�"��2�GrAۋ��Z������>������4�HB��"��
Q� ���3JjƼ����2f���
�����
+Y-� B��-���N+���~�U ���oK.}�]���	꿙�
y
+���ɪ�����f�IGV��:� ��HK�W���M{s�S�EW(��9��g/����#jKp��
P�wS
����,����8�ǯ  6C��=��v�v��"����
#�ҵ��J9G��H�~����c�k�0$1���8��-+}W=�ͮ�3$w')��Yq%�C=S�h����բ%3��o�h���
�>&��+
Ur1���O�k_��X-S��T�/���iBR�$��A
a�
-~�%ȃ��"��D+���4����Ў/�Ƥ-*�	K*B���
�
�sTJ)sP&A
x�
^�<�ӭͭoP�(�o��Whl�
��������	����
�Ȋ�bɥ�n[Z�G�L��	�1�g�
��^�Z�ש�2� ���V_��CѾ/����t����9.��w�Ț��؟"3�~��i�%
+�v-�\|��h���ǛT��QIS嶕_ƁV
D��8�:i�$
�8
N|�x_�q�pu� $����d|�\{���K�^d��#/}���#��z4RA�
>xJJI���W��|��Y�hh��)�
z�~|����5B�{t�
����'�v���
Y�˚RI
�/G4�c�<OV�
�7 �

�/0��0��
{�#|]`0�Zf���׳'�
��OS��*� ]&�˕p�D��q�ܾD�@U�++���G��7`&�i)�
+.D�U�3�b�,�ы���eC�ҍ�Y�QK7F��k���S;âl+�s)Q܆��=l��.�4�ަ��&�^�3�����h�Fl�G[��uݪ�F�`X�Hҙ�5
�}[vj��0,vӂ+?�l�p�ˣ��&��[*��Eŝ}��v�8��iK%�Xc` �fv<��bx�7|FК���<�Q�!�I�	��
_-�ˋe
!gl���7�'T]5vYk�Y�Uh�rʍ��"I[K��]�,�P�r�U�^e��o����Op*We��=SG��Xkǎ�Q9'!�,J�E�zֶ�5=�ȳJs5
z���
�W*�����=}��.v�a��k�w�-�
Č��i��F]1��6�����gcþ�&g������\
"��HI���b��
32�Ȝַ&u�4��4�Q�.fW=�u�^��ò��Q%3s\F�vi:�MB݁��ql���
.^��U ��4��%[�z�ү�T��첺l������Iz��y��-uR?A�Aeh}	䁷Dr�
�'��M����+���Nj�m�6�n�Ȯ_
"��[��
��� �ð�1
蝑S��Ї�Ջ1π�j���R�Ʒ#(���e��k�`�5������{�/���R�C�O[�3sv���]	rj����15�<�v�߳��?����Iş(�q�džj)�]}���
+� -Q�#��8�@��=�fC]�fƺ�۟m�8u5���k�'�XЙ_v�$V���sJB����Ӯ�g
ݬ����푶�
+��i��ٰ�˖����Jޜ�5k���,���1q��$/h(�k&j��0&{I^</.�t8BA��P�\|�n��,��EN)*�5T�l$M�q �W
t��Fq�A^�nB̊ƜQc'q�T�7�ʷ������
�pÄM=��e�-v�
�sl�SM�.c-�(��3�� �j��aeL%��U��L�R1J�`�Ft������G}�KZ8֒�`��>/-��ef?
k�D/�ؘ%�`~ �e�3���]�zYQW�jA�y�
+�
mO��X��|�I�T�/�!�u5"rK�K�W`Rd���s}e���aGfD��06mw�qd'UlX��
���5k�E���YKz?wU[
�5��?!
X�E�vj�k��n��<�`b�9h��	:r{�;;�
+���%�H;�&hNA�^P����m#��b���"bI^
� �����gV�
+���2�j��죋wh,��c;�x׈��5�?
a�ׇ��K
+&xZ�O��r�ё�r�	
"�)&DM��Qc�ΪQQC�����1��:Z6M��%eїEA����q4��8�l�~u���.�LYaIK�%A{�Z̡���p�հ1\Y4�g

d����"k��;�~
�:覎U��%@����{f,���
Z0�x�3g�봒E9:r�+�����
�i��aj����+�9��7
8�5�j�o��
���3|��q8B,^��BV5��
�m�F�1���i�.f�˾��Y��R�{�
Ҥ���Ҳ��jx�|_�۩v�KKC���l։��\R!����
Jx���Z:/�zN��<
����x�/��$T�w������Q|����u��|:�ع"/�2ݙ��љ��5P�u2I��/6	v'��*�?�M�fX�[��EIn��(��K
+�|>��|�$U�=ˬ�
�c�4��u3��p�}�p�k�p��ߙ`1׌�i:jRA�^�,ٺ�L�����
zh�՜MPp�v�؄��q_Wڇ��v�D �3:P1ϔ���{*r榬&vW�K]�F/J��3�
+?-=�ၺ
���E�)p)�����!Lډ�{l��X,�7��|�������	V�1
hC��fI��`KY�qW���7�����u
�xE	��sB�&�ЂN]W�,��?�{�(C�,)0q����c+�x�H)�����e>�}��%�/;z|���o��lI���V�m��1�
+�������z
<��Y�a�
u	W��Q��t�<�����_��lʫC��
*�%,�
nH�%B�\�Qr�M4�
���x쑕 ��cSw���`LX��M}u1Gd��4vKVzl��>0@"6���N�@���#+����@�35�mk.9*f]��k���O0p;�u8��*��
��E���/Ύ<���
�=
4d_W��؄�~V��D�o�ɻV*tI�J>!��;ɰ
=6kK��:4T��ˉ���<�X����F��XK˞��7b���ʰM-"f]S
�gB�l�q�jX�����A�9�������ah��E��:jπI�>���u��vɫW��s
�[Ď�����a�K�r�<lK���3�@�FT�?R�7;��d�8ߓ�zU��y�/���0��?K��o�ʺ��N>4�GY��ꜳ	xS_��kFg\�\�6]��ѢS����N^vؾ	Uz�`2�N�*��J"�� ��X����:�n����"9��o�u��v��=sM��8�|�J,ٳP�do��}0�ܵ����
��$�|\ڸ��c����*���*
�RV�9�Pϖ��+JΧ#
�do��~�#f���X��Y��_���V�]�S=U��,�wK���;:h�Hs�-;+��Ds�íAd�^�����߯���
�*�N���e�s���)n�Ne^'Vr鉍R�*/�u��/�2^l�����5I�f\ξ
������� 
G�ZW �\�rO@/>iM}>ѕ�t�W���B���Bo���a;2D��)�ve�vu�)�1�Ƃ�,�ā��a1w����=5!kSV�"�y�lOp����6�_���}��&�.K�S��s�
�
��!��%�~�>���P#�p�%�&�=��tf&Bfz�ގ�Fޟ�
�h����P)'fL��
�s1�a�T���ס�
�c�;�UvR��f���Ol59
�⏳���RJ�\xbD$��������O]�E�~�>
#W
�2̉��O��ocu�]M�2bO	]���m*���<֡g$��EI���Puԁ�\�o�,K
+���ܧ��MqA/�N�Q��Ҡ5%�{c�(�Ċ�9�`��
�w�B8���s�|�M
,����iOO��R�#�J}6e�mUe�����L(^�������e�
TD
h�	
�l�����e�kG^
pfE�H
+f���NG��#vlGf�[ˣ6Ԑ ��k@&
ٱ��6
hIR��lS�
��t-}�J�Z
,�����є�
����u�o�d��8��|���p�[�m�C��\��o��U�q��Ӧ��h��]V����
�0E�&
�Ȍ˽� vI�a�������
�O�>�
+r�� *z�[�qOI�Y�a�6d��JJ>�
�'{K�ZA��ၧF&|U
>У�M5�[
+D�w3<���$��R��@����~83�K��q9k�O�
������?��WN.���AfA����z�Ԁ�=�}GgY*"�d���
�w�[�o/
�AS|�dwٛ-)*|YT�"��Z�U��I*}g8��]�^�RB�LO�__�ˢ��+&Z�#g[�U!�ݾ
��EDi��_	��7�/rޥ����{���,��k���kB���aD�
�#����-����)
�������03�O,�����=-:}�Ե���U)2mS���Q�2��?U�O7FX���8),��
=1o��J^�UD�w�A:wR��ʨ5���
��O'�@O6�."r�7��0���@�ۑ��kb�
@+�s	�?��I7������%1��2�Ea�G?�ͦ4���Q,��ӢR?95����q2J��[ ������dC
+��3X���P
�Ձ/����
��
��AE�ڐ�@��
Y����\}ɏ7e��G�ٶ.�?���ɑS��Y��Ӕ�}mu�� ��m���7�!��[)^�54f��w���k
_�!-����W����`�D�x'�c���>ED�k��p��I?5�d� \:љ�`A���|���×�Ș]#y`ml?g���
��(�zS
+Y�y8[���w���h��g�@�<��N�
l��C
2�>Ae.
+r?Ns���ة苙�'#��q0�N���xz`F��1�;ZT̶��w}���HK�-
.��U&y���{����H3葥t��U�� �D�e!*��ʼ=�W�~]�VT��y�&��n����\�_�k�_M̪}5){QP�iG�K�Q#"��^ۊ�wZH��q�.񆁑�hWO���|ZB�V%P�
uE�� ��b_�[�*&���VE�1�W
��&em���.Q���.���&�en��4�-"�>.�~sIK��8�Q@�*h��=鎙~MG��fk�{�5D}
��na�vԘ��!xw�'�nH*u��2��e{S�
`��W�!֦�[�` ��6�E�G����r�?�I
|���S�>�֎�MEk�
�oo�
��)
:7#R����W��ONN�
q��2�����"�J��k�7��x}�_s�*:���'Cc���(���
�㣮b�<~��x�"�
+�uU 8�97P�z��T$�߀v?�U��I��LwE�32�\��~
i����¦����-�ϭ��S�pO�w��ݓ�~��㯫i񷖥��=}u�hk���\��(��K�V �ߐ�w���
����{����i���G��b�5q����"`o�*ne�C�_ge���r�:g���z��z��
UYȮ��oxƦ�<�R�xg�'���I�oS�R��?]�)t��<�5�>�:IF�|f��hhI7��i�f��ZHؚ$���@�ߊ컯)�:2�E�w��7v��)`�?'���-vZN�
�����%q�3#�Ϯ��W̍�oN
D8���
|j���YI����#
&��̃aD̢0��;䏾��?�|�̈��;0�W�T��e	6zA��ᕾ75�<3�e�313nN��X�a"�-�m
��w��51:b]��r��
+j3`SV���ۉ֬{[*��hp��)N�����?,Ԩ�'�Rn>!,��#�~k.�j��C>8;2�
�#�6���
+��YKI�1Ń~R�f>S�3�.�*&:�ݍ���Ύ�'6v��A|̕�Ґ�#
0o%3�� 9�����{KQ�#G��27��m5$tI���r!�"T�
����-�=��KP�؟�nCR�q[Z��Ĉ�&G\�跅~��\w�S1,��wm�>�4�
�wb&��`_���'{�v�
�����V�8�ӟ9�3_-
J�
ǧ~w��m�jҖ�0�%&rST�'��Xf����Ov��o�H�f�HG��\����eLu�yY��
�����7cm���
ٯw���]MM�<�j�7��|oq�
���lw��u����l����s}�c3ej�}j�%�p�3��>����eQE�6�-�\�{NU��U"qS�I��o�2=�^Vc��� |��B���������,���Ⱦ���-��Q�
�q7���[z­#"�
+��W�f�H(\"�Y�wT8@�C��5F]5�~�T��{����"cͤ⹾�s��
�|�U~a
������3����o�L<��@S}��ۚ��������1kOFᩀXUA��~��T췙ց#+
���
+��B�
�	���h�Ӕ�
�E��1��9�ぁ�}Q��V|��02�Y�ʪ�9n�����x���%
+���͍P�-
�hA
+�2֝u ��򋙕~{����K��Q^��EM�ub�E���į�kO|fd}��hM��lϺ;�	v_��Bm��o�A.A����{3-9������Jx�hw�3%.������%�֔yk�#﹂���]
z]T
z�� C��i�䤴G˃������Р�9e~?IP��(1ῌ�2�9������k�Р�;j|�	�1�0�{��9:2�Nw�=X���V���@��e��lo.�<�Dg��R?��YOG�bo�@>��1- ��]����nP�s�œW{
+���/���
��Zuw�"�J�ʠ�x�)�E<=6bJ�
�Me��PyȖ��
�W����g����
UIO%5�� ]h�/ O���9l�\_i��{uk���$��ڋ?�5�=u��=��鏧�s^�zh_�Lgg?��ő� ^� "��s�:Z�n9[�[���hI��x�%"���˯�����Q'6l6����mYoM��S=�O�B���5%6e��tCP���	���_�{O�B��M ����
xȣ�r�KR
��$ޒ"B�͵g����l���+��JC�
��Gn[��E):���ybfe���
�烼�� ��Ǒ���%!�䈰�a��;<��e5<���ƔGc
)/
���;����q�d�%3����2aC_���d9
�
ت"7T�^[������
���|m�,�Ђ���<��͉)���oi����7����GV\���fO�I82��"�E[q����D
I����_
(��+�XV|\���v
L������-�0�v_�‚v_�>���=[�xu��.��� �giL�ki���"�z�0��fz����oJ�?'��YQRL��7�pQW�����W���M��+���=-5OGO�s1�h[K-�Q��� |g�X7��xg��U	:r
 :dm�D
7�{9�K>,����y9a����T_�SK#sC��ܐ�Bv�T�� 
�̯�^��g��/�z��^鷥��O		���𠾿-�ܧ��_�4����B��1B
+�qw����Ѧ��֨ks��Φ�۫�Է;�Ҹ��ƫ�k�F\30�|�q4u��g�3M���Y�������+��m)xQ���藷��`�ϭ5��������7C؀k\ȫ����?�U�!���AA�
n���}�W�<�ٞC��ֺ��2��'�����3�r�Yn���!D*�3w�ȴ="��0��
�:����{c�PO1)��4�*-�Yǜ�P��.2��Բuee��=�KR� ,
^�ANFEj�R�)��7�z���]�[Ѡ��]��e�75Ȕua��t{�ɖ̇s��'��2�#���$��S�j׀N=��I�3jv4��MIλ��ӝI���Șm=>k����~m���{�Q{6B�m�*���ѯ�m�NnчYIY��(��R�VN�|�3#2��#���P��@&�5��ܷ�3���ǣ]��V��PCSF��3���HM��(��t
^��4�櫳�� p@���p��2P�*Ao����6J��&v__���0NZ�ul@Ɲ���r��qlb�V�Q�
��f{��D [...]
�����4�<f�
��r��6
��Uy9����o㍬�VZ���$@�^��ߙ@>�
���Y�.fz�˼֕��cKsݾ����[�>i�K<zQ��Z �ƂVe�o�$��]�<?�|��Eş43�o-���O@��ZЙ������Af;�_��~�|�瞦*�b��s][��{d&C�l59�zx�h{�cI���C��������'}Sћ�ȗW)�
�X�\w�I��j��Xc�����׻ƚ
#�=��9���j|鱍\�>X�=�My1і|{�+�ټ����K:�v[���m"�PK�:�!b��%�
�\�MEa���"�ȆL���[�`[�N<�Tş�*Ӿ�ה~�$U�*�q��>����P����_RV��
+�<e��'b|��-mU�����Ab��EI(��V���Ya4�����%���;�I
ʂ/'vX�SXP��w�����F
�i��Uf
Y�a��l�����s����2������%��A�f
+�%��ok����=,r[U
2՛�l�?�}�����01o}�2�-�\W����#*a�gw���}e�������#c6��_��hG+����7�����/f�8:@�W$��=-%�_�q�3��XS��aj�^���&F��=
>gE�M���x6NG
�
+�M5�;�ʨ##,�Q�rd؎�	qp1�K���j��	��}
9!�n(�B���7�Ş;*d���E&ܸ��9�KZ��]��?5S�� �=ڝ�R�����D���aҗ�k��"��e!�%���K�L�?�
� q��'A��L�E���,BJ���*��g�F��,��uW����/�K�V5�)�z�����K�)�i�.r�&Z �L�2 cWdeާv*�l��~�U4����co�0��m
d}�ˉ���<3)(�
�瑁
+�6Ƣ���}��A��Q���x�
g6rg�X���<�T��w��%;L �eu��-�������r6� �� �g{�=�%q'��D)�7SK�F�p
��S,쪖��tCM�[
��m�z6\��x��ГY�b����mLjl���7R�����%~�і�'*B��Ɏ�o�(��ir̈́�4LM�z���d��cW%��%AN ��g����
�s��S�%$�`d}ZT�
+�-��{zb�B��
+�@�
��oB$��O
��-*}{�q>ED
�q��$���.qYجj�\��|���%���}��F�e�h���
�����
ͅw��82��K����$-��N�%+�^(�lk���hO��,*�:�Ѫ�GhU�\➁R�(������`��hk�MS]ܟ&f"��ʢ���37.�����C-!cST
���f�Xȥ�jt�d��D[��
6uA���5eݝ�����lg��Ds�e^����&��/�K?��S��tU��CP�uY��]@k��Q)gf"x_O����ZA��
��}
<��h��͵�
+Z��
c2v���% ������fb�E���!��DG��uE���
�5�-x;ڒ���F,ZQ�ceȈ���C+.w]\���g_�N90P
+6�t�
+�VM�Ã���}SK㙽����t��.�|v��o����5�g濗R2
��i�MyMҶ

�?��]�WE�**64��c{-fF�J
�,���
+�*�p�F�[+R��C�9�`{w���
�����v-�ܯS��
cE�� ��PW����
�!tf"���
W��Bc��8~d��.J��C�/��4���Y��%*�/'	�������Iǣd��8
�k&��0	.ee�L?���,�E96~�S�iYFm
1*�)ŇFdҪ�<`�_���O'6Bў�^i�,�0֞��p��4�]4�_
�`���-
ZU��^�m-�ebe?�֦><4V~ ��7�H;u��Td!�����3'�̋	Ɏ�j�v�K-)큥!��w'���
̺�fȨM
<a͈H��:���
��5����
+h}���F�e�Or`�dO��߸J��v5��g:�F��Eŗ9,hYZ�a�;��0�ъ0�ź������X$e��)�:��e��{X���:��"���6���=k
z�[�1��}</�~:��v�������l���gH6���=��.!c-��l
�7���U��
�2O���,K�I�V���1�:��
+�4�έ
�����#D�\@�
Yi3����]�O�.�����:��:2U�/�!��WQ�^�r��u��ۻzD™�
=���N�ج���eI�{gW�m[]��{d
+�I٦ֲ7S<xж�|`�I=��������>@
�ljj2�O54� �8T�&��_�T��	�_�L侑�s���$U!G�]�C;g���H�6p�*�ĀH81�d
ܰ:L��	˃f�	_��ț
+�����ê(��<7����6'
u2��ZK^��U�� �,�f'Y`�
��W+R��Cu��1*�+��E��M]M���bթ���.��Izi�Hx���{��yf㦱����9�_
tjg��GH��l_W
�.+�=�TF�kQq��z��>ㅾ)���D)?�Qˏ�x�����$���F�N
˽/��O&Z�.���3Ԥ�j1)���<�����ĕ
�qy����~ȇ�R��������dk�˥�;X��y6Y_�
ԊSPv��GcT؞	��.�2����i���Z�
+r���g�B��u��AB�9��w4��^��uMy���z6[�v2Ũ�s
+��M`w`]kO�I��T&���ȜyQ�{��~�N���R��

:qǎ+<��W��t���<�Aـ>J9��h� ��w^�W��
B�(xw��?�C
��C�|S�O�3��؎����
+[�Y�>Z��|:��W
[��jtF��Y�aS7��5UU�����/|cmL�ga%��tݙ��ZQ`R&{K<F[A�$���x�]g[��
2���}�'�^w����^G�6�g��kJ�ei�Ձ��;ů�f��:��J�&�A��lw��������R�=me��|h&�k	Y�*B҆�
�m��A�����ڸ��
��\���}���d-u[��ji{
kmȺoeE][�ޮ��|�����6tι��:0�J͌��QbAT��ޘt�^�~�Ɗ�5ە���X�xj�EL��榌[��}:
F%mɠ�;C�kr��5Y�ώ�&a�@+�tW��E���E'���E�#p
Q;���a��K��xCY�������{uŕe�O���te���4�F��ʔ��CB� ίAxg ��I)e�ކ�����Y�}wE�=�_��
�2�`j��`o��k�����fM����Tw��
��k^�1Ғ�7�*N��
���P�|���c�R�3a@�v�T���il�g�T�Yg?��1v��QN�W˒����O�Fe��6�u�u���)�E�
�����.�����mNS�ⶁ'�F��G�i����{M_��$��쯺�E-�O7�=���ί-���A�H.5��R�j.9�䢝 ��������gk�Q�
�l�LG�p���Gq#���v
��1~�}�
��^Դ9Ƭ��y80�����7�68��yo*b��]rj��4�ܳ�/�J%� �A&:n%wnO�
+6�`EA-�=�&�l^�9#�xT
G��
%7�"'�$���We�kb�:g�W7G�Oz��Q%�%�aw�g񷁎�
+��{�q��i�u�O��LO*On�F^�wh�Ұ�}Rzcf]�=�Y6��W-Oۮl�G�8'9���O7��n�I�c�;��Ӻ��g��̻��2�&��mN
`M�U�����!f��(�p{�pK�_�o��W���S��g��R�6�	��F�U�e!��\ս�O
#O��9���(�n�>n��*��
��=���]�Ԃ��;���lxZ����M��2�A�>��)w}��5F��
'��ƃ.#�e�\c�[�{埭��8
�!��',Ϻ�BRVG��������ǥ_��h����=�r�V��%A�g�iZ�o�����g
Z�
C�/�k�M��k�\���<e_��������3�I�����6_����yI�gN�}
���O�ߙ��|gz�yq�}W�	[�4�I�H���6���*�}r"� և��ڵ��������i�u�,*?a`!mo!�7'11��
TS;}����s������~�;C��h$��yF�����8�v at JkH1w-Thf\ �f�	ݚe4�-OW'hU����+�I�旝��f�1��
���['�5�1B^P#��l���cy{wW
P2�czFgzE$��%k���.`��W3yAi
I�5�%L�w!�{ [...]
>g�U�'գγ��
�
+(q�
����F`y;@[:��6�����
��R�	��J<
����Eqߝ���e����
~�R��彚/
��l�84߷�����I�ܣR��g����W�U�p�u^	 �
Jٝa7I�F,}�6�xm�S���iA��9���{�M��- ���<�8�������t�*
�/�#�tmM�J�R�
����Sq��c� �ܒ��A%�+�b#:����9�oߚ��Y^�.��CNŴ�οo��llb�@�:X����
rTI\�s��+5Oۿ�
!null����Ք���
+���mQ��'aI�F6)��A6Ƒ7�ZF�����y��˨a`���g��h�)x��Ưޒ/��-���.	����wm�bZ!�=Ǩ�
'�ޙ"�M���&�/쎵���X��^��cz
a7�g�
�h�
��e��4��?
��_�,�}����I�7��=
�8ǔ�
��r�8��r_�M�Z�����
�
�Έ`���[ø��v�W.&lN1ʔ�m�*EU�!/�)Uf]db��,6ooA�0�����`�6^�眀_	�Y@	Ha���Z���Lt��-�J�j>no�R�����ڛ��y�۳܋������٘wY�ݝC�VX����q/��7�P9;Ӥ��!�aҭ�EVs@�E�fHw�
+.�3G*uO�����A���{��|PF�+$
�bP2̹��`Ӆ�!R��ܜT[c*r�M��]�oO�[�K�f�3�c_�_{ۿ�4���8&ev����(��G�ٕ!<����������İ_�7�+KZx����{ikO�uW 
l;��1��.�5�ɟ��|�7���͔M ƅ���V��)a�� �����]F�
u\X{�u��+!�+f�����0=����3�,��I�s!��1��Z��;�\�ƒ bc�O
�3��n$5t�?�����P
אZb*|�ڛ�3Q���?��⊵/���hH��8}/����
�JMH��J��H�26��~����+���/�s���X����%���F�
V��1л˸����S+����
�e{���I ��I����T���
>I�>�<t�>�i3� R}
+.�z

�eAXA��k�Ȁ�uͱ�
��j���);>���})�i���
zɛy�T�铎�uL3*w�U��
_,�n�V�W�G#�+��[� Mֵ;+�8���9�uqeg���|���/
/��U���+o���}
׬�3N-ܛ�6{����r������[��[�ş���	TiL'�T���IN�l���;�v�
/���ʾ�
��w
]�qa
��O럣s�r.`2<i��#R�W�-��X���I�'��c&��+�!��pwv�;����ʤ����А��fy�vz���qDCl��-�b�o�X�_"�E��Θ�K�,K]�B�
�)���G_�
�<�(���
����yh���׉y`l�lC�^��	��i����_�R/�i�~��h�{��w��c�w�Lj���|��}����l���j�U���%LyL�%'M�3��	l~�"�M��
D4���_�h9����S�"�
�

�)zh��Z�t��^�%�d������]F���y�Er�O��μS���TL�O΄�I�	
�9e��v������U	[���yb��]�9ӋƓ�W�Bjj{��C&��'85�!~��\um��*{�|]�
�e����,/,�V��!� |�^�
˼Ψ�o �bC|
+J��4����r at MmMۅ�����fi��'�S�3�����߷ŏ�4D`�����¿h$�_��!���zU�	ҁ��$���{{`�M4BX�]ᙬ��9��}��ee�o���j���?�ߒ<��58�o��������3
P��%^�{�ٰ1J�m��f�v
5��z~Eѣ�v�G���?ANn�o��s�6FH��/pW�`�C
+6$n�@�j� ��
'�yg9
�)|��$ã.�Mw��I��!uf
9݁yv��<w�]�Y�
�0 �v��E�wNn� 
��C.�FQ��\|�(dyd�F�;t��$)e���ʏ}Ә\�,�(*�6$5BB
̱o�\
��֤M�{u�=
���T�|rRC\��
�P�!{K�����/���
ʅ���
s�B.�`ם��\����fno�ZV�[�
0Ƹ;�T�s��bp� �7
U�9��'+����ӌ�L-�,���s�\���qȕ���~H�E�}����N��["��\l�/�v���<��b�cղ��Ӗ-�w owI�0�x�YbMPb��@
X����A�A;.U�����AH��Չ91]�C�o;�Z�
�X�����˘�=)�}}���S�ݓp�r�/c��fP��yTAD��5�RQ[<��;e潶^qPN�pLv]1=+���eǩ��GL��?YE�ɻ��)~�N."�
"zXj���U�.9��>zf���
�
�
+=�[�{j'�nLp
j�H��͵�
��M�L���ܲ{wW�	7�g����1�P	+��r�!=�Rk��t{4}w}Z1ׯ��y�Q��yxNT��H��2�
z�}�S���iZ�/[}/S6kkr�9�`yVwi{�>��U��w{^���\�"��6)
+��O]�����t�'̤n0�
�L�p�q[��+]y���X`79�]��bT@#�z�"�[ƃnM�7FQ�W@
o��nmO�J6���y	:��a�:�ߓ�+.�9&Ʌ�)^�k���b�;�H�	�尖\�WQ�wg����礢�?,
��y�M�!��IfE&��Jnw&g�ZzkBM��-��7F`V^��m��NGem���ĕ
Xh�XW�j}s�ͷU�]��g�S��Q=
�Y"���㋂Jf{T�������K��m�i�U�����{o}��G����G�)�1=�ꃝ�>�2�A��=��IhI
1

pCؕ�"�;��R������`
|
�H8��U�)��
��6B�隀]���$;�HnH�{�� je�k�R�0�9��=�q���7u_��m>3#��W��/��<��,����r'�
��zcjk@�)Z
j=�<P��lە��֝Z��:1���R�_߹m�.�n��х;�
�F�/�4|R���0��<������AH�ș
!)�ʿ�+qLw\_n9���qh��'�b!��
{
���1h��pץ}3���q�rr��-<k}�������
~�HH/�F����U�pO'b'X��׸˳���~�����o ��e%�5oOt�%ML¾]ؓ�=��ȅ��w]?�� ���=���怊�P��<2J]�I2sc�������+�����KN�X�0�[a���s1@���z�pC��\�תw|�]�@�ff
��%�b��ZB�W겑��a�/�?�����V��������
��Qj����>�O.x���2=
��Q��5
+i{2
dw���^�u�L�k�F(��S��Ef��0�����s�	��̵<�JD�+x0�2��'�%��� �*�9s�5��"�K���	�
�ˮo
�;�1?��r��2|����1���
��
�!�Է�����1�]b5�d��(������lU}����9^��o[�]d4z��.�"�!��c< �F�N:&�w/@���W=󘂨Z at N�
<ˬ5�1C-��$�
�c��T@1���
�3�~:��wnβW'�7 ��G���"4/m at W���ͱ�� 
�@?g�4�����5M�
+g��[��
/����[�g;��%~�7��L� �}. c@}Rf;���Ù1���=E/mw^��	v��a�F����
(�5���u��"T��͉�K�La�*鋙y����V0:�2BUPNm�jz�6>�X���o�o��9�����6L+�<(E�������"�at
�������)
���[�^���2� y
�ثgc�V��pc����c	[�ӰP�^
+{Jܧ�V������ ���
���7�>�+nĐy��ѻ�����*�Q��r���{���������}"{��m at I��yKз���:_�pi9�{e�Z�'%��}g���[}?��,XX�å����
�`z]�OX�]�ps{{O�@%-w��M}�@g�}2b���6��t%mLtP��j~�ޚ�o<�U�?o1iAy���
[�2�:6"����@��l�H�-I� ��S��
qag�T�Y�C�>F0sM1��p^�p���/�F��Kq�
)��'�զ�������@��A�f
Yս�G�HE�2�ŷH,�/S� ����e	�o�c)byլ�\L���{K���rw_�6�����x�i�`�����sۣ�+�eR9�筎Ib��0��]����2i���b�s�R�!���9���gS�2�;�%�&�4����X�I�vWp��RV�{�Z�^&�{����1�5��:f��f����K�x��Y�Ս1إ��X����<�����
H�]�
��G���}��1��bS���1

�
��ư^�
(y����F��Mvy��?��e��g��1V���
�g���s��{�t��͑�K�EdyԚ�Z��鰸N at I�䗡���9�o ��+�������
��'����������/3�#2Bup{;t^p۝Il��0,;�g�

�.�+��M�IZ{DQ
��o�"b*L�{����h���J�M�i�Q�	��F��J��V��MT�����d��YŔ�LG\ ޼`";nrb!��?���I#��9�~&x����/b�w��Ԧ�<�e�6�2�+�7�$�V^7�Z^6�-�"��W���'l"�:`7�@��LL
�$o�Fg{�X�S�16��v.7��w:��[S�ۻK�ʈ���������d���Q5
h2dND�)���<�e��5���eB�s
+W�y��#C9��/���ꈎ
�Jy]{��,2����͑�Sq=�.m!�
؈
q���*���pp at c��2n�o�Z�#�x�9m�%V38~WR�C��Od���Wm��3�ˆ��6��!�do��}�B�D��-
`�	F��{�u����Z��/1�/��ո��iҽ@_P?j����#RJ�o�Ҽ5�/v~���6�ڜg�m�
��1z}\� 9b�ֱ=���[f�{UBl�,�u,��W'p7��)��_��"���ꘚ�xOg`�^�R�Ȯy���iu[c�k�̽�E��ٝ�Vo��n��\HL�E �qs�u�w�o;.x�WB
+T
�Mx��F�:�3�	q4�m�b�͸��
Xf�8�p�i-�|��p.��P7�awp�A7�I��޻^)�Y1XqB~��k�������
zvg�P��#�7�lI
��̕7�,Y_�3����^A���4Z^5��9�ȍ����O�8�C;�s�&�.ӛֆH��_���0�)l�?s�_I�
+*��}3�jؽ����S�Z���	K�������a�`{�;ko���I�	k�C�"��Z66a
�
RAr�:LiT��v/�nm�ۣ�����1i��W1
��j8�����0��t|����
�8ŏ�
|��u�`��c�WE�	����i4�h�������9BY�.�,V~�9�}'n��>�8�_,4xd��m����==�$����S�11-�5a���U��퉖��%d^X������YP�KD�h�Ȑ���]7L��1��\
+���Z�,�»@�>��P5�Ȼ�v~o����aVy����B��,J\sț~9�ݽ��
�<
+t6�U�o�Qg}�q~w
+U�Q�SV:4�e!σ�J�P�JLt��X�$�r�
>G�W��c��\`	W�!��ɸ�[�B�ꔰs{���� �Yl��U穵a�%��~����H��Yd5x���������5=4�
"���K
endstream
endobj
231 0 obj
<</Length 65536>>stream
+�<�&���6!ϙ�O��l�j{A}7�^�s}k�]�I�3�e�s� ��9FmP."z��9����+���l
#�l�a��RNGT)"�&�E���Om���cK�
+LQ@�,q/t�v�⋼�>nP�������~�[ ��
{S�ۿ�8��w���|��<�"����A�࣠���Z���ם��iΏ��D׬a�{~{�Y�Y�<�ز�S�]D�^t|;�+��8%�c����;Ӕ���ڏ.
��P�,�7�-
��~5����=�Q"q�Q*
3��䊨'a	"z
-��"�JbCPA���8���d������;x`��-|FX�EE5<l
�k@��^�8�SQ��V
�1�q-�DU�4�΄�A,
�LG�FBf65h 6�����eZ��e���Y9���+���nəշu�v*��N�O~�Y>5����c��%��IU���Ɨ�߮�w�e�:�C��|���s�pG~z�CJ������Jq�;������G��7N ��� ��U����
�
�0�f-ςmOcn��0y{���"�6e��s(V�踁�◒+�K����Oj����װ a�-�a�z6&�d��5���
+��Q��A��|
+N��$��Y뷾ErU���x&��=����'�&�EU��M �iuD˄xL�Y�!9�2��
+|��Y�	�o��ih����p~e/=�C*>%���@�Etت�Eh�h٘���7>	��?�]����@�C�^�[B��n������7�'}1���n���@kἳ�6�,��7���7:	[Q�H!��]���9���X���q×��G������2�C�v�<�+�R�*V��4��y�g�g%���TH�2�<n�T�v���	k{y����ZJc`��FXEn�

iy���!��|�^^�00P���er�	����ᚦUm�Ҋ��B�c�Y����K�D��ۣ�K;c�R��%���
+I9��)J��52+�0AL`w�!Y�	\�ONm����*�7�}���w����ؼ?	t:�9G��'Ŗ��ȇ
� �M�"�i�����C0~a5�d�_�뽗\��'�v$-=}){���
+��Z�3�xQ#���)Q�56��U�.u_N�8qOn;'�9���ֈ�C�yE|�߷��Y�%UۇHy+���A�

�Y�_N�N[��_�x����=
��<&w{
+�R�:3�1��\�k?�>
+�e�6l.1Q!��7b=���U��}�f1��"�&�<�cW�>���滖o�F�����+{h�WE���� �럇d�7�RL^TIkHh���稆�:'e�SRf%�e��;~%��'��>�g��R�1-���1�*FkLˆ%
R��e�׳�K�l��
	`<Rr0>9�ko�մ7�kߝ$۞V� ���䄗�uQ�S�z%a0�f�SkPIk�p�>y��R�)�d��	C�(�{�rOJi���������{s�ܤ��	�d3��wlc�+;s�:���rN��E�+/j���5i
QR�
ӈ�{0f��=i/�/�u;�qEK�e����eo�\: *ukh�y�픁��i9p��\�=Zwfk���
�r\�Bƍ�_Ft����
,�-g�q�%u�:
+�24�J���yZu����9�:��Y��~k{����
~3i$6����Z��]�W��b�W:��)�Y;��|����
�j?1<���rK���3	٩!7a������

3i�ÝS�;~95HD�L<�Dw�
+ffM4hju�]zU<p��a������'�\�E��q��~Dˣ�佔�V�z�����힇 P��A%��pM(��Y؀��
�jU at F�OY���)m�tGT���Ѯ�{������
+J��p�ɵwu��C�$�?{���au���R�*��o��J̼w2N���p~!r5��tD4tbTOE�L#�y��	ٛ�߲���J���c�MsB���i1�QPO�.���#H�%b���fy���a����y�b����C+��aU$:\	&"��rL�h�����Ůˎ��
;����E|aXMo�`�?�
+�)�f���Y&� 7O�D�I�J�@|m
p���
X&�G�ꐜ��1�6&�+�:��N���FZ�s���}���L��^�W�Gs�2��^�o�f�e�YB�曖�R�Տ7�֝L���U21ݽ�S�)�el��T�e���;�����o�- ��̠���E���3��R6!+�
�ڻ���1T�
��a�(�ε���,�j�:&4�����Q��+>�<���3�QQ�*!ν�iٞ����sMO!'���\�����u�e��N�����b�:oyQ}2"����Z��ro�T�2ۃ21.��w7��"�s�\�Ӫ��s��nw��jf����	
��]@?��fX��1A��O�l�\���
~;��W�
|R`O���tC�(�;�8��R�c
{�=�\��\�*�(qe�U.#��� f��#FFw�̧�T<�O�h�.�j�s�B�]�0�	���/�kg
RZ�OAi�꘨��	wO�
+Mϛ.k
W�ۙ�T���z��\�kL��p��[o�Z.&�Gv_t�Q�]S��#�̓?&͒��_�^�f�f����A%<7m#�
�3p{rh�s
zpy������3I}�~'�! '��0��|Az������,rZ �i���M���[��E�.���d�pjwx.�ck�P������;�-�<���$d�L�րp�hVL��J�D��Q"�k
�!��+�E�˖�`>sYgV��}�2���w�%TbjLA�sO��]�z�9�\$G�;�zW�����
d��#& �
)��%��U�4R�@N���U<��зð�Α�S�Ý�@\���qQ-����G��yh�&�,��s��<�5,�f�y�<k�V�S��i�߹ǻn| z�"
��ٍ֦�%vkH-�E?|��9�uqg��s
�5�}
1
<�ب��Or/��3�ڨ��
++����ݗ���|2�8Ƚ����b
|���	x^TAn�\��/B�ݠF��X
�9n��4�~�=��	�os���ϱ
?^�|&�#ԦM
�_N�p�c���u���r�"���P�i��Zd�V�z'����)���I|��{D��P���_W������Lg��E�
+�Y��As���<��:lz��ٷ0�A��'��DutHH�Ä
���-�Iַ���+����Q
�)e��R6>��v� Lݞ�ߌ�l��ٵ3���E�
-�f2�-��:�ׯeR

+Ruf�G��� o���C.�5�_jϋ( oR	y��B�˶S�S���GҐFH�E�o�m=�m=
4SE��!
n�=O�y쭩�K�lyPæ�ML�gz�#�m��pI�Wwy�v�h#aH����};O���Iq�>����L���Ay�\�WFk؛��\�|����ێ27��~55�

+���#����_ˣ��
$u|\BCo
/���
�+��ֳ�I
�Q���rvo��)�+xN�ܝ����l4X��%���RzsXF��ʘmq)Z Vm���N-�􇵧'BrBe��%�[{%q

�=�u�����\˹�W�o`@�&
.�bw�3��<	��	,"n�g at L��
<��r���7��@#3�:.2 �Ԭ����.Jz.6��tOڿ���n����g���
���3�ٞeµ�m��%ܨ�_�=è
����y�.3��!^��kЕx�g�׵>�m��6�u�
*/��xrrC���d�c��#����E����i�ȌV�L#o8�;��R��"�W&��L1*�oy5#����+��.T߻���h���ihVPEm
iz����b�<�=���r.r�5����Q�7���[���=����4|��˓j[�B�
X��9h��q�7�o��Q���
+�13
V����愗��u
�@�L��K̖�QB>�x��]Q�
+�K
7��s?uLw]�+H�5�p/�WI���qw�:JSL�� ��=�uJ
��[�ތ�؄���w��x���}
����eD��z����[/kN�����'E������æ�YPɆ�fH`
R:zgLC��."�
��ٮT�OA�OZŒ�����{�`�|r|m��Dy'��u]I�H-Q6s�1
�� s�0�
+B}z��\Qt�J����
�rs���]fuF�\Ҿ��Y��gy��.�<˔P�a13�b
�\�����^vZ�G
^α=��މꐷ
��g��>y����EZ�OF���������a��L��m�iص�!؅�"�)�̃��I�%t��e��rq��[�ZO��yh�� ��E��<XH�hM(�aEǥ����vӷL�	*h���
+�~g�㬢��w��O�f3��q �xi3
�kS�"d�L|jD�+���n�M駎���|:(��B|(SS(�19��
���uOîz�q��eN���ݟV%� ��FW�Ā$2Z�딊	-��]�@�-+Y�D������߷�p!5�5(c�'�@W+���#-�ǔ��-=„ZD��g;'�Og�c�'�mO0�}�
��
�fu
��'����K>X؄��65 �ķD��%���O�1�ϖIھ�fW}
��央����cF>igWh}ە�\'Zogzes����X�Y�,'i�܍Y�K�F!�'%Wfp$�fu;/9F+�����1�C�@7�E�|+ at W�t��T�W��bz>�`������I
hg��v�	w�Z!��m� g#��[¾_V� /�]��*
����t�"��g�+�a /�Uq
��Lj��U�?6iظ
^l]���[DVP�%4<��0��RO�c�k����|!�a�~�J~��cz$��@��%
��X@����}�M��B��;�l�[�
�]an�.f�r��Կ8�ކ5�V%?��2a�ǎ��KrjmD˂��ឣէ�|ڡ��
�&�k��xW��+�qN7������p��Zd [...]
+xuD�/^��g۫��g�c�h���gP3��

���	�͝1R��f&���`�Rf\�W�xn{��3�sYV”�O�-���֝p�5��Ii�Z5ms�*FsL/$�̓�Ӷ�G!
�n;�5�x·���ԉ��vɃ�������=wSf*������Lr�#ヒ?z�943��В��x�_��}i��Z;����Nw^�df����˴���Ѫ���a{��o{s���g@�=�f!�##VlϢ�Cj>.i��:zkHI��
�<�5�z����9��@�2�2��}���d�Θ�۝��֑j�j*������{`����%%��pV1?	��r0{2Re湗�2�|j��
��ƻ�/��:N�,,�
q_z��/n�ӣ����>�_��J��?I�I�gr-�r�
�Q��
7ܽ�qm
s3b�l����BMߝ?�ƺ���A
�,3ޫӔ������A��`4toX�v�5Q���u���KE�����VFѷ�y�ޝa� �*��;?۹L�|w�c��sq%j9�+��8&g#��$�d�$�}Uԓ.�B�^��U>��������J��ٙ�!�yB5�N�~q�<=��Ii=��G��5�WJk��h�u�ߦXY��{P�s���l�0���!������cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fp��!V{����ɓ%Tt1����������`������������Lv1�&Ш��D�֥
����؈A�O���-O��N�1	8|�	� cN�86�>]:�u�ү��Ͼq%�B [...]
���'(����\���}��嬬kWo�׍ș��������\�~�2��Ư{e]�κq5��n�_����9
�����5|t�ĩ�'�ۀW����˹��s��_)�����a�����	�۔}t��%�0wj:�N��~ԕ�;3���׉��U���/d_?�}��Y��gF���G���^���W�)d��������{飓'=�L䜸q�����+�{H��iE�BD�K٭�%F�GN�ki
)
�5��T�ز����3�c&=�dt�p��eR�o�VUq�	��ӈ�aV��2��2�Һ�
�j��0��5�-.�������P�!n�u|BH��qP��G��O�]�u{�{��
�\�� �vd�Z��aI���>B�tL��#V�W�*�]�_wLv^
I�U	�%,�މ�(Mq�0
+�Q5�%,'W��J�*;&�����&�
LD��jԤEȊ���"�x{����i�q������%�=ɇ�d�<�<�g
u�5������/}S���rFKB)�&�������֓�!�y�(���H��yD�!���2Z}H�l�ixؔ��7I���^�W�Ct/r!�y$a��烌��i#� >�����(iM!9�:�`��d������Q�7���8f�/'u��}=�phr�&;��9�+ڝ#VF�bv����*HU
)�$�(i�Sv7b��we�z�h���	i�X��\�Z��$��V.9aac�&6.if��j|yD�/�k	U1
��

�§%LlT�H�F�
h at M�	i(
	


�S[�F.1m���
0/,D����
\�GA�t˰�-�03��V>��U����+=���W���
%�����5��� �b��R���S����A�J�������i�q��	X	�OHNk�iy���E�L����=�q
���bF|SX��
+��%�E|��Q�u�KLq at 9��gz.cJ��\�
�4n ci�Ǭ,t�Hi�(q�q5�%�
��W�
s�\��8d�b�g���%FC\bD'fDulDP�+	Ȱ�^�>Ů����b��~����zX���`J�jtqDM��)��~%1H!%���n���vO¯�9q�:��!�jf�T�ߙ�C΂\DE�\�o��3^�W�L��1
�"�g�:!1f�cz5�)���z!��3�"V��
H�Ȅ�-"����'n�A
уJV���
�p`1�t��X�I�O��J{�?�N�����'��
���xU�W�p뙘[�*Jr�ܽ�?�+��-�)���]��\}S���H�7q%�(��' �$�"z���E2}!~�9�+8�K�,<J��'�X��W��W$w���jzKHFo�J�M)
�3e���M�������ړZ#�%5F���Ă��I���Q at I�Ĝ��0�1�J
<�c�
v�&��Wx���OI�8��B�B��Lu]X��^I�%O��}O�vqOzU� Ӈ'e�&4�'�G����[��ᛂzh�O
/��m�y�(�����
7��VRs�Bi
�q���͈���7>|s`}87sp~5�zO���Qb
+�Z
�pu��]Ar�C̬���>
�Y�
y�X���z<���`��bSI�$'LB�����������	�����c�L�s"l��F
Bf�?XjUr?jb v;/����.v�
�+c
9�賿�fםL��{0�����:OIi����
�q3
�0q	`��1�*�'�l��
�pw�R�Ws`

�ka��S�8�4��a
����:j��D�w���
+6�#>n��u<�k�� `��޹o�u�ո2�<{{�����<�Q
����w��Q���,�5,��D���2�ky]��᳝	l~H�C����\�ս���9�*e�AcZs
�N|@�QR���ƾޘNL�jِ��ܴo�рu��5�k#6"���*>ʻ��ظ����d}Q�G���?�
�~��|����)r���o������m笯��\�8�y����+HvBç����й;#��}󈢔�P�Ң
+zB]�W��7K�[o�U,<�
xq�5
+�&aq2����ѳ��Z6�� d�b�>��͇VlUڂ*�ͷ]�,2:R��~�_�_���[x�v���=�i+�
�s�Q��|!���:9
+�ƭ �W��������ށ�MȎ۸d�_�u����z��w���l]�(mxr���S��
+xNLύ�^e�����}s7rq1=��R�&\eʄ
��n�!$�u�
�MY
�u\L@��
��mQ�r�qO�ƥ�.����G�����G��	�)3�a��J���[��$Tz�n�2�
+s�����l1IQ�-�eC�MԎC�"�3�����R���1�Xj
̯"�F�Έ��
Вj\
�
����v��JҖg�{3���1�5�<� m�w���洉I��)���4�I�
VT'$������
M�,�CF,�?j��;�l�k�R��R]@�.Nh(��L�:'�cBv�q��� n|
�����
UPj�LOaR}L�B��b��6����[��������0�L��-�xfp��ybqXAk�j���1h�k��s` �qa�L����1=�!a�� ���� 3
BJ
�EL+�
�\��J�Gt����R�#Rm
`{H�h���m�Ez�w��\�G�rOt��N���d�V�$<�1����Q˜��;�)V��P��G�\������іҊ�)�����W𐇖�G�`><RD��X�W�����\��T�dz�p�5�3m�Rf�����
j6;af &&�ct$�
侁O�cy`$��[1�q#,׻X�-�
�	k;��+�d�!�?��D?�X��Xk���^@ [...]
+�́��5*,���9n�IM�v֯�4m���f��i�ݧ��C\�1�V�0p i 5�4��vg�.��a�Sf.�`��y��w/i��>I��
����u��-co�������^�<�->�
� �VQj�J|q@
+�I��
����t�.��P���j�){�j)��7G�"��c��Yb65|��"������	P��z�z
.(�7�T���e!�6����-��7��Y���ߟ�����J|i at E�ڝ%�g���I�U.��o'�e�G���L�
/Q*���|�����SkC�'���:�k�(8n
+p�$���v+(k��w\ʡ׃RT^Dǂ����Yl��#w�ژ0o�>):7 E�
+�0�[S��s��?k=�T�0�jZ�{��9���������~��\߾��lk�w�ݴM5���&���$�;�00��CH J	����pg`�����;�k��a�
fֺ��:��y�{�~���o�m~ {��t�����
�B͈ə�	r��	�7�w��4�<>)����G�*@�%a����1��pp!#x*�uD��]�XS
c�8�����aV�I8YU1;�d}wg}����Z��aN(�0K-	jKϹ'KOoO ê�w#FFa���Ƭ"V�*M���?�\�&�A�zt�L���
��1Q��
Yw��ڐYĈZ���Ü�fgF�M�
+�1�r�r�T�57�E�-�qGuKbV,���aS迼����ԐA at J��Z���~
#t�*�䀞���$���|����VR�"!=f�{wִ"�Uٙ�T�f8���V
��s�3B��
��Z�,fk����h&�y��CsT?N8��A�� r�v�2]heiH�,�N�︧�I>-9�o��@
�ֆ�{�{�Q��V�k�~�*��3#Qx��lSG�m�#$����3��
T�H��L��.����4�wx�{qT�1u�ϽŜ�N�3!?���R�8��(��]vb���`�ʇ���܀��#�Ʉ�i	��=����BW���]�S�)^E�$d���{��
%h���0�����_
m��
��mB��LT�=BKu㮹G��y�I���$�p�倒������)Y��➦�l�T^u��a.p����7ׇ!��W^�~�������
�2��,4E~�9N�� %��	��gMo
+��
�ȳ^��l���j����܃�A�����󭤋��=)��X�� 
p��h9!=��Bt5
+Y|�2��3
+I�S��$�^ ��
�f��Q�X��æ�����!���+zR��f���aZZܦhX�3�<a�����G
�*:R�OKJ	�)�1�":�4�
+�[FȄF	�
��9M~���flC�l�����sE���Y�<�r��1`��S*��,d��:�
��N
+;�_�!��̋D�/Iw�%5Q+�ܫ�'!�	�����RaP�,
�D!�`��0�A`J���2"�:g{���Mȉ:$��C*��J�	��2��0�*��b�?�<jkx�V����NyC
�^
Q�W+�UF�� ,ܴ1Vu-��c#&	deFA at C��F��SyL��>�Sx!�x�"�|nP�*�)���cp\�<Z�Xۄ<�,���2�W]q}�'}���o�G0W7��¥	~�Tk�AÓ�#~%��3E�tO�3����gm�ߔ[�#�ݱ����ԇ���K����3�E'6�
���JN��KN����6���/�O��r^�ϯ���ve�<��kh��R_����[:�-�ؖy`�
uv����jY�A8ε~ԩ����K����F�as�� ��U��<b���x�V�g�������~��Yp�w�0
+y$
y�{��ឤ�l
�n��o4����U��B
�S��	3�a����fjK�z����F���9�T`��ٱ�������Vʎ�ҨQDw�)i
-dhȥq���3#���2��w}������(�E� �3�����S�
L\�Q���4�vs����k��a���eșQ��3�J�f��C��uHȳ�A�J ���������q�L��4E���p
0ׅ

-۫gl g���p��$

R�!�@� �����^�Ie>���H�U7�-bv���F���Vt�4�щ9>;6Ã
,`��Bn��D�

�u'��USR�C����n55ss�pۣ���M6�h^���	ܭ��]��G
�],[ٸ�y�4>Sӊ�KlF���ψ�a;����
�����L��ڡW
�##da�=*F���FN妚�
+�ƣ�y���:6�x6


5�5EI
䊸��Χd�y�a���#��)$Wz��"D���)j�6�k���7�.�XT��W�2MK3��
^~��6��؛�qZ�wTT�9,,Yx/�\闡�/�����~
@.��):���	j �%8؄(�{���<\yi��� ���x&��If�� ���%u{�� <E�
+O�
WzPg
�S�Z�8�Q�"?
Ǹ��76Q�ݣ��m�+~`��aҝ�^D�@]�uB�{w{{����4�|L�K��w"�	
dT`��	j�o�[��IQо��G�Zh�[S��=Slt@'o��R�?s�S,tp�UV2�àI~5gm}u���DX-���fP-$�4B\P
�d����H?8��������0���׈�Q{�����ߞ@|������9�0�H�6)�D�5�VKDA#)˧.>�Ӗ_�)
5?����p�<�[����*akz�pr��YRn��>���
�c6E
�f��M"ky1����pM��CFZ�.�u�Χ
�2����̲��cWU�:�+kKo�V�$f��V&*jg�#ȿV.h�T�+�g�JEa��0d��M� N�B/�i��~-�<l�
7���]S�7��hQS}۟y��' o"π&��BJ�Q��Y��� �h��W1GC�<�
࿘��E�W�����
D� 0*��Q`���,�gF$�����QLG��m|������˄��u���u�>�Yek#介}����j~��x8�2J8~��.����6=z���*�&-l��"vy�_-&u
+aPW��e�O��ӄ{k����#�a��
5
h�Q�]�(�0�j�w�+(����QN���r7��� �vD+a {܉�AkM2!�<� ���`�oK��g]c�ԨN&��j���m�StX%����Ⱥ�w{s�+��������� �܇��ҍ:�	���&$��f
�{�����r5+/��j�I~y2�w��{��o,��o��lP��->>�p�uf�s-f�
+�fE
dkA��Ň�L�_�,�[aL�,�&丠R����
oO��Wߗ
u
���OR3�*F~P�*��l���oA.�kE�]� �/%n��A�`>�y��|���
/��(hP���
6=[k[���� d7dt��_��>}�tbzH+�!3�
f��@���⸓��9����'��
+`��i9�Rͣ]��:f�#&#��;�h�X��� W�t2N� ��<{�<�ea�L��	���z	ï�
��֥1je��
4p*w�"�.���
������CLr���t�
��
L��Xq������M.
�eB����C]��D����=jR(�*V�G�
,`���5��q�X�=�[:����E���aN�3��w�����
㴭�@s�u��8�a��О�7w���
x����qFF�"�v���Q
ʣnhrk��o����
O��pKM�Z%%mLK�뺺��6�]�$l�C��A3�'%�<���ݚV�]��ҨQ&��$<�ur����+�C�&��=c�
��Z���N�A]��D
2A
�
+j�F�uݝ}�5Zyǯg�.��]	N����Q��5�%!�L�=ͯZ쩺�:���:D{8�^u�;€�C��N
�
��
ѲQ�]y��^�

��(7����k�E'���{1��O�y.��^|Szj{��;�Y��v�NL+d�
|��ߚŐǙy�C����EY�CԴ�IH� <5 �ۄ
�s��h�������1f�� ���+N��a���w�
/���jN��E�~˓���Gp�~
�r��;!���5��3�VCn�_�(�);�1IL��<��z�F@�#�XG
������
+�o�I�_-���<l��#Gl\bb����(����-��m���A!��4b�	��fD�Cf	?�aV��r�^]U¶a��
PJ)A������\
�VMC�Ϛ�m�R�p~�L��l����jn�*��
<r��.�VӲ#.16˥��RI���ҥ��
tW�AVB������
+`Kv��'�4R�k\P6(�sMc�T]���kw愂Ĭ��?ŧ�ù4��t�M^���V��fj��f�G����'f��m��p��'��
 �m�z��֐��%j��0�	�L�k��5-�˒����6�OGW��o��kثJ1�

�G
����A�pk���#�7�Q>#�"�\�֋h!}}�kJ�Zf�$l5�;���Ĝ���I~����*����>��jM�Dk[���1�v��,5���ua��杦��t�
ޞ �-�a�q��L5?
+��}
֣�=N��83k�{q}��d�D��=ܳ�M�رɐZfE�N�zj��H�YC��Og_e�T2���hY+�0��|T'��T�l�a���\G֡�Β�l���/7�8Z1v-Mo���a
����Q2r��+.4Ĵ��Yn}Up8�g�X��66
Y'
���c�[kC؛!����S����W;�����x�9@�A!
�=���<��QSw�ǭ���1J�hu�ρ�ZЕ�ር�ˣ�#��U�s�F0�7'(YaЌ�)a�G%���O�B��~cM����d�x&�X��F��,��w��-;���d
�'̐�R��U݄�Y�V	�K��4��℣�}����5vF�O/�\]��T���A�������&`��g�YYC��g����VA��g���i�N����������C�����6sbI�K˪X/uk�
��W�Rѳ�F>zT
�$G�t�!�M�nO@�X���S�c�3h�Q� ��0ы#���I1qq��=���i�Q�qT7�ge5�#҄C"vMs�Ew�&k꽖���Sݣ���e��؉�ۇ91bb�ͼ-�4���6<�ZV�	'��.m�4�w��n%�l}�� �gy&))�,�֊������:i
r��8+<���66�g��b���X�FB �y�l��0��i�!��4�~��H�
������ �L�1A�� s�<$x�yx�F���WlL��<jVd���S�W�+�J1^����;��O;0��z���%z�����6\ye�uѯ�Jz� b�B�����P�J]c
�lW噠����kXe�	Z����Y��3Q�}!aW<��1
+|zvy� �$,ry�\q{{����ɊKk�?'4����Q����	h$�(�sP+��'`"ݥ!g,�a��d�(h��9j���Rp}�
+�g�����ʽS�
+e�
+�����Ra����RJ�]�n��E�#kD�8|�c�=�[�i)h�=j	ͣ�q|Z!!�\�0 
W�U�oÜ�20.���j[z..bᓃ�
�?�]�Q��;�p�
���G�G�枀�q����­�A��n�q��w���6�3����A��
�2Pq���
�:
�^���UĤ��M�(� a��	��a��c�{
��e~�pkjVẚY�2AM[$��V�q�~�-�N.�:"�f�vE��,�{
���)z�l��ư��̰���o�k�%�]Q�I�q��
:A���-
�3c6�
^�0䮈��#:�h#{��c6� b��ol��PQQ+���!sC{��L�3=�m�L���1qq��
��.�l�M![�눽�Y������V��ÜX�

�K�;��W�ɍ�J��������ʘC�۝� ~&E���:�JB�hE��iZ�l��� ��S
u��Cv�i�<?�xtP#"lO2�6��I�<��� x�r?���[�Y�$�ȫfnO�����ҭ	n�|/�{���E��}F�G8:
+
9�5*$�]��S�r�+�=���"�
�z'�!�����;x��P�U���K�\��B���F1ٛ �ȍj�qc��7���M!���̀��z�D�Z-�
2ӥ���qH[-	h�T�x
+�gg�G۝ev

*�V���B�ǝAm[����U�*���̿C�rtP���o�-�:�^�\��L?}�״v�M5u~#�js��OM��WQR�&>�od�x��m��z�FLF�ͺ�Y9.г���ߜOsO�Ă8p	��!`x��3=�
"|fn|�7�団��>�-���(d�V������6��7~�@A
42Kw��vVeЈ{��=�Ћb֚� 26��ư�5|ڎ�KJ��ؠ�`�/���qr�
=h��p~g}{Xm�\�&�
<�� �
+�2?��,��J�a�jU�DKXxD?��i�=��7?	�*
���߄쿪Ϫ}�!�	<s0H�AS�3�N.Y�fd%��mq�5S�$��{�(ya
�տrie�
�B4��F
���d�1��
�
+�3����?��D�Ȭ�zUKJM�ֽ�Yj��ִ��"�
�qsu
x싸CQ�+���ĬHq0�>#1
��u����42#��iؠ^���<�7:�-h`���qw]S�
?��I#"�
�2<��k�I�

�0f"��e
����ʻ���;T�B�cZ
�)����o�XY���U�
	�P�A��L�3C9g}�[�>��A����
_�/9�b�����%-+��e����J~�o,瘫/����S!��Q3�*��U����S�l�LU�=J�lW���Q4�%?n��Fj�%^����
s��6ziЀ�����̒�Y��uQ�YȤ2�RP�=��������|T�Hɋ�h%>
�7��v���=Sb�_U#� ���$�D��0�d��# �_Z.ڧ�g��"
+�ba𒀑��
���~#�(�\��6w�
u
^C�3���h���29a��V�O�(C����򰥮5
+^��YOOwf$�
5Q�BFBꎃV�k������m
1ݫ��Vh)�އ\;0�zFYPKˏ�x�
�S��,`�m��-���:EB��13��&b���=�:d�#�"h`����|����6^ymu�x?h�7�f��0�'b<�>�'v[5F�5O�Ά�q�Ud-/�ʃ6vgVZ
���9�ݝ�{��g�̊��s|.�-{��pj%;dV�m�y���
y�,�ܯxu�e�>'`��/L�L�ֿ��յ�5�W��6� �C�q�v�8�
�C^��9��%n
�I���3+�<"� o��:f!�
��[A#@��b��8�j@ǪD�uC�(���N���Ѓ1#�4�E_��?�ؓ|�5T~#0M-�����
+�[j^Ԥ��K��d�oL�
lMV��j�Q
h�C�p(y3}��Ae�4L
�	I�苎Wi{���O���Y at u������w��
=���ٟ}�՟w64M.������.G�x�pO�ﻦ�U�=�
��{�")���H�5p�|*f1rMү��a�
��
`gV���Y��ɨ�upI�N
-b��zu�d����		�q�;*��LгB&�ݸ�
+l"���}3bɺ���5.ƅu-
A�L�!=�"�G�BF�*�t�­	��Q��(
s� �"R�����␙^23�wg���i�2�O���V�?)Ț��6�"f�q�C�5�+��*3n|��]�Q�
Y�M�������\�Y٧���9�ls��
��KE�p+�����U���2f�I<*nٶJP�1�*ܘ�����M�����oi�
�E��~kE�!�
LD� 9�&��t����G�;����"Yt���[�'
���@
6Flm���M��T�$z>,5
&楍����i���Dd��C���B͋��Z�0+b
+dJ��`յ�iJ����,M��}3
�3��a��6�p�6Ve�J,�U����L���h�8E����saȝ���B��a�L
+}�ԥ
z�1��cV� �	
9
+6s*?��@��
��c�9��|w^�$���Z��͑�K��¨Y&����)9A5��U?J���X���1K���&���tȧ����Z&��%B`S`?j2��oc��Яjy�Rp=B��3�7J�	j�� ���ozƱ��fr�.Ԃ_+���rqX_�
1�4D�א}�荈��
wPK�^=8�'�2��6�(l�F.vt�;�,
�al��jd���]y.z�y.3jƧ�����?�!S��zbZ�Ȯ���
«?�e���?-`��I~��(�Ϲ.-��1J�#ث.
��6Cm)�%mMmL�ҙ0�6yՔ�������c[�+!���>�/�
�D�1v�5�v
l\�
:lfW�L�
+?��kVT{�|ʖ�YY�9n���[Z$��)�n!%
5�3�&��EԊ�T�8>�Е��}za���M<Z��f��y
��jf��� �
㾭�����x5u�
��7>��.�m�����/N��¶�n?���.�m�ڀ��%d�i����o�X��[J�ÀQ�N�ս:9����5�3=:bJ�A�ّ�a�F��]��Gq�۝ź�؂H
�c�C��"k�0_+��T݉��'f�ªL�x��g���;/�:��f�Zj��d�吁]�\C���
[%����-:S�::���
�
�	Y~��
���P�B�`X'Ǒs��o�x�^��킧!
�!�%,��	[uc�!��u�1���
��Ƈ
MOc3���sR�G� ?�'
B����	�;Ą��Y�����4%L5������"��B:����䔈�Z��=j�V��n���5%��b
�<b���zv����^�kl|
5�ɮq���	j:d1`k>�Ą�K�����n���)q՟k��!bZ�O�����6ә���벋	�\
��x[�a�L
�տL�&&�
ϣ&)? ����
 �0�f:��>�����.�J!;���ʗz0�5͹�-E��
B^���7��7J�[!�g�6�̢M�b��)[�`d����@
��x��Y�J8L���ǨW�i��G2�Jv~�
+�f�� �4|\�XӀ\[
��D�u�!7J��yQЛ�!b�컊�	��>l�w�y��,���6='�#ס�2|S�!S G6�V�Gg��"�=#�A
�ȥ���`��V�xm�U�5=
����
ϐ
�3�E8��]"
A����jj��殠�u*`�mڥ��C�u[Xh�4�G�8�OU���1n�W��,lm�C��
�����g���;��aV�
6�[j�=�g��lS��V�dU-"m����S�c������	�]�D@_���V6Ưg�Awֆq�6G�c&:a�`���+A�SMЦh��
xAYG��8�rd=7
+,�IX>���+�F1=dR!��"6<���"��1}J>ƣb��Ȟ���O��� Yz�����9�|g^�qJ$~���2Yc�(��\5��b.�\~�-n�n��-
��wU���_q��,��r�j>q}���n��LUsZ>�Kv�
2��0�w���Ȅ�vy����s#���^!�Yd���S�M8Y�?8T��]�8��pM	P������
+j(��I�A-����R1
��q��
ԱK��LQ3
�FL��ꚣ����]Ѵ��=ZB2�G��ԗߤ �������	S���^�յA�������� �!c�G�!S�Kd�֖�YƏ�8��r}��g�5�օ��*d�sc���c��i>=1�c��!�GD�2A�R�
\�F�89��1�ϝy!�\@��9%����Ț� {F�|�-��
�jnw^,�c���}�ljY8����ؙ����
��ج�	�H��|u���YlN,څ��iz&�q]�Z��5K�
cMm����؄0P
�<h��VEM
rW�\]�ַ�-O�֖����I 2,ҏ'�9;T|ruDB�Vw�<��Z�����1|^}|
4�,��W�VE���R�6�
+��?5 Y>`f����{n%�a@�,�0#��ϼ��C
c!d�,�:�߯����V=acU�-�� ��
B~̩hq����g���zS*E�0��q�Iz���g����E��l����8�aH��l
3R7�I7\���;61��
�܆��Y�>
�j�;#�#�F^���щ����Q���	�a=�
+y�|�G���븘�if��3e���ps���R��Ӵ�m=w}���5.#�u��.�U^��񁖻���
�T�c��#&Vݖ��� �ȣ���*	qǤ��1�x�aV ���!�标R�ƙ�>̬����k�Q����
+�yO-��0facB:FAPC��
'>�OqK��G�"�G��F��jjN at KɎ�)9a1+��T��2I� �&P�
+-�R���|�Ք_���0��p���W�C�=f���j�Չ������12!ۋ(!��n�,�A�O��ytUw6U��13�*��\
����\
��fDww�d�=�9��Ԥ�A��7/o���'L̊�^Gg��N6qg��� ����
3�
�ّY>kw^�ؙ�mz��8hzlr
��ccab������r\��ڐ�<�M^�$怵�~��†L,�[�)�Z�k�/�~k�t�Q��?[����Q0��z	�gx:�1�t�DŽ��b�uo�3�Z��U
�
+�a����ˉX^�
+y�Y��ն��ra�"`�wa#F&jOM�Y�
��|Ը3�h<��0�X�~�����0A#��o��͌���^�U���C�ڶ8h
+0�0l���1+�tk�pk����>���^��N�E�#�;Ay���%�Z�<��Uvt���PTGΌ�%!-�,������U�̐�U�s1�	N�gZ����A��+�h�$+�5���A��N�3���[c�ۛ����㜜�Aڃ�A���xߣ$=�B]{մ̍1�
����o
+�
��%d���܏@��%
%���D���=M�r�0��Z	�d�8�sHyB�*v��������c�a
=o���|*�%
"^@��l���*f��}D�,�*?����(+'���@���}���
YPM���W^�O��}�̾�y���;�˻�d8��?�8̄�����~9uk�|?b�
+}�>q�&1`��q��'�L��-%�OEI�h٥H�
"��+˫���Md�<Ԭ]+�3p��:V1�����܋��K�g%�r}O�G�r�p�� �n"zذţ5s	q;�������Bj�k
wˣ��O8��r�
�3f�i�B�
5-1�X�7#��Y�
��B��Z!k��Dm�I��bi��@E�����^
�� ���!|f	?h�^�8���N.��9ףc�lK�+y���d����o��ۘ`,��.D�|J��]�iJ�&dҐQH�(��C��8pb8&j������A-19��dƴ�2d�i�Y�v�<A�%3u
q�AH
+�����6Xqn����BO���1�]����,�DlR��� ����
Ļ[#�[�6�/Ko�F���q��#�;�1N�j��|'ꈽ5��厒_�c���=�[j	u�
��g�� �e����S삍A�]�~ŭ!V��{�U�$;om�ro�wzk�zY�݆�_y_���U��ו'V�q��������2Tyq���{���U���jj�k�z���d}Q��k��
Q�+Bjjf`
+{�;���=\q�;��VS҃JF��0��|�7��l���ו��þq½��Y�$��O�
�&���;�I!:0%D��B�w�_�������Wz�O���Ϻ��w=R�_��]1�@ϱ-�'f��(a#׃�*6*n�pB:^e���"~�x���曢��9�y��:֯���Z��5���kx�A
��3A~�B�
�Դ�>�ŕ~�5��4#�=NO��8%��y�]x� ׬�W���'\�O��6Yu2d� ���٥�IZF`���9@����7FO�N0�=c���QayP-��+y��!����U��A�������A

�
B=�"�����z1mKE������T��
�aޑ=�!=�����K��x8r-,h`m�H)K#��^

����e�Ƨ���⨝K
��U^
#�f��r}�%����Յ�]m]���n̅8�}
���ӯ��	j�i�c�4G/��L�w�Y ���
�ލ�?f����S���G-��55r�R!��y螔�ֆ���af:d��͑�K����Seg�&�n ?����5��SI��(`�tп[��m��o��Ǟ]�:��C����~����Z~Ǽc}�>d{T���|}���4��|�j(�v��|ۯ�n�R����-��:��M���������>��D��5�����hXEH�-uU�F�c�������#�������[��QI�ָ�
+�bk���؅?��xq��x5�dŴ�Jr/�=�=�H�~��=Xya����ʻ�cK��}��K䇚振�:K~K�xx�$9eyOw�/}e'�=�<�վI*��A�|�2�����>�ͷ��8fi-�?�⨣����쥘�S�
}~�3IO�8舑��*�%QȷȚR�"��܊�S,�e����JV��$��b/귍��!F�j/���[��f�oJ�
Ir
S�I뽸K���:��~���u�
�o���dm��	z�k�xk����x+�Tn��.ta.�r~p>-?��&][xSq|�M�����_׻qW
O�Gg^�C��V���6�o����׸3��h����;���w����(w�'��Uri�"����Û��+[�[#�]U�Vz�W<�
�Ana@)�
"�8��7{��Z��I���CD����tD*�k���i>j��|��Rq���G�<wo?=�#���=�
�j�_IN��<�"b �����q���w�(:�ч��&�E��X�,�NP�5��ق��
ef"Gd����9����o���j	=�em��n�T����^@��vc/,�Ɲ[�!'o
n���2��|�8+j���y�{n�m�Ikk�A}}������7�3/���_�-�"��}�=��I�6�{r��tu��vor�o�e���9�J]��\|�9e]xxT���Qq���g�.����
=	~p��|u�
�����+�9?Y[���uukLT�����N�*��9K��7&\�D��
���
�o�<�ݷ�
wy��zw����5D{�څ:�ً>�5Xq~k���M��1Y�g˝��;z1
�����G�ߗ��9���9��ꂾ��?�
����T]�MH��:�ƨ3��qg��~����Z��u�qW��w����K�
���?=��'C"�Y��Z��<�
1r	>
�أ�ܦ��َ�����}�'��
��v<C���v�l����g�l0S��/���_�?/�	��gKsɾ�.�^�r+�����e�	��>�oso0g�/QG
���������`�z��\;��һ�S���}jI�jI��G�;�Wl/)WG�eߌ�
��Ԗ���q�Rl����)��./v�.��Ҧ�݀,Y�W�J���7���ߘ�@
���~c~T��\��tm�QKk�͐J��)Z�!\v�,?b\�����G��~X�A9^��lr*�����A�\'
��|��Vr`J�����_�O�����~M��w���ڎ�T�9X|j�ur��
j���6��Ŏ�_Jz^
�G+�o*��K��{���o0'�^����N�cn��~�
{��
w�O�y�5DH8��j�
+h�9�ʫ+�>���Ԓ�g�s��V|b{��1�Y�㌬�w�c��9?Ꚓ�t3.��)��_�����y�;��|��R~����%�����Ш���{�7�5ӆ>�5�������;H��U�14�����;���;�͏&�Y���)����N��+�YkK龕�ƒ�O�����8��w������!)�7U/]�fϼF57f|a�M���.s��!c�l{��I�^Csյ���;����K��'Vޕ�X�,?fn-;���~ii):�ڋ��Ё�����ü��Af�J/�:�م�7�_�����������ܬ���ۛ�5ĕni�R��E�!SSᷦ���u�
K|�9L�\�z��]Y�ƞ_���,;�xYz�В���!������c��Q���◯
��"��ъ:��Qyj���蕣�o	7���M�͵.¥����
ϊ������3�Z�%�ٜ�`�Ƅ�.���dK���`xrJ���FQ�W_���J�򅩥��Kb�
���<�i뽤[���)u���I��Q/�K�+�Յ.�-�����C���g��/��'e�>S�d|cl.�7,��49ׯ��{�)�Af�B�WcK�����Ϧ�ٟ+k
+�yQu�o����so7�#���z���砹�П-�?:^�
����;�)[Rp̯(ז�X^U]�J;[�T����_�i�?y���/ʍ����[�}�'�7�ak���7��뙨�A����n�TԬ�FD�
ee�T�[%�۟�.:�au<-��ܒ��|;�o���l*:�������]�������#�_-u
^}��њ�g�U�!�3���׮^b^xs��tc�
��Q�^}s�Ӳ���k�o�^������W��o�^�

%2�N�h����4�߃�{�t�<$O�
���VJ�NnBM[����r���f�QVg~1&H�t����	i���ii?�,����n��aQ�w�
�����.?1)J���t�/���
/�7����s/X��G���o��;��g�J�ϴ�����V��u�/����u�>^��?���J�m'�u<�:�x�>;*��/󓬟6zDE˝�d�S܉�����
�͕n���w��
���
��jR��k3��=c^�>�]Z|G�>��ꤥ�l���쐶���qy�/�����x���;���
�=Ss��չ{��MUg~�k����8k�j�B����n֝�ۣ�*��l|��>k��9�[Ѓ}C�{�zϹ�$��߆E��������
���ޢN:_
�=��q�{u�/�c��T�2�(=m
<�����K���_f^T��|yRU����%��f�Q���hw�m��4�%ߛ�����Y
�� �5]����[�ys+���10u/��q�q]}񾙧 [...]
��kkS��Ҿ�L2
fޡOY�*5?�_Q�V
1=B�=��b{J:�^^�C����k��z�="�X_΍H��uDr������d���т�e���@��������7���#�����2!H�H[���0��'̛�νF�&E_������:9o}����벟�Mߎ����A���)Y���E�{����?Ӓ�_���'kr������|�I����}������Y��J2w�
|��CIZꢂ�`~��8am+�qR��_]�
��}�'%I{�R��~IM?
��<�n�E��w�s
����'�#��K�:�`��U��go��1��Qn����#kj!%9%�&��^�

�~��+E/w
rgډ�M��؟�[|�;?�N8?���GK9�.f�!W?3M%������
cs����t��_��I9�؞}a}��f[r�5��qA��@�4=F�a�~����1~�g�^�E���`m�Afځ��w���O�g�eY_N�
|�܁���w��Vz������+�)�3��3�ϸ��1()]| [...]
N���>j�{���ܲ>X~��,�
M��O��;��_c.�������r���`�O\��e����қ�ögٿ�1�~�x�{�3�.q���h{Tx`�}g�ME�j���˒��o��
��
�O����w�1�%X���!�KS��K�蓞Ib�� �Z
�ҧ�ԣ��A�\�67�?*���(s�0�Ƨ���11n}�_�=.�������IW �
�4�;%~�/S}��/rڜ�e֦~cj���u?��u��LOP��r���4*C���84����8߰��-Y��Z���[sp�����N�4�Pv����?^�o��J�
�?��=.9��&��\��������oq�+��K;�OS.5��
Vz1�f^U
�{�>�
�e~�o(�����������z���-�A'���m�g�g�r�o�)���������>Y��\U\�BX���������3������������a����iqڷ�o���0�>m���ee�J�o��r</=������p�QΕ=�����w�]�"gŌ5�[���e�&�<�=#ث�q����iݣ��S��+Ê�_��x%�k�/+N���]\yO�lF��q>�����J�?�l�����{v��+���^½?
l̮�Y�9��l}���R�uA~3�ĝt�&]
�
�f���Rz�=���&%O�d���8�w�3�=u}�v�?'��{瞗
�~�9�I��=HK��<з�
��(=�1(����ޟ� ���8=�
���l�?�|�����~�#e�R�����An��#��φx�_u33���sO�q7*
����O_��gU�����-�o� �9^�dkM�k}��o�%d�Qf [...]
+���S�d�;��/07�6>��>QSt�3�#n��WA\�{�}���ܟ���r{�\)y��
�
��z3�=N���ܚ�D
7>����8w�k�WnzK�f~�9�9�+X�a�/�F
_yWrl����:d[�k���>	mk�Y1�N�gl!�:$����x��ڢ��:7������K=R��
��y�~KK�7Ji�W��_W]�_��
F��
���
ֽ�v�������C����.�[]s1p�^�s�E����?-�/vV�������
+mm�#���o&�9_
����s���.wWW��h�t
�t5�?����f�ډ>�9��Ѵ���*.{&���n�uGGՙ�~F��$���E�<-��R�(������&�]}�����tS+���
�����۫�I�Vޑ��u�Q�	>�5��(0�@��
�ԶlO3
W!�n�P����w�c�$�8#cs���o�_�.�ekX�T5zO��w��֧
o����o�S-�س��pi|P�q�����ܰN�
�9%�)J�� ��������9_�
�$
`�"M3��B7㞡�dߤ8�����S�}�N��)�Kk�~['-�
}�^^�I�
dg��fm��,��>1�^x�ؔ���
ԩ����f��/�KϻƘY�}����E�f^���Uq~�M�1}S��Ɨ���6�
w���,���^�l�5�/��&�
�+>: ����xk�[�1�-ؚU��\ε�
Yy_y�����9��y��^rn�(倶&�����
��+ol�T%��h����:���˽������)~�� ���;�٩��O˳�Lɳ��$�[�*�=�XtQQ|�c�{F�JO�
3���s�Q�"�����}O�������&�8��?^�S��$�G_��Vֵ��Lg��-u�R��R���
���Hpw��@�$$�]�#!Hۙy�����;y~8W�����k�rd-���1���:�Op�2�|
+.Ƨf�7��_,�����a���������� ��41^
%ok�;ׁ��T
<j
�.AE��ߵ
�N��e�V ��t+�{��)��
�������k.����M������.c&j��1	��K�qQ�l�e�e���2T �g�����k��d��]
��#-/��$/󶁗q�����
+��ᦺ�7�.J׈��\
|��7� ���`�'����U��q�Q�F�p���m2�����6����ۍv�����aZ�u��.g%\�k�~�=����b�wQ�L���[��E 1��Ss	?f�L����N������n�G�0
����~���B�k˃�2.j�nlȼ��_���
+����!R�K��Sps
NВ�x��h��^�:X��	xf{�aT���"�#�������u���2`���;c����3j��^JY)�[�_쩩�i��W��^TKR��jk�ù��N�Y)����޼��o�qB�� &JP
r^Y�������"��y�f��
ͷ��w��Mm�N�M���C��_
+�׋K]�O�G�>���sHᑶ\�.�W{��>��g�d-���Z�,
��$�#�n�`�
3�9Ճ�+�zz~���OO)uʰq�Qd�e
�xi9;�� ��e/�͕��_��W���ׄ c�b�L�\�g&�{�9N=���gcz�QW�k3}*ҥ�}jz�>��_f|�[Q�-)���
���5���� �-|sh�n>4��{�\�CJH��p\��8.���ʌ��;,B�%,�g����#n
�m
��J9�w�UĜ��Ҡ�Ȼ���'��Y/|�Ȥ
1ko���Mвׇh�ü<S�5���[{aV[��������d�}l�D��ǥ\��c�mKX��Me/�9I����
��ԇk�,�_<rr�� �����W�*ߖ #g���	!gǙ��;Q��F��Z�$��נ>4TD����SS�?L��
!�5��]�.x�ؕz�?�f*d{
����L��ÔTCe��1��S2z��qF���z�%S$��uYƌ��Շ������.��2+�*J��v[����d�ZH���.w��
��^x�@�yd����[�o�aL�k�Yb#&�j�N7A��b�U���Y�>��T3 �c��.cu�{�iȭb�o�@^��o�2o�6�t�IY O�jĩ����Kn9��>F���-�8S�~k�9���0>fs���
�l#���fț�T"�gin6��a���Ť8��7�M���L2�v%<�]�٭��]*6�*AG/w���-z��_�j[���1RJ��g���Ȑ�^ [...]

�g�j!٥���
+u����/��y�
�%��1�=��_�\�]�I]m�x=�
}�5��t�0):�6�Jp��NV�[N޻��a
+i��4��W	-jF��"d����[��
��"!��?���E�1T5Y
�r��bG�õ���s�)�͍)O~��D����Y��4ش}��ګ�wT��
9��6LI��'E-���Z0�7&�7�z�����Ԍ��ڊ��Յ��
&��՜
+����</�O?�ʙ���5N/�j�����T�S-Ø0�!jk��т�;�?^k������!Z�m�]��M�5�K
�vb���B�� 1n���Z~�؎�q�1�?��c
��]�Кyw���厂���C�Lצ�%�]��e���
+��7��$ƌ�*
ׁ���7b������9F��6�_�
A#�2lꡁZ����g���uҒm�z�b/=E�Ͽ���>L��1rܕ	F��٦�c
&�Sy��0�ܯ)!kG���4�*)���
~i��źtd�K�B��L��8��^%�
��\#����7��L51��Rl�O#f,tQ�
�q����U��fU�d�x�gSa�S�
+�lM�UW�lUr�1R�j4dk�VR��5�-������}��]
�b�-{>W[xo��8h�����R�F�|<Z#J�c�R���"ѾY(ؖ��7���϶j�S
δe�N�K~ ��O��M��M�S�:�t���^�g�(2ӣa�.ѭd�^�UЋ7{����������� S}�3�$�_���[��
����P�*��.�A������Ŝ_��j�����wɘ��J�V/5
��1+�%���� S[f��82fu� ^�C��+�f�۶�9��-JJ��Ģ�X���y��l,���UI-8cwQ�b�d��z	,�"������

+|��,���S*L
�O���x�(6ѣ���'��[#����@*ޒ��z�.%Ÿv��_�(�?;�,��,�EZ����+C𐅾�7V	X�*�CQIؐ�K��i	�����f���vz�r3#� ¿��~;�Ϻ0��Z����.f�t
)DI��[�cw$��u	�L]�x3݂��R�֭
1
+,����XsC�=�0��F[�3�(=k���6%�.�Q�j�_�Z�i�~Q�V� wZP5�&�4��Om����Av�� ��s��������!�Z�p)��ME�ռ���m����F�rge�R#��Fge�R3/e��
���N��:L��郖^���;�ek�Џ���An-&s�@������fk{�z
��T�r��$�
In5�|�8_Wxw��$p���k���
��s5=x�Y��3\O��,��$�0��S�f8l�lM��$��*��mȩ��*V�g��۟��w,�� :l�����>n_͆٤����?�a�gD�H�Hk�oB@�腼_� ��
C�OW��MW7�L���^�P��|S|�G��훘��񲰍��O
mOWzK^��c�jKb/����y��^F�O^#p��͸��.R�GR�Y�d�DEO�����QL쎊
+�N�K=��x���u)3��r7�W[S�ϑM� ͵�_�t6��9���֏_n'|ײ��h�ŏ��p��Fd�LK�SC擹���{s
�ϕz寥��
�5�[���=3M������y:nM���˾on˹oW cf���YQ����GL��X�������X���DϴDߟ�N��A���2p+}��
V����Tv��Z���;:�뱲�OG�_����ݹ|t��qP���@�o]<�Ox�����ُ��{�M����Y5�
m�����z��d��3�@�jG�]�3�D�$�~;Ž�9R���;5�$9��1|ڗc�o�b�>8�X�u�
�t]%���ђlRF�r>r��1�Θ��$ʅ��n"�n+��r��zr�qDD�Ѣb"��R�O�?
�z��H����@ao�
+��
i�f^^jg$�$�]^E_���݄�) �gZ��'��a#4��n�|?�����݋(��P�y�8���g7���?

+p�(-%�!j�]]
<�
�w���1S�Vlj�RU�=ِ�J�zoi��!eA�˙�;�|�s=�AÆ�j*�?CO�v
r"������Ob�O�">�6[���h�$
�6r����
2bC
t�w���n&���&���c̊����[��ȋ%aoN�|�ӽ УK�@_�<JI�v�
��@��	Y��x��r�$��yKBMߔ��Z�g��Zr�lGi��_xs�
+�� �~��K:U��͑��G1Q'�O�B� 'E��}<�ލ#iA/N"b��T�Ɲ��'&��<�sRHݐ��W���
VG`ߍ��
R��
�~B���:Վ�<b�
?7�$%5�Ϩ�GǮ��;�*�]:ut��YP�����xE_���Ya
+ܓ�̅�� }s���9�cVZ� ���Jl�GG-v�Y�M	=e�VTCÅ���iQ�E����?��
~uJP}m��xE�ɸ�܇J��̩�?�``A�* �ƣVr�!,�$�0�xaT$(��3��k�A�Ν=�rt��yП'�<s��
(7$�Hsy�9�0�֞���2RK�C�� 3Q���>TI|^��=�+N?I�I=^��ȷgw�X�J|�����6��3���Ao��:y����O����25"^�� �Y��'+���ژQ�ZVp;�x�QX�',9�Hvh((��{Ч{�@wϝ��z���-Л�K�
�~
�@�?���m�5���dt��v���Z���m�č�(����-ĵD�Yjf���/��Ŀz
�
z�{��
x��>0�Ϟ�v������� q����^���6
"aa����� 5�hK��L��GŸg���3�����G�a� x�gP��۠�7.�^\�:�Oйߏ��_<�	�Oؓ�������X��+��o-RL�b;��|������X]^p
+w�,�
(��KP�G��kA�.�=�x
t��9Ѕ?��<~�8�2 ���׏���|:
}ZX�c�}F
�v91m���ǾnD�/#�#CGF�
z

+�|���P��۠���y?�}�
�镫�K�:~��&p��ׁ Zf�]-��� �%m;5�B���Z���ꡏ�Y%"h�9\j0'aG�?{
+z~���� З�wA7���9qt8Ɲ�W@�N�zv�2���of�=}M��վ��>���roA ^�1�GY��n|���h�]�h�{^S�s
��X›�G� Ǹ��W �_� :	�� �_>A"Žc�����,�f�C"��y������E
��Or>�:=�88&�X��G��=��흋�A�n�}��865�\=zW)ć̷�߹�����\
�̌�J�]59C5��*�?p�qG�	�G*b���	��}�ؾ={z��.�n�sr��ő�O���^hG���
+�,�⍝���j�Km
������(�Հ�_�B�.#�����*��9�ÃG��/�.����'W.�.\ ���P��s��w
�*�%��X���X�
+[��-�1�̽�\I�C

P	��CT^tJ��8���8��%����{@���v���C�����g/�n�p��
�@�_>Q�bO(��V%�Ъ�, �̵��)H��Rv�d#n���
+��V�s,��S��{�@�/A�o� ���~=� �x�
��� PtЇ�1�^�,H�2߆���)��#��ذ�6�Gs+�� u����-,�-�?���=(!(���y�
���'@�������7���.�>��YP��GG���;;��t�he�f
�;�cyLl�K�(_#�+k!u��U����o_���yJ
+|��5�E �/�~����_]��4�*0�'�o�n_�zp��5�7lr��Z§�>N�E�$p����ݤ��.J����J.�K�8
���ōk��w������_@^�= r���w���5
�y���-Pax��*p�nX�������
�*������5y%qK[S�$ �y����ܓ���c��Ϗļx�M(��m�_'~�8u8�u��7@���Lz��9+����h��⋾!+�0�J�&���oG���D��64�F��H
��A�@�G���L.9O�-?�Ϩ��W�TLw������J��|Ωj�m�F���D��9�cm�*��.&�����o4`8O����������S��̳ؤ������$"H[�H_
��/uC^�b"��J��JL[
��ώ4���P!<�\
,捻F
�.��d�I�K	9��3O|xzt�<�WA�.\%}9AJ-�ъ����
��:�ћRv�U.D[ƅșN��r�
��S�A?�
+�����gUD�=J1�Jҗ���
>��3�
�o�A�/�
�xr4-<�(81�$�����r���թ��X��`�����U{&Q͎A,�h�9���ҁ��x
{�(3�ϯo�

�x�
���3���΁b�|=�.�F�`�v����x�/
�54���v}��o�	.�6��X
�O�a4����*rP
yS\v)/*�Dʗ��_^}r�6�A��8z|+�
�Rr��č[
�b�T�
+����1�پ����q�q]Â��	�ս��.�~�
.�D��>���8
II=��]��
?}�
z4����?
���A��Lԑ–��mY5}[^I�*إ료lC3⥹��4^MT�q��%�Pi1�z{2+"�wxF™���?^ݿz�������K�q�g3�NP
+J���ȇ]l�[m=⽜�ue��eVX�7���0׮���jъ��&o��&�/�s����푈�W��oQ�����џ�O��
����Qdn�U��{
J�L��%�"<:�id
6�MM��Y��.����zhQ�f��>�q'���b[
lm���>�Hޞ��:Tb�U!@o�8%�I1�ijU;�U
�IrS��X4܊�
[Rqa��U���z���9��IX�.��G;�s
�ž��>j�OɁ���r�+v�`[�*w��U�]�VM]�B��P��r~�����-̙�+�v7�����
���1qTX�I�=����5#w&*Ei+C
x���jG�P����{&9X���۝0w&+YK�ԙ���!v�Ƙ6? *R�W��:�mM�Һ�ymmԸ��i����i�͐5�%��8A�bQ�D=dEYE��xH��U�)��/u���$����$^��8��X��uC���zV�Pc��ᖖlIksv

�ƪ
���t�����̰�����!~޶�������J��X�蘪o�O5�z�k��;E-�L�R���(Es�
E%|����J;�,/��%n�o�q?
T
?�p����W�M��EI��6٣�����ŵ����B��YT�7�00a�jZ��)V🢙�]���6�_U<+骚�.�v��
̔�&zH����觪�v�xke�n���8Q�vO	X��
+���pE>
�>��\
�G��p�,r1XSʜ��m����bV� wUe� E�e%^��ee�G�'�Z��6a��W\� i�Y�
"��OXDDkD�ׇ���f8�Õf���)yN=����Bge�PeOe�x�0v��&Q����ꫫP�v��c��Y	5qn�53���C~t�T�����A��ڨ�z�m
+���ө����+�ۀ6�
#�)jK�ԕ~=�s�;�\򖔐b�a�����
* W���I�kWok�n
�wS�2��E�o�k�͊k,Z6rKI�\B��I0�+Rl��M��dG]�.��g ��N�K����m5�tg���>^�w����Z��,�*�{R�tHI�Ab�z>b��
�!m���hbc��6"(Y�&8d��]��a��{�U�
�Z����
���t�����8��#�B�d%ݣ�

֭���)kvu�pK�.[��V%�(�9mk��hSrʧ{9����g³P3����X�p��`��1X�̥B%�����<�M�'[
�u=+��ֵɖ�UM{����9;H��,˪Q�*x�LG��C3�����J
D����Գq�YQ
���z�=�}=���LG���b��Y�����>��՝��ʊy5gNN/˹0��_��~�7#n��p�3��{�F�\u�MC+4�7
�.���L�k����d,vC��U
��Tm�R������� ,�8��ZVґ[Z>}S'b��3
�
� '����M>
"�+/s�ʿ��ÜrJ�O�Ax�l��
��1�p�#e6��_.���4֥=Tr"�-w�{�D��a
]VW��b�}
M�=�H��g��G !R~�9ee�
���cE�혩�h,�*P���i�p�ȣ8S�*��[r^���t�r9��ځM`
�)�;-ํ,��D)ޙ�g�����aȇ����?W�ͻ��>���߭n�q隺v&e.)�"!��6���V�3�:K��ʞm��l�8�$�Э%�8�D��^��Rr���ۛnQ홚$�
؟峭��->aK���V�r�M��&�1�~�V��z�1�.#$ZFJ�Z%���;4l���x���vs��3ֶ{t��nmC�C�Aͷg=Z�n�?oJ��jT���e�WR�
b�yTO��)\�m�8d�=��[����Mۓ��
lװ�
]%׫����V2v���ad�
�7-x
"��c�,�]A+r��e
=0�F֡! z��:L���7tz���
I���Ax��)�z|�[	��a���
++�}���b��\�|o�^j3մ;�u�v}u햊ZbS�2
V�g�K؛a��wC��q�;EG�L8�9t���X�Pᓽ:
+xo��t��
�A��.ry��3I;R�b콹�-cBw�U
;3Um�Zj�{^P��\;�sY��?+\�y6�c�T,I�=f|��,n؛��+���}@lqv��<00`n51c}� p�?��_
�����1b�����,r�{����EQ�MO-�7�<]FWxfk��'��	X��������@�Ȅ����́�/�zJ�MN/65���W%_\��y��Ť8����7S�:=�JD�TX��rͨSA̰+�Ik2t�� <Ʈ%U���jVke�)qu739�2�.�5��9��t����Ra�7%��fZ��oɊ#�ؼ]���ZV�w���3S׽���lJB�}��s
�ak�(�*�E��&lu����Nf�z=o_W�|h���} �RT�V?��ROi�F�y�\_��2JK��"�e�����w��o�㨨 �2���]�
+g�ջ&�'�v���"f�4Ĭ�I*x]��Y�+��5'n��j�J>�5N���x�`b'�8�B��4���q��6z`�?��G�A��b V�6.۩�Bwt|ꦲ�.��\o�H��x�m���S
jd�S����*�,��m%>}UF͜��}�������mf'��$А��'[�y/���
Ck���X�o��ů=Zѡb94�|�8*©�&��Ӯ�)�
����7����U��\�p����C3���D�,w��r)���u-�9�.v���V̵�� >��yL?��U��n������g��CSu����6P���X��:��;0�p�^0�FR������*#f�Os����B�
mU����4����&)�co�e�v����y2�`�#�(��1r��Le�S�B�B�?w�o�w
��Щ>:�k �Ғ��X�/���d�T��`�`ӷ5��$6�g����V6 q�k��);z>�p�C=��@�
�̥δ[��W'�¨��J��$��1LLt*��n�8�4*�"�~]���ń��!�7���m%1�7�&x��"���z��(�-Tu���
��笰Ʃ���1an
9��uk
�g��z�kd}Ӣ���c?W�u;j�[G-ݛo1����6U
ض�Z��2�����.�i��"h��^�Uɀՠ#���#o��
+���3^��>��x�9#`�6��Z[�K�(&j@��������5�@]I����
8 O�)Eq�u$��?fԏ�.=
�k�[�5��66ɪ�%�t��]
>ۣ��l��o

�6{9�Qr�GFIs�`#����N)�c�/y�ҙu�*�~q*�9k��\��Q�%%����#W���1N���lG�D��\�
�~ �f���")�2NHZ�b"�T �E�]�
h�S'�NUU(%�zt⮦,d[��)A|�
��l+i`s;6ԡҼSյ
=�����ߥ�&���Bj�ח�P�խ��:�����  ��r(�n�[<�:-IYeBH�E��(bo���TUg����SE����#�&��(i��0���`��<��� �{�
�K�K[����"���8 at H<��Q�?K5C�n����qZ
���X�lgq��4�� n�P1!	)�����.����*l��5~ˮ��:R�n��"hs��1�
ߝd#��U�I}W�A�5����ߦjӮ�"ϯs ���q�
h��\ZR�9��%��p��v���	F�{��eo��g{��;ߞ�p������i3T�/�b{ �u�:骜wq��<�`��v�a��Qh(��In����	)��`w�L��'���> �vM|��y
+b���9&� �0�^3��c���9�a��Ie�İ+�.X���F��y?v���2�'�<�m@�
L��Y�l�Lq�ayg�n}�xg�
��{zZ�}bW����w
ͨȟ�b�O�,��H�;\�z{�S'�.)9}����y��x��c�V�1 ��2P�lq���l��}Eo�3-������[��Ŀ���fy\ oK�@��
��2���?�oB�|��!�
ä����'35���U�7M��Ӣ�
���w)9S�
+
Ϗx�W/"��CF/�+9�
-
��R��qX�RO���,dw�Ir�(p ��;:J�K�M�N"c���

4ru���Jw���M�14�lk�n�&
L�w��b����Ҷ�ؘ�QL�Tc���aL�����U�ɣ�Z%�o[���ۀ��M�tԲ=ͯ�9f�'��uO��Q� �����1��Ě���*��	r�е{�
�[K)�+�Yn5��9A�rHq	 _��(��3��S"����mwFTeS��2B�Z샎�3�N�1UY�0ɭ��;
�>�e�zO�Dn+Щ9&î��̢�����]5���|fJَi���
-g�B�ؤ�P�
� e��p�N%%�
��SMʷHPq�����C���
���wc�~.�I�gEM;::ܡ�&[�4 ���~k⏶)�'mH��[Rj������*籥�q���u� �,�‚
*B�EA����kƃ�:t�MU�Ū��t8�+�{�I�k)y3]����#<3�5^@�.�[��Z}�$Ȏ��_�j�-�g���5
+E�
��4����`��L��E*
���[#�o

%/-���Ab�����P�6{���>�����4��m)!�%��k
�m���bꞜQ��V���[��^�\%����G����~�>JL�j)��
ڒP�
�=΁��|�{J\�%�g˫R�� R>t�jW�q�<��(�(��lS�;]cY ;��K'6��C�1��oLr��kX�L�l�òo:���jf7�y��kG9)��(�x��]��c-Rȗ��{�-�����!�7�8���W�7�{�zd�s
��2��l�#�^���J[���Vl��@zQ���1��s�:é �l���6���X�]�W�>#f�5H��
x��!���v�����ᒠ���+����
�
+����KQ�@ܻ�d��"vw_��H�� �r��HcGi�� *�g��aQPr�a�c�h���z_��0塹6�[N�w��k��ٝ
+�X/\D}Ylߟ�J��
��[�#7�?
L�?[U�R���]�_�C�K݅���8U��R�݇3��=]���ڃY&���w{
�-C�;�o�ZL��������QD�s�Q������
5.ms�ҏ
+��F~頦�\��=��v���]ƿ
x�

v0-�۟��^�ƭ�R�:��5US�&c��!�g��>:F�k�%o�%�( Ob��+>�Ʊ){�4�o[�kD�zt��c�DŽ�_�d�{�误�6��-):�e`��ZfŮ��8\���k0�n-*�>�Np����f
y��1��
-������Y��A'mI1Q�Ȉ�~D�SM)��~4���ܺ�q�d]�[�Ey��|����jI�N9*z�+�^wy����bs�kk,d�
�n�ȇ��g���5>��&�9<���脻��5�.
�P��n��6F����C����|�� d��7�����	���YFHɋ�e/g�����?�
��:i1N�
k?����1�>�絮��Ƽ;���+fҙVؗߖ;�E6����
��S��V��
+�3��ܥβ����g{j*���l�?�� ���
f�1��c
�����ޒ����7��_
B��1as��֋
+^�F~���׵b>Nנ����Ϧ�K�o��`
+a�-9�?�k
��>Z�i{�$��
��My�OzzZ��
?4�xvY��SQ��T
9۝�d�%2`�3������1�K\�Ư�1݆�0W+�E�F�ѧ���
�	�n;'H��������^=W�6LL6��w���KF~�y��~̳ߌ5᷀8FlJ����!R�S�ĸ&�
2旙
+;01о)>�������WO��I��Fr�OK��>�1T�a�.��f{�=:�!�@�{0�[C�H�8.�&�&l⾯� >MUe?^l+�jS2a~<w8��i
cWǂL	�N-�3I�
L
�<Sbц�Wn��58��L�=�-'$�t�_-��>s���;rd��P��8��Lsҝ34��q�W��rȡ��t�E� >	�n�7:���a�7��R�r���s�SL��	�$�[�I�M b��!�w�8����)Ϭ�vw��qw���c���@[�Q1�nH�V ��U�L���� ��Q(؛5�5<�c
g
A}3��=��2̉�JL{���

e
�'���[��l
�}�
�L�M�f�<T30�ӕ��rb�
�W?n����dN����IqSu�������Y.}CB�]끿_�(
���y��U�zy6�ͼIKz~̫�71��soOUg�0��ߟg�0Ve,�>�o�� .z�
䠀
h�}��g
��/v��D=9A�~�#Ǘz���m-ۧ�C
\�@� �T�=�0ߔtc����|Gy�BG�[sm�#�0�Ч��w�3�K��wø俘��@��w��H	�,}�hE6�
}z����<�tma��:��m(��LS��aJ���Vtʾ�
+�mJ��ғ�¥��nJJC,�ea>5�
xbMM�c9/������Z���7�����}�ϖAt�
�Q1����[N�{ר 3ߊ�4AM�$�&�S�r����7�r7�Ik�Ԝ�O�����_��b��������fQ�����QpЏY�;���R�6ƒ/�ߦ��g$�m��Y�J�:I�9��D��ژy�PEʝn����9&,y���@��v�4�.4���S�	�曢�<���aZΖ
�����槉��{�Z�
�|�����:�'�
�dnM�
+m2j�W�(]�(}c&_�dŝA}:1 {|�~mKR��M~�0;��|g�׃i&����i.��
�g����~f�%�鮑��1pp6%
�.%&�&�0��M��\�w�Px h��It�[��r鉐���<�n[O.|s�6���rLʎ�w0�":�,�ME��E���,�Q�����i8�3�:B�]l/y����
��-C訩���3��7����ˀ�pJ��&
gK���
�c��~�tl��4�k����H#�b�7F�_[F�Q^

�$A����}��(�L��ixX�
� ���	Z��	b�RR�'󁚟��5�,���������tH`aS�w4��ˋm%o~+��R�������EAsm�AKͥ���ڛ�goI��[�Ԍ�g�����xt���
m�w�3oz�c���9L�7V�����Ex�̲�ad�j��R �WW�'?�ӟ=��+�~r������V�z0I+57�4B^���I�o����rI	9? O`Q S�ӟ
9���*���:J᾿������_ [...]
+FQ4�A��#]'��ȳ+��/�d���|яy����J��s�N�谹��%�v���v9,�Ԑ
�[R�߀~�V�ɓ
��#�$�LØo�y��%�3^
�ޖ�ܚ0ߒvϭ��z���k��`��ط\3�s����+�����
�KG-�x���`F��f��).���#�����S���[��a�[���]�Ϯ1|Ҏ� h� ���ChX59ou���9����q0�IB�LjLr���۞	���S�8@/R��������}C���M ��I`�SU�׵��K��������uog���i,|>���r� ��,c~?=N�<��U��,�@?l�b���,�C�CxU�,��"�:V��T�rkk 
�k���ǴP�PZ��i[�Ir��iN�S�D����
b��,,u��ޒS����J~a���~Q�H���<���^
�$\]-t��
+Ӯ�٩�F��OV��~���ڛbag��>��^���	~-�m �l�_m���� :|
�s�����m1cg�90
���Ȉ����Jf�)�(��ls���>|TUy�u�ק�-v�G�Nt()E���7:q�ͺ��gxi�N(iq��#�xT<�����J[�;��^~`d������aS<��\���$维\��(&ޭ��
^�_��!�|Xhο�R~���0��Yq��t�U���Y�IZ񁁋���.=<eKh���3��k��ˣ�U��d?s*ʣ�tp,0�?�	r�Z/�c����b�� ��cS}�Վ�Ǯ��`����}��Y�^�=�#���_^�+
\� ���MQ �.��oN�KM+74��V2�Ι�)�|��̫[�9?p{��GE(�[4Ưi|�G
O8\�T������Y@�N�ဎKۙ$f���R
�U�O6U��fH�UJ.�7�8�Ql�rK�ͭ�����ņ�۶at�g��^<��p�G�8:
��l��V
|��5s���vm�#= ����
#� [...]
+���5ŧ;���mi�����S��ƙ���(�{f
����
���7} ��j��}=.�&)y�1P�C|��⿏��&������
+>B__���gSQ����c�G�܄ۛ FK>\��~qv���3�}Jb�k�<d�%���ۍaZ��
��������^5&e����Fٛ�I|Ώy6s���{g�
+�h�W����ZoŻ�^�7�8.ͩ$f�K�1����RL�Y�,~�D��5&���~?oj�z�K�~�q�X�cL]�Dd��?W�
��������mYY�e,��Kh�)���ܦ`�d'���
�*r��h����8#�Jev𩶊�k�~H�b_Y0� �ʖ�P����W�J?ε�ʹ�ݝ�̺�T�|�5�����M=gGˀ
�
+k�Y��
��������+�
�����x��]jnE��h�4`M�+��Ϛ��tAޞ���~ױ�Ϲ��q���k�h�e�—�-���_�5m���ԟflޡ	�f�y3�
0�w��Be��L�ضF$�ʨ�?f�m�F6姙�ۛ�{�7�2�NJ���$hpĵV9훮�ڟgS�Zb����!hH:�(��v���.%%�&��.
���N�:K�=��7:s�o���s��R��ptMEׇh�v�9�����lJPa"̡�$옘H����gn���������	*����`�oВ��L��^��U�7F�~�y��|���A�~m���e7�Y�z���e�_\��+*[��FH��
\�~^
���`��k��|��Y�ш�.-�5�Op�1� 
��FR�U���H���^�;z.ޭ�<: ��,��W��
j�!"gڊ
.��B,���q.d��9�����ļTQ�J��4��'چ��
��3
+.��m��=�^��\�z�6P��|�>�e0���
2e׈�YF�oH�q�&k����r��3,���65:i�+�C��k()�ܧi�7�M �Z(
Z�ϹojH��
{wa��0��jEE�[n)~�?�%���I&���M�H��)}3Y�s��9N�Т�կ��
���ڮ�����"�D���9�g�$S3�EF���{w�Yᓳ�
)b�%ȅ	7�I17�j6v����]�M`<D��q��
�!�^c%oc����
+8��,�OO-v(��+=�A���/�o���,}�()3��� 2ee�/ae>U�3�X�a�w'���jz�W�����.t��]lK�}`���L|�Z?$d�/���@��٦�G[�%!�,�@>5�N����̷m���?�Ff*k�t�
+�0��|]�
� 6`����+�ƙ
X�\	sM�v��J�JZ�J/�3�S߮�c�::�3�e����e[l�ee
#�.��,5d,4��Vs�/�6��Y낽q���.x�R�|}���&���!���#A����)�g���+��fq����Q��s|��

�4���&B��@�1�u�RnlSs��IJz������u9/�)ɑ�:�^���)�>rB39�^7����!D؎���jyD����g��o�_Ѝݚ`�m�j�l%~q�o� f�h��0!��^ C�����Eb`���)o��sZ\�3��n-.�6^b
/
w�(9.9�|}�������d?h��^�,�~�q��$��!�ʌ8�KB�
�5bb.��r��J�� .zk�ѭ�|���/�S�T��
+�*����^��V�c$z
�t����3	v-
�5sٛr\����(�h�
���;����&��qI�d�R7*D.�((
+>�ڋ�Z�G/vU٤ظ�~d�\W~��H�m9:�G�T;�.�)���_�U���z�R��_[R���H�6%�`�
��C���s��_m^Yo&�:q��؎�ĽW� �4�{� �w	D�U�PG�T�D��df�����XK����]>_i���C�ՠJ�#�h�y'���F:�}g(��Z%��[#�駎v���`�m�Wkg�BˀoH	�A
��^_�B��;�C��H�f!/}M���o� �~�7>��^H�r��H�˿=�θ�>�'.�e�]bT���]q��LM��6��[:l�_M�
`�,ڟ.&�o���U$h]R��*�HZ�iK�;�3;+L��
+shb�����H�����.L��T볍iL6[�;&�����5�,\ގ����1� #��
Ȳ������桯 ξo�&z���\a^X���l{�)���9&�Ͽ\� %�R��8�Q�Ꜹ]�
�] g��ȏv��{���Ƣ
%�ˎk��/�'7���oHuלÐd9���tG��Je��^~�%XV��tG�,��4��>5�{�mL��96	x;Z.�N�Yv����܍yXZD�)Y�C���Z����-{f�p߄o�^nM�������\`��c3w`�P�-
殉�9�q��6'1�~�0�<�xS��ܘB�Vr�V���i��S�L��.�D�<G_�
�`�
9%�75���<��Q\�E�(:�@��Lg�=uC��d[���
�{����#
��Cq3)�0���������3�v~�.W":|
p�IRF�y1*��#
�r��ݮŖ�I��)X�c��w�@�ok��W!9�q�YyQ#����X���� ]
7���zLydS��o}��nx���=���WRb���	m��t&��QQ-
�����/vV���$4F�Ȣ�Ɏ\[_���qP��
8?$�mʐ��̊?��yW��|�jr|EXCl�63�a-
�W�j#ZZ�y��W���G
�G����<<mC��lm����LGv at Aɺ���ʗg����[���H�i�@�9�T�
}�˕���1���k
�W
+�]
h�VR�����N���V
U�ߓ��})�<���LÛ?=L�O�ʵ�Q
���9����k��$�_
T��
o��+�2F��2}��]|��Y8���Ed�����	h�����kcUW3l��7���3�����Y����}f���w��_�J��s��+�,�ȿ�͋*Q�&\��|le�]�}pw��|ogP#rtѾ���飓N�Y�M%�%(��Fi9rz�%A��$��_�����g��Y�s�5Xy�7���5��$0ۖ|d�B�RLATF���R[cjXVT	I-���]9�/��O��>:I��
ߺ��fn��)qM{��
+��?NB�
��?3�-Tؖ�X���m=��g�F5l�}�R���q�=�]e�NX�~�ً�ޘÕ�G�V�;��`�~Y�䝏)��
�a
+Oj��^m�ٸ��
>�`��Ⱥ]3
�KD~�D�V��}�`���
�|��[ܷu��}����D��l�
��C��=bdY?4���Q�Gl�Z�^�prN.��~���^��A/'��'�첻��
+Eα�[NQí��|
�	��}�`�ÆP�c��˴��J��5��>�9=�&Xk�.��Č�}+
�k��}��gd{��Q"��fA/M�Uݓ�䰊�x�dv����tg����;����+tD�LG���
a�w�mKW�����W�k��|֡������ki
�b�[B��Β
�Rl�m����[^���b;�:xq@���;���6Xq)�@��dl�GBi����liХ[XAP
Jߔ��z�j
G��=�嚦�[D��[���^征�`��}+q����[��#3���g�w�L�>���&�`[K�,S;�T�&`_:���w�K��WY�̰�_0wU^t����Z���Ff���/��H)�}�}r	�{��W{=���1���F��z!��t�0��N�Զ��
���@��Nw$o."�5��
�
+LӞ�{0q&,��[�
�G@��V?�TI/=M�L��w�+{O]r\�*���91"?� Ju���3�S~V��X
�����-�J~[�_�>tn��y��
,��Y��T{/������<�3�q�8{�֔�B݃=u{桙? bfP˳����kBr:��
~�kJ���յ�������6F[n�c��o' oN���2#
L������eA�5��\����!&Tn�xa-�&�@ƵTġ�A��`q��X�		�6��b:TY\Ol;r
��
�޸�MY��d��������Zx��04} �wQ�ݞ꟡W����K�i?
7?�I�y{���8�jJ:0�ꡪ$F���C3��Cw׶��=���
[����9Z�c6\�G7A*��בr{��ٯ8 l91��'���oO�i�% ����{���d�m��\�a˂�OHKiqM"R7%��]��݋�f�4�x����ش
3���t�W��f�wn�鐘ih~s���I�q#��W���{�Ђ3��w�yk�P�
�X�I]��,#��R��
ZI�C
��
�H�5 C�<�)<���,�����L|�5�`A
�Ư��F �ص��=�.#�������]��i�5d���6�p�D�� zqMA�U�n���ֳ����


^@g�!I������
Zf�v��1F�o)7N}«}�[h��1
ye�m��i��.n�㟭���s } �J1�#�7g�*tS�4�ҎΆ�{�vL
Ʊ�׽oe�]ӈ
�4�߈��
+[���W��+��W	e����,I����;KWK��<�=Z��GTqQߕ}z���
��i	>�w��y��񣫏R���\͡	Z����ڔ4>
+I�����c3
Uc�����ډ��~��a�����G&b�g��ƚ��o��k��
��o��
?�����s2�ǽ���������.S���U���N{�j�;��Ӽb@ː��6,����yҦ������x];�d��
��U��IJ�K-)�F�]Tܶ��� 
������´
Z!Eq
$k��;˄��2�;љ�"��\��0�Ӡ�bԛ�3��K
+����կ�Ӕ��Ir�s
+���
+0�
�ydE�
;	��k��JYw��YZέ^�8�a�C
+&$�a�brx햤=-4
ʍ��ZɅqL��ՙ�R�<��5�J��`)�9xf@�/Y���
+BjL�\��p�U�4�to����@���h�5q���\l^��㭌#����/"z.�+%�,�j�iH�����7�c5W���=]g����77��s��"��� 
X�ԀQ��\P^�<���f�@�<��Y�IH��Rx�6
+y5�x�.�О�%�%8I�A=��>���X�6E�XȆ������9r�Z�%fWEL��]K�	[Ɩ�G[�!��kG�#G��U���Iȳ���뎞��Wz����5���\�l[p'0��p�~U���4^[�l�
���:2P;v

�a�-�������
�5f
S
�{��],NLp�o�T*�6?`T��r��i�u[sȌ�.�5{bv�R��Қ�g�������_��
���w��QP�9ٿ���=�|_ͭ��裔����)�#3��!�nI	-VH�nKՙ
\jM�ס+wT��[ɨ�yy,@|�a��'���:���y=�7�J��WW�Q����Fn�i)�$`?��}?�����|_�)�P���'�Í�{������!oܣ��7gko��5��cJR�[ܖ�b��
4�Ȋ�
�1�#;������ޅ��tМ����G;�y`�r�m]#	�7� �ztex��9TqU��>�&��vM�J'�״]e���YB��Y\�e@?e�i�@�Wx'a�니� [...]
"_D��Q�o|h��cu��v@~��붴dt�Ħ�/�-�¦E4��(�
�
	(剾G�~i\� �?��t
v<� ���8����W^���}����!�R�tg̀o
�Q��ej{�@G��-�D?^
�6���9'[��j�X':�n��y=У�c6&=�'�ZrK�ȡ��/�i���V܌��I,�O7S��&{p�NB
�	�Z�h���,mCnH������~s����X��0
��z�-��EX�O[R��
:���]p�#u[�ʉ+���М�Et�e
�f
+Wq52G���q;��
��C�s��$��lBP��I��TaC���~Tげ��
��c}
�����#����T�	O�ޮ�bs�M������R���Q54�#��5G��E����9V�/��N2RJ_^;!%d\�{](�7�y�@�>0��������O����Qچ:����U���]0���z\��]W 
�3�W�!�mMw��x��t�ϱz��8�/��]È��1l�2��aS�	~ŃO#��Y+��7͂���2h��2�aG�.>2�j����5T_7�Tߌ��a�C
+d�g���n��.
��Ȏj���LN�׎��C���Z@�R�ju���fA�9����]�
�{Ւy�s^��o�MT�g����^
�l�a"?Ǘ�-q-��+e����d�w��R�;Vn�J#�{�;�m���͵>���\���>
JԳYЭ>qsr`���Z�mxa]�����=y6�̽�-����^|����
Z�-�ft5�!ġ�S
Rb��:fCA���1��F&������h%C� �_���m�7
�=�"�^��������=UϿ�O��=��r_Cn_���.s˯��%����@
ˌ�a�[*x��W
����L8p��;:9�'C��k�f��
�����ᨑ���8Ը���y
+����������S�F
���𥉙�1ugVp��o��ξQ�� g|G��F,�
�S���P�Ffů
�������"S��6��ӝ}�wV�UgbJl�{��s��{���s����Dۓ�"��O@�}tSh�v
+:f����,�_
��ݢ3�SӚw�ԆC
��P�����ެ��SB��*[7��"*�;��=�⊆YzFǫ��=�Ί-s�Q=���K��-`
9>QCR�:�.�0�n�_�4���
�z��*|��d��M	$mO��>4aj
��-����rwsQ~d���:^!�v�qU���@|����Q
+��;�~^$6���g6wU_�C�|5���H���آS�������0Җ\�t�3���_
�� ��kt���3���2��bzwjm����2�}�K��� �>������7 at e�ׇ�~t �v��L�P�
bɋ�����\���_�c�4Ю
]�9	N�Ӌn�8Y���iG
+�	�	M֮�k�xV\F(�)�yq�8��w�h�-jf�O뢖7�ML2�%��JhnT�*�6@:��{*��B�o,�[��-�v���3�ss��ī�]��=9��������8�Z%��W?��~��)\�ӏ�]n���DT�o�
+pʎ
�-�
��
)2;�$T
��]-
�9ב�����, at RM��s�����knv��/>���(,��
,�qk��Z|�7Z��!/�5 J=%lN9��*���T�O�z�7׾ٔ� �y؛��֗�f
دB��f�I�Ŷ�]�o�� ��7әS�PG���p��z���g샛�8bTp���_����[ssu�3-<���[�&�S7Eu/|�U��t
��$�����(ŗ}�`�������:ӿ�t��Z�z�/��_�r�:�p�~�U[ʉ�,"'"�H3�.[�
+�E$Ew��{�VDͱ��|�J�7�a��,j�{����#5�(�e�%R����U�vGAo�;
�81���{n�o��w?�e��:��
+t�
������P[�z.i߄o
+��)���_���
C5W#��}
�$����
\ڞ�������~I�U�(�#Ӑ�&�������==����Q
�"��Wz�.�oXz[o��`�7��z~�%%������c��&���鹕wݣ�
�4����TK�Ո�v�4�2��Z���}�Ϸ�_
�(��ĝ-
"h��Fɫ~��NA~t��vx�
�{d���Xk�m�O,������!��G��{�~WR��@+��*�§����l��y������_]c��-��<PzIA}��{�'S׋����O�Jbgx��U?9��x��?�,~b^�3���C��$�d��얎�u>��ij�	t�͸��(P�a	�
+���?�`2ѱ
Ϭ�5<��(H�&1g `4�_���N:%��d�皞�f�&�
 �6����YXzX�)-�����-9��=�x��j���d/��O��<�b�VxnEPw{}��]u~��6ږʯu�5��#��/FU����A98g�H�4LF���;^c�$����I�z'�~�s>zt�=ܡC7���&cl�ژ����2�2�Ŵ:&[3�
+LS�Ezz�ٱ��/z���C�y�cX�-��*�O��|Ūz��,��gJ铯� 9�-l�-:�9���Σ5�G�)?��
�s����tǫ5Q�

�����_\~oZ|dg�=s�����	Ua�>������-�"$A�f�o� _���n��e~�,}�����D�h��"��ҳ��[���jX)祤��+�E��rjsx�
+��BR�1}�������;���w#����zx�r��"2lI|	�u�C��k��bjHɖ
�wl"�EU�R�i��.
��yb�k�����󃔐}`�_���o ��Y�V�5v��
JhU�ކ볈����1���S��w�js��ꙢԈ����C���
�98
���"
+L�&`5�B
h�H{J\O�Y��hj��
+�v[oi���]]�C�|X�OFT����d���;��аj�Ouf�2�*nĔ��.t�o��wO,w����
7�'%=����~�5Z���HG���e"U���iRΓ�<L��ȟ�D�{��`��:ֻS:VΥ�%\9���Id~�Ÿ�-�5�Z-�ŗ�Q�߳�n����֧�����zl}@Am)L��%�1�֡���Kxl�C�s5�VE��궷�ܞ��_�_�sK�|�3�àm
�&(A�f���c��W'��$�\|ɳo`ٷ�\�{
���,(�9\���]qu�3�[zɃJIi��Җ�-,�/my���zK(z��� {6u䤒�<	�98����`6����K��dܑ����M��Pe
�
�
PA�Cb����7��B�.��a��-�z�B��٥'�����%?�A�_�3��S�����o�ϯ}�%1��?�@��Ž�����O����M�>����k��JW��#=wh$�nJ�o�󄊠���13I!-
����He�fQ�q-SP�7��o���sFF���oQ?��F!?˰��Xؕm܊߽��7ƚ��ӝ�������K޾��{
����w���=�p�-�?w�����VT [...]
+-A3��������5� s�\�����?�L��};oA�B
+8��冕�d��
+������ߏA�Ϯ
4ݴ���
)��M%��7���_ap�

���E
+,b�4������ᖇ�:���{���$�uĆ��T���7$ؼ�"�j]Fo\�>�
����q�
$y���X�����y?�{�on��3 �[�'���}�u$�ޑ��袑#*X֞Yl% -XTKG�F���c�=�?�.鑃��!r7$��s�'��և@<J��#���^~���{
+T����,�RNh?��5X�;G�����6eK��(y�g2d�{G�#�Š֔��
T�+�zl�_뼉���Q*��{Nv��5���IK���ؔ�<rOV_�L�<v�3g��缓��==�yG��2:Wwm���.,3*N�h�?i��g���
ⅆW��8뛑��3����֞�+�����)�ӈ�o��|!��\�:ңJ|Ip	����*X�QjBj6j���D�L�Oh�l�NJy����=��x��}W����S���O�O%�8�Igփ���/=���;m�)�f���F�~ũ���d�ۓJF�yD��/}CuϏ��zO�-3�����[�
i|������⻻'?�||��m��k��`$Bve�R�d�#�h�E���"�$�ǡ�w?(�?/ rN*�ŧm��?�p�?��$���פ�G��57���⻟�Ү}-�}�����{��Fp
�
\h�Hj^
�}#����� q�j[+J�^��ۓ‰;{� �� �Ҏ���De���[�mI^�lz��Б
[Ɣn/ [...]
+��	[�b+����o�=iGCh>2�q

\�5���3���c�d�Xpn��WM.Ъ�JJS�ɘ������-
Vc�2D���8��7l��@�
X�}�kaS�t
䞆ԢeU\�A�������6\����f:�9
ϰN������M)*+�CG��l�lۋ�
]��g@#rly�F�����-��?7�C6yS��q�1�*Bۦ�ֺ�@(
��׻cfy��ft	%���6��� l[8t���H�;�R}ү9*/٧�u���[:n�%���~�i�x�ݵ9L�u
����v�3­p��5�GHi�Әt�@�E�����xǓ}�sۀo�-�'��B3�
ܮ;���¡ƍtxX�+�^a`w�<ήE8��¡������'Fe8�nky�f�E�FQ�?Q�3�
�]�S�/
�<�|
+��sa��O���|�f�^�
!��c�g��y5�t
4?w
����qh��rb�I=��Mz�
B���?E'}M.|q"��l^���O7�s
U\=�|�������bz��o�����{�䡑�pY���M�(=K��E��s��^=�I��?�4�~�����oo}��������D�uKO�y	.����瓝���,����#�g�9-��g�z<dOG�G���
%�xs�������c��~HJ��+�&ۊ=��GOC��(��6����7Jf�پ�'��D�<S/*���
ʹ�(h�dė?��\;\��ִ��
Z���c�,�貰U0�Іi�� @��ئ�>�����YhΎ��
���H�)?�	��|��$�T{҆�
Z�7��5�v[H&����}ӄ��YT:�e3V'��s���2�&F
���H�e/�l�����7Q-�uV&q{���_jK��;�,
��$,�&����9t��D�]SW��\��
���&)	��e�3�W�V2����%t�[Ԟ
\lO�� F�!sw���?�9�v
+����2�~�L�
�1�}+�qlg1-t̞���+q�{���b}tr9���|Ӷ_
Z�d�r���
��
;˘
+� �xm�Xh�|�&j��1�t�+ny`j�f�o����l��
+�01-0O�ZK�m��_�O�=
+/�
+B*h�s��e�����͈>��@Q-�m`��m�cG����g
[Fl�_֙ѐ��g��A	*Cɮ87M���5�

�����x��z���Q��X�j{f�n�`s�2R��
�� /
c
I��.5v��԰�/16+<ˊ�HU���c�
�&U��g酼�Q��D
�`�
�H�i̻�
��k�!|�����Y����?���Yb�iv��OI9����x�Tڣ/1iϿᖥ�4�?/H;��N>1M���^~��t�w���/E�M�3��8�׃
�J�hG*,��g#�7W�����-,fp!1?��/�55����9C(iJ�w�8�T|�Bl�b������]xa�������IQ)߬��
+�uo�K���<.�fL�,L��v��Sc�u�H//����RM��-p���w��ܤ##���F�Ӂ���!J�r�;���Ytگ�ɶ����;b��SRr�%����xg��
+]����JC)��9ё�%g�̓���i|p~9����-�%"��A�sȴ_���1O�� �ǚ�Ĵ��=&e�BE
�mbR�j2T�)��)�����j�]
���-ϵ̴35��J��
ت���� �ِ4==��A!��1�����zos�U`�w�t�{;���g$��eF՘�C+���Fc�������,α�I=r3V9C��q�cZl͟.�?
v��_�6z�
j��:
��u<٘n{vlŷZ&���ڝe>-��l��b�9�����u����S�S�
c?��g�*�� \�'F^�)Kw�i=/�tp�33�%�m���m
W`�A�5�)Q=ؗމ=�Pthg��dDۙ�0Ǧ
+V��T^
�S�W�qy����V���G"L�w�㹁Wtf}�\V�0>�ܒw$ۇ�.8�ϭO5ޏi�Ցe�3y����M8�6 ��yE��
C�{�3���ݪ]�g�s7�HUa��a�iCFo6Ͱ�Tc�TM?��{�Rb�s����\ۥ\�]-��5�Js� �Y�*zەYD�)#�����"���W��Y?&��9�J�I�U~9�*�!�F�)}��U�����k���vq�5�d��1�ETA�[[
bhG��|Př�
�U�&����0v�,��|9ܚ��4,�;�@�}�
���0��G�~�DX����<4��Ut����E����^�P2[��
�қ�>��Q��ʶ���C���j�8�E�Ռ���n|jT��
�R�9wNP
+���LF�7�uĦ�B��	���X�7���������<��a˫�_.���������C�j��g�@/>����<.�g�x�CB�ݟ���yx#VyC�]ŽVRBߙj���Ox%�\d��ӹw�}��ʷe���⪫���[�eW�Zn�+�����揘	[�*��
"������f6㣍�oa3w�$hL/�R6'�o�L}�rp��n���]	+���~屧O�ߐ@�� s���Y�)���E�u��9�+��1
�Z�j��e�5�}=��/
�.�@�U�6���dǾ�(�
Q���=��T\�Q�wf}��o~������[����rӡ�
>�P���4򎑆^[�T:f��J
yC���@~u?[ǧ�帒m2�����i`��*Tᶆ�r
l��X&��i~��t��oT����Wwul�_�By���ZbcL���`� >8)�m
��/����\Hڋ�:l�e
� �dA�*|_�oI̝��eGOm� ճψ[X��2
�0�w�왇gm(1��ĿLm^��?3
v��M��Š���܌�9B�g���_�۲�#r�8F;^ ���k� �����S�w>�̯��<K�F��V���"
۸]�&8�F���ͯ`�D���]3
�Y��)�U�Jjͮ9��]�	�FPAi�@ݦ�R��H*�Na2
c��
ܖ�rv����g�HxwFM+�c���=N�sMҋLc��'�5M��7P��
��
��*�gm.bK�rjsH�Bu\,��%���G���g��v�H�UG�E��퉄Ppv�3�G
���\/�A���V�*_��Q���k���;g�"l�c�R�br��,<+$Cվw3��;��ZX��t�-7��>	�ź�Pb�b�Hy��3���a9���S�����w��:f��Ʈ�������
�r�L ������w GU
 v�6~
Q�K�JL�w�3k�m;�m���<��:��٘�����o
�^
��7���־��qta�ӛ_4��>
5�>np��Dlp����7����͞����p��j�i�PҚ�9�D,��qBOI�快X57��
+�
�r
W~V������B��6 )�%T��"�tC) �����K>�5�����
��{}�X��-ri���\ト�3}u�^;A����#�k/�o��5�|�3Zv}w���Q�2F�s�T�s([+,lXK�	�0e�*D�{��qHM��#�CZd�G�HsK��^��Il��=5�iKF��R���F
+�br�ģ9����}+�t���<l�Qb����T�K6�J�������zŤ��� � 
��U�;�*o�M5>T�
+Oن�li(����
+n��m
��BGE5T�Y��Ruhk��+Z_&��
�`�QD.�O�S�tj�D��I��NB��Ӱ�A��~ƭNB��[*D�G���.�<��	;�>��1�
ܡD�U=��Yd�nȘ�M9��'��U�����bn�9T��
��{cf.+Q?6p)�Jrm@�)
,t��Ԩ☎C0t����\䆔V��3�%�B�
�݊��ᘡ����KB*��!����d�� �/c,D��L����19�=�3��;��� ]j �%��D4��]
�
б�9V�w�Z�Q�[:DǬ>�
+���"$CG����W�b
�S�w>%��y���D_=���|�����tuY��1	�E/F&/6��L#!5p^{�)�+:2�rDiX�k��t�m��
��F)���
�9nu����<�͉yT��p�@���i
�K\䚌 �$�`�o,���f9�d�}�l}�Xf����SJ��4P|���&���B2Z�cZ��.�O��\S
NY?I/
h5ψ���>��<���ݙ�)F�E�ƈ�ޱ2M.�AW�a7f}g��	������]����ˮ��Ěu���f�MN���TtPp��j��~%�.�B�A/�JXN�Hi3����9g�y�?�.�[b*.*���D
����ZW�Z|J&(����V~W��� ����㹭#����=
�ӡ2\�c
��>G�[���z!誡���m��.��w�S���Rh����l
�H3������5��>���6�w�`�����%k�B at l�{F�T�B��Q�!W
�{�=]�v1����tm�q
�tόo��	u�Q�
�"2��B ��1-�j���ĠkBrl�s
��Pڶ���M
��W�Qq����&���15:ѫ���&7�˸
c���dG�v��ep��)��� (��a
T��A�Cc<-������:�,�p}�Z�]$U�.1!�J!sM�/p/��UBR�sir�.��+X`༪�K�ʈ�Ҿcf�
]#�v� ����Jv�ܞ���Y���
+
����:r�¤u
��V}�*Fu<⦜P�pCPE�ߔ�7�Tp�"
�X�f�f�p]Ck�[���^̂�u�F���E�Os%f��Mz�g?x���=�S�.�h���&f���\�$��9é�-�Q]��{W�Ŀ��Y������S��
�W�a��F
;���vV���Q�W9��q��J
�-a�)�:o�a��b�[��Ѷ)�e�TÃ1#�5B��Rmb^�f�RE-�����G
�c!��t at 74e���̒�v�#�5�k4��2��Բ���s�S��
�U��irպ��2
��lط�Y`��#��e`�z�=��w͡�����軹!]73�,���������uЙ!#��4�͐v�ߗ�ۓ\~�y����H��5Sa[qs��6�a����.�p�H��M�}qӐ�}�>�	Y����%-I���n@[m*���\2C�:�*x��DG҆�l=���_4ƣ���
�o�R�!���P�����.2����mj�(���y3��k�=
+>r]�'�lҾ�F��fu�����.���b::"�Ė��ڒ ��6�n~�6Sty}��yTp$���@������tP�!��
�"���6O,�6��m}
c��0��
+���OJ m���
ݿ��8���M

�	0XX�c�m=
+ at W-Ы���G�\ښ��vȺQ��n�WʇاE|�lffe^ĵ/
+���}
��M)�(n���f
+b`�L
ʞ�_s�y[V^W��=[.n�
+�v�,n�@��)I��9B�}��&�!fr@�� mW�q�[Vާ 7n������-�FZ疙7d�l{�n�6 �$5l��]'���F�<�/ ��@<n�x�
�9|�
z��e��8]{��{t]G�\U�7u���
+
��—��m/��m��C��v��?���
�
�E3�+�*O�Py�F
#�g�CrjK�f?
�͖Y���j'U���ӵ��~�-#��
��mˠԯ呜
�2��Q`df���ulP��M�W6%4ꎹg8n␶����Lx}����[�]5�aR����O
+�ޔ�7���A5��5:�II/�.!lʻ0ޥA֪��镱�L��7�j��� Ƕ8/V��P�ޮ���~̖t�
X����t�"C^�|ϊ�i�} ��,#�a-��7G,\�P*����
�9�#4�U4�}�\�*c�7B�SLxg6^�*(��e&2�ga"::į��:��V��cZ� ��Ƣ�-d��2�"���#:a�OڅW��2���y����u�@OX��T� �Q�K}W���
S30	�y|���p�6��p��5wt
o����2�Wқ�
+|隴�m(�s���Z
����/W��앙	�u���M�:��N��+��Ƈ��\Fm�/�y
n��3���
o�|��=�����V�i�[+<ꮓ�۰�k�
�C16�[
��#
�����P�T�P����H������WDt�qK�̶M8������T薍��;{f�]��
_�.�Q|�Μ�%d���"8��f�85S;F~k�ƾ� >
02�Z�%�"cV��{@
s�.�B����y��u


0�� ���0	!=�:fB���(�
G�l�>(w��
+֖H�q[�l���߶1)>9��:��\���n
+�`��2��a�����X���|ێ��	��z�S#0ݸ�����D9�$�=��8tuZD5���]��~^�{b��=3'0��	�#]�R
���ߙy`�[ض���.�,�i&��)rqd�]�|3Љ�������]ۺ�[[�6��}uʞ��E��;	w,O��]EW��s���0�
miG�Cڱ����C���k�������������B���4��5�(&d�
+�$GR+bN��[	WU���մ����
�`�N�?\���>�Y��قĬ��](2�{��}�����F�PwѪ�^�^@el�	5
���"��w�^���[�Z��ߞ�פ]�U9�_�3���ɏ�^�c��exف�ӟ8�M}_�i�^�(@��1��M
E?3b�T
�YD+4
�V��~�uU�
�(!�>�����ˢ>˿�ï)8��a�iZ��^d�mh��
���y^)��0��*��EM
E%���J�h�iR�$t��"C:����^�trnƇ:�}���Z7�H� �nh�-3
�D�@������aVǗ�"�t\%k
����ɗ4��-L��i
��.��Gl-��tOw�g�����ЛF»Lj�v����\=
Q;�
4����~����[
B/�j��j�P�S>Dw(F�Z�D7>�֌N�4��Y�CڗՖTVp�O��
/l��Wv<�ʸC(�u��V�C>*��k��~���*b��bEllښ���)�R�Ҳ�K����b���z��m'�����r/���=}1˰"�����r���~iI,
]a�{����HHYxރ�5��N��I��i�8��ep5����h�8�;@
�W�	�W&x%��nD�<�_Ӎ�X�c���юI�*;؃�v.e���"y+ț���fm�P�nt"�V��U�Xŋ���l�YH5�dg��IJofX76[��ʅ��U����F;E�Z���%`J39ɣ.��݀��&`�rIؙ�u%���%�_^�ÿ�y���ϧ����[
+h,i���[
���ҝDĚ��-���z��G�
o�3IC��g�QI��(� 
�xe�A���l|�e���B��t ���S�5�����f��`��J�x�%4��.izVt�Z�E^��syf�9?8P2��Ls����
�T�w������	NW2�����H�7P�!����yf�����k�Q⛣�[G���).X7;�[��/ώ�G�s��/��c��Ҋ�K3
-��ѯq	��=��"<V�w�$~1;��Ty
�LCQ�M>��L�?�oXs]�~�&�mZB�g�k�
+��Eyqb	��SVs(�<�\!�${��jn�:��U�
+O��?�/�~�Ǖ�O�^|�EE	�r��0����
�A�ZH
.sh�%\�[N�1�����E���t�`�t�`��F�����^0�}�v�ƒ�
���5�E����+�`�u�M�IS���9�A773�
L� .�qp����{ng�3 �:��A�ДG? 0k��'g0�q������T�܄-
dN
�o�]��qz�C�E��U{�
񺮛�ZX�O���5&�g�
E4<li�<k�����T���2-��_���E�⯯=�~�륂O�>���<�

��c��7�&@9���R���i�Gd��z|��^	������o ;~�A.�;/��&�4��
��[���>쬵׬�5���9�cww�J
Hw��݁ "�4v��	�ά�{?���>�<�G����3��:aݯ@�-��9]w�s�r�;�y�����z��8��Q����m���̴�
o�
Ti�K;�
+��+�D�;�x�IJV�/Y�]�A��[Y]7=��7^8�:xRox|a;��q��77_�Oy9���؞�����%u
mU_�
փZ�r[jti��A,��]P��$(_����K��ɿ�2��8#>T��ˬ�
_���*�!�t+7��Ȅ�<G[���x]�\�5VF=0�
mE3�Q�pW�$��{���1�i��f�w�3j�j#A�\�?���,�)�1?��Ka�qb4�'�����f9vr���X�wB&���
��B/1N%S��3�z���������{	+9�ys>P���g�wnn�7�s�n���~��qx�4����d�ލ��^���[O��m
w��Z;�+�Yw�Xdlh�Ya�k�����!���ܡ7#¨?g���&dt�+0�w����¼�]~���ѓ�
���x�g]�M�Җ���AA�� 7^3�Mj�"W4��qjg"��*Ǭ��Džh�S8Z�02���˧�O
9�wJq���9�}��p󦣃�c�
R�$<��W�O���/��{
7'�Z���{vM��9Y-J/�w�J�ݒ!sgO�ly[�NUI�B"��p"S$�L��3��q�@:�����Ⱥ
�����8P_�������ʈ#��
%Tд�F�Z	A�g�S`�[I������;�r�v�����{�t�����7��c�C\
馀%t�H�q+F�[��
2�jVM�d�n+�P����8���3��
�9�E���O��>0�����p���wY��D��>�}I��/�}�լ��
��W�m���)eg�����ߗ�i�J��gcM�ӑ�[�?��p
�;�� u��p
d;�p�8��$8�������S`�M߈���@�v׶�/iZ��kJ
��e5%�
��oI�!ǘpJ����'B�CDJ�/q��?�w)pp�*�.<V�����_&9�|���Ż<�����/A7|��oSi�pY��uY)լ��7O+K��}��:]��}
��!0��p��%�4�
+�R�K�j�
Uq36���/���8|�88�:<|
�7 �
��������}�����.��M�U�<�A����9<��S��O��	��E'�~�
D���c�
� ҍp�w>�\�g�`�Pƍ�±��p���l at G��
�$lL����
&�Z6�ܻ��5og*}pL�;8Z� ������g�@7^�"
�y"
޹#
܃?�G�����C2L� Ǚv�j����0`�CÕӒ��� b
`FԖ�W�?��O%q��Rp�M��|��aq�7���.(���g���'���G(�u4ϘZ�7>��
9��w�}�.�9ax��x�^+L_�T�����,
+^�^�
�
�oh� U6-dS��(��[i�y
z�N\J��>�
���}f߸�(���{�7"��~
���J��1ʺh+�:���
��?�o�!U���q�Vb	�i���Idj�/Aq�>ь=pN�����o��@��|��S�;��e�H7��ZU�f���	'I'.K
�4�La
�Z��
E�� 7�* �ࢢ��R
R2k~L����t�=��SH��

>�E�v5W�M��.�X	�j>�2VM�WT�����͉��jtY�t�?�E��q,�T��W$�?Կ���?D&W��U~7��<� |��*���/���4y�����YT�	���P�����
nmW5u됥u�($Q�2<��wTُ��.>X�
�7���t�
+���*wx�txp�{T�CD��ǜ"��L���ׯ�[�����g��<W$�Sj�L�e��PJ�^���V�Q= ���z�&����\��
X��΅�^�8�oħ������k[��i�]�
���<����;:Ѓ��E�V
��6/g�Z����|��S������"}
����?�'�P����ꛑ9��
+�0l���v<��OG1�[���2��t��p��׬la�%�ږ�Y^Y�$�W.
�p�]�e�
�s.��9)��m|N�crn��@�.UKG���D!ҡ�B��
g��V5��2n����>;�H0KY������ޑ��:�?�T�/Pz��z^%6�w
+����#���0�͈얻��{�T�+w�C&Y���T��)�(1���
RV���k�f�-|�t��Md��t�a���0|�j �6�&�8�(����w��ދux���
�����T�
nh�
h�x�X=]'n��4��RZO����M�[ݤNT+�h,�G<U�	�x
�U�{p4�abF�k(�˵B0��n�N
+�uݽ���L�`�Ս ���"���@>,����&�o����u��\���*>����|�#	_Q�AՕ��6L��	��x�#
~l���SR�d��u9#��M�W��d�eb��DD��
����mkU�TTJ�i���xJ����������m�h�hn��
l�@uB)�2����ױO��--)}EU��Q�t�ýc��Z������ZQ��F�(]��������e?�f6��A��C�WDF�w���?F�n�����L�gg�]+k�U��
|��8
��fB�ʹs�f�`Om|[[[\�p�^�f�ʌ��έ����Tz�ћ���f8xn|�!��
�~���;Wq��c��y1'i^���T��,2Aᚺ�2)�)l����I�m]Hk�XV[���=
�o��m���[
�h�
+_�H�v�������⬡��|��
;�j�
͔1�VKJ��(o�X������ղ^�\!��+�����
Q[k�@GslOWgBw�
�-����$��vyv砎�3��
I� �-d�yI�����6^C�PW�x�1.|�T-؞��X�6��e
��.NdW%�E{-�}K�8�� �,f8�J�y��(,�+�Y��`�+��Z��UmC�-à1����TG瞙��
����i���z��b�nc�cH��oK�Ƚ���Nifc���٘®3Dc\M/hz�Y�
+����U���)��6椈
?Ӝ��~y�1�Ȟ
de�W��-d��
����m(���P�P8�8���$��j��:d���!���
�0؆ޒ4�lڦ�����}	zY�L^�
�����R��HI�AT�3�Ə�7�#T2Y�pp��ޙ n��R���[qzI;~Q�S�ah�n��X;���Tu��lU�]OΞ��u�m��a�,�YqK�
+��h�4T����c̍5��*�P�QX�y%i"��O�tb&d��)	#�2�\���;2T����㨠͑��%)!lyT _7�(��=�9E
�,)�҉���\QGOVw�`\]�ؗ�:sK�>
��G&��mIy{pU�(���'���=eN)l�7��hj+6F��g���˙��L��ql�d7蓦-������Q��jR
P��=zLC�ϩ��A�)��`�m������k�����3�
�ڰ �P�,8Բ ��R�J/�2���)�q �:)�(ldA=8���#����ι��"�/a��*oc��
�L�Z�e���:��ڗ���-5ݗ+���)*�b��<�e���2Fڢ��٬�]T��ۦ��M
u;�Zޮ���c�#���ykjN�����^����L�A�^
�dmk�ЭqJ��pQЊ�ql␾�4)�?k7p`�*~ᬘnA�lh؅s�F��E��� �Fء
.K�
+�:iU�����������Q���u�+u�FF����r�P*�Xk�8]i3��[-�R�f�"W3P�1
���h�`\ւ��Z!�rie�DY2(
aJ�B�JZ
2������uG3�1<`�.��d[n؊�Y)�z1�@�Z��R6e���A����
Ǚ���Ҳ|�H
�<X�;�+r?P�7�M6�]N	X�rdк�.��[���1ZҊ��,᤿[�D&�9�ƞ��	�qj��85���*�1����R����:�q�h��	�~Ζ�8lo�wdb�؅�f.�2BO��Kї���
�r�O���,
C�{�
"Z���
�,ee��h��RJ�Up=C�:�_.�X�~y��{���(楯
��4�������9�S3z��^��
�JH�qj]* /�����!R�t7�k�8+dD�)���f��@eڢ���3�տ�n��ղ��e�_��R
mJB�����b���j�q��z��>
�iJ)�檊���ʝq2dM��[T7�gU�zI
D�L�]��!v�ʋw�
Ȇ�8ͦ���
4б�
\��b��u
lm�1ђ�~[�����
�y��q.z��5�Y�}:ϯ<�ᓷ �
��V�B�t�u~DZ�	�
�o����fx���<�gnN}�z=�`�Ů!e��ġ�JXs
+N挘�y�Rӷ��E�t~�o��Wf�Y
���g�º�	QUg�X����\���Л�<ӑ�f�;��?�
��J��Z(k<����
�W�-����aؗ����3�o,��gs
��Zu��4�x�ȥ��Z=�u��qOY��&��_
Hyc�?_N�!��X�?���e�QN�U��
�7
/��/��
L�
�5l؂�9'efmO4��V����2�� ql�/�9�s3�p���.̴������|�)-���&b�k3�M��ؕ�c���AjԚ��8P��=;RT�U��m)-y�
`����9�zr���O[��.��mI�翧�K�NR@;���}�O�d�n�*B�]�G
*�Q6tS���9!��:֓R��|�5a��6�Gk|�{>�A��P��S���Ʈ	��
�(�
�ˁ��5ߋ�h�^��b��bw��
q��BSڣ�֬g�
��+�s�%�8uY���!D��8��K�ߕ����P޻��!'*b��1�ҏt�L�?@���@���:]Yvj��vGq1'ئ��
*H�GZV�d?:NV��t=Gd�
�'���j���Ԑ�4��i2��@�91pQ��J�M[U��)�[���VY��k�.�
L��,2|ؖs��nIP_f�r
��
m��`�XїS-5x
i���ƨI�.b]NL:11���l쁊��'�G
��������RR�q��x�x���f(��5T�U��U⣭���6-)y_���*�akb���.��D��i�qD��u��8Ҧ��|����Z,��
c6���#]�[���m�a�m
+l̺�)���)�96

t�!&�5�*�jf��V�S�o��|^��|�֟���u~���:���
'
��c>�r�8�b
�UaRu���+_�JR�Bo^�lwV�]K�_�W�4��,|o� †����ꖿ,u��Ŋ�Ù2ޡ�O���y�SL������
�U͂��j�kZ6U׳��� n�B����

uq��[��C9�OV
:Ӆp�+
+�m���q2*��FXiGc���
��j/�ú�%��n��[P����NJr�7}%�+��c�`SM�}sy���g{C�$��_�#�m
�]��y��NJB�4׹�Ȑ��B���|`���g6���)���Xz�l
��ݓC�l*rⱎ�mW�bw�E~�1
����j�G�z�>��tK����B�.��l��m!.�@���N~4J
�m����zk�:���*���02T�	��F?<U�`6#sW�	�
�v�m�w4�G=����3ה��P������yw
j#�ZE(���"�-1:DR���
������du���	Y���8Y�d�#�ɱ�sa$&��(yG*J��
�ma_UF�s�O�6��
�Y����
'ŝ�٫P��.�G���)�g|���g[X�9ۜ���S�
+�K��$�h�<��� ����F~�,c
���lJt�mb���������g
�H�"|��=R
ydd��:Z��(?`�'�q�3��|���<��%�n��^;#�gJ������$
��%��H/��9�bS�f*�m*Fޞn
�{�J ��rtȅ�[t
endstream
endobj
232 0 obj
<</Length 65536>>stream
+�c@�z
�N��`��7����ծ,ϝ��Ѝ>���0���@����/v�9���#{j&��
��
��2 �:TN�Ԝc#
�.�}��� �c~[(��
l��*h�=��`
rd.)=�++����_NQ���U��󭪯KM��gT}��enI!~k�
�
+l(�c��i
uC`�s���ji�
-�:�"��+`ޓ��O&��^�������
�1j�
�f�q��%��
	��"���6`��Q_z�ڃ
8�p[ؠ#)�XKNۓ⓾�pi�
��
=&zC�Yꁻ^�ذ�qZ�����|gce��!��4���ή��� ]�g��r�\M�9I}�"e��·% ����G
ui6�q��}�V�=11lc �).�ܖ`��Eh��6�۹��]1#q�
��	�rs �����|�!��V?�}
���G�Vg9���^^缋�S
i���n�K�nO�'?��|>��.:BJ���\��x9�@�w�>�(Q�*�	��
�����ޓ�nS��v N�
*�Rwet́��.e��.gy�5���YnK~v�'&
�����Ĥ����̗�.g9�C
:r[�0�u�'��\
�厴��҇�X��~�џ�fg0���"��(3�.��?Y��>k�mQ�����u!�b��Z?��қ�aW���m�
+x"F�� �w��tǪ���Mp�v=d½f�^��nC��jT��

�oLy?Ց��
�pn$$��}�/���;Y:�^�Jr�.'pY��_y���
��RI�?

�]Y
�3p`C���vsGQ\��w?���O�
��,riLѡ;b����PA�e�G�Z��d"���΋�`�o�L�߫%�G*rڹ��q p�ts�����w��T�}���&Dj�#CU��TI���?'�Żbp�f_��l}����U��LU��Y�3��|��d$��	��f)�K1c�/�m�-�͙�K���~f��,��qR�rg��#
)�PCI9P���p�P���.��(-역J�\�k��൩�\_	z2�s����H���cyƃ�N��U�
ڗY�s��c�M���[ ��+qWZƮ`e��y
�i�
+|���/��t���l�n�e	w�%Y�U,�r�c��%Bx(��!�k�Џ�~|�����
��J'��P��ܗS,(o}Y�}%9�׍�|Džn�� ;�*��
%3��|�:�#f���n�q�o�r��pAW��j⁂�h���q�*VΎ�(`�vKB�i�N~�ߖ
l�N��7�	�:qG\�b��}�Ԗ�-��Y��s�o���44��J�ʧ	~�j��b;<�R�O>
G�m
�=f�r��p�w�ѡ���)\\�X�!��U�>
"����{b���*)����/uU�����@�#oQb��F;�(Ƅ���8���<�D��y����ύ�)���
-Q�5%_n
=2��>�ʩ�r~�SC
���P�?�2
lr���3��0��g?wC�����'��ߝ�h������n��#
*�æ��HYQ����U1��|k�s��-D�m���m���lt7>�Ny�Ͽ�^N:Tg/��_��_��@�
>
+���;�
+�W$<�kO�����u����zN�LC�ceʋ�96�
�3c;�{��x�b���k���P		������n�}죰�-2�?�
��
���>݋��c�Y>[Y�"g�
3_kKBo)����*���
' ��6�:7p�V��(�󉞒
�{��8>z�?㕩6��N����0>�-
+�Ú(I�\л
5jU��_솻h+�_k��k����
+�nJ(�����ʴ'�JRⶐn�
�aB���ߕ����8]��xO��QZ��p��|[�����_���_�˒�6ݏ��%��<Y�jd酸�6e�
�Gܪ���Zv�A�I�;ߍ�f�V�3^������
5%�f�R_k3_
ѣ��4Ub�d���C�����=)&�`�w8��ؑ�������w��
^ ��R_[�P1���������~��틡
ڒ���D�߮�m��ܚ�J�
ԏ�=]��.��3�r�t̂�n�s��M��Zn#DH���e��3�i�g3�6��@��S��T�폑S7�X��>J�� ��6��՟�ҕ�8�
+rٕ�P���"S�q��Zg���[��n����|�����
��MY�����Qr�J�i�#�e���V�q�5��Ux=?-�{�.��r'��TWB�V�R�� 8��q�-&hc�(`��]`�6LȽ-	>aWAI��g��
���F�2���	X��2j�aO8���_����5ۑ�5ƍ|������S�����O��L.��N'9�Þ�Q`
a��K�
�i��g�n��������+�
�g�E�U��u,�rg��r[��j[��VoA4��3
i�;R��w��<6A�y�����˩���ɚ���g���o����p��	.��b���ޑcB���#5:�P��<
��.��- �S�?
�Y�u{j����	1��:�a—�r]L5���p]NK���=�U!|�F���bܗ���'��П��?���
,��>[D�h�����I�ό��C���{��&^kʿܛ�O�?ۘ�h��&Ɔ��>��Z��
���_l� ��e�����2Z�ϋM��N��:��TS�)'�Y-4��@qȓ�V����&�<
f�>�"ƚ�]�?�!}�%"��(���h*O<��M(GFݮA�9P�ag��ؗb��iJ�К�tK���P��hG|*����\�l<�ts��z��2_��b
�C>�����Ԃ
�5L�z��G�Xn����v�I�^��8����w���G��L�~b:/��w1-�թ���I�G��0�*xO���U��%���.�Y&�
�����������}4J�Y�*�1��FHI�2x��:Y��j��l�H{���
�Cv!m�6���oO4
�U��o�~5S�x�.���,����뀷ٔ�*
��T	��1Xyf�f85Ր�Q[
�v�
�)]_��W�-�&1���㞚 �+�h�M!�k�⥩�7��n�႟���p� �$��Cn/7f}�¼wa�V)ҿ
|{�"/b��'��I��엺�t�ɖܠ�^���0���)B�?K,��0>�p�0�a7����\U�����3�)o也�m�cV%�p� �ɦ

��� ]g��O�
+����
9�sO�
+>�"��\-�?22P�#��c=%��+|��YJ��X�ߞ�&L��ғ�xb��.'K�6%����,%9��=�3��p�a��:nc��Y��_�f#�Ě�
�!-Y耹N7�
7���C��[Gp!�m���za^W3�-��z�뫯Jx���|�ُ�:�S�.u��
)YU��d��8zS�H֖f�
�E�6B��3H��m�����sw�jSrs��)���+٠�^b��= �0�
+y?�\�fKD��D7�M
44P��+Q�3�0��n���>le�
ojF��w����;���
	6�Pƅ

��h��n��RWֻ���7�}�\�|?>�ؗn��ϫ� Džּ���^L��!���
`E�C���4Q
{g�>��r[�����[})���
�d�.�G��V
r����n����Z3��7�=\��]�*�4�	�P��-�q����75��@���zR?�P�owA�n�3~����5EQO@�o~��r�f�C�r���"��h$��PzO����tM�
��
]�F�/u�?��S �q� ����$�NBg��?uG��Z�x��.d%�\��n�Q��Bh����:�]�EZe�sc�C��ڏ
Z�F �L�-K~,eGݝ���`�~oe�gn����@~�
%$[�s�����e<[n�yi
Fz��o`!f�
+�դ���ts	�`�+�����v�9�i_A��W�3�K
_�	i�׻��N��^�8�}9:j�6��ܐ�3�U�$B��L��i)z�
�j��3�Xf�m�p���f��HA������-��d�uu���9��f"C�'���I
���j�
ٖ8З��؄O�
,����ԄS#�7B����	{2 ��p�S5!�\K��eg����Zvk�9�T�z���qu �d��|`.�xx Ć����
-�O��煖����q{ø�])>t�!����s��l�G�kxCm�}y������}��;�P�0#�PJH�m��8Ә��HMI?T�Ҷ�p_6$���6�����e�
��� �m�X��
x�mq%|e��a$Z�S���,��v~:P��ό̂m	�{[�
+9RUҖ:i��']Y�S#䮚y�LSN��VR��1���Ô�3@��i9{cE������%�ڲ��[#��
5!fkp35��TU�����my�C�p�
.�A�l�
��ɪ��3=�HO���u��)��KK�X]=�CYs� ����� Z�
+ڒ�}Xe��s}��h
�z
��/��{�y)��t-�\O�X�N~3U�t�)7�w��n�D]���G�Q�e���؈
#9ۮ�EM4&���~��=�Vg�5�A<TՅ�#��6ĉr��c�[3�������OV�>Y��{�!g��;��?p`'������O�l�u(�k�+��tC҃����+������/-��
p�[�r|̱��y:��ޓ�BV�s|w��'ڢ�#!����龜�p��ĝiѩ_���s,̖�k��w��S��)��Qrܺ�8x���]�)�G��Sb�.�i��V��2Rĉz��@e�{���/
�fU�´UQ���wd�_��؄�~�?<��/<���o+U݀���c�q�G�.�g9N�d~\
t�(#
�K�])-�>�
�8��?���������rT�|G�륞tǥ�|'�83�:BM^�B�o	�� ��WR܉� `�lk�����J;$諹Jp�"D�ٗ�f���d�$�8-�P�̺��3�z�)"�ؔ���^��bs����G���ߺ��~Җ$=��ҳ7����N����xlb�۵�%:�D���e��0!�@.��tQ���Q�&.�DKJ�6E�\�X�
)&xC��3u?�b���.B�����#�D�P��u�r�㢶�=њ�NB���T�����m �����.�!��a

�0�#�����u@�
�X���v�'9ن
s2|�Z`q-��^ⲯ&h��1 [...]
+N�� �o�>��xY��v�+�'3O����QR��*핦>�ˮ�@ׅ���������rFȣ��dǯD���<�U�3_�R�4�1["H�z_�?��{
+?j*�M���
��Hx;X��&g�����63g��#�E=
��<�k�I'&�|�U�g$��H��LⱙVt9��\�g"C��!Ǝ�M%9��"��!*X�Lzz2AE
͔��,���Or��Jv���wA��hp	 �%.v�����s�i��$0��A�gcU�ݙƄ�P�3#c7�0�QZ�M�)X(�����P��D}�=mY��ZA����WS���1=�X�H�
(�˩�gz6|WA��k�|�n�y�#���
+	1���G�m�.@}^j��L�@=6�Q>GJzֶ��
w���`��0!�#o���Кg:b�	��8`M
�i�
��TMϱ��"/̀f��\[L��<NI?P��<W��꘰�|wMe�馬gVi�߆�9ߕ�q�.����,ܔ�b�$�����c-�*�w �m%%�9��2>hW���czp�6Mm�][Wua����ZRrn"�YŐϖn�������"zy.bN�
����
&'�KpQ�|�u�%-����K)�Bb�T3�w�6�
���_���Z&^����엋
��3}9oO��
�9W�t䁦(zk�u<�J����)�u�@E+�s���l��;��s�Ĉ���'
+��3�P�������1��
*�a�S|��>���Xy[c�x�

��~=
km�7Ն�ؐpA;#%EG�
豆��%A�/�B?��qfdڴ|���:٘��x
��4�C)"���Ȅ˱*��[R��u��:�[�򬧆Ҕgǚb���m�����>�%t2������N����4�Q�i���S�R��+�?|�e��*(�c�M����5���X�,�{#��E�
�����h���x�#%k���2���R�}�X�l3�	�Ң/����
q��\kܽ������o�FҾ��h}���-g$��-)��b��uű�L����Q�"l�2�|�y�+��J֫��,ǝ!lؙ����HϿ>C������%p��O֥�7V&�[�Y�(��>�;�u�7��D]=�Q_��Ȯ䁎���#lºЁ�������� �N
���n��RK�˓��3�!\M�2O��q�B�k��rn�ۥ.��?���
+af#�
��s
5s
�!*t�mI{`,��Ŧ&$����G~����Q��4�s�p_q=�
�
ԑ��(9��|e�Ў#��m1��*B{_h9W��a��m�7�"L��D����6tn��~���DL=S������S��ƙ��~T�� .�j���+E�Y��[��V��5�n���&u=���Px0V	xH꫙
=�c�V��6� �#uqҷI.�
+��
؀�1r�����
sn���+������ʹ��{EP��!�kj��-����S�rfb`�c�1VI���(:ܮ$���<YE�[Uu�ߑ��:1rQ�:�r�Y�u���Vc�Q^�Y�g�u-ן�����C%%�F��9�DG˝놹��@\OL�"'�eG�����w�njl��4�p1WQ���l9��O&�X����}��%����x�C}%cM���
Z�Yds�s	��QD�bw��uvh �\,�5�͗���
+�t�`G`]KϦX�oK\�Ū�̄앁��b73��R��0>lg��p`�\,�Ô��ARخ��<�AY�>J>��d���w�
F�m! ���t� �����j|챖�ڕ�mZz��,{` �
�0��!Ї�ޔ��"�DZ�s���*J�}��5	5eGELؖc-���ނ�������{���0
��RJ�\�y�
�\D��ׇ�z4ې�v %D��s^��)w,�.�˸�jl�R_��
�eC
��,�
b�{����S��i����j�k�5��T}��0�˦D��I�:f�U��ܐ3w��}
��:��[��sT�����ym�C�j:��\)w_��> ji�c��|b(���)}�
F��w�>�Iٗ3l⑎?֕�M�������抴G����K-	�.4��sC)~���N��>��qb��w0�
+�
�|ޖ������j^��؀
��@IJ�
��<G�
"�)�����;2��
��/6�P�=%"|w�.��:P�|��
�^��j���F�k�09�Hπ~j7Q�F���c���9�ߦ��=5�2��~�� ��hy�uQQ�\k���^��m9�ӮC���ȥ��y5_Y�1B��Z�n�*���'}Eƒ��W7e���+=P�����umGS[�z�pb <��rj�PN�
҉���0�@K]Ζ�m��S� ?�m�V��2���Jy��,����X9�^Ɗ��$doH�W��b`���e�ZjEm���y�]=%kc��p8^ŷi+� ��|����I[rxĆ
u2���Tl�`C��
��/,�M��K;�'9���
���51�v0ߍ�
g�pa��^L�����p��'���ƊCvG��
��Z��7{Qހ�/�g���t�	�kiY�s- ϲ1�]h�l��;26xk��v}��vKY�]�P�;��jS
��#~�p�^hp�WS��
y5vN�O���VQ[C��->XW���󃁝��pt�����-C��CM	
+��S]��fԧ���4V~��j�C�7�	KBl����ߦ"�
������
+�gZ㞯
+�?
� 
2V2V%Đ�!L�����5LJ81���^��/'YŻd�D]����|W@ڰ��B��T�̿�d�R�(/p�9��rg�} W��$15��q~�ӣj�]Z
�',�9
�E�HPa�ҴGM��w�5Ӌ5Vf���l��� 
�rL�fj�?V��t��Qj�Bw��\[��\{�皰0�h
��m����(��iQ��l��R���<32N��4��~�EFn���wG�¾�0QK��O2L��<�vb��՘��A��R{�ۙ���{
+j��Doo�����|l
ƅk�9�ZL�?
��� z
{}&ts��s�Pݺ*�&Ow�/
���]�
+|�儀u2YY�(��.I�'��$
i�|�
+T���8��H_N�
�\�^�WT[ M������z��S-)�>���������vsUŞ��{��9׃p���v�F�X)�<p��2�{:CC��1	W�<��lM���%�'�8���k-m��RR~��b
��Fr��
�~�X^��r��l�K9�g m�^�����ߙ7}ޮ%%�h1�G*tȾ

�ٰ]i��MIH�2�Q����A���!ቡ2��V��W ��cb�
pj��l�*��(7�Ԕ�FD�i���3�
��W��(�J��?w[�N_�
�3uߗC����
i�"�/^�#l�y�[C��M1!t�
t}F�e�
�ׇ��!?�	q��#��CmIѾ9��规?$<��K�p9M+��u��l��Q6
�pu�������*�w_�Juޕ��^N�
�g&�H)� ����M�6M)
�>���|�����s[���W��7e�4S=�iO�H?5���JlĮ�?Y��d�>�Ŏ���H�E���Iƺ<וnTܹ��xG���
��h���*����Ye��C-:�
u�U�{]M0��c�����'"jĝ�"��#�����lF>f�4�L�kj*p=��I�|��
�t�#e[���m�[Z�
��v�>^���Y��*L��
��!bo
w�+J�.�84��ehI�`�K}i
��
���j\��4�v5'`�#�� zs�b�wd��馔7���c ;O���3s5WQs�PY���V�|��?�
�.�}9T�@ǀ���ǜO�q�T�_��=1��@������x�M�����9v�*�F��H����#����B}�bc���
x�3�oJ���^����r�Z���j��Xb.fh�[�ܿ�
#��d��(.i��vi��d��=�c��٧���D ],�˾� [...]
+<��C��d`��Z�u1S]m3T1w�Ԅ]9�k�;�U?���~�����~����.'K(�Jz��0)|[N�:�#|�R�Ǟ����T���4�w��;��Z
 ��t���@���
��&aE�ն����,�<T�[奅�~M��|4�q����\�T5�#U[ÞB ���l����U,�M_�ߐ�㍵ G� ��� ��d��xn���LH:ņ
���J�J�k��#E��虀7��&*��*j��n�ǝ�y�*r��?�����p
쵯����.&�$6M	vOY��2w9��쏓�%EA�#���A|ಈ|�f�
9�]1����
*�q�r�?�{�"��G@�':R♡�m7�V��ѷ
��
����#%)盙�wi"e�)a�������k��̴�X��P]v�Vg�m\|�e at O����!����<�꭪�t������̸ă���o
\�?keu.�U.��#�� ��K�����;�	+�~�.����}�c��
%��sW^�����#���4��`�����
��>�&Z��\Y�8�s;����P^�
�S
&�*���a;zd}�Y�0F�9�Ys��&h����x�:|��1�҄˰��\�q)��U�
C�1�]�N�t����Wv��R�|>A�?9���,�s��¦c�V���mٯ�Z�^�+q�v=!�_��rH�z\�]��c����'n�>.7g������|���۪��j(���Ex
Oն���(��Z�n���Hβ8 �sq /��
���I�Xυ�*Y�F�l��X��L_	z�-�|���l�>O���IDžXG�I�#�����jA�φʨ;� �ls] OV�7*��H�v%�S���g�:
��%��LW�}]c����€cM%}w��=L�<Prr�9`���|�|BL��|����=iQ��T�n*�o�ة��s��0k��3��j�6�m

q���Uu�O���
=`2��

q>AL�鱑�
ɏg[b_�����(��ʈ���轑�K=6��}ff�N
4�B'蓒��|��k7�rwT�(�8!�h�nd\Ns�B��>rW��>5�Vn�}7
\��N��ώ�`��^*�]M�r��-
�m:
ɮ�cwGЁk�I��(
w�i~���h���U-
�"&�������+K�i���K]=5�.�Q)eRJI�}2��Lz�-�� ��)��0�I�����{��Uݳ���}Y;�3���F,��G���wϽ�|��
��A~c��:�� D{^�� 4����������<�*e�S���;�S���1�մCڟsˆVWBK��
k?���򳀂\�������ci��T�|�~rH��M����u���OA�
+i�}�55[3��1
R�a�JM�@i�Y��v��1	�qfm�5�pe�\�x�}��s�aϓ��1=�
:G����<c�z�+a��� }q�֡��v��v��S�w[�+q��òx0�ymA��X�$�C
���&��W��#zzG�#��
>Y�f4i�#��M���n��_֤ww�
Td�������_�^�nl��uOIוCm_���n
<����6)���7�Xy��m���@������U�+����+xx�%�b�%쇈���h������7�n^~K��yŸ����ZҼ5#C�52r@���E�t�;��|y{�׺��r��3��&����
K[$P��@gm�#_	N�7'�ūo`�:���!�D���:��"��޵7��m?���%5���
uls�tm
�����[̵
#����9���{jm�r����;�ݚOC����4�4��7g
bR
+�qh�Z����m"�os�7
��{5�#׆Ԕ洙��#������ip j菪Ÿ���ؘ����!�oN"��6���y��>�cv��y`�	7"s��ͱ����LXR#�%�w�_�ϯM�Z�Z�㴆gP���`g��.���
+Ρ�I��埧V�\�/0��'їӈ2�cu����
?��x�������&�GU V�,�Sȋ�Y$�+؍����Q
�9�
�
3$MR^�qh�͉���.)i��*6¯�v-M0[B��a�z�V�Pa�}k
+S��\O�}��c:z{`�x#���k�Fդ���3���t<�>��y�མS"n���'���R�"a�
�6k�m� ���}ƻ
ӷ�o��G������
���2���K1=�5�zh���9�}M��6E�IXD�����8����ώ�Yh��� �/`����X��g�EI=�:jg�604
x'x�듌���s.
g�-���+�q��Ɠko����2���-{�_�7�z�Xi��Y齾�p�������T�P3��y���s���yQ���1H�A���S	૓���o1�� ���.��3ʗ_󫃳rl�$c�:,�5 ��l�SK�&-[����	V������t�Hm
��M���╗�JIů�W�~�Y�w1���j(��Z~�3i#�#�'7����o��O0GWߑ�NǜZE�Iky��<�:��4�f��W��~������|��A����YbiT��J�X=P�\|f�B�ܘ��\�.��<d��6ɬM[��{=e&��y��
'
�P�|3袌�Ҝ217D��Σ��3�9=�W��=�Ƚ�A�\�֯�֕b��ҥ�1ę�׽'@�\H(��}?;�@��ؚ�Ud�R^��
��Y���m?LI��g��O���w���zI��
�-�)�#�•z_u��0T�[�t癴�їsK�Q��
7	9��kn�����l�����o�N�
BJ�5p'n�p
+^�}p�"f$��R^ �oLv�_|�~��c�.�ڥb����sԶ�Q���׽'
v
5�����z�s䩥i.*h�Xe�(ȑ�Y�O:�3^��o�p�c�:�S������a�V�10�zY�mkc=W�66���2��S���}����Թ�Gvǯ��Et���P�� O��w�;k�|��P���Q9��qq�q���v+b�〦A&�<�SAl����"����f��,	�Y��FRWP겕ڶ�,����8�G�A�����z�O����GT��'ذv�RK �p��:���+i���V1ï������yA���a�
�lm�Z��`�x_�/y_�
������uRX#@�}!U?5�����@�r۠�_>�7��Z�]t=���r��K����Q
+ķ: �jM 휲J8q��
� ���y,�E�� ���<�5��t$�z 
�r<���ګ�?m����滆�Bs�Ҡ��T�{
+vsD'�@
.�i<�1���o~�7
?��]O�EԌ{�!t���)zy�"�l���oL�
��� �pW�F�Lt}�61{V�9-�1�E��]I=�9��_�[�uq
�le���2��(���=��e�ښ��ơ������+ at g^YzE��1A/+%Ĵeph}�|h�

R����4
�Nنn�5���Y	��5+D�]r�&�!5$�tԇE>g�ˡDt������S���S>��
h1
�5�a�DU�ڨ�ޞ4ȸ;.!�X�뗖/=�z�n�P᷑��5���JLe\Kh����VώM�H����֜���R�3�G���P�ʂf.>��w����Jnn��kC��ײ�!=�zi
+qfi
+}�xz���o�-W�����k�~�+�'��ƈ�p�گ �f�,|a����n�W-����h���֒Pw�jn�{�^�WR��>�����/q37	�%�`w]2�_	3&b[�+Y��_�Y��c�A�6�t�0�"7mϑ�Zo���FM����������*�U�����i#�7c��zfg��{�\^p��)��tO��%���8�z`A�(XQ�"��pV����iӟVߴ|V*JJeH�h�YE�]�У
�|(e�a�V���j�� �Th��
R���
�Z�畾zeF'$
�`.%����
PK)a���?/�o��k�爥���'6&E�Fx_��K�ѵ��3�J��
���טs���G�5Y��?b��6�h�S�A5�> �ly�V�x�<�y�� t�z!4W~%��^oP�i���k|
Ԫ��^�
ş��3�R5k�`=O�?�x���o~vyq2�&W���Z��4Y�O%�q#Jf�������t

+>^[ْ���9�ȝ����^jkK�,eG�Ď��qѻ�&z뎇G-��c�~����
�e�=x7���s}g7�[�ݚ�:���d@��ʀZӋ�1=�6�hy���*�U�
�h���NͿx�v
��P�Cj���\�;��3zձ��/�"�E���b@���]�_]|��7s	s�^���K��:e��I at -8訔W�j�a�m�᜻�把�:s��O͠�|��|žhj
����`�o���*c�;o�@�
<�Dn�&�
b
�)⿮	��VB��x�9��
+˒������[�u���
�^�/nBK!���;
7�u�xi7�mq�csqqh������Y�*⭍��C.noe�u���Ǎ̞�Yb�����<�&ag�>l	��V�l�<�&�� M�.Jhq%7�y#����q(VH՛��7}�tc��D\K�K����R��e�oL��
O�>_y�y$m&7�
��
�;m!��yy���G U�{C
�ƭry`���紁��f��G}��{�t
�M�KFVw��EnjCr���[�s@η Bl��*W_�ϛ�5~�y��Mx��x	�u���9^��g�q�ݮ/�g}�P��C��	b��7>e?h�ޕYN�ڬ��`�މP A�2��ư5�VWP'�'���
��;F��6K��}���"��֥���{z"
�&����NBݚzx�Ѹ:�;��
S�n�u
��4�n�
�R\͇�t|�
��O[�Yy�}<8?�`� �D�l\,�#�)����q1 at C]
*z.�
����}c�P�7
+���wf"f
}�
���
�&���y��?
T��4#Շ��_��쉨D$�K����r����ݞ8�2���g�S���?M��|��V֦������┎���Ĝ�G��y��"���u��$���� �1�/
+C����ި��+؅BP�nFL<�_�h�ۇ
e
���F"�#��5��k��N����)�\�q��R��h��3N1���k1
�(n�U$��:�qym�ܕt
�x�p����=�OR!8�����|t�I��ה�|���=�:�aSz7���F�/IF�.+��g\|��b���;�ö/�gH�y�����je��F��D�x�2�@�s��U��y�0����-��RFzG�B���ekc���+q�
6a�����	�3�B_���^ܱ1��V�<��г
[Ӥ��
�n���$���B�1�����a{^3�$�a������S�:0C�J�
p�g5:�>�=���4��rN&<f�σm+��NJ�����qN��
b�j�ⳍѶ��yB�o�\�W�{V�gm��
Sq`�i�Uד�#���'�g!�1e]A�^Wp�ʛ`ݟ�Է�cs
+Udy��y`�Z�4�)Y�X�	�'V�[��~Q�,�C�oNb//�h?
t�Ѩ��
b�ck��UKȁfCB�h�*�_#�V_�Ϭ��.D���VB�#�z~�:����xL�/�kp���7�{ms�X���A��
��Y×�9reh��� \�`�Q������B��,�:j��#��Q��ݨE�ߚ#�[5��z�v5�㓷�%(�O�ck����P�+�z\cP�-u���լ��7�hş:
u�_���Ϗ4|
+xpELDŽo�"�B������֓FSD+�ƭr��
�fc�x=��2N�(a0bz::�%7G5����xn�g]��v\�#;N�����>&i�S`]#j|�ҫ�#!
�+�07f��E��ꈞڙ��H�1��ɤ�����K�Z��9�|8��h�<n�z�S���������>o�^��iٔ���s��偟bV>ik�R��~���髥w�%a��ж�����/���u�ռ�Gə�]���cZi�g��������'7�� � ��u�Ƙ�
+�
�$�g-�A�M�.o�������
+fC�.����h{n66m����Ԛ�<�)m�!�F1�d��

X\��LX�����jY�q�;���5�$tBlp�����
�]2<��*����,<\`rZ/c�MB�=��q#�zT��iPO�F6,�a�¬��Ȱ���+���~	�NW� ��ZBk��1��
�	iQ
��&"a����
>�eS�`�7�z���� @�� �^��\[~�|����P�7�')��O>

�w���iVgx�V��^�� �N—$4JL72�5A��
Ş3�i��y��s��˒ZzK`AB
吰+8+�MĴ��ӽ=���xT�{���?��tX�1�(m�I#:VWH��ō��{�i#�%2�w1��6Aƌb�{����!S� j�����6<�O��ޚdԮ�e��b���~�e��c
߮�E�\eTl���#s�ޘ��X���9��OŴ"6�	��;ة�1•��ޜ��9�P��
ߏ���ۀO��ʬ�:��9C��W��sVl�-�퀼�:�)����z�
�/��a@�lk>~�R
��T��C6���g�|V�=�0e��V
!��Ғ.)	jl�D�ޞ�;�q�$]�
�mOS;:
��[z�_W�ܴ]�9M��\q��^�o�
0p��Մ�̾��/��(�G晭�I�gq�k�S1=��Q-t�����[�e�(�ye���Y��9�q�2�#U@�إ�]����
+�3����=߮�h�����LJ���qr�
�p�+e
\lp��,�Td}1��]Ij�#��4pzR@���BZ�.�%����w#�ew��lD;�
��c!*e�� ��*VK\��H���ED��|�<��b�{��-7�s�@ςŴ<\H���+8��)A��8������`��q\Q|�٘:5k��2+i��>uD��ք�PR��	�7�
�8� Z c闤M����dz���/������ZГm���p�bϬ�0�V��y}����s�\�UZG��[8���ֻ1�*��s��tկ짆U���IB��`�濾��蟠���H*A�gw-gRF
2��6��m�a�U×��鴙�N[o=N��-XZ��qe���K�*,�J̦�YF]��/
���"-�;�r=��:�F^�Z�-��Ջ��s̺�ZJ
*��!� g}������
���k�
�r{��?����9�����q{��,`g=L���FX-D'-rI�g�d8�aC�D��#/�^�Ю��ښEV��}����o�-�[	��
R��F�0i�I�n��Ú��L`iT���]��v>b���ZQQ�r6z�͡�
����Դ���{�,��ޢ�VDCk��8������w�+�G
+��y�^\?8��u������ ^��u'�u���B
O�\�i�	��4�Q��sA
�5f`��S�ˮ�
6޻�)ا-c&T����$��y
��c���v�4�cw:^t��S����W���S�v�<ҞW"�]��36
+�~9�fu��Ժ����ƻ���oa'
+bI\�l���{^�0gF���Jep�M���$��
�'ж W)a�ޑrUBC���i�A�uy
{�������4ke�nNw���l�v��='�	*[Ӭ��'�˱iret�T����Rx�ӕ獇3>1�%l÷Bz)ms_�2�q:4��
Π�3�K�9ԍ�)�
�ZB
+�d��U&ȹ�
�7��/zO��bJ��;�ud���ƭ9\q`�ѐ5��Y�=�������3ǣ�/��K	
�9�|���qf��9��� v��_�x��V^��i���0��9
Ѳ�=oz�9~�;�P#�rVBC`�P㟣4F�쮨JJ��n��|�o]lP��Y޹_m��:
�(ab#":z/ЏU[S���QQ��/�
����)3�Z�D�M[��$����_t�`�*fn��+o(U��}3H�|tΪ<�%T�|V�=p;e2VV_�.d�ttH���Q�}3���[��sI�����;SJFsHCkN�ؘ����M`Jl�ZO��
]��Ն5���A��)���������󨑏���L@��P��۵&-r�>�S�.�h�5�9����3�9dqT�,λȝ;K,�_
��9
?
�<��8���L�
}�Ij����7
��$�
-|�����L{R�l�L�]��*�l^z�?y^4�^  ���^
#�n��a��oY�c�r6ZGD	8��T���͙$��U.	XݎW�3�'����߃�,���&�٘��KHٽ��͌NJOi荾����v
�|�<U�ʒ����ٛ��i3��
+���bZbU`
q-e��d��N���
��q� ���5��曞#k�{���,ڥ#i�cF
���7����Њ��Ӏ�0�}�܎���]��x���JV�I�_���^��㖏�LC��ܖ�ynGL/f$?|�ks����D��Yĕ�m�^�6t;��b&!ŧ"��X
I� ��[���N���B*��4Ƚ���
U⯇�e�c�+I
�:�V�.�@���s��f�m듼����ӎ���ge�4�-�t�q�Y�!oc��jr��,�
+X���WT��-���~cu.1�h���2��B��8���Kԅ�W}�SJbeZGi
޲>	��{9������͆�}_f�%@���n��`�tyHI�O����Y��[n=�/H)�縋�o�g�&z�&M�֜��ɹĄ�޷0um
+y)eq�:v��$�o})�@��ة��<�ޒ�?ld�64�:辏 A��-����>l=����JBx�N,X~�-1=�<�4���Y�����շث��;�Nw�4Su��#�
<���Չ��[s����KK�����R@ڞP�����V��<b)�F☉ӗ4���@�sp)i
�)a 4F�lt����|tP�h�O�.-=m;l�[���yw�������z�/R���2l0
����IH����ybY��B�9������Z8���ZTK�~E?�SWȢ���8�"6����O.X��Jf[\E�K�؝i��#�.?k�F/?���ՇbjRM��'���_��=�|V���L�Ѵ�P^��`y���q{��� O"`<�o
+��
�z at A�
+kX�i��
42;m�#*Z��
�Ѡ�T�1����b����q���3~cx��*�qc��o��B`A�ښ�w&�r~�0(Y�b��ɻ�����ιyT���a#
�~�<��.��w��[���s%
q<5�9g�����	([�␂t#c�aR>��I���w=ǀF)M ~t5����'X՞���7���<�7����o^���ۦ#ۓ�SQ
�#f��'�e�YVWR# $�|��Sԥ	^��$e_z_�/��:
bs�p�v��˸�X���;�|����g��-���>�^HZ$��S�Nٙ���P�(������u2k
�ͳ�ߒ��G�(��:���|�E���6&{υ5�����
��0��5Ԅq�5edu]ڕ0�:e�����6.igq��ò��R]p�{
>+�%69�}������I͟CJL��eٽ��è�
ۚ�T�ulΙ�=)�7�@UmL�]ؚ��4���S*/��% ��y
��
Y;�4<�{&c��'m\t��æ
F�i���hHMy/���d�KC]�fe�\
\��$�|J�3�0�r� ӷ�H��Z=�눔�Os���I�Y
��~n^+D�^�ؕ6�o$M�k�=?&A}
+(Y�~�&����y��]�r�V�謝ڹ9�8��
+q<�`����,�:<�-u<n�B--�t�I���?�����<�;���V��iY
9
�%��>U��^@\
+-0�Z֧���hZ���Q3X��]�C��uq<��A��@ �ښw��9�����V��~�~V������
U��z11��9ZCJ��eLC�@+�}����YBIh�׹�
�e�+��q��z�6,i!��s:62�@��zt�
��W,K�]y�X�p1=�#��ve�@Wk�UkoڿMi�u�
2qF/a��C^�
��
��m�
����*�������Q
�,��?E,�spI]�w]<z�Ih�^W�9Y�h�5�J���In�K��yy�L��
+)�s����S	�<	�z��3+�z~X
��qsQ��ȇS�GʤU�
)�5�d����������?y
���b���f!���Mbf at I�	k��)����(�Y��O�
b���,�F�("%�<���DŽ�G�˪x��
����^�h��"B�sc}am�x���Z��q0{vJ˿y�[a��fd��iӟ��Q��>9bPW^����*>e��'�/m�S6���X�aE(M�Y0�y���p�6�xA���
��S`n|X�wWE��[�y��M����n���
x
7:��S���~��~IMoH90�}3���S���p����gL
W�_\��	���ۜl�.4K�V0�#V���rFfg�L�ʘ1�Sztq�J�X
'm���ª[��S��[b2^bSP�w��S�g�w���A���]���>���
+�!>�i��/o'5f,���
�(�`4�%�Nh�e��n�����?A�cL�=�oP���s�ʥ1¥�QJ�{;��/�9;�9�n9�6Y�{�s���"q�!���	e��m��
N)M;F	=o��:V[�,���#�򮡻1�9�yd�uˡ�
�Z�$e�z�Sf>6e�c��d�9;U�-?k>�����z��������Y迀����;���5�@�!���N�ۓ=��٧��r��󼉃
�0j���n�m����%�3�Vw�.fT��i션^H�Z�䴉��R�VF{����8�� ��: Wٽй��k1�'���eM �M����x?�u�.��8$�4��[
+ryD�C��ŽS*̂�#F
ί��@�{�.�Χ���`'�_4}���������[�佲��C�LB߷�xaS?'�8x?�(��iK�)�͡/&
Rf�2|3
+���;ܥ��_��,

+��J
7~�5�{4�E\���|{'i���(g�f�Dy���{��[c�v=-�5ЂWrV�hgi��[�IA�o����@���me���
>;0�wac�����L�r�V��w��e�
��M"��W"�
ӡ�l�+��
��넁���
|��
+�����,�p��6ev]\J����Q�y�:T2�
+�y��~=�9�L�K��9�~��V���߉!��
��Wv��~�G��
8������f��7;pd�ف#��
�ov��~�G��
8������f��7;pd�ف#��
�ov��~�G��
8������f��7;pd�ف#��
�ov��~�G��
8������f��7;pd�ف#��
�ov��~�G��
8������f��7;pd�ف#��
�ov��~�G��
8������f��7;pd�ف#��
�ov��~�G��
8��
�wb
���د.�c�P\�']U�
.�>� �[P
.��I�'�'J��2�Kb�Qlѡ"�����
:тCQ
�۞��N��$�^lŠ���
�^�''�:t��]�O�]�x���3.�>�ԩsg/
�p����gϜ;w�™K��]<D������O^�p���
Ϝ?D�v:��K'O^<w��i��ŏ�:u�©�gO����:
�eL�O��t~B����K��|������/0o�y+e�8�&L	�o/�����/i��Q4
���W���>}�{0K%`�@�>����v�P
��
^
:u�P��޾�����-��/��F|�o3w���
�����~��c���~�q��}x���o�8��cxT�������ѹ�+V�T�}*?9Q��0��ݵ��>��=�1`�����d�;���8w���铧�S�!O��Ko��_��_/
:
p����=���'�
"�E�.�;}��']��1���j\#!��܎�<�=�ftǍ�ڑ2ણJ|e\Ok���})��Ѳz��%�Juh�ѐ������2H�q� �q{�f`�Mw����)z��k|��8�,:O,�/�SZRuL���6	I1��{Q㝟��qpA���W���E��A�ZBA�M)���Q�ZzC��c6%
���s}{y~c��DL���ب�q%�FRGkM[�،U�L��q5�.���l�a.�T̮=G���%����AD�:Ĝ����)�ek��S�)���,�!���j2:/!�ƅ�jP���bNo�v}������D߹��՞ъ�Y���>�8������+ر���3koZ�
Ϣ���Y��U [...]
+_�0�;����{����q
n�<�ꗇ
Br@�E�fB ��V�4
b-e~�s�z��

e,N��'�]
<Ԩ;ie�mlT�%�d�{bjFK�( �����1;�

^�`���$��Ɣ��7j#jb�OAlP�m>�x�+�h�di3�PW��W
��V�-`.]2i������ք�P��Sۡ�G�x찖Ѳ1�/ޘ#�Ŭ|���jx�՜ց1IYIU�#*|YPÃ-Mp�����yp0��7�8� /g
��
[��ӚBzKX˅',rQL+@�&	�k/a��Ƒ�"󨢴�Z��
+�q=�w��Ưl�`?�\�$�|thQ��������oSbu��EfLbr�"���z�)c�0�f)	5�ԑkrV,ke��	�+���R.�!fT��	/p��
"�/8�-^m>l���+e�g�1	9��3���ۣ���4�q�u�)%�4�&UG����������sj���Y%�y����wko�Lk�i-�,�&c�0S!5���P�_����9��EH��Ȼ�����䳞�
S1[�Jfk����Y]y�+g��&T���Q�J)-I
�:o�`��rv!5kѲ6)/�
I�%��V����Y�͸$´[�Hڅ�,�s(�&�=�{|i
~&�?�.
<�z���W~j2�sJ�Y
�5S��F\iށ�˻��Q3�jH��5�KY�$����ޖ�Q[�NJ[�A��	�9䥄��+X�<�q�y���a=�ί�]
hq%I� ��
��(�摡fY�є���U@���
1#�.j� �P�	'�
+��s�36�4c3
.6���<v��%glr���J��F�<T�*�OX�l��Y�+����Pۊ��[s�?l+��Ft�j�hw���_Mr��?�s��9���Q�:��r
1?m�36>	��p�!�"f���lOQJ�gia=01{�Fj>�xG��e�
��`�D�^k�fk�㻈�
�HL;��Q���5Ks 0���)X�i=�20���6�w�?O���$�Yj��
䱭��k�i~G\I�OjHU��I�y���߯���tLH�l����Ot�M���9�20�R w`�G�ن�d��)���4rai�����Bu�֑�.*m�
":!&8'�N��������;����-w*~c���UlJJ)�=����Zh�t5�$U�&;�:��~����Gã�/�O`2!=��7�-^�s>4�*͙Hu9#�z�Lj�1A}���q���8��]�H���;� o2	o���?a��\ĎE��`R��Զ]'�6��T�f;O&��ih0�!ֆ�E�� [...]
+ȑ;����`���2�$��w
���Ș�mQ
�(eB'L��Am���^5���5H[����
�9��&g#�F\ܘ��.�b�l���
Cw�&>.�c����Τ��Hy��[*˸��4�坥�Wyϭ7I��`�*������\p�0Y����k�ZRM@���\ Xa
�˒H��U6%iat&�\x�F�޵�� ?#�
!�y�rH�!�:RC�L�IX(m#�~kQ�x����
By��p�?Ŭ[Ŝ
���-�ږ�1a3�'g�
+��y�"�$Mbj\��Nk������ 6T�*�ݖσ��δ�,
�/b�4FTز��ֵc���Ix1�
x���j�Mh�՘P�ےZC� 5L�4��
t�.�-�ዜ?�|�1J����rm{�R[`4��H7S���,�,�a�$��.�(���;
+�ϡ!P��i;�b����挅����̰�ii)���
r}��@&L��U��JC`{L��
����)8KyI�΢/��z�'0�S*v��8���;���
�rs�v#2��[}���n�?�i�SB���%�U��X�TE5�c�n�G@���:������
�⠊R
3@��x؄�ӓ��99�T����5����P�4��3f
�`�
+`.w��ƂW��"�����@�ɀX[���	ϡ�w�x�(���� �
7�aI���4��)PC&zk
+�K��/��g�"^�-dܲA���v.6n���w�$��%�(�r� vG^�]29��/�!�����]����1w�<z��BF����T1�j��3
����13:SF썜��W �&�ctD���e@����PS��Y�O�����V.zwE�0�(� /�Yz�_�#bz|X㶔��Z��a#�uy�xeu�Z�w?����+`�q�@�BiNz�mO��ܞ�_����
�࣌k�f�5x7��&�~
s�
��!����3R[v
"v~I~/����έ�5D�IJ�Y�3Q�A-�L�X��|{��Ҍ��z	%�e�%4���<����(0�n���u�����P��f�f!�f��t�艕1
�!m����WW^�O%T|Ԟ}p0
5�7���ZbEDG�ݞ&]�M�K<�ȳ|��0N��CbV�M�$��<�&�����}u���⫞�a��3	���9
0&i@\��:����ǣj���s%a���Ԭ��i|�
��;w]l
X���[
Qb.�U�����3C� [...]
�=����7����~������s��|��!�s���,�82�)�.�*"
���,�RRK��jpq=�)kP"J�}98� k�����|�@�/��4?���x����Nf��B��@
�ɕ�⍈�T
Y ��M!��^t��9E�H>��ji�%�lk��ǕW�_��W����
�.|�z +z�0�JR�@d� >�֒6sP �� \�-
�<:�C�*$��䚨�X�X
�38{�B��9�
+���
�d�C7
 >36:i&�F �Y���?K�+��7�N:kg�wlt���p�6n$դ�ּ���8�s�z����KZ�&�JX1P�rU�@m�\	��`�ؽe�<�ʃ�%I��G��K������M��	H	�v	7
xR�3�<4��H�a]zkoE2�s2�1#�
j���[�K�)3�38Jh�8X����	#�5m�����FZs�%��<I�#��$�
� GȠ��^�<�$�&�Ϲn��8��d�
+���P��v3�U�	5�e��-�
����L|l�&Z�ё4�AlC���zL�w���<�M�(���MX��������hi��m�[�'T7�@C���+kc�_,>���ou9�ew�+���]_[
t
Ihy����Q�|��
+�������Ʈ[,�RP�|
+z
�K��I�i���h`�㇈��Tp��TB
��<��
�xF��K��%LԖ���_8~n��r����?^�ߡ5[5~����̮���Y�)0��ɾ�����}�@	�C at A�Lx輝G��8��[S��]Gl�k�������3�Hhx��_DCo���5�Y��-i��d-�ބ���.c�0�v��$���Q��ǐ���
��}'�jj�)$!Τ�c�F)�`�KsV=���E�@C]Zp���ထѵ
+�� 
���q���ڣ�3�kr�L\�3�(������
r
��4�
�
�1��Q�vZ�Y��%�<R9Ԙ
�Q���%����=���C&�;o�C����֝Q�9fft��\��=X���
+
!�	B�J�H��]�T�	h@��[����s�9'��N�4/ec#v����"�`#�r�6&"aa��.�dW��)����e �詍%�$���' L��h1��%�z��Ƥ��9O�`�-g�l��XZX
|՗���vp�¢H�qspP��]�4R�@�!e�͹A�x$2Pi
�1Z m�r�=�hk0#�s����+�2v#j��Քڤ�_^�

ǵlXT�
+�����ҕ13�
ƒ���RS�À_�H�q�u�Q
����ٟ�
��_�X���{-�@k�)D����guTи9)C���~<;�w2	t��Xב�
+[�2 
hc����&�@�G4�ڍY�E�$�2��D�xD�l�M�Bs���
�2��7e4��ͱ�3��5���y�GOJM�J
��_
L���(࠶�����gI�Y��x0
+�uw�$$F����|�����\ހ+ϙ��YPow
@��VRk�jnO��'� ��x䜃�R����و�I&��j@�l��Y���Ց�2�3 �:j˶qyu��hF/�f�fJ/$�
B\J8��O�ˢD��+�X@�)
�S���AD͹G~IY����+����O�-
��D
+b��uKDi�M��Q�Jj��OǍ𢸅P�tP�
 sw���Tp����
���;^.��Dj�� ?���5��]�A�%tn:��w���A5�>m�u��.������ȵQ�YBf>vK�	�+��k�A��!d�̾����B�N.��`|Z�a�T�qޟ� M�u��O�
�
7ЛF<c�4ؒ�}
�0Z�6��޵�	�oB
������
�>����d��h�[O�/�f�����,l��KT�58*�\p����gQ$Ȼ���UL��[���Y��
���]�ɜg�A���mϑo�M�[
����l
�U�I��Y"��o�F
:e�2.�,��H��ĔI.L���i�
�'��Bٶ�P⛣Vf�Br�.��q�3��5Y�S
"���������W�5J�{�f� km2!��4���4���8�Lp�Z�3�Y��phۄZ��褴����+Ŕ�kko���9�#��4����滾�Y���4
+�q
�|k��姵��L"��f���"rRj���MSa�E
G����Ǖ=gR:Ho��y�
�&�No������`�m-�ع���ٗ00�
+N0'f" t\J+�em���JR��h���)����ڐ�1�SzVop��\��`Q�� ��'�3�)�
eQ=�
j����40(g��,c{0�q=̹�$�&� �
7�19����´ILO��
+
3�b�e����{���� O倻 
 1�����=�l �г6c�E���c`$�
���&'c��:wǀ��2�$
�����F��/L�G�O���s��>{��mW1m�6ФIf�8ff�e[��h�؎��Y�`fK��l9����
�3�~Е�2�s>�������Yv��4)Χ���,sYA
����:Zf�=z�!:������ �}�,`�R��l�G��L"�_/�8��d�l�Ӡ�K?��v�tb�CF�v� k�
��1Q���0��c3��W����
=�D�7X.��>�LB+����
���P�(��S�s��
��;�溡#��� ��Ul�#'D��Mޝa9�յŇ1��uơi
�x
����3��:X0�U��+�4�wE���K�M��A~�2�}��
+���f[`��BvH�g_�t<*�'�y\�s���RH;#�D�,�k06A��}
�
+�
# �G�Ci�l3e
5�`��̷P���
+�y�N��k���%|s�xw
�tw���	��&��C�pͣc�4��
TҊ�2/�ue��Q�
 Ǭ�d]�ʽ�AD
�g
V��^p��#�w7�
nΓ3�{�o
�b"��
�G�����y �S2�'a���1 �Rw'	�G:�����&�9zg����p�U�,%ͩ�2M�%�w�)��Ś�pa��y�⓼rz��-�����Ϟid�G�*�
B=q�sny���
P�~
�ģ"�M�=X�$���NUE�C�F��](C 6��
���U2�%1ݽ�����-42qA^eR��ds��d1}|�!�A�F�/AP'd�-�:H��z>�h��←��s��Q�"�W*��"T['k���ʫ}�dE�]�EztBޞ��6
��x�Ƒ�G?�0q>
��PNL
Z��U>`�}��v��^��p�@w�~�J���H��Yؒҳ0~��j�c�4b^P_^�I*�fQ���
^T���w�I�^��ܪ�Z�JH
%UG+-G�5�A�J�N^�l⳶�్��<�	��G<��&���!d�1������&��R��?��/yc��ّ6u�ϕ�v�<�
p`=B@ǡz5
�C�(�w_�jh0��V��2J��K��l�b��9>l*�9YV���
����(yx��]f_�d��l���S6�^�%~\��P^8�2��]KĤ���ˇ���YD�(#�Tp��ާ�H�&©`��
+z��
%us�x
+��=�`ƞ��$���P-SC�N=jB��t�}M��/W;R�Iɹ�Eb�N���Rqn1�
�m���ZO����;��ҷ��W�,M�1
�}��Y��)%g
.�<�*0�^-��ؑ}�XM)�c�'
�h(h�ԧ���"��M"^��l�MM���2���pP^eۜO
r��^y��,-MQ�|NQ}�>��ݜ���H�~��W ]i�
+�j�rz1�+.9)}k��u
� �a_���2
ޯm
��k�<��7�
ڱ@Mw.�i9ws ���G:1KN,��?7�ՠO(~#>۩��ٳ�!�`�&p����–����n$h��
�+!/��ĥ(y�U�}r.ƻ$$����*[«�j`{�V�
+ ���Zic����Kzu�����\ �����,\b�5
��MI-�^�P��6n��R=Z�(����p
^��,�y8��P� <z
�
bA��Y����HyA��zw��ٜdf�
���C�"�
Z$�ǫ�r�#���ϳ-`2ƸW�
�U.Cu���WWYd�l�kz!~�c��	�(�+}�OV�Q�M������9/!ٔ��rUDZ�'pH)��������\��{5��c��!�ZG`���=*.�r��
5x���5a���
+�q��C�|��SM+ژ*}���w�6M./K�
+��R��;�=K�R����,n�
�u`��c��JH�N95d�|���瑳J\R
J�U������͞�8hݫ��)�*CG�M�=[�ʽ��'
i�d���s�ђ²
+�m�^�:Pv�'�JN��B�<1Qڜ�0���K�
�����*r�[M+j��A$
+�K�
���9\(y�7��[X�M-��d�����~�)�H�	�A
�dS��G/��Bnh�uj1�#3�Kb�s�s�2�]��iO�=j�կ����a�&�V��
`LB!�
a
4��=�9Lx�^�b}:>�)��J!ݭ���Z��0���ɲ�����y�8�SE�W�@
,���׾
9d�1V����o�W–�a����KS��P	A��T�,��N �4�"�%�+c��T\\�H.:6��!�������/x�}&jk��6��k%�^59/�cbO̕�!�H�nON�ٗS�w�	���C9
�<�}�Q��suOp�h��ܭ�\z�}���:�x|0�.�43`*��h+�f�(`WM���C:�_�denL�R�L!x� w��{B+�� �G x����jA��6

�E;
�h����glQ�u�G��L����
�1��
9~p�
�P�5Ij��������g����aF���5�02t at -`�X�:�'��W�T�R����^vd�0?��!?@k�>���!�c�J.z���:Zt�>�y�Y��:By at vr+DL�3n��>}�@N=�"D�I>�#'y�wl�!�o�!�;�.9-�p���Zb����#���j��.��
��`@���!����ı�(��S3
��t�$�u ��k���W��!v^� [...]
+<��U&��*}b������\�W���)��|��
��Y�7Q|o�v��Cx�mA�ĕN5��j̹�ߣh
+��+=Zܺ閣#=2||H��x��|�
p���ʣ�ᠵY�
5��lk2���u<�1�h��WS������ >�״zt"�u���7�y40)��K)b:5Uu
]u3��n�@>��R
+N ���2�k[ȸ�W�r���u^hlT�5�kXēe6l�!|
+D��h�o�s�D�lH>-
��\���V;y�kp
&re
�
�2���dq��O	��V�T���a�yͺtF�@{�ӁU�{��M���W���*&�;��g���i>]u�M%��.�S�����k������g4��#SU�M)d
H�l��a$hy}MXsdaӂF6ūg��
+Tl���W��]%6!�Z�q�U;Z-o�����J�m�qőY\
�7�W�젅�pk1��K�!
�Z�	�+�J����
�Z��F����4T��
�m����=)�ؽ)j�s�
��$�1�H�NڝL��ޗ��N�U/�
2Z��1��
+������7N�T䑞Zr8�C���@J�+D��F��<9
��3�s}o,��w�R��$�x��T����旲����k���s���� LJ�tx at M��Ɉ�>�̻P#�.JhN>mu �}z�ul�c�!�T��]
+6�V�Ѳ�&d"�4�H�
+
PS��|ƑYT5
2��-e�
Nҳܳ\�k�U��3C&b�[E+�hDlH�����<�GV�́sKQQ������=
��z�
�[JJ
��x���K�Z\���_G��hI�hm�X7��TV�45-.������
d*\X�D�4�b���
 ���KDCeSx}��W=}8Y�
OLtTH���k�	'b�G3�ЯE%*0I.�2
+��B�}��!�
P�
}JbVP�D���s�X��k�
��f��C���L7��2��֣�zra�@/
��*Ca�WK/�i(-1�-�%�͕��]�D�̢�
+� ?4���[Հ� [Մ�������A�BsyA�@�3�'�	2x�*;����U.���ꖶ:�~
j%ͯW��L���
�^r��>��
���^3*kc1�Vx���x���\�	𪏫5À�A��2Bf>�����s�Փ�

+�'�<�ɪ�
�ͥ��@��ǀ@#��4�Ľ���^�
��)9{e ��5��|=x�%x��������q�l�ů�K�����Y.~K�
���ڥԬ�l�}�ʥ $�
@�-�M��\���I+>��^{0{l�H<�=�u�/'
���4�{	��ڣg�R�ci�mc���K��#-�S��lS��
��%T�m��
&${��yO�D�
�1�q5t�[FɃ�$=*&
+<�z��ؙZ�q�R��2�䣅����$M��
+�R�*�1dž�f�e�yR�_W���H l�&�}+<����j��!��
�FȶMcc퓸���C9t���c��=����kh�
���
�(����ד
+�zJ���㊠�	2�[-��$Cs�'�6	�G0f�u��ce�6�x��?`�h��g�f
��56�U�U:έ(ym]Ⱥf](| �?�&�$;�,tPS�ql�i?�	�N��PƆ,Ps�Kߺ��U-b�l�1���߅65
cI�
~

���r��Mr�ș>-s�,�����V(H���
\�"�+�|P�5AS��oiV����V$
���?��'�낚����Y����� �_�"���Fy�_O�
(%G<�2���	�
�>ѣ��n-�#�о�����J�P`YX���>��k���xx��-h�C`|�wt��܃���;A���
��P]
+Ao�
/sYGF��(d at O/�<��+z6
��#�>���㺸1h��
JT�u��	`~NH/��Kw���>9

TI�ú�'q�ͥ[#e��lh:ȧH�d}���Q�9�M�ыA8��"��
YC�cQ�p�s`���t�
!ݧ 5r��,�s��X���j��� <R/�.�
�ʫC�נ}�^�A):��B(�숹:ʉ����a��2�^-q t͵D�	����h��4T� 
�����
�䐢�y�ZCƧ�ԘĐ�V�T�z8����^��YbS?���\㋁�3lJ¦"�/O#��,�CjKJ�*�+��
�a]E�K�Oٟ.}�;�w�>W�̯���X�Yfv0����

�
��J�:z���Ջ%.-
o�RrA��;6
+�!�-
|���I
:> j�d��;^��ݠV<���ǫ��5.ϭ!���t�O�$
�i����d���L�_ۘd�����G��]��*��}�[�~ �L塆Gڔ��7��Sݐ���,�L�
+����o,�
�� �o	Yv)6֫e��k�]�e:�e�e�t��
+�`��fhX�tx�j�xER
��d�r�h�+:����͉��4�Pn<"�'�>aS�
Բ��I�s�����
��e�Y�����P�ԯ�Ck( o0F>�g�h�Tv�V��\��&գg�f��2�
x0��{ ?oW�QN5��x�d!�aa��*l�Ԅ-B�G
�}dbb�}�A��~M퇣����5�G
��|��p��
�G���	�+Z��5�dž�ڰ��*���yPh��_C��T�
�TJD
U}�LDs(E
�"�U�1�`̃&&ɡ�"�G�����?jkZCZ�6�����@l��C�^f`��o:�����<�_s� C
�yn"�6�қ��NW��J$:2r�v���wl�jM
�[C:�
�ӭ$e�<B�I��%�?�5
�G� dg,���҇�����ܛ
���C��D{�|�]�A��,�UIɵj%�z��<9���	ȣ!
�s��e6���YB��
1����ud�f����*XȠ��Z[
�j�C˕� 7�3C at o6'1��%�&qU���}\gR«
������C�
\:��G�pd-���j�d:3<�g ���L7xN
����@���j[���1�����n�����3�~���&1�Y��
}݀�Դ�5V������e8
T�m	𸖉
.?���g�.uMK��0
+ͽ�7j��k�-�uɇ����cUTl�1��9�-r�j��T޸+�b�**h��O�Ă��`
�d������¦���R���� ��7�|c�A�=2P`a3�	�&���A�3�k\z
�
� 
͍C�^�"h>7X֧�S�2̣b�y�<���!�l�
jh0���
�LHqKY�N�-
���Y��(K����\Fx�/:YV��|��^
���ƉV�Ϫگ�1@�e��
%�^�[��%wv�J
~.
�t���ٟ��:��%�E	ëd�|I+��
�9UtߵD�<R9�"��`ރ�ir�W-�
��0�я�lFx������V�
+7'iɶEv��
TӋ|
+<���4������Qr€��M\�OEˇ֙Bzp}
+
�HWY2T6�ŵ'�,�S����h�AB��щ��p�

�����Er������M@���P1�:䑱~ȯ�i��k��l`�c0N~=��o�g
�+�j**�F
��<�'g:����l���3��A��}l��\[��8-�����<Y瀯�	N9=_�[����_�=C�,�[(�A�Ps�y��l�Xn0�G:���"����6D��⦣Uq#���uI��Mq��O�3s��%R
+��ʀ��ɥ�Ӝ�򊠥f �c-�@ǀ�}:!+d�����K��ƪf��q�kl�X$�^�a�~
.3(��y�v���Cy�ΩkU:
�:�U���U
��\vl���+>��ҡiW���
>� ����,��S���H��US
+�XJ�w]��ƂC��� w ?j>6�Ia�$` ��|lᰎ��

�ԡ̳Z;
��@ ��1Ж���v,������"5��ڿ�WӜ����9B�_�*�O�ư�l��'&
0,+z�6�[N�q+�9�fW�,h�ȥ�`�*.tΉR
+�!P3������:��L��Qj]��oMR��H��Yl�_�Ou,Se���Yb�}N�]¾�
-{r��
��!%��������感w'��N����1':��?���?V٠WhHh�
��
ڇ��W��?������?����L1�KΑ�V�W��}
+B��
&ֳ�(8���
��)��jA�ҽJ|ZH�O�0�^5�$��C�
�5Q���c�H8k��٥(~�ol��>ݧ��� /x5\ґ��
VX
��(�'d���x���xק	A��L*t��V�푞?����)��H�#� �=���qv�ٝ"DY'p�o]Tw�מ0
5h��
+��߇�i��5b��u�ç
iI�a���U��:_|�^�	8��:�����\�㘨�G /�@V
�nSTT����sh�k��`m#�2Q~
�ԡ����k�mz��y)`�lu���
��H.�jQI^5���|�q��� �@o
�Vv�V�n5��od.
ڗ4T���bQx����T��Q�8~�
�"�%��t�S ���Tԉ�M|Ts�^?w�]=
ސ��,sX�{�>-9ף!e��|���4+�*������c�)��8�.wd$�g�o����"�n���l��
���ɮy|�|�>�y�3\vo{���fOΥ�
+�RS��Jza����䑑R�JjnH�(u�ӳ�K<�G%��5B�Gʂ�����1ٵHJv���ط��k�
=}{��;�z�b��Rl�
ԵKNL9��D��S~6vg_ڛ�/��<
+t
���RT�}��_M�<\"�ڦ)��J>��E��>� O(�y�Y\���c�*�"e~�0A>e3�.ӫ`�
Α�2J�	`����s0Y�`�?�w�
5=�P�ns@��˟���>91�9W�̳T����O,�!�_��u��`
�1�?ktJ�BCu�<�
�`��E���'��`Z?�c������vi�
�
�T�
+��qh���Yj�K�O
+�p �R?��#
�8���� �͡AgQ�y��U>/
��Y�|CF�럀	�}7A��ذ��>�g���tl<�?,t�_AH��!�8U�谅�C�e�:�L�u!�ǖ�e
ǣ�2
��<������	�!��x�'�EA=!+�#�y��
+���p��,���
x���e&�x���s��p�����������)R�GUU��J*��[#�GA#
�
�.�>�
+2�_��;����Iz�1��0����t��}JL\@�O9R�
+�=�G��M���Fh^2�R�s
�<��`}*�)#��M�<�
){�1
h�E��֗=z>=hp�:���UC�=0����7���߷���ӄ��!�C�4&�1K��
žY�-�bn��i�'�w�,�
tf�.�����������u�Z�eL��A���ĝA�s�-so�ك�k�"DBs����w��,w^^�*��;�|�Y������ɲ�[�e
��x�
��mӄ�1R����7�1.(g����"�k��p��k�" �'��䌃)ܻ�
�
�<�pg����@�e�
:2 ��0��%l�{��t0���.p`�E, � \s�|�<�p��
���p�1�}�"�S�M𨠹+J.�sDPC̀�Ĝ@gq�|�
�ъ�u|�_�,;6��_C
�Y"$��I�]�|*6�#R=J1۶@��(�e>��9���AsRB��(����
��9�1GJ���Ꙩ����f
��`
�ܳH�
���0Ȑ!
�Y�x���B�u
�bwh�,)�5OIsβ
g8�>9��#e
L�폣���1GҳD��)���O�'��Ku&p(�(��G��H��	I)6��x�Оs�������
�X(p
Dh-̧��
ʰ�[ӈ�.�窨���"��������hp���ec�9��Ҏ���Mx��C}��,��=T����1�2n��
)2§�%Zgɉ�қ�a�
�
%��:AxҲ1�Y���z����99��GQ.rJ���~z�c��ݛ��OQ�@��NßX�`�
���ᯠ�L�
���U��� �H��f�u�>�{�;������?L����
��R��)�F�%S}ᅽ!�˽QR��0%VV����(�GJϱ��@�Gn������H��Qb��!��^tCU��h}PAͅ�lk ~��N�����+���������9l��
n�����*���6P��1���1�RZUf���O�
3�$��o'�
��_��/��|`����8.VQ���Vo�����r- [...]
��>OJ�Ma�
�A�H1o�Rv�
���@�#yu����WmC��%�׻���w�n�!�[>���t`
�>)�
cg�1w�
�˫]�{�=a
:;����n���
.@{�D�����f�
�N!��
اk
��
#�9Ƞ9^)���q�u6�TӔ}Nߘ}�9���4�|߫�
p<
+�p�U�=�{ej(��P�N*�8=F���ܘ}�	��6N��HqI��N*	j0���c��ꖬ3���K��'�)�;�lW���:Ul�}��n�q8CI�>Gd�~��Zze�qg}�
��I%9�p��-�&��
/��v�h�
�`og�B��H�@��
s�4P��m���#�[}e��M����~��Ent�bV�p��16:0V[��{	/V����ϭ#�H+���/S�T�85a�z���+��8��^��Ɩ�[}�g��'�Do�o�c����]��M�����V_�s�,�l{���Z�����[��Wn��tM"_��PoWZ3�o
"�n
�
������݁���=�D�C�������0�����'j
	�����+ۃ�7���I�s�k�)�p��;
��݋���A�z9b���r�
u��Txa���m隥��`^l��/%�Ő�gX@�S��� ���
�[A�sJAn�q1^��=�WM�9�͍�--ſYZ`�mt���1����s���qJ�� ��� 걹5�෿����
�^��C�.ه�;.ṣ����u��_n/���O�y������
���k�EW��Kn�����)���������<3����
+��e���?�>c�!�
��_���o�5<�
�>�
'&.��|�d�GN��żڇ<n�j��蚲*�G}}�ٵ
�������&�k��Ƒ��=�~ji/�b~�w�Ԑs�1��(�E�.X����#���N�
�zQ@�q�L����_M�#��ܘ{A]��
yzc��ʼn�c�Ȼ�?Ztkw��V�%yEܷ�=y�{���#��J�*eo��"�[K�ov��Z�(�].I:���<�3�x`lE>�<�M���:�Y-p����X,{�3�we�5�g]C©ݑ҇����䌠�G=�#���][�L?���;5D~����
0���'�ZiE>��ý04_4�]XoG��7_���|3Bx��J3�}��n�d��O0S�{������4�Y?**2O�����'��t��z�1H�?
�����-w`�
+��t����!��^Wɽ�>�C���_��{�J�7�H[�]��$��H��P�r�P�|j�3��4?����b��ai.���[|c����fo�5}S�E�(�;CC#�W=��y>�1�,�NP�vF�/A�=Z�.�i,��M<
�;yw����G~k�(��
	r���m��t�9?�j��H+���|o�"��z:G>�
B<�l��[x��^pEӐ�:�����
���萖Gw-���Ʊ�ϵ�4]��)��yd�
蕫�}�׮	R���� ��vo�
KK�
�'2I��;#��<�7�)�)9([�d��
����ԯ����̟d��ou
��1Q�@}�qN����T朙��:������03�;s��� ፾����ib�mᜆ>����0�+Yy�ں��S��S@�3<R.v�o��$l���6d���O�j�����<��6x�?�X�ֺѯ
Ӭ��qR�Z7��Z+�\	�φ�s�����~~pM�
w&�t}���(5�%������k��$���1���/���:�V�r��f�]����9�{	��9�St�9�|�R�
+.�p�����dn%>�� nZ>���o�<��Yt�=KN�����2�U"���zZ���P�����K���S�
ٗ<�����l#�� �͝1쫵�k����꺸�_�+2�4 �Y�s��;}������3ܸ��i�NГ>[d~3A��|��IQ�ר�g�&�޲��6�b�k3�(*RNI%)�β��$G�s^�y���x�����C��)n�� 9>�פ���*�����v���$�+K;�|��}8�) ��t�v}�9��JS�eue�OJI�iK3��

��������ݨ{CԸ�N�}K+���
v���
}c�/����^Z����� 5jg��zg�h����Fo�uKk֯������L-�g�V��~����-CC�cS�%eM�9Q��6T�?�1_m���n�"uu�g�$���I_-JR~Tդ�dx�z~w��Ѩ(��5���
z0M�KY�zJS��Ѓ��/鯾�g���7�o����S|k�
�^_ѭ嶜��k�l�D��W��fs
e�Q
m3�� [...]
#��e�U�gt�ŗWz	��t���$	_o�!
�`W��S�`_k��_WU�_�Pr�
yF{��y~ί���k}�xMUх��cM��<?딶�༹u{I�w�w�M=��A\�+�QRĿ���_i���?^9�({�cS�.�c��/��3ZA6wR"�%y���~
!$��c�~5J|��gC�����Q>eEձ����ʼ4�~������ԟ,
i��M��X����n͈
+�9�x���t����`�:a��;K��Zs���6v�3�DW�ME��rR`��k-Yg7��~�Ve]6�/��P=2	�:����n�_���n�>�]�Tg�QV$��T&~�\�d���n��n��I���+�z�ESc���{����ُ~��)f�=�4��؎~0���i�ӿ�p��k������lu������B<<���1Z�4'�q��O��Q�*%�_N�#>���r��� ��s���>Q�K��U"����jW�o��쟦�I_��|�(L�a��q:��o�����}s �v�<㜢"벪"�L/����p�O{�o��ܙz���r�����0>jk� �������s
��/0���
v�o
���q?��.�^�[iG=Xi+��Տz�ы��k�]��<�G/��'���Z��w�Ͼ���n�����^Bsj~).> �%�:�/�r~�
����+��������-��6���:���)��W�1@��d�$�Do?WVD���e�'��J%|��Nw���δG�S�Ds_� [...]
��
+3_Y�wNS�u��>�W� �������ۋ���!H�^~�L��o]-2�X-b>X�(��ց|Vzu��򝺺�B/3��w�O��05���>|L/5������=���A��~(y��1�ϷGJsK�~�ɾ���>}�q�М���>��}�9ye��YV�7K�ğ6�Q/*K�|ل��KMV��_�uz0�����*��
�Og��N-w���gD��7�K=Җ��g�i���@�y�F<w�!^��U��_^�C=����e���_������C>�D?5F��%�Z� �?BMZ��|��	�=HK[�@����#����~TR��O����x��o�v��.��^��IF�7���_
S�W�%l�BC����4��#�Ue7�i	�^$�^k-�
+���z/���1�>��Q7d^4��;����0��z0W{J�v��G<�Vg�^�B��'��A�?�5L��g��`$}9�N�j����%��0+ㆶ��$��g�~���������v�3A �Yڳ15%�6�O<��2�
%������ǿ�mL��d�$�$�UE4���8O?��=�r�7��u;@��AV�u5��j6�`
��N;�oȹ0�K������J_��m���/Ͻ�\bb�c��]�	�q|��(⥢.�藟��ߞZ��͖�|��?LIu����J߬�]׾O=�y�q�6�,���_�;J�['��{Ô�����;���F���l��*}�;�'�g�����Lm��$7�t7&�_���s��䘐J����y{�"�ְ �܍nlͽ`hH�Q*��~�
�Y���Xa����I���_Vڨ�띴w]���3L|���2�'U]
���ӖV�c�$�Y�6{���c�1f��vE]���</��)fڷ���M�w�C�2]3񅪺���<�L����"��^�]�
-]ь|�n.y�\�  [...]
+���f�-�,�옠� �M�N #6��n�w�\��&��Vt{s��^���n���m���;�z�y�{m�#���@�õ��k�ڔ3���ǃ̸����-��g���� [�gX�+C��s�yW�y7A����ӌl�<�l
<˵��+;�e��>]ҷ�P�ݖ��Y
�e�r�/*���lv?�
,{e��ǹ�0����;^�x������W�EV��8��V?��by�7K��S�����Q�7��.��>�=�ly�
�����]k-�*�7�|��Ab䷪��kVл����j�%�~�ӝrb�z���ar����5#$����!��\�mN��
$�����34d]PW����I@��8��c�};��s�Fr8/"��"��Yۡ�;Υ����'�@=
+	{�^C��=��澮.�4�Ջx�k*���	�g�FO���#���)��;@��&Fl
��������}�P�~z����=�/>~yQ�vnI�qN.J�a���1��7wbި�aw���8i#�q3��'me��.����9�x|8��s̃�"��`��U��>CE�M^��
�%�,P�����,M��!V�� =m����1���9\��%q�s���e��
�����\�B�_�纔\�c���#/���
-���J�N.��b�� x-�����ҋ{�|�qf�/�:�N���� -�:�͝f_�b%�~8��γ+E�@f���;½q�"�
N�A�������uB?u.rP����c�7��7g\Z�ν9�K�`jɻ�g�i at P�(}��L9,�;/a��\��'�� x��8���k=��'�')i���H	��׳�y�EF��!�Z�Ӣ�_u͙�
R/Z'0�T���FqgfɅ@_�6�}���3����҇k�����;äx�\~[馦��U��IF�����rG�)A��#Ԉ/w'Po�"����[y�k]w�;��Qr0A�����F�0�,=͏�a���;��u�/��Q�o�a��S��T9qo�[��K�j*�PA�>���m2>�����.�k����
+�yv��PMη͔��
-z
�s�'�U�N9�ps��O]��SUV�����qJ�6�G�qQ����f����e�
C�8�(��p����
+6aw����9��م�9j�Zoɝ����斜�72������j�[���L���Y	�C�\U�6���=��+-����?cl/{�jG=j$D}�GJ>�����
��i�J�O
+��D��M��ږ�p���p���2@|�l.����wG���ğ�(Ͼ���|ׁ{��.ܳ�W:���������-J���h����Rr�S�sW�Sg�/е��̲�IR�uJ �/Urׇ)�3c�w�O���Mr��o���d��ꔪ��N+%�	n�O���ؽar"k�g��p�1�7�
��Ρb�b��|9cs��c��G�
�d�-��w{8��^�F<��G��
"DZ'���1j��6�MSٝ�Qj��(9�1σ��b��<�lm
�Ϊ�i�)�ms
�zw�m���s��3�梛�iZ&�ɜ���s���S�i*lo�����mH;kh��}m�
�1��<�,'�
32
�ew7�q	��Rm3�$h�a�3��RU�/S��ov&��K\��,�P߅xj���s|��(>�ґw����z_���L�]ɀ���@��O`
3���ނ�����W_L� Ԧ�w/�ny��`��n��f�ZE�OP�:�7�
�W�ͰG�b��4�{���6�mC3���>�`���?�Oޙ���˹�^�=A�����4��id_V]�5ρ�
c��z�lR�+Z�`y����ʩ�S��zj�W7m��βۦ��K�}��m��ԍɿ��J�F\��Ⱥ@L��*k
R	�>'@ا��;C���>Z�����!�%6ꮭ����+�57���nv�#w��ɶyb_���@�|��9�-;c�['�0�s0��;�!�l
^mR"7���p�������J|��K�;de�
�,]�e��J1j{�
o��.U�2_Yx�Ԇ���q����?��\�*�cl����^|�>#�m�b�i��Ύ�b�b��_��74�Af�"
���F}ih$�
k+������;ŷV�{���Y�Z �i��.�v��v��
v�T�w������o���OqR�5��*?^�"��)x�UPQ���<�
�=4w�ܚB�X�t�U���Ms
w'y�P
8f�p����ŏ��
+�N�j����]
U
c'3
+0��^Z�c����ؙ ���bw��6
a��vlK��g��1Z�J/��� 6�6�(�>yk�j��h��\1�u���u,��w6{��n��i[� 
�訅ʴ�;�L���ң.��N��6�t��7k�/i[��8��0?���-Wٔɫ��� �jnG?�J��l��=��f
.����j���~/p̰�7���,�b���D=ŏ�YՐz�`�,��7��7Gh�֙Z��,��qF������ݧ
�诗��쌐�����	n�N?#q���
+�<zy �BݒuG՚qcu�2F)4�b
+<��F���u�	{k���P�~��ʭ	,��A��F�
+ӝ��[@O�z�֏��&1ۓ���r�O'��d
������Y|��1�p�V�7UM�
��?�
T<;MC�,㑮�x�k�T�Nx����y_�aa?X�X[��C
��� ���~w{��s�`���>*.���M
�g�f꣕6v����V^I�-�y��^t�7
+1��v�0c������=�e�.������ڨ�t�sW���:_W�:��������/(˓�]o-�jag�ۅ��r�
s=㉱��r�0��W	�l��h$�Sx�9
e�E��;����G?>���gDT�bˠm��c�a�뚊�͋R~���җ�	���ls#��zGE��Y�lnd��h�'h��QQ�{�%?hE�w����
䣕��;�EB�S�d�uu}.]]�M&�)�
+nj?��h���������_6:a7v�/���
�;�_���a?Yn��؇���*�V;QV�}�`�[+�;t�=�Kb��4;w}���;�+=\�<K"�}�W�>���Vz�>F����Q;をfDʧ]�����pK�kJBY�){`i/��;���hj�ܚ�f��Br0�.ٟ��b�K򨸄���W�E����W�{`�V��u��S-�e"���
N�k�V��q��om��ߩ�uo�+T��@)���qw7��=w�!	DI�vw�}������燹r��{����dfα��a�͘��.B�k�
+��I/�
+
+}̓���QT�SF.�UQK\��X�ǭ	z���n�]eM�7G6�4�}�ҁ��4����Z?6d�
�d=Wҋ��0!�F��LK�����s�9���X��+��_K�&:c��"h[�g�f�D{
U
{�T��8\Y���Ж�hG�>�es�g��S���>|�_����چ�#}M�u�,r�%��|w��m<zo��Y�C/�0��U��݄�+���s�܄ߑ��O�|9��������k�@N����
���cظgČ\��~d�_sL��&Ŭ f);��č��S���
��!�n;��2� �8�OB�c�بc��)�1��N�O`SO��{��}|��<�N=$ᖌ~��GI�LЊ���a˝���f�L'+^�ǿ��C�"+�U��&&����
/���#*�$'9�46��Ɍwo��>}
+xp��6(�߱vp���vZ�e��WQ�'�C7.H��LkU���
<BA��F\�G�^�����{���
E��B>
��}
t��P��{�)I�����A ovg�(��5ˈ������c��]���4DM�`�����U\�

�I���i*�=OM�q
p*���㰐/gpQ_OcB?�6[
�q��H���p����)L�
�1�
+�p����L�T?MqI���������+���N��v��C�ӫA��9N��q�
��x�����r))��
���9us
�P2�
=
gS�f;J^)��wtU��Z�seN�ټO��t
q
+��&.�
1!�40��oK�y
|�*;��F?>ޮ��l*>yc����
�����:	׷B��z!�6��)~��H��v4�+�ى�I��D�zz�柿�n �ճ�A�\ �|{��8����,���:ϡB�/�e�k�c_��Q�.��,�d�#EǺ��"���
��

+$��~I�=ZJ�9Av쟈�or��9�ˏ�9N��.a��[�C$�Zf���o`a��؍�����|H�ir~����0P�?Г��@w/^ =�~
���%���9���
���<墚�ywOCȵ��ņ!d�� =^��	�Ŀ�Gd�����f%�,��~�� V�_���?�<��z
�����;���O�B�����1anğӍ��꺲'���[�J���6z���񵝀�K�/���t,3(���#��Ç�ρ>ܸ���.��U�峿�N�@�K���}���&X�"j���v���J���lcŌ
Ho����-(��X�rz����/�b߼�����ž|zu�&�0�.\ �v����s޹ �r"S�Bެ�aa5,na���t#�rrᖜ���Q�G��zx�y|j�Ipx�1p�W4�(��
����7��.��t����GW΂� ����Tmy�U]c�s�$,de��i��~;߁�<·<�"�]�.�;
��9Y�����)���+���/�|�\=�tt��?A�O
�ν����2^���C�7�+�Zޣ� �Q�#Ƨ,�cB�跍��k�Ȱߐa����߃^]�z~�2(��=P�'��_ݻp [...]
�V���0+�P /j��.!��OĽ{}�9p��@L|����ˠ��Z^�;���,4�$:�ǹ���qY��$������Tv�����[p
+��s� *�����]�p	t���W���޾
+��$:9�b=
�@��̷C?ؕ�<��_
gόJ�]5YC5�U `�c�C�"�UDG
K
�
+z}�6�-���{����n�sr
����W�'p	�/�#�|����	��N�7y5�����Q�@褕�m�@oT!1��99g߼�� }z����U�U�<}�|~�*���eй�΀|�^}��T�#�����g�ZD�r/)f���`��e�U�?uQ�>�e�g�g��s��S�o^�
߼z�ٛ��@�
>=���u�2�.�^>Wo�q����}J
<6Ki�f9%oq 
8�^��"!�.O0sU=���ڇ*$�fa\ԉ�׾���b_���}��3���z|�t��Eг>�H�Oǣ޼=Y�w}�
�#&e����W��sm�φV��:�Au�_^p!/4�X�珠8P��7�>�A�N����`>n��=�]>w
��
�Pߧ�2��0��|e�QJ�mw��pM31v5�|m
+�-{,�ü���\+���dʻ��W/�\�	����Oyx���+�� ����]нk�@�>�A9߃C'F^U��,��RMM<��Z8�M�4v�B����Vb�-HB����A/o�������3yq���
g�����k���#�������U�'�!���#�~.p�\�TĎ�K\Wⷔ5�K"
|��-�>
��<��ű��o�����{���@�Ϟ�{
���m�C`-�}>F�H�(��=���4d�hI#ՄW�B���j^H7��ۆ$���1�
+!����Ea���/��/�����=��v��xmS\���Ϧ�ZT5�%i%R��J
o�
T�^wѩo��O5y���%gc|J�K.De�Ť�_@'�]�$%�t�a��ZZ�� 6v����� *Ԭ��nʄ���j��HA3P
�C/�@r��cڅ5aL(�16��jE\֙���S��^��޸��
��˷@�����y�[a���z^�\'9rs��o�I>|f��LJ&]a��1�B���Q?�1�~Ux�CR�zB`��O^�
 ��s����@A�?
�p<%$�xA|�ifyɃ!&��\��MQI2O2
�R&̣�U�M
j�Z!Ϥ�f��jJ�byX�����?��"�������ҟAQ゚�f��$��|�ԏ�
j�Bo
�"��]gx7�l�bW���ˍ�u(E;7v���_G��C�^͉H8�q<�� ���{t��yг��@���'I�7�	�š*�EF��HH�.=�陯�[�����
+Tݏ
��Ң��GM�vA�U|F�%DZڅ���?>|��ӳ����@�_�����
+���XAJ�
+��g���<��l�����J�Y�,Y�ej�a�
�䘥�j���
_�.��H�:������ߡiq�SBμyt��������1��c�N��J.q��']L�{e=죘�q}��,p�_�7���0{G�Ś5ՂYE�J�^��^Cfe�
�����Wo@�?"@�q'#�|=���-PB�����3U��,R�L?�%f�\j¦g�6�MM��Y��#/��b�z(�f��.�Y'���b[
dm���>�Hܞ�&[eB�Y�Cn�X�6��e�n�[
U
f
�)a��<̊�
Y��!�U���z���
��`�-�w�Fzˣ�칁�b_]�F9�#eA<@~�5��
%o[�(�O�U�%]�fE]횄�ڐ	i�bv��
���Ϛ�+Qv7������
�X]c�(�.��B�.+��
�ݟ���
5`m��*����)��T,��q�xt����4 at M�����
1�7���A���:Y�٘+mkJ��k���FL�Y_H臊��4Qc]b���+�M�ח�H�Hn�2�7'(�K��w�1l�_�uc�Zaq�$�ī�������C����--�c�͙ux�O��k��=���}�l���ז,qs�%�d��R�0T
+l��F���}G�ػk�i?<�[G.6M��'0�抗�6R�@-
+��r�^^~�K���a��ka�_4��o&�A�c�<��G�;[��4kw���
��N���{mª�C6唜�B��?I3;\���a�*�
��
T�*��!�z�d5���]\����
6�Z�
�/NU"
:
��Y
�����&��Ga�C���V�I,$kJ���g�0_W	Q� wUe�
 ��e�_5�22��#�S]-�6~��WX�0�H1I;
+.nm�D_Y*��7��
�4����c�p��R6xVT	��T�N�򣧚k��-����
+�hS3ވ�
#��
�#f��s}��v
�ls�]Џ[#��_5.}�dw��Ӧ��4�+�ۀ6�
��HjK�Օ|��+f!�*6qk�d�"�Ƒ�V��RR�Sŀ����
+f�C䝮U�n�؟�k��
+kLJ&|KJL_����"W&��V(:���TU\��
�]z�G��q�%[RL⶜V�T�7�L�p
2
�$� ֦8����P	��	B�e�އ
]�'FmL4�ׁmy�
+�1^�^����"N�[ɧ툽=�*k�[����
��w�ie;RZ�Y�*�
a�T�T�Z��*8h����"����k�[f��6bu
a�"�l���-RV����<�)ȳJ{�\
56
�j�UN,�I��y~v"�h�/��8X��KtNW�X�u=+���5UK����{UVK�
$F�
��EՈM��m�"��y�C����Jo
D���k�01�YA
���z�8o=�}
���@�;��"���'��~fG?�As��Æ�ʊy9kNL-X�!�zo���!ό�qG��s�T��ͷ�=s�
��\
��]Z`mUt�]��l������wd4�SWۺԇ�ah�{�4 	��"��T���K�T
�ܴ's�X�I�
��ɣ���˃�������`����Q�`�r&�`��t��͑�O���ۓ���R�HY�7�;������aUTW�%�a=
M�=�@����#e�؋�ʨ�;H�ъ��:S�5՘`����Z��F
߭��)^
�[�^��俶ϲY��ځM`
6

�k�q
z|w�T�Ta��RL��p٧����?W��nMS�C�����M]N��.!$��pѳM���%�4]g�GmS���>�2��q�H�%>�&A�睊�.%){��=c�lo�i̛��\�YE�ے`�D��m)!Kޔ�7ōzs4[��n�u(��
.�4R��<V���\�U��ΎP���9�7���
}m�K���P64[�,�|{�ӵ�W���o��4I5"F]���W��
��8doO�= [...]
+B�b䣡�-������LUۦ����պ�k�.
����
�39�iR��X�+�[�1���z��Rx�X���
�灖q��i�Cy����������`�
�3�Ou�iH�"���*��_4Y4�"qc���0��5[ӵ>EγNA�u��C��f3
����z3�n�5���Z4ݘ}WS�xe�#�S�J�I��d��LU�q�:ʋ��а��Q���#E'���	��Ш
%�bo�Ss�Z+2����D�$���
�c��Rw�,�
�9V�a�5�і�(�`��q���dT��Z\3u��j�"ť�LV|�M�}�)�7� ��[m2&t�����A��W�6�o@�"x��e��䕂�~�P_��4JI6c¶E������%�
���#�~�E�,�����j���	��_�\ ���v>é"��!�V�JC�	�=�5�6)a�$el�V�s���Ul�M�C(��!��=�ȟz
ۥ`�wČ" V
,"L�MN;�\򦴆*�$�j���8�miU`��rx�M��6�*�Mc߶���U9}���"�R�f��uڷ%L��$!�2X��y�5��ڦ¦i[���w at B<���t)yx��VhU�sM��P�
���O�|&���r;mO����U��\d��
ؼC��`�T��]��.�#�f��J&rs�Yd�y;J!�"g����?4r�^
ݑ���	�=��r\�S���hH������Z`�Jd��@ч��B?�(&�`���������t��u>���od��s�&18�,C��-7( =%��H��y��S�?�|��<w���$Ԃ�qb��Le�M�@ �B��w���� �
-2uW��
�$�1�_ۼ����	4΢@�n+�IV:�3M*ݛ�l �׬��.���"Ie�Zt�Rg��A���J~ģ}-�ܩ��7���6���
�1"RL�������^T��8<dc�-��x�L�KC,t�+��Ӎc���.���`x����4,�b?*ء �z{�n�c���<Ʈ�G��3�
���h�z��*�Ω%�8�䒽��i���oSƂl����,SH�]&���L���
+���V8uf)
R�
��
��Kɯ�	�g�dE��`γ��4��ڌ�kmE�M���~�nƧK�r΁���S��
j1 �“����摴'(`/��5د%vծ��H�	f	&ޮ�$���L�
��9�
��n�Ҳl��x���b
A�m���l��1t�����Jg�=�8�&!g���
���	B��2l��3��wN1K�J:�"!g{s�`�q��5{z6�	��I\��*�<EbY tOs�����B�[WU}�%j��nEi��
�9��9
ؖR
+
�� ��O��U׺4t��k����8׏����Z�C�
�[݆�:���kS�� ���J���[\�:-M0J�e!W���н��~�tU���lޞ*"X�y����GJYD[&ȹӵ�����h�\�����1)���)��<����_Z���R��?��a@����.}y 0�Y��6���a�^f#��gI��ϲ���U~�ָ-n=*{u���\o���(.zc
�V1�G��*��Gu�YH�X?�6��(.��� >
��8;�B��خ$�
ͱ�-q��l�]�DnLъ
�ꖽ�ڞ�)|�|{���n9��fȈ_ZR�� ���:ᆘse��<��HF:�0�(8����G�����&�m$��I�p��{��=�'���t�UEp��50�G�l��9ͭ!�v⃯� �?%?��M���
+��u�x��t`���T��ұ��a��4�
�*�Sń�i{J��8`G��j��?,4#�~��<��^�+"�:�0���E�6 ��ԕ~��6\�yv«�v�o�S���跕�|�Ł<��. ��
+��k�q��ؼ~n��偲�����f9l o�
@��
}�����Hӄ�����c��X�	1�
��gj���2�L
Ro��-%��te+$$7���^X�3��Z�#e��JtWI.ؙ��-��?7O��ut�]F��Ew�I�v9:aW������
+p��`ާ���O.9��6�l+h�nA'
�p�n9��.Ǥ9���m1:js�k�{�:��״��-vq�)��1ď����ۀ��L����=-ū�Y
�'��uO�'� �����>����
c�PQ�S�<+�k��,�CI*ܑ`3
rr�m��a���|
�R˼���u��P��TY$�D������f�^t�"��t�U� &9Ԕr��V�x�]
���÷%�d���#'
5����]4��c3<R�S
��˿m��0O�-� �
�"d�c�mRR�.pn69!�4�������,��1����|7:��b�����ɩ�B�rt�YLH� �oM@�Q6'�	c�ԭ	r�	��1*뙩�y�9��ym�"d-�B�Ze���E^����6`

jd�EVh��~9����D'�(I93]%��#\3�5���?\��\�z��2���_��ؖ�ܥc��z���Ȣ�i$�9\�3.���.���X�(~m�§����-�t���٥���h��=9Ϯ�mO�b�o��e n�'�i�km�/L�����y/d��+
+n�9cU��Q|�����b
�k�T`1ʶ'Y�o鄕["l��*��j,��C;�;2/. �g
����6P7��bf}�n�D'�z�QZn�m+咂�|yZ�	pX�
�*�4BN�c�y{�8+��-���5K(��1h�i�,p�;塱%�gg�<xy��R���)���]
<�6Y��4���uK#�~~�-����Rd�b�z߼�1iX�5�f���F�����o@�D����We�����
ą�t
|}
��^�b�3��u���?��Jo�߾W����w&�n ��Rb��8,�=�-�_$�= w�5T����y�faa��������H�4p��4P�Ozb��x�Ss
�f��Wָ�|
��냈�Ŧ�GsUI�
C��@y��`��#�U�v��U��<T�ԝ�7ו��&�����>�6�y�R�U�
��q����S��m<�&��p+Qq6�G���?ZGa�IZ���z�S+�rL�� $`�2�
� ��^�b]��v���^ƿ
x��90
+��gj����1k�d�Z ��j��D�<M}ٷ�����l�Zw��1p�'����,��=#�1���zD�K�9�q�+��H�;T�4@}׷�ؚ@�ص
�MI�pO�i����;
+T�C�HؙB����l���]
F���4��B��`���=K��(�	[���Ax�Z?,�&'��t�?ڈ	uǤCUW�P�.99ףe�w��t��ܕ�BÏ���U�n��䭹������CS�����U�M�I{M}�� 2�����ݮ�b�2&����,d�����P��=
����3
J���PG�
>��!q����lC΃����af�B'%J�ʻm�<~?6�����U��Иs_V�z}��p���r��2&�.�A�k�k��8��"��
19{����.�oONF{{�-�g=S�"�)�����[�!1� �(I[c�p}c���~x�u
�=���
"Ĭ�"��w�?����ZQ��5��"j�������8"�����h�Q���e�wFK�l�
�(�~v�/6�����
r8��숊�
L�z���f��[�|;�o�p�����
`�ݡ�n� s��Y�7J�<W]��p�6Eȭ�E<jDŽ��հ�k��D�����~U�M�$"?ۏ��M_r�c��-o��=DȳI�(�.�%�G�2�!�4�Gǥ
LsY?g��P���}=�ģħ{ �e
*��\�z{�=���
g�ʖ{P![C�0�$&�2���
Ą�����2�-��~�H�/�۵,ܾ�Cs��
�nS2aN|`�W�tB���S���k�*+�;S�l����U�f� [...]
�o����, �z9pC
۞D%zs��
��8H��Օ<۞ �
̲�c��
�Ǖ��Ws�YOֻ��.����w(	/N�JXȍAT�|s�=]u�mC]�#�0���*�g�-���W1�
]0 yl@�pw��9�qp�bG֣A���S��;.1�ĥ㳶E�L��Zv�e� ��R��H٧���ۃ�o��;��:*�j���
3�=��z�$�`�
�a��'=�����7!)iB�6B#�-����3�e8�l�����|c�
�i�z4Lʼ?ۊL�ד��M	7Wz�_�e��ͱ� �pi�GN��O���y&�>�hٜ_�ս��
�� ��z�iy��c\2|��xW���h��[a_��)W�Љ%��[jn�����W]���QrVڗ��		om��Q{zA�Z_�3� ��LU��h���,���c�z���_���&�ãǗn�[�J��"E�����\mLp(#d�!1Y_��<�
+ץ�BV��^k�1��K^�!a������qxa���%¤�5+��9�e�e$W�&˾���w"@O 9RIߚb�[D��]�d��䝞�xKň�8��rj ���-���Xiҿ�ܖaf������F:���C#�s` �3Y�C�
+9?ג���SaN-
c�R
�'�qv
��3	ޚ����� -��B�8��
�_v�\5�;ϭ����\�
�k����br�x���ȨN��ru����9�~x

f
��Gpы�žj~��r�i��L�5S�x�[
A‰��
h
�4t��ڒ0�+��h��
5qh$C~-���)ăYT��h�[�(2bW�@-��R
��>�\�M�Cy
�M��r��%��>���!y���X��zf���b�
+������A�u�i���k�m���U�	x�LKγ��B���"��撏;���Sa3�&��[�䴿f��������ҙ���
m�����z��:IL�
��꫋mtaB]Rz��0<h��Y�+xXW
�7��=����~b���%>��i�07�@E)14$�4��=A���@���җ��>��:<�IO�5��
�Y��y~�Cht5)�[�Y��X�/~�Qӑ-��
,�SM�v�XX����B�nt�,��2��>X���r���o-wA�[F)9�Q
�1��u���6�	��
���/��y��w%\�SB)V�".Mפ=_�)
�9CB��Y���7�
a�>�j.����3��4 �}a�tLW�+���o������:���
�J�
���[�rk���u��VÓ�ݠ3=3��AD,
 R�^����	����k=�wLCy�7���
�t��K6OP�
2�.�v�#��R?
�==A
��Қ��@I,�k�+8�g0hi����q_�R�.5:{����[�N�C��2}K(�
�O�2.Q�P�jy��i�,5��Zbq\���m)>˭)>�-)
jp�_�6Z�ծ�y�k����^r��6������Ʌ
 ��j����`��9б�Z�!f[�P�[=y�,���{
+Z�y
�م�f�&8%�8 at S��Ɗ?XE���sV')����\�����p.=<��-
�n{����th�a �Hק����A�ږ�@�
 8k��Ro)Y�W���g�
\4���
��q6|�1�� &�1B�9�0���
~n�
v~��$ু�_
 �
E'lKP��ە2ve�����Iw��a�f����|�U
+h�^��1T�C�M�� �*AǛ����W'l�}fa�����>iy��,���H�Wd���JN�_&��)��r8x������rC�L~8�O|��X��'�~��=
=�W�Yݐ���
��k�[mpes����P����'�~γٻz:j[�Os�(e~��$<t�=���
}V+��<ۜ�؇��*��U�������H ��V)��<Z�N-��SW��<'��?|�K�!Nו[i+�����虘�8�_3L�KEȶ�1�*b�]�&l��b
J�!�%��]���O
͹�ZJBN�"�
�'=;1+L|����2���\2|�GE):в�.56ݮ�&m� �5U
p``1~��t�����L?��<�@OE �* �Sa�"��B�Y'��gj*F(�> �=��/z�ڑ��>^��1Q
�3Z�ڙ�Q�
:�Wdz^����
�A��
�ӑ��Y�_ߜz��R�m�{�-��m3m�����W�
+�s�����..��mQh���|�w��[�
��0���5R���Kq��� 7�%�<}U��M1G�\�o� �k,�(:r�%��VO�c�@��ņ�{�ad�K�D�
gs��c
�S�]I)>G�
,��~����] �9�T�Sp#��^���
����_�խ"�fk�
��7�rb��*|��m�
dlC�3
�u��n�Ʃ	�G0����
.6!~l��wF��rR��O��0"h
�K��K�IIy�Y/�#��jC/Nҿ�qI��{���ԥ
���7= ���l��j+~�1P��:�nņOrr}����ǩ%.LS_���GS����A'�	����{� F�?]��|ya��Ӌ<R|�}�<`�%�����aJ��]
8񿫕����rT�zO���wn6�h�I�_`1���*C'����z
�q����j/���$&�&ŧ��a�4�E�&P1vF �{Ӥ
+uc�}em��閌g���=��� D
7�������Ҟ���U&g[�-*
2�羵K 
��@�=�-Z�	�;��l��O3�#�;
��5�?���\���z��"覹�,r���+#����	\�[M����|�k/x:Ӗ�`�3�MR���,����ٛ"j�SI��k�^��y��Rc}�c+��lC��	L쎄Ybh�p)�`M�+�~M��t��?-&��f�^��Cc�o��lR at K��ϙ�1鿌5m��L�O:�p�b�zgl��i���k���9�4����"r�ь��P�$�400{*r�KR�ї�j{�0�%^�U+�5��H���j�I�U�
�77���a�����hx��	B�]E.�+h��t�ցX��)y�љ�h�-��}
�但�n*|�>D�ܑ�����qt��"�$�[��8�4
������&<���ù���9^�y.x幁qzf-�§[�"����1����os�e/�J�j��7�Z�?��a1s�og[���ҵ^A���`m������Ł�W
=��p��$5wGB/r)L��	ݚ����X  �zB�Y��6M����V�6֡d!\j �5
�� [...]
+�,�"LS���Iv�l+%l��1S�z-#�ܘ &^V3�+r^t��K�-������w���{���
�Y/f��3_
����zl��0"dc
�?�c�M3���,��
����E�L���yn��#w�<��ܣh�׶M�X(�_��z4�w����j$ha 
ъ���R�v_�&�5l�SEp�Tf���{Jީ*���3����⛤ �z���E�e���	l
�;�1T�j_��U���G�nF|7������v��
1욠�Y1qb~��~B�m���^�G'J�)�,S�x �{s,��"�q�߮���1Nα+y��IF�GC.�J�+=E������ފ���]�>p�=��� <ie�;�H��2���!��)d쾜Z�+�AW���:R�/�%�;����������վ�'ki�f�Ҟn
������62�����m��G
u#3�5{jZ�e�m�.㾚�ޟ��n�L$D,(
��j�Vj'lRJ�J/��S߯�bv�T�k�Mw{��ɥ[c�H�0&�<NL^��YjH�YhJ�'g�\�mH���y��`s]�� ��Z?$�)��
��K��e{�4�[��x���=c�p� ��9_?���s��ۛ�"lZd�c�m���}�݄����䬭b���z�!��x]��Rbإ��—�qb�t1������~sm�q��J~W��ٛ��n�_Ѝ
ښbB-�j�l)vqk��g8�@^L��Z ��=��
B`��N��3�v���
�Pb�-���ɒ���e���G�Iv�nT��vp������K��A�pQ�g���c��ɪ�FTԕ�^B�M\���Dn��}v��-��׻:D�KK��%4��Bu�c�R���]Zd�C�αi�
%�k`37��!��Q\��
�a�b�['��A'8&1	�x�R7"@,�}�+�za�
�>��\��L�cV��!s]��VG��l��1@>�u��Һ
_�󹿖�z��"��B����,�4��H�ys=�` N�����=#�c�aS��2
�X�WĴ��m�/�M)/l
+r�03�E"�����Z
?���遼P�Q���4��Y��=_��&�����0`[�� o]S5�\��ECk��zT���O���m9�,viA�jO�
mm�Cv���x���M�������Q
+6E�0��q�e�����Y���^Ɣ�
�-�d~^
 ��A��p�N
��ұ�{Z6�P�"�;O��w��<��C��ʾ���c le8���Nm%ץ�x�+N�d������Ƥ�Ű8�p�W�<��o�5�k���
+�t���+�پ�^�nT�$?�~����]�AG��
�bπ��:֮�e� ��8åaa~��v
y�##���=�
��	�>��V�����R�͵‚&�9/��1d��JV���Z@��~rJ0I ��p1W{�_��$��m�����R�}���IL��2l[�O]
�ū�^mNPJw��Z��T␗}�J���S�8`��=�����i>ǥe��|ၑ����wk �?BL���E��a~�+�f>:
�wԏ���ڍ��m(y��\�;I��#�>�%�i'�=0���ѳ2�Z���}t(��?��68uG�U�{�����&L:\`�����a�
��m%)X���줻=ؘ��J���ݮ d��Լ�>d�ls�����;+���Ij�('끬*�ש���M��ڮ�e�U��m9>M�X�A\S�aw�߽�ȯ�*��f1>yGN.�8 �c�
+F��$.~�
�ͩc ޒ\�-�$/�B�
���;˃ׇ*��a"L�'�q%�����
+r��$)�"�:�l�E��mNQ�L���4
������m�RrL#���n𗕶��+И�)V��
N�
+���]�ug���L[ԍ�(����o��� ]c��<��v��8*N�T��"���j{�Ș}#8�*�x3L{��0����!�9���ظ�
lĶ�C�9�$�w����T�_��B���Y��:Nɲ��%N9w�P?v�X7z`�Z�0��
���

��@�-6g<X��~��`l.�]hB}r
��-�oN��)F������,�3̴g'��?��
�$o��bl�KK�s�I%�`���=+lv�X��6c{��V1������c��.aC�.5��+Vڙ�����U?N��o;Fy[]�Ŧ����+��YW��[��}
n
�'ZE�L��Qf�"��bX�y�<HQ
{O.H��5T���
�lQ��v���
I�w�
���g�
��,	��ۓy��ܑPr��١�Qv5յV?�
+
�A'\j�D^Q�
+��#|j
¯�գcև��
m�˝��
�������)B��5�E���']�U�HyD��V�7M(�0�.=�Kt�MK+��p�LU��,�j���s
cncM��Xհ��|w�ck�
CK���
Lz#<覈���6��6� u��+rfإ����K=����+����
��Y���s
�/�
_lx�[�)ŀ�`���ڏ�k���"gB�%�\��Mt���sh���X�\�x�=��&�k�T7�~O[��SK�Ř���� m}���^x�EB.ڟ�ToJ1�s����'�,
+;�:ڮga,rJ�ȝ�A�c��qGS-ܔ��
*!wO/�;2TV�L��(%ia���4HK�
'��J��S_�QS��SA@ؕ��-8d�����9���.uU�C.�K }I:���ڑ��vd�D��<|c�4n�/��U�J�5Vr����ݸ;j.���z�[M�j�2���ޟ�׹�+k���\���r)8(7�A]Za�C�Bl��
	����8.�1AJ�MӶ��Ɣ����m�������Kraƣ1zҽT̕	b�չ���1\�����|;:ơ��R:tWǦ����9
���R�	`�R?4hc

#�J����N�4{�����	���Gm�?~���x\�J�A��|����L]~�]�M�IP�6	:�4Z
�Б�F#�~MJ�zv�9���(!IV�zG'�x��^��޺��,*
�܍��7v*�/ ��Z���<��;U��>��+�D���(���)d��1���0%�<�Bi�+>	�ï�>;+��qa����z{�
�<���\,��r6r{�S��]�~��t[^��l��UQ�8�C��QU
,
+b��:ɮ`���l��,��?C��j10�WlSb��*
+x�vhwVPo����C��ա��vi����k��7���j �����F��aT��֒��E�P-'��V_�g�����dfg}�`
`�y�5�
���SE�u갹��t��H,Y����I��}��j=s�S
 ����W�
ޚF A6.�FHqUޛvT����� @�� \�-"���ͬ������7���. ��H%K��������N=�;˯�� nS�;*̦m٘�V�I�v
��)��˫��t�o����,6�=���s�׆i=����)Hꞁ�ڛ|�,�晣P\jt�y�ˣ���a��$�b��1�&�$#�n��eۀ�p�5 7�����#�,�\��5ӦuϷh�W�(�uj�E�/�L�󦪊}����U�},�)c�-��HS?��jW��Rs�}'򒌗v��]x��U� /�y�>
4�?[l+�]�)|�9��g��� �4��k#�ܴKp�vm�Y�>h��U;�|�����m����K�D��ѩV	!�<�
_n�|3r�����s�
�|����tui��(*f�=��bw�Uu̍^���C��ä��K�E��]�j*".�7��mõ������':UШ�������n��@��[���=���
+�?���E�����R �]�+�ٯVGѱȏ�C��]����
+c]�]?��1�b]��~���rF�];�9;+��bK��ٖ���
��0q�S�<��dC��Nj?��R
+��rʥ"n��?Go��f�����Tfڙ�tꝺ+mi��@qwwKqwW H� 1B�x�A!�$�S����}���?d_����\9�%��u�U�aAS24��x n��v|D�
�h �?S��S����мm;4� ��#��
:ev 
T��_.Z�:q��*P�
y��y�
����SPE��SP�Jć�q��'�/��Ư�x����Z�L��x�}V$_�s��f6t�Φl���H�
+��iB�h��q�O��
����~Ľ
�0�L	��r�Q?��U���V�Z�)}����	[�j�8Y�� Wl��?�l{��~T�K����f��zJ�MqM�Κg�*���)�Nxi/&�r��+?�[J�?O�(��\zȌ�qn�T�~E_���}\N@�6�r/LH�6=����{�#�:�$]�f�1cIO��t�K&H��$[�%���wN�w4�j}�ܸ7EEm
�	�z��Q��׿�:�u��{H���4<�W�
��S+.��?�y��<�E$��y�l���3��5϶�
���ͻn
����5e�85�Q���Q�oy����v��)���I>��Pί�*��0�ٔ�o'Wm
��CJB�T7⭯����R{����2H,�w4��^
j�f嵯f�+߬h� #�u��Ӄ��6~���Z���L*��xq�
;�qc���}����c6���Cc�[�kE��g����YA�wߝ��EE]Ԫ�9kQ��#�i����1q3��O<���fJ�_�Y�TE�1K�9)���ro��
6�S�o=�0���?-m
_VW>[3U��_oY(U��l
��`I_�	��~
싟��}���m��r�2�-M�?�,��(��u����_F)��tM��.y`g�_��C?M)1�
+j�CGKѳ�
��&�=S���)u�΄�dV��Yԣ�h��~�����yW����o�i�����I��
S8����(����� �T�E��	����wd��}�t�I���*�NH�6���M
*o����xgս9e�	
�f'Vm8���Q.}�@��ts�c\ƺ
�7
�y�<�BCfR�Q�#@���i �W�S&%�o5��?z��jo��&�����[�(6��·��Ɛ	S�6B�l���}/�a��
_�i��Q������1� �¡C.l����⢀BjÊ���tߚ�){V]�d�I�O)���٢�.s%{~
+��4	���.ZxIۜ���\5
�Z�Y��Ƨ:@����s=��_z��N���74���Al�������9nLj��6��v��
�`�zl���$�<X��$�m?����ϓ���M�rqI+6!A#Dŵդ_����
Z�����{��Ј@'豓Z|>�+���B$̩�̺O�;���w
4�Q_�M,iFV�t��~INH�3�W�$���)�5�������w��t0*���Ѝ)
Ծr��\ZTU��:iM���sc-����E�����E(�w`
���� ��d7虽��Q2�� 6�▎ٴ��K<b��ЇO�V�k��9+,yu|]
O
k-���6�RvG�5�6l�7��h�
p}	ޮ�G���'[��{��U3:of������.��S��
T��|�m
��)Q��D�
+���c����W�{}T�sc׎��uU}lHyxBP�Q:rF���� ?����6��(?o�P�
,���b�&��j��3
��8
�;� �3H�����x��C����Ќg�W���|��y}LH���	�
�k>����*`NM�B�z��y/72�o
z	������^l9�f�C�v\��W�������
'{�a�O�q��e�~�Sa_ �_T�?s����jz�$ޗA�~m/�pB\��tgu̟Ӓ��;��F��Z��V
�R ��l��Vd�P	��i*�0@��N2�!6�S�|Jݔ�u��v8-���p�<���q4��}��
�s$��

���
��fNo��+���e����C��]�i�7���-�h��a�\ӡ�O;h���+��,�C�
����eW�,��iEMT����tO�@O�ݥ����zZ�?���1Mc��i�-
y����l1�*;�
+�[6F���^���j�l����0�s
��U�l��\�I���-���ܷ�
�8�O�aS�Fx�M
4!�BD�p
�&�Q
I����aW=!���^��eJ�]�+���h⾓P�yWy�F�l�Ά�
+T�o��%��12hw�P��F~��|��
�	/��'��<�g����
BǞ�iz�s/4�->� ���lox��m�)���3���Ӈ64�+�
+� �� ���^I�%_wڅyEu��
r0��������~ ��������s���cU�瀥Lt�>'|�
�
qzYG�|c��i�=�xYN41�Xy��K9�;
�X3���[j�"S����-3:kۊ�߶�w��;����!��(�
+h��m
,sӉ)�q�@��=�n:���$.驍#†�]���K�/�`�F%7m�̿z �.�QI/*����*@�3��ՓJB��]n� ��VH��
���kK� ��4�N_��J?���{&ny�9ywW���ƍ��!�~s�V<iEf�͍����uu�~F�s�AL>� Z���.P܅��ث#���f^yx܃����Y6��ZD���1z�K �肩Ap䌾)v���'�/
“��
̗�ցé6��E������4	��Q+C��A
䣻��ɜ���E%��C���eYՇiٛ}'
���������w�\�m
1�!x�
��/F̧_'�9W�����5/y�ӝM�gWը����D� ﮯ%��&�������qT��I6����yC���C?�]�p�K>pR�v�ĢM�d\��x\���̬{�J>+�O��_��
����[t{c�9fی-	j���zX���޸��SF�ukFp�?������dwŃu-2����m|�堃�|ƾ���6!�6Mu�)�#*h��Q���&�
���]lҾK@��y
��
׾�>��7>��!�/i��.a�

�ກ��x���	��
���/���dO/,�_�v��!���0
�}�T=ok�Xh|���|�2J�

�p0����3Ay�7?
�c����G~��f~��� N�t�ׅ��?�������׌��ޚ���e7-��s��g�1)������XaYj^�+FE쵩>DՆ�\��*�c���S�y~������귛2|m�%���j`����9��h^�w/�����j�1mEO���ۀnW�
�
`s�l���u3�pM�*A�Q�k
.咓�{e�������6
*��
d���w���=��m[������
��GgO���W� ;)���F$��p9�:L~P���01��xGK��Y.]O̾,�xwr��{}LT�lQ�H�WU�H(��6�	�?�m��{���������|�bg�z(Ȑ��ڞ�u|�爏���w�B�UT������r~��w�fq����	l喥����tہk�T4���qu�@,r1���E�l/q̈K�s͈/vJo
 �Os�^W��/�
+ߞVB3.����Fl�975��l���Ϥ��s���?
��/.��?��j�;y�<��'Ayq��,���#�>һ6B*[�Ҫ�G��=7��a&��j�I!5:~�+G�ӎ���؅���޺X
���
.N�
_K�;'��0%�ּ��&z�����qG�1d
�e�/ֆʟ/��X��D︐�{Njá�GY7�
�
�ԯNlՁ
��e�l�PY_G)M�V\�
�i�l�
1�Zr�TO�
;��0)�,�N�6
�x�13
�����+F�d{�#5*�Ay�IIݻ����{�ݨ��JN㌒V!�g^t2W���+*d��0"q݌+Zl"d#�� -���n���}v8A��|8��<�W�{�_:DU�P�焊u+�dI�
� C$�����GJx�����Xт���>��ّVHъ�\a秞�0�n�xI�SҜ��
&�󘀿2BaJ#.�(o��as�@��չ׿
+HJn:9i���;KB1���_����Nn۞���kͿ�����)z������.|u�Loȍ��]�����<���
�x:'+��ikJ�
���4�����/����>�
�8�+tFH
�4�W�hn������I,�:�HvjLR�i���jPR�������A<�7f����)��׆�6����pCԞ��6ٷ�N;�f�/:ȓ ��S�M�����C"y��0��4��e���m�F<���$���1����j'�-��y
�
ܼ�vv��[Ч%&��-��B�;����RN#S�&�<��l
+V�9Eκ�S��)5��/�a*��?
endstream
endobj
7 0 obj
<</Intent 24 0 R/Name(Layer 1)/Type/OCG/Usage 25 0 R>>
endobj
52 0 obj
<</Intent 68 0 R/Name(Layer 1)/Type/OCG/Usage 69 0 R>>
endobj
96 0 obj
<</Intent 112 0 R/Name(Layer 1)/Type/OCG/Usage 113 0 R>>
endobj
140 0 obj
<</Intent 160 0 R/Name(Layer 1)/Type/OCG/Usage 161 0 R>>
endobj
160 0 obj
[/View/Design]
endobj
161 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 18.1)/Subtype/Artwork>>>>
endobj
112 0 obj
[/View/Design]
endobj
113 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 18.1)/Subtype/Artwork>>>>
endobj
68 0 obj
[/View/Design]
endobj
69 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 18.1)/Subtype/Artwork>>>>
endobj
24 0 obj
[/View/Design]
endobj
25 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 18.1)/Subtype/Artwork>>>>
endobj
189 0 obj
[188 0 R]
endobj
233 0 obj
<</CreationDate(D:20160424170923-05'00')/Creator(Adobe Illustrator CC 2014 \(Macintosh\))/ModDate(D:20160425074646-05'00')/Producer(Adobe PDF library 10.01)/Title(Print)>>
endobj
xref
0 234
0000000004 65535 f
+0000000016 00000 n
+0000000206 00000 n
+0000051611 00000 n
+0000000005 00000 f
+0000000006 00000 f
+0000000008 00000 f
+0001629239 00000 n
+0000000010 00000 f
+0000051662 00000 n
+0000000011 00000 f
+0000000012 00000 f
+0000000013 00000 f
+0000000014 00000 f
+0000000015 00000 f
+0000000016 00000 f
+0000000017 00000 f
+0000000018 00000 f
+0000000019 00000 f
+0000000020 00000 f
+0000000021 00000 f
+0000000022 00000 f
+0000000023 00000 f
+0000000026 00000 f
+0001629879 00000 n
+0001629910 00000 n
+0000000027 00000 f
+0000000028 00000 f
+0000000029 00000 f
+0000000030 00000 f
+0000000031 00000 f
+0000000032 00000 f
+0000000033 00000 f
+0000000034 00000 f
+0000000035 00000 f
+0000000036 00000 f
+0000000037 00000 f
+0000000038 00000 f
+0000000039 00000 f
+0000000040 00000 f
+0000000041 00000 f
+0000000042 00000 f
+0000000043 00000 f
+0000000044 00000 f
+0000000045 00000 f
+0000000046 00000 f
+0000000047 00000 f
+0000000048 00000 f
+0000000049 00000 f
+0000000050 00000 f
+0000000051 00000 f
+0000000053 00000 f
+0001629309 00000 n
+0000000054 00000 f
+0000000055 00000 f
+0000000056 00000 f
+0000000057 00000 f
+0000000058 00000 f
+0000000059 00000 f
+0000000060 00000 f
+0000000061 00000 f
+0000000062 00000 f
+0000000063 00000 f
+0000000064 00000 f
+0000000065 00000 f
+0000000066 00000 f
+0000000067 00000 f
+0000000070 00000 f
+0001629763 00000 n
+0001629794 00000 n
+0000000071 00000 f
+0000000072 00000 f
+0000000073 00000 f
+0000000074 00000 f
+0000000075 00000 f
+0000000076 00000 f
+0000000077 00000 f
+0000000078 00000 f
+0000000079 00000 f
+0000000080 00000 f
+0000000081 00000 f
+0000000082 00000 f
+0000000083 00000 f
+0000000084 00000 f
+0000000085 00000 f
+0000000086 00000 f
+0000000087 00000 f
+0000000088 00000 f
+0000000089 00000 f
+0000000090 00000 f
+0000000091 00000 f
+0000000092 00000 f
+0000000093 00000 f
+0000000094 00000 f
+0000000095 00000 f
+0000000097 00000 f
+0001629380 00000 n
+0000000098 00000 f
+0000000099 00000 f
+0000000100 00000 f
+0000000101 00000 f
+0000000102 00000 f
+0000000103 00000 f
+0000000104 00000 f
+0000000105 00000 f
+0000000106 00000 f
+0000000107 00000 f
+0000000108 00000 f
+0000000109 00000 f
+0000000110 00000 f
+0000000111 00000 f
+0000000114 00000 f
+0001629645 00000 n
+0001629677 00000 n
+0000000115 00000 f
+0000000116 00000 f
+0000000117 00000 f
+0000000118 00000 f
+0000000119 00000 f
+0000000120 00000 f
+0000000121 00000 f
+0000000122 00000 f
+0000000123 00000 f
+0000000124 00000 f
+0000000125 00000 f
+0000000126 00000 f
+0000000127 00000 f
+0000000128 00000 f
+0000000129 00000 f
+0000000130 00000 f
+0000000131 00000 f
+0000000132 00000 f
+0000000133 00000 f
+0000000134 00000 f
+0000000135 00000 f
+0000000136 00000 f
+0000000137 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0001629453 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0001629527 00000 n
+0001629559 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000449795 00000 n
+0000056006 00000 n
+0000449603 00000 n
+0001629995 00000 n
+0000052108 00000 n
+0000451137 00000 n
+0000059213 00000 n
+0000059099 00000 n
+0000054923 00000 n
+0000055205 00000 n
+0000053732 00000 n
+0000054359 00000 n
+0000054409 00000 n
+0000449084 00000 n
+0000449147 00000 n
+0000055486 00000 n
+0000055549 00000 n
+0000055943 00000 n
+0000056311 00000 n
+0000056566 00000 n
+0000059250 00000 n
+0000449540 00000 n
+0000449677 00000 n
+0000449709 00000 n
+0000450145 00000 n
+0000450429 00000 n
+0000451213 00000 n
+0000451793 00000 n
+0000452949 00000 n
+0000461499 00000 n
+0000527088 00000 n
+0000592677 00000 n
+0000658266 00000 n
+0000723855 00000 n
+0000789444 00000 n
+0000855033 00000 n
+0000920622 00000 n
+0000986211 00000 n
+0001051800 00000 n
+0001104527 00000 n
+0001170116 00000 n
+0001235705 00000 n
+0001301294 00000 n
+0001366883 00000 n
+0001432472 00000 n
+0001498061 00000 n
+0001563650 00000 n
+0001630022 00000 n
+trailer
<</Size 234/Root 1 0 R/Info 233 0 R/ID[<BDD8EC6FD55444D2A827BEBC8330CBD8><1C6484FB74734E768D754E0CF2B238FA>]>>
startxref
1630211
%%EOF
\ No newline at end of file
diff --git a/doc/_static/logo/sticker/iheartpdal.png b/doc/_static/logo/sticker/iheartpdal.png
new file mode 100644
index 0000000..77779d4
Binary files /dev/null and b/doc/_static/logo/sticker/iheartpdal.png differ
diff --git a/doc/_static/logo/sticker/sticker.ai b/doc/_static/logo/sticker/sticker.ai
new file mode 100644
index 0000000..6c8c40f
--- /dev/null
+++ b/doc/_static/logo/sticker/sticker.ai
@@ -0,0 +1,6336 @@
+%PDF-1.5
%����
+1 0 obj
<</Metadata 2 0 R/OCProperties<</D<</ON[6 0 R]/Order 7 0 R/RBGroups[]>>/OCGs[6 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 57544/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c014 79.156821, 2014/08/29-03:07:50        ">
+   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+      <rdf:Description rdf:about=""
+            xmlns:dc="http://purl.org/dc/elements/1.1/"
+            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+            xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"
+            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
+            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
+            xmlns:illustrator="http://ns.adobe.com/illustrator/1.0/"
+            xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+            xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+            xmlns:stFnt="http://ns.adobe.com/xap/1.0/sType/Font#"
+            xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
+            xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+         <dc:format>application/pdf</dc:format>
+         <dc:title>
+            <rdf:Alt>
+               <rdf:li xml:lang="x-default">sticker</rdf:li>
+            </rdf:Alt>
+         </dc:title>
+         <xmp:MetadataDate>2015-05-04T22:58:59-05:00</xmp:MetadataDate>
+         <xmp:ModifyDate>2015-05-04T22:58:59-05:00</xmp:ModifyDate>
+         <xmp:CreateDate>2015-05-04T22:58:59-05:00</xmp:CreateDate>
+         <xmp:CreatorTool>Adobe Illustrator CC 2014 (Macintosh)</xmp:CreatorTool>
+         <xmp:Thumbnails>
+            <rdf:Alt>
+               <rdf:li rdf:parseType="Resource">
+                  <xmpGImg:width>204</xmpGImg:width>
+                  <xmpGImg:height>256</xmpGImg:height>
+                  <xmpGImg:format>JPEG</xmpGImg:format>
+                  <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA&#xA;AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK&#xA;DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f&#xA;Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADMAwER&#xA;AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA&#xA;AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQV [...]
+               </rdf:li>
+            </rdf:Alt>
+         </xmp:Thumbnails>
+         <xmpMM:InstanceID>uuid:98a8c096-335b-5946-b242-4a3c9daf78e1</xmpMM:InstanceID>
+         <xmpMM:DocumentID>xmp.did:d214de07-fea7-44a7-b280-156724c382c1</xmpMM:DocumentID>
+         <xmpMM:OriginalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</xmpMM:OriginalDocumentID>
+         <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+         <xmpMM:DerivedFrom rdf:parseType="Resource">
+            <stRef:instanceID>uuid:d1c078a0-2746-42b2-b0d1-25aedff8fb1e</stRef:instanceID>
+            <stRef:documentID>xmp.did:1b6690ed-28a8-c141-9479-b6a9cf6be651</stRef:documentID>
+            <stRef:originalDocumentID>uuid:5D20892493BFDB11914A8590D31508C8</stRef:originalDocumentID>
+            <stRef:renditionClass>proof:pdf</stRef:renditionClass>
+         </xmpMM:DerivedFrom>
+         <xmpMM:History>
+            <rdf:Seq>
+               <rdf:li rdf:parseType="Resource">
+                  <stEvt:action>saved</stEvt:action>
+                  <stEvt:instanceID>xmp.iid:d214de07-fea7-44a7-b280-156724c382c1</stEvt:instanceID>
+                  <stEvt:when>2015-05-04T22:58:57-05:00</stEvt:when>
+                  <stEvt:softwareAgent>Adobe Illustrator CC 2014 (Macintosh)</stEvt:softwareAgent>
+                  <stEvt:changed>/</stEvt:changed>
+               </rdf:li>
+            </rdf:Seq>
+         </xmpMM:History>
+         <illustrator:Type>Document</illustrator:Type>
+         <illustrator:StartupProfile>Print</illustrator:StartupProfile>
+         <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+         <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
+         <xmpTPg:NPages>1</xmpTPg:NPages>
+         <xmpTPg:MaxPageSize rdf:parseType="Resource">
+            <stDim:w>2.000000</stDim:w>
+            <stDim:h>2.000000</stDim:h>
+            <stDim:unit>Inches</stDim:unit>
+         </xmpTPg:MaxPageSize>
+         <xmpTPg:Fonts>
+            <rdf:Bag>
+               <rdf:li rdf:parseType="Resource">
+                  <stFnt:fontName>Bauhaus93</stFnt:fontName>
+                  <stFnt:fontFamily>Bauhaus 93</stFnt:fontFamily>
+                  <stFnt:fontFace>Regular</stFnt:fontFace>
+                  <stFnt:fontType>TrueType</stFnt:fontType>
+                  <stFnt:versionString>Version 1.52</stFnt:versionString>
+                  <stFnt:composite>False</stFnt:composite>
+                  <stFnt:fontFileName>Bauhaus93.ttf</stFnt:fontFileName>
+               </rdf:li>
+            </rdf:Bag>
+         </xmpTPg:Fonts>
+         <xmpTPg:PlateNames>
+            <rdf:Seq>
+               <rdf:li>Cyan</rdf:li>
+               <rdf:li>Magenta</rdf:li>
+               <rdf:li>Yellow</rdf:li>
+               <rdf:li>Black</rdf:li>
+            </rdf:Seq>
+         </xmpTPg:PlateNames>
+         <xmpTPg:SwatchGroups>
+            <rdf:Seq>
+               <rdf:li rdf:parseType="Resource">
+                  <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+                  <xmpG:groupType>0</xmpG:groupType>
+                  <xmpG:Colorants>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>White</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>Black</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>100.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Red</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Yellow</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Green</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Cyan</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Blue</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>CMYK Magenta</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=15 M=100 Y=90 K=10</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>15.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>90.000000</xmpG:yellow>
+                           <xmpG:black>10.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=90 Y=85 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>90.000000</xmpG:magenta>
+                           <xmpG:yellow>85.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=80 Y=95 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>80.000000</xmpG:magenta>
+                           <xmpG:yellow>95.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=50 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>50.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=35 Y=85 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>35.000000</xmpG:magenta>
+                           <xmpG:yellow>85.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=5 M=0 Y=90 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>5.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>90.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=20 M=0 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>20.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=50 M=0 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>50.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=75 M=0 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>75.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=85 M=10 Y=100 K=10</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>85.000000</xmpG:cyan>
+                           <xmpG:magenta>10.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>10.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=90 M=30 Y=95 K=30</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>90.000000</xmpG:cyan>
+                           <xmpG:magenta>30.000000</xmpG:magenta>
+                           <xmpG:yellow>95.000000</xmpG:yellow>
+                           <xmpG:black>30.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=75 M=0 Y=75 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>75.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>75.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=80 M=10 Y=45 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>80.000000</xmpG:cyan>
+                           <xmpG:magenta>10.000000</xmpG:magenta>
+                           <xmpG:yellow>45.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=70 M=15 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>70.000000</xmpG:cyan>
+                           <xmpG:magenta>15.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=85 M=50 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>85.000000</xmpG:cyan>
+                           <xmpG:magenta>50.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=100 M=95 Y=5 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>95.000000</xmpG:magenta>
+                           <xmpG:yellow>5.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=100 M=100 Y=25 K=25</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>25.000000</xmpG:yellow>
+                           <xmpG:black>25.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=75 M=100 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>75.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=50 M=100 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>50.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=35 M=100 Y=35 K=10</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>35.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>35.000000</xmpG:yellow>
+                           <xmpG:black>10.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=10 M=100 Y=50 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>10.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>50.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=95 Y=20 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>95.000000</xmpG:magenta>
+                           <xmpG:yellow>20.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=25 M=25 Y=40 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>25.000000</xmpG:cyan>
+                           <xmpG:magenta>25.000000</xmpG:magenta>
+                           <xmpG:yellow>40.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=40 M=45 Y=50 K=5</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>40.000000</xmpG:cyan>
+                           <xmpG:magenta>45.000000</xmpG:magenta>
+                           <xmpG:yellow>50.000000</xmpG:yellow>
+                           <xmpG:black>5.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=50 M=50 Y=60 K=25</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>50.000000</xmpG:cyan>
+                           <xmpG:magenta>50.000000</xmpG:magenta>
+                           <xmpG:yellow>60.000000</xmpG:yellow>
+                           <xmpG:black>25.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=55 M=60 Y=65 K=40</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>55.000000</xmpG:cyan>
+                           <xmpG:magenta>60.000000</xmpG:magenta>
+                           <xmpG:yellow>65.000000</xmpG:yellow>
+                           <xmpG:black>40.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=25 M=40 Y=65 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>25.000000</xmpG:cyan>
+                           <xmpG:magenta>40.000000</xmpG:magenta>
+                           <xmpG:yellow>65.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=30 M=50 Y=75 K=10</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>30.000000</xmpG:cyan>
+                           <xmpG:magenta>50.000000</xmpG:magenta>
+                           <xmpG:yellow>75.000000</xmpG:yellow>
+                           <xmpG:black>10.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=35 M=60 Y=80 K=25</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>35.000000</xmpG:cyan>
+                           <xmpG:magenta>60.000000</xmpG:magenta>
+                           <xmpG:yellow>80.000000</xmpG:yellow>
+                           <xmpG:black>25.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=40 M=65 Y=90 K=35</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>40.000000</xmpG:cyan>
+                           <xmpG:magenta>65.000000</xmpG:magenta>
+                           <xmpG:yellow>90.000000</xmpG:yellow>
+                           <xmpG:black>35.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=40 M=70 Y=100 K=50</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>40.000000</xmpG:cyan>
+                           <xmpG:magenta>70.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>50.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=50 M=70 Y=80 K=70</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>50.000000</xmpG:cyan>
+                           <xmpG:magenta>70.000000</xmpG:magenta>
+                           <xmpG:yellow>80.000000</xmpG:yellow>
+                           <xmpG:black>70.000000</xmpG:black>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </xmpG:Colorants>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <xmpG:groupName>Grays</xmpG:groupName>
+                  <xmpG:groupType>1</xmpG:groupType>
+                  <xmpG:Colorants>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=100</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>100.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=90</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>89.999400</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=80</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>79.998800</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=70</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>69.999700</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=60</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>59.999100</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=50</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>50.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=40</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>39.999400</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=30</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>29.998800</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=20</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>19.999700</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=10</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>9.999100</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=0 Y=0 K=5</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>0.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>4.998800</xmpG:black>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </xmpG:Colorants>
+               </rdf:li>
+               <rdf:li rdf:parseType="Resource">
+                  <xmpG:groupName>Brights</xmpG:groupName>
+                  <xmpG:groupType>1</xmpG:groupType>
+                  <xmpG:Colorants>
+                     <rdf:Seq>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=100 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>100.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=75 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>75.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=0 M=10 Y=95 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>0.000000</xmpG:cyan>
+                           <xmpG:magenta>10.000000</xmpG:magenta>
+                           <xmpG:yellow>95.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=85 M=10 Y=100 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>85.000000</xmpG:cyan>
+                           <xmpG:magenta>10.000000</xmpG:magenta>
+                           <xmpG:yellow>100.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=100 M=90 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>100.000000</xmpG:cyan>
+                           <xmpG:magenta>90.000000</xmpG:magenta>
+                           <xmpG:yellow>0.000000</xmpG:yellow>
+                           <xmpG:black>0.000000</xmpG:black>
+                        </rdf:li>
+                        <rdf:li rdf:parseType="Resource">
+                           <xmpG:swatchName>C=60 M=90 Y=0 K=0</xmpG:swatchName>
+                           <xmpG:mode>CMYK</xmpG:mode>
+                           <xmpG:type>PROCESS</xmpG:type>
+                           <xmpG:cyan>60.000000</xmpG:cyan>
+                           <xmpG:magenta>90.000000</xmpG:magenta>
+                           <xmpG:yellow>0.003100</xmpG:yellow>
+                           <xmpG:black>0.003100</xmpG:black>
+                        </rdf:li>
+                     </rdf:Seq>
+                  </xmpG:Colorants>
+               </rdf:li>
+            </rdf:Seq>
+         </xmpTPg:SwatchGroups>
+         <pdf:Producer>Adobe PDF library 11.00</pdf:Producer>
+      </rdf:Description>
+   </rdf:RDF>
+</x:xmpmeta>
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                                                                                                    
+                           
+<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[8 0 R]/Type/Pages>>
endobj
8 0 obj
<</ArtBox[14.7717 0.0 129.339 142.569]/BleedBox[0.0 0.0 144.0 144.0]/Contents 9 0 R/LastModified(D:20150504225859-05'00')/MediaBox[0.0 0.0 144.0 144.0]/Parent 3 0 R/PieceInfo<</Illustrator 10 0 R>>/Resources<</ColorSpace<</CS0 11 0 R>>/ExtGState<</GS0 12 0 R>>/Properties<</MC0 6 0 R>>/XObject<</Fm0 13 0 R>>>>/Thumb 14 0 R/TrimBox[0.0 0.0 144.0 144.0]/Type/Page>>
endobj
9 0 obj
<</Filter/FlateDecode/Length 1094>>stream
+H��WK��6
���@�A�M;�j�J�"��E�3�\? )K��*/[Y4��
������]�n�~�ps�ׅ\HI��c��}����gr�,ן>������r�a����sbG�����^�_�ǿ� [[�zv���\��^dG�
�Jsŧ��\����7�}a���u��o9NفH���X7�=�Ji'HC����4��
�J2r�Q�sϷ_�)��K�ɝ��O�3
�Y��Gc�u��7�B�=��%���M��*Zp�
.Eq�oB�=��.D���);�h3��>���+��8 
�o.$_��.��I�5����;���mo���&��̘$_
|���=U�_���gg� �%��+�K�RHu�����[��d�����W)Ճ;N���`�s���� շ��{�%��)�&��H4��Hr���b܃�W�T.(“B��IA���	��[䃰��Nj
�����1Z�<J�i�Q��Ź�"��(;Iݲ]��A���b�����
�)��p��hw��&��G���^.�
H��Mm}�9WJ;q@"�衃��e�w����
+�^���K@ �wa��Kv�oB\��K��Bj>ǰJ(
+���b{֕t
:0M��{Bػ甶|o �\�
+�Ɔ����/�;t2+�sBB_'�X_{�����
+IKX
���C
+�-�z�r�9����[n{o=�U�^!W�-4�5z�*�p
+<����/
�%ZK���d9���e#�0kˆY�Ȓ
K0#���E�ݰ�-2U
�K(�[ك�86�ѵ�u-uӍ��U?�a�vl�o���"�v�����]��]yr��vW*���}�
m�P1��Q�������1��u��$�)7��F��u���M:;��Ƿ�$����I�?���"|���V1
�~��'������Ei�p?Ѐl�t�6h�}@��,��[�����&��>6���9�
>EMC7X�(PcSdd�EB
����8�˸M%c��
��ĵ���?��*Ґ��SL�O�[�Q�"�TT�
�9C
r�(��4��Z
� Z�-b�a�K�i]3w%��ƹ��,��G�-��C�:�]�x+�k46<
���m�;������������  ���&
endstream
endobj
14 0 obj
<</BitsPerComponent 8/ColorSpace 15 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 18/Length 173/Width 18>>stream
+8;U<,]+Mh$$pt9J"tYm3V5n-nA/Dfcj)lPqi%@2')t@`t46[bRBD04@@VZR9(CUW(
+$:bbcUQE"S*YjcGG+(:!O"/eI\J.]Um)Q'jfo3t8/@=615I)?/2WpT/Pbt:oTfe$g
+2$P:FQEOj`IM6#4D&V_uV&UrqA8]A9nI5JZ>H,7~>
endstream
endobj
15 0 obj
[/Indexed/DeviceRGB 255 16 0 R]
endobj
16 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
+b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
+E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
+6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
+VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
+PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
13 0 obj
<</BBox[22.395 29.5117 121.605 -1.40723]/Group 17 0 R/Length 47/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ExtGState<</GS0 12 0 R>>/XObject<</Fm0 18 0 R>>>>/Subtype/Form>>stream
+q
+/GS0 gs
+0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Fm0 Do
+Q
+
endstream
endobj
17 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
18 0 obj
<</BBox[22.395 29.5117 121.605 -1.40723]/Group 19 0 R/Length 121/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</ColorSpace<</CS0 11 0 R>>/ExtGState<</GS0 12 0 R>>/Font<</TT0 5 0 R>>/ProcSet[/PDF/Text]>>/Subtype/Form>>stream
+BT
+/CS0 cs 0 0 0 1  scn
+/GS0 gs
+/TT0 1 Tf
+0 Tc 0 Tw 0 Ts 100 Tz 0 Tr 30.4166 0 0 28.5369 22.395 5.7266 Tm
+(pdal.io)Tj
+ET
+
endstream
endobj
19 0 obj
<</I true/K false/S/Transparency/Type/Group>>
endobj
5 0 obj
<</BaseFont/QNXZVP+Bauhaus93/Encoding/WinAnsiEncoding/FirstChar 46/FontDescriptor 20 0 R/LastChar 112/Subtype/TrueType/Type/Font/Widths[378 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 588 0 0 579 0 0 0 0 290 0 0 290 0 0 559 579]>>
endobj
20 0 obj
<</Ascent 899/CapHeight 667/Descent -250/Flags 32/FontBBox[-113 -250 1276 899]/FontFamily(Bauhaus 93)/FontFile2 21 0 R/FontName/QNXZVP+Bauhaus93/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 180/Type/FontDescriptor/XHeight 487>>
endobj
21 0 obj
<</Filter/FlateDecode/Length 2451/Length1 4361>>stream
+H��WkTT�����
#3<Q�2(j���"!�1�I��!��
����5 �W6Y5��@0�Yht5�j�`Ո�F�I}`ҕ��{�ϝ�#�6�ѕ_�g}�����}������u�XU ��p�2;#&
<�IDV��Q�% Z�W�<���V��b���$��
��8�{*�(�/D��x��_şENW�v߄�m�J�
���rx�F��NG�6��7�H�
��~,���Ғ�.Ͻ�4���(����Ɵ` ��	�㊬�JQr/�g4g�:�Ro�
0��Lϖ �;T'G�Z]
����L5- G�FBb��P���/4r� ��^�A�F_���? ppP𐐡Æ��Iᖈ##G�
�H�؟E����[����<qB��щ�)�M�<e��3Rg>>뉴�s�g���ʞ��O>�˅�r
���k�m|��߿�cg�o�z������ޯ��`_C���/��/��j��%
+�o�T�e��[�]W�]=���rx���\��O�������s/n���gϝ�ۇ��	ܗ.���� [...]
+a%�[�B���V���Y����>M� x��+�C\��+����BM��B�^�d|���0.��
#,��ldM��µU��+���k
��3�6�?�����z 1�z�w������G�m����֋��	N���c���#�ȁ��/�?����`4�%4xQ��S���9?�o���̸8� �x��"#,b`�`k<�
yE>Kb.|C��'
K�J�Ǒ2�Y=�q�D�]��A���YI�q��S��XWo��8(�B�/���a@
�X7�G������!!&ʱ��_
�?`��=D����Y�
N�'.�
��!����Gϐ���J;�S$�5|rt�,�&!����M�d��3$A��Gd�'d
Sw,'.�k�r�9: 8�����Yi�����p���]�?:�)�o G��ԣ:ay	7����rU��������P��
\�������Yck��ֹ�߮��0� ��
+<�9Xɣo,�'w�=�꽸��s�������ww�ɂ/z��@�����۸�H:
�Kn�pA>I���2�������Vw��D���'Ο?19W�-o��{U��"���KMn�|?�n!XNh��J
xX�5AG�c�%��H�Z���Zp�@�"W�%F���V�$���\
++1��ų�I
��Ȭ�$���]��
����"_���W7����W*�2l�8��k�(��Æ&%X	6������Ո
��
��q��a�P|5\��qt�-�v�+�,�z@����
�1:��G�����d-�|�y�\�
ģ�g���
�g
+��$�
9������7C�ȃMh�J�
��E|v
l�?���B�(�cP�N�y�5���x
uQ�~�q�l�
+>��G+ͬw_i�Ee/��vÓ��
&yV�;����B6�
��E�l��؎�tp�tD�����r.�gE[�
b�q8�nF�
��������_"��3!��'ںa*d��V
Ty��*��b�"$�
gv~(r����qF�A��5��`������Vy2��#^�K�bc�n���C�U�q8�Wy �K�N�~�{G9���^���C�
�k���{��������
(�%
�{�\
�o�:Wy��@�{y jM��`�>Ƚ�#�̗n+��	�j��K]_5�"�w< ���dċm�c��A�",�Z�����~���A�$�����k�א΀
D��A���b�a
+��.!��]%��l�ED�=᫾'��6����v�o&�<†HBlǼ�r��+�m(�X�0G�\F��E
+D
-C�.�
щ|��|5��A�H�x
+��L��m�?Ikd�D�5���P�t���O��o;����m��R���W*\Ҿ�WN�Y���
�o��t
u����Ofߌ<��0
24����k�N�h:�Ϗi:��uMA":���Q�صڱ�`�4���bEqa�K�KL�J����_�5'j�cU�c��D���K
����(�!�)a(gHd(vKt�b�@��J ?�I)�2X�1���Q��d�c�`�bc`�fp�Q
+T"�����&�y9`�	��T�;�u�a�{9p13311�"��Qi�6���
 �^��
endstream
endobj
12 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
11 0 obj
[/ICCBased 22 0 R]
endobj
22 0 obj
<</Filter/FlateDecode/Length 389757/N 4>>stream
+H���uT�K�tK���KJI,��t(݋�4�K���%ҹ�H�4J#�Ғ�(H
+w���q�y�y��~�3��̙g�<3�� �Y9El
+ @� ]��!O��-@� � �\����+BVKK
��:�
OX�~�����WCa���iHKL ���0�q�Y���	`�5 �c����k��
+ X�] �x=�
��
�8����	�X ��Ŀ׽�>�.�f���#aP�����
�n�		�D^{y8�����	
�d�p
H��	st��:Y����׬c xc
 I�V�?S��!�:��_����
�9[�YbQ�P�~�+rA
+S�h�����Hh���t^��

�'0�߅�™kY�X��Y9�Yq�q�p��l�'���W����z�E����E$�%
D>,��^|t*K)�%/�`���\�ҫ����:���&D
�
���[�7��dplDa5�|�mb���4�,�y�y��{�e��5�
������������3��
�⚅,t+w��h�l���
��
��A

��
�	�
m
k
+��xYU��
�H�&%��Ȥ
+�q��O'M�z�3�K�T�@v[NUnn^\�o�]�a�b�Tr��t�l��mE]e~U�+�j�א�Z�:�z��a�q�i�����5����};�C�S��������[�\_�ۆw�����C�a��Q�1������;>�L$Lz}4��:%8M7�l̎��Χ/�}�XT^�]�X>\�Ym[���n�!�ycsk��kƶ�ʷ;��v{���p����I�s���0���X������ݯ�3�s�󝋒�&�$��W�WW�*��)���!�$�$�%�!e$c��HNOAKIMEq��������
�����ƕ;KL�w�@��Y�X;ؚ��8^�+�Dsp����f���K�O��TC�P�p�J%���D=��+�+���O%$*������������8�I�Z�\�Z�^�U�K�_wL�������"d�x�����]�}����� �����>�9�=�;��s���_G�8/�̹N!G�z�[<�=��2�|B}����P�Q�z�l�H0Wc(E�e�n�|�P [...]
��kJХ�e����J�*�+��篍k�j5���U���[�ZU�
��h��0�|�e�m������6�]B�@�`�P�p�H�����������?QM1Msψ�*�iϛ.��Z
[JY�Z)X-]��R�޸Ѻپ���w�������?��@��?��5� ǖ'v�N��g��
��
+��W������3�g����L�C#u!��M�M�M�E�vAms˔F�V�N���A���̝GL�w�A�̬,��l�l�ؿs�ݛ�
���n��ͽ����+���!B�²"��<b��4$����݇kR�ғ��e�d���k*�J��Y*/TS
'<�S�V�҈ԌЊЎԉЍЋЏ0�4�2����?M4I~�f�����s-�,󡅰"+�u�M�m�]�}�C�c�S�Q�\�R�Z��s�v����
������G��i��H����3G�F�FaG�D�Ƭ��č��&�$V''g�$�F���LG��˰�4͂d����j�i�kh��C�f%V�Ne��Aq�YU�ڪG^/�
�Ճ���
��[�Z{�Vڱ:�;�`��=�c}��n�K
�
���Fv�(ރ��> 'R&k?���3�?�4+:�6o���
���T�\�ұڿ6���������V����ʝ�o���F?L����T;�:�>�::>�:�;��eq�vx^sa���wݥ��ʕ��'�_� E�F�O\D�K�LtAnF�F)F�|���
�ԭ6�\�`�@z?�m+F�;�L�wiA h�y���͖������)���M���g�w�~_
�@���ZH_XA,�"F)�%�/�*9���a�Z:�Q���,\�B^_AU񡒀2�
+�*����'[j
��o5[����uR1u��h`f�m$1�xJgBdr�l�t�l�y�y�E�e$�fe�g-g#`�dGbwj��0���TOC9;��� �ܨ��ݿx�z6z�x��8��I����P��=A���!.��a�Axۑ ��ϊ����}�b�G�-����ޒē����x�`�G�/����Ԝ��������q�_�O�?�0�"��������۬խЮ˯ǰı²����µŶȷ͸ӹۺ������ �0�@�R�f�zƏǦȾ�����
�*�G�cЀџҿ����'�L�sٛ������F�s�����M����6����+����1����M����Z�����:�{����� � � ��T�?�~ò��~i��~L}��~cbA�~�Da�d���
��~t�y�~W����~O��>~\���/~���|�~���`���C ��x
������}%��H}
�1�X}%�z��}K�
��}��
{N}׋<_�~7��A�~��-
ψ��|���|��Dz|+��E|[���s|���z}
��^�}w�O@�}��-�~ċ��	{G�u��{D�z�{]�Ĭ�{��f�{�Zx�|[��]�|ϕM?�}R��<}Ǝ���z��]�Yz��Hħz����|z�=��{L�Nw�{���\�|=��>�|��v|ېI�8z/�r�
z�;�bz'�s�Mzd�6��zɬqv�{D�[�{��0>
|;�
|���
y�����y��a�Iy��?y�a��zY��vzݮ�[{^��=c{Ф�I{R��*y�߄��yf���Uy`��Vy���y���uKz��Zi{
��<�{z�%�zȎ���~+�~� }��͇}W���0}3���}HtЄ�}�Zk��}�=���~���z��ɇ��� ���}�����!�~����Єd�*s}��Y���<9������w����p���S�w�u�����������u�VrU���W��؈|;,�뇔��{���R�s��Ѳ��������;����:�8����q)�P�CV���
:4�.��8�����Ȅ���2������񡂡?�U�����p
����V�u��9S���
�����c�
�b�փ
����R�����.�ՁN��n��	��U��38���8���A�/����ͬ�������δz��6�߆�ө�n1����T\�e��7݀t�XT�� [...]
+�\��l�G�N��ػ�ځ��N�ā�a�5�t��N��zl�ߴ�S<��H6���*���<�a|��k�z|C�V��|�Ǎ|����|Ik���|�Ru��}26��'~2����F�-����B���*���o������������j�����Q^���@5z�I�`����ٳ� �$ĝ�"����c�ߘ���&�U����ij���|PJ�ˇv4v�y���V���G����.�2�{�������
�����萾hS�掼O[���3��Œ
�(����J��ьx�&�$�Ԟs�҉h�
+~�2��gK�>�-N}�o��2ن
��
N�%��է�������� ���>�w���֣A}⇤�\fX����M��ݘ�2,����
��K��Ԑ�3�����g���°����[��}
+�0�e��6��M
�_��1��
�?

���1ӣ���Ǿ���I��^����I|B�̯d��ܪwL���e1$���:
������r�W������]�
��1���S{��z�|di����L
���g0��\��
U��������{[���G{!����{	�ޔ`{&y�E{xbi�e{�Jr��|�/c�5}~
+~���:����f�#���������M�Kx+�C��a|�u��I~����.y�W��	ώ���әߎ��
�%�¡唘����[��w!�^�T`����^H��*��-�����	5�G��Ȩ�瘎��=�Π����4���r��v����_�ҍRG��f��,ދ̋������|�,���ƕ����{�
�����Ҙ�t�ٕ�^��1��F�ő�,;�'��<�!���_���������Y�l�~�J���J��t�S�#]����'FA�4��+����;ۊL�P�f�&��ɔ��ޝ������ը�s@�夏]�0�E�����+:���ևSS	𧠨��jVPp,<XQ)�XVl�(Js�&�J!����K{�@B��E�.
�e���WqQ䆓���~3��7���F�HI^�\�������ӡ���+j&Y���b�dML��
�{#�����)F���A�;q��T0��_�
^��9Iݤ�xֺ�ƢYFh�9Յ�hX;J���l�����n+j�ġ�(�m,ּJ�����(Va�V/���aؑ�@�Q~.�8_]���7]�������
��g�|�F�)
-�/��MH�|����P��8�%�oFx��C��<��R�l�
A�^����Q�l�
�z�rJAU�U����d*�
���N�$i܏�
#�v
b7F�*4ނ���
+
���pv�i�x֖�����I��o�����J۱�#�
+��W��h�ԉ�l�"�kx
wVjG�Dz���*��ߜx�W���:Ʃd��P���$�����j�4W�M��[��,]�ʫ$���W��$I�&��N���}�7¨
s������1@�9�TɎ.�E��zN�Df��*uwr ����	�
*�#����,�h؅��"�8=���N�
�%�=(�p���Qu�9s�Lӓ(�&��w�ھ�?��ER
�AHi.R�~	Ԅ�6�����:�*tД3*���۱�x#�m?r~3��2�+�w����p���6�yX
a�TO�#��
+U�¼<�_)�
I�(��}��W2S�X U��w����
M��f�_T�)����?k��YYF��K8��u;J$��þ*1T� >,��#h�%T�,�Qۥ{[��s�:��9󅼓�&^!Փ�a��@�!��"
y �
+��.��Jl6m�Hj�u�,b�U6�+s��
�hܸd�-ʥ�}�wi� �-s�un=0�Ľ�i-_�*)U��_ˈ�
���b$
��na+;ϧT�
;p�pA7����C�4��.*�Iߥ�a�8��M��m�.���ACi���7�\j|fi������ԫ)��]ޭ�j����ʄ���U�]�3(í�
�wh�J��c�h-�4x7���h׿*
P
0�H됎L����랇ڡu��Â������,�{�Bz}��8�v�g�g
�Ҳ�d[�!XTZ�Z.��vl�A���g��
+{;S�
m�`v��ؿ`~�?g�a.�
+3�Ì�{����L�^�������W�����Y�e�4��]�L�<pq޴���������k���!��G�
�]�
l v���:DeH��Xq��E��K4kHoS|�X�ֽO�7����o���*�*�+ ����2���h�`���?���k6ݤg���,�M{ST3��`�b5��XE�#*�і}�
z�#C�//��
���7��}��V;�9�T��
)?�ވ���2[�ُ�]�n�$�~�
���f�Ќ,�d���p,��B�AdrH��]`u��P��V�k�aEV�vYN��U5/y�fD.�ݡ\ �1����Q�a#K��E�:�|��N[k�=�&[],����1$��ξ�B���0Y�(�ߊq
$���]�!{Ik5�U�3�j�=Or���)�<V��
A
8H��:YjD!��L_��|O����l�xE{EY[��9��#Ev�x���2�E��as=�[R���Q��i��*��i����66�`�����ώ,��+�#�,i��1����A2��� @������ƪ�W���m���H�XJ�NP�+�)�̧�+��=l��$�zU�kb��]�i��[:��<�旰��A��r)<�� ���+e.��
+�%���ӂ�B�s�W�����ď[��~�}F.+}W����t�=�� 
+��K�e&��,�^��-��v�a�(0����

�t�tz�S���w�0D��6j��tl��.\�lVդ����)��-
g�	[ѭ�'��x�|�|D�D�ߵ�����v��wi���8�ư=�݋�bY��
+���TC7j�KI���X�7 о� s�{��W|}��&饷MR����Q��rs�%5
ԯ1�G��
�*=��V�DM� �鶢l���`JY����Ke���\
+��kl�=��ּ sr͌�
+����_L� �\�E܋ʮܤH)�B���"�nĕ)J�ۙ��3g��Y�i&M{&MʹI��B+!%��,O���=Y>7o����k����!w����I�~� Ir�a^
=�C�#Z��h��`W�u}p����)��"�z�7ff&�3����$��
�F�����J8Ҷ5���m�
+
u��R�_,^V��S&�aR�~Pf��LL_Dw��*��`\�-�9]q�����
�
�
�����T�I�6)�>u6	D�`e͢/���xq�Y%�9��ʜ�;�åO
��
d\˾�P�&eR�z��;�]����.�R�<o��Ρ�]�P{?�:�
r̨\���ʻb	�Ҥ�3|����m �s�؟���W�9����oZt]Rn��
Å\�c�W�#+�n�I&�g����y��Ajs�N�06�HiD����'@����J+
��a5V~�cR�I��̫�vwtU��c[3+?F|l(��i��U�����^+O�?R��s����� 1�Hqil��$Wþh����=���(�RE
+��1�B��vџ��n��F/��
Bs�G�����M�Y����9>�ܖ3��ȗqI��
ڣ��5����V��_�1ȣ�β��i��JiX�0�WV���H[8g�� _�/���
+n3�
`�	���38A.|�f|ј0I��6�b�v�%�&� ;Y��㿜�҄# �d��D.)��.p�'��3�J�12K[D�uɥ$s8�I<�R�i�m�J��8�}��f�� ���DJ�ƀ຃ws�!�ʫ���r��RX��
-\y^�*�̏Ld'�雲9?)

"�q��^��5�/<4��i
+��Q<����
+��;/��Ա�JB"���7��t͚��,m��Xdھ^�;촞��&s�`�Y�"������Y
�����{>Ɗ�.���z^48��e!��R�6}��vc����Mi�oz���o�0�'�=�~���i,3�:?-���?oS,���9���w������#��R�Oa����������
;�	?�
�����p��B����
+�֞I����O�
ݟ�e#}ԯ�N$�\
�l?�
]�,��
��y,��>&Р����q]�yh�0Aq��K)ĝB�F��ҍcH:��-h-�ǟc���f)�K9T��127]����q��EjL���<>h��;�|�U
+��������d�p�G
+ƫ�`�&!���8a
��l���`83>�.��q��ɂ�n������A�9
+;�
���`��H��B�y�g���
KB���*k�㰗2fF�=#��OM�
� �eT?
+m��Tm��
�_����OBۊV ��<ɆF('�n3u�G~�Ȯ#�7Њ�9��[��١`N�s�.�P..콤
'Knp��F�
�\�?
�B>���-����`����N��W�O�OW�B���l�f��x��W�^�<x==���Z/~�4/�.*g™�Pʲ�<*V-}&���ٟ�w�z��Wq=g?:��;[���-�(�Z6*<�Ȉ��`p?���2���eQ�yў>�b���-_�

x&*/��(�j����_�=߆󑊢�zF���`�Ld��E:���SN��ʔ@S� 0���3�|T�O�Ko�k��t��o}bF���z$4���-���,�.m��'j*J���|)J
�6�B������P
^�3ewܫpX���.��*��,0��7xP�ڳ�:2�X�
OT�21|"7��=<J}|�wl\��}vGic��Q����S�]�<�C�jȹ*	@8�-f�������݂={ñ(
����]�x�Ѩ�n���?�ϑ]�q�O��ˏ�ExyU���c�0��t�M�]��u3���
j �o)(Co��~2�s�Ѓl�����x��֙
��
�{��L�7z<��"�!s���[��H��a����*�{���1��l��1��,V��&I*[�v�$�#1/�� 5�Z���p(3��]�8��i2|(�2�
| z�D ��5 N�s֬����viV�`D�0Û���]���R)L�!'n��"� <v~�x��)�~�if��
+wnK�ܑQV�B�"�����Խp�� *�+ت�ED���*� �����(���o	B�'{p���wH؆ʴ*JѪmA-n��WjGE���ޯ�y~�~?r�I^
WO
��@�����l)��ƶ�W��giX��
�"�C�#�k��nA���
�˻�r���)b�!�U�ڲI���b=��>�0�ߴ���y}ĸB)H�[�����Fs�
��V�+���̯+Y(I���(����x&��9JAI���'tXm�y�G�=�X[8�TK�)�2��
<�
TSR�v�x��lȓGO�|�g�/�{�>���
4��/�g�R��F�ȶ��&�A�5���2�
uЯ*B<�i�� �0�g�r+O��A��,0���-�b�u�g[�\~�-����4:I>幃A��uF�Ǟѧ��u�D���)B�,�
*�?n�`
	'qQIz���K֗�4�{��
B_g�6�8�#�ʉ2.A�$69�!�̒�ub1&D�3Q�x��"�
>ɏn��νx�VG�&��Tۨ����Ó)�sx�d-5��Kx [...]
��P��mBU#g���B�g˷�)��-*�E
+ar���>�>Ƶrn�[ɭ�F �-I���ByѸP�=��ĶK�UC
w��G
�D��}�����"��vN��.p�]�]Q��8u�Y��{�#q��C��v}sa���x_o��y�iN�r�����(�
d8a�w�2C�Q�}V�8�UWO\�g����
��\�����yk�@��d���c��Z�t���9$��u
+p��-���1
���z(�=�f)
+�v��
�ě9����2�
 w	u��煼��ת��#����{P6�+D��q3HIi����%��B�C��
b�!���kc5�&U	):X�$܎���[��b�2�
*@�PkcӘ�d�oT�B_L1Uwi"�)��=�2#���pI9,�R�O>�T@>�;�bn�����D
��PuC����
fk���^�^��\��G~�
 ��o�L�Rc�Hqܮ=-8^5Oń�y*9��:-\�g8:T<��?*����C;��[���y�X���+����I�;��lRL߭�$D��vY�TQ6�Dy��Vm��fy%/sIs��mXP1�Lռȭ����vow)�QB�b����_ L�V�wu�p����eė���O*��|�+�]�(uH�װ4�W�U��.�{ �4�\�m.Q��w
�����R~MAi���Rz+%�B����K��z�?'�{ �� ��
k�҉
�a��a�{���H]��sX}d����a~�3��_�au���Qz�	
�������VM\ĵv5I0�L�M�)�DŽ�p���1��:5�
��,�&����4��
%���!$
}o���c��ޤ�A�]R^x���T◬M&/B�:D�wA��2�4�����?�c�d&g]5�b���4���a?������i�ǐ��  ��Ĉ��.OA
6�vfv�
s�d��(5yT��H���/P��=�(�a��;zUs�
�b�W��x�Da�)E�ʼ�	$�sg�PJ�r�e�Y�3 �w��`�c��F�o�0|U[j5k��.�5�J��&�����e�T��o�r	��È´��}I	l�p�jC���8c���5�J=g�%U��o�|L5��8E"
+ِ��
�[A
k]�����J��͆�VB�M�"{�N�r�����Q���ih Ц@�Y?��6��^߫ZWٯ�]ذ���c؋h�KSLj:>�O
ɲ���.���ݰ��Q�{5mm<ٷ?^�v"��}�ъw��9��O��&�v��X�7�km[	�,70nΒ7|��e��P��\I;<��u�^`u�!��$P����B
+ET9��ٲF��W��c����m$��="G
+}K�e��6�~֔G_���M�DԿ�s`� g�]
�v�p-9�\N�d{:�:�gv�H�_3fC;}�Ɠ
 P�� �N���p�H�
��d�U9u�;���9$8w��
���3�r�#�A�F�iD1�n�����
-}��t�e�  ���D��H�!5$�
�,I�Q:�ȖR���1�3��<�7��
�j�1�[�ЊT��m���WwzU�x��|����վ+ք{������W��>��p���:ʤ�JRqY���^���`ǯ�<�~�j��!m�r.�B�+��'���OyY+��fN*żt
�W�$��W\�2��� �M_�c[�g������jj�%WuU{{�,_��p�W��n%}P�I^�W�|nˆ;c!�p���u�cʨ�N!k#���)k��sd��5n�Ž�6Q{H10���U�
+�
�
�-�"{⠇TZG �R�,��ɇjࣶZw8j	ICF���:�b
[	
�\+�?�
+���oA
n'a
+
+��O�j0���`�%��|�^�/si�_�Xǣ�Lqi�w]�I�έ�D"J���!y�!�Զ�n��0�R�	z�WC��c�c�h���ūK�_R
[��*)!
OSo��u���Oշ�܌W���ze�W�C���a�����ϝ�L���/�QB�o�_��k�/cg���&MV?��֫5z�� !g����"?w��P͚�I�Q"����P�AdtE)q4��j���G�s���n�{"�
���}e��UM�rk��zvi89C}���
X�LB1W�".ꕝ^M
�����t?WK�L�w�DP]t�U
�揊1r�J���ոK��V����GM;ph�շm� �v>��-wg����FN�
��cI�P�#q��W�����I
��;�N�ٶ��A�)���H~�7i� t�hl�~��~dz�Y�
C����x�2>*c&�m�b����{9f�1X*�L��	�#>�
��
+
V@���g蒼]7n249=M����K%
�;��,����F�\j�
�1��kl�Z�i���؊�����ΐ�.|Q��9��а�$_.!
��;�̿�l���E�,����ɥDi�������}D��
3^�a
`Y5�
g{J=m��ɳ���y�3���C�M'�jM�-i�Ц�m��
�n5?	�SJ�E+U~ �;����q.t�Xd���~���~p*Q�eS��%�.��Ћ�"ư��Bs���Z�6-�����6[\d;�^z4�`;64藸����ͱw���
;����|�+&�A�f�LU�3���X�T��m���)l�F�'l
�V��ɺ�gcG�Ob�bɜ9�;v
\�C��L,�
>B?�KGC��e"�z
-@��E�����H���</�s�=/�ᑍY���{��P��w\L�1A
�|U{�_� ���"҉w�+Gm�
�$�#�n��o���x��N����+���}M�9�MbΥ�_ at Tܲ�'1 �,�q��$;��!�헁h1kb���
�����Bo
+�\��w�J����
���uY/|ϕd<w��Τc�~ώ�����
x�¡�#d��g3�����~����g�‡� xT2��ȵ��6s3�i75��ƻ�Z�E\1�\�ɺ�W�A' ײ
�� M	}?;ʂ�8|R�0S�#❣� ��CۿU��b0���L7ֽ`���hcEk�T\�m
�+	6�&�=����B�9)� �곌����
\�@�^
jk��a�ƚ��Ph�<��=T��6�K^MK�͋=�݊�$�Q����-�U�&�>ILp<�5������'��҉�����$>��8#�g�L�2�m�	��
c�����1
��c�
��F�w)�P��+�r�kC
q�p/��u8#�!�*
g��
°�Pa�`v�u��@��o�H�`"Ž��:�z���
_��Q<,D�>'Ӆ��WP��� .����`�x�W��3�|!6��	�
+�5���
El�["�,0�	e���[Oz��0~l�U�O��+����&x��kP��c|u��$k�.�?�{Qp""k������r�6��isV�a���=~�@�W�_�
+.<�7�
+��2�#h?c~�m'r��E�_�xs��6����a��������G�+���K
1��4���L^kUp�^^��_�� m�S^d�Ш���'����>���}��5�����$:τ!
E��[�b�Jx&�n� t�(��m�;Z��s�F5u�q �X�.�Ղ�BqKP��� *�����l���%{�ٓ{�'��f';�,TT,�b���h
�Uq�2Z
���3���;�}�����T9�vw��R�R;G
D�
+
K�*��/@hUv������$�j�!
�@�
�vyבm���,W�|-͢	�^�
�~�D�_��􆭍�"��ĉ����#c�禘�*�X/��Ϝ�e>�|�XH��;�:��)���d9gƖ�4�aB��
��Q4 
�E� �w�,C
+ۯB�U�#�>�SV�$L�-��5g�V	ϯ*�B����#��}�
np�þ�td�����U�$D�b&$^�\^�&Z"/˺+�-}��%�Z�
��:}��9���A��Yu��	��rT�lP0�"���~!	�͚*@5K�?�߫Z�-�P������=
j�>��܈�[��O?)�a5�
+�����?��W���Us����y�5^(ge�${C����m>�	"���G�գ+�$�踿��ϫ&��
Xw������
��8?��g��,'ō�=�"����/x����N����M)���'��������EF��q�rf�
CįQ9ZY�$r!���6m<YZС.�<��V^�z{U�S=
�P
+k�X%3�x��fj��n%^�����
i𴵻���s���3�0���q�h�$��`kܯ�
D& ��!�M����1��W�}훌1r����=2N��Sd�k�b�
�\��ŀ�p���d�W}^�'�S^}�+P�0iC�
�1�R� 0hDz[P�� �&!��v@�B��]P]V< �SܒG�L�O�
NgK]+&
��-A
+�2���#�sL4�j��&�D���i�b&,�A��MS���U�D��9���y�
+v���98�����j�c7MI�~�(�sL#�}�3���(M�^ N�i�E�K�E8�mi�	u�zI�$N�r|}*��+�'�4��w���{�y%��F $��8
��@�N�z��^G.g����-1Vfk�)��G�����]�u�6K"���K���1�p���P��8����r���>�)�4�
��V�9�k�J�$#��
Fь�X��٥�C��p�[��ģ)C���S�;rFP#�I�m�K�G<��h/��U�-,C
��O�
kOK�YY�;�MH-�t��%�^N��ξ�B���7"
+���O�aj��X�_84�V(N��-{D)��F�0�$�!�o�J��d�v/_�
�(�ǀ��U�H8�B �c�1����f�b5u��&�*�ҽ�n�2s���G4
0:�\=Y2�߯	�$bi�8亵M�$ҙ:ut�N�)��Eh��Dh��d�j�21|�*T��V�˰���T�5ȮM7-�^��S���84Te��hRҨj�[�U�G��U���1���K{�Nh6v�g֨�+��G?���`
lݔ$Rq-�.ަ2��S�e�8
pSՖ�k!�X��C�\�z0�0	nlh��j�<~I�����,K���r�L�)�IM����9M
�_���c+"vҜݤ�L���$>ɺ��z���j>>��X�9,�ZL-j��Ib�k��ȉ8�˚?v�t�����x������P�IO}�_ay@
��:����|Ve�6�����ubd/e�3<֭�z�t��e�a��'�c�LaM
+�lz&,f^�_!��?�l����2x2�X�y
���ń�3D���
�)�\ ?�y�e�
~��4��O�+ 9$�
�
+���E�V�D<�O0�Vbj&��mLB�2Z܈�b9��U��;n���6L0	�+��oˇCr�E.~�>T�
Sؓ�7X����?MM�!���Լu�O��t����P
Cbt;���i����ް��a��@gW��#�@��4c�9.D���o�
z2>M�5��i�~�u0�
�q�s
�wQ�9�ǸLt��삟�Mz)>���kɝ���I�;���io�"���U )��]$Y���L
>$����$T����:gUo$���UK���,�C�`sCMAJMÄ��K��C(��g]���ٮ9�s�U�G�0?����L�5���
�QM%��0O�l��5&���`�Ƒ
1,��x�'���{��k+�mY�}����-J�s#\��d���:�i/�N�K�����  \8�H�����stQ#��-�ND�)�.s*�Z���y�m�n�f����\�1l����{��(E�=�VGW��9��s�:��?���w���ǟ�Q�Z�sC��6��A�1���ƃ��6K�@�8��O�UY�^��`���7��������j6�@�9?,y����
t4&�}"�T��-
+�\Y&k���V��x�녣3��9��1ٵqQ�=�b�eMq\���
�����`/nņ|���2��͌Jkz�D�mͫ�IR4�\~5Nl��օ���KɁZ]T�C�3�l�̅��D�3jSS�)�t��Ww$IX�[�w�V��
+WT���U�w^P�eU����h�WE�^ؓ~W�c�h���s
�s��I��g�����`��w��g�s
(�5��� ��mr��
���]
��
�B`7Jf�A�

���aA�3Ɠ��G�����?{�O[
�?�x�j�/����Z�*7�e�x��X�z�
Ά��})��C���?`��K�c�M����Ռ��&)����Y�5����J]q':]$�؞�]Yv
x�(�����ı��H1��e�U����>�_0�b�?*񸨎�b����
¤،���
���D���;W�xm]|N�7U��13*�;��.�=��>���S�Üj
)��CM��>��.��e�I����1���/�Q�v����6T�
kk
+�Ɯn\\�F�F��V#���Xd���
e�&~�WE��7�"�bj��
��u��^I@�j@�bQ�
W��k��8���w��_�D
��^��z����
x�Z�KA
�_`�T}�]
+x�}�Ё�M0S�,r����V+	K��O&�ƈ�`�;�E{irf0 F�]�� w86f�

����fm_8���c3����V�<)�r1��p���� +h��s|p�
� !Q��P'�Ղ
��ʛ����2�r�Ӥe��j4Y�
r���,
�r�?4�
! U��q�]f�(��*&umM+
�;�1�
+-���c�8�C���j�L=L��1�TDJ���7���>����)BH�*�c�HY}~�xI,{��7��W����jW�ާ�ʇ��h�g�_���Yov�MKi��N>���
Q��R���ǧ}��A��Q�j^��G
�s��yJG"�?txt,L��>�֍p��_��>�Po$��^<�%}���K�D��S4�
+�*S�<ܖ�y�d;���éIJ��~J�M�n>��ȸcI6��u���ɖژ��䩊i77�_�5W�2'	9�
�t�^}/��8%wd�� �0k��)��ͦ�F9
����k����ih��3�Sh�
�PB�U�Lz��s���'0�$Y�/L3����o�����
l���|��f
�ɪ\AW#�si��S�-�O^�I��+�3��6���xas�� ���@M��
+�A
h��m�4�5 V�-��'
ѵ�1��� S+
��
~*�
�%~k� ��˝��ʉl
�*�
+�lك�=�3���_2~���OgP��s
+�C�����c���d���[�a�ے{<Х��j�A	{! ߲ۓ
���;O'��9+wEH�E�����&�J��V�?f�iӺ j0�5
瀶bhW�Zx�o=��ƺ
0���z���hK5�m���o��v
(Y�Ou���t�;���e=��R�*
��yMV�n�,�$v:��Q�ڳE��.�y�Vl�;��svn��,��Wi.[�����@�����34S��D_!���M���F�>J柣ND ��@$�Y�~�-����C�Mu
(+lBpБ��^��#$�~�2è
/@̣�6 3�n�h�
+�;������۪.��������3F��q3��\َv�Zn�Z"/��vNF����N�J2V{�#ΚV�s����e_쑮�T��a�8C¢�!Η��>F��L��\�
�M{���5��eH~7;F��	�	�A���������B?���V���Y�=۩��Q i9�J.sӿc%��FVb�dեiL��`�a)kD���=W����
���
��� \n����e�>�N�X7Ƒ†2I��Y
f-�to7���/�~��U��as[��`W��*
v3_�`~����:k��� 
�j�R("�E
+*���
+��e)DDI��ss��,�f_n6�"���:hm�h+�]Aqñ��Qq��S�a����9�{~8�|�~b�h6�G���ZĠםN\�h��+��(E3�0�~������k�
T�MG����1�:zk�a'L��G�����2�>����, gt
���X&�@�?e%�
+�����=@��Ih�s��
��)H
��U�OeX^m��7R7�~�,���,�
�\j�����J�Ԍf�ͬ����
�8!*�]�JR:��W�R�]�M�ɚ�
�P��Z��;��J�N�.8ɦ������,�[�r*�Α�]M��M"wa�X)Lbjd�`�>:�?����|:?u��>^��G���$��fa��.�
+
ʥ_�S��%�ED�8�
�J��=�ĕK���{����
�6r
z�G��G�� ���
��U�i�<����K�g
��"���^ �q�
+����I6����vP����W�y^,��u�c/ 5��@�:ǹ+
[��N��+�l�i�{��P�#^�
�y����v�,ñ������-��N���ѳH�⺣<֡g�x���V�<
/���
nb�
��6���󴳜�Ρ
 �+nhB˾�P��oT(�W��#�#ĉTw�ZU
}
� w-��v��T����-9O᭺HI�z)����� �z�9��R'�d�I5��a��Z��GS˟�ag��W=��.�P1ٜ y?����2��
��X�)r�4VaG������X����Be�`9�Q1��͚@8�5��
���������$���W?�D�}��z��2�*�
+���
��p�t�
+����;Br\ܕ�'>
���-��v�
�C�Neʔ�����L-ʌ�q��K�H���r
�7�I�
d<�����B
�gNelB^փRγF2��A�qCR�&�t���7߄��{"
D9����u)��C��w���1��t�}?"���'�[�7o�̩�~�1�{�>R�u*�
��ʖd�C��l���u�tqf�2[�l�~{S4�>�J$����.nQ�nl�P�#� x��])By`r+��w����LH?����VD:�|��iU�G��~ժ�+��&+R��b� gP��>��}�����W�Թ�k�Qǖ]WSk
q�w���Z
+�D�Q���d����V���d�24����K�G�M�v���U
35��K�J~�4 & j��w�J�����*��y�;��X�߉˔��O���@��5�hw)�񘴕�o�-9E:��_�
�̂�o����&�6#�V��(ѽS�-te$
�פp}�4�%�4m�rn�z����he4�KX*��KÃ����2�9�ʩ�~���'Ǥ�l|O5ÍB�
+�;�^��j�㛑Q�`�exH��;�J�\*�`l���˴K�h��k
+&����t���F|(��8Vǡ�ܷ�
R���:ϳ��o�G*UjSKk��nR�
��gl�
��ޅ-�
6���&��Nŗ������7O
�4��rGm��O[du_T��vY�{�
̏Iy�\�aR�Ky��&�P�7ݪJ)�l���"�W�5�{K�� ���S_����j 0WSW;�w�ix��F1�^l�О伴^�'�
1���b�%�OA�����X�hq)L�7��j�}=�9PX��=��n��`��ɗKX#Cù�A
*7{� �j��WܴT�By�����ufכ���d=�A��f��]����F���=�_u*`�q������+�_i݋\�^`BaE�|�S&����%
Z�
�a�8����+Q��g�Q�[�IK��-�j��IKr2T�cju�=A
�ʧ�Q�"7��{ٮ���ם*�X|,Y����
z
����ѽ�����}�ƈf:�jCo[>�]��x^���h����lhNr�ϳEDk��c�C���Ǫ
ת9��c	���H
�t<)��}�z��!�hE~DBӳ�2�S͆��i{;�o��u��I��p�??砃4�6ٺ��^"������1�R������<�-��65s��j�p�C�����Sjqi6dzھİ�紈��
4�1�.��$�5E�
G�9���:�
�=��o���b��쾄
v#��[��x�ﯦ �AF�+T�����
���(C at RQF��7�7�2��I$��^a$�Eq��>
�.�AE��b����
i����O0�����]Т�K5ΫPÛ�G���
���
����Z�d��J���*�$d����
^�}E�*֤�>?��������Ƅ��������$d��O���	�_t�l�%��$^7��[�K��S��ECq�z�"$
]�*���B]��}��W�
zT[Rk�"�����n�]�E��U�Y
v��FU�W\�B��6�-RB�^M��e�2B�4�<ZR�V��jV�y�~��O��
+W>��/w�ͺ�h�4E��k�5˖�<1�U���[�t���D��>�Q!�.kR��涧�7�u� J��c�>�c��
+l���/��i^��3;i�����ڐ�
0��s������Z�n�S�
+���q�W7�N��p:�([���5�6�8���V�
i�AFޜ�~h�9�P�ldüj�2�dO
+�+����6��1�--��1E���wv��	�=JCH��W�3��4܏&�x��8,���&�����#Rc�3D�vz�6��RS��yu�_N/nm�ك��vT����֥Y˼?��RFװKz�n��9����Q��4�g�C�^�5l`�P
\ܲ����G�&���ޫ`��
��9�P����ҞٲX���r�6���
+V4,��{�a�؄���\tcY`]l�ǿԾ�a���r�鴯؏=b��!��&����Y�b

�^[\�aYt�$w	
+���[��R�)���i��[�{$��7f"��o
���X��p
+��z�Bz����'h�
O|Ō4ǐ�|-�j��
+:���}̴a� %Tv��5��Y9QK� �d0
?�$��ćH|�#�u�D�3�
p��h���r�d�@,@Xm��VK
Y��@o��u��([���8#!OM~�.�7SoJn%<��I��dZ��=�1�D3�!P#4����(|:]SYd���_��kG�����Rh�+Ot�B���%�/e�䱖�&]�h��r5�sl�or��Q����
"F�,bՓ�*2~��:ʼ��i��[�������t��˦����~M
+�U�6�DU�e�"udPO:���]�x+����G��B���]��q:�ʥ�'�:�-ML3\�F$�7�K�3�
 C��*s�2��z�F�s�'����
�
�̼K���s�����Ӛ��w�ER��	�!`%aT��H��v�R�W��SP�ƅT���}FVArB�[��SS &��}p
�`�	�~����_���1{�,y��o�����
���{�30��[�b�
K���:w�3��Mn����e6�s
z/0<x� &�3�nj���@���_d
�K�Bٓ�! t�r��!�6<�
�rƕ�KjT�;ҽ�����.�Z������.,��68�MUl��{D
6v�
���@)tmp�y�_.>OG�"
+Ü3N��|��
�/�'��O��-R_�1Vh&׺
N�Pz8de���
勊ZTH;X����Q�6�}��+���'h��_� |ȋ��Cc�����u��H��j�BA�,�N�OS���{�3���	L��� `]���1��> A���
�� rxӴ�*E^�.��ؐ`����Q5
�v{`=W6뼟�\9a����vGO��Xc&
v��1���w�~��� �0�W�:ʎ~��f��:
0�/˵��%�m
�KRK�A�������c�R�%�	�P�#CS��ߥ�f�mD�5�oEx��1�7B����0����<&������Yd�8"1�
�wܡ5�� TaaJ3p��5��
��7�A>��+��y��I��
M���c�u��
Zd?�B��
k1���x-���r�sV��9s
�H6p]D�G�g�O|
y��5�S�$a�E�`$�Ls
+[��Ym�
�~u�8��p`6*I
ߕ�`S8���8s�n��9O3nX�OE
/7
f�^�l�bN�[�PB�F�O��.�9����Z��_
.�5�>�F	��
�S��̉�R�'}ΪѬ`_d�X�|�{�d��HXԾ3�QlZe7P�R��q�ش�O5����OkZ��r�x5u`a ǂ:��*`�T�)��,�
+DPQʮ���dߓ�����J�����Rk=H+
+*�#u)���h��) ��)B�6��s�9߹瞏��H�ZG�z�G���T�"9��3h�D�ͺ
��s��r|��b�4��y	�$��TK	���"�$��I��~
�$�v(�B��#].��qi

��?�C��N
�����~�ޱ�|��ܷ�LcO�n���T~������vxj��̦5<.��f\K<��2p�:Cp���S�y,
66��>|z�C
+���� E
+T )��f/��:X1�}J+��>���_���~ ���Q;�^��ㆪvs&�۸>�.�k�7��yZ��S��:�˩㜍�r�
ݖۜ���aKa���!l��.g5���7�Kv�0��!;ڗ�f����e�
��%�]"X�T�
�J3�aժ�lwV�j=v�姠�α���e=b�I/��g�H&���
�:����g,(y	27�>a�b�a�8���8f��VV
�q��ɌT���0��N���������ɉB�����`(
�_"f��o!�
�t}Wg��_0}H���X
�9�,�Q���x���=�~Jٹ�x�>����ӱe�9�M���2mF��S��)�Vk����-eZF�F٥bt�g0��O?�D�ǐ%7ey��ښ6��W��S
��C��y�e��US}�
�l�`a�8i	��g"1лJ�"�|P�Kڝ�c�,��$����+�&���P����vꖴGBoj_t4I
�vq�f熚(�e��C��!��b�׼�^�S��b�Yi1���¨;2��W�`/7u�h?4
+�
���!��z��@#(���T
���6��
^��!�R	S��#�>E/�S�q9�z_ 
/G%ӈ0C�9�[ۼ�@�(٩��P��
�,�}��X�T�Ok��p��QȫU�G6
��
�x�2�e,��> ���
-?�ϭ��QެYz�/�T���5�FL��^`�tީ��3�\#�������̬D�:�
,�v��� w[mDW�����)��TB��Z���`0Ֆ`3t�BQ˟kk��s4�1y�	�`�\�޸�c�V�#��z`X�Hhw�A��0�چFTy��qӵܫ*F˪�%��*����/>�9

+�g
S'�"b'zL=N�)c��s�*����b�R�����)W<�#�S	��癛)K����
��
+&���L�\��9W�t�W!Y1�������7i*�%�����wJ_����
��閥�n�WJ�!p�����-0�T`�:K6B�+��S��z�l��L,~��J#ZL�HBEe�߈E�q1
+ڸ��TD}�bB;��*O�TC�nՍl�$OY��Q��0m��z7�o��9NŻ�|h��DV�[V��e�֩b7���Y��ZÖ�H��l�����~I�)ܻ�J�5�����oO��ݑ���%(��,�h�Z��G��ҼmR�d���!��/NEWutV57z;�j���j��s���^�^lD�Ǿ0-a���_a��L�؁��w���44簍b^
��ppi������&n�X�	����uƻ-�݂
�-c�Y4��_�����
��g	?
�j�G�I�fH���
�%��J҂[��%ϩ�C6Oz vW�z��oZ�t�A����$�?z���;�
�ؼ���FT2�/+��0���@��@S<@>0b��S�uq�w;j4S�'�/4s����E�թ(P[����V�^�5ƊH��k�g/�ۄ�w����
0��*��֭ �a�j�yB��5�TC�
�J(�_��F�4����!�m�,
R��N�
�?S����9��
:״��O��f��O�V��"յڇ1���,V)S��@�._
+���#��Q�`�K���|ͨ%c�j��/&\��:
[��F�t�^Z "��q�٤Jm�뙊jMarח�`VCg
+��w"�~><��
�8�i����}�X�T8�dzQ��V
Y<��<�J=��E�ۏ7
G8v6��Z:�%���hBò�94^�ԥm!
1���OD>�p%�H���G�����/�Û`rq�;��N�m�~M���s�\��/���Z�h�:�(���MX�а^F�.꜋�.�Y����s}5�`a ����(�(X0�T�+JS��
�4�&��~��|iB!!
!)$�)ʰ��
��WF�Y]E��븎3x,��˽�}���| 
d��c�
+��|�i-��0�Ws��
+Q_G�pRj�y�0���׿�t����j��T̎�ԍ�
D1��څ�ڍ›N�:ka?
���7�e���k��_�%]a;�ז���F�=�9��-b=
&��Mm0-�vD�'^�j��+��/5(er�^�+E��L
F1�$�1K���WE|f��O��FMK�����m��:�:1`�ڥf��X�ЩM�*i�9��
+l?+Lw?-Nx��͈��wɳ\C0���瑃f	�s��
��M;iđ`��$����O���0z��*Rٹ�B9�@�"�k��5�����
v��~�.l�B?�u g�]�ed����
�8J�A�j���͹um�.��D�O��^^��v:�y;��ske��+,L�¶v� ��ŝ���Ҽ��خ�����d��_��5�Z����;
q�#�k>���� �MU\��J����{l*͟��ґ�3Do����y����"UDc�����u��#H�)BP��it��/	v�`�_�Sʝ�{�e�5mp�Ppy�=�-2��[���m�+v��6
*.�Wۿ��Sǔ��]
�
+^DMk��,2�.#��ɲ�\���!{�
^��I4�Ԉ��.~�ç�lDc�BU\b�"c
�j��v�����J�G�|�H`_��2�r����
���H��ѥ
�
��t��HH���BaG�	:����B�f��{�'�9
+[�j��a��e

+&h��z6F�d�y?�>g�ۑx&�l$����^���:����^���n����x-'-����]�O 5�������@S
� U��ڏy]�Tu 
�_,z�
�WPT�|BJ,ɕ}`8�ߴy?p�7gˢu��\JO(_��vOUue4���+Q����bi�?A.j����Cxy���R���J�駥�P��t㸲r��T��fd�d$ֺ�FR>P�a�L���'��
�v�����2M���*��׵�T�]`W��*�cD�*��h�A�e#�"�ɆKO9�J���KL��2��J����(
KgK3jԉf��Z��nL��5��o��M(�_���>�FO����ӹGi}<���@w��#Nd����h
oo4�Y�
̾�Fٸ2�����Y�A��z$�W��֜5��Copl�i�
�\�
���3�2�l�;��a�<;�S�? B�>�<A��a�rL>�z��p
r�j��s�m��1t�Z�c̥�
�{�s�/���J{��c�*�#�3��ހf� [...]
+�oe�*��
+�p���}����%��
+K�"G�*�
yE�%��S\�#���V�9�
�ۦ2�4=���ZH
�
W}d��UU��$�U���>*;�$;�d
'=�NY��
,|ܶ
3�4�����q�T�=�ka%���h�s��䬺��U�X7Fl��[��
o��1a�puxf�9��Q�Gk4�;e
+˸�7荇�5��xB:�y����Zd�ͫ,�`2��?_�a[0�~9iY
Fs�3���g��	�Ë9u����<,yx�87��� �1�����Ja���,O�@/g���O�㔛�
9�4 �|.]�1�6��'�^� �@1'��p:Xt������wL,j��V���Qv@�wl{έ��̱���\�?R^�UV�\�GI�+�����9�����D�0���3o��y�d�[R<� "�"��"
+.��2�}��"!<�4t�H~(��-r��2��5D�H@��l��"K�����濣,��/S}�������"+���~w�������F}V
dR�z�,��:�w&?��C~Fq��J}Jݢ���J��i���rjzE�gU�#��p]ZF��
�%��+���[�Pj e�w�Vjl���W�7��wR��/*��C%�%�j��G�x�
@EFH)&0_����Օ�|Xu�
+D���RNX
A�\0JS���H���30��7�͛7�3
C�Wc+��U#�r#
aQOL4E�љ?�s~�{���s�I���y�?�y>�ҒL��ָKd-ޣJ1�v �*fH
�6��h�����z�+~B�O�:I��Qq�Z��UՍ�
P�[�U��D#�BM�	��>$�	�z|��?��^�������!J0��W8�N�	��W�zX��f���щ@'h�
�<�
+%sd�R۔e�[�$z�,��Z�2�H5����[&Ht	L���
��U�O�
췯�<�u��ɎrE�ᾀ{i�,8+ןwM2��O��\��7I8
��i�l�2�ewkv"9k�r6±��U\�R��*�q��o�GCxxy���;�:j��Y�E)
a���ΰ!Xid�j��
q(���8�S��=���l�(�P��9Iue�&��k)���W1����=k��Z�b;8�zB�C�����4��ڕa�v��?�su��UuP���\Vf�>+�5�2��j&�P�6���uR�ɮ�!
+a�+�r���k�!�o�4	��`��ܗ�P)f��%��V��Q�T��F�(Z�]s���,��TR�|O)O?��h�o�# ]�6y�л�)��O�U�,F��٠����E})�g�s��ٴG�y�Ҙp/kw~˖��I'Y��;Td�
�g�Y�U���'��I8�@F�*�	�8
$�I��+A2((�+y�8O��ϋW��ȗE��
{բ�b�W�"@�}@�C׌�t�e�Y��gv�ֈ���H���o�fE`�ea�<o�V�	�F�
C��k2������* ]v%녦L�y|�KJ���3��P�nW�(��<� yiBVO��h�P������|��q'�9["�<c-�����p����!p��w5
�ϔ�r�)
�􁢮^.
,�8L� ��o����қr�7
��ȶǫ� .�@P�p� ��"��X�SI�3����I����k�TGm���W����Vb�u6��Gބ ����`]O����ZQ���&'l�T�R&"N�!�v�G{�%���^}T�1�v�:Ȉ�\������(�IW�f��*�ڮ��ʃu��*����lg��w\W�d?�'�~�|S6�|��ɖ)ݹ��E< �K��7���b�%����J�\�*\D�)
��e�
+��2�G��2ћBjx$Z-����aV#
s�/�h"���K6WZ,�ɳ����L�9�0�~G�"~4�
�5"[���K��4�h�����q���ɕ�����F���a��1U�_��K�Ī�)��P
��
?Q΢9�ޒ"��zܮi$��5I��0�]x��oܬ��UJ&�]�:QS{%K��z����<�
�~m댋�/7�ƣ��i_��y
+
I<G�d
k~��x�k�ے��1��e'w�7���۲���
��U�y��ʪ����\���P��x��V���nL"�
N6t�Ħ>�gbN�_�����4�!/�e%�
���O;m���ht��Wv6�������[���i�������yF�y���4ʔa�t
V�]��
au���
�#������Q�Ym3rM�/q{�~�
�tj��D��
�7���f�i
���ɷ
������� �.
=[�n`4���qSh��B�r�x_�5wԐ
�%��n�
Q����~x�'G[	�`
+qb�]Q�2Ը�i�=UGn�~���ڋJ�(�����Aݪ��d��
���
E�7��K�z
+M��]������!}��
j�nh-Cզ_�魺��������a�٭�D�fr�j�6�$-�4�n�U�Z�F)�Zp
��ux'
�@��]U���/�ٳ�ۿ�3�Ug`iU�}��ڰ��U�L��W���u����+��S��U��[���;u��������XJP�v��O�ŀ��{$�KF�,q
�Q���r�u��H��.���}i�m����fZ�h~a���t���M����B�b0*��iW�
��C䶧���jZ��m��n��[nKfi
�c�+.�&oV.�� &
ʭ��{���5�_�s�9�d�m��I�A. �*s�5:	�1���Ů�
m!�|f���l'�6#N�
+Z��>���\�oM�k�CZ8�)*���b EE@��(2���7{�I�"	$!��0a�=+v U�ZŁ`-x�E���JU
Ǻ
+����~��~�7�<N�z���Q���T�!w�����B,��C)k���E��+�
�+��#�6�-��)��
p�*㪝A �����Ao���c��c~�\_xb�5Ӽ�����z�g�Q��u�}޵�z�Ge��X~	>T�S�
s��V6�������i�1=�2J眆Jh�@ U���u�;
��7!�0
+߽�\�醮���������%-;��=.
��e�/�T�7D�$v�{�.ʫ�����|�Z�Ѯ�mcDֲ+-C��u�_��{�>�1�H�1]�"�D^n�R�
�ٺ�:����E3�
[�h9�������
��7�TJOW+3
v�œ�Limc
@�6'��[�c�`Ǧ8v���!���b�R�{��1�_ӵ��u���o��P��E�2��\@;4"�mO��
�����m{��
ߺE1�d��A����}C=W����B�}[3']\PJ�G5�V��mnY�G
Xy�ahd�'J�[U~	v��W�ۅWo�]�Wn�G�n�R���9H7�Ѩ��Au
�1�v�����Zm�]lU�r�
�T�V�A
+sj�6l�hm,M��y�4A����*0����v�J��
R�?�� �Ĵ>���2C!
*�#�q0�MJ
!:ŏ�C�����R�|�d�F�a?��2�
݂�c�h3��d
B��
z��SI�t?�%�L��m��F[�A��x�Y�G�ҏ0m�;GY1űh%[�sጒ@�9�
q��_8�G>
r�

�W�n���)jod�E��z�C�.q�JviN&�I
f���8b��g�
+�
�v|�
s��d��%:uT���f�����&�L��0���~�p����.(R���U
+;
_)�w%$��/��
�t#�
+~�#�u`u[�w�.��q�s����Y��_�-����*'̳ɩ��k/���)2*
i�9��$�7fU�z�fl���c�9}�]� �,툏WYC�
I���k
S�-��t�y7>�T!����<v�`tF�W�V��"�)��'����U���!��<���^��D�V��"_W��퇖��6!�{�9
JJ�j��i_U�(홽�c4*j�����>��
���26�����Kݲ�
�	m�&c<kQ ��Jln�
'�I�y�T>��ӣh����'
�..+�upC�6�&@j�5�t���d�����P��0���=��I�˂Ė����
+�</��BིY%�V(��q/ܦ,Ǘ	�9(B��0j�tI4	�S:�q��ԙ�1��K�h^��ChhC��F�����( �|�|y�0%o:TA�
B�Q��yPI\�;hVʓ���2J
+ĥ[�Q�r��_k`��9h�� "?7�<18�����~���Щ�
t]Z*7֡�^��%A�nj#���7L{Lu�7�7]ČY	L��L�;
+�i�\WkI��S����y!KC:�31hZ�Pf:�߄���0��C�>C�{޶$tR:(ϭuO��
R4����$=��jl����uq�1?פ��9��S�i|c��q�F!�_z^�S
��K}��`�d�%D�T	�w
V�>�; �<�'�V=�(�5H�%j���WM��V�#��9�Y�D2��֓��p~�����~J
��}�D�]�gN�S�s�jJm�n-�>,v�g&S�L�l�#�����>���^�i���8��ʞ��%��4'��R��JD��h�RN0hB�A0�(r�0K+�a�������M��Y��|"�E�G����E_R^�v���4�/�?��m[˨�y�N`�K/5[�7�1���[G�ؒ'� '�铯R
�G��hqꭁ�]��>���iI��X�
+5�'�\�GB�	��ć����d�^u��x�+���[�^��%e��	�֪�p��xE��
+
� �6�%!It�ި@�Ҿ #%��
����:��* �h$r��7ש�ׁ�55�׈��Ց'I�+6��*ЮwȰ��%U�#��zD�+J�t�� �B�a�Uؕ	6����}�
�uO�r��7��d����P����
�Cu}FEu�a 7�RV�"KS����T���20
E���N�{��^��lk��ƕ$vW��(�,�F7��b
ˢÞ��O���y����<"_��)���.k�h���[n �9W�?g��ڈ7��yș�*����Ӽ�uA@ �Op��I�R��rP�(�$e[i<�H����������/�\�t�/��G�inQ��a�@��q�I�a�{�Yʒ�]��e��?D��98ߙ����y��dx ,�8�?����Pe�1�N�W��wA�i �N,�
B��=�%P�K���
�~�҈�G�!Oʽ��R=e�"!�]:�:B�I�\��MJ1�j�G�K)b
'xL"W?D\G�ԝC��{���A�A
?u#U���������UJ����
ǹ�	H{�F[�5h���[N6��){((��%��
>�V�Y�R
+n��#����(a����F�q�&mq�3%�\g?�%�ӆ��M5������X�D3�b$ʁ
W�� ����ƿ��5&͔D4�®K���
c�
�Ꮚ
�.
+��1Z�o
+^`��~¿`�6z	�q���
��aX����ǰ�)��Ӽ܄'��84�
n"Db.��� �
�yC<K���
d��},��{�*h
�

+ڸ�h�>���wMv^
c��8�Iƻ�(~��j?���
+e�o��y
��l/��Dl5�����Żר�p�y1���ܣܵ�����^004�{
�����.��%C�A2��2�d�Wu�����Q�>�o�kL<
��
����5.ſȠi�f��fh�7S��-��|�^����T�jX[�wC�Y�*��sG^1�Ve֗�+�˃������L���3�
��/2y���{���
��+�.�;C�t��J �}��
���-��
>٫y6q<����
��<b�s�
+�bk*ĉ��_�
V���
�����T�m
�}���D5�1o��U� ��Q�u
�*�n��ҹ�
�D��U4���|>�W���x�A�_P�Z�?	�Q	��y�����1�>y��K���\.�!�O�q�M��

+0C�l����];�S�k)��=RZ@�[ɷ�5��
���JBe�ǐ$��Ni"�0
-�ú�R4H��~�9.☫|Dϸah� �-�)�r�~"��e�oM�����
���K�%4	_7�"�‘e�
+QD~�0T��.��>"x*
�O�>�酧��.Ey+HVy55R���Ws�����Ek*
�PxEGB����;(J�
X��(8h�iq�mh��^�
�0`���}���_APW�D���L��Z�‹]�<��4��zG֦`��oy��Z�R
|�u^��g��C�F#�n�r)��Va�
�5�ƪw�����9��n�j�yI���t��
+xI��1b�Iy�>}���-A��گ����OSh��KF�x���6xq�qQ

+�3��S�U���\ka��椚̩�Di�~
�?{�>���J�3m�tߐ��Z���t����]�Y���N�ju]�ɒ���QY�lZZ�s��
NѴѷ���W�>S���ݥ0�B��j������+�7��q�҄fU7���m�	�����:�8���^�;�#�eտ�+���*,�_����C�Y�3���
�M���S��U*���L�X�.jQ�Ȗg�_I��W�J5a"9R��'�C�\y׳qH)��V�U��
-Z��.�\+�Ѥ�/�a��en�/|F�[��?S��Pk r�"�
+^�Y��>����V�H9
&ya���I��x�Q�<�zU1\���
+ٽ�l�*7�}��hu;Twfa^���cn����YS
q;)oZ�u�G!�uT�U�Or����lk;�H�F�-�x/,u�	s�m��>fd��}�+]
+U�.o�.����=��q�-y�]�[��v
�i�R����g���k*�`/p����LBu���+��A����@
��[�)��&P���YQ�?���i�m/��K,�Y *g�u��(i�2�`��؀V�"f��JSs��=�RU@� ��7+���>d��ْ���s�m�Y�� �)�w�=U?ο��3D�����
qjv��8<��!z
g�)�b���^�[$z�RYjT����)�Ԭ1�c�?M�2q�=�@��?��ܣ5�ew?SIf�q���D7����
k�\� 
L�24A<D1` (T@@+���7{��d�I؁	3*8����:@-�m��q�*���8r����><�u���ݹ�\��id��Xm�m��J����J������"��U��
jb'm_�z$b�"�uO���
�b�M��q_'�is��ͼ?M#mp_=~m��=�İ���+ȡ�:�L��;48l��mb�
3�埒-m�
$�Y|H��n��]�c�k�k{>3 [...]
e
l��[I��u��Y_(i��&;����t��o���

�
�����5��k������Z���/��
j���j��p��~Ch��⨿���䦿�iR�s!G�-�����֠���5����
��
+�����&w���a7W��AƫX���U����r�8��+}E)�oV�ӃIÌ}�qZl��h�<�gw�
+��A��?�=��$�6-�ޡ|,)!<�*�ǘ*z!���8�߀ϸu��Pp� �D|�Ŝ�e�=s�m4'���Ң�ؽ�YaP�OZ(���vj?�VG�gxI=V
�
�-�
̹��u�MCJ���H_�-C�]����B~�2A\�8����*�E8P�T��Δ�To�
9/�w���h������������a�ߣ�b�y\��'�F,Ռ�o%��w�U/�ժ���n�M�*��T Ƌ{�5NJ����ԢT�9L��;y
_fX�D\���u��ַA���:x�"�)�V%�V/*��]1���#
���)ԋ���@�X�"�SV�Ӆ����4u�.�f�?��Uչk�%��Nj����;c�~?�]Pۺ˄�W��Ҍ=V�듍�1�
+E�	�
ֻqd{q�׉�;�
+�N�
������YH�d�fttc�
���#&�v�P�tQ��jd����1�o�
��­�R)�ʽ@}����<7�	�&���8�w��y�y�b��H�
�04���͂
@>� o`
�����~�M�<��a9����(��n
����c9̼4��<o��/��E1�������:��ɕ��7e��
�.{��Շ�Pi	WE�Y���x�ޝr��
+�EJ�7
�T����|4��'�r41������� n�s��#?�Cśhk�6
�/ϻ���
�7�
n
�
��HIT�����c6�߱=�z
z!�?z��_)��c�)�u�e�T��}nS�3��&iq4r����E�U�Y�X\�K���88IX�`}7yIi��
+��S��iG���r3�8Eiօ�$f
����l+n��.���*d}0Qe��:F����S��S�퍆��֯�SȺ�8��~�%; [ژ�l0~{��^��
KbV+�T
�s I��x)�oe���q��ra5),k�xU����Q"��YN�פ����ܾWu8G�Q�d�!H�9�2�'���31c�C\��!Q-�;U���9�
�d�Z�o�8C�N�T1+�hڟl-?63��z�,�=]���Aw7!�z6��*H��H*[|C���_@m���s2U�r]^9��n������0�"��PuT�t$�#:H���@�бjy�b��~�=�噛��*��ku��U��Q�m�9�]'pu
�
����d��SۖHgi۬��6r-���>`Oi#�T�2��"-�!NSn\ z��$���S�C%�Q���%;���O���z�c�T)!�M�.wf�.P�o�1���U=B��l1�F�#F0HD�\u̞rڜ*��u�jQ��O5��u8�E$�7:"��І���(Uu�AN�gulW�YE�*Z�"cT\���k���Tx�l�x)�$��<�hT��',ʷ�
�����y�={V?$�N�)�D��P�Vl������]:�|�d��̏��"���w1*��=3*gB'����|�'#�sB�F�S^PR�8�?
�
+$	m�:��@����l���(蕉9
Ea,�_܎i�ǀ/O	I��4�a��S8!��%UJ������8C�(�&2�J:�;{��Mጫ~J����dm��rFW	�jg�Y�?��;��s�8Ҁ�����Z6\Fq�D
,���H	Y'{����
$a@Q��k�^����r
��h��"j�}+�m�j����y��s�������әM���D]�_CJQw�)��/ʹ�5���״2�s�7
�v���}���7�
T�V���S���6~G���oLF
��
YH����Km�k�v���~�U��.+�j
p��o8Ɖ$�5�)�\R��������(��g��H�m}�w�5j�N)
++����������p�vO[n��Hj�͌%=h��
��4�^"��l�q:i����%S,��P����=�Ƌ�G����T����	�B�ULR8LW������$G�xLcLS��},�?�E�;�8Q��E�$?\.�e�!&���KK����J����G���7��|�_
��Ҟl8!>�8��(Y�B�I�Y�`[�}��.�B���b
��T���$��=U8O��ŧ
y��P��-x��$�]��0��_���
+�j
��(��sO�����H|/=�wKR���������`�
p�t�l>f*�ӡ����uU��<�=�T��s�(�&zpK��A?sL�o`N0M�q+~*m��-��~F7�^���5惬H]�${��|�-Ҷ9Y&�=X'�V�u+^�ϖE�m���
+��Y/�0�X� c����A��dP
c��_X��
�V�Rx�6���b�|C�6������^FeC]���o�-�F?f7���Q3�V�>͝y�Fs���y]�ݯM�F�����͊��k�^Nն��I�����#F�Z�.�7��Ɔ�Q�f�eϫCJ�n�;Aj�B
JF���w
+��mԗ��6��t�����(�I5�beE���l���X���Q����͌��
��
i,)�6QS �1zJ�ezVBf��
۹���ʹ�/���	HQ8�9�SnE%�o���-�4�NJ�`�`,��)�~u�t��yQ��N��]�vح �p����+e�"�x����N�6y�*������,�7�$'�x�\���C���QL���[8.d@}���C�ɏE)1���D?@晹���b��$�?7�
+	�Y��M���
N�|�����
_�Td'wa�}��0Z�������<���9|��3�����閗3~o=��Y>���l0Wb=P1��jmE� ��X�R[l�o�uv:.�C=���;.�a.��Bř�S[�n�W�J3�ǟN�1='\Xr���8�۲��:K�X��j�6�e	�g΀a�p� ��%z"��K�1��.c1�ɇzɭ�G�T�Ri�VB�e����� -�)K at iͬ�!�u�@_�`�&2�q��
u�p�%P ���
+��S�Ч|N�WP� !���o-t_�
��n�y��V|�ؤ��賐�e`Hʏ�E�=>\� 
�Tǀ�|��cҎ�k�IS�T!������%Gu,%[IR�'�������+#T�}m���3��\��/���df)��`����n2�#���\�M����(��CQ�d�6f��l��qG����v�첵).Z&���w�I�����Te{�������JQ�����ܕQ����E\m�`�p�`��Ҵ���\�z�[�v7OV�o9ݜQ�����}��$SSFMW�d��ny��u�я�:�	�*�o�[��3� ���
O	��
FRJ���0��ո�l����+��L+�&�
o�E�+d�-�
+�@�?��
^f�E��ko�o�\fy���J���8�z���ΰ�Xmi
����
-Nw�}����OY�p
z&�@>��g�ݪHc���.��
��]7M����z�#�f�����e"�g���\��a��@�\�qyºJc�\��3ܔ���
�����r�'W�QV�E�
D�|��P�L���s�\h_h�
�#��9�Z-
�T�d��L�>˼!���WS/b�n�iA�3���.1Fx@Ǡ�3UN�N^n�POZ�d��t<�jGLy��s=���>�vW�O&�-8ךs��hv���eSȉ���`wPU_�c�a��ř�=շ}�m`�<<�$�+��UV�6�6d�����o�88{��η���zkG}ڻ��<<�7�\���jvg!5M��!�w�&�GmpfS����g��O�3x?���
+wZs�LR�q�/�~l�K�]Q�V�����:�o��m��<Q�'��

�
R]�AMXy
��u��
�
^��ȩ����
�$�}�!� 9LH��aH8��h��ʡrTtD-�*��fY]]wu������u[bg���g޼ߛ����"���ȹ�� I7�����H�R�7�H�B�H�u��d�t�
�*�Ჲ=e���J��t�j�|���	�#T����I�/��W?�{�Ν��O�^��'�`�����v�'$�^��E�=7�I����TF�2˵���7-��^�'Z�"[�x
;�����[U�7�,���Q
yWrr�9��E��6c�y'�I� �gIR�m��2��� Z�Q����
+�{0K�,�^�H�/>�>G��@l`�T��=FZ����nZ�H	�ѳ$m�¯鵩�K�A�3D;w�����7����ŏw��^J<��`i$�M_�x��8w��U-,�/h!��pbP���1��|*�k
_U�;� ��N�45�����j��<?�>�X���_�:�]��$
%�
ͫX�+é�
��Miw z�z{7��`fOE���5Fo�h�X�}�fL�}��k%�J�q�_b��_ ��A�5��4WK������'h?�:l��TH�mm.	�m�&�"�X7�r��V7�����l̨b�]r+�
�O�pK�[�{0�E�uwrf�ӵ�Fa�jCCP�k��t�M�ݻ�Vw�[FR��(�Y�-V��E8����	�����P��?�)�p>��͛�5�	#��T��t�F%��
���3�	qhk����
�;�`�LVOp���Z�ۓ.
��j��&�\
C<G�P��J�qzK�md
+���A�>ʡ	<�*�g�!��r)J����;ȁ��&x�K0�N�\��B�&���Գ����$�bԍ7f��p��t
(�0��H�
2����3�ӲG1�d?ź���
+�b�Vֆ|�����\[�w+�tj�j?b7����h���wJ�Cm�m�#�b.^V��B���DR�b��8��E]4�J�
7LG�c.
X
d���/�a�&ڎ�
�@�顢
��zQuֈ4T��q�i˽�èb˕ 4�3���~,�y�moθ�[��0� �
+�l�}	��T�C�u�L�Bt
2��Z���W�>��Eh�@+[���y����0=
+�s�U"r]�;�û]���(��̏{�����e� �E=�m��a^2�'FKv�~.�Оm��0O�j(�e�s�ߺ���
�Pk*!��3�
I�B��
s4�{^�|{6��k\*
�}X�Y��Ǡ���D�=A
%��$�hǹW���ǂORV�����
����U�B��ꯪ��r��+C�a6���� ��K��ԣe�� :Zڿu�6&��?�W�&�k�).��]%��]�,l�b7MX]�[H"}���WL)RI�r�f�r?A��ƁY�&�I�~_�IB��$�{X��l��Z����X�E�&|�w�#����؆�`��_v�ߢf���u���3����f����m��8�9�?��9�
+̟��N�Վ��`�jz1*�������.�@��爎܋��`�o�ْ�J_����+- �4α6@��/DWE�jE}HR�Dl���;Y+�
���z���/������1�D�ѓ(z)oι&�;��.�4��aZ�#�g��
s�b�Z+�X�Wi;�<~�n�"�(�	���M�'��b6��!G
���lP<�^\��nM8-�-a��G+dyXP�^��s:����0q
\p3b����W�u.�,R�&�r��m��#<�He�ĸ�vQ�l���.ˍ���J>��қ�s)��lej�(�^ ��,�=�/����FV���6fj����;e���x��%�D�����k�%�!FW at a��o2QT�vs�
�5��h�0�B�{�U��H�i�GCO����zL'�pb�I�q����+'_1���Lv�
+���Q��A����%�
��$��[H~�}{�1�f��K�ٲ�:HmW�S
+��ëd}�2w7����
j����<� �O�����7�i�2�G��;S�W�ݒ�!�@Y�s�Z~��*���PƐ6�x�Q�ܡ��/9i�7c�G��HV�f�3��R>K�����2j�Z�xH"Z�"�)�
vH�D�}
�@���}	Y�J64�T(P_�(*�C]���mi���S�Jq�OZ�g�A��(n�y8}wν3���7���;�?߇�*x"D���6�Hae�Z
+�5K�	e
+tE=H�������\ƒ�W�8
��7��2�y��m��]L����y���	��1N<�8͍�@��������:�>
�>���6p������ӹ�<�AМ�*쵮�5M
+��N5����g���ܿ��]7�c�D�!\����O��6N�(���b���H����ֲr�t1g���u��N�'w�ߢ�e�Gr��u�b�J1��a�#�g�i�|��Gc��"����

�'x
��&�YH;�����4
�T1}�Ϯ;c�V*���ܲw��f����|�H2;�R��l��{��K��*��G��ZPg��׸z
*ۿ
��?ʗ���
+�ד:�N����9u�����L7�o����|j�B�jEV�QR��!Ū��;~;�Z�Z����xٲ�
+�(�񆜦q�����E蠟�V����7�:b��g3��h\y����g�.:O������0�7��Ң�
�b�4=�N��Hdto{�<��WZgH
�NR��
�RZ\��s�W*Zx�� ƻQͮ�l<�I���Ts|���X)���c?��p�\B� ��K��u��e��|0|/a�hB�|樕���sEG���M���s��M�d���?�*G,����H����R�g�[)|�3��
C�Q��{0b��Iט%9*��X�����R
�M��U)+�^�
�P�,�p�y*��~uR�Hw,r�~L���;�_���v
N���"����ۿ�]���//S{̑��Ͷ�^���0X
7�4�����㊈�#�ޒ{Y�<mg�$���5`��Vs-*l��ۻ�g��r��i�˕[
����L��X#DEhgq
!N-_����c	YP�a
�!w����|Em�"�����P�D�OUHS�r5�a�+[��
m���
+�Wh�*¥{I/1Ywû�Jy�׸j�k�@p[�����z�3*R�e���RXwq3�0���u%�B�AŒ%\N�C)�W�'5�꡵
+&�F+U
,��d5�gR
"J�r��VDB�SDO]V�[EסdyVӃ�1,+�Iev�"���`��Wrw�Ka��
�G��|����`��%+T�VR�C
�F���{Ys*���Z�5� ߬�R�e�s� Q3
+���j�QA�4Ӌ<>���$�.7�$C$p��
��
���A�)h����J��ew�T��*Fm���K�g-��l�m��*{��{�����v\ܲ�s�Ja>3_*ݑ���ہ>��V�5�|���WG_
�>��R��R_YL�!�R�F�jz��	S�5fځO�2��<�� `��}I\:��X�i�Zk�R
���H*��4����[(�x��X��$u|I9̺TkV���z����l�_�׼g�C��%�*�
�w�XR
��nY) N.�9+�wZ�[��E9�ľW����J%�w�p`Nj���[���.�b|JOsd�W,��R�~�#�*	Ľ�yF�dwC��p ���*�L(8�Oe��lL� �˞)A���
��v�f���F��ʹ.��Kn�d�~A򥾺]�Di��
(i���]Yʯ�J����ߟ�?�>�w�[侾
�7���KK�6�w"��!e��D�p� �5��V*
�3VEa{:KoED��cɾ���J�#�oOU4�
��4����l�TjF�k�,>�{S�?ý�Sk�>��Su�����=�|��j}�����T
+�SU�.nk�.����������m�c�Ů)Rx�b� T�<�T�V*y�Ù<+�`R�C�;S�^����0�-�itp��<ȗ�2I�Z_0�ȡ�VVKHW�ol���9�=�f
d�

j��b��%}D�C��y�{�s��I*�{ZL����1
������r`n}+�D�����_�*�Uz�3�����}�i7��7��9_�k��jx�L�+u	
�;�FxL�.�m�m���Q`sK�z�������K#�>����&����ޗxiB�V�^�\s�3�_X��X_�ر��C�+ҭj�|S��	�k�Ͻ�|j|[����X

+Ά�BL���.�?�\��D��C��q��ߢ7n�O(M�&���JO����������i�ݖw0�� ���I�J�LM,NCOYPoQ�R�S�T�U�V�X
Y#Z:[Q\f]x^�_�`�a�b�c�d�fgh#i3jBkRl^mgnqozp�q�r�s�t�u�v�w�x�y�z�{�|�}�~�ˀɁǂŃ„����������������������{�p�d�X�L�@�3�&��
�����֜ȝ��������|�j�W�E�3� �����תū������}�k�Y�G�6�$�� ��ڷȸ������~�k�Y�G�5�"���������ŵƣǑ�~�l�Y�D�.������оѧҐ�y�a�I�1�� ����ڲۘ�}�b�G�,��������{�W�3�������q�H�
������v�U�3�������s�I�
�������a�)�����\�
���Z��  ��,���
+






��������
�
�
�� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�0�1�2�3�4�5678�9�:;~<|=|>|?}@A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�c dee�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�|z}o~dX�M�A�5�)�
�����ۈʉ��������q�`�N�=�,��
+����ٖɗ��������m�Z�H�6�%������ؤʥ�������������w�o�g�`�Z�T�O�L�I�F�E�D�E�F�H�J�N�R�W�]�c�j�r�{ĄŊƐǖȝɥʭ˶̿���������������
�*�7�D�Q�^�k�yކߔ��������������������� �,�8�C�N�Y�c�j�n�o�l�d�V�D�/���  �h�	2
+R
e
r
xzzzyuph^RE7)4=
@
?
:4 ,!#"#$$�%�&�'�(�)�*�+�,�-�.�/|0p1d2Y3M4A566+7!89
: :�;�<�=�>�?�@�A�B�C�D�E�F�G�H�I�J�K�L�M�N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w�x�y�z�{�||}v~oi�a�Z�Q�H�>�5�+�!��
������؎͏Ð��������������x�p�j�c�^�Y�U�R�P�O�O�P�R�U�Y�_�f�n�x�����������̰߱�	� �8�Q�l�����»��!�C�e��ª������9�^ɂʦ������2�T�tҔӲ������
�6�L�a�t݇ޘߧ���������������������o�X�\�[�V�L�=�*����������b�/�����f����M���q��  ��	T�	�
+�
�
�
�p_L7!	������}tf
U
A
,   �!�"�#�$�%z&d'N(9)%**�+�,�-�.�/�0�1y2g3U4D526"788�9�:�;�<�=�>�?�@}AoBbCUDIE<F0G#HI
I�J�K�L�M�N�O�P�Q�R�S�TzUmV_WQXCY5Z&[\	\�]�^�_�`�a�b�c�dxeffTgBh0i
j
j�k�l�m�n�o�p�qlrVs at t)uu�v�w�x�y�z�{n|V}>~%
�ہ‚����r�W�;� ���ϊ����}�b�G�-����ޒē����x�`�G�/����Ԝ��������q�_�O�?�0�"��������۬խЮ˯ǰı²����µŶȷ͸ӹۺ������ �0�@�R�f�zƏǦȾ�����
�*�G�cЀџҿ����'�L�sٛ������F�s�����M����6����+����1����M����Z�����:�{����� � � �O�X͙�~ʹ��~y��~e�L�~�j��~�Q��c=9 ����~|�4�~c�l�@~]�̳�~n�f��~��C�~لOiZ/�gP����8�v����}6�q��}0����}>�ϲ:}i�^��}��,��~�
׉_L� p����K�-~~,*���~��&E()D9�v��yo�w�y���=�TS3�wI�!
�D)�J��%����OBv���w�N<i����_��ΝD�g�A]�3w�^�|�
<�~]�
+bʀ�}�S���W���?������CN�<��-Y�4����� ���B����Yp�z�S�)j"��{%�>6��4��;�
>��FVW���m��
+S�^�D�i��*��bPk������pة�?�%"�1�#!ϼK`���L�<�n-e��2*���+�)	X䥂C@�v2l
Q?����(=�0�q��
Mz�ǃI�z����7ME�Y;���
Y��@K (�-� �\��U��������&>�r���I�^���2���I�Me;Ya����"��V�N�,S�;��o�_
%s�
�D;��f�Ǝ.�����R?l
;
0Dq�>�
��8z��D�KG)�3o��+�&�<4��@n͗0�E��O�9�4��#��Ґ���n�W9
�b���_��
7}B�2�yːv���/ąJH삻Ȧ��p$�ȫވy;�Æ���ǘ�f��o虔�F¨Ls���I���,Kh�W2�!�A��jHE^�τ���� _�w�d�lX�g�g�Ωr!jU)�[%�B��\D��Cf�p�
�<_��\?�k�,.���w�Ȳ����i rJ����R����ݐ=>0�+cv���Z�{Hl�l�
L���VA��c�۠����
^{6o�Cҏ���
S�
��
م�bȏ���:sz
�
7�j�P@�Q����
��;[�w�g�|z3�0Uq`!�P����-~|���X�3�+�z2lIђ��:�_<����a�X��S5\}���E�^����G���
+�X��J4�^�Ƭw��/��I!5
+�bn�#�F���O��� ����`.ܙ�-�J\�!gZ0�
+)�ݥq Aß���O��k�V�
��^B���f8KĈza>p-F��O�J*����Yr(���".
��O��'����q�ä����f��rC���RJ'�dc~��h��!€�?�`���}W�zBd;�hѲG��ϲ�m�T
��SAi�j9�<�� �
+ߨ��%�@`��8xL��T��qė=�
,Mk
$hJ�����d�����x_�r�̰gʱ��h�t�G,�K��
ytomVK0����X�?R<�J%��m�q<UG]I�X��'t�9E��
+$Vt�� �������ܛ8�i�(�G�T�+��tԃ��]
�6k�N�*���d�$m[��w�_L��-h
��k�,Ȭ�
�&º����^>���=Џ
�]ٛ��a��`sʠ�7�
��g&Gr�ŀ�?>��r&�z`�b>&���z��
%��sx�
bw�&�{�~
�څ��]"W�R�%��c"z �D
����zA ����r���s!֝=jcf]��rm��A��NJl$�� ے�#ؑ
�>���wTf�
GF�F69�9<׵.�'S�Z*�˺#�-�Jl.��Z�Zx�%m*�|�����
�o�	�2�ӝ_T��W�K4
�eRsu33'jRF�B����Wl|��
+��F��gml0L�1�
,
�����y�+�Hu��2��f;�[�T�0BE��{�:���qn�����to�T�]o������kI,
+
��LgV_R:�Kϋ0�d�P?=	��v��E̷փ(M4�m����\��T�k׉o�����,�H��=����������Z��w/��E�I�-LQ����[����
�8�F/�g֖'$��?�[��u~f�g���h�X�j����ݚ-�	VI�m�
K��Հ,%i�b���Q���*e9�7���������W
K�����M�YiHt�X�T���BUD���w�-�4��9#i�ԗ/�r]�hGވ�/�
+
+lD2
h�‘�%TT�T*F���dw">���G��Y?�"��[f
r5��ʊ4��`��TAo��4H5�rW�S�8��Xy��;$Yr���'�q �vUP��V&�����4m�/5LJ��E�:��S�7��Hv�y..�� � k�P  �X��Al���`��
+��,e��:
E�$@B�Kr��.!{�A$A�,�C�Y[EA;|�
TJkU>���4�1a�Ɯd�cT.�����Us
R�&�Bc�h�R�)�����
+� Pd;���ʟH�b����l?1;_�:i�^��m�Mh9Ӝ+,�x�+(�‡j3�=P6u�>��a}�&���b�
(���0�=��.À<��2&�m�%�u9��_�~z�����L��!�S`(�6͟>թV��
�l��W䨸�m5y�pg�!�2��
<��	P�R%�wC�>��u
�b�v���b�F�.0���UK�$�K�;�؂�P�,�!�rA�5��%\��v���"�
+[2�g�w���dx��J���:��_�'�Eښ_+^Cژ�� ���I!	v��,���V7�2UJ������L��N�ITU�K�ɎIy/R+�=+(֨����v��6������!M����	��@P�B�%�R-��-�3��|4�-�����)#ͯ�
�w����.�ܘ�<�;�
��b��#��;*��>$e�G���
+�>�3�
�����"�
و~A��Z���$xOU��x��
�
f𜓜x;٥Q��
h
X�(�Z�����x=�`dš��
8�b�†i��d�, ϐ��!�enZ
+b���
/�޲��І�����2��P�0~�
�+��1�b��a�
�k��tT ��	�?�g�)��˧�9��
С�`.ޓ�`>'4��\DRd���Paxԗ��
����?i|�9�,�t
��Ĵ�q]��"��m-�9�O�D��'���E
x�>�#B������z6����N
k�%��tm���6BDzV��Q�G�
q,2�O:��
y�{i��H cy[]�v�a�Z��T�5 �Ȩ�R
3��4�5N�@q���G!�fYXr����{�3^�
��M7HX1��ey����������8����7ҙ;N�������P9��tn��/D�=����}*��I�:��2s�̋%�����G{��<Ie�d�X�w��39��5�I��ot=�ޓ�*
̸'��
��(���#^s����{�\���d�Y����dS�j	V���΢T>�7��a�b����� T�B��m�6ۺ�4JZm�I��
׶�F�הz�\F�D*r��E�y� [...]
+$Iⷱd�`U�+�����z�3��
8"}��Y\�E^�\Q��ܵ���)<&uZ�!
FM)V��"�ڟ}���&à/����
�
���5��
����O546�PW�눤0��
�f�GlE�bd�c
��'�ƪ�r��Ӭ[��{�K(��"M/y%���0=����zF�Bx}��{w6{Y5��0��%,��4�0�R}ԓ�vT��p>�K@�f�R�$�7H�U�(	�����/1��0�f<,��1�B�S>���٨RI3#&�&���p�a�5j����1��9#yT����H�9c�I���[��է��j���U̟�~��?�����
�+�7��N�zM�`k�|-�k�qJ�}(Ҙ2������S��aӼG�i� �;� ��b�:`uǤayU�}T��	2����Ftm�̔
%OpuD�����U0m~L-_������:�q��W��g�0~�huw�-]�
NV��rP�
=<�]x;Y���1�iw@��8,���n����\(z��q�������b�
!$zB��&5d��n��6
�1Q&�
 �&�
��C��u�Ўy
#����c%$7�]w'z\���0L�k{8<Oz	���o%4�P�˗�
+�9hz���͊��$�L�mxEFGO��$���Dc�����n�:0td#�*�v��T��2��.q0��6���v�g����Aԡ�n�3����l�'��H:�<@�I˞��8!�mR�S����s�^���U��g��f B�
�u�2L�> �;��f�G�S�
�Fx¬P�~���K�����m�%t3�M��� �c��cM(���bC�B��$
_� ��J�,���@��՜   ��%ӸZ�
;�.�6��B��)�P��T�~��~���:_��tH�NI�T�S��c��Τ5���_�3���b�O�6�-[o�
�7�$���c�n����:�zN�q��n�E2~�7\N��T���'�
�"[�fTT��^2F����
��&��+�����c5r~ԕ��(����j����l
4�8mW�DC]X�#���<����n�_	�T�� 45	�C0
V���~
m��&AG�A����7w����@�w����;����Q8� ��Q��
��?d��9���#1�y�ʕq�_eS]y|�d�*�&6Q��3�0J(�WG>�H���N� 
v���Ag��+�[�o:y1ډ�G�m�UV�'p�J{"�����M at 3��X���|��*�oƙ�ޞ�%sfJ�<��ߔ��[����-0R'G
��i�++q��NPF�\���&���XT~y�k�P�x�>���–����������~u2LX'��P
�M�O�W�	�rة
Z?q�U�����\+w�>-�q}y/sR�Q�Q�����J��@737���K�a[t̷�����E�8X��,��T����p����!��P���V�� K$��`�����Κ�׵�b�u~*L��lB�z-��<�R&,��+?�AP�]�o����L�K�ِ
'y����
�Y�?�
+~�t-"X�n�v&���?����VA�G��
+�
����7�W����h�K��D�Y��Z�%4YF�
g�[�
��� ��C_�M�6ЅLJ��!��)�9�
�!6��-��l?�@��W
���?�t`k�;�����p��}�
+P���>�f�{��i8Db����Mp/�F
��_<`w�[�U�q��.
���Y!�'i7�L'� �R�z$���v]�c�-�ީ%HY�~�ٕ����
�鞀ws{)W�a��˹��ԑ`����{�[z��
���ϡ������Z�&
���z
+
-��
��U��@u�BP.8�jz
�B�{G�tϤ1�ޕq#
���^�o�2��N*`�D��Z�m錞c�@QY��@����O�����y`��ŕ^ ��)�H�?�?��s	%�����J�@�f���-���H�%�{#}ř�PK n@�u�5w:=�Y�X9����(5#p
�9#���A�v(~�-�"]�Qb'䠡�y����a
+�������'����£�	+��v
O@��%�7_�*Z-r*��~z Ց�4��
!��w�Bp����G-q.�a+��c��"wmqk=���WfB
+
k^����0����>n�pu�5� �㞃= �m]0o�����-1�:ǒ~��%u
i����;�p�V��O�/a3��;0�o��Kܼ
L���6��E���d@�ZU%�{
����^�
Ͱ�y�O��V�NHLm���u�?�u
M��B�EQ1\�IُO�u�i�@L����7�Nk\��dd��[i��|����lRܰ��3"���r
W^ ��
+�1��9�~�(�V��ZQjsf���b�5~N
l�,
$LAE ���\�����Y�v����3k��"�*��Ie����.�gj4u��D��k"�*T�~~���g�^�
�~��<|�1�c��Px7��
kF�84�K(/AI�\ %�H�
�G;�'��6�������`kK����
+���Z�J���A�Fq��K�q�$5�GT��#.��a<��C]�s�zO��9�����@yQђ�-��D�RP����G�D{��n�����o��^�7�P��vU�v����T_F"�T��e�
��^�9��^�9���(Zi����*���J�|1�"�]����.��g:��E�TI�FzN���%T�|�k&�J�l���I��3ʌ�+�r^�qf��SNM���X��e��
$��v�{�ꢫ?�I��B�-��-Oi�0iX�o�
�葚T\���.%kR&-?(�m��=���?~3�Jncu
�/�mS<��Ð,��Le�H:�
�i�_+MSV��a�
k�@  \Ѓ*��+w��qDS!h��e

+�4��9"(h�d}+ɗ�7��)T���	b�ǪԪhm��`Y�ջ��
�s
<��-�,@��͋������SCg�Zw��N�	CU�c��W�����-JGm\Q��A]Q�]�h&D��0���Zvnw�%����0��z
��MT�X�I����:��l���<�7�
�a�`	���5�P`��ݰDh��k?�(�b��	��
?�`F��g�����ű��y���=�4EJ���0	GvQ�O4��W����d� SA�nM�C���
+ұ|`�7ø_��vY���Io���R�yYqE�,D�;�&Q�\�B�xW��r���v
t�

�
[���\"]����U���ˋ�
����w�髐�<�
|Mc+�����
�Z�9�(W
Z�ʳͰ��f����t��~X)�U�i��?�m�<P����	���;��G��-_k&ڞI&��M�L�<�:��:͹�7�����Kƒ���KX����Ѫ��W[�5P7W��tt
b�E6ռ�z
������~0�i��W�űہi4
[$�k����i�l�$����VRc4ӫ���Gk~ʿ�YQ�:ٮHb�F�G�X
~�Nu�.�kf
��c`�m
��f��4�걳�qVP~�:�U�
#/b�E7K*�W0��]�q�=$ܭ��� �X���QM52ym�B�S<l�U
+�ZҸL�eD׊=�

B��kLBR��Y�^�
�#z�A�%�ڥ`r^��'UIo�Fg�>�;1
p�'t.t-SSUn;Q��Y(sў��*�M�8=���
+BHZ#
��GcD�S���{
d'�,U�t���l�=��,}�*��v�cr�+�]�(_�1r�Ø@?A[��K�Dl�v'”o�>=��ԏ������[���?�Q�
�
ô n!ܘ���e���o���i���B]�u3����PzP'ߧ�%
�4�4Qw� �	L7@�?;�gS
Vjgo�ho�p�7�sy���
�R�\7�����V�%xL|
3 �n��|�2Q|��-��Go�t��u�V֘��Gk�}��fd�'�̐�yQ/;^��+b�#��&�~����ي2����(��<��c 3�;�n`9��2[

�Lqzt�.��)�<����lJ�a�n��
X>��ɚ��p��Tֆ��)��$��Dr�u:5�z�j�,|�~��0T\~�>�*,6�Y
+�]�7E9!��7���;a����u�*��8Y?��Ң��#� ���W
�f�iA�~�\���mB\�$�O�wD h�E��16:_�����J��qB���R%��*X���3

�!��O���:�`I�����o��k��2�+��}�Y��'1�%Y
�G����PMJ{rK
�����w
��
����_��
��L�&N�����
�N�yA '�ճmﺾo4gz"�v;L�	j�e���
%Ɯ���{��N�S6��U'*���@�d���jNc��v�o^=�Bi
���7�95���l
�
€A��ⶫ62�7�I����C�k�y
V�_}B��.I=��YR2��U^�c���<z+w@����b
+�"���8ۺ?pG�Z:�Oȿ��7�Ý��T��ԐI���
��J�A�����x߹rx���n?(��؁ w�h���?���F��O�Gj{�D
"��La�W�e�}j� �w��*����62�y3r3O�(�1�;LS��P��p��a?��
��U��}��c��qT/+��~���3M�ҫy$�=IQ�RS$�@դ@&\�l+f���EI��1k��ڸ����v�x�}_���nϐ��M�fB��y��"m�
�9�nQpϼ
Ϻ�e��\I�2��Gt3y����)w���%�u�$w[6o
@&zܞ�Y^�Z�w�;<\��b���m�����"��������{���3
=�s�
SN�Ӑov�(����D"��i��dM�֬Lใj9��Z�K7_�<��ې���ø��9�74�P6��
�0,�R���?����D ���m���6��.�D�t���he3
+����>~�o��\Ƙa3Ƹ2���@e���U*Tl��m�c�ӱ����� �~� x������n��N��������U���)o`Iχa]�����P���F�ŚVTC&�ϣ�࿋Y�=�d]/��
�.��.F�BX�s+$��=�}buM�>�RWm6�Ŗ6ᢐ�FX �5�x{v*������j;�zv��<���_~���� A��VUJϐ��^Ij�Q�x�シu�Q�o�=l�K�_��Ց�E�kZ\4��s�qU7��vOa �J?��Q)�4C��^����\��k[{��3��y�~���M�|J��'g��4Ay,$�0�( j�H��l�:Q"V҉�1X��&e��������
�s)M�Z��(�W�
�|�Ϲ�\���8�8&�t��c�p��Ҕ��a����
�͔����
�C��C�
GU�$^�fb���|�8u����̸
����&���A֍�9k�e�7�;�㥦���k�o����Av���Տ0o5����y�'����������<�!�����H���P�4
��|y��C�{_�2e��lTr�s��*��Idg_��'
V
+Fv�z|"��ƞ��ҩn2=�3[�"s����t�	�}N��8����`
�����1`X�i��]�x���(�U2\�o[v1�d%JOO&rؗ��0ܵ9�Yx�ݨ \��
��D�m����]=H�j�ovfd���)�:�t��b�dH9\
��ϛ�Y�?�8��
<%�}��dV�ەh��nu�ӻkV��3�+��(+�$���
-������#��Ջ��QҰ�����Ж���X@��h-Nd���$�a��>�M3��q��"y���$�[Y�@S���g�Ó=ݎ��P����1�)L<�d�"�d��rՕs����W��	��DJ�
+t��b��
�c�j��*���!�A�q
+hG�|�3j z�O���� ��|�
N�
+��*������%2#
�Ǔ�H�7!�
;v����� '�;��
O����~h�ĥ�%�,v6�Bբ��Tx��Dv"Lt�ïK"N#��.ec�}f��˺��d�&�T���R��AS�;Yq!������E,������AA�m?~������[�7��[ ��>
\�!�B;U��!�)/������C$N���$�A�³u�e�uU}�,3Y'��/J���c��	.8_[
O�����N-<"N�����awG��m��_+�yj~P�]ſ^\y�
X��,r-�|�㒒��ܳ���<���L^T}��,�^eDR��,��n�kqց%��|r,�!g��Jx�����=~�p{"��\ee�E�N;��Þ ��=���$���{q@Q��_��\?�/иLe���>�u��#��M����p�'Y��n�_e<�q㼅����Ra8p�LB�=��(�YK��[l��`BK����B#4;c��;H�S��^��OA<�J��~�I4,���$"���,B\HV'&fಀ/pO_*���_�_�#���&l��Wc�K	B�Z�(��|Z���b��+|���KpT��
+�Ar3v�*>�����>Ʉ�x\�+�0lk������O�Լ`� �F���cfup�.���wlC�n���KJIi]����&���f�����XPA���n�1ک���F�TK��BoI!��Ӯ���Z�� f�
)~��X��h���y���9�
ݨO��C5�����&�|�T2���Ӳ���n�SLB5eD0��:��
yP�;��(��w��9m��Ϊn�Wh����K�u����{�`��w��k�����
+��kH���>*�ڲ
��1���
�w�p5�����Q����݌�$
�;����LvvJ1��f����3n�*���T�g at oO#9|}����?V0M�5.�ۀz�{"
N�K?�C�_$
P�&B̆e>�(
q��I�u���`���|o�b|�_�0l2�Wꂝ�sC��ܴLT�
�I�a?�f(/+���P�Iw��B
W�h�g��šH
 ��
Ei����(G6

+���
�
�" �
+"(�H2�̙�dfr�	$��x�Z�EP>�ţ��
�����C������~���E��F�:}<
�\{
+�����%����
rH�6N$(߫Nᷘ_%�1�����]�2�:$����o��-�8ȥ I-qt;�'k��TjJW^�}�k��fQUr\�u��
l�N�
kHn᫂�H����*�W������d6��
M2	*{���`�V%���VR�oJJ����`+"�yO|s8����6�V��y8�
�:+����;��9��ɨ�=�.q�q���ѝ=���ɥ��^ӏ�w�ld���G���;<�bSh�
	�
�� (�����%]�
�N�}uAܹ�
�`MV����?g�=�&�o:R�����(�tWS-{66C�S����������U���foEI��hzE�'�ܜ��&��Q�8,�g�]-2t��%��F@}S|��QJĜ�h&S콧�bor
2w�q�|�o�����/�$�
Ĭ�7�Aң���I�MXIc>��f���H^�2��`�zB�ȳ�
	ŞO�*�{M�2MoR�0�i����:�T�~%�$�9ED
~c�j<}
���${.�-��+P]c��=Vz��pwz\S�;!?���
C:�G�F����Iױ�q�Y�Ş
݇>;��]�����m�S�)�yr���Ez�_n˕�aI"l�|s�G��������vm��ߵ
���_7e]֭�>��Г��U�)i:��D΂�G�}�V W�5*��{�f��?�
+�(��$�p\)9D$ZY�r|�����(�4D܁O�H���ʳ
;ܫ��v۱j�x�Lr_r�
���;Wi��
nV�|�R��u��dܦ� ;�@������Y�N�<q�Iȗsc�E���^M|��K����ƿ��6��#Q�쀫��Hl6�\�r
��E��jJ����K
-�β+� �x��=��j1�(~ǒ�)�C[vQn1����򑾪�x��V�
���a���u� I[���
8��m���Y��GeLV��(X/�%W}��%
��
+��M]4�ǽ��A�ߗn�װQ�ԈX�tGd�Ƈ�D�\wQy�R�>�l-�Q���nJ��Ȳ�c�/�����14��
�C:�'K��&���̕BO�J{ߴz�f�sW��|F-��q2��
?���}Y[�pXd�Y<\��v�+�
�M{��i�r��8��~�LJޯ����
�vlL:��	?@���o�[g�`���}�>?Ur�ǛI2��L�k.�}GpI8�Q�RV%܂L0/PU���E��
?�ɹT��c�ۼ�f�H��s��^QM�C!��)�$
�;
�ej�
�uIy	�W
����6���#L��Mi9�Ħͱ��P�*���H��ʘ����F�g��]�m��ߝn�+|���X$Z�6K'�
�O�Q�J�q ���m�(B~�lj��Su�Z
�ť�bhW��P"��z@�U�
�V��J�΂\�,<\H��A�
��5���� �O�af΍�C75O
����<x�5�
��MKQ�����e%T�f�ʤ��6
S
sFt���TOU�t(���
�2���[
+ES!.?Ӕ��#��C�:[�6�$ߴR�2G�[�D��U��cb��Dx(M<����}��|�y��%�����}�ђ���Hm�zy�Ey�)�9Didh(Cp��K�o���Y�9_\n�i�Qsƚ��Ӯk�X3��6R7��U&�"c�T4E�ʈ0�X�,t	��:�T��/>Uݮ�x�7�����F���>Q��L��~:ʥ�#�]�[eTS�2��%��c�
���Æ~EW��g�9��i���%�3W4ފ:�}޼0�_�X|���-�ƣ�µ������V�u�8H{���Y�F�"qĔ-�F95E!L��/���3z���Lw@��
"���F���Rm�O����Q&�[�#�����
�Z�O��/�x��ˤ�r�~9�T0�0b��ܬ
�4��Pߋb�>_nMFY%��<�ip
+�;R�x���@��|���qj#�l�j�?Ape�  �[�ۊ�x�{�
+�s�H�t-bM�#���t8f���5�}s�c��0�f0

CcB�K�R�mc�E����k���ץ�JH�[�ۢŚ<!)�N�o�OC����I}5����2���
������0�9���tMب�������7B���0�؋��
����0��z�D�
K�
�Ye��R�U�J�����ѐ:N::,#��D~6�ž���4o1��l�`��q5��X��U5G�"����Z4�tX���� ������
��cV�u�{�_<�9������S�N�}h���%�{�nԾ�"V}V�"C�w}�t���)�b�3�zFj�oK�����j2�'��Q9
+]��\Bȫr1.8�C|��.x8�~��pG��m<�ϰ�"i��S�˨�
�ڠ
u[��)�E��k�+WE8x����5�
q�g<k~���[��0n�&
ˊڮ�c�A��a��
Jú�g���"�:�"].f��f�5
	R�u��B�Tu6�u�|�;4R�
�'���hNp�\@I!��Bq"��:*��pX'%O���$�K#(�
�}�vW��&��$�����n������x���T�eحk���U�^�I���kK��l��

Y�+H�;"�����^�\��#G_�Km��R2�y���fbI-�ب:ݐ$;8�$N(�Ӊ�x���a
+ ��1��"��*.d8>���MO�a��N�$ʡ˖~
&(��$~��>�����t�BM%^i���3��ϐ�Ef8UB	 �
���'`-�icIaͨ��+��	��دR���=�Z�����Ⱦ��Ł�=�5�U#��5H����R����>njky/����s6��H؃�E
oL��y����C�G��/��?QE%��F�v��MMz)=Z�B.��ϡƋ��/�•��3������O��8��5&�Y�����K�լ(�ST� e�ҝ�ZV�
��x'�xaV�4�Ë
�*H�]z~�h~
�i�0d,�K��8��CZy�{j��CF')�b�
|x���NJ>�V�{�0��e�#|S���E�1b狛*_�R��"���
���37�����B���oξ��(p�3_�<ݥ%-��t��ɫ�B�e��t�Ɠ��px H��uRuɵ)H?�m�����
�f@�Iz�͂qrgM_����D�|Ce�
+��ӯ_���w�CՄYK/��Ԩ	��佨/���Y0�����y��̸
7�.]�*ѳ���a �!�d��[�m��9���#{-�;�W�[����	
��U�$�mb?ci�3�ؘs���q�6�ĂT�
t� ֠}���
�dl����v��{�F�yt/ټ�t�����̰��K��Q8���
N��"���4�ʻ�c �'׸N��s6��I��
<�fWϚvЕ*�҇�T� 
��9�
�I#�{�	��mVx�@�.
��\�EyT��}��W�*�fҿS�ѵ:'��hP��of��ħ/7��n�
u�3֭F����c���ȶT���5��y�ŴѪ����L��i�Ӕ���%v
�I��G�	�ɒ3�m?PH-k�
�;?�v�bkk���Չy��^��4o B[�*�Bo���R
9���^F�t�b�Iyd����W��$ګږ�
�N��T3�VYzl
((�m��"U�a.\�vz��C�5H8�H�$?sZ�6���=:�hh�B�!É8
+`,�
g6�$cN���!L�p�<�
b<���Nz;�0y�%�
)�
�"�
�D�B@�
;�.a��$G=�W+����v�F�v-�����|d%��ݿǁ�gOŨ�
�;$KF���lb�u#�^$(�b�	���,���jdM�[s��kx�v�͆��c��?s�B��fl�S����k����Me͈Ly�i��3�TZu�g�v���#���V'{�F�,���8+�5��%\���Y`kY o���C��,VQ�"�B�k�5Wjؚ��


a�x����h�k�"�	�A�ƛ�/��d�X��!xJ
��(}�~��&�|�
����	�h��?��.��������XS ����qX�}|�#Ci�ch�K��VF @ d��w^��NH L
+jk�u�j����V�JE)������swm��^
��VQe��^*�7�c�Su�5�.�:��5!{3�A/��u@v�?�aD��UNC�k���H2)�
1�z%�9�U鱛������v򹰗�!�k��0>][#�?�w�sb���,4U��_	f�)��E�ď�*	uä6Go7�6ɵ�
���{�����'
C���Ga��+���RU�A=�@��5_�rgs1OU��G��*��ʚ�O�
&��Q͡�4��%����
��nl�c=�%Z� ��v�Y
�Ze��ਝ4�?
eC����`��
�

�_���wvĦ10�K�B/��*Br�v�4όwM��	0����
r� �`���$
����C�ܝ�G�a6;g-N_�&ɰ�.`	�`�0����M/s\�P���M�f�`p��3������ 

$��A7�	i��	���c���(y
<�N������6 ��e/�
�c�POj��m�+�YЪ
C�z��Xa-��
T��`ao�t�t�._
,qg��O�����I]@��f"�	�?4|T�]�T7[��r�5+�D4UffN�]Ϭ��'�Md�d����Y��%A'-�:�x�>�j����Ӎ
�5!�U��iMSD�-rB�FL��&����^:O����F�-T��4��w
�������T��3c
q]�2��R��d�/3���U�\;?���Up=���@�b�
+TYRJ��3���O�)*+ s�W�u�.��[��L6�Ǽ��A�. �귒�h���oN_�=C��|��HW�	Gz}��w\��2�h{?�U��r_ס�,[<���4�Dm�D��〷����C/
�F�l�
M�r_򑹾�g"�P\T�M�Ii�D��w�$��=`
��I�Ӑ
��}����6�.��jY�x^���h}]����"�]���l
+��8�"ӽ΃ǐ��
L����"�H�ڝ��k��:^֖T��m�������� �.���^�@1�~qxT���l�U����#U7�����5��:��L�E|4�&W2��5e��xz��*̖̆;�����M�0��do�^�lpm����aI�S�7�kD#���'͊$�"lL�?b�A���DI����N�mEh�
��8��Ԍ*�"vұ�E������
���݌5Z��5
���
�`z�~x�[�M N&�a� |�b�(��ǁ$�ch�
�����|cq�)M�_���Ɔw>bSО$
��	�D�p��
�z�!G@o3���
��
�a]Pn�N2);K4 U����"�p+q
��7b�������L����a�y�$�04��iC�c9��(�6�>E3a�{� R䏡�0`�?�s0��7y9'`L�q��`S��cLr &M���P.ڽ��,��_�r��u
����/�F������=܏��=1lt�Ŝ
�9>1�lם
+��KX_�t+	�
�=���#�ثL���
+u�uW�K���̹�
u)�F�@�������j�R��_$����YuBś�G�bQl+$���,o8�q�l����g�
!)
����n�2Q����U�>Yt�w�(���^�
�'Y�������
!�� %�G�U��9��� ���,� ��&>�YcwU���
�M����j"�
��Z�o6V��WF9�=�a��l
m�y������nqA/2�A�I�̐���i���
+q��AN?!9Nxl�b�O���{�e�i�Y�Q�̶�>S���Z�	.&�s���b��j?1_��ǡP���k���ٟ�
�x�`дY�!�n��6f�VJ�?ff�o���n��0�����6l�)�7�B�u�yMA�Ѣ�&�m�>�>�Nj��#4J%���&|���
E]ۊ:��i�2g�0��io*�6zX������h
+�҂��3;���1"��2ҍ�+O�?���K��ja����� ���Y|��n�MH�p�A/�LsI5��cu�*ΐDx�!W�
{�|m�p�q%��q�eh��r�Yb�Bt
M7��u�A-�
+w%5��,x�+
�z�!Ί}|%��w�pȩ�xe�Xx|Y��y$M�}y�A��z�5��{�+=�}5"6�~�{άq~�p^�Q~Md��~*XŸ�~,L��U~S@��~�5��
~�+f�2T"��P�{p�U�Ip �<��dG���X]���'Lz�J��@��ς5��)��+��g�I"ۇ���{�~�o��e��c��,�dX�؈	L;�o��@���}5��^�E+����#���zЩג�oy����cơz��Wܝ��L����@��E��5�����+��
��#N����z��O��oK�/��c����W����
K՘$�B at W���|5��%��+׊��#x�A�qzt���&oM�ɜ9c��l��W���K×���@V�� 5�����+�@�)#���� q���h�f��j�[Ű1lmPʪ�npEХip�;
��s
0�Xu�'���xzŒr{�qD��o�f��p�[ԯq�P䩪sNE�t�;=�%v�15�x�(
+��z� W�W}
q(��vsf���v�[���wLP̨OxE뢳y
+;N��z11c��{v(_��|� ׊b~mq�C|�fL�o|�[y�[|�P��|�Eҡt};O��}�1���~/(���~�!E���p޵�f&�B�p[Q�/��Pt�ہgE��S�;P����1��ƀ�(�Ā�!��ހ�p��,�Rf�O�6[B�5�Pc���E��`��;U���1���*)��^!�H��p��y�`f
����[>�f�	P[��AE�����;Z����1ٓ0�U)F�j��"0�΂op~���7f
��![B����PY�_�EE����;T�\��1撠�C)k��"d�j�pm����f�r�=[M�,�1P\�Ǒ�E��S��;`�Ћ�1�'��)}���"��
��Ρmf���n�i=��p�kq��r^m���to�lVu�rX w�tD
y�w'0�|Yz>̾j�qźjl�r�`n�t��p�u0�rnvgkbtgw�WIv~yCtx�z�0b{x|b��h�|~��j�|���l�|��^n�|�~pp�|�j\s}AVtu[}�B�w�}�0z�~l�;fׇ
��i�
+�9kD���mh�5})o��viNqꂿU�tX�BEv��=/�y��VǧeP�{�qg�����i卞�|l
��{�no��hLp�(T�su�SA�v@�Z/ryX��_d
�ִ2f}��}hƖ�Mk�/z�mt�Lgdo��jT3r��xAKu��I/8xσ��[c&��5e��[�}gܞr�Qj.�xy�l���f�oD��S�r
�d@�u��/x\�
ębp� �vdܫ���g%����iw��y3k��ye�n��bSq��@�t��o.�w��U�a����d`�R�f��W��h�-x�kk�emn)��R�q�\@?t@��.�w��Z��t�f4��u�h���v�j��xxm0x�yosekz.q�R|{itP?�|�w-�~�zK�'r�p{��s�qԜ�u#s
��vFtgw�wtu�d�x�w*Q�z%x�?E{�zb-�}�|X��p�z���r'z�ssj{@�(t�{�vxv|c�wy|Qy
+}>�z�}�-R|�~H�(o���Yp�����q݃^��s=��uPt��;b�vS��PPx
�<>Ay���-
|0���m��{��o���p��z��r ��t?s��^a�uQ��O�w+�T=�y>��,�{��¹�lu�S��m�� �oou���{p���sGr��latq��Ovk�?=tx��j,�{
�@��k��
��m�ܖ�n��l��p��rxqؔM`Ws���N�uȌ�=&x��,�z�����j׫��4lg����m�
��om��q�q0��_�s*�9N uI�_<�w��6,�z@����ja�観k��)m\�|�2n��q)p�� _<r��`M�tړl<�wJ�),zy�����}!e��u}Dh,�9}�j��
}�l�pp~.o^�~�q�L�!t";��w+��zU��{
oK�j{ipϒ{�r>�|2s�o�|�u
]�}@v�LO}�xT;"~�z-*��|L��y(x�*y�yr�
z$y�
�gWT�aˢ�ĮkTd at D\dPPp-HG��&]�30���;s�Cg(�� 1DE�*n�6ܵa�z�*�&��<��//6��

�O?��Q}�0$	8
_��{���[w� �/��!f�UmxrI
�WB���5�(����)2����.$
��5U��o�}Z�!O�O����q��m�����
��>�>P�3��ĸg|

�,�X񦁓�`���S$�>BG��
�DǕu��#�i��#��܌-�`
��xJ��!w����
م:��(�����`[H�W��eQ�2U��FD�����`�|���
:C��d���2��~Tv���k��dEeUb2�<o]�^j���j'{@��s�Jɻ�uiW����ŷ� ��o��Ws�%�PFU���V
6[f��
��r�uOC��U(5�?���"/�/��b��;��H���-O
+�o�_�%��{�"bHk�&9q\���W:���r��
�&�G�%2.i6�D�1�%~F���+~Z��C�?��
8��V��
+�2�#�⮪����
ui^#v
+�NL���؏�S���E��Z�Ln�Ö`���=l
�va�;(�>̽��p� ʠ������~��[��@��Qd��F!��7��H��$��������	����#��d�Lt�!BO�K�*��G-i���C��r�B�
.�U�l�mO�>�
�,B�2W�<+�3�6��7���ߛ��@��

�)�۠&KO�
0ޏ� ��O�
igm��82=D� �4FB[���!A�Ib4�~����Z�� 	*��fz\��O�t��F&�����ӝN&3x��F� �[�H��j���z��&3n14���b��M� �zB��!�
��|��+�
�

+/�hw{��V�\l�s��T�j�g�?қ����۟�u �깮�D�}û�.��5�ʺ�(wM�	��ұ=�L����j�e�o(u\���
y�P�X�����Ƣ8�p2�����23�2"uh�0
 �;�(3���-ybݷ�3����Wd��sF�@w�	�,��8#���!��H*9��)iF^
+��P7��D�g��3I�33D_����)�J�QNdO�m2�t�a':�=���J��.�۱�
+s�`d��+�uu�-� ǵ�i�ȵ\L
+�kw��/i���&G�1|91�:H�^��
�gW���@-� E�if�?Q��F?�/�Kv��ř�M�kz�݈u�N�0:ӎ3BJ]�PU@��׊VV�z��D��PC����9>R��Tl�{=E�Y^Sc��yjN��9����6b~mwj

[��
Zl'�d}��[�Y�ގM�:t
U9����WI�-#�d�=�sѣ�S
��I�Ku�Ʒ6i/JO{�s��{��c at 6o���P�U,�'9cV�~�M6���I�Q�1�W�wo��T+�ml��F0��\�O��d��?�o���i��4��M��4M�C%�H�f�M[�r0p�[�
���p�|R�’��/Ld/_c8]�
׍��
�YpF�KM(���Ewo�
@�jj�I0/���k�ad[�H�>��|/ѓ�L��
��|0�0S���VR��ׂV2C�æ���a��v��4x��,'L��82��'�7��&n���&
CĿ���f]9�-f]i<?h��_��]�ǿ�"��a���5!�	�+��C�Q�O�}D{�p����՛�x�էɰ��i��X1kt́K�M�w:�h_�Id)[`m���:��'1��f%s����7�^V6,��0���|����3���3~��+�䔓*o؜w�PPK��
W
��{�W���0�.��
���^�Mq��'r�>{���T������a��4EeNٟ�����ή"�V��_�ǔ3���t�f6���5��ҷ��,� �jP
���6E���x)ͻ��U��Su�@��6M6�d����������F�����V��SˬG���Ŧw�Ơ��u�y�@>.���TȆ���V�Odj�?#驺�syc���A)w,zl<��� ��ـ�B��*��7�i�j,\���P#���;}}�~��r4��fx�O�"Zh���NM��
Be�@�(7���8,i���A#F�a�N}����qǖ*�lf
����Z �ۋ
M��2�HB-����7�߅�,y�Y��#p��9|��
��q�����eے�NYƐ*��M��}�"A�튘6؈U�,��ۅ�#�����||���(qW�,��e��s��Y���!M�����ANJj�e6Ç�,��}��#��5��t�Pc�jO��f=_`�rh�T��k
H���m�=o��p�2���s�(��Hv� "��zbtu�5k#j�� [...]
^ٟ�t
S���uSHt�#v�=_�.x02�y�)B��{�!
+��}~s��<x�i'��y?^W�Ly�SV��zOH-��{=:��{�2�|�)p��}�!g�
~�s@��|h���g]�OR�r:GA=��^2��)��$�!��U�r���
hn����]��
��R��y�G��ƒZ<�����2�3� )��h��!����r��7��h/�ۋu]j�R�
Rh����Gv���:<ِA��2�v��)҈ƃ*"-�=��rY����g��<�"]2���$R1���GD�T��<�����2�䆡)�?��"Y�ׂ�r+�0��g��Ȗ�]/�&�R
�`��G;���
<���42��^�u*�څ�"|���/j	��cj_���e�U᪹h
K��$j�A��+mX7���pM.=�tsk%���v�
��\z`i���j at _׭�k�U֩im�K���oxA���q�7��ts�.��vp&(��y(6�0{�i[��p�_��`q�U���r�K��5t7A��<u�7˙wz.���yQ&��c{V��+}di$��w_O��w�U_�vxKk��x�Av��y�7͗�z�.ݒ�|&̍\}[ '�K~�hꭢ}9_
��}AU-�)}TK4��}wAd��}�7�~..���~�'
�v6 ����h����c_ �z��U��{K
�o��AO����7ԕ��L/���'A���� ӆ��h��ʉ[^񧞈~U�0�jK���EAC�ą17ה�1/7��D'r�	�b!�k��hn�/�^���U�u�K
�ʊEA8���7͔9��/A�O�7'����!H��AhZ����^��b��U�ؐ�K�'��A<�g��7ۓ��$/L�͆�'����!r������h`�JjNc��Qlyf���n�iMy�p�lf�sn�S�urq�@�x u</{,y��eEk��g�mE�j*o��l�p�x�n�r�e�qdtR�t
+v|@Uv�x�.�z={9�)b�v�"e�v���hwl�Ej�x6w�m0yd�o�y�Rr�z�?�u�|.�ye}S�i`��Y�jc����f6̈�h��vRk�yc�n�gQNq�Y?Kt�S.Jx�L��^ي���aɉY�qd��%�vgf��u/jO��b�mf��P�p���>�t(�o.w��
��]^����`c���CcH�l�Vf+�;t)i0�a�ld��O�ȯ�>tsw�[-�wn���w\-����_A���Mb0���ke#�SsShA�!a7k���O|o��>#r�
-�v��0��[D�n��^a����aS�h��dL�%r�g{��`�j哟On��-=�rf�v-�v��m�3Z���p]­
��`��܄c���r
f؝C` jR��N�n�b=�q���-�vB�w�~o�`^��q&cc�r�fB��ti
q�u�k�_�wIn�N1yq�<�{u8,-}py�mjy��n�lp�ptnR��rp/qs�r_;u�tM�w�v2<Ty�x�,|~{6��j�tn��l�uf��ntvT��pEwFo�r+xF^Jt8yZL�vkz;�x�{�+�{�}6�
h�~4�lj�~F�(l�~L�Fn�~Qn�p�~e]er�~�L:uM~�;sw�~�+�z���f��
i
���k�<~�m*�Rm�o_�n\�qǃ�K�tU��;w&��+�z@�ɮoe~���g����iю}�k��:l�nH�[[�pʈ~Ks���:�vw��+�y��Q��dX���f����h•�}j���
Շ_S ��VN�u��1���X�DY� d�0�@�/y{��e��`�@��=�P�����8�
+�
+���x��+����O��pO�T���+��g���xjZ�@���c}9`k`cTnw�?�+�^5�����j�䤢���
T&�o
+
�l���E��x9�
{�Xf�Pg at C_�[�G�=/�5��g�4��ʥ^E�*�z������	��5�#�p�
&��X��s�Y>���>��@?�n���C)�HKс�#�Eu��$�%������`^>[�
+�(?`~�^x ��0���� _�+�O��v&"Y��D�>s�5x'��]����~���-��i�f�~�>NF"
P����� ^O��G�#��
�ǖ����0�<�7�ӆ�7
�:
s���XL��!kݱr�
����x�{6�R�t�"+��@��q��*�7k�1��U誘Y�}(��~
\H��`J䞂��\��
+����5�2[{�F�;�On������ݦ��
�
*C�{
2H�
<��N-�S��2��Ur��u�UKm��5
ųBu��
+}�����3�!�J�H$�
�#h^Qv�0�q�U�Y:�ʫ�a�Z=V.���}V�Z��fs�y
����֧�M���P�8�:�x-k�ն(+�rީ�G�S�I�Э����O
���w�
�iι�9јy��������&��z�8,k�.$��x�=rmRM���R����u�Mb;d��w0y�
�2֤�T�{����
��WƊ�6m|�+�8�EC`��
�Gd]��Mm��"��W�rS禜D��~A���S������	��+�G6W#��jnA>p�� u�w0�D(�MHO�B$ ������vKѻX�� {���'V���'
5�c

+
+�sh�
]T4�I��
��D�G�ãTD�(2BNlz�9�eB_
 ݫ.�#�J�U��bG������ɰ������	�P��c36����߅!�3����?�o /˼�	��4Ta1l-vKWZ������A�p�ɾ���<���>\�Щ��ހk�a8�Z5$�G���d�W#��{{��ߢ��!	�e�8l&�V�
lu4��ʚ��@ԸQ��������WJ"�����
��쎛�����)�9(�6�g
f
�y�'�1?�J��L)��b���쭢���l��]4�L�kۘ�Pp�u�ﲹ�)nCA �Ŷ+2d���EH�'��H�m&Y3�u���ѷ��k�ѽ���ӭ���1��n�]�_Z�<ڮ�Rvӛ���pj� m9G݂������#j}d��A�-u ڠ���
+�0�\C"���
dhK>م�����ٸ�:IF�q�\BVhF�'$�[I�&3����B��t��K\ �D��'�`;�I
[�"��%�#���N���\����
I
+|?�a��8+�ş3�"-A��ש�_ZZ�K�O%u6`����X{c�ͯw1�
���$���+��O�M{�'���E�],�j�z6���+���~�
�Q��k	a=�_���/E	��q����bV�k��&S��7<R5�|m[N�S�<�
T[�'���c�֝"16`���f�i+m�Ԃ���
E��h����6��=��2%w	��\W��w3/VWx�G��k��	(�
+��K6\�G��k6ygf���p86�,W	C	~�����8
�y�q'
Sk���3��vI���ժ*�/��kffԛ]��_M����5Ɵ�$Ϲv��3����\�2
�e*��^\?����|�_��cj��1��xڶ+����em�[�8�
��@��r�1�
��3�4�6=���
�v�׶��
+�f��5�R���j�W����u��M!\��7c {1�
'a����`&y[8#��H���3��Ci\OR<y��0m�O�y3lN2'�\N
`�́QSL��'�}�)�R�찧�R3I�w('�g���V!��pG�Je�ضR.u��.��j�O[GC�����d5�a��L!_s��d
݂F����\nMͳ�&ֹj~*��A��%y   ���2[�\���f�-:H�Leyby �
+� ��}��s����-j������5+ڲkE���Z5׺ֵ��ޛc����[GS�J��o�
Ť��� ����+���unR�Ɖ�o���Q'�j
+���9y<�i;M����B�]
+���Y�5S�A
*bPW#�X�~$u2�ξ/1�a��+���` ����cv&�L/�0�̰��;t)H܄|�E���9�1��ݎ��j�Ɇ'u/���qvC��|���\l��W���ja���C�m�^~nc�=�=�7E�m+�O^�	|��v�d�,�<8L�O�j�%=���
Y0o�}�ď��vCB�W[�K&��I>f�g\"�&]��KOÑ:�
%ije�B>�%���j�:l=��T1e~��/�ߪg�
���I
0^Y��V)�<�^�ϑ�%
+�զՏQS-W��GpaθD�8�ߠ9�D֑Ճ�XM'�
+��U��J�]I�"��mt��e�uuE�)��-3`�Ҍ� SoO��
�� ������6Ju@$�Z�Z��ǚ����;���o������a��m>݄92)@m��{��������
���>�-�V�|���������WU�>r�$Ӳ]
�qّ¸��z�EYuɔ��>�GT@蚩
�\�'��}њG����9��mp.d. at L4
c�&,��r;b�
ӂ���d�l����t3�ݦ�]Q<�
b��-w
��
N
�k��	k�
b�K�%����H���@
j��"�W4�sf��|A�a{��8�c�%�J@b��W���\��E���':Ehs�ř�=�}��9fǹ��T��W�
!3ߔ�% 
פԘ�]YzĀ&X
I
kWdP�ي
�b�]�9g���bI��i�
����$ �O�1wu_)��x��S$P�)m/�UI
�.m
�psf5�Uwl}oy�h�
 4�;=DU�IKS��DS�j�j:�?�2�*w�0P��4��o���+G��4O6�j�eu��
�H�W)ϛ=���ݮȆ��s�51��
o���k���a�I�ӽ֒Wo�0�%>��#}?V�5N���_�����r}��%�7���
+�Լ��
{�!`�D}���K_�4�
+�!���Q\��Hҽ��zȔ�H�N�>�uA-^Ჰ�bg��%+k�5���8�W�	#�wi+���q��0��k�hc��uTT�[����`�5�Z[�`�J�	&���-��v�**��
cs0��� :�-�7���o�3
G�(�Z!�
d
�
�
�z	Q}v��x�'E����}��aQ#*��'���vi�Ʒ|'i��n����˵Y���;�eR{��E�1��v��i�k�Y��T�2����4o�/��;��K�
�
|O	c��
+Rr_��T��'�U�t�Kyγ�z�a�L�
=
z�s#k�)��|O�
���Ā�܇��:a�x�im&��&
^c���ŽoIѓ`�
+���W��8�2K/�ױϬ˽���^��i�����p�u�����O���:JD�:WtG<Z2��]uyy�+���0��H5W�?16א	~u��[4'�)B��rj�X��G���>��<�8Y�J]
+
Մ�y�iZP�-|xm
�4��r�Qe�`�d
Z�H
;4�S���X1̚�`��w����p�u>�7<dE,]��5�J�!
���T�%"��
�7%:�	-+�6\�w�����O��1=�zs��[ITNX��)bOIUq~�JY�����鮦�t ͆/?��w�U[j��+ϖQz�U�R�
�'d(�_���X�q��B�y��g5m���V�e�q}��J��sg[�\[���>�	H�2 
�<?\�`��L���8�n�/�j?*��BgK�ߩd�}��d��"KK{	�LT��k�a�(
�·t=no��4���i�H�A�-:��s0J�
ַYa�<Sebv]�
+�%�;�8;2�/+B�M��q�vs$`ى�Y4/�\ssi iUcd���U���a����fh�6ua�P�����&>�%�C�d>�zES�?��+��&��e�{�\�Q>��+)�
��^T9Z�P���F������� �V+�@������l@
A	��B�
+r�3���
�L2�$��
$���x ����*,^-�ڷ[]��<**�R�������I�<E�|N� �B���j��*�K�=׌���A
���ua�2�%V���/�.RC��
�v(ݴ�ܥ�Kp\��	t!w-<��
��ar[�fA72�:%�E;���),�Aj�&%yޑ$��xPM�E�@��Af�Wxx����M�%|zW�6�J�
i,�o�V�^>npdk�
ŻΫ

�:�������C�������>�
KXi��<�_�TT���Ֆ��q�cs�.�JmZ�E�Œ����:��^΄���hsVIbm8tS��X&^ a*Ɋ���n�^�m����=A2�s��^
�mICca|k��`�K��{��"Y١:nf�,ڱ�W	x�_n~�	��
+!f�睥��#�
��A�ɧo��
(u�
+gį�Vg攷���E)��?n�/ؠ�bd��S�u3�Q��Q���I�B`�\��C!���d�
+�P�,���2QC���[P���һ�n�`��
R������XYU�^��'�,|Y5
G�4-}�<���k�C���fގo�ۆ3 �����7��%�R����/4��!=�a�'��m���fUg�L���(CfU]@::&��
+�wo��߿���D[D$��<��H�׽k���U��*I�#;He6�i*��80C��
 �T�N/h%��
u�hvL�5'�ƭs*=%s+�:V9˲O�%����(LWӖ�s��w��n0~
~
I`����F��嵃v���&��K^U�*^�6U>,�V��{�:T�5zG�Fd������x|��4Z�ٲ�� �u�'�ʦ��"��Ww��[��f^�'0X�cx���������2��rK�J�J�D�������Jm��B�|CÁ=�55oc/�����h��N��L9�'0�jI��.��� ������ =$!_��3�s�^�>pX0�]S�c���Թ`gi�9��Q?�+�,O�|ek���kC)6b���f!)�,�M�����jQ����Z�F��_ ��Y[-�ۈfiv&���m�H�!�����`5o��I��xu�d
��P#�F�
+�P&�����h_2�n�nm��MsC�?�������w� ����O��t�[P�k+�j��n��A	��ǐ���� �H�ځ��Y�*�z��ל`� L﵋TL��0������1|w:4�4o�����(���%����j��̨5Y��J_���|��
�f�����
�y�l0���0����D��O+/�.5�T�"��$8��[g)T`MH��?�Ɠ��\�<f\o���-1�
b�y^�Q���E�E����*׺����e�U�.�_3P}7&^l������X���x��V�MCG| ��0A~�����
�
%_����o�
�À�c`�4]~rf
�5��o���{�/DRe�)��R��'2:(FQ�KL�U�Du�4�9��%���O�
�'����E��Gts���Ӻ|U[��nl�M�Ӵ��
+���/8*�;,��a���8�s�k�
��~!�!�@)�
�֧�&Ñs<-�s�Z�•�2�Eb��T�b~A��A�}D�ʺ0��S��{��{G�a�
oqB͝$��F8���z��*��d���
����:ٟЕLza:J��ea����
���q��
��T�*�1�"}�!�@��k���˳�߬�B/�lEy�~�eK���\�5��$���O�=h���Z����͓ނ9
����`�_��������ݎ�[�9�Ĥ���u2B�\s��
�u5=��@�Ό��p@
�z	t
�;�*+��.��Z�����a]�1��l�R�S���o�����
+�Кr��H�Y�K��g�<�`��7/�|�+4�A���*�K֨8���1��%�
�-1w������?Ɩ����)�r���~�K0�;h���+f��g:"&�6)�r����p�c��y�B��6 b����#�&l�:w����>fިÕyL/�\Z������j�@  Ν(�W�ڢu�����d>�P"Y��d'$�$�ʗ��
�V�J+W�>pG��[��^���Gڻ����2|M
5��k�ci{�
�ZJb��ILF<�fB>�P��C��R7<]'�w����K����QXb����*�
+��$f»��
~	^�̈́:�)�]��}�p��A(��+�R���X� zE����;b1t�!
���9�ݠ�B���j�`�
d�>�
��!�L7g���h
%<d:@dA��C�
�<�@��߈���@��.� ���
��Z�j���@pC䂻Qab!��
��M�b�q�q��z�b��ە�3;����@�A��K�$�˰E�
�N����T��
ۢ�H=j�o�n_a|�1��r(���'�m�r��Q˰�lp;�Ա�{�qe�� ������
=�^ՐYc�I$�ۖ(o%�
��� \�-�
Kч�޻����Α�v��K�W0d��ngXg��IF�~������X��QH��l8'Kr������gJ����
+*Xc�Z3}�E�ٓD�sj�d9F�K�䛉J� �
�I1{�V!xnK�-e>����7n�ׅ���
�_Qg1�R2Ǽĸ:@�n�\�K�X������)�'�WI�C0hݤ�!XL}����
4��l5� Vh2
��,��?��bLb#(sÀy�tk]:ibP�_"��2S&�F��
 ߆*:�/~���5�l�6���fݻ�	���Ӡ��v�<N�E���"A�M�B���I܆=��ӰD��!5��o�G�
]��Ml[U��Z~$g"��H�U�(�>�(l1���u��;8��q������i�7m�L[�@��Wxl�<R�s\�]1�^�>�g����	�Y<�#nMD��yY�ZO�E�X�;/C<_��IfG��u��R���O��M�++c�7�S��
+�4ƊaZ���ԃ�
�����u���	Mߊ]�>]o����/�m^&=�Nh̕.�g*>d_�$��
+]�k����oj-���]��w�z��`��g`�@�XR������
�SZ^6�u�V���^��o�����g��~X��Q��	�濮��a%{s
T���p4{���HLydW�)YU�&R?� �FD�/�'�g�H�7yO��G

+�S0᪄�g
:�po��)�-.XF:�
�e�� �*d�i��G{.㯙nwn.�t���Y���<�"��`����7�d�
�sSC���!�x$��g��:S����X 9
��Y������%�r_��']4K��
��.
q c�Yv�.㏢�
M
r��m������*ADbW냊��M1�Dq�by
��9���m��T'b�u�q�7�O�r�����
��}�y�XK�8���`����微�.;������~1K�}w���ҭ���rB;�ҏ�ޒ
&�6	�Rr���*?j���䆑lu��g�ICk���M��|���v����h�ZY�Hn8�V��z��Q3N?�?��֫zGP
������5�|No�(RG�J[�5��&Hs)qq}^�&2���n:z����ǰ�kFmP�03;7�N�s���i+Z�iӍ���	�^��z�s�7�T�m ,�
��zb�@��p����2�2{�9���6��ʄ��/�=�
�4�)�c���	x
+t&8
�3��B��-�(;�^S��e���dSy�7yG^�H@�Es��7<�A��Q|��h�[�\j���e��Z�Ҏy1|i�-��<C^ow���5���pc�
�P_���<.&n��;ˌpa��[y�y�$۫j���!�
ѫ�$E�42�˚v�?ݴ��^�wnYg?G��9c���K�+%�<qWŔ��z^}NV��]QvS{�q�8�ڷu)?
WV���1l��%�Wy���j�p���0#��>M�']�����|�k!���3h{�&��m��5&[K�i��K%�}UE���k̀��u
hT��[�*�F���k kO��Z �e�� ��e�v]
G
�ؼ;�G��L��W��[����d;o��o�
�3x����� ��Y{OEk[@��|�l��2��섐���^򒼗��F6a	�9�u�UQ[�E�m�'*u�WA���w��:^WfA�w:�R�c��$DZ9-N�7���~c
+�
+?��;�A�34VfO�
�����	5��*Dv��Ue_�Rqr�_����pM�v��]���{�қ[;��f�4�(
�c5ڑG����d�x�����E�jO����-n
+|�
�g8��
K��ٶŲ�]�{r3�J�(��?ұ���q�l��u;S7���qWA}�ǰ�����=��o
+�n��xg�|�GCT�p�T�aH���͗O�0�U`llڤ�C�lt��0�j�h�~��pڱY�_�,x��'�,�IU�jn�\�[M��
z��
���DB�b<Ô��]��T7S0C�o�}�2�%�s�F͘�MQ���
ś�!�7f�Sѕ&.!m����Fk����(+O�
���Oȏ��@
�W�1��f���G
�0J��Z����-#�=����q�b>@@
�g�IxFz�|�����޴\�E=�Y�g6�at�Һ*��SY�����5��T9vh�
��	�%2{}n���}I�90�v zRf����8kO�ʼ�
�jV�o�:*�x��H3�_	
6�WWx�4�\;�5ju���K:��:i�7�rʶ��Y
�Ad��~X����:J1<����;��e��
+(�;�M�s���rlڪ�U[y5�����vw�
(k
+-��Ol��
H���WeG㐣�݆L9s����ŠFp6���i&x���Иp0�C2�}�Txm�C���H#�ѽZy�ڇ�m{��+�E�Aa
����W��d
�V�Sy%�ې���8b�ש"SLL����1�4�$B s��&��B��j��&�d@��Y��?O��+82}����-D^�����ݒD��(��P��R��{���Ѭ.� �s��!�$��4��P���ڣ���o
\�i�(�����#�u"��D��8�
+� �:�]�C������>�6����ڒ������׶�*��
����m at 1GQm
�lìOrus�g#� tk-ۤ��<���v+l�U�w
+]�@��V9�9'��3ի��	
�P�?#�0eD�a���S���#�[%�����LY����ƉU��U�_n����F��η4F�/V[��&+�;�k�+�4e[D7\�~YCm[�D�����������4M��
�n/���9�0����:/[�o��`�K����(��
+��T��o��r
M�8���FECw�LhT��l�������
�;=���L�t��^r%���|�TXN��d�R3O>�
���^�
����G�)�
y����
ۂ�2��b�+�Pg�DW�B��;T��
+�4Q�v�����{����9輵;���!f��6~/ė|@�r~��E�M�$,<��`�2���+��oM�ҿ$ȵk�뤆���)<$�\nnu|�LX ������+z-]�:�r"���Xꗺ.KW�;���–YFC�	�:�Aǔ+�I�U�
u���+�U>.+͋�;�SN@]���
���L U������X�Kx�6
͑8=�*�U��4^q�ݗۥ>S韒�
+�Ż
�e�L��sf���	v?���m�!���'�粈�Y��v0��z�ْ2G����wT�1��e{B��H��M�,�
�&fr(y���)�%
��P�����
Ehl�%
+$EVD����t
o��
\~6-�s��/�/���E���
2<뤪t�
���:���mb��p��V�����n(Q�7:�
�ziZ����N�l*�3��m�i��`��
��
s���nX
+�U��\�b�i0���^Kc�=�!!{pwp�y�
�K��H��&�Ș/�U�D
��
�g�#M@���
1�����&����yf_s�Ir����Ŕ\
�B�c���7�H�e�x�Xl��tbu�!��hI
+&)�� ֩�ršbp�s���;�Cu
GF�q�~~c6RbO��'l�"<͖����z
[��T���0}�5y   V�|E�W�r��ф �\�2�aAA��0	��/ɷW&a�A
+���AK]מ
�q\k�P���U�"�Jѻ�?�W���{��j#�'rG�^���$U��)~V�H�D��Tup����7��e��Ê⚊��R�"�I��^�w0�^�+m��O��X���iM��i�-T��5ȝ��'���N�]�~{e�� 
��r���5Ճ�-w��A������-��V��YF~�Ug��BO�Jt�8y�0���.{K��O�(��vlJ�	u�S��0��փy��k�^?��6W��c+�
+�C���l�]
��E�ko�%���ݼ�脦���� g}<p���?��j~�t7�Q|/y	�u�"-�Q߽����{ޥ��w
�iN1j2F��c���߀9uTE�����ڵ粎
t������
�;�HC;o�sTH#d��
����}�[aT���*Ч ހG�X�;Pp�i�t$V.��x�P
+��C�_"�>�h0�[[���tVۃw,���U���^|}�X?����4:a<X�
s��%���هU)��<�@Z�Q�/�[�6���
�.�	�
0A=��f���x�Iҗ��Q�l�3\�P�BoJ]Դ�\>[3��������?,���
ЛMOyI�Oi>�
�'�|���2��k��x��o��6��<J�c�^|5�ܲZz;*�,�1��M;]���U��� ���DQ$6*ړ��
Xz#���U��fZ,k���u���)jF��R6�:��*�hyY���p�I�~��K�SpMn�Qjm-+�y��ɽM�4q,��t0L$t�h!f��
��_�yb
q��X𖠕@�Fb��/r��hf��Z`;k��4<a�%� K�E�b}��9v_Փ�
���U���k��w�3��H��/us���k�`�Ǚ�;3��������$B4\+;�j�K�D�� Z
FF��v��
E��u�{qcʰS��TK��k�
+rS4�,F�S��Q�?���D ��"�u�%���Z�i�^,[U6Pw
���԰�
��S7ž$�
�!�E.����H
���7�^ü���
�u������m[E^����)@Y�MSP�)'b^E�q���c�?�'F����x���m����uym.͇$|��O�Kb�
��1�c���w�Wln��~B
���XfO�yDz��2�MӅ
�B�QW���ci�2�� [
�b},�1�E���w��^��k��b�)�k�,]��wH�ߦ�4�U���mϪKc`�C!��Z�ʎ�5�I�C�W�  �fQ��9�Q�|U���ά�2=��-�I�d����	2_���M��4� /ڨ��B��>oy *��Zo�9��XY��i�����fNP?��1�k�𾠣�� *���_B����u�p�ֲB[�
�
���4X����
��φ��}�����P����73�d"�d
ٮ&�<����ăT�>���x4�
Y��"��G��XF%N�g��t2��S
8.h��pq��܏��#~�
�2�Hl<hކ��
+�aG��-?�J1��p�m�����"��2���V�z�|Raw�~�l�8�
�����4����������
���E�Z�Kݸ���UG�|�B1��&T6���;w��W��ٝ]8���X��y�W���G-����%��r9���Pv��X7i�x*�L�(�u��==��ϲ�͓m
qqZe��&���߰�n�=jc�i�o��@��
��x/{Y���/�r�pՓ�-�k�b��(n��
�J;7��N]�
�	|ט
9^R��,��q��i-�j5I�~Wfǒ�;*~x���F�M��u��ò~�7�����S.0.rm���4�P�M��X��
+d����6���͵�N|b*��4u
v�v#3�֬ަq�V`i
2d%�

�5���0����7Ӝ
���jx��9��x���!K�hF�	bLb4�Ezcl��X�>�eҢ��(j
=����~�n$��
Y9P�K���C‰/�q䢘��&l���r��S�� 1��|�8��+�����ۺ���p5q   �Z����(
�QӸ�AX��!\�$$$C�srL2�$�L��%,���*OQ�u��Oł��BuUX뵊]�x��V��~�n�,��[�|�nC�
+-�bY@�X?(�e�92�"կ)f�m��6@>��_�|�Xȼ
���L
N�+VJ2�v&����ǂ��g�a:y�*=>�C�,꽅�zq����wΣa���V�bP$���Ԇ3H����*
+|�t�c^�7�C�v��f�C���UʆN�\�A�
X�)�M��Ȋ��Q�r�K{���Fۏe�"j��%��h��C�����i�24��.$�Ҳ�ɹ�D��Ӯ�?2�
���]HMt���a���PZ�+C��9�J*��_r%QN�H�4�r�{W)�	|�em}�^
�e
��ٻ
+�.�v���_.e'T�)�V4��(F��o��Ugzf��0�=�r��ƣ�[(h��GjK��Ң��y�}����%�]�ʟ%��(y쭬��0�����L
1���s�R1w^N�J�O�7�
��نy�oxõ��O���`�i0)�¿6T���@J���JL#��״��C ��[!�)��9!���w�+����@,�&T��Q�0GU5����a��
+�5\1(���<U~�� ��ڌxݷ:vR�Ȇ�qV���t��.	�d7J���<L���US����0ݠL��w�k^I�p2��Z���
���#*��͚i
�1�.�~��x�E \M;.�7�vD�5枤���B��l�4 �&ɷ����͉�Qs�r�k�d�
+�B�2i�N����ğ�'��:d�a����9�<o�=���:�O8� �Zq��]��\�(�p�/@Γ��H�+�nind`�gA�د0iJ*��eW}o���
߶�x�"omz�r��Q��u
�_p=�=n_��%�!w~~S]��Jѯ5V�Q��z�<�L/8#�
��+�������>-�9]���������s�4���1y
3���yʍ����/�	��G䇫~IĴ41��_�35g%@���.1N§�
N�̡�P��i'�7����4�
�@r�z�8�Z?�
 ��i�;�f�
+�c�E�N�O�ri@�D��
�����u{A�6.ѱ>1���_�:,� ��Jf?�/�L��C�N�N��*E]٭!�����mq�=p�)��
�ݍ�
+�c�F�M�H���?�
�b;t�%��
7�r�~�����L&�3>��ﰞ�
~6slD'9�?��6�
�T­�ϙ��^
5�;�
+k[�}����gX0^h�q$W�KJm3�qV/f�̔��&��|�}3����1���s�O[�9�"6��ε�6
�9�K���+�|d���j�8a�&�k��ɐ���=9w�U�ͩ��?�������|�
���0,����lug��z� �eU
,}*�
��e-���^u��G�S���oy��7��7��bC#Q����ş�n��[�,(
��l�^	6���! ���ʌ�>�"�:�j���<rB�a̪�� NfE��
�kI8<*�͒"�e�[�,�A��v
:ks�Cl.�\șc�+��5*�W
���&��ŀ~�\K�4�sR^�?ӕ��
x0v�>biq������2�$V1�\$���Ǖw��kGԣ����Q�� �%�[�����`�ѐ�J�
Ή	`��]���+Y�)�u�!*�5��(H��Id��a�oE�lw1��7�����hY�xЈr���M��y�A39S��cLYg�Bل*d��lQ���
���P/���Džm���l)��I�R�`i��?Ğ���A��Y訌�:��e���t��/�
�y�sn琸�M����>d�SG�&H�P���e*p
���:��v��F���ӫ�}9��|%*�C��d
�ڌ����T���m ؍��θSV��k��q�����~V�Q<
��f��
+�C�B��'��L�H
�?� 6���ǍZWz��jxA�|�+cs�h�i�#a�43���
�K�Zr?�'H:���m�2��A�Ľ
�e�Эd�c�M^��k�^�C�j#,���@D�L2�� �I~tHGǫ��J̀�e��
�	W `_q�Z�b��
+�"�p�p߄CH�� 	I&�d2�L�)x�ʪ��*j�XEtJ�J]�EZ_=@�X��Y�����#>�(�U���T��#tg��E	���U�O4E���]cD��ix`Ff����w0b(���U
+�
�Y��]sA��vj�fh�w at A,b��x#�i���u+����E���_�X��x˼U-�E�W'��_�@�� c�e2b1(��
h�^EN�
�
+�`V�[@-k��b���n�_P����e�:��60���������l�u-'\��j|D�me;��tH�GD�˪&����աD!ߪ�@��M��?B
�=�
r���Ε
t<�GH�8�Jd	��l�M��
�i�lv>Sw��o2�Y�!�;DL��ž�]��򮆁�����˶�R�����f;˷��-r�
�0�ۏ첸�R}�"��?5#��mk+3�(���(.���R���
xP{K$
���~?
uX� m��
���(U$C[K��Il9v���L�"�F���]C2q�.�OI�6�1�Q��x�	�1i��Q�Zxl��e_��)O&uZ���C�j
7$
6����} �A~��8zX�������m�b|�n�^i>�]��fQ����Bch�JDj^��
k��]�r�ou��#I���h
+8ЂTc�1)�ü��W�+�-�*�kx�u��e�I�~���PE�:���LR]
&��t-¬^�*$M�4-�b������B
����c��鎳�A9Z�u�K�Dۄ������T}��p�p;dz��x0w
+�
��7
? r���
�lJ�����U/�3B��K3h��f@��j�m1��R�זD*��p
����֓�2��O�(
Vv��
+n���d���mMAO���;�1�S`�M����
-a6��)��N�˛,��_
+�l[c�.H�і%�Ŗش+#]l��c�ٶ����$ �s�~
�&���b�~In^�Y�6-�쪸ʟ���/F�R��a`	�����Ei|�o���$Գ��h:)=�k�Zv��6���g|V'E����;�R�����^�t\"ZW��
+Y���nN'⢒���Li�K�[��!6b�
���jnf�$=�+
*�.Ӄ���
K�vI�chP�*%�z��ډ,1-�pGs���D�8D�C7x��&�X���8e�!j5kL��4�Y��
��&Xq�� �Y�LA)$�]�s�_g�^
.��[����fx���́{�s��Hq�
��	������o���݌�� K���Fa�a)1$Poגי�DO̐Ń��w�q?0
$װ����ޮxYZ�N��8$��8��
_ُ$�`�l�cZ��6��ݐ?�
ȇY�+�0�H5z�ቔkQ}Ö<i�|�>!���~QQ���2�&
P{B�cH��|��7g�z�9^sy��l������u^�A�
�;�R�ck
U�>�)����v�Q
�
8�:oV�c���s�K���6��8#7�>^nNk�_�<w�*>��m�ڹ3���"Ψ��Ţl�`����
D#����
����ޣ7W-��#���h��� 
<�L�qf6��6@��0}����ك�i���h�� ��
�ӛ��R�$�0�a�p��s���T9��˟�	sJЫ��lO�
�I�w7±A8j^Տ�ork�l��17�x�&��e���o��U��d!SQ2��b+��(k�m\5
���/ [...]
�_���߷,����c��n�$k��a�����M�=U�lM�Q���"g��Ɇ
5iЉ�5M�%7R�%
q���v�L�S�G�[]]��M����	vK�s�w��>���q|�
+�7�p�L=��#.��[��CjϨ��^w�UOl���Tv�Ce�����������]�j2��0�uuFf�ձ��ʪ�:�AƆ"E�*��S��'_
+� !��
Z�:���Qpt��4��7�rv�윽Ys��9��{�<����Fr��׃d�+G1	
F�~ /b�m1�&��& x��� ,�
^�
�LtZn��D<�t"��7�4�"���ף.9���m��-��6��Iq�5�����5.1g�)�j�����������!0��OD<%n�{?ns
����
����8�Y����F<�p	���r�wPq�D��!\ ���F���KA��^���Z�Ũ�ˍ�
�R���휃�E��Ꮵ��
l�a�������?��aZ�뵘lt�U
��t�W�z������s1��͘iea1�����M�1�g͞���v��w����
��x��e�W�m��O�V�����u�m6l�Ǧ�mav��ov�u��m�w8�������m�^wO/o�}��
��?t���c�N�
:|���s�/\
	

�u9:&�J\|B"
�D�1X

 I�dJ��Դ�k�Y����y��Bz���bs�<��D(K�2��T�*+���RWkjj봺z}CcSsKk[{���������[}��w�������>

z4����g�?
�x����7o߽�0���6m��3fB|=k���s�
�Λ�
4�|K��5~X �p���%�&�(�*�,�.�0���<��6��6�4^����
�?|�X@`P�sB�#�b�$ PX<1����A͹�O�3�l.O I�r���O�S��#?UB�P'
+�B�P��T;��}�
*~>22
+E�OL���_�~���[�������� g

,v�,�cy]
�zF��l�(��}FVύP�q㫪���J6�A�$�*�H���$���Ρ�����`v0;�
�f�×9�zL2���ٞQC|�Q�M5���x��zA�R+��Ԕ k*x��Gj�sH�%Ť^Va�ݼ����r~��Lȡ�3h��
5$؋�#����2��'$
��
+�,��F�P].����V!���fo��Dc&�2`* �_
'ǹ{#	ݰw%{2��>��aQ�*X��
SV*�5r1V/�
�\�����2���d��L9�x~d����E
�]0�
+��
�^z[�AKm���<�L!����
|���t䳁�,&p#�A�e* �aʁ�'pB�r��	}��1��zw�A���j$���
+�,��9�Kͅ|�-��7\c��L�
Sy�
r���Rꈼ_��bl؞�Ұ�U��KT�U|YB
[��3�@S� �J���Ӹ�!�C�2�)gO��|�dgس�u��
��zw��2P�W^R�d���\=M4�
+��
�z�Oh'�
��7�@�nOP��J�-�y���V;Lg�]f�Γ'�R���j�
^[(����
+y�C
�B
I at l3�o?� �q�M����zۨ{�6����T�և�*?]FW^V���|�.G�2 �T�!YHl"	Iͦ
+~���]��tˑ�ն��:6^��m5�������
+�)��U�
+�&G��͒�ҥ�U	�>IL�ŤSK�`�`�;��

m\�o����j��c{.]w�{]}A�][�U���T�5�䄚T9��"#֑�$-QJ֙
+(���R;�7������n
^���윆����a�:V�V�T����ST at e���&���
+�P�kL�l���vw���6�Է�U8{`>��5#��8-Eʦhc�5I��j�
��ɱUx�(EU��������u=X�U=���ux�}{tj�G
+�����4�a�(=���Gr��(n�Ë���qZ��T�i�����vU�肝���
F7��
:&|�ؾ����ĮȬ8CLNlG\nt{B��vx~T2?�]ъ�����?����:��B':����
����n��A���S�+���w.�"nG%���PB��RBz�^�ML�p�z�&*�T@�� �mH����h���؇��Dc���΢��&Z�T_ Wj
�5yI5���LOї��5��m
+ � �һE��/��`v0;�
�f��ˡp��;�ϙ־�A���}��U
�l��K��8��SQC#k�דtY�FU��VEr�AF̾!���b7���E�
|��{�e��
��w��Y�쓌�E��8�T�@V�4U4��<7�I�Ii�����������A(��R��@�����:
j:��8������v��ug����*t��E at EQ��
*�r �럄
B��;� !�rI�C at V@�]��_���Ӈ�Q����5��<�n��.>��U�W
�/)�a�Y�/-Ry%�F���2"�
	InK/i��"�t��Y�{�p�8d�|�Q\Đx �i'6ĩ/�U�Ui��5��gԧye�bLY��(k�e��&�\1q�(h��-����Ev;w��Λ�6 ��!5kC�(x�H��@����
m�՝�N��&ו�y
UF�e�a�f5n\+#�$�,�۾���.�w���A��ڐ&�T%_}ؗ�Y6"�s�
��9G
��&��j��
�ơ���R9a�WL����t~�-��m�
��A���Nv$�&��!	�2p��0t�{z$�?5Z 
uTj���]Ġ��`9��t�&	f,���h�؈!� %g�S$��&T<6
n�cK /�
�'z&��b�p��`F*��8b�(�@����H3x!}'�: yo8�I��P&\���P����{�C��@R�t(���ɓ�ʌ*rH1𵐗��&���d��x'�McČ��`�$f��>��m|�S�~䃱ؕ�$�x0�mq]P��e&�	i�#�eF6AWB~��8��QChi�T�ɞ <|�����]z��[u*�nz!�b�g��9�Ԓ�r3l��q
X�r3"���	>��4�SPh=m@����A�8�
{Ͼ�+\�Ǖ--�F����3a��@��4�M�6�;ҩ'�Z�
��8JԐ�pj��j�6 �
D�z�Q0�'����չ=��;Q���v��(��X����
�N#��0
-z���#��}�
��2��Ң��
���>�ƾ#�Ah��w��8Vw�5�C
�/[�r�:mU�5�f�Y���H�7H�����)N���6��S
P��X�'>�}�<��5ӽ�e�~y'NNdtO���ݗd�jM�
��Z��̓x3�Y��A��dE��CM&�-ڀjG
�o����ž�����>ْm\��-��u� �Z���T��S#%��xG�;�Ѣ�8]�0^�`#�Hƺ����b~ں�n��
��A��-9���*�V��i��TR8�
+��`'�yM>��a�AT�m#GђZVZ��˪ݐ��ETD������_l	�}�m�ϒdo�8�z�����P���c�)���Vd�jG�T
�*��:YϪ
�z*�M�� �S�qK�P�}���W7��K۫Ov*�o���m;C��z�z�q�t}�J���e��V�l��|e��ry
I�t��V2�j)�k��b腳��h
�����?��|��lIl�N^�mz�Qr}�\E���+������ݫl(�[�Xp��1ٔ�Z��[m at _Xi�䮠����
p�� v�f�y�?q�)����?GZ�3�=��@W���	=
T�����2lvsd�rڰ
�P챢�ށz��E



����
���q�5�Y�Tp
+yO�C����R�eb

&��l�[Ghm���
��b9��M�%��>]8��!p���~�{��g���k�l’�B�4�2?ȩV����n���I�����6
+�e%2G-8�o 
��Q����P6n�c���N/J/�F�Q�&=	}-9�>#,�
�+�>n���ƙ�,��Π�
��z,�
>3�'Џ�ԍ���I�����6�
M���o$G������Wd�o�s�f��ܐ�T:�jGyh��K�ڻ)k[��Le���ٓ���#�ceA>V�l�
��������o�iE�Ǫ�2p˪l�Me.{J~I�T��"��C�vn�c���5�3�}-���"Ðh�I'ِ,���kHM"D�[Yj�sUZ�CM:f��D˂�
+�)U�
+��N�a��a␽Zfk@��
	�0�,��"IBL�tr�AlĐ
�� N9�V�r�:��#�Q�1��h�a�
x!c��oD��jԀE�
����
�_�dLq�i&]8�N�L�S����NI��S��/�)W����K�lƜ5�==\�[jTv]�٨@�(��W�K�s�m!fwO��)�ii�L�ڤ���?鑓�#�tɕOL�=�?ٯ������9��,o�9̳��t���2����UA��P��@C6����-!d!��@ BB6�B�ĂQD���k���op��9��4����M��re���9�*��Ӎ������RM�d�0W�:�r�B�5*G1G�R�Bd;
�ib"P'd�h8^��`B��5yϕJ\
���L�΄*nW��2���b�߭�L�)�3t�*E&�'	�sd�r* ��i����@s��?��/=:V�h,~ߗ��;{���u15����k�}6�EnA;��xo��
bh�S$u�,N%��ɕ�8�j��
��'����q/�q�O=�`�S)����г
�,�T���ר�s���=@
o5�-z�$^˚Fk�3(�l�UA�?5(��!�4�
��v
��(_uw1�f�f:�w-�}h�X��Kvz�q��A���O�Q�� NϜ@�:&�z�$B/�
��$Gc�*�8�?���z0�;ߗ��]�/ZZ���V��#sY
]�X&q�zlK�NC���d
P<dՋ�c�1ƶ �ؽ�P� Ҹ�=��Ӷ�1��S�o�<X�8�/%��3Y<I�X�s�:�Hs�oe�vn��$�������
G���H�7�G��8`ݗ�$����1�]�\?�2^OdJ���tJ
�z}�eb����8B!���v���@�YN��݅4wBT_D Ձ}`0��Kw������ͮGf�
GU�
l�,&��3�=m�2)�
���(ʼn�'��qv�c�
�F��+c>¶�G�F������ޜ�
=��;����
�èj��!,�z�5�ϥ�+D�`���C��^����n��" [...]
A�
 (��$e��EU���
Ȁ�ӏ^9���������,�>I�oG�s
}YE�HBW����h���֯�յ�������YTw�L3�r�S1M�O�eS-��)*d`���[�������hh��%؝��j��ӣ��͓��\$|�[��X�RK���@-_��J���oЌ+כ�ŋ8V�"����]�?���/&�����������{���d_$]B?�,k�ʯ������2x�F5�x�
u�n#��
s����
+[�������o�y�D��s?����{h�ow���1,��8	�f�L?��CVA��yE%�
+K.?)-����amU����
[�5�[�ڜ���Ⱥ�Mt��M�0���o� ?�s�}*�Ϝ|-��.̩� �{JZV�u

�(�lIne�C�6�����%�F��Q������n�j̍�;\M�{��w
��5��6��4
��q at p�$��{�{�bK��XQVx�

�&�\^f��A{�O�
򒻭��m�����
.���B����0b��
���@��ħ/��d�?��4m�/�o
+��y0�
�w��A6k��l
o�z�=vV�tbd.R�
C�{,�DŽ4�� ��]@��Г

z�Ӂ4#���L�#y��,�xK|�}]Xÿ�C��
�>�A𵲇�i�6��p�D�1�|܎��,H�ψ���P�
(@c���
�ii@���Rq��2��[eaU^��FR��6J�z��!���`
{��v'���
��f��Q��m�)0}^(�6Rc�$5
(�r~P�,y�9��wM�:���(�^�։gDH�D��ϡy�l������"�0A4�t!5F�5�bl���
”#@��
+�)�ۚ�+Ou�`����;�\�
mqׂ�Z4+�+'�8���bqu2Ǭ�N� ���G��t$����
���F��7
�G�,)�������O
'�6��b��gSo��/+�Wu��������Q.ml���c`rj�($oQM
+��0��rIF?�i����#@���I�_�S�����>8�Z7g�W-[���ܫ��
J?&�[���1Ck\����B�"�mф;[��
+ ���7q��D
+�$f�Øt�;Sj͖%q�z��f�g,��;�-�^�
�Q`-}"Ҙ�G�H���v��-
�35Sl�.�J7��o�@��
��
�5�p
�Ng�mw���ٱ�ٙ�mu���*ꊸ����/#7H �NH 
	��@HB��\�$77!�P���x �E�.�o�v��[������O���8������bD>������������)Q���6A�Y�-�a�W�j�LGU-o��F<B��8�4���4��N�_ �
�T�%�w�O_�@����9{q�/��ߔ�`P�ɥX���h��{j*h�Z;��0T��J
�5R�+ ��
4x�|_O �9�g.����m�Φ��	�^p���܀bFl���Y\u\,R�ՍR���J�	��K5�d
�A䉆Hl���^js�l�x��9��:�c6:��-
�?��y{"38�\n����,9"ARU��+���J_��ʆ��Q��$��e6W����}HN��SA[�����2�:7�<v7
�=�DU��٭�٭

��ڀ�St$K���������\`˓�l�V��+ ��h���O{ ��/�y at 6�N�.
�D�OFN�eئ#��2��z�
���F�if��D_h$iK�8uyZE�A(9�peko�R� 8��� y� �g�L��Wm
��|!S�~q�`��`�l*��7��aڲ�+�QR�%_E6����̌�VY��:+B+��5-�� M����@��1�u�q���gq��;s'/9���?�lRě��a�$si�
��hIQAAt>�7k1Fj�@3����\=ۉ� <��'��#Gޙ�?�<t�cz�ЏC��C-K���4�
��v"��b$�Sj���ѭ�^��M��;�ڑ�R%�R��1Wi��
�u�%���������|�ϻ{��<��k}�
)_���=������M�V���
�6�(ƆkF�[��
+��m�
��zw�,��F���p	h9���voZ����ͯw�x��p����o��=3��b����
+�$���ʨ����!G�l�0��3Dh�v��Yv� s��)�F��h�)�-� ��܀n�WK�/o>��u��ߎ�o�
�q���xeP
 I��h1�nzY���=�W�u
M��զ��g��ԥ��'�(e]-gCGi.�];^���ɹ�>�~��o�[?) � �oO�P^�M!=�a
Ǡ����tR�l69m^�rU�4��\�	O��%�%�-,O�]T�B��*s�;�?M���w�+��Pm���v{ւC)��#H������ܥ��O��)�i����h�\L�C.�!� K��'b��1�
����HQs�.�����w��{�ϟ��/�2��
Tp�
	�c6�#s6"���b�I��)���i�+��˰��exV��z�:;�9�

��s�YAn�S�K�G?��v��O������W{����$����a �R*��
��ը��1�o���7��l����	���˯�WC^������kh��+ ���qf7�	:�B|�J�+*�u}B�2#�P�C���Ѧˋ�S%e���*���:�g�
c�Ch�܁li��)�
+�`�Fm�5�{����kï
��
��5���!>s���^���sUX�t�9UJ厓���7��YΆ�-P��7 $*g�z0W��]y�����l`\:XA>�s9�
7<�5'&c�E=ff��ӕD�dyi�x	M8ZH�<Wa�T6T�چ�h��AgEt���
L�1��
�A�Cc�#�V��Evr�}fN�t
�1I#7ܤ�	G��ۆ
+�r;���a��t��)��Ch�H�^��0����
uΆ��c�p�.]���
~x�
^Lޓ(q��Uv�����&ro�(�Je���P
��<_ׇ�{Q
+c7Rg4�tFZg�a��CC�����Q��x�!��)(��04e�)
+�T����1�2�Υ�f�8��E‘��6G	��V�����^��؃R��(�E�֘��Y�ՙ�
�>6�.
����"4F�m	Iz���9��)�d�1��
ź� 	F+)mju�@a��7�g��DfFiUcԝR��ڊ�X�x�i�>6|X�G��/@@+$���k��a�����Qbќ0��/�n�M�ҋ��]%�:c!ר�ZTxY�
��jq4�F�ּ]X��yw�?����=5a' 
��v:�u�]��㌵��u=���,�"�@n9� �$$!�+���E�@�AHGBB�p��EA.�"(�hA�
P�뷙�ӗ}�Ї��w�
+oP�E�i������ԑ9�q�ͩ�[
�q)Q<\U�h.g�Y}��WS(35Q���EJ�Yj)zS
��h/P�k�����<�^~��'���?aS�|�� ��A�
:8}F�/�R�+�����|����cha
+�
4�Y^��H���j��ZU�7

+����[C��1 ?w�<}A�w�{�_�K�yē���]P�m�p\�+�ؐ-�
T�ź
ˠ��RV�YĐ[�t� �X;�-i�(i���7[�9GP�q4z� �g�6����@���0�=4kֈ�\�c�-M�ANTij
��*�A�+7V�	�|��ZQ�4�f��m�l��d/ �5���
�@��
+�ݽ��#�]�w̋���Usri07mN�
w�ˌ|��!W��Q�RQI���c�	fWlerU���:Gg���&{�� q?
+�n.���
�����|f�0�rg$u͚B���8�6���9�A�$�Vˊ:�bVoi
�L�,EU���J�@!Og)������@�v4�>4�=A�[�+�g�� $fy4"nv,9r1��gJc�:�5J-AY�L��
+:J匞Y��*��ϗȭy�5�Zg!W�����6��
���@����@6,
�G����D�OMBӆF`�+��٘^-��+*u�j���/i�u�U
cnC�9K)��7h�����s�z����� �5�]��N�������ٰ;��T d~><lt&a
K��]��VTUu_���;�����#�;st��x���m����-&ls{^i��
� 
+g�9yN�nZ�Ϯ^sw�s�9�
qq.�5
��4�̨��&��J���l��d��2zY
���.d����ؓj0t���=��#ۀ��{�:y�
?����ڈ���-w����~��B�=wB���(��z�?�1G�E����AR#�R�ƙ���6T�P�f�kG5��^C����� s��
��#?�
9z��	��%g������^���t!�̛�a2�Rx�c����,i�p�?T��
Л�VN
��W#�E��~���j7 s���Z��o��_;�wf�����	���.��U��/����`
+c�(�� N`+�G�D�+���:�%Z}�E�2u��>T�J
�4&
*��o��w��}��
��u��?���z�X�c���Α�ggS�+~��P2u.���3�M��V�&����*��1Z,�_e����%I#\i�P�pYRg/Pph������m�s�
Y��}��~'�kG��s4���T�j`�ޅ��X~>�3�e�n؈��2�4�"y��
���'�����ʸq~t�Zh/���5�����k���o�f�صO�a��8�s߸F�_�$����@3q˰<�R	�����d%��'���nQ�q����4f�M+���Ҩ|������׆�n��|�q���j��
p�Ch��#�/ⳟ_�c�bQ�G0l�
+�%=+�>>'n9;7�^^^�=1�.5?j���D'_X,�D,�Q�n�����?��t��/����J���\p�
��&��w!��ב���0؋���g�T�StZ�
*j���|��
�	D„=�bC�B
�3�WYx{�o��t}�5�[�,�w������$	���4LB�A#�oaQQ���\x�����ą�ʈ}IH��N��K
�ȇ�ߠ��
��K��e���'�s�}*_}�;v����$p��;���$p�\,��1~ �?$�� �
+
+�� �
��!�
+9�~��|?��}�S����R�
��wp����^@
��Y�H{��VD�rqQ�"�Ş'Vpo�TU�$�V�d�DױJ�tz�t
+�*�B��M"{�i��1�����a�=~o����ض�R[�� ��Q!��q/��e��UV.y�VH[(`��I����ʪY���L<�SJ�0Mu��V���~٫�@(���C��
[����=着0�#�?��/0�S.2s�C -3)��bg����$�395���t2C!��6+�ӵ�khC�5�Iu�?F�;��; ���?�z��{w��]-�SUԧU� ""{*(CF�
+DF$L�@	�;���/�d:�!��Z
u]�{��w����T
�*�� ʇ��F� �� �9xɉ��Y��9E���G4v����؊�?�Ƹ�@��ֱ���B��J�|��/7)�˜����b@Ջ<��*���@�
�;��€ ��f��e>� 1K�Wi��E2�c���9��rg0]����D��g
�Q])����ܚd��]ѯ�W�iMU}:o ��@�
:�v N�?ćѱ�@���F�q�?��.�[cT�(��y�1�o�M70œh~�8J�
��h.#l�QD���ҭ�W��F�[�����3j;�E���#@�� ��O���<��~����.;��YK��h�k&�qt�d=��r�T}�J����+z�PU��X}Ψ�9gT��z�<����
�#��8:���<1��)y/�%O$y����evU�m:�>Cn�^!R$��,�@�P��18Q�r�
�.���e�F��Һs&o|<�#�A��D
�1�@q4�7剜_���NJ��5yvAT�<��P�hx�0�,��w*
�\��^j4�5]�ͪD;��:�U�qZ�W �s��~���,�0PD� u������gڴ‡�lIJ�}����8Ma��)�BU��,��QdRb�n��&�8����mpZ9�.�7>
8a�@���*2
+hc�^�3~1��3�J�E�i�颸����r!:Aj$�U��^N��Mr� ��s!�����&����xt�~8���ۀ��>�4�@s�W�Ѵ�m)9�PV�-kQŸ��iP��8��
S�Y��FR��4���c�4Kl]
�I�C4<Q	��z�á�s�
��!{�2� Ѕ��f�NxfKH~�Jμ��Οu�F^4��܊����p�rf�J@�г:���6��BRBd����
+Am-[[��ꍏ��m@��Ch�[kd�+>�~r��`v��S�!��C����k��B�D��+Y]d=��a&���JD��
�;Dlw؛��7 c�_ �so����`
+	y툈z���6��tk4
6֗��7Z
��*�-��Kآ&%�ת#q�fB׆cʡ�
�2 G��MT���C?�����.�X��
[��Z�H�����5:�W�t6譥d����U�E��FIҬŋ(��ZǗ�kxZ����,����z0=�� >�=P
���~�
���?�Y�9=1��y~4����t��V$�a��i��x%A��!j�Ls�LdE�Զr��V!tZQ<����s`� i����	,{߸�?�x���Q��#/N�e��`%���z�yx+�U��nG��z)�xVY�'i��NC�V`�k��"��|Fy�T&�`y������'_ ��z>����#�n/F�\L���z�2���Cs/)��Tb%Ӌ�\8y��U	��B��+��|Ȫ/����:� �� ��{7Ӟ޸��h�o��;A[����,��8N����(��V�'O7������*�
�����x�Uzj�ޝ;�Wd�(aCV%l`P��Pyp<����}�捑
�^��g�Օ���B�
kQG5w�a
g����7�p�kŭ�Y�l���hd����˿L�^b��/IİK�(�� [...]

ۿy���7�S[��Z�����
h=(L�0��~l.}-����Z�Y�n@�."��@����P
+g�SDF�d{W���5��d�˸�:n�8� �
��� ��\���o3K>^��=ݻ_�%�%4��$&��8�� ��j%��|	���A
+oմ��Ķ�^Ƿî�:�f�Ԍ&��
��6-�L��zH|�

���b�?����ӑu����[}U��
+^��^��_��b6��Q�Y������U8��2��Tݘ��i�-4�3�4�o��'�iͩ��ZRn
+Z�o�H� �͟�s��ӹ��?}����W>ߪ�m���7�
+�b��#�1��e����n��
��?�#s
"*a�Q��{u5�k
�i�xt�JK}�
+��L�
��jH���
+0}�����0:����[gAM v
��t�v�3�t�љvZuծ]��u�C�;r�CDD ��@	!`BBHHB�
r�;��
\B���ZP�X��nŋu��
���؇}��f~/������76ذQ
����@Bbh�\�
�Y��u��un^�R!��
lQ�wL�s6���H-M{��#��R�p�R�ʒKʓ���7k׌M�rM��'����?��g�İk�S!"�	q8@&� 
���x�w���3�Ks�ޖG�!禼�:�����􊑟��� �%��� �X~H�<�齾v�m�Wka��İu�~A���D�
+(Dh>�F����,�A�C~�I)��o|J"��& ����x��ŭԤǮ03b��gF��}P����M}�3-�z���[6|�Ǔ�oK�@C��' �룐��A��
���	P� tD
`#c��{xʢ��
�H��� jl80bÀ�!s�'�<�jc�/q/Ӄ@�

�|�
+�8�-�
��QMxFeU>��i�HR�|��� ���/1����{��.�K<[�'�-<+�A�IgPW�7
�K���
�g�����
+��� N
���H]iD����/X�"�IY����E���M�
o��(���
+g�]�Yt�d��_6]8��|�pR~
=)��L�}�U�z�����{@�
yf4HsRA�:�VPR���X[CY�q��Du*ܹr��.� ��Y%3X�lsZ~=��*UN^i��\U^,��t{�gP�5�y
��- A�Er (ӣA�����eQq�����>IY`��<<)`?����5�Y�^2]b����+�0g�n�Ϫn]T_�\V�c/�=�˚�%>����x[@���A����#I��=�,-B-	��g
��Vm�<�Ǿ_%�߭P�f�ZewJ-�۸�?�{5��#��	�%��Sr�y���UC�� ��
��ݠ>���Ф'��X��ʂ��Rl�Fy�C���r�sT��I<MlQ��[T�p��o���|s^7�׍���
�/��.�v���?��A��bw�&� 4'��� �Y��4�y��h�s	��1�����b���U
+�I��I0k&K;tWp}��Q�h�� ����켡����E�
p��� �
���
���0�'#@����%'��U�������<F�t]�]"�JQ��I���e�V���Ɵ5
�L����:�cmvҘ�R�U�o=HB?M�h�> ��0%ŭ�Ґ���Ǟ���݌!�W���i��
��K�F�M�vW�Z��fC?�������]>jq�F-V��Ty�l���?d^�6b�#�Sl0�b�Y��K���O̹�4�KftD�uE5s����px�!�D�GS�vWL��v��|�j'�mm�
���c�U�Z�գ_��E�&Ѕmc�~0��
�֑��ܙ���y<wΆ��4*&ԔZ���?ȯ���
5�L��A׵YNZ���Sv}ՐCW=b�PG�*�Ǧ�y����
��M������5*`��#��Tr�+'{�
]x�\Z1���
RR�=b�������zScnamZ�ˡ��;�t�S^�v�#6)��U�kPo��࿂9�KpD�����+1v�'=�~��o�P�K6
�m 2�4��Ny��&�j�<����dn����L�C��q���N!��hd�ؽ�|<���5�mám`	��p�官��z"
���
�AN�)@������2FW
�gW�eF[�5��YҠ�5r�N
����
{s;��n;�~��U�����
� Ơ���:��9
�8p8tޝ
55��:ї_���{m������L�5�X���I�f��;Kc��%�t�6�u1�N�mg�F||�A�54n S�_���B����{<�|p!-�'+�������E��K�V+���P-U�j�����$n���l52��*mwVK\'%n'M4b�
Gl��� :�t���Vh��ÙC{�3�����݉���${�����/$8�p4�����R$b]ՠg�0u�&�Vi��[�*����s�TnG�|�N�yl�Z5H�Z�~��f�<�m�?p�3Oخ�W;oO&��g$
���*������nB���,������k���8N9E�i�՞��VO�:�c��w�+��MX	$���
aEО ��� *EY�dHeJ q ���.�{�1�����������wRX%*�U��X��ʄ�3��W���7j5W3K�]L8�(L6@�շPv�j�{��
5�m;n2���I�XKg(���Q��{8���$NQ#S~-I!����-P%_��e^*(�֔T�j���5
U�ږJr��Jj�n��m(���v�O��n�ص��Ю�
��QW�GC�6�{�}�:#�/�a���Dzj� �vB��&�ɸ�R�1�
��<���
s��
�x�
{�a9��n��m(1��̷C����;vNw�o
=��c�e߽1_�ơ ��di7���NH��Q��
Ƌ��化�|r����+F�U�hueI�����\y�Qi�Ggt�mù�[���6�����_M�y>��W���k�:nv}�þv
�sv$4��y4A֏�K磻��2��n������uJ�����UaDG�2��2��2�qwQ؃���R�pa�WPg�����M/�
�uL�nm�X�i�����vu:3��_0
%yN䍡I/�ɴQ:�8��nj�	��%b�P�,|�Tv�@�<x�֍���6yP�NPl�jL���d�a�s�������
&ۯ-Z�^��.�wv+����F�4�DM
�2�gfhɘ����	
7�(-bL�}Q(U��F�E�#��#׵���v@���W6��{��ꅿol�`btq�|ɒ� [...]
+�R�M�L�p�'ʸ~�<�x�NPm������
z�c�\�c����]�Ofy��lş]]��H���G$�;����zO'D�M�
{�BYL�������y
�\Q��F��є�{�V%�ܰI��e���'���_eP�[OÏ�s��,
�r��1

F� �
�\!��}�!C���
+�+&�w�o��F|���,ea��rq^���T�wg��t�\�w��@�~`�`��S��6��%�#�䀣�mI�눁`�(@z��;��@��F }�
�
�`O�x|�
u�,
s��s��
wY9���k��:�蕏����9�"0�.��2�� \-P�s$mC �> �������^@q���;$����8
ΐ��BOG�hO����t��P_��__����r��:!͆�i`�=l���i_(x� ��1����
r�a 
q��#��$������� ��
��$v�@���m��dx��8�$� F{���8�
+;��("���a��)^ST���S��

��7����
+Ә>��ɟA�dL�

�b�c�!�3쨠�bU�o����m`kR���S2i����@�� 1 �ȏ�l�r���>>��^��@=͚#�K�+���ڴW�+�lc�4�`}_8�������1C���Q~u��6�hx�F �0�l?
�	�y�;H� �!?��)|�$Y�"3?i�V����徊�H�!�fL��S��I̝�It�x�#
��{���v�MH��!��!��M@�0���c��r�?H�+��e.���%f�N�M�c�H����͐/dLk�����	�
�V-
�<����I��ϥ
�A����������=�j�2

!���}��A�P�t�<�d�F�d20��)䷩B��$9K�Tr_�K�Ӕr�dlM��N2��Y�ے�۝=���$d��>��I�9wȫ�_G� �7��^P�
�6P����%��Ȩ�ea�-��\`�X���L��)jY��F��X����|
ך3����"�紒�jro�/���&�ꀣm�j�v;!��Nz�A1������
+1�+�d�)��V�a�s��YV.o*�X0N?'�Tg����<'�T�Zs�{�ZI=yw)=�?S�4О\�������
�	���p�� �|��*�N�{���?(�ы
+Q#e�MeX�q�i��Jѳ�R�SF���z9���X�FR����w�O�M�n�Uzw�Oq��KqOV<mC��!�v9���~(�>g�
�Kx}E5��q
�cu��(�:�ʢ2�� R��^��P)R @JH��C�"BE0	A\��
���g��nև}����9���9? 
�^��!H�yY����z at -��F*#��1K���cH9}�b_�R�h2/s/g���f���
97y��7�
H���P������a ��� ���0����WRX�3a�A
*�v
=A)%�(����j*5ybf?���7��
�+�@\��MH�@�2�	��
 ��P��7��]���AP�e���B<�*#����
��q�
+r��|�h%�x�\N�/b�z�|VV�iè�-��
+5(n@��
+�^$����k�
+��$���ub��
+wk�<s�S�߉�MAn��#��6��kH���f�Ǹ��H�TA�t�VU�հ�	b��@)�Ŷ�e�K	��D����
�b.n\���
���Pbj����u��n@�i��f�?Z�_��x�
�w�))J_��zU�B]��;�Ŕ��F2�]K�D�HHh���R~DVM�I�D��Iԋ��q�9���@>��
�d�߁z�����f���������0��]1>���F��)�\d7KheR��U�r:[D��x%2Q5I%eu��aYI+��t�J�^�%�(G- ��i��l	\~ N
�S�y�U�����0��.Fy��a��M𔋵d�CPq	d��&��؜�
�L,�Q��d��J��)��B�J)d��B֋�$SC�
�w�N���yߧ6�Ʈ�6/���>

+q����J�hMI�l��m���"
Y�+�q���
&�WQ%�+�ŕm��������
+��T�����bs@�����
����@�ӞE��o�ܭ��
�-�~b0�������䤶�
�2'��rą�
>�U�epK�y�B�B�c^��3��X�VV��IqUz1�
>7����� �O;A������
t����������
�z��B;��~ICț���F-��LZ�,�8G��K�(^�4��#��J�
�]�c�z�9���@�Y���A�����}�O�_\;��������n�z�G�PLh�%���%l�Ʋ.�I�*\Y��������(ؼ
�X�%m�K�$i�k�
�^�-!��Bs@�i��
+�?�l�u���������?o��v����9�ц�w�D���%H�S2�{31�����|
+����n)c!��5�*!/�Q)Hj�&���I
A�� ��
|s ��Psp
�3�F��>�M/G�l|t�ĺκ�>�m�w3ȭU��
�
N��ӑ��98�żbt�,��B�w2�I
�j����Vs�:�L&9�Z&9�&� ����^
M��a��ݕ���ɤ���v�O�
��e�q'�Ey+�_h��bh�'�G���D
zCȺB(�k���AzE� �*f��5�Ό
�0"4ӌ��)ft��
Pnj�
��
X��o��]+o?سB�쨅手e��36M�$�Po��(u
+v�0�������2`�R��y=�0^G/�����z*T�N
�k��㷩a#3���
+s �r%�ۿ
+��V���e���
˴���
�?��s�i���1�ߓ��A�ԇa��q���I�w3�S��Y*v��5�(������Y51讆to�4��0x�Q�9���r�l�|��Wӆu�s��^�Y�~m�����Kw�|NQ^���#B��q��s���ғ�i1s�̈����9Zn�
0/G�Ϸ`��{�|�������{�c�n[:6-���2vk-��oV��Z�m-�F�C
��q�����4F�c����qƴ�(c
j�&��Rߕ��}�L�{#��}�����9����,��W�ϼ
3
�, S��!��VC�fi�}ؼ��þM�G��N�K?z8��O�.{—��`�bc?���[BD/b�>b��S�P���o�9����3)�{��J<��#��}�Yw:W at F4� �WAZ�Y� ۾��[h�Ϊ8, �v��
+] �#�xA�7���̀� ��}@a� �zZ�`C�?	�O-�"ܖ#�>6�5ڷ�;��2�"{��+�vM%��\
�-��yp�I^vq����2_gQM�g �9�=ǥ=Gg��>�(*(�Ȏ��;�H�����d%|	�
��,심���@EE�R�VOU����0��l*���w�o�{��_����;�C��i zC�g н����|_H���)O��� m�;�ݠ0�ʃ]�ʬ��_Y4���(��"6����5p`��63�q'	ܭ��c
��~�3��!�> G� ��P
��~�؎
�wr��+ ..��:���r�N@���uᎅE�c

��*�lظ
+����z
�H�MQ��
x��������zAԾ����DkW p���N�8t8�
@`s
$��@fk�a;P��Y�l�����n	"�
�b
H�Q�ƺ���<v�R# 9����;����PN�@<G{w>�
����oc.᮳c�ً��9
��ܹ�1�1���������?�`
v뀍5�}w ��G!�Bj�/�Y���D�}�鈿S
+�+�����5�wq�����������Y���.���棇x�c�y/q��1�4o(v�7��kH�x�� ��A�An8�x�|A�

+<A$���5��y�Ki����F�b\
g���]�����n���y���yʟ�M�	S�ḗ���i�9��X��d^�
��g�A��F
/��S��B3Q�SJ���*�bBg�x�7ۖ��)�����

+_ឋ&���Q�KQO”�
`}��v�A�l	��!��Oہ*�2�| �v$�S	�ؙ��d}һ�"�Rb%{�Tϛ��ȟ�k��������%S�1�(��q���7a2����
`c
,�A��
(=�����
=�H'P�AI#DB§�
��6i�^�\��s��u�����Yb��M��ׄ^�
aT��8.}��"��4��!O�nQ�e]f|i`Yi'��l�m�����`
w=��	A���Dx��"���S�޲L�7�R�+j�p��$y��t2�3m�x#>����e=�1��ı�.��$�{5p���נq�
+&+����0ȋ9	���55l	e��Ԅ��J�tJ{�U�K�?Mj�>��"��k�>��G�>EO�sE7�ڙ��+��2�<�b
)�׃��א��
�{�A���1(�r���hH<=�fDϠ��H:�X�
N��KS2jd�К2�SB�Q��w)������봑�6�HV+c$��i
���:����F�-P����,��SY��r	�g��2m�G�k�q#(B�C�8�z���B�]NEz7�
��ܒ�I���N����/3����au#kX]�y�2x�V���:ȶ�yΛ��k������?T�9���>�k1`�0)쉑Kx��P{
+�]D#��؄t
+J2:xՙ�&�V������"�_�����8C�j�7�1R���u�Ӳ
+�6�Y�
P��sM��ҹ��>���j���Y����,BO��z;[��Rd�:��MR�h�g7��5��V]=����{__�З�s���b���
�c
�kA��EN�Bv?k��|��?0�j7��8�H89PE
+�-a�o�Poꤜ�Y���B#k��
�����5�*a��\p�P&�k,�
+E�|�>O<�3�Kb��XC�㟡�m+�y�~�oߛ�`������b<
�&������Uȥ\5�9��颦�lY�€VɋTg�*uũ�
�6c���dJ�3��F�t@��6�cv����`���^GK�q��
;��}�^]
+��h;c;����H
�N�]/eS��
�
��V��Uf��Re�� ��$�7�e�MZYW�F�0W-�3����|@o�
l�1a
؜�u����m��%�]���V�;B=��v�B\pW-%�����\�g��KE�R�S�y*�ʐU��(������E�_0}&�7���9 ���@�͟�
+�S��߮\t�n��c��u��O:�>h�p�{+!�Z#9�RM2���Ǫ*
K��H�)��T*m�N��6���M2յ�4��\D�gB������9_2����?B��
p����%�M�u�m���w��������u��L���@#��p���BA^	��S�T���:��:��8���iQ�i�m��lY"��Y
�Y��9�}�^�Pd9(R�6�� �D�)L��I3�	%�8���)��������������|�'r2$E9)y���W
�ro
���
?(}S�ӑ���)�
�֩ CO���ǥ]����%c7M�5Y,�i�Y��!i��F�y�-_RM-ϻ�R�?{9,��Rl��|RRF�$5�t����YqE�������7
�
)�ɏ<ޑ��)�
�
Y4P��SF��5;��/
x�W�����g-���^f7�2�����.Ԋ��U!AyW��2*R/}8�Bfz��c�%9�gʥAgj�ĥ:�NwJC��rg�EC�zu��6W���zs����ms��w��~a��������
�5��e�
J�mN�� q��ȈԪ���k�Rb�
��WH���:&*���_V��/���+�w���_rDg�f�IkU�����[4Pe�1vGO}�MO���@�ٛ�K�_�o���mϕ���Y�'�	�Yw�������F��HN�M?x=G�_s���b��:�Uݔɬy�ɮ|�ɭ�
�RA�b/+�զ�tU�|�J���
+�W�mR}�m��N����W���)6'�����|�
�
��c�DŽ�6%ň��w����3�\Heܩ��%�w_J�{����1��
GV(�d�2*uT�n�V�y��xիE���5��.���vmy����N���5���ҏ��.b�<
�>����o�DrZ�c}[���-��U����$r��D���$j���� {�.�TB�2����/^�#
.SjПS3�gi�{ݒ>'��
O��
��q�b����_B�]�\~g��ݑ&ft�{w�
�t\
�ꨎ��l�t�z��9���)z68�D	W�o��Z�?u�#ꇗ�T
,��i���C�zҏNF�<,�i�QL�����?Л����O`��S���,�W��}��u��e��y�UL��+v��S��;3��$~�S'��� ��j���#*eߩ]�o^T,7Y�+��O�;'�=�#e4�@ӑ/�rdbO�,�B�
�&��xȏ����Y����h����u��X#w��v�ݗ�
+C3깢L<��F�{�F�x�A\�T:�����۴�����|��O'�w7�S�x�
[�ׁ>!r�L�:{NF��N&��&%�����S���T��˴}P<4�Mt���
+/f�V��wW��kS%*�4�ҩ��ǡ;�
�Ra�:6�p`��F~ �0�cF����n�uF��#��#��G
�!��
+E$K�s�@��9�]��0�������D�
�T���e��8�v,����`X�`�

�������N70�I��> ��~�� r�>ę["��
�fȱ2E�>��ރ�w��f6uw����	��� r�3W)
˕��
��
�0��b�
+�WS���
$x�9�[�Lkp�XB��A������{��c7$;��C#��@��!��M�O��/	�X/A�b��Ah)c�� �5��2�
+�E�0�"�Z�
+l��<W���z/kL�^��u��!Xw"u
�~R6lE���8�� z�o�*XF��[h"�n9"\tEق�.�- ��0�	�#n��y�YL�<
>
x����j=���ir��$�5w«�����
�/�U�
��r�c3���\���嬃h�D1w!���av%8���?)�b|������J��ؠ�s���~S�6�$�
o��=��O�Q��3M�����������Ad��pm�:���f�2�ɷ@H�
�q$�K��ˡ�S�
�YeL�T���~S�z���7I}��t	��_(Â�h#�t���!����	��Nu�M5e��x�uH�،x�1b��Cp
	�= Ȣ�{�v)�K�i�5�)�Zޤw=��@0A}����N�7�PF�,
���`Ȅݾr��<`&��O�l��X+m$9�C���iF�g�#Zd���= ̠�W� ��5���o��*o�Q+�����~(�F{.���0F�0L�
��w$�
sD��%
lg�gEw�:�v/@��2
ڿ�.���b�����ϰ��=��l.R��-�:�{R�U��p#V�$BB��	Y$9Y�$�0B�aod�����(PW+^!,E�^������y�>���9/��y��w��}�q�z
P�!��q��O���(
�CT�=��gd
���W	o#�oŸ_F� M"�#Q/I�ѯȷP�(7b��5. ��
0w~��B~`9P�XT?�9�; �
 <�q����
+��'j��p1�Ƙ0o�E�ר*���F�
��<��� ~�L!f(#Q�Q�P/i�1s�k�9���9�= 
n�mq����b��5�
_
4!ۀ��?P���(�}�c�y�J
MKB�$��g�s�f����2�dL
e
�N�E��F������c~c�Dϲ�1���
vK�} 76���'P�^4����c�A�-�B��ǔ�}�7bj�
�6Ö#����qr&�)�D
�Q
a���c����n� �.{ =����p��3�V�snC�sn
�>@X��\���V���?,� ���!tǻ4���̡Y%�Դ�jH�#
u�z:~��C�C��o��X}�:No\{�5�M�U�����?ͯ�O�+���r�3��n��w���f�B`��
����9����H�Y}L��p���u��D�
(0�9Z�MF�5��M.�t+y�&A
���	?,�'L�����2򤨈2%�����
`�u�M
����%�;��������sy�~���QC|�
��
%�'�bzjb7���2����zj���R�XM�I\I�-)'�K��b
mB\@�ḨO�H�8�W����w~r���C��s��k��
3�s�63��Q6���4r��6�[!¶K�&��~�������˙��F����"�D�]�?�L
�4�9.5��%Y�	�=7p��H��`�1��],��
Y1W|r�T��MO��w��eC�/0m�|L�"�H��
+Q��o\J��h�K�ٍ�
�U��}_����6HϵIӹ�{ n�����
� 
�O�
�O�?|�{��e/ʏ��U�{P
��u�''�L��٠K�T���2��^�fq� Ohg�K�
^�\��R����Q��?&�
+lLj��wx�Ѭw����݂�{��"��YMв֞\;T
�w�}�˄
nʦD֤�c�tB�5YN7)S�92� C�'N�E�E��C�,P�GI����1YR�
�P��J�[�r������Y��¹�}�'}�K��5U�v�� �Y��/�Ηg1c��|�I'�S�
CR���(N�Yd*�R!�Z�2�_ɞ*!hTAc2����p�x�3H]��}=@�����]�_��Y0���^���}�gwt�#
cOU�	E�ttAV����J�N��S��r�Y&U�+U�J��J�����E�1�Ha���U�@�5����i������
�kwxN���|ҹ�k�5��zC���������'K����Ԙ�<^�-�j3��$��/K5�u&��-Qp5
J�暒�
Qr4�rn�,Am�����@7d���K[�>Tluٰ�}�s��ë�
o�txՕ�`ߦ��*�P'�����B2�p��5	(�\��<af�(��+e��t}����VR
��Q9#uL��� { 
>�R'�
�G�&�w5\gZ׻�^��<|}���W�w��V�
Pr9꘩{.���+a�%��R��!(Pq9���<���c��952|N�<>�g�83mR�a�.���	$�r��t���
>�SWV:�rk���>��W�X��}rKEG�
K
2�؀9�ZG@$U�b�\��TDc+شB-�h��.Y�K�}�6(E[�%XӸ$.wBl���y;�
+�OU+��ڼ
G��
��r꽳ݳ��Қ�7����y(�

�n���)(A=Ǯ��52:�Z��Vf$�+̂�J��]���#���EO�P�)�=@��/q֯
��/qx���po�ӡ��r�Ο}=��K��+��3�F��NȺ��	:�VMi���	ӒLC5���vDS7����< ��]~�QmP.rF/P���m��`��C߽yݏ�:6��Ž�ў%��GVg
�� �
uDЏ
f��B)7��^^L�u)6�Z2>����u�䝆�c	Ъh](VED$
+�*���d��/�FI�
+�
��Œb��#ngT
-.uGܷ��0�n�
+�B��� �39��+r��?����%�R�C]9�˻R���z��U.y�;�w�;�l�`�W��q��y��-g��?c�S�_�
i���y����=*�|�	BKZ��JO6>�b��)MS�X�T*�4V��Uj^cu:��Zvc���tW�n��`>�ӳ~�˴[��9N;W/9��'��%j:f8�����#�m�ϲ�L�����viTv�:^ۖ��֚ǔ�.�[W���d�1�u���V#e�����ߴj�����%?
P�b�v$�k
���4����mv!�&��2yҶ��]7tG�۝8������
��/�t)�]�8IWN���0�׵���^�bvWrR��s�L�y��c��?��=����*��˷��	��/����m��
���$������K�Q���	���T��L��
�e��P�`F80+�c�_ĴŦXJ�U$&
U%�
�J�>�=r25j�"#�C##��K�n�D]�=q�=��ɑ���gD�Gw��>ѝW!p|!�ݲ7=�^Jp|��R��q�^��>(9!�Q����(
����H����a�Y��1!��;����BG.��;Q�ȞX?2�n
����)~c3:Q��/�H�& Ã
r"�d(|���!�/1��B������?���T��`���G�MG�	b�
��� ֶ�j��+��}<
�Aw�#`�
'p3���nI`�ǃ�Ѵ(ȦG@=#
:�d�
�R� ����y��=[���9��}�Ʀ����߷��� V��|���a��S
��t� �D�}
���Hp
G��P�'����'�C>i>ԓ}��<9S|P�6%_z����=P5uv�1�� ġ�P/r�.�
�ܙ�I�H�@Z^(�%Q�|
��D�J�/�&8�X`�a����:�$�I���!����a�
��x��a��;�{K����!�Ȉr�a��93aӡ�@�
+eq��q�u1�S��� y�n-��\�H�n��l��f����裆X�T?g�o"����a��H��i�9C�
+c�rY3a�aH
@FVҖEC�m<$�� �1�n&x� k��&�i�}�V3�
��#�~� {P�i��
	کaa5,
�>.�A�
C�+�Ĺ!��<��2 ��0�DC�:
���oe at X�u�
�Q
�S|p�S�\��(��n���D�{�;rP�o��,�'�!��6 at f� �A�
c�8�L�ש
(�� _��6
��h��L�j]
+䛙��āh���'��#�N�wY<L�[ȧ�򍤏염�̒v����"k[�6��A>���3��a��)X�<��
,��a�&Fc42��Q��)mkD��
��,�B��g��_� �ܒ��Z��T����O�.
P�&6+%��_e�- �� �/
_'�E���}�4
�p��R4��B�o��`,L�\�j�V���[x����
�~�IvX�%=!+9�x-���7+_�_)[��T-��=�YsSn�\V��/*G�5�f.
9s�Pl�8���P���Y^X#��*E�P�.r`i^|onI�)k-筮����E
��җ���vE���l�S�e�c�M�셦Y֓~G�>��A�^W�֯;�

����8"߇�UcP
���wG���s-�}�5�bc����)���pڳ�S�2�$�kw�[4�UՇ5������w��t��O�7T]�K���zu�ᔦ�p<��p,ctPY3dz;���/J�?G��	��ʔC��9}��~�kUa������O�^�i�[+h2VJ���n�57��^K�YEs�pI}%낺)�����3�=��=ƣ�
c��'���ݨ�6��^�(������aS�+6�L�X�4�}���7�o�FyP�:}�o�K��Vq�.[#���B~5wsڥ�
�
{��������S���]_QM�i ��P
��XP��2*:��
+�� қR	�ɗ� ��Ih� �%t!�Q"ʂh��x�w�#I�Y
�
f��o�:^�������O������ERS�"��H���N��
+8����LA�Ȳ5���,�2��_*\7���{�|�Ž�%a?<ˏ=���?� 
�
JI
���EޢĨȥ�
�ۅo�w�:����f�0E���4�(��7�*����H��w #��jc�
\	��[����Y��X-Tyl����f�"�n�(��<��=
ŷ?�
|#�jd7+'�T��J��5�k���r
��ZC�K�&<�K�:Z%IO����7�8�+�6�9��(8�.?b�\����̺�:�M/꼷�,
�Ք]r`\�sH��3A]i�ȶ+��&vAB�,IF�"I�rj%��^N��(�P)�5TL�х4=M@[�~
�̦#�����3�+�}�
�Xlp\�J�~Z���#����ʈ꒸s�B<�+�
Ԛ�)��
S��M�J)�W�Ť2f=��P� z��g�d�1�P.SG�a�i�!p2���
o;�:��ڭX�?f�k:a1�vz͓f7��~�V�
�+�9�,���PsX2^Z�$=+A��S+ȅ)����V(��b��#,^�
&/Y��L�A��z���X�
�H�f}g�!��������mG͞w���hs�:����6��^I�K�(�[^L
+�0"�1eY�af>?����VM��63�rz�\�?Y
�
B��r����s9z�!p2;i�
k#�|��r���[�a�[�!�g=�,Ʈ�l�ׂ�w�1�XW�e�f	ƫVD����)���tL^Nn?���Γ�8�rFJF7��q���x��g�3�Pr���|UO3& �S�5��`��їƽ���}�/�0~��_5�t�<�᳷�9�h[C䙆�xO�$�_TN
���r��0<AvRZ��t%OLc�4 at Pv'���fQr
��9Z-K
��::���
�I�=�mB���(�j;j�y��k�N��m�x���g��Sz��l8�h�8]��Q.��	�ȡ�b���rN<���K..$2�ʩTA
�T����3��Z�@���4R�a09�
+\��!ۊz�n�zyc�Y�
�������ɪ����V���u�a�������
y���Lɭ�˖d$�+���22^$�%�� LY/C��'��i�"=+4
������6�?��^�
�r��߳F
ݵ[٧>��󖻍\�g'�9Y��ߎA�Z�
-�՘
M��O����d%LM59���U}�v��!�5J�@��X��1f�G�y�P�d
�в<S��V��#����AӞ!�u̓n�e��������K���8/NW�E�5J��Ih��$�dc⚋�QMR|����P�B�F/���EbD-Bf�Y���k�'�j0u�
�����a3pG��4�L�
��~�źr�g�`0�h�:‰{;�<��C�I�ǫ!	�9�1=��K�¸�nIB�R����t�G�a�������Z
�3� Xd	f+���`�%P���ɵ�cr�q��QK����E�=����s`
G��
%�'�#�`�B�S�"���BՂ� �����<�o�7�W=���F�����1���ap���6�m�`De
+�M@Ϙh�Z
�i$�:d^��ic��
i���&C�)Q'q㘳�?ܢ~��"Ʈ�C4<� � �O#��(B|4���c#�^c�!^߆y���9�
a�����v��۷��r�4O��ڹ�@<gc\4{�<{�q=���5�W�=��b�_������<Cp
���
���0�;aZ��{{M+|<gz�
χ���E�O/�ݦ���:�lЌ M���5J�1P<4UÓH�U��ބ�=j��u�iݬ	Z�]����Q��v��1����)~�lG�|�i����
Z������9]����~
���Y���y���!� �;Q@ه�a# �4Es�@޻���w�M���[R�;nHz�%���K.���/�C��߇;���dヤz�u����ę����?�O9~R:��<�t�˄��g-�A�m t� @�A��)��c
�,[1����<�*�O��Q�u�
+��cK�_���ࠝ>p�.O8���0v�9���f
<
smO��v�c���b��8��fZ�p��(%-�$T�,��,5��K3�4��HDuQ�P"Kٗd�ZN<�9����\��v�updi��}��{����>�����������Q����

����`��>�7�ZN�HM���$R�C��Æ��Gda�����+2Z���B�'p��Ăp2
�S������Hr]������
+�j� ��
��yh��C�
_���K^�h���yb�5b�=����l���#
p�Q��,�
[��8X��G*�c�����E�_ �O��D�N�C��VN�š)�����i��8�
G���U;ۈ�����&��_�HfPHZ�!I��!q
�"��E���mB�"�~>"��p�g�#�!
��(Oh
g�����3a��N�Q�4��N�B�8k�C{�-�!v�,t���5�J�
d	
���@T ~�|p7���c1�?�#�H�KAo��*�V�����"t�@�'
�@�
P{��}dY�7�`
+b�� 
u�:�	Z�34b(�
���@�, �����i!�����֡%`��D�(0~���N��
�}����
��G6�9��?CL � [(B
�[�=�	q.Ш=�4�B�qq������%�
��x�g�`]��y��=�;�{���5���x��5,k  2�)���Bl��p'���0�\�Wx at c�2;�U
 ._
QM;#�����tp[�\��6s������������cc~�����p�����G���� {�Ü�ʘ�T�
�e
0�}���� �5a�lZ���(���~��'���gY�b.�cn��y�8=�לO�O�1��1�v
+�{*D̿D�[�!އ��-L�쑾h
�h�ś����H�� 1%:K谺8|H�!rP��6 ����c��
a�=��,���(������^���%��~�w
�Bx/�[b��E�܋=!��9��a�� 
gr�ܑ��
N6��C����=ڵQ�TU�nE
�/�
�����?%'b������W/�w���s�ᓸ����ے�R��ȬC
�A�I�Ƀ�L;�8b��Xɜ��!�|n�>�sZz�s~��Ē�7	ѯ4[؝����>�s�Q�SY���r���_�
�?ߓ�ߑ�ǷK��W��ҋ�a�y�u�!C�NF
+�;��ڢ0x��ǡ��<T��[(�����{��
�*#7���U��Mk�O
U�G�:��n�=uS�]�	�-�y�M�5Y�������GqI9�8�R6k��'4C
+k %������D�+t@��1����r�w�ƺw�V�t���
{���z?��u7iC̯��?
���	��W���m�ӊK�˪
�[�V�곚��f��nPs8aPݤ�r�
L�d�����S�o�
��_+���Xɜ��z�kg�l���A
+R�����ڳV������R6�^J��wc��\�~��qusB��d�
��'�#���C�ݾ��^�n����f� ��{���&c���𦐑=��N��_l�N{Z!�Fx��
v� ��f)`_�)��\ג�Yz*e��y����E�xŰ�x��h�2�1�v&�����	u��A3���l���Q�f�Jo�`M����E�o�"�=�ƚ��*���zU��5�ŗ�ҩ�+,�e�'s��G�*e3����5hS$�N>�ؐ|Ѹ#��i{�KcmJ�qkjobMZ��:�Oo
t��g�w%�;�y���}����w,p��>��z��ݭB��������/M�6小�\!8��D�߲^�7�ZՐU�����P�q̸%�5�:�=iszGRU�g���
cefobEf���
+b�,g�":�z������_Jמ �獡#�N����v�F:�u�n��rsԱ�LvSQ���p�xW�Zy}�&�6K��&w��*簩2��yC�����g�u9�I�r������r{�A"�r��YLtފ#�os����e�r��Ɂ`��{�&^�ɛu�6��L�f��JSdSy:�qM
���P\��T�ee���`KBE~Cb����2�is��jr��q��ؤϷ&�, ��%!T��� ; (]@���{�:!P�R�B(
R'�DD H�*" �
�������qw��Pag
��ȇ���9�9��ߒ�s���9I$�(��B��VK�	�S%>�� ~��"^��=�7��y�^a��s���`��&�E������T�S�Y����A������ʨcG�q�'y�3좂s�‚�n�Ô�/
.w��-XO�l�D�de1�%�P�D _����*�s�:�bhqИv��N~V�q�t��`�~��x�v>ǵ�6Ç_�TSq4������Һ�"މDn���W4��9z)�p�}��8�E���Gדr�l�D����@`�V�FExߡ³J�dT��=bH�2`#7��>"���
a��k{����?~л�>;���0����y��&6��)!��3)�l09�l:�`�
�9�e�����̒
�(�F�P��y�yX햅�#��`\���/�X˜pQ�������<
c���r�9��U�t(��PZ�=/2��*�PmC|zu;+��lrJ�'��&I�̩Zg�Tn$�Vl�D�t�_$
X'
ڤ�E���m�ۓJper7uj�Rzd�Y�g�g穾P��3Qֵ]���S<xm�~��y��-EYMQ�q��m�I���D�$;��D�����X��b��?Q̒%�T��x�)	+��pwBnL+��e|j���	�m
缴Z����"-+����d7� �'�3'0��д��Hv[}t��ָ�֞����,f�u��Df�Ĩ��bE�
i��-�k

�����#tX����99����d*%�a(�Nyh�'���E��Fcm�Cl��
g���q��zK����FFw�DEvwdž
���W�B��*x��!6�]4�n��5��������
�f�p�4
_�$z����l�ϻ�W���L��p���O���S]8�Y�����ђ@�HuH�HsxȰ`��9f����H��5���'f`�hȓ��x�E��!q�����<��7Aϭ�D�MZ㲵L���J�u_-����
L������R�.e:���G���f��������|�GC|�B�g��x_\
���5�-L�O�b��V/��Q`b���kTܣC�%hx��Z�������w�4�	�9p;Ґ}+�4�&�2j9�6b)��T�
�X��������8�������}q����G_�k�'�+>��N��A&&���t.�C�#I�.�^h�������z�-�;XO#v�>��c>N6�n��k�Rl�r��k���}����x�����g.+�98=�����7Q
�;��
pa``��4ݣA��RP.�F
}�C�ycJO��$
]ㅾjQ�P�pa�v����:M���aC/�a����o�,l���f���ʹ%�?wHo,�

�ן�DY \
�$��o����4(^���U5"kU���fJg��l�YsV�X�V^
R
x�_��m����d-��;]���:���f��ֳ{�l`�^`h�>jd�~��r��gc��"��
�t^hX�x@@��!��

���`��C��Ә��J*䣃t�'w9�O~[=>�*�~fns�������K�����;���jZ|����[���
�=8��t��
#�42B�/��kd�
@�s��u:pP�Q��D-J�S�ь�6t7t�䌞[
�_�Ce�!S�
+��"g�f(�`���*`��
�Tݍ=���.�n��e��4.��� �O�H�"Q(��D����'�P\Ј���hC�FG	
t���}Ja��FK�!k�.<�y'�l��b�a��&6�j`鬜:���<G����W ��
�
+������3���)f����hH1E3�ZQ��N|:�렻�6�о�@�&���1FB
�$T0����tE,�+`���H�c�H�dHA'S*z�|,h�gK� wi
RD�XU�Nہ
y��Z��N�z�x� ]F��7F�Q�����L�v�t�
m^�~1G�
�gs�E�o�/vh���.:P�ń�^$?s�c��4*b`�*��h�w�6z�v�k�>:7��ict�5A��=Ș0EƬ�_l�WX�i�?M�1�2�q�����J$��ވ�:&$���*eQyP�E
Y+:긺�
�(��#��
�~�������|��
�G �E������	3N:8ͺ��;8Oz ����@�5 ��!8����&�c�G��́�� ��
+|5;�Gk
�:{�nq ����#x�9��g��
��8����f�Ӹ/
�<���.o��u��[@�1 ?�s�!p�@�3��	�if �o^�9��-��j
�y;�Rf�5@nr�v' �tR/���2�}�e����_^��S��\?zq��fLxÞ7$���� >h��p�
A���N�AF\2��r6�h�jі�I���,[����t���;�RZq3~�.Ӿg\��^�3E
�&���$��ߑ����N�_���%�|��
+�, ����
@`i RkCٽ��V at 8y5�l� �9H�:��f����f�
+(w�Ĭ�Mқ\?����'���?���z��
u��:L�w�~v��{
S��?x�J�;�oe;���5C�B��"��/�oS����l�Kl�Yk3)N��d;����9����u�����t�3{ܟ1�N|ʸI�/���W
���
��I���s�	>@�e@��>�A��ngkJ����X��O]�%��i2B�ӟ��֯e�Ǥ鎣����2��Մ!n�	���1���!���k�t����k��k��:K�7�J?(}\��[ 0���G}Eb�=l
A�d<�L0�R�׼?��8
/��":��<�n($��_A�{

w��^��f�-�q�
^��5^?e�{�z�;B���������# Z�h]
 ��>HQ�@[�!�Mڮ���{��W{�z��n4��yX)��(6��~��;aj���<ⵠ���*�+�����6�E�I���>�9�?��nj3�qf��
�K�10�$H 0�<�_��^
ꝉh�4
]����\ܒ�\w��,_�!5{�o��mw�r�q�qQ�{/�3=.�iH}!徽�jϾ&�)i�d`O���ˬ����c�6�'v��M��U��� �E]s�z=H٤�[���
�<��E!~鰆d�[6�A���Zr���܅�ngc�<{�r}��Ŕa���:�߂�X��nN���Iv�� {ƫ
��=��V� �*8�����P~��
$�=�Q�4��Xh�����p��y�b�Uw
+h�e�-/�����#�{(ܺɞ�q���
�5��~4�&�A~�]�ɭ	;˯
+�&�
h�'�����e�y^�|�[�-��ӃH�7�P��\���lқ(ݢ���J���]�w����r>ע/Kj{F
�ܕ��XR�gk��ܴ?�ZWL���dUE7p�Q���=’�_Dő�E�Qo��Q3�C�:~A��W=�
���1��%�ޙ���h�F�I�i�V���
V��\-�[���SO�xgWV�S{z���T�g�*�|$1�Z�p�qXq�U_�-�khbO��c/�sc�s�^�r⦅��s��x
!��!n꽫Q�Z�M�}���y
6T�v�n���j���
+��Ҁ�'
�;���
��#���=��T>)��2U>�(���I���*�ي.Q��$]qW�V���S�4��)u߀`�_�vP��@c�MjM�給����`����:���IkOk[��
+lZ
+��ϗ�Ή#j3I%�i�Ci���bVvr/]�$8��)NI</Q%JTIc��H�4+T%�	�� �C�J
2����D�	6Ҹ{в��lep���������i�mZ�uC�ԡ�(�U��!��%�49����,zfF!+M]�MNk$
�'���(Ro"����"��Y�2uN���$~�A�	��t6td)��yv��
h�fp��y��FO�c����Vs��THvU�����D�k
+�9�d���
Zj�& )�07!�N��.���Dg\�Dg� ����YaL�� v��G
�c�Zc�q��^��f�)v��B���qɉ���&ʏuu�m�5"��*N��p�.��J/M�M)V�'�1�RNl�~T~�P�wF
�7�
#�E�y�ByΜ �
b���˱�CK�߫a��������+��'���t0n?F0ml�?�u��p��JPaTd�@B �BB"$@Xª(.��
+�U�Q��
P�Ƞ(
+n �
P�
��#������Z�*�K�M�yO�Nz�;�������պT��xl�6yo���q�Bi~�W�5�+�y;���)-4,�^
�h[E|fI�)��xҜ���9�?��[bؔQ4���u,̱,���%4xPɄ۵L�Rτ��6p������{��z�S�{��aam�_�����{��s����w��fUn�\�茝�����S���/������Tޓ��ݧ������ұ0��6��Q
���Aޞ
8�H��&+hhq�
h2�N��8�r(j�r+l���ק�V���P�t��
�����5s�m�L��a0UW�&�m0��=g�{��6�
�v�1n�X��	϶ܫ��{@���4h:A��V
l�{�x����(&nj�M]���d����s}�
[$^ؘ-�װ24�h�*�~�6��Lg��s��P�f��u�G�
Q�
Q�Р?8�P��m ��(p��I���
�.O���
��v?֦K2����+�GO�i3q���㵠u���3�SO�1����7��i.U���#�굺��ڈ�mDS�V{�?B{u��� 
� Wj N�4�$�6
+T^e@�	PtˍRxˇ���zō����΋�%L��C7�j� ��R��˹~���
훂#۷Ku�U2M{�\���~�x%W]�W(/`��<*�����U �� �Ԟ��D���L(�?

+
8��|Z� ֲ�a�
�Ϟ�q��ڙ2��9�
בō�XΏ���K�Q(�vl�
����
�h
Tt�
Pt�
+��$�3,��cܮ 8_
p�(��&�'�ϒ�4��ik~
y�)�m�P���̲qif�m�9zb���c��7/r��$�Mk^�V�7x(��\���'7�˞��g�r�?��s������a���#�_j�p�����F�W6ܥª�����^9S��Rӻ|�.	+�Keex
i��h�:e���<U�GEw���{�Ti�fא�27qO��7��|s�
����ۿ��
�����F�]gH�2��� ���YϘ����?�P�z9Ը^��'f��
ei�5�T�z+�@��| �V:0�.dp�_��&
�O����a��)>C5��Cǝ��/:	�;��/��1��
�n&�K�
`ŏ �� �X�4jFt��M�@-
��
+
a�P����B�zV �Y�a��L��Yㅘk��|kO�b����
X3�
�ٱ��~�&��6r6� ȻO�O ��G��6��ɠDW�
9�����i"�ӽQE����h��Ɯ�
,�0�b*�e9�,'�a�ՖS�����3c��3����{���D�Q�4H�0�)ځ�P�qE�
!
+�<Q=0�����i����`�
4L�O�t�=.��a.��ʰ�"��a��D��CE�����4T��Q�DU8
�c�P�f����([��
.R��n(���A������S�x���X�9���xG
r09���������A�C��ڗ�Z1�Jj
֨I�Gբ����8�hJ����*���\��'8(>M\���'��o<G����Q�`���G�����B�'t>t�
b`������8�d��LT������;Y�R6�*�q�~�u���F.J�=Qr����Nި�����?(���KGy�R������$��%�zQQţ��GC���1�
���0Vg�����်��Q�f��@e�;���b/Cxb�Qި�$D�*�,�,��
�
��]��彂w��9z��Ч[����0�OE-��z
c�
	�
L�Z`��
+�c�16���\0j��
+�#ڭ�aM��zo0|?@uDЧj�*[�>*/x}P��~�|�ݣ|�ݥ���B�Y��0��<
}����c%�	�\*�fS1��wM\���H
��t�����dr��t��q��ƽ7j�Cd	�n��]�
�7�{�G}^kN�ti�D/5�D/4D�j=�|���f���~Rc�5���u�ԙ�q�ID�Q��⊈ȾCHrsH ��� ���}��;�
+
+#x�Z�ʴ�i��Z�Աu��Z�>s�x�9�|���|�����񐊵n�.<��o �{�
�`��Z�$�����kT���"��:-�~*?�"Xu�9���"Z�{J��S��ķ���䱓�3_��:�'/:.�_;}N��<G���0�d�6�,I{�0t'
FY�!�"	�G2v�w���
oi��v�`�w/F�FJ?	W�<
�
�*���^���
Z�����
t�y
��2�~�z
}�z���m��1�B�k(�B�Q�r�b�m�c1I�
�ؿ��]����7<_ӗ��M�N���m"s�7���bDG�r�~��~.B�x+���lX�ˍ�.���A��!c��!�z]
��k<��H�;��!�g(�\�
�-i�8Hǚ3a֝;��ڇ�Sx����K���3a�#^��=.c�
vҁ9��l��n��p�
]rj�^�:q���jd��hD����a���I�K���ß�����O���+���q0�=�V
<�m!ڍ{�} �Jfk�(s^�(��B���g�V���ӜT�I���8+�q4^�r9V�~)���B���|T�_}0��~5���MB�	���3�%�BS$�a`�
+�il�8����;2- ̶Ľ�����8��r՗ro��و�
Q��?�z<�cs�˷�H��y��	*�
�λ+�ί=�5���Ghb\!�cfH
1Hu���jc'��BbU

�����`�9���K���
|��^����=(�5�/�X�O9qˤ4t�(�zX�h3�K��K��N���s��-l�Ϲ�j��9B
��XͼD���B��
��e�F.cA�&�+���8��z���`x���(� �Ֆ`AmcpS�fr]I�|U
l9$��3��d����g8��$n��<�z�ʷ&�<����c��4�A�4q��J�G���Ѣ�wHQ$r YɁ��`4vּ��;r���B3���
�,�m�����xB�鲒�ɀ<r_�,�h[�D���� ���s�*y��ڴ� ujm���J.L�$����[Լ�g�<�/��

y%��5/kN�z�1o
�Q�<ԙ��Jsp�� ~J�fT�񂊲�W��=�q�\N�]]v�c�X�J=5�|_U�:��l1�ׄ��{ќ��4m����
M�{�JxQ$<�`�K�8l��u JL�Ok�C�1�Wa�k6��k�x���!��Y����C��I}�N�:^��⨕�]J��<���| [...]
+^S3R2Y	db`����<)2��k��jcp�~#��߇��7����]N�֢	�]_B?TUo�-�8�(x.�r��"'�'GZ�-�EY
�@܉��C4�h��.��35]��.��"K�l�
�:�|�2
��\�0�7��=��F;��:��m���
+ڮ�ȃZu����(�9O��!͗�d�)2�eA��:r��
��.R��S4��>�5Y�M�AJ�"KA�	��5��
��*#p��L6�#-�pͶ��z7Ӧ� ���JWn]R
c��&����S٥�"��;�H��+,%p
jH��VJ�b e)�Q��a^b�(,D� y)��|�Z
)q�n��3כ
�X�)��a	z�mV�����o��R�G,K���)k��ȫ�vٕɎ��|��3�LV&�V�%��XU?���@�Uw��(1ſ!1Ő�(Z��e �W0Wi �
�x��6}=�A{�a��.'���M�6�eKȞ�&�!�>�6�!�$�.ݙ[+tO���fU��U�FW�#���ȑ�W���y���{R��"������wy �� p��ьÝ ����s�8��>�Z�ﵡ�7�"��f��i-hg
MoK�KiIuHl��7I�z�7�Q�����Ci
+n�

+�
\�+�k�{'�B >� �
��p��6�?�7���{qe�v��C�d]@?�ߓv>� ��e�Лb��w��8Gv廝��xw�{S;�|)
W���[�E?r�/~�V迒g9�j fjk`�����s����@=a�SN
3�w1_�3�"ܑН���]�QM^i
����@A����H ,!!		�	 a�Ȣ���
���Ѷ�N����jkkGfܵ"�hE
.���q����j�����3��/s������{�{�����sfW/�=�4�rl�4��:���&e����U�ԉU'b����r(�P�V_���}�P#>�N����W���8�,���9�u�
��>��K��~i]�ԅ�܋/����a坟Ýy�D�U�D�^�R�j�<�h��h�.�����2��A��>���
��NOD���{Z�\����
�����oO#��"�V7�Њw���X�N)iQ���OͿjr˹j�ʺZ��\�25/�$7��'6}&�o� �7}״G�m:
�i��=i�c���� l���:�;�wP^�����Ս��
Ϳ㌊�|Q�MD���
[�}���f�pN��ۊ<�zǷ�1tmk|cm_�bl��Զݜ��Ǹ����v�������
?�6�OvwP�;�����;��y��e���
*�pA�
Ld��R�ԩ�3vΰO�Ju���v�u�O��*v�t/v��^��^�ٳ�K޳�[�s�.�=͐�^cHz���a��k�=U�
�>���Ghùw�K[�w�@9�(�+J�c�Ծ "�_L��+)qZ;�@U=h��̦E�;ȇ�
#�J�$���p
��K���i��
+נ�Z���V7�n7�ˁ����p;���8��]~QB����i�8�
c>H7�'��""zBJ*'T����"}k��C�]dR�!�E�BXd/��4��8p�ܑ�~p֑
͎,x��
�x�5�q�u�oC(�'u"4c������
)��d  $L�������.9
t�?$�\0Q� �‚�̷�C��|n�	��
��
Pݠ�}�f�>������g�#�Ѕ�f !8w
+
+W�(� |�!����g�� 5�q���
̤+�$�a.9�N�	��)��B�r�=�H$$(�H��-�@����TP�i��w�g��p�Zw�l���!�_t��1 �����b
�v{���
c��b���h01�d��U!$Ą��	��Va�8*Ĥ�@=�	�>re�(>� �/�}K��

�����_����2AR�]�
`O��!�t��Z
+�WR`�H��R~��
�E$�b�P
+�ev0CK��q'��@�7���'���
�-
����r\�>&��@~
�a����
��أ�
�+� {X>�
��߀
8�r��ɀ7(q�VH�
 �pIj*$&���9f̙���!v�h���7��z+�bMD�b�G
d��*�FU'9oT��ת+��-Π��ӧ��<�����S���@������?��IH䓐��0�)����IO��0�M���_�=�_�3�[�|
��5��略�3���
�
�h���5gx/4�x�57x�k��}����10�=�c ���֟�.)~�
H���En�Z{�4:�M�L5y�$�҇�V��'�c�0l�{���nj
���]�^�A�n}��SwQ�DMЮ$�M�|�
���[:��A�8n����@��,Ҙ���HB>�#/�~|��qĒ�2�U��<}���̷;u
�3�+��ޣ���&��O�p/�Bh3���Px��t�p_t=ᙨ��*�р�K_�걺I��&�� ����(�NBQ(e�(�:\�� Ź77ǽ#g
�={	�U
[�Z�m��7S��H�!�zʿE-�����!�ƚ�+����ƛ��
�9��j�i�&"N} }	��{o�7s�Y��
���Rʳ�j����)�s�\�ΞM�o�BVkN�ŲZД���!c��R�֐��
a̻��̇$V�q�SmD����cY�i@~�<��4��V��J' �s<�0,b�K��%!dW����"����f��Ź��b��R~]�ʀs�>
���*���S��INf패��';�Q��̨�<�Ѡ<�qOy0�j�jo&��`��@9�=	����y�>�s,�A�e
Խ"�x�BB�Z�uh)M�ְ�B�XRȶ�[ȯ)\.<9���q]�QM�i��$�((H�*��"��@V,���f�5@	!�LK��@�����(������h5x�9���2��
�
��NGǶs���ȇ߹�~z�}�� [...]
�(� �r���9�#�'v�<�lY
es�$�a�����L�	N��X��k�]�;�]ЛYܕ�ڑ����ХM���ɍi�)�
J�r=
!է#��w"6C�l��R��7%xxQ���
+<<�r��U
���`�E)�z���Li��
�,�a>�c�����)��̓��*�u9�6������Ϝ �e^�*3W���uZM�?��Y�P��2��r}��m���ob
�Zfk�V�Pa�~�RM��|%Qz|Ǹ$~��(ŵO���%�
n���
+%ZnU��SOP�����j�8��=G�`ߡ��_ҥ��h�ܟ)�<���f�A�%���z�)�U��#�%ܫ��e�f���eE䶉���ò3���.��
��Ҽ�MB��Z P�+���ڰ�¦9��$�P%�+�2�-���%���&��Dq�� ��l��Z��`ߗ��+�	k��s�9l��3��k2�"Z�*?�﯊���"yo��u at +a{6�
}jKK��K���bA*h��u�E�!j	����iTo5���
����&�#YP�>�e�~L`C�&���ZSXQ��r�5\k���޸qM���>ʮ���SkM�
me�����CJ)׻���_V&	*W�"5QX�N��<�
�@��>B��s�oh\!B-"y3$���0�T`��½z��5�:<̶�ɖø��P��F�m[É�ZU�G�J�>EM��ʪ|o���HY�8�T*�Wy�-$����W6Ec�-�s�
F����F�*��"o�d�� �R�J,48X��`��f:�`�� ��-ؼ��b��t [...]
+BV�����&�*�)L�U*Cq��P|Ce���¬Aȿ!m�p �� ���Lp�~W��y�
�z{���ô
1���){��˻O9�w&�)�H�WԖu���㕧��4K3��!i��0��3"Y3JJTϑ��+�
r|�������ȭ^������:�Ou W��)��
���{�h
s�hF}p���|�f+<�X�?����p��e
`��
���{���~����䎆���v™���+�m�3bl뿈�-��b��}F��qջ,v \D�G� ����<e
��ݠ���VL��MR��1��N;�';g��\�G�R�
�*�J
��=;��շ���
�
zl�Nh��������
Ӌ�����
>i����� ��Z@՜#H��1�� �\�%w�c���홗��.�:3.f�$�p����㦥�NN�z
�j���
���5y˟>��?}�?��O�q$�6�nfDgpG
p
=�I=��@+��B;��D7�x�xK>ؼ�0��4+��6�g�������|�`��r��Ł��fڵ�C�k3��eO��=IW_zFο���C�#f�w�
��v��~��Q��i���r�
+o�s�+� k� ���c��L�V�-������&۞�˲?f`;Dx;�
e���jg�A�'�з�h�v	7|�f��k�g/]	���z
ٿկ{x�`���) �,@�
��[ �ߙ@�C
8��
����`���6���4���f1ƳG��m4c�5�ȵ�4��W+���jv���8�N�
Z]����� �����_;<Bvm5ߍ� ��=� Z4�����h�=��/p�f'�Zñ�N��G��1�gD,�Y���I�����f��l���|ˠ�r���Z���6k�?���:�j�J8��I��%��@Xe
		�A�
+Avd����q�ڣc��R��BQ,r� �V+�]Zƥ֭�+���&�g.g�A8��;�~������p+Y�'�,Y�U�GG���;��}�-m�h��Cc3X
��$�r�+ϓ~
�� ��CA��!��^	`Z�
�;e0���RuM��]Z��;�.�N�{��`x��֓�������l1����V3]ޞf:�me:�{�t��c:�����?p`#����q`�= m@`�

������@1(��Ȇ��dXM�?Sn�i�#q4�Tڤ?����̣�~\C����~ǰ�C
Kld���x:N�q�M� ���} �0�)�� 
��dh�:���=`*�
�)[
�BYbe���(��̰���B��f�i&x�h".�S� ���ߢ��M�>{
�z��
�
�LpA8"�4`��`��`�"��p��P,
�RFC`
+��l�¥�zb'���&j�A�'�^R
+��4Tx�P�������Q
�H�G�</c�h��m6F��&�Vj��r�
+��l�&���
��e�
+��#n�

#D����
+e��S��NC��CC�@:*"�=S���,��k�P��%;LQR�B��lt�$j������s
_%nsF�
��
ΐ��ـ�޻�9��sG^�x<���RH�?1YL�)ބ������/A}u����W���W�赍��El��k��
�UGɷԛ��Θ�]2�����k�/�6�9h���72��!�K����XߙB51UHC�'�O���c�qJ:���2ST�e�o��G���?}��?(�s���!E
oPq�7�h�W4����^�#^��5�π�
Z>W��So<U�u��x��O�P�@aY���%3�����H}�$31p����Ŭ��fS6p�O����/��/���X�QU�U��]�S�N�9�+U
���!�ÿ��X�oզB�~h����w���S8e�oK��F�u���hrQ

��0=�9��2~���	Z��Ҭ�vN+�
�a�|j1���2�u���a���:�v�YA�������]�+����v�գ�8�� tl�8ַ$}"֎�x
+�l���g齍�bvE��
�f?����$t5�=�+~[�V�?>�-�Tj}'��润�����
M��u�y�V�M���g���
/hF��5��D�Ӡ�DdEa0��$ L!g�*�S�i=�j���0���D�G3t��9�G.�ߌ���z�F������Zd-t��m��%m�Ӆ�Z��!?9�
��rN�����Gؠ
q;�EQ=QG�N�Z
�(��M4L�f���Ι��I��Jz{z����X�[3�ح	ټkqyV�cW�\�Yg�
��CS�ǟ"�8��(s9
~P�~��Tx��>좸6��xx����!IM8JE���o`iǒ7g�`Y��ûl;x��
+��ʩ�g��[at5#�}!Ugє�Pp6i����
����6������-
�)�>$����VG7yTE_�UF?�U����cP�=�L�xI�	��ds�0<��Z@{�-�ΑR�.�¸�
j���8�]�ECF��.-��D�
+ǣ�_:N� �N�&�!�Ƚ2~��"�RV
w�s܏^��Z�qO�%�����(ߓ��o�k"�!�dc@�1��3��E��4�w��кXD]��c�[lظ �]��lq|�,�ú��ՙ��3
+\+�ֹ�������M.�}7�מ���EI�R�N��+��g��^��3?*�I�1ބ�S8Ä́!9&��1��<&�_b7�r��2W�i��1_ì͍d
�I�U��Tfg����T6k��^�QI�ɷ�<��^�3��{{j�϶�:�-�畅�w�_�u+7���nJG��騘��=�C�<�����R}���ZVr�y��^)��.�jpdI�*/�W�y�`���v��s���-q-�[ �5g�d��B�V�.��Y��MY��2O(�g6���yK�.��om��Z
�>a"��^.�#�N�z�K�\��
g�8@����U+���b�e��V%y:��E�
w��n_�B�u���.Ϩ��<���PD� �H)#LQA�,�"��t��ІFpF�  �RD�� *�1X�Qp]��f�%'n�f��=G�}���s�����=�W�R���*�x��-^��nAIܐ�84�wQ�SQQ�;aQP�_B6���1x��C��T��T0^����,p�̕�_��-]��Q�ךnܔm^��`U��fW���H+v)O��m���R�����I����ޒ�)�ܤ�޹�oE��D��B�LH$
oA���26.�98�]���pf�n�t�.��*[;��h�Q]�&��8+e�6��lDz�BY��[�Q�+Ho�u�S�E��g|2R����>��H{-�H#B��K�&�E20�\�ߖ�p���Q�

)�qX��t)�*�+�4��W�֕�V�"�ҭ
�&ۖ�g:J��
$�\I�N^vN�WFv� -�h[�i���	��Q^�R���"�<Ln��y��3��:�dp�R
��讶gګ<9�;�ΩW�ҩ.1P�7���b,e%�6E��yR�sN��-�P�VP�_��wH� �\����D�M/!B��KH,�S�C!pY�W#4{
ԲѻK
u�L�.wvC��zMu���2X_��`,۱٢�"�Z�=�>K��0�T꺭�bQ���#����U�+�������,��
-})�.�$�)"
+&��{��d1pq�5����k7�٨��&+46r�5
�j����:�^q�:���(���X�̝)���,�dE�K�9wkE5/���s��nA���p���h��}�OQ�QQF�_�,���Õ2ڃJ�����w��f�m4����Յ�l�ț�5�{V��5�d7D����b�R�d��+�>�6�)���uSu墈�&ކ�.�u�C���q~h���Н��)�
+S��x��gz�7�.^�܃Z����Zi��>5��Pt:2e
^
i�RuI�*����K�n��m�7�rKs���=���M2�
�J���nHC�{p� O�p�C�p�C���
��
�:���=zW?��
+���-4��
]@e�*�{磤ϖ)�sg��.V��Y97�[��pp��֮(���f��)�����:�v!�;
����ikw���۪����n��{�����B����.^R�
��=��l�RMPz��A]H-�u̕I
r��bVύ>�u4Bc��uG�LB�d�
.X��P��W�v�
�ﰢ��qy�7N�}7
�{�;���s��&
�����9:�t����}��C@� �H�ĶQc$�:2������%���@��`�u#�BF6����_s*�p�p�q�p���5~'[-��<l�{�
底V�����"6>Lj�L.�
����7
�h�2h�����1=D�[!b܍Y?.b��/���Q����
��
ߪ�r<E�,g޲�}߱*������>#��ic�ؤ���#��7&�s���,1��7��]Կ��+�_6d��ǁ��
�\�D�U#���c�$�&3�+Y+&�l�������U}'�|�2爦�4SJM��&-��
m��)
��:�S��]{ [...]
+d�.�W��)6n�c�mm,�m
+��
���<x���� F0
���Y�wbX�;)l����\��n���NՅ��T��_����x��j���
~�4g&}�t����˨?���-�_��
+����gZ��Z�|h�C+�?r��'�
����J8?3NO�3�O��g�,�g���r���F���l����LP
�͞�d�={?�6��u����@��G�S��&��=`��\^���Ws8�j��\`��֯���?,^��ٛP���b��&2�r������M�އ
ּ#,�߯P�S��b� PN�P�}$�}�-�o����
8��>i���b1�91�	��q��B��G|�KV@���E�1��aɂ:�3j��Q!9N�����,vP>�'S�ߨ�־���� X�������ԤN]�O}&�gI}���D]\��wa�% 	��R�)i�~ =>BO�͂8�2�ٙ!.g.C
�X�~�خe�6�J��l��Q�*���\�iTS��@H.!�y`b�
�Fd�A at A�
4
aJ�"cD'(��
+�(�
P���ϱ���+������ �߱�}`������:{�u������I
,c��`�#ց]�����{I�|O�d�E��?Xc�����{�<
+8b¯�3�
7*��5��3�5�.ClU4�-��B
8۰::p�a��Qpڱ�X'v�1��e|�
2F9�#��a[ �lA{�̷S ɥ�,�s��0\;��
+"_
�h�@�	|9
f�рW��2:p�b5
��a|��'&�G�q�	b�{��̽D|�^'F��a� �7B��Mh���X�� t'�=��o�) ��<<�yb*���œ 
p�h¬$8*��
���u���&�#���@��
��~'8�="he
N2�
�7�n��{��s�sr��79�zJ´'$�c}$�M���6��3
+��oq���y�-��
���p�1q�ևo�����3�go�7j�q��|�\�|�T��©Ig��΀S��9�3���~�
V��3�^�i����;���N0��	
~���.�܍,��+���w�{>u��[c�}��[��k��
��������k���*t�Ϋf=�b��t���S|l�ù����dߟ{��#�׻-
�~C<fx]
F�b0�Y
&]S���c:����O�
8�2�x!��o���#��%0�<ӵ{=�t
��f�_�a�on��=n����ֿ��4����.��]:
��\7�ٵר����%�O�
�`v���ag�������z�9
�CC˅���y��K}4z��~��a��%3��*uo���׽K�m4��4��èӳ������
��<N������ǯ�<��
�l����1�u
+�½�X��.�P\G��H
41=w���N���vcY$�
Ϻ�D�����_mر���_������|k�O�6X��
�l�i�:�s����u�O��!�N�/p���m>��;��P
�,�I�F/�
P��ݓ�-�
�;j1�3"���:��wjY����<㶠U�Ǘ�3k]Ra�Xmu8���`�~��V���g����
��	xk�;`bƮ@��j���ƹ7���GhP�������XCt3���b�R/I��F?���m���o
���)M��̚C�-��o�ڷ��fop�m}P�]]��;�Nrk�~�����-��*x��5x[�w�@�;���M�4V�;A
ݓ�Lu%١
I���2Z{| �*
�=
�~st�Q�t���
���U]x��ΰ�mw�U�o
�ͭ
+i�m	i�o��)���C
�C?��€�1
fNKh�(h?/�2*�I��[�tԝ�F6�\DiKu�lI�#�e�Y���=��FuR�im��bGt�U�d5g�
v��*gTD���#�"�	�G�'�F�"K#��k"?J������A0M�@�i
B�Sp�Uh��t�����dX��L�Ғ>_�Y��ؗ�ڝ
�W�(5ܞ�dZ�nQ�cU!-�[j�!���.z��5�{
�%-d��p��_�jI��:��P
�w1 ���d_���h�
��wW�еL*���D�:臕f��J>�Y)�h��ץ��(��Sc
+�e&Ir�2��j}��S_l_W�-�����
T�C�|�)�<i�(W�D�;�
dn
��P��=�wp3��+)�#��N��X�1:�ǣ4���؝�Nߡ�gVe��7��0(Wę������fZ'�q����Չ��[�y�:AvB�P�pR���%�Lx$ʔ
;fʾ3e at b�� 
�gx��q�R"tg�3�V at G�U���;{T�r���iU��17eO+SFN_�%5.�H4+JO�T���(�v���������Z2#e�cZr�H��9K���,y�[�<eB(OR��ɾD!�D��sgW�|*�7�
Uk���h�*[�s��Z�v�mR�ho,X��6/\�8'ƨ0;�L��[�e)m�3UvYk��|Ez� 5��19�(Qqy�,��F��6.LLaR���û�W2�CBW��
�߮8{
\MA
�l���m+R7ϧ�-"��V�C��*�Q~A�iN^��27�:#'�V�]�M]Y>3I�]���'��:&�ͺ(�f��^�zL�d�/�.<�s���?��=
�|����
Ƹ��Ľ�3bf0F�Q�PI��.���
])��)��B[(%]�ە��n�v��Dm��v
�T[�UJ���:�꼴����5��|����{�y� �L�2��,�9��l#(�J�@��r�=��,�u�!�SM�ӣ�W��/I[`������I�
R�
bW�8�[�]9'y���j��s�ɭ�IO\g&
�D'g���|�����
�I������PQ��
��<'*;o$�.g�n�� A҆0�e��f�YsD���Y�g.��e����n
7'];<zm�"*�L5=��9"�Kx�5��5��[�T��L%ʡ:�3a9�E<'q��9��&���5x�>�XBV��J/��)�y+��n�d��)��˼h������Yh=w�2٬
)vQ�,y�v��i�%�)Y��aY���YW�C���o�a�d�b���τd����`����Π�� 6��Af�Ҋ�`u�
��؋M,��h����S�b�E	�n���U/�*H��,X%��%�.ls>���ab�Aǐ�SN�����7=p
��w
+�%�!9�kųx��)-v����bE8{�
��`u��,���=
+*�̃�/��Ŗ�Ŕ�	f�L7��=[�+�"|W�h�W+�Bw�K'�������
,:�������}�mD
��s���s���^R�
�(��shR��X\)���wPC�T�ffU�*'�E
L;mV1�$�b�ل��-�����m�W�C�_^!
S~\�[~	uI}�����������q-v�
P��߻`G)@N9@ΡK� �հSk
+�km �N3�<��:fjm0orm������ڹ��5�5K��֤��Uk�|��YxW�����W�E���NѨ���Q�?�<D��:�{P��_��_a~�~��C8�
���8��,~� �֋ �^�
n0���
+n��7Ld��c�u�bu}��
������F#�����5v��`��o7֜~a�v��	"Df�
/ 8���`~v��kO�Xt`n=�:σ�F�h
�
��;�i���@ʻ)��j��=��0
M���e��y���y��Ks��������;tGO��LO����t��#�'G0�o�|m@
+�=�@
fG|r��G<��a�5Spo����ܮk@}�\[��u��"A�C9�XD9�XE9����E���C��/gPm{�1m����i%�P�_��9��z
 �`�w���!? ����:.���]�ۅ��K��_`��
+�
����d�@��p�t���`u/��r)Qw	ey�����2�;e���2���N����4�_r`�y̿|��`�
 � ��4�
��	X��`X�
�z��E�
�?� �g�`�l<�<���Bb�b�L�W�@�W�}u�݈~�����c~�q���6D���
`t��6����������Lދ��
?p`�A��@�x�

�@���!Y��N��d���209��a�ӱ��V �[ j�v�lI7�� �� ƄC�1�<�3�<1��
qH�ܑ
+B_
��
|ozr�3�^A��k���DC+_��C(b9�&�41[Ba
+�B�h;ڍ��JT��F�ѷ�t�� ����~� �gF�Wf���
���4��^���M�x��p�X��D��&�d��rQ!ډ��~tբ�G�9惨��2��{�+�S��x�~*&L����zĄ7q�(��9w���.q
E� �&�&v�hbO�r���mf>Jw0�%��w�rf at Rɼ�
e�%ǘג3L���y)��<�v2O������C�ݗ��?�ET6@\$��+^�Z�FR�ُ"ʉ4q�A����Df@��y�e2��\��+d^r��
��}��g�rG�^����N�����G����v�{��[�v9��MN���	��_W�ֈ�(Y��k�t@�#q?4�w�it��
���B�jӫLc�(��#e>�P���@��w_��wOq�ץ��u*N�:���ڕ�yw��[�
�6�~���_U�%1��/�;�{�x��b �؅�>�����K=�
�������c���.�Ul�&�׮����V�sǭX�[��-u��Mu�^����u�Y~��%�U����4��� [...]
+`�T�Ri����y�Fx�s�.�q|��
r��۵����y����yo��띭}�w8�>�9�|nr�ol������ʖҵ-ˤe�=�UΧ䋜o)�
�����`������"�&�#��3��<#���“���QZ2��\���b$���D������+	m�k	ݾK�v��x�r�~�Kq���f(���/�]���p6��Q���4���3�`	(;�
e� ��
/r��
*<�EŸy�û�q�[�L�jfa9���
+W�})����j&-�Z��)=�����g�GN%

<�4I�K:
4�t!x&i5�X�Ð�䧡G��H��\ȑ5)X�KX�7`\w�r���>x�>	���]��.����K�<�
��^�9e>gx:��,����f�ٌ���
�M�`����tW�D�L�+�
�p��`����_����+����ǐ�5����|
���U���"wxP�
w�`EĄ+�͸EQ"�\!��dA�ל��8#P���
��܆���V�
k��=!㼽a�y�4g�T�h֩ȑ��tG�]��� �;z6�&��
+,
}�sQ�D���%��I���V%~pYJ��F�ii
~N�u?V,��'����Z������Bs�S`	�9�����}yt{�\T_�b��޼�1z��Dw�5Q]���_Z��|#x�~s�Kn)�$�U9	�48U��*��婄��\�C�"⁒R��X�?"����ZB�
����=��zO�ᨮ�Fg�yfG�*˒�V{�3f{�O��BlM�z�
4�e��ε�F�O��
�>pZ
�`J��U�D/�y:�Ľr	y��̿_�
�#�
���C{�-4k�-�C<L��ƣ�D���YV���,��m���e*Ƙc���A
�@p�/U�ޫ8[�	�Z*L����nƍW&�*2<
j�πJL�+�Sz��rCpgiC�����&�l�D�����IV��4�N�c��S+}���U+Ř�`������*ʿ�G�� p�� �� p0n�
nL��mX��a��z�4E��
+�S�
+��tA�*chsY3ͤ�lPأ��1F��(� ?��_���ߏ�ɿ��R���R`,���?�>F����(��^Խfjpp���Q0f|
7\���^��a3d{wU���ҕ��i�M
դ�	��0ь�]���}Q���N�bW���T�.ŪU����V�^�+�1�\��"��h
������:��еg=Փ�����p���>��j���
+�-�b�� �oЫ��*CH����׵Gh��(M����<�Rifc����
+�;��JͿ�J
�ZS���/}���t�ZE3��rϠ�7���.��g&��)
��7����x�9��n�z67�M�E�:�������
+��ԅijZ#ʫ��e�!�B�U�����c%���g��{��
+cɪ0�zO� �2���F�Z �� ������`�mg��}��-��Ԛ��В�cl. �$��,�Ҥ
V7ֆ�54��뭑���hI�f��[d\�)2�D>A�c�j1������:�� �Q� Lt ���wxBOg tZ�f݈k���Vߙ�^�������b��]�j�P��!�SXIsG���N/l���7O3��y��|�-0?a	L�YB�6b��>@�p��-3�(��.�����
7��R��F�����vs�նD��7ó������2?YWy�Īw6�vXhŽ������]��ٖ�
�e�ɳ<fd���nâ_�'t
��
Σ�ϡ��6 g�]H�
�<@��A�
m����8�`�[�`��r �K�_�#闐��2J�
m���.�������Ƴ�DdڎFrm���o#���=_�ӻ��wa�r��Z��V4��h� à �!�ƽ�{���n,4N&�;7��mx�3�P2��!x��}��r߼�_�H���f*��
��p��
�’�O�����h���h�?�'�c��6:�
h��P�� ���Q��� �q��CP
�@�H��~Ů7pE��r]�AQ�g
��� [...]
+m1�hfZ<�f	�4K8�j�eɖ)B�e�8�2WkI�N*Zd]�\Y�N^�EZ��zB�A���jr�.x���}�5A��~�J�(?w�j�6� �󁥅�ԋ�)RJ%�\�Ab�+ʽW
�X����,ښ���YB�u�(̺@
b]&	���Z7��w��[�l�[��~�s6~e��q�C�q%\�{�WGh��(?#��ƾ������#���@j%W��+^�CX�h���`Bm�k��M@`�4��a�u�_�"�[����S��~�hl�>ј�J�g��g]�ȳfP�Q�%���L���^`�}�a`a��Q ��PD�
0�÷Q	�)
��Fal�7��Ls:����q&�3s�ޜ��0�e
\[���%��%���I8��ù�	s>��p�ٴ���i���
+�]ʞQK�
@�	�?���I�oU���W�p����㠻6�DC{=�7f��f:47�Bs��P��	u�~�ڪ`�v��?��� lo>m�nV� ����G�A�	'��&���:�n��1�ߒBӡ��C
U�
��(�|�����
YO"$=3!�Q�2��
@�ׄBz��=H����f���X�
0��I��
F��)��_��u at wP�lP
( PC2��h��M��?	��tB�"��� 
�A
+������kS�R�s�Ӛ�Es�@�a�=�2`�8����Ȩl�3�q}��JC
��Hb >$�L$)�^��>�8������qZt^�w
K��-��u����D��'3��Ÿ2�q����'��v�A���Bp�aRN�H^ɛ�B~
C�
���X��H��P��C���n��n��DO���Z��u	T�
�5�2�^H����F���"�$��W�셺�=W�3u
�����G�n<P��W�Y�
g����k����J�H�܉�����g�sw��q�2����m`/t_�g��lH���j�؀6��k��m1{��`�5���F���
+��u�u��݁��\���?m�p/�#��8�{Q
ciMƘ�&3Փ
>j6{�ΆF.f�#W�'���~#{�����;��
֫�e=�֥?�:��C��ןd�����Nvå_��
VW.�D.�r�a����h+i���	���8������Jc�=�a}

X�a�2�b
���ak7lcwݿfwܳ�m�<v���nJ�5C�p���j�(���Z<��N{r�)O.i������Q��
�IC�فмy�ɄG�Q�����9�o:k�Y�n�,g׌k�e�B��K�q�p޸[�Oc�謱@�l<,:m�5�č�f�I���߇�:�W�_ns�g�|���D�AJ�Px8�ሡ���
1�#8mAq�
����wع�B�i�pƴR�dZ+j
�L|2`��D�N��{$
{��E�ڀRiM�1��FY�����jz�(3qe�ώ
Ãm)_
+
%�#m����E9�=�
�#��BdZ"��S�ى��BC�BQ}��ĵa�T���

�(�.t��ې]6�!Y�|yy�!EiH��$�AY
rIy0�۶(�0�NPW�{����
�I�'��Ij\�脳1�h�
���	�66M8���I�+'.��G�^V�'������M�C�mʃ�
[�9WUh.RD����k���-v{�?j������7$�
<�Q>ЗH=_2p5Y��Ir4'jqb�j�Q�<�UL�*�%�'�'9��@f��Ȧ0n�� n�2?�ۼ�/T{cv���dj�b��3c��{b��1�t������aG,w��l���x0� �O�~�
�g�4�J�C�
�SG����(�
��&	�ii��)s��S߷�;e�<'y�2k�JUf�Z����Cu�5}�q��K�o�\��
��Z������H!� @‘�+�����9��T]ī��u�{�����t��
����m׵���ٱ�?>3o��7��>���x�D�xG��#���G��퍼��y��
�1�3�K~{Է�o�f��Æ�_���$��T����T.n���T�wR7�\�v�4�3�g7���p$I�4���2��w�7y
�Y<���=�
���Aߎ��~m1��[b~(h��-h��Hh��\���`����%l�i<��?"ﻝA��tW�ΰ)�8��3�A�q�^�a��QY��pZ�Ӏ4ۥW�s�N)��L��jK��$��4%��Y���g [...]
+�K�<׭E��hJ3y5�YxS}k�]|�tDP%�VH�Ef�u�I�c�Q��ؘ�o�1�}�������c%���殺��9��Us0��c��lƐfӧ�ve�ٷ���͙.�J�[}F�G]z��%��W����Pt���!A�|BT*�˗$�� ��S�^�X�`E�а��t��P�7)�r>0O����c�
�m at o�6�S�m�9`ߨIv��V8ת�\����+U�r��g̬�-�l�/V�ʣ�B�Y�N�����xB�K��dń���3��_�
ܣگ逋���"`�~Ǹ�
CB��GGAӢ�ñ�G���%8XrӜ+����
wcN�g���3d��e7�
�}�|�aQ���$G}%@�~H���J�Q�bB���'R����y�"e���s�8B�a�+z�|tٰ֠�i����E�U�9�H��.%:��!_�Y�W�˫���m�ks{�H�=%Qi/dj� �)�Բb��-�����in �({�H�WF�G��'������5ԗ25e;8��a\sI�}iq� [...]
+���~VA� �`T��;!V�.J亻r�'�?$
+
K߱������!��u=�"�!�<J
й�d�&�7����|#*ʷ1��Pn�9�^oJt,0ɜ�*WmY�Gv��+���S�
�K/i���O���
���������ER=��K>�{�Ks�H�_[p��"�$�bP[�*���(�	b
�ݜB�~���xmu�Sv��%�2�MYY�^a�������S̃�$�0��(��8��q��KQ��[Q��&���'�]��%3����Z�Z:W
tCY�?�֠Ⱥ��Ywr��pnvC�}V}���^�8�v�
�w�֕z&�V�k�}�j��15�,�(�-a��W¨�/�U�	V]������u���T��z�>+�C4��-�(l�A~�*h�7#�};�j�d�Eqm��im2Gi��9�%�5���
�\�y���
��볿�_x�,?��:_�/�a���a
��ճ���`��>G�Sʹ
-�]��=m�]]@^7�^/d���ٿ
��A���0�����Xnb��>�/�!�W��[��cv
�����幷������%ޮ��B:��B:������㦉f�z~���t�.tV�.���=�Q7���!
[���@$�oG�x(3
͉
O�F���"Ʋ����
���9�
�u�5��ct�m��i�m#�
�#?r>����o<�Y��,�
�Q���}�h�
Pv	e��c@¤b��=%F��:�ފ��]�	gBgb�=3)���
�Ι
����m�U�?�nqxkz�q��	�7�/��ޜ��S��'X��c��@
+v��
��>ʵ���	 sH:D�&�u��9_�[��s�c>oχ`�|�mq��2o�T���h3q6٬܍�~��I����v�l����?ᮝ��n�9�~��W���c�����2	N �g��9� �ឋ@�e.�,x p���
��iq6.a��]x�j�_�Ǻ%�,e��%V/Y�UK��ʥ#L��yFr�6#Y���,��/<爯��1E�#T{'���t�����rcIIC�m׀�7�5�9`�
w����
+�ﮃ�����^��ł_��9�}P�V�

���)x=�χ���_�u����1>F�H}o��M����+@����
lzx�> ���չ�����l�e�
D��((`�W%���	1`A,H��@Dņ�(�<	��C�-�O1D!�ODQDĂ����g�0���;�=�;{���9���F
�9���P�Y��0�s C �Y�ҿ#�DH�N��b:D� �X
+AC��Fr�<�(g3�J��,Z��=�X�=�OZ��8����
`]
h��%�+"�6�!�j��&;��@�:5�ͣ�1� n�@h�m���
+}k7��j����GK(��]�4��8Zw }��0�`W�. ��e@~5��Gn���+��j�M
��	���:���k�Rs��G��?�:���=�@ON}�Do��G� �=�b{���� }
��`��]$7��b���u)��b�ѽ5t?+����� ��f�
5���(F? ���C��?b�>`�h�Uŗ`R�wŮ`0��o�4�H�%$��"�H>)�k�
��x�Cx�jt���h���(m����0k0���Q�����L��ɼ�L�Dc����O�WI%K�r��W��߀�|��Ex���N�
���������y��n���@߅�B�V���
��5��ջ<��RM�)O��H�D�ɿ#3�Z>
]�x)[��,<����:t�6ᑬ
��t7�J+�&�B��
Z�7pC���]h2ehT�sE������9塡|(��T������7��T��j
+:U3�P���Ÿ��@��7�Q�M��Ven)w�r��{q]yM��WՌ�C�k�p^øZsƝ{��=fK�m�`����f��9/��c� <��B��w����m"nh��6
M�ehԮ��Z\�n�%�6\Ԗ�^�,���4j��p��W�Ew�
�����ϰ~f`}�`v�`�*�j�
�|���vC���u!�����^���+
��9��[�Z��貸����i�z�;���U۔q�m��ٜ�z_�۶�l_*m�`_&�ۇ	+>��)���Q�Dy
P��+K����z?'\��z�?��#q�n����U���듸c��>�;����s�C�
��V�}��ҮB���ܾUXf�LX��D%L��3l �w���`
φ��1H�6G�[���g�\q��ǜ�q�y,w�y"��y_���s��W8-�q��;-�v\#,s��:�J�v�v:
;�9�:w�lqf���L����m|�N:�h{u�
�A��!�8�b��nq�m*���
+����[��u_���e�p�K��ؐ**2,m7�֛l1l5)0�.�7TJ6��
W��\:dk\^�V�2Y�g�`��(v���F�#9�
.�	%
�}#�c�w����JFs��c����S�[�ŋ6�-��X ��f��%Y�Z��=_�ڽX�����
U�9

��
���֥�
���t�'�+m�����Z#PM���88�>�(��c��E���V� ~�O8�qT� o�DѺ���k�6���+Y�"��ʐ-�ʑg{�fzmS,��m���ae��ye��
�/�/���L�:��}�
?>4sЬD}>͟��P�o����
;�`k�@�xry�����`A�1Z����ѓ�٣�L2�����e�i�t�,E���T�-��R�B���g��}[��~������=���h��(�1:��ӑ����� ���(����X2��

���d�
3lj2�|/N�&I
�I��?W��b�и�l�q�r�1_5׸S3�X��e<e���<���&����R}p���˴�S��h`o
�[t�ơ \���
X
a�d�{q�¿�

��F���/
+�$Y
'MN�'-P�	J7���Jܠ���<>�����j���f��<.�i�S��G�Cp"
+80(�ٯ��[�u^����ȉ�̘AȈ��Ң}��Q������XqR���9�Ӥ���'��S�
�E���
]��
��|j�
�)�ǻMk"�-&�1s��T�?p�jPEq����췍��Ҽ3N��Z,��ҿqBj�;�(v�<. at 0wl�pvL�8!f����)���xy\�
���ԨL��ȵ�"
��uyGEu�q�wgfd`����.誈�i*e�60�
U�RUZb�2�X�YK�(n�Q at M\)GO�-�h��k��n�Q���
�9��9��9s��{��}������b�<�31�=uO\u]�D��1�D�[~:s[<ס�='ˍ�y����
��kP�0e	�P�0I(��H��Ҝ�y2s��&3.N�
��#56Ci��uXS�h��vN�ޠ�G���Gp��>�36�o��_k�E
Q����Y�|��7��jd�Y�c
�?4�b���I�Q�4�I�\�t�l�-�4���
6)�1��D�")!�ΐ�c��/T��+�b�����۵
�\���z��/�N���Fŋ�~�>��\�3��T`'ٔ��uy�%&G,5�E^�rR�!+e��a򗤚����a6I�Ѷ�E	
+����$�}L�R�¤r'��V
aܦ	7�w	3
wY`�����%��Rf5�Q���|'��&`_��ԥ���<JҀ�t�f�9c(23=��9Y0e�J�2�J
�e��(۸�xyLZr��i������+
��u��bQ���ӆ�|�
N�Nl��
1�Ԅ�Duh�;��Zle�鵚����.f��I?�9YJ,6k��=��QX��%rf��ْ��itv�MTv�m�٨7����ʵ�*U/^��x����=�̣�9�ߐ{���_��: ]t~�Y����]��%�9@!��yF�
�%�H���w�
�#v��]�/�I#
+�da��6���KRAKr�������P5+w�����/���on���w�/�~9���;N1���\��,�k� +x\BҖI��U�+��ҡ�*�@d�d!��G�_ 	-�'
.��K�mJ�mg�d)�����W)�/��0�h�ʻ�09��.���^�\�T�fz�o�r
63��e��B�RL���/c߱��P"�R�U1�j$B�' ��[��)TIfW�KfV�H���2��L����i��)���&W�TzU
"g�^�?)�V���Z!�{-�����w}u��
<,�3�[_
D�=
+]c��'��Ŝ�a�U灙u��W���9��u��u:ɴ�ɔ�T��\����6�kkl=k����4�=j�"��
k�)<V�
+�U��x�A��J��
+�GRR�
НLwL
{����M��V{�ت����VOL�L�$��,��h	�[bO�"��b���IFYVIGZ,��&���̭���m�S����6n�����طӻ�mX��k���2��-�\��>;�I
2�ۭ���^�8cGbt�8��Nş��i
�kܭz
��a�5_b�[7
��W`=.�Z�
+���׆��]��4T[�]Mo�:����`+���@�.��
+L�
��p? ��f'
i�A̓0��
8�	׃S����

+�{�t�{Ȁ>-f�n)Eϖ:��4@�r��o�9t���
��X�r
0��y	��T�
��O�&`�R���3`�Q��19��*hZ]�nu�s�p2Nm����
U{0��C{2�O�Ay�
+v��P�7A��%����P��J^u��qW��}@w&cN��7s�G���80�
�u
+p>-�����*��ka{�l����(H/xAr��A$
�up�up�}�DwP��A;���6yD�t���3��=��S��-��i�w8��O.�ձ���]���#���Z�r_��`��HD��)PY
^�K�:_��K��F����n� ��)k��p��9�}�5���O
�=
�G��;�� �������pKŦ@
�؋��+p�
���By:��x�y<�K����I�d�;�B�$g��c�M|�
� ���W����
��"sO��^��-�/r����#�m�P�AaN
k���ɳ!��1�
�/Y$��^�������b�]LzWs7�� ����0"��D�KBI
I&Y����
Ux�5x��x�-���

�{�?|���3<E��<
�:q����>��DM?��} :[�K��WO2�
1�
�F.~EG+��#<C-]��c젫��O�j��ǘ�3�7�0uw������͑n�ѥ7硅��m
���!ʦ0/����3�n�4�Y��J�dL��ZG�f���vѵ��f�}7���"��
��ٹ�(.KD|��;����	���L�yTSgƟ{��$$7n�#V��j�FzX�l��$&� 	�@v������(n��R���(.�Եxlq���L;��T����tZ���y�O��w�{�?��=������#����r
+�O4~���%���<��J�LR���j|%��cI=
r
�ׂ�&|���\��
�]�8�p��%���'�.�W.+\���E��0TI��� C��Q�m at 0����x|ͧ�	��G|>�ɗ�K���
q�_���p�o�-~#n���
�T]��:�˪^�n�b���
��
+8K�!N��>�C�������<O}'��i�Ǡd�
��[�
��[�k���;���ϯ����E�f\�	��w���N�
rg��ũ!�p�/��3���94L`��
�"�"}*/�����@%�S
�������pk���6\�KÍ�8†�N�Q���p:�
+�jp2`9N�ű���	��
��

y��
y�9��t>`:G}�v���m��(/��cH?��5��'��Ip?P�;���2z4.����c��:	'�i8���ڍ���VW0��.�bf�z�W��t�[���=h/����
+���
��n{�h˸_E��	���zy����ɓ�Tb5���
�O��7�?�O����EOH�hq`�t�
�Dg���)`�Cʘ�!��]����Zv{�*vkp�hs�Ѧ�ŭ!��CΉׇ�7O�Z�4�gI�{��Y��*w�}?
�A�/�z�Pg&��2�S��:
�Qh
M��P3�}���:5��<���@S�n�T�6h�Z4u�u�q��UҠ�%Y���VkNq+5W��S�H�O�QZ*H�yY��ITꩤމ&�8��biޡ'�H�
��}�1
+�"'b{d86Gj�i`6D�3-vv]��m
/�
�%^
^%^�DR��[
��-
�&�
�+[v\^�'_�H� �{B�WG�7�&��3ҿ|�� �)�-F{� l��M��16ͱ�h�Ib�Ƥ2���l}�C�<�@�,�L\5G�$jW3�N�pZ��z�fyմ�yQG}*�.*�D=P̎�NQ-�x���yO
|JO�i�:D'�m���xZ�ѬS�Q7�u��O�g�
��x
�$>[T�u�j���Z��*���W+��F^���kS��
RΌ�U�i��gh�U�j�P��
��y�j9n��/L��]�n���s�!I���!X�2�)!�K	CmJ,S���,HNe�'e��%9ĕ��ىeܬ�Jiyb��L�R^�[�(��T�����Ļ���|~����$A�&�
\��9 �4{���I�F�� Ǫ�Xn
�Z㻨1�b�1��2�������h�![\npI��%\��BZ�_ +�/���7+�)ەN}��?����&���zAI(^s?�dN�~7�_m���S���J��< ��ñ �
T�MAeZ$Sa�2
s
+[�jfKS����\q����7�K]�*�Ӵ�'�Ԥ�1n���}�,�)�F?��?����2	J/�W��<�h��H�]���S۳��5i�禋P������1�3߃'#
e1LIF"[�nd
�3D��
�Ӓ/ɵ�Is,sevK�O��AaM��g�u��-�K�\'�Q�
�n��4A��۴���
����؁&�W��)��6
s��`V�ۘ��ҬPeE1�Y	��f`�l�Ö-��\�l[)g�ΑeZ��[�(Ҭ�xs�
U����d���d��ʔ�3��)�B�����u����̙K
P\K��|�gv��9~(u�D�c<
+r5p�F2y-�p��v�Y�尉�9y���bΒS!3�,���F{��`���ۏ�R엉�*��'^�-(_a�r�<?E�>袙�h!��kS.s(��N9�]Q��;y�I�q�#�
���Il��Ħ�3Ein�8�U(1�<R��Z��\��ܠHt�)uΣ|������Q����\A�����8��/��H4K�i�s�>}�
+$p�Gn�?��c�Uk���(�b,%	�����J,���v���-I..����	Eu������݊��#ʘ�O��ʘ����A��'�GHo���t�E�,���9g0����
���@X<�a�h`�D���2O
+��1�I
�H�q���K%q�\L�Ri���.�(�+��لaf���aQA��
׺<�T�5ڨE��A�	���EE�qA&.TD0j]S4�Vm�X�Zc4DM��'�>��3��}�9���ݓT�84ɬ�O�OZ�qI�P�/y��_,*��ʷ�8�
�o{P���z�N�����-gߑ���n���������1�>
c��	�ӧ#�%	i�J��-����,�K�RĦ�w�I�p�^��4;D������!:�g����k�{�R��e܋$�$ӻ0��
+Lg�6)C���8cl�7FgaTV?��
���x
�
�������B\�,Il�|�ଥҨ�ղ�Ye�Y�������&rM��"<�'"*�W�B
[��+X�IYIoR��٢M^��s=�����\w���D\�
C��5�`�0D�"�8�3�ƹB�q�fL��7�J��HC�vKC�viH�#iȆe!���Ԧ�.e�.��I
+�^�	̦{��~F`8[֘B99c@�"�u�(AxI$
%��_2
�J�F_�T��f!ش zS��۴N�e*Kv
+��PrQ�?
+_H
+���\
la
��d�5i
�!݉tO������R r+Z��JW��ޕ��eE�9��X��	0���e�,s�ò�������b��� ��3К�B[�m�(xuQ�!�b�#I��Y��}X La[8�
�� l�� ���
5N����
/���x�F��6�#�n�7�L����Ŗ�-�l�ڶ*�	�joAe}u͏D�t#�#s�*�g���1��6��J����ҿ�<	pnPB��U�N��P6�����t����>2�� �����kgB��C�����fQ��ttR@�Z�|
0�1��O'0��6 z?�� �
��'��Q@�86�!=��Õx-~�	�0h兠��V>��x�ڸ��\[
9��/��G��0�+��"�<��5`�#��H�a ����8���� �i��A�u#��y�㼖➼
��Ŝ����G;/"WX��_�B_-'{��9�ȍN2��I�{��F�(�;�޾���^�S��@y�\���|N� ���u'^�5�Mw6'݁�t�$�jV��;� ����.
�=
�{\��\��
��r����y��
�=��f��
+0^-�z���~I8m|E�&��w�͜<P]�G��c��;=�=����>��>�����ɤ���Dt�ح;D���M"�P2�$�ydI�O��K��
�����
ex�J<E��ߢ��'x��x��x����7w�3�Q�
Q�	Q��;��@b C�2���ӹ���t�q�L<�z<����Ltm��B�.����z��8Sv���'n��79��
�F�Btq��v��p�(�\�GBHI�{��-c�G�"���>Vғ�;؀��DW!-�tU�U�񭸆�2Gq��?�����"G�@ο����\�!����/�"��o™�8�9��i�ͦ�=z�Г�Q3p
k�Mrpq��UF���jF�g�
�ъS��m
�$3�‘O"�%�C�pb.đh8����!x ����ܒN�uY"����o���$[�
�T����Y�:����S�f����*/G�|�6�Eр&E
�:���=؝~@�JD���d� j�|�<\5x���]�7�\u�K�18��
Ψ��)�<���G�z��i8�^�&͇8�و#�"
֔��َF����8�|\ڱ��ln/`uQ�.b��>���ؐ<޷=��||���E�>8�6���p�c<�yL�a�ٰ{�
��P�
=�q@����
ا�{�&ؼ*`���n�:T{7a��ET�܁ŧ���P�Ey"�r��]���Y�t.�:ଗ+Z|p�G�{���(��M�^�D��ޅ��=��/F�2v����lT��b{@,e�
�By�
a��P�;+�~#���	�A�PD
+�@
d�!�XjY�?e�=���)P�� ��ƞ>Q�gv�ǡJ?�������
+���`�>e�
�T�N�X�I(ћ��`�Pl67H�CNI6�ܒC�HrCEIίx̲\fimc�?���p��}
a������2��l�E�a$��&�4lL�Y(6�C��OB�a��o�/���}���\��)A55�J
��.�{�]8����.�.�]n
r[�ۊ(���%��*X���ԱmSӦi3�δ�v�!m�Ӵ�t2M3M��il�/2f���9�����ߞ>f&m��J�`O��fO�-�'�_��Ʌ��ɍ��ˍ��
��"�ܱ���j�}6p/�{��V
p��\��q��z��܊5)��h�F��+"	ӚjLj��IMs"����fÙ!v43�gNsC��ܠ�"�\�4w�Y�S�e}���~@D���PC�
��� ܦ���+��;t/���m"�h��Uc*7'sM�έdF�NfX�a���젶�
i{�~�0ק=��hg�n�K�.�UEg����_	�	�y����y�����B��rp���
e�C��m��nN�S�gcD�ǐނA}�ۘ~������#� ۥ�悺�\�n�oӝQ���	~�+B�Y_٤�+�Ш�>B����I�N1�@��QD���,��6�0aL@ش
æ�4g"d�G�ٌ
��t�*����t�<l���m5vr~c?�l
S4#B��E�k���7���~A|��3�GYg�*=��1���a�V���4�(�P��g�|�(�1Z�c���$�ך�#V-�V:�V��"1��i���&K�hi�|�^��pD�)�ܖ��rYUc�E�
��E����*����ߘ�7���t�Y.�
�,B~&��E
�ǡO܄nq':�T��d! ��"�I,a�J�+:�z�����[��k�c
+�xJp�s�jqYeo��ğ�T����sT��M�
+�ܧ9�:�ި��@W�Y��L��1��Q��[�`��K��R�,e�QʃO2�^*b�r�%��Z��uJ͜C
+���QE�4!�Ҭ�B��*��#Io"�I�Qey�C�U�Q����j������y9F�z�K�"��	h���Q~^Y
�|n�0je
���lc�ek�9Y��+�E�<.��g����(� ތ)��#ʟ��ʨr��ʨ��Ϩ��H��Xt�<�S�O?����M at Su<�՛��˞�G6

�
�9J�!3�����c��m\����aE���`����د�
+�?&�#>UVG��5�U~B��$��Zʜ5���!��M^Z�{����&��Mp��ݵ6W&dw
*�&����]���
��g�]����
]�
+�+"�\�F�5��uWep��2��Ci��Ji��
+���z�E{R
p���qb����S#�u���Eu�S��nC�w�}j����w�ςb_c�٘B��5��Y���3��x�wZ��.	���
+��וy�w�������y�_s�j�J`��&F�
�O�y]���7�Gi�f�-�P�O�՟��
+f�"��1j���=��d���\��?�_T䴼��n��"��[���n~��i�~�-��J#0GL��Q;���;Z�� P�����Ž�0wn�)���
j��2@�eE~W9�
�����t��Y�V��2�s܁�wyu�6�
�5�������W�Gyu�7H��������JxZ)st�~P at 1�л����oA^�nhRqp@��P>�Cfd�J�	U!#�:�¤�z���q65�<�o`�M�>q�M���M���K�r)=k�Ju.�Ӟ�F�� �D�5�-��ʞ[��
+d��!st#2ƶ���
���c8ia=R�|+,a_؉�p���H�0�ç�]�
���M&)|�I��I�7�4
e��ָLZ��q��h�
�����c�q�=dL ��O ej=�N'��$$O�`���fb�I�"���
q��H+�FB���3�sH�\��3oF���H��2���8O1p���#�Mύ!Z�-�v�8�7	dRLL=�e��\,��'`��f<����
)H\8���شh���lX���|s��/�#~q�xq�o n�=<9�)��
 ���C�h_$��u������h
+П�fIH^��6]�p)��	D"�\ށ�����X�"vŌu+�X�E�J ʕA���|��-p�~I| ��gė�P�G�@��p�S�%gi�9����i�%ҿL�/��וP����1M���}�S��QQB_C�RJ�SN�����h������HER
!�|�dB�2�9>��eȲZfǚ��5�5�0��ż�mw�\]����������繟�њ@ҚC���eS�eS�E؈�x��x ��u�`
E�
D�994|Cݬ`����@
c�\	�0^_����o�
��!��(`���$'
���N�Rp�>�ٜ6�9m��V
��<Z��[9ɭ
�u;�
��yr����)�����ɘ��+ƫf����0j�RӢ	P6�����76�
+�
}�����@��R;�Nl��_���lL:X;��:8�

���u
'��F7yۀ��܋��o u��Q�`��=
�PS��y�����
+�*_��6���X�A��E����l�����<�������s��Dw�'
��L7�;� ��0�x��0�ZSלV�/R��"���ȭ
�N�'w97?��=�G3�s��Ǽ��BOٌ<�����݋*�%�_꺑���aуBF�qd�$�$o�����+�%��9V���)6�	*�5�����	Gp-�'.�
���o��
���
��Y]>�
C��+"�/�����N�y�Y�G(��2ꬢ�:�l�Χ���q�����&��9��[�<`_�G���z��)s��	1'�#�`u����Q/�Z)�ʤN�`u��SJ���Y���1��k����s�4r����.��f����
���~/Ȣ!��ӝ�7���:W�G�P3�ٌ�V"u�C����.�b�,���l�N%�3_�gp��q�oZ躙Y<��8I�� +� �᧾d���
��J�Q�ϟ��0��Ԋ�hI�>��K�\�P����\͜���E��140M\�ts
:���k4�2J�C斒��e.��F��`��
�J.�$�A�"gѦ��V�84�%�^:��e�^.���R
�/�N�Z�*
4؉z�z��u
u��a��w�c�3v�E����=� 2����,wwȍ>��6��^�X�㴱;�M��I(M"pX�2
ʏqP��ze6>W�N����bO�r����۱�t?��6�3�/QmvU揱���-�xN����,+?
bIa��J.��l?=��*q�|��
]?o
���쵘�ݖѨ�����)�n���y�f����Q�%*�W`�U56Y����Q1�
�^G���Xm����n�zxj�3�%�G�yg�{G�����Fhh�:�!�m3;m}Pc�j��Qe��v��l��Mv��`7v9Xg�k�a�}9V�oE�{�X�^�nA��+�'C�
%��bY(z�Կ���=�}�
bi���}z�5�
56�t�3�8zc��?*
ð�1�ӱ��#�9��J�YXR�<,u*B�S�P<l��dX�P8�^(�$,�'!������J�u��YЅ�,t�`����GH�7PK/��W���\��~��]ݱ��+\�P�����Q��!����-�n�(p�/,t+��J�\�uB��ja��:1{��\�
b�{����B��!��x�_P���������
�>ۓ�
C�������%��(��C�g(
+<'b�g$�<c�뙈
�Ta�W���'dy��^k�
�Jq��
q��)����:���2���w�N���o
� ���/y̔3'+G`�3����NX4�y*,Pb�J�l�$�UE!S�
U���Jf�r�4�1EU&&�6KI>��L�CR��i��mE��/R����.�����
a�����ǜ|�+��W��㬰@=�ծ��
�L�?2ԡHWO�,�T��c��N��iB�:[H�+����~���vH��ZE��N����һ\b�͡\�l{�����Jza���|�7���[ +�
Θ
�� _�!90
I�����B|��B\`��/�.�>
\/E�(�
TL
:��
��<&�J�A�ig�����V�2�9��Rz)d>rIv�!��cv�
RC��
⎙!c1#�	!a�
��ؐHĄ�
+ѡIBTh�0=4W�
-�������mSL
+�'-���kza�����R��Y�A#[�]d�����K��3��f��	�H�0�$h\��F�F�hM0�4ᘮ��i��Bdx�0%|�09<G�/�>_#M���2�������73��(�Bj�+�7&���
+"� �0#2
L*�8������y�2�T�2E���$�\�Ct�2_ۮ�f����F��m�o^R����=���|��y�ߔ-���}�����ԋ�RR���-�)>�Ϝ"3�
�*��{�$
��ef�Eim4%��wW^z�
�Q�M�	�	ʶ&�f�P��ndX�V�L#��1�Z���[W����,�2�Z�2���cI��>�&����6j!�<@<�Ms��L�)�.gf��2�˞�U9Y���,[�2m#e�%)ݖ���
�d;���Ӎ��bSR�ה���<&{�ytv�%!�>�ۖ��h��!Y>�q4�M�`,e,x��� �����	9���*#������f�T{�R�c�lO�8�MI�<c��e�q�1
��Q�J��s�c�9�q��8o���2��0���~�(����P�8P
+�0=}���6�Oּ@��uRʤ�JΏԸ�(%��Xg��8�5ڙ�QN�F:���YF�s�i����\o�q�2u
1G;ϙ��4���<t��
�H��|�
y�Zƀ2X �`*˝D���&��<5@�S�k촮]�S�
+�kdA�F�F(ޕ�8W���r뚬W��o
q��]U�(�N� �!8cTp�4h�w�3EM}�~Z�-謄%P3 2�OE����Q)a��F�
R\a���)���b��4�=L��
q���n��'i�{��K��~�5F_�v�����~ψ,�nD���g��j	7�UO�l�����3CW(��%
��L��m�xI
.骨y=5p^
�7D�=���IT_O��x��LSo�
Ex���Y�
�j#ܳN���%
Fx���������	��@!�'�=���o�4��h���k������)���z/Ž�s�@���
�Q
+�&+�kSwo�
��ے�겤R�z_P�w�B�'�BJ�+t�O
+}�g4�	�g�怋�p"�h'2�3�Y��R)�̬�g�Xy�����Ky�
��Th� �TĪs�hu�L�#���X�R��yj_Y����
+�ܣ��7X񱂞������i�̧����
i>�E�,���
���%��e� ��F��+�����am�ڭk��u!��u�
+����j[5Vm8���պʭVU��_�Z-�m�ߺC�[[7䷦A-V��s�y�\�۾HJ��1eRl�4�^kЯB��n��fs
��n����Ԣ:D~�aj^
)K�`���e��ổ�f+]M"�ˁ�샓4(���-��wZ^����;�i��r)	�㞓���nwF��[��
��Z�i&sMk.:��⽏B8�ji�j�pk�xj��u-���H�N~s���p��Rb]���05g9�#��э܆����A�V
+xE�{M\0p���v
Ǝ�4�G�h���
�1.�:�:6z
I�ù:bQG,���
����r/���ֱ�>����[#���>�A��VG%��h����8ٜ��h[�m��ӝi�h��ml҉GccPϡ_ON�It=���.��
�������9_��9�%�t
�z��uR ������g�l��f1�3�] &;Jw�>�%}�
�iB�PWf2�P�WI�U��̫8r��f`�Db���4�05�nt;�xZj�~��y�l�	����ҧp>�H��K�
o�[�ȝ�k�r�f�>�7
vߐ���@a5쇃L�� ���
�B,$B&��'f�����ѿ�H��i5�\��B��u��z}�M���=�ż���tC��:�~����5V����)�@ C(���M�44sћ��
��
4棱XׯuS�Dg-:Xs���E]�>����c}��X�+]`�F>�/
j�h

�
���
��� 
�<t
+��b4�o�񉖑�
+R�
+�*�ߨ�����9��z
����˓���x�6*���&|����ޚX�o�C��1�Hw*>M@'_\h��(Ac�{)�ezO��<��z�߬���M��7tT��~
k���a� ���G)��3͉s �v��0��X\ 穋���cg��h<�����<��S��ot��8DN���*�~�������D��F�4�c���Q�l�/�[~��n(1�����0�dt��Ł�SXy:n�]�W��%�,W-5ZCNv�]zI;�b��f��V�
U[�����f�>��=��l�K
5��9cnE��鄩�����z�j�>� ���^�TPnB�Hȅ�@B.�@!B�-	!"�BAQDT��R�u�κ��εg���z��������vv��n�ݥ]������9o���|��=��y���2|k���1��;n�m���m���W׆p%f.Ō�b�^������p��e�^w�������qb��p��GX�}��qQ,<s�<N >M��B��!���R�}���[�;�q+67�D��ĕ8
.n0���np�̆v����r|'�p"~����b�!
MX‘��8�p�����1��S�l�ӛ�+���,�e��
�
j�w���ѽW6����\ڔ�s�xi����XJ���$+���܂�d'wc.��#��2��-��޺��[�b_�7�7�
�I}���O0��v�G1�
QݟP{WH{���1jm��<OYΤ��d�
K��BF�3���� ׈n
��NLq=����$�{21�9����ؕ5�Ѭe�l{�m�c��}
�~���a ;����_Q�D���H��B`����,��u��m��l.^�`*���*���0���8ߎ1~F���w"��Pn;r�` � ��λ�P�m���
+~�����(�zB���Et�I���2��St�,R�Cہ�5�ΏǤ 9�UP�Q�
#�J

��Ch����B7��>��� �}=���]8���c,Px�u�b���'�k�����&����j~GI���F
�(�}��L�s�1�.�è(	Qv�
0 .E��
!q�bz���]�Bg���Nt��W2���)�Z�����XK�M於C~ʚ%���X�$���|@5敏��)p���S�=e�勔�Ǡd#�$�Jr�#�K*C at Z�� �Ԃv��enx�:�)
�-��f�$s��S�k���4���8?&"�fE�9�O�O5_��{Hc�q2Kc�^�2F9�)_�<Ay��)(�ѡ�]Q�VE9��*�(Mp+�Фt��l���
�;��|��Us�^��l��
��
����cQ���QfU=�
�|�ƌsd�L��3NY�)G��Q�F@�:��,x��p��hR��RW��€�
+

��WzPW�	[� �jƙEs��jN1��Ǩ}�|H�@��1j�O�'
Pݛz�49D&�N�7 at 9z�_�Ц��G�	��t��|4j
��JQ�U�������*;,:7�:?L�>fԏ��
��/1��*Go�6Gg�!�=G���r�O��4�\�Q|�̒�մoѽ =?ei�Ѭ�_�>
�T�x�
+`5��\�@m��j#�5u��iBu�c:�NVe�fZ�q�1^�T�r*L�#N��K�
�T֬`o�+&��&����u��h�<͔���zS<l�-0��`�͇�V��Z
�
+����VTY��Zڠ���aj�~��,�r�%����(�? ��(-�I�)�QVN�Z�/��#d�DH��S�fZ�s�e5��8m�Qmˀ�Ƈ���:	4u*T��PQ_
u�*���.(�C��'�̾�����~�I��O��LZeҺ(+#��h�!sd7$]�C�A]m4���
�
�jH��!��<�
�r�ܩ�ҩ��i��U��
���k ��	V�gb�9&r�J�G~�Dο3�3�čOݰ'ɋd��IirP}ɍN@�ݳ9*w<��d�[2!k�E��R���
J�V��.��>y�(�C�C��
x�I�e��_3��L��V�e�(��
%�d�tS�V�@uʹ��[h�UIѶ
+��X��6��#
�
D
(���v�B�	���/���
�?0���2���x�m�����
���Y�/��
��sd���?q��
� 5������i��ݧg
����&#?�E^���`!�!	rB*d�
�l�nFf���2�SH/!-|
���H	}�������z�+NR�i2Bz���'�6��� @m� ���W�7���Dd��;����<�GDH�Ȑ�DJĄ��$��#i��G�b��"6F��\�yTd��"\�
\�T.j:Z�S:*����
�� �+\���\REG'�r�IsL��:���Fs���q�<z:�� �p��{�����-{�\���-��2��=��3�� ��L�Váh�G�5֢]2�P�ŀY�O~+y8�u��<
+�e*
�{a��
+#�Z�~/c�`��˹h���fɱ�L�52�}�'2|#Ü���LyV-J�!
��w�db����R�,)r��'�?W�X�Xb''��
-&�%PKG�[̲����ZZF��%Y6�
5��'��R�vv̒+4Ļ�x�B���M�J
̐��&�l.@���藢���c��l+
eS�0��
w�/q�ƪx��h�U4�j��:��q�j����>灼����i06��@��0�{��]1���K%���5�e�dX+��aXo/m` ��ƣ�P�;61��2��������@��:X�v��p
��{���KO"ޣ�br�ϯ.��˥�*��4���q�~�d��%dԳ
ճ|�$�$
;�G��؍
�=��g~Iރs{�Ec
�����pnk*>'͓���|�]%5��!���qw4��V
��B�B%}l�N:��P�Bp�$
aI����v
g9��s��~�D�D�$�<Ɂ'���
=�����Q����%_BfjD�d{ =����YpN�'�)|FLN��3��,19�%]`a��
�B.�(}IN�P�Wʤ�8x��
d�8�D�u�:�1>�J�;�돟
�Ч�[
o��
��p���p	���p��������&����t;�1(�����{@}>��n ��p/���p_���b�?��'v�5Q�5M�+[�4[�R�
j��c��r}Ǯ{Gﱷ��EsS{�����^�
��=��9�כ��	
`.�A�F����hC+
�q�����r��C�H_i!e�W�k����2[�E�B� �;���ɳ�t���Uv�
Z���+�~�~v�uG�M���D�]쟀F3��A#�b�Î�Z̙�m
e���|��??�[�#(
F��XI�
���5��h�H��KS?����(4�H�
�И��9h��b4q�R<_�Z��ق���5b�.��@dP��+^�?��jF�
�ؤ���sb�guC�

� |��h4���)ڏ
$/{��;vk.�r�r�k���m���O�qR-Yۤk#�ވ�
��?�;@��_e��.hza}�D�����
Bc�>��
ر��lÎ�ر;ꔏ�<�-�zU�����v5��ZV��J*���T���
�)W�
��x�����+�>hv@��I��y
_b���h4���ICg�V)�B�^��f�U�l���l��F-n~T���Tj{O����Ď���\�봷�
h�����h{��N���C�-���U'���5v�k�}?U�V���0īܐ�e�-5L�bC��
f��a�J
�h��*�w��\��*v:�"��*p~�9.ϔ�bU��n�ܜoG����E��چ�{�[���E���h�s�V�Dh��������_��wTb
���-pM�<�I*v��"�
�j�[���Vj��F�toP��G�6]T��}e�~֟���h�<w{a
m~
-��*�e��AKM&Y<���u��6k�g/{�U�� ��
�<�X����^�땪l�
e��SF� [...]
�)
`���|o��|�j�o��|�5�]7�{M���R��@e�
U�_���%j�_���OS��&�����*%`����q�*9��݆�J
+���4c��i3T���Bl)Ɩ�� '�z(+�_A�J�Ҵ����Gi��498F�G(%8^B�5.$U�!�Jz�@��������E��vZ�þU\؏`}ɩH��L��
E1�c�ll�����wpӔPo��kRXg��u�����Wc�(��%v
�1
��i�FwJW\�<��\���*�����E܄���c�I`
,���b��%
�ұeJ��&w6jB��ƅ��؈0%FDjLD%D���o+."F��
Wl���
��S5,j��F-�;�
+
6oR��Q1ѧ�
��
kP���V
b��
+UPs �Qlz4�>��D�(9�I�Q&�1�S�9Dq�p�jdt/
��a�44z��t���c�-M���h`�yн\�g�̣�:�0��+*"�EP�E�a�eXT7�(
+.ǚ
b���&Z���q_c���5֥�1�x��X�Ҩ�Z�M��D�?	����\�{����������0��t�^���>|߂���3��s��1�TG9y�%��41�W�1~���P�ŌV�1V��$ٍ6es�[���2��͔-�WJ3-W��A��MJ��`�?f���r��1�
6�
�k`T�
�7�8���b�Eq
g���O9�����+����h���`U�9K��q�&�(%a�,���p���F�I�JH�c0'
�+�
�
	�?�:cx#�%S�3�=�|K!1�'tTN��쉽���/[�P�%��5)J)Iq�$[�����d�-��`�.s�\ŧ<+SJ��M���2�Z����
�bS
�����I����	��Q�g[�)#�Si)��Z�d�Q�5D���JH5ʜ���4�Li��K+R�m���9��-Qtz�ƦoԘ�Т��K
�j��0������;1U�e
��
+�����v~�ۘ7m]���Č~2g
V|F��2��-c�Y1YVEg�56�@c�e��h�K�����oPx�v�e�

+��G��
+�r+^e��ti)̇��

��߶L<G3���L�^��魘
E�iln��r�4:/N�yE�e*ܑ�0G�F9��HG�B
+���F�o�C�N#
w4"�'����V3u��J��E�Hg$Oɕ�إ��v;�SQ�}9��"
+V0\�
+�5�0F�4NHa�F�jx�D�kX�
-�QP�

+,ڬ!E�,�V`�
+,`r���ȡ0
&��2�F75���C��1A
+����

+)��%�
+.	Ұ�P
-�RPi�KS4�Ԯ��B
.��AeUz�l���~��e�j@�~��~��75��
,v����)̃r4�!���Rr�
�:��W����^A�<5d����Ӡ��z�<X��a��d�3A~N��;
��,U_g��8����^�������|���[~]=��^�ܭԡ�K8���"�E;
ms��=��&�(���UtV�9^�7���T��we�zU������o�E>UvyWMP�*����սj4ʳr��U
S�9��9����~��nբ� f@	�p<d���v�t)�2K
+�.�ϕ�.�|�������\�`�����
+Q7W������e��+_�]���5W
\�����
�0���P}A����n�w�)�a��9S����s�l)�
+}t��F���?�\�I]j<ձ�G�k��]��
5|�k����r���RKS?�`�L���5���`?�u�]�	����<τ2G�3�ND;z�4j�4t1���].�<��Jɣ����3 �{AO�<�j�5
Dk��6�o���@�5�����<l��
�}�r�
�NU�Y���M�-\n\�3�4l�+�>���WK�X�N/` ^����

���@
���8���)����a3/�f���fl^˹-��~��**�uv��4�{����W��n�u�ٕ-thF�t2�K���`
���P��y;��N��� ����n
��{7��M.v7��7�\�ĵ7TN��(W�Rj�����g�p�G�˽_���&h'��?�m�M��^��!��A9�18�P~�!�0q�� ��G����BA���l��p.��|�������7 ݾ\��G��� 
�x����`K:�9:A��$'����1
+�G
f�:GM��h�I��
���ކ�* ���]��{�
�.���C�vy��H�8�ZZg�8
�U���|J}��'�|�/������F�����k�~��E�o#v{n�;tk��`�3����?M—Nñ��=��]��
|�m-�-��M<�
��W8�/��t?���úB�9sI�����m|��y=�C��魇
+Џ�
F��{��o�k��:��K�����k��O�B
��<���u:�����=K��[Dp\���џD���l�AOЕ��p�@���F�=+�1�ɤ�I	*�!q|@
#���q�8��մNj�����B)�����
o���d� JO�X��WGt��a���(��V2:�h䳣�:F
G��q�K]k!�����*�Wm��Wx�vjgv��
�B��������m1<�{�/�H.ΐ����}�"�1�++�Y
�O䱜L��Y�v�N��A
�Túu�LM��&�آM��G2ӤO����<����J���p�W0`6�`�`6`����
+$��&!Is�
M�4I�&k�f]zd=Uu������ӎv�6�դ�Q�ҺN�:mk�U�v޷d�������z�����{
>�I}�R��/���xW�%^ս���ŋ�7��Zʥc�:�������\��G����&�dQ��qX���<�pz����}��^��ݐ���s:�����D��v)^�V�Y
=�HӨ5�K�H:ҩ�	���.��f�ƨ4&�$��^���KcE�����i�;�
:��p\'zL�}L��5i���Tx{Y<��򔞯+�='�$�eK�D�Y���5
ί��� g�85��0w����k8�vǢ�}'G����uW9��I�X��c~ξ[�c_��,o��������S�����)z�(�]Qx��!�˷�'&�s�y�[Ʃ
՜����-
�����
��
p8n�CqS�7ρ�E���l8�
�yn7<�R�����_ga���4~�c�+�Th)����_���4
3	1��7r|S+�"-
4:8��bB�	~�&�;a���YL�fW�N��#�(ۓ�2�t���יI��t�L��Ƕ�O�J�|�kz���JA.�=��yJ-�爼
J6p 9��\v��XJ�b1���R�YH��#-���si#̦M2�>�t�S�	g�b"�㙏�5�;�e�����2��|�+
+�O�����	=.V�%?{�ewV,�Y	,de�#���l3������3��a*��pN7�9��nek�4�y
���g(���(�F�s���P�;���."7)��R��.��JŎ�].�%�Y��
�ˏg� �m��
K�(�d���X��ѢV���
�2X4Lq���턶�GIP��ݦ��2=K��e�6�ҿ���7�Q׾H���
�_��Ny�����5�K�/Ib�$�SC�rM6�MN�J����)�&X:@w�8]e���o���
�s�[��<����7�C�_�k��ҝ�6��G�
���Yy�ҾLh_Fͱ
��
���3��k6�T�mq�ei�oi��⧣"D{�(���U�h�:D��,
�xlO�}�fۯ�_��\DVyF�W�f��/����k\�2,����'X�L�5�����v�
��I��M���[��a��S4�,�d���
��+48�/Q�xK�E��Dd�'�{�VwQi�>� f�<��a��Q�S��@M
�5���x���K��+q�
4;\49�p�v�X;HC�$�u;p:�S�<Em���q
���^���?���pF����L�W�uJ������뗏����_�ڜF<�T���49����P_C}}Ά���6��h
Ǯ�ƵL��$�M��5}
k�wůğĿ��"�\��F�ŢKy��z�K�����q��䊧ѕL}SΦBj��p4[�7�Q���݁�݋�=F�g�J�
*Z�ci�O<����[~���/,��*J�R��:�M%Ҩ�>ѩ�6�n�5z�q��mI�ޚNuk>�VֶJ��
T����z�x���#��f(�-Q�[�仗��G��~C���(���7���_�eJ�������"(��Y�R���Z����
X;�Tv�Pљ�����N3e�Ք��1�[(���80EQ`��#.����x�����
�O~�S
+��U.��.HgI�*�1�'���k�*�j;����ʃ��(��`KO>�=&�z�(쭥������z��
M��Iv� Y���
=DF�ۤ�~&~OF�'d�D�wK렴Ĕ�DP�K�I�N���A����?����
�L!w(���"���d
U�9�@�p��A҆GI
�#yd�GΈ�$
?K��Ż$
}����*wJkY�����E�H�M%Zc�U�V����Q�[cȘ0�6�H�D:)�y$O��y����Z'�$��bcx�M��ćOb_O7��x��G�?#~<Š���i1"�
ѡ5�U��I�J�Q٘�U��!}z
I��$�m�8��Ms���`�/6���8�e�|/������������H��u��^d��D�~@��c�L��<�0�"�"2�
+*�
��
5�"(Ȧ((��	(8*
+�+��˩₩
1n�&�D�Qc��%�i�[5�Ǧ�MjԨI�4��4�>�99=�Ǚ�g������}����T�:+�+�
Hϖs��<r0K����5}�ŀy�o�ԣ�M
��Y��j�%H.��r�D���C��f�\

���2`�]x 
kت頫��g��ȇ,
IF;��9�X2���n at 5��k���E��
r��A1�x-��Xޟf���ʋ��g�ȭԊ!+Z�p��^�����9��
+�"��҄9�a	9��Hx<��:�W0���\h���t6�|6҈��)m���4
y��x��8�l����0f�a[o����=�oU�fd�I�;��}Ț�M��
�Q���'��f��R�gx��m��v�h
��?v���p���M�᳇B�C,�1�̬������n��s�ZsI�t�J��k��9r9�k�_/7K4�v��'
>�'�'
-
<hi��H��i��?:^�m䤍k#m� #��HG�&���4�xO!މK��yp��z�5�$�/���
�#���0\�!K:NL^'&'�I;M��4�o��i�3�tΰ�ϒ賋�X�%g۹O]���
J6e%9X'�n�L������
�%��x
^B�@��H+��P༫t��\"7�eP�?.Ӕ}ċ�
+�y�d_�A�zN�ye��r����r�^_�j`}���s���à_�2|W�܀�N�'��
r�1�|� G�������|`�� �y���;��x��`�<��g̘�)Wߨ�ٴD_3�=a�{Ĝ�%s�&��Lt�����t�S�]��?��?��?��'ܽ�ou��wp
.�]N ǧ|�����i�q�衦2)��s�˻̗V�>ŏ;�q?>Ə��q�)�S�&�ժt�����"�_�u
�~�u���y����z��YWz��+��TXG�O�~>�/�~������طb-v7R
�(�=z�B>C,N��)V|���^
�������)<R"f v��'��
Bk(:�hL�~��Q6�OIa�To��S��~-���]����vف�>�P+[�]G���9DF�x��!�
��Ng�u�%y��ab
Qh�@#
����`��5��2yi�>ZU��
Ə��q@���V��f*�%��cD�
��u��X;��;�
����M,�$ǩ�W���5Ġ1
+�㱟��LV���<�H����f�؅;�I+�����o�[����m${
���
+_�v��'�
l�S�#���8�
ia��� t�����N�r
+�3��l4�?6ᇍ�l�>UG$��o�V��*V���[��r�����c�գ��_�K�s��4��g
[{/�^���g���	A'
+��h�Ec)hd����c��)E�
+�����ZV���,""[�.�v���._i��s�wr�#�
�kG�>>wp���e���l��w�U�S�Vw	�J�hY�G��%Vu.�ZꚢZ�L-q��"�|Y܊T�V�j���Z������֤y�-*s?�R�wT��c�x<Q��9�;�đz�㽅WMظn��
+Vz�iew/�w��R��Z�1HC�F����$��LU��Ux�j�g��<KT�5_�^K5ǫAE^�T�c�
+�_�,�w5����������}y��J�'m��|��^-�,�]dt�Bo�x��ۤy�����8Z%�x'j�O��|�T蓧�"��P��b��J�{nUN���������S��Me��
+~{''y�
0�
+ at Cm
����S�/��]T��K%~�4ׯ����*�����5��X��NP����g(�?G���P���M�cUf�M��%�ئ���J
���A���smױ���Ā6lE�泊�r�)Ɨ9�2;�C���(?��f�����e�TV�8M
JԔ�Te��Rz�<�������+e@��lФ��J2
��J4]Qbȗ�
�\�Ն�.ڍ�iTC�s�_�/��2#��r�{hZ����Sfp�2LQJ7
S�i�&��+�4I�!�������8�RB�j��Q�杊
;�4.��
z��n�]���F��f��*`n��ˣ5�!.Yfe�z*=�W��>J1��l�D�%�G(1,V	a����Aي
/и�r�F,�؈��l���CuR#�~���=�;iAo
m�
+��1� 
+��ǽl�����09�C�"�J��	�����(�EӸ�ъ�
��Q)5U��kTt�FF[4b��0d��Ǽ�a1��|���`��!v�
�S\7�y�a&�po
+K#.����M	����̣�>�0�dQv�MvD�}
�}G�EepcĠ`Ԉ\ �Ƹ���5q��i�Fk��U�ظ/MjzbNs��5M�S��Tk7��IO��sf`f�{�{�����K9�Y�eI�PfR��II�HJWzr�Ғ���R%SJ���MJM]��j%7)��MG�`� �������A���,W�}��́z��@��y>�9���J�T�q��� ��d2��ј�T�I)&���
+`��ҧ)1ݮ��E��X��gޭX��`>�x�7�e8نV7�m\��3��0*��������ǔ��.S��R3�(�<NI�(%�'*!3U񙙚����IeP�X�
M�,T��S��+:k���+2�,���=E[
�l"�*3�k�6��5��C!X!���Y�
7%ey)�jP�5Pq�p�Z'hBv�b��5>;[�9%�ʩVd�LE�(<w��r�Wh��pH!y��Bs��C��8�
���hEc�hTB	��*��'cW��|_�/�WTA�"
�Q��B��
+-
+-,THQ��5(��YAE

+,zN�;�u����E��_�
+�Q`�C�E�
�����B9���<��\��*1��U2R��
++3(�,H��"\���d��P�'��
+����1M]�&C�3�xQ�*��I�V|�Q�w�W�@�2���z��h��KUPy0	��"�_���:FbUB*]4�S�վ[=Vc�C4�:Z��x�1ȣj��)�Z��4ʻv��j��Y�~ ���<����k�C��,d����
+(��bjP*%��;&KQS��)�N2L!�z/��� @޶0yq�yڒ!S
��۪4�6Cn���:�b땳m���������\�%ܕ��jG�q�ـ^5�B
k��vj%�{]+�am����ly�=4����r���
)g�D
���d�j�� v~d��VjĨ6b��3|��9w�Z�V#5��YoX��h'���QX���э�7I�����]N
�����P��������J�[)^�lX
=��m�����|�!�3�]���
��rȣ���zf`�>}t
����j�K�4l)
w)
���W��e�
7�v
2�
l�
{Emg��6�k|�m~sn����0�(��z���8��E
BװH�~Rr_&�,��K8�p.�+��*.]���tq�������í�A�aa=��
�G�
���w1�]_�5
ͩPF�s([�\�!k�\�>�Z��
i�Jɩm�*si-�䱎<�S�
Q��
zt!��a�GO��>j��b��`;��6���{[
�V�f�6S�D�
E���V��Fr{���	��6xh���$��2����.�c}���c�����c����}
���ǹ�} 7TG�KH1��Ia�1�y
�5�빑�o�z	v�^x���2
+�� �� 3�#jr�K�� 
y�3�
6�
Y+0��;���g6�~��K8��N[�
���u�?��E�\vih
2 at o��!ނ��18��I��
59͌�#�
�
</�W/R�K
ե
�e_&��*F;�Dj
��ǒ�7��������pj���Y`��\��
�U�
+���\eN>aF�ї�2����gl�
�M���V�żu��ؠ�u�	<���=�w��'-�]U���'��m���u���}�����r
�uv
x�a���}�k���}�Ӹ�_�C<�ω���
<��74}t�WE�/JD3�|t*�-6�������K��A�N�w�}��e
�E|�y\�Y
"��qyW(���
�2�9�?9<�{�=�;�B���Dz�QD�J�^G�t�<ΐ�)��)y���|�<N�B�i�~���N��C�ُ�<�8�$�����
����S�%^�
+^��8��=�t2��a$J�*"��y�I_k
�[��X�����k�
z�
�*C��o�B�ݺ�](�Du���x8�}h��ș�y�k��!~2�f��]ʶ�$v
�m�=j"��.f
�k�Vj;ً�d*[�j37ѥ^}���':�<�����
�ZG��H�|�?�ÉG|#�-t9�إĮ�V棏9ݬYĞK��]B'����bB��Y��
�z�Z7���D�f�V��-7м8��
=���vj��=�E��E�⛈ja��_B�J��R�z��"~1[��R:ҩ���r�|�.t}�lc���+�78���v�ce�+ڼ���
Q蹡�MEǠ�F
��J���B!_�I4&�QK�ј��<v�T�C���	"�R����i�OǛ�����f�8͑v��u��>X��5�<�\�i�0w�|��G'
�X4��HG#
�|4J���=�ͫ
�O����[;i�$Nb'�'�sqbױsq��iR���M���6��Z�:��um�U�
]K+T(L\�Mh�	B�6��&�B
Ć
m0ډ3?�?~:�w�}~�{���������c�c/��
�V�0��]�b�
-�|Q��_�75���������O �op�}��������$��1�s�4WG
+
:�kѡ\����i5ϫ��~��j%?�L���
F�X0���i�*��\ъv�i���f�/hGɋ�*��ɒ�5Q�&����>d�
+���e�E���
��i׸?�-Ye,���-5j�Ԫ��J-����ЬyC��
=�i�j�׌!�
Ɣ��iM�5a<��Nj�Į1]ר鞒�ה0����F,Yڬ^F���z����Ч��}�c~��,lZ�s��Lf���1;5mnД�E����am��i�2�1˘F-�Jn\���U
c>�nzRq�U
Z�j��u��~���?��>�.�/8�l���>X�z
{�f,3�qږ�)�Q)�&��
��i��U�֦�-��������,�x���w��n�m~Lъ��k����s��xUa��
+Wާ���y��E��i�t�-��<�3�M2�s3���6{��f
��5dw*n�נݧG��
=�9b�V��r\��Ym��(T����O�����5w�U�:k�oÇ�g�Z�I�����"�r=I�8ce^Fː�H���_mU��P�Y�^g��8[��R�&���Au׎*X;���Eu�
T�����o��͉[�=�������?�kh=��R�
��io�ޡ�yd,}�<E]E\�]���V�U�.W�:���p��^ߧ@}B��I�5�R�g�ZO��xQ͍���������o��;|BVW�9��4�c@
+F�j�g�{�xr��)Q�cR�Ǧv�CO��<�jmlS�7�oT��!57���<'o�}'��]P���[�"w�w��\ ������i4`?[��0���e,aBGs��F��6��W!�ϩ&_��->�TckD�ָ��Tߖ�ۿG.Lj���j7T�2|[��/i�W��?�ճ�@s��u�~NB��/
]�m�|��5��j
���RC�%w{�j��c@�
��霑�sE՝GT���*�^���eٻހ_p�7����ά�濏�
�Y�jN�~�#?�����
y�J���
+ZU����V�n����T�
TeOL���CS�-is��CO�,|
�$[�[��&[�=��>Vy��54�И�V�A:��R��#Շ�}
rn1�*bQe�\�H��nU�����Ce�٢C�FS�]�C�;'K�̱{�M�b?�9�WY����7�3h��zϣ3�N A�ۄ%n�໣RU_�*�KT>`RـU�A�6
�j�`#�e
�
�)>s2����/�]��_SI�Ǵ��0� �:��
tf�|�0�^
B�-��'F��)ՃR��u�P��A�E�D�6$�dL�eH��K�ɘJ�	'w�(�[���*H^T^�r��*7�C�%~(�c
Fg���J� D H�~��h����O�b�l3��ɘ*QIʤ��&��*Lժ ը�T@�a��تuL.����EL�%�*P�l��܎������3��%
C��e{ˇv���LJ�m���<I
6����b���3K�O���$�����f���4/��	�xi��4ET��i�8�+�{�@+����A
�$�Vb�s�8��c�F���,ڵ^��ԖK�%
�2�~���P�p�g��3,l�?���
+Em�$P�f>ϳ��?�ݿ�}�"�	��JH��%�:bv̠���RѰ$�H����@����p���
�h
Ĉ
��`ּ�>�5&ym
xy��X{�g(b����5��
s/�w���)� 1WΣ���0JW�AJ�c6��ԔG1���	�#�u�ơK�?C"<˚�eße.��o-�q�3<�{>M�z�mx_Sh�B?��ʹ���
|���5�[By��=g��®��r�'����oϳ.�0�g��K��2{�9����	�2{�2r����{�������	�8�|oa�<�!�j��
]�q�����8zlk
=�?4��W�Ә�녘r
�
����D��
��
����6B���4-�q���EUs�wJ2�1�sg��
����t�@5y�q�_!1&@�� �p
7�" � �V�}Z�V[;�S�n�U�u��^�Z����Yٺ^�9�����g�tk��s�Z�5�a�
�w��/���������>�ׄn�Zr�1��x
v���� �fK�0�4&{C����Y����i>���>椏��� �~��q� �>�J��%?��A۹B�>��z�Ƹ%�9����j��]���
�c�F���2ur��9�A��Ca?/�~곟B;��i��8�'U��9@��m� c����A�g��|�FW�(ćW�$�
^�~�E�a{3ظ�!'���}�q��=/�X�Rl�
$�I�p�.G�&��&��
�ҝ���j�K�t�>�o�K�����O�l�H��1�������ӝ��S{���7$�

�ۘ~S����� �����M�̫2ґZ�v�>����
�Ϫ@�V�O�S;�tF=ğI�����
|�����ݞ�pOѩ���y�
�e
�	\���0]׹
��<w����2\R��@w^6��2�
R[��(�ד������b
=z	/��|
��Q|
a��xi�R��r��_��G�KV���L���
�v,t�rSk�Ɛ�2C
�K�����@�b�� ��~M!�t�����(ޣ�l"?�Z��I;��η���q2���n���?Wѽg��@Yk�@nj�����c�i}���ɼl�>�i"�'k�
���L>
�R��X���f�)������'Z��:���%t
,�e�v+�-�H�|';��!����.'v5���L�qTa'�&3�i�B/��mt9.�h�XI�dn9��L��?��E����v(��
,����r��5�^q�O�Cr1��/$v9�u���&�q'�����
-��[|c!.��yds.3:�
+��O�n1���.��̓�ي��
+��U2�E|�
��$���E�/�"|,��||���\�q7��˺������L�OgT��T2�Ce��O���8[�S
6��[���.��R^��/i8:4��D#
�<4��(G�J3�1�y�J}�P��\M曓����T��p�$�:���������`�v�� [�6��
�jV����
^?��!�=8-:q���HC��h��(f���S��wԫ�Mԡ�AS4>�.�
Y�����2�a�
ݩ�Ѓj
+=��!��v�A@{���ql5[�=0f��O�5�3\�6��;ܠIC�tg�U�aɚ�R{X���i���
�Tk�h��7�9|���u�q�
5D,P}�J�En���
��<�j�I�
\���hn8z�`�
�fB7�]<��K^:�C�n0j�!F��x�58�l�P�!G���1���X�:c�j��m�����Ue�����Tiڨ
+����I��߇�4�k��#�[c#
;zy����\�s,k��4G���
�F�I
�8ՙ�5�j�9K�f����U��Q�Uլ���E��3G%1�Tl���,�T{ ^�/�=���
hZ����W�L����
Z�1yހ�:��Ɔ��bT�%Z#-6UZ�Uaq�̒��X����*��Rq�ƍS����Yg+��J��U�m�r��);�%8
��:�0Z+М�Qt*��Nh�1m���y>G�BTa�T��,�5VŶDٜ*�e���/�Hy��&�)7�U9�]�N�%�}��Ik���2��*#��\�g�s��ó�֣���T�=����
��W�|$^h)U��b{�
+�F���ʳ��'+מ���le'��I.�;�FY)��L�T�c��
���|P���r:��#�x>�3��z��h�L�9��eHc�_#yV���R��!�:
�q��q�)ˑ�L�S�,��yJO-QZZ�R��L�#}�R\
��z at I�Ge��Ǖ��6|��W<h5�
ћ��<�X�uP�u9~��� /^�N���
�I.W��\6��R��pɑ����"%gV*)�A���Jt�(�=O��U�y�/��G��	���}U6w at +ј�f��y�PP�����ϼ�L���C����D)�3BI
���iJ��(!ۧ��r�rje�mӈ�)�˝�X�}�xQ�w7
U��
��������ؽhN�%i��� UPE<��r�{ ����H%��o�-?A�|�F�g*Η�X�__�b
+�*��KQ�2.���T�
����^pQ��C at KП��Dڑ�P
�P>ȅL���|�}�^��d+
+W\�Q��hŔX]����tȑ�_$�4��(c�,J�*�t=�T�����O��\�K�%7���ME�
�F4��
� �g��R]�AQ�g��]w�EЪ(*
+�-,�����
� 
+B��
m�ă�D3i�F���Ui;1&ͤ��N
k�
N�c�̴�L56i��֣�c��,�d�?�Y����罾��}��F�L+�����`��WJ�Q��dv|d��ȕ�Q
�Jv���\*��C	�~�;�+ιO��c�q��X�����^8V±����`>(� �
���*i�
��d�_+�;IF�YI��J�d���T�'[��y*�u)ڋ����'/ыp�| <�<�_h���&����q;(�@
1τ;�~$J�
~d����ʼnJ��**�@0�
� � � :3��"$�� �*�� ��!�y���U��Rx�P	J �l�L_��qÿ~L��l�u1JXbPt|�R.�Fz#ì�C�H�	��
��N��j�ų# a��K�gpK-��/p�
+PH�9ĜE̓}�O?���/��Q�_�µ�EgKO
�F+�k+:w%�K�����F.�(\/�Q��u`;ϰ-�D����M��T\~�vPB�s�y&1O	�_?��f4`��9��V�AZM.��?�P��px�s�{�E�z���3����
r
[d������!m��\@̳p}j��Ϋ)��$C��7�X�l�a�X���?X�6N`���LM6s�6�����U|R�M�y����Sp�w�+�TQ�"
͡|���ի^3uK	a·A?�

�XWY<���e0��":�����1�%7����	p�;q|'��q�������L~x�Թ�|���Ӊ9c5�=���m�p>
+�����q��/�O�=��r�,
�w��}�q�K� C� M~���'��q~g���<�>�,��O�
ڙ��zb/��k��u?#|a�g �D:a
 /�Caq0&�X���k����u�7F��4�(�8�
!��8��G��䠿���&M���������
s�A��
";`4"�hu��&x����`x?NsfO��8�)�������w	�/�:�r���΄;��M�6���H��hD�9p
���ɈH#��88r�p�u��\���,b���%�%
+~��O
+y��.����!��M��w�A��Q���j�@�|�ν�:���+�OQ8��|�����H���❧I~E?"�sp����h��B�p;�C�-�>�U�n�3o��>�$}����|�Q�X5���=�:�7j
��~�{��
���=Hj���=�k?
+�Ux���3z]W�]R�t�+p�k>�\P\f�Fi�3�
�[G�P'�^��uz�|���:��z�:~���C�E�
�0-��{/��J'i�
:
���A�� ���ƸE���+Z�d$�����,����%ض㷋�\D�����K��è���!�A���6���
�]T�y�xs�cu��9�/���pޏ#��N�����[f|�a
+Gb��]�m;V]��a;��l/�n�v��S����<��7v����#��dr

�E�A�+|2�����;�1�7bۊ�t�f���.�v#ʎ��^�� ���DZ��=B]��F� �yB�z����
}d�����%��,��ã%2v������b�\lQ*�'a{:�sυ�.#�U���{���~=�7Q�������By��
��5d��������f'�ީ��~�.�=��$8#��`;
ۓ�=�b��eد�~���
?:�C�ZE���Ko�����
+�rz��S�L��9���q,���Ǭ�`#�v
�����pF�H�o�~:��b&'2�B".��
+�8�p��@w���tұk�����uԣ�j�� �.�����3�H��x��U3 
2�_	Vq
��G�-*
3V�ÑG&
��ȃc
�e�T�� 
<�x����k1Q�舅��K�y�t7��͉w3	���ùs
W;#��k�#��w3�p�5&Ū1>Y
1�G�T5I��i
+De�=G����(�\��jyc�����m�+�U5q�r�
�?�����'�����L8����4��^���z����J���KXk�'�/S��IF-6X�3��k�,�!K.�l-H�WMb�����H�Qu�O��zU&����.U�Uf
R�q�JL/��tBE��p
|�'��6��\�p�-�������^~w[��6�2�UcJ�Ӕ�j�T�M3Te��|S�*��*7W���U��V�㖫h�jͳ���U����k}Es�o*��!���=��pm�`�c
m�zk ���.|q⛃��SbUeMR�Ţ
+�M�I*�NS�5[�ֹ*���Z����S�;�Iy�W)7u�rR��٩O+���f���L�9p��{HC�����
+���U
|��w�*�_��Ԗ��T��RST�:A��575Ksl�ʳ*�V�
D��Eʞ�T���5#}��2�.�5-cD��55�,��!
¿���4`��$�
|��e��}��o�Jx
 b	I���5AI*����;��œ��V�YK�f�n��V�b��UQ���y�U���ۺ�uն�]ﶹ��]����n��9�	d�
��'y����^������z|���*|�̍W�%Ye�ty-Y*���R O�G��r��jU��(��Ek�
+&-V��_v��l�4�~PV���g�~�<�mYm���j8!
:�h
0
L�ܫ�J�)��JA�� ��(�ͤB[�
6p���U��J����kRA�����s�R��~Y�;��|Vf�)e;�ו�%��?��
+�zX��]�
p
��U�[(�p9&��HQ�#]vG�lN��N(V^�O��S�k�r\m2�{��^�,�&ezv��yF����=�V���2��h���oh*���ց��SJ���|�w���I��cTn�I�"�r��e.r+��\Yŵ�,	�TҪ������)ݻQi�o��
'��}�ܔ��
���R��Sp� ���@)>”�߬�8Ki�̥��*�Pf�Y��I�(/Tz�T)
�j�hQjE'�U�o@ɾA%����;�Ċs2T\����*>W?�a;���R�ԃ�|ǤJ�
pϊ|�THپx�&')�ʨ��Li�ԪP��*����J�nRbuD��ŚX�Fw�lU|�^�U��	կ�+|�D�U���ݬ�m�o
���W
+<��w��L�F��j�V�����J�e�۔�wi��L������@�أ+�,�X�#�,�~o?�c�-�b���f���6WBQ9(.��ÝW
-��RZ N)S
24���`�⢇X��$H�)Z�Bh�B6��
�)B� �&ȖD$4�>������TP
*1Q
+<|.��HF3ńٴF4P(N�i�O�;�J�N3�X3��

.kᡖ&��lAĵ�)��0�(��4����1���� ��{���$f[��3����K���7�E���,^�m��f��v��
)
�
�#�#��ψ�v�l���/�
d��x��:��4�z0^o��
�Q&R1��&�J	ȵ	�����N��y�=/���亭�M�ԃ�
����>��������!�g����}�6blS��|�s>i�m��d�7yp.�]�6��E,`��c	5Y������Q�>����9�f�q/�r9br9�c/[��y�fg�0��%�� �<R�I�Fx��K��� -Ƃ��+��j��'k�cmt�e����g���3���~i� �'�җ_c6��QaR���k�
�����̫WFx
K���(��
&ρu`= ,�k��	,�����A��R�0/�A�A�n��>�.m��m������,����o�:�H��C���Y�k�7��f-�������Pl
,�`�'�&'ߡO�Q�!zt�~��
"�'(�~����sbϫ��5��*�]�Msv��,!�{_�3��hl�<&Bh-�TlDŽ�0 ň2���=r?F����(�8
+����a
:t�Pu�V���r�4�%��-���|��4.�F �&�1B�Jg蓳�q��\�����E?O��Ar�3��!pF�p����v�R�#<�+�;
�<�a�u:��Q��x
\ ��(�.�A]�6��������}f���J��#�+�{��^��8���i����
=s�yS~}������=*�:�+��G
�/�P]Wiԟ�%.��~J�~B�.�i\:���op����s0�^/�c��_������>Q\f�
+�4�G��5t̻j��L�?~�ʹ��y
-�J�<Cs?��D��P@��L��:�	�t
k#Dw��Q}�;1�?������R�1�
<eد%�Sue�2~�ƏS(��
X'P��84F��~����6�f

�s0>C��xЙOE������������h�4�7�jvP�}��hũ�߄�3�,j�i��0��)�(�'�
+���L5���{�� #u�̼M��`��pEW����h���T�՟W<~�`;۹�v0�Ŵi%��m�x
}�
%��rǘ��
as9��j�j=��7�{L`e
��R�5�:�%.�Z;�����}��Q`�O#6���Z�m/���u؞��{�݌�VlE�ݥ�����
�Te�� ��е/��i��Vқ��b�X��������1��\�G.��t욱k.l{�]��Z��쇰�V+�#
�]L�b��
+Y��<H����0�
g����?�>:��1~6
����ktv
�5bׄE
�g����?���R�X� 
a�2)s��n���M?ӳ��ٮ:e��05&9���(�F�����d�}�{���\,�XH.�&=�F�ڍ��c
~t�� 
!셱ۦv��,�n�/f��:��z43Ua��K����H}$A��+oX&�fp���:9/:��
jQ6��LC

8J�dR��r���u�a���ĉc;Ǘ�N�8N��vlDZs�:M�$m״	��K֭�b�BJ���A�V�S���
�V�1D��m0�؀�A	h*h�6&.ZQ��PG�'�e=:�����������3H�ì�1V�*f��젗���
�c%����X�z>���A4�lsG�X
㰔gKH	�����
;�;Ѩ$� :u�4���2�t���o>�.&�	zg=;�6��%ʯ�c�³�x/�U�|��8fw��
��cn
������i��L�"��.��|�5ը�\�nsL]�:�Yuv��0����-W�x�Z��(m٣f�A�,ǔ��V�r	�����v���M�{�R�a�� G^�{
���jSW�����K��VZ�liD�ҸZJ�J[;�l�WʺPɲ1%��(n۬�m����j�S���"��
+ۧ���:��\G8N
+6
+C��C7�]'��c�aV��DY�]-v���J��~%�uJأj��w�)��UԱ@
�1E��(llV��G!�~��*h<��G
+W�^�k���[�K�Bz��N<Y޵K3����JV%
��K1çF#�#��Ѥ�3�zg��C
+��(�Z���p�V��>Uy���9-�粼���u��7�
�;�\�MZL�3���v@�gi�%���r1O��5�m
+�
ջ+rW��]��'�O�
�W�T]�HU�+��ީJ�.U��q}�����\�Kry���r{oj'�荓��@.�pm�4�$x#�F�E���[��ת�ס�ץj�WU� D�J�[զ��~UT��㟐ۿA����
|EF�pJ偋r����P��Otk�#�Z�!��kR��]��'D���~��vy�*��婩��&.W0#g�G�څ2j��<4)Gh��/�ò��RY�
����cm����݆]
�
h�44O#��"���Ye�P�P�\u9��r�Wɨ�Uy}�
�4t�
�'[d��"kd�lUidJ%�#�DN�
*��\��d	��Կ�EسA�,$!�=���P
�<wG�r6����.G�){�R�h�ʢaY�	���T�%�Hű�*�oRa�^��d�?���*���*���vt�#�	����ih�Y#ԣY
~�}<�`�1���%�%m�&
�$=�$�U��SQ2&s�E�T�
+R��^��Ҽ�{��7��;IƔ|f����R��(� ����"P5Pų
+l�3A��4��lQi�M����
+��
���h6x�VLk+yt+^�o�Jf�%��b2� �cfF��{1u簆��	�Gc�r_ͳʤ�¶�c���m��������f��F���c���oՍ��Ƹv�
D��=d
�/û,��Ӯa��6h�&�5@�{?M������ �&��������|nc����� }1�G�x��a���)r�
�e��m 3���h)m�x7d!���s_C�}Y��5:%U��IE4O�8؇��9\�0}1B_����2yG�Q>
�ˀ91B�4B�6Lֺ�"��og4�� t@
mM@��m���ݍ>���T�𚱮
��ib�8d��6�cL��
�l�l&������q�c|-0'�3/�
�<~w�4\�|tz�����F��aɪ{Y�נ6t-#���Hb���3ı�8V�j�XC
�c�1�d�O��T��
+�3
�
o�c�e}~��z�����.hE7�5L��\�=5�-C�h,�I5$s��o%{sI�
��F�Mı�8�17v0&;X����T������V����f������H3׆A� !s���+��+�z
))"�ö[�/:@�n�dw�t/��
ı��v?��~ޗ��}�S��)
+�k�yR�{���꣯��s�"!����R�t{^sk^�n�h
+Ƃz��8K!L�t?I�!���q�8
f�
e�
ep��#Tx�p�l���C����N.a
0�U��X���R��|�������
�e��>oH
���]�)a�0K$������S��gX'�0ٟ����q��%=y�2����ղ�1@ۏ�k#��VR�+�{ ��@^��y3�xޔ��T'��Y{.o�?$�
��%�K��E&���<{ŋ��s�g�W
� �
�ml�}y��`�}ò{ސ͚���:Lm�`VKs��%O�,�~����c��c���l:W�� �{ś4썓d��ŧp����O�/y��C�/s�
�/d�"oG�G��,���~��~ͤy�I�K
��L�W��W��^/��}�_%Կ�,jg���'��ހ�
�Uf���yw?�6
sZ)�
+��:���2q�����Ӻ�{�Esx���q���~���
&̳�g��cۼ�8��m�~��v|��;�
׉�8i���M��鑶뵵��)�F�=��C��ݠ�$@��c��L
	��ILHC�C􏩈C�����$P��P����}�~���{����<$���%<����t~�n�+k�|>��
�
�ݜ�7�3
0�(_f�ѯ�=���M�gP^ <��?��QR�$�gH�GH��X��x�<	r�/0��{
>O�߰y
ކ����!���$�=�~7�V��!Rd
��c�s�e	�e:�#h�$���>��+x�y��K��+D�gt���������*s��B?�Lm*
���у�_��u���]S
�2�5t��������,���v��#Wȑ��q?>�2�S�{R�#��a����Cd�C����/6��k���*<	�3������ϋJ�\;�-�[Cw��6Н@w�Y4�:0
G���t�7��)T 2��d�	�V�9��
���-hm[���=�c��0g���!��X��=��G�G���
��x��l
'[�p�<��Sx�<���:Gϟ�#~���)�|��{�6��o

'��h��Vt�aE�.��U��F
�&�1KT���0{�l9O�.��:
�H��������:7�Ŏ������v9V� �]7��&D�n�,����n��_G�q��ɐ9�ߏG�5�,N�	2i�x��1��1v�1v�q|X��c
3g9򎳥-s]�y���l����.���G;Q��gYl��Q�� z
t'��]��C��óYI��Ƞ��o�p
�ͳU=���
sp��Q���ZyֲQ�M:,��������6rc�

e�4ԁ�6�ب�7��6f��~f��HՈj�x�2{����?���]��>��3�=�Ѳ�Єq��Q���ϰǦ!�[[��-&v�؉c'��
v�ة`�;����f�L$��G�S�\V��Y<�:�ށ���(�Na� ��<e�4���[)���3,�y
��[Tu�uU��j�-��-�n[^%{�����
�*8���ة�sI9�1u�V�u]R�u]i׋�Rη�R�u
'����k��c0�}�{�/e�Meån�W%�_EOPwT���r�.ux*ʶԕiU�;��w��}G���wIq�u����UE}o�{�z?�
+6�`o�Rc%�
A�=�R�]	_�L�:M��~��O9_ at Y_X_\i#���W�QV��W����Z1����c��)l^Q�|NA��#��_�_
�K��q{sQr�r�P後/E�u�K�!��A�R�G�d�TŒ(n&3;5K�kj
�(
l*ZT0tDfhEf����gᦌ�k2Bo�z��?u
+�7K�3A)<}Pᾄ/���
���Z��+r*�*�5R8
W(�Q0ܥ`k��֭
+D����=$#zZ��c�Ʈ�%�Uy�ߓ;�&ܒ'rW���{;i�`�R�ʵ
|��.����Z�����z�2cAbQ�c����2�e�u�&o;K�~y�Nʕ� g�9�_���;���\�ğdO��1��פ5j@
*P�<�dy�—6��-�ĭ
+%�2�.��>�|�ay�ji�ȓ*ʝ�ʕ
�3ݔ=�$[愬��e�pf(H��i����cc{S���P�2(�:x��$��!��(��*�n�?�/�UK�/w6$gGL����
���*���)r�
�F%O���9�s*�
r� �g���}-ck��l<K
�J��Y_R�o�(��f��g�2r.�tz�,�LY�H�.�E
_���"�S���DsV�Y(� 9��/�wo �K�}���>���@%�!��4����
+A�hߌ�M-]N9K-�u��ma���*$MG+],lj�
j���@���i�CeP���P�o�)�C���$P�n��N�S���!��6J�@e�����
4U6�]?M��S'hu>��[��w�4qu��:�@�z��J�����ʱ��{�-�hAz���<�2�Lr�r®Y�~���ΚE�~��A�!�a�h�66���@�A<�0ǀfq�&m�&А
��ឦ	]�`
ta/��)�q��
�ĮQ�<Hr
�2ā?B�;ꐶq��3�d��h�M���5��I<�4��ɉ����I��	���w�&�V�B{ƛ��!��]��a����6��)h������8�w�7�6��b��,
�x��e�s��n�Y�ݙw�]w4���Ս*a7�5I{�S���u����5�@�Q4�L�)t����e?~,��abr�a��0sq��q8S�
$'�����}���j�N
k��)�
e�A>�a�E{HY�a��Na�V��6
��3]� [...]
Pb
F
+*��e(P*�S�S
+J��/Pʥj-2� ʴ:�ڱj�
3���H�m-������ɞ�t���;��o������el?V��~��Y�pYKb�r�5�
c̉ջ��c,N����Y{���&Μ��&�38���]�p~�ᣴX���,�k�:g�HL6��}?�ѯ�'���	�v
?��m�I[�����-�����~x;g�r�!�q68�w�sΕΒm�
QQ]·�˨#
r�s[ � 7����c?}��&{�������v���dV��ĻH�����"��8���s��IKi�&x�A;�.G��d�#��#�h�^�e~��WN0?H�
��H�3�(�qe3~V�p��N�
�E�j'�[��ٜ;�nG��<�$�����H9��X<
�WU��~�H<^�W^ef\�.�
�eu�qD�I�N�
�ۿ�����^p�᳹��ϏU�6�K�<`�,�D$��+�5�>����>�ɿJ��Kb�&�>�f-�
|
+��������������Ol��������.>�I�Q��Aa�M���2z��
���2z���Q�{u��΢k~��8����	p
޿������z]u
q-����l�$.��%����~�u��9G�e�m�~<G���HOQ0'H�q�o���qt�x�=�;���x�y���W�V�w��3��v/�!^D-<��8�~8��9��:ΰz�A�4
+�)�w�&�>~|?�D�~�bz�":����'����~BiUh�
+^V�Xe��]��SNڟ&�h�q4�8Z�j%v�؝�lj�~��>�^�
��n��.�N�C)��u���}�v��!�~D�_�v���<���mv�\p�ǝ��;�v
�d`�IЈ�"v;�;�eZu&v��;�#��bl/�"V��c(��p<�
4�z"����%�kЙcp�_/;mu�i�G���:ў�؊ 
�@
�EN�A�{�;�ӱ;��a�rX��e��Q��Û����� ����r��W��+b� ���f����8
�S
�
a��@䩾"�;�=�}�
��ll�>B�~	���*Y�o���a���T�1�v���|*8�=���ط�{L�cz�\��c� Ql�z+�۱ݍ�>l`o6

�;������s�:��>G��NU
QuCt�
�~��1l�E��о��kپ�
Tc�	��~
���o�~���;@V�d
��jY�dg:Y
���G��-��e:������5c_	���;�~�σaWuM�C,��lr2�ژ��T2��c������^��y;u£��)TE
��G7Y���.���wm�k�Uh9W����J4f�<��i�S&���Tr2�ژJ���G��h���v�M�nY��m'�� ��dvQn��Kt\�iUd��~E&q	6qݏr�-e�/`5
3��
z�nz��W�n��A�A�
I8�p4�Q�^'����t���UR �Tx��'�y&@#5��Th�G<�����BV�a֟Y�
���:�l��<*�jU�TtG�ꊂ�
+���]9x
+�L�f�]e�\s�u���u�2�U`�Ү
t��<x���}Fu
a���V�B��/�|)n5�|j
+��j�E��5��&���(�̓���N��}J���|�T	����7+�T���,�Y�˲<�e���{�X�|xgq���ɠ�xW M|���(�*�+
+*

+�*�TH*�*
((
lW,8EVp���<��%�Lc�"ƣ�¡3�U��Z��E�
��5���xn�}
d�#�Q�Σ��_�H@�pH1#,ˈ��L##3ܤ(B�1��T82,�Q7�P�&뾭@ݓ�j#��U�#7��/�7�4�IhE�̻
�e@ҬQ��*�ˊd��pE����@��ht)d�4oW�\�Z�n��
�Yߒ�:(�uRn�pE5�
-��|��9�H�.�
+<7���%a����L��f at ufPa3$Ê(d�
+Z	b
���X���>y��$�;�B5�ur%X|�
	���E�Ί}��ṗs&�o/�E�̻,H�K}ܥx�#+�iժDb񠂉�j�����O˓�˝lSM�G�;lq�f�����܆i���	�I|H��bx�S�GdQh- ϻ|I�y"Q�X�+3�SD~��
+&��
y2�4Xr5��
9�g�Ϣ)���
K{��ca�q+�X³��Y�φ�$�/�"\C��edj(�f�s��I>�'ݲ�=�&=� #�U0�?�;���ӼMvū_nF�5#\�O&~���mX�fl�ؒ��!
|�|e6���;A+h�9�/)>�O�&�d\2�5
+����r73D

�V�:HJW	������xm�ǶA��lc�oC
��%K��"�K+>�|��pN�+=`hi�y׀)����ޅ��~�F5}fa��X5	�Z��Z�"�
+nUƱ�3h�:����Z+ne��J;�=��HYB6BIH�@���P� !Ѻ/��N�T;ն�K2��x:�ɇ�0p�=!����������?}f��^��L�R�p�φ��`@Vr����@�G�� ��A�w"0<����A! ��\�ŜԪ�X<71
1
�'#�h�G�����w_��C0"
��
5 m ṫ�`
�
�",B�",B�P�G�b��P
�!�BpS/� ���t���3�Ϟ���ߧ"�$�
�����/��0����`
%�����:�B�r�Xa`F6;X�Ap��ٕ�Vb�\���r>�i:��_PK�������
�-��:�G��/�Ґ�9�c+.q|�h"�|�X�
~5.�5��uб�Fl�
0�a
|x=��u��
��04��.z�E4)����x	��C�$����Hl-
�
y��ױ;'�jn�
i�\
W8tl�-б
k���؎�nA�
�pNlEMla�Y�6�{ר`�
+��Y�;���y8���0�
��_�w97�=�Ec�g�@Ҁ��=�	
�б����Q�R$Ή
�{P�1��j������`��	�<z	� ��aXB�5n���&s�;J
M���BD�q�
�~��Av{%���|�{
,����wQ��G
��\�:h����Ex��5
�~�<t�;�Vw�]�|()
��4�1�#�<�=��J� DQgP�
��6�X
@s �#Lt�G?�zj�e*��{���;�
~���v؝�;O�{(8C��#
�\�
+���F�س٨
)�S�"̌��tN�T���f`��#�H��8�00��;�Iw>B�΃�Vݕ�
�Y�k`������(,7U
+
U�+�'F|`���
	
+ ^�EMB����@n/����+i�Q���'B/ p�aT�/D�;��C!��X��B�"�0�c�r�>�Q�8�
8/l0݊���M��?�xy~n�0���7|��c�ǎ�0q��)S�M����s��^�(d��^^�2l�/W�Y�n��_�z��W�l۾���ܵ{��"�ވ��־�o|���#G����?�����>���3L6��ğ=w>1)�B����Y"�D�-��U�5�ڂ¢�Ci�����TS��ź�Ʀf����f�pvv]��|���nܼu����}�ŗ_���o��������~�O�����D
%�}�y1�<\�'�_ �g��K��<b}���ˉ�_��+�� '����	�HB�M`8 at 8��A�Aq,>"0X�8�d$
D���0Q ��P���p)#`�@�L��6-��F�8�n��#����m��O��@zH(=&����c̾�dݽ��z�~���x�
�F���������Eyy
��=
�
%�����
�G�	�� ��X �'$`(�,�K?W-=C�
��o"[	;��=Q�o�;p0�ȱ����4�Ï?�����!Idr�
�-�bX�w��AWM�1	��	�0
+��z��޻��}�_>x�������o=z��;x��ɓ�O��k�M�����uDT_�_��ba~Cٖs�J��:C
�R���
���Z	�G#������e&\Wf���HK��i
h�0�a@À�
4���
w�|��k��f�dKe����Uh�_ݯAų�s��94H�A��Se	�*�g�)�A��x�Ӏ�	���n�_To�O��*HSo�Tb.�W]���ޠ�Z��A
�Р�%4(��ײ3n����膆��>�n��E���$YL�!�`*�_mԝ�/Qs��Р�
4�y�"�y��SIf�uaƹ���gc,�i��0�,5���pCu�~S9Ѡriȇ��۝+�]��xW�Y��"��Z:��Ӹd�M�3�^��Dv
�9��7�V0��N6CC4��N��۝#�����>1tdBG*�������@C��'�ie$5��h��ͥ�o�t��Р���Ur�S!�\ʖrz$N�:Ҡ#{��脆�ƒn#���Hi�	Кʷ��kJ��
+�A�˱)s�Ny6�K"cwgI�=��q:E�+����6�
������Zg
+�U�o-/�4C�TР�a;�rV�(�Օ
�Б�u9'�_�4
��q��b���f��՚�
*ʶ��̅ڸ�|5ǢT�۳,�8��Ȅ���#Eƾt^�鎗�{<��6�X��jwУ-VZ��zQQY�kF}QL�Vנ���<V�Dɲ	̎�
�#E�r&�ٝg�9]|ak��۝�%m�[
-
��j���tg���p�Zנ԰�e*�5+�ٖ�d���2�
+VG����p
\9��i���Ϸ9��[
���2CeX�ְ�RUt�6� �N�e5�4̖t5Ӓ�b�&�I���.��ps�6v.��iXm�q-NzX��
S^������J���YVwQ�c�gh���Y͉VK��m x*����2��
G��6������A?^T��Ra�X*+��5���j�������$
�!A�nh9��|N'������h
G]ǰ��.چr'�=U��t�i�.�4��'��$������l'Nb;niP�� 
q[�
�RN
��RJK9 IӬ�"���O�l����i{�%�Z�6[�mْyKҙ�q�L�8=��\8F\���w�����ߐ�LT�e�$
(!�a��S�
Ic.4���
��3l'��u�߻x�=�ن7���Ӛ�VTR��L�z�"����_�E>�ϋ�I��h4��X��$�&�}4��9߻����w�?���c�W�{YE˫���}�?
���Q
�
+˱lp���WDL�|r���V\�`Ɖ��
�м
V��mӰi�4l6
��m��{�Pdž��g0|ǐ��0��a���V]ց�灡F!ʺ[Kn۹�l�{�`�����?�)`�o��h@��l��ǧ�"���sf
\޼�-R�tɌ)��N��m-���n��ë�=��
+�5��e�'#1=0h�tH���h�#E��A����g
"�F	��V�h�•��I�b�m�0;;�6
���������7`�2>���A
:�S��
�vI���QĢU�]1��W
B�%
O�Xo����L[��n`�	�`�Q/c×���hޫF'�J��cs�_��+�!��DtU3(��˗�����vj�������Yy�`xN +
1™�
-x��[�V
J�f��
��Aƻ�
��C)�,�ȗ��fjkۭTk���ë����K���
/c�k$f����L��<z��Ң3������AA�h��%��{E"_�(���v}Ðn���ѡՑǀ�E{�v��X��|!
��33Z�Ѳ]��X4�A�-j�ؒB�/K�C,�_)%������o2-�o1ã���{�z��c���[O�v�ˈNـ�6�V�Ԕ*tA�D�����@�]�)�K�����z3�c�7�
Z��f
�۳��{�p�~.
qte<�`7"e�
����Ui�9��
��!8��\$U����ij��ݱ�f��V�Xׯ�Y�!C}��Oł����)�	)
�ZU�:hF����x��T5Lͭ��������\϶���|�Up?G�\=)����D����9��3�}�[Wa����P�X:x��Efq-6�jɺ[�5�|=�홯G�޺�ng��T�~�N���ɤ�ѝ�ڐ�
l]��=!5��F��Xx�B�
+�Ǫ�����hC˵��}��;޼�kaO�F���#��}������T�YإA
{\,|4�1�e
��W؈���XÎ�R�Ͼ*m;��B��R�q
}����Z鳌�ٝ�9���b�Il��V�ȵB%��0
2���qȌO�[u�a��D�ӵ�7�&��(��-��k~����iR��N��PF
+
�vhT at Ac<
+ʓ6���;B�?[�"ۊ��T�a[���d�����dcW(��i	

i}EU��q%ݝ���� p�P��s�
��vd��c��A>�G�z�(6l��j�;^i<�)7�m�}U���ɰ�w>&�t�%4��a��S
�&�Hs�ĉe!�e;�l����[�԰�0ݸ/Wi<�k�Q���
%ߤC�����X��
<p�C#I�F̍2�c`7�b��T��L��8u��xp{���lh��=�W-������
�r��ɓw�͉���;��0@"l?:��Ǣ��H������./����#3>o�����ƮO�W�}�/
���>{�cI_ᜲk�s��,�p!�m�,�g9�@�O�v.�Rg�u6A��$Ⱥ[�5��
�X�=�ښ�Wǖͯ�s���l��w�rl$&��"���;$�� &,�aq��
���J'�=ʲ�[_vw�MæaӰi��7��X�?�ښ��c˖�9�_��
0t��JddD�'�%x:,&rA>'���>\0�EE�
h`��Nӽ���GW�����pk�z����^`x���� ���+W���c"R,��B���q&<$�Lc�i7�_uA�[=k��V�}����;��Ǘ�/	�����b$�fǢ*�	˱\P������W@�i.w�Ef��x΁H�m�j�i�HW���#-��]
��`�0�(̩�

�I��HL��`��

H��w��EĴ�ϙqrxsvB�@��E���͌����:yn��8~
^���I3���m��fځ�6MmҔK�
IJ�
q�C�wI֣�y�G��ﻭ�Ѿo�bK�l˖%[^ �p(t�4u�U}\�?�ɩ��k����3������������X�b�?<1�{B1
)
�����ʠ)��u
+�e;���5+��j�K״4Œ��^�S5�x{
z��
~q_=�a8���
�ie�/��Ŵ�xX��j(�Q@Ө����ʨ�V���f�
=[rS�PԤtuE�h�x{
~���
{����/���ͩ0��/��
���!=��k��[�8�P�&��ڪY��� ��V	$7�
yM�RU�LMo��gn`�#��#4�n�%u��b��D�@��tP���f
*haTI���Ț^ʸ����,��o���e>OU�q�
x�
-�"���8����g��3h.����P�ԗ����M��Ь]
U,*��WPW�2�M��~K(���d+\����+x{���ڍ^o_
=�N�i�o���Yz!�p�g�'�ئ�b�
+Z�(�e�^�ik
{�����d�E�DU�ۆ�a�}�B���{_k_����ӜB3�sޔ�J(6�y<d#d�؞���I
.h5`U���J��UPW�
+�
+]�_f���t�����--���}�
���l?��mh�tƛ�]��k1�m(�@SV#8��S�ZʂDC����"
�	�Bj��]���*�QT�v?��r?�m����c����
o����G�#'=c�3���#�
�F-��D�Q��L�
u@��Y�B�P���Q4�
+�-��^�u��ֽ��/[|���<�7�Ƒs�p%'
�Z�f#�,��՚���D�ɳ\���S�
8��2�C��:v������D��o��s/��{롽�K�����m�x����8dG�R!k�L����B���E�	��)3T�}@�Z�d`����&�7�+�ܞ���}}�}��}�T�UK8����=1��%
vBFcr�Q�p���X��L"�l��*���"�D�&��[K76�ٲ���m�~��~y5���L�
u?�=�Z��	��8���
��0
k�cw���y�b��d+�@�"�����LCӝ��]g�^�)5Ah���]@�Q���2���8����
�4�N���`��Y�e)68G�Qs$�#�⯜mh\�l���t���r��B3lH�a��O$�+a��FT�&�.J��R�L,�	��N(;�1�	�Q
�1���
v iҷ�4ްin���|���b��-dY��~��FN좃
��a��
/a����i.(����I
+JM(-9�"IJO�E�|�3�٦��J�/
i=�������#)}ȧ���l�
�1S#�8�N����
� ��0��C����
Q�=A����D���R�.�Z�;�[O���j;r��
`��aR�4B������NuK�
}���Ae�A�9N�\ˑ���(��,��$
�fh��w��&��}��G��
'�����E���_���y�عr�Xꂯ,�@.W����D���a���ι9���9*�l	�-�qWG_h���w�퇎�-?k���׽�ҏD�.gF0�
QI��������Y�0����L�,�I�\�(
)'��ڼ����[p��������jx���څb��mwu�Ve��9A��{���@RB
�H,ʡ'�L�X���!n. &��⼏(+�����Aݤ{�4�0�Twm^�Qw
8R���vW�~_UvJ�v���
oJB
+&dp$&��#|$b32A:3�9>
+��%��<$i�CPM�����Acqd�<���k[cݍ����G��
���ۤYѧ���ۗ��	9�J����6�"Y?�1ᣱ&=���3.�t�ET��]�J0L	�)<������u�p���}
�'���/%
��hT'�bj&�����H�Cg�0g��d�sX]���sF�aFG2M����P�`3�
n�c8޿ ?)�J����._J���ȱ�N��p�/��\ڔ�I�Ai�9�_�S����b$k�d���l��Sݳax3���`<�_V��夗]i�5_J��ov�+��À���
5
R!��ڃBҦn�u\�#�.��@33lp�1�%Y��K�ִ������_�[�l�6�$��4�
��_1�}Eo}������O(��E�"9_72����NƘ�ɞ��x%+,��C�T堶 �#��y�{hX��`{�a�4'�ĝ�7�PeK(�"��*$��}�
x�-B
+N
�h�J&.��F�%9�*J`mA
�G*����Z����]���i�;�8�EU͡��k�t@	�{d�K��م�)
�9k��~�a��ə��
��(�k
B�~���gx�l؂�k�N(�?��d'�i�i/�i
+Ŵ�xX
��jx�W�:ep��C�1u3��D�r~Ϝ�K6-�('�,�e
S��$̻챡�l�o~lP�����u�՝���xXO��u�`�.8��YN��J�db�=�5�P:��)'��4c�
]��
|kˆ���E�����+��؋�1SK<l��}FdХ�
5<�S 3rrETvp%�9�T:��VL��1O;ZI�5x�Ǜ�;ƭ���=iN�se��<��T0nk���Ĵ�
�tP����J%4%V at 3\�
+Kƾ”w�0�)F�z�.�*	�-���ה
k0�&�
��Ģ�]i��g�|�7�8�O��섌���ШF
�K���@Nq�4]����iD%�D�qX�-T�c�굘wC����w�	�I�q�#����x���q������A��+�@�[
�q5@���&}T�'�j��U�jM��0������5�o}
�z
w��Ҥ����[�
{4p �v�KX���L���@�
��Q��L�Bc��j��M�8Y+
#�U�J��Va��k0����w�VC*y��C��Mh�mg��p��jL줌�
+��,���:�5#,���QP��v��?v���
=�J‚K��Њ5X�5��Uܟz���x��?��7��c�
���M	���Rځ��J��[�~�`��A�
�&d��H&Y#$c�0�$����U"�W�;��[��e�7�u��C��+fsp�O뭍(��rW;*q )�
�tـ,���V���������� �� X����ދ-]u?�z˃�z�͑eu}��4[�u�*�/ �օ%��1��=���<'�r
`���4;���p�#Y������v;G�uV�\b����KV�
}~�����]t�;�Q�oV���9E��A��b��!���@��
&X.(I/��`r"(डT'=Eq2Rd+Erp*��Vͻ�[���}�n*L/|'t{q���

݅-����*Zkb�>��"mnf��:�p �~0H�A�\^�0�K
����Ì<�h%�����\�|l|����5���Z���س52���C�Rj��=wIM̶i���5M6��(Ƌ(�Ԍ�
I�Ҕ�-�&h��8�VI�l��G�,M�����%;%�_<����3��mɟ�!��
�J��-�΅�&nc��~/l�E�#����aj��!Prj��
�d�
0+j�o����U��7�*Öo��6���
�|��$�?6��:��x�_����󔺫����K`�L|b��
���>*Q��J ���82Eg
�`�*)=P���3�؏6r��[h�/�w`�}����o�羣�=\[����u�᣻���nj:|����Ͷ�o�Zp7ȗ|Im��K��u��:�m�lB%a�5�0��as5�ޱ���wDGI��^�{I��vx�\�/��$ٝ�����h
�c
�D�,IFI�d��B#mZ4�7�"��T�Ձ>m��3��V?1�Y�i
ޯ�-:B������}�K�y�/�e�
N(���^,
+�ю�d�,A#$9Z6��m�toJ�Zmio�=��a�����qS5�ݾ�|O�����ӂS�a�c�O��0��.v8���h�x�'#TQ*L�I�H�L��ʆ�t� ޜ��Yޖ~�0˪�a�
+��аm�=�ć��“�!A�)# x�B�1B	
3��QFg2�R!@�	R��`�, ��}�o�w�Yr�6[�iì+�a�u�c�7�1��'���R�	��9#l��D�����
��}�q�N��ܱ��qZ�ӝN�U�z�uu�k�@�zW���EAAP ��I�\�Bx $�����F�$@Bȅ��pAEV�Ժ9�;�m�-ʶ���������?�
��������������*9�M��8b�ɢv�:j�h"(VV��@��ߠ���T�e���i��4EJt���Lp����avw�k}n���䅜4~�����1+�=n�*�(N
U��
+<L���;s���YIN���iBx�6���
+�_�s�Z���fF�G�������ܰ
��Z)H�B':�!�T�Ur��_JD���o�t$
���H�\$�\���V����Q��"F�a�]|V��aG�
^�j
2��#(Q6�"*r�*&!i"�$]0��
k�
��A�]0ݺ�4!>�DZ�р��/�rz[I��V��-��9�~��`q�L4�5�z]E�����CmdULD�D�](Հ���������OICV�t�^�D�A$"�C�
V[��+�{�$��SL:��Q
�1h�G���	5M|CF�^k�ʇZ��x3UA��P��i/
�
����n҄di=�ۊ�~i��+�z�d��%�C6
�@��>k\��O�X�["�d���>�Еq]i��B�6gx;iذ��%
�
+gd9�	�
$*�M
M��//uxU
�����a�����k�f���R�2�ȕ\o`����*�X�(��
�0,OƤA���q�����.�<�1*;�
�O[�T�������{�j8lQƒ�
�.3&�B��a��:A�8�/��	W=��h�S
�g�� 4IC�΢���/�}ڐ:��=k�J�]�*�
��
*8�l�]Kh���-nH�6�j����	&_c�i�S
3Ҁi�r`xaؚ�D�y�]��Mݧ
1M�&��o
+Zr-��s.��j�)�kjT�A�
Ad�GO�۸7`�p
�HG��ܤ��M$Հ�!�o �?f�*w��m��2~\?h��2b۩z�2�ln��ʯK� �@1����'
��
TY�Y�0F��G)2��U���h�Ӳ4`^���2�nK֬f{�}�V�m�&�p�ҁ�-Zw���Zܥ5U�Uz(Ԧ��MjJ���
m�3G�r�A�
��A��%�h���4��
`Z�	�����lV��y�1>����g���<��X.t+L5�2hA)�-�h������D{��b��8V#�aU�h���%i��2������4�!�_]�+�.��
x����k��q��n��-1c|�Fȏ�`

+�ju�~X
G(ZF���
�ixX� Z�E�u���i���2`y/7e��Z{�~dU���b�k�"UW�Y��s��e]-
�
��5� ?�H
0
� M�((#DDYa<�	c��0E����P�ۯ���e���z`]��Q`����%y���$4�)l���	���V�n�b�
��:3��6�z&�O3��#��dd�
� ��
`

�cs_�Ǣ���|)p�^��g՟oM,��w�9�ԛ$Ib� 	�i�{����e�:'�ɳ��
+��e���;`/����L����l����{1f�/�
w.���{ɒ���}�x}c��뻬�2
+dw���6����M���f_�����=8=�M4�<d3�
Ypn��	�j\
[��e��bۯ8��
+'?�nu��lֻh�?‹�Do.̴�.�V�{�df]%{j	
���'^@��-��Uqu��j'�
�/��� ���).�ѕ�}LU���:��S�7}���k��#��p��r�d�jz�^.���"���*���`�N��nR+n�0.���J�*��Uq�G1��|]����0��?Lm8;7�I0y	Nc�
��ϋE���ƫ+��}�
V~��R�}���s������ߟ�Xr����+ߖV�S�9��+��;��S_c	'��'��"��OQȹ�i�c�
��$��jѾ�W�C�j��-K�r��[��
x�#��=P�ác�
?��8�lޣ‚�K�����±�%GT]<�=������C�H��A��—��eV��T����+���^��˹`�;T�v=
l�\>�~	|�y؟��~u���G<w���
xz���ي��Sg�M� �'�9�t���L&)A@
+mBS )`B���mh!1���Rc�ӒeY�u߷dIֹ�z%!�v�]iu ��pd0!L���̐�$�̯ۚ>�? ���ӷm�
�H�
��oz������ޯ'�|%:��W�S�����
8�#�^�87Ѐ����`�S��ӏT��]�=�r�{L&��u���~C*�gN�{�i��%8�
��dp�?�3 ����x����
�\�ahe�
eh�
��jO�y��`~���R�M�OU!�KrU��h��>���D�u���38lj�,J0��pz���T��~��ޡ{�&`jm��
�յ��k�˦�t˸��("�R�(H�ɼX�&�Q�oAq�
�q��
˓�2�,
�a�h6E�e��X=7e�Nަ
;63e0�u��O����ɧ4]��jn���H�"Q��RĀv�
ߌ帶l���a,/�1 
�G�#���
Œa���ܔ��>ehi�3~�1k<ʞ1tȧ���i�PQ�'5�D^�LRM�l�)��l8�q(˛G�|����
��0#x���eX �+)�z�
���9�Ys{�xJ1�?o�����'u�d^�H�2�k�����<k>�q2,9ʄ�q�0�0�|���h����ah
e�>o�
옵
fϘ�+&�; [...]
+%�
��h�>�鵐i���f�qf����b�5\��É���ߊy�s�&`�`���1k�{�ڦ�4�vT��ᢁ
/���A�ɩ�YL�"2B
��5��=�+	v�:̂*;\�q`r�!�=�\=�
���y�������c��ʚq
�OZO:���ᢉ/��)�,�du�
�P�bM9�7�Fz\W��j��z{Be7&�H�΋��	�(�����
���un��̬��u�yP>�8�Z?�]�'�[E(f��jY1)QU��oh"��^�jN^�l�^$o�Gs�4o�-��Ҁ�28��>u�9�Ƚ�yh�l�u�^s��K�O�3�;(j��zIyD.�
�A�s���\��5KT1��E� ����7�� w�>u�>����3�
��m�u
*��].�������NQ!iWcZ�DX���
޲=7�B��^Ut�pQ+.hD����2�-��h�M�;[���l��'�Ap�d:�d��;
,{O�H���g�����p�j�]<�5��jT:�h�Cj���J
+]QI�%�d�@�����
[����[ߎ�A;.}�߆w���[|�pRB�\�G;���A���-��٤���
��}S��KU��T*K�0)�!D=� eR�oh`�2x�o�.���cxk���{�w��t#;]�ds��=c�?�bv>	k6�`B��:��E�M��{M��DZ�"V�E�
+��Ӽ�g�w�o������2���o�M�{�
�ir�e��Ӈ�Ţ#�3P�S
+	��}���f�j��;8�wy��m��>3tE`��uÅzA� Q���ln �w��G6
{�x�����ϫkE�7���]�H��H ~������5�_8��ɯs��뜀g���q�+<k��k��z�ʰ�2�Iކڰ���
����ꚮO��'��6Lj�!�D��D
Q.aB�2,�� Q������1&d�1B�*�U��P���z����/��i���D���~��?>��>~���?�>].L�m����`�=a
���cܜ>"�ˑ~R�J�ai�VUXaS��/���%(\bxa��@�
@�Յ �e �nH����\�tz����K?��Y)�ƶX
�f�#fHv�uq
����Ҩ�Fą^DJ�
+��a]��XH:�$�?y
.��d�_Y«�����Ѷ<�����/����"|g����v��tȣ����L�eU���'���돉s����F;��3����
�����@^~
�\R��|Q{i��K��|�
�;��yw��p�Q��~��z�D74�� �(/�����	vj �H�R���twB;ڕ0�^L�G;��t=���@�A���rɊəū��K��~�5��
�
�
l;��ζ�Й����twfe��vu�V@D@9��\"�IH"$!	���"	I�r��Tģ��]ԭ.�㮀���:}^�E_|�^<�<�~�$���g���oX7�XMs���S�R�8JI�j��'��C����=�
r��[�k1^�	�}bc�O����7����_my~{`aa�G�O�?d��8V��9Г×��;��-%Pȷr��
�|%��jMk�
V��"H+&Im�Ty�x��d��,
c���T���
+1*S���]����S��wB?6o�?�����>Oo~~���������Z�J^]�r��rj�����[���E
�ۛb��.�A�\��Ԓw��ͽ����
xY�b�N���
�8�ww`�{-C����p
�lI�nF�'�L�Ǭ�/F>�-/��,zT�B�^������
��O
>{��.�����V�~1�
��v��tnYH�I׽{Bc{C�������:
>g�ώP���:}�$%_z��^���U�S~n�ˢ��e����Ϫ�������q%�k�ҔIe�?R˒�6^L|�,Ox�ri'�
�	���ޥ^y/���	>9� }�Ǿ��+���2�2AnB:@$����dP����������Ɉ�ğ?�Ǐ۠d�~u9;�3'��ܝd}/Ds;d~��>�O`��?T��.�@�WY���4�v,dG$���xPt2\���11 
ЧO|�	@<(�1>0�n�N\x??��G� ����	�)��e�U��Mu����ƥ�6�-�k8�b#S͢���v�횮�馐��J�~�Ү�����*��`w��o�2�`�i(�`���!�8)��:���W���@�K�����D�|�Ъ���j���)��{���g�3�Wzǫ��qd�q
�1����>��,��
��A�����y�-�"�8��Yh��f�NS���%�o�_%B�)�X7�o�Ƕ���;L������ye��T;-����

��D�A
 ���
���

�p�[�Z�T��	ͷ�4�zS>Kk�L7tD�a� 3��f��Y�`�l��^{��j��{���~8
&x@��
��� ?=
+�R7
+��E�Une�2�^dQD�L�r���9I����[M#D�%@P؆�~?V��N�����
8
��o��
@�A$o
�@����
(�pM�@��/6,qkً
�x�դ�f�u㍼�*d	�%v����k\C�n������\��ӂ�9�X��g�h�
�?�)lń(9
+��R7D��k�P�Pq������Kf9T�$�Y?���.
���c�(w
�5�A��3��x
�ی��{�6�
gsv��`�� ;���l���lH�k�lԪ��a	*�,�ђY.I3�����8�a���O��r� ��7���91f�k�p�oui�6�����ٶ�0 ��( KJ�lK-Xo;_�*�%/�K8
P��*��c�K3\iaY��<�
r��|^|ǐk
2�L�=�>_����U�SI�;��
6�mN��H OH�T$�+�U=Td���웒r�l+Z3! ��6?��9�(�zI�!7�3`�z�ѯ��P�^e��-'ڜ2�������a@d�#��LҖ*1��:�H�F�מӼ(/�J��	�pEH��y,���p��W��t��:����;��7
��^)���m.����3ȷ
'����=�Zs&�6��qg
+�6�q[�ͷ��O���G$$�_�py�
��"��!hgT���6�! !�E
f_+��Rl.���[�b��u��ũ�@���36��.��}"~�'��>�]W�6���
S�L�
+��
1�f񌒢�Su<*�q�O���h�fuqi6g���A�m8�%h?�w�=� �Oe�4Ĕ=1�a��$P����[���k�匭�sH_g7)h�v!oF�VϷ0�&9��6��g���t���du��l�`�5(�
_�YT8PG
]�����s߉�5{4�;�~e�l��H&{a�L0�Ejm����<,P���2�|��s����sz��l� �e�1�-
��
+��?N��٭�<�������T3���T��TN���ؔ�f�WZi[�y噡r�x �((�x���J�� ��!x$�)���ef5��5M����>�s�����׏o�P�ʝ~���w8	J��W
1�4G��u'��C����0��VЮ#�ԫ�%JFWV]� �R�-fE�`����%l�a*�2
+�
��&
7�Ym((C
U�5X�B��~�dgr[7h��~��
}���hč87w*A?������:�Lڞ�6�4�^or]����������҆
�Xѝ&j�L/RiY��vCA���)T��u6�Ae}��
+����{4�8=��?p�k���������b�P��Vg(3���]��BGi��K��{h��nzicg�X�e�TC��P��	T!١} ���փN��t[�>59w���#;�vމ)��/
)+F
�$ev+����Ӥ(󻒔�.�R��PtSj]���Τ
+eGr�Jc(�D
5f&P}�j-~�&s�w
�l���
&���n.Y�h���)�
Y�Qt���в�
�E~���Nkb�r[iWr��a;���=��VCjRic.���Tڄj��P E
��&P�)4����6_������.��K{OkV�W<>D��:�Ew����a��>r�:����lH�d(���qm���6�r[uKT[�|ks+Au��t�pP�.�0��Vh�a����f'��
,�լ��R�:!]:� �se���p�1"�@L)�F���K�%t��ەYݑ�@��	�29��
�!��kZ���b���.���zۖ���7.nޭY�����[��"B��>�ߝ�1��c�E��G���C	�z)�?�"�W���Wc{5:�
��D����UՄ��/
+j�DA�?��i�W��7l
Z��7�ʷ��;����[�����%���NJ�d&�Dr�'IY���\�hR�6�0r�-��ʺ6�W
��C�`}UI���$P�,1�oDAÖ/V:���e��ņ-�����`�,���o�Y/ݱ)�|���!	1�i���Tܽش��D���ι�t^�73h��
0!���-��/��
����]6(֣��5�~c#턉��ӗ�R05�n�l�:����C�Ly�!�
�a�1Q�_��sO�q!�)��%5�#�����03�g!����0�̃�T�����2��^6��:ע4C_��XW	�L�����:
�ip�=<��U_��A�ޝ�
�[T���X��+j��Jr��K&����x��?�<�pj��xrY
���
+��F�֠�uF5��1�x�n]!���L03c��y8Z���,�v�cAp��B���
^�G���ubϜ��>��'>�������s��Ca����@Ci4kP
z#T�=�� �sa�Tؽ��;�`�����f�
Vg��
�� �;`
� �x
�N�@vv���G!��	R\
!�p����
�J�C���Py���8��Otغ.̾���߄���?�m?.�N�����8���B���p�D
t ��=�~��8+[�Z�!H������[C�k#`�X
���0�- -�	�"<�A
+|G�F��1���<�SJ^�R�0�!Y��@*��'Ve�.������a������
+f»3�����a����C����6b�@

��F
L��r��p`E�eR�+)�1�h����
�"�0�Alq�<���T�;K��?C�L�ES��T�Z8q]41(��
�n	o�o�>dl2.b�"�
��>c	�@g�aЫ\B��X�K&=�ה��%?}�*���_��Ŗ�͐��i�ŢIb�h�X<��"��� �JF���A����0(�&~>� ����C

���e	���C�f��pc�/ش��LV�bJ�-?k.A�7_"���NDˊǣ�%c�ƒ1���;���;���A�Ͳ^bYgT������2Cb�!�,OK�=�
y����7�����D�vZ�C&�3O���&L%H�q�1�����|4JYq��Zy��-�����>i'�:�O�J�|�C�>
1d#�LĐ����3�ѫ���or���ٔ���T��Ûc��M'M$��c����ؚ�r]�0IU=
u�f��#��� �Ȯ���Z�T�!�΢�<�0��ZO��sj�Ӟq�ku�Qj-����"eA���`	�@XB$d%!@VI ��%$lj at A��A�
V��
G��;ߙ�uz��ݼ�</�W�-�D
4�P��
��Ƒ-���
�aX��kSҞ�d�h�����[dj���Z�
"Ox�� �ɤ��+�3
-�:�����]�VlW�1��U��V��[�T�P��Q-h%�B� 7< x�G?p��_�1g�0�����;U$�x�9ZB�_/�4
�	��9Җ�X��J�Q��r�]�N��l��8��x�Z�w��N������̆�P
��!��?�G@�ﺄԧ���)f�=�:N+eyʫ?�X��|A�U�DُS���VM'Ρ��8�Z�C�"84���<��&����n��@G
�}+��/ԇ솆�Ph�:�F��L����-��ʡ��I,��~��!
(�k�˓�_�i����o3hrme
bh&"zi�]'�wh�.t�{
�P
50Ps�
+o������𘷢��ϛNb
+�
��eR�YD��^Z?D��^)�.�u�ZB��5y��h5K/X��
6Cc��u������wC-j`�]�A�@�=H
���w��KYL�#Ib�dSj�O�l�?9���������-;r�6M��֜o��
,�B����f�!�:���:o������
X
{7�$pȃ��p�Z���Q�OZ�I�wd4Oc
�
+�,�մ��s{��.�`p4��b�+����6#�1�K=�Į�Ԡ�Z��D
�=ˠi���E�~P��
?�
Oy���N���9Wz���J�LJ{+�m��:�%:'�l��J�Vf��\[j32JmF)������
`�j�/��zhٽ���
:��p(��XҔ�x�D;lN/�Ug��R�X�'�72vu����sUU
U�&[�b��XMU6cUb@�{���ų������w�@��4�����4r �+,v�RL���S�}��b�>�٦$�DbR��f���w�9Wi��Q^c�UT�-U3�f5URm�J*��0P
5p�̇ƝK@���ޱ
��C�?�
+��
;61|��������3$�-�!��x�UF1�x��&����(��b��JfX,�t����f(�F�ނ�Og 5p}��o1(����f������������<?znFE_
�O��1�ʮ�!��ѿ��L�W����V+GO��d#�͖��\Ȳ�j=�a�y
����x�A�u�|W�qˆ��m[���w��w�vH��Dd�k46U;t*_ܗBc�d�˜Y.Bn;geR�
+s��j�l����V^h3���k��s
Zo
5p��� ��w�l\�
ٰ�٥����\빽{Ǖ���;��nE��G�u?&S���>|Sv/�%��V}�)�$;͚�F�.Meם��u�EmvC�'�h��QCݢYа�sh]��,��^�trx�77n������9�7Lw�@���,�Ddu,�B����
 ��%�k�{��=���e�ե:�u�S�.u�ܥʐt*�
����ڿB۷��/�����7&V,tOm��x�}������ 
o*�<�^DA�xbyލ��0��>P,8�Okĸ��D�T��6��.�HO:{��
9F�#OV{x�A��W~�%�=���3ϭ/?u��l����m�Wۂ%/���=J�=:�U|?�H���d�eP2<���EL���p�Y?���
h����1���
}
�־Fo��/>дp��y�7g�3w�{j�<���U���m���v���?�6
�T��Xq*6;��ϸ�AJ��S�+�$����<��u��	#j��6r���
`D
3���,o�p�H���
���O�m��\��ekİ~'��  ������g���g�=�`O?H'���O޽P{�\3A+���E��%,�a\^~l\�f/�Zvll�k �������sip�����9*X�U,_Æ�۩�#���߇Ec�DǧM�'%�HNIx���+�\̣����$l�/�ptl���%
��17�~K^�}
1d�N<<y�k ��g�:ӧ�w����G3�/?��_͂U�V��V������Y�
+Q������:�j���8
@ϙΔ���Zt�V[p��
+�
+J����,ʒ�,$�@���D�L�$ ���Q��U�"{A��(��"� "Z������3y�������nt�;b��7����i���\B�+11쥂txNE���%���!�fZ�s=�ycr�̏vi@��~Z�j�^��������֬̆M$�k
�ەA>d8⇃ȀX�
�<&(G��dl��1�?�Ƞʨ���1���3
?��
������3v��jjqB�n8�J��:j`�G'`�21|��
;7�`�&�o��P�h�
1�G a}C 	
)ȁe
���d
D#O�/����6������
�P{]�䈪�F�
�(��䠀�K���c�.#��K<x������z0C |s �l���~�wGy�~���4�����;�@�kdy��n�#���֊B��B匣P2��
>q��gK���hpu�
�?ŀ׊@ؿ� 
tAC��}��"��c_zA�W;���(v@��ہ��;�\�B��Pn�
��
:�w�#��-����y��a��~��	���C'��z6�
UC���_�����
+�
B
�9�t�
��;���{�p�?
�*���N��N���&�	n�

+n�������lw��
p��?�8_�QC��<
+Lq�;FV�k�)�+�>e�RƜ%Y8ω��g�z�4�Q0�kMa?M���4�7�q���1콌!�}�
�X�u;1pC:b`���!7Ey��!%x���„�Li�������RK�33o�T-�"֋�2��$��+�Il�l2�_� ;$���'�I��$�ʻ���厐������7�Fz�,

���\
�
GN�-M��"Eǚ���T�`�R%~B��L&6�
.dN�(&p
�G��~H9�8���8�l'
+�����]��m��E
�P7Ȍ�E
2��&G�rp��I/�9��iγ�"�Sz�x2�*}L��|DjP�'^81Nh�~��ʾ���}�8��K�� ��i���i�1��U v��p�9��l��	�Z$���N0g�y��4�x2�L6A�T�'�f=$7�< ��Kl�
#���&���s�)��'
�/S՗���
@��	��A�
+N��*��1h��b ���d��|�
Q&�O%x�ΗL��(Ɠ+��jU�)
�Q��S���4w�75}�M{Ҁ��6��D�6%h�'h
ĈA�D�A��
p��
���m|(�"F-����l��Tže
'�Z�8�8k�aV��m�F������wI��I7
+�i����~���~���~}�F�Y;A�2��	��Π�q����@���P���B �^���W��f�ΔT!���
sF������.��
Jsѯ���z��Jr����И�k8��W\��+�e^_4� 1b� �,o�
��B��!�
�APw�}A"���N�Uq�SJ�xBrR9���
a�C���۴s%�Ime]�+�n���n�Yf����SV��)��)���
��!c�H�ɽ_��o��C���P%���
�I/�
֔J z�P*�5�ani��Ԛ����>Z��*��|��a9���8�fkz����.7q{�ʹ=���O
@�d�A��
(F���0��a�D
Y0�
��H ��R'u
��J���P���
+
;�-�ִ�WS���Xm�zN����f���+��
�2~��D�]nt��1���k%��~f�o�2�
�0~P�y]�܊�?����K��
+��
Չ��LM�eQ���k�j�\��r�U�[k�תK�mV����H�aы�LzqW�b�
1�C��O@��s0���
+�&�����߷ua�s�Q�O���
ԑ���Le����-Zy��
Uq���R+���
+�Yg�ԕ�[j�2Zk�kU��6�N�Q��t���.�bA&b�#�Vg���
L{�B���P��z�7
����C���F7��}���V3Gv�H�wV�e���U�+�mŲ�.�5���[�4�m���y�6k���R-�4���UN����<W�e���q��h�w�wϝ�}򯈀�+����N� �LR�b�Ц
)�skк�8r͘a3�$gR"��
FB��0�M�U�D�)���M*�W˦ҡ�=��?0�^??�ߞ�	8��&�6�
�U}�|kY
�� ��jNve~fI-�[����4�
�
}u���^����6$䥉+PI UA
+R��9(1�B�N�7׆K�/�v�o��������u�Q{�8�7#�Ng��&�eTd�֦�T7&�t6%e�6$g�եd�פf
�RyC�4��%��ІT�!KOJѿ��5h:������.����qƳ#^؉a��`o ����t=�\E���ˢ���
�IW�㊅
1ŷc
������&��W��
�J�U��
�HG�І��7��XjMv@��o��\�ԙs�y�����(���`���;�0Q����\~S\~r]Ji�(�*J(�
�V!諍.�9U0 ����4\Q,��x�\��6����\�MPi�
���P�S��ϯF,~��î�)Ӂ	o�[#d������^ΙK�ii7O�ĵ%G�d
��˪��m"Và�p�*�lHU2\](���+;�_"�n�.�P�-
�����KW�X_iz��h�V��_�F���
Z
�+Ǩ��bV
o ,)�7&�D����.~	��Ҳ���唎{��kb�F,��W
Zv�,���Ոɀ�6d�
W�6@ݾMЮ)�a`���cm��Y�m����s���͸;�<'z�<��'�I��nj�L
���E�sĥ~��$�B������ђ���f�X	G8V̩+�2�HA��:h��k{d�v��̍+I?�U�
\4P�|e�ۺ`o.z�+��'�?C�'����~|*l*�
c215`��#M�e��f&��>#�rH��������|j�x>�A2�
9�1P��R����o�<�݂x�.��NW��@��Ʋ�5΅�ʃ���vz!0$l�Ŝ��
�KH��H"N��_Ԥy=�H�z�g���04�A�y����,����Ey���٬,��G} ���"}�b�g}��OX��e��e�K�'!v�D	_�0Y��ǩo�"ȋ��ą����s�^����kJ86׍z��99���`���t2~@2ȓC�B
yvK�߿靐E�?)�ԯ��&X�׺��5�\��L^sv:����F"����e��d?�	ƿK	�\⇻�)�t{]u�e�5�y�n4nq2�u�e����I��
1�@�&d�	��t�G��e��ɍR����R�؞Z`n�v��b��, �S!O��"�������
+���Hu��
r��K�}*e:.װ�~��v�x�c��O�ѥ���$Z"��o��
i�eLMo��ʲ�@[�
F{�^
ؙ�Μ�����
�.�z�D{�@���
�,����D۵r��Z����
?��
���8�r�D��݁A�
b������fL6�lL
�0V;f��`�K���dp3% 
�	d
7���
l+G�q@�#[8ko
�G-��x
+�,�
=�j]��
�b�O��r��T�!H�4�d��T2���-�p�Sb��j ������'�t��C>
���
Z���M��ISs�?���Ç 
k
+��L���DF�r��$j�@�#H�$���C��!ױAU&46Aw�'�(���vG�U��Nkp��+����o5S�B��!J�b�
�D
}��Ӄ���P��*��C�D�}��qI�E�3� a�Q����*�q�G�
t7Z��#`&gV[��VpV0wE����Jz@٦

�}�}/D�І�
�����.�ݐ��r%�`U
0���j(�6
+�pUa/S
��1f�-����u�%o�/&��|E�@j�� �R�|�i���A���
+~����9�_�y��"�
�-c���>CzϐBT0�Bh2 at E��jp
�B� �e�(;`�uz�P/�R�
�e�@�����SWI-A+�v�w����>�o��/��e�<{�g��@|˚�]b=�{ǖ��
lMi2� 4k��p/
��7�0��D�'���^�'��
�Rʚ���B���ka~�mg}#��|%��#�3a&�����ϰ&�5���==-�:+Z�QԣuTD+�ʅ�u�Bf!��
�H�,�'$!�Ҡ("e��(U
(�L�x at e��(λO}�����s�7�i� �/l��>B�G<s�g5Ġ�f�m��>/`���X�/Ш[���
D��Մ.3�#6'�=�0�]�	���3ĉ�jқ�:��k�����c�i�!�i�{J���FӚ0#N�I at Z�
+��݀�������������xr �9{�"=q���H�{\v�[laSBz
YF���
+�Hz�1��|��
`�D>e�1�̦����X�
5�Q5P7y 7����@��?H�
����@O<
���qzܻ�,�\>�5�F}�)����b��_d���

��<	�y�`ۣ�pna�p�E?���t�ݦ,p�8�����9 ٹ��i�$��,~�'�<�=E���3��c�h/qǘc�Ӭ�*�h䥄g�x�=�?1�x��~�M\��!�_�;�_�[�������
8>
 �yȷ/�5�
�Yt ��A�c�|bI�o���#�e\���=�;�0��
c�Ñ͢G���V\_�͘>�؇�:�Cɹ�>q%�y?�h�]����� ����z�jPo�4L �	A f�~�	�'�J�8=���le����C�5�Q
��Q�I�^�M|or=��񁬊�@v�ܛ|�ܛ�,`�:j��p���!u�l�,���Ap#��@�䐏bv�/����f<���#�|�`l��	�\� �Qރ�R܎�V^��N9O�J��t��Q��'i=
+�G�,`Ow&���� i�נ�8
��`ڹ��} 3�
ѻ�k���J&��DD
�0�
�G�
��M�I�T:�
�wc;��
����rj���ޑnct�3:S
�])��l�G
�en G��
��`�2�w,�� o�o~g���1����Ag[��$�K����i�Py�R���T��'5kk���CW�l�Ƿi�Y��<V�*�ݙ�,��m��
+	^S u�W��̀�-� w�R�۽�C��W�a�#��A&RXo�H�0����H�eNNZ-�D[C��W��ӌ�x��P�n��r
�ln�6�ۮ�$t���i.�B
��S@�޽��� w�',��_V�)޷a����B���<�V33�N���"�&i��B��<�0��]n���M��fS.����kA,|���w��6-"hW;
P{�+$�w
+h�	V�o �7����m��؉=�O
��;��~1���#��+�	��4R�)i��$D},1�pTPj:«�d��ZL�f"�gԋ�
Q�^'r财�g}6pP��q2��
r�=���Y`�<�M�V�ggv��8���<���	܁?
+ȸZ+�Q���'5
+Ea�NsDfEL����ƪ�4ei�w�jis�Zڂ��v�J�ХK�4�
z[pQC���
8��
�m�����e�����
��.�[�Zuxˍ2��ߏ���2�Y|A!�,�֪5H��(�,��_��[V��E�h6)�-F��nP�Z3��mZg�o��+ȿ�
��S�����{ڻ3g�V�4w�n���K�W޹p���}�J	زc4Zq
��mː�T�JoD��|�D]ni�[Ū;Iz�I��bLJ����Ɋ6��@�PC��ɐ��ū��Sk<�+���n��װu��aNJƋ����[q���R(��X<c�(YuD��Y2
��\3�x:�e�j� w-��f�@ӂ�v�(ݑ��֦u�g5��
Y2l+��T���/.��zએ{O���;�ۗ_��߷�.lwi
."�,�d>��jl|��(9U��ѱr�����fr�%
5���0�3����o�'�
:��M�,��s&��[W8�n�R�)UK�]^6�a��֖
����6�X~%dg�El��|
AWIg)�E��
+�	��b��	�K�1��F|q
B̳(�V=���1�m�xC��Y����0��;�̂�c��&���ε�k�����\�,�����č��
�`�rlLj
��x��cW���ʴ|�Y
u��6��NQ��aK
:|a�6.����ݮ�X:ҝb�M�f��*�7�C��IC�<\:�������W{}��w�/<�ص���� SS�~Ս�����u���q��uDP�QT�(��b��I�l$$,D�*0�:ŒZ;N�Z��:n��ǵZP*���2�)�UdK����9}m^|^�������K.�7V����z��a�Z�������j�BK5}��F_�\c<�\������m�zG��i�af�ӛ����0�ܻ=��|��j|
4�쳨�Ǟ$M�W?l{�������I]voqf��"k���[ե�m+��U�n����zZ�h|��:�^E�h[��m[�?���<Y�<���
��
��id�kMn��s���Π1G_F��}�
��7^��g�Ī'��AQЖ��n-��h-ϥU�+
m+��
*��/�?)��(�^{�\��|������g�`
s��v�}Ε\��J�
��}��y�����*!dCOZDU��[�M�t��Y]��U����g(�֙�][�u��������j���xi�ڝ'��S ��](��U���N:��HӉQ��
9{Õ|��F
���
���`䔿ڸ!�m��2�8n�M�0˦M7��"�-_&��R��*:���6վK��^��<�`Lj7����x�^�[^g��X
�F����tƙ�it&Gﺐ�
�
�\�
��U��ɫ�T�4N>�Q��IT��"�b�ŋx���F���R.��p\��T��*�m?���;��1�t�e!W�r�Ή
��D��y�jx,k#�]�!Գ
Q>ňX���&�gk ���*�Y>c�Ȏc���d�%rQ�
��)�#5Ңq��+�Qh�G��3bw�F-!?�&�H#!�����Ej��Z�Q�q_��qY����_��iR���H
�
 [...]
��sp1n
�q�
��9fG���!�~%d͠3Y	/�RLt�F�kӡ�\Ob�
��IC�o2�� ��: Ʃ���:K��ayU���4c&�Ϝ���Bp,4?��
�#G�2�_%d�B����R�+>a����.|��
s��
���xF��=�qs@��
݄Y0�)։AX���ISQ��-~�b��Oqp�?��;��"s�;�T�R4HH6�•%���t�0
	�`�Hp\�"b4�G��
�v�n��M��- �1��
3Vw_,���
Q�1_������@?�	�`g��]!�gC����zzt�Ph
+á.��r=3��'C�M*${y�C� ��B�EXtY
�m	��R�w2���6�M�V�/z/钼�vH�?��i�3
�lhS�`�¨DFf(�Ь\ �_�ܜ�v
���CrH �1D�%�3O��
�;r,j��ߥ��h at a��Evy���7�;�S���0�	�A1���lz�,�
+��8��H��A�6	�M�PnK�|� ��bH�-��
�z9DW�UB𘂠�z'
�~٨
�]�Bf���oU��
�A�
%�@ǰ���l�r��2p`^
cI<�B���W(w��8 ��V�)%$u�WT5�!zJ
_�6� �+
�_(lt�rH�
e�<p F���c����G����<��e�a�r��
KQ��)����"�z��~G)�O�!��@zU
�}ݰ���.y��
�:���ڨA��T6�
z�p����tg��\`
+g#/�
����H
�B5����]
eE*L��o�@�C�^T�i�<���N?"��1,���V�a
��;���V���>�&�f�|U7h�� 2}�`t����06
+c�P��2A J�
��$7�?OC�j!L�0lSA�G��~Du��AYgV\7��?��Q��tR��6�?�I�:�?���K���
9���4d0
�\`�Q�r�$T�OC�l6Vh��%<X��ȪV´��a������=}��NU�m���3�|�ۣ��m׾�m��Y���~2���h��;�ٗw�X&9�4��,�5+��bu�֦M�ZI(V�Q�0qQj塰D�>o
e���Lp��q��__�ӫ��ڣ���I7�?������k��� ~�"�-�ց�j�W�u��Dd� !���I�
2	h�����QP�(T�hI �
ǭ{{���̋��yy~��y����$�A��'b*�3��7Em��J��O%\�OŚx4C����<H�2
+�e����z��v��A;�{ೀ���M�yK��P�a��,���`�����Bхߠ>
�
b'iݑ/���f�
F}�KF-�%�:v2�2v�f�A�i
:Oǡs=�_H��`��0��Z�:�*�J?���,�m:�����	20%��	��q�qC����hm�ݨ6foT?�'j�݆��4�9u�	NU��<��*��А^�	_b`4���0�6YA���P��2���
�4���]f��2�e\
w|D�
x�����~j&��T�x�X���p%�=�6�s���@4�j�
�r�ѐǓ
+)�
[�`b�c�1�`	i�,�p�<��f;/���_����
+|
��A;�s���T�!5஘���I	7X���-	eI�$-�>�CX?�\I
j(c����O3 �4#7�6��N�0
�������Zd�{�߽\���m�l�׷��m#š�C�����.9
�!ƶ��˜LV
���]�Q[�j���6,�K
e�D�
=�<Àd0��
�x�9h��@Z�jK���f�{�p��?�����p�j������w˓�S?�+�<ڕ
�ߡ�c�S�X�8�Z-P�K�j~!�B��l��0{R2Y:��=,V�G��r��
=/�mDP\s`
z��[k	��sB�f���jv,��t^<{���	��j]��7�w�Z�u�@�E
מ��V�ET�$����x�b%R��ν)S ���$�"�B��˸D�5ŕ�hڷx��HG��z�,߾ோ;�^5�Y�ovY��cS�%�]7+Î�j�~�jrXU�P�P��l�,S�.)��Du2qrg�H�\&餢�a�H8�,�	DO�7"�@����@��*�,��X�S�����i��y���}�-�z.��h�
um����ǟѨ�1y�H�J%e+�f�%�
b~j���ږʑ�!K�餈tX�HF�y�1_d��
�9��i�9%F��Wa`�F�����
���N֏o��������U��6�>\w1ҧ�"6T���U
�"O�e��!�<3�2%Q�*�f<�%��Ii#b�|TȖ�	8)
GjD́dtm���-��
��,_������tm���k�Ń�]_t_w]������|�`e�DAmLpf�V�"���tn��K��R��%q��)�y�I㲇%dՈ�znLHK���
+B���@
+�6�X���� ֬��6�c�7W�G��0}wv�]�:�����֋��5-a�9��A�ZR���N�V��
+�T��#��$�J�đ%�"\�hrL������ǟ7��J#�rn<�
����[���% /sڥ�Y�-x�g
~��5��=��?�
X���t,���S~g���Z����x�B��/sI$�4IŎ�� gj/�C����5z
����*4 ��F.!g�CȚ0
���-���E�m�-x�l�ۀ��l@�З�}p��Ɓ}�U��7�ܭ�>�"��Ϳ
{��IŒ�81�k�5��R�ji`����M��K���	vX��QdbF�0
��
�v��<���[�_o�7l@���陣U��eE��m�z�]~?h��n��/�$�%8����v��C�2��]�$���ow/���4��WԀ�W��K���կh!�A�b�;, å`��
+t�Y��
k�2�4��c��
��G��f��M��c��ݬ?�Q
��
�}#ف!�����'Gz6⼆�p��q^�o	�7�}�����:���Y0y!��`���X��NK��g
j�,e�UL��9or^!�p]/?��4��$B���Q.X=�㴞�0&���+��A�m���;���2�]�>����0�����Gz�b
L��;Z
hk� 
�,A�}kPd���k-��[me�{V�g]�1f=��Ϝt������{j�x�&��{���9����:����j��o�|�}�{��׉ϾGt���~�;���߁��p���F :0����Y��c�>:̓|�ޖ��y9�ӡ����7F�y:�-p.����]gQM�y�?		q�
+.,*  �l!!!{	I	�7�k
�KGw�KU��#-�X+:�u��A
=z�L[��8���
+B|潚��|�w�]=������hi�l�*5{�.]0���wp3�G��N
RqU���"֘[�> a�s�bOn
���"��)����{��>�G�6bڸ��-G�x}�H�Y��|HC4Є�aX(AQ���<��f`u|�$$c_R"����mJ
n�Ƣ/-H�'�<�<IQ�ϒ��(jOEm���־�V�U�M+E(݂�	�|��L�C4S�,r�pa
+�@qH*��tA<ֆ���E�<"�\����q+:
}ѡ@��9�FQ_^$�W)j�m��HQ�`Re�
g�
�|2

��2�������$�S� �cA3-��q�Έ&�"Q��5
�uv���en .�EW�\��A�G��
�%w���A�}��
�(h��i0u��^BӸ�f#��B#l�X� fF@>>
���a���@TN������q�
���G�����q��2͓�
$���ߡ(��2�)*%�`�8�z��
	d
��E!�;
q��L�
.}6D� �3�e|��4�|����E
s262'aq�h��/Ȣh���f3 �2���*��� (\���GA�i,�; <�As
+��R�u�
��t�:3���A��Ld>��
1�y���

+��J
�'�� J�C�ʀ�ÄF�
��KTaP�-��!��D��X
K��/l��d���AV'ɺ��.�g� Ivg�|���[x�bd=�xM��4d'ѡ`1�IgB'��^
 �9��p��GC�I<�ے!ٟ
+��t�Nf at x&�v.�Y�wg!�>Y��� ���/��y���B�	����t�&xC�Ȁ.�	��&E ����
�[��D(��@����/8�n�Bܖ�>��B�E<�����C���!�ρ��
ُ��Qx�� /(#hP�y#o1&�����BPPCU
�ꓠ�4
ʝ
�� =�G��BH�#�3���
�����
KG����R�<U@�@	��U���x��@/�Ҡ���1�k�
?8�`׆��
����0�`A�!
��\��P4� o�@z>9�� �&'}HN�J1&Q��O�n�=�[}K�Aݝ
��<Ϡ#
4��>��(:�qLT�}��å
+A�1���(�I�y
�-|�v��{8�TgP^R�W���h�ʟk�4O��w��y�����w�:�?�.<C>�)��4�½a#*�}P�2��3�L
�}*��Q�������hA�d��$�?�ҵj���}��������j��z�o������W
��˦QӅ�Q�9�g0��"7���x�&�����Xś�U�@|��e渱jGʰs)w�t��u�V�+�ne������E�c8��8��ᑾ�x_����~������aK�y�r�p��f.l���=��tГ|�{]Ċ:�&N�'��ؐ=�ա#��1�+m�W�U��]����G�F���&�
K��_�
+n�[n��Z��
�d(�0��[mmEC�S�C�-���_���z�l/�y�A���o�"����ؔ�-�Y#���z�Y��[����|���%��+���p�2\+9T�cqK�?�gK:-��;,�J/Y_8�Z4�h�
8N�J����)
,9��y���L~#�d
+ȷ�.��ͱLlK�2�ȟ9�(
���v�����mp�o��]_�J�SM��k{A�s_�%�Q�{k�7%�γ�����������fG��pY����eM��>��'( ���d�ȾWOz4̣a[4;Y��p��؛=��n������[�m�
.ѕ�+�
+��ۗn)��z��t�AG����d�9׉�+��e�U�|Y�y�+׾ʾ�ݮ~�.��
��'0�
�FfQC��5��&2�
����%��?�1��A�d���袻�[�~���mC�������?�h9�|{ɉ���Ǫ�]�]mK�:j�\����]���E����tm_�W��l�y8�yƟ�8����H%C�E�S��f_˖�
��88��9v!�5d�l!�Ҵ���eFi���K4�L��������������^���XY�A�@�����3A���������Z��6]M����D�j+���.;�
��f�w��9�&G�7�%��ƞgTF�.�8�M�<�m^�?�7���O�g�g9��9v:>$��,
+�%t��IIl�b�樒���I^�֥N��{��:���+�v�x�o��f�:4�
�kR��e	i�"anH^lYXVt/#��\Ԉ 5�=/%z*"9z&,9j649j>$)j�%�=�֓0�{��"_��B�4{Y��S�.u�E�p���@����
+�k%���Y�5_qO�f���Kf|��
��P�w�� �.�F
+�&�B�W��Lx��YN\�
;.v�%
+�#<���{�+���U���ͤ���Hߴ�z�rL���N����M~�jK���
+�O�D�dg%2�22YI�„)�x����䇑��	~d�7*a:<:~�7ǎ.�D��DaD�r����xY~nS�ћj�ᮽ�&ʷ�m�Z��_��s��2����P��"�wZ~ܙ������� ����*�d
8�ᇧOq#Rg�y)�
~�
[����&<p�H�,
�'
+�2��Ui�!
�{T�a�n�ޮ#�;ڭ5�]�������T�8���<.���)Je�
+sC9�ᬼ&
3����#/8g:"$s&,4c6��6�K]`���)K�������W���[
+��(�ݾ��=��oZm����b���ܦӖ�
��	u�151���$�<��,+�)��W��[�.ܿx&, ��̙ce͇��/���
b�3��]^6��H�<����}_��v�.W�g����A7��;=���4��i��q�^��b7&��g2��J���؞u�C=��ٞ5s�Se�!~�
������LQ ��!^�0ZE��&<�A�t�A��6J�#�ʯM7޳�ɼ�?��)��[
K�
���������~���Z�m���m=L�ko]���'./1=���^�ˁ�J����T*�-xVG�mT�E���b��T�m&W=Փ*6V���L~����^t�����{!V�~���
��g_��[o��So��Co��}�۞�~
���M������'.���!0�
�
��2�v����
M�iP�R
+*GUIE����W��S�c�~�Gm�3����t�p���������P���P���P���P����qW���'����æ�OO��?�
Z?� �
������~W�Q�z��ck �����w���wec�7S澵�
2~R'��
��A
c�C�c_;�e�ڎ[
k��|}��ś7V��}�6}���C�hq��z�E�e<'2������
P��/h�5%
�&5��hQ�tٰ�cJ�	u�	M�	��'&��&8zv1��t���Cf�5FG�w�L
O��
M����&ߢ��gh)�Q"�u ]-��M����2��� qIb�4�ܥ���%C�e�e+�eGu�e�-���Y`�X~��0]��e����h�T�����������h`���2��AÃ�"]�U 7��w�w rR^�N��/��:��Y�������߇e\�L��
��Uł8Ža��1�j
ƨ-0YS��a��^l�ٍ��w��]���hz �ڈ�{ r
$� ��
��IQ�䋪dwԤ����
�G#)34�6A;Y#t������ۇ�J{0ZYS7l�BUm�U��.�m8�Ig7m��[E��
PIt�{ � 
 �=���e�דlQ�l�_P��.���ш����zh-��$w����Ii!KZ2���_

�n�Z9U�߀�
+*���2~Z'���D�w	� �k �/ 
+ at h��׀9ʑ�Q�t7��Q��u)�����t��mEs1
�SCg�*zҔ1@|
��+�PB�%�b��,�H�b��
�I~�������ݦlm�#H�(
z�]T"�in%oFm��7�
E	
)�hD�GS�Z��ʠ3u
zQ%�I�!_��Ib�q(F�خ����<
+� �V�渶(.��@ �B� 	dO	 �D%���AFT8�+x�vpk�:�V;��z�U{�J
F�`Y���M�&<|��������GtN
+���Q�b؁ʹ'�

�8	3�V�CX�|��#�⌀
.`�]�OW��+�N��~n5|�w<���>�����
�`��
��A�
O��_
B��'=����q /n&��y�d,@؆%`mY����`�Y���n`
u���g=�w���4�{�@��7|I:�H��5
�?BH�I �t`{R��"�n>�
|��bf�/s/m!��?�삐OV"x���F`�'���!�,ɹ�
�
0z}��OX	҂A�g,�7��{Ɇ_g"D.�ǃ
+�Q�v��Gl���Y�MtBt�"�s��+]��*W�5�Fh+
!���:��i__�#�;?=�G�+b������� ��`>���7���ҁO=��3�@$�fA���b��"�h%�[W�WG���mtp:���f�}6 aי���
D� �@+��5z��q$X?�r'j"D���u�"֕
+��
��S g8@>
J�d��HJ[Q�+��<���:��
D�3q,����]b��k��,d�;2�{���!���8?D�s3�듀���U�HXA��P��AK�
+}�,�N�&-�*��unH2� ��_�x+l�ƴ�Ew���Æ�؃Q7��Q�9/�9}���p�ŀw3W�q>�&��!��?��{���ԯ��Z{d�>@V�#֊A�rAr��UU�=,7�J�$6�^�Z�^%�s^�[��%���*�7�!�q�+�C��;Q� 8/���DN&A�-��d_Ɠ|Ň����-֑{��@
w.

�lٲ�t�[����R[����"�WQ�T�;�����KRg��I�O�����{�[��7�c��!� �q�e
�#�C1�$WLh�b-���
+#�G��4�g�	��_4��egy?Y���H_κ���s[�+▲%��������kҞ�+�o.J{�I�E�eW@ܩ����j$���>đ|)�֑�����6�UT��N
-g��7G8���/yZ�\�ИN��n}���%�7�,ܫ��Q����=��V�!�Jy2������7ң��v�[��V-��@�g�_B��idg�'=���������6�M%sz_e��_-�
~6K]n�t^7
+r��
���9戞�����;�O���?O9$��
�w&�8�|[ٮ�]ٖ2�h�[�ͩ㲦Է�ƴwI
�����dg��Q at zlZh�R��jw��Z��OkCf>����VE��u��v�$�ٳ!�}*�$�\KlWv��#�Ir8}��`Z�j�Mk귚��}���#ꆵ���VE}Ƹ|{�[)!yD�m��H�@6o�<l&}���
ԭ��m��ݣF��yN��$,�P��}U���.��
+*�w����W��d�S6g
�4e��6d\Kٙ٫��N��
Q�d���s����qYU�DH$�[G�
d�Υ�‘2V���r�G6O�]m�5�
n6�;^�.�{vW��6g�?�h䷙6
+[
++���e�y�U;
�jks?�լ����}���0�RiN�0��-�1�V�U��0.{$�m�J� �l޲�T͡
�p�<߽�����V��ԫ{���5�8���xt�hWf�lY��Wf6�nI�Y\#�-lTW�O�0v���Zn|�Z^0�3
i��M�qTU�?�(˷��y�����{)�L|2���8��k�
�݃�(7x�_h
�{�Y�����G�Ռ����F6Z
+����Ě�*ye�N�fSkʦ��Ԓ�4S���b�:S��T4�1��L��
�	� �a&�.&��������{�S�͠|�>�r�ǔ�m��ݭ�%��"���J�};���u����ʍb��Bf�\�.1�M),�,ո�LZ^ُĀ>Ӑ�X:�)(U�ƔLV���&�Bٜ�3(CU��沧�i�F�uh:�'ʿ��۝j�[W[Ģ��x��=rzSS
+�nW&��./fk�I�i�ViqU��X٬5X��9�S�Y��׺�-C�u���yTe�4�\�Ѫ��u�����MBXEA��� aIX�E at 0�qW
�z��Z�D�
+R�EAPAܵEܗ#n=3�v
+c�NUԞ
�,�g�g��|���~z��y�}?�ѐ�f���͂1=�ŧo�A���4ӵV+����ok2?�mW{$QRYk�+;��.�b����}���˶���S����"{qI�����yy%�����w��,��>{I�@��m�˶��\6��E�~����у*!ݮ3���Ft�mu�M原T�յh'l���y}�Oq���Oj�#
��Ǭ;�&a��)�*>K_X�?+w�᜜}m������d�}�=�@V^�`�O�2�w
�

Y���٧D����N���6��	u�1�ֳ.��3�&������s�Ւ"/j�T6慮;�T��nu��Ûf���=��,=������sӪo2/�
U���YeCs�w��F�Rև�D��"�_I�Uǧ
M
�����%S��,��\RU\�,=㰽C�Q�>�wݩy�'G,iY5-�yc\vSѬ�c{�SkR�N�o�
/
��Æ�/?R�>�*F���GRGC���o#zTFt���b=�����t�G_]ҡk�T�%�^
1��M�m�D����d+/d�/>�08����g6��;���>�'^�:1��U��>���>��f6#9�(�����T��Ѱ�臝Dw]������۽j/qTyÈ��M��{�\�]���ۑ�ފ�_q3�m��,��k
|��V��S�\�1�s�6��zڌ���1�יӣ� v�y�Ŵ#>�3�����D�]�!�h`�?���Utr�뮈���Ӗ����O}�����[�8�:���>��
����
��˼����&<ت�}�;h�����V����F��B
y�Cx�]DFvAu:�yD���gD7�
��#jnf���ʯ���Ӗ�"��kNkzż��r�� ��=Z���kCO�]JO�xV������cz>�F��ȵ=U��͊�t2�T��8��w(C��@u7�5�2��ω.��4
>��/�N�����͈V����/
y�/e���TF�Wfɯf�Ox�dחa3�/�N׷�!�o�c���.���܂��M
|{F����D��7��$�/!����5Z�!���Dul+Xvv�'��_�=7���-)�_�3�{p��~���j�Z��x�����Y4C���
+�UC�l��w��~�����d�5�
�IJ�A�lbY?
�h�GX�a��D��|K��#Q�;#J��Î7n:��Z(���3
+B�H�c?d��`��
��l.A��T
��VK\��_��0l��_�Lj*�P�5˿C��)�<�?�g�D(��5E@�SÝ
�� �j�
Q)f�1K�
+����X.���"[���$��X���
+Ϙ�
LG�b3Pr�h�-�O�rz���ż#�Q(L(���?&�|X
2��$��B�9A�9@��A˷A,�
+I|Kd��c��
kf�.0E���Bc����<����M����|=����H��U�
�`J�'W�
��›'�
��
+R�x�,���Q��
[9B6����'�2��q�c
��=/���J�Gp � P'D@�~�&P,6��:Kȋ��Yfσ��
���e
+�
��� �[�1<~b�8�c����!e���N��f5(�8��auhBPG	/�*����h"['�{�dxW���=��
 ocg_t�����N��:C���3pf���/F�a?�������/��C8�#"P��0!Bg��I5CH�xXAU8�v�/��_��
��=�߳�P|��]6"�3/ܠxnj0�|��r
+��;��A2BY
!�
"�8����@"�n��d3D�L@��I�l�E�v{�uDP�3�\�jv���
�KS������_�!	X�
+��@H
��+5<��B6��9��X��C�'���
+��+a
b2,1m�
�k� r�ỜV�К���K�i�����N�'Խ�#�מC��~
<WC�V����7>�E��pVCԿ�.��4���Y�EjE���( �"A��%���	��#@��#r�
A(�"H�M׫�X��VG+VW��Z�]�gߝ�/��g������|g���]�ך��$���i	��V�c�jD�0��!D�
+hzG�[���C�q
n�@=������_�\���r}A�s}F}���
+ns���[ x�
+ϫA�y9��*Φ9�|���f��9D�Y@��D�B(�
��K�����
���D��*�׌F�!�.��mz
<���vl��i�'�k�?~�1K��w���Zl�D�i&x�b�6S �����a�
[nb<���
$^�@`1��—�	��x!Js�C���)W�<G�nz�n��O���1�y�5�e�uz믬+[o�
z��|�}�	>?2a�4;N�a�1v���k
+�ZC狰o��R 
�#��
�
� ��~�H�{/px*ٽ�_�
+LJ�j�ٰb׻��ͷ�=o�:�~��y_#��!�|�\�q���w�|��
	��$|�Q>P�@
��)�w����u�s�W`���Qn2���#5h�����y��R��/��ף5n3Q�-߇�/�5��u�M
��
+�N	��:!�x\�$hB�6&�P(��APo8���.S��3�)mO��EH��d�����`�\�i�X��f6�iK��'E���d�
R��t�v�阽�'��;'�����
:>|$l*���������@�zg���!�U
4S��
� �V,�
�=v�����S^j�R�
+\�g
�[���ͨ�.�Ǭ=�"w9���9)�xOHK���U|%i�
�t�
D0���^�y�(�ewE�&:b�h�
�F	0$@��@�)��=�Į%�Ω�s�?A�

��şS~+[ov�l��Lq���ɥgr"
�2�.G�R<G��>�IZ�YEࡄ�c|;�+��#v�l���6Knsc�$�S�A
+�j)0��@7��b�-Ǯ���ȳC����c��S���S�f��z�3%쥓a�㹱.#��->�J
�;�,�3���*o&e=d}�0�6�ߐp]P���W%n�
8�r �r`�d�0���q�����-�=�-@���Ѝ}����M��>�*g./�.�q���<��J�ά
jkF�Q��Q����I>��L�'
꒮�O���+I�X�"�) �]��E��7�!�=*��n�F��g�f
����O���NT�
F*������=ERώ���\�>��fP陕�
}z;�D�/�*'D�ˡ��9a~�5i��(��akR�e
+�-D�}/�
+=˷D�u��z�|�o�.5-Bg�7�߿�f�6x�@
w�qo��]�GSI��:m�u~
�<��Y�S�Ѫ[xU�0'k,T�u!T��H�R}�����R�lu:�@�B��L
tOKA7*,Е�y8>�n�G߶a6޲�z�1hQo
ge�!̩�R�^[.��*K�ח�k�U�
M/+�(L�

U�~���P���^��^Z6��j`���0�p�X�W����w�T���
�h�u
:y�Mt�5��2��-��&bEK�h}]m�[UM�6]e�_Q�*P�+��K+���njQ�@�
ɵgCe��"y�;��B����� ;9S w!��
�!tC���}fh����@nj
���Ք��UO�����g���uUMbW]C�Vm��7ϐ���N�Աu����/�	��D��{�X�[~|p��L�[V�)���D��B���w��N���c=fh��

��r��Ͳ��������]�5��gm[�Gn˞�Y���ʆܠ��RzB�����N��Q��H�
~T���
+Ș
+�Ht@Ė��Z��Y���pـp�{
���C
|i�/C
C.�_���
�-���+��aN���n�݉[S���;���mŴݭՌ��V"��0G�<E
+�os�M�8����"�XQ��4�=�E�j9B�a����7j����O3�>�)j
s23
����^;B|�3$t�oL>,u��'{�
R�F�j�+E��^O?��dr�7��
N0����7]X!�@*Bw�]�A�d
Bc�
������_ݤ
��t��{�+<�sA��!�(�s�X亄#qΒѤ�Q�a�N��:�8�?�&l
+��C ����D�aI��)Te�Z=z�Sm�:�g\j�
�j�=
��.���Z7w����:V2ֱ. ��VD�
��ױ� ·߹���?��>����k��/���7�����ZT_ks�7�6�m����Dna-r�[�;~����c�x|���D_|J��������>�KˎEћ�ԂEG->�
���
v��8T)������N�в@]��n|�;)������T{s�%��35�q0Ͷ����m@���yW���
��5�;��d�d���&��Gy�S�-<
D���6z�<m
5��򩊐��ꈲ����Wζ7���V%�}0������֨�j��f�
�e|C�q�����H߱

�H��'D��j�d���V
&ZrR@�𢙝~4�
E��j~��"�t����K�\��������/��v.�dw��f�7D���Ǥ�k��r�{���
��<��sHL�I�SP�Ժ�h�����`S=�{lV
"Z�vЗ;x�~��&u���+�*���.���;ˣ�����]>�vc�_֍Yc�o [...]
8=�
Tx��V{����
.
�\�;vh�H5�mL¯����.��Cw����C
׏���ma3�>����^g�sX~����G��[B���Q(e>����*�
�
��M��C��ra�x�a��
�yFc��
xGa�w$xKp�'������
l`3�v�o�g�&_$*�B��M���#
|Ʉ@�CBZ((	*.�\,�\
�x��H���`� �X&c���	�ࠇW�!���fpU3�+�l�?����D�
"� �\"
�Hų:� �I�x
+C
=�q�?���/�8T��
��籎簝'�c�??g5��|����M����˾E��r�b�(xS�(b
+D��ZD��hĒT�	
�/�j!8���K�"f5S��dZ�m�$=m2]
+{�
+��-��HE�bfy"z���} ];ҏ|!��i�ү� ��9ꏨ��bD�2w�a1�x��d�]� � ��Ԡ���kyX
z� �LVG�'zB9�
q
���h(��
�F���|�?��b��2 ?ɜg��fn3�~_�r�
+B,��#dX�,�T
��<�I���i�
�b@o�����i^;oTo�"q�	���P#F¶ (wB�+�&�x0�
�U�&s/	�]�
ND�P��}�9�0�	<�T<�5<,��6�]�0N�a�h$�.�n�?�
��� h>�zG����P��A}����1�a�4{��W#��
�"�f2���ς�友����#;��� @v��
�Ȩ�A�K�H�?�0��q}�5�H����pvE��,��U���O��
ɯ)��cI
+�n �e at t�	1W͈�<�Y0*Y���-�C
S��ph(����	{�r��!{�Y����<�q������6G�O���g��Y�I-Gd��n[�����/�<��a��˂���;
�g3&�YHe�ϖrȗpp2.VO)��R��lO���s�h�pV���WC�K�rޑ���G�b���f��蟳�b��_�{��=�S���W���d
V��H<�U���6���@ud�������
e��D�*%��d*�=�'�
�U�x�x^h_�I�c���pM���+��c/���]�k��hoR��'��/%v��R��?T�١i�C{$��h�B�gX�8���$����^LUp�6�0�,
��yߜ��멚xm����F^,]}��*�\�{ʳ�?J<S�%鴳N��ح9�8�mu��
s��:��
04:a�]C�xvC_7rX�	lי@x1�0S�=�����J����>�1�Ҵʀ﫧���4O�m�bEۄ?+[+�M:V���Hi��P�v}��>��� [...]
+*2��2XP�H��TA�D �@(��J���ޔ ��A�B�6��=�������sf��κ�޽
������������{��b��
O��MbCx-�'���I?&s�>���XߎM�9#�s�d��kQ���5���n�B���N
y\8��	��
�<��;�
�?Q�B�+
y��#��p�!������u�N��x���ʶ��
[Ÿ�]
�X&w���g�������<%ݫ��:0�/<8S�6|����n�:9@틼H뉸A�x�h�|K�D~��F!ZS4����.y}
+
+���|&������t3�I�	��l}�#�fr+�Ȧ��0k�4�f,9�nD$s�&�
J�{�j<�b���1=�V���7�j�=`��~f����Y�G�j>�U�wQ1�����
�k	�����n����$o
<.������x:���rVȖQ�F�"���v�I��v$�5�
+Js���t0k�울	Ne�
NE�O
U�{�J�X��( Z� �0D]	
+� (��� ަ�i���0��E&p���J�ה�F�ߍ�yǷ
ʣl�2v�2��&%ݵI� �ť�3ɵ�D
K%�)^�U
+��
+�/�
+E�s
+��!�B�h`���/	�
{o.
+���c��2���{WT�K��E�V}���
9�{[�I
����
rU���:]M/�6�
%}
���_��7[��͖��7[�|�Ē�C��_�dD[	:����U����7��JH�u�!ܪ��5���*�5�L��� �Ne莖˜=j�С&�K�<�\�YH)ʨ�+d
��n���Qnz�
���1����!Y*b�RSv�1���0��x��� �{�J�.7�[�$��5���;	��ל���vU
���<�
u�����ST�b���t��<%7GEϒ׳dY����a�$�8�̯~�Lđd"�4
1�2D���� �
+��Xp�;O�눠kX�M�a�щԭ����q-�5ǷUWF�R���W�%
T�
�V�ze��R�kYE;')O�'̝��{���/!�s[����Y��)(��J����"���j&	p���k��
0hk�Z���1�i8f��
���
�.�Z�U��*+�{H˔Ԥ�j����
�<�����|���/_�|b
+.1��]���$�[�=��gp�{W#v�V���vYB{�>bc'ٸ���Q�9jU��#���'�!�@j��YR��.:S�%���񫚙'+|�*'8�8�|"*;R���%��S"�h5�[�K����L��q�����f`34�&��w3T�1L�z���-�#�6�-�.Y��(l���5+ȼ&�WdC#-������
n��
+V�a�#Fp
��V#ZX�+*_ͿE{�Wp�
��`����`��� �#6��ფ�!��l��y�� +�@�����N����{S
��s\»J�C:՞A�=���q��;�
��m��Aԣ͈zL�(Au�y�{�
oq�`w0������
@-vв�u������q��1����Q
��-q��/x�l#GN�

��*v:��s9��>�Վ��i�q�
\r��@�
 �o/"s;ٿ}5�2 �G ��p�s� 
g���N� k�dӻ	�iWR��X0�o3�9�j�U���m�W�;'2w
�(��������t
��ێLݒc��}
9�. �ra���
� �� 
ut
 4� ��|�$@�MH�3��v�;b�=IQ�>�as����7
��[
�M��Φ[sf
+��fjv�g:��`K��ږ:�d�u��
��Ȏ���1��{\E�+�W�w��A'�@?@ίXΟH�	 �m ��!��f[���B��ਞ��_l쫏^��'�1�)i���}�g��6K������y+w��Vn������|�8x�8�]�M�����
h��_ο����-��3�'����p����C�"�Hv���Y(��9���y�ѡ�Y&�/J�9�hZ��r����u3�W/�
����~���,�=A��}�ny���;P��
��g �D. ~��gЗL�{�(�m��#��� ��a��
!:�
5px�7�?��ՙ���Sa�20� �

��f`F��P��"JQ,X"q%��Uc	jt�
E��=��.Y{�u���ƵG"%(
+��!��
���;�O��}�}�'�~�$�~���0Ofh����#��v^��R��+��u��BW
e{;�
��F��;�m����_ x�(�6Q�}�اD��
��֍"�j)�]�5GPps�`|�(|H�?��-"���"��)bϏ߈5X/v�~�nH�>6J�-�߳�*�
.�C4��'����D�����D�
�8?��(

+
+��
А
:��H>0Z�ArCO�Y�
+y�JL�X R`��
Ev�%�����,�M4�����/q�-�T�{�c���DA�D �3
8Ӆ<�Ajt"�����@4�э$H%��ΊB+g�l��jٛ������?�-�Q
+�=�����9ߧ�ȓkpg.\�3���D�\�
�$�7��1#
g1,�e�|�/A�b|���}�~� �̂"F���M�414�b�C=A�l[�*�p�ªdp�Ͼg?Ƞ�"���cM
mdp�k7��
�a߁!\@�Y@���][ELA�,�o1:
���T�4V.�f)��A���CS��As���=��5�V;x�O�LO(��?��o
+
,�*�l!$F��
bf��/��o��Il�
�ErhW��v�n�����gGОc7�3����G
�:([tph�‘W���
!�s-FQ��^�w�M�'b�3�͓ x��	2��a�o�2�_��MJv(X��#0�bW
ax��bhpl6�wh2��w#�
P1��F��
��o�
���/ ���^����"�u��Ce���#|�=�s0/r�i�#L�l�S��ʹ�t����s��_�&�}���
�w�/�p�3���������
���
!*�s}t�$�K�z��x�g�[w1�˗!v�]kt��C���:�szk[���m��m��k��W�j�k���zV]g�I��V������
�[������M��t��:���\BO���$ 5J��b�L���+oJ,��I�CC�)�/��V�vY��"a��y�:�g	[ܟ��v
��a�i�	?z�Mx����}-
>�㡽�.�Cw&��]�mqm{w'�♯����E��^d��֬QSzɫ�ly]j��y�h�'��P=�9]}�G����K4w�V{�J��u#qg���|�&
�x��B�S��F�ӉПHD�1�v(	��C�
�jx�m�<oe������Rk�Qx�)���*~�/]� {��n�0����k�'{\N���b�N�S���K�НI��:�J�����
��s��W����Ǫ�
�m
+��S;B�!�󳔄
^�|j,�Qm~��xp���d鏟�W^�)T��?��L�	^����
�3Gw4s��&se��J����A������}"���C����v�����󓛁��ݐ���L���
����^;� ��Б����n�=*���ő•�I�e)O��
4\S3p\�C�u�s������[
����Н�7mϮ2o�Sc���ec�/�����a����}a^����
���Y��)},�QC����P�ӑNt�ċ.�2
gK�JO�譬��z`H���p�OU�_�w��-oV�߄m�]aސSiY��#�b���g��<�-�i�.�A��\D.�EĢ\�/�������+�
Tϳƃ1�#�[cty�;�-
����

���;��K��|�
�G�n)
��4�K����!k
�6��_lY9hM��-�%y���;�0�^̂�7���6o0����`D�

K{���~�y�1ϝw�
+t�TJ���ѹ	�t��(
.���
�S����˶�y��F��,�_3bBЪaSC��_2da䢢�����
w��-87��fܬ�W�_!zfl�:��Ӌ�
2��Q�P�ux��9��/��/etr���L�����]�췖e�6��լ--�]�Y�~��σ����d�e��yQs�/�<kXe���o��Z\?��j�������ˢ�
��EM)Fd{�#�@��p��>#�TFtf��NL�P�ɮ��+����( �}߆}f���DTDDY�aVePY�M�*�X�&F����M0.5�9�Ѵ1i�h���Ks����������޼[ą3r
�{�����
��ʏ2h��nڒ�۪1Sb_��ǯ���*Ҫ=�R�D�n���a_Y�9�����s����MF���""�,�MB��0R�߯i��P���Q�t	
&�V�X�)
�������w���j+�\ټw�I�l�徼T�ʜl~Yv��<��s��Q��q�;Gr�/+}�_�~�?#��_���
	��I�Q(MC��0
+`~'��4�T�?P�L)�<� �j0Rm�|Vw�ﲶ�ns�z�����5�;-�
�mK
+2��d��<�gnn�(3��[�=蛚u�?%k�?9�_r��>)�(N�BQj&
+S�(Xla���ᮔ�^����;���4�>#�80Pk =u�L{��Ӽ/xE}�Z��h�Bg./�c��$�1�8�%���#�p�0��U�$��M���K�]�O�=��O>�d(N�GQb.
+w�`1�J��D}���P:��} 'i�h`A�=�h�cZU��4���u��
�kbMeՉV9�i�Ҋ
~���-��F�X��_r�'N>�+��+D����8�E;
+Q�� ��B��`��4ԃs5ԃz�{����vH�[���C
��je-�ZEM�+�c���-$u)�)�Y����$�Tz�U7	�U�xm�
�����]��;��xs�6��pk
+bJ�s��� �S�
5��P�H3@/��*��Ʌ�.3��re�v�.+���k_��ٶ�0��Ӥ�{,w�d��h�9�
(w���辩�K�pB���r_�����:l�E����X��
z.��,^.�����V�ô6� T������~G���K5��=���Z)G��v����M�w�[n�̳�>\��Q缮��kD��{x���������v;��a�=��"�z�NϤB�
4�M C���	�r�f �h�
�a]�
��';m$��gx�F�����[�b��F��l
�6_7 ����o����7䴺���)�����A�U�輺���ɡ�QA5h 8A����z�v��V�,��Ns!e��L83	��������G����x*Ng��
���L�бB㐱�U�m�
�
+
���kp��o��o���ȱ�>^����A��wP~�1�?O �H��1Ł�i=�����3
L�L {��յ3��OǨ��ޥ�zZ���t�n�T����!��AC����ӷy���F�sh"�D3���\p-�Ds8I�?D�������M ���y`�%6�U"�� l�BgE�
b���� e�J�2��L^��U++��fMOe?���Y-�k7��g�]����e�w��+���b��
 G)���F����)����O+a�5�X�s\�3� �)�ς@x+�܊f<ndz�nK�.w�T�w�U��
Qu�����
����
��P�v5l>�֟��b�t�����R�k(��j/���˔?
�'��O D�T��
up~�
������	

����`�$
l�F����򙔱xV�2���e������ы�,��?�xO��{�*��Pu�A�o����_t��?��_��#��?�����%��7j`��X~�����|0�^��@0��WA��Nx絔��A�h�ie�ޞ`�og�?���hΓ�����|9�g|H�t��7 B� |����{`���'�
�
zh�%h�p�
4�40�p
p�X%�B0H��1B��o	��F��ʗR��Q>�=���
��X=�Q��[�L���Ʌ�Cy+)��hE�ˉH 	#[�!� `����|E~\BA�Y��p�����S� 8R��B�7��(� ˉ
+r�o�	��}bL�	�x�`B/Hb� �͇C�<��h�Ơ�3���̕A#�z�
j��A�M,�H`�Z&)&5��t�>2L��$����U�)}~D^��
����K�K��0h�Ƞ
��]�̝ACo�
�
�l`��r�I�$���
!��	2A��%r�|I�N���e�J�����vv
:�2hO������Z1�[�•�X���B�\RJj٨�B:	�Bw����,��\'���u}GEugq �S
F�A�"3� �u

+D�PAd�2��30�
 ���"�,��BK�5�ZWc��M�=�hbY�-��b'���s���u߻����}9(z�y'���V���&�q_� ������N�q%]e�v�^Hi
���h�d�e-r8hQ�A�:���'��h��E��� "���[|�}mq��B���L���b�?�ǖ( z�Ũ�����-�,����rw���(
e�}
�
��o��w��?$kxo%
�7���W�
������C���gҋ�_�w�?�=�߷{'�+E�
;
��oKQ�ܒ��(�[�'e8s21�E�3�f�N�Px�pz]�8o���W.Z�
���?����Y�̬�
�Y�����	
0��/��2���]�7\�
+�g����'\e��
+�/�����p�@w��$@/#@oZ�P/��^���z���~>+���]�}�A&����ݙ�;����U�'E��b��;��w�>��3�_�q������)�0�J�Ƨ(:�@��3��8]��z~@��I�w�}҆��<4� {����~ެ>��;��ܛs����\�Z&��U�ٳ��g��7
'���d�Y�>��=��x�����5�qχ&G<ޚ~�f�<p� ���h�
�=��#�)�ͥ�D�l/����|'�3ϝ�� �����K�����~����?�&��3:�����z���������3���ȔA���}������E�>���#z}�b��!����\  
�C
�a�	�Zd�C���_��E
y���
N68�=qh~��y&sL���?�ݢ?`�xO�n�>�A�]�g�w�d�-�Mw N��6]���V�@�A �`�Wal����-� ��pM9�G2p:ҋ},b>H�.��p ,ݨ?$���E��v/�6߹��r{�Z���6�A��[��K:��K7]������`��'�Q���k�Ա�O��/&���f~�e��%<��疈�JGT�؃q�����=ѱ�����{#4�=����]��7���nm���tۯ��6�lM�%YK�#٪�w͡hO��P���c��8� O� 7c���q>�_'��d�$8�,��d�_��۝�P�=>Ұ;.AԵ$�lSl�EGt�����m�M�ֈ6�e��Y�˩1��sC�9�z��:��N�(#5hW
�ұ0���
e���7� gRYp"�
�S'�g6�7c{g�7�'u�pKJ��Fu��=1Ŭ-![ܪ�Y�ĕ�6/Yn�"�UV�ѩ6�����̥2�+yy�]���7Li [...]
+���Íx�Ae

��� � �Z!��3��|gVg�lnG��^[΢	���D�Y	f
i�t�MuZ��<�ʾ$�ɱH��ѩ���I���I'ܴI7�r�/�Z52ĉȴI�0. x82���L�cT�e�} �
+�AO�)t�X
���6���ei��<�q}n�YuN��"[c]�)�g��d48楯erҺ䚴O�2Ӿ�����[F�
yF2�)3

3SQF
Fa텑��
+p:�z@��Q��V́�t�ڱ�J���q���
�
+U�bM˖&Y�gZ���m��ڜzGMv+���,O��vK�
���|��<wUk�%Y���Y蘒�������m��:��ȣ
P��R�
�9HG�$h�����i���9�����e��JK�'-K0_Z�n�-̝���e��R��8��7��v������grU
2�\t��E�-�r��td/$Q��8��
P�>ʟ��P�j�=�����V��ٵu���ZaI�BC]U�(�Re�S�*�,˶I+-��K�
�5;�w01E���]#�.���Bd�S�
c
+PF
F�
�9P���g?���\N� ��ay��4;�ʛfq��+�
�
�F�����uj���,�Ě��q��Ҙ�FYd��NʊmLXŠKh�����LX9:�����R�����X�U ��[<^H����}� ݍ �� ��kW
���J�8�
+�(8��������g�����6NZ�`�jN��m���z���N� ��?f`��af 
n�MP��EES�����k�ٺ��n�]6�e��y���Z(�*�X�
+��)J��Y��Y����ػ�ہΞ���;0
��}����'�MZ�B��׋�ǽ�2��-�c��$�)nJ�jG���%��W�?ō�'��=�v��pU��B`�������J��56<�ցYki3�d�
^S`����gꪉ~E+��߷bz�	+


�|NX��c�.��ts�ȥձK��,i�)X,1�$f�=bao�y-~�
�������K�U�^����
�)5cFi(
ޔ��mJצ���JG��x�i����qoM�nx$p̆��;��
.X�$lhIix^IUDnIcD�ܵ��Z"sVId��ގ�5���^���u+�7�r�~v�'�l3`Jy �*�qE��X���[Q�����sl�$���S}Fn�a
��)k�ֹ9[����V�̭�����3ʮ؇�-��%$}������0�=�5P�����-g�ť����ʁi\�&TwW�QX
�����J�(W���
wݣ�wy�
2d�f3]/����ӪK�R\;-�]�
��lI���6h�
�)�wH��p�8���_�����\ɞ�
:��P��;`�
y�V���C��Nd����Q7F�׍���j)�3u�����{&կ�r�o7$
<dH���_{�ؿF|���o�>1�T�(c��1�f`�6�ɝ��.`2Wû ù�f6h��X�t$
�G��<�gS
��F�cw�A�
�����UQ�˴��2-��Z-���~�ˣ�Q��;"���ij�r�o`�R���?����
PT���Y�@Ƈ��& �c
�O�!g�|&�_$#�%��;`?;}�MC��O"���h-���ݰ}�
���`;+��BgD�i#�3~��n`k/b݅
��F ��I�'��3@�9=.�a� k[,m�03��L�v����^�N���O�й ^�6Am?t��uނvU����*�3N5���?�ev
�SO 	��Hf�l�o|oa�������1:w4�;p��P���A����
��7�� �����-`�s̟ɹ���2;�ك?e�[��V��`�'`�
� �x@�7B�d��Nq�L9ćᇡ�
�7\�.,P.���W/��{���r����g��̎� 
X� >
̽��o����,v�$'e�h�B| �C��G����{"$(��C�� �i���J0�~O��
z��J��cl�r����}j�O�]�[��B�
	��9� �<�9���Sb(T�/�yf(ў���:-��T�D�A�����@'��/R'����y�N�[ߛ�3?�;nD$�_��}�š��<Z��$%�?(1΢�i>-&�¸��P9U�^��x��<~4^��.�0���#�;ߟi�%�G��\�������
��)P���a�I���������6R��e١���Ԫ�֏�
k�괶��M��M�6Ѯ�����Ab���N} ���:��F���9�Ur����ꧠǕ����iE�`_����P��K�u�f�T��
��:��k�A��+��i_��
!7��!�q6Tt-����?�� 	A�$��b@�k�"q $>�����ǫ�
P�
�����Z��%���vٱD��X�}�ب]t�i
;�֨�ڹ����S���+
�D��7Lj��:#�#ݢ{���-����T3$���8��8t%����|t$�ˉ��W�ӵ
��k��i-Η=>w��qڹ\w�Y���s��s�����s�y6%6{6&]�jH���`���T�$>5���@����| �q��4A�y��@�+#
Wӝ�t[Z�F⋴��d�ډ��
�S��5���?���gc�b��)+

)���yL�e�K�g�Mi4
Hm5�M��'U�vSU�X*i�I�X��gk�<OH�	]�~h��/�
���d|�������Ɯ�

�?�?x�c^u��j�_2��z��׬%>{�����YjveV����c��<dݕ��u{�U۶,�/˒�w��m��
��#��v��( �
����
_���aAh*H������QZ͈	�}S=�
>��5�	Sհ�|w
��c����e����my���U��W�o��5��+
�o"�	�Jb�Z����E�(� ��K�!@��k�� ��@ E�(��޸�j��u�nk�n����۱��vv���t����;�ad?����=s��9�s
�����߰NJbMH	k��)	^
ك{�x

�
����s%��'	
�0!n%��&�,%�^JR�/�5���|Ϲ�R����3���q��S�����։ة����PG�2{4�!�x�W�!�s΀���e$	��k�g�����|�¾����Ct�� +J\V卵WI��*9}V��8���=�0�M�TL$[�ƒۘ�I=!��C�C����Y�=�2�/�.�H�����]r³�	זDظ������T�
�u�Y�c繥�ΕA��t_����f�MM�tf<�T���Dz��#��DmZLU
<�lb�u��R�ܞT�K1#�T�
֡�)�*�[SkI%��p�^��u�
^oOq���
�<�╻���l/Xв�n38u�ԓ����c8;�{0K�o��e��=�[��s8�Ϛ6,hUO	���D
���z�������4�
�E8��ᷘ�?d`�A���{.�>v��<��g�T�F�0즎�Ї��yj�^]�w�!�S[�lϩ	m�n�6gu�4Caͤ�&s>�*�
Ie�#�Y�BCDH�YC��B� �>�9��Ή�װ{^.p!g
�0e
��b	�GP���
5&0z
+�ޝ�,��}`k~	�I_Z��ȭ�u�s��f털\;')�Y��h?�P��[x���J�$
 |���s�×j�ߢ�7
�A	��R�7��
+��`�L��R�ʢܺKe�M
+���
��"]`��Ȭ3V�V�s͆v~Y�QaI���H?+)�/n(��|+)�1"4� �#�U��cpу���.��
�{�F�������[���U���QyнŜ��X��[W�]_]j6��B�Jj9%�m|cq��P4*��Ht�+r��ޠ5~#���0��t������`���a�B�	8Y0�O0{�
��Ͳ��ny��\���V�QS���
+(��2U�XE�j�����/��-唞ה^�d�ޗd�����3MD�1A���J^�W%fA��=X��
��4��������B��y#45�Z��ѫ�
�ޥ��~E��@C]S_kͭi�f����!az�S��z;\Yu�:\Y��HUI�Tf"P�	_]Ax�<K���
����	sЊ3hA}�����`�o�ڎ
���(�2k�{�5ų�-�'�U�k)
�i.gi�,�����q@��0)Li8/Jn�-J�&J��G�l!��:�O�%��<�9<�3��38߈g�
+0�ЏX��F��� ��	�򞭔��7���z~����Rz�ز|5��靦 ��ZVj����n�&���Ƿ�q֛a2�Yۿ�q���Bx�̈́���XEna���̣��
s�
Ѓ4
0����El(
x�(�Ѵ�8zf���֟ᥴ�|G����V&�0�z{C���cz�9�{��H{�đ�<�H�Gj#��6�������_��]@��v����v`-�
��}4o�ZGd;Ġ��c����!����P��
�
�o�h�� �HO`�#8jx��g�:�y�_��AŠ
@������"f`
��=@���]� П H?p��
�N�Lo���H��K���Qe�
+ځ�
���<�h��#�i�t�|^w��������|�1���Γd��	d���:f��}�dž�,� ��T�D���H��&{���C̼ �
�a��n�vI!ʕ@��RR�pe�v��n�\��
��u�]C�[]3�W\�
[\_0����s�
��4K�7�%>k���C���?4
+`C�z'f�,@�
��w 
+;�kW� �j0�\Ž�-���nؾ$�mˉ�uY
[�u�M�e��W��/�ة��)Z���x�M���*�
��u���]x��p�N�A�{&q38��;���p;�@�5��7h~�D��@t[ �ۛ �N�D�n���^>p�W��
B�Cȃ��z�`���u�P��	�y���2��cc }8�ܻy3��i����t�u�`�
 ���� �cOx �������>����>���� ޏ�;x}~<?�
_|����^PQ]i
��o�

0�P,�$�51q�T�
+"* �D�����(Į
�ŵ�`Y#Q��	QcC�

֛�"9��s�p~��;̼�~߽�3�Hu1~
�}�|8sȼ{�¾g��
���O �Ӏ�
`}^�oZ�/頺���P\�t�-@n�*���
w�����j
g&p�!pS��|ƟT�d�'���3�! ���1��$�vp� 䋀�@q
�-5ِ�m�f�
��

�Gܔ<f;�p�{—��
��xv
+��	�������w�N��֟�5���'sv���/3�k��cߦ�T���"-�mK�@MC����
��n�*�)\��DZD
؂I�{��OY�����2�p�mfl�_ w��t��W��q�3���!�!�DX�
�&ƒZ7�"�^;��
\0���O�[/
�|�����Dݨ
���M�i6-�%���Q)�2:N��.����sbl'�q
ݙ�'�ۄ�H�ԛR��)4���"ZNŴ���^��Q�F^�^���oI}��.��҈%l�z�*������!�F4%Q:e�����E���b��+��v�w
�9�'��c�G��CzP��zD#�n�
�f�0kۡc-d���a�B�6����k���7�\�R��
u!j���L]�j�F<Vo�CU���;�J�>l�Fຕ@��
�Cq�
 �� \��֥)��������b�J��r:�ɣP-g�<
�<ܗ��\�;�Jܖ�ᦼU��p��8��^�E�'��	霽��:�'�8����^vMm <er�f-7g{��ܹ���������2d��0����j��ˆ|\2,�E�2�7��¸�{p��G�r�"
w}"��	�:�&,���7�B4SCx����ހ�y���w�ͨj��Mb�[�$�Ꞇs�#��8����L��\�G�T�J:�Aq�s���a�������[��z���%T�i��P���#|���
+�O�h�k+-^���#o#n4�¥f��K�`��[7��C�w���P�O��O���g��~�<�}>�-��,U��)Q��٬���j��i�f���M~/������-߿-4�˩ŸS
��۟*p���-lQ�犓�|P�: �Ma(����U��OU��ϰ�f�Rn1MPm6MW��f�7�
+l0�Ԭ7m�\k�eYb����׭V��h��
�%���? Z+j�s�������l�g�X��gz
j��~���:J[�EJ��,6PnLW�
�.	�)�l�ڜk��\�]n^b�Լ�f�y�\d��\h�,�7W��9��� aS����s�\
Nq�+��H�
+e�u��-
?�?;���w
+W�t��X�1Q��cJ�e
�j�tȴ*
+��O�Y4K�Th;7h�.?��~vP�}^P�}n�#���~z�Б]N-�:�3.m��K����vʺ {:+�=TFiXC��Eq�YZ�X
�,
+�Sv�fU6�z���Y_L��.4W�:�~F�rǜ�
��!{����v�z�iB�Џ�dO�����%���⹷����7u�bM7g��j����H��wP,��,��ΏL��떢��u�͌��ls�d�v�q������);|�a\�N�����w�Yo
_G=9���
7Y��#Y.�{{3~,���K�`E=����^&��W{��^�����Vo��c�vJ�4yR�p�	����}��ب<���Bcfd����m.#"�]�E�tɈzëғ�H�P�)�`e8p���v$p��������(����x���J�����O�2'>R=9�����$���A���_ٍ���Cf�	��=s
�c�;��eH��~��kZL�tN�r"}z�p���p�p���c�-<w���L�x��h��I�1����k����I91��:�oO˱�	ڬ�d9�ϗv#��tȈ�F?4n�!=��yp�
+�A��nɱ���^�.c��
ɱBO�u
�
��;��y�f��d�8X2��y?���܁n�I����6���`�q��Y�5��kG��/g�K��4�!=i�>��4CJb���e��6�%%
p�p�j\�&#���������}�������YI
�%���)֘�ꌉ��!;�_3�����T#R�4�b��
J�IOd���e
���7	1P���,,.��V�:,��U��H�A@��*��`-�k1X�b]Q��QD���#U�ѱ���rԊ��:��k+ڙs���@��w�����Ť��,��F/(�GFW�ύ��8;j�SxT��QW�c��(a>_�#�

����}x�k�����+��$�|dm���8��IZ�%BN�(If��4-y�YrR�"!1�ba�\eLB�Ut|�M�,�9���"V��6:���p
�kv
+���<r���X��������`�A�'�uH������^4?U��t[df8#=�U��1F���c�(}Z���`�����h՜�눔Ś��BmH����IF�I�
��
�']p����> A�>0^舶�K��
g�ų��f��]�
��
޹�>-�)9���;
�r=$���eѹ~�Ȝ�9�aّʰ����4���<M����W��3��2�O����/���/M触	��T��Ov=��~le�s�۲�s�r����)y@|�
+q�XP8QE�$󊼤��&��
��g�(�
�X��(�S���rm��j&/Y��]R��YrH�����{:�\���v>�$Khz��:��
�w=}�lIV��|���(f�Yb����.sFx�
��<%!e�3˦�˂��K���Q~�-'-�Vy�[M(Yc�^I��W��ؒS����ڎ]*l��H!)6=
g�;ؖm^�!�I.�I�����}*$��BP�#�� `�h���K��W�j�lҪP3��y�U
�UeXxUY���RzVnQyT�W�W���+��>j�����
+a�^��c�{�s��2�|s@�鎭 �W����U[`�
|7�q8���P3
�k�H��̐��	���Y �I���{�6�+�1n2w5�5w1���l�m��xk�:�VX�X�\s;�}F�Z:K+��* ���<����m�o�Ԫ�Y��G]�׏�[��\?�M�x�,i�+q1�K�6�H��VȆ�jdCL���N���2T+䃶�^7�τ��=�{
��tW�
+�M� Dofm������]2
kP�O

�3 C����
�w��ǀ�P�o��sc�6.C�}�$N��K
��E���%q��\�[H
v	����l�#�z
���,z�a���
�˞�u?0� ��
�&5�M:�����0h��`�<
�c��=F�`Ӓ�rX��B�z�\�U�3X
�>"$d3��8�2�;�s��
`�. ��������00�(лв]�:!�e�
+mv0o�
E�2
+�N����?���!k���� �vN�}'��5����) i{M�'܋����H�Dr�A����.�.�����iT
�����5/
Z�\���/�_\Jy��C�2�h/��`��pB�/�������뭐yO���3�3��O��W���:赦��;���X�_�*��8�kx!v�7\�[c�ی���@77�����,�]N����)��K�Ogͣp4��x0m�ځ���=�jz/��ȏ��I~"�r��~���T<�<<�E�W
��y 
~
+n:��-Z�U�����C@(�4�nO�y�i��<s	P�+��p�%���<!��_
OEl	s"�6,�q�q� U/�`�ŷ�V�o��!,�!d|
��EƑi�CRɇ����5�H6�I��#�89C��"�����?�aC�5{\UoE_�f AƐ)$��'�$��2RI֓��s��k��8����Ё�,�&�1�x���n��g.z�̅;�&�d6�#i���9�9�J�`5=��l��������
��3��
|�n�6?y��y�
�:-�а&Ē�(X�ȗ��'�H���e�U@�rz��YK���-�l�i`q���q�������
+G���#�֌C����cŚ(�CXxB���3�
<���=i,����)�A��?��p]V�k���*�W��p�l'.�}���V��w�L�.t�?�?�h�8�|��kD_��X2�=������/�#q_=ݪ���
�������eU.�����T+qV��UFt���z;:��qR݂6�N�����l��E#Ь����%����
��Z8��;���	?i���;��z�& g��ѩ]�]N�2�>�/�qC��.נ(�+����+��7&��F���,(,ȲܖEv�v���rY�˂+

"��.!xC�E��h�&Fmc��6�If:i:MS�M[�vڴ}z
���<�_��9��y�>|e
>X6�����e��7���pm��ŕO�K���\@��$�
d
��X�q��u,x�F�V��e���
+��*��U-�]��)�[kk�ݵMp=��{�������aj1d��r��r��r��_w�~k�o�7C��fC	�$r"�����C�kK��Gm�o
�����Wk�q�Kp/4
n���R�Z�
.G��R��Z�pP���9E;}V�C�)��g~֬�(�b�}Bq�}Lq�=���=�WΑH�H���둄�CH���W��
�ׇ�G1 �7r�}��G���͛`!:�)3aNi��(-�)��>����)w�f�
�i�^�Q�g2z�{8�8w<z�7���U~�Q~�?�_���\��_����6�|f~�F�dܳ�pύ��J

�V���8����	i0�`����dB�pB
{\��S�r��n�!��7
���O
��	�
+}�	�T�����{TDгD �ق�@
zN
�?
����1��D�NzN$��%L�$S)Y�XJ>}Hca
kl�!M
w0��7���ߟ�WЧ>(�U	�Qϊ�귙.�=�C�Ӟ�OQ[2	�$��<�%�b޿�{?�@ω��l��sc9�ʅ�49Lføv3�3���
�@fk����זs��5�ތF~OF����-�L�/jO���J[���>���})iN��ؕND�"BW�O��_��z�p}�b
�0��L
+&tRݱ���p@G��t�>�ի/`wg[�]�6^�g@ێ��֬�@wV?Ӓ��t3�Fݼ�^wK���ZV��w�#��ơ#"$�9�p��
�7 \G߷`�=� `
+c���i`�@�J0�C�1��)�Q��0��󊸞<+ߝ[В��r�E
9{�NÈ�a���ޒWޕ�
��m�'2��H1���D�>���O1w� W��9K ����(D}�7��
+�A�)
����i�N��3X�&{���m.,�5V�4�
+ZE5�=��!��8)������Ae�_�������H�S�GD����瘃[x��q�z���~\�__� z�_�Βh�l�V���iI�]�lvcI>�Yb�9Jl5�N���-�,�+̃�R�aY��LP��Z���I���Xn6i��H������;����
�\��>�b�<���aN��<�]&O�p[#�ٺ�j�jhg�����TW���ր�r����ETZ�)..
��-�Bˬ<�r%�h����h!��"A��b��3��:���_C�y���~
ρJ��Xڬ,pۤ�l�4V���:�rT'��UZ��*�m�����r��V-(�5�+w3��$F�,�zRn�.��֟"��+���	�=�g|�}w뿈�s��wj ���� mO
���
8
+��n=T;���L���4��.�m�+�9,<��
PP� ̫��rj���k�����2]�%���'ȟd�*"ɬ"�L;atv"�ٖx�}wW΋�u�
��D�Q�9 at Z�z�W������
+�rW�����6�t�BW
;�����d�����B]�
��aX��0#ImX��4ܗj��(IqqJ
aR�(���w�1�}
���	���
i�o{
�
7,�dP��*�=�P艁|�v*ϓA�x�,}k!;�����Z�������+Ը���if��<���$�1�-�%6Q��nF�w1��s�?�FߋV�q#������:(0v2�۵
r����n�
��խ�2�ut��H�yK�����6q�wu�U]��&ۺ�	c��c;�����0��cۈ`��7���γ
�q��Gv#M� ���0�����/��WC�/
R|J��A=�N%
�D��V�*Xq>';���(}��-�ü��gyQ�ۼ���xQ}��z	?j��X�x�c^��.�=�.�v�v)j��d�Ґ0�@��+w(�
R�V,��� Ư���\�2ZBm��6���^V��������
{��������N�r�1糨{�{�i'҈ߕ>�j�@k��� �<ɃȣP
]S!>	���k�jX?���7��vy at E}ea��Op�}P,�	����
+(�q]����ՠƂ��ADET,�NPX�
�h
{,G$1�qu]{�X�ۏ��������{����
�@�x�g��y��gΑڛ�%_�>�`�Q2l�]f(2C����/�)���멷4�y�����赌A.��| b3��8~�Z��9�P�	�rx�ë�;<+"�Q1�ír\�\��p�4é��U�p,�2!9����V�3y����LYǻH�?���R�O	VF�*�gS�݀c��j���u#
`WD�ak���26�1�Z�CcI�ڲ*K%���\�@]+��!��=��b
��ԝC݉�
Eݸr��6�����ԯ��_��Ƞ��AV� ��h�6#G��
�de��Y�PV:��
���S�^���
�
�jO-�Pwm���.�߃�k=�?�
���CIl�3�Yw�8ߕ��F6eل\d�i�kbR5љ�
&��+"�CV!��V`z�m��DQ7��� +�|
�;
��R����@.�
Wtl��l�]��>�
7� �L�b��|�I�I}g'�&w!��h!�y6��
�N�(�F{;Q׋��� ]# �D��u�Or��Lh�v�/��C��?�[7����l��O���
��1yI#_ҐW���������h� �
v<x����ռ�mּE����xD����3��=��桍�i<���,���`��!Pq��k�6@���k�A�?�	$��#�dYM6�RDJ�vRK�!��u�/��+~��xI��!쨭�Pp�W����;H����32�$�t��䐍du�r�
+��.����2i��.
�'��W��G�����
�ƙ�5���H?2�|B>�N"u��9R�kC��:k��%�2S��Vo���>�~���C����G��7�A8RW���m!�
+����Gz�j���XjMf|�tX@�Tjd�������s�"�@#�
�~��I�
�p�'��4q7F�� \��hK_h�ZG��9&��ۇ��G�x�}L��ԙ�0&���H���e��%�r�M���8O_���ŠS��	��8�t��Z%�#R����9��ST��hgG�8���A��'5�qU�˲�h�%�|:����bN+�qJ�'�98�̃UY�ê
+4�jpHՀ��&|�����W��2c�j�AxQ�eN�W^/'������7�~��}�6}pV7�lG��X
�����3�`?���`��8�n��s�W�u�2�:�A�C=�84a��T9�F��@Y��Bz��7ˈ�����n.yJ\��C��;N;t�Q��w
��ð��Թ�G��T{$a����L����敃*�|Tx��{J����
��Hf�Ki���
+IA3!�!�Z��=��k,���	`�;孁����Pg���}��� l��ʎcPR��(�b�dl	H��VJ�
�� �TX)��Iy�'e��~����L��Y�֐՝�F�R�K�0���3O�v���@ol�
��=P4 [����Gas�8O��gHy!s��!)�
!���!9��!�5!��U!��쐣���e�OKC�"#TțY�?���]���8i��G,=�c~��3X��P7l��a(�<�`�G`�q���8AZc�"[eL�eʳ����ƕ�L�FE�q�2ݸS���^�~E��X�(\(�I���<	�ԝ�n_>�|r�8n�����U���	�=���+�LXc�F�i��e%-7��e�&�2L��t�\E�)E�jZ�L1�S-�0�FlSϏ8��gj��1=��6	�,�Pe
�<��W{��>��s� �:��W|j
+{K���ھ>X���
X�?
+����#����e��&��5E�
��\�������F3+�P�yd�vf�>����6�#h�E	��(��)Tm(��O|ǧ�J�x��
�b�c����a�@OdFwƒ�0������XiQ�G����d�c����NR̎��L������N���N�γ�]��
m�M��V71��.!Fh�����*a`+�"�}�����c�������c�
�buX2��q�H�
��&̏(͍��͎)K�#���"q�4�!��S�R4��Vh���u�GEy�a��fav
.D�&�葨(�((�"���0�
̌��
(��q��h]\Q0.
cM�h��4rZ=&�Ic\km�m��&��A����;��8�}������}��yI�ir��j
I�j�I�4���j{���'�J�x�U�?3��~��F[�6�a���>�(Ѡ���Ԧ����*C�PnH
��t��$=WV�^
P�V��O�W�5�
��Mߡ���Y�g�M�Y�Hc֋*�^TZRE�S.q�a�Q��ؑl�ZV���u�d��D��9Tf�C�i*�L��i�PlJ����N�]��Y(_�Y��e���ƕj�q�&˸K���ΘqZ��qC���&#CT
�ҏ����}m��f`6���9�x%�R�uԘTf��bK0ʬcQb����BA�<!?;E�k͔:�92��)϶��-5J�e��h^�1�۵if�No�P�j��M5���g�*�ԛDe�IT�r�������,ځV��q#�SüTpM�9:ۆ��

+�c�
ӱ�1W�;�$9���J͎\y���a�V��Uz�:u��UM��6���6�vU���P��-��Ee��	�^z����o!�c.���*Z�zR����,�U#/o��
�4X���s�`r�I��,��鐥9������
ʄ<�j~�vu|�M\�IrY��@
�PT�<��xʟ���1�.'����`�!�<�N��Q��@X��#�$
&�]�0��	i�d!�e�$�r���ق�ry|I�"�d�2�x�jv�����Y�ߨf�S�*�1��	�>>d��b��Jx
�yh�I%)�{�rs� ��~0�AZy(R+‘R���9H�LT�
�I\E�4��L6��-�U�]ު�^�WY�>�J���"r���,�J������B�����2`y)PK�8�]L�WA߳H^�FB�@̯}
�a�瞂��hĺ�0ǝ"ĸ3��n�d��X宖Ns/���n�O�}M>���<���<��<�Z�G,!U�|��w������K�RE���C��Z ��ާA�������!�n
��&`������ ҳ Sy�_�X�)
��&z%<��=
�<�H�<�a�?H�Di�ˤ�W�d��T�<�p/.��$�H.����L�6��XE��Z��́�hƤ�ј�f"��Db�w�{�׈0�c���B�^a�� [...]
+�	��~�u
����@�����7hYGo��
ڥŠ�$;Fc at G8;#�\<өG��
��]
+���	�����<M�
hw=�n�];��G;�65+���P���`0���^�ہ�N`�
`�~��
j��Cp(�C����!�EA���e���a�qC��1}������C"?
���6j�e������6ր����v�1�.���Ao�8��]@8���B{|a#��hB��>��n~p��s�y����n��u��󘈿���+�2�7���ԝ�Xg
&Qs45��9�=@{��?0�#	pZM�����3�lF{��p�3��,?�gyٟ�!�a�{(p�m>/��
����.�d/`=�
f�C���70���ԧ�'����������J��"�H��5��K��\�~���¿ƍ�	��b^?En��D|B]k�4�
R�
C�I�
�X�=��
+(z������%�-�B��R�&k�O����m���?r
w���޸�p��0�>&��?<a����������;��QWw�}I����~���%���(��Ӌ�\�C
�9Y�M��FM�^�"��ċ
Xd���Oe��D���
�$�H$�'�NJH�#�I3YOZ�+���'��q��p������w��S
�����!��

"A$��!�%�$�X��,"KIYI�p�
�m�w
`7�
�pwp�:=L�
��������QC�@�����E8�&	��x
���:�pS��������8�V�g'���y},�q�gp
��*q�3|˙z���:�t̅�o�
��d,�J͹�"�Z��Q��U�x�.�i��k9W
��vn�|������S8��<F����8�Y��v�Ey�q��^
�] �[�Q at PNA�c9V؅v9v��Z�e9� �'�x�b�z�V,�x�h�ĚX�4��Sg�:��i��$�f:}�Em�d��g�}�?��<���=���?��5T-u'�@�D����Ok�%k�)"�����d>6�2�j4�h�G���L����A����I�þx�q�1�Gx������P���R*Ǎ�+�G�sM�ԝ��PS��20�l<@��
?F-5���A�ո�
��
��޸�5��Z���x
WX�wq�+0"<���⢤��MT�8UK�<�y�X>�Ʊ���s�
�qW\���
�%����u�W7�hZpYӉQ�
\��ň�v
��¸C8?�
΍��3
n�&<ĉI���d [...]
+��^�
�?�`���ST�!��|�:��lG��
�<v�q������2�k�
����p>0�����

�V�#ӝ84�ߛш3۱�j웹	C�v`p���>�ݳ�10�v��%����%U�'������8V?	�_L�Hj�ȹ
�{�<
�3&�̬)8>'�����$��r&���cp�{T`��:
5cgP'v�ö�~ak�
�?���|^�
�.l
+���>�/�څ��Cք|�/����@܎Fcy�G����9���� �2����
�]�ұcq6�-.���Rlw�/�#�	û�
�º�]bO�~qu�i�;�����X\�/�=R}F���4�����X��Lk��6c9�

�b r&�G/Ė
��$�W����|��ٱVW.��j�ձ��*]�إ[/v�I
�!�-���;*��ޕ�b�$7��Sj�U�=c������;�3Ҙ?����o��v�$�/��޸ذ,
+��X���n}���+�Ra��%��=�W�.���H�	��Ƅ��'��NQ��?Rj�j�Wr�^�\	�E
�kp���4r�iӊ
2��)�I�~<�'����y�NGWJ
VR�n0�͐/�
B��Bl4ԉ
C��6���
�r��U�e8�T.j*
w4e�ߓ(N�*;ST��<�����Uڍ�fր�g����_�&k
t���3m6:2B��СŘ�&�r4s��Hp�b��F�66IU�N�¸Q.3�TJ3jJ2��qo�؍5v�ߕ�
U~J�*ٟ��D�2j^� '�9�1�M���5�2��X�Ek�
4g��
�Y�9
��l��l��+�
+s�Xn�HNs�\bZ�8Lەb�~M��O�馏��[��K�դ*�,U&�5S�l�#��5/�G��i763����+�w.֧�<	
9S��G�%չ��MEe^�P��/8��bIn���uKŹmran�b�ݪX-�4y�3>�u�
˯��
������lU�'��
j^,�^��h�71�n��F�Ș�yP��"\ֹ��-B�-΂d�,NJ�`/(�
+�bAA�d��Hy�ղ�֯dۆ4f�i�,�5�L��}2��dZU%3_����S�1�1׫�=W̽H;��X�x:O#c�㳪��E�p�FI�B8�1���(r��Б-�
6!�Q"�ګ�
{�d�w�Y�>ey�&���&��
M��CMZ�MZ����r��4�;��ej�\���A�����+����X�Eq�
��挄���2r˲�S�/d��SY���l���N)ݹINu�VR��5���5I�4���)I%����)R�C���m�|��Gi�J��%�i"���ߋ� k�$�UN��j
r�!ۥ�ɕ�,��]]EB��LHu��W���� �]򲪣r|ը纯�U�U��T�
+U�+W���g�`�/��*���!m�M��VXE�]
�k�#���ݳ��Fz}����IE�DŽd���A��yZ�8�Z1�~�����SI��O�r�Y��S��ZU��!�ϸ�\�R㻤�Ž@�H5�
5����� �IFJ�d$�LEb�<�[ð�u	⽉��f`�ׂX.�o��m���B�w���{P
���޻bh�'bh�*�6�FU
{��'��Z��a�'�|/�����^@�,�
�%��#�k&�� jU8"W-EĪd���Ģn+ºK��u�G�|�q����X�YĖ�,�$��&ni����TUk_�p�
+"��$�D�ԒPJ����2��Uc�LU����jj�:J��ϕ�:��Gr#y�����<꒕�Ȭ
�g��*���]Fh�I#t�M#4�4B3`�i	M7-a�
�*t�fpY
Sa*��gC�~m��w��@�^dQ�bOE��*<7P�s#�)7Fay�
+�믐��
+�����
+̟���j�_�v�;�\y�)`��j�cmAv�3yf�.�f����N5`={e!�/�b򥈥Rpq�/�R�?�-	T at i�ڔ�ʿ4A~��kS>��jm��V�����ҾU^�#�_�W�OjY�Q�x?���Vv&g�����R�\)� �"�K�/�ʥ�k����%O��<

���X�p���1P�
o�m�$5q���Q �c���XF��Tޕe�)�
+SM�4PI����Yh��x>]B
�I��ϕR�)�51�Jj�I��b�۶2�1
oc ����R
P

���RC�k(b
�Wov�m7�)�
��
+�	��z�rj���E���
�o��TK�;$�]�++�>v
�۽
���c~�ǏZ��Z}-ͥ�b�b�� j�W��#0�G��
��i�%�o���FɺU���h�$��/5?(���G��	~
ŏc���0���$~�b 9E����Q�:�����_�|F^}�I�;l
5���wK������a�
M�ch�JV��0 ���E:�\:Ǣt�%�B{�
�K��u����L�/������� �gds2y
��4]�!���T�=A�OI.����? �H+��X���MXPܥ�����
���q���>g�A*K����c�����zM#�c��/�v?�>�>��~���_�zN�o�:p�t��p0��J���Sjc� �
�&C���0��&51I�I1�/�g��
ה_���q0 ބ10f�
X�P+`
��-���6�P���Ol����s
��&\w��V���6=�
�0�a&��~��j	���[��Z=��W�^�u_���:Rt�����z�m���e�.������4�+��k�4�xƠ��F
+)O��<�/�~v��VW%qm�wڡkڧ�:G�6�|"gֿl�"\��N�:u��[�ז�j�D����+D1�����x4�b��j6�������plVcw
v�R����+��4�g��SX>	ίu/`�@��hȉ+������f7r�� }�!�>�w�7%�,g�ҹ�Y���n!�K��kt��
�v��>
�	<�����Z����äŘ�
>��<�r�
jr�sqQ���A</��::o�1�
O�E%��=�h�G#{�P-�^9��ح=څ'p��S��[���m/`z��u���܂��Ϋߔ\�"�D��UG�*:�8�o�1��h$���M��	X�N>�KP_�
٤����4�*�3Z�zC�Ǫljjm3S/`�R
�
_Z�-��
+�N����!����M�h��o����n6\[�������b�6��R��\�wϑ�c�*=V��c��=?�j�CZ�yF+�n�����{�>�@<���iGK
����i��O��)r��N϶��
+ז���ѻ��Z�.G��Z�z�ִ��r��Z�3]+}fk���}���Ϯb?���j�ԿV�����r�(���E�	h�!��¤ϣxz��
ήA{�ցgկ�6��h��*�ku�x���/{��*�0L�
FkYljZ�1I��Z����
�+'�B��[�0x���Լ�k�
}��P�
�����~�+OQ� �f�×u��6�Py��V�WIH����Ra��Z�i��:����Z>N��Z����5/b��F*#r��#7i�{�YQǍԨ+ƌ�G��(�HyNd7x���
�g�{�=Ê6�Wvg�"7�
*�l��.a����n	ZЭ�����跔=Js�'jvL��bR53f���g̈Ya��T���2�c?5�b/ScSbM#�I̯\%��g�ˌ\}�2|)�)�e��n�E1>���=�*��U��)��@��=D���a
���)�f�n$[�I�
c�u��huX&��L�;by7�q����3�q�Fz��Wh�D{�o�͌
������	�q�ڽ]�i�V�K
4+>B�	 [...]
�1�g$��b>��
�������0��{	KHe�
K�"�I&�L2If�LB&�$$C!���"IT�BR,	�@�!�(}��c��V��V��c]
+B����_H��g�3s����9�|/>����X�$��E�
�Ґ���cU�8E5IsT��@U�-wd�ґ�
+G@�2#�Xa�:�Ŏ;�BG�Y��n�;�[y�c��q��9.YK
��$�_�m�q�g�����.j��]��L,k�c
�a�c��S�UU�
+��TE�<��'�,ݩ�ӣg����F�s�Q�3��L����w[���,��q+��'+�y��N��+��fNj?g�8�I�K+��M��u��J,�����T����y��]̈Qif��3�ȝ��;Kn���EF����k�\�m�ǽ��vo���[��V����r_�\���GF��9�Ʊ
�l�M�Ԁxꉧ��,'�r�`�fE�8;J�9SU�3GK=
��q��ɔϛ�\o@^o���1��Mf�g���<`9={�4�cV��y+�󱕒c�}�fCV?��8�+��/�n�-��xB�R�g��T�7\��c�_-�o�r}���'��w*��Q�?_n���0��#�����b&�w[I�^+��Z���\����x�m&����}$�=��o��%�PF<����/o������t��
��]�̂eR�
+d)=�WZ�X)��#��H
+����̈́�.sA�x>0�
�7��f|>���x�����h��A
,�B��
eVVQ�2�#�*�Rz�T���Vj�|��&)�ԥ�`��-
+V(!x�� �l��c�
�4o
2c�������ؒ���bی-�͸"ۈ+��c��/bO�~o�&�j`��<��H���i��X���1J���E�ӕP���	ZJU|([�C��
+���Jņn3�ڍ١�Y�����������3������l�1tzJٓЂ���R�}e��e�WJ���>�C5o�(�]��k�(��F���ӜU���ʥW�j֪"ͬ����F��nԴ�nM�=�ɵ�(z�ۚ\�1��6&��gJ�m<��h����|P�u <ش�����Z�Ճ4�>\3���	�i��7�Ѵ�xMmthJc���uC�2Mj�ӄ�6��i����i|�q�kzC����z[Qk`�mD���#hl#���Y�����y&-�)
�tS�4
��<D["4�e��o�����o�I�Zjlk�ƴzu]k��m���uնY�m{���F��WD��l�I��I��O�ݷ
+ߋ^
TB���:�^Z�V�ŲNoA���
�Ȏ��Ή���XX��.
��Ӱ�
+
�lPX�&]ݹC�;�誎3�~AWo�5�n����lo�l$ϵ�Y�P���F�u+k�Y�k�f`W��ѿ����X�5L��"5�k�̮I2�8�8 �y�w��Yh�$�M�][S�
��
�������λ�z��s)9�[��
��M�Lt��H㱉��T
+���K2v��W�����C3��d//���`�������N��'�����
@��~:�s
�5PB��wK)���w��D��Ҩ
i������pЂ�
v�q�8

'
&�#���a�ˁ����ea�R�#$p���K�����ȵ*5o3s@��;�\'�E�Q���?*
�E�7p
~ۇ)=I=�ӈ?5Jzz,�0�቙��ٳ
��K'��
��'���x�5�Wh��+�-"�l�M�g�����x4#�JÞ�̧�<'�9�=��?��Wь
�1�9� �e��2q���8ρ�
+�U&��. �ר�k�[�m���H�}��+iޯ��p#�
;9��<���K�2�����M�f�]j�>s�!&���E���
:�TK�Xܗ
�.S��
p�8.�j�k�a���R�3н��A�W�e�4��ހ��Rbc�‡�/�L�>e~>g�|�A��`����fN����m���
��h5@��8�
+q�
�P �`%��:X������>��q���B��x_�]}���%�~1�%� ޅ���&��V� #�7B��%B������70v�ޯ�ե�h�>�g^�}~����$%zEs���`@�}x�ËWbCa�ADA
�z��,E�L��
+F���e�;{�v0-[��nr��t�#��L�q�������j��h��8���Чm�>G��u���lꖀ��i�E�P�0'o��eX�׈�<q�L
/�����Y�Y�=��-s�\�yL��ǿoΆ$@��Ä�!�\�0`�
��c�m
6l�aCH ��%9H�PҜm%�Ҵ9�4R�4G��֩��i�V�Ȧ-�4���e���/	Қ����'������������)���'t���pg����Sx������x�
Ƭ�Z��Q������N���
��0���]�����s��?������u������
���]��
W��4����#={���Ԍ�O�J�5�*�:t�0�#4q�V��N|H��5��*}\�.��I\�\��΋x�N.��y^�s\�٧'�y� 3
1��n
S��4���[B�x�S+�k)��j���9�6��.j�Rc����sN�u��i��$�
��c\�Q��4W9s��f92�^�o���:	|�sk�L*�n45��9�
+�����+���9qJxpB�q|N^�3��s����qL͛��y�ph�yLο�
�`�
_a�o�'L����1u��4�tr����X>?L�����0?g�pj���J��U�^l��b���Px;�w�@x�#F�7b;&"�aw�Q�\r㑗�#��G~�-Q�X��M��7�����g����Q;�O-����SQ�p2"G#q$*���q`i9�-���2
v/k�ΘV����#��c�ak�6���X��.
#�/a8�6��
���`�����Cj~���c>1�1�������_��Cq��y,�$Ȱ31;Vc��JlYi��$+6%90���H���A�O�P�KL=�P�IS�A��&ze?�Z�#t�I� �%U�oW�9R2y���WP�~X�a��Jy;R��U���496�*�pz9֧�1�ڌ��v
d���?�}��ѓ�ݙ��C��M��7�!�
�Y�'K�G�=2%|�'�>K���L!��rl/���碗͙s1��
�
e�c [���Do�=9
�V8Px�Wt�S9��ڕ{�QN�Uy^�����	g#�?¡���3���m>�K�,;&Y����g�ɸl`\�*cї���y��Ÿ_�΂j�
+��(��[�
+OaZ
�p�6¥��jJ4��	�ꚰ�>���ªzB$a-��@�S�f����4�(c�CO#��	1.��a�V-EWQ|řh/΃�D���*���.m�������^4��aS�$��E���������0�� ���u��3J$a"?���J�E>��N�ś�i�^�����t!:�Q�%��,
�r\�pVh�E��
v�6�V�Z�k�`�n&�AaԾ&
��E��Q�������H���5咸Oͫz�4K�I���='=駛q��f
ܚ%pi��Q)CSU6�U�hԕêӣAgF����&} F� 
���F@����N�����Z��O��IB[%��*%q���X'{��j��}�񻋿���U��Z����LXj�`�-��P�:�FC#j
-�1tBo
Ag
��}Bc<!ʍ�2�
�6�F�
��ZI�k$Q6C�$nQ�m����C2J��_K}����v�o0��R
S�
+M�0��5�Ƭ��\
��
U'*-
�X�QnE�eB�Z��b�;���PY~%T�I�L�(�{��:�ۢ�&`aۊ^��q�5���,
Q[��x�2TY�Q�X mc4�z��L(�5Am��փb�0T�](�
���D��#���R(
�U�
��K��z�2I��A m�F�V�
l�t���6���9��IP;2P�P��Q�b�ENT�F8��w��Z�k
9�W��zY����~��o�;$d5K"���%q�e�I2AF��O|���쀡�}K���
Uk
+[P�&C~[6��
+��A��#�c���^��dz�a��0Vy�#�{2�� ���6	i��-aU�����-�8YO�i��ɞ���m���@�o>r:#�������w�#�K�
V�5H���A� 5Ї��f$&�"p���|��wH�d�ꓰb�	��|����
�.�&�
7P[��M���`븪oR�#�����$3�2���R$uHYjA\���,
����iD��"*�cD�At������H8��M��
�E�N
�Lm]'{� ���L�wX��ǿ *��p ʐ%D�qE��ׁ��
/B
���E
��yj
��Ml���`֓&����8�֪16Mn?H����}~�~�����=��~���_������Y⦎%��(	��)Dn�(�/WS�:���`ʖ��@Φ%r2m����K�ʡ�
���|���2�L��h�L�cx��,� W����<�$�R�k3`��\��r2����#s��͡jg�Q[� ٙ�ek�,3ƛ���vs�Z+�*�P�b [...]
+�S3`���V�j
eSˌ[ۑC�h��(�u�:.�:�.X�n0g�<��̙+
��[�F�_sa
+�S�yH1g`�^.�@��U�s��$����z�
4���fp�'E��g

�
+m=E�������'��������{�x�����K���4�b�X�94s�퉮�j�#��M�C�d�;�s���rÎ]ر;���ر;h�(|F�u��l��]p�w��r��߇
{�)�5���՜��� ����݌>�4��A�p�&�B��
��4��hΏ{H�c_N`G#�I#ů�K��u�X4�`�;�1�'-��c�ٮqu��x-t��ɞ�%�CR[��1Y~ւ��}8��6�9��4�.�Hb�U���(�M
����m™&>�v
~�f���ت�����n����c8!�;ݪu.4@�W�	����9|������
��-�M��
���yw�t�{���>S������ӆ�#��I�?
�{�Y�r��U�
�
+n GL_�M�%݁{ց

0�=&&OV�ۃA�
���c��Y�p
��

��d�r��Xw�@���0
�C̄9P
eP�`�~a��Y�̍;���ټ'��	�K=�=⭇�܁���uޔ������_�8
� 
�l4r�9�	s�c�x�
�Ǝi���
��)�>s�]��u� ~˯�|�
�|
��\�K�68�
ش����
��+�/�����c�Hg�i�?��
؂�.c�*�Z��k�l7��ң�49��Y}��]�Z��Z9���flA���
M��O��Ţ�:#�W��Ϛ��d����D<��/W��2v\Ž
Z�s��.�$����B���|��D�*Vޅ�p�نg�O�S�-�3�7��V8~$`�P]dO�)�㘁F֞��\�.f�2
���VG����r���!���e��~�dJV����9
�]��|�
��
_|�#�ht�����Y"
f��Q��;�c�^�أj�"G��&�A,��[Y�
�6�M�Y��
��߶i9�l�숗�Xu— ��N
��n��N�a������F��
[ȏ�2�
�d�2"���62� �P
�Y��]�n�@�y�r��������,��9lk��
�tŧ�dX�"�I���h$�1�4429����J��B�b����*_T�*�c1�����
+ۧ*oC��{���S���1���ڝ<�A	����<8�~Zg�ն�Z�f�V�
ղ��Z�n�j�MRu���j?Sf�9��/Q��b�9�j��&-p�-��Q;]T��-��Ԉ�����ɏ��>eo{g�)��Q~��h��A�N^Z�
��0U��i��EUUn�E
&h����er�U��|�w+W��r�m�
�]�w?�<������
��5����n��k�0�I�!�vß���WÕ_�n/���*�}��c�J;�U��
*�4X�;��<�1*�J�
�,�{�T��\��,P�O�f��ӌ�o���������v����?)��E�]�����C)�!��*m�U2�a��.mT��AE��5�k����)�7Vy~��7L9�ɚ�?^3��kz7����
P�� �2VkJ�6�
Ҥ�3J
��&=Uj�E�����7%��g���a�z<+Ŗ���7�fn��^	��� ��
���jz�M�9X�=G(��e�JSF�,������B�W(5x�&��k\�A�
yOcB�+%�F�XZ�(.E�Q�6XU�
�<+Ė|l�%69���i!]55��2{�+�w���
��>�4)l�&�MPjX�&���
/SJ�
+��ج�%E�҈���
���C�E#�\
�0�6�C9�,{rh�a�
�V�ᮚ�ɑ�J�쭉}�5��
5D㢒46j�R�'kt�Q����@#b�jx�F�
�OCcNjH���,
Q-�����נ�\Z�
Z#mP��G�jR��Rc<5>�_�b�5&.R)q��o���%jd�%ŧix|���4,ޤ��5��^JأNh`�'��P�-�?��<*���?we1 $�� n "�"�

�2�,�0Q��NHAA�(����M�q��Z5q�4զ�M���6mz���ĸ�&��ƚ�X���a�9����}�����"Ρ���l����X?m�
_f�K1�S�U����@Y��(/i�r�'+;� ���,�E&C�2
2��UZJ�RS�dH�PR�>%��RB�NJO���
%$�Hr����T�#,�g���=
3�
+��b��oe�Ȝ6R��pe�E+#=I�t���s�j���L��J26(��\��M���G�'�qA��;�Nw(��4�bS
:F�
�@�Q�U<�Cq���l6�)c�22�Pzf��L�J5M����T%e���U��
ř�4�lW�y���4ɼK���`�nkB�C�&���0#�Oa4A
̂�`�
0eIFs�f{Ȑ㣤�@%�VBn��rc59/Y�y��ɛ��M���DK�&XZaY�p��Y�)��
_+4ϡ�\�qh\�C�R,���r(�)�J�
�<zn�?e�&�{)��_���*
Ӥ�I�X����tEXs4�:M��
+�Y�jm��5ں]#�����
+�~��B:��wh��^�0�J�V�E7�Q)��ٓ�1jZM(�TD��‹5�d��J"Z��%�)�����,-SHi��J��T�j�����P�
����FC�C��
ڞ�� 
�lP
��fю�2��_"�gT;s�F�{id��B*�\���H=Y�@[�F��4�V"[��l
z��&_�V����vnjX�C��t8�-s�E4V@TCL�\F4#�lyE��_.�at
���s<�_�-�� =Q
�ǫ�ɷ&J>5IVc�w�U^56=VS��5��Y�!���r�>��>�<�
��e�k�z��P ��� ��
+)�il���u�O� y-��P�0yڇ��>���
+7{���4�>]�5�o_����p��S$��l�7�SO7=ϡ~�z&�j��"��9�Ff3��A��(h
�
�����ܚ�4��K}�i~�i<���[�dZ8�Z�L-P
�ky��g��ຈ�m�
��l��y�h�*^/�|�3Xs"k�ĚC�� �7IÚ%�%m���,�1ϵ�x���XE#�����
��C��
�N0�1Ҿ���C�� ��P���"p8iF�j��z��͚
�� �5J���c�{��J�����j}?���@�?6��f���	���p뤰;YT'�:��p�������p�
z��y�b�F�cI�7x��Z�Z+�o��w��^B�m���x�B<v��.�������c/�>P\���w���F�z�w>�{��pbGs֏�

��ŜC�9��V�M�(���g���U8 ���@xu��������q
?N�x���;�A�Equ����O�/����
Nj[9���W��<��F���^��W]ZG���Mg �_��p��b x���%7�Ҡ�Ï�
,\~��gw-�������/�M�CO���H���9���;b?��%�=�].���;�z���Çp�9����Ae��W�Kä/��
+M��
��y�"��
��uj��M�穀5��Z��z���a��qi����ȥ���g�7�`x����a
na�
����w4������'?P��_���
\c�
+���z��� 
� �a:̂�`�&h�6��5z���=�}�o���Ôx�$}��L�_�
�6o�p���9o��@���
`
DA
+dca�~P���:�۱߄�V��_����?���4z�"�J"����<}��t	K=|�Yx��C?���KWL|Y[0�Ϛ��2�cA���د�j����������~|ʴ�	S�ټ�T?�QJ�
z�9"�>��uqN�	��?�%w�ŗ̺7��5f�/��N��LN>V	1,�v��b{%Ө���;��[��|;�x�R>����<Z7t�H
C�u8
+���#>prWJU}���s_�D��щ��T�MNΨ@�Ə7𣋼������:~
ŏ�Z��u
[����8�}D|E��
�Bm'�|��.85�go�����-/���(t"ш�Z:�s�_��l���خ��|l6bs����ll�2�9=ق�
l��ds����
�ۮ�����"G�'�#��$:��D����
��b��]P��r����\l.`w,$
+ϓ��T�V���W��UD��̮�������r�]��9��� �]���;��A��1���B���9
�(��h���r4*Ѩ�f
,�R����y
ZDd�+�G#��r���"���pvrԾ�ѿ�+`�ܵ^��
Gk4:��ı�T-��T�iL\�����Y�n0˰/� �2,�� 3,3��1��
���$��v�c���xK�ʭk7�V�괪*�R��R�U~���V��.Q*�J��c;R������{����;G:����	r�q���+Y�Ȧc�n:�J�F�d)���ﱰ��G}��Vu���Wj폴�~U��e�Zr6�f_T=/�F�|T
g"S8�%�S[K8]ͱ��lsrx[�����}�嘽,�Lr f���Äc�e.v���L��g2�=&�> �1�����,�wvi9Tk���%�?k�5�t2Y$Dq"nG��9o��r�j8��`!�E8��\���� �I�L&�1��B(i����K����{S
H�9#�3�j���J��Cq'_vD���Syʝ�i%S
K�,'�r %�pj6�i�L�U1��������݌��2���ьQ�fL4-0�`�t�ݙ�2�y_�
d�������2����L�G�_d}>'.�z�i{X��d�U˜j�Ɍf*3��Y&�w�/������4�i'� [...]
+�Ū���I�W=����f�8��%��K�(-����޲Z��<�.z*<tU
���b�e�e�6�Z,��l�:M���񔊧�#|�
+�ğ�bF�k�
գ(Ǡ�Y��gI�[����LwU]�V��
tT��v�n��i�N�b[�a[�ѶA��6v�ר����� 
꬟Rm�v��B��CY�cbAL���7�c~�اz<�(�m;pפ�Q����gm%muvZ�Zh����G�}�F�~����'������&��������=U�S]g<���]�[�Q49ܠy ��; ��߫Z�US�=���8�RhmȢ�� GcM�5465�����䥮i�Z�86�<Վ�T9.`qܠ��e�G�:~GYӿ�Ay�AE��]i�,�{�Iߡ��bH�.
wiۦ���
CSs"
-Է�ao-������zlmmXۺ�n�S�6��9G��(��(q^����B�(p����R�jP��7tՋd��" |�#\��U�K���
Mm�l�4��l�:
+��`騥�����N�:�)��C�{�B�*��s����u�
�����
9�� �� �e��npS�?��uBX��!�'�Dk;4(>ֺ���"�t�QޓDY���
3%�R�=V
+=�x���z1{G��N��]a��92����������k�=���c`�~�5��3�t��
�
�RLrH��[�
(�m
$`
H#Ϸ�\_!9�
+�}u���e��1���ӿH��4)��$���(~I���$
�=��5���X�E�_Z#�_t	�^���}�Wt,RT�
�$k$S ��@:;���I
T�h$9�")�Obp/	�yvO�L\�Mb��&&��+�#r��r�C�|ǥ�Ġ�p�!
Ү��Zj����B��VCq$������Y��!6�BL���a�CSl

a��Td��o1��'"����lg�qHL��ݢէ9(�Ji+"�J_�1uBp:�ع��	D�S��bs�����Ma}�a�ܰn
�Byw�x
f�kf?T#������VJ٭�aH=A�a�+\��8�9�J�I_��4)�ҟ���MD
��Z��Y��XI׃(O
RS_US[�Ƕ�\���[U�\=%���=���@vP5,O8"�Y=��%]�6�mz�I0�H_�)K����0l>.�wR��
�)���Z��L�
-v�j�����5�!���/����C��p��'�V5�4X�ք�,(z�۩g���

C���|D�' z
"���9��&5x����
ZpT�%���
-vz'�5�7�`
B�cㆎS�}���&T��y�i�0(:5�
:�� H�tR��w��K����c���)�j<�)�^�x���rS��긭�����
M��z���[����
9�����5�Yi�Gcݲ�9�S
Ok�I7���e��.���5��ӍB
��2��{2��ce���e
�y��
(�K�k�]XXXv�]`9DPEEE-�}�3�Ѫ�68ƨ�ǚ&5UcըʹM���G϶&iL�L�9�l?�q��g~�e���}��y�G�㣍
Y���&�Fa���V��[O�?�r��&�4ݑ
�C�ƹ��ߢ�����ԩ�~�?�p� Ҫ���
'�K���i.�g����]��l 穋
L�h���ݷ�S
c
���)+����C7`?��vj�	��$��ur.�{�gx��hV.37������k
z���nP�7�I7��M�����;*�D
2f;y6�U�+�6�����S�|���}�.���U�����Xz�M�|��;��]j�
sr�E��5�zH]< �t9}���"�
v�@	��Z�3a,�tS��|
��=���t��������}M��>��|�������\�sOz��O���  B�VȆB}�24F�QG��@�����Ǘ����9
�3���Е��b�A�\�Ru���!u>}��p�?��^0zݣ׽C.����RC�('~�n��>��_~�fb/�%||�������%��
+�x
����6
�O�t���k?������S�n)�qG�>���H^�WB�ԟ�q
��sϨ�سu�������8�Mhl�����6���u��F��*�
��ާ<�k1N161
��){:&�2�l��Q|���#�&�x
��!Mg�M:���c��
�w�����/w�E�cj/�v��wz��YΗ:��Irq�\
�.+

v��*
+��aڃ����I���$bNgkbw%[�z\�h3n6i#�7P����P]�I��4ou.�w:����h?��K.vi ��nE�A�\��G{4�XK�IěN�����R�j5�*"� �/��rfu)�f)�O�U������p��-ql'�e��Z!�#�1�Ѱ��Ɍ�i
>V�c%>V�����2�e	�e�摍�ϯ�il�JfSQM�����4�9�αͷ�
h��f��
x�%{�Z1�p"ơ���4-�6�o,P���
+4j��T��mnq<��Me>������_x
��������
y-���5
�+8�{w��n}W0z�h%��K���dhVW�fv�Wc�!�޽LӺ�R��8M�I~�T�c�&�X���[U�s���<�1=/���g���j�j�b(G�ˋl�a5�ø�p
h��� ?��
�Y�C���i�f5�iJ_�&��U}�M
(Q]�H��Ѹ��8C5�
T
�FU�[U�W�o�<�=���ߏ�2p�Fq��Z#-�9��3#���gj�Ҕ��>(B��lQmp����֘~
��+��~e��_����U���C�,d���lְ��ڪ!�T
����~ �

������q���
>O���������

И�U�Ekt�I�"�2¡�9*P�J4<�B��cU��sh�l����+v*�pX^�9y�n)/�1ON"Cm	\e8�3���
�O�o��S���x���ʨ~*��Ԉ�x
���4&]�b�44֣!q�*��¸j��+�8K^���+ǸC.�!eǟQV���p;8��6���\E@#���$����#�R�S��A*��ЄX4�h�M
l�Q��P^S���U�5��mn�˼HY���L�.G"�\�i�'ބ���}O�0�t ���\{��L�8�g5G~/�K)^�&vWQb�
+�B48)J^K�<��Y��Mv)'9_��e�T(3�VΔi�H���g�f�&�����SJ�^��@��%w��M�.���rdž�P��2(��b�
������4 at n�Q.[��l��L͔3�#Gj�2R˕Nc��� [�\Y��(9�yY�(1��iW�S}Jj���nt�s�\�N-ک��r>�@���)��;���҃�i��
��
��V�gd(͑�TG�9�du�(�9Yg���dr�F	���w�AF��2:�)��SB�}ځγ�$�
�:P����^
����,�g�3���_�Yٲ�5(ۢ��t%gg���W�k�̮*�\�Jp5��f�uoQ��eE���ຬ(�]Eg����S
�Wg�ђL�1P%P �����R�]e����`Yr#��+s�Y�<��9���S�g��<���)�;S�2Ez7+��;�y�*�sIa����SDn[�X��,4&r����P
^p��V��,�o���4� P�!2W����d��U薡�P�E#Q4N�E�
+-Z��E�'�̃�>�8�dY�]p9d�j
F�����Ev���Ǯ"��!�fR�zD�1j5�6�$�HӚ��1�Zs�L�5�Gڴ�4u�S�v���~��L�LJ=���}��}��}��J,}Z�җe-=/k�Mي�\!iZP[O��h�g
��J(�<�E{,�#��K�!�ʨ4+�iS�3E��L�8���
#�+W]EJr�ds���Z�W�,�͊w�Xf�Q�\g�.s%�k�=~�FG!�":�P
eP�idz�
UF��3�8��dw��
��$ٌ4Y�!J0F�b�W�1U�5劫���Ƨؚv��e<�H�yEg�
+_+�
TtuP��X\�~ �ZpA	��x�A{
��]�36:<RJ
3��HYL��Ze��5��P�w���*ʛ�Ho��y���	$�
R^Ɔ�p�`����}t��
+�����V@L��8�GTKC�
3��N�1��ϊP��X��1����}\�~u?��M�g���3g���!��0�C�1�����Ü`��v
.��tޗ�T�g�Yb�3��g����`6��F�����fc!�"� �]��7�f
��́v`�
0D.b8]�`��.�
Z��ЙM���"ׅ����ziX����dt�
$s�
���
�GJ˘+;hv:i4����ts���p]�f�.
u3gv��
�y�g/p9�|�
��G��� �R^'��Ĝ�C�x��Z�H�eR���&�4u\�!�c5~�!��c=~l�������uk�؈����q��C�}������ڠ|��S:N^��u�<j�U�\�>�~��ԏ0h.CM&
l�X��o���ӈ�`]~��񣇋��5顸{�	ٽ	��]��k4N�>��br�K	�$���B]�)f:[`��k�i8`o�g��g��~rr��9H}
�;¥{���Ev��$��
�9�P�,z�)Y�J\�B�c���U�?t-��=��7��������
L0�cQ�q��-��)�8ť|��<�B�$�$��!`=޺!�����\D���|�f)�x���R�����O�hX�ux3<�Ҫ_�;�
�

L
�Y����c��'��E�K�e
+�2A]�ؕKpS��9
��(b� lj�P!ݟ�+a�p:��+�5�
���pH�>�?c�t�$�`]��9���s�Mx�B���@w~DŽ
�q`�
+�a2�B5��
X X��Q�f��e���z���E�|�^&���W��T���_�?�xN���D��H�
x &@�Q��G�ՠ���oLNי�1�]e
+�?>Ǐ?�Y>c2���D�|��oI�9�d�
�8��8�>�//w�@<)�3��̤���N�L�
�?>ď�0՝��� ?���{�wg�RO�yN�9��%�x�%��cd�5^�� ����\���{%���e�3�)�/&�.lخ��ll��n应�w�E��Vو�v�ϓ:��^�<@��G!���������.���b(��?��h�Dcy���2�Ķ�uDڄ]?Sm+�_�qх�*�?J&v�����%��}� �
(n�C�
+�D�:\��fk�m�t��*�t��3z�s��<l�`ۉm�gb�I���
+�R
K9Һ�`�6��o֓�ul�����t��j������

3�
�I{��nYа���1������f���;����L�5b��J�q���a�����x�E�:�d'�ӁⲾ
u��#zo���Б��F�BWA�t�h
!�#����Z���х�G'~,#�O&Z�D���X�����\@m.�6��n��s
����;�w�ޯ]���{d�XN}v�&
��Qhdk�&�Q��,E��*x��
�h!#��#|�B���,֣������r/�!�4G���
Z�-�
+������u�T&b����V&ֳ��n���dt
+�)C�
+�Z2ш����%T�J� ��TO
�e�?<���
q[�Ƞ���}�Ǹ���X�Ƒ��`	������"�
mּ�6͍L���C4+�5F��7:G�1SUS��1��1����2b}r�.Rul��LT�i�*M��0
W����n��
�/G���$3����
[�kK
+-��Ɵ&X��d�W�y���͈���Q2���c�$��@Ֆ2UY��ԩ2a�*�,a�J�4�K��ګ�ʷ~�|��!�{N`8��NZ�u\���>�7�]
���/��Rk3ɰZ嶥j�m�\���L
�ʤ�"i�ʒ�U��T��ZM8K�[T`�T�}���wj��9M���
�E�$�Qnr���v�J�
ˤ������3i�
��Ɨ��R�
-g�E)v��8T�:Lũ#5-u���&�0�P�i���єA^M
Ԭ����I_�	�ە��O��_���
��k���x
+�G�҂Ҋ.�
�
�`��+�ܔ9"T�0k�#Q�i*������7�e�y��G�(�
�A�uY`w�]`�e�]�]6��x�M0�xD��⠉��h���hԦ:���M��4��=�$�Τ�v�I
��۴�
;���^3
�7{���y��{���wi��J>S�����MM�,�)O�"�t�]�-��)���n~]6��p��D�o����}=׿%؃��
+M|���!�.��oNP�9M�1#U3&_���,UV�S�SE���嶶�i] �u���.�Xw��zH���b=�x��p�g�ي�lA�
S���!������|��(^UE�UY����\���QY�M�29m^����a�,�-��<ٗ�оY�.��e���|�9�)�-�0�pv�Ӎ�*��-�M0	&�]
���*�pĪ̑,Wi����*-5��,���T��RŮ:�&��5UW���2�7j�{���/h�����*�u]9��r���Fc3��e.�K�FB��|P	e��;GY�l�i*.�RQy��V�e�(���S��^&O�F{f)�ӡQ��]��FV>�L�+�y��>����F�G������
��� ����


�����*^����3T�͑�[�|o�F׸�[S�Q5�SӨ�|3��kW�o�2|ە�ۯ4�	
��\UZ
�FoT��Q=F��h.&�
�B��
+}/��P06F�k��[��
���y��o�H�CY�2u�LRz`��
�X��mJ<���q%�(�YI�{J��*�6�-h������ �Pe`G�Z�>�-o
�cB�2�)�f(=�
&����rkxȧ�PPɡf%��*!�BCC݊�S\�b�o+6����zn��ڌ5]��
���0P
p�]����W�>�mĤX�6&*%���p��¹J[4,���p��(.ܨ�0
/�6�&|�f�,4b�96Dx��5�ƌ �@=���|��mA{�D�'��R�b�45AC[R�@�p�D�T#E�M
aP��������<��0��i���BS��Bc���a<�}P�{{�
�$�7��e�h�6�u��grј��?�v6ʜ��M�����nc�ښ�
0�m�x�9c8����GX��f��H��⽓1[s�)��V�)m�
)n
�ql(	�".�ɣ=���å�M�����$w�c:<_��O&��
���(���ӧ ����&�⩒i�X�
tS�K�(k��Rˆp�p	[�eg%yt2'�9d�r��cN��/8&s-�[�ֳ���j�i'7�U���j�����C�m�^0}ƛ�nr��
]�"W4y� �&걙zt�G7��B
=��V6�,�Ԣ�����\�1o��v�aM]Q�D��:�����R�o
ig3�tt�:��~͍�[`+<���(f�"�$���<��G/r/~/
��~�
��[��׸�q��}p�Թ�Zj�^LR�
Z(
�D�TL�棆ˋk��ś���?x��0
�Ajr���f��-�8F�
cN���Gg��Z.�x�;\ qS�Y��S�;�Z{����\���������ٯ��_X�bS��@H
ؠAx^������q��4�[4ُz��q
+q�]��C��&�9�����x��
�1�~�c��I��2�7e��
8c�~��!|D�^ �K��K
��X�}4Y���+]$��>���#�I̯e'{ 5N�����1�bh�of�=Cc@~	�W�ad

0�����*�r�޸Ξq�M�&�����:$�fϼ�ɀ�
$`8dA>ؠ�A��d,�-��=���qB���~�#�M����]�[}�wu��O|ʯ~g�
�	��r��y�AX����z�Ea���� ����N�
+n�2.�S��Y4��y����y]����C4���b���9�eh����'�{�̻Ja,#t�Z\S	Z����!}����5}L
���>�U����3��	�xG;h�^��ms�{�V���3���]8
+�����Je|�I��NS���4
hT�O[��}?�#ĞI�y��bZg)�W�*7�e��ƻ�
�j���A�r��z��}��}Fw�����ㄧ
Sh��G�V4\ԭ��~b��
&�Tb� n�_��}�ث�
�ѫm����M-v�,�ϵ�'`|

�/�>g,��ƒ8B-^T*�G���_L|7�{٢����m���Ӊ9����:�w
[i��ɨ�
�F���ܤ��
`<
W�;k,���Ex��N�T2yg?��f�ۈ_F��t���A�7
+�Z��9
#�9N��Z֓I�:Y'���
+��\��9�y������v��2�È?�����#�����K����B�h&�t�0�U� �jg���BF5��׏��p�����6���X�f��
���Ʊ��ZtR���'�e
��]��o��
;v.�p�8q��Nl�p��9�
��&M��N�v-m�v�JW�rT+[�v
�h5���[�@�Q�ZXA\��1&
+

	����
+!:�'���������}���<_+�Qˌ7�ъF�Q4���$�M�,�c�]�O��x��a��YEVW����^e�N�{��{���J�;��Q��>��!���ctM���
:^FݏN�
t��f6R�;�I��h
a�
�:fm��M����E���Q��ڣ^C�"��)R�QX��
�s<���
+��uM!}*F��jT�����
tj"�W�5�=�d��Ʋ7k��
7,j�pV���7�P��E�,+�s_�ܴb�%4�J�{J�CvJ.���Y�m\)W�eʘ���&��+W*ߩd~��
+Z4Z�HAD�˜��*��@#S4�hт���k��"���6�P��
��:MAZ]ƴ��w�R�IJ���fa��	����X��<���1ٔ097�4dnҀ9�~s�b�}���kIi�eF˜�,
�
W�rFA�e�Y�*��]��� �Y�z�����J9ZM�
`
��<�ĉeȖ���"
X-������V�����(b
��֣.��:�c
+�7(hߡ��}
+�
Sk�j.����7�-}G���\�ܓ�<:�B� %�C��YXc��)O�/�;Qb�-�SO�Y�r��ʫ�Y�V��I��6+��^U�rD~ǤZ
[��ث&����xF
Njr;^����
���Ɋp��h����ƒ�8$�:j
�0.��k�QmR��D�5j�q*P� m�Zj�j�����9�F�fy����|Bu����|A5�WU�|
� qO�P�ٍ�Q4�`
�z�=�^�0��>�E���ü�^����P�.�Z\�jvW��]/�ۧ��v5�GT_?(�g\.�&9=���<O��sQ��*�|_����Wy=<M���ۅ%��� ����������<y�jh���T��Nn�W���ꚺT�SMӘ�|U�W���|'e�]P��+���'k���߲5�e��u�v�7�
؈MK6����B�x
�fh��ӼF���Z�r�����Fխ
U�[��U��S�Xe�)�;UxT���e	</s��2��
����J�����n����@?�@�ڠ�w�{����rͪ
�T
t�,�R)��C�zT��^/Kx�����%�_Q~�6����`ZEp���b����ǡ��]?���3D�OiZޙ#{�Q%�VY�ˠF��GőV�#�2E�e���(�Y�=ʋ<���"/)���L����+�
8B��h+��A�h�y
4�]�vU�XY��lY�
+d��e��T�Taԥ��O�Ѡrc�ʉ���VV
�0����ˀ��o��
+�U��Nڟ�`
 ���+/��hנ]�V�G%K�L��*�����ʐ(Sv�M�`�&�$���&0�	��F)~0C�0�^e�o��C#����Y;��]�#��U��
�bƒ
g)4O�$I-Y��@Oqئ��)X����`]�x)�k
+Ә�����$yҫ�o3h$a z���ʵ��5Џ��K�����f�mٓ��)����Ý�7́>�A6Á2���3|43
�#7�96��4U��_�.��4&ab1��۸z�s
V��W6t��-��ri�bA�L���"c+Ƕ�DOb�I�cN�9T�YPs46LJs;�0�c`w^�@�n��w�Uf	5�V�1!��a�5&9�f6�Ԍn�&<�V���
<��cw.�,㱗8��������@c
�<? x��Wx�[�Ǩ���
�)��`��v3֭㬁	����5��O7�XޔF|
4G!��Z�IO0/G(Ǝ2/Ljc�w�ds�M��X,ґ� s�	*�c�أ��`��wi�Go������X7n�
ڂ>�لn�ތ�c+Z�$
_-xI��L|�1y��y�uz�8��c�}���:�`?G�gi��s��y�Ǽ�O��&�� �
�ٷ�=0��ۃ>�9�g4Od�N�i8�)���<|
.[O��+�q�8���O^a���X\���ū�Ú���RZ#�u}��g�\�����"ӿ���3��0���+FH�a�
��W�
���M���q�����M�7��-:uq���Su_��qp?��a�`����ә>^�h^����� �;
�s�͌I�.��1���
����
�_�^�	�}���C~w��=u�e|�������>��r��,!݆���!y��tVL�
X1K�/�W�[�����e�2c�̦Z^�ً@'�~��y�y�_��=�ͫ
�O�8�v?;N
DZ���%���n;7�zI��m�vݺ6[E�֪]��
��B��ҁ(�	ʠ�*�k�T.��T`�@
��`��m��2���sQ�S>����w�{�y+8�!h�n�	X��
��_8�wp at 7)�8���2��}���]c�^e��� ��?��̫��
+<߅o�7�9���|
N��Fb-C�Oo�c���\#�Wp9/�|^�u��¹�|�<~K
��hM�^�#8��0lO1|�e�.�c
�_��
ރw�&��2�؉��_�3/�^P'�=�C�%��i��/pZO�~���|���1��!��}
+�"�zA�RB��L�y���,|>����O��s�yx��4c�$c�syy�0���;���G{�	�W�=���hϳ<��*w�n�Y6e6N��Y���]ad�Z�yN���8�K�΋e�T��/·df���
}?�ed��N�a���A{
�)tg�"֣=�S�q�y9���	�ܯ3�
+����O�Tn���a���w����j~���	m+���'�`�6��@;�v�a��hO����0y
$���>�f{;�{��n2��ŵSϰ�ހ��a<�_֜��B~�c7E�E]
��
��
��
T���K
�2/{��]B?��J��5h�g��I�8Z��r�s̜��y��)��u����&x"�<���参�
ǃ��-h�Qt���1����"���Eo��2K�n�B>@6�X=G�����Rf��f}��6C��<��o�'�G���q�։J�e�kC�}7Ƕ�a��1���1��1��-��4+f
�:O�l#�������
<�+xr
����d���8���rD�.�w-�
+�2k�9�s�9Y�޵��XE�N�f'�;VR+��	��8WY�\N�c��o5��R�T� #߯� ��"g�� ��~��m0�a�{�i	��g���XV�
�q��;��H�V"����/��4�gt6���覲���4�+���dg�dG�$~
+>K�c�@�
Z�bK���I�~��hy�Y�E6�Vh��F��~
,	)��Y}E	���S�Q�iT]�I�Lk�i�S��;�,>�D�j+>�V�%��������%9��ib
"�6���N�&!�����ˀ�Xf�2e�z˪�c�U�9��9�Ty�:�;�Qޣe��JZV��2�V˼�
j�
Q��AE-��\R�rU!�u��9E�q�s
��m
o�hn��0��*��]7�t�
Ե�Ti�U)�C
�j��ꔴ��XS�ҤZ�n�i�cƄ��YE�y��
j0�*h|J���Tg�X>�E����:'?
'�n�݅=XK۳��|���ý49u�_;�-s)�(W�a��Q���V����+�TѦhEJg��ά�kpn��r��*�[yZ��srW^Ru�
pSngN5p�woc-u@[>C�
)�V���B.1W���ljtU(�r+R�W�:��긂��
+�����ܫ�uo���n�k�UsJ�5_���#9�ϫ�}��*�s:���Ļ�v|�O�A?t�
�bq�o&�F�xL
+y,j��+P[��Z��ޠ�M�y���u����7)��6U�>(g�9|'e�="���|��R�uޜ�p �-ĺ�V|e�:�^�$�Z���"��s��~�|�K�w���F�@�܁���rҪ
�d%��
�"#�O��	Y�_�%xQ��gT
xS� �J}NBw3��h�&h��ڡ�{�����P��a�\a���.UF|rFB����t�
�
�-:'kt�,�=2G�WY�!�D.�����5���Wi8�{��	�5سl�y��	�Cc�~��;7�zUS����r�
�cN1d�5�O��Qy|L��j��7�8�SE�c*����h�ct	��U���
+�9?�ހ�ڣس^�V>7C��Pǵ�Irag+Z
+e��ʖ�ʚpȒp���1�xi�E%ɔL��%�I$1ILY��(�	IpB'��P������o
�+h{��$�qh�~�\�r߅uc	�H��^"sʢ��!Sʩ%)�
+S
j���V�
`
����V�4NaRR�Rl�֝��Iّ�]hϠ�ņd���6h�3 /���/��<P�@�������M��M,�"ϰ�2�E�
�*���� &&C7�9ų�>LH/�S/9��t�5��H����u
��i࿏{�v�w�
�#�����A<��0��sqsc,��1�
|�rl7��mF1f#���+�>��i
�<>]��s��
����4�y%����lH*�P_���r�s�N0+8t&�ܧ�H�(�)^b���)<��v�;[�i[A�:A=A�8�m9d E������A����ĵ�$+"�o��<8����ߐ;�ݼ�l��dw���쒓�!� �SAn
+� G�@e"
+�JG�C�)��)R��Z��СPfl�ik�RA�Te�j�~���N��ξ�>���
���e`�.�ɐц��
?:񣛜���M�' �х��.;q
��+��\̎����
�
'���)'/a�����S�}��	0�Pc7�!g� 
��y�� ?QK9d���%�
.���� 5���u!�����}�0�kl����V���O)�^ތ6)��
�`�{`�5�=�0���XI}�Əu�a���K}���u\��kWr at n�zc�y�GY<�D^�%���-ći� �5�M�7�a��&X90��Os�� 6���&j��>괟d+�V곟Xl!y}K؟�6Sϟ����!�s=�U|R<�
�����/��hr�뭁H(!0�
XB��qa�C�*5�?�+8p�l�I�>�����|��	��L�}_c�uM;9`ͅ�9�����x7Z�}���� ��k
�-Ǹ(dD\,
�FN���
�?#'')�3q˥����|x���Cul���b����3׻�Z��>�W�]���y�D&�Qp
�$�
�U\0�!V�s��%���q���@�ϓ�s� ,QTg~)���!Ļ�<�jg�	۬������13 BM�� [
�I��> �����e�W�9�I���н�Fs�ƺFA}�p�C&k��@&0@>�r0
���u�-�y
s%�
��kT�m���r� � YWI���e����{1܏�-S׀�C���X�5�ȵ�G6(пјwU�H}�r���:~\e����������M�!
s?Σi�j��OZ��{���$U1�#�1J	]v[>�_���mpmu
}�)����'h��ЗQ*���
�8�fy
+��>��=��w��$��)
t��9Ïa|�$
���љ�Y�;�6�����f���_)������b�
�5خǶ��&b{�gb���x�
�O�)�5d��t;m�G/Q��'*;���������)p
��X��U�f{
&��wѺИ����P���n���.�N������Vjd
~����E�=�Kx�:\?דDt�O��`X	>��������-`��U�2��K��@	�+�\�g���Q�Q�����H/5�?����z
�OR��z��^N��l�߰�Ǩ��c~g��;h�$�
��i=��
��lYnl�	�W�P��:l7`{
�'�!��n��
-�n
_�%s�ŃtAz�����D��w�m��_P|�
�ت���]>�`�td��J�a���7�#u:��ID�Q��R-4�,M�GZYm�� �b�ÛV�͵�ǐy,�G���1�C,��E'9� '
�F;5:KQ���L����䥅�L�>��f2����H���6��l�����q�~+��9�3��=\�s
s���A�OǾ
�ٚ��5E^8BpD��J8j�����nV_����D�����*���P�#����
ĸ�c7|�8�V�3�p�w1���wG����6Q)pd‘G
n���Rx�੅�
�M؟Ld�4�H�R1è�:g(UW�^1DwA����ý��x���K�#>
6s���1�3:m���Ԑ`�ˀ)��𔰓��U
W
\�ᚈ�x�C����	v�~���nw��]�Al }����`��hi�`,�
Y̹��ß�I����)�&;U�����^U'�4$y��R�T�R����LPij���݊�.V8u��S_T(u�)G�9%�RQ�}��_��ι�_m�>�@�xV˻���JP�=Eՙ��a�2å�L��2�T�Y���rEm5�����W��EA{�������kߢ�^y��䶝U�����r
�F8����X�ʸ�
�HjF�Jޗ�O�����4�:���Vđ��,��Y�*�*U�� "�� �3�����X�|�W�F�\�~9���6> ��>`���b�:ɧ2��0ہZ��yVJ�)�7W�J�I*vf*��R��R�Y N@����9U*�!�k��]S���˵HN�Ze�^���+��쮳�
9�ALk�=�YH�I�;c �Q5�W�R���>
B��K�?/M�<�
+�*�ϗ'�'�;�<w�rݵr���LR�g�
�9<�e�l���2<?Q�������|�
lυk�1�
C@�"�S
�|�^PP�,w�My^C��\�������*�7T�o�
�f��3e��U�������Yɾ7��;�*�{G�ޘ
��� W�!��A
��yA������-��@��A��������
��-T��P��C-J
�ӆ�)1�B�&�a�a0�L
�bZ��N��0��uȣj~�@$�_@���u
ϝŃd�S��d�ʌ�*#�Uz$��H�R�ÔmTbt���(�"�I݉�À)��a���%�ى���>����A׃A��A���?L�
p�����ew�^�g���;���n�	�,$�$�\ T� ���
+����D��8V�^���Bq
�2��Z�N��6�#�2�Ң
��
��>��q���;���9����o��yn�'�[鐫�%g�+{ ]I�l%
+e
VP�!��d�"Z��� �"�8��<�<]��LpUq-��@�ԉh �ܛ_!�
+���c>
)�
$�Uc��֥�
&�S�a
+(��H�w#��)�<a�s2�9�C�>��q-���J��FP
��.�~1���͵�~L{�	��M�H��i�
4���
-J�G	l���l+@�5���c`��*�o�
>40E70�c�ۭ�
� +�W�/��p����dK��
,1!���a7���f�F3���bl����l
m�
��B&�xjG����؄��� �;@�� |�R�o.�����<���)��>
?:�c�m9�&'�4�^6O/����
��3�J��κ�s�ܺ�b��Cg\��o3@�j�i�y\g6��^g��8
���9�@/��}��o
��1DN��Q�C�b����wD�&�A�����z�kN#� 
�����-�:��Nc�nx
�_����`�=��'�d6���2�� !'#�FW�?���r&�e��R���
R�;㚅�ͬ���U�[�uv
~��&�v���6�IZF�
P�I
�`%XEn�E㮥>��yl�>7��
,f=F���5���\�3KT�h\��5����!��%�>��擤!s��`������1k���D���-
^[�c������s�X|��0��>��
�CMlFY}
�s
��$����A
�n–��Z�5d�||�X��`�5�?b
�ߝ%b���&&ϰo_`���a��M�<~���H{xy7����1��R�X���:�8{�WY����I��ň�%
@�#_&��A�%���WL����$��u��8�x�WX�Q>8B>�0uUJ
�&�^�p�Kd��|<a
�&iD�
+�ɷ��e
+�ׁ)Vޒ)V��p��˻�K4�w(�_��
���B�����S���4n;6Y��a�s����_����"����
xP�z^d�t�
+u
|L/�AN�Aù�#�����$^{Yz�<S�����U��)��� �[x30�I�PJ_e:F=��3��S��?)�(���G,�
�J�.���y�_� ?��`0���!ݴ�o4�-���2yV��0���~���o4���}6�{4���?��~�
���"~��:��8
��ܛ$�_���,�`x
pz��&C���k��*��2�����h�K�
����q�x��i�F��A�8E�8A�8��{?��'��i��~��y�X
ԟ�t��N�-�8xl������w�R:3�v�N����k��8Z���~
��^�i@�Gu>G�|Fw�UV�3�]����6�KD��_P�Lpo����Fp�*%���U~/N��
�)ڇ��GN���vSO����8��j�Q��v��85�mjd+~<L<��P6�A<�AT��N�ye�s
|
�+�E�ďX�`��8�M���Pei ����ZN˨�n
v���6�vh=5��Y�k��^�t�7V��VRy��0B���ږ�;
�K�[���Z�n��v���X0c�K{N9�.�v9+
b;B+m�v
vgSݴ�~�߁�T�Z�ڄWߣz�O弩��x@������j�X��l�f���a3�.|6@���b��rl5��]��m�*fc��J
�x�K��H��n2;���6�� s������tr��1��#�<*��]'�`;
db?�J,�~9���c�{���_Og���hgUmD����B�g��&�O���o��<O�2� :�w�E'�� '
�,8��(��� 
lF��v5�U�h7��2W�
+������t�0�P���q�5��;�@�H�1�q�(�N�{����Q@��S	�t��Ox��ZV1�j���TW��S��UE���_�m�^\[�Ɯ�$
-
�z�l��u��
�5�O}�
�8��!
d��
W!\��T���Fl��U"[�y�O���d��n�8����(G�F�>Ɵ9�D��!�Mǧ�)���;Lr+���j�OU�,U���*���.V_���ZUb�R�mP���*��Q��!�y7^��'�q~��&
��������>�@
��^�gU��cS�;Y))*wzT�0Tj���b{��
�*tT�(�Ѭ<g�r���q+˹Z����xJ~�!���ȗ|
�qm��2�˻�[�
�U�2�O%�${
*v�T����S�+Ky�<Mu�(�]�
wX��&ez:���W�gX>�j�-J���sH
�O�U�/�Zl���(����
"�Tr�
��O��%*�HV^�SSS����I�++5W����0*�7B�MJ3:e�K�1V�ml��xRS���4N�a\�ɑJ���b��1ǐ'� �A9�J@!���%7=A9�$e����(����ϗ���P&#}�����cr����?��8ʫ
+�o6��$�,��fw��I6�l~vIHBH�&@�J$
+�$�AkJJ�J��RZ�j���X��ZdZQ���t:0�V

�v�ږa�V;������0/��۽�=��s�}�o�
+|��ӷCy�d�}K���e+��
�{�y�3�����݌�s�lP⼫����`�M�2�|ey��*����
(!�Uh�+ت�`���>9�ò7��RN-�F
 �����6`|K�Zi�
+�����|A|�l�r�
:�)w�
r�(4K�P�
+�Q~�R�pB�p���N�ˆ�
/B׏܆hD��Ѳ!|���PN�c%|�a�#h�p���JF�0ߕ�K�<G�r�����rG�*��TP�V
���+�*��X
瓀�-� �c

+�-�[�� �1��!ʜ�ޅ���J� �x��]��%�oʀ�gO�&w�]E�<T�/��Ɠ-�Z�MT��D+`�J00%F �Q������(b
��'�h
|},늑���]�/���?���<�w�}Qܦ�Z�
u4�zX�;{�S$6ł:>ż�bxLq㤸S���n~ǐ�� Ѐ
(������%�������
�]%\a8��g��|�JH�l��H�Oq�4d�i

��X��6�5������|Ն�oexhE��0W�!��Д� ./�n{
y೎����Y|<���
�
��sc�Zl�ŏv��0�
��:r�� ��E�E��0��&���u���٦�0k�@3�������nI�k�%���e���
o!�y��a|��Hs�v��B�������!'K�A#KY�d>`�]�*Y� �� Ճr\t�u��L-�1G��l��k�� �Kx_
o��8I/9kA��!�h.\���c������ <�FV�x%�X�P�b����1����4"�sq}F
(�vx��g�U����m��xm�7�%��g�#rVZ���5�d
�c?��%DN�)�q63���c=
+qŴ���yּ#
3��6\��/5��������Q��
������%��,�iD e�	��$~l�6���[)��l&`�,�4�o�!��$>��2ꄯ����MS���~��w9Xeqrđ���&�f�������Nj�n��
�q/���X�6�,���a���o���������=puV?�&�k���y��G�C&g�
���3�d��L(9!�Qj� g�����ky?ۇ�G>-}����)��w�žk)�
+��!��#������6ko,c\Ɋ���A�(���f��C�~
��
�y�Cv��
&��ړ��{OK߹�F�*J������y�W��=烀%���
��qe�#3�p�H���\�΀���j�<9y��{�@�&�/|N:��gT
��"b�c�|'�k���u��4���
J��g-�_�-�_�_�߃?���[�m��rr��z��{ҿ��r��
GQ
+�-�@�t���%��"}�v�̨N�|S�
t�LF�8$P��3�\�P�E��M /3y^b}���"��3ɹ�#LV��9�����2l+C
+3l3�ԑ���)e�X��%�x?��<�>j�*��
+
+�-t��L4���&��qX�sh^�x_�xO�Nj�qJ�tR{�
L�(�������P��&˽�v�+p^�Z!��3��N�e�8�
q�Y�
�������S�q��u���
��s�a��(�C��2������M�~�]��
+�{mf�{�L��m�5��:'�`6�?�)�
=�|w��|_APŎ��L�籟.���L��i$_�y=B�z?
"
�k��z��DZ}���p_!B<DK�M`�2:~b��9^_�����#n����r�GL_�����Y��^.�=4����.r��ى;��v��
o'3��x��ll�y���`<g�����u͑�v�
*�49���9�T�
?n#/[��ne���
t����Lh�l�
+
�F����n$'�Dh�
�R-며���U`
���V�f�&�&L{����s(!lǰ]��v[a�`���^L��S
��7
+�U;M�ܧ�,����~x?
�,<f�ﲸ�U`�s%�v��X
S����jjcX~l��?�����m�nQ����p������J���U���=ŵ�[�}m�t��ڿ�
+6Z��0�jT�ql�A!vݠ�g?�#�����o�^vP�}Tʠ��N��AV�QQ��f�^�\N�\��Z]g���u�JËꘑ*F:t��J�3Қ�p�c?���R�l�B��M���fb���fsR0���$�<�7Af�����5��e%�"���H'#ݸ�� �(�'O�jl�c�I�xӀ��D���&�l-Y�����8K5��t�8��&\+7����c��H���T�û�H�>%��}'�]�
J�)��
�(<5�k�n
����t���b��#BŅ9!:N���w����p����CȎn��$���|_�)n�S�V��"xf���O�*x�l�y��x��H�%k7�
x�x�S�spd�;�I쯇o9r��8+�[@
+ԁ8�c�ҕ�h�C��|E�\
+;��{��Tn���������6�ٻ���4wX�܍*ɝ���yyr
��g�E�o����/��(�3�?�d�o�%3���$$`BH@���
��U��d���(Q�"��EED
+TP�M(�Ȗ��-��Z�"��"K��w�;=����
�4�s3_���s��g�}���ߖ6�(M@�rA�k&�Ь��%�vJ��^	;��
K���g�M@��	ú�Z|�
�u�9I<�9�v,�}��l�+팸�	O8:�C�_
�mk��<�b���$�J��.!�)A�-A�&�.~OHtO���H�ZsѴ��Ѫŭ�$N�V
��i�%M["V��x��sR��ܢ�x:�{u�>4� �gq�YBz�t��}N�}.ѽ
�z���D�Eģg�q�%��+ġ��~���Ţ��N��y}d8/a�Kb�rg��
�*bNE�} 
+A
�3A
���"�M�~��K��[4�[<~M�����
���[���[�%�V�A�[���r�Nj�?�����]༆��e�y |�1�G@(h�`�*��]�S�@�K�!M��>���b
G��s��)4
N��_�(|  �SC���,u%�7

�$��ђ4���ų
��`�6уv�-dw�C�a�آ
�ļb�1a1������1NS�aȤϋ� ��8!5F � -E�Sw'�:�{U�!�<�\>�y���0
���?�*>���⎤�3�&��C̙
"�,�\&57��K?�GӚ�
+�4J�C96g! -dSCI23!�rm�3��A��{�Z"���% �I�
��cfqdZ$-�*�
�<�|6xcw!^"�0�Å�("�q��k�N�Ƥ��5�!96"M�%�3��
C�s��o��#�:���2���������4�s�4�/���
�%���RLZ�Jk���M[����f���
+�ESjh���rٓ���\�gRG���������B
�%�xP�EWjI],-��V�I^T0�
��G����FZќ^IRkA#VN�,c.�'�Z�ϕ���W�:���g/�\��h��L1�$�i�RU�kku�RG[�bNڱ���E��AΚh˺���ن�TI�n}Rɻ�@S��3$�(����
�4�[f\��"��	h	/\4����D
�SGw��Ά�݊��+yލC�F�3��gD�v6gT��T� ��a[>u��
���������4UF��h���F��4�B@?�h�I|
b�aX_���Mb���H��������t��%�0>���B���S�
�.���z$�f*|ըj�@8�:F�F�0'�YP�y�H�`�pΪ����4���M
LH9:K��F�f���������� ��T{|���j��H���h#O S�4pu�d��d��������q'�q�m*i~R����R��B�7��
೛%l�jۛ
�Z�o�����Iq�@>CRM�}�jP�~D&�%�x������8�(���D�笚�|�9*Ŭ��v��h֘Ws/�w��QqN2��,����AI5F���(�SB�)RV�$��M����׍l�ux��U�y���d�.�/���(ǘn+��Д�<�np�5�K:ٔ� +�s�jU���dӨ��ݒjb��+�1'X�o#�M�����c[�:���>�ЬB�݆��j>��׍l[
�����{
T��3�8؂r�99��<��c��Bv�OU����d���
N�[����`(
���Y9�y�
+6izEq���e-Z^Yq�խ�暶U��_WݱS��v���7��٫w����8�v�C�
1r��1�7~¤�Sn�c�o��5�{gκo��s~?��.x�?.|��EO<�䩥˖�xz�3ϮZ��
k^Z�~�Ɨ7�y��m�n߱s�������[{���o����{�>��O���g���𑯎~����}���Ϝ=�ϟ.\J���������J�]I��YW��Q��dg+��/R�K��r��R�+��k��A��ݔ7)
nƃe�-ʅ��p��a�2b"NLUV܉w+3~�ܘ�
P~<�
y
G+K��<��+/b�:��&e�+8�f���M�y[�sP��>�|�
�
��T}�<:�I?(��)�.^J�
>�\ͻ%�~����_�_b2���lv�����ǣa�O���
�G8�#1<�\�|��LҚ�7?3'�
�t뮶;�f���[��m��q&O�6}ƽ�fϝ7��
[�x��e+��.j��[�ȤƟILiL�T*��N���h��j�~��o����'�G�~8��3gϞ;w
�?]�p�����ƶ��e����hbm���֮-;zW_�5����a��
3�Ж�����j�꩛����sӲ��Z�d���O���G.
54��PCC

54��PCC
�w
+����u
%^��]��/��9���	_ԏ�����-~k���w���e�
����ܝ�V�����O��Ѣ'�~�H�PG
�VF��ծ�=��Ͽ1���}C&|�w�w��>����/n{y�
/Mٵz�
o.���Ѳ{�_�d�'��װ�6R�k]�/�޳�̾�����{t�t� p|g��v�zf��fg�i;f��i�����N���д2/A� oF)�TLP.�� �
E�["-�����)'-�߶g�/������y�ޘᎀ�N"_�
+)�U�k�a�"a�>W�~�ՓĢ��
�?J!���&�v�e��zz���c��-̣>�$CkS�F��kCe\	��)�j3J�-)|��ʉ鱶
d(;���nZ���s�����>w�'C71}f�Dm<W�,�Q��d�uY�կ���b
�Oi�6 �
|� :���n\h���[��S��<Fǯ���%��wE:��!D|�%K���Xu���#	���?�װ
+�����}��~ϴ��v|�ʵ����M��4Yg`&_�`3�Ȓ;
+TEr-ZF�b��J�_
��6P���@ ��]T�n�m��=1�l3<q�Z��'J��7V�
�`��tH.]�*��G�S�¤�j|
VJ�[(�
�{V��5o�'���92z��ᴫ{˔�z؇"�
�����ȂD
��A��ز�z|9ZN��6P
+J!C��ճ�'׏���:ڴ�^tSM_C�Ƽ������
Dz�1$���$7��M��0-���,�6P���XP
�j���w摳�Z_8�l|�rE:��Nxc�����~T*�� v�2pFB6����Ŵ6 ޲
�v�eF`����5m�gw��8�Ȁ�Œ9�[y�ވ���X��DBGG<����3))���若[�زl^��ў=��Ǐ�SϞ�)v�����{7w�o��8�2�
+���bpO�8�">����X4	>J��6 ���3��O;F�.��
�^�h���
���W��}�F�]�υ�
+{��E����"�f(��/c�`�4���Ѭ����7�h�^!}w�>8�5��K�h�ʙH��AΡ �5�.-F\
|�{Gq�{���im=�/���Z��t��Up��
pdK*8�+��#�K����D0��
+�3� {���� ��7���1�7���@���A�����o���Pa��.
57�d0�~D�K2qH9�y���BCO�mHLU��1tՔl���2�"8���dX2,�
K�%��e(�
%6@d�u=
+�ם�����j����^A���\�ˎ�*����$�,!��2.�K
���Gv[��=����ZP
+$�A�=]����+�#��zw�^
�X�aF�*�b��Z*SR�D	�&^\��
��4��h`C�͏@v~'��x�<\�վ���A�G��i]8�^@(W�I��<�}I�X�A�-ed�YÍ�DV���a(�
e������
��Z�g:8�QCHz�,��I^���P�Q�%�x��I�-��0�2����,탡 2Ad��
j����k.s�[�g-���H�Q���$Xi}y�J&��E|���N�e2��
�@ZF��� ����O�
�A�F�#
zw��/؄9Ќ��ވ��0RYe�J($�9J;�C��`�M􂜇����}0� ��P��/69������&�I��l���됼:y���*LYT~?W at l�ͥt%��SY��Bf���a�C�*�Pn�;�ӑ��W�_�ހ��}��]���M��*��'�(�b��N)�%�O2�qbzȅ)}���^K���g
X
$'��mo
N�_u_q�
�

y�[�r=�P�"fU��dV���p
���=!�:qܴ.K�``�ZJ ������s�^�9
z�����5��-���&i	*ઑ�9u(I�#O���bD
QHnƖP
��VKE��2�j���Vwn���
'�\
G&���Ǽ����Բ֠�m0�NJ�\���ɰu�U���H
Z
�
%4Y�@�"� ��5P
��o�g�1i�p`䉳���ߦq/�����g����(M�Eɱ��Z�,��T"�V $�K�M� 2T��jA}��)���Ï
���9;g/�(��Ė>������Ȝ�f+Z��5�b�� 
m ����@9��� 2v~	j����l��̆�q���'G��%���7B�#~�̇��ސ��t&�
�n�磛#X���B�.�
��x��ю?�S�]1a<�u��톖)����/�W/�z�fn��N�cSG��q�(j�9,	ߏO
�%���Ɍ����j��1!��@��πt�/��,7�]i��u�䁇a\ŎU�q\�3:Z��:.g�
+8g��:
+ElA��,DBHHB�@¾�- 	�@�%1,	{ 	�E���"
+ZD���|���>^�‹��w���>��L�p�P
8:H��"���O�l at H�4�@D E> E�ߧ���h
�x
3�{
=�p��~�@��bI��b����)���y���`o%��6������5~)�
+}
�Oz
t�Gr(�
�y�������_
x�	�{�L|�@�m�T������+5s7*��N�
ȁ3GR�]
x��څ���)�
�|9x��^d\	\dy��b��.pP��d��m�k����k���m_� ��"8��'�q��*�����)�c {&��B��?P�|��5
+b�} ���\����hX�L3���5��j1|����%��/h`�?
�b��!4�
��У( 
���^@9�	�S��a��6������
���r��
��%'����P�b
5��A
�(�=�)|F����I�S|F�!�'����AcI�n#V���4j�Bkn



�{C.b�E
����aԞ���=�����a�g*"��t�
V�P*GhHL���f)��sU�Q�͚H��%����P�Y����~5�[y�6���V�!�zgkhpw��K

+L�y}\DM�3
�3�]W�����dk�i�jJ���$��#d=U$y��A�����
+�7B��-P����%P��_6�`
ׅ3�$����}N��+5A�IL�6�2�U�<C��TE.3�Q*{�Y���3�7 at 9b���*���� �>���`�#%�yWF�SE�
E[V\Ks2�[��nh`�Ա�Cb�x��.�
蕽�|Đ�
+Cű-����N�����V��>ߊ�=j���Vy&	����ޠ�e����=�����<S%�tX+�gJ�y�R���3!鱿A
bhv������W<���Z,�2<�_
)�*��4��6%��S�K3J2x&a�`8?A8�ͮ��bK
��� �� ���
1�8ZA�E�7]^
s�������̈́<c]DU���T�1��v�$?�P��
�g�G�S��Ӹ�i\���~1 �b�?Cbh��
4�Vo;/�/�<=��������h����JMm��^��V
+�z�E\� ����N�^禗p�$Fs���
%�A���A�h�SϷ�
zO��}�
��G���-��rc���)���.&xũ��œ�B��W>�ή0�ۯ��k@��G�
+*���h�����\���̰O����^LA�� m��(U�4�2fw���O'p���xa�0��|�YPa47(�t%��1� ��Ο;�
\0^��
vw���
vgԟ�g
�oB����� l�����;�e�^��cdUd���
���~�Pb07(��Pf�
G?���^��;87�rz����ĸ~�_|�)8Wх�����5�S����S���r�I���Td������C!b�@
��As�/��<�q�v����q���XMCA�R
F���ӯT�bkt-�#���sU���V%�U�}8Y���@������@yd���;f���ј���/�
Oy`��Q\Gg��Cٝ8	��P�&*)��&b�W�l
�M�@�fv��
#b�\MG6��l�O���?����w3.�}��CU(��&:����҇+au*�mDYD+�6��Z�Q�(��������~ʌ&s��P��cP|��M��
3�[�ǿ�3������E͋KA�IT�`

�9�IK0�s�
��^R��
��E��`J��2_m�
�M�67n����Ձ�/t�]w����I�}�Y�S����Խt�N��xh*w
ǼIH��
�N
�d�
�r0�� #��oH,B�S�}���ĈA���7��ar�����>�=s�߼t�D�[g���n�y�QA��A�$�L�N�'3	c�8�
FB�m}����.)u#=�g4��b�4~n�o�����U��c[������Q8�� ܾMYBy�͇�f�BHOI8�t�8�:K
+���
|�H�{�
��Ƞ�Ld�
T�}ū���o�ݸ\7�gMӫ�[e`��
��G�p=���ϡn��O�"��@E�d���Y�s�@�\4�yj��lf��lV����/�o��.�=ٴB�j�:
�*����n��%}�
���l��Nmg[������S�e���JK��n�/T^�����P@QQQ@@PA/]�,�Yi��n��m����������������y�Rؽ�
+��e��[
+���C�>
�yE@��)H;����a���#�s���sE�fK��ϖ��?��,���?_�V3|�~l����EfA��x8䌃���X�H��?B�� ���r��
_(�{
J��h3[��^^0_�S
�3`��
p^A�����kO����� �o� �t�7�$磐����dm���Ð��А
+P�+����6/�
+�f��^

G�p��1~��)��$�T1�|�RB���.���玦�T�M��
I����千�����.Yo�A��7�7�7��SC�kCɦ��C
��?��#4
w��PO���?�N���fo0��qZ�bNY��Ln���~(�VbOKm�k�Ze�u��8�M�B
̵����Օ�?��?��#Ȏ��,�kN�D�s�:#�:'�>V\�9Oe�
���t�̚R�2'��L�掞8�N��h�mנ镡1�!?mb#�~GP
qEfV

�	7UO$��K.�R+��
�\f�9�\cL��u%�u��M�Xy�
ߪoNhkG�W���F
5�A�k(�9���ԁ������Z��$)9��3�Ε���4��R���f�i��Nb]�6��*M�Z�I�nAӉ�W�2���v	�-�&Ġڷ
���6 �[�ɐiuL�
Ye�>�3��YK����@e����6r�U���/"4�
S�jb�
M�C
b�"5b�@
�����Ї�IUB�EI*w�:S�W���.+Է�[i�>9E�ߔ+�U�K�r7Se@p^*6���A��3�x��!�Y��!,�!*y�-�vAN��E�M&A���Cӫ�
���c��uԆnv��C���$e�^X_/.bm[rĠ������yb

�g� \����)�ƴ&}
I��Q�RV�������m��z;��hg���y�n4�6,
bhغ
;WB;b�>���t��
v�/��KWt�:A`jNm��g��\}CE���Ŵ�6N��Π7Ҥ}�4E��
1�1��1t"���/,�1��Aa��O�\4Fٴ�C
A���J�d��2�ȫ(��8
�Um�3��R
�HaD���� ذ$[��n+A�����?�
��
+
��cSΙ#
ͺ��vU�D֜�Zא��
)F�������/�
+(�F;�Lj!����
+14!��
+�r�f���ס�^w�������
Y���]1|�6�Q�HUU5gv�Ź=�uts��ԚSͳe׈2xRKFE�MP�8��1H�| Z�Og��k��1�
���5�zq4�`��.����dz�X�FPV(3�Kd��&Z/��a�s��b��P+�K�V���P��B���
�CǎOf�{�~4�������]=|�RP���IZ�-��`��
I-����|M�����)�z�圾�Ђ���x��M�E
�������os�
?�߻���Io���cA�����?c)ґ��]�쉗RtI��ZbA�e��򺣕E�HE�)B)2��*�����A��W�8/�1�����/o\��
#�=�s# �ǒ�F#�l{t%�/N�Փ %�	ʸ�tM���~����a�B4|}���M�G
�5
��qtl^��������4��4r�a������8���((>��
���'	�)
1�tIDIz��*5+�
��@}������;�X�p�gӻ�G\�^��k��m'�#����!_ٴ_D�TXr��R,-s4�A8K`��qq�Y��9UX[~M���6�®���QU�A��۠]��t�w
�\����ԮU�G��g<��<?x���_(�>6�`**9{".#u<��p�H��,���\x��;Jg��g�������h���j��_9L��q���4�ku�˽N�s�w��y(��ϗ��dyI���K���;�N��$�'s�OM�g�]/�
+��$^���y9h�:�жr�����L~�`�v�@���
	��( W6x���ϛ<{�q&: �YBH�Tl��������)�؇������Kc�����ǣ	����ڻt��K�_gaM�YǙ�q�ZG�u��ֺUjQ���V�n�����,�!�
�Bd!
K �,d�D��PZ��q�:Z�Z��g~�y�:��E/�����7\�ߙ���}E;�Y+ /W
��
+��C�A"��f�?�O� /8�עг�����V�:�sMx�
#��L]d�ƨ��ӯӌy����.��Z����rp_��O�F�����6
ߙ
a����^��
�c��P4�
���#�@94�p`���X(�^��<��|ͳ��º�<ض�
�J�smxoƒ�k��B��i�팄�Á���}��C��3Ȟ�P�'�{���$���N}�s]�����
+����݅T��f���
�V���;�pd}l
������I�m
�t����?�n;$T�Ǡ�C? ��E}����e� {,��k
�|7�(���^������^���B�|X�λ_�+�'QTy��Zs'��1��]�%��~"��0�����]�_��,p��
��/
��P�X���� � �/��O '7�'fi�w�Ԭ�u�Ӆܲ)���5��6����2]ɞH�iO���Jq>�
7
'8��́j�');�m{��k���&h
�ho'��'D�X_���A!NW1K�)��L��Y���[�Ff��Z��y
on��: L
��㆚�
��P�
5ۗ@��+ at t� =�	�
 �򆶤�YIV�S~AƷ��ST*e�\W;^��^'��c���F�:�/����n΢���w���t����@s[\d� ���FP�� E�t$�H3�>�eOs�J�0)�/(��k�
�h�@>�Ӭ
�n�
f��v��hN1�{�����vg�o�'���h9��_

��
��>�u6�EgZ�cin�=aq�W�u7h4�(�N~	=�"���l'h0SF�I7��21MG�M�l/
4d`��B�
mȠ8�4'<@s�gV
��;5�Q�9�Ts�
ny�����*�r��Q�(����FR�iھ�,
&#�{Zs�Jg�K�|�ݶ�� ۷��6@����|ftgB��&'=Te���H�[��H}�����U��{˚���6���˪���Zs�}�I/��S9�K
�� ��'h߷
+T7�����P���1!O
I��=��;s�c��Pc��ƪQ���m%�WY.��(�I���M���7����ـ������� A�d�
|L��g����GX"nJ�Vx�+�9�J�%rS}�Z�d5
LV%��TH��d���Hm�/6��%���^��A�fdP�]	=��{�}���-*�[[|�
SJј*�9(#6a�"��[�R��)����|����Υt9Xe*�\of�{{���8
�o@��eЅ
��փ�o�s{����Ȑ選�	
WtE�����i2�ȕMe*ic�A�fa<&�ZO��ki
*��QC���P�:g�Zd`"�<�A72�����`���/F�L]8�|ÖT4dHc`JB�FF��%%*��R�md`l�ʨ�k��JF��L�a4����g�!���MP��
�}ޝ��n���I�#���\�I��H(t�S�M�@� �Z�E�<	Y_'����lkW�On�:JT��
KI�I�lP�
,d�.92h��0�u/}ݾ
�t�ZX���i�������ڐ���s�M�J��LGk�6WJX}�"��P�b���y�

�Ѥw6�[�� ܺ:����y{�����G�=�~b��xH��kQI��q�F�ډ�s�B+GC�+K��U�b9#���2�� Sڲ�uAd�;������ ޺�ܗ�����<r�uz�������D��X��bbu��ȳd53MĎJ}��X[��S�L�P�-i�.
^�7���:g�zd�C����z��_-��?
�Zs���-w��yޘ
+
�0
o�C츚P%��R_;�!���Ȋ�]D
Y��K���lC��ɔh����$-�q6ଜ���@�e>�/zn߽����ʯ'm�y����t����Sq��ф������̚�t^����s��4{�g%w��Q5g,lm�E����ڬJg�d୛
����m������
?����g��z�������݋N��P��*��|3�I;��
!	R��ʼnC䖸
5m��ke��y����_goM�i
�#֊NǺ_��ъ�b�Z�Ԋ"�(�	D�	K�!
ـ� !!�@BB� 	���"ua��(nXQ���HU��^���h�?������ܿʪ�
�@������-g���{��~��o�٦�w7�i��aݯ�'�^�	E�Q��G����	���T
�Y���̂ȟ�Ea|1��Hx]&�����]�-E�"͚�`^?�e��ܡ�����aWtL
�m�qu�~���)~�?�;I �_�)�O�Ԅ��i�_hY�=�A.3���+�ݑq�+r�nW���-�n����/��^2���禰� [...]
+z*��)S��hS��es��
s��
+�����)[+�,vU%8Z��y�p�s�� 
�T z��;v6ُ�.3 �-#0l�
�&��.	���.

x�
���D�
���ꞏ�|c��es`�"5�^Y{�����JO�D�'"�E�5
2p!�8��� �;B� 
���q(���7�n���\���v{>F+,U�y�v.��5�ก
+.�I�-
+v�A��@��Dl ��
������8p
}!���������:
�.uXb��,15���(`ռb�Yȅ�K2��U�w
�ׇ���	���_ �yC�7^���R����
@�qX;� o�;�w
��]8�|�6s�\��F����V[�a��4��,�/� ��A��qp[��k=��;�\��ȯ� f�+�7�@��!H��26:C6�� pm� �m��l
��O �+8{��q�\ׁ��D!�P at r��ԣ�a��g
+B�dI�R��&�ԉ�q���MYϢ�hc�.Ɠ�ޜG��{a�87Ns���o��5d�X�݋�`�J#�o;���A�
��c�c�x�⇿��L��N�HV�<O��xF����62G��F���_��#��yCaC���[yh�����}!��D?�١u ���� ��(�� ���K�d&�̒�=KU�
'U�
Qjx#$�~�Yx/����h0�_|%|@t)� M�F
Ld�0�-�/$�m/��ߠ��	,�#]@��N����4��<����r�Uſ�P]8Ln�"�e�1]�}�}}���I;�"41� �7VP��
���@
�v���2���~o�i�E9�����ќ"΃,�`8U)
J�*�A�W
�Z��1]���
U]�K���WN�c�K�����j"�p��k����~X�
u{_��F�L�UB��	s#��0]"
L//�j��(��+$��7���
�S�ӭm"]V�Weh.�/X�m�kg❟A�/*����vPs
 [...]
g�
F3�Lc
�L�.�S�I�TS���<��F
|d�Hw�*��@��4 �7v���l�

�%�=T'�eY«�,��<���%�n���5g�
��ڦ���fmR[��z�A�ҭ-K�U��A�i�"��2�=��n�gM^�iS n�)<�q},��&�q�,]xQ̐ux*3�@gd����
+cuvu�&�ѤHom9�v�(�8_-ͼ�B�"ΆyP�����a)�!�f���Z=
��p㭡��є:
+�2E�)˖���*�����kX�F%��Tƨo�����3M"ZWM�M���,�����S(C
U�K������i����s�����໦���z2���*h�gʌ���0O��֗��e�
+��]k�[�F[� ���TN�M��A��Ag�����6W�鮣�//
w��
�ER�
$zGu��Y�.�-��*�\]Y���D i,�W��y:3?����i5�
z
�[�&����1T oe���м���g]l^u����m�;8h�=���Co��?�P�"ՖgW����K$��BQq#�Pn�	�f�����[����
~�Mx�Ab3Ԉ�n�����m�����#�Ǯ����

��F�4i�
+_���(�J���'�u���q<,2��Z�VP�\Q�JUd�}�=�5@ !a	;�D�HD���Ȏ������
V�X�� Et�>󞞹'�s1����{�����.b�X�ܛ�|�mz^y3-��9���D�^鮒d 
L���4T ���~����m��8d{�嘳�����@�_h[;�V'�(�����PJ�I��ki�)%�F��'�\��WT��on��u���wWI���e����U'���z���+�fjo�l���
/���c�}I�����6K ���m�+Ψ�U\�f\�V�����nF����e�o����ÅwE��*I���> ���fh:��֥��ݰ��˧֚�.����n�&���(���������袔[������1��Z�(�>D$h
��$���k��+{*%��KGu������S[��o�{d�<5mq|셽q�������j�?�?�gpzB9��(
��R
�F/oeV[�׃����Z�E�-M���]5���rI@�.i��'
�7��crk]:�_��Sz��p�؜�����q봋s��d
�

����2h�D��
���Ӌ�����>n�_��ҧ��ʫW\���[��1(�\Ax*�P�&
��e��~�Qa�ў���w��5�rr,��`
����)||�dh2e"� [...]
�֭]�,[����y���
+�)u�߃����
�'/RBHo�ƒ�H��g�����y��Q0��	��
+��L=��E�D��]
+D�I��(�
>݂�]�+��Q�[�W���_M��[�f��1��-���c�C\ÿDa��)��5:6`5��������\��,��+���E$�Eq�$���r�V���7�z߂jZ�'W
�ۄpN%�4X`�E�3@D�߅P Y �&(�����
�N��v��
�/���W�m�����
��FI,�ˣF���9"�/*J��~����
�?���*\8

�'C��|�� X
d}�5��1RL܁i��
��k�|s'Z8B����$1�"��۳	u�
��od����8��:;��r8�
 ���8
�����DC��+D�8C��N@;�)�/S�
�~����l��
�ZC�D�ݑA5�"�*{&#U�d8p@>�3Nl
�]80��
�{�`����
��
��m��a
�CVs��X@�s`
5�Qd�
3��c&�?.��n)T�C*בֿ��$��\�)��/�]���
N`��,w[���V6/S�W1���F@�g��
 JU�T�C��
����4��$��"1�� Bg
$�*A��H�P�
'
`�jAj�9H�7Z�
$d;A,
Q�^��j�C�>�Ak�6�*���8��$l�(|�g�<�59��jC�o�_j at nE��
Dio�K�� ���0W�,
`{k���X3�_�*��y���B��J�Z���J�EZ	n
���$/F.�D��>���y
;�5?�5�H�oC�IH>�,�
�1S��d{jC�<��, 5���uj
�S� h5�<��:y)�!j���@�Ky4@��ݿ4��$i�g�>�3M��M�$"
q������:��y�;�*C���a���Ӈ,���.1ҽ?'q��L�.�\�|Q�&����$NzE�s�eP�
�O����N��M%��O_�P��@<Ґ�� ��ֻ��<e��h@!Z��
�jY�u&�o5�C\�D.�S^GU$ͅ�`̐n1���������p��=����p��
�S�����4\:� ���9�
x�� �V��a
��d���Yˤ~Hg�/$���'�g�K�'�d=
i�N��%

���t=�n�?e5&S74�!i��
�HC
�������J
�9�@��ї����^�\Z�;=z���4C�1���O#�
+
��
FI�%��>aOЀ�~��9x,�&i<��4��А͛�l��G6�8<d��2K��^�QM�k �CE�u�:N�U�b�{ӪnE�D at .K��� !lH0B�L�ɞ
A�a����V��b9�*x�Z�����{��������s���?Ua^��W�^�S/OU�&=/����ԇDs(KPٗ.w����F�%���vB��1���.i�o�
3�)��� 	i�C�[���s1����ZО�̞��7�̯����Œ��L"i��J�'3؝�\A{�D�JP�[𵪦�uC�Uc�u)t��"��V�����o���Y
dϒ
\��k�p�����yW��icvR�5.M�ss
+�d��V¾[�6�
���ʺL��:�֐a�)�V���+�f�ę�L{�j�GJ6;o�
T
X
+ڣ����ƹ��o.yM�G`��bF)���B+�Do�S9&j����+3%*M�F�̹��g��E�� �[���W�>`��H�7K� ��
+�A��Nm��ta�Ls��)
���J�M���
+����
+
+���.�QY2%Y��")u"b����b����]
+q@�$�8�@��50���E�ڿ�����p�����������0̿b�����v9��Y�C���u�7D��r��V��,��8d��I6����Rr���<ĵ�H	i(ߴ ����׵G>��trÛV�
/,أO[C0L��]5���SI
��=��V��
E�
���fKt
��XBk����US�
j�OL�~Wi�_
����	鶅���	�^9k>���=�퓝�#�ۃ�͑Q��q�Mz
�ZA(VI�Xb>Y���ʙ,uIr-
��Rz����V]@�j
+齒B� �
� 
dW'`#g!��
ƽ���ß�o=��Uǹ���C;�|{Z#"[o]M��I��j��RE6�')�
oTWV�(
���V�X5�
֝�
�U�[�+�+����h(��\�A��j��|l>��m��/^�����7��K>���fs,�ؐ�'�N��YJdXʮK��2_��f	dz��h�
�F<ߪ!�z��A�=P�4��;A%r�@��Esw�]���k��ЙM?
_p��8�#,��-:Ym��+j�QY��ņ<
YK���
G�*�h�ez}��I�$�jp�^i�x�o\GJ�9���t[�i��v�O��=W�{����y��{7����Q�UmqY��d
+݄/�4�s�
+��b)��R$Ī8�V}�pKs�ة����U��� u_8�t�#Tov��������4�t���_�����6�=s�
�ꋈ�w]�`X
��Ҋs�dU������4a|S�$�$�E���#L���M����aT��
�!
LdN)�σ�M�~k�������c��K�_o}vvo�8�~,�x8<�⻘4j��������̒�by��Ɖ�_Qy�"�Z4���`k�0�m�z{�i��4����hހ������&ǁ���qܵy����	����9O�"n|�@
�F ���'gR�> ݈����6fY�M\d�2m&V�p73pp�,�g�n�W�A����8���vx2�
5���������c�/O�O����p�>D�962{"1>m"
��S^��gEYQ���ϸĐ�҂����z���6
+v|��y�l��@�j��G�r��
j`b�C����o�+
o=]�ޜ�����������3a�93W�g�C��3"㧉1��Ը��k�xI!/���)uJ�Tm��
s�E7
��C����j?E�X�z���f��?l^��s_)�����;��x����ً
ٳa'�f��K�����f`cf����K��ʂCgy!�$a�~W��������}g��{�e(]P�������;#
Q7��l����a��
+8��
+�����`�� ��x����d�( ��
y�B�r&�g���
����p�>����;~�`���}
���j�uB���R�*G!lu)���)�6<ק�i�x��
A;/CԞPH�
i� �=H����1�=�
bPz\ �Qoh�<-^���(��e��CUM-t��Z':�-"��%�,���X8�.
λ��� ی��-~����^��m灴�
\�qJw�֮� �ud�O�~�q���|�2�P�G(
��a�c>lpN��������j2[�Ke��8v
GEłH


"
��
BH)$$��{$!�H�*(( �X����.l�"(�3���{��9W�?p.���Y{�o���fF���0��
��� dI 
_���} ��R����b/�Wx"x�W���]�^�
�<�������|�s�8ųq��0}<
�N��b�8��!��
���cV x}�
s���<O86o7���	(G�s��
���
�
]��p0n�".��K'@22'0.@t��gC���:���u��m�t�vHzI��π/9ت#��;
+��
���!�:��	��.��񑈾�7შ���Q���l���uXk��@q������ 8���
�
2�.��y ���?M� ���*� {&0
a���5�5�sL�CTW�H䓘�����㞇
������R�L 
��� ��S��18�
@p�	����I�
+,�.`f�@�� ��h
����1\M�פ���ċ�_�ſ�mC�Dwaޠz����{�q"�&ޏF���
qH�� �-S��c�9����C�A�
8�=�����0�냁��obI�������u�1M��諸��6›�.b?�)�'��|?�UjG���o�� ��	���
�?N���S��}H�
A��	��� �uA�^�0�Kpt���Jˋ�B.B$T`��Τ���HN���&��6s�ރz��:��hG
��F�&\���ȈqHC�Y6қ"�� �tu�h�6�2�
���@@�e��	�̒G}��ߥ�G���?�մ7���W�-�����1��ۨǼ�Q����}���W䋱�D[��a�=����<�S@�6�{��9�n ]���
+����|����W�(�m���j��$2_�+�ϒj�=�
��7ewb�ʯ�t�[bs��{3��i��l�E q`��B����3@�{
��C�ag0���I�y�&K��<^R���K�e<"�ywqE�Τ*y{b��V�e�u�mus�]E���.�Iv
�9�Tҋt[@�@\m�5�@��;� �g�5,���z�y� ��C^��p..蕒�\�Jy�%`ܡ+8�
э�|�U|��%���ۤ����;��Ԟ�ޓU&?��zY'qϙ���@Zel�yeH��N�ι`�^:V|`������~�yI�ϴ��n)����0o�$��t��9ͤh$j�	�������)Wr+q�e)]�bB�Țړ]��˲P2��AzS�� ��
+<�@�%�e�׽+r*��볢C
R�
*�U��q�+���RH��s�����*riN9��$��XD�e��:5�}���k��m4d�O[i��A��K�F��
J���y�Hu��������6���(���̌�WˑJ�XUä+N/2X��L���<3�f��ڡϡݕ�h��Z��-�9А�"Z���y
+��=V��CM�����]�j�|��bCڬ؄#�ب�3kel^�P$-�*U֬\�9�j40���sf-�E�h�U1��
+�����g
HG
�+�@��_7	Y�@��Y��{�U�z���֧u�>w���[�1�,b]�Y���H���Le����l�Q�uҬ`�ZdY-IV�Q¾�gu�DY���@
��<	␋������
+��_�x:��[9p�ˣ�!��5Q�-e��'��&
+㤞�-Pq$F�D�k�
+��(���ܚ|
�9�ǻe��nkx�n1��P`
�#���|"Ȝ���̍�
������j�]�w��{M����E
�P�[[�L(�'1�F:רgK�j�J�P�ER��+.4�ŧ�3�M7�X�N-Kt_�>��k�DP"ga^c�'��q���q���K>˞^=�Sgs�ו��G���Ŝ*OJ)*J���S9ZS�X��W
+tr]�:ǐ�,ȣ+*,4EC>UuӜ��Х��K�e�"[ q`/�j�,
+�����I�g�M��k�@���76޺|t�Ŧ��ڳ1ѥ�|~y
+M_La˭L���Q�M-àͥ�XL$}�9U�Bȹn&�;t$�=)Y�-�0
���e�p�D��`����a�nj�{9v���Zk�g�oaG��Q�u�dC
��� g	K�v1[F?!RS
+�z��dH��4%Y��0��a�N����8�������u��)�H	��d�9�s
�8g�
�
[�lI�JŴ\u]I㚚�G�1�h�h��js�P��+]ռ��\��}�x���n�~����sDr�^���G{����TA�PI�
�=uz�:ڬ5>t�k���7��ͤ﾿Mw/uk�
zDs7�u�#)y��)�6YA�O9e;�푷T֦�P{@���!AsS����w�ZCRs��?
U
O>�R��j�&;����ߨ}�����M[����Z
+W��}�^�w��76��M��U���K,�Ց���=�8�RA��by������ڰ�s�ԁ��
��֫�	�u��TqZ�V��"���D
'�(�`A��^Iyݿ�20d�u���Q琯U�P�������i5w���["I^OjfƵ�<ɕ�awY9���*�����y�;z�Z����]���k^
wi�T���4��ل�ݔxwg	10dB���V��I۰�ՙ�!NG�|�=���x�a��~i��w�\p7?��W^��)��m,��m*��m+��w�4X��Ƌ��k/
TA�!G�Rpn	��.q�.qst��	[��q�3c>V�F
���n�=
R����R�L{��
e���"I�bw:C�/��8��hΎ��C
���B��h$3b�\�PpJ�x֮C�����y�K�2c�~�����q_vd��r�T�]��p���t��Inp����<!�I�ȍ�N�0Y{،�\��1~�dsR�d� �}�0b�(|��(ltT%4���4��_��+����g��Y���)���F��i���r��M�2�!s��:��ω}�� �27��,	e(�"������G���7EG.�C]�
_����5-��;�F���E
��K��xW�h_L9�Z�a�x/��wa�E|-�j��h�$$8r!��B�+Y
tn�E��v�xE�7'|��_��B���{Ax�R�9�躬N����5��_
��J�
+��ai&ܖI�m���UlDZ1�XK�u��ZO�
;rpl�@�}v;��nS0�q�) -��h��._�t�� Z;Ո�^
+�8�N�a�ZVh�a��
�Ep6�b�)�f1��D̊p�V� qURV@f�
+_}냊5^�Y�
��z��4[{།.���N!�n��Q=�A)��Z6�4�X��=&
�cຄ
+/�"���˼���6pͶBh��rwr,�"�����m�گ7���8���T:�M�� �Qm�
_��a�Ά�&
�:T���q�����e�_�!l�
��8��t����C`d��
��G��-
+�mPjb�jR�J�T�F\G
������ 2cdD�##a5ҥ�H�߈�*'��Bxr
-ې��
�e_p���s+ 	}�`>F�"�S�p�
},t�66
�!l"F���M�l��� �I�
��3Ff�9�X��!�A�N{H+��R���<!:�
�y?$���
��`�{C���T��3�#>ƍQg�S�����w�y�*�w�lHڨ�TG=��
��c��ps�dX"[��,G��\�Z�	�$7@t6�K�H�
��
+/����������i�m�>MK�H{
��
+D6XkB�A2]d� ����(�["O@~bN�{@��i� 9���Z� �F���?x���9���	ϙ��a�c<�M�
��c���y�*��K"ِ�^r��۬�"/c��cW�������Ȭ�>iǩ���F�9����ݬ��ۜ��{����1�H�H��@���?�������!i�&R�i#g�.���Q�i��@sTn�B����z!�<�y
���1v>��
eJ
�?�Vެ�#�Cb�h�w/e�=(}�z��,~L:���%|H�Şc��d�A at 6��}�Gn�R�Ũ�j�=˱�j�*�
��n_J2}���r�cf32gҎ�$M�I�ٔq���Q~��7���ל��G�᜻	�v�fOJ�s�E]�Y�*H�P�����k�P�N�����a�Z���n�Z����we���CI~�T~%c"��7*k�HN����T$�����K�c�͢ܧEw�/
�sG��x�vt�'��g��@B6$�7���ϰ&�5�o�T��#�G��
�:�� i)E�
�ed�� [...]
+�k0�
x��
���Q�bF
-��&��*�E	��jQQDkbaĠ8?R�9�Q_�3��kỵ@��`������ �ܦO��_,�Z�_�t86]�a�ɿe?����'#���a
<�R�N`V0epIt&����+�٤FI�7)��D�F��P^2�)�$9enUH4 ��q�!
�uL(�n�_�َ�+�;Wc��T�����]v�gGjx at c5�FȢ���LG�Ŧ	1����RI
+�.IN��迈��<	�E������d� ��^m��d��F�1�Pa��]�{f�펎��_
.�����h�"�&���%
J������L8Y��V���E1�F*dޑ	Y��b��S,A�
u-�3А��Gr�k���uA���K�[~�0z�d{d��څ�
+��
U�{}.ο2�HP%G�s%
F�(
�
�1/S��UJ�p��
��`������)
��F�V"�Ѐ�̥ɑ�����+O�����湖�vN�Yz��r�G}ú���M����dG��ҩ��X�\ʇ��@�.���KX�
+C�,�
��c	L�3��EGD��s��#9�h���h��>����dë�
c�V��[�L:�<��W޺^^
r�� 
��M&�31��\_.�s�)"�$WB�I)�
2��_F��	���0U8M_
 "X�� 	��
�=SvXk��Λ�����n�ky�^��ٖF+u��kQE�ov1����J̥��
+��������)
+11�8)<�^JH�'�H
F�'���阵�(�|x'ȑ,��Р����+��=�t'��n
������L}��eY��K^m�wZ%.DR�/��XJVlt��K�I����*q��$X�-	�b3'a\�t�Z 	���
�
�޹������
��/���}tzc����Z��OUw�Z�a�2�0Һ� AMx��B�.g�D�Ʊ	�b^HQz|��P觪���D~Śx�3N`�4}-�b�	�Q �_(Pf�Ziڍ��3BMh�����4�
1�w����~�
/y�-���`?v�@�$��P�\FpM"�O����.�c��/u��F�x����,��Z 
��m(��
5ۡ_;�@��
Ѓ�=���'�5ǩ�
[S���Rꠇ������
ݍ"v�;tbP;L��*�cZS��-,�5�zk�z����4M��=KF�V���)[ P��n2�Fz�CC�5�z����_�Z�~nf���:���j"
u��>��H�A
����������p��ѽ?��گ���i��4��T�޹(�΅p���U�&Pl��������}�k� j�ۯU5{j��ٮ�W��%/�{�z9��JԤ�#�)�-p���
����p�5���4�X'M!�����0�M��x�w[�^}�[�Z@�4�҆
��B�:t��a}�~~���
�o7����K�ha�]�9
��ڹ�y�e�|�e�<��o���=�p��㹺�Iܮ�gx:�z]���8����_�i�f����������V��{��Ps�T3���lE�.�.��$\������~ڲ���e���%�3�K��}�p�7�I��

��8K�e���J���J���J��݇f{��6�;X�����B�ECM�ZPՀ6T�у�>�@ [...]
+�5@;�
��
A���_��m@�%kPkj��~Cf���eK0���Jjn at A��((�g4�:�I��?|�kX�y�I*�x� ��$%���Rt���
�f��f�fjj��3Q*jS$�b������Z\�ua�b�'��q�(�����������\�}�������
Tp0��zS��s���(
2��A��
��h���B�mT�‰c4�탱�!�����]�~�^�
��q��D:�M"��!��#���M)���
X�ag�
+'�d��&�n,�D#fa$ȋ���O0�K!��G����>(��B��'j�����
�m6�s�+.\�I�9��M������D*��9�N`�

�
(�7����Fx�!�$�f���ツ�^��� k�x�]�����2_K,GT-t@�B{�,Z�����_��]��$���$��)\�N�a��8X�E=	�Ì �z�s���\2���N�l숄���^
��
RMVBd�2�eP�ڠ���fV��*`�u�}P\����\c�B瀿�
<��Jm�Qۂ��
�G0�ց~��Ӯ�^� �
7Pz<����^O$��B°7��y��i}>Ǎ�hc'|>�B'�:8��<

WC𼍑2�M�0,��؀�oN�X�ׂ��䣮�w��v�
�k����ʯ�H����H|�;�������č�������WH^:
�4
�.�x#=h�1��, -G�rR�:"����
`
q�'��y�q���~�= ��@$=� �&j��	ڐw	c!o&���
0	*��r4 ��b�Y�0C�FsȒ,!M[�t�=�N�U�"��)������3`^D��`0~폰I�𱤡-Y�I
�|�89H�
 #D�:��#e�DN3��a��fȎ\E�%�+�!_q�
�U��7x�w�܎ pN��}!
�k�H�)
+�'�c��-uh�&���W�؁�/1�(��"B`��p�����7Y����ke�9�⬐˶E������TxAT����GLr�o������
c�?��K���O~K�
R�S�S?�{i_��c�#:�u6ᐼJ�U��O���joS���p�
+��'r�"�
�R�q�ΐ1Qc���M#����)'����X���
�kF/�%m��G{�~B�?d�%�K����D�.�����
�v��X5
�u3Q�i��`sl��B�E|�q��볢0H+��z/��}+�K~�?H�
c�d��`v�1n
��O���
�?dh�=L-�6k�q�=N�ƙL�R�
+=d,�G��J�fb��	*`[�%���ƶ��h��>U^ذ�l�`����=�>��ԧ����ٝ�G���0od�g>��$�n�ޤ_��_I�\�2�s�)� �p��Fn��[lu4�v����?5�c5�vw�ֿ)�
eG�+
��˙�%5���oD��H��:2�p��~L�ξɹ��������Χ���}�⏰O��2t.��K����C	�7������:�y��,�
������T�z�d��V�G��[ʾ��=�VF����9��P�i�s.��)/�����w��"�`8�P#�~�
}b���C:1�J"�n!���ȼ����=�sS�bMs���F���])����c~.SPnrn(�W��%3������ʓ���N��cž�Q��[��������=�T��
�,�BBx�y���ɮ�ht�9��e��5h�p[Ԋ��˓v��ja̭J9�j��s��T�}�vi��.�|o���C�#���$
+�$��Z���-�����2�dA��C�.�q� ���{���'�i�:��
&�C
�D,{ږ���^������;2(+r9gJ�'
+*�GU�Y�s��[��eu-�Fv��A��dO�se}���N�6�V�
�	��i(&�A��;}�_;c䰛�p�����­�s������}�V�t�*��Y����IVe�˯W6嵨��~[T�s�d��Jiu���je�j��e��kq��@H[2YD�,%�!�i���AG�
�F��>s�:j��h��[i~W����#J:Q#g�W�	�*J�-e�ٍŻ�uM�j���*Ugi��rY����B�?u�z at Q�
���5B]���;s������k:�� ~�#-�����4)�A)�ԡ�Z�	�I	-���
+��*HDP��]
@?����8*��~�Yѳ��}���s��s��v�:
��
{�:,��{�����~'���Š�B�zj�Z���ƲԨ3�Y	����i%9ՙ�����
�p0W(��D/��D�)�췉���y�@4�!M?a{g6�-—KR�.��~��4�q��j4�h����^��\����:Y]�_^�+(.*N�/����g��d�����)��Œ��Ԍ���
񟱒@�:
�m�C����y�S�n��~c��+���
�ǯx��`���q��_��8ΩZAd���
+ё���TaiEfF�aj�Ŝ�¾�#E��%/���KiG
�$���I��;8����-88�
w�>\��/�~�e*=3rp��AO��^?۶�[cK8������!)��Lj��F��U���^Y��\Q��/?/�/��[>�_�L���RZbٛ$���8I ����r
ԫ⾶oý؁{q{nv�h�䘽��a�����^�k]g�O�hV��0q�ј���Ĵ��d������L^M�0�TW���õO��5Ki1�o�xU+q�@6�\E
T)�I}�QFˣ���{*�޴!��ݖ�17ݶa��
�L��jiO$3�#>$�M��r,�ȅ�#q��)�MU���2C�u
�6�d7�m\N	;��~��8I ���j�����<z<!�
>TD��fl���\��o�,jo:�
{�F�e�DzS{�“z�bb���#;
���W
�ק
j�HjNgv̦��_
�-�8���$�t�%d���i�F4;$��ݑFS��h䑎T��^Ŗ8��6����_p��&

������������ׄ�!�q쁊D���$���߁!c`V�7�61��=/�{5J�qP)�^^ ��>�;JB�f6��gdt��m�B�᱃F՜�A�Cƾ��,Ǵ�PO��hޝ����6wBš(����
����w�h�ñԉ9
mb%�~�c����PI _}8-��ۤН���
<�F=�Q�+
��߬�O�8�������)�4m�i��u�y
��(�<��4'
�+d1�*9��s\�\g���h��'ع���_l�{�$�2ZhBh���F�I�+�D�>/�οQ�������Kr�k{5��.���T���@�%�u�R�=w1щ�������X�E_��R�^K
>
KC
����
��/>�/�i���E��%�F��o��Zg��aAլ����
H�k��U�-ɫ���V��"W��CW9F��H�����Ք}��B[�Z�~�Z����
/9�}����)g�O�rv����e��N�����fB��8�2�Gu�R�bE�|� �|�#�5���l�YwT
[��`��w�i�}
����ӣ}x����=���{�ɏPc�M���e�C�0cy^a�[I2ކP_B-7:=�P�
��&\h��Ά80����d
��WP�h���
�'�
bp�N'��t�<��P�m�u�༮-t������0�y�'I7V�:V��y�D�8t
p|P�G�."�IL0�a��<
7y���+Д��_��*���bTm���ҷZA�V
(�f��M�Q��4L�_�nHt��
��	�#�Dd\(�Y�N�m"
In`!�
�2�Q��䬁"o�d
`n2��M&�`��� Pԇ�ͻ!��+iC��4+kB�Du����d- �_F(
+�
��T�n����R�����7X�5��7��Fp����.0d�!PF8�;!\v��j�@ndʩ�XNNȫ�I���C ����o�@+����!W2�hJ�Qf�:d� ����{R�v�O�>�/ }�hc{�6m���@]Ĭ� ��	P��e���t
�7�|� |����ϔA�$��� י
�T%���OX黀��
����>�]4�.#`\5ƨ	�L��Ϭ�_���9��,���P�-�R��
,?S�����@5�� "��Ib-a�d�V��p��'E��BP�>0O���]�QM^[�T��zYuQ����� � ��Ɛ9!		I�@�
@ �� �A@��(rUZ�P������E�
+*Ȱ�w�;�����9�]笇ظm�@�X�
 �o#D�� �/�����a��$v�l����a,�|��Fk ~�
`W�e�0�
��;xۜ��{!p	.��B
�
i+�n�	hk�rx
�[6����?nn��̀ Q�'q�-���[F�Ö�8ā�� h��=н
�����0�	D�
A�q1�O�#pR=���%�~�h��@m�
�3�@�	ҵ�@�<Ex�}��!�3��)j*t�o	��5`
 .��*{`�^������A8da
A�uI��D+ .i5p
�]������izK�$�T�J׎	�c�����g�����ȷĩ�${A��'���[�$4e�=p<�A�rȽ�Ŧy�
Y�=.������
+����4�/���qN�6KLM�(�)|��1L���҃
"_ǽ'=�zC|KxE��N����
+�i~���� ��h/y�kJ=
@��+H��
����p
�}F��@��-��af�G^��ANE�;V
���G�43�%�<�9�j�S�]�C�k����w�S����΀ȟ����	�� ��-0�
Bw{P�� ��
A��5��}�˴
�>�ez�$�|�e�[IZ؀ w�s����*�Cf���V�=zG�
�%v?��&��W�0���e�
�'�w�aO"��w6�x��� �

�	Æ9�
�<��c�X�^�O��;-��U�,�iBr��3p�F�m^�V�!�uv3�։ث��ˌ>~/�ϸ����n��l�$��;C8���
��T7[�ځ|�
��فa�䮛
��N�!�F���#{�4��
i�!�U��!��_�ٔ>���oA%��W���
�;�9-<þ$�`��O�Df�hl<�%n�|T QG����
�wN�::�>r�~�u�.��;Z�m�`�.�W&��<���AȍԄȾD
�W�A��3�JJb;D�|��I��o���K��I�yO�����%�^<A�Ok�3k 
�\!:_�:o���P�z�D�������[��
�ꮉ�w#���j�4�V�?����Vf�N$q[eqG��č�I��SV+�"�>��H>�J�����3*dS�
+�4��p�1:?��,�y��7����s������_��pyP�]y����W��~1G
yF���ԦЎ'XG���E��6�&�Z�,���L(�� %�;Hi�{I	2�+F,,�jB&)� &:W��n*J.���e��W��{;�i�4�IsȒ�����VI��T
|�(�0g��-�$Z�.�U��íN2	+TU�%��	iC
+�nE>rSiT��՟��՟�y�	z��
���߾�C�7u�27ۉZ���5/[|��ٲ��[��
Wj��ʙ�N���[�QM�*jm��U���-M-�4�cR�<7�U��>�4���2�_%di>
+35������L���A��,��t�y
]l����rx��O�g���wۂ_;�CO=aC�A�ֶ2��fS<�֨�T�hX%��B}�0/�D��=$ק
U�R:U�)?�R����H����ӎ1t��hk �uN������f�����	�G�kf���,�ںkyWS�:s-=�hU��R��*S�� �Y�����#0d
��e
���I�U��+*���"�0$N��%�ǘ��q�5���@�:g6��t1f��_��Km^t���?��p�#`���:�Ἇ7R�4ԲwVW	��e2ra���S���(�h��r+��F$!ˬ�e�����H�P<�3�Sd[X��1�5@�� ����c�bf�q�݉Ř�]K0��W����4��t���
���Qr��FVXY
_a���S��֗�pRK
q��b��\&-�O�+�=JA�]��4_8̗-,�q�i
��O��
+�1P�=�
f��<��^g̍K
v���;φ���ڻ�p;iSe
#���ݓ� &��ZJMr��`:/�2O_^*���y��Ni7�.���*���a^\��W<ƴH�=�;a�f�~.�a�l̽�s0�W�0}W��u��8�/l_�t.ҳ���Wl����:�j��� ~IH� �("��
;�BBB�@aG(���Vԩ#.�u�Sw
+�,�0Et ��VEq=�c=
���b��ʎϼ�O����;�~��������|}&G���P��n�j����'��Stbo~~́�����Ս����Ҵ껥?
eU��e��>6��
�S9�G��g?2ɃV���Env�K���7���r�k.
�^H
+��/u��sYq[[
7�s�bM�FuaӶ����9Y
��k�
+U�
E��
����┆�u�9��&��NMit����
���t�In�3 �.3��^9w�^Sǰ�V�Ց|��פ����Э3�7\X%X�Q"���L�{~�:�ܮ�Զʬ����y���m��dmC9����Te�Zl7$ch�I-��if�+�
�q�A��3$M��S���c�CV�����{n��
�Э	_}#/��zq|ε����I��JŕJ���*-��A#��HO�r��{��kJ�x�BrA7좑���ܭ����t�~�NZn2I�##r�ߒ
�w���Y���Q�۞�7<�{�<L
���Y���ȴ{�x)����}"I_�D�W%�5&��u������}��zR"�Xp"]~�$����ҤG���Hs���a���F��%z�_���	�_�r���|���2�U��^���~���AɃ�B���%�����h�`U,���숋}�;�&.v`��o��?O��]GH�O����#'o���LR9<�|5bO�r��ܬ
�W�
7/�򬳵b;�6�I��tSh
<eڵމ�-��N?���������#?G�k
��
9:�"�ݻ�v.��:�� �B!����B��^=��)�TL��m����Mz0�'��r'�Lӧ��S�������H�RmEӹ���bG�t�oz�K��^�ș�ܹ35
�M�᳝찹
�
v���	�.5�B�A�EB�"�DŽl� ��Po
��������B��
+Mg&��<J�h�����K=@±aI�۬�
 �8h�v�8c�N�-{?�p��o:��L��v���	�s���~B���B��e����2�
�
���#�0�Ƒ�ϋ��$

+��.B�Y >7�ú�
��{c���D�����f�k�n�NS
�2��K��R2LH.$
&zrX艨���Y?
+^��3C�� \�?bY>.�Ԉ�d#h�ݐk��y˰q���o�oLlq�d)jMlp��-:
�2�{��-O)zIH�8!J"����HX�>�--�t?x�9��g#��0�
��e�e:@����i��5�
!�e��96�̰�p�\�C��8���h��Շ�"	`Bʂ,�R�)��!*�B�k�� �;[����s@\�#��/�x7)�������{�4�<ǃ�.�f�q�q�!�cB��E�1�"S�T�,B�%W�"�=�U��^�jo�3�v��+�w)�n࿡��
�)
+>�H���m�W] �f�{�!�և‡�� T\c�M�P�C�j1de6��C��
!>�Q�
D��Hhu���
«
���)�5�Qʤ�L
���� �@�J��M������
����0�&�j�Tً�����H��	�C��ָCR��6�� ��
Q�r�
q���	Z�لq�鄏�	�� gL�Qغ|�A�A��Cil2}
�
f�l�)2�HϠ�Y�
�_8!e�+�<�8��!������v�C�K��ľ��ā�I�p��1�\�h"G$���wH
+�.Hp�A�F�ڕ�Lw�8(Xa��hS�-��^��dlt�f�'��,��r�w6�&`FQ4%o�L::!�
�Az;���׈Qɛ�o%�Cҹ�7I{-G�K�+�
D�4ȝ��P�*��y��L�a5�%B
)mP���1o��L�6�Ɍ=~�i�ޫ����Ԇ�&7rG�Qo�1�I�yC���W�W�/dc��lL��g)�B�CBt���!ő�,��:飔�c}�!�"LPƷ�:��̚
��bϱ�M��r��6s_���`�k���c�N����8���MEqk�K��Xܪ� {H�
���� @ b�	��B�-@"D@�D�
+A�^��VP���ֶ�^�u������9ߞ3�������)�1�	ŌyD��>$
�< ������{��>p�}n0���	��1�[ n32��+�����$lw��}
���b�:������X�ۯQ���)G
�r���U`�0kq��&�L��x��O��������1�
�����Q

f#���@O[ a#����O}k�
Tm���=�0���}ډ���}�B��s"oףX��}i��$��6h�W��������ѰV�0�+�
+s�~�1��e<c�^�{�w�;���‡޶@2���|)ҷ����ld�9��
\�:�ز�s�W?� m�U�w�N�xL��yZe)~W#31�������ϫ��p��ݜvf'��eaO�γ��f�_�f�<�U�-"�,���@*2��̏Azo�h��	
�;��|��g��%ϋN����o����5�z�%E��O����Hs	]:�E\j�1[��&~7��7n���6~k����G@|m$��D� [`(2W�
+㐾�^�t�
hX��ݫ�=��)�p~\���i�)m讱
����H�^e�WB
+�]�Il�.����
cd5�N�ĩ[x� _/��WJ~	�����e�T!��r
�2�=H���@��F:�+�C���
+7�gU�Tu|�L)f�x��J.ǽ']�yA
�oV)��D
��K���1
ѕ�Ji=�,��?�',��
+uҧ��X�K��Str�G�Ð��H�S"2��(Z���l#�7�6��u{
��
]v�2��ξַr����e~�j�>9�X��E�T2K�����^Q�9A~�E�6fL��H������@�S@�V��@�((C�^�
+d�!�o5����n3�a�N����KǪ�]/�wt������9Q~uq���X��N-Q�1��J8y�j^NB�03�S�
?*��?g$����z���$��� �{�� � ��s����羚P?�l��l��e��w]O~{G��I�=V��kȉŔe&ti���r���:Nf���Q��J�8Y9$Q)�JRR^�������y�:�m�<$�H�X�
|�\^ԯs����v-�K.O���}ݪ��7�r�V��>���VA��N�fgf1�Ӌ�jMOu�^��>/NPJ�Է$��?�I��I��e��H\ �@�\�k�
�����X
+�:��G�.�5y�io�nm>K�W�g
�(��K�����ɔ4m#%'���]ƍϬ�f��e�iƴ$:�7�<�-3.�#%.
l�b$
�zo����b0[��=���\&:7�;�/�j;�E�	�����W_v����_�U*є(�ɧ��B-K^P•�Djω��^�H;)���ʋ*|˔|�J� ��d!���"���5. 7�
��Eg0ri=��{��v��U���M�-�ݥ�
��:�gv��_c����Ąr5-�4�uF��x�b����$�[�ܒ�\A�?LQ�G��l�2d����
�=��iv�'p�o���ٻǩ��ѕ��7���w��
�6q�i�D>�YP|]>�&�
Q�*4�q��
�����w���	
���m�������WB�-P��A��;�?��k�#�t ���{h5h����0ph����Uw�-������uHy^���/;,1����

+��0�i�dҌ�,���M6��ɍO�h�oht#$1�a�-0�	��p���F;0r�
�]�����m�3`
�fouw)
�^�
�l��w+{���/�J�#�E]���
J
˒B��'Q:*(�v#-��3�>�xJ÷�!�a�
�m�� ̝`�, ߷�A�
,�h�r��O-������i�
�<m<`��*a�|��7r$�]8$>~%�s0ɇv9-�t9�(�a�x�@!p`
�9���� l
���, n�0a�ߌ�����@����v�;�(��ݎ�[G�%��];��1M�ο��Þ
�Oʾ�\O<J����Y�1�
+� k��������5����o�k��z�2[���A , 4�P}���qy��9W�z��A1��
=�R�0x-�'�a[i;H���v�E5}�a ��"e"�}_"��	� $!�H�$h��bQ�tܦ�Z

��[-�8:��Wqj��v��T�TqÀ���n�|3s3���wr�s��{���S���|��Y���Y��ճ-%�gO���Q��v�@z�a��g(Uz�m����r����tG��w��NB6_a�5��d�Ս,��3k�ќ*k���*r�eUxXs��Dž�
�l��*(�Z��6�ɭk#e�-Q��]1��C��N���-���/|��/�C�-�5ұ����4�
!�.��_
��
�r'�C�̹C��ҡ��‰��Lݰz�z��
)񒏔{g�,�"��FWL�n�K��2��<��4��8~?0q�E`��k����� �?I�/��!���q$pg�1�Y�0��

�
T;ʡp�A�,�L!f���|R2�'��cVz��ɱ��5
���8�
�.�h�R�6���Do��<!+���&!�)�R7b ��E S�(v�8b��	 �OA�C"��ap����|�v�F�S����!��
�����5�8O]�����Y��+4����{��Fh�
�™(�����"���(V��ӑ��#�'
J���0�> %��(w�Ɓ����f�dl��fG��m�r�ޟ~�n��^BL�	Ѿ"4�	
I\��dL�C��pfb���c�!�Ń�5R�lOh��0��P¡E��
j9Nh�8b��#��M�N� �dB�B��gC�b��r�Dd9CV�I�;���h�d���F�
o۸�O������@p�꣞Sc>�����k��� ᳐E����N�C����P�@^ᆌE
���
�gސl�B�����@|��<�:��S!�
R�Ԩ/Do�/�G
�[1|l��
�h��f�;��
�U:A=�*�$(j=��'o��s��背f
2�N��/d
~�~C]��'�^ �O�a�M�)^� [...]
+
�|
:���a9���z�� [ 
gBƄ>�c8�i
�8�0�	�:W�=�7�9�>Э�vc 4ۂ�nA��P��Au,��l���ȗ��Q����!��ѿ)^E*�T��'*�
d#d@�G��4�L�X(
aaV4�D{�%1K튢|O��"��Ə��
y��%��~G�nw�v?Dsdڐ�T�
���߳���`F�������5�}�E�=
�z������ &L���`�dcn�=�
+'�\��y�0���.��+\2lZ
�b憘���g�M�Os�N��=ɪ�H�ӞK{��*���+��y&��O�����\�������0�TAt�L��i�/���v�NuĂ
�7�u�cżs����J>�?.\�0s�}��Իy���m��9,��?-��w�n�og\�?�]�
}oD��|$u�0�R�.`�������a�̥�S�������.��͇��=�/4���[��/��[�$����ɿ��(�*�n�)�1w�����Ǝ�K�N�w����=Rv�
�<[ �7E�)F��$��z��".�5��,u�L,��Xo?�T�4�8˽o�����Ґ���17*�f�hiH�R���R�F酒���EM�s�-�3�ԧL�4'L]�c�;ڣϳۋ�d
)�����!�J~r}�E����o�Y��{|
�_
�y�"űo����2������k�s���k.�_��Y�B|Ʋ.���͊c����/5�K���9P|>w�Ϲ�%�V�Ke�
d�Z n)��J [...]
+b}��_�`߻F�ܽR����|�~vL�U	�k��,��W����Ty�|�zߜ����_��);�����q��c�����2�i�@Vs%dM�}Q	ỐOs���ڷ��YVp���3?
c>���� t��F�}i�1�\Ci�������
�`��m�r��kU{*7iw��<狹_��(o3~n9��h�2m���:oH�Xն�f�>��L�0 ?I����8X�UA)ғ`B(�@�(� =j��j�A�@P�((�2눸z�Q�	3{f��{vV|��
����>_���Nn��MF
��*�1&�8��xx��ot~
|��N��Ό�ъ�X��Qu�TY�٭���9�.}|�gWF>U�VJoO��&51�/�'��&������Tſ
+�NZ
�� ��4D��#/�C
+��
�+2T�Vk��r��R����tLg����ve��뢰%1Gz
�;ry
�r)R~1�)�ܿ>��Y��ƪL�a������&�K���E���ļu��s��->��T��C"�{٘p#�W��7��
ư�nA��:hO6z�I�w
V��zE'�:J��
�<ZY����$K�_ɗ0��!��Nvq�`Xa�
n~�na�?C�3��/�F4�\���U�(|ɺ�r�pz�*у_Z��o2}�NfF��xDk���h���S!	��Uu�]��"Lv�/⓫
�rA����*fIvSHA����y%<�?���\�fg�����=0_��#�B'�-��͙���:xwj��6
X�ԅG];	��Úc��Z�;z�-/I"l[+c
�ʼnn��yd�0�VZT�WTX��7������p^�Mnz�<�'�;�_����"�Q1�*�
�P
����E�&|I��с�˦��nk�a��a_�	Syk�^ic�MC�c��	��4o�8�D����[*�,�c��ةE�aI���Ģ9nb�2'E�fz)b�J�?�RDU��p|M�$T�W<mՀ�
�0ק��&0�wP�j��A�����b��
��hq�%�)^�5�>9U���*���%�Ie��Q'Nt=��h��/��L�@��
+�T���P�![
�� �ד`�]

tk��
�5��]�R��wҗ]&ok��7��B�ۣ�K�q��-I
�M���<zJ������W�Š��bGWs���EV�e���1ck#���IUJ҂/�� O��0'S��^5�5H��#P
[�:���J�zm��c�.�a�/��
�c
�.�u嵧{'_���ƶTD77E4w�š��r��C�M�C›?D� ߨD�nFU(��(ƿ�`�oO�Rax� �qC�� ��
�iq7����\	;��w�>�7�9�'��LW����B�Ȏr�0y��L
,

+�M1e?0Y�~�rD���#CdU��V��&z	0��_�@�]=h����x�V�r⸁p��D0`ƿ�ޟ:es�Z���d����j��J��h�*d���AC1��b�)VO(�P���
�T��{�k���n��~�x{�o�eF�g�C��5�='ݼio�s�~�)wC,��D쏹
k5�t$��9ǐ����27��zO�1�7ml��36E���|blՋ6�<�ȕ~
W�N�P0-��
���7��HP5�	�#(^�C�}l���g��I�q��LO΅�s��d?8{ ��&`V`ǘ9�f�
�32g�̠��촋�������#�
:J���R%����n�+Wq�
���g�C5(~��/���r!���Z�
�����Ɯ%�	�Y���g�f~�������,��"/��|&��x6d�t��m�G��U����nߣCnO�6�p�`��s���Y9P�@�
-HU�Y�.B�� )RyL�����R�7*�71�[h���P�)���,SOe�Nwe�n��6s�e����w,�~^�p\����O��;�Cd���e�.|�-���{ �2�!aYb3������V�������]5�+
ꊟ��J���J����M�Wӌ�V�}(���������>o;�6kb�������6ە/����a+~*�p�<@���� �k:����>� �}�K��ې���
���_|4���kC�:(r�
:�k���!��T��
+5�C����^���pZ�>}�w ����
<H[����_ �H��h�
�\�~�:L:�
Iv�M�Q�"��
+ְD�{P��9J�ڍr�w�2�
�I�u�|��u���
&�9��+m������8�)@
�g)�k ��H��
E�	vȜ`����
���d�YT�g������;Av�5&@ �$$$6!�)6�7�,����E*n8R�A
[EQ�}k=ť�ӊ֭�Uq��3_ۙ�x�;�����}�sr
pig0
 b��ɴA$�
+�ZH�2E��1ʴ
�J� Y�e�c������'6�PT�9����I~�������(����“��F�p���
[83ؘǰ�'�

h�iC���z��u����%�i�cj����&�v&���O��N�߃�Ѓ�`�O
B
�J
�π_�.xz��ǂ6p����0��~b�8A\4��u�
�xg���3��O�>C�|��x\-��,��@�0��Y��ï� ��
�������{M�;H
3��)�W�;��=%��w�Ô/��x0�ȃ�&��|�<B��D��d�,H�:��τ(}��
 Xi��ct� `�)����$���
�����-
�?&^[�?i���	>����T��h�\H>��D����,�Ku ��	Y�
B�
!�2����m��@���½V
"�i
�Ekn��ٓ�W����B�_
a5
�W���\R'��H#��ݘ�ZX�c!F���](�#,��2S�֛C���M��ʆd�͔dp�G����#v�g�&�W�߉�ڏ�ux!�px.��S	l�H`�8�G!�ք`gr{Qv4b�gم���D�)t�0� 1&�*4�����
_c3�f�E��;�v�7�{�^��u~%;4���
�s�I�\I��>���{7s~���c
+��R�V$4���e�Pͦ�2��4/-��!E:��
>&����ϵ|3
So�"j����9O�=���w��60���
��G=��/xߑ���I����;����vM	�+�3	��"�	��
D[1�`�@*��&��
��
�D3>�+�ߤ�L_$������~YT�|?����V���.���z}nF��s#b�{=b�wUy�wTy���ߥ�7�
Q�>��
�v&��c�	a$7���d�;3,�!7�#���ў�L�	�{�g� c	�N�r�����Pչ_Kh���ȹ
���&v�߅���s1��D
<}Ip"���X�ˀ���|�ăs8�Ép'�4!��
�ι�t�l2K�
%��d�s��o��bɬ��&?�$���3��K/�w)���|�*Ι�������=G�
�
:P�u�i����㟈�&L�U�w(	��dx
��C�I�b��̀B�	�R2�
+{ƛ*W�I5G�neЌ�eJ�ѢD����Ng���N�˽����
^��w0�5�@r�p_R�hh�
ɠj_Ȁ꘴?�lw���w�}��K�o�p���[b�
RH~6�[EFV�Q��lƯuN�������V+�.��Y�*Ns:���v(���@Vo���?��,�r���=K�%}�;�;RC��
˷��W�$�V���Cؓ�/��
M�7&wУ��(#��Qo̩G������0�6�N�X'3<Yc}�"����۾�|����sk�}ٍ�
��E��6��d�~�ޯ�Zz �s�)e����/B;�E
Y�́_g.���`H�"�{�dd�:}�e�!u�Ō��Α�m3�u�Qb0Re�U��qhE��/�r����y�
���5u�6��rڥ
Y=�̾�V�>�Z����Ȗ�gaks&%�C�>���_GT䷫I�+&�gR�V�R�ZfQ�6�Q�mv��>��-"����{�9�צ��U���[^��RZ��*^�Q�$ސ�A�.o��9wGxS��#V�D5�\�j�}�\�?!m,DPS��O��;��!oQ�z�R�[3���~:�����7
��S�����o�h���U��ڻR��]���\Q�o+��/]%n.Y'k*ڤXU�MY [...]
e��Lm
8���Ȣ�TE�g�Ǚ3=a>����~��s����>9
+�f���?pf�ތ���=!)�B�3&�w��7-
�����:�í
�T~!3߷���1��
ײ��~\��bt�q�j��ZVWdx�,Ҭ�d���X�]~a����t���,����^��}w:��}.()�;x{�����B�r��%Fe�T�
A�:�']Hx�
�uE:����L8˄�M|�j2��$�Z%�������&E������Ź�;���i���
tK+��L)(�I:Z㟘�
��
�7�5�Qp|�o~	��^���B���D&���}
��8��jh�]π�4\n�AG�	��b�y�эWY�oP|&lm��M�95q��U;
�U��.�p�u<�c{i��G��~[�b�.n.�.zS��7�dAW��m�(W�I ?e���ϕ@:@��F
+�� :��@�yc��C̪ns�-9竟�j�s6��@}�pom����)Ҥ���	5�q'>Vn����T��Uy�?��? ���Ȫ���=���us5:����
r% �j � ��8Of��.-��lH��a�^t�tz/��Z}�=b]Z�f��x�
�;���:ƞ͒G7(���=�����:}B��|B�F�:�V7�^��:��{�N�x��
+�۵ W�:?y�O��^T]ׇ�^+F�5);�ǃ�ѽAO��ﺴ�4�B�U\�ۘ�{�>�ȔF|rT�^��^��v�=���#�}�#�mJ�6'jE��V������H�]r�.�;h�H�O2����pl`)

0��?�c��Wh���-K�j�э��c�ǚD�&Zn��*���Q��<������ZG�+
2�[2��Q���)'��9�O7��^F;uߑ.> g�_�E�̟d�+��?Ā���p���{߆���L3�N�p�p�~����;	ơwRL��2,��X��
+�km��
b��>�����E��
!T�*<M:���P�
Pq�` �RGذst9$��Q�F�1_�iF}��
	�

ٴ,hd�~�j�*_վ5^�\#U�Z7�WU��\�g&��L�匩�_ߘ:���Yl���,y� 
�����| ��bB�C6Č�`ӘD�	�q3dܓ�a<��7
��
ߢ�
��s��w
�^./zO6qr��D��tↁ����I��Y�p�����"w��
+p�@U/ɿ�.?y �!6>ք��!�>����8�^��L�I
�d����l�T,�q*�+�N׶�>��~�LW4Ӡg3s�'|:D����x����	ꩻ��D�a5�`� ɿ����� |
 �9�_����!(_�S�W"�y֑v�uc8��aڽ���԰y��e=�c��\���\
�t��m2��Y���Y�pO�'������-�B�a
��������-���|P�&(P�q%H��ђ�����BW�
=iS
`��0�F3
1��
+Ә+��{X��Y��2kY|�u�S�����}�.?�@���O �߁�2����`�`A�a��1
+�5��Z���JTP+Л^��4#h=��up��,��08XKt0����Ļ��7�5L�U$�;��x�
 �#��0�%�u���j�}4��d/K�
�P@領�F)�AWJ�)

�(�� �t"�� ��E�ƖF;�R!��"�Jh�`�8����� A���hy��ǵ���H�s��q��'�*.Z��o�ω7r��,�ɖX��D8��(�g����?�E,A�66���0G
��\� �Q�J\ �����Y� 
?ψ�r�ȝ�/j����:Y��B(�>\E
t�1Q��B�0M�Ʋ�!Y
�2���P����ͺ(��EQ�K
���
�
�g�ij�oĨ;K�����x�
,(��R�fB�Ҝ0�S�D%
݂5�%���;��_
�t�߸
Jkx(i Z�����G�>b���9<��J��/$/��%�&��Oߒ"o�
�?B����zQ��o��3��4
�oh""�� U�t	%����B 5�@B
��TY�X8�V�
;zг�c�X���<��?���~��y���qY�A�:5[��tMި
�D
`f/���^	4�>��
�z���
}�����z��3u�����<�
+q�z�������:O|I��~`��V=���.h�`� t
"�7�N
�qQTM�
ֆ���AH�
��$2�Ī3�l5�c� ~�[�>`��-c����5��Sf��e��~��	���#Ɯ�}Ƃٽ 0����L ��	Ƌ�B��F	cJ���j���H�}�1�@LIJ�Q�z#r�߇�zVM�#�����ٳ�n�'A���F���}x���iۻ������n����zЂ�L0X^� �W6���!`�`���U8ߐ ���4|�3���-��5�
��.!q
��1�GQk�G�,�7[�޸��V�N���a��{��r�q&��Ր�ΗB�;_
y�4
����F�=֧#��TX`̿6��M�{�W"H7B���d��]�沼5_g.}ʎ�{��f�k"��f|����*�k1�vW�Z
~޴��b�.��#��"��	�t?>�1>K�g�
���O.Q�x,�ŀ���^
�`3����8�x�ػ,�|�+>I�q������峜D���K����m�%�8��op��ks=���}2f�43J>}��p�Iʡ��^�~��3 [...]
+�� =/7A�*l	7�)��Y��Q�S��ɜ,�#��9eN�2$nc�z�?�Z��N��5���ӟ<Jݙt�֓tƿ;iֿ3��3�gW:xt���+
1��T�{ܥ:h�T�顇U���]�"k��X�Si��DQ���L��y���9B���"���Zr��қ�ͻ��Kݑ��֞~��J�b(�fZӟӕ����
 �e�;ƹ-�����{�B���抵�#��#Y�nKuь�
]���OI�:�����Lƅ�V#��`��iW^�[��ܙSOٞ�����k�2�����Pd
g�3/3�9��YR���\���=��;��@
���qݩ�D�����V
����wQ���-��:D\
�zwy�e���"�S��ح�@Ln��(-�M����~�>z
w,��;XýȒp��>�I����dY>�-���-�\!B�Eݔj�o�BW�h���N(�Ԏ�}��ɂW��D�+�,z*2m;�x���B�a����"4���hR~/C���)�;ªțf���c��?���] [...]
+�	n����OY	x����b ��- �;��j����p�:��D�U�ʎ0��\2�������ck�Y�,ͦ�&k�\�w�U��Eb�ʊ:������NFQ���� �_r*(��VP~�[��|���(B�0
�l5�g>B�U t]������*�щvut�c%�߱�0�N��kc,�l	3R5n^�Ԑb]���P+�u�H�<D5���ZoaU������0y��,�h*(Kt#�+~��U}�ͫ
+_��@&B/�nc�V����}�4�I@��Оn+�@��fw���m!��mѦ�-IVҦ
�*E�S�\�^R_����ڋ/SPy����Ҿ N�����,v�/�
�+���oV-P�e@�ʀ�=�������
+�N�����ً�o�.�3G��\5��RuZ����;6���'XT��m�ڲ
�����%�ܦ*
+��އӠ���;���d�qf��3Y������7�(l��Ѓr�f��nE�v��8������w�u
9��zk��WHw��{b�J�S��:���;�s�
ݳ���
U�Wj��7I�KKP��c����ʫ�X�
Z��/�%x&�	��=�
p������6�&z�����a��G5P��j
�W����:j�L8��r� !�
	��!�H Í	nA�x_�N=겻�Nm����ƻ��T<PT���
+��V�.`�j���-�>�d����|&3�e����#3�0���x��=��Kv�H����U�=k�
�i;m_
<e�*դ-��OزE�m��e8�i0���,�)<ۀ�
��C������	@-�?+��m��Z���I`u�'��6���@�pqu�����
�|�'�QU��޾Y���'W.
ȭX��޳.$�ܠN+�
O)?�/o����
K�m
+M-��2T��n� � 4}px;�� ;��� �?� �h���WX��ZtLÛT+�U�.)>��0�p�t�n.��>��'�n�_Zm�}�W���
+���>H[�4�@o��Ƥ��`���G�Lspf=�1Z��e _��L�Rs��`6�`a�(�����nQ��5��
����S�≧���
3��JӾ��U��_��z�k��;�q�olc�oLc��9a�9��1
�5Rk)�C:�{��P��W�X�����\(n���vW(hd��Dzs۵����
�DQ���:�8[�3.�O0�8ĵ}�ݶYٶG�1ֻ�5]ƶ��D��\"ΡK��Լ�����
+��� ��*�/=
0���"&\Bֿl!���:�!�#��ԑ��ufq:'��:�	�;#;?�����:�k�Xݵ�&��$�F�$��W�1h|
�~��z�
�=�}?����o����� ��?
 ����n��3b{˜��XFӛ̊�
�V��sB��s��>�)�K���k�
����~���ׅ���By�
�
��yV������?K�v���@��x ��D?���
Ÿ����B�G0�qL�d�0�%�c�
Mc{
���x�g���u
7�v����+{u�+}u�+5=�J��p��
_���A���_F�9 �\��w`l7@�0��Jt� t�T��a4F1n�ed��8��
Y�8�e�bI��e��I
���52@
�cs
�'��?2���5����P�@�
`
��EԔP�\���

��1l1
l0�1���LF��>�b���a�



���c�<iǚ� ���o��ܧݢ���  ��r�-�i�1:��E�� @?�X4�� &�
RD��F�
d�Ojށc
*
6S�P�B�6��p�+��
3�辘��+�g�K���.��
&'x��B��:=�&���������~
��X�BE$�9��E�i\�^�CϿ��s-��G�m�\�
U��
#M�<}�ܥ�
�!��7��[�G@����`8��3�`�z,Cu

ʦ1�p�>�/��j����w�JRC����,�Hn������!?
����۞
Fz0�E�Y�f�&���\TO�a�l>/�r�*�	Q���D�('U��
�DE���
+�尢��O�\�\�D���E� �M�‘0��Qn
ƹ2���8_B���X=�&�P3]�
�^"°O,ߨ�[�Ve�J��ڤ��
RU�UG�/T��g�s⧪+⇪n�}�Sq����[��{j���VwF@��/eP��`}��\��z�i=u\Ԏ�c|��p�<�˘�VtS�~U*~���Q�V�@d��o�}v�5uv���^��
ͥQw5����y2�F�k��H����Wɕ(���a����z{�tG�h.��
�R�0#�3���{��g�$i��n�u��D�;n�ݽ�����ov�%n���=N7c��o��K;bOI�Ƕˮ�ޖ]�}$�7,5ƣSk<:�O�Q����0����-�m�H�8&� ���d��հ�d'�
d�X�dY�I�gs3e�]�~�õ�5NW7HL4�\��r�A�׭][�ަm}^���9�U�3�~�fݐ{S"�6&��d2:�HF'��6�Q7���t�̓ М���ЏyT�b���q~��t��[]͙i{i�B����έ�\Υ���M�8�t���2�& [...]
+u6~3p:�����7���?�M$!�q6�OF�ƒ��5(n?�`�L<��h�;��$��g�/���坳��'9}��r���羜)�XL�x�s*}���H3�-�)�������䩠Q���a�#� {�����d_�O��4��{�`�{9�5(g��}/���go
+
�[�#|Yx �ˏ��Bq]c�@
ﴜ�q���=<�+��QyOfk}�2��G2)��m���
Z�1zW�
�3�~pGڳ`K���ΏA�
`�D$K��x[�.��9D@|"|'!�K�-|��
/�{��⣰��]�k��C���T�q��<��@�=�W��x�
n-�zNsP{V'�-k�y5s:�9c9Ԝ�q�)��0S�[�)Q�����C$��5��;�x�}�5��?�l`K�
~�q���C�BXRG�ͫ�;�P�]�d��C�>q�w�HE��Ӓ��ԫ|�9��0��������;�F�zx5�Oռ��Q�Q��B�g�C$kP��
 �|��sKM�gZ;���

�>�
���
��.=�w�$�e@�q��<;eb�6��tU�!�ŕ�FQ=�.��Q#����U"t�G�r�
V��M�N��|D�#2���f�o�+)�
�;�i	�Dok�vp���a�2�v\wz�`Y�s�:�P{q�G�2�ˬ��6��d:j��H343���!Z�HXi�\�:�!�$;�D��0u��t����
�[�8 ?^���|��
W�A�
,�
�9�a��i;d8��;�^�r�ji��&�������F��7�Q��*�Vnbh
+�CJdC�J�,K!�)��.R.�>�H�_�R��T
+DQ!�5(�{�A��W
�i��e$�J
�����/�����wwT_��Z���I�q��<�xu�اB��/Wk(�%�����R�"W�K��Y��{��O#��o�
T?1e�(��Q0dkP6�	�;�`͈���"v��&'3{�@�x�1��Z}�&�e��j��*���BtB�/�S��PTZ}����.+m
�h��D��z��W?�䫿����)*E��2D�� k�~[� O�p� Kf�]- �{`��t�R�m-��泎u��.U�il�R�л�ZJ*�R�%�Ɠ���@���M����Fd�>ae�������-�Q�(��w���=|����kXh�ރ�k�}tw
K���
fW�vzoUk���%��ƜyTe��7J|�
E��ueTam5-�hf��t�d֌��W�	�R��UXz͏���eDL�5��
����;h���ϴ�`��!@[�+�{}	�=L۪�_9�w^ܧ�Hr+�p�ڸ��V�w�U9)�EC�i6P3�&�����4�l�
�6m�&���l���bB��&�fBdk�*�=�[\����?ޅ�;`�@���
���I�v0ʾd �Qџ�\ЛvPԓ}��-<��zg]/&q:+ȩ

Tv{;-�}�
߾��ԾΈ��f�[�%X%�
�1~ּ���i%� wpϿэ;��h� 0L9�n�(h�(�T�m��i�x��p,م7�q0k�8}D�:��b�|��.
Z.
Q���<Ƽ����
8߇�/�!�ך?��
� V��������6OT�b�����7(\����7mǻu�!k�S���ԛ\7�l���YőK3Zϋ3�^���N��
�==}�3�F:5��tj�O�$:��@^�<�w��!���;�;�j���� ]����'pW	��D�����K����M���/nEx�Š��ܲ����S˭G��<���<"��<Y˯<Xw�z�� �":ʺ�K
�o�R� �?���� ��P~@�=T����Cʆ$o�@�&���E�ی����h�ɱ?��s�ِ��(v��0��hq��w	ݸ����y����+s
�1���~�j�`������K �x�5��'Hxf�~�g���-�l1��v4!z�!j;���ɰ	�چ�(�;:{��i7m��!���C��G{��w�5uoq ?��$� �� !�	j8*���,�ɢ�Vi
���
t���Z7����V\�֊Z�<l��":U�cQ�Td+�y���8���g&���{���{����l������ְ�{��o��hG����J�_C�K����Q~=@��� S9�o
>�b�nV���>h�����0�-
<��m[��8�u{\��<Y�9?Y�9�W���<���<�'�<���}+��[��G��6���_F�����_ ��D��
0�w�	�F��B
ڗrp��WZp~�
N]�cWؿ�ew*�����0�/Y�&֪�[ֲ�
+��J{_�݃�E����u���)��
�_����; � x5x<p��f�

��R�ݐl��A6�X�/H1$8
Ę�8D�)#�"�73Ƹ����H#�7c���/����_��_"~�0�����w�!�
�5��%J)�ơ
+�P��cԃ ���P�uB�!���4t��Р!5��g�?w$��=�!�_
��v �� �/ �� ,�1�t�ƔiB�jaPN��"�%^d2�$Ʉ6�1�F�t��rl
t�2��Π;q�1�gP�Ϣm8��$��9��sh���&I9�$դ�CI-9K.��L:X�xC�	�#�ZuD;R��
BYT&p��͡<�C�<��$�d+�+�>r�
#?��
Z_#�3�M/�e�Ȑ��o�e�wbp��8S-�]�Y��r�N��aU�y�,"_�M|Tn'U��ԐZ���\&M�a�Sހ��ׯ��T��%=���

O�z{�U
z9�g�IO�1!�E�4�1�C׹<t��s!5�H� 5[I�K	�4���ӂM��/�-��cA������
��3
+:ȟ���@=eOR l��A?ꉯ'�?}�r�O����T�">z.
銌������hԯ-�iw
{���=��k�	a�������C�,�C�R�D�NئC��

+G<z���Y�([� ��	�E�7��i=�b�AC��\A�O��k�B�+���/��w��L��w�<��1}�?d�D������UEԬ�]�@�iv��Y����BQ�鍦7ރ��`A�b�0)`�$B>��g���s���Y�g.��/1n�_n���������ߘ�7�wϰ_�d8"i4���6�[4�X\3<����oq�%�P|�ǝ�C�s��ɔ;e
�T3�(�#�j�nC��Lo�7��>
�嵄�

��3�7%_�������A_K�n�^
,��
Pi�s����c�
?��\�����t�N��� ��
B��`��hD�SE�oOu̐ &ʡ'Q
�<��8���H�1&��FT��ȅ�?G|&�^(=7�ت.�Dv6l��t�v�S!{lO�
VԆ���!����������a���P~`*Z��p�����ӄ�qt�L�:R͠��L�Cs��R|�I��_��Euq��ӱKO�,���^&?����u���-�Ñ���
�#�w�6�N�/►*♺2�jw*vE�ME4ʈ�hn
+�ҵ�Пƃ�L#�#�Z3�p'S�2'2�����h�����,��ď,��Q ;��mu\�ݾ�U{��w����+��ig�a����ˣ��l�ns�ۧ.���eqhW��D>F�� ` �}��l��A�
��mst��l�6+Bx4s��Pz�d�\���y�ʔŊ��B��b������5e	Λ�]7�w+��w_��cmB�KI"�K�PU��v�v4���
 t�6�L睦y
4,����B�8��,pc��7p5�aFr�D{�̔�=�jG����|Ŗ��6�\�!u�Si�z�)�k����N>�*�ve�]]q�+���aM�LtX��*b7�2�)�:��F[\�B:��qP��?�Y@���P���U/�bT5?F�37Y�-g�UYv�|cV��t�b��Y��k2�5��X�2}�ۗi�
�Ӿ�-K;�4�����N�ҌA����^6
�r��u�	К�H�W?�w�|��98�/�#j8��g�>	�̛f����M
�-K�e�Kr?R|���Z����9E���5.�f [...]
+���iՅ�g�$Y�(2m�y
+qAn�$/��I.ovɒk�ҳ{=R��d)��=�����uM�aND�����J���T�C
́�j@ك���`g�>:k��Q;�k���i�Z2E]�\PUnZV=CU�`Q�J�V����$Y�N��M.)��g')v�'(d�s�8�]ٚ��&�3��&I*`�F�ga�4g˨�}���=�@W�:�Eh[+�������W��V��(��D�����V�erی�"�ԒJiRqì5�M���
���h�'
*o{D���ZŜb����'z� |K}��jp�v�A���H{W�A����L��l�:O^U��niC�a����n�4�:vf�Gɖi�Y6I5�5��تz���v�����++�ET�u���
Q�O��L���9DU0�D�R�/i?�
WS
(���l�����
BԶ۠r�W�~>���oJn�
+㬖��u1��D���
���m��R�U�j����Nau�g}Pw�5�n�|�����5s
U3b7�
��%z��Ct�}���v�=7�[�*�J5Pjfq�o
��Ez��
S:B���L�6�ψiO3�ڐk���6��V
��*Y��%]ֺ�)���s`�7΁-�
�Z�òf&^��l'��~��L��	��!�߽�PvK'�^�e�.=ӑ�#Af�'����O�Џ�l�=R�-�4�+Y֕m�Yd�bk�u��f� M��_���Os�a��k�%[F�~����mf6�
�z�����
P��(�h�U��(��(�H�"y�5�������E�/��_��f�m
�7A�|o�i���=�3�z���j,}{����=e��{��g�����7�>=���
f>�yz��

��
��Lwo�T���y���#@��D
��rH��!O.tȇ<�Tg�`�n��J���8��T��y��ʦ�
4�.8�e���}��GO����������y
b"�����

�u����
��kh
+:
d
������lX��a
��uF�v����m �H���~��P��;_��7W[<�K[g��&CO�
#�����ٯ�<����~#p;�n'�p�c4�}�����S����
�
?K;�9��0��	�]������<^W|1�J ޹�y^Y�y����F�y�#�:.#��#��NW?�K�~��^y�w�4�'���K.N��毛�7R~�A���}XC���(��{���������THoX at zS
+Ǜ����C�p+��WC|;�wT����Y���,�
�,������3���3����nN����A�
�_z
����|J���>e�|��5�r���
�B�<�����x�
�G���hf����L{
�'�0yZL�A8�
�c<�
+���0~2��$�o��򏁜a�?O��
@�
([�@z��0����F=7��
3��������0z�
�׋��z9�cQ��-
�7��ö́
�1j��5򄌑�����+)?W
$��ïK��(ۍ�
(��
0�`�
+2=�1
�	�|f	���L<�B��_�!3z���3:�B����$Ք���D�(�+��;`.e��
���3e�э)߀z����]" &DD,�=q!^d1	!����5�.BC�NM�Ĵ[:8�e��1
O�M[�1� �	"8f��1�

3(%u��c[��K���M9AΒ��w�>���m�o0���8qLJ��8	��ƍc��
��Gg	����0��H
YG6�.����Y�c�
��\#'���+q/����?d�yTSW
���K¾� !/�@�	Z�*�,�ʾ�H�HXH�Ը����ТH݊�8
�m

�ک����^EN�w~�
�����N�������r���Oq�w¢)�^/
 �(s�Hl�Cb�� h&�M+� _�
�
��<����8�	��x���K����K�O >�
��N�c�t�f�'
��HbG���Z dAC�6�=��|Gw��ѽ�8}�|K� ��ߑ���g�cr�?F>�c�!S���M���A�\�=��iO�c��Og�#��SbH����5�|'.���5Ԙh�Z��z%�B��S�E]�3Q�Dt�
�
�NSEW���G�-��M1f����O����	u?�Ax��
�}aM>n�ۓ�������O��_�)��S
�'
z��R�C�*�}I
�d+�d����[�}̛�~�?$'�7$�XW<
�.z�6�0��s�;pv*f}
�p [...]
+�,�I�����K�`btV
�`����Y.u˻��w5��2�U�&�߽6]��n|ѳ���
��MF<M�y~oz���I�fC޿���Ʀ���76�#�
u�Am��a
��G�����������-��Ƽ��\%��9Z�y�%F��jM���0=����f�a�v�o}����O��O�Հ�)�c>׬���>����~?l�������������\�Ȃ�
��a
�h<������N�;�:
�-4�	���˘'�����כ
�[

0X�4[���>��a�߿���~�}�'l��_���o�
0��
'([wb+`�5�
0���@hl�FcY�q��e��F9�
�3Й� �ۨ(���֑p���<�
u�}��ֽ�K�{BVq�
+n��n��
���
+��+�og�Y^G�-�=�w[�k
�
��[?�0^�c���_�t-����
:�����a�q�F�be�=��-���V���؝�՜��v
k���
��No
��o	;(�
6�1�'ǖ�g���;����͑ض9
+�|�/�=��7S���Ѕt�>��L�C�O�!�l�/5�ѓc�;)մ31�bG�ں=���[n�[��
c�m\�L�_�&X����'\=�*�����

1���X� 쁭!
�Bwa��0��$Ѱ���ѡ
1���&��T�,ҨC�h�-Mfٚ��ޔ��$��7'V94%6ҫ�V�ovZ�C�,n�KC�QQ}܈�.��K]¸c]"��0��I��i<d ����^�y�`�
�"�!���rF�Y3�]�yT�"�՚g�Q�f�^�`�MWsVK��
i��S��Ɣ����amr�Ku���o��䳮��w]�SƄ�T�קa
��I8
+�����
�F������s��r-P�Z�v���s��-9!���E�k�)�rkCFg�\k�tq�C�����-s�L_',����Iw�K�]uҿ�Io���q�ɰ@���p'��؋i��qꞀٳ� ����Rc�viy�]+!�hf�-yA�&u��JU����t�YJN�2ϮJQ�P����d68�f4	�孢By��V��M#vϓ�t����E��
5
+��*08Lz
�пd����cE0��`� ]Eƨ���Z�?A-E3ɦ�@�Anܘo^��fU�δѫT�KT�ܒ�r�8�α k�P��I����R���(�ܳ�7ܳ�^�r���*�s�1/7;Lz>q
'� 
A��R�����
:J����m(sEM�^��ğ�P�и�(Ƭ� Ų\+g�j�m��܂�RZ�W#P�
BU�QV�W���-Su�=#�*x!�Tc'�
�jLޤQ8�'� 
•�\C�T"�	��	�R�FM.�P1�h��a�,	1�(�6-+I���d���,[MQ���P�SV	�
+�;ej׻ȵ��e�=nR�q�4�ew���8]���,X\�i���P��%�28Z��2��
����X��N��vQS�K髂X���&�	�Z��:�\�Q-Q�g�9(J+��F��u�i���W�I�cn����(Y��S�
 ��üIw��y����pB{�a4�ܷ
����7X��FU7��(o�E�42
�Í��b�rkS,�k�lE��V^U�M�*�U.$W4	*�\��ݢX�q��0�����4��k
�3 ��!��A4�(AD�q���p�U�֩�Z���
+X+ 
+8"8Kl��Uk+���.D���:��Z��u�}_�Z���?����y���}r��?h��
<Oz�w��pf&p�{������|Πe�I��SaNJ >L1+�'Ǫ�$�;LZ�_3~�P�ec�^:A?��i�Ö���8�g��~����&�h�;���+�Wƒ&�^��I�>��7A�R9���
��{��u{��d�*`}��¬4=f�15�����x/��j\j�ѫ;��|�v���
������G
��X��{E�wϔL���m���
n�5�l�����%���$
ݓ�W��o�����y?���8�lJeҁ�5��29�e�g�a�:_�_�q�ڋQ�q���=�C�8���9N�w��n�����X���ۚ�]2�xu��j��8�
�Q�
��gCl�s��4و<�+al܃��?/
�b��, q=0���D�Gcr5����04/��"�����~�}T�s��{�r�e����.�r���,�E�v�ܜ����GD����������7H}�z�
Q�I���;��q-������r�i�9����Ѩ��
}�>�mm��V
⭱��5^t��Wt�S�Y����Nq�̟���X���b�ߢm��_�6����*m�管;�k莿+��g�s����'� 
��v���}��8 ��
���.B�-
��8D�z �6P��F	�m���m���m���m��dۤ�}���h���ͮny�c�!�xP:շ��n+�9
+�d�	;�������H΢�l@��@������Ѻ��EA0[T
�V%=вdKƠE�4+�+J�D��u�I�U��>%�K��ſ+�
+����T���
�O���ﳿ&3{���_3�[�������_�
�
���wE
.�R�.uC�K�ɗ�������"�����ۡ�r��AWY
�E	]��
omb�j�/e�?f�SX�hf�?�� �
rh^�U�?�����mw���fp����ػ��> ���p���b��P٭P؋!�v��I����/��3x ���G�������@�� S`�
�
+����j'hj��X�U�5@��¨#񥤆���5��kx�k� ^��]zB/�Hf�����
,d~Љٖ�@�ˀ�O��&���|P��:�t^��;5�o
+��@]
��a��\��:$�d���w�X���<sc���Ϻ�W��� �[�����g�Cp�$�S���HO2R0EP<�EY�,��$�<D�ߐ���~�!}ȳ%�.�9
R�R
�hͥ%���2h��N�K�+*��t�~��I����M��ҟ���#�e�!��Xb?!
G	��,�r6}Bɔ�ȢM��v�>���NR]����%�����
+RJ<Q�I��
hB~l!���u?B�����3LH�{B�̤�)��
!����mY��p>�:�R�p����U�u~�ߜ%
�H���x���]��/d�����Ϧ�{̽� �j�
	��~�O�9�^�D�.U��e�纍�.O<��Ot��c�
��BT���Pw��k`w%�襸M��t�
�����l��V�GK��f��#d�<3#�K��w��a��5,Ն�!]�j��r�}�v�a��2
v�7�Ἰ�}[��S-.��R\�
+�@��!�nӀ\!Cu�~�a/Z�lE�Y`<
7"
���{���n\$n������
�q͸A�h�?�����J�	�ŀ2Ey�uŹf�)�4�S�6��b*�B:U�l�|�
��	2���������ۚ�0�#�Z�ŭ���	�i��4�UT��$�w�T�9S��i��̴MuڴWUb*P��ԅ�J����c��
������
~�
�2W
����:b\Q���q�}n�E�%
��󖱢�2YQj�PYl��:e^��Ɯ�>iNs8a�r8�.��h����v����O8
2��
0��|a���j��|�t�m����GF8BF�"x�Y����;��
��ը&(�n��1�P
�O|3Bq"z����Q�t8
�/ǃ�K��G�h�E����2
j���Ī}Eb�'
{��c\jl!�B�!�$K�@$6�Ib�ر@��
�8��X$vl'�
�Y&��v��L��=i�&�I:M��m���43��3��{�y�9��^�+b?uU�L�$�L�(��8/~�?b.����J�Ϥ��T���J�>
�F�I��
��l��
+|,���Ki� #
ޖ�_���LA��YB	e"�d�D�
�G_���vQ��
����e�
sI��Z���OKB����/yȝK��3��kFJ0��}�n�3�уL̽�{T����
+���r��r\��9��f�W��
9e�AEE�r�5����� ��z���!֜l�=+;ŝ�\��2��S�����	����cr��0G��Y)
kX��P�!�J��E��Bl� k�d��J'�+RR��D�.0����ԓy����	��5���
���L�G
�a�Ÿ!�5�G�h@�h@�DЯ$���a!�0���\̜��
/�񨻍�(#AḦ́˚Ͱ�y	�4i�ӥr�)uQ�L�6�Wl�zU�DQs���=\��
,�
+����
{����xw�/\����:
	>�ul��G<�>G~���=<��𞍄��r9
��8��	�z1iV�I��E
זƌ���3�SZ�
P���J\ܞ���x"�Y|RԡZ�oS�'���&��>Ij)�{|K	!hQ<��� �0�*������A�-3�^d� h��E����0cJ!M�����aCq�G_N��U�{ʭ�.m#۩m�v����4�B�fFԤYJh,]K���N�i~�ɦ�[���ڴ߮%�'�7؇�� [...]
+ӏ�J!@xU&��K���>zpu�6�͘7�9��o=Fl��c�
�61�]�A�SF���4[˩
�
+���ʪ�n�X�;��恸J�q��ʟp��|����&]ՇȗIz�"���C�G�/�_p�3��
u�
8mx��
8ل���ǚ��y��RH��G�"��^m��Q�lF����Y]g�Tֵ�L�}q��q��:����4��6�Z�G�H�X�#*�qe�_k%xa>�}� g�6ּ���: �:1wv��w
�Ҡ�Mζm�֖Ljn=Lnh�G�;
+��-����Ze��ij�g[���nAYè��>_b9Qe5���^R��s|�^���b;�Gxa��}x��&ּ��+�?�1s ��[ܮhhw���~�{I6W*�֕I�v�FVvǘ:˩��
+zy{-�����ns�[��
+[gD����<G(A�x�sB����<!@x���!��=��������0�
 
Gܽ�������[�f���
5�HU�R��Oa�-�*�-�)�1�������U����uy�J��8�{I(w�����E2�g�,׿��.�/w�l'�	���3r�,��{a`z`�Dl�e��x�����$��!�v$��ɏ(VG
�c
+����A;=g��%�
pd�)^�g�/=vE��'�
�� }�	/}��J�	��z�:�`
�?7�
��8^�`�f
+��T,�||������
(�I*�r�/���+�PNi#��*��&�b3&[iRoC���yة�5�A�[
��S�x�l�8�:8��0wp7z��wa
� u�O`f 0��N��IP8ς�@���2�
��!�< #�y䌀�"�7DH�-�i�����1�����߿JK�ߡ'����}G�w���Ef�rÍ
`��X��`b�u
��� �����dc!#�i�9H�����Њ�V�IW
+IV�䔕J��;eߊ+bop$rO�T��२]��Q;���v��.z�2��,�c�)!��+���}s � @��O�5b,+�<*_8��5e���
+ ���wu콚/�$�'���!�
+�aG�J�
j#m
yH[C��C��/l�A޲�	y�������_!"�[{�e�_D��}d{��
 *P�t
 ' y
`�� ;oQ`뛌��]PQ]y��7}fPPi�
(�
���PP��%G]O,I�EWE#Qlh,A\l(6tQC46K�b�z����.�ݏ�wO�w��p�w���w
<���(v'
܋���H�>������dZ�$�E�,��,�si
�J����g����|XH�CBr<(d��s
r��뀯��hf'07��!�_��R�����:�W��Ɗ����2��B_}�(�VM��*
6U����	M�	�
Me����0?������;�ϋ���gns�e@�@�Ӏs%`�����-T�MP^q��7�W;A�T��(���ĉ�ff>X�x�kU@�c^_�� �c?��\��p/0��Q�z
:��U ��� �e@�+ �n:Ԥn���ZpC��͐7�݀��3��!��/��o)�ca�؉����?�DZ��ڏ��CK���sw�ُM�>��0U�﵀�&��Ѓ�
)yo
�c��������ܤ���Q}�E����.>o9����G윸�����x�~�Q` ���:�ϞWX��x�}�ͼ{�~��⦆��5i`M��󞬉�"��C��FQ�
��l�`��.~ �� �<_���
��@��]�Q
}F�i
+ͦ��Iٴ�6�6*��TL'���;<�wx���Pß-����l
�٦-��/����!�9M�J�%��rh
�S�a�޷
�q�%��Rճdo��6z�'D+7�l9�����/�6B�B��Ih��Z,����=�eB
3�2��X�'(ar9��
��!^����H����3DG�����z��p���t��s<l9
�a��4	��3�F=��@:^���\��'���WmB�� �T����~�mU5n�
��5jmjt�6�����2��� њ��.l�?�%��I$�?�K�Qxj����0
�
�����
�qǰ�
p˰7
�Pk؏�qT���!�ۿ��@�IHT� �ӍLMD{;���m���
^
�hp�g-{��e �;�m�1���j����)�N
q�i).9}�
Nkp�y�:�@��^T�
E��y�lyW*s})��
+鈛��݄�p#�?��(Iё��e=>1�E;w<��;
A��&W�
�E��8�>
U�Q�1�=�H?y,�NxdJ�<��2�u�Q�-R��.�����i������OeE�B��v�W��jz���/�+�/�
x����=�K{+�~�rK
NX���2Z*�L��-��!K��e�l�%]�ϒ%���#/����X
+�|�*
+}�)v�\Ul�Sl�}����M
�bc#�?4esZ
�4����tU���
��\q��/���Q��]�}��IE�cd�����O��Δﰦ)�[+�ZW(7[sU��ͪ����
�#���s�5�����oP�t�U]�*������60�>��k���t&T�� 
��Q
�?w����Q�=F*N�m

%�
4N�)h�"/����_���W�f�Wdkr6h�vج
�o�"�nY�o�̠6AB�m�А�c���̿���B$�Q��~<�)p0�
Ea
�W���
���HiC�x�ڰ��ܰъ��_(�{NV�
��^
���
+]d��L��k�$d�>=�H�(�aAh�a^�S}ZO�#��=�vn��4ݛ��jfWpj/�s'Ϡ?FJ��׀�7�G�bCdr#�H91�������Pf�
��蛤^�'Y��g����i���3l�z�2�	�h���8;��8�������R�}J_�#�6{�܎ ~f������췏��l��:l�v�ژȉ醕1aRVtYFt�b�aʅ������&-j����i�ّ���"�
)+�G�7N��i�q�4%�Cr�c��G	;ғ�=�F���� ��Y���c�P�'p��Fn����XoEF|��
�O� v�"-6Q�͠���hfL�ΈI�M����=ߐ
�e�
��41z��W�
����CR�[c�@a [�5{�砚}>�������)8��	
+|�`BV��
����`)-��,5!Z>���ʔ��U���L��M����
7]?1n�ݗ��bW����q\�>���r�{�c����
;ғm��|/�����#Y.��h=?g�o�ÌX<�5��/�e�����
��
�GAk���!�
�#@� 
A����z at T�Bt]O������Za��]��-3�um���n���~���L����
_�|���?��~���i����扫t�$���))2k���89ǹ0��Ւ�J��T�2k7�gk[=Lڃ�Y�S�L�^�&3iH��$���%Q�S�����{��
K��r�ٻ��>�5��`�:�d�1�U�K��k�R���$iAz�c~��97�⚣[�X��Vu���

����'4i��^�ԛ�4�#u�NpK�	J����?��sY�Ij�����e�C?��1���4�Lӱ��ظP\���!?k�Ԝ�s���r2�\�
V�A�Z���w��mꔌ����5I��^Z�
��Iz�-Y/(�b�k���ی�8���(b��q��1;�¬A�y<��/��
,���Ź9�$�9	RSv�,3��_nvI_^,י*�)�
nZc�:Ѹ�#��M��&�����x��`�D1̧���L����ڿ���bI��c���HQbQ��`
,��-�-�)�,Q�L�R}~�,=?�15/�99��U�W�H�]��������k���=O�yƘT/6
*��5
�a�pݝ�'
��恥�.���8Vr
Vb���k}9%�`*	BfI�H_�P�f���Z�I�W�ɖ�09%[\�K�Euʘ�-n�E{�#
;�E�<]UG��
Q(�"
ed����\�g��S���V�k�z�e���r9�*�a��GF�4�*CD)��⤊E�Ċx������L�ūr��*q�*��/,ۤ�_�[^v�-��,��-��*�TP�[�
+m� ��
t3��� �[k�7ֲ�!%u����NH��@r�Xh���v��或�E�c떈cj����
iDm�lA�
+����sk]C�[�WQ�T�YR3�YsW�Z�א�眧'J�#�o�n���
X� �L�m!�Q�%�#�41M�����pQD�"т�qx�N�hrm,���X!
n�w�ݰ�yf�a���^�
�̨��<c��<cY���<���:z@�-��[����}����,m"[\����mc0���lA�k
E�m!^�ŊBlI�Wm�,[�$�V&�޲�aZ�M:��lJK�,��#Y`�w��m�,`+�"8s�9?B�6����n�f�
(�	d�҃�@�^`n���J�n��,��쁘a����9x�
�i��0u�S�-쳊&�k�������O���/�Ƿ+��g��
��o�s���~��dܛ[�wq
��:hg��X�1� 0�0{��RL>�¤c>���	
�x�c&�;�b|G�:1�S�����Y�Q��1��
#:�����������A�s�9�����|�������

 ҩw
X��=|�}鄓���2�v����
��q��~	�� x�́GO4�=ˠ�5½�
+���P��B��E�E(z�<���(O=��޷��z�]ɸ-��w	"N !���
���t�;��<���
��J��i��7N}���7
��PH��I2$�9��CԿ����p���;�����7�q��BƝI��S������
��
0�"��@�!�tI�e���Ko4pe"
�WX�0��/�#�t�pL���.���#?�o0�5�w1c�b��z��x��;��~����~	�3
�' �M�J��p
�T,�=�/^`Q�|9��Y0�y������\t��$o�>r�|O~|F�!����Dϵg�/P�d�c��E]� c���An�ArKĂܑ���
l�X �� �Y,?`���/�G|��b‡h�E��E>{F)�[6S�Dϣ�
̘.c�	x�6o�>����&��w	-C�}1���<%�ă�=&�Y�E��y<�����N��
�>Cp
�m49q�42�,&�$�� Ud=�LZț�N�r��
����qO�?�/
�
+����z%q��x:�)$�D-�"d�%
d+�A�Pg?u�1��q
+��
�x����k������%w~���A�E?4���t�N"��|G҉�X�y��8�&>y;uvQ�
?� u�R�8�ۃo�>�?��pn�A��+r�7Fx@�q�nT
�\�9�C�41$���[���1�j�l��f�4�h���:�Ӆ/��u������<��;����H��T�}Pem�:�X5�$
�p
1$�$"B<��x-�J=pQ�깞�jkkն�V�c���uW����m;�
뻏��:��3���̛���~��۴�o�7(S�韮W���_'�}Ք%�CC�P>"�QmCT��oB
+~�Z���C�
�j����]�����
����FҊ��6\�l�U�~\�
�_��qQ�
�
�B�Y��OU"��1J����� F* �!�zR}��/��&4��� w�
|���kuW�a\Q�Ɨ����#.hV�s�|�يs�=���1|��
Nw�'#
��k"�uq���
�
b
���
$?��-2�z����p��۸�%W���b7;>��Ź�U8ӽ����z4�Þ�8ٳ'z���^m8�k��:�C�O�`�k�����O�]�"���_�ǘ�٧����1�-������O$.E������&�꟏Q�8�Ñ� EO���g`�
f_�BfO�r��2�lav
��lp��x�ix�m��7�1Fd7�w_A
B>
��'����

]��8\�Q�|L|4h��9�'�6{�6���`���ٮ�f:�S�-ڙL�v.�Y��ݤ]�n�nb�kwr���ܺ!g�5C��V��_>T�-È��G
<&�w銿6��Z�Y=��[|0,��Ga_�p�ҍ�6�	[tyجs0�t%�z��m��u�:vMl�*��[��/�m�[b�J���,ѝ�.�ݒ6�x,m!J�?���
+O��?���$�[F�M|@���380J�]��b�^��q��!ވ��,fM\�2��]
Wʶ�UqK�����i�B}��Y�HҤ_%��o����5�O��W�����̸��񢔐��O��%R�k�L����!jy{�Io$(�'ClH��&���$�%���IfQ��mN�pM���<C��c���6̔6$4�f&,�'��OK�!�O8��3\P�
(�$>�$�2BZ�
+��
�P
��)Ҟ�s�=�n#ڌ2��tŪ�h����1hNMa�f3sR����N���a��C��1,�36
+��K�5����e0��j��*`��
+��G11E٫�` �S�g�����~+�O�fz^��b�)K2��9s�G�1s
Ӑ�����c���
7_k*�ԘҐi��:�A�/�OL_��LoWU�P���Q����*�L��,Ch���>��rp:���>�i��B�z�eE6�l
�r��1�M4侍��>'������d[�P�����JY�Ҫ��2�
��ܤ�W(��6u�y��8�Ɠu��E����^�W�(�6ҜN`g!�XK-	�5?O�Y�=1#?��o�v����`��
��UyvΟ���-R�%(�Z�B�e�“�LU��Q��ݭqZ>�8,�;9,?�
y�™'ʝQxɷT��d�8��Gڳ�����X@~�*P`���ڢQ3a�6=�$��fb+
+rٲWZPėX}�5 +��	.k��a]��[׫m�]���NV�M�_j�UTXE�
�gܤ:�![G������-^��]4�:��u����&���r�D�����i�י�;�����

^��Q%��k�}��j_�
ooU��wj,��\�u��b�����3���^�

��w��Y� �G���r`���C��3��}Q�ye

��1L��ȸ�f����nowKlE~���F�/zGn)\��)\��*ܮ6���,��x�2�Js�� ��KtNR�S��*�4~�$�'���j�+텒�x|�Q䋃�7�q�2�	���t7���畖Kr�!Y�w���]���Q�{;Tiޣ�T�ď��Q�V"�_ <�3:�S
�P��4v�������N���O�~%��npUF�Q9�F����X�Ҙ��l�Ri�r*
��J�$�?I���R���F�*Er�Ve���*�I�X�P�T!*��E9!�{�:��;)��`�Tҝu�i
�/>���aB0�H�������1șld�B�Lf(�5�
\Z��O	N�$�I��2Cp�0��]
<��^P�U� ���T��$
+�Q��S���o��&�7
h"i4�L#�UOs
��:
��{�\?��a0�G!=���p:c
�0��66)�a
�~nL�>���\�yT��Ɵ��3,�
+ʦ0
�'�-Dk�$F��5
O46�5"�eE�
8���H�pj�%�����&*.��TӨ(1�>
+&������y�{������E���
+�9�^��٬Iθ�I���&9]h��Bm���^��]�u
�
KY�+Ǣ�V��w��dX�'���!-'
�Y�0�����0������g
#Y��T����:Ga�f)�r
+�/�lV&�TƜ�Ҙ�Xe\*T�%�R�=PC_7f1�&��y�e
Vr���� ��d�ia���=�����H����>}��BR�8�Ο,�$�}�o�ɽ��X{�
c?&�ؾ�c�~RĬ
�v��yw��R�@�Դ���`5�G�Qk�׋�W�I%
0��PCi4�K��+MA/�@�t
C�c4b
嘆HG�;r�X/us��
�����Rغv)�XH�k�����}/�q
�;�z�8���x���@�M�i3_�pz"©G�3�*�ViDhe
+B*"�r8�*Ǣk�$T͆U����[U}���V�<��B at _.��S
}�YԞ�qp
+5�Qod%0�0o��6 r'��Է�%�\:�+���2�A�v���k
<]S��ʄ�e��Ue]#9K�@U����
�{!�m����y�`<5��X:x�k���7 A�z��>�
��RS0�\$1θل�y�Y��<�n&� �;��|�&�y@�/�a�����r`:}�@����O��=@��@�A at w�:(�����_��h�
ʹ�8C;��2na�oa�i�&o��-\��
���?$O���9_H�g� ��F��W� �
���c��$��9�ϒ����j6@��Wz�BW6���
.�Ao�
������ʢw����^����Kr�����N`���'��N��f���nu�N�_����_�o��JV\Wp(y	��es̘|�A%��zp�v�ccp���>��&�7V
lc<�.=c6��$�z
�=�0��8�����WO]�
Թԩy��$�&ߓ��Bwp_��<�v
�1=H"a�,h�`1���0肉�g�0�P�B �D�D�*N�@�#3I�"����2RN��N�@��I<�7���>F;~�v���[�.�vB���-�ӎx�J���d"���%����"��SB�
ԩ�N
5j�{� �q���|�˿�C�?��N��?D_/����b"���Od
+�fRg>u��
�p6�Q��)����\s;SU�[��wh�W��p��}����+�\�D�� �Z��BӅ9	����H^!����M�?Ө3����m��&�SǎXC
56s�jn�ݸ�X|��8���%�:�U��j-��
�@o���X� �^�z��XH��o2�
L�7�7�Z��3�����X�
Ȧ�
+��󸮥F5*p��hf,Nc<�Gi�a����&
���U�nO�G;���<#pW��
+
.+���m�W��s�)hQ��窏pJ�'T98���Qu�KpH�nu5��uد9��
����:��P�#�"uO�
+�v"©
�A;����*<�
��h���?��p�{ �}���X
�N�!��pkg�I;��,��.V�U��OuEh��u�]����.�)l�����m�
+p�-/ XbEw
�(�K�e
��*\�y�>'���Y@*������o�1�zuAS�;hv�cG�bl
^��;�C�Q�	��T�6`s�Ql
+���n?J�p!���!��
"���'��,��Y��<���
8�}�h�HBm����cj"G�:r<�Q�Q�ʣ>Ħ�
l�Z��D����B�4z�T픊��51n�(�T{G�����U
HOi�c�{��W����T^o}�kd4�h��g7��P���i�h�2�X8
Pbx�
iuB�T��#�'�I��b9/a��2a��"a���xF�q�-EN�cEv���:Y��=��k�=ן��@�|��U���߶�^p�Ħ�X��cBI�Xc�զQ�7���4QZe���k�!�0}$-3-����r��P�e*S,1mU,65*�N*$�Pf�)盅"���J��C�ơ�q�s5�����>��}{`�%v��,iȵ��2��j/e[&IK-��Ŗ兖
y�%[�a�)�-%�y�j�ť��e
�y���ޙ{D
�K]
�q�D�pFf`��f�����D�
+5.�K�q-�5z�X��Tk��Ĝ4�mz�5m<96ij4Iۓd� 1��w�=�<��������/�*�&~,�$~#�$����h���������he��3x��9[/ �
��)�I?-�8�7��`�s�l�ِ'<kp
+��
q��J��4u��4�����]R����՟�+
o�z�WryjH"�>
�|�z�e�m�A6�G�#�����ulI�����1kLs�lJF�ɄU&��3-���X,V��U�ZM��I[a�(�w�
c��m<�+1�
Vl�
y�+6��"SH"���?�7�w��g����:x��u�H?6�#��<
M�Xm�E�%��4�X2�E�Z�
+�S,7{�2�
+�ۼZ[b~^*6o�]���B�e�Ka�?�����L�K�^��Z�e��}%�s����4���k�ah�E��I�٦���*�
�t�۲�m�Pj+Kl�b�ͫq���ֵR�u�l�����:��l�sm�/�Ԭ��k�Cz�����u��]˸9��D�q-빮�l-�#Q���W��
+eʔ$�#J�L�HY"8�X���r�]���+~)W�$/U~��Q��)ʅpEy'<[���!
����܃�Y����ż�1t7����|�ۊ��Q��B��Ru&����T��@�
j���:�\�L��5�
�IRԀ�Xݭ�R��Y���Vx��O^��YՐL��ܢߗ�u���J��@�o�/��K�} J�#Pd��c:�9��p��HG�#KP
���X&.q�5َ�,G��jo�2�;u���q.,�q3l��>�����P/�����^����0GO�4l��^\N�G�V�
G�3
+���w>�<�\��$丌X���]9�b�C��J�L�Wcq�Ҧ�6H&g�lt
ҥ�^ե���Ou��o�4gH꣰�+y|'��{������X���[�r

z��TB^i$��1�qO�➉ŞdyRa�X���,�|!�S$.�T�FO�&ͽNkpo�R�
r�����F��I��II��>�KB�^ޠg�S�@-��H �z��������dW
BV�HX+' �;
�<��)XTe��ʆ�U��VU(�eb��NL��,�n���
��{OKqޫ�)��ڸʐ6��'.��S�8\�>����8��4�ʕ�]
�
\��n �
��~
�OF�o
��}�H�Y��S��s	>�����Ź�͚پ����S�X�[�����hb�B��ڟ8�
t������f`���5�
���|?`��
�4Hn���X�<	�S1�?��$��0�o�
.f��0��f��i�������8�Y���c��c�
�1������Q����u@�fύ�C
PD�3I&s[�1�ef��ƌ�hLo��i�q�ڪ�3�fL	(�
(@L�
с<
؈	�=x*�)����`|�W��
�~���K����wQ{s+=��o�^�[��6 �Q1�L�Lj��ۢ0�m,&�M�S�X<���`*�30���`1Fk��Z��ن�;�aX�"��FԎG�=�a��֐��Q��e�۩�B�F�T'������%`�^ v�����>�ۣ0�}
�ڣ1�}�t�'i���;w,Ǡ�F
�؂��
h?���[?�
�
�C����Az
dݛX�'�$��b��_f�1G�
�	D��qrº����+RW,�]	�Lz?�]<X�j�z�bNt��x��|�M��=�|k��[=�tw yG��_ )����h�I�
;
>
�� ��|��d8pa
�D8�vs ��0��C���K77[7E.��
̹��3_�oI��
�}�^��3��v�i=�E�W��G���A� �
�a�:-� �Dr �:���0�������
3�G�_�l�����]�B���G�>Z�{#=�`��7����ԧ�_�_��	D�Q��ԾI�@�!�j����{����r ��a�C�я
 =��aO�p��a���Ȟߓ{��G{]E�
Y�bj���٬5����
{�����#����|D�c��1=�GO>
�g`�|C
�x���/y�=dO
��4��
r��j��b��E �20�*��;���o����!���"\>�'u�g�_���K�H�
���2�������kDT��}
**	��EZ��n��nh���YDQ�A@����B"2��b�M0�1��rRV&N�RV��8ff\*5qܢo~�T�����������{�=缤O~���l
d�!�H����u��'3�en��� ��D���ٍ��^ӉYD���d��d�"�d3�Av����t�S�"�oq?���x�W���?���"�

����~�
�1�
1�t�K����l�F3�`'5ڨq�s�s
��g�#>��mj�
O9z�<&�ȿ�?�eg7�N�
�&��qd�OT�@���E�ꬤF5j8s#5�P��{8g;���V��!}� �i�_2�:���2����G;C
5��ķQĝL%��_AԌ�3�s�Ө�C�Bj��F%5j��H�-������_�'�Q�B/��/�� }� �M�oq�~�$7� �
�/D��Ác�
��9}�r]*|=�c\|
ur�QD�UԨ�F-5>��V���9��w�d4��o鋫��˴��
���wi0Z�"��6�;ٙ0�eG'�\�;�k��B��q�5��J�N&gͣ��p
�y]U�
+��D���h���9��Y��ВS��G|��k
w�ql���C�y�e
����
����o$O�^17�����x�
��Ұ,\p��9�b�u,Ǚ�U85|z�6�S
�9�G��#�qGF^��Qߠ��1�]��
s�h��!ȓ�����x吻|��!�+�ȍ��p�y~���.��
��)�D�pM�1�lt�-C�[	:����jt�mD��6
to��O���$�x�m�
��}��qo�c<��6�WL7OfRߛ� 7�0
L.Ot�%wW􎝆��|�=^��	�����
���}��`��M.�k�:�-S��cJ
�O9��S��y�l�v
M�=D��+4x�B� y�4�����������O3
��:
+]�&��s6L���*���g��sf2�ϴa��R4{b�W��*��U��Y[Q?k�P7�S���+��}]��s_���\��u��S^���}�)����ZO.���;�
��v{{b��s��%�}4h�1��'
>Vl��D�o
j|�P�[�*��B�o��ηUX3��P>�G\=��X6rޏb�|Y,y�P<��\��{-��]�~�t���S��\ `�<Wl�?Mz�a�?��T��ӡ�ψ*?
*�ұ�/�~�j�R�̯B(�oJ�w�E������}bA�]iY�b~�<@����}��6�/G��d��&�8��o;蛦 g��G�B/�*h>*�a�R��J=ʔ�X�LA�Ҏ"e��BY$,W�
˔�b�r����+-]�--YtI��#e?!��,�C�G�߈.1��0�vƲ�1 -Zָ��.�	U�c�6��C}P�U�T:��(P��L��<U��TU �ʄlU����$�U�%[�)=�"-�"-��"5���.�#&���5��
����C�����4Ўʈa(w�ʈ)(��F����5�U둣�G�:Yj�`W�	6M�����4��U�*�h+�"�*,�_�(̑o$s�,Y�!�sG\�{��k3{
���|n�{
��kEG��0j"�^����m������`���� M�.��r��
+1Y�V���%�n����P�G�Q��o(���D��1
r���q�)jw���ge��g#߫���v,vF��qX���L�l� ��C���D�ހd}"�
��Ő-$�
	�r�d���
ۥؘvEL�i�!�B�w�Ȓa7xP�#����} ������v,5�@f�2�Ӑf�ո ��`X�j��#1΄����)�	�q�D��Fԛ�JѦ�
+��G�5]SD���2��X��{���sI,���βoW�Lj9.�]��Þ��7�$L�%a�#!1��p�%�`4kN��l��<!�\*j��b��YҘ�Kj�	E��sE��>y!E��_H�����^����X���<�j���
�#5Y�%�	�`J�c�/bS`H	�����D[��ZӅ(�RAc-"�Ub�u����B�Ǥ��+Rp�R��9����_���P�p��|�	l6�
+�
iG}�dc͝>
+1�c��x����@k[�H��b���[f�B�+��:q��#1��&.��헥��{R���h��2�q��<��3I��+�s��#k��v���x�a�>�Y�=�D��lvBP&-~�����,�"d���%�Ğ�X��VjI �5bԴ�c�1�Z�i�C��vZ3�\��o�1\r�{��y��{����lb�>Kz	�4&�Vq�.�]#�4"!R�hX�0�&>������'����dӀ��~��M}��̽������5G%]3G%>4G%��V��hd���e�T��>`
+ 3��8�E<�gTJ�&;iH��bR�48%LS�h at j����T����6Q}Ҧ+:m��Ҳ����+���3m�),�)t�USh�Sh��d���Ar�Cc#����˰ 
Js��z��2������gکO��zguStV������_ٱ
+ώS��	
+˙�М��SP�E9k�S+��c�͹,�����2L����/���R��X�ݲ|އB���}��0��	����f�8*��]A�
+,
V at a��
��Zƨ�e�|,3�mIU7�"u����e�<-��\�Ga�<�X����|�"i
z˗З�Q�bjP"M�1+�X�
a��F�J�Ե�C]J}�U"ϲ(y�
�{�H����k��r)O�sy��)/�S�f9�
�C�y9�~#ǒ�r*az.nc[
5(�X��hda	�V�>���c�F�g��W�A+%��r�:���!����-;k�l�q�l}Q
�3dcMW���2U�P��
+#[y��L���@��^�R�E7�_W�?7Hq�؃�R�)`+�5�o�
k��Tg/S

��
|�!��adg,���@���PՑX
��uw\
����xº2�����s���/���)k�S
+܍>i��
ޖl�oaHa1��~R=Ci}_�
CP
������o���,^�Ç���<�OXI�-�A�	��Gh�Foz�<�^�Òs�dwT2G��vN�I�8E
�a�g0?�:Ǚg
+�hrM�@-�H���|
-�����/�:'����
��֣��?��<!9�׉���s����������E
�%o���*q|�`�	N3
�����sѼ��&�'����gS���y\��1)�
�OI
����ԾU�C�l'F
h��§p���Ĩ}�j�0,����]��o9-4�^�W
B-�I
�|�r�v�w������뇮;y:\���X�J��gp
�_۪�p��{f遭�=5�����b0�
)�T��@��63��8=��
/�0q�L�Y0r��C9�+l�����n�׿(���O=ҏ�����w�v���Wrnǥ=� �
#`<L�7 2a!�/�c�'�Dc=Pڦ�[uPt�s��3���?��v�V����Fk
��������"`<���g::Ih��;e��EEh���*֯`�M�����b�Fݤ�u��r[׈���>��<ŕ�l�d�l��l����j֟��%��hMFg&����9��G�E�q\#���d������G
�
�(�+t��|�+e���`؛����
�=�vE��Hr��sh�@
���:s��t4���C����j�Q�N�F�i-��
9�c<u�j5�Y#
+
�Էc�b��z���;��#�w!�`��sqQ����D�ʪo�1G'��
�8N
�!�#Z��kuX9�z�Z��{���K�B����A�S���y�[�x݈�:��5ud]hA>�֋]
DN��g
:��C�GaoA:���N
:K�(g�Jm�5���b>��
�i��-m��P՝
U��|�Ǵ��
���U�����l';���c��WC�(
�<D�l��v�vڽ�Z���n��dm�����
�ѡPV�bU;�U��&�wܭu��Z��;�r��r�G*u6���P�S<B�+��������� �'����I��N���U��	��~��2\�\Fk��
�r��
+��Z皠�n�Z�6_+��T�[�J��U�^�b�Z-�8����U�ק�ty�������k�şVۓV
ɵ�׈`������z-wV���6z���k��u���F���X�vQ%ݧh��
-�N��T-�Β�'_>���N�z��M����=�~W��O���2��|�u{�7W� �� � ?w1Ԅ��Z��Y�����?T�}�40VE�q*

�����
zM
�f*7h��+;8WY�E�Y�y!�
�GsC�+-�)%�)��a��_�ڸŵ7�+x(��0fl�#Yi�k�͊P-
��%,@�=#��� ����^���+e�O���iJ�WZx�R#2�
Q���>�����_�
+h- Z�E%�Hy!�@$� 	�$�BТm����������N�!��Z��ҭ�͵
{������3��n�u;�֞vN�Z���!�~��>��Ͻ��`͊�O= �S��&��'�,V��
iw�� �$���uL�s�������0��^5���K>[R��)�G{Z
+6�g�-=��X�a�ڌ
+��pŸQ��
?|�mX��
��
+o�^��:"�Y�D��X��\�f�!��U<ຒ�����X�`�d?���|���lΞ���H�)�E�k�Ӱ:;�9:�rLh�)GCN�9u�����]���Q��-\ʰ�Q�j�IY��̡�T�P/
*IT�80��Tf�?گ>����8�b
팣E�5�yhV-�O�

j����
Q��`e�
�<�y
��[���v���&*�w
��_�4#2��]Y��&��H�4c�O�79��rZM;렂
��Ʊ��	�_3
��9�j���&c�6.�N�
�:�t�p�Q�����æ_/��'EY�QZ�'�
�̆wd%��["�G���+��
���?X�u ;i����&
}6��0�(�
�Ӱ�9
�lT4�
+a+,����ƕ(5�`1��h�(.z^��ɊLC2�iTVh�#��H��Ec�[L��y�B�~'���Z$[��s���8ܦIp�f���
+�b�L�a5e��X���X��0��QR�Bq�*�[`4����(0z�Od:�y���c���/"ɴfI�����J�G�=L+���s�����3���Y&Pa����0�J�R�
si:�K�0��PTf��̊��ʽЗ?]y��X���}"�z\�lo�T����Be��(����me-�r
��A/�{"�z`-���]c,�M���b{,��KQhO������|�+��U�A[Y��J�*WC]���[�:��l�1�p�YU�D��+~����g9��� ۀ}M���.�G}\��fN*Kq�C0TGB_
]�"hj�!�&y5*��P9�P:+��Z�lW3�
�tu�
W�H�=*�gDj�U�O!wIB�
�F���s�/Qw�Z��ǀ'Ɇ5�y���0�(�Ȑ_�{��8���C��A�G�L�	�V��;�V߈�� Vx��2oR�/#�{Z$y� ���H��D�G��qK�U��(���=�C�$	�s[�*�e^
�O�o*2}QH��GZ�"țR�ڔ�M*,o6`Y���UHj�"ѿK�[�'���?�����m$4�CB���$�!�s����;ڹ��'�Z�g��[#cR3���	Hi�@R�
$��bi�,i]�G[Xܪ���		;�u�
�Fl�
�1��1m�an�%�
�¼��"�EB̺1�q�}����~��ux��@��s
`�3]�9 �;�v<���Y�휋G:㱠3�;���ż�
-�������
!2x��Ø�����cf�0k��}6J���s��l���O�\�<�N�DI�d	�%s��"*���\���$�����1#d��SC-�ڊɡ=��}
��c�ӟ��1�K��mc�q��[���g���<؎U�`
�4��
�H�v��f�'`Z�
L���p
&� �4Ba�����{y�����,�0
�`=��z���
+�bc��'.���.��v7u7R�j��<x���d�����L{�}h?�o?�p�l�����
�
���3��`!�3��
����n����pHB������\�}�C~�F
� �3�0��G��y
��
+�����da
C���8�8��M�/�
�#<hFXH�L�0�����o�M�	/���s+���<�^f
�9�ZF��!��0�0�g�~���?lJ�2�Ǜф�m�����(/�Q
p������a�AF����
��{��|�gn��8�N�_��I�fs	g�&�EMN����8�/�%6I�f��
���s� �_e
����K������Y`�9�ϓ�ɗ�[�3�M?j8�b�NS�,돚�Ԝ��q-.#�
�²b���G�w��2�)�
��&���8�o�M�-^|�x~��w���ͺ��I����3��s���G��ԍ���M}�c_�����3�I�B>#%L-[J������pm�c�r�����6��0��%&^��J�����I$�"��|�H���L����8��x˥^ȩ�I 	�@����@ 	� �\*""^��b�2T@�W=j��>gm��t��]�3�6�v[�����N��vݦs����T��|�?D�~���;��K
�N�H�#�H3i#ϑm���%��1|�I�1��G,�C�����y�|G
���3��y~�g_2��)ѐ,�O��"Ưg�F����Cld���b���O��aj��W�L�� ��#��>��[_0���o�6��9�aOƒ	#5	&�$�dP/�:
jT�ι_������72~�w1�N.�~�v�p���:��k��ߤ��0ڍ>$���<x�0z�
��oD2�D|�Z|	
k�F	��5��Z�o`�&|B7���q�ܲ�� W�8�_�U��m��/��-V��
+WțO!��S
�\�Qs2s
fN��KƟ�/~�l�Q@�RfV�_�ǻ���e���}��Ǜ��N؃>��%����q��αRg�r��r��
a�ga�������oj�^ԓ2�4j������Z����}\��
�q�>���)t�vpg���p/�/^�_ğY�op�j�G�7�0������8����=]���O͙x�ԓ3��I�<�87+]J�j��bf�@�F�Rc�n�)����C���\�v
�
V��{�k�4���W��y�?
��C~9��wy�D��)�B�8�%3���/
D����Q���U��^���j���M��
]c:�u�t�=���'�y�e����&���I���-`�S<��m^i���:����?_���
���|px\L��މR윤B��=�Vt�8��ǃN�2t�T�9�%h�]�g}���w6�vc��>��
G����c���h�"���x^�Q��y����1��H���}^���
�Y�:9?�"�� 56�qj66Lub�TZ��GK�B<�kW�)h
Vub�]X1����e��G��;���Kf	?�6��I�:�����E1g
~��
s�7ڧ�mF���eV
+����5�f4�`Up>V�.���X6��!�QҌ%!�X
�5���0�<�_Eu�g��x���G|L�w��
+��d*g
>��
�I��ǚl���)X>�#��"B���T�GP����\,�S�Es�a�jTϭC��FT�mCyT�G
@Y�̋ �Q�o�
+O��}�����؂
ձ�!�|�u�
iKd�煕Q~X=u1���cQl2�jP
kDe�
qN̏�,�
��Q��⟠H�n�
(��D��
+�•�
�>��.S�L�
�>{H�h��%��kS'�F�$
$���Ơ\*C�4�	z�$d�(�OB܉�(L\�|�2�d�p�:��F��8�7`O�9I�a�0��x��'29g��I���i�gk譞>�'�B>e�`���H!�[��B��IF��lp&9�H*F^r%��K����)�)w"KyU�Ȣ��(S���`����n�:ظv`�`볎>V�G-}�+Ǣ$�
�t(#�R����#O�
+�J�
�٪\�Rݰ��#+���F���¤�QsD��yUd�� _Ad�� ��s����6x�����:�ْ�>�����(�}�T"O

+�:��X5)�h�ĄLm6����KaL�A�n�6�tۑ�?
���Hc�N�A�F?�V'�.�����w��/����Z�����d=���F�. V}0,�9�ԋa�+`ԧ!Ð��
+}����Bk\�q=�L�H5
��|Q�4@�A�4	"� F��'��Aj?�xK1�#�M
Q��2�����g��L�d�L3�a���

�Y�t�
+Z��L
ԙyH�!�RU�2�d�"9k����^���>d�{|~y�0���B�c�{?�wp$�(�^ �J��5�ř��i���� h�!Pۢ�f�"Ֆ
U��lR��H�qC�Sy�R���H�o�Ծ��s�G�Bl�$v��a�3�#�{/u�+9�Tq/𹼜��<����\z1:EP�yC����YH΋D�#

+�
rGd�
$:m�:�!q�A�E�k-b]
����g��|A
#�% �9�i�?��wQ{�"��>�9*V�K!G���%�=
�B$��A���

�;��y�� ��@TQ	��`NQ#"�7#�xŠO!��m�9B�
!�H@���+9�~/�;9�_
+4��s]�QQXW
�e�u eߑE�=�-����f Q�(̸ �`T
0q�8Q�U
bզ�A�lVMM�`L�6
{b�CRc4�h�������o���w��{
xm�c�b-��fJ�M
�`�P��W��`Ř��Ք�hSE�(�4\������l�dZ��R��[��_����yE�`��o�جloCk�i�Y�Χ6B��}�3�U�XO�|)�uF�(<�K�9]����$*0��r��?w��rS�%/C�y���{I�y�dȫ�W�{�̻$C�2�0M�icv�E�F����C	� ��������]o�Ǻ����*_���c��%N�Ӑ$O��,�L�[��f)��e�\,{�d����39�oɥ�.�����߸H�\�y`[���t� C��H�H okG�[��j�V'k�\��r�v����:Z��u�
�$��M�ℵ�D�
���\���C��-i�
�`�|91��]%�^&*����YH�h�r���U6/�֙

4>6����V��v��
+�dά<Ȇ3D��$��ͭl��J��a�b��WS�2��m�zAWڄ�f�_��0'��xn����i�]�'�
�)�vba'��l�uPC!d��|�R��[Y���p����
�1�5��6��v)��4�0���wI
w���v ��j�Q�:jXG

��.@�Z.�Z�}-����K��b�����na�14���,��tt���N_tb������\�K���K��3�4@
o�/u��a���h�j�!j�6p��EN�c��$\bq�'-%��r?�=	��k�g�Y,zA����&Z������@��q��.�I����X��4i�Á=9] l�i��x��3�o�'3���#MF{���-� ~FK.�w�uN �Đ��v>Q�@$M1p2 u��1(}��\�����4�׸�7qț|�m‘��3�}�l�d�� �I�ƿ�>_{
�
[4�Ү�)���y�W�P(]���%|
��[��6��]?�>��F���C��#�c6�1��q��F�./�l� ~
�`0��)`�
(�b��J��zآ���~d�|����i�s���Y�;}�/���\��p�e�d��Z�
���AwH�0���Ŵ��}��k1�˰_�}�������-��
�:��5���5�u�]�|g��u
N� �����|�OC���x���̹7T�}
�c�
��ضa{�.0��.�S���0��I�
����v͏�C8	�Zנ������"�ZI�J��a/`߈����"ih�~1���/Ƕ
�����\M��?�
�Ч<~���b*-��a8�k�7刦��NƠ��A�Bc")��}�gc� �f�cߪ���^��N�������*�ȎSD�2����P�-�T+�nK�K���_�������ϡ1�L���4ʓI�g
�#?��EhX�����
rc�;Y�v��O^��}�5��1%�;J�U���<�f
�ȋc��Q���?=�IBg~�E#�ih���4�S�N1�ehTh���oֱ�5���HUD���R�n�|O��FI���7�c]O�;�99(o4�ыկٓ���p�>�h���i�#:���cFg1v��՜\;���
ke��ҧ.���]�:6k	�8�q�W:Dy��{�+�e� ��Pvw9��]��
�Ƨ�im��Z�q��
G��i�V9�h�s�V8��s��\
+��e�J]�*�T��N���u���A�2�_T��=z6k�\F�����X�ᷔ��a�w��͆����SUn�Z�
�
=�̣����U�9R%���3E���i��I�
�
�*4,�\�J�hX�|���~C9>�5��f��Sv��Vf�s������p��N����_Fъp��uQ��������7N
:���s���<�y]Fin��*�KU��t��ei�_�f���,�e�
+X���m2�Wz�J:��w4#������^o�c��Z�ן��཭���R�$��x�(0 at s����]��}5'd�f�
Ӭ���
MVF�TCӕ
6[3�
+5=|���W���F�jJ�Q�F~��Q�59����6>���h
@
h;��3�bʹvK��|�� �]9�ʎ
UVd�2���1��fF
֌��=Vi�)�=MS�f)�k�Rb�5)�\c7+9�Z��h|�����qݚy�����}�;����`s�آ��#;�E�Xo��jz\���kj|M�V��*%~�&u���nS5��Q�r5.a��t_���7�W=�hTb�F&6jd�ѳ����m
�/��
u���T@T at S���2�
0
�]`H�䲨1�
`y� ^�K$�Zf*h�Y�)=�Zֶɶ�v�:��k%�ִܓ����������?>����y��}��}��˚���ƎL�
��}%q4�bb\9\�0�
�-�_E��U
����G$+7ª��\eGڔY��Q5ʌ��5�E���J��Tjl�,����5����?N����ܛE
r��a
#NJ
�+��	q��-z�
+��)?z�r������X͎1*#&U��,��*-ήԸjY��
�R)��JNإ���2%�Șx~��)S� '��F�N��m���[�q8���8�G��E9�^�2LT�a���J3D)Ր KB��	�JI,Pr�\%ͪ�iV���'4˸Q���2�ː��.���;�� ��?�^���b���9�1�1�A��a�a�V٦�0�Q��G����%#�d��ɔ$cR�f%�*1�D	ɏȐR���fř��E[*��|	w��)�<@75؇�
����~
��gא�2jSH�d����d�8�̓d4*�<S	�,�oIU\j�bS��6_�i��ި��u
+�nW���fZ�Vh�<��))}�#�`/�ߎ��2z��3��2�G)�)�NVb5Y]�`�R�u���͘���(Eg$(*3E���Y���e�9�F�Y�5#k�B��Qp��
+�>���<o)8��O
(�^`���y�R��̳�1��μ�gyĘJ�
�#���
oE�LQxN��r�437N3r�4=Ϫ��|��SP~���55�U���K�+8�)s>�yS~�N�C@�S�K��o���ޖt/��*z�XlȤ,bI&�X�P�,��cR4Q�E
+*����(M+N���T���V�)�
+M�-Ճ%�4��CJ�ɧ䔼K>�yC�6�&35‹���JzY��Q΅Zz-����X҉oya�+�>J�
�+
�)��5�
�I�0=h��D{�&�3�SV$��_V�q�Ojly����ʳ��<��˳�:8�e�
��,�\��~Zʹ�4\�S����H�l�2�y
1�����!�P�&�JO���ոJ?��
�HyU%ʳ*Uc���Qe�{�"��n�[�F�V�KիU��F.�w�Z����V�mh�Ƞ�F΅ǩ����zr at L���I�����1Z�(7�T�:B���(G�F�e遺
����:
;л��X�_�m�Qg?��ߎ�����I�~%g#��=R��b����|J��
c��ʥ�UÛйM�����\��\<�l�F
+�H�-4���9xp�!̖�bhpj+�ވ�V���Jx���m�
H25��?��F���5
�m
[m
�m�����%��E��%��fn��WS��,b5:��.�_B�冴��O;�o-�W��e�9�7�6q&m��OI�0|�3.O�
�o�v�
0�na�`��� .��6t�#|NA��������s4�5�{��|��w9>k�1��>$mI���g�iໝ�S�Q;�v���M
��G'��$]���0�P���`�C@�uQ�N
w
�����+

+}��|7���[ً���O
+�FwJ�]��#y�‘���PR
���������a�#>
eԥ�8�
��t����4v7����1�q�z
��j��iW|?�<g>-/҃�
+܏�W�O�
��1xN��A^�S�I�AN�$'g����R��,�Y��
���h��m���y���׵�u/`ͅ�3�5�
b
���%��Ұ��>�Z����
҅�\��Opn��!���p�8>c���"5�ec���,�ý�K��K�f+�ų�`�����ߐ������o���O�!|����
z�-�Kp��\uC�ѫ��
�7Rn�Wos�ܦ��Hv���;��;�
������PeP
h�fh��(�M����EyEև������b�7:󺮢g�����Kp>���5�HCax�$�q`�\,<���u}��[���rl��w�q�8�%�����̾F
^F)^Bg~I� A��gX�>�?�Y�u
��!�y�aM���Z�����
��`{!��`{9��)E
����h̏Q����h�;�:��.�i�o�f��p^��'Ѻ�7/}���J3�G�����~1�`�9U�~
YK
m�@k6Ӣ?�ڵzGOѺ��ѩ�l�S��$�8A�Q�n<
��r_
w�_pY�X�;�|�r�"𓈏4���-��"el�
+ֱ���c�	��X�:
V;�؎��t����^��
*ׅ����5��
h����
9���$���
�	V,�a߆};�plՐ�Z|��	�-�]�����ɳ|k������yF�;l�ݘ؀���m����@��a
n_�L �b � ��-��M�&k��k�^�5�SWU�v��6Ҥj�Ti�ViӤ�ݴn��U�NC�����}�>�}��}.Wy����%z�"Y/��_{�O�b>
+ۻ��3>wi���J>EO
OUE79��𓣛
}��!\��+�q�~��F�6��e�������;K
�0������"�W���ҽ����M�y���ޑ��`���H�R���sxx/Yڱ�8]����c�~9��X�ze

Tt����OҢ���Q�B|�������c��29w��
x�z�����8�-��R�L��Sγ�hqy��i'Ooi=�l�f�f1����s��
����c�`4�!F�?�јop4V��c�:��W�y,=��|��`oŔ>1
���D�`1*��u���`6Ǝ��jL�z��a"Ώ�n
��h�F�0�pC	L��Ò{��_����CI"����%�M��{�M���l���b�dK� ��II�%�LTc,Q�cI%�:0,�APڀ!i
�H;0 �E�l�dcds�I^Ew�Ut����m�DG����{+�3����
w��L��YfV
�3�7C;���1"�#���#)
��/ՆC����Гք�6t�w�`z?:�G�Ϙ��2�іy�Yw��z
^�ω?�9�B���
x��6`���u��Kl�fi�q�'�
��L)��
�(��R�‚@v9��N�g�Ѧ�U�G��ޜ!4�L���E4�?��-x�o���	�s�@���Ïy����<����m��6���6(dᜡgm�G�J��*�*%��������V�@n
�rјۊ��.���>
u��Q��D��\���,���
Nݿ��{x�m����t
�M���c[:�o���C
�x�hd�j2q@�F�V��
��
�Z'�
+ܨ-�Z�K�g�1TΡR��av�+(7~@�����N<�_&�-7p�%~�X��	�R� u
d��
�h,L�G��z}j�T�p�p
�2Ԣ�؄
+c;
E즣(3�@�y6�uX-/���>��K�%�"�Y�����=r�`�w���
�p�s���:���T
�:��&9�&*M�p�
a7�Qn.C�ŅRKl�m����$��iX�ga�]�������GQ��"��}op
�K�
c�m�*q�-�$�
RG7u�2V<�U�5
�
��
�Y��f��j-B�͆b[,�n�K}0�u��l��
���ۯ@g��Ǐ�u���W�9D�($^#�
/c������H0�u���G'}�c��1f����I(���خ�ٞ�݀"G	�
��W4��2 ]� 
+�&��ZB���w��|j�'���,r����<G��������^��q��q���i��j诲�H��9�08��w�Q��A�2��Umu5򫛐W�GnMԵǡ�=���
P�}�u����W>�P֊�&�E��&�.w��m�
��
l��i�&��I�X9���㡭�BS����
�5�u�v۠�T!���ӆ�^(F��p
+��Ho����"��!R�䳈�=�%��.p$[;��x���u��w��I�������E덂�99�r(���ݬ�«C�ׂL�
��:��|H�u!�7
y�I$�lB�r
Җ�Hl�I-_�Y�̷�۴���?7�7��s,� ����i��jڥ�Z
�Qn 
Y�8���H��!ů�ܟ�d�2��pA�ф�� ;!	� !����3�
����O��q
�F�_|�g��|���
Af�Y��㼓#��VA}�FK=J�}�	io{eD$�
+	B�
�
+�
+
D
��!L`���0���!J���{��e7�#b�
ɽ6ɼ0�X�a,L�|�q��zJ�]
PSSm$;���8D'!b8��
+��-,F�I>�

d0�� �1�y7ȹf����{��5�"�I
q�
[�\9	���N�����98��<j���%"j:��Ùn������}H�WdBLl!p���!C���m�8�݉]^|v�c�w��G�x����K�zb�����%\D	��~�" '$D߱	,��[L"8[.�	[d�_d�]d�]�-�
t�B���F�d� {�����,J�&�Dl�a,.s�IJZeN�HڶΜ�Al�\�D
+!�{����\�	T���/�
�"�
;�
��
�&� 
+
+AW���F�&�%I�Ab�q\�
����ZkԘ�U��$�K�xHjcb��X�N�Ԧ9�{��,�޷|�{�������


+# 9Y�e�����4Pl
���X��&p
�?(�^�{1�O`b#=iuH�h�2ë�ϵ�+&n9̠���H<6�&�&t4��
-
F-4�fP3�h&�M4�����u���b�C���ɗ:Kf
<�pd4K�Ͱ	�͒�V��6�~
+0������r����C}�eHn
�
N�s���B:@<@A�_Ơ��}G�{|�|�>�|���_%~
�/
.�)
._��\Z�!�,8
]�u'0���B (5
w�N��
�FO3��朜�>��d�P�g���<��Y
�]��qp���
8����{��N��
�!d�†�Թ�^Z��>\Ҥ���}j�Ct����r�t��\�\�ȯ�k������K����8D�??8{=�<��<����w��rx\��O�
��&5�y�� v����h�}���q�����-�
t=��!��� P
F�j0��ؔ��f�/���T�d���V�
[�=��v
�]�������K�u�_}��K�7�펝ץc��+� XA��S
����Z�Q
vg�+t�B����-��l�7�?c�k�n���c��g�����X����>Nth��o���+|�������+{n�*	��^�k踂�?��t\B�{l��u�m���29�wt�t��"w�7�1p
�����y�����G\Vx��塿ۏa�
+��]��x:�
�k	%�
�^��i op���tDoq�>!;�p�
(cv;���i��	�w��|��-�8�8,����~>^���rlWa���د�����@�Z�=ZA�X�f8Z��_m&:-D���`�k�wp~
>s������
�z�K?�"�'f)X��~�v�c��N^��F[4E��т�&tl�2����!'���*,4�2�"�^��q�6�Q{�r��ר���_\1�a�#b��P
G
cᨆc2��p���Ӝ���
�.E����(>���;�����F��v��f��|��¤��n��
���3�a#<�H�#�8��
�
+-F�"t<C},�\=�;�:�':�4��:�����S��p�Wh��������Ͼ�8��ֲm��;Vʛj�g�?&xlx���\�G�\t<�Q�T�S�Y��
^M�ӈ�T�5��M�!��m*�Sպ|��.�G�H;=�_:
����)DZ�H�������
�>��)��r�k�K��w�մ���Z�)�e��Z���T�m�j�����KU�}�*{lVEσ��F�]W��=�x���
���2���u�ndy>�у�����n����Oun�5�W�&��h�{�j�3T힫q
CU�1Bc=�U�9^�=����	�y.R��J�x�h���~K��m*�
*�qt<O3~
6�+W<Xma�`Z̕7/����L��Z/o��
�*o��z�j�w�ʽ���w��|�ԧP%>��S��>T�g���Y�B�*�ݨ|�V
�{Sy�+�����0w^����s�6�|���;��:rT�
+?O���j�_�J�#5�ߤb�*ꛪa}sT�w��+?�\C���o�������50h���v++��2��*3䞲B
��#����u
��
j��v��}��L��$7���T
��A*
2� (F����588C�B)7�P9!���_���)�
��t�2�1����RJ�q%�ڕ
���P
+x
�w�ۜC
�^_ ������
��IqD7��g�� C�"���De��(#<[���J��Ԉ
+�DNRR�l٣���Z�w�}L֘K�p(щCp��`�<�9���k6��d>��F�B��r�<�
�̨~J�2(-*F)Q�J��+):C�����
׀�r%���j���"�ǭ�ٴ]&��gzWq��2�
���}���6��1�d�Z�ʧyo":*�1
CБ�T������Cd3F*�'k\���T%��b.T��L��j���e�<�XK�b�*:ᨢ�����::��P+�������֣yé�Ԡ�

E�� r�f�.��S�_%Xe���l��)!Aq	Ɋ�f�h-Plb���)j��
�@��۶�`?�P���-^;�m�&�-�¸������z��8Z��2>�΁�kJJ%�<d��(� �-T1�(E�͊�������<�'�PX�XR�*4e�BRW(8u��R)0��ং�
�׉����ˣ苌�X���CK:J�7�8eS#vbbJwSt��"S��������v� Ey�a��f��]NE�1j��'�
KXuw=pD]P��h@���<�� [...]
+ˢs��h�o]!��l�0=r-,������R�e�����"�w���E9͊t&�d]���p�(��2dp�➮`w������"?�A��Ip]~�/�O�N�)�7��8OZ�5�,E�`�l"�$�\Fy�^3��$2O���d�5��T�'F��Dzz(���=, �g��B����5=�:����to9tq9�s�o���\�Y��{�\�W��m��!TWj����e(
U@!���C������r�x9��l�^��E�^^��Ǜ��MC75�"�k�C�OM�w%�U-a
�x����Ԁg#+���ޝ��H&r
���Q��ex�2��D��R��*��� �R�R>|�
`jK0��~�a||��}�X�z�f
��X��d/�,`0��o��JfJ�j��_5�����	����	�T��E��
+�WQ�%+ at 3��T.¤Vބ�;@_K�ڕ|VK���H�	���F�7�D`a��Lr��_hvȣ�<ȣ�<i���F�F6�w������h
�e
�s-��*
�*���1��2eX�I��3b3 I��s�m2<h~~�泙Ư�<Zȣ��pk{SFS�]��͖���5����e��ģ����*�Ro\9M�G-��mR��R�
�3���p�|�a����kG �A:@C|}��G�hcN��p[�E+�J���s������3�bƖ
��1�<OWb��
z����x

�o>���Q�"@�z�
cn^��N�VN�����$��)�I&��O���/\�T	�yp��ײ���
~
��
��h��
+x
�Nw�
8
^o�7h�:9Ϛ��Q�L3xm\� ��|�p�Z��+��>V�
4�X�9�np��
9�����
+�� �%p��b]7������9��E�|�F�k�.��=tq��ߣp_���	 ~ @�z�! 8�d�
+�%8�b&q�O����,���	�7�G���;��[�s}���F7�}
�#8� �>��oD�X�
�׏x�o��b����E�.!�}F
���'��W\�G��8�?#���}
+y
7{�//�x���8x����B�/��?���x��x��d!�]ʥ?��8
+��J
�q�q`��2ϓ�9�cʚ�v鷈�uX���i�<��^�^G����
~_�[��'22�8}@-��1/i��� ��z�]@�"b�#v9�1��:�:f�)d�̲�%�8
�)=�`��A��}`7x�#vL*%����x[f���E�A�>���N�lb��=��Ӊ�e��2��į�~�xV�a��v�];a�A-����63ڧam��F�n�f����:��i�y�Z
�G����1��c�W6�����!~>�g��b��E,C�
������%�F��3��QV
��
Xn��8ױ�wl=���>t�
��3�m�I����B�6�wh=�X�)p��1�b8�{�V�
��e5�����YЕ(�އq#�%��Y�/��>�`�ݍ.��F�(��$��
�p<
+G
+
68
��jȣZӴ�<�G��	���UJ�\	#��J��7�a�́{6h�^b{?�v�[�!�{8v������
+!J$�����D�
�@�2
�-D�ʂ�	�x�P���W���`��k�, at 9��G
�Y?�[�ԟ��0G�^��m���8r�К��.5~a��_\���0�A�
��O:�YT�	W*�N���.g���d
�m�$�VM�{Mn�+rޓ+����}�GXo|/������D�A]�U
�9fy�;kf��T�W���5-h�r�,�lSN�C��ݚ�;d�\�%��X�
��mh�#��aǕ~I�w���w��[��~
�8����:Z�ڲ��E�7*H��Fy�b�����=41��\���	�T�3f(�8NY�ɲGNWfd�2"+�
Y���&YM��j:.��,�/��>R�+�ц��hkk����nт�ҖQ�|�k�9T�(�ƛ�m�,S/�M���y�2̣d3[�n������\�F)%f��ĬШ���W#�^��w�h�

����8��ӂ�%m�h���Y��
y>��̠NSi���kTF��.���+�_���l#�
0
3� ΰ�l
+(0.�D4D�wq�;hc��9�&٬i�&VLlk��XS�i�&=i��Zcܲ��U�t��
��
�=�����}����kPq�QE!�
��0ԩ��,��+7l�F��SNx����1W�UJ3nU��K)��rF�7�r+%�.^��nr���n-d
��<Ffx<Bj��B'e1R�i�
+�A�7�)��
�M٦$e�Ҕi���QJ�,Sj�K)���~T�r%�7+)�)%��Dv�i%X���_J����"uw�w��&|m
#�2,�
�E�f�J�
�J�Q`�U�9@��a�0�f�(՜����1YrX
+4�R��؉J����ڨ�2��6�f�#k�+��;���+��˳[6����~v#��R���Gy����84R�^s�+�6T)�`9�aJ�F+�jS�-Yv[���_���dK��5�^��%��o�9�IE'��Ȥ��eE%}��$7�è���l�
+l�`��|n�K-<&�Fehek��V
���h��
�x�Iq�X��&�(6)G��"�$WȜ�����T$������N�;_T�����;�p�e���Nrn{ =N@�`!cp\��1��;�Y�d���T�9��0��P��,�3^�N��R��R(S�XE�NVxZ���(4}���?!C�g�	.ʐq�w�>����߂Y?=N���#�_<&0��ҧz����s�+&�OQA���1#RV�g&),3]�Y�
+�*հ�I2d�Pp�<�(0�C9��?�(8/���<39����A�M��֪��l�Ti&�Sy?����;�pM�gq�$*��r�kPHn����Ȑ����P`~���˿�̖�qHA�>+��#�C
*�B�
ܼg������9���G0���s%\*��(��E��Y�X�'bt��T���P%�b���_q�����q�-��OI��,W����Wҍ�1	%���g���حN�ՠ�:iV�4��x�
���i�|��U<}��/!㤀�A�+
Р2�|ˌ�)�h`y�����r�\�r�Y�X
+0�嘵r�CƠ�S�W��.j�B�����豉��4��/Ɩd�%���ӛ B�M�������
+��0wE�=�\
�.�BD.���"��c
'1!Mdb���6��1�;��-s8��K�pG`O+y
�
ɇK*�����a�@ȡ3$�x��
�\�
�\�5\t5\@5� ��!`u+�-M�_M;��"88Lu�m6{�������&P��
�\�����	�U
����jb�ib�h�[6ҋ�P� ���@/�D��G=������l�����y�C�2�����D��-�\X�:���`
+���X������X� �
G}��
��3�5ã9
p�5��X�ᲈ�XĢ.$��ml|��|��<���[\
+nm ��5��ʡ]�ֱ@!H]/Y�
��@�
&����
+�Vx�ҏVx�£���%����R�Z��q.|�j&�UL�+q4+�ZO�X�9Hf�F$�|�6K[� � ��w+�(����݋�����
�
<�����
d۹x���vzю��(���8�r�96����5�]@�:r��;zgA���K2>A�������b{����婋�t��}
����A=
�=
�=��u�h�
�$߽���V3u�"o%9Kɓ���FbvI9V���� ���#�=� u̐�ǜ�c at E�?e�
b(�E���a.�^z��
��C�U�>_��Z�>�QA�\�%!��Կ_p���5��5AG���y�1�~	���[�/�	
g����?�>�q��&8Ǣ�%�Yzq����]��9@��"g �5�7��<Ǽ�=f�
/΀w�9�Q|P���5�X������r���*���
��.�S�
�8��y����P

 ��q����
��-��M\�׸��p@�E~��
_�).�:
x�~B�>�G����"Q���U�mp�����A0�ҷ���x̯5��c�=��U����
�K��+<.�$���;�?�1?R�>@��k?���e�������x�
+^�?
ni 5�3|�5��ezqA#�_L�
+�^.��{�8
�3��w𗿂���8�#=�C=��:�n$�2�
��y
�?t�,���Y��?8��Vr�����E�r�?�أ��8�
G��:�rX���D���^��]M���2m���~��A�馲.�=
��ݠ���&�救GZ���q�+��YȑL�LV���8��D�D��RK�������X�%�_�"6�c�v�v'���i�P�6Դ��
� l _����+u��:�~��G-rE�.9
�Ϣ�B��1į �D�W��c���
Ğ�2� ���Y�N���y:
�߰Z_j%yWx�=�19��v�-����{�E'{�Cf�$��I�l��q��1���	�B�jrԑ��d�kL����7���6�`0`n&&`CbH '@B(�HB���[Fi.�K���@�%Y�e	(m�fi�6AZ�N]5mӺ}��m�6MӦM۪}ؤj�ڥ�4�G.S�	=z�?��y�9�9��『�w
f��
�8�����$7e�l�{�W��('ߡܿ�$x�q���Ö����8���	��1Ua�#��f<ߦg��3�q ;�������cX5�#Df��=�
��	��M��S��w)��h5�����졅p�$v1�i�L.x
+8K)gY�B�D�i���m��`���
��$���]v��>N�K<��n���'���2LY�%u	)tY��='�e��*�����\v/�<e�'O��7sKZ�ꄧK�{�lY��s���[Ȩv2���o�V�R�Z��
�˥���_��^�mOa�
�h������4���
��rx�܎\���j��Kmq�j�֦�iE㏪9ႚ��!����Ր� �
�
x��ږ����Y>�q~J�����	�M5�+ɢmI�ښ�Q{r�ڒ˵9%�M)aES՜USj�6���1m�"��Z�~D�
��XR(�j
?R��/�1~
+b����:m�:r�"8��+GS ����I�ږ��V�QQ�U��6��`(V��B�Z�7֫޸Qu�6�Mݪ5�R�i��3)�yNU�
+��V��UX>T��3S �����KH������'�bCط��E��ȓ&K�"�L�3�Tg�U�\�Z�_5���ZjUm�(h���ک��_��Q�gͪ,��m�Ub{S�����g;>S�#�{Lo��
&����Yg����{���(�C$;I!�Qk�,��ek�ͭ*[�*m媰W��^�2G�J
[���SI����3�9O� Q��sWޜ��������w�
�6�	�%��3���3�Icu�KZ~vl�F9�{��IW�3S�N�ʜ.���*��8'�"WH>�涩 �G�y���v?�<�U�<w�������+���\ޘr=1��Ht
ދ̳�[�p �3��h�
]H�Vr��|
!�)�*v[�sg���E��T��Y+�7"�w����*PN������(�"{�m�|�+��[֏e��� ��u
�
̲'����4�Gx���:�q�j2�#�%	�f(��,O�]y���-,���T._P9�z9�Z�(�i�JƕUrT֒K��_����L�_�\�O��
�g���|\
�e��-�#����m�'J�֓#�Ħ��䗥)�oR��*��)��+{i�l�3�4,kY营�_��}2Ú�2V�*C�ʨ�%�G|G�U��9�8�1�x�Y����:؁�fT���[�s
�Z�O��;�$G� [�YY���<Y>��ʬ����Q�5�`�
�Q�)-����[J��&���R��Vj0������vƟ^�Dw��;�X҃][�K>	�'������d�MSf�I��,kr@�
��ʨ�Vz(��P�RB=J
+)1<����G�C��
F%��-Ÿ*.����E8O#��wr'E�Xw3�n�y~i��jl���q0:�R��ި���F��
�()R��H��#��k�����/�� -�� �	�+`ތ���Y���tdw�������S<o�/u�(@||��Eܬ�Ÿ)Y)Q��4�(�%J!�r��$n�b%�Q�
� �ME��PԂZiF56� �c�
�yx�&F�)F��~�o���]̞���/
be�
�K�LR|'
m�	dI
4�^Ť��� �:0���'��)�~�M��v�[;~h���^r�c�6;A>N�����0��u�R�;���Hfb��M	���~f�/��w�
��_�ዾ�K�����ax���
���
e����"�'q�
!�a$
�|�:�x
�qb�M���G�#���a���{i�{�s��p�� �m�x
�A��Y�2`��͐���ѐb:
�	�}�0q8�k�]��A�(�n��bL4�n"�L���vLa�vL"�&i0��b�K4A<&��?åC)�{������1���ǎJ���w��
ցJ���9�>������c
;�c�ܘ������ɋ9.�
�?7Fҳ���B���_H�������x|
+�:;_ ���U�:G ;0�������\|��H��v,b�b
��,R�(2
$�y
{��8G^��~��;��?��o��س�Ei㗩���W��H*�_��%p
p
��Ǎ' 67��%�X�,�e
+�2�X&��8�ҫ��>_{���Ŵn���a�"�r܄���*�_��a�
�|n]������M�>�g�V�c�B~�P�W��
+I��ʊt�����9c/g�g�TW6\�ۏ�_ݛ�¸� �o�o=^I/�G��!�R6��\�{t��
Ɵ�6�%inmzK����4I�IKK�EZ.��E���\�1AA�Ƞ� �
�� ás��)�`�e2�q2&��s��ӝ�Y�iO����s~�/��<�������Yz�,��G���G��>ۇ��;�h
+{mf�5�*c?����,k�
���s�
5�����1#�ꋚ�
�b԰��> ���_�8?�@}^�Gn�x7��u6v�̀��/b at 2�(CAw6�ڦ�q-gҿ����������u7�g���8�?R<7�{�{B�G�e�E�R?.�������j���K��?�w�v�T����=:�u�ч踂��8��9,�C�%t���z
gz��@�{�཮kz
_����>���/�߈�M��_�p�귪һ�ܷt���ɜGG�8���qy�qa��6��W�qR���6��K��'H��z��
��0�v�]_�p|ܟ>��ݛ�����,�:��:���)��t
G�s��c8��8�#����8��Z��ܬ}�d/
��_�R@��m
!B��� #�_�y
\�����b�3�e�'�"֯�M�z���G<����S�q�������?_;���Wh���
���
+9�1��
%c��يP9��`-�	���ђ�o�c-��^,p9�=�R	���B�N<��Q�?��[92���t��d�n=L<��A��ȑ�]�Xe����\�h��E������x8z��'��m�H�2�G>
e��k=:
B��t5��J�R���=pt±�n����ѽ(\��S�ݰt�*�O��.r�����?��b�̘�C"�f��'���Q��~��m���m���I�G<�4�����v������PAo��� �ɠ�y�#�y�����n��s�mE��o
+����
�8�����,��� OU�B$�����P���]����*��,�����Od�_ 2��\�G�{?v�����X�-��s^tS�sd�+�\x
+�)��c�:����h�������_�P��
+~����/k$?�f�O��yF��>Oq�m��r��Ѻ�
!.s�Sc��>;\��䱧"���p᪇���pMd�pt�v����Z��f��^��w at d G�\��ȝ�� ���
+�-a4��u�AL&c�jHָA��9�ʂ�͞���*
P}LHu�ª
4Z5�����9���_'����`�K�0\RE�-U$Fp�+mw�����_�ղ����q���lI��&&c�qjHNQ8��:C�j�U���`b��+4$�JUI�
+$5ȗ4V���H�%o����U�q���O��xB��wU`��BSDE� �O��ƮG�� �m%�
#P1i����(��bP�ɨ!F��t��9�4y4�T*��R�j�����ܤbs�
+�
*H�W��5r[�)��\�ʱ\��zD�
���$#F���#ϯ�w泥��8�!7#kȍߚ�
+�Y��J-*���R�BK�
+�U�X�)�:Jn[�rm3�/T�}����R�c�����xG�i�3-»�����[���1n�Ō�s����JnFS'���R����*�U`��cO�۞�<{�r
%r9|�I
);�AY�㕙>MNg�ҝ+���*{�^�2^�5�M�l���
�����k����H��=S�l-~�@�
�F�����y2���4+�iS�ө̌\P���
+93�*=+�4L�={�l�]��< K�7���#��L�_�O�̔ z��vx75R�x�eXՅ|���v���ꤖz
P#����6(�e�3Ǣ��49\��#��L��*Y��e�k���.�{�L��ddHO��*�sLI�s�#>��|�o��
�#���c�`�;�3	mc��HrSCn|Ĥ����*� Y�|���vY<���TO��>�
+ke,�K)EmJ.����+�x�
��U\�Q���y
|�;�r���Ȼ
���� ��chiCG3#�t��2���7���^���R�L%V�J�e,u)� %�
VRYH	�2��*�ۡX��x�K^n"/����˴����2K��-p�g�]9�� ]m��	�
�jF_-CF2�֓b�$&�@��>��*-J�L����x_�b}^
�SH~��gC�� ��c�c
�~�c�U���E���p>4��q*=�N�s�����aXF�h����11��+)���`�b�

A� M
�h�P���i`��0MA
C��?��V��j�)x6����{�Lz�Ӑ����أ�VB�V7�q7
�������$�K%l\xa�0�
���t���\x
��
��
Ǹ�cB�Huh�c�C��걓z�CO�N0yy@�0���"�d��F\��1��R
��
��k�RivHM
dM4p��ġӄ�&��4���5Go�L�Lk�.K�hh�h
�k�\��ni)![�
�9�<tѓh��24����2��<��ù����.�ˍ(���ϐ��D
QA��`�	1�X<�i�1QH̡�
3&��Ĥi�f�vjb�N�1I�4c:�Iu��-lgZ'�<.����y��}��{�C<Vrc`k*c��.�rɗ��rQL.����i&�ԣM�<H���"
�\�ٜK
|b��ӣpoA2Mk��:���
�f[|v1���TR�&Nۉ$_
.CXL.q�W3U1U��JtQI.*9<�ԣ�VT ]�`�
�0�c�0͗1�����#�Z�	��2��hB� �x���D�*x�X 9S=q,'��ı�8�I
M��\�r�j�G-�e3�Z�$�s	F�!�a�
���V�_s3u@�5�� �7S��wv�d���p�)��
�
�8�F#�[#g�]4r�8�
$���7�	aj�aT�0կ�����&(���/��\�$^
�����?h��A���F>�<�� �h#;�?�;: ��6�����
�+X���y�#�t��p��
��30hs�1
���;��� 9��tG7��&�4�nrх���U]Gy�,�A����U���Epܳ���:^J�<�a�<2h6� �ƺ	�����gG��I '�M/u�E�賏F�G.�Y�
'�ṿ�����;
�1p�a0�p����{�Lߐ	{%�W@�Ca�!W��қ��O
�
c
*��r1@��� �_R����qpf��
L�tL��R��l`���u����t�
^ o$6hV�Ӑq�
�-��8.sf�p��>�rF�qخR�+�_W.0Y��
āt0R��οgj��s�;���������pH���}�A��#�
G�G�s�"^�@�� ������a��G�>|��T�p
��!X��4�T
|�p��Ʋ~k��g8��8�K8���G����<����
N�]<�E��D4 ��(�y}��Y���Z��Y��;b�6�� �ԮO���}�<�
+��n�-���qS���M�8��z
{���S�x�8Nk{�M)�(�3H�4�z�~=���1p
�p;��T���_+�}Xኁ'	�,�?u��
+��q�@>z�S'�u��/��
>�z��:=E;�

�N*ңn�<�7��U�#��`�
:�.�
�_�OR���ܠԍp���/���h=�k�!G��!�^7���Y����J�g��z\��h�����Dt�*��bn���
6���^
��489x,�؋�h2� G���
��M>:p��6��N
�v4����#ԥY
��E�f��U��R��0��we ����
�m���X��u���8#�
��t��e����D��
�t��2�!�U�e�/�Z"\B.j��(f��mV�]����O{�

j���ȭ7��\���~��t�� �\�χc
�9��)���2x�Y�ŮC-�Z@�泳R\	�,F}������9�(�48ĵ��5��x��W�:E�iU
5YJϨ�.&�j�$�
+���n1
�Bx��S����(fYj�C(�����i>'{��og������G;k�}+�l$n9�C�5���r��xx��K<��s�G��Ή��x*�j�]�r���~"}�nwUL%o� Nq�
O�*c
}��e;W�&�YC��%/��
P8�f�fc_1�)
���	k.\�p��� ��ṕg�����t���SO�Y:����o'��`��Q:9 -x��w3Ӑ���Q�z��>;\�p%�'/\�p
�k4\5�h�r��#{#PN.
+
�i��dgqe�d�����Y������1 at 3��z�MaL$?���
r2�
�C�&�X5>ȡ1A.�%jTP�FgiD�
�a!w+'t��C��V���:��7)5�C)�O(��
�1|!O�w�D�t
�.���X�m�)��1���PAN��O!��ǁ紆*�dT^�U��r
.eGx�����
�G�RZ�y�S�b��dS�<��J07*�����
��/)�|Q1���{�Z|z��x���-��k~�k��撧��f2�KmF�•i1)�
�Ts���8%���dɐ�2\	����(�Z(��L��%rF5(��.��춗e�]_�[����}��vƭ�I�����m3��l�4
�Lb
���
�	R�� �͢�(��b�%�e�*֖�[����m�%��TvG�l���F��òD�(S������/��t�N��𳛱��A
���4�8�6S��42��dS�w��F�8�r:
��v��,�3��木������Hf��\���R��W��~���M>��d�{�����<
=�Z�Q1��]!��2�Y��Q�,j�LN\�r�,���r���Ni��
�9~�L�SeL��Ȅ*W*,q�B=�9� �
+N��UH�O]p�w�L��,�X�ߕ|VLl���)�f
9�#'��CN��PEyL�xl2{�2y�eLJUD�0��(<e�BSf+ĻPA^
�����2�z6����$�����;�݊%k��� K=+��
NǦ���
G,�h6��GN
١���f��u�u}����-��m
�r��
-h
��Q`
�r��*�1n� �"ʘ�TT��W 1��h���
���۹�-s�n1N��M�O̘ۗ����������{��sE���H\��Gʐ��i(�
��P��,;V�e��
Yb /9
o��
C?��p6YMw̕��8Gm�7�;b��k�R�'��џ~z�I�ѩ�Y�i���i�?Ҿ;R�)�KZ�f���̰ef�2ݧ�Qj(5O���Y6�l�[�_�s���A^��-�//}>�-U3�Ui0��v�|:ɮL��1v�
+ͥB+�t��r�)��D]᥊y��
+ݸ�~0)\�*��ָɽ�û{��Xfm�հ����2��V��|�ߵ�=rů�Ĕ�T��M�T�۩��jE�Z��
W��j�^v�q��q�*�B�˄ΆKZ�[µo�5�c[��_�U�`�8,���G�� ��bK�^2ٓ:��hh�5�i|1�/j�Z�V<ji�V k�P��V�bi�l��lZ��sBcCMk
���U;.���n��X�G���j>XA>��ך��_���,N�7Ѧ
_\���[=_�i�u�`�x��D�@�yy��_�2%ʹ��x�
>r��؏{�Թr��`j�f>��+�T�e$9
`c���U:�
I
~�%���
�ٱ�/袁/��h��
_��s�)q��q��l��������� K�3[�j��
����M��L_�>���7\;ֲc��4��Q�kTT�((k�x��[��w
+�ሕ������Kk4��U��@���{.�J�1P╢
4�
�ŗqE��` �Ǝ���U�n�\���ɼE���i�]l����'$��{.�y����ǵ��1�Ja}���
�
�!����Ϛ�:mfG3m4�I3]4�E35q^��
'��$�;��i츎[�u�
�r@
+1�T��<ȸѹm�	��a���-��߉MKvǀz���(j-|�BL�9���~���3�p.�Q3
xԭ�G�n�߶d���N�;�|ܛ�}��6��'Ѷ$��3'�qR�<%&�4�S|qJ~�DzR�>���ދ�x/�9���f �|�ʸ'y��j=	
k�âٱ
]��0���!,�
�ڣp~����ӳ�q�0rN�<����Q��ٗc�;�ޥ��`|��<�\�����^�\e>����P��F<?W��O�cq|��x�
����i�o��r�M��_�a�{�	�u|	��=��&R��K���忚��6�����W$�dv��}������*�1?��X߶��i�{�#_��\��Y��3Nmc}�
���6�>��|d������)�]��;��_��_����
/����9�Գ
+�3���%�Ol�OI�'	�<!=��1�9��G�c���&�}/��>�3d,��mB��=�E;��bW8{�;�
+�,g_���^��U��*Ilt�B��t���l��	�x��������(����
�$�/����g����� �:{��'�iv��6�l`�����
g��v�;�����8hûC��������Q��O�)�͠s�'���I�=�.�
\�x�������
����
��)����9��)#+����y�J
���9���ۉ�xs'5��ۆ�
T�x>)�3�tSI���/
WB�)t~���-�v���k��~��ƻ�Fv��NZ��������M���s�Ep]��z>�Dk;��d�����dI8�,y�b�
i�|
EN
���b��W�V��f{�c��r�Vրco��5�(������X�e1/����s�SG	j+�G��Y�v������ꎣ7�b
%8�pTȊ*J��3�L<s�,r��X��y<3�/.��:j�M���o&�
8c$|(K�UV���u�#�%n�4���xzȂ�8�(�eY��O�L��f�d�'g��t��*jm�L��c�*R����o��	�]�;
+7i����]��Ɩ�q�Q�,�.n��/WO<}�
�S���2�c;�:q��&yb"
'�D5}V�d%Վ�=c(�B�U�����r��բ�����Ξ
F�5��T���2g�{��̞���@�%��
W9�*\�p��5�'��"�-�e]w�H�e��
�ϡ5N��k�Z�>�JY�–�ٲ�_h9��
+uk�<���q쨔+c��v��0��
�j
�k*�z�/jW�PY2����@�8~�R���5�3~ަ�

n�0^i���5Ə%F�9F�|2�fƥe��ƙ�W���~�5����U��b�S� ��'��RYo9Z��Rm
U��N���uo���ֺ��{={V
1��I=�L3�N���9)1�k���%��ҩ �����Q�2$���(�"�t
�ӦGQ��(L_=�7E���(�8��#/�|$2ގD��#�U��y��l�u�j��6��EW�m���lq�b}'6�t2"�s
����D��D���E]zG�.�Q�uX��::zdVEAfm�g]yY�#��1r���H�d�����|���8���Z���
#���_��y�)N��RlF��0�)N�EQnf��΍��yQ��3��F^��H�F�����;9rr�"��������L�.�Ñ�8��#-�*|��ָ
ߍV�k�Z;'}�^k�\ʖ9[C����k�(�)��=;EaAz�%�p�Fn���IAq���2�������Id"���AB�(�7Q\� �!	b���)D1��Q5
mQ㫚�ؾ����UZ�E�
JI'���n���[��z�^k�{���9{����w)�ʢ�c
a��eZ�2��R�[Xh�	s��q�����$z}&f��D�
U�Y�������[S�F���8� 0�*�\�L8������V[F�8�k'OaU�OX�
�u��s3�qahuaq��u�1v��te�u9�2_�<��;�}G2
��KB��#�� �&`T�q�&��I%�Yw���4v�6���NX�9
+
7ga�V^h�a,��ӽ)C"��G��`C��������A��N
�yb*��c�4Z�̲IhW�G��V
�L�gMb�g�Xޅ8
|�DIQ��Nh<)O���z�D�D�F(��73��@t�i��iN�i6���3OLf�1�;��CuI�م�Q��|��{
b	_��?Z�j`&�ޱ.v?._�Ə
�������ς��(3��8��яWҗ�>Tz.��?�����.��7�i<�
�%�oD,!`R�8��\�)����`.� .�j�ȥHB�@H
�1�%�폎�@T��
Xb��/&f:���.c�K4�#1�wsb��=�8|��L��f�Җ���xxC��Cx�t������	�$2N��(��mt
�5&j0�T?�Cp�mG2�a���E�
h
�9K(�U/0q&{���@�Ak ���
X�
=������	=���Y�&zfͺ
�u��Э�>H�V��^iPfPwމ��Ћ������������������lxH9,4�ٲ�5���f`�
,�x�8�08�!�q�M٠)]I���
l���"�1 [...]
���>[3�F�5�b(
�A�b${��i�z��з9�&� l^}�p"F;b2!�{as�E���
+D&�x�#�8j$,by�b!p,d�L�Y���]ّ!1���C�H�l�p��
��������\q
 .�������U%N�LH��-R��dch���
+�^��@�D����3Hv�gx�q�|�D�p��*�жhc��H� u�}��6�
�7j�ʌ�
+?R�#�3I�3<�� �P��S�,�>����� ؞�E�q�����\��=�-�R'6���;��9IA���zɆٜI6�|XdA�,@��W��־+Y?��[�ړ�C
�iB�F-����(�ӊ	�-A[(�
�����o�q@ j�	��ȡ^s8�
j$,A�E$�h�~?�Xhڊ����>�ǁ�-��•a�0|�!�St�+�R)5�D�@*zm�ah�C�F��nl�V7q�m�͐p�n�y�Qњ+�{��O�#Ok	��R�>����5y�]��Nb��s�0
�;P�^84~��E���J�c�
�i<r�g.��	�8��`�r���E	Kkےv��
�h��]\˹{��������W��*U�ר�
��n��z�6j�4�Y��Z��l۾CTtL��q�]�&t�ѳwb������������
M
�6bT��1cǍ�0qR��)S��e��YΞ3o��E9��|���e��X�z�ڿ��|��M��l�b��]��|�����?p�Б��rO�<u曳ߞ��� [...]
H��̿ DH�I:�A���D�0$I
�%�Ab��b$XdH02%��1M��d.�,��|$1Y(�$*����V	�N��RB�Obsp�KtNKx��
�� tEBtCbt�
H�~�0=�/HNL�.��\�}�y�

+� �)��.doF�X�^�Kh4ff��``i%Q ���JفDiG��:��
�"$`(�,�B`
\z
�B`�%��,%*)6�kB�^�I��
J�6j�����L������,�x�r�EVˆ��X��k	8QH
+�$Y�&y�(��ꕫ$��uҽy���ܽ{����!y?z���ߟ����������UQEUTQEUTQEUTQ��!�`�y�
�����bQEU����o����n��b��}S�V\+����e�:<=�c�o���*����oW���gֈ	�����W���G&��;��D�›&
N8:<�͂[��ߝ9�qt���O�	����
*Ʈ�*��Gr��~���\�13��Ǧ̏�.�K?j�a��`[ᖰ��=7%��¶�
+st�P"M8<�[^�R�6��+;
�k�
��k
��ke�U	�	�lY�j�9e�Ks��b"<��.��RE�?��<wx����c�c�e�0e�;����Q���_�/��j�n+;���P��|V��lLu��`�]�:kfp]�
V��"���C�]�C�b
w�Ê
��Qr�[�+� ,|j�w:����e�Un�3c����+:|�a톣�<5aUE��"Wv�M�qФ���>���l�)���%d�t�U��[�PY����#��Wq���€rF�t�Gz]����(9dj_8�`���]���భ�K�J7H��K�ws����ؗ1TT�..�(r�ۮ�����ѵ}
�4f�>�z��{�ϟ�ࣵ�L�A�����ϻsƌzf�zkfL��(�ք���C�
~�h?�j�}�CJ��3��E�%�/c_TV��J�*�p��T�_���xE���y\���_�^H�ڨ;Wi����
Y�A�"�ҭ[���l�!�I�v��^يR�9�$�V�d2���nq�y>��=/�����<�y�;�s�����+N��w	$�
ӟ��mWy0����\�*c���<0gל�uN��@�B����!���
���+��
G[Y��u�?R�
|�^��rr���H��/�
坑�������,�~$���K�]�Kn�`����l����=�Z�5�[7�q|g�Unr���"~��F�8�ߛ-cY����
đ\ೖ-K1�Es��� �)�`[����<pb !zٔ�������z�{t��@�E^�~˷Je}yU����-�#iږy��k��p��?���0Z/����j���,�bh��}��F�u���D��R�����%�H���2 ��
����� �v &� � �e��u	�Y�N N"�{B��^��{~ݾ�V
���>�>��zy�H�����]P�F(볫�ܤ;�dq��F��V	�Lk-��z�PߔJ��K{�w�W�y~��P�'C8�d,ߴ.����
�
�:���J�@7
�d�z�qF�@���`
�V�"��
 6X��  �#����#�
��	Z������e�W Ŕ����ԃ��N~�a�~�qfu��#E".�l�йy.�?Xϊ�
��;��m�
HK�=�`(tu4�G!g��n� ��_��:�� ^!��B@�� zh�C�L Z8�l�$@��
+��+ <j�e 2<�QQSS}?�4i�ǀ����(;�jv�,����_X��?�j�_�Xr)z��XK=A��T�h����0�B~[�)��ܦ�����bU�q OՆ��
Fv�
�S�����@���g��6��_8��1 �>� 
@
�e ��!� O� �����Ax
�C�8���~ⷎNs]=�/��I���֣�3ѡ��M*{q6l�j�K~!}
9Y�����m!���!��_�
7�Hl�ް�(��Qp�p��j�`�0G��Xs,D� `+�� ��
�/x�G �F�
@� ҚSШ
+�s�=�t��##URuM�T��������?|�����zq+[:����s����M�n�ִ�������䂹3���3�o�\P��7.��B ��<�L
0
+� wz B��F�1��2
+�Ȇ�� �DG�r�
<�6� X��`3
+���83�|6
�~!�]{=i���5�$��>�*�OE�t�O������1����o��,N�4����GO\ٞ~��pc݌
)��G�R��0X�
��
QA�l�(f�4�� ��M<�Aoc0 n�`��� ��"��0E��>���)h�@<׹L
"]�N��JY���s����
r�,�'��%����hݹv
+��� ݆/�U�)�
��|���J��n��P��W��
+�x ������k��F�E�Q��`0|�=t�[�
1x}� 
f�p��c3��A&��� �ŽpJ�� �~
��7%�1
�����,۰�PRN�D�,^�H�U
0u�����f>���
��7웻ñ]zQ��ZV�����q��6
S�
��d` �0��XA#����G�V�J�[�(���9
+R�
��WvH� o�^0�x�3�
 bx
+p`+gQ��(^���1�����ױ���>���9��ږ�騬��*�^���x���#qb ,Y2aHwc�VM�O�b�/f=-��ȁ/}	��-�
��`=���瀾�}��k��)���
+���4���`"��
C �!�)�p3 : �m� �u�@�X oQ�v� �����n�gn3����
��w
:s��+
*�����q���BV-
������M$Nre�O{�} v� �R`��
�8�3J�yM�O�4�)X� �ZG�y��Q�j{�<E�T ��I���v\�5�Y �8�F�a
���j5
�X���+�~6���yB���UX�D����C����j��*+�j�߯
�X��9�q�x;�aV�,�;�`g�\��L�Z����[�� �6�
zx�GP��k0���
ܢ���@+8MA\��Z ��T�����g����P ⚖ (�U Ͼ?�4
�;���Ic@�����S�l|Q�gV�e����O��H\����GI���s���}-:�l޸�-�P���
4T/�數H���1e
�N1��@
+���^�Sp��|�v:Q � h	 Z��1
+��VKȘ� �1�>DM
{��_�Y
����̸�Ӻ�|)�we��Uef�ᨈ�����.A�]��]��dci��I~\w���<����
8�/�t��
�P���g�+ ��e
>*7E`S# �
��3\�G��HpχH �n
aKS[��K
5�u�k;�mɶc���V�ރ	iE�HD������_+�߾U\�'�9GVXJ¬���9M�<~̨���փ �I+���q���ij�L9%��A�
��0p��cF"((�`�77 Q����#�' q��� h[:�-H,�n#*Z_YXO�
+=�V�y�!�p������
�LY���zY*K;�x2��}{"w��7�e�r
��"Iw�:G�S
y�\�V[�<�6'R��չ
n%�:溬'5�m���Dtb�Z����L\�&$
+��ܾ��~v���ן{��}߻�����<%E��&�g������IN�
��DH�J��
"�NƄdD�]�	Q�!�c�@
+�d	*��>7
�8P�W%

 \� h�`3�^l:�9�3��
c<��xWo67��!����ʺ���[�ЈZ��I���4�z{z?c�vT�g���C	|ޮ���X�.�qDh\�1�y�X��C>�M|; ��egA��� ��:܂�8XJ�[7X�I�|0|�����N�7
�����w[{�Ekv��c�JȬ�����i%J-��Q�#�u��|FB���ѵ�<~�ԠV�T�w<k�F�K�};�#9a�X!���ЭѨP5w�8G��ĥ�eb��5�@�
+ݡP�
+�`(d�B�
G $��8������&��{j?��S���
�p䴥��W5z��N�K6�
�V��i�|Q�Ah
����4�ݪ��(����d*��i��sZdD(k}P` ͏��Gg��墂t���5R�LT�c��+ʻ�#��
!� �
1M��e�+����ƅ
��xoBj�0�ǻ�8���O�U��N�������☤�"ţ���>�|���_�JvV��{J,�͓ɯ)��l/`�
���R|Vx��fm�
��96���pL1c����3Y0��ߜ,��/���N��P�[@��Q�t�+eK�T�e�9ۏ-p�
+�
Ȯ|BpW����$�
��%IH�O޿y���:�~0?_(g��D��,�rE}K�
cШ+)�J_*=��I,�?!�
4�
l=Å�[�P�ծ�=�Ğ�	[������ �}g���
OZO$o�!xL��=�5�dbBC��)		�O�մ�>�R�I�r�\���r"#;�@V�2[��k������c��lz��i5a#*�X�m�?�;�6�2.�#�:ĉ֙Li���������_ �8L+
endstream
endobj
6 0 obj
<</Intent 23 0 R/Name(Layer 1)/Type/OCG/Usage 24 0 R>>
endobj
23 0 obj
[/View/Design]
endobj
24 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 18.1)/Subtype/Artwork>>>>
endobj
10 0 obj
<</LastModified(D:20150504225859-05'00')/Private 25 0 R>>
endobj
25 0 obj
<</AIMetaData 26 0 R/AIPrivateData1 27 0 R/AIPrivateData10 28 0 R/AIPrivateData11 29 0 R/AIPrivateData12 30 0 R/AIPrivateData13 31 0 R/AIPrivateData14 32 0 R/AIPrivateData15 33 0 R/AIPrivateData16 34 0 R/AIPrivateData17 35 0 R/AIPrivateData18 36 0 R/AIPrivateData19 37 0 R/AIPrivateData2 38 0 R/AIPrivateData3 39 0 R/AIPrivateData4 40 0 R/AIPrivateData5 41 0 R/AIPrivateData6 42 0 R/AIPrivateData7 43 0 R/AIPrivateData8 44 0 R/AIPrivateData9 45 0 R/ContainerVersion 11/CreatorVersion 18/NumBlo [...]
endobj
26 0 obj
<</Length 1068>>stream
+%!PS-Adobe-3.0 
%%Creator: Adobe Illustrator(R) 17.0
%%AI8_CreatorVersion: 18.1.1
%%For: (Howard Butler) ()
%%Title: (Untitled-3)
%%CreationDate: 5/4/15 10:58 PM
%%Canvassize: 16383
%%BoundingBox: 14 -146 130 -1
%%HiResBoundingBox: 14.7716794466642 -145.4072265625 129.338798122311 -1.43092574994171
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 13.0
%AI12_BuildNumber: 446
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%CMYKProcessColor: 1 1 1 1 ([Registration])
%AI3_Cropmarks: 0 -144 144 0
%AI3_TemplateBox: 72.5 -72.5 72.5 -72.5
%AI3_TileBox: -216 -428 360 306
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 0
%AI9_ColorModel: 2
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -67 4 8.58 2398 1320 18 0 0 78 133 0 0 0 1 1 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:-234 -468
%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments

endstream
endobj
27 0 obj
<</Length 14833>>stream
+%%BoundingBox: 14 -146 130 -1
%%HiResBoundingBox: 14.7716794466642 -145.4072265625 129.338798122311 -1.43092574994171
%AI7_Thumbnail: 104 128 8
%%BeginData: 14650 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FD4AFFA87D7D597D597D597D7DA8FD1BFFA8FD3FFF7D7D598484AF
%A9AF85AF8484527DA8FD16FFA8A87DA87DA8FD3CFF7D7D84AFA9AF84AFA9
%AF84AFA9AF847D7DFD14FF7D7D7DA8A8A87D7DA8FD39FF527D85AF84AF84
%AF84AF84AF84AF84AF847D52FD12FFA87DA8FFA8FFA8FFA87DFD38FF5284
%AFAFA9AFA9AFA9AFA9AFA9AFA9AFA9AFAF8452FD11FFA1FD07A8FF7DA8FD
%36FF7D7D85AF84AF84AF84AF84AF84AF84AF84AF84AFA97D7DFD10FF7DFF
%A8A8A8FFFD04A87DFD35FFA87DA9AF84AFA9AF84AFA9AF84AFA9AF84AFA9
%AF84AFA97DA8FD0EFFA87DFD08A87DA8FD0DFFA87DA87DA8A8FD22FF7D7E
%AF84AF84AF84AF84AF84AF84AF84AF84AF84AF84AF7E7DFD0FFF7DFFA8FF
%A8FFA8FFA8A8A8FD0BFFA8A87DFD06A8FD20FFA859AFA9AFA9AFA9AFA9AF
%A9AFA9AFA9AFA9AFA9AFA9AFA9AF59FD0FFFA87DFFFD06A87DFD0BFF7DFD
%09A87DA8FD10FF7DA27DA8FD0AFF7D7D84AF84AF84AF84AF84AF84AF84AF
%84AF84AF84AF84AFA97D7DFD0FFF7D7DFFA8FFA8FF7DA8FD0AFF7DA8A8FF
%A8A8A8FFA8A8A8FF7DA8FD0EFF7D7DA8A87D7DFD09FF7D84AF84AFA9AF84
%AFA9AF84AFA9AF84AFA9AF84AFA9AF84AF847DFD10FF7D7DA87D7D7DA8FD
%0AFF7DFD0DA87DFD0DFF7D7DA8A8A8FF7DA1FD08FF52AF84AF84AF84AF84
%AF84AF84AF84AF84AF84AF84AF84AF84AF52FD07FFA8FD0AFFA8A8A8FD0B
%FFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8A87DFD0CFFA8A8FFA8FFA8A87DFD
%08FF7DA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA97DFD
%05FFA17D7D52FD17FFA87DFD10A8FD0BFF7DFD06A87DFD08FF53AF84AF84
%AF84AF84AF84AF84AF84AF84AF84AF84AF84AF84AF59FD04FF7D52A98484
%52A8FD15FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8FD0BFFA87DFFA8
%FFA8A8A1FD08FF7D84AFA9AF84AFA9AF84AFA9AF84AFA9AF84AFA9AF84AF
%A9AF847DFFFFFFA859AF85AFA98452FD14FFFD13A8FD0CFF7D7DA87D7D7D
%FD09FF538484AF84AF84AF84AF84AF84AF84AF84AF84AF84AF84AF848459
%FFFFFF7D8484AF84AF8559FD15FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FD0EFFA87DA8A8FD0AFFA87DAFA9AFA9AFA9AFA9AFA9AFA9AFA9AFA9AF
%A9AFA9AFA9AF7DA8FFFFFFA87DAFA9AFA9AF52FD15FFFD12A8FD1BFFA87D
%84AF84AF84AF84AF84AF84AF84AF84AF84AF84AF84AF857DA8FFFFFFA859
%84AF84AF597DFD15FF7DFD04A8FFA8A8A8FFA8A8A8FFA8FF7DFD1DFF7D84
%A9AFA9AF84AFA9AF84AFA9AF84AFA9AF84AFA9AFA9A87DFD05FF7D7D7D84
%597DFD16FFA87DFD0FA8FD1DFFA852AF84AF84AF84AF84AF84AF84AF84AF
%84AF84AF84AF52A8FD06FFA87D52A8FD06FFA8FD057DFD0CFFA8A8FFA8FF
%A8FFA8FFA8FFA8FFA8A8A8FD1EFF7D7DAFA9AFA9AFA9AFA9AFA9AFA9AFA9
%AFA9AFA9AF7D7DFD0FFFA87D52847E847E7D527DFD0AFFFD0FA8FD20FF7D
%59AF84AF84AF84AF84AF84AF84AF84AF84AF7D7DFD0FFFA8527EAFA9AF85
%AFA9AF527DFD0BFFA8A8AFA8FFA8AFA8FFA8A8A8FD22FF7D59AFA9AF84AF
%A9AF84AFA9AF84AFA9AF597DFD0FFFA85284AF84AF84AF84AF84AF527DFD
%0AFFA8A87DA87DA8A8A87DA8A8FD24FF7D52A985AF84AF84AF84AF84AF84
%84527DFD10FFA17DAFA9AFA9AFA9AFA9AFA9AF52FD0DFFFD05A8FD28FFA8
%597D7EAFAFAFA9AFAFAF847D7DA8FD11FF52AF84AF84AF84AF84AF84AF85
%7D7DFD3BFF7D7D527D597D597D597D7DFD13FF7DA9AFA9AF84AFA9AF84AF
%A9AF7E7DFD3EFFA8FFA8FFA8FD16FF52AF84AF84AF84AF84AF84AF848452
%FD19FFA8A8A8FD17FFA8A87D7D7DA8A1A8A8FD1DFF7DA9AFA9AFA9AFA9AF
%A9AFA9AF847DFD16FFA8A87DA87DA87DA8FD12FF7D7D53595359535A5359
%5259597DA8FD1AFF52AF84AF84AF84AF84AF84AFA97D7DFD15FF7D7DA8FF
%FD04A87DA8FD0EFF7D532E5935FD095A365A2F5352A8FD18FF7D7DAF84AF
%A9AF84AFA9AF85AF53FD15FFA87DA8FFA8FFA8A8A8FF7DA8FD0BFFA85259
%5A615A615A605A615A605A615A605A615A5A2E597DFD16FFA85284AF84AF
%84AF84AF84AF527DFD15FF7DFD0AA87DFD09FFA87D2E5A36FD135A355352
%FD16FFA85984AFA9AFA9AFAFAF597DFD15FFA87DFFA8FFA8FFA8FFA8FFA8
%A8A8FD07FFA8532F615A615A615A615A615A615A615A615A615A615A615A
%855A5A52A8FD15FFA85253FD0584527DFD16FF7DFD0AA8FF7DA8FD06FFA1
%522F61FD1A5A2EA8FD16FFA8FD057DFD18FFA87DFFA8FFA8A8A8FFFD04A8
%7DFD05FF7D525A615A615A605A615A605A615A605A615A605A615A605A61
%5A605A615A5A2EA8FD33FF7DFD0BA87DA8FD04FFA85236FD1F5A28A8FD21
%FFA8FFA8FFA8FD0DFF7DFFA8FFA8FFA8FFA8FFA87DFD05FF535A855A615A
%615A615A615A615A615A615A615A615A615A615A615A615A615A615A6152
%FD1EFF7D7D52532E595253527D7DFD0AFFA87DFD08A87D7DFD04FF7D2FFD
%235A52FD1AFFA87D525935615A615A615A5A3559527DFD09FFA87DFFA8FF
%A8FFA8A87DFD04FFA82E615A605A615A605A615A605A615A605A615A605A
%615A605A615A605A615A605A615A5A5A597DFD18FF7D522FFD0D5A2E52A1
%FD08FFA87D7D7DA87D7D7DFD05FF52FD255A3652CFFD16FF7D535A855A61
%5A615A615A615A615A615A615A537DFD09FFA8A87DA8A8FD05FF7D595A61
%5A615A615A615A615A615A615A615A615A615A615A615A615A615A615A61
%5A615A615A85537DFD15FF5253FD125A36537DFD12FF7D35FD275A52FD14
%FF7D535A615A605A615A605A615A605A615A605A615A615A53A1FD10FFCA
%2E615A605A615A605A615A605A615A605A615A605A615A605A615A605A61
%5A605A615A605A615A605A59A7FD12FF7D52FD165A3652A8FD0FFF7D53FD
%285A2F7DFD12FF7D5A615A615A615A615A615A615A615A615A615A615A61
%5A85537DFD0FFF7D35615A615A615A615A615A615A615A615A615A615A61
%5A615A615A615A615A615A615A615A615A615A6153FD11FF7D2E61FD185A
%2EA8FD0EFF52FD295A3659A8FD10FF525A5A615A605A615A605A615A605A
%615A605A615A605A615A605A5A7DFD0DFFA8595A605A615A605A615A605A
%615A605A615A605A615A605A615A605A615A605A615A605A615A605A615A
%6153A8FD0FFFA853FD1A5A3659FD0DFFA82EFD2A5A537DFD0FFFA853615A
%615A615A615A615A615A615A615A615A615A615A615A615A6153A8FD0CFF
%A8595A615A615A615A615A615A615A615A615A615A615A615A615A615A61
%5A615A615A615A615A615A615A6153A8FD0FFF77FD1C5A597DFD0CFFA82E
%60FD295A597DFD0FFF7D2F615A605A615A605A615A605A615A605A615A60
%5A615A605A615A612FA8FD0CFFA8595A615A605A615A605A615A605A615A
%605A615A605A615A605A615A605A615A605A615A605A615A605A6153A8FD
%0FFF53FD1C5A597DFD0CFFA82EFD2A5A597DFD0FFF7D59855A615A615A61
%5A615A615A615A615A615A615A615A615A615A6153A8FD0CFFA8595A615A
%615A615A615A615A615A615A615A615A615A615A615A615A615A615A615A
%615A615A615A615A6153A8FD0FFF7D59FD1B5A537DFD0DFF52FD295A3659
%A8FD0FFF7E53615A615A605A615A605A615A605A615A605A615A605A615A
%605A6153A8FD0DFF7D5A615A615A605A615A605A615A605A615A605A615A
%605A615A605A615A605A615A605A615A605A615A5A52FD10FFA753FD1A5A
%3653A8FD0DFF7D59FD285A2F7DFD11FF525A5A615A615A615A615A615A61
%5A615A615A615A615A615A615A5A59FD0EFFCF53615A615A615A615A615A
%615A615A615A615A615A615A615A615A615A615A615A615A615A615A615A
%59A1FD11FF7D2FFD195A2EA8FD08FFA8FD06FF5935FD275A52FD13FF595A
%615A615A605A615A605A615A605A615A605A615A605A61597DFD07FFA87D
%A87DFD05FF7D595A605A615A605A615A605A615A605A615A605A615A605A
%615A605A615A605A615A605A615A612F7DFD13FF7D53FD165A3652A8FD05
%FFA87D7DA8A8A876A8FD04FF52FD255A3652A8FD14FF52595A615A615A61
%5A615A615A615A615A615A615A615A597DFD06FFA87DFFA8FFA8A87DFD04
%FFA852615A615A615A615A615A615A615A615A615A615A615A615A615A61
%5A615A615A615A615A597DFD16FF5259FD135A5352FD07FF7DFD06A87DA8
%FD04FF7D2FFD235A52FD18FF52595A615A605A615A605A615A605A615A61
%5A537DFD08FFA87DFFFD04A87DFD05FFCA535A615A615A605A615A605A61
%5A605A615A605A615A605A615A605A615A605A615A5A2EFD1AFF52522FFD
%0D5A2F527DFD09FFA87DA8AFA8A87DA8FD06FFA15236FD1F5A2EA8FD1BFF
%A87D535A5A615A615A615A615A5A527DA8FD0BFFA87D7DA87DA8FD08FFA1
%525A855A615A615A615A615A615A615A615A615A615A615A615A615A615A
%612EA1FD1EFFA853532E592F592F592E5352CAFD0EFFA8A8A8FD0BFF7D52
%3561FD1A5A2E7DFD22FFCAA7A87DA8A8FD21FFA8522F615A605A615A605A
%615A605A615A605A615A605A615A615A5A52A8FD08FFA8FD42FFA8532EFD
%155A365352FD06FFA87DA87DA87DA8A8FD41FFA852595A615A615A615A61
%5A615A615A615A615A5A53537DFD06FFA87DA8A8FFA8FFA8A87DFD12FF7D
%A17DA8FD2CFF7D532E59365A5A60FD085A2F53527DFD07FFA87DFD09A87D
%FD10FF7DA8A8A87DA8FD16FFA8FFA8CAA8FD12FFA87D7D5359535A595A2F
%595353527DA8FD08FFA87DFFA8A8A8FFA8A8A8FFA8A8A8FD0EFF7D7DFD04
%A87DA8FD12FFA8A87DA87DA87DA87DA87DFD13FFA8A8FD057DA8A8FD0BFF
%7DFD0CA87DA8FD0DFFA8A8FFA8FFA8A87DFD10FFA87DA8A8FFA8FFA8FFA8
%FFA8A87DA8FD24FFA8A8A8FFA8FFA8FFA8FFA8FFA8FF7DFD0EFF7DFD07A8
%FD0FFFA87DFD0DA87DA1A8FD22FFA87DFD0DA8A1FD0DFFA87DFFA8FFA87D
%A8FD0EFFA87DFFA8A8A8FFA8A8A8FFA8A8A8FFA8FFA8A8A8FD21FFFD05A8
%FFA8A8A8FFA8A8A8FFA8A8FD0DFFA87D7DA87D7D7DFD0EFFA87DFD12A87D
%A8FD20FFA87DFD0EA8FD0FFFA87DA8A8FD0EFFA8A8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8A8FD21FFA8A8FFA8FFA8FFA8FFA8FFA8FF7DFD
%21FFA87DFFFD13A8FF7DA8FD20FF7DFD0BA87DA8FD21FF7DA8A8FFA8A8A8
%FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF7DFD21FF7DFD04A8FFA8A8A8FF
%A8A8FD21FFFD1AA87DFD21FF7DFD07A87D7DA8FD21FFA8A8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8FD22FFA8A87DA8A8A87DA8
%FD13FFA8FD0FFF7DFD18A8FF7DFD0FFF7D7D527D527D7DCFFD0DFFFD04A8
%FD11FFA852595253527D7DA8FD0BFFA8A8FFA8A8A8FFA8A8A8FFA8A8A8FF
%A8A8A8FFA8A8A8FFFD05A8FD0BFFA87D2E2F0D360D360D2F2E7DCAFD1EFF
%7D522E2F0D360D300D2F2852A8FD09FF7DFD19A87DA8FD0AFF7D520D360D
%362F360D360D360C527DFD1CFF522F0D362F3630362F3630360D537DFD08
%FFA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FD
%09FF7D2F0E362F3630362F3630362F360D2E7DFD1AFF522F0D362F362F36
%2F362F362F360D2E7DFD07FF7DFD19A87DFD09FF7D2E0D362F362F362F36
%2F362F362F360D2E7DFD18FF522F30362F362F362F362F362F362F360D52
%A8FD06FFA8A8FFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8
%A8A8FD07FFA8520D362F362F362F362F362F362F362F360D52CAFD16FF7D
%2E0D362F360D362F360D362F360D362F360D52FD06FF7DFD19A87DFD08FF
%7D0C362F360D362F360D362F360D362F360D360C7DFD16FF530D3630362F
%3630362F3630362F3630362F362EA8FD06FF7DFFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8A8FD08FF2E3630362F3630362F3630362F
%3630362F36303652FD15FFA82E362F362F362F362F362F362F362F362F36
%2F2F52FD06FFFD1AA8FD07FF7D2F0D362F362F362F362F362F362F362F36
%2F360D2FA1FD14FF522F30362F362F362F362F362F362F362F362F360D53
%CAFD05FFFD05A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A87DFD08FF
%A12F362F362F362F362F362F362F362F362F362F362F7DFD14FF590D362F
%360D362F360D362F360D362F360D362F362EA8FD06FF7DFD15A87DFD09FF
%532F2F360D362F360D362F360D362F360D362F360D2F53FD0BFFA8A8FD07
%FF533630362F3630362F3630362F3630362F3630362F597DFD07FF7DA8A8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF7DA8FD09FF7D2F362F3630362F
%3630362F3630362F3630362F362F7DFD09FFA87DA87DA8FD06FF590D362F
%362F362F362F362F362F362F362F362F362EA8FD08FF7DFD11A87DA8FD0A
%FF7D2F2F362F362F362F362F362F362F362F362F360D2F7DFD08FFA87DFF
%A8A87D7DFD05FF532F2F362F362F362F362F362F362F362F362F360E53A8
%FD09FF7DA8A8FFA8A8A8FFA8A8A8FFA8FFA8A87DA8FD0BFFA82E362F362F
%362F362F362F362F362F362F362F362EA8FD08FF7DAFA8FFA8FF7DA8FD04
%FF7D0C360D362F360D362F360D362F360D362F360D362EFD0BFFA17D7DFD
%09A87DA27DFD0DFFA8520D362F360D362F360D362F360D362F360D360D52
%A8FD07FFA87DFD06A87DFD04FFA8530E3630362F3630362F3630362F3630
%362F362F7DFD0DFFA87DA87DFD05A87DA8A8FD0FFF523536362F3630362F
%3630362F3630362F36362F77FD09FF7DFFA8FFA8FF7DFD06FF522F2F362F
%362F362F362F362F362F362F360D2EA1FD0FFFA8A8A1FD04A8FD12FFCF28
%362F362F362F362F362F362F362F362F362EFD0AFFA87DA8A8FF7D7DFD06
%FFA82E362F362F362F362F362F362F362F36302F52FD2AFF7D283630362F
%362F362F362F362F36303628A8FD0BFFA87D7D7DA8FD08FF7D28360D362F
%360D362F360D362F360D2F28FD2CFF7D06362F360D362F360D362F360D36
%287DFD0EFFA8FD0BFF7D2E3630362F3630362F36303630362ECAFD2DFFA1
%2E2F0E3630362F3630360E352EA8FD1CFF7D282F0D360D362F360D360D2F
%52FD30FFCA522E0C2F0D360D2F2F2E52CAFD1EFFCA52532F2F0D352F2F2E
%537DFD33FFA87D5259525952A8CFFD22FFA87D527D527D53A8A8FD37FFA8
%FFFFFF7D7D7EFD3AFFFD047DA8FD12FFA8FD047DA8FD0DFF522727277DFD
%38FF7D27F827F852FD12FF5227F827F87DFD0CFFA827F827F828FD38FFA8
%F827272752FD12FF7DF82727277DFD0DFF2727F82752FD38FF7D27F827F8
%52FD12FF7D27F827F87DFD0DFFA8272727FD39FFA82027272752FD12FF7D
%202727277DFD0FFFA8FD26FF7D52212727527DFD08FFA85227F8537D27F8
%27F852FD05FF7D52272027527DA8FD05FF7D27F827F87DFD0CFFA8272727
%F852FD06FF5252272727537DFD15FFA8FD0427F827272752FD06FF52F827
%272752A82727F82752FFFFFFA852F8272727F82727277DFD04FF7D2727F8
%277DFD0CFFA8F8FD0427FD04FFA82727F8272727F82752FD13FFA8F827F8
%27F827F827F82727FFFFFFA852F827F827F8527D27F827F859FFFF8427F8
%27F827F827F827F8277DFFFFFF5327F827F87DFD0CFFA827F827F852A8FF
%FF7DF827F827F827F827F82727FD12FF27272027272720272727202752FF
%FF7D27272027272752A82727202752FFFF52272720272727202727272052
%FFFFFF7D272720277DFD0DFF20FD0427FFFFFF2027272720272727202727
%2753FD10FF7D27F827F827527D2727F827F827A8FFF827F827F8527D7D7D
%27F827F87DFFA8F827F827F8527D52F827F827F8A8FFFF5927F827F87DFD
%0CFFA827F827F852FFFF5227F827F827527D2727F827F827A8FD0FFF7DF8
%27272752FFFFFFFD0427F8A9A827F8272752A9FFFFA8F827272752FF7D27
%F8272752FFFFFF52F82727277DFFFF7DF82727277DFD0DFF2727F82752FF
%FF522727F8277DFFFFFF2727F82727A8FD0FFF5227F827F8A8FFFFFF52F8
%27F8277EA8F827F82752FFFFFF7D27F827F852FF7DF827F82752FFFFFF52
%27F827F87DFFFF7D27F827F87DFD04FFA87D52A8FD04FFA827F827F852FF
%FF2727F827F8A8FFFFFF52F827F8277DFD0FFF53202727277DFFFF7E2027
%272720FFA827202727277DFFA852202727277DFF7D2720272727A8FFFF7D
%202727277DFFFF7D202727277DFFFFFFA8522727207DFD04FF2727202752
%FFFF7D2727202752FFFF7E2727202727A8FD0FFF5227F827F87D2727F827
%F827F852FFFF2727F827F8272727F827F827F8A8FFFFF827F827F827F87D
%5327F827F87DFFFF7D27F827F87DFFFFFF7DF827F827F87DFFFFA827F827
%F852FFFF7D27F827F827F827F827F827F852FD10FF7D2727F8277D52F827
%2727F827A8FFFFA82727F8272727F8272727F87DFFFFFF7D2727F8272727
%597D2727F8277DFFFF7D2727F8277DFFFFFF5227F827272752FFFFA9F8FD
%0427FFFFFF52272727F8272727F8272727A8FD10FF5227F827F8A82727F8
%27F8277DFD04FF7DF827F827F827F827F852A8FD04FF52F827F827F87D52
%27F827F87DFFFF5327F827F87DFFFFFF7DF827F827F87DFFFFA827F827F8
%52A8FFFFFF2727F827F827F827F8277DFD11FF7D272720277D5220272752
%A8FD06FFA8FD04272027277DFD07FF7EFD0427537D272720277DFFFF7D27
%2720277DFFFFFFA8522027277DFFFFFFA920FD0427FD05FF7D2720272727
%2052A8FD12FF5227F827F8A87D7D7DA8FD0AFFA8FD047DFD0BFF7D7D53A8
%FD047D52A8FFFF847D7D7D52A8FD05FF7D52A8FD04FFA87D537D7D7DFD06
%FFA8A8597D7DA8FD14FF52F82727277DFD62FF5227F827F8A8FD62FF5220
%2727277DFD62FF52272727F8A8FDFCFFFD2DFFFF
%%EndData

endstream
endobj
28 0 obj
<</Length 65536>>stream
+>���[z{�_rs��4|��>iMO
I��}²;�

��:F������hN��&|�-��cC��0�6xښ�)zFR�pK�C?,y]�޵4}Z34�l��ft���޼�e"�&b኎V����ew���S���_�Ą�.N�屶�[ �}�u�>�6$��h��o�z3�>�cg�Y쩋���C����}9�e��\<��������͊	�6��D�x�U{>&&h$�M�a��FX��,����q�{
ti���m+�5���B�A�N
Ƞ��x���_��Rm�����7�`s���&]
�{腤�Z��e+��Ee
���_'x�}���
����m���=
�w\,���V��16e�E�Y3S�CJ�������-���FAc��
]��m�
��
����tB�ͺh/�c�$�\5��4$�����򋇈�1Š����
t��1곟��t2Q!
��¯~6�I��`�����Be.i Q�!��u�k �����Y�'Qٯ��V��6��##����|��Vq�/����VG캑%��Y�
g�^
�Еߦxm�nTٚ�1vՊL_�K�����#\��V�8���'��o�B��I����eMÛiE�#�@CĔ�U�&�^�U2����][}��PU���s	�n
�J��1J�;ؕW����gd�A��p�ކ�+zB��1q��IIÓ��n݀�
�?hh�fd�I�Vb����l��,�h�v.f��[w�
&@{���;
g�+`�)��Ҧ�!l�-��O�C�~1����'�^�||5
����lWc4�矏�.����so�Pq�y%�������g����u�g:+�z�Y�=܄s�Ƨ?�־�ـN:c��N{�WXi�՟wL0�Q�ѿ�d�w/�g�o��e���؂�?���Y��u���,�����{FB�y ��%�������Ĉ�≙U�����"��/m�Q���iMw�?^�’Vt��!M��/^"��ˣ�:� ��9+���srH��Q͞�a�����9�=�MS�hہ��bu�˺昭a\��065��Ts�����\-�-���H[��Yi���
+�#��5*�����)�����-�(�ô�M���OA��e	?�3H�Ø�-�jxoЈ/
�%!=�`A��_�D�:H�_�����]12j���Ҡ�yf��6�
{�#�\Wa����`1+:F���V�	�䖇��

+6\Tš
W2�r�d��-'�fg��94ء�;�c��\چ���wP���;���sVz�iͣm3*���I�T#����vbٲ�����;���!36�͂����G9�'X�m?	��2����@�
�
�'���Դlc4.�H�+&Rɷ����E��rL�i~L�z~�s_�X�
?���!g���
hG}�Nv��	(�U
1䩋_w��,�8*,�<���b~�<֏�
miz8��/��v�N�RU��@W��«���o<
���X����̫a�_'�-�>w�G��2�kvB��(
�����m�;�<ڪ�Z�j��/�1�
5Ϝ���jb�)��<�8�),ﶙ^|K����}��6�x$�;���x7*)��:���U��ϩ����� ?����������[�d�
�~��C�a�#��~8�eD��˫
Uu/��K���^��k|s��ZyWά����q\��?�����š�f|��T�Uj���%���2\�|u�8�.�dV��㐄�ǧځ}�z�8P��/ν�!ĜV<8���<��kJ�Ӣ��Č����7�� �
��]+.y������DWE���\&��R4����b'�5��R��
`K��x+;�jG�۟d���vL����:��0��������<�<
+N�q@�f�� ���q�1~)�h͂�8��8���	�u
_�c�A\1"�ssQ
�صS!�ZD�{�Lʼ� G���%96iU'B.���:nӪIDXT3kT��e5&	в�s���!\��0�8/��t����E��sZ�Ր�M'�����QrC����&7��y�9"�:�C�V���K�/FZRn���߯���b>�I
+V�Ģ�A�ǃ1*��,`�FlѴ
���$�� �`Bg�yI
�,�$�
����aR���_���cl�� �������i���P��g��9��<ѿL��Qbݎ�X��å��4Ջ��jn��J�B�G
��W�s����K�u/f�
���5�:�ʹe�R~�T91�����m�U?
*�ެ9�6X��`�s�������	�Ī��t�`;
�`���˄XutoaË�
����J������$[�%׻aI�;SN:�w�������O*L�E��)��i��B"�|Ɗ�R>?�p�艾�H at wz[�88�w�M]�"R7M��u�;M����pq��K;4z��D�
�I�O�ֿQ��n�����9���p����^@�OR�K/s�>
�d|<�M~s
���.��~Q��~d�udN�Yny�Y)����o:l��zB�)2�W%6媋W�hEG(�H��)�~��?�'�i���WtG���Mud_�ӓ/-(QE�������g�]u��Gɍ vNuT��pso�7�;+�{�{fn��C�J�V��-!�ɖ�R�#w���-}�'
%�����);5��u�GዢW�3#�x��f�&��.T���f�$�Pc�M+�>�3�ˑ	
��;J���~xҮ
[R#� �r�
+
.4go�9D����"� 痱��Um��
�\�7�N�FL�sL�L|:9 ʙ���<��c���t4���;#l���
+���.k�i�RD���&nY����N��4P�t�
+|�_���|�P����ݡ�Z5�J&z ��:_.����\�����������]� R6��c
�q��I���Y���4��u�M�2�b}��u�g�׳��W�3����
����X=�z;�]�d�
� k~��j��:Fl�+�9Kjj���c����ɞ�����k�]�ח���Y%%�ۉ}7Ӌ��i㡦@o���
�ּ�nA��=<e�Im�qs�;~�hl���b7�|`_����d�\�g
��gl �cنȱ�Jo�ji�s*B�D���Sys���͒
�2����#Ȼ�����Y�l���n��c�E�&��/*k÷
���ahf �n �?�\&��+C&\֬
�~��rqwT[��a��}B���R�f������V�db֏
r�l}�8G'2bZI+�ɨ�F>��tGG��p
+�了0��bT�_~lc6�W�*.x5w�����ܷ����?��mR�IZ0P˂f
l�,��z��
��?m���k����y��i�QOcЇM
�j^��rJ�ꅠ�++&\ͦ�1f^Vv�ےwQ�=��wZ�H�}��.||�Zܔ������U����%�����s�/���O�r�
�}:ke7>�0��^g�F�߱�	��0Ae�󉶼�vV�-U��{D��
P,8��YZN��>*���
��"ׅtM��ѿs��>96%.y�e�n�x�����n�K�n[9�94��O����3=��1-!��l�kRы�N��g����ߦh�]�h�
+K�|0DH?;�Ag��?^�|q��9�x���1(/{RV<]
(z���씠��)'����
+�~��򜧥6��1�~�s�{^
+l˅,ڰ�G����m��#TF=g���f%�MuZ��t��Ϫ���!v�W?�bq������
O{2H�{����.*!�!-"eہ-:p�r���V,��5�)hf���֭��M��D@߃^��K�������3ӝ��C&��Q�t��.��A��쥂��i�ou����i�jr΢U@]rt�NhD���S��2�̈́�
:��C��r 2wl��
3
����aj���������؈��&�s
칸Ԡ���Q��v���-��{���>I���)�A"c���QH��v�+�}�W�Vt��A
��
Gs�~Ӱ�C��:�G&o�9��af�H�*X̌��d�n�R��az�� 2jD_Pq��,�֣��C���^\<@�.�4��.Ge\��6 ����7��U̪���Jbڂ�\t0A3Fv킉Q�;�!
�썐�+vT&���vú�ְ�c�f��y
�l�J���
����.\c�B��@ղ�V����*q)�>�{
�ᮙ[�hU���+�IiW쌂{�bػ�~R֔��7���q��T��
�m��\2a��4��e=�p�L�_�s0+.>
�����7+��Q�ƈ��ު���g�Mo5���
+x��.vŭ��Zm�>�@���ҏkØ�����]�ϧ����d��	).e�F���P����U���4�Ts��Ddϩ��N���X4�
+|JN�A }=H*{�f�T̈����(��a��s�3/z[*�
կ�u���ى��[��Q%�����#֭؂+�hV
O�x�N���*����Wg�c
_ݲq�g����"�c�r ��:�o�u�>��cs
�=9Y���������s��_1���ӯZ11g�}t��(�>�����#CVF�6�Ʌ��G
�)����S�8�%��
QK��W-��{.:��ݲ�j�d.鉅KVi���rK�S�
�G.�T�Y}/wQK������Yh��պ�4�cV�+�7��k�^@~��:#-z�7
��r31s&V���`�ͣm�r�kNRŪ
W�lCeL+#VM��=7�xՉΟ1��
�t�����~y�N��0Ѫ7,��m/
+�b����1��W�[�#�X�/3<ї�����='�v�J,X�s�4��e3
4֋|7+�d�t"���-,�9�]�x^Y��.Ƚ0�S�j�A��r+
Y��/vF��Q&f�A�{����@�>�ק-��G�a�.��ʨ�%2�0��o�P��
+��$	r���l8й{��Z�?���!-*yÆʚ�7�	ȡQA3�d��;.���Q�U��5��6.�ؠe3�a�@�^���{^*��������\��h[����9ʟ\��isVjeȂ�
��[vL���G�_�� k>z�����S5���!Bڨ��<1H/^u��SJ���n��N]0JXA�B��6i^��8ړ}��
��5�K=���Z�u�z�Ϧ�\
��S6k������
�b�_��RȈ-Y5a�7�����P�`�����+
��
+v�G}��Vr�ף޾s���і���N�_#lp��1Ò��3*4��Q�,�{�m[�S6ͨ�5
�vv�<.�B
1�
mЂ��=�@��ST=��2�k1�g����[�y�	Z43j�|�I�
�d�
,�U󃤌@/:2 ED-��Ec*F�h?�`V� m��4�����jb�1�as�E�`����"Ҥ���w5�et��<����Z�1�rl֦�\�ng6���9bl�nm���nB^PO�H�
��\��/z�j%W,ڄ�eg+gmD�[���!�2�F�8��V�f�d������5�
���ج��FfÖ��Y�06=��U�hg4,X٠u�P�=&l��p at l�
���qQ�<t��
��f–L���>d���j����@<-Տǻ�^ \�Ŭ�6"h��o������D_/8ao��]���}u�ƥY�G��
oH���P>q�M�敱�'��_���_gZ�y�
��r5%m�P��>b�T5!?�љ�~xσ-�r�����lŪ_<��\wКv&E=�.
#h�b�}"��H���[v�Q�����Z�h�7�{�=���,gOU��0��!��$pȊ�\sPA+v�!j~�#7����jVM�]���f���9#:gmc�;:E�zn���7iT�
m�8����X�n�Av}\��DK�^�'�:�q�m��N��k
x��&��2�3x��Do�ٴ
a`�_���V\�T���z�L,_6����������5��m��h���I�&�[~"t�E��
?���ĩ���
|�?����
�o3���SBپ�߶w4
dD�(x哃�����w}�k�FT�� 46��
�4G̩q;^w�!d쎶vo�H��֮���Y�
+0�N����Ӊx3)�%ͬ�es;{��#���(�^h���Ry4/�!G��Ew����MO{ߪ[�
+���C��i���ҧԂZO;#eVJ/�r�ZZ�V���։|7���-��O&r| �0���B��2�lx��57;��gO
a���_w��W]���:�Fl:��	&{�Kj
Q�
-�p9�B|}��%=�|�GGlx8��a|��D�� T
L��6�L��Hk��H���Q=��l�
N\�4DΪ_M�j���y�ԂAJم99�' �03�
���Ō��^�ګ �Ͷ�R�
��V93H�
+1���oST��W���b,����W�l�!陱ыv!)d�R�

+�sC͟
��5
��b�V��
��H@�%l��?���]�6�ߴ<�Z� ^�z����.Պ�G]b���&�Ĕy-�x�'h9�Ѕ�-]=���Bp��	�1�"Z
0��lܤ�R��� ���p���K@W��+���^>c���N�Z1}+l� �T2�ippT+��m�`�
:l�����a 7}κ�K����g;
[�\�Ƙ�es�U�5צߙ)w'9�U
1o���H��!A�ILN�2/ ڮb{���c,��
/
��ec��5!/��t�)��'T
�k
�{[)5nno���}��|�/`�M��
,����1�g6Oˀ�0�G���q^��D���X�t�ń�Y	��.J��(��h#�M����%�ρn��x�v��i
+(�SC�G��@*=���d�y�m7
�j�7
���fÊ.Xww�;�2$�re��;&*�`B��K
A��2����
����S	����s�u���5
��Oܳ=£� q���]7�U��-�
J����ق��l&�/��+v>aR%����P��vh at C�Y6��f�Μ��=k�6�H�3��9��7�����2���%ki��a�0C�>Ⴙ�9�Ce/����A{^� ��-��ռ0D�]��J7�鍻
J���T�1@�!j
^���&�4[�M
�~m��^wsp�.&4hg4N��� n�������s��~*by_��b"�]m�
�����b�n���!��.�S,^�p�),��R�hŌ+��I
Zb��_sg����A�E�=�ҳ��RC�<t�ʬZ���x��Q�!��e�k����̝�����VP7{d���'MB���[8o�ﶴ�3Y���&��ƤX�`��l�yw�up�ϡ6[:�gTn�
+�{���8�z�!�LX����5+�^ݔ���$�R�v�*������J+��b��Y��
l�;w���w&�A/
�1��mO��;S��B�kk�A[0�3�肠�C�0��]��g5!�§�>
��KNl��Go��${�]���v㊯M�
+�fB񢃉
�ڻ� ��������Ɨo���w�i��	�z3 1Oi	9�FJ��x�z; ��g�̴�!\ʜ�\�=M#
.�:V}
�ڈ��3�"�
��L�vt܊�C�S�"\���ۄT��2T��qI?lN%��H���+w� iz@�0=8$�D�ޖB� ��)��
�u�v������

+n�])C�{��P��ޱ2��!mgˎKܺ�� �������*����{�4��,�� [R�� �����[���U�:�tc1�!���+��F�Vբ�
4
�Jsm�F�ڥ�
ZLR
K��T�؊
b#�>�
񨳜�Z��O6��U�Ξ�� �=�a�g�+:��
h�y��U�y�p����ݚ7gbVL�0�KfRźK�Y�گ�ͭ�f&񩿗QhB���4�3g�c��B�~�M�c���jcYt8��<:�ewG눒Y�a�ˈ�[NiW݌����ik�X`����S�� �um"��q))=Џɞ
$mz��ఀ8o�A�um���vZϪZr�K6z=���f
�R���ѤPcTm�kOg�K�����Yd��W�2t[����Ob8�>o�]<̢G at Y8쒓ް�c��-�0�Kn��9�Q��x�*��
�6Y_}o�,Q�WD3�ҧ�&�e
Xx�*��O|%�J�Z;�B�v��B�Sjv�]G����ĺ� ��2�%.�;:N1ե��e]����j���~��͜�Hۜ�^��_�uHU��
���#��?�I]�7G{t����3���6�ޤ���
��p����*G���@�uN8�;�ᬏs����Iso����:il%̭4��^83,b�L�8K�زi=�84,����X�G[��N>jb���6��(W.
Ctq�ym4�{1F�t��JT1
y=
m
)�
.�ܢ���t�U�]�lKG[�耠`AߊZ����]��c�>�qPڬ�`2�W�5��ԯe4M�Yd�������"�t�i5��3mi
��Cy�ze:�*��������֞�����
�5���rN�M�

���eR'��׃�
)<��M
�%�h�m��������OI�SO�

��t<�m�o4P_����RBCfB��(�dˇ�
72�����{���.�`d7�?J#��j:��=�.�I.3��L��
+n�9������K��
rCVI��h��`�
�4ꢦ.j���k�ͺ��ÃCl���@)ƪx=Yn�Y<f�
��}"���~��C��;'#�޸:��:����,Q֌��
4v�����!Z�3��]�!��9��C�{[3t��h���p��P���g`�O� �C>I�"��xYTU�vA�vzR��,ԕ�<�!Fe������){'�mKNR͌�9n�\zU?`�u��<�6G@�PL�8��	��^V�v67��sv.��{�c�
��x�� ��̸�����]�	��>go��
�
FBŴ�V�1ɅZ���ק*����$��
+G�"�>��
�x�cmA���Rʳ�
��t�����+xp��BV���Z>�6 at r

v��w�V^�;�o�:/
؟��vf�L����_�r��%�9�]Z� N�%/��t|
�Q�
h�2QW�JԖ`
h�4�3�'L-��Ķ?!�/�Z�6��S�t�;e�l�x�C��nhR\A@�W�
���ұ�� ��fr���y�v�N��wo�Og��p��{ڎ��qMfҢP
l:�ЈD,A0�
�4�~����"�
��u7	P�]"\�4p��Vz����Ryqﹼb����a���%&P~�@�7����Ǎzي�K2�4�i[`n���T�=3�(�\$�2��r%����’�?�*T����
;��ݜ����c/?��n<�������K���q��[�vI�M��w�EK��C]�!p沙�h"e�C���`/�y
����~�""00���<�/woD
y3:,=�췒L�]B
5��aDO�M�K�vA���ly��!�j�j2kz�>l����
o��Y!I���{��a��S���3���y�"�kU>�rF�������Ȳz��{
+B�U*�ש~D�Ug��	�}
_2^��{_U7
ܨ�5
C�_U���d^�跜���O^T�]��v�FVػx걫���^GaO`���}�#$�i�{���3m�"�:)oP�i��#Є3 ��VL���5'��0��)Τ�K~��z��Ӛ��1�c�I�cW�׆�
Dž�[~5���g
+��H�і6�dd���4�R����Q���R�p<�g�[X�v�
+<t�l��O��铢cW.G�=��
�2�獒��'�ݽ�z��Au�S*���'U��������WG�
��-}�^.mB'lti��&�M:�
���]�5
]0�����Cd�+$�񬺺�Z�3�?R����H̻+oaW�"ܼ��0h䤎>s
C<�����4��d�*~��$O̠��6�9�拢�_�z��A^XT<5��Hؕ��a��ȓ
�⹢c��=�����e[UJ�\a#
+�}�$Q(
�
�n��?�D�.&����#4,.�t<-K���Dj���?�k]�W��
"�q���ȟ+��zۍ�
6g���[�]~sߠj/�
���帉�E�y
����%'��P���*��&,:�q��{R��O�����"S�"�Dǟ���|�:
|U*���8:[g�������_2��t��#?z?�t�tD<�D|vǯ�9�'
>{�t�S
+���,�?nd����۰�=�D��u�����?0X�']�H�Y똳H���mt�� �#r�1$�j�t����
^�
�ш
�Y�h>�W(9�1�s2%��D��גÞ�W��^v�zڱ�Q��4l�])���т�X�1 �
QNw�P!�ݟ�.��|�R.��$��{��t��
�Oo�Q?]���e��'ൈXJص�aOc�ǒ�,'�ꜿ�i���.sٰ��<*Q�Nw{�6����Dm_)�s�#�Ͻ:��B~Y�ٗ��'��+;v�Y}ؽ�{/��^|ğx��<�-=�Uk� %�=�
+����Z�
T͙�
9!A.������-�L�x1��̭P�
��>	����xαW����O��>���,
�
�?~����o����dԻ�.��?�y�.}фJ]0R�\���
�2��m��+�*B�F�1�w����K��s��
?=z
{
�?��#�عK�a���x,>�w�c�lY
�G׋���C��Z�� kGr;'Kɢ�8c,�6t%!��kt*�dD��
r����U؝u��яg�~�C�?�:
 �FF��
+�ピ�Q9�9��U+�M�}~�Օ���A��k�P�ͨ
>�@��?��.��,���->�"�p:&�q��N~���>U�sލ)�)�:bz�F�^��Fn�Q�N�I�3:e60�s�K���P�/���G9��
�ȿ>}����$‰�,Ή�B��
���p�50�x�Fq}����%Zh�!�.X��}�ͱNm��]Z�)1��RgS�Ll@
�����ۛD֩gQ�cO# �=�
��� �u
���Dv��g
a���"Q_�<U
2�'�
9F��e���:�FŻ�W^-�D�ң���
+V�t
�w���6����z��Q�GzQ�鋷
î�)	{�v�AUإ���"�#��e�N���H���:J��%�Fߎ}k��Ad}&0��y�l�-$v��Cٳ1H���Zɵ���+ ��VJE��������cIy��	��R�Z�7��^3����'zD�	�w�6Ƹ���sqp�!�P�,�����E�)����%� P�0� ���NZ1�nV	�6�a�3mLS$O��Ѫ�Um/ԫ���
�i
%o�H�
h��#C�BE�0E�-/��7T�E��x��1�a~�S�w#:���Q�_�=�=�*{2��������E��2����f�9�gp�(SZb��`ݻ�[�>"��
4���֥�PґZ�h4Ɯ��Ŏޮ@�/eW�N�{�x�������W�\<2�7#��H?��m5[l�҂s�4]&�A��b�����.G	_l�`���X��cf�I-T~+�����$�Ō|��p�3C�n��)~�Q����=�����Vv�'E��x�z�#��Ϣ�w�P�e�h2���( [...]
+��xq��cGO�R2T�Th�
�>ʦKD:�3p�adޜ�
��u���~�Q-
��;;[c9���h��i
��(�����։���_�ƣNF&c~����T�r*�����F�y0�����
�-��*>x�M��ز��P��gS&�ۉ�>aZWWWj�b��Z(ò<�p��9��x
��<w�vֱ�w���DÏ}HF�)*��
��
�(��I�� 9sRy4�Jt��E���	*����m]W���Sb)�0׊����<A�5�F�pg�	�w�0�]4E��-���(
��
+���v`��Y���t���춯s
ᘖ�g��S�Fm�ި�

���:����)}�=��}�T��
UK$��
���g0����jM�͔�^4o �̲�
wu��,[(uk^>ceT��q�m�����>�^2k�3��T�S�R�iqw� q7�J�@��-nB!�	.���xp*3��޿��x�O| z]�yH��:��5U[�f�=r����+����Ly�9 *࿗$���5��2bG���l�'0[equ]����������Y�bfk�cρ���W`S�һ�:�]�V�?��dC]�����QHG���m`[ߡ�a�h�� ��W��H,�y�
�&��v��(��n��=}��8T�}sww�Q<?�*6M6�%�Ն�V�z��R#�F*G���޷D
�
g
�KJz�$c��3=�m/hu�m�hûU��|��NM
zc���#bWy5
�m-iu��T;�X2��O�t��SSm#����=��椹���d^3�&�o�վ��[X6�;�w�����(�h��W�J��A�-�̜5+m}�b�yOя���[˳
<���|�
so�sk���hv�5_1у1N	
+&I�3

�ЬW�Ts��.p)�o��q��bb�ƌ f��Kw4��ei
�0QW�
�ˇZK�>������ԉ�����Y(�=���n�[S�!���XV{W�`߇�e��{�nx֦ln؝fW
Zߟ.u�2

+l�|_�Sew���
b�|d�2�7G�j��_�y?` p�C0�%{�E��jim
+

�GD�%q?ogRP�R3+]*��P[�9 y�&��mO���<��4T�� /9��_�k9;��=˳�(�8/c��+�fE�	���f���]����z�ۏ����n�
+���'&:���Ĺt�)Fޚ��� �k^��w/��9��[l�f�]�Pm��f�lg�S�!o!����64�|�|=Ӫ��f8E�*.Ģ��'Qo7G/}z�|�]�
\k�r�[r~�ID�ߞF��*�U�sm4��Q�
�H�r���d]�j��7�
�5Uvs�
�05�
o��:u�J����_���t7�u����me-^9�P�
�)X��8�+PLub%c]�I�X88!�
�f�E#$���\?�ʲ�4�x���E�������ݥq�"�k�����{J�y���7ū�
%�1v��[�z�+��؞n!FkJGy�Nه�������.A�5����E�V)!�`���)�dOp��o� 2>ϳ�~5!í���|����iِ��Zؾ�-��8�5�2��/��pq
+R�WϬ�j�U>�=Mϲ�բO��%
�t�Ot(h%룤ؕR��-��[
�!fmM�r�Ĕd��U�!m�&ě'q	[��o
�BևHQk"^��hu�WI)���h8�C�RR��e>}
٪ �bhu���2L+�
'',�!��Q�FⲴ�4/����yk�l��w�2��bW�P橪7;����2b�_�Xs���{fj>	̙�b3���(����346���6E5xg�Q�6��6�?�j&ށ�
�-I
�>[����].ϭ���ZZ�O[�^o��$z�ݙ$';��O��N�(U^��Pp�+�फ़����лį�H�'�m
�b�j
+(����3!���h�
!�h�G9��q�*l��#��V`��$�GI.��Ρ�WkX�RNᒈWx��n�&�'m�T=Yi��
�l�@�{稅G��Y�˛�nnM�T\�����@�å�w6����ab��Z�m��Z��7�QG+��V��x��co�f�#��RG�����WG�
��NӠk�O:^�R��6���շ
�p�;c%�9w�E�ק
t��2
�y]����ߞ�Y�<�o�mܷѩ�78��J6tULN\3���
�f]g疪�`Vԡ�fp��W}�ȡ
X�C���@�8�kS�
T<p�i �緓�oO1�
�%��Du�KJ�1�R�vƈ1kè0?�W�@p�k��bZ�z7&�=M�=RSK5����pUs�����S����X_{>O)�M?6f_?��rɉ�
5��60�3l���?�	yT�r���c���)
��hg�mSR��
�	�(9�2l��"d��lw
��)��
 Œ
��f19em�j���m"T�j{ޯ�]E76>V<�
c����ե�;O [...]
ޣ���Rt�]FH����*r�CNH�J�q;"���%n�_O���<��qȂ���s���eỳ����IL䞘��U�q��%8����)l�[�M1� C�&�2z�[�*�)I�_�X�s��HA������2T�z�����P��?����U�:CH�
�e��
�OO(<5�O� �
��R��3W�W�N9{u�,��W�Q�`�K��"
혆�L�CWǰq6��t����e�e�h��ɵT�s��nuu����2�n
�`�c�ݫ��޵w�{��,l�k�08h����3�K�j4�$���)\�R/�E
*�N�K�� �f�yg�����[����3�6lo���؉|����'��_h��s ����h���ˆ����e�8'f��|�M�}k=���=�͢b����ID��@U�Jo�N�WGZ6�H�AY&�����v���
H �nyu�OM+���SmbT�{�h8>�*&�n!_ z�5��bg񭵾��K��'�1?��c������_gh�ߍ�����~�Д{Cט���$"V�
�
�&_9��n)��>���.~fjK���O�blJ�q���K�,��r��g�O�cݳ�T�2�>�
+���15��{��m��?�75���൏�O�[��~���S�COt��#5��+�f88UuD����y�O�0�1^
���
+rڑ��xk��
ybq n)��HI�pMCB�G�^�:�om�W=���7�FM�\�F�؈��:�w�:�-Cǻg�1VQI�}��P�y�#��bw��a�ӸD��
�i�c����V{Jo���=[a�,X��(�6]y���h�e���п�9�#
	�1X��>��9[6�匲1>�:
+
�O�_9$�=u�f at v*�U�
`���FQ�^>}���m�*vw���sq�%V�UD���=8�
�~
{h �{��D�
�=
v�3�j�OG+7�A_�,S �1/Vk�
-�;�|���s�5��
/�՜��	�
��Zc�o�K~��.��mA�_h��wF+_ڥ�X��X�E
uW`���SQ�U4�_M+	d o��b
Rh�|W�5c{��[����]`
'%m�"��S���	J�mX�1���ql��G�Mc�խ~|�R��
c�z��L��:�@LȺP��.���
&yWL�Y�=?Q���
+Z��ЧCu¤��ɯ����}w�?^�,WBC�Y9?��A���
�"��?Q�l�=��Ֆ�_v��Q+���.��)nw�vO�Jܟ�DC׺Aw�;+_�E�̵��
؛�#��S�
+~3�/�k*�ŧ�d�ę������N9�"B�����
�I�45I������������5 at G���2���;]d V�ʟ�Q����3~P��F���_��-#�� N���YD�\�
㔒�Ŭ�$��?�����ξ�Ր2�rf�F)k����J
���!����}	��#�Ϸ��n-w��nע�		�o�߱�V<�7�]�a��h�ۃe�u͙?� #|
+v�y�"dg�=P��.*}ya���Q�:

��f�h�R�\�G�(�
�/�O��&9�+����gKt��-�������K\ⱎ��Z�_�K�
��ݓu�>Qtj��:A��������55�r�=2\�m
���Y��0A�IQ�5ᗳ_]��\cA�_k\ڧ:�&��iY�W�Ĉ����w�A�k2�

��k��&��V��+��;VW8.]�H��5Tp�t�J����Ib�K) z��m'
5u�^��?�8��7���Ԛz寝�~�B㇃9�HO�:^$Wxu�
+��Xxa��N���������;G.903�H�,�|����ѓ˫&縔�
�����B��A����3��Y�)Y�1���������˯�:����ar��)FW_��z�u��!ƽ�
*}�ؖ��BK��;àG
>�L%�x����A�K�����İWq�S�

�;
+R�e�4WS�K�m�C_�
�_Y��!N)*j�|��d{�3�̽ҋ��v�ᒲ
+
j��02DS�sYV
��noŽ�>B�0��&2���+c�=<�唻$�ȥ��+���K���K��һ���3c�1M�tJ)��i
�5NO;��Jlc��Y^������� �
n���M?
Lb�x�iU=�7�^]��{�/���-���Ur�mﴋ��ۈ�&t��Xԩ��}�@�Y&A/Mݥ{��?~@���y�^pȱ�����]
'��7�v�38�JN��=�����W�F�.EGO����>�����"L�?-�`�S(��hp�oVz�o� �����/*|�ڙtUY���aҫ�ߥ�j�P�%����HЩ���bV�%���ԫ��W���i?Jyi�wE��
�nlͿ��U
�7
���&*�tI+��3��YIW}��-��JW�oV���:�2��p+0�{���>Bڏ�����r�K�+�(y��z��S��v͢ ����g�њ��+�r_�{��:_�� ~~�S����N�s�l�M:�L��<d�������e���%���޶�V��
�B=3�D�
+������%q@�?, �>�th�M�V����<Rx[U�CgՓ�ԍ����xAy�w�ݠ��Z�D˪�̀_�5�b��
�
+B��P�-}s�=�G�g���.������[~w���5B�X�=S	�o+���?/�T�ݛ�$�[*
�y�\2r��9�:Bx����a��� ��d�����93�,�$*b�;���n��/ω[
B�c��
j�|{ ���^��8=��w��o[A/�&�d���)�-�-���FG,���S֤�bj��]�\xs����GX���Bl���8;��ve���$���61>�!ǘ�K�Z.zs�;I˽�݋L9���`勝�ҧ��� ��RU�|i��]�߶�A/6��o�`�
��]ZlH��#�E\�h�Gjf�F����{����MLv�Q񎩪����ۦ����0���9K
u����]6�<HI���ݓ�-CE6{��-w�?�KXH�� �o�����LZ�J'╖���RsŽ�֒���
nڋ
9e�*�Lu�f/���Dzg�!ݕOֻ�oZG�ӊB�[�nl��5$����
/� �_=
bü�
FE: oa�=����l� dإ��1Z�������w)5�{
����H���
:�����=50��9j��cE�,7񺒟����sY�O��W
+��!?�T'=>P2*�ӌ\MM�	
����t���+����e�l��v1٧fA6z*�ot?��.{e�L0?r�}����9����f�t�򕞲{�d��BK�����?6�GF|�",x��$,�g�R��ZG�Z:�&�ĸd�8�
:�%G'�vpL/!�[cgy�!��s��@�
j�en1�?Y�S�����g�w��xh��2�e�ԍ�Ѓ~Ֆ�f����(5��aR�?��y��@��
�'O�aq�.�j�.�����������7?/�f_6������#���Z�
o���a�W�
+�����pL��]���ho�Yk���9ź���
�wĜ�͐��q1�V��![ĸ^��IV�o��T}[��6x�ߺa�5F���%������
nF="��;xԏN)
zh
�
xd�R{��ծ�떑��.:�����0�o�w�
�s.v>4�����.����kG��:zډ��~���m����V~�6T��-o���2����6$�j
dZ
��y��?�h���g�\�A�y����7�^e:�o�Z
+o�c2o�U������o ��8UQ��3Ԓ�
X������49k��o�<�o*�ezz�mȻ��U���C
91o�����w�J�:F�_i+��Ԓy�Ԓ���.��Ŗ�_̀�ٛ"$	+���
���(*�HG-p>i�}�U}�ݕ�O酇��<��5{����`u�u�{p�f:|o��
�l*ц|�}7>��C=�=���p2.�1�6ڊ
�G�!�Qh�U��h�E_�n(Kph��
9^[_���>��|g��́�`�dy��b��,�y��R�� &^��]���������w��s�8%���ܦc�&��S��k{t�M�@d�
/�*�:L�Myu CF.T�>oշzu
��4"ڧ�����眛(U�U�2P��H�����{~-
z:_S�S�����Xd�i��h�t⡒Uh��QD�ZO�í!T�UDJt�	�;S�]1.f�#��b�ޞ�|�u��]z�2 
>[j�
xk� 6LӘ�1�׽!x�KB�:U�q�Rr��)���.yo����-�i����4=��Qr�w��𿩸)?��ab�2n�,?�J`N�C�.� �����]�G

Uw,c�+ at tK}�(�{J�B�|��}��a'�m���
��+=�7ǚF�m��`��F���`�8�;���+���[t�#����aR.re���ؗ>x�7[��v�=ҿ=�
�Do��� V�^q�HYƦ��Z/mt�\75��b�y��RO�<���
+��4'(
�����Q�3ֻ
+~[y�we�tw����b䥬��nUʳ�!��_��S�N���Y�۝����ԈK��W0#��J���PI�ʣ��M!,z~���=��>i�
�t�
m]�����w�]�M��
Y�C�X�Or �\�s�s�,�Nb�z+��Ⓘ�B%]�ae��: �����H�Tr
�pWs�)t��-���:bk�v�p2)a�.�������Ǣ���o+3�4C'���G�k�
1�:T�p�-��rK����߭�����Z��]��5G�9	�j��3��X�������
�
Rb�CN/T�V�."�]2�aS?/�Ԟ�9X��4ߜ���>?��[�|}
�7����Z���s��P�i�E�s���s����FA{4�S_�Mcg�e�<f�)?Bב��WC|Fz��<
�e�Q}f��
,�����FQ�1�[���q����))
yu���q"ث�9b걊^�a�E��C� k''.�W�^�Xuok�@ߒ���>�ss��W;�O�?�_��x���v0�kb����1�C_m�
ZŸ$���6�^���0�U<1�^ۆ	��IF�KL�5u�<Yj+�흣��<�8�����|78H�Z�l����V�ߝb�|$��q~��(1j{�j�5��� [...]
�M'9������
B�O�,<�%$LAc��J�����
+���
`o�-�3�5��#:�|�v���X��T��bzΏRd�:�<��^�z1���}��t�@��:]�U�.�����c���)��Ͻ�m�*�Ʃ��,td>�MU�92`3LC�X���@�.6� O��i
]���cW���-�>�t�
#�˗v1-ݣ`���
��>�1CHqLB�����1��z�����
��:M���E����� ��Wr�������U�P�J�n���Q��퓸71)i���`���V�J\rfQ`��R{�ͽ1R�[�)���u�ޙoJ�U�����OUM�
�
�xODM_�A�,�I>=�£�.p�Љ~%6
��Ib�S" /�RޚGII�z.ү"�\,���z�&�D
��!/�bʾ���KL�)0#�>M˴��B���g�j.r��Ʈ����
�e���]�;�d�ԍAD�b��j4ث
+\dW�q璳�~��ȓ��Fċ8a
�д/k<��\��������F`�,3l蚈�[ &��O��ܫ�ܣ��3��� �7eo|l�N�����>�?�	J�7����LĢ��l�� �5��/�s\��|=�|��w�L{����ђ�澲�':
ѩ`������)R�SA�:�(%>
�K\��}�
eS�����O���c=�h�c�C� 4�H���T
�Gͅ��|����6�{/��M�)�ń[
o+�2o�}(���C
��>CΔ5��R�{�
�y��<P��ؒ���r{��s#��l�]�8���
o�P��J\�e

k
,� ��۵��'Ja捅��p��@zwGk
+_�HX
M-�-g�l�CC%���Ԙ+
!˯g@��X�
)ϡ'矮0I>
u��" \Z�=��]&��>�"�d��k
��Xe�zO�u����.�����
�
Җ�]�	xt�_�� x/s�d!–��n
L@�ͣ�׺Ɣ���2��C^
�x������2�s�ʝa�+;���+^[S~Vե��d �
+�x�� �����<���o�Ez$��#
f��Ӗ?�/�/�iSs�F�)���_7�����z����r��ы�E�8� ���s0��qL�C���. at k
�I�'j&�#瀔�@�[�_��K<3���Y�3�e�"|
+J�SJL2x.�e�x�fB��Ja����V1*|w�j��≱�����Y�'&��L���>-��:|�ad�g����Tا��v)�2��Z��G���u
UK�A���USs�'�YE���}��V)�`Mʅʞ�8�7=r
�>Y���'y�	)�IL�E������
���R�B,l�7�	��?բ��l��N�� CW��k!QG�zށ��ui�%g+t�S�J����f�Yg�3���
BҏN9���Vc�����KvD��i��kR^�
�xa�����O&�%�Ɲ.�Y�F6�x�Gp�Ye�YJ��:r��(0
kg���Ѝy�;�-�Mנ�
+ħ$fZ&����@�<�1��*>��}>�Vz˧ d>-�%�G}]���z|�U��������-3�[�����ڜ>%��|���{���{��
F֝~i���bs�����J�
�/c�^��_���?�u���$����$��e4�`3���k j��y���F\ ���
o�B�?o7���	;�z6qK�z�5���U=_�J��2����P�]�#�!�E��Y��F�k��	�[�
6�X�K���=e����:�J/��zo��͡�[�}E�l�ظ�9jѹ�^���.町�j`�w��oɹ�f�l
Y%��A�
��$���V�=Mc�
��+�Uz�<�u�׋���zqi����� ��_�C��A��w������C<�'�U�����~ �%�»뽘�Y~�/.9!����k�U�jj�c
�;V��ԙ���.�_�9b6�IE�V��>|�c���UV�
kYUi`�(���Lu�ŊP���4��n
C��(%gZѣd�
ݠ;c�h��s [...]
+}���r�
+)@�����5\�`OT��;�˺��2� M�:����Vg}��ϖ��c-6�!��\��y_מ~c�C靯��F���B�\v�ul��,ʑ�����R���t�GFJ�xS
�w�M��^��q��Zz��"w��c�KI)�C��@���bKgຏ{�:�%�d~��DG��LC�մ��>��~�s����rR�X���rk�}�he�s�~��&�,74��b��
���u�iv)
�˲g�)B�]�C�4BƎ�]2�+���$FlOՁ��)��
v�����ʂ�3�8���s�^��h����]�n�ֵ�h�źX�
+ -��5�7�+�m���y

��X�ݙ$��f�N��d��ܛ�$�G�q�)J���*�Q��#��
+�;�O����� _T<�I˟
���9B�O�G�%�L��^zh�`�Zr�S�����?6���?}�5`��V�]Z_�$�LPslrRƾ�= �5P�Xۘ{US����u'iOL�^�}hl-�m���� >�W��� �����/�%g�������'C
�1��X̻�?�+����⢷��)+�pE}�e��=Y�al
B�׻�~Yh͹f���e跇jR�Oͬ����F�m��Ps�����͡�{��ԟ”��#��

q�\�uȱ�N��
�����>���H���ID�Jo��C
��t�M�Y0��ud���+�3/�~�է^^�̸u��d
kk	�}�HuS�e���)H��p�42f�z✭Nw��4]�����9e�/@��
����r���n�ܴMA�?�
+�^@_�I �2x�}�`�;e���%��Y�iW�um巭��9^
�U�GO-�Lc]�������.�`�Cg�R6���*
�<��\�*�mc �d_~�Q#b?�qi /���[v����֛:�Rz��G�SMC�/-ŷ�>U
}i�~���eV�q�͕�W���~-��
ʡ�C�8d�����TQ�OM�u{�����^��P_6ش����g&
�?���J6&x������xw��y���kO81���n
���"9^���J��45åh�U
- ށϗ��5r�EK؝�%��	��횆=@�J�`��}�ɶ���\#���gl�x��yM�2��;^��-CD���'F�1��||���,.�>��X�+x�ܙ�po h�����L�GE+
+̵t�ew��U
�;�H�M�A�ٮf����"k��'��k=�
�9����Ur���(�g
B���	�<��^a�m�2�,��D�!Zݘ�k?<�oZv�u�(���o�$Do�Ӳ]�$��1����
ȧ���~����g+
�C�'��`#-"T�[^�pX�
Y�J�mk���W
`�N�ؚ ��c"�&H��Ir�_K.�����γp�	D��%���@�s@ڰ��j7$�PŬh�C-9ww�,j�#��FO�}��k#�,5�?��w����bF�B]���2n�6�Wc{�m;๖б:a�m�$$r��c
+��!�$�E�8}Gţن��6��Zg���}e��K,�|�3R�U`
.����5�����־��h؈#-��PC��
�p���iX�}w��D����NaNW�4��R�äYF˃�?�]����@J�;66�f�e*a�U�$>ާ���T��?V)��� z
�'to�^r��Ե%�f/��"6FH�+��!N)!��(`�煍kbZ��!�o���,Ķf�"��
��:]�W~�Ԟ�44m��@�I����C9ף�$���%j����p���3
R�������[����1�S|��
y��$����g�w����`	?��KM*������vM�����bs�����~�V���F�ȑ�K9Za ܀^9[i���{�4u����Wa�rt�c
+
��8���[F�83�Q����Q�3���kZa�%K/��9�_��X�
|�[�ȴ�p���Ewƈ��5��dGĺ�m���-�T�ܟ��O���#��; �F!/
H�U���ׁ�ŭ8�t
q_�+���c�D�XSwy�
�g�^苃A�+����>b�W�Rՠ
RB���r�m�:���`���EZ�
�C�z�G�G��̪���Gq�
�Tŋ��܇vIE��<�203qSLIx�ܫi�p+k	���=1Q+�*R�N?4h��"�!�.ޛb��[����C
�a�Rd�|kֵ���6Qe�WÅo��Y����}ȴcM
�&�k�L�b��7���k̸a��'�T
���B�X|fd"\��ȥΌkcԄ?�".O�.�}�x���1
�����̟���}j>�d�_}��#����m,v�V
�ܥom6
b���w ���crO��$����4��m��z�4���Dj;��Zr��C#m��8�
>�l�O;[�푥}_~�%g�lS�����;���P��~��H���-7�;^��e��-	d��W,| ?3�@߸��r�f	)�
l��͆��,]�����TW�M�R�*l�[]]��s�[�D��\z�ƥ�u�=
y���{�xj�ƃ�����ث���yj�[��?���'K����\�5:�DG�v5�>��2v�"��X��e&�k�.>4Q�
=��d�_w�)h81�H>
l�DF��鐯�
�_[�zO�����F�]FͰK���}E���!�
}����<\
t:_Cq��9����}	)�)��yĐ��/�?&]׷���t�K8��3�����7{+���o�g�T��M&qS
+	Su��5�T�r��qVIm�_3���P�0����g^�;�W���@*�Y��o��p9
���v%�t]s�=� ���Qd��:�X��L�r�`c�rbe��9�
6�
���P��	x#>�����˩��b�
���7�pNyu��P�������YP�c���ӷ���wO��5���
&�t��q(��	���iR��(!jc��c��t
�]JJ>�r�.)�!�G ��x�}�C�t�
���y�m`{��
c��K���{��B��\ra ����ŀo�X�zd�����n�;
+
��Ճ
����, ���C
�bs
a�~�1�ꭱ�p��?[��
�L�
.�b���c����Z�pm
��j.�Vq)��V�9�4&n�6��\}�%����:XJ�5�'IM�}@sC���u+�	ۣ/���� 
z��U�.��n�`����A�Y:�����
��՘l�8�.���4
�Y��N03��%����
#
�?�<ޡ��qf$����ۃ%�N���õƎ�q\�|o��y:�p�fa�����c#��չ�zf�獺����
���t�Z�ʻ��S=b�p_M
�_�Q�>���J\��h����⻖QX�[S]�12@/�/��V-.ma 
�[h����6�����g>0��ȣ� X����?�R
+��9H��
��X�iF��#䁮��FX��������kw�~Ru '
c��g�Oӳ�
+o�	���
+�~4��;R�
�dU3�m�_������[��b�^�o.��\V����1T�S
+�����$%�)㔸
�[N���'�=ō�~���1*�t��������ع�	>�:T��h��ҝ~�؜�{��Rs`�����'�d��
~l$�5��ŏ�WM��W�}�.7Ժ�u$�
�|0]v��f],p�G�PK+_�)*���rl$�z
�R����Q��
+R���Qy��!���4�,!�.cꛅ{�����gs
��q7����?�kxg
�\`m��G�Qn5��Q��it��P��q�˟&i�W
4��Zׇi	��c�ၒ��
�zx�g���[;����
+L���|���f��2�bl��jm�����c#
t��g�ĥ/��ү��i��!�����:ꎘ��V5�
s�D��]uld!����#gxt,H�L�]�O8�3�

�S��΍��OKܾ�Z�% z��}��ؽ;K�]
�Z�)z��zyh���[�̦���:�+�Ȅ�mqu���$b�8x�c�c�{��f��\���٢�E[�����ɧg�=��|�42bO

�(e�7kj��4���P
t��')�y���[jۿ�P������+Ɔ���È���^?@HP5����!h�_�p��&���e*�H�tM�ڝ,z�7q����I\�0�ꗽ��5O~�d��Tȴ��3��
�iy��[�3
+����Qj�V`���.�Cx�uD���
G�^�?��f��f)~�f��P������
+]�ϲMc�3�B��'t�+�t�3�
+sh�#�eUYD���):ѧ�@��/lӄx;����!�qT��y�����RS�6����)R��h�cS{�/�iL�w�t��^k��
{f��YJ��e>�!G�q� zB�����

��l����>

�T�+��a�_S�96�`��+�
a��� �8�b��s*)�GzZ��6�Ƹd�
cW��+	����O���cC[��6�2M/
+p�K�,��1.�
&���}�/
����Γݩ ��X�UR
��ѮX
+�c9�朧�=�O��nW�`ˀ�s�s�j�VLt��5
��@'l�����!~=��|M��p�Qx�P�>]hhx�MR��:�p2��{�
�S��HhE
C�;������^5��.E%:fQ	��
�A�C=��5�O>�ε���5�L�TU�rw�o��O�Z.��Fc� ;����#��4�ᒀvd�Y˅h����t̷w�δ2D�`!���o�G(��vc �C�0QaNYٛC���UM�Сny�5Fxc�R������%&�|��<[�0�H����	�e����r�Z|�{㞅�=1 3��<\6�盄[v��4���{��O�l��88�6
+~�ڝ��"*��k�J�߃����<�u��.'
.p�������2@�@2�WH`M�n5a�qʀ�K�F���Y�6��@Y��k)n� �Ps�{ӄ8�8*d�c�8.�2EM5�q2ݳ
�Ӆ::��<����r�u��h�p��3�R���a���bd��<9߫�
�`cvG�A*A�%eM�?̓e���N12���q ��9�����y�9T�Y{�я
+ڛ$>
l�����ذC1�LK����	�C�O��g	"�d�	w)���Y|�_� �,�+��e�C;]"�[��a���9Yk�,7�[�i�gK\�G�N8]�g���@]c �ZR�C�|{>O*<]���W ޺eШO��[�45w�؀��vjy�}U
f[Dxc�B�Ǫ^}y<G.<7�3�u|
��e���sS-��3	~�5�{c��Tw��=*.rk�Q�>R�|dh�-	�O��2���5Z�\ٔt�1S
zf�B>m����ģ
����܂�
+T�W�Nܟ�x�7	94�H��¶��5��Z��
k�*R�W�K�NWDl���s����x�R[��B��\�;�3�U����&_�s�
9w~
�3�B��B����z�p��s�V�x�ůq.X&13G7�
�i�Ex�M���¦�@���ZbW�^,3_6k���ۥ.M
ek���~�Y���PJ|zJ�OO�w���>�\��j�X
�S�K<[b >�s���L����V�t�"x��"�����6��3tT�vϱ��gf~��5��
�w4O �� /��%�yM8��􍾻$����������� <A{uB�G# �Y��2
X���qb��:�\�S�Pp+�%��mQu�EBN?�cm��l�TY�Ј�oy^����ran%�Qד����|�VY%���F¡`�vŘ��ު�K
wW��O����*tT�1�OM��"�� =���<
+4���(P�n�أf�� �`0h�C�U�h�M�x�M�d�c�
�䞣�5�*�
�Ч�a\@
n��Z�
+9��0�,4�5�I81���M݁Y�f)%�d�G���֙�'>

�1L�e�	����rw�Y�%FG8:1�
�s���K�#-:ew���G?�3ͧ�*nڧ)�G�s}
+؛#,�;��H����U	�gK�M���d�k��t�G� {R�p��rS�S[O=��9��Y

��T�g�|ZBޱ����6��u�I��9����V)&�b�Ax�­>�S����J�����PJO�u���<6�c��}Ew7��l22�=<��1j�
�
+�~�����
#���2�z:��y4Յǁ�[�z��<� �.5&Ž�ž�	�07
��'h�*��
#�Rp��p���#���H�N@��-�'7��+��R�lS���zc�-
�X���i >G�t���Mt�s}��
tϧ�T���~�����ʡZ5,Ȇ���T���{�i��=a��"v���}��q��4����Wi�5&qW��wj訋�w]g��z�g�<jb�����7VW]�3��.�؇��i,z����1�~MU�O�M;�gT�/�gZ�'���Znh����p�$��'ek�r���R��>������5�@�gs��枨�W�Ks�H�
5O�c���׍���%6ʯ�� 5P�S
)���R	
%��3GL�*)� ��;d��s=�e�
XK�m`V�4�$���Ʃ�C䔬9>i{��*��u+�y��wF�A�qx�GI� �y�u��h
C�oW=���Y�
���Z�M^�i���6�c � �gfIu��0���	�4��y��r� �eW�U�����P�3\*J��6ܡ��.��+L�f���ɒǎh�y�ڧ!f:?�3�,0
�O����hU汊�(�;����E��������F����s[�/�05�=��
�u��l�A���hIT�D�I1�9�
�ʲd�,怜3�3���F"�s�k����u����}�S5�..�.�@��}k����{1pku̪��⎜�ݚ�VM�'dd�ݽQS7�����8�:��v
Y�ɶckok�Yi<���������e���ӑ�H��J!
���dW��փ��%�������8�jP+�X��J�[�}�U|04�m�k�e�I��(��hە��ss�;NĬ�ꤨ�� $�	Sn�<a3�.V'b ^�
��a�e����{pQì�Q�oS�f@?�3vy�
���j�T�����_�_����/֡�&a'`� �	�L�"�۲�;e'W��m�!
:+� �;9-A=���M��amF܂�ō��d���3��U_��Ra�+�cG���_��8��=����<J٥��7� N@�Y
x��D13�ym���4L;�1�,�;������%
osW�0���u������y�, �lRV
��ꕵar>vO�_C��:��sLO-�[
��ek�{uu�+������
�%�����^��К�6r�ά��v	��1	��%8êX��g�
�i~-�~K�,&|�'~�샆���]�q3�)ftE�}���[Ck�=�@��H;��p����~�ܬ�������4�t	p
�zeRXc�G��x��s�]���̫�if��0�`
�ͦ��ްeq�_�<!k����_K;��V�M�o%[3�ƀAF�;UݫS���7�S�����n1.�t�2�Ȩ��
��T֒�9c}��
�b��{/l�z)f�n��ʖ_�OŴ�V� ��qj�a�׋��~
+L����g7q�C@ 
�A�j�!���:�j>�4��3���W�3����p}<l�^w��1I.��䤽G��t���Z���}��˟Co6�5R��i��+��Bl����.8�Xe<��Ú����r�~<��� �������kÝg� ��%��CH��I��sR��
�f�=?������:L�
a���얈�G�:%���Eص�c�Ŝ}wQWﵔ�߁�%1]ׅ��m���8u�E�@ݽ�ק������Z�b�儕R�9�qzy�֘p��
+��?�3���IL���}�U
�{Pq�9�������9���~Mq#�3�`d��)�����w�
�pk�Xm�W���N���Ԣ�O*�(�r�mۥ��ӱ�2޻ظ�
���[c�S�����O�W�(!"fV=jc��
���7u���]gc&�6!!n�C�uq����:�9�r2�`����
x�e����g��ǨW���m77�/fnM5��ۙsP���NJ�OS
�ǻN�����)�qZq|6�*.8ͭp�k:�1����0k�nN{����׺���

+ڦFAZ�/YzB���\�d�U��4�hs�V��5/��:f�e��â���ߺ9F:�y������C�p!���2ź�2ů�a���k��DLJ��hg��v��	�ՄYFOyd�5l>��&`�F�J�����'u��g
�h�MPs�x��qnyD+���9�q-�*4M���#o�y���W���)��S���.�~k�n�i�OQ-�0�#^
k�
+7'[�Q.�=���W�6N��{T�Ep�V��Vm
�Ͽw;���CV	ke�u%bU��ցk����M)Z����V��yT{.n�����_I�_����x��(a$V�=������5��Ǯ�����0
��?
|9jയ���
N�.G
��V�ױ+�z� fW�VǙ%���
)�\���ҸU̎Y]1=�*�cU&,B��6�齙�t��RI�%��t"|�$&!��a-�l�Y�wA�1�sV'��G��+a#��35nSȢ�[#	��Q���Ѫ�nUx�]�_��?��M=�j�/�a�qŅ������`V�(�ez~��E��	z����_��+��ݒ�P*@��&m|�Xw�|ϛ�e�Bz��j
��9�W|r����˪�~4�;���
,�Q#�
9?a䁗�w,�O���n��.��8�i����'d�xy���UR3JBӼʤI�K�����W�4�[c:NC���@�bDϭ��xM

��_
7H�PA��i�-��N���)Fi�&$ ��F%7i����]���"�y� ���ͼV����SՊq!5�1��9�T�sި��Nc��C+'��ݜ�^A�$̈t�����J���Ol��El||�9p+f��1#��w ��A������W��}P�/�
|҃��~�4��0~�E�qBc������8|)?��ӣ����a��W������oV}
+�� �gU�
�z��$��	q
b�1~��H�I���t�)�ST�jE]w�N�"l�65"b��-��I����ɶ�1�* =5�)���g��ׂ�nq���6
+�C3���4���Ӵ>�.]zɾ���W�yW�V�����嗝�V^�/��օ'�-Q��cy�Y�~�u8���&H+�[��!�
jYU	�#=+'
����n��I�]\tq�-�t��8�Җ�T��3[w�ba�&�R�"f'�黳
�3
+���u!݇�^���A
�)�R��}��)������A�rq�.$�\f�&�&�c���#)����������1F}� d��*�m�'Hں�����|��g�O�"��{~���YIH�i˸E��sbQx�S�9�w�xfy��p��n��cD�]�k<8������jq�����i����R1P/g�rN�h�%��b��89�y�7�O��z�v�Jsni�'�l�ʥ�K@��
M�
Ov����gzvj��焉ߌ��I;%̴S�L���a
�RHϫj儰�G��eEu�N�,&� �Cnu���Ĝ�&�G��m�K?
�{[ϥ�7�㹭Q����[���5[��ƍ�����V�\�o�y�iNE|j�*d�.)7�� ��#zvM�F.
j����[{[�]
� j�'-��o��ծG�_�>��~k��L��l?Y
�z��pte�]^�'��9�5~�w�ˤ�z5c�w��̖Ց�B�SX���s[�nFH#n[
!_��-��?l
3.&�$��[o��Lϧmb2b�BF��ˊ����o=������qK�*��b�e���PWfzsh�)?�!�W�T.M����ne zn�9oFU���v�W	-�T�N��z$��QJ٘䔅�
+J@��
�z�+#�s�����(���f�'��uigw/�	�^�u�߄���]�R>nm�q)��t%l*9�ճG����DkO�<��*��g���	�e���oRF`�j(i���bVP�͌�U��E��xe�������0`iD�kޞ��N>)lbւV-
k�i�k�˧g\̶��Z�����	���9�PXǬ�}^��I�7+���B�t�J�:p3f�
؄Z�����r�c�W�����?؆p?!Ы���7qh	+�se��x@ǩ��x�[��Ӟ�埙o^�
S�Z�W3� |����9�R�q�!�����k�������߯E�v
�;�r���\�:����-��2�BS-GV_7����g�%?f����$��Y�$�S�f��M��3�0h�C.H9�����-�*=�
���u����Y�pk�.x�4���p1eg���5
�=��f��=)n�{��c܊����1ZQd�Z����Zr�����Q����U}qG�PШ`�͐..�	NJ�y�qܩ���K+��K[Z95hP��R�����=�sOZ����o�v�hУ���I��
�<eᵧ,̺�
����+���~�h?70�BysZX���S�yL;�ݺ�5��v�7zU�疁��C���61����^�
t�+��v���r�4�dk�^V�#9b�E]�� [...]
+����{��룫jvUPǬJXx�����
��;��
1�,;�2B,
����^��!�������R��YD���f-�K,���j61-�
�5�T
�u������cmG7'qg"zܙ��֐�璷��'�&ڏ���f���c�1��b�wR��Z�լ�K��K��������2%�=S��rj�cm��C?�V��ߓ��6fȠs�MKo�����?�=i=�9���sȸi�>�
2�~1�[�9;mW�C&n������g����a?ϼ��Qs^
>��f^K��?�,DǪ�
n�q�a���g���)jABG���qZ�N!9iv�v1
��S���
�3�$eg6 at O�Q��1��5	��y�����-?o�� �K}�"�������͉�K����+֬��.
g_ݜ��4�,�3o�;�_j�%�a
���떓;��9�j j��T�O
�F;��H��p��+�
�&:�&
�7㎾k� �H�S��(�<��c:V��Xۡ�I��t)	��s�"j҅�
�`�
�lBǨ���ZOlGlN���E�+#��ŧ�#�[�_��
�q\������Rjy��miiW�&Hga��czbq`���ܳ��W_u
�O�+S�wsooP/!,����{�yb�Y�iDM)J�!�-+#ؽ���1-�u�
��4���������r�Y��uՔ�	
�5jc���[3
+��1���K����c	
�&�f��
6%ne�� �.��N!N� `൬�t
�
�:����NF��%�hg^�
2�:z���Ї�зm�O[�ߩ98���l\�� /�&�[�7|7?L(�-�PGM2��K¹�������t%�R�{�N�`i����$�8b0�
�?�~ʯioO���n?�1�y6�)�ɢ~[��#e}bE�%�'
�ʸ�\���6!>`u4쪭Q�����
7J�u?n*�?2��{P�=�Iyڡ�/Bf1';��KY$d��i�MS
+�Vn�[��X������1�Z9ik��
|
+u��K:�Τ=����ݑq�hY[o_Lͩ�ie	
�!��tF'i�
�ʿ6�����+��ZjI�)�f�ݪ��߾<�r������I#�0k�f
br� ha��>	����:On�BM�S.���!
�.iS��#�QWXü:���@`�Z�ZE$�*�[n5~n
����HT�^�U���<�9�x�?#�\�5$�*Q��+_
�^
��x$�W�K{�
�e�����}�;��̿5h�k���6�i<-�*��1~L9���a���j���
������k���G�}����I+��+���
/���i^Kx��o
<������m���X�Q�R�1B+Np:19�u-<�<5,��٤�����ːÖAر6N��U�ELC)N�X
�=�����/�nV|1��p"a�����89�1=��4/6C¾DZ}x2e��ۜ��ͽ���G�	↎
�馓��3����
���a#�	��$�gV���K1
�1s���6�-�S��3[��577�xXPӯd]bΎO�M�)��/ݿ�o�A�gA5��݂��΢�ND/h]�_�}�J[8͈����,^
�=�>�?��+Sn�*��ݳ	��R�SN
> �44�r���AW�)$ .1�=���ma
�23+�V��f�������0J���f��q������Iy$� `��$���yx�q����G�Zn���[��K��A�96&M�K	K��ձ��O~5�fk�]�0�vfy�[�w�X])'�am���򳎟�S��،�#8A��&\tݯ�\����҃��A?7o{��B�
"|H/���i�:�k:Q����8�a_�襄M��
+�re��G]o��
6��a����'��kM�%�
V\G.^zY�����OV_�~�L(	̀$b�Q��N2����Z�z�+�6G:��'���a��l�o�Y���Q��mI:��(��_�
<\t�^��|�$����L���3
%�㓣FN}D#hLY�W�(��/�A�w.�
5��+�q'��6~�}�m�5���^qP��,��ξ"��OЋ�F)�;.�osѶG�
+��Ye1���2�H�SNhT
�~
Z�H��-̸�
+�.��L��ݏ[DZ�$��VFڏ.�n�a�Uӏk�
y)��q�U'�2AP�(�p$e�E��������K�:��"a�@�����8~5�$�cT V	+7���ͩn!��6OoLP/%�Rj�*$x����	�]�����^�Z�mV*��q)��\
�:�<J��}�x�(M��
'���g�]���&%�����ϼ�;GL"Z�$f,>�::����+����V�b���-�T�%
+��mžS �ѷ�b>x��O�_������S�K�Ģ�%�ү&\�=��q�D�k7���z
�L�z���?jd?^��_Ҳ��f~����qve�-ao�иWQK���'�|@����Fj�
N��gMB\��o��xmi3�!m%�V���u&ig�/�%签ֆ4Cʌ[�ݙ��YJe��v��k�'��Ԃ�I��=#�
���1i�x�]
��Wm�e��
+�F.L�S�
+�.etu\G)�{v�����>Ƹ�׌݃�]__�dͿ!�ZyE���u��
\r�I�
+h�,�\�#���Y�,풰��䂹��V_U�G��ʜY��8€�[�Xe��s�f��w#jt��4|��z_p�x>eQ�}�k�UD at l"�μ�?���#S��
���kT�?�_+�� h�m'�믰�a3�"7'�_��d\
+q�v��j�i��-����n\�4c��B��R�1�.���jk����m�R����ڕ�1‰�QBN�$���S�3�_5��~�E���bC��Z�k�A�kQ��ы�R�n
�j���ϭ�9墜K.I�O�
+�zab�sn�$6
�[z	v�KdF>�U�5�zh�I�KϚ�O����EOfVٓtI8	��Vc�0d��s��2s��h��)|��d�ɄI�I��#�
�^O�m݊܂�/�m�7�\���W-�����[��f��W����>i�s�%
+�7�i�y�M�g���	��ٴ].�����}I8?".���(�����{��x����o���v
���^Q_��� x�Y�u���+3�ᢆ����?k���S�D���>K�J�����
����5��m������`=�|;���,�ه5_
��o�k�����п/��������}�_�^"�-��m���n��Dv[�%��b/��{���Kd��^"�-��m���n��Dv[�%��b/��{���Kd��^"�-��m���n��Dv[�%��b/��{���Kd��^"�-��m���n��Dv[�%��b/��{���Kd��^"�-��m���n��Dv[�%��b/��{���Kd��^"�-��m���n��Dv[�%��b/��{���Kd��^"�-��m���n
\�?I���O�ۿ��E(�t~�X����+�;���;�"���w���P�*��ɓ�˃�:�ӑc�~�&v2�}��
�
���G%SY�5�N��}ࡧ���о��}��Q�����N
����#�
9y�ء���;y��ɟ~9t�ĩ#'O�8zx���C'~:~����G
?t��><���
;u����~��ؾ�x֩S�O�:t����A��c�Ϝ�#�G
�>���Ծ���� Y�?����c�}X��T1���"V��YLx<�裟
�"*�x�jS���Z�}XN�W
��'8�ç�{*'��k�w���}���- ��	�?�Ǔ����}����p���}�
��������w���#'>j��D
��,g�trjH-�Ls��ZvS��nJ����x%�&Ō̪��׆8����ۼ>I��Я���	��
5K�IΊ�ĝ1�����}+����im�U��T���T���f(���z%��<��H�Qӵ���_C�
Y`F��g]�#�Ʊ	���)V)��t��
+��
F��Ne��o
��6&q���m�9�&��F]LM��00k�6��8	#�.�e�E����7���Ӹ���NY�ĸ�ߖ0IY)���
+:7�h�o��GI���QƌiŸȴ���VҎhzš	�������oV�V|
n;��r�P���2Ki+�
�
��_}�zp�e���5߆&:� ���AƈhؕQ-�1�Ii�R�t�zB�nn@��mN�Z��V����ӕ��3v!J�"���욨�^����՘�[��0k�kX
m<���V1u�%e
r{�6F��1N+I�Ħt�R��R�5J����O*��Ĕ

�����g�(&FMRPϨL{����f�-b�.)��SN>>f��u��I3�1�*v<�z.	u��
�s��F�ը�Y������U���h�R��
+a_��)�����~
�dSC�
7�:P'�k�-ᾛU�܁��z�*�ӭ
+�$4�^����@�%�JEj
q��I����
=}�M�G�"j��'a��vvs����x�|�ղ����t��J�d��W&��*{�.
>n�T vJM�B.
k)��S�r͍�_\��a}�2i�&.
�^�����6XK�R������YדK�FF
6
^�ҳ�W�IgV'�Q���<J:��V%
P#7atF��°�T�	[�W��
����A�Mw���N�&ba�H(���A
�:���m*iT/��
!�Y~����[���tg^R�(K��]1#�e����
w[�^�'̢��LG���+�
��1Q���
j�����X�$�j���V)5�M�4�J�vnk��kϸ�ܬ\��+PC����
���&M��/0I8���j���/�ݕ���iq��
��]�x���ƒ�?�=��Q�.&��+a=�����6
�|��:�v9/0�;5����/ʿH�I�zr
+X���
�&&DZ�&�tK�}���K�L�$4�v��{=�U�'m��FN]TéN�95i
�9mc7f
�ƴ�U��Sf97i�W't�+;ԂUDL;%��]�L9”�w a�sCz1.jP��R�z䒤W�N8%��9�
	��;���������vj��vʧPffUװ)<i�\����SVFe�L��q��2
JM��~.h�]���!v1%�3�j�Fu�M�͸��1#���$�T� $f�����_$�Br�H+��������YLڞ��+My�4���S������]L�Yi�Q3�,b��2�T��kHJ�T��C�@
2N��#�mI��x4�!��,�FD�M:v���M�æ��gUC	�sc����Ɇ6���
�+�WMy�7"�؟v���O���
��G��W2.)7퓉�N~�Qa�$9�B�uK9�]����oL0/������29P���k��Y��9z{#V�ʛ������	Z)I��;bS�'h��)Ns��nJ�E�i܉�7m��i����:�(��;���~><&���YW:jqd�|i}��Í�?��!������S�9�vlk��X\K(M��툉]�@����c�
��S��nĢ`%֤̂�Q�u?�(�;����R
7	:��8l����&� #%
��ͱ�C�{��v���
�꿌�*��)Q��0#�
�|�
�
��m�4
p?(�t�yӏ��5_x��@MV
�s�pf�E�/��΋i
�,m�_@��
+lRA �
j	��tw��
+ٶO*N�X�	��%�Z�*��V~[�,���d��v	}�ɨ�v�J3.|Qp��P|�۔����t���4./��v|r��������H	����J(	�����I7`���7=�=����K{d��G�XSS���+�#�3�����-���Ϋnd<}���ب�U���
�L��y!�o:з�a�/"�I���Xy�i7�u�K�
+`t��Ց�o�vs�q�q��w=f�ns��jHظ
	��3�U(Q���\��<���^$�=�Q���tR��NZU��ŧ<\r�N*��SK�:~��
`��w��R�ߖx��7
ڳVӶ�t%	�6�	�/�g�>�RȀ�:Bjy��l���a3���dG��~��+Oȅם��QN��+����B��i�X���r���8��Q%mJ~�"c�����^Ԟ�P��U
�X{�����!i�eළM􊰆P����9;6�N.�Zx��c�F��P7�InE\ëM��I6Q�^�X�]�S!\xC�s�k�r����3���W���
�28I��%�	N�
+b:vu��i�j?������<.K:9�a=�<beT�6V
�uk�	�a�1�P�Y%܆^ߙe��baXי5�
�&zy�=j�6�4���20���d\	Lt��|�r 0����������&������2/���eK��5���g�o��k�
i����+����z��k��{#
��Ww�]zU���Hݷ���3
�JԄM��F~s�.㧝
+i���
�-@��N�!$&,�&�*���$�,�e�N�Ⱥ��I{Ǚ�T���
%(���X���dיm�����wP+q�嘉ך�J	��� ��-���p3
�[�T�zebԫ셾J:��j�'�m��U��RifV"HA�l�
<�x�*l�]DG+�9D�m����	9�Y!+����zz�*jbUc�&�V	+k�0Q+�1.�휶,�M����{�I[�2�r��Kq��� ��
ܶ�]е������JӠ�r�}3s����T {\���5Y�23kF)g��w���gż�[.K�l�*��||c����8�\�)��f{�����F�}�E��?
k�~��Cp�t>mfT�\R^f^u38u�;l �m`�G�����0���
�ů�nL���e�(�'�ڸ�x10�~lu����UGL�������(�p�
+5i�#ZNM� 
`�E
��U�5M8����p\#��q����)�&ZYHO�
60J7ƨ�6�h����c"���[Vџ�
+BB#'Ŧ�%�¹u���7���=k��bU �q�i��)�����tD��ST��SD��KD�?���׵��1R��HЎ�m���T΄���1
���p���˿�ީ�1eT�bFv��x���g�_,>��t�q��ä3����
����E+ܶ��)����V��:�#_�Ғ/�L�<5���
=�
Ö��O��kg||J��'&�����)˭I{o�
	��;�.F�y1?7��g���M
���8���������<�1�

kZ�Ԡa
�K);�!�2n)7�V�G�P�ä�k(h��i�¨[�U	�3�1�^	�
�[՗tJ�i�B�=�P�[P�n�I�y�(マu�/�ZN;�����i�ͱ���fn^&�̉8(�)�_-j�u��bF�&��
�7����q�p�4��+	+�&��^F

+Q����e)�������������l/�{2s|:�c6�DtN"�;���e<�_�[R�M&��1�>��s+��
@��\�R	x�z�ʖ���Ց.�u�˜�v5ng5' 
P����ګ�]!
+E��{�߻U����"fZ��i�	��
̯&����)3�-mg�Dtm�W���Y�ݿ
+ؽ<��t<#�]x�y,�aU��M�-�Q���׭�5|�u���s*����VlJ&<�L.��}��U�-���9�����>B>ձ�"z�
X�͉�������}~�|�����o��R\h�Y� �	O��Df���3����TBO-�舗cFze�)��u�ɮӁ��
�吖p~s|�LW��ג�������o{�]����V䟡\
+����r��h�QǓ��Fɗ���ؤW=�*�&��4��������ʛ��w�'>��n�{Z��� 
O��w1��V~'`v��i���]��]B
ii%
� X
퉂fO�hW�.�8�(⡎���7���D]����Z]����ۭ	fY֣L��])'�=�`����m�U,�Ҙ�Z�t�k2>.8�v
=D�7v�v97
+���ъC&Fyz%h$�9v�*�냝yyw�'��g@�eg�p(�15n}�
R��P��c<���T�~E1��(�M�9�Q3������:��i@@����`���hʸ�U��c�ιM3�*���>�<�S(2�rE�z�<"��*T�y���;�|��{���C����,p
�i�W)76a��
��ݴ5�?�XD��C^�]�0���1n����)3޾_A۩��o�f)}~/b����4��N�L���a�ʒ��o��CG����o�~>��䏛����z^ÊZԠ�����v�wq��5�eV�լ��1�elҖ�I����K�^�d}�Q�9�*�D_
i=�5�x�?S�CX�|80�|8��jH�������'��-L���-����U���U~b�V�����?���@�0��w+�\{�vt���&�sc�����u�W^�~
<����b!&aW�)��
��(���hǑ����
�K�����{�!
~$	

�zֱ��F����t>abV�lܖ�jh�Q��䜄�׼6�~�q��op���	'|��~Nh���n�8�i&��2+xY�J��KYa#�,b
�4뒰���~3�q	�Ӂt�
��.�6�
Mۉ��T�^�Q_�ݤ�w��� 6C�u&1c�/C�H{�����
5�x^bǧPa�����0s��w��w��Y�R�q�^K��n% �놈�Y���@g.��
��||j�'ჟ #vf=�`5�
�2�3�I3��!�%㥜|B�
z�-f N
�#� �e����W"H88
qx]�O�V���!�(hް�Q�W��#F��8��v)3
+�W/��<|
��u���2���e��\�
�_2s�kY�~�9�
���l�a
��'�RJS�g�^��\	��N��
��FQ;��o���������
>�,�~E�bv�Ĩ	h�	[�*����y�
��z�{G��ʨ�ۈ�A�Ȫ
jWB���Ԣ��ךr���kM�,s>jٿ��t��H�)���
�":%��'$�K��k#��
Ƈ�#m��K�4~�."&�v�_}<r�<����Nt��
�����Z�
�p�6�(�Izih�V�jY���װ����V�]}�;�ьhi������px�
��3/�nk�z1e��AwB]7�	%�&懦�&tm�3&ba�B���͹����	�%1�����i���GHK��
Am�ሖב�(e�If	�gMT��@��zTϮB��F��T�饷MP�����
�(!'M"b��Q�:'W����6��Fz��()/n�2�ށ���Rc�ªKXD��D���P��W.Mz��R�N�������y1�$�b�esss�/f{ͺ��|��\{��0��Ԛ��
��U
{��xT��5K��$v-/�
+€-�j��l���zEL��m��h��,A���n 
���r�|�����x�d��iK{9
)짛OD�|��
�諐��[�(x���[:�>�)fbU���v��-���m�y�a̴c�����Aob�)�SB��zoAβ�L
+���
z��
>Ŧ�n����r	ش�ܼ\�q\�&e �Q�飠�����9�8㕉�v
��m����`��\}w�g���}}�c.v��$����?�#J�oMd at g%�r~�r�e���v�x3
����z�ʔ��'n�Q�J�X�TI��	z\G.�А�7'E�YBK;����Rl�߀��3*�Fھ>ů܂ZZ}�vxk���2�٠=.������� ����
Zy�~40�(M[�┥�?�6�w�щڱ�JQ5�����l�4O����su���m�R	-a��b:r����/
��1<�_ͭM[����F#jO���j���S��Ŧ뾏���"�o�H��#mG��v�����S�
�Z�:$��i��8�Y7��������Ĕ��VHM�������h��Q��u��ے-�5E�
_�5K;��_��X?N�~D��:ljx
+z'
+�4
�v\{�:n���;io��x�0x�E�O{�n>J�+i�g�3d}b�a��nVSv�ә��w�{n��@���CMw�^꽱3���xĬ�C�΁^ڙS]O�zL���NZ�|�&&�>7E!ЃJԥ���uPx\�*gǭݒ�s��ʴ�mm�u��g��
���K�̬�
w�qt+��_5a��!�d�K��zŜ
L�y��I�R6���m�R)?��(�P��n}� Z<X�!$��{���^�8i�7�Xo>E�==I�B͊�������`���d�(�S� h̽�X؍YXìg�Q�{�u��3�逨^��a�g]�=a���>%l���M������¶��	�L42*צ��[:�`��?87���-G�R^0q��
�K_P��4▴])N;�B�u�a���Ӑ5�rd�S
5�(����"�Pװ6)�R������ؤ��U_��.ƭ�����<D�+����2~��-Oڕ��N�_~�?�>J8�>�,^|�?�d��a�D���
�v' �̼�ŗ�_/<��
+1p���c��}����� {����	�s�m���'-?����g�CÔ����Z���)?Ω]
�8R����r��e����8Ԁ8둰A��צڏ/�i�><ͩ�ؤB�#���O8e�v��6䐳)����0�[
���}���I╸IԵ��t2��b�^E�P�I� ��&[oi(�)��݈�o l�Q���(�!@�֑���f!>�S�c��w�F9
�
	)����(�y!�ݲX�~Y$D\�� bS��P�
Jq��s
��S.�ƾ�W�L���_�i[���K�t��-�jk{�x�w�P�}CA��w(ez1��u!��d�2~�'�!6^k�ȬJ��̼���r�9� `ⷅmR.�*���q�S@�Y�8Ж��SDI�����
��d)g�����y���$�ܼ��?=feA.�wb��kQ���r�
d���e�^�@+a��s���
�he_|�|�#��s�m��'�쿙�ʄY��[)��H��5-���[�
~�Sk�;Ogzy�z9
+:�
uH�	��
6
:�ۿK�x
q;�-f����V)3i
�
Ъ�+쒜�wh{^9�[
�n5n��c&qWP˩���
��|�q��0�ug���w tv?j�1�:�չg��CjJ��4�hXP�qJ{�b��ل��I�1�f8��o'6'腶g
�DŽ�o���o{�X-s�P�q+�fc������X�ѳ�Zf�ڋ��NLJ[$���Y?
��<�����g͇<o;���}��Y���
4�u	(x���]��N%L������~X�?k崿[�)Q��]'E���i
�q���YL
X
��5��?����f;� =�
���4��t��3S��ς����i�����o�>���)ϵ�#�
㕨�U�2�y֯�W��A�1��I���s跸�w(�q�MDk������J�_��4�X�ޞ�۾����'���^��σ�l$��1Z<�)��*��6�z����Ƹ|5.jKXh�QJI�,�|
4[��ܼrm�+E(h+~�����l��\�4Џ�炂���Ŭ"Z�6
29�$`��V�K�f?`�Ve�.�A�ʀ���>݆sHX�ǣ��!5�k�
+z
+z
|�%����VS��3���Q�Džu�#C�M~M�z��|=��ye/�"��J͈��w	M�@�5���4�近��?H{��a�����rpZ瞷��A*�n�\��K��=���G��
x���a=�us�Z���#zI��i͂�M��������q��_�9í ������,���+!��b&9-�,b�-Mt�p���u`�ݒ��1)����,�{t�N�$!Þ]�
���"ܖ�U1r���4G
���Q���e$��/X��[~�y����a~�U�7�
7&���7

OүflRv�*��GxWs�>E`��6����oe�w�&nkT�,��m�V�t�Q�T���n�,����מ���9Ww7����M�B�ɍ����L���,�k�@��0�i�g�,&'t�lRV�D+_
&�Mh��4`�_K��X7�1���uĦ��Q���v�[����&�y�u@/gͿ��
Ú�]J�=�!�G
zl�
�BL'�"�$b�3#f%?f��s�{6� ��ǻ.��<���	s��w'aS.
���p߅��v�s��_�.�Ӎ��r��o�[�Q۵��%������m�g����q�qb��Rnv[�#��%��P�����M�pe�r>0%���{zVv�R����Ӯne
<܆�۰i�ԯ�eKc��!��8;B��t�Q�����u�vUo�)aEm|\P˪�I8�5!n�0��^�����^y7�U
�<
+E�+�N��E�Kc���G��C���J�>MϩQ�
���G&N����o��20��4��I��#�}�
s����F=����Q�r����$�ܫT&<=ג���)o�=��'��QQ�L�nA�L��F�
+Ѷo�!p�P
+�2jv�mЅ���O"�Y�c|���kE����AN����M
�r~����(�B\�o�:"��;�L��8��p4b��Cv���4Oyh�}5ܱ:B<��p4�4F�����[�	Z�jA��[z~x�[��%����0
�
>������]z�ZA{@ͭ	k9��q�y�hTëO�d�
L��o��O�>lڿ����[ܱ���]���M �(��z���
eLˮ�i��δ��w6�TnN5
�t2eﻕ4��&#n=��=/d��s��>>�V�Zz�I˭g���b��4j�6�ڏ,������q�~�t
u��#V)g
j,���E�t�5����x�6f$�
�CD��9�Q#�6K�@�$�a��f�������C���
�q��Y�%ؽ	ۍ�1Ǎg�ϜC���n����0�`��4x���[�
\�;�B�>��B\"b�l��y�]��X
��|�4�3���	lm,�C�
�5"���������P�>\�Mh�V{�B�"��f
%A����%<
+i�&$΍�� �Ex~�x�,�^Ԫ�

��s	)q�k~
�U@�;oO��[1��w`�_�g��F=��={���y�c�^��-_ױ+s�}w��1�{;���;z-jc�e<f�`K�#��oS>��
ʡ�O�K�Ŝ�S@�H�)�T�������������+צ��wQ�Ӆ����8���O՗���͹y���&�;�ʶx��3�:cC�.VDDQ���;!H�'�^���{�$�A�
JB�{�{�ۙ��|	�d�������>�Zʠ�E ]�=�r('���8� ��"�Q.b�|��z�&���A��n�
f4�=M�����a.�k���o~���Jl�ZO��Bcȣզ�w�&�1ƈ7�pL�N7���I.ִ��SCG���?�����k���N������!j���l�#�z��?B���g�K��c�p�h~	i���u=��J�p|����<�S���1L��p~��H&cw�9�
b�� ƞ���3FJн	.
�V��8�d��t0��ٗ����4 [...]
|�� '�HA�9�"C
2F�qR�5a�awD�6�e	�� $�ݡT�#�'�Tl�i�u_ʂ$��#9�h�bG�K��#�C%)֨�$
���5��;�9y{���{��G��J��
+6�d��b��
�|3�2�G����G���ӏ����SL̉�s���Ԓa��)�C&l{�7!d�h�����L{�\ꑜ
+;��c��l,�
�#���ja��tvٮ�Gҫ�l��>Ϡ�
���#53�X�^�Sr�M��W0S&iIG
+r�a��>�pY��
L��g9�#�����
+9Љ�@[��d����5��\5��
kE�)&��(ā
+� ��|N�i=��
��k��y˘����\�<Te��Ul⾆4��t��3�Nf駳
��4&vq$��|.��l>�h�Ÿ��~�����u2-��Ƣ�z�U��������-ƞ�oZ�>��L0���$.d}0�y_FG�ƺ)���6�?�
	p�@
�*�I�R��~0�z�-�'�m�����RߒbN�"p��%���a��~�7A
+;Q�׊2t�Ę���I�� h�}��
���1_i��=
��NU\���`Ey��z��|�Vg�k]ģ�QBܩ�K<�Qbu�)�
/��Q��n��\k#���|���
N��g&�;�D�h��=I����T�#e�LO�5CC�3CM��e�Ͱ��S�=:po�q(�aw��~>bw�q�L�>Ӑ�6ᒏL}�ᆄ���d����\]>@�C=���
s_F�������?��1M����|����9��U��C-��,��kV��
<�A����SF�iM�'�ΧD�j�i���T���\��Bnӑ6�ܴ>{>-�g���g�E�g�I0L��o
�Zm
�>��G��pa;�x���L�_u�L`�c\��0=~s(�Ӡ��b��Fua�!�w'��|�&��t�C%� 4���S����s�`��fDٿ��'�4�QC�;���gIP����Sec��2�!�������ż����D��Z
�@�!��z�������.fU
�H	GjZ꩖�
1v��%�'i�#X�}S��l^��l~��Lz����<��#�5��=	y>�]y<��q����x���
J�||'�R9� ��4�"P��L��6��jD\�L(��G*&�0/���
��DS
�����
+Ŀ2J�����Շp��w�J���2��ƙ�cYfѹ2��OuF6��i���%�ԟ�)z_
+��x:�(�6ڏ��
<����G
0�W�d�v�x��
Z���u0r
+������ ��LE��r�(塌��H�Ux���;z�ԗ�j�X�
<Ӓ�z���u��lOƅ��)!�H���+X�M�k{���#9��&=Ӵf3Պ�|��
,ډ
+�#�x��C&F
�q!'
+bWFJ��9?md�?7�r��y��f >g�
�NF���u
܎
+䖄=�fe�J�Ε�{�����k��V��4�C���1�I�`ǝ ��k&�����>V
V1R��T�i�W������Z��g�Ĥ-�Bࣉ�;�ؠ#�3?����� rŨ��~6��|>�&)�*&�@�&�M3��g���9��Z��·Aܷ�D�G���&rrwǿ�dߛ��lO
+(Kc���az��Ta�h#ô(�`J����*>�d
O���XC��K��
+.�|>��`�Iܛ"D�)	�2\оy8m�+�;_�m>��,:y�s)��t�/>c7�gZ�u�a`
H��	�v��#����q��g�'�5��rvOJ
+_F|;�d���P��`i��Mv��lN��l^�
���nTq	G��b��<ЃG2����
��z�+�b ��N9 ^h��suf��Tf��6=��=�b�M}�� �'
~��fW�͋ ?
+��3�C�s-�iZ�6ʸ�7���������3uV��2+�xR�1�����'��9� !
K3�FYQ�����#��#|Ծ��;1?�bSv�t�B�NJ�/E~ʼn�C�
��H���m�!�0�|��;\
��ts\�� �]

�TMN4���t�H�ن�竵���2��T�g�Am
)�gS�U� �Uy'Jg�� ��?B=RQ /�S��&��N�"��x��R���
&
+�_ȋ�M���*~��F�����a
+vKJKؚd�nL2akCԈ� �?�=Q�1�*
�|�K3��� )`m�

�H���{���g
��?�A+��L{kGS�u'39�7
+��O �,���R
Χ2r��ل_
l��
��ioz��1�C��L��
N��@G ��<�+�96�
y�&'��I10OFM�`}�
w(+(�W�tUy�&lP���`\�B�!���S�geeU��S�#���ƒi��@�g��p�(��
+6�x��5qe��'�/?�w�����;����2
O��̉
��64��
+wU��s�Ʃ���q>~K��
k�ȟ�䤟SԴ�!��/��
��?Z.�\�H3ʩ�; w�{�
[��S5
~>�g���
�r��1q0����0
�
�Mk㦾��ش�{��LH7�q�FaT(�j
	x3��$85�t��p,�f�p�v��@�rp���#�p8��AM2�����y���Bz��Ph�x��8^�B�s�w��@��
|;�d���[�ƺ,4�ڭu�~�v$1w�9��Z��h^��H&k_�����
`�7���(5�t"��kZ�9ے�y��
+ݗgN��sP��f���:꿋L�A΀-�0�t#�d������|0A�
y �ZB�9
�ş
}6�g
�P�>Ӊ
+�oB@>U���s�Φ3
+~�p�Rl��G�
�)���
�1|�q�m���j�Z;�y��q��Ge�>䩦��P�_e���O����?q:Tqɦ�m0��=�dvΡ��4�}nQcv�؎U�8�
�� ǘ�G
+ҹg��B�k�L=N3��S0�?x�s.iw�	U5 ��������
�Z����s���]�p���f����S
��s^\|�(�~��Qz:�Qr$��Bfٯ����y��`�G���>�9���]EV��6��c�I�M~�L�h2�N���We�4�eFuIᆭ��H�Y�<��
�gX���D۵>!~{�^�����3
����{� 0�3�P`:�r���ٙ��
h����g���*Z��#A��iI�̦g�o!��� ĂG;T�� �]
���Lå�O�S��Ԥ�?��8�3�;JFڎ
+h���6P��6E"�6<�r2���
S��}d��z�h^S����
�;���
$
Np�����N������sJ��s
j�6�a�
o��ǃ�A���sL�F{r
nW�7�s��HE��p$g#M�Ӄ��J�1F+mk���C
Z�l
�}�Ĉ�Qr��%zc�
�L�Ϸ⽗:�� 
 �w$���J��Xp�d��˂�u�v'D��1!�2C�߹��渠VhS�
��`� �ԇq8A��5�&�_�����g��a�^�OՌ�C5�`��=�
0����TEM��"�) �*�
'E�K��'*bԑ�/g�
�҅'�
L{����xuu�uMУ��g�NL>|R�<�g��_؟�SN��<����Vǁ�O>Q�b�4����C%nһ*q:𺀓)�]�kk
�y�b"Og��� פ
�Xh�#
M��s�'4�yp�Z/�w�������	��Sy�'s�Of������u�$F�*(q� ���8�_
Œ�
�5@Ձ��
`��
�5�u�)z�)�K{����MdgNg�a�^����rN��C%=mg�	�� �UU�����#mN�|~�aa5Tؾ�/r
�?�wUŭ�@�
��:�˩;�M�6��)�.�H�g��r��y��
��Lv��Tv�Q*�
��T�[�c5�D	8���i:���
+�Q�υ����������3<�[ځ��`���
���
+0+ak�G8Te��L�w��5�&�j�I���r3�n��m���Ԁ��7D
�"삿��q
�m��fػ���W'2B���=�2a��?�H��1J����p"g��
1�vG�L�8�Lg%
��0=Z�o:�A����
��xϭ~��� 3j���֍q2Hp~���
��qr�� �K^�HS�j�����`���#��]	�K?��t('�l�R"t}��3����g �'����w�۽ם�ۑ��K����>������AJ��-�'���2Z�fO���&�[C?=�xBD����_~��V�~0N��
D8G�?�<�OmVɉ�_�!�������g���<�v�e����D�!X?@�;V�xS�8�&�@�
<>Tq��Jr�^��b#�
KI��ٙ���{��#%x
R�/
{:�L9���� ڛ�0�E5�K��	��=9Ǵ�}��?@��n���,�
�w��GU,��4��-{8A��
�=ve�s-�xn�/�<��*<5p��*>��*�g������L=��5@\N�L<$�<���4��c)�HII��u
��!���s0�[	����
�p6�"�g��ڕѡ�@KoH�)K��@�,�Ш���
��-���
k8���M�kw��<顂GܕpRWz�g@'�
s2�F�
����#)1�Tʀ�zLOg�J�f�JL��9�g �Ǔ<�����
�D�w�~^jG|^lC:�0ަ�e�J�<���=�b:�+7�{��}xMY���:�����Ҋv���y�
0��:�


ɖӥ�W�ow�ަ3��q!i�	�uw��(��@^�0�6��ަ��
z�j
�yg���M�Y�G���|Lk�� �W[v3հ׳���V��01�@J
[�A|]�@8쌐�����qR�����I��T���Ɂ����qR���mo�e�7��^?��h�z �Fo���Qv�!6l��~�9��a�s4N�7
�|��� �0)t���?̃���G�<�� �7āmt���a����خw�?�`�w'��F�i튖 �
u<I�6���i:��2L�A�1F�R�<��gj&���&�2��B
#�P�L!{`
2.�8�N7J3��aF�q��8�`���u��	)d��u���dw��3H	>
cB��bc~�����N��f'��8BO8�J�<
�d�K4�2�����aR�V�e�
`� %xo��;��m��Rƹ�����C����8���O�,�q�}0��� �y �i_ŧ�M�#�b���~����#���s`�n�9?����f�ϕ

ٴv0IK�
�-��\�&���̉�Nqȇ
+J��4
w8�@�ɨ�[ 6KmD��*ܧ�:��b=�[��XiM�r��
x�O��u0A���h�)
�m8��AZ
��V7��D���wV 8W��eƛ��d���J2�
M̀�a!~�����K

8p���
��=��B��>���&���r����;h�P�

�;}'�}��i�
i��F�Zmflvr"V�h^����"��z+�u����F
ˋ{��A�4J��[�D_P�>+-H��V������A���%����md��g� �'�	�:[nF~4��\
�f�6��8�p5������B�~P�s�� �.5c
��p_��p�GF©��Й���Q�w�����=��_6Z��V����lt�}\�"L��[n�ڝ�ؘ�aBЊ�;�	o7;`��;�wV��ɇ<
���p:~{0
��ϊ��J�R�&Y�֦��֤�]�B9�ʘ�g���:��
��
O2��
+fO‚� kZS:S
9GrV�����-� �GB�����ړ�6� G�P�������o�]��
0�W�K����|7�юk-�O35�7�����p_
=���M�
���zq
���s�8�}	���؜�e</��̏�w�V��b]��B]ʻ�Z���V�����l5��I�Z'7VU��S�_�բ����観��F��;��.������J,:Q
8�@3A
o����@
����hF~^mC9�SA
���%<āi��߳	�o��qOU%qOv�p&�7�ߟd
�"��('y���6U��R]}*G�wR�N��=�ܡ�"%���-PR�'qA;@�/u����ck+^mv�
u�xo�ٮc���+�"���(=ȏ�~Z��="s�ȏ�i��u(�������r$�&l�=
c��c%~��sۊ��X����F��b=�
`�� =侻��m�
�y�a�)Mz)�M|�T��Y����V>/T�>/V�>ϕ�lWH.��(��f��V;�g
�
+�0�^F�V=x���Ԙ�a�6�uF��~A�-My���F��6�I�~K��&��lU�Ն��R��ˍ���>b��
�7�G��q�-7�&\iH~�׃v7�b<g+��-���-���7;)A�
r�Zs��V;�^ߝ��E~��C|
H��Ґ��S.��ri�1�r��~��Ճvց���R��HAkmȯ�!!�0�����-4R��j(�3��S�0���Tk]�go��ގs=�����Pҿ��
���5$�s��
+�0AKܕ �6������C�M��?�.Iz�-Oy�-��Y��|�1��$�Q�]�����z
��tE�s��oԅ�g���#���#�n��;]�3��\���ץ}��J��,�|���*���h&���$[.7�~P�=��
F����\j�9MU�����;���gt�$�������	��m��m��
2�=�
x�$�8
�ށs�0q\�m�>�J��@U��d�
�i4�N]�t?
�82VڰߴU)����N�?��!�
M0���p��nf�q,?��
�o� l&8M�A_��n�P}~�)I��A?�|��S\~N�㷺?lt$ۮu��܊{5�
xg�>��s
+�����ْpR��)>3i�Kui���Io�3C�T�1�W�Q�5h�a���z8�4���/%E� �W[-�*")������
&�m�����J}{��ڔl5W�TVh�Ju����r3+�v1�l���HpQ���%[,Ta>��S^���o�����-��w3��=���nv�B=��r�~� ��Dv��lU��&���a^ċ�F�v3|���4S���)Nz�Z�r�G��zm��z#�A�=�G�6��ֻX����w���;����p3u^��\
�u�0�|��P��Җ��^nH�YmJ�YjH�R��^���懲^��c��Q.�CB�N/��M
\mǻ�:��P��^��dA�9�ﰵvV�|#�s�;
��*�_n�z�T�^)
�*
�
Kr�
����m�R��A>mv��VZQk@�.4�l�UI���Ꮴy�f�"-�0~'
+so���ޅ�6��B[��j�
�a�đ�h{P+����{ݔ�-����XǕ���<�b��Xfؽ�v��֐�>�K�Iy8�����/=9�
qk"#�\��p,=莲��
+�k��n贍v��dN��
Z��f������6v���j��b3�CU��r��
��!x�������8��ss,+쁢0�Y/��
`r�Q��o�ӂtݴ������⸇���#��[����H�?z9Q�uX��>N�F%p�n5_07�gq�Smu�;�<�����՞
�����A���Y�`D�
��P��$�]����7��)d�6�c�#����ϩ��'�Q�����O��h��1R����O7�	�;c�t���
�^�#Ṫ8��BM��a�.)H�k�7Mq��L,��C�����[n�{���J[b�P
��8B�.'8�׵�b���\�Ļ��%[M���
�ώy\�r�Q���j#�s�:�u??�z#�j73�ڈ(�v7��z+��Z�8����E�(�v
䴺o//�~<�
n&�
�3�
��C��2$�y\KyR����J+=����H����H����a~�v��eE��Mm�]��w����m�� �}[��[ϕA-fK�_�sbJ3�͵e�/�
�KUN�	�.�a�7[�s5�O�
+�Gm�S���oUI���6~�J#p��f����Fr_m�|YjJ�]lH��Vľ��
2��?UNs�T�
��H�s�H[u1�BS
+{%�Ox:(�R���L���Ԅ�\i��(
�OF3��z��7G2���#
��G<[�H��!�3o�{�o��#��^�����؇ ��p|�na��F���lq0D�]�O�]��טl;S�p��R����l��K�(_�
�맄l R� -�����og+���_ڎ��<��Ѥ��j�?.7��Te��\�ceI�����Z7+ʤ�F3�o-6�
T�pK�w������PkYn����
&ΨJ�4$�)�K�Zl�M�&[�V�Nc����f���g����/�֗'���m!xus��vP��
��T��=���Ynv#
�������WU����E�V�
�����Pf��vJ�vR�� ;�f�����d����N��4;�L-.�Ƽ�\
z��-�x�-�4�.�>�V!m�sm��0���t���;H�]o�^���.ԤZMU$ ]�p��`�{�і��d��qJ,�"��c�,V%�Q�ƾVO��?(��2Y[�܄�N!l���������b2/��4;�l2'���0 [...]
D�?A�.U���0Sa�(
]O���F�]n&nI��a�)�{:,
����R������)�~)�5����*���J��r��b���nـs���ph�w�Z�G��n�
���&��Z�մ�v(!
�����^�����+�����7ei������:��|
֡/#�9��fZ�+]'-dL�y]��g�(�~�E��)K���Zd�T�e��2����R�t�[���T~��n�_k"��1�	��kG}�
�}��_�B^\Yh`D�K0��#����Y�O��܈��)Kz�)����N��.��k�Ӿ�fP6��IK�8GuY�3my�E��Fn���^A�R���2�����4���g����=����IN���.L'Y�_|?�
��V)d���|�Fw������D��u����tmڗb|�SQ��ݑB��j� e��ޜd�\�z�<�m��Umy���0:S��:U�b��5[��֌qY���\j�8L~Oy�
�x�(���� �%
+h� E^�uA������0�w�
咕�x���
+t�� ��tQ�MQ�y/���V�g@����$n
+�b�B
�	xT뉼؇#��������*��o��û��(K�A��9���eI�ќ�ǽ¸���p�&Zث�
+|��p�p���+-�x(+1W�F?і��Y�!9���^�8�Y	wZ�
��%>�̉}<�
�R"
+�K��p�*�z��9�z�
��/e:�L.殶�}��N���� }��n�~W��h`G��6��Fx3�H�o���(K��[������_��:^_iO��O�v����f71j�e�.�}$/�1W|�:��d�x{T�p�㒓�q����
&/�� �e>
4��"��xn��z���L'����&����fBĩ"+_�O�\�<Ϸ�>��a�ѕ�QV}=R�q��H|����.4]�RmW�_W[�ߦ�F����@:o��CG�7k�.+-�ȹj���
���IF�/)
�Օ�MS��8�E�SU�mgj���q�=���S�I/wz1n;�����ȷ��wW�˩>��.F�_â`��
+�;P��

��nr����//�y��L���!��Y~��8���ԏs�i@ǣ�%y�fjQ���З�Ԡg�m����'ݬ�}��=��{���gm�hE
�-���5��w �H����
���N��UqϧJ��5�C��U��O���~�����Nq�'�@�c��e�~���n
�]�a|��� u��'43}�eǾ;�
�Gr.~���;�i�*���ߥ���X��v_Q�t
�J��
e�:q�k t]D����Da��X��DO��6|�@
���F-bg��ٛ�1ߐl��
�d�{�3� ;EوuQU�}��aǭ��Bk��W��V�
)7��Uզ}[�����
M�E1�}?ʼ���dv���.���,�u0�%X�×�D�:���"�B]
�@"����
�V�t��-��/�QC�r���V�}j޵�Kmd��Ҝ����D���̵�;=�qT�Yj@�ou2c�;��SepKyv�!AԽ^v�nf�R��Jk&BYFv��|�e�?
��-ώ��� ���ψ�(C���R���Ћ�xWm=�~���1�Ah�q�F�1w'2�
���؍eE=��Ƽ^ia�*KQ�s�8����Z
�e�	���H6
q��aNZF�W3�\����ۣ��5�y��H��^��� �wo���͌��b�3��{�����W-d�+�
�������
����-Ua
����][�� [...]
w\�{1����Le���1!h�������T��b�aA��>���5��7j(�w&
+B��K,��!�p�;��۽!u��06b���i�P�NQvo�2��R
?��w0?�A7@�X��8O~O����{�ܜ�0_�`%/��J����+̓Zkk�N�MD�5�-�����V��`N�.A�{P���AV�f+N?�G̃����Y�� >|z�*O��W$�H�k'Dw�^H�"/դ|YkA������*�(!G�u�}mgy\��B�F8��]��&ԧ���ۣ��qĽ^�ﳥ���������fZ���6��
+�����wcAw[�ο��}�Ȋ㭶@�
+b��YI�$d��,WڨA����t�ސ�؊u^n'��E�R�z�^]
k!ύx���H���
��:i��*���p~������A�қ�ڶ��vG�]t�i�+ ����{Օ,�w����'ea�+Ӛ�r�AY��f�i�m���$�4�����Sm֚)>�md����|#��r
�3(�|����!L<�zD
�tT
�t\
u���ŁN��<dE��m�I	�k��r%����̠Kͨ�ۃ�ĝ!p�p�}��})��.ԍg�a�
+����B%�^[��ֵrV���}��۪��Wk�� 0n�ь�;���{c9I��O�S�{C�C���'�SvF����Y�S��/�Y� ���gx�=_��i�ٝN�m xH�G?�o�Z���@�|^oaou����^�rB�nwr��C\�ls��&��[ �6[	
�
(��>*�]b�B��N�o�#<�X~��N�����W#y	�aS�ֆ!6b��4�;�Y����L�ly�+UQ��a�Ǎ.η[��	V�=(��
Z�L�'�tk� �K?�J�'�ifx���T�żV��x�Ս�U��t�oPa _
�_���]�L�$��oKs�oN��х�Zm��yy3[G�ܓ�W{X1��Tۙ�4�^Q�v�׍�n�Ƕ\̟�#'��X�R֥yR7����x��6��4��}B���t׻;����6�}�4���z3I�Y��^>lw��j�ӑ����1&T7&$��}�OF��
��["��7��,�Bu��.k
�_OT|�Ϲܦ�ql�=��<��@��kM'otтW >����Q��)��;�9]� ��ˊ3JIK-p��f��J/�tvam�
7ߐj�ք�4]
�v�9�zo���&���^N�|
'x�U� +�~ ���J=�a�
���cM⫬
+��{��f�� LX�$N��Y��B�v��n�
+�_�UB
�Q��}���f���,��Π �ց�R��<j�9����߭&|����t}��
�S at p���6�	�7
���2t_BK����O�B-�jŸ��z(g#�z(�[�"�~4����
+ώ}�I����
|���W�����u3�U �*h>w�����m�k�q���d�,v���1�ے
��Pk����!��X	���'lw���PKMh��V��V��I�ߟ,EحtЃV:�~;C��xos�����{oI��u�-�A
r��A�=��X^�ceY���>F
������}�@3]
��Ɋ]�G~QG>Q�%��o��-��c6{�(�m�u��R!�Y���
j�c���Z��=�M���ڍ��
���X0U-�nHL�bV:���j������
�I�k�8_��_"o������c}�>e��1���� }P��0,��s26���[y\���nZ�|5�8��x��t3�o���u�N�X�&��V�>����K�D��AR�F?1l���1�'U
��E	�n���yi��X^��>ۆs�j@~�I@�(Ģ�Z���$��M?�W��/"ik��_�5ƼPU�=����=V�s��yJ����FYN��$����}���VV�b#�GSGu�A
+~8��|�5�V�	�e�/���oK5T��Vz�nH�����}�e������B�z��a!ns����O
_n%����|���Q?I�R��U�
�聛-���6a����/ͅ���&���d5M�Ѽ��C9��S�D��N>�h,��щ�Y�M�ӔG?�T����gpN���O�z9Qφ��O�,�L��6�M������p��)4�m���-6��ε��ֻ���촽aJ��4��\5't��X4U�
�d$>8~���s��p���FY��� ������'��<����I �S�V:�ӵ��˽�-	�%������
Ԕ;B$��[m)_�[a�%����.r��p.OS����\#zgH�Z�Z����V�A�	jKYP�").[H�.w2"f�NK�x_� +����v��|��B�kwX̒�Y�
+�,�%)vK��8�$����uX���g�]��4'�(��\�&.� ?++�6#�a�����L�!��z/#AZ
+}�/�-X�:]�u�d�>^�G|[o�Go
�;��t� /�{�N?7e�.�nD
p���w�W��HV
�n�`zǛ)��Q[���P�]�pmª��}uX�wk�.�r���g����槮6�B���@���4�]��v��h��
��l'
6ՀK2�e���k���.��;2�P��k���mdQ����BX��T֏e�'�� �;0���(��
b�F?5�@)��X(YU�۵b�J;9x{� }�7���&JP� 8 �����~4&�X�	�V]t�e
2�^UJ�N<��6��\�
V�c>ϴ`�4
ȏ+�
0�y���l�BGF���4UMuҔѿ�Vr��e<��
ꇌx��
ؘ�T�����~�d�i����� ��;��
iCŸ��?(�[C�Es-<�2�;{Cd�w��4+��BE�;];7f�*=b"�b3]�r�p]�~�G�s�K���>�D��q&�r�<#q�Y��Ԅ���Ό���麑��P.o��
U�&[
��h+�Q3�%$muv�t	�u�::]&�.�z,V	�`��t̳t�}���ْ�6W��2[�b�!EYea㞲�N7&fHK��+~��_�
	��2���(��b
�f���F����Bכ2��|��LYf�����o�%,�rCƲ� =nP��;ʂ���
�l7a��
�6(H�
M�G�T}� ��Lt��L��wR�CB�j�(�
~�uK�C��k+/��ͤ-�#>k�`��:	P�d~�a2�lO���9�M�`&�Mddl��)F��֓�М�US������5�
+��f���Gcb��r=/y�� s�-
7[Fq]�a�nw�f����9ɖ+�$��v��~�
��n���t��njk��vF
+�M5�
���v��
�4�b
�}��ꡭ�y�Sގ�S�LQ<�%x;��[��跪�{�J�s4S<p<�ߴ�M�Q֣\�$Y�mEi�A�WePs)s
h����x�}ez�Q�S��+B,4ЃO��5G��k��=_������k�x��G�i �M�	���kiw�I�e&��A�u�-�����v��!����q���_�C>?�s����>A��F�߉J�9�9+�̸�*�Ǿڇ�|��
1�Y
�����v;
}���w� 
�
�0��
+���7j��o^- ~�//� c
cB

f�m�8!�]<���ꥭ��,4	�բ�,�M-
������K��v	��q1������%q����K1?\�|�
+���
���!���B%:��t%/d�#�ޗǝ����ki.���y��y�nm
��Z�V#1�^���~Z�K��=%�f����w�A�ݺ�x��"'��Z
;鹤�x���d��rve�	�U����.t0Rw�r��-ܨ.�A�l4k5��sblK��憻_��8]��z}���O�����ߕ����!6qk�K�Iӹ���n��B��&��.l���4��t��`�w�Q����'�	^w�n/��������M����YA�f����
�8'm
6n{��ԍ
+	;���:ؑ�
�@݈ �'�6G�qʪT�ጤ�y��
�섐�P���h~>�q^_.S�\�d�x]��f��B�������y�W��[#b��h{�C�8ӀsQVA
f�0��r�����!� ~��BX���\�$��@��̈��
+���c��7�k@�����ŝ��o6�w��]��Og���Qb��!�n�,�ʨ�0��Y�+C K��A���m	;ecH�^��&�43`��h���ৼ��r��|��Hp�����k��	��/�z�m �kE��g6i�P`7^�3ᷳ0	W�Iq��|� 
�� ��oA�ܼys�.���[��W~�<��/���$���B2�$+��a���%e��-D'Y3?x�\�ݒM�*&�_�D^�ƅ_���^p�
��H��;H��=���S����_��7�!ׯ\�x������D�k��I�U� ��h6�����3P(p�dП��W1�ab]\ ���!_-, �o��t�>�����Gf�������@n�q��:���9��o�\�u%񳶉�m�ŏT�:sX�eD��$��w
�;:�R���
�� �v!	�v�@k+��s�
��7n@~��7��[�b%��>R�����y�JpA�����C��!1i��ܞKyW�O��
t	��r���z|�x [...]
A�]+Aƿ�ܴ�� m?D^�ߑ�v��`e#b��A&_����"EG]��}yi� b����.��+ȫ�� n܆<����
`�9����
��?�re���2āN5�U��֫��Hm�0q���Z���G$�'��������	$��=���C�?!��;��#ȝ�nB���s��g��R64螺���NJ�o#{�6��T�/�r��&>�y
��4
	�����3$�����b��!�K�!�^��ha	���� /n@<-__�q�t�Mk�5�Iە�y;J�`[&�lIxȹNZ�@!�e�C
6�.���R��O�kP��;����q��C�{�;�����~��	����G� 	�n��C}�F
i_�D��]��C���Z��d
�s���R�L}�	��f�b��
b�����Ο�@]܄��x�ϫ����C��/ ��@�<\.�����^�o$�
i2�e\��xs�/��4R�?ݝ�o�_d��`}󷱺�gm
bc�y�r������ ���C��ː�_.0c"o�b�^+�P�c�c
�7
���6�\���L�Z�����xXE���p����x�_Ç�o1㑷yE�}�u���J�|�w�b_6ux�͉���т��l�`�(����Ԕ�z_����b����ć�I"Kv<�Q��-�_�uJd�
rH�
NXأ*<�n���m�N�"l�I�+�����\��3��l��k*DgaCo`
w�T�x	����x�*(�O�G�e�w6���o�\�yr�$���2#
��
G�+ΌTU�}��I+}Y��,��I�†�I�\���2��*��wyt�+�p/�9�ҧWV�� ;��faqy���'��
�a��W����-B�{U�us8���#�m
q{��<�,�@?���<�/���6}̤��$GG_u�����
��;�ݳw�[�nB�>�^��"�Y�e����S�u��pV��
�;E0ӵқ�^�MGͶg!'��HÕ�myL�"6�))%�,�'�r���Egۯ�Ɵ�ܽ���ߐ7Ol�G_��ֵ��{��)C�4m���9��8fff˶�����,[�d�2��
I�sz�}Ȼu>�!���ל�֜���^�|~
�ʱ-vR�2j�[B�
�9���o-�-
�Z�
+:D=�M��P�'��+�h�eVC�7���/�ee�����x���?�^��A���d�H�Kޫ�}��JJ>"w�\��ŧ�γ�
Q�#�c]F��
+�R;�k�"��lt�$���.T�yxI�G��}X�6埐���J�&}t�ʥ
�r�o�������^���wb]˗
��$�H�}"fW��L�^
o�z�V&Ї�^%��t	�d�d��u�-��������;�>�~��AmF��2�����+>(x��/�ꢏ:�m?�3���9
�!fA�j:ܯgp����#@�
l�v�zЖir�v�h��>�m��6:
>�g
.
<�]$�LHsI�����W	�~�g��w��0��r*��=)
�#c���ȭ�>�f���g�m���v�g�+,�|?�6��v4KʎI���_
�ꕑ�<"z[`��3 �\q)z{$\�LH=
0�)Z����:�ۢ�hR/�rd����ށ�^o��|�
���zi�/(�[���e��!YoH��	�������긴��Oߙ���q�{����5�:/h��u�&j�����CY➞�

��<��b��L4�[8�f>�
+�6��@{�N�[Ɔ���f�:�tg�н�)��ڻ�2�e��
:_��(�룿X
�/
W��
U��G�/fcY�t�}�-�:�Ӳ�ȩ�H��>5�5h�
�����o̫�����NՑ������ut�d��W�(1u����(��������?w��z>��{9�b��g	�m
ғm�C\�jZ
��	�=k�jt�g!d�&�M��4�]N��^�gk ��
����7�����N�|W�r�����m
R�f
<�AܔM�A7F�9�yv�m����߷����,ALM�
���v1o��5N�� �)ѲN�4N�_�/������q
���
+=��
�B��<�99� �e+g��۫d��_�Up�
�L� ���ņ�q3�s�7d
�
^9�Ư�����-�C:�/��eou狇�od����q�fm ��Jʷ,�2���,�Y@�%9�l�u�ı
M~Խ
֏J"��	�����	
@�װ9�����-�?������Ep�c�\"d�c
���*%V�Tth�(��(�A�w�Q�0�~l�
�m	��J�!%��,B�V��{�
+ at +4��ܰ�����Kk�iq5Q
��!Ez�Ԗ��oл��	ʸX��
?�d�NZP%�����\��,���
!�h}�u
�+�У�n��2�yo����ۣJ
�+N���������頒
�� ����1[������O	�
���
+�����
�W��sH�{����Ut�s�P�X�滥�6�
��:!��I�7����~
�j�ONh�K`�G
u�2x���'����C��}���=u�ȁjxj_16�/�m-2,Kܺ]Q�.�7D�ı��85r����y��'� ���Z���n	��O�C�&�
kM�F
+,��49E�:I��9��<R�+�X2n�ۭ2R�ELi���}�nu�b�,
��uQ3$n
��,]�n��\�	�]Z`nU�����>Z#�٦:
yeԎ��gdg��8\wmg
���Gf�J)0��C���N�U�
+p�J�$
�)�9q[�O���p	��+cJ&4"gt��9�����/�>=���k+�A�[rU�|{~w��ED'�1.�)�ޖd����m��z�0���w�AI��/����p�ٞ`�g��
�KrI�
�Z��&./�g� �i�_�H�W��5]7��b�{���8�:&6bⲃz:,b 6�T��]`_==Xh��n�7�
�e�sA��t@=8RQ[|�s��5�z�#���&Z�h[o9�q9�
tNPE�*qU~	*?�������8wqӰ,n\M�����R�
L�C���H�U���[���{g[�cQC�LP!�zE�|�r�#�j��ľv���Z&7-�j
��1}�XX=0T���L�u����T�
��}�P&��{^1�����&%zZ�u�*�ZS��X慠��w
zT\�v�«���j>+���*�Ԑ��z�˶�:R�&.7�p
��A^	��/���5�9��Q>Ѓ��%rET�?֑�G�m�� I@>
k0�AiG��8����h
(��ˠ8�ݷ�6t���c^MW�CFjvK��>�-�ca�f��#�T��mTG��
�3
�6n���d�ˆ���b��rJ{8�l��������JÇ�J�$��q��GD��;�C��Q��T�r{��=k�v����c	Ϭ
v�@l�Y��6b�bFa�$���[�,[�(0�'Z*8(Ǖ
.��9���
Ւ!����$4ٻ�+�ꩈ��Ŋ�
��m�A���$
(����houO
n��|��S
��Ԙ��L�%��������WQ
��-�4��t~m��R"��RX鉁���;GL���n�E�
=��^�Kpe^)��@�(�Z�dy������}��#r�]S�‹�
D�{
��bK#
+BU@�̵�6=6�^q���Nv�(�o^%�=b�
�{�<j6�-Ŗx7�_�7 at O
ˍ\"p������NЪ�)5�ꞡS#����_��8�`�w�[�(x���Zn;W�Ů%t�G��<�ol�oy܀g�<��Hh�c��;��uE�4�;`�~;� X�+(p!��p��?����E83t��
x`�X�i\Ef��Xh��
W
aR���珦����\VX��y��& V�"t�_N��9$���" ]l�{���
�S`�}rX�_�v��S��
/=RL龈T�5�~�s(qs�|�N�G� {7�%�Վ��������~�L;�t�:N��z�0���|2j�OA�un���e��D��=I_�M ���:6����{gc2����S#���@�N��
Hh��y����o0��!׫��r�ϾS���Q�
���O����cKBLeLCl=5t

k�q+
endstream
endobj
29 0 obj
<</Length 65536>>stream
+��M�
��\+�
��s����uĖ�}>�Wvlb��[9<��#�%C��w���T�6�Z�C�f뛨�tl%`Ov�<���p�F(���~

�|b�ű�M�Q#�cZDiD��^ �ѫ���D�b���V�J=
+T�O�ʏ���-~?w3.��pȧ&&��D
kQ�;%?.��}��e\9��B*6�h	��&zݐ�1�Ĺ��zw�jk�r�K=Z��Hq51��z~W�0�����Ol���ۯablsȔ��P���X�dǵ\zDåE�
\�$;��Z{���
iI-A5�%n
6M}�v쑑���%��%b�ܥ��w�;�{�^��
+�F�=?
I��������Wޅ���Ce-=��6�u� 3�y�W9O�
-�jN�|�;

s�Ex
++�I�^��ˮ�n$w$�6�!C��:#F2�-A�$���]Uc*�2T�}	��X��g�U�B~XD,�-��
��d�:�|��k��7Q�k��_B�:��Vש-�u|��2"mo��]cև6�!%
ꖐ��wb�?tM\��"�Թ�-8\G��6I@,
�Q�h�_-Du�]�Zb��U�&yD
�����eH�GJn0���}2
9���	kh� ���D�.	��2Oꁽ��;
�;1u�D���A-�֯�����@�n	�No�R��
���}s!Cg��N�DO4յI
ji��#�
. R���C��)��bZ!'�d"bt��\Nj����Z���c��o����?��%@�!���|w
��5�� j��B�¡#
�\ŗ�{G8�Ǯp�?���p��zd��r�c�L��
+6�h�U1`gagLťD�LDP̟�F�Sra����<�
+��������rfa2~�a
N�,F@�@
mR������VϴgWm
���3V�KT�43	�^Kl��w�6u|'��|�?Ӗ{b"!�rp�s�#�‚��K
�yĈ�����D�� ��/j�pάDh�@C�T$ w�
#wfc1�Y�Ԩ�:�K9g�W��
H�Y�M�
��t���Vtb�4���
����#�qP�)
����
א[��
I^9�
j{�=O{�rcRZKD�/
��sǚn��X
�J�� �G�i��
+�| �ַI�?���ܛ��e����5	��l�����1�n�����<(��ݮ��-6
��� �#{
M��io�H��
"^��^^t��r|K�
k�
sw�����
���L�¯��-�}�r�8����@s��D����
+)鐈���� ��L��p��&Eu4|@F� �E
���9� ��e�5�쐢#m����T�Ӱ��
i��=
+*�[P'*leTNh
+��eA%��#Fe�W�����������P�m��yXN�w���8�@�=�ދmb
OԤָ�����#���
+��'�
x&�Ï
��>����X[��]
+ҾI���6nb�Jb�W���I��Mb�o
��uvHJ%քFun��35
:�\�K�-8�?U�s�� ��t���IA5��'���/Q0q5
� ��bd�WNj81
+��L���
����1#�5��Hs��^�W�
��;^�ס�>*'���𮡳�RbU�m~9�ֹ
+ϱ�u�
k��*�[��3��❭w�xK0RS >9��%Ɨ x� �A ���uL��*�ԱN�wc7�=4vV]w����
��s-B�}�����
�
[f�����iQ#�!�F�e��\���[���vh��Xc�ly��6�#��?�	G��	Fb&<(�g��5�3����̨�'811)�&*ѯA�Om4�;	��&�2���x�]�&�Ժ�+�3�}�������rq�.� 7yֱ9�ur���=�L�/��bj��h�m�L��X�m/�k'�SSg��\�n��m��c����A�
&8��o:!�!�T�;���OC�N>
 ��%p�<+�
�����`�c�@�
F��s�	T�s�����~�b�|��eT
V��
��\&�ϲjn��?�fѳ
!	
㒐;W!��uЫ��Mù�m)���7Ja�/!)��7@�D4�|�F�S�|����
����F�oD��&�&�c{�2���L�D���T��P�XF��`/�X�>��wV�•=��6�|�������Gտ�����~ݛ)�u�ŶG�T�w
��> %48֠��-L˱�����P`���
�ܘ��9��SB���#R<k�L�2���l�+�誱��ZPL�
�%��wGM<.���
�W���+�΢o��
����4�Bӳ����ٝly�ZlOݙ��e����%�JuM���C�D]*
��d��M���lBR<"X�_
~U"�� �z�ڞ�V�I�
j��{�S�Crt�}��7O5O�^��J�
.S0acϘO�@
 �� ^!���OL��cs���*�`
[
T
]w߁�Z���4��>�-c���zV;2 <�ޝk��@�Mdl̄�����au��X��1�� 
�Pe��z�m��XG��t�_Ik�X�S�ϫ@����&"/ �UG�l��<-���N��5';���-*֫@8֑�
��s�T��Xg��xf
%��AUoOPɂ��ژ���(��~1<sw�涆����d�C�P�}�48�1���>��`�-�\�S�
S2�]vRz��
��˧�����
A�������s�gG�mO�ӫ�1 
*���3+��-ڹ�/�����꯹l�\b�lO��̺�]s�ǟ�d9ga/&��j.����Vi���_�cw
��^b�g�/����\������
1�zg������V\NB%z���U]Wq3?U0r?�
T��s��?Q
��t�@��
�o��Y����93��S�������3S7���R{����ľ�Kx5?�ii9Y_�@ϼ+��=��Ig:2b�UtSp�S1�:���f{E�/O
�oc�������ᴋ���_<"l��
+:w��M
j��c��ڛh��B������_Լ������>hƕ1t�툆%<X��
����o�/E�ן�!o�Cߝ�#�P�*��p��Y���%4d`[
����I��q�'����2(��7
�	-1%�<�,�b�������c��2D�O��N#S
��4�:ǽ�ʳ/�����u���m����R8��-{lbS�j:�Dǥ��
hHE�81�:�:��H�n�jz�}J>ͻI����{�
�vƪoD�Ԑ�ֱX�P#�8o
*�tf&c�m
G#jd�O��&�@�;ס�#�2�F��u�}�V�K��S
VDGC�u4��@A2߽	�ڙ=�ꘌcˈ.�%�Z�Q
$l�TOE�6�Y�n��H`
�<��2}�7�y����?�`}�
�2�����Zb��3�;\���2\K�<cW�E�p�
�|�31/��&7�
SO��r*�����qEn�_
x$��y6����xga�m
�
]o�u�:��d�E9Z�fLC�썷ܱ�T]=�l����LY`��@.��׈��8Z@�[���uU|o쭽����,��3Z�m{
���I(��\�E8�M\�k�#�6^ue���MB�a1�%��1="reLN�jY�3@� �T�Y=�|��{��u����x�#cO�5��>����m�v� ��Ѕ��>��W��"|�y�,6S2�z; ��tg���
<��������{���y���������XO��,8�7]�k@�$9�ZSbr*$
+xbEw�u1��jL�b��u�
訣y���Y�K�"�LMC�eT�
+��G��I`����@�o�J�YE~!!W]Ps���W�9��
���ʞ��|��
�Y2�t
�V\7
+2�0w�}�\ixp�E'Et,�4��� �ŷ�k���V�R������TĬO�Ĵ��_>��Mc�����kJ��NXK�O5���r�j�����|>�#��Ɓ��%r�C�.�mK����a�f"��7@��k���N�	 G�4�&��-"�FԖ��z^�=�e���C
�m��zޱ�Z�;gx��u�:Q���DÞy}jb�O���l���3S?�
�ߌ�)А��vK)
�븼�����D��?���@K�U���^��@'���+�ף!�����k�YҢkN,t�_C��e���F��_�Î�<v�^L����h5�el�m����W{ٳLjp."2t��
���$���w��_��=6��	�co���X�
S3�&��6	��F&�l!k�V��;W5
��
+-1%��s�~S�Q~:ȅ�6�Y�n�>:Z�/3��s���i��el��`������Up���쒂���m��ᙞ��Z����k�['XF�
�
�<�z+��T:�1��%R�o殱?��ᰚ�j
��e{��m��'@/��m��K�\}W�I�۰���X�%�OC�I�
?�6�}̩z��4,��k�P��i�W��C��6�DEn1�_
 ��+1��?v�V�
�c�� O���u��N�L��T ]M�?N�s�`+����4�oۂ�c#�R��*&&� Ԇ6Q�GS��ݱ�;���˻㰤ej�}^ݫ
�����r�{�

�as��ȼ�Ix��_s����?����	�
���U܌/
�e7�[�ޙ��c=�W�:��/����+���zW��yx>��2�s���l�c4�Z���*���ETڍ�l��a9��p��W�B�S�:�(����ƈ�M�
�ؙ����ݷv���]
5��
p.�ݵ/��?12hA5��Z'�eLp at Bm
����[��&��~�NH�|o����#8���Բ_�"��x�E��ը�����Q
��+g�+}�o�
�O
���o����+���b;C��v���F[��h��ݑ���ᒟ����t�z�a�b��K���[/���

7R�5�1�UT�D�P�>1s�':�D����f�*�c��{��A\Ams-���'�/k����h�����>�a儚�
r�}�ZR3�~�"����)�#n�ȉ�!E�&*ЋDq_�-9�>�X;�th� gݫ�d]g�%3�-��~�Mkx��8,���
f
����~��*>�S�0�[-��
R�gG�-I�\��|�S�
+��#�C|64"�WDd�o]kuO
}E?:�i�͝�g&
�'��L�s�*� (”�E�N��򝋰������N�Yؙj��X��.������RZ��2j�9%���4:��eb�w��
)��mϕ���Č⟗q�7���4�{=

��Q���g�����-l�{��
�}��}���s����wV+��!=\YHE�y��
�۝���RZ�'ZA�W[C�7m���ζ�
��7�a�h�b
�]+M���z�}�.��w)9�����M0��m~
QP�N�
�v؂�f1��W�����PP���dnPBn9�d���Oz�=T{e�%�Cl����]�떰��ߍ�k���*b*rӉ��	�1�
��!4�f[҉�Io�
+��ӕ�����=|W�?��MB��
��o���SӾL.���uC_����끵����t�
+(s���YH�^��.|8[�p�#�|��P\G�a�oߜ���ܦ���#����Q]�:���5(� �\{dz��:,�����L}o�ԇ����
fW|�Gtb��O� -j�@ 
WR�*�n
+Hpu���v�F5z�Z'4kL�
+*sw���t�/������ҟ�K�����8 <�}��Yp�
��ʀ��������^�6P`a��Bz
+*����:��<��'���_DU$��V��Q <�&"'TyW����˽It�i�B̫�l��=Z��Q
+>[F'����l���ϓ��+����ؘ���Ov x�q(~)�γ^u{{,�[]��/6h/?
+K1�q#�wL��tdz�7c �E�,ı]�^m�4�|Ƿ}�\��o�k/n�>\��
I8PM_�9d�ǃ�/��ט�WJ������~��k~�M{毟La�bZSL�+
��%Y���o2�|�DN�,��(�s�?��_�#����
͵>��0UgV�x��Hxg�
UhpDC�VǓ�����3�7�
t�_�+;\�diz���#s>�.�s�b�z��'�K�p��l�����\�
xL�a�{{�㽱���g��
���5ٹV{? 4��
N�4wK�M &<�nૣj
չO�M4\�
�_٠���W��d�=��k�i�m}A�{qα�m��)��ٖg���k�њ�։�����ج��Dz�(U!%��t�����7�%���*Q1��m��^�s�F�q�8�䐁9����l���$�чb|�?Ռ�/k���=b9�VA��O�s�������&�Usj��8W�
��r.��sν���̃k
���������S=���HG�U����=�h���g���o;�~�V���1���� E��� ��]�
I���s�һy5\��:�0�"���>��C ���-��&��
���
X�%���
.�+�&̾��v��������S"�B,��c���SK�ܙ��o�p�Gngl
В*\�[Ai����TŸ��
�n[�[�iy��wF�:��9����[��WGs�փA��"��`�{���������;1=�! p����+�5�F@ɀ860y~92�pD��s����uTq��jH���LxX
䷆O��:5;\"h�y����
<ɹIo?�`��F�i�~z����+#�|�N(�J!���쯹=���L�jx�^!UZ�Z
��r�7��
��m�+��\��}b�E����%x��*&�����

���rl�€_v��ɚ>YG�WA��3�b�ѥc��&�[�{�v窮���π�?
NޞGe��Ӿ�
n��c�!��8H�%�B�t�C����DN&�)�5���L�{S��;���\Ef�϶>�Ik��x���SD�� �;����Č��:
�^@�yy��᳾���9T��Wr������0��6&������>Z#��\�g��Ӑ�|RX��t��
���L��D�.�lG�:����<�hoS�J/�)e�_r΁ӣ���c9�9"�B�皲��K
�F�:1P�q�}0Jڟ��z0_v}k��c�9�w�ȧ�����c�?��>��]>1��jj�{	���[qI�;x8W��=΀y�*�R������u��\�7}	��G{sȜ��
o�h�D�w=�ձ��t.�3\k��D����ۃ%?�Y�_m��\:�?
��P�$$C*(�p0N�q5gf\��[����ˎx���/<6
+{�Y�V}��Y8ܸ��kA�ڭ�Wigo��E�{�HU�yB��Rz����_z���UJH��1���{�Pd�%�
��"��?X���dlLD��E����S��`
+���d@��.��,1׶��un�*BJ /
��߶	�߭lΩI �H�����g��$���]��hNrm���DĪ���v�L*��Z/O!+�Ⱦ0і��H��/���?_�f�3
+~
+���7:

 ��ޛ�W��|��:ӱz��^�E
w#:xqXK�$T��v�L�@n���a-�4�E��54�WIAF�,�]�γ/&�bM��
+�&�ͷ�� ��.p�Òw��IbA�Un���g`���L�d��:*g�j��������#F� ��Ӎu�����8��~�s�4Q/R�ot&jK�CӜ�l��Pg�F� qz5�g��&�'ÔZF+~�1�S���<��4Xrۯ ����G��ߜ �-��B��w�w��
�

y�F*sJm
+!���,�(�w��zLC�:�I���*JƧ��G_G���!�.�����њ�?lx@ڐ�?]r[�S�3���?��7?t��>����U��"X��0�[��?�i��w�mK�ɻӕ�v�;ҁ� ��lVH�&�u,\\�"�����X)�?���S+�;
z~8����
��
��|NX/�����M�o�� �D����14ϵ��µ
{������֞D���[:nѥ��ꛮ���GSȴ
^�I��N�%���wB{܈��:7��V��8#�a�ߙ{&OM\֙�C?N|���t�KEmяc߮P�[F����_� 9��hUϔ̊��
@�.�>
I�EF ��9��^|��jO�����G�I�,!����eD�G�+�]���Aw���ֈ^��[�r�k��9ٷ	�Ƌ>ѳ1=�
5��a-wb�	OL
^�o}Th�eB��46�p�F̯�V���_ro}��
2���"�����P��
Z�Rn�en�c��˦1l�={����%p���IP�~��G�q��=�uNŭ�သ��'L<�fp�l��ck�|�,�
��Q��}��*�q�s�X)��������R�E$o
U�d
,�ao��k�Ҵ®�,묹RZW���_
Pc+*\�G�+S
�
��G,������S*]b\�WN�8�f�~���v�6{�2��ޒ�䑢�wg y�����m)�������#�`�]��,9��	��
�αA�t�ȍA=
�V0��MJ�G� �!�v��90�N���>)�ƹ�L;��x�7
+z�7�ql2�D]�tbU҅��������Ѭ�
�Y�g_���t5o������X��5d�|���[L��ZzfN-$���'���D���%���S�����%L�y��Q���,���X�&�ܥ��aCjh��D�}��* b���\��v�ꩭw��$�q��s���W��l���_چ*.�W_M�@0
���
D>
�
!��ȗv�������'�q�n~�(��ס������U|�O�)
k	uA5����
[���[¡���>5��
lqTE� �����$�4
�����\��1r7�
?w6��p	U�}p��%��.�{r��U��?O�Nt<q,t$k�0���'"Wt�_������dEW�OrA�7�Ŧg�,�[Ey��L���u@Ή�p�[H
��"v�O�d6�^	�&���*.9����ɸ8�4iU��8�k�����bOC�7�>T��"�|{������8"��:-�G�&�Ƴ�AnM���qE_˺�_y�\�_Em���1#�>�G q�*�k�m~

5wƷ��ǀ^>��FM��QSg�0��)�=�H�m�p�}�4�| �|^�*�ſB�vM#^�x�_�i_���n�L�%��s���ߍ�Ͻ�*��7޶L5�>J�P�����:��{�!3��3�
I'��m�z�ZJ0VPo��v�� x
W�ǵ��A9��#F��-�%i��/o����Rӱ��e��k-s𜠞+�ل
�3�n9��
�N�,�
���.�]J�
����^�{f�w
��
+�h{�Y��@-���KL���I�w?�n}�]H������#ug���i��g�&�t_�Eؖh-��$����^��+C:�m�G�y����>)�<b�s�s�
+���W�a���'���	��i�c
�7j��
������
+��(�A�ZagP��{�t�WBl�
���K���2�*<�8PrI�Uu�:JL�e}6���R.���J+�i
���:!�K�
�*6W��~�:��	�x$����X严g6hv��;��;s��UT����Rp�
1t%���E�cO�Ѷ7��y�1��;Rճ���~h�O�1�~	2�/A8W�R����i�����_|�;Tw�p_$�,�A'���3z��D]��?l��S#��h��^@�,�
���l����rx�M���J�����Ӑ1 3���|�@�/�%r�k����?4�[���'��7��;�~>
k��\�e�#^:	M�zw��Ya��N�>Zg}/﬽n���P�B�lM����.�[A��l��
+:*�gQ϶8�c3
Ѣ�A5�ٯĔT����Ȗ�/���v�9��
O��7A�@7K��_Vu�S����@��%d�W#-/���^Բ3�;f��Ŵd�t������y:(���
+j��8��!�6���
���~��&BfOR�~�x�ӽ�
lƀXN��ޟj��\'�e�R@!ĝu�Ɛ�_oO�&ڦ�
p�G�/w�KAk�ΠR��p�a �W�-;s�����
i������l�:���L�W��G�l���2�aS�J��������
2��P�/Rn�/��ڔ�Ex�4��9�&�4n� ��woѨ1
�
V��\�	
������A8�PЉ��>
ᔑj�2�h��I�
����R��L��Y��a�6j
���6�I���!6�/�m��6;�oj���Vq����ꐌs�`3�s�g��M7w�j.)ؙ_ʸe?��x}�u�~p� ���L}��m�-7���jo�װ��?@���F��ls@;��R�-��]!-�ubtG�\�u��3G �U��k]k����c1���*��p�n�KS>%�?���՚�]A�l���d�������n��Eܫi?�L4��O�=�n����O+�/���2Bm\
+
� YGKM�\k�Ϣ*\뉞��Iqq��?f2����#|oⲏ�d�m����T���T� ���"����$.mg������G/��eB���>�����^���U}�U��;�p���ᖴ�i���y�Mr�[�(r����k�O�+]!9V����Ke�
뭯�@7Z鄠���²�o����Z�Fhq@͊�
��j�+�̝I�3�,� ��r�:��U
͵%McR��'���	��"��}�ְ;C-��"^ƌ�&7��F,��B�ǀ�v�0U�� [...]
+� 6
-�ҏ�ĉ;6@gV��J����\��#���Ŏi��S�h"_�Z
+4��V�W�^Y�+���9����o����j�uEW���Ud����B��?eEdL(��+wf����
�pb&aO�H܄k���-~3
�N�
ߢ���2��9�k�
6'��
~�0����ķ�t��+�Sm�#RBUDIj�j����/}���Ul�hzh
��ew��W�F{�[F��*�؀�K?X'5��
F@�exd@��iญ��B
���D�#��4�.�?����<YBg}>�������
���J��U�ڲ����D�cS���>5
�[}�z�2|�O�/�̀�k��'�o�:���¡
*l���f:U�6������a���e
;
��J"�:�G��fw�q�

+�)�m2��
^�p��h�sm$|�½�l8Z�gY��n���i��h�#������K���yl�:%�3�
$%(��6Q��ľ�
X��*��0�K�%T^�,R	Q�"`�� �Ƿ(�M�$�THX�Rzs.�`�bbj��P�/�ǖ���Jj�W^�y�
���>��������A�=QW�'��ۦjo/Rs�M����7ܲ/�Rf؍�˒��Fʸ��A�FT+����15�ɦ���ss��CJZ�0<�
]WM�o�Ή3���U���[�D�硯���~�u�n
"�/�c����0;&��2l
A%��3�܆_z��?V>��g��뮹��,�) �e���Ɛ[r�&�&���{�������H\��
qm��m���]T����>���
��q��LP���J(u�u�����΢�ZA�!�N:X��5���5O?�j�H�"������P�
 �&�9 ��,��R[�7���-��6��F::dd"F��=�HP�(�[=���^�����+��̀�O�$;f[����b�B�KCO���n�B����n��}&b�\��	и��ck�� �<2\�K�+w+9��MjCP��F5l��
�� [...]
+6�Ť:TT�|��u����^�4�-
�iX8��G�����g[D�C)
�|�P���%zN���,�J�����;Q
��Oo"���}��v��ݹL+?Ǥhؕ߯�2>Tв>��6<:� �[��������b|��L�s�h��푺���+��
O������{�Mc��4��@GF�
�o6 -�S1���2ZBbzc\Ƃĥ<��8&u���5î6u��Y�d}����T^����+5?l�c��r
֧���7��uD��g��XCR�;�-\b��"U��Z�W�wl�]vK���3�GKд��P���bjT�W��2
��=�AU
�{ƀ\���m!9��p���[;��Tq�� ���Ur�O������ˋ���t<��(4��e|�7��a����z�#���忡�\�0&Ez[�}7Ox�~(��a8������9

�u���){��w@��?��:�?�ػ-TuX�4
7�!���
_��ã"�T���hm�
l��L{������x�̯Bk�\�����t�3��
+�H�Mt~@�.	H�����*e�|u0՚z�eS/�
��|JLEPMj{o�D�th��$
�RAra����S�Gs�7ZA�ORN��#�7�L��8�m
x�Rtū/�޸�YB��w@\z��T����l
Rb�sK�y���q�IUqm�0�`�!!9�γM��
.N��~�Ս,�R���Gc��
�M���� f�KA�0��ǃm)��� ������O�������u$"@w���������n��K����l�
��@����ջ?��K���ɘ�g��W��7~�MB� �\l�o_�R���ڝ����Q�i�
�LK��T�����G%
y0�����:����
+�e11��Ex����o>a�|l�^�O��3N6��?�p���'�T�g
��_1t]�,�	H+�ō�ړ-6�Ԛ�o���9��}���K�*)͡Mb�o�Ri�m�i�츳�l�;Җ��P����U��5
��R�-��]�$6���eh��*,�+��*>%�%6�E����s��/��k�y��YQ5��_Ao�������
l �}�O�K%�,c�
����iY���Mt���#*6)��
+��}�s�z���M7
}�[�S�������g1���:����p�-�����Uw���34��d~s�7���<k�v�h�m���st�mf�ަ�i;3�x;���
-m)����BB���� ��
 !��]��s���	�
��ܹ�����V��q~[|t�������(	��f�C�:�N�95�_�$��i�sZ�9����8��/l~��xsrQ�h?H�Y�������՗���(e~@d^9���<�� �kX�O)���!�|C@\v�F~�������7g"C
/6���57	��yq�L�~��Y�p^�� ���E���ړB���^Z֥�nW�˞#��m��u�lMNYR�<��g:T�_^fѹ1Q��-	n��
�ȏ1�_��TҶ���m~�4=:�=���9%8f'�5��5+�pՀ(YR 
7�Զi,���|;�@��g�/��)E�x������_�`*BҎw܆����]?:���ꦣ�d^W�t�ڞ�;B�.���K�y�!8����"�
Q4�����6#�~�a�}��1���!dݖ����^��A�M(�2�l���X,�QK�6'
�<:bA���fAWx8U��!)?0��
��Kΐ�^���
2�-Ȃ��ļ�"��v��>�"�c�?�N��9���|;'k|�e����[�W<�w�K>��ϓm�G�ܸ�5�a��D��ل
�rUO_��S�c|u�ud�L/{�}����Gk�� ���1�/��o�ɗL��?�z��o[�-kfr����?fT��z^V�hM[�p~��Ѻ�1q����[?�X�u
�t�
���E����[NP���y�б�@���4m�5;7�<�
_:����I��̈́�9c�
fpJ�1s����#�
�Wt��	a�

,�WN͓�旧&��7"}���JFی�T+G睞���j�-+*h�	��nC�/�lbى�tƴLp ���#��D�����Puc��@�c��ּV�u��Xw`*T�IQ$52
�p1��(��N8�w����nd��-�N�{��+V|���������dJZ����q��^q�����T�����3?b��uxν�餤򲗑}��Ƚ�`�T at J_�	/H���e�����`O�5="�WF������ΈJ���
�6rkQ������X����!,hI[{VVve�ّ�u�-Xw��J�M����0���0`Nj�]��s�5�����;��M�:L
���IH΃c���۱x:��O�׼��T�����Z��;!�용5}��Y2����Qbz�/�2�늭���$�˓1>o��2o�g��Y�c��޲���Ḑ���4	{0�(�6�#��P��
߼h@G�;�x���]�쿷̀�3JD��Y���T��]���4��w&L��ގ'ܺ�'��׾<=�����+�R�
+��ר�������Xw��O>:���m�N��q�+Nr7@'�z��aP��V~eN�(��01[6rˢ
+�2Ϋ�8B+?�Cf�4"
+���JA�g,袿�̪�!v�券���`K���+{Y��:����>�7P�u��O�s���O��?�[S�=��:pte�);g$
����}g�+ �����k�ΤMkWچ���!w�P!Klي�T��f4��4��jp�fl�/���8��J,����oZ3NMt�<v�?W�O������b����k��+8������,BPTq+�hz�b�fGT�W;~t�^��X2㫧��U38㿋l�?�L���Z�b�F�W�b�s�v&c�2Pª�־����=D��&������'���Ϗ����٫v&q�� F����1����`���r�ꮛ_w7���l�Kc~��Q|
�����5+�a�DhX�W���y
���i����{#¡������<����
�&,���� f���~NO,mM}������
�6E!�; Y�~x��q
�c���Pa�6b����`b��ߥnӧ	|צ����Z�^�hڞ��Q���5$?�8����J@��Zj�$�r�2���7����IiC��Z�1D#m�X(;����^�e�������lmɫvhΊ[��C7�k�3�>�d�H��+��n�)�2Ǖ��
��� [...]
+��_G�=
�lIQ�|JZ}�ɫ��,}�{_k�ovl�,�O��l��vÌ)�#�N���%�H�{~l�W{�J+�K*yt
�v�G~ݫ_���?��Z����+���e]��O#X���������n��R�b�x;+&�
���c
6kY6u��th����v�k�4�I���ECgҖU�㦂��ayl��������4?��ߍʪ���c<�]s�
+�8}�b�T�@(�t�:6]� �-B�~
Qp�nDі[�{�]�dBW.��Q%"%�&�p-�F8�m
�b�4.D�5�sf��=1 ~a�^T!2����I+JͶ�Լ��-?
�=��lx��5'�y�+���<�ƝQ*�CL�}��!2r/�$mxi�}��è�����f'����6�ٶ�
+>��I
4c|�=aÉ�^4!�����u('��x�lE���h�u+�����	e;��������Q~�厏�ڒױ蠴-pE+\��n�V�F�1�ߦ��o���o!��8
�dQ�:|���C�O��Iqյ��^� �{���
Ԫ3c�򳑡�GsZT��4a����� �rZ*j�
 �ͫP�aq��q~�����~J׎�5 ��4����a6{w�E�
�Bל��1z/�a��;c,Ҫ�X�j&�D刌	Q���[|Z����T���\|�J��"i}}L	I<�o�?�L��ɬ�
ꃥ����վ�}J��zB�p?�G�
��~��s��1����ב>d�K |�,I��X��Ԗ�2'����j~<�Wys ���`��c����rj�唇����^�:�z6�m�nEW�����'�<^��b\ޭ�quO/e5�;����Q`���S��:������	
+�.�0I�����)�
��n�H���
+4�ܫA~ͫ��%@�M��];�dq�掕������ɪ	_-CV=�Rt��Ț�'�	�R���M,�ZS������Ge��Q!�  d����6J�E
>�������ڳw\�숴"Ơ
I;^:"(E����1j�B5���>����MP�+fHA�a.�k���N"p]�ա�����E��	KJ`‚
��j�AU��U�c����k�MQ�hQ�H�iٌ�a��%-*k����ɑ�}���L��7�B��E
0e��q:~g
ߺd�H���;��,��.�#�1��h�E
�M�F�3�,k[^�Z�9�$�$��Vl����`���ٽY>-&��i�#X�y{#���Y�a:fs5�n\�A ׵�D���i��
�� �$!�옪� ��!�`|�d��5A%~
�6︰�T�Z̟��	~N�]7��)�����9�(���bN��pA��("o}�k�=��v7"gV���ʩ~|ڲ�\=wxn{��������R�� gN��-O�Ǚ�͘O��(�M
��aB=��&���6F��K���u�a^�.X�!2��ʋ}��Dm��]��k���1!�
+�f��oct��� �t��
�fN
zc�ĉ�΄��.�i��b4\��ج5=$k�B�^���� 6c|�����8(%�:����sh�և�-�U��Kb�mO6I΄��*J�a���FX�N���2��%�=��x~���*��Ivy�CІ��´S̚�S*\�jţ�
��_���2h�OJd�y/��ΊS�v��d��~ �r�0��s�A_1
��x9%*��I��+���O�q���O���K>���b�sJ����,�2������&D��Y5��X�z��ݭ_���{[&xᲲ=a�
|�e�o $^4�=�$f��
�(ty�/*t^§<��
+��	l�V�im϶1R/i�i�
y����&b�5����PW��Y��������Tz{q��`���$��y�2���R���ܺnBMI ��
��kG�д��À����[���{t�^�
�i0��(���$�
���:hvH
+��t7�[T������-
��߶��ߏ�^� ��x(eA���C
X��*'��/�Em�5��M�f�CE	3��Y`
�� ��NT��q
+�K�B�g���W���6�`}���?M�h_gY}�����<������0{>z�
sC����{���O���
��W�DZmA�pAC��us)�zӒ�=��p3�[qaR\qqQM�(	�#�ȗ3���lj�b�Sx:�S|��)8�b����;v|L�N��W�R2X�
[��~�/�fr>H�uOW�F�9
�B��ꪞT1���O�w��3�.G�;�/�P�����~N�y�j�.����j�ڙ�+�2!.�8�lz���֬�)��a�˕4
2�1��[���#���}��հw��U{~:j?�e/�	�k&v��!�YH�
j˨�Y�$�s�B㧕�Ҁ��gf���0
�
��G
���6-��
+���:�
75���#��kJB�Ujы4]Y��ۤ�
5���,�U at p
 �E���
Ԛ'�=�"��gay��i�aOc��M�~��G�H�-\@�
�q�֖4'��1�]|FJ>����$�	q󓐚X�Q������ޟ�Ѓ3B��ׂ̌�,�g?�
+o
��?e����PқS�
�U���q�1���P���'��g���_���
��x���O�
+�
� ¿�����eC��ah�/��{ǹE��L	*�i�Z�^=a$��!��팮�
��a����\t��
�|&2T�
W������f8_g9}_�H�]?�|��
���brNEt�<x�۳y�.~?#T�X��.ɫo-+k�����k}p�Sv����rck]�(~r���7wӻ�&�[���d��F�-/�|�ޒ�
D�2
S��A{��kv,��T�����?�<��.��?����[
d[_W�=5�����5�&.�!��.d��V�� �~ņ�]s�:���������ٹ�iD36���B���r�yW���ޖg�J�O�t���Ɂ���q���9H�~	S��#䜙T5����9�Woτ�Xr�rw�\�S�c�|�c�\��
�h��BL�8x\��&��
hy���3����ۤ��֞�I\�33Jػ
�iˋ��&��N��;AB��;&����o{ѵ�A��u;��`@���ù�1�i�����1�:c�fl�U71c��
+�4��f-�Qe�c��26
}5*�zU1��l��ù�Z\�� *%�I�wd�"�垛�v��=�E,�=��[mD���Vb��|���
+�1ӛ�J���9���ŵ�8ay1�бd���{H�{
+lƈ)�����ڽ�a�d�b�5Vl���
�_ԑ���������6�[�[�
wVu������}�I)�1& ��
��O)�ţ��B� �`J��;�_&i�
2V�Z4��V��U'��e�c�_�o{��n{�e

���5�[w5"�x���Wt����^Y2L�
 猝S�v͍������
Nv�����&���U�q�Ol��@�V-��/�t�a���R0���?
�����ͼ	WP2JM
�35��ΚQ;#��{FTq�O���K�;3�]�$,jx�h at V�Xx�^h�߂��˱
U�!fws���u;�tŎ*�軲vc
�f3G��<`�ӓ5Iw�o9���Y`��3�E�g
Z˹)aQ��qQ�ݑ!dQ��{��=8�9������ƣW�-)aa�y;"��~�
_c��
��~x²��|�W�������)�ⲃQ{wY��
��1�m��G{^2���ݢ��jF�-�e
v
n�#�Y�I�S�~�_.ikU��q�9�Ǘ��Kb�������麩+}�@�&��vf�6.<�C�O��ܟ����s��o���Y
�eRK(]�Hc
�W��E�/:`��ʶ�U
8}��X��KfL��i2Gǩy�@��w��7,��
�a{��q1q}�C�Г��-	�4§��
���p���дbǖ.�E
:R�����	�
x"���[}y���陓St:���t�Ej�3k���
�vF)��1*b�En���+�5��j�Z��%
~��D4"#�����a*y{� �&@�L�AT�
^�7�m��3fV~���el8`�3���a9�ՒW���;^���a�U�6cd�-X�E+�5j"5�8H�{#D�	}'�"G�L��_�`3�O��٤Y;�nن*Z6t�m9%[^����x��_���
&JmD�͜�ዦ���1>cBM�X��S:B�W{5	�Q���da�X�T?�B���Q��k�`wc�{�ӥ~\�a�Ϻ
װ���
XP˨�����^r�����k.���ҲY�jA�lzp��vLEԄ.
++q�Q;
���rv�=Ç}�����χ�}g9�kc����^TP�m���InI��
���
\��<�ʷm���VXٚ
�Q���db��������3��ߌ�YE�C-�="�
�yv+����	��R��l���
]���`��ϩq��xBX
+y5o����(�cC�҈��
��6�ɣzL��
�1����ܨ��5���&-��\�P��A��}V�l�t%-ʑ��6|Ӻ��9�"
+���MY��0�KF\IX�p�ݝ���P��U;�v���,zzk�<֪�]vP+n:l�C�Z����
��e# q��]!u�j1�Ԯ�����c�fj떃�X�Q[7���U/0老F�t�����
�voi�Xn!
�������d��(
��,�‰Ah¼�R?ob����[�!q��k?�(��L�
/�%0ԙhO�� ם���`�Ӑ4�懱��C�Y�A
l# �sH�#2Zä�X�iZh�<ӭ���|�-oG��V��6m�p����KFxއ �}Ϗ���`����&Y�jEWL��]���I^���EYr2���C�'�'�����^%�KNb㼅ݹ>"�St�{��W���	��õ/��uk."`����x��FдMO7j��G4��y#�:b$TϚ�Y;�>���M�->�ݤY16
��m���~U/��U�Np7��|��
�
�x[�5N�nw�-X�ڷ�t��>㢴/��� ���AL����rX񊗃_��*6bܰ��5,Z�5�Vr�f�?�>.R�x�y�m;ȗ�Mpz��XЊ�ƾʱiS�3W���"=�����L���W�d��g��r�a�fRͪ���M�@�eJ�[2�r�Ԡ�� 0y\�?�����0�\\��XO��������,l�����1�m�]����rT꒕ֱh�W
���as���"�
�KsI�
��k_\�_8�ꓨ��}ʰI�	�z�����)
��/�dF���-3�'��y�w
�З*b������#B��Ԉ&�>6|˧���g��|
�
]0�E�-�D�������/�y�U7
�顠�&���\ۨ�a�>�0�	S:.00H�Y0Rj�dȆ��_t3��F���\����1Bo����G�L_�G�ի���y]kBD��t:��mlԈ�X�&T����x"�	3Ý	
:pRh��+l��Ϸ=���X|�Hu3jB���~X{�e��0��,z�����s}��'�wI�gl\����[v2	A
+!�������&D�����Ra�vtYTۑ�~��Ζ�s������כ�Gƴ�f,^��p��cbՊ�E\�尘.+��c3����� �� $2,�t��q7���DM8��h7ou�C]��&M��E�c�5��

/�b��@�Y�=�>¦�9��	K"l�GL\PX%�NZ��1��
6���1;���&d��
p�~&fc�Eڏ�����qN��t�rk�oܙ�)w'�U?	2g'Ԅ������a�3Y���1mW�
b�7�iب�ش1BF��БQ7�qy�ҵ��+:'T�O��1��7|4��$[�u��z�/`�G-�h���5c�vNk�ձ�������!V��D���x�t�K횵cJ����1vށ-[�v��pX
��?��<�^}���+��SZn�k�S�T�!��F8�m
�j%�
��_��͆
^��	=
+Z5�y�.���

y0!
�%�%�0i ��B���Pq뙀��z�sn.�(�݀�{�E؉��������)�!(���2}��Q$gъ�Y4S[V�l̤��4a�'uBPXG,\�v�"f	c�!�G,̎Q)$eFMn�5JX!�^�
�!<���u/j�$�.�Qk/u� +X�ֿ���F(��X|�
+��<�Ψ_4�#Um��m�~B˖׼� �ZbѬ�޾h�&�� ��ڦ�Բ���}
Ժ�
+ZrR�&�����oyx����!y;H�,�ѕ+^*t����#�������N�`�#������뮿�bEUm�鸨
[�`7^

t<;wK�'��7Lⲛ_�S[�lز9SW��aϡ ��= NvJ����^�z�<��4Gm=v�I
�+b���Y��l=�<Z]�_�zfcR�ڈ��݈к�Q���VM)uc
��$�
B7̹�	۠8�
ҭ�
S�A�E�W����Rr%���:;
�hb�Z��
o{�;!���$�wi�
�QQۓ�Δķ��nMRHQKW�^�4��MX�-�!r�g��V���c>�<B�/xh�)�5Γ�M��[SB�J�/[�p"VLż�
+]��b~��l@ǭ��5[���	�;!�l�%�)=�p�Lh�	5�an�N�N�ZI
�ZT�߲=M�}���V��(��3�-�
���L`;v�dԊO$( �!
��g�*�e�*�qH2�U�ȣRf�������I�
��N��<�F�st��8ȗ
nW�q�a'$�������\�R0
�J�8�ʸ�q�J,Y��v�x=�>d��n�E�v�`��=��c���[�ʲ��Ķg��>نg@��4��`�ll��sKۂzU�Q2ܪ�9��Q�W�Wۆ-RM�����\l�&�r����L�
ʰ�4��������f��=��
�
+��e~���)�׸{M����Y
�vڀ�X��j׽
�J̯�:A�����J��P�,\`����>g�F�Zو%7���+�E�����6���S���=Z�zF��J#�P�E]�H��3�^���/\v��2J�_�͚U�+�b��������� �Ɩo���%7;gc�
��Q�i�H�_p��
rKL��GL�*�F�fQh*�����[�����m2
�:`���l�^��{A���k�&"-yY�y?�0c��u=@��ǴIJ�ڵ�����3��Z�l�`r�[��4.[�H�K�:$gQ��K�Yu���`/U������ Gh���и3���ڟ6�4��(���=��؇4��u������e��G��I�
� �;�@��*�K&Ft
x،�	�Y+n.~s�߰۝�oO��{�\�Yv߇(���U���K
��Y�����
bR�|��I�@�]Hɚ4����
҈�\6���w&i�7�zڈ�Xv
D[�~��X�`�ÆM��
��,7Iǘr�8D���I�����0V������)�w��z{
�
+���\�W���6�`l�S5���C�9�z�>�3���
+�	,�O0%�q ��y&#�R�<k���i��ʽR-H�c�
�:�8ۛ�R�ź
�yP
�Ϯj��
+�0s�;���
�X�$��Q�
�k�]2�14�G��LN������&:xtG
�~V_�?�P���}:�Ľ��G�\J?����g`0A��Ի�JвS�;��
+��Bfj�V8X0 at 5����>��+�Tפ��+��Š�E.7kĖ��VS�F��?�u�'����Sgdj�]ҳ1�+?���4�8�k~�f�*��E|�I�ZK�KĥJ.7Y����)��q��;e
�T�-ì�$Rs�o2,�W$.�i��My�,�M)h�Q-�b\
+N�V�۽-ǭ�BݚA�q�'���L4Iˆ{M�bq�����C���8I��k,Ƣe��K1WKs�Ws�;OW���5�q�W����YΞr��cܶ��5�y!�5ʈ�a3JıװH�BI[�!XQh�=@��bu
�TQ>���"��7n&�ݺ��xe)�7b'�f?���!&��O^q�(Q3�v�J��[�\��H

TUI��|I�����0�7t�(
$�m*��YExP[��[��X]Pu�^��0���d��h��8�Vݷ�Vc\�;���<�
ޟf�vfĖ��>�J�O9��.�X�P��by� C�Vۯl��2�8S��Z���CԜ	K7a;,q�O���
��`�+}�^�
�#�o@���Z;� @�yP���9�i�?�1OW���
w�Z�ї/~�ȃ�d��7�"a^H'FL�
+��aPiG%�(�"���x��x�F&
�
�4\ƀ
ױ]ƫ���s-M��Օ��j*~+���p�IM��k�qi��� �%1�%d6�V�bɤ��1���
r�R�fS�g�`��a�Qc��\AY�Oe��Vת~.)8��%����
㞼F
y�w�^C�O�
ƽ�o�����
+8xE/�d�88�9/
cSt��E�J�SD�:��#
+g1�B���r&�D�*F�7�#��Ke���_J8��rb\NB�ϕy��f���
�2Z�
.!g�FCl�Śe�*d�Xu� R,
v��B
����o��q�p)�D6����y��WPO�"~�/A��M�����_
+�ˮ�d�X�
������$�n�ɇ���A?�-	U#�#OZ�/5T�aĉ��V��'O�>|Xy����sa���
5��u>3�ܥ���)�#��4�={�<������u��Ho���	��,���#�Ő�3� ��JR*���G��S�!~,�V��)�~��=�����q/�0G��G��l���WRc�	�a�HB+
(�r���=����l�R
+��a
�l�J�Dٯ����ַk�7�[Ϥ�`����ȹ��q�o�=���~�2����qׯg
ihU�{�E=y�^���9�e¡��1�h�{p}�I�0pۼzc�E�j5����0],[c�9S�P��&
����{�BQ�

}_֟��������gnZ�uy7�v��C�yh�N�
Z)��"k6��UФ�9%4-��݋w�q�������۷��^��n=Ɲ�^��=N�*
*D�����3�*�������p��.�ҳB�V
�{&���oAq��qG��9߽N#�]~��{�Zgo��=x���:r����z�����%��g�bƜ]*Z��&��f at 6\�skPˁ#��:~N)�
��D���JMܵ;�q���#^�����w�IW\B&�H|:�����/Rh��1_�r%�3�ޞ��C�Y�i
��1��{Af�ނ�c7��O�
K)��U(<v�~]��g���3)�'�s��z)/�ǟ_��}�*�v<��K�G^�A��@��F{#V�k�&�[�d�z��y�)���t������>z�
:v����Gq����4���|ѱ�7�#g.d��{�w�a}ܙ��G^�
%!��K	�ۮnH������
+���2�0X��.��]�if��̽D�{��GRr�G�s��=O�}����#�_A���=�L��p�&�~2�HF��x~��.R�U��Z���w-�IT��}#V�A)
���+e]��x����x��������.ܨ>r�AK܍'�q7
��=z�>�(�z�U��X~��4?���������9����Z)
~9&U�%?b�O���<�`� DYz\T���]�x��&�0�<M��ݼ�w�nc,�!�dp�ƣ��u����ϑGS�?���.o�ߖp�s.&y�ˊ���^��������U3S�p�ؓ6��h�bU���ww���
&��>}�;��_q����HJ
���T���b�U�a 9��a���&�������*<o6��2���=�Z��)1
w<>
���[EG~��iܵG�1{#-�`������L �N���s�BjB�
+��Qӊ4Je�p0��x3�d�
\���*�
�E��7��rN�U�~J*
���!)��GS��%��2^�+ə6g�Aj����I3��,�gʤ��^����;^�$ٞ!�G ��Na���T�O�_�}�6
s,5�q,���{i��bE��B;�|�D��e���=h��#F�9ug�G��5�3@ ��Ry��V����������N<x�<r?
���#o��=KB
y�F�;��5�X�z�ƍK�� Xo�i�B���=�����R�r��=�R�2¹#����F��FE
)��~����kN9��3W���_����w�V}�_�ſ�
�.�
+-�d��/݃��Y#�v�Al4
+�/,�A�l��Ne�^P��2�h�D�$�B��ʚ$;����+��}�n'�~�OI/fO��Ϊ�ف�>�p�C�
���8碵n�3)�S�C�VV�uqE�0�&	T�Wx��>��|܅�ߪl
��W�s-��z=��vL��j�:�B��O���H�]�Ј^�5�2�
��Y3�8�C�j)e
+!7S�'��2��y�4UqL�>+l�������+�6
y�y<�\�{J��刑�Մ�;�0��N���_=F��T�)=6Z��rَ�[��VI�7��*?�#
m���ށ�s���cWk!ο
+�d?�x�v���q�l��斣	Y����xA��O�o�r��Q[7�cЉ-z�@��#��z��U�8r)lk"��
F��5��W2���MG��-a_ilx���r
'!�3�<ҡ����
v<w�d��Q�ΨS $�|"�z

����&K:	���6���ܶS]���0�����@��Lu�\lh���D�Ě�l��(�v�	/�7����\��`�qʍ5E�UA���ri��R�k�`0�	H��]0\p�迃�H_p��A�䭨(])�6zzl�2H���pA
+j�
-���A!�`�׬��5\�~����'�A�{�[�7�
w2�{O�ͤ
�,���E
+�xB��������'R�{~-hS�ю�>����F[Ϙ�ݾ�#�����%�a+H'L��X� 7[,g�(&PTq�I�'t�<X��Wy������ⵒ��]G�d�N�װ��d�X�k�d�fR�ϛT _.YqUQ�~���
�:���bhX�,
p5�Jle�ak�@����S�bm6I��o�(_������#��^ӯT�i4��� 0l!�B4��92�_�t��Yw\O,v��F���h֐���*qo��O�98П#
66J���am�Db,�Wz��&+^�hЉ`ϧ���9:�� 
�.o/����м6¦��q�n>�k�i�
�S��K��ۢ!u	�ǘډ��l#[K���i@�@2�۞�鶾��߳Ěd�\Wm�8-s����QBNJ���E��Mt+��Şű>��*�Uk�aCre��__�
+�B��K��jq��Bj)�Va#�)��N�UK�.�P��C��x+�͵E�<�Ė�ulиQ�v7y�:�Z��R�֫zx��|yް�X1�7֪�
�~M�op�fJ)n_��A;ng?�-���#*L��W��e�7}TȔ�\�S�*,bR�Q�K�
|�R�>(��Q��i%�£�y��}����!,yx�5�d3>�Y�]/�|RZy3,���l�L��Y3Fc��ѐK��<�MH��Y�A�u��V �m�.vj�;�
������n�m��&��J��m�K�η3��w
�y�?h���'�<Ȩ�V�QQ���JU�`��[�ţ�_�ъ[�5
�S������t�[V�*O�;�1,�LX=�~�m��e,�p�G�{����Ù �N`^@Z}�%����+��
+�*��*���34
+�3�[��6� ��	�y��g�!Y�]�ƅ��y
�|ۃ��vc>�Ra�C�o���>A�Y���A�Ȩ�c�3OLT������x5�
��lc_�d��3�%�W�D��
K�)ʑ~��R>՟è֏aL�U1����"�]ʝv��w�y�͑
ޚ�K\�3`k~R�W5��WF�<Ȍ[*�x�I�:f�G��Y�e+nB�^��$�*Z���f����}��9;�>�����Z�]��	�� �����R�9t�"��֣g�����i78렷m���O�<�]��F
LQ)��{�>̊����ި�
+r��.9�d<��,�A4�ztF=sXk%+&�^������6ou���
1�Qu� /�|@\�nV���J)�;�O[�r�Kb��fLXq=�[{QO���x�Q%�RI<ڲJ��/A
+v�ؚ��h���nx�j�lؐy�zx�_|#�ߚ�� x���8��ND��(���5�9��+>���G�^����~Ų��݆��7�������G	�Q*o�Am�2NA|
!_�I]�NdŌ�<9y5�B���^G�ز9�pNO�ta�{H����t�)s����;��� �����Y%,{�/;8����>�b�]�ù�U�#d誓Ҷ���L)P��rdŬ�2.m{6.�+Щf>$�v�əE�ZB��s@�����X������p��
kW����y�{�k�/�|�g��]�4��qQ���,�~��\s��
�i� �K�^-��.���3�Z�m��5+�a��Y��A������>20v=��03��Ħy
4eLT|{�В�%��%�7���ɡ�g����&I̽	�l��
4kNH���k�w�`Wl������!"�[�H�r�F��W�{�Z�캠����#v���	3�4�&�~��
��Ai���w'�57��ҫ���{D��Qrׂ�`g��=g �m�	ͳ��GSC��B}%W#Ҳ�F���*�?S4��
+�q�B�:'�|�`	�tMo���WB’�Qeݓ�h�y���8	�i����U���4��a�WU$D�W�ꚧ_���&�
���0�4zԂ�Z�;�'����ȹ?�
��SV\��)=4uB�)[/�E�97�व/�(-��D��q<��(��^�yY�u������G��b� �~ŀ)��cĕ�ka�fd���6��J��^XIE��
�
+]�#�g�
�vL�
D�/�xE�����9ϫ}|�M.y��q:�[ ^��-��0�~�P�p�ޕ��!����U
�q� ��sB�nt��Z�j�}>��z�ۣy-��
��i
����i�u��6���yE������*Л-;�lr��Ř��ʂ
�1-d���kj@�����޲
���[���,hYZ�ϋ���m'	8;��^�ò�۞��:���=$#*k}�d�)����2�˿�3iF��u
(����ٱ#
+����=7�6 k�2P
n
��
l���6'}p��

��LE	_�a
�>T�����$�Y�

�A�W
U/��-���d��
5��-k�{nT����MXPy}�_|}���v�x���(���u� �ڰ!�}��#$�`��%�n��Fp꾣3��a࿳dZl��6�,�~����A�.Dͪ�=y�
+N_�t�︡��vp��n^���K� ;A�
��E��������;x�?L��i:7��x��������1�o��w
��
30cA���%oXQ;.l��
����m[��ٕ3+)��,�x:�_z{^Vz�H�oSx���Uv��{�m�#��/�������u{G�Z|�s����e��O
U�
+K˒wݐ�/!
+��8�}���~��?��[�P ��آ�Dy���
�v�F�
%�v<��OALۮӴ�ŃW
؆�)wo�#Z���ny� ox��h|�v�G�љ��e
+w�ؚ�a�L
�<�^����X(M;&lў
Sl{07�xgA�tY|��A匋�
MJ:����L�X,޲��
��9JO�y��aCӕ�c'֌��ee��eEս} ���p�dkRd�>ar�6�N�O>�p��x���)>:�{nQ^|m���r���� �w
��5=�厍c8RǪ
�
��=���Ց������[����}���W��--�]�����|J������s�]x����}Nך�7�
���`'6�ѥ�ڎ�%y��0?����vf���ۄ���S���,X���=y�֕��j{��<_V�'iɹ��	���-���ٟ=���һ��sS}I��]
�����
x՞
^~��a�M�ڴ� ����q
{�������f}�����gﮪ�;f\�G8g�����_��?��K�~ 0�K�G�/?��Z�h����[����k���<떹ǧ�3S��Q�-���	�qw!x��RZ���	wB�Tff�����{f>��C!r�DZ����p�P3�L�}m
.~f� �Y��<�Rֆ�1;C�g�����p�н!�󍞒k��%WV�ʮ
�p�1"�`j��x�UҊ�
+z�G
��:��U�!��7�Ӹ�#}C�]�*=
'�Ọ�G1&گ�Wy�ʝ�a
)

�����8�����U��4R��[��:V�W���C���>���V�q

)ϡD'��`����P�,)ݭ��T���!�c�2
|�}�Z#t(�ؽt�ʻ›�iD�SS]�[��>^�
���Zc�k��x�����E��ZB�a
�3X��<��>�q/
+�{b�S�d��V�1 n9�88x{c��?ѽͻ�}]zi���2��7����P!�	^��(-�4
+��������{�
Ec���
�s߼�`��E:��
���{8N�<�rO��(���7N�^�A��˹p�
��`�i�!�����
c���W�������|�L�G
��d�R�VT�
���[}���jK�ٽ>B�J/3q�-���09v��?\�p0��:�<]�\]n/d
fe���>�D��g?*�� ���W�W
}ew
3�T���0�Tx����c 8�}���*��Bk������uY�
��
��)k G�3��iɻXd�V���
����7'J����?�=�v	%�<�`k&�'�X�9o������Gu]�
Y�:�
��]��M���J�s��X�mrL��@��������e�L�5U۽����E����~7
B��S��f��������Ǫ挟���9.tw ��0��N<d�C�m�p��-
0�|��l����q�����q�l{ ��z�4
	����w͢���L��-�������z>ɧ"e�Z+r+�i{y7�;3/�G�CZB��
VW
v�-����WWY�Q
|�ix��kCؐ������ag�
]��lc��?����f�i�򙒓pn���R���N�&��rs�$�d�M��U��Rs}rj�x�⛴_�����D��I�#%��E$���ͿP]����Q�ě�!Q��97�ZS������^h|w8��x��
+�"�T��.��d�	���;��!�
��{5|Jp�t�:�Yy�9J�Fg�e���m��e[%�$���8R
�nI<3͈�������
��Z~E���7ECم�v���^R�n?%j��
���?��	�g
%DZ���}%7�R~ZhI�i�r�!!��DX��p���U�H�N���,�w�X�� $d�6������lRd��p���0�|b���8���鬼��G�
`����}�ى�Mq
+,bz�v?���6�����^��j71��[|�x����Ko�fxe61�-㜼.��^���ƒ�����#m=�2IϰN�2
��m���r�MCU�g�ߎ2���i�:�=�0��R6��x8��z�a����O9�ޑ{�`�t�����[蓀�u�y�u�b)Lӄ	_{��ȉY�9t�a
�p���f!�w���>��D��
�䋙�g�G(!?�H��>�JIa�����ƜG>-
f��D�1�������t�_���za�Sh���(X��V:a�_ at v������W���W��������)?��,���eKeH@�(����v1,l�3����WRa�S��3{��h���mͻ�S3*|Z��F������˞ۦ��
��/�sϻ�­��+o�3W>:������sؔ�I\R71������z9�&�m|(�������*FE�f��~����(E}���w9����p�W�����_��jȾx��%����ޕ=�d��_�?�W��$�����+�A��~�S [...]
+y�	/�Ǖn����+S���[����ץ����.�ι�j.�8�L��="��\脨��7��vOy��86�:FJ�M��M�t�,z���:�rQ���1FΕ�.t���vo����������p�CYu��c��o����y���� .��>���~v��'*F�W�.��ƽ��C.�G�8
�$�xU�e�≾-��R[���^�qf�����2C��ƅ�������0�X�MC_�ͮ�k�o���
�yZT�~]ym�'�3y+�GJ~��f�5]k�mݫ�+�ׅ��f�m���������������;�o�.���>ѵ����	
�ȫɲ��˳���@��
b�F��W=� �X����F�d%���h�C��3u��OW��N��U}X�=ߝ`���^����

春.�����~���$f�Q�θe�~ٓ:����Y��IV��:�2>7�;Uc·�����1_69$����s*7:��ot���(}d�P�4���U��������]*r�Jg�5�4:>���нl��!��j	ـ�
b䳭1�3��O?^k
t+��m� c���4����
�E|������s�U�[��Yj�#%�=�p��UrO�2�VPwŌ�^a�y#��ᴰbk��B���� =�~rԿ�u�g�ߡo1�&��a�3�xU5����0][����?�[��,����rmg�j-���[�݋��ږ~����A�e��}�we����k�S�$�HՔf�u��㼜_�+���G_Xy
{�5J�
d�2���mo���n��oCF���쿆�������K]�w~���^�J��%2����2��~��wy�m�/����6	&F�y�� ����(`��77w{@��*���M>���vď�����o�(�?�z��me�M}E7������GKmqו�	?�3���y����q�=�4�c�R���:&�Q���`�25�yWd-���f\
��^q�\��
�S���9M/��DDL���=��d
L� ��������K� 7���W���<䐒r�
/�c}�=ς� [...]

��!�_ˍY����꛳��K
����n�"�&DY�Ř4������[`�;U�x���ѡ
�Y�B>nյ:U,��$*ʥ����)�
/�*g*�%���ۛ=���J<���ڥ�,�y��,	55x�ƫ�<�R��S�Q�k��7���B�����3�L��G����_l�\��E� �'	�+
%W
�G��� [���)�V4&��߇
��i���7Eɒ6�^���'�O��d5�?N2��d&�0H	�f��?���nl�]�/�f�
�Sd�p˶>�#M�= w>׽��ZxS�a�oF��&G(_���Џ�m��[���b�f?7M�u��§h����Q\�m����{0�[�e�ֻ
+����߆yv8�G���^�u�F>�j�]ٵշ���/!w7?`�6GHI��,�)��r��)�}k��
ٿ,5Ŝ5�f߱�#R�jE�]��������'}�[�
!}�m�o+�r�muB�ntU�]�|(i�^�H��T��3'jzi at I�w��#wzrnO�ÿ����
���F1&�eUⅲ���1�Px�D̈́9�e\S������1?��
��ŗ�
2n�Z7��z�y��
�9�6Eʱ�3A��軠w��_��J<�{�|0�I�����0�N�
�L�������r>�8��ִ��
„o��"w������ӵY�ǹ�?��/�m�[���j�aWߣ
��IYƾ���m��,�����Q|�8�z�V���� �:�o�f)���tM5�:M�7�]}
{u�M�
�)�"e��T\&�~�ۍK��X]�W�p1&QלxC�*��RW���!T�[+�n��`��������
��m
�-.�t��q(�Kݙ���g
��٦�p՛���Z��2�>
�i�E=Z��Ɓ�^q�����U�!R�e���Q����d���~84n��3KJ�ɘŖin��0=�#�
#�����W��W\���P�$���ş��=sB�j;���{�#�L�rHɩ�c�H�81F�*������>�M�8>�2/�)�K.(�
+~]j����E<6�c
c�B�8)g�������s��g�2r
#�{��H],D�Zqo�
�q@)"�Mp
+V�C��#���AR�v?��Bkޯ��?Y�(I^��`��`
�60�;9+m��ڼ_&X�?��~��ב-��J?=YZ]t�:FK�\�Q1�g��
E��U�]���f�$��fIɆ14�fz��BcݑR�]�({�K��a��zn�b�cA�u�u��==P���B��e�c��މ
���
J^�o�'g-k��,L/3����
ʿ�=P�
|�c�C�tU�Z/4T,�>����J����ӝ��B}�/�S�o�>�� y`��&���c&� �-z�s�~��!%$j۲.Qþ���*k*��l�=�6U܆�_�f��x3��el�Ϳ���wm��k̹����m�Z�_�w-������y�k��Qq1�h�FW���W�g��K�l��o
�_�S�ξB�~k�]v�g��t8���+~f
/w˪b�*R��
",�/1%ݧ��ze���*�x��5�SR�/�7Ǚ�?
N�*�������ފ���K���lf`�A
�9u�#��!^�y�:����O�<�q
+
+kL<��&�i�«��/����w�#���:�l�L�|���Șվ�k�=w6F@��f偺|h
g�9�e69�=@�L�-c�0�o��V�g]Y�ɻ��	��c�'�Y]���
P�_)��Yr�h����N�7��`�ǚF�UJJ2��_X�ɉ�Vȝ�	J�}�Ql��
�{��_�]�"'�%�ҭ�7%���~���|�]�oYu��if��0=m��_�]j�!��[%��<.
�e�y�c�`�.Z�� 91���2J��Ps�ql�� �i��ULJ>gfv��~
�j�ddG��a�|r>� do���룔��xd���Z�
�&	1e�����
��?r�� �٤
�[#b�I�:Pqü�g
���Ok��|�w�r��
�\��0�����i��
g��=Zl��sʄ(������P��O�/�
���ֻ!w$��GiO�2
�?]"~��Җ{я��?p��Ǻ:��r��d�s��	{��ww�Ko�U�u���f]1O�S�sL�u�V�R��Zⓔ�2�7���w�^�k�e>5�p�}���^x�W�!�d<�C�GصB�����;\̷A�e��dg�m-�2W�qq�]�}�'
<
+6�<Mɐ4�^�o-u��*w���oh[�/�Y�?/�κv�%�
�r�����)a���iZ�u
�l�����^�\멸3ߐ��BGI`��.V���ꂇ;bԡ��ۥ��
�S1#�1z�9����V�*}zNա��kQS�+l�Kè
+,p��KK�P1���h�{��}	z��c�
�?_���ŭ�����j�Z]�E�#oI���� �`���t�{k�U!�èg�os=
���"
��Է����|�U	�� k�f��gy�;�U�̀�F����?�jS����A�B%
-ԋL�ycRf�K��3��;��<���0OQR���n/�*�h�go
��UM?otT���x�M��ŗ����O�f��0!v����=��F[&�O����6�5�rr�_Ά8�<��K�
]k�c�,��1MH�k at f�{_[l�a�Y�H��@ϥ��<r6<8�}�����ׅ�ǫ��F��V��w�-7|*v��8%yg����R2��������8�)Y�Y
�<!,3O�!+}؈�
B�}���!ki�k�����}jR�q�x�r�8E�_��#?�J�
��.:��y��a%$:&���1l�a�*�4M��hjhk��7�g���X];<n��<.�����A���I�ۢKk�+#��:��T��)��G+L�u�*�0R�Ag
�����w�J��۽
<�[�,�F>���0%x��q� �w���%�&���
��K�-�69��0CK۞�<_��
+3FO]��>�嗙&���s�J�<)�0�_�Py��C��Ua�	1�7�����ˮ9b�0�82Ⳟ�t�	�F	*�0�~���
zKVW���&�W�<
� %�>G���Y�"�����}@X�dc��
`e�����+�K89�(�n�,��_�D��k\�YAH;�'��i5�npY����5�J�����9�\�	`��V��	��=����
XkxcWsI[�U/��p{���ߦ�d���m���q��i��T�p
+Ĭ,�
��Q|�}��SN���`O���ve-e�
~s����f_�����k�\�w�^x�bB�������l5�K��%���!���AH�Q���E= ���7�̐�B�)
~vHeN���9%�H�]���[ ��a��t�
��V
+�ֺ����K/����#
�(n>uk v�h��_pu�
:#�=k���.ҧ�V����$&zo���R{�YUm�쳤,�I��V��nB�e��霧f���
+�Tp�3�PGO��Լ����,Ȏ��ȃal�q��?�*>R�H�yD��}c�ֶ�4
#>M#�xx����%�yg�
�
�96Lׇ�X$�
�j��qd�q�������fW�M�<�mK�W'�Ͷ�o�_UEXg C���n�[�K��/��?\v�9��<���G ӯ�㞛g���7D�#=�S��,S���2��^���W���MQ�y�
+�o.��փ��iD
��C�Y8�
>�8
+}���9$���^0Q�wU�T���n�Q2��l��}0EN^�C�g){[ڃ�}��,���x7߯b@�,3Pn9�d��`�v߭�TM�R.��x��rk������,.ͷ�%�����@�,�Rc�����qv1�<� }Yz�0AL1�(����3�-
��W��·'ja�#�� ���id�Zwi�q
kS���뵯�+�5���Py�8�5��d�/Y�ѩ!m����
��shXH����3F�5�PҭF�U���%�Rb��T��e �|��z�ֲ ���c���$�
�]�T�=��%��dB�Y�̰˘%�%
Ϊ�d[���H���ٿ

��$�X�|��<U�\�%�ҳMRr����y�C�mec�yE]�OV���y����
~S�Z��-�^B��K��!�qR������������{��Z�e��ޛ{�`�bo��0����'%�|�
+���9�R0���j�Voe���̳
���c�P�鑓3]rv�Q�*��2L����Wa�D�m��^�֤�4א|e{ �e�N�k�).�
+j�2IIV6\P�%|�?Pv�`
�t���GE)
+�d���pɫ��Zq�z_ӘqFS����.��z{�e�<6ݧ�!�v�˛�΀���5G�8
E�Y'��c����'�j�eVP�x��x����UB���'8�|��>{����v_�E�De�骈��b_\z(Aƙ����%�VIU�^(��+j7ˈy���+�1j�S�B ^�t�饆I\�m���g�d��<���F�E���!�n���;T�|�m�o wİG9*���|��h��eo��v���n�b�����Uԧ�m)���	j���=�a��Ʒ��Z�|s���
�s�0��G�hx4��Gq�x� ��^X��ݟd�
�=YaT}��2>oֽ>Zp��=)�xcT��9�BX퍲2��xp���ں���C��Zľ5�����M��ms�B����
�x��9Z��Ĉ��QD�[G��lW��\�7%��ԯ���^��V�L�I\�z�S
ܯ�Uj��?�)�i����U���Si�&��������͓�����;��7�?������Y�ңeW:d��ྖV�,{��g�o˞�
�RL\�a�m����f��
�;JOZ�D�]h�>;͌�z��t�?O�9Zh퉛p�¬�n�� +�0BO0
���?� ��C����6����hy�cĨ�F�m�
�4Zݒy�
���an�K��⻣
��p�
�U�v)5x���)D�}����m�o[Ew�r�A���(9zg�|��a�������<f@���GQQږ�_�>@�|�a��
��
�d
%%go�4b�M��΂���k��az�ws´_���\�8>�p��m

oE������}
�b̥���Q5\1�U>?+�g��=���I�øX�譙��_L�}�������
%7�ߕ?��x�����ē5���s{�kW��q(�(����Q�r� �2T�an���=ֳ��}��{���������
��T�`Y��������K�S�\��^p8�,�5�7��\2z�K�M��J��
�c��=����b�j�ۭqz�b>|c����U��:E�
hE
���qm���>J�qkE
����
�?3N����t��		,2�?n�j�V꛶A&9�b�?m��Z�Qr
s�x�48{�^��4�*:��zi	�=���7�cj�<ݬn��:��=zڻ�&
��GK/_+_!B�¬�69��/c����u�5ۦ��XU�b�^�<Z�{y��:�]�Ӽ+,�
䕣�����%:d�
�
�b�-�X�gc����R����~8E��
�ߓ�J��l����Uy����e6�2�G#$��l�4�T����!R�?U��?�FP1ve[��L
mw�}0),9����#w��+Xĕύb|��x-l{��;�B:
J
#���aR�RGY�
�{�.���^�#���� !�`RPa�UWY��	K��hq�������,2*L ��Y�y!�>Ϯ�,�e�x`��>��ʹiC�t��������eN��7��"`��
j��3wz�!=��	�h���nE�8�b�yT\�E��7O��u���[�.���Ü
+>rs���j)��ٍN�)��ad�B�vv��>�'Uc���	B�Mƫ�{S�@�
=ҲQ��s}{��!z����L2�Ϭ��޶��؅^B� ;�G����.����	�Gz�%�m#b [�2���y�7ט�;����׳ɠ��3�T��*�0V��	2�K�F+��n�Zr.G��Mc�X�,!�hQ�8ZqA��T�*��&eAL����ٿ�G˟��v�e�r���=Z��[mhٕ�˶�B����vow ��&��� K��}
\������^�n5�W`SP+�')v.�.�;�<��(.�������n�¯栏�8�V0'�S�$�?N/[��x�9 �������<r��!������|��5&ů"��ME��	�ڷ��냨�γ��;5�"�
�P���k���MQ��Cv���1t�[Ǭ��c���z���75ٕ�l���n#CW�
/�Q�|�G��՜0�?��e!]5�"af�Q���D���1^��p������_�-�������~v�V?5n��<�3	{�?zr�_�l��T�3Y{�ե��G6i
�(�� �5�8�~:ߐ��rG�=��%�)�xu8%B�0/����)bW����4Us�5�(��� ��{���S�E&eZ�q1V���O���Ņ�~��0�#��l�FB�W[�6K�9�
��T�F��J���}y7�{Ӯ�f ��YF�K��گ���W�%U��lB`����Q�wG�"&�)�Ĉ�!r�u�]�R���)r�W���$�T�z��«���ɲn9%ë��:���Cܤ��E��N	��DC*
�)E���W:+n&%�9f��|dž�s�u�����‌U�Q1��#�p�{���A���F�N at 8Z摼B�u�v���|٩m��V۰6���5�ݳ��� Ȋn-k�����$�:[��y
+��t]�
�������:�:�ܕN���yL�� ��v_E��
5�"�\[�5��X8g��?V�O@�y��,�(,�,EĚ<���:�N�g�E�h���<rb���\P�{�����4�Z��|����O�D��~�m���Y�Ƨ���O���7j��rz��d������܋	!š ���^�Q<
+B�C��?]gb���ew6�]5
"��T�C�"�^�l�j�J|��d�k���t�m⋱�C��Z�P���	���^%-�H�C�|�Y��7N����W�P5CU4�]��\^l�O*�I'D'���̬ŷgEQ_)X��7Pr0Y��f�;$��	�Ӄ�ˮ�"P/Y�]�g�m)�m�U<w�70��հ�1Z�U�+��� v)%���|Bl�?��>�ݯǫR
�B����?�ͱ�ߵ�	�ƾ���YB�JG�ems���L�M�CH[*�.��D�<8�d䉞��iɹv.a�}�����������5vy-�,�'
N�?
(p�'
<�WÂ{����β�^�Y��T��0JLRR�c���#��T���"�h�'��g�	f	�ȣnn��<�,�7[�q���s���z��h���m�� &�.P
r!�<����˼2B{��#�E���Ҹ�ψ׾A�оA�<��7*�ƻ�ۛsy�'�s�
X�QN���LS���q\��jM��Fm�O˄�T�L�xɃ�
�Y [...]
Q����>o�k�,Ӊ^Ye�m"���X�-��
���1�ϙlH?�i�����c�6�u.:uo vϥ�"]J�6ǯ�HY�#��Az�Vpo�!Q�YR�r*kI6%�rs�x�vso�u8�-�
&ǭu⟙�q�(9��%>xT�
p�i�c���Ą��aX0G=�N��s���
Mp
���N�a��_|�2�Ip)x�[}��Ib����;��HU�g
��q��m��
7�1��	r��`��יg
��h�4>�/��h���ƎiJ�k���qYȰH�^X�A��ab�jR�CA.8Zd� �p�80�
�Yhlp/4Թ�X���0N�
Y��p�$2�q��
+o���xՌ��+\p��I.iU�i
��=O�̀��5\���}cn�d��&e9%�h���1�����'��ZS�AĴ�Q�@/�:�����(�4"�X��9��jg�����2bd<�4)�-���D^p�&qs�d��>q���k
�<��
��n`!���q&qIȗu6ѯc�r�*�@vČB����U��s*�(��Yb��J��T��t�J�A,��Vb�!$�T����j�
+b�q���rG�o�]�;n%��q��gMğxY���=�;���ы^-�f%y���
+
ڢ{ݱ:��~�x�H
�jy�V�
��d���JJ_x4�"G�WM
y�˭!�
�-ӧ�}zv��}��cy�h���
�I�M��ҡ��9��4�LU�}�נ3��wz����-1��`�^��~C��:��?
1
�
�v�=6
����E���am��m�8��Y�%zx¥����R�]*ӏWȕ�2�r!�(ᕂ�K��zl�r�LsŠ���*���fW�9�?I��
�z��xwe�����2�3���B-���*�d]�1NP�b~�yZPb3�Mbr�y
�ī��9մ��i\�� <D&J�~�:�߻���=�F���`m�U��`�
���R�c�*vw�p��*d�8�*�0�|z��"<s��#%9�!A���e�5�@�YĨp�"i�#�Xg�n
�_`����:�Гʌ��g ke��Z�
�M�
���#=��Pb����?6Y��k,�[IηHБ�:rA`��!�{i��#N5
���5�����&���,�eU
+��j��0�y
��`����YJ�����S	��+K�3����+x
f
�h�7��F_�)Q���
2>zk�U�>@M�j���
u-��%�&n
�ޟoJ<g�.{z�D�<ݨ�q/I��t��gn!���(�<&�`
�h��G+ �7�yDl�,�
|����,�GF�r��S�������u�/+��'+5Հ�
�RJ��(<vw���.�d��4((9�>d��4e_hhp-�
+ܠG<�5<�Z]��ں �,���U�O���NmSk`����e%���cN�Y�O�յ�믧l�j�V��aT��fm�UA+v�i�.5%�&��yA���al��
s<�u�p�g�N�y��u6�
�wE�t-�i��E.��nu�i���y�b��� 3�?���{�-���
�����]�H����
�J�Q���A��������\�'����P��ް�Nup��_��K�t��;��Y���1'w{��lS�gY�[C�[!�qxx�\�S-":�|�}^P��Q��z��BP�����W�����q!{�؈�����7Ы+o�w���`�*9���9�$b{���
P����� ]�����ϱ�
rv���`�껌����Ƒ싦���).�>�,�+x�YV�K-��@
n��4NܲH��,3�g�l�_#�
o4u�ݝ�����Q
7N�q)��ư��Q�?b�ݣF��4�pk
t
��P
+ܳ�zL�W�I�-�
��
�9���D-�y���
>�7�x�C� Ό�$<7�i)N��p�ol:�$%�qəp��kR 8�Xnj�*��3"dpN�yF� 
�z6ӥ$��44�_�<��-6٥�e?6NaN��+|�GM/�*��n91˭��������.豌��«��!&	�
+��=�W��*ͫ�����-���
�����|~KQ�8E>$�&�&�9��5Q��ݦ_�E-�9\�Cˮ
+�R���H���3�x�3����~���ܨVPW<�>�l��~�zc��-ϧ����g)�Y|���i��]�rͥ����/l���֎@�]�э
+N��8-�*����AS���
��E6»����
��?�ǫ
ġ
��7���*�U'�/�
-7��8��C))׭�V���0�>Nۍ��n,�oW1��nEE�K�K=ұ*�8�#
���ޟ����V��z
pO�� ���9�6/��d
Lw�bp��
�>��/�^s��69�!��.	�_6��}ިo
+�Un%��@�K�@�H�6���8fI)�yZ��4���v�>�ցc)b�5l�MQCv*���sB����y(%$n���H�<=�]�� ,�0�|�'�>/5N�v���6�+�̓��:���i�R3�S�$��
sh@
 }�+����#oc�NC�\/
+�
���[a���-s�L�<%�&�eo���,s��^H9Yac6{r.NJo[���vG�]
+R����
;�����1*v��w
Ð����V4<ܩ��-��b@��o-�.ְ\*>��
�y��/Њ>or)�6�=�:�J7�U�,�����t�K�I+��&�n�'!!{å�m���c�5
M5ǣa ��ԏ +9�U�V):r��`�-����V	9ǡ�I�u�g����8癕>91�-��y �yA�=���n!�{9x��W��S���z5�d�V�_�S>��P56�2Ut�0��t��eON-����ݢ�S@?�?.����^��wz
o����`�<�m�fPov-4�s�\�
�Vs��T��APw��/4M@��iW��[aT8T���:Z�2�<�"8ק"�7>F�v\?�r�6x��w�Rj�""L��=�,,`�ޓ%!�0NJq(9�?���N6y<��Qn�!$�Iq�s�L�
+���_��>�e�Cf�5l�d�H�
+�����:�D/�y��2O�0��	�{�lrL�q�ȫ"f�8��_a�a��ё�=������
-��>��K>���Gz|�[\��*��*
�<���b��������+Nt|��|"g�l��=�L�|:&ԫ�=��z�|{�I� �d�y!�<�L���/�ɻ��Sr�9���x
��@�-Z��<Լ�\�u�'��8���bB�����ذbo��g���o��0;cB�AP�t�a
�i�gB��j�o���8�.�ǿ0�P�-߻EI�*)�
��r�<#h-ΣQ�3����y���0[�Z�,1ɫf��iن1�
��
�y(�
/�>���>�K�O=ʪ����2|�(�$ 
-s� C��g�_
i��<��8�����S��I\�\���ѡ��V��GK
�'�u/�2j��9�w���+�7�]r!qc ~�@LL	��ΰJN���Y��PyC��)f���
X2X��՞��LbTt@�A
���e.�˦��e[(:�gm����c�b\�3x�_E�p+Y�O+��mU�K�+M�W_��؈����U��
C���iFI`���x���<
<Q��
�U
���a��l���m�ED$$���=�]/�k
��͗=-o���7�
B�{�B�ȏ~x�����j^{W�T�C��#j>Y�3?n���y\�<�p����RG�C	1�㦐;ۜymo�2�h���c�K�k����+׻!i�����K�h؀�Vz���zոd�x�M�
:ƫYB����p��K|Zf�M����TD|^�W�,g�SR�����5O3�RJ��5v�OS�h�/{`��>�
<�->�h�W)���)f	��S��Xf�HH�~��@W��9f�Z'����*޿@->]c�=:6�<ءL ��kHy
�<����'D�R/G�C\s�4�)�*���W#����1ꑳa�i\�zO���!�c�ZH���|0K�8�e�d-`�?L����Z�i
+���6C����'��|Sp>�,�Ȯ��ky��M��������3B�r.�
�
�,a�"�M���)��9|��"r��0�}�q�~��h
'%nvC��@z���蒣S,Ҋ8�4!Ѯj�u��&	6~�7��CJJsH�V1>�e.叝�}�E�`���^��v-6�r/5�v�kyf)!e�]�����X��G2O�PK�q
c�
۬��6�K�k�y�YL�z'��
?��1j���w��Ij�\s�Y��S=j�8��t��R�jB�SCʳ)��.U-ǻT_o�P3�S���
Q��H�[��=ګ"���|�s��j�d��������kB��Uӫ�U��|\ ��K�����q�i��5>�8
s��2\:
�3ѧ���,�O��^
{V84��Tp�V��5O���*�>Î���!���eʽ����O�4��껝@�
��n�{��h�!g��×���U$8�<�C���l�t]ʯ�C�؏\��"
�
-z��I������O�mAF���Z�TS�<
+�.���X��0Lb��l�u��e䞮�)nr�l�0GzZ�SF�tα�\�NH��X%GZ6̫d���L��"�V1K�Z�.��5b���d(��
ݚ���v�^s�R�N�\�
h򑦖y�  �I�����ꪸ  ?���X0������Q�N�U�V:�~_y]t�ĥ�ᝪ:�GUC�T��f=�[�eYg��-�ezvէ��v�B���y
�||�*�ݳ
sUq�C7z�w��~��lzoQ��A���O3˜��,�4&�*AN�%��"�G���,���F1a�my���\�>ٯ����T�
@�3������W�������w���t���Q�`ǫ��Vjk\j&�!�a��:>Ƚ�#
��%���)vЃ

�p��2���c����75�4
�s����Oŀ�'�Y�#�D�lu�Q���
(�d
/�eA=>���ƹ%.)��#�"
bj��t�G%d���
��BM����V�_f"N����힅:�!ȓ����{���	&	)�*å�.Qal�Aߜ��7t [...]

�t��#�"������Uկ���c]
��ù�''�N,��8�&�p�R�Ss)nԴ��>�s�G瘦�ٛ�䘍~J�[��i�r �e:�ʏk�����<�
��2	�wm#B=zy0?�U��w�;#��Q\��
�ʣ��;�����jb�'��Wjx_VE��%>�(�'�
����/�f
�|P`�>�qp_6E�/["��*�Y�9
uI�n6Ư�
�8� �g��]
 �s�"����~
�Rb��*V�C!¸T

�\#ͣ�:>�	4�)gz��Ҁ��8�
�n�����+Ӝ���7$��i�@�0���u(��Yv�u�9� '��;l��6����1���SO���U!ӿ��}*u��E>=>ۡ(y�+�c�(��,p��
-��ʨ����׷��Z%��=�
�d1�֤�Q��	=�Z�K��\����̹v�&�|ԳQ>��8�J�
 �l�k��Q�r~�q�8טv~J���ULI<
�ߚ �3��;���
�S�
#y��s��$�'G�l��Rk�o���g��㺮C��^~xAro>_���)L$ۀ�٧��-�%J`��E� 8 C���&��r\�ı-E�,[T!%�*��D�S��{�⼛��ﭲ��#b���?��5����k�ן�>��
Ȳ����@W��
9�qєs[��W�������o<������:�|}���;�a�2��+
�~h�xf��O6�5�ں����'
'�=����o����3�|ߏf~
xy���=qq���շV^>�ԏ�n����C�+o�-;�bwө���/� [...]
^���g�^Wྒྷ�����e��W/��Yt~Wߊ
{{[?ܰ�:��o��]�G?}i��C?��׻t������vL��;;���k�;n
X��ځ�kO�(,8���������O��������go�>?�f�gG֬�����/_ܺr�ŭ�ͧ6-�����������)�v��������W_�?�y~7�X�
���`�_ݿ�xe������>����u
+����+�?�mE�٭=sNlY9��ߵ��ֳ��O~�6����G_^d��s��#<�{��#'6?���啳��|��/����˹{��弆�����{f֤��;/�������z��ε=G_o��ދ�����
<�J��_Y�}����×2M�n]�;�c]��7�
]=��k�<�X��7�)���|n�
+���>ޘ������W��^��3���o���_?������K��;z
:�cuDZ��}��=���?ytұ��:�����}�}��{�}���W�
fOo/�{�׋�[��[[�]}�c���:
�tc׬ӛ

�lY�qf���:�sp��W��u�'�ի���&�:���rzG�b��������fՂ#��sN��D��w�w.��|�Ҿ�
 {����:��8��꾣�
�����?z�}�W�a�cV�
��qߵÃ+����.��;���%�
���Z~r���'6v�8�J������|���~���r�_�hs����z
���������؋�)�:G��Q�>ܐ}�Զ��:�������N{�WK����3��x���=��i��ݜ
��V\:��r`��No�|��ƥ��//1�m\vי���vhł���t�R��KM��W^?��ϰ�̕����=tz���Z�v��U��}��'�
��i`
�3�.l�s��%��xz��_[{��|�هn����s����ܽ����G�}t�W�͸��ʫ�{��
6�KK����_ݳ&���kN�Z���sc�ϗݱ�g�n������r7�*d�*v\�]X|����y��ދ�zg
{q�7����IG�[f�ٔ�va[{��}}��
踴w`��7�V\���������򝋻3\y�g���`��1��t#���ji8��Gn��W��t9
|���
f��
h���W�7�z~|�9G_�����c����X/�y;�/
�n˺�lC����^X�~2��[�wvϓ��P|��׊���\�� �	�#
�����_\�p�Ֆ�/��G��?��;���{���m^��K+g^�>�9����O^^�}�q�urK{�%�������~���ۧ}��ew_��=�<�6=�

q���>~ep�f��Yq�Ǐ��+C���┯��߸�'7����KOm]1���w��=rn{���
��<������:�Z~��w.�~≓ۇ���]総�G���sK&_��yߥ
]�N������m�|nk�����Ю�/��㯶M����[+����<�m��'7wθ���ѳ{����=��O__���3Y�����ؼ�'7�����C���{{�|2����y�*��QX��V���˽���/�~���
~���c�vz>��Ռ}�� �]��<z��2���s
�>�
�
���}�mʞ�-������7�ݵ����۾��3�o?���o��4�����g�=�����￸D�xc��gv{.�/�
}�w|�R��;��y��ɦֻ���z-�F����_rao����Ck�
,v]��1����Yg���7�9�{p��-��>})�󋹓����z�E�
���^�AYz��;�>��oO�
�~dݓW�
w\�շ��k�Ӯ�]�����+��-.���������[״��Ч@W��t`�]Wuκq(�r������x��澹�t7_�RXpi�p�ٍ+
|��3�a�z�O��dz�٭��
�]�����/���ڛ����O�2�[�vv�{}��G���8����)� |r�szS�{�%��W:�9����S�Vλ�om|�¥=��Oo�q�٥�:�)w�彃���������{�o����Y�^^	��Y�v������9���֏7.��s��]O��ॕ3��vhx��[���o
t�]V8�{�ҷ~�L?�ah�;�
\��9�����/������������������]'7�.�
�\�5�
}����G_x�|��������Ė5���r���
�x��sO�VX|zS۔�ߟ��>?��O6,����v׺�O6��v�Օ
/l기up���h�^
����L��ÿZ1����
-G_�g����s[:￲�w�����7�\������Ѭ�=��6�¾5��\U�x���s�;�9�������q��'������^+�;�|����u���v��
-��xm���黾�ц�֩m]��ٳl���{f
���tnOϜ��W.�t��=��v/���זz��s7�|�Y���Nl�~��P��o����s��?�{��?�Q�����͙{���u?�����rf{�я_�����=}�\�շ�Ħ��?�0�����]'�u;������z�G���9�vrk��+
+�`��ze�qyO׼
����
h�xp(��쮕KNo�;v�8���{��8Խ������튻N�����݃]��~�_�
�?2������_�z�����7��q~�����z�xm�����.�1.�����ž�����G�y����+�|�)���-=͟.�������߻�ʁ�G7�X<��xvSߜs���|�k���ڦ
�٬�ٺv��������~~�C0���w
fNmj9�}����z
>�m�vf��o�z��;�z~ƙ�ڎm
 %?��}s�S���_,�t�e�7 �p��_�\;��pu�p��m
��������/����~�n�yu]ۙ-�>�su�Yԩ{f^�:�����'�Wj?���<�jǔ��,���S�~����ttn��ŗ��|�2�B�__�QXv����_ �n�~x��
{�
�
*v^����ξ�g�^�
~����?��������?�[}y���/,s��n����rw����'7��|��Œÿ�p���uߧ/u����b��92<�١ [...]
������籁k׭���pׇ;����b�<�I���p�R�
����Y�ͣ/��ye���.
���
o�.���� ʑ+;������������?k��Cw��<���a�����;���Sۺg]�;�{�Ⱥ�n
Y���;mN���\Ӆݫr��
z��o��7��_�~���
 /{��ëV}���N�;?zy���K����- /����?�������p~���o��wٴ�1���z�U?�kp��]C���j��ں�~�7}֟
����w2������ox�Ž+Ş�v}��P?�f�}���h�c����L���
���U�on������������
����}��s�:�o��d��_�뗶��<�����=�J~��7��]�w��=���������n��O'_����]ˮ�����’���\��q�彙{.�\~ץ7z����;?����S[�^w���+?��q�p��;�Xo���!7�ڮu+�~.{�˫��ť
�W�3�m��3�}��f]��q���mw�ܔ�� [...]
�ف���
�����Y7�
~���ǯ
\;t	|�K�{|�����?��é��ڞ�e�^�?~�?}��ܿ��V쌥�������Յ�[VL���6����+��W\��7������~��m�??ҍ��3>;�^-,���I���nx����%W�����5���^��Wιq`���k�/���xӊ{Ooh��w��ƛk�� ����[�
���3�������/=��������s�n�z����w�>~���/

�֝����X��#O��ڑ�O����M�;�m\�^ص��Ҿ��|�#/d���
[{�ݵO�ںdʮǛ����,����-�]���|��s���2?~��U��������۲����_���?_��o�Yu�'����۾�a�?���<�UW��{����=X8����.j8�R�q
t9�U��w��=~�z���k����5뮁wv��i�v�_m}��?=��k��G�x����"�CN��k����?��'�
*v]�[X����/Z�ubs~�u���b�߿د�_{~0�/��f [...]
+�i�L1��m-���@Z�0��x8��]_Y��*�:r� ��i���^�-�t2��N���5���Uu
��荆0u��wu�i�,Ͱ
�҄Q߃���p�-\��\;yQ7\D0��\�1m۬Wwy��x���E�וuQ�u�u
�z�
���o��~Ⴚy�o0o.����@���"LI�?�-3�
��b������S�0U��f��/��?͙�wsݸw�_a��X8�yf�-�_#��?L��m���~j�ar���~\X�Bk�Lg�������E�
�{��o���>Z��tM�t{�
�zs ρ��vD/
l�
�k;�����ͯ�m�a,��oU3NC��bg�(ɫ�
���.���cU�x�<��Wd3ũ���6����
��N����F0rϘ�:ez˔����\
smp�8�5�*c��"&������L��Y�[�\b���f�F�*������+`�g��]c��(�ށ�Y�b�`�|�
�2����s���+������� ��=c�!�\������[&��r$�
]���KK����-S�c������2��
+�}��L�:������V9��zG�*d�8`3�l������b�P6B�
��<M���|�X�|� ���!�1-�^?9u����N<R��\@�Vv�
�`�w����'�X�g_�>`�T������������x�����+��6|�1Q��J0�n?�����l���ֶ�Э�%c��|ʼnb��<�ۦes�8�
+���Mc�����W�������Z{���c5ؕ�L��P���?[
y
�Z�V��V�6nu\>"�+�U������j���6�������BS�����[>�$o
��L�X�;ܗ�͎��ƪV��.�q:g
�0��'��.~�(��f��
�\��4��u�ۍ�ʙ|w�p�P�ђ�1��D��Z�T,M+[
+U�+�k�R��t����e�z
M���\o�����W��Α:�Y
+�ڳ�*TCծUG.����5�tJ�ʄ	���X�U�T��g��Fr�jO,�r�Ξl�|����C�F#�ʧ��� ��1�G�Dʶ��F at 9��^Ո��
#bNZ;~t���U�8��l�#�3Y{&Q��v/�W7���(-<�"��	Wxd��P�K+ ����Z�O���lvu�)����&"
e#R+��\wk�����4��M��ږ(_��˫��H���Fe
+���4��:������W��-F�}�[�R��ʴ?��R�VM�Q�2��z������jצVX�V�w'n����dm�(�4��Dp|{T ��]ǖo�ֈ�-�Z�L�ܵ��c�M������9��l�O.y������䍩�
	Q�En�G(
�=�]6B����-1�/P���i�����L�'�[���W{:��
Uv�|�
+���es��Z�gZ��_}�
�Z.��|WI]^�kY+��	�5�(C|T�ث`9�\H��c���
�	X>F_�
��k����=��]I�T�8,kw�7�Zv
6�ߙ���hC7�}dv�JӔ�臯�^Y�^���Ort���Re/�r<��T _=��@�C����	x��P�����
�B�<�rkmk�s��ˆ������{��q@�7�[�e2=#䄗(t˘�V���Q�~&!Q.�ѻ��3i���T�8_�
�o7Q����+�q'J�L�kS+!��l拔�x��L���o�Δ�n�g�L�ڵ�+�)�Z�Mi�LZ83�Hފ2��
g2�p�l'�6
+g�_�ZQGi�L�yKY���_8��*�3�e����.��`9�\HL�™̄+�)�Z�_r��v�*X�Je�8-e
7+�� -]��m�R;k�Սc|�0aZFN��2�ҴT��`E������4T~�s�}��KĎ�=O*�ʒov*�R�V#�lZM�[*��-  5�&�x��ND�Zo�t�P���[*�jD���[*�ʖn�QKe��	&��F�K���T�0e�
+�ȹ���l�S&J�(D7���G�Vo�]W�C}��Һ�
c��`z���p�{vw몖��cN09X���G�P[=i�z}���u
�����'�w�w2�P?��D���O�X�R
��F/�߁'mZ�6���cӚ\o[�=�;�I��e�˶�U�\�;�a����eS�qu�6��Sj
�9�^�X� Wp||�l��[t�@5�H���Q�ת~x��/��Ѭ�X���H$�%e�I44���=�0��
�P�TK�aµ�k-䊝=�b�⼖
+
�^���k<h�|DF�
#b�"e��F at 9��^Ո���#bNUZ;�Q	�t�(Ƒ���se��*���z.���*�?�bZh�+"�Z�9O�C_Ҝs�sNs�i�9�9�9�ڈ"�9�4�
h�4��+^�*m������g��)��\�@�
��9�5��T��
+��M�^��{�_��}c��lww~�\<�s
�E��!�Mp�F3~[�.$�QeD�����>�x��9'w���ɠ
����u�'������B�mr���;RV"�������D:�9�ͥ��46���F-��7'� ݸWv��l7�QQ,+t�ثc�l�ZW�z�#�h�8u��E��ȭlF6�ڙi�4K��=(�����l$j��h@��q�N+����>�P��2���#�U
WT�9�|T@�5\�}��ni0g��92t��
١�N�ɧ��4��s�`N�I�9i0'
�Tu0g<�j��%UQdj�t�k745�@�G5&��	
�I�sT�l��'ITZ�T���;W�ݚ)�^{bab��(�wB���(�*o�Q~��-G�B�"�\��sT�B�hд�UM�д�U��д�խ�Bk��b��v��8�w
iW���j5ez˜�ֶ�Э}��l\Pv��q���Q�����B����lס�m�H8Ԋ[Z��m#��p��pU#R�!�t�I�YD{���0zv���B�,��d kg]R'�ʝ8��&�K���J*����><i���P����8y��cԠ[ecT�	2
H%��o����V
��m�'`��N�i�#
�Ꮫa�N��G����jU�i����z�H�5��Ŝ�bk�uхk/�f���3��wT��e��z�X�5��>fyk����ʁlo�|3'v����ʮp�
�k<XA���-�M~N1W̌�
{�x��\wF�s
3_]9�XcRv��V|��1J�i�P���ۅhB5!*_k��=�
]<��7�
D4
5ԃHk,��b�|#8?���j��R>�-�M�+�$�
(,�9��Pc�k�;��K�#e
x„aumV�U�SmT���Ouנ��GZ�V=ɋ�XiaW��Na�4�j-��M�
F��'i#���&0��&j!a-����K��^��:��z���z��8.^`���D�'n![�=
+j�
,��
L���
L��2PJ���
�@n�5��
+p�
7�A�(�`%���`���
����Bk��e"���ț�}��+Eu�"���C��ڗvبq0�;l�
Fo�ȸ�Ret֨=����
�b�JNY��o����sywk�kr=��}��\q՝������ˏ�˫�~�i%�X+<�]\�	�R�B����ķ~�(<<�X�S�̦�(�j�|É�Ux2p�����:�
+��Lk%�O䦱O�� ��6�{���#�������9�C����Ƅ
��P�=�2~[��#�Qe4������
c��t*�
T��1��k�-c[W�z*HG�׏9R$Ƴ��WbjMˑo�$��u
��r�Y��ڳ�ʖ���芕o��q(8��{����Q`�X�	�*7�GqDyj�W�)?>vnj=���We=���Wf<͑B�v��Q��j׼��z�i
y�ʆ	Y�Xi
��%Cw�8�57��W{b���+v�d+8ڠ��e[�]��_�x�_�����)��1
@و�pe��Wd�B�0"f�B�B8W��
���j�T�����r
Z>"U�A�W<��]
Z;���P�[�2��%���Q{d1Q; M�F��Q~��iT��vT��|��v)��
+�*��E-�����9�>���ʝ�
�����_�o>�\��[��^]>��`w�0�
�F�15Մn�2�
lj�j��Ș�G��Y~smÄ�-�P�_\qs�q��ڎ�b�o⊁��YbD1�;݋ӂ�*��� �U����?��
�𒕽�2��S������lỹB5D_�e�����_�Z�y���s>����"e�{Ư�@o���*���z��� ��Rrr�o�6u�
U�†s
�����vQ=�?��ڍ�Qn����	�6&�i9I#'8x�ƛ�ݝ�C '�e�����a4GXM�2]�Z��m�B���������j����َ\o����}�
����gy������� �n������l�@]P�p�� |Y��z�~F��%Z}^�p]�������h�<ݭ��o����f� _t�5��W
+���gV�֨�]�5:.���-��t���
x��hi�����(,���i�����7
+S|��Y���*۰�����

��^����lt4W��6Z��"Ds
׫o�7ڍ����F϶\x�n4�� �6
|��hZ�@���Ewz��2
�����#�׻�Q�Ĥ��=�=�Qwl��)�M'O���Q�;���:���ϯ�:��3J/��)
14ݱ �5�	�
�؞e��`��Z<����q�p~�=����[`�p� _M��
�Q���h�e���#N����pF�
&�i�L
V	@8�: 
 ˄�Zy<���t<�3-8�0�z�i��� L��f��4N�Kw
�j�����e���F���d�q	}�n�5a=�F�6M
��ؖ�O14��+,���5%Qh���]\7��&�х��y0R�_N
���΃_4&?O8PXo[�l�$Ӆ� �҄F�%,�H�'�n3`ځ Lˠ�{��	�L#]�4 S�
_c ��&ρk 
�?.��C��*65G����p�']7
�x�!t�9TVZ�
 z�À��
Q9����K�A�T8��
(, [...]
+$�W]w�
�� �4\e
��55$�6
<��i�sL[�L�$'�8t<V�(�׈@qx
�B��
�a���/
��pM�� /�Q��t��`��2�
P�&H|�� `ml�.s
�3��ԗ@n��7Кp
Ӥ�螉��0�^
3��Q$�L�fٲd��ڃ$c�0�vI� =P"�%�d��ӄ�� a����
+nsqu4��d �D!����,�_�MV
��M�+
��Ip��,A:F���q�@��$J"I�
-70
�����
ԋ�Q�Y�,�q
+
I�������
���Z) 1���S/\\�智����L�}@�627Ҋ�;�+�&��A����G���܄Sg��sl`�f����l��g���!��)
��a��#��@��.=5#�$��KįilD �pQ|x¦m�
E��sb�|5��5�T&�G��sN� yg�AD
�'�$�ay]]�p�� ##	��C\��t2,�݄R᭮C��R�H�����G�[�$�
�u�wYg0+
��E�
+sa#��U��j


����H0��l���B�)@� �
`i}���0�FW�2�� ��(�hD��p�6^Uԧ,��� �b��LKʏ�B��u���y���@��#2�m��I��,�غB"ԀC�	� @L�
!YL��A��<
+�@P�du����B�Q1	��nb��
p��d�Wk
�+H�)Pi�%�Ԍ&f=�2�����F�����Gw�Dp�a٬�4�z��KH���Y����bo�MϬfXY���D��	�	��9�5'� Y}��z$@L�d7�{,{����
 -6�T�&��� �7`�Bt��=�W0:
TDܶ	�(�
��g�B�T��0��vq�H��!��o40_.^!L�
I~�n�#5�M� M~M�m�h��!tp��Mk����J���Y �a
���S'�
�D���LE�-(���u�7ÖsC$�+o���
+
0T��$���H|X�$t�
�+���܄���A���V��8��@㌢�AĊf
zc&��1 �Ί����
2QJ" �R�{zdg$�a�UI?y�&���.�>�ٙvu���Ǧ��k4`�JIiH�h�|7����@JV��Jz1ȣ9l���E_L!`K	dW�9L�K�
�k��G'P󠙯�
Ab�	<b�f�8ɭC��X3����
҆�O��DD�M:�4y��&�Oa��µ��
�HH�k�M�ET�2���<�z�����aIa
@���qdl#:S7#E�g�
�Ѭ3-����*T��
��C�1� ���jQ( �d
�נhZa�d/P �d�M�X���}s
AF�F#@����A�B��Mi�{F0��-['���-Z������K,�kD at G�Z���¹��<tc�7�4Ɗz��&vi�L~X�:I
+6?�g2�PZм�فbu<<Ix��(����oM (�4�o��7
$5�I‘�9r"�7��3uM�J
+�m
�i0 u�A���7��hB,�< �

&\A��MR9��
i�@����c�Bg�FG� #D �
 
=����䃛��"��x���Qt���nx���ܢ����yOX���q&

�	Ws8:a�4C�k��0�S���Z3�KN]
���f��‡aP�C	�t(s�-(J��
�� �|
+6J:�L
(P��4I�5Eg\���?�4�)����������M��D
/�(W�8X4T�����%�� ��a8H#�FG���c��H�v�MХ5��+��P+ _��dA{
<0
<���
+�_A��9ƽ�1.]���9�	���ZM�ɡ�%�p��b����L�,
+
ߣ�s�����Bx�	�:�$�Dw�hD��/���LD���\,@:X��&b��8�'1q>�[�ġFC�)/�l�K��zd��sMG���
@�ޢ:��:� @,;���;֤��a����K��
�遲�|1�
+(h� ����)�4jc�'.EBH�TcA�����|$f,1���!�d�<H��)"B�G*�d�`��P�E�M� ��	dʇF���u�0j"ʚ��2ߛ<w �1�Ao�{��$�0�K�у��tF|\XBXS�?�&B9C �P�ȜcEOY�Ydb@�B ��i���5xW�z��4�\�#�%�щ�u<�M
ľ���2I�\d��;�@K�%C���	/j&������DP��� �3:�Ѓ'L�j@��h&��
V�!WC���\��3�K��A�撁�hp|���+�"e��ؓ���6�.��'�@�h
�[�aR��Ec
�nrL1�H2��,��r}A��p�1����/�Y�\�ɺ��g��G#�
�œjJg.1(�j��7��C~'zT*zWE�1&���|\
b
����Z�	Q(^�J�\��0���aD�M
��RK2�yu���+)1�,Q����l>$#�'��j�`oA�`Q �0�<O�Zl�$]
+
	\B��V�)�kq O�E�,D;�a�gI�B
7r
��rD7�r�������C6)J#�;*0֢����*��"4{L��6�\8z
�ߌւ���2��=��
+0I<O�$�8M%���fR>◹�x" �,H�2�1�9*�
Xq��FAI���H)АK$���BV��Dj�)!�q�k.I����+�#���Jd�J�ɭ�:�fѱ@'i��DˀR�K�bS�N�M>�系i�8���Jf����X�)���i!�q�W�d���M���*�B�D9h����DL�z�
���J�%�
��ȗ4
+��S�B�)-J
�_��X,��T:�M

bE#ϕ2U&gNd*
(A���1YT�2��q�
@�X�e��:Z��q܂���b�E�)M��2(���,Z�
T8Tт OC"���Z%�"�𫉖t��,*d�0d�_���5��"��
	MN �8���R���lS���5����QQ��������Ce��c�\��s�>�3�
�3����
gp%�mXR��
9~dwP`	
<&Cd��bʑrA:�r$�M�R�r�
V���\�z~^SG��8
H�i)u�X����H��L��a5�A������)|�@�޻���FwPnXR�ښ��p�2��D��ci��A��3��Lv\�d�L#��&O!�e��m���Hb��+1?�9�Ot��
���
b�s��-��OQQ�� ���F��F+�b<);XW"u�L�&��D}�2h�
tUj4=)��7O�%2�=(�8�A�UC#��y.��z��f�-*aN
+�hڕ�T7+���P�fd��������G�E��d+�kd;l�Y����L]�$v"�
O�g(-"gEc;�O���bY�zg�C�Tl����8�$0Eu�u%*��y�t�.��N��K$���
L4��$�$
��+�o/���g�J���������D�7��Y�%��	�RimW�
+ .&� "�$����Џ � ӥ'I���H�IA&���
+�(��+

+[Q��!x�9D��~B	F�Iŏ�y��AҒ�T��Lj10�^8���PT��a&M���
��
�i��q�D�xʤ}��l5��B�n,La&td�ߟb����/�d���B$�*������
�DN��C,�����, 0U�� fK���=�K(%�3�sK��
�1qN�?F�L�h�'n���7\@��P4�T
i/	�/¨�G�-E>9��oS�9h���Gȼ�$��r��#�
f�=/\[��
�a
	�į��GGF�цӘ�ȩG Eٙ3(f ��1 at J�(]��$�
*����d��MD �_D
�%��&���q�B/�scRJ*Ar�(oE:+6�,[�S�X��r
��kH`M�-��H(H^v#E��:�&A�V��^�Έ�g$�7b5
<~�b�X�p�(� _]i�.8��
D�C&&V�Y$�<ҁ@�
�
���i�u�2p�]�N�G����v�
X
�I&ATQ�k*A�1��Ds�bKՇ��թ>����
ኒD�I��EB�4#Q�+��P��%�
�k��ڬ�#
�
.�b�&R�4,;p)�#0��9G����Z�(�ʅJ��q�B��h��!���d�1�X��EJpp(~aQ�4n�6I�a�*%���Z�x��hvR] צ�� {��$��c�Q��^��,�8̘hhR��V�$�:<T;���l� �e
��X��cS�4<\'=iS�i�Dr!�3�-V|5c���JX�p$�u�=yK����Kb�>�b���\o�HaGJ�
*�%��	�}��u��#�J�rt

_L� ��2W�D����l����M��%Q+��yfnty��4	b���I�x%(��Kc���:Ub�]����)�& [...]
+,�a�
����i��)�<�˦��n�����D'J=��Udӕ�!J�%
+���J� (�t�q���
B{�c�B�_8��֘�
ʒ�̽X<�b��.��ꊬ�ȯ�O��M�J�
+����b~���4���Mw`L8A`_�
z
��Ш=6#�ԕu
�(�{b��j�p[�L�a�2����v����\���
d�X
�`]��+R�T%�q��ʓ
�ƏK�A��JH�.'Wx�{M�+L5U�Y��A��f�Ą�
�2� ��bD�
,��N���XUY��,^��,��"��`��b�_��(��ԕ*�����ɚ�f�
�c�&�c{=~��R(r�ʦ
��f1>��u��V�p��N>,�.S�5�M��ū���m��
�����r!�F�y��y���H��&���KԢQMJ�Z-^��w�u$/ɕr
G�iD���]6��@��2�X�]%��%k�8���W6��ī�p�]�Ң���݆�x
Xa5�*[1e8��.�x�M
+����
���0������ W��	Y����+8���J��ݶt[c�l�u���h9\�\�)1I7)~D^��%=�
��s�@2
Υ"
F)_�V!^ΐ�wH�Dd��dŌN6}���(H�T��)a,U��%�
�

K�� ����J�N?�WA� p��5
oS�81Q�p��7���iu�8�/��l�g��-�W��"5r;\7Ye��K�╨֋�d�]���DeW��+��G
�3d|˔�h�z�X=ޔ��IT�Ċl��#Z��(�I�.O�$[
��&ǟ
+�Њ �C��Dy
+��`I�����)U-�����Jd�JTT$�.�T�!C�D 9��.�̧[���dM@<O�f+S�%�Nd�S�ɢ�9�Dj�|�x:��N���|����㴳��{���&ݕL�&���7ci�R��h��
�D2�d�!����6�;�Z(��H��(>��d�_f
�9�d
!�mH�$I�h��_F�,dЉ�H�m�
%��|K< 
�G��t �PQ
�.]C����c��^�8h�Hi4dF7�|�$c�x�^K�w�(�
4�#Q�(
+|,�R"

wy�s�n
+
�p��J�IJb(�7�
��Q��Ξ�֟Ķ�L]���+�
�
脗��Q��DJ%߷
�>$:wQ73��\1ۉ�.��0Q��P�9�;Oq� �����,bl�,Z$wvc�zUlg�dK�,��%
׸a���@�l��o�(�#�]#��#�߃��x ��B��pJ�d�[m[�}]����}c�� ��O��Ӑxh+����%5j��Q]Jx������CP4 ))�Qf	��G,v5���V�ġZEC��:dž.�Bݑ���a�(�\պ�O~�5�>5Sp	爫Ed�L%��B��ni�	�E�#}�f�2R�RrL�j�w< ��Ew
�K�o��˱L���9���t��Ji�5{�lr�T�U$�4�4W�)
��E¦a�\�&y���+6���bĉ�揄��
�ah:�oN qj�\c��=�,�iق��+Md_\�*����ϸt�U
~
/���4�"
H����Ʉ��d694��͂q:2I���/4R�4!�B�aP�J�\�*�b��WX�Vg��v{����nPF]��2lSZ Pڴ=��E:��{| �\= %mI[�O0I
+Bv�C���]����{H�1ՆA
>�Cкb�8XB����Aj��91�dU�˻�(n�R5������?
+`H���O3U�����ao
�\gy�!yJ=�� ��HY���]�
̀��� 5b�A1�2�P��H
+\Ł}}X#ӞU�q�/dC7�a��eX�l� [k�����7�x'ұA�=���=h�dW���_���ԟ˔y� bI5ܥ�1�r���8����:��l�	�]� �,/
�Ea�Q�[`�nP?��6'߄�GN�z{Jy{6��P��_
�+1����v��hF&�
�9��Ks�wӘ�b3*��ݬX�N�3da���
��F�'�)[��@
"ߪ.Soh.��f�r�d-�&S�"g�ł.�	͡˄L	�ʰ�Z���E�����hN�UŠݱB�AC�rg�"�H��Wa#��M�f5� CNg�Fu�f)�F9
n�b
T�a�謊�Z�U:�,�0���A�4j#7�U����7�00���D�AB�c�0Pe���U�,�$�-��Q &t��H=�9�B�N��h+ʉw8��"U��U�%%�7�0�4�̿ӿL��9�N#Ԫ��LnZ�EM�{Z����:�\�r��'�9
۷���2��%^�L�8�`H
�$�2�u��k� ي1�
�pt9�K]c��
�_p�IT;�Q�
3]n�i.����
��5 YJ������7�x'[I�4���Mj�cJ�i�;�e2�߿&h��
OK�@���=�m-f��gZ{;�����]�Y_�
Uע�Q1���KԐ��M�``*��%��q�c���pU
m������
��s������|%��rj	J<��k�.���m^/��m��(��岽�zS�N��
顳����
Đ���� ���� �K:�~�֐��k�
�1��A#!0�
`ĕ��daO�
B�	�v�
�&
W�2�&��x0!���\���4*X�O�l��`0
+�%�55�#�BH�����

Ѩ��n
�Rl3J���0�HU'� �w,�Ѽ��a
,&�۱}9�e���2#
.ڇh��j�%=u�-ȕ��r�W͕
hs
	�d��J��w���n2$�FB�'�&�-����1��|�Ҩ�
�̞
��g�bІ2�B��a3���z at r_ġ
���G�:
C�`HbB�e��Q�U�f��#��ݗ�Y�w,�@c\���e��U`���@R�B&�=��
V�P�
ԴgU�\,�\��#,p
p��7Y %��.<d�Q�
�hW�]u�I�q����H�_G6A\��R!l|c@������T���]C��%�����j �9�Z��4��ri
?��T��qz�dž��
�^ѐHCb�!L��+KH|�S��J%$WR�4�EĠ�[�Cr
+[+�ߚ�"����ͥސGBD�0i
+��̙
��7��e�ăP��T���k
X��0�b�
��`�:zf�3&�^��Sh|�&��B<�������!�U�����M���^ԬSz�T�/�h�wL�����1��X�z��ų��ȵ�A8�Z�9=዆���\y�K�a�م|&��_�p6Sl�����(�Vq���c�,��-y���qs9��7���RQI <�'ؒ�Kp�61,�w`�SB��3�TG��!���	��ZV��0�Ƣ j$��i���
Yr�c��G��E�yE�+���y���-HM�JU�5��<�̅A=�u��yS^�*w�[�I1�K�=�%�5.��	�b�
T3VV[&�� +�v�E5.��ۡ|��S0���*
��^lX
bVh	�ѧ��e��
�i9<ja�Cp�G�r at L����W�j�
�_fcz��N81���[0�6x��
X��&��R6%��[��M��zx����_���"�[��SwF��9d�S�E�F&��Ny�

TN����Z׻�^�Ň�f�� [...]
+nF�qǣ|�G���:��:�ŘF��nPR
~,��
:/D�>�)��B�~F�
����)�߿��$�rm�V:�U�+�H<
�eA�R *@�<Ta@'E�P�Q�宐��$��V��o%dӨ }@cV�k�����Ą�0�ݓA�yq�4
k@�
�i�HG���U
�Xb%��j{���cU���pn��|�H����.�K;��3��٫��5�ֱΚ��p�o3�p/�W�s�R��s�/�.h�>F�;6�£���Z/����+4J����
vmW�d�)#����z��*� !��Qk��:C-����8
����UѮX�8$���<�^X0jb�>�}�_F-I
��
`q
+�Ɩ����
��x�1�;R���N5/�
��[�&��
9�B*���.��NdS��Q[B�m��cr�4L�8�F�Upe
N���4�(��_nk��\
,��rP��zH��ꆧs-��ke�	��-j\0�������17i�6���q�D�l�A'�z�������u�BPm8
��
��6p�
���a�$��6�����X�9��}٩��޶��L����l{� 9�K^	����mS�����%��
+<t�ԩS2������V
^���Fó��,��Jn:�Ơ�k]:A�GhR[%�ˍ�ro&�&�w8dN�6��wM{�;�����v$$	W6����t���O��:l@��9X�LMu�O�Kv�X`+F�k�-	�����t~N��A�`gdګ�[t��r�V|l-�]�M�,��?qRh�>� G�m��*.���
�Ⴁ;�����k
endstream
endobj
30 0 obj
<</Length 65536>>stream
+B��nV�sn��
���t<Q��v\����
+g�� ���J��
+^�X���R�6�c̊�u�cA���,j�D-�pו�%�/��w?<٣6���3�.l�Cem���j��P2)ꍁ K�v�|:!N�\
ԦEr�cɝ���r�k*����O:��*꣄�L�

�������R9��!ۻ.��q��$l`�o�!��4P
. 5#瞫�s��Ľ�x��@q��3e/34�A	n��{�t�b.k�h�puKX�y�� Bw]�&(�q��g�Em�a�bژ��VL�N{r,��tK�yY��7,!��
+�t�#���lB�e�td-N#6�Ɖ�
o�Q�mn�"%o�U
��[mM�z��,�
��(FC�
Tj�;AgR�M)��_41(
\��^�|PW6����t�!�=�79�����R�q��s�3�X:�7�����"R���Վ�)S�$I���
+��7�괈�LWV��,��v<�dL�:c�'�iO���p�'ֽ��&�9M��%�<fQWM�t>PM�ۍi�La�����C�Hȉ�e� -bO8�L�~ �҈�X0�����w��B�,�e�;�S[
�d�}��↧�铼�_c5�'Kb�?��5�p
[
�6l>�����b�fҦ�U����
.����,n��	L
�i��u@êz

�s��C�{�]_6�r�hzi�
�2Npt�$ާ�L�:U!��]\n��q�nn��6��w�v�6ٔ���t��^Ș@!�
�ǣN
+rx�8���-���rI7���0��#�{F�bY�Phr
7����{��q�%��
��s�<�!�^�Ԁ�o ��

�GmǸ_O:�Ng���������
$�-:#��Q�rKm����@�
f�0�� ��Ϧ�q�(vp#�
�����潸H�##H����3�勋�\"�š�1�%�ԴhS���y
j�C�7@B�}p�������4�#���J0ϡ�i��.MD�P�-R��ˠv5� ܳ
7�bwY؆
t dZ��U�OĨ�F������-g:�4��O��11���Oe$x��c�O�mJ�n�, at 3��(��.:��3����ز�(�o<Et�
+D�Tb��r%�I�:�P�Y��I��7GV���^
��zDU(9P��<�r�;���>� �27X�/D�
����m�mD�՞���Ɵv�"b�N��V
�'���TҩR�o�S�*bԀ�����`�7�w�`l
�Z�ތos�-�ɖ]3>i�fb����ZR�nAB��P
Җ���u���ǩ���N����.�`�Q�H�I?�n�.6
�>�K
G����:�G�mz���n�5$���iC5�etL�ȅҮ�9�4+=>F���=n�L穒rF��]�N)��;s;@>����#��
����
nN#�p�B�_*LmH�h��fz�T���a
����T��4��|����f�rv�S:���dH�
C�n�%�B"D�J�-ѤAe�>��2O~o<�n�DT:Z��ܒ
\
+:��R�)�aE�L��<.��!����*��# T�w:׆�R6�'-S6V�j�i4O��c�/O�sR���f
<7�#��19RS
l��I��e#2��qP�y��N���c�I�8N͑�[p�h8cז�4��)ƚ勸
���II��숏��U2�fwė�bY�RϥF��&O]����ܷ�f�8b�,dqWH<���>A6+b��6�Q�#Z�ޱ}�)�E$A���&��j�
��p�!�U�\t�YV��sVǾl���=��f#?h�:K�:�ԇY\��;h�X.my���:�C�~Ԓ��6����i��O�6nR� V
Vö�^�]�[|P�
%���@�@L`�=ż3�LV��n�`P�s�ܚ =
+6�p��&�L�a��Ŷ8 :'�bM6E�
�UB�Ѵ�DY\(:�ʕ��=��oȴ��0]#�"�w5��u��rt���8�?8�1��t�eMl
�-Nz=�L!�3�'B�޷t�5F��u� �t:�G�i|��ny�>a���R���h���
#��]*j�	�豍CG�S�RC�
6��8���`������2�j���+l�a������3%:��q���R
eP�>5����
����`P�� �z�Q�?���L�z��S:�2v��":ܻZ�9�o,�$8���ޓ�I�����.mw!�m)P�Y��xV�Wِ�RX��>f�����gh!�Zt�</��C��<È	����)?��ή#{;�D�6Ű�$!�Q� �}'����������Xv�����~1&	tL�yܝW������U
�D
�<>�|�z��K���ż�
+k��!
��(.�ɖhO
�m�Rᰗ�A
�R&[ph�#����1�ĝRN*6�qؙy��̬�U�'�γ���
�W�f�Kv���Ի|���jP�)��3�t&��
�qS�jr�i\&�K!ze�b��ѻt>�J
�yo�	�(���\S(�U4q�kR����B)h7����I$5]�&��
�
�s����F K�W�
��٦p=FM�X��,n��<����n��Ǔr�^6���
+�Fy�
�
�ʃ��x��*,o�dh�rT
���x���lĘۤȘ<���؞�:8?���-T��2rl
�Tptݲb�*���A�Cɔ䗲xn!�S?����_��mC�bg��0�;��>z{2�'k����i�
5��&��?��O�Os]�kpQ/������?
#�/h��`��B�7d2P�>��
]�m��+�V�W�T�~��6��`>u�
��>�.}
���
Lu-�`u_�itA���6��dL��}ѧ���#?ؤ��`u_�i�
�:�-z�
,�,^�i��:�m�
+��z�v��9�o#?����,�� +�e���@���\�ct'�m�'z�D�O��1x��"��3)#��O�0����P�����W��nyA�'�G�?|Sf�S��>4��vE�$tz
:�|B�E����L �moQ$At�(�lC���ZHq?��N!��
!��A�F���F��T=?˖2��(ԝ��h�|'_dy�
�۔��Ӓ7�hڹV���#��b������"P�j�����
+�� 9�I�6��l�
+u"%B4i��$����,����Z<�t�����
���Q�+8�/�\R�J7�[
J�"�$sAd�"��
ry
�:6��Ũ��ɷ�WJ �`L ג�D�8y+���Z2JC5��� 
Q� t#�����J��ɬ�C�
�q"�H�ia#hƞ�Δ��6�v� ��;�>ж�+��g�l�U&5|#��D�c|���|��EwAQ�'$o��C�a�B��P(�Y�
��<�t�&��-���qjI-�J�Q�&B@*B$4ʼn��A\7D�fK;H
�8.]O1��1^�V�@h� ��M��N�§����Yr�
���P+m�jQ�
AF�9�$�@y=LM�%<�NS��p1��r2I�2��|���4��벇�O�'��@���i��բ.�R�
\i*/@�&$��7��K��4�RT�)�����P{t&rj�
A��H��
��;��A�M� �%�[%Т �|��r����KMż�?\>	�<��\9y���g��f�2lA/���/�)G�
+H�)��:�Qr�QO��J�oQ�G
:� ���%�W⡯�EC�/��`J��F�'<MR<py�R
}�C���l��5#��
�G���"�^q��l'�9���
�IA��͜դWR0�v����P���
���'�
/�<_��0��T� M
+luE:d at a�A;:�2 ;!\�D�����6
+�p'	
F�
�� *
P@
0��ߔ�đV�J����Hu�
"Ղ �1Hh�}��!]Q�v9j�Hf#�2|��c��VA>���q�� ���
@�T)j��E}
}>4�8t7�Y
�ٖ�-T�M8n
�= ږR�r�(fɯr�4�O7'l"�"y-�xTr��|�pt�Y�;gԺ�Д� i�`���OcG%N��Be
+x2�tU2��|`7J>�A��"|���[����uB�=K0
+�p�M�ņF� F��W�.!��BKʟ����3�q@J��V
ےkf��d.-��-�X/���|RI$BF�*�çiv�8�
�a��C�n�SRC
ar�M��LG��
�6��g�
|�d��MY�M̯,*�$��5� a�}�-'�+�C2	��q�er�n����Y>����d�a��C�2�/ќ��9Iu,94���a�  U��ğ�@݄A�V
+��‡I��4
��SJ9d��Pa�ir�wH��DI
��sNX'�\j��]���f�1���\}Ċ0ً
�&u�L��^���ƶ���l�7���D���o=����(,��_0����`c%�p��Ɔ�2�� 4_2��

+i
����@;������	�5�Un�z�B�/%�ǏC�������$\�����)"���)��+�E��W���ё��|�ThĦtDBx�@z�q���TSsi�)l�)7e�ehiL.�
/��g�����S��(�v�@2�A`�
CS���O
Ḫ���d�!H��Ap�@��@O)0�/��1��B�) J�X)
 ٺ��,5$|�7� �L
+Mrp
�d��#W�LlJ(���q�A�����ǻH	I>Ė�Є�
섆�~|X+!�Ds 
+MJ �'�
+�S��tl)�|���YT:o���N��.�i��-�*��/T�a
�ZN��*���kf
	�4
#� ǍLI6�}�/����By�t�9�
-d��х
a��ߐ��R.n�v0��	 �z"�þ"�eg��)p&hk9aaD|�9�A�9	��ܩ��3����r�^LD\=���aj��y$�0�r,�ؤ�c�>�:�W�i�z5�ղF��+~���-6o,�B�<��a��Θ���ggL>ؙ@~v;���@&�R*�8*�M�|�RET.�NScS67�E�0����4\�L3�nM��ЄA~�&4-�N�!�“6^"$�Ԩ�;e���#�xV�
�( �L
��a
t_�R�!~�FY� T��5�gM��RN(��.����5�
w!R~�O��X*Q� ��5���x�D
�9�
+��Q~
+�d��l�� p
� ���y����N�r�U
+F�O�n���1z
�C��D
+~%A����� �Ay>(M���� 7��	U���F_��Lf��Y]�@���y2���δR����
+c��lr)-� ��

��Ԡ�E�\?S��4��e�����1��� ��ש�
AV`��ы0��1eu)N��X�"Y�|·��u���<ߓ����S-��'j�m3yB
#�5!�JԘ��?��J��@���'�Ӕ̓�y�ҍ,N��Sn���ۣT
L ?��gL"H�!�1x�A���96������s�@�e(}�������8�%ӑ\-`hGΝ��X��@*S��L�%sR��gj,i4�z�x9��_ڶ���!H�`B�!����5Cיt0�|�M}��� <A�dRx��S=�P�ST��O���F��tNp�F�Jp��
�1�PWv��[P	2��/���(pC��Y���ѭ��SͮL29�Y�Ee8
+:RO�D-3n���b��N�z������L��])�u�Fǐz�
ХWA.�۳"#aB:k
+$�dS��ݫ(��r�UdJ"[��lUEd9���R�D<J�`�)C�a���!��p�	�R>8j�h�
��`��+�@4��s���P�ލ�84_ 9�����5/��7!�@A��:?���G-���A�$G T!":�	~����M��A�C$��h�|��7��]|CN�i�[�:�,Ѓd!�Rf9
>R�@2�`�A�����ly��J�XH����H9SJ���s��O�}`�V���d��q1�`K��BU��*�+<)�B 6}�4�MA��ꆣ�J�y
�Z�U�����S�9 E����X�F�Ӷ%a:��Qzw|:�����2�7a)�w�o6C��':h#o��Mi���
�^*ѡ �D�S�
W�D�Q�X�
���a�2i�Md�0)'BK*o�1F]s!b��
�Z�k���w�������&+!��ϹJt�p����4]� ѡS
cD%���!�)C]!�j�U��f�u�H�m��,��D�?oA��	Y�s���
�P�s�� j�45)�L�i�A
��f>~�"��4F%��������
2ٔ=h8!�
����;ڴ�AA6ɡ^
+1
�gy������5A�A��B}^�H��O��L��+��1�r"jP&����&0b��P�-��>\� �cTHa8N4xk��X���	�5���E Sؓ7K͛#�ŀt���1E'B|Af� "��Cr��h��Ӈ�E�*���Cq��3�����

���m%��u
#�yQ|A�1��	��R�K�\BC	�NȍG���������A�\�T�*��G���*�KӔ	+�"I���
^?��ꃔkM�>��
�0�H
�q0�Hi
+�O@e����[�	$�"KVv�h�-V��N�Y��%@ M�ͺn�@�V���Ε4
<��
�V#p�y'xt
�!
l��2�*�EI�Ȭ�
/->�k^H����O�n���
��A$��`�6۬�����P M�Yr+[�D�#e
�nDH

�
+�X�/�Wa�
+��� �t��n�_�q׊0�P��y~��c)h�v[�� h�Y�tWHB�8(�d t\/�U*8YC���\���&����Fı��@�C�
ޫ;fD
�P�J
��%�:ş�@�A��
+�"�d9��;��4t(bŽ��i�r����d�NDC���Ж�6��̩���tg)

,6���
+l���p�pi
��-�\"@��Т���I!z0�>�ՠc,D���ۚDAh�Sb�m�Ph���E�a���z)�� ��FU@��`�����ԟo;��|7�ێ��g��P��`Ȇ�	
!E*8}�*r�T�*�.���/��Q{1"+蘺�q�t�#,
�(�'a��]"O�q+��
+H ]�����
6�p��Sl���
�P!M�6V ���� ��Lv�#V-��1�W��~a+�3n[��~��y0)a��ƮZ	 �d�|6��V��
��#�opS�0�R����  ����{�BS���D�a�В�Kha���"��P1�� �N��� Z�N���R&a �F^�vEdx�'2����?�����I 
+�] �yVO��z����
+o��
YY�`�e+�(Aqp?B<ۯ	 �	=�޾�R����4<�����༆����)
��$
��z����;�u�M���crB(+$LN!��$aP
E�_���,�h7��#Z�i[c�`k�
�
}5F������
�Jw+Q�!�Dq��Jw+^�!�Dq��JwD���آ�
�*Q�!�Dq���
�*Q�!�xq����
�yA�w�`�*�V��CX%�;��(�V���\�P	3w+Q�!�Dq��JwD����Ƌ;����w+Q�!�Dq��Jw+Q�!�Dq��Jw+Q�!�Dq��JwD���a%�;�U��CX��a%�;�Y��C���aƋ;�Y��C���a&�;H�H��e��C���އ+�;��(�f��C�%�;��і�(�f��C���a&�;�'|ۍ]��
~L0�	3Y�!�Dq�0��
�,Q�!�Dq�0�
"�5��;��(�@��񫨩|C�%�;��(�f��C�%�;��(�F��C%�;"�q*P������C���a&�;�Y��CX��a%�;�U��CX��a%�;�U��CX��a%�;�U��CX��a%�;D|n�w����{/��#���
�&l�v� ����
�C;�3;����?UI�V [...]
+glg$J��̋|�3/��ξ��v�uAm癡PsW2����	EmgOBc3����vֆ�ξ��3/mg^���!툶3w��l��B����Y�?���{䳝�p�v�5c;��j�v���w��v���3*q~����v�Eu?R>�γ�T �lg��o;��fmg���v���mgR���Y at 1��}K�mgaɸ�,,,��y�`;�h�����>��3�T��-4ms�c���l�i���-��}8�>�Έc��+ᷝ�iⳝ}+�Na�v�!(j;���[�3�&�ygmg�[n���flgW�y6�@Ob��Y���ج��[al������'�?��3$A�d���~��y��0B��e/J��E�"C�6�[�?���:��T4}Գ�uB

��G�R��v3�����:cN���fLj�P�/�h=bE�&^����pl�
AP5��kQ�ʚcv��4\�k�C�ȵ��BMwk�Hs�nf�
�xv37�0~�lr8�y�y^���+dv3� ����:��!����Ldյ�iV-Z䞄�l�� [...]
+iMn6��
�5�u�� �\�YgWd1�
_z4&���L�l����:{���ɏ9ƹ9l�w��`6��"

��]P�kP��p�f�3'�5:
���Ƭf�H�f��[͆����}	QG]�ـD?��j���]s�`יe�w�i���um��*���	B�k5�A
�O�٬�PU4-[SS��YgV��{�?
+u�f�=Ʌ"�l֙��n��wzV���@Ж���OoJp���v�NsKP�g�
��f�%P�"�C�k6
��l��v��
=�q��$�ԣ�V�
�@�� uʕ��.� ��:
t�����5)���突B���Fl�`�L��I�,X���"
f�֘�l0��o�@����
b�+t��b�<��-T��l0� �=f1\R)wd55��nn1|9T��g1���R��k	ex�˲i�C�K�ԩ$��Ŭ��êk1ϊҏ��nZȊ�n
�@����I��]�R��y���:`�G*#];�&�C6��U�?����D�7_e�RY��DX��xO����;�KZ�H�r��!�X
:!��sG�!�
�I,���y)��{1���d^��ψP
����)틗�9
+��K��5z�!iw���=k�_[�Lz�D4�x��I !�!Itb�'C�5���L�#7�C
��:I78�b2�d��:�Q�p�N�8���7
�Z�>��� <n�x��+����$+��:zZV|��d�n��u���\�
��Ɋ��a3*�Ͷ�x���H�����@?)6[�u�������#�5��{��I�l��u 3
p&[F�5P��~r5ot�Kc?�w��O׼D���L�]�X�j �z0U
��8�?����C,�(���/H�-�H�[��r��#dC���7\Bv�u����{b�['�l!��u�Vq�֡m��ݺKԂۛ[*��:�H�[�r
��Z�['3��HeS�}[
+�T������R�����rY�t��3�X�ě��dλ]'�,�,
�_\��J�*.�U�v�W$�.s
��u�.��NU<�`�i�FQ��Y��ln���d���������/���PKf�ܻb��黉���A�VA�
+Q����}ӟUf>^�S<��= P��@
+
�"�
(ݜF���#�!��l\��W"
����ۘw@�v�y��q����
+�Ra�'}[�$��4?J��X�(d�1z񀀦��b��Ą"QM�
+�6�6�
2�i�Dָ��j0�Y�O͑�8_��¾--�G��5}�S'3��Ri�
+
]f�`�X��up�{
]& U���:�<��W$�t�B�?
+�q�|���Amf4`�������i�ͯ��X��6w�
+��|�4���n%��_a�؅�ϝ�8[������W�n>KgJ��յ8�����5t�d
+;�V����"�����'�HP��2C&��%��)4�_����G��,��8Y�ڇ�H@�W��#��⭹��{F��4���u��-?�C�#(p�H	����)t�b�A.��N%��f�p"�9P}If��1�E.F�B�9�1�n��2p�p���%�U�
+�II��H����"'�	7!�!ܮs�T{A���
N�!������������uˎ�3	'��܃A��n�k��B��2
-Kc���P�-%�K����SIP�1�/� �Ug� m���J�{�M�h�1�p�Q�������2
��(�X�
#��K���b�.��+S�'rK݇g�>[�R��n�c4	�x�{��
2�*
+?ȆT�8?�r"+��
+�yh���g�o��<�N�M� �'}��q4��0K�ޜB�]zNW�>[��~�����a뻑�1�?FVӽKbT�a6U���6S�LWD �|��E/���Npې.��Q'��*-���<"���r�R�"+�Z5/�[	)�W�)_ȑ}���,�����d7v#�����-��z7((� K��Y�;	���VF��O��cZ+��
ff�9۱l���]j	��*{�4[��0g
+Y�MoD��1,߸U��g�^ n�"@�>�;���$�3��E"R�Bz���VWv��6�
o%U��y+N\��.X�M�2U�)�_H�3v�lU~@*R7h�M�5�JCo�x%��2Oݦ:3���I=4]Vf�
�,.�ΰ&,���#(�G;�}�*������TV�0�0�٣Ecv 1A
+NRdڐe�wCPK��W�>fj6K8_
���~����U�Y䷀/���:�I�IL�Jb�!�ic��BÕc�\��Jn� 9�RW�@�TL{r�9�f$��nVO��(-�T��q�Ui��������l��ܼZ���B
k��'� �^~���9�y&(z'	�Xms&��Y�B2)+��Z��ѫ��J�؎A��4�9�2S�hh�7g%����ך�k��$q��@��
� o!I�F�������{��2BsuٯuP5�k@
�.����s/�to�%,�"�&
�^d_Ĕ�䣗��Dۑu`�6d�"K���
eLINʉI��xPC�o
�|#�`���/�}�d��Ld8K[��
$�_,]��ŀ�:j�\;�O�'0p���#zy��Ry��p^&ԗ�!�iȵ+S�gm�1V���||���xg���}�ί���)ܙ�}gyw��d��O6S��w��@����k����~E�
+5���,�����R�>gr�o�y/=a�"�$q�3rZ�]�ޒ���bJ4���@-
� q�уS ��]^ ~Neһ@7s� ٹc�}��&bx(�G8����C&=k��§�`�&����T
���] WxNeһ@ s� }�c�6C�?�����#��,C`�n
%�~v��`��i�p��	�b>�R�A,�v3[(
+���
x�H<3�3i���(�銏
+%V��T�fT�TV������W��E�l},wY�危mY�Y

�j4O����\��M����Ud�V]|̔�pN��}`���6��
ŷ�*k�No��KE�9��6��98�1E�'��=��t����w��9�y���/�,*gt�9=�[�
1���o����j�6�K�T���Q>6<��lɏ�Pq�柋"�/��ݜ�����M�pO.�����6�a��zҜ�s��\J�:؇
1��B]���Lj��]>o?�����
�}�������Z>
1�h�?J��B�j)X�%G�L��WG�vH�l���l]�d�'E%#�%��c٦"�dwL�h�.�j��:u�EjBɂ����3�ۥn����n��:
u��o��6��B��P�m�P@�~j0�"�^�����QөOJ��j�n�_�u�7ެ,@�v)���p�.�l��
����.�ߒ
��7KA(U���k�o����Ɉ� �c�	�u��_齐��z�h�9�	�o�����	@��I
+4u�^�>ʞ[Y�IP��DWXn�r�E&� �����m�V�v7���{�@�{H�J/����^j��d�6u�MꇺrT1���0�j1lL +�z�S�W`
`=2X�ȉ��z�Q�ɈL|�)#�ba"�(=�3�R>V�%��׀�
6&���x�$	���M|�E�O/������4� �̮_�A�1�Á� R�(P��`p	b0nfŖ�:xZha&b�&�L/p}
���4�5��UӀP$V ^��I�iS�'��`�EXL<T#l��T��T��A�9(4����k���HG(�� #�Z��)A�Ma`�bs$be
��AD3����(Q
c±����#F
��`J[2G��OJt�ca�ן�!Ho���9�����EL��aI����� 2<3��'^V`=x^ /J0S�N��Ù7YUQ�{E<�5%v������5x~���M"�-8��t����qb�+\`�^���R�+�"����J&h�G�����Xp催�ƯP{Ӆ��i�g.��bB�[��
�G�:����0��q=
¢6f(04%�U"�O�Sz� �^�22��{�?��|01A�M��J:K���x
��B2��BK ����
2��d�4jd��7�P���nEi�-ˤ�n��D���:�uO~C�
2g��z��3sjo:�]o��I��x�L�V��x�vC�E:P�I�H��
+�@�IٚB+�
@H�#S؃5ȎHb(�yr]M�CӁW����Z�,ؚn�L�:��&-���v5�a��|:�J�M3j�SZW�#f�ed�Lo`
z=]��M�J/�@�,Ię�
Hׅ�~��:Àw��4
.�h@4}�
���«A�yb���Xi�d��"ٙ6&؄�*��J��^u��o�xZ{D2fd��R�D���
�7�
��g�	`g`z	 Ħ���"(�M

-��;:�GJh�
��zUe��x�ʢ:+���%d~��������4ح��K�?�0�?�)�W��2
p��� �T�FI#�A�H����L�N`>t�8P�J!!4�^m"��ps��<�8�9�!v�)6�E2
���
+J

��@���Gm��H��e2��x���] B��
s�I�ro�1�@r�)
�PD���
�ES�rab�]���N�L�N*���1���&j�U�0;��FN��4�+T�i�

1C?0(�
�t�A��%�I�s���b��
�Y�F��I6
�ϣiQ����:�BGހ)¡1
d�D "��$�
�Kc�#�FE�
�[�P!R��60�8�![
�0�%<5h�;�y�����{��.�**M�mh�u
�tH�'ڌ�{ �
�$*zLԨ(oCF:�[`H@�&<P4�|]r�A�����
�@�V&��AR�i�j=�65i�
��C�X at H�4��:���l]�(��~���P`C?Ҏ$ӁT��:+\�!
SZ D��ׄ�4��/E�3
�U
��;H���uքhv�^I��ͪ�,��
c�^Wi~�4M�M�%lT�>T���F8�F�?�f�ܢM�MG77�@�l��|u�:D�Q
+�d�T�X���eb�!�x�v�Q�R���eS�A�O�7��v!mjT�S5�,[5h�7��݀L^uTtd����,�h�T2D����� ��Y
�
c�[*�F�C
ś
g��X������\!���
x���@% �Dh5�@)��DH�"����	�(�8��sw����Fߵ�2�`�`�:��F 
i8�F���D=$�Hx���{*�e�K����p�3
a�@������P&��H�yT#L��}I�R1o�4��%�7�P�(h�` �TTQ��} �L��@��x8`?��kµ_�,)�N���&
L U��C j
YbB

�F��������̈́@�* �
�XL��  	��A
@kG��B������E=���P
 A
�ob!!H4�	��
 ���/C#�6��	�1�ٲeA at f0S�/�A,&2�H

+֮B�,
��F��Y�
Ū0�
+F?����#��hЏ�[,�
+�<p��P$S��D8�f
f
��].�P���P���F-��ʬë8�l���=Ȓ�*��u��C�$���OjCؓf�G��$����"ГQ��_u|-��0�P��U�!<��
+p��U
+
�ia��GvUL:&���� ٟM

�ŀ�d�]�V���"�T32} ��쥤
+1�H����hH�1.(}���^��&,�P
�'+n����%��ܘ��Ph(#�1��2�b��Jh��*{Fh!�|@��#f(���x9YA�iI,�����6
B
�S�L�%���K���F�j2d�&��FC�1�6j��&�qB�nEa��+����ry���Z
+rU(�F�jb�����P�S d&�$ة��]
p��T��K� MlNi���<@ ��D1E'	n	�Ym�y�o-곣��	)����/��PNJȐ�R��9�!P��Y�e <��	cT-
����+�v�
$�ð�`%ZT3B�Txk
�<
�T�4���
�s5��Bs�3�c�κ�L�:��#��D �"0���Mm`�o��Y���t'c	K�cD��F�I����[��2���d�l15�2&��k�t�(4ܨ�F�	���߉Z?4��n#�X4J
g���V��`��@>!�?	���]Q��l���T�cQ�
j�C	��<�77�"�Iw6
R�o>t�AUba�eX-�v6��G4YPK�&˂[i����EùY�/h94"�ם��V `�tлLZ c�a
�ݡ��4���t�Y �M����h3m�펐8z���F��>�t�G�Ti�h�A
����NN��m�r�����l%�@_ۃ��*�����0�Y<0XV�e���gC�
+�
�@�6W��F�I��Q�6�n�u�T�d6�� �+観h���0�X5Q�G
�(�NB�5�oo��ᦀ���E���R�Ej^��S!+���
ʢ����\Fݏ����i3� �& ��JH�d�:� 3��K#:��@'Z!M�GVX�z#��9�u6�3�s- H@)`�� �dO�/1FY��cD�[RE��HJ�a�,$� ��0d���	t}�A p
B�� �'F
!l�t�l�xЀ�s������9�Dł�sCg�
~@���l��NV��x�$$M_� ����i��ac�|� �U*��C��Q��;�:�m|�C�TZ���Re;���������Ζ��N$J��L��<�BY��2ӳ\vda�/!�"j�����Di�=V
�
P�(�F
V��Pu|�Q�
�X���+��2>����/KB� ����Z6��H
��}|ؐYC�'�?l�u��@�F8;��0���2m `d�U��*��l�(��$�GI�"Q���<�dq�&Db�3^�faNN!
}H砻��M
+�\&
<���Y�
X&�MHe�Oe����2)��3:hӴt�)��
J�
�
|@�������PŦ
+�gY�oҼ�"����0+2}
z2��2����O��Ya�
(�_���Y 
�Z��i�|_���T��`�;�|�bC|\�-ɦ����`٩"�G��8�H'�D�LV��3NW(%;�[U�'��E�FS��Ťgp��@�Eq/АT��4�$�XhX]0^8B'h3lx2��j�$���b��
���F�]
�ظWdg�jS�h
����G�
3���N��;�@ �\O�t8/��B2P�wXE�&v�����h�PD�X
/

�:�
h�IJ����e�M5Y�)�
��C"���	^�̆��x���!���F�8�Ȃ7s���阄�ē3$C"`�P�K��6:fL<��'����b�W�ۘ���0��`=�5��T
�w��!
͠���	;QPc�4pё��pN/љ"���0� :	i0%�Oj�/�n)���s�H�?M���+x.�ѣ
2T~T�
�p����D�
g�6�"]���kk�񡁆����V����*U',�\�B_/�
�
+@�kZT/���*8NL�#�R�HQ�9���o�7ѻ��i�Y��#Z��Jq���}�f�0��\
�{@�{ڴ讄�pU&
T,��e
+<A'

3���1��28� �
�k_��gP��
+�}�~���eX�<�����J��[
i�ϒ�@I�����|��@�p@e9�
��
=&�B8�#K�!�U��e���A�N)����P�p���5�]�ɴ��� ��p��%	�lp>l�:ڎ�B
+N	ܹ�F?x�H	�p�܂�
�1RAo�T�*��&�A�
)TG��5l
�4���)�j��� o=YU�8��
b
+�
y7(wD��=�M*�AZVYR�d2vR�;Zǜ<PAg>m�*K��(,:��Ƞ������V�"
���
+8�&�f
��M>�
+�����R�YB�V
�c�

n��I��@g"�<H"L
����*й��GA�;�$�„QPO!1
^�[�"P�`F ���`cFh�S<�sD,��%;
P� eS�
�
+n
F��G�܁����nاNI�!��U�k<�|z�l�U(����
^��T/I��'�p�
z at 78�4�1S1E����}���Dg*�1�=�
@6�Rw2E:�-WЋ�

Î(��
�H�xk�n��_h��8!Z�'~�m
�����ڨp$J�'��/��"�1P7r

T�(�Hz
#g�ٔ@c$�j��T�F
�j��
�D)�
+�Ldt�+&&( �Hzl��b�(��n	u=0MA��:�!��U�u*�ᢀ���6��צ<Q��� �������^lp��HHp� �Z
v
sqŐ
�*s��LDց�7�
+D��q����H����h���H
x�MA���
X�,�
	�'�3�-\�S! 
��c�T����2�Y~QG\�n
�~�i!���%jj*5���ۜz|e
�sr0�Q]���Q�� ��4xOa����љ�͎��ead�]�e�(a���>�O����"���
��]�(�p����٬��@�c�������
�-����h~s�(
+Uq�W
v,���Q>>ԁ8�5U��RG���e��n=2w��4�߇Cz��!*�:���zK��g��)$���rX�6���1M��p�0�4�
+� JE �gf���+�F/�����[L��>�-�DL�Ą#`�%�F��LF/*3�.��O�*㑏����r���۬�,���w@&
v�H�ۄ��@��3�7
+P(I:���L ��Tl؁jz~R_O�(�*�h0��H���5K�%cn��e
�1�y�S�4
_@ސ�
�
I�@k��4
G2�Ʒ�݉��Ao8���q�:t�AC�����^<h�^p�zU|�@(B��
"����������ߺ=����٠_
u�2�H��r�����X�K�;%���^�
�B�Ơ�R��
8���-g85�Q��o�1]�v;�Qu���d��>��I4p	�D�B�
+��5��j`�M�
+�T�_�ӶgA��O�s��䋦���sZoρ�	����:�}����Q}�MT��H �g�y�L�BF.P�a~�����0��ז���%�ڋ�QJ#��|�SZ��/`p)D�J����� ��?�ſ��0�B%5"{��`͓N�p�J�D �
+�
��Q�U����,����H��h�
��$
����XWתK��1���l
�c��ތ���z��%�!��������:u�
+���a� �'�g�xvui����Y�]�d(�)����
�q+22��D�F
+�@,p��W{N#`����hc�j�@����o�d�/	�z@���]0N�VgGAt@�&�(
Ͽ��G�G�����s���<���O'�G��"��v�‰+�<�X�3D��E%�GX�y�`������Х�o]g�;�~���d����32t�hŒD���_ci���:]�5�'$��( -
S���l� v�w��
~l�4���~��Tuܩ
����;Uw��bu4��Ji2�9�����#V��(*���ɥS��)�c 
����
v�, �-
J������_���"@�6H�N3�X
+���@S�
�����E�A
�I
���ؙ�q�
�AR�h�C��%l�0�
��
�2
d�`Y�rg�{��}�*��w����r�- �o<�V�?�
�-ԂE����l3HOu
b>~�>%Ol̛�5濞����<�	x-,��J�@.\�j�dq��.<t�a�|�
�Y
 Y�T�Pk�
��4:1r-:҈�1}�o
+�1�R��1��4�2�?�F�gVX��\���W���M�����o"�v�R,�/�>�1��;OK
Ȧ�AS����H_�+�����W�
�X��Ȅ�ilb�����F~�,�D3~*-?�D n������~
�CT��Ӌ�g���AuN�j��H������ܔ�C�}М������+��t�+o?��:���S��3t`��
Tt/�H�m�
�m�:\V��Y,5�r�����iu���E�pԼYh�-����7�n�B���_�mQ$0�>���H��=Dh
�n�X0y��9��)���1����^��364��XA�M�fF�a�Ԯ6����4��w�߿A���K����?�� H�rg�n���2��D

���쿆U�,RNs0r��h܁c�\�r���
���(
�3�c�X:Iu���a��
pȵn���(����P��k
�����]�ܨ�ޠ݈\0
�u���xT�˭����NA���^������9�#OC����[qz�����9R
U�c�R{�szl!��
�wq<�5�E1�K�U����

;/�UH�Ơ����J�6?���W���k��|\�v��J��	��}̋5����/:����O:}w@^�׼k�t4�T'N%�F� ό)W�����9�.xw�
+o?������̼j���� ~���a�|�a�߽�ej���S,~!�0�ݖi�q�b��ݟ��'�)��%��7�����)A�A�K6m]�d�n+/��:�
,њM����g�e�d�?Y��[d|�����YL熨}�s��~.*ۖ����d(�h����_�P4���B�O`(*�(���q�[�ʟJ?�է���
�����g��A�Sm9���ϓ����_�;9)���BH�tR�QtHK &�j@C7��?qW�
��H�ɾ�8���.������~���ݶ���)�u����0��

�/d�E�:���t�S����迳A�����\MU����:��\���f��B�|Я�K������n
�HF}g4(���*s�z���*�.T�f��c�ѧ���x��#��
#�͡�? 4�?�X���3��)�N��'�ɔ:�a�e2����dKסH��D
���^��/cm��O,&
E��DC�ʁЃ7�	��v�4[�T�
�	ݴ;G(��B����B�?
+�O��N���nw�+~�g>
��~��/�ߪ������N
�{��i�E��*��ΰl�r�
)9�#�nϖ��O>Z��t��
Y
���#E�{
D��}P6���	"� ��:$E��*06
+�wρ�{��@|�EuF�c��L}.��s�!ǩEq�Br�"FU�/��8Oe��o���ݛ">0x/��@{�x�h��4�`����p*�Z
��g �}�<Oaw{� '�XU�� G�MHE��+
��ҿf�.ͅQ)����
�ך���AG(�
�����U|[���N��\҃���DH��W�!a5hU�yߺG�Q�Ţ�n!Cq�s@����
��k��j
X�悺��s��C0}U�,a��;�7^�;�"

�oiU6�zy����tag#�[��=���L
+J�#?�P
�<}����k�|T�H9c�_�2#�k�(���e(��e=C/M�D�� -t���N�B�˖ׄ�>=@�1�]X��C� MyI�pT�

�bK��t;r. at HA�ט)��>��~0�@Y�G0�f at k�G0��؜�3`!t?��`�LY0z�&/����^���w���J�:���[1O-����`�(
+�>�
 ���C���e� �<���جH1���T���s�S�J�5���~B�OQ�����k�8c�Ehb��}�f
��j
��	b/K�������Ѡ��d��	�}�Y
+];�'�n�?
����W'�ء
2G��D�
����_;�v��`^��0 �S�
�B
:tF5gT
�f��/�C|fP������N��݉���N>�
~ߞ��
�܏��пz�>�
�N&�Nm:ቓb��`��&����z��m��>���m�W�g�~
+��Ǖ_����T��
+�
+����8� F��Hƾ_�P��}����o�l�f8��_;�Z�ڈ����(9�3���������1!��oͿ9վC�_��?i������1E�����d��k9ٟG�;�*��@�-�]r���E	~�m��K��_����/�cP&��,kj�6
U�,Y����,lќ�Xf�Yj��2cY֢�aʲe����_���N#:~9=�ώ�d-�Nm0!b��iNΉI��gf��œԢ�)��i�ah�WK��o1��zVYӣ�d*��\ѿ��oߙ�o
� �bi0
՝x�r����z=gRmm�?
���c����!'SG+�b���@u4�
��F�>�F%�³G�5t]���?;�V�#p!�l���D6TKuA��&]��R
���W��&
�
(���3��	��M�FgR�u���o��@i:
���� ��_��p��Xuo�����H!��V�3��d�X
�ՙ8�1i��.��N�q3{���@��
+t��Vz����jN�{
39h�:�3������@��"�:x���W.�n~亃����ۄ��^*�A�(v�}�;`�%�|K�Y�-�|��
��Ny0��,�G�+%�A�� 6�6��޴u҂
+�H?od3"�t��M�/�7�:#*�
���S��V�4�{�zs����:��U�4��j.F�3�p�������@
D��
u@�C�)R�م[�}grV4�|���Y�'�KN7_�nG��
+�1~��$��'�z�
�4V(��
�2aC7)*	��0�ܴ��<���%_iU1
�3p�	�O9E�e��
�
z���υ;V�.���Oasպ�ă�/�a�g�����8�4f:�I�_w~�4a;d�(��J���s�_�;\?X<tD��1>�����n��g�B���(a=�����p>�P
E^4X��0Vݲ-�P?����1'��)��yH%
��@�(�
P]�& z���x������A?/x�/�J�$0FC`�����v;���
t0�t;}'0Ƌ�㏍�������e�(
�i�P�NR��iR����It��AÙY���@w��Z�{�
�]O���d��[��a�\F�1a��_�Q*i��*��Hr��s32��q���q��h�ƒe;���0A[�
���('��7i�b��	���zr�p��ܕ�"��5�I˃K�-偃q��
+���*�!��*M>��h0L��*�e�9�ֻ�!�^���/b�Hw�VC�N�3�.��;e�Qgтv�{8]r&�!�W�:4���;o�e�:�v�	��o$Bo|��j�O'���:�G�wR�Ֆ(�ӡ�@��qX%�q�7bNv���c�4=�o���f!��^�à{�\�1�DgnL�638F��Fc�5�<Ox�HN']�,˘��G6%��
x��o�U�
8�P;0��5�q�7�V}�1��Y3�J�9xRˆ�-��>,Mk��r��^Bۮ9�
������W���"�
��<�W� 
n���||�*'�h���J��0
��y���=��w�
=�������o7N�
�Ҝ���[�;��ޙ
"���Y8�n�
��#�Z��]�:�oBN��u[�
r�uo�
GIa�������@�@fDX���E�V����uT���b i�45t�O������u1��Fc�i��, ��Qc~��ZD@�@}�:�u&���[{j���㬻�h [...]
+V�1�B�
�J����0�+
c�.j�'�F�s�Ga������1Q���;o��d����Zt�Oz
�;��g)- �Ϟx,�#��y[]��g
,��q��pF�'X g�\��m�>��C������Q���$3P�ьɅ��<��,�8&=ȼ���[�s�n��A ����
���

�p��И.Vh�����
+�y|C~��i�s�d����'՜��P�a�>��/�֩��ܒ�|���2#�=A�
+]EK���S
�x[�1T�9/>��(_r=��	���!0`��g&�`��I����'J�8�Q�?�J�::g
}%/D;�|]��H}�O�NfPG'��k�l��@�W
x�6�@��2�ο�n�AB�9����<Lu�o���k��S���������8���
����;��8�y8���\���'G��&

��� Y� 3~�qó�q�׶���� qV�xu�
+�` �
T�PLcZ�\J4p5�&ɿ��~LC���~�p��]��Z[���h;@:s����&h��: ������S
��:u����6
��Ϡ��5C{��#�4��;��������oMph>I��Qg�����U���Pk15s`�&��ɶ����m�5�
~B.D�L�J��j�	��;�2$�!��őy���Y���o��i�
��!�Di/|��s����7���/?�U��J�j�A6>����c����z��M��鍟��99�ȩ/
N��v�P
����g
+
��?��G�
a�����Y_�\=�|��p/�e���B��UY8��ξ�
��
bǠ3�� ��4;���.h�w���j?�a��u�}Ir�D���
+�4j���ƦT��	q��oS$��_�NN��9������
����z_
���c6�D�_�GO�fk���-
W����S�c�VY8d�{
�y�?x��Z�J5tH�o#jد��[�+�xa������.���,�(�


l�"�����d��T�.:h�
�����5��ʞ\)��G�6��r�\�zUt㓺�����s�05v��]����,��n�OP�):�ug7�W��qD"��>&���qT�V�..���E�L���LUo��.H���)���Z����5E;r�>41k��pӮ��5S������9ZM〷�!ό�̀O@��+�Z��{,��Vq��.,=〰�������V�foc�z�}���GR��a����/喷C�N5:^3��Ycu'qu��
�<n�&FӺ��*�VPִUIg^3�mi-��
�Lķ����X�-�'�#t4I��'���ҝ��z&�h}��qG�33��y8ɼ>����v�78'
�I{k�X��2��M굻q��4������L�i^_<<&�����NE���D�-���G{[���4:l4�����
�
+3ͧ3�Mtow���$�6�e:^�3u��=?ظ��!��ϭ��k�=Sh�S�u-Y����n���R�~
mճu�"�nk��x2��o�ζ_�鍫\ڙn�_��w�������6OڴgY�U�Qg�e��|�Hu�����4yRZ���Gmu)h�^?%���Fok�t7f�
�:�7��^���vd��z�h|M�fn8�*5v:�X���|��l;��Y��ܝ�B|�&�m�c�.�cu�L���׍�
��������dB���*,Ƀqc\�O����a�y�8����L�_�-oݏ�><c+��j+
������_��1Oog_hcʝR �{+m��g���Ak��s��m��=�J�&흧t�
J
�x� ��.�ѰL_Ne*�j��hƽ�ZO�3�[�f��=[�n����Յ]
�^%�өb�Y�'ޟvZK��vW�Pd���lE޺Ni���\�������f/�ʥ��2A���i^6^V�w�<?�<�ec��hJ�d�'�����u��Nh߰����d%Y>�L?Nm�
�B܎�yS%�s�ӓ�`��l)/񃌔{L�H�x.C�cs{+5��g�ʏYqa�BP�9h���%2OG'��ʑ����B��hR�����s�ďczi;���0�n�o٭�hΣT���aJ�Ph�l��:��j8�jg��n��2i�+7�kP�w�}m�
f#�5{ޒ�o�qz)�,�6��ٷ3����y�EH���l�M�U$�P;�H9�b.\���2�����Y
+z�"��7sٌn����52������N3���f�u�襺��A�ܾ]#M
o�

�ۃ3%�
1��������2�Nڔ[�3͍�AF;hS.����sN:8~*��Dk��K���o�W������,?t��n$�
�����H���B�N.~(��~�YqBd���e�6͆��o<I3�Prhb���҇����na�$
�����i�!Yz9J��v�%ϧ���p����|?�$KӲ�}E`��HA/1�����g�.~p���quU:�<$��P/K�i��c���
Aػ���>)�&�2������*
�Zi^�������;���Ɔ9wpI�z�P<���� �
쥗�mB�[�譑a��C��a+d
�
�&��
+�J��5���^��,��!�vzg�!��\
��G��8�: �<$ETb����b�B@����o�9�a���_��K��
1�
n/��!G(��x��y?)� �@�ǰ`.�Y����Ⱦ�~Y��, �O��~�D��G*����yȢsELpts�HE����blv֤��m�?a���>��:��h����_���*�
�H�	&�m�!�l �H��W�.��GQ�%� �o��<sޫC�a+�����M1�;���/�L��t�ѯ�m&����\b�)M����N���l��^N�vr˛Q"�$��cqiY#�K�-q�z�Jw�+�l��}��2A��'��挨vlݠ9Cl1�A�ʹ"���
�GO���-i5q������}���=%N(Uq����y��<�
�����^��v�9���x�%7��[	?#�z��o�c)c[�v����2�f6��V�)
Mm1L
{���MT"�i
+����
�T=����F�E����$��hJD[������	hJ��q�
ӄi}.�F`j�d�پ�o��bu��<[���ӏn�R��zx��߲,А��T�1s�26H�Z�"񰙺>MP
��es�D[�~�8�f
+�f�C�, q
��~޼��WDŽ�����
d�QA�o��8Lu��j�KAO��8P�<s�t�����S�N�ڞ
Wj�������=Y`��7(�9L���-R��.�/Ε�ղ�,��C���}a�+�o�����p��W�)J�%{?�v�E
�bSs7�ϩ7eo�������u%X�#��l�r��c�m��=?m���)ٕJ��Y����b�Y?9J]E%|�;c���g�k�����W��x�.�o�ZQ:F���sg4�3ە3}��=/]��%F����szs�
�J�/`ݥ���.m�S��6MI���xٷ�I{�8�~(k��Nm��vb�r��m��5®n�}����t��U��m����מ��������V�C����t.p��|$s4�|�4��b����ݿ�ƾ�{#���0_�_�s:~�{����%�࠙�;x"DȾ�gZ���/4{�L$7߽�|�>�"Ȏl-����+N��wr�.���Y#���ۜ�B+�N?�2��*F���~�:���fO�q^�
��|1��F/e�h��j�R��xve=e+ [...]
�d
�^�=�tOtO	f�����i�^��ʚN[;O��
�y4�Dw>���fLN��d�����y���C�QĞON$ͧ�Y�i�IJ��d}���h�L���]r�>�$���.��Go�dP�J��
u
��o�l9iڗ�6V2͋1�ȔU���Ws��S+�N�.�k{r!i�ޒ�A�����r���g&�h'^]I��8��5
U�/�����ĵ"TTlw�T��?������<�/���w�B��Qf�ি �񺞸n��B����4�lD;g�o�rN�)+�~�
����=�������C�F7�v�_8�
MDG�|��?�Ǚ�Z.��-޽�z���Gz�X!���
4�]9D��$�Z9�i�G�ؓ�=a�O/����qb��<�4��
����l��l�6�n
���a�
(&8b���[�}�H����
�
�b���֯��n���P�q��#�یSa�����G�
�-}�{C����乜R��}��WŽ�� �W#&`Qo��WZ6�G�/�Q�{A 
�sN)ϕ [...]
+�����1G�-aJ{���
X(g���N�)�
(W��
�#�n¼me���xGߑ\�(r���z�]gg�G�|{��	<������4iՆ-A$ ý��扮7�v�Sg4�z���P�=F�Y
+�]"�v)�K��������k�ыx ;��ύB��i��� ���싽 qf�ӕJҊDW@!4fȋ������
�����2��t����J"~�>g���+�a�l5��������Q;͋-I�~�.�Fdns����7>&\�M�÷+��#���jj8���S��Y�L�KA��˴tc%�=}���Ybm���:�F�?����$���̨(�o�%̕
�
 yJ��� N����s�sn�4��R�,���|x{�'�2Iy�<
+r�\��^��m�m���Q��]�p!�Ŗ o]�f,rC�*���Zc���Z|Vz(�;�f����<%�
�v1��R�I��̲�;�-�zBf޻�,�/7DD
�qR��
�("+�/g6;�z|��8���
��z�����-�<_
��e�2��'Ϗ�p\ں<(�!]���<�Vo��z�e_���=�d�o�W��D�怿W���Ü�
��
Ovٺ�S��p��.����F_��� �v���Y��v�F���<o����x�x?�
��8D������mes�����^�s�*����D��5�^�ۉF$S�ofD��\<��B�)��K�~{ ���7\���S���Y�㌾��Aq�7�a�=$�6�T�FV���粓���n'����K�I���9ZnJ��xە���y��ع����89�"Rc��Hj��'j^�t�(�ꍝէo]-���V�t�&�nk���8[�ϓ��ևk�U�a�n���,~��s�ܮO`��o�}4�����p�M�Mٰ�v�#6z�]�f��%�����@����w��jv{��@�l�_�.VO��W˫�vb9��o&v�}��:�7V�7���r�%�������
:ZY
+�_�����Q��?V�䟕DbtQ��_�=�zr�J8�0��`
+t}�=�?�C��	�|��|"9�a�+uy����#�$_]�'�[n?�O�n�
i�=="���82
�ܛh�ѭ�ީ��dy�}���&�o�+���M�~�&$-��m�'
�-�[��
�i�cR�,�x+�<�J�S��F� b�>K#ٙ�C7���4���>��
��kd��+����j2W�Y#�0��޾	vWn��7掲��^����c$�z��_^�k�;��pk#UIn�����u3������
�8�rڈ��
\�xh(��������Me�)~���=��zdliG5�VW���EN3�r�?
=Z�O��U�����~�
6v:)��{�zx�Vt�	��F7�����������~����Ld
u�
���z�|�ʿk�t��d�['�̱TNd�/�v�%�Z�����0ra�
:G�|~'[ؼ��
+����Q*��
��%��x|w�_��쎲'�i�8-^H�3iPvΜ���yf��+�-����q��x�/^�����}+R
+�m��
CG��Jc�ܻ)�\
������C�v�ƾJ�w��]��
�k7w�������vo�����T-�Pe���!��.�2y2���S����|x�U�{����<xћ���Ui���5
+��i��v
��ԕ�~��7Z��F��-5���s����j��t�U[v�h��ZZn�s�|���u�:��X�5��w���.�����ޛsZ��׷����s/s�����j�4U�/z�:�*�އ����#���i���|����x:��*�xc����e%V߽\
/��W�l�V|����χ���Q����ҏo6^�����E��
������4�ݴއ��w"%�OW۱Z�`�َmG���Qt��}<�}��9ɧظ.Rhfd�,��o�3C9i�[j�|5�::��S��zh��&��y:7�f��\��L͇�'��;S�֤T;��'��
�����:��-g*Oq����_]���
uo_uN�_���N*��DlK�&�Wk�d� �J��q���*�q3��rf�+men�k�Y���g�w�z�?><�fګ���c9��G
+�W�}��.���Q'&I��퇛������p95�����qy�ߘ��<8i���N�̢�|vZ|�*4.��������}y��fKF�P*uT�)j���`1���
�j�f��\w�2�7�9վ݊��ۗP�|��*��G���k�2Y
+>�f���{�
��ckOr��<u—�����Z%:�D*��^����~\��7w�N#�\+�R}�Q���E_j�ޡ�4ϲ��Q��3��V���l�J�bG��W;�P���ѻz��/�7�"��-�G�z���I��oi��[�u �Ds���t:<��ﱃ�CB2כ���M|4y�X�C+�r�uUZ\,WGJ��vg�8��(
�
G_��_Q7�������e��$��C��pu[��LM�[[��ᷭ[K:�6�����z�9>8ފn�G��ϭ�hl��66
+oF����7���D����FI��%uU;yVoNuS3�c��[G:я�{��5���֓�|)
YİرnÝ�m��B�`�i}�X�l�*G��ng%��>jK��mb����W���3�t��ج�y8H$�W�ɕ�a4y��n�v�r�Ԩ�ZH�w���(g�����򠔋mvNs��S�0��Z��ˍp�1r�+�O6n����j.ytѸ[?�O�[e�${��W���]68:������z�~~�|rS�֒Z�ۺH����Q!zyUi�K�n�R�*�M��Լ���W��f�,�
C��N��o��z[����'�����rs�9}z�k�����Rz��h]>%�s��Mٸ{n�v+��嗝��su�Z+Tk��v�\յ�ݛ�(�1������pR�G��i�
7���m���޷��k��]��u�[��zp������ߎ�b��{�>_���if�n4��ji ������m���f�]=|�|'���{omC�W�Q%�>�� ڬ_�D�󯫫o��j��y��N#��M潾�������n��v٘� [...]
+G[%��豷�{l��ǝ���I�4u}���O/cz�,��0\
+�="��;���󷩵_�o�Ikɫ���Fft�d��F$�-%��ai�_Y+_DX����vtݾN���4~Y�)Oӷ��e��5��7���m�YY
+�ת���L�����{�>Vr�WO�e{�y#,W�_��J���󲕟�/�#i�z��(�4��Z��y{G�L��-脭��:�H7/���{Z3���b
����I�bxVM�TCoj��
>
_u{��^u�^����������0�c��j�>Z�u6Fo�<%.N���O�l!U�i�/
/�ӣ����re�h}�Ҿ|z�
)e��i�p�،
�d�ŭPy
<���Dž�������S�Ԩ��Jw5�n�y�<�Y�Y-�m��š��?��\^�Q%d�e���F)�
e���/�X�vq
.%
J�h��t6�=��i�s at L�h:?�K�R!���?��ĩ�w�,T��o�����I�Ύ�]��v�{���`�.ߗV�{��E�
��z�$����nsj�W/Gz���8K�7"��h�1L�坻���r��s�r�a�W#;Q�?���͛ͭ������������+'��˂u�7›�}bK�
�����V�
Y]ݿ�"z>�Q�n7�F�&�Oo�Ӻ|�����^ɮ燛�]��w/�7v+���KipԎ���S�L^�z�4
�����}6�w'�^���n3��JZK��o�ZW[Nm??荔P6ь�G�Z>2�xj%��{m���o�T�nRw�'m����nVsø}|��?������z�~5n�ϖ�����N��8̴���S~�xuUپ��j��Y9�����&���Ӡw���<�ׂ��֭�`=�
@A�
�s�"b�������e�|T�9�ti
��֛B��5j�ė��Q��d7�ذk*�O�g�8"}�:
+�כ�5jSL$f7H���Ӊt"N�3Nvc��7ag/F 
*��\�n�g����U�f,��S��-��^E�݈�,z�E^�w��[�\�Ւ<��]T)?jɬ"�J'����a�l7�dwW��+I��)D4�޸f�YQ�_6eȸ5�YR󤣲5��K�E\��L'��ȹ������"�d�L�M����l.�t����u�r-ֆґ-Ky�A�c ������6^�E�r�з�i��Ы�R�b]��"������Ę�e�rV���T�H�W�<��ۈ�}
���/�����D�_������5(�-
τ\�
�Kܾ���d�U"5��Q��6�.y�)KJ1_�9UѺ����+-
+�0���V�
�y�eľn�$(�鹴w�|
2�t�h<��^�܉���R�h6jWs�3!��G0�����������Yj���o�`�Ns���+�l%������+he��֞�.�8x��#�+A�����	�/��=֞�
�'��
����E%_
+K�M��'�/�.�(�S�'����h�D7���[f��|I��S��ڤ��+�$��(���
��c.�$��TSU��+��w�Ċ�j��A�U�-7U'Am���3=h]I-��ZH裣6Pʦl
]2�&����<?w�ԭ���W��A�;�Jnj-��ժ��Z��]�z���4��� �����w��*KY�P���4�+�H2�V�	B�+�ή�]���T+L0��~���N���yhw=EH���_� �.�JmS���T *��X���a@��P���[��u��d�خ!R�Ϯ���a n^1$i���̔�v���@�/Gc���h*2���Wa~�~ʡ�tE�e^ܼԕ��=���j���L^<	ު�Q�c��z4�L�lUNwUe�6�y����[�"��26�U��2�߼�ע+�ej�nUNp�����v���jm�L��j^�w�n�ջ����Ka�G��[�c��I.�!$�_Y�v���]f��V�62|`ɘ�����G�S�� �-���M��Y�sOy�ぴ��}eQ [...]
+lI�� ��g���6�
�SkT�_�,U�U�Zp8xjwyy���*P��e��8|�]*�G�����n���U(�4�e\�������I}~��
�b [>r��	��o�^G�����#��
T>k��H��bQ�M$Q�������m}
��4G�|����99}-���Wm]�`����dg��M��B���pD������\��kG���n/�ުUt�+D��^��<���U"�̀)zH���G�4x\�E��z&m})�"�7'��#G�vmfj.�Lx�uW�N��՝=�_s喽���甄Y�\lwM�3f��X �f�-��9�hVe�������Xg�3�s(�b4� �v"p���I�v���
+�n9�K��]7�M1_&��'$� ��て��������9�%�[S,jLE
%�Ɠ�Զx�-�ݴ�r��U�^;1��ل�i�����
r�<�^jM���2��E�fj�o�f��߾�/�S
�ڬ������,4�f��_��7;l,�/	��M�qv>:���v*�
4��Y=�,��5��t��ߣ�hk1�y7�BȎ��
a�ȟ��ns������zУ�[��
-|�d�kd�����l�^-�$u�=�5���c��O3gi�g������Y3�髃��f�j��a��FYq���3�$�@����o��V�u�)�K�����u\���g/~���2��R��T	N_).�%c��./��>�S�F2�T�T�v�^���X��?�V^�C�=��ew�NME������#<������R_=V�ڋZ:�������>�l
S_۔���5��0\@�A�q�4L&,�b�vLm�L�\~Nck���z��K_�%������u�����2p{�� 8J�
>���+ [...]
+�uF�l�5o������r
+es�,�a����n-,\�r�|z-�V��(V�����Uu���yϧ����_mYGV��\d�4W�>�����<�c�rz
+�1B��Ն
+�Q�8�@+3
�)�����Z��c�\�e���m4�*y�]=�Њ�>5n�m}����7��˓��(�~��������cϑ2�9��k�"}�h�����
o�d�4'�����Rkw�ؔ!͕�@��mSv�nO�@�*�b�
�

$I��l�Sr������
a�� �~�o��J���
o��
��a=	���b����w
O%�f<ҎKWw���W�.%X�?�< �{��q���צּk���"U|����C���,Hf���յF�]��e��^�?�36� �OL�������t��_͇�_&\�11��10�_���<�sq���4�bs�q��\K�I�@j�K�pJ�q6R�ޛ��K~���
�_Y�:I���.j?�y�&:��d;�Ñ:
;�
T�'��2o}�?��������ĵ�
Ŋ	p|,Pj��i%�t��Fhz�{�[;�oA���߱G<T�O�@F��A�5��t-C5��D���0jc˛��h��>B�\
c��x�϶;� [...]
;���K�3����P[�	҆O�;h��)���VX`ۍ���/�o���ڿ��Tw�W-F���j���ޞ��ql
�J'�V[VM���8U�$�U���|�8�\	����آ�;�C�Q=�T���VQ4d$+��+)�(,��Z4\,)�Z7�~O��Y�n O�vv�QR���E\�%��F�R�H�KV�8Ť�1w��Y$O;'�Ԃ`�� ����s��,B����:s�ku���[ڢ�}��%�a/��<+� ��$��5��W%�a���b�,�NG�!|]���~�u�.���_�$��?ڒ�ec��W�db�����KD�(��/�L�7�b"{y����lʩt�i�`u.'%���r
,KgVC��6���z(�^���������j�A
=����A�
 Q����4����5��o�2<;�{��m/끞�1���D�
���"
nڧ��z
��W at _�<���k�x9)c�V� �Ϝ��&l�!�D�9}���T��?�US���Xa���9P�|FJ@�_���� [...]
Qfp�<,ҫ�eĻ;�x��OԼt����]��^́���Kh����"�LD��rp�F9�Q�[��B�Ō#�c�
��^�����A���@�K���	���MbP�B.!먌}�x$�+4	�d�wѐ��]W�)-��Q|da�9xբ�k�(�v�h��T�B�<
���hrsF�\��
���a�
�[����u��K5��M���j�~���K�vo4�g�
+��8�
+H�
�'r,�cXiﺖʱ�K����1�"dٶ���>��v]l����}�Ѷ��`a�[͑�������W��	�@��"
.y¦u"���D��x'����B�]LF� �w�pƗ������n+��H�RK����<rMzٰ�&�I$kb�:z�w��Ȇ0zֿ�9��”:yۏ�]��K�����C@�xMH��^���8E�kg��fk��xm�v�Rm�,oA��5�(�鵢`�R��[�<mH����cp����֒]%��g��j|q@�d��y�tk%��2����K�G�)��p|�?�k�6Xx�Q]�����
o��b���� 
��L�v	�;l	���H�ST��{o���
���mW�`���A� h�r��pIK�

Wh�N�Gw/�����Z\C��@bH�������KӲ����J
y��TQ
�I�e��\��쭳�#���u��b��#7P�^�"a�<�ሴ��yP~G����L���U�#��${��V������v�/;�?H)&��{�Ia@"�U-�{��^t��!\��l7_��� �
�
+���������
+�
4�B8�Eރ�r��?Y���ԟ�Z��ݢ+U'����
~ӂ�Im���_j�	]��W4G�msʾ�؎&�c�mg
�<���j��۰�Oڣ�ힷ5W��
�HyV׆Ž����o at A�Ly)��b��<u�1f/�I�p��xT>��I�;���>vv�ȣ^���
���5�u�ȑ��Y'Uz���,g�ר�p������j��J="��9���
��z|+Vx��H'�^��<�Ff,�o�_uHw����p/T�3]d��5��-hBǖ>�_���.�D`�hH_�P� ��4�Ҳ���գ�H���$}�A��}KKݸ�H��yu>��"a�$��Ē:*O�дa�-1Wny�~Ke�2^�Bm��8ך�	�U	���Q�è""Tmi��Q�v�U���]	���u��W�ָ5?-`hm�U��&^�yk!�_����
Ug�
����D΂�4��k�
-��azJt��Έ
�yIG�Z�Ą��A,=F0b8�u���f�$��y���eR
�w#��Õ#y_�B�Y��K���#XOEzIR��ĖTV�$wG�!�f)$1���}z�W��Y�o�����Q�BĎ�mH�#f^[]�0�P��T�/�g
!�WԦ
��,V�Ͻ�
qN���Q1G��� �P��0��>�4�b�ß0��;B"�>�=Nw��b�P�S �;��@��hKE�
�Z1�O�K��}���p�M��82Pӯ͕ר�jLpI���{! �fu/
j.��`k*7m~���o[ ���psqV(�

��j��Ƕ�Itc��:�
���I�{V������R|
�@!g@�t�S|N��f�m�
���լ)���*�������ə
�$FYH6��(�P��Kɇ{����4A�
��
;*u�9l����`%��]w+x������)H��B]�L�	��r�}ߡY$q��oSYq� 8
'Ke8�,����I�,@�
�0���[ڮv;��u+����͙8��g3'e�� h��{ګ�We�h&9�z?��Oe�K� wpzN\�Ѳ��@��"��{���.��~T��Z*Z|�_��9v��c�+������
+C����*�iMt����̓��b̮�p�g]y�뛶�Uۖuۉ��+~�����Kl�?�'���>�Fs՗GWx�]�l�_ވ+�7w ?;���+%w��1�/槐�r�'�"�f}wE���^U�K��2-���h&��n�<�Wɿ!y{�=
��[
$���V�h1�r�
��w�[X��뻒���vþ.	���ɻ���/v�PWZ��@�d-EhP�M��$B`�%bv�<�e3
�+\E�ڿk�=O
j��Q��{���t�I��s���n��p3z�|�C�,����-ɯ�p�w�ms�gG�[*G}�UO�L�
�P���"-�W>>Πܼ�5c|�Ѐx�]
ɂh��
�ͫ6��i��<����T��J���;قߍ�Z*�d�;'���N��Q�wԩ���v�MM�ֵ�	y3
�|%� ���F�Ԯ�n)wy��=�ߓ�6�ԏ�F*<��y~]
+�Hͨ�&��cA�ý���g�d����|�lϨ����e��S0^v� ܔ��^r�}���Z>4V��(�LU1D�

��+_μK<x��K�Y[�ѕ[�aYnT�w]�jS�c%�k�^�
�$��y@?҃��_�I�"����
���[�`�7*��}3*re������̞}j���[Ւ�E4��0����ܱ-��3�'�Rpcc�g��,��Lu�j�u��
��[ma�7�a|�E�&�ʗ��C�%��8�(}�Z��
��9�t�ͨN�[� v4{�5f���š�WM
�y�z
��
S1�򦸻��D�J'z��7%�2p�Zk6����9���Q e�� x[8Ie�걆�\�#>S�r��:uؔ�O�X��J����,�'[ӧ����v����~G
G���J�ڹ�Y9]T�s�p�xª�|F�
�_���4}��=X�,�I���||g��V�߲>o�쨿e�?|�J{&M;��W�
9I����]������7�b5�Σ��;hS�nH�	G���j��o�7�Φ��?�n cM7j�R�����}��˟o�#5�	|j�H�:���9���*�������i���O�k��,�f�G%joD�ap�
3l���$Q���d?7Pj�����#�����eW�9þ���I�D�x�Pˡ������u썖��N��ݻs��D�<-�
+�v_�GPӕ�%�#���_�����%7��7k��ّ\b�?.������?h6E(ߎ�[kY�k�f��$�e֨_���5Q�#ţ��z]�>B�"�H	�* [<&�4��;�o68��Ml�O3
�}���mq^-�Bk�e��g���y�/�${\�ј�����>�'�K%Ƃ
}�'�t�֞i\�"�<s�q
�޹;x����V�
k�*1���E��Rjk9� �x>Q�*�2��[�(�Q6S���kKs��gɔ9���ɰ&N�7���f��diʭ��x����^��Q�6��g�5���ѡKT��*
�G���~6�›N�~1�f��k�v���!
�7햡M��Q�bS� ����=����q����B)u+}�=w+S��b��S�Oa9��$f�<�V�mK9���Ѹ 9�H���G��
7�IƲXO]�0@��36�HP���ҭ��gcx��Z����<�R%�W����tIQ��9Qr����8�|U��V~�lv�Z�h��8��+����^"u��d�d�̯ [...]
F��
6��;��n�g
V���EJr܃��[�{�r\GƎ��r{�r���)�4�J��}�қy���{I2�Qh��w���)m�W�)��"Z�`��yt�8�E�5?��3������_d1��C��~J�h"������ɸ �q�ovSe�{l>P���=�ڣ�5��	Yf�v�M�z�S
��T[��T�ܥ�!��m~�O������yS2���n��4"/���M��mz�{���ֿ�3)ECAy\��B�6�e���Z���{�g9�g<��S��
S(��Mk|�?-ˏ��6I
�R���i� $��n�4�!��+mw��w���������`�K�;ֽV���������Q�d��w�퐾E�6�H�Z��Qȹ�CvA}����J
Hҿ{���XC���[n�ՠ����])g�xr𜠖U�Y8��W��5��W�
�����{懴�7��y�[�}����$- at h!���P@�U�%
�ڛ���e��qT��s��������A�b�A�+·Tq��U�*�>ȕ�qJ�UI[���CR��k�"85ȝN(���ѻ�Lް-�.�]��)N(@�C2�,�!:�9#5��52s̞|�cS�,�K?��/�g2�*�V��<�&��	:�������<���zr�7�v>�`WU[��)lG^p��o���U�
庛��{�%]�L�K��7��r\�;�Ҋ�r<�d�cŐ*��o��ig��Z���3�Ӹ;`�n4����ԛ*Dw�q�SS��<������٬�3�zP���B�F��НhH�4�8Ol�)@�y2�%�cR�u����l	lN<Ț:��&󶳲� [...]
��ݕw��6�?��m���N��
��ׅ��Ⰾ
eQ�,%rx�����>x,j
:�)ՙq��
+����*�l�Xɿr�?�a����nM|%�e��;?���� ٓ����k���+�,���]�V/���|�*Pv�j�7v���a9g��<Q>������k��K����Le`�`a��9�%�������@��:@Ț>��L�=
��@�ȳ�/��� 
�P�=����~>�4p&�r����)���Kf\1_�� P�MYz_;r�!҂J�Ro�|�T���L}�UgW)��go͉D$��]o+$��|Zo1^N��8�)(���Z�M�/��'��ٻ~��C�
޿<f!]BL���dW�9
+}n��Y�t�c�[s�rc���A�w�o�߸��%@L��!p�Al�g�sT�&�<r�o����M5���}X��^�����e����f�2#Qkln|垕�h��EV���%��"�*
+8Gv�v�a�,�uj,������P��7����
�xk�0 .s��)�Ιr>���>��t
�ro)B�����,mSEc�M(����2��:ݫeǥ�Z[�E�\���v�P��	�����%���Z���ZC�萫�q�X��х��)*Y�R=s�������

��Pܓk1��'=��7Vx�}$`�tպ|��s��x�M�;�"X3o4�\�
+No��q��"-d#
���w�K
]�p#�7
+i�+V�7�a��f���
���0+�d
+��MtΖ
�s�Z�k��d=jJH�z?
���
n<ӭ��oFڒx挀�2�2�m��UG��?(|���^��~Gٳ�I�s'�c�
>Y���1���a���
;\���î
��r�qc烉+���ot*�0��>3L�q�_��9Ч�/�N�
T��F�J��l��+���w=�T�}N�zK������l'U����ח�MΩ����nd�M��~��1�M��ٌ��/���,���Xlwbu|��f-��,�eE�]S�QDU��=R�<~���c>�����<�����*�l�Fc�j�,�='�y���X�Q��
+o)
����w�����2L|�]-BDp�zU�W�N���A8_��6;g%�+�� �2T�;��Uн ���r����� N@��b���po��=*0憥z����H��AB�#8�Z
�KCj�a�y�=���?���7�n�c6+=���v��~����
�CcE�V�g�� �P�/�z����1��~�$:�[a��
��~9�5��{�B���4��\�l�5p���R�A�r͟o���B���
S.�Yh������bo7 ��~į�H���:��3�A�{��B�	���ʜev<��O	�~�����x:M͌t+^m��uQ]�w�C)�Jڸ�����_p��\�/�m�4a�j����k�8!���H�(���[���sU;�7k
�8L�3�דW��N�6&��N��G��
+������F�#�@��If��u�mS8k�"$�o3
'k`y.�����b^\vu�e����jx2�;BrK��B7�H�
+�%��v?s�rQc!"��W��NiV%��~�Y�Co��\U�)�r�ʂ��RW�&��瘬���dT�N�"��E��))nªa�ek�
h���E�{�-#/Y�$��=6"
B���Oi�~�}:���y��y4f��l)�IZ˄
NO�qk�$���T��e�]R�w��t�����q�g)g��+K��^j��u*v}6��B]��NCk�
t������le�L�2�ى'$j����\�w�޻|�q��#K�/q
�{�����߰LȪX��G����S&	;��T>aW���[�������N��E]���y�;bB��K1z�^��o���(�
�
����9W���� �r��5y�h}iJ��
��+�E�»r�=͕����mg3iJZ��}TUG�i6�/����7b�ؑ\��)F��Cwjk��P�h�Ǎ�X�_��|ޜ��j1aiGH$W��t.=`m-���D۷�"W��Z�q������+��u�֜_el pT�

�
��@�Ƶ;�����
+ó����t4�m��'к� ��X�~j�
��r�*'�����Rm05e���Jk��IA���Rl>�W[b���
j�6�"��(}z8�
+?9�F��d��u�$}Fj��:����@���.�
+����\�GO;AՊ�}��@oF���l��h���g��3[�~���tr`KދF%�	�54�>N-O/ᾲ{�B�Kg(;?��Y�F�r�,��Q�
+��F�:o�j����N���Zhrt�
+�n���4`��Ri�	u���Փl7�'�/�$�{�j2�-w%���%���*u�|��bZ/�����ټ�:���%	K��Ҭh>�D/2��	�E'��n<i�z�����Vg��q�NG%�'����?n�z�a���녇��u ��L�����w��#����m�ܶTs�u3>��q��'gRޓ�v�m=���ai����`M���׃~��ϙ$�k��^ �,I�1��jk��]����uU'樚I\BzD�ط��ٵ�?�:�ך��߰�}J�+?1�O�5���V �l�O�=�
+ݩ��7]��{�L�~�sbu�VS,�G��._��\iV�"#�'�2��	7t�k�3���D��:�X�3� ]��E�ΈO:��Ϩ���է5�����QK2���@-{��������ig&tr������`������V�j���鼫7+
-�V���(��
+f ��.LQw
�δ]}��5��²���>W~��
y�˷0T�װ 	�Ŋ5�Ӟ��S�hm"V�X'W��<���}�dU�|�A�����9�j'�l���rM�]�G�$�bC�v}]��D^j���v��?h��V}��F�*��&���kw�N*<Z

+�Z����]ngj�]��
Q�\�z��O�X�>�Y�g��v‹��IJ9	�]�/.���?H�c�ȢOn��7��ۍ�oF'^;�`�H��� �
��5s�^��Eyo�uƘ��
��!0�`��\����q�.ŧŵ��.(����
+׷Aȏ�f�	F��Ϩ�01X9��B<� [f�}�|qp���
+a�K:�?�`]i{yb!1&�wMٗ�S.3���0���b��
��k�y�
�g�X�B���*�������ʦ{����zӄ&�nO+���X�:�J�sC��Bs��G�x�	��!�=�8�!�c��v��M7�1�:��%����_{W:��!����� v�/���X�[��tԙ
�o�_�
��}�W��a˦��j�)
W�qG���E����Q�,�r7��	��յ�p��냢��w3qڛ�A�wp:�;��h�l���ϮM~s�����Bf� 9���Q}6�:
����*M3�D�
g��0��8#^����XGJ���&��4J���ͫ-f�h�z��̖
2,�[��:|C�r
�\�@��
�-�{��8���X���
(Z+}�����R!R�;3�O)@ͱ�j�{~��g8P�'���z���?��EZv�S��ʢۢ>;qdF��ߢ���bH%ߜ��=a�4�������|m���{Ya��
��A��
��d�|k-t�᠋��B��p�>��e�}�}�mT���O�"%��ӓ���Lr!�n at i�QJz�֌�
+ 
ԛ�����P�~�{jgB��j}���a����-��u
+��Za짝�Q�ν�q@��ø�y���	�ѬF٣�w�[#�^�6�����=S��U).Q/�D�pN�-�޴i-k㺳,W7���Q��5Ǒ�Y�:���W��2�Q:3/Ӷ��w
��S��	ڡ_q_��p���65�]�i�%кZ`�+}:W{�@-S0�!4�}D��A�J:
WP���D�����LF�9�z��˼���`^O�y�١�=�ŧ��Hu�lz�u�ɜ���&B��kܭ�6lk1c��|D0�cF�
����<P>
�?�6���A�e��[��n�B��Ҏ�u.�@zRF�4�I
� U�~�om��Z�W����@�G� ��ߘ[�4��p~"�cxh
��&gޣt�`C��A�vݩ� *M�#R�
�_�%}��N:��E�o��jg��K¡{�k�"�o�ښT�e��Ц�ng���+���^c��l�\GE*� ::�h��\�q�
��<����a���e� �LS��*��"��/
�Z+z?�k������U��߳(���x�w^-L���o[�/`n���@ʧ�W���E�`�.�|�l���
�݄|U�r-ӋK�E�iE�0u�}9݃��&�
b���	!
���l��8l�e�]��kg�u�Q�1^����Ȉ��&i��?���	��1�0
�l�O���
��k�q��rI
m�Oitq"�K
Y�ܪ���	��=�ys�k����[ē1���*I��-��ؖ,s?|��Qq���ӫ�ޭ�����u��ijY#�
��z��
�J���vɊf
�ޚaZ�}Z� �r�U*G�;z����
Z�DŽ�-إ��y�L0{+�Onw�ꭻ��
��
�����R`-�2�� 
��Y���径���4��r
~�D��6���?�5�Ji��J00�4����b��E�}A��%xɮ�Ig4�)���DL�u�Y�6��P�NV!�)�Z�
���������^�Sjzzw�a�͜ҁ=
7���(�*{�-��;i����i�S�jE2���_����,�:����&(�N��[����z�d�,j�=�<�zV�*6���b>��C��?J%����m
��c� F��7�hn�c�
�%����_�J�R��}v���{X��������T�N
��`���r���f�v�g��q;�
�W%���Ϡ��������I��o$��^3�-oz���nwrf�׿��õ�}1{�@nt�/���t:
+R|I��윐�I#.�jJx�HZay
���&��שH�Y.2�Lp���5*��T��
�
�/�h�Z
+,��
v��Q�
����X�F>L!�+����\e�Hi�f0�Df�u��Sk&IH���g
+��cxW����|���
�
5��W���B-��	Vr_g��xL
��a� �}�eZ����Cn}��6ki��|�B4i2��E�t��K����kA
T����;����
��J��C�/�
�̶�Y�{o���.���[�Q��d����V�`Z�a�<f��RA!}��\8��:����U���;y/�>���l��/��T�b_���2c�@�E���޺�V.�� ݟ�����9������y=��R������$�����;
m��ik�SGD�����_���V鶽�=��r�G3z�#�ɫ�Tҳ��f����@}����ړ�i�ˊ5�;��Qy��E��f=~0��JM_�@�
+�R`y��i^�~8�f�o�G��nb�P�In���8�E��
A�_���R����3OI�
�w��7����bD�%a|َ�tX�Я
��q��ճS8X�
H�H��u�d��k3��O0gC����!��q��I��3�5+,j�F|oqQ�i��)>���NE��~Q�p�Rh�%�L��S��d0
$VJ�lV��㶪�3Y�� /?���
L����Iя����
o���y�b��S����7�m�-������\J�X�F ?Q�̮]+���f�*
��9*w�<�
�������f��G3mC��׽�����j!{� �zkv�_OveV�;o�8q���Ϯ�;ž5�
w�ς�h^�M������c�;�Te�n�`_*&T
($�A1���?��o?���ct7�b�Zs�ZUE��z�\��z��7J�d����P�����M��{T�%��o]����ӡ�+��
x��u*�eΟ
�J65VFD������t<���tWQ��IF�����
< [...]
uM^�kҮ(*G	��trRv��u�V7�P�������F]���H*�gu2���l�jN�&��H������6U�gK?{���`�
I
�О����~t�HS��? �HJ�Y��[�1W��dž��k�%*
'�=Z#�ոz�'��Ke���Mr�^f���y�l�ø�+s
�4��Tg@����.|U��JB˜��E}�:�ʤ�|o
_
�8��-��Ga�a�k��r��$�WZF�u�?���l:�����
�#��iݏ"�UT�����Xq��b��m�g�����
+<��d�-*��w�)���P�[�l���*�M��!,�&[���o@䥥�/V_�B
R�
$moB�R��O����X)��r���IV1&J͛��I)�"1c{J�B
oz��w�Ȕ����RD������7f�o~Y}&��-f�e��޶�Yl�ͣa8��
"���˖3���O�Ǯ.c��Ԥ�s�o�WI� dķ�Lޕ���0'��?pQ�i>��`��3�|é�{}��
P���D�>m؈$����N=����b ��(S���Fv{ˎk�L������O���p
�����
K����^
���9�5����/����q�l}�_+��N�^�U�
��T��0w����/�G}^5é^
��
 ����Tgj��������wE4��y�n�᧳��i34}Z�w�Ën����z�OI��gA'����#�� v]�]�v�w��pK�o{���.��h��C�mEz�+���e��VԦ���Լ0p3�jj܊5���|uv཯
y��?�tUF:Vo�� ����$����]p_a?V3��f���*���c���U�
�s'�u�/_��������Բ����6�{a��Qw��S�
F��ik����
�
/�Љ�
���H����}��6�14/ި���l2!�u~
+��Y��
���-*Rao��M�֕��
��ހ���"ܚ�*��}�R=���D���uJ�Ҿf�����kYU��w$�����,��~�$A����~�
���LICjk]I�{��+�
+Ֆ�~OzKyO��T�ҫziqg�[�,����O�aU��겘Z�C�����밪�V���
*5���؛8
+.:%h k�bQ0��~�7&�
-u��N���Ϙ�U_�sX����D˰�ZL�k��pg,.G�‹��KV���x��=r	˭Y�8F��y�9�Y�L��fG|�0����
+a��b�h	�����
�[�[��_�߼�f�
��3�p�q�`�F�..(��gr?jF�t�
�x؍�A��
{�x�C�)]�
+
aRHz\�x]�����q�W��g�#+ks��l��5�Z��O�~L��
�f�����4�~�ʙ63�Nɋ5��;욷{�<}/O�jW
6p�����@����&�j�#YK}K���v�]�0CGֽN�,�ּu�����e���_ �U?nŀv�2��,e�W#�sN͜)Id��v<��̣Ԓ�_s*���k<T��0�_ ͫ4UZ����Ӝ�lW�E!Z��������P�����xⴂ��S&XPr������
�(�F�H'�����h:�34=�iң����1)j�������X�r�B��_Kˊ�<�;ߒ�Ƴv(�>W�x��N>+������f�45�[���"��Ѥ��M����j�Q��
+��>=����9/�#�8��U$QS
zo7�-mm�;Qsk�Z�J��}�����z��N���ك=��5�nͣc���4r��]j�d�X��@�;��+պ�A�<� g��? mbzݗt�a�5
��'c=�*�

�
/
S��,��]���ם
t+�[ѵ��lnS�{�X������f��wz���]>���d
�^��
Ԣ_�T("�����B��,��=w��#d��ۯM�K1�%��hL�ѡu����
?m+�H�z�5�:��-}�M���j�[�g��
)6#�u�6���"��RZKby�
A���#����7���]J�.���;��^
;_���5þa���B�6f<�Y!m��l_c�E���^�������7�>盯�e�ڭ�z�~'�D������
+?�$��膕�y��O�u�<ʗ���w��T>^2}�%{`Tq7�S��L�_ �#:�|��&ooX�m�-wL^ʁ�Z�y<#]��4�yN6���:����ᠺ���M7��缼R��Ow��P9
p��
뜩�j�^�	�Y<-J�Q~R�/�0����F��l�����
+���-:
��W�N#g)4(��¥
Vj�
"�? 5%��L;O �!JZG�/v�8I��U���'.���X���G4��әT�����Enނ+�J�a
7�2�(?����b(��ڠ���8� �>�>�-h�	�'x�ϾY�&*`�y�
�\C[<u�	�]zx��؉~��D�i7�� �Jկ���]bmiI�1j�"=>IE�\�#N���)3H����" �z7���>�����
+P}.O���S�?(��8��ܼ*��z1��7lϺ�0E!Z�
���5U�o���l"�
f{uvZ�2)���QTf�?`R�TZ� |Z�o����Y��2
4t
� ��h�s1�j��*��? 3'y�;�S��b5NP=�{>�ْK��XXN�c�(���1�'s�Om�Y V]Vۯ��/�t9��
{�Pe�;w��-
��=@�p�т���p'���!Yˍ�v�&4�$}'�ȵG�Ľw]����G[|���M�A%�Xp�4?���~9t��F<�t�uפ�{,D��֎�{Q
}&�
��
Σa�ȱ�
l�`}p͆�Oa��j�ݲA�˰�5熵�n��*'�W`
+�Ku��/�'^�t|�_
,�+����<9@9�Km9��K�(� Ȧ0=I�)QX�K�Ri/'�����Dv8�$�zP�'�"bh��O
��l�f���U͘Hk�
�u+�
<�\�^dc�l���l���Bnv�gb��^Ŗ�
���p/-Y)_��J�x�/_v�
����sh�����r8
�8\�]�y|��nH|��GH���?���wԋ+up��>�^
$2��Em��筣5�bs��ގ��
ʁ�U��w�0w��J���iw
J���
��etH°��̐>�4�8s��
��:�=8�[zt��ߘ����4u;�1�������ws���`�q��
+�߭ybT"E�癨,�������
F�{�`�9���!���Ӻ3������9c��^��q&��Ws��$��=�z(�c�1�Ѹy>h9L�=���(վ��
+�a7�׸�2�~�<1��AY^ȍ=��� �WJ���!?@��(�C��5O��NCb�KsvgU\��Ln��(�3-�c�6��K�=
ԝ��:kE̶�
+�$S��H�]�ɐ' 7�-
���N��@�P
T����j��:�}�%�X�1!5�u��"�
+Hc������%�<�"�qì�q�6��R����[N�B����ش�Ԗ<r|���X
�qu�^�,�ϙF1
���)���kW<V�V��.�:;-��~h���}�T�����\�<r�b�˪9ݯ A†�
���%T�馤�}G7��&����.B/�N	����av���,�;��rXZ��Mq�XpN�����&!j횷Ȓ�&š�m^�o�};X����:6)�˛��W��O>F�k9�vo.`4��zr'6����
�Ky�9��VN0���1V�gD��>w�;'�����y�� ��
������%�ps������;2{ ��%%(Lf�VΔ���}�'���.i�����ÄM���3���vt7������N�x�����ˋ�� �ː��Õ�ИHM�BUx�LA�b�u�BA^+��W��̙
����
�R5<�f������|
o�ȃ����n2��Fr?���"g�����*��.�ʼng�W$�}Ǒ�����UBb���	P��+	b�Yz�0c{T
�a� [...]
+CX�x
+�Ԡ5F
��4��H&�q
ƾi��4l7��o��w[f&���S�c��(g��#��|�;|������8��h����T����eaY|uv��".ub�yT(�b����n%4���zي��r���r5���5's��l�
�o��ȣ�������������'�Dc9\
+��=�{�OHu�f�֗O䩋�[Ėk�����ޣ�w)��0
W�i�
s@~�ۈ*��8)uPA0�E�V�]h|w-�G]�f��<*�e+	���X���j��b������~���S�pK2/�-7EՀg7�3F�y����D�V"a�'(� �p����]���X*)��t#��9��74Llت*E��"�=o��[I���������
!/wn N.����/+�� +(�$��
k)���*���1&���=�K�:T�	�1#+�X��?�D��;����j�c�:M
M4qx�+��5}ʠ�L���*��0�*cU�s }`ah��}o�f����bG��i���.�ǔлn
րF�H>W.u��
[;����^��\����Ş�9�\���![�.�2��N���,��a���|Ȍ{3[�+5�@,_�@��&as#-#�xh-�I��0��Ww�{���v��i��l���)�_�#0<
��@b�ZXc�w;J��$����`�T��\��1^��5��q8K��A�D}�
�~��
�u��N^�t���MN�A�O��	Ii�!� ��P\J k�k5.�`X�{��Q� �"e
�^G�W�hGB�}u�
n�8o *?j�_]"�Ƨ�z��\y��ӯա��˸4����P�ή`��t�=a��h|����F�Ѳ:�t���*Mpj��Ǚ��(�l����ڋv�(
�b�YZ�!�yU�m��&8�=<E�����V�v�EmiQ����Ok�$@�ࢵx_�5b@��y_k����8E�Z��2�m�ܚ!u��Y2
�/w��\��ܵv9�Ilz�l�
'T��� ����ۡ�ZR�
�ժ�z�ŧ&������/��m&��1��Pŧ����q���i�|��
�,�q�]�uD|0� >�0���R߫��̰D#Yz��+�k��W��u�+TWnF��1��\���A�v�(X7��u��ڽp�F��Wvk����
8�h���vy�u�[��T���J���S��0XE�<�@*9�P�S�b�7�{"��Bq�4�S6����u����B���	�sP���U����6���/���E��e�Ɩl�.�)�+5�������V�-3�h��*	��6�:Ȳ�'�vY��ۍ�8���>q�A�"��jdVҶ9��^*	Áq^1�
+�T�]��
Hʿ
�����٬���J�A�!�އ5�չN���]�Y��;��Z�gS�8�'�?a�\�h�6�D��jW@Ȉ��oXu
=�1JR��^�j��8=�b�`�N���8�6�X���
���z��0ܴ�/*����cj�ҽ+?��1�ۍ�S0��[��σ�����^W����:��~�e+�<�S�t4t��\�~K�.��f؟���~��ގ�*Gc�g�gQ���󊉭N\��? ��^يv�K��+,`6Yx>���|�7&��l覩�\�b+}��'�f���ƟB���J��r�k\'/��j�r��
�'�����Z�����������$�DPak�G���>
���T���;����!}���q<]��g6EXwy$��"���s�w�d#�٥ʽY�B 5�	�LJ�;&�vc�c�;cd��Ʉ�s?�
�3����{�}I�G�*1}��ʄ
	#�Ykw�:�;:A��y���|�_K>�7��ū�}�.{��*��:ck��R�m�{������U�u���c����;�<A�<^u���<@LD�{�yE��Wux�e�.�V[[؍u{�T��
a!+��B�e���d\�Mt���Xߞɏ��w����eU�
+�d���kN�
]2�%���e�z��(�
�A���a�s��؛�j�`���O�n9�l�ʢa�=�8n�l-��l��n��*�nUCsl
�X
I�ܗ$
+�6�kȔ��ԝ.�C�`��C,OK
+s�
��ʿ@ ����[��܀��5���Qj�I~:�i���Gθ2!� �]��%'W�����>kv5t)�}��T|�w[��u��r�7
[�슓M�gS�P:���7�!���_ 
+7�C<�~�L�~���O\�:�rR�|x��q

f�zke��-\�x����,�Qp %Z at 2]�'�\���h�,	6`
�B�QiG�OC�
+�n�$�����t��B)V at E\naٷ[
C/��D
F�W?�8o�BT�n]ֻ�򪶕�5�r���'�O��kv���_��s9�G&���waO����#��fܖ�D�0p��ѧ ζ��LL��o
z�J����=�-X�:.r;��S�i2�m9H�ղ�%���0	
���4
���iʬMw5��I\�V�X���9�]�1�-
,'Q�D����U�yp��@�Q�/��@NH����5i��Cd��^�ٍ�[��e�~���7V��-���@6��Y��:߿^A��zSz�n�t���k/*�&|�>�c�|�-�F�]����Խ��1)��wa�
��kj��~�/v�6'������N�#d��{��
+���A��4���Q��%�`����c
h�(;�O��q�Vy��5t:�k�v��z�c�
��gNN��%�0 ���}�8�K~�s�Я)^���G����������s�̝pw}`���"��]��dՁ!*T]	\B7�3+�v�]0�K~�e��4�u��\��<�#�����n�>���l��h��_K���s@^�bwO4��֮�
C
*��
I� �D����D�	/���Q��#,��Up`��ӵ�}�q��R��v��5�͡t��9I|D�E���I�dz#1��Q\���
z7�}f;�g�g��f�[=Y s�$��@�g�v����
k]˚�D�	�:|��
�@o�؟&�F��F��Ǯ?X�1���H���E<�
�7�a���#]��?xJ�T����|�����8��õZQ�c��?{���f3
[��O�(���

+퀊7�"��%P��]�EWײ���?�@9KZs��]2`��z�2E���W�
(
�1֒���M�k��i�*�^1���G5ա�K�H��~/��t����q|[���
�,�Ӥe�r-V�C �؝K��,/e�+�)����4�햐�:�;#f�
-Z�֮Q�Zo^
�h����T�e	X��hl�m��8��sN߼�O>ШG2Pv�^��H� �`Q��[:V�K%�Z��,|։���\`�P����/��������^c;d�vW�u&fu �cwv��N?�@��?/����ծUX[�G_��Ӟ�V�"9��2
�7�	 �*�aR/VJq��s�A�L�X�7�w��sZ����`��o�S��M6��v8����(�(�a<v�R��(Q�W���m�U��@���D��d���jv:�|
ݑF�n؍����Py��:u1p�B͕`3������A�ׯ�1�uIF��RbCv�gߋj�~�]�L]4���Ҡ�w,C�TJ�wʶ�c�� p
hnj;`Mb�f|�
I�R:�x�c�=�!d����}����ٕ8��U����Ȕ���݊���������@��\#��׋(��)x�����AK�yV�JE{��ɜ�/�~]ZM�X�;��v����s ������Q�!"䛨����ZGڶ�����O�]��l���6طV��h�ܐ"
+Z9�:\�D?[�F�sY]���~���P����
*Hq���ձ#��w��ĥ��2	��Y�}�n�m^�
��E
B��hR��
Ŋ��V��8$�|�:�2��������S����\9�������L�4hyQ9����<蟽��Ը	�}��������Ǣ*��a""�ɷ��97 �n�t���fY!��Q��l
��V�q�m7?�y��f�TA��t�t����Tz�Կ$aD �<Ð>n�f6��Q]L�#�t�G�?�ި�r�Y�P
Y	��_wd�Vix�����p
��׋�(?�q�� �ӂV��:���*r�.7hNz?}
��`�����
��q����c�fŝ�Ϥy��rU�K��ZZCL��u�CAߊ�L��E��
�*�7~�&JAf�˼
Q����j>�	r?&#� N��9J�q:;y�V�	M��$q{W��l�#�R��M���[X[9�H���*�~��<$�eaq�D�6�eA>���
��3�Z#���r�ȡk���Ts����9Q��Sm�v���
D��O��+ۆ:'ո���$�W0c|Y�T��eu6�1<J��S'vZ�:�pAK�#�m��N�g!�
�B�L�����X���Өe���|˛\eo���Z��y��H��nɚ�
���;��ڎ��w�TL���o���g�=�J�u݄j�=
�
�3ζ/��C��a2�{���ݸh$�6_C�&đ�jRFm_Ǟt�p��?��,�e O��{n
�.的�Y��n�s�_k)t�%�#�ρ2���������*�=�Pcr�o�вh�\AlfI��yQR���A�WܟӴ$��݇H8&NJ6Cԙ<DХ����
SN�mI��ܗ��%Hi55���N��2n5��l�Ȅ��6?{&>�4�`�M�	��a�ti�?�o]F���*�³�B�z�>�w��� 1�V���fXy`�
+����
W�iRM�/n	��ֽ���T�J,f�z�L,��P:�V�B�
+=��4�~��3N9��E
E�W�f�P-Z�B��-�k�)a[)v^ZW�'M��piU
`��QSK��S����E�.���"6'^x�7]���x����u����I,�
�
�ѵ;

�֜��1M�|��ˆ�sp��i`A�AR;�!�J}�&���6TX���3�]���l������]тn,J�&�0��+AY�a>��7���)��WR;��%��/3�gE
G�f��'B��t�co�\�3���uo��L��_����s?� aY�T�iR<8�.V���R�*�^
�| rح�`�К���w
c
+?хk��\�/dP�
�}�q�&c$Q_�a�8�A�6*��V���ȁ�ޝ��Y�J{�=���jg���(+�
Q����
vP��q����йp
��J�/��)"�����⫍�D�o�ʣ��r�o��`Vܔj˧6��K"++0��W�cH�(_{���V��;����o�����My�dg?ngJ^�_
+x�n��
(�T��A
LTi����Tq[U�D���xl~;�
C�O�|$CR�>&W׵�
O3yRi\HZ� m���i��
ʹ`��ʟ��?Kk=�v��Q��
�<n�\��t�M�S�3]d^f��<�L� ��r$�j��i�PzZ��ڃ�M�r��Ia�O$���rؗ�l�4���X�
 3��;��=�zZ����j����.s�g�w��u8� ��
3I�=e��~h�bq���t��:�Kδ���4�T��~�T���⿑o\
��@��M0
p՝�N'B��O
[�`i"?!x�k�Z�	�@��6P]�q>����e=��W�~��3v�F�p��qm���)2��f�ՁW�L-��k��MyV_s at I���?		Y�ythXz
+�<�o L`���1s �
*/�55Z��ww����W�\��P�pBo�}���L|��<��B��:I~�^��Y�A��
%O�����;��l�XC�u�E�� �Y���i��
�2h43MyN�o����w�\���`�6 �c���F
no�Fm�\��am�7�=���jGZ'nT��t��Y���_���\ˬـ�@]cZ��طo��MF
�]^+1��M���	����6�=B�&�� ��Ñh��'
�sd1���sV�7�P�ʼn������zX �kj� +`�4x[d�σշ���[]cI��Q�{߻��V���dx����d�ro.Mpn at NA�!%[-����Zh�_2�"t�Z�f�%n�F���1F�'�2��/����<yƒ���7`1�Gƙ���
��肟
\E�ټ(��
�qk�g*�6 ?�gK���m���U�:$���<X�>x��{"�.��ִe��I
V^�-�|�Z�N7��$��V�d��e��GeC?]x�Z�թ�׉�՟�Rf+�u�9S2�SA��'
�"o�׮g at I�I'�D���ܵi��[X�tKn쁦I�8�ˬlOˎq�P�3��|z�����D�j�{̳%�
M~m>�@LT}
�f��`��W�+=5���;���L�ǯ�Y�'�#
�j�������$e�Y����(�Q�+C�
�? ����/�Lҳ�s�F�+���slQ�K^I��/0���
=`�p�?�޽
�A���;_Z
�k�lz���������7���9�*�{�9���ّ�?�x��KSP?��=Q��Sٻ+
��L;��
�*���N���3�1�ߝ��:x�A��,�U�D@��c��c�N�@������I2�
�cV��[ɱ�@C��Ϳ�=��_5�6��vt�d��^1m���-��2O��?����y��rq�\5���r��}�q.�/��H4v]����Y]7Fƈ;pF��;�H"
�!y�h�
��j�
��
���ُ��|��{��2K����}�[@g���3k�o7t�ҭ J���=�[-w���y����m�<�R��I��@��X�9>�U�7���;\���?���J�(��9�kV�#�Q�5�A�G�j[�1��P�lU�׭wi����=�V&�6-2
�U`�֧i��yzWY����'���=aٳ/���$�8m�a�h]�o�����]ҷ�wV�d��j7��Jv�o��{�X�.sA�DL)6X�o��]�d��b`5�b�U����n�|V����������X�~fyg�YUlB�$���
0﭅�NY��+��OӾ_z��p3�μs2F���"��/��7�y�4lu���*�G> [...]
�u�5ڷ

+�\8SB��g�Y���$!�����%>�Z��c��|1���/��-�|�
�N�nUl��;��^��2�۷��&��k�[,M��$s!-uX�h���53X5|r$��^��B�s�#��b���#Z�PS�@J��5�d�,�3��yw:)�q���0�FC�Ϸ��w�{
c'��R�`go�|�����
+Z9�]0I�T��
+�f#�����i����Y9�����vk7O#�J�Z��
+9�X�� h�#T
z˄;�:?\o=�����L�1"���N��5������SWc�F[�?�F�O���O�-
��C}�+�
@�����Z��6�
-Ԭ�i|r�&T at ..������I
Ճ�g�ï8ص�#Mf���Q��t��*y�p*aŴ�w��M�M��O��q�a._�)��XC��6�z�u�9���{R{vi�6'�R�L��H]$��P[��%#��C�6��:#�M?��D�q�B��2�ž��,����`p�e�I<5f�[�L�#�iT<�՟D��8s�j>|�wP�)͹�^W{���
���4c�a���S��	��Ѡ`��j���	#������V�4����lR��o�)1Y
��g!"��5���>A�(������S�E�_������w��
�M���-�5�=D�eY�\�J]&x?A+R��Ҝ�q2',u���M��߃%_3���"q
ͷ�]��MK��Æ���ܺ$�}"N��S�
+�S���y[��G���Yܙ:9ں�
��e"�����z��F������Zo}�����?�����B�R�`�
؎j���߄n��
+�R �����ݚ�����A^W�a�c��v�
��=E�hqv7X>�y�݃��g�l;k��lMB0�lV�*��$+�����ӟ%]��? ioONG��������N�-�Ĺ��y|��K�d�P������O�.D�{YlMO���
ݜ|�aw���.0W��P}
x�2�r��o��	����2
5��W�+W�ҤЇƟ��&�ե�;���s�"�bΓ�]Qc)��p"Pb��rw�������Yx	�I�T4@��
ۜ��$��<H%^�k9������G�x6xA��4G
��f�5((���ަZM��.���W
�5���:+�Օ��
+h�\9
$ږ>�֊{!��0�\�{`��!�
;�pԆ&�!P��C��fQ��
=����}�F/4z��W�4��1W�c��z#������ӭ1I��><
�I�q�&vgv������{+���f��2Ӆ�!2�W�5B+%�^ J�i}j����q z%���8��"�<E�ϕ��Ma?�
�ܗŘ����F���L�e��`�c��d9IJ�)ƹ��#�_?FK��fK\O��K>��9�A
+������8�
+Q1-��U��d�~*Y�ږ�0�:��﨨1��:�߱��[���@6��y���ݻ���C92�$ʼG�#�n���ĉӤx�[+��$/bΟ����
�{O	��X�f9����
��(u?�>3�]g.X�>B�TS�F�W�Cݗ�7"��{g�DuI��7�
kP+EK��
+:�S܅���mY0�>����
�yN�����zВ>I˥�j?���������9Ͻ �KV�W-DE�)
'Cͫ�94��H��D�w��1����0�1�+�w��o�rW�oI���V
Qwo

��=���n��=�
��@����a�Z4;Ҩ+	�� �ӈ�

+vK�t����M�U�ѧ?��ޑ!�����]��:.s7܍�
�,W)��u�^��:N�Yk����
���� ��Ru��	H�
��|B����e�٭���ϭLR������I��+�?B�z�z`{1b�Džz(5Vl�g�-G#�Rr(7���_�]N�U�>��%�Kk��L��w��/#_��D�8��Eų�L�fu\"nS�ꮂ+��HU��a�I�������TZ�~C�v�Լ�;	��a^�L�;Y�{N�1��8��m?i�<����V?uK�2�iDx����[X��9Q�j�%l
�̏<�9ӄ����	�'PK����][��*z�ĥ�/`����
͏��:M�����
g�
Z�fh�;��ݪ�0{1��#](esQ�S=H��h�R��@�f�hU��[�&�HS����K�	�ڡ�l+Щ��fBU����Gp��u��7Z�f�5�����檏i�g�%�4�� }�U}W8 �ԶU�����s��#��s�i�y�g��3�
�*hWͯ�s�.I��I�j@�g2q�n
���2��o��$]�G����4j���KV]�
��B絸Z�sz��z%�0+<��
�v^[��m�p@���
+��ʄ�9��)���u�]�9�x:K�3}
��چ��	c�"����|zuyE6�Cy��*p\3{>�g&ӊ�W�})�O\/�Yj-�W���p����٩X��0��S���+$���~ꃦ��t��t�0OߪT^�*V�њ
+�Xo�2U�ߞ$e0�nů�wl�g�H.:�0͚�
�yy)�
Q����Wx�,ۘB�{c�����i����&͵�Ԟ#m��a�_����J�5�ŵIu,�>��4���-z��:�Ƚ����%��N��
Zjw0k��
���1`��-��G�g/"�z-���R����b���\
��k��K����W K�� ��R_-�MXt
��j�u�P����4���#���Z�����s�b�
+-���O5"�^����y:�\!�C2�#��
��ؘ�	��� �_ <s�Փ��{=�^y�t@U��`jA
�1�
W����9mB
{�ecQ��;�.�3��D��;� ��4���d}��ۺ���!(�J�E�9�
�s΁
+7��j��^����*K ����`���8ҝW�(/�f��-T��U�r�AS������~3Xk��(+�
��UY�A敦�����#����a�ui��BR�Uj���O
��ܑ9�M�Vu�8�͍3�Y:4jR���
0Em�����o)Y���G����g��-��,H�Q�I���s���=�ow��H����V��H�&;m�+��Tߨ]����7
��2����U.��n
$���8kj��$�1Z���\����^�����qX��ԛl�}
����:�Y
�
����žo
�\��uv�Q
5�p�
	��9}s���~�v�;�
+eSg(h��(a*�#k]�yE7x�ڜ ��5OI�0�
�#M��g#���5��s�ㆤ���Vp"�t��l��J4չ�Ń��²/�
+,Vw�3{�[�A����qzxZ���J�j����Dwz����H!յ�n�Mf��x�
�h���'�r�~�я!:��1��p�����c
��NRx�C��b�VDW0<qĠ)]�:^���`O���cA��E�øm�m<�k�P3Ђ"�εX_����Ď�����RB��� �]�$�c���;��u9ox���;��
��
��EK��,q��S(#FA����q2
�i&ifNշ�<*1��'�z9ߞĒ�p�J�
��V7����_�E��>�"C�LW���OvM]�Ty��]8{;u�/V�S[��Z54f�E�s�LK7
�4�����e��I`L[>��0}�FXK=(�_ٺ��Fq?�YL@��ם���,���k5��i�禁�Z�a�B�5����O}�j��y*�
F>����GF^���0��yf�҂f��4�75C��8���~KM�WH�C�Ü���MA�3r}8�|�61�u�jhMz��Onm;���v&�B,T��_���҅Y���V:�X^�VE�g��*�Y�r7y<1i���s��4���>d c�KȸQ���z�$�zbLY
�uk�s�^����T_�=�+X��k�sWvqJ
�u�3 [...]
r�6�LS�湷�
�5t'4[8�;=g&l�?^�<�}���-�6e��O��~a�ʭ�i&{1*�w-#dP#�w�������.ފ���?����#
��8��u��U��|-$��
������W
/{mIs�Ǚ̢�P�����o��M�(�-N�ce�8�7��{)
U�((�3�
�`"�2ϹC������t���Q
+��D����dZ��M�����rK�n��A�6
��m
+_�L�tuQ�Z������T�]����M���A����˚�D����o
+�
��ӓlWf�?�����
����:��!�S��m������Hd�&�s�>
�K�B��v������C*��؀������
7N��f����
�
;��t�3,]
�l���N�?�7��:�� �&�B�j��,P�l7��M�z��ʨ������sxu�Wh���5�x’r`h���V����}v���ӊ
��_֫�,�:�=���7374؟�$>�(?���z��'�_�
vVU�9�?Qh��2�DӶ��9 i]�K�B]��-��SU�N�!Grtn����
• �-f5��M�>B$�ٲ,�+��`r
���7P�N���ִ\��]��ҿ��W��0Dnrw�ql
k�U�S�J�1^�L��y��_��s�������{#�
+�o]+*�M`�������x��rkO��������4~��Y��N�-��@��u �K�����!�Ս
�����9Ú&���ն 2Q�ww���̄@�fs���3���a����bi��
R�/�W�W������KX��h�'��o�YԸc/Ջ��T0o�g�B�PG�t˞A�5�:O{��*�0d��׺���W���Ah佯S���b�"x�O��
*�d��5���E�
�_�Pw
+�3e�p�7��V(wg�覔z�����p�s����G�~	 
+÷ 
�8[��O��(�~A��쐸�)���ߏz�����%������X��`.�8�~:Sk�UJ�b��H0�>սr�ך�.,Z�|+�� LSZ�
�Z�{�r�y�;
�*�ϯ����Om�_ugι���H�g=X=�>��5y���$����Ű��)�������.��oK�R���z��#��1���i
�0r�o�
y
�s"'�YAҺD����0�g������

�� v�ɬ��7/]U��ޏV�U�"���7q�&;��␗˃7��`����ժ�S��(�8�S�ێ�A��M}�^�e��?���
,u��ˁ��1�
�?�h]�uV��l1Z³^�����۝k�M���ېynT�f
�b�8�[pl��q���Z�,*�׻�cOC��Dj[̾A��\�;ךB�H"�
��TȥY��
���P��9�����8@��
V�7��@Y��o��\�E�n��w��^���	�ZA,,�y~+�	�M�'�
++�E�|wZ7hVRȗňs�A�Z�j���j�N��NHi��B`��uJ
�x�^+�
+,�+
+�P�cT[mIb�
�^w�=l΍j�溓h�To�7LOu¶=���C!bo�AW@�RE�u-������0!��J"˟J�
�r�[�`�0�#
8gd<�^5��$O�B_��b�P���A��!�n~o����
���Gx��.
�I��[8v�|S`3�Y���w
+#8㖌bud^�]U�_�8e�����<���8��Pȕ�!o
*&�?�#�W���S��E
�BO�sq�c
�5����U.���_
s�`�����nZ�NhP��(N��>0O
B�b���&s�
J��˔���� �U�
�oNc�!�`vL�޹bc
Z�0��.�{c[�[��8��4$[`Yq
S�<mU�#9���	̱
+[T*�)�ګ�����#�9�<}h�J">9��֔X�3y��`Δ��\��S
�w�=k>�Œ$W���W�#���UX
j��L^zZ>����N���T���ش\�U��D�T�k�N�,%.o���"Y�QL}6r� ��ڒ˄c<s�����
�`Q�q@�O���He>7�+rR')J����b�<���ea��.�j�]�zQn
*w�\�
5�;S
�^!��s~���]��`��X:
5���m4��>��J36V�s/�/�$}z���)�a?�x�i�D>
W���?z�<X`�n.��cX!m�;f�
b9�,K�6��������a}t�s�$j�T�'(f������`xƎ�:I9z\��:�(�~���g3s ѥ؇�s�x��r�,�
R���E�sz�,�w'���p��d�0�s�&��
' 9��jd��L9��s*D�yW�R
�x�#�~
�z�%y8F�Z����8�b,��3�����m)�����t��M
���;�7�4�H�sG���)`s��Vɕ��h#����C�[[�SA�7�
+�[�G at N��|$��	��I\��B>�
n�'\Z������=`-�ӆ��8~�R���Z���E���J*���J\���Y���e��:��d:n�=y�+;rl���W����exSD��^e��/	�C
֪��]�P�b���`�c�����F�CX��}� ���
�=w�A�"o
��hF;z�E���4g���
Z�ВN7�u�L�W��'I;'u �w!9	�
�#�;ƨp�!îp�ֆ_� n29�J [5k�����J�++�?p��
+^-
X9+�4��/�
+[�ߒ��E׿MJ\&�P^�=-�� A
+����WY�#N�<Z�H�Tϩ�]۷^Q0�;)tN�� ��E�ouА|��wo�^���:5�9�<y9�_�u
6��
�K�q��\���x�f�e����Fa
#<^
�������PϞ{Ҿ͒�%t��m�K.�Խ�z˄
��y�����	�J�/H�-�Q-�?�8��yC?�?7��ca�+:t���yo�����H���ɦ�P_<���۫(m��y"V�O�,)���ZF�]7�� Qq�<��+�K���=
<e�b�3
���U���y[�J˙����n�&��RFC��N
ʂ��2E��&;�{�dRGHK� t�wwC��L'��y�hN����,Hj�z�
�������s�'��K�KW�X����|�:1"
:}�]�>T�G���9C�[i��̫S�=X��QwFb���c��NE:ڱ���{��z,�����
+s蓼ܔ�O�Y��%$��!ּ���}�#n^���g9�d'�t	)�� Ϧ}��'J���S�}ʼ���:� ���ҩ�
��O�߉�[ߪ�w�����s:��5��;�
P��	*I�W�$�
�!�
��Rj�ᘲ�M��ʼn��)G�����+��m�-���\�P������zo��1���
�K
�l�����h,�`+L����[�\NW���5�W�'Z7�&ȱ���S�����j�
�7)Nw��P��ޠ�~�R�RM�]���'��*�\�G���e��y��3�к�,�����8���С��
ՅRV)U��8g�%�-�^R�i�n#��ϣ�J�s�m�g&�[��A%(SIm���U��KZp@��0߫w����&�qY�����:�6�y�
TQ��t��u5����;�D��|�]�����mcTƖ�;���w����A�,>��I�<��;�[���SSpoG���ٰ���T28��3�on��I۷Έ��;��
ȳ�8 ����lc��`��1l��:��2�|�\��l���!��!�錥���d���tؽ+'ϩ�
Vզ��[�C�'��\Ҩ��c�����J�}PN�
;'��x�KFHl~:�[xb�v8���{�r��T1��)�����է��},�y�2�a�a���&K��̵�ż�{JP��ǽW,�'���v�R���Vw�w �<x��G�1���Q�2�		҉�m�
+���=Ora�����0��r�
��}{�ۂ�?f�S@�}%R�Ǧ�<��ѣ
+���[����
^ѵ �-�̓���$
9g��in��1;(b���pz���^�P��*Ml�y�e[���yoFK��Ϲ��ۤ��UW�3CW��U����J�**V���}g �ͻ��ꪶ�G�W�2|��]k5�r�pS��4Xi�h��{ܙ
�#j�޾�sU��
��窛��eD��|�C�j#��D\Қ�ڈ�XW=��i��B<EQ���V4�䴡H�
+#��X����#�ָ��%����p�
7Q��J�#�H�{��
���t��;Q|�5���>�7�70��_E�H��C����>\�+:Мm���;�H
=�|�"K�;�&�?��'�7�0,t�*g�߽H�
��i)ׂ��M�^���w���>��8��	D��.$�	J{.�K���y��L�'3��߷�AXHz��Q/_V�~+�P�f3a�L�[Nu��3P�0���qʘ\�8T��� 
+�JW�V���)-�8�X���%%�9Z�+��!�l�jw�|�cDI�d���`v=4���)]�6�Z�/`���������ǐ��{�i�]wUd+r�]-Z;1(�떫Z�*��0�Jmw���B����p�2���Vz=�;�+Gxxi�zB,s���Ʈ?ԏ��`�vQ+���Q�
�,Ζ4khlQo�"�9�Tw&��Ŗ�͂�lvx��ˏWqd.�A`jL7�//᪕��*4n
�����P���df�?�]�ld{x[��δ�պ���0e�ԩѦf���"�5�z*��y�t���1x�J��pEw��3��J��!
��Iji�_P��7a[Y
�̜�=�˪�D��e�#�3>�
��N���~�m� �1�����D�$셶���f�-Oy�k�A��E�h�2�O
���ŸBx�g����B'�&ʓs���s��
W�z�S�##�?���m�oס

�aU���-��b��L��#���C* �)��ll'�+�EzLe+�%�b������3�
Y�1��
+���{��m��cJr��Hi�GOL���Z��X�+o�Ll,TO�?���$
���~O-|<�蚴�w]P1*
9'�:�O����
���V��Ω�g꩑P�ހP^��t��9V�	��>�u4�`Kc�ʑ÷�<���U����?�D
�&�
q.
?��j
:�4`&���k4�W�5��k
k��o���6E���[��%{��-[g2%�4�Cۆ�|=�qgQ�ll�>��~�i-���!߬B]�D�CO�r�DI �^������w�ˀv�u��a僉��b�'b�չ�#����0��M��_h���`��ʉGk�Y���)�b�
'�
�m�Z�E�u�ߣ�?=ȏ�ZlZ�;6*�&|�}�'=�W� X	���C}<�s�
T����d�(w��o�;��
+��/G�(95�0�P���FiK�'R��_´W�N�S
Z�#g�1���~~��F�%�͋2�}W-o*}y�Z�ԧ�geY��=��1�����
endstream
endobj
31 0 obj
<</Length 65536>>stream
++-Qn�\{v�1��Uk�ց�B�R�4�����~󷋕��*��` �zN�u
 7���zPm�
�{E��-*�s{ ������vܶռ�/C:��7����7;5��jcZ\������J���M
_�nO�b�����o�3D���t�s��"���i����{5�
8�b�ݪW2���
��`�2jRT�ct�՛�V��r��q\*�|�z<=��,�Q�!h���5D������d�8<R���
uQ���[a|䙅����J�܌Dn�b�EI�[m!��+�"[�x�M*"�h%���)ѮY+����
F.q:G��!�T
�
5mޠ�����Ƚ��,c�Vkha}��
]z���=f�x
*�UhY5ԥ��2���;��CB�i aW�OR��u]{��l��z�w at J/Z�
�h<`���S���Du�
Tݞ��MFMeY.Z.��~�k >}LN�籝������!Y9���
+��?v�`T_�۸%�(��)��9
���5���-���B�-�H�vmX��qaVՍS$8w�%z�v��U�Q�Μz�Є/�ԩ�̈́�������q
�-��R�Aͫ
G��� ��m#>H�m�}�8�4�����!�����̤��S��z&�� �-.1|r���t�G�]��;�1��x
�x@�*C�q'zh VJYܧ]�D
pey���Ձ`�jLK��?�����Uu���"�n��Nr/|�U�%'�K$Z:�k���7��e��`k��̺КԆ��
��f�K�b�ֹ'�3�,�������Gz�N�x�I?G��ٽQ�
Գ֓�^,�#�t�XE���	�L3H'ǒ�hC���
��G"�v��S/�ӡ�?d�:�
O�ȖbP�-x�*-�@5N��)�h�R�F�@���!0FgnG�Q�`.�9B[Z�
��G��	T
Zg�p>b��{�V��\���%{ ���EF9��.
���W���
S��^}�}�P��bR�3P6�m��|.+�_�Ì�퍽ʳ���n�avm���£#[�
��\��73�e@;f��7�
{r�
���E��3�Y�~"�s��?i��x���� ��!�7o
F�fx8Q��
݇�oҽq�R;����T�1����V��X:h���-M���粍��y�����["%3x��x?������1�x+�W��I�'�8
�q�J����V�B
0�{�l�=#�k`�k�*��z�˂&/H%�O�Q}ʰ�s�����3%���E�����
`(��m ��
+к��F|��N������.-�BF�O+�N�<�"����.��eK���# 1"۵
 �NY�*�j۪v
�
+V:�r���
q#m��'ܮ�&:�qE89���T��^���lq�
R3��	@� y�ԫ6����e�u
+���
�lW��*5v��9+�Ȧ�jJD�{�a9��4hϪ��K�v�I�����B�����
ݸ䥐))l̶���,^�
{�,z
��lR�p"
��e��n]o��[��*��b��Ƕ�9����D��*�-
+�؁�r�56��f��J�����9�"�Ù������Tw��2��I����d<�F]�ʺ%��d.�iE��w���o�@C��ֈ����
z�ct5i��9 >-��ӷx"��~�%b<��83�[�7�.p�riKs�.��ze���`W2S��q�
C�σAK͠�ҳD���WaT�e��Kɣ�+=>��\��)n�X�*wv�"l��R��

5^�T���Z�?�ި�y�Osj�:���*7[T��V
�(Xp��^��5K��$3�kK:,d�|���7e��j�.$A
�x�D���y�L^��s��;m�+�xo�í,�\Se�T�х���ڒ�vktN��8�s5h�|�=��*_�Hx4�6B5�k���k�,�Jl
lu�5]��G���?��=�0�<���s��;_���H��)�j�/h]�(�R�X5������SF��B�<Ǎ5�
!� ZL���k%Z��
+���8k5��
�1�\��b����`�|�ۺ*†����9z�En�4�< [...]
+�����ڞ�<
+�`�5���[��A!�
+t�_Pk
�@�s�,/
+�ϛ�g*�̡;��<J�D�t%�a>�t�.I��%�‡�{��-g��jJ~�8�n]���@�������o+󅹩h1 
�=L���U*_�%��K-���5�
i����u��аǠf���]���81����9�
+c���V	N��3
.uq8p��m?
)y���58�H���}*MF��95�"_(0-���߮J���vѩ���	�O�+���e��
1]���~�'��&K�ν�{��h��P��C��iߡ�*4!Y�2�koL�CL��z�-i�<~
���w�9��/#��ݰ�'.Y|�	�X�҈?��A�󬸲��%��lw14����Tyk�>{�qm�'c���k���6׏L8�F��,�`�}4��}L
<w�b�gQ���>Ctw=��3rA6
����f
��/��j�
�1�RIY�rr����$��x�U�k���g��RQ����
jӵ�Q,y�]��
�sӉT����
+�ӟ��ux�Y
��9śee]��$��y� �4��k�a�B�{��z�##��yq��������?>rc2
cB�R�_�J
��ذiו7�G�ՙ�`��^U+ !�u���`^���'�x>yyZc�t�5
+�	�8�3�YL�/'R#��zU�N�Ї��!���lW�
j��IdzŠ^9�qh�M��/
����M�r�|*��'��뼪ܫ������N`���U
���߹�ծ�VEB���>�{'��L����)q@�Gd����8,����r�
�A'e�O��WƊ�[r�@���y�kyO�T��JE���2����K�N�i�;�Й8��^V���[+��%�$2�S�˩�!?�����ɚMk�
+3o�Ǒ�M@��5�����
*�d�Kڥ�5�8{I؀m������~���	����"���o�q��G��N����
�m�T^ë}�HE �%s
�9Zd;Pܠ�!����8��ϒ��8�xx�?�j�A�-QT�hv�T��NI��݌���u����{�c
+��X�PZ�ڴ��e`{
�k�4��T����b�}EW�'>'=j���}g������P�u�A��GeL)�);�$1�&Q�ܵ�h3�x���װ&��_�E�_�C���G�g��ʢ�
���E��:��YM1�([M
�L��q槣����'�"/����
kA���
����L@�����FKb�1V9+O&�*���6��{��
��	�`�`�9�@k+�� 1{-9�
*A��̉/շ���������-�
��=�
�3�|����d�m�~q�8 at 9�zf|,
97���n���:���N�C�K�2�2�:E�7w�(u�:�F�8�Cȉ���q��7���DN�����c�:���p��\+z�N�k+I3�$���`:[�wW�J��h�k�����*�����l��^��

�'�A�X87���G�U�K��82Ќ�ك��%#�#s���-��1��07)��)�)J���,dPj-6Gȍ��Y����x7eq��Χ�'�h������/~+��+�3��SmN��D�:k��°<��ci_ӌ�~�tp�J�X�RGOO��mdV��*!FרW��r�ݟâa'���7O�T/Ԫ�l�c�/?��m+6��CS�
פk�f
&��~J��27IP㘫m
n����`������{I���1=.[vAT
+:�8�j22Z���U�±���֭dm�h��cH{���	
�$Qᕗ����M����c/
3��i1��R
|�&~��/�7.�T�
��N.)j�_M����ܚY��4��1���*;._6�h�ٿ S��`���3�!��'Ώk�׉f��
4�Z��d�K������6�d�r�#�
��
k�f�e�y_��䐕UF���X��|�p<`K᲌������Iv̟9��^C����݆S��K姘�ω���H
J��6�
�-~�A*��
�8v��ڪIL�s�6�sTv&����ȹm,e��<O���~��kqZ���Q���q
+aa\=<5^5��¡k
�m걣Z�?�Gu�M������v��:�S�
t�����]lV��
��K��k�w1p���K~3�����L�?b�J��U�W�@�Av�����[fP�
��d��k������Pj��
��	 �b�������7�0�<  E=��
(j�+O<I
�}��C�>N�E���K?�Xj��r���
+�=
pQ����ct$�
+x���[
,6��bP*��֫�h�7h㎏�����ܔqZozk��/"qk�F-h�B
�t���
��4!�)�"�W�M�͂Gՠݘ:J�5���g�C��L:��A-�Vn2���=i�Q�N�%���N\���d��)W/ӎ�w^g�n$Bk��A�7�f���^
	P�Z2o�10+Q}e.zeI�8�AO
�C�
:�T��'�A؀��=�z�~W�{
��]
%�vҔ����8��Ѿ�X؋'%+M���J�����lg�+��so��dW��/t^X�UX�ڇ�h�Ώ�$������%�7)�K���X��xM�����c�����7�Xc6 �m�N�šSK��+�s�zP��F/��z��{1P�͋����e�
Ҫ�si������
4È�9�����ѵ�j
;<M�<�	{ގ��­�����b	���7W��b���w�8}�8 �o���%oW���jO��?�1�^E�,d�XXd
[_�X�O�z�|p����:���G�
+��"ܶ��1�K|��K/�b�{�R!�GZ���
�B���<�E�HU�̟����j��~��n�i����vJ��'t�,x
�ٌ�V��ֶ��1M��v	����S�;"�Y�������	�CE�
�|����� �J
G'�|�1<ȁ̭��`�b9�yt�כ��\N3�۬	�n^
^����0�|�ರ�4�Ҁ��%��jwSo�d�y���ה���Đ��K2&�m���5mZ�R<���F�6�q?���������:��N���Ƈޛ�?�
� <78��&48�
x����w3��-t��X)�T](�K�aYZ���
+�]�ʬok-r �Z���$$C����ˣ
>�q<�����c���������
�3��_�k�cu���da�F�e��ѿ��vS������F��p�
o����f�*���]&�v�����N�����m<�c����ҍ;ٛk�\#��64���զך�v��6�ݜA��
�75�~�}>�a	i����iz����3��yN|���kg�l��!�D����\l!�)֡�v�.t�\���
��i>�J洑+�xsR^"
�T��	
�z�
����k��\
+��j�6\���^m�?��\�
ԟ�J��~�a(�����Qy?k�@̙��n�p�~��džӶ�l�߻�L�,%x����"r
B��N��i����̏E�P�>�:c
&�80î��Ω^#拓�2�M�.)���^�����&J���-9�[�ҁ�D���=��V�
]m[�*�zU	��Ƥڿ��S
��R�p3,�Mg8�wpB8j�8����P��
�;:޵5(�������`q���0F���Zԝ�oq����m�����:ޝwwZ��3��v�Q[�Z3TnÚs��y�W>�q{�\��3jL��>��R�i�Y���%���%XP�a�{��\Acle�������)*�ft�6[i=Aw�l�vP0�;�eth�N��*�1��˩ŏ��ɣ�_����
ܩO/���Ү�>~s
�V|o�g�}U}���Q�vy�ʇ�^�E��&9�9gd�U����\0N x>��e�9�I�xJޭP_Iׅvk�(��ۣ(gۥ�
v�R���r�Q���)
+rs��|x(G�*��A�,�nm�z?�
5���Ʉ�OI�hP�s�Ը޶i�D-��:sn�J�}�o�1��6�
/��*�:�G�:��o�����v�kW�IiZ*S�zS�S� [...]
+\�;�̹s
��$斥s��n.���^2i]��t~��������3혶���Yl��sk>�—}��U������,��%�Gp^�q�aZf/W�X�Qz��P�2�}j�Z��b��l���e�B��uíSr6cf��G���8��
1���g�
+�����<�ږz �o��5�"
N�C��cj��gk�@З�Z7��gV�{EЃ$�2��"�\~A�\�As(�Х���
v�7����h��,�>�n�1d�d"2[�N�x�L
�M)A
�\�~]��o�}��Id��a�u�l�+�(f��[�r�Ad�
�,{U�3����l�2=rvg��x����7�6]O4�{&�ҌY7����!����_�,��O��mׇ���
M��=
���Eq����?>Ǎ���^
N�Ꝏ����vQQ��t��Y�jG�%
+H�ﶓgb�`o�<v�_�b�ѴF��x���

Z.W`����hn��s�
���o�7-������j�haO������C~��nc�~�À����{�l���WX,0	�<Da�M����Tɼ{=B��ވ��� S�o.
kþu	n&��k�&un�bCS7�-��E&��37�yh��
�r�#�����9��ޞ���u�),���=��v���ֻd�=�����zz���F��
+�5���NM��-��Y?��>�KolUS�R����m��w����Iu*�m���1<q��3#k�y烼��k���>�8N#�u
+�|��:?�N�<��Y�%�`��[P}Y�	7�DڋG���g�!���
8��vhCU����F
�y�h+V�y
'0ϭ�����₻��G˶{��].�F��`iWf7��g�~ܹ�0~_��
�Ļc�)T��s|�}�.18X���7�y�gD�в;�2�A{�߻�aM��х�E�l
-K���k�z�Ů<���2'�V�AYzYdޒOq�f��2�kk/�Γ��'��y�DB\���e�?�����t!
��l���[�
�k�u��r��s�>�zRX9�9M�2^�8�c��Xţfզ�����@'��¤<$���	>���B8$9�w�,�ӱ�
��h	zU�9N<x�ԝ�I�&xd�n-5�枏���
����z��`�΢��4V�e�����q
5_�c�"W��]�H���
�	���
|whk�]%����{�5;��u�{nzfG�p=���p
n
;��w2{�˻�Un
�.�S`e��?�Ʊ�S캂[��b�x7���
�k-
����I�Y;.�������99�h���trB�ֵ��-�䝜���:�Q�6�I�#f���|`ol���
+�z�h
+�'ev�&��ζ�諑�?�S�ļ��5un,rrߙ�G.I�('#�D��q6�%~��ޅ�'����"��\գ�1hC���
n�p�U/�;"?��U��A� 3f99
�t:ɽ2E��!X��Qt誂Ato6%�""��!(v���qp��3'�0Cr�
.>[���j�������T�����T6J�\/C��Qe��QW)��~
��9O������o�\��ޛ�r9B�
�X���u��.��
�e��`5�q+|�b�(;��M[�jI@�fW�
r�HmX����Dg�ꜘE3���S
+�s�n>h��bZUJ̤l͸�
��P.
٨��h�k)��.�6�j2�����չ3[؞�LH�*ЯL�O�d}��(I3����M�ˊ>�:`�_��3���k���Z��B� �`	sw`�ݵ��1��6�e#���D�b�׭�����P���f���>����X�Z�������|,�ܜ4@��xɘE�(�Ҩ��m��)BH,����
+V��lt����Z�5��o��c�8������`(�ɛvM�4ɵ��a{�9:��P�|T�e-\����
ny׏�?�Ļ2�����6U��R����2*'�ɏrV��5
��Z�Qܽc�ΘL�gW�=�
}�mLߞ�G�$6��i�n#>q�)4�.�IǍ�f�0��{S�F��Ӗ�d�2���C��I
ߋ3�f�--�|t����"QJАlK�o4pq��Z�����5�ʉ�:�b���L
:�� ��,�8��i��( �&g��L쁖�b�6�G��Φ��H{
~:%^ ��2�>�hq-$�3�:�t����7�P�hDCr
�]��vq/d��!W�+�f��;�Ǐ�l3U�����QӋ0�h�3�����h,I+�,m��������̨T�nF�ʜ�;2jrv�Z
rv��.0����	4]�1�����l at N�zI5���rG�э�������[
oZU�l;��tP�l�1�,׭�#+n�V������j��Ӑ
�5ě�Y��~M�M_���n�f:��{����lo��y�74���'+A���[W��������rTA}<��3�.�
�['�h�"�O�	�m���1����Lw�NU#�{;*/,f��R&�ڕQ	
+�eG���㩎�w[�gv�������;�{�<����U���cʢ���M����ixzM���,�{)ժUs�ǫ�s�KS�՝�=���
�Z8qiY�Ћ�����xI<�mba�2�KA�
ݡ�1�`�!|�����v�kK�׶�@��&���8o�7	{�� m-�v�
i<
\5��qߟ��:�
E��#
�D3��jc���_�L��;4��&w��G���q���S.�٧�(�`_��~��@�z��	��
$U�%� �a4ew
��˛[�w��Nz!{]����yrK��QCV����5hUD�跎j[-��8l�� �?
)�@�<����W���+�8�!�^MW~�מ�u�0dv����\�ۡ)��Ee��"|��
��;{{x�}H�{��
2�KҦ���o�,��Au^�yuc
ڂ��&r]�,��h�Կ�x�c�`<���/��Ι�6!�[�YK��X?,��`�"��I� �
��Vn����"������]��K
Nm��f�;PU����T,�r���f<=�d���[�g�~p���^j��]g�&v���҉��d�.e\�VP�KӪfak�h{Ɲ@F�����g���Ou� 6q<ۙ]�cm�u�	د�.�[ާ�V��I�.
V�辱�s at s�h�s/�:ז�H�wT�>AH��s"Aβ�O��x�V`̽����œ�\>k�5|T�`
+� ���c�
��:�>&��H�Ԯ�ע�"�A�ܐ�<ܷR�V���-���
+���	���o��zk�$�Mꞔ�[*k�/c� �I�/�U�%L\�9/��j����Hl���x
����s��^̹���
�ï��O�7�}$/[BE~���q4��1ݪ�|����Ճ��z�V>;���"2T��X����W��Y�ޙ�8'����
�z�x��I{��/o�^׿����c��̈.�E����4O"&n�}��Q��C�A{e�Rsj���-='�����>n.X��Ypk��n�!��,�^�^���rX8�
+�lk�`�l���/0N��k�2
UJ��������iv���w=
 �ʷ�#�c�M����E�����%��J���-���幪�n�W���̓F�G��u��{[,L�)�� � ���+��30���@}ր`��y��C�!�jʊ�/�n
k�����R�
+^	�����h���~�2#��HAr���_
��������26/Y��Q�G��:}�.FYٕ�Lv�Rk?
�mH�7o�?4�+���E��u�_� L��
KT��X�Y�u{�@�}�M���uz\箪�vn�{�[��Z at j���
��țl���,��/L+��Y��jj����n�GϪ�+J1����~�e~��eړ��7�^��Ě��=�hU�B�wѧώ��Í5=N��5��Է�E�(��@b�b&
O�m<g��:hi�k
�/W�ط
B�]��z���a"�N`��fv9ꕺO��feS���7h.�x���t�
VeN�`����le�Q�W�IxB�[�?�R��o����y���6 at b|˦�S�X
�^�H�`��ݔ����~}�3ߘ���ѝ�w8eRx�4}�)������wx��ٛ�K^2sfX�>0�l*2�L������g�#�}���8D��t�xѮ���Z�E0X@�#p���5�6m�rg�+;�c	�J��l�;͔��_�s��V��Nw
�:醣ۣ���k�^	�qڠ��
.Q�]f�&�UGZ�5H�t�e [...]
�:F�O�U�{�9o�vri��h����[���Ɩ
���g4�Z�2�VG at F8j�|O
��n�b�
�&
&�f�c���3�:n����Z���jt޴�3��Mz�?�o��%�X���p�s�ܓf��9�S�'�I�P�s��f��gI4j���_ �-�>Ϸ��u`��-mhO�%F����
̸����G/����R��p>��Wة��e��f�j�6�EC��$EG�u���Q����j�HE<�����������S����'�2� !�^�8i)���g����!
��g��~�Z'���ه�lW}%�[�\B� ;{���p�듆�� �˰�A�٧�
���“��R��T�pE���d�!$��^��d�4��g�.'�����|�tn�`}v.��U
�)�#���j=4��`�5��H�t&��u��{�+7ƕ�lbCuvi�by�#;�
�z�������k:r����_���`[�uyR<1㡽��\u�2����ۼb��=����9O��F����J"?�ff9�_.?����)�M��(��x)K�a���S���B������(�r�y/M��Ե~�9�����0�]�EO�e�p�n��1;��M2�/�WMO�
+���f�iH�K�W3��G.n�K*/t�9����W�\�1���W�ջ
_����B�;Xm��PX�˫�������=q�/�>}��q�>�s�
E�%��
V�s�OQ�D�w���a�z���Oc6P~+4Jqs"�zoX��GW&-->Ҧ�{JN5f�inB9\y����:y䄒�xW��������� �h��VP�H�����*�N	U�)h7{뼎���lL�˺2��~sf3~�)�Q��1���h�M�CUA��-S�hw�=�]e`��_��%;�����?`5�кP�\�lg�{�Y���nmh~�5}�*��m���q1�hXi+��}~�Ja�ɩ-o���p���Y99&G�u������5|��3V��M(
�Q�5�Ԑ��]��ď�|cǫ�Tg��<���f���$Ȳ�PV<h;̗/ٛ9ǁҬ�F����N��e[`�~�2+t>q��Q�0?Ƀ��S�*��<�dF���m�Z�ߕ�}�"s���u�	��r�:���d�N���WQ*(]
�Eޟ�F��M���<�1p�9���:���
{o����HB���J
[[?S�� �$��K��K��q�B�U܅�SF��1������`�Yئ^��ܹ���Qą՞jIx [...]
+�|P}�=��sS�~�7Zt(@��AQ��H�k�y����=�?��Q�c�B8AF���t��̲u"Bzs6\k�E?�w��j}
+�Rl����騞7���]��"��j����@�-�6�r�[�k���N���l�v��:�B���H�9����
+0:���\%M��%���P�6��
C��ޥ3�\��J�m����h
9�������kv���;:�ֺB���v�v&CNYd�u��/d�>�
�GNп�"O����#yt�Q{����ɪ�Hht}ꬲ�/�th��I��PRm���W�yM�kuj/��!�k���![�i��W
��B�t�_��!��(f��n��	�ʪ��S�b�]P*M
�/�`��
6QvѺ;�T�=�.��N�:|�銖�f����|�_�҂5I.�ĬCM%��QK���{:|)�w�9D1
N�+D�\��`���m.�]
�uN�����p�숃l�5�v
I%��čȸ�����w~.%����b�˰�ֲ�Ukw<��km�5�̙'��m
F��~7�?&?9�?
��H��z��xt�`���ο�f�`�q�>_��T6�E�%
+e��jSf���RNAߵ�<V����TiXl�}\�jQ�4�oh�D��k�ۘ��6����ӽ�kǖ��G;��_�҂=^a���x�x��^�B���s��	^ɣs��?�c^s .ZOؓh���\�4�)�zA[]
`]�t��^N&�Ĝ�-*�ը䅴���h.X��F:bQ��ޓ�
��vo{��B�k����jv,"M��Uc
=gԦQ���]ݲ��@S_�9N�\3�uNJ4x7�[$U�
+����~���k�{�O�z-��oK�F����.���i7!�&���s��
���a�
����v/�ZU�s&&��"�W�Q��ܾ
�^��͒>B�
�>6�AG�l4�q�xO��a�]ɭ�
��Sm幌�
F�x<8�̠sϨ��z �H32`��Iΐ�7K
1��JXR��^�jyP�3�����
��O�-E�f�1��d���cv�]yz�
s �B`�9Оw]&,�v�������8ջO ��2
߶��[(��Q'mwj
����B�
�WL�F�v������R�w�(V�A�����~�`����甦�skq�>���@�
�X~�hFs[��RU��j�yU+��ٹ�����]y7�"�U�.'j�09�ƙT+3�"�e��(�I�{a��
iDN��'цqf�^� ��*U��o���3��&��;�%���ՠ�"U�+���6�k'(�}uTZ��p�^�{���94����T$��l�	���%< ��&�8�HLiU�z�愺���11���[D[6*@q�!�� [...]
+յ��%��՛�r/@q6T��e�3��AÏ{I�0
+s>�����U9|��
(�0&���^2�/�~��\�5ز�R��/x��Z���]m ��tˌ���IkHۻ���AW��`u$��6��m��]��M����P]X��T��‘�#���u�h8����� ����|W~��:P�\����:,��SpX�:>��ݙ��ŷV8�v���F��*
��b`�F}�;�t�Z��7�k �h�lN�<Ѥ��D�]��H^9����V��F'׉�l�A��!�i�
+��B����>�fɷ�jQ}k��!ޮ^�����z
�<���֮E��s��v�α�~�6���������!*W��$9��3V�
C�ҷ��19�Ӯ�:��b:�f���P�Et�աƅ4��{'c:���������
�16���֘'����V<�J{��


+��t��+��~�n8����,QJd�hCzi�t���=Мa�e������)�;��
:�9�#7�pPQ�~�Q�ܕ��\"�jce�������AE�����?��V�����H;�b�1u��p	Wxe��9���op^�ڨ�(�&�]��
.h��O�)#�Q�7�}Ȱ
սʯ0ɸ� ��B�4���ƈ�������~
ضs!߶
d�.A,
$�^մ��,BL�(�?�N�AzŨvm�I�N,E�P
����sk+�ڞy
F��n_T߬&.j���
+7۳�N�ܓ�]�$hd�Lա�v�<����=o_�L��
+�k�Ĩ�_��#�}�j�m�k^�>��<�^�w������l
�&��>(4=���n�<îR^w�R�VO�fl��
qi�,�����S�m�VHG��=��"���J�Q�;)�r��yT���}6�;�v�gf|B�H���;�I�9�w�>
�¨�k�7�R�����|
Q
@�� @��X8��dz諢I�,�k�
;�>Y���+�+sW��Wmɧr6α߅ŪiYJ�o �Q�N!�&�W��6�n��ɻ�ў��6s��^�9
g_� ��"K5;
���0������
��6�Vj�*
+�C'V�V��a6)|^�S����kk�:B���w?�m���%I���kl8��w���{��0d��
�o��mT�ܑ����W��O�@W	���|�׿w��+�k�%�Z}:j�F�����Q;�Q7mw�O��1s�|�6�G��d�צư��+��p��'�ڶIi]Eh���@p���h��֭��f[�=/;|��]���-=�X�͘�X��rG=�Q��1�L�9�� <25b"u�cL[��e�[�Z�h at -����
H��^����G�L?����[����t`�Az���ϚX��m�ȶ�V��~9�*P�I�F�!������W��D+�q�����>�S$���b����J���e@�nn�j̒� ܇l
y���Sqq
�^)�9p�F���
Y�4Ϋ�R�>�L���X(Sę��Y����I���'�_X�"��)Tz<�S��˞�������I���m���A���Š�}�r�0�0�Tg�mx���>�TL��i�\b�^����
"~�ym�
�?�M^�L
��׃����$	R8�t�[�I|uꦯ[Wyw�f�[�	�
%�?���-ō��4���i.,��x0���+��;f��Bf��d�x�Ѕ�g�V��P��^[Vf�_�z\Z�
{����a�xt*q�r5rX6�l_����kU�h��8V�j��4l�*�����Y��&���?�%�Q�>
����"��`q�o�3m�;�ߡ���~2�ژ�غ=S�>�m�j���q'�#7�
n�pQ|�\��
VVc�iy��S�
��~��s�p����"���HS=J>��f�����1y}-
��wgɾ�%3YGW��l
a�&z��`}r��
�0h�q�TE~�a���ք�����Gm͋�����ˤ7�Y���J]��ٳ�>)���1��w�YA[6�?F�:{�����,�
,
�	-��~G��M2��g���cy��=e%U/����zWua��{K-%uO���@l9���X
�&.����eQk
K
�Pc�&
O(>���u`Rk��0�齗�˶!
+BC�>)(���#�R����Q�
�TuC�>����ݚy�]
����k��T �.��:�w�����_�T��i�ܑ�j�-�l�/�W
�Uӫ|y�7WY���a��7�����ߖ���(x����v���(��h���mI}������űњ��
D<Z:����a2?���&53��
:�����7�r웹d���fCK�MO��8���j5g��"&,?]������v�냀��qL�k�[�8�Sy�XÔ��+i�w��}��է���f/)'�c fͻ|�OiU>�v��|�Ύ�M��|��K\}�$r
+:�)��q�.�I�&T�+������ /,%�_��ȷ{�eQ�����We��(x�^f���Z�xb5���t�ǹ��@�?ɵR{,K����/Ó�[�<�LWoyz%
�)k
$O����Ju鈕����b�B�z� }�b��tW�g�JF�_b&�|X��	*���=hL2\�Z������v~ٜ�<eڒ&=�~ 0C\�=)î�r��N2���
n,n�J������(:�`erG��!�R��Y���WrZ���"�ۍ���p�2�l�[��!`H� �~�g��I3����Q���
��L�'>� �䞕�!A�}T� ��,��7A鲻��#�r��9�|"[b�[��Q��Q�y��{;e,���'Zu%�Zz� �{����J������������fxhe�]Ig�=n�
2�l�+�\ʾ�=}��mK��~3J��mc�aI���B�f����6XT�
�k�
���
$}�بe�)Q՘�&k����uho~����W��"�&�2Լ+b��(�bcIJ�[߲�E�J5�rU

n�&���t9��Țx
���|>_�y�DFw�1�9�G�V���\M\�7[U�!-�Ev''�kʏrX�p��Z�^*~>�,2bM9�l���~�&�P��)�^s�"P�r'�_%S���D�}Jcꢄ�b�֘���7k�B^�3��C4iՂSn�RA����V��?
?W��!��(�E��"
^�:9n$El;�r�$
�s�0���r^m�t-*e
+�M�mq��
#kH�2|jo�Wgm�S���/�/�%
��+RT����2wq??���a=�>
���(-
�XJ�
Sե�4� 4�k�y��Jg�].�ZDH��՟�B����T�d%��h&p�����ܦ۱k��—�n�'4��:n+��O�;��+v��+��qEo��RP
Fy�1�ɽ[�:š�U$�xm]�{k> ��|���b޷��15�U{;�nZ�L����K��Dy���@�������c����h����d�E�Wb��y
�K���d���t�5D��y�X]`Ƅp՛�SxIs����
��4E\G]a�OJ"jG�[���b2��|�(e*��e[�_��R�*Ï��t���QJ��^_��? �b-/�"l.���}Pθ���z���o_���E�,�%��1�¶���0:�7"Z�2��Jh��<@CZ�e
Xϥdc�k�R�P�?@;�P��g陋�pך֦C�!���N�Sg�1��o2R��ԟ���_R�X�K�Ծέ���s�ػ ��2`��.��U��K��.�R���;山kɧ6��|1Ի��m�o��B����mS4��VC��rgX֯��V��MB��T�]-�����g�!�-��i6p^�2D���ډ�=M��[���bs��
�{շ��5\�'[!��Px�i�w4�A�	�e�������
l`w4�w���%��5�+Z(N�NF,�mN
+S:�x�OO{~��4�ek��(�Q����>8Y���J���OŹ8
+�����?�ڈ��YQ�]��Wgv��+��K�Y	�@��]�jLR�c�U�m�M�>T[�KL�WC���!k
�������y�˧x��DK�SH�k�H�G��,LJ
=g+����]�� �pϱ�L�ZG��Z�N�v��#iTt��}���\�,7�׬�T��5J�3��۱�
���K]�����h�Cɡ5��.�c^���}H%f\�ச�F��C(������Zcy�޿m]yí��>��ӶUP�B��[{�����Rc��ק
��tk%-u�ZoW��,�<q�DC2�P4��Zi�X���>bU���fϋ	Q6
�ꄍ@�l���d-�ih-�5����X�����.�,����`f�276�,NQ������`?a\$΁�ꍶ]�����e��g�/C(��ԥ>�����|�vv�6d���بк{�R�nm���� ۺ�K����]�ݝ�o�>GWc:�����dw,��������P컎ѬBg6y~��_�p�o��&V�/��V����[�T
��n�7� [...]
+�
����϶k~�S926��o3T�#r޺^�r������������ڄ���\�o�j��Eɑ��Z����ӥ%F�
�P�������&X����l,.��-���{�@�]�+=!Zd����
��jV�G�'.k�93�T@߳;I����
Am����YڨALg��E�H��Z�RKx�$�W{�����N_2�.�۰�;��;�~+ѫ
f�{�%y���ϊ��6�U�4iP��P'�
�-���:oc���@
H�D%���k�FH��r�H�z?�9��`�
��Pg d"l�
+D)��}��p�d
+�R���

G��7�bԙΣ��)��,�B5�Z#uu��<��!ݧ���=��9��{�2*�tz2�i��x�cC�?\� ���
�=��֪
��z�j:��@��)=��?�u�Gk���^P�u��p��*Ox�D�\���^#��QC��
M��GG6��H�u��6�d�/��N(-Մ'�x�U/��H��[T?� ��
�/��P�2�a$�p.dI����t�G�\����	>�Lz�z�� 40#U�`����Œ�G�ВWn#VY���9q� ��HEC7���5:�q����X�yZ���o�
|
����wo����
�;���cϑ��
�'��˺V�f�[:����3�K�X�
wq���c�q>� �WV�"�B�z��a�
��V�����K�y�a��i�%��%�z�TU�i�»2z�+5I8O�u�4ˁw
��٬p���
�!��1l(b��.�1�¨H��5���P�J��
��MxH�aqܒAZ�z��x�֋�˓���?���4��v�Pd]YL�
V@�U�s8V8E��l
�+r ��Vƕ�=�
���1TB���Q,�>�[
�� ^�w���"
���se+��ƀj���������.9J�Q�]�[^
t�p�����v�+a��bc0o�1��9x	؆'H�
�o��m��M�f�:�o`��&c#P��?��"���o|
+32Wg�{�G����?�-�
+�\͋��C���Nl�,�w��i��k�ա�-���ZÖ��y#��sC�D��#���n7V�ڽ�=�����}0�zh�AvͰ���a�H�!�El\�Ef�:Q0�
��V݌��r���Z��
+77
��g���s}O�є���\�Ň [3�6dzj�2������6�(^��F����/$^{
Qs�u66f�}5�r��:t�g�k��/]K��k��w�vJ�2���Ji���"����Yw��5[���GG�>%�>I
��t"}{�ZI+���|dB���Dz��g��	��o�2;
��
�M|x!\S��� �Ë2#����2�,pT$��2�D��oY{
�J�~�:՚A�d�+�0����]����K0����qB���^G������}

��P��m߽>3=\��ZN}��:��
�JjKZ�ng���~s6����dW;�zu-?�U�W>n4�:=l���
�JO����o� q3�@�� �sp��'ԛ;���n��͞��Ho��;e�
z��f��e=���$)\�/�v
R��4���C���
�<�5�3��w�����hԧ��˗
�xe_
�@��+-��B.A�VɡݚMh

�u�ߍ5
����zպ
��!�<�)z̆#��
x
��)��,ٟ���wg^������`x�=؈T����Ru-̧�DB��s�
���
7%y
N��h��E�,�mO�����L�!�O`eT����)
U#�4b4V�
+��D�����^t,�����i	Yn^��r�c���ML�O�R�]��/�iH�
�oJ�F���3�m�_�T�򝮷�������h�
��
.��
H��N3

|��ѯ�~�F��/���
�����1'���b�*�B_:���n�Y��0E��,#�3���K�9�W�
4W
�! �ĢV[�����_^�e
�«W+����9;~6-%�7_+GDC�ݹ�?��f���iU�GD	J��ƛZozqv����'vV��C뻁�
���}�OnM��=�_���|�~F�q�%p�
��봑��m�o�:�_C"
�9�G�#��ݷ�j�]�i)�ҵ3c[�i����Dd
<h���M=���'�2B���\K����$>��y�K���0[�ۂ'
�
+ݷ�Ln*=�#�赾VҌ�V�
�/�
��ٕ-<�j���gd��?��*CM��TV���~|�"�̕����ŀ���ׂ�8�-R
La�q]'1I�c)WW�+��FS��u[}j�~I��ה7W�+b����%�[��7|�TP&���Ƽ&C�B
�GZ8%���h:V�����F�ΐڋ���S<�U�����N.�Җ5���okw�!.b*��O�K��I��%����U�=#��%��+���̟��
�%�85���g��~��,��F�ݨ��fR��2�R��K����_���[��!' T]$Z���7��H�
���K�
M���i
]���ߤ��a�״�T3�R��-_����
+��y����-{+{��V�!
�9�= GA_�
��6�x�����Z��ԇ���OY�[�ùԣ��
+@�t���B��m��r��<[R��Z����H��ZSc"�-i��ͥ-_�,N?>�f���04^
<^�^z��
��?��\�;Q�p���Ԣܕ�#Մ�D�h��
�g at t#K��Y�,8bæ���o��J��l����ʊ7�����T�x~����@�m����B
I��OD_+A�ѫ�p`�D\���k�S�0�|I�7�B��L���L��@>��]���O���}]/�xt9
�������ą�s�u���(�m.H[>Fb]���"]X?X;�}Wf��m���Uõ,��vv y5R��~$�H�&���Im�]^�ݣ?������
.�!2���7�Z��|S��qf�{o,w���|ҁ��ݶ"s�ö�y�@M._J>N���w�;���b1����� �K[�c�M��WF&��6�� ���R�M{ٗ��X��
S'@
��
+��{��n�*i��T�ĭ�(hZ��J��������S��ŷ
��>���վ5�&����I9����zV�z<j��m�4Y�K6R�����8M̅F E�s)�|��Z��r*�~�ەd@�VR���J<����@H�4��#�;<̜8��RΏ�=Ъ�QP��x<O��刳��:X���^g���ks�m�8m,���q��!�H`�/���\�
+�B��W�����<��b�}?]5
9��y����yn��Q�	�C0���c��9�
�����9�f��vU�oIWO�#��ooe�Q��=l���>�v$A��i�� >O�����
;�0[Aj3w
Qk�vk��
SB>s��)��HB�tO�de A�m5�������])%#[jW�e~;�y3
��C��Y�������~���n��n�7i�k,�����pmTC/����"H��ƅ槦[��� �k���i�{kZ���kv���_��V���|-h���� yX�� L�T���9��
��y�|oԱ�5�ύ*��y]���.a�P�T��bq��3�C�'9���A����p|��֨?�C��|�O��`f]�6%�9j4�vs��IS\� Y���C�͍�N_j[�b�ӿ�u�@��Z̅:q�� �T
VC-�v�\�
ٮ��sr
R^�>����u~����9��gu`q��N2�)
���`A�^�[J�O��ugfS$�
c��	W���qO޵ӆ�m{m_��J�V ��9kVߍJ9 <�|��O�(��o~��]f?a|�!�s2�N��{�{�!rYە�$��:�����a{��8`��B�"��������G�_���e���|-j�&W4^���Kg��oo���&��ީ�A\P�g1�
 s��;)�g�y��@�>k8�Y�
+oF�[��$��&�Яۼ��řS{��K&��IC�ц{�֦'�6��h�	g�pouAԾƬn�?�M�LmH����
���H� �.]@�UD�f��ao�B	#�WQ���9���V�G 'Os�+��t�YҎ�iy�,�
���✬\��7?�<����<
�f
�k�yXgU���O_�v���nN�t���F��O巵oGx48�nZ;�3�G����h��
+�H���͂֬�]}��v�_��<
�R�����j��D߻��tsG�!�5�;�N�$卧Q�:���DY5c�˱*�mt�u?�zNr��nhx%�l��r�=�aR]���ԕ.~c�ln�/��vU(z��� ʻ,��s=x8��#oms7R�E�JC����2y`مn�%�am��so�9�Fp=jӬ[��I���R#
,����h�i�F�5Vs7~�fy�\�ˆi
!���� j���%!7�fk�_}�f�y��W�^����h��n
ҥW�$fjM��������d��݃��[����>
��pL�
��Y�Wg5\x�}6w���3��ī>X��=
���Y��A������	����>{�

�&l�(F6VҐ� �w�<�>�}�^oJ����������o�g��ھ����Bx��B`�T�
����z�$d�䧢��

+���I8�Jg������~��|-�sWS
+:L	�]	�C���
�y�
>Y�����h��Ho|v"�-����"
+n]��{�
+N{��]�a	Q�{du�����o3��@�\c�������@[�U�T�{w1�g����$;��j ��UwV�����]�e�l���_���#J�^j!��rK>���)쉰QU�'�-ă��&�[b�7v)U$}5BNK�0�������IuYeS�]
Y��t�W,��gT���<x���h�g�s�"
�Dd��3)�qro�Pľ1�3����W�	�� >��v�r�m�O���5c��WJ�>v�ؙ9�U�v\�Vm�V,r�$c�W)��/r�P:a�!��gTer�+G�w
`j{�VOV�1D
1%$��/_��8.c􄼟�t�O-&J�>
"X��{=�
+�����@ƞ�\�V3R����ofW��`���G#��*���p��k�����tưo����g���F�n}���
2e�:麟ؼ�W�`��]�!?<]���^����6�^<�_��)���S�K�xyp2!���ɫr?� _
0	�x4
��mַI�����/�
�y�
�ZD�Ƌ����>�|��kL��F�,kL�T�z�o>|K� �|R�V�
��H=q�`���
�7���y�隗����HG:n�H~�ÆUU
+T�N��,��z'�6Q��B
F�퓠�
[;�U�ȁ���e�Y�<��uG�Q_���(���[<7�i
�hV-��w�z��]ӚǷ<5�~�Y�c�i��'��m}hw~
�kW_�#2^f�You<SFK��`?y�DW�w�����U�߸�6'��7R>sIm
,ތ4�KVŜ��
��
�j��=��ő9��+��w�����c>�4țcl��'�\����,��\�nƅK��
�
��ّ
�1T#:�,�&�8t���!D�n[�
n
w�;���w"6)&��ls}Ӝ�
~̈́���FmF:��Ɠ
1���2�3lE7����e����i'=#be�>�׼���"�
�=u�z9����Q�T�[Yv�WignZ2p{P�oCE|:��xN1n���)~s�i�{�����0S�5�p��<�
+q��j�	�˗���х�6x
����r���
�;S��1���Yo�kX�9�
���
+':.�BG��uD
&@E��l�����J2�
�q*e�?�ɐ#��
+tM�����v���]f��G&��]N��1��\z%U���hr�����Fj���n���;l���GG1��W���g����%Ϫ�-Wg���
��Ʒ8:�2�
��
�^;�
`��\��6�u`2H�>����u�t����_�1��Ҡ�
ȅ~�.������[w4���gDe�l�
#i�~6������7m[%�+M[������:*�Ђ9��5�C��1YQ$�R���?��5�$��Ö��2�ט<TR��b�
�A/#
20m��ߓ� �:�Y��ŲZ
e���ϵ����
�(~������p2�����l�n0��n:�N�7s�-G�f�(�;7�j�
�Ot��C�K��s�m�����}�I�[��2����|�aʞ�M߉����Xnv��Qz� wXe�o�m�
��
�(��
+/M�cF�(<���B
qd�Һ�=�c9�a���*���eۚ��L�i�	�a��Oo+?k7��kV�Q�V���~ņ�RIM]�I`	��V^*^Ԯ���X�TѴ`V00���'��f��`/3�Bq��T��s��J6�E���bu�V(�N��nք�'�5xnӓ]T0d#�����P�%0���������N�҈y+�� 6�x73�N}��p��n����蠟;
 �Z��0�
|� goN����e�e�Ȧz�yay�k�#ʵnT��yJ��]h�g4cԾ�;�����t^c,м�������w_׾cy5s
�t_k��C����龿��%r�����o
�#b��y���b��Ϳ�����ϼ;�����D�����U�^�Ф�[�b�t����R�S!^��?(/��9e�=��A�7Y� � 	��x+��F�_�箿*�����7nl#�(
s=LxiG�`�$�
�� ��sfʳ������G�[W��y�]��El
уB�*���l��w�Cl�Q:Ըt�ii��
}�����1٩A��h�A�9��^5�D̺6XM�����sCJ��B�n��
q�Tj��M�Z�&�����0�f�� ���n}42'�,4�*��c�i�W���Q�[DÝ�KbM;9\�kl�^��'���t�ƶE
���YY��U;�Bm\��a�|C����S+X���+��j�o�T�f����,�P�I�d
+�mo"ϕ97;�N�.릨��J
�����ࠕ)��u�oI/��:s�K���� T��о[�~�r{�SYr]V6U,
�l��
@��*��$����
܊��D�A^� �
�l̳�w6L�^�2J�g�`R�o|�ܱj_��4��*���5�A��=�8
���jT�$�ʉv�Q�A�?���
�R1�
�w A�B���5Bm����T����k�#_>:�F�m��3�ף�=�E�&P�4�O�_=�P�}U� �?(4:��Vl�]��Ms
+����'�c
	d�o��I�J�Z�1��qMAG�#��|%ɴ2�n��J�B�������"��t^���s����`��m]1;�u�g�I�Lwaj�C�"��X�����~-�������U
���1�2
QG��ۄ(�O*}���{5N�i���d�
+�m
�3
-��i�*)Y ���,��U���������@7�7��I�K��n�J������8}P�;8O��mMuת7W�����|���

�����u���y~��eP�?�X��]�w	-�ᜍ�T;��!�Y����q�荞��ҹ���t���i�A}��G�߉�9va�v��F��}��2	�3^�RԜ��݊Ra�EN�
����;j��K�eѬ
+����}U�Md8@�n��;�6�����M��<_rX�K#�S�F�5 at 5�H�]���B�z�
�e�����
�i�v�5�;.�k��ַ9|�1P��NF���2	�y�uiD�k�;��zcf��m���.:��g��r�tx���X�������!ix?,9����~WF��Ş���Fm���b��UD際��l���7Hvy<z��T��
�x�~���nՙ˗�t�}�ɵ2JR�����eF
��S'��/�����J*����+�j��Q5
5��֝��Rg�ٚ�Pk�Vڝ� t�����$D�)������/(��=������c��n����iyŮk��p��k��H�[$�
r�]-˝u�=q,<al�>���5
�?���x��t�S�ں���l�szc8�|"��-���Vq6����}�%\썦�͡����4�@
���ɣ��
��kO���G6a��u����</Nj��w�ۉ�K���p�O�g��%*�Kս�r��r�!dnis���S�����z [...]
+��'��rr�+ٚ�Z�C�G�D�P��6}�M

^ra��8ꯂ�9�+�n}{6~�4a�͈<�g�{�%�]�c�ڱ3���2'�ݜ+9?=*�Ժ���`n��y�
+^�����H�S��UPI�m"���N�a�Y�n<�zAW���8���'�ҿ�8 w�BQO
���a�"��򾠽
�7u����i
�b�:f�_�mY
r�w�E�;E�^8u
eTsq�4@�Z-�wܘCS�kn����6^�%�EjY~Ɲ����	`
��|�ݧ;#`�.$�a��u+R3�pPt�s�%����R&c�h�IZ��(��
�
�,4A�HO
��Y��V�k���-f�́�P���vD`r�� ֗^�_�%�W��2�
;���zf-���
+���}[KK�tTRg)�\�b#��+9�GStb��t
ʿ�e-g�w8�{�%�A�Z$�
�ӋE^����]/��k�FkV���#�m?ok���`𪃀s�
Kj
r��:�
�-��P��<���ޕ��e���;?�E?qUI(y":E�%��
��){'~�#��^�м���-�9{US������⸫���m��4��h�s�Դڬ6w.V0%�a����Q�0G���3��D�)���8^/�"�����+׭:�j7x�y�+_�o_����s�q�X0

sG�F��O#tS�<]����v�Α�L͢�{Z�/��
�2=z�?��Ez�\��n����+
ɐ&�^�5Q�n�
AA
p�Q�O\��\�Dv�]}pz��-���
�y[����r[���ݞN�r���J7X
�>m�v����	a���
�VF��h�͏�A��5.���ے��L��e�57՗�g�N���!
��0��'�
�5���k�l'g=_K8���eV���
��x�[e�2Lx�J���w���
ݡ�W�W�Fnn���;v�%m$�lTz�D�J
=KU�Q#0mm?ʻX�|a
noz��|':��=-c�5e��j?}�
�v�֨����iW^׃���2�uPāW����8�惘�NO�ҵ$���G�K�N����eO3��Z!�� [...]
r��a_w�����@*�[�:n�p�MhP�Ff��b�_AF95����xg�o�10i,��Vj���J�z���������aʥ�%웴+ �'�Bp��萷c�PB�Ȭb��r���β�o/9V����x ]��ݨb���z���5�O7k�}>GX�wm[9u�4�l�^��N�۠#<	q�>L\�wa�L!Z��K��sf5���w���6��QD˜_^-�y
n)�6�Y�[
�|0�
x������w-����G��} ��1+�����%6
��!�Ek⿻RY
aZ1�#���D4_K�!v3�!�e���8���
���bl�)`B�*f�(c�l'^�9�����������a��!�\�お��'Q��\h���-��62���;��{�H^_���'S��D�
+��|���
�Ee�<�Q��7
�r6���(��a6Ҩ�ZIo�yS�u���fֿ+�K��S��]J.F�����+���`��Xl��=i�
��K�1!��X�}�e7�/Q�$p��:6����>5?NZ�L�f-y����A�2Xs��ɬ��H���o��F�1w�#p���E�4~x�LG�i��G掎����Ƃvu�����T7g��-�1s���z��Ӷ�+LA��e{����^������R�psl�y2K��5�ZFRL��_�$����Ù��'��V_��gc���z��ర�
�h�45�|�I�٭d��-����1,����L��{3��:���;	��=�Q�[���v�U��;4����Vv
��޹�%�!KA�/��Gv�P_"
+-/:%-�h����,��S�9�\��br
����
+����ac<;JZ�r�tx�4��&
+��¨A
�؅r$�ި�~���#�8�ԏ���h��_���5��a�
u��{��]S�d��,۪��T�:i��4D;ڻ��.뻣�#]:���;2}$�Дu]��Rk:N�)��U�i�Wi��
/
+�V�QO�]�Un���ɄPL5�&���.
��D�Gɴ��k�V��7<�2�}�#ڇC8g1�x��
���W�LZ��I}G����V��?f�|������E#��ʾv���ד�Ϝ�r
��zܲ�u�
����]��zE^���e�=_(ֶ�!���o�,���x`ݳ�D��,U,Tm�1)��=��4�b�ˍ�#ۑ�W��r7*{W�`?�X�,�.�=�4�X
���4g8�O
kx�lFy�x����@lj�M(t���I�K���b�LB�f����Ԍ#����W��]��n�{�
�h��ԗ�?�
����
�������k:'�+�:�Mq�����ǎ�Z��j�p���cI����W��b�8��4�\J�J�iu��T bE-��'k+ܩK[�j�ei���,
�mE�
$#��k
�*��2%��|E���;R��PR�5.�S��ӫ7?��cc����̈��Y�
��(k�y��&Y@$}��
M�����E�ڋ��۱�5�����(��Q�U�-���T�W�6�h1;
+ߘ�

d�ʮ��\��zI�c3�}Dq?˳!���*0-�k욈�1%�j�_��n�vP�މ�%�mw�J�pHD�����3ת�J�Ĉj}˰�d;S=h4��F~^r��_J���y
+��	�W5N~��bO��'L�2��ډ�
���I؆��������a�
Q�R�_k��z�U���+�������}��̈�2��;��0b/��\'_�<��<DD��s���s܉}�8��=P���18�6��3c���ۓWT]G�0��M�
��\2@����
��x���U������P�VE��c��W�Ep�(��~-r��W.v 
��x�S�
e|6��Ui5��C!�K�^�~�(�)i��Xm
��s�ٕA�%X��߸��
+k�z'��8��8��;��䳞�*�|ߠ�r6*�%����|<T0��4]?$RB����g�Y,�����R�dewv�'1��h%U�Ҩl�5��+?n�m���E���e�0�L�������[ϤfNޮb|}X��u+��ql����ѵȫmo_ɣ_���9�ݡ6
�=�@����M� ��X��'{߻����z$���(��(5��+}@���B���B�_�P�JS���{�$�CK�2�$&��5�J�ӣ�
+!N�i	I�V�{U�����ͻ����h�T�ڷ�`ba��a�0Z��
��D����/� �3/YԠ����<+�~�(?�
+�j��}��"���n~�7���i�N�'2�/�X��m|�
9d����+� ~^oOѤ:*v{y9�
dR�y��FrI�&�"ڜ��Ҕ�C=8H����~l��㳭�b���7�;JK�K�u���׻���D�WN�p���~9P���^����
Uel%ܪ��/Sffm�u���Y����c� �K��`'=��G{����
����;�AU�W٘4(&B�t��i��y3���j���ߤ�ȑ���Y�� �4�
�8���i*-�[��V@�^{"뻤�4�δ���lL˿��Xw�|�=c<jzK
�g�m��>��g�$�]&4�^�
A%�������橬�A��
�
e�g��U��w��4b\�3�	`ţ����g�C�����]���8d��r�n��廇����uw�E]eI ph?�ϚjJ�8[���,"�\��z'�pY����f���j5��g5}�;��� �4ǚ���\c�}5Sσ��Nq�`n���KL��Ʈ�w�1:M�x�}co�
+B�/�ӏ����W���\��KS�w!�����
�n�O|��/�+L�[|
������[�0����p�S�Rg�a�	�U�*r�6<U�ł�m����.:�h7�J_��w��gf~��D�ي�f��R
+�PH_�'{q���yiE/\.Pݷ@XƑNPg���C
͎�ݺ�ۿ���Z�•�Uf��If@�ǾZ�������k)[W���>j϶��{mCS�
�60���j.�r�q�O�x<OC>��:zEh�>���4i�r�
��0x�A8������K9Ǫ
��
�
b� e^����kF�����©f�R�M�
ɭu�L��q���2�Ꚗ@�ζ���f[M�'e��/�<��JUk|��y
��4�z����*�WBP34�?�E
+z�����ֿK]��nJ�v�ڛ�ԯ�����tȻ��^�V�0rs��V�Aex at l�w��λ�}����3y�1���:��i
�]GΏ�B��
>Tv�W� nl��idh}���/y��8��m�-��ߌ߳4��3����K���F}�
*u�ٯe4���j�6���;��կ�w�]%�_rь!M:�D��j7��
�C��
7Ӄ5:���L�l��
��1t�=7A0�%;W�
h������
v�Kn�i����&�31;���p�X���*v���V�,�:�-q��'i�]����
+0$�����{���J��1h��
�V�����y3��a���pc{���^�&
��~0�kkh�%��54m���
�z���ѥ���x����k��i[K�A�ޏ���.�Zc��D�`՚ќ,�,�&grû��%�\��Ԭt�%�by��
ʢlQ�ִ �;n���@���Ƴ���
+S�>{U�
��;�P�pxw<n
�N�r��ݾMKgs_���y4�����mU�����A�3����
�p
+�i����E�oX >M��ߚ��w
_!ڷL��tD�̜��pL�*Ժi�H��52}#���3�p�"泶���2*�+R2��\(Ӿ�#��U�
�	�{w�	�f��A�rp$��O����nъ���tc̺�f_�"�[
sT&���2}��E���t�s���ţI.
����NV�魒�mZ�'��wd7��|��M�[@���ݕ~"sEY����X�-��Dg�o�m_D�Ni����=o�ݪ<	��$�[|�d~Y(���8X�2�p	��\y�’=��3���V
H�l�:�ȟ2�C�L�=Y!��:⫢S��Y���~����6
��voR}�rnN�)�"�_�2k_�w�}�k��~&�9����
���S�_[�h���S��
� �� t��� �؞��'���>9�Hz8-ݜzV��\P��a��K��m۠��[��ȼ���݅�(��a�����U���8-�Fm�>�S) ����������.<X��/`!�ᬘ-
�tv�rݥ�<.���m�pХ��N��3� [...]
+b/	ך��M-y5Ϻ����`
��v=�g�͝]|���紛9d0����Y,��7�r��5�,��hW
�S������$�rz�NQA��/0�$Xx����Hk���!2jo���
	+�7 �M�2�}�t	�.ب>�_�y�+�\ 	���s��
e
�+E�ё[�T�i�f'mr�����p]��E����
 ����[>��
��sJR�R'q�5h]k�T����>��}��n����=�����G;Q�m����_®���z8�d�k,
�kZ�l
���L����ͯNh��E/���˶_��X�	����G�]�b�}&�~n�
�^�ZGdX1������>��j:��#���b�cd/��5��
\3�`�����
	>{�Me��m3X&͔���K�ۀ�?q-��;P�ħ�z�7��[�+�z�7]���X׭	�l����6d�j�����E��/_��
ວwӎ�,�	�|�v����� ~ؼ�\��]kP�a�C�2o��o�?�������j����ö�X�;]��|R�k����9�uM��:m�l��1Z�ֳ�L��h�B��`��Cރ��Q�!���'����.02x{����w�~u�PO@��@s��4��o�Zs��4.�.��^�O=tn�ر�,̭�~���L���g/U
WZ����Vwk3f�Ȧ�]�E�$^~��pN��$*��Y8�
û��|�ڿ�B�
�,D�Gy^��

���[��^ț�/�7�q�����uS�H'	��uF�]���Gͱ'�E�"�g�����w�d��
3J�
�:����W��0�[ҫ<;�>]k�v����Ū�lt!9��n�]l��l4�kѪ��/�D��n�1o�� D}��C�8�u�)�`�[M�
�, ��4/��	7��B��ϳ��p�*:
���ʹ�_����:'�,D�-
�0��<y�q�����[&�\��]
+�ڷ��:p܎��w^�,ڙL�@�
�P�9���d�I|�6A1<rv
�R�fHrxK�NE�ņ�y���MT�f�Z�����{{`#;G~Ͼں�ދ�h�
t*��
A��G#�Ў�d��
�J/H�d���F
�7#'pf	����n-�����C
^c��z�DiԆW{n���
�t��_g=}��jG)c[��"+�Kl|)-
+��m:�z�Q����E�Q�t�\��E��s��K�
�]r����x �>#
��&ş��7<�1S�kÑ_�a���r�?�o7X�߫�L�'SE O
Yw���]pռ�3��ę����?�uG��i�	��TU�uN�Zzd
�d4l9D#�m.�ɡ��
rV�Mj��h�>0�%��?��
x.4�g:H�4dr|�,�����E߅5�8
+]6�����H[glP5f^��.
��O5Uu4����Z@:����� ^��#�E�4q�
nc�L�S܌���[�
��?�Sa;s��diܳ`�"$��Y��� ��E��Nt���Zׇ�{	�>i]�k����m�������
���
+ݞ�Ԉx�n��^�*�{�r�N]2��!��ݏG�P���r2���Â}�[ɲ�J���#ٍ�Zr�
D����h��]���+�u�Q�&���[:�g��h
ȟ�DŽ���޲��5��L
:F*
+����mG��d$��
+�"��s.w�#���T.�9RSt��{�x���V���J�u7���$`�*���K��y�nY�U�m+S�[�
������z�U��)�

�M�9��ou��I"ל�����k�uq._잞?�b�{�g��u�=O�d|����K��7:>Z�ӣm��B0�����`,��mp3�}
Q�NM&�گmr벫
A

���
֚�7
Z��|)
+
+J�&�,�S��2��i�'}��K/L�SK��:�;L�s�X��l8� q[7&nM*���15'<t���&2s�8ؔ�a�b�[���c�E7� ]�i��
]��������]�x�o"W����-�W�Y7tL�u��^�C��:z+*1�-L8<����Q
�<_F��)�´2��E�l�
.�h�Ƌ�z N�׹��5�I(�Y������8�j�G
G��e�w�p%�
��I��/B
�FX^��/
��]��z�<��D��ƪc�⤃ω��̘��
|w:�(�S�����%:��c��/�"�HGp���-Ok`߮��֯�꾪�Uء�J��!9��ǔ^��!�� �F̅��b��hđ|�8�4gJ�jt�]A�o�3�7�B���YZ?�u�,��㋮�v
}.
�.z�qixo�i�m}73xoZJ��{�{�i
s�Q��_��I�N�*��6�G��lr�%��3
�YE���Os<�l�K��?��5r�/��m��h��ܔގ�%9Q&�o��50vluj����X�nRϡ�ԐD��h��+��$�L���d#�n�~
��ꕎR�S����E]�ٵj��4�@���&vD�9�s
+N�J<���l���C�	Q}�jovs�|�%Eu�b�_���"7Vn��h�N��{�+�J��K)2�U�g���ò��N�,R��Q���Л��
��t&~wF��P+Y����#����ܙw�nSt��wJ	��kV������
+S�
���kދ3�����3$
��$z_{yѯ�=����;O@Wq-
横�!)[��$�9�З������O9�����zk��j��
d���K���q,�K�����J��ţ
�7e-�J���Y<��Wx���t$:А���X0��ێ���)�J]T:�-k	��W1k<QE�o?�0�8�Fߎ�6�>��]7
+�m`���>��f�7�^z�Ե��'K�n����׎*a��~�LU_*}��q�
򑖽M����f���QC_�ͳ'/��ŐM�P���c�)
�r��ț�՞R�FD�~�����FЃ����
����$.�
��b���\n<fu�?Qa�a�1i*Qk����>G��Sո�񵲿=
���`H��'���sP�-vi!Ol�v]����7���!�qהU��~4�M�UI:������u'���&N[q��}�I��
+R�t��U��?�7d��:t�ϟ��2j޺�
��ת�p
b�
+�(�!�
fe#�ދpo��4��p��Տ��}Ke>ʭ	.I��W���E�S�>��)�Q����e�'�l@0em4��Ҭ�6.�D`�37����iZ�:ڂ���*�9K
�����D��J�.
j��@�C�s���Џ:�Um�t�d�7�H)Z���
�kZ��
E�5����֛x��TPz峨��׿�|�k��c�O�[�[O�6!\�
+�Un
zF���U�S<�Xyk*�;��Y���/�U���G�����:��\[��E�@�n喽��i��(�swS�z[��sk�cs���
�
��$�KR�VG�ڬ�����reFjQ��$4�������wҤ�����*'��X� WWc���)�!�j��{i�Ŭ9O���
Ė,�/�!�
 @xﭐ�������>�zTw�S��Nf�BCĊD�)-�2n��Kd��l$+�:����!m�?�fNi��2
@���=��Rޔ��o��I�*�y�2��ʧ��Mf����֫e�>�u3���03.�c^k�_u��z�)�w:�*�x����IC	]�ؕ#o�c	�n��M.6�*�9�r�8�i(޻�q�4�$4���Q�UW��
N
�
$dX4^J�Aw�m�i��o�sM�I�jG2q�f�ֶy�H�-}vBp2�@�w8;����h������
��Q�!y��#�2�WZLZ�W
ʉ����,J�QX�
5���ԫK��*IM
buu�����v�:Sw7p���<�<���W!��X�r��̗s�cc�0�fvr�����4M\�)r%N�P`p{�4�u&g��2
�"+���x�ww�֐֣YS����I�� [...]
���b����අ����N�B
�����8�ظzV\;|��Ĵ�W��Ī��f�Mo�w((�2�������ytݮ�
j�NU
Za;]���3l�K���G�֓7�!�e>�]
��c�*����/��J�TmJ��
c�ͧ9�;�+6���[��#[�2�*�0Y�d]as���P��>I�	��d�t��&`���)�#y�����#�B�f'��7ڝKe��J�u{ճ��"��?���
+�n
��٢���]
�<�Vm��V�:�t�{ܢ�=�1��KwҾWd�����[�3��=u�i��P执U]
Ĭ�=���|{T�w�
�,u|��1a���菷�.F(�؂y
v�&�B���b�Dwܽ�jX��V�Q��R�B
��Uˬ�y�^{�u��3q$�ޮ�l��
���Lޮ����w�m��˒��*}��}m�:�
�8`�ۏ�h�!ptw�1wu�� �`��r���fx7U�-�u>�k�^!�-�d��V��E���h��9�3ޱ�ᖄ��>v��v*ۆg|��4oܧ-��/	
u޿��
���(�%�#o?�lu�ZX�Rw.g�
8
����pVRX���Z��P��|��g.�p�p�ߧ��8��e���)
��m�Z[�9ǝ�s�Z���7)���/fF�7��R�`���tr�as�Cڅ�[:
�>^x��z�ԥjN
�u(x9���;Kf7���;�>
ʳ�n�q��jX������l^^Z��m�=T�9��J�t��G@
MA at 3C}
��7ӎF��t��}�z����ի���ow��xP�㕵Q^k?���<�:Wm���3/����]m��Q�4�44,wGu[�u�Z��5u[��װ��kV�Y�o��#��_sԆ>��nWu"T�81����zve׺O��E��	�7��'�'���^t��`ϲ�x���Q�ǘ 3����3X���zmm�N
�M�+��GX��`!uf�
�}�U�^�c�d�w���řl��� T�Î��R]0�ѫ�� �N*�p9��
qx
zT�,I�e���a�r��"ʐs�����m�
��~���Յ3|��{�;�,~׺�ZjW9R�/�y�#<����do�G�q&�
�� 9�;QG��y�+J�R^|�x�+#�����%�
+��RᴻG��dz5XS��r�fDaR�T��fAG ��
-���!/�����BB*|;��w� �����-
"T����괐�n��K��-/��S�������>:m,�
�qW�2�K��80Ȉ�
+u:8�0������V�en��S ]��!�f]�>��-�׹X��2��%�@"�q8�r�|t��p~����K[�/s�P�����$
V���Mz$�����Eml3e#;ͅf�\)dB
zZ4�^���u
+���
�tC�E/�]���'�&��U�ym�ai���9c�+d��=?h*�b{Y�]<�;u*2E?{�]T,w�
� �<��{V�C?vp��E�BB,0
��@���QP�Q^�bl.	
:�7�Y�ɜv5�.Ck�v�R�5מ$�`�lM7̽���,w�~ة��J��z�y����a��
�~��
�&�t��t|�S�_v���9�_��K��
H/�ob>֩I{�;�
�h�͚�T
�`�����C���=������1�j},�z�����D����|(�b
���d34ik_�ę�5������P�0���QĤ�i���H<��<����dm��Js�՝e��T� �EY�{5�Eqg
tא���$����S���w��7�W�큜>E�
��ha����q!�X�;e%��*,`R
���)�mW+������ۅ�v���C�!迂�����F<�=�3��{`������tBw��f���ͷ�.t��)<�Q0&�m8�;�ߵ�d�捼��8hR��K�a
j,xc-s/_1}F���9-Y��߇L<�9�[[�"u��m�
��`aGoα�^|"���Q;V�-�y�����NN�2̠��g��=k�
<�p�����*0��
+���wxw�zv�3Ƴi��w�FC��h����!Hcp��v�ጋ�7��;�����9�c@��bNx�
��b�;�5�Ҋ]�=�i����N�j��,Dw?h�;xx�*�ew�x�I4�NɁJ|�� �ȅ��Q���HBbl�z����Te�&�<����>�G�5d^�}c��,q43aaF�&A<~sqJA��&�jw_BT�5���.�{w'��
��(��7�����ș�һ�
�H
�l*\��ɲ�&�
��'���?�li`�U�꓁�ϥ��\u��I.
n0�
�Q���O^�ɪ_�h���Q@��F9�.gz� V�
ؠoLX�)���~"uӄm��o��Etc+ �6;:Nxn����iұ���*AM��K�Z�`���UU��#�G�}{�Fc-���hXH=�
w,�T�c
Y�^dQ�9\���n��,]���84��U'�@wmv
�*�������B�� �ℷ�{��q-����)3����@$�L�Q��-p�T���	O��M����H���v�cWܮ
Yo�M&�Xay�0p�����%�w�4���#��C�'�xx��2�Ni��&�������&%�5�

�a����k�vzCB<�8i��~�2"
$�^z�$������Q��U��
Qx�ׄd�U�=^68��Ä��3��Gj��o��9�e���o�}�t��D�r
+<5�%
�
� =E�����s~
1��'}��
+6��1�
}�y�dp�~�.4����9�p�U��d%�=�#��]�lY�����h���H��f�&a�+�<b�I��`�`�<��X*�?3=��
�Ȃ��4��
qC3U<\;\�g�s+
>�\�����乹���Q��_�f]��Br�p]R{��o��N�Z)4������).��k�5`��.��a
=�4?
׮��
aI�U�r�Y.�F2u0��|Fξ|�j`��c|.
?=�M��~��-��̶C��;	��?	����+�W|��ě�U�4�w�u�^�̋��
����j��7�F/�]<�?d�����
����s,*�'�2�|�~��Ձ�X{����A��-/f�)G�;]
6!R��F�����9��q�n�᭽9ɇ��٬��
>����������&��q˅�r��z�Lռ�V&���q�\�J���NKY��C܅S+��kz?OM[n=;Q`��(T]-Z۞�︻,p�@3���w�Zi¨\�
�GF�ӴT�M[*���o���c~;˾Lu����ӡ�
k�r�����ښ��Z��o
�F/���\���@�9�
+9.V.��a��1:�W_�OS�,p�Z��J�,?�Ɨ+V���i���{����ib�g���̱M
���^{����ΆY���L_y�U�ص��x���PǙ���U}$�R���M��n>�� �w͵��T<"ۊ�x���E>�ΞPn�y��n�ZME�m��4
�k��hq��Xs�(U
r��B��ޝ>3���[=IB�WRpdx��9�P¦��X;��n�����j�[�[I�y��'K�ʰ�p��/�Y
�aq
.s6^~1?>�_vY>T�ı6J-.��y�"v��xz躥��b��"�9���i��+L�ڭ��3��;�`��xT�F
�j��T�;2�ؾ�w��/�Z-��W��V�����*������JWd�v�[���C��i0��l��v�c=M����y����Iķ7��:��2�zv�4�31�^�<h�����
�@�e}i
�
1�����%?��C�����!��ZW��#�p���W'��m� q���h_�9��A�t�k���4������h�ud��4�çRt*>��g�Г�]�ѷ�3)k^5	��F��Y:��P
+�%�M�Px���I��:f^}���ϋ�A�
o�Tg���F�(����ez�
�. �����F�����Css�n�R�QW�m?|�p�A�
:�B�&�� �0�^#g�h�
����YӾ��p�9x>��ʳ���.��ԃ��P[�>�xw
n �`
�^Uԭ��)�g�Y|

NPiђ1׎�0�ׂ��wWY��(�Ğ�0���
�h�{�'���F92o(�
�WLK����c5,V�jW���RU�%	�(�E�d�ۻ�ױ�-q��/΋߽l6����lV���
)Ս%!��ѱ�~���֪����(g��}q�) 
�K�\+�oղ���!%I���Gq���ʖx*֬r������
	=o�
	�-�w�L..5V�+�Ev��Y]i���Q���+V�dņ�I1��*�~�e&���� �@���e3���;�XU�<�.�3D�86�O9 at uݷ&����ۣ�g��,�z+ә-_5N�`�U5
R;���{����S��۵�cu������#Ӟ���w.ܰ����
�o46�<x1���$�Fْ�M٪���{Ӟ�͝�
n�U��5�}�Zz;�2:����
��f2-u���Ǝ���,wļ�a]�;��M���!8�T�8%������k��\�U���Y<������e�X��_l;g��5��NB���v"���PoP0{5��ߦ������'�~�Se����+���lj�(̰�j��	t#�b[�7-BN�V�t��Y<�4h^rjSnj�%
x��Q�mt�|��;�ݑ�S�I��D.ҮQc�_��֕
+���
M�G��񅗄w�Ϝ���h�{�5F5�x-v[ڸGhx~����@�P�
+��X�9��{��
�`�k2=�_�Rs�׸El7�P8��0;U��d��e�V����x8Ue��Y�d�#G��Q����n=�X�{S2gJg�VkI��6,��8�
*�C�{���"��嫤@q9�������̺S	Խ��j7�$#b�<0�]��G"�i4�:
<u@�k���S��?�%,����4��Kjq��;�9�n����E���
+�nǞ�{�W���*��<
X���	+��E3�[}F�u��%
),�߹�JS�����^t:�
��鎐�
Y
4�X��� );�
��*N�Oަ�b8��5���t+ףr��4���iK_c��I;�z�{�c�D�Lo��7
cS{i��򀮛�z�"�w������
��a������]�
44$�ma�����`W�'�u)�6�]��
?s� �ܔH��5�T1�P����Xm�Ci���׃凪��������K��<oQ|��ފ���
�I�&i������Lr6�8P})�
+G��s��胴�O
�n�d�d�c� ����J�j��
����
$Ҳ
+��ֽ|(J��㵼�wFN���C��P�-�
+�a��E�wszrnJ�
i�g��"�f g��R�T���a�sM|��l��;�ٷ3��֏��
.
-;��)Z��ٻ�
+�^Lڿ�#ץ�Q�T�4��~�$������>�����#7�&�?�7s݌���!q�jc�J '����	7f�/��+�y�{�z![ُW	�����e�יS�
+Z$������C�
+�Y2o
y�e����x�^
�E��O:y?r��?/v��
l~���9:��

͛���wj_4g�N�jNeH
n�,�vu�m�ј�v/���mw�-�V�����C
���Y����]��`�|Gg�ꮞC��ԫ�i�g���[��Zy�����.��]���ްf����f��7n�{�ڏ#�]�lpԇ��ױ�`j��BHI�
IK!:��M�*���z0�j�k
�F�w��6$1���1a��(n���Fq��_H�:���
���C���T�PS?
�yǚ�5���
��
+�J

�(��
�I�v�Ҩ�ә^��?��#b����~������u0H~'��NkL'1cyk��p+�Z���2ֻ�+d�Hn��T[�Ӧ74
�ŭ]��Օ{��wh0�}�\��ˮPD�n"M�,ߢ_�b���M}��].��s��co��{�I�so�Z��~qIj5
�K�V�m���d#�5��W�1�d���+�=s��w�
h�ZTF,9k.��*��w��a��+�B �z՚1�רmϝ����-Ut�S��o:���Vɭ��:|Z{V�}f�Y�-
+�=�<P�=<������
�{ ��Ԋ%�R��-$�g��(�3�
+��vm8b�;�]���ֱ��k���l �ϸ��]�s���
���”u�ަ��۴g�[��VWG<�. ��A�oF	[��;��xbv���c�Y�r׻؊�鷉ܲ�WU���
� �q\��+�|��@�"�R^���
�4�J�r��1�¸C�T�N	
+V��6ө��W��8h@}�k~��1^��[�W���Ę�E����$�r"�������m=.�"���S:�
���r&Z�T
m�ϻ$EV2ْ��5�t[�
���a(8�u$4�P����ʵ�Y
^��,��
#;�P<G
��
��5ס��*g�DF�>_�R�f�
���G&���^�+"PI����t
�9f�d�׏j2M����\_)FJ��x�	��
�f/�o��ͫ�����'�H���8S��d�B
���7�#�|��pC{��
�.����S�Jq7X��߹֋� �x�a��r���

n.5ۿ�����m2^PE;�/����������MF
N}��cs�8���u1��i��Ƕ�=m>��ħw�e��oB�>���� Y�r�7B���-F��@;���V�@�$9n\ҝdV��𕘞2�OC{��6�m��$nS�ȯ�I�t�*��0ו�+
��\
b�IJW�r�iO�ڲ�\mG�]�^�lj�����Ź@&�ρ4�
�qY���/9
/M���x>i�#�\���L�`c90"�I�>�6ї���I�q����
+�6nहо��	^�G��O�=`.���g��3U�ͽ��K��M4N�r?9�s�n�@e�>�ر�{Y�X���w�B�0�6
u쳱?��3W���U`A<��żZk��5�V�8�ىF�=
x3
l�Hϕ� (	�ɡF��i�D�µ��o����-�N�w���iU>�dKh�iO�3��x��5���T�lY�J�0�3V�ɜԊ��W|ts\D�#T�Q ]
f^�vx���p�
��~�:X
 �Zt6�^ZZ��u�^�Y��<���l��m�lQ�Q7�/��=�S2�]�.��I\��
+E '~
+5*��r$��
y�K���\5����
7��X����+����l���٨�T����`��7��@�=5���G-��wY���ڋ�q
��-��d
�
 �
"�K���B��·bTu�񂤚C]��N����E�u����x������v�
ȃv�-������ے*��,��1�HMG����� m�������9���i�	u��>';�ȜuK��ؤy�(���a��^��˒Һ)���ތL
�p�7�c��D�v�+��[-a]�q�̂ڂ��y(_�T2G�\?�Ô��p�̳����ٚ�&��@��D�a���D�x���"<������QF�˱-��6joF�M�
�I{*�5��!"�h0
�{
	��4;g
�&^�2�� �s�벢�����
�N�u�#q��'HΥY���]��fCc֙@�ZL9��˶L�$h��
+��9E(�>u��m�7z߶�lZ^���Z�jp
l�w�[��
���6�l���C�L�b1�5��C��t��+��$�����
���ZaX�=D��F����xa���J�X�������κ�\�����HFZ��ޱW�bU�
�#y_7!�!���� 
��}�&}a?;��{˃Q�����RWܸO�^t_uOoèX�1�ܸ
��P׿���i·�sO򦫥8ly{��ؗ¼�y'o.|���
Z�z�#���Ou��=��$a��N����qlݓ�f�
+)�݆�
F9��Ɂ~Q�D��0�I
+�:Pz<�	��XP�p��4�z(l<�F}y���
�L߸�/S"������
�F��ȂP�����A�ߕ�x���{CY
x�
7
+�7#�9���%I
_v��fr�*>h��-���kt�0F���j�z��9ه��\G%��'�8��h�[nǝ�J\���
�������Bk�'A5/�3�ID_�
��
��c߬	S��sB%u
�<(��[-v����i���"!^�2��N�Xh�^O{��7MɂGn�_
�0�,
+
��jH�!�e��}��Y]^��p"���y%���
��D���i ��),ӕ�$b�u�α�qI��'+�N� �����ĝb#P�ƾh�L�LΊ��׶wi��P
R�{z�R>���%na��
Xӂ]b��
�T�}�ktȶ�3��64�;ך3�:���\q[�����BF�[RY%N(������T�]_
+�}�m�=<$ƼG����̀9�u�>؂F�ʣy����<��?��)]/�i��̬���������MLT�����
��jX���/\鞥
a��'W!PB�b\Pa��ByD�k����tR�x/��{X.C1ڊ����r�	&又�jye��W���eö
��5p��e�*�JԎ�g�BR��ؾx�wW���9��0r\6�����u�l�(�Ry����
�z(��8�"��:R9yYH�V
>����U�B�6���S��@�I��Z�ˇ{E	I5�m����_�߁�m�+{h'ӊ3a<G ˉ�����sv�
;-x_�ۣ&�ě�$~�0o0~
�%�FH�}ݻ�|
+��y6e���eu
+k�~ )���u�����V�v�)�-�X{��,������&�d�5�����o癩ȏ/��x��ч��0 }����z���H5��f��A�
\X�Nms�i�B�4GZ��4��k�uq��]ٹ�;�5P���̬e�Gk_QD��_�Xs��މ�T�C��
m��~WhǹkQ+�
W�Om|+�� ���՗z0pQY�V
���w�5�݂b��BY��gY{�}DQx(��FA��3��5Nb�6��f|J��Q�\�������fjAQ��5�k�&H��h�P��̜����]3[v|A

7��/�7q�u k;Z��T�(x�{���&'+;�^��S{58�O.ҥ���[;�ڂh�d8 ]w�~�c����� ��0�f?��&�7;:���"���p��
bE��
j�:1��
���Qq��s�
+�<�9�p�Tg&	k��F�2W!v�Q�����w�K��yA���%�V=��:���v-�YW�Au���y+C�5��S��g�<��~��ɀ~��±e��,��jG�bO' � tB;Īi�����aMr�\U}�A�
+����~��"‰)
B������~W�^��m��ިO�(m�E9�~% �ws��8	N"6}M��(l��W��]h�2��U��>f^��_��y�./��:/��ԕ����d�"~}v��E7E�K�����dD}
��>*2j,e�x��-�=
����u
���f���l�E����
oU��S�dl�Z>�9J�IYl�j!���ө�0
{�^
+�^��H5 
1�-��CSx�u=.4Z$�<���k����C@ճ��έ�c-�]
������KZu��]��H��8���/[��^C�<�8�ջv�`)3>ŭ�:��E
m�m���:;��Fl��L��7�U�&mbD�%�w~�h���&�8*����W��L�CpY�
G6�l�
�p�"S�"�<Ս%�~��C��G'�`���1��ikB�úy�ܪs�M'v͸N�
+��F]ϭaG��G
~t}���ޫ���x(yc4sѭ!mf�c�.�^g�4��qf"���~�*��BQAp��<!������l�y&;v��n}$��
+���lfg�L�і��M<aB|�ٹ���dž��D<<��1z�#�)k��v�e�_��C�i�7��މ��q��ߎ<Z��;�^�����

� )�({<Yk�&S����'�P��:н-��
�N�!BQ�T��r�Ʀ�SS:���՝�4��@8[1:�&i��'!���\ ��>J�+XUݦ�D0H@^s
u�
��a
t�s���^M�d 
�~���k�����8$�즶���BS���E/���sK�3�;�}�f�iB��F�NJc]Rei�� �Uh`��yf3��$|�ֶٟ�}?��!B\t*��� J��!�J�G&��V��/�z}�Xf��j��:������+�[)��K���p��1̛��?���O�h~��m-��d����Hf=����B������2�H��$8�۟�by}k��NUxQ�$g�i
uR#TJ�m��Ў/�p����C���ϥwW�ן<�w��H`~O���x���
�;xE������h�C{�n�ƭ�Іgn�
�N�R��Br.�/����mUɱ��M�V{
T-b]�rx���b
+�Ɗ���X�]�B}�ັ��ez8����)I�y��@��
TO�>�
�c�	��,��M��c��5��fY���(w�?UW� w��ߕ��s��p��w(�
�L��s+N
�^�BD��Z�B~�������EoX�-
�R^��h�K�=��K���D��۾��

/ތ%�
+�ߵ;H4ml�W׎=׶
`+v��;i�Cе
�Ɣ���W�$;[*�ڶ�Wkծ���� �.��`�a��w�+sr��*4��l�Q�5�~W5��k��5̨�]۞�#�
<��%�>f��7���c0��&2o�J�w��8qvϣc��<&�ўv��в�f
mC��1�X�{� ��.8ʾ�8��z��-�$}+�j�͜,�J�C�M
NTK,�M�
�vP�^_(OkJ�X	��G�>�
��ٞ&�Ϟz�:ͯ�Q����w����J\����CB
+�J[E��ջ��
�P�� A��`��v���\pg�3'����]fyU��?܍���^.����譇�z��_�\W�d�ʏF�J�R��l?EU��K�,h��j
�p�^�Ԗ�x��¯���y����� ]4��c��Zgw��m
V��K� ��9�T&{���
=+��W�0z��������W;5%m6s)��7�B^E�+��߷U?���y���<���SU�:O�%����iZQ�3����`_���p.�U�)��U��6�)W�z�>FF_�.=z�������tp
�a�l��5�Zx��t2�5�
u���[��xU�<T+y&[-\�Խa�u�X�a!qV��Pɶ�ι��������ޭK��]���;�k_'zf!1�Vk�f�՜d��ЭϦ�e�D��K�\�S��r�{v�E���u�io<7��jῌO��2em
+�j�?��?������\�}�R�;��
>
V�Gp���X[�m�Q.��[<�P�ج�����NNu"�om(��+YiF��˭=�5�U��4�ѭ��У�ٷ�#W�~J��
pa�LT�S���I%��L=�UX��!ϩu`Ή��.<���
���HǻE;@��qh��S���r�|ֈ����
�t�׿g����>#W
#�m��խ���-fc
x�_�{c�U�����hN��9sީ:
�S��>|'�Di�
�����R���D��!֥�xE��j�|���G����J���*�t;��r�5b�5�M*�^�Tv���7����}���J#��GlL��
��F���/�
v���T@|$�C͵�Cfc�`?&���ͽ��o�;t�M�Y�r6�3`����L����YM�3 at f�
+n�:}�ɸ�~��
+��<Nik�?3;��<Q�y^ƥLX��`���o�N���U�t�y(F8��i�
�98%��(�����zE)�p=��p�*1q7�_�Q�
�7v�3%��K��V�oY9�����D��gq����w�ǿ:�?�?���b� ;<���;���},�
�u�}"7��YY!
>���ޜ/�Zx���F�~>0M�ay������J#���
���&ϱ���u����iG���?��v���/"�G
�n� 3��b,!��p�ߎ��(�y��{�������������c����s���(�?��
��3�3�?��
��o,
�=����?��
��p,&�?7���X�>��R����?��
�˟���7��c�������_n���w���}!wS�4��Jl��L�V�2
�Aa>[���2���,�z0�����|QK�;n|��
�����_��
]c�,������s�~/���
z|
�V�Mq�w���t.�7�������L���:r��¯�l_ɸ6>G�tx��M��G<G�?
�_��R�s� �vx���v�q�uS(�+�
ϗ��z���k����h/���"��A�:u�Y{�r����ߞ���f�"�ϣ\l�}.�._;�=��+/��z۷�`
���,{���x�����s�f�>=\��Rm�����,h]���� ����
����˃
c�kk�����
MجOr�H��x:�ז���o
��5���[�E
��m9�#����M�P�<�'������<���]�Ӫz
+_<v`'��F⯓��V<�iv:
���l���{�<$����=-
{2��V��ߚ�_��o��r�������}H޷�Q9��?2ER]��S��<��?
���l��~GAwɤ��t+��"�V�8���{���1?�?{7C�{���
u�ӳc���E-�\��
�m�d*{nx�f�9F�^���^?�������4tyh�_q�;ϝl���ݼ`��f*�~��s�z��-
_U
\v�ns�;#T��=�
_�G�����ԟ��km5Qg�v��kq��Y��_�߱�??��
��X�T�$CAo��zq���"[�t� ʃ�W�zE:��s�p�\
�x�Q�h
�ơ�2A�V�d{����O�|,���}�:p�����.o��}��,���<:���'��fW�|lhE+ښ�(�K�~x����k=�F�b�M�/��\%?��&CvE,%�<_	
�Y��{%I���n[��
V�
o�V-r����
���[�:
P
����s���u�#��#��������b
�Zծz�����;+ic�
,���ۄۄA�Rڳ���'F$�ȴ⎱���׽��Xr ��E�#�5����ʃ�=�F�������VS��o��B�#
+�b��q�Ь��D@��^j�KrҲ�ղ6-� ��}���ά@��� ���O�WRx~��a�.
+'�2JΘ�2h����ā'�ӑ� ��SC��e����j��8
���{��~���
��%��We�٘����O

+}�Xvv���
+	՞�D�����7�uשg����Յ��ǵ~_;;�Ճvsz~ u��N*?��Ԣ�����i`]�B��㐷���������g�
+���8\U�N{�
���Ff��.�,=�Y,˜:λj�>�ݵk�^\O);q��q�q����2���{���
?�?��k7s��g
����O���ӎ�������U��7���?4��&�9�/��p����� �?ϼ���������H?��
�?��E�o�ϡ�?���7�/��WW��o�n� 3��6����xq�
+��罸\����
h��l�O�X�Fw�
���
s�w���
��T�M'�~����y캏q-�
+�c-��������OG�����g�����. ����>$i��M���O�x���l���<)3�c�_)��
S�
+����3]W���x6��}/�J#=� 
+҈`���)��dg'9se}���S�g͗UP�, �W�P#��_���*Ղ�~�9NY�
�?�u:��KyQ�z��hp:d��g�'eo\|��E� ���{?!�N�I�|��J���$��߅w�>�%@�����  �倨���(�_U�4�F��������ew*챶��fs���~[σ|���i;��q+��0���[�)��@��3H@���U_��*�2���ފ�
^�+>/ggf����G���fP߅F��R���VȪe8����S,N0��箵�_N<�����
4�����ƙt�5��G�G�M���)w*
���XVUv^For��3(�R���%s��MTe(�I�g��yc�e����(���~�/��n��ق�������T=����j�0ڿ�S���a�C*��' �Ts�[
��6�z��.��O��X�LJ
v����? *�J��F͒�l.K��8�N��8Y9_���{������	��A���ݪ��A�ln��"���aJZ�9,�ף�%_� �c_��F\}������sI�������tx���Г�ȿ]y�ɡw��mmg��{�
5�r��
i<
!k]
���
+u+�E�Er:��� 8���?���zx���-�=S�n+�v��{�9
�{v?_(�B�}Y�����3f3���
7Uc΄���t̓�	˓��P���3Rz� �2h��Z{׮Bxߌ���ׯ^��t�����d����{蚓$����~r���3˨0-�)�|�
+K�E����ȿ��C�5h�S�6����D
=�JF�Ǽ�����1���|i,_mw)M�;%�!
+9z�|fwl}������A�˒� `ȴ#|�s���q�j Q�
+�s?��� ro���۵
[:d�Qi���mi���T[��jTe����*���\;"ݥm��Kv��'ir�
+�K�k=+��K�k�۔��vxY[��ه@w_�H\Jڡ��P(��3ʣ\�s]�bqL��<
�5��/\v
���z��ir�*����w�!��V.��%$��:�]�t������v����$�y�b�I��s��d.����rꂾ�I�z�j��Up��d&a�����̥�"t����_
�k��U�
�G���{-�-����7�i�����xl�z%��a_��
+ץF�h����#rϛc���������1����$F�%ĵ�5�
b���-�
�@�k�"E�c��y2xn��~?Rʚ����4C
�B�0y���Ժ���As��V���\
�+�|j��K��|���K����f^Q��{v͕�{��jɯ��*�O2�".������
+�0Di
�00}���\���k)d�ײ��ߋ���ZH��^
�
��U� 񧥷��O6�zx�l��rCpS��y�G��^h1>�x�i+N��e�<:-F������C'��)bwF�|�-
&D��2���Y����8'j�nW"����h�9V��tzΉ�}��ؚ�/_ at w�TDJAF��M���Y����#~ �0��
������.�?C��C	0��q��
��;i
+LF���*"��^ӅO�4GZ��F9���f�[r
�n�zX�{zz{����
�?z��e� w-�*m��o?����f�i�oh&����������&�����s.�J�4п
�/��/���3��������\���i�����K�����?�?]�	�_�/���jA
QK���<�,^|�q�Z�`<g'���q�H�W(��:�p�V�'w�����������P�p?x�
��sF��>F/?�9��
Ǖ�����~E�w����^ K�ds�c��==�X1��Yߵ
��\�:�^����n�z�ů�MK�OeUM������{$��?�������eɿ_)�uM�# jCM�SZL�ɝ���<�!��|OF�+]�n��+�_���YS��PK�����>.2�a�&�MO?���ϯ_�h�p��U��=:�uMg�����|�(O
u�b�������4�2�hw���=��i�.�z�W����Y�Rɳ$i[�1�c���C|��զ:��m�}t*��:��
� Z~�� �p [...]
$��<�D/R\5��_@���/6�4ϭJi�>
�8
��dT�8�1s6�l����C���O)b�p[/—M��_�d��|46x���@��ߛ����+=���{=����ŨufBt�
���LU��Uڶ���ؽ�뢮��?7�t:�����|֐<��VL֮�/$������.����<�V�u}[|>\*��9���w�Vk�Ty�:�zs9z6y��{�3k�����i�#���a���;��C�̬Ѥ��sw�H@V�G�Zvxz��v|�Bx
��%a_l�Xo�͓qOF&�5/{���j%Yv�y?�*� m�G���VG̑�d���&'�n��O!��+�>G{�>���!�MNϦ9y޶�3�nR�R=JșO���F��缋�PB_˽zΖ�Ζ4.n
�L�{�$�{��!&��#��f�Y��58���o ���>G����k���d����|��ӝ���,��W�d �k�!a���.m�:���Mg�
�q�x���BR��+�#�b`��~��l`�>�������f
+����y�
��aq���	��+~��}�g=���κ{�|�u�R���c��}-c��YW��)���2���-���q��
�A<�|湸�'@��l�x�T!2{V;hw�c0o��AV[�2��cDIR�덀��-w�T��Ej�
p䬤0Dք9|�T�	������/DW�>��Cy&�������ԥ���^:]�:����|�����
C
+��1�iWX�6_
�qa���N�|���%+ (����^���U� ��D��u\_�ڣ�?� ���SWϴ�4��v͖�b���k����Q��KI�i��
u���:�y����3
��h��=�j5u�g�a
�3$�z
�׹�S��\�v�;?��c�U.�RV�ݥ2o��.Wk6��e�,�6+�#[���n����'3V'r{�W�����
������ ��w��d���}�
����Aյe|Si�%-4�<~ֳ,3�֙���' ��&��([��)~7#a��Uk��V*��R�4�FA��?D��ĵ� D����Pe
��9YofbL�wU
V��&=�
�*i���L���/R�Ԣ������
�D�1��V���t���}����0�;�?��on�U6��t�ɻ�c�6bR���YJN@�Yp���ZV釜��T�
+י�4E��0��
��\k\���Jy����U��U�|qSYv4�����B|����ǿ�4-zQ|�^��Δ�˷V+���=Ϭ���b�-���sI?9�q¾FX��]W�r󑀖B��\�;^
N�
�	!�*�B��*�&Gpٽ�?���Ҍ퀹��#�
v9������f�+W&�9�����bL2�/oy�\�R�F_A�E�I�E���G�tF z
̍r���,��g���V�~��e�3�Z��/��^~�K��*3�.��
+�Ւ�6*�*bV�b�Ryt�
I2I�sS�y�?�`{!i0^�py��3w�4>3��y_�f5j`�=����uȮ
+���ĩ�;a�̶a at ks2�5ܜ�D���D�����5
&�'9�d����;&M^b�l��- ��$Bi"����� �p��_�����k�wџ��u���e|�9u�E�'�l�m���Z<X���y�${��'��A훎Ѩe]��̞�`��A�}әS�2�.�{�C|�~C��?+�
��9��~C3���74?��W�����N�4п
��9��b�4A����i~��3��8�?^�	�_���K\-�\�7��rd\	/��Z,�o�� AЪ�}ϋo��^�~�k	Q�c��Z&�vN���
�r:�G�K at z ?�-��΄�ϟ��G����E����!7n�
�LG��T'����Zqb�!O�AF����
�v�2kk�1��T�Xsu�v=��6�C4�F�~���<
+U�����gv��=�Y
>��qe'�e�����w1/���8�\J�j�g���6y��Z ߷���
+��Ѭ
�@�%]����!z���0��C��Z�
"����	}�?�������
+j4��P[%>
A���Ewq�K]SA�|�Fp׿��̕�i⤩�`
���7��Y��<��Ҟ�~<?�R��{�/`k�ڍ�cɓ=N�6�aa�C�^3��e�@�
G	�~�Ω�t=�\���97י��.H'Eق����8Y�ڞ �@��g:�?��US^㇪��w�S�Ӧ]oRo�>�����[�g�����?�U��×GΦ��4^	
��=�gC����Q��d�a�_Z�l�j��+���o7ǒ��?+���W�+[�P�«w�~
	�kDK���I�B�{�>P=
+D�l��0�p�.��za3���6�MC>���ia��5ڳ��W�k�
����	K��/{�a��k�/bg)�x����!~��j�K_���V[>�O%���2ˡ�z�ڿ��hvb�x�ڝ���s�k
�o�t~�+�^?�

�T�
q�4O�|�ԹŬ�q�LE�3$��<�����"����6�۸�'Ώ��R���V�rk�w����5��7���]�9���hc�ԕޫ�aW��Vo+IQv���G����ݮ���Xe��]����O�M�X~2�q�d�g�)�n�G��|vxq�o���ϒ������մ�3v�Ŷ�l��}#=2IАچ;��[��=SVL��3�ӎf�'����#k�Y�4E�{�jj�>��*�>,��
�v0���ȧ�ZW�6rS�3�'+.�JqK�bJy�J�<��fьB��I�ꊺFu��_"��q�Wu@�$k��
�8{@�Q�gPN���z�|c�)��:&[n���u-�V� Gy�K@�[��|aС�`�Irk��K��|�Ie����ܨ�@��~��� [...]
+�?Z>��'+
[YH����PO��b�N
�E�f�4I��1E�W'�����/N�n�ն|b��/�_4eMs"���g?Y�ߦ�W��S����
�S�2z<��
^�hY�F�1w��nA���NRu�@�G
+�#��*UBY��v�0�:�=�_
�
�&
D����<ו�y�kQ
N�,B���X���u�Y���m���.M/!�
�\��F�ᤆ�0"'�^d
+��Z��n45�������Z
+��%�}�l���5��
4��‘��t��v��u�x2���J
+���X+���0:^�T�‹g
È�Nc�(�WT�W��͏�{�� ��q\g�>|��emW��|�w���H�.& ��		��|e
5���h�N֯saJ����3�8�W��
#���"a�j�6k ��>s}��4� jȥ�vm�Aୢe���%zm����WO%��Oi^,=9ό�
o���(7ֻl�C�y�G��~�K�� #k�pE�����˶�"��]�C�V9q��
�ή:	�n�
L�y��:T�
�H�;�E
��?�����S�@�֙Z�E�x~V��[�k��VY.9�j/����&C��F_H@��q���%�l��bt�O{��ux|��v쨒>�v
��h�,w?�F��l@��'~��Il}��W�!�Y�� �춴�B"��b �J�v�+#�]��캥�w���P *=�.^�G�j����k̪�r�
�

+a8vh���Ȥ�S�6�]̟9�U��^�.6�{C����N �	j,)#/D�)$÷�s���������k�Ƹ����,P�0�fd�jXvj�,�r��ѓU�"�ݖ��IJY���s��!�#:
���\�]�%on,��
}/ؚ�Cx�UB�D��3'��
�
+�
��<	��k�ҋ�]sJ��y�d�pI��$�Ik�8�e�U7�q��dA\AY at rɧ<_�\���ƛ�\���L(n�֙�qV����y8v�����o���q�=l���\��
��#�4�7z�Q�$�G�8��ˇ�/�}�@����k��PHΨ�IM�ݖ��]����0��%��&B�יЮ����t�Oav眧�^���W��C?oa��0�7�uu���;h���eiߟ�K����L���f8�����+t�з���J���F/u��^
N���r=���H@V�g�+SL�+��+.�;㸂�<H�Γ�\^�;R/D3n������:��:2����DcE[3����!�Bn���!{�h"�L'��X������i�Flԋ��!}m~F��	�E��	��?+�
�_j�gD��������r.�r�4?��W�������+���dF�_E�����|4�Q�y�M�	476�\��i���L@��]U �
�ǜh
�,y<.W��=Q�j���Sg��������,��+��8\\	_����@���E�U���
��x6팤�x��[Z�U
�^��q�׏ˀ��Sjj��;��|�x_���e޷� ÃG\���/���O�`?�W�������F���
���@�s�\ ^����m�t�(ېkV~�8
W�0O��e���3+���p��ނ�-��.��y���
+'� ܅$ DC�����1�.�ϻp�f��VT�
�^�L�U��,�l1�;��X�
ՎV���c�.M��p
��9k�sӃd3��e�w|WY>�֏�M���D�'AWz[�ga(H����~����$��B����^|�{�vD:qc˝f��b�D?s�NN�
o�w���v1��N��.�j�R��V�=�7~
qEU�_��i�_��ϲP���W�GJCWu=�����Yk�Wa�=Iwp���l��V�U	�A�M���yG��nv��hTm��ƆE���#�Y�����(9�,c�f[�kY���~��.K�и���
+s�¥H��ZN�2;W��&y��un��̏ə��M&�q�9뮲�]�~�
)
+��~ͪ?�_4w�
�C��k��u�Yo��2=�h����s5����l�ȹ��(��ll#-mLo4��n�#�G�Z��KGE�ZCmK)CnL
[�M
+{qH�TAy����!��P~
�!H���zK-��7�#\r��������/�_$ ?��hg7��V)z�^�����]�x��!�4jț�
�I�`q&2�����!~���
+~/�����$�J��z�d���}@p�H�d��'�
���1�i��"�0dIj�ff�R����,0��R���p#���[TZ[.�ʬ�iI?�_5��� ���@�3C҇ո�.��-��ń\�z�4Du_�$e�va��F���5By+.�N!��>)̊&ř���݁̐�hÐ�]��/$������rq at 3����B���E�D\#	5����%A�[��U�Ҧ�;sRv�@�' 3XV�q��R��\ʗ����C2��[�Kd�1E3J$R�s��P�%*$u�H@���^�)�>/��@̉m\o��0H%��!/���K����&U��M��v�/�Rӗ�M<�
�s%�A�F9^��"L@���S,3��z���Z�
+��W�N\���絑KqV�� ��}c��h�P�C]/Y���s��Zq��Hr*w���8��&
�}N�ƻ>�z�2'��pI����Ֆ�{�L
+��@.��
�q�u��"�P;�iV�q��m��e���qt
��#��=
G��켹�f��Q�^Z͑4ɞ��R��
�����|2�Z
+��͋X�vC°�P�Q����&���(��@�e�
g��+O|\��:ׂ�R?A)量Z��%�����T]�7���'�Ѧ�6X���]2Þxq��<���'�%�>���%Ӆ����?�_5��>}��Yo	��㝻��#[���f�2=O�5[2Ŷ���vk˻PKD��&{n�Z���l��>hcN_��p�� }�_+t�V9$~ڢK�����������:�4ת�:�>��q-yd��P����d��ؑ����G9��xE	��%�[+	�G��Y�t��j�S{y�V�ŕn���7G��G��F@&��8�~K���q���X�q]�
o��d�3��
���Lgo�p�p��]�3�G�IzX����~�'��Cs�zeE?=0X">�
��>�CpGFG��
y�)
Q7:�� ����?+��RT%ռ����r�؝����?6��›����
}�����0l�k�D<��
&1/�dV���-�E���`��n��*��?S��vI�������?C��C_ 7�<�M��T�$}�������ȫ��!_�iE��O\k*��{13I��x��J�_�.A���zK���0�D�2�Ava/�d*�����*�\�ԄM���q���j�{et���~�7[z{
�
�a�����֌�ڣԆN��-Y8j*N�=k�Q�iٻu��p�щ�
���H�=���n=���$�j�3	.Z���(C��>=%�9�R�p��
�jݧ"�FW*l����O��5�,�u�υ��[�b[�k�t�> �(���[��{����p�>f�
+gU+w����sJ�2�D��Cq��r�� ��i
P��Q���	
g%�s"��!'�d����%u���D��ۂF��͗B(��q cK���ՙ˯�Y�
�gjlL�|�8mZgN���Ow/?��D�W�	HO�&p�+�1����:
�Y6
c,l0�娵Y�g���q��	1��(�&������L��	�'�p)N���8�scy�)w���
��b#-��a����'��Y��k=iqsY�/&u:-
C�]��7��b7VZ	YJ=حs���GSN~�'�НN���|��v�3��̄����A��\&5J���p_���g���]��FP1�#���������s���b����6��gg����wv"����v���޺T�P�5J[��+
�
�2>f��`=�2
,s�|PP�ȏ#.ϥY\
����[�Z��#$�TD0����s��߷��,D��
���g~�V̕`]�k�3��3'ޑz(�����l���l��'y79�F]�=�*ld�^�
��
)�� �
M�#���7��Ϲ���74�O�~C�3C���k�
�/��/����/�H� ��<p��Q	��D7n����(�j���e`�9�����:#ݨ3�=��
	&�ӓ
nO��᥃��T-�u� ���v�W���?��L�฼� fb�>yk�5?vu�^/
D�z.z�T=̮� #I :;c
ˍ׮P�3�m���oN�wI��x�`���iO��kO�^
�7�m��!Do��o���,���1.�@��Ϭ-HG#h��4���	�"�|?��2����;�=��\��Z�9�� ���P��v~gOo�N#���
V��_m?
wL�����0�����ET���ۻj��?���q���z�=R��Ui�@�ow�����X�=n�e�G�Ξb�O�Qck�:ם��.G됻z	8��&�5n�p�<k�u��e�'���.��v\ɤ�掃A.r��ϼ%�L�����A��M�؁?=���q�v
H�;)+�Z�<���-$gXV��/��7�z
�^��48���n(K����?��E��2�Jy�y����L�W����>���P�k
���&?=�k���3!���ǡDO
5T+7P��b
+�
�iz:�ˆ��6s�C���S���^��!|�N��e�<�.��oyR�W͡W���q����<��ѾT�]��0;{���
Oe��
��X48�,��7���V��Z?hqz��"� 
���\?�����5�Q�\�|�B�>�W��V��
��
��۳PhD��

~3�Y�tƗ
f-{n�4����z?D3���o8Uo��r�N��.u�ku'	��Vܐ�������7���s�� �~	��󸴙�?
Cq��n>�e�o�]	
�A�|�lF��l!v>W�͵����F�P�u��v�H�ʊ��j^e�FZ����čX��%aB� �4?��ݍJ�纇 ��u\��������M�S�L�V�T����o��� u�G":Mt�NN����f��m
��l.�t)	�7!n�''(~(' ^{oE
�y�3*8�C�+��h� �����1�k���
HGo��W�8E9�
�>^��з
ֹop
x�W���.Ge�[�l�7�k:��������5���"k�-��-���H@y�?����YZ?/~�?�����g��oI�w
K�[��>�u
T[��o
��W[�h��TS'o������`d��xƖ�h��V1K�Sw���p�1����W���/�}�!
�S���?O�^��
�Ϧ}��Um+�ԌhRo짱�P˙q]n3պ_�M^oI
���L����p�B�7�Z�o�Ϸ���Yg)>{d~q���e���r�����1���ގ�����N.��1O�{�H�K	�e}��;әV��+W�d�Z �]cO~�N���Y��F�T�ЌL
�Р	Cn�M>#ꯑ������M,נu�U\�rۛ)zh����j��^�y	;��y�b�Iԋ¡!�r�P�>���k�4i��ѣ��wg�
/�[�yG
U��нC\�W �����5!Չ����Ns�uOlԋ��]3%b����Dܴ��z�m{fgEm��r�m��Cy�[os�1�_e���Ɗ����^�t�Y0��� w1�ԅ�?��2mbq�}Ї��g�e+����'Ftd����]�-J�#�n�|��Ia/�ܾ$��O�TM1�*�^+�\�@�p�y��<_�ڂ_/��Ē3$N�z[���%xP������U)u��!8bި���ߦ���R�	�{����r �n�uwZ%
���c�9==�Q�h
��*�-y�F�
�9�D9�ݹ戳9L>�s
���v�b~q��~�F���ZU{��W�L��R�{YU�TD�c��/ж�p�s(e
Ո�kvD�9�F�;��ծa���4:�^9$�8U�,]�@^f3�ޣ�`r��h�y?��滈+���
+�qz��#[���W�ԍ0�M�������PU:�����ϛ(�Fܱ)�Rt��q�C:Z���
U��
���9B�
+�i��p�\��l���=z�o ��W.
�Y�j��d
���=`����f�
H�񾈷���d�\�$s�����odO`e`͊sZ�ܚ�*�.�L0��:�w1��B)����3"
Ug�ڙzt:]�
+�C���=�z+
�ʮ�Tc��}0�5�=�/����\Fģ�l��ӂ�p���
+���쫴��Ǵ��|zlu���gn3Bͽ�����6��$J�	�{_H@���=�*��@U*�M�Qޅ�1�+��Kr/���ͦhM�}�{5OM��
�2	��[��Y�&#Y�/��c�ښ�ĝՆ�����Y��'
��'�_�^�H at _P����]jk7��^*���z�V���"v��X�J��y�_�l�am1 ��"}=_ϗѓ�q�f�[���`�<e��6	�ϗ%'��eM��;�I�`���ѓ�>q�5���<��E&�!�ڎN],+��a�j��ʢF�
���6
�S��E�@�%v�����j�������Zғ^
�ǛiW
Ӄ�(����2
F�`p
%W��oH@(�3�)�M���}�hF�'���q�a�����Q�%h%u��EZ#�s{t���fM�9���xO&��9�i>
5��H�hZ^��a�
�cf�cn�ci`�g��N�j��X��g

c�YS��e

G��=\P$_�e��gL���v
������� [...]
2�_U���+{�rZG�Ϸ��KMz�����<=q���4�KQ2.m�^\^����Y���"o��}�Xw^�0�c��
Q���� 0߷���0ȹ��1�<�~-�d=_IJ
]J�^c�3�K�����~mN�㢞r�rR>����OJ���T�KKd
�����w�3o�ƕ��k

�͙k�h
�[�'T��{m�P
+��hz��w�.���0�h��fғ�
�i.Ŷ�>����EGC*yI`���z
���D����h���'G�j�����.V\����J#�
+��7�!4������q�_��i
��������r������p���?=��݂n��A
+�
�f����쿋_D�

��4 ��<�/"���� �c\Ѫ�c�7i��$�H}O@�

 �f�j��i
S�Y�;)�s�Y�G�����՚O�Éh��]BS
[��4���D�CA\��_E��T���"
W���
�c\M��A�{}P���
���0��S�\�
�~
�n�=1N_���
+󮤶v*�
�y'�n�v
��AKSH��e������6.��\��e�~͐���:z�qu��b��=�G�m�e9��B���]zg��M<������
+�g��<�l7�ޛ6�Е�s�v�ߦ[s��d�j��->+���^_����������‰��a���q��"V�x�K"��,�uMM*��q���r�M�s7{'����T
�D;=Ճ�9��j?H�Hm�<	�Y2Д�����%m���KQ���
	�}���G��6��{*���?ӡU �$�K��Qg�
1�
+�z;�EO�~�I���n\=I�B8�i�Q�f���3�̿P���-��7� ��hB���d��~S��/��W:��-
d9�����ׄg��k���~��kzͅ��|��(�w&�9o�������C�^V�iNo��	��'���T�9ް��BRMȕYAY<!�i
�n����c�����}��-}>�2����|���v{U;�� Xo�OO�V3��2��Kyr5{�$�9mV��B�Z�V�du�^�M�Q�B��'B��c<<�Ҝ��
�Y�\~��@&���G���9ЋRW�}���%�����lo��K�
+��q����Zl���[�b~j��u�l��Zh�7
,]G-���G0��r�c�Fr�
+�8S 2��?��
`Xo�����4i��Yoُk{���1!]gaJ��z�S�z�	��ɴ��è��w�Y�j�����R���!~���uS*
�Z�i��&��|�N ��8�	����/����U *���zK z���&��#O)�vl�����B�����!U�|�������=�I���sp=�V��fڍ�9����)�'�=xI>	b��
��Z~�_j�&�ʧEp�l QC͂���q��n
+1�B,����::���tlL��alWՖ��
��H|m�+�n�[͇1�
+&���d�dW.' "Ӑ�8�]`�`��Ĭ�^�E�. at U�[qY�
+��7¸����w�-Q�_�GK@R/�D:
�GC�/
M?�=�����4���6.,	�C���7�Ջ��si�6s��Ԭ��9z�"��t(v̤~��?�Q�&�>Իĵ����U��˲�Ȑ�hp�����Y����5U�MYr��t�
�tA�d�
���>�n�"[�nX�Ո����6[]�����X6&��η����^Y�J�M�q�x���jS����n���soH����{s�h���^�=C�\oG�t�
�H���`:D���W���V��@���D������m�;��
+yf�
T����".���
N��b�{?E/]�B����� �YX
w��I�!�^W7[��	����pk��VG
�ȯ���{ߝEtY��a�z�k�-	�[F[�.�O^V��t0PA�� ��'�_��{�W.�&�A��O�~����e���^�j��ܜ�S!5�$���E�%�,c
�Ը����g�ou���x�[Ȼ�z�����Z'5+�F�))Нim-�d����z/⻈�ζW������Xq=@.��q�i��Xgt�5ƥd_�Wd{�l1)�\�\#h�ԫ��㹴���n�KDխyN
+��ir�O�O95	�Ny�rJ�4�DG�@�4��]ĕ�= 1/Iq���o/YQ��Ye�ޱ������õ����0�&C�l��.�i8&�2	S+���軞��lo��?3g�Fݛ6��ۄ��+[ʏ{�a@��
R�
=F�3$�?+�+��(���l��ga(b��n$���U�~r;x�eq��:l�j�pQ��ܱU�T%љ;]Ϗ�'���e����S�10'��o��e,�x�l�2#فK��uG�ur�]��cP�+,,O
+�t*��*p̐;���ka=Ē�Y��jQ�X
U}	��Y[���u5?#
&z���n�Z�Ki�_���^�
��n��q��ۭh����4ܑDv8�	��"�u���Jn�v�B܌fv4���)�7��}����,]�ϸ
���)'��1��1����k�^�rr�JؤG1�xc��蕞I��`�����0�K-s��w��>G��D��􇂻t�,'؟t�5rv�g�,��9!�S�
���ڜ�b�(A�m�T@�W��]�1cJ�δ#�{�>�Ʋw���y	�_F�)�
�>��g��Xu���4���L�[}DﯞK뻰K������]u=�7�F�L at Bm�E�m�����e�3���
=�g�DO���Px''��̌��ma�CוQ�Z6�Hy�
��q����}�
��xi������1٫�c6�jۙ�]
^�F�^f7S���ϰ^`F�|rK����G�{n+ʬ
�G0€�#*��`%� �b$	Zz����~�w������
ct�k��E1��h��\F�x����Uo{�u�r�N>�0�Q��]�¼u�]	M22R�EP�1ml1�[-�8��l���:6��Ι�3~���I���'.�e�:�(�{�m1R\���0c1�
yњ0�$Ͻ�C�	#�OpӖ@���TM���21T�oh��t�}�==4χ��}>����Z�w�_��~T}
o	D��[ � K�gos@�vw@(
�>��:��S Ax;�k�۫�
�DFߙx����6������Ƙ�g��f��|�5
+S�gl��"�VꛠAV��
�����psi4����oE�B��_��������_h���V�ߚ�&��|�t"�z� q����|K����>� �x��-;3�E�x�PT�ѪW�÷�a�M�j�|'
��$����5�XF
:��6�.�'?o
��M{ygc��N��
�_�?�'xaP��C%�|��
�l}z�,SK@���z�޸)�\���
_�GS��~,b)�M.Å�εlot�i�
N����w:�
b܋�\p~"���������/ #���ǿE�U(�S! ��" 
+N�g�ڶ��0����;�����4y'��H���
F�m,��������N`��A�Z��z��A���<��&\�m�~J������wB�[��oP�
�`��R�r����{��M�_�%��������+Q��#!�D��L*���5��'n��a��ѥ�˹����wԯ�w4��UY��o:�#��
�>d7N9�ֿ��s���o�ά`���P�PȒ�o
.hP>1�0�f�*�$H��
j�O"Zo&��jVZ���a���5��<�܌��Fӥ����v�x�i�>^��&�w�sִ��n7K�� x;�~-
�TVN���P�ӄ�Ҥa+P��A�K��OR���#�D�
��Ӭ4��t�}

q���Eȷ��.,rΌ}��@�Ͻ3g떭M׆e���՞d� A��	�d 2�'��la]A��
jZ߳m_���%t	��{�v��h.CxR2��<�V�ַ|�
S{�dNW}��'��9YB�
4
�m�ْ
�=��S�L�����t�>n9-@�B柗�{�q�{�i�{��
�xy�D�����W?�Yx�6u���UՎؙs��]�tĶ��
.[�=��N�,H�:9U��cge��r�-�j��W������m/��
+f�o�ϼ����=�a�
��&6��>
endstream
endobj
32 0 obj
<</Length 65536>>stream
+B���?�o�]������S7y���>��O�Bީ�)Ҏ7��vMui�J1m+ӝI�CEY� k�V���2ї����To����
�������bE#���Wm���ƣ��,�^����͎���u���~��8\b&q���m'�9��

��V����,���B��������}�/5Q��C]T�QFP�e<����y
+�S�~|X���گ�����B����O╫)Q�ϭ��I��
�|F���X�o������<,��>a
;��
�+�o�P=��E-)
�ZK�A3+�[X��Y�,
f��
�K���X؆����&�bL��`e�!^
V}>
�GF�dI�^�(�sG��q���g{�o_��/�7��	Wsy�����RZ�,��f�3�t�@�S�f���j���2�@8
+���95�����*�{d3s)(h��N
�]�9Ƕ�mg�3��~�]|��
N�yҸ隦y���D�.��hk�U�ژ�Ƕ���~�7��@w>;D�������
,(�'�cX�P|(��Q3~%����/7+��FLi�$�W��<k�iuo������f��J�V��]ۿ-_!������>�@Nc�Z�ԧ��3}�*a|�����z�@�x���t�A�]!)��/o2�Ŝqo�Di��TsrA��r,餶[���5
7�ك6����ꖚ�����W�u�W�~0��Y2Y%2�0Ayl~j��Sa�d��
��o ��īÃ�	���j
�� �ЫQ�n�R��9wor��i5&{�;}�GΖF��Jc���R+�wsq<��|��,�S�	�Fױe�"�_'>�A�rR�pR/AiG������_�$%A��E�p�L��l�p(

\���}�umߖ���y��wQ�Z�4���%o�����
Nܕ|�y�����f��<��xGD�
+�)̈
*�.�p�홑��3�������R��-yPD�[@!�Ji&����I��<��kg�]���=�{-mn�`j�
���g��2�N�Y\_js믤���
]F�^(��aM]<��.�
+��@�4v��L�����
 �
CQ�Ё��E���K�T�G��<}o���x�]p�ޑv�|�m��h�zX+�Ѻkn�(fʳ9����s
I`
m4-�a��ۃ�vr곫I�k[�t/3�*�����lj��W�E���A~] 1TҠ��0�*o u��I����	U�^�tN�.�u<�����ȣMW���`IS��!┷2�x)�F����uD�o���]����n�4:��Ju�U�p���]㺽��
 b����Nva��+P�'N[��W��o�������v�R���6��ƨ��iˡ{�M��=�N%O
���x�d�oN�Z9f�
��I�������H��,���i>.��~]�
@�o9PxÉ15
��Z*Z����^���r
��Ӿw��
M�u�i��a�M+~`f|K�a{�O��HI��ֶ*�;��{ #�#i

V��W�L�-��4G��2�pg����"�8wG��L��́�q��N�t�n��=����d�`MG�h�rZ
��� �⬽�W�d��
-�9?x{�ny
+bW��y���U>�n6�q��
��%�,��1�Sc>yy̼k‚e��:�w�Bm
+��.�FѠw�O�Yh�7w}�����w�x��z+���fYV �[Z)	I�Rt�X�'�;�s�Hö�pS�KK��&���G�csa���R���L��<�l�ELk����+����(�c��2{�a��Xuk�n )��

c�`�:>7�YW��=rE�{�@
+O�K
Q+��B� �������V� �&ٟ3v��2H��i
&�R½y<,��H�e�D/5�6M� U�`{AH���a������M���I˻�Y�+�x�m4�扜ֹc�(���4?!��R�aHs����ms�fzzg�����ˆ��{���4��g5.��1�.o�������	�����<�N�a���j���=�ʞ��ʡ �?
E�b��pR��ކ�����v<�x���
�֝i���<�i��]�RK(�t��l�|��ƴ��޺5��jgIW��U=
/�z؅?���w��<��TP��3]G{B��*.��8��(79ucqY:)��'Q{'�at*�j�7?�-��}�nt:�����C�ӣ�T]>WU�4�����9���Ǡ�ˎQ��Y���ιS�ɨ��㿀�
/��rц3XmH��~�'��CC&��G�R�v�n�{������u8.�챙c_�z�Y�$g��u�
*��h�9�t�}s�K����\jz���Z�(�A����r�3S�\Q�bM�/�����>���R����˘rɻ�n�����&
o
��滕�=L'�#��XśRe at 5�t�
+͈F=4�N��|M�=����>���@�|Ηq�r�S|�����*�+O������~����
��s#�� K�%���
�*
�.��J
6Ld���6@�U�u|��l>2����%��K%S�R�A��o����cyr���c
W �|���
���|"���Q�x����_�?4a����
M������
��������Te�yN� ��4�����. V-���s�{����y�ȳ��d��������'�V,��N\���Gx�L
��K~t_
s	�����ۢ{���}UR����� =�aD7�'��&
`v	������H��3�% <W]L(� �9�%"%�
��lr�^���J�ϯ踪-�l���G��G��|�4�^G��{	,�}�sr����9��� �=`P��
`F����C0_���� �Kp���� �*�4�:ދ�|q �L��\�c��5
Qo�=�ޤ��m
%)W��j�
�޼�{r���9�^έ�u����
 ������
����R}�_�˄/�8Z��h'���N	;X$�y�EѢ�@���&cEYT
�-6*%����
#=�L#}�7�V�x�w	�l�>v>l�v����@�l��A��X>} ( ^�1��d(
+� Kk"��~<���BQ�r`����r ���l
�M2���Շ:鵢d�v"o��X�RE%��6����>�ԯgcXڻY���ѝ��TvA����ib�Ԕ�0	]�րl��92�{P��8@*@�
+���	�>�D
$���/R�f��F��S
��l
�	���2��
[������(�]�w���i뻀�?��9ҧ��(Z�R ?�<L�=(�[����"D�d2�r61���ڎU
#0
��2���$�r�Jy����{Q6*�rwԸDa�?'���̔U�EJ{_
N�]m�R�̣?5�a"�?ȯ
�Z�`S7<Ն��l@!�]�~}5Mk�Bg?{�bE����:2ō
8���q��ݧ�5��B�_��:���kW?�q�x��z2�b�m]����J�2{���|��Z�� ��e`� j
+�,��=&��=���nۓͽJ7M���K��}I��_{��ʹ)ǫ{K�z����Ό�{�i�
���8�m�����T6�U2�`��huyc�z?ȯ˟E�0����[]@��-(X����P�{��D����s��] {�tQ��o�͹��q�:�
����x���}M��a�)+S��f
ʛ�T��Amdx��@_�]M�����X9����#Y at x�(���!�����{�5
��xER|����_��-��ٲ奋
���.k��
�-ؔ��tNf>۸o���W���������n7�%5�i-��Q�*�/-#d� ә�;�, )�

+m�E��]
�`�mV��b�V���mo�'�e���;J�g{�~+;�i[�ŭM繱6xB8��C;U���t�k�J5���rIMec~�-��E�\2�|{��������.�����
�����'�h΂�z^\�s�����wF���p�
%�����j�e�*��m��P���FoT��
+���ܒ��p��s��0E�9F�w
#��tS.���_ �!���[ҩ��d�����`*�(4��


+ܕ��ʴq�x(�ڮ���#��tے�/q��u8����ОJW���\81�SF����I��+�3�r�F���|z����_�(�?c�i{�����_��=��M$�����#�S=��v�H����+��H%3���Ȉ��D{i����
,S��
Y��^��j�r�6
�=ykĸ1�`����ǃ ���
������1�~�
�>���~ڼ"'C|����ݘY�x�
��_�
�ݖ�)fvݕ��
��
+?���|���2u��}`L���=~���������q&[���I�:nj����5�[��~Kl�}]�T��%��(
��t��8}�kv��Ty�g�:t��$^.]�;��m=�KzV����l�^�8s��R�v�"��?�H"���4
+�"�q�� �<G'@����-yW

Pjr�SL�\rO����}5���k����m�bX�^�/%Fkϊ�•�]yH�Y�;
+
+�%�uWD|21���
�����'=�M�,��fY�jv�?���� ��`D�	�}�|�|`�*����
Pǟˏ��s���|��c�4��Bc5��G0�-٣?ܬ�/�>y�.*}i�G��e2
)j9����O>�s��l�g�b����� �楿 �I��&��"j�߿&4�F�TF�PL�
��>�9\KFIl�Ig��#M���mT��K��t�jN:Մ�0��
Q��.m��B0�g��u/���������ts�:�K��jo�
�� oo���Z(."���2N]�3�k�f��ST]����ˁu2_8���
+�z=_]�8o���d���~�ң�Sd��fv��=�e+ؼs�~�^���b�h:�B����;�Ϥ��������
��
_�:�D����ɺ�?�x~hlS�=��F��nݘϲ�*��qŧ�R��Q�4*���@����=����agtbg�⠢�3W<pA����y���ɪ�Oo�ڟ{���WԸ8�Ap�ao�[u&I�u�yi�g+�_��{�*QG�����i'
+��a�j�S�����
�+T�\���C�[�3.����#�w��m�p>�6�.�X�_ ��4 E��@	/sW�ξN��:4�[�>�сY���g��T�Q/J
��~�Y:��2wS�Z��oA"��0U�v�}Ow9^94��zfdָw�̻b�~�z1��Ĥ{��p{0�-~���@D�Y17w�_�{C{?l��W6�;�3:�TQ
�c���r��۱'M{�C��s��v��P��;�%^lW�_�b�{�5�:8C�s>Ι��_��\�m��i�<���k���s�Vn��� 柛�<�nQ�l��t�mG���Y'ΕҝM���IGYfZ�9E��+�k˻��Ǡ�숸;
k�S���cxPb�i��te�i
���

�l���FQ�o���yN�~�|l�!�ɟq_C�
�����

�_�
+�v��pjX��
��&�~��:?x�
�����ۋ���^��a�w
av$M��~���Fc�û�'T%����eC�j��t��k,���N@�����u9	��|�&x�"��xň���B�VbI)�3:ҞH�j*���2줲Z�$�
�ly�
��.�ŷ�
��wGhܸ����V
+�]��fd-vƕ�>�0����SvZ]KU��d�/�
�y1؎Z���rE�y����k����+��o
��۽N�N{٨��u�:b3����T�.S:2h�9��e{��Ż���o����yT9⑪X�7Z������N�Q���ϰ�֫e�9��
[����eW��ǾI��'~Vո/�7��'粼�,Q����a�PM�2�~��&
����ֿVB[��w%�!T9<��"h�
h坜���g頖�%�Y
��j��
���«K)V*�U�M�l�
�r��3IJ{
k�v=�X��^�ܹtjJe�F{��ח<����Ҡ�9}ҕN!���X9\��a�
���a�:�棟n�jb�b)�M
+ޮ��@^%
�G�
�o�o�n�0!)��
��*8��(��@;�&@�#����fro�r�� 9
I��D�A��(�
=��\Ae^{��0ԟ>]��I.NՉ+�ȉ4�p
A-���������?E�o(�?[��X l��
+�}$@��,�F �(��ȣ������4]Qh�S�v\��{
g�M��)Y	U�;��}އ�o�;�ay�m�
���͔|�� ��R C(�
� �`����
+0�](ڙ�x&5�{T���$ wB�е��t��:��kh���8�S\D��\n�.���>j�g� c<�
O6�)�1�
���M��ס��<�� /�. G��jP�|�� j"@iG��� ���J�ܧ��R�x	�Z��j��	�v��{3~���&��d�M�X
���ºz�q�?��~���P���n{+�0C�� ��k W�W����u� �o��� ��Q�5Շ�4��,x
Nh�y	4J��[��<15�)����y2�%�#���!�����w�R5^�[R~�Z`#� �0�����^�"�9�~-0�Y� 
%𙖅�U�
+�G�6�aH��3��w�z��'��\7n9�™~�M�=�w��ez`FMo
3q?��;��2O�N�G������� M���vr Xk����
: ���]G App���߽��
���ϋqt�{}vM�%>��<�\y�2FF�6S	_�
rjX˅���kZ�M&я�GMޏ1s�8���A���/ n���0=�}�C��l� �!���F����
+k\L<�P�E\�<��`1w�����A���g��$�<�*{8_e�-��~��9qכ~8�Ҳ3�
�v���ְ��?�Չ	P�ua���_M���x�@���w�5
+�֋~z'�I��0��8J��e���7�p��=���nQ(x�2
�K�:�s�k�P���3n4���?�οU��'a
-~]��h��qE�(ک�ح;}(GY���f�a�i9SO�k�}�e�~�]_��q�νB�Ro/��4�uz_�{׮���="�G��KD��ُrѹ�2=����͋�0
h����[.�����>��(@� ��(
�r
�ˡ��㻼�'q-?��
�3<�c�{/�'Na
�d���
���dV��hma
����݂�n��k��U��X��b�e|�A
����
ΘO�-=���?���X�5?
+��k�D�AN_3����ޚ���_��pL��l����,��Q�Ľ�h_�&�p�R����oٹ��2Y�1�w�ֻ�ڝ��5�f��\{ˆ�uAkjM�]WWO��g T^A�~��#fH-
��xف�g?k
�y�r	�o(T�!�
(Yp�t�-���b����N]����4�U$sw*��t�֤6Y�(y�7*��M_�ͷWٚ�����g��s�wX]�ڻ������Ew�����y���
(��0~��I���R7�7
���3���r��,"�a�d���[��9Z��Z�h�9r#�\zKM
Lu�>�K�u
�
T�����
vrE�BI��
�πmȶ Ϯ�s1HX��{֡Ǘ�g�=ޗ�b
,�*��}ir��ܰ}����ͫZ��Oo�
+�Z�K
ި5��ft֢ʹ��2��k�|-�U��˧����#]�߈<
���G����g at Q�8i�`�@�ݖ`(k�sAO�Ls~
�{ο�G:9��9�;��.�0�f��9�g�G�i�q�0�[���6(�h�&�gU���l=�;S��׬�<S�h�- at 8_
�������m�H�Z��E猕h�ۉr���/
>�+7��������2���m
5��*�.
�
o�e��
��ޠ�(��֑���+3� #&S�I��-�&��y��t�0~x�KL�����z�-�p2I�8
+V���w7�
+�װ�īu�
���٩���R��ؽ����x�M��PC�?	��(j٧�EJG���G�΢��j��&o*�ݻXr,z�^y�"��}�"u�3 ��CQ7����{(����ƣCLT�6�h7#��ӈ�����
�N��4E�^-�j���%]:�T��P��k�2���愍m^���8<ԧ#q��1O•��#��b#q�#׾�_�]POv�Y����@z.Ni9�k͉>��
��=�p
&{�m�U����C���nZ�"�\
+Kt�h>15�
j�Z�kR�g�������0�^�P���A���J
��z��	��D�
�y�m@�%j��OKI3���<{w͸��
� ���L{Hg�p��+zD�Z�
ѫ�����L��#>�+iB<��\}�b~�2�o�=�
j��̂g��h_������]~
�]k;�+	((qP*ĩR���>s�d��KY��a��a�S|�VN���p)��S��7�^��k!5�5F�x�\P��`
�:W�����3�~�
�Yg?�X��h?:��w�a��f�π}R��S�,Z1��T�5O��(y��^hQ�S��t�1��YO�x՛e���IE-���{F8c�f<ɮ�x�0i�ϻ�A���}�~��;Q�;����Aڧ�a�&�9���v�O˽B[4�DM�؟p�8 r?Aq�,'�6[��/����c�G���m��� VA�+}5ҵ>1q��rg�T�6�յP�tO��$�k`<�t?�7��`�*v�̕�o�S��mo���Ԛ����F�]���y�������  ��� E�KWp��O�����8f~�o	)���1?Իty��	� [...]
��:L���U��B�^3�ݨ��Pm��'^+�K���3�m�{�<z�P�����MX�*L����I�&uv
�I�ʧz�/;����t���*G*Պ5�r�N)U2AK-��������v���ׯi;#�)A�i�3ŕ3!��U�{�ph�-�ǎ�lǓ��3���}@ �z
�GL�ܶi�Pz��
�Q�Ng�Z+�+�����Xޮd�ѹ���a�n�%����:]�$���36e�P�3�mIQx����}點����k���>��N��݆�������Ӡy����vht8�:�^!�VN�WׂHV�1KU2�f�ܯ���@����`�|�f�R��� o����
�|��z�<"�i� g���?Fcܓ��
.�!���>��R��Ҟ�(�s��Vӻ�M��&V�S���n�
K�u.a1v��V.(^7��XJ����ϒK!��4^�����_�N_ϥ����=�ͦs��e
�}
��)��4@��	@35
�w]��Z�]�M��\�@.S\�ʘ ٍ� �7w�Lo1@�
����<��� ����
�u3��X��z���j�������c{���� �����آ< [...]

����*'h{
�m b��v at A�#
�5�����d+��q3�c�+T���\�����u9G���e�|�}��d� }����s���m�!@�KV�G	���1�-�ٞ9�us�����@�2
+]G�o�7�����KsFra��;����>���I�_��i�[��͒aP�+�W'.
�����2f8�� �� �X
+h�Z���_����
+EE���䵿&��p��/�].=�:�L.�V��l�
�1������Fmc�ƛIV<�[7���h�Z4e��_A�۸
�bJ8B����`l7]�
+@�Q�o��uDg��<]�I��9��~Bٍg�Ql:�,�q���w/��g��Q4��u�]+w}~Z�}���1�c>W
��:��dX������i ���p�ֿ��� �Z/��7��R{N�ۈ��s�W���X��(�L�Q���������[�V]'~� ��
?g����__\�� ��f3>
<t�ܲ�S��:��gO
+,�	�c��lN�ϩ> ���jx���^ �c8,e�R
��C&��ٓRȷ=9��׆�Ԗ���M]O���]w��u?J�J�C]���}n���#i/������:�db1?��h����
W(���w�+���=z �5��đ�Ba?����
���#�c���|m�é���4.� ���,_��H��utu6`2{ڤ.�)�|��F?G'�U���u�ɰoӏom�evi@�H6�=@�����-X���OjY d	��_o�J3�<����M
	��Zt�&��Es���m�{��S��I>���=������
�upf����'O
;�X�-Cɼ���-��%�(���F� �N� �ln߃��E at R����n�״4��:{
`��v�$�p�}����kQa)�n����Ž�O�Vۙ���]m{
ۍ��l����6����h�]I)lP����q�j�sﲾ���^������� ��g��Ŧ�9 �
P���ߏ-6ID4�������
�$�k���O��3{
5+�~z��*��� ��+�-;/rV���}��me=z��Յ{�WE{�1�^P�
�EI}�قʲr��`�o�/M,|�)��Q�P0�������f��Y�^��^��ӎ�GGq���奕�5�n7�.ie�Gys�.k���!�7��P�3o�iˌ��hMz�PW�zqi�ra�|�믱/���9(�|۰j�#X�\�����
���F0r��=�~�z�����ⅼ����Ǯ����47H�&ȯϭ6��n_%���u-68V]������'�̈[-z��e�ӗ�2&�F
T��V^&/��/� �����)�!��Tz�2������Z
�Ƶ[)oN5���x��'�߶m/6���{=�ӆ����G"T0�a�����)Bc&�k( [...]
rV
��*���|�K
���Wco9"u��՛�F��jر��b`1$6�R-���(�ju�6I�?m4橧1N�c4N�k�1_n�!�/��0���`�$B��h����B�Zyd��w��P�}��Zוj�ɾ>��v��ܚ#�u\���Eo)�]�T�p1^"_s�7��+�Gv�������8=�Z"ԇ��X��v��}����$%:q��[�>irQ9 �=AAyU~��1��p��4�k�
����Uܭ����'���.�vFC<��v
\�Bœ�=����s�
V�	����2��a����z
a2���{�
���)a�o�"o�#»}~
��VP�u���z/Pr�x�A�ԍ鍊'"3i�Ul:�;en���� �zW�4�����t�_gњ�'`�<�
���m�I���\V�%7�_O�~l
�~��?�%2�
+c�=�t��?��s{%�9�����b�,=��)��S#wA$7w�
��$��u�j㵼�,�5[Z��Q�V&��0�=�ɻ����
#G [...]
+E��
6R*f�B�����՟�CH���
[yK�����\u�tw7^�}�/�Ⱥ��
�3��m�r{���y������IwG�ҝ�D���Z�'��SJF�x?x�]O�	��i&������E��x�'
v������D�s�c�W?8\��B�Oo*Q���,�t��P^����0���3�"[���v7`�ⱷ���n�#�S�-����-��_\��8�˪D]cU��`i}�g�];�U�����c�
�7MĴ����A9u��g����V�%w��J��A��*l_u�ZN�3�	c!ӛ��zX
�n�?�a�zBc�q��=i�_ڛ��-�m�vUf�gz��e����q�2�A�i�K�������9~�f����ӳ�B��];=�Z�0S75��f��n��V��\�m�ss|\��b�o�`�L�y���|�Yu���i���e�Տo���9�I��z��h�V�]֛N65w�1ڄI!����o{�e]5/|��%�wi�10�Y{�J��\�9�N%�e_���Ϭm���
UGa��
W6;��:�q�5�E��V|��lN
��J:�L�����ً�h�4�
�B�dW
7�↻��
��U�˼U�-njﻤ8����7/
ɯZ�����P\x�
�)ɭ�*��jZ��TbDK���z
�=a��)
�(_�p�%�d�w�a�09�vIro
�I�ĥr�Q�5J���t�Ӻ/�N�?u�R?H�/ƥ�℺
~���Z�����W�k��g��!�s~8q'ǀ
� �?�D�¯��'��91ܳ��� �ITG�Mf�=WЛn7o5.�쑾KY�.�D�^{�h��nk��ji����ʉ�U�]� N�o��H��A,\��ӊJ*���ݨO�'�
S�w
i��m�i��w"橎�"Q^/_��G�V�ݨ�|6m7�*.4��Ԙ��H��&X��]b$=� U��k�HW2��,�c�ܯ��\���oa	#��jHR�t��'{
�`
[�*i=��U_����任oד��2���	�g
�K�&v��g����:�A*�V�AW�“�n]�}_��s�{Y�-uZ1gJb�E~.��uK��.���u�K�*m�ނ�%�#D� "��`D
`B�����{=���V���hjjf<�`�@{������
e��ҕО�>�� ����
n7�ϣ��3���0�J��受ӦJ���*�]��.�.���Lt���^q�޷�}ʙx����>W</��B�9�
5�#����MI���j��O��_1�q
��!�����
����&;��M&Y
)��F�W�V#�4�2�^���~���b�U׃�^���L��KrK֋*�L
�ӞjX{�7�6��^r�� �.Ɠw�sw�
K
��jB�_0�1 X�9�'� N�;��6@�J5�'
�58��U��+�U���U �(
���h
�%iTo: ��>���j�Blk e�
+A�@���z
5
s���� 3���� ӟ:��m��y� ���r�: Z0Ɠ��F��1(3jP�R�Z�]��� 
+~�O�g�^�Cw%�G�[P��@
)��B�!\=!��_����Fr8����d�cؕ�w�-~-
��������ڻ
`� �
���E`'
+�v=�q�`mRQ�C�� ��~@�wJ�.P�_����?��0�'�Q�<�ꃥ�srx����_�UJ�c���Wmr
 �<L�r� �� \l�v����^t-�n(طW`.�%̮� �K(y��8\ VI=F�X"
��KR������%z���?LBzWTn��
��
����??�Q	�$��r(�> �
���V�V�8
'@�: ��|ym ���<_T ��d��W	y��`�y]���"���Y��8��qŪ�Q}���cW����8���R���1zݿ`����D�]�/`��}�(M޾;4*uB� yw
@~k�D
#
B�璁~m�|�c_��Jz*Gk
�e��|����j�wyD�k����e���*Z��Q�a�ޒ�Oƚ����t.^o��|
+P�v�:�%�E�
+2�+
2�q�2-�L
�}��u���vt�qm�oG
:f�0�����a��N���zy�Y��I��
�@ n�k~��gm'���Y�����g��ު���`�^�1����m��p2}�g=���~A�"�}���˳��?"���
��΄��Q��K�u�g/h��
�:�v)ݧ��$�ܞL¹
�<��
�,{l�K����U�akFʱ���_�Jʔ�[�i�������@.����Vsb���B��CD࢛�=SAΙf.�O�t��;u��a�����iU�ֻ�rp׸y ��f�߮��,#�:��[�e�0oO&��S,����%�W |�C�>fL�(�70i:>@6��o��%eq����D;w���l��K0�V{N-~���M����=c蜤^��
�Bg{a �-[)٭-���|4\��
�5�+�Y�.	�).�����J�7�L����)��SS8/s;ؙ�jL}_�����<>�R�ﴷ
����ᰇ#�
+'��v���R��"=��J�n}��o�"Yu�޻㱥�bW��W�b/��s^H�\z~t��Y�ye��hCXӫ��pj�P怃2�&�闟 �K��_��2n�����(8��B���1ݛ-��}����㶖�o;[x:����Q��^~)D��B�#��h��Ϯ5�UĹc���ӊ�9�g(���o3��=��+ �p@.�S8�����[-����R�{�ru�Z���q],k
	��n
rkw*��j� �8�YZV�[�~���|��4��چЮXUnO_6/Ni���'f�
 �ާ��a��EI{��'Sd
+M����3�I�-���'
(�m{���9��z{�"�Kӻ�F[d�,��z��Mwˬ�
��*�M�NlS�L������,{
�M�^��tQ{�z���?�yO�
+��ΥД ��X�*ȔVP���2�. ��Y�����%]��5�n���>�v{,nM�P�Owm��,��aݙW��ΞV3�ն��4��c�]���~��_L��3���Ҷ?
O2�͸.�q�$j���GVM�}��(������0�H�%6�p�e�Vܐ��\h=+4w�e�����vY_�Kk^��̶��3}烃ٯ�G�X�n�ca��ԕ�O�aV5u���щS�����}*�Z����������['����WmR �
2"���;nN>yP*��vzJw
G��,SP��5l�aX����4�%��������괝J���a4�,�+�S�te�
+�9\�>R�e6&
ٿ�L~
21� 9�p�
��r�s����/�.W���歭�kA��E~g
��,�(�&w���UXi���
��MOyq��h��r_[ CA^��6lK���J�Z�(I�C(I��]:,�߳��o����l���]�
+��;Zn�׭�l��Z��^��Ho�Pp6�acy�Lv^������~2�.K<�Z�=�cj;r��9�!��i��CiXh�
+�&���l��
2�xD�8�k_������}�
���o������/�W��<���̂�er$�/Tu�M؎=�nڟ��F�U���q���
+3�,ew��
����R j��)�
}>.�k|Kw�e�\�
+鐏>�]����_2�PYo��S�
�Ӫ^��:�D��
+���}'��<�&/�
R�ţl�Bʕ�1�p¤rX���
+]Z2䭚�
���
�au'<���ۛ}�-G�K��r���~��N��{�s)޹γx������ݚ�\���q��^�:!��E{���
��:�?����)�P5�tg����:���^F���kp����tPѸ�0��.�N�}.��!��.>,�z{�t{R�����ޡ������
 s:� 7��}�`�tZ1����d�7R���>9u�ee���w�ǧD��1vj������'*KIR	r$���!�̎ͭn�u��|�ͤA/��?��������vMi���_�����E5
����D���$_
��}�-
��(9"�5��Inf�hw������T�hMS�(�iߔ�~�+��t����/3�ʱ�ޔ�Gɢ'O�mW�S��Iǜ9:~�4
'�Eۓ�L�R�ա���_�`��Ⱦ�Y�vkܱ�����o
+�x��^c�_V=K�%ka�Y�7��:�l�*�w5/'fM��ϖ�"F=��z��]Ây%+�{�^Q-͙{
�v�~�_�R�~7�l{�
+�vw���]�>��9��N�����s�	�R�prɞ�������i/
�gf�Z L��f�=��f��U��D.p!6x`lA ȓ�����\�w�yRwBi*c��Y�q��
/m6e$-�d[<ޣ�~�X-�p�4��4�3��+����x^����X��>��������{e[�A�&��
�߇�\3���:l�?��ʞSB�o��p���>�zc��v�bN켐H��Dd���i����K���^Mi�d�9��i������scd�q��w��������E���أ
�����,�HeV6.�P��.���C���B
+W�^\0׀�3�/W�X�|���֘66��Ϻ�������6~��ր����

�7��4Ag�AMf�"�؋����+�W��o[--n�!g�Wh��Mc𙗔��(��P��^n&�k�
'u�
;Jqw��?
�бNӋ�߯��n�*}�Y�	J��
SJ?�N=�/���Jjs���ч#
�����շY��+�
����<(,˝)iwW$a�
3q�ʧS��,�?{����^�֪G�y��p�w2R[���K�����7�
�kh�z�
+{t�
��^-�i�։$��n��Ud;U�
���8S�[�fy�f�r$���}�
6��|J���	1J�jj�؛�\
�π�[M~ϭ}�H�=*>�&-�;������g�k��D��YP�7㨖셤�dE��{�wO���{��ʙ��+��fT<�"����m����B�=�
1��+l��҆�$�c��$�k&x
+c���	��^h0Mf�\Z�+�:-��5Kѝ���jP��ʨ�9���)���V�g�L�qJr�+��ȩXNg�B
π�9h��8����d�k8���IP�dn�W��)	�
Њ�bf	k��`���IM�v�+��U�l����>_[r����
+_.P�qy<����.�>�Na�N{�p���9
���x�]��$󹍬
[�:�km}O
!1��~�Ȧ��_�[rtb$,�P 6dl���[����]�:���U
��3� w/�v>8@�0�A�b�)���7 H�� rj� ����7C�q�K	 �l ������o�~Z�f|NF�� P�
eZ:�YP抇2��
��
 x��>���p`Nk��P���^�Np��V���hm�B�W	�9r�4=�X���^ ����2ڦ^ht_�{����G�݌jS��
P� �w�@�FV�߶`�s ��� \�+ gJ}���2
k�zW�� �H����w\
u{
���*U
�v�%��(U~B8���o��`yi>�ӥ�,(ЯB���9���~������;�;@����;��uD1D �W� ��8�O����
���0%����s �5��
u��
0��t9^'���O�
�~�WvYĞ�S���.�5��xL+t8��[�]��P8����q��:8N4�_��	p���7Z�����ăBo8'��;�ӽ4�6J>ٕ
*!F����K�n���Ҟ#�:{3o7�
���v�R��9φ��zo��w{F;&�R���v
���o�c�C�wB�g�2�/-������d�-�Ʀ�(W�ɠ^���I��<}�Y*ĥX��cw�܉�|�?">>,��W��s�;����u��<ؕ��ի%�˩hS���Q�ޛz����o����1��SΈ��=�a� R"o��y@����.'��i�
+��*�U?
+���#^�>a��D�Y��������o�=���:
�&1	���;~ {�=�OT~K��ô�wrB���Qn7������~
�#��
{�Lt@v.��d�dB���J>��
fQ����
o��f}�m��#�_�� ��������(�^=kѮy2�9s���'����L�+�7��nn���z�mŜ;IDŽOdık,���4��nO�d�T� $���k;���~�Ŀ��g���G��2
{j���3
r2p/���xz���h�v���
�{��yȝ�
�<[��y��ga'���V%JwR��e�N��k�Y at W(yL-����
 ��P&���T��~�i�����{ތf-j?V�e6�7�t	؋~j�ޖ�j*k�of������
w��l�Gq'�Jf~��M�A�
{6���i�h<U\Wh�L���DY���]j�dv�~��e
k
+
,d������3��Lܴ�LϸZp�-Z����`G���
���{/�[;��,��9�n��st���m
����ϊ�J�r[��Kb2�,��2�z;�
�pV>�>v�5K�f���>�f�?ؿ� ��~bdZ�9�R��i���y�ȣW���PFr����
�F���!�/�|i[���NM�C�k�XnW�d��|��+�E��E�b������o�Z���3gM��r�|G�)����=�t;�
�
��O�$��@�z/@vu�~���Wܪߒ����\u��:����ҩ�/�x�},ۜ�3i�V��
+�6��O�sE�73�x�Qv����t�O��q�f��h��0�K}W���
Л��a��+�r�s���и��I(8'JU~>>��q��t|it;�ϓMtN)�m=^���yo�������Ϗ�x6���M���j����S���<{>]����7*�I�yj��n >�V����fW�0�0���khE*�Ѡ�B�@��=����=t'�kP^�SJ�C/Ka�]�Z�n����2��RZF��x�쇰Z��צL����������
���?j�|�1�^j\��E�8��J�υJ��
���;�i� ��ߪ���y���\ 3��`��.S���[S���d�r�U�;��*.�g�>�Zsڎ֢{�h:RJ6��Lӳl���wl96�N5����k�,��h�X�ɍ�폘<�ɟs����|�
����ps
N�zm���0�o���9-�����㮞��
s^ ���[�$	#�5�4��r�o�MG����H+���>��Ly2�;Z�ģ��HF

l�k85��9���=��
!
��?؟�

+�vP�{�����r����n-�؜�����}�7���K9��0�֢��L��L�ٛ(U�߅�P���B��ԫ�nM� 
��]�z��`�_W��4�&������h�w �@�t5@�>����˴ī��}�����tw�}�/+/]J�-�ڳ�<?e�a��ۍ��9�qX��j�뉣դ'�
�ч$t�RN=��kν�.~
��)
+��3�x�0AiO�}�X��o�ƎHІ�S����4G��|�|�t��?��I��r���,^��l�.��t�C����M.u�6?RSIn3Zs/�Ӓ$�d8
(�����F�J����On���������{]r
�|B_
��
�oރ:,Z��2��́�w�?��]qG�r�M�y�WC���
߾Y��L+azQ�s���PR��N��h�

���T�CA
��H0����m�����{/����#ɺ̺Ϻ]qq?�{^������o �Rg���}
�[��T�]/���x�z����G
Cc1�+;ٲ�)>�#�L~�U/j'�,��w�2��Zcpyᴨ�?��-����>�˿��� l�{Ys�w��A�{l����L|`E^o�\�ڐ"�Qm��m����+��5�e2���P��e9��٬j�,t�
�B�{�L�z�
L'G�s��V9<E�p5!zZ�\u{\/��
SPz^3kuG�얹6�S�9h��aZ�;C��{m�2��3�������,P�z�vw���(Mw��P��M�,+�Ak�*�՟t�8Τ^%O�R#b�a��c��`��]�̧�����f���#&
��	�ۡ��+mWn���&�:��#�6�y���(��qK��6�
��Nu۪�U���e��,���b�ȱ
=��
M�b�VW�f7"��E�
+�X���G���s�N�O��J�xڷ����e�<�43��Q�i/��N�D��~��VF�}ݝ�?؟�7��D���)�
4);.��/��2c�+��4�&
����-�9��<M�-�4'��A����_�S/�V��/
�W�E&���N�=w��n!�W����B��*~n��I�)NKTS�rz3��7
o1>6���+NI{U�_�	\a6�v9�<��&1lJ|bv:��'�B�TK.�K���
x�ã�Ʊ/���E�%]�2D�ƹ��o�*��p��.p�%��IS�z��q���(�I5
+��(�
��p`C�7�H�'�Wx�Rp��[
_S|6#^Ȕ����������:�3���HI��.�o�����-q�]7̀+c].q�cl�tϞgڜ��Z��j7}|�7�Yo�(��KJ
�'��8��$T�a�=��ɲN�W���w����Q�ί3�)6{�Ԕd����e���a�)qq���Pi.�ks�z��]��0����������R��uh��?X��
�����m��B�]�6wB�{�5:[w���ܪK+�V�ܱc>uRM
�k���
띳��&�L��@�b�S�G�C���C@�F�I�b�q�Ӎ$�g��mDoXGo��>k�b�iA�Ш��W�P��nM��Z��6,V{�ժl«P����+���SΈ���ךHi�8�KyKU!�oXT��{�e����
#�o�wI����.���Ǻ���:�@�|Fg�U�cZh�TQnT���j�"���N���}�o+�x�U���Z
P���u5U</����U�0�{\�F��|��ys�=���'�(��?�������瞓{�*n�j �yn�����l;9Bh��-�<�6�Z�L�Ւ�OU?޺]qU�S��,[�D
_�'5黧��)����y��Z�F����2s�.��-����� �
�hw�N��;;+��7�cO
Ud��^IA��fI]�͹4V��Z�`~kL�øn�>Q�!�I9->��DJ��f
J�D��\ɼɟr9[Z��i^�2%��akJ�t�Z��_�@d>s��w'���b�@
 ��D1� "� ٽ; m�9�Z�
�0 j�]��~�1A�f� y�"@���t-bf
��� ��� >@��"��mq��l���B���d��
��O�/�h�����]�OhB2Pޘ�� 
�N!�
D�賝�LmT�%���)@B�� �r�z��4� [...]
 �NMؕ(�s �?G ���:j�
���
`����zI`k%�
qЌ �sz䁠
��X�X� q�
@6EB�%.��_{)=}��~�.��*S$�R�ƣ���pf����

+��Ը���* {�s�g�#����-̌�5a�a��[�?|�ɚw��~�� ��
+���U'�G'>!Ji�5��Oy*
���	��z�<
��=�
���U�3��`^�m Z�Z K����C 8�V >W �w�n
+�b\x6�����ZBɞ���k��F�=�� �
�q9�
c*
�{���
+�MP&Q�;9�S}]�`�{�S6��� Do��G�a"������*E(�;e�B��nb� �Xu ќ��(�����
+��\/�g�5�(�ؒk���{HՕ$yD�>��
_�B9�[��
$L��eT�N�`����H=.#-�>����;�	�S�����[��lB��C�bM��< ��
�Gtd��q�j/������
��6�;���y�vḬ���f�7.C��
K��Y$�
])^sF���b�=_�S�d���
nG�ݿ=���<}�w�n��
��𵗺�x��* q,M����/ 
�\�"�=��{Q�A�sw��x��
*��*#���r�Ys^��لG��$��F|��g`����^���\�0����r�tݖқ��q�msz�c�?�� 0]�2�h�Z�
+�3@޾U�2��J

�%�рWj-�5������^��I<5���؉�}���C
���m�/��}f�ƻ�H�l���q�̡�jǚ�1����2��z�<_Wa}��V=O>-������
(�Y���IF0	�̿��z�\��q#E��?���E/�+�Z8W��3��aȀ�$b�����Q۪��r���ބwa�i䅳c��c�,�ԚI�r�u+j.]i�-���Ydp����q^�
�Y�(�
�c�k/
��AI��}�=6�NN��h�� ��˭ʾ�
��z�v��{n��+:˶{�
+�f:�$g&]��ek5]9Ye�B����p���?����y��f�Z�74��V�[f�;L���n:C��� p���)���˸�d{K?z�0��ױ3���fw���`_ȗ�m����'k��mE�Ӗ�_������s�y!^,f囹�k'�dMK���9x���o��621��☩��3�uZ��F
�7��(E"\p߽bc�E*��E�o]S\'e�>�V7����q?����?N���5KX��
�k���Ӱ�Zeg�sM��KT��ӧ9����\�/{����]`�e�,2���
+i��Lrb�h�L��
pj4 �g��m7���O}I��;>��U�a
���8�>���@2�
�d_k�^��+O���uq6!��M�)z�d
�|��3�wU�6-�4r�Iή�?�6����~ʎ5�ǕKm
+1Y�w8
T�旿�r�b,���d��JZ�Mg7�
u[;%���#l��.�
��^����T��R��`~�B�~TY˶n�)��)��i�����@;Em|
Vs�~�oU
+;�5��J��c�V�h��X~���������Ud��񺸹Y������
�#��C��-u/-�uj⭠�-���kVgʹE� n:�Q���d�ӳ�5��3,QP�5R�~u:J:Ug�Y/�����nՑ�IS�p��?��hC,��T%�����X����X��C��\�����b�k|W�.���efh��5�P�t�e� �"19׼6&���#-�1�{#������9��!~���K{�K��3CI�5�}����
+@�2�*�or�2��iAD-�=�ڇ�3�n���a��������2���vk��M���i�5�39uҘVQ���[%e�}�Qu;2{7�!�T)+
�|Z�
�D�z�+�z7$Q
�S��-^�� 3�������]�Q�r�~�܅B���(u/;�;]�Л���ă�,��ai?K�~���c���s��hU�K���#:A
+?��)ؕ��-�%�n�#�,��0}����1o�Ta��T�
+��|2!^�PG��o��n��<Y�`�a�SGR*�#�ʾ�
+�+�6��f�-G;T�=n�e-;׍�{գ^`�Vˤb�nO?��Aen��3�Aipr
�x]]�(>��y��
}.�o�
}e�y��U6`�oi�A��
�ܘ��ھ�:�x�S��ﶪ������դ�I��jX#:󻱕l�T1��ZC{9����7ٳ:��
J�+$2�}Ғ�5��J5�b��������g��WOg�n��9˙�so�to�{,^��C��8�����5 _q/d�i�4��Y/�	��[�mV�Yg���B����*���.R�ܻ3���3��M&K�X��[�,*L��췞�\�\��l�т���w]�e��yW
��n��Lw
p@��lF�R
�+3⯀�;�
����Ցܗ�rƥU����bs�,&h���l!�c��|8��3���'��&~��I:K���.��%4�L�[e���V0gT/Wu���x�T�K����ЩS����
*ݩ��ܩc
�S{Q�ox���-�#�$��a�t0GG�%9��An
�۬�5�
�9��)N�^
�a
Z�п
7�`O{b����R
\�F�>��О�9��vVe�մӡ�c����
��]{�|�n�;����d:�o���4��6��y����^�6if�,O!���8�
+��S�T��IE]&��H����h����/�وt�����[^	X)M={�����G�Wv
�B۱�n/�Ql���h�v{�B�᫅�a��-��5�ɳC�7\�*�=�,�ҭ�v
+�9u�&�-
?�����c��e4H�{��R��X1N;#���M���Kֳ�۞�
����zg�L�i���6
�v��V�]�"��
�_lC�7<����R��9�nP'��>����4�B�«��eb��;�/w�>�Ԃ�웃P���`�P�yaq<Z���`N*?X�
����r�f�r贙ޅf���͊�t�g��@h��7�7
+y_��qơ��.��
������
8�^�4��o����Ju6)=�����Z�_�H�PcֽȾ\�
�Õ�;���t?�~�{W�Ew�|$2��I���ʦӋ���M5�E·���1 at CAm8��u
��w#�ՍFo\��;�f��f
�zͪm�Zӹ��W�f���r�L/K��e3x�a�*�m<g�P!����F�
��a�-�³W}��bg�ZM��klO�A+�
N��H�7Tm���P;R5v��77U�� W�|���8���O�
+��=�W����0�����TAK��V9�؉B>�#�
Ư���F��uw
)�6]�Pu�B�;�ސ�1B,��l��n�2*���ky�>�Pz�ŶfշP]W���W�P�[sW��Hْ7�4J�x(OndA�%��)\�C�puR�o�YQ�/� ���8�>�?�^�r�8{��}E��3�L�y��DC�&��|j��%n�|9�VY��Wxb/���y\�D���O�yQe�8	�_��
y�����㢜�G�n�]�l��م^?g���
S�aܴi�G9��۾G�6�utg��}ӛ�Q��=�S��my�"�T�����!S�z�x�
�B��+�JSyS��9{X�f�s��2eZΰ��A��xE���H��1莿�V/u�w
�u�&�Vp
�8��R��Gc
�D�,��Puef�|֩"�羼לCIn���J�υI��D��kg�p\�Lqg��&� ��"�����jQ��ޙ�T>`�2���ɐ3�Z~�E�
 �
�FE�~H�T 廫�O����,�"�T��� �۸$��A:��@��v@�

AZ]��
+����siZy at l D?�ӂљ�A���u
6��s
���9������%쎧/ο��*�k ��Z Ir]��� �h�F� 9
� ѷ��^zh �6�w�
�t
X }�
�����b�����y����;�]�H��c������n��z�<s�.��α?� ҟ^	 ;��O��-��l��g�gv m� % �{��j��p� �Efp��5�x�X��{AO	@0�h� 
�7X�M�ln�Gߣu��+�ȏ�O�i��%�����~�ο 
�
P�e*��{��$���_�3s�!
��o
|V� T�)�V�<@މ�4���^]�i�	>�%�}�O��{�ye�L��7z�g~f�Q��X���a����u����]���r����� �rU��u���-�I�>�������*>L�& k�9�������6€���
ϞG"v��n����s�˭�#
+n0��54����ô&�G���v�:��J��
Ͷ�߯�����t
���{k�~��� v��Ѷ�J�&�ި p�6��C; [g�W5���E�5$U�YTݸ�-
�z	
?���ᄳf�pZα���x�S0��9���e!������2�ˈd�Ӎ/8LJD
���m�ϰ��w�_�QTX�Y�m��nb��/�@CŎ
̸&�Py=K+���Xx��:u�]枞���	�`�ԭ�lWVWI/n/�S�x)�*��xPy��Q5}|\�±Y����i?��Y�g
%�=Ix��pX�w�d�v��p��	��B��7����=��~����&٫u�u"�=�@}��s����+�~ݠ.ʂꜵQ�?Qd,������z�uw�uO�����68?��\ٓʠ��-��{mƺ[YdV��ڟ;��_8Va1�?ؿװ3+��:���. ���5�N��n��g�[��>��Q
�η�=��A�g�ٲ�K@��
���8��;/�*�|A7~��"�s��M]��̎�?FN䑸��;�u��
�z����l��丛�����7 L��LީB�Vk� [...]
+2O,$�\����l�������0��<HVC;N�m��0הg2�
+���Lh��-�u�zV�PtBsG�
�e�y�H-��e��8�$�;1r`
s~蛎��J�^�x[cR3'�$w�
��rw�������-m�[:nE�~a�|�&���-���'Ӳ�푦N�]w"�eL;�EmD�)Z��
iE�
�/ۆ���? ���B}�d���
B�90�1u���}�:H����N
y�~Ό5k���o��g9��fU}q�������d�\�
nl�UA�Jm���$�
+Z�&���t�ToIv��U��(Q� )Q�!1�
ߧ9Η >jd��̸q�˽‰V���+إݕgi�9�kǣ�������0��!X�6^;��.9}默KO�C��N�Li|Ւ���尧DB8T�~��
�aD_K���G-���
�{�K��� �Qdg�<�ˀ���^�D7}��f搻7�p������)�br�(��鬎�K�}b]s
�<�����<x�q��#jX]䔸`�F��L�D�40'����qD{
�R�xs?�/��!ެ�
+ at P 
+�\&�,��K��tg��Y�]#��$E����4���wiv�:�5���4�ֆP���ɑ�5u�Zӊ�8�>�d[��ϪP��hq��K�1
�%s=��x8ȯ�
+�����?�ɗ�@Bk����}'�{U�DM��2�W�OdK-�����K�̊lϵ��ۭ�G��r����br|
�Rzԇ�:+�j/
1[�)���
y둗��C�ȣKOT��H���0��0Q�Ea�������� � ��Rd�q-s䘮2�C�x��!7yo#Y(�����5f
��N?�?4vIa2�t�関J� �+ȋ@�AQD�A
pG��o���W�rU�y¬,Wn"b�N'�֚���Z�6���^����`��<��}�
+6.I����Bw��/>{��8��GqV�V2Z|�\6���l
a�m����i�����^_*�;h������F��
[h�����+O$}��6)��j��;ʧn,��d�8ɕ�}��l7��d���V]|Z��.	��ᦆ�+�B�_�B�PB��#6�I6�X,�C*�Y�

O��t���
��gtw�A�>�E<g�u�>-
7��ۂ'E}V;� γa������ck�����p{�����\E��9���cI�$DиR��p��	q���$8��ii>!Ϊ���@���\����r�h
�ٞ}��T�4�ښ4�Ŏ�|�����Sy�3N�/��
�l���>��9�����w�w����3,�<{�*�X��l#X��Ƭ����gG�
��i~qK�f��T�� ټ�Ǧ��
��}q���=g��T�Ň1P��m���䐣ܑ�%�<���h"�M�ꑣ�ͮ�7�]���8�+�s2�
�r.�c�0z���7���Sh������7��f�u26<m�
���_�����ו?���Og�Uw�S��	u�\��t�����J�����}3�
ct%|���I�c�\ߜ	��|�d)���ٳ����z������Ub~�6}�
��$r)��ySn�oRn>`)����ir���ו��xz�ع�
�~��!�׏�d=�_�p��
+�Rt��lN�-�վ��ެ r]���B�
�|jN��:
���X�Y;ҏCzk'�@}`��E��Lv+�	ݓ��!6�#Cl�+Gl�����i�����t�.՗�?���8�G��#
�ak�
?`��ڴ;�g�^?f��d��uk
"
+a����C��'w�R̶���2d��hz���N�Q����ވ.ۍB��^����
Wl�+�K
���l�l�\�4�w~�͖�d��՞�bwb�uvO��X�Ӧ ��UŕQ��1+m����,B�9�w�+̩б�A���k[���p����z;? f�xdR�vr���}�GjV��[�5�a�l�B���]����Τf�ùQ�_�9�֝�f���<�f�����`8�|���
���p�ٝH	�
,��lTNY
`h���̣m����j�ɭ�+��f
��v
���o[�Ȼa��-��-���,�G�v�h���J7��f����:����V��}n�ߗiP���anG~�]���{�c
��/���2m/O5�
5�-%�ޝ��o�:.׉Q���@�ֵ�J-|�U@̮�6���%�$�S��@i3��+H0�0�
+��Uc�ƅƆo"
�١2z�/M�Y��
tD��j�w
���y�=��x�u�ռ��z;��a̮	���k?[7��aOˇ1:!�ӿ�Mz�4
�����e���#�F���uen�u���|��T��X�)Q���{Smmυj�h"�֠�����GG�x߄��V��Nz���v1u��#2��}\�zF��!6��3�Z�#;/�E�݄�2��d�Ҩ2�F}���ڥ&�5t6���T��J/'��)3olB/��P�޵�|oNUJ]f��,�ʐ?��4�P����UX
[����\A�ݓJV�w{�(�Ȧ��ַk���F�9>�o9�M8�^5��WŖ[�rr�
e���`
�f9L)�����b��xh�Y
+4��s�w�T��2��u
D*�^2��x� �a%�x��i�yet��w�jđ|��k�MWy�g%b���Ƶ�30��%gU
4�u��N����=�U��^l��c�a'�����"��]��oP�T���=)�b� Kړ`)x���3^o�m�_������8�y�j��q�4gJD���4'��i��sS���S`<S`�)��d��xf�K
+蘔2�d�F�n��	R`�g�h׌�'�\=#�$~]�_+�g��^�|���%r��/��^�R�ƒ�@?T-�ÃfƒJ�@�����$�������("Ms�8;4(j�@Z�~hڕS 2������R F7)�nj��{,�'�;���Ø{�����@�Y�խ�ҍ�_�G�Z�Z���"�I1�
�Ӽ$UӼf5�Up&�/�A��Ͼǒ�nA��!�4w���r������s*�uz�
f
�4�N�i�n,3�]�<J�w�L/_x�
h��4�q����q:���Һ�w-[�n-K��w��'i�
+e�JL������i����)GI
��N��N��0N��6��q���l;���^"�M�L�40^R˛�J���
���9h��Jڸ>F
*}4r6|G�u�+P7~%�3XՊ޷�q��q�ъr����4����ΟG�@�kiaY���}&f��p$�i���i�����R|m���
�<�gu�<T�&=
@�O @�����fd�
�c���W��~�8����YcX�7��w�g�蛧��f
���~lLV���~��d��E8������(T
+�����$
�MA|��_�<������#��nL�~}%��
W:�",uc _F^МD��n]�v/Ŝ�>o�ٺ\����Pn��
�ޛSRڵ��.��(d����z�5�i
e��k8���H�hE�P�R�6����}�dby7�����M��y����2�e������:��U�<�V���?����*�[�2��c������
P��)Zﭏ�覛6�u�����g���w���x�$-F1����QI�1��Pv�)�<�O��No��j{��A�+<7:�M�yhm���%n�;z��Cg��
��[A���s�M����2������+�'.��t+/u�@��YM���͜��ѝ��s[�ia���K�o9K����E�Us���S��}�λ�0��D�;{*��C�
��y�m�����Z
�yeU��h�U,j�Fg�Z�os�{	���p�����)�N�̢wk
+��_� �?��Yg��@�f��r谛z=���$���ŝ�'
��b�
D���|=
wV+$_:��
/q���&۽z�
��¤�r=�p���:�ÖR{��C'q�N:ϲ-K�>�
a�����ر
�b-#�:�H����Bm�����wIūɽ�6wu�%�|����5듡pI��<��q��/oV��3`��X��wy�;�����[`��⼺p�����
��ب��[�
0~����SjQ �Ey�������5<ң�E
+n+p
+N#-���?	�N&
+
I�X=�?D1\�o�M�.��x�˲q�52F^gZ5����,��d5�w���Da�
����	��E�qqj���
_����y���=PeG�6��d㮪�>_$'�Z������؟�/)�6ᴘ�#YW���%\���F����?;�ͮ/WW�l�Ig����Fߑ�����f���pl}~Z[dm���zJ��N?
A� ��^�Ȥ�@��
�$�&��cuC
ƈը%cj�qHU����H!����O�G��Tχ���
����
��fI$���
-�m���/
ҁg�0�
ߞ�b��>���	+kC��{�7	��,XOMa&���4+j4�[*o�є��pD<�k�
唙�B�٤�i��l�w�@����\zB��7B�[�x}BO���9ϯP��]Zsu�g��}u
+�E����>��!v�.Q�7�km2����^U���i@ʫ�4��"F;�:
檐7�~r��j���pn}�������u
+�B)-��e@�
*�Ⱛ�.��k{ZaO9�
���=*_Z�N6b���j++��LR6��y4�Q�����=�fO5��6�1Kݝ���=����K֩�閐{IQ�K
{�;�G?
T+�����Ȧ�^��l�J�U��v�͞���-�#���rX�������8�8��v՚�O-�g�(v_����d
)�c�:��#_̕E��
z9v7X&D<�0�#�u�ԯ�
T

Qjԑ,�/��Ԡ�%��n4� �"CJ��<����\� EN���9����z焂u�k�>`��by��}��
�T6*�Βא��W��D���YkX�!� J�[��~��&R#|C�I���^{=�k��F7K�.��]��@�4~���[ل���Hʹ�}⚗�
�Ǖ��v�[?�]	�֋����J��$*kM�O�;�5G#V������@
�jW
�:�)�_�Ex=�~@I=m���Z=�f�.��4n�m��
[Q��lx�Z^H^^�K�_�E�V�T��c��yS�YW�Z��\~��~q,$��x\�s�<Lq?��]��iN��քi+�Օ.qS�"v$WD@�N����~��w�3�c!uF� XZ���
Z�V\-����������x��ֿ�~� t���{X�
�U���뼷.<����Pg�Bn�`3��ݚ�h�ڔTW>�j6'�0`�0m
��UH�t���t�%ߊ'�mr#��օG���m�r'�D�"���S���<ê�ڿ���
�
��m���1�
+����!�J�6�`���Q�ϗ����`�ʰHQyh��~���z��S�ڼ?M��ckƋ����Ҳr�
�';��s~�Z�6K
ʮ|m�	�
 8�V�R�ET�/_;��^�Mmu�ݸ�s��h=#��5W�)�z�6^hz8ݪ�H���zK�OQ�W�m�D��
+��z���u�_U�1�-6��>W�Yu��1������mۻw۶�r۶e&?`�
�p���m�
T~q�`�c+��瀪�z����
]Y
����ul����
����@��8
���9
�^�W�s������F	�l��K�"uHKaϭ��č�K�˥��K1���<�j�+�x�?�3�_�wҟ<��/��b�rf�"����������T6�v6t�4*�5c�2�C���Ɠ[I�p��E*�Q����+���4Ed���L?�椝���!K�٧�9��'����	i^���O	
nxx(�x�Īxh�*��nu�Lj���۹�l*5�SP�{͜٣�u�ȧ�e���O}�u�e���q'���+/��W{nKld�u�f+Y
+��
�Ev���5�
+ӺIv_�O�#�'�	^�ݫ-�C3�1P0Z�-�[Ȉ�2X,����Y����.}�GS-�:�.�G
�Q��tXV��D�UY�}�_9E��){
��,^b�
Ur4�t��s�^�ZZ
�\/�	�>Qy�>bd�����W��Õz��ڨ�z_2�L�
J^��櫿(�b�<g�ũ����1�Xl���p�.
�^��D���u�w�K'(�?�ʤ�-��v���"v{�}+�#vI	&jl
��B�&�&��О��>E��~�6S�7Y�6>��n�2�?��H��)"���-ە��B�	W�K��m
������k�8"��Xiv��~@RF
o���V�
LZ���Z�����
�
+�:�
�(簦k��f�I������y
iX;������^��^��ý�D4��FS����vS��[k�]�)�n��0��AN
u.'G�����+���N��y8:lz6�7��`��p�[�Kc�gl��e��}qT���9Z;��t
	@��g�{�V��/�2?�ʳ
���f0*��|�����F�ӥ��L&l����������b܉
+{���C��
+�:*�������֨ȔY�[�S'Ҫ��}�u�G��4|V(�+ϥO	~ߪ
���\���
�<���eQ���"<ꔠ]�DA�t�B�7f,��b9��Bn��i7�
'��x��0�YeP�b�F�X5k�s����תN*�
<������>.�7��R`\7%�q���ǥ��4��7x
0T��F������ףh�M5��
q+��Ƽ���
+�k�l/����ʾg�|VB�˥�C����\�L���(���:R��F91�
�SS��7��OrN�4dg#��O5P�l�_��gv��/�DM_����6[mǧ�[�D�8� Kv�`��!#~l���E
+��'�*�3��Z�ߺe�!�@���@��I>�h�|³�|��*�
�s�>M>J���kd̈��|�TL>"��C�N2��G�|�L�6�&����bI�P/�
t��"�=��➰��')H�4��2p/��A!��QI�'N��JS`|PS�)�S 6�����c
+��s��i3��N>���I}5caf\���@�F���K�U�}��r"
�V���0W��
��ߑ������u�����͗K���Ӝi����,��ze��o
|��R`�S`B�u�Z
+d{��
LF�����0�j6^��Ȟ�V����^
����ek�O�Y�EJ�߰�N�w%v>~�\<���Is����Y��@�G�4��ou�yu�|�)���b�9�Ls#����?���	�Mk��2Ş��z�ڊ{V�}�
��G�v��s���5̻E���{�ו����]+�?`�c�ŏ��E0 ��n�yu��&�q�N��8C���J�ཕ �K�]I󋽕����~=���p{}
V�wv^�nޛ��r��vk�o�z7r�+�ȉ�ˮ�y��Do�7�܎��rG >�u<�V�y
at���%zo�!�o�]jww
�/?���4
�҂V�O  3��e+R�b?}�Pa~��*�����W*y_�E+�F^=)Dy))_�2ܼ@��7`�9�*��������
�������
���a�5*�Omm�m�����GbeW�/����z��*�`�����^���z�f&ߣ�5�>���	gG�)��0�;���xL���
+>�������l�G��"
u��lo��뀺͟yg�e
�
�
��e�� �����`ˉzC��o�"Ϳ*Y���'����󲑂�z��s7�q'~o)�f.���TG��X6�$���ht�ea��
�BI�7+n����޶�uY�j���m��K��.-�Ve��,%�-��ڇ&�:
���R���w��q��;�:�����_
#)�F��ݱ�k|�
���l;t�v�̇ٴ2ج՗�;���И�����AS��K}>������IB��̬��n���G�
�h�^��W4ߞ�¼�
�g�A�fu�Q����S�]Y��J
+���:�u�B��n
�~�����K�fc�Ժ�
	��T奱�L|�,on�����mͣ#�&�ŚR�Ei2���۬:;�
l��S�>c��n���2 1�޳,���7���5
¿HA@Ϻrs�g��+?.�5t:�4�n��aZ,�!��ߛ�+�V��h.	) ��
+�7 ����l�����|W?��_������[q�$^]��z����M�s�'���18zx՗a���V�E#-�
�]���eAH��<���e��'�M�dc��T��=�7��?��8�1�{�ڋr&�k�xh_�M��j�������n�Vf2z
���~5��+�)z ��Gщ��x�3�A�=kU���r�8V+4�/R�?M����@�:�N��nO/f�pYo��o��r/?�?'ŗ�$j�"���y
0;ZWk���
YL'7� 5��q�¬'})K�v
~�j�nn�x����ݵU��*�빴��4̹�f͗�/�s�'I�d]�l���=Z�K��oB������O���]Ɵ�"�z�y=�l�^B�/nM�N$1��DŬ�V�G�l�U��6S����uy�y^ʳ��^Ɔik��6
����Qa�����oR0�&���������\V��p��.�4_>(���n���y�7,�e��w~:w�e�CD� �05	�
�
j�8>���=��� [...]
+���!'L���UY"���@:
zG�~�%=�x���Iu�ayڍ�ǩO�$c���7�7ɦ[�_d�rܹ�i�n���
��y>l�NY��������|��+�d��}RS��x�B*A#U%9D͡ן��y�����VJ�hH
����ns�5
:���G�*��BR\M��4ً�?3�T���o
�~�����Sa��
����`��C}>��M�=c�
+��3Z�o=y򺎣�<U�'�W�ֳ<�7�Ơ(-��V�~���$��{X�0�T�m,�
+
�}�?�F���9�s�ΐ�
ؖ���=#y�J~�?�_��Ԉ�F��m�y��h���yb;�
��w��O;�{l�ip19���8��Jz�Cq��g6|H��B����Pi����t�۝V��8��c�,[ ��/��
�5? W��Hg�T��&��+"�ח�/����*ڬ�����uN�"�vG{��ʼnŀ9�X���p�O5��*%Iŝ��!x?�� ��3Y��
�t��%�ZsZx74Qȕ�!���?�ߑ	���g���v��s�"[���v�c�vP�R�s���9
ʳ�j�}?GQ�Syz���N�	q��D�����U�Q�n8
+_���
��/g��1�E��q-��z�f��EN�(^d%��HF�
PJgG�2ZS:���z�F
�ЭӒ�[gߧ[�B���������V
N[�%���h��	�εX�-p4�V��cB�	#v�
�����Ͳ�샄M�k���Rqq���',�]Qkp}V��ΐ�Vep���F�Mt�~
İM
�j�|`���
��M
j j~�>�����bϨ@�F����
4ߩ*y׶���hRհ�U�Ad�ؕ�
L�����,�ų��;��n?���,u��Te��2њ�雇���

Q���`sk�O�;Y0��H�p�&V�� V`�H�����!t��}��u2
+f�p���@d��{��ڧ+��-%ʔ�Q�3?��T�7o�lT���
7Н�3��/V�����T�iK��ו!��	�\�H�H��T
x(�1^9V��A]S��xk�
�o
�ɣ���ۗ�~�?�z
w6>�:�*	�V���,������z��+�������v�҈���Y��+�C�n
t�f%
+��
S%���+�b���r�����`�Re��.����b
�a���z�
z
.n�YP�|���
o���pw���S[�Ǖ�c0t�ʍG[�Mq�;�0�L2d6N�����h�h��������d����J�p%l�Z�*E`1��XK
(��7_HnߜEJڤ�R��rI at C޵�qf�
�w�/��x��
�1-���N{19����#�c�.�n:�s���I���#Tm׉]�K��'��V�������F`lZ����]��
��j7�E��`���0m���
�F �7
�0~�7j�Vߌ�J}�;��R�����}���e�­-Ƕ=���f������fr�ˇͲxC©�4��j?��3X�7
b�jv
+O�	�1񵉅��G@ �o�|��(եw}{�>�^a�h� �\�.hj�� �js�ĕ�S�+1t+�q�T� �UZ4
�¦���G5gl����4�5B�:X�Z�@*Q
�?+(

�ƺ�k�ơV� u��E=��:��r�S�bV��?�a�aq��~��v�/�I���«�`�0���si_��K�T`��X\U�f�ky�bW|\~aJ���b�ec"M�E������;KuǏV+��Y�:�z��*:
�S����Xӻ���p�J�f�e�L����+���
+!��3�*�'

:,�*�>XH��y����P��.�X6a�{3��v��y��u/gS��UX'e�5��@�0�j�ʍf�S*�c.�*�
���ʗ�Q�(n �S�'�
�N<
+
T�c
l�gva¬��um�D���
�6Zx,Q/d8(��D/�:�޵z�6��p�oН~� �eTPA��_����!{+)=�GJ
v�QD4g�Z�p.�����W����
U���	���,\Vn;
�<�-��6�� ۂ�
J��Ԍ��x=���Y��'Coda���Gn�,Vq��n�sv,m�E�I����׌�-�l���|*�B���\��{�w�ғw�p2�a�[q��d���X�����Tt+c���يɛ��4�N:K��6l��۳�GH�Շ�"��I�F��)~�O	�6�!��p�|�|1��f��$��S���12����%�S}���2V�7����j��̘��N� R�N5᰾��Dr<%�z}
��FZ�t;_�՛f�����oR@�g�P�6��r�o*)@��(1B�Q�c�l%�ai����2��䣀�ī7�$/U�� n5_��_аG?���?��L~����ze��X
/��@M��c���E��W�EG���ߦ��x4�4WE���%���#�q�B��Q$�D*Nn/f/-��<�=z�����s��
����
��V�����]u��[�
��d37�
v�涮\	y<�ۣ�1:��R+й��T���^>�w��<\¿��³
&���σͽ�$���3��i�2i�|K�u�>e�5
����7Zp����zۻ�/��L� 1
��(�]�Q��hD��/Ze.��$�{����'Y7��	��u#��M�<>�M!�-��f'�_d�Y�o���y�����[^��O�@��y��A��ẃ{�������|L"��Ͳ�-/`�g��;����v�,w�q�s�3��M_�`���RJ�,����t7ߺ}�Y*h�^kHa]�~�*4��j�o�������KZ��{�&?ߏ�@r��r����|�Jh�F`&�h��t��
/���Ȯ�:��=�ɋ���-Ä�Ð1z�p���ۖ���f�����������v�Y�c58V��R���m�
+o�A>ߞ�:���"�ga�֗,��+-����ݶ���8�:�c���:�6_�l��v��m���	[^
6ݑ��7�Z�˒�
+�:8��}��R��x�k��o���O�>�g�ls�S�p>���):�E��L�R����f�~�%����
g�)i
+�a�%����%��K�-G��������.�pySŽHv^�g/[��*��f}ɿ��'
���v�r�w�J?t�v���X�ʳܢ�����B����d�䨭=�Wٌ�V��^�qY����CZ��QZ�ׯjxw�-^�ܕ�F੼=���`}�H#�)m`�YVݎo�ړ�
�:�P�H*ʢ�ɓ����~�y�&{3e���P��ͪ��h��Mt:5f=��$\��-�ƻ��N�]���������%�����}����H��9^����~i�^���wB�r�F���s�	/�7���;1;�kfV,E��e�,mzY֔�X�9/�[�-�/Fg}�>UՅ�����5ճ&���B���A9��"-xٔN�{��`����b5��B�6岧������.�/��9z͇��S3f�X�m�H5,܁�)5Mhs~~���7|h�ػX��{�'p�����}|��x4x��4��ڼ�RQf|�r
]a��?���l��Z

�;5r�msmlW\C[���DLm�ӛ�.{ [...]
��j|�
��`+z9���=�i��Ժ��?���X�E�ͫ���T/��i;+��ՃU�" #b�•���

�)
�5
z�\M�w����R엳�Iڣ�-��6���_�
fP/ŗ>�;g[��
+iv��k�DG���켲z��ahS��-��Y�Sv���A4n:��ڲh`DN*�B����;7�{�䕽�
+F�a�|�Rr��^�Nz����|y�d7�Ռ^�p�d|v_�_��6�?�z�2��tu^<4?���+:=a~�h�h�(NEN5�F������F��
�m�<���2�����r!
�5���!"b��,�R]��x���p�nK�����~���|����4Tqo�/�_\�#<����bc~0��j*;�f誁O��1��������T�[�W��ٕ�Na��,���m 5�T��L�_-�e�����&6�]��v��UE�%-�9j����Jx�4ޥ�*��1?����@?&�bO8fg��Φ��̥
�c7����1��#��&��?7�کf��ؠo��-�) x�
sv�7c��V[/I-¹�H��+����A
+	q�~@�'
+��`��׸-'��OB�a�‰���DYs�m�7QV7�����i���:v���`��oa
+�
��_m��ƵrG����h�EL��ܛA��ry&��5��z>�����%�kQl3���^��6��@��c�闪kv7��a-_f�up��,~@v'�/��,��r��&g�Y`�?�Ǜ�x���C�$΂Q��66"T�nW�mE�p	|'�?�
+�/�]r���J6'w���M���Dp�����Y�V��l�~�S��5[�:�
.>��TDGȥDG�X�#X�1�t[3s
+~q��[�
�l��l��-���
+1�[�����P�B��A���	Y�VF��P�Jh�t�� \�s��\r�K�zpkb��J�a�S�
��eI�)w�o
v9��w���t�^�H���&	�n�5?��7�qW��d���3�6�-V
�P^�dž�l*y�^��
���ޛ�&D���ߠ&&��>����0�6�v�`Ӹw�c��6��v�*mlY�m-Y�z%�J1��!�%|$9�Α\{Γ\�e�\i����[_�"����|VP���t��
�����S�F���)�FQ��R��ls-1�
^F�"&K�ے��٣�{"�}v�!c1b0�y҄���v�.S���ކ`�BYU�����&���}��e���xS��U���y}���Z].�N�-3��fKj�Ռ���x�
W�)ڻ�TQt6GH �]�/I�6'�(���8�
8�џ�K�if�~qx�����8�7��Eb�`
��vi�B���|3�� ����<���y��w
C��C�����p
��I�+ޞN�/A���H9�ّи՝�\�h�^
+��D�&�2����v�2h/��	����
�K2@�
�i�/lA|p)�ZG��b��14��P�zԛ��jZ��i%ִ"y�̎mѤZ+������/;�q0���4�^]
�".
K!�J��j	b�W��ɷYk
P�����#�V�#�I{@�7��+�ŢuR� �1��c:z�ћ��(�*�3��DR���yT`��
_�o
�<�7���4
+��Qo~=HV�_�
��l�n�fq��ZK�@E$vݾ�D��sg�s"�j;�����V�
�u<�������[`����7�Hk2��
y?� ���ɽ����>��
+�ԥ^����.��j�ZT��:�K��h"H���V�����δ�G�Is���>>���=ڜ����9,���8����
�Z�߉�7�{Z/�!������p:�j5�,TOPE����YE&3�aѮ��[[��qk����~5a:/�J�
+�yE,���,��v�eg�O�
�s�n��ѧ���W�vH��
�g�~y�	SQ3K�7�9�G��-����`:���N
+�K�m�T�E;���?tQ���5ָU_
h��ChS�? i�,B�9j�;���;����uV�Q8�::X��\�:�/�bT���&��d0
?=�R�ʪ��_�\�H8�U0��瑂.$�:�̖F�J
�;C�rp��[��!
�
֬
Y8ua�0F�A�,#�wn��v�iWx���f��t~�ta��:���g�c�n׭����bd�
�fN[�D�c��F�#[G�Rj�
�S
�O���nE񲻀;r��z��4�X��E-w���
���ԻxƂ�H� Ӡ& C�=�i׏�`h���J �x���8#� F�Ȍ���X��ps��+����أ3K�� C��Y�Qr�B�
+�����f�5Ŏ��zq�Y	�X��3�:��'H��ʾL�o
��v3F���
�xk��_� ���sKU�k��A��b(Q$)A$@$��z���������saw�5�VAլ	
J CH��elo �5
L��C�
,H>����������ؽ��Iz�rI��ՓTm!I:RٌXI�qo�1�2�}�
+�8N�����i�o�m5��N�a�P��.�&	�w7��8�?�6����>J�;�M�R
˨
��!�Xb��f����|����w�]�6�[�w���,5�wq�%�y��y)N3�,̋��~��됤��-�K3f��=����� �k��Y��/�����G�z��.x�7E���˥�Ě
$1L�^1<J��ry���&j�1�&����B
f�Z�s���W�֋�{?l%��o
<����3+Y���$7��_��?�@�unK��Y
��B�V|���j�bU�iߥ���j���3P��G�{yI�����
g
+��%!�?R �)��^
+4���G+L�[mn���s���bG��#���C�W���O~�A�[��
r�ًn�W�x�.�8�~�g�����Q��יgU�(w�^�Q�<�|r�����p9e����f�}ӑ/�3�\vj=�����_g�:���r�}����u>ܸ�
/	�
�s�QGFT�Q�Ǿt}\��둋o�z>\_Hl�ך�;a�|rg��Ģnz��oݪ���\��'*��?�P�i�q
+ȅ{
 |~�����?dqE�o=>xin�	�\H�2f�4���/�2/�O���^㊷$��9�\8��t����	����JY�.
|���mdRx!��9\�J6�i`~{|�����4�S��j�����ޕ���9޼�s�?d�%~��/͗�]���s�����Q��5�ܯD5͎�3�[G��C�i�׈��"
����"
�Ph�Ԣ��7H�A���r��z[^2�7�Gw?��\��5�v��7�+7_#���Z�ٺ�~�W�Vl��#k����XtӼ7;���隰m'��K2�P{�;
+�,2Z�%Lf|P�n�/.�-d�Z�p,��C�B��nS(1��P6q��l�k�Ul���G�U�T�+B]?�\(��l�ZL��.�}g��d�_Ig��Y���|��M�
���m[_���dsM�����a��S}+(�s;:���
���6ƾ]Z?���*��IW1��j�!�,�h�V� 5��b����p!���c� |��k��QI0��pa��g��k<ެ�Ҽ�t���v3��37zM�w��Ⳅ�>������bg+>�9���fqZ�K�i�}�cy
+S\Z]V�^{!�Pd~
�ȹ�c��e���
U�	�+�Io#cQ�z:��:�/�
j�0�e9���2%����u7�*���B�9�0��bDT'L�ٔ���۾��-��jT�6��2d���~��O��]�FaK���^s;iϏ�3����ńՁ�\�h�5Uύ
�\��� 4rӱH`��yU�Q�2ګ�	j��!-d?~�*�S��S�hy9��ޡ<@�����ӊ���jbA�Bz!�f�az��G6O&���~��J�4�
 
������4DbZ�.�"ݞ��V�pҶ�P���S֫��t�@ci���%!�l�e�GZ��5'�}
���U�;x6��λ�NL�g��&���h~��w��gi$k��?�u��u��Y2V�q?�
+�W�I��n`c�A}Y��)�
D	�K��TlG$�z,��6$P��
+�\4�|����}3K������=���/�Q��H~��X����uJ����o-E�����6��\4�X5�B�Z˝F~*���4_�ۤ��(�e^��uHL�%�
֥����t�
��oI�
#H�
F��P3������
��O�n��A,xG������a@��߱*s�2��Î��`�1����)uE
��n��(�|��'	��7�Z5Ra�B!�B�1;��F�����bD^$��,�

0�&��Z%	�Z��$cd~1�����K[
T���,�w������e�,�q�4C:i�p7D�
7Z��޷<��D����@필@O$�k(
����k:�qI�~Fi]��S��P�E#G�z"L��Y��qk���@3vc<*�����n~����j��V�_9[�c^��ʁs�r/�:�wl�ƪ��i۞�U��9P�E���D�^DY��i.l.�z����(�hT�Y�7@��)İ�^�b��>
�1q�����F��
���1L���0�!���ZL�?.��ڑu���6o�=��y��gc�t�h���.����jZm(S����HKK�>�ή�"����
f9����76͐S^Бծ�s� Q�zq%{�wM����;�6����h]�)�лm£��Fmn�9C��
+�מ�^r��0���Ӊ��4��;� ���S^�H+H~{X"<��Š����$K�(�h�l�f������+�3�k�g��9���!
�Ʒ�0�
�)u��v�J����fg�w&C���xq��VҾ������d�,��#?q���x���t���
�M
�ˀ�V��<'���9RM��)d<ˆ᨞�	|3�M�N�1���a3�5ri�����������*268��]���� kLW$dK\M�s ���F4)�&�52%d�E�c����v_�'�eT�#x�.��a
G��8m5wy��p
��8��vX
�h����c��Cf�σN[o9\?�a�eT	��#y� �� �E�h������7���a�b��U�
Vb��`�:�bT����R��7K^S��ت38;[�)\=o��YY|D:���cXN��yR�.7����g^�����}t��&4�C0�ΨrI\
�9�#%f�'��I~��K�b�X롋��E�SKG��<@�X@�*A"�`��@�����I�#�`���;��1Y�Zaq�`���!lz�z5����꘸r�Q��ΐ�,�~�^���Y��]��A8'�A5e
��#-b�b.�w�!v7�Y�cȩ��x<(!���Erʎ��Q![Y����6�OdP�������?l�VQݐ
Q�v�E�#&��e�G&�ɸ*�����
��0�B<�y�J�EwW�F�Rg ��89��
q�����%�96'[k�B
+[䳬
*n=��{~�k� ݣ`�YP��Bu����bpm�A���Z7��� 
ڊ}��e{�&�Y���ҧڨ�k
`,#�� _?
�v�A��x�КJ
�YA{n��]�£6���@�]x.�
��RT��*^!��2
t���������
�u6�u����oȒo����6�t�������F�:��Y���b1�U��8��t!y���
����U_{���6�8|��d���o
�
�'��W�
n�w�����<���^���g,
�^�i-���|�e�}$��{K��Ug�6W�InڟP�cʼnsc��R�p	PP'6�� ���Tc��s��I�/�l�^�X�z���O��{�Q����n��G:�!7��[�Q��
�ml��[in�H&�7����,T�b���p����Q����<�Gb��֡�>�CǓT��P�cy�����h��˟�ɂ?
��zC��o}�P"����K
����ܠAk@���&%��p�o����6�7�%E6ʄ�׃O���;pQ�7�nM:)�Zcz�T�ܨ�M���ŮV��sT��V�~ ��1t{,�?�h��z ��,��ݙ���F��>�N�&y�e
p&hq��}�)'�������L�W�dr��,?�
c�ͫ���'H9��ò�>�2YB��'��?`i��ĥao
+��O�_t��Tdy�-�*�\�
��"[��E67��0��B�^�P�
�����d���7P�bh)���@�A[`6�4�D'�MZ�z+NiS�"��B0/Gp,� ��5(��-�^�AAZN�B��g�ƈ�����oψj�ީ��Jz[{`VK��
0�DF����
+��L���?�o�`�SN�b+nT��&��7���T���’�W��
��M��[��krz`~�P�i�0Ͻ  u�e =(
 }��F2����`h� `�
0v� ��
f�4�f�
 ������aep�e�,�i�!�}�V�@�Ŷ5גFe��V���P��QX䑂_8�w�\<� 6�n l<� L�. f? �> vU� ���
� ND"����[O��{ f9 a�c@�� @� �� �J�"w
����R%p�����ڶk�\}��?*�r�Rr��#���̟�[�/�`� 8{���R� ��|�� �<f�+
�@T �<�n d
	�vI�ߍ�]���,2�ɷҋ��?����N���J�un��
l&)�^$ɛ�de����%I2
@
�$t��`�����X&	�t3�0C�z?�lo	�;�׺�_y�/<�ӡ��;I��M�
![�.$���@���@����4v�!y�Y�q��b�fɻ����Q��t�I��$���$��J�D�,�]7
t#�3�,P'���H��ךlF���vx�`����������X��n�ܚ���c���Α2��t���>�<�axy�O�H>Dj'��q��#E�7��f�5�3L� yO��"����*x�0�_B���k�Dګ0�gO6��GЏ�����"���wr�
{q|k��X}���/@�'��,8g�ל�6,��
=���4��w�K�
+V�
�,ZS��-�O��%��O����O
�N
+��?v
��C��qxo`;���9��nZ
3���^�T������K6#
��b�z
���9W��-
��2����	Sw�gdEz����cwޕ���6`��|��"���,����~�[���o=�_�����|n?lz�_���T~Cq�rj\Qp_(��+�4<����[�>n��z����.��ao�7�f>��l�]/�#���b8s��Z, 4N�)g1ۺEm�-������?� �]� Z0R`�e���:�dm�M�?<��s�������<,_�S�p.
���
�IӨ�Trލ�����:KGy�
1� �x�d�3��Ӽ�	�ߺk��-V��Ж+���3���F
�榫;��֛�k�!�����,22
o���
lXin9i�y�Fya]�r~.(�uءgo�5�}�4&� ��i dM��5���X��-�W7�W���Լd+>�~dG�
��2�[����__���3��m+�\�fX���-�q��C;Ks㑑�w��~R�v���uq���H.������n�;��ٖ
;����6v���>���-�

�����o�^ʩ�Z�ߤ�^���W�@��f�oζ��-�B)Y����{���OL����:�r��S.(�c-oq��.R��ƒ���[v���6�;�
�	��윉�lc����|WV�������v~&�
�V�y������,��b��7G�8;W��#m
3n6�fO��
�it�(I:qV&�G����X�g�j���h9:L
a[���{�/���Bz�/v�U�F{��ͭ�����
��4����uު'���|>�.TMC�T�DZ��
���z����m=����Tw��R]��#%
O+��ET��#���[;�(dr�M;\�gɂ�-��'1(�\ĸ�
�
jݱ7ڜ��Ek��m��\�'�6dm��1�x�ȝ�=��n��w
���6�#�k�*{V�Ӡk�ӊ�)b�#��8?�lu@YkA�ܽt�����5ʭ��+OvwlM`�@�fn�t�(.�q}X��A���Z��|
+�
� �x����
��c<��hk�����K;L�
%Vv��*��N%�˗�/���P2X�o���YćiCx7ԡ`������q��oٹ
+n{9|�Ij[�}�g	�էm�6x>|��ήG�i���꟒����XP�2��f՘V_
KiĹ�dZ{�u�>�p�I��_,T�E<资U�Dž��
����
��x7�Rte��o��/�_'�/��
�É`���J�����dG4l�Ƃ�M>fq�����M +:u~w���ƧQ��(�~�`9��S9��
�Q:6���}�S�Eʏ������k]
�ĹLJ�"��@J���떓�S1;c4[��ڍ�?�?�����1?���t�ٻ�Z�������y����Ķ=�T�lL�д���3J�C��
.*��]S~@�c~t�z}�c��l�E3��S��G�Z��
����Q�=����2��1@&��r/Cc�����z��e��;
=r�����A�Ƣ�9���|q�
M���6��r�4���l��^D%l^
�@��eK
W����F�a�Z|�lx܄2���]��n�R��`)�A?�.N�ٹHc��z���t��{x��:�i������B�>��K{A��mϪ����O>�
E��s�*Jy��'݇_���_mƅP�1N���g��>)rG�;�Zzkƪ������!�׆ [...]
|+��]Y�_����~�V�b²�MW�--{�SI�����5�	
��'�ۃ��E�|ā<��;l��
�����
��k�K����7�1�N?��E�U`;���q��$;e�����W�Aɟ��`ܻ��Pk
J��8Q_�^���ޱy>82�_�׬?׫d��)�t*��֡@���Yp�ǘ���� j�
��4�DY�t��Y.����h����`�YP��ơ@b�p��I�j�$��!v��!�M� tr$�FHsϘ
����v�'�^�X�i��B���f�x8xM�
IDq�
+
b��d�? �?�?��
@l�Z�=���$g�4�l�!Ej�l4�_�l��
)��/�Ѹ^���_m��6Į���щu���9�]5���ہ@����jʓY9��l�T��tne��jO�:����f$D��o.*G6�/�1�A�r��I��8�(�䨁O��r mi�>�8
9?�-�Y)L�����(��$�|$A�2��E$�G�(���J�/8�j���,G�c���_t�`���?D*y�#�SXs�d�2��&����F�
0
:+�� ���k�d}
+s�$j���kx��X_�]t��HZ�R�
����v�hȚR�P��!���^�������?lq�{��U;�f���j@y����������t�^�.����t�Z,8-�A���Hi�n'��W(G�0��1�ˍ�WTP�M�v���n��`�{�8tY�R��n���
��9x\_w�q!�~����~qu��t�-.����Վra����mTY��J+j�y-���%N�{Dt��;�+���U���
4��Q�`O�
+�Y�#��U�3�K�m���!\+ⷮ<��M�w�̀�Lْݙ��Ogڶڝi9�;�����Y�u������omL�Z��fc���Ww.KwC�Q
R>�K�w`,4	�-J«�d�6�H��4��X�{�^�{#y�����zw�v'�}�9�s�N��\ۆ�g���{tk���}�[�IZX^m���k�����	[�
 .�Mil�Yo:-�-�W�Q��ߙ�S<P����F��Ȧ���RRtzU d���11�h�i���J]e�iv�@���6=��<�6���zAK���{�i�r��`:�46�Ѡ�� �������uOs��7v�_~�ߍ%
���e6F:�j&�C� �/p�"�
���l���Φ2�e�z
��(E�[I^
[��9n~ZI�\]�`�Z��f���n>�F��~�F��M�|�/�F5�X~�jʬZ�?e��4�i匈�ʹٯTN���l�s��ز����<��p���K�2��[�4&�{m�}���n':X-Ko�����v�`]O7�z�NU���2�*zS�h�g��=�覎x��*��N���.e��Ki����-4�Ҡv�K�¥T"O�n���?�u�4q2�'��z0��x�]�P������
J'�5s�V�����Ϊʉ�ʯ�K����%�nJ���r�إE��
7n��p�����Ț ԏ�B�Ⓜ0}4��3��3p���W~��e�;���:�K6Z�֠��L��k6Y?�j�.�q��
+h�o�`E�ϭ7���!;\U;
o^^>�Z�
8S��tf�#�/��j�oѧ0w)��9���r]u
+����6��b�軅E�u �G���[g����/�bƭ���~�j��X�	���&J��Mj�u�gvn��-;+W�t_ܵW1O�
�y�4~���rچ� d��3��,�-�l� 9
 �8y m�� ���*])÷tɜ�*��w�}�
E�
+�a=ȈR �
8�E�sу�����%)6Q�*���♶���R;�q=Ѯ[���
+
��2?-^� J�&�n��w/��
+@�
�r����+����	`����N �Ǖ �K�2�' ̊ .���%-c���yd��s��F�Y>L9|���.Fqj
>K\�5
���8A8:
+����+쯶���9��{Ƹ� X�m�"���oK�l�x=ە2� ���Th|��'@0� 3g	�O� �� Hp$d��e87�lA��&��o�3I����l(&ɸ�&�@�2��$�a�����bƢ��ē��s�$��������k
E�W^�ݧ[?O��8<�����;����=�Kw���D���ݸ5�W'>�`�^a��N�H�CZO���$Iݓ�$����ֿ��f#�Ͱ�Yp�\�T�8"	��/*��O�p
~�8����#�6�
�Ժ��%�&���i���y@^�þ�FqQ���R�2�NFt6�ɤ�:[���L�c�?$o�V�X�ⷞ����D�*95I��EÁ�$��o
�*�KYx���8�u�Q�ڿ
�=~k.O�x�9qqg��F�>���9�����
UW�DD�?�8҇Ӻ�=Ny�T<2O;���?@�@ً�@��
vv��=���
sJmy��{'6y�A1k^D����W0;������wQ��[
!*�8��dzع`8���D��Z�>�=�Th��#����G�C��}�$��d#�K�F]k�
�ʝ	��x��������?�ӫ�K�������@�����o1\����:v
��k{kC��jr�����yТ>'&�#�b�Ø�6��}
��wm��G��p��:Ƈ��d"�a���p���G<��w����
�85v���ȭ�j�����C�Y�r�!L�I���g��&�ӟ�kY�M��ryM��9'��c٬����e]�`��g
"��3X�/����7j~n�hm
�o��#����
,DW�v�,�֚��#���末@k�L"�iq+t7a�Db���K�y�BƘK��BG��#�5��;8S�;k��b�5
+�KN���c��[���/�B:�N�HT��a�H���o�
Qި��Xǡ�]�_=
{6K�srv^�g6)��
����}��e��P��a7\T&����w-s�K�=N�"ݏ����
�s��q�7`e�N(��Zw�5��WYG�Q����^��o��z�O���b��۩ӻ�6�<��+�3ok3RA���W��u���[��"���2��=o�����L�i`ƽX
��#����/�>�xtY�1~�5/�C�..y��,՜W�تӞ��zV
R+�L�l
+M-�54�[������]1��9�8��j<;Q�k6�y��
+&
<��]he{~�FYv�L
�Bm%|�Z�H�*�
�?�o
+�#�U�j�-��cD���4꾫�
+^O�Y�����r�����%���~��Ѽ9�(������,������f�'��N_ގ��^e��Z��k*���jԔ�>'JT!7�p��j�&���4���(�G.��C�s�%���;�v��
���G>�mn��m����r��sYɿ��D{7g�
D�>�
��uk��t �iڐ��Tw���'�������h��_�Ê)LZ�i]V�-*w��d��B��ه8�nUq�%㻽�p�êp��y:
t��'9|ec
E�\	{�أ�_�)�iU�m<-�����mx
Q�!5PK
�M++TP�<�L�,aLZ6���
��]G�$#�/�\�"�9����
+�YȲ��{��û}
�Ay�
�t��&�K�k�H�ܱ�q�V��Z	��2D��Q�n���z0p�t�6�,���Iu:v��HV$��L'"�K�32LF�d��D|�|]ĉh)�F��3ޏi"y�n~T.�|�E?��	_�V���/pҬ��$g�������\��-�|[}��
*~ ��>��Sh�;�r�D�@O�P`En

�)<��::�J�n�WK�O
+�i�qw<v��T��8⮘͇=����I+�ZZa�Ga�n$0WN�
B>�޹63���p.m�q8x��{Ν�k�T�"0Of��`�����V��ؙ֪�hrJ�X�7�[�mӒ��҆�:>�c'�!�b�#F<0|���
Nf�3��?7l�Z�3��=�^Q+�3��(<�����#��x���紞�j}i�q�m�Q ~�1�N{��Т�/#��{��?��6V�I�z҃

D�3z뾒��e-�������|M���|�	�������h�~ Ғ���p��mH��<�A�6Em�4E��%��O�
+{�
��4~���ڃ�F
���Y�.Q4�?��>���4��ˉ���Ҝ6"�B!�.�R���*�r���@�kU�
V�_
&޾Q�_�Q�|���̲�!	5fټ>�Rú}��	�P�A��=$}s8#���H ҟ7�����c�\�w���ں�����E�v�J�*TZ�Q���
�@��m�YWsG��>��޻s���f�۶��U�~v�M3V���t�!�oj��KT��2�L��{p$+��&�ǽF�ޘ$�|!�����ur^$D+i|��~r"���6�^(�z��6��N�8�}�p�q�E��n�Xq
+�X�D��m'%��$�@������8Na�n�����A�0�㖣;�"��?N�޺� �W1L�y
+���
v1'�l!��~�[�C���-��?�c
���m��
F.
�J��(=_L��l�Q
��Ի�^�p�ܡ�K����/���`]}SN�S�@�Wp!�&����	5 ����SUP�5Xy��4�c�zG�=_D��G^-EF^m��"|7���P�+��4����
�6X�F��u�a���q����@�4x��}�+���L�
��=a5�]g!�P��`�ޓT�HA�C��Pl��çc�������=	��(y�tYJ����;��j���T�T
���}*����_�����
�\�,�>�1�� �6�����=z����H/��x������~�h��H�$
��x� ���'k��|.�s\nj>�C�$O#V�(�?fG�S/�鹝��܊9�G�6�U
��R ������
+�}��^oU~���ao���i'��Ҷ��g�{�Ipn#�;�`�&�H�-�'��zBL���_*�5ޝ#�H:W��
)���۹5�n�m��~��G��W��^i��?#�(ꬺ��|����s�z��;ә�.^瘛'��=-w���������!nZM�>=0^*Y=�0�N}�5�
�r��D�
1�q����;Eq�] vlm��q>�
0����.�y���Q�
�dw_v�nC8O:����6�a}����Z�e

�e��M��GY�2ՠ�q,��QP�e��8�8G+Bw�iU�v�D,��~�
:��٠Z.Np-��ۻ�}��Mz���Ỳ���5�k�u�
j���6'�|��.U:�k�Վ{$��*�z`��B�Ǽi�{A�p�Wc�~��҉��
J���)6(�+�aE3��=�Pw���e}ة��+�kΟ���
bJA*����~q���u�
����6k�՝�zvӨ����fʐI�.J�&�o�M@}v�E6
+����lޯ���W
�V�
J�
�`U�]ի�N+K���BU4�����`�͡�)�
/�������|�W�7�
��p;f�]���q?`A�l�)��
PyM�\�������C)�	�R�z�Wu���U���F��*'�8��_%�.'6��S����3��+�EgRFR�\F�j�[��� *��q�ٲpg���B�W�T�{JXtퟳ?�[��F6ZsK��gOn�+�QM�
+t�s�!c at L����sF��Xs������>�,�q/�0�+��S��H6�H\q��
�
� ��Y�h��Fg���,&��w�6���~1}�N;�"2������g��ō�vw�GW���'ȝU��f���Tj�6'B7�`K�tA���q��r���W�*���W��>��l�yiW����)��k���\������3�I`��f�O �gKM��
��>B[��udt�*c���@�Ol�ڝ�P��:�n�m����&I���P�Z���F�vyf
��;�u���})CԀ�Y@�+n3��;�S��B+N�%m
�/K�_���~�[ʈq��T� !���r�w����/J���bY 0n�\[C([
��R�AJ��޹%ήI��Sk�n

6��[�� t��V?}'�k9#ց~
-2��w/�Y �� ]�
 �S-[�sx�M̢�� ղ�Ə
+�ܖ��
@si�5#�z������.��&q3�2�Yd��]�_�E�T�pw]����jw� &��
�,> yuT Q
@��@�
�2 �C� to? ,_. XOk�X ��U l�:�w�v�;�ݝ:�=�,�Z�
w�`�!���:V���#��4���s��j�l2�鱪j������ڋ�rޚ ڠ��l.�߽��map��
���M+���˅;���)�sf��%��Aڙ sr b��b�2�4 at l�@��
 ��W�'���f�$��B��x&I��$�� �g�gIB!~�&N�a5��4���&t%K�k
u���ӭc�9�Ϣ"n
~[�~���y�t�|
��v�����Cq6��b�P��1G̯Fy�e,��$�ᚅ��t���,��"�q��f1V�
�[	M�	�5�/*l4�̡�}��6��4��G��f��v@��MN$->��,Vͺƴ���&�<��xA���Hx�L�.�xZw�‰���
cqʛ�����
g�$���[�ՇI��vRh#��8�北�EHG/*@���s��p�}n�+_��D��Ɲ5Ժ���v��;�
��٪��3q`�ӺŨ���ώ��-	�����e7)B�]����yte"��
G��u�R���}�p-d�f��$�Sxv
Կǁ&Y�[�Y�:�ۡ�X�
��^{Nt��~�Źs��u�����
xd�
t��Am�vs_[���$o��ufm"�
՝<����ʷ���'
��v��:[*�c�|``����C�Nt֨
�!��a���������[�g+�9�.����M{���;� :�}��N�а�G��4�o伟�rɷ���@��v(:��}1�+� [...]
+?��L;�v���/Q����
��,Z���WN�RYo��n�"W] �����wc��.?
+M��
�2|�`,x
+���q9�|�8jvu����'��]�EG�>���Q�l�9����)��ǡ�����~���֑�5x�
+�;K�-��H>�+�'�_䫈�X�o���q.��
<��i�I9�=���t��I�B�
;2�N7'kdn:�h���Y��y�����
+�
b���6�����Xբ�Qw���d���ؾx{���f
+����fͭ���<�L��×��������8�F`aߪ�n�~�����:o[M@WH���,)��Ah�j>4���i��	�5�y��
K����4�.F�[T���\�`�y��fͮ����g�n�5n��a�u�/�g��R�S��R\�� ���[��M��?��M=��O�C��䒡�n�F�6�բ�y��#,[;l-K����O��Խs�����x��b��	�q�����H�?��E�!���
�H��n�8���e2�vj8Ͳ��2�ȊR%��xH%���j����7�3��ە]���w�
a����p���xQ�A��D�敆��}��H����z���J��מ��tJS�3W���fʥ�P	����\:�OPhҸLa���9yJ�6��#�R��2��x�ڥ?n�L���[���|Y��i���݃M
ۛ���lZsf�%��͞(<�=�Ooiyl�T���9�B�|����� C��W�Ϡ?�;�y-�QJ=����$'$�_,�3��k6���uL���� [...]
+�YL��(&����^��k�ϵ������yQ�U5�貌�-G�嚞~+�}����F�Tᒍ���u�,
L/�
+�(|*5]������,���E�{9�X+��m��

�
+�;�n
+��kU�_ċ�W�N`_�V�)N?��9����A�2ƽ�굺 g�ms^��*Nm
�8*�/�l�44إR�e��]�t���g%]���d���I�v�����`�S���|7O|�`o@��&r����M�N������v!o
+�"6�|�DO�G�|��p�vff%hm�V�����e9�eW����0�\�������9W��C�Y�ψSgܮ�W�ڏ΢Րs�y��&Q���e�Y4�9��F�s\מi�Ҟod�
7�g�7�[
-�9��Ƀ?\V���
�#4�΄[�>�����.l����������^
:t'otQ�W�C��[7���S�~���5J�2�y�l&6a\Y�5:ϑ���U]纇��b�SM\ZG�c�?���"{]�5357��k�����?�\��/�ܨI��#p�)�F��m
^����Yg��+�ͭ�]g՘O�mk������B���̆�q�>r�@��L�/ä6r1A��T�A+Ps��H�w˻��R|�Oy
`�-E�%s*�2tͰ?����a;Y-�E��S�ڃ���v�+w�B��w���I����k�u`�
lDR�8��4cf���1�[��?��M��[]¼��ǰ:��05�Ǭ2C�)�'�s{ ��v-���MBꭲxDʢx�U��XB�GBt2�_~��9<d���G'�Q(
��0�@6
b��������SDq`�kZ�'v�6��="?�CZji��5�M^�Ha�j~����@���
"��1-���,yh�HHL�Ār"v�&B�'
W^ ��Ph��Yhi�q
���]��YH�hw)�{� [...]
v�g,�����s9}
m���ʪؤ�jT%���E�ڨ
]u��=��Ҋ�	�ȍ�Z�Ij���E������'{��rO��͚Cå��r��B���H
�*y8�
���ø�P��G�vV�萏�^Nx����o<eV��
��h(�ƞ�|������0����,��t��|'���r���_��"�\g�� ڡ�0�
q
+I7P7���B�h�a��;�L������x�+�h�����l��]F^;�)ϛw����U�4�Z�6о��)��($C��ƃ.�j�����JoЫK;q�C�ezD5���j�Ɂ<5N	�����c"��D��֯3x����s\jcC9�����Nx
B'����Iy���掎����m���G���(4�X�v�n�fil�V���U�-��ڿ�l���泪At
Ӏ���>>(�'8��k��SN؈m�1�9����
F�A��ȒkFa�׊+|���(F�
+����HHy~� �@�FU�sG�B����|�k<�P���W�K+�C
�nS�ӡ#����HW�-��v
��
U�2�>�,{�-,�o�_�6�)�ݔ5�T_g~��.t
UO�תȧ(TUq*x�4��v���
���d���a�P>��\��@��1�P'�k
Qh�������V��ZzJل��]njm
:�Ad"i�YεH�Z�7�jm�r�&'��X�e��S�ч�
+<-�n���w�2�
ҟb�¥�pl�%Q>��dNw �ج!�t�������ہ@��CJ�C
+ ��
+�n�k�]����ص6������
��a����,G&����M<W�Y�W9�Y
X���
�R�
��_����cT4���iRRXBP��� ے�wws/���4�&W~?g��䷒Ô�$�1�>c���v�O�_�Ck[��Lx��!k�E�.ƨ]�-_��X,�CNf�hz���,��{����+��
t�����ԁ�f�v�
PG���P�;xX�:���Z-πZ[�65	P�o����z���F�tW_���I�?��ʞ$���9}cOi
^��8wj��}ԫ\�*
�X�tɑ
+�g�ϝ�%�)eL���
�w%�0�)-f�)���!�l~��-F�Y��9'c2�b&�QK�0
0���.ƀ�f�?|P�S>�K�lƿ�V�����:��ywE�h�����r������KNq����4�(O	0���|I,��A Xf���
֓V��Mπ�W߀sp9T \u�1g�����
�2���ah����r����1G�]UݳW�z��V�ÄxU�-Z�i�k�{%�3��xy����
�~z��
8q��z�gi�}���	������F���=�G� B����^��[ �/�3������2�g�%��?��Rk�	S���;#�
�Cr�����qUaΧq�P.����х��������� �ߎ������K t: l.	����/�v��ݽa@L�
���H�
 Il�@�� #Y �m\2��?�tIi*�������n���"��������j��Jˍ��{��wO�s�<�'܂ǚ ݇}-��
S��Gm~GBvs�������
�	 [...]
+�gt��I���!
痏�����q��
v<E�;jNܑ��w��Y�a������:z�_{�s��,_�KX~�/��<��5ty�6��Y�v^�[DOа�
�ϲqة��Gxzjg�=;�oSʚ9^��0 at 3"����i��b����w��ޞ<쳿��I�|Æ�-!�vz���%,�P���J<����{�Y�=���
�d��Y^�qp���?jN�ǖ�����m4��j�,~9-*����>a���;��;���4m�kY
{��E}}�X��׊��B��&J�{	��(΂��O�ޛ�q�
�p�<���r��.6��\��W��~����봵��Rr�ޝ��X�GUi|���Z/�N�	-��
ϸ��!~��?�����7U2⬵i�]['"�HG�^
ڼK�Q���r���fp}G��`����
L��O'k�
+-VQt��a~�S\.$^B�prX���Za�ANevtz�
ۯ���A�4iOӞBܦl���<��$

�/�O
�mk
K��}��o�{4������dB�kH ����F�/���U�e	ݛ
�ur��Ҝ��Kwv|>�.>'Q{WXF�W�M{'*��C�5	?�����*c��f~�c0��#Ѩ�loCK�
�2�@��/�C��(��!�
�œ���x
+��ɪ�Þ\lvT��YO�[�\�n�E]���h�^��={'G����iN���9k2\T��Tm�'�?�U��hvo,F�0�.��uXv��~(Caշ�A#=������1���	zLI������S���'�t[��
+�8�z�}�wϛч��sY��ʆ�������
�4
��D�|�c��#��b��
f�p���Bf�A�i�V3Z?���9��8�z��u�c��;8q�.?�V;�χ�H�M����]kaG��	���v�����.�d_�_��{^�y� ���v��DI��LR>����r���S��1��q(����,���\����>.�
;m����zg<��
 
[�h�
ۅ*<k�>�k��ɩ錏�f�.e#�����I�/�f�r��m�ո���$7rL��c������������Fp��%�Cg��'F
�;%g�c�޹+���3�{�}��j��Y��lm�V)���M�&6+ϛ�G%'�}k��Ԅ�'j��i�N
Z"?^?
+�
�ê;<�'�8n���ܿ��4n���J���4�����Vp�~Fa�
Ct7
V��?h^NF��g^w��;�h2n�Ӧe�.�f�z������[�"�[mt�l�G������W��#z֮�Q=
�6��ƻ;FuSt���WC~`���`�p1�_�W.Nm"\-,p�|N4���m,��?��}�Vv�����v1�yM��t�[���]7�o��`��
�zꦐ�s%dž��J���.��_s�1FW�^��k�3�o�͹��Ng�H���o��W��|�1bS�dL/������R+��M|9WbٿՒ^W�O�����
�ˁ��-�����h�}���"W.�7��ޞ~����8f��r��7g;��v�<by,F��!/��ز�x:oT�>֓���{�M����j��=��Y���9��왗��~�/L'~;	O�����;ms߰�^w$��&�6X���aףSڬH8tJ,
�ΐ�X�s��������4q���R�dP��o�#�S��0�j�t5a�
�I�R��PAp���yr���2
���v�+�M;)L�u�r7��r��і$�{ra�+]y�녦��5p���n[��xh6���q�[�J��~k?�:{K��s��5���{��R�	*�'��cpG)��B^�?�l)��\��Y
#�
�4c|Ȉ���юWdN{Q�o5u參Ӷ���B�
|9�Xܱ�kW�@�P�f�����]�?fG�
Y<�
g�V������U͑��2KnE��D^�XV.K�.m���T�33�v��#�b#��b�r�����p�p ��u�2�θ�8˒�>�<u?#lҪ�NA�n�uw��َ5�u�-	��8���[-
m���ǻ�U��(s,�bl�[;�v�|��e?'��IY�n�Y�ZEѓ���d"�$�$�G���F"��C��S{�x�߬�t�Ib���α3�����ި�k���Q�A��L"�k�{l�s�6�9A��tC�=�b��ྚC�O���xYKn
�õt�.�1�	�p�
�p��wyF�
�G
�s����
�6�
b+�������x�G���cq6��4ϰ�cr��
FC��������$�:��OY�B�3wF���"�۪-�:��P�G�9ɮ6�,�X��v�y� �|'
+<s��\HOx���X�����m��O�o��wV�1�~�J���_��������,�����'�Z��
���֡6��q�B�! �jD����G5�tIɣ��+]ġ�'�;�@��O�֜g���{B�3�OO�]y��񁨲�;��)2Q�1�]�ҋ{{E�!�ʈI�l
Z����b����lpê#�6~w��y���~7����Ų�㗄5ϰRB\H�&
�]1�'1�
�
�]�g�#�{6MN8_��{\���^�
+���Lo$L6�~�}.�V�JQ���Qu�Ԣ*�� ���=���lC\��{h��{M�P���R�����b��G�S�ݕ��{��a����7�!�
�-K�
V:�.�sd�p"{��O)�J�7�Y����k����
��U�>��UyG�m�B�w���z#�l��8���h&�� � ¯\��_y��_q��_K�)~-��!V�aZS������=ɥ���ݟ�S��qsMQ��!5L:�o�/[gsC���^���1C�G�rͯM!e�'W�O��քĘ��8?�'�5�>�����i��=�gᧈ
�����~���pFG�w
;ut4h������q��!�X�O�����:a���^��aȊ�5RH���U�J f~�rԎ�d��J"��8ѦM������:�Bq{\�
;�
hw����
^T�J-�tٚ��
d����i>��i� Ĕ6bR|�\e��)"&h-��U��ޤո��ڑ�ͣ-���lM��\�*4?8�&q��?r��@�/�ld��{�DЉt!Q�R�j���tTsk�W��β
�F�%�
�
�cu3sպ�+V�CU�QA��
|:�p3��l�:��>|j�K�dK�?�v�n�{糗۳SM?-�u�������lh�N�]��Ԓ*�?X{�e�6'�
R>)p��Z����_
�
����<���;0I�����ؔ���Rf4�
�Z�0������
+�NoH2f<4
+�]hd&3�D��k�:�
+���8��Uij&Խ��Ý-
WO�?(�,�]�<	�so��ϳbu�r��"�V^��#=�K�s�A�j��%h|h��<X��
�Y1z�Em���U�
���/�K�ϯ?�iމ�$��>H��F��Q~=_/��!޴�t��� ;���m���ێR�,���
v���7Z,
�c�߅Zu���p�����Aqv��
++t�ʭ)�ߒ&_O>r��G��b����
:j�پ,�/�3� ���0�0��?'@
W%@�&�smv�ћ�	��SWR�ԁ�f�L�e��JY��s��;���W�4���Y��N��>�	�^nj��H���%W.��k5��5@�
4�K�y� ������>��2�+�J�BƘT�w~���3<I �
+�r%
��d��˰O
�%~�3�ejn8���|ȏ�]���
+
�vWlt�E��!aff��w{!�f���޽Z�=�w �����
Z4��3fu at +�
�9t�t��z�+:����o
{8�<���Et��
#@�ʗ
��Ŗp���g5uZnD�z���<?$�'���q�Gj�
����Z޿��V�I)��u�_��
�m&�]�,�&`��ෞ��� [0�e�)`u�_�3f-���M��3�
u��z\� �=<e�
v{
���������O�
��9.o������©��*����[
��'�5����[��5t��[�#�p�:\k�\L\ϟ
��%
���g����B����I��*������i|��
a
��d�u!ľ�A�ʸ��mȸ�~��{��m�5��-%���_���,+o��s��+���
��B}v�dA��S�Tc�8�] �[S ^���O���$8���g؏��;M��WQ�UB�4U�QF�qy��3¸PG_Q٢^y��?�c]~����/
羣��ݽ��wd0���tް�f�SLb��J���p�A������KX-�q�{^<������R9$2���Ќ��?[8\��8Oo~���$�O�@?
vL��
+܎
	'���2B�k���?�W�\²jĩ���_U�o�w��;<�������N)��Gc@�R��)�
�����e�?��yZ%ì�O%�Ƚ��Q{���ƅ�wG�����5Q��%��q<�D�����9��O
r�?A�I�h?����i��G�I�E�ٵK
q�ԇ��9,�M�ݺ�C-��=������"!�]�:	�
���cﷅ����gK^핷rw/}<ieI���YZ��z�
���ɸ����� dik�8�m{��2��v֦�
Z]�cbu_K��;˴��*>�Y&n���b���^���+u��ѭ.g2{Fq��Y��/�t-��� ����\�y	
��
ֹ#���{,���mb������z���շS�W�p�F
+��Z��J��N/��^�ώ6��a;��k�%"O^:�������&����x�o�_dt���(�V��
+��쏗]�؄�
��^���*�6���>k�mb�V��8�"�q[��ga|h��}d�l<��.�W���߽ԦL�2&!�r&�m��ܨ=�^�pI�h��^��Y,��ڦ_�ʃ]�,
<���xo�?��k?X/�w�K�6��{C퀋h�ן�qs�V;�2�n��Z���W��X8;αE�n��io��'����ljVͫ�����
+V���
7,u�J�<�FX	w���Ʌ�~��̢w	[�
��߻�-V�rȀ�<��nG�n������$)��A�O�2'���|����V/�e�4���Z����3��4"�N8Ε�Ev_�H�0,�kXU�נ1����A��z_�]�
����L�ν�.7j�%�NG�	������y�j����2��+=!��x�
�n Uk�S�;������F�o���&��[�5���uꎿ�[
���8*vt-t�zc��f�O�Q�!'�9w^���#���=��s�<r���5�۪-��a��e��*��.�q$ش}��
��T�5�Y�j�'
+��z,<��~�a��a���d�n��sY��t�z�[ڞz��8�3�o%S��h���X�7�Qp��OԂ�U�1��`��^�,f~����q��7�؀��c�
LY�շ��Ī�+���,�	.��
\���C�
�
�0͇�RUW�`���R��7�m�]g���8';���^��bA%:����+474d
����a�>~���R�^�g�
�m��Pk�\1�����
+��ά�b��b��\چmY����~�V�W?ZU��C�"���tM��]g*��d�\9.�8�Cqe���T�����=�~���訅)ײG�Yoh��ո|5ѻ��}m���~}��M�9�p��q���ɶ���%��e��TΪNL��sm�D�l�p�5��;л�a�3y�35����BK��(#������󋀅�c����ɰ��7Z��c��3Vq��ux+y悹RiO���Ev
�m۫I)��\�g�>�H��~�ܘ�>�~�j��"ջ�}^g�JM�N����<��c������s�)�z�7EH��D��DQO���5ۨ,7K޻�o�rOP)��^~� K�t�Yժ��h��jG�8�!b6�(��4�,3�W�1bid��ꉶ���4�
�s��Iᨦ=ꦎY�|�CX����w5U^�z�l��H�^�EZ������n�~�����0�5t��"a�]� ��]`�F��N�Fo���=�������,$�VM�y%�,_�WԴǩ�hAj�������*�w�f��F)�6gyq [...]
+��y@��Q{��=���'�<"��Y�+��kQ
�eC:��k��hu�
�*P����Wu�`\���zr�S
K�[J�\� �~"6�3kN�/����_B!�ɢX��;V�=�G&�q�ߑ��/�?��</{�c�y����ެ7nU��'�Z������o��K2HA�PY��L)
��([�$K��aJ���
��
E�x��S�n�!^��[��wfW��
������8����xǾ!ǾXUg_�k�}��1�5��/�,q�E�Q}8;t'�ݠ��Y`0<@��<0�v���ےN5����
t�r?.�e�HUiG��(�DTϫB����}�J�=��Nx::�~��]/�����W�
�#�N��MљO�e���fT(�0j9�0�g�f��g�L������,C�k�:s$�DT�]�
�v�rB�No ~������9Ժ���M���̉>악V�C��0d��v's����^����f_'uȎ��+�����n�4R
L�0���*�І�h�U�FKju�R�7
�!�ne��4�����n��Htr�kPݴ��m�óY7��������6P���)�o|"
V�]h��lX�
+ܣ�W9�e�w2�2��Ja[e���a�ңɨ[���]fJ/�֖6
�+�>_���5
+�n%r��>�����;��
��Jd@�o?$݋= wx+��
��O��S�U
�V:�h22
���5�u:�
S�C��p�'jv�C|�b�J�e��}���B6Q^*
���2m*�E�r�����@����"�u�Y��)q|@"[
��.ޞ�c�
U�=���?zx|�B<>0�?ư
��_n�
Z�}�U�n
	��+{+ƃ̉*=�^�s�W6}k'&�k7z	�o����sV�JC�{d�idm-׉��
endstream
endobj
33 0 obj
<</Length 65536>>stream
+�&�
�~<�;<|���x`��q9�F����0c�Q��'ѡԮ�C2��v~�>�?
���ouz��k�ځU��Z��bU�����^�/NX�Fϱgj31���J��*|¦K������uh��m$��>M���40n$t��MPq���>�|R��f�����k�&2��D�7�H1�j�~bmD_��,
Y�����ڪ�֓��'[�o{�T՟ОR
�*��o�g�|ʂwt��P-&���3��
��

�s�J�
�}�e�6�rlM�6�Z�����qi"ư"�ef��jo�sv�OeWsЊ{J�
+�������
���^� �ܮ �����
PsT_V�y��6�&��q�U���i{�vu��
+�*W��ε�B<#�B߫�9�:�[�V�A���Wx��JMA5��S�p0�w`�8M��KeW�:��t�ߕR�H%6H�It�P���=+�
+=�)(�t��G{�:b�����5�ݞ��>-����b ��G>|�=�tC���&�c%�/�N���i휖��|�Xꟙj�k�$�"�<4L�:4�U}H����G߬�S����*��5�0ύ��� �BQ8�
����V�-�V�na6:��DSݺ�r3���Q������`��d���)����M?��.=+
�*�
������kQ�v�ż;�f<J�E
F
Ɖg
+Pӕ�kb���۱D]��g� ���
�o
�
 ����	`��<k �P/Ci5F~�r\��7�o�FGP�����|D��3���-�S��Cl���c���
��
��õX��|%t_ऐ)�,��k
��ϰ��C�Oz���������B <�9 �`�����Sx�Ȟ�n=��J#wA�W6�h��w�4������jh��&&u�*␳|)W�!��@�ƥk�z����	����{]�H��Y�2�f�4 ��H�Xϰ���o
@:�%�V d���%�T��?h� 9$���) �dU�p���P�4�@�S���/c�6ۊػ 1���p�Z� �#����
+`�[ ������b(�E ��p at ygP����h j6�u(����7�{�Z�|�@�����-�R �Tb��<@}�e��d]m��1n"��L��tӧk������^�>�T!�-I�Q4���E��ԓ���
�8�z�������to�\��r0�z
+�!s �r��J���� {�y{g�|�r�C̷���W���1:�ţ� 
�1S�{Ġsi�Ь�V�
�(M��\�z��G'K��z���

�⿥��S,�2%����`��>`���?{:p����� n=- ��р/g/�'�%�xY" _/�3&#���-�^����U��=�VK���SL{�Y[m��v�3qݢm�\�SS�m�K���m��[q�_~+��i�����5kÝ� ��<��N���T�H
+���R��<Z�n}�إٌw �(�B�Y>��g���S	���@��|����l7�t���WT������S|B�+����w�E�
���O��
��
�VB����WTƗ�m-.!<<ĩwy��Y����y�(���6��������?�п"�_9���"Xr�qn�{E�6z.*���>o�w�7Jn�p�JZ�1�&�xec�fd��{X<�F��돹߳�c锍+�	�G��~�������A!��b�<��]o��!l�s���5I�3j�

+����
�i���x��v;2����l�����_��QX�����u/ǣ��\�{��\�����64�ę����+l���ZJ��*���*?�{�������f��b����S|S���O� ^yk����j>!G+��/��9B
�d\T�$} �ޑˇ�e�q�S܄H�]��u-]��*���*?�-�
>�.�qr\8�q����9��ZnvtXx��
2j��2M�pk�ܶ��c@�3��$������Z):~n��;Ʃ�OP�x�cS���j�
�|�R��V�@��
�����wZY�#˲6
�E3�ݜ���?M�rk����Oq��p�IH[�q:h
�R:LF������\ehB��m�^��G�Щ�׌o�-|Bn閐����u���Q�w7!|�ԫ�ݗ�Z�&s/ǯf����q�Ӥ�~&�����Y�Y�:��
6�D���67\�mih�~�rmFN���`WO�����zqǿ����)v�p�v{"��2��,c����6���s�M�}?9-;�z�
��J3��Nen�4q7��\Z�1}
+G�
�)
yf�c�o���`g��dwK����Z�zq�\�I�&=��2OE�<�C�#�7���F��ݴ����*H
�\V�������fiv������7���o^��hQ��N��W��s+�7�cFQ�K�T
+޽1��r�>
�ƽN
]voMb�e�ĩ3T��#�g{b*��Rr
�Y݇[:=������5-������jc�7���
+£q���.\��bC��DF^�@���+*�ɘ?.vz�7��msd�:n���� ��AÃ�ߪ���v���^�z��]�v��Ö����UE]6���
��{
+���?H���Fh��c�A,�wm1�G'���i��ը>��Dq�����U,G��^Fo�y���^3]���6���QI}k���=���vR��uF^j���*�*t�)9 at j���C'�1��k���(�_�|y�.��ۻ|gw����^�ߏ�5���n
�^�
�6
�k�M;�
����� ofz�B;�5���cO����~��e����A3�}]�f�m�ރ���	4��
��^lā�xɤA{ln(�61�i|j�e��v��s�h�`b/֥�m:��Z禎���{�����VO�8Uj��z�~��ށ��Nmro����ڭ��>3����Si�f��p>�J
��Ŵ�.�y<��J�O��O���o
��g���[_eѤ}�9Z�a�%W���5�:�yVe���FM���52��af��V���Ngc��orE�#����TU��@���H�pӧ2I�,�(������cm��Tb���|Ҽ��]�&��Ƶ�/�/���^�:�������M2�W5Q��b�EWү���w6�,���mv9ƅ�:|W窸��ʴڸ*��
�\H��9�����J��7�V=�*�
Bel
�拭�X����q�������.��N�M��|=w�<�]�Xn�p5��� 
�w�cY�������:2`I� �P��(j��ܭۓ���D��ו�Z�O�ݮ�?E	����QVD��-
K��p�_w��'���m��n
,�E|
9�Ѩ�NN�CT�{�p��^��m���yx��F�#
t����2�TG [...]
7�
��"ҳ#ᨭ�BP����B|�:S|[VL������,<�K���S���̒I/
� {؉�C;�q�u��wՁn`!Q�f���=��V
�i�Dlz���-CY>+9�JU�Y5\���]�����m
+�#��x�t���y��7\r�_�^��9Vk���]�|nvY�]ٱ„BX�k���qI?
+�ipȠm��q��t�_�Ǿb�^��/����U&�%�
�z۾H$|�5����pz������nГ�n%\�z���N��>�x����n̼�C�+�	����Y)
��6=��kz������)����
���}���q�UU
��Xӎ����ԓY��r+���B���-�k!u��bo6�;9���|=���&�>�
�
R3��Sf���L
��(X�πx
ѳ	r�u�O�b�Q��GW���
PV����d�HYmS�,g��d��c���z�g�m֮/ݝ�
i�i�lt��G}�F,/��V�\�Uv�o
����\��?����Ί2�0@@��&��Izv�g,��N:]��K� ަ�}0�ʍݖ�b؃��LV'O
��G
TqF��".p2z.Ym��NX�.xhm��Xi��N#-�'J?E��T���X��͍�\�%O�'3���7���
%�%�ݤ���穕��)&p��SXr��(��.m��|6�Ê
��^�$�y/�x�qdp�7��5}M����b���IRvp��x�v���(���w���_\ű�%ܸJH�(��l��Xh�
���
V*�SF%�
�mv_�x&�W�N����D�D��B`�
��!⭫n��t�����z��
c��}X�
�m
+�o�?��sAUe��W�Q
+(9g$)��9a�z��Z����ϣ]tKY at 1��ɨl:8�ɀ|v�WJI"�L�.Ճ�t��������4�;˚�]E��/��}�O���^�:~
��-��f<&|ėn�G,�
�.��̡�92MW~�神��r%OKi�Dݮ{)�K��)�A���\�EF�݈4*|B"z�	��ĉ
��Gp���C��
+��^��f\J�jy2�i�~;���l���^/�|r��%��Gk�{>f��A������{���c��|uVr(__��D D"N��
+G��H#�����D���� �=w+l9TX��!~`
�t�NahUko��`B��&[��E�����;
�e��|D���i�*i�
+���^%��6BNo-8�O��$��t4��Nc.q+|��{<�n�J|��}�`x�I��'�5�T@�������0P�i��oιSS����Q�	W��\{��6h,'�VZ��Ȼ_��N�ąy�XOgj빑�r�!�^
�r/������rU��dZ�̌��ᐟVi'1J�����9����yȝM�
�*H�����"�`�[#�"=Vq��
�g�1�#�����#�]<�2�ib>�	�
���GW���b���u���q�K������*�r)�O	
{齒//�=sj�Ԡ{�SP�`~�6�7��>r��Uk.�!�ۦ8�a�}���@�Xp	Ⱥ����L����
+z�e�ʔ��3�M��w�۶9zu��]���H��	5�i�C��*�c±�*$f�<��8�Z����7į#����4:��4���[�g��_q
&az�!8��2+[Zg�9��m�:�Zj=�u�������jvR����U�_��,�v�"��� P
��!��U+����Ŋ�l��t��w��-q�����}/�NGO�7{]H�W<`��#ɷ>�52("
�,��
/ARu׀���#��;�� ��R���
1ST�)����-`8�X����t�N ��> ��*�����f��dG>��BI^*�9�e$
�`<YQaF�ƀ�c�^��vظ���qD
�������b��0����p ,��RpO�
+^��8��l[WR�\��x3Eg
�1vL1C ;qU�N�f�]��v�~;��@��̥���E�{4-3IJ:�j�0�
�R̵�b�Bj,i�A^�u^H��8�2�[�
���B�\�
8w�I�\�� 7sh��"���)�xy���. ��w}
�E�LqJ7���Z���X��Ź�ڧv�+�l)[G[,1�=�HY�&���
���Z
1��r-
����WONg`��+��8y�&�
CV���o�
���~5X���G ��9�Mq-ј��Xhށ(2T��D�i�x/��y��N�sC�P�gʲC���ok
9��C
bC��2�=�t"���3@�m�x�E�#�;T�j�7�G1l �r�)6g@�\O@�9 ��{
ȕh���,w9ŵ
+�
�ج�:t
*ы�
+���d�V�Dg�

���!�o��}��
+�k	�+���o�ѯ�ɸ�v��xP��(��
����wմ�p�����zY큖I�A#�6�H�
4)Z�����A=⋯>�Up�>����-;�z#<�\�v����
���ڬ��ʥF^�N���
m�|��
|���lu�SM��8�
�ռy��m�Z<�Ǭ��g���?�e-����
�"���P��~��g�A���@�����[i/��DH��
�'6gn�
N�4{9*���a���S�d�����
ݥW
+�,�;���g�&17ꆞ��u3�*�������k�����"�����������~5��4���c�>��x:���f��C�V��lCn%
�n+��`S���`o'kn�]�Bt����7�,{���x6���`�A�l�͜7�N��M�i�M��|4!V��8�5l\'
���t�Z��~��Yg�}9���V

��c
[s3�]�*��xց>�4��ܼ܋��|�̐��6-}�����ć��qR���u47�>���
����UG�Ux�wl���v�����'�
��t�?���8��>�ʡ�?���$ACr�:;���Y��s�t�Ϝ�{7-�3�����\l��(
�Y4�Yrt��H<���#�P�Ѕ(��t��ĺR��J؟ZA�Gf�y��owݵ?�>Y�;I@��:�t�
�
r�_����h�w}qn�!�/"�p�
���,�M��B��
{,?��mc1�����|���`��n�{�N9���]{U���X��$�שSc9<�Bȝ����� [...]
b�+�����yP�뮋�F�Xm��:����ir�Ӳ}n=�m�zݷn�̥�<���s��4�
��၅T����
d��~����o��CqZ��ݥF\�\��In5�����Ա��	b�Y^S��徔"�}wwHGGl�]b�#�F�s��[�����j���(M����o��
��=4\�7j ���_���}ͯ���K�?����W�J����`T.�W�w�_���]�/g�r�
[e��j�k���ߗ=<�
�g�3�^\k �`�K��H(
�W��Y<�Ҽ�n!
c��7ff��/�}����v�Z�x5*s�WνUe�\�o�rC_��\�t�UEV�}����ʚ��z�͋�24�����+�ƳS�g��b1i��|7ݕ�y�b}��ͤ�ΛQvu/tA�n=�.L>�4�h�{�C�x\�����V�.F�ڸ�P��Xѕ�~�*��m�U�-k{�����B�˄�^Ɂ��<�,���x�ڗ�[������S+^�4ߟ�����Ɵ��9m�:���X�|}1�
�Z�l��K}AN�gj�	�V�Jq矹���Ӿ���KY7�t�HirB����8��j��+��:W+��e�w|8��c���^��u.+����}fO�5S�
�������
�S�����90�lj�wV�Y7�j�~��w������2�W枕UV%7'�
.^�u��q�g3�ԍ����h7��b���a��ͱ$
���1�FJ�j��B���
F��c �
k\�P�*�3��t��������s����ִ�1jO��_��r[
'Ro��M��r�*K�Q7����s�n�������>r�������@��y/��$Qx�
[J�\ }�0�Z�1�wT�g�uS/�����K���O�f!usx���S)��S)'�+��ʦX[*��/��Gv��\�9)V�Z ���y��z�P�]e�4���>��������7�U�u�����ݍ��Og~�v��>[q��:r��z��r����͹5���u��p�(����
^>5hFn�K>B(��<�b�S�f�^���4���u�w��c1@	����%�M6�G�bn�N dֵd�̇��F�clL��̀kǍ^<܏�J w
��@�:rN�!6��"�XKV��ҔO�{:[�mGj�"
��n3�HJA��̂��Sɣ%�q"����Ha�_D��*��� �'Wy�C�T�o΁i�lQN���'�?p!s�w
����gu��8Wk�V������q�G�l����9�zRwN�R*h���༩����
�j�b�s�g
��G��A#�ħ��槖���A�:�
+_
~}e[϶ko��cՆ�>���s�I�g)���n�/2ծVYP
��‘����䗲�{�i�X|���+Q?�P����Bl��`A�%dw-��6v
�ե9�|�
����k��jf��x�y
M1Kۊ�[�.F����9�������t(Cn�goV�Fo
������kĂ
+�C�mʡ6�I��v$>��T4��Z�
��Wʲ~:5ޭ�I>��nq|�7ң�af��n����w֑� a�A]bvF��b?cv���̲Ē��E�����t�7P���yg
޽^��l
�!M5�{J3���sL*��%VB�N_��������w���[ғ�=�O"YvS1���8�܎TfW��LC��y�G�q���V���[>����˾���@w!Z`(�n�E틎�5��?�#ΑE����^
+c�ѽ9U��+݋��8L�t�Ρ_�
���#┭z������fv�ѝit���3G���[��L
�Ȧ�B�Nu��%w��Jor�;���r]R[�CRSr N
�(����4���hehzL�$�9w>����"�5�z��2����`�hp+���[�
2{��g��0�OUtI
{"��i�Du�ғ�?D>�'v�'u�,�� �ĉQ��&_\���O&
+�LIwܤ�;���Om���O�-;j�N�VK�as��13H餗�Z9!���֮=�N*mne|ҫ��
�*}:�M��]J)6��MH��^�'Fw�F�3�b=�O�SwVOGB��-�Q+=�3

t����1�c%&V��J]��;A�k�&�ۺrP�v*�7u��Չ�ZM~s�;jT�Z�Wo<3�S�/����un}�5��g�D�&dD��tqWe"<����b�L�q�+OO�
���A��3�TC1��V��R�#�
�;��b���%YA.�=@.x���

,�l���ƙ*��sStNM<o�L���zUE�*�����
���~D
�2;
���(U��D�ƪ�R96�*�i�w�e7ߐ/�<�`��q!%���s�{#��.�t�$��i �r�`���p����Y�`�����>�A�G��it��5$�ྛ��]w�*E����]pjחV�?��XW7bLuf<���L�+v��'i㢛Fx>
j(������HWou����x9��k
�vH�=��~C��BA&�(P��,e
�f᧹�̣�+SJ4Xu�N&�lF����L	f�
[1���
�;g~�#�@������NRT�6B�����kS��'3亃��V
���FN�U�Yj4��ot�ӆ�Ϻly�Y���t/���d����}�ěBR�X@|���� $@�)���gIi@ܨ" ����
��J�h�
z~�ۢ��� �Il�����)��@5�G����vB�@
�(��t���$po�Ѽ@ctf��bT	�ț0LQ��n �}���C
P0$���tN�]*'���)f> ?^���
�x
+���z�iĆ5�?n'j
n������������(��Q�e��('-�<�2�_=Y?v3��ԩ: �{6I���6���#���3����)b
�e��b�tEHR\!@�Cж Z�,��ӿ`�Ճ4���N�n��N��)��~%,�TX?X�N�!w���nP5��}�`�&���
��z
�F���Y
+k
9��^�S}>~��.�̤�f{ s3�?e�,d�S���<:(`�V��� s\�qj�m뢛b״��W0Vz�W�W��q��|�� K�1|���Q~��%p�$n��sN������z�����C�إ�[����
��,8MgW
i��
���.��2�����.=p+:ݴzO ��h��M��TS7IM��C��;��v��R(�����7h��_�[Ov����^n�7೏ʂ-:
x��>
P�__�_pX��qo�c����݃�+ƙ�P�w+ L: Lմ������{i4N:��hlQ*�-27�̒n�'�㬅"�z�lg�5�[��f����J��*�/
�����M�������Ѓ�@L���uH�� Rx�i�Ɓ�����n�H�(m{�i����S��kӫHHe�r�}*Pv�V�}Ts�j��9�L��'����N�v�O&3�o��W�����_�_;����
+���k���F���˪WW1��S�v�W�S�:
ր:cF@�����~�A���
m��,pn�A��43��>eW�l����|]s�Ǖ�K���~
�g�̍n��le��8���[U��
+5�
+�
�D��c�
vS��]2�=M�h{���6�I܌��������������:c.�-^�V?�yS�#~ݾ��п�}>���f���C��!��Uz`��l�
vΙ<'
	�m�xn��볩g����f�_?�%L�B��=���f����Y8�t���|��<;��ٴ����Q�2a��-]5g��r�g��co� ?D�.��?���s�mk[y��
#ޚ�}�+qun��_}��E�ܢ��u����<�g����y~v�E�L�	�����ϣ�ul�Ň�X��cf��µ�`
+��H�v�?����>ޝs=s����/�M���r}0s�U��N�
�{."���%�Μ�����'v�6O℘�ԯ:�(���Վ�w)�o�O�ẋÞ@EC�jϣH�&�O4�
,p��SG��n.��-�Ѣ�����*]����
��_��d���J�ok�kӅrnL|�t�u�0���2�6�~$��P9=��3�@��s� ֠��|c� ;b�4�a�>2U���S��l�?p����NR�v:������ܵ�l�j�i��k�u��`�zfq���I
�f�D�k������"��|Q��EB�0�����F��w���y�u�%y�%�ڲS'�M���a��N!w*���v��o�l����[�kD5�Ó�4�3�]�X�V�1-��
$�n�E��~�����e�u�tk}q>ș����I�T�C1����
����>��s
֩�>6i_n����/Q�Փ�j�9�6��'�O�
��Al
� ;K��i�j�hvW_��S
ݡ�ںa at 5��պKU��u���>���*�x����,U$��/��Q�/@�.�4��9���

����<�z��hF��ą7
d�y���(��(�r
�
+Fm]K�W�P�I�X����:��oʝA�<�ĕP_.˷�����*
=����y��J�
�J妡�KJPE��c ���_�����pm`Nt�qkfZ�G����6���u���7�a�oj�4?��~��}����y	�*ጠ+RQ˽����v��^bP�^��w�(Y�IX�ʧaѽ��\�>���$�b'�v�b�p�ۥn�fӵ��G�uJ�M��HѾ�O�B{8��nm`-��|7J��P�)�e��+��̉웋J��6�~]9yÖ��2/[OB�#=�8[L�b�yN�}wy9n��t\\A+N5"�
K�E�M0�N�<�Z��Ӽ��bՔ��Z�Q�V��F�R���Ťv
+�d�R�=7A���F_���#���
=S�;^�P�J�>)�)�8��q��l��ǡf;���
�m�BL����׾d�]�-
��QT���#�4��+g#�O }�Vx�	�%
�;c
q�
q.�$|K
Q��2�܌�~�V?�����l=H��Eܵ
�]��l9�զo�o�8=.�zYZ��kg޲�lv�Ux2r�08���>lQF�iq�9+�Y��se
iI-��4c
�~�����WB+�ȴ�d-
�z{�S?p���ds��x]	/���Xz�w��ճ�u[
��NV�vs5kY�D�Y��ʕ�"�06>��2
ʉ��t����y��c���kz�i���zC�_�T��;�R�j
+�a����r��yJ�#����R'7�J
v��:\�L���bE�*�5���)��Ӝ�\ʋ��v�^l]V���W�0Į~�ۺa��yݍ�}m	��V�.�
��T�,_��$?����Q�~����y"� ]�|A�HvE��eW��"��4�y� �RLua8q��0i���Dž�Lf�7d�}�$���	e�'m��&��[��-ma���m�-
+T:��e=w.U4lg6�*k����U
+�
&�q:Z�Bn�H���,uZ�x�e3b�ǡ��VX���5ax|���n	s3�'�z���&��K��F6������{��Gy���t˥
�g��6(���ti>bfX(�:
}�k��S)��Y�U+�&���@�ҟP�[H$>z"j]n)���^!�E(,F�X�4o?P�w2���۹���p�+��1��#�Z�`���$� u����Rk�R�iv5I�La۲eMWt��+���nwn���
ӫ�ءV�&5��%��Z;ҵ�(��(��:�adO�Bf>�x�K�<|���y�s%[�s(\�p(u�����JT2Y˜W�$=�Lm;���
ݓ��A�t��|:���`(�����Xȅ:��ɲ�|��Z�:X�`:/d�K���
��T���ֹ()N�u�u�jUxg�����^�+�~�]C����zs�h$	���3S�p��<C��>TQ�nʵ
+�=�}�
�*��J«,yK0���
%��,�����`T�z�x�s6����u��~n�
d���D��sѬJ�dQb^���
�ܢ�y��D�3I��0���Ț��J��ybz���9͑��OB)�%*yG��[w;���W�K
����҄튄1</��=ċ#�/��l��� �K���BiW�$o����@9ħ�,�Vb5���.�ڤ�a��`Iq�0�;���qS��֥E��{��z�������
�.{W�պd���aD!��&>.rM��Of8t�~3q�� �Y��`�n4ǡ��N�`��=��j�_�7YkwKMO���&�b_�@��%Y��ْ�n؋�4��A�ԖEuʭٯ�?0�)��F��(ˈȀ�o�
n����6{��Xq�qX���U�PG�Ss�����],��3_�`q~�=�(^�rhy�����(�u;q�${7��������
+��X�T�2e���nӂZ5��׈�:���K��*6��&V��=,?���*�,�
+�ڣ��IG,�픡|�^Ry���~��sA9;�qx���Iqґvc!�yt�q���@��&~�Nl�x���y�G���پ�Z�[�,:W�d�)ҭ��&�b�0錆�������|�n�|�t���n�;���$��:�\ܜ��>)�8"�72|�H
ܓ}8�y��4{���@���bV��)��{ C+�y�)���utї�x���n"=�|_̈A�+_�Þy�R��C��E
G��Ɂ�k�
	��4�@�z��b�w�х{'<�ն�L�?B/����;���~���凌�b����d����+��?lƍ����d�o����!\�I�q���_�mˆE�f�
�~�:m��u�&��Ӛ����~�6sG��F9ٚ�s�T(��P�ղ���k�Afv�O2�������r� �l	�����X�֜���)�4���p|�8A�mD9�����������6�����d��8����9Xd��ӣ�����V1��
w���n#7;i�L��� �e+)� [...]
R<��Go@��o�(��U@�s[����z��?n'Y��L��s�ۊ��_�7���>k�u����6%{���%�#�Y�5(_1ˀx:�:
�����t�R�)Z��; 5dq�Rg��6 ���:�� 2�S Iz[@R
+H8dmeC��By�:,�9������,�1Տ�7����\��l��A�űP���o�׶�̾�����%�#@���*�-�B���R����Ɩ��PԤ4 �ާ��5�[��]@5�#�ZYPeG7��70��*��}�N8J��hy��N��Ie:ȅC�
�K�^��g���
�	��t������x� = W��	���Џ�
0���s�QQ3E�����\�wh��
`t�����;`��H(fz��X��.���y�ol#!���#�<��'�H荳�4t���'�L���1�؝�q�t�[Ӌ=O��k�-�>�mEi�*K�]S�x�C�]�a`�"� �$�e� �;m��Y�>l	�O������g
��a�#��ɱ9>c�-��u�`
�on�Ŕd��z�0��K<�q.+���;�z���
p�l����p� �)�@ ��o�mƈS�N@Ȇy @z0�K�:��ǀ��L�����~�Yq߰�)�ם'��+w;�7xlgnY�
�����������
+ȱ��-��������j�_�i�@T���5���R�^@��,�h����S<Ӷ�Z��U(���P
���W4K?ՐJg�
��Y�,�p��/e�
+ۿ]�ӑ_W���p�������� ��߽|������E�%��w�Z��
�e�3���@y�v at E�9�*3
��b�������w�'��:�o�?���3�̻�َ��f���Aw{%���gɬ�]y�¬�:�S�?�fY�!�}�u���n�7�d!7��Z��Ċ�_?��s�n�1XsG^�Ԩ�����t��������#��T^�u�ܕK"��
�#�S�ó4k�?���ﳍ�0Y�v�]��d��
=���&o��?�B
�,oU�T�bvq::��vn��l�]�3$.�
̿��|I��8��ղ��x��0�VJ��
<��Q��n��v�!F��eJn�ɭ��*.oR]<됱Џ�=����ǫ6]�����K�wM.�'�
��u[��Ibng\G�F?;OGjؓTs�<�8z��(2�?�?6��!�Ѷr����?��鿣�'�����Μ;{��#�1N��gL/�p�m��(�|$����
��r�I�3�h�~���π(
�]�O-��w�`�['�
�z\~���
�K��z'	��N���?�/����(~��77��J��<ۊ
+�
+񡸱F�ʮ<��w����u�H��A��yj��|�ϳ�
�z��u�=���1
t�j
��)
K�M��簪�CiVj�����|�a3��MӀ�L�� ��a`a����*����;g�wұC��Z����������yل���D�$�ѩD)<ԹZ�
�f;�n��������g$N���/��X���
~����[cZj�.�������{B���J�F�Wa5���j]a�U��3��K����]�WO
�3��">
�Ȉ�v�wn��T=��na +w9���B>��
X٪ؘ�
��,[V}Q���_��k�zͧ��jҜu�u~U��}�7��'����,�Ɲ\�g������E^��
�ٔ>���X))����6㏓�N�wv��Җ���p
X�:k ������S5i쟿�"�"��ݑ4{���4W߄X��8��3u�{NNj\���Z���a��W��v]]F8��V�u=�ʸ�Ͷ�ut
_;_
_��
��٬���u����V�4�(yh�q|^��a�~;w�ð׫��ޠ">�q�g�+�9���ǗR\�%
݀����E�<�Ed���E q�Ǒ���v|�*�I߯���g
�ٹ�
k��ΰ�u�
ߔZ`kJ�!0�U�H��c�3��J6��@���ry���?�Ӯ����F�fz\��=
�F�]��Ƒ��Φ.�.WΆy

����;1��Y9k3S;o�r��-μ�Ɗ)g6f�>�*�QC�u���p���L�����-��u�ѭ�v����|R��/���N�p�! �r���+Ӗ�i��a��Gx��M�w6	հw�|�fj`���ļ"���YT�?� [...]
-ACue��Z���O\Z��	O���2����t8��{#D��ֳ�ÿ�������
%��8IcӴ�Y��ڋ�k�Xɲ�M����
��4�a�g�ݑ�����Dۧ�0:
��ߴI���N��
+kb*�
�#��̹��$^���
ʜv\H��q���
.�զ%���L{�G��E��\�&�`�*�t��5r殿�6_�7�^�"����'=�
��.�침#�uYK��@CE��Vz�P%Tn�l_�Z�-��|���
lG/���������%�V
8�r}�sZ�
+�{?
���3���\�X �}�?W%+�u�����P�c�t��}
���g�FT'e}zF,=����x��.�m����B܊|h�M���
�ܙ`)��3I�?k1�{��ʋ7�y��Po<��~�||�
+����x����

97a.Wߨ\�q��\�>q��~J����]�)(x��U�0�:�K�P�u}�<���Y��5�>�|D0C:�$YwW��!_T�)�8�+�	����1mxk�>�P�}r3N�9��?0���*[��
+�=V���
S5V�Zn�
E�]���I��ćLk�!T��R_��x���f?�u
��k�P)����*��%X�Q�x����dž0Ԇ� F�og�>7sgW��:\���e���e3
)<ۻ2��v�A�
�5ez��xtc]�Ѭ��P'9�[O��Z/2�a����S�m�@�ք�b�R�2��m8
FL�����Z�ӥ_�S�
Y
^(e��+���A��`��Pdq��2ծ
��
�tz
U�L�=�[��q��a��N�
J�	^��[��>�]m�"Tx���%
�]@*�:!B|�]���nLT��Qħ�����8�^&�r���nUa�gW�Ҫ!j�,d6�ͅ4X)�ţ��԰�A�o��|�:5�:�6�0EgD��nI^�`Ov��T�B<����ez9i����G���G
n�>>z�7���<����e��1���K_������Vi��ˢ�v�A�1��}(s%�؊�M�1��\�tЙ���1P)�41��/����J<e��B�GuJ��e�J�+
�7/C�v!�:ass�C��+�����qC6���\l}�\px��
�
�q��tUݱ��F���JUI��
at���]���>������v(�����
�����f��
+n��4�ij�G����Z�
+�A�#���?��8���j~}!��?^�yR��I��v���'��,��K~��=�"�AJ�.\��|[�q�G����0/�bD�\~*�
vm$��9*��hR�	�0|�í>!a�<�bijcb��SB�b��z�y�b�S��_�Y�\i�ܮ�z��5�k��k�����
�!�2�c�5���FZbg�
C�
}�Qy�
�M��ٌ�4i�Y���^��7��
&I4��`[��=*
��H	��o4Z.$|~�=��j��vϏ�k
�r�-(��
rʬ&H+���P/�Rlsp��S
�����=�}�?i
z����4�������䤩�`Y����Ҡ�_�{zq]v�^�Q���Y	D�sX
&Ѵ��)��;=9E=i���`m��ͳwk����B+a�n
=�54h�ϐ.�2��uKgG=�̚ꮝ���e�1��#��̤3	3����f��Sɫ^�u�k#WTg*�,��m
+c�P������̮2+P�2���D�a_��J�F���
��u�a=	�(_��}]�~����ܺ�5Ϸ 3����
��
2�n ���s%��ѭ]������fu��J�Q~��x�ڲ��S�k�Jn���/�F�� 
nUv3��tk:4Im�k��Mdt�Ӆ<��pH��L:b�f�CF'R��n)`	��50#����R�; 
�q�n�f�	���l�� �7 �f� 
���D Xu���ئ8�~`���^�l�٩�4�e�
��J�ͭ�C�a�d�|
�6�U���Fj�ɛ2&YV

�H�K�pIRSX���I�(���>�W�~��
��!E���A��2��Z)�=��~N�� �̝ST3_��|?씓r�I���K��ޱr:'[���a<n���@:����K��	v�3�}(�SWA:�Y��nE@h�� D��Dt
bȮS�.)� FU1pRD�k?cg�.�Oq2Q�ј� Q°���
���1b���޴��5���X�xyV [...]
+��� YK��}t9eG�L�
@�6{@A�럲`RIW ����e.�|mi@�%@��1 7F6ř7Po��v��I�l<z{�������Uk�9Я"J W��ʔ3��(��I��̠
(a��|��
��
@��џ�`:_Z�� tл:黅ϦxZ�
�@��y��
�aKt�j ���R<�_v'����|��G���V,��Lɷ�q4?��#"j�W��l���7\O{����C at 7�=@ϖ@�/���Z>0�� L�� f�� sE�Ž,`
�mSM�-6����;�V�ȯ��x��ʹU}�m	�r-W�畗8
�g���	���K|ѩ���!F�rs�~j�Y�oo�����)���=��L�5v��>���9��
���׉WvR̚������7��{��2�K�
�x�s�/�EY;73|�ۻ���mv<�ݡl0� z�^A�����o���oG�H�_�[�������?"����׌� �V�"K�.S�4qf�R|  �'
+�r�C5b;��h�1�k"r�r�.��y}�����BEm~�ۯo}�_=����p�S���n_
���p���{Q�.����/��,?���h�0�P�E���Yi��W��b������~Kn�Y﹞:�l�^�/b*��@�9#���?2k�^}���ڏ�VYV�5<4ꛌp��!$��\����B�?�dt���*�F���Ndz���߹Y�����q�
{�C$����c���v̸�o���l��]��y��W���8ˡ0������k]�ʡ�S��
�>r�)~�y�Z��|\O��%v��Ӳ��ٿ��RY�;fX(o��]�H
��n�L{u�ު��eR�gK��/U�-�q��^��o��@#rq��X�}�R�V��i��fd5D��ư��u5"������s
�p���vt�Vލ���kuUF~��J�\Ld��G:-̱�	��5c�;����_��I�A��hm���Ψ�(�a�ͮ�vҹ
>�'4� W
��V�Gyx����/}������ۿ��� [...]
[k�j�ȃ*�7'�Pp�
��U�
����6L�
+�����n�/i��-ޣ��x����}Q����^����#rp��}�@=rv��
�4��;�O\z]���m
[B�j@яʦ�}*!����z�.�qNO�6��Q���ԶZ�ZR߃|�>^�E^Ԃ$�u�
���.xL1.��#��EZ�c�~6��^�_v2�	�/����<R<����mٹi2�yZW���V�u�,䀘v�P��Jh8,�I#*އѶh��)H��=p��U�,\�8^�������9A�cGS�ɴ}2�\�5�
�ش��9Kז�'w�N�=�YC�d��d��d���ī+����v�^��~��
�E}=
ϽS��ͨJ�,t
+��X��$oU
+��j�}����jv���P���y�ͅJ��cn�8��n٪q~{���Λ�d�`3�L�3�Z�}�ɻ&��;�N�8�J��8ٟ�P�?�A˞�������u,���
]�ȶ'~���&�
6Ƙ���Ţ�Z�s>�{�MR��+��Vu)�N��I���'�^��U��}^��^��rMb�w����:����8
ٓ�D�^�"ڈ��,���}����?M��⌭�)��bilK\�"��֨D4ƒ���z
�w��W��q�g��.A���lfnHbg���s�^�5�Q�	˲��=U⮝����DLd�}um�������YTZ�IC{��F0kp���� ���D��.pq�5��]Sj
VS�aQS�E�]������%�5)����,���v���a�.�r�`���q)T
�G�d
+�==˖��C+�����\%fh�~ݤ�j�؁��(O��~��k�v�t�A޴�l|4eZ%�[������g�^W.��Y1��M�c�����S$�빋�^T�;r�(�P�r�
�Ϙ������4
*�jg�(Y����Y�k�YBG������mF�^g�9]<l�ڥv�j���Tom��v=y����A�A>8(�8�����3���0�0���\�>��Q\�1&fŌX�����?���Ҙp�'�����N���j�/j�G��(�O���~z�
~Q��zLS��ќ���z{��jdKI`�S���-��s�)g���
+۩��F�|�$.��%^��YU�vA`Xz���������W
��.2����>��\���ԛ��y*���l8S�X�~�Z���b*i�ª�ގP��P�ʂ�?��(gN]%��#gfI>�y6��e�����M��Ӝ
,X����Zɢ�`l%�;>�X�;�\�lث�l�1���s�c�����J�T��0I���|���i8����y�P0�����\״MYT�>�(�՘�'3���AI8��bP�asTӽS�X+�<~���d]�2��Μ��-�Ƴ����<f�
��6�1��5��
����}A�V��~�s
+����L�]3}�9V��
�ww�=��;j�5k��
F�Xu�N�����c
�v��T2��7`X��wL	����q,rM8V99�X�&�؎�)�ڻ�`
���肱��~=�oz���-tl��5�F����rO*��D*ۧ���]���M�u/���ʻ~�3�AUs�0y���
�In5�͋�4�u)q5�0��m ��oC�����ަ�N�ǥ���Փ��hi0V��
V�Gw�F��J���]D�tOe/ńB[;�\h�A�s�$��X�+�6<�.
�$1.Fd�}؇:6��iSZ����z��
�V5�f�k]L����W���5V���þ&&N�>�
y(c�
�~7�t��<����J�r��a{����>�h�m����?(IB�-���;Q�+�����.�^iS������y�^�+=e������F�����λֺ��|eo�9dm��T� �xa��'��B�T�7=
�
�Aa<H�N�rdah*$��&�
�(m7%�)'
|�KC���W8?<���U�A���䋘��0�0�P�-i4�2&��i��.���9{)/�o~����ʺJG9�
�,}��W�x*Gs��ǘ�ރ���P�k�!��t �}{K��x�{����vZ�N�jkԗ5L�>}L�sK�������Q-ו�N�SlHol
3���K�Ho�"��.�����3{�sӻ�qBJ�oX;[Ra��.Y�T6h������t`�W@R���?};k#
��#*ŁG;�YA;$e��F�!�0,��t���D?(b>
xd�^�
ӱ
MsJ�b�5���7���F;�x�����mgjmx��ǖ��2�ʹ��7�����է�03�ӳ2:{(�@�Zlv��`����ȓ�P�Uj��I�h�5`�����H����!4��|Z"O�)� 
+���]��_ ��~;q"#��� ������}jbVe���2XI�('+-k[[��8���]�y�$C{QD�E��v��!���Pd`�H8�)(g��
ł+r���ޞ��V��H������$+@��{�	H�������&�
Ļa�S駸���,vP<�
Y�5��,)���l����Lm����G�"6OxD\�$�K��n�Mk<l	8���`ifi@�,�����\O�� �")i!�x��������	ȫ�~��� �6jr�� y��W�
��m�e��N>���VF#]�Ϛ*�%���
��I�t��P������2a�K�ѿz2`)d�E(~�I@�y
+P~�Tu+���էl@ͽ
��r�OP��,�� ���I�� uv=@]�
�֛�6��GM3i��Yq	�n�{���8k#�"�-%+��?·R�g�w���Ť��5,aqw#��a[@���Cs�� 
Q�V�=Vt�Y�nW�_=y2�zs/�*5 ��%` +N�F ��_
�Az#@?37@�H>�3���c
�uX屳�oTy�����_�;�������7���L�J:j&�
+O�C�%Yt,K�Iג���`
+�
��=���
 �)&i5 �_��5�`��>�+l�H�*���	X�Zl�F�u�7`��
+X�V,[= 5I�Θk]�6�
+�ouD^��8���h?W�������%]�Z��
�\2-���~�x��z2�l������ȸ�mP��
V��J��ƣp���K�E Oib�M�t�
xJ_���
}pG��%�u�xɸܽ���S�YUz��5dL�F�tJ�m!�'s+@�Q��[�פ�
��[�7��V��W�������Ӌj������gЛ-Y ¼�b��@x<~s
�,N�"V�
c��h�J���ĝ
�5bfȾKV�B�wV��|v��t5�'h�o=���_���|���˸_�?	�'@2O��*��L2*�SLۿ�%�l�� ��RҺ�R�? iK`@��M��G�wAǎ���
+�����!
+�!�t�
�?%�)�(����D��� ��q�*�_����g�څJC���N3�z���V�
+T���*�@��#�B�(wVHe�����\�d\>�Ep��$�F3��
+ڜ���E�;揜�-�������+�~����o�������������>Ձ^(����)0�Ӌ#��x�Bk��d�}Zq��yW�_����MF�h�O���A�p!
Xx��J��u�{��%v����s�gc�,N�VX
3Gds�$��/��iWz��۽;�;7KZ�ᵺ
��
w��C�f->
=\d���H�G�
�/-s�2݇En"�o���6�H�d��\��\Z�z�!]�l�w�q�
�}��[��gco�y/�V���2�^~9����4ˋ�M��#Cn�s�Ӌ��7�ȩ?��hc�v����n��tĹ���F�Ne>�w���H
�;
kh�����n~t�ʡG�<�n+��p
�j��=h�V�vt\���m
i�gTx�Y��t����_1ԤA�����0n�2�7H}d\1k8�I�
�O�8�ع� ���}Y,z�t鑛�M[1���˜�������׺��x��u.�u
�i�i�6�;��M��6����̵2V�o��0�wd6�$�?��̢:����!����e6� [...]
�hx
2�i$���
k��'����GV��e��c�-n���a���������l�I�$j>�f��"$U�
�U6ª0'�-�t��_�|x�Х��+�R<PZ���
���}R��=o����8��>��R��٠�q��	�bl��Y_,>Ս�Փ{��iq�e�3<�j�B�TB&闫�i����6�Ϻ��C�m�ג��_Ş�@E�`�������YV��$h�x�0�Qy���ܾ�/�q�d���t2Q.���~�A٪S�ĥ��t=�
��c)
��o\÷�fO�F���ʼJ)�
�bϮ�*�ٰ0ɻ��v���T��}�?MqX���a����4��_���z�;���{4��_�F
+�5ܬ��gE3��M}��<W�^Q�&

�d/ gX]�ΰ�n9����

���3�|Z�������Layԃ��;bq��ˮ��䉷r�s�����O�W	5�^�ε<)]yg�Ik�ѐV��烕���v�I�ON��ܜa��r
�A�IMMW��'�d+j�]��Њ�=�#s�
���!f�8���q�[��
q�a#�O��ux~`� "�e��|沵�jyMo�f��#d�%Vr�������+�dE9ΰ���C{%{Rq*��M>U�V�h-_��,�Y��N�7�g�!�2B�����'��l��V�i��m�5��Xk�D���VM��h�2�m]�ѭJg��5
Z��r�_��}�'�3�S��֞6F)��`#\V�|[-�cif�Y�I!y��
�#���i�ʊ�_�����3�DZ�m5��j�=����Jڐ�J���������:�#gL�#wZ�Gm �J�ec��_�r!'�l�rI����	�twk�8��:��L:�DM�&(c;~3F��q��zu�|Ӵs
�5��Ψ׈+�
 [...]
��9���X ��.C�z�$(�SEU�F˔��8#���/C�KY��]r}	
ܙ��6w"�9܅uN�zٔ�]��e��;�玽�
����
�
�=��*Cw�:
s��Xq�z&kcQ�0��Y�ӻ����MR���K���K~��<�N�
���4��?��(��X ��K���
%6S�G�����!_)K��O\�=���<{y�=���۬,�̝ ��T�̝�;�6g����rI��őRv&5k�G�����H�4��d������pa�fq�&al&s�$�!B����
_�ϛC�;��W�>'��
+3�ۺ�g�:�L�Г�1.k�NںC�m���ނ�
>/�3�
�~횴�'��9�����e�/4�
+���4�J�兯ɿ
+������S$�X,�^������$<߽�zr�8i���6xѬ�cE�^1u�g4<�H�"�,?MzXTG��t74��5�J$���s;52����ۛ��;{��+��JF��d"���B�}ɗ��b�!tM}x��☔����d�¾�����;�z'6>�o�&��~�}S���p��S
8�	@z
�%����)�3�RH6�s>�"���J�M#V�� ��^&��0ŷ��o

�:L�����7�:'�A���6�~����)�>ͥge�����B���xa��9�;����;2}���+�=hga&Ԕ�>�1r��S��#W��T�X��2Q��
"ݗs|;͝�r9�����;��%��l��Z˼a�&�X-L��a[HƘg����
�0�����JU\夼Q �m{�5+���[����}�_[�H�#8��T֦n�|�<H�E^����D�f�-�9|�
ixy|pq���ud�V;DS��TO�8�@�őd��ڂ�#T��K���*�M	m>���_�Y�5�6ACTBG�o���-^Xqu���a�|�_l���7\��?�
�'���.w���[� v,AVW�Y�M?�l���R�rU��8�g�����?b�-~&t~�Vx�,����!am��l��/6-�S
���
e��iA_8aG�xz��K�SZ���'�;�n��\��nm�.����k~�������v74�~�t
+KB�B�D��U��1��I��Cx��>5�M�vz߇2́�p���A�W)�D�jN̶3���7?D�O�-�,W׹+pS�.�	��{�E������+IJ��ë#v2��ߏ��;r�M���o89�`x�8��#�y�s�4�3����
�hyn��f)zg�3�"��t G�5�18Ne�
+�^��ҕ�]@�5C|%yՖq[F/�,�ɀ��Y��Tb�0���aj�$

��3�
v�m�h|��ȃ�?��AS����N |`����;)��!���lS<�BW�<E
|� �Q]�On�
����,�O����1�iW����W2�ՒH���J��r�'L�F����tf�}�ev��Ǽcg��W�zE
��

U�	�
:o at pJ�";�S�8@�85E9��9D�쥈�����'���ӵ�=}�y
�(@����=tr�i�8iݪ���Ỵ'd�$�8�����'���_`"\L��9��:�ȓ���:< t��ͷ$�����
$���	��+�
Y)
> 3f
�jo H�٦$��y6�%H�?��_Az�� I
@|vskS)������$r��*�|=��p���9^ʼnmGpQZA�Mkd`98�"/�H�O at 6�@� �+��9�n����4@��
(����CYQP63M�: �A?����� (�J_`NO@!C��Y�Ivg
+���̒ZQ*�Q,|c��y��4rOX�v..�����y?V�:���G�����i
�fz��<��P\4�8���>�ä
+����)���k!���Â�!����W�Cвd ��ҷ��_�hWu�LE�˽��[W��~J2Y>.�,ڣdqt����H�)�E�̙t�P��V6f��O���
�?�4�
+`��6`N�)`��.��	��B��Z�لu�L�
`f$�?�|�|��
O����]�h.H;>�fv2ߌr��4\��"	�f=�b����BZ�)�o��Up���"n���M+%���u���.���p���W���9���:�
���\���G/�3/
��Q ��q D���
����$�+1������śD�F��a�9%����?=�+%��f����ȸ�� �
d����
�#x�C=�I����.�P@�@�Ͽ�QA�4�@�@�y�#"�]��&�B�r�"~�<:h
}8���ҽ#e����-�U����w�!�a�[�����s 	{H5��|f i!Sl�@�' �XH�$��z
$�x�αRX��y�����;h��9]��ɢV��W�Sٟ��_k�C��?����ܿ�m�H�ہ�ҭB�~U����EI����v��(��(�� e�V��9o��
����w#
�̄���fބ
�6@�����럞���'
�G�}ݿ��࿃���_���Դ߼��� �$�z==�����82 at w�9����,y�Uz{hǂ��J��l��y~���
���m��;Y

+��]/����G�4$�����X
;ޕ^�d�w��ݜ���FZ�6�w8���.^��{1�`|
Y�0��%7
+�=��s�#a�l��8n�����!T���N�^���^�N��^�	t=
��o��
3��_�{n�O4n��_��ح��}��̵��#�lͱAэ
+�|v���Y����>_�O�u�3����-�֣{���#��C�՗�L�3�B<����׵��C;�Fx�
|ˋ���8���-?ҫ�{�X_ڇzc1�y��s�7[�B���V����4��u����^�^##f>ä-#C�!���R��[��QF��V��n������NU �S�rkKw^h�}��j[�e��a�4ak�;��'&w��:��E��6g̤��O�z�E
�>�t.�����L���ؔh�����
����/=�
~���eіηu��\v?hK���͞�5��i
]�f��a�����^uYy
����U�r��K]��jT��k�Qߘ��V�}���,
�S��hK��Ֆ:HK�Wt�޾��U��5��٪O2�L
��Z�_Ӎ��auY�V��jV6�W�
+���oRQ������
���L�R�y��XI����ō����A�>*E�t���qZE,���T)g߼������L��&UB6�J18V���^�מ�2�͂jB��fJm�×�7&{�G-�0fI�g���ge���5
+�n0���q�/����.�wB�mz�f.�>��fp����g��/�?�WOnŵ��[^%d&���d��}0*�ϼ
�Q#p�U��_Džς]<���v���
籃��5��b��K
υj��As̽�g�����_[�;���'�Z#G�iFÓ�{_W�2��+��W�_�}���|ڻ��š��ݰ� � ��^���V
��]�'O��
e��1W���;�R�n#[�g�,�\����z���ē�&��������W�n�I�/'��3
K��9te{R��6
se+j�����u�ha�)ja�0ka���������U�O�����*@�*���z!�5,���c�f4��^&�t�d��a1(���CW���Rm�
����7��F4�|y����}g.���$�il�
b�΄��ӻ�Ws��.`��.��X;�uV;m��v�bK]�2���]�T�6�
\rZ�m�u�S����38�8�� YDl�}�VT��/>i
�!�\�i�
4�0ɇ��~6g�V10�w���ǝ�^�L;� o����4�@�j��b�]�@�}`�^�tS��S*�S�rr�׶���Y
Y)�R��n�	K)x�-f:oUm������&M,��ؖ�#�2���H�W]��ĵ�Lb�F�4�(j�,�F
徭d�^�(&�����Җ�
t$;���>�~,y�����hx���b4
+�������al�KA�V��=Φ�;Dj9��Ⱥq���p˙�#�cf
kA|iJp{���1Q���[���� 
o��<H~!����C����D���T��eoH��$�c
+���D���	+k	��>
+Ԧ��e���\3˳'��
�
whV1���y)vղ�΍�
�W��ZN!�Փ�R�������
����T�c�*�>�Y
��M
���
L"e��KB�8$�[!�w�V=����4޳��j����{���*���+SN��{�Bp/��
���V<榭ZL��m}�#)��G�r�+|~�*�#+�6fʊ�tZS��
v�[��wi��uDHh�?���0�jr	wr���=]�N^|y9<�0�H�i��}	��t�b8.�Lss&u���-�~+l�1{��K���h�P���A�
|]Q�|�Qt�R
���
�rE�c�ms#?$]��j�J�<A�/	�ԫH���Pj���n&��
+Omxn�
�c �9qK��,?PV9��VwQ�+)F��D�99� �di�s�Ը^�P���``�d.a$�gLbq�T�B�
���!
+�l�Ͳ�X��b�8pki����+Q��7�8��7�A"�s�*0���ގ�/�����9���s;Lw�!���2�ж:�Q���M��w�o�4M�bV&g��M��״#1OhK�7#����o�*�� �pf�
�}N�b{�`{��L�Z���3�ƺ`c����
A5�
){	��I+�Ws�m���
|��1u�]2=�щ����8��&���`_ٓ��x"�f��b ��{!� F�ܧW�M��������
c���U��&+�'�z��N�4�,��m�*zZ��o,��l�y�BS�횠
�
�����y�|�ǜ���
�6��N��CX3�c�	U�9���
8�-AA���73��g�:��5�U�o���9L(Ϋ�YeGh��ޣr���d�j��
�Htb�5%�R�\�Z5\�|3\����]>��L�
+�}�O`k��k�
��1��v��Ĵ����c9XL�p�^b}�ƪ��
�a��b���
�6��⦠�s�묙^a�N��Ct\[����	�K[L��-�Յ^G���\�5l�f�N�Al5g� �P����H����dxa�<�knxa����#䰡�Dm�
c����r7���x�ղ�z>.6hsp<��}� 7�>�Δ�����p�x�`���KI�	��k���
+A>��
� ;f� ��~݃�ɍ�N��^�f�&�7
DWFy����c�}t?\S���j�
|O��jC�K�%��qs�
��
+���p�r��v�
/�@�k~�z�oл{CcC!h�6ų���
�� z$��o2� 4�. =�	���Bы������R�3�IT�m��}���ttc�b�c�zr��a�����7�z��T�ZmI�ɯ�
N/�:8�5�w
TE/��Y���C�X8�ܸtX��Lq��1t����X�7�$�p��� �
+����X���m� �d���3�\����T�=R��c�Z��҇�̒c���4�_�w
7�qĭҳ�r}/Q5{[!�⽇&�x�|� �K�������؇�R�8��G��O1j��)�7�3!
p��S܆ {���MV�
+	vvB�(
B�52�{(+��0���`_-�y�'�^��?�|)�:�Y�aR�ڢ���I��B��q��� ���
���
+��;/	_��]*�Q�I�St� ?�N����	�u���z �>�
O ޣ�7��MsJ��9����_�[�q�6��+%�}�'T.ވ���|�:aҫsD
P� �
qM����
����B�@�� :

�7
�����dR�ʀ��~�x���+o@
H1�-Dc� D1� ���³�d�E�CQ�Th��?�I��� y��"|��\1���U��1<��.*��߭��CZ
+��x�? 	:o at Rk�.D �(2�
�%@�� �T>E���>�$sHq� 9��U at V�
 �
+H+�ҾD�
+�G������-�1�����'�%����O��)���Ѽ������r���!����' �F�[���&�u���s� ��Ϧ���zb�����P�
+�a���@z�=�]� U.��7��G{�\1T�����Jh
+8~8�ҾS&s�� �ݑ�ߢ��ʽ,�}� ԽC�������zڀ��,`�O0A��b7�KoS��d�7�A�z�a�=���+�>�g�
�5uR&ɦ(-��ǟQg^��H�1Kp�*��K"�a�C~���-�[��e��ɱ�����v��q�.`1)�\����g�njրc���'P{
��=ef�]qo���:`[�`��Q�b�oz6�~e�'M�t�
hDe����
�x��j|�OQ���_)����\��b)=+�u�~��?���߼
>�~�m��EW �- A`�@�
�_�
�7
�-�|g9|�~���e�W�W�O~��-L�3:�6�:(پ��7��'�%��|��
+��,�_��_��ׁ��Mo�bp?���&	'H�� ���Rݭ���Uz%�� �6% �|
���
+��.��e���Er�X>v�Yd
u� 4`�o]߽�-髎�s��"
~��'��?c���n�y^���a���S4F at Y�ke�!�Ү�-O�
 %G]���i��l�ds��V�YF>�^���7���O���� ��ݿ���ݯ���t����P�|��Q	_��eY�k�-\�@wJ�Z:}���^m�@���QB��y���d���y_2[�ޭ�[邸?h\O���=[Ο��[:ft��5o���׶{��؜���FZd�ku#�W=V/�"-&*�^�=�4�Fv�� ���F�Vi�89U��7\�����ʡ�Mes�/%����u�zQ���wZ�!�ݾ�λ��<�����xYy]d�'>�=�TTxϘ�&3���h M�xW��9i�g
Wƹ�zZ�F�uQ��`�r�<�^�>z${�`U��f�-�}�����F�ӯ���tJ|l�~G<����-��&-�v>"��p��9�g7�I�
�������
U;��� �r���5�-CΣ�̙�
���� [...]
�U<�'n�R��~��vr�Y];�JnwBeS�(�x��������$����~�aC������͵���2(���"H��s�gaa慂Ǿ�|����I�)*F�Wr�����1�}
Һ������f߮���Y
���)�
���1M�Y��$>{N|�ϓ����Y<@�#�H޼�|TF���QB
;ʪH��q�˅Z����>N�l�旿�n^#KҞ�
}O��'���/��5���j��}5���g?���o� �Zf
��3��2��?.��i]�UG�P'�2ʅ�8���<[5�u�O��wf�^�)�<ԒL<
@

��}q�\�|kN�ճ��u�����I�}�=Efl��k��#�zG��담���g1�J���Ң5��=�;�Ɠ�,�igX9����³�{x)���K��$���
����Ч���ſ�I%�ٞ������,_�.v�%�;�L2���f��F莫
�3}m��~�R�j�>�����q�g_�o�]�ܦ��<��J�cn/WD�a at C�$<|l�}cVT{��P_�
�E%E�2��r�
��ol��Z��`������z5s���i�9��y?V�u���҃Q5ַ���^Sz��B�5r��k����&���[|��bo�/���de�yOp�e���
2���46�[l���D�:��.�{������Z#��ٲ/s��J��QuO�o�W^���n����/;�8�>��Q�to�3,N���'F#�-Fcf/F��,FS1=�$���~�* s��ΛDwF�g�
fpL������&_[����&~��}���^)�����䀽Rh�<�9��
%MZ+yj���$�^�Ĩ7tD���"��T��X�A�2(�x�7s���Q�Y2�,E�+v~�,C:)���9u��מ��� e�(�w8�y&�Tyr�XN���f�;�';i��;�+:{	���u���Z,b���C�-N(����t��av%�,�0����r��
9�v��^��l�[����QL|n�L|QL
�{&��|�I&-A5[[�
g�h�YBu��<;����Y��7{1����b�B����"658����;�
G;�\u>�9!�}�g1]�6bc��0W�(3
dd3��Џ�٢�v��c�5�j�S���jK�y7	ʉ�t
S@�f�S��m簗`p�7�v��[
�+7	��Ga]�7�.<7�ϸZ�L��/8Q�-��<�d��욹��-�ɸGFg�W���$t�:��^-�FR�7!P�u֤��(OA�$��`Ff��
,��$��z� rܜ |%�/�kQ�go��ה�%u�)���%�6�UX�z�ڒ��W��{i'�rGLW$ƌ>zO��F�~�i�r[Ro���F/�D�#�FAn�MΠFfw;�X�O�ȟ�
A�Fu|�A&8����^lWC0�"�
����v���bѶ~bI4眳�H��`N(*��>�]������+���
v�1'a��'�ly�'7
On�Nņ�{�ꯋ\��K�D�0����X?36w���|�����`9ƈ
��{�R�[KQ�#H�Ɠ�CX4,�Z��Qz�i���Җ�c։$��K��M��Q"vr�N4q�S��)\��T�~�hf�b4;(b��{�e��^�4���L�Mwv�VG��b�:��5��#��</���p�g;.
�zL�`J�
[/�>"�z��`�8O�K��^�%bTCT"
�Z�n���Ԙ����`�R%�NX'�іZ��Sl�e�3u����-�	x���=Dx$Dx矈��$[�,ujx�R��r��d�
�H�W�sr�����X�ge�٫����D�� F�z�#�z�#6���#��z��S��b�����{d�����.�;��N(�Щ���2Zx{���Y��T�����),Ϸ�p=Vi������]�u��5��]�(�|�k���F�ÙA�sO���)�
��x]X��+�G���
�<i��_S���f�}o���I�]��

7qWC��k��
Y��L|����
U��TFN4�%�p}�i�A�8ڻ���vp ڞ� Z�6��y��
�,ӏ5j�T���s�.��ñ
<����,�&�w
+<�<�,���#&��I{>�ȵ,���ç=����ID��Ž��������
++1g��3�+)�ky]����:[��N �)iP�W�n�@�z�&� ��p
S�����r�t���1L�R2�&�����w���#��N!�юH$Jq
�Z���/���6������Φn�E
�h
WPNG���(s
��X�YX�6Xm�,�A9�	�{ ���%J
��p�FN�R�V�Aaz&���;��y��6���V�t1�\�;�o;
|�eE�LC�|$"���S��{
cᆦL��
ۂ�nf�.PFp��	�C6
E���$<��K�C��
`�(܃�;�* �$`<
�l�\�p熙
jPdKO�;(��/r�cLI\���ebG3���P�?���,a�~2j�(�
+0���<�X oF6 5OPX�
 |
�����t��<d N�sJ{�;��W� ^}� ϾH��Ν�,ߪ�C)�Y�e�o�w5Z?���,�Ɋ�a?K�+�yU��GJCˑ�~�8d�
�k \��
\j[��F@d�+���,�J@������ly@�[k@�7 �" P���	����� ��2*��h%�_�Tz"_��R���^�u��g�=�F�k"�`�
+��K䙥��V,렛~�� # �� z���$b�>by������ňBye�j7��ƀL%@��� �;U��� �]
a,S�0OL��;ۻ
��޾y�⏲s��'�K�\�
n��0���ez�
+�ƴ�
+&�ـ�
k@&v{@��
 'y��į
���
����)(����� R�� 75IN ��p�T��������b
�Zgt�Ό�V2�������X��������Ɗ��Q��
,�V�Z�-;����	��/��}�:s���wL_��\��(1K�h�\�Y�	���ʉ�Zق���h��|�
�q��(r���"�"LJ�ëL�K��R<���u�}�z��
�+�+Ҡ�|��)0���DN�	�/�����~�~1��V�
b�1��8(3 ��U�a{�1o3�Y(�!���%���a�7k ��zVNS�c&�J�X�՝��6y��Ǚ���>�9	�Ώ/Nw �&�_x|?��J*����M"��1�
+ Nk��m��;c��X
H�I
+��%!�]�X̢ A5��s��S;��7# ��: �zZ6J.k�+��As��p8����'���f��|�S���>�o$�~r`�Z�*H`�H�㭿9�k��a�6x��
|׶�����)�����AJ�@j�VA�9�+��,HaQʯ
~��tz?��_�U����G!u%ZO���������7?�[�m`����^���Z��ն�y�F�ã�;~�+�l�@��@6s�l�ǃ, � �]� C��ƻ�����d�<k���B��T[��B���Y�#�K�m�����{C`�~�~ㆠ�l�~sm��f�Z���W۞�,ȯ66ȳ
�[x�G
+�
�
+���;��/�9��"
��%>w���AAr@��1d�]���Uw���	�k҂j[���G��z�%F�$Y6(�KwP����{��eP4�(.�D
��jB?��щ9����}5|ۤ�-�
�ה0�_8�/�d�R=6�Vso���]\���)���d�����ֆ+1.Ol9=�Zofʄ0
����9 S�c�Q�F�6O�1ա��Z��l���
+�C?����|	��
���ѯ_��ٺ���
]l�ᕹ�#�~��Ŗ��ui�7���=�1~���;��ެy�%Ugr����)���}F~r��\��uI�!=	Ѳ�����4��8A�C��=�|�Z\�~_v�̜�Ġ:4��Jؕ����[�h�5%���JE���������EL�r�pR��/f�Q��e1�8�f���WB|������ȧ��g&w�ago��J#Vv��S%��:қ�Z����zz���So�
�d/N��<�������~O��YP�����O>��_P<�O�	�Dus,����@fP�ߪע�ڣ�%��
A��5JO�Q��F��E�6ӢN�ϭ�d����'�~��^49��ƨ�����
!A�Ձ<�5���O4x�W� .�;4�j����b:��
+�E�A9:T�pyL���{|b
t�uO���ب�9ɡ����~u�4ޕ�܍4��U��׆5���F|N�
~�]��<�u#n�
�:�*vƵ.щ��t��~��������A�7I���;4�}/����+M��h(
�Y�#���ۓ�Aw��9ߝΆ�θ@��{
���$�NyU�I�^��
/�M�s6�DQl�CyӨij��s�.ן�٦�<��������h7�k����C�������
��|`��S�A�uZp�ּ*V��M(�~k^KQMGK͛\��7�hMj���Ҩ�5��\w�<�v�z\8״���
lzj��TM����Ԯ؋[T�u%�n��]
�7���r��'f�@n��n��悂Նk0x�i�z=��k����$cQ(�$�^ʢ\C�z���*�*�,{�ێ*��yZ���Ly#�<�E�r�]\������F�k�<���~1U�E�V�ٖ�7y�|w�z%
+�LQ(p��*� ������r�@28m�f��ʠ�]��x)ǟ����_�i#E at i�K�p?]<TޯP��bj�6څbT����z�'�y���I�穱����1W�y���6Ie5�d[Y̶��5۪=��V})AY}�޽n�Yj�2�x��h
�ؗ���Z��|�����.Is�w��}^
�N_���-_I�=(�pN��\=S�dߗn"���L�U�����2���d���8�e�W�K�*����!
E� �Y�r�q6L�#5
���xĎR���<7�v'��
��VV=
�f��[�K�S�c�Mt+ˬvF�l+w�}�z]fL��ʘ���8d���9�?���-ן�A��NG�Mmt&���T*�

+ɽ
���8H��s&q�:zbN�O.��\Z�ƝK	���S�ĝ렔���Q�Z��]����I��,L�^��9Eu��vw���!��
&5������]UR�VLI%И%o&�˼���J�d�l�CX�n�����řg��H��
#�b���K�E�D�b��؊>��{��0SQYn����7��:�D��D�;����B�d*�����R�m��.�G������L�ʉ�=,&��m�ȭ,(�!ů1I�s�H�"h1�I1Q�87��Jnw�>��[T6����D� ��!,�ٷz�5,��l��I�<c���*�iuXҴgwx�e��éY�7D�*O.;� Do�\��ORlR���Lf����/‹x����#�����j�)D=9+D�\J4���	.G�d\���Y
JAi�L.�ƃ��I�$�J�(rD
S�=�{|�((�
�����q2�-^�Ҥ�e�5l��K4†��{
*~ӱ]z�������r��XB���ц
�G�u���5��a#�������^�HⵑC�RO:1l> [...]
+���F�1�X`��y��v<�e�D�=�2U��2�����R�ccAǬ��ΐ����)
�	����%ﶈ�
����
i��4i�I��ib�
�D�Y��
Rg��|br
+>ٟ,<9C��1��b��`���2Z�+��X
�l���q�E�+
�Z@�Xw�񬉔��W�z�*�c>��YC+8��p�Kf��e�voh1�9.��T��trM��X�D�""��ӿݨ5�)$7œbt�͞���4�e�-	
+g��\Cy�Q�Y��‘��tr�0���rf̈́N�K��
�J�
x��
�������&Rɕ�~2���W/��eԷ	v�/cO�T��!�.���90�
qJ�^cHȶ ���bG11�2O�B/+�F�!ʠ��d�v+*P�p�,h{��y�ai�@�5f��<�ݨn�M�f �
+grH��H��H�� �Z�͖h�E�ޥ���t�s�Jo�n�1��x�H�"8�Đ��fF�z�
߭�0���
;�	
+���)z��)Z�
~��lXzx�p�N��=����/�yu� 1*q(����Y�@yA���i���
�¸H�?�g���#r���K���9����x�01�;b��^�!��
Mī�
���
O����fn�:�(dT�R���p
[�@�W,he�@��
+PP\A��P�o���	(�@�������(�� � �W^��w<����tALKxP����S��cr�a|x޸���5��É���H�)v<�h�H��b��
��Q:
��
�5�h��A��8��e���w ��� U�@�l��\� �px�Pʄ˺��=!�������F��kH\���X=�6���g�=�dD�sD|���SR�a�B
2��S�X�M�
+������
%z�8�����
+en,u: ,
w����
�2�&��a�����
+`�
��X�
+�����{u����C[T
z�$�����먦捈)
���'����o�؜�ϰ܈�Ѣٝ�=����0؁��+
�r2R-	`�2��%w�}�
e��� ���Pv]�
��8��ON+�� S�"���`�v� 
08R�vm
IM/�/Ʒ|_��-�dF��E%���?`
;W]˭7,ZBD&�yu�7t
+��sHS�
�K ���O
�ljp��׎�p�� �k��p=և�� *{����x�R ^[�g9_?c����?l��a�����
��*��R��'c5	���
�Q8	a5�q��o���A�� pƄ����W�D���R�x���HJ�b���@0�
�>�N�h
D��D)i "��b�FA��t2a��i|n��(Gϴi�[}yl�JX5]H3a~�*D��
A?
�E��A���YJ����^�ܮq(��ײ`�
H���� g�+ {N�5k�
o2��D�Ӡ�w*3��p<�W|�Xf�#c��
+�s���w�5��2��D��H
뫩�=�vr�:L]�	�AG߃�9(�:�\�C(� "Na
"��":��J��4��* A$[���h9�щ�?ca��]X�1�}q���,��G�@��囦_�dx/�R���W�.� � �v��:�qv���
�&�b��	��,b����	X���
�ZDy������6X��|{=NR���q+�(�����#NH�uko�/4~���_|�o%�KG���{20o%�	���$:k$����$��'HdfImwN2��
��(���,u�R��s�����~���{������̏�T�'���E��U����×�c�ͺ��T���j���)�u )I{��<��\�X���m�{�Ť�t�OK�T�8;虍��:����׎
~�����/�h`%�����y���ޟ8�Aӄo�-���mmd��8ȒTd��d6

d&9߷̔�
Ȥ�1H{�e�Qe#1����X�!��bw�E�A��
 �h�x7pm��߀�ƻ>����~����7�6h.���O:g>�C�?yc�_M�g�
�
2	�h�	r [...]
�v����(��c����:qK�iE�D%��hd6�4��=�̷�˵��-�#���`���*+�}&v�G��y�5���k� -tJf{�e�9�w��A|�6�z=-��U�둩�LUf��S�Y��5O�*ɡ<z��cJhp��(�����=�rV۽�iGM�[r����i�2�,�.�[�.��*
�H�ᑶ�.��]o���F
��ip*ύř+0����}�0?��۰i��`���~���ԝ��^w=���?�����(��~C��D������gS
ٿ!�H7�V�p&N�<��%J��
�8�:�Bz�b:و��r�na��#��m�Ri�����r�Q
.7�����s��AK��uF����;B�?t/�a��b*�����Nj��a=i���'��u�Ag'yz>M&���WxoH�]�ʂ�ŇQW�B/g�<� �~w+h��}�/�l���
�T�V�����u:�������ط�m�������sa�X����9���
�~[ߢ
‚8�8F1 ?�	?�E���[����x9,#_5<�l��ڽ�G0 �[7�W�|q_-?������0L���<w):%$�����zft�&Y{�W�hA=���
+��6�R�Ǿ>TcM���tJ�٩�R�!LV��2��i~]r��&5��K�YفG�����U��ґ%<ɇUnĒ6�x�����7������#DX�O
�l�
��}����Ix�xP�6�
�9N�40b z�v��mXx7\2K
C�=�n�'ʣI\W��=?%g���Q������wG��߉��b�^
�5��zz۹����I����I$N2���2�{{�3�E8��nD��qD]���Tv�!�$�1\>�aR��VD:�RL�m;��#!������߷���!�A0b?	�	L��?����˟K�o��c��?�����/��+�l���N����'0C�N������f��&>�
a8�!���g�����7�Hp+6�&
�����Z�(�!�'�?��w_A�H�_1���&�������e��
��`<a�iN�d~w�1����wT��0��x����$GB�	\:�TBʃ~D�/��/K���u��;�冇:qܭ'�I�f�%��O�;�}o�!�3�EruR�ݷ�2y�p�'!�SE�|��.J�*xk-
�/��o�����wt��sl0ؿW~
��BT���#�5�E���U��

�B��O�
+�C�1,�X�z�Ռ�	`_{~B�|���58�sB��U]��8���
�6�~{c�����S��&U�Qx��
H�Ӏ�ۼ'.������G=��{$�}��o5��~�쏋Ȫ�Gn#{M���˽��D�y�/�N٤:�0�jH��^��ç�(aw�1n��/\82j�	a߾�����~ ����@'�]�S�VG������S�c�۸yZ�$Ü�ψL7s/)R
�Ҷ��������[>�v�s��J��/w�Ѩ��jb��{��ֶ#�*sNƗ�Rxj��k��7�nrLIU�t٣υP�������"4.‘Ǧ�
��jfbUֿQBX��R��
U��=z!���{c���1f*���@��f
�]��9Ju�I����I�,��݁� �
Gʧ�+
��1]~���?);"�����j��_
+�qknX��7�E��H���V�Fn��Cޒ/��:s^��,���i�fGQs�$��N_F����m�g��#n+k;L�r��b,��f�@��
����u�"�z{o�=G�����
g�e

c���`��\�gބB�ݕ��%�m���
�k3��s�c�anB'�J9D6�|:lN���o�s�<
+M��p6B-ّ�����9-����b&Lu�¾��d3vn�ͤ�Y��w3�|��
9�
��P��
+�#s�`������{
Ww���j
u=)s�8^Ь�f���O�i�'$��������t���f:kt̂�&�^R����b>
���,�^?o�n-�d7"�3�<.��IsAs�.���
'��szf�����nY1d��l��-�ʀ�h�iJ�n&&z�v[�
-�`�	h���h�1�s2N\��h����;�$��T�z
�^m�ߓ���>!v���/|o��%#s�.%���_rF�'�1���0b�*[����R��]\�9k���2��T^���z/:��՝�I���o���|Z2�R�V3�2.�D��b�Ʀz}�96�
+sث6������k'���5{>�h�|��]zZ_��V��W�S-�~�ܥRC�?x��
%�6s���q���}ܼ(����t�9�D�oC�wHoWoi�M3�����Վ��/
�j���z�*�h�CB���~B��~3��2�'����C����c�_�&�#����t�<�0�6��ߗߝ� n��&>����?�����O����l��׾����?}���x����M�f�W���p���/.�?}���xV|�,��L��,��\�O��_��_��j�+�]���	@=%v͂Oܗ��Gw	�4�H��h�4}X���kƳ��I^����2�
��:�~h���Ոjf_�WWW�옛�)�]e$g�J<WF�����=��5,�AP�}L.���A�)�����IsYF��Y���h�KoO�%�u����hc{W6��{6���o9���{Q_���o�R>0kI�}��k�REs�c��3f�0��52�a�~�X���Ht�R���K�6 [...]
+t���31A�V㕝��K�W��_߷��H캷�[�����S�C4�r��DOD0��t��e
�n���x�!�В9�s3q\�f4�a5~8����fcD�Q�4�L�Y`�qt(;�`�0��
+�����<�w�
�[E�:;6�
+�n��y���iN2�<v�Y��b�򂠧�*:�4����(��?
+d��������Wyr
�ɞ-�hy+��3��E/�	�
�xv�"Uf�	�yN����=���՘Y��Χ^q�L��|
+2Q��.诋�/�c�c��Gٹ�;�n�V=��v�U�aж5w�2gE�0g�Rw�g�	]�d'�j͙LN
O��x
+�	��*�M�&�NP�eLBX���b-R"�
GǴ佊�K����+��Zu�2
���i��h����&1��Ʃq�ͥG�
�O�!;��Un��+�����r���}FB�'~䥟+�K{ї�fJû8��GV6�Ue{v��-,f�m��C�,zǛ)�:��<�g���
C��N��� Nz�;
��P?k���h�n�j��K���	a�
�	L8��U�O`�9�~*b�
�	L��?�� ���M��"�{�	��6��׾��	f��&>���G�k���x������Ǿ��+(���L<�yi�:
aw��!�mc�dB����^/�e�j�W;׬�:WC�܋�֦g��L�t���4�Y���mvѰN�a��S%s��2�I����,��x|�y"
+AW
OƳ0�U�(}��|LOs����%y���%��k���#��E�(������jQ���{6�j�Dy�xܥcFu~HB�?�/P
Ƴ0��/��
��6K��������ŵ�ݛ���7͜E�ά��-��ɻ	��2k����(�W�ˤ3���綏I
B�#�R}Уh��jYZ��߶�i>t��|h������AL���wSFr>0l�ݳ���tD��=�C�h�;K�U�}B���^��ǂ,��R�
��A�<>�rm��Ү=�Z
?�I<�hl�PƩ�C��3o9�g�EaD?�'������¾}�O:�e*i�������b�
+
;ӻ@�
f��_\�9�]۷F�Ǟ]��2��/y�
9
-�
�Bp����൨{����+�<?W�������0��hp�p��cFtv���Y�r"������auu�e��@>kTN�������bE=ἦ��9ٜ�.�
�'!�_W�C���0�b���wt
+ �㹸�V�MB̢��w�����a�*�u��3�o��0�Jn�Q8��2��X�a;�O?)p&����'���yU��+��+(g�x./�U�&!�z5ޙ�����B�
��<s���� q�8z�.f]�7�x
� �����2۬x�y�<����1�ۃ;���j'�ٙ���
+���,kmګ!�� 1u�M�
�H�Sy}��

���O'f{
��
�>�d�v��[v�UB���4?8ߞ
���+��}P����d-��X.��c��*���.�
�,�k�TR=�X7�gc��f~��7�
W9���ߴۯH{�r

e�<�ԽW
j{��*�� �N�-�=4��q�|�u���q
+�-�u}�b�R��A��٭��g�Ybg��E��+��m�!�%<�����!�|�^Q�c�>
�S8K�֗�Y��;��?��O�EIo�����q�J�fv<g|uB���-���X�SixX����������Q�*g��jޫj}德��cu��&#��[�:���^���9�=eyu�Gl�Yn���⹓�;��ߜP��,��m�P�0�~E\�z���T�!�~�����2o>׉�_ͼU�@��&�J����Tp�X���u.G�ݤ
:Cm7��.��g��O�/P�-PM�!����'�J���:6v���1��}MH��U��ќ�097�R�P߉�38ȱ��q�`�È2?�����'Լr~�!Ki�	G5��g�ߗYut�C�E�ɵ���s�ڧͣ0
�2V��	�*K|�N-*�]哷4]Ys��0�q�V�tY̳Mat���gb+�N���Lkޖ����P�0�Kr�1����
+z��E$q�[��6j�%-f9�T��Jbo=7�=����6ٍ�V��ґ�s�-�.#?s�3�3}��̴^_,�V^�#������]���ێ��X��vu������B�f��^���V�
�ȃ7)rQ.�1��$����@_�O�.�ַY�jd�^�5��g��j��@VG�-��5�N��[2�ɒ�z\)��-�
x����#K�ٞm3��:e�Gѥ0�Y��q����'6���W�5�
0s��t2
#�&�_�͸��6���a�Hֆ���f�[e��dD��U��tK�ٓi&f�<U����괙uT��)l1hLz�b޾��@���ݽ9�Q��h��|�v�I�ǂO��z�+x�lh;�X���$Yf�.��+ڟn���|fM�:��$�q��b����Q��Çs%��@��22(�E���|�/���~��K�t5	���!	a�X`)�n�4(,��|���0:��Z~��5p=z�7&�(�=�A
��R7��u��
O�s����Xmp�,�����*p��!�{{u�#�a�xA��E�t�7��=y�Y�R�����k	��Z:�/w�=]_4��"wVnI:KN�N�­v2��{0�5�h<�������X
�G��#NF5�^to
n:
�?u l���_�����~3��2�'���򓠟����_�f�É����J<C�N�����%>��[���0�
��&�����x��������
{����ùT'��bz��_���U�g@����ɭ��g�K�l]LwW>��{4��[�zH
�W�teu>�
+sp�F��0M����:?)�p�Y�
�t���Tbn� by�����N�w��^�o{]W�c����xZ�ِ�
Ļ��Z�zcu8��~��ᥫ�����U�������!c�sp>y�X
�
+yƳZ�*�����
��{�滶7�b4
C�������_�C⤇χ�f䕋�&�֦��JF�wy{�\�K~R �d�gp�������5��y�5gz��N�v��p�o/��y�nw�r�F�v
]�:�CϚ��.fL
�J�\�™��Co7i�`�̾��I��Ñ��_a<�IO#o;O� �b�$��d.���D�g���z��� }禷ZG3�����E��7���㱧4{I�E�,��
+�����]g0��3�g>V��G_;�<�V��E}����z)���
+{�bPO]�9��7
?_�'S���UY�JweT��%�j<y�v
�{/��i�	'~<�?����6�J����eޱ�RHd�j[�������:�{��U��ݕ
5�+�y�-��tQ(�]��E�����͒�c�Ǐ�P�
+��F2�\AL�����ƾ�[l$����526;|T���B2wOI�g/9
������-�y
8'�x�[�COW�8����+CP?�[?�{�h�|;���Z��X�Z&������2i�y�R��A?)x�[
��I��ڵ��;��O
+$�}�
f*0��[�+��ͮ�-c`�I
F��[�r+A{����
B�E\
�����뵆ʈ~�i
�?��@�.�f3�3�bqH�����Ծ�����k�S�mf�
=�nc��Z~�ր�
���};4�E�EBI^z����l�D��t5�Ԯl������]�bk?�.���J�ǂ��2�
+�1Um�σ�N-
R_�P
�-kK��_�zQ@�
	�
�v�S���÷��C�­�6Q�	
\|#ӥχ�f2��O
+$d ���13%x�o����먷SG۸�3��S�4��+�-�mx�6հ<,<��招�$�=G��'�E�L V��h�g�^�<����7	a�X�����)y�j9�-�ܽ� �����*]�Q63%TCO$�Z�9���<�^��7�6�
y
��80
��nuv���0�ӭ��OSiT<������z駷�ҫ|^F�K�E��ڃ���Y�c�s��
yQ��+e:A
9{�����'���\��5�Ti���r����|O�T�-S��bI5Et��	C/C �y.A�a{�D6

��A��ޚÄ%����bRse�٘�s���Y��vsvA2�8�kOu���?~�Q�����
�϶4�،�	a�[�=�2�A�`
iT.�D��
K���:�UD�	nEI;��Ľ*�B4+Q�=x���,�d7SJcR[����S�W:����p3��'�<�~\���|}��+�y�J9֡qk/#��]��rC\?���^\ܕ�XTp]A}
o�ə���rU��<������r�\�%���S��I1�?
�����4ˏ�>��%��|F�L[X1��ϗ��u�W8Y�A�'�|)(�Tx��0�G��[��5���V}>����_��4��W̤�Y|W`��m�79��꾎y�^K
+��.ƛ���j��wr����[����ji���eG}-�Ĕ��^-緂@s����f?�.�{��.)�囄�GO���g�/���:�yx�9��o�gi�.Ir��G�g�9-&w&ۤ��V�,!���K�.uR���F&S�O��h
+�����#��)�&K����b�hB�㟔]���{��.�-1�%�
9��~����5�m��&���rV?�ܩv��V�����>9�rz<z���8[̎�=ȌR�kP~���2�Q~y�2�;�U�z��Z��$2�m4{I/_]d���S��2Y��7f��uL���0Y����n;�fK�2l�
��}P|�^�/r��_�*���S�ҫK=�jm��9%��gȟ�uju�W~kQ�p5��]aS�w|�͌R�֑�`�8_磹�^
Ğ!�k���k�o�k\�u��uǒ�]�t�����ڣD�܎
��vlY��(2�b��%��I��xm�%��C컭)[�0&�t3�iD�&)�l��Q
c�W�4�.�Ԩ3�G��	vbZ��̵���<�c�9_t�f���Υb68�h5�Qe�(�+ۺk���-!�_Wy�	օ2��Tr��ҍ03��tח��q��Ɣ���_?
;
m���:ZٕtX:��~�v��2o�wp̟�7���l��ɷ�g�O�/&��]��˞QQ+��o��8�A?��~� [...]
+���#_�����zܭm�\cjOգj���ƚȳ�#֧%n
��2�
d|s�4

��!eYq���r3d��wwWC��9����'2b0��p��G����{��e�4 &ת�W 3���b�9lm1hƁWKdz��h������W���`^��b�9K� 9�����bv��{w���{����\�7GP5���#��syn�N�Y�����ˆ�޻;�Q����9?E\;��>@�
�v2�`D_����c����B,X�ꏟ�ڀ��˾�..}��|��3��
�
��>W�$ @�4ᴾE�i��q����o��u�w͝��yx6	�����>o?(�����8�g���LW�ͺ��H.�8�]xw/�tÕN��I��5���<������ >�{���H�O|!9��]�$~E3�����`=�����	d�5���礪6�?�^������<x�]gܓD"
W+~\�
��3�}ZO��Pɉ��g�1ʶ���/�{
���A,�d��9��z�x�4��
T?�e�=W��G\�
^��y����i\U�tw�ӚE�H�w޼ [...]
��-�~������"��I5Pkg%
+���sMp7�i	�qޖK��Q��NزPŹZ?��Z�<ӻ�F�*�� �
����7�cq�	6�O�.�<��-�	7m?�IE�d�c͕B�O�g�>X;���BM��;�
���d�F \T�~X��z0�d#A�u&�˓�E�J�J�\Y��Z��뀆�i�4�7�FtVd�� FT�RNw��t��^�U��7⤶+�-�>�K�7hN,M����^�����Ęa
=�N�J�!�E^-I�
+T��oүV`<

Լ�a<g9�� 
+�d�9䢑_/z_��7��}�*�.ۗt-��j�H
��m�3*�^)wY�_h�*ġ_u�Cm��X�v����D�
��_A��4����+2�������q54Yj�嫳ЂV�p�&9E4^3�>>/�>O��1�4��-W�%.�����E\��8k�R���`���W
а��8]�[�]��<�e25a\��J���Cu˘O��$Es����6L>ԅ�qpcm6����R�_:?���8`�Y��R(!a����R�4�Wb���u@�&
J���P�Ra�L^�n��xz�����"VP�������m:�:��MO�z��wѥ�7���w��w�%>8���ɝ�Yp�
E�w��w����w���}:v��J���d�V�y5�E'�������|����"EՅf����9
+/_:&
+��hFR��S���ޒ8���ߪ,'Iv���F�]F�
��q��oW��
�P�RΠ�F�q�'���^_C�h���̋l�>ژ��tXL�pA
һ5�*��͔+�YF��z�^�M��ꃌK$ɝ|`�]�E췚�
���$~!ߛ_�
+
(��P�T́*=�����`�`|N�63��f'�*�s�oIf�G�� �oE�T�:���L��e\eY��N2]4��
����q��J�
 �Y��P�vP��@�/f�
+9p��^Y�
쌶�Qj�c
|�����1��u�&�:C�4ɒ7
��-m���x��?K-'z��)E@�Oo����u�O������A1��M2�WK��,K��kō�ٚ�]����NmR�,���<�
���3�.��C��d���^JL���m�-���f�)�Me��ׄD/�����8��?�씾i�@���B�,bS�G�?b��gA
�I����OG� O�Ix�ɮ2�]����ܼ��Ǎ��;&J��W�J��Z&[Yާ;tyDֵe�������)��?��1�4^r�uY��<�̳,�V:w�Dz�ű�Ow��Hݸ��\��gձQgɽ^���0��hw
I�����
������9S�=0[��`�u
+�镨�
�r�s�rzd�����ԕY<����W�L15�Y��z[k>�u���/�:�_��uv>���Ɔ�,�j���<+��W'v{�M0g�OP�g��\�
�b�
����O|!9�б�A�'���.�ڣ4

�:�9e;{i׶uG��xϙ-.dq>�{���*��_��y�w�Z� ��!��4Ìn
~��7j�a��L�!��IÞ�S�׾����|^
�S�v����Z��NnNd�
��&$Z���%e�R��8_�P�Y{��?��!
�C^9���>3���b0n�փ�=��/�
���͜�O�p�GN�cOmNN�PY���#
�,7IP��
P�Z�#���/�:#�g�Z#���0s�=8]Ch�Zj'��M�]/M����J\�ZC3�Z}�\��~<��}ů�n�_H=?��eƱ��^�灿ÿ��@�
��E�8����@�
��E����?n�����x�����Btq뫹Xt����
���#��[*̡
ޭ��cm�3S�y���Z��v��Оn�.�1U29���|����
�_�ߚ��7R���
y ������On��oQ��
A��$@%Y�2��

�P6���I
��76Ƽp:^�������V�8��z�.��ߎ��Q��*t���Y�)���vl8���<�
�j���p�&���Xt�qß����d(�W�f��Ϯ�̍8\K���U�9G��x֛3K	(�Y(�Z
+M����]��=�-D�ш��û��=q~#�_�(�ַ���
F�~�E](z/'B%�,�~�ӳ1��5i�j��h�r�V����5�(���(M޶��Gp�ۙ�d���2�`
��{���~�x���X��X��Y����0�
6��ɖPs����{��`��+��h�>�h�I�Q�y�*as�[�^���o�z���xr�YE��K	���,bÚ%��@�G|!wT
������E���-�
*d����W�^�\_I�������e�R��S�5���zG>������Eٿp�
�#fF�"��O5i���r�|�T	�i�H�7͸��:
#��nZP���]_z5�! S���(
"1.
+7��
fMz���;�;S�J H��i�bV�y�ID6O�:G����G�F/�Py��P���nJ|~��<��8��n1��T��paֈ/D#rϓ�3�ߋ���C єw��w�/���]\:7a��
�V�
��h��(#8�#�;���
 h�� �R;�!
+��Æ��PEjY�F�P�H��b��i�2)��Qԕ�S
�ǚ�W���O��IIڄc��S>B�&z
-�#{�k�vW�wǐؑ*���?4+0�Oj��2n���xD��놰��W��%�C}-�v��,�j��]���
e�V�ᕹIc�g�w��s��1�����'
2;r�
s0gf��Op�o~��-
+�2x�h�yܐ��H|V��m�����Zs�Mx
Sr�)3��|y_^�y���i��������
�B�	��^=O���d(����|!��|��Sca7e�(�.a뿵g��?n����ҡb}�ێ�/*�+Z�2Z}ʪ�=O2���eƤ�5G����Uy����/?�6�e��8�
�Q�g��(��R� �����) ��l���MΘi
\xۓ�
C[W
Uh���X՛�j���%g��Ky쯷�CW�BD᏶EU�Y��
�ѾHzk_����b���� h[�t�9��砨�xzE��7�(J]@��y��p�Y�T�T��W�^Q[�,��W5�^��0^DE�g���L�}�]�
=���#�u=a�Dh9�O�|o�m���
�f*�3
&o�d�H�Wt�\�NU��n�,"4w.X�"���
{Y�Yʳ�w�%&
F&�	
���r��ި��}�*�
���G�z�% t�����xvNP�
�f�&��&�#߇�nR��_�54'�`H�E3B	��Pw��Ùe�}�Z�{;�`�È�ʹ�y7󀵻hKRW��3vZ��??��<�w �6�E;0�
�
O�h��"�*������A���{�@�61��7��=ڛ#8��x�ơ)��zM�~��;���#��e���m���ۥi^w�MRvS�=��gI[6<
b��� l��T����d�(�"�ˁn���MBҜ +����q���CڜR��"Y?E��dq���δI��]��j�}g��f�3�Ͷr����I�% �	��4���5�T�,}������_ѽ9��itv�[B�
���.n�1�^"qI��@;�
O޺)��]����N����V4���0ŵ�(�'�/�B��� �9����J�
���}
���O��#O'H%]V�S��lj
F�1l����٥ݖ�������&�d���p����r��M��-������@�Ǎ9J�k�y�~	 
���	�=@o�x�n���Y���"Q
R����xY�yf��m�"�$��(�C��&�3�M�fxrr��wc�˵��m��7;��T
+�F�1Oؚ�]�u��_��.�6v4�����뛵\ض:���b�w1.=���1���R��� 1��~>�Ql�	k���Է���`�Gc�z�ֺ^�:����-#u�_
����i��
~�[�
��?�
+TW�
�Rt�h�s��\c�,�I���f�Œ!�؆�&4�*q'L
M-,��?�����T������b<?�|$dٛ�م�Os�ϧS���fy>)ת3�(�g�Z��K��Z�2���u,�2�h���CǾ���I�!�~��Ks\��
�F
�8���ò��"�/ռ�'
k~��
!��la
�YnҎ�k��k���
r���r�K�
�_��,H�-J��-�y�]�
S*Ceoj�u\���
V��>�	��Zq���Z$5�_K{8\�ة�j���?�&���&�c.�=b��������5
+�
gԒ���ޫF�������F��Z
�I�����<g(�?��}��W�Oj�Zc}�O��s�4�/��hV���據z_�鏱Ema���:�
�5�
r��
��f�N͏��q��-�%�-����NR���s}�/Бh�:Z�y�<m�r�Y���b��_�m�ON�&���n�8:�ա01���"w��y0H��a_.m'��<��3�ժ�������XW�z���`=�� -_#�{�-���9�`�������j5x%���X�S
}��p�
?˨��Ь�
R�ϭ?/�^=
{${y�G�u�w��[�c���;~��>o���?�mj ��F"��w|!9 J������[���<
+J܀�>f?��0=��r8��=����.��Y��C0�&�.XsH�83�/��I+�#e���:Z�.Wu]����Ϯ���D�~]ZϧV����4��?��&�����?��B�c���������5���������)�9VMP.�5PRf�w��R�$*a��=K�.�`q�l�.�V�!���r�T��Fz
�uٶd}>W5=���U[��6��W�iE�e�T������+!�� ���
�7�	(��ۭ:(9�=��}R�a2��r�e���i���_��W�b�n�ѐ��IW6����|�f�uEc��P�X�qY��q o��]���6/�!���o� ���P.��
����t at y2h�҃d .Γ�S�ٕ�$���P����9�����L��` ��Yϥ��u]����kfqfi��؅}��B���<�jc 
/�@i��/`��k� �f�kn�
�I�
�����~���
���j��V��}xS�)�	ΘUv��s��xQ4�]�r�5TgVwT�+*.��*N���|�������-*��F�
�c�ʣ����
����6�#I��Z��ҷ�h����j��]j���E�c
�F�B_���� �f�īV�
���l���=�JeB�:D���zI�5
�R���d���9���|)�P�P4��~�̠�� E� ���O4��B����K����҇�����tw�?��{Cu��?�||?�"��R��&�'�y�9��ݭ�S��]���V����)��ɈPӈ�'�?���h�8��]����[��pk�<�����E��t�y+~ ?Rx9
+���
+?���GhxuO���v���%U��#�_�_��L���^���
l����E
+��6�����$��`�r�.��G�Oֆ�]=�\H���ϒ���VkV�Rh>�~��m��:O��Z#M&��ջ�p��F:���S��i��3�9l	*�
+��yO�P%A��ԟAZE��#\?���G���O3k3���^����-�*�U
e?�?Rp嶳��%��
+*b�DK�������]��L��?�?ŷ(���+�Y��460��U���II������Qի������L�Ӥ^�蓆��Jᑧ�fy��,O<	�Up*8o����J�'�D�]�v��
��_����o��J�.Z��x񣐺E���"��}Кd�厫z$�v�n��4/�-��)��
~}U�r3�k�ь'��DpZ������gz��E6�N̥.
���^m�?��}~��O����񣐁����\o�����������:��ei��i,7��5��ԹP�]f�����!���ѓQ�Y~+���P�/�=�}�ii������c�[�5a<C��2�4ӑ���G�qGn�y�����ﹷ�bi�}���B�kčԖ
BQ/
��ѷ̽��,z�d/ti�);�(�� �G�
+���w�B������`<?X���h�/Ԓ��#�MG�wX
�=a��"j�޻��N�B���+̓��� ^�Ro�$��:)"��"�H:Y�
��[Α���IF>�S�2�&�oAe��[E��@
T�N�d�z�>������g���i�?At���t��4���WX��$Sg,5�5l��{)�$	�i��ù"��_������@0�+�S�JV�r�
;��B
j E�
�F;
TO�}�w$�$�
T���
qy2I�s��
��QD����9�L��	D�ݣ��j�l
�Է*��;�F�ب���S��00d�xoŲ��/�/@�jd~%;P��+q��
TG���
��{�q
+�#�t�}�n�dc����T��;�㧦m�
��񪇇xi����,�Q�&�ֶ{�n�'+o��N�!�5����K�
���]S�gN�y������
������N�9�H��T�19���r��%�v���1�n�5%�>Jo��ܺ���
�N�<������!m6��i����U���O*�{T���#7~�*/9�}v,b�k��z#wt�tGL�$���Ƙ�4cxf�&C�M���)��R

������YovC_;�X��).��I]Q۝��µ�)����
�sT�O
T
O(�Nݸb=
jY�q��j�'Sm�8���pD���\�8��
t��d�c�R#�q����Vߔ��� ���um���h�ޮ��^v�[��e���!��OۼTh���9�a(��.��<_���ԢЄ�'Z���̥�ąA��bݲG�z�?[��	��v�T���^�	����iw�
�������	��
��_6�ivI��/�{��Pv˰�xɔh��
�o\ȓ��r 
�-qǢ
�/0
��
ՕVg"i_�H	[
:�]!
�ϓ��
�W톔]�*Dq1��+��Y���Zg6{7��r��
r�?J��
�� ��� �7q��閗U���sB��
+7qW[\��W
q�aT��и�d��Q��[��X�}m�:�R�x'��"���i~f�t�Ǧ�>�L
�;?1[��d{o�'��z<vz��OPF��L���'����5�yeZ�(h�����a����y��&��<b�].�n(m!|�������"5|)�LE�g�<nM7��7��^8��ǘ,ޣ`��F4�eG�S�2����7��?�� ����e��4Ce$���E44�а�&?{�������XG3g�<�9l�
��c�ć�n�63q��qR�P�1ŭ�7χ�R���;~�5�a����x
�4�S����acS�J��ib}NݎZKX�åϓ���Ōi��Re������e�%3#���
O�Yi:�׽��PV���
�7N
ޭ9=�m8�$�C�/]���t4Tz�eh�݉�S����,����$��q��Ȟ�/��8r��ٜ�5���j�����‡|��ԣ|zt����u�ʃ�r�&9�ٗ7�N^�=m>��`2��᪻�z�n	�
��
L���
�ˁ�@~�	�䧃�1S%�}K������^x���
.��3��mKIrB5���8���a�#
&YO�ϋ���V(e��
�w�
�ֱ�գ�w���$Rmj�˶���
+�l��L�v��?����rD��9��0��=uk��h%tz��*K&&
�Ɏ�P�z�v_^g�=
K̺��uձ�+�Aզ�'��,�b�ܹy�Y�y�sz����/��^�ư��������3�S�b��dS�H
W�84LP��P,�
C�?ރ/�Y��{{�,܄V'(�
f�7������kە���^��&]k^���pp+tAp+���q�C
��;�E{�<��Qpr���⧢?��B�c�h‘�*��/����2m�"yJ��0_��ʳ@1Y(���
ܧ.�8F��$�g�
�w�-���z��S��^i�޸ֽ��h��+ �!
>�Ԥ�٩
ҪS���0��l�_�
纬"�_���Q蘅��	�������m�8AAѿ�@1��/k�}>h(qL�J#�
̵��/��3�
W.�*�
$�)�;0��
�W��WL�n��a7��̈́���~�L=M,K�v� E�
]]jz�6n}��╪�R-��Ry}Y�<��S&Ɤ�p:"��u����t�Mc�x�4�����&�Z�s�[��B�V�:��X�[��_�S8��tM��Y��a�� 0�
��-
J�3�X�A)+7@�蒠�
��]?�������J�
	�5��׫��++Ǖ[ݴwN}�6Ӑ��
��2���b�q��DF�k�����rk�i���+�/�/`0�6(! J���"��4[����8�
E���%���5u��"�.\bAm
:U�mFs��q�c�ف�sp.JƧ\��4������+P�gɾ�7g]�e�<I��? 
�Ё��<(u
���n?MPR-P.�iUي
-�����N5P}k�Y�h�8�웜%-.��M?\�9�8�ފ1��H՚�5�Ew��|�K���ϟk���y�$�4~}�`(�.t,@i��T
G���w�-	�[��r�x�{���L.���s�����	8�Y�
+
%�5�
+oLZ���=��Ϯ�{]�ުP��/��y�
o�����`���P� �?"���c�*[:��(v�]r��C�Y������f<��$%*,hǨ��xa	�
a=��y��1	��o�h2�%�¬��]��Mz�'�(��v*
��P�&�|�h	
� 5W0�X�J�J�=�d��87
���
+D�����L4J�hp-#m϶ȹn?��J
Ysdr�������k!I�Z�u H

q.qW����H�g���#�
s�z���� ��y�@I��3�>a�6������ʪ6	�N~
�u�/�t8�q�[fg��8k&o�/�o�Z8���Ű���	�879C(�o��{�Ȏ��aչC��?��:�;���
(M�wQ���R��MPY�s{�ro=��r�4T;N��)��Kwɝ�#l�LQAϝ��V�F\D�p��%]>ޮK��
�<�F>
;Z�6Y7XF
+e��]�2)���E�0�d�&��;;�� ��W}�G�A�z� �l���#�#�zWPF_I�A	���$�҂�K,T�?����E��<�
Gfz>�
�=�{����
gE!ߛ(�xɴV��u�>(:8��[�"�)Ћ鿼c2s=g�[�gw}��͜㞀�$]�L��LJ�ۘ�����Ы�j��0[n�L���2ai}��ӛ\��h��Ւ=C�GA9�ea笼@�� E�P�Bs�Z�M)�h�|Zn4d��,�z�^J
�
΁�@
+F^
	ʮU
+
�Ճp
+m�B[	�"�(����������9>����'�3PM��}P�W��;�<n��2���a�������#yx^�N��8<��h�_��1ٸ�VxO;
���D�%�	���Q("�Y��7�_ȟ�P���2��Zr�R�?��]��yg�k�y��kt�]���^��c#�
�xj�ݞ�=���m��[�ی6�:�����P�l�A��!��%v�=&�;�5X?�N~l�8~�$� %ӈ���
+��M�r�(h�����
A�]���M��]����F֥ҵq�T.�L�*
V?L�k���R
���Ʀ��P𕗮
7k�����ŠI�&�)�;?G�@F6�,~P�y7Pn�k��!yx�OC���,��\�ٹ\W�B����
'�I���@��N� :�x�8��
SG%�������%�G��)Hs��˰�c֕G��'Ers=W���SöJ���gG�ǁ?ʉ;���4(*�l�E�j}1���S=�Iͮ�LWfv�:U�:ʧ����E��}9�d
w!�t.���V�s~]t���:�q-��]�
?Oص������\��7��I
��h��r�W�~� ��6
f��^���>c�^�s
�V&Ӈ|F���}6U���nH��
[��`�Զ�U�p�/a�:O-�����vӥ��fH���yb�����I,��h�l�� �<�y�4{�5��3Jf������bte�æ��|
������ᙱ��|�����Cl+5X���+^,29�l+�ټ��NW��`ZHIؤ��D?���:G�&���k�|!w����ߥ�i����(3�
l���W�t��{j���.�)���s�y���q	i�i
}�|cֲ/�
���n�E����dv�K�c��鏉����4?F��al
:�d})�? 
�^���.@�>�ɏ�t��%eպ2�d/�ջت�5n61&
I9��y
+φ��/
��+�i9����b��lYǝiQi���>���dzD_s�Qs������3��97����Q5� ����r����Y�
���d�O��%
\��JL]s��)¿��^���
ĺS��
�������05xA��ۭ<�C}\߷�Q
/G�õ�vG�����j��`0�
�Ŀ���2� 5�]k�yڭ�z��ɞ�ڛ=.��W�7yn�E̘ջ[�!/VO�X\��L�.7�J徛T?gr�p��2j�C>~�����u�$��{2[$��
��^�fO>UG? ��a�>��Uk-=�
8��s��?ʻ=SH���>u�-�~�u/�/��Ȩ����
���ƭ�}<��i�p��W�5�
����O��cOM����0T{����^=���tה��
~�p�eK��p�J�.�:ϝp��W��o�CB���^N����I�����)�B���|���=9�~������$����Ҥ���I���'���[t���`�!�A�ɱ�5p�M�G�]ߝ�������i9x��Ǟ\�� y���� 2B��Cu���F��b�^o�6��ݰP=
>�K��k��Ӱ��A�n鶺u�����t��.'A3��+��	�h���<.��f/w[5{�,�HJHN�#����<�~�/?���lB̎��A�53���
z�Q�������g�[��w�q�f�y}��6���Z���Z�Ԃm
�S���
a�P�ka����'(����%������{�0����
�ö���z1
5_ex|�%f�G~0��䞶K��Rpu�ޑ�}��v���2N4{��V�\�c���I�T���z�6���Z&�N��vkQ�?�;��=Zz�<�z�w|!���E�?�
���
�/K_yw��0� �?� ?��W�y���}=+b�y��K�N����f�Z;��o�;�q����%p�r�IK"
��ѭ
+Z���s�Vײ醦[lg��;�]���S�h~!� ��A^~�A�XCQ5}��	�n�
+�*�B�
�U����A���}�ݗ��(jnQg���
����/�'!�J���)��Se���R������z���s��g��zV5N{_�w��R5( �`D
� �
������̂�^f
�!m�����'�V�z��ߛ`�F
kиq/��
�Qx�R�pT~�Ä��i����@�΁��-��_z�}�&G��t���Hu� (��P�^� �(A^a7�0��������Xm�e�퉺��=,Y��@/�?���7��b"5
�eoH��
����+̸ 
oh���<�|O����0u�&MO<Em-��/�{� �V���(�+P��@�<:�؄��∙�=��=�՘����e�ŨKoj�A�|!�8���6
�����@���X��
x��NF�
+X�4w�d�ӯ�u�V������ ��T�#Vb-Ph�ˠPv0P,h.(�VeP�%(��)�U����zv���n�oBs��W�\��8@a�/|���8�]m���sY������ش�FrL��dŅ�:�y����
�
��YH0�
ԜL+���	P�>qzY at A��Y�R�u�s���}U�
A #$�RA�6
mZaJH��L�<�}j������5����h�p��#��4}�
+9h�/�m��`4dϟdc��/���� �;�Mǒ
+�5
+
+���CP:�k�䌷���gP"x�����G�%2Q�Un�5�d!3��,~���]�X&��)}p�bUv�
o��5�
+t���K�n��Ϣ�e�����D�;@A$��F���gv((��|�m�(��-(É
(=t���prQ��CC��w���3�
xs�V{����!
��Y��H��{=-9^��"��De�dO�pG
�t�JJ�� P�Y�t@��j�(
P���o��e�_ǫx����_�B�<�l!
#4�d�n��Љ�娥��̩M��w�+Z�ëz̹r����Ϩ ��;ƶ���ޓ਑�����/�/�
+�I�au�h(�A�e��\rq+�2��r#�7ʷ��R+�����H蜠����z�5�~�xv9�v��y:���#����ԗ����L��U~z�m%��(�B
�
�
���p���(�%���\P�\�[J���7�G\$��� X��*^�b5�_�N�u�x�&!R)��w�è���Zթ!՞��j�nT�n�:a���(-	ƹy�<��$����U�X0Lmء�ڰ����w�. �N�>�c��{BC
j���x#�����Џ�H)J�Z�`m�3^5+� ���L�T����m'1����R��#��w�5���ˠ${��06q�v�4}^���+���B�r sW3�b�o��Y����
T�K��rq�.}x�;}ƪ.�����4b�o���.pE�Z�ˠ�F��n|�2�st��><�֞
�=�����^Q��>����>Y��Mo1�? k�C	#Z\%ڰk���z��
T�x��ng
Ћ��*5�6�y�wP4p����X�LB
�H�2T)D�[�<_�u����)l��
n��zn���MuCY����\pSXR<;����x
+�(�1
T��@������G���9�Ŭ�x�
��+�)��	��<�@�>2���	��1��R4�Z\����n!�
h�����9������
�s�>��aD�*�����u �Y2�I���
+��m���{��Π�2t�Ys������}�I�~8�羠�>dcT�|!�w��L�f��9]a�Xb��n�ww,Ĕ������+(��N�����x]
?�����_<��]g
����c69��ZsYۏ-�2��n
�����{]r�
�h�|��`\\�z��f�H.��mn�K���n�iNw�z��v��h��"��Aqٻ��w�y�<��#8�Wf%�
tQ��|�
Tۋ�s����SA��p{.^�+�x��%�j ;��fC��z�YD֠����ʹ��ً����=�h�{���s#��?�
�ހ"�5���Z%s<@٫�'�}�tX����g
��O��d��I`2��a�5��G*~b2���{y+UnsA���e6Y���y��]�2_6��V�g���F���
���{�� E� 5�-�W6�
<�+PM�ړ�T=8�sJ�r��c凇�5����ݤDbr<p�������D�FEi��z�j�����S5�JNַekR�%��|�V��P�͟�8 [...]
+��fͼYo{Zﰅs�˺���PJq��\a�N�C����
���1�m���
��v�q��W�Q8.[�{��
����`0����
�k�
��n�:�a<'#'��_���J;
+��֓@�d�~�N�;i⡂�ٕ��Ğ:���!��!�i�|��������n��HE��ev�ۉ��両��G�*
^�l
�����\?�=:��?��'�
�18N��ྣ��P��ղ2��7�Z:��\ ���ӓ
��t���Z�>,l�x׳����M��{�;�Ù~W��JT���yo=|�V����������)�m���)ݽ����:�a�y+���I��.�� ��'t��.�;��1�;{��ݬ{� 
۷���
!�w6N�>_��C���:736Vq�ћ�����C!-b at M�y�驧��Gؙn+�4��
+�E�� *
����
+��8��
*�z�'��o�9����y�(��%22�����<:���r��� �g*���F�>�}�������/�5�F�yiП��s��Լ�F�nv���oܠ�m��ض�J
��I:+�����
T?�&
-���LIة��[�"0�|��
b�r�d��
��rdx~�F��r�ϧ�e��JO�S�3k�?X�Ƿ?�
:�I�t�,��� }_V9#��uOH5�~�o7r�y�^N��,g�I5�[/E���
+��<�|�s��T���*�J�,=7F�$c�;�rh�njP���	�9�{��gl&��2gw��.�0w�*��Y��^�L����^Z�C��.��?h=�R��2
��e�7�U��->��*�v�a���S���EP��)���W���,�d{�����d���~�
���a�(�

)
CqV�o�{�������M��ڊ��&�k�.�_܉:����hU,q���Z/Ur�:򭃒?��*�
WX��J�8�[m悉��u��͞�ۯo}6�I�l
A�?�� ���6ds}������N�2���ȝ՚���Z���?J���4ʶ�i�DT�e27�,��������2O>��\W8��
�l_����2ze��=�D>���PT�~
*Zd�
+DW�3 �
C@��
�
�x���R Q�<@t�! �+���~
�L�ϥ���-�' �%��W��K;��٪U!&Z��	SI�✄l��f���&�L��<i����@XU(��{����2 J� ��
��6JB��P�уj��ǃC ��w���j-�/=��/rC~�$��J�	
5��0������k���
wa=~��z�\�����3 �#@;��Ksp��8 F� ޓ% I$DTb�چ
�NL�v� ��v�	������MI�~�IWJ�&Dńٗ��Toq�9������W�}�Y�>��?���}�3?�d��3�*�s�
h�G6r���nV  ��
�jԠ���ܿ_4 P�
+�-�z��&�̃L��G>��I%>��r�/�8w���kӘ��v��^^�pkJ�����b*� ������}@����E�� �H���6����7+@�K�
�3�ej
��vS
$��M������-��
�0Zj�?-�
>�amqw��!�ė�%��6��Z�T���;�3 q�A���"�?b7g ��|�
ŋ{@5�i�w/�7��x��C������>��I�x�_e��lUzZGG|�y�]�݇����s%���2}�|!
b���+�pP�K����h�g �eB��

+-^`[�C���-�������y
P�J���H��{�]$G�HǗ̑|�n�����a
ՓKk�cjj��e8�d�8_��z8�Sq�Gn��O�{S�����-�@b���v[?9rB�F�t�?�]� �"�i�
(ǚB���P�#�I*.��Գ��
�^����x:�;��"�>��]�<��{4f[c:
��g�\&5�X�sb�� ���2�{(s�� 
+�
+��D(s��~M��-�������iծ���?�k�<�o�ޡU��)wR�f|����*��vʋ�
�k�-����������|���?�Lˎ�?��
v��e	����;(ڳ�����'0F�-n �7���f�}yP���&�s����V�w�g�QMy��e�e��ͭ/�'v���cs��Ɋ�y�"}E��v�i{�A�5����>}�
���t�Z�hS
� srn �e��t��52,�l����$��_�=��$�+
	�h����X��C�\hL���
���~��A=�X&��p�V�����ioO�&�񨸣�S�3��)�׀����
���� [���5����ż�-0���WgOW��{}t>��^
Egk�D��
2x.��/�o"u�n9g9
��
�6����'V��t�W���z}�Z�a��k�[ �	]�oh��

+��ʷ��@q�
�A�,y�_���xN��}WeR���r��OǩЇ�~������6W;�Y��z9�[��|�iϴ�џ�f��k
��#Ree,󙚽�DU[i�� ���4�D׀b@�*<4f�[�ﲶ$`=�;���H[�~؎�����Z
��k�����Nk�
�Ky���2JyA�JO�xGr����#s�8�}*�29�F���:��}q�c�� y|O`�Pf�P�h
endstream
endobj
34 0 obj
<</Length 65536>>stream
+:l�~
%�0��~�LJj�����k6k������,��Z.�\���v���w8��ɭ7}81/��^ ���WF���
wu]
RkQ�͢hx���;��
?�?����B]v���i	 ^�U����7;񔽯�9�vJ֍3
ջ��-�� ��k�>�.0��x�����pz��,��G�u7
�K�2��l�yJ6V,��aJ4
Ř7
T\��ҟ�g�\��_��>�0ǵX.��2>��94��

"�od�z�D�Q�����<��P6�%Z�l�܈
�y
�q��Y���μ�۠
�}>i
}��fIp3�:��dR�����ˬ�g *C��̺���]�A��$�����1�������Oȶs��۪��S}m�����:L���70�
o�3������NF}^J�����
+��.�s[��Q6ދZ�'E��
?���>�;;���' ����/K.ȍ��'��h�,<�Q��
Wa*��Ma=Ӑ����Ԧ�
�.��=�`&n����7�j�.^�������̴��#�!oI��ҥ.�"J]u@��M��3����������h���U���uy[?�i����"��;�br븹�r��$ﶨ+�l��6y��͈X���
t�I��~g�z�ڥ���[��f�F�bz�Y�����	�!�I�� T��A�m0��
�·xg��8���h�~8W{���-D��%���k%��ްQ�L
iLdwukH�Ծ�����

�Jo�-a\���zj��+�f�
ߔ�f��SfQ+�sN�|'��s�^��{ H�9�F�
`V�`'�ڷ�h<�̣}�:��v���t=l�~�ZRZ��*�w�
�/��4�.�Zw��*�m#i?hK|�*bV��~������wGR|�SQӗ^I}�=�9��V�>��Pach��lIN�\6�������(�{���AN���+�lW.�gC�ݥ��Fg��3�|�d�
+ɷ�+UmM�����aO�?#�fJ��
\F
5X�6�l�z�p�h����P�NAMk*�g j?Xz�?~���B��p���A�R����m5�+ҭ-fg�'����q��fR��^�x��<�5��
3T���֬;:�+�ҡ*{D��[}�-U
nB�6@��z1�z������}@�'+����
;OX�t�=�a��h�t��2+�����]w��;�/M"�5
��v�;�='�j/ʩۋXVzn��Fά��V_��T��Rg)#0)�~��P�J��L�:fI�>
+��<,̹?�t�l-s��7�y@�^��xs�_�$sX�_jn
+�W�ŏM{tL��x<�����)�ُ��Ӫ~_�J~!jc��	?�K�
�"��}���/���%AwSTs^G\�x��dnY�����N(?"T�;���x˻�p�
�μ��o�鎕uh'��J���L���

��N鱸��Zzs��N��V
+���Dg��N�,� ��^���`P1����L9����V�
0
+�
+��h	�C��[���6�ӽ���ێ�F�פK�.]��z���9#��͸>P��8i�o9�i���
�>գqʯ�(�f�Ŕ��)R`�q��j��كK�]���Szn��$Rܧ$��Z�9����:�3͵����v
�rk�e���^���;��S����_>�#��S�R�b�5���ﲡ�F�z
ԞSaT����Ԥ݅X����"�݇��+�*�D�.z
C(��A��攂p
+�'��
���>����ݩ�R��J��ʹn��M�����:X���8�����N@�,XD��U��+��n���������]�N
mT�������D�4.�ti�-z������v�g������B��'_�~��M.�gS̑�Ϋ�<�0�Gü�
\o/R�.wԧ�B2
5�/S���UM �}U��3�����
W80y��+-S�t���2�\��E�����I��cޣ���O$
f��j*k��٬���w�v�3<cƗ9mt�0fx��v
[9M�:X�� �U3�ICt��=�Nٖ����vl��'�� 3����:O>��\Wx�ٓ��_K���SY�y�_�M�u���M)Ϫ�~�_���Q�4iU�n0�+�K7�S�/�ˏC���-}��\�/��\�LQ&�
�9e�yߊ+�`|��%{�.��u1�g�Ȱ�حA�~�=ZdC��]�s�,I��	��s���H}pV" &�?�Y��
6� }[���M�
�����܄{o`7>�̤V[	 �
�OzГ [...]
+c����j{�vy�jo/�P�-���	 ��Pm�y��">��c�;L���po��qtݞF߷�����+6z^X +xS�I�
������� �?P�>�&5��j�
���Xf�
�>w(�k��ט�vJ�� �Db1K�qw�4d%wcf�����u>љ�opŃf���w1i�l� _�H@�{��L���<Ն�P`ai �����-ʛ+T{�My.�P�
��T�N���4f����X�y��ޓK���'n���n��[ ���@�!�Z�pV=@�u
+s�e��� 1�����w�F<Ns �
��� 4� ���uT��e	�!
h�x	My���^|���GYح����]:�<>�\s��sw���/�������~��	
+
S��� fS�I����=pD �D(lj�� ��u
�%�އ3�z{̦�o�(|`�A��,��ÄA*�G��o��]\�[�=�]j�Wj�׽��
>��o�E eV�Pf���P%��寺-��L�% /�
�Z
DT+�k� �L��N6 ���������l⋔f�_f�\��
?��tE�% `�+���F[}}k	꺸ǔ���Հn���i���7����r� j��e�O@�
+����mt�3�B�t]��C� �> I�t��`@�λT�Oe��}ⱉ^Vkw	N�2 d��rho3�v�ո5�R΂��%W���� �"(t���9��ĥP����Y��5LHK �G� �l�W��b�I���&�d���6��gq�!����л;����"��'��W�cn��\���kx/З�Ui*+�6�A�҄�- �y� �$ǀ(�`����T0�q�e���������Cɶ��u����x6��}:��ZP��(�y���9}��s���9o廇	Y��У�����Ul���-���v���L�2����o��
(�Z� ��= �ݿUۓ�~���L��%\�Y}�%�.�\�
׉:���h~�9��v�CR��`6C_���w�b���p�����J5�}kX��OB�pXXq˔�9��S�~���
1(��}������~���/�g�0ϫpHb
�������L�U��Q�r~F�c\=X���v�����L���z}��KX���#�#�I�ٜ��[sz��	����3e��/V��U�)؟*��- !�=@����� � &��Z�!�� k��� +���"�����4]�pAN>�/q'i�F�<�X���r��[V��v���N��� ������-;O�Ï=�+ۋ‡��kftʏԧ�
53~� ����-�[e�I
+��v
�d�
?���H�r:l�g��vO��TI/�1��H��⩍5�ѵ�|���M�
z�p5��<u�F�zs�� ���`�ߧҨ�x��w��P���DB�O���6�/���U(�)m�u_�y\�o9t�����)=�s�5��zy�ӧ)��������XZ
�ku���Y{����Z�p��s]����n?ZϢ��?�KCJlrVwVɛg:˚�#Θ�L� ����=��PL�
����Gl�m��ɨ��
�����u����
0<H���ZOd5�D2Jyֹ4�I��՜�z�Ʃ����Ͷ
t�4�T8���`�
�A��B
�����q��6$��� �'@{�#���4�BG
:-��>w#�*/���sJ���Yi`�ؗ��2��v�
�8?-�����0�V[bmH_7�9Hf��-x�ɾv�Iv��0 �m�')m�'UZ$��m������M�٧P�~�L�`�
��2e�Ǣ��n�/|ݛ�E��[�\}�0=ߏ�4Dnjf��ݴ�Ґy�� �Ft��cۥ���]G [...]
+D
+��s�u/��
+��Tun��7q�+u���ڞ��!={�v����%�%�!�_��b˩�$�=Z�+�9�A�܁��G�ՙ��M7��
+��Z��D4���
��z�_U[��-��k$�	!w�����V
� ��s?�͕֝v��y�-��m��J?��^�ٯ1*��� ���=�r�
�*��W��תw�Ӹvr���LTFѲu�Ѱ���
+T�����~g7���Po�2�k�x�����>؋�`��w�Ϙ�����\nv��֚��^u;�F�C���7������`�ݚ<��1.3J��k��I����H.��z��
�<�c�T%����)[��4�� ����$�����/��W97	ک���m�� �z\���`7^a��q�i5s��>��
�o
}�8��
yk�6ͧ�.)��hd�Z�ry.4��zdK^���Ru���|�W�u����F�z��׎a�- �~w���i�X��
+2\�g�Y����0`:}�0�O�62�i׬�q�8��P
��d�N�f�
�Î��%$d>�-J ��R�]�a�"�(QT��(~�RQ����V�+�j?G�/�����@���]oG��i�ž�^���>?���7N��	��q���C�I����6�5�lۊ��h��h�W���Akv����,
��FIl������@��<��T��$%�ͬ$f�RN�P� t���,��r�{����6��s�LEWh;:A��Bf�X��F�$#,�4�<���ǰqXV��m�Z���
�3�
+%�2R��2���F�\`�C��,�R6���K��Z�r��	�$�ֲe�]�s�ŵ?k���__˚ �����ȩ�8�9E:��Ѭ�
+�>��.�o�HI�V7��vO����t�e�3�j��H��z%j�
�ؾW��q�lg�l�-���k!�E9�9p�k��-�f���Z�\���rQ�� ���=p@%I^��\e�=V�r/�Y�]0�N����yнv�K�-�*�J�ڥ�����&�#��������M�[�
>��o=y~����n[�������Ta=�s�l�u�9ϓ�f&̯\K�Ja�
��b[6�yw�g'�yȌN��0�9�0�qXj��5?����T
��bq�J
���!���.�@*�	A����N���2�9�]�,���d|��O:`��g���z�YK��EJ�3�!z�
*�3�ɦA�N�
+�*
��9>�{Io�X��\�fM �VUP���d��Qc\� 1-=��e�Ӷ>��N��f�s��e����ۯ5���v
���5�5N=Z�q3ʳ�
%�r%���y������$�0�)��@>]�
ӓӭ�2�S�*Ԟέ ��I�V9>��üA����&�EǕ
�|Sɓ�|3Ǽp��}��-"��w�*q�i�s�S^�!�k7�!0�����\��z�
�M ^������@�O�
S&�-���Qm���r�D�a��u<JJ��p��")4s�w��R�i�F���a*�I�"�R�׫gɅU.��{�L4yA��i]�ɏ����h�e���k��E�d+���h�B��@o�:@kg
 �'� ��_t�� ��
2@�U��w�E��ȕ�`
�x�@,�}���� R��0E@�� ��]fV �'��L\��B�]�T�^����s�۴�c���/�L������}�����
@?�7�H�X��B��]��� (���Z����uϬ'#��Ks�Ԍ=Ժ��.�r��+$�m@�M�q�j��A�}������7qQ~
���پA��� *lB5�0��V1�U�^� �2=�ޏg�:�@�2l
�'B��@��ƌp2�V�3�
' �X Cq
�2b���a.���<����d��ڬ+����
�:4%���	Ԉ�vYg �b* �v� ��3��>�4�Z�Tu��zr�����6��
@v-J^� �i����7�T�;�}'������[C�׭���=v]�-��(t��y���<XR=�=�� WW=�c�`;:XM�W��A�]�`k�
@Eb
�|mP||�CS�<��]���B�$X��n�z���l��*a^�C�}�H]	����[@])(3�� #�����u��tD��� 2i�kvpQ� `
�
W%����4l�4h��A���
+�o��h@� ��=zYo���։����X����~�
B��>�~
��px�wz��
�]M�π�90�i��<����x>��'4�u�ѷ]��`�
N�@7,�j�%6�dfJ��v�GػM�z5m�{�g/��6���ږ�N��:��o�I^�����,�#��3������~W�hB�&�������
�x�K�]A�$��&�-=������
+����h�-9��H:�h����0Sx�Ϲqd��qk,���5��e��K�Y�Y�- �)� +;��	y� �؎ ���R�6��6N��
 ����di*�������)�1/t��
E��3�`f��˭�}^W�&җ.�VN����GKۜb���8'a1���
��s3|����_��tI�	�\�BS�6̖�K@�6@-���*
@S����[��+���^�w/Ef�z��C��7��#G���
��~<�wFZ
b�v@��
+Rx��k���&?�Ð�����9.z��875�<�f(�[�Ɩ��s��4Q��J*4�ӂ�.�o�*)l��#ɃG��Yp��6~enx��iHf[9����}���vxx�}j
,��Yt��ו��><�?�FU�ÅS�ɲnX��ni
�4~��
�#����KCSJ[@��[�-}�
0�k�3�هc��8;�:��q)�����h�yԳ;-���^�6�뽱z��2!����,���6G���G��I�
Y�a;�xZ-�;`p�μ�_�A���P��xׇB��P��
��.�����7��d1�#|~��
�
�{��\�{��xoϊ�l����-�B��8�ψc���^Ǟ�˕?)��<�Nn\�r�]��������_ Cm�O�Д:�D=��o��m��2 �ԅBW�Rb�O�!���]�9�۸0?����'���֬^�k��z/k�6oη��ʅin{�(�6
g�5���ڳ?D'�3�+�a�>n�Cr��V�!f,�)�͓�|~
�W���?��_Ӭ��v 
zz�,}-�|�W�M�ծu�?M���
�mw����a-L��e�j=g{b���g$:)N]�q7E��
o�h-oZP�mdz�d1�"n�U
+
\� 3��{
+"N
�O ��,��p@�Zp at b�Ͷ���	0���:�����!�{�/e��<�83رd�����R�gN���é��c�A���l���F���P�K%�L���
)��wb�����W�I�WƩ^�����-�[�-�[^�5钞��p̦���w����4,
?����םm�
�j�|1�_���_�\�J�q]a�FOR�q@�������H4��эZ���w)m��R�5R��ǐ��ې��
B�=`r5@�B����4/�I��gR,a�YR���R�J�����UÄ�e+i�w��I�48�[�2�����YE0(K[�7m���v�r�u��=���{����C�W�Ջ_��:�t6n*�~��n{ ����$� 
o]���K=���sˁ���Z�R����V����xlov|b����NmX�G��Xy�T*���YK�����x�,�zN�d�S2���X��'o���_�Q߽ڴ���m��{ |���:�
�`���3�,��rz�xf�
�v����oqAU��4�֦�)���'+�"a�����^j?�vv�䩟I;�%�i>������S�}5]��n����mE�k
;�5�<~
�Gz<� =�8����9G�x�nV [...]
+��)�G���������
7�iHY�r.z�LJ1�A��w���B��Ԧ�l�d����:(Yԇg�7�$�=E�{�`�\�M�[�g~U� }���8Z��p�v��z�7�k�Q�S߅�Kٴ
+IC����'f����\�&�<�b8>�I������M��H���jf�����G�g����=(�z͛b:ܻ�[eH�K��X6�^k"�U9��1곞mW�����Z����r��}5#��»�c��Z��t\ߍ��o�D�����{H#�C��x�����֒$��y��p�q�up�
�,�0�se���d��n�v��S4[���U�"�P:��v�"�t��Rb�yIz`-�.
���HH���T+x�]��D6�����+��~�
+O�1u�U�+��ֲ�U�MN��NU��򝁳y��6���,^�g��b)�5�����ڒ7َ�tf��
K^�Z��rELn����h).vL^D�iKX?�G'ڤ��XJL���8��R��n�~
x�L���e#��U(��*SYP;�蕱��*

�/���:È�-���u�c�����;�z�U�^e�x+�¾�~m�/�j���ykxUf��|X����w����/Y�b�A����k'FJ�:�~��ij�`3|�g��P�M\�s�pƍ�1o)
���4��r�[�D�n*�Ĺ�QNo�����xJ���]����)���w��݁?0 ��
�|����0�O��i7U��A�u�l21^>�[������
+��
+�ji��*��}1�
,C�Ck���h���3��td�O�ɮ՘�J���R��x�_��e	��k�^ٴ�ck7���â<�S�����_LN�\�*e5n
��ܼ�a ��
8�X�݈��bgxjq��+�W�[��:Gt�%U��hFH7_�ۂ=�1y��ڹ�s�"���[P��g�	;�!074߯
�8�J��(��a|��w��u��E���N�ʓ ��94h��!�ͧ�Z~m�
��Za�kPC�Fo��"���mڝw;J���
��@����l��7�
U
�~7v�nᰨ\��l�Z��䪵�(S��S�\滒)���Z�u%���뎙���l��ݙ( �mdGL�u}��������,{��`9)�摉�嬟4���K��B�n\UAEQϦ+�ix�V��Y/�
�Y�I��eN�Q�n'+O>|'Ǽ36����"�81�v�i�@��
US,�����ŘtI�����k��Y��[��q�
��>�5ǟ�����^��j7{VdD�$����G�r����^+�r�#L�|kI纼�������T��E:�(9*��Jtb=~����J��X����,�R�ɟH�i�5�~;���g�
/���[��HHb�K�
ᝨ���+KϹ��>;�P�.�T���������v�㍒�QH*���A�fE�q]�,���X6S$�~Sd��YF���d*9����I���)ϙ?R���@
���A���r�v"
F �D?H���� ��Aft��LۃL�~�M�t|�@:a� }Q� ��w@ڇ�Mڛ
Az�$-
��	��݀�mɀL�ξ�x�O�Ր����� �b�'�ū Q'P�� q�K���w�Lp �,B��7���)���d�N
%����
��P�q �/i���
J*�@z7�!&�W!�UX�yUJ��������>�_�A����
K<�"+C+����j
�\��� E*4 at 6�*@Z~ 
6��z����+2
3�zd�����1�\k���<���1|��8�K 3��^���|���+����_ ȃ�2���� J߿��
���� c���,@��P4cd+� ��W���@R�~w�
2�^
���퀌c��ҥ^c
+"�%��
?h����V��hBL�۲ɰ�V1��
 M�q�ՠ��
+�g� }�
���:x�
0.�,�� ]VG m���W��
���� �r �ar��+�$�4��?=����!�'ټai���7
C�V
g
�rm��™�V���t ����>4a
+uj5����
 6	& ����ѯi�e���_}
+��
+�
���*��Y(����
��
+��ڋo���� �������C{)>�έ�ʆ��z>�n���z?Wi|�Ҏ���� M9�2߸��= 8Oz�����	��� �\� Ͻ=��
+'��k `�	���_�o$�ⶓ��a|D������j��튺�vX��ɻqk�;��$e]�����`En�o��j�������U� ^	L�ߵ j�
�9��f-�^��)��o_��Q?hܯ~��Uy
Q�*>���zwܫ%�Ȏ��gΛ�C���Ы&D�
}���r�w���oN�ZE�]�E%�x-��f��
l�1z�) ��m�2 �����2�: 
3+9���3DW�Ǹ�
�bX�D�\L�H�\�5كx�>��%�l��1���\��:FD�~��_�%_����*c�R���|1�3�f�~{�S���&�_�?~ͯ'daH<��;�c~�� *{P�<��=��ގ>Yn���ầ�������֜bNJ#d��+2���J��ٌ����z���M�1�J.�����%��Na>��
Rw0�/���e��l�A��u� r���L<lؤ@��Ǥ�nEpp����ɽ����q������a��
��3>u���Y^�7~&���F[U���M벐�)l�
���K�{[�i�
�
�k�����#�m��b����
(f�Fb�2���O�b�H��`��P�-8�&;Z���s��
������+~��R}E.R�^~�
{ҷ�O�^�fSC��I�z��x;J�%��kn���f�V���_�K&^�U�d���P��К��G��T/��:A�x [...]
+��O ��=?k(��
�*�ї���t�s�+�N�R}{�A

{�O��TL�_.�VcN*���Ω��ˎ#����H�#\����d|7��G;��=WS�'�dz�(u��݌�W�

o$_
�#�P����x��8^��oUl�|����xzx�Ypc�{x���v�vl?�C?!V3�����z}��M�ִ7~���lt&O���yi���~P|�ބ�$��=�]�@V�H/=�l���E�D�v1u�"9p�"��� �z�4_���(:�uX�?�w)>�)�]��zK��/^��x�Y��)7�F7~b?Qő�j��\�?d�xdrHk�w���x˫c�aj��mf�4����
[����8���Ҧ�S�M� R�c{'�N�����C�]�
��+힣K�<Ζ��A��枱��mٹür�!
`N��tx��
p=�v3|��lM��gf���u��7�w����� �M�
?�V�l��Z��!�V�5�盍�vA�'�|1:�~���k�/�ή�`*C������p���l�Ak���
����k�joz���L?���Q-?FǦ0<<��9T)�/��=�c�;��M�ӂ\k��zj���T=*����h|�{_���)T
+��c!
[�@
+Z�O��_�]݂��^]�o/��l�-1�t��ݱ�*�h�6�@(
��-���g�����RN�e�S-�Q�+����0�ޡ�NO/���烹
+zn�XR�C٠\�����*x{�U���ܨ���ƧE�j

���� ��@�G�}��8������N�յP_��:�EPT{Q�����X{�]ߙO��ㅚ��
�a
+�;n7^��)4W�¨����̩���a�JF4>!ǔQ)`�>��L_�,x5_�ڽ2���:���e˛�	C�	�U������5��_��M��nBv
��>
O�\�<q�|�����?���A�<k���2^��w�i�]'�_qE�����X�İQm��(���0�~��Þ�w�tI-��Z�����8`���{�{�k	����
R�6'�m2W�k�z֪�f
͇�����qnn�S��zx�ޚ���T���UF���I�MS�i��*��=BϚ�4kI.ۛ䅴e�W���yg�~��P��9��)���"����
�s�Di
{{������
vµ�n�ke���!V'��V�ѨO?�Fx
+����|��
%�Z&s�c� �m�a�}�΍dJ��L+7��yG~���u��JK�^��sRn+���)*
a.������VY�K�W�
5�[j�	SگK���S<��S���F�V�Z�����z��7�TO������~��V�IDjgn���d"��tR�b�!&j�IlS��˨2���F�FF/D�p��	.�v!���
E�~��SaTm6Ҫ�C4��ԯo{�Y��w�Z6�$,��Y��̺�EfL� ��g6�4<Vy���ZJ�����k!�g�W��E��MF�ܩ��^�tr6��8��LP�ݝgɁ���v[�k[�V��-f�͸��n>*s��Ѭ�ֵW��?SVGƠ1S�
+S����K��b�Y��޽�<=O��j{�^*N�7ƒ
���6�N?�\�G�����H�o������e7b�$�X���|�X\p�
�}l���K�N��i�N��������{�h��KN�ћ��EH��&+���+#�Zj��KI\�~�]Oο�!�lvՒ�]
�
lf�S0Q��=��Ͱ��탞�a2�/i��2+<6�Ъ����r��)�0����Fs�=[V�;�
�Q�>��Js�P?DY��|���v���t��J'C��������G�o����_������~49L
�Q���
�k7�>�F"۵�0�K?�g�&��\�P�k��X��P��x76ˉ7����`UJ=�CN�t
�b������	���gs�E��_9{��wr�+��l
���_�10�izr|�,9��<��tg���D�S�MC�(���u��Mo3i��J��
eW�a?V���j�WM��|��):��
��˳�� g��iv���td��I��G22w/fRYN���<�k��ʦ{RF�?�t�\ [...]
+~���)�J�
�uU
+�^��ĩ�� �g: �V =ul�N��J��t'��� �!�Bz@����"���� 260HP Ȥ	��< ��
�l����
���(����>cb���F#���
�
+�q�����
V�� �<=��+1@�i���Zd�{��m�
}�G� �@�Qy��@����Z� !��F|�{�"�S�(&֕�6/� �3�aQ`���S�S�
ܛ�0��9�֐`�� �z/
���#�nnK��HxC�o�$�	�.]����(���h�D��qAL
|�D;�M^���ay�~�
��
x��
+�#8��"����N#���<�l����>`KM���bk�tX���ׂ�p�yX��Bv@�*
4�
+�'d�~�˩x}ئ���&^���1ݓ�2� �.a��+��[J0�p("wR �'���W�7K|;��t|�e�X"
 8�y�`+��He�M�&����L��e?�pZ��'�L�ѝ�;��f��{I<�V����h�[�/ �J �}@��o�q
�<�V��̿o񈏀H��u��f{��D�<x�]|�<|�ޣ��Y�by�l��Z�F�5}{���ﶯ����oV�
�c7s�>~�gp�����j���� ����| �''�� H
5
�.�����^}�FI��z����ږgFK?ʉ��ݟͱ��8���R�-���W+��~>���Y����<��++Fn[# ����:=A
Ѳ�3C�
���/`Q>J���<�����-E	�
߼�TZAvW���HK�J��I�?J�_�������K�����3����uJ���U�Nh��-3�����=����[ N���z�u�g��ps�F�5Sɟ����
��C��a at J~6��R�IO@��܀�B= c"���ŗ����|Ί�
�Vq����s�wV���L/?���5l$籑O��Myѵ^���{j�ՁHj��q��lχO�ze��2i���&�
�{��������3e@ܧ,��t���^���h
��0��z�Z�=,e�t�Qw�z��{��9
��iV
Y^]=8
6��!)ˋ����v��R�n��U��z
����Cw^�Å���7�f�iq�o���_��C�A��bA�ey8	���j�ر ����o����;?��$7��%/�-U99�f�C;� [...]
�]�2{����o�vxx=k�1X5���dO�)�P/��
,�}i^ݝ�i~[��u(��������q�lg��B�F�y/D�v��f�R�Ί��خ�JG�
��	�<�	rw��v��1�V����w�N��H
�[�f���ŅM{��h}W���bF������A�=|W�
Ԇ��쪹��\
�z��!��J�Y�z�,��
�ju��j��L�{a����ո���f�j
�c���n�
����_�[�_��'[��M�o�Q�:?ĻZ�:a'��ޜ�r��
�=�+�2�~��
+3�e
ps-���[�V��
-K)��F�^O���4&����x��q,l[FΙ8�s/u�!�Wm����fXz�+�1���H�M��r �Kd@�w��x;N��N��UM?����6���<o�$Z��v�X
V޹�R�Y�c4,[�JS
�h�;4�ݻ�긴
d�6
)�?���g��3��q��h����V��P\~�����)nuy�)�kGl�i���ZM�.t����=�q�-��
W.��$�A�����!��V�MV�mk�n�:�w��#�z�~���֫��=>���1�7O͢�
Z#-��{�名��o��RsSw�_�6t��t �0��N�
e���ʹi.�s���G���]ŵ&�On�Եw���>���^a���+�����+�f�Rtv.}@�᩼�^�l�O5��s�޻���s�Q�p��C(��t������:��R���
����[����A���$�a�Mf_����l�
W��[.4��ςs�e�Y��}�N���
ң�F���b�f{F��Sݪ�����u�����E�S�aIU��r��^��U�0j-zڮ��4�a���	���l�])�kIp�'�Jr�
�}���55�Vk�ז��l;�|:�ܞzL���c�~:5�uy�UܕMI�kk�%�����9��!�ó��{�,OOOT�
bI����
��S-�)ff��FX���,
2�
�H���92i��M6�8��ۚ ��u
h���i���\��Q��L���2ξ���ޞ����f:�49��*^c��Ѻ(w��.�y|&5k�c{��?m�ߋm�e�ڟ�c)9�l/RT��rM~X��!�H*h�
+�e�F��޿��۩�g׭ȸ$���f��-,U[�����(��
�

[pƵ�S���Խ�Z�U*�4w�j[d�SQ.�{���o����У����;
Q�
�����Pk�/`�����
+�E�R���0�IjWY`)[�%	��Zff�J�s�ބ�"���a���
0���2�Q�S>խ.�yyv�*J���u�=Ai\�?D���a��b˸�d&�-Z�1vZ��ZB��N�����}���N�!�z��o�;�fv�d>z�?6�.��kq�u
�qo��C�H������_{7���:"77�L{
Vh�,�z�|�K�H���L��6,U
u��4�D�lԢ���i�؏��~���$��u(��GR��-{~b���
� ;����W���!S�?t��o�S�w�nϔV^gV+����b�Q;mj��݊�V��W��
��
�[�‚C��G�}o�u��5�X`���D��&ٜpQ�1�E f3�Ӳ�'~�����hv�,�%�����Of�x0�@OP�3X�z��
���*�0<M��SYKD�z�Z\�[�A7��Y6լ]�4�Ѳ

rZ����:���
ɳ�*�p�*�zVK��iM.4�q+
���+pئ�ڢ����l�NӢ�0
X��/W��V��쓍���X}Q���Ӗ�y��v���
+�
�[���Դ烠�ׄ���\=���Z6cwYM�mƿ�FwF%F�)F��o;��.3����i�Z?ğ�/N�h�o��'�vvY�0J#�n��ø���.P�I���;�M_�Q퇔q�D;�"��(�ZU��7#3�5�������Oǯg��s�Km�2S
+RRu�v�U�Ȝ+�-GU��]+G��]��fV	$�i��_��R]�Nr2/�/�^���a�0
�H�W�0�]��9
�
+N��IG%x.?��}�q��@��z�AM�6

k���R�l���.Ź2`��2?��U�G}%18�%�K8-��2|��Y|J�'�ɿX��
�_m�e����
�_oE�Q�ӳ]gQ���s�<�a'�h��
�!D�$�L��j�Ͳ�'-0UvJ5��+�
i�������sq��AX��ehU(s�yc�)�T��I�,\OE���aae�����!���aq�o{N��qa���K�;��a�� ��+R����t�i��n65���Y��`
l���{S*'G�^�|�/�MM�=���t>6
���B����,����~�qԤ���9�W�s2	�
��3r�"����Y��y��#��6����^WˆK���
���1`������Rv�޽$�\X�UX@�
J�	���s&�:
�
�;W�<}��b���ȵ�����4�E�^�[�"�I�r���5�?�w���
d\��l�����xT���+q�
+�46�6
0�{*�/��$S-�H�C��g�}GDk��'�r���L�̑��I��[�� �����7i�(�+9���Kk"j��]��G�V#<7���P�)��fG��}x_�������]w9����ʜ��B^��/k�J���ΐ�sMVHw�j�
+`9�/���/t�_�
����
+���!�-��H�(��i
!� ��
���V�!���m
+�,+��B����HR ��e�'}�q���&@��@2�0N
�e�x�K�LI�LK�� �N�Xx�%�q2�W��9N��
r��ɰY�,�8��8�4�G}6q��M�L�$�� B���	e�<@]��'�@�A
F;�a��
@��	@F�
@��;@*�l�����W �	��!�
@��2�!q ����
+Oژ�����@j37^Q�u�;��_�|7 U_0�		M��ʣ2�H
[ ]�@�5
��l��ȭ�`��d��!� b[ 1�@�)"< �{-��7~2-鐩�M|o���
���u�{�
+��՟��_ t
�0:
����� l�f�o��z�o
|� ��z@��*
� *�=�r�		 -��ZJ��!1вTh�@��s
���s�ٝ�Q�9;����E�r�g5t6A=%�~k��em
+9�]

+�ԣ�z�pi؅{�1������`*/�[ ˻ߕ��� �3��U�~�& �2Y���R9��n�6y����E��S8�Na9�9=���{4
a�����}�_|?MHh�u�x�J��� U����5@�Y
�/c� |XH�ѫ<�� ��G�F���ԅ�E��p��x;|{�(y�7��˗�
��G��}�
얳|��w�c��]D�盌'G_��k��N2�_��� ���ˬQ�
��}�ȇ@��j[��:Bˇ��l�)��������Wq͍C#��'�;<�i��k�+�F
�1N䃟kw�9ni͟_N��k޹�;ώ������N�	��i�7��.	��5c�`�`ʀ԰"��v>�|��N��Z����w4|��Ӫ��A�S�Gkւ�_=:���o-o�tkU���rZ+��Qȟ�s5EI�l�[����fs�}�;����0_?ț���dÍ�����!��])�‚tA����i}xU���*��!f>�۞���Z�]�J�}~�0�d	7Ë��9�I���:���:B�����s��;���*�g�G3Y���m�:
�^���x��O��.����:
%�)�,����?K�L�G���aچwr��ew��gu�\�R|�s‹?
ute�9H���^W������mZ[�4]m�y�X?���I��k%,?�Xb��b!
ގ�!��lp͍~{�y
������Og�Q �Ͷ����}�@f�5_c�5��OnjC��#�y��
	t�l��
����!
��8
+�����~4\&Si���j�);�|_8�srԭ8yXI3�Z�ٷQβ&�ќ��h8��e��
X�!	R�N�!Ƀ*Ȑsd�y%L�~��@��i
՟��'x��@���z�Mu������vIÉ��,�ۚ��F�9a��̿k�}
��]�=8�&&GN�u"��yw2�߻��
+�G斸��tw��
X��wM�Se����
&��b��t���KEq���{�Uf����������� ����#+�YI�X�
-����I���2��g�dQ��'��y�A1�(�4ӻ��8�|st��Q����eV�g�n�� Ă�7�fF�t��р����E���T�©E��������2\����e�����
t4-��ͤ��bM�ɧKqT�H���Ќ�9��tf;�rJ8����a��h�R�
����U�
�ܥ���
xkVs �m)xW�
l/	e/��������ZM#}�4��nxg�uD�5w5n�
9o
�-����=�z,&I� ���9o�6N�P[~4���t��11X,�|�!�QY�G���
����}���� �n�A���c%`+75
��&}��*�
32@��<��X�Km%����#g��عD#�~��q
+$�:��{��,�ӻ�����ay�buF
��8���
lM��O������3Ӂt�4m��ԯvU�M�_����/�C��@�C.
׍ܵ�:&'dG�cz�� ��|�Z%M���=j���w
ͪA}n5Lw;i�*�y
�F�n��{�}�x���-9�Mu#�=e��M���{Z�N���X�ieT�y]B�y�O��B�K��
�a�G@=R%�پ�ǭ����m���{=�(ԕ
��"��fAmԷ�
fO���2��]�۰�����N�
Q�h�-�i��N��~��:w�_w�u>�s1cS�!K�sǎJ���u�El�� �O�;*�n
�!'��z
rf�}��p=gO��Yn�B[첎1_rV
�;��`olz��|t��vC�X�N�
�QM��]�H(��������w+Q~������ ݗ����4STEz/=�=��<�wſ��a+���C0+��s�����枛�w����8q��sH){V�W����YI
E�C��gx�6�誒�|�;�o�ĺe�Lˡ�)J��n�����FՃ#�/�Cl_'5qM3�g�r�ݒh���6Xӿia�
�w;�)&:(w#�2
�+w�z,�v����Şy2]=z����Q�f�!�Y���'x��V���s��
�`>��z��ۉV*��L�&�jW ��R��[Ku��7I�u�bY�q[$
L�n��ş���=Ҩ�Ro�)��\��Ӻ9���d}&�Ôx4�c��ƨβ���[��+��i?�J�.��cjש��	L�g[
���
f��	�T�K���w�m6
�pi[��4f�n��d^ǃ6��^��g�����&����
6�I�y��%?��|�{��C֏��b�3���6
+�o\��=��~C�rDO���Q�)�-�+I�Ώ�+�坍�Y�1�j>�O�V)�Q�
n
+'n���l��p��M���}�19��F����8�Q>�]�b�F�S��s���t=�^$9�7���A�}
��«�VKiU;���۵:�VReKm���D226-"�y�T|6?�r�B�ɠ�ׅ�bX�L�X��FV������Rm�{b��ٴ�
��q�T�=������<��S�/����N�
4f
M13
����#���H�ʋK
�c�����*P�m��@�7�C�+�*V@��k�j
��X�r��lh����/0��f�)1��Md<eó��6�C�g� v#�W�����b-5�8ί���~_�~&����Iג�ƕ1��J)9 at D����س|@�b�
+t��\�1'��e]�E��5������b�C�zC����
���m9Wy<,��`u�
�d�R��R�n�_
��v�+$\����v����km��7�^�3E��!z�fw"c�m,�+nܪ8�v_��_@`���+��m�k��ؓ�O��)��b8�V+�>�L[�b��6��L��Y�ʔ�8l��͚�!J7��]��B7~�en�k�0�cV��ϓ��vMN�u����qw0���o���7�k��3a۬
ϗuM��{-�m᳒�[�3��z5(�ʫ����g���ɾ�V^�fqdQNy�b�N��x���B���N�����T�ܤ�u����TW��T�a��3�[���GcKژ7�uo#�FK.ujy��c�x6�>�îʞ�{eFW at y���edէK�լ;̓D�g�:]�6E���+
���Pjs��y�������W��{�U6��Pln*�
?�_�K&q���Ɯ��|�;�-�J0n�5|��ӥ�Ě�v�+���@)��ڙ�;wv)��Ӌ�7
E
�ta����C0��@��X [...]
+ at E��B��R@�� ��
 |�*�� �� �ʶ!"<�e��z��s�0$<\� 1
+�ab�snG�q����Y�����G��axiI�g���~Kq�|�0��S8��L���m6���
�].
i� =� ��O �O
�֧i���2@�x-iM�lF�ĉ�*���|ً�~�e�s�c�򋒛��k*?ij:�`�O��Z7
="�6�/���F���
X�>
+�� ;I)�SG�u�8��,>� ;�� S�
�Z�־4ؒ�n)���{�JH�uާ/:�
��Ue
�	n�|�t�9��Q`M+�G��5���nRgb\�Bqx9��~Q���\���^]u�?�����1�(�k]
�S�ʀ�M[�@�����vo���]��ax�P�
�����j�eP�1P��c��ݕk��-�ۦ5��R����k�%k��!y/��
��C=�زwH6��>�L�[o���_`�b,�&d5BQ�H@,�ߎ
�����`�w1n���YX�M0[6.�V�z��s
+���X�u��E{'��?�l��rz�Ě�ܳ_���AxDT��ߦ�֮w����jW����myS����4���Yu��`W*���"0�#���A��~��1�>X�U����#��>�f�㪻�PA
>+���>��
?�~�����v���^_�g�S:3c{Zn�[
+GN�ag���
`W�F��6Zwi�X/�%�RZ��3�9G�Z�

)}7�0k	 �<"@J6i8��˼�2�f+�ճp۟�ΥX��'��K��Ar�=Y2��|��l�t7�Uz=�
�Uh���N]�u��x��
��֩,�ѣ8�"��x$:�K(��u�.cB��y� �a���b)
R�S	��B-*,�O�1}S*q��܊5��F�Cڙwڶ:���h�����ʮ�Cw^V�����%���E�a�yW�E�x�4'��۳��:٣����iX���y��`����'�՞
��Q��O�oQ>`�z#
��|�#��V�ޱ� *dVŽrm5��-����3v�����U�/���2�v�h�!2��f־M;E�|U�
�]X�&�_O��
�_
c;�inFz�L\��銑���/�|��� G(,L%���T|=g��?.���%聇��h�Ns�m�y0��<�\t����ƚ�8m5���G�>Gn�S������ a�� E
�e,*kޔg��ߩ���>_#�6�QA~s�K�Y��3,���~�NK��o��A�ҵ��p#o�����r�<
7�����\���!V�B-�X��dc�8�7���=�,r��6f�Ӥ�V��L�S�C��¨O��pH��~�
+�^�>��s�SI�j��C|7��{_-�g�
�
@gX�z}��Lt�����ԑ�1�Z
�Z�}��.��ӫ���S�E���
��K6���qy:��s�SZ�%ݛ���7r+'
Q�A�?
+bff�Ҡ&�~C��ű��ZZ3��&��FC�G�KQC
g���?��9�oU�����
8�
��nk��v=Cw��F��B�I���+6k a:wLe�]J��o�3C�9����#���������g��?��.pN%�bO��{W�
|L�
GU%�*_��?�Jf�~o�鼙�
S��伊�C�Pv�;�Y��
g�B���>9<�+���N����1�'���;D�ȏǓ��g�:����|-Q�Ou��e�
��c4e{�����ӥ�ҧK��
+�)w����Nwz9�
�����M�� ��=l~?�.��nSK�V�֠�Xf�p�Iy�۬��"ӏq)L��R3�!�

%K
V����f�����j���t��)Y�]ߡҝۤZ��a[�'%0��'�,r+ʓV�,O*	-
+F�����
���C��{=�W���d3�էj��;>5�S��|�p��j��Dꛤ�����j>Zz�7�Ac�����f�n���Ѕm���[ܾ_�9cһ����L�o���l����;՞G^�
(�nǑ��8j��Hmj���Z�i���v

659ں�]-�l #�
S�rp&>���uk��ƅ����A��ok��^Q3�ިw��Vw�<�Nu�8�5u�?i3i������	�VM:�
��
ۉ^���E1�~qE�_�{_I�Ԕ��;r����~�l
�K�����јM��ʘ�˧��m�p���?����W5��j)�ltz:�
�o�-?DzuYͥ��l�׹�D؊�̭�i�N�hB�E��2x�?wD�?7�BKي����g�|k��2�$�C���~�Mm�ٻ�����w�ڜ���C�14���3����>3����`-��i�����%�
vz(l��{
Z���\�W��Z�[)��S�h����ј�?�ƤZ��
�4&X�jL��,3�ls$��_-9�NsF��]�[-�p��*��U�)��O���N�2��Β���sSU���]�9٭.�<�ӜԚܥ6QZh��W�V_����T=4��h�Q
�dT��U�W_H�+^��T}�.R�9�� ��q\
+�?ğ�_n���uL�༱
+-�M�G�إ�r`
����:�
hݙ�S�j2U�p�N��S?p���\[r��l,���K�~dV�ͱU�6�ܚkRԥ.�[��TjDT��ݼ�gw
+N����g;�4d��j�����lo���=����i~A���
�u�G�n��
a�7YF�U�b��Y�HM�*����{�Ym��.�i�7�v�9���7�:
o�Fu�O95y��؞��m��2�f�,�D\W�3�U������l�J�q�Jw��_
�i�����2�:
g�'�Lvhqn�
�t ��P�?�"��]�mM����C���������w#ҫ8�1�y
P�:aP�ZfZRٜS�2Ԥ��ߋ�b~B�Ru�\9�O�>Hʵ�A��O.S����Ҭ�������4��+�Ѻ8&%�-��W&]�8�d�0���wff�#
�v�g�e�skj���^��e]�ϵ^m�b=�3�{�1E<���j%�*�4(�.ʼ?V�Ϧ������L�������K��H��N$�T���b���/�
����ښ����*G�քS�{Oig���3֚�(�2�`+�P�+S�Ujr}V��Ρ<���G`���J��c��{$�;�a�����C.�r�{�p���Q8�ϏB��"
+T���`�凚��b��	ߞy�����`}dڶ�=��N$��6�|vy&
��<K��b��\����
��=��i�:7(�,�B��
+�i��
��Sd>o��ܳ���&a�ξ��9;+�q����{r����w|,�|��_~�?��t'
'ݖ�
��SGS*�I'�}]���^�e�z�!kUs��JByKQ^��+��i!oz��
��(W�v��l��g
�H'��u�I�Y��F���ǤI��M
/g'�:�{*߫�?�U??x�O�ʼnA��~1��du��e?}�����5��K��V�~ʣti�bU�JQrWtAg�l��]s���-�b��e6ゞ��i3M��
Ǖ�%�+;B�z�����J��a,��P��x$~z2�T�9�f%	����4�/
����N����F�m2�͙���f�/�9��ɋI�+�#K�Q�Ȥj�b���JJ�Q� ��"�x(�̱���e�c�#
r��)m!�;³������5}���������FF���;H����@b�cHi��I��9[�T�����fh�)m6+e��.�!��R'L����߶�<
�n�+�������$<
����Xu<�Dsm����V�T�7�?˂��e�m�q»�8���8��^qbxp/��O� ��;9�7
�m����)���
/12o��B,r��
i� 
�7�i
�9�@�G
�ҁ����??(��F�&��!@R1���@����
��F{�����OJ�cp���x��r�z�4��Y
��b%H���!w-OΆ�������R������Q�?�2�
a�}<"�`�6��N����0��	��5��^{B�� [...]
+�,��J�b_�~�hs�W"y�h������M.��{�G/�):�4��q�}�E��^a��?\�;�l!�s[�f�&����P�q
��Ca/
=�\"�V�}�YGm���:@�}'�&�����_�G����am'���5����L�a3�I��)��PZ��'����(D�κF§~�z��ʹ�qJ'��-��j���>Y�jv�� Х ��@�;�6|���oz�X���o�Q7"��5�wFXV�N�JY�G������»�t>���O�R���0vJ�r�蟠s�DQrI��b΂����73g��U�~���E���M׏,s�
6�	=T��x/3Uy�	���Ύ�fs�O!�\g��f4�f�0<��0
	p�6�Be%L���l�����rMs����"x��܎D�����nhoxI��L��v�6�� ��b���v���m�s?����&q������9%!k*���%�jQ>��Ul�ҥ�{Vt]
��^

���
Y���b�O����,� ��^7a��<Xҿ�{!��z�q�
��}r�瑆������>��Ǒ��Į���<Z
+���a�+>V⽚Y
�viٜ�sG�
s�F�~�]^]}�x�{A�]�rƦ���i��{�rNٯf��f�{�e� B�“
���b�U���Ց��Ķ�d��X>v�;��׋��DųL�vcD^
����
�����F�@���*����Z�'�͒,���KE�eȽ����ޞ?���ȗg��h]��—�y/+��b�[�83 �m��
s{���eG�=ԢST��;�v�9E�"��(��r�^\��焙�SJ�t���d�wC�
��x����6���z+;;����}kZ[��]�sp˾

&��w�)L}�
O�%(�/�g�/���o)\n�S8Y'�,��~�c�y
vF4� �m�i�
����!
+f�:�Z���\�I�#��j+%ƚMrd`]1rc>z���(Xb8�q~��X�i���3c����Q8O�e��ₚ��Մ��Ѫ:�Q����i.��@	�z�̈́�1>��no�2�L1­^u�]��
0���G�-����Nm�
fg
��[�%���qb�Fd6�$�bJu��NקW�a�CZ,F��J�R$�d���d��(�|&�%#_��[6�m�
�)�g>���`�G��B�����o�8��Y�&���:�ז]mb�߶��rvu+
��[�<��i/
��t���=Ig��>Y���m[�P=T��r.<�JgX��}�ߖ��='��b-���[t�$z9�����OD�&����͖y�
mc��'w]�
+`����C[�CJ
+�ZG����ܭ������Բ�M�īVs� {�9&䄏O�&�sUU�����&�Œ=殢GH��@%5�����X�y�+У��_R~%��_�\|��83�8�n�˞4W|^����ݪ���I�
[���n|9�O�^����������a�H��PQ��M]�v�#��m%���_��on}햹J����k�R���]~���~y��
>���N@[$ݯ.Y���h������
#H���/�3�Ȉ�'&oZϒ�P��Li����浨5�IC�2�@�
9RrN7F�[EX8
�^y���9��nY��ߙ�r,0�� �/FgF_�� �_^L�6l�Ǘ�Rp�}]��c�}5� ����ݒ�|
� {��|����{l�ŷfBv%�2��a�%^/����b�Ъ�
]�sZ��R�G|���1�ݷ
s�6�]Ǐ����7J���(i��x���ѐd�����rz��H�I��
Z�����3a��~��Ͼ�
,���+�4��#M
d���k��⮘"
�d)ݔ�b�
Z}3|��H��+2�)}+������w8Jv�3��*�*O[Tv7����ST��PT���@�c���G����ߧ���(���&W��u���A{>�*��fw'#���z���6���,�P\���8Z
`~�UNr�����.#z�ى����Y9�L?�rZ�Dp�qG�N�'0O������ח��}XhƷ/�?��{�w(����[ؙ��3��p��S��Q�������4͉�jO|hr�Wi8���
�xabg��+1�y�A[�?��>9"OG�����J�	���:�W�������U� }\��;~XLnD�n\��dz��
���i�����y��Ĝݓ�j,�GVk�
+��9���SJ�˹#�+���Gʉ퀼��W��pn���h�]���	
��
�U���XxG�tj���3[B̧P��
Q�㞨EP�/�
q��w�É�O��Ӂ�n��5����|�4?�����a�YL�"��;��[������g�0�����:
+���Zu���;�UR��]B9�$�
�g��o
v�,w�\��-
(�'uX
�:q�D�6���`^�\�b?-q��3�܎���0���(�[��gz��}��Z��X�"F;�7~۶5Z
�%��~(d�;)%̇hH�:�60J��c��6��h6����
z��#��g>���üdz�W�v at f�+ǵK��4�&�^�4�M�.2��S�6)3�'e'*���!�D��;l��<ҢJ�����;���'���I��c�rG��A>F��d�lk����~I�
+���Ϻ�ݏ;'���h��Ѯ��iSʵ}�R��j���/�>X��W1W�g疛6g��g4Q
AYL�Xґ�r6m��X������˞D�yOFɜl#�+��
+�ͣ_>Ǚ�ԽV�*��:g�1n�c�n�ٲ�ֳ�U^�����TuOM�͝�ĴlB�o~��%W^͞��g0���u�GE�����x~-�Ƀ� �d
c:���3󽝹n�d�L����ո��mw����j�L6��m�3@�����O��5�\l,n
��G��z����3�����^|�چ&v?pm��w1/6��a��
u��D��S9K "w�cr$|X'�]̩ͪ�R~w�l1Ӝ��l3��T�G�ߠ��(�[�nԾ__cF\/��kٚT����JUU\6+��{[ѥ]���e��9���4��[Wٖ�
���
!���<].y��}ƾ�+������ʅ��ԩُ�b�`+�&�f���y'��*�J�˩Pz}@J��-��la���̬����gܿ� .�N���b�.,yQ����P�1����U!?q���,������������mŭ��)���.Ge�N`����t��~���ҥ�\=�/�2�	�bVi<
�~�V(���Z�<��x�_Txc.,A�;<��� [...]
+��-_�gX^
۹Sk�ϵ}�Yy�2kj<�ve������!�9(C�� ��$�
�S��Z8�Qz��B뭤�X6Y��֢0��m�/�� z*-�[�U����
H��O1We_�s���{)�^���y��%ȝ�����;�������	�n�L�[

4�����.��Q��;+@��UY�
+��`^J$S���aDr�z�c?heۇf�q��J�1�ɯ�a׻�W�κ��R:9��K'��*���|���Um{���x�
��,}S��b=>A�V"0]�������%y��]��1��I�fn��s�u���]���)I��4I�QpF�d�r W|�t
׀�����$�{ �����P o�$lgpπ�$W������ L��&�؀X� L�}k��s��Zᖤ�Q6I�6X���$��2�9X��q���#�� ؁@�W�$J;`ˀE;IT� ��
 
�Vl�������>�����S����	�s�q�}�9 �H�Nh�Qo�(y�
+��]�
Iz�@�Q��������$���w]x6 � }�ߗ$�	@�e�
|G� }
H�$���WЎ�O���5��>��9���/�_��3I>��K��l0���h)0G'���$y/r��=F��q��ɻ�� x�wqp�o�&��K�ZB�p�K��B^#�
�`l�>69hq�6��M��_�
Jf����v׭�����E
+��m
+Y�5�
�Ke�����om�@e��ڨ&~?H>��8�d�
+�P�v�I��+�	7Ov|<=K���!���Zi�w�B*�"tn�k�6q�=��fGߞ�p�<e����W�s������?��n���]�i�r]���5�i��>�L6�	�4R��a/z�
=˝D��'�v�^�Yy��?�������8]P�}?�+�}&>�7J�DM���򙥎L���}��N��56��k����
�m<֩���S�s��o=�
���4�I3~6J3�6x��πM�f�l�Ť��>��7=l.�
D��uʝ�}N;���<+����(D{iR��T�pٞ_�׶�wA��s��y����>�597�f���(�+~/ޗ�f���ε�RZ.�:��� "�>���ޤ�bi�fUm�fW�[��_�g�dAfq����
d�4�+���wv�
�����j��[L֟��YǗe�p��(�O!;�<�R��[	
[_�!�l �\� �?���OJ����xt�qqp�>���/@��6�b��7
�\msHs��������ǩ�9�S�C
�����n�ž����`w�K��wL/5�
+�j��?�-:�(��G
���i>�?Y�
>Q�t�Ϧ'�˙�r"�~uʙ�Ŏ����Ѯ�LJ/�?���wt�
+Y����y
�����)��s�o�vz�mm<>F��z
+��g�
+��B���`�	sYQ�G����Q���]�ׁ[0α��W�)k]��Rmv觔uf]��l�GӬ%'�F�/{�n�ۿ ��ݤ��
�ʗ���Ț�a'
��]I��@_�
A�?p(�ho�a�6�/��
��!�L*e6^M��^��\({W}	�c��Z�qf��Ҽ���9 [�^��3��S
�����d��A?�;�N��l��f��w��f{�_
�X�ԧ[�.	��
G�5��jk�-��`:wە�������#
���"�Ym��Қ�
Դ���x�������.9���E:<�'lni6��*�QU�����W���U������:)<C�.���	:&%_�d�K.��py�Gآ��)��Td���_��ق/�uw��h�7ܑ[�~�Yw�5\ϫ�x�n8Y�����
J�6H,E�ח|-�U�'�y�z���ؙ�͗���K��4G-�{��/�q��ck�Qy±K�葁�����Ǽ����1V��̙��VV��8^G~N��tz^.N8jh���ݙPNіU:�A���͑f��y>�
s�������݉�l����w~Y�!�����˜,�;9[�*��RGM&xe%r��6}�pE����
ͺ�P3�;;7��p�����d�?MBW9U�ڠo��
�%��"�06S�E�Oe�㝞�G.z�3
g�P��F6�-76_"��!�՗�R��.C
���n�G<���]-���&Iz���;u�eϺ�a:d^62Q����u5���A=��C��#H6O݂do+u�
3=!�{�9�p~M����Rs������L����g�c ��|>�/�/�/�?�*��;���<�j�4�31x�7��-����ެ���&ޡ��q�������v�Y�j31Vz]�"�N�D|��9a��%��6_��Wѭ1[�-�iq�M��q3��[���4�����}Y���|�e�'��4
c��or��dy�Dq��׌W�a�nۥ��O��t|,��RLК�"4���<��w�~|
��|}���K=�j���J�˴�
��{���.��{~�S�H�Qü�R�B4�4
@��zϸ����Gth���Umqq��-�����К��t)
Jqh7�&z&�[5'˳s����y),�`�s�t��!��
+��1�n�B�l{<+%���%,h3�:����<&�`2�TK$�$2��dxρuk�p��|s������ߛG���h�[B%��M֞\�C�X�݉���$
Ԕ��G�4���)�
+L�����ðu`�h�N��g<;F���5j������|<,d�*YJ����/Oy|�"�wVs��z.���<'�z
+�o��;��Ĺ��ͣU�s��T�&������
5e:\[��z^�F���i�:BW(~�
��t�lK(.�{�
�����
���|[��='�a�"v��^$��y&������fi�u�Q�	�Q��u� ���M����c��-��ej.f���Ԃ�]��M�
'�z�-c�#,�1��l\��i����.0=��r�F(�F�����|�7Y�P��'�xkM`XwAs� 2L�)'[L�x����
S� ��Gl[��bw�t?�gC3�����^
+�lp��p�#��&m��c���&e
�T�g|�3Nvc�S�]A��&k#�����������Ӵ�ĮJBz��$r���:

���_֯a|��~^w�~~H��|����,���C
�������߻\K���>�u�uO5�?�ɾ�r��[|<�
+4ꎓu,}(�DU�kq�
�τ!k��J�ryױ�3���ǟ3�ЃE�E�0ȹ�V��=�-~]�S�}tk
��
���OG^g���~�u����Q��?��c8�J:�2��
�^_ΗUFm�zkX�᛬��+>��{?�1�nb�kM�(^�h�/�6�9E�|[n��`�	���ݙP�st�h��Q���zx�
<�����;?������
����o��Tp|&����<5���2Q�2+{�B�u�ۢ�}�8�����+�������GZ��K飢�x~`{�T�t�Ǿ�m��Ugb�����>�}�o�T��tW�	�fc

�%i����F6����ӵ��r�o~�
�\����E�����%��a3�a�f�T�IJ�u�B�B��A��msr���w�ӲB����~��,��ޙ����͚�l����\
DRg��jm�����ժ;
YW%��V�-&W�ު
��r[ �b����J�l�t,��H�^�1���?eo�֚�
�|&E���d۷�k��W���TmL [...]
+�8�:�/yF�<�<��"��›�lo*Y���
��\Y���b�����r2���a���-'��}�³/�̀,�@����t�[J�-|�G%#[ָ�,�~�{���Q�
�r[8V:�8.zn'̇��
+���q��{
��t�\��'c��2���
h&�(��
�����A�<�A�� �F�r�
��:������ڶ)K�-{�����?@��I�{�n�S
�0��uz)��PXL�-
��M�q9��g�Y��,�� �K��o&a�m
�p�0�$BX${v��!,�!��
!�4� �3M ��
���baP��$��D�1�Hg��yo
�>?�n�
J�\�CU�s|�p�}�G�{�k0����BS}
�5�
+��廔���2� |P�B�d
 |�g ����ڇ���i����OF(�k�*΁����-ܐi?�dA���Q�đn���7B.T��ʧHU����K���'C�[�������Q�� b
0k��j�c~Gۆ�������������zf�H��v��]��$]�v���Y��w'I��px&	��5Xj�K�QmPd�	|r\] �1�:���t
 �V
I�
���,
>����8�]��(پ�7�|
m'y�Y�2u
 ��
+\A��
�l�� @���[^�@p� �K/������ ߡ�
+`�I�bf��u�Wϋ���9��*�|.[��/~��S.,�O�	¼���R��������.��$�Wgm���U�l�Q�L�o�R n��Qw����߯��^�]��
���G��>�Q2��=F��]H���J�۞������Ϥ� ��f�;V�����y�U���=IY5���C�[O.��$�D�I�)ى�@	���/������,�Ǐ���{|U�{�6�ݚ��N��z�������wg��ٟ�����/?��_�ϩ3������.� �
6u-L�A��G�3y���o��VC^�W�z>
��S�v߮h�^/��M��|kUg�UW����?.���ίl�|����H�r�ц��Tz��n�v��n�ln����
p�&|@�I�F�L�<d~������c�|��)���/陇�����U�^փ������1g�3�N����K��
�
��'�,���7���]3ЮA1���:�f3�լ��"VѼQ����%����8����\AO����x/Z'T�<<� [...]
+3g
+�׳/�>�<�?���7�4���Wt�h��k���{]Ơ�
+��j��;

�s��*>�Z�^���ڳ����n��+�g͛[����7��������]���T�+S��q��^���NV���������ݙ��*�C�ڙ��i���&T0Ϲ��n��;Z�K+d��w��\�&�R`����=N�O��#�S����օ}D�]|
����00����sa�A�u
&Ͻ	c�Hm��x�ҭ��[T�
��IQ=�$_�=����cI��f|ѿL�"�����̥�a7X�AQaUe�i2mܾ̓�g�h�-eж-�"e]�lZW�2�������E��Ş:O�u�9)e��Vͷ��Lt��1 Q��`c�����{���ӭ��vVxo'#��K�0ld�/�/��߻	O6�xS��MŞEDa��
��yr7�吃��|��N��j��O�H�2?��e]�{9w�5ҕ&��;U��e���Z�䞽�H�����y�H�?�x!ۃM~<E|
MS���8W'�տ�Ω
;�+x��=����+�j2x"�O
�
'Nk����B:5�Q� �zo��W�d]Y)�x�,Uٚs�Î"٘���l��f�o��ϣ]��j���8�E2˰�d:a��]��e��4Ra���	�}Q�(������L��q�w��q�s�&�
w�{�O�a7oi�|��w�f`�i�[�J�$�CD
+�>���v�X���J��w,��Y���'_��\Y�ʬ���'}��
+�al���/��㾼� O��26�9����-@�R��}E'�Y�|���n�H�}�2A;l at g����]MU�`}�ƛ�^�K߽�%g��Ww'�
��U����7��J��)���o�
=�X
�ϬM��u�<�iQ
��@�"S)��}��p��5w׋�j��L`�y�ca`�γ��H/�1�Yhu��(mX�-J�J���a����|q�:\%�l}ۋ
n�i�S}��g!7za�:����TDn�ck�z[r�D���Ua��@�����p$鿈�����jO����[�w�A�GF�M�X�կ���km�RR}d��k	�,��Qa�r®��r԰�1�Y���>���O���q�Q�s��2�sy8nB=�����F�tBh|6D����˝!*q]"��@"�OK 68�_��e`or�G���F�?z�c�&
�*��r{+=�?J�~x�<�򑵬p�{
�� 1��#���U?V'g������6T�3���}����.�m����}�I�I_ô�2���<���)�i˷�EĎό��ñ��oD��H��{��;5�.�[Yk�Wo�G�B�
o~`N
�{�y�<�����貣Tu�$LL*G��^��-�=!��
W�Q;��z����O%d�p���tv�����<�ЇA
ގG{���������X6Ĺ�8�n�QY�w�ˌWR���
+�q`�d�tk�
=���1&<+#��P�

�,*
�(:�k��̈:R��ꤼ�t�vAM��F��Qu�
$d@�� ��~?0�k�q��b?@
~ �>`l��!U�,{0-���zJ�yR���z
4u(���5zs�{�8~��h4�ܶ�-߇�Z�K�U��3Fȓ�o��]^�)�k?]��V�����j��
��������ޚ�n����+��HW�4���Le��n ��C�/KZ��M���0�03-r�rG��Ŕm�gj���X&�?0�xIG|®S����a���㥒(��,��u0_y� ��>=�nz
}�vc�v��A��,x��iӱ��siOF
��>�\��
�v[C@���B������(NK$s��ГF]�K�L���
�t��yXnl7؍�,�#�<����z���_-��~�����
z�J��׌�u��l_2ޡ�E�i��Z��+cM��i�w�zϟl��������jm@�:�C�j��n�5�z�F�}L�X�]�}!Ҏ%�X�oj՚]�Vy�E��q���%�s��N{��ڗ�4mO�G����֣��-�r�dpԚNRt����՗�P�s��\��O�����LZ�R�ej�7BW7�Ҩ����o}ޞʠ׸�aa�xCZ
+
+�
�|:�q�,|��R�������:
;������İoחid����ӫ��������l�T��c\���Z�m
�r3�J����g'�.w>��.����2��ݣK�9;*Qp� �����6��i~]շ٣���u$T���v�:
"�ͺ�cP����$��&Yt�?�Y�
�[ŗ=�ƇE�9��x���W��|c�)
G�a!
�2�����9?�����Pp��l8�s�|
>Qy����c��7�ӧ�RWQM
a��\@�W��S
Y��f��N��9?2�&��Z����SǴ
+5���������~�ƽV�C���*;������ʜQ���Ŝ��l� ���;d���
��2
�s�χԿ��uCӐ���
cU�uM�|Q���1ktlT��6nFy�D�3��f
o�r�,K���(��?a>s1���q�kCG��A�[C�S�!y��f�
+!t�C�ڑ �>�!$���r
r�E���M� v���|'u�r�\�N!7
1�W��Ic���No�t�?UN�r]L'�E�a$/��u��tr�!$X nB3�5�V����;�
+�̷���5��0+E��
���
p�B�t�A�|BX�� l�Q l�� l
� ���_e��Èn�tQ���7����˭�-|��
�����f�����ۇP}��г�S�ŚA
a
t�0�H��,���*�����y�w"��	"j�w�jm���@�� "p�,����-|��A��y���B}��Ҳ�
����
�꫿��3�'�B�����<�֖!�O��)����
"��wȭR��h�ߧ$ҿk�;�vT�vhf)�w�N
"0^�÷
+�
��UQT�Z�x��$�,vV�
�!`uK��-�ڭ���^�
�� .�$�K���;��_d2��*�{����O5�-}�r��Ż�X�;�Փt�V��� B�8a��<�dh�@�0�j������+4���wX�v �`�Ư4q
�\������k�׼r��
+c=��m�
_ʗg~Z�����]�O����@)l��e�Q
�1?��F}� Lf
8�~����ˑ�lT6&�1���z
c�{e�h�\�N����

Q�s}��Fz��(|�n�ǫ�
�t�[c����ksm������}��o=yN~������
�
y�mwj������:x%
P�����*�=�&?���{�|�#�~�ov=��@���::o�K/L/��Agd4On�Ü��lz�w��1k�����Ӷ��S�k�K޽�8y�a
�-p0،��������������Ig��=���M�k���ݺ�����g���'W�Q���|����t�h��9>��3��
2o$>��w�1I
�͠�L�E����|��4�h�
�������^I�-MAȦ�	��Q�^뛊o��m���p�>y�G�I�� J�ޯ]���
+���j��3.>_�J�ks{�� Gv�W�E>, ���s+6�H�
ÊK��
�Ee��I>�3؞G��>�"��`^@�|p{�,e6���>��S�L��<��7��r{�8�؅�澩%��ͮ�٨
�S�
y�e++2
[gv�CiU"� �[�%\V��m��&��U��y/IDFD��B.�%����=�x<�[	�U
h����|cx��
�8�������`�<仸&�o3���",���3��Rt���P2
%�J���7����7�M���"�?)r�+��Vz� �+���L8����|
b����ɳ��
�E
+O9�̳������1����v�*��!��R)
+:��j��F�z��,Z�pta1(B��g��I��{�"ʸ�|\pGѧᄕ|�)�
��4X��L
c&�^�Y�
+>Vk=�ݝ�2b�A2���I���4��ii���W���ci*"�^ت�?�^f���4,R}hq�����P�Y��1��4wl�������,7v���3y���,YZ\(��Z�aNWb<���@���O�gޟ������dY�Г��kQ�}�4vÒH3$5�W�xZJ��ָ�{뜲����5�l�[0��^��	
+�R[w~`��nC[�
+�هtkb�]��
K�-���OS׫=�Pf���
��g�5�� ע��k�|�R�(�)��QU�h��Oi��'n2�B���	�4�vgׇP5�Dm��YI
�
ܞ��Oe��ͷ���m�o���֬�t��&-1�ͫ�ԓUC8��s[~9a�R�kkV:i�X�R��)&�l�}Y�U��Me&��J#�i

+"s������
�p��)�g�}�\��]��>
n�J�^L�j�����������Ք
���
�
;ӌt'uX{q���R5��2U�rq�c�*-徕�3��߫�T(���齖��XB�4���{E�
��Ǭr��
��Y���h�ɩL��� ��F�Қ'����>����`��=4���<�'���c���J2���H9^Ai����k�-��Y_|��Hx��aXf��B2�<|�j
[z��Fj�l��8�n�'�L2=���/8S�������r����A�pn
���:[�\�����H�ތ� �X�X�OJ��Ҫ�����O[�
+y\z(yFL�$�ۏ.�y�]Ї���\��������:%��p=Z�D��Z����1s��Kkܛ`��
:�F$�e���ٲ�]wy�øf��lb�<ڏʠ
�8��p��N_��3�Xmf{7��Trr�\6$t
#"��#��9�f]���3��W���'+F�z��
�wȏ{�5��E%�R��;����F�#��Pn���Åx`Z���J�$t�AӶ[^NJV^~Ns��V���\9g��l��'	]d�"q�u�����s܇��m�֟0M���]��s'
=��m��j�"&^}8�ވ!%�*�LK1��4��:̵v�
��b�������B]�
-z��
�HZ�>����)��d�n�ʹ;��
+Do�m���^�*N
���k��ka��dZ�
Gw��26��
=Ϲ9�b�6]Sd>wyr�C�Fd�,�
J��D��qD�w�2Q�k����'���#�=�����n�Z��]�[
��Lߕ
ӑ�ݿ��K�ኙ���W�š���+���
s���o{tw���VeK���'Pon�S��9��`I�>��ɝ_D/�pi�
�#h�05�,`L��EL��� ;������?:�
��
5O�"�
+�a�|i[X/Z�M�����R�/����f��9�oG��(�t�f at f1Fx�9rv*B�3��e��aR&Y�1�͜�㻕���}���
�N1��v�:�XT�C�#���G�V	 g�hwW,�_~��_�X5��p��ȃ
�g�s�d�u�^��/�6۠=�w����#����'�d)*���\�KFR#K���KWjE
;�-��c�� D{{��
+Vf��� ߓ��G͹�y����k��i�\{ �S��7f�ˊ���ϮL�;ͫLN��_q���*Y�
Ϥ�>�J
�����!
֏�ͧd�p
+��
�;�!��� Fz��'�2t/�W?���Q��!a�G{�W Vw�M>?p�P�wz�ܼ��?g�
�_vzt�m�q�	`{�
+�;a��}g"�Ymm.|�"�V�
��j�Ǫ*Q��
\�ik�E�o��)�|���2j>�6�B�(��5���҇���c�w��������RGZ|�����C�Oڇ��j|��>L�V�^�a�t��q���]繠��n�+�(	&����&Dŀb���?��<k�u����{JQ`�[c��0^%�4��F+>��	�j��]�R�
��LoK'g�Bn�	2�
�o�J��u�!z
+q���P=˰sT�٬"Wkb8��{?uȆ3����dgo�I�8�i43�~�B~�B����Op�?�<�O#�$����Co�e�p�0ee�\elqQ*�����'��ڸ��g`3�]��HqLo_��vG�+M�4D

�<��4y��2��q/�-B�9c<xE;
�0P��!]�
�.µ֩0���0
i�0�
Da��0��Ok@�դ4
��f�I�Շ{?�ߙ�R�.űx�
+>7C�&���l��M��>�
G�:y&����s1�۠X>,�E�
�B�*J�HV!�}�JkK,�8=�����.e��Mb��+ ��s92�0�ۭ.�?��c�t����5�FٽaG�\�T�����\V_ᛟ
�S�JmRH���p�20�3���4l��� �"�y�:���3yd�R
+�r�Ddn����5�I����0
_��tНgӊ�� ]���e=��_G*-/g�������p�i�Zk�&U���.iУ,\�w��B��;A�
�	��!oU�[��F~�٘Y��i��VQ$��l��X�Z�H��ܐ�`!�"ސ�9$58����#�>=<�b�E��Y�	k�'Tv��Z�4�^�)8����;.J����ܾ���J�#J�8��Ey�;���cEq4,��ϳ
�R3�|�-4ԡ*�ͮ�^���U�tnA����3v�`p�
K'����Z�c �gp�V�[0�'���`�;�_���H��u�_/uR�	���&���O_R\
�\(��Y�7w�������kկ��
+j��F� �2i(�<�w���6�	�-�i�xe�|[����N���#�������U�
l ��d�x�4�m߲��[���U�T[�t��2�y)<����/f��<����Ov����q���
�
<��Z�? B�1�O���i������Țm q<v���g@�  ^
o�&���Hȁ ����D����_�unU1<e!�∖���Y�.L��ZX��M�.��4�k�
������
��C ��	M2�P�}u��^���$��F#�,����d�r��_C O' �L��Z�y䧐�7���	Z�/j�J�T�rA��䳽tR[�Oh�*���1�{+�(<#���?-�6jQ����%���#�~��%�
+d/H������l��x���ѓ�O"�2��!��@�3PD��'+�7 ���O�ш�i��++�z��vԎc-&�㸔I}%��O�����
+���W-�o<��3
�vq�=?cyux�
��=�d�c^�j?�b����*���+'h&mP_�'j��'�!�D8�̘�qi�
���M�_�jg�
K��.�w-���z@�8w��2wG[K�6g��͸N6���>^W�������G��.��I�j��yr�Ɋ��c���������m<��xW��C[ލd����˵�h��݌=�e;��u�ګ+�k
.γw���;rnA
u:W�r�2B�x���]6g߭c��!~q)+~A�
?{���6�,e�����WO��?��y��f�f
���j]��˖��
>���{����z��}bg�汗yt��
+�.3ۏɤ@�:��N��񪖷�Ѻ���~c�M�z[�:� ��?/��˘�JI�jBr	�	D9i��\����{3�����ٹ��6'�N�^z
�< ���N�C:���9b�v
��x�y�`c��]���B}E-Eo�a�tqkd�
��+���[�����g%WV���� ~��F��rҩ�'�X��筣&�����yٸڤ���I�r�������]�G��kW�V�����C�����sq�t�X
��As��pQ�{i����2h��]�Ms�]r^�B�	�F�'I�)��X��7����)��r$į��?�4�=�&&]đ:<KWb�v-v��uE_���
	���%��\�IT�:��
v��S����<�f�
��E��&{̒'d/���ϗ7fF����g��k�f�5�A�c�_�B����<`��[N��6��^��:�aI�����ޭ����
+�\=�,���R�j�8w�?���
�`�Yϣѭ�Z����4��l<��
��ﺍھ�
��AT ����崷
+����lH�(.��a?���f��
���Y
�"~?�j�ޗ+狱b�u�m�W�����~WǛ�� ��NW
O]>3��&=Kuy�&F0~-� �.�Ae�
�$��k�ª���S��OW�#~#},v���إo�,x����2|$_*�Aڪ��m�֤}(�
_���kw�c���֝�#�Д�s���i��!a��{�<U��^b��u��6�C�۟�>�q%��I�]&��Zk�<~��t�ɹ#������d۩�D�ʏ��B�t�i�n����2�e�C�
+�(^8�<f���>�k�-��c���ٲO���

lr4T��� ��~������v&�݊�؉)�ԑ���
�}�
I��� �j��iL_��*��� 
�R��u
+΁��yb��s)����b�2��/��:��Y���^4�ZUWw�AFfJNO.}*
����`nn�}k.'+q���f]�l�:��n�_�|��t+�>K͚����l�u�v��
��ȡ6��c�P����u�+����(V�y)4Kn�0QOVI�鱜� �
)�ŵIfj��tP�R��h:^���Ym�zD`��}��<��=~
֭�
�7ʹ�6�L��6�
+�
[�xzA�R��e���-�{=kX����f�_k�ՒSF��l�V�~u]�?�u����#W-�O��A��
k���Q,%c�<#>���;�Cd��z���
6�(7�њ�\��G��Q���K��o�i^����v��䭗
K
��f��&"�ڵ�KH���h�j�����>�,TȊ"���W���x����~���i�)%e��@X�V�
fN>,��):�x���k����z�j��6����A\r|ׯMxS�ߥ�-���
�
;]�DnC�f����
�jF�:s����+��q���ύ����+�lY O�4�[͒��JrF�&��?HIz���p�sMc�6'ܴ��ј
�{�=�F-���Nq�8�R�Y��������zϋ�/�6ǘ��"���<��a����
+�Rm��.�˷bcX��Ui�:^�w��jZ�ͩ�%]W�+{Pu��N���&ؼ��_�@�m.d���
+Z+�{��Ԟ����UK����=x�>Yh���?�i��o썕�
��`�T	p�W�����Kй\J+��)�G���^�{Z	�#uZm�~]�a��)%;[����n�U��$��J6�#���]�V��Le'b�����!]��=�j%<t[z�k�˴����ՔQ�1��uTݡ̦r�I�
+�m�t��g�wy��EoĖ�{(����h���V+����_�Pɱ�^�{ɪh�<�;jQ�VQ�������Dr�.,m׽_��D�4ے7V�:�o�;��|hPX�Sς���SX��>d���Z=��E��#�c�o��s% %��aڤ����d	j�uJ�I5y����f4��c#
��S����p��ЕJK�K咵W�����$�9��+9U�5я�%z
2K%���)��c{;����W��Q%�qY�vnV�?�ڥ�MJ�h��BhyՐ���E�V�TT�.���#&K�dY$����3�k�?�����z�{�W�{���{a�7��a����t�,�PB�Mq�
E��G�Zyj�ux�[��TI
�����F�[��T��dD8۾�yf��ra
,�|Ȏ���0�J='�Nw�
�ǭ$���]�˽
V�iTta�.�au>�Y$^�Y�؋Yd�������a��5�"Zٻ_�`cc��޹w�	�{D+���mݗQC
���ɺP�Z�%��ґ��XJj%�[�Y� [...]
v�z�ile�4�nh,��i̟@4��m�����bz̴�Qy����x&�����I[� �^&F��3�.�c�T�aA���$z�IE�u�Y�{������	9�r�Sr�`/�e+wg��3�Q�Dס��v�[@KyG���;Y��3�!.M�K\�J\r& .��&��E�t����~�*�r���i�ͭ0���_�V2U�˵�M{gS&Z�$��u�+����3��Y�$�1�n��;����
]V�tq؇�fj����N��tZ&��X#�M��x�ĥ��,�X�,��k���ڤ�E�(����~~�|_Ʃ��w({p�Ppϗ�Ú��k�`w��2�jnq�����s!��
F<E
�d=�Jܸ}���>!D������
�/y(�˘��E��f���X.T ���eo��P�e�b~�����>�
�V���[��_n�/�ِ,�.޾��͎�#�ɇ��l��}�
%#L�x�I��Q�Re�c^%�G���*���-���՞���N/�6�0_�_����v='�k�� [...]
1{r��Փ
lJ�^
+��� �l�:�
f��ж�B��r�fN��dnN��W��VZ�
�u�
�Q�.
.�f�
+�d
	/
�}����A�
E���r���O!:=�=��M�ER[>���%p��F�ĈM�pk��ty*��z�K�6uJ�Z��B��r)�9��x�cPڱpm��!;�PA��R�4�L��R �L룏����{t*��t_�z�	
/�&8����;�+�=�MA�.a�/<}U[D
+���~���}�.��G��������f�,䐔��]AO�@AfcZ��
ڱ)&h����
�,�
�
�A��
0/�
��lVc<j��
G���n���d]	��l��,ʐ	x��m�7\�
�f�.�0�L�M�u ��e���!��`��^�M=���*�y���ˀݬ��^�wp�h&�9�æ
�8h����w�n�d w�	�6�n��0�<�~��rm>-����Z�?h�(�'��7�:&O�V@�q�o�H�'b��sl��Y�Tl��|Ӂm�m�K�VܲV<9� /�l�W��T�Qs��&�����^O�V- z�@,�Z@�%u
bQ�؀���-����b�	�����V{E���)� >_0�:�gL�&��kR�^���$u�5h��Q{�	�z��z���?�ۯ��.ρ���x|^�D����"�"O2*w�L k �{�Յ
+��|��Uh�b <�G�>����
��t�R�١��ʳ[`B�{��`��]f��e��
f��(�����j��/�A	=�_���6H�<I��\���q�����;P�!����d�~�8^���(��K
�����&�4�XK�4vo��*��d��K	����/��X�>��˯�v։����������?��Z��q����&�gZ/�q���A�����+���)ٽV^%X߾�

�'�t�D��a���_[�m��m�xנ衭����������ރnsj�݌
.�X1�+k�����|��է�L�D��y=�/>���ԯ^�����;N��c���d����5�ۜ��l�^�A�+��\1�߾l�Y�����\�35ynN
Z���y=���;�{�x��V��p
�
�s��⧈%��߳o�鿗�U��A�Ֆ�;Z�o�+js�l���|���
�':��ʍ>
+��7� oQ}?&��
jc�N��ݭ
Ɍ����\�H�5�ZQ밼<ח��+��� ~A�G�Ę8��*J6A
�v�
�E�ur�� ��Y�����E��A^碽��mv�>l���y�
����Z�V}���)��r���V1
�H�&+ѻ[mD�c1�M;���]~:��̴�<�/~����_����-��O}���Ɋ.��c�>�
s��<@q�)쵭�n猬��
+��Z��Z��sc��n�< ΃��>�#�z�~�ꡛ���
�s�Mk)�+��	��GL��J
�
S�M4:����2��5�
{��߈_������[���;�d�?ӓ��t
0�=��
���˳[�b��F�Y�M�Uv:���4G����
��^�&Du폏�i�F���q��u�'� xvf�`X*p?H f�1(S´?[=�~���=��Fzy�
�
�dMg.��=���kg���1�'���9^�A{�s;5��c�[6�d|��
+��3dF|��
��W%x�)+P�f�2yP�$�=�i���x��-�ݽg�I��8&��Rw?���N��v��J��/J��`rIɐǒ��
����;s�o�����_�6�|,�\���?�e���4�5��iMF�����>�����ϖ�t��gE+�e�y�f�`;���*�|�܈F�'#��mL�:b�|���k+TQj �\
N�4���y�nԼ��9�}~�G�~��]^���Wk�����D�N�F�Z��U#��c�_��Q����>QŞ]�á^�;���t�cOj?��r[M
��D�5Z�4�k�L6lV�X��{#��P���������n]o��W�ш�}��ǿp[=��1%)���h�m��xY
S
�d�����5g�Z]&M�:�Te�~�Kr^RI��*�w�fT��� fHK����]-go��N���wXԙt�}Yx��{�[��P1_22G�ul�.�����/~��˕L�n�M�
h!�����W��X�y>EL��Z�Q�;m
�-佛5�E�o`r��:+5Y��9�j�x�s��u�ӗ�
�HV|V,.lk���ֈ��M+�ڔ�>jh'�7��X3��Τ���k�z��nUl��V1/u����)e}�����q��^�Nfڽ���҉Ë��&���H���-���C��5V��vq�o����+b�
��J�2Nj"o�yR�U
ɨ��FӨ����j}\T
x�\q[u�B�����[St�ӕ��t+����p��8�@��%��]�FF)�>�H4�t��V�5�uk�\f�������v�s�=[
�f�0��>�^A��pP}�fJ']KO�DFtum�B��q!5
+W�B�ɮަ�Y��͎e�@��`ȕ$��JRJ?j�йjO�8�
?�~N��E��(���	��Խ���]v�Vc=`�.1u�z7�+�S��r�,�G�ZՈ����8y>���Y�Z��l�1p�k��T
�)w�M����VIr#m�,n4���ɽH���Q��S;�A=��~�bW�j�<��&<E�����Ia�\�p�%=����y�a4�Ͳw��2՛c��d�w`mV-�F�J������y��퀔}�/=�1Yh����BES�����`�"�u�i>V2�=./�]���B�I_d
>�>8��}{�����i~�aF��\�!�f������w��/F�5|l�Z�)�aejj����t��~:��:��I��S�X�f\
{��f���9AQ
SVE郦>d��X�e��ϥ��q�p�ȋ�g����*��,�O��
	ό_���0ǦM��F�U��n��
:.e�][6}�y-��9�T�9MKz�HT�7�n���4(�!��Ch��Rً��K��
+��k���]۴l#���H[cjH�*�0�}t<��	�1v
��'��V��G�s��X��
&�̍B0w	ȋ��i��A�fW

r�ru�!�c�P�,��>[
+�kM{��VR��:]��R���c{Tj�w,���
�\Vr\<�9^�K5]�f�{�^,��	�Q.�/�\0�%5

�#�
{.>r.^�/�Wf&�E(

+�tƓ׺A�k};��N��`%�
^貨4�(J�:}�%5m�
�v?�䵑�zVL�"έ���z���Ķ�C�d�-�
�|_"4�9�9�
+͇줊��rf���1�r#da>�p���`���˖-�`a�<=V�AzG>x�+�r�\�dֆՇm�w�,3Z+=\YX˼\�<8iw*�$R���4���}"\Ix)tO������).im�S��
SG�a�J�b�
�O/S�mNK��7(����˻��;:��liS��b�J=��LF�>�V�͵m-������Ʈ���V�!���G��>Z9��4)�F"��_���G\�u-����9M�m�p~9�����hC"��Ezy�
4F_
�q
+
�?x
��ƞ��e���1 N�F2&���%�]=����brG�L`v޸�&�I����5�ͺFQ�X:��Ԩ�e�}o�
~(�O�:;-�4�����S�nZ�ʾ&�}����=�j;�^(W^�����%i�H�Q"�책�����b�jQ��
{�@Sw� #7� ʯ���l��d,���-�6R�d]���̬���ʩnX�Q��)V�ˋ�0"�q-�gj
/)İV�<�
C��g���Y��t�6�e���n�~カ��!o��҂�CkY,�
�̕�2i:��`U�v���������K�^,]�&P�k�<6�Hr���
+M'P��h>��[����fk�����Wx��If���B5,7�?�;ZT��b!T`��Q- ��E�q3�q�
�Y~�2�yKY>�X*��m�&��ѫ��/�)�i���v�˜fq+sjVY2��5r�
�6Y�鯿8�f2Z��9�㑋�N�Y�E�~��em��s��'%��֚4��b��J�>hކ���a��-�Ngih"g�ۧ�d���pd�����i�7�i����'�*�A$��b�:(�5��x� HɭՓbH^"E廓`gl��]J��Z��l=8-ϵ5�ΓF
3�j��#^A�•o�L;�&G�9Q������L�����3ޣ��r*$3��B���Y\�$X4��
�U�C���
�]Nm�v��L՗�	��?d�x����
m
�.~oSuۥ�S�]��)�vO��em��=n^B�W_:���
@���L��SM�/l�H��Ǯ�!���|A�Sš#
4�ZP}��l� **�4ڀ�?'�:��	� PG�ԉJ~{z�����
r�
+o��M�k��� �7��}.��X��fع}�Ԋ
_�B0{��N;$���"�7�<�υL!��
	x~T�)����
<� RJP�����u���]�0�0tJЂS�&YZZ�)��_�`*� ��?��@	���<t�]A^�*'8�V�;��Ffɘ�ԡ�V�Nq������T3�z���[�~��J����
`�M0���?6���^��5� �;|88��(d�D�	�O�-'*ɯ$:ْQpJ~8��NK'o����+�=�ְO�rym�Ӧ�|�74]c�xS�F��2�ѱ�hp�@x�V���
�N>Ǣˀ����˝z�^��)�x�~���P�q �:�=�q �\���`>9�g� �Ew�3��2�G�28-	u�gD�/���#
J�(O��~z��7�l,�St�U�O=9B]���G��
s�����ޠ6�@
^�Bxe��`n in@:2g ��8���9t�<�2VL�b�(�e^�<��!���%@�}��Ç���)1�A���ډ:��O���۔�� �#��o�6x�����c���	�=�����m���o6>��z'X�@�&��n
+g���1X~ߪ�R������a��K��m�K	�o�o럀#鐍�e�x�������㿢`��_
�t�F�U�(~�ڀ�����
�����ߛ������oF��h��q�X�D��6j����u��
+���xz�w��ۜ<�o��]W

]�{��le��8���|(#���'|�kX�UG�����U�*�n�/���N�4��
_
���hq�ӛ�}��dns|Y�e[�j]��e����x�������~:���{ǛQ�ª�>Ȼ�u�n2��v>�)O�����;tP���e���eu�R=~��O�r	���-��^�1r�ܧ9�q���uE	�
�Ϯ��({8�S4����r�p�
�i|�vs�6;��
6z*kNWW�L��<[��d��b�#+�B8ݸy�A�׿��{���
��d�\rB$ >C
��F�eL�Le��C��!Ȫ�
j����t7X����f���p���rq���B�E�y at .os�t}Gc��~��>����L皮���_�Ly1�Z���1��-��߭�F��υ8�+�o3����Z���y#����\�sZx� k|t����1���wz
�G1�;m6��:X[S�k��Ү��s0�`2�W�|�*�cj�\G
Y�[g�
+�;R����|0.�Im9(������3����oen���:�]�,9��m���V�
,�59��sj9C���4;�ēm���~nc�G
�%+�ᭅ	CႫA�*�����{�������0�W�Ǧ77��^�젾]ψ~A��]��m�D0?{����s��?����j]�� '?����ٯ�<��W'*I�=5���l�AgLg���
>��'�`g_�Ҏ@�3I����
+�3����կ��_x
�݆y]�?��v�U�򌮝�C�h ��F��es�V��f�]v���v�}�hL\(�ݣ��k�����$��B�q�B�c��Ӄ��n'�e����j���&����ҹۈK�w�ա�tid:��
���~
.R[Υ+��ZtZ���p0����Z7��3�Z���l�奃���R?��pr��myْG�
fW]}�-��b��F�`��Uh�.�vQ�Y8�u��b��D����f�����n��-��S��A����i��b#��Yw52���
g���
��
�QeU�����fb��S�k��}d>K��9��+S���r��
ܬ�Ej�I��I�_̂�o���]�
����ٹ�
��hN�Ur�f3mn��-�k1�u

��4��~�
��:Y�2	�[;��}�Ҭ����g��SU�Qm�ε�3��c�42,5�.n��j�������S��Q��ȇg+J�
�%5�m�ۦw�
���4�Z�a\lΜ�0�O��[��C��޾8c���
����5��WK:�^�G3��ZhhT
Y9�ّadv�vբ�qe�w�\�+8�.���j�SyhQ>�o�ʢ|�
�p��hj��px�A� }!��'���8Ǘ���2���Wp������`���n
����μ��fg�ZxgW5T��<Ӽ� F�꼫+l��b�Xq�7��w��޼��Y
ev�Y�nV�]��7�~��B
�^������=�-�;9�04���s�������9��4�% �~�E���ǜ%���V�˘��gd��a�V�Q��zo+��=W���V[���k%W��
U��+�$������A4E��x��%���0v�*ӝ�����A�7T�\�%
{h����ߦ��]��uw������V|y�DT�Z��F~r��^���D�B���ފk���W�nn�/s���/��ڳPmH�E
t+�ZzUe&��Jz�N�Eyy�M�CʹE�#�-x&����D�u@�Ū'��np����wy
4���+�b=.e�z����3I�b�X!�<���v�|�v��^:�~7=,I<=�^���T��8T'+/V��Vf�c^�P0+��X��^S�7≸{'�1�
"�3M���?�g����X���)40w�]�%��F=��=�ds2I�̫��np��ϖ��Y�2��⤪6��M-U��Ԑ|�*⁅q�^��髼�*o9?jg$�Q�rWDr�9�ɚ&ט��m
r�O=\�ϵ�_\�n�1�b>���/��~q�޴Cm�s�Yɴ^*�2
����
�3� Ud,D�����n���t2UV�N�V
�����Ve2�1ⲑ���$�l�)6{*��&.�L_�}�n�Xp��v��Z+;�;
��
N.�	>�ž/�i������i��[�hw
����a� V7�
^��\�3�R7�D
,�d����#˘s�I��Ր�!�ju"�Rݥp�����<tw�o�G�6�<�e�}�&�]a��|o�LEa�a2�93f�2f�w�/ΩѬ�[��)P�?�WML�<;&NF����Ri��$''MէI��0���9-��[Al)8/�9GOFS����8𽀜qO���`b�8�t_�8�gX8�a�Jݬ����C�h:-�����
7���4�V�ӘZ�6ɖ
��v?
+Os9�� t����=�p�3����\Agm\�@$���%��F�dm��sn����Tr^��X�Y��)g���w��}4d�Y2�ό��I��;��;(��mH�N�5r�5Zd��#�8^ı�Չ��	��ꏈ#�
�D{� �Y2W� �����]����u�DcM�
�"_z�*��D
+��n��3��n
��Qa�+0���21P���P��Ԡ�У6�R�m��A�=�9��S�M�X�@0�P¯���h8)>Jʽ8@\�؏�~�?��=����F����{4�v�
�����Q���
+�6)��G�?���m6��p=��ս�����p�G��dW$�N�')\)��k�4�8�q?D�����b�'��܊3�7c��ߘX����>|^~
�`����t

+0�~�ރa5
���rs��sh�K���{�%"-��w�(��x�{y5�D��r�Bx���;��M���R�������c�P�a� ��6
����(?�C�|�YI�V�9���r%�},����,�v٬k��M�mg��'�z�o��ҎR�K����5s�4�+y�K)�.��4G��
������1�u�[QMNXza���T��a���e!����l�,*Y�1k��u�ʴ����0��J_��-�]�y���ڨ�x���*���n�}�2@���G���/��F�7
%��\il�W�<��5���s\�X�r���ĥ6~U
+�c�J���;�!�{�+:��� �"���
+	F
2:/Udt�'�n��!���a\8�zЇaT%8��6��0�|a���TՀ�Z.����ȁ��y�����iD�Q�L_[ڔ�U�ø-��&��a$#���MaY<��}O�����W��g����y��d�
+v�8��DS 1�m@̐~��
+Q�`A "��Rc at tR1 �ru8 D�0���2��y�Aj�lzR�QK���!�
���#�<�x�ry,{���2�J���3)�8S��A3�Ā\�R	Vi@��x��k��w�
�>l��K0��+4��l
P�f(x ��� y��y�ɇ��/LA���*��%��R3��͡l�L���k��L\!~�l{6̣�^&����0�M���<
�P9�B4�d]F@�M��]С2M�=zZB�y@Ϣ��5��2
+�a�H��
-�
��
�T����sYSw�|�}~<�5�14��/c
I�κĢ�њD҄��ѓ�~0Ʃ ���V���Ɂ�f�VsXW�L;�%Z}���
���
�M,�`� 6h{�
V�
)E��Y����~�L�翰��&S鵨���/ɘ,J�>d6�U����I9�=�2:i�2�,8��_)�
+��
e���
+�0��q5� \g� �2��-�Om��o��Oz�"O&XTj
��u
@�Y<�e�}7U����Un�H8̗����Y�8s�jq��|�!r�
��7�0dM�{��5=Y+� 7*U �	�?i�����"Be���t6�)�����ĥ�E@��.���
H��R��ɫ
�4�>�a)�d M�^�~X�;#\u�^Z�8��>iҩ��Q�
L�h�	����l�
���
���2��������F���ow�	�����B
ȗ��o����vO~��@���
��?��:�W��b�����&~~�7�������G�{	� �u|��X'
� �<by��
oS(<��/}~Sb��~��ߔ�/�֯P{����+�~��/����7��	����&#����
�q�wu�<������y׷w�6��mNz�l�]W�]�^m{q�������♚��ӹF�v�|��O���;
+�k|A�5�J��
�~��_G�U��P7i����
u2�[��y^�
_�G6s>�X��|���\b�;c�
;ުz�(,u�`�����^;���)sZ��
��f�v�My�����>�=J+�ѿ�+�u��[�$�]殯*�-ۨT/[���퟼Tet��� ���^���~N�s.w�X��c�U/�5
>�U
}�g3�/�M�[�pF��-Ӛ˗E�c�X��4�Y%%r�@C����К������'�Uz_��
�ر�%��C.Km�
%��r��Z���,���\���DЎ�����k̦�8���j1�+��4;�]By?ClΥ'�Z�ǭbO
�[hc�я݈�:а'��/n��|����-�m�<޾�+|x8u^~����b��r��C�녰^��ws� o�L�R�
W��i�L�t$�f���M��<|i����M�ң�P��A 0��
�w�h�����s���͜��n���rV��
���N?�[﹭��v�
�8�AQ��
��(
+��P�9���
�\{=�j�Ke؆%XUw���g��ŵ�?Z�~
[Kn6s~�K�TH��=���(>T����9�����8O��@��>�X�g����=G�$GGs�#t�k�Uͱ��&h�.�D���M���;�� ��;��T���H�$�ɓ/�gB��H;��^	��
� >�X�՛��f-)��4�
qt�W�x����+8}h�uzHZ�D謜��]��­�؇�ݿ�
>&��:A}���<\�^���J��
����K�6z��wC�[��xl+��[nM��n��?�=O0��c�����L�b%�;�W
��7 ��7�
������t-,-����u�Nh-�����2�^{�$�2���=^��6\��鵍�����g���E-_k66�Itw�F��\��
v�jջ2ԯ
�[�?��G���6��<~{���u����
L�?#�
RQ �W�w�n�yo{��
�s�
�}�U- =w�����fU�5I�~n���A����
���r��Z�=�Y���3C�S
v\(�ߥ��x�j!Q���ݨ�
��8I���L
��ὦ�Lmuw�P
��N����<�q�xzAZ��w���t��rã$�9�����ׯ߶�.�������T�s��|ۆk��li at U��M�, �^��n�Jk��圖����3����]��φ�z�l����ں}��}ҫ�q3�����VM�׹{������	9'8��z/3TjCrQ���ݵ��ձ�fX��|R�=�u����J�wk�~e`� 
���
�����40�Hsn�
�c
��{�E�������:�F�Af�}�6
��n��:�n��V�M���:W���,����^{��Y{�N�6�|5_�Jm_�U��^�j|�]���#���f&�Ƿ�S[��ُ�1��0o��������WA[5�DӅ�K�
����Z%PM��������v�P�u�� �AT|���S[lҡ�;"׀j#{��'�v�V>�O���s֦7���r#�4�6˧;����\E��[��3���Drӥ޿]�Gw-�k��Òjn����$W���XA [...]
+?��	˖Hč���
������T�����>�b�Ů<Ҡ�6U�a�Us��E�Oޙ_
6G�SkH2^�;���Tz���D/X�E���a�<���4��8����@G���Mo��u�~/ڹ
��`+�j
��1=c�6�Qs���� QZ�Qd-+6-5y�
5g/}eQ��{��(�����g�$���%���(
MV�yh
�Z�'�h��݄��f:��}?-I;���z���F�S:�!��k�\i��CZǻ�B��o��E��q�T���)
�1ПZ�����H{ܢz�Z��u(�?�����?����mF��f�q]܋,!܅˾����P�xYXw��@�r�fQ��s
N�L��0��
�U��z{����4�l�Z��L�y�����b��9�w���'�ײ��F�=лRDq 7� |@K��\����O4����l��
�3��r���̕�WzZ]p#|Ds�v�̖ϵ
��53q����:3�amf�BZ,,�m.����I2�Zo��d0��<A�r=C{l�1)��k���Ӫ��NW��R�&����,���K<U "��!\;/t��.��������
+
��I��Q���2�ɉ5�뇅�:�T��F/��6]�,�r~������L/�t,��`�:1�#F��7+I~���_#��F���ٷZY�ySI�R�3Vb�2�B׷o�3���Js]�>%@s�/s��6�3i�Ú��c����KؔA}eG����ƺ��|�2EOnɃ*�=��Ktߨ��v�ڳ�?�����nG�/�u6�9J���Y�.h�+�y]��o���D��V�
sK^Y_V��'6��'k�p�+|���)ˠ��B��x�vl�I�/���`D��Ϻ�
�[�Q�t~!�	"��ND�☐�y����IH��$"�v��0�g���u)<
��{�w�:D�Z��.�������-�}�,�\k�}֗%��麒)��[��Q�7�~�
U��t4j|�مyi-�dH�Z$fz�=�f��]
�i��p

0ظ�V�21`�C�eS
ˎr
�8�13�Y��9g���Ԯ&Mn�r��禚���cy�S���#���3?X�;�گWt�g%�/�0)�G���c�C�~7���
�� �w�)-au<c�jXyz��G�'m��h�*,e�(G�2�1�b��e.h�)+�Y8��9����)�i=:썇W�"�黊�+�

z��%�Q^ށ�G���+�N�{z��J'��}q4�&�β8�wv�j{r)���SX2_���t>/wt
/
�y�7PҫD��e8����%�y�ҫ���is������"r���
'T���B)Y_ܣ�j��ձ����A������G��k�����E��
����i�\X��qދ���%ms��<����F�� �D��DwRD�^݂_�
>�����b6;��B֘.4�E6��T��z6�)'������~ά�O'���m��c
+���0\���P��f�lr����xv*[,��g_��}�3Az�$���j�� �}�<�]�p
��g
�7�RfI��L��`�*
иΦ��� z2Ţ
+��7��* ��5�m
@���m"����+m�q�����⊢�nZ�#�9� �|FORj�/��*
+��~�gcs�(��
���9�z�4��}� �Y� �
dy��+	�G�N1
+y�)v/@��`y1�ܠ3@&$
+�
�F�l��/��|s[C�]��G��h�.��"�*�1x�@��:��p��(4��%w��D�v��d)n�s�/Ai
oA���} *cd U�
�� &��J�7 eh��-��-P&/�B|@I�
��%�B6H1X
+�/�j<��mu;���*]u�
����
l��Q��eq�?�
�
�\�=�q#����^��9�
�y�4z�8Àn�E@��t��_=y�� ��=@?�� �3`r���=���K����6�M�|~m��JN9X�4���N�$a�W9�TT)�#��4����2�\"r����P}�g�w'-�G3�	0�� fU��<� [Ȱ�eX	�j� ��K�C�
��y	�S��3B ��� ���{u_���"`��`��ءX���7��1���
U�|2����U����_�r���2����̮�N�@ϊ��'K�������
+e��Nܭ`
���b������0v�́`D��	џ���@����ֱ�tIGK�/�aҏY�3蒟�Uܾgv^.|��
u5�xݥ�
٬�*�j˟��_���
������
+�.�ɯ�w#o��
@���b� ����erfC;���ow@&�K񚾔*�1#��|��N�-����&x�X�"���9I�3�l�:�����m����gz�?[���n���S�|�JhQ@�b���@�7���߾�
+�b� T��Uf-�*��?J�W�����ߛ�'��l�}��뫄�c����U0��_�m�J�
+�lG6@��S�s�G\P}ݼ�"���B�o���lk�
@�7
+����V�����f�W�������Cm�ok���~�l��`m�OFl>�O� K<����ͭ,��%Y�U��b+���~��
+;r���.���D�M�~��
���Q�"���E���L��!�9�����e�y�m�׽��Oe��12��ws=���vws����� W�gzT����
o��;�
�x]r�iz�^?�.a"}����Y)w���hMΐ��CȊ^7�?���w/������F����T
��Pe����]��
u!�=�Lƿѫ��a���
ji�v�Q�M���]p
��kZ����u�
��~qs
煸{?���>���X�&rS�"�e-���h����l���x�Ԉأ2�Q�Nr�i��_���r<F���7�e[�`�u�}ɬ<(�ɸť46����-�����[I��	��';���ʴ;&��a|���}��(��t�q�4o=|����@y�~l4���u��T���x�_�3��,����Z%X��}0�O���:I���*i�d��19=cz
�Q@ĹaD��x��������
�X^�}h�5{��qz��Dv^
F貳�:��n[$���
x��
� [...]
���-
�_\��f6s��H9�O�k
��HE�=�t���;�.r �1�p�aޗ����T�"�
�Un%�\�������[]�P��7�6�(Z6v���(-nw�X/e
�f�P����Gk�^�
ٯ{fg��>eg豝bר��S']W�>|q�j�gu����͏��tQ��}��\�FƗ��{���|:ן��V
�1�X��M��ȍ��7�ҫ;�<]�^Ӆ\��Ɏ~����Mk}�Y�o[=���{ۙ0=e�g���TˬT
��Z6�k�.uHs3*V�t
j����~�O���+*���F΢&w�)����-�W����67��o�U���L�:a��jD�~/ۣ�l��|�:9S��haev/*�i8�V��ƪ�����l�${
�|��ҫ_�Wj�8;Ϲ�=��6��zd/�z�N*����`:�>'�
2����E����
��Kf]��ٲ��7G;Ɩ�jb}�� '��؜�Z���X��1��qT7]�.3�n�K�q����
G�Ύ�zt�c��j��0woh�n��1�T��j�_��ٶn}�����6���W
��vf��a$�+��^�h�+�uu�q�jNR��BͼX�o>G
I���^�e���2!u#4��~��
��u:?�.3��6
7���ŝ:�k.����Z��تɋWa$�F8$��"m����;d�E
�ڥ{��w�|����5i8�����l�m�P�%��jx��ܭ���q�W�<
��g����t�1�M$M[

-�u���Z*�W��Li�J~5[��|��{
��ʌ��t�����'�H��\,
���Ní)��yY��s����*�Aw����	�8��:gO.�g�^?
̽�-�
b01����}>�j�ir�t��b�$��UӐJ�l�rJ�h
+J%yy:4dL�t�m�
JdE�����$�	g�I
\�d�ݏ�☿��DR$/v�����������
�;���\r~���-D�h��aR_�����Xcm4͎4��V*������
+�.`���`26�1���$�ܪ�xpݚ�Is���COtt��e�G���=O�
:}��܋�^'�P��Qfc���j$��s�aO=�f6��U�^e��}�{9Ъ��7�l�皾�c�
+���eG���t�J�2?/2���
'��&�5��ߋV���n���ÄS�ȖZ���-�Ls��X�M�]�\}�����p�`r���>���=�۞?�e�NxTu�!��1[�RS�i��Δ��2���ߗ�A8��p%\��Q���I�nY�WЊ�t	�N%n(\�
�g����}�\p�̴�,����
�E�"���z�iQDNXS��R���Q��ˠ��N��>z��>����!h9��^�j��6�l9�]���%wj�e�d�;
�G��B���Yy��tk�
�ޕӌ�20�g��"�´�1�sKe*������W����
]�:s����K{GJ�},�'�l��� �E��v��'h����P�bh|^�@z:n���je<KX-e�1z��U˞�[y=bf�.�By�?�|�{S�����-�+fF�G��n<��h���Ь@��ڴ�"դ�2E�|���A���&d�b
H.�]Ge��n[��������
�����?��~Y%�EE�/�õ?NT�qyUU;_���2���^�<�J�mn�?�����

o;!�
��4V�O�fw��H�q��K�
�.�&R�k
�<g,�uO
+q��U��*���6�Dz�X�{QTw*���Eso�	RT1H$R�yӛ��1v��k��;��+m���];�����W�;Rv΍�ĐE�e��jbP:�X�
tD�@�Q��ѿ�����OW���
X<
Xާ�E1��b�И��׽P k�:f
g�>�su�����}�`)��F��ӬE<�ͯ��j�
L���@�H�S�D�2g�U>�.h'��:$�����i�ÌSc��a^��XɊ�bnZ�jy/W(��%t
 ���J~���-�=�
��1��|��{*�|��� �#��.�eU���)�}u��
ٱQ#M��0-�H�`
�*���>�b����*պ�.2p�
�b��}�q,��{���k��I�˝��5�)�K�(r�
�+
nX~D�>ܗ�
,�Gp�

bV��[Y�ܳ#��f�'�r$��gCϑ��
��K��|Q��XF&���
k��
jW�LH�4�<�b~dwP2�9���qv�����%��~B~�"xdca����,%*/@�*?0��?����3��O�Mt`	a�Ǭ��1P�'"X�s1���{�8���
��+	z��1e�B!��|�\9����Z�W���zAI�~�V=���0�A
��A�8�����$� �Tf)�;��r�5$ő�^5Rl� ?T� ?�W��a�q�x��M7Ż�	�&W���SsQ����rO�
+ڴ�'���
�{�3�g�X�Tjk|�\Ί�
��|��kj��\M?�ld��e�����M����"� ��-����
+ ���Xf�b�$�K��%O� �c]ĩ�J�Y����k��j
�i���.��-�V�۫tnd��ҡҾlV��Y�#��jg6�B����E�0N�,@	vv�D
N�$ܞ�d�0(5$(���
���A�]J��
���
(
x��O���
�
��rv���\��]��]�W�Z�q�%�����9�H
1l�b�X;�;��
Q��&�t����<��F]����P�v(�s �������q� �
a�Λ
��	hE� ]�Om{7@�x�ڧ
+h��
�g ���t	Z�*�9��E�ņ}#v0G))GM �%K��s�T� W\�B����OD��l�u��}�>�Փ������~
=>��! �D=�N�L����T��a
�l)J�~5��?��8�� ��6�5�J��}4|,�G�0�~m��+���ֽ�\�p���1�Y"��|
Et�d�r'��)���"��x;Ȥ��<_�+�"28�% �y4 �0u���<6�19�a�u�nQMq	�ң�
��&}��N� ?JK\S��� �>G�
*l>��zf<�G&[VҏW6؟��I���ޕ�W��Zn�_�����������]a
�� 	��@�:��t�&�
�XH=f
�v)$���ZK�w��p!jn7f���KH�U,�f���8������h�\���|U�ݶ���t�op�?���������P��
P	(]�
��]eWL�=�
+Pn�
�M�P��������9�ߗo������M�]\�O���S��w��,��bm��S�E��SM�}5? 綼�{�p����V={������ �b���߀د&�EG;�1�֮��ȴ����"��"������&#P�?�� Z?
qn	
Pm����HsY�UK�z'�Z����V�j��3c�*\?��b���ȁ��il����ke3��5�~�M��Vg�+���Я���o���n�=�s��C�C���F��F��-����gy
+2���f
���=�
�������g��Ch���6
���ݲF!�v����rc}y�]�%�-E���:̟���Zig�h�|�5�~���ʡ��u�\6��3�s��{�N\�!������C�%�eeS*�59&�=C�%����{����ϕ�3���g6�"h�O�*�HЉ��8�����V��{������
��M���~
�����~l�^���ߠ�k���3ꦻ�X��[97]���jq�/���q�>�wv��'4��'�d�Ϩx����\���+��
�3{x��aڽ:����?�����C��=
����5"���]ts>}���9d|����GO���Ҽ���ǞV
�ϕ
Y�"�Ğ8�m����c��� ��È�փ
��(������Y��C&a6��0��1�u
+S:�6��:J�rp�p'�/F�9�ɴ�=���Q��2����������cZ�e���ܧcԯV���lzn�1�5O�@�t����R�;��N/]��O���F���N�}�L:��w��f�G�r�����ק�f�l;6�b��l+��F
Y?��Y
��awh:�"����ͪ5���Ϣֿ���
�e��/eT��
7��:����gdC�+��/
w�sn�p����{I��ɕ۱Q������Ѳ��B�L���wѭ:n:%c�Ďޮᲃ�s��2�'�x�<��z�mk�[��kQ�}��垵�+��N�q���<iL������4�_]];|l|�6ܵ?�ڡ
Mj�2o]��M���m{�6��Ht�Fw����ػ������n1
Ԥlq`?w���U*<Tө�S5
�$��R��%ך>˾|0���(VaR���~����d ��#�v73���Ȼ=�����iK�V�N�Bu�L�
�7W�1�9�/��]�g��+=1�5B{�Ӣ
��V
��J5�j:��p�W�Y�Zl3S�Xb����MB{`�V"�e�ڹ�)?�l`?�~����!���WT��ݖԹE�t���G�ym�N<�ֻ22��o$�
:2��%hcgX��ܻ2#-���
�Z2Q����D47�f��U�{H�L]Ȏq
+͡�>�K�[�^u���~c©�'[WG��B�녂
+a6���
v��nW��߮�)��$Ϙع��������?'%�&bܯ��T�:�����Pgk6�����'�2]9"���Z��GY[מ��
�~:�H�y2��U�W?*V� )�J�e_Vdt�`��
-���jX⤕_`gSΘ������:���~e��B�L,gl�����1����=���Z�%~�%N�k�[#��V��@nJ���ΩY�%+�
7��%9�"�r����Cw
5?��:�biT-
G�
+>Q�f�KkK��-�����=�LҰ/Ioq�k�pWe�{��ތ�����]�q�Wr��
���]����7��:iM�19^��A�$�jٗR)
+��hʅX��-J.<���P��D^��j�"EZ����j�'�=r����
'ׯ��
���^
���D����
<"�{
+��W��|��9qYfgN�?�K��^eO�wS�>�]�bS#yq)/���Kx|����#��wNl]��H�5V��Y`�~�_�G�.�
����ɏÝ
�|���Ja&f5`&���L*e�/d��"��(<
/��r��[9SE��ɤYl�?�j��aW-o�m%ߞ4�����R3����;ۊ�N�v:��8|�廭ʋ��
B���f��l�Ύv�.
���1�� ��վ#ѨJw�UF~P+(O�(WL{���F1���� ��t��y�6z��b��qn
mt/�T�mu�e�Ԓ�N�!�[Ֆpzw#��Ob���,x���;唥�O���0l��qV��8&��*c�Y���5�����Z�����pi0B���%򙿗�æTr����40����Qe�I�
�N4��'�d5��H^�r(�N�β��:��pjN��E{��h�B���I��'cYt����"m��](�$ju}W(\"Z%wX�J�}��^R�HƺsD����D0n)�%�|�H�0*�V��Mߛםیǫ��x�ϋ�A���,m�BWd��K
�p�y�����`&�|�L��bz�(
�>tԚ�^)�2{S���+�L�(��'�v['}��$.]�O�O�߇E�˙��^��`�J��
�^�{qif�?��!*(hە�V��XW��m̽����L�C�[�!/u�5��c]�*]#"�Z�

+����]|KJ���>�~[�����t��
+Dh��
+�۷k؛ބ�R
,#,^��%��z�
��+�ܧX�q�(�
�(���i�;��Ԍ�h���K��^Y��,�/-$

+!�9��.�q�Z?,��Z�6���6q�H��;CBXf��s��}
�`�
��F�cz> ��� M
������&A��p���:��~�`n��*��
endstream
endobj
35 0 obj
<</Length 65536>>stream
+<Z\�p����A��q�&s�$;w�ʗ)���
��
+ߢo7��,oB.a-��8�6���59Z����t�?�\<
"/aq�*���P������P�l?��
h���k̏�|�zn���
�گ�1G��(da
	`u�t�%9���M˵�A������������y�w�?���K{�4�Km�i�IH/kH���
��ٸ2
[E
)[��4P�Qk�8v�n{8ʗ��,w��]�
���c�-��k
	��m�ߋP�6�=,�4��K9;X.���ɾ���c�pd[xkC�N=Ӟ
5'�v==��t�Onn��m��0�ߥ��Mr����ܫVL&a]�r��zW��~uϴS�kiq�����1�:�^�aP�g5~̤ˎ����L��<���t���c
X
3m�1�^�c1S�_��i`͎C�l4kq�np�i2{�$��
�Wv�A41���z�<��
>�J��x��k�V�
F�ξ�S����#/3�n�LU|��r�_���� ��} �X
+_XwSl���h>A񩰠x�<P<9���SJ�gIG�*?p�
��ק2B�A'=�x�r\06�%o�D�ˉ��tĴ��|��:�`#"
W��T�������f;Ť
�Wf�BN?17��j��<��/
��)"�q�"�xf/�6��B �'�fs�Z�Zf�<2:��
�^B֚M�T�x��2H�
܊C�i�\�h�Ekd
��d���ͨ����w�#@`�
�eCz�� Q.�)"
&�8ma��?�
�W�U�! �� �b�D�k�ڮV�1f/{�h�ά 1�����&�ޚxL�S�
�u����5<���%����M�W�=�׊x˿{֓y�Hj=��lK;@��+ g�
 ���2�<���<�'@���.|�?�N �Wn����d�}I�d������C�
y�
�X2���Ms�u���Ս!��
��b���kJ���Bu����.����P� U����`�
Ej�/j�vR��[O at MP������)ʳ��@���٭b��
��11v�r�Rp��8
�/���#O����%�=�+%/���
�֐d�h����51��}0��
+�q� f�마ws
�d��~���Mf�Y	0
s'��n�fг&{A(�ƳC�T=*��0[pK�ONh�3�
�T��̞�
����,:*�zz�2�7��+�
dp�P�l�E��
2M1��Q'������S��q�(f��� wM�u'���!�[�2�K)�aTi��<L�I���M�ː�ۨo�Ŀ>�x2���"
�"�f�oxB
�0����ES;1� @L2wQ �G;=�lS@��| ��Л$�l�\�v���Р�h�����o�-�S��fvW�J�A�m��7m�o+�����o���w�Up��
�������J�rn�r�z�I�
(�d+| �
+@�'�i��`�
�,P:���������O�O�m���ߌ������h�"��Cf��?�{
`���\U��#F��r����y�ۜ,ohgu��x
\��S�����u�
���+�~��?��
��L���� _u����j�����'#��~*I��j�����>����^W���b��]��t>(&{��t
+�u��M��Q\��� [v�����{��
wHt%�շ_���k��ZWg���ȡ����K	��6+c��G
ǸUw�u�|���>cx���-���]B��v�]��k|Z���mu0�����g��zV\��%=�e�	g�ǿ�e���	�E|h���<d�?m|�S�q]����˷c����O��泰3���*�������e�tqc���L�{���1E���� ������&ceV����1�
>��:b�[ ��H����}ځ�y|���h^G/_M��ѓK�o��.!���Ǽz�3�\��3�t�N��u�T_���l�cr>{��:���Wo���u@�?����`�,�و�4�Х2�:Xg��[��	]j"��y�
!��cX�u�vy:�o������(&�x�|	���=�	: ˜���Q�UԡxԬ��m4��n����
2n�#���U�_w���]�u
+��-�O�W���C
�6A�[t�|�
K�@*�O����z%m#=Z�(-�����������
�'y)���8Y�˳�W���ܻ00��A6B'nkj1$7xd w�ޠ������Ǡ�
����ă�md�^�&q��'��OYnW���.�CM�ⳍm�!.wP�C�t
O��
�3�ԃrEN���2,���Qn&���ŧ��!#�nm{��>��#nw���Ҏ�Ż��������k�Ts�x�Ml��.����8��p
�A���Թ�6�EF%�I���
T.[Ee�;=��D�V�����x�\�bM�?؏��bVN����R���Q:l
=`i�Vv��Z���%�mK\:���w�~�R���nC�I�����U$���y"T�B�T����$�O��
Pϲ�o����t���ĞJ��
l�r)Si��>�iM�`�"�/�li0n
\���Ŏ�><Z�Ro�$���s�#���w�z�U�Z���~�
��gV�U
��V�@=WrY�a�w=�*P���z�q�]���\vw%�8RR���QG�臱
��A���֣IZ}��:l���;ͫ��(���{��#������-�6���?����
m
Q�ڲZ^��U���t�Wr˴*,܆�ِ��nqٗ[���8���GB�`�ZA
Rj=N�mƊ&G�V����jC/V&��N�-�#�rs���u�&-�� -�B.�������{��_�9�{�K]ʎ��Ĝ����ͻ�0I(S5�(�[�L��d�~5�X���
^c�) �������������Pe��K
+|!xyV
��
�^�DVP�b�߅���	���h=���	Iqͥ/����t��������:�?��Ȝ}�ڲ�I�p`
=*t-]l�e�v[��6۪�t#��Ŝ�W
+R-
�ꊸ�hP�H+�	Kش����&��Er�P����}�>��S��W.2�('���>�;��
�<v��h�_�$j%]��]�.�PY�ش|l"��V����?��S�NOMI
�� ;ڕ�7H�Qu(�X{*n����F��px]�2SWP>ؚ$ϻ}��^'��F���p��ub�ea�����T��T�@
+f�M�c!�wzF�n�Z!�e���"���G�H�4��f�ݚ�
��loW��
Sܱ[G,um�h�=�IK������斻O��g.ߜ��`v�8��
+nj�M�)�'��.��/��b��T���J��m\Z��/�X��PS�l?��l?��J?p����,ڙ�x��r���	ܒ�zMj�粸z�p��:9�U^P�&� I�ɍ�}�);<`kV�'6�6Ly
d��-Е��W��{�J�.�zi#�{�&Rۑ{�
+�Ԧ�'��Ԯ�$��
"[��D�l�ڞod���^�:6�׾;���J~�w�&��Dj8/���5T��EN^�,vD�jl����I5�1&���3��U�����J-�⛪+n��Y%�R����~��$Mw�D'̬N?xwPdpQc�z
u�w;n��"�.�L���V�L����zYM�����U��we
��"M�6�De�oV�"3����ly��� ۤQ�	��TM��Vq��6�J���T"�I��x��{N��@p�O�p=����S���	�t1�A1&ϗ��U3��)"	�IXvI�ſ���l/̍�1���6��z2�l��t��侐�y�%P+��PXҳJniX+��]�<��.�饘8'��,kK���
� �8�bϛ���Q��(Ƌ�W4��Y!�e
�
�!����r��\��
���/��b
�7��Z}��2�!��+�2�~�H��./^�6�.�
=�銏�!M(�J�@2��F�|����ⰃK�q{��	6̀%�n�#���u���j۶~��Cr�IŜ [...]
+n�y2�R-b�
�D�&��8���N��}
)���:� x����v�+�)����B��H�9�n~�7O"��
+��b�kOr��#0v+͝
Mg��Ya��դ�w�ѻ@�;T��f���B������s'�[by��D��N�G��+���
�Z„�t��Q�O���"�=��ko�L �O�xO���Db���x\�O�Mj3ԥ����Ñ'z2���v��N���B�?m��߻b���j���miUë��{j�
z�%�H�N��>�ж��W�����[���$��c��a�+œ w��=��h{�Wj��랻,b��ۚ������CM�|ź�5)O�E�y���+ZLz��G���C��ﺄs6�ab�e��Prh�eQe�h ��$@��y��Sj���
�
�gV�>�^�w�Vj*�V)ԇ>`�
�Z�&�|�V���� �|W��M�Wt
�_���,�k+�t
��^�Б�.W)�V���%��3�
5韍x����ꛓ�h�T�`�1���t`�
��-� �*-�
+��

�),��o�z �+�<t@{5@�� 
��� �.Lc�Ŀ�# �$�$w&pf�6.���]iW�5�A��{ە�T��Uduc��PN�Ib}0q
�5��A
+b
#�����
��+~
PjT��uc�Nb9���_��(@�o'#�x5 ��� %�!@I�(y�]���D
+�||2��0��R����x��9mWg�˫L;� O����l�A;���ci�3�	y���12��:��\@�P	В��5
cy��ɜbY@�2�����w�Ρ��s���HҀ&�/�>��
��`��,��
A�V����H/��7�-z�&+d�qA�\T[���{�v T�-@��i@��>�`�R0\�	��5���<L��f��f�G��K��y��P/��0�	�v�
�����N�7�9��	;{[t��K�pzW)���R�J��M��a��&��
�,�:v
�˨�ϔa�~S^�
J�v��+����`KB��|��x
+��e8�8N
} g1t,ap�
+8y�urJ�8����Z�CsW������l#1;P�%T�t����Y��
B��3C�
�����E�G�Dz��zTV���� �����R�
��}��~xV] >��_YG��/�_khH�����;��6@@�0�F�/}����z\�ؙ%�8)0S��������
sfCZ�P�V�c�`=B���*X�?<��G�Y ��؋v at h>��Wx)g ��;�]������UH��[� ���#q�H|��{ �����$���[7J"
�U���zU����5�N�|�
�=2�M|������z�*���O$po�
��|��8�Cp�x^CA�
+�@��]�ԹM,�P
+
�����[�wA��J at q�P�
.-�%�b(3���f�
*V B��/4�T<�nxrR��A\�-�h�{U�:o\����?�	���~h"��|2���
+��K�S
��b
ts݊/{�x����@���6z�"q���l!���F�;��=p�y�/�N�JҀ��?�����o���n�n��&y	����
����x�&H��
0q�&AV�)q{`�D���V�q�&�P	���&�դ�W���o&ݲ�Q,��?F[Ē!�	Hب����
d#
P��s{��OP�:�ҁ�N2b�fꄝ#w흕�98�J���d�&84�;�����Ǚ&k��j�x�7!Ɉ=	^�G���>���px\���p�T���
ӋT$�ه��殹�
ρ�!�#��O�gy��Q[�tSCV�u�l���*$�I��d]X
+	��E�?�0�����ۂް7��Ү�3��pV�'r��8����ϝ��������
7>��M�0_��j�������?_����A���ͦiN�.lۚ�CsR���	��0	EN��I�j�Z�y�������q�O���?�[�[��h�KO�I����1�Է-z�i���T���ĕ)1IF��.�d��
+)���s���P9i�A �a���O��������T��s����+�8X;5���]ğ�kc�aD��_��l{s��)M
�EuR��x��cn��}f��t>����~���7�������ܘ�Ō�ɥԥ7/�S㘂l:M_�����}�[� 3��G�j�89�'��訥��n�$.��'ks&
��
��6�i6ߛ��,
�
+<�����jgWj7�c����S�����u떦-�YZ6�ac۴@��e��4��z���/
�pr�cK��:��jY�/�������Kj�[MLʻ��Қ�'�HXm��o߁�zF
nS��Qø�n��j��
�4�t�j���p��Vw��Y[+Nͣ:���*U�ܠ^�5{�JMZ����fT�E)
+�SIλdT�@1�
�Z�
���g�
���]�$�#�bR���8���
��\!��~��V�d����
��ywZ#��E��4��]�U���Y>��P)
+�X�7"�xD|�HE��{N���h��Y��¨��
��l�]��ϣ����d���*�+�W5W6f�
��]s��g��Q�K$�1���V�6��7r��S��
~�\LM���ǯ�x�Zn�j��<I�XX�Yx�Y��(�
+Ʈ ��s~Z��yt��E��Ĺ����
�++K1�
6Z�f�l�8$�N���1�
M�S��s���#,��t&��'�#��d�_	�$����`�V�y4���������Ra

�����.u-�����������2fw]|����9���iZ�
��W���_�����m>!3���I[��Q��6
	�M�R���]�I���Hc�Kc�z|U��|��}��B'X�s���t/�Cc;+�����;��K��|�2�8��"���%;�峜�H&Z���ذU�dzpc�1f��5&�:N?H|=n���	�D4=�W�4v�kƲ���i��x���t���=��+�&蓭&���
�fvDz��
=p.u��i������L�i�����f�Q_h���Hg��c��u�ʸNJ9>}�f�M�ӳ=J��2�����º�A�O}K
a�
 Z;��	�FVmS����\k���7���Pr_ukr?���2��}����-��c��,�p�F
�ިD�]��j;���2�fg-{�N�����9
��K5�s����zb��V�m��ҫR؋�4��v?���|v�yAGj�Y�(�KStm��O��d�+T��f;� N>���QyYQ��s#��"N"��+�4��pX���}ӣQ����2/�\�`�pҋi�6�EL6J��`��Lҫ���
�����{A�4��*}���L��Ds������Cfz����!�L��ˈ��H���<������Z��g���_���v��i(J�[�
���%c��܍5:�޴�ڰﱥ�t
��:���Z�P�4��Tߩk�mV7C����yS�-�Ԑ
��h/�$��,���ۉn;�K(
�{3��7���L)t�ڝ�� 
�n��GL���Xi��b����uqfO�1�H��X����f�m��-�4�o��~�hT�������^KYU�
��-�oJ��������	��
���WEl�k	��/��D w̚���g^�W��0�4y�l�u��e�k3�/�^m���B_���~D���} [...]
��IG*3�N���Z���W�|�WPu�t>|h!�Tݨܹ��N5�����d93�K���"��R�,�|�Җ�C��q
d���9϶�w��/T��v�
��֧��̶t�p��&ɦ�a��R���$s�T#Q����D!g�����U<� ���@��1�&"Gl��^
���6�W��׺�H����l�=��ROKª�b��d�\#K���`
+l|��bLwd��T
��L�t��f�ݡ�jH٣̒��Ή�͖/bA���
|��*8�/��jEי��}X��<`;zs�i;�V��]gQ�A�k�U�66�4-n�Z{�,(�P��<��BI���qȲˑ�-}��g)�i�����T(�,
+Z�.9-�ʤ�
[�"���x|��vx�Ty`��
�juVA��^m������5�.*��#*a��4�
�C��5�T�K+7���� � ���|/�^����IW�en}������
��I�r�25��I�T�7�1����<δ�*��:X=����j��0��J��\�W	���|���pOh
؈��)5�
����L눨�α���x�����m�J��o��]dh��"���|�{K�_�r� hʙN	x^�U�oe���.���:�
K�r6*!Wm"��"��^��p�{[@o��B��ÆRr�Oek`
f��B�O9���Y*�Q{<�C)TƘ�ݾ��ߜ�4$�[�<G	C`[(���
2<J<5v ��^!�W�*�	M
G�
�Et���\R�~�����s�a9�@6��S��s���r��s�z�}��Q��d��W ?�`��?e�G��7�1o�� Y99[�̝�'I������A�H��BgĜ@�'�W�e�*�\/0�٫�B�� �AK�ecb��cq�,���K@��7 at lD�U�z
Sc
��]�L��* ��
��=��F{C��[:�䊟i�(ŬKy�{s�8l�?/��J�U]ī��F�G#)Qp��(�_
 �
+�n�X. �
�^�ˮ�>7���d�<ciS�
�X�
@��G@�>
�J����oE�ɵ�.�d=�h�o���4��))(��߭�&K�'�I��}
�	��Fݵ����V<pK��;
(h���e@��(�� �<��V56��
��� ��Ԥ���b� 5����@����Tɋ�ta e�i�/�?�*

��
�jB)���H8%����|7k�E�/OF�*4ބ2X�� �HM�
+�� 
h�� 
�Ǐ^�ۀ~>���2_[��
+�7��2���1��|F��
^���t@�6_�C�y�����
��'��N��cKy�z�B�J�Y6*����}ɢ�a7�k���WS�5@�&`8�LN��A�9�Lڥ/O�n���.`�� �voX>vT~�v\� ۅ걬��
�`�,`
��H��
L
���EA��������^㫒SC�C�o���V	�6X
��B��r���̡�!�[kϴ��t ��� ׻O wP׀G�G�g�O�w=<������{H���	�x�\|����� o�X��
L$�萱�~�˙Ä�d�>��

:��D�ؼ�گ?�[ȗ''9��u
+��;�c�%G�?�_��\���~�h|p �sgW��J�
r�p�b�W�Xjw�X�܁�-�/��>�$�!-�4�L��]h��f�]�Ğ��A���T�ѿy�_������w��K���H%�
��'�z^-\rX� �*����	��[�j4�y3� �;F�
,
+@���XΔ֟p�L=?�+��RTQ;a�b?ŦCq
��7���c~�J|�	EN�mŽ�m"��5	n��n��iI״_j;� ���@�7�^ia m��@k�
���h
BZo�f=�V�,�,5T�.�2)�ߎ�H�"<S
��q'�6)�kB�eȓ��?�
I�a�M�m�e���-�I��A}
�8� iaÀ�� �U� �*~@�]�AzL at z|�Kz;��/r��X�m���XW	'�j5�s�d����x>
�%���	Os�S
#�g<�R/s����7���)߈ֲq-]/�K���F��?���9݊�}|V��$v�{�����I��	��XW�4���+M/�2l=��a���`���Zl�.ջ}�o�|�l�v����/p
)9�8�8 at M��-4Lٖ>���f��W��Rv���
������&(9)/���E�����
-��k�$��+0�Q/��Ȫd���=@�C~W���d������媫� �W�j/��]��-�Z��ܾA�Y�
�^��O�9
F0�P~$
�aԚ�C��E�S������>Q�>�����6Tߕ��;t?e��fg�G�fj3[)��f��k���
�{��"]�&k;��w�N���Œ�-�}���&�
�

���P���oV�����pw
,��C@��T��"f\3I���~��ʻ7O��_��YVgq]��"�?��Bg�	=zş2j��0*-
Cew�
nu���}�o?���
Ƴ`�
�b>�v���ٕ{Q���
��>���y��}�ʴn=Di��t�ڝz�3}�޼�|sWv��ڀ6�^�[�-�_]�w�Q]��O
�|���
w)A���:y
��t׮wvE	�p[��՚�G�j+�f�hM�KGM�����zc���
hV
�.^k�RmR��pU]צ�*}�
��B��c�e�Ȗ���-�N�YR���/ת�
�ŠP̝nvn�M6�7���ɳ	��s��/�/��3H��
��OsȮ�BT[xڳ�%���T�ʮQ`*\T�G����{�(E�v���۹�m8,
h^�A���v<
GƅQI��]둟�ST
=Mw�K]�Ӽ���r�HbR��o��C��#a�M3
��ѹة��Q�|ly��u�nIyZa��fE4��s<=y2�F����T~Zޣy���y� 8���c�ʪ�dw=����C�9�3���";��0;�w3?��{���p,��$�;
-"�7־��ae7
%_���'�-|��JZ���K=�����
�wr��ʲ6�����Pճ;�f�N�*^
	�^��m�l�����e
2�Y�M:gYl�a~���t�rdBW�4�W1��v����G���
���;>�2�lS��ž�:���Y�u]��0s��M�������L��m4\�m߾Ul��� u2N�VX�ǖE+
󳳷���S����F�I��4!�Q���������\g��C�͖���Z�+�ݢ}Hd��q�}�[�����~�����J){�ڶ#�����kR�>T�
@�
&Y��R�,r�����4
��3�#\L�\M��e,�V���H_�
���tF<^���ui�95U���o}E���Ν�D�pC�ዅ�n�ހ���A5����~u\�IX3��&��ڮlN
���աҳM�I�*-!�>*��4+�A�{�^az��ܿ+R�}����&�UOkr����L�o�tz~�h��G�`RN;�&
�QIJ�f(���QD�)"��."nm���A��V�V/�C���8�]����4��5|��������f��۾@�U���՛�Y��,%�g
���Y�U��/(�[��hA�)?�eO�c���n�+i��')��D̾�0��e�Zy~�
�Z�;��@8W�2u���9��
��2
�]���j�=�
rܹSτ�B�Dw�a�ɗ�

YF��+���.���#��\mR��mF~L��l�]z�g�J�������s�|_�/*��7�js��s�gG�8�e��Dh�b���(�m<a�������
�y+LI��x���9
+�薭%��4ɗ
�g���YZ	�.?[8�I�F$�Id霘���V�P84�D C�_��:_���RC���W��:�M�
+��#0���e��š�s�/����,�T��|fL=g�)
?gfM IRv7�ܷ�[�ALwMd�����El	���j�qɉO^	��"-���@�o4_��!h�ۭ����<{�W�l�7l�R�2��3j9}��}���P/�@R���)���ӷf���|���'fPjH:��
�3�F�?��]�j>�
�w%]�?ل'+w�(���@Ip���X�o4��c|y�{r{�G8���I	�
e��F��>6��E���suڸU��k��P�<���J��Y���zJ'�s��U0����m�Q'��oo�"�؎��6p��9��2I�ƝsŨ�;G��՚��g)+�){���w)n_/��Ӑ{�2$�S�0�~2H�7(�t:��;���0�`��S�]%�'�Mf[�!1OM���^�f�8U\�Xe����
��s���S�Ƿ+����^'U~�?
+y��t:�Kל
&e����瘪.��X^�w��@I4������/F���t�y{Q�"�P�-�S�.ϐ٧$�H�����
�@.���rl�%��Գ�����
��A����UB���Q ��(p�D$�C�Z�
+�ô|پ�y�v:w�+�[N���^o4){faŵ)��@({N)F��qq��#�c�Kp#Qd
�Bc���!�gq:
+��M�:w\�+�U�(Fڸp3T�4NH����|��X���P�y?A�7�@�Ԇ�F{�+��ᴔn�����g2�N�����/���*�7�o�%�kh��� �M�xS��{
�|�K�՘l
+=��(�LW�Xf*�w�A�5� ~�*!*�������zF�'d���sv
+�\}�j�
p�'�a=�QjT�M��N�mg�3
Me}�Q�����R._W�;�j�x��Q�y���']�(;���Ev��˦{�x���R]�:`�nk8܃�
lL[2�rg&4�..�d-5V�^
+�9p_�`C��؈6�� ��v �9��M���i"I6��$ʓ�e�Z�L句ڿVo:w��&G3���>���
|}_X-���
*�'��Z
+zC,�xK!ҕ �+�\��X�XfE���?x�b� 7s�-�
p�~�D�3\�d�H������}��FMJ���FK�����5�*��C�iKY���� ��=���oTf��Ս74��T
+Y\㯰��r��$RKQ�2����Ub)_��L��C�ǯ��>�_��oWx���N�d�b�`a86֛�����g���]��:'I+��_"�Pp� 	򪢘`�!T
� ��+h8�>`��S�h��X���A�IJ%�u1�����D! >�&�����2ź_�
� n�' ��4 �B�]�g"� ���u?��Y<��gY\"L6�LOJT֡9�*&
y
�F/
�ߗ(
�0 ��o�zҐ�P�B�6��d@�`
�w�<*�E�XJ@!�=�P���
��|{S@~� /���� �i
MĚ�n�|���H��W��E��_ǷV���D�*D)�
+��k2H 4li��J=<�D4 �lh@�(_R ������Y@O��2Xo�t1���rt)�����5 at g�5��h�
�/�p�
^0��h���l���CW\��*'�..m�X�X�]
��o�)<�4�xHR���1$@�5ЍP�c
~�,�pJ
0z�
��	�i* ,T��>
 �X����� �	ub9
������Z��g����MgGp�ç{��e�|c>�1��⑤%d1��0�tMIC���)�/O��[���+�7#"!���.����Kφ�k�
�
����	x�"b���c�2�ީ1�����3
p�ip�'
��\�7P���d��n�4z�1�����RI�9�t��?<�������|�����q�o�6��E�
�e�$��p �Kr,�f�
D����`@��<n�x@�P@�>����g����\g�Q��:��%�NLʩ�L���'�%}�uR�_pb������g��OY�T ��,��L3��
 [...]
+W
�d?�H|�F�!ʿ�hS^���(���Jo��~ɱ��������_�m�0����VhL���Ь9	4��d��zwa����.Zk�.�����ެu�_�ʕ��d4��"�"�*KvQ�m�8�������ofCR�߸ݿ�6q�~Sn
p
|ݶEa��=i<��L�%.>
��^ig��i��4���7p����H�>�?�I
2|��m�X�Q,��o@�9��4��Wi�>�3�
�e��_�k�t���ft�:�s��-N7�
���vIn3�BH���`��^��M�8���l��?��
�M��c������߈�8��Tt
�����S�����
O?��S�E�����W�
mjK���,�|*k.�c��0�`<��/l6͸Z�j�����᝴�JV�����h�N�~�d!��n.��Q���O:+�9}
+�|�w%u��"uÍBc�=sy+Y�R�Y��<��H�g'S
��АlO=��'e���ww7:���d՗����@��04����v���������~�x]�����$�t�
���pn.��mg��os�|�'�?Ȕ���]�
��}U
+���a��
p����T�o�
��B�,\�
+�e�떩u�S�>��ʝ}�Fs����
|�����
+��T�"�oBb^M�x��~q��ǩ�����9C�2������t��CG�J@��.����=����|�7�i+�զ��c�
�M
<>�Q���–�.9��U�U#��u���7f�|
��r3��J��䝣�d�#ڛ�
j��aT\�I���-���o����̥�{K�
���e�f�nq��]�д��]�n��W�mѭ��b��k����j���NP�Q�77��m
�b�-"_��|/{i
���*�jU1���+Щk䧭��G�?�]Uu�(a�m�ܙ7>�aP[��.aeW��*5��W���-ۅ�)��ң���w1�8P�H�q/�y�g�M�0�jR�!=?�����Ƨ��ą��֝�:G?
�l�*�Y>�z�qZ�dy�b���,�O"%g�IBBkk�*�wB�)��G/�/|f�r���Z~Z�Z���y�
L�Em�t��`�[���
}]^�����������8�
N�фl?�52�E'�	�W�zn��V��e�>o~Ϋ��D�G,��eIHd\��L at L� [...]
+6L�c�E�Vr��Q�������k�9����L?
��!�v4[�
+���mf2����*���RukYt�d�j����;`Bg�H��(��[�1<�?+��ae��G�S/gaC/��Y,�ӯ�'�s���
�V7��+�S9�
�vv/�Gʫ���X&��H�pV�E�(樲���鰗�	
���6�J�`
c�a|��ԾA<܉��7W:�	�n��k�,��ǹë���Q���V��a����������t����2�$�΍w#�痥�+>
�}��
+���<�de�
mf�
��1�T��o�4z�c��LH���X}
\e�l�um7x[Z��s��z�jUU�ҭD��Ş�{��]n�.���)l-%�R����
��׎D�\��c��X�a|s=
��	z�(�<�����USW���Gݜpw.�w���o���窶�f>����_$ �x�U�QR��
��
S�朗���j�F���^ڼ"
�G[��@
��\t6��0Ӯ@�B���&���Ŕ����s�mҨ�m��W�=n���[�G�RF�Q~^�Ԝ�Wu,[�4Ƭξߘz�)�ZL=��euS:��[�Tn)�>_Cr�X�3q�=)�>	<PU
�K�r��Ւ�/��
�|����
�ʨ�f�a��Ü�{�im�-}����
+#�i��^����t

+]Z�Tl���&��^�gi������a?���
ҰP�H��
I�u�!���[��eHD�eL��#�@�W�N狷[��f��Uq���p��etw̜k�-#���U��ݑ
�O�Z�{D��'�ʓ�*]&ߓR�2�+���z;�C��٣���O�$�_M\���}T�TS�h\�
+����\$̧��P�w'?=���
�y�R\Հ1��$�=,
�mks�6m��]E�4��
�g*�����J~x� ��$MLnB�!Pc����
��?��JD��5�Vu{�o
S.�%njs�>Z�n|�T�A(ْ
�8ml�¢\���<��`q�v)o�qU?b�hpg�f��A�HZŒ^}˾8:��\Z_�&�l6
�y	k�H������ԫF��P��l
[7�LUf�V�1z_+`e����γYC|��$7�A� |�ҋ���N�FR�ڃ���
�h���{��Պ�3{�4��T��oI�6V/tPq����|��QG)�
�����$�2Ybzp+�
�Ħ�{�z��w���F� ���xXF�\f�4���p����u�����y�]�%;��*�7Ջ�ek�"E�H�Y� ��1������
�`6�K�o)��䘀o��&_$\�!b�I�Y|��)���g�MxX�1Z�^�u�G��K!-5��Q-—�� p'>pG�
�Ҟ�i�h���2�7@��]�`�53��83!����<3+��S	�1��4�{�q���iCf�ފ��g�6���n?Na�7�9#(Vi
4�*��Zi�>=P!�4��� ri���w�
k�=D=�˫~jp��RoniBi�k@���J�Y�Ki�6g���-�5��Z�Y�A�Qq�|��ʩ獾/�g굑d6���RY�T���*��=;7�A����]A��K�H�G8�m
D~
rp7���{L��
�w�e�\�R6�R`R[� Y�>@�r�M� �V���,`Snf�w�v�X󚜓�r��	"�7H�Uw{z��L���U>y2K
�9���%����Wf��r���'�
��*���>pw1Aa�;3P���!�+[��3� ����e
Мs�
��l���@�z|\ *�-��V3�OZ2f2�tӨ쉼���
���Mp��f���zt�2/"�>v�K�x�q|>����"~*�
4{�,R���*�#
8 �
h�c �Yi �K�	�6�%� 9@�h6�s���	��Ʋ�t��g�Z0��	�ԅ�3/�����_�7{�/`����
��dNs/�*'���
PqY�!~&���\>��$\�
~\ V��A,%<�9�1b)b9}�:��3��v�0�6*�/u�1��r
+`�Z)ގ��'�N8��j�h���•!fc$؛;lt�U�L��CN.�A4�+V���/O�g'D-���1�
RcO>��� �Pw���7��
��x��c�dbٗ ^S��,� ���Fx�VE�{��3=���KHpu�˖3v

Οԕg.t��~���[���p�R����M_X͗n��WD}]���ڋR�0}x�:|��+�� ���d�M "�q�(v�X.Y@��j,�eq���lNDN�_0�
 �Q
�
���ƴ��h�Z4k���1ȋ����w5\��_�M��&J,S$��
�O¼��<��u�f��x��G���
׸D�
+_
+�X�k^ʀ�� {e/�ۢ	�F|8���Kɦ�;��,���� HՏ��!#@��W,�O��uB58��

+")l,N�2= D��N>��0���

��Tjr��qI��w�=d-��\�6� �x@����gj4u
�Z,�
�.����k,P�V�+{�
��
�[���*Ƨ eϾ}�(eI�-+*�a�)ͤ���t�b��J!�0�c�xʍ*�D�����0:WdѸ��'��Ԛ��[�S ]����ꤏ��]L���4;L0> �_/L})�� �����0
+�
����-
vi�����*�~SY��v��M�̕�D��׋��ET,K�?Eф#�3����Cpb���e[�}�B���s�������
�pg}}��Bp6����ǂ"`�����
o"UӺ�l*̓F���r�vR
��+
�h;
�Z��g%%%��m��'UbE5�4�8��I��_�m�ě�]l�A# ,} D��vM��@$�2���g��O�K�@��w ��U�\���P�
+|��2�̭�㠄v
x�jC���߽�p�Đ��Ԑ ҿ��t�?�v���g����r�Y [��p��e@.F; �!d��2R��X��4�@j_o�����Z��a����ނ���k���''{'���*v�D%����̆o��߼ۄ�&n�a���hk�wH-�'|ݶ��zju�;����Z8w�J	(��
��9.ݢq��
j�}��%.�$�!)�oF�_�m���߷����KH�n����;Yb�Mbm��-H��
�
�OPƥ4�$������iw

�������h��IFl�
˵�O�m����#<>�~��~�RW�V��p|�׵�J_vz*�W^��-G�Xn�n����,����(����Uݮ�Y#��#�t%~[O}���R���?��A�e�!���PL�w��bN���ʭ�?6�t{ډ���?G���t�9�cH2�È��T��w��x�������_V�W|/o�6�x6&�|�
����t����IX������C���_�
����s�=a���{����

Clr=��8Ʒ,jW���룃Q+e�a��v&,�cO�&
\��,��Ӆ��L�Q67)��⸆gk�c��F��xpkͶ�{�?�
�w ��sq�D�&u%]�
�DV��
|��
��ߴ�&x��әC��;�]��ȁumJ��"F�c�8
F��jp�O�m��'�����|�)�
,r�; Y�[&�DgW��?H�;�
_�N����~���-Xp3̵kM
}B���
+�2*	M�L�.^n����7u�o�ש
:
�`a/�/�nb@���+>3����Qs絕ˮ�
+�u������<���8h8�qR��o�:��
j
�=�뺋V��B��T:_>�惲���	��A˪�)�w%���
���ZW�
/q�&���
�E34�x�g�e��}ע�H���)�-�+<��@x�������>}z��LW�Cl���Ɍ���S���N�72#�Qf:���;l�mU�п�kV��U�C#Q��f��ML�2Ȏ�e1o���eT�V�u	u���q��ĥ���ܸP�����U��Z����p&��+��P�#n���֢���t��U��X�ڍ��o��8S8x��?K.��|�)�W�c)G���E���C�/�a��P�{���=֨iK�{&�rut��s*�f�K��ƨ���g�l�����g�ϫ�F!�^|
j��k�P.��W��n:���c�cq)��*�W
�(�ݞQ�0j��稟;�VvNy�g�nn��ư���c&I]�i�A�ţ�`��!Ŧ��Q,�^.����z!�t�ic���ZO�'�9��?���b��aC��X`�q����i(q٫}� [...]
+����.�P�۹��=�E2��#x^�u�����J!�
?
�E�
�ĥ�&ם�,k�7%�$j�g<���Tܝ����R��i!�bVAo�T��׮��T���M�s���Pm��?/%u
�MMk�Hy?�w��
�DM'�i���L�
��\��o��DF�1��t2Y���D�
q�_]���;���
�� ��v]�q>��hO�z;T��t\��tJ
����V��}m��iw5Trqd%/F�\H�0�qMZ�nu�l
VC�D���p�/14ґ�%�k�A}S��B��4���:�ʏg\�->�\��
��Z\0���H9EW�
Mj׋��U
7�5-�/�}!1%�a��z<���@��B2��������(1���1k��Zp7ۻШ�A���t��x�ey�e-R��k!4)_�����\z����6�g"���B�>sF�U�f��Q�y뽒/�]%O�O
+ֶ��m\e�(ܥ�hR�d�cm(q�~b
�T�`�J�H��40����y�N/#8�KT�\�S���ؤ����
����L0Z��`�VM!ՙ�����EoZ:�g�d���ױ�)�}�W��+Svّ*��T����jm�K��b�,]EAM?�f/��x�/���۫��GK���a9.^O�������d&�a�����kE���ѢVH{OC�*
��N��r���4��m�k��M�z��J�BFG{䥢t�.�דT�4��i0�8:,�=[
+��n+��ݞ��G>:�]�{	�\�f.�D�Ύby��m���v�ɼnez�c�4�,̨�>�ۚ��U��$�-�I�j�%�h^&�
� �,V�?2̪\I�哞���[R�
+�<�ּr����Q��NPJ�5ߙ��Ϲ�23�T~�>��
;�֏l��ݘ����lr�2H�i#��4���i�Q7(Z�5�j����W��
�DQB��q�5M\�=��b���
�B�u���*��8��mQK}BY�V
�p7�����f
^�.W� k.X_�N�T�eGpf�!
8��6�d����O4Q���:�|St���Nb˓U��n%�#l�$��c�[Rr�+����r�<��z���ZG��f��K����_�������D\��—�M�'��S�M����ޏ-�Ć+v�g��4�Lt���
���eM1����y k~%yB�#�S	�kX}���c�z�4��v#�,V�6�
h��H�x3("��&p�ܢ�t^֑�](�nR7�d楤�I�c��̫�}����
ۿ}x?w�ӇÎ��3�D�
�"SxpM���c����!���h��p9�����mFCpuW��[}$c��6�>,��&o�6b��9��g��<�Y��s��
�a�X
�!�F�͒x��8�R\<X^Y�.�%_��Ε�Y���
����4aN��}J1��&�*l}Bz�s���o�۵�`�n���c��x
}t8B1�E+
��e��Or ߼� W����8�-�����Y��<���r��ڴ#x+�
+�bQ[G�P�Ŭ��y3ꁵ�ێ�Q�5]�U!�3��ulB����,�޻�AG��E^��
�\RG0ײ7`��ϸ_�����S�ހ0�|��|C� �O�O�k��p	�>�?�\m[��F���Sg�#'3�7&����lj�c�#�€�aG/��5UI�
�n]�Ds7��
�?����
+MŪ[$[L9�`�[@h�
���
�
�@�F!\��gZn
@� �i��'�	��P�1�
�	!��g��gkCg�)�������Y��
����=����rGm�������b�K��_-����@S��*�#h3���9n�. .�3 ^�' �4�� �b�d��Y�ll
H����=x� �g���-
�ʹ*��|���NώN��&o#.������3s�?�Tg�'MI��
+����q�%V+X�wg	��
+�rv
H����� r�� y��!�$���ѓO��]��C���\4��+���rv�r������gY߶����r>*�����	����b��{�K)�L����?��v�w��o��u���I-y���{�\@�
���'��7�fs
Pw���G!�Y at y�	(�1���8,0@��:�֕��}�.���\k���
@���	�ֵ���*�IF�L��
���R�����p_���K�Fm1z@��})�vpS�dC� u�^B=��tz
 ]~���,�����R?�`�Y���
B��BAxe��M ����u@[�+�Jۋk����=���%њ�|b됡�J�Z�OX��
��
͘��Rߢ�eC^��
A��~[�?&^��D˫I���k����SC�-`
�l�" 6i� +wW�y7�o+n���
dp-ฺ�إ
ٙ��B�בة����IbD�k��g1�B���u�O�BR�|��n�,�dA(��Q�MG��� 7&���K&���%y	�� �>9����v�=��Y��6����R�~eSv�x.d���2��Yp�e�S�;�HA�c 4���!��?H�0��3��Y��K�
5�P��"������c
�R�
Dxu ���ȸ���~�P����OӾ�7h��ٖ�d�V2i���j�T���LYD����ɣE�Ϗ�
+��|{?��P,���A�
�N�u?�-w�y����B�@�‹�<�@��
 �{�	���������U��^RN�|�s�Yn�a�3B=��:��mH)TG�L��\h��߃~��~9]�݆n�O�mT�?��
��AD3�9�r����uyl�t����#	T��I����fr�A
A���&�"��[���C=�#lKqf���U�0�!�nC"�k���
5�OJ—�����aw�[�%�����{8j�׋ 6H.@��&A�N��v��n%�
��Ġ���b�b�V�/rX��:��|�	��ȶ

��܆���m�կl�/���6ho>��������� 
pC�ܽ<�
 I�,����ϓ������|��?�߭�aFl�٪m!��m;<�ct�xNI;x��	� ��N
��}���F�M
��We:�_��~Nl���)l��G�5T/n�V�W�l��1
3��1�xl���ȇs�C�O����3?5h�)��<
gZ�;r�z�y�fH����iLo���=<���w���k��,����m��
���*�@��J��bG1�����'6��:�_q��^���
��P

�X(󏧷���>�΁����8U�;q�xm�J�
���^���x��E�5��Nv"ι�D�5�I|j����jN
۳&U;q�t�)��r@?

�
��̰�w̱���P�5?�C?q��ZN�M�?�BMt^}b37wKOO�]nz*1��E'۶��zc�
�;�h��M���l>X����jo�5��﹵�'
���%�>Kf���]��V�*V[��a�B�5���]K!�P��x�v��;�\��~*V^���k?�B9t���ߡ�د�sO�u��>}A��]K$�NW��� h�?z�=�eZ9�o.
+�R�@>j�u��l��<+͚F&w��F4��N��z
�j
I&+��*�[��%�椹�5�wM4�BX}^��|i����Qh]���T���
�I�ms)>��W�^M�ZAU
ʠ2������F�+�׵������@/.�Q$�^�PV���"T	�78"f�g����,�~�ߏ�32��{D��XX�0h ��¬�pٟʹҴ�O��ͥP\T��b�CL�N�p�BY�O#���K��;y�_q�D�;�����
��l�f��#��V/%3(뙴����c����������R*�=�}}1l>��^|��k��3�0!��V
���V�
:��l7˫���!����XT3Irj�Ǖ��z����Ԅ���NS��[���Ep��s��o���ߥ����L���Q܎���o��|�Q����u@h��VB!CX�j"߈�
��q�ER����S��~�y�B8R:q��:qť�+h�r,�L8C9��麑�^�rܝ�͸�֭�i1
Ĭ�nS)�hݪt�b\�zL���J [...]
(�h�+����b�
r!Se"($�r���h�ȴ*:s�+�
+��ȓ���n��Ш�2��o��_$I�@0L��0f��wK�G��k�
-5���6
���{t��j��:J�L�q������؝r!�Y��s��֣��q��ip�@z�3���DpWqRh��� ѽ(rު3U^�=��Z����z��͗�A�����
;11V����b�-M;�J�M�:
�Qq�����g��"�ɕ�vz#Uz���;�S��jN�ڻ>�Z~!���Bh4�� ��m�P/��[U�ī\��]�f�u��%�<��
L*9&@�:3^�cP֑�N����˯Ft�@�4F�t�h��
���!�l:� ��?Y���f��Y.�Nb��JZ�L���o��^
+�ݔ����ܭ�Zp=��b�}�%��&����3v��2d�0`��Fp:/�;��T1�Q��>���#+��$Gi�|�'v�B��L+h�:@I���N���9
�W���'��9±�Y�ne�ݛ8�Wr��q�>3�!;�OF�p����1�2/b�`2�ɚA������g:��4��j�h�*�r�<3$k�5b/G��&�1:��N�r÷"8.������V\/�Y=����N݆|��h��d��d�\
DӔ����͹�!>a��ːM!�
31�>��=�R���f�t~���x�� U|�65�
�mi{'���M��I�BV&��$���{�o� ��v;��("�}���~f�@���&����xa�g*���N$9��i�M	����T����^�5�OQ6�F�&�(ui#-vh�Ft�R��P�����{DVS��O�a�B�L����[MÕ�c�w�ı�t^D=
頉Rq��
 ��Po"Y��q�,J�ɤ�����Yx�O��8�+B�[4�5� [...]
K�|t�ݡ��!�C�M�ԺK�[wH�������
o=�
�
�vճ7�K��U
M����e%��.�����>���2"@-�
+�v��]�U��Џ�ı�2�Xh�g�·p2
.�u7kv,�g̔����PkF�
�(dx8A���!��[Yg�]�1�-�?���.�A�ۡI�8#��D����@ �� �u���
`��0�V�� 
�����@���d��Z,��=�ߡ�
��H�\�����V�}��ĸԧ� �G�0�C����Zwp����Ї4
#A�a#6ҝ#��A�4uf�n k����Y��L�u�s��� `��0�i��� �� K	��߫I
Q-���
+
��C��c.�?�u�xӋ�Ѧ�Vu@:�M��k��'�.�u{�
��Gc1B�Lmf�g0?9��X�p 'iB
�pN��.M���%����� 8J���8�/
vl�ҹ�
��Ѵ=�CǷp�^o�C�\6�쭙\U��coS�Z
�|��RӇ-�r;ح���ac�G��`�: �w<x������w�P�!����e8�W����Fn7 ���S�3 ��* ϟ�)����n���bs���C��%{'w��ѓ��
�e�
����$��	�(�v
+�c��	rt�]$����Rr�wm@�������y��}�F��(�W��g%#”v�0n 
+W8���3@����,#�v�.M3���e�"
*�{�=c}c�`f����RvA��Ʉh�Mo�Rc���F��
A�q�����!G�
9^�- )� Hyr�~2�`Z<xܑ�|�c�L~NKS�� qy��6ܗ�z*�<~A��(�Ge�-'(�BU�?�oz�
:�.��D󶅃1�?��1E�<m���v�1 �(��*d�����B��
��&aE���O�ġ�d���^ %�Y@ѓ
+��� �
DyH���J�X�$�T|++���F'ƛ����W�14���
�5o�/��H�O�a���Y�̖�5$��*�����ʐ���٢�� ����H���;X��r��t���|?!�����oYO'
0��&��
��ǙB�A'l�{4�0�$5?.+�K
ޢ�Ck�M��
�'
#ԓ��
�K�7G S�0�ld�<�8`aG
��cWF�y���9% `�O
0��
��s�^{N�B+���}R�ҳ[�ˍ�2f�����p����Y9*wqCRߔ~��?��/+�����C�M1�>Y�\�/ �Tj@����V��a���
઻
�r��~ X��6�����#�Ȝ+k�wL�a~Hh��{�d�f��3Թ?[�oR3�W����.�~�ү���crB��Qm�6���Ϫi��
���z��
�|
�O��+�w�
�
����!�6
〣�T}_��s#�쥎}���
R
+����Xn��'
�K������?B>y	2X��6 o
�
Nru^2��iu��|�IC��ͦt��{�l��TTB��t&�—��U��uۯ�|��
�a���
�`�
-�?T��ӏʥ�9�V1aS�
�=D� T�A��@U�k�2(sg,�X�Y[l��U�I,3~�^���%��i����nۿ�mÀ�P'���6�H��f/�������5A|ՙ�x
^#⪉��]�����z &9
ж�Ц�	�u�:%��%�
��6O_���-
Z����x���d�K��.�s�ݶa���FۯX����8�Z}L'�[ G�w�m
�%5t�k
l 9� Y6A�U;�I��_Jh��
�&�̮����p�~�7����Pw��B���n����ן�Z��
m��{���n�3�_O��z��J��*#�)嶬#�^��R ��ʇ��a B��T(��X��K	
���	��
��S�xw$��XP�a8|�[�Ix
�s
2m������*�1]��&e����ܹ�R�9�S��ZR��&�6��6_�.	g���뒰k`�Sq�V�����O��7�~M��Br�����k�r蝳*�� M��I��
�

B��h'��n���J���vZ����r�.?�N�}�\�������Sew�']���^�*ۉ��
��h�Rj�E����ɦ��p��6_��x�a�˜�p�~(�V�t&�$�iC�e�LV�BMt�e��D�?�O��Q{ �i���ݏV��4n�إկQ�Nϭn=�]�����u��ժ��W�o��G�={��
�?+O�Mb�~�6H/�
��P����O��B9ADC�o4�.C!/\#+��Bkc{���v�[� ��?�^�jYQ�5�
+LsQ��&���F��5�1�ɝ�t��"�ک��kʓ2�ݔܭx�̤��z�����i�-��u�\BO�{�+*���s*�P
��0
!���:�������5�T�]8T
����6|d-*IP۔��ھ�^�N�
]�}�DU��gf�g-��lӆә	��;IJy���lw�S1�.OT�[:V�1��J��8N�5�0�4����$�O�j��"��b��r����t�z��9Z	B�̋Ϫ��R�^�:-
��\k���"3(��i�w�����Ns�Wj�$�TN6d}љg?��X����.�
m�d9�'�u
����3
�!ǰv!9Hi!� `2����uM�
I�w����
����
�X*'��z�d���4t�+'˱]=I?nVvS��Z���ݩ��7r�c�
?cV�db*�յ�Nkk����b����G��`
t�
>�����ia�
+��ޗ�����?^�?:����
+�����;�ȠhܵSt\BR|�47�Jd��u]Jh�r+���]ˈ�j4)\����i5�V�7��L������V_A_#_^����08�G�E�4[:�b���9�y�Uz�Ũ�::�֖�$W^A�Tߝ
!8c�������e
(��CIJA=����"�儴�Y��YW%E���0b�p�Fp��LV��LQpw�Bp�����f"��[a)C�;{�<��-_	>q��2����2����5�r!^
�ijnC�!|�$xdm!��R9�8I
 7��

"��o�]ɸ�(eXA��
+r�:o�A�W�\��
�׵J>�r*���=�H�~r����u{�����a�Fo-mm*�L*AL�u.��]8
+f3
��l��ڕ�|���Ť-4
+� ��!��
�9�O�ג��ȆW9j�]]��u����Ty��yD���Eb���3�W/3���Ϥ�ڞ~�%��N�,=��+z��ni` S���k�c54)Ǜ
ُG�I���F����.&
���?/.=�f�׋�+
��z>�a��c7`��8f��6cƽԊI�K;���_��h�ӹ��1���l��
+^�H�7���z�|��-���j��z#˦���}<V,�\6.�����h��P3
� mf%
+�ޔo�!�t:�p���A7{LXL��,&}�($
�9m��.=�N+:#�9���5Up�E�JwrÏY>x,ɔ���G%����_
	>�dp�
+��e~��k_$xe%X�s
K�8^JԷ+4�̏�
+ޘ��}���/9��z����s��d�D���]��s��|����0nQE��n�"_�
����d%���,�.����I�n�]�z�|�0���bx��)�@
���>b�r�Ƣ��TO�b�#1ui���_J�f�������F՛Lm�PO�dv
�`�2�b���kR�ظNQ�Z��ʵY��$[M7I6�n{4�&�\�
+���
?���7/��;�v��
��|
���{m{�3��#82��Gv
+��L� ��
+���H�+u��:��VG��=��/��K��31�=/-jU[��X��U�l�j�$LT2	a���b€i�M?h�-R���&6�.���t�E��z�h?�đ�mI�(�g�kaX K�7 �NP�L+:@z�	@��t���>vM$��������9��%|k�ʌ
��C�S
�zM�z
�dU.׉}'
9j�!��%����.�G�T�6��d����7�s�闝O���+x��L�*P�J����k��mg rsW �_)�x���_�X�,	tt4{ri���l��R�2ov;���ئJ�S���b�N�/XL3�n"�l�i�
+Ա�u��
84�D}�D�����F�>x��o
+�5@��#�E PSb!�S m-��-��ѓS�<@3�
����3�a6K�5yQ������9��wh��Ҽ�����&��V��okMB�
��J�a�
��P=��8��7
�^�M��ې�3��z�z� �[�����
yg �u,�>2;�>�4 at OR	������
+��$�"$^�u�=�,��������k��M]��͛t0�Er��"�I���P��+
��u���z����M
LG�:�y�� +
�
���)��`�{�h�_�TXG����7�Z�X��̨U��< &ߓ ��L�QJ�N��]�F�p��n�L�Ԕ.�!U�qU޵W
��'�I�ѕjX7I�Ё��!�ٲ
+��a
`�
�չ
0� �H�j
�=�%΃`��
+��j
�4Ճp;
�����g_�
nG��1�>���IH��x�~o6��&��S�8u�����\��5h�*�3��@���3VCһM�q��1.�GO6ԏ�kM ~w��-�=R�L<A�GV�p)�X��^ ��e�O8
������
��uIŌ
��q��ON�
�qԌZ��#�V{���m��N-��6Zh2P�=�٦7v�
�<��{�v0D�_b�8�ؖ�Fw
 ��`?z��J b�bv�1��VE�
��
D4��Y֒�����s�~|e�|doz�
SƓ��m��aqn�A^R
�+���Z �K �t���t���$�- �[@W'@
���
B�c
>ʀ<�3vM at nr���	Ȏd�5dB@?�a���|O���%H���	Q�~r:�>�`�q�}�Z�Y�[�O�!2), � w�2�/QY�CJ��['�&�GO�=���E�ހV�$��� h�
�p+�u��Â:���2S�7'����bY;
�P�������3
:����#�fo��̱D�:C�K��.V(*9�?���#����ooo�H:��ûq�<`���'���M S������,|
嗀>�4�G�y��\5��(?<"tS3�|�Jq��J%�`��e�`|i��s��M���ɡN��C��_%'�I���E�Y	p��p�\���%�zA�Koؒ' 6���/�i�%����9�}Kܛ�G���K���˷��=9��ل���
���ە�Qᾜ���6�'�x{!�a�~ ��c�ϥ� r}��^w�ۯ8�s�
n`����I��0d�G�s�
 [...]
+��	�B���F�~K��2)��wI0�
d�@n_?I���Ё�^Z@ַ@je 1�����cF������<yL�(<�;`=~��'�6ԴC6!�W�s�e6<�������r�C�
S~�ʆ:�%k߉���Hm	�
 UZk at y�{@qf�����j��}�ڿ������/���Jj�aaB6!�0����O�m(�~g����
u���_a|l"������xY��Yv�A�߮��v��Mr@�f
�~e���J��~G:��_:7,�GOu�0�8�������
CB�����NJda2B�3�(�ڙ%Г�
����
�q�
%�-�
+t���}
+�B� �
�����5yl[�}�`�m}���ҋ�%ǦW�>���G�hR9!�e'�쨅Fv��Q	�=�^"�Q�-]��7)��yg
+�3�g,�z~xz-
+���ST�˵�V���i
<j�9",����B딞�۵���%{.�{3���:��
E
�'K#'������\g>�J�e
+oa+O�%6Vj�t��v��Lo7��E��8Q?yvy�Z���|�8��#/N�o��� 1�����}����n��j���������n�j�g���S���G�ߩZ�٣�?����$�ܿ�
�5�U��Ƅ�Y�:* �:�)
�Q�O�zܰ�l�;?�E�d���dd'.�T"@���r������b�)ג-3a��
����W��5;ӧ��
��F|�w
+��O,)�9��Vʭ�U]F��OQ�>NӍ~VL6�8R���y+�8u6B�a�R����K�Q�
��G�+���nq����O���|CY-&
+�-��;��
�z`nHu�c��y_,
�;�����p*��|x�j����,�?%��
��V�����f��S��$̮��Aa[����`���u��*G�_]翪r��u��*G�_]�U�Udp0�-
��a1ch��ʡ�ó��w�..�oSBp�
{{�OmU�y,MlJQ�^9fzm�Y[d�03]�q]9
��	�-�/|
+�������-w���69i�g���:	/
SK77O7].�lvVt�F�m�J�]NV�~}c��E�u�n�.9���
Z#����:��i���D/a���*�a�uv�E���r-��tf�����	\<��HGM�:�ţ
����6,Vӹ�Tp�J�&�
����
+�轢�3
���O�ڏy�n?��m��7V8������㯮b��:��*F�㯮b��:��b <�j 
3�@�^ E�@ֽi ?�9U�ɹU]�n��8nwt���փ��Ǩ�
�k��0�b��- wt��L�WCH�C�.џ���6џ���6џ��/���C��n��&l����^��G�������;�†i����g�	[��m������zF����z_~u�����?�'l�����}�/�����?��4��o�I����h�����w�������s
�K[��ӌ��p����@zT훨p{R@���,P��5
��Zl~V:ǣ�8�}[/��Uw�z�4�ÞҌ0K�-�$o�Q�^>)>~5�=��gq�� ��z ��y��}���^�w��-Ϫ��t��
[��"X���mqY����g�ʦ]_��
��^���4M�����cb�wq�}�s.����^nu꾣ޮ�K��~��̖���n8��p`سނj�;
�
��no�C�������D�RH�$$�̮���C{�úr��]�8���F{yYd����G�Kr����n�8
�j]���r�WCH3l��,��W �
+��,�
cgJߋ�E��L�.ޞ�ױ2��ѱ�d
�{p6��K�f�n�J3��
+&���_�� �ʨ	ٶ�xϽY��OO��,7���θzւ�.�;&}�.A�4��
�;�_V�GŅR�����G�L��M\��G��	�_�����Y ��w 7���8���^#/ʠV>���b}����pz#o
��(��N�u̴z�u�aW�^/�)�Zs�_���C�����O�,��<^�p�^�GO;Y�3�0\N���kC�+F�z[��N�Ԛ�s��xa)�*&+T�9�����������
��灴���D���U���������
+[um4�t��8^
��d�l�V�hӯ���X\mk��pb�r��-���j ���|����/$S��z�b
+<�i��+�-匦�
�
�
����|cz/1�r�KV��
�(�

%���=��!w�<4���ޑ�~�
�!;鵶gS8�^;N��g��(�*�]W�V߈�M��MJla�z�T��4(w�3(����C���		ؐ���� 8�/�s���\e���M���9�}&�a�X1"x��/����������1��KPI%�8A��oܗ��B �����v�s]�F\�V�&]����|�r��]Z��wK�6���j2G�Z��k��b��`e_K�~-N�ȭ�n.p����H6ֽ:�zo�u���
L��ʖV�M%���J����n\�U}�o��
����S��2�m)3&��|w�/,�C��*ǟ����
�6�}�xʬlÝ��1I���S�5Щb�;�$&�Qw#��u�N9\�
������7������:?7�Glep%��5�I����0����^���Vr6N�7w�1{�RW�aֈ�zm.��8Y�!9U/�� k8�s���R�m�j���k�N�Y3gi�v���
����@�V�@P�m &�t i�G
���C �s���dj�%�N���
�/K��L�7����_5�KMX���
���Ɲ���>!k���
+�_�	��o��}�;D���W�������h������zF�����n�_��?A3���
�S��k����i~Z�m�_��?[O8F�g���/��D���pÇ4?���6��k�����n��/$��;�hf�@�&�L��@NY�7�5n�8b��^a��ܶ��L�׍��^v+�f��٤�p#�4��_&�q�5:l�㯁o���
+����($�"H��	9��@n��gkX7*/�N�n�ݣ���e���jw)g1D����ܩa�N����z���_A��o�K�b'�M������!�m�&��|t��~nڽQ�����}����<l�M�]�k�;���q��
+���ſl����B�z����_B��
$:��q���bA���=Pp?�L�ֽ�z�c��
wE���O��e��ů�,�y��q
��


�p�+{S�{v�U��k��~���Us��!��)��@~�<�J��c̯�W�:��D���F�{�6�~,z��-*od��2��vA?S]=��]|��Z��/!�������
徉
{.
�/�@��V����+]�����_�rp<�v��T۽�)�+��lIQW�sNC/�;�����fЃ�|���2}�;�<�&Z|v�A�ѝȺk�Wa�|��:�a�����`�C�6�M��H�q�iz=
�ˏ`�w8u:ju��qc��>cT�_�)l�%���������F����f2�;yٓ+�J,S��V�.F=��%�vj���lSʬ�Ī���ѿ��
+!��߈��h@�+��L�-�Ö�����S�����P�/r���[b�0v���2
�fY�Z���F}!l���%J��K��m���o��W;�ON���~�Dt Ӯ�-Ս_��`�.0�Y���Ō�p����^q����G�e��r��W2�*[�5��?a���k�9'�-�J��D�Ծ��)�_E�����8
";Y"���>���Av�-uL�J��FF�iur�+U�[U���
-u�N�' ��ć�7�U����������n�Z��Ǔ�a�#�Ǻko9���m���g�G����q�<_^DZ\_IK��'p�"�Z\�WE���p�_�����
�
<����}R����X���%�����,�Y���\�2�s��6�m�7�k��U�
YiYQְ9Q
i
+Y��>B�����@ĞxU�\^v�s۹\�m/�m�G��oJj*M��!�*]�
+��3dؼE�v��JY-w�&(%q
+ޝ	R@%�g�˿}rċ�x;���}^�R�t��ڪ����[�9'��Ȟ�l�7d�J�h�(�A�=��j��+%Z�J��
���yf���X��_�,�K�{���ݍ[�xȲ���Z�R���
L-0p�c���ŷ
�ᣉY�G��ܫV�q�h����ר{��zE4j>
+��
�՚�D�?��A ��g|��LJ��n�����ۋ�����ƻ��
+�/�ĺ�4	4��ן%�m,���
;����X��\�c�K�p�/�Fc�c>������i}k\��=
��2�&�Se��B�ĺ�Э�r(6�Y�U;�W�ʀ'�wf:-��ڢH0��P�p�T�q�U����;����L�UE��}^�
� �}������҈
������ν��}�T�7W�]^ɘÇ���f�b^���
	tqp�ERV�H��
+ǵ	����r"�9��
S�}��b[
�Ie8��16�rVfA2�8G\�pM,ʡ@�n(��s�*������g�b^O��i��s�uRZ�\ᴮ�ʪ��i�����Gw:)
!��87CH��/@�~yh��ڰ��O(w�v�?���H�Q_�韗�G� ����`�� k�U k�I�AuJI�	���<y��`�`��涞��Kw��J�=���{4�FW��sIk�b��'�(�Uo4�o\E~��Y������U�o`Ɛ_����{�o;�
�����0?5�?������i��;����?��/L�&������x�u�Oz�W�C�a����s��Œ!�U�O�po��a�܅ �����������G���Z��צ�4����a&\�fK�NF2�n�h����Vڋ��:�Y�m�r�&.�c�y�S�!}�K�
Z� � �v�T�6(M���7(�۽�MNXo�VĻ˯���D�s&~�{��,���j���F�1<�r�\y�~�Yw���E��03	A�t�i���t"���.(
�(y���  ����|�O7�%�͝��LRt\�����M�+_ʏ�}I��z��i��_���t�"����Ӂ��.�r���t�v�d m�;CI��f!^R7f͝~���P[{�,�B�.'�xp$�rz�l�g��W�mh��_K
���/W�a g�˗ ^�
����V@�
�#��S�!����o�a��7j��}s>5
ڂQ)�߮<l���O�g��gO�6�}O�$��+������}
 N�_�4��A��VAY�߽�� M�n�4�Wp �sΫ��J�f���r(�"��ӌ'�򄻫�w3hrg^[��n��1���7�?�Y�$ �#g�
�)���6���g���}t��J
�V��4O��Ar����b)�]��s�|�H��uzq]��M��8~C`-�g�~����Y�m�a
5 �
�"��瞭�N��';6]v�	����>8���;���.�����9+��x05?o�]VCݖ��,��I���o|a~���#\��0������E���
{)��3hOq�=񸤇���
+[�"7v�G�}}
��詯����*v9c�8�m(��6�;�Kb�o�?%�%���
��ӥ�s�x��u6��W۰�Ǭsf27�������"w�M���ik
=����V����O�}�K�N�K"�|Wb��BP:ޝB�k�
+W%6	��##~���^c���C��6��$�~7l���I�1�;��v�z�d���j���bȲ~
�]ɑfJ$�f��0g�c����(�4~`>g��{IR
+�G���p-��i�R��z
S.Y��4��Ԏ�w�ё�d�Ȝs���m��|X��}a����MQ��L��l�&1�wߐ���.�;
�&V�w�(x���0�jʭPC��^ʢ�dtx/j�Pىk���"�5Z�Bw���XO'��)�
�Ƕ��FZ�эL��׋9�S�y:��@��jB�-%

�
�~n��S+��.[a����Ά�Һsk},��
hS��Ȩ�l>����2S@��	۠��S6�E�B��u��B�W;�d=La
�MP.7rp�<f�}���w�h�<�ԙh�;Sr;,6�1��6�f���@;c�i�ɝC���i�=�
%�W�$fb�D��;�!4���#�
�읁S�q~�|5��7�����%_Z�f
�'bJ
$�H��t����ܧJ�T�s3ݻ���C{�(I
�g�zקI*��ӄ&9�&���K
��
w�6LA�
Pr�k�
����6)[�Uba4s��Df�̑}v����@��y�]�E,=�j�$3����t�
7��{fܛ:��oh1J�$��j�����o�Fpk�z�}�rK|�\r�y
�
���t=�
��8�$2�)ք7�6�`A鈹R�p�'�x{x�t��?G�BPd:	ȑ����m�$
+�Q�Z��.�N ����$e6}hIM�(F����HK�(���"o����oⷅs�Y����
+S�3�C��
Ywt
	�R�ă�$����!�T�/}�W�| �d��i-o	�B

UԬ��IBv���|��
͉��'	����:٪����Ы�9�35
+o�,K7�0emb�n
�@������}����)k4&��b�	v�Bn��y2_��,�v؜IoSoY!Ǒ�1tRa��>\S9�*�L�H�^�|�D�D��>���<���m�QΟK
���_rMo��0;�2M�C�e��qo����\�����0ށp�'��oiJ�
�d�M�X�'-h1���\}B+��
x�l:X�g�A
̖}�?��6�"1D��9M�j�M�ZO�Cr	��b
���u���c�*P9S>�k
+��
�[���x_�-�^$O3P�BO$x��C�R������6b<웿" ��<@�c��7���k�$�� <��?}�>�L���
7Cf��p���yzus���)����L��^�y<���9��MS��L�P�0�˟J
���� �f
�e�o`B��*�70����������?��w
��C�a�a~���:�[��߱g
��
���_t�f
�g
�%����{�yBrN�a�gN�� _�t��GIPtf����#%Y�����rV��%X�:�V�n
Ω�]1��A7���2r���p�xWy�j~	�_�������B�kn�wbډ
��0ӿ�L(r&�3R?�3�Y
�F�bm/���5E;�e��3�l
̌z��|�~�1$0�EN��`E��#|g
�qB��|���������de����x
x��~}}%��G\�F��ƺ��X��Z��E�U�Ln��a�/_l��\k1�Tm�-u=���w�`
�'W�r�v�����ߘ��N������/?%^���:�E�
�ǵϻ�X�n�y�dT�M�9Q�ӕO��,o*�sd0H�Ҹ<���k�/Q��oC~7���/P,aw6 !�rr�|��Ҡ1��h���͌����Eu}�{�S)����+�Z��k���W��]Yz�������%2R�G�;
����Đ���t:�ղ���ɹ¡))�si�+L9
_�z��Ni���{P4�Y�1t6�?�����t�����!kK0O/�
͸�l���o�]F���������ОwɆ���yBr�_�����Î&-?:�g��p6�0ֵձo)R:g
�N�������y�O����l
�ı*��au�;�!4�G���A���<AP_��t�˯Fۨv
���4>}d#�^鋥>|���dh���]�S�Y���99	:ն]�b�����E�_MK`��C��
+C�ܯ`�lؠT�J����F�疡�A� %��i��9��5m]'%���C��8�Wզ(���9�����_Mo���� ���M�D-�IA{�ʧ���R�)�r��C�W�mF�q�'}���V<^ˡf܎-E����H����,�;�z
+��w���s�����n�v�_m�Hbȟ^�M ��h1{��pAi*�<���NO��R��xf�g�����^[D�2<5aTJW�*��f�M
�kތ_���ko��QJb�h\��jg7���o�g��
��᪔�`
嫠�O���s�
��^ٛ�⳻
vgTbw�}M�����?�
�}���:Gu9�q
�����s�m����?#��8#������t8?�
\�[�&a�m�"��\�=�W?c6Jn�
gWy5�U��V��K���
�ZZn2t�]�
+�9�{��=����[��v�t�-KS�[������t����� ���rvX{�g�W
��͓���j�����Z�l.��M��o��b�� �0�[`2l���s���2F��M�&�9J�Sƶ7;�m�s��0��Y-1
���)�(b��
K�³�����%��d���cFE:�Ľv�V
��n�zlG���!5���[;#�A7�\gԖ�$&K.�����M���p�
`�Ov�$��g+ٮ>t��8|ul�{�
����
�>��y�/Pz'I�����˖1-��)
����ܸƒ��N�rT�'�d�9.���%|0�k�<
��K s�\��ts�@9��8�
�|�n�PηB����^Q�D�-��^kcv���,|q�y�fb��k�_/�S�d7E*\�&�ٵ04���p��S �%P
���^YH�Ϧ
=�f�����=/6�^�4��:�;�q�q!�١|�M���P��
{���
11ޤ��K��8u4_q��Ib\��CoW��p_���
�P
�4(9�꓏�}{��� �mM��eں^|�Đ
q��]�/E�|��1xO~N�DD���ht(�"�: G�U�����p6�f7)|C���((��*��	>�d?������MZx-��/�R�`
v��2�w�v�/Vr���eX��N�~ʣA��F��R'�O��}H�D2"�
�
����Ά��P<M려�
�<ǟxi��q��1VE�n���x]1���{��E��,��>ٶ�����#�
^�S(ߨlye����#,��(����g�ſZ�ο+ ?>���[Xf��4������Wz�
���PtJ��)6種��<����Xl{+:������
���P��3"�e�s3<�u.՛=p���+9���{����,�>c��z���qy�q��|em��Ɖ����)��a�k�
+�z�ȗ!\�M��O\Y�$pw7���?V����
V��u[u K}�/)�vB����
`k�z�t�����$�l	��3���֝@���B�̛A\7o��N`�m�Ԡ
)�~ �X_�]��v�R�E0�Ľ��!��֞T�H?ǿ�����
�kQ�
L8�3��N-{$d��7_�̮t�3i���(}�
!\b<X7�Y���¬�'�R�8���a�?w����Q�{�C����I_5���D{\�"P��OI�?��E'
+v�q�P�K�`���5�ځ%s~w��% �(��+y=��W�G�<a�S�pƛg3e��_�p�)֕�媭�*���ʓC���6"S�_���?��z#��@��C~��1�A�!?��s�&��?��/̏��Q����l��;�ǽ� ��(p
��!�����CЪA�K
+`�K#\g����JcO~3w��X'�D9u��
W��miT�[���
�b���1�ꄆo"���yh3�`�=��`I$^' E�PE{�}�/:WP�#��-�[A �1��3�F
�mY�սt�[�]�]ْ.-m�Z{ob�ߩ��|ر�>y�Χ;kk$1�O/}	@�x��R	
+A[�r�b�i
�`�\�lPt�hT�g>���G�✃��{y}�/��
+ v����sR�k&)�φv�
m�
/*?�ir���?/ %���/(�(�%�^���E�qA��E�pjWz�d������
������7՝%Y��<����#w���N�4�qt���-v<<fǃZ��?/ ���=�*���L̼C��	b�������`��i��g}ۧ��[_9��!�
�����♸�X���-��E�a!���:&��"�/W��]�S�!z�h�
�x��P��O����:%BQèZ�+a;]?H��q�;g
g�d
3U��z��͔�1�5v^����窍�
���)2(�
�v�Dn~^ �ͧ>��w�K@�bQ ��7�/V��
�^�\�����~�a9φ��
��L(���RO<�V�g���� n
	�v�����qb�֏��ӡJ&�?/?@�a{��o����⠔x�@�<
"��@�������صкp�_��B������i���z!
ɂ!If�#�3
��e�`l���H]n��{��s�?����
�� (]S��,'��S}Pz��Qm�~�¦�m���ח��ܘ���j�k����1m�0�%�W��#m��ӣ�thcM
3[�t�V�h��~^~`�����~�e�'g�NKCP.�s��^A��T�iʟ��Yd�ԗ��R�H��8J
Y	k͖���\	-�7W�$[YM
y�*H�*�yh���OɿA)h�A��oI at L�H�ҡ=�4�*�S
�O�l՝�x/��237�\eq
+��\VH|&Yn��W-d���}��u�׻C~un��˻�Z/�[��r[~Cb��`�Ta
mhQ~0��>� �(�c�5�.��Co��N�_R2)O�R�M�
V�
s{�w�
-t:��&%ڰ~�����]r�c�֣�f!T	n�7���b
�)
�����d���1��N*���~yg{S�B�8�F��6҂�U�R~[P�V�On��N����2
+�즿a�֊��
��<^,r�
A�_C~;�� �o����*\<y�E� ����Αz��o�W���e�ꭷJ�M|���5��v9�7�p�
��>?�>W�5�lӑ��!����2�U��;�bF�"�]�!��C��/�b�0��1AI٨f�Tp,��cR�"�6U.�k�kZ�*���j�#�q���O
���E$��y�����22�N5d>���¤�֓Y�X�� ,у���!f�2�1?���Ő�0C?S`v.��[)��"Ө�z�V�peg�]�z�6�Ǧ�*��
��[4穕�f��fw�8��qu�3��V�ҍlV����&1�w* +PhT����N��%r��\��d:�����b�
��s�o�JJ��U�M�\�����+�۩�{�̑[�:�����m��t�w����BS��eA��ā��M�$�|
 Vg�\a����Z\�ZO{��a�R��S����z����Ò������3J(-w�bq�����n����d"���ʐ�$�~�:�kih�Qkh��BS���
���,
�dN��
+�3׻O>�o{s�0���ج.���3"�xug�H�2�s�r���/d7�af�51�
+�� �5D��6hdxn岃k/]
��1����wC�h�w�����
Jqc
>��Oc�þh�>g<r��I6�y6�������u~�յ�b��F<��� ��g����$+zQ�7�"3a39�&~jp#�\����*�~^>�M0�<(�&�ϝ���d�<�ὼ̉X���ɯ�H����2y���e�|�'Hş:��c
�w�"�(99���
D�	������l|�g����>ߖJ?/ v�V�
����
�]��\\>!�^渴0��쏙,���������zhs�H���=O�++������dS�,ᒓd�'�����
K35>���t}\��Hbȟ^��u��:�
A�7���@==����>�)�f�T+���i�j�O�Q�]L��|;�o�Nιc
�{m��53:�f-�����.l��-�w�zj�ٻ�M�ɟ���5X�%�7V�Y�����a�ʨ;�ڴ�6Uy,�k�9?��8�a^v�
+��ا����'������ �?���0��4�G
ԁ��Ɂ�x��p�^��������/�:]��X�IB&;ܑ��^Wtq�
qv��b�`���a|lQ�
�A�B���lv�ճE�T!T��z�.DJ
�dG=�,L{�t���Φ;�7w*1�O/�.-�L=������\�16d��k��ӈ���h�>��(��uS[���v�Eǻ�������?>�`G��;�%���9��L.ۡ0��I�p����Z{\�~^�t�X�������:�ɳi��1�k/K��<y��ذ������U��MG������v�>�[gNZLU�Z��,7����\4����ģ�C���^@���A�=C@�YU at A\L �� �J��ضᙻ���>_���c��Q7\�C"Xñ/tV����-�w��{��E��yp����"�vq�
޹ќg�����C�h�@��C~���b�
+�
�?��O�~�s/�������m�aB����?J�>���S�� c����V����n�V��:�^��/���!���w�����*�lNw�Fw��M�� �va�}\
��}���C��P�{0�s�4��� ��g K�u�
��ޯ>��O_Ɇu +�����ۖ�������1�R�}������ɭ���x���^t��mY���{��"a�f� Cb�o砰�P�l�P�:��9��/&d�P
����cEP��
���O�Lw��/P���Ƹ'�p��`e���ד���2)�O��������c���8E۳6{�ʩ�?%��gB�})
+\�=�^@S&>�e�k��T'H(�"?P,d�O��|q΍=��-���_�ol��U������`E��������?��b��#��֓�A~���Kb�o�-�	�W���-`^��K7
p|3x�!�������Y
+7
=����	�k���,�j������>��
圤L�$'����hWu����*ŏǃe�*bl�+1�� 
+���2�z-��Is�+(�H
�s�Ӹ���;��B_��sj�%r3�o
�
�
���r�v0���9�4t�
�1�
m[�V'ǃ���%�+oD+�~J���s��lj�b��y��84�Oo��������
�
[����_D�Y��}�7
+��Vco�>0��ϣ��}����rR��K��jǭ��oC~7�G
+��F��h���<��>g� '	
���O�2g�a"��k��ѾM���fz�:6�o6�>��SMS�n�Y�qEZNUb/E��y���Uk�Zh�+��.�Z��|���@�k������
��
��KL�J��a����Դ�\�qﶝ���hѦ>�ŦN�K��|)��lg�4Y?�b1���r� ~zz/���"��ϋM�
�J@�)F0�nSQ� {] ��p ~�}�/>��rf�o�^ޤ�-ٜ�u.I��5f�wڴ���~3��^X
��٧�e�

��=��
��Ӫ��vˏXj�g���wC�h�7����ނ3�w at 1�n ^t\PJ%P2��Y>���;3�[�Z��8�4W��	&�1�a�m�{;�5�m��Gl��hM�Oc̖��9w�g�<Y���|a~��9Y�%�
��� 'g��t��@9�.�`�O�
�%�Ʈ��j\�vj�
uY�u����w���܊ۨ�V	���`�B�p���8��YW��X�>M�<&?% E���Bԇ1T��[�}��F��b

����s5���-�F��U�QR�m�t���~e7�[�*�SU����T�+��
�)j��b
��3(��e�&$1�O/� ��9�a�!��������K��6���j��1�n���3/�Cᴛ����-���B�=�1d����ʺWK�%��ܚKyd8���)��.3ҵ�l���?% -� ����W�e��ObJHU�R��y��}�;9\�</꾔2*]2�&�R���N��ٍZ��y���|��.��~y&��:3�)ݩ�^F�z�ǐ [...]
+0ؗ�g�J�����)�YYy�PG���P
��~@�n�K��b-��V��Bjd��_˺L2Slxɍ9~Z�m�1j��.;j�/v�
�O	@	bn�s��>{�#<F+)x�j�*8�z׽wG����E۷򞜏��>�O�F_�Ѫ2u���yy��L��fr\c�����cTB�H�Wi�X�h7�1��3E���3�5��@��
C�7�pO��{}wR���iX�u�z�<)Z8���oD�@��/YW�ɟ�g%����
�u=$K��{��k����r�CT*̇S�$��j��C~7 w�$,�V�����3k��7�{ǐ*ϫz�@g���[qO�c����\��Z-��@�R�����G��H�\?��8�_���
�s��x[�s���W��iߩ祟��X
NM�
+J�v� f��C(
+�vm}���j6ݦΡ��{OT�X5LY5v�3����3����9�t4̆�da�$����
�UzP�B&��_�t{��
�����F�|� %,<�G��A��]��{�C�%�;�X'7��x��x��
B�
�5�+U��wș��CQf�#�K@`�=�*>�����z�(�]�ڃӠ�
���?�����9�����[f"���͕�S�KAy�ۑ򴴶3T��*r�M����ڮ���=��+])z[��M�"��ӕ�3�'陋?,O�ѠF^���Cz�8��:M��S�'4��B�xf0⡷:ϴ|9pM��l�&��l�{�$X
���L��
W�U'�@���>7
��Ɯ�Y�5��3{w�<��@x�
�������o)��{����/����Xͽ�0��O ��2v��X(�:�K|�b���^�f��fN
��cO
Fim���rfX��Ŧ����[��9�As��>�o'��^��6=�d��[g��q,�2/o8ߕ����s6��t�����
�GŷSp
��1Z�;�T��t܍��(}���u��
+~Q
ԣ�/�j�^$�@��ԓݷ��v�4]�&�d%�tTf��Pز�I��d[gM�=.�˟��H��UF����o��j�F�EN��\w�Ez�^U����r�e�/t�A��J���̛�P�勞I�=��r;���y�^ZL�b�P��7��hQ�&
-�
[��������
QlI�$
+�֥�r�u��?gR["T׏QZ�
~��`�|u�j)١�L{\t�S��1�y]�&
݆������ս�5���y��t��@}�5��Z;�9Bi�?%p���+�Vr
?�k�
+c�N�h�
+����ɃB}i��U�@����3A�7��#��s
�7
6\"�u�vKbPc2J
y��N�B���1m#{�ܱvR��|���"�70c�/�~3��2�70���Y�a����@�
�'o�Ȃ�vAA<� !y�"�us�����r
+����y5�A���D�$��8�å\��	pAͽm}p;�ͅ�y���2�2���p�-lۼ��m�wC�h�K@~z��
4�*fA����$?�ɔ���y��x���hֿ��1
��\5�
��ѐ
+�M��!~БY�5��=��ת,{}�xv���f�������'ٔ���]y޺������t~���h��r[��
�!��a� �S�2�4W�E��|�
"l⩱�.�̣{-�ހ�o\e�߻�~�8���bOv���k��<y�jƨ��BQ�+ �A�z��SsR�W�-��v �?]���8��/�[�ϯɣϦii4�Sh'�[�wR��#^//\u|X9:����!������3ط�\����ad��Q+��Nu9��$�����a
Ɔ�A�
��s�G�r�R�|��cr�l=�#ZyGo�O��鰞�\�VX'��|��Zw���;^]�z���^`���'�@=ݻ9I��F���w���
�
��s2���
:��� ��P�_P�FsP�I��ш(lv����#�0F�(@��i� \�����ˇ�aW4L�/;ڥ��T
]H��h�
�8 3܁���
+u�=�T
+]
������X� ��	�z�𴼌�Փn޵Ƌ�
+�)Z�y 3�e3I_vc�>]wl�����mѕv�y��IM�m�x�H��\��
3Y��p2�S�!� y7�]�E���'I�})����� ���g}�1�ny>�-Up,���<9ݲ�c�ZW�Ւ����p����X�!+��P8���%x=%�;[�]��O�+ ���?0?o `��-sY��
 �q�p��3�O.��;
����b��1�Jfn��hw	��~�ה�!w�r�98P�-���B<{5q����ޒ�m�/�:�ms4�]�z,��ձ�
ZP�h��W?p��H�U�[NtOw�O�n�i�&�6h�4�rA��KL��9\
dN��h����i�ܳh��[epZx�p����M�lO7�Mr��	��k�!��� �8 ���Z��䤧��i�Fۯ��N�oK��Mtw���F�HZ�KL�g3���tV
b��!�*�b1�w+?�y����
x.���M�Ө:�G
f�g��he�:�]��)��W?��d��Y��	D"r�v���1:�t�%�kosz��O��P�w1uK���{fvW�&s�n���J7U�5��\��8��.΄�]3c�(4((�a��P��=���Gc���ƈH��5U�	���›6ͮq-��g�n�o�j�͂���z�,��w�Q7�y�kdM����H7�Lj���<��z^���,?��X�?@�=hыPŲ9x����59�ܐa�'���;?u��S���Rv�!<d�P�y�v~�m�	�3D)���
��jeXW�u)/ZҞ���d����\D$�5���u��B��`	��#���	J���pg;͇v?�
��T.��>���U��s�����ؾN��
�|�*f=��:��7�y��Gg���P�O2S��H���|I
���O�b6(Ы8�jv�P��q�1#g��г�
��M�� ���P�4_�Z
+��_��z��=�Ho�7�A�Y͉���]����|D3��S�P�N,�[�3|���X�"1������'���(h�$�&}����=��'
I_yXUwq�'7�uٙ��㨾k�X0N�}�ӺlS
����/�nt���
���Zx�^�e+J}:T�o�+�ۡ�	wL��9.O���
+(,�0[C
�i�M85	�$�
+;���������mG]�Dw�o������Q��#M$�:o�dc����w�^=��&��ў�<GB/HR"�Fɷ^o�o�g�}�(��&1�w��a����I)Cd��f�V��g=ߩ��٫�"=s9��>S^nõ��
��&'�*�
5�,�\g�gL��â7�L@! �m2I��d���͡a=��	���]�
���7S�p���{��
��K�(nijXWe�y����Ԣ~��M���ͫ�ݎʚ�➔��&��,��	�s'Z@�&uL�l2��C3�'�x�������|۟��d1����w����\�� r����;Mַ��M�5���,j1Dɧ:=i]�'�9,�����8���ts?q^��q�J��I��m8���A)����ޫ�{(�no�
���m{��,'1�F��E��L��R�C���;\w qA��S��+Lj�tm��R��B�K� �LJ\3xd�Ɓևu���&E%�w�<&��؈��|�χ�bo���ݨ� ����v�}�]���⭋�J�7�5�`a�J
;Z\y�-�������ebS�:��Yd�i����l��+-�
q��X�4L�B�5w�N
+�`E&��M��L(������J�.����w`�L��{�BV&�ᔛ������ v�^�l!WVB���x
Y�;27�.�T:��8�PCz0/M)�{,������$mԹ
���
��S�o�v�ޞۦ���R�
f�V7a#�I
��QPT#�w}C�ҹ�J4���K���#�]o������Β`s�-r�;	��~K��(�E��H
��n�C�gG_��Of�:`?_b��z�"i=���ݷ~���t��b������ʭ]�%ݭ0��N�B
��U^ݩ�����)�7f1��,S������Q��$z�����8o���h��
�}�ɇR��(��!���a�wT��P�캓�פ�;��y��w�`sV![��T==u��5�8���*sT�U&��נ�G�C�����7��ʨ/tLO
��q��Is�v(�<w�׹��۠�s���y��[L�F[���4�d���:ٰ���O��t�
(�R#E�LJ[��
�u3�f��4G.�t�x�]Iꡝ���
��N��>/5[g.�m��
�\43�&�,-�p]lը�B�;��������R
NG�&���Z;��W�J��ޞ��Ϊ���Y�1��
+�>vd�d�2��]8��������y�w��u*hp��{�=Qo$.�@��Z;}/VűY����z�m���q�T�8BU�vaZV�&\-�T�����\;���S����9�@�a /S(�#��_zY��
� ߊV *�'�9�|�\�K�\A�A��7 at vk�Av�
�l_�
��Ok���ś��]��7�q�����M�Q��O%��v�7A��	��WA���y>������O�}4{Y�Ao5
���؁B�9aQ��� ��o
�K-���&� M�\��݁�	�Br���
+�@o{f8LC�R({ ߩ���lݼ�v
��Z`n�9�
�@P�}�F���ȏ@����`

� �E��&A>�� /��o��в�"d�6@��
#S�QAW�祪n�EB��e�b�� ��I8k�)"k���T�:��py��o�-
+'HX�C`�Mɖ �p

+zt�d}��%��&��=��� ����4����
=��x��
����<L��m��IdSsN
ߺ3*n�O
����mC�- '!h�	A��V��q���TQ �Πe�2@���.���B�k:��^
�0XM>q{<	+��<������K�Ǔ�A�K�tS�{�ϒ��
+�q�
v{#s)�tc^�!�9��48M�6��7(�n4R�O��
+��	 ��� =�g �*��<��
�
�W
�\�40k����ѥ
+�w�$$W)�5�v
�[��k�]Y3SFQ�'���Į��ܠ�ߐcv�0γ	P�2���p�lX~:��}`
]Y_{.��#𷩔�̝J���xCR��c0q�e�������
�x+�c�ڱ'��.Gm�$���\�Ͼ����q�%1��?��6!(E|
��>_���t�,�w`�)���~`Vq����)&��xWvI�p��cp�
+�J�õn\��_`�68�TetN��s��/;cd���5������m��8?> �������_�R M?
���u�
��O\��t��U^���E����/�"�ҷZ
�-)�B�ɀ,z5��ӽ���̂8-G������b����x>X�f���vf���ߐ/PM3NM�� ��:��>�����;��N/���ѓ���@�2��Gڛ.+�-a�W0/†
DQPQTPE[�;�����w�u��꫈�� ���d4�I2�/��
�7��tj�]���T���L�f?i���G��EFugm���:��9e�x۽wc�u�g�� �:� �ima3
\U�|_��|6�A��A.���N�jQm��?�\s�p�{�����[��OaK^��Gڗ��"˝��fb�p����P�\sӽcm
]��������_ ��eF�UgaD�E��.{�
���'�V��+�ħ̯{7��硾������yu��`:�<U�g�p <�����N�r��_Ȳ2v/��$��r|$#;�6*
WDF�
�G(Io�:?����:�b���\*
+%q����y��yn9=Ne��U������t��e޾�:��}j���}�V2����Hz�Q�7\�����`;�2�D�Ϳ�������;@6�؇RPh��B�����%�oD<J�������!��
��-K���8_����g;
l?�^�o~l<
_Fs%�p8��
P�>c���f���l��R��o�U���_�+ڳ��ň��[6����
+V�
Z}fo7��X�Ӥ/9!YO��8?�[0���rz��`4=��F�"
�ߋ�ƊO�<N}�7;M��{�+�_��%��A^�+X�/ M9�B)h�f��M��|�B�z}U�7�+��j� ���嶟�����4Y��Ùw.�
����g��ps���[=Z�����Aܝ���9
+��#J�6��n[6?�^�_�A�u�B����R��|0I�i��*s��C�
�u�oƦ�e�@���9����󒚎��l���
�4����
;8�'S����ԧ�q�LG�#u�*5=�e]��_ ����y�={̷�R�>M���Y=?�s�sc�[�T�D�]wT�V���.�z�����qk���iw׮}�_�����z�2V*����3�C��)���Ϲ��:�/:3,	��S��
Πж
��ȁ������&
sx�\
؍9`b�����jXj��g$�N&��5R'��W��Q�s����3�By���F+x�C�
�Vy}D��n
+����ڥ*Rn���[� ��r�
+���3��န�BuƋ),����Y
��9b�
+d��E(���3��ce#��
]�Y™����40��?�{��~��
5Q�a���>���(�2Wl.ȸ����Z��@�!�s�0o� ︨ŏCv�<ڧmp~]��@����Y�`Ug��=[�݅�h:t9۶��w���$�����^`��v9�vՙ����)tG0Ǻ�z��i��<'�(Ҕ7���(�9�� y;��� �oA�8ңymd]���:Dl�|3Y5�uba�7�Ve�ED�����[��V��ٌ�J�6��XY��/wj�]��
�u��f�
7-�-����dY��
������ 
+
`㬦 �L�d ��w����[�C,Vr��X
u+�U&*=n+87�i�J���k&E
}POZ-0*�jv��+ڵ?n���_�ע��
��S�Z{i�r�3v-���~�/ ��p
X����©Vʃ=�)g�BI�1�r��O����U�u2�\&�a�
S��zY4�����|��N�Lg�&Q[���5�����=�,U6�y�+%~�bU\��8�<K�
z����� �hq�1'M�&f�
����
�x�g}e~�x:[�wc
+]����������O$�3�������Rm)�Xnn�@WLvh��Gg�(Ɲe�L
O���ڬDk�_��`�
+�L�l�0�
|���:
�[�;P���|�U�F��ӻէ�p<
u+�|P�_�>�&�m��g���ss���{�mvZ����P�̱o��c�>
#S)AKp�}����I-S>bӣ�"��auCa����0��P{,ǫi�5���u�D��nBr.�%���mo��=������w�Ra�

�����=�X�Ov��+�)���g}k�d�ݯe�����ĕ����ƭ�*�(�*�hT�������Z4���L7��ٙ�ޱ=�l at zxo��V#����V�h�k�3���
;��|�������g� ��]��Ekw�ev����$i=e��V 
+U�V�V
��T`�h���aTf��%D)�
����A�lS�V��<�(�>p�׫�L)��12�W�eՍ�ƕ
k1P
Z��F(�d̓D�rժ��F%�
�B?�q�8Z.�l�����$p�����w���"�h��%��U B�/�خ2�ieӫ8�;V��)��6���qXg�n����AQ�o���<�V�l�������3�rOh��-�9�>/s��)
%W-�JULi=]ъ��s��h���j�e.�MA-����|���ǁ0
k����G�Uk�J]z��.����i����+�
@qبJ��I���
��e)
+�0�\?�E��A?�[��9
��Z�%�vI�5���(��p�ɳ�H��s�F�	�n� ^lN �7�o��� 4S���@��0|�f=��
��(|o� >
+ ofN �T����� l
+ �"	`Z� ��v F5�8�~F0z�	�qdz�'d�{�����
��x���п����A辳�c�n�i@�8�ɤ
�3	�Ƌ ��ZD��C�� �c��nl�
�zߵ��R�j`��
�:�M�
+1���F��3}:
�{T��w���� �R�|X+����4�4��Xd���,/ �\"@�

��&B[�e�5���
���jm��g��@Fؖ�%��3���q��{
+<	������79ך_�Oi� �֝B��%����!
��951�� �ƀ��y����iOl�T����GP��@�N
�]V�ڤ�<�O��
ԸvG�Uо������ĥ�e��#O�~�
 �mM�B�n
�!.��:>��
RPd�T��|�
T�l��\@\� t�4�R��Z�"Ժ�'�e�� 	%m��4�����Oa��m}u]������G��L�Յ=�
�W&9����w at 2�ou:y���l
P�g����
�JG�1��
�y���:���l��Y�Ux����*L�J4ح��ğF�2��
+/�������%�����7��O
�����
 ��fZ�����RĠ¼�M84V�>5� �)j�v�G,~���:
_��M"���x�f
���?�K �g�q��O۽[6�N��jw:<r� ����vUׇ�wW}��?�?� �L��)�B�(�> �F���
+���'�QKX��nZ8�ʵ��z���yvӷ%�����^�(_:��ƕ���m
��u(#X��A�ې�n ���.K"���C�� ~	`o�n0����M�(@���k펚
��:�rOz���r*��Lr��H���UA.���x�.M�sx�n���a�Љ昝Х�*�[���s\m<�c�W�xQ�0�#~�� x��B/1�xA�փt��
mM���W 'X�����HK�tR�+�X�?ȹ���ä����\��Po����F�>���ʪryf����4�xгi/���Ʃ�uZ�ƴ
=�iw8����?B	
�fq�׷�5���WE��O�߲
"�f��CQz�u���gn����M~�[����^��|-sZ:��-��˯���>�x��f)�֡���B�5ey��p��gH�/ �0�}�¦���
�*��.��~}M~�x='m��P��mW��k at YI�]{5r7�K0_��(���Y,��~�ʭˌ�!O�^fRSv��;ݮ�;W�nq(�\
I�)�͎�͟ [...]
+��x�ܞ
������;�Փ��|kk/c�\�]�3�����5�Fa2�QÙ[.��lv�O�pF
�0;
b��
lNm at .���W�mb��_ �'�g�C{N�7`қ��A���r����X
���T^�O�R��DY��V03�����ޱmZ��6��
��+o6\E�r���陸�����VFV�B)/�O���2�
?�?��
�J�h�������
��}?����"�ˠ�c��=ԩ�*���H
m�L*
���#��d��2r8
flw���UX���bt�W�O7��W>_�n�~p�X��/r ����[i���S�[oɃ�$�$�z�x.ޥ�mM��S%­����G�̓�4�С2��+խ^w�(�}�!��,��\
8,��^E.�����������0z�l�>g6��E���%����?k�3;�[J�@���jX�^-�	c��\�.'�s�	��>����;Jc�t��!y��v��}A1�]ϡ�ff{�w6�`�!��]7�&�!n�R��V��N����� �4�2o��w
�
l��2`����:��]?"�
?�]��'�J��X�n{nn�;”��F?'
w6g1�0�����պu�`*X���m�ډl.�����.z���_⼖W���땘� 
��
���/K��*
2[�
+`��n�:�7�}�N��
+wG��VqrD}��3�@�9W��xG+�*�E�H���4���4�e����k�H~���:	k�D��G����*��֨�f�����I��߅MQ�;M+����{�ލ�+l���G�̨����O��%7jɳ ����{[��r=U3�Pl��l��y�f��3:h�Cb�'~���)P�ȹ܄��k�sq�_�A��Q8*�@��0�%X�\}��޺�n�4O
�0Wr�+0׏>Y���s�8xz�0�����]�g
+9��ڧ�֫9�U�o���CX��~���]	L'H��\�I�-���3��]����|�\5�>Kʓ9�,��S��n�U7s�u��ή��}�2�a�լ���i�A�ռv����i����͡���N�q�+��Y�M��8��L:�A�a9]�n�B���Q�/� ߫5`(��l��2�o�I�;�J�:i�����sk=
&�g�����G�h�=�|g
3K�ڣ"S-��7�G�WH*]o�C�^dK
+�Y�u�}�*O>"�
�Z9)��z"���ѿ��� ���0���|�
�=�N�[�9>�Ũ�H*g�s�;�\����l�v��O�e��4I��biͽ�\[��BE/x�Vi֨���^���P|�'�� 
g1�0�� ��b:8�b
�Կ �G����^��͐s=�_���g*h�{M��D���s2�C{¾��z'�Ʃdu�y=۩��Q�-�+{$�ɽ0���!}G�PÚ��,D��9�Y��Zt����YE#����kiwh$��f� V
F��d�黿�\| �Na�P�y>mtw�ڠs�]��O~d��r���]ռ+���¥�ן#���c�,�^�5��)��XDn�e��x_�D�����%��i�,�������*?��6��;�2=�f�IЙ���pt$_Ȑw�|��U��a�[r�v�OuUb7*�U��qaS���EJ�ܫ�Y��L�į��+=5ŪV�Z�p8�W
>���InWW���x]�3v��m�g��#�~q#;l��k������H5İi�j�R7�B^�k����,��Y��Zf� [...]
+}?��o�-n��K��4@����R'�d'�E�6���xs����B��(���fv�nc���^�-�'g����%�~�n��X�X
��Vﳚ�j~uc2�
+}�������}6����|����)zZ'�}�
�!�a~����r�>��5a*���`
�i���r�Ek�p߫3�KO�8C�s���BD�&�'�p��#�Q[([��1�f�8L���͒�t�E��r2C�
+j>��7�d�'���5*�u��
�\>u<1�r�1E$IhGK�i�̓�k
+y��3*?ȯ͟0fctN �FW 3�W�=�,��y	�<�8ݟ<��l%� ����Sm�q��
��[ �
z�n ݳo���:F� �r-�6&@+
+!���:�";:�v����߳�G��ḫ��nPc
x}��S� f0��;�^-
�]�f}��%`5w	�nPk� XJH�a�P�Q h@|�`�q��6{I{S�cZN�+.װ�O^�Z���\
' ��k���w��
��w����� ��\
�ж�*��d`k
�����k_� ��`E�"b��B��OV�jk���p��v�at)��sɣ��G���|��p�[ L�� =ݧ�7��R���
D�P���h�K@F
�p� �LI �� G��	��ez�
�&> �$ht���K
`i��l�5'6�d]Z���/��Ge�ro��~tk��K����.�<�p
�Y�	��D_��Z�8Kk at X
 ����W >Rm��
h������؆�̓�Ն�X:~3��al�����~O�|�L�^q5���`rU9ݽhra�g ̸C{��o:4�
( &���
f���~#>��� !I�7a� �_�{�
/P��l�,��$���
+&��9/�L�gE���=�(5�}���u9��/$���z�`t,6+�_������/ �I�Y˨p�
B
D�d�
 ��
H_v ��
䳀��< .=
��&4���.!_^g���A^1���4�8�
aT�)
D�Q펼�¯//Z������q;�e{ݝ_��?`��9�o��;@
��9@�E�[a=�N� U7P@>�j�h���L�Nt����y


q�t{�6�uᒽ�Ⓔe;��UuC��
3�3��fz�<u
���`�Jo����׹T��g�V�»�h�`��A�	��WP�����
+4/!��''j9z�^�g�U��g{�Lm��������ljr|��r�c1L�a���]Y	Sj�ł��6���*0-x���g�?��m�
����
�؝�@Y�B�Է"�ht�Z�����v�h�g�ǜ7�{�q�^I!�{i�;
?�����	������v�
��v���̧�/��c*Q��E��+Α�S�3�Lb���<��/�Q�����Cy��������=z�*�X�V�[ێ�K�ɴ��1��K���[6��-���
�G�չ�얷�v	�5�� �'�TyQ���'�eo��G�
´۸��
8�����������9*��
+�&`:���Ї�g
v�ۖ�����Y�c�$�CeUnnu��O٨�*f�aম�?=��EC�7�f�~��;f��zkʣ�J}��-q�UK�;ܖ��T*�
?ȿ���MPhg
����-�]B��n7�7� �
��b��k�Q'��K�[��tz'�n�]	^�|ۗ����|JpL�i�n�u������n&�o]�;rI��=��+��0�rcnT��ygQ�2�d����u���~�%1�{0�u?.���g=��o��1>SOl��=fk����^�`�Qk� ��s쎷<�;�+J�]�8:c����<~�s>�'rd�c���%
U��1�g�O��U
@4�P�'{4
ٿ녊����_e0�>�"������8�3�m�
]_�1��2Iq$/a��J���'%6��'�����d9�*6
b%,h����b��n�6����
6�u*������>����>�8��]8��~�\Lεt?����N���~�]��,��p���씂&����~�M/�Yp�N
���p�[
��!�l;�~4X�v��_
?�r�w�$Y�*�/�2	�#����<@Y�
�O�̻Y���m~6��gǹ1
+�\P=��u�o�Q&��j�|�˓^�]ιѬ]}j����îvn���7"��Vȸ;�V曞D��g�� �ҝ<0�+�H�π�Rs;{}	��� 
e� 'Z�+�ם�V��uy߼�ǧu_Uv��GN�
�/9�NF|L��1�sT��
��C�.�^��5�ٝ�v��Hm#h
|ٖnFST#�O(�=a��[� �6 ��PhC_q#��K�Vk�V���^���;
�q�\n��
|",�wvaj:,ϲ�w>�����F2��
�^t�Ȕ;�~-kI5[
�"���ߘj����
�w�2����!��g���r>ZZ	_��^h�f��Sֹ�r�/.��;��;�E�V/8[��f��.n'vN���%

��ٛ(e���u��굪nx��噻�.r�q�q��vQ[m{���˶ G���
 ����d�h?I`?�0�]�V�!#^xaY�oȫ��m�2�r�sSi��¬�
�B���I��u{���T�`f������z�–��(���FW�L8h����9�rub>)�5F�Pȟ�}��<@�H|la�aXn�1Qх[nj珟w��
���J����nȾw�n]�\

�ȶ�i�K�L�\*&��
w�vI7s��=*������٠m�z��
�+�݈�J�;�J@��f�{� ��
������NΧs3
��1SI�=i+p��8Q\
���9g7`2�
o�Q�;�����[������c|�;H��p���FE�ݲL ��0J�U?.�����I���r�P�)�b����- �<@��#���S�z�����-��-���*�nf�kM_��`�֭��=��~R4�]�
_�N�
>�҉IZ�!H7�T
W�Z�m�{��
i0N��'��k�

K�v�(]�[�[9�� ��]�I
�Kf��ηg��]��-����O�zϞ ��S6��
?�&��w�uy�9�	\xmI��T��[
m�a-'�[�P�:��"&��%z��R��)P�j���>_�3�� ��<%`����l�\�Y���	��
�/r-�*�<
���yUsX�ܶ����gؤsvʁV>X�A��Soٜ1�~�o�4Z
r���\g�w[L3�aU���*�
!Uœ+U�sU��������/ z$�N�c��a.��r�'�rV��i����T����)X�I4�d������j'oj��$��I"�=lc�}o�{"E�=ZK.'V�<�U1�ZUU����YU�1�T4�*�:lU4����>��D�o� ��S;�jz��\��\
����+#�`�UA�W�v��k�x��WL�ʅ���?��A�
�{��7>���"�\�u��]%2�
+5c'僾>��t�(��j97)(�^yM�U����U���VΖ���|f���B�58U�}_�MWl
m�y��
j�{���+
�#�N�ָ�3q�7�ՍڼT�m'������K��&��B�.��_�����2��*�������Cm��{���+G���
J�Y�ߌw;��j^����ۙ5
j����⑨-T#'.u��n�r���*�C6�l,ق]�<��x�C��K)Z%�T%H���j��
�(��
�n�g����O�m�:�أQ��noް)��j��T�0j._����ڢ�ً�w����,������
�KQ�KU,�=
�p�CN�d��}u�5,�E��A��)�k��
BO�ħ�
�8���������]���
���3�wG9�t��Gv��	HCD�U�k��2.na�;��W�"�EQ"�'3�]a�

�mx�k�0bCw�ai�@s�z�c.A$0E
����ҡ
�rh�
+f����f���δ��;=D�j�ɨ�e�&�$)�/��.�W��(p	Ǘ\9�v�y5.s���fPm��8��
�l'�O��?c����T�����y-��ڐR;�a�Id"�/�>��`��3 �3:@�L o{�)�]�
��;���%\��i�[���<T��X c�@3�6@"`�U� �d� �3@���c �2 at 6l
 ^E�h��,��1|Dk1596_q�� -��+P���Xy� X�� �� �
t�a�@��.��^�P, �3��q� T�� e��G��h�x(RL$^��dD�\�&D�o���;���P��C[�,^k�
?�?��:�C��p
+�\m
���	�C��W 6�; ��>��{hh�BzkAC�V�J��3�P}���
��<��R.f �[�_��
P��Ct���g���x�EV��y{B����o�X�2oU
�����������,
+�&�.tM� [x���B�?� z�¿�,�
+��ۆq��)K
�M��҆
+��b
K�y�4�yDX޼'�u���o�V�5\��)��8����>[�(��|nZ �� �	�^&
�ɬ��'�
�Mp�0B�>W�C(y[����/� 
�儀�JL;+�<����ضos۽e,�}]ru�����-A���
���`z�B�: D!�B��G- �
�C�
p�����v�BCO�i�%��Ds�c
��Gl��;�o}�[�Nϸ��J����?\�o��j|]���e㔺gC���
�S
�NT���7�؜|�> B]} �*�>��WqΎ �# �~�k1�d�Jl�'��
�^�����g}�|������#�72�*��ݽڡ~k���U%ң�&S�7�Zg�j?H�
z���[ te� c���f�%��� R�� if5u
+�9'������̿�H*=��
���8����]z��m�&���]�hr�/�B�aW(�ؽ�
�g��w�K+L�5c��S�FGg��
*�ů�	=`F2���X�/ߊ�o��C )w U
�9����`��/:�{�
m�!2�u]u:}��g�;���
+��^\�_�C@���bR�Bw���lՠ��l��Κy���uK���h8.����'
>��[ݷo=0(-_���^Rr�?�װ�
��<����]���?����vW�x�k���c��}e�]M��f�I��^��53G�~ơ���G

�nӟ
+�b��<H]�d����oЗm ��a
T�P��z �}" �"�+�^̍�������fӏ�T��9
$@�ɇ���� ���"n����ν���_��;���g5�E�.f�b2�+x�V��bI�:D�8=8���+`��`Y������M�
zg���dI at w7��W%��;u�G��l���NC������a��ad/��d1��Yş���b� �y;��ui7�v�n��x� ?Ms�)6e3a��M�
���8J+D���}�3a�� ��� USchE��3�⢝ϔ#��^zg����
e���
+���=�
u0���,d1.���셥�4�N���r"�
����ҫq�����hWy�!7��o���n�z�6�
 �7]�_�c at 6�@Mm(t�Ҁi����o����˙]͎"=��6��yÎ����|�u����&o8Z�H�CO{~��	�GY%�b���ž��W����x
.
��B�
��1��
+Q�=`W��M��$�s�x	�1
&�Ӭ�Ŏr�H�<�F��2c�[f	�+�{^�E:z��e|�回\�
+��Yp��0T�Ic����m�|���>�����ٌ
։�`V� ���!�� [\���ᐷ�й0Li��K���h�te�W�8�����|=�6�,;>.Ћ{���>�ܶ��^zT���j<�:)r63E*V�A�~���z���{���=<�p3����� �e{��\@��f��,b_eoY��B�R�
�~٘�[��˸�,��Ό�|�3��8Qv�(�%���65�؇b���g�_�����&8L
��O{f�E��y �;�e�7B ���I(����;�Zߒ� �a�q�ѯl�4AG�PS���.W�`n��s=����)vp�k�<���}���}D��1�lo�R]�Z+��.'�V�:����u���n �Q�@�~�Pn�D�{�1���ΎL��2���;�<���\��={��tq{*��ZH�?��ʷ�,�\����
����p�p��t����{��4m.�
+n��(�!���
V���m�����Ӫ���j+�wz���������\v��hD�B��'.
<���ȹ\�#��f1���~�7�Fa8���l<�Vn;�t���']����s�)��wg�O���G�/�
׺�z����M�����d��t.ն�*��~8&5�=�9������>�tS�\O
�}j�x�[r�jrת>vQ�ޕ��nrV�#t��]�Z[|���M�d"|���u�����T�x�p�թ�@�k͔�t��?H�o�zI�T7aު{!�o�k�>4��oϷ��N��|y�F�]��S�
_�d���*��=�L^�
���Y�

�
+5��V���.��D�ǾC畳�!�{k,tU�	�fZ���5���x���<=���<�(�;����G� �
?�?�������_���6N�q��U;�vf��7�f��X<Xt#��
k�M�Gmx����N��A=3�@?eVpbx��*��@�-�v�4�jF&y�~��:�9�t���z7�
z�F��;�؝��oH���q3�9_�ao�Li��T��1y=f���b�-}�]�g�bu?�f�	��l�A�7�O-��#������-l��p8�ۡ�l�y5U�?eJ*^4�6*��Z9ݝ�F�	�/R�^&%;,���S�= �+����

������\���4���¸��Y)�
+'���=�SfP���YR`���_F��v���.�ռ�J�J�Lއ�%��K���S���8�.B������\T���G��F��>-�ƌ�_�A~m�=��� ��>Pׂ���͛sv2�L_�����z�Q��`X[��������+h�m�[�R(��O'S���
J�)w�gC�#�\�����TV�[�Ң'�J+;HWV
+�T����f���oqkGnk�LZ��];HA����y�Hϻ�x������
��۞�z�N*m
�:���u���V�*�D�B{���q�H���^;�#���i�SU�)0��K��Cqo�
��FJM�;�c�)wh��8�j~}˲g1�;	?�������@�yת�CW/E��u$%��9 �[���9�^J���դ�n�k��1}[
���q���"�P�)�f�N���u�mw
+�
+�_V��V᷀ޅ~8W�����NM,�O��c�Jފ�e��vh�d��N��s;
m�N�d�I��x�R�&jJ��hEU��$����9�#��e�
+�,p�%��e�������E)U

�Ty��Ť;�@���b�"nΔ��n)�C_b�ki����q���i&���a�JaϷ�
M�'Iʰq�E��嶙
+}�e�5�	�8���|&���U�b�^��_�s$�ܢ��89�M��aKUhL���
��[��у��
+uhm��gB&k

DKdQk�雡�r��ࣰ'Iim �$6���Ӭ��gK���[ӛV��**ފ	�}a�>\�\���L^�%6�
,�ޙ��ws=YY���ə���D	�-&���I�ӑ���w\�.+���9�4
��7��jY�R3^D�B�b�afW�2/�ڭb��t��3�²w��7�p�'�ᄥ��,דK��/w�}�8s��1�\d��gI�2���-U�s�X��~
gW?��8F��ĭEC}�灙�/�U|���W:�mc�)���q�
CT�D��e��1�E���%�p�J�
D"�#��K�&�bl��qz��	5�4��BC���]��P��FPMc?���/ �5 at v<� ��� ��S���
@	���� $�� U�O�`�&
���� ��y��o�"
Ld�>��-�@�Dt�{5
�Rd���	!i	��o�_��Y�������](��� �O�֖���B�T���$(
�
 (�L ��sJ
 ��
+q��\u	�<B�Y�E�{" B��/$�=Z���M9�
+v� Hi&$�Mb�J��6
@�,�y
��^D T#x�J�o����
���	 ��J�)��x�� Hχע^-����Z�-@�$HM�!BxA
+/H��I�'�X_������L
�_������ R����U�O:]�=��	��!X���4� �
� ����+ at K4 at i�hF�$ASB?�k�%p � �ذ�L� �AC
�w��X�[/��6�s�h<o=��,]^�o�_��о3��`�mG�=�����8� �"��@���Mأ 
�9�v�u��3x���h6;��� y��d�?�x����g��<�7~���eZO
Ú���jܧ�/�>�)� �WP�� ��V��s�O ��i�]�
�	pZ�8�V�b�W
0�@�ɦc*	�4�8��1����1=Z����!:_NQĕJ�g��=~�ux�V�6���[���Wԡ�K;z
+�����
�2 at E�0�2��
�Ϩ
��<

/��j|7���'�����7�:U�W^ZKQ17l=��q����0�|�Yk~ODks��ַۇN2�`Gs�uԐ�a�j���P9�����~�{�q�@f'�J� ���&Cw�o>�j�1����� ��4>D����4���f�S����|OU��-����*[�_63�&6?���w-:r}�ڻ�&+R�fG[���je�J_�m���@�W`Y��o� �^}�#@
+u��H3����F��o
������ӷ����g񋮌�3���u�˪����yJ���
�(�ҩ�
+����(��?q�ή�5ן'�Jͼ&�1&^�y���_�{��
�3Vs��	��z<
�Y�Lu��{0���R��s���U��w�� ����<���C{��w�]��0�	HO'A�,P�K�rq�<[D)�f݈
�yY{\�U,uz)��I�8Z��$�4]��a��_��]r5�)ϙ�-���kΉ��9w
�g<nl�t�d��O��F
�W�!�@�:C����
��'��M~��'>3��y�D�t]�
Qi
�����p[����a�'n�`���7�-�W��}�+�
��3u��Xc�� �L&�����f
�a��Y|=G��_p��~�9ȶ�7�q�r����V|UGD3�г�m��@Z�V~wO�GG)�?��[���f7��s����er*n�:��f��+�/u�~�D���������+���+@�i������>
��o���7��͹��BՇ���
+����E�\kw�muBai�~"/��ޞ��,0-�<g�1ʾe雫�ە�����_�K<
c1m�mV��b�[��]u�g}�>
��:�eV��e��'H-���+�
�P�\�2�r����;)�MXʣgnK��<]�D:7��d�s?�8�BI߾�=�B�[w��E}I��.O�Xk���*�o�姤�����i��]BV�<P�I6��"}K���>_��
+8n�4ȸm���	{e��s4��R)���l(�������4O�V<�wk.-����M��[k�ٹZ$UOjGs�U*��
�(�w��7���y��J%FR�s���
HA$�N��������_N�4a�
Y��;P�_H�z�An�C�Fv���5���l`k�9�E|Y�p��ZK��FS1j�z���rT����ʧ��SJ�`���s�R���q��;
��V�V5�#�H|��+��Pf[�`�T��͙��*��e���:��|��l�ȍj�}]�tv�Kib2ng�͑��5S[�oc�m��\l�g8>�"a�Ɂy'��^�W�mm<䇏�>Kݘ�l�σ�f]�#
L��ww
+��
r���vM�jDGD����Ot��
����ְ
�
�����\�^q�������
+�L)�6�X�����g����G��p�*�� 鱹�B�2q��
/��_<�}��d���n���+ �=A�[�?-�v;�.�9�=NG�m?`��ແ���9���@��}�K'[����R(Ek��̶��9�ΐ�����y�r�6lf��S)/���K~>
N�3�_��'�����W������*������G�@��4�����n�9��;�+��S�;
��;��TF��v�.rH<���,<��:�q�
o�{���G�<,]����Lg���k�N��3K�Ӻ7���״�3�iU
�`$�M~4�m(������N,�oC�O�V^
g���7��i7� 0
�|N���:�G��q/M���`ŖAJ?ؼ?�������hn2�e~?��Ʌ���9�1'td���--'#+~��M<�\�`�X�7 at S���[_����:.�O��z{�9;��Oѭ7
+�?{��*�Q{x��ӟ�%�f�r�7b[e&���i�+�s�ި�z�>��;w>���

'�-���aJ�
Ɍ�b�C�y�GX�x�F-"�+�
�g�kδ ��i�+�ùͶ�����g�̉�l*���ӻ�YM�mN[�����|(w�<��0l	���eq��ɰ����v����x�n��d}zA�*���rԓv;X�&�$p���Y�?�/ ���T1���g�#ר��T0�m�����dS]
���^T������Ǥ�]-�G;���Z$�\ϳѴ�����}Ta�T��!��A��.�^�({w�E2��{����j
+���
+Ы5��� ��6
�с�&�
F��;���,/�6O��1�p��r�L%jYsQ�/�R����m<��J�=�jN��G���x4m�����}�\]����j���ۍڟ��2J?X'mdG��hw�n��y��w����_�'������[����S���F��!A��,�cE1�
��/8�^&M��]�7�*2�I����i����`P���^��EJ;HZ��IN�
endstream
endobj
36 0 obj
<</Length 65536>>stream
+r�a�>
?m��-��ğ�\pu�DE��D�~��
����	��Gv���I&�Xd�V\��CA
�by!�YSZ�ۑ��"ev�l�\uP�	<�G����%|S�/f�n���|�'�/�y7}�i
,�8�
�-��H5}�]iε
Ӝ��ۜO�9���
��;Nh߬���O�brhn
-�,��ƍ\V	Oǜ���*sf���2�.�g#gN���a�xT0��g?j�О�9��W�ݡ��;�Ea��M�Z��c6/�ӱY>��ƕS�F홂QR=rb�
I�K=���
U�W��)_َ��Q���:�L��T�
+w����<��u~��_
:�Z��`X�A��ߐS��X��nDǝ�t�n�l���J����*"ҍ������������g��#������yUӻ���6��~��;�(����Qu4_�)ȧ��UzsR/���7R�f�57*
aЈ�E��6����N6(���2un���޸o��z�
��~��R둷���v	�t��M䲻��2�N��ل~�<#*���ŕ�AI�+6%��h���Q$��^}�7�}�`�܌GB�h��N��K]�]:+ڞ؝�Jq�k܍�X�F�E͘�Z��%�b�S���8����A����ЗӅpg�
5<i��j�_��ş
��].>�B��Wh�

�@�_°_��[A��q��~���x����6_
g�r��c�+Ռ���\�<Ӫ��Z��}��R�����:)���_NNb.>^�dr>d���g��T���&��
��� j�Y
B�o���$���
+V���w�����_�����L��|�
��W�^� aT�X!��a-.y�TR��w��(�|��"�N���^���Zr>��W
-3�
�
��q�����0a�-�rfo�2��Q���h� ��
+�b�@��w�V� ,� ��i Cx�{�� u
+0'
+u�vC����ٵ
��# h��H4E vy�W
 �V �� �j�
� ����'��
X
+L�/�Z�� m����v
+�F
+
+�:��
���v�^�@����x���h�~?Ko�hm�CE�����\��s ���A$@
�� �cA��M-��O�+���:� �;L���(�v�f�c��|`�s
`X��k�4x
 ��a��
�l
I�ʯ
+ at a|Pv2�p� �H�[
+g_ �g�	����ȅסK�^̻�}�f��+`Uf�L6{�2�=	�� 8�=A��w
�cevB: [M� ����3>�J���h 
+rM�^�Uy]1��cل�`��j鄸4��[��,ĩb|ف|,�����J��_�q��ς=vC�O���r��kz�8� �� �P=��L੷0� l�zL
�'PaV���Î!
!q��t��݋:�s��XT��C1�b� �R�ZM��W�K��X+s_��� [��������
�-b��b���@��@��×�M����ߓ��L'Y�̽��Y}�c�9/�G��>�b�Hqe��<n����V�}��
��?���np,]��}>�kj6��
⯀mޅ�y�B�� >V@&�: S�`
U�b ��׿��Bk�	�/:�������U'���]�TۨG�M�׊M��;��
pouKop�
+]�8822z�n�
����ʄ�X��)
S?�)��o X������ Q�Y���9pA�:z�
�3 s�4�M�(q=�m������#��,��\�ъ����$��[8�K]�[�>��̿]Y��x\��� ����#��c�9�s=��Y�@���u�^�`��P�^���B,mj�k [�x +l� �TȄ{�ZϪ�<��`~�P�:ao��ȿ\��Y>��)~}/��Y��z���f4v��p!���
+mϝՋss�)W�}�H)[�̀]3�x
��� ���:�m��C��n
�6{d!� r8�=k�[%�#*��7��N`��Ry�*z���ןG�b>\rn�����9�J�۲��vwO�횅�l�I�c%������5����inW��0F��� 'N]@
�1�0����@6�g at z����)�nO��&��vÁ��SϪ��������U6��]smź�?p���>_֦3E�;&Mt<�nhW
�
���x�#�_Fn?�38c}���O
+�F�LH	���bҼ�A��߱�{���"���U�_�U�C����n��*
�nH����d7�9�8�(��d�
V�����S���I��6��2D�G�n�>��P���Xk�{����U
��o��3��-��-Xd�k�\����>%�u�n����63ގ˕�CnDu
�ÏvZpb-K,
+���6�
g���d��"��E�U5��W��Y�kNq�W��b���2m���`(FK��^�������?ؿ�? ���@�z��67eX���P���٠��;M�nA����M
<|�snfX����F��xs�
9�@6D]�+m�,
Xcm��[Q��i�����\eZ�d�#�oȹ %ɜZ:(Y�}S��z�d��
�7@*�@fC�~� �{��.)���G�l��z;��J�����-ES�n
r��M7��1�
�w:Ѣ�˪ڙW�>�Z"�i��-ݑ��ė���C
�qZ���%aqnM0�j�;14�@*���ah
~ �M(��2�̧W ׽8�|�9G�q�
˷��O���Z~�,�Ydk�kyh��f���uG{4���
��M�
:�%�
�U�|˘b�{
�e��Z+Hf����z�u�\�1�.�Ihn��/���r����?'�����:ȩ 'F�#a��sߙ��������n��\w`�,z��g�R�R��ܕ
�E����3�5���|���w���[�3�ŝy���<Z�	�^7:����
�ެ_��_
�p4v~ m��®������8���3���^5�/<MGM����V�͉�b�Z��W�m��BB{�%��<�N��m�愕��]�Sg�W��%~`b�Μ�&���^�9m3��=\
.7�m��?��o��1�64� y��#N���@�F����ܭ�}���]+��#��dӚ�6�?��qy�t�
Y�6
�^(B���tf��cY��,�5�mg��`r���D�
+Չ�V��T��̼><1�»_����O�݆B���3�p�O괭���c�5>���INَMs����PLj@���8,��|�U1��Z��z�fC|>��U�e��'|O<�,����l�G���Wd$�Z.��ZcN��h;Y$����n��{������ s&=2���\rm/�~Qn`���+��pg�����f}�l_�8�Ki��	���.�9���Q������-L��T֖�I37\���}�Mo��xhOA~H�wvd��6�
/��Pw�܁�@&HFɩ����m����q��jۉ1����H�b�%Ƹ��
+�
�]ѥ�]9W�o�ѯa�*��Un�m�e�

&��Դ�pG��0츏���%�Cb_;H��蟆�l�����C�:
�����
߹���[��)��#���+[�Yy�j�,]1��r�� ���.��=KK{�zm"=�/,��� �TW��D=&-��X��N
N��ZM������E���U.�;u�jQ�&=�t�������ӡ�s��7��I���^��ݠ�Vfxe��/K�&�����Ũ�bړ]�mG�
Ul/���pFܽ'{�*�i��3�Κ*��8���ܲ3�\z�F�YO���D�NW�,��K�I�C���� 
~0j�ٺ_���9a�s[ؕ3)�/sY�� 
�.f�ͻE.=�RY���P�[EQ�?��#+M����!��6[kd�-���X�+���m�n�<�
��wuOXu6���3�=�{D{��N�[�bt������N��8�!�z������]��(c��	�m6��V<���1)��i}� ҄�w�[��	@�'M����6��Y������{�$�w�չ���C��,�p�l�k�nM?�[+�}�Mo�b[���le5�ؚ�	�5�S���ӂ+6��.}Me6�{�6�]jɑ��/d��-�s�̳�ٽ7}�67I/du�a��p<��[A�z���Cu�6��+�Jg4ot��=i���9ۯw�"��7�h
}���7D�l4DMp� ���!���7
��=gwϵ��\�"zG�~��)��������!HO��P�

Bo�4z�P�r����{r�^e�`]�q

,�6�^�[��l4f?l���Ш�[f}i�.�&[Ak�\ԭi���4!�մ	~�+�Ց!MN�0]SV`y8�_�j
3���ٺHG$ޠcvR�/q�����^wz�ۋ��L̙����}���/Mџ�
%���Go���F�z�<FU�V�~�� ��*��3��Kz��]e��
>+�5vm�7X��
Y7��dE��O�q����7����}4�RnC�����m���co6�du�k	H]jVز�xd6�v�vj=��,s��R&���*V�>�R��.�R���°�����ݗ�*�n�*Ȍ!@x����0����&Y���Czh���]/C�U?���{�/m� �b���G�l�\���j���6k��P���>�؂=E�>L�Se��O��b9%�
�h��/��){�8�)�8�B�4������r��쬥��
�T�z=�Ҁ
+���ȭ�sg[����mg�������7�k*�w�ϳ�9��{�E�Lm���n�X�s����M�U�urA�4�n֒�a�
l�d��7?�m�Ώ.	Ώ�$^��vv�#�| �� ����
��3�Jo���9�:��u��jcY1�5�&�*r�:e�*�Y��v�Bhf��r�8�:��L��� ;���Y�W��p�̾q~ �����a���6��ktZ�m!
�ڤ����2�]����7� �r�Lw
�$�R
���Og	� �� �o��Q�0�
@:�� }�5��b탴��@z���&�/�H�XB��� >~��ǯ|�j������+���>6��
�9g�7L��
�q�h:V� 9\1�,j5�
�!@w �� ��
�xH1
C�SR ��o�؃pD���� q��Ʌ��?Hv �&��&cź��T��
M(���+���
�g�H6 ��� �@3| 7�{C.���XSb�d����*	�]}�g�:@��D� �Ѓ�#�
+Dt$N�M�����;��������_�`��a��U���P���w\wh�
Rs�q�s�	`�| z�e�[m�N>
@����چx] J�@Sj���+
M;"�c�ebk��r2,ٗ��
ү�\+G�k�p�[����7 $8� ����Y��6W����wrƵ ��� �o��Z
`͸
0���K��u��
�� TV�ĩ�
	}�k	1{S/&�M^��*��lk?���Epʈ����
z��s[�>`*��f�����[
`�.z8�^!�'
+���
�=w�d��
� O�� ;-�d����u̚�Wn�
�3}�z+�t,r^&���C��棞)
�Ȝ��O���m���n��#t�W8��qpL����� 7Z_���O��
+eg-��#(�B30�OVߓ1`�7��h�(��F%a���y��|
����]�]�؝OQ+�n�5�&�����k'{��
���uB' �0S���	�=�G/����~R�V�6��Y��Q9�����̫e�hC�D��^�����{^&=�_�Z��o�=	fr7�e�6�?���9��[����.�f��u��or;sz���L;޺��f�h
v���}�Н.7���uo�V�=w�9���V
���L�� �����{k�5w >_Ť�<
-s�\���Yo{!���aw���?�ՓF5L�(���E$�#�O��>'�T����	��R����lK��vwoK�nY2�]߹�84�/v��Ϸ	�:��
+]�C������;����:�G�G�_w�&��1X�/�^d���+.}p:Ù{H���KRk��]vv�8G�zۄ��y�`[��G��}�,���V�&rcl�x��~�퍓�o7N%�~ls�|�
@|��$��=��$���r�U�Fz��<ߵꙟO�_
�n� �#]/T�]󝖶
?�a��p��5��ul0�
_{�R]?{��~!��.����:
+cd]���l�h>���r��wmU�����
�
?�_���p�gˡ�ŋ�C�=D�%�R�T��]���f��pd����� ��r=kx�.�^SrV�F�s�6��JO��>X�V��ݭto�Y�(��� p�i��6���g�.���M�f
E�'>F �x��?��
�7�:��;m]����/��]�n
�sg���P��=FS at APW'�\���\n�+�+��'�-FTU
+�(NJ
�U7
l��q[/�ݜ�`�<���
=�+, ӯ% o����9��Oˊ�d��8m��{��>�^����6���}42F��t9өi�����{���
��e��
L��JfQ�d�����u����LY*z�4�M���ZΏ�7K���������d�P�x�r�-��$���+�5`=�S�su��1�m�A�nf�
+X_��kb/�j���T�Kd]�.p
�G�s����b઺p;�\��=���
2sU��BCd���k�}���j�X�@��&�P�]!Q9.n^�L e[�s\�S�1��d�����@�Q��7�ft1��z�ׇ�G�9�X��UnA�3%���
9TJ
��D�3��<
5�YB5����
o>�(?���g��g�B�f��^�;���7@"[ �va}>T�ʎ�����h�����l�؅��Ml���ŲW�v��6'�<n�K�U�}@�Q+#�A^	�"��F[h2� :_w���<�G��
�_?>�4�o�iN)����e����m
�Y�� �
��^
�Z?�����=<�j�S��p�%>ܥT[0�}y������`5��x1�	٧ҘTT�
�vi�K�Ƭ�����#F`I�י�\;L�+򚖕����sZ]V,�'���Q~ �f
d�I���F�����g���o%��U��v�ct-�f�eq��Z�W�'wZ���]>��Tm
ӂ��y7A
+���U��9l���1�
�M+8���ɦ��ѫ�ѭ�\��+���YM��e1
ZO�7��n��<;gݠpz?��1�	���d��_�a~��u�fnU���(�`�FzXK�M�ȵ���V����z�>�Ə-7�e+L���rs*�S�I=8M�wQ��
؎���:�G�Ҙ"$v�����T�I�z����7�Њ�ֳ�2��
�r�xθ�#d�V�C���09�P1���P[�[�
+�׺r�GRF�/��>��F	OT�)�s��t�H-?���*�O�x��NF]�c���f8p147
���Y���Uiɣ��J�ڐܼ�t�_����[~Kq�E����f
���Q�[y�mw�+{�
N�V��=o�u�|��m�
��-�`z5tҼ��c0;�F��=���h�������/tI�)���k�_`z@�yp�W�!�u�� �عn&�J��������2A7eH���%�#��d�Xx�z,א,�d�3���9/-�����N�EL��^j܏������XX5�~F�D[�Q7�dPu��w�+N��Ϙ��;�'
�r/ rҿ������~���v��h�i!(f�[��" 5�^��,�^>Ղ\{�)
;s���F6Z�I�|��^~~�l�5d�'�
��!�
��*uo�zݸ��:I��u(�v�PIt�52�$���m�
RW���o�2���vk��G��RJz3�" }�N��\�c$��H|)
*�em�Y7\Q��-���,g��G�0��ep�U}���{�煠��k��C���Dl{�jˡ�^k��a?Xˡ�6*=�6*�������pQ�)y�_:��m_Q3w@���sE[��R4����B�
+O�<9e���Қ�}����TFn���n�ss��p�W�=˿�Ԕ�:�,���ݚr
�y</�f����nL4��㨙Oեf.����I��TÜU>��D���:{�h�)�}�'����e��;�d�\=*a�1堓\yM�W�(�VuU�:	���SS�3|Q�6���Ti�(M6g�ٸpޤQ�dWu�"
�
+%e�
+�Aq5��V�^���߰o�
����Q���~E����Y,����x�'{�έV<��9�opR�J:�~��7َ���c��M�+.�湺����jTu�/ޟZ-�q�}Y+�D*�U�z��y
�`UjW�U>�\��H�7�6�&m��T?��(��P�V��Q�	+��Y��%!y==SS�x����>�mXc�Zu�[U��P%�
y�
월S�V���1ͤ��=�2��e綘�3��Z:�ʹt��R���a��
�%�֛���r��f`�ۂ7�-�F�r� 9c�r&g�ԓ�wG�u2�'��O�L3�rc�����$�jw
Wڙ���].��X+g�m)�ɞ~���n?
+�x��a\�ߕ�$��?�|/��2+�b
�sZ����={ߖ�
+�uJ>��p�sS�Z�x�k3�j��齱���z-}��#�V�s�,��P�V�j��6
���j�>�73�iN�i���\�vvب]3���3t7U��o~L�f���P���Q�oX��q �j�����i�7�V�3�Z��L���Z�
R��=�e���J��x.���PC��,rO29���'�}��j�e�fH�~/�yo��0?��΀��s��^�kU�<��h�8i#��0�
��0`��
rq'�I����Z�Pm
+��P�L���	���I�p3U��qc��\%{�P�"7m��c� ��c�|��`�]�	���������,
�T�Xv�T����z���X�z���B<޿�I��j U�
+jׄ������WE�G���i�p��aI)Ẃ�qm�Ԧ6�f���� �EɁ���H-�HY�Hms�qX at D*H���/`)���
�<�HvP�t�]�
Z ��}��rS����O�
H���ǣH���.�]�&h�YK�H���3�-�� �
A��x�tv�C� M�i�-|<��!�f�}�d����aֿ��,	�K�5�?���M�H��B�	���M� ��� IoP��A��
�tMc!b����ۃ��� �HK9�`�<
�j��,~ON`���5���+������d>��v�r���@�S�B�j�Š
+�y�;�Q�$ �&
���
@�������I �k~����w
|�f~��t
a�'
�+@�� ����N��:	��W����yjcƥ��<$g�}T']�QGVt����l�X��
Ը�Bw�h� �ی � e���g���$ �t�Õ%��w8�=/A����U7�
{8�%���_L&H^YA�
��?�i3*��ƏE�x��{I;7c~�o��q{�${�j��o����t�(Aq���1����ݿ�/`���B�
���r��s�u����D�³��XxxV\��9��("�w8g��9�wͥ+7@ڃ�$0��T�X�H	�^�wl�/[?����X�f
`i

+�|�N�nh��!��.O�:�|��<�L�r�f�{�M�
��G� b�uo�y�n��i{�r��ڇK8!.��ؼS�s�Ͷ�eß"����^�~���1��)�흕���7��2}(��
�M(P�C�aloϾ��q����Գ�A��F�#wj��ߐ����
�{���T�
��+_�����(4�SK�N�~
܎���}�
n�0ZT�D��{��W
��[9�8��Z�U��� �
P�
e
+N
Cf�]�dHn�
N�>V��u��冊���v)%H�o\���
���y%GG$�����i5Z�K`�sA��̳Dh|�mW.�Ү~/@v��h%����W��ϳ`Q������y����?K9��8�T�Lc�~V�q�����% `����tSp8:��*��~y��[N������m�[<��V
w
+�

���i���DH
+ٌg����3֘&�ddç`dAj��/~���r�P��C�|�
����{���:���(�ȋ��s�\1NTu�
�u��S�ةd��]$p���.-#��M˻S&�<���o6o0y[Y{B�Y��Q��
+qE����V�f�Zmښ�Q�Ϊ՝��]���@�y
+d\|��i7����n����J�;�ZS�0��/��nd�p�&r��ny�c1�qk���#������e�9�j�+�.��b�Y��X��4�'t��ɝ���f�=�r�>aN��i�� �gT D>��LuI�,^�>�{����{��;�$�l_n�����l���>��cRhp��s=QJ��W�VgfE����W�j����x��ff�3(�
+���2NO�<:u����J�T>’���Rc�/~�?	�i�T at F��x�.tB�f.
+A��aZ�½�	~b7�i�j��w�v����u�`]�F�~�^�Lj���ezq,.0Z��`J�/��\{>����$�3��a&�M�(��ρXq��(��(5�(
���eZh%9JV��T��E��	��

aҔE
r&Ss�;b��\��9)�T� �M��q]Uw�+�{ޗHW)�x����jF�U�$R�n|<�?&1?oy%}�.,|�-
���x���f�8E�ۃ�h�
��� ;�m�N����)�8��ݢ�z#��
3�&��h��[O�o��u��SkEWxd��9f���RUp\��d�z�=�
�a�E�{���cT��^o�����i�-�q���p$D�����f3��e�[�T��h��?���ȡ;g�z_��f�����L
�"�vK�C�V��E��憛?��J@	�c��4^6����O��I�G(�Z�c
�ǟY��p�c�?�#��p�
��yYd�p�c����x�E�;�#�ݮ�
A
���
�)���J��yQ�8�?o��z;��pL��+��Nr5�d�M�pne����ܯ��gf�T)�B�5�s�:��z���rD��c�ڡ��������&�
��b
O�8_�
+^�/�K�>`������@��R�R�y�>��%p�7q�m&�<�-��!�B�Xҗ�AW��p���MQ�
U�"u�	*�w����4K�!�
˜e�ڇ�Ք�T,�Չ�{�
+]q���
w<�:~��2��w�I
y�'
+_�~ ̨��������s��d����!�x�v7�
&`]s�{����Ҿjc��f�\Q����׳Oq��wV��M����V4
zt2Q^-�^�������m���(�ߨ����-�82�cj���z�5q��/��_ �C��ne����
��j<�F،���������ɚ�ʼn�hp�-�ݗ��
+<#y�J�*OW�&�Ȟ��iZ�鐎���8�搑���Ý�j
�Z�
d ��M�4�|�����w�����
w���
	땫a�"
ֈ_{��;c�z�nv3*��E�z��j�S
0E�bm�UY���f<,vVh���ɛx7Y��̚�qoZx��8�
\����yP�篙q���+T��Wz��y�t���A�=C���QՀ8G=;�>���ب���/�r�����r�{��c�:G�BRpjs���L�`٢7��
��_m�o"�
���i8�����wQ�8u5�S�6��#���C��&��U�ܢj�F�RZ��o��"��R�l�OU���ss:�n�Z4ϫ��
����b���^z�IjF�y��ZL(�G�X�r4���1������[�n�a�Z��F�u��ҡJ�A۔E�=��n{�/m����o+Ou��
��I�?��r8�������"n�h�H=u��O�Y��b�9Y�Igu�si��^� �F{�<颃�x;��a����%(?X_�w�=�R������<!����t�=�K-Z�S-�v���7aH4]i�t�k��v�7��T�*���Oh/�x-^��g�/��{��� [...]
���5�(�Y=�v=��L=�P�z����{��
p��_;#*<73��^�yY2�ǓV��3���V��N[ݪ>"K���Wڗ�����ZO����e�
�<�M��f�B���Y
��B�>7����˲���h���i�Z�n;�f�"��m߬Ʀ߭j�u�~���4q�e
L=��G����I��;-6[V��ִ5�.�Y^R��ꚅ��M�F���O{?,�[�I���݆�f1
2�Ƥ/�}��=vֱ�r��J�
x��К�A��Vb����>^��Zy�lQ呓n����zA�Õ]h��
��_ٌLg�J��A[zC
\Z���UlOٙ�⹂�<��A��1@��w�zs~*ִ0jVA=5���[�e���M�X��_%�e��y��e��������vc��Q�`~�v�
�]��B�T
+!J"m����~���y<�q�~57fg��؜s��}�w.O��ʤI
+�.���U��cӓ{Ϊ�*� W
�da���80Jt�˶^X����3�S�ÎZ�Y�����W�K��
+�8���\w'�Ҵ*6����K��-GV+�EA�!5�F��<��\Tms���頷&�L�M�ч$t�� z]�~�������V���,t��0��>싴ҫ��U��g��{�j�v�_��z%��v�x�R!��E�}���
�p����E��zR����>l�l����l�h�
�fx�� �u�f7&�휱 ��]�?y^�
��.e
��޶W+2h�Lk;�/�Ͱڙ<����7EZ���t]���6���Zn7+�~�m����=)�k��on��>_�͌R���f��VB�y��=c��������@;N�NkJB�6�T���M�8������j��;mZ��	�a�*}��%Q��Q�EtDzϲ��
+F߬��0�\v�I��f<&
&�
�%�e�}�(P��5�S�
 +�h$r��u�� u��
� ?m!�@��廉����p����i��0�)�p�T��Q��v�C�f
��K�R�y�R~�$h�κE����k7JYth	��
�h?X�
g��
�b5�(�
��"���ȜzX
_2 �K	�)��1Lҍo�7�
ch�.bhT�b�*:Q��?1QY�������W�����p�F�W�͂W��a��l!�P��!��(6�E�Qs
+�%���|�
6�(J
��s��Q�c���c8eA�O��a#���c��1�^�:�q
��\
-��﹬r]@P���!���@�bH��^��u��je��^�y8!�Y��}��Up��+�L��DAx�L�,�:��j��n����ɭ��S
or���p
�W2�[$
��.��?
��1\)� �|\W>/Pb�g
�
�y9��y�n��K|8B�S�<X���ڌ��f&��NR�Jgb[��Q�&��������(�ňV;��d���Ϊ@~׃��H\c�u-郃k
N��>�G���h%�]�{��5-"�������g:��C7�����?�g�O�/�w�_�Ȩ��G Й����E�X~�\G1��V1ju��[����s2Xx�
�����x�\�������(x��yP�?��̃��2��/_}��
�x�<��6�Q���B��	et�,;����_��`6���E����3�љ����16��1f��s�;���,�c���}?e��j�&A��3~,
�~�v���iv<+29/[3g�)p%7Wt�;��
n��8?��}��U6$����ֹ#�C{�������PV{��c�9eW#�1ڜ��
L�8��Y�j���8��y�wZ��l��/iq0�*ǝ}X)><��Gn���=\�մU�����%��K����ghג� [...]
+,y�I��Eվ���{a���
_�������O�.
'�upʟ�42�%����g��IM�����{�'[č��5t=�txsm��hi&k74s~�
(J
�i��wu��*�Ym|W���	��^�ܖ�ћ?tg�w���@yR�3���x�f���M���bS�G�~�zy��U
��Ѻ�y}
�|�Ƣ�#�\��ϟX�6��s����om�G���������k����"�V�5J �Z3�	����o�N�-���u���x�������TS�.4n
F��>
��ܑHc�ލ^wB���e�0~���5
(^&;W�㎺�����]���Pk��6׭l��f|�VyT�E�-?�83lf�l�Z�\��|�x�	Lқ�2��'$��q�������4�߷�=Iߋ��!�a�[
�*9o<~�m��
���7����9)�[(֒�f%��\H}ĶV'B+Km�V�k�W��R]�&���
pͿ�V�X������
*�;����`��?�3�Za���R6��c�H"�ӱ�'�&oa�uat�<��a�����=yȱ�}dH``	했��dj��f�`:��<���h���:/�9�� �ʂ
[�/�/�탃@�\��p�����׭�}�����	N$Ɩ,�sF��o>Y~���o��PܼTm�Vɮ&wA��`󺮸��
����x���X�[
��{�y 3���&�g��ͺ2�vi���������l�g�yP��-��sx_�3Oc�=g��w�bW�Pۊv�e��wdEno�qv���+^N��R2�����>��GPbs�w�g�)��D2_���샐>ɶ�|w�<\`l
n00߽�%^���|���_� U���Y�^x��v|������;��<���i�7� �wW�DnWH��Q�vO6dj$elw��Ћ�b~�*�b��$=��F��3ub��No���ٓSl}�'\T��	������ɨm����CN3�|a�Ψ�/@� a�3�s꽮��ص�A�
+�x���䴇K�69�Z��&��7��N�RVH�%�YL�\U�ۧ<W�;u�ˎMހ;��5��1�%�8ȏ
W��7*��Q��F�[aT$�
O}'?�&�3���ݏ3�.��Xt_\
�-��'�Z�{���y���}2�V6�,�֡}Q��Jsy�νE�cG��f�[ΠlgãpY����(kO� �ƅ{
�J��:���`X?Ǜa= ���.%��pZ༛��B�"�V [...]
�����m�Wa�v��Bwr5[
�T�w
PѺ���v�
��q���/�	I%7��v�ݭM�V
��Y����-�d�˫Y�>,V��C�m:��4�g9�<�%=�^�.'/
�P�k3�I&� Q(��Y=b��w
�b�)��Y
�S
�g�g��ږY�Q��p��89ۙ�������Pa�8����O�mG��t{+'`��_�ԥKRKq��5�m7�3��
�g�N�=�ɣ�֧���Y�?
|6�sHW�cJ��씗���fx�n,h��<7�Vk]�鸄^[�
�[a�ϵ=������O�ж'�km����*7�1`OMQ
i����
qf�5?RUkrCUw\�J1�Ύ�!Cg�,�|4�Gq��M�3�;/w睊��ꄃ��n�s�}���A�MU���X�4�ƥ9ؽ����'h���_��pZ�gp?��7��]#�Nj��Q�^5m���b�n.L�2YO��aw�R���Y��\�
�m�]a��;�l��4`j�ne*�V*�t��&�6�Ʃ/�
���/�ٸ���K}��$?X���/x��3�8g��E󚫏-��
ܞ�
Ċ�tӫ:O��4��œkS�!�� a��;Z�.�^��|u+�u�U��۟��J��v
�P�U�&���d4��3^��݁�J�X�=����Z��ڊ�%�m�UI��V�e�NJ��r��3O}�7�M��
V�L�"����|9j���8�;��2�V[d6��hGS��J�\�BVE��l���(jR�iPl�o�&GyL[�����`��a�T���eV��[ٕ
+vE��I�Y��
+3���2�_�
t��H�sSڗ�-M͡)*�펷�gy�A���d�?Xw��m(����
�6��*6fMX����.��!����"�|m�bTuk�J�6'�.7[��g�X��ܫt���v�%n7?����S�7�W'��=�笊�m���<Z��F�ϲ1
&
ra�f�߭����ILc6�Z�M��V3�T�a]��
�}�|�”�^1,gn,Z:	�D<���E��"��R4�,Wrna�o�B�_n�4Z�e���1��P=����/���t]g���x�����o�T�Hl��N���
rz���fU5[Ty8
wK�F��|��9�'�t!+
�QX]�O�U|#�����
S'�٢Ot?���m�����1��g�
+�͎Zo-;�
�,�GX��3�X����\���
}wwci4_�G;��Ї�ޣ|�٪�2'/[�D.�<[x��2�
��\�F�
��XD�Ȝq�/�x&�A����g3|�T�nV�`e��]����g�>��g��;k#�A��/H�b�_�JQǚ�m�76
[�Npf�z
����.[�,E
+z�&B���P��W R�q������ dHh���0a�_���Ck�m"
�>í��M��C��h�{�4��wժ	p�P�5��]�v�
:��I3vؽ�~�N�A���Q�=L;�l.[/��J���
Ϙy*K|>�
�85�f�4�
��<O[�"hh�L�P�"� f
�D���'k�}|s�

�.���h[#�[��l��cf�_�P�Ő��1d�	�C1�m�Q�jd�4?,E�c0Q�I'Q2쁖?JZ�%m�L"�|�����j�I+J��>�^S+� K=J�� �Q�C�/�
+�7�G���o��Q
��
�^�@�%���R۪F�$�Ei��E�[�D��s��{���A�	
%�b��?z�2ߣ
�(9��kNC	p2�����7$J|�
P[�f�S���m�������/@�=�}���|3t{�1$�*=6J]��s�E��<G)�
�ypP�f
����
�����W̿9f�pl��Q)��^�p��6ޗI�����.\��?�n�[� �9T�A��9���9_�A�F��}��a�<�!�bh����h��;�'�jm�Wۖ A3�(���)E������m������ҏ0���=g�%�7����SNe��0�������`�APj#�h�_>i�,��Jf�#

���<��3%�g�c
��G
��i4��7�?8����Hc�׋���+���E2^��_�j�V2}��^�y���d������QA��6{�pz]�E
'f#��#.�(��1�<��Qo�h�cc���Y>�(3x���s{���뵘�����lP�
��M׬��H�*����3~����
J�����
��瞏`�Y�	��\%�E]^�Y���y�
!��Y�z�/b�sA��«�@�4�`���}
��@�Őw�k�$���r,7V���a
ԧg����F�%�r�>M���V���Zv���pW��7��^h�� [...]
��"
M?��v\��w8�d�`�
��_��
b�}?��{�qf���u����
��u/�l֩����(b�өp�
���r=�b��O����6���<�pq��}yi&|I5�}dw�.(�g��<�m��m��y�W��������n�V���{��r�"�>X}`�������������5����M�xEF%�{��}��Ʈ�O�ޭ��X;��F�@W�np�:�ٖ�{�,���3�|����Q���p�κ���A[g)	�Hҏ
T��!,�
L�_��4 at Q�?����>��qɐ�:���F���3�����4�XT�Í�W��9K�Nѡ��kq�F]QY���F����{
+��
���)	$�R	�
Ċ����	2����%!�^��� �/��pI�K�D�����gJA򌳋�{��Ӝ�K�:�΃#n
g�6_�y`�D�q���K�mF�=a�[�Cs,�ݍ(C%V��cV_
�qyR�ےHG�Qh+E���
a�W7B�(>��K�[���3���1�[���&(�q(����;]zPװ��Վ�2�ZҼj)F��-/V��^�7M�X��씑�fu�:,�����2w�6
R?bY1la���\l.;V4
K!1k�M>�<����c~
�lG�V~���皿=�zƻ]U�>�G׏��bk=��z����V�iw�V�Ky�phC����
ӊ�����\=1
�TX�
'���Z̃GY�7�5s�ΐW^�4^��`�N��:9�[�	���&
{M1���`Ӂ���~g2���5����z�uV֩������}t�-uK�+;~�:nk��С
�Fa��N0RXN�ڢ���?����������3����.�]�֦� �	����?�8�h�F��Ύf��
9%�9�+`t2E����q��S�g�u�Q����t̓g�;Sq��ї����e��G-67a�~�
����*�,�FV��â %������3����`=���L�����,N��3��?�ň��Nn�OݡDvt�
+�
�b서{z�8�K�_�S5��^�yp:]F��d�}�}�5��	j��.�&�W�Egg�C��%��� ���&�ȹ�yc��O�怙��;��y~t�1��D3�n�z��sC��0�
@3�ei1r�wS
+�?ذ�?>�>����>��r<
+ӗan)vg��i���bAYuW.n�CB���(qŇ�~�&�Bf�|��&��A���MrL�5&
IoT���;�a=:���;�鮗���s������2����R}
:U6�s�A��������zv �~M9�.[�i熱������H:���ٸ�r�
�y�3-A
+i�ľr��lT��������Ng�Λ#v�QŁm�}�
{Vz��^��"��gAuǻ�Ե��k���ށ�_
�xv
�����.'~DYfh���-�ݮ���
+�Yͥ�{:X�Mf.>k#�/�g��{��3��3�vVȸ�R8�O���5t��k2-���}0��.������эיqO��_�*#�*
����lr
:W��w�8����/����/z�e��:,��Ѷһ,�{��l)P��� ���nɳ~=5���͙<9-����_�̐V�� �T0� �9����~���i�1J�N	e�L%���R^�R��:�筗��mmsy~�~���ȳO���Z+��`�	�0��e��-IK	/�� f��x�g��0�N��X,-�\0ky�-���
��ڙ�g�E����]��t;e�>fjhu�n��j!��
���;x��L/���@r@�j�OGK��
g��������9hӠ��6�*��ղ
��9L
+݉S�����:Q'Tw�g�ݳ:
_�[���>��Y	�;�B��W�b�v�٨��v�*��:�6�ѹqX
�W��F6�ƍ�=>48l�d�qh*�?�`���2�X�v42�~T����@����^�K���&<��{
�b5�@����� #��>�h��o
�_̳ƥ�w��[Q�N�K��TJ�f�^�#��ԧ+�D9�כ�+�UjS
U���T1�}��\>�yu��y\����ػ۵wPZ��&����a��K��r:
/�P��O_T������n
+z��+2�
���h��u�mu�JH��%�9

D�nW+�k�Ԫ�JoD���T[���j�ƒ�
�`�\m�g�jC
�a/y�+!j��w�{��jީ�>.
����5F�v�*:���t>�Kn�����V���o���(�En��yKbsT��gI=5��[����r���f��ճD���0��Ǒ�
+S���jz�
�f����b����Q��48[����ưz�U]a�q��ƪ���y�VS��x��G���o3�q�Jgz����B��
j���U�:�U[3K��4r��"�^�:����
�+��g�4��h��qq
�*y��9˼��
��,�pG�{AP�^An�/vB��7I���|�H����&#r[������>��F
:s^��d��h%����9�*�Ÿ�"KYmRp�P*,��
�s
+�^�d?���V5�f2��&��
}-��]q�7��`x:�xJ=
<-d��n>�P�zz��.*m��<�i)|��<
�6�͓oU������d>S�R&���L.��6���Ϲ��D��vW@�
G���=l�0���Xƶk��duf&�h�9H�b������xyĊ�(������L>���
n���͛'�/�p�(f�k��g�����2�6	�����HRr
g�J;{<Uz�sP
f��6��0n�͏�-�U&Z5B�Cd,���j���^���pu���d
��ubj
1i��B����S�k3.�lF���2�l�
+������@�Rm��B�[`D�s�,�HIfza
��8�1���%�3�<�w`E`��nE�5�G���=`v�	�i�E��,��I�����l��
�aH�sԪl�Գ��K�9���T�LUu���E�󍱔����L��+	�ֲii�,y���(�>8JM �p'�Nu@Ā@�ߐ�s�
+�޶���
m�YW����i��0`S�E��N�w
lt��eg ���f'�l
G�1 �x�jE�XGq'������+ yFq��S�� �J7�&���yp��YV�[Ӆ@ ߣwĿ�V�%�2�C���/��3J�;f���d�@�����-J2<��eŏ� ��8�_y���^�(��U@���p
��>�Q쌒H�[�gP�s
���g
�
�1�F �M��
��@�z Z;�Di��G),T�Ĺ��D!�(�k�ي.p��*�=���G	�m
+�b �a�tH�T��>��e!z��9�WI��0(��%!�*���J
݈G
&eޟ|2��Л �Z�ן<x
�Nd��i3J�*�Ӆ�uG�R?&�H;��"�O�]�z�v9B����|��O��e�cx����w��?
��g}����x���-�h�e�|;�����.�������w�WH���w&��J
�S&�����!.�b�J�JR�'[i�`��~�/�A�&�S�u{H�W�ڔ�u�5�a at eJ��F�"���2
�e�{h3L������]�
r��s�+I���{���E���=F�#��##8��!b��P1|q�� |M�3��3m�yU�
P5��l6ٛ�]��#~N�L���
+���
�
�顉G�\/b���4���∊�\^��}�����S[
���]�"n��_�p2�q@ܸ>�/y�h���B5#�[��E�啑��YC��
�N�K{U���=�j�
wGޜ*T
�R�
]^*_�i�8�}�|fP�m�\8��N�,��Q{�
�S/����Je�m��~�� 1����%A����7u�Abt���Z��'�}�K^6k���Nf���yć����w-e]W�0�;��>�j�{$֯��B�顰�� �*�7�t�e�"��W�6��5�w��[��@K/k_3��_�l�#�#��|lt�=b,'~����3u(h�����Ͻ%ȵIJ�s�@WN�I�>�?^�����“h>*��Y�Z`���o��fO�њܞ��y'zG(��SJ]��P���v��+�	���}l����rߒ���%FQ��:1Vk��
?�sy~����.�&B����s���ӑCg0&��Q+�_�i|�AOO2בC��6
��A=�v���R'���������T��R�� [...]
07�W���|��[XͶ��V
�8+�B��K�p�a��onh-�4��yj�w�FRW���:S����T�h�b#����E;溹{�#I }?�U�"�*�]j�8�~�)��
+����8
^�G����������t��E���e[��SG�@8�<#�S8�ͥl>C�2vV�#�l�W}d{����F�ͳ�4��<��
df���R���J�?�v����r�(��m/ZLۧ����8�Xj
�bi8_._l�4����(
��
lڱ
�+*�}{�w�$s�
�ukb�`nhT��8ȶU>=�Q�>�L�u�s!�N�(K}��VC��^��
vq��EAi�����	
%�Bu�{�%/Dgoj��3�I3�Ď3�ѽ̔>g9}9��O�
6rvy!�_���>ٷ�x�C�e
m5�h�x ��E�TV"v]���#�.4�$Tm!�,��-sø� ���X��ma�ܳ���0����z�"�&����i�v�i�j��H`�S
���oO����������&��\৳�}{t�y ��cqw�ׂ
�0�i�Ωs�#*Rᥭռ~��4���H���dQ�
0��sB���+U�m1���Qc�~s1E�Mu2�g籍�����.��Dn:�-}<���$�9~����F9�������;����_
a��+u�[骎��I�OןXRd8b��Q1sY8��Cc�-P�F:o�1l��r|�}.O��KO�y0�>��8縛Ѭ�
�����D�ŇE�~0��**'�JGN\��=�Y_̿�ݳ�z�'�hW\=:J]27.?7�
�.4��VE�YG-��{Nu�]Rmq�/'��;�U�N�9SG���<
�Str���q.��q~2ꌊ,;�ē$
}�h�/����e��f�mJ�
�Nn��~�CJE�C�H�~�W}�8.�%����
6!�w�X�3�a�
+#��Q�QS��N��I���m�S��7�J>w�1����6�f*�xBd\�Vs�R�P�l���
�NaȾ���ࣲ����8�dM@}}�i�u6���M�L�0���b���J������bɹT2��P�]��4TP�d��+���,��p"֤�4W
e}a���24g2�
�1_�>#!K����C�s#�7�n�Ƴ�O+�Y�'Ԟy�]z��1�
S���t4��Z��YY��#Ce����o���u�͌�
Y(f��I�0l��Ȋ��V��+{F�b=l
+�ηBn9���:
�[s��r�lLJm�{���$ȽR6�.������A���]�7�[��Ixn��_�;|]�t
+!]�>�E����;����Gvd������aYf�=4�$-���-�
L���.\�Q֏55K�u�7s����CΌ��S'��gج�>�.��A�P�� �
���[2?X��Z��{א���i�-P!�	Qj/Ӣ�~0�)�P�"R��;k�g{$&�����`�d���:�L$

E���"A�ܣ���'�Es4.5�K����p3OLV
��A�hz}��޽:J����8�~�q�
��S�a������{Z�z��Hz{Kf�܃1L������B�g�z
�����5:�h�P^o��c�Fڟ�R�ޝ���'~C�<}Q
�
+��������ܕ�����E��ؘXܺ<���[�������V��zS�:
ѝ�,���
��M��>f��5�LJo"�z8��
w�m�/���'�mU7�7&X���Gbc�0|v>(s�T��x��`bP���|��j�e/玔.�
�
�
]�U��ׅz��fI��'�

��Z
wz?Xc�_
+u��zn\��k�MPW8�R����s���E�ʼn'`c�XM����V�ky�h
�G��͡{�=)v�
+��<
��y4�v
�/u���Y0�)��U�u�k��^8ЉE\�^��7Y85�l9S?w�R=�v��Q�kbz��*�޽��	�������VW���`Օ��U�^�ˡf�{�C����Sy5#Ṱ=!��[�f���O�'��-+nE���:��J��N��SK�im
�����m�;ޱ~ٿou2���r�j���>��f�}Qƕ)�ȝ^˻e	+�&Ԩ̼�m�ql�̘{�{=���� cl�rM�1{!���k>�[y0zv����J�<R at x�e�ȣA\/V�,ur5��Xwj>Nk�cY���֮���ʇܹ��x��5?Δ�F�Zl���xHޫ"gL�">��E��I۳r�9��IM��>��mc����:�,|[�̀����l�5�b�{ߔJ��eS��|���W�gŸ�U��%�[�J���*��y�8�b�p�*y��G�/�<�+iA�d���;���"�kx�{>�$��6ٜ�<lr��A��U
�/ߍ���E�Y<�O�
��r]�]L�����f�
٘.�h���r����,���\Ở[k��ᭊ'����f1ŵĕ�Q4q�_{Y�L��೪f�Sy�9.�Ff��?�Q���p�@�p��p�5@��l�屶rF�"0�y1������>f{�
+�n3����3!Q}�	T:�+a�n,�\SG\
�n~fLe�̸��`gYxM�WJ,F�Fs�=oQ᜷Ѳ�~#�F 5q�}8�f��<���9F!%Z���]� �����_�)�B4��Y�>L�ڨ7�n�э�*��ֳ�m�
����"�^�������b�`|G]JȠgW@��R�79�
+}fKj�J�P��m �	j?! )@m��B���	 �V �0��bH������AT��ϭG
��
'�:�;�y�~����ŋyg�ޤ�U2���@�������騁��2s�� �"`Y�
%xv �UK���{�SXyP�,b�;�}<,�=�B�V��x�	u���ar���vM]q��1��5����ێ��*=B#ɹs���M��V鍑�[ ϖ1hÇ:5�(����0j�g�?Y�?�m��3�;�i�?�m�,
���h��>�6�7��ҫ��Z�
���
�9�%r`E	j����(�m/��a
E�A
p��h n�h�,~0�y�Q�V��
`>�(���# �2�Պ"�=����p{G�8
E��K�W�Q��;��@��S�B(����~��X%�(f8$��C1�.1t���E����07�+�| ^a)���s$�B�mD�H����ر?)?~�V���x?
���'�$���|�(���<��1J����8DI �X�e盃m��Q��X{�J��L/�I�02 �
 yD�)`�8�(�`Љ:�������pfO�^�U��`�] ?���}�r
�Wb�V�b�#��-m͈��_P��L�

%�N5J�]7JJ�4Jʽ5@��%��D�I�Ep!��
�|���u$�V4
�Ԩ��l�w�>w_3
�v`��`py|�`��>�^^2�N4��н��|s��u�!�8�=ٌ�9�����ĐPz�P�G���G��R��:�#Yd
��"$2��.��5���u
N�X���2��`�~����m���$^���
C�H��	1O��}|8��Ƚ.���Z���ɤ�_�p�;�0u; Nf
w���^�
�up�����,P���\S�}�x�l�)oё�H���s���Y��wI�C���
����t�?��8��3u�źp�Ҁ�X_8+OŰ;������vB����Ph���<
�z�K
O"��@�#8s̽?��#1��,B���V�=l�����8��n׃�s��q�]W�q~	
�եI��y���v
�N��aw���Ӏe���$�Gn��<-ʦ
�M�2���ʝ
�Ԣk�*e�"�����'���+Y1r��?�шM��p���jW��@���xr�S'���vy[_�Փ�ʭ���G<\�Ӷ<?��ښ�.;�U.�Y�=0��:��!bl�SU�����[��!��agں��� [...]
��b')�457��4~�Ͳ�65�P#[��'�p�����k_��;���펼'�xܚ�8��
H=�+:v�����b��l�*J�l7<K5u|���kv���:QP�,�
+˓o��<�eg��a��f
(PU��HM�t+AJ�71r�
b�?���'�Cq�yly}Y�蜘���>�lj>a�ʊ[�'Nӻ.ek��0�ym
�O�{t�6�`��PM��^/vM9|Z=�M�ƒ&zK	:��uY
H�B��ג�D��m�G��l�Y䛢�E�n��%%��8�v����f瞳
���>8�b�c0�q�i�x���[�oK����
}_��շ�9f)�CT�be����H�K|��.&^<�<���.�%�&TV(<_���\*�9us7s�����l�/�_������n��^_:x�?�r���|�e�#����j}w�J��C�}n)�l�����T�
+r�A$��bFQ��`�۽�:{�y�{��|���5�.'�C�7j���A�OB�ol7.��)7[����ܱ��?���i������ˑ�M����P��g|[�T�xj��iAx5�`���Zp��/�����/l�4�_�G�\��H]X�>z5|`8䯢Uk|����:SD�w�Y�L
QC�v�T����hA�ݭ׾NS�kL�F"M����u*
+HmV��Z�y�?`֏�s�(.���1Z�|�TE�\]E����R����I
:E�"�n_�����o=y�ͦ��J�
+4��1
t`�{M:�\��
�i������xj��q��􍭉��� ��M���K�E������m��j(���7{�����a،���I=�!I=�v��xdK�G��c߃���9��-��7a��MQ�'�8��}=�F]�x�B�rA$�m�Y(�&4�z��́�Y�E:��l4�̲qu��j��J՘�d�xhKq%�%ب뢽dG­��	���n�� ��
7���8K�l�����(�s�x-Ջ��yv�p�7��b�z͚r;(�Y;�m�%a�Q��
���r�>M�#-<�g�b�.��J�*��v�� ��,�+��Yn�
.��H�����y�������pS�Ls����I��ɏ{���Jav�G��`U�N�|HU�`~V�ɡ=!�I�n��1���X}���!�\6�4&㻢�Ȧ��g�S�{�Wj+j.7Ch#Y��Qt.��pG�9��O�(�M"�����n>bAd�� �!Y>
��
�Y_L.G������%/��v����ɶ�N�
ɏO�!9�
�������&��Pæ [...]
+>��@}T�y���2rM�荹
i
�
���c�O�L����sl2rsj�qR�pÓ}7��#s�&��ML�G^�
לMC��wRs$���*Z�]UqFi� Y���%u��PD
�T�/ۈ��(�ٙ�j�'[4E���aZ
ou(vL
+R��_��j��?�
+��ZfP��E�#>��ٺ�	�|���M����8$��[T6�Թ�򩮻���ҖlUS2�*
0�A%5b��y:��0�l�ꭘ�]��*$��FG�Q=c�$���$�ۇJx�8��cr“s�C��Q!�l(��������GO�diu'�+boZ�����iJ^��I�)� �g��Z�"�����88��0�F
?}D^F�8����L�ZM\��"��}�UE����b K5�1�8Y�)�TFGS�f�]�Ƙ\ cS6gb��S�^.�_ls��(�vRgV�hk��Ɛ�/�[>}[�B�aS���[r��Qx>O��~�|��8�iVvE��z�A�ϢK
�蘼��D�����	���
8����
+�XB�\c�ȍ��D��-�H�+f

d	]�/������r���鏻����7sц�a��V�1�|�p�	qe�%���jX�������b�N���(^���_��4�>���ڥ��YYX�\�nWG�b�0�x�
y�w�ϵفv�Ё¥�1o�_�?~��]��3�y��
;C� ug+ʂ��uB�
$w�J�[H�ݪ��䠿��].㐁�7h�8#O,�.4
l�lT��cd�9�H�d�X��*�:���r����p̵n�na�a��д?�&?&
~����'�sb^M��?
%����vY�km��
\�o�w��7��lmsz�xsc��=���=�Mb��6�@H]*]s��������r�Wx<m#�b��o'8%�r�:�ĎP
��es�N�?`s�
�M���M�g4&�����=̲��ѓ��#�[N�
ט���MN�"��~�E�u����U
�qk
��L��R�&L�(C
+��q)�B�
�`�k~�4�b�\�)�nԪF�q?,j��T�Ť��z��^�m�����(��,��ga�����Ut�%�22�Q�x����x�O��&O��]7�H���
oW�rѥv�>�c�Uk}�k���^.u�꺲SE�}6߯
市K.PN+�vyr](ej�� �ޥO�M��g�(�צ^
+J�c�$�ؓ���w�{���$_�
�GɦC�'�:�����=�Nj�5Q6qsyͯk'��W��m^��Uq�:��6�ū�/�f���
X�.�*��Ab����_
;G���.4������)O����6�>����<����7�պ��b��F0-3�fs�N��ƧE���f��k
�[���GX\,X
��1g�K�]s���s�Z!��jFY��[��c��%��ؼ |�� ��1 �R]���� ~�dϻ�'8MOr��$Y>�-|
aߢ�~w�y�kvO�Th%��Яک:P���
�.��8^ m�W7�.�ΰb�`�7��J�p�*@�.@\E +���p��� �'
��NHݞ�@x��r�
 d.��M���zxoU���<s\?I�+���
N�0�r����*6�֓;�
�/����0XĔ�^�4���qH���0vr �ؕ�v 
+���f����"�P1V�g�h��t1�4,׿��V�h�1�CӗEC�ޫ
�-���X��t�
�B�]ͽʳ|�ZT:�S�;�8Y���6���b�B���������	@�
�J�4Ѓ��|�J�匹
�Hw��f�˂Q	��|�,���we��G��ų��~�F��w
lL����Ҕ9�Ҕe6�$M9����)��3zf�!{�P	3��y�{���3��4�`�V�Xf�L*���J��Y�~�>e$�Tf�}�z�~�#�T�0}��,��8}H/}I�����8�����Y��B� ��'t�f̜�����,�2&��#
�dP�Z
���G���">"�>��b�(��9���?T���/?���_ҏR���6ɢ
��[�ܬQ[c5H_d�M��9
ԫeo�I�up,
�m�� ��8��W�_�����Q�����G��^ɪ-撊gW��cս�'�v3?��z���.<7��⸾����r����!�����3y��XC7}o��yy�ƣ�������k�&�k2-�/�
��N������E�hn�'�?���z�?J��2��Vۻ���!�^o0qJ�
朿xQ�y~�F���L��}���	��#_bW��Y

gj/���PlL2JY�dz�~�
'�؀�~ht��o�1}�#}c�R������b��΋�����-�[�^��Vmg]
3�.��yr�:�����g/
NS�q=� �u�y�/Vz�a3�7�x����.�Ͱ�%#��6Y?���\?���`�~F'{��� ��#���{�����3�{�y4^�����"�I��\������=��>yZC>^��z،��~?��?�
ʹ�]�
���\n�y�
��t�
Ac�a��2�xg���E%l�-"���"�qq�x��4�2`畫��+������l� [...]
+,<�=�d7�jq�6���h�v�nD�k���l!ʫBY1��f�.K��_(��"ھ��H�x�y/�?`�	m6Ȼ^�Y' ���/ӗ���x�o�������r�h�,�:ㇺ&ׁ��O\r�FQnoKt�!Qt�
+���\.�j�X�k�h�/��&Tk�-�՝�:
:��ݞ�:L�v����i �黩ܧ�]h� /ri�Ǜ����^o\�Ds\�i����ox��Y��%��)j|�����Q�Pjם��:`}����h�j���Aw���q6�I0�����,R�Ls	���Ͳ��r���J���7�=��ӑ�vw#���mB��4ּ���p��=�
k_�?^��v����J -�nR��~��v��:?�&e��J����0��:3��2��O��~���j�Ǔ�	�����.?��tyh�Ehp�td��=�K�U����u}
+]���;3�����-'�"V���_���7ƻ�?�sa�4�]��6�d��$��\V�vy~.l�q~�M��J�K�Uo�3��Ȫ|g�C��/7���
�x�HI\�%�]�QA��;M����-�1�_� �_Б�+��V��z��B��HS���YdE�ܓ���	
<���S7ރ��	���,$��Z=�7F��tJ��^���j�YGX�т�=�Wv��;��Aٍ��[2��z�����cܦ����
�* a:\S4n
�6�m�?�a^DL'����F"~��$�7����[�^��X�� �
��}s��ը
]i�xσú�c�� �-w�a_k�|ˬ�a益7�����&w7���[�PE'�HK
r�1��Kͩʟo�
+��
ڕ%lj_�/�����~�ГS٩�[ʉ�e�Rs�t��8��J	 �ټ3
$��Q9Q-���)'���Q� i��b��6���N��?�'sm��S9�X�L���˩�s�Pd*%�M�Vd��RvU
���
I���������q`����÷��]��e����ew*^��q
��I�7�3�ގ�V���k�8��߂`$���n�Խ�il��ը��jq��*�1��m���u��Hf�늧�J�^���r'x�.xE�����|�����k�w���RT��4�
+��������s�>
�bqvU�:�G__��޹Qi�ޥ����贝Hgl5U�}KQtϓ�
ۗeo!���A<EQ"�_qA��R�O"������i��:^��[���I�m0_~Q�\��y��c�޻*��IM������>xV,��Y��Xמ�}���k��h�2#U	�YE�pR�b;�֥���%؅�����p�э�:��9�?��
� $;�s�
ӈ-)�r�#�rK�fC�I}!���`f�|��/�' ̦��k�;r��(�w�`��"�����1	P;DC-c4"�
R�c��Z��*vk7S���
>Oր%7JGX���g
;��H� eJ��J��(��n���n��SL�r'�
��4\��uɛ��&=1=
+�J�,2׻H�֘@������J��Gњ@U6˯�ԯ�p�-�aX�e�)�u6DŽᘝ�����H!��I�D�>|�2f;�j�O
�‡j�H'���>eD���p���'
�S[
Sy���vG��N%h�g�_k�P_*�-q�ͱ�����n4n
+Ii��inLq����
K[*;
�YN�S�X3Z�;j?^��cp�֣�&.cG �JuD U(% i.#_p�25���țؿ�ŵ�X��:�fFޘ���������a���W ��y#zp�����Z�q����8� X�ʳ�ʐ���M��e<�W`��IR�ĕ5.-�? >*�`,eI��F��;�[��e��
����	[l?r��D�T��ԝ
��-*[��=���םdց0�;��ëA̅�8�
+�Z�-�M�Q�.F�.M���`������ޥ<�Hw�=�ю�Fg�}�FX6�6�W$���Ht�h�Z������O'´k�j͐Ɲ�����-*��۾��s��0^�!vj!�~�7LM�
�#z�S-��&���w��}����2�
v6MrC,��(�`DJiw}
+�]թ���}`u�y����z��[\�/Xg7>�,�ʶ7�%}��2
Ǜ�oe��[.����dX��f���s�mZ�y�#�1��Z/w�">I�&N�
^K�3{)�!_Ld�޽�xݺP�vL�y�O@����� �kq�k�ke�r��r��r�-�r��c>|ڽ�~�������F�����5P
)�;[-.֤L|
�g? V��+tQ
^ђ�� Y�\A�=��� 
+�6l��ĝ�ځs�m?�~�F��:�n��9)A/:�AS``@�\�@�H�B@)š���6?g/�`��fW�?9�n�!�5Ug
��ɽ�**�|!MhK����0u�v���/�j�v+�[�#�ְ��[X<��u��<� z�(
+8w��E���΍%'r�ޭodI�kUxQ�rh���gX�&����1Uǜ3��+G��9�JX����wS�����V�vGTv�Q��z#�3|
�b5�6��ª�r熂�^�J��i	��
��5_�
���嚈_=��]�v˟�5��?`�פ
+J��
+�)�+(����@�ˉAcL��8�1��8Qzd%b�=4@ĉf��-�+���<�R��;��]��F�4�N������V0�6)?[dT
_�C�t�����JA�����-�_��u�8o_�"��Ep���K<�A�%��t����ŕ&��%~�C���ݪ�3,
�$�
4(ix,w8�[�Q^\�c
H:��� 3V5j�Ҥ�ʪW��{�(��na����Y�������k����0���i]C3�r�S{x�����ʿ�5� hE�����&�3�DƋ��+��~�˸�YK��,�/n���������\4�
+�Զ~(��J�_LJ
Y��un��c[��A X�3���������`�Z��S
�.��qZص����� v͌��
�f�J �g�ʀ���-��3�T����������–�츛�	E��X�K�U�����	XCj�܅
zٻ�9 p#� �� �yw�{�
�� �X �u <Z�Y2 ����}�	�e�m�x���=�"@��/p�ќ�����h����B�J��
Q
�Ȣ��G� $�����2���by���	3��&{�.8�5��tK��U���#@�K	@�� �u�[O^v� ��x������z�7@��@-�
@��M� �����de
�_Ԟ;��p2`���Eq���
�(��
Kk]
?����o�A������`���z��� �,�|�}(TO J?�*��U[�
��<��O�?�C�v��[O�V޿{#Tr��0����� }�N�={i�6�4ed=c�)�]f,niʵ��q��V�VG�ߕP���B�.�e�4�
A�W�CJm���Vh��~��[W�oE�����i�/x���3&vc9����o%�hd�WgO��޿��+�������R����Q����)��ϼYi>"H&
���KV]&H*Cg�[��o��t����^���H�[�M�
i���[�u.��Y��05#��gaJ�o����u𰓅W`~�����ޓ�r�#j���fɪ�[$�e���Fǻ�l���(���w�r=�=�ڎ>��*	�
��/Ή&G?�yT���7�Oű���1���)�+�
�+:f!K��^ʓ4��տu�Z>�
R��n�N��k�}�-�����e�73m���4�6�9�+O�.Ȓ���X��?��������#{
q��Ը8)9��p�[v�����_����*��a~�������Yȭ,�㥯�
+җ�ۥ�_�z�L\n=�^;�|��D�ƙ����w>��s�0G�ȋ�B	1bQE��l��ݞ���� Yn�����xc3 ��z���굼�i�b���F���q�E���,��~d5�]����u�e��G�x���˵ېw籆�O

=��{�sXO
����ʻxqn�Z�[g�h|s{�
F���㍚k����0
+W9�sZ����(�"�uyn�>Rx4������?� �l� В�C3���Rvk����!kk'�ް�vGm0�v_�b������ˊ͒��<
r?��K����\T��N�
rDT�1an.y=<U
/l{���%�Y�����P��,;��U ����
��`��44�+�n�9E]��h]��=S�]�-?;[�6��>�*��s�,NE����=�����v��m�7��Q;��>�N_p
���6>9
d>4~�ɢx
Mijz+	X%	ƪD��^P�E�f����5��\�cߺ�@8��>
������ŝ� ��\���Ũ5�>����&���̆SƘ~x��>���'�w8�׏S2V' 0�}��Q����cA��-i$
�͡7�z��<kwRq��[�N���p�
�ab��S�~
cڙ���>K���]��S�-�2�����vO�r01n�i�sc&��Mo6��h8g9)����y>p���8@�B�
���}ޫ/�»E����Sž�g�Le�_��~��6,-�cV]H�/H�P<t�H�=�]G����	�yM�N��֪Y����3o���
���4�/����n�b�͆ޮ⍄���J�q>����͙
ɵ�]ܶ�}��%G��x[zkR�
�}�=@&�.Nc�2m
+��
P2�&�Փ�?t��Ĝ����i��A��E�Y)R	1��tJ�|�
+Oㆨ&C�����Bٌo��N�vY{�f	�%����ٖ���^
�~v̅i�ݽq�&7���>��5��f:��N�^335�7>*���s�KK-��Y��{��n7�qm��M e��
�p�� ��ߓM�q
YDn3����<�/%e��͊�58��f7az-�$��}Ќ�`e�c���:�^M��5Yh
��հ_��+WT$t�VJϼ ��p$ת�S�uɦ������&o��fEi
~�D�
nZ��ږ�����=:^���n�C��t�o�Z$�zGG��Siw[��A�ڻ�s���T��x�t�yS�Vr�g��=|�IM���DɮJ�5���Eo��pQr�p����Q�˴��wC8��B��d5iM��/���5D��eە�]~���i�����,I(f-6�>Z��[Z�|��b~A)����t����ڒL!
���k.�s���
+��
+?T^8�wG=�
O���������4�4~�VG�ù�*[��]�Ѕ�f�N��u}T�1��J�ɖ߂L%4��Ȇ1��h��Q#�(�E�h(��ڑ��J杤��b�f�Ppo��g
���I����+�A��O�˲+Xc�j}��ؼ+4X�bfl���
p��)�F
��!&�&�W�����ܰ˜��ԛ�( �:݊#-��j�\x(�<���\Y���h�϶p]�q��X~Ľ%.]�=���F�L�l>
\��z��l�+�����m״��9Z!�uz5�j���/�	�J��95��b����Z��Wp$;�:Cq���p�.�F�(kk#���*���;�c�m
+�3��j� ���S\6�X.��L�\<�D�sZ	����A��/r0Ր
��+ʜ���j(I�K�K�K�p��mm��v�Z=1SA�#�FW��Ssvͯ�
�Z�
�k�;
KF��tcᶓ
��(�x�m���n6�В;,�rIf�y�t�Y���ҥv���œ��`�E��y�pX�#���4�q�_�ï��a��ʗ�/���,���:w|��ڝ�p���y,��P�y�֓
瑼/
M�Ҝ��5��c���r��1�曝7�"
ZT��6x���)���X�2βL
kf�l��pN�-~ﶞ86�W�'��������}}b�X�����_6��/�o�)�������膣��B�k���,�'�%t
���l.��;�[�O����?�ۜ�<���*�?!
+�+�w ���	�� �;��
�+��������h
ؓ�|�x�|���܃����S�RB�]�e��t9�.Ɖ����yd�8m��|�`����/�@a�>��(��Ko�⌮��
��7�4
�I[8����(p��#>!�t��1(f�>:��_�
D���_����VN��٪ܥ[	
+��R�[q��
+f�3�Nz�%5
�۸[
+a�r�2����.�[x��
8��)�#Zd'
��xX�~��
�7=�M1��B�����ىE��U�*����8$�4�
��B�j���h�Zg�����3
[g(.�a�!���̇�4�&����-���qۘ ����A�ܛ'�
E׬��
��02prR00f[u�y�P���Pp|�z2���o�<k��
G׻�����
�>j��n
��۪�]c�~�����I�C�N�M��ƷE	��?f�a-�
��r��x<aݲ�¬Kp�
��k&��oi3�L܏,��-�n}:�uz�pЁ��}���
��[^wWj��
'��DI ���o
v~7g"�o����!��p�x8����7���(ʃ����/��:TƎ�(ޜ�Y�
����!�U�nQLNԃ]%�=yk]~������b�fIgY��hALA�ъ�a�o��ǭ	]���JC��v�
>���4�z��
k���kMH{U-;����D����C~��r��R�,���$އ���Fg[j��G)�.�X�?E�f�A[�+ƃ�1��)�v�Fs�
��>�D�f���
���s�V�ZsW���k�=
��w���V�S��-���*�n^�I6��zqVE�";'��� �Aԭ�Q�
iU���\��Z��2X@P��/
�Ym
��Db���ȶ֏��B6#E2��F��vʖ��L,r��^䁢
.��4��%ps�b��VZ��V�hA�u�;L~g��y����Y�sVv��Y
��YM摋�{5��k
��4W6_3�V�E�+Ru����\�$j���j�6�}B�0*
�Z��Z�gIV���U ��Vʛ�Hϵ��=���3����%c ��C@>{�Z�f:L�VG ��� ��w �˵0;H�?�*��{��G�6l��p��f��S�w%�6��6F���2��~s<(OF�(�Y��U���j�D �t-c��8
�wA=h�3w�q��M( piXN��^�2f[ k(y k����`��
`�
`e����_��]�g-���
�)S6�Y���(�ꮔ���~l��iY�b7��pu�����{ ֊4 ���E
�����y�������4�V�$D�A(�q�!0�8^��e<� !E��G-��M-c��b��� {���K�M�¼Y
��N������"�**����|�VG90�kzqL� <�g�
ܧ Q} ��B�P����i
��
 �� ɰ�}��I���T�u(�Y�ւ(j4(Z��Z�el��:X-�"_�N���R#�Qw%c�Zm��ݻ�k���c�m�YJ
Lי�����o=�o��o���W�O��w��P\��ۢu�����n�8��h����������o3{��=��%��4u�l�2.�R�E&pҔmF�K�r�\�e܈4�Q��]	��m� ��]h��S��
�Զ���
ս�j�����l
`h�Q��0iJ_���g10�i���3��Ռ5�WbWۊZ�og\�Yd�y��uJ���?�WgU�����#j
ʏb��J��&��sp����${;�����?d����=�o4���d)�����(=�d�T#���p�\g�����pJ-B�9+��g^���p8��
+���
��[��ZR��VuV7��'��^�����w�
����v�Oi/?ͨ�N>�	N��:������/��i��%�5�L��RKS;��!��������3�2�d����Ö���ܸA�}�d�r�d��\�H�r
��js�D
���
���{\��Q���2Bi_��ou�T�vк�o��[ݶw�H�۲���%�5*����L����f!kb������ ����F����
��D8�O�rH~���ؾ��1.��u]>��u}�%Cxw`�
��]�2����7���[���x�w��J��rF��e~���c
���/߽��M1}o<�V�~]�Kd
<粐�ҳ`��{����$
���V�ő%
�ۨ��zjy�����������/k��=V���^�}���]����Tk-ı�G�����ڻ7�j8o
�w���
Xp{,�`0
w��"DLtI?�lj�i=�_�B�E���el�^
u
+���)�lebݞ�
+���Ey���{�\�2X�墿���<Z��F �ܘ���X�_���
+�
4�ͺ��

�`sV�N��t��dn~��{�r��L�q�7����T��$�;�%��?�|Z���{ƒ��o/��sM�@q)�8�d���iY�־)37,��`��iZ)L��ט�����;�yi����qe,?�і�Q}s���0��O޻n���P�C�z�M
��/�_h?`��&����f����P{�_��l����T���.<g�e�Ȼ9�9�/ 5v"�Z�XYw�Ѯ�9#}Ϗ�1�Ά�m,���0�q֓���y�[s�Uu^���Lqof�j�i�~��ڵ��+�~)�+_ʿ<���\��
+�lRv^Z� ]ԒY<�o�"����8}ݓ_xu_���-�
���V(�g)�޽"

�k�;�M�y�����ɱǥ�G�CY.'}i#�M}شj�;�ۓ���*��8�ܲ�K��Z��mM�_cQ�����<c�Z�[�`Β=
�N�>��� ��lj{
 
���-��|�>�b�؂:#��r?��(�-�^V�suz���Ǵ�0�4W��4~[ғ"��hZڝ�4*�?ԏH���*���T�����7�ׄ�4�X��NC�O�>���p��Q���a�p��nW�O��{�,
*4{���c�Y��~ãJ��̪�N`[K���eo��E���*ר�����Jy5�,d����b\
+r�����Up�r��G�w5��
_�s�fzN6�s<��`�=ʶ�̦���K
Y;��{�#����
����)5t"P��4o`YV�����ĕE�ѕ�0u�u�1��jc/�{�)5�]E�	�� ���
�
g]�����8���yf��ظa
37i̞�
��s
���Z�6s�
l��g��31;������Y'��Sc�G@
�������R)�6��
�Q��|R�A�D1�=�⥱p^�WB�r��
	�Xs�r�t6�
��{�� 7���_^ُ��/��J�
5E�6d6�;L��ɖ�^�+2>���7�[���H+k����a0�rLw��vV����
���M�$5�BM��rK�fZ���.��[s��Rc�{��l�Ǒc��N��e�|���
�3���
��/�����%�%6*ya��Td�]�i�������sr�65� p�3��QӘ��e}
�c�|�,��u��L�~���)\�$' ���Ŵ���z��hm����b�bs���܎�M/�`��ɝN�?�
]�
+/Z����=��ь[j���6�U��F�Qy��:ۊ�D��q�tJ`E6ꚬM(O�8*{߅�܍�I�����&�Q�d?]���-������c�
b���
S��fCi�֓<�&
�PWeҌ�5yhB�/���'�1
��Bf4�4';�+������P5.�Ƹ�iL�ʊ�3ҁ<Ȣ]?Y�'#~��d�����tbg
�`�s��D�Rd�+�N+U�CWv+�қ�J
lh at B7-�'��=!�)U!گ��_��h��ό���@h�Q����~�9��ty0ފgqW�V�U_j\ r���f0�.𣩘�b�?�
 E�٧5ݒ�)a��J�o�J�J;U���m���Ĺ2��w�qoY��<�`�T�F�
��[���Y���Ǘl�
���u�}���D��˧9�t�������1�{�����zx1D�5cx�
�l�[�a�)��^ނ�
�
e��3ո����>�;
	?K¡~���K�>�
+�:��3
+�Ydz�3$T�+
+�{��*�_�[nM�^�
�kz

��h��7�B6��>s7�|e#�E�/`�cycM��똣k�N��,!��F@�<zM\�ޑ莽;~'���"6ɟ�(!hPF94NJـE~wY.
~����e��1���[:�����L� 
d�L>�A�ug%��վa�>#�[�Tj��'�i�R�O�(ⲑ䬏!u�‡��ljW�=��
��,�O]OQ���<��!��nw��խ���ќ޸����ms$|�YD�՝����؆:�{��_~���|�H�Tlt%>
��|�|4[M�����̌�htU)�: p�~'0*���L��(W�=$:"�RLoqw5-ݻ�\�W�vΗ;���{ʔh�v7�e�����
�v�)�ܷ-(I�C(��1�,�����?~�O7k��q�[�ΣVј�[i6���� �5�g��� hȠ\ ]��ή?;F���4n�
�̼m�ֶ�
<�#,�<0�uk�4�b�u+����^7�g���?�<3�<"
|޹�C�
�!(�����&Ԁ�}0{w,@���U֖�;�.�m��iF��g��u�X��<��Y�eD�&�`A����8ocp�dI���g�Uc��W�^�֗1��e+�k�+��i��Q�?�fu����~��W��t�*s����i�
>CƕV[�ߺ<`#�e�\/S�/�1�ݐyY��Ҷ�
��(A6^Wl��W;[���}�5}�Oj
A��qq~��V��X��v�b��F�c���
ƌ2:]�J���FɣV"�����{��
+�]�G�Q"`$gPQ1� (&�	���ўs������Aۖ�P<5���&*�5��5���?��_�J�򍧶������
ըQ�L���r�����)���
ݩlL�����
��r�M���#�>L���"QE�}���:����[��da����I��(<�e.�+��Az�
i#�L��t&�t�����C�NF_��쑬}��鮞�R�l��nuܠW8����B��{�t;͘�
'��Y4:�������V�F�žM��X�$h=�*�Y�U�"ro�vK�O��D�`�V
��r	n�I�4%-�}����N�#@C�	P���\$�$�%�����S�1�
B�&��ޞٕ�)��^���͜
�et��2<3Q>�'6
8!u0����_��l��y	�0#��'��;���Q���tܷ���i��	0}# �U�ls	��/�E�Um=]S�7U���	�R�\�"�l����N8J�ʏM9Ǩ�&Z�B������
Xo( vz,6���i-��|'A .M- W [...]
�F��E�>����(T��
*>��7۬6Oċ�_�r�3�62����Z�k)����	Nmp/����fM�S�xY �r���?����w ��,��W	3���<�atB�"�p�L ��V �u� �b��03+Z��0��c�&U(J���V1�
v�&e���#����.�NҚ���'
�� ��x@�
�?:�W��c3 �:; v� ��7_�O�$�����t��� ҉���ε�V@ rJf�
a�/
���ڱEJ��s�\5E�G�R���uf�=����Cd0��_=�����m+>��?�me��#��s��[�dn�r�+�����C�;k���7A4�"������
�=	_�O�(�q�&Ʊ	�ůu��ı
+���]
k���!�
�zN���~���<��V�$X���߀����h��� �l?�&�=����V�����.��֏�5~����G��̐�lEY�[�u�>��:�����G�8�����h��
X�q G�X�Ǔ�8����C
9��6ٲU7���>�6
^粓�${�'��
���7|�����3t��)��F�H�'mPv|�B�c��:#
�*8��_L�1���b�{X��;�֕�q��[�۩_�N�:����s�
�glf��~ܜ�8�
���憍䈫ƴ�;���z����o���ysJ���c
�Ť�f�\B>�}��#�s��m�m��5u�^Z���
I��鬮�'6�aG�QQ\�q?p$ow�a�G����|�5w
���6�g�N��ud��5�~VnR
,oV��
�R��pf��_KJv*D�O���q4ƾG�ƿ��^^W�s�M���m���
�Eq|x7��d��n�
��sxܴS��:*��5��Vnn�,o�Q~)
��"�����^չ��|��B��
�
�5�	�������!1-�����W�}޲IC�1'��b��LN�{�伭tW[��Vٝqe�M��.��kjvk,o�u{���B>.���Y�搷g�x�
+J����yj&�}����	�)��6���#�B����u
���
+���A�B%('�����5������:1��J����~:���� m�h[�ﮫ��/E����
bViֹ�6h*Ss\/O��ncBtz��}껣�:��#.�M���s=O�(��{ B==��nq�>��~U

�/��A^s4NyX#H��C�Μ�Q��3�����|m[�OB�����5�B��g0��f�^4�웏IDZ�1S�
+#���C�s�`{� U�V�fn�����g�m�_Q����`K���w�EmQ���'=�����l{Ս���+7oO���b{t��(�
�bB�0+7���.�X�~����f��޴yk��lʘvc@�q���fr��봝�
U�p'`z�-z��V]=έ~k:~!�tc_v姱����������U�Zg��L:9N��;�h%��Ek�B�1�wq[?-�8�U�ͩs@Ӟw[De3�
��Q:C�v������x�b�����͹����#�
�K�
�;ikQ��f4�Xh/��ɝ%/��ܠ�m7���]\�׭������4�b�o2��o�Z�}�
O��~л�.�mY9dnij�n7�Y�,��7��Gwl���[�����;v\>w�w���̞l�ޚ=r���:y
����m
H
o���4Ol]j2~G7{Ͼi�ã�@��jk���X�꥓H$c���wj��iU��Ř[��'àR�/N�7�f�/����"�o#PK���k�EZh�^��wGY��1fwV
&h�T~޲�zR�7O���2���y�x�^�!+^�>��躪o��t~�k�����90��lY]Źk�P�e+��V��nrX����r$z�VR�F��ZZ�L1�[4�J�{�)�w~GXM�;��]
Hzgus�6^oԛg�q�[m:j����!?����>�k�vz�*0�2��u�X]�Br�T
{U��I˨�C�ls�I�N���[}�u�Z�����U�4?��ٕ/-���0���Q�������wUFS�4��r՗ֲKY��Ho(ܭY�
�W
���X܅����}�
�ϕ=T�Wڡ
�G�E�t=(�|��\Ҵ;��4��
ԧ�٪J�|���}jK`i�҄:����� m�ѳ�ϗ�ia��]�+*���߻���sQsڝ�I7����OҦR�$ձ��۝j
��}}�TJb-�]���/��s���ݽ\Jc"�>&��r���M�(�8���h�TK���I�H%]\y9k��[%�
�>��m�w}�
�Ys�ʏe�N�9��P��agf5��ۼV�z}2�h��\�j���*$�6�I��{��y�2����R}��N-퓚��gir��%��X�=D^��튼|��r^gg�[]�f��$�۴$�!�	��/��������1!����j��]ώ��ʖ5��Ӣk���\��~��
�	[�^z�����6�.[��<�jiJS�9-�.X*s�8(F�rW2�^Jnd&Y9�z2R�Hh�w;�%��"�n��Ӥ��2�����e.8t-�Bb�K���)���a�P��#�~�O���Yg٦�k@��^mՏD��U)m`�Yu�򪚺W륲Ա�����cJ���
���'�"�
�%
n:"Z����]����o����x�
�]���G���~�
�}����E��QaC}��k�����J�H�lm\k��"�_[�^��R���b)�VT	�\%%[���
k���J�g5��a7��r#���I8�A,�󷮞�c�p�\�'?�>�^����"�V
�Y
�Nر>Y�7��r�]����e
��!
O�o.���C��4%��/�w䓩R
+�A�3	7.S'��#U��SC���-��y_p��T�ʝG&/֖w�{A�����q��f/
&��<������@�2S�ҋw>�'��A��!��'j���B���I�N�k�'���om�T/T;=�ОѓWꐗ��P� K
+��*��f����y���qn(��\	�g
��;v��^��a�f��!ˠ���|�Bm{�j*ڊ’�����܇��*ޙ���S����9}'�e�Fպi�P�?Zީ�k XqTaa��N�(c�Q!y�sܫ���R��q)�X},�YXkX̼8�3��i�d,xM����λzL5�Ba����7�'��%
�� ���_텂_�^���s���?t�/��܀��h{B��;�{��7�By_[[�IY8X풱͕�3�M�Ȝ��c�b�^�j$�h�%�@De�5���RA倴v�9I�{�Lf��~c=
�k	��&��a����1V��X�G�h��72�1�1��[��S
�ק*�v/ͧ�n�#�p�S
Ȟ-.��+â�0CF�;J�/��zE��M�o�]��Ů��b��a�<>Ɣ��Ā������R!_��<���_����U�ϙ���t�����<��ʳ|M7~4��݆gڙ��D}�LR�I|�]�w�c��\B5�Y�xh���R����+Ke��bRa��~���{���sF~�V:	�~>o���Cv����a�"��\��^�%{^=Ӎ� ��#z-up����
�f�C�_t]|֏̆��c��NJD�*JYs*��A!��7Z'=Anr
��d�m����#�o��tֺ>2Y��`��ȳ�v9�����B�1@���@b?:#�DC��S�{LU�17���t�� ���.ׁ�a£��������������
oYT�l�%2W/tR�r����:��E�g=��y�%l�\��
u�g�U>�<s��F9X��~�x8
K�],=
:f��,�t&��@˩���H�6�\!��Ltʱ�gk��ĹZ�%�Ħ6
`���Re�WT�i����U��<`
u*�t�3s
�g�4Y����x��^�e��
C^;&
�k�
��
+��Qy at UU2�@Lp-��ۀ�f���:A� T�H>W�x �h8�2�-��k����3@�!�z��+*[�����'�a��'�y��팶\��G�n���e/����}���(Q�S{��xPLp��x at o��woz
@_����0��
0��N���6t��XЏ��q?���Y�i��:�L`$c����'*ۋ�b��]��ꎎ|���w�P�^�{�!:�I�z�ȁ������,ҕ,u���`E����V\��xؾq����c �ɇ������S��Y6�)� �%�	z��C�5�4���$�<��\	�0�?/
1]��
fҨ��C�3�Ҩ�s#ԡV�P~�d.uW Ǣ*�Ԣ���1�-,��!poaxj����]�-�=�/?�%�H��$ 0U,�S�Q9����}���/��>����錤#���y�09���p
a�T�����[|5j~��_p����~�
�
+�61U� ����` ��%$�ԁ�z@��v@�NQ 9��=�6R��&���͍��T�y�Q�)T��{�����6�]��st<�=8�M�ಿ5�����j�u�~��eu�߾ۯt�OG=y_��\<"@nj$��H(���;	�'�O����l���	��Wu��U?��������!�����~}���}�H%x�����?A�x���N�E���_�m�N�X^嫏qa9z@��������������UBO��|�����~P[+��^�B~�7�!�MF���h�t��
��Z��6��C]��2��=,��;�	W�
n��]�

]
}���Yわ����.���&��@��ZW�(�}�6��V����L�Ƃ����ZW;�8���c����0����e�sm\N�e�_K�V���#%U?S�T�t�1�����|��4���:����aL���N�=ҿ�w
9�첣��5�~�P;��)BI�j"�4��N����ٛ��q�^�@�|3��uM��K�.���?�ذp?
+K�y:�[��A�r�}H�=��1۵t緅�S��ὼ�3hs�����6gK�Tx'c�\ȷ[����b(��?[Q����4���Z�mW�K�Z��TP�7�^��l�yP���n��m!8
6��0YS�yR����|�����RدN��\��og����3<
�8?CFfÂ45Q�>�կ�	��^�6qB�6�ʍ��5�����f���i��D?G?i�"�7c������tx׽�
�k`���蚚����E�_�_J�Y�o�3d�7C��L��ޙf����9��Q�2S��f���
�
"

+��.�>9x��>Р�h �بV�{���o}dE]�!~A8��(f�����>���	*�����4
.�\)����o|V���0;�^�]I��:���m�D}⃸Ɂ�@��{���m�CMv����������*��̻�ۏ�
a�,�Hs�޴�?�s�G��k�?�)��_[�t&z���v{m�V��.^8c/ 7�
/nOv����-
�ud
)�:�pȫ?���>�*��z���+���1^��	�����ȼ]s�-��2x�;=�=�>R¾۟��
E0��}��i�7���dۙ��m���n���E�ID���>�<~�2�mf5{8��^^g|�m}t9�`^���{�
+�yM�{�8
��qw�����y�;��LWz�0{�鴝��EkZ
�-�tlu
.����l�6o7��]�D�՚*���T �̳�X��y_\���:�Q)�|��u���̈́1���9�:�F��Q'Eo;�=�O��q�ΰ�
���
gȅ���B|��1�ҽ���m�-��k9�

�f\�&��+�y[�L~��4��?
"_W��^m�j�k�ʘ��5m������j��Ɍ�sÒ��3#n��}f4�
b��?7�{�FL7^ἭUp�B����e�]�[�V��̛���6/����<��4�����k��
@���.Pu0.�5�8����1��{�.'
���M��y"�J3�g`��/"}�#Wr[��6����M���b������u=�_*�Y�>�.>j|�n���
4���mH�]P��a=%��5}���`�p1�!
WW(U��v��e�L�y}k�CENF|e
���䉉�s��l����
'�����9��
��0�+*��s�/n��
�_8]-��;�[6x�sE��DC:~���R+Dۘw9��\���(���va�*x�ܕ�\��q��
ODg�
��@MҼɺ��8h�V�
+�ު^)��h���������.��8�0���Ը_�nA���r��kѳ�_iE��i��,[��zј�:S]��R�a]��[�V�z/]��m���O�[��Ԗ�������j��ު|��Kc�Ζ��VQBs�U*�P���%/��&/�3_^
�#�VZ�>XūW>�$��䅷_Q٣��ܝ�c�Ӵx��M�L
z�pum�2�6w�˶����:�i�}���$�V�S�UV� �NKZ��*��M����]�8%T^ܺ�\�華�(�ї��z*��C��,�R/Ao�x'�b9�
�SF�S�22�S%��f>��a෭�To<!kԮ$\>�-XwWFN�w�d��OGTAi����VJ�O
�=\�fy��3����M����)%�dQ�0]I$n�%
��X�V
�����R����� ~��*:�O�Y;5���I伛�&�~�՘F}J\HT�^lJ

+1\�ԑb)��X��ˊ��ղ��
��m���|	���9&�#l%�4	�K�%t'�<E��-&
��rC��D'����[\��	>p�C���<�o��2iB���~x
49:�c���A�7}No�
��˧�����Y��R2|���򂐚㈗0
R�Ρ`��%���p��{���a�_ux����=�A���W�}��*;��I�Ǫ�}`SG�`S+���0`S��ϖ^����#�Ѡ~[o�=�=<u+�æCtÑ�Jm�Я�7~eJp4�����5�-�,&���w��2
�ʼgB&/q�{��>7�'�~Y�n���ueUM���~D1e+_f���Ƅ��ƴ����2i���?h[
=�
�xz
+�ܰ)�_�{(�.v]�n�L>90I�*�I�����=�Ek
ł>#�
/8"�
n�ɾ���ʢƎ�[�UWY��
u�3�[c� ��D/$�ٕAP��I�
+{�K�:�%ٖ�٦w5r�5|rWW��x�l.��Eػ
�39.o֖z
Z�N�UG��>�☲:�x\.��7
�7NɻOv��YM��p�f�J��4�����oҵ�ڡsx
P�'���%#"����$*H�8��B�N��/l/�W��
+��î��������x�c���Fz�����G�Ҷ3)��Z�Pr�h��œ�qr�����2����KEtn�����F�T��ɽ
T�C5��h
�8�}����dwx�&�q��尾G��$�[��S
+���*�\�8tw���\���:���;
_Q��%.�����N�m�?�L�6��]�����%F�e���Na��B��KLtO/�Hn�y��U)�K�D��-u�a��؀����Ն
�
VENFsSCC
+�l��M��7��(����|�/卌�䫯v�S���I�
�jT�c�6g�����(
���f���n�q�ds:Ͻm$G��ۋp�3&��kq�l>��p��U!,d�By���ݬ�ⲓ7^��[��,gB�d�S�vF!��)62���A^~�
�R�FQ+�����b�����
�ߜ�N?ӡ�h���Zkb�uYJI�Rn�½S����("̥�g�y-�u�3�k�`�8�WT4��%&S6sԯ�L'���.�h�N.w[��՞H_�c�����sT��z:�C
�!6i�O�� ���ػ;>��(7���l�N�� +(�b�*3��5؆ҩ<n�)�Z��y��]-�5�-vD=npB��
�3�7"g�
<2
x�� �ő�܆S=�����l��/�4���P&N+���ک���J5
+r1�(��J�P�
��7L��n]'�6�M
���V����FKA�m3늮�����2�
+�
�
�[����^�gC9�x��n%�*2n��1�, ��	V $l�`r�,��P�
z�cl Q�?Y�D��H��~?_8�h�Y�H�b�Y�7�T�
�o��:�,E���KY�/_��ˈ����z���H�n���y������V�a�$���
�, W-��	ȵ�'8� ���܂�#S?�kX�r�?��� i纀�����z��;�8�4�k��r��.����
���(���r���82���k���g&
�y���t:�N �4��Ň
h����[�.������Vr ��t�\���$�< �,@3�>�
�1������#*_��WT�f�l,3�ˁG��r�J����������J8���4S���F����Fr���
+`�a9���Q���N�%�`�Xk%�/ �l ���X�|�^��,��0ds�^��E}��i���7>4�{�V�)6C�N�ؘ���P�FK)rZ�����;
`�3���d+ף����*��v
pj����[;k����U�
+x5��q��\� �
U�u'��{���� (��ʪX�*��!-_�~��
+�56�)A���,4��j���M�
+��GE���-��
�j�G,���= �1�����	�*qua>�
k�ċ0�5uR�A�p��T
7@��0�VL�m�߬�%uQ&�ʓ!��	�W�,�̇>�F�t�Κ�[ժ�\�����~��!�c�������># �jO �Y 7m�[�
+�	�R�<�R��@�k_��w����V\%�Jd��S��DЏ��ܤ8.�����Ǿ����`g��m�����7
J�ev�u�6�
�8@
��]����
�����!qY�ʴ_S�篩�+�
�
5�>��װ��A��z,�����#�_��'�V}��6����r���w��>ƙg�����Ŝu/���
�(��8i�[�i����{����~��O�lC����n�܌5�M����~�b�B�W
�UB�ȴJ�e�C�[	-A��u�o���~�Q�t/o��͈����F\v�����8G�����!�ܴQ:�3�r�3N#�^'�w��7r� u_�=��]vx�����߬���i��:�bN�^��' �W����_�B�C���
1��혵k�q�
��ӹ�N�>b.� W�
Ƙv<@�v�#���Qڴ�
���J��:�ab�n����yu���B�̼���Y���Y%ű3dJ�ᢌ2a
~���6��f������
ޛ%���y{HW?8,n_>Z�v-��
>)4V�껽�5nݥ��y����1��!o7���h=C���R�u�.g_�‚C'�F��6f���7�{���7�y&#E
+� O}������wG��Һ0�;j��<�ڮ��jmC���VO�q
��c:���|�׃N�/&t�'��U��˫>��Wctn]�];C�~�A쥂@�3�`�0�4�/�
+<����"��f���-%�L|
y��=|�������܂�����8]���aB����
�55M�Aѱf!+�avH�&�2�۹�~�b��Ч
+� �����G��������b}$����B
~vɕ~`��+�ޮUk����6��8�^�u�X����]15j�q��A%3����H_*�3�E��ye{X]��h��_�z|��k�N�2�������T���j����Iu�����3���="ݿ�vg�rΧ9�p�
�����0k'�dV�YZ8t>[wPG��K
$�R��C��f����3jaTc���2dm^�����:k���錮��6�
��}e����f��{��1�K�t
��]��N`{8ݮ�r�[z�p��6�[��|%'p�E�y�*�����0}�5;�k�<�X�t�dk2S
nx�X�?�;�>(�^]Ώ�
'��%c��Q����(�LI�9>��5�D�7���
����BW
+4�N5k�\��Y�v���m?J~�+�6-5Z���5���ܸ�
+���ҩ�
Cv�.W\mt��5�1l#��Q�5bu�j
��jvC���(ݪ���_�h������w}��=j�t�D���lN��ի�k�vC�i=�����ƭuo6�g�[J�_{Os����)�Bk��� ���
\�!(^1�\)�k�ܞRA�h]����&��~
�:=�u�;�����\�N��
B	
�;r�[�htKw��,�k�E���t�G�!6_��d��6���
�+j}A���nU6��V��ް�����Nf�֏��w��S��ͬ֫nX���U�~^x���;U*D�E��������d�=��
+c���cYyP�S�6�=G�u�X5��ţ���ĵ�!=�*'��z�(V6+�)�o�\���~|��:S?u�k!���vj�>2T����*����F�W�T��2����h[I���<7��l�Ӫl�%ث��7����
�'4����W��g7������n�
+���gk�^�����t�`�ûLNϨ�D1�y
ª� ���Z)�j�����Rjc�ʴ�)e����
,��֚/9�;��U����l�;��;�������ŒŪ��i��EXʦ&=4�U��N�u漤�o-/�f�K�RCi��FvP��)�qҮ�zWcPI��p%SR-W�g�U��"���E:*'�û!g��%���/5��T�q�؆3w��2Bd���T�y
+�	�7�Vn%ޭ�Z ��y��X�/���~���
�Njut�����-�J=


�ݻ
k>�Jo3�AIͧ c��ki4'��EB2I�wNE۬]������v�0h���ϧUR��V��{�c8���9њ�Sq�*�Se���[�AsV
����-is�	�i�E�s�><�
sP2Tcy��]N���m�+hƍ�\�}��v�w�"̦ ��
�_�;�_PB��c��s]�����œw։
�����C��h�>�'�4��1�;��
�51���8��P���xm"7�=Vv
�Gmj���kC�n�KL�;�K���Ԅ���~G���
��UJ�=����v���$Yp�';f�V�aKi�%�� >��dH
8�zѳ
��ն��	���r�V �,���26�
�nҙ\ؘ\��_�<:��u���=4iqԦۀ�^�bM'��Z1oyU<��3��{����?.NR��}�˩Ԕ
+l
+�S�$94�>��
��=ω]��#:ӻm�zL=~`*�r[Jd+�خ�#�	Eb�Nb���`�1~t��`M'U
���NZm;{�=m���^

��
+3RUW���ݿ��G�?0;��k6�v"f�M�
<;�蹑��F��̹�S+�[�ܲFngw�lĀij�%q8�7��9��D�Y�:8[g�8ۨ8��U�s�w\���wz�oJuO
7�.���p	s�^�Z.���R���n\ �K�����
��g��֟�0E���P �N*����$%�z�+�Y�6q�p�pvO̰[�?c��	����,*�iQLN�b�}���Z1 .���~�DJ��f�#�������}��M��L
J�0�	Yx�Z��y��5'��jEحW����
w�,�9��`�� �����JJ->Q�^T��n0�Ia|#-\���,C0��jQϣfc�G��\
-�j�2
��׫����r��zV8����Z5�������a���
-����E�6�LI���1�����Z��֦X��c
�qab�PA�
�B�"��Y��U}[�g�L'�\T�\�^n��+��bŒ��J5�A�
��X���R2�
S�b�R��b����]�I�
�5F�w���/�;���>�[ok�����砢	Q�Z�{*�(�a*�g��"�(B�\~O���N9ζH7��^���9�!&ciB)C��z�?<���r=/��+����#�`����ˈ�yTOz��g�Ō����]��@��o�J�.�O�_0L$��T`��n�q;�ɭ�$C=�)ʥ���
r��.����I���	�
tw
8�+��߷W�
����&ù
+�]Ba�
!����
+��j
+W����1f:v|J5���Q�ש�|�&��^��.`v�0ɚYl8���r�G��Y^��H�p
+1i�V[���f���6����|�nkL*O*h��M�	� �i0сF2b��
��.y�I��
=�Wūe����⩟k�l�n��.Q���L�W��*��y<>X*���� kM�

A+(k����P� T"�[�-�1��<��>�!Tx�l%�N�4� w�<�ͽ
+���l$ p2�L�;_����+4G�+Zk
G�]U�ʮ�
�
u�����
�_�Ba���}�@ȳ&=`�~�@�
�$�
 ���q�>�5-� �%H�	�r�A
�錗��$L�	� ����S� ┏��4 at l�> &��
�0���
���VNWD:{-m��F��1[7�]�/��bu��'�!�v
+�ፕJ���
Pb����V�d��	bP�lP
�H���ʀ�W;	�#@-*�OPI%����[�}�ռ�j���W�O	Z��&�������Un��r�%~���̖�^����Jdϴ�#c���kL*l�� m�i@����
�/@��4`@^ LNWCO��� �� ���,`\CL�t�#�����5�t
{�Xc��#*�dT���S�n�g,�s��7�o�D�]���z��(��
�`�y>���#�����	������:`C��[�\�< ��� �?7������!������cp�U��h��qRܩ(�����8-;�ڍG�Ҏ�<,.k3'��:��C
jO�O��ף�� <�*_|��7���9�<�
��0�^�̚��% jc������ ��u �s��
�
�^��lV��4��.�=^h�o�L[f=
�D�멨S��X�?���m�n[X�����I�_��W���l[i�@�rE 7#-�=�~� ���h 9��
�@~6p�d2�_%�~��!~��;���!����f#|Sb�F��5���f'	�e
 �.���1΍�usCPKf���Ѻ#���f\/��z��_g�7�u�����W��~��J��C��0�o�Cj���MF �8H�ǻZ�
����BG��w��^�H{V��Y�ff��q=���p]��9?G%�p�����"���V��Ga
���~�گk����C�ʴh�+�}ݶ�
����j=����#�ɽ�Y�nI7���"�Й�2'����.���;&
+�;��nE���+����o���]+H����f
7$iOC\�ب�m�o��'c`�>}�����c
��
i,���qB_po"��`c��ɱ�G���
��f���d�`��m㩯6��]Ge氦�y��������K�"��2
+��0s��ɳ����>
+���sjf���άc_���v�T
G�|�׼���W�
O�8u�����/'�m�d6�w�XS3�[����ۄ>ws�
�@cV�A;\( �cav��	�`Z��I;K��v�8��
�6bOMh賓b�s�@~���X+G-=���z��X���
����u'���?	��E�-����E��"n��\=��Y��?��
���IM�%���<R�؛ެ73��ǿ�(��ձ��
�1��WҬ�/�呟]9��:ZX�{m�
������{ι�Y8�4[$k��?<���u-"�s�,8˭ٸ�+
T�
�g�T���R�Y�%#?������
�Oz߯��'Q.��lR9{fK�vM
�1>�F�D�Թ�:.WW��~��
+��e�3��3qci�Ż��ҩ`+��u������/n��,u�
�!��xQ
+2V�\A�I�|dG�L�=�����f�޺ڪ�څrۍڭdt���^��/4�v
4�v�8�d���8gK��G'4�A֋L�V������Z��Zk������ڴm,o��^3��n\��襈_��a�ݥ��b̦�ӝ4�F����Qz��L6�3~���ٻ����^�]�|Ҷ"=%k�.V:�0;hU�۵��kmX-h�7s�܋�I,ݝ��g�ޞߍ�����C��K���I��.k�J�7��2��19W5COL�z���������z�5U�h[�
+�"��9GA3��s�Y����k���>���eY�(F�i���>�It�{5l����'%	�[�sÚjk�h�K֫6mf@��#x�
1�R���tB
�$rA�Z�J�Z.׋�G�]x��^�^�&�L�	r{p���ϟ#�_����m��Wϐ�fFn�y���^٧3���׫��GR�8�%���wt_f5��!^G�½���6?��ᵎ�����-�w&SpxO
+ƃ��P���&� �s��F���Sҵ�U�����:W_��9!��n��
�<��N�qm'��
���\7}�W��X���dS�n�Ѻ�*ĭӛ(F���7A�b�R��gx�7���m�I�;��R����y/=[ŕ豗��k�>�{�}|7.P%�f�N�
+:���vov��V��X�˘��6c� �-"s�����	���p�r_,�u�:�֦M�qR-�X����w�ZU�H��N�Wa�_��x[z��|�;�KN,=�?�?�s79�ч"o�JͶv��ط�SZ���4�.�7�;oe,j��Q45� 񍡗�RE/�����"�3�9�nmݿ���~��t�of�GT�>(�	���[
[
,�;�պ��f�������䭝�o�Wܪ+�wP
�.(3_\�&F^cq#l�Թt%��_n:��0љ�g��n�I����6�GI�Σ�*�;�\�U�
U�6�`J��e�;��:$�-��;����]s}�7U�'3�g���U��ض�lj��f�p9K�
�+�f�
+���}!�ku"R5��v�S�UT���Te4)��s�h��g�)��m;]%�f��f���fO�e���F��L�dw�f��E�
�jU>|�a��"��������(��
�����T��km?��U�V�O��j3�f���A)�#*Z`�S�����X�͑ؓ>�d-
Y�-9�	'A}�'!2}�AR
uqR���$�/F�z��k�>�ȼ9�~=��"�
���S����
�w�y�&5z�oE������z6��*�����Y~捇��Œl���i�9i�b���jz�IЮS'�K"������!��F ��#ڬ˯^�
�z�T�0v�@�
��=�^����rY4!Aֶ����L���{��72����ͳY8�M��r[.��s;
��\J��� ���*��'�j���L��-jQ �~�_��/���3����⸵�Ε
���9nk�\�j�\
�_
ޙխ����--�,#tȎj�Uo��
�TV+Ó>�=f�W��T檲{$�5�w%w
�)Y���f��A�;>	���)}�׶L�e�"��flp�$p5ݎ��b4f��>�������2�V�1j�y0�~FL!����� �
�h�?Hܳ��7��*zJR<_	J���i#��Qt�����Z�<Ȯ8��m��]~=�G|��-yF�
��ep�j�-�x��hN��TpT�*��i]
i�2��w9��†�w�R��ܫQ�}v�ꀣ���ml0�7�%�DX
O����׮7��4��o�������U࠴�ׅ�p/��@ 7x����6{*��l�~�Xi�o�k�<3m������-E�
$Q�fS��L9�%ǣ���*H�DَD̎J�AzU����U[!Q|���9S��(��҄������r�P|}��q��Q.ϛ�#�wh~�|!7��1�b��F��܄6��8��B
��r�Е�j: '|'�ӄ'��� 
+�\ �iz*	���mI<�>A��[�0�u �*���6o�85
�o�v��\n���z���ҠPB9{�:
�3�&��+�(67��İ8g/��Ѐ/Ĥ_�cb~�;D!�aV�:�
��x��i��.+R���Q���R�q��Yq2����zG[؉A�U�G:�?C�q��������A"��O�Ƀg�B���
�l�I��*�Z���5EӐOVF������h�=�O�z�]�Q��h�٨;�e%�8A� ^���hk�|P��ÐKH�Pr�q��o������I��3�@���
���Έ�
[��oJ�a��&��v(���^X�}�y�+v�i�F�-j�Ђ��^l�E;j�1��
+��\����盈Y�u���{�vKة�
	����
w\f��F&�B��W
@��M�3
(��J/ƀ2�'�L���K_ă�m�d,S���gi����\I��e�5�;ֺ8���3�E��Ka��GTt$J�`���qyy�
å~'S8
@'X/�=M����� ��gR�h@�a#E�� ���S̎�.8�C��sO�D.�liu� Z���X�nf�^�&̟h�ӛ�Z̝��!�K��$�!�3�؏(C��|��`�*\���<�=T�Mg�̩?J���
6)�s��;��E�R�S!s�ٌ'����ّ
`�� 0�8��-����n�O�/e~JV[G2�'\��Q�
D�gf��UgO�b�xX���YrU��X��7Ԣ8�����bM ��g�S
��!����z�;���H�O
p~PLqM �/�o71�b� N�k���H�Dpp�
������N��FK�����xom��$�.�>Ԓ��:d_ÊI��Z!��`���ip|��?�
�"x���+4Ň�ۑS�] �|-�hB?�*��
B&� �ڀ�K'��������a��1t_Ւ)W\�B��
i����n�ˑ���M�˪*$�:��/d<d�p�d�0�=����/
+J��@t�,K	�-�� ��x�΁xC�)&4�ć=�{��@\
+���7�����7���X�.���_�aEpO�ޠ�w�Ò��"�I��'P�+ �u��/zHs��W��+��^vdY��\ի@�
�@��
P
+�T�–+@�%Px%
��E�F@!�L���_�Z��練�
��
+�_�y�(u�5�W��E�

$�Z����?��ȕ���n���~�7��+���]��oou�ֽ
А�h��h���~}��m���
+t�+=Ձ����
+tus�:���zW�;{��[��&�i�u��	�a4�
��W��Mo����k�U�E�'�����/��O�mm
>{F��� L�S;M��O?���u`֓����}
+f4�����_|�����7��������[��h��
����0i>{ȶ�4g���S@�?��Y�T6/wo~�h}K��b���6ٻ��h�MA��k]�j��j�(/��e�I��U?	�_a�+/�o���m�m���F蟞=��~
�W���ۼ�ۜ�H7<�hוD�W�Mz��&/lO��V�uF��)F���-�
��Z�=��O�� b��گ0�}��ۚ��VB����o��'w�=�T��e<��uax�*��|0����@���{�wˣ6�<=������C� �P�`vޅ��#�n�O�^W�l~�����
��Ky�^	��F�?��$[�+�~WG�N��������}�޲���G>�W�$��Q�����B�=T}��ຬ��V��:�x%̂�2ƃ��V
+&
m,�=>��>��8sn��o
���)ڟ�|��ƥ,j���Jm�n�����?��4�~�Ǻj~
�����W
/�������f�ܴ�]�}뱸sм��̹���{0�dn��x�b昚b�h�g�#vɄ��T�*�
�G��O${�{����윻C�I
$���]����I����^UV������GO��B8���������<�/�پ:7w��Ի	��U�?�z�lx(P���L���:~�=c��3�0�t���:o��L
��ZJ
+YZk���Ӧ6zЪ��Z|h$�X�lg�X��ѭ��#=S/�׺�������n�'�~;�k����B��1�`�����\#�Q^���[�g��ݡƗ:K��y�Oګ���?mUiij�.N��yn��|3^Q�;P��������>�4�j
�or5��T��ѭ��R�:L��)~y�T��
���~�M��b� �x�aT~ĝ_�@!�xϼ�َ�>핟�?H�ݔ�X8��|)���(=�Z���F݅���$_���euX��ɬ�o{�J�
��hu/��;Tj����*�^���P��g7�B/l��K�W"�?�����-���u玦A+
��y�7kJ'?
+�v��z�
�p�����C�=R��d_��
+�_�媰1�����c��r͇��5
c3S+ކH\�i�W���i�y����L�����~�������VÉO�VYo]q4oݮ�^Y�/����

��e��5)$�����!EF�����P�]-[a�Zi�KG�{/��]�WWHQ?
�B�~�0~����Z|ds�i��Xƫ�E/�}

�r㔞c�ݕ��j�:�Ы�F�b�J!7rZwv��Au���?X�.�fR������\(���dD�<D����]�f��R&����V}�0Y�����w�7���O��Y�� (��|no�j���ۤK�+�z%���#G=C��:ۄ�/kPh�f���s<�?�W���]�n1巛Q�F=O
+[	
���c��
$��*}RPw�!y��&����6�,
�9[�٤/���=�vbC��G�bwc�őd
�k�r�/�
��%�[�Ɯ
N���^
|2��Fi:u�F:u!
�v��R
���aNo3x|��.^�ڭ��?H���?BY:������{y�i�v��v��=�{Zma}z����قֻ��3����ߘQ�0� �$�Q�L��V^��u�ڳ��z���؈�*���r�+U���/J
/2)"�/&���ic�;�&q��k
��zU����Bh!��Μ�=X�]e�jڀy4UkᔘY�44
+��� f��V�Y���K�ރ��u��z4ƌaoU��0Gi)Ų���
+�>�6�!�>��b�R��R�
����R��"��*��W��M���}�N�/��z1�1����6��+A�暹����]�����E:}
+;ZM���㤻P��`�\���*>Қ_Qe��7��
�"H��ؐ�'�(��bK�8�����"R{1�̜��:m��=�R��/Dd�q#��o�
L��%����j|~��J�Z�N	�Z�on���g�[zy�T�S�YU�*+�#Փ;������^��h�"���[�4n�8�(F�2�&"�M^8�!`�����Ƈ��)���ͣ��6� �)m��;c���g/��v�M~�R�f?B�~��7�b����]P^K�2�K3��M�岢>'�_�$5i��Gg6鉞������f-t/9�.�H5�/�+���S��r[0�r��:�����
�"�
+K�a�;e�5�
�ɰ
��]�=Xm�R�a
uwUo��R�*��R��hvP|]�\���l�|X�V��I(I�K)��Rf�!�BZ���N�Oն[n�Ҫ��|��
Y�P��l�A-VxT�̹��3q!:ҷM���Ԥu}2�#S�
&M��2�(�C��
�%��Y4]mX_e�?���A��oN��v1�mM/�^�iӡ�7ͪ�_� �;�r���ط�cw�6�x͊��Ȝo�'w8�Q�U��c+�N�rH��v��#������@!��#��#��@�$)k�R�5��=�}��ͪ�jB�3�SǤ[��:��R��쀐�B�Ş��v���A�)�B�q�E!�\�E��H�ӂ@�Q&�����dK{Z?N�T_�e(�)
+L
+
+9�
�d�7[Ĵ�\y7 � 2��ݛ�b��	,;$��>!�i�%�z������_G�Y�ոb�_և�fa��_�i�q�mԤZ�M�uz)��q�/�
E������z+T�׉)���S�5%GzC��~���g�M�{
�������A'+����9V~#/���l��ղ���1c����t����"i�(��jd�F%[Y�
+�sz-�5~Ӏ�¨������k1�.��`V˴IFy�#Ȁ���0��Ju�������aZ�����*��
c�<���Gl���ZY�Jj�9�N��x��AP�O��TAnx��G�=������
�꾾^
֕�u;	s�]0�e%��c�Z,ߌv�V޲�!�����ܫSЦ��K��O���r
dᦜmP�(+�z��c4拫�
*�
ri$qw�3n~��#�ר\����a{��>����
�r ��uw�-�+�������m��Šv���w�
$qάPoN5��G\<�{.�N�_�I�(��b���{�2��H'R�k�~|$�
�l,a��~$���y%����Lv�w@[� ��@�e�����Z,�(�w�gc9�ܫ���P�����˗kd�m7�7_�t���$�wf��ӌ��V	�o,*h�D��,C��a&@�r�9
���
@����
 ��=�2
ȉ*�X�����QG at v���n��b�fz]����B7�������K����Opu�jo3�RS��;��R��\�Ug�Co�K�XB����o"(���)���6��!���"EtJ� �:��;Pg���3�zp��c5a
+��k@�i"E�~�X5y�z[�t��ޏ[��@;���
�b:y�{�ɘXy��t.<�����jZ!�Gw L)G�q2
��L;��KQ
��/R��Q�G�N�W��_`�R0,�L�Mߔ5>��0��]
���
������?�rg4Ȅ3���7�d�"u`4+���QNYb��%�
Q�w���j�C��g�
k���:���.�H�
���S$7��^`��b�v!�������ҷ
�,`��?�sث\��-�F�k�&�
f���w�9Kbe
j˞ꪅ���|��V$�R�&��qw�s���׀���pxq��n��7�=�I�
+xI~�(d o�	�;� �����4 �F����}�
xmX �^O_����N�-�ӽċ�YT��V<��
��rG����;�n���v�i�LA�]��"�(�ּ��.@��7 $������
�
���H �+
�D���'��
D�_��㰕�ht;���@s%?"lR��U\G}��=�u��|�H<i���T$+훑5#�[o
4\�7�BT�
c3�:ױ?���8p�Znp���cD ��&��kȜX��9\��ȍN�(�y���"���r����S�z���`x��h#S�<��="��v>k�^�
�1|w�+ �'��k����7�*�_���>ԁj�=�ήk�� 4.'͠�@
�E�'
+���Z�
 �9|-NT��/���O�*�,x�3�5
����薃����O:�wP����W66V�������w�'7�&G@�Gk``���m[[��,`
�60^��� ϖS<��$&`����k��~5ѯ��7
��C��0ۿ�ߌ�o��"����ڟ��
����
C\�=�U��'(��%�A���-8=/7<��kx�KW�;h^��\����MA�j�?ȷ�Wq��[����o����m�E�����<��}�{�q
��5�J�4��U=��v=�|0+�o���n����?��qxL�M��
݃�#g�!_��Xv���	@���~����>���I����~��������[)�-ع��o�/�[�y:�V�x����Y��O�^�=��M��Cc���;�cC���u5�W!V‚�1�j���s�g�S�A�敞͆:@��U�~FW�j�׺�GM4�_c|@y�~]��۹�(>�7WsIe��V`whD��9�V
�g���b��H�ja��V�s�X�φR�9�ڥd�=K��ܪN&�(^�KH�0��Lj]��a��o��������}��
+�z
+������_�A��9�'
aN����Cb�jd:�ŭP��{Lq;sι�Ի�_|�e��DΎ�Y�6H�
�+�0�YY�����.���-'虏��
��fv�
�,��8�W%
jS������{Q6qC�W�p�/�h����i�ﯞ|L m��
��<�f�b�o��\��mN�5�r�AL��~�+Þy#�ݡέ;��w�1qN
+(qO�9�n�
jm�|�Ue
*>�m>�E����sQb�K����nX07�UG�{
Z�zmR�
������������3���=[��`iT�
������I6�6��V��Jq���?H�
i���f;Q�i�Ƴ�M��aN��]�;�&Ap���*��
^Y�by�|Z��K��rP>�G�
5�"������ߛ5w�l��1�t������O�ywЁ�jm
�O,������F�(���Sk����EٮȲWYUʅ
+u(���FT/��(.5Ԩ󃔄Gz���zY�
�Ǣ�����X�Y���e� ?�'��/�2y�ʊ)4�/v�$/�-�Y-���ޙ����
�-����ڭ�
�
��΃ǡR���r�߿K
y
��䀇����,��RH�b#�̟N��| m�r�g�?o8=�4^I�_r�
�V[�A�Ø,�
�޸��
qE���b%+��d���AҸ�]�62[� `��-�������~\�v�Axn�z��rDž^�Z�@�й��+�Rz��i��	���V�)��Κ�������6Nt�M�a߾�ϵ��×�����=�f:
+��3)��_̇!7�AF�����1�R{�o��mr��!
U���Xj��hT�8�����p򱷮��
���r5{�q���ɕ��͹
.oG�3��Ȑ�mx
k��|z��Fٶ2�"4s�Wl�Pwf��۫�]B/^?�
��B'�W��32��{
�nM
��x�[��9���M����%	-����h��4=b�K6�*Sv�u��
݆��
�X�Gր>ͭL�1�B�h�>�Ø���� k`�&���L��s��*�Z�Xx1P��Sa
++���� Js\(�m�b���xwY���E��T�^���} ov
+�J=G�a簸�0\x�G��ʽe`��x`en��D^Ϛ�x��)y��aU��
��J�r�X�}U��B�U�
�*�W��7{
�	ŷe�XK=�{Kv�����?��M�$����o�{��M�ʶ��kѰ�k%9��1�PELy2	V9	��wYMt�����{�֫�;��j�HZ�p��X�N��\ɷ9{���y�V�R�5$~�� Y��nc��d̅i���I���FC���g!�C�t��
53�tV�J���F[�BuG5�R�ՙ:ڽ}�
7Σw�s
Af%�t�j�G�J<�|G�PփlMz	z[�
	(��8�{kѝnO"\G_�T����
+��=[|�	j<����u/�qL�8�"�J�ch��b�ri��b`�j��5{�~��Fv�*V�I�
+�����;�;G�������f���KU[�(
K��-�A?/�QI�'��"䳻��=�~��f|�)�xJ��z{��rM�9���X��
0'�?3�cC0R�0��e�X�����91�Jy�p�z����t+����䷝||!���H:q��64�Fe��ʵ]r$��2��V2��
�Iy��re����9�k%
S���=�]���{f�~���"�IY*}M&�m�]Z�N걪cT����n;^Q������(���;�Y;*�͌�k���h�3��;7�<㩘kd�g+k�����?���bODNe�'��������G���X�95�*Ӵ�#�r���݂�n��n[O��Tw��(����G�$���ޑP�E�	�v�	��*�^��������E̞�Z��0�IRc�u���n�E_�~]˓N3��E���"���s
�B����5挌
F�}������t��T���>�eΊ��7�Px�H��$4��ģsz���<��xA:dp�8ߧx!7����:妱���1�����㘞c�
�.��6��h�v2������z��4��
+_ZN-&.o4�94ʂM����
9�
B��5:=��dȏ�ͯ�,=����i3?��,,�Ή��9/��C�������Q�z�nٝP}bt�x&uH]6?L}R_��^�| q	`d9(�ζ��#��&��`��A�@g,βlZ)q�p��
u���NV	��jD����B6�x��q"�6���c��=��Bi��ɭW��=�8-h�**�rYk/�������#�?*���`��n&ƺ�"�y���Ê2��
0��.��
�|��z�D/�'י
+a$7Yz�){�Q����r{�dwϹ���Ӆ
_ċ�^N�\C�M�N���R�퐫�{ ��@ԥ���p]���?�޵�	

�M
���
6���b�3�.�m�w��Z����sEL��#��U6�
n0��S���"�Am�s�M?kp�D���U��6��\/���[C;�- at 4���O�i��ys������
r�!
+A�I�A2^��<��`R8܀q��B=r��u�C�[��o�Ӷ��E���������m�0jǐPl�p��hɶX�C��lzO�K÷�^���ҭ�}
�Z�5
&}b/㻽0���
0��=@��,E���S
@�R>�=�)5<�.р@�
+H
�
���__����9�v�W����9�*�F�8�ʝN�ij%k�X�Z�-�,�>x~W[�Q��m��=1L
�l
ΐ�����$m���X�v�!4N�
S,7�d�{�H�Q�
���
+c@|�{�3�˾
endstream
endobj
37 0 obj
<</Length 47987>>stream
+����m
IQ�F��xԄr.[��-�G�</굮
�h�7
�T�WDI����̳�ߒ��
b��D��]����+��*x����B�����b��x�JR)F@�<�bdJ��J/�\ ��g ����_� O�7 �Y�+��o���.Qr���p���,MBM��D�����C��
�V��b��r��
џ=�R���no��ֿ�`c���I��f�)�"�떟� �����a�v�
+��Q��F�Z�����I,~�W�q��ߺ�s�gm�M(9@:/C=�FV��k��ͣs�c��t�1`1�7a!��Ul�
�RL�)v3�|��W�ŭs� ,A�)b���b0�;��p���C����/�!6��gA�G�� �p)�Q?���vp�Jkb�e9V��.�G[�A�I� �C�F{������%FiM���M˚����&����|ܘz�(d�9���z^�kp��p3���
�p�C�j4> .�ˀs��r��O�[�>r�[٘��{���I$
��<��>�����E��
�}h�#{B�<��m�/��W��� �
�����3ց0���
���l��
��~ �x�Bkj �r�7Ej'C?�g������K
���X�ek�X�DzI� �qh��2�����
���D����n��o����s%����7X��F�҂n��L�t
+
@J�  }�!�.��6�,����}��H�����e�}z��K���Ⓞu��2�`���;*�~������h�_��nƿ���Є�b�u�~Cx��p
���:Mŵ>P��
�Vj�6��[�>�!{���!�wn��S�8����w뵍�մg9t�䚃��7-
*G���!}���n�?���z��n at k�$'|�ۯ��۬,��`�/�<F�=FԄ�1h��V�i7`l ��0�l����_��p��m���F�f�F�[�}��E�iN���o)g�2
P8r�j
���t�s��
o�互�t%~�w}�����`��s:ga�
����Ǻ��8��!��
����~��߆i6��IF�eN�_O�|?�����ڻ+.��}�8���,
��)���I���c�]�gq�
����٧��"���f�
�������w2����� � ߠ����<��ۋ��9PsDd��r���ꈽl��za���)����*�O�
�&����e��Y��`��3�[���l�@ޫ�9x��:s^$
��?�<7�5*uy:1�
��I���UС��j��Z�׵�}���k�?r�A%���
�C2���
���:����ܳKy1%�f���C_�9��>��-{�v[�$�D�x�F�15�j�*5G�r�6��dp��7�nY��T�g���nYn%�����FY�<�/����Т���5���J5��?rhp�D+a�4���8�9�J{�&�`���t�2Jo�����y���«���L���hϼ�Dwh�L�Bg��j����m�۫�ڦ6���
>Ӹ!��X�>���ڔ�۠<�'��eF���배�}5ﯞ��ʅd� ��G}�I�̦w�i_�ZW���𺟶v��T��~+�gL�]��qk[��-vǬ���~�X8I�f,K��H�H{iP�g{D�3��u
��I�Q���U-��ee��JI��
+uKj���Vu?]l�����"���Z�M���ֆHw�B�d��6����P��湡+ѭ��������Q
+�a�ήCS�^�1�YC�V�Z��~eU�&�WZ��Q�Pf��G��
�$�m�oc�,&ުZx.�E��<2�l����~����
+Y�ɉ3���| 
J��'H�ql�qN�S�k�ʹ
5m���j�hf+%�B���:Wf�M��H��S�B�]�o�vPԡv����೘%����'Ud�G��ݟGc��o���Nţ��cn;t�
��U���^
wpg���KCi-Z�1�����
+n^Fq:�[nZ�F�qeU���*��J���.�z�]Q�K�B��`l?��ߑ��t����N� ��
>~�os�G�?W5��{�mW��S'�S'G�z���p�����u�u6[σ
+}1T���������:	5�
���K���Ku�a���i�
+
+7
+=��\�
�ѭ��
\~�${�Q��:W����+�݆=��(�8qn�ڷٌ�u|�[�5bX#��a�� �+�'�d�_
?�"�,{�E���|���i�A�@˝�����^��c�U�����(v�a;ȕ�e��,
���̻����9亣����켾�2‰�{7��;sD��&\]>������ '�E�:�m�ZYT4�]
��8�<]�*LJ�)'��P�#���QN
�
W�L��n��>{��F��+	Y�N�3�K�u�=㎷HE7����im��|�
���#_6��a����v���g��G��N��:���pW�FVN�V��S�[O-����#=��N2�X|'kG|O?3�=�\��L�}
^�亂�j�f�
e����)]
+��F���_�I?'Bv��N?���^܏Tmc.,��=��*?}Ք� NJt���5��r[),��4>H���!�x�ˋ��r��LN?}�
�s�o~vU5>��~㧿�Mҡ�C=N2�B�l��ALذ��CA�}�{��p�t8�fA [...]
�o���o>8
)
�&W����yv[{�٪��ت
w�jqud�������-;	;�6��ʱX/�OvE�b�3��|8̜rMu2��k�E	���c*�	��$s3��!;�E�13l\
]~�!���M
?���[5:3��
���O�Z)c,��T���CF
�!}��g:��
�t[-:~�;��5_����n���&��Z�}u�4Ds��o���qۏ��G�����@�tw��%#���
e��	Ɣ�R�18Z]v���pSc�r��
i�4
ц��+�"H�V֑H��D@�Ϥ�����v$�!D���n��
�%_knG����q��V��_�����:�R�Vw�����?W�\�t���
�G�"|���:�S��8��`���c"�,3��cЗ���-�	i�ݎ��rߣ:%lNJ�D��
ٟ<��G9btq"�z��:��Y�Z#��bI�f`G�
�Sj��|�
Z�|�U��1�/c�(`���.p@�٘���ZP�>a	�xð����˭AЭ$a��+�N�QF��o
+
��ͬ�vRO�#���Sb��{"w��񙼧� .:86�c,�5F^\#��2��9�l.�8v:64�ض]_�p�rJ�pPa� �aޓ�K��Y��1ʙ�H�w�H
+
n1�i�?$��|�
H
+I�W�#3�B���Ex��'�#Z�g�
��
a��l��U�Q\��n޼�e�Q=���A�{F�'D�:˲~m�E�8���)��)��*r�(��g�e�R�
_��L�N�
"f�}�hKpcR�[C��HH1ղ��=i�-Z�V@װp]u1�<,f��3�V��:��U��p��
��P��0�sՑ�����3�B�yD���9����Ul����^��ʕ�ˉ[���>)��,#�4�w��֊�gz"&n��1)�T�C�D�t	�����v�#�U��e9�V��^��F���0�!��'�^�x���<� JE���a��z$���}�B֤���iÀ�H�
�4f�mu?��Ic.���JJ/����n,}ݵr<m���C����!
��ֶʴ^e�
�L
[�-
=�;
wSi�#&�]F�m�����;n:�*�^{vقw��y
er� d�Ǧ ��x�jX�%��K�Rt�`/W߶��@����/�]���|Y&�
F5��#Ru���%l�	�IZ�H�
�Î��k.���#w���@�FC��/B��Zό
�� �f�l�� 6�v)b �+�� 6o
�p� (2��A����=T�֭�+���3�AQAQL���Ŭ��s��׷���R�tr��q� |�
Z0{�]_�2��8���n��<{�.~�~���#$Or�Q`zȔ
�e��j��
��m
dD>5��
(�
+, �!�D��*���b
@���W�mע�x��U ��ƿ����o@���@�S���O�r�
Vut<�u1�U��ǒ�
Kb���`q͉'^j��?=ُ�Dծ��e�2�� � xaJ���@�=X�������K�
b����~ ү��l�: +� 
7�)€,��x[H5�$wy�G�O-��$\����_�ޭ<��-�ͿE��w�t�BḞ�.H���b�j�EtzT���Td�1|
Pa�]
.-@�w6�&h=F>�1�jJ� �m @).F� ����
UI@����
Pr=!�
{������"f�M.���w$
c�E�����\(��]������׀,+����Y1�N���g����|��ʆ1�7@�)�'�'
+�#��0z3�z�
��]o�K�5к+{J5�HJ���Le�����M�2�
|f�4nu.x3̯�����4
���6���ʵXo��1
+��I��
+�.|�a k��,#ƧX5��Y�I�I&�`��UG�+���)ղ�pJ��ݺ�V�/��@�
5�
d�i���%Q��H�.ȧ�n��ӛn���X�
�F�H>��&_=��/�ػ�S��xN�b�$��j��6 <^? �! ��.�	�v
�9kǘ����^.�\d��E6j9�b����/��`������������ '�_;��Qp�7$��J�ƨ�A��D@��2@��:����
�{BJL�=���� �@�>�$��;�̴��O5���][h6�f�&4B�Mh4�O�Զ�����?�
�x��_n"�&����W�]�����- Id'F��Rއ���Y e��8�$
���i��Uz�^4ڟ�Q'���k#1��}�hn-��1ed�KT�t�Ϛ��~e�_������I�;��O����W�M��P|hg���&L�2�^����@�6m���P�6�C��c6^�TAs�@;�#Y�Gb��L�W'E
ͣp�[�,Ug����ݶIfC�D�M̷K���n�S�LK�3�57�F%,���@�@]��d���Vګ	��q��6��
+���6y�?T�)�$#$��ͯ��O������7q�Qo����ےǕ[��֯��6��5g_vjɻp�j;�Aot�
+��,/��) ��I݆Ϳɰ�&�k]���J�����������8���Py at 6׸-Y:�:4�p�m
5^���N
w�[�x:������������Ø�#��{}{�}�v��l����x0c�>n��mz�^�6�ȴI�@���+���.��������
�K!Ϧ.�+�}=��{��騯���M�]�Z+mv�`���‚����Z�\��R��`9H��ŧ�.����49����{f����Eg�ģ���X��O��/R�~ͫ�Z�&o������s���g�1���b,�c
�m�u\���m�i�?�2�g�수�Q|\���O<�!N�U_
�TWE��9js����kC�rh
��y���MrQ�BFp`��[m��PVbbM�Wa�OzC�^	���_r�����Uf�`P��
+�?�	7�w<
��b0��M�i�>4��=+��z��|6����!]����]��}߬?t��/�󭶲�4o}��T?����[�8ꍱ��4�M�� q�z��ּ����I�q�-
T��
+�xU�	7�~����~�>ԏ�KS׻aI/vv�Zi=�k
'��jKjмu�AS}
+c`_���n�
�-�s�"�o���G�gL�M?�ꮭ�U�>
+\_/��d'��ۼZ	ʕb�y'��Řg��΍�m
M���
qώG�ޭ���@��� [��|��Ϭ�TGW9ͳ�\����F����/�U�R��~��r�~���δrOB�9_�m#�%��n�-C�y�4kX�z)��e�-[E�_,���u�Ms1�sů�
����k�=t�];;�޷�������N}Vxo<"\쫻z��
[��+�ZoG~yP%�yXEK�=(|��l��=V��&
}X�h-��bQ��
:(�����鋻y��)"]=-��|��cl�BM��^MjL��ea�
U�`�x�����˙Wj��캾��#qG~*=�9!G�q�>-͜Ӳ��.[��/G�8�kѕ�����S�4
1�C�0����iV�+h<

+�m<7��ap�L�
}�I
�ެx$>

��W�ż
�j���4{KL�;��!��c���N�Mu��҅��g�E
l�8��"}iy�Qk�§��G��0�����
J�eN��[c�t�A/���[�t��mh�t�ɲfk��F�
M����*�n�ݼ�g���l=���3<��M�V�6��bw�b3?HK�>�o�-�WK����ų*��Y��[|pF��
,Q7��?[���
�fg>_�Z��ʢ���s�o��������9㹷��
<��}_�/ij,�7N �3�<����������&�X�T���J�#q��O�O֫*���~�O�)+���B��2s��� ��؈Yk�Kkv(I�F�eU���g��J)ï�rrz
�)���r'
�}�줞c���m��
�S�W&!����N��w�ҥ3�a��
�]�9�
�s��z���X��t-=�#N��\�،��쩕Ȯe�n��U9&S��
v����L��Ht�KY[�A���+�)o	S47
+��2� '�ti
^�Z-P|�yҹm�jp5����
��޹ı��(�e��T�L�t��Ȓv�C���3C��*��x%/�
%�RW�e}�����ژ�d��������
sQDS��
+�$�:�I�	!���|�_��*�0���G\M��
��\~��nV`�2���
F6�1}�������M�
�ݛ1�ۜ��
�wZg�iB����Aq
���f�8��I���kݬ�vY:�c��Ri�������y��inw�9�o+������Vb��.L붘3r9��hu���R-S���~x!��3K~V��Bxf���4�~�6������΋`��r� E�
��:�K���֛��c2���;o��q���6��+
^�/���|��o5-C�o��s�P�Ԣ}L�tG�}����Hg��՚��'|��+�Z�5}���-�[�����jc�ɕ�Tn�h�R&�8\�^�sn�Ӭ����4.H�}A�%�p�Z�0m�o��Ck�D
�
,ƞ�
�)@�:9��e���$\��u̇�/�?���4NN�ylc��X5�0&�*�>��#�<
��c�i��
�5�G�\���Fe�Bi3�`����`�]h;�j+7)*Kye��+G'�[�MG~���{P�B{�B��p;�s�Bֽ�%��؂,૆]���8�6���VkW�e?�?v
�>̶�t�C��=������'�x$���
�ۜJ�^]�*�̪����H�SO�k�;V�J���Ly�6�<�k�T���yH>��_�j�B8�N���]`�:j��_���91�Z��h��FH�XbH�ttD�RM���l����k�XE�Gc�Hg�� P�D,��
U�}�F�_�a;��bfߙ���w;�t
����EkbZ<�|��3 d�0x���~�j�恱�@-
C��[AD������i�c6���
�������T�8�S��H}�,���v�]��Cu��
��_歶'�{����e����Н��O��N��o�k!ϋ�@>�{1
2
���6;~�G�rG"i�@Z����g���oVA��c���R�2ք�5N���>e�J
+̜�н\�705�q� �b
��¢A���M�^��Z[_��x�p��5���]ʛ�K�27�\KEy�]����!�^H��bP�ο�`:A/t������Tj|E�k?ev%
̞�"���:�*� F{0�1v��n
`��`E60�,�x� V����w���~�_
n�2�����2y���#�,��=��Bȷ�5�
:ϥ����8�,�`$S*AP�xM���8[�cL�o�\&�W�@�Ý�x� ���
��Փ��pr��` ��U���xI����cuV�W�I5+���\�oʕBog9��9�#�Oi���4�k�A�qɥ��c�) �
F�����{qBP@��B"�r1JJ��	��p��p��I ��5 �̵~��1^�C.nux^'�rc�:�ē*Ϲ����_�yӯ�y��g֔QF0�6�d�e�‚;X
ߛoU�6:���H�J�w�&H�����[���xs��~#�s�Oq��$���rŋ1N@�
 �6��(ޠA��w�����A�?.���_
�~=GԀ�ި#-�P��[���I]�Q�^u�����㲩�� �8@��(���в�b��_[0��ÙŸ� �:0����W�ȷ5���7>�(��f&�
�' �
�.�-1����&Cf�j�ow��iд�s�7�ew����0�r��O��씐�"�&�j��Y<݈��ۨ
C��(6cL����a��
�r��ы�BQ�f>k@#a��g?޾�f��
+M��I�D��'
8������ҚX-�h.����;�c-�H��T%�� ��W�����\���vZ�qn�xw �c1J���
�� ���
`F!Ƨ
��"�E�E�)��c�!`2��W���z9�����\��h��Y�
q��
'��ֳ��F����s�<E3� p�jp�fp�^���a2�q��
� ���1�;�|
�d W���	���>�̪�Uz3�8N?��}���D^%����ca��ԛ/�P��o���vyO�Zy f�u{�]�q�N�x��������wF���	�%��9�ʇi��i�j��ċT;0H�x��A:�{��0��kM�BM���<
f��(��+XY��
5U�W]O�32� �j�	�'��'��%����^���w�w�7�a�����K�e8$����`�o��j�]rc1 �j�~=�J ��9 at t���Y����[d�˳+H͡˔q����=��+�o0%�
�b�7u7�I�+���w�k[lf���m�@�6P`y@ɜU���x
?��4+�
a��xzu{�USV"
+��f��B�_E,������������f�_�6u7����
+���IhBb��fB��Vw��

h�� �Z\�[��@�ks�5��E���[�
���li��g��?���m�e޷�_C��_�}�e
���kr��Դsd��s^;�[��<�!�-���;��Wx?SVV�M���}�������`���m��)�����s���+_�]�/�����)18(3<Hlz�T��!���L ��R�
������p��p��'��3��*)nu�Q�J=��K�2�.���9��1������4���C�S���ż��y#j���4���'�<>K4t�8
�G����t/
��)�۸���7�
3�&VZ�peu��2/>I�4��é�h�ɮl��G׻���
�Q<��Ym��OOI�@���u��N����R�9�N�I��d��NA(LK�U@�å~��
��g���0uS���CϱO�?��:�G�!���Ƙ�ј
��0���ϿgFo��
:����n�?H��M�w�������x�oe��mT��ZWMr��-����&o�� [...]
�S�
�צ߇��ҳ@u�Ha�
˅E�%���έ�;ܾtj��¥-��V[n����O4�ׂ��G�1��rZ��u�گ��7�=;=sjak��\y�H\�?�{
�n||�M�''u�P�U9�u����D7��tǣl��s��j�f�d
�����
�16
��5�>+��:�6�_�(m�k�g�k���T=�
�����
+����j%(������q�$f�_�U��f�&��Y�qGQe����I��_�zc
Zr��@�D
3U��-���lҁk.[ī�F��rQ9��JQr�^Qu��z5�Q٬hP�d,ǵ
��,�+�~iV��K�	9Z�T���Ű�拮V(v#wW�L�(����:�n�]�ԑ��R}h�u����>�:���k.�M�c�8u��xQ	���
�
��gю�&Ѿ��p�)Y����!f��9U
[s�H�VR!�_f
�M?�������l���0���1��kB�h"�Ot�$S?���層�2��?�;�[�Ӽ/�c��sB��%�Z	�M���W꥙#���#�b�Dz�]�=*p���<�)d��&�)� �%w[H�$�j��y\��
N7�݌����dZڲ7\h�.>4���pJ�U��8�X�L����Z�Lw{(ҭnS�"�:֪��̹��V��3�t�dQ�\��|��G�|4�s�YP�iX��JP�?۠��k��
����gY���e�׈�確���&
+��
+��
����N����y%�k- +��$+iw$���"��-�r|��^]kG����{.��\����j�JxV*��Sɷ
2m<��>�V��Q��hT�~�V
+95��*�Ε3�Q����M_9Κ
ŷ&C9Z��B���m��$�/!�9DCVJ���������D/ư�`hd�x�0�R��S�����)n��|�*-
�[�h��w�H5R��b
�T�]��2�
�4��(��m�H�
+)(��R4$-S,�/��F�_�AD �㦴�.�vik�y�+1E���i�d��*:[s�*�9�<�9��%�
��9]KF3�+�uʷH��Þ��~�Z���m�r�>f�erȨ��F��擒�_���x8-�^@
|�
�z)�K�RKc�g�_�h�'�B�۬���Kvg�l:���3�f��y?}e��92���y�;�U;w{�д��Z%��5%)��<vYP^�c��	Ɖ�V��?y���y�e9)){��D{�ҥ�1�-��w�G�{��b��+�e)������m2�g�0��آ�)tLg���� �ʾZ2�
�.��&25��<{��<�7�Q��
+���
ϒ��4�k'S&.[�X9�LlT8wv��Z�/\$Y=5"�Wޡ�'�]jg�A��\L�����!tW��t�3����Q�V�A(����1�y��Ӊ�$�E���~	/73���'N�f
/��
|}���t[��Z����VmW}�bjU���[A�>W�Ԫ��R�n� 	i�ڒ�e���j�����͎Vӽ=�8OΔ.����y���!�%�&�tI"��a�(�^��Z/�
�h�7���i���tWx?�q��a
��gu���]�nV30�|Ww�@��֐�v���
���(�V}�f:��EE]�
�L�lO?��
NԳ>ْc(�!!K�G|Dq�>h�t���2w&pBx���X�
���7��Ș��]P�qI���L��o��h�"D�mT�����=nt�Q����ӣ�7��.�sʪ
S`j��A_/#�h����M��~
��L�W����eI�6�,�<��[�.1
+o���{nY�[Q*�W
+��G�楉�7~������
�?9X��m��)
�{�)��ͬ�
�o�&@30��|(8��M�q��Yi�
��*�߾��AqY��0h���
Y��.-���>��ݠ��b�z������
9�Ei�}��C�/S� wj�:������'(����h�\Ih�R�c�r���q*�ޘ�h�Z����т��3*zy]g�bKLa��tq�n��2s�PߺhhUX
@���.G�g e���Mi�������w�/��|%�'���0��h���Pv����]��r�� ���;PxS j
+ at F��
d��ɪ�.�Z)�n�f`\��@���{tI�
7�%�������6s�c9�t���R�)�7a܉�m
+�zL
�G�>@:�8����#5�P*��0
k"@��P��KB3�>@ո��z��@��&@6�'��%�(e���[�S�2�FUݧ�_����B`��\�&��\�vʨ�j..4�ɧ�B|O~
�"�5M���
i7'蹔��	�O�»g�����@C��ѕ zA
+1���1@��	�7
���t?� �P��
W_u]�񒫰 �|k�/������m�|=!��
L���U
���@Kt��Z�"U�j^�Z*)��U.�T��� 6\�{S�>��Q�b,x�
-F�
���МǸŋ����j`
| ��)����c'Q��kU�`�l��p�f=���9
�3�k�{�y�avƋȧE��2�
z~���w (�}���� >i�w�P���x��b��1.U�{F/��Չ��O���
��
�Fu�����G1�a}�}�������k�nI��/\Nj6]Qq%�-��}���ZtlSXmhc�w1>.H0h󐙞�O����U
+�cH ��B:�0��*/
�و����0w)@
	E�
� �o @�ϸ՟�����;���^�����y��o7Z�*��቉�}��uN#�q?�]g4��p
+�%@AC��mBr��9;��)���&��:���91� �E���v
d%�dn�d���b�_�:U@��S2Q��
��e�x3�]a;y���v6y�ǂ4-l�
��Q�Y
�{(�0�;&�uO�`�@�q�?�������"�£
�
݈�jr� jZ��s��uφ_G��T�� ����C����gb��sp�!�-{qnN�~S�LQ��#Q�C"����d���K1]�
�<���b����[f���B�Q-Vb���c�
���� �fa��	0�� �$���Oܓ�j��m����h�

?+'����l>�b6W���˼���X}pi��Y��6�=�'.��
O~ �5� �9���i�ɼ�F��M>7����j�ُ/
+����-����� v��ۛX�m��v�g���vpoz����έۇ��^UrV��=�G����A05:�`+�������d��o����dv ��s�քc
�������0?E�_lҀ_�
�G{���
+��K�$��c~��g�-�۲�*|�5j��h��?p)=����n���m�t���ޠ9�?�ܿ�����p1�:
�M_D�%1 bDY ��>>�'.�x�
�0g-~��d/�v�`
�Ow�R��l�
+֧%
.��Ͽ-��b���������
�ܿ"n��|=�uT����*1�
����
d)�	/���p ���c���Nu�A$�/H��ǔ��ƛ���?ve8���� '�N,������W���̆�H�����T,jf4j������:�|sz��, �cq�q�u��u�E���$�&e�n����ǧ�
> {=�-���F4F��M��N�~�
����{ �Q~���ـ8ݬ�;���|
PO����jr�=�-�.h�7
Z~���
����k]������mKB�1��������$]v�&	�a�t+4��(U��T��lkW��:[z�
6
X�ca=	��b�n�pusq�b��e9h����|��+st��gļ���DO�7>�)*iޯu���o{��z�]��Y

G}�
�3N����A�c~�Y˫*�|�r���g��I����b33bLe�.���<mM<<]
�[2Kj��Sa4
��z0P��g��}35�{3+�'��A��Z����Ǽ�ȡI�94IXG�ku9`j�j	��R#:S|nM��Z���n7Tϳ�` �����Z��|���<ճRs4X�d@,W\7��JgW}�:ܑwھhwZ��`޼
�{SKq�?(>�I��$a�u�O���t���F����?�б��ġz<H�Og��C�Q����V7,5�.�n�;��i�}މ*�r�Ֆ��[�7է����7@��F��������,���
�\��sP�
ճ{
L����
W�ʿ��_�f�j�QD/$rh�L_�2/?;;;z�}vZr�D���:���
+lÄJ���R���J�gS%��
+V��*���/U�ܥ�p�L��D��Б?�E%07���_�O�!�cw�-C�/Yb�Ĭ~߬�r�/��SLژ�k'�<M�>����-��6o�����u
9�
���]�v�r���n��ik
�܆
R�R.n�6���P�/�mO,C/S�U�Az[�-��bؾ����O�h��2E����v��W(�Vs�mM���N<��

M��x�fD�/k�!�yz�F�mW���J`��m��^���ÒE���.-�4����X����n��y����� �x�]x����s)�#qcP�������ot��Y���Z�v�E��[m9J_g��7�Y��J)�[��������v�Mƭz�X6��e-k�R���o�BFuL_�j�h��y�:����s.���#�
������w:tʟ��f�E����R��GQ��^���n��2�z#��Ɲ��-Ed�0�X�`�>���
�!�H�.^�^���د��)�*�Zt��d�YW�+���=�6��
&F�&�,ml�VV�F�O�Du���J�_����3<̬��
�hm�e��!�m���vK�3�z�=:�Ff!	�g��5J0Գ�l at w���`
t�=�GN����~3�/~��Y�1��;��-Kڲ� �0�R���a2|�I+�iKQD���Ѳ���[�n��#i�.>׎h���0�ׂ��_~��@����r���v�
�$��yw
+\��6�g���������w��[i̤��E�z��2�y�-��켓FU7�>
�__�zQ{I�0��4ƀ�A��D#mQ¸eq�){Rzxj��y~9��y;w�s��q�U^�����z�J0��Zg�z�gD����EL����%9=��
���팮�{Ô�+��k�K�ҋ/jTǔ�0��z�z
oy̜}J[E-�K��۶�
�sn��� 
S�s��XI,��9��͈�I_
+�	���~���]�
��><rhM�d_1dN�M2�/��yM��x����K��JO�J�Ҽ&���z߯쵼��
	��U��R&z�W[c�m�-�w'[��̩��2���E_F��qY��0Y����*���7�s��'&�eܷ$
+}#��?;	/M���
l�g��
�׵r7ݜ�yf��i5J�7|�����aլ���|��QȬ]�}���Fҧ�'�������H���{�/�M���Nړo^:��W�A憭1M�q����	�c�x�T(�xs��
�_b�n�B�u;
���
+�F��^2�<�֤���t�Ԥ�O�۬�O�U�/�O�n�8�k�/2ﺺ?��5Ѭ�0���m�_+:�f�d�9�S�6!��3���/#�#�/��s[�D
+s�"�Q���n�H�+>ʡ��h�7��bXD�C
n������p�6
DPW�vw�*���lԎ'Hv!L��W
*�����#�����R��$���"�k�3u��DKqK���@��[�>}�ѡF�݆�-Zk���7�e
9"ei
&"�i���n���ڇn��g��-"�Ԩ �B)�͟X�gmUn��G�&��cD"W&�,R{�-�p�
k� �tEzG��Pڮ���N��g
+������ݥ?�k�F�Q���c�
c�O�������ථ�a����AZ�2L
��cʰ{o��]��g���H��2�}%��l�T�zY���d��K�m/\��Wnb@��;�
3��I�*�̊ܡC��C��d!=	�x`8F�4DD�3��;4��=:��R�
k'��BZk��^&�����M���f��@����
+�n�P�{� ���b\e 72����8u���j��7~]��T�.t�V*W��S��ާ?HF��[��8��=̲QF�����$��d�
�y�u�O�{p��^��45�E�T��ǧ�����B ~- �9
 ���ĸ
B����6B�}�0E $
/��l>�׼zĖ�~�f&>�'�y�q�"9dٸjYY)�I
��{��e�G�3���v�ꀜ'��>g��*5J�
P؎g �-W ��� H0CA�e�c�
�,/Fg
��r�
+0 �,��#���@:�|�,�x�k�0�� �>\�~}�>��� �%zxi�V{��
���L
k\ӫ�q,aOA
+=�Ng��M�R�4�Y4O�S2��Q�Ę~ �@�=��7��"@
?�}�b�P���E+1�3�
+W�⫝̸(�20º猛�ʯ
���iT3�a[
���� C;���
2�1�J� �w����
�t��
Q� �y�l� �t�0|�8?FpH�����16]�Q�:��
0h,
�}�GF�
+��
ГUK��G��ط���/j���ۺ	6
Qw_��0� �Ljkm���t߮n<*}�(�=3�bg� /�IFD���M? �H/�=�}2�C�3�����%b�{��m`�,<7����+
`A�X]�y�������'
� v�bf�+�7H�
$�[�懋c�
�$I$�Fӣ ?;�*�X �s��{B\��-
�����W��QQcl��ܔf��
�w5������|Y�|(^ �e���!��ö֙�'n�C�����-�����^3)!	��e����!��X|\���l"Y�@pc ķ��"��$�Z$_ c��_[0�J1^9@�
'F ⣮����Y at lq+�k�Y���ɽ�Y�;�y��k�E����iX�u�~�N)�z�Ly��F?�\��i�%�x�?Ց��.B��*d��Fp�r��b�LF�ad��1�R�gPl~��@�B�"��U���
+����=W� 9]
���CܱEl*��r]�w��	+B�
�
9&�/�o��
����2+��E0�'�ߠG�~
�G�K��c��.���7��n�/�nQ��I��k7]���Vi�<��
���i���<a!�!����L
+BT�>PlJ`���1ݠي?�J�N
���7?���O\���d^i�������A��8�f
X�xǸp�ʹ-�r� �<{�S���_��b��٪�
+��O��k?3��bK��WI�U
+��H"�܆���
T^��?��ޤ��r��������ό߅rx��Ř] �j�
�]�|�|:�<�C 
}��OA��n4
+�}�fu]o�'Dv��˰!�|��
�H�A�ݽ���
r��
��������$��2~����7������
Z� !+ݶB�\ B� �6�@��
�B
fz�B������|��n�@�C����i��
�4��TYO����Ջ�8Q�o��W
����f6������!����o�9��k@:-����7��bH�B�)�d�ӾJ�1�^ʩ��=�t���iG������P����,�V��4Y_�����?3�&6|��K�M
+�%��RT�~c
2K�
2/�*��d>O����u��?�$��cu4�F��OQ��g$׼�D�J���K���FD�s���gyz<�tw>>���ov�ØݧP���8����Џ���
{��
�A0���$6y��W����o
M��;�T��sb�
���sd���:?+�1=���f9�u���̓
ߊ���uT�ܵ�>z����˧��,�Ӯ�K�t>S��9:�N3bJ<��R�'
9Ό���?N��o/��BI�������G~�=�ZT�ֻ�8|��l�������0�oV�fxX|��|��
�e6���y��d�L���

[.=js�4��\|�
�
�
2j������������*X��k@�#�벛V"�v<��%A���׺�WON�ȡ�09��������LCð&
":c!ļ��{��������8��z��+-�6���ays������ͫ��P�O��VԦ��[O�6�w��
h�n�K��i@! ��z�B�-@�$w5��^Cnx�-�U{e���7
�y��
��D�}�`��nh-�
�(m�
�V[���㗾���w����|���c��i at s�W���:�
�=��mj��;Ww��U�n<����qڹЮ�fδ��}�~����_��19��ѓ�0��S�
����֡��sS���g8��g���[�N�#6��D�ָ*�D�W
ʼnze�igk��m��5�f� �4��?�Q�lR�qi��z*�,[�2�0�����vc��
\��<�E:i᯽6�B�z�G�E�ĺ��
�:�p�~r�e�{l�c���J`�m}N��m �Sy\�/e(�%���%t߁,;��,�<���<�
�`.���0�ܫ��fb3�`�4Tng㹳�:Z�K�y5��E��;jS#�7��
n#n�}���
���D��c?��jy\��J�xq<4��xhv�C��=񶘾~����ʷ��&���c.(="�~?��K���^&t3]Lgg���EoWW������n�k6)�A���n�:���dΥ~�,������WS{�vu,�T=ެUn��U
[kݲ9A+��7��=�@���0%o
*ZI�l��>���

?;�N�X}m��&������ *�YFό��qA�H؊�vw����4ޑ4����L?�5K0̶
+b@�i��%����w��W�W�/���Y
;�<�D�xP�3�AVY
:��,!�Fܮ��jWE�_�l��=r
B,ŷR�"bTMnWئt�J=)������܈���
+�.�
+��Qҳ!줭�x��0(H�1�`�˅�I�/j��i�鏑��9��ɕ���N
ߪ�R��4C9����@��r*n�R��cJ�cHV�*��[aJcf�8���H��0n�Y��o�����ZP]W�E��wL��&�s�9C��������Dz���lL�:�\s����F%�T�R��*c�r�C.S�
4}5R�(
�q��!��0
\�t���
<�L�\�,��5A=
��؋Z
+��
+φ�'�
M~�'�X�Z
�fg)�ءQ�!3���*��5c'�{���!�'�^�._ŕ�o�m��r�`
9�rP/)ɨ��!��H�fì�q�Q
���ˉ-�7e|�X�b.x�v����SA��40�+��
/:����j�7\*CC�hb���mWg
��ru:��sq��.ͦ��gf�
����	��ni?$����*zefjH��
�ɯ��x~�7�
^L�U�����
+�bN�˧;�I�ǹ�i/��L���Z��h�t�֌
Մ�ލ&�7�P��*�
G��Ғ����!�E]�yp>��|�t8�Qj�~'ޞm�tVa>g�kcIwo` ����
���b���(ۺ'C�ʠ3œ��\W߬�:O=i�*��/��V��:5a9ը;��:F"c��&�U���R*���T�u<#�bi�:sh�01���N=űHč���ɲ�s��E�zl
+9�
�j�8;j�”ڑ�|bb0�
�
[5u�e����IUm;�mh�
���e�CM�
_hԗ�V=
��j̠Щ&��M����QHe�
hf�
��i
A����\9gie�<Z(��\y,.&F$n�$�v'NG��Z�&��kG�fhXq��ٸ��cvZN�-f
+�G��L�,Ź��H�1׶SӢ�KI=<
�X�XRc�zM5U
ڪ��8���DF�͜�j�ؼ��Dܯ,�WY���+���A�@����qF�1���ZW���=A4����%��q�v���:��z�
�4SvK'�4�Ҥ�k�D�q��믡��
�4���J�,�9��hVm��b��+T�
��r��M��SZ!���n��%?�
)��wh"ei���F
Qh'D��6V 
+�J�}m�7�W
��!g�����l��}�
K-����㜹�y�v�
+Z|ʪ�8R�t�Q�;���g�k�\]�vb-�_:�\}�rJ�EYP��dUQ��;
+G�8���J�n(.����ߴl~EZE�iQT�DQ�E]A�KQ*ꑵ�I�?���]���ka�g�#����o<=}q�L�,e[�r�Y���N	��+e(^]v��^<<P��*jVTJ�]�,ȏe�(wN��A��_g
 �It�(6�3��z(�"_:�"�@�zM�z����ɓ�R�!J�c�(�nPgDq^8sj�%���;�c�Ybj�+��{����I�u[e�X��?hL�.��лh0R�jb]�PeD�
e	_��
����k_ED�ހ��J���E41�
�5���ԣn@��C=�iD�
+�e[wB���Q��)DY)Oe�I ����
�Hʒn��M���D�v���4P��єTK�J5��\�~���b$�4��cs�ѩŽ�P{ǨeQ�(\�]	��UU�UDy�5����\ ��S�4����D	w*��&y
��MU�%����Ҏ��.�����"�C&����xr[Y��
+��F⽐-X8f
��9�t�6��c�5���,Z3a�h԰�k�Xk7�j�ā�0���\���zr���FT�nA��.�N�}�q� �̺�
�#��A�>���t�-Q��ʲ�D�a
�#7�Y˲A�R��g锒��E-�LR�+�#��Wqvˆ��7�5t�]��i�XT�N��jmQ�l_�uuS���	�5�+����!����k� ��c��
+�%��j{�qT"���@=�.DU2Ʃǰ�������4�*��#�p�����#��l���-�M�a6Q��S1u���g�@�8�|���p�'}J�m
�zb���Cy��bA�ȡ1L�ZVfEc�� es����)��u戺:�Bԙ�zlw�:��P���z�̈:j�S�H7A���
`xվ4��m�0��:����Z��r�5RŁ��@��\4\$C+���׫1HG�
<YB�ɘ4Me���G��<�PYQ��]m�H$����.@�vcY!��k�hځ�)�Έ&�B�GS�h+=�	�
ԣ
A4!}�zt���e�^v]���4M"]��L^�F�[��<5HVsf�GÍR��P.THf�~����ʪ˸��S
��}`�?��e]�h�T��ϩl 	*b*DGj��C{�_���h�
�s"�i��c����c�E�qs�zt�6a��"�
vD��-i^ Z
I �u�J

[&��D��N�2���Oy����~$�9����U3�����UV
v�R�ŽrM�f�ݳ���#�u�#��na� �Ĭb��FD��X]O�
�0���s����P����"D�7 l�.�� :�l��lc+�#,}j�_'&X��z��)\��B˘��1ڬjeWC��-
2w�YD�kC\
���
+�l
��㑢� l�9\ۢ~�]�\�M"8�P����#��0�z��6����� X=�A��fJ1c�����Y�
��=�o�;�WN�T5�1ҡz宺�|��
�*��yNޒ4Pn��i*r}t"a�#
�˼lg[D�]{�z
���jWP��
�g�iD�K�}�9��K�Ɩ�#z��M&׳�K6=��1m��2>S�x!
�EI��5_h36����!�_
ʶ���
\h����=�C櫍5۔z�Q���[�"_��-$�-��"�#�#�Er
���Wv*w�7�6S�������m�e^X��D!d���q�҉wo�@��{��+�A�w��y��=��R/�
V걍#�q����
b�伈�[h!�^Y�k��O�
t�Nե`IT�ʶl(	�n���T^��(O��ŕ��v�=q�=I��/nΆo/*��mA.h&��lF,����zw�@,��X��8b�'��1�#�1��㩚5�ufHWd��ǴE�
�j�t�=> Wn��Jc�m���{���}���ʡ��-c���
+���#v���1��
�5f�Y����p!v��������~�
)�RM��
Vmr�i������e|�R,
D�&	��6�΂9��M�H-B��vP�
����u���=N
/�P���Gz�d��<wCV��^ZHc4�F�i��D��]���2Vc9�]z��|">Xե��Ԟ
��)Ww�\�֗9���h�<m��_�w�Iύf��
Yr
s�zf�Ϗ��ak~����mW%���[�$e�7l��p���p�pQ&�'G]��2����2�d(�o��
����\��0���5*u���5*u���5*u�Ix �N��;����Yĕ+s��2� �_
��䚁�j�)���]	���#�V_;�eJO�
+^�ql'�f�Iѵ������k.Z�ф3�r4\3#��h�g�ʹ��v���3�-�Р��
+�)L��
Q|��Ţ�Q.޳T{��۔��Ѧ�>™Y��d�|5)�v�����,)�"���h�Tj]��=
'uSkzn��M�9�d�2p9�	�M�nӄ�z��V7�V�.�Օ�h.��&���k��YG���|]:r��Wњ��������������

+�p28��}��^Ge�_�.�(���`1>�����~D��$��"��qq�D�
+�6D6]��:��t�����2}Q
U����JN���I�͡�uhik5�ir������lƹئ:n��]{�
���S(�Ժ]��h�
,�yh���#D�i��ф
��s)�l�GI��u+X�ގ�ެ)i��Ҥ���vj�5����(7.�D���4j�0���t
+Ec6�Z[��>�������W�S
:%�����k�dhD��8�M՗2
t&�y3\.��T��:���>��%��?��u(R?��6���+6�CB�R
�Qc}�Rfѱj:�m�
+F4��Ӫ��N�;���X��U(6��
�-�%Bd��,h�1>?%M�ܬiQZ�K��PP�픡�[9Wjx�y�Q�k�gɠ}�YF�F�W���T��ڲ�ܦWT�w�rS[�լǚZ�
#ŢS����
�5��ËE��7\�g���[h�P��
�PGI?��j=�‹#�-��m�Z���ʬ9�פ=�P
Ct�I�h�Ƭ�NcJ� ����%�8�ԛ!� B_��zv��(����\��0>~�������\9�Y||]�JxH�~��R���K��/�_*�T~��R���K��/�_*�T~��Ry�Jm���^�"�
+�]�2����c�T~��R��r}X#ֲ��,'p[���}ų׫�S��A�����;��Jˡ2�m �j�?ͱ_*�T~��R�=,�
+SL|*��(����T�eP�Y�����t�2`U3���.��Y-Z���f\��5b��:T��ł!bMj
�9V�z�9�O��_*�T~��7P�˫-����=�x+�x*vA��{�f@��N��g�?K����f�1�ʩ�\S���"�B�����"�ه�ޗ
+��:m:�qՐ������	ꙸ>�
��t�>�}r�_�c��`�.IV�ƥ���z��.�J�
R�v��|--�������K�_Le=%c[P�'�C<Vj�<-{s E�s'��j.CD��D߬�I���ϴ����ˍ`�e��ɡ#��8�^X�H3a�摺�(׎ց~�bEQ�t�_��8(
+4�%QR4�Eth!#4�i�n��9ELX�ꑣ)�� ��Y�]��8�
��&k�V8�Xgr
�m�Pl�-X��J�"ؿi��R���?A�k�\��NEH��^*oC�9�8�8ܟ�X�.��t��	�XH��]�_K:�
+�.���؍�IU'��|)ך��+5A�+�Jʏۿ#�MK'ĝ�`��/��l��Z�0 J]]hP�
U:�
��i
�,�՘�V��5��Զ>X�(F�R�R}�Y�^⾚�H�������
+��3ԏxr�:̜����Ւ��������߹���R�<���0�2�wb����99w�P4���D�Lf��`�7z�LB�d��8ԙX��	�?�[�a��ry[�h�#�ټ硕�T�B_ăN
����
nJڐ�
h8�&dA�
i3�&�o,��21
��2�a�-d�&��~>�tj8 at Da�C;!�-�t'��\�����;â>���P�4�@:2�Y�K7�
��
��i�J�e��Ri��4��
?�L�k��w�Ě���K���g�@�c~Fe��fN�A����ڕ��8�kɵj�w����h6���j������V-nA����NY`�K-Q��{}N��T���
�
�7��[�p2%?@����X��'��F@������v�a���9{��3*4
��N�I5������vǀ 
)�x?��4qe
�
��xt" ���ވm+^EuG��� �
x`5�d��/�	�1�j(���v����/�R]���sq9�+ɔ�{�D��h��K�5{L�T�R��N�x�]����j;��c��AmD�~�1���
�1,��
,Ϡ�t�m�Q��9b�8��2�0_Q�kK�(ti��߼n���2��_F9�֦�t�y��l����G����A��\�P���Јi������0�0�\�Hr��2V���[Rz@��
(��B�T/����͑>�ձs����0��𰟇��P�i�����n�N����K忋�-eH|9�׽��0O6
+�o�#$U-���
m�f<:1���`�h�
+�}B\�׊���
%wDoX�5��4:��hCf�W{\7{j��H��/�� ��T�K|���6i��� ��L��R �|������e�Ad�w����$��h�L�eƈ�C��{�����P�Tr�_�I�������!+��1����XL7�P�
�7�]��.��9T�%��h��G����
�����r�K��G*xs�S��O$p��

�5�!
�L�Z�C� ?�^���_`�t�\_
x#ULwM��|?��/s�.����>�����FVP��mF�/
����e�+�X�Ыm�������J(��Ç�O��Jr�-��~��dx���K���c7,�
����Ei�Շ1dW���R�wi���uW���
�ǃ����#����l��id�΀���f�
�T��C4��٭F��@U��*�,"��Q��!�98k���x�–� 
�������Ǩ��{ȷ*�;�i��ơ�6�y*���:�D�~
쐐Kl
I�[R�l����K��j��
��Ĝ�L�Z���3��=�śk��}}9e�@��A+Y�U	������8���j=}�DFW�Z��+�\���:
+�xt�,(���,n��}�}d'���:K�qT�T|k��=\�(�B���
+�
;)��:������i)��Oʡ6�x�	{�	��^Z��:E�
�m!��;�PK���y{�D"T�7L������H�/��V�@c�Y]
�
+���]ʭ{[����җ q
+��\����'����N�?Ar�J�^�f�4\��L�%�F5���t�QHm�k�j	26
(��>a�S:e���*�㩼f���Af&��]�
b
趠�`����{��F��]~�|�z]��S)\�qT�曶��|��)�@�f���A�������T���� Q���W�2�W@���/���;��[5v�i=ٗD�2B�~q!$
�z�۬5m�~H
�${n����A���b_��"��%t5q�Y�0�jh���I:���Tu�G��6�1����E���g
�F)^
�̄>7!a/O�	|q�
+9�t�}�O�����
+��x�_����&�0?J�P]^E
rt�l�9�85
̄눲-O�6"ʎ��Q1�*���j��M`Aox19�M
k0c��T�81��j
+Y
�K��<HJ<tSV�ă$�*F��p��/�h1F5{�q�Ű�dH�V���:�jBo*º�ub������{��'�$������_*����
�\�(�L=l%4���8X2�8��A<�j�¾O�	����� ���=�d�	�aV�_r>rT7����fV^��ϛ� J�u�P-)ª�U���M�I
4ˏ]NJ��R�8?qgf
S�1�C��8:�~\'"���a��s�cٍ�}��S���c�l�z�=�>>���^5��:�Ԩ�^;����ַ��Uu�J�s4y�ߤ��[��
�^_�Z�QL���\�sGo
�b��
�ڗb��& (6MF&@@�֧�+w�5|��o���y*�j�M~	�
���t����C��B�&�9�c�
LH�7��V��G���LU}P0^Ze�w�'��A�a��	뿊|6͕&��Y��3/H	E���!�g�(��S:��p=P����G\à�"[.���p��͆�?���L:ZzE��F�:U^Z�͑��J0�!ˌ���"B��Lm�-*a���=�侢�����
)
�Y]pz��w��
�Joe���d��	�8�r=
�c ���k���"�R(<��j�],�i�z2t��$>��O���
+*�Ί{F�^%IZ�+�j�y6K���Z�ʏ<%Ctu���/�Iz%�WU~��~˿�k��7B
�E��c+n������A�f��]��n��1�Ǚ�}!�ki�J-�uU�C�h�iR�x����|!
~
+�س׺nO7�
��Lj���
+\m
M���_^�W��]�9�r`��m�Rq%ד5��N�"_����a�4�r)/v7-�mkٖm�x|�����nj&�(��� ��Y*(�f$���|-�=��#�?Q���6��
+�P-��k.��2y�����4L�~�\�j
�%S����LT�Q���V��#W%�/-
+�5��iQ�W�FƯ��˾ �g
+�e�l��̜�$Z�ﮦ
�
�.+�H{�GΕ��/�O��ܦ�
�fW(x�
+G!I{zF����t��A��q=_��B�rq6\�r at h���}o�^��Q���Yn �I'��!.d`�C��ƌ���x�N"��:����!K��T�ѫ6���j}Ñ�M��6����p��+?��� ^�@s�1��<���(W�~��������d���u�)��2��N3-W���� !C
�QgV�ʛ�7#����{
L�V�B������ܸ��Ls*E�?J��O]Ś/aE;��u���2�J�Q5�k	`B0[�\ˋ*1��a�p��o�gp�df<�n��
%^*}��w��bl�_�T+������w�����z
+�q��W�qoӮ��׶�\&r%�
b7ڽ�w�R�쁬�~̭$�ۨ"C��*��L�M8��Q��w�$-���t�R�=�t����N�Ơ���8;ٕʄ®9{�L�z2`="S��
(*��A��n(Jk�I�`'�:9w��"
+#�NC>�W����(n
lA����h����4d�{6/�Ȏ
�
��Dl�F�j�(ʽ�J��c�b[�5�9M�Mכ$9��Y- �
4HH��M�}A
��ܟ�֌q|���>��{%�τ�1�	�<65/ ��7��{���h��ӄ�uJd
����OM�J]�j��uZ�$_�,y��򏣲]&�����iw/'[m��-��i����lѧ;��_,�u
+�f+w:�(u�IY9T�RΩ��{�W�.�̓1�l���b��ط68�"��{�_��a�U	� #-���kq,
+ךz���7�ֆ��4}ë���2m��_�\��~*��xP
C�G
+���7���>cJ��Nɱ�]v2˽��. ;fձ�鲤�:9�T.�o�;
�}smw��En��9���
��p���f9���Ϥ�
�w�ʾ�*3�|��\Dp�\��/�;zࢭh;�/v˥\�V	<��b����ߦ+�X5����8��d�E
������(��z���(�=��z
+�0+Sy'
�	
ό�V�f�(��F�����$!��TE�X��C��mD���Ϝm˼�,��b�\�i�
��
��i$�cm����P����t+�6�=uT�+�E�6���ɰ����ʿ�J��^�J�
�7�J�$��n����u�^
9�g�p�Ƥ3s���]� A,N�F<�o��KQ���F�UE)��+
+\MG�^m�{�[h
	���Qvyc�
����4�h�1�����3zd0�87������
$�fê���c�L*��ݣ��x�C���hX��iv�h��Ꙫ-��`�WR&J�V
+�Q5ng��>�{~�Pk;�)��͙����߰����K��uC���А���⼬���@ٻ��Ш�e�s5s9��f�:�,.Wl\V�4�+�.���
�@�n��wXW/����
��H��$|�ܓC�L�
c3����]��ʗ��sܞ�����j3�
n��
��
! '���1+__G�1;�!c�:��=�ulej��
��T&�
+:�
�a"A�ԚآW�MH���
l�c���ح�)'\���&��
+�����_*�T>D���g|�(xԲ�1ds��l�߷$��^5:nS�˩�v�#W"L6�zĠW�m}�_�r�C�i��#V.

;��C*[JE�n���EP�����W��L��� ��i�./	^���xE|�ؗ��5����E��ǣ5��5$���M�b�,��8
���`#�j^V�19*
+��#�����)��T��5�K����֜\�=�{���&����tV
�`o#r��b<��-A�c��v�C�ۋ��x��b��X����D�M���&��x�ܘ1P�
]����Xo-�
�x�s
X@�6bl(���>�d
�R
�Y��{�o �8�P��G	�N$��lw�:ٹn������E͛�3�)���1\�����.�`�	
�_�`��]�n��`S�����/�	�2�O��N;�ηt�v��)�ܰ�v2��왼�nʳwf
˸��$�޾��V�0K
+[l�c��|D}5�+!��o�Z�)ka
&��F���r�Up�)j�,��]����EcdrN�2���<DtN�e�&

��f���Q-|���/�ߟ����/-l�5U]렑��� �WC��o��W�/�_*�
*�/_}q)�*5�+[-�������6���j>EټtX���B:�1+a@���eN
+�nM��5���>�ܚ����C7m���
�ǼBF�U�X���
�8bJ5��!���
\j{�N�43i2_�P�ҟ�$��YKzf+�%C�R�i��j^��L� ������K�
+󰷔ŭn6p�"*Hn��c�ۇZŞ��.��~���#�e�6�C�����������վmu����
i;Z���hN[/p�Z IN��`�K�)�+�&��rp8��$���%�P�g;G���x��
<��	��k_N�����RV"��4�wKo���?g
��n��X�T����_*�T~������/�[�M�X�-~n�]Q{Q�5y깓q�Q=,*���(�T}��`!fZkI��G%�C��*bj�b����O�q%�
�\E�����Z��شwz�_;矆�����.�B<�	��K�M�x�(i,��?&��}����H�_�
��h�I��Od7�l����q7[��"��P��^1�!���{��k������n���B�����0=����y�����r�/o�{�R���'����k4=�[A��š��!	z�������q\R�]n��w���<Oك�
O���<�
��d����"Y��W^����d	�9�N�d��ş��[_��ݖ�����(��N�P��?�L�ϙ�#6%�h��2)�W�i���F��3o��v~Χ
+���:;v���pJ��G�FM���'4�?�r��j���󽦝�N���C���?D�L�3��,�
�����H���iz��n�R[`� �y_
F ܞ�����D�{4y�a�]������0�����C�pN����
��W�f���+5��jz��
��Đ�m�5›��+����/R�;%"�
��
��?�?Dnw.Mǻ�d:au����
]����
���UN�������Ԓ�N�k��r?����F�-Fܷ�S�k�)�Q����Mi�E\�.ǻ�Th4�a?��}����R�Qr;��ܽ}�c�[�Rj��Nn�4:��h쇨u��t�NF��?,��I�52��b>����k#�$��
�/�f���)���_����p���s(2s�W	E�;��Ȧ��[�-��F��!���2�̷�"z�^���Ix�Z��	k���锥:YY����
r�
��m������n&'�o�D>
}�m|]���b0��b�
�����������U��F� [...]
�`c��#��V��0�����Ԍ���(�1e��y�զP�Z9+����"c![
:Ry�ˡܚ�Q�
+ K�f� �m
+��Ҍ
+�����	go�P5�+#��ˎ7���J��Vsf�|�
��Q
E�s�>v#� ����\g�ҵ�
U=��>�$jˑn����06(*l�W���Nq�]�0�'�>"����(��0X����jF�ZJ^�.P�
aDɘ3� jS(˵���ɐ�Z�]2�M��#��NntE��P�q�����\ɪ��@
Nԃ��^P�:
{�1��
@ {�{.ь=Ԥ��!��k8c��3�C4�Y�X#m�L;j��''�JQ�݉޴%M6�;.�V�pP�h[K�]��hZߑ���?C�Z��݂Ds�D*$D4L��
ǝ(5��ť<M
P���q'H�'�k!�ij%��� |���֫�P�u�H'H����w��{$۱��|E
'��Ͽ�J�{6���MS5�ډ����'�h���)
%����D�ya+��#3
ѡ�
g
��x��-�(���­�]6}����!J��@WR^ɮ�:Q�BEf�;�I��$�D
��<� D�|��1 
�-F
P�>oW��
Q�&�s�cy5C�{v�X��V1w›D	Qʺ�
�F�=�����.\�ǥ_{%�*�#MTC��C5���
k����:j�;
	�W�;U�ƹ����x��
m�j���
9��j���|{�Ŏ�!�!�
�
��e������-51
AC����F[j�ǔF�=o����m�����
��n�*����0�Zv�[>��I�ףE���gw:�R��ߦ�nìη�}_���s�E-�������o
��Q���[���H�
��K����T�a;��֣��=����!]]y\��o!
�$�~�V���
ƾ�Z��m���:����o��_�0	�zs��WS��f�p��!�vum��������>�|;l��r�
�;m�bgy~*ı�]���r��zqR� 9?�����/�E�|k�K��k
+%���|�UC���7'���ܿ�����9�/Z�0Ű^W�tR�~�Ÿ���9W�v<R�#x�WF����h��
�� N�aD��[No>�nE��
��є���ul��a�q]C�Ǚ盨�XzGZ�F�GO�A�Fz���ނ�1m�9�A��f5}�OI�8��
+���E�&*���D�s�
�&���I�/@��!G�0��S8�|���"�H �s#_���}$j)+�[
�X��D�R��J[�D�
`���D-�&��
�1x�8�l���/@Ԧ ��H��&����c��I� Qڦ$
+l�*�(8%]�
3X
K�8�j�)k�&O�u���e{�>����+�RZ�罈�����
+��1F_�Q_3H���(��
+�<�e�����KҌ�q�[�����,N?d�I�'�����+f�K�B\PQ
+N�_�0,����v��fR�*&�|�XL#(x(��3��v��ӎu��x���=QJ�狢J3�-f����@�T��K�߻L��(J?�b�?Z�l�
5���
��
��\-P��
pщw
+t�$�%b�p���'� ��n�X�g.ϙN?J��j����t�z�筬���ǰ�?��V�
+Ο�6�x��b��t|n��u�`f0^޾�,���1]ؑ���8�ș���L����Ju�������<�)ɉ�Nw�Ӟ�W��Q=M|�U=�Nx�8���o����ы��S���f8�im�	He��?s���
��q�h?�My���3p�%���*���
zhf�;�
��;8��u�C��bd�Z[���tد>
�VE�
+�؛���M�ٚ�?[�X��[
Y뜜
*���XcQ�J��c��\��-Wk
����e��dL����-��s�bvdLD�F�
W��1?H�Ն��v�~I@��(�<�s�\R���,��R&<�Z�vDC��P�5
+6%��ü���=3
L��3$
�ܭ���9ƙ��cϙ��գ�
U=T��'ؘ
mF���0��8�U�5&�1I�ߕ�"�-ɠ�l~�Ώqf���.�N�m-�Խ7Һ�P��>�<�I'bX�/jQ��5��&���c�B���{�z{1
)F�M����ƞ�;nM�5�Xc,K�M�=��^$[Ӿ�1�F{�cW��u��B���}pM Q�>;��lc�$.d
�}O4ǃA
��y��Q=v7�Y����'�7�r�0u/��
e�>���~�m���=&Νxa#Ս 8߉�~2M�#
�#�X�w�ޑgZ@�#�e�g[���{G8b���l82k�[T�ѷ�t2���kIV��m���k�ңc[9�v�N
�
�GܸT��[��򻆑�)x��*  �R
���;
+�}����^g:t|~W1{�]����3K�feOlyS��0�=>F��ɋ7�RR�L��$gFy���'��qA����̲����g�{扸1u�pH{�]J�.�C"�K��d�xoh��z����Jp<;
�d4�k��hh����<up<r��-Kso<F�P]ޤ��iUs@�
�G�`��}�J��"a���_ c��W| B��7�_�|%?����mJ��h�mJ����&Q���)M)x����UZ�N���i��>����b����> /i�
(u��wdWaoO���uf΀
������* ������i�~�@���1�R�1OmY�
������زZ
ƎߠF�(s��BR'{r�I+��'`cR9��%�wv;�!M^��[Ac��:9Lq4py�O��u�{�U�Y;샤@+2�i;/J �5��M��}O����э=�J�D�5
�-
/o��&��7
�w|��>���}�>���	��"�ʇyy4@�4��Ѫ�M�J�$�l�P��v1ʬ����h����Ȏ�x]��V��-�0uD(�ߕ�*-�?1�9�k��5���k���n�}�V�i4�P�p
��s���"�-��07)x�f]
>�.XV�u1\����>
'�
��Ø�F��)���<5�^�7/r���,۟,E�6���05Î
;S�xh���h'�I�0O�yb��[kL����@�[!�ݼ?mGXrnڒ�
C���~�M1�g7�!�a]�}�
پ
J��m߃7j�w⓼R�q���{�3,h�}�o��w�}]|/���ե��Ov��G��:l/���=o�����[�G1
ʳ&����^��X�P�솼ؗ��HB�o�y�
���a����Ճ
G��3�)� ��'%��o�8�1I��ҥ�j�*�1	j�����+n�FC���p{
+;���b��"��.u2�%���m� ٖ���?Y�6:�lKxH�}_Ɋ]�K/Q���
S��?I��M
����R@=h�,��k
��$2�f ��G'I����L�����JA|��ь�S�.����+��_�����
LP8�
++LIi�R� ��S�2�3:LA��b�c��t ��'0t|��:Z�G:q�5������#�n+�]
�8��;�ʛ:8���|
C'������Љ#�h��0t�$An?��G�}#R��c$
��2)�|�v�0+ 
{&C_�����;���sNA;�,�E�����p�0��$��
Rbɟ���±��|�܉�#܍�i����`]��i
i|�����9��3<�	L�v���aw��֩'n0Qy�h�%]�
;�ď�:u����]+-�>�~7�}��Ř�����t��y
+v�
+¬dA��d���\�~��ݞ��Ȥ0F��A�1�a%�%"���C��3k
����"��Y,Q=
�
��K��
2}��Y+��A�8�ў+��l)�3�%�w�L *�	V@:
F���J��k��͉Wp|�
^U����M������J��;�S]���Rc�N	��O���qq|�g{���{�`B1�R�3�
�x�<o�I�'�z�M�
�d~4��돷9�1�DŽ�B~�1�F{�1���~�:=��>a��0�1�-�M<�-��ߋ�O{#�x���~�l
��>?��\�"�t�
�PS��ڄ
����z�i�<ʱf�;OpoF��a�X����
�W�0f@|�(9��M�rIܥ\8?�B�
i�F�+*ɱ"!+�
)���J��?di�I�:ˆ(nя�1�K‡z���w������_cT�ԟ��ݹ��~��!��.=̋��%�
�KW���C|�xd�;�|z��tI,w�ߘ:q<2f�s/
���@֘1���"���<�^_=6lRR=2���
cZ���������H�"�O	�Ф
�9�><h
v����y* ���[���)aˁ
m,�0VϢi [...]
+ݧ����>"�9�\�p�˺x���q��}�:a��S�([
8.P���4T�ԣ(+Ԝ{T�3
7"��(�N�U<
�,�i<ܧ���$����p�e��t?��� B�x8��n�x�'h���db�}
'C�A5���qbை�W�.)x�'��!<��
��k
�I�rA'/_ at R\��m�%�yL$/J�g�_}�~�EB�vHCJ�r��q�
��
��Z����ycZa"��\�=�hUA�7$^R�3�*@��V�$�!5?@Dq3N�?�4UC^�c�b�4��I%X���=F�7���'��"����nG����`�y_
A+,!��a$��Lc��B�����_�����gOM�ہ�	"��	D*�Y|
��9|��9|�j�K�<1���CP���T;���"�j�	�_bo�O RE�@��5��*z�q����bAF7�+�.
�C���DH��h�� ��}

+'=�;P8�T��p�+�@�d\0�
+��Uh���߂�=Pi~&��b��3�\
+ at B8#��.&��{3��c�r ��Xi
߱aF'v�a��xV
�\��jEB�Լ�"^:	�fN�`+�;�Fj
��T��������K\�g�]�FZ�Z9@�C����{+��1
"R��b�*G�X���
0�W�@�����Ĥ��#�fD�{��5
 L��
9�#�vSԚ�G�����n7���5Dv���e$J�H]V��M����]A�]Sa�7
�+ZUA����0�K%������l �ImW�K�rv�(r���iEv��� H���=��X8
�͒�
��n}1���#�]���h��J/%4�����D؛K׮�}�X��j�=�J&]��+����k�aR›�@�
+Jxs�����I��i�y�����xZ�b1�"!�p
�b�U˾#�<K�/�_s�Xy%�j�V�e?������ērb�>ZI���ӕ�`S�����L��-�v�<��>�Rf���'u�^+"'8>&^�r��؈��
<�	��R�$�ΈT�?
��,/�g��a�|,
��(�����FM;0^�O��<��E�����y�ch:X �5F�h:)�n�G�=�ZM���(C�(�����(������\��h:؜�{�G�t�����?G���
���t0,�H����`` @�h:�f�X!�3h:X�`�0��X�w�҉T��!�n)}Mk�{��>����Ӛ�?Eӽ�1Ih:�
{M�j�9��h:����u4
���V�Mwo�[7�h:�8�����O��`�}
M�!��Y4ݓs��t0fH at r����
��H�( ��
 Yz̯�
��w����D�k��T΋��ܺx�^�T��zu���[�:Q�B��V�wI���԰_7;�r{Z�V���U�x��Hu9ɻs+*֩g��.�����T>M����aJB'"H�M��%@������,�~4(s�,
F�I.^�N�Έ �Z掍�(t�"� �z|�O���P��Bw/y��t��=����c<�O
+�=���2wWk\���;�
fS���j�����*J�
+�܏�b��\����ŀ�~����
k�~'
�}@��_�H���D�z��� c���y3:IY��D�
OT���Cn(�Nt�p5���^�d4T�s�Pe��PO�
I�Pϑ��w�B�����Kl���'���+�*�����,���
+�\`-$A1���K� + h,,^��w�6?h�$)2�a�`%����N$Q#� )d��5-�<��a�gƲ�@?	��/!Sj��ط�U0��h û�ZI)4$��ֽ{�+����G���+b�n:E�{�p~��a+^,�Þ0�{�+� 2�:
�A}x�L�(��+܉�+�bW�/�p^�oCx����V��!#O���eώ�x�R�GpI���GF��%I/KiL8{ף�����A�;�Y�A��O��c�l��9TS��(CVn�ׁ�C�H!����s���T
�����Aܛ%1�
+��3`-[�������{
�^��ₘn�^11�Cİ�_���C�F"d������G�0&I 5�����Ob�
��+�vF��
In� �+Ǥ˜�c 
��йR`O��YV̂���WtJ⊐b�La��g�
Ok~K2
��a(X)�U�k����8����_¸�
O�E��y	$��%�����I�VK��r�7��$U�{��#,{(���r��{��sԳ��v�^����0z����i�x�Q�W�ۛ�V�Y����@0a���!�8
i�Y��6
t���ջ�FN)��u�'Ά����p����Xx8�=�sAx�T�갡
d'��k6�@xB�(�����
����
����;��
u�]�ͅ���r�i��"���&�Bӎ����B�s
+�y��s"��,�6�(���0���*A���t1":��b0�bC�h4׎
��^���d�-�f��+y���:wI|�M���a޴t2�Z�h
�{�m2c�Fw�D7vYs�N!?1��`�
'l���`����T�W���=
��zH��?X�
��I���R(
}����ah�K�I�2�TORA�$ M&�OB����^
+��q"4���JZO;�QZOb{"B6%�P�zyq
+t	
��x�$
+�R������i����9죵awWV���>q��Eaח/�`�5ʱ���{���PC���E?�עf
��Z�gY&�^Zz�(��lM�^�q�FF�
3;�g�c~YÌL�O��9��7��1Z�
+Gݼ��
+$!Nv��ӎ�Ua2C���Y?�dt���(%G���+��3y ��ށ=3�t2�O�SS�<�qv}1������:�ߗ
|Z]�6�Y���Uӿ�nUf�ƞ�~^XY5��:���+�=-��
+Ǟ��y�cO�A��-���,������7��� �
f��$��K%(�UC���+�	�G�����������,((�F��
I� 
+�*HAJ� J�X	�C*z+*(��� ��ፊc=��{�"���|ϫe}�(}��J����=z�$+����	��c�)����q�p���|�;��(�;�+������X:B�sUJn(PՏ��u� �a~����P���=G=���'rC=��')7��u�n���������u�82˩�'��_����W~U?���Gu�~��y����ρ��'��b]?����W>��'�o���~�U���~^�Or��[u��3s�c�~^�O\z�<W�����Ε����\�9����~�����D��I��~���m
�����
ߋ \�z|o��}����n��~��dR��K��'��e�)�����I�
k�^]?N�$V2z����=���捺~���>�7��I@�}���
+��ǵ-Z������~08�ݘx�
��,
����
�poDA��
�p��}�
+�V]?��ևX����������Q]?�bg�g@C?����
{���k�u�0Ѫ~���{9�,���u�x�����xu�K��-�����Q��~�`�:�Kz�����#����'n����?����S��~o��
bR��zT��P=�'�')1W��~/��Y>�7�����~l*?��'^Տ��~\�O<��Z��9���T�����O��A�%M*_�����RJ]?���D]?V�x�/�l��������Ŋ�����*�n'�;��~�d����=p

�(����8 ��>�e�������lj��q]?�́�
�n��g�e,"�nf_�G||��7׮Y�\
׮�
��{���Y
 �N-�K�{����E+�� 4r��r�<W��(@�!�����	u�`�8��W2���t
+"���H�Q��\�Z�VvZ$��e�NL
N���lɑ�Y�c%���ٳ���"����z���m�̡o_M2��j�[��e�3�I
je�>=+/��u5Nd/�~\�����i��o
+�{��Z��-k�ǣY��w�
E%�
����0'����M�������w]7�EL��s�-2F�}d�R��q�.G�����돗�O}R�8rEZ�Q��ȵ�b}����њ�<�S
+��O�
+�:/4��w:GZ�`&�
z���LAu�P��E�J�>2km��U����rH=�ƄGz�:�((
�u-��)����Z���
���R�ԉ�P�=���;�cI=r\v	 �,Q[K�Ȗ���
�5˳
+̉��~�>�Ǫ������.��d��C�Z�8�"��2"BQS"@}�Mf�J.��
r����ǜ��$�M)�HM�&eĚN���5�m�B�Ep��$�Ic���C�&g
�N�h��~b����{�DD��o�
ӻ[��U�����iv��>
+��բe��)�v�.��'%Υ�π��g�4���J�g�k�ir�
��
r����`�Z#L��]r�Ѹ���t��.s���W�#�p�+�
j���n_�
_�s��g���;=�[�p��@��çU���z�bn�|a���Ƅ2@Ҽ3&�13��H�Θ��?��{2�8�c�)��Kc��u]6��W�q���+@?m�c��ymv\���X�G8�P2�̟Vo��k����5i�7���nK��a�
ƳL$�D����w)�0�
����	�D���fM�b���(E�z.(��n�1�/�e�5)�`|��e3��߽�u	4{�XԔ
�X
X��Ƿ���iV�"�0�I�rBRSm��Z���[��>�����0MD��HZ��cz	���o[��_��5f�z�[Z��/"+�U>W_��XZW�.�U:HӺ�Fq��p�5�B��<ƣX������{���5܉�U�<`j�z4����/��{ٹ|f���X�)��f8�9��X4[s\7���JNG.�W�� [...]
+�U�݂�A���' N{?�F#�a!Ӡ��.A|��Ԇ9�Q{���<��E��J� ���0�s��K�s
	�5���UK��>���9��-t��x�N<�<i�:0�Z�f�
ig��{��gVu�a�%`��
�샯��z�{Z���p�8����g
$J3kڈϽD$�ّw�z����[���m̨W&ߚQK�
F��3r�)�oc$``ֲtY����ۄ��k�3i
���ȁ,g�"�e�m���F=T/�d,J0/w[���OI��I;ѧ�c���&�F�_QJ��M`qV��z��i���(M�K_2n�j�&27:�h�?�Q�x���?9`x��
P�����*��>0��<
�S?+�AEiө���4�}l_F9M`a��9
+��Mg�|�����r�?N�U��w�{4�)1�l�zo��ʭ��F��_mP�RÚ���1Y�ٍv��.fV��FJ@"�1�30��3�xU30�uO}3=�7E�?�u#�L�
+Ӽ�*D�_�#�yC�U$_5�9��Z�u��(�K-Ckv�]�Ku��3h�N �t^���Mh�rj�n�3]yܩ����j�јl��+�B��ɚ��_U�VF.��V��V��aB�T�fB���}i�Y�Ʌ�=��}4�h=v��~gB�5�ݘ`��11��
t��Ç
�bc��Do)]�)a3��LJ5��+
L#�!�	"뀸/��#�

��f���HY���m'_C�S�
`KI�����Z|�}��xM��F�2��&
DJ���|g6�p��W�ѫ��5��
��%/�0H�9P�h�

�yv�{d�`/�X��nM���8���0�=Bw�M2���{��Ѽ�@��1BB2T�	�kL���	�1^�5�mB/a����
�Zc?�
�|i:�����݄`����|�]L�0!V�L''�!E�E� ]�4�$�|}�{��l&�>в/A6��>$,�lc8��fΎl�����`����Ⱦp/@?XT�
okK�ㆲ�Ev"�k"郑��L�]��a���O+��'�EV6)+��J+�����OvG8�g��
�D8Qgw/���Owi��]��gh�\"<����)�j
+��������Bc_U>::�_{g��D���O���� Щ}qAYdQ\F�7
!"�C�����~���t�
r}f����$}���~�S�����
�qo����
��M<����gKh�����
+����t/Z��Du"]r%����T��q;Q&޺�*h)Hw����D����݀����r
������3�H�ZYoY/>��<N4$�V�.H���-��|��ŊŴ�
�pk)�Ծ����t�Z`齼H�)I���dr�1��t��d�O;�w�sW�����D��Am�d�O{F(tN|�S8~L��à��8�uv�Dז4�

]�V�k>76��Kt�
o�jH[.8��ڃ�,	��u�|�>��� �?�I��B��b�2.>����
���@�w^�y֟��a
�>*�@+�Ű7LU�_�����tJw&U��Q|�ϰfr�I���ô���}�,wg�����4PZ��_Y=���*%�{�
Q�$KD�2�tI���7���dڜ��ߌ
yBV�9o
��~ �7H%���!�����{��ap0xWԶ|���9���ώ.hoAL��ZNȅ'�}m���Tݐ�
)�����U�?�֫�3w�������x2�w>~]J��h>��]�N
�<9
�^��o��*�t|jk��y��я��R��:N��D�y{��M'����Γ��(�+�_0Xf����9�"�7�p7��ڌM��D�٨mO���6n���'u�N�W�zg�^~�����غJ���q��ф���E���m�
��Ե���*/ǻ��'Y�����1\�����w�[��'�9^Hf�NP�NeMT+���{*z�1�.a�n��f2î<g��M'mW]��6
�Zۧic6"���y�6ۙ
O;B��z
���&^=/^2��8�����$Y<��85�O�����r����z
g��ǩϕ��/f��¡��2M3��w�p�C�/��$���`����ٸgq~c���/�������_aJ
�n
��,V�ͮ���Y��=��޳.�������`���mSɧڍ7Au=�}M΄�7�ͱ%>��[
��N���$4���1i�8�υ�p�H{~2�T�c�~Z����f��
��{�k
�ݺ��˫��.���K�ڽ�;{�[��
���M���3��M�Ld�#�(��������8(����ӣ����O�r��d��c�ɖƼ��z��y����{6Y6�M}��2N�̿�ݗ,��k,L_�D����1�\�DN�:�Hsi
1̹F�K�h���5Ҍd����\�q������z����oF3�������ݣ�V���tT?��h��;Qu���ښ�K���n#
+���O�;�g�� ��� �u/$���~�`�������lkn�������c3_��!
����c3ۻ��f���Փ���h�C
k�-����y{
�~�2|����\�
R^�)�z�
�^"��{c�
��J���.w�p<�5�&Dݍ��1ue�c�Eޜ_<]z���\��{�h����M�lq�F�`�{w��<x�诇��ݷ�͹��7��t��"���p��$�>��hB����3�6�cp�7�b�?L&Ҏ�}+�lVۓq���qow>����^��K�\;���da�]+YE�7.W�`Ų�ӭ/]�|�j�Bc�&Ѯ����셏�ѽP�^(]NFq9a��(�|C��BV��%��K��Ѥ�f���os4鹙�-���$����Ѥ�f�u��
�&�����m�&=7��;�op4�iiR׹��h�c������h�c����?;���2��
Mz
�[ ���IG�5��Gd�U�M9aPݯ~�)`��&����6њ
�h��=x�I`��L�ݐt�s۷u��'"7�"o������^�3.��+$qڗ���jV�^%'h�>�@{&�/s����i�w�vC�̼�Nh�7r2`�d�6��S:�)�*�z���ź�t�3��p���ќ3z~	٣o����<F�Kn!
Ր��w�c��;�I��m�	�N�I"~?�j���A�;�n0�e�t.kU
!�.�C�;��>ۊف�$�c�$��F��"
J�-C��2�C��n�Z�n�
&�sr�j|9
�J[l��x����c�?8ʋ�!�ŨM��qR��u�nO}I
��_�¦��Z7:Il}�%�V�n�����w��V����վ0�+/�]z��j^z�5�J"���إ�؛�����e�^$��*J u�k��gU�˯6eo�
�^�7���?��
Fg'���2eA��9zol})|�{C��/�T��{�y��/S���Q�d$���R�޸\�޼y�Y���%1v�͗W�$vvF~t����i|?�%�)×̐�-Gm�����Ζ;���
z�{h���^��g�˝ӱ����}_'n&K�9�:��$�;3L���"�������������
��2�%�h��ފ/�w�kgbB��;G�v��.sv�w![���=�r�Y`�g3��2�&sk������|��s�3Z�v����36Nʹ2�1.�d.er^Y�IYq[,l��NV�N�b����|�1��/
���qQ��rP��Ƈ��C*
+�醝�z^M�
�����
�:Kۋw������^OgT��)ok��,�z�\�Z����g-
�F���8�^e�2)v�F!ũ��O�V��j�^Z۽?ֱ�nb���G��"�p�f:��j*c��
���)356�lT�a�������>���(՝�bί	��NMv>�Dڵ/gk'mE��͎���
�|��3���.΃]Y�\�����~�,���m��g�kQ��I�U۴7{:�z:X�_�'��;�v{�z�NjU�������Ssx^��O�?=
OL�rb�IJ�+Ӛ4�&��%Ч�ޞ�5I��H<�Q�8J[q� ��*�x>�$3���ݙ�3��d#ٚM4��Maw�._��+Mz�3=�"m�!��j�
@M��`+�
8�j�:$��*��'2[=�;��N
�pq|'㦑�,f6x�XX����O�}3�:�h�m-}�j[G��D?�
*�y,�51(���,4��D�:��3K/힭���s�63�5w�����8~y�h�
���^h��7�k?�
+���1���Zq�"�5�h�u}�2d#>�7+,�T߮η�K����Q���ݡ�6��o�-Ew��m�p7�D��6�qi�L��(�6%��ӇF���K�G�,��M�l��/|�}k�5w?���G����"��}���~�p�v���
��
+�Vp�'�<Ƈ����i���v�$/+Ad�b�ɩh��ƹ�l#?�-�&��
GG���7+ۋ�F���]�������n�J���C�9
��
|;l��l��n�'i��V-'U����j4��Z�ݻJ�?���I.��5p���O�?��ӎ�����1��9�o6N�kuH����K�?r߹
���c��Vr���7N��Ɲv��<�|��6[Ǔ�h����g��7Cu��:�
אr��ڙDN��G͓��6jV]=�9�
��ß)�m�?b'>
������A�����ôy.�r�{��f��j�s�x�Wj��wk��k��[�KV��Y��+D���/�'��X�R��-3E����IT���~��L
+ż�a�7�0����L��)�/��n�P�}�2?$/�
���ݮ��y���Y(�E��^�����^h�f����K����E*}X�i
^���
��L��Sd�{@�y�EK����b�w�������|�� ��x���b#��~�x��X;�}|��.��c%�f�+͹2��UEO+��Ly�p�V�h���Y��\�oBB���pLs�\�U�Ե�Zj혉f%��
E��{�rr&be�`�*��z�s���3���-J%�Lxԇ;�tAi�"�ZQV�B.�L
夵�Yi�|ixl���;!P*�
j��W�ʷq�4#�U��s��
$�"��S�M կ���|�}z���r��%j��Q�\�*
Kɭ��*���B�o����cL�^��T�5��O��f�U�H�;/P��hS���//6d[��!�x�u�BO�ņl��5dj �NaWȀ�,��v)���%`V
+ɖ�.�����
댏��p{����ZiD�
`'����R���2Ɓ���r,�����������"V#k���9'L$M
��Zx����"���1׊��h] ����)����&/2X�z�@M
�4��	B�reQ2�8� E�Q�J9�z%�49��N,���4:ے�K.�d��K.�d�+��C�� @П�
+���������� ����
�l���&��	� U���Q�5
LdL"�����@�
9���1� ����%����Jr	y�
>�`I^�L�¢
��D9�,@�
���Q'�|a��Q�XȪ�:�D(���)H'�
�Ҝ�Q`[]�mɶ%�^w�u�����Ͷ*Lc�—l��d�_�˫ǶZZ�
�
�d�,�*0
'*�f�`U�-�8)0t�)����q/��"X2Vk`/gA��V�Z��
sw�2 +g�~n|4�H�̼Q�
+ᝋ ��j� 	�KE�P�1��d�H�L搽B�^�
+i�7�B$Y�-���X���(�S���9�B���K�=��m��{O��!B(
+�
������k���5`��/#ai�v1*�J�-i��� e� �h.r�0m���	S���
��I�;�"M�i�F�Q?Xt0�2@�#$���{��oD��8U�H&C:(
��3�	o�!�]��^&��b!�,�MXtp5,
�<�RV
+?L���F&s_�yI�%�_o2JƘ���t[W��
ބ�;�K2��d�k}y��܃b�����d���A�L�~b��a����IJo � k��S��@z�y�F������iIM
�y!��0LH�n� o��2� ����1c�����2��A�y	� �4FK�5g� �ll4�����E)��4(䁽�c
�@�h�(_/cZ
x�c^��:�D�|���
�+�
5:�!�6K�-!������9 at .&��
�����\��{�!�����A��6躋=�%��^�8�^	K*@r���bl�� <��"%/�:�
�֜6��,2QB)���RE�ņ8L[�t*�u Nf���p'h{��:�qR:
.
D�8u� �$y
�n����T�9r��B�
����)�:�/�dl�G
+H�ܣ|a���d��+�ŗ�ʉ�+���	�[8W�z�l[�
�l[��5g[�mjPלm������Bɶ�J�����zl�]L�.��%����<�z��&�#�s����j���"/��Sq�% .K	
[#�e�&Y��1�j.�R�H�X ȸR�{�E�H�"PN`�a�;] �X�Q%��ҋ|Y��5�Wr2���0���8'�|I�Bszg�� ST _��H��o��P�ys���FF\�K�m��%�^s�-շ%�^1�-շ%➉��(�ĥp\$m�]�7��{����_��� �ZxBg0����c�P��/��J$���+-9"��p����m|Y�d��@��d�6����\v�ȟ
�2"`a��y�bwE��أ� Cf�⦠4"��BVy��ၨ�ːN�4�����2�wA�r"��\��
+�x�4#���<�Җ<\�p��ל���t%_-
.wӕ<|c� �Zy���|��[Ͻ�v�}+��3dj��I-m�}
^�;.
9��Zk-��
+0f��
����,��I���+F�d��ކhc�(

3n�3F8�i�Y�4"}UB>9	�(��&=�3���ؘI��L1�dA�r"�J�irB�Ε�^�S+9��ԒSKN-9��ԒSKN��JyE �rJ�w���� �ߟsK��>v�"���w�����
+��d�-3\
+�(D��_��R;�5��p����X�tdXL��!�DD o���G�D��zP���Q�"�-F�;�cL���3
+�tZ��99�2D$��ˠ(�T��
+!�J��b!C۴����b����b�D��Ҝ���L�8!H���Jh�l e�(���\hC�#d��SA�w)�C�NXiҷ�T��C��@׋��	Nkb�R�4Ia߼�[4�VQ�Jo���k���
�l�G�F���h[s3
�)��xp F���x�b$E�"2Ѐ#c��s�J,/������eȇ˯��!J,?�)c�"<
+ᄙ'���Y:6M�a�S�-�'mzK��dFY�e!:�8�$C�� �t�~���Z^�F3o�#�7+.	��t�Y�$G��`b�>K���E�&���>D��k�z(
+���"W�ol*R��<��*![m,�!nD���L9*�|H�� ��X����l�mq���J�*��!˽���Һ�x���#U��ƙ�����q����X�8��Рf���1�,� �:JQ4"aP'�����s&)
E�� �=LEC���V�3���P�����\,��KP7�yFw rSy	�%��@^y	�%��@~u���rdv��
���Fxi
{g
F�5t��</D���Z	��7:-� ���9���::6�
+���9R����s���d߀H�b\�"%xؘ�
+��G:/��&/��U��r�-���gJ�Ĺ�8�밴�NБr��R9�pL�@���M<X�zjt�ե�G��%�^s�-�+��!lyx]��g#ln_�e�q�����<x�
� ^`� �-��9/� )"K�tA��)�S�5k�`+gH�l
�̙���x���`F)Zm+J���)�y����Ek�
+��Ke����"�|iؓ�1�LE�AV��ɥ�o�\i���!V���J�-!��Cl�\B앂��_��سO`�x`'�m+�c�t1
�&$(�����N*O���`�A����0Ǔ�ϴӖܟ�EJP �=��h�
�f��e���iK� �#hgZ�P��mC
1r���n��s�
��x5G�IE���8:
M3��H
+�5y�*+�pA��	p���W
*e�Gy��q�oo�H$�h���cBa-��j�H��ҬH�) ����r
`i��R�5IjlKg(�
�R&
�s�]�H>ʡ���d��9�
C��R�!u���2��<R(
�{g�Л�b!�o��4�@��:ƣ�A��P^�8�'�X<p�2LK�s3$�ȫ]	���z����(��%��H~͑�t�(���!y�Q"��G�+�����b�a8���
��)i��U*K��$��^H)�	jQ
����U��k���t~� ͩ�N�s��4�3c���k�J at XXp�	��"����Q��.Y��
�^�HP)l����0G޿<�=
D�R�tHt��
 
A�(�Y�����ܚ�,N���:�R�K�]��!�:�y��f�����v�X'�3�h�Q�<�1�39e`��N�
!�(���Y�A�Fi�q�:#+��H�($
�f4�>��M��p�5��
J��42
VQ�`��R�d��A*�BXY�! �Đt��SF$�t�"�
8"�{Sd.�����K*/����ʯ
��=h�;�`3hV]��U�ii��
g1��Jf@�t���� �;�
���J�@�⿰UNz���Z�
Dh˝��"a�	��|::E
+��l�P((L^b�J�޾Aӑ
ΐ'��=���0�w@^@o�)W�A:�/�6�t
+:a�4�����<3��ג_�9���
%�^1~-
=J~=�_7��=ə-����#
��f���
+���8��V��݊�&��ͿF�����Q�VR
+e��;p�utz�
W/����?e+���Q��"�>��4/T�����
<�
���5�����Niv�2>����xݪj[����Q��<j�ڍc\��Z���Q��|9��~�-
���Gϗ+���
+
endstream
endobj
38 0 obj
<</Length 65536>>stream
+%AI12_CompressedDatax���r
��&�����{���@	�O�Dp��Ssl��U��OD��XU
K����~��}
@^��y)�>�h1�T��y��ַ�������o�x�b�������������;�t�՛7?������;�=N:�*��'�������_�Lܛ������g���/Ww�w���o��~�����ͷ7�����={�b�yy"nq~u�/��;1~g�_���ͯ��ջ?_}�p��֌C
������7�?��;>t�ƍ;3�������^�Nه`�097������]�
�h�<;�!�)kcp��
�d}p��L�}�o_}|{���7w���?|8�}s{�������~u�=�������7��
�\������w�8�p�񇫏�a�կ��__��'�~�_^޼��|�����8��_�������_|��k�4Fď���:�����+�w~
^~��|s}����|g����g=�O>~������F
+���|w����ݟx9g���_�������7X:��`�~�B�]~��a(r�
k��
g�n�����_&���7����׷��,�����߹�O��o~����w7�id�_Mi~u����/vv���͕�^���N������{�훏�Bͱ<��˫���&=����ᄑ����1��.�A�v�"���Q���0?�,��;�>�K�}���k�����7�~���k7ƴ��|w�zY�`w1�#���u�c�dA��S?��'��G�M�O�`6����)E��jEa��W�`,�^�ݾ�~�]�ѽ��>}7�.��������>��_���\������?_cƓ��7�w�����
 [...]
���	��O�[�љh�ϰ��o�޼�����H��w��?���
���p�8�|�����]g&�M�=�3S8�z�
�=��O� �X�2�b������w��<�
H��7?���훗'�����4�/1���zPZt�~�	��͛����n?����w�����
��ݻ���v���~�}{{�xrsB�*݅_�ݧk�s^���y���4Ϛ�i=_��<��
+�Q�ͫ�c���[��Gz�]/w�?�����W���w�~5? ��7�[<����e�q�z�����]胣 ܼ�
��<��@�*��L�N�Yh��	�����v�x�#�z�o�ru��_�����O�%C}�|���ۻ?q�^__-J��O�x�z���O�mڧo�>���\�䗘���^S��͇�
�>�
�ë7�������_�q�X�|z����on߯6c:�	�}s���Z�_
+m]A0,7���x莜9H���U�|���^x����4�����������|COi��H/^< ���
ޭ��g�K��_��\�<��O?��[��gw���l�J�?���?uP.�{gv���p�����D���6$5q�y��wq���v������]��oq��|��2��0�������l��P�p;���A��x��[���q���pv8?\
.��3sfφ3w��ƳpϦ�ӳ��󳋳���ܜ���ܝ���<�������p~v~~~q~y�_�
{1t��_��"��q����ѭ~�� �������=���G����E}
c�1N�4
�Y<��r�'3��M~�0Q�?���t>]L����9��é;���i8��������;=?�8�<�s�����0
�!
����&4<�;�Ƈ�5�&�~ޣ��Ck��!S3�aN��p6��%�8��w�
.�ɝ��;�\�K,���;��胏~����0�
9��hF;��8�a��4����
st1^�>�`�\�a
!�0��pg���p�h [...]
i�-{>[��?��شl]#6q<�?��<��z���3���RVFc�M�o�>�S�c�g�9f��6���3
Z�h�D�rsj�Ӝs��%���L�
8��Y���X��c���;܂�ZpU+�����l�
��������1��P
�ؑ������w/���	�BQ��(tv*I�$�
�#4}�w�R#��B'��c�#�#�1��t>�q��&�q�9.��#?k
+'R���!�'C������i�z�ap�ѯO�qF���S����<ś8�L0���㸏~��7~������S��m�r���
rjuˇ�㽒�|���q��_>%}��=���w��������� ����YC��v�ϔ�o~(���3 
�}��·=Ȱ����DW��Go,�e�
���0ѝv��ǯh��
~��,��޽�z
=�����`b:\����<F9|>�
�
��΄{|ʑ�����*��t
�U�A<&9b>�
�
^��A��T<�t��t�'��s9�򑞑~&9b>�
�
^'ǐ��T8;�
��Gar���I�.� �<��� T��1v����&
�;�r�s��T�<`s�d1`���g��S�*�� �����`��'g��a(0K v��0�	=��������=#����{=�� �f��)8� P�
$��=������x+w��_��b��
�ggX�S�i5B�9H8
��
Qx�8t��	3 at zzH�2��
R���
�y
+
!�Ge�i!�{�%��3�29�
���J�p6�6V8�9h∆���3<������_b��i��4ߕ_�q�<Λ�E��zb��-~�V=u�D�&�:r��$蒽H�
�Q�$�FvZ����o/$��a-���A��4��� ���=�la�!B�;߇�~?��d׬�Ig��bo�Q���h�3
�auߧ��lf{�"��a
�V<|ާ	��)����=�:B�L�V�k
�:l��?�Y~\ yu�ݰ�-����^�ơwl��;�_�
u�8��@mf��k��5�hf�����|_�"
+#��$�NE�Q(Q,%��D/�B}Pb�8��Љ���JŠ�*	,+�ҋzq!�+����h�/
+�$�(��PS/��E�gg�
(�(Ւ\�dن�&�&�".	�3��
$
e]�v�wI�Q����$߹��� �)K� Z���?���E
&�x.p� c�r1�fI��DY�B�}����INBRvYXƼ�����g�y�I���4SZ��D*�˴��\�F,�Jq�DÄ�&	#ƈ
1C$D-F���Ȅ"G� H/��X�tHTx�y�z�x�`�sAq�ky�D����	�����"���j����0#��p��d��/p����t��so��Z��ۈ�e�/��bu����|
�Cb��g��x��~xkweo3��l7*V�bk:�f�b�-��8��|$Öﲝ+���	��6�-s�M��~�B:�D�c�� V�tL�:y*�t�eK�y�V���\v�l�#�irn�]���/��:3gi9��b,µ���6v�U0-��{OQ��s]��m<�� ٦Vr��d��&����0���c�_	%q;��&C���ae��)W�s��i�ۇ!B$�y���r [...]
v
����m;\
��<hpTG�������
�~��߭����h�cb�$�cHR��
#�^:�㗺�0-�K���\(UD�"��\��3#O:�G�O�{ҵ�O
_����g��,
�,�ccGyߓ��1
௸G���k�%,��?]��#AO9:�<|$
�.1
+��-┳��49O�+5�U�`M�bBg&���mr�&��(L&��Ek���7�τ�
��q)
�.���rr/;aI^��(:.��X
a�!lu�!C�ZG��u�� 6�|Ft�u9
+�V��Z�=J��
�
��V��֣j��gs�N��!��tj�ð�ٽ�_i|-Z,�O����TA񖢉B�^�d�=���<�O�F���Qj��ɉ�TN5�v�on��RǟqMz�3
	�%��C`<�~��T]�	)y�E����M]|�wqX��9�OA���P�Avg��=�́�HePإP]���)
+�Dj�N���E
+"��z�v�\NR�29I�$��4.q�� ְ�y���E��Ml34��Q�G~�B�p��DМKT�eKF�o �:�L^�t�����SAO�Ο
��C[/��F��	��
��V����(kJ<4��H�i�;<��Q
+�������!
��$����8��)Hq9��8]
���r�r<&$�a��Ъ��y��*��ӎd�v�N�َ/7��9�81� �x�n��YR�,<d�d ���-]���1wvu
d
%]�sIp'W\o��P+��{4f]+�갰�¸\�yW� �4ò
�f(f3[��w�0W��V�Zn�n+�����;d^w&
'���.3�>3>�CmDt��3L�0
1k�%�
*8'�-?�c�b.����2TMW�;��cPDZ
����L�y4$1���ē���{����s��y��g�a�{��砳.at�a��$n�hF|ڈ"~�ɀz�"
K�܌|����!T^���O���	
�7�7�7�7�7�7�_� �wv�/n�/n�/n
u�-׳�8�8�7<��G�)�
O9�����dv<���~Z\P�	�8�N�L��:�u��n�E^n|S�
�4�����8�|�7��n峊�NO7��Ü�x��a]���b\�2���V^�ųUl.c�s�崲��
�ۘa�r��<�%tse�Ybg
�)�$�(.;�d/�0Cgd}�V��E��#3
+
��V�i��+�͖4��|����(r�*�(sI�xI
Y�s��pQ�@�*u�R�Y�;+J�J���J7e�SԹ�,x�"g�ޢ
?�
+BQ��eV��y��9�
����
��1lf���;R��H�'H��GG�
ݑ��O�y��|�S���ﱈ�Y��rM~�8=��޹ �Ѻ��ϸ��,JSӢ4Ѣd�E)
6�����)��qy�8�:�����*O�n
�
��h�cl
�q`wu���
��E��8l��b�1��Y �&�
�������72�SVv;��bk�ؠ+�Y�%�ۘ��AjNiۤ&e��
�f��(մGiKT*�TBؖ@H���$��
+��
q���CN�9���yzv�LZRIO�t���WR���=I��$oo�����[g�m+ �*�oN���
�V��<�u-�m"_We���js*�6�ލ�JB�~䤏K�J���:1�)'
s�8I��@��=��mx¹���m�v�5���FI��E��e���Zq.�&���$���}��e.$��<���z*�SU-��x!��ETG*���X@�,T�XWP��P�VeT�B*��J���)��*��(H�b0_��_V%V�R8�YUpe�8ݦ�ʺK9��i+�j9�ġ��-	ۖdz��M7Ge~N��H���	�{��
���E=��̈́�OH)-�0�SƷI���M���:^�Ǘ��@^RȧU����"�:��m��,���f�^p��N�k�tAR���YR�����
+qU�`�x�b r
����\lj
6�
⪦�(ʹ�+
$��nN7^'���sF��ȶ�HU>�S�B�� ��
Xk����xȄ�@ݎ�h�17��~�g;
�z�Ϻ��%�vʷ��
Bw�w~��XL=��~1�,aǮ��d�NWx��[�f�Nr��ƾ�rڋ��ۘx�F���gm�i���b��6>�#^���'��n����x����_��M�"�b=I����;A�^ʿ�bT	bXI?E���U�"�f��5�޶f��akŵ{DS}�z�
�P�㇎�t�
�x��
?�}\�տ����ht�
v�K���Uh�E>�<lk�+�4z�SNN��~
��
��
+�K��a�y�b�z�ٹt�`�Z�*ޅY�Ve�?~�'�L�o�L�tU�
��H��\'�iEnh
�,
G��H�n��
+GOI�J���f:�!��
���I��,*�6���i�h�P�F�Pw$��'����'�<_w׊=~<�K�t����
+���u+��ڐ�6������U��ne �5U����%l��g�c5�N=?8����\(�'�D=��iO������V��� �O�&�\�	��F���y��h+�v���ǦE�~&�̥��k��7ĸ�N��M�8�����)�V]~1U8>3��T^��Q�-Z-+��<u)�T��	{�'S�:�Q6�SM�O��Be�&a?��O�kۤk��������|��S��X�*�cαk��H5�İ4�\���<D����7L�ޞg�{�vc��⍩v�/G* �
+���o�������ȝ8�s���܄#�J����&���{o
沗qv
��
�m�K)%����$��8�����s.�]�>�1HOc�m���s.�
B�Z� �>��
��悺��s.*}�\
�xL�Ф�B���S��$�������/	0_`�$�|I��� ���M�^o�%�K�O�,_`>��� �%�K̗�/	0_`>�����Y~�r͗�d<jzi�Y�SgΏ
O:T��n��k}��f���=?��]��oU�����r饹5���
(&ܰ[1�qn��0����^3�5k��u�豳G�]!o����柷�0Ņ!�ٺ�f��
�`MF�՜@xh�a��� �Sv#��RۑVi+ښ�=��RS�v���y(v[��Jx��gK;sS�U/�p��7)g�?
����L8�J��#�s�����8�ei���]M;i�?�G���*�⠬�[[�6�����=��x��8��qt*�ca+
A
*4u�ATfM
+ݖ!h2xY�CWh@���0��c�9��u\��
_?]�}�o��H�ZC��ҰH�6�#�[�m[�mZ�:sp�;��{�m旞����������
x'�
���яñؒ�]���E�qߓ�������*
 s��\u)z�%����a~��A|�,<��P� �Q�ֹ�@]%�
�?}����O�b[�UR,6����R,k��ɩ��h�
+UщMe�:Ե����H���
�*4�FBy�*��
�@c%�
@�J�
C at Gi�E:�B�[�w
:��ȧۘ�g�y-��S�虂��e'p̎_����$��4 Ꞁ�4�
���tm
t
�c!��2&�vʢ� z��=�D����,dM݊��I`�� M ٘d���#��� ������o���a0sܭ��.����
t� ʊ���~�wOD�Of�]˘��K#^z��89�/�H8"I�X,�3�{^b$�{
^�/�$�Ԭ����*B��<^䳺Ͼ���
���{��}S���fq���#9S�����#jG�⪹�c������
�D���S�9��8����%~��`\����7��%��D3�x��g��i׸D6�4�/º��C�u�
&��S��	���=F}t�?“�~����~u���=��uo�m��p�(�
��e���KSnxnw�����T0JC��/�t�ef�!�
�a�zͶ�N�[��� ���av�&�k�+Jەuӕ�A�|�o��R�Y9�r����JgX��,�U�]U�
Ur7�n�Ie�C���]SZ�RV�Q:�
E5?y�sI���i�8<p���N}�?ݪ��g9��
���s�u���1E�"I2��Nw?�^��c��4<�J��l;�x���mU�7so�����6��ѻm������
+T���~�Sh\_��7�����8l�E�"N���*il�K+O+�O+��V�}Y�U=U��Y�=tR
+k�'
/x��)ϙ�������?�o�^�	���s�T��&7�9?���95�,��Ŝ�r6\�3��J\'Ip^��$^/��Υ ީ�k��:?^ͫ{���C	�:�{8�0W��s%�~�ݕ*w-%$sQ�NU�ϫ�1���E#��j䱚�U�ȣ#��T��Fm�����]����ޣd�^����o�n��߼��ŋu���~���
��\��_߽�_޾����_~�7��Qo��F�v�Dp��Ӱ7TD�ȶB�ܹ�w�
(d|�S��I\��W�������_�>�
�d��ݿ��~�:]�[r��
�G���G_h���Ye<�l=��/����NN���o^��ܾ���q�
a�'���7���~�������ۻ��,��oo�\����������������Se��%��O
�e��\L�<Ɲ�a�-��d��D(�3ب����	;��U�����w&8�i���hd��
��q��
�k�ݙ�7��⪈�ƫh,�y����G���ݛ��ӓ3E����
��C� gD [...]
+f��j�38	`�}O��4�q)�D
�/$��Ox��ؾ
��q�
����I�+)c��b$�Z�{:���c���+졉r���8��AH���=�!�bSpq(8�#�V#K�c�
e^����L\��+>	�Q� ;��� � i�������$zP ���#q�w�8�E:�d�S�O�ep~�Mc�

Tԃ8(�n�����~`��'ޕB0�dks�1G�
���P@�Bx�*�c4i(�w=h�
+��ۘ���$ ۃ�AM����� WC� ��xl㜭vhH$
'a�c�����({�,� �#�Û
]=���X0;$�g�9�����������z��1b3b�MB�؝2�~�y�
���	�Z�0�(� �)7�
+�5n�y0�+Yȕ<�� �ln�t\������Vo!K8uC�G� �	��{6�M��.b^���	�I4�P�Pp<�	�G_0j���5
<�cy��,6����z<i��;�����{1y�$һ8h
�v;����G#g$Vϝ6��$\���!� k,t�M�

7�I��"&p�Da�/�'"`ylL8���,�`�p�;�,���Y`��1p,�8Nd�8ð�	�C���
���bd H�����ă R����
2��
D.DG���s[ǒ8nT� $d?^�c
+�g��GuB	�z��j�Y�ΐ�r���^���Ȟ���=ġ!w�h<7�*��L��Y�TQ2�<
6g�
�����$�02 
D�
����A>������
�
�((�]����þa#TC-�R�zh R�~����P��\r����{<�
�u�?����
L084��U��*�`o����v/�HY#R<���=��#81�.L���4��@>�O�q1n��� '�'X,���U	�;BFC�'<8(h�
"F��{/��-���{Z���@F�ԱM{RB��'��J.��R=��dž�Qr��9H��ǁ �i�GLip�	F=
� �d����׷����w�AJ�8[o����o����������q��gg�_����n�ަ�2r�~}��뗧_M/�"���d�<���f��ׅ��g���s��q������<��>ʘ���( �
���>Q�nF�B�=�V��(�
+� �b���b�C���Th0v�n�Z`;�`@�a�*Rw1"Xi� 0<�'��=�h�J�g;�m�G܍
�% �k��R��� ��<8�j.����DA�ngX���F�JZ�@�N^[`2H�nK����o7
|v
�n
��\�YQn �����
Bܐ� �i[qʃ��tJXpl�5�1;NoFmCҞ�ŪsJ�>ZA���M|i�Մ
0�=�J
�Z؁k��
�,���3X0l+�p������������Xb %�p�
����7t��
x�D݆�/�z ?�n�� D�Wq��@\�E�a�0��\E���	�*Nx
�w^
+��=��g�����G�ˌiXi/#ƣz
0`
;�,��\R4H�l0',{�)
�%`�q7pK<��
�, S� )�B�����S`�0�T�v�_���� �)��O8�j�G� ��I�"D͹
���w�pf
� 8�ǎ�Q��VXr �
`�(	�ȫ`��KN܆���,
���?����L��:�+ T�2�
�*^O��
�Ҁ�����cY\pB!BhGT�V��4�`A#��'Z��/3�r��ˤ�5���@]�x-(���%kw q.��  �� ��&�����ZW�����b$���ש�][�TjG$�8"m�
s'/J��1�M	���e
�ˎ��O��M
�
�H3��q�
�90�@���wy
���;�
�O��'اH��#�r����ZT&�[����Ci�['�D`�L�t�`�ɬ���A�A� >�sdg�z���'/�'V��{���H4�&�EL;�<�B�v=�5cz����

+8
p�nߓ�`�-�'^ib>� b��8�
+���V�:� �VG���b$��'��˂��!+Cd�`'d�P/�Iv~�3��
�$�H;�1d��@
./����Pa��
�uCs�Y�
��0 
p����@�,���:��"�a�(�7�2���z��.�_ o
�H�.
$�
+���O�ܑC�
�(��k�z�u3W���-5Q�5mg^�65f���P�d I�c�D�R�] V��
'h�d]h�
 ���pr���p0�aP9���a�	;�*
�
s����}>��Cp�iX([fO����Y�'�Z�5���=����6�	��(
+4��T��
���i	����x�����,��)?!	1�;ڑ8�Plx%��8/
�s

�U��g�*
�bC�&�O��h�,"�?����/h7�i���m�e�)Aeu��95L�}~)������O� O��b�f�t����+�/�@<m�x�YJ��=$�����<P��<�`X��'���f`�x$��[����E�o������
"�� �A-x6a�Ў�
:+ov�P
��Ұ
���6�F!��j�\n(�@[$'�����?_�G���<��UO���t��5��Ag'ɲU��:M^��`���9�p�Ɖ�r�@����15
������6Zfȩ3�񐪆F

�.%o���S�+���zOH0Ҁ
	[�!��S� �K&�����{Z�
+Å��Vl�|�ОvJ�j
P�_su�=�/��Y�XfQ@
�Q�
���"<��@[#����J�@��8�%�U*����T�/p�8̢��N��1Rw P[�A^eř��y�8IxzBR1[c�id,Җ�5P�PZZ�62�d�9�7�b�쾠w0	��a��;ڦA�=�

�j�d��N%�����
� 	�@�?�;80AD�'J�ؐp��(@�$�
��[����b�D:�����l�
����D_xqܔdt�
���J���F��t~��z���ԙf$�QPd�{�ɚ;�/ֈS}Yp*M�4��%�p��l�wD��D@�p�W<#� 3t�:�����x���v�R蛃�� }Λ�H��J��~� ��
� �Ey ��'Ô��O ���@�i+1 �PɄ=!��u :=��hOv ��*yR
�/2Я�V�88q�a�1L�Z�i����4��Y�׉��
ҷ�@�
�i��uQ
����-�I�ɂ1��n
+���
�F*f�F˫0��J2B
d��I`
��
���?����Mf��B&P�+j:9v<��Hӄ6�=�S~�of{ }2��\�0�Xh�<
#��BC]�
 ?@�g8�o��t���2�X5Ƚ�8�u��a�X at h5��
+|0`Ա�M�ni�bM
*v�$��Mi��8C)`������٤ChrX���Da �I�>�U��pD�jZ��(*fsof����p�}��H� ��f-uU1�Q@^p���|��3���������)�9�
+I�
�i���F�7���U׶��vXՁЃ[/�$0��xbM�1i�3b>"S���:��
��Zc�F�7�jY^G-�
HTh�������T�
Q$7�*&�{�džw4���h)�s[�0� Hj�͞���
O���.���XV����'�`��A��Ԓ���q2-ց
�YH;ELG�հ���9`|���C��K� ziI��@�s5�Y^�9=�Xz��QDs
�#�r�5�@���
+����\<�R���Y�
��K�싪/�,�M'Z�dKTF����� 5�+d�
+���31��
q9��P;��{ �Ilj5訢C��>�
�+�A,�A�u�4epHX<^Jܔ)�����Z�r��{X'^iO3%�g¾o�6� G���*;{�5���aD�Qة�ւ_0Ñ�ilRL
c3�;�m�I��� >�%��w�=�	Bh$	�^u
�@�o*�p ㉯q>n�3������?F�h�Ge��d�=��&�۝�J�l
���՜�^t(zЄ<�-�.6�#H7�0��r�$
2T]��#�0Xmp�Y	�H%L:�������B��>�@�����&D
ތo&�$�^�5b{�J��0V`�Ǭ�݆-F�H|�<�Z��,�Z��I0[�`@�T�
:�i��<]�y
5H�$K�IF3t/Gn�B��5�J��`pTc��j
��蓧l��[C0z�i�
�w�Bp�]\C'�OPn�]ٸ��.�9w5P7yO�<���Χ�&
����
+�
+����
¯ .i
��k���1�H[$����x
��0Ʉ��
]#sCG
w��b	��~�yb��Z/ ��@� �G�{�R�-��`�6Yk$�W�o}��1�e��͸�._0��Se
ʼn!0k
���gjeL�Q�rd�jc�g�Z��du\9܇����i��C���
�;�F:^�N�e�[2a9��J���JlL	���Zy&{��
�	�Y�g�{�	3��L��)��gH��gCEѡ*�����<	�1?�60N��8M+|��60f
+pod������ud�`o��
+lL
f�P&m �H��L��c8S�Wȏ� Z[d����1�mbJ�2��
r��h�K������;e?AϜ�ޏ����'������̢c��H�����/$L\��0�\�3zlUʐ������D��
N)E��
ut/L�
�`��̇%��lF�k۠qI�w�<�fk"f$�$�1�E� y/� �����*&^Gdam�d\&��x8�۠M����@@֖���� �
�dH���V��Hq��
�Ԗ^�
�2���`��N��`���C=q�21'b�N1�F�-��*>�
+Dd��ھ�pT�=��u)�8�"ٸj���H+�h���;��=���)�1`bȈjS��e2�Z_jG �!N����@*'W>�V���i��6ҵ��r\0�h��x�l��
:,�
+2	�y`4�DŽ�>�k?�	!Q��0�]{iȥR@�	0
�w��v������@=cOGK�Q�\�� �ō�0���f�R�
 OL�#��a�m���~}Fk@�,51��OOn�;<�H�p,+�
��(�3�IS��Y�c���t�<��͠��jK՞\�+�#���޺�
oPng�V�׺ɞ��[�9�/W�2;�[|V9��V>}��UH at Sr���Z �X�,�tCK�� �Z��ЉZ����������W�

+>�@�&
Qq&
+ΔȔ�TK?� ��T�LFp*覉�T̎‘%ʧ O���Y+���^��`�嵪(&�KܓB�*Z�� �P+�G�(-��� ��N�bĔn��˔~��h�i��J�+�pJQ�C���6�N)�*f�)g4���Y�ڭ�
��^E*6�~��RGH*���l�2Rtf�� Ne:Q1�M�
+!U�
}��As��ʈ�"]�
J�*3���mZ�T������^e��A�-˞�1��*8�UHs�
���1S�P++h	�nQ�hme�-��ʌ���[�`Q^L�u�2B� ��	[E�+�
+�WFto�4ƫp}e�W�������}y�P�	ʱ�����+:��v��
���g$��E�HK���U$�&:��t����J�����l���j�N���h��~��	��%D_�r��4��K�M���_{VZ��n5ڝ'�6ybHf=+� ��h�l�.�ڵ�	�#m
LUq
�<�cL`
�Z�����s
+�a�����ez���A
k�A�iy[\�1��r9��v��j��~r�#V�]ͯ��P���t֮o�
��%���լ��&Zn{EZ��_Qg	
PĽ7P{�)�mU�7<�B��NYj�ī�i�j���y�%�
+�>��D��Ƽ����R�d�Ie%���,b���P2��H�e��U�2n2<�
+ȫo݇y�Ėx���
+��#cT�1^��r24�i���F�.�sX7�Q�N=T�x���D����}��
1+
�δ�#S����]6��
�b
�
�
 
(�m�,'vqbc'I��.Ű����ھ\�ћP���^=J�\d
PF����_���,��6�ƾg-
���i�b�	��B4uB)�wĔ3��#X~�m���j0x��5�Sϥ~�����v
��l,/	��ԙ�(�qx��/��)��j�{�ӛ�Lwj�MBe��@}6fPI��bz�ca� �8C֛���A�
�gf�a;��j�7���
I�E�Q�Q�Z���:Ի���H��˛��r`X��X�5wF
+�ƦbH;�h�媊�������Us��11KS:�$����y	���\UO���#sW6�!��L����
+���uXʗb4T�J�p�A�!0�	�!e�
T�\���X�$��E�B�A��\�T�1r��1��
--{
�U0t4����x�d��f��B-������(����ź�8k��8���3 �5
��B�=c�؈�YE@��N	)rz�c��z����>� �LM�fH5Y�#Y�
����և
�Ū+�Kj}z�I1.
+���1�'(���6+����4��TB����3�+�5�kB8����`����0查=DuN&VW΂�{�vģ6
+'�X��5E�H
�)�گ�H���t��и`C�)�_!�hj� ��2�
�Ŵf��=Z�<T�!�f��(���LTY[�³�D� x$�ZT�}��Q�_!@|�-Ijj��q{> �D���c.p���R�8�o���w����)�JkO�5�֮w��ՕCZ:
��z��Cm�y�p��^�tQq*���A)`d�����xI=�h��[�TS�ű��
�=ѷ�A2���n�VS��a^Y5\B���B���1�%��a���3��[��Q�:��,Ց��$��GԳ�e��)1d�U����w[.�7@��0�Mw��{�bQ��b9�z3L��B�m�^���3�EmC�0��G�j�O'X G~����Ē="�+n���f�?ր+Q�5�Z.����I6_N1�zl�a�i)l~=�Z8�K�L��ZP��@
����Ь)R
ߦB��x�?���
tk�jXR����"k�
+,���ᇮ]n�em���O)(D��c�q,,Eb����E`tM�N;:&��rVl���2�YU��o���~K�l&�U�FO�Õm��d!Cד�|�I0�x�p���Qj���
hYR���q? ֽ��\�Va�:X���{��
� �}��	jAG�0)��U(	�
�x����D���ی^�A�����	R��eYe���c���S�X�!rȒ��q�$�W��
?u�).W���=P���J3����>/��:DI�"���
+{�
6њ��l"
+d(W���^�ڇ�i!`!c�Z�,���$�b` ��B.��Oߎ���&�.��a-�"��F2A'0���Ε�N]~K��I�J�Iy�%VSb
8ѽ�td
 ��x83�A
�����
�cl^Ani!A���0>1
2�ъ����hr���`�d7K��i���JJ�ў!�6]-5A郤\�����T4�s-�	kΨ�Gw�Y��"k�7i�>I��I�������R�ak��K��&O ��7�L��H��4I�5�%j�<�\��r�e�^?
+��Z��'^�c�Ğ���\Y-_i����N�K��C��>��	ş��7C7�y��j˥
�
�F/
c�'��a��)�P� ���P
l��>��F���YΐQk�  3�^`�1*�OPa�E�O��&�r<�O]�m”ލ���� }�7��O�x�M
(�X��C�������9�j&/]�F:�
+>M���^�5qC��2�� vBC|�͓1�N2`�T�$2����天�x��܏0Y*Ȋ:�K����!:`�{/�W��0���L��!B�D@��g^L��v�.C+&����]��
I�,]o�N��
�(Đ�U���ʄ�”��}Z	J�o`DCf�)�������ևeE��ṕI]j� 2�������ӛB� ��ZK��wI�1LX���aH ހ�г�$#&3
�CČ$SE�,xʠ~�
ړ
!RH�\/��l�����xـ�����3`��?$�
�Ɂ���+Kz��� Xr�g`J�w��%�	'n<�)�*�B@���=1�����9�zRas��~J��-!�6S�
[�=���Weq���͖,@I/2�73k���>���Z�9�!�Tsp�q\��;Lߧޤ�]��
S�)����FMoͫ���x�Zl�7�(�ۢ;��k�mH�j�r��G�hy���_}x�����W�ׯ)7bp�K��(0�U\�%ŮU
��:�e�H�`U
��OU����iX J>e��V�k�%�xG�F��&R�� Ńf]��I\$�D)��(M�O�2!?��t�k��è�0.�����*�:$8۴�_����G��u�寱OS�u]�ڲ�z�b�
�'�f@�D�HU��z�"f�*ז�[\���M�ڵe

I�@*P��5������3���j�6��6E�-�FT�8K�T]��`�y_�W]�:�D���C��U�9{�pqV�
t�k>)݇��F��,�!3E��s٪vm}fX���.v-5�E��X�Q����$����OT�R�kf�;��\���lH3 �<���{��h!͵�-K��R;X\Yr}"�dй]�^3Q�-)g����'V��aeh\�c�"�܍O [...]
l�<"R��?��
s�$Z�3-��w��FRLc%���F�8-A�O
�64iZ2J'�.G������6�p�����:���
U�Q�ѳ�`c��`�09�
=u
�1Xwb�����V
+����ij�-R�����T,�4�V-l��&SOn�ja#�W�:ǡ2��na#9J�6JH[3���
����l��J���P��	��u�(9�<��8����:
+���OO+�����5
>���c
S��6�*&H�]�c
��<�6I�Vհ�0�2�e4��nկ�%N̉�u;
�W�xq�Qݯ���1�;IR��j��b!]\^4կ��c@��SC;.��H;.�st��G�G��|�D�g��c���B��L
���Ѳ���gp.i��\&�m��)�'PV�<Yf@
����א��^|���m���-
�
��k�f<2�v���ĽN|"����_Cذ�2�D�������2��j0���@ 
+�m��)�3����W#�v��ەt��0
f���p��Ր�
+y�$KSy5������>�ګ�	��2cګ�r�9/`�� U���X��s�f��wڜL�m�S�
�l��j0�4&v��Jy5
�?٫�4��S|� �g��
�zS0R�Ê�l�4򅆵֨Z�B,�en3���q0�z��ތD1r��V>ś����S���~��?6>�l]�E���tWF�=��)��Db�v{�5��i��u)I+�h=��H*a)�N��_p{֥ڔ�$'�.e-	�XfP��!�\�R�Pgb�VFF��g��J�M���V�a���e:ɶz��~����'o� �u)A�	D :��KWA9M�L�Z
��v�n0���5��X
:�5�G�͘��t�Z���F�H$K��Tɲ� }��h披4)a��J���M�V�&��Jm�T�Z���&+����=
�(��j&�mC���RL�7�R庳8_j>&S/�a���@"ftb�\����
y�z�K��i��
�b\��0�"en.�w�f	;'�CjZ$�z)���Q.�`�O�t��Z�J��R”�Iq�̢K�6�
mjV�6%���VH�)6N,��	#^a�d�RY�[g��UY��=&�N�����R��VOz�p_�]
+@�MX,�@�I��UhN�` ڥ849��-)�g�r�3��X��_&ݒ)�,tC+��V-��N� ��b�æ8�,�aN"�E\)%���ۻ�GL�{]��|V�z���srA,�Q����lf�G&����s��
+�e�]:°h�$�JhOGZ*R.���$�B���ê��j�w�M_#k��z�T�$
��K��\A����J��5�¥|�co��k'|
D�cY�m
����R��\^ޜVt�9�VK%y��
�%YĦ�<�gP�1s�z�~�]I�r�T���+��У�6��E^�EL�(� ꥠ>���tX��[���ND�
��=�ʬ
�S
��*�"�[z����Q��K�%�%X���� _X�:�M�\�
�d�Sf�Jk�ܱ���VĘ.�/l�p��p�{!H�Fu��tOඤ�\�Z ͱ�
is�4��#%C�
YB��t���/��7��@$�Fݜb�/�#�j
{�t��Kk����m��M*�w!�(Zz�Jg
ꇬB��Тt�OCxݴ�
C/��D���Q�n�9�v���/��`�
+Q��1A�l�{�M��Z~n	"w�ϙ�$e�R
�X)�4
+�ɯڎ�^�3�
����F%J[.�M�pI<g�q�4D1�rbR��R�&�rIBB*R�ۮ�/��Zԗ���2�J
�K�Oj�:���3�8��1�$� �2ЗR��fe.S킔6L��?޼S��<`���e�8D
:��Yߍ1��ʻn�z����� \�i����@FrJ诡�
�d�
�+@�VWV�"�
�|�L.L�'�a�>Ć�p3V.�͈���Y�.L4&�fu��Tt�*$͛�e�����7o*V�S#�5�x�ȴh��]+Rs�w7
p��X��8�.|��,��@���
+F�����D�-�[q头p�y� �ii #(�6�u�,�
r��h
�hX�qQ$���]��bJ(m�0����C/�f�:,���g����wjHFI��l���=�c����4K9�q#'��4
OSP2�\R¼�[�{�
�H�

�4�O��Es�[��u�&,�YH�kB)�p��^a
G��jN�{^�0f���\Cu\@��R!�#�~\+�Ĭ ��-����Ta$V��m��3�#� �!w� ^� (@�*��nɤݥ�
+�U�:}�>�|�i�/g$��3gM �4�ؙu�F���i9���ɟ�Ra���U���}w�0���E���u���*�tZ���~�Vzz>â�>/�@}�hE6��
.!>����{���f�Y9b
��׉�G�m�eX
�a5��4kfD�,�[47��4���<,(}E����)#�K���ex��R7�u��ʘ�
jgVf�����:�<gn�BE��K����Z����}��(a/Y�s�Wh
R�j�
+��W욙��Ҡ�Q

+B�acs 
�\�b�N�����E'���X7̍���uZi�)� ;�ҵݥ�����k��!�mC`�	�\1a��ʠD�(���03�7	
դLU���憥	��S��4 ���w�!;�z#���
�V��|��Ǻ؉ȧ�Q��#�i5Y2
��!��H��D��+���$ahU�~�6�V�����
 �-Z�?�w����n5��S��{���� �+�l摗M��H˫;wdZh�>�t�
+'̈́V�\�tڪ�4��*������7O��T�i�fUْ��U޾�bY�E��Va�(W�͚^�Ǩ�`��bb�om
+�%Φ��e8�9�\��)#sTUY��^�#��v;���U����KŸ"!Ze�0)�銰���iQժ�W�*���*�Wdf��_���ɪ���j�
+��5�Pei�ST8F�eT�Tt��S����[���Bj��z͂�
+'6�SALUZ�qF�Dg㬪�gč/*�,5�P��X� |]�T��*��ϪK�}CUmUZJ���RrTY�
�J�Y�j��-�*�[�4U6���=+�^Xj�*m�ٳB)��rpVZU���6�]x.j�4e]9���"�Y_J/'
]�h��|��sR�u{�b"P���9aS�:
T�b��
`�V�V���䑫nצ��\���4�~+���
^
9��x���ʖg��t^
I�H�2?5��+�*�^�]�̻��5�����1�lpu��ڀתu��u�|m6�*���f�~e�TE�����P�fSe^U�	�ٶnp��h5J�g�Ve
�V����
[�F�՛�3�#Rg�����zvk���U���"WnM
���Mf��Qk�Q�^;V���v˨�W;t���A�_y�f�Q{�4��|Wm�U{��SN3�5�ϭ�r��N1l��S���ۢ�v,*�S<�YBi�eK�i�g-������ۺók���ʙ�Ľ�7��r%+�����(�u�(ϷBD�i�!T�ho�.�W�My�
� [...]
+e�@���PYQ����P�\oh�_�~�U�:tD�
9�D+)勦�S��5�:�E+Yu�L[Y��n��W��<化ީϪ��*�H��u�R[��c��}��(�֫0��y��Қ�
+u\��G�aam�F
U��#u@�6��qmkM��Sf
5�MC9֮iPRz�
U��)C��l��T�amNS������[F;
Y,}*~R���˦e��TvI�L�*f�eU�ŊZ"S��Uų�l�*V�uU��2	��ۦAYE�*{�
+�-l.ܴ{��k�y�OVvv��4ӫ�he�ׁյ�@h��
�R�J
������2Xc�5�
���홙b��+\��͖H��ŠWQ�	��v�X�Y����t�7�:�l�(�iO��
+	�
�s��"Sj�qT������WU��$MH��^
%o���R�B�ͬص���f��I���m1�\;��sj�������jߢ��V�5�ɝ�צ�~�5n9O�ԮWEm�W��u�حI�8��&��ƏgC��NdTb�`��ޱ��D'����F�&��:��N�˯s�H"#�0�e�i��Y�Ndug��!@�4L�%�Hzp}�$�/�����+�끴*��	Q�Q�ZW�?�&�J�KnE����|Y5^�֨ԲA}�l�p���Μ�
CW|��Fs}V�d�rn�r\EݨA�c��o�R�۰�t�>y
+�+
��W��a����-
؝7UT��~D6�n���,7�HJ��6Ts����0����JX��u��r{�v��T�kK
J��<����3U�yM�&
���
AQAi���X7ax઴���3
��̟�
K=�^[uZhx�����9G&��#�	��6X�%$Y�Ǝ
E)^D��oI�J?���	�}��:�mC=�-�EO�k�}']bގ���Nm�� A��h
M����$���:/������)�
�'�nJ���4V��
��IRR�� Ҽ����Tw���i�r�Z�|�_�
+�(>U�ó]h�`�#��BS7b�j�%�Y�@7Q�fQ ��@p���S�[�A�o���� #(F�h��S���*fj�
�`lS��29�J����R��cј6&vi6ӓ��2^B��U�ܑN
<K�Ʋ궱����^��k:a����2
i� w�
Z
�T{ ju/
Aѻ%����Hu���
JU:��d���vxm�;�L_�cc��mr �7��l�#���>�w+
�z��adM�uI��W�ϫK���nUr׃�+��	����h�zA�"�����5����ֵ�5���զXw
P{��P��nJ�7u���b�7��+���bK�
�����p~�b�ͷTlY�6s�yzj9��T%FԚ(Q��U��&u(ѨhL�WE�E:7�[	w�I@PM
��a`Q��(֩�����
0��o9$���/
��q��{M
��b#�@�00�MV�i��R7�Fe�!�ਔ�SU
N�Fɺ���6R��� ^քW���^FO��>t�����m�e�p�e���_�[ƱTzf���=��H�F�h^#&&���
.�b��L����F�k

Wծ�
Iu+�Y��Z�yڇ��z�
+Z��
���a
Y0
��e��Ef�(�Ԙ4�`�$�
��9�	I�2Z�}cŤ�Q���Xl�r�$=
)wm
D�
+�Rk�����i�E�
+ٲx�J��ٶdl\T��������뉨����+ �hUR�+Zd֤P�t�ժ
�	��1����S��F�޵�b�6�&կR����2�P3�xK=��35צ06���'*�P��Ie�G+j�ܽ��c¡���U�u�� ;��FJU�;�Z�8
x���(
�s
qtC6P�������V�29���
+X8@����6�F� F%DzP 5��U���{8F[�Vju������h���z�*r�5�8�
�
�s;�#���ԏY
`�3�#ȇ�uw[=�<I�n
���
A�<ɳ^���D(Kq��
,g�{�
�Y��ZN�<I�"h��3qj� U� $�I
�M�Xꚁ<�vP�U�6A�Y��v��G���D
��	�3��41�6^̾8��I�s���x���U� ���؜a��
T��:I�aۧ��,�)�T�H�(�m1]�	�Kœ�&7/��p;A��g'�󌌙R��$F
��3VQ����fW��m�1N/I�${��f� q|�*>X|ϠUV�~��s��>��G����
�ن8wb�n�Y�~������O?{1$I
+���\�������W�>�����O�[��W�[ -6�%M
�0�ײ��M2
��~�A����e�f0e�H�Ȑ��f뇉,9:���F���mn����p�

#1 Yy�M�-(D��)�}��d���d�8CҼ�pȽ&�wL�, C��'�a�n��+�Ť(o�ʫ�$A��066� \��
y'54~/�(
���'��'����޲{tK1koR5Zv�kF��02�fp`�6w��C2c�I32
+g�DHw^$(�|�ГN�� 
���Y;�ev0U�����P
2�z">�3$l��a�R��W	R0�2�0�
+�0��;7�4>VpaW���|V1��;�!���a`<'���~HL�aiΑ6U�^A�ݱ�7!���H� 5���Y!Mb
�͸�:�sZ�
+|���$�U�j�-W(��"��o�V����c�T������5�`)VF�ҀX�2ii��'�

�b���J,K�Yɛ`02ږX������cK0���؉iW�����\LB��[�����1_�Lw&���o��d%��He��L�1�f����,{��`��gV��v0���GV��� �3,'2Z��4lQ��Y @�R�
��T�&��d�V_���
�
���]atd�v{�Lg��
e��i;b�>j����w �匱�	g��IU,�u�ĸU���[ܔm_�%� �-��g.uga �/9悃��4�;i��%Q�Z��c��X��3�be
�$�Ptd��~����Dk9���v�	e�KLD���+�m���i������A��
�M���\,‹}���RaЖ/
��<��%@ oO�9o
i}d��)7 #A�Ŵɳb�e\Z��h>X6�!�gaiv�0,r�b�솀�H�=�ʭbh���9���4�-�%��e��q
Vb�1�����
Ic��R�G�)	C�Y
��cl���/�Ie����;�YZ�̵�v �`ҝ�Ŗ�X`07,+8�R
���)�9Ϡv7"S!%L;���I�ސK�L�'���˜���D�C�e�K���13�</�ت#�O��&΢|��sX�^:E��(>��d���
Kh��
�=��A�S%+f����lጥq.�}R�e!����O"W�r�Ŀ�I�u�>�
6���p�A��"C-���Oْ��8X��p�����t���y_B$85,/��� �.+�/A<���&b	P�%�_���J�q�~N,�(c%��X1>[2r�81#�:��8��*ܐj`�����x�I��@Bnؐ+u������p���
�n/����1���V8s�8ᴈ�>cn2�R�dm6�˰I
R�"�x�	^/�E��
�
Eh�%�%s�'6 at Fa����3G
�c�>{e'ў����պB�m�t���X�TB�
�j1)����ü�ؗ���`41
�X
D(��"+~3�j��t=���{���g^
+���7�:
�U$�4˒f
����f�<]j
�x�h�1��A�,��
�/�Ǿ]Ԗ�3c���c��8vd1&�
#J��M�4:�|��$�#��و�di�X(��-;f	�e�*.���g�,`Gh�Fj#C�gO��ҏ ڞ[�)�C)�L�BX����,�D8Nc�D�: (K�a�N�����t��z&I��<`�6�G)c�(1�2J�y`�w��X����{�Xβ���!k�px�S*ɢA!�@s�K=ە��#.�C	��EcE��N�	
�1�2��_�9T��T�K
�{,kh
�P�� 'A�܊ŘiKAjtK�3
�3�
b
�

�
h�c
�'��E�x�-��b�V���e�{iMî2$�mL/%n��dň-����`D�bu(U0^'BX<�`�Q���%� �9��0�$�F�QnR�ٴ:�9b�;�g�dh�d*Ӑ۾�1@��ӥ]�>��:H��1J6
�����)+����r���Ǵ $z�?��"
Q���$,
+��P��e��s��[�dj@?�D.�F�˕��$�X�bF!h��e6J�<
�a�j�|=Z�H��#+a�2D���
�r0B���L9���
��%x�2��DiJI�yd�=�1��$�����'�B��G��B�"�L�y�%�)�og"�X�]a�]�
+DtBgd!LZ4�U�0�<cH:�1
+�,-�(�Ӏ�L+�G���cH�����.��GvΒB�.����s�
>R��9�n�R6���l*��
Oҕ����d��MӨ�@�dV9H}�4��h+���dq�.Cz+�����J�UNP�W��
ǣΈ.%c�
Y�S)�Y�0�$u��M5A����
[i�	�j.�k��~h���+���'+g�zuFkH��zj؃�
&�
+U�AO/��[�� ���2��
���1��
��>�Kk��k`߿&uy���xa����S� �mP5_ at p�gF�
�=!�<�����z�&.ZRY��ڝ�yJ����#�G
T�F&xj^A�N��xZL��x&bbD`+���l˻�m�m1�H�?1M,�0�!h��vDRεY1-C�)7Z|�3IYb	�}(�:� �M��)0@�)Ad�$E�7P�֒�6Jz�#=�LMTҌ���@O��ڔ�x��%���50i�`��y-�=��A1&�KVoK�{b5�^Ą��LV���9p�Y���|G��XWbLg4 �g�;x�)�3
}h�$%�
�
>ъ����Tm�/��J�Ş�F��<G�F6�s	ru�&�k"J����ȹ�R��B��(�uV��薶9���42��vjp�(.$�";�F�:j����*�E�z5X�����Z
��ki��]JLd
+6��8�Q�4j��7�n���)T
�k�.taJ~d���Z�!#��I�j��Q�%Q�"
��g%���@4Ҧm����-=P�U듴�2��.[
J'%�O.q��IM
��Õ��d��P�j1i@�G?ך��]�Ǔ�1
�
i�l\ ����
H�M�ߚ"o�3H�qVd��b���
�cz�}����j��A
���B��lv�f�
e��IN�c���4�=�q0��1�U������<��^��(���,N1������d:�,g�a�ؐ����#8������H�����>Xc��pJ��H�"~�Yp�mT�Yw/�H:���ε>Ȗ����
xP%,.tC��s'�G����z�]�JI1;���
�2΢
U��Ú�5��欫��*c���|dwZK�cÞLA�����b��O�@
���
�	�B��bئ��M[�$
+c�Dѷ���	B�a
#��(Ow_r����bΧx���г P�@�b"��z@~�$��:����W儠/N���9n�o�2�]��r
���3B
�@�ܳ
C����g�{���l
��h �S�Z[`m�tkGRz� }�YΌ)�Cȑ�=�,�I�ZL����
�9���\�
�����s}'u;|��Z&����&+�c*��@yxˮ�Nt�0���CBL�6F�
��c2����%\L���6mq����F�,`�'�id$cR����#�b�j�,P"S���,�Pp3���4�E/OrÓ$"�3C�&��x���8��X
���,��"�1,k�qI�}��e��
�v
�Y��
�N�$��(�]�F�M(\E"
+�,��K b�>��$
؛s��w�!%N�����c���Ny՜��O�$pg��jjс�� ����T�������C��*3���� �JZ8�ٞ�&KMt�4u�}
+4S��ر��	'�z�~��{'d��(Ap�
+WX�
G�Y4p$~�7`t�6F�Q��>��\#�`�H3��-?��P�E�0�sV�T0=��~
��0�(�
�5�r�� �2�j���c�i:�� M4���6
�h?RM��Oj��(����2sR��1��^�HBQ�j��Xg���:��b�l��گJx9�X.�
�f�p#
s�-Tk�4L�
��QǢ3�u�:G����N��z�),U	s��iC��Z
n[�hV�D
+M8���GV�
�X�'1º1���;���l5�����Z
�8��+
�Q%
FbK�f�
�h���������@�{:pOQek0��� �SSc�V�RGPJ}��6�F%P�0�l��|���F��]�$�O3��705x��<z1p�
��	�9dvDl5�'U�
�j!����+��أ�,��l�
'e¸M�p{	��T�ʙ^
+x���o�>S9&H������<=g�8q��0'՝"g~`��������
+�}�Bɥe�/�0 ���QBb��ت���l�8����3j��/U_%
�:?��F'3q��DJ�wRv�X[��M�
�
�%��
��=���)�ܭ���$�/< Ϭ׆
r+ᤑe��VHȝi�fW2�a�)#
� �b �㞴�Ʊ�]d�Lϐ������<I�\m-rP��A) �
��:9�Đ4�&;/��z��"ð��̀�V0>I�'��G%(���9z위�0�d�)�
��^� 68#g�eϱ�\rM2�>�qm!�Y"�Xb�hCYA����O83ҵ�ҍ�_��`c�t>&#��L�Y�Ky 5X*��<C�2ĕ�t���1w�8$J��N��
�!�Q@[=��)K2t)��Ga�f1^[�A�b� �z�c�#���4�H*[8������
��;���;&,�$ew��X��1/���I"����2��l��8
h���	��(�
W�+��-���R�g�]{7x�L���>��Dގ	1�
+�U�h�WaЃ�VJ_��_C��½��'�)��c!3��`�mkߑ@Pn|vԃ
����?KXD5���ڋ�Ib��U�n�7�y��H
�bf\;��}�-���S~9� �b�v-F�� �p�1p�T�{�s����-�u��|��ǀ�@
�=3�O,�n�jXP
��(Їe��&�`S���ߘ�k�36�a�$��%��<;c�5"�m�1��dS_늼yaw-��
��Ɇ�v+D.�M�JY'���&��@�F�)LK�6#�,85y�<�Y�>�Z�m��1��þ<9��tL@�
��n��HK	:�'��í��G��«YK����%���#X��=��	7�`;&b!L��p�6�#��?�,�*Z�a%��;+�86��=	�K����� �Yw���	����l�ڀ�	[v ݛ}�����K at 1�P[[PU�fdV0��5�(� ��
D��m
��}
�
�
�P@ݽ�f/�a�|������|���Ҁ�
���;$ep�"3�ۿӍ.���ߠ���@�m� �!����l�6�	��5�
+�����h.�Z��h
����K���!�
@�/���7���<`�Cd� ȷ���C�gY��!W1񛔇��C�$ �C�% �����R@��`M#=ZvY��ٰ&�BsDH��&�m6-4k��\h����8������h
�+k�2��l3���&dLCΝj�{wv�ٵ�g�v�F�5
���)�Ф2�k�SHn�v�m�<�]�d{hغ���k���b�XZ�B�!4�m
�<��:�B�$t�mK/��/Tnb�R󉽄��ѸI��F��-%(=+�4�Z���*��>,̒U�*��'�-,1r�ך��_������CY�BBm�n���mu�v�+lҏ�c�PN'~9
<�Zf
��ɽ����R��TE�
ݜX�
�+U�_M��d*��:D�h�:��Ɗ��
+\��ܦjk{�X�Q6P�j[���Y���^�Jtx����y�B��x|�k�]=4������
���8Mv��0�V�A�����[�CX6+t"��}�q70�2��7�ó]�3�
�����|0�횅�v�B=A�QNe}�6u��
+���
�c�0���� ���uEG���@�m�����8ؗǫ"�Of�AH��p���:�g��p�<�]s!�F/̇/�����'�o�A�8k	�+�qB�P�#p3�
P�6I-�@L��/ý1�S�վ���%z4������r��$�Ө�4[���
+��p
�@��]�ɧ��ש���&��t�"��̏\d#�m�����y֗�壏���㕶_H�Y���n�?[�IGs�ܶ����u�Qf�T�����9k�Y�'zy�Q��j��L��q��v��8��*� ��i|��;��;>��-!>�����=h���U�L;�
Ȃ�r{�*��ͦ�� t���؍����b��|�_�W^����[��A}��7'�Y�6^��7�G!n���2#G���G'��J
g	/5��;��^6dZ�3�-#��{���{.%C�q�Q�Q
���Qw��;ɸ@�lv%��m��i]�!��i�II@$m�6�P�N� �Bzu�(�Ƕ��
�,��燲�h���y�vv��dŁgj
J�<cSV!%��,~*�F�5>I��{�7E��N
�8���~��a�۩�� �h�����[�:�픦U���h@�q�s�
u::����A��Z���D�kV"p��O^�
�{�Z��t'Db�ľfRAw���4Y�
�$�NH+x��“TI.u��{@L����»4$pl;U}5*�vʱd������˟��;w_�3R~}vz�H��m!�yk `��'=ϼ������W�x��n�;�p��ٙ��A7ӧK�	,��W�]�����U�V5-�D�3Tn�x�Y��K�T=���"�搥
�a����x�5, ��U"=�^ ��R����O�5R�i䎲e
�p���,ɉ5����(G�7i����(닐�BS`���
RZ<6`ބ�(�T�.��8�ΐTN���G
�I��Ĩ$4�|��!)#�qG�Ema&C�H�g��Q� @-�H�����Te;l�]�b��|Z�#9��^Ȑjɫ��x��i�P�NN����m�����xy��� ��`�
�j��iۜg�㭬���A�n<?n�뛻����G3�|�h��)
�nEø��h\��
M�6�~.���K1>�nIGOe������kbw�ז
 t�\)��<h�+�����$~/�%Xp�����4�<�B�D���Ky4�M���R���$w*��rPE�3�V;�u-
:�L�s^(�
����$Z�
��{4u�{�uJH���/���e�-=�7u�
#�tH�G�y��%����[Q�Un�"K�
+���D�_]�UV�
-��bֳ])�	� ��
ɭ嫁�y�`f���a$�[��ի&��l1
�qs�i���~#ށ
@��=U8B�H����
T
[��O<�=��($:���
�X��Nő��s���J�}��D��3�����8�x��Is�
=E��G�-
M���Iq
�*
+�&�r򻃨p�y�[��&��fDt(��"���c�Ժv:��WY(�c�"��q�?�=�Zf�{`�:�B�V`b����|9&�J�a��
�Gz?fG
/�����B�8FR��f$S�������=ϳ��ʾ��05�
J=I3N�]l �%
+]��\�o�&�K����O��R�v���X3�'���~ۊ��3Sp�_������҅@x����Q\��l���J�E���隡֦�|�}g�S��O
{1Dҿ�B� ������_Q]2�'�������E}3OS>
)L
���Ǘ<�|	� �ԐRmM
�5�����dW��A��"�vV[�-zs�,���3��y�/d�~��O�?@�b���p$�7�~͓���lTUe
� d� !Y��p� �5����j�#!�ԧ�V5���
�U��^���x�g��i�83���M�����p�sbTm��G$Ku,ɇu�Z��t��yW"�~�=Rb�΂U�Ԭcf�8S:�t��J 
nz
NC9z{��"��LI"�e��^��@�B�"I㺎�ȃ��� =��ϓ0fй�^0K��S���������ӱyl�J)��v*r��lsG�M��>�*�C��;b"�8]C�^���j�$�Y����LE/�$u3�m
lnu�y�fs�s0-~�.g�9���I����^����1�LZ|&G�*e��#I��FW*uC[$��<�K57A��	
�h��X�$��D��
�/L����=��<I��6V�m&J�:���:ٞ��
v� ��4c_6#>��� [...]
]��i���ҕ�
��3�nUOԹ*D={�
�آ�
�n�T����$��P,D`�WCA��B�y!o�����9)ì��y�2��u1Ё#9�Y,_I�h�7 _]���C��E-���@�E�����Р�8�B.�YO*���E�焍�bNs8�$gzC�|�j�`���A��h`�k�H��(���4���'���ɖ1ʞ`XV͛�	� �`�ĺԉ�o�7?��
h\��.����dQU
�
��ɺ.o���]uc�̑i����ŀ��"���l����X����
�� �M�u�>Y"!�7]*�� �hgژ�����<u:���t��J��]��v�Kΰ��/H�6��$�/0���ml��l�#�Н�
��yRV�4�cg�pcͬ�kq��`�ȕb
+l-���߱]׬
^k��خ����^���j��� �|!?T��KUl�(T��D�x�6
m� ��Y  濵Y
�gH��*�z�,�Lȳڔ�l}�h�>^:?؀�&}l:>�>�����,/f��~�m'y�j�O)���k��µJ�?�K��Z���y���!E
�+
V��C>٧��خ�x ����G<.�e)t�����v��t�O�.�aB- ���@.Uf��E��τ(噜���F;~�‹tX�{U7i���M#eW���;�.jb�
�Y��j�
S���!�3�V�S�n*;PP�i�7/�d�=	@��� ��j#�Be���7�~Ez����(G�f�y��H(qڍ�7ꌏ�A��>�nep�hL�wj7��RE��B�SI���_��ɲ�VP/4OdԿ��[�\�f�咔k�HR���f�]�.yw2"�6
2C��ָp���{�O���l�h��ܾQ7C:-�{B����7b����a���f���I�79��*�����S��tk�vV��
l�`��Or���u&�7u���<K�J�Q�09W!�e8i��h��We��<xU��E���"��� [...]
+tTv+���JV[/T�p
� �f���0��A>�
�)��؟�(��L����D��V���F�*:���7�V�����=�m{��@�ˇo�V'����/
1�ZrܶV�q�&Q1P�c
��N�6���曑!�@.��9<�*v�m���'�^/�5��m�[��k\ih�6�\�$dN��:�� �tc��B
�a�Fm@	�8�"�.�V
7?�5��r���Z󶪁�f�
���gq���=�;i�3ҧ���`ǟϤ�Ȓ��*qh��w�
s��/yR:�R�eC�
+ ������<&Y�.j��O��4��T$D� ��ue�������[4�
��#���
��h�[��#5K�A
�T
lٙ�u�p�)�*�
5Q��R �]
ya�+_��.'/��[� ��M�t�feg�pH�BtdN�T`)(� U?\��T2Λ
E�u�c
�n
��8^��%��0�px
�=Я	�|�(�~�| ��?�o���q����K�/W�
;�$����a��cW����D>�
;'��n������^
ud�Am�s�n�@!�1��Ⱥf:@+��W�K?p��J*^��9
�D�W�
e"[#��R,+�;G-�m��G
{�gS_AE��=�t�'h]��)s-n:���̞s�#��I�V��yD/����N�[���=�i�7�`��z�@t)�����Ε4��J�|
θ
J�"Aiy�o�t^�`ԵI�9z�E%$�p���\/����2�P3u祗K"4���q{�4�%��Q�{��?^a?*4�#��M����XnG����RD� +xw`�ӿ�@D��2���EC�(\�|����C:���
Q�$G]�*m>�W��
�
B4z~��0I6�BN� L�a��҄��R��Ϟ�vՇ�%�TͿ���X W��
{���ض�~�#>�]μ���JRχ�N#I�+5�����W��E��<��5o=u�7
�KZ ��SoJ����g
�:�Б�Z
}�7
+`#س{�z+�xP���G
b;q*��\
+*6~:9p�ǻ���`
~�h��`/�R���n�姡�Bf���O����~z55��/{?
�&������C	&�&p���tQ�����(b�|vx�D�'�����n��'���ü�wb�s�y
=�碤�)
J�Tl���I��=�ĭ���z��D���cg�[/
p���I�9$��	m
+;������:֋��L5(vN��������
v��� X�8���V�
ku�q��(�a����u�)uA�t��i�C�eqD����A
v�⺲m
e�3#��RK]n�a�J�.������P�
+�m[��d���v�� ,h�Z ��{.K�G�y�t�l
�,20*�, �`��H�g����>�Z�U_s,�gn5�E��7���P��s��w.vy�ڶ��<�)�
d����_0����Z��wh�
�Iٗy����{,��m/Xك&�������y�*�1��_���
��6����޼ƻ�S7�_
�
G�A��}��g�ߎ������F�`G�A.�+�G��&}_`���<,
�kX(�J|A�p�o
+�۝�P���~�c���R0�
	��Z����U������y`�J�8$q�����Z)6
<�t9*��5��z��h����`v�L��<
u����#y�Աց��{ԁ>�[����߄��C˻'�3�„ɶ�����p�l�&n���
3��@=�%��9d�'����nYؐ	�y.ظ�d��G~J��^�?�{J����

b�
j�'�3�<P�uv�#����n�6����
��wx�尿3�a��� �y��ޠ�Ե>D�|ƴ����� �T���d���\�!���eBG��io�$ٟ�Z_u��2��<��Vࠁ$�;�ۍ� �u8[�ԅ�� DN�(�:�䒾��/	�,�+i!I,Ik|
7
+	p�X)B%�F#&��?]�<J�	p
��x��(��}&<��+'�$�1N�=N�Wf�
kF<��΢�7�/�4s]�jc
��z߾��T��<x�G$:
"��<x&6,@I�������pq|�������^��+�
�1� �,��!lV����_�y
�:�TbJ
/���ے88����C��^�}��i�	��g�r�~��#�'2�L�}���d�mB���޺me�`t�%�ϴ�@��ֵ�������M�Z�x��v+61̃�����?�']���]���?/�|��ˀȲ�<
�S)��Z�"Nh�6�}Fʀ�Ȩ��?.��G>�S�t:�8���`�	.X��Ի�]��!�#�j�����y��%��9a��Ȋ�$���y�=E::a	��=lk��d���	��1�Ee at cv�*l�=˧J��*-�h&$��OzB�Z���@,Kr����r&�kYK��l�r7�-b��
�Y>F�ʫ<P��&�N��	,5C�Ir���:��'��
�R�
�E.���A�/�t2�
K
_�2	s� �F� .
+t�L1sԎ�DAw��֣y$�̨���L������ѩn��:U�Cr�Z �G�M4�D?��)�g_��f�6�vX�-2<�`���&
c��
�x���l����$�N #�P��N��J��n�r��z�H?�R.�kP���;��¥R�y%'U���u�E_V�͈�(�,�]l��j���+ڣ^����.CsI|���<�F���BGR���@��"��(�=��7%��M�i��.� 5KZN�K'h��+t:^ys�!byڈ���S��*9}��倧y�\B�W}~"�m����)����8���H��)��y�0j��y�_�+b�>7�@
��Aa���)�7�@70
��
+�9yM Βؠ�chL�
XdH��$·
�Y%��Xw��8�<�Q'WY�\eez�G����I����i.{����x��>�N�:��M5�a�aׄ�[�3�O��F�IG/��v]��ɦ�͚�
MoXK�3ױ`
m
+����+�
krU��i���k���l	�
�[h�
Մ}X��ɡ�
+��U\�dHA���;�)���ou�����F��y\G�(�6�kJ��Dž�?q�:Mk�S
ڕ��ik˳եUP�=u~��
�BàL��O����
+��@|"�d��$趱_ʘ~=��DԱ�d@�0uy��J�M�*9�_܌���ל�"�`)�Ѱ�5�v�N�o�\�n۶�T�f���[+�L:��ꪵ�Q�C
7����J�bWw�P�����6�6�آ`m�
A���S�
�|Tm?}��7,e$��œ�K���+Hmd���g�
X���\K��1c�dF�d�I�H��/�+�n��yO"�HR�`��u1�dt�P���\����Eƃ0p�(�^�!2�)P�5u���
���%4�GDjO��S�
�thnƣ� ���EV4�
uh�x��X at W6�
8ٺ�˻�i�G����K�;9�N��{� }���|z�%e��[�/ؔ��(�<_���*9S�m�f�ԝ~�s��*�T��H˴	%;�I�ڴ��,��l
/Il�mZ�c3
8���َpa����m�:p5�(���!��L����7C�v��O6J�r%� �F+�5
CO�Cl��k�	�
��Ԧ �:jy�%U]�',�e��t$1٫�U��KEw��j�v��6�N�	��(@�]s�<¦�x
e��o�Ѭy�%��u�@a
���ҔM���?�<�>I�}lP�N�P`%�7�Nl/���8g
@������
I9_�v6W#�7
F������h�B��*�H�o<�[�/�
"@��(��o7	P�L	ԋ�L�^f;pB�3o&a��͌�M`a"C��
@� �l� zQWb7�,,J�R4���k|�����
H=VJIN~�
(ꓬ;
�j-��1�H��E
�ڷ�
NY" ^d7���M��Y$��4�o�Z�Sܟ]7jʌ(Qɉ�=�2���s�7zLf^�&+��b���pE��b��G(�,d��voា�
$�c
+6� � �
+�Jp��I(x���rkϋX?���Ľ��_P�%��}�b۴MB]#���6:���:�WO�ԏ#����[����J�l�.�sQ�)@��\�7�+5�)�_��#yhW at m�)���5��ʬ���ۋNg�A�ͥ��8�V2qY�@�a
+
��'[�I��D'��r���=�L^��t�f ��#���tݫT��Cx�c���
�	�؇
�)�+c�d����x�͈
��_�Q㵡�6��O�5}��@4m<���n�,����]�F�Q�
)�
Q�0B�7)6pL�}��`�`�2}y��'�sb�������P:�
+!9�Je�]E�*��"�@Y
pIVzf�
!���vZt�y`�e]��h��G at 8r
l[Tz/�ю�:R��ݥE�F}�S�f[X+�zkڱ��Oϰ�{�>}�D3�(@B^HYx���ॷ饊�#H�fW�Ǐi*n[�R�����.
'���_–�˘Q�ڪ��vP�k�M�8�/mQC&rw�#^xuw�� �
�mOT�>���50ض^(�|$�
�RJXB
�6�ɶ��,��c60�> ߖķ�M)B�"��}^ 0)���4zLI�A]bM
c����{���O1c�lba�ȪԘ�
��2�絘�v��p�Ȧ�>[�c�u��A�{5VRg��c�+��]f��<��UB��B����b�g �K���
��E:	��m�"�f�y�O���6��&�7�,p&Ѡl�/�e��Wd�7U
�AYd��
�T���
�C�ScE��
(�$)��6�|�D
n��q�yhv
���E�$S gLPOs�4
K�H=� q	knQ�^
��0�>ke��ohzU����ui��R(�`Ϫ��K[�n޶0*�7�+t��q�Ku]1{3� ��^h�^h��Q�Ukwwh`�&�K���R�y8����ԛ�0O]H�6� �CiM�0
��7�1��ZH����е�j�'���j�k�7E����M b
[�v;�w�j
M�������E3x�i�z��z�7[�Ŭ�n�;O8M
�`|$
�u�������,oƢ
5ސ4l|��աO����Dj�L�R{2�������^<u�(,lf
TIJwؙ�^'�`�꼠e�%�]TH�&n/�ڬ�ۓ�{С��bYI��݉N�z�������w��@9,j�W?�w��	�q������c^��kD�3�vب.Z�ߚYK�?����NR�ۄ��m�^T�� T
��q�=Ѝ���P��{Q�&JJc�>�f�b��.)
L>�`�ZŶ)s [...]
6�"r-��`�yĒ϶唢�({���`m�T�_�)��m��<�GK��z��=�U�����-�D)������k/ۓ����&"�j��*�@�(�Y(u�O{��UO���LיrY=13��
�Q��'�zsh�k�&Ů�P�w���S҄��(8���=��4"�<�`]�[PIޘ�������%N�
l��ꚫE/S�E~����
���)ט ؃��ھ[@L����[�U!BA�
�Qn ��l��
p�� I��<A��`��c�m�7v�0,qZ%n<�Bzi�x/���r�7�Y#Td��cBߍ }�ڃ���ۇ|1����5��q��S��,�:��R!������k�0_�
@R٨i���Y ������
,�E��%�8�44���EL��p�4t���6�R-�)5-���%�k��
+�2�2k�G[
D����
k���8ϥ�f����N���E:�9�������u�{><���?
�, at F̢q!�k�
/"�d�}%/'�R�6$�xF�K�?7M.[��W<b֧T"�d��S���#��y3�>�ӚN�y:��9�!=*��J�w�/�_B���J�y`��5S�:��P�)�[�m��~��u�b�($ʉIg�h�Ĕ3��wP�$�Y�ʠ �,G}M�KfC��s��]L-�բW9�ݒ�g��m�ּ��)�/�#�����k=@o��79�S�9Ч���
�M��7����1ͱ���(Ԑ��lnV��
¤
ĉ�h������Gʱ"wIFW�:�w�����H��8'��S�G��H�ZίU#
Jz�`�;���Zs��.�UbP�-�CًO��8��}�k�
���ҋ�=���NuN���c%�W����5qѡ"ȅh%��
��\��|�KS�V׺�N��x�y�{Z��%��2HDv��.�*�9T�f���[��P�R���
8�z�`�B\�?0hɰO~7�ͺ�c�,@����ww
����
Z����Z��w�����W��~��ȃ0�V�B��+b?�W0E\D+
���c� [...]
X��M��v�_�G��إ`wn���l��m��*�� ���� 
�; ɂ�ho]� g

H��/&@��Ѝ�
�T ��,`���
+-��� J���
+n
~��;�dpo�2�ɿ�}
+����
�z@���� 0
aC ���cŸnC���
�P�نp*�xwaY
�Fw0
Ā;�������]���7�;��7|�����yHE�6���kj$�gV%��wI������p��B?�.��0���af�B3�6��*�$Zl�Xq���M/���Y��c�fC��6#�4���fh�	���r�6�:vBf6t�ܹܻWh� ��Fk
9v+�������iǞ�57
ڮBZ=�om��
,d�c'�Z!�
i�JC<�Z���qk�#6��'�Yo�����w�6�]�?i^[*Kzj1���X���o��>��q1�Eon��{�k�
��
+��m��$b��Q�`/����m��X���SKt��b��
v�:�.Z�Q��b�
��Z��W�Z��sP,©����XKmJ�ٔ9P��ڳ�c{
�I�G�nWՍgY���N�s|��P�y�fւ�㽮�r�ńϲ���]+����+�lj���\1q��
q������VX��
�<��
�i��u7|�t"�N�_N��P�$
�9�E��5 at L�sه:T47˻�+S
+���ά|���#|�'���0c�����+�";N�]Or���‘ [��~V8����,��+
+7b��$�JB��YG��o#�<���q
"n�������->�
P��D%����
A��\ϑ�֜���|���甴����#���3w����
D�E��\/x���3u�<�U'�3��6����1�iK��������d�l{E}�
�a�싫����p����_+1�l���#��,6�D�}����:G�pȐI
���,#�˪����I��F������ * F#��j\.��T�2X�%β,�x#����D���_첋}�}�ŷ�P��O���<
G�*�0��<Z��Lĭ ���x=@�~[i�O�o�eRn.��Xo��n۠����"C=�,_OK(�"&z��^��|�4]T3Ϗf���
��z
~�{	B�g[W!��r��Ι	%CC2������� �,>,�t��l#�y�ܥ&�ދ�15�S���3=1�g�D["i�
��bJجD��[Iyp�J�Z,�Fd3Pc��J��L[��tV��F�{
.0���żT�?5B���8 zAlA�s����
���s}ZsmI��k{m��&�$�O��f'i�2ʯ�7�9΂[�D7�+�xr.s3�<�'���Lٗs�5؞��Vqswi��Ώ̒H�ij�.J�~C`؛D�Iyxe�s2�s��<UYF;
lf���Z6
\I�0���iQYb1��_5ee�&-��z�A������;�-�)[
+%ײ>>maJ��f��
CuHO��4�y�ݕh(v�Y�聆���3�ͧ7��	%�{3�_=g���n3���JdVY�a2��
��
Q}��:vA�����,�>
��i�z}���Um{�)U�L�7{�$����r�^J��v��+�����n�D�r��<�����Ȑ[�Sg.)���!*B��
]_)E���:]i�4�@+~�Ji�I ��gI�r�Ȗ��vmf,Y�-y�����ఉ�b����Qf6,|�6
�t/t6�ͳ�ם�|��0%�K\�v%��,�@��
 �
?��h�yF�VR\�����q���zٱp�
�&_*Y]
��8?�|��a�\� �������
¦�e0
�o�ڠ�iW+vO��n�T��ajk���`Է�$8a��",��I��>89�����6&������ӿ�ɞ��<��/�,EK���a��<��?^��&������
p�-�?ȕ���
��{G���T�O/zǫ_�?��~ˣx��f�<���~ǣ����@Th4W��
�f��_Y4K�[�@N�h~�2�%�߲hR�������@J�e�
��Q�&�D���~K����=3��
�@O���
���<��:�@O���
��N3��:�@O���
<��Ns�t�+_���JS��i��@�X�t���>�i�,�7��Nj��7��I��P�7��<M{�W�x#:�mT_A��Ĥ-�E�W�I�恋�ν�k��QF�X��Q���G�N[�ب���`���_d_3�ds�lNћ֢�+��z�A���8V�܏"ʔ}M�sE�~��q�}�he�:�����ʾro��[\�&[�-�
+�O�B�x��r
�/A�5M��w��=��t���M��u_a�%
o��Wd0e�F�*;/�ʾ���M+[iy#����i�
+����:¯�
+���b�l

R�
B��yID�,�1(�������ނ",�
�
w��kц��@xk��8�"��ɏ)�� 
+���U5�ڰ6�I���U�Լ�gE��U
���N��^�@k��q�5
�D�t�r(Q�uw��6l���V�W���+lZ�@��N
���6�yS_�dS�!�k�H|ؖe��O�'{(ê���\
Ϭ(g�GS�}oZ������MEm���ꉫ�ꉫ�
�[���������[3���
򉷙���;3��O\��*��\�O�Z� ��]R��.�'�]�O\�]�O\�]�O�Y�(��Z�(��ڲ����vQPq�vQPq�vQYqg��j���j�>^�?�����7��h��E��%Ϡ
�^�e�d�-�����
:K
+��
�l
"�l�_t�7����������+����Na��œ��EO6�yA)��;����U^�?�C\��z�ns��n��h�/�M��j���#;�1��7Z�/��md�Z�TM|�
p�Ȏ��'Z7
��<muǚ����ힽ���n6���X�{+7f[�8
�U�=��ȍ�$do�I���ܘЧj��}����-�z��
An�WW��o�6F�Cb�� o�UӦ\���mVAm�MI�\`��6jc
�J�)-�R��Vm��y%�}�ب����RZ5��
�h!Qت��d@}��b{�bcu��@��{6<���C�&�gGݫ�y�P�&!@�Au�
7���kT
�.�/2>;Q��
	�7��F��K�ƾ���� ���c��u�������/X�0�_!8�O3x5G��/8̦��9p!?��@
�Œ�/��O(�'��:��?��So��"9v�x׻�� �5�(�t
���>�Puv�
�Z����1gQ��[�6�� ��'�0ƥ����:�!�M�� B����

eWoij�ZqL��|����.�V�;�B�&WH�N	��kp���#=��<7x�yQ�&,����D����Khק���M��+���t�#��v �<��H�0�7��nN���,]'s�
+t5d=i��8�כR���OQj��ƞJ`cȶ�
�C�����
�K1a���/ߡ���[�DM��?������
JP�Rݿ~�%�,`ͩo>#�
��t[ny�
+v
�&
���Ό2�,ya�~�s33qE���+�z3���:�m��� J7��|
g۶�KO��
+�/���*z��Dީ}�T��29)*ω���N���B�r�(�oC�R�
�W����Rj��O��r\��� �yP�?7���P�,k��U��,K�=�'��
��M���K�oqn�W�9�i�W�������
�k|{�a��!�2�U��j�I®>m�9��;��u��aJ�-��Y���T�zc$�B
��J�AX�{��J����C��!�EWy9�
A��,�p�mQ�3\��|_��
��K�(Ӊ�)UM�ԿW�Lc at iN[�y�y��d"߮��b�D�0���~+"/���$�p9����

�S45y��D�B���
:Q2R�Fy@
�d�N^Mc��p��H�KyO�"�ORi�Le>I�
�P`�:��9ϧS����ZQGu��E��n��)R�U�pB 
J at H&
B4��uMvq�P'�:��y��h����
�Tm
 ��f�؊NgUw��c���з��`/���'@������8�b~�ج���K� q��;���=����+
�	����'��(R �����[�9�Gs�wǏ(�z(�iQ^5���Lgw�B��^hf;��|S;���[Ws��H:O�
�Db>Z:?8Fz;pw��,#���b�Ü� �l=�w�ʧ�
lK�՗/��_$���i���c3
:
m�?.R�]�4'�l���͍��=l2Ep��{'
n��N�YR�v��%n�F?��ɲj��T\����<
�������

r�!~���nv��q�}U�����˟�G���~��G?��~��������3��GP{�S�R��tu�_��i�$?C�ԫW9�a%�?,>�t��Rچ��*�[jb)�4�ҡ7CØ�Wm�
+�c���Mj�T��d��iV
`�+ީ&'Ƕ53�Y��
^�QK�un\Y���{�Ʌ2.δJc���ߒL��/:a��U,n�r��$��K
 �f:�G1�
���<)X� 0
.�K��-Y��&{x>�f�LN�JR��At]�Q��S�#j����$Ӓ�~*=�Eo]}I�Vf��nv|����V��܁��X!��|Jj���
�-
 -Ux[D9H��*q�W
+�
+�]2ڻ�\���F�}jb�e��:
+����ںY�:9E�X
���s*E�t�թԔ�����˾	Q̫��2
\��vVW�)�EU��t>��
A�b�Y�gy[��_�@��频��kZ?�9�(
�]g&�M2�<0mu���S,>:s�k"+j��d��E%^RV�d�h�{�J��g�d�l�@j+mڬ���/��,S� >"�
�3�
	f��'�	��:�$甛 
Xs
-��
��gh_�>tUK�4S�+5���^s��6��pHD�g���3�S��:��1�ܛ;hc�N�6��I��yM�P�#�	�I�R�� �Y��Qf�Җ�@��k%7+�&�u
�Kq�嫉

��Tu ���d�#�b�5:���iЫ�W�es^�L�ڂ
+�ф
��2�1�u �,�����ƦEc�.��t��_S���W�V_�M���PD/�Wq��bf!	��������]`'�i��DT�
+N��VB	�"�H�6��M�ܧ ��p�"�*�@�nj�yg��!�!�T�T�
fIK\
+DH�C�ɦ!n�\�(�k��\x�$�c�
��x������`�%v���9��˩���-�w[�]����5⳿�t
��J�@��Ͽ3<����M�"T,VG#�$��$A����0ߑ�F�,U���/*:up�"z�\�����.�c;u�s�I�c�A��Mv�Iվ%�!g��c�aM���g!.j�%.R1� f�Q��cE���
w)0f�C��6�4�olZ�-T�.��t�M&�ٮYu%�vi[��>� ��(� v]�P�GG�}L��29��D��a�^Ѻg1�^gW�Y�9PU(oc�O"�_�{�����p�M1D\P���y�W1 M�N$_\T��w���
KaP���tl'���ǁ��>��rM{"�¾2����y8%��N���ɜ3���x�m�t �E������Tgk�b�
";�JǤ�kp��ȓ$�{�
"�7 �&f
�� <Tz�zqMB�O���H�}��]f"E	V&��T�L�X\t���L�*�Խy�g+.\\R
`y�G�P�
�V
+vɾE�Y��J�c�@��z��mRs�ܛ����h�������+kSDh �8��
+����m��6��/�&��Ҋ�
+�բD^��U�z �*8 ]��~��6}{�\�]Ҳ�sDU"�ǡ6
�K0��0�u�I; �I��kyM3%��SEU.�9sG`�5PM��墼�u̲��O�2��U;\�,�1iᲞ�6
+��v
����	�D�S�؎���a�ټ�
+��>���0j}^����U��Rj�(�&��]���(��vς6of@�
�CK�C�
�F��Fl�)�
+��
�����1��%�p�;l�3����f5hS������IK@��J�S�S�¼X�m���l��:?}�il櫅T>��r˛9o�A��E� l�tX�T&�µ�l�Q$��5/��d��{; \�u��@1���kV��ك�!�M�{����.V���;!����{��S�#l��(N���g�7��5(d����9&g��;��gaR�,$�V���4nV�u"tP��ԡƪ���RB�%����R�S��B�_��Ѿ+m�qP�=�ޝ ezM��'o��ͤ���f���~�w�ƍR��yE�$Ew���k2ǯ�_��b�blR��i>��Im��
Q}mh35*O1���B0H�m
R�]�b���	��^��4��!�s
[g
�O�H��M!$�eo�8A�v���V��0m�h��$W��
!
�<�3
��Q�h(��SaT�Ÿ�,�y��04r'hbb϶�`�~�J��{ )�M`���MH��IM��피�]Cz

�^O[�6H/U��0{�#o�SQ�f���.a Q������>0�P��7�-���$Oh]
��]ߚt�D��N�-6k�5qnR1������9"�l��2�lE��?&�2 M\R~#��=�!e{Vq��M2뜂k�|�*��5y��T�0�����<�m����t#���裸J٧
+�:ob�4vR�4��$5tT
�Md��;_��Tw�C&U�.e<�_m��.I[4�.<�5�+�s�P��
+��b�B�zOI�q���c�W
������3��Ϯ�s�k���󘿛y�)�O�ژ�.�
+���h�!�;}�x���,��O`9�6�*�fP��m�u
�n1	���Nhmq̋��a(�j^u�����I��f;�m �۴�
��h���m�� T�,A�����IZ�",A� f���C�0b��,lJj�
R���i4�A����&
���6;� x�;��
��vS��N��D�����a���u<��J"���3���pz%1
�Z3s�9E�l�3��<���!���I �<�˶

G|Q�a�[@�n)
�~�n"�&l�&v���d>l
�J��|��@F�"�f��_�[�'J�
϶��%���
�w�Xr~z��qP�=hH�������S5��s=�����߷E���c.��)���[��7S��1H���=>V‰\7�E8�
�2|ɶ�=��z�.\�`�<۽Ja�D�������ž�

+x,��拏���v�!��y�w1
����}��^$MD��k�����8�۽��F Rg�t	]�h_Y-��g5����T�
��A]A�w0O�>8�ʵ�o��kE0��5�k���i�-����.�m
���9��h�/�2���V�c���戾{֌} !�È����
jb���� 
+��䷉���n�D�R���&�+� �iao�<6�W�Ǚ@aZt{
+[��"��^o7��\�
�#�)�|;����[��w ؀"�
4�G��p�:���d#�^�_���xY
)�ȉ��R��OH��I�����Oz���&�� �NO��B���[�.�t��Wv��d;��פֿ��s�ҿ,�Kpn��t�cO�X��0���,����y��O
�)UZ��2�b
�@}����
+�X��c�|��Z�%li�2
zQ��d1	����n�Tb����O�|�fI�,�����D-/>�{��� ��"��
$�
+-Q��
��
"Q�C�j'
��5�e����\�;F@���$sH����E?c�뎳!��a�E>e
ҡ`
�B�k.�����
�8��Ŕ��3�j�ծ��� �%�zc���LZ���	F��܉��j +lw�wwgG8(c�z�2��i P�E ��;
#�WcH���C'��۝�q��..����W���^or��LjR*��D���;����P!K��X5~
�
��:3�);�
�0|�;/��$Y�L#fd�`
+C����[������m��@��D���AS���Nh��zW�#��9l��x�\#_ڵ9�W"����2cY:
��xZ��mzTp�w
TW)�W�H�fQu�Vt9{��,X��"%���&��;�
�U�3d�
~TH�bA2�f�ߝCwU��B��7���a+��^"X��ŖG�q���X������(��KH��'��-[�Xyy�M�,0���s�]��
�?{�Z�=w�"�O��ZW���#kU���2�UW���N�|D0��ڌ G��
���~
�>e��@�R��0x4��֪O* ���+$K�(�g�@�{	#��F�w�V���]�sO_g��O�sb-)��Z��3s-o�ٽ�I��d-��Ŷl�]
����ԏ㶱��㎳T����Z_w�PR�f(�ow�P��v@����)xkV B4(�LQ�@l-Y�RC���T��ߠ�`��d����u�%8"�� �y���N��'8S+fh��Qp�|)��\ɯwp�蒮�����n�h��]�A^!b�K
�e[G<�Ԃ�n1X!s��bE܅�db�b(s�FB��H�������}P�
cp�b$�`�6>���8wA}�Py��C��ϳYc� ��,Š��9���+�w�Y��1���!5������y^�C-
SLl�ML�v�k�p����]>-��C^. �׌^��o�G҉�' W �.i�v�<ghX��`�U
=
!){�?�4n��f�CF�!���;�
�?����=2ݡ%$�C�6�
�3�w�L����m t��A� Z*��hW�(ٵy�+
����="�4��T^+'r��9)��7l�.E�2�6"b˼^�6�֋ԧb�Z,� ǁ��
�97c[+����U-�5V��yšg��Q�k�
+��}\����u;��~�e1��/1�{

W�g��hu
_��V���b�ԓH��VMmW�{�|-
�+�U�������o�r�`�w�@��'t����i�^k�5~�]�6̞��&`(�y��̼���4
��Z������X�
���w0g��j,iF �QB\�<5��'0?Iű�m�y��&T���B�*���
��fܤ�Р]�s�
+)�IPhV��,��!^_��U��N��c�PD? ��x�ׅ��J-ܬr��^G��]�:�'��k�.!���
�~75p2є �iz`����4���A3&�ڭ��~i�X\pJUt3b�rf������
ej��W���<SOϣ`�hpp#|.�v@�A��)��DeN����y{Űj"m�k~� �^V�2��<���[x�~�0H���ݮ H
�xu��?�of tQ.�&
|���X�8'ƺu��aU�;���W��
����q/o������^�p��}/�^��_L��
�����G�k���9�q��	�����
�ϻ��f��������
+
9���p��l�p�PV3Vc2��%��\��w��=�IU��1���	�AH�~3���E釲�f	�4�!�T�Y��D�	�z���~�=s�1m�<Å���y�Yp
4�YPdL�7.��JE�&
���&�,́��	K�������>Z�`s��WRZX�ۀx�N?��a�M(���	

}��@h?�H
+|�!���
X�Qc`�zv�Ue
+ٶ������n9�u ��� �P �E����Q`i0Y:�*)[��!����(�H�x}2�y"��C$�ym��$�N6�&
��)槠rk�
�sF/8��f9K���0�OКxY��6"���<�����1
+�_:���,z+Bo�ר��A{��+��obN���c��2U��:е��B�u�'Ue3���J�w�O�%�9g�gu����l���⨮u��K�{EU3�����C�Z\n���#�N�
+ΰ1X�)̄��.��\�Q|n�$n
q>8�z+1���D���CнN�v_�k�� v�N�)��7JQ��}�]���X��Ӎ].{s8�h"U�$���\RQ���@��~yD
+34� c��Ȫ~A
�&IX*�T
夸�T�:��E񦽄�	/��G��9t }]/�q!�s���%l0�
+�m����M�`��lO�vR���y�-3�J�y�O�����;}x�����`p�lV���mgV0�a~3�N�ۆo�E����
+>CX���
;�0a��zύb����v�}�x���>I���5�šm�o�}�|���*
�:�*Et�J�e{�R	����� ���E1;����NW��csB:�J�A�O�
�ts�笪��Tx��1�B�ܘ�Σ��dg�n�T��:0�Wg��"
��4]5ΟH�#���e����@�G�n�.t�N�0����hDaf�O�7:ϘY�H��* �
�C���[������\d���
��3gu�$=\�d�UU�UU��eO�D]��Ϣ��{n�	�&*�<Pb#l�xM�
�
k'����ǡ�n()�|B��΃�I�;F�C]i
+Σx�h����_ϙ�A��7��mI�	)�������#[�
#C�l:�����>���T3�Y�`��e������!q
+v+[�R�%�rii�����)��Dٽ�����5y����.��� S�
ҒQ�r��v��Q5����6����6E���ի�|iz��}��l
��΁����ckLm�����X�"�g3)
g��A�#�%�*������~�9.����_3]Dz�EB
�Ǫd'6UV�6�b'(tۗ�%�4g�&�AO ɞ.��G���7�E�?P�)�x�Jb����b���)k�a=�}�
K�R�w�"���
+7���
s<aҥ�^��l6
���y!j� �d��{�v��C;8D+�i��&�*{A����P&�ȇ�&r���]�LG�
g�o�!O�����y�U8S�P*�7�џ����z�=9yi���6�\rZ �l�
+� wL�ÜHzjvnQ[US
\�L����G����..
��"�f�ES�f+�k�蟜�,��
��1���V��8�"�g�Sr��d��2X8�o��rhi�$� `T���I����<en�~�6����
���
7G�����)�O���` �R�~A5#a�*�d\�u�?�M[Tl�����yvț��.T�f�
+�ʌE�N,�Y$ޟ ��cF�(�
�k8�4��&�ls
�܋�!

/�}����ɿ��
~��[g�:�������l�N�
�]�z�TsP| ���g��j����jW���ٳS@�\%��N{R�ʹwc��Z��~����H�\
I�O*B�rW�d�Pـ���2{v{�A 3|ٓI��v�;=n5�Ӧk�]�
��ޏ�d`��2
ȹ����-�&q��&����C���q�{֩t�KUpx����y��ȃ��#�@!}�3ς5]�k䊟��6���P��'L�7X8/��0-J)��� ����H"I��j��C;M�6�Ȅ����,�C��n"����(���^�f^a��
H� ()E��wq
+ɶ���E͇*���F�G'e�]�ļ�S�[��eB�G4�5wZ�?��}�.!:x\�%������n�������yj�>�z�������jj u���,�a���4{���g����/�pL��4I�(̻�}d�'A)����#�&<o2�w�r9��>�y���^�
�)nl�K@\|&G��������F�r��vDZ+�K��UX�D��~s��p�s푅[��1uΓ�<�*�<MЦ�y:����nG����:?���l
w
�L+��8��ؗ������y�߯����uY�
��{� ss����������>e��l��fR��9�͸ǯ��C[q�F�d��˟��������?�˟������W����毾���?��?�T>��W݈w��_����@�9ݟ����~��o��7���o�᛿������Y��
���߿��_}�?���_�듘5WE6�?���~�����������N�?|��o�����}����_�����
��.�{����
���w����~t
n� [...]
+ż(�1"<�&_�O����?��I[����?���������/9�������L/?�_�՝h{{3륦�7���Q���bw�/��⯾x����?���2C5�,��⏿y��\���U��l���������`�rЃ���5� �� ��Y
��>ؔB��n��g���9 ��`A�Z8
���B���@L��~A˔���ȑ�����o�f��ê�;\0�$S�e���vw1��o�����e�PhT[' �#`	�#ܾ
��W6:�e�D��&��Ipy3�� ��SrHI�y������T����0�1bL�
�lBP�	
q�H�ඍSC�u��@^�(�_%pGE�	<�5��|��;0�ȅ~�O�dƁ.�j���JBQ~bAh�;u�|]w1�����~�܋�a�� 3�<@8�$u�F#�#'�� �
�辮.r�x�\� �\\���8�(r'�O`
�DBP�;���j��f5��8c�x<���s�Xh��T�s�l^�ʤui�
��w((qh�f���l�*ͮ������ߥԘ��v�H!�2]~�6��S�	\=��4�g���A�;
+oQ*�65���S�����ڛS+ˮ�z�o�V�b��i+`Qru��oG4��!#V�M�A�$H�fZ��w�t�P����Un�k-��/W�
+�
b�J��E�]ك �,�B����B�h����=g��L4wjTF�i�ZL�����e�1���f��LF��K�=�^�W`8
]-��	�1-��h�v�ŦD
��=р�� 	�k��;��
a
���$>{�>�S�{�cfLz���!:î�
+�c��#K� �8����$M�J�(���ܻ���N�
+;*VTмS
^�&�D���1@�>��Yf߄,5	T'�^���N�e�h�9 ����{��)K�� D�A�8N
^+�&�3Wl-��rD�
`�桶�<d�ͫ|��ry*\�ƾ�}��
4L
���h�N�:
�!fvW�����
:_����a
J�dEB�l�R�b����D+C��]
[@4�"�@I�ub��2u~I�B�	3�F4z��A@q�J]Hp;�}��r��)�܂�na�ӈ��9�\�YSG�`�t��V}�4D'˲�Е�1{?�B���<Es�ST�!�dz\wQ�D�i�9h�7�Е���_�d�U�_Wh\~`�@=p�j�h�@���� ��R�m=��u��ywx�p*T�ՠe���E�"9�q��)��hU7ۉЖ�'a!��?86�zyk��f���NTA
+�j���mDR�

��3$����\C*� r���LcTB��Q;�(Z�_���0��`�@q�BCP4u�r!�
��=9��lz�*�sf�P�Q\K��o�@
_	�d�V��k�2S�9����b,\�NWO�A􁚞��U95ᑆ1��
+�z��p�y�m�(eڌ�h���X��oML��l�]���/�j$�H0P@[�37�6����d�.��Ӽi���c�I3����ny at Vҕ��  k:Mi]N5=3BS����@�j��7�6�a�
�����\�{K� ���[�⃬���AXx�*'���/���s407`d�����?A%�Z��Ij �8h._߃ �(�W��H��To12��n�σ�`�l�ͽ>�qKMb��>$�������韴��9 ���>
,�W��{�P�����r~,��������%S�/����.��U�>@����\��mF�	Tj�o+���r0[��pE�O��5�JK�)�`���^�'\��8�Y�U2��ZA�e���H��y��ĥ��VX&�����Z���3IȆ6�5��iɴ����;>� ��m��3�H
ft�֩�^
;a
�j��h�.o2�/b0��u=���;��=� ����g��.ɍ����![H�8�wgo�v
+;U�8�ͯ���5\�׀,�}	OB���ق5	/���{BZ���bjzk����HF�9���A��Я�$��\z�f�	�N�ou�
�B�B+9�Y�������KZ�!.��I���C�1gť�O�,�&z�C

.�pB&n�WR�� ���$[��8D�g7q6:�%3}Ёe��P�
>���P��x�n�ib��m��
+`7^��3���V�'�}2|�閃�-�dw�v\���:�KSٌ:�����a������/����g�2��44̚�8
���q�+��D��@��
�N�F�>e2°b�a�P9�N���f�t6�bN�6i�|ۦCY�i�
�!v*2 	�J=���Yw��롢�)`oq��#��@#ہ� ��-�A}��}G��
��fч.�G�X0d�E������"��r�s�1/��8\J����f��תQ��Ʀt��ek�n��Qg����v���,g'��������1���Z2� b:�>k�v�.�'f�\ 
�D �u)n���O�Ji1��&y
p�J�
+��JN�Po�Ӎia����V�ƭ����e�Kf�*�<�}
zvm�"ͰOR*� l�K���5�ܝ���E�C��2[����l���
ؐ	�Xz�RDHDF�i��]n@@A��Y��{r
�?Ǡ
��ɢ���k�%V����9T�c�S�r{=]��&�x��7�`�x��>O�G5��Q�O����R�f�ɷ�)�'{P�$��~801^��z:�1�nI$'.����(
�ʺ���h�-�_G�p��i�����S�t(������|ÃP�6K{
�:�z{��OʯU 9E6/N��T��m#��."���� ���(N�3N��G
��s���`kn�Ӡ,�_��*"�p�ܢ����t�>ą���Q��O
ݔ�b� g�E�v�Z^�����-�;�#N)���9"���x��g[?7P
��>�zE	��:I�
ќĮѥ+0P��v�ǁ�˓/��8����O3
�"
<	}��]uPV� �\pӡ"��L�uJ�ئ	3�]
�b!�2o��F�py����RT����T� {�-��`�Y���!�
�ɯ#a�H�������*�%����j�E�p��[⪄�/ҳg/��sa`��?]"�u0Ɩ�����9�˙�Z�����P7�䮍G������SlL�N��vh����PR.�B���${^8@[S���z� W��N�pwH����G�.��9lTg�ׁ{�z��\J�1�(�P:l.������W��2���A�BM(��>�Q)�@�b�@�#�rA�a��� x9xq-?~E����t��vakm�u�-4.�x&(�oG8m����m:F�����<���묗;�h/I��~@{���fARڽ
]�4�@"d��Ck�ũ��gV���Ƭd�7V"�M���C��'
���Nalgk��	���}���S)O,�Mɷ���D̤?�
Ų�y
����`<$�7���`#%�Oo�;�ܝ(��#�
+�4�J�t�шo�A��+��
D�g$B��n!?��
��&��<��I�MviB�&�ͧ�qgT
8�ֳG��g} H�^�
Y��Up
uֹ;���m�z�	��
��.tO�Js����M$�o��D�8� fi�  ���*���LJ}��
�� *�����k)�ඟ6�SYIR��<�b���WR��LAt���)a�l
>ߩ[��DD��d|Dr�-R��[x
��~�A�O詠��&s�
+e���}�e�&�"����$q�C*ꃞ���ٶ]���7��əIͣ�4���'.7!�mRDŽl�e5���JM��6y�
�3I��wi�@����L#����C-�t�
�y��D��%qW3�DL�,Ls��~�T���뀸;��h����G��,CsP��(!
IZD� IT�2c2\�/��q w����r@
�~�S�w��M�We?
�	2d��El��w��\�Im#���{�������R]\D�:���
}΂4��0VBtD]�mN	Z#�F
�c�1��t�(��Ě�� E��Ϥ
���v�p$�U/~�:*IO3#v�&�ө,rB0�|I��c�������
"��5g�pH	�^*�U%�������7�g���Ph֬���ը�h��,ӂV��!���K��3]�
��k�W���w>�C\l��f�HbQ �L� �=|
���V�� �}Va&t�u���F�H�LW�u$f^v
�)I��'�_(r3��/a��Tf�&���H��)�$^�Xf�?5lz��0�R�V�8/.�N�S�΍ݛ����_�R��DY�q%[����y;Y?��1�,&<o�ϫ��/ �p�&���H�&Z˳%���N/�H��J���-/<�0S�uׁ�
M @f��5��>�+�Je�q�
��C���_W���G��8a?��}�6��o�
+�xxB�3	
T'b���Q�]�&�|�m������ߺ��
+�O
+@���
j?��>>�\�y���Ls�$��ե�;�-��^$�K����
<��3�����/��%݆F��ҽ�Z��=��x�LD�]��f�q- ���{^w
�i�E�*npq�һx�b��#k�)���1'�G�wp����/�1�9O�$����ᒖ*
��Fu
��p �����
5I[mjvf8����h�nK�Ni��9��R�
�B8�|����NF��`ݒ
*p!�;��s�0@|�i�)�9� �雲7�s[:��#?����~F��F�3�$P�ba��hl>�?�A�g� �6 S��S�/�$H�u�(�@=��fdF�"����˚{��%ʩ����^��ǏԴ�f�Y$�F�}�p�?k���^ga��ų�.͚��r��S�j ��a!�$���>��y��=�Ҿ9/d���D�%�U�U�j4��"�i�̶��BO
���gyVz�I����
��ɐ��=
�0RF����8����yz��@�z
+i�
+A' ��.r:�	�
��$5����h-�"(?\�5F4������׫�4;��stC�h!Ɂx_�mXg��Qh�2�I'�l�'����	ͳ�k�G(��^�$
�v
8��t4�奷����t6ᶓ��s�q���Me����J�F��1��.����(�
X� �k\H@��S֚�3��
R�
Ҧ
#>OW�&&y��h8�(����L8� �;.H/���-�c�9z����
+G+z�
�p����\�ō
�
.H9�:�_���O��P����Z�}.��T�	�;͵�ĭ�
E&��_w�K�*�v�"�c�h��첤��8 ��1�hX)��\H>�mO"y9ܥdi�Dž|۽��2:��
+O��0�!f ��f�fo6�T.�Ԥcd��L�o�/4�����Fx�V]Q�>����H�(Id�b�$
�8b��K�z*��QԂ\ҦfA�h�$�@�K6I�v�\�D���]!:� �vM�
<
Y���,���.S��s+�i�I�迺�%j$$,�;��m""l���%��IZ�i�'�s���)�'!j��
�� �K�N�>#I�B��ꔆ F^I��Y$i����ʃ��#ȧ�#��
#�n޴�Π�?��5�|�
"$�&h%U��k"��k�� ���
�WZ�"��_ f�ö�@��z�I.�K����M�-���`U�
T���^�xnG;�D��Gxl�l�VC��Uif=5Js��ԇƃ �IxP�gH�m����Z�)���y@�ѯ'MF�gƈ�b�
�17�j�cj0�QWv�?����{��;U����,�-Uј��yIܰ�B��G� <@�����O#�]5������=Ϙ

�N)��
��t؄�G�[R�
1P5�a�s�`
NIa,��
G�ż
��^��j
�������E
h
+ sj�!q��հyE7�f�?��!��k��ij}8+B��!$Z�V����N�5>$G�$Qs�݈;�1N��27�眭/�U�u��TՉ!d�:b���ʮ�zs��P�սĦ�*�P��|� �����  U�O�q��
+lSf�� �j�e���K;�
uO���Z�G�D
��
�F�KR>d��S�
��IlB
Y��k��}�EwO~!^��@2�0�9k�an	���e;�bO�V��
+�Ը���J_So>!����;��:*�p:�Ÿ=
�<�0 .gi��%�
4��
P��tz�n
@5���>c�p��=pZ���b�V�5)���76I��s�����pHqd	5�iE�®����6�Tg<��.��Lj���
��s��i$T]BN4X�Ǩ�|87�z���7�^�@�{�Tִ͡�k#qB$��5)�H
m�Rv�=p�Ǭ���Q��Sc�M
���p�����FJ�l�-
M�<��,�P���)$�$��'h3m�8���j���$B���>��-�硪IA��<�u��
����u�d�r�d��v�%�\�q!&SY��
�S�A��0���o^�r�d�S��󂚷�;����J��9Hyc>�~	2�!X�:U
+��N�&�-�a�v]B�)��b��r50�ׅM�#���� v�&�b��R 
+���$�;�M"LJ3 �1J�0Z	̀�����H��T���uY�H�&���D��(�	�:�n/��zS��$�rt5�w��H�"�m�M�s�QB��A���K
�s�� p��}���5
��y
�.�Ow���.�d8^�Ѹl^Go^dC*���M
+Bp`
�(�8Q�yK���Ļ8~�fH⩉���s�P�r��ps�nH#��8/�F�0��cN��N<�b,>�pE���a ���d�;�D���w�	u.��7g;��M�+�&Nz!�i\4�7����W
ҟFF�}��UB/�:�
S`KC�ZL(�P'�D�Z�(,
��9F����"2��ω;��4>��z� ��T�+��@����]���/,
�V�R��i%>�_HJs�e&�
U����� �)��(#�'�9n3�|N�����U,�rB�A�|g75	�"��q�&SF�e
+v�"�����CY�EU��
 b:���Q3#vh�@�K��#J/�g�[v ��Z�P׋=|y�mҵ�JGr�ƹ�����v;��ؙ��
�P3�k�O��lȰ1>�!�dC���
�{�y���Yj���B�&wD�����c䊟̪�;9��3a}��f"3�Q��5Xن>4���<Q���Q[yA9M���[*��
��
��b�.������s�\�If��'QJ�5?4�Cuw�~�{K�:>�!L	�5H  ������ŷM/�[��-��R(�<.�t �=���<�O�a��Y��Hr^Vy"&���\�c@	�������G��\{
W����a��Ĥ���a�� #rT�w�r+�P����QSp���&�= l�8�djg�m�5)�
+L �/!5O�}��\rv��J&9#�M5J�X�F6-=S�4�[�
=Tw��%� Gj�#�y #��
+�{!L-N���JT��9�ހ;���·~#������������?��?������W���_��?��?��o��+
����.�쀠|����'X@�BCן������#k�]��O�-`�lǝ����U6��6�
i��L�x�S]
 �p�
+ O~B��Y�*E��E
�<8��n�a�
����c��(�3+@���P9P��Y���lp�I� ������Z�U�}=᭬2��#&_�ob�`8����<_;���
�m��)�>߷ޫ&G
z��xu���OX8���QX��l�o"�P��G
�:"G7
@G�.�	�&K�ɓ�z�Ѩ{{���� %��7��Ͽ�&53�
>߬Ϲ�l��3����.��J*k��L��ĵ��ñG�
GS�������r��S�,
+���<�Ra�\Q�E�^{�
+{P!X
�M)=
+�3gh�r%�f�
^
+���W*i
\�~VF
E�{�h�r|y�O�ð4Ob�A93���,��	���TE�{�P�XY�α�7��u.��p!���ݴ��B���K�`��HR�^����.��#��^��!�j�ۂ͍}�:�&��X`�����Q���ܱ߱W=�U�?r��e��4#FC�}�~^�
a����r�G�
<��:X�V�+�`|
֡( r���r�Y��0;Ny4��[��
+��W
�x~`6��Y�
�x�)XB�i
��&>����D<&ǫY

!�4��
�A�r ���i��MHG��f��
G�,.�I<J;f���p��oΌ�	��U��Ä���Q$��K>��3
ƹT�
��&ʙ��M{özi�y6}�����w��:F�t�q�c��
��<��&��:��O���
�Bׇ��{�eÒ��*>*�C!{��עD�It�8���T+�խу��4I0_�_'H"����j�{I�5���/'}��7���q�����v�4���X4ļ�1�vJB,�J�O%��m����_�DZ,ȫ܌���
٪'W��ɮ��ŀ�yj��l�I���/��k?
V����rr���� r�*�L��G�8&>�K₢�R�<�J��q�n�� V���Q��(��%$�y))\@��qZ�"�OA6�*�>]�'8b��T��
��Ͳq(7Zs���/��;���q��`V�eǼ�_� ��nG�(�Aٯ}Ҽ���,�UhC��L [...]
+������d��3Ŋ�X�ߎi~�M��V:���<FS�N�
����	

����ڻ!�"+�����v at O�4���hc�\�Ă�Thu��7:H�4�_~ؔwƿ���:�
+G�@ǩrs.� �D�=OSo�1gh�p�F���� �}� x���w��
��,Y`b�`��l�)�K3s����8bE(���+
���
�鄁NơKЄ�2-Y��^�
�Jk<���9�|T��
�ݐ��iX<!��X&��5>7��aW����d`��u	��
!�Pj1h!/q^��C�	�S�+zk{uБLL�.1�d���.�U;l�u���
2�`��5��,�
�����S��2���B�
�Ғ~\�! ���@���d����u�q�
�WM
@�b
�r����+�<�Od
^�L�ڻ�����
q� �paBZ�= ]���{
?HkP��ಮ��O�.��cIT\�DLѪ~қ���}
����j��k�e(׵����ZА ��ؕ��Lh��=�
��l!
\�
?�ٰn��� �aTr�H{�ǩ�@��#��&��J�Ͼ�}ͦ�Ll��Cp�vy� F�r�'h��R���z
��+�%X��w܆�gCl/#�^�<�E�6"�m_� g�b�jӋ��ͦ�y��BG�0�&k�O��q�����;PW
*� (�AT�PM=��j�+w�(1��	�*'�j�v��h��q.�t���
+�C��u��A�>
������8|MT�	 O&E#I	 m�2�&A���5Ls�VH	oP¬D�
Ͷ$��z�Ri����M��s'N"7xΠ�BQ�C=�M�D��CfF	 
+�!�p)��u�ك[��	���
�
*�ܕ �����n/ z�W��
������'�����ǼfHӇ�!b��-�aV"�
iV���s�^kU�]d
h���e�0�*��,�F�)
+�`D
+c]�y�˂_�	LC�W��

���$B��R���Hl���6���
���ˉ�<�ͪ��	����z��ꛜ	pm}#B�0��hB2�
���3�t
� I8U�
� K�!�25�#��@�~�c
d���kDK�1���W��ۧG�RC(�����j�R�*�ۅ}ب5
�ʦM���B���tD�hY�YNa����W�H�p�h�1e�1�K_��=��
Tl���l�a.|��Gc�a���
��!lA��$��q�
�yРj�"%�����n#�=E}�D��RUR
� &��G[n�ޜL	Z��&Ą
@
+�	U���ab�ark�P�ɝD�O-LT�#Xz�3$�+��~U�ƞ��r�b
+0�7��I� P������a�Tj�R��ێ�S=ج�ړ����]
+ɽ�&0���������cШɗ�K������bs�\:`@2��`�
z�
�H�=��.�WF헽�J�RxUN�%- �,b{a�z8&xԄbU��Gd�8Ӛ��ױ?R�~߂.��(FN`9$r(�p�⾠헻��I�Ӱv.�ْ�f��������@xy�vC�qo���v��} ��R\թcc�}/\��U�aFth�v�|�!���w� =z�)V��}��u��?0.zA?����<�B,C�
�W��ǜF�@f39E����B�`�{@����A��
1���1�p��=*º�0#�3.�F��[��og4Uu�	U��K�E��U9l
�)��řD,	��R�:%��I�_͢���\B��;H'��
+H4 V�~���]&�L�i���4�_
����:��n̑/K{9:�Nd�F����4��^��A����9��������4��v�2��c;ڀ"���ށT��_��l[���|��[�	���E�z�w%R\����;F��b���Us���Eb�f0��[ᄰh�0 '&X-�gȼ�/D�T�GO9�
��X���q�@2� ������ҝ����}���;�
)('�Iu�k
���
u�H���>J�(H9N<H��~�%�
M�D�b���);(�Ѣ����h��x� V�Z4�n#�,��&e�f~��cYƒ
�I��d��������ƙ�饽B1�d_�T��Dm���>k�	�*!��B$
�ZL3��Dp�H�M�Y[�o|�}�Wo�#�e�ˀL��*<N)/��R���у]=.#�^)t?s�w��0<|���cyr
�
�El�L��@2���f���)((,l��
+�Ye��⃇���|JY$Y�4�!�L�|5�s��eѴ
��� �,��G�U��r�(����0N�d�Uc�Q�LV�lye�1��ũp�;���
+k!���<5��2�<��v�����zްPD�
H�Q&$F 8=?�	�
	T$"�yzԦ��?C�NR�?�׵C�ʓ�"�)�5����ty�l
nh]9�R�����̱�AOd~�fi�i���X cp��*E�t��lҀ���x�q�e�"B��I����r#V79N�C��*�Zμ��`�kq�=�Z��� A�
�I��=�鑂�*3����Z� /�~
�D�,�ö
�m�C�TztXq���k�!�
��	u�qx
��>[6n�P�:$�L��C%�c�a�
t�]G������QA�R�ܷ}!��
�
��l9�'���G����x����U�
jRl���
+jy��쪁
��Z��wO�È��9w������S�Ě�9<�gh���kb��ڧ��*."�
[n��o�(pCAT��^
v����rX
r�(	�#��
?W�F��'d��
+8=U\�S,�`��+,�L
�\�Hw�@���(��(l�b��ΨGP051���`�+y^K#�Ҁ	�v�e/�9ipL+/1�v�4���|
-�@�j��Ț ����ˠd��H�Ⱥf���\���n0?
m���t,���P��Z��6	g�s���(�KBdy�u6y�!�p���AACaR�"�AwxWPWAbF$	
p�� �׎:#KC:	�N
YԠ�-4Vԉ��À�V7	����J�&h0tU�\ ���9!�
`u/���
/!;�.
��	/�챀-��w7�8��:�m��
I���~9�zdHN
���E�ʌ�
/gw�B���I2%��������?'i䢐���
���\��cZاSyN�fK%���
!��4ph��dЃ��w�R+;�q���}�~��*$��N��޵��{�p�#���=0��~�3��6w�����툁�p�
��Qeļ�J(p	�
So?: zO����M]���P�<���
+H�E��!�Nꬩ�x�����\#� ������0��~��y��
�gz�3ʌb������d��7�Rpm�T�*
�>��p��@��%�x3!�˄��+��At����д	e�����a�Q� � D����	����T
���+��6�,]0II�bs#��2���-����'&3
�M`��א=@Q+
X��$�Co�f�6X�w�2f����<o�&�����%�쌦zF
��9���OH
1(�Ql݋�8ђC5U8�c�˭��ux˅�e
+�h�{���qܤ홬��,1���ϙ�LH
�C�ZFc��L�\`�
�Q;%�?
+@�
#D��GtE2!�3>�%/<8���0��/U�&`�R���@!�#^�I�>��.q��t��
X�� )V&( ��,�	�	���חp�b�A���z
�du�,R�9!
hF~f�(�t=�0=��J������*Cf����
�]3��� ���_���7-��;��#�x�����XjGfXJ���OؤV�Cn�n��G׎+D��g}�9c�GC
+
,Rj��(Բ3��{1�f2�
aTF|&
��Z +�i���
��-#5��#tX����j��֚d��!Q���_-�t���A�~/�?�H�$��lCw @���	+N�k�f�XM�𲕮�w#L4 ��&�����?��eV.x�*��k�`-�i:����ɑ���`	�0�p��	���X��>@�(���f �
+�~�� �t��,g�=��JY�N���ف�B5�
+ϰ҈~����S�^�U^A���S�w�H
GS=ku�>�L3
�(�$z
��T�ʡR�Z�J~��{"a��oX������������x3���Q
e ���t�e���SH>�_���}�$�ù�Y3G��6�J�I,�=-'�'���kD�
8/]�L�NM�|�,�!�,$Z���gֻ�q�� �AkVKdz0X����C<*�����|���W�si�_i*���X�Е=��D1=����
�7ixN2�Z�Z#�}����s�B\�nv��r��������#�.,�fF��9W�
ҭJr�|������!�d}B_���������'���o-
I!�xqi|W�ia`��
k��X�F�FnY�ޞ�: �t$��I���
�Br�W�ڂ5�U��sq4t����
V�_��ǿ_	PDP�A&U����7کt/#�]�
&�.��KT}5x8��6”��Kf��2�\֯u��9�
G��-��d/J��!��z*��^.!{>�X@�
tL4�}�w�?�7�+E�Fށ/�
endstream
endobj
39 0 obj
<</Length 65536>>stream
+���_	=�+�M�d`,��$���4m٨�N���{���lxa�h4��}v�J�Ď�.
�e�Y��U)���8ڕ��QW���m��Aș'��G�����#o��(��Ѿ4�����dm�
�9Ղ�
e�"�
�9�������>sO$
�:����ӷ��[#�/Փ��i�#�2-j�cd0�3*'����0�0���;aA2�93<��t\�{���B
���i=b���S
�h���ؒ�
�����&hw�����`-y��\Y�'������VUK��Ag�����,!�*.[�w��)%�5��ٕ���:\����83x33w�%/ً	��X�(Q�����N/I�
+
E/����q�E�b9��d������7�3��„�
�R��D^7��S at 5n at G�
+�@�F��c(ZqN�-�[Y
�
�;�=�a?�@U'
�b��m��@~ddE���"
���Ђ���J>r�C��B�P�nү���:���
ִa�s�,��|��Z��'wذD4j[0$���"?�����$�V#��QL?R�WQ�`���\�h�T�i��Ze�s5v=�{/X��*�#Q�rc�>�z�-�T-)�=���H����J��ٰCkA�Fb|���-��P��|��z��(�Y���m����K��Q�dY�G�e�q���Ơ��w
�BsM��',�+�d�;�!LRIA  ���#0�D�]?Cz�^Ҡ
��*��!�1���y�
+L�峔���#����ЩX��4@��
p�hT2��|��8'���1�Fϓ8
��P���b5����7%�EC�4")��I��[�g�(��`���"Lm2jy�3XGA�#)H 
*YBlY�Hd�9o�>-d�^3��O�������ڎ+���H��

\3=�+_gU2�
l;!�?7� ^r��"s��
��Ȼ*���]
�:,�F
�$�=f0�ÉQ���>�M!��5H�9O��O�ؓ��t�A��d8��	�.�G����$W�ۢ�4��D���y
+F|:$K3��yU�
`��y�!��TN���wy��Oa|�g0���
t���5�qm�H��
�
�/=~9�� ��ܱ3��8v5��s\�1�
�ho��7��.�����Z{R�v
��rF�6��r�0�Ɇ��j�5hUF
L;c�3�P"b
?�\�H��a
E3��G;�l��Y�)�
�R�=�̨
)w�.^��ba
@���g֣W��G5ura�ن��^/����F%� �'Xg�º87�	�
+�z
+�ܬY4%&��*���Ӵoz�Qÿ�2�s�_{A^��?�!?���������c:*�~�<&�k�gc���J��6�.k��M%�F�a��/5��^:��Ț�&��ȿ
�I��T��ťZ�+�"X��jO
���
+a�G��bD��ݐ��:(�F&#%�y���	
+�z�� �`�����v���<jr
+�/��M����̾�#�߼K.�D"�/J#Vj�g�&���
�gj��#|��ڋ�ܓN>�p�����i��}����d����)�ؓ֐��Wz�a���~2s��g�Mǫ�-�a��!Wr�5�.������x�Ѡ�
U����������*\b�
++�Қ$0��l�V��xBqr>"�=���a��p����`
��}��G��tp$$	Ǻ|�=�c7���X{
��5���ʣ
+j���{��>櫷����{�:`y�i)ʐ��O�]T@�0� %�
�z�z�]J
c~��c��Qw�p��u���
��*/�T�(��=t���mh����Q�H�{�v2N`U�� S��[��hò7,����
�kr�U���B8Hy��M��P��jn�Z��A�
M�,��`!E��`�!!�`!E7b!�fV��ܞ��
����
�eQ�IhfO?�05�2���1=�Ē�c�Ȁ�tS�2�����0iѫe6��*��N�r^����'Y�+����<����β(����Y������� ����K��(7���܇��TF������U�^]-=�fl����~>u�I�6��
 \�A0�m0�8�5Tԫ/G�~^��p��-c?����
����;{�
��
"���
��~5x�_}qn#��$�!*��;�����Σ�cD2L� rE@�6�,&YX]�άp����� 
�r��;@n[�lpz\�	Y�]�l\���VtR̈́�p���,�rȘ� �b��
�6��D��h�tJG�_�<�_9b�i/i3��
s�8���x�Av� o=�	oݱ�w���M���hA� ],�^�ZJ�k��=�Aw� ِ̳{M
+6�Ԫ
똄L��NR҇�;�
2�
+�'�P����2[|v�\���
*+�-}���dL�p�@��=�ԓ�)�]
��/J=�R�W�D�L��fj7+��ˑ]S�� "���vɹzt���#�J
�x!�����^#��}$q�~�B�9W7�%�{�[��+�Lo���t�G�^Cv
I
+U�q
����
��V
+����{�MC7�)�R���qR ��r�I
fAU��K��P�
9#�k'f@�!H��>Wa����JM�=�>d!��Qu�=�K�H'/iE���8�K���Jb1P��l���#���/϶
���V�*��5����R
��]5P$;��X�
+
<T	����7/
��X���\q/ ��R-E,��F?E���r6��gQ׹�Ԍ��#&���!�]Q�����
n\5z�u����W�i���j��f>q
cy�^J
�y���yy�
���5��9�*7Oݻʋ����A��ѩv��&��r�
�������`�U�$��t8��ˆ2eE�����acƂTVS�D��
!���+�}�p�� �B�P�Φ�L��ʚ�EF( ��
�{�/y�S:�z��B໌yV(�sB�CDԎ�

+�k�n��@w�
;z]��BG������(�D�����*�]x<���!�
�\���{�Yq��$��K�G���i�N��9�7=�P��̨�^��^
+��[kc�2j�*�~��� �o���Р����^S'����_�c���J��GU�a���'���<�3�;Y~�v+CVŜ�lV�B��Z)�x#���Q#Z�k���BΗ
��Җ6S��!�~
����/r�
*"��/l�
�]�v�����E�@�� ��� ��"���f/LRD�� �{���)Q�R��ZЫ��#J#� x�2��Q3�z+5�,YZ��Gf�����(�lOG	�Sv��S�d\�1_o=��$����6B6#Q�5����͆��(Xj��㢉�����
+��h��f��x�t�
�<�T���#a(n�=��EB8z�{�c�<�����$)N�t�q��qU����|��M�?���1>���BO��O<�'A�
���L�����p[h~�w�g>W���L�
媯_eO
K�~H/
�:�`(�?�E��MC�����]<���K��(ν�P���S�%LT)����I���!�5)M{8] 	[��e^�[��v�"H�
+9�z}
*o#9�uw����������Y^Z�NC�Œ�P�{��&���)��>V� uIw3��"�+�+C;��P�j�ʶ�C��!I5������b�Cի@�x��LB%s�
�:�j2��v�zf0�Bu�Ƃ��^}K�� �l��x
}H����{-r7��=��W⥎�ӳ\dp�����;gF6�>ۖ5ġ1ɤ\�S�y
��4 ,�v
\�o��
$�񙜪g
�
��QB'���	��c��R��1O-����Q����<
+y�~cW�ND��<��^dEU	�2�mc�o5�C���B`�Ih���s؄�����Q����r(���
+�xz�?H�.T��-���&�Wa�0�y}j!�3I>z�j%bC���*������-�`
�=9;ӻ�>$&�3�g�>�r1q��G2{�� Z�W�gj̙u>�F�2�S~��G�7���q=��$yn�v�$[��9�N���D��Gg1���<��% (6���欯g9��+C�}jOJ��]��$��/����M�|�:u��B����S
���{��%q|��ۥCr���W���A�� l��r��Pi�.�9q��W?)��c�k�^A�B@��YW�t���[C�̯A���yG�uZl���ESR�{x�_'�҈�x"/���U��
q�:�EI6�즟��ѶW������_���"e�5�� `	����ꆔ؁���#��+�i�� ��)Ƚ}�V���a�>?�=8j�X��]]p�.BB�� #&�$+�"���,�1$ڋ���%n�"���KZU|ɗ��vj�B��fĈ����P���3����-r
%t�;S��~Ŷ�}�4�:!�fW���
�t9�"��6����	@G�]��*�.y�O����y̒�)4��*� [...]
��.�p��Ο��3���*�Ctx r�ޓ�1|P�~�}W�>�_F�:E�r��SC���rM�i4��
+��~�{�Cb�h;x4�& O�~q��T�5�\�
m��e(
=�
�[�L%�
+FS������)q�r2�,��$b�=v�d*�r���{�̠�
��B9����[y�t1�F	�#�	ȑ��,�Q�x�%},�
�]c�	�N��@�C�gcI�E����y�hE���ja�.2����
�(Ԉ5�O�D��'���
G<S��Eq��o����wm��28�׆v�Hq���5��Ѯ x"�;=��v��!����n����"�A�<�P+j����O���-9����F�b�c����N�% �DR_��'�
ÄQ��7t�
��7�6���Jѽ7��t�.�W(��
(ݯ8b��geA���
���+��k��{�[�PO�^[�+����s�R�H���F�q�n��t�?�
+���B
���x�C�I�|u�ր��u��ژ�ڊ�����=�C�
2�S��}���
+e�0-��h��a	-mUHe{&��-
+��K)��q���C
fǔT����5�d�T

+e���z������[
+x72��)W�ư[�r��̍pi���W�Hj��
4�1;z����^�V���:C0�ʏ�4�=���Ԕ�˓�V9-����]�U<r Ӫ
��rc�.� J��A�v��C�
�
\��V�z��r�o#��
+�=��Q&
���b;����e�Ŕq�b�
+[
+�3d~a��������e��U8��ɞII�ޒ~��: ڮ������`Ʉ�I(�w
,����
+��n���������o�}������>��?����o���������_�����o�������8����������������?��?��?����?�����=�+�3�����A����[��A�i>�L+����,�I4
+
+�3�DA�6�`"�
�0��>6�a�!�%���-� R�J�
+!0%v
$v��b�p���}h;{�� 
+B�p�N��mx|�HX�N���tT
r��>|أ=�ءs���
l�#�/�c����h�$.�s��_�[�5��C$�G��%`|�c�K�$!=&v���#z��1Ї����
++�4
��&P� �X�d
X�?���E���U�N�R�[!�fq�5��
�H8�|>(��|��Q	ګ�IC�u�]����}A��o�X� 
��A%w
sG9�{V�@H<MG��KZ���9���.}��O�:ϱY�p
�>@��L��$
+�P����	cB:�C�.Q�P��c��;��Nm]]��{d���
�*�
+Q}
_�Q�s
 �
��1���jݙ����;��Q F9�;`��њV�ES��:��6�B<���r����U�O���9G����%EU��w��U袀�-��mT������p#�ÿu�Ǣ
b�ރ�d��T�8	X+�C}v�e��6x�
��}�����ѳh��;�����'��ĺeq�Q���Sk�e
�ْ
��z�V�;�B,2�`�^A
����#�:���4�{���b>�=���� ��=
+!=*F:9b!ϣ 9=:d��nH�F�2�ԅ�H���iɽc:}�UE݇�o@�
 Z-����r��%iv��p�A)
y0漧
DiVQ\k��W>t	�J<
R#⿿��L�ke�f����(�
� 	s4�Z������k���['Y�z���
���U�
:��"�ؑ\ʃ�St� ��[Rͪ�����f���mW��l�����]8 �򘝢Q�R>/Z0�QoU�w�:|@z%��ʃF��D\6��GP�8�w���{
K�+�r{kaFMP	�q�s��0
���D)g�+��l����K���$��dQ�ܒ�F��z��*i����)x�Z�{��
6p�����qJ
�ĠD罏�$XI�`�����,NU"�>�Klzi�WeL�
����
u�sZo�z���<'t�9�f�K"��l`��$Ǧ(�x.��
�6���G��B;���Ը��=�Qp����)��y��s����@�<�#�>u
�x�jH���յ����pM���;Xc�+ˌ��*z�2A�NB�
w��
��Pg�����
+�z
�9���
Iw��H������J���H�=����{
I���A����Ol�xp����dRC�x�٣�IS�
�&Z�
ȁ�^�ԣ'�g��Z��>�S�TFA5
����K��
r'�Ed��6�:
���j�G�/$��yl��e�\8��*z�f�G����#c��rP��Wr��9��Hfp2�9B��oB�`���!�- g^�0k����/��祪���œ�Z
J��Q��
��j�*�P��K
��%|�iP1��h�g9�3���ܸ)����Ӏ
�L�^tw\Ff��\T���ĂﹻY!f�.�H��Ňx��c� �t��nClr�k*��T>�Ŝ��>�Q�%���
?�%�m\ϐ�
�g��
��=��h/&�Z�l`���
��r�X��qQBv�@V�L9�2v��a��sl��G�^-�����3���S���� ͐$��ӎ�M���q�!H`g:�fp�t��p���Ă�;:�LC
���=��*���5
�v��ʩ��7����`�*#彷�M� �u�&��F�!�.
�X�
+�دo��Oc�ZWԮ�>O�l�X�nj����`h�
+/ ��'d<;�w�_K^
qY5�ɧCL�!�
_���C6�c񣑁0��I�M/��O���
+
 �D��Ӏ�

U���eQ���z�����w�@Ř�����5�2�(н7��A�Q��q0��Mh>p��XQS`㭟̞62�`�!^����ܟ�o�0���	N>9�Q�T�8T��FɅ}NS���
z�x){=�A�;�5���|"��H@�
�@5���3��ד!E���� h��
�h�d�T	�>��
�=�B��ٛo��j(�(Ox�����tO��it�Z͑�g�.�L$�I��b���R�)��n���U�
���F��1w�c$��X�x]i��
��[#	JX˼���~�+�"�B�ˈ��6d�I����TL� yS0�L:d�XC,A$�핧�b��:v�G�X`�`k��*��c����Jf��(�)
+=u
+��
*�H3���'��O�d�Jh��):+S:^�x� ���a�qSSuL�		�����A@��A�+�[
+!
T���/J�4 KtA��Vr�8=!���Zq7�]��*���3FL�����ss?8L����z�9JQ�����]Lek�����`��M���	���f4Z���yj��u�
��f{���R���„�2��>�b����<�Q%���
���Ћ�f
-'TA�g�i�5 �z�����9I
`�FӰ�R�k�y�P9ˆ���|��	��(�j�\�9:��Jf�x����1/[�ZH�@!ħ�"B
۩a�H�VLax.q��f�[P?��P\�'�_��61k�����:
�<�J��oǁ��s��P*����[Å����F�0�BKE
��r��]�	�۱���4�m����f�!Y�o��ʁд�+9`�o
=�^
�k�
+�K%���a�$��M��W�}���[��?��Cz#'���:,��
�\�t
��b��
�F^U��8!�g�|m�
��~
nm�����"��0 /mV-�o��_�~�x���OAYUmŽY��sM��I ,��(jNtK�/Xm�Xe�ɦ:
�j�x5�߆�u�1���n�2�8����0ͻ��ƃ��J�rn�������R�^�)�����+ �$�÷�HT&��!�[��!�u˾4��T�*_�~7���ݒ�1����-��;dc�N��_���̢���^A�?%�,�_�k�*�
) �>�.���2���ʣp��q◮��&6>��η��~��7����G�ύcfw�Q�JE\��u
���Ҡ�
+.�.wn�����{Lq~
��۔z2̍ݸ�?f�3ae�p��M_h���� V��@ܡ~��R�n�F���S>wN�a�
���#p�Dϐ=b�Bv�6���(�ܡ4��-�"^�\&�ύzk 7��0}m�h
El"I�Ɛ����p�`SUm��d�8�gJ�����
.{H
)�6e=�wS��B�y����7����z
��88�y��f�Dr��'DSl�⇵�T�
���O����>`dc���ސÕ�p���i��^i
�]>q'�[���Q��-�a1:��(���=�l�"�i~�{W
�^�`��)�B�}A�\����a1I#�”�+��N��R��
+��h���0EQ�|a��K�1E��̾��[ï�ݯ�ȱ��
%���^"�?"��P��4��
L�4��N�4o�
+�Y�F��hI�
�V��2Vb��}�m����lH�b�`%��ؖ�Ul4TQ��u�Xc�������
��2-��"|d*�Ww!�M��غ��Bm{N�w,�O����nC;
O�|>��*5D��m�����근ٻ���T�
a$�J��m�L�q���0����X�Fy4
SP����6��+�@뒥�:tx�E���sʎ0
S��ql=�Tώ�8(�$F�r/�Ə	% �|f��
���b�KT�.��o�TH
�q_�����S�k��3��C>ݻA��G�"B

�v<�2pӆ&IP 0eYzz�V�i�,�[K�^V)��$y�)��jQ�d��y����	td� ^j�������NF��K#xt�k
�����B��5�����ۧ�Y��!��xP0�#��Iw/@X'�2fdh����Y�8�p�ב�Aj���2#�,�G�kpz�w��Z3���A�-P�N���H�,�
A�
���ӃH�Y���!0�)�l=�!@]D�)£
����^���d�>�v�I�aB�㸎���Z��5
��}i���=���
j��@�.���ź!yv5�f�*� ������i`#���8'b��q�߮"�v��
x���@�F� �fY5ʆ�q�p�ё������TI��	]�8.G�3��L��\K���hP�g
�bN�[
�O�d�O�vJ�&A�� pR��U?���m�(WX�6��/w1���2ھ8$��K������Hw�P����O�����Q��j���Y
+�
>4���E^~�A]�X�A���$wY�
+�H	R����#
�P����J�7�YG���Y����n�2��o=$d�c5wTb���\Jز>tB�D��fR�F����T��(�N��^��
%��PByLB
zX0E~K�	=�  �� 1=��*I�!�ì޿N�Z^�ٙq9��ɰ��c��^�\聻

&���@�����R�%@�}s�A*��
7J�"}B2j�w��N�v�i�j��%>y}�Փ*z�+�$���y<�v
��5��)�`
��ꎌk��PO(3T����'�=�]T���~���)���T���N��$dM¤K�6��eUs����2[�(K��9^*��b6��Y���B��
�%|�EE�05G��`t�P_
I���4�����"��ӫ��~��w�_Jj�K�LY=�� ψ�L��ؚ(�Xe�=&=$��#T���K�gr��]J
�
+�T�
Eo<�/z` �'�y��G�p�f�
+��*�\��(�
�=�!��
+�3BF��*�i�
%����T�,��oz�
Z{z���o��
+PN��}ㄩ��
+upX̶�=m�Q^ů=~9���H�|s�a����P~Q�؃B�{�tQ��m�ה#^C*E�Et
ֶTm�o at F!
Sp� ����xM�l!�T՚�
�+�����C�0᷎� ��b�H1������Z�ѫ��`�d%�ڱ��Տ*9=He9�D䰕��(�y�d�!
+r��P��`�O�^θ7�>{w�q>�b����F�EڑB���� ��X�F�c\�s�M�iA|�85L�T��Y wt�-u���;V��X_;�sW�����z��Vo�n����	��ch�>5pӊ�%�
9�V�[��
u�����
_�҃����!NpP��������N^��%p��Yr�� X�p�t+rT/�^6{����Ϛ
�
�ow�UD�q��'M_��W��m(�y'�Rq~9�t���r@
B;���<�=�X>f��޹��q� �GΘ�>�SP��M����v(��-���WM��2�t��
�bB@�U�!���o��.���
����r	���m
�xs�~}��W�7mBQ�ro�M5Ȕ ?�Hd���D��*
+�u΃�'�>ʥ��Wm����J<
�d<���1T<c�K��bx�i�����HԒk��K+#Ԇ��S���� �V_؞/�I�p��L��p������ɫo��>����=�3���P���8�bu���CN
gx4�jd9��̈����Cu�r�*`����_��q�Ԓ.��
��
�l���?	��9[�a��̢�=��0ϒt|.��k/Ha�)��y��>�N�h֭w�*�m ���o���a�'�7��)a�Cz)�f�4�$���0�b~��um�,��^8�)~�Tuć�00�X�4=b�(��O"B`��aOA숒2yI��J�W�"ʇ��yO�h Ё���Nr�[�R�w�	�P�62
]k_5c�H̺��<I�"�$z��pw���1�w�)I���S�S���PMlj�� �[���פb,���ɞm�<E`�� x��Ǒҟ�aH���ƀ �V���P[���n|�����A��8C{C�?=\X�%^Zd]3X{1-���QV���Wdߠ5�{ ԰�A×��� [...]
+F�I�rU��hh�%��o(���M� N�����!Ǒ�[���BD��R�%�M���
��޺�ƣ�҇����Y"NGj�j8��h���@/�ʚ��wu���d CJrj�3��-la�J����D�mq��������55��A�"��o��`� �ySY�ySљ���(����bU��jo��*��j��Lw�32^��չ
�D
I���>����MK�P@��~�����M푉s��uHKE����$��H]bA���K�'�đ�>ᙓC8����YT�#�sh��!0
��W�͔��I.u)�W�,51˸AX������Ei(�� �"�P��]�q�
��NcV���u�?	�]�;���E2A�xP��ZO;:^
��A�@#���A-��E�>
uf���:6~I�d�Ń@>	��� ��/\8�
�VR������1����f�EbK�Q�ag
8��;��`0���`tKʺ�/x�	�HNS�h�O��q���,+<��|�
N9ci=ԭ������m@�^
x"Oʼ�2>��~��\��E�+B�tZ�wV�:
\�`��K ���6�S.=Ǻ	5��5I�c�n��]0EH`T�i9T ���QA�S��J*�ƙ����?Cק��_=��4�5�n?Ǚ��ңI����5O��
�QKB0%���Zs���V%�ܚ��wL�BV��=~�1��Ex��kX#��r��2=��BU�U ��4I����w�+�/B�(�=z�s̯���L6@�X
�w���~����<S=��koNI��7L��x�����ƙ�j}��U�60�ݑ7@�!����L�nL��0�H���B�[�;�2XJ],g�z͓�	`F�Q��\�Pl�5)�V���� �H邔3;S��,��Oe�mpj�r2|I$ ��֚�$5+�!��2��
QD#�@Q3
��8�^9�A���¢6�4��=��EX
+7 �Sh�S�b
�bF
&�KcF;�M���M�[��p��x"�7B�4���8�n�xo�5u�����IΆ
��8�{��O�C���
9��(t����SM�rV
;�`�5Xɪ�@���)'Kc̭�i�t����*n�^��X��G�ܑOj��̉�\K��)8��N�����
�n��{�F*�:���A�bְZ��
`���d�P?��D�
�#{~�
��
+r�P� ���'�I�\��˛��c��&R�T��~b2J��|A�i\񭉟�8�:
V��I'��<�c�7�
�
+�9��%�2`�b6V$)�$�A!�@
`X�6B�L�vl�jT������� V�XE�h�m��,x�{yڣ�׏�x
�`�M�6���J�������F�Y�n���f�==Ew����x��0�D
�T6�'ty�Z�ْ(t/T!D���{�\#�۳���o
���1L\��k���g���T�#w��dj��i���\�6�~6&��Υy${D���a���Z=
���F�Y��˨��0�Wf�ۃ ��c-L����B�K�����U칇�

��4zh�����
eV6
��Q��k:�
]ԧ00�ܕ�=z���e����4�͇
�(��b[��9��� Xu9
q���V��a�Dx��+Y^��5�
+z��3
+W
�݃�#
$�
+M�p���\�ř~pѯ�á�nzU��8UԸ�t��s��c�GC��8J�
��H`�8^Ё`�e���
ϡ'4���[��[��(ߡ��	 �q"�2�c��4��&�Zߘ/�w�z at dfY��a@���e�� Q�2QQ 
 	����K���Q`B�<�1��a�!�l��H�gA<�PbM
��&�"Cz��^
TH�"upv
5���6/Tp�$�̆�׉�Z�G4
�
��[��ں�Yd���e� �;ys� ��0V.J��J��iE
�[c6�jpwz��
����5KUԋl���<jO�8F����B�ׯ
S�afjg/�-#��,A{	STb
�<���V�
;G�I����k$��էvNʓ���*��W�|YY(Ih:�������!1,���b�aU�Vո
�j���ʁO�S�+�j2,G*��/�J�$*
��D~� ��HIdE�l�9���C
+'���qe��
�
�CT9O�1B�t��L0��i�#+�$��O-�{g +�agM��)�

R`iz�.$�V��
6r͕��Ոa��Qٜ�쌒�Ӽ�N���ѯ9��!9r�j+�!�D]<�Q�CY��8��L�U��:�\����@� ���m�j[�Z��]s���
u�Ɍ�2k��	#n.%"���za7�t�+�W�g��>H�q�\;�0� t�D�~��
Q�r�ըܿZ���?��_�<8N��"�!��(o��ʊ<NȨ� S�ʝ�Zȫ���z�
�"�
+;�Oq
�
�*!��}�C-5қ�%������/�1�.����D�"�%��F�ioėN�y������`
l ��6���6lڿl�l<�;$Be*��j{�g�߅	ɽ'
��D��~
+bۈe
�4��Bx��GQ�'݂�G� +�J�"��Sb�F��il�жϋ0���
k@����(M�@������G���$&Ww�T�+�ʡ�	Đ]!d׆���~����F�|^�P�5D��
�p�Ph��.	K��r��
����-�ߑ��H�,?�Z����lSl�b�4ZNn �G4�¢A�E�!H��ކ70%b�
Q�y,Ep�٠!�Y!@u�dwKQF*�pc��$�/��%[.���DvQ�AB�Dx�U�#b
��F��}rj K��HnB6@���{.*��ʯZC�Yf��j��I��i(�"�!��� �Y��-@���m�q%*H�v1\H�yS��^F0�R�'o�ܛ@\A�H�v�D$9��	�W�q�=��k7����'[I� �[x�;��`��!������.�O+�R��D��ce�9�Y;
+�h��L�
5�=X{L�������R�$^���^�p�}N����V�5G�P
� cߏc� ��L�.��z�)"
5�z5�
C�9�J�
%
w����o*�B����9ϣ������<C����"
\I�E��q�����P��EC|�ʀ.����$����W� |*7�	*���IN�Pf�d.�,7�3���"\�
�ʴ����?g�2
+�,��g��l�9�F�����W�<ڑJ'!�a����
<��q �(*��
�W>��0AX�N�s.A_X6��2U]>i����H�^��4�}d��,3|9(.�v�ڰ����+��gB���,g�w̑>}���~�l��l�0�
�{�fd[s�$���O]�W]��F�)Q��(�s�I���ی&�����Y��͢�0�$¢�
������pi�}��
�1�>B76��a�(d���"�A&{�
t�y4�0A��x�ji�>q��*EF?�[P�o S_I��3�@^��fɩ�
+a���<P�P"���S�S���_�k�N�X'�Dz��2�:R˨.�-����
���#��@���9l�� p���L���
�o�a��ʇ�>
�7X(�+]�rx�Ѣ�nD��F2�4�η'8��G5
X��R�{����x��dp��KT	���̓Ԣ9��R]�wD�*�>W�r
�Aź���v`+n��Ue�Jn�h��PHc�@߯|�zr#��@JT��Hh*Q�
IZ�
�E��H���>� %>R��H���(p���C�O�����#�}���_|ӯE�?�d5�

Y��P
aW��ߓ��Yy]���ꠥ����U7&����L ������l]
+����Qa_ø 1Cq�jqj�2 �:23WAL��u%���lF��,�ܬGCܢ�67/�DV��@��"1��?�]b0RYww�B*go���cQ�qR	ˑ	z#�lR�d*��$6�#H���ԧgv U���Y��96� >�xn�7V��yN�ȇG�T` w �6�W�m/mU�U�a��0o/~b�
��I0�Ӄ}��D��D,μ�،�kiW��:e

�E�КU��`��h��!=F\+��NDa��g�&����
R�~�)��f���P��]�z�t�
:�Ҁ�lrg0�P^�Ii��j4
T`�u�!����}|�����F�ꍰ�T
:\�$ ���2�%m�<��(����qj�\r���Y$����&X&
���=�a�nL�
+f��@W��6��	�,j����n�:al
\�!%�{|Ӎ�~Mh�����ܔz�;�@�T�V��
d�
T�fe��A1NH�
[�	��>8���J�8,���B���������&��-�h"�v�B�:<�W��qQB�P�J����
�8�½$�
+���ػ�3��[��9��*��;�D��jA�b�Z�D���c�u�!��L�w�PJ(K� P7M��gI�DZٌix���=E伎�:��[��U�q8��4���[�G�J��K?�Dt�qg|<ty���K�&�=�1��=
+g����)��%8�|�WS�
+~=�/r��)+�������6 ������D�+ �
'4q�d���`Yj��,㩇4#)��Or?�x�k�
�^��FK
���$�������j�^8~�U��͍�{E�����&ţ��]
+MVd��8t�W+S�V���';�����p�6Ÿ3� �ܠ�W��P8Bi/�cR�!	GQ�q�?iC1K��
GWr�H��˨Z���89כ=@g
+�U�D>h���M��V7�	�!j�#A��A	�S5:���xE*	��3jH��#$ە|�7P-C� �դ��R� �y&���E܏l�p�@?�DuҲx����x
/gd<a)^��s��M5^:�8)�S��i�*l�Dox��)��b�� �&e�.
4�Tݾ�JZ>ɽ��!V�t+����t�L'����.l!u�^'��M����'s�X�	O�
�l�]K5
�������Sx*�Ǔq(�� �
�[�R+��h��8�
�&ՈKH\
+V'3�����/8�tD�J=�zm�x
�>�;�BN1��:/x��Cj��8�0g��rS�u��T�<G u2:�D�%[	RPK� Q���GM�!N�(�G&���0�O="C���]٭8Y�0ه�'$4�pׂ�~�j�P`�>
�I���ۗ�j� �r�q#�#��L�1O�6S���{�SX�y�ѪAJ�-K������ꊈ�qw3N���}$e�ӽ��
~!ؐ�H9�WOCQ��@�vCE�f���5����\u��NջSq#)����

�>�F�G�sAX��;���m�

���$M��0�]D�B�
2���~a���}��47w�C
+C����T2���R�W����L��
C�� u�t2�����!b�R7��%�YJ
�T�d��$ƒ�b	Dz�]	t
+����b��LG^���Qb"�8�U��L�,G
��
�5%�1�"Vco�����A$����\*�p$�{�a��AG���3Q�>?d45q�
�z�@0𺊔)��
-���,Wa����f�`��עCE��:w��*��
+X�
(O�5��Y� +4��
mE/
���	2V�
V��s@���)2��d���j(-�
�t!�+*�{"�T�
�K@��FҞ�0�~z$4a�
+��L�
�U Жr�6��c��]�`\G���������4�~�m�vˬ_
o^g���l�p�F1
���j�
3��l��
+b��88s�-�ah7��?����
m�Z&	R^`�˂h���礴7{X��=�2����JQi@�O��XiH;�_��U���@6��[)L��q���(^�� w�%J����L��
^��ZS������Gꊙ��o!��M�z+����B��PD-`�%��
�q$B���ҏ�p���o
�Uc��{�pS	�� �Հ�S��ux��J�
��0"��LH��؟�A����yd?�z�t�@M��!
i��$�����^z
]Ov����q�5���,J⣞#,*�D�zX|t�K�H�!�D ��j{e�ͦgH⋷q�#�g�ɍ����l//̳8����IS��������~�}��w9�&ḉ��&~,�ֳl�ChN�Г��ӕ���<i.�*�)��Ij/$s;|����B���"H
�(���U��9���
��2RG��e���
d��v��Q
ޟu]a@仏&P�
��
��K{>:��?
o)��G�W&x|�_�O
+=SF:�*䏦X�R%����}"��Չ�I-���T�E���U/@VZ���,�Tltv�ٿR ����SY��	�Qq��k�dF���(!s���
�2
P0�G�
+&'V�{a�;�Sa���D䄰�M�58������R�u�R*8�75�3#-���쀞���+��D��)`z
ҏ@�

�x�>����p��L54?�ԯj�O�
R��n���Ί)_�M��h2���n���>�K��@�7����

A�4��4���o�P~O���Mo�����`��ɠ���(�
�[�^�="��{���^�iկ�$n8�-ȎvX3�
.�|�ܐ�ޓl���S���
��
~b���Z����T�ؾQ�'D�Ԡ�7*��p�h`�
�l!��Љ��<�H~�U��\$��e:!�j�
�)��H�D�<����L�lxn�
��
 ]�i\Қ�M�I�W&n���
+3�����
OlV��=ˌ�,�j��)�\�{�-2b��<F9�í�Y)���' �XT14�OR����<��*��?N���>&Lm�K�
cx��jQ?���~
wʗ����4�BXX�h@��t�Ҿj�s�����T�������ijj�O�W��F�{�l�k[N�lf����#�#a�c����)�U�O|���{(䣼�֖c�hy�qA\��,�_�Q�hк,��y\WҊ�j�	��
�J�T�M�f�\,M�?�`��\لb%/Ȝ \��ـ1�F�Mei�4�Ӱ�^h3I�@�FWL�%\ﱩ���w�D~gzo�UB5q��G�*x��Xb'�'�c�]�FK��aF��
~������������5d��{ZsR���	?�\tAYcE��k�^5l����c�
����yk�ը����0p1�i���R�3D�a1}^
+[	�)���J6,��ň©�Q�`��T6���N���KUZ�
+�D�l����U,�
��I0@�Ptz�k+��
�%�i�x
+�f�I�I
+ P
+�
��S�;&���Б�H�
d��%i}
+r���

+x
b4x��������
�ݿO������K""���y
֭tU��e�fQ��^�tӋ�DZԸ{Ef�*>��?� ���ƿ�B9�uZM�5��Y�_+��ޞJь%H�"~��äS�
5�Zd���l�
+gTIp�ɕ��
$����P��E�����YY�
c6?!�|WCfp��H�>�
+"�9G�$<���&�bq���e��R�F*�ge��O�!}-���|z�:�<�d,h�� (/+
�{;
+N�Mr�<���̡r8���*�{O5����ٽ�Sw��Ar��eJ��oq�,�`8���СV!(�.�r��3�"�K�幐�%3�?O%���z`ؚ��K�^;�u͞

��	�I���0e3WK4�o
��DZ-��
F�l�u��i�3��lD4!�i��	ʤ=Q:�s�-�S��ԃ!@�	<�j���Sh��"t�,�c�F/�΢
V`:�
�����M�ǎ⎕=��r����>�xUF�)�
&{y
6
)�O�
*.�_��DB)Y&V��FI.{?(���Glw�)o�$z��0`?�Ƣcԃ
�8v�y����_��ܧ�;&�O?�\����ɵ'��
�1+MW��]R�]1�pR�;�L�\�x�L��P���?`}����!����B�q�
�
j�l2����<v�e�c� 
LĘס��
I%
4
+�Ѧ� �H%u�C�����r�W����Y6^���
�9x��+���H,g<��dQ�V����M�5{�|�����]���pQ�E at BX�Z��/S���7�Kٹ����$_�z�
����q�jM��^�uA�'��\�$/o0�]
+�[/p�ZoRav	?�pn>EaI����&E��GEI����Θ�D3��`х�64YR9���B���{?F��B����
J�#)e5B�TE��!�"T����
1 ���zL��
���Ljq&�e7���!���	��T��8�ȓ"��
�#����I�;W�I�r���
5,f�c���_{�E��?0?����
n�?
���.1
nx&_?�q|�ְZ)��~��Gŧ*Ԁ�����k��FQa��/%��^����J
+��G��2�z� �|�����<�����[Xc(]�?viuU9g�kC���p�
b�"?�&���=C�y&\ݐ����/�A�հ΢����Hik��D�����
�5�!(��/
+#2�,Gg�梙�
�e��
'�4�Ӌ�ܳN>���Y"����5?�SmϬ>�� ':3p��}G�+z@����B��h�
5�8~V�t|V��3��2E����y�r��N~�a�6�A�����l�D=�=��R�)�
�v�L��n�7��!G�b;D.�9�|H�{n.����o�(��V��A@�=�m���l�]�+���&����g�v��V��(���
+�A�De�
��q�\�%�
3f{���K+D���Q���u�^Τ2s9����1?]K�q:g��>z�Al^w��EE����"�3	0�6�z�Fe^� �B��V&���E@@l��o�ڬ#s
+w\k������\8�1�F�&�i��E��e4���]����+��Tcm
4fV]���>
�K�2��h���  Z�73ǂ��rdn��`��(�)@1r`�^g��C�r��Y

J(���
==�Zc�"�d5��o�KC�
A��']�T�v��{A�n�����p/ΰ(�W9'	�o=ʍG&���Pf�&�±�����i��=&�>D3��a� �nG!�
=���
�H�WU��@
+�^�{�(��|9������Bb�#�T��`���*
V��ab�YqG{}�%~��y}��Hj7�YL�$~�J� n��1N��u\E����$
97D2b�| 
f��
�>ԙ~������]�Lpz\�,�����L{��'a�
��i!S�<0���C#�oHQ���{�tD�չ���#.]e�3)��3Thˆ�B�z����f**�o����9Q��Oߘ'�^��k�w2<�F3,�t����udX>�W���h
� Qi*L����a��l)TkV!�v�H�
�D%���;�ܕ
��}�=�<G�������;�>c��9l� 7!h�R

��Y�=l����	��"�Eu�vٶ�
�z�'�a�Q��Y�>��5��
+�H@�&K�'V�@l�w=�O�X�{��^�Dy��fN w�����4ޠ"3�$���~��b�W��
�	D;<10Tm|w
\�u."[p�8P����ꝶXĞ1�֋��!�&L��I�y��0���$m`��2�Q�a����}M������|s
�Hd�`O�c9P�pl��{�֍.��@��5�U�ъb1��P�Y�!b���?G-o:���,���
q�Z`
0W��|=Ε��VZ?�TKMeͣ��F���Ի�,�w��!���&U�!�M��� |�qV�
�]v������G;}
W���k�3Ӵ�d�>;Nz���=f;��
��NV���C�'
+������Y
RGDC�LT���E|\LǛ�����
�����bi譗t��OCyK�@��p�^�����I��`筓�P\��F �
L�'>��������k��(��'�\_r[=�u�CA#)�ү� ��n�� ��؃��
WVH::�~y��!�A�»:�C�mH��3Eh�y�3��E�	�}<�r��:=Qm�\�抍���P<�Ɯ�ɼ��#�'��>ꬦ������8ؤ=�T����~�K��
ah
kf�ơ��:=������^�cCȨ�N�c�4��X/��dV�U��FyF�!)�4�T��P��0�t֙N�xW��Y!�u������A����$	����ږ*�s���~�g]�
��
�T�GH�n���v�|�UƑ�F��<���ݽ'm) a��f�@9���������g
��.A�XLN|Y���B��`g.7	w
+
b�����	E�� �-�k�5��y|E�D�u#�����'���_O�ȩ���Z4a��;P [...]
B�k"�q���8��:j�_+�������rB�e�����J�1b�롸ǠJ��Z{�Q��ۗօ��|����J;|��
`�
 �$m��3�U��shm�����1��'1��
���5�W�)�
m�'\���*u���y`�M�b2'��^���ځ�cb9�9��Z%c��2��Iq�Ýz��`�
�Q��ԙ�h]1p��
+��W�v���sj�UfO�L\��
�\�r_
!�I#�p4�
�s>4��El�@B�m�����)�r9u"B����A�?�#c"���Wx3+��Ǥ���B3�4�g��z����w�Z��BX�
+{�ݨ� č
���KM2�p�,D�6X�����K��F64w���j����pl
e��%����C罟#x�@�}#xg5�g����{R�����
�A�}~<?H�}K�.0ұ��
�1P������;cCa�~?����$��!��~�
ƪ��Cb4��'@˯=x���_�	Lj+��
X9Kx��_�^�tx���v�IM�z��ܿ����iN��J�P��Abj\����3�Qd|�7�OBu:�[�w�
����?!8��l�C\
m��|D�ƿѶ�K
�
��
,4�!���ͽ������}��ru�Q�/i���N�ڭ
AFp_��|�$޾�Y���h18�Rd���Y�7�u�/��)y��: [N�T�l��q�����鈭@S`G��Q�
�
��r�=
�K�T9�O�D��*$�r�A������"��lf{t裾���gu*�7�կ=
�<?q>za�8U��z�h�uD>z���yF���NYHu
�X
�0�Mg�D_[�z��/��(Z�M��5]�����V�վ(��٠W
����Q@���
+F
�@/�5.�2�����\�*p�8i.0F�M�P�*_�@����a���b�Y����O�����䈤a���H{�3Bv�LY�?���ϟX�n��W�W����͒
l��
�f�������vv���Xz���w8�AY�R
څ1cl|b�Q�t�a�=Ռ��{�y�������(����RFDF(�����m���k
���6�o�Z!������H�,MM^o�
�
+��ϲ�ꑷ�)�e��),׸�Q-o//k��b�<�R�QY2��ɝP�p
4�R��$�ԃasF�s�r|� � �i�pTM
���>��[�P=��jj>*�`ľ;��}i�J���@#Y��x��������[v���C�9�T�+�ڽ
�H!�S��FDŐ�Zg�ߘ'i��_]��
�|bIZ
( ��5O�׏
4�?0���%
�p�	�$���&qܳa^
H?��z�ߚG�Of�:��O���=��}j�!(�,�t�g�s�`���udb ���p�U	j9 �4h
�جծ,@L����v
@���@㰳��g٠�?���W�i�����1a,�q�C�*�(_0�l��OWe��s
�^���V�֋'E���u{BDX�iX���m��w�xpJ��?�Uτ���~�>���g�k���
vtѸ�9-�I���9���c���q Xgp����/��n�>5f��"f�	����
Rd�6:k�Oܳ��^�b�����)/������,�2� �b��H�N��sckGV��a�Q�-��l�i� �E��p��g��UT�K!� z�����Ti��m�fD(1�yز
+D�@���_[�
�CCJԔT
j�\lݾ* ������	�K9����D��J�TpJl|r`���=� 
+���p�Q��du�ǷHP�_�$b����*>T��dʫSx����q����]s.f�
U��2���ad\��N��#���#v������~(j��eow0ߟ��RCLc��u��o���6�W���ʃ%l���@���?Ʒ���������'����������o��������/����o��O���������?���������?��O?������������������qq��
+~���_��
b�����Q_0
�2�DƓ�ןⳊ���
:/m
0�!�ݚ�8
7<Jy�*�?������9,?��И�љG7���eB0�zޏg�Ș�^8�#�$�%��=Ѡ|*U�[~��
d�
9���
+����H
��G������J
+�
ꌣ+�G�8��-�Tl )�b�b�l� 3}|��7Mw[�<N�y��V#+ܖ�ٝ;D�:/��xFK��H w�J\<^�|��d0*��uX
�/!��x�����H���d�H�k/�������c�^�<���{���
#O�o�����!u���a��т��>K+qeg���m� 7q��!�FܓGO^��+��ǧ1B�G��+���� �ֿoh!�:D�z���y��YJ4��A!
�#�X���4� 
��{C ~躕�}�����5~�z��� |4Y�������akU�&��
����Z�C�!^����̔��bag=���� H&���-�ΐ�
�Bh��.c����Fb���7�mRl�$�ל^@{eh&�>>_v��hwot�X�Qn��(=wنF:��=�I��d\n�
+��{c�ƜK�0}1(R`v���������[�
���P��/öΌ$��(G�'_V�z�҂����Cp}"1A=��j���s�Y'������@���.�4
+
B|^n�e�>d�O���@)g�	����B>̧̾�	�Yi(p�� X���3��]2Z��s�&֤|шYR��vۛ�Qz�?���g �Y�v8
Ff+�0��׹�-f�r�����Z1���phzֳ�
����Mtm��
�D]uP6K�h�"NLU��.jf���t���MN���+^T7G��opr4`
	��04�}B;��q6L .�"�|����mo�Y���
�= ���f�()::��D�һ(�rN����������(+�A�q '���=\�A�	��9P�a���
�i��)^D=�V��J��vI�BWu���p�f����3�|wh"��(��C��͊x>C���;H�I��J �n�}u|���
+��"Ѥ�콜�(44�<��@���Ep$2�<���=+.����F�P���#3ʩZ,���œi
j����t���%��2lX�>{�H�G�xK��M����T�7
~���p���z$4�`�᠄�0�Y�h$٪����ĺ�x

��D�
����
��x�u0Qe�l��ǫ ǚ���*�0D�(`�EiՉ��e����L�Xr�9(ݪP�%�
�
�ҧv8D*OOU$�T�3��(��x�A�%7�?s����_�>
+&D��g�)��C�Q����{��a|�ј_5̫a[ ēC'������o�����>Y���؝5I���tK�q���pc���m�K������^BT�~�&{�����D\SS�h*�߅`(���y���>*9�
�������~f6s �4��s��Ϫ�F�(��2��ʥ F��Om�%���=��~�|�ٮZ� 
��%���z�}��X����볇�B�9�����
��I��d$!�� �
+ �M���T�����[M�a��[@Q��uo�CFǃ�$w
'COD�T��f�-�D⩻L��r�Z�
�v�)X�=
���E,4�n�p�$�����A�f
�`(� =vT7������H(�=�Bʻ�4���ЋY/۠Wh�5"��aBa�z�wѩ|�)��*�ҤX�n@*��[6@�>�3q��M#�}s
�h1--8]8(��cjl1�}9���r�`zl�$,x�`����C�{d?�e���d�F�#�9�;�E&+׈�C�����`����f͋QQUW�
T��a�
���L�ϣ����yqV?�q"�9\��gɿX���4T2���_ at 7L\�t0���Q7Ӆ�W���0�
ep7�}���|��uB���8j"YnEV�ϴ��'w�4�%�k")ZI����M�!��ǔ�8iJ�k�	��?)a�]�7�}��}�m�N��V�����0IGj�����9-�����,�gDF�4#�Ř_��3C=&����� \�nm?�A�UE�pa�η��2 [...]
(
�f�H��� F��[�_	!�W��	��v���|4’#����
V�%��E��|��o�+����ށa���ñ�p��j���}��]E�m}|i)
��M�j�S�a��
N�ӭ&Z����xSiLL�#�[6�솽?7'�%k�ʮ����N�D5m{"��4j������p�,hX�a/�A��o�\��I
���*��Q��c��\�
�\5.�|5z�e�>�Ǫ[%8r�ȏFn7n���O�!���P�
9��x���K��K�Z��5��DH�y5�O$��qB�}�Ƿ
��&�,��: �5
���
�܈Z�무
�{>F��q�B�ܕ��>�#���՗�Ѵ��߂��?%�+��mjT
Wn�8�V���c"HH�h+5�WC�<
�iD8�\���~D�N

+6����ѻ*�q�?ĠT�w$T,�G�M�`;�c	
&�.\�Q7}�
+k�ս��Cq�\�:�^~���1
��hp��7ƴ���#d��
���%n
�P<�gk_~�V4��x����s��X�q?:�n0�!�2���dߋ��i�� @;8�H�UF�\�u�V�b/�"W�J��6��'`54t
f�8Æ)�aO���ph��4=�I���Fi8)�v

��ݐ��S�l�s��9`�I����ᐗ�Y���)�%�6�
p��~3�__5�p���	:���� "�m,ABC'�U���VJ�nX���5>F�1��W��siĀ��_�.a�X���%�Qmm�*�+���ob^F��y���Φ:S����fG���m�2�%@�q�׷p�%d�)���j�[�/��ύpՔ	e���r[�/�)C}y�4�
UЯw?E�$r'pn�?�b�Mk�4 1��e�4GCZ�D?u,\XG at kb{F*��h&UB�W�}2�V�%+���]�.�̃������S�ӽ����U�>��.�=��!�Ѝ�8�����)��\{mQ
=���.ܿg >�Z�(|
+���x��g��1�u3޵r�VR��6+�b���
���o@��
�ie��]dQ��3����j�Qbp o6A��4��1�

#
�����C���q�0�9k���磷��3
M5]����5��l���(
x�	C>����Ɂ:2;q>����I��iQ2V�Z�C� �E��a�0�;'� #2�*�İ0�<.�Iu���
��G	w�!(��Y`�5N3$%K
�)!�e�h��i�{l�Y9ӌ2��R��� ��	J�7�>aɸ{ q`���'z,뭑�^�4%�
]���
�y/�᜼�!
��@9� ���
���:�KnjU���q|-��T�f�G�D��kj���5�yb�����\�`��
F/ez���=@\	���N�:�Gb?���B�\
+

�
����^{*8ܜ2X�R6��|��k�6 z^$�K����H��)h=��a�4�+5v*��}�5����w�+�Q?����
�*��F
��c��$�D�|���ݤI�@䪯/�:ힲ�CT&�׷��w��˽�ҿ5��.Zƴ,�:V�Ͻ �Kk* ���NS���6�r� ^e��{*���=�q�$�:�3/����yu�wF.=����S�x�!��
[����E�
b������(9�$��Œ�Gd����@7&
��(v�[�*�%$}���{�Ԋ��ɒL�({�
+�c򲤊�L��F����,�8g*a�c��u&���K���狒}�h!t�D�J�ML��(c>f"l��04
�H���'|O��\
+?�nd
+9~�kn5����� 5�9�;ʫ!������-L�D�շ8��!�l;O��F~�E|
{krt
�f\�s�jj��8��^
wl����?%[3���8G�
��
+!�=E���@�R���P
d���*���A4���=rV�f�P�&
����>I�z$e��ʲ���J�T�S>Lj� t�>S�b���	�6֭�yGV���ar�W�,���ʰ?v��U�8�x+�1֚��M�Gn���q�X��W6 
+9��(w\
�Y�C@�T >@YG;!)�Mo�#�L��w�B�}��rn����t���1�F��9�h
+�V�
�
�8�����{�y��Y�*H����J�A� !$$+��������S0���{��s�9�"
D*{��ѐ.������(?,�w�T,��
������~>"B?�x�
�7ܶ��a��Ȼj
�1Jigd���:�����F<tj�۩��+�h�,�s�`���
�S�5�W��(ΑE��I�1J4�G��v�&�kc}���#w�s����̨��H
%B
����
W*���Y�sD�W
�'B���?k�A<�@�6�
5(��@'���'���
GjH7�|'�ϽT�!�(5�$��
L8^�%���$xf<s�}�B�"Ϸ6�
X��E�=G���;}as@)�fEd��8�0u`
�dU#��W4���c���3�
�#��G(c5���;������ȯ���_��"�5�#P���x�
�A � ������O5ƽ+Sy
���KrO��N'1�nI�
w
+����O
��D�PCu
7�����.��I
+W�
+Z�d�h�pś��[
�q�B�rO���%�׀����0߸`�' J����	�H��*����d��P�W?��Y��&4'd.Q+F�UW$M���].�U�����Ҟ
�`
�*��϶����*G������T{����i����}�e��";�v��p�bސ��_y W
����n�Glۛ�.�Hp��ͳ�W�R
h������v���ZK�8��#o ��a�2���y����^�r�+�"`i�%�H�hm�{���e�aidFC��h�
+����辮�r����2�¡
Uc�@y�����CV	M�
;-��G����ʰ� �@�@
+��E&j]�+��RX�Z�ړk��)��߂��3�JR�w�)��T����� ߸��
|2hlX� ���!�)��{���R?E�'�D2b0�
k��Q�z�A
��+t�q�Z�'B56�x����\A��d+š~��?
X<u'��c�Xcc������42ޢ�
+d�H9
�L�
��{>CUE�%1CWV�L��r�S�
�f��+9��J�"�ZE�#�PCL���Z��U"?��>=R��)����S�D�(����
BV�3�9�-�֭�`Wb�K�`5L'ˁMQ�)�W��l��UR<c>��B�~�JГat+D�\�Q�\��=��07K��h��q�����
��3��L)��	���b8g�7�j�炩�Cl�����-��0�Q<�s��
ކQ���Z;��*�
�|bN�
�V�k��T���FNj�5$������Z�(��ſ_T�����ص��Q�^�KBV�0^7&��.hm߂Diw/�ȺL��Y|�X`X�#dv���1����6j��xOܺ�#���ґ��(gt{���D-j�6�w�aZhD�D��آx
|��f�{#���!�M^{�qLW��3�=�2aLy����*a��ܵ�jࢍp�R��z��G���mZ�L�L�M�
��ocSV
I��3��[�KP ,5u���p���,.� K�
+���w�jz
+SV����W띊�)VvgGn�Ć�%�S�NZ�!.�rlo
+ﯢ�je��Vv)��

>ݫ�d9~^a*GOu�x �RM��C�mK=��L���
�yY��%�Fm�1���e
t�
+ݼ�� cC�^�=2ٙ&q�@�7��Z��<w���$ �CSb�
�G�N�O7*�}�-k�

��J\�6��ˌ�
f���0�V�;3�^�U�<"
�d�r���6�g�<dC T��ɯ��� ��z�-(
Z6
+(����Y����K���^a�bX�CЍ �
A�5�R�
�͗�T�tp��G
y�U}^��U5��ܣ�j
��@mZ�� ��K����]��eJ��
�Ԯ�
]�`)�v�8�TM���'�P���
��Z��	e:`d,�iX�kIֽg��� Rq��SWl|�FC=z��S��
�_���)��
-�s��zs
��i���w���s��8��clKF�M��%��*�@oq+?蝴�a�g�c�Ei�� ��A,e�������Z�d
'�H�?Ҿ)�������Eű�����!v
�\\�q�-Ҝ��^��;�3��
4�1���,�Oj��N��D��	}\ 
�J�#"�=
+��_��nX�[�}

+�h'��A;�'UC2�Og��
��� �s�;b^�L�D�
X5?������,�0sD��t&m��h���(b�_qK( f�
Q
D��O�
+򺪧v
"ȇ�E����c)������E��'�
�E)_�����Y����4��qJ�Y5�h³�����<��)�r��I
+��~��z�#�K�<�@��~�y���Q������PQ�/P���Y
��*@[w
I��>��8�*�R
w�e���'��
+�cN�F��b�64#��/؏��Xm���k>{K�\�?E㘦tX�q�����|
W�j3*MIjt�C��X���,��d<�V�oINF��%ub_օOt=��y��o.�
(@��>�m {1�
+2劅�G:��z#��9\,с)xZ����o�]��E
dj{5��ST5�e��Q���e�	��
���bZ��s��s-2p�K�ŨɈ�X����w�#8�Cp0����� =��8�8
+!6��]�(�@�!�I�
�	�3�Ē��]���kۺ����|�.�l������>ø� �J�n��+�|�
i�ވCeȥ�Ì�¾)�Ȯ����yR�� 3O�����5�f$�r�ȯD�s(k������j�w�)�τ��w�C��Gd�����)����c����~C�k��P
+~kb��2��)���Q~
I1sf��~z �q
�Wj��=}�구0��`=�-k"ȸ%��Sz��1��q,9O���ٱq���o�� 5�<��-9]��N�(�	iGN]>V�8�o�I?���/:�x�ǜ_Am~)�5e��Tp�l�QM`�畝��3�J�tΚ�˪��-�xa��^������
ϭ"�!H��ydDۉ���ܒ)�B^�S��BG��"����)R���J �,��%��ˉ��^&)��Eu��>�/Ax�U�񒍠B���4���
pJ��
*+ΨU@�e
"�q`ll��=�4��rD�!��z�5xR�S?㤈��[t
�^��������D���v��'�� ���=P t��u�l�~z{���,�(�'���g��W�H떈3\6�+F�wV����Hp�y��m�F���
$k˶,��@�C�'��}��Uǫ�\b�r$Gs��GF\��
/�Πo�q��S�tߗ��o�R��c_N��
^
���(_A��MoH�k�����䳖��6
�Q��L �ը/��!ń1�y [...]
��b59v�?��� "�f�~��D�%��c�C�7��w��f����,�L
�bԩ�y���
P{���̽4�r�4e�;.����
![q#]���8� �	��<O lEp�/<�l
}·-T^w��_��?��
�B|[
[k����
�(��"2I<,�42#jIG���4X�����T�Z��?�O�ŗ�7Lr��'Mx��c|���B�u��d����D
�'J��,ޣOq�$v��	Q!��C�i�vݏ�;X�=^�D��K�R��1��3`� ���@�ң%�u�$>��;�I+��F*f�sz�⼰�W����
�ޫr
�	�i3�Rf�a�4����(Kt����Lė��\-��5��3�7H�1mS�`EA�U��c1���/��oZ~�r�	8�)��b��/YoM��H�-�M�MY��]��[xu�Ÿ�	+��j�I�!Q��7Ӗ
�ȉ
+���.�����a��!iR�-Z�w-��Z�p��J�F�"�m� �|�/�`�v��u�5�*	כ�h�"�0�愇].�ap�@
���FS��%�:‰`#�B����l�w	F
����@��
3������<(}���{ua��DS�,&�]D�6���jY�oϷ����!��D���C>@Q�x���
�����G:	�63�)
�H7"-
�6��
Ǐ�))���W`Z=a������585� J�DR�$;���{��
%���=խß����U%�-������sa��Ѵ��Ա���H$���LؽƁG,M5���>����P�3z��C
|��
+�^�!����{�;`����X
�||��cP�C��bQ[�=H�����O�b$�a�j�{K;ΙX��)y��=��`��t�W��D:�@�^���%�E�!C�t
�o
��1�?�O{��k��
Lܐ��qj`��>��-6�aL����Q�
��r͇9+]�6�V���0
]�d�{��%��2�汰��v' BA�L
$���Td{�?���N�|Obf>��5�g�P)
+���i
��`��B��9�ݘ��=�)�x�_�����3_C�p��V�e���H$B�Ht�����P��х�LQ���R��9��e�
4:
I�oS��B���\�Wx�����)�`����ܰ6��ޣW�����I>bQ'F!��
�O$/S�:U:i��mk����!+f
�K��� G��\7�8���$@��F
+9h�}�=�X�x4ZG���"nz�hޤ;(
��g
	�$�t���B�'^� ��+��
�N
-��T?_�-tp$\R]��*%�rE�#{�P��
"���������
]y� P�����[]#9Q �
+���)$<:�<fh�8B�/�HF<���^��a����@�_V��xg"!
��^�Gp� h�[ԝ��E�w�EDb�T:�� oAD�N׼�D��’2@�c�2��%ʌ[�C)@x?R9��	�g��
�x�^#�1b�碉�a.%J��� ������ (D ��C.�(�T�@z��6�Q7i��[0���wEBӈ���K&#�M�twr��`���x-.Gp�LOO��g��]��0�����9�nP9L�K��VX
Q0SO�^\��\''��D��r
+�Մ��$(,��7!A_x62�F-G�_G�f�@�IAa���-J���:A�#{&fŗ?3&�����/�ð�k��v��=M�'�8�c�\J��lj��á^��y��$�����d3g��-֒�f����4���f�����3:�̓��o���� �Etbz�/˰Vy[�3f�)��p �{�>O $��`7G�X�.+
+�ԩGN:�t���
��D��U�}�9�g�W2Ȑ�q��G��:E��M�E���	�$�Vc��Wxԑ6����ܨ�^��=�G��p)������Y����5XLEއ�b8S뺔,�bO�0����^T���l�F<������L�π
���8��g{T6�=��Ӫ�=Q�u���a��T����ñT`�G��?�
^l_S���'*��L$��uUa�"
+}��j�P;
8��W���?�X=v
����0�Uq蜣��Yk��Ce�
����s�"����
W��={��g���SΌ` ���Q�j�H���9�X	�܏hc `X�\34�q9�L�H[���6Ż=�n(k�
�q'G�_A~�>�
+`�A
�
+Q���b,�g�'v��](�
�@D��ō�"3����i�Zb�G�Ow['� ��
n%����-�X['�q
(�~o�;���
+�
���
���k
+*�q�q�B��d���
+
+�J�����qzz�S��tH,2��+}ؕ
+;h�貺��C��� &���#��EW�%�*����,ȭcs�����
�[Ր5bI���Å�S̒͡��
��'
�י�KP��dXdj�r����a��d@Бʭ����?�B���6y`d� q=�w]�K��m�
K�
p���!K�4�&��=SDv$+-^m���V���7�F� v�)Խ�c���l��Y�_Џ-��#��חu9�h��0C&��mԁ��5��
gc:�!��09
�m��M�Y;�09 <�:��q^�����K�ZV�q��"�B�n��9l��gP�m81ڤ]t��I��
�t%�@��3gӯ�I#ŰZh�����9A�x����C���ߝ�z����Q4NG��z�|W�s
|�ݣ��&7.Q�����|̓�D	�À�Nk����
�
V�
�|
������RH1��w�`.�R�ëZW�^]��\���5�$L���$
+�`+�����kӷx���*�Sp��
�X��\>��,
+ʼn1L��k[
&���Ҷ�G='�!}~��zF}�Q@�m�"�ݿ	��rmx$���R!d�/�G;H��
ǁ�)��
�ŀZ��^'�~�^g��:@Y7�
Q�Qt��
@*��V# �P'`C�fʘa�l	�K��õmAͿ�Vƾ����/H"|�%��.�jgd@�N2����5�0kޯ�<�T�5�R6���T��>�}`�_��g�P
�E�����1���W���`� J�;�@�u^�*���Qu��b
+��4�Ļ
�8����l���	Y�����S��1��j��
,�
+�P^X�LDK��9Z3l�4��
�
h+�K�$�J6�A;�H,�\ַ|�5�F�-�(-��x,j(W�c೸�h�k�G��s������oY��w�t�_y�_qs��}��"��]��� ��"̠�	d5���̨~�%tZe�~w2�3pj�����ɸ]求�IJ�EO7j
E
“j����$�

��b������!-��b܄1j�kC�&.�f�-��Pa
P�:O���
�Q�
�
��M����8��Ԛ97b��.��?7�B@��B
}�ŖMcawAt;����_�hc�-�E�ɱg��Ik��{�@%��C��D��/���Áˣ�� �z�D�J4��E��fl�y"L�=fZ ��b��H

�yɢ���,�9%
��A�&�8�etEb�
@�s�G�k���GWHT����
�)����`�Mѧ�J�/;�B�B

+��b0���F��4xe�q�!(��L
��qC��2�5:yḵ
���WP�Iͧ����-���4��;L'���{���^�'	��I3�=,�BX
Pžz�����m�U��2fQ%
�vXP��}7�wNY���F(��)q*E�
+l]�8�ZS��KpӊI0�ru��n�#H������t���
+��>l;����-��2
Cز�hQ)�.`5� 3����Q#�Kh��!S�n�l�~��?7v1Ħ��)8�)�QT�*�)�^*���A�3�
��@�Y�S���x����T�:�����~ku
+* p��om�
"/9�!
���嫐�z�� T�6{0g-���\ž���*a�-�����
AT+�@����x0��Y�7�����w���O��_
�Y>L����w�J�lב��ʞOR�����"Y�S�^�
s�W�_��J��ڳN ���@
R]�+f��BN1\1��4��+�h�+M��%?'K�����XAA�ȓ��~ǖ
���hTośn�K�阘���������U�j
+�_��l���o5�ā�q8�� {$���=\��1T#;�Dn �gn�
+�_ at p@H�b�S�K
�-��ai����)�QQ�WiVQP�`����������y�u��zT�NG@�:d�c�-������U]�
t��xw3‘Tr��[\�n�)�w@����
+
+`EcjJYJ��J���k!V��
/љt�'"G
��+7C�M�ds��m�����o9�Bv�{�RC$H�
?����dEJ<�ukw���}�F�IQ`��
�� SG@���_
�� Pk.�x����Z!X4��5If��H,��D}��]`��
#)8��[l�Ah
}0����y��<���
'qL��p |G����s�O��d�w���Tg�hk	�U`��uC��P��P��9������-�^�35w�W	��
����AJ!ͽ{4���~��#��Ry��+I�O����(y��%�y�pa�^IT�8�@YL��G_�6S�\-w�|�ꯘ$�;M �(KT#ӛ}��p���E��
��
��7�O�Byp_W�c��b����
��MA �

���[��M�n���A����=�\5�Wc?��=��V%]xb�C�+��[)�����o���O=~��(+W��s/�)�d
z�;�B2sjw��~1����剓���X	
PDA�@D+ (����O��u�yd�{��{8f��X��T��\�hKՔ�д�<*
`�>�R>�Kq/
+x�4^'B��^Cd
I�
� [z
!�+K���8���B�Lg�'H/��v�݂��h�B
Us�s���~ D���\y�}��x��Q�博S�{��Ho�
ܧy�=�)�Y��F%tD%�R����lz��CLU�kmnJo���鶾��zk ��(�ӹRHo��'"9���6B�4�<��r����.�ՓC��W
+�ʫT�nE�Ӭ�3��}Q(��?[щ| $Oҡ$�]Ϟ{�?����
o�P�B��&ȅGd<�B�,��+˘����`��0�XWa"�1��"(L��S8
��Z�����A�µ
� �I�z�f�<G�Ѭ8$���Eϳ$��̓C#�q�Cpܰ��0�wK��}�x�y�!�7��f�DYm��Q�@� �����l(wqp
$E�G
VUd��졨��nG���E�GU�
	j]�vBF6����
+Kg�����*~T4�i�B|����V������-C�<�r;І^A�~-�S��&�8kUf:ά�fG�
����FV4QqO:#%�*�3�VZw��A�ő�е���a��(�(�)`�w]����?�
����W�Ѝp�� 
�̀28���/�v�z��gM�
4������J	��%<� z_Y�1��W� �
+_�(~���A��V��}P�yN�:&�5#=_A����LVy�V?�\�6Ve..�=�-�q=7�@,���P�� �2U0��
����r��	
0n�����͗
p�`�tL�YF�7I��u��E0���� ��`���s\���-G[w��ʿ�~��/�+ED�
r����%�(��Ks����3L
–�Q�5(d#Ƒ)?���.��f}I��kʚHs��k
�y�O�	���P/ƹ�ƞ�!d�Q��2�l��1��
�L�kg��%_tJG�W���O��9�3I�	��g�΃��̃�h\ʼFE���G?�ԕ��tY�<��k> :d�h����|V�Kb�8��?�i�kB�5�<��:�v
�I�j���i��
d��u�E�SLj�
�}�'�TQ��d�F0��l���!
+Bݕ.�E����AL����m�MsWr�KQh���5�������:��H�]�ܚI@ ݈� p
8�)=ɧ�#[��ŷp=��}�*H�B�/σ���B9j⶙�Wq�Uۉv��{��5iȡ��[�
��@>z�~�E
+I�
H�a� O
`c���Xق4�+����>-�Z���� I�
]��=�/��5�~n��~��&�Y4[�E3\d��KW���������A:(a�6��A1E��]�R(a��B D���:
+�r����S�ⷚ���|͒��‘�
��e	܃!
a-n��aE��kl6���P#�똳��������孱�#^


����'������b�Ws	6��l��]��oW�ۅ�$�K��]A��\�s��#eE^o+V=
���U.D�¦�����}�=\�-Oi}d
`���

Pt�q�� ¼a9���1�w;�U�#_�n���
+
�ͰTM�5�����~�
+%�Cp��J��DY�tb��Y��;1�_��
+�W
w
+�R�Lx�}�r�l�X���͓""U=c�6G�8|�|�&�P
+�I
+��ߏ����O
���x0��N4���
BA�}p�PD��L#�Q�NL�{|5m����	urO�E?�r�?w�
��
�,Fkj������=i�,P
�sx����c�*
9�n� B^O:���E��ů�#���P�{&���[�c �ь�P\��T/�+������7v�k������C5��bRO�!"K$��ƃ'Yh4
+y�R����|E�jX��)�Nl<�4�9�R��1��
+#�������=��LǶn�RSV�T�3Eyż��[�͎�v�~v|=:-
ew(D�y�� <�}%�ZH�l��Jy�h�TC�S�pRI��rT����|M���u�*=>pV#�w#�
��p&fs,��ُ)]��K����F(�T幐�8�5�;{
v�{��*x��Wf}�`��՞��f.�@������z��VZ�M;%Np�ya� j;o*
+�1M�SH��>���c��ʜR�&��d
��s����(a��u�Sn˪�E���T|{�Xd����"����o�G!�^إ�7
bA��:���2z�[�Y�����?9�`}����#B
�
�&�D?d���B ��G���F��D��}���h�mDu�!�
��$0�x]��L��vȎp�u2 �.|��Åz�d�q�O����`u��pA�Év��=q�S�b�"��>��I��+�8vc�����
�j2�v����'�w#��#�<�moc״tJ2�(�^�Qvt�����ఛm�toY���m
+�b󸇚�z�˘�fw��
�gdZ���/���oIN�-8q�eJ3�
�����F2ӝU{��pXUx�߁��•=�WҨt��c+��
�u�zs���x26.�� 0O9@�P�>
"��!E�.5��}z��F��V�!�@:��y�՟>�`���}�
Y���\�̴T��b�"�{���!�����p�R
��Ջ
]�+ˈZ��}��p�F|䲼{�m��@zDǿ�V9��pa�A�^�3䨈es�Ӭ��f��NQCG�o�}�
��H�f���{��m'�x�:¤��H�≪�A
��y������(>0�sY-.k�(�fM�>j讼��Z�ş�/�� 
�6	
H���Ǔ�0����~W��� DO����۪�R������f���{�q��/D!�әǕ�
�v�����F|7M�N����q�ao�:Z?N����܆� ��H�a/�*��uCA��s}Tj����臔3�r��^
+���Jʂ��8"k�dvC%lj�O��4�ύ�+�p�h��x�L�\�,��w����T�F��B?�r�!�����.R

+�2�!F�s�זw{�����44�՝z���u��~�xU��A%9>{��!Q��Q�
��9^���,=�����%�*
�{S��<*9\`�ED(7�J��;��L��F��{��”��������*d�u]
+id�
[;
@�5�&���
Q�p����P�'n�yʨ�p�
.�OW���]+����7�"��g��K+�
���rQ7W�N��E
�*�� v�
��y�PTD��
bgYX�ay�jH"T#�d�	n C%�5&jզ�d�~��ܥ��.��C���vsXUGے���0���lj�b0����אn��p
��y������h��!�#$�-�j���vh$��XC1K���
����"H�9\��_X��+L
�)�v�V�����0$Ԋ���0eqM�� �_pk��.<
�
H�穡�7�l��N��c0��S�����S�xf�oR>�9���^���?7���+��f
+:���`��?Z5��g��
�

���$��p��"�e
���DH����x�c��S�t��X���9�6:�8�RB�����7�	�o��u�<��4�w_>8R���I~���ʁ�Bk�jz���Г{;�x�v]?�
O4�C�Ӯ��ܸ߹�g��꒩6�h�|��&L���w$�ԋ�R�I�������G	 #;�'D��=�*�����Y��Pf�7D@ɗ�-p���v���
B�O��������6�,��y�����s���ܝW#�2���3�#�)�
=\:�/%�@�����f�
�	 �j��Q��#��XR�\�KF����߲/�����K�!��)B��Ȧ~�������~�����ǟ�����?����_����ǟ���������?��/��O�
q��������?�����?���~�O��������������W�N���������Q_���(�8"����W�
|��@2$�.�&�����=H�h�Hƪ���� �
]�_̅�[Q�B��N��{�A at Y��d�Vvn;����

+yG�
֬��z�C�&Mk�̅�Q,_{��!$��`ư47�IJB9�	��fL)�PF� � %�Q�sx���Q��]�d�,����8(=���
�5Mg�)f��+z�?��:�y+A��[����
'ۏ[`ֽ����
��F"�Z��Nu
������Z�T֩��7����
��u`>s-i+���
��u���<���;_y��"
�H*y�
�|X��Dց�W��8`�P��qR��f(t1�B�&y~[x��e�݁��$�k��G�:��'
�����Ћ�0z��î��Ӱ�c��E� ^7
 
�
�#���zO ��^���K�[Jv����0��� ����W me��9b���QΎ.�f�t�qtED�H�����  !h�Ǯv��Q@���U+��������^cZ}�
'��������vT�e�{����J�E��W
S� P5`5�_F�$��^�Q���}.��P�+_|

F�~����.S�%,
+l(� j'4�ٝ!CB��S�w�^�f0z���K�B��U�8 
������� (/�%E
>��G(E�Nv��
+�^2�H(�����EQ3.�Q>��,G;�j����>���M�Jv�i�h�}��P'g^Q�'_�
lH5L�	k�U�s$�Y��_~ѣ�m�
��J���B
�Z��dxxb����|���@��Aެ*r�>�
b�|�c����~����Q
wYO���1z��j�j����g���� t�| ��a
����_H�>QyEJ z��☢VJ�-�
�,�A#
�)�L�ʾc���Z���@�H=1;VB=�N~-3�Z���R�x0�MϴE*���N�
���ݜ��ٽ24%���Z�y
�c̢%v�*��f���=0��޾ŵ�}��Y;�BғH��S�UL[Ԣ@�p|P(���O��
�1L�q��(,�ҬU���=<��Ȏ����i�����N�ut/f)���t4JIF:�
��j�2����G��J:=��B[ �11e1���׍���֨��^�k�
��߯�~�I
+���PR"�����95��
+�(A7�

¹WD#y{���K'{s���v#���h�
V�����wb���=c�V�Ї
�=�3�Q!H�c�܇��:����Ñ^���d���ؽuΔQ=�
T��_.{�wq,�5��u���k����uxk���
+����2�c����$�o��A#5�'�%���V��{�
Hxӽ
l����h���i�!݃-�l�Ǹ*k�[�p��C%�V6���n
�y?��{�^���(`�=
h�%3�&
���,"�'�@�0`�\z
^-�I<ʕ�\ŴV1|^bd75 pكG�
�؃���Q��<��
+y�tO�ĸ�[�#��lqET��ņ��|I���ϑ|����x^�������h�CS ٚ?�^-QBQ�׉�D��]2�at��D�
u�S$_�����+A���3�
���7�b��n�5%��%cb���zH�7d��ac��߼2J{����=p4[`S3�W�ـ���
+�B
Y
-rȁ��b;�ŽI�O=<A����(�Ǒ�Sۉ
ZY(
��-<!2��M�ϒ�3����Q�`�Q
=�k
�9���>A_���Ww1%RB`�F?(p�Ǹ��Cd�����!���|b���ٶ�
�!;�~
q z�t��\�i�9<�,ӑ9�;_<{]�V��4�A��щ0��.�AYh�uv��_��P�-!�q�
?�<�PP�!�6�����D�^��
+�E�y�~4���{��;Ql8p���^�M�8��\�hy4��í	-��2
��-��R]
��	{��NҤ�8�f��藽�/
�A+�u�H
ݔ�綮`���	�:�<aD�l$������I����
��i�>*�{�#�⾔q
u����r�
v2��t^j��$��ط���{�)
JE�RE�}!��D��5%n�M���� ����m
��q�@����*�l	o
�ۇ��ł|A����֣�r���Z����Jb�i�y ��pkdO�KY�st�̂�
�_D��{�ȦP1Rd��p��8`�L�&�
�J��
2]�
t�B^��){~�
�oH�pBL�+�JH�~��V"��,CNѐjm�Yѥo�m�dk�[�t��)��8؃������^4:
)���P5Һ��>��z,�
���+���^�������=90d�] ����D�	�D�"G��}(H��7vO2G��^$/v/dGB ͕���E&�8y/kY�,']
+�.jJ��LI%]w��7���ǖ���+������oo鱣����/G�8S]YZ��C�p�s6�4�F$��z�C�����#J6��.����#�j���z

#9����'C8��)��(B�=
wg�Cczʻή��x��(a�#ʧ�үDw7ҵX�k�� �p��r���	�:U
~���#��d`�ϸ�4 at _}|"A'�Z�X��J��ir��z8�C"��qmG�ٕ�NK$��+�}H�{�t������}�D��&i��cĶDe�<���%�Ιƍ��c�C����
�f���
�)��\a�i���D���
+ƕW��+�������O�d��J��
b"|������,�-�b�H�����m2�.��J��_�|��Q>��9Ay���2�����	�ڱ��X!��.#�j�I���\V�C�WJ�
�pzXK��+-S�
؃�a�#A������q����y
��9����m���X=. ���w�_�9��A�kHY�@:�B��}����a1q?�ʻ͸D�{�/z(�8_O◍P/&�gD�Mf�0�By�J(GpI�:Fe�;���qw��ؾj�U��I�=b
;��&<TȽ5EL�e�<c�k]����x����
����
YK�lH����q����lp��f?��+�$s���'aO�
0W�vPw�엎T'5ֶJ���/z�5ZT�����cp���?����GW�W� �\`�Qŧ��3x
 ic�u\�e?�{4�B�{�1
�� @���*
+l���.��x뀆�@����z�E�a�6��
+S
ڟC��~ڤ�#�Cl�
䗮�
w�
6_��οS�
<���v��-��ZJq�h� c��M���	k*�źt��LA
L^�Wc���]��/7	����U3�%���J�e�s�@#=0.y�ɒ'պ����`�au�xC�
ה��`
7��C�pz�"�R�o���:��MXt1�� ������O�|tj1Po��LCr�=�`۷��$���a�R��2q[}�B-�s6�*(.}��
+���RS�;�L�3���
+�])��Mbb� d�w�_�w�"��t��ݓ�}�:	���
��+$J�eą6W�#��E��C0@�>��^�@��/%qH\�#Y�1i������
+���4s�~��Zپ~�q_��
֡
��N�k��I�&􏹔�����{㞪՛���
=y_�	�{8�8�vLE�U�Z0�Z���ldג�o��S��c]
+70�C��q*ɴ��'‰���ĸc��=+��B�&
�AW�|�I㈙�f��Z�:�I�"��t|f�kf;�5���5z�i
+��G��0WqR����GAU�v|�~K�����=`5�㚙v�(�%u|;R�<$q���
u��K.�%e%�	��JQ0-�`��=b[��d�[��q��6ef�.�K����{���T����^?�jG��6}����.���OHo3����'텕��>���Aiz|�s��r�����K��}9`_ =v������-��	�����븱$vL]^Qd��$�������[3�C��pw�6oB�!X���q %H7%0��
�������Y[8vN)2��2/%���|���j6��g�������؁Q" 
—�C�DX�O�,�^x�h
����[U9
+���`.�
5�$��p��T�L�D=\���^�"0��{:��<�me]M��9�@���>�J��ڌ���W�x���[R��9!����u��{��ח��u/���z���bm|�܎��{�$�������
�
R
��e�A�Ƣ|�KA���(9�=�4 a���#���Z��.�2��fq��<��˷�,+y�Ů�Y�˾Vp# �w�U�OPI���S�V��F糽��$R�9�EqPԾ��)	�}g�{�dO��<�X�Uؚe�`�nΈF1�\�Q���
$������I
@z�=Z�0�j�����{&������q	'��*��qj�'z�v���ߵ��6�sݔ�
��
�4L�M��y�7�Fp�ڍ�A5
�1LvB��n��_
W[
1<&Ψ;����j�
�����
��J��S��1�X��ko7�y�Se#�;�@�2�����/�4V��U��s""������j�)��Y���	ɊI�
:
��{|�
��a�K/%�`�F��	[�1�]N����d�y�T�s]����<PU��RnI��g��"ϓ��`�khgN_]�iS=��&[����N��7*��|
LRa��4�N��jV����lmL
V%=2b ���;�0� PpYBo��#m�FO 9�_�@#F�9
+J�
��"f݇�M��5TjG���{j;�?��V�F<ю�
�����G�'!2Ί��Q��)V(�� �q��$PΦ�^�w�Fv�^�`&Qɠ�qzdV{:�+�4
N-�y��
��$ ��o�י��XE8�����`TB|�o�n�~�a���!�{�^~�;O�>l���HS/W�
ޠLJ�L���/Y��+
��!��=v%i�GM�N��^�J���6�gO�D�yc\P��7�
l+����{d��^�B��tځ��
+t�уXD~�D��r"P�� �ᥑ��
��"
Y+��z=�����Kt&�w�
+�ڱX�^M���1�'׽�͋������v����C�C�P��CC�x�&
+
9*3�"%��0�k<�!7¦_|i����
���ܶ9#;T\H�d2-r
��z���������gFe�?���F~u�H���g��q��
�z�s�U���ؠ��H����^c��N��3"�_C �������M
y�1�fr����A/�H:Y�A2a
:�
2R�t ��i���Ёj���"����D���yjo�G�:=�N/]��=04�j�%z���=X�wj���Z_g2qĤ��'= e�.5�#DSFqˏ�hbd3L�
�޹�w�i�s��v� K@� ��R(�<���x���!�b�����Z�����\�<׻�|�����)P��#�3�{�� �e�	��:��q�E�p��!��!5��qdId�D�� `�<�� <.u�)F@�4�C�p�|xo�o_��4{P$����ދ
+��A�7S@����MQ�u;�O��
+A@���vghY��B�y�B�@0#��*�Z��u*z����j��<Se��=��g��q��
B�R�
+�
̰

@�xf��{�L쪹�h�X���K����X5�Q*҅�9vt����H�/�*K�]��mU�s�"q��
+�Oz��r�RE`��q)��}�;o*�;����
�?Q~�����q��$�?��*+
����_�����l~і����-�� �>91ˈ�?Xo��o+�z�2���:�&+
B
��G�:�sIe�q�$��LˆT
Z���SR�����*;����ic�L']��ucG2�t����p����H%�� t����{���O�
����
H&��\C��������Ϥ�d>���4Q�����[�K�2˻S
+�P!UD��#*��=��	�z[׽��/z �]!�{��{ep
!�\DI�{h��8������U�(zD4 �[�s�u�)f����/�s�*�
S�Ԋ§�߲Xdh�]d��xsə��2u �y{�Bt�JP�
��I��}3� �Oɢn��_AQz ��ON�o��3�B0���+8"S��nL������7y�=�1o{�Ч��*��N���T�#6��
�@�J� l�Ǽw�.;���'j��"E��P)���V��[�����B���J?h?��_�:r_p�0�4ʝ��X�~�H@��p���
�;�!���
� w�gZ�MG�w��M
lF^������
�(��ы��b�X�ۃTE�!����Y��)%M�x�Ȁ44~�4wyW���5ж�����ž��1��E�
a�I=�ie����)��c����#�U(3B2ګɗ���7�2�\�����x�<x�]l6PL����/w���2f���ߝˁ��{�C�;��<�k�Ȋ�{q^f|F�����"!�E���dB7�HA����Jj��, 
��Qk��wL+�2��wDû#h1Q����ݟA�#eJ�����
�sT�.B���J���9��Ͻ�+�ٰ�!8l��)r8e5�2	���
Þp�G�QIJ5�%��E�ζ"҈�H��Y�hN@�H�IU��
�Λ�<MA�p�^၎
~
-I@#����>;�EHE�=�H@���G��u(l!��3�ߟ�6Z�
�N>�z�G��`V:d/�z �P��	h�
}]��?
e�	
}��}���O��k�8&_y��ʫ��>�aÿw�I`_�����>�.0

.
(��JA�@���zJ]T��:%� :/)�`@��;u-��
iEa� ������@���|�
���say��32%Y�������e:� 
+����A$��Hq
2��D���C�
+��Nj'E�b�p{��=��><�\�� r
$���2PN~�E8X7�l7
�}-�a��U�XE]Y�W,5�Ez�2/�U�g�rb�{ǽ�w#4������V�Q�t���s&44c_�>�Tk:�:�^�-������
�Q�����S6�A��ӂӴ
+)�st�T�ۡ)���b:dĉ
;P��?Ƞt��;xL�E����L�c�(f��+��O����e<@��
�AD�
��=��@:JP�
�H#�mM"�
+
���<�F�*X%b#,��kS�^j�?�OE��KD��Bn��V��@ޘ��|�}��
c�
�Nn-��a�NV��{�H}�b�*�M*��aiؿ��F:���,�F
+
Y S\��' ��	уյhvb�zĺ��
@�9�
�����l�����e at I�.�r O3�A�N��)����g
;���_�y���a�R.�{͌} ��R�,c���w�Ď<�,` !�(�)�;�j���%��䀜.	�
+�b^�o���++�4��,g
ٲ��a�� 
�R:�d޸��C�B[3]~fa�GA�>�4���G�����',b�&ٚTl�Z�.l����$C���m*F$��@
����@yw�¢��$d�|+N���š�J��K]��+��۳��5N�f�
R3UϚ��,�� |�C��GКd$�׉
G`�Vٹ/1�'Mc�"�8"�!Y s�_����j/O��a?y���
+����m��m�v�Z��~�r��D�Ȳ�s�H��
��x�^�t
 >V񻫑pU�g_kZ��N�0S�g�+�YU=���Hz&
gb����"���Vax����p���>�N�'��
���qPk��Z8C0��y��<q��A������T���{��3�pL�|O}y���
&�9�8 ƴ�
7��yNd��q��e��^2�U 
v"�N'R
Nߏp0���W�
��gtx
C�P��Sw�~�a	�
�u.m����8�:_�
�:
+I�D��[O
7#���
�0�'$�߰�J�t�"���5�
	��'G��%'"��[̈��*W:.}{�� fjO�'��CƢS�f���h#�nb���I����Y
+6�� 	3�u������>��b�>��*1�/��X�[�9z���o��
�� �f�
n���uX'�`0�aQ!b_��?�#�T	]�t����	����3�%
+��>J4� C��x�L!
��xu6<ݣq
+�ρ�@��iό�����)V��x���S�l�#�s� G�_�!O�I1�3���Sӹ�݁�3�-��I������	�'13�*gNᾎUG�.	~�T��1�[�B:�tK��B�B�5G0-����{jɁ$�e���DA!�{ީY�mG)�H�E'�_~�s�/����G��ң85�,�T�4��;C��y�k�8��v�b⩅�/a�Y� {wh�y=>�U����
�85-Qdž˴�ޖ���帯�
S�蝏�u�e�4�R���Ǐ��+If
+�
�)L�ݙ?,����(���"�O��
 �������&�
g ��q 
�
h���=�)�L�T'�]��sRJ�+��T|�EZ"�
��H	d#� PQ��ׂ��:n`L��h�L��~�R$-G���R3ڛ K 1X�c��PS`H�  (K�:_�@�j�0�&$�0Gz"�l�t[b�%4".�<���"�M�@���u/�W��]'�
� P�����W�8���x�
�#T�D�{��CcDz���C�x�io��Eځ^l?
ƭǙ�u?&hr��
9�
�ӶE��	�W��Y'–{
"�qpj	�G+$���l�<uM�z�� �FOTⴖ �,f3��՜ ��謤qp|��&x�Va�
4�1�a���C�!�x�I)6� -A���&`�����"R׫"��r�(�TE�٤O��l���
>�{�}?�9A��Q ��s��\�v6i!$��P@�NC|y�%J��c��Ch+�PLH���w�d
�{R���D�?���v��
��D
�=GU��Ϟ_L���[�y��8��]�A��

��I���� %f0!Z8ck̼����=̓��� <//.��e%8w
u1��TQ�a�0���N���E�M��dQ��	���Um���/��T���%!
E�i(�����@E���䪓�9gRm�t�
��
�x�Q����QP\c�*
h��+�
�h��m�Ы�~�[*N�CL���^�G����k�0����W�$��eNQӈ
,�dG�;EH�"I�w�bv�" �͋(Wi*���<ꏄ�֜N�g�@ �Y��ߣ��3#~�?u�
m +�
ZQ�9�}`�Z�k	��
�s(R�7R��Â"�|tNe-{
�ܕ�KLJj&i������BJ	����
����e�H�-%�(1ز�
���
��h�� z���:G�s
�
f[f��sP�3:��2i2w�e�|��A`
��oU4 at -F?s�@Ǖ
,�q\����w*�\�z�G#��
���$�w
m��*�.�������D�L�����<�BcG,FP8�u�Z�C/� T���j�3�����ه����
%���n�1����^Z���iX`!�D��'`�G �sW˲!9/�59�⩕=���	�� LR���|D�+ ��ݯ����L��`$Ƶ�*�+N!���T��1�㥐DKgV��,���W�k���71 �Ł)����i�>�W6� 0��壚N��A6�n��^2/C�U�d�� �+�C

�9�gh�+D����e [...]
+�!��B�C�)�
��l0����I,����ѣ��yM�"K
�x��u��#�4kz��J��L]�
!�T�&�
��v���e��z�%�
Al����ƅ���~-XB�$:�y�?0�(i*!R�BL�"�i��x�~�/����g
�: �TZȠ��~24�	����^�h�P	#X>��y#4�m���v����0O�=�H�����Lp	(��%�|�GdV��� �
+'
Bo=���캢S:f-f����*U=�@_�^!�G9�\Q�[�<`�1: נ��
+�zɁ�$aV��|�A=��p#@��%�by�ǾH���1��4�9��KOtBr�y�y�1Ϋd�}w�3�` T����m�{$k!?|�$
��;
e����4�u0��[��A�4j��k��"�#�U))
\M!�P������E�2y0{�beu��2���$� �yj����c����xi��(�
���N܍��Kob]��?r�o7�{d�:��0�Z垈�$uR����X�{rR��j�0A&�*4��1����
�׸�=j�L<=�S���u{��
��
R���R�K�h%Jd��8ё���_}$�
+�8�)
� ��ȱT �`;��g:����dY,xA�xG��v�+��Y���\�,��-L�ďާr at u��M�q™�8
����4���
��i
!P }:�����ze���V�Dq?�Ee'&�}˦AT�Q�kp��
�=v�RK��z� ���z�>�Na@�Pq��|aو2PtP��M������q���'��
��xdSݟ�Ţ�
����s���(��=G�J�uܗhI7��
n�����4�{T(K�6���3`�U��6۰��<�X�Cf��A
+��P���M����2��@��]�U���:w�g,
HɵҶ�
9	����v�!5��Hz}zz��E�k���=B�b�D����%�	��#�3V���)P8tx���C)4<�S�b��JjʼnR\�{w��E�3(�tІ!;�/!�
J138��[U1/f}��1YnI�����
=GH���9��ʅ������ܛZR��'ڍ�
rp	�[
+%<�(��$(GTY)�
|)��W�KG�
+�C	��L�#�(�aaR�
���T�K`q�q����]�"sB���4�f���-z �ȄB(rY �%k7�I������O�ґ�|�H�t6ӣB.��!cK
+�|�':�&TF{{�fҊ�����<�/ �ӑ��%���Y��ґX�!�pwd�A�A1��H�D�
UJ��=�	�ېW7w���ڙ)r�0��Ĭ
��SAFT]z�bKx�2�(+?�݄�0�~�X�����Wn�&�yל|�����[\��O8�;`�lP�hpXP[GT�u�X�BD�u��C�
'S�F���(V�M
� ]0F+�{>��B-��v��BQ38Ͱ����
`�
��2��g݈TY6��3�<��d��9K������
N�D� PD)ˁG��֗��@o���o
�M���X>��f��9F�f����w�"���!93\�1�pM��I�g�����>' �A|M�����N-8a��ܣm�� GG�>	@)=�_�����蜌)K��!�R�C#D��\����?��OX�V���4����
��+��m�
gD8��gU|��!ae_��az���Gz>�;2�#d����"�����|���Y{�][��<�	��)� [...]
.`�U��< qYXy�hҤ�=ɠ��8�3_U��M"�b��B.+4�6BnH�g���Sm��㠌������
Z0����¦���VǕnUЭ8��|�Co���P�1a��S+�Y�=����ޅcGv��� 왩4j��M��dɫ데_x at K��.
({��/�o���[������6
+��e�
弇��zp#�i�ʞ���W�7�2�z�q��Y�OlkO����W�=�׋
�{"���R�@VYD�p>d NC�f"X�".2GE��*+\T��c����x�;�l�[� ��M��S�3�s��ar��e�5�g$�ؖB罣��Q��y�.
QJ_�KC"�#.j#D��K�N�n#2?�;
�uHI��,x½��	xɁD
��o�����ƙ�F�A��y����*�FП&"�1t�+x��%����Ҵ!��w��#Ǣ� �X
 u��2���׮�V�V�}$� �ۅFޡ�^��1����ޙ�:��Аψf����e?r;��"���:J1�>�6��3�2�wq!�$
�
��@�5UB���?uAo�Q<�_���p����a�5��3��t�!aPlp�OH�� 1Q����T?`����z���� 
��twO�z�#�,��I�
+�����M�
1n(������ޚ+|y͔g^읡�P�,凜��h� Q���ڠB'
+
����
�&��S����BJ�
�F���6o�`�q��/k�+9��ѕ@\�~�0���;�
�]���dO�U�4B�&#��E���h�>Y�`��:Wa�á<f ����.̯ƕ�
�aZ}�`I
sG�ܻP�~Ӣ��b�,։J���Jq�9�H����QW�-S�yz
f��兼D���{d�
��c  S;U�dq�����Jz
+��
+��KC2?�s at o���[�x(��K�d��� j�`�޸�`
��-��:@����
P�O�:*��ˎgT�t ����Ma�a
��`�`4��˜V*��<�tx���!��
���
��T��j��v�[�<�3�\��~�ʎsK]"�S�q�����W
��&���?���
+�D�vKP�իq���.�1Wf8�S tE1��
��_�
�f�I�����.W�qޒ�{%BY
+ĠA�Q_����X�ŸpĤH��#22#��
+'�-��F8��Ilq��b��e[���"�wη؄��;�d�6d��(�,�
�T�Y�/
Y��1��ґ�$�
+��%
�p%B���.��K�
������l�{�U���o������Y��>�8ʕ-�~w�~�
o}	
��=�^}��ѵS�
��[�@��٦�FEI
W��>��Xn������HRZdo$�����b�05�ީ���:e�0^��rS�`p5g���"�8
�c���c�+�
+���w0Q��;�p��zd+�ݥ���=�3Z�!w�~�F�9v����hj'7��Ө���-]ь`
'�"��
΋gzBE�4�Y�f�]D���
�^%n��,N
xI3��
+�vPJ�k`��VQ=`�*�~!m��
��zA�/!�v�d��h'�hdJ �L	U��E"���TW
���,�K"�7�ί3���������2��y����km�[V	C=h+ m�X� �7IjJ�3����z���ؿ�Q��1�^����3P"��R��7��):]��#�Kg�� �'2�x`%����$*��v�&[��+Z
�\����m:��g�$Pe�����ux��� Ճ���xs��٠D���mt����j^�������ȁG��D
�4�xQ�����!����2=�R���;��i ��׫�F_�T��e��yD�:�Rm4V��6;B�&�
 �V�Y"���!�T4@��M~9�@N�ߓ�
�
�`#��E�w�Z.)�锰΃�Z��DիIƲӣ� �O�����ť[͙+�2����#9�!m��'�"��<&����.l{}HI�^��Q^;H���K"<k���<��e���"o߱DK�BI��x��Ў �^�����ìD���ӈ��Wa��9 
<|���/�I�3�����G����C�~���x��
+�Ւ� ~G��J�Ŋ9�
z���i� TM��.H���kjgI¨�;��{�+p@�Pp+Y�}^Y�
({������r	���KL��� ţ�ɃѲ�����dS�
x2\��6&���<U�	O
?
7Ie�ZX�ڤݧ�7�$}����9�=��3o�j
�u?�N at tB��u9�া$%\�6
�}
��/^��z
!R� T�'����f�#:�d�lO�%��;%�8�`��
+�Eʷ'���v)��y��9|!����w�I���:��Ð5�$D�[��;��	ёR�
���3��{x�s��U�&�
^��<�\��ճ;j��fCC�X��^�y��U��hh�'����y��������x�Qx�p��(�2R�
�e<yP��"���x��O���
�����>���G����U��v
G�!��>��
��� 9{�˗�IF�n�7}���\O�B m���f5��5rotd`QP(��YL������B���5�����}9a0�đ1�
�ɈB<���8*�-Ƙ �Ṣ<ӗ�q��=�ȸ�� ��39k�Q�zJ�X�
+��p�@Qi���Q
+��8� �k�Bl����q�r�.z7�V6�W�� ]�BE�{�4�5������M�°'5b�2"7^�*�`rAK�
��3���t�b����tGc�
���P�ާ�<;<�Zf�u�95S�k�� �a��M����>��)���;�O�~ v~��t�[�4�vqA��%���O��QQ@��w�
���IYY�P;eG\`����,V���Q܀yp��)(�"�O��<UK��2�Y4
F��(�Ub
�b�W��b;��
&�@\��4)�U�
{�/����z0kb�D�W����#�3ݧ����o���J��P�
:�tP
�π�7 &���4߂h�����{8��� ��T-� TE�PuF�����.�){[�
�Y޿Bm]�Q0T��ln���T%*Rp�#�.R�����N
'P{��p���9u��/芗I�Z`�X�J�6��݉�x�4��
l�!��kL��v��}�+3�
*<�D&���{�S|AN�����I_����Ls�� [...]
f������N��}�u��<p/*t-�f�Nwн]F�Ċ�6\w�Y��V��^E��Ÿ�����j{/�� �:m�4�?=��Q'A
u&��o7W�X&;�
+J
+
W�Wާe�
+�ëy��7
+5�;ȑ,�mh��e�ƛ}P�^�TW�
�Z�����tJA_�Wc7%Y
"&�<�Y�!���35�{��}�&>D�V嘱���w��0��svs�����`JY2�-!��NG�,��WP����^7�{M��4N��<�{��&����W	���z|F�}���sF{W��h����⋕i���V��@�4y
uy��ʳ�8
��+Q�
��W�q
��
�+�R��i��gd�lڥ�<�2���[�Zܮ�aM!��e��64� �gݑ��z���	
� gۓ�K&<
UM���t��
��^�;0lq�L˥[
+�lWP�rW�Ս#���~��2[i:�Y��I
�~�
z���7(i_�G�\m(�C���P�@j�݄P�>�x�8<�F�2*�륜���
�yf�XV4$���޺U�b,�|�3�q_��e~�Gڄ6�˪�;o$B��z�� sG�<h�Rs�̕d`��zK����=V)��ߊ7}��T��-`�ǔT+�'Z���
�݉�/
i\�D�k �W�4ꉈg�
�f̙�̒~�6��P?^�F�o_��2|8�&mez�@���*�u{ʍ�*�6��5��Q����$�W�VD`<
��4�+��2QT�=5���ɱH�|C/&�$2�8
+ZD�L�XB��F�F��RDI�]p�J���O�jAN
�/�v� |��Q��:�^
G�������z}�X(���S�4��(`ņ!���
8�0� �C(I�I��1���WM������:����
+��3�jh����^!ˍo ��eFe��,z�0�_Cъ�ZmO�-.�d�yW!O��#4׊���p�?T�˙"�zЊ,���D��ۋ���:��
�ti����|����U ���,tk/

r"�=Oq;~�˜Q����_~U��#28h2!�AZ,�z�<^���Cv�rn3���b\���ҏ�4��Hψ�jK��:&ҕ�]Iͷw�A�g���y��<�jD|D�og���b$�92�[̀}0K���g
��r���"�\�H�L�K�O�)��E��]L&� \ \ADJ�?�Eu��(��
A쵮�\zgW���cX�pK�y���x���z��
�FT>A���h6��*Ӷa#B��,) }D�*��l�[dh��_�|D�nFme|&
+�lj?#���T����`��Uls����9��q��XW�R�
+NZf`5Yĝn�ګ�������GD�T����O�9ߣ �	�%Y�~�5��
���`��4��i���E��F1]\���6yS۲�Yb��l��`�����~	~FaQˬ�ǩ�5+#1'�$�p֧���X��	�f���/s�'D5w�;���iՐ��p�t���,8���v
�;���ۃ{I�MO��БoV��
)!`.Q�L�=���U=C<;�
+gm��.�^�>`�l.��k�Q�������~/�p��
	lw9��w}�����^��!_>������߈�š�_��y������� �oʳ�/�B�Qw�
���y���-Ǫiک�p>��u�&�F�����
~8M�
+#v�H�:�nj0��Y�8V����B�
+	s����Au�J-b�]6����#{9�4�1����	T뷎�	���f�D[
JÙavI-�z2�yu��Ջ��
���sNJ��
�mƂ����#�_яI&쉔�}��Ú���ܙc�}���Y+�#� ��'��"͞��Bh
�6������s�ߑ�$1�_J�����]2)|���*�!��xo�M�
���P;Gݨ6��5���	��"d�L`�議 #L�LT
?��Q��6��Tҷ+�(�Fs�|��{��vZ-�R�
��
% �!B?���#[���3�C�##�_�'�ѯ3!EԨ�êE�OQ���L3d�GT�{9��SzQ�{�]$@.�����4�����|ha�S�:
+&Kq�
Ln�� t�������Y�VE=/Ո#�U0l���}n�OY�j�90s�g�v��.��wfX�	=7[
+:*����V��	�����_��G?�|��%�6�
�<9wCGj�	��Ձ�+
�Ta��g�����p*�
�?3�I>�\6�"��!������j�J��C�.ݡE/M�Sb�H�5-z`
�D��� NYټ3/#�v�*9�\oT�Ɲ !�����
�p�8  �6~�h3S��0�j<�e�~"+~"2����ؕ�&�"��!�:CSQ!M���}D��V�1x�~�b����mN!
� %Z�M�Q�i݌��<ţ��`kϣ��QU~�p'غ��a|q���1�k���D
�s��
�sY�����-B�Lĉ�E" ����5�/�<2u�@��<ʹ��
�i���5�s���\�E �G��;v[��a�������%#~f@�#�t4�(d
��������ȼ����#�
bW�+����h$R�O�Q��J�
=���U"��u
#���\32�a�t�y�#���7��*�O&)�p��B1s� ��
B|�!�^�w^�k�ʁ
�ocVtW7�9+�bD������=�}?�U�b���q�(�d�{г_(l�p�a���ys��W[�	��qXV�h�-z'Kbg�ҡ7=U2W�:����?>�{mk�\�\��4��y�>�G�7�G�-��g����×�'p�+�K��R��%�����Ț>5|pBJ޵�
+��t:ْQ�f�
2�
��D�w� ���8��"�g�3�p�
+/�:���_��\� 7˳�X_m�
d������p.��S�&2�>`u�s�&<�
+8+�>����$5?�~��(�
L-O���ު�!JK��CD
L��
���:q�
�<&-�a0	L
U�������,�|�f��/9�3k:�"w:���K8'�j\6�؅�.C�+8�qB��������W��W�;r���|�/��J6�g�;r��L+䄪S)�Ck
�KiJ�g��h�����`F�^E���pF��
�#bQ����޲�#J���P��#
��?�t���<����=Hm�t��RԆ������C�чt��n`И�A��QFӫ}K��S-��3�	�^t��kG�|ﯻ���@Z�4�aF������~�x:l��R���q���vGW6�Ƞ��� ��
����-�ݤk5<AJ�V8c���q
�Q%�x��9���b�>����5Z�-@�
�j*{�7Th�7-5���CEP����՘�G����NJgf������0��N]�����[���Br�������ƣ�E���{��\Ql�{�:7T�s��k���\��E+�KU���.� WĪ��*b%��T"H�Щ~޶	c�P�8�Z����{��-G��;tR���'��m��׌��
�\�d_On�#�$���mC�����®Rd�Pzr�H«̲&�,���� ����[i8��}5�Zӟ��c�z?<g�j���W�p�;ݏ�Y [...]
+�n��ī�8�y��}��qϝ�!/|F��(�j!7�^�PƄB$DZK�
��~ٝՊl��$O���<���h��;Әx�0Y��#;��
+9.�CG��, at vU���_����6��gl`7��u���a~�&�q/��
�P�MiW� ��Eo//�(UW�Bi�l�L�+"�|�K�,#�eA�oIю��+����\i��<tP��MԒ���v
9O�l�E�z*��W};[
�I�j�JZ��;#_f_��\8V?��#�
+�-���yՈ�+�ADh
<Z4�J��G{G�ǁ�j���D�j͉P�̀����Uc�����?����{�B6z�	RE�����
p�N�����,�
��
ߣ�ͤѕ����W�B�a~D�G	��� מ�|�eP�j���X?�9�T�9�3�Y����;��������Z�Ԩ=��&t�/���[��g�yz!�Ky�+v��.s��'=�z�w„�_"�� �V�r���/.{��
0�>
�d�J��EY��BA6���D�L�gFC�6)� ���u�a@ȫy�m�':�Wa�3�V9BN
U
�"8��$G����;����1m,	��A�(:��| ������}�o?�#
+���}�
�d^��>�~E�.�
�
٬��/
ueT}���Q"��M��@�u�ƫL�H�����W�, ��
�]EgA88��c�`��㇆�Gļ�@D���,'j��B�\:�
:"F�(�?" .S�
���	��)a־�!s
����Eo��.c̝
+�$��((�V�aG��u 9�� =I��q�������+zJb�b����Tk)���{���N
�)�EyU��h
�� �
+��p��N%�
����rN�,���,*��=}�W��������\bI
�.��=�I>��L
cȍ��
�*�~d�1���A��#J��K�
:�}Gܪ*~@3��
+�W�W�[ԇ�6�}�0�����^�9�e�wM%u�R��{���K�PNa>���=��`�^=d:����
���\�Xs��M� ��!�]��NI
�㶈N��O�}��A"�:#�
"f�Z�Z�/+#2���{�0�#N�r����Sb#X���+��qǴ��:�]u�łӤ��؂�y@�?�ݽ��Ϫ� ���m��1*j�g^���yE�Ȓq�R%gR��~�]0�X��gDʆ�� �"���q�r>�Z1�
�?���L��:��������b���؉P�Pu~
<��3�x
8~�D��5$�# zl��BKGA�.BL��@j!s��u�*�l
����c�1�=�֘y����b�\�Tx+;B�^���
+�S���3J')x�Y��[p-=�"�KqEs�+�QGd��\O��?/��2�����陒��5�h�f[��9�[V_���ˑ�2JD�Ĝ�i�y
�C��1ޟ=�<���}])43DmY�I��։�^;i��EF����<����V���� ��P�����P�Ě��t���47Z
+�����ki�Kk�"0y���=В|Q�ߢfY��@�{���gd���,xɏ�;+�X��ș�U��U�v�����W���AH�4[)����3z��
��U�hA�յ~�Qt8��%��}���Lj�þ4t&L%Z>�� 9��
������cI�Wp�w�����ѹ��A����TN���m��Ve���Y(2n�`����D���Z;!D�GY�Ui�l1��O�ϊ��1�#�ύ6���Q�Ŝa B�p�
Ͻ;�2
H��b��l{��Mz;W9�8�WT�ı�|�e�ӺFL-�E�Fm1 at 0�-��A�ǩ�ݤH��8���/��y ��� �m?&\r&�$��S�RQ�!�wl&6 [...]
+��҆G�{���
�E!r��+��� UB�؏��
���
���NO-s�հe�D
PF�� լA��]+��.H_�g|�|�R����Կ	�wg�К�����F��Ȼ�&�O*�?I��
���~��h�����q����������>Y������������o�����������w���������������������T?��/��?����?������������?����?�����_|�����j����ޏ��1���;?�X���#ܧ�(��@\{Z�b$���v��uZ��R�sG��5"0
+���F�!��Z̈Y�$�(9��#��Q5�dtjb��z
TG�k��z��6N�]\����~����Ce<�^�0b<F�L)�m�kY�
���>�aI�:~�X�'ŰO�Тb������-�k$����K��K ���c�
�	戄O�
N��)�Ɇ�|._H����|jU��ϣ{�Ӷh�����w�`M�]�h��j4����
}�@E�}W�u�/F�
��x�
h�E�D����Oů�ϧ!=��Fx��E14��U�\�]��Y>q �3�@
+d��й����*��B��(,u\�J���8x���?+L�WP:]�Ӑ'�B�(�G���"��k�ڡ9
�,�=�ur���ү���я|�����
;
x�":A��D�NQv`�lqc�� ��<R�D��D����s�f����U���o0�b&?
�s��#9��st���3��Q#�n���S!���#, q��8
�2

��	�\���Փ
}��} �!Tti�'&�"p�t�~�>�~H����
�����ۜ?gX4����K�&=~�
t�N�W�\�����u����Y�_En�
 S$��w h�d<� z�B������L�n�ߌH�
`��j��d
�Q���8↭{�1-�x�wA�ޒ�Q�z�
z{�W� ��
f����?����€zH��|
�<k�*B#
���G1��KܤW�
��9JCL0�����
�(�Z-�G������xS9���6�H�~��F
���K��g��]��E��	�f?���Pjs�s7��?zB�CZ��7����=`��C�K���(O��;�E�N=-�8�W�(馡\�Q�N���?޳��#��2��i�l""����̎؋�]g�YBJ�-��I�36d泼k�^l�ȁ�bb�x�$�����i�O������=t��j��
a|�|Eq��+�)�V���(hx��
#I{�e�<e�}{؟I�`��:�����M�C���.L�5��D
�?6=���`����K�Uh�+�,�TUW޹�fo�v�Z
�E����\�N2�Q�|<Io0�",�m�݁�aׇO�5�u�׺y��d��c�Pgz�������4��QL�j
�"
%�1?��f���-k\B�Y�D�
��� ���%���p���`(ŏ]t/ow#:��Y�n�k:��
b���ýߪK�:k|y����7IQ]9�XsL�P��8�R�޳�����؍�?����=�%M �~��
|�������EE:���cXJ�F9|�G�ux�`	�&N����O:0�}hs
�8��e��#B�e�d��B�
H�x�U���ߒ�U~Li����7E��o;������;�z���5�'
wT�T.e�����(<~�\3�r�����0<��0HSQ2w�c
 lſ��M�f���!¨���� 
+i�Z���Wy��Y��;�/1���������5�d}m�LRY(R�*ud9pf�Ԗ��#nn*���
��I�/e�~8�������5�C�s��"��ˣi0��:�"����;J�O�z�
D]���
���z��ِ>���
��v�zt��w6:�}D�����Z�L�.	��y���1����
WFl'�\�
; ��W��DXS
+�)�vG]Ά��
a�؀հW�"N`�N����}!5/� ��0���1�  �@*t��朱��
C��ѷ� 
���g��C�ՙ>��B��/ͭ�{�4��c�����
lPw�S�
|�����Tv�-����2�b�4�ô$]���� �h���l�M`EC��2b���%�J/Mg,��:m˜LS��tM�a�&@�8
ZlK�7G�~�s���R�����x��p���*���e����,v�
lGpg�^jry
"�+Z���A�s�L]���cl��V�t���2�~փ	>\���R�L)~��K�T�h�p�
�OM��`�+ t�7g��z�@
 x�
��o9�b/����v�~��8���Ȫ�C���3���q�C=�G
@�n������ g�����
��C,:�r�PX�����IK�
�3Zɍ�g�@��l�E~����`#
�Q�h�`y
�C�s�e	;)�
��E^�Rr�ͥ�f&-�D஑�@����l�m�:4�wr�8���afeH���~��
���ԯ����I
�3���
+
=�V�'{��P�n�T7 0JqI�9�����ռ�!���T���C�
h�'��S	'hXG�ʨ6��|��m�iD<�!g��C��;�O��?w��w��5��
��e���E<��
,u8�������H�B�ʣ�V�Г�"KI�)$�����������[��I�
gyt��N�����dM�"�)l4*n�	�sW��`��1��YIk�����*=���~t�1E@����r�#)̹�/�!	A�T�-�]��O"ܷ�w<�J��[25;`���D��V֨���J2�

�
����(̟F�@��Y9$��D�6_�5�"T
�P$�ʣd�L����A��:�J��o�p�M�l�wW�g_�	�b㠯9���� y��'85����
�7�
:���t�R4F�K�b~��(��5*���o�0
�	��^�K-�,�L 58Z��ףi2z�:M��������\pc�
k�����wH
+��TA���L������dFOg�7�Ԍ
&��!0e�(g���!����_~�N=�Ԋ�c��/b#��X|� C��}@�-��[�C:{��8��Qfo�@V����:)C��F���5�;���v4-�
�C��Jڠ�9�!��ԮN���N�C�rz����*�#2���o*�jv�y
�[�����+�5�Qnw�I?#�����/�@����;d��1�9�(�*�
d�1d�
0�2 ��M��G� �oG�?���O�
墒qw����V��)����=J4�/�^�T��lŀ�>b@��
uBҜ��ψ�i���s��Ǚq��Fw!rƆ�co9�<�$��N���ëQ�F�
+I�䩥�%���"x�
�% ���S�� ��l8� ���A8a�F��=��Ϧ�՝(I

	��qPc� jZ����@��RJ�V?)�S��R��$Y�����!��y�I�go;|
�XTɶ�z�4��m��[@nRa�?�x���M�Ւ�Dzy�323?#������{�7`�-Aa�Kw��"�
~%r.�G��>��k5}1\�����O���<�t�y�'��#V戃l��|�B
+W,�~B�+���y��>�E��7]y�;
��
�n���i"�{�����v#ӠL���?SW�ҳ��x��ߣ��DB¼پ���Mi3;�8�҃@��NF��c�C�\�"r��1"��<���*�3���J���:�_�t�∏7�8e=�o�?a9�o��v��)`�!h��3a��qb�cd\����:�LX;�� ���P�5�?���
���v�?G���9{XÊľ��

�Т��ɮ��d�$�Z��
��0�i&-
\_G\]w�Q5?#�m4顤3�8F�I=�mo��@�B�
���#�� ��z�Ja�E��BN
���´V�mYI�8��K ��K���.�ɚ��D�{��]X{&J������qf�ڱO���H�ӟ4�
2㩖j�:��E��);o'���5��'^~������n�?�[� :4[vė,��� =���t:v;
+��%�=BXVB�Cs���/�)�G��1�w>��9�gT����4�J�l�$�d�
�H�㰕&��_��5q�a���rtE�+��|-���=5�(�v
+M����^̐�1���o�G=��_O[e��_�Ty�E���7����m$�/�S��V?��4A!.s�p�]%;���A��83�hQ4�#�=�#��
�
+m������#���G<p��(VbP�~�Ԯ+F��}f��;�;L�h2��##��*��j����	l\^�P�
gz��A9��JH<��Y-�K��]����!dN
�ȹ����?�B�Y�Y���Ϩ9��!�ܖ��J9�t1S�
+�����?}���0������K(��s�d�%����R��TĨ�����u1��^�
b&=�q����]?�'��
endstream
endobj
40 0 obj
<</Length 65536>>stream
+N�s��M�i���GD�r�
��
G�F�L����3_F����b�/hS����G<���s���;�^GYĤ�|Rg��W�[r�JN��>]�8���Q��M�C����aбJl�
�w����t��6P� ��EK/M#��b��2{�zm����~�R��a��v�D�w���ⱱ`��:Ѝd�s�N�ibk�_�#,>�&���=��&c���A
Fb�
+��ׁ
��~$��+�����VP�O�+�
'ט]�#-����h��@���b�L�EQR҄`����� 1�
�q�v��)�g�2�H�BN�'(�N�Ie��L90�s^�Z�UH�_xv�CH5ʥ�
�������1��kgo&�vߋ�``1��l�QqXu���g���o��0�J���1�K�U%S
>W5�7��W"f��SΎ¦qr�*����Yv��� *Α~�2��i��5�e��_�
�t
��G<e�k{�H�
�Jt:rT�[�����T�bf�v����\��ȋ
2�9�
�:A����Q\c�3-P���B�17ZCH|��{@1X5���+0�=�O�ky�8�9uD�RX
����}r"�e�Hߦ'<(�=/�z\J�~�rm�;`���t�'�[�����U����~��������L}8���t��Z��#�c�:M<��w��~+�2���4�K����l�l��i��_El�/���������}�������s��]��	���=�^�o�g�Jh�.��������!�M}�v�`��[? �c���?�p����Ţė��>b�qO�=*Bӧ}��W�fV�F~����)@�K�Ǝ@�K�;|�{@A��Y��j
|���rʏ��n�\~��,f1~ʗq�ɮ7���@E��#,|�D��ԍ-��(��/w�(v��h(�8��ůW�[�}V��1y!F
�v	�~�="��{��q�59�0~�_�Q��*���� ��G�}��߂�MXw�0g}�Uߖ`b8���؉P?ז
��?#�\�x��5�!H4�xl��*g���o:�2
+�^�����l�Ϣ� �Z����W̓��O���ҳ-K��(,yfa���j����o-sR2߮'
4�N�QD��<��A*�F)��"��/�����}�
��ĨB��h��Pf����v�u���>�ݣ�i�H"O���� @�t';]�C*'��(D�y[�\|q���7��� NqG��ۆH��̑
���Ps��*�j�#�"�;�ɶ��Y��3
+�dU ]Nn[�Sh	jf�3{�+��ꥩ8�=�ϕ,�ޭB���
c�� 	t�Q�Q9G�]"P�G��=�p�>kޢ��ϡ�".>3 
�͋�;�|����a���Wo���8
+�-�tX�f�ȩ�
���ٸ�L	@4�z]�k��|��(i�D!�KT����9K��A
�1|�9�9���6”UC��ָۭ��x+F�
[WX���R�Q+S#��n?Ո�sI�siz0�����\��I��i#�Vs
X2Y�s����M/�i'��&����5�4�>���$x�HɅ��8l��f�
�f�
W� ��y��F��(MN�[)��Ǚ� �̤E�{\$)�H�P+�s�t�YηN��	L�.�a�m�yG
��&�W��_ژ,�KX{k
+'5钷���_����U���Ғ�=2t�F)I[�����G`_�<�;�“����Q4�n1�>u{i9/� ���+X�]��k����Qg�
��	��� �*yOd�4��ƹh��k�p�h_H�����&��Cg��g��
6���JM\j�R� ��P�]K��y4 h�5G8j 2ZO�J�VXl���H�� ���<=ǰE��į����jG�\(�
!;��m>`�WLDbf��3���ƛ�}|���N,,�t]_lG�L�
���#�����������8�5�k|���~B���x��)^�2�@�����m�*�����}2Lܹ���;����1c��^.W
Dx�վ�ڟ�"z�Gx1�����G�#J��c��D Vr�D���T�eÆ���Fo�G�YR�F���n>�k[�FO���q9�����~���)�Q�=
+�G�
�r�(
�?� W�Vp��']��	�O�(֗P�|��{A�#�Y��ȡ���P�(g#E .rv���s�� \j�Vcat�
1ylT(�A7�5^�虪pCW_�c)u��,9���fرX!I>��	�bt�{,�`=���XXR ��3�+�����gJ���8�
���=`u��z�␎�
+�|�[��Px%>�F4�����r ������

�}�.A�1���:#���ˮy�,`���̧�
��w��G�$
k��?F��x@)��D����t�^���pit�
+�
�B4�?U� �bK�:�6�$��M/�_a7Ԅ˜(�ƈ
�9�mPZ{�P��Ŵ�Yr��Xa�otRI��[3C��4��3�ݷb���<*�J��F��(̤Q�#�z�s���~�@��#d�d��M�HUX|GP�𜯩�~Y�Z�
�N��%QC�3Q���u���H_�#�d0��
Ř� ��'���Qa`�0e��6t�Y�b��8tU'�6R�ɨ��h��v��QF� _p+�bQ*0e�(�W��2���0�f�E�%'^��
+��`���)-{}褮�`q�a����b�d/1�4vՙ�w�b*�.A�P]
������u�5ڕq�(���@��s��O5�����t<NU��aJ�~��=�x��D)�k�e�wp�m�"�r�H(�)��M��L�>��S	�%�b���D���Λ�"K�֩a�f�-��
�"��s�u�ߤ����%K�4�e?�)������Y�/yAΐ�����l�~|���
�_NH*�3�;�t:Z-��o���#�j)Ophh�S�_�����
��O���Of.M���[��X�ScT!���S
�^��!|rd
6���
��.x@���
L��j���|�4�;	y��8�x
�Nr
�
���2Hq�
Fn3J i}ϙ(��������{*���c����9��u�'B�+ /L��e�Ct�a����Aj��㆛+
��х0����d#�>~_nP�"
�
+4���N3���s�˼3��a�| �sxˤ�Y�`���R�W��R;u/?��r�����hw�zA��L�4�D��
5�]0jj>uX[T�g���# [��
dn#�x�L�k�
+]Wv
�����q���_+�$qcKQ{`��j��.m	�Ϧ��˭Asv\��a=
�5�-*'�f������a?�g�5�Ӎk*L��8�`n����������ܕ3�[��?_
�f"{
����a
Ǘ��q�+�5�7¶���W�n-,~�z��	�#�LBo.9�B_
���84���͍%����������%q|�_".�8��)���C��
����?C�[

��^�Θ7M
n�P{ђy�Ɋڗ�y�Hޣ�yW�ajeFn��N��w��E������޼�G�%$5���/3�$U(���*�<mP�we���
v����뿊T���^*���󀨅��~n����z�Fa;���Cz`z��-,�S�D���)L	q�@>
+8
��#Z��i\�F�ɫ���.��.�࠿��9������X��+F�f?w0ա"���
+(E��yFES�^�0
���H��/U4r�����W-
�gF���Su/��h�sy�"!�WQŎ&G��W	�M�r�ιJn���hP]�+/?I�
}�H�/�F�x8�(�
�vNwD(1gL~r&(1���R�
+�S����?HD�";˖�kl�W <�ަ
+�;�^/\n�ŀ���=�k��qW���aѸ#,_��Ɓ)i��ߏ?��IqD��0�z����D5���TQ�TR����y��U0=��h��N���KiJ M���M
���`����Q����<�(r�
��aX
!��T_=+�����m��c�x/�і��(�-�jB�΅Sv��L�Yy5Q���m �)�����U��W�k`k����h�D�8Me�{�ޏᝬ�ɛV�?� �|�H�z����#�X;��[EK���A�
^ba�:/�E6j� �
��q-~���D�lC�f����X����������t�����"!e�`#:�N����)D�0`���0�
6�{��d���\�9e��N�����Hgs��n�
+�u�
�qF�6��#/;e 
�{gB�-
�-T���E=�g��;5�6*�Vx��;^� �� �Q,��L&A�$�
��氪#氞�L���"�+����h��@�
��v��s��U[��ZAX]S`��̟�[Y�P������'�i,�H at h������vW�#x�s�N����ӍZ��ܿƟϣ�:�|�T9yi�.�����ڞ���x���LSh��/���(��ݾ�fM�B��ީ��h�UpH�:�g���������,4Q��I_H��]��"��c��7b�x�3�;0���
���[3�Sޓ����<]ǞL;�E:��Sh*ڛ�x�I3�o��q%���#9�A@,>j3�z/�
�ae@w�s�@sL_w�:�0X�>F`��^��r�g�� fP\4�
D^
z�h&�W����@�rH�
�G�BtH�&o5�I�#:f%u�*�8�����(_�4ρ@������S*
�z�!��E��l��R7�@�I~�m�xS
��	�A;ګ=m�.�`*� ]a�
+zG�5m��g?�8�)�1n�\

���:r�헼DZD��<�U�E��J.�(0߅&>�n��fD�X��|ծ�����\�|J;OՅW�3^P�DK��Q�V-*�gi
خ�	���À�c
S:�4k��x\|	N7����ɑ{�M���bo�S��g@	�c����h��5
b��CrM�`�-
|b��	
��"�;�Q��D�Ţ�멲5�d&�X|E7D|�蚍SX
+G�&�u#j�u.�(�
+��d��a"��Y�B"���t����A\��V�
D��W&��C���J����Q,~F<N
϶<�Q����4w�j�_%�q+1�wUi]Xt�u�Q0ӫI
+�`	�8t(�;6�㩤���N��Y&T7Ε�4�
Hu�^����-��E�GU��162�>l�����x���p�����i���q�� ��pGV1@�g/�J�BF��Ѕ
_�q�?�\5U�?�:����ʹ�(�_�ё���"ّJ��~,�׉^~�9!bR�Xo�e��f~ZWL��. �F�@L'����e���I|A!��F
;h/�N�&F�1���
ez�M�
+��a?���/
�葼��w�����Ue1v�<d�>�$ݗ@���3�> ����|K��nደ�g<ݐ^�ԸG�s�,�"/	��כ��
����?J���
��#�����xg�*E�G��IE�W����2�.��;�r� I�FE�#�c�"���b��-� �$9��`g5&P��@�H�t-[T(���N������Ln���
��}�ܳ���q��'������ހ��R�Gr��|X���4�"O��P&̐�O�
++��_��^I��Nq��JF(�go�ރ���F+T� =-�3��ϔ���r�����
�� ��z<�.;9R�G���Lh{T��::�-M��r����(V�F��Y�� W�(�g'HD�X�"c]�V�1�ƀ&�o��<��f���W1
:W̸n)n�����4�ca[!0Y8��A��-yu��}�� H"y`����+,�N�;&%�Yy�a�sC{��B �RG�Ʒd�]mo�
�9Q�Y�UV�}�
�P����BͲ�~�:��/��*�s k3���
��̧(zy�Q�+̗�Ý4cG�S�c_�+��2��F�;%�~�[d���y��s�~'Lӡ�Ìh���� ��%a�׉y��{]>�%����K�2�R�I�$~|��]
��j=|����@�5��(�
�b=Z�*[iM�qЌ@�l�Y}~��Z���
گ��U�n�f�;|�#J%�����)^3�&�3:��r���
����C�\�Ƥ�;!z���-��z����f�mD��h������^~漿�t�A��n#��uj��g�`3�e�����ig��n���[e뢌/��W��� ��<�f7���c�Bc�#�~v
��OAv�k\48�
��@��z��G:�T/����g�N�C�K��c��p�_��$B9XѴ������%y�DU�hV
�Tq�o�!q���
y�Vyr
�x��I�U�Af]I.M�'~6讀�����ʠ�+�J�s���
734hޜ�s��#"�<e���u"��d���~�
,��(
+^\���'�NS]� /���=-m��õm�:�NZw���/ýt���}�sR��м<0=�Eu@;(�Sd�¤�{�5�v9��~��M��G!��0��SEl���=!
wI����V���1T���eFP6���Y�u!�Q~	ހ���;sR�6�;e�  
+(U6�
�*�DP�
�M7�
GR_�
a���O1���'c¤�g���.^�
^iٝ��dm�����'eHzW!?
��h&;K %"xB����ss�A���?z�E�\�k�ޅ�?ݦZ�[
�x��dH�Z4�›�[��V_�8A����>�ޜ�;�_i�Y��{����}
�F:/��	TIH�
Y�Wq�����O��
|+g
Q��;
�>�NV������O� WH�������Z�ZB ��#��
=�i�#�U|�#rӊ
�tL���?F���O�*yi#�A�5���Y(��=E���:�K
�D�:�zB�}s�
W�H(�}:֯�N cF*�T�,;�׉h�������9�xqT�,�
e�
n
�܏���}Dߝ��aV3�ˇ��z���T�9�(o�3��V
O�ڡ��/�T�	j3 �`�B��ݨ��܇(�J�ͨ�.x)���SX&$~d��i�/	���3�jG�J�l��@�8I�*�{��+�	+��I��I��� ���W-�ef�e�
�"+���#�t6�g���zSc�V�$A��p��A7Fv�|�2ZȱY
������WtO�|���|ci�|5�bhz�7D�i���rcFv\�\Ýl��f>�\�f�Bb,`ޟq�����SL;�͡�9e�pk�+N:5�OpP��<{��e4ry^A��b�AHg�w��VX��&���X��16$`YϦ.����1w%������aS��^R`��ݛ=�#�g����^@��:/��!_�)���C�k��Bf�
+�����U�ڏ�r�(|�~����L�
e��.Vy/�_'Q���VS�r������]
'Z{S9�x�9(~�T�J�� �
+	�mH�ӏ�cd��ŋ�::>."
�	��^׎�L�PM7���ݠ
�n�nv���}<�����i��d�<���i�µs
��}^�8#S�1&yG�GАE��P�p/�'6�⍟`�N
+i2
(�Y�F��_�����@�O��5-�x;��?z��?��n�
Q�
t	I�Io��k���/�߹�T(c3�a�F�
�b�H�1oY:
7
��9�r���G��ZA�(�w����ήW����G�ְP�/&�;]ʑ��X ��J����A�[Kt�'��<��}���;7�N
ca��IŽLc4�>U,}�
]��]�#$�Lvd>��]��
�B�j��%�u&�?]���n��i��P�ܽ8�Wq�{0��?� =K �WH�� �S'B����:ш��ɣ�2�Tn���̣j�S?�LJ0��D/7�|:�W��-�f��:Q)�=�"i��4`�QWf�7B��~�3�,bb7V�&`3�=���'�
+2���"3���V��m��C%��(�؍S'�C.
.0��S��w�3��e-֙46n�]
|'�����&˒����"
�M%�
┓	 UN&H�7�����6g���]a@����/�Yw(%a�Jb��4[���r���t�
�ifq颐�����
/
��h���xG$�.��ܤ�)
-��c��6�k�mq\��3А���B%#Fu�
��B��^�
.4���c�ѓ�w��G�U7E�+'^�K
����72�� QX���R
f�W
�Dop�yh��D�%)}WrV�}�f��)xo�Ӱ̷�����;p���d~/=Y�D�dYgU���`��33�ёd#�)�#�'�E�⾋�^o���dC�#z6�E��+�Q$RG��C)�["ԑM���,��
����
��Me�
�	๞��P
W�c)ɴ
�2 jpp���l~~+�6��5EU_�P5W���)
d/��l��'�b�$��Ys)4)4�o�7�[C����y���w'n�M��$�T:Ce�-��Ko<�n�	�9��F�;�����V��j�,Ըy�"���o��,
2뭘֜�	�`��f�w���������5m�R�ńFե��(z���݌��+`^R4H�H
NEEˋk$��`��+�Z��vTIv�
+jH ��.�`�oo�z�R]1ߢ�ΜR�i�|�I��>S,9�tw)�h&�Y�W4�+��y���cR��A'��?����N�g��O3
�;~�U��q�
%����X��R&#��|��% }�@P���HMS�t��k��-���x�e�
a���e4���}�7�G��{��@�����xo��
�F,��Oy�R���p�� �ŀ]X&ՙ�XA#�%��.�ڢ�
�"���,���� ד�ԗ�M����F�{|��Jڗٙ��MHG4�-!aq
6=j��xrQ�@��D���ӵWȟl��)�3�xDET?,
ķF}O�52������ڤi��|I����
�DM���,!bD��� �q+�-�4����2-�r/��t�yƅ�!L
��x`=�����b�o�����+@���ai�j;C*6V�(Xe������oc~��w,���l�(K��v�BT�<����6A]s�B��(
f�����n�
9Fr�
����E��p��宻#(�b���AC�H���oཊwtX�
+�
�5~v�
J�@Z�d�h��q΁Z��a�9���0��YC�~t��Y�>��8��+\�yS��-��G^�(G6uo��j�k�����1J��ڐ{��A��%K�L 9�C*�_�*)�v,�(?K/AIO��yXAf�VB�[m��2
����B+`������_f�L�sp"\���;�:��h��ӭ���
+�$��W5�T��{_Oq"�ŋ?��5���L

?zf��_��^/���W̊�ȉt�:�*~:�I���=��MVI+
F~�~P��X!.ş{�s��U�`����ih��.��d�v{���_b)�q���,G�n���k�&�{i��5�v�>�uh���Ԛ�� H�����`j�����&������������{�����|��@Ż&�9-P���l
!� �,��-J:���
�22�U|���;��~�� �[��sՂ��A,�ɘ��i��G�s!����a��9��+;�—
+Ǝ궒��ۨ3���t!�L�����+*�3�Ȼ�
8Ƒcd6�X~�י�,`.0V�	�.���0� ,`u�̃]��p6���|��6#��ߦ��4]�36�g�5
aܪ��d�	tnM��R}�f��a�����_�'Ţ�
��(hW|�F���컷"#
)Wq`Nb��3��>x4i+[h�6��*��	�Қ��C2�}Wȳ�,���������eH�$
0���A�E����<�g��A�J�<����q
+���u|�2��,8V}����5' �'3��'xam���"8r�������t��A0ݕi+��kڠ`&[z"��O�U˰ڽ[��)!y�\�6�?#�Z�r�,|?��N�7{P�,�$>�.�|@�@��jA�>�h�	 ���@�h�e�=��3�ʘSMv���A�=��~��X޿��4Ё
�Z�oҒ��á'޹"z���gHG�@�� g�Ug�z���
7"�����eE��xg"��p~}Zy��²t��⊘����8!'�20��$��͈۟�
h
'9|N��(}�a��*`5p��n�I�/��4�k��p,�H��z�!�,
x�]�
1�#/p���q�'
<��D�%�4'�WDQ\Ʃ���g�=��&�7�8�	$]����Q��:��{�K��0Gǩd��Z�C��[$�e.�?�S�:�r;�}f���{�E�z
+������_��*�Qp��k�4�J��n��܋η*���|@����Ǜ�x�$ݎ�ǽN�V�n��� ��3J"����P����%B�
D'�
�ף�
w�(�h��G�Y��2<���K�
6u
	��<��ܨ�H)�
�>T��ZڠZ�%�{��6��#�r��
+N�N\�W_ESvI�
\
;Ÿ�ӑ;�)��C椔<B�b�?����	g�_�e�y�
6�(��b5��fB���y�D)2R�\Ϣ[�_Ǜ'ܾ����y�5],T�N�ּTDp�j�$�X��\��xTw
a%٤�y��;�Њ[��_޻/�i"�ۘ0y_
�=���Qr��:��J:��V���[yP3�
�G������N̪^\�
6	J؋��0G��:U$����F���B	��k<��M� m�3��v�H}qG6�V/wTȵ����	
��Fq@
O���v��#ԲFb�E���&{T:�<3�SS�]o��8K���u1������"�)��C
�iW��Үb���;Q�4�i"�}�	:�9B�+��
+Gw�
�^��2
ݫax�#3�T�6N��í �x���_�?�_R�%j�b�3�ʉ@�^�{j2�����
{��H�	ѭ��uKP��Q�
��} �j���
��
~)��/pO3�a1�[�偅��Y0Q�����Ӟ������~�������H!����m�HL���
�0g
�l�2�:G8�{������Y��v��8
�Q�r��8C�
F�dXH�2z���
M���
31�xiZ�i"

�Ȑ�k�o�2׉�D�p�?�[�LQ�ᥧ�Ko
�{V�1����(3�}�Xa�D
+�a�3T�a@G3,:���=E��
4q�/���U��
B��!�ú����ֈ�?0 aw�ޤsB�V�ǃaS+PM<�מj�ձ^��
�,�r�PLG��P
>�]�V����E��?��Nt>���G�M
~��	d�
+_��W�杁
p��3��5Q}f��C]����~绐.�Z����(��<
�	>�`p;c�\���is��5
�2%RNx�feA��
�P6�'Z�5�=���.�e�+�aھ��
}OUL��3"Wu���"���
����GHk�C
!�D����D�(�J�
+G;
H|x�MA�yn��^T��\��	�,C��
�KW��H���ӈ�#����л|��?'���7ȵ��ǵ<+܅HZ^��(����� ��u��\�
��֕��ہ�ï����G��%��EM
D�&���x+όNɑ状���J ����������
(0r�K��K�
��?��W�3c����
��PEԙ(ϐ�o���
�� �
PX<ӮR~~���;k�p?RSj��o%w�	 k�c�NTK��6ή32UFwo[v4tDm���PVW	�O����z�e���*ϚÔg�,
+h�a�TIk_�R4X�����W/]�P���
A�ƥfb��cf:JZ5/۵�ۋд�صu�u�(>��[#�
�!6%�3�
�(�=ƒj��y�A2��,��pT�����|�A���@��i��6
�m�>_���2��1�uD�ű3d��_\G�{��ot�!v�J����c��#/���`b���]�
qE
�N*̙���KC��:/�
����k�|ꏾodRA�{O�
�U�_'x0u�=��h}�W�?P_=�m��
���l%�qO��J2�nz�e�]z�m�8U+�x�����}/�9�o氠��y��6
�zqo �f
gFo�H�o���Ms�s���,��]BT�(E�	�����2�S����&��G�|���w��N+�Fg�י`uu��ɲŨ�)5�h���6/aoO�T0��3��i�|��M`�3�!z�6��c+
���,g���W�3 
��# �^V�Q���Y4"��ǁ�e�R�_��
Np��s�
���J�g�8J�����H���A/�6�ͳ�׮+�Z��e��_f�z{��^�����BMZ:@���GA�B��0.��M�� ������a0�d�2���a
k[�q$���"����]+�}(Z6=�;&�ڍC%�����c״�!�3���d��F
�kT���w�S�:��;Q�B��z�ȯ_�O�mf
+u*�9�Z��NJ��U7B�.���Da/��d��6����G��d-�s��[?E1����I��R�aD�E,1�
�:�H�+����I�RP�Sq����3�zo�РO2��~:�L�
�
��ט�1m��݌�U
:��
���w�.WV"(Ɉ����g���z���/4]
���A+�9
+�g�B����㩺�`�/��/"r��}�eOԺ+J�b�PH|QjFr�)��3�
"W��+��@�Q�GLJ���zl5�JQ���o��9�:K��3�����
+&R���^F��iwP=.���
��/o
+"89ӷ��!?i�J��rIW ��f�t��Q��>қ�҅^p�"�74Fn��=��YOlO9;�1�*I8~���j������������+J4��.$�m>�m��F�N��7�p
O��N�~�ȵ!a�����q^�N��瘕q�;���
���P�K5u�jq�h�x�_>.�L�\(I5I��F�>8���{��:җA�g�8~�8~
_�w���.�ؠ�
a�#2эQ�Ȕ2�O~�i���3�.�bM|�G��Q��^�
#���<��
�i��*Z8

+�>��.#Ί�ϯDE��$�UQ�6$��J]Jt����Bx�j|D��Q�x���Q#�y�o2�
�4�0�E��_�8��q�D�Rqugg_�3�:��v:��JF�p�Ǘ��И
e���`�!�UT�r�|5S��A&S�*��/��;��_�U�L�u�aL���ޔ�"l��Ġ�y��L*�e�3��������Z*�2�
!�b�Ae���3Bt��[�|D�:�ڪ
B���~�d�s!�?����r
���'�.
/�a";���8St7Pg-�O���b�2��T˰�����

+-H&��Y|I���
+F���8��g���)�ekH���0���rat̔��(gY%?#~�#�G���%e������+��q�<nq�m�@�ImL��3��O5�Ȉ
s�B&���Oz8/�

1H�C��S�g=����>�t,E
c�(�����rO�w
++�3Z3���+"�{�G�?V'��������
+O���>��⅌��v��8Ő��ѵ�X��U2�WT���wT���x�f��>�*B����]G�� ��ԧo���1t��
O��
g����6���%əg����Y"t�kc�2n��К)[���\l^��'��R
+���`��7}?d�F���Q�������7Sʷ(��o¥��cN�.�!٬����9Ϳj�k�%�f
����:��;
c�
gaS�����0Qq �;u���/�f2����q]��Įx�1|":����:�0����
V�2ve��[����M�q���XB�Zh���lQЉ�#=l�$�6f���z�>��ǝQ�9%�� g
+
��T?��Nz~��_��1���kTs���(���^j+�[$�;c�t�Ⱦ}��o��-�J
+����.E��O�'w��ۨ�$pLfz��3#Mz����V6%�2�
T����}�f
�e�خ�r�(1Y�����# UaS�v�L���ޖ#����W�9J����

4s�#
�������7"ѧ>t�R�ވ�׀Y_�
+�66f�G����N��
��}8o��*�-a��ӜE/ ��٧�_�
��
+�0��U8�ɢ���RI?Ry�f���G�
v\�v�U���Շ��IqF�r�%[���͙hrs&�X��вB�m�w�Å	�u�L�٪[վ��}�/�uX�X��;�����ڶ�Hy�e�F+@"Bf at g��tS����k|�q
H��
�M��Vn�!��CS_O�(��Է��{TЏ�4����� H$�@�������uS��{N*�>
��%(|��W�Q�N�~S �Q������p��M
/��.	{���V^�S
��R7��fd�L�|2z��w�R�z���#�B�Qal��n, V8��i��UHS�$H��5��]�����d��#��6�&��N�IېS�f��o=����÷��j�hoİ�,�*�&�UG�D��;��C���f8w̯��.s�&���ˬ��]�*��]�`�<<��;
�?���N���s�g@���5uY��2���:��Ǚ�8�+�=J�=
��z�/Z:��c�7*�<>�%2������2!�e��7h��Q�$2iPU��-
Z�e����3�H [...]
+�g���� !�˥2<JԸ!�6�^
Nj���S5
ו��ne�R������7o��5Ѻ��F�¶�	����0AA�n?-�
R����.r�hS�
+~8�>�
��[�J�sɏhJ����}?7�
·��l���h���8� S�]匢��.�X
�G|-!�wo�ܮ���������B�#���C�\�yz��=� 
��!]^���Ts����m����
}�
�,e)8bDG٘�}-M#S�V�2�4��{�8��,������p�|-���U�|L���7�Sgb��7oxu3v_0�ϣ�o6a���*�����3i�QO�����9ϬcХ���
o�I�@��.�GrX}�gD��Rs�3����q ���������%
���
��jgQR��UtR�yZ�/�NȞ��q�K���;���4�B���t�������X��:A>�W:�DŽU�>"�
����W��@„����U��i
+Sd"�
ֽ9��{���Y�����
�{���
+�3��|V���V|
�U�
Pt�*�)x�k��]L����gJО�n�P��Yk�-����B��(1ɻv׶���	��p՗(Ċ��g(�Z�M�
+�Rf(��rP
��x����� p�UL'{
+
ܟ"
������^�'���5|�$������
+�sI�
�-��^��C|��RtTա/
�_�r ��]]��G
���_�j)�Ί���?#r�f�e}����"���ס E"�졌"�.��c<P7��+s1ҧ>�a�Ek�(��[����o
;����3��s�N��1L/�����cI{h
��g�Q7BXK��Z��IM�� ��"��En+�9��U���2��aEO入
��8Q<�\gE�_>���[��~��K�^
�CI����LD��
e>O��I�'��YV3V�
-��s�n;g
��Y�Jj�3jd��ˉ���(=��#x�;������ʲ
��W����

�f
�� ��7�="JX� �|������n� @��WEWUWgeFF�?̪
+�+{+���0���f�����i
!NX�T��@�47�Z@�1D�F2��/�
	䢋��/�k`�Q'm�� �r�v�7���+
�JȻ����h
+ G�,�>��R�|ib�ǩ���
�����ރ��.�#�h2�F�+�?e�������9
�05	-�T�~>�9E��C89�z�����0C�\��l�ן���%A~��� ���<Yª���R�����?��_����������׿������������o�������_���������Ͽ����������ǿ����������_]�y��O���
��Ӿɱ���f?� L /%����bńP�?�A���ESK�ܜd�D4��?�
��'�#T(��U�BZo(�t&F5l�����S�`�)uK1x�i(��_�ي�jޗ�e��t1"������Ԛ.��?WV��P�v��|�_�8{(WH�1>)�+��^�"_Mu�/D5��.�ki�3a�˱N��FB�������_��(��K贀�
�S!>j� N��TfpY�ډU�R}����/�.�"F
r���:(;�����v �Q�ħ�@:�4�$��M
�cz ��.S��
�9-�#�y0c�@x�&N���͵�Yg_�A� ������P��ć����ğ1DϟT�W�h
��v���8Pr��c���EYvl�U�'���a`t�ˮ�
M���i*8���~�x�\C��FUؖ���Z�����l�ˑ�v��8��T=ʤ�Y:�p
qBGU9ic��T�l��7�
��T%�Y ��+{�7�H2�9�"4���^+K_��4qW��ݿ�H�3K�-
�c�KPn�Ԅ�B76�~\��5|ehJ�y���0���ߎ%a�V�)��T��!����r�3�����N᧣wZ(
�,;ǶΜ$����~���WdV?��j1|�E�{�
z
���gb�Gߴg��/<�R>�0Z��+~
�1�)O}�n�%!�
�
 /� ²�p-Ԍ�6~=�"����5��`ӟ�����DS�M,_�2���9��������&������~,Aa.�0�"
��Y�@j�p��O [...]
�q�@�;u���I�2Գ
�7��|�m�����e���|
Z�4��o�^
=���>�,Vu�E��E(�Sp?�J��'2�6DT[:�� ��h%����@�%� �3�\�6�Ǯ����M��'LY-���M�����;��}c���
�)I�Hm��He�<QO�A�/��Q��y
߸U(�կ8�~�� ��\2����>�ŗ(
�`u5G��Jt��l6ϳ? Jy�n<
+�aFݽ�(�Jh�D��+�����
�(94��s<�
aFh�-
+�:��[�yM�ztp�����b` �=�vp�����
+I
��b��^�vf�0�����
љ����AO��%ćܸ�w%��;����f-��w�j��k� �ה}HV=@������w�a��
o��EX�B��8m�u�RC@��C�s��<ux�m��:ӏ��f:

��5�Ha 
G}����x�;��݃�r�cP���A��
8�8�mcQ)5��!&>��Aܮ�z��u� �0!����� �!<�Z�����	a�R0C�rj`
q΢�y����ކ�=�^χBd{ੴ�B�9|���f���<0�kq0��P�کҠ��D�WƊ�<[U\KV�� ��u:U�7�aǧ�7<�0o��M��؞�_d�" ^c��t��OȔ6��>��7'E�(ݧ�������_���(o�
j���&j09����+��,$ރ��q>
���2���!����)�^��C�C��b�� �
cj%�FԌ���~K

ʇ_H}�'\����qȯYF)�PE!g�C���.	s��tl�J at L��
5qt�)e]U����?���u^��,�Q��bĺ��ƽ��S.�	4�@�t��P-)�C�A��i�#�(�� VUX"��l�^�
�
I�i[q������/@�3Mj��ZD�[m�
�*Q�?c�!�iq�ԩ��g�I�"rj�Ž�6�)����5�A��R����U����)
\8�5�r7
���O��7��t����6��I��=�"�����Wb�|�.^O��<m2�Jn�1}�r+q��Ph��"#�d�<�
��+������u hh���%�a #"\� ���L���,y�!��5��-ܖX��`��q!��.�<Ǖ��a`t��
+��F���Qv7�@�yG��������@�L
�3��l`�/VM�1�W
��ȬvS��
�P{��:�u����_�h䚉��=��t>3�&5���dZ�
+=�ۯ~É�
���2=�
O��Ag�O�����WT���O�[dn�9�(��Mܻ5Y�����)
��x!�>�����1!��
Ѱ�]Mz\M��
I_���#��k��f�]�
��)(z�)�sd
+F0��-��j��C�� �+I6�+A�[<�T�Z�WTsг.ϫ�^��N����e����$}!/¤B��� ��ދ�ϭ)��Xȉ;
[P��>��"�؂��ES��KC�2���V�ol�L^�.J�GDف^M�
�Sy��M�S5�a�L�mj*�C�w��
]��R�$|R�Rd((�ZtN�N��.�%֑��hb�E��-�o����=��g��}Ӂ-�uZ�*���}�Т����=�G���}��l�
�~�`��Hz�0��@R�������6�������i�����*���ޣ�YAa�	�N��kJ�F��y3���QLBD��
�ʯ�lDRr:���]t�d�4LD�td��"�x/��,�
a�g���fl�4�
��&4z�G-m�%.��α��J�FՐ[�+5P�D�y[bB�,�8��A_�G����Y~i�Ӕ��ok�:��o{�o�c�CA{��m{R�P�x.嘱"�����&��(�y]߂���2��)��HL���%Q�4�
 [...]
+r�'y�B�R��
Xψ�}��T�!`o��:SF
��
0y�o�;ͷOwU '�
�.ݔf�SdaDQ%�nߣұ8A�8[Xg̱��.*
+r�G�TMDV;��;�#�9et
 3
|?��d$��5�a�����LxT��"�t��	G��K	���!
�
+��A�=�-�T�/꫑�v���ϛ�9���8��
�N�EE��8Ɣ��`�k�>�
����)|���=�4d o��5�Ɉ�/A2�h�Сϑ�-�
+ #9nj(s�5%��~ ҉�S3��$���=��L!�O���:�1��uD$5����j���q�
�с�4�k���P��(c
�OWb 3�٩M����N~F��}

lAJ���C��=QF�R��
?�� �ҞOvZ��.��OTw~��ƄH�9O���nX
j�,Ɩu�ƾ�FP��/&���Gzx����2��0�"�' ������C��
{�Þ:��
��@����M�!$���/:�Ҁd���z�������'
+v
+�e?qT3�)7�ݒi�<7��<
]-�z�	�T���"�A���8�,��>�5��.Q8H��e^��!h,�Q�����i��{�oo?�(�l[%o穘��֌.�(b�B�}�����)3������+ã� t�s3=�y
-�Yb:nڍ�}�

-m�x��}������2������#�5j���'t����DCB�����pZ�
8�ʦS8�x̀�N��z�
�P\d`��mD<��R8��2���@	E��)���r�nAWs�
d$;i}P�>u"��{��Td�R<
��U=�ǁvP�ʦ��t5$ Jآ��S�S:{{ �oE)���M"�+�"o��q�r	2�p��Y.�Ѩ("չ�wծM��x��9=Wxe��a��G(.�~�
+��B>k�!
a�%��ٙˏj�^�A��� 3 V�T�}�أ
�r����ԧq]I��n>�k�	V�__�9şC�(�{2ۮtX�H�ȅ��РՁG�{Q�q��}P�
0}�:G"/ړj���֚�c�Y\D�=!*ZĜ��p�
�JHH1���8��,��0�^'�'
‡_x������D�%SAI�v*���fQ$�*�:�h
>
}O��hb�� cX&�
��4����'ܘ��(��]�Ԟl�M���ݳ
+Q�v�
+� 
�)�%jW+i<�<%I�/,�YQ?^���$�a#\}v�m�+u�f0�����~|\�{�_�zt�~�
+<ٓ�b���
>c�`�+����X0�+��i)�

����:
�p ML�xP�(j�+�1�ػϢ�Ql :��y�
+bW�J� Ș-Z_�U'��q���s/��
�������:Ak
{
������u�B�e���{��}(~i�+�]�Ye~��͇�*�3=��N�l����犣�n����`�8�bj��E���4��
�
؏Pl�
+�7���r��=����]H	@0����nK�h���N�|��]�]�
�%�x�=��uq�f�G�8yY!n���J
J�J����"&N�N����=cZ��.��u���= .m
��Kd}��G���-��["?��c͆�
�labt	�
+ڟ�f�n=�&���
+ށ��E#���Q�&�->
�s���<e�7FZ��\G�g�JC�	��b���qᡁO
T�R����")�r�2)#
+eDH�C�-��������E[�DQ�ai#>l�#�M	iG
���yvF��%��1w+���|�x���D�"�W���k!���-�QЎ}��M�
�Z8d�q�z?7<㆟#!��^
+광@����=��d��Q���Ӏta�b~�O�5�C��֔�}�����1+0����.�EΕ�dY���� ��Q<
oA48���(�#�N�&���N^g?��9�*|��/y���/ ���
�4�R9�:���K���
+�_!��N�T�7���ƈP?�H���R���7���}�.��ɏ��੉ژj`ew���Ħ�
u"���Fs�.�\���I�
n�/p�tSP�
.<� ���k�W�!��`Am*�+�E��U3�Dh9�J��W���l�M����j��~{��B���e�GO���Q=c+����m�oK��)��
XȐ�7 �
�*����'�d��)����q
�[?	�+�ؤ���M�P����:��ûn�Q�#��xH� �� #(T�

�
+� e�#8G�s�%�T��}�D1��vR�G
J��{��oWL�$���ϴ���&��3<>�LN�.�4�9��=�GZm�j{~���
~�k�7%���LL�p�>F~����(#At&�H���af�+\�B�����!_�
Q�����m�} ��t�P����ɽ��%�&�������0�w��

+�ïƂ�L��O�7,^$�c�”���N*���3���L�����)L�0�~�ө�!ԡ�+	���?�>
[v�9���:"
r �xJJ :ۡ
 ��s�V�팀�ߚ!$
}(�� y[�_cO����ʏ`s�߳�/��#
�g��
<@rH�����Дg�I�.��M7N��67���=R�RV(7�q�!��j���G�������D��*��"��бOv��
+�̈o�
i�t#�F���
{_n<��NI�
Q9Lo�&.��2��eZA�U�:�R�����#��?Ԁ�het�����B,KW���V@��TY6�
<l��.؛n ���lzO��y�
+@	͋$&�����B�{���|D��{vĢ����)�t�
%AMy��LDa;��F]<�a��
 � ��E�	����
��E��G�_�s��m�*�0|�Q��N���m���`i��1�aJ����b:A�`�����B9��{�*���
$99Ub��2Y�2��p����7�(�@��6�0�5�L���l�ˍ�
��[q���(�Σ1?~���1��n�~�=Qm:���/��-��rO(�,�W���`�f�
+�5`�!lꬿo�6DZ@�������|d_է�a��A	޺�^ThU�I��zI�|�
fX��$��Gg��J��k�=����1 �
��p����D}@�2N�3xm%�
/^%W�V��W9��I�L�
�	���=́!�5.:(�ia�bG�;JhO�x+�m���-hQlo���3ʭKO!:󴘽�
&�mO�5z2S�F�c��B
6$ӈQ��?�
΍V�q%xD�r�SЄf6e��IEՠ��?ӑ���^0�([�U�s~j'�T&��]���q��{"l��+)��G���Ο䲜�:�c�iO�(z�㉥C2����`�1W
+�y*$�s
+`���<�i�"3y�V�.�����_�<�	|A��@J
Չ6b�2V���^,��`�9FH/�Q�*�?
+�e��
+I��Մ�}
˅i��a� �s�|�
�@�6��-�
6:BP����`H���!b������zEWq��6(ʕn#�Gg ��d��Qbγ�s���.{Rv2�h#|Y�!�#V"c���F*O��E���M���p��G���Vl#�7���m W��j%.���Et�+[���R�y�&VC!�>�UqZ�H�Ȕt!�%�P�Qd�u�<
+���
�%�1!+]
Ľ�J�
4H?��~���|�~U���ҏC�_�����j
,5� RHk���4��%����3�k�ݑ��٣X�u=N�̒
+�+�,ީƕ��	�J���N�K�9Bg9`�����JO
/va���7��@�Z��ģ.r��D
1i��D�@�Z
+v}Aˢ�sQ�t��xM`
�6�,��B�n�m���d%JI4��dlQ
���#V+
+��(�Bu|��`Ѽ�h�$G�"Ɇ�v�3
�`�0 X�a��&
�H�����
du1�`$ ̮��7넂
)`��|ͽ�
+��a>��C�Z
_`X
w��c>S��*i-�����L����X�O��ff�(�� ��d��R��3/"B��
��^uo��4
���#슈^Fm��^�
9�~[8���jX;�WO�R�����jq
+�Q���-Ghx9T��w�^��2�C�����$���Q]'�\�"��L>J:1�=��
��
+�#�
�%`5X-YkS-���4r�#J��$�HrTs��
�
5���M�[F����I|\M�J�.4�L+v
<	�i�GY�
�sO���p�q�<��|��
��u����N�{K
���
��s� �O���ʠ
+WF��tA�(
a�|Pr
�G�
)nR���ZKēĦ�*a����
*��@�t �����\_Wz�ѧ�J
��<`�S���5�kq�E	���著�+�nt��Li��h
�`�f
�S
x
Z� �
jF
+
+N���z���>!1�٦
	{��Î�ڈV.;�k
`�� PCR,e� <��Uyr�'ȁr��mE.~'�D&��C����2�W� ;��'
+��9�9U3^\��
��(�B	�Vi7ɇ�P�;��bc)���Y!��
�����f��\��
��:�j*����
������@�ˤ*%�
.v
+`�-��B��[���=��/�nP�5��82��2�qp���������N
G�R�)������
��)�Eg�*i�YC��<+:
����^��' F�0�FIE
+�<��h�.������u�O@06����O
�������Φ��iY��	�H2m�"��U��g�#��	a��0���fxR#{�A�_PG�R����R�ް�6d�sZ�����ي�q9t����V6���j}���cy3K7
��`�˰Lh������Q��f�W+�
v��

�4i:�[YDf��)���=@F��g=C��D9��e�ٓZ����Gl"{�/#v{�JG�z�'3���-��5Uh�`�1�¼������N�8���v�2��I�a�6�砳��`&`
�ê�jSAp�����X
+t���1
d���WB0��J�.� �h�c &�\���7��e��X��B�(ۓϞ6Z�0�Po�7��/�ͫ����Bc�z
;�S]�y��<�}��o�ྐ�9"�T=jT�ׅ�ޝ-���.2]�]�J� "��J4v�����}������vϏ
#��H/������O$� �D�4VR��7��i*yk��Y����	�=.*
����=R����MW "�t���
 5 ��?�
�i�����&������f�*ˀo�z���-t<!��<�7Rҵ^Ɓ��O��4��Ũ����i�\t��Z$viP �B�
��ÔN*WP�7�O=Z4�d@�����qJ��Z��\�]z0%�q�bIЛد�r�W�E) J��
+@��Vf
m�b��]�b�;�f ɱ�G��f	��^�Œ�MZa6�a�������ljL����ԟ���I
zg:O��< ��E	Rs��Ŀa&R����
�2U�5O:t�uq��,�UG�c���?2W����z��L��%rʬ��%c�gQ�þ�P�
�P����	��4!C�RĞ7P��@e
��yj�;� ��Q��<�9|IF���
?�Ps��M��:�}��rz� �z��,є�&��@f]�m�uO�=b
+2�fە���|��[6OCL-��-I�n�=#�!��2�ưE�Ţ!�~jf���K�*���n�T
+��~���]�i"���p g:���0��`������`|H4�� Wvbv�=��'�ٽ�޳���WL���
�h���݇Bf�	aR�z`��2����
+-+*�4v�h��鱟 7��I
��~�f�i#xJu�5N��ދ��8"�K�%]Y�LI 0��J+���%=��H:�s8\��O�K��2���PM�p.�C(;j�D9L��q��a�)��nmAJ:BQ۵�3t9ٹ� ;Z�T4!��z�_���M�� ���P
N���� h�*�p" �.:���jh��ɳ�D_��
�I���1[R������qhS�P�� b`cz���
gU�4�A�jF��z�&5T�P"�#�4Ak��`��j��CQ}���}p���(��:���>���D�`�h�f�\Fkϩ^�
��te���
������E�]g
p�z�p����v
{I�RPG
+�90�i���>��١kJi�"����.�OH��.�c�7���p��,9H��fe�B�5w
$)O�{ZQ��_娫�8�*��s��z�,���8����"b_�m^U��@i���E�l�.��Y��4lqy���׬*��2 i+6Ӑ�.�v���Q �F���J��D�e�6*'���/� (���@ݽ
�0��:���-7���H�a�U����
�W���,���Ⱦ� �R�(?�(�^gUà�(��5���:rq&�yQ�-ұJ[n�O0��
+|��S�F>�b�P��s��P눍g�h��
*�	�KL���l/ݙrR2]�B����A��`
������O)
�E�*ݕ�~<��"�^sW� 4_�ݫ�p@��
+���L���Q�#��m?���𷄴�ۉ�� 8��R\�mϞ0T�t���V�:�,إ0z�L+��H��k�D6
j at Gk�NB#�_X�O�P(͇�?F�B�X�ByH|k��r��j�&�PaD�BY�
UPK4��UCma0C^�ܩ�|�ӭ����?~C�V#�)>��Q�XQ�!t�q��N�?J��:���q���ӱ_Y�c
8m����k]筅�A`t��.j�bh
�l����pE��h�
����*M
#K�c�Y��N�R�.-��ל�#�9���E�	
+�p�!
��v>:�,ca�n#x��[�H��
!@�e��&O�7�u����(�G!���+a
~Q{)����s�������K@�B���������
x��u*����3c�*B�
�
�-�c�BIu`��i6�VVJF���3�V
�� �I\�$�d��z�ϐȩx���r7�J�x���ﯷ�s��o��W~� 
Tk]gK9B��MSh�.pˢA��p�b�����p�f Z{ [...]
J�l1��/
+��8�
r75�
�	"D�`P�9��F��L�J��y���W&�WB�����eq4(wm&��@�%ݵ�A���c5�u	o���<FH"E�$���=�q�5��jߨ+R��
A5n�Ö�0�퍦�HSEO�r�a	�9[�60؜>��PTR�5��WO)tl!W}�H�CZ��V�7ie�,0};��:5��sp�b*�S� �
Y9��ʖ~�E����*\+ܔ�]bDK'���+_�I�4]�?6�z
3�
+�� ��ڭ���<�
����yZ����
3{��e|B]���ʴ��
�g!��0�
+�"g�|�K
$iכ#�Y��0�
���h�}�Bv��gc߲Β]@<\
�N
��EƅlA�-*a����(���*�ka���FƘ�ܞ��Ctd�	՜���Hn�%Hw���b#l �sn�:�љ]wW�l��9�z�����V�A����S3Z�D��1�� '"ԋ iD at 4{$�z\�Ӏ����{Ы �� ������Qm>��Z\��=��a�U6W5Nq��,�Z��
`,��)Dt=Dļ�A�
���S�%����\���s	�$i��(��
V�:�2F��K�~ՠ�,��	

��������D�/{k��wH�Ns�2�Hl�J�:�Y�WP3&
+�S�cED}e��j飃�H	)Pt7ގ��ZLܨ�����2kV:Q������w�o���:�#�e{�|@oi^F-�?�9]s�yDY�q!@tr���uzt�OE<��y��a>��Z�.�oT�
�d���Տ2�L�
�BI5�>�c�.ER�j
�lr��0�l?�
+�0��e�q-�7���-�����#��F짳J����:;x�\Q�i���C��j�a�q
2`�Z�M'B�2�VtBx�Tt@�<�Y��l�
+�:駂%UH(���
c���(��J��J�
+�C�I��q݋J]��ޅ}c���Ҕ��<Tw�嘰ʈ�t�l��la��x�MO�%S�KK|���nuN�F��;����q؂��-���k>�:V����GȤ���n؆�k���xz^h$0WICT(A�+2�O�M.*��a��s�|��CuW!��3$�jj$2���j�;��8�fc�Σ9�h7~����$5�~��+���כ�{�� �TI�?OB)q���)v��5^l�
+i ��T���U����e�j�l`A(u�4"B�
�ƕ��%(�
W:�����+�Y��Q�PC�~� A8��N2x��ӛx���
15]ƮF���,��pm��7h�И�ϕF	K'�NwMF7� �i��Z���	�qG�m��e�_�L[�~�
�JC�����G�N��
��
+Ӗ�N�P�B�yF�p�O���T�ˉCXa�=���4�u��Xǂ͵���~H Wp0W��� ��(�<����2�W4�J�Ӹ����V�<,i�P��� ��(�� GW�M��v/?�pkH%6�H��Տ�(DƧ
q�O֣T�iR�M��
�ݝw��jڑ�N����硽V�^�G��+o�Pg,�~��UC�Y�Dž
+fr'�#o�X��w��V]w�ٕME<G;��M[�r�&9�J�m%��'�.T`�� ���hM��L�Gr�B����v���t��V`�W�c
�o/聆�"f�v�
+զ�\d��eF���
����S���oJ�+	�*��p`�\{Ja��m.���.��+H�b{ӕn�r=T��ml��3�#�P2Aa�/�H:ud
��#[�
j��
�-���}
v'�6؝��
ݕ�
UQ�|$.��%�O�a�@l؏�:�M���H��0ۼH��Ox�O�A��㺠7�3jXk�#s�
+���΁,^ {>B-�^��(��Ŭ��Y��7��v˦�
���
w��L]4Pڅ��F�d nP99X�j|��i�v�
�	%\��dX�uI��
�p�k.����Ѡ\
^RK/�t�o
�r��k�J���<Nt�
m"t�6�x���/��[ *h�T�P���nհRU���Z��c����z�R�E��
+]-���Z�|1�dD`��t+o
I��
H��n]���I�}� ���ӑ�
ۂ!J�i�/�–��S�>�i?�o�¸��*��b�>�n�!�ǘ�8������F�-�l�8ʓ9����zD��B�����Q����L�`��`o��h���
:@�j@�Kk��xT0�UK��D]�-D�83MϞ��̲��|�-��%ך�^@��4[��I�Y�r�T�ն�I] E�rSk���$M6�QU�<����];[z�
B^H��v\��o�آ��䆅L(�ZĬ{)YO����G����
�y�轉偤A
;RP1�S�f�a��%�8Ѧ�3}�����gݞΖU��
�d_hT׊pմ�s�ml����ԟQ��2�
+T�F9EԼ����WK
 T�S���k8 �2��*�v�z�J
+�FG!
�!̡�wB�0
+&��
�h�

X�頰!<��N'�b�\+4�m�3'��5zڊ!.�����gC�b'ᓳOv���#���}Ϫ���[wya+�j��J�A��_��o��_�y�?a���� S�
+�(3�wQ�:K1����A�a��Q�
+�[�OI�9�"uk�؏.�<�(�����ݿi �$��b��r��Y�_��^�+�n�
Uˇ!�٬��YP�t=H���|b9�<&"�ը2������&�f���1BJ�����hg,��6Q3�H{]�� ���x�eP�6)�9 3ԭ�Qx��l5�FĈ]�pcC�&�7���:�K��=G����8�Ew�.07b�:`tl�H�`<0/������m������D�
�x�搻PD)��|�W�=����\�u�gF�$TY�q��B�����J��f�-��ǜ�Lz�cV�X\��9
��Z�"��L[]���7ٓw�ІM�Ӏ�<��r]lG���3[���������L���ǭ�
 ��'
�:A�[�e���<
�����b}J˸�p��t��
V���9�
�~4�Uͱ(�ꎳ��U�h��HK�
r|�*V;��f��G�!����!B�(?�+�E��56����^�5
+P�PxM�JvULLv�\��:_ ���F��ŧr�-`.��'��ֲ�e���[�G�
O.�u�h5�u�
	*k�C��J|\=�Ճ�
VTj���VcW�#&�gRhE��H?��E=LM˹���D/P������z�1d6�1��\�L�
ܞ
SgHΗN�����3V
ޡ��d�|?����U�|�B
|�-N#��DfDG
���hU�z"����U��c6
k
:����AC=*�\�G|
�oQ�]�� =���W���h=*N2$]���t=�
��1v�u`��c)p��}
+l�/�)ļ��=ӭqPFA`F	B�#��C�
6�`V�Pg�
�e�i\U���e�����z�X��������wp
5"
23�Z��y�r�x/Ǽc�M���r=	�q�5�{!��%X��p��_⁄
@*���#�tخ�J��aog=J߭�K��7�+~�.����=!��~���\}=���Y�	�!#Bu��\TL��4R&Ł�˽l�?�z��L��4t?�U�����
+��@8
�r�=tΩ4 at Y���&y/�
;��q��#�[�h	����M�.�<?��i�e��c)$�P�
o���'""Q�PD_�+)�
+�2ŕT*����0��٫m�7�T���
ɜ��x�u\kŬ�(5ؤ��k�����=�l�Y�
����Nkp
'�1�,
���~Z~"k��;�(���~t�ͩ

�UY�
j�;�\�X��9}jW
ͭu����T�[�z�6c+!6ݎ�����_�Q��(���l*D���-��%,8��
����0�N�
+��@�.9%�5e��7�l�t �
+'��31�٣+_�c��_��[�Rǫk����&lɾm(����ԛ��_�m�M�?��5!z���zv]b�!��!��'A�5-udm/���W �j ��MH�<.|�'p>NB��@�d�V({�D(�}��'�)����<+�%���
Hy�#!���,�5+�����;��̓~=S�m��kBM�r�
��S!�*�
+�9�#b_�O糖�]��(ғ&	
wE�m=���,�W��glc��"��4��ÝE�8Q8��O9u�
�.�
�(�� �͸R`,�:C�C�="�r�O鏪45bt>B̡"e=7T
�'�ӊJ h�FDg��%�K��?:^�gBS���x�'�
��5����� ��"��M
,�����_&=��ꮢ��Y4�[��������(�)���_�p�,t��'���
��	��2�	K�H�*М��	~|����fƷ�ߞf�����Q
+
�,�
�� J����
�2���e<CJ�l�z��rou�I�]
f�<
��
+=d�,����WS�:��F�8hk���4�� �R�����At�e���*T0���9*�D����
Q w=��-Ex�
1�3Z���q	��ba{҅�r�2��p?�8���GE�R"�<s%��w�)���
+O�:	�E�N�S1&���)I7it�f`b
+�s/�F~>d���i�x}��1����&�4lU����6�s��W��=J.rخ)�# ը��m��I��g�"�
��\�N�^�_
�=���BM�:�����x]u�����Aa�T�*��p�/��
������a� ��+��[z4VC��y|C�PY�ۃ�Rp�]SVk��q;)@��9����ҷ�0j`vz2���N(�Rq_ڣƶ�tcZ�E�C�5*k�9j3J�i��9d>�U�O*�=��VJ06����:��
���붗��x&zw��F"�U�'���
����z1<.z
+
�[�aD����_Hh�I��t�`86>�q ɝr���ꧼ�:
����/�1jG{��`�kY ��8֯��~c}����I�4��!��ُ/6l+S�5Ҭ�r�s��Ax��wu��Χ�;�C0��-0Cp��'V=Usa9%�c���3
���{�u�/�=�;��G)�lI�|y����C�<����*F
����>͚��Qw�
��ܔ��.w�t��ͱ�
��,S:>;y����<�P1��%Qy�$�2,V>�ǣ^I	
+ at S=K��
h�8�6ī�F��'ece�[J�M�]�l�W���dda"H��x'��  �2��	|v���;".����<5'��F
no�;�F�"״�����?m���=_���d� u��} ,�<Cl�
��g�̚��)>
k�;�F?�=���@�,� l~u�[z9!}?8R�s�5�v�ra��q~�����쩊ȧ����0%�o�W{��m���F�NΠ�h
��.�#' ��U��H���!�k���$�:J���{4�s	Q�J
+(����WҬ�ί;�,�TN��
?���0�Hz1g̓iM���J2D�Hk��ޑ��
+���~�����s>+(NJ]�t���qۯ��d�9����ѻc�x:��}�r �P5�X�k�X<��" ���
�:௜0,	�S`�L#�J���{
�tlU�/�@l��8U��|��~��2%1a��dѲ��8�
��o��(���ҝ2F�f��3#��]
n
��c�|��QR`���{��c
���
�ry�oq�{;p�nAKn"(�>|����ǟ�vn�e�����t�{�(_��'Xv;��0}h�̝?Z�)Wh��R�U�378�`J����>������s֖ba�	� ��9Ļ+G�F"�5�+O�]�]p XA�B8"T�{�����@�)ǧ�Vd]�T���'����xS��9�
���h_Mj�=�}vET��c�uy/�&0�9�p/��
;�s�8�����v�λ� 
P��{W��L�8�����9���`C
u�
�܃�W at V1WE��$4T�N�v2��(*�.>��P�� �?йR���*N��q=H�mE	�(ޕ��8`v��=kT�������l+��<�_�$
qz\�����j2(�rM��* ���,����La�d�uP�

+h�E�0�~���zx}���y�8�(C}��Iff�&�XdP1c��_�H��x�\��c��R�
�i9SE��uآ@��n�{�
+4S���~{�C�
P>�=
+~_	qGcQ$�8N>���{ħ��-�تaF� 8p
;��;�V4����-�|4BɁ�>��k:�?���)�֠ʁ��4lWiKT�
���'�O+���!�
��Y�搨P��
h:.�$�LT�ٳ��0���yx;�g�
[��z�χ�����M!��� 	(�������Ĺw�l�� �TO��]����7�:��(u�#�&���y"�@�M��
j}D��W:�Έ|0��L��Jn c���x

E����v at a&6���)���Ԫt�n�C_6�e��K���x2,*/�a�v��G��c0t`ίcq��Mߣ3G�S~�nݦ§<�GLA6Y�pZ�5D�?�}��\';���Pc 0BR��Q=�����R���
��a���I6-��AA����Y_�u��������
���#�S��9��4�� k
��X$n�
+w��%���B�,�aL_5���+��=�64G��жW=û�]��e|P��n?�F�}ث�V���G*�=b?Qz[2�[n6j�(�
��VQ8Ĝ��u	E�րe��( �6&J4
�BC8s�oM��y�R�f�(_����Vl���L����-��<% |��e��{+p�.%�Eã/����"k��S�嵸�n)R�SF"��,�U=�����I6G
)��
e�	�K���v�ˆ""Ĩl��

1�!T
��r{~G�?�ԃ 
+�x�����8)�h0kH�ȅ��̞��ꔭ����]�o��wf�b��z|
�yW�Q=����I��d�p6V��);��`���M�@�?Ϗ+�S��&w�d�����j����̎�
dD�z�/�#"P*����#,��^�*(�ܞ_[�,(k*B_��^-��k����h&YPG���r�o�}g��
+����
+{R�D�Az��ݓP��{���QW�b�i�Ϡq"����n
+ �#�yo��*K�<�G�u�ʀ�!9-%O{j4e��H���@��u�fT��h�1"��”=F����y�)2�Z�H�K����?�5�~�_VY�T[��@
n�
+
Qw}��`�狆㡋��:~�"��V0̓
+����c����̷F���m��u�w��\f�C���i��f��^�N�&��ѐ���
��O(S�C\��\_�Vc�u
+���L�e!�Y>�.;
i�ƫ��Ln��S^Ϫ�Gă?4շ����B<��)�lF���&Уy����������ݙDE���h�
G
MP�!P�`�> ��ɂ�c�Q�yt��ē�E
Zxy�P�] �x at Zց� A�Q�-TS=�d�
	 yd(~/X�G�
"_�l��W%�h$���QȬ��c��S8dk�QcF��LF(4h�G�i�k�܏����!��
�(��z0lN�IV��|iҥuD� %CC,?��j:�0�
-�L�:N�E�&��4_@��RV\�"���5E;#�ug
h at nt*z�Oh��� �	xj��:���|1��ߤY���bO�&�
�z��ՙ�tE���a>�
7�{D
��Y`
S���,Bϒc#
+y�^>
��F^��vN�R��E���ҼL�5��5G@�J���0ϣ�ǀ����YB���}8�^C�fd������7,0��*Ԥ��|�2:#�\	�0��~DQ��0|�6��$ @n�+7B���JY�>"*
+�
�;E�}GY5 J.��+��'��D|����W!8C�u�łx��| ʹR��k�;]�A���}�!@�� �կ��³�ʰ"m6��`A9��&�P]yŸ��b�n��mdk1X��{D�������B�#~A�'�V{_L%_!Z��E�H9T7���V�&�76����콡�3�4���xȫ�[؛�6�9Z
�(F���[��n���烹1Ib��#��B=���j
+��9¯"�1
+����b�
'`F�
��
�t��N��i�jA��<@�%@�+0��/u͓u1�oQ)dE�2�LG	��U4��D"'�M��_�GU4��{��/�DgW0Z�u��s &1
��q�����G�P�&:�5 F���Dw"X/�-~������0�x"�&�#>��S
�T��;�[�MR�y���G1
+����NW��p����QW��quj�O4�J�	ٺ
|�Տ�t�c�
��⅂�@�[(
+��
+�F<H;���(=���`��r�=J���0�<��V~�	�s�p)R,Q��\�W�3,' ^UVD�H�7�~����n���}��	3U���D�	������z�_Ԋ8���7�>&fH�]-�ji�a���r�J?�G�B��0�X�U5Z-X_
��1��:���p�Q����9Hzl�#�g�$V�L^���J����xy
]�
�����#��m�s�ʲ�Pݠ�>��Xy������jw���~�@��RG�[r1��}��I�~2`rp�XG��!g�w��5a�n�:�K`FH��*�R{d�����cD���1j�fz,�
�$�p;+� re6<q��u����
+~��B�f���ţs�@��'U��q ��Tq�Q�G�L���9I���?H��3O���$��?����_����������׿������������o�������_����������������@\�s�����������������������������=�;�l���������Y�>��K�_ ���j�B�߻w01�x������bH�EA%Y�{j�M7�"B�}'�F����+
�Q�Æ��ahl����d�ĉ��8��QTN�^U�1H�Lz��Q֟6. v�V����R� �h_(ۓ��nF�
�Q��
��4 at iq�k��
B�
X$�
��A���82e�@���Xq�̈�) �� !z
+ْu;-ą57�r-�jէ>~��"
)�h��

�G��2�
����P���%n
�!�Q\��d_� �WS���$�Ǣ.�[=#�
(D�oa��b^!}�xRʴ�i�O���� �&w�bw��^�"��g�AIf���9�� ��Wz���L��Ƭ7Q
��PjQ�:��@�4��}��4@O`H*7\6���_�OG���D1&�!`oD�Y��^����;����`&m
�BW({Oc��rO��
C�6����ӈA����[�B�� ��8*��8����
�
+`b}�]!�E���~(���@���w�|�4߃�l�yc���ީ��A��W��i4����v ���|��a�
��q���+�%�t|�ؖ��ЫsC|��U6
+P ���c���z���\�+�.=f�=�j�VR@{���`KD0IM�c�u!Y��-3�	��LO��Hk��#`���w�����B�B�hb�u/e�6\ä��Ճ�'��R��,Z-LJ���fB¦I�y�x��Lr���QL {�K�HId� ga{��W'�G�pb]x�
+�+
��x��E�0S�z��I�>�ǜ��5�_�[h�I�|��؄
)��E���~��6T�v�y���Ҭ
+�
sH��Q493
���pkgv��x�,U�ɒ�k��y%A
+0*wR�M!^�E÷��h`�w�w��F̵�{����?sHpGe��D��֟�	�
��޿��O>�!$� L���@n����`��)?�*�'P����y5�l�
C�c5o93��)<F�d�Q
��"��ZM
 (͇�4@�
����{�غ2�))�s�yJ2�)W>�(�q�"$T�
�/�w�D�]�̡�k�Ĕl�4"g���͒���@e�d7\(DL��w��1��c�r<�8I�
���,.c/.��j����<������~��8�X�'���1(��Y��Q��c�e����7M��2�4Y�4Y��LAD�|zhL�
F�(+�y��/=�v�N�8QV2bd�J�,hg-.��,
���n&<���V_� �6�
^Lg��.	�?Y��'q���-��,#܌JS�Q� D��	�Ŵ�
A�Y�s���X�{�rCa��NM9�)W6�>߂B ���5�:5E��prX��`�1��kg>��S�;U�aLתM�=<�
�݉�i0Q$���ǹ�����&mD8�C�;� M��my!: m��`C�P>^ϑ_[�H�IQ
�Jc�i��/�f<� ��?���|^���
�FJ=��j&��V��j��5]��X�0��<�P��5i�@��J�%Y��K��5sМ�[8{S$?�)"@ 11$���æ�vH�J��^�9�X�B$2Bʼ��>ԙ����y��'��}���	����
� ���d!v�o�.X�	���i
+Z��E>�X�z�)ϰ>�
+�~cnT�����ij��Z{x��~�,:\�h3Lk���M��UC���'��7���uU�?3���t�k 
+zDh��c�-P"�j	�t�a�n2�tg�g/˹HY��Yw���
[{��"�b��,����#6�b�T%g+��Ӳox�f
d�
ĵ ��$_K
+�Xa���0�W�/�$��8<���� y~��{�
+�4dS D{\�_&C+#��d�������W�+#��[@|��_6I�|?
�(���!օ
J��;W�d��cE�31�
�38�]ØB�^�[T������U���{B
���u#P<z��sX�k3�r��s�'5�.x���i����PH�Fi�������}�
w"p*�v�
+՚�B�9�T���~���R���A���&��	jr�"$���ðl��'4�ǧ�c����M�ޢ����@e��sƓ�����瀂F�����ED��:6 
ڇ�E��SP����C��)����uԷɃ^���(�����I�<*������H���]�RK*l>����{NB���S��?�kC�
���t�@ب�h
4Z�FJ�0 �=��W=?�ޗ
��&�q�l+�
+�
��$�"RqK�Mf8���T���8)�O�����qS)�
&��:�m=O�ȕ�+6%5��F�+�)
�IO�>t�%��~�V��m�T����]4Q� ���
���I��GF8��O�\3��
OZ�<��#a*��wA2�]��0�es��#T�O	�θ69���j�*�
���&�[��j�/�����&�l�x�Wс�Ua�eB�8��O�x&t7!;S�	X��j^���tlJ0]���L�.�=�%U�؅W[����hWȊ��̓�l4�#��-�U
�$�l''%*�
l�VܴfF��y,ֲ� �0�՚+�9����1x�5�G2����@!*�+�%��s���<n
)�
�����VA���Df�"ƹ������@t�۬�@OT[��邀�{1�jT_�4�f��� 	aM�,���)l��qq�qSW��
�2�;ˀB��ck���t�C,K{���W������:�t)���D�v1V�춥�^� ��(�� 6�vb%`�n"���$p��b�
�X���$p�)n��ȏ���r��rY� �d5�!��f4 ��IO�J�ȃ�^�����̈́D

�3죿G4)�~�a�
V
+`?
+����j�=��P{�a�Jҗc6-��"�&h��Ƨ�$��<�F�{�X1]�j;e��XӰ�F/���>X&�{��y�IP�G���U����t��)M�B]8:�����Z���$7�-¯T����ǒ�>�8j��K]ս��DN�)м�!l��G��;�~S1�7�ޓjc�V�Et����7�dE���R�(��0Q��R�p�g�W7�oo��R��)��¥ e ud�?E�8���
�'�E� ʀ
+�zܼ@y�IY��=
+��0.A�"�`c��`k��|8������X쀡 (��2���O4�v>���(�����}��yhQC�F������8�/8�����bG�_ya�mv@�Dx
)����Jv;Gx
D$����i
+�J���f"�
�B��H��"kB��ܯ�^*�OR
+�0�P
+d�����dD��P�x\fsc������nN�-"��&D��q�3�k�!nR�U�Nс�}8և	��� �G���i���V>E�("���D�^ݐ� L@˘j�,��^	3sWL���Ӏ+c���b�
뷞�,�{DH(0"��".�-�:���	�7�hv�X�r�et�5*��Dz�mm�=⾣QD���Y�m$�􃩾c��g�W�ء�4�-s~����[�eg�!�
���v�B
Y��:|
:-s}��'�U�XCo���<����]ϥ����������Q1�_&��4�98��;�lq�=?��>�8�;bL����̀�t
p���u�SXPc�}�7��R��X
�A�=�^D�i
��4�K��+α���d������g���`쏒}/H� {w�0�Z���
���|�zk��A�JH/�EĚ�� ���w��y��F�+�vCD���Θl	>D��`L�^�쯣�rR1���H�-��Áv�U`����\�WGZ��[M��{s�v9 at L'HY5 X�z��O�#�pտ<4�q����Y�^�ա�
+nw�T��힗l�+�l�����e‘�{�! �$��E���޼���ܝp�9~~�;*��|���<@+,��%�������a�o�r���
�
P:8�Ym�>�΃��Z�
�`�_��:��;[c�$�_����f3G
+������
�"��b�5

�	�� �uI��|�t�Ye��
��W?���G�u�/�3�6
;����-5!sv5K�Q^����{?:bFQ��
�����i�|���)�䑖��Ð�'Bұ/����]<lf1(+��D�Mp >\ǚ,�i)���4 N�s6%WlQ�x.l��y�yHI~���t�M�jv��/���o�Bt�mQ
�Q��d�T���^��rR�)�5����S�9*J���2���ذY���6
?'+��2�
���ؕ)���d�aT̈��
szD��"�
+�6
J:/!�I2_�I�R�N*��~H��a��H]%�� "r�4ר�h���b��&u��i��A�<�|"3�Ô��x%
@��_0
4Bl<���4����>(���P����y�v�[�@D ��g:m6�|���H�z��ݎ}�
�\��-1l��=+�Ռ��z��b����X��͆Х;z�DYt@�p� ���H�d��~�g4�e���>P �.=0X�)"
+��a��ܒa-��##��������O�>(���񾽬Q
 6�~ ��
����n�9c�ä�;���f��+2^_U�i�
+ $^A0�A�s^
+d�����~��mX�Q�
'�
�/me��w�Ow�3c<�
+5
+�v
A;�V����QH\���u��p�^
�+U
#�6�l1J�tb\H�ѿ�O,Q�
���'*v�ꩤeqG5{z��	�ऩA�D�!��
�W�F`�ak��]�J�P���u�nK�_��s?ُ����l�ӛ����0t4�tg'���Cl��[�j�C�
ӂB5zr�H��G�LLK���9����a�׮�&
p�\����4���Z<���+�hW��H�t"�u���#$�{Lk���lU1z�QY�k9c��W���)
�H6�ި���	<���B��f����
����SC$��l��ݧ�ə��
@����%)ݡsb�Ea|?�.��$_�Z�'��B�N�TǮ̐��o��|
+���
��x-�/�Z���
�w�y̅{"97x���R�3��*Z�z`V<������#��`
�u�]��
?��^�;��>�'t��IQ� f�5
�hcq����14~U�~M���~D��/m�
�fV���Щgp3U_�� ����� 
+�����3�z�Aj����yХ?�`�/��tn�w�<k�Y�nXô��x�_��>x��Ys�tw �� ���T��ׅ,�2����`����P�k��y
�!��m�0��[��
�·���4h��?���c�f9�7�|�#
�
���z�b�h�:�������BD}��}�=5��
v��!�
g
f��A��v
�Q±�� B�q��b�l�̡
��������`��X�
��2-�PO��4�����"Z	������J? �2PaJ(�%�����
+6)!?+v�dž���KЇ��F%�;!9��8��m2>t}�$e�;A�5
�W���m��?��eRQ��ޤ�t�<���Ac���(��8]���܋
���qymVH?�h �K.���r��G��-ﳖقY�P
:�L[��#��)� D�����U}�q� ING��B&֡��r
+��wԟ�v�E��$Me�a�{�LY��<.SX|�N#�i�Hm
��"P^o/t¯�@��ܨ�-��C
�?po�O��ٝ����פmh�7�v
�d��P�>���7c��R��;��y�-
w�]�[>@���k�
+�� �����*Vd#�c�
�ݠ�G	#\��
A��u���O�"/D�R>7�|C��V�9 �
�i?8�����e"�Ҫ��a������(�(&�����p�&��.�W�Ӥ̋�=��
O��ݨ�E!�E#
#*�6���
@g��A����"�
�� �3db�bص�d�n>
�~(�[d2r����*�1��B`���Jx��9������0X�} 
�l���$��+hӠ�;j2 ���<�������\��L�����lY3Z>�T���6nL�c�[`r��T�{D ��3m�=L�{TU$W�[a�
�^.=5���j�`�i�\�-���d�-b0X���h	��bt��*�5x���~FD~���x YC�c�s0���?
�
�Ì
+Lp��	
=�D���3�Q�5ʡ���7�����F
Q��H'���#ܖe����_���#�a�b/\��R�
��%�!�`-�=�O������|�f�
��c�����|8�+U�7Ľ'�"~�cv*�w�� �����{D<���3�~8�8�?i4��c��

*(���M;��}Q��Ƃ�0��
�7�v�hPG9$��
�8da�WI��r��gFnϽ {�#hf
'۽8���z��K�\-1�$$�d}�ը���W"nj�
'���	���"�V
F
uR
+�γ�tҀ��K��b�@)�=�my���{b8�
pf��$6�۴:���a��w樤��!U`�N�O���h�vXz1�Rc/� c��H5wQ3y
� �]ߤ:bgCZL����g�>pդ{�wb�
I\�Ht	**
�?�-�p�J!��w�=^���'r
+�
%K�[L@�P����=����ػ_�9�(-Jڞ�^|��1�$��2�i$��K�
�
R
���ޢH
�-���oҝ��N��5Y��"? @+4����_�<em�wR�W?�i�x�!�ףI��.���o|ԑeL�-y�w�����Y������3 �NH��i�ó3��9��?�(B�f�&M߲��)$穪�A��F��[�2B�Ͷ�oQ��]����BbdzR�
+����P��t�
{
�
��j��(�,� �!���m�Q��1��C�� g5��h.�8e����ط��Q�d�e
+�l�y��6o�lq!j�DuQ�DI/�i�y0�"�Z~��x��6�  T����
)��\}�PE�����MOzT
'�@@ȡ��3���
�Y�4YL�+D����Ȱ�c߳?R  ��������{Q|/r�vfh�yg�0�;5�#�k���U��	t�i8bF�
+1�=�����s
���c�UX���6l>HJVB%�f51'�{�sDI��M=���P%���%e
ps�W
{���;� �ͅ�����4
�F=�;�	�
���Q='b���b�Hv�c/p�+ḱ9ۣ�����tiN�a�f�K���i�B�ZpS�?E/J�%A��v��R�������۴���|`/�J��{r�WpѢ�
������y��z�9 at P���|�4�@�
YWO 7r4�%G�-��9
:��1���K�aJ�Z�C;�Z1�[���QC�a�&�qa6��

en����"陁����\�Ê��m�@���
}P�����@5�B3
;�+��C�q����,�#�0#�y�O��ك��`�
��)��?+�ڕ?�����%��O1'h2�D��􂪶������>�2���&���ca������ ������[; ?ٕC��;
V �yK���z�����G���\�ђ�#CW��@��l;7W'��h��[�9w�X�(Y ��
�E���HL�_
�
Rj�Ub���s�
:\4�F�Ѧ��#��M�`;n*T��L�&v��h�t\�u����`I
�����-'�ͮGoYϪ �����D��kL
+^�D
���c
���<)��j��@�P^G
:9-<�諦?ND��{���Ͳ!h(�u����z;�'�ǘ�O;3��f	�
-�
�����FJXx�a���u�sB������
H�x��C����عd?�o�.h ��bJ��r�-󦀅]`��/碃�V�ϓC��f�ޢ����͞;��)�My:�'�Ȍ�7�U�ۑ��U�&m7�*�V�*['�E�$�R�k�xwS�L ?�O�,��@�f3�K�
Ԇ0�`�d�܁�Ӊ��� FL���
��.*��
�c;l
+��q��|��{�)�!�'t���7�y9��YL̓O׈�&�0� 8i�S�X�ŵQ�
�2ɏ�$��q�@G&�%�a7�\Hm���pLr�ں/uxVN*B��$�t�
��rE�6�O	�P�#����?R�	�E�uڿ/G���Ŗ��y�9+�F&��I��3���R-��$N,!�m�?���y�ix�
���oA�8�M��D���K��J悰j�dWА#"�4v�/�
&M\@kM��G��d��T=�f~G�ʳ����*�Dnh��۳
�v<���>�N�H�-a�۰ሹ��G�O�Gߌ���/�H���G������_:�M�ê_��T�!�1!@����-�5�"cof��H�CO�(�
G��a�ڛ��FYJz�i�)�-� 
���yXV� {JD�)@X*)p+|‡�/�u g&�
+�j��(N�[*P���9�`k��"�'FFp����_%4��v�=�ДB�Xm����Ö��HT�j{&�w��w�ۡ�/'�V����7r��D1�D�>�ف߻h�2�5
t��ǩO�/��H�a�j�!���B��%�q!$0��#8��.#	
x��
�F�q.����]5p(�{�AzK
:Vq�H��S�o�q���4�6�i
�O0��M�NM�V��Y�|
�D��S�j���M�>}���������Wvj,z��)��V�V��*
����/�v�+�h+6���A��;)��W�
���ElZ8�Z��H�x*C�r�^h��' R�K1*g'���Lz@ x�@2�
��
�
�<�k�M�I��}N���D�< ���P/�0�C*=��v�݊�$
���@���Uؓ{��	(Q�����k�tϟ�5����8[�i�
+]A�;-J��\�������H&<��r�_�N�;�#��.�N��h�-T �c���mG1d�iX
s��-׶{�(�=n?,�x��rKBk��F�)���+�a �eѹ���0�s�5�c�.��"14�-���GƜ
�[`��{������rU��κ��8Ȏ(���2R����\1#Z%�k۷C'7ERܢR?4t%�X�0��&�+�D
��6H[V�uR��X�4E/C5ך)$_��
&� X<�k�F"	��j%�
�0�ґ0�a!wa at vPe�� �L�*�ǒ2�����E��(�M����������/�Q#`&�`��UZa�'J�>�5���\3��4BX">�<��X��1����uC`z�����
+��tĮjH~�?� `
F�
\%��g
7B� QW"`�y;w�����c�1��A!L/ �����:P�HJ�xr��� t��/��d�(�/j�'�B��#�Њ4���
�_����?���;\u3`&R��(��hI��{
�[��
Q��iT"�&/Q2K?Qղ�
�|
6����9B��ڈΌ��J��Gғ:�(�!�
W"�&����
5o�d
���s�*Km�^Nm &95����z{;CARc��$�p�ы�s4�R;����M�CZ‘�/R�

+��vj��M�Q�osXe|]Xe-4 T����Te��C�AE��FWD��?����{�s��J���9�5
%5+

WN�%]�z��"u}���4؉�y]i�=B��
}ƻlHO"T� �kȾ�0��
��S*XX�?��m�z%=ϻ��:t|���a��$�`��@d�" w�z��8��sLiA@�!���o�

dշy7���~�%�#m�	YHe�TnOyͯ����Ñ>@D�x?źkR�\�>k�/��:������(UNj��J����i7�n��MN
w��p;b�����=���:�������Q|����
�q(����-�d�@H��]'RH���S�\��5�©/��iX�z��ך9S6uĒP�@k��	^
[�[_0_a7�+��Ȅo�)ւ� �x�U��
+eh���2F���,��-�CQI��p�֓$
B����U�7
m� ���?�A�
��8WY6���(XU0�[j��^�(Sm&�Ae��`#�
�5�:�C9*TQ�D�z���\��L`˥65`�
m���\!t�i�H��}
?�%P��]_ H>3���7�

f���|#gR%�N��lg: �,�Ԝ��V��ݟQܐ��ƨ��������:�b��=evF������� ^B��ҥ`"��
+�L��
�����U�.�?�%�TĔ�,>��'p�~�K�� �HI�Λ?c
�d�ɻ?�z�t =�)������_Ѥ2�y���N
6��8W61C��,y�Z3�_S���h�Y��oH,ĘCUd'��F��2�:�~�?K�y�A�[��5R����_8�'�-
�`�r}Y%��F�{���Rc����K�,�H��O���p
urT�J�N�6�BT�
��0��� �����<�y0���V!a�S|����y=�y��
��<^��:��?�Hu�v��7�1��LH��/��53ly� ��X7�]A�;${��a;���gz���ݎ���o�����2s_E�?���*�r��M�
+�BؘBv�R᧦�A��[�P��c�|4a�r �x=v�?��Z:m�AuI�o(�� �h�
+iG�B4O�:��w��G
���
��
 ����<������j#�׽�0�	[r�+���;�������C٣B
ÃF�"�l
W��l� ����=�Z A��W���qք�9
+A:��Xlꇩ5Pk9
+|:2��Z��
�d�j�7a�(r��K�rfȪV
�$�;������b

�I�'
�־
jVRs%�����qS&�
�^H��;�c5�ɵ��I�w^��#��F�4���ng=M4\\}���VЗ:]�d���j�V�g.�0�

�!�È�$"2Q��>'���P������A�I���������ڀE�+�
,�] 
��o����
�g��!Q�ӽ�Q,��������'ð:j⨚�{j�5��R�t��%�L{@c�Yƅ:n�<n��qN0�K���5THBPZ�/D��a�ƛ ܇�M�0���&
~	i����vr���ӿ�� �-��+�� Z]rPu���Q@�^���ߑԺ����F�%
�z
��v
�
�
j3���C�F`�0�b`�̠}����K�3t:	�TǤ�R2W#О��xd�B�,@����B�d
W�
m�r�.���[�%窫
G7�} 
 ����t
���|;s#�P�LH
_��B�H��
�����`�9��0vH��s��Oqa��IZV}�&n����
�<$�HR��������H]���
�VC\Ez�7���G��D�D�덀�A�י���.�����W�יȿ$̨7�0ೣ�p?@, W��u�����i�-�����ų�=�l��b	Z��Q�h��Z�k���a0��7��E�f%QV؃�4��?�r)>,�`d���L~���@�!ޜI��Y*�T��A�x�3M�!�d!M��\��v��4*,
��` f��C�j�x���^��ع��k�wC�j��@�<��)塛)\���A%����=�q�< s�W��{��+���Q����j[��
N�}[�#��~p��'a��zW��")_�r���NǍ�O1�x*ұ\�j�S���4�y�
+O�g���JJ�@�A�]c�
!Ϛ�I�)��YM��
+é�ޱ�"}@�34fڮ
�i�,�����
�~y����Ϣ�KJ�����)�~��dQ��'
���B����
|��]f�;��ܯ���<
�X0�P\s�������ݿ��ŏv��>�Y}�I=Z��IP��ݹ'*�6|��:A�1VE���J����uW
�
lt��"O�O!��aWk�+�$Jy��$@�����
+�z
t
	\4�@M9H� ��U_�t��4/d���8�
+}`o#g�'� %y�Q�E�8*=��	�v�3�
�
+)n��J��k爙��ֳ_}e��8S���aw��-�Iu�8+	'2= �Tgؙ��A��
��#rf1�A�S{�ּ�Z�k		m�Ե�Uߦ��Iּ
	=��i��
�La��?J'
c�}�w�U�3h[�� F�7z�[�P�2�w at _�e	q��
+)m vp���e'S��r��
db

�V�ᜈ��qN�~�O�	֒{
��B�/ �� �H
��h��[T��X�A�8�	;wy������5c

��ڌJ<S��[��Jl�������_^#mݥ�I���e1F�Q(���P��/{�v�������� }��Me�w�>$����)�f�
�rh�IƢaBD�GE���k�
=O
���B'"cJ���Y��
��J�����3��qg�Z�"���^Œ�Ux�tTz�:��
ّ��!
+�d��$��Ҡ �c�&+]LߣK��^�F8;V
`���Y*Ys�����R�J8gYU��Qū~���O���I��k�p���)��G.�tT�zTX
�Sg�'N�=�C�s>�ջ^&_Y��
4���2P�QE���
+T��#I<
�P��S�`���_#�s���ks�y��f���;�ޠ��uL�/�թ��Cp�ˁ��B��J�2�B��E��px�F������+
^�kr?�e '�����q�$���F��J� ��rNSvw�z���˜*+���ˀ��G7�\Q�
�K�L���7��a��8��-怦8�%�
�U5��X��.X��r�q)9��–�m��g��&m�ZOC�T
��
�"J���VSHp�
�b�/5
�9���}���WT
�{I̾��Y��`�ǰQ��up�g$���l�`��������$�"�����L��39"�n3�q ���aRX�GP� H[��PY>�����a� T��؎���G�D1Ɨ2„iF�E���Z�Y�]-멣��i����a/������1��Hb+`���}�1`w;�i�ށ���-�(ֵM�_lU�鸒e74��
=���]��\F���P��0er3ܻ�{���x�#8��Vq7a_�*Ԩ��A�
v�O
��
�`�	�
+�Gצ�$���������h-��t
wB]d5*!l��8���J:�4�)��1_g�+1�<��4�' m�m�c���	�>�\�=c
ǁ���<par�H

H�J� �~T�w4��E���W��]���#���'�%��DΧ)��_����GHn�t�t��
�.��"K��^R���O�%
���_eEFf�Ԏ �
+����u�̧��z��R��!�?�_��������1�
�v����w^�赎Z_�lU�]�ð��[@��K�����"��
�q���z�T�T{,�cA�׻Z�xC��숥\Do��춟K���Q�:�09�@@�u�AJM�"�����7b��;��l`����<+I��B�z
V3F�XvZD��R���W3.z���ƽ�$֗{J�
K��� l���˂^��b�BC�*���p��D�T }��y8��5%��(H�y7�Y1W�Z�;	6�(;!�d]G�(Z�wy�)�֣��?��ڏ���W���
 k
�
’�_�b����V ��D�9rR	x�Ó�^l{���!��
+�~�
��|6Y)��#����VP�N-fx��v0���#��X�7 J��wD0\�i<Rp�����RZ2!Ey)��q
����V�U�INpZ�^i��Qڟܛ�G&z���b��I�I6{�_��
y�ӓ����4Z���$VD�$���j��	�N�
��(zOwqCx���P��:*
GHP'$Vm�L0C9��pJZi�5����0'*���r
I �q��l����N� �a�f��S��x��7(��}t�d�}��~�`���Z��i��؏������1&8�0^��@���Utp�V�Ӗw������5���
�tt
�?�ӎ��1�������8��f���rf�P�
�z�q�1�^_
	���k���?�g�/<���??��D
�u�/B1����YA�se�Ů��{.��X��K�����=r4O%���]�U���~�r��W����:k�Y���з#鷓�3���A�
���M��Q��DU}k� e�#���x��ey���c�
C�9��s=�
vTq\J�ܵU�'�}�Y��=�R�'�`���
A�($�D\��[��㌄���s�^�OK)k<YB ɒ�jOb�;NXψn����qv�����6�AF�Ԩp���\����$8����3T�ط�L�Q�c��ʘ	
|��-�����5�# ���
3�+L�ᖷ�J
�bRਉJ�%�'50��u%��f
��x���	D�ʢX��G ^����A��������JX'B`��%w<D�
��\�H�~����3���Ǹa����m�r
��p��g���=�G�A��@��ᙎjȍ�sy~8�mP�o(%A����"��{���
d�ch���{�p�g
�i�gP3�k��`��j�C��G��|�a*̖Y޿�\
��bQm����u<+DZ���r|Ș����P���@%���zX5� �E�tp�V����t"4F��]FV��i��u.c@�{;b�>P�р�3<̵�Z<N�C�m\ �=*p h�Lo�2�
I�"M�� �M�aN+r�:P��Y��A?�iM�7�
����h��FP90��- 
���1�S��)�J��Ȉv"2h@/{~�p�ӂ�֑
���0t#�߇�����Ϩ����@,�O��Ht��?S��;�ޤ�G@��#C�'$�Q�;�G18�7�`�tl�u-}P�^h�k`�
`�a�� Ԗ��
�]��qET�)�z�=���/��J���51�ZE�0�
+�v`��Vz�<�5� �
�@���	;��}d4�����*d=j?䥒�#Ѹ����K��1~C���J<��ψt����s�C;W�B(������>"�<��2-:���[w@&��QۇW  ���dR:��L��G��?�}6�2Ͽ�j/ �F<���B�`� ζ䀶1��r)UG��.��B8��I
+�69�亝�g�Q�󦞠ۀ?����`�Z^<C���`�Qqu���L�%#��Gj��0d�v1p
�
�C	m�~
�J׋{
�o�՞��9�D
k�~  ĦR
 �����	��юX�죡4�Ci�&�v�
x!���tu�g����ߗ�ߗ��b=���
KD]�^�ϗ}�
v�#x��Gu_C���y�>4R���nG{E���ܷ����|�mj;;W��na��Q1&%�ji���r��L��6#C��`�6
+–�
�_���%'��8��z
)��Jp�%�S��:�?W�H,���=�bJ�t�
+��R
+`9:�LFf�V�,U��G+��V����2�+��2QTƭ��	ω�dEAn�����M+���E��l��@��)����SP��g�i׋t����
*��#�<�I�t��Bm�ضkO�q
-H�
��D�-A��k�Z@���	9�(��#5팵K,��i4��T�W)�u�n��H�dX:�h��R�JA~�6T�D�FD0'j�^Qh��-Z�/P�(T.&��H�
[/�=�h����6?�l�FDч7E�H
T"����,֛������EW��a,�)'�%���e��f͜(�
E�^����i�X�&B�w
a
�H��W���ńbE����0[`72J��]�6V����
� �:�ש��R8�1��:fr�����|��~LG�"�G�0�Äҥ_`��`��ji��Y�<�#���
{�����D�f�:U|
�@6'ߴ�Z"m6C���ld��7B�o�#
+�#���#
+��ᕞ3%�G�ګ�竚)��DZ�%,
+���/�W]�D ��� uG�s�dX��~�f�\Z�*���� �
���|�D�f}�)J\4��a���]ϙb�H/yE.��=_6�9$�U5����t>�f��x�w�|��
�XE��of��s�ӄU�{�h
�=�pUo[�_~}Q�A	�"�o2l��$���!
G-�X`*���߳������O����"lha��ڼ�a<?| >�%�_���Q��=i}����H����{<Bc�v�Є���.��q8��8�w$ �SG5\<����PqI'� ���{�0�~s��p�P�/&
��N�c��\;�ҪZ6�ٴ
ig��Hd�e�t�� ��À�>+�`,
�Q�&w��+AcG��1
+��$R6-zկ� ��``/QX�� ]��C
b��ID[q{��}q�����}������%xr�0| �	�
+���Ap�_���V|+�0_�}������<�5s^�9ͨ�2�y
`a'*
�R��f�D��nts��� �����ޡ���\J�����‹��������oq.]�9��8-�"�)Mg�W�.��P��d�_�_���*f��1Vo�p�dF�a
[�DP
��ў�9J�_'"Y�`�{����)��rL[����8��^#cS���Z�ha3�G�M�
5�Ci]x�
+���=�}�X
%x�Yv5���)#�
��9|�F�S����؎b��L����A6[�N�02�c;R���l½Wڇ�5���*��ț���Z���R�#�u���wf%tiG]t��`���z�-�}Ṟ,Z`,k��0eWW�e&\�
+2ٯ�}��¤�ܳ'#�`
*��#
w��FYW��n���1��'1�:�D����#Kc6�h�
�0�X3�Ύy�
�a�x��������/2��'�?�+�����M�f�
�xv��S%,����c�;�V|��x���:i�8�z~K��G�M��p�%B���1�=����-�
�9�`�A��ugZ{#@-�1!+^��W������C|�V<��ܢ��C� �����r�E�Y������x�/A�2�r�9
cr�fp\ǔoeٴ�(�3\:|D�5������;�/��Y�Z��)4���[���!{��n�ēx�x��+���� F�Rw
��T���6��f^��/�{?!��k
:�3F�
U=���M�j"�4��y\ym	���t0�~p;��d�wh�#��b�˝��C�Y�
�B2��
��"t]#g
+i�<��<�@��*�Ũ���������rnAS_̨$DR�'��;"R$Fѝ��=>��ȏ�co�,ZK#�L�
a~3,��2�M��i�A��?E<�슡y��>��R�å�?*�U�:��P "��U<�S4�G�gDn폮
+[���y�+.�_�q���b�!�
��5�~��DŽ<��ݹX���ۛ���7��4�?��v���=�}?u�CeA
�����[.k�n;̆N�O�O0��uV�0<�G��S���
��6�G��p)(��}	��X�"w�8T�!"7���o���ҟx<�7��Wҭy�-�K�Y�
�n!8G��
���KO\.��YRk��a�
z������jK:i���%"o�L��w;j�
���s�V�
GԜ"�/�2���2 2�1T��,s?0�Ҋr�w���% �ch��@0y
+���y.cS� o؁�nN
���~�@��*����(%
�++�Eio��v9�P�~F�:c�?��3}DYhs�K �b�������,��1��L/
��Xkm��$g=:����1V� ���9�P�����
U5�
xU�:a����u��i!G}�Y�Sp�J}W
�"^HGw
�Y���"�
�����
!Xh�9S���
[��� 6
���qp&iH��r&})��Q��6d���u�e��N>j����X�͑�	^��|d�!sK�?Q���c��ԙB�iM�=A��8l�݈��w{����Y��	?`��=�N�_��Z�)��l��4�A>#��N�t�

���3�����^I�� �6h���7~Bn>�~��
�Yc�
%U��8Z���d�~X�v�f���|�����UR�}��T{L���ˉ�_D�׽�?#��א����i�(
�"p��e�q�G�
.|4�,f�S%�oܢ��<�#���Bg���
<
%`k��AG�Nf�x�(��
�!@����1�%h�7�6A:%��U6qw?+��'Z�k�4���h���<
i�סA�a4]��cY�
+�ʿS￴�a���e�bGc
4$T�����|K�BJ��q�֦Ή��

�<��H�2��A�	�+��[
!߫��yuLe�;���c�z?;�A��M�*3�ԴM�]�>���Wl������@R��X1D@��;�
#V�����q5��/�,~�p������
O���k
���
yE\�$��n���)�*��� u��ɋ��ׄ�3�Y�=�]-箯<�SY��O��n�H\�A�` \�2�?E�+��������0���=g�U�a�E�
�檎W�{U��'+�B�]H)�B�"eΓzr����? �����qd+`;���W?���Hk١�N��Q39��;��
5
Uu
;F���s��3�6D�;����e㑅�k�"$wR5ǫ���e �:}_�z�ټ@�JN�A�[$��)�
 P��� <�W�a�����-�PF"���X|�v�?�µ��`��Şz�{3#bo���R{"�V�F�f��
�
+ꧾY~�6
���:n�
*�8R��Rgm�]�gi�Y�7���VRY +=m:�V��j@{\,�NZ�,!���^(��eF&Sfa=�]{"5�
!�g;ۨ���ޅ��7J����g����7X_�ڏ�@q���ˏ�.;�P}@:��yd���NE�
�0��'(��^V�rR�k���?D`�R캁�z%8�G�v0��I���T3|��B:��Q׎-�|=?���˧
����)����5��֊cj
v��>�@��:��i�>�ד�侼?,�Լѳ��C�#5 ��&�)V#ާ��X)L0���Zf�E���
���
+����3QO�F��RI�UԴ��Н	8�9�������V�.׽e_VQ�-I%����Ck!L�
+
�
@:c6A
8}� o�����ϱ�9��Kr? ?V&d�-���W
�_��G��{։n�{�s��ʦE�0IO����������8R�8[ #��72uN�,%�Ȥ;t=��P����6d@�
־��8ׁs�.�B���|��C��#���=�R�F��?h]DiS�WZ�]��h�6������|������±^���������sg�{E8�)� ���yD?�I �o��$��y���@�_������+uJ>��Ȣ���J!-U?ޅu� 2ٞ �HM���
~m|��2/���C��
<4n47:�L���b���"V�08���!�&�)�9����� W�����tk�Gi`��
}�di�-\E�F��C�}�C��>�ir��
O�-曶6��K�
�aW� p�
�t�#X�_
�$^���?����B娅?��
H�2)�l&��o��V�ʇ ;R�&���㢁�>�� 
��d,�|���%�K����4܉1�n��ћFEM�C��<���J�c�,�z�M�\�Ԟ/[���
��-V�"����r@�=�	��?| ��;0��%	R�d��e����T\��N��Q�{W��j�]֡cTA�}F�X����"�y~8��G-����S�(��
++A�Q��
1e���,��)�w\6�PA]�ܮ)
��8�}�qY�au�4o!<�D�������a�tCz��6F�-���0�����JEG�)p����/aO
�퉈B}ݏ��/�J����G
i�tE�zQ�����H쇈��ڰ^<��G���~��%ҏ�
j5�W<|��LU�J,���P�i���U���GQ��w��!
��0\�N�N�R��L�gΣ�l�ғB+C��|�G#9~8a��[��a���L$�F0孡L?>d��><1O����R��f�:BtZ�+\� Gg{�i4q�j���g�*%I����3}��13j?��">�/D�8>
���;H
�ψ��
�,�G@��q��@
;S����Ck6P�!�Dɋ�%?pǢ�ս(���t|�Q�>Q{����z���Hh�VK���<�7��
�O��/�IcP~!�6�.������>LQ��+
�,;4
��՝Y��ޙ��i_b�w�~���D��6N
+Vh��/%�KFvQ�G*K���˦��=j�[qd����q�m�験�"8j]	
k��f��u�
�13x���Q�b��d��"��GdY�(�	~��=e- z�W��/t��&��*�~G��u����[
�NB�����´�ڋRP�hx�P^%��#�A� @`�%�
�7 娧��N6E�Yҍ�*�r�M����Է���4<���QPE�Ԯ��<H{ݹT�>�E��~qT��C6|��'���sLZ�K at 4�^d���H�O
+WԎ�ݣ�3�>ߟVNkrzw���Rx��xN�.��yM���-{,H�y��_�'������
vaz?~O������_�o�������?�铕�����������_����������������o��������o����?ȩ~��_���/����������7������?������_\��u����S�����{�K�����h�7Z֏W ��<���N�8Dڝ���QU�5�`�u��?
��A�l�RM���y���"^�G	1Z���o����*e�#��;����K8��;�N"_�Լ�6��`�j�&
�
��1�׷�E�}˙�����˙�<��G�u��2��Υʮ}����;�2�D����u'����h��6Q�4�t�����(�R����PlW4?vȾ�z<��T2v{�Z��v� �~dtTx�a��=U'Lv�PC8u�w���چ����Vz?( =#(��� �wpr�
+R�.��{��׏��m�n����0��R[:rZ� S����A;PȿQ<y<m5�'�M���
�hZ���Wh7`5ȿK���@��(��l�"��`t
��0��(����0r�X��˯
p
���\*W���.����9�
�
Ԭ�V�4�.�kU
c����m��a��[���]`�2���
��t��XU���

��0D��H�N����\��/��߃��/k\Dr�ay��f?�Op1v�J�����u~~�	��NS��Փ
}�ٷx� 

f/N�
q�H�~�^wU?�?1�K�k�,5���L�=�;��iϢY�����>��%M�k|���t
u
��Ce�
cxRE"�ߦ;�&�y�$b@
+(��ķs�!�
��
��I�s8(�'�4飄�A��T���1tƾ���M>���p-���W��?(�)� �]宽�`XX���C�0��τ$
6�����8RPЫf��]���1��!���#��!+~�xd�-�6q���������q���W�E��a��eB�`P�W�B=��pj �~#�I�
���
�(2_�H����	��
��R
����]�Gh����
,G�o��G��e����f"�M���҂�9����0�	��׌��0�qT3��u���͗_�kD��EhX=�f�u$�����9ǣ\x[�.�%F�����Td��fwۂ���$c������f�1��>��!���v�ԧQ��
��M<���<�$O�|������2��*�ƴ��u3�
+�;3
T���u��b�Z(�k�dQZ �˻D�ހ6=(#>�\_{���g�"�^��چ�`�
+xf at -��
���f�sS����r|%1��(�ݠ����m�ȅ?݄�ry�[#b��5B�
�
� ��@��<}
+�SZ��ГU����D݉��*�w�հ��;&C,�If��i�ꔐ-�KL7{�q��G��ƨ�m�>�.�X{D#/}L)��+Bݭy(�L�GaՎgOa�VR����A�N���JjX�Ί~B�\����Q�~�C�UI�u��M�����8��̛hO���x
z~DK�
s��K(a�^O�� �+���EV�U��KI��-
a�oZ�0L���X�R�!��?zE�tި�� �~�
mT�
� wF���ߝ(�}���uևu?ƕ��Z�����asw&�v
�Uä��/./�s&b��ϻͶ

P34O���2��ODWPm_���a��k�H�}zU+C��]X �т��qQ^�ߪ�.1���<.��������R���
+�[D�"xp���.��iM�#}���"t
�=�EDٯ�d��䑧i���^7/�����@>��B
+���
E���J@�]��ZL����N��g��Q�j�"��<>�_�r��e�I ���L@�����T����<hi"
CG�
+���d�BY�������h���t�7_aXS����k���
�r�����i��"x���|g^���o3�oi�k
������ff˱}޳�}D���
]�jK��{�==��h?裷�O�=���ni��}���\u�~�噙��h�v�nq
��g@��
��gU�Co��iE�$Z�%�p��b8hŒL�^��3��t'E�f	D(�h@�1�+2�
?��sp� �?=-�ꠧKD�:�=�~9�5*.��2��8PA
lV ����x;��F4y>���@n��H{�z
�b���V,'��ڢ"�Ą�[�"r,{M�!�9��l8o����h
?
+P=^0�E|�J
+C�1

XvA�w܋q��="�U
=��]l��qh�����O��>��"Аe?%���Ct9�q�G�y�o�I,���:��]��A-�����*�h����?��C�oe
�??��ɝ\NLF)}��
՝�lk!��G"I��9k ׈�����!����J�髴�

3$�/�����r�_t�13����`���uQэ/g��~�X����N�0
*e���	
++�uI��X�a��|!�w��%����(ת^Ӯ&u��.
��|<o�+
C�ۀ�%S�;�޻��ؼ.9n��3-.9]ې<��c���ΈK�;�{.��Cܳ~*sfk3�9�ΖZ^>ĺN�|X��o�ae���M��Բ�?N��D�C];�S�� �J3�{��C�%${�%,�'naQ�\�
�G�	J�v���}Kh:$lN�An#.J�ބtGŀt�)c�/�2�ܕ�cO�&��*��3͞��b���$A�b
��Ξϛ\QN�l���^�
+
X է"����
�
+ ���]�r��M�
 A�똟���B�i:��
tR^���Q^+�6W]O0m��2����n��IЊy����c6΋1���8�a_ڷs@�oN���5_rS��?F�֨������C�p�dB�|z�X,�A�M���;]�r�k��<�5�"j��eW�.36����5������~�Ӯ�χ�>�:%�߅e����
���ґ���;�g��亾~�����K�"�AC�r����n�ۨ5OƷ
��o���r�vz Q��p�^T�ح�
+�r��Hö&�Lr����
����i_"!��J#Ni���gZ�0���ma���K�jJ9��d퇈
=���)P��8���#C�bQ��
P�n�g�_½���/b�R~⥌�L̏��FM��#rm����;
�M���Տ���W2���+'x |�? E�wyQ~�`T[$>��w��=J
� �!�Ns��y8�����G]
��ψ�y�6Rh�
��_
g�MbGP�G3��k�Ż>`���^�A��+�Yp�RD�Q�r^�Cˆ
��K
�Gm
�O��Z��̾x"�I��C�d�ڕ���9�,��-�)!u�vz
Z�FWbo���aFJIZ�7J�T"���;v
ܳ�-��ƈ2�Q�R0KE|V�<o:>�N�gD~�@��󮻃昳$I�O3)��9*�ڝ�������
+l8��cq��B'A΀��Q�؍�d����gC�ӥ>����<���?�r�ݭ�j'�CX�_�2C9g�� �f���zP_�Ѫ�t����A�d)�@h�� R?#�w4-BD|�h�_
k/D����R��?[bɠ�
j����Q+>Hꖣ���A�ȩ��<�}�Y�����i��{Dn٭�	0T�"?�C�r)���j?��8�ٓ<�
+V��I�e~]%i_ޅ�>��V
�lW�a<����f�ʩ$�R�ļs
�j���=g��Jb����
&�l��q�����N�n|��{�1�<�Qu��&
���^�¢�hz �)�	�n!�BP4�H1%\��y~F$�(�BM�s}
ݠ$��N�8i��Y~���	H�1�/�P�m��YI��[V
+f@� ��*�/;�_�"�x�1�o�8�'�<L�g�m�y��a� s�"���'�}h�v���ꡋ/��
�
+r�U��-�1����ү�S���)�4���#���$X�@��ӵë��:�W�Q��l@<�ٸ{~ '�
1�<O�G���q��c���0N�Y�Y�S��u
M����C;y�gf�_���J�ic,De
�ׂK�5�M����c�i'��&�8nz��h;�z�s��e��7�4Z�O�z�x�{�ź���~�i��Xn|?�52��	
�EBj�}K���7��QQ�����ǹ%��r)�[��WŻR�I�s#B#���Ybc�x�L�z�	
��N�
G6��s
5�
+��\H�ҍ��⼡�7��sMܠd�1�>�"UA��8`��G�Y�B�s�}���_��ͤ�������B_@[�S��
�/�沙P�f��έ�]za5[�>�TP��s�e$�q�J���F��
�!"��:�&
�

�
"��5M7I8���لB1�D�a[�E:剅�s�"s������H�KE�i���8E�Q���|�C���/
H��q��`g���7H�N���:0���G]J7���Q�o�i͙�u5�US�Y�ǝ�8b���CI^
'��/P�}�#E�^=2��?�D�B&�$h�
9��o�a5E���Sv3��D�jw���1����"3b�+Ϭm
+�M��G�����[SM�R�j�R��`�O��gj�i�Og��� P|�`M��
+�]����
y~��"�#g���*�,�n?��!g�H�� i�۸e?���=5��i���4�=#n�
���:')Ղ��:�ǀ6	+*ϱ�g(��{��xe��𙁍�L�>�D��Qb�
���tqD����#٥�{6"���s��/l��*��Hc^�l��1����?�E:1�Ie|��t܆v�O9�P�+
��<"��ri���|�~P�6��v��
�C�B��z4S �
Y��-u����k�A�
}�H�(C	���b��O�1x�*sn4u/�Qqq��wz����9�<j�E���톒��/�"�y��b* ̞�
�
+�[e��k�u�<8����Lp�8�P�&T(����<Ѳ���T��@U{؅ǡȕ�ڪs
�|�W89�����p��B��y?�S�
�Nv ��
��u\e�hHG��ae8��ǿ�5�)�}��*�/	��?��Z4�~�C�g8N��e�Z�/�I����~����;bo!�a}^�2�E���*�=�B*܏����7�߽]���J������ĿL��(杮ȣ1�չ��d^<�'��]�
L��۱Z���
R�ߴf���h"�
‚$�!N�a���5Ŕ���Nz��ƨ4��Zi<��Mqۂ�e,k�1c��0��_Ձ-�����֞/{�(w�$�([CS`?��߽e���.5��x,�i��V�9�<���?#��|K�>�u<YC
sx)ʰ8�S�=������`�>�(A��lyLW��u.��,���ҥ�u!�Ͻ�Pѷ�?���[~�DA=T�
+�ʰ��N33vyPJGX�ÊĒ��z(2ࠖH/f��4ĕ�@2i���mS�v=��Ŭv�u)"��"��
�T3�z��r8
+�P��|����i�
+��<��s!�fM��!`����;"*�9����_gr���Y
	$�I#%+�̍�����(������c[x����z�O���
@�D
/�d�-f��v��.y9wa��i5n0���gȚD��ݯ��_D�T�?t�����5I�A��늒,k�
+>�����:��p��c�T �/B��8��}�@��A��hM�hM
+Ղ޵��7��@� 8�빀8Q� �c��
�@Z��ܔa�~
d[n�/����K?�ʲ������ŏ��s�{n���MT�Y�O]^!2�Q)�,술AK�J�p'\ 
�9���3��4Bg�E�v�:SV�3zS�
>Î�ʹb���l
U2�1� P�@�V -c>+��
f�b$�"��wo���o��Z��gy�I�H@
�`�0�C�#�:w���|
R"w�H�[�H�?�6^�@��*�DP�~x�i��8Z�:o%��
e�
�w�)�~�bv�V< �q�.;��0o�����(��\H8`pkjZ��4�y��5j�0��!�+MzRT
��[�1�`g��2"9�1�d
'�# MI�)��J���D���~���:в*x���f�� ,�J�
�l`�<���_�o�n}�LQOl
���\$��}-;�"� �/�x
%��*���)m�0�x�iM=�����P�1s�>�s{l�	v)GE\�
�ܴ����(���
!�x2��e��DE��K!K�ͦ���m��K���_B��*�hx��`J�]|��"Nz3g����~�C 
+��1��L%�@Y��vea�po�`}����!��^}?̴�����
����8;� ��|�S�>@U
?w
+�d
��JF���G�y�uzp;*x��h�}����z�,��%3s`6��ݾQUo�,�
�x�����ψ!^�ukoL� ~D��ErO�g��|X
�M+'�MV��a�P�]`���B+t�~^��м�T�h1��|���#>��t��Gao/�a��rQ�5
t0C$���H�|���`�L�Z2�%�����ӅӤ�G���Z`^h�6�
+Q��r��j̱ׄɞg}ސ���h�
��
���
0,68ˣ�3y^�~+y@��:A&?��UD�+�	4U��g�2�D�xG�Jj�Q~������)�J'��CP������bG�+��·�81
������3�\ԯn��yE7�>�
� 3�:g$����k
�Y�D4x�UO9ӻ�Q7��H
��$䠶��!��J������'��c�AV�&*nY�s|\x��T��z���iH{�K3�~��Æ��*R5ǰ����J
+��	oa��b5�$ZG1Hc
�0Fc�Ds���
�],M?
�K���`�J���t4d]��
+0?fn
y���e*c
tBw����d����������E?%{Pe�
�V"���J��H
W	g
(r���峑��O�Jx�
uB~|0�ٕ�L�<��
��M��D��Q��l���*��Ч��J�Ji~��@mk�AT�|t���>��y�JF�X�2��f��H�9ҏ*��0�G|gE%�I*�cS��;���;w
D�P`㱆8"%X��		��ʒD)Qj��&��ƪJ\~��>(C��ʸ����^�7s3�:j�F���e�i���p�'b��>H �T|S�D�����Ĩ�Ⱥ�� v�w�}�ۮq�E����/�
Tʎ�x�}0:�h]ɻ�ZʾX��3(h��4�3�%�u�I
\]0��1�Qo)�R�.�<��cx��I����h~d#�`SA��֍�CΫe>��م�*��s��ׄZ�4���i$� 5��~N&���a]ê�����3�b~W�����?0�b*�x;�V_Psq$
+\�QK��E
4��B��0�1�����
���<Pޖ3��?����� bu�
Q�b�:
s
�>"&@�
"t��Cd��[՜p85 ��u=�
�R�5.��b[�6�.�<<��F��Jx&[`� ����Iį�
�f�
d~gt��
G�J�0�ߝQMd�
V�j��Rt�잟
�Z�w|�W��/��5��8�ܔ�(Lݙ7L�5�'�W{��D"��DŽG��$Nз��=���$��1P�ې��n�x�Y/y��� R�U�
���}�4r �E����������: ����r�Of�Γ@s��;��{�b]��P��$	�	?�ҵ{���
���C(��s!z׃�0*/����fN�݇X/��Y�-�rIY�r���
ve;�J
$Jz:���z
j��W��M����6���v�NZ�j����7
+
]�x���
�ƛ�@V6�)_�҈'��2
4C�m��؊�2t�!��w
�z�����k[�����uB��:M~U	{�M��W
�ӆ��>���>Y���L����&jo��������}�{�,�:�&�(��(z�$n��)�|��h����e
:c��z��
��돸��w2
+��!=�������滎��h�LD$��뀨U�ef�~�(���oӊW^����(A<Vl��\��G�J�y�iEn\?2J
W�����L 8��T�1�Z#��\ʣ�	�K�4��G%��L�
�,��Z���Ϊ �� O��|fi�(�ޢ��H�TC�� 㥫����#��aK�yD���fD���W���B
+�D`|�'Ŝ��d����x2��Q"�	@�7����X�� Ƌ
��)p�#ݩ��E�����1��':��
�['�>�VEi�ޥԼJԄ8:�)�j���6�{��t�p��*�
+��S��D��A���:�HW at 1v��
����N�����y��n at Lg
+I�a��j���b��eT��w�
+��9j�U�R

�I2v��J.�PDŽ��]��c����|��b��+�P�ı
I�{$�
���@8}����"� �
�t����(�u�U���;&է1]�(��ػ���`2�8,�8L���%�P�c��4¼��4"����q/kIl���( �r��O�a�~���5#�3�P��v6E@e�:eA��r��n#�B��z��J��z��Ƽ��ys"X/�x�U�}�	Czy(�{�h���ߧm�Ҷ7�������юO�q����5��il���
ݮ�/Ѩ���e�8�t�j�n+hq��LɪV"���;�W Fܝ��^Mo��5
�����>XT���h29�@"��P?��
v���i��	<�=)#.�G����F�kߨ?�:W¹��	_Bz,OyN�*���i�;�PQrS�E�Tl�� z�
o��Цa��P�[iʀ=�.E��Po�f�ϣº�����Y����<v�|�S`s��e>�c
�H+U��
+��G��bQ��V��Q
�fT�
�a���sV~*����"X �ߵ�Q��5#Ї�_	�F�}� ^v��S��\Sʼn0�K���^�
��̝�ӳ?vW.LT[�3�"�7>�����,�}1.���q�VR�e��
�@����x%�
�b
�"g
��!W����A�U���.����G�#mM���2�k�/�X椗i���hE���sOs�g9��[5�����D��
��.-���<�v
�L;�eNp��l�ԥt��d�|U-�^�MZ�x��X�������B�]�-���Q�7�Ō�I�*Cp+Ǒ�vz��/�n���
+��.!��`��#w�1�3�
�2�FKv�U�seɁw\���O
y��j�E��Aq�H.x��.���K��ɮ�
+���"��;Ԓ�#�oQ"�I����T����_U�}@�X��<��ͮe�q�d�e������]$W&AA#�ٝ��
D	38:
+�5��S��fYS1!��w��o�k
~�”�&R�� �< q��W
���<i�K���'�%*��
/���f��`�Ғq
R8���L�e�G'%Q at m��1��H
u�)j�܇d�|�c��
��#x~�i�C_�_u<��&��>W��V˙L��������;EBua2A:ͣ�q����9O��?�e	$T�
+���~#��������0�rD;����l
��
�AD�*��,>bۨ��*�`{<���c�#���LYI�#�ͼ�ee�z�< �E��Y��Ԣ��O%@�
�ӎv�
J��/$�(�w��_�Y��B&8d|^d��p��>L�c`��>��.+H�%�-5Ȑ~��ȹ�׭Z}��mPIy�ۓ�ͫi�er�S
;���
 >C�_��+d-�_ΐL'MA�J3{�l�jG�أ������L<��(y��a�'�Y��8�[��]@w��SJ�󳋷�^�p�g!����
 <Z%4T��B
!h,b"ױlc,:$t��
� �̓Yw�7ק'>�����g�7Q�l��3G�6F����b�yb#
F*��b�[x�Q*C�ڽ�ғo���{p����HiqYU���U	��?�X
04ֳ� ����.�������+
�O�H
���N����.�g?��8+�����ݖ&�é)($Y��=J-
+�b�:��w� �woS���k��Dk~� {�|�s
+����M����Tx����_hx��	�?��t@��F��9gꤢ�G+v�Qܒ�F��ux���,_#����,iN���ߺ�F=N�F�<�z�b��*���]�;\�X��5�e�Ȧ���[(���w��f�i-9\�M@V��'^��bT��?GK��m��4�Q|pG�o%��!�_f�����OG��%4u�w�Q�aY�ȧ���_�
endstream
endobj
41 0 obj
<</Length 65536>>stream
+Qo�M43�}V��m:�qʷ>&=>Ĉ�RD!lvG
]�,΃��Mz�����œ��n�_/��x�����s�
+��+b�
(��d�ʻ��Y��
+�5���1tx5�+�w����|���<�O@�Ԏ��^�y��6���E?���1����4s�!���|5+W���b4-�a�U~�x�˓�Q�S��v1�*�iYg
�쏾D�9����Fw���si�	˶��̧��V�4i���	��u8���X��v_�[��;p63:R�@ݢ 9�/�u�@�}�X
��&��%4�.x.Q;�bWLύ��,���|EC>'�R�9jv�vt'�鴯3	e�Qݦ#�N�y�_;�PU5j[b���p�
���:/��r��^߫(�wň�W�x�69
+�`�F��+Z��Hv	�rJЩh�|�+���d�|[��
��GU�
:���H
�k�� ��
�<w�P�V$�.v�7���@aU=Xl��С� O����ʓ�hop���
+��w��SC�>}�
�����>�C=��0
�4�x
�/-���E=�f
�jD�fw	8�����6#���;
+�k���P*�?���
J>ע��V�	 -�˧�of�1�B���u"�ٜ��#<�ɾ��{9	y�[�
v|�9#��8�����Dz�&��?P֎��N8�$
�b���V�UF�	;"�E����0X#��
�����kŃ�|��Ӟ���/����M0|���߇~����Z
��	Wx�<2WԜ���ϔ�n�/�����݇�ʩ��YC�NƄ
��`�u
��z
O�6_�g���tZl ��z6��iC�y �Lg��Ӄ���k�]�Q8�y����C�����I��(�*8>����+���%�q+d�+䙩�
+��}"�6� gxK��J��mp���m(P�7�����5�H9Ƚ
���˰n��-}��k�����:lutL���q!ֶ~��<=?�:�h
�U+z�;��g at G6�Xy�;��� �hǯSa���
.�����c���0�aב�6b���u&�(4����+�C�u&�.V
.o�$�L`�F�A[Ѷ8VQ�fr1r)�҇��D�\,FF�y�?��h�s�"��=�&�
+� ~4Pet�
P�
�k��,eE)DCΉ
+E
�x<����`��9�v(}3Fט��H�R�����
S�
+�mzWLL��H���
]��D"������k� F���&�F�.��e��]�����ܒ��y��S<z�
�"�`a�M���w��ח���E�

r��q����;Ud�����yS^��$@���yT���?5Fz���,��!�֦�'�.��b��WWʻ;������W^l�ޗ~�O�����/���7Wp���#-tɶ���
�
��d�c��ٻj�Y�@&�iC
I X�nwK��:03��v�����<괍�� ܹoN·�+j
쓃��
j�G�KP)l~�e�دh�iJ4��RB�t�P3>,�I�+�V|PD��?c��?��?#���p����)ʡ�
��FnL=�8��
+eI�i��q'�_���bq�@
�1
+��7�'Q���V��$�RC� ���ۛ>
p]ԜS��[�����
+�@]�2��LW4���h�
ȡ�##�  �W.E�c� U���y��P��آ����dޠ�q�&h4�0b�4��
��Q!��nC�Ef�)25e%c�wņ�q��%�X��d��\��g at y ;lJd�"կ<���-�'J�/�ء�F���H?����La��t���\���Zy��(�D�v(�Ӷ
:L��P����?8�U�
rw��Ί
� �1����-ee�r��� �u����]���uL��j�T�BR�79�Ȩ~���ɀ(]�Y��������<�OZ��Vi���^/���������k�<
+���
���L�_��Q.�oY/�ž{Fk�
V(_B֗
C������9�
�h���{��V��L�A�Ҁ�a�"!@h2޲�9QwµQ^EΫGt��8�t��ݺ�a��|��;���0��J.�CP�3���$�s���[�Q3�)��O���q��gh���(�6|3���o&�.���'7�	�y�f�%��^-y&U��CB
6h�ky��V��pZ�O!z��}�*~��q�I���6`�C �� �l�,?8��T�8y7������]G���J�m��ҧuB4HT���w���Zj����jðN�]�i,V�ln��~m�
xը�G�b�
!�,,}���
��*
�v
��`��pX�By��Xb4��
�u�X�M�~�ɂ�f���a�̷,RW�����k	���� ��(�Rs��ρ� 
務�b�
�ʏ�&�T6t:(���3T�U���Q�����S��:�
+�g5,�-6����=�
+�\TQ%B���G�L�Fs
�C���-��4
�c.
Z����tq�
��D�$Z6��
1�[�q�D�Sn)J$������4�	�����
@������}��-�	��H��ä�
� 
!_�H��M7F�s�����kO+S��ꕌ��)
d/�ȳ�&�VZ+"��+GM��6tƻ���mHI��~�F��f�r��­����=�氓�v��P�_w�D�C�
�7��ЍR;�(�j\���j�>��@p�`�P0�w�
W��ak�r�`�J
/Q���KW�`/�T�	5�o��k�4���I�5P���Y�EЙ�$ե/�<���!
���(��&��RJ�.���
$=����!#R4$	~���:��
��
�i�%P�!��|דU
z�PR����yה~F遺
��C���e䐪otaG�;ǢsFs|"�\c����F���9��- �����z,KޅJKD�-�
+K|	U��l�[��Z �Ǯ���O�����8�+
+�btk ���^���n��[=�\���̉��̼~3�
#�`�:���Lk
��}�K��8@�������⓵
�|�K�v[��d �ǗL�LU��c�OTq
�1�������4��˖;N���!�ī�fq��D�u��G��g�u27_�dO �
]�2 at 6�k��j����I�r������������R����@]�T��r�������S��w
�ȁ���	�,H5-V�tqno �ԋ|_��a���a��
���Υ
�~�v�	"0���Mq
�l��LxiW��p�<*	b��U��u�<X�.���*,7;s
�n?C�ĥ/�� ���_G��)����.:
�@��|
`�Z���
���
�0�J�0�R��_+=?c��W!���u�v�v3���������r�=�
�>�ש�Б�_]x�=�
��3F`�L
v�&{%�tI9hNڑ�)���Tm
$��O�0�{�D��B�

u��D�,T�KqlyVk2[��-.�`-u@ه*[�~qC���w�u]λ���׌�Q�0v��!\�:��p
+Y)�
�v[��J�7�
 �8K�������Ҥ�+
�
Z�5�bK��v�v������V���>NO����іw)䶇͂��$�
i�t�J�|$��*z-GD�qVi0
c�
p>�*�2�B���T�
+
�`
���̓Ǘ��M�}���)���(�g�<���y��q�a&�
�&��������O���
�F������
+3
+~�\[췛r��NPVM�?��� �G-�U�����{�ށ���|��h���XO���TN!�E�
�gE0����jGq�Й�>������wG�S],�k��VUu�!�k�7����t��2Ӑ���Ǹr
%����Y/����
4��
�Bj�x
X@�P�	v��-����1�ת��p"�w��Ǫ������J��m��сc�VѼ�� �fp�!�V��
֡#��T���T�<��(F���
J�$lZ{>=�$O�)�K
�R&_(M��aO2 ��*�Xbv[��l
f�@{
�|i>7X"r�1>��Gg_{�=�ΕE���DP���<hr2�x�IZ�3�C�K;���
�QX����'�����~A���7���jX]�RNb����/U�]�3/�X�6K�����[���C���ͦʶ�~}s	z&ܟ&
%99�w�
���	���
+D3����
X�A_�F5��|
X ��� �0���!�4�A]l
�XJ�g�@�r��O��!�^~�b����z�����:}ihe.�艙�����S���P� J}�3�p���^7�k����%y��[F��o�3�#?t�Odn�=�zN�A
�2������-nT{�0�}���js5^
N4H��J;3;�P��YB��%J/aa�#<Nڍ���1Z�[��~ '�^���(Gް����� �a�4mn�
��\

�
����}"ډ8��^cC��3���쒋9=352|����O�G<|[����ܔ���BC��aX�s�JS�&c�3�k�E�ѻ�!n�Y%3o�h��c `c
��� 	�Ba!�T�Q����_��7u���d
��|��YU�#vu��`B}�*�w�w�0��
�����A�r+�;kK��ME9
��<�ˡ7@�G��d^���w
+�>��Ұ�M�	h������#��F�
�LJV������f㛱{�3E�Ls
+�%�y�����e��f�(
�y�{[ǞO)�*)��i�1<�N��������˘��l�3N(�|	�
+lK�0GUz����B���w�����������x`��x�0NRvuT_^(�W��?+�h�:ʖz�#KF��K׶k£̙��_r&�7�]/�����(I�F]��섈��R�
+s�#�
��ڴ{&Y�
�z}U�e؀��8�܎��WU�G\͹�� hIfG��P8cNb���(�%���Y�����+;q�
m�R�
��

O9���+�����w"�j/�UM�GJ]�_�	+n2�����(�
�
?L�����!VS����#Ƙ��ɜ
�ʜ�dx�
Y�/�d�HL��zN�nvf�r[ܽ� ��gR��^��q�Ka�w�#��h�[��4]�^R��J!�^�?�_Q�%����Q�7��k4�r��'!�u�C`̈�%]�
�
��@�Q�OW�#��1�|��_<Ɖ� 
%ad�cF�8�_���,#��[1���OQ����������{Qy$8r:t��"�{�4�
/P����}�������R=�P^���a&��3��}�ܖ���nƈx�a
��
!���
�� ����N\G��w�	\�{dy at C�V֩��ͮ����	"�fv�u�8��d�3AS�K �L�GDZ]�E�߉�ׯiX&P��Ý��Htf؁�j[�(�9+���.@!�����.ʸ~ �);��U����o}��h���A�N�IԵ�����fj�\�#Hj�Z�p
+��=j���|�U�>�t	gj�_���)Vt=�;q�R?#�|"��\h����q���Dn ��."�>����z
�
��Wu�3�W��,Z^�3����i'�Q���{!��y����V�x%�A���P�� [�㌺����
-�ՙ���GGTՓ{���
G�E��梛�u& L����p��Qs�I9�ݾ
�53 b�A
��R�롏��ӗ�9��x�)3��僻�NL�2:ܷ�&~��=�����{���6�_7�Ϩ뀀�ZTϽ6��ȱ骊����J~������`����
�����ۉ�����}�vnr�ױ�#
+jӘoREi�)��N�H����)G	�h�e��Nd@�c�ֆ�
����a���2��2"���q`j��Yy2�9Dz�}�dN b4M*��
Ei�;ذ��
h5)A�<��gJ̊�n�ȇ��r���َ�ҳ��[="SUS�(�QV���}
�Ĵ�J���qg�l�5s�եZ�Y�j���a�BZ�Y"�����U���N^G�𖌛�_~�`��h��φ'����I=3��tT�/������\7�d"FY/�
��
�OF?˚��c.`�֪������Ov��D�"	���>�-���΁
ܫ�����NkA�Ύ|��ّk�&�[E���>p2:b,N�ѿQ�]1�]�U�����cgz�Y-.:��H�67���`�86�wČ,̈C�/M��RC�;/�1�q��F���t�%� �O�6p��un����y9�HT�?�k�"������1��K�������-�k�8��趃�X��8jB������̠� �7��
+`���z��mz�罽���/H^�ّ@4^-��`nr�W�U]�����Z��K�#�Df�=�l�o}��w���+vD{FA�$���a�"j�Oc���`i��E��v����@�N��
+œ�L\lh�x}���`�0j�g�
!�K�#�IHL�^=u�։�ٕ~
�%Rgz0�
+dlϬh���$q�Y�=c�~tq@�ܿ�d��0��y!8L���
Q�����U�
�_扸��öf�4����
M	U�jV=��n�a�
Ks`֞�[�W��0�q��2U錍Y�{Z#n����'�y��^!��.v,y
ϕ1�rŷ�0�[�'��̇�"04�z�\��/�
�3�o��<!�'˲��-!7��|��VM<�����E�V �X��'3��F��hfU����P'(>gj�=�}��N:��~�
+����֔�Y�!�V(Ze�NjW��{�Ծ��w�so�\�'�D�*�i���n5x�iL�:Z2U�H��xH��ל�Ams2ތ����Pn����#v��!!g�r��<���_e�
	f�k"�
�&�`
J�Jv8�XQ�e�8e����I��4]h�gDN�bD�f�I<Q�N�7���?�d"
+s���1`���x��%�:�}D�l�F�mF���?`�_c��a�!y���e�=��	�
�WP�}�t
}����������j�
�`4�<�G
mhf\��;׫e�Bp�wN[g��/�"�6�b(�>#�7�zg��x���	�d:<�J�
%�.�?FPD�D#�Wo�	�{�(���]��<bs���8�ʹ�����F�g��}��w=($�t�|
��P[�8	W��pa"ծ�Cى��%�
���eP=���J��
K��f8G�|P!'�“w�U�(
+x|?F|?��>sŪnG	]���t��W���e	�U��JO5���C��9
��W��G��|	 �-�Y��T�dM�Yd=�eUN`�E�X�ٸjA�ѯ������D+�#J��`��*�*�����#��k��6�?�4q�
+�t�1!
�B�f=E0����&�-�'������
GX�
8���ƫ��
+�0�N � '�N �� �j"pA�:A�Hc��k��
��)��3�G�����������>6D��8�%��r��ZU��~�� ��(��vi��5�Ha��L�|�g�t�'o��u��
��:J������%����F<>���t��q�����JUЯ#ۉP��55�sFZٖȍ�cz����?�E�j�p���X���!a��R�t\�9����qz"�~�x���lE����=�B'�� ���������=�xш�����ܸ�	��8�A�c$}�����;{�
{x�Z�p � �����'�U������X���&��9E�����$GݹoX3�mϬcDo���U
�-ƿ��|g}D��i#�v���
���-�5����Bۤ
+�|�0G�Gjq����z
]ɮ
����!�aE�ގJ�ωX�e�:�� �ODy�ܕ�+d�a{G��u��whKW��az]j7��T�,����%ܒ� ݏI�����졞
+ -��ҩ|-P�J0�����#�q��(�<����fL�D(���2
0�EE �8-kȺ����M�U��M�����k��xb
F�^J�n�)^jG�>BĮ��9���*`�\����q]�/��f��zl���o?FhMv�����\X�
ߠ�Dъy���ƭs�Ih�~\��Zj@����4�@`[����ڻ�ږ
gzO�wX7�T���R�-�iou
B�`�,u�V��$Ao����ȹ��sWA !P�Α+ǘ��23��8���99,���΅��EL=
*'(�1\�(�/&c����RQ���U�dV�E�Z<�
M�:�͔ׅ9?7(W=��T��q�R�ǝ‘"E-L��2
w%
��AҌ\��N����5\i��(��g
�mE���v�=
8/ə6��ꈔ�
Ztz%�Z�8q�3��,���c�Q2�SW{�>pm�i�L,h��&Ĕ
 W��
x�i�lqF�{���'v�ϛ?���7r%�aJ��%S��#dc����(�	e)#L}c�V z0ef�r����A�6�  ��GĞ��r	X%��J4�;uu��T�x���İGR_ASyC�==�-*�
��t�,�8�r(*Oe;�H�{�S��
�3i�*�
``�t\��,N��� �g�
��%&Z
��C|�mz2
�	A�;j

m�,`��LM�LǍ�p�&+UL�Mc����(�YY�(�V�r�(�U���B��S�F��=�5*�Gɛd8���
zDb
TSE5�w1) �Ԟz�-
n&��>�Q& 2�D��[��J�_�
�k��f�y��a�]
�^�~����y�i�)$��{�[2
+}����F���A��� ��M���-E�7|)�1�I�4]zw���,D�S��a)JL�*�8�2���R�k�he�"�Gͨ���8T�|�kJ
�z���C2~e�p��ʚ��j})���WK���F�m�5q�@��.e�T�7�>
���12{��3�H�ܮ�A"P�7+�ri��CO��St��s'8!�)�6�~�]�XD��a�P�ڳ{]@��q�4�8ԅ�I����P�
+�����04�v��f"�5�h���h�T���͸+K���p*�r!.�~��~�Q��
+�&pe��fSȍ��-�D#c �"�% 5\V��/3�
��rd����XX��Z�^+��T�
1�v?l@�0��A!��f�SS9�5��F�������DB-a
� c��\NSi�n��

U%�  dނԘ\*5i�~�z|ƪ'��ZH�$xi��º��|�|#?)�=f��}�Be"]�9�@Ӗ��qV<G�eD��4�r�|�aK�0Ǫl�/�A·\!r>I��.���$"��R
�}>�fS�ObD��]��0�9
�Y�����R.z�q�ʨ�>My$}
�,y�-S�7�������]@͈.�^w���˦��P�ե��섇Ԅ��mҸ�t@$2KpKW�	[ex����`*�w|U]����D��Nr���ЌĞ2i��n �����A�� �2EI���#��τ�Q5���B�.h��!�iy:0�߂q	&�I�H(��Rb܉�`�=��
��1�h<�
�aQ4����^)�q���g{1N�f�qf�$%��R�F�O�o���S�a�m��͹<2�&�j
�3)
1��[ݝ�m8IֈA
�̥[��%c�%(f�g�v7y�1�6c2Yoi�P��&
�‘e4'��<���t��1�Й �ڋ�:��LW at R��:�w	W;S~�!(��@Y}��fH�~h2��.QzN'P�GLRM��{�\�)ɛ�p�o�pAY��2��% r���̈��;�&|�I�DS�v�1%0��5�e�5�Y�^���
���?��*��tf�����(� *�Iɢ��c�-}���7�}3x��̖���GW�[jr��q�
��H�?�&���/:�^���$�yB<�O~e�)�����>[��빇ݰnQ
+
�q?�S�nH"�Z�t��(sҜ_zJ���s�MXE�
+�������z��N��ٯg��O
��o2��4�ğ&�~?��=O�e�.U��
+��'��WC���MT�%�ۇ��&%(�Y���6�s���>�U"��*K�C(�j�9�/��d�W�)
>�l�
6��
��{����Zk�4���{��L ��
+��0�*�g�V��tw'p�x0���HY2��?����J�J.	�*�[6�CɅ#��
+-��-��wIP|����@縀~ ��T����W܇��А<��q�-\f�
v��?�”ϑ�-d:�.�w~�\
�|����hJ�P��-P�y��c�z�ɀ]����EZ�Q&���
{��
�F
d���(��!�f-�J)ZZ2�>6��t~zc8Th5���H�}r��T��tY
t�f�{2$
�04�v؇uY��<�����D���`	����B����?�۟�������O����/�����/~�7�������o�����w���W?~��o�ة^���_��w�~���������_��?��?��/����������o���Ν3����� gPA���Xq~�H��
D����D
��0�%�>ex)�MJCRdL߄�!�֝�-��G'n�ֻ��l
+E4��7� q
�N�<�G�{}c�<P�l��A�8ж
 �� 8
H�K
�i�
�U9MR�^'�A�d���6}
�S��������O2�H9I�
��i`�;�G%(HMS�4a�D���gG�AWۍ"F���n�B3��0��-WB>��J�(s<���~����7+��3e��'��l na���A
K����	�Nm��jM~�:��>ayL
0�A��Ru�A�M#�&�D|D�ƊT�?��M�dtHx���ִ11�,�����y�$���֒���M���Z�3R#]��
|q`I I��n�=��)a}�2Ϡ,4���H���Ȍ
+e�����(���/ʪS�@�G ��b7\�|���^�O6��u��ꃊ��_��%ue>��
+�
p�D�:�dr'%Y
F�t�
n���9Y|�BI��� L<����A���XdFQ�ZJg��J�� uՏ��F�λUʎ�Q
[�t C)���.	O�
e�D�����#��b���?L�
+�>т?w0�|+���[N>�P�G3����!�
�e�l��'%��1;���RU^:���Q��1��檒m���'��y����9�&i�lŒ��.�A����A�+���
t ��*7�M0�m��R~=��af�M)>�9X��-��t�#ߴ�{���䪟�M����� ]5M��%J�E(i�:��B��/]Hg�t����:O�;��Y���Kd�0F��lN�@Eq.Y��kt��&
� h��
�m)3{�3倔PJ@��.��ʈg���
�MO� o�.l�9�.�������8��I���	~ذ[��N�V�Hz�� �lrM��Ţ�����
���ař�
�dD����:���r���a�K�Dë�K$R8�A�y��\�K��
&
����7�.��O�1���{a^k3���H�����&�n%����hs^b�
�Ӂ�-�w���P̵�m���ܝ��ۑ w�)��}���#N��#�� ��t(�g(�m��L~�0
�
+�(Ċ�M��
��]���� L�څd�}�γ�R
�[�<���Κ����i�]�M�s�ɿW�
�����3����^�g�uu4�GU2R["k��-��{�$=��Lk����8-�i
���lIJ,!V�+��Q�)+,�z�ɦ��d)S7�z#�	Pao�#��X�����==�&�:�U�8�l�2�L��2+TV7��rfkYؠ�_�Y������
��#�\���
Z����|p ���u�Ɗ���a�6zl�"簚�0D,�Ec�G������->۠� П� �v�Kpk__�P7��}6�h�c:�#�:�����F�P�tqDeTC|4��$��w=�(o)���O�B��7訒������d��n�U"�	���6���y a��hF'�L���p���AC������9]4�����բ����Y�<��t
p�2c�i���8�=�� Ҏ~on[�N�@�,��/O�	��n�ʱ,�+[ǖ��K�ܒ�ȸs����?����J��1}�X��0������p��5�;���(�:A�SM�H>f�_�Yv@����v�KcR�{��Q�s��M�m��/��l�����" [...]
+U�����@E]�ټp �
��в|G�>B�!_����lS�
+��*��d6�g6����H�7a*>�pbV�= ��m�N//��&��+�k���
0��Q�z
(Z�!��;��3w>��Ē̖4�IT�K*˫>�P��\%��b�Iz����N�a�zQ�h�i ,��3��ڃN*CP�O�b�ࠉ��T=�~g �|~����]�zɡ1!{ޤ,C
+�x�Yu���G�T)��
:�2��kWm�۩\�BinÓQ�(��d���Y���
+A2�K ��]
+��4�� �X�ch�Ŧ*�螌�;�r�zG���`�|xGb�ϟ^�# ���U,�I�
�ԒTӑ ���xt@��
+�M(�<S�AU���p�O�� 
7���*W5$��z$��ބ�=�v&Ml�k��N����V{  h�փ��3
C���х�,J���
���bѧ�E
+�0����>�Le�Z��n�Cj���k4�jM8����%��+�����
bƙ��T��V
U�.+˚�G��X�/
L?�x�|����M�X �~
PD��t�^�͊�$��u��(�m�m_.�����5Q߯����C��z����R���
�K�y�j�e�gk޶^M|\�l��2,�W�T8Q��1<B��K�
��Y�T괤�U�a)�v ��$
�%�
A0���
k<d�3��'��rF���NC�`h=�ZC�Z�{�6���˃��wD�M��CX�
SF����(�x~Q�����E��C�T���ǫ���8$�R�#�uzf�(��3�}Bi�&[��}G�gۮ\�79Q����j��0�5;����Y '�,�)[
���s�6 jH�O,C��x�ɞ:��.k
+$ �
n���=����E�*�&
+�#����Qd���\FK.���>�Fn;n��(�=��/�rΠ��ڋ^y��$��kT�["�@\^���#�1��w�����L�x�������Bfw�=ͦ�
 !�H
-���!޷�r޷��z1̒�<
��c�·�~��j��ɴ�a�wwX�� #�Mh���^I
q�r�m���'~z��V��=k�l٠�\�6u&�,[�{"2tPK���ԩQ.����D� ��y��m���Y
�M��N��π���9A)���z&/��|����v�Ͼ�n�{��
�����W�x����
Z)rj�,���0e����ɑ�x��2�1�L6�Zt��@L�x��d��
v�@��>�ˋq(P at g�M�
mZQ�V'���c7UH��%!�χ^ǔ��� YW���Ab��=i��y�
9_�'���*u���
1
+�I�� �����޳zE��c�i�'�1F3����7�9�Oiu =[x�f௛9l?���=�>���ދ��|
g���r�(�St�=:CzE��x�[L�3�����{l��f��3��n��\��@lS
z`�G��M��y at T�vϴ:��Y.�h�?��b�ʄ��X�f�<u5����l,�3��&�p�OA at X���S�Y���Ȇ��5��K���
`�)b�>>
��B��*�V�|��n�MC�M|.*F�y0��=��c�&��.Rtĭ_��>9tvk ���?�e3�S龡�P��(�mɼB��z�VCҥ����kg:d�W'в��r��Ξ0��3iZ���  
��ȁMdLI��[�`ȝ^�w���N4�^'@���Hү>=�m��F����8�/�Az��8=�B�z�7+�_�̙�6TxP"Z:���S*g��/: �*[�����꒽
@\8GE��(TJ�eb�E%
�*F�}{G7™Pc~P.��-d��uM�[�C������J���[���	�ڸ� [...]
+���@{�ݴڲ�?s�f=�~I�J�.t�W�
�/��Ug���M�v`�� ba3b4Ne�p��$Y�7�=�1���~=��1�i"�c���4
�[�{Y�΍Xh��YG��xHS.�-��xw^'���6���{aN�$+u�����ur����l�Τyw>�<��$�*�yq�&�' ^�݈�[d���Ѫ�ݦ��]�V����MJ�,(���u�id�2�c8U^Q�B�YX��:�����#ҧ�4ol$F�oac���O.�m�D%?z>s���IhKo�DG�ʟ�)X��Z,���u��{����	����8�9ó�
+�;O��Q�HS���jK&(LyB�
֍4�eS�ɸ*6�u�m\,�LJM�
Y���y0S��K��Q~c�F�4QI��-���n\��&y���NS�%�d�IP�[�����z s���ǧ\�
-;��]	d̾g���/v=Y>�`�a��Z<�T�,.$ {��r��
��g�X������+v(SH�pPvY�@b�T,�̎���l֪T��<���X�O�q�%��X[�(A�$T?�ޠO~z,J��%�P�1�\ʥ0;�.
[-zU�pt~��2P�Z�3Mֺ�
/�$��e�H��rW�x��2���	(z��&��nr4�W)�S>�
%����n���z��
��,p!�4� Qw�<�$tV 3R�X0��e�)�F}꠫�Xh�N��ƇQ�ӑ�²|���s�j qy���WkF����8	t1� ��G���~�죺%
�h�}�a��&3�V>��8z?��}�ā���2R�gy��m5O堺>��MU���b��c*7i�,������%�
mi�k�\�P�x&�J�	
��K
^
�V�c�b &�Cآ-�q�h�
��?S1���.{ё^� N/��q=�X@��H�
B�,</�%%7Mbwu`
��H�g~�	Ck�)ݥ�4.�m�IGP~)|��X`j6����H
�?�e�(4x�aO�C��<��b7 +Kׂ��R�n�=�
4��ԋ�����MW<튷�H�u��H����@ �dR����׎bR�
R��O� wa
f��Ʒ��z�:�
!HTF8�)h��F~�P
6Hb<�9��(��H[R9eQ�3"��
$
Y%
9��ڟ:78��%�w� ��!����6
�(���%�;�/������mЋ�[�
+�+� �5��j=�d�,�z`�{z��
��x>OX�q&[\�u�����,R��+�j� ��PhY>e&/��-)DW���ciE-WA1�(�?wjhu��X_A�7GIq� űA����B{уx{��lğ�F��u����H�WͿ�u�!�]t$�+���I�����=�*S
:CY�^[��f�g�D�8��1�$=��j2��bBm,��%G�
[pwnT�V1,�����N
��
��0
,�\H�k��U�N����������-��#T'����.��ԃd%Z�xf�c�guzt{�����D��!��e�tϤ�xz
+H�d���_0�( ��0�_b��RHRCz��Ά��Z$�
��
�%��
3͋��3�yqH=�Q�6
�K�
)_t�{��m�{��KϽ�'ٛ�I��`�E�A��B�t��iS1�,�خW
+��<���[Be�1r�T���Ot 𾿤�j����hЏE[D�ʒ�C��"�
���@�t��XE�(,5g�y�_R��E'��lD&r
e���&=
�T�g[�����=@�_0�)�)�߃[
� �]5Мy �y�C��Fe�9�R�|�1
��5��_
׵M�=�~�m�)�M�d5|��g�M�
nSW�����9`��$����en�6�g=J��
�/{&	]L��:�B5�;c�P����� ��5`w��$.  ����#�չ���Y{p��DB�po2k
+m],���b��
+��323o���g;�Y�mޤ�DŽ��ݲ ڪ1��rތ�q
@;|h�8���q�=�^5��0;�7Pt����Y<�l6��b^�
��C��w�4x�-ØP�HBg��PbpT�JO=�KC~�g����W�W�’jz��,��d*t����e�M��i� �
' �6m�I�U�6K<�j�}&�B/
+cŊs��J�k�βR>nۚ��7,v'vD/n	��ml
+b�#�X��	lv��,�?xA� 
�8%]i��@
��s�d��0�X���F@:
%H{I ��������6�g��U|
E6�<2��6��]�g�=�F��&��ޢZ��+�ď�Y	��Y*I�4��9]܁sF�n
t@���Ω���d�G5��-7�07����dم�=�`��4<w�~�}�%�
�+P_�]>�3\���l����5ЪJ�������R��^�x
���Mv�Mu�n9n�a�#*
�Rqۺ�7�Q��C����n���I�z�	�E8�1s���(�Ҕ�e�<�L��]`��@6��H�@
��^�
-R�
QXu��'���IS��,Y�� ]��z+��F����P��Y�!S=F�0�-ζZ�NT���W�T���i���S�ҥ�.
��/��,q~늏����i�vp6��M�&���gln��+Ȓ"��x>�g�L�δYN\��-a�mˆ@���P�׀W�Z2=���	�`����
hK�	��S�C�P� �)L��bdt�b�k�ZC�b�dž�AXt�mR�V��IHA��
+�� ۛ�婮^D��s�
+� 6: -e4�T1?�*v ��B?b
�Tڠp5;��젻Q̍D����l����'�9&�X�W1�3�r��`������`[~���5r�T�� �(I ڈ��e��R�*�K�	
��99�ЯF�ў�ɕ�S(�YQ�mG$��D�����jQ�BR��\�i���U�I3�.�	\�U�N�l�Lq/`���C��:�+,��9�����o���
;�=���f#ý&��ۥ��h��
���Zu���j�� b��T��v��
�~�Ap�:�H������V΢�����[pXH
[=*)pz�{8��YnD6�i��<��l�L��0�!�Nh
+��1�yXƢI&�{��7-��4F� 
+
D�֔-�v��e����º3��_�Y?Ɍu	��~�N��8=��
�dkj�z��1��()�Z�������~�����H��D2%��i(�k�,
+��3>�]l�{��i)E���ߞ�h��u��9�o�,�{!T���Ѥ ��@�gi�l�7���a�8��o$�EJKe���w	o�ؚ��֐I�� �+)���ެ�.�^ g51�0��59��<��s�: �O�*o'N�z�����A�Җ"�]�|8��4�t���q��Y�`\�� =�i5A�(*�+�?��dn���g
�I���J~z$wZ��?D����٧4��
x�E9g�b@
�$��eń�=�>%ܤ/TX�i�#�,�#��D1R|Ft�ɹ,
D�v���%I��}
5�B��
�������o?�Ed�RG�Z<�ȋؐ��{5M�oؓ�'����&�~6QE�^�rD'۹!P�o�ΐ#�%����o��a1��A�Hu���A5�[�_p�O3
�9]�:
+�}zTa�N<,N���<�	��h/׳QQ����P�|��(6*�Όzv��z���J��]n�R.��V
B�i�{���M�
�B&�L�ڡ�5��?j��8�6�Q�oӆ�r_h"�t��qP��X�Qn�Х,���~�
+A�'����Д}f�X$��H
*�%S%�
U/���\>vVtX��t��zR~��̝��ä��T�
<3<���s��G��M�l�+������Sm���n��f.�~�T��D�KD��y��L����9w�L
��\���SdӼ �����ȧ?�W��Ȯ��� ����
~oB��(D��$2+cdvU����+�{�`LS����f
XI�L�9�G6��W����279����4C
�<�P ,Έ �$�Ew��&"[�U�DO�f!��\���ǐ��%
��k�?��An!�Y���3!��nvc?���0YL(a���f�:H��
$i��k+^���
����,���޺�p��b�Xœ��ՙɸ�h掑�
�E
����́-�bX{��L�8{q$t5��J���QT��Ҡ^�5�"�L��,`�x92�L�q$5$D�@NJx�J'�xb�oj?���s Ǎ.��3l�w�k�ܝ�+�)(OeЭ�p�Ns�1&;��fE����0�̥!o\zR��3Z�h	B	
(t����b�IOCs3	1+9����)' �͗Y􂕎��
���FU����&���2�{��!�18�ޣQ]�����$.���%����@t�������ƥj� E�b?%:}��#V��,��;�Ƕ�I�
@�=���lf��
#�;F,T�c��
�!�.����խfXXa��(�$큹�����AU��6�
!/�`ҳ&�z;�:��>�R�ҟJy����%ê2� ��el�'(v�j���
�-�A~����r�-?�#���7*����J�;�$s���I��
��
+$k�;��u�>�a
\s3F�b�Y�a�3��3#pZ+� cU����V
+�:I�a��HK��$i�A���C"|�<��A^U���D���bIw��@�f��d�?_����eF�4�
�E��4�'?��᩶m�����l���:�U"o��Y"�$Ǵ���6e1+�ua۰4<5�6����G�o�H��Y��@H�_���P�HQE�����d��E(ٯ�\�Έ��—}���Oh��K����nj���R��jY�E��Vwv�����鍲�8âԉl��'Χ@��c�2��=��](��M�SD��R��$R�Tɨ.K��о�J%�3����u��Ué��HT�I}�m��R͏[������qҶ�Z$КeN��	LO�+	6�U�&P��
���ryV�D*Y�d�b��b'�D�x	�6�ы��6�|bs�n�ׁ%�S0Nv at J�s�^��6;F��f;²�e��80�kغ�HyO
���t�(�U���"���P��+2A�sq\��B�
�a���D8,cdzX�j8v*���$�
�
y\�ITN��$�Z��L*
$uZ'8a�/��bƔ@ǃ$ [...]
+8�N5Sb��)
+~�XFL�&Õߋ�O�ݿ`'9�P�*(��e��3
�>�){r�] !(BE���0#c6$/���
�qtm���LI[��	�r;6k�y�ԋ�=��(�k�����w�A��OCc���=�:����M�����P9������
��PA��7PA��/��F����
y����I��^ t%Y��@���|ԈQ4�
M��5��}�)k�:
�Ɯ�
+��
��Ԏ��y�>
q�(�S��Á1�&����Z+79�����K���Q��g��qa�<bHԞ�}.�>1y��9ퟹdM��+�{�+����JY��%Yܝ�\!_ґTߘ���r��NV
n'D(Ԝ��	�]
��
�i)�40|qGf�)�ك��c[��4]�ld3��{���L!B@��Ζ%�i�o��T*�طKB<|�S���$o��g�uN$�
,��pYp:� ���!5[\�t&�J�7&�^��X�?��!&3�
��`O�ɮ
I?͒P��wRH�!pb�pL6���-b�e��FI���j,P�����\T2"�gg+M�؞�$?��Eۮx��ɠ͕h�,�D���5�n~�xV2B�9�h���w�sA�	�5dD��ow��dD�
a8���B+�.�3�@�(��.-�kᣥ
+M��߸e;�I�T�k�B߬-��w�{Z1�L�'Zg��H8л�mI����W��J�Y�rj�u��Ħ����pj�l�	h��ߪ�P&D�t����^U��Z�p{$l9���zv#Æ�>.f�S�m�49v�M�L��Np��EJ�
lԚ K�X�9Z����r :��1Ov�f�ǔ4��O��15��� p�������?���c�?��
+�
�
���+AW���R���
,����ͣ��
@F &�
�
+�-�!Ӏ�Ù6�BWtvi��r�7J�3����rQ2xSӤ��v5��j������x�=Zj��Ҙ��K�
+,�A����]�����bR�,u��̠��|�*D�>+�#!�
�D�Y-��2Ϧ�&
�����R����[���}�<�[(��2��6h?�4�9�md��TV��K3Oj��K��
D=Y at 5�6�����m���9�(�
� ���7�����b�PLN|.��Cu�'T�20�_��#���w[xA�;���1b{����I��R���/T~=3N2��Oq�
+"ꪒ��gM'���t�.�u/�iz�}�8��	�	H�d��{ @�Ͻ=N at U����ZD�'R�h����zHss!JkW��q
��4"�
y��
��[fYWtĖ
C�I�Lź�!�@�
+�j"�'�A���������H2�G�o>yH�(}�)`���>��]S�
Y�	���Krv$~��
I�����,{��be.2���y�^��A���|	{�6r����8�/0;�%6Pw��G���
�Y)	B�l��"l|
�bi3�}�Te�Lɀ)�dڝ�o�Pk��
0�U��l���O�O�g�e=V,�|@3}fi�Vgh�'6�_��
�����S��LP�
�|r�c����X��z���
ʚ
VY��[�&�-��
+:bㄅ
uHr�x�l�g:)i�
o�ؙ\�~>î�8
��"���#9(�X��W˿ {�c����g�
�T^=D��1s���L&Ű[��&�^|ZFh5�j�U�q�d�ҋ��#�z�X�Ո"�Lԡ�ؚ��p���j3jhA�c�4�KTp�V�
��es�e$,ӑ�6�WH`�"1��X�
��P�vM.�Ж/E��繙l�Z��#,�z�˨�XO�c���H�
�r�}0�F�;Y�����;�$}��3�>���^�@�q�ٛc�>̎��X�K���: ���Um�߳��芠��L|�e�L �����A���VT�Ĉ!�Kd`����tT/����I��Ħr����B�i�V��}À0��@�Db�	��_֥��f/@�MH9G�����ig�fLx�Sl��Ϙ��+b��V!
�Ql�x%�n��!�,�Kۗ"��o�J�
����'B at t��� ���ApF�)@K�}X���L5��z���JR���g� Q�N�y�n��R��6
�1
+`j�OK�fl��'�E"]!�g/�̻�����yc�%�"a)�&zJ���������[hӆ`7c=eJ��t����8�H�~e\�~�ه�0N`+˙�� D�F���6E��|�5M'Z�e,uz��r:�P4F�!)�٬�U���\�,�Bղ�� k�DҦ��)!hu�ka�����8w{^^uu��ѡ��W,�\�$��d��f�(oׇ�.�
[@oL|�����_�m@�U��:蜩�N"��j�A�3�1
�l�
 w_m�.�RL9A�y�����PL���/�/���3�1�K��=��eA|܂z6Ɍ�X�#9 yNS?Pq�Jv�6�HMsh���Q��8���܋�
,�=�eiMM��2K�]U3�����ũ��a�0��}�d�0���N/�8�*���?`f�bj��S���Y! )E�ag�Z2��w;�c����*(@�l��uZ"�&]YQ�c)�<�`�0�lT]l_���k(7lg��-�Tϙ�T
� "�t��06��ʹ [...]
+�-y�i
��
��q�
+'I�ib
���b.�g(/G(�[V�0���
�� �6��ty�fq>�o��̌����Hi~��+�X�p���k0��q$+�3��[5��))#z.���'��
��eqK8���4���4QT�Q7��v�`\�%,
��fIJ�L$�� �%�-�jL�`+�"����jEo8iT��0����+����Ԗu8��i���`�R�Y�zs�p/
Gx����̟�
�
+H�s0x�v�
+м�Wpl�#�I�`��=���PBk[�l�4͜
b��N<��U=D�����=��4r%�fl�\N��O��\�
�W�
�:PBh�$�%���C�Z� ��0�'և�D�N!4�5q�+�E��n�%��u��(t)
+�

 �,p6�_#n�A�Q^�vmM�b!�V�K
��\�WP�*5-Bd�d����i
'ی(*%ʓm�M�\�*�^�5Г>?MK#���*kt^#g3[';$6o�Y�>��%ҥ�R.�`iF/�4������L�qD��ki��˸'�3�I +p9&:F�rM	)A �*2^�U�(*+
S*�O�����'Y��])8r-�x�ɷg
 D��K�Ii�H.���>��
�
�P`ªP��ғ���*	~�1�.
��u�x�9�DE/�r0f��j�p��r�P�DG��<+
F
+����E�6^
+y� e�q:	�Cj
{
>��8���W�o�V\���
xK�#H|����b����G����Pm(%Ն&�j��SY5�������B����� �*�+

�\@.x^��
�:du讒s>5$���N�I3,�I�I~�!a�&m:d���ᛉ=UuV�;"�k�%bL��� X*�%b�TEĹ��P�e���9�-;�llw�5㜜��‡��
^t���J�Esl�Us��<޾
+?�cb���W�>��������
�LQgP]�:��
)U�q�:����I3"�	�;�#�9�TI�
et@��90,�c�����+H��\
���'�A���3C��j��O[�Ж󖠷�L
�]1h�`��٠�O��$�	���
>����8�	Ms��e�!HE
�Qk�i!�u�JDH��A�$�lE`
E���VARk��#TS��܇�j�©o�{�~ҰM�Y�A�L8c�r�L���"$E�wi}�U6�g.�UsFR�|��o9έL.wIЧ="K��Y�u0�rf	��$��G�X�"�
F�ٱc��(��Rc�[�A��T�:_�h���N�@)h�@���s��2F�KB������"{Q
���,��X������6
�CbP藬fp��$�����T�����K�+	bzTh�P��I�`
]{k�[%�b5�v at a_�[�P!��nS�z��X�a
��

�C���D^.rB�f��&{�"Kl���xѫ(�	��,7����T��E��
`��0���{u���G˰�c�8k�4�(�w(� [...]
+�h�eU�A��8���aBQR�:��9P�xWXk��TB	�5U=�X��6[%0�/4Gn�ø{�-1]���Ta%g2�������4~��{!ljC&7��#�.�G��e榺�ea"0!�4�uF>��|�)Z�b��S6
+�'"����ũ^H��h�>�=u���l�OK��j% �b=b��0O<S��l�XH<.
���h�+ر:H�R/ =�(�!Ӓ��s��:,	C7>�.C\�kkd]�ٴp`���jӟc�c=�Y�i�r��U�F�W�_�1L];XZNT�ڢIۇ��xbT�-��'�T�!0�
@*�ݟ{X
+�Y�̄��8�씍B��\
��JxS���c����
�	XZH�	�'�l�V=:�4`�4��衢�����φ�1eB��
�~2����;}L����2
+�9�\�
�e�Q���f�́�1��LBP8��R��;Kp4gs
+:K�P�m�1�j��bq�����V�^��M�~Hj}TYpJ<
K�T�
�>QzF��"g�P��]v&ɖ�
�ę
G�H���J��z
+�
�?
 ����mB�&:����������M�W `����	*��k���Y�R�"
�1J��s
+��?ѷm2�3u�<A��
��Ys4�q
�Q~2g�D]bǬ~�AXeu-;v�[�}KĞJ����
LҤtT(pV�-C*���$�
�gI��2�~3A���	��Cd
i|7�S��7U�uPt�&�3�����\�]
���n
t �C��
y0 at e�6����r��mծ�5���%n!!B���.>�1�Ep�l3������d��	�N$������ �(�=�r�^].;�÷�F�CUC�m,��rQ�؆�1�����'C�(�	
�K+�>Ҩ$�⒑&fT�02yamw���c ���ҭ�N�x)1۷x���Z�[���
_���
>dq�|�Rوl(d�4���6Eݫ��Ha�{�&&<��Ȝ P#3>Ż6a竟v���(�D:�G��Q\��lU�x�����]434W%��V��sD�0
�ȪixHo�
�#L27�E�XJ�t��:�8��:τ�[��=8=&�_���H
����
[�
� ��ʄ�"\�P� �M�I�5��{�
bw&�ެ�%}��\_L�yR�J�U��:�(�m�
�նl�Qh�@_�cM�4�� ���*�X��~p�I�obˠ�(pR�Q/�q���5��&��T1�C�_{1C��������� �߆44��bB��
a^�0�k�]��}R�L��,g>SrQ<#![hDDz�!� ��C�^�=9����!�w�L`H=��U1XVyFLr�q\�(�J}/i3�#��5 ���kV
�����h4�\�G�5=��2�5|�F�FQh夋�5���q�
��3��5Y-/�M��u�&枓�{�ᬻ�Dm�
+=�J�a����ICA�R!k������qI��3ѯ�6W�
h?�H ǧa at 1(��IJ
U�Hw> 2�I����z�
t��inlRu��|�l����9&�(vHw4B����I�:V�I�P���
+a6�E
��Ջ�ܺ'��
u�i_Tdb���Ὄ/V虞?&�
�*
K�q2�U�(����b	���4��kaEY�+����AW�m�D3��%J�B�ʕg��z,�v��1cT1b:oMS�J?
�U�V-�
+*�NI�)��p��˜\=�8�C�n�"������DYZ���0	�D�DIꅊ1����I����Q�%���y~QcpC����
=�p#X��'�l:zTk&z�
+]�C�;)�a��l�`
+�~>H�cn�Z�q�}��w���9b��������ȭ��7w�R��ȅ���0������]�@lJ�K1z���ڴC���'ewd�t9
LS^*��;�p�{��a��0p��;�]W����8. 1��5�����"�0V?�XB?'��Y{!��L8��+jQD��wS3�
+1O��

����_ at 9��C��FulT�����͊@Z�FtP8��$��Il6�y��a�ְ��9PA�A��0�x!�诺����XYI�pqR*����l�>^r
��P8_�z@n
+T�d�$��80< P4�'
��0�,G��^e�@2i�G��*���~{ �Z�����R��'A�!a��X���.���dcpQ� �1�Ujq�Ng�'�
a�����"}<8�Ku7D�yS����81ܛXu
��٢a��Ȏ���	*9��fZ�b8��U�XJ�p���R�I`�@�l�<v��5�=V���y��m|��$���Z�6�P�c�,3�I�~h�G;���/�ɚ��
+�@'�6�0K�
��a9�gUO�R�d��J`U�=ǺT�j�3E�/�]��
}{�
+�X_(�W���T��Tj�q=
L�{eN������j_
��5�L,@6s�2�x�5|q at O�R�#��� ��f�gBs!��{
 "���0��G��=(5��M
���6m��d�2;����?
�oD���+��}� if����}*x�4|
G����!����5�
:z�V�7��V�Ļ[T֫�"��s2[� D��
��Ls�r��O�	�
E�<�#;��nw�4�7%��;_l��P�ސ�	����X(Ua
�d0��L�/����u�%[W�n~T�����ٮ�G����(� b�rIoËj;��y�$P:´λi��nHe�lU�È��+
+}�£ȳaJ�ⴛUG�m�Mr�݄�u�@@VI�4�_l����d���^9;P�@�ww���d`
����R2�q C�{2����� J��3�х�diO'($0A�
Q`����m�
_\�ivU�H��Bc��z��I�C6�a�: �
D��Ik��$k*fYl!'*��d2*+~E�M%e3O�vx��a�(� ��bA#�j�l��v�?^�X?P�k_�m���e46-�FU-9�$��I�����z(��AIڝ�'ʂ�L\�Eh_1�Ĝ�`��_��t{��(�l��^[�i�kͶ��Q��*q4gz�|<��(<��a��R��4?#b�&5�i�eT
+>�O=^M�ϽX�"rz�-�1׸r%� �m��d�C��9R���Y�V���� �
x�.Q�
(�S�2kHiQOR�3��
�f�
+���&w
��T�1'�\����c+@�x�_}{lz���s�Ecp1ewj��
+>O�$�
(+���V]j�A6�-��P͠P�rtbs����a����1�Ǵ
�ʼn�� �SP����z/���!��i�XjՈT��P�q��Kq+Z%��RB�_�8/k��E��ez�-�
������
�I�C
�-W$ƷF[!
+}~��!b��4���MV�pq<7�0�4�pJd4��A�"��.#iB�0y�	�ST��CJP
�h�m
�E����m�����N��	�R�O��)Zأ=�Q����N���	�d at X0T!"Y��lĐ�ANE��#��w�����.�^?s����b��\���s�L�
r<
+�#�8.ʛ�k�(����^������de~sw&�L/ ��Sk���r
ח��ظ&
��f|cE`$g�
kV���;�j,�?5��
j���p�}86� �`��(����x\��{�0o�������f��=�+qI at G�l��t4s�#d=�0N��)y(U��T -
�'8(A4ų���
�1�e�i�L���PS�B��O�1xɤK���0�)�])�r�qDA/��$73^J�
+����J�p�0
<���
^���))�K�������!��Uc���Ջ��#_I�Dģ�DZ�t!�ء��� d\	o�l���*@UM�9��mr	 ��b?5zd���\�h) ���BD�|t���w��,�j����"�*wf
A���X�
��JB�D�Ne���8
+�;�(
U�Z�qp�)�l���c�=�.�P	���$N�\&/;��L������ԣf�ܸ��B|�`�(�0��e�4p!�7�&��2�F������cX�ky�e�ޒ�u� ��8�Ɇ�D���.g�r�×6��%z�G��ʭ $��+�5 �.c�BLDe��q˅�/�T{<y�V�MM}
/ݍ�tĢ���r��9#+�v�)�A�i
?�C<�!>���5A!��L��2�.��&J%
���Ĩ�^�V����ԏ����
��

��^eb���ʐ�
�R����w�Ԟ�|$�Ól��5Kk��F乇�k�����N�Ϥ*;H��f�9\M�C��|�]0��
��YX8�x�e �@�k�A.�Q�pY1�*��&�`�"eY���-=��
+�h9$Dơ���x�Q>�(��@]_4�z����Q�U��$VL�Q�CB�H��7���B[�,�ra�\���5�d��@ce�3�mz#���)=��T
 �{���4�`�����ZD�h�"<,n
�փd��j�|���4�����D�
+
&i=>��
RZZh�h�1�DB������80�l�l
+�6���7���*��*�t��4�S�D|g��	k>��W���0E>�^����f	�%��ȧ)
Y�<*��|O�R�%���`�؁�
Y�w��x
�b?u�S�<��]AF�y�_�v�W]2�a���Q@�H~�DJ�M����'$q�߰n���o��MŽm8�F��.�i
�u�N�P%e�у
/=�0�@ Hu7['2,[D�d�i$���T��ׄ�#�
ƒ�6�.�8c�kz��]g���'��q[5P����G�L�����
�N�'<��$��_��J�$�h��Kg1K^���(�u<��W�%��
�h��2n��M�O�s���
+�m�b
._��i[�&�
+����>���>-�	K�6p�1��jA	��P7`�@4p{���2�£���*Ҥ�2.��d>ز"OW ��T
SJ�
�aZ���/ɠ-Sڈ/��.�h�
���`��Rɋ
��C�3l�c/�C"�"戯)6*
E�ק��m%FD�=�h۝*��0��@�*9����7!g�I��6t�L��� ]�P�MJ���G
V=�I�+a,�3����c(�7C��솀��R�KI�h3��<o�l��K��$�|�Ʉ�M|[>�ӈ��� �������H�U�h�
}��g�؋�K� ���1��,�D%�KjWD��Eփ�a��=,�,ʃ���S/@a&�ArВ�6�>`S�>�~����=��L���p
�e���^'J��׳��s��*�xBC�KR=z�JP
�'�Ԏ6)�t޵6��8ؠΟ?��X�*0�{C��\����_�#	ׄ���o��E�R��±�wᷳ��N�+���փu�i՘O�0�Q�
qB�t�|t�
Ċa���� �!�G��my��uw)�p�M�����zz	⢅��u�I^fr������	~��I�K:��
����̿�չ�Z
E�u�b\Xn+����;�P��#
�Q�,�Y,�IИR��-姏
a���<���.H
_I�{@L_aB@����͉
gǻD�D#L�k8\
����a.��a�j�d�^ܾ��
+��.I@�<O�گ�p��`Qn�J�������	����$��'�������?��~���?��_�ͯ~��?���_������Տ�����v�����W��ݷ�~�����?~�W�����?��￸��sW����������
�����?|�����߾���퟿z���w����Z��?��_�w�Ͽ�����w�����ݿ{�}����W�������w��o����O�g/���������+�
+c֮���
�������iؾv=�ׯ���Y����~���W�����w��w���������_�/����_��7������o��������x��?�3k������������#ˎ�����g��'���~��������_���8��������������/(���?���=M������������o�˿�ş�Ig|������4�����j��eۙ_T����o_�����qU��vE����!���D
�qfi
���5� �PB_^5)�Zs�������la��
���t�O��G�9�le�Z[��(l�a�7[g�'�$%0z7xL�_��F露W����H� F����H����(��	WM>�@U��: ��u���9{�U����O�n3�?ݔt�(�����^�M]N<~�8�"C����ެQD"}z�	�������'U�JE��v oĊ�K��U*���q�
�#���/x��/�ޟ�Rnۺ�{�Zp�?y]_��
����v�A�>.��h>��}W4
�c [...]
+��%��d��^�-.��� ��7�
ͨ��Yc���f��_���^�2�w�:�T}k�wh��o�dO��@.оH��//�q�NW��P�g�����-Z�}�����1����Y�{���}��]�^��k/Ė�ө��cĬ��3�y�W�{o64�4��
oeOe�G�1bp ���L����N���e���A�F>�Z�]P�����/sn�F @~�����g��3�e����QU6����ڗ?!��|w@/���\��j/��~��(������6|6�����|��w��
+>�g���
��x�I�,_L�T_���

-�p�8�t�?� ���qӾ�?�����bx3Gc�o//�qŢfx�
o�WNRƛ	���|R1�c
� (�QĚ�wtM�'��A?\�c�_W�˝��[��W����r+�o��;sG���w��pqiT䇏̏��[E��@R��q������s��*P��*(�;-n�YPD����^]���=�����Y��N`����o��sW܉��?��k�ԠV|1�=>���}~<��|]����_��e�$�
��� �9O��6��9�Q
+�>�x�ﳞ��[��wR� �U�?&��_��WL�c���=����ƨ�
+a_��"���D��/l���t�H
1��R?~_�z�
�+�{e'֋P(&����"/����ʘ>o4���hN�������q�
d���h~�9�P&��=�����E=ޏ�c�<�؛��F"W�}Y|���.8	�F�z3�"��{�ݺ�A�#��߼3u����X�
�qł�.dD��0���
)�X��|4λ_^.�k��qC��TO��^^��{��Z10����� :uߌB��.���R�����e�%���jG������
+~����
�
�:{|����PR�cݷ)��i�O��ϲ�fv�qoZ|����i$����j��Y.�c6��U��P����|��Dϙc.ħ1{_n����uh��3���zLY�E#k
#>�� X
�}��[@p��2��u̽�U��{�~��`������>�ߞ5N������1@�����q���%�S\j\c=&���s4�i����F2�85b������C'���r	�{����޶��Jը�e�?��
S�
�Ȗ<L�6�x����c�%�e�%,�u�'i9�ݯ���e}�#>�)Na���)n��?��&`
E�r�y#9ޒ����P�J�E�lbw�����#��c��C��cPR�a7&X��me=�@�
�M���W�,2c��
+
�˸`!1_�
۞����bӊ��M���cߎ{?n��w؛���9�4�w������r'�{a���y�}�׼�ɞ��r�}��\�%�c��P|ܗ��B��'�����̏#�i��˽���ǵ��\������G*o����������O�Ń���Q�/�;��4c:ѻ��}�DZ����� _ԛ�c�mD[�6ڇPt��Ⱦfd��>k�܌�����?.���, �����+�
�cdߩ���@�9{\��~��&���+J��������o�$�}д��i+CD����l!���<r�Sa�!
;��v$ YH �w�a� ;Vh;�kٯ��
�[�>�5�@9�0p��(�1����Kb����=�7�b��Y��B�ݝw��W_\Ļ
Ί���
RM��cLN�V~~=�/jC���G�����nl"
+I�k�m������B 
���xxΞf���
�۪��-z�f�Px��d�6�^���OX#�ˁ�k��-��$:?�������X����b\:�>
_��
d�[�DG��[�b_��T7���'����]��4�]ӎa���)b�����њ�>g��
��s
�r���w̆
]o���H]�rs3D�-�6��J�d{cݏ)vݿo��e![��5W�c�?��ˢ$
+�(
+DX�Xa����n��I���3�d�,����<��lP�g�)-*R4πu
�?{s
�6�=K�	�n�ϗ��� ��n�C\���#��f�#EBS�;�x&�hL�%a�}�c_8�MvD��|��.
+G�Qȑ���:7�Ћ����B���{�ڂ}�qoJuX ��a��/. n�~WdL���z��f_�5��i�h,;�p%6cG_�2K�����	��o�-�����/V� ���O�m�>
f�:����<����!˺�{�G����KS����j��þ�W�7�"6�o���(�N��َ%
�	oD��ӰxP�wS�;u
pS��
+j/���B��5,
+x�5���D�]��
�?��r�X\�[�
�����f��1UشF�
���
��l=D��h���y�w���^^�߅I�~�Ԭ��}4�\�5GcĪ�R�G�?� ��'5��;m�y��O�=��#���[O�2H �N}�͡�J�Q	��TnR+�v�1���1��?�+_�~$���=M�8Ҍ��w(є
+v��>��b� ��F\�$���+x\Z����N=�1
���΀y���'�Y�����
���O�v�-�Wu�+g"����
�E-�F�����7WQPԷ���l���W�eEc����s1��FϢ5{9_^��t)8-�
ƭ��9�h��F�E
��w
`�k�w�hNw �j�F�֬z�
�E
���|:B
�3|'�E*�{oξ�i:Ǝ�"x�?}½,*�������t\� ���_���oLZ@�����
�ώ$O�`
�*����e��Z��ʓ��#L���^��F	`:��E�jL3V��)i�z��-��ٛg��L{eh4N-��~1W���7�
;b�W-޷yu�=.��d�V| �B}��^cEf�a1ۿ�k���������㕝iz��%�?�Vn�e$r�)�;�� %��n����X*��q���Fʖ��C��7��Pn��
�>3��s���+zb=~�]_���go1�?�ft�x:Z��d�����[��
ip� Ց
�P�4➜�UV�� ��
��go�" t��}���
�;L#<��2�>l�ݲ}�:�f����w�
eԸ��K�W!7?�V at k�)� �����u� �҈r��}�F�	�1*Oݲ)1�v;�n�lc�����,��t�@uY}D4��W�"�%��������Q�Sb
i\暑mE��
w

��m��m�p�۩�I�c�H��t6h D���5�Xbϛ�`2�� ���~��o���
�Q��vF,�
�i�L/ϧ��7u�}���
���<��*�Џ�Ԛ}���[�͈����֬0�7��"ӳ=A>�����rb�Sc at Zs�mX�-�s���]�)�-���2c��;j����Sh�m\��
�� _�Ct�ei�o>D�jd�^�=�y�8�{J��Ŏ�ϜJnx`"��~��z�9�Ӄ�UҜ9�@Qۆ���W:�wu�|{\W`�J YsFb����ߟ]�Me��4��9�5U�q 12���v����;j^�%@qc_'�b�`X+��.ܢ���c��o��K
0k�Qw��
��l��_0<�� q.��#l�q#Q��%Oo
���uSr�'�& �+� B��������}1v��Ž[s~;c����������Ő�iI.�z.��r�8�Ys<�n��K�&�:�{��^�7���S
`��'D~׈��n�E_��T��5��e倉p-�Um�s4�H*NDŽ�z\W�L
<�
�r��q��a
+�h�\��&(����o� ����f�>k��]@�1hw���{g��
+�ň���ͷ����Xg�|7�A��#E��9
-~��j1 at u�M}�BVƨ�

�Ʃ֘z�c�Fin���@KKt:"���qt|G��e�1�P;ōa�7�
�玿�+l�Ju���/�R
��jsD*Ǹ���/"F�u֘[l�J�Y����&��6B)�x�,rF�- xM$���Ǜ�v���5����'
(��3f��m�\L�����ڊoS8y at P����eЬ��n=}�[x��|vwZҠK�W��޷F�צ�D����
��A�g����Q��
}ǝ6Jn�� 1n�S�&	��xV��w
��ة�v�L�U�f!~�v��.�s,��o�d���8"b��K�5��f-q_8AN :%�&5J�s]���'h���ư��d�(E.��9ͱ��i�}�D2ۓ���?{�GA=y(6�
"�f��1#w��r�P����{1s�Qs���B�Q5v�^�;F���������v��#�={�#��y���
���F+���B^�X*漌��5?��+�/l���.�XZf�lD-a�֖fI�����q�xH)��#���n�}
7���B^�iF��ƱVyz����߇
f
+
?���/�����B|x-"7�eF��
y�Ҩ%8[ܮG���po
�g��hd�I�5cPO���_`�Z

z
ƨ-bo�ح��(۶
RD
v�K��O��9{�B��[PG�*h.�
�G�'�T�P�̻wŞ�1����f�v�Έ�Z���5���q+�(�w���H2�u�X��M�S�_�$1@�h���tc����#>	L4bQ
*���:����z��U��h�p���Иb���W��Awu���!Ǡ5�W%��Q5����P>��bo<�H�L��}�ָa��W�jq�&#k
c�r�;~���K���}P�etQ�t8+车�c�Rb7莇�7�1
Qk�
�� V
�l�ys!�2�~��|}����c�G�2��`V�Ne��ol���1
�o��t��`)�|3���A�_�
p�
�PN;�C�
�C) m�R1��tP�<�
������
+��]t�F�Tp>�]�D���=٪1�$g�qYc�����'��(
�s�2ߝ�6b��7�+�ɦ1���2�qos���u+���5�z����q�4x�{���0
���V|�7���)�
����=vԶҭ�+�Ŧ(K�)�M�k8J�#
L
�Q��=�
��zmcA��r����ݔ�+�ܼQ�o�)�k.;�VPȒ��_�%Q��,�\�c:�O=�6��>{s�[�
&��t�����L�(��&�H&�`u�n�i|�0=
kܶ��vD
ɓt+��܋͘˧���#3/��[ۢF���濣�;�r��.H�ྊ�
�~9wGp� :���_+ ��
+�)^�x�M��؂�&��ˁH.��|ј�_�ƣo�q���嫜,��fI
��ƽ�hOF���=�/1@�P�[pyI�vZ㚁�-�w�Z �Z7<HٗU��c��NHW�
��i�%Wk0�F�
H�m���6�0�1�s���.d���N��z	�^���y	/�����@����|s��i��!¬7����k��3�3f�0���
f�u/�7|C��
Z���xǛ�_}���o=�Ͼ����I���_�}h_�k��.���DS)���-�A�U/��̊�]��Kb%�g��'A�,�8�e��qktH���H��iX�*���r���Qs��
(�H
o͵_ at G�m���.���x"+�eE���|������n1b{T��b��0%(�o��,֌=[lQS�˵A�ϱ�
�ٚ�}n��WU
+Hɻmk�1����n�-�ݻ��� ��=[C	�׋��wqj9(4�@���o
��?�"��
Hzu
�o�:W,Y��gs�
���y��������ˤ�|�����=�Ĩ;n��t�P��/�Ȗ.OK���w�"! a���.�����㥉��|�͒�a��^E"�T�'��җȥ=@��a�S8��p���<�����H��#H8g�}��Z	6zp�W�T�
5���I��`+��N�-��{F,d��?����X�,�Ckř�dI/�0jqt� )�V6����1H�GZ��ȒF�f�)�ś
J`�i�p���6�?�,�'!��G^

]H^�X���T
Vu
h�K��tY���[�"��;1
�۸��Lq��a����BɈ�-���mD��U��(��3+����ͭQ�)�<.wj�+��Mܡ=�.Mn���
Ƚ�o�W��H ���S
+׾�8�Nw���C��OV at EKh��H��S�ۃ�n�&�z�4�8�����8-��M�=����|˷
���~\�^%.�++B)�����=����fy�H�B�ǣ�
��l�51��>9?*�c�X�nM;>��Q�f��P�7��!���-�F���1�h�]�&_F/�R��;&�/薯�����
�߲�
�
D��]�eS
Rv��$����������y
����D����7?�:�3��-�ok=΅|���BM�_����[)�
+Qc3�r|��^Z�v��|�y?�b5`wj
Z�k}�/0rA���k���h}c��h	^�S����p�q�3�k@$u�q%�s4c���0{#��껷�b��� ��h�a�p/�����_)?�`�XU�(��~{�T-�/1��r�O��Ԑ���
��
�e~�8Ys����A>���O�{~�ue���ì�i����{^wWW���\�Uv � Y9Q%R�9 ��,*Z�� KV3	"g0)Q�� )W��w�> �
��̚\�ں8�������{�B�4Z
�J��ʢ�(� 3�r1���ʟ���`(c�
N�7��nj*J�eœ?�?I�a���<Jc��zeiAXJ�-`��Q�
0�C�b
+��-�
��}�9!Uv��<CGuߋ��
+2A7'�r�rǾ������\M:*�L)�J�� $�zh���HZ<�bR+�S�\�f&)dR)��N���C�d�
�Ə�Fۗ�J�
��N#=�� "2��������B�Te�Bt
]}I�
+R���W)gҨg)�Bn't=f)c�e�7PLw���A���ơ��T��:�a,��
����H{�(#�_i�{"Io^^U�g+i��pЉ���A'=
+G�[Y� /f>����{Iԗ�lB�B
P$+!W8�=�4#��*UqEI��1�]�@A�d�K�fhNXB�e*x�N����i$��.Q%93��*Ea�t+c!|�N�Wi�J�ݟ�@�W�"Ō2�uyˉ�L��Q>���d�œ!���k���#HXNZ�*����69"��9��t�(L�OEeI�-A���.
"O�	�

�)�pe9�t��IU��b����:'*#�	K��GA�n.����J ���.z����{�
+I�')��c�T%�;�ޕ2(a�%���b���bTU�� &#�h��JR\I�� T>�
��^F�)++��URǽ����V�Y�t(�C 'SQ
+4��V0J(�� �����! B����a R}����HL+!����H��*)@���	�dm��ߓy%9
�d4ʈ��^�aY��$k�=�,���@)}?A�Dz!!�*��dP
@N]��1Jsh$�le	e�������Z���R��b��r�j�.�Jz�GL*2�$_�1�{�#I�e!s	�)�[�/��{��<D��%�Pe�[i��"i9�=scUR`�������/��@eeAC!1�}*č a�X��垤������|1c��F��pL�
+�^H�D1TU1Z��;�-�63�
W$���yf��t��}x�p�{�AcZa� !���p>8���#H��\�*�cJ��ɰ�
"�ߙ?F�E
UZ80A��3�C2zE!r0��Q�{䟥S��$�E�B�޾��|�(u��]�G��y&V8j'�YH�b�P�F����
ϒ���B @���^L�)��#�T�����Ő��-�ʇ/Tb9r�q�
��V+�.�Z̏LD�.���d��|�	2������M!L�� f�RQ����|�T2Հ�/��sM�Α�\�X:y�_���Q":'Y�/�O�$Cjr�d�K�]z�e��B*�����<�`�k�S����,9��E.��˼]
+E~kY�:��P���UqI%׃�I�RA##�%�+{���x)�儅c�
����k(ÇYVx�t�1�������pR�1
�\l
�Y���� 5h9��G�UP�'Svy�SUP¤���.�f'KP1�/)�-}_�\�T��t/��89^4�t�4O^�ŠblgY	i+
���﷌��A�c�(-��[@�b
i%�lJ(�
#oG�v�*���%)��J*l5����v�vRA+"�d������tdgIJ�.���+r'Q�*(��ȣϪ��� ��iy���R2&	id�8�W�)'�5�� tt�Tɬ,���NNA.�,��r�A�$�S�"O|�8E$�ߚ�[�
��!�VJF�&�|_
�G/�N�P�H��-BvB'_Fn��<�,���U�zPI�'�qy!�Y8Fx��
+�̝bQЗIurAs2rY�V!�R2d�ȥ��yiy���fiI>��^����W
$yJe5V�*�9NA#��a��R����%
�A*b�}��(#G���O��JС"��*�V�d�ܴT��FE�����lX���͝Z-!��H�x!�ZB!t�I�ZH�������MN,��ȗ�';PA'��
��r_PI���%�O�䮈"��J���v.��
Y�g !�����eB~�,$�U�@������#�TR�
iTeiF� ���FrYiU1�Iگ�|v	�w ��0�^BY$f��!z��'�|�����iG^��W��8���}��a~r��Y��$�-
!WB�gy�V^Q�0�Q��Y���j������M%ʗ�Q
�G�L�
��6&Y�	�i�~gU�bR�
5P��ς@O�v���{$&�
����r4j�n�@B�A 
A�S
Ш�_��pB-YF�蒅���E�[�_��r�jmA

)4��RD*(��|H�����kRL��pE�!��;(|<?�e(�������jZyM.���蚢1�
UN�ט���
AKHH��1��!�����p�ӎL�ɇ� ��������T�PE>#	�d�
:�"Y���O�%^�d.?�I��b� $,`�����
+�I��}ya	�h
��9YQ����!#�G��+ȗ�a0���Ш�
%d��>�!�0���a�|�³��f��JQ[��q��/օ˛tIvY�+Hm���ӻ�����(!�
+
%�A�
d�W�}���
.c�sXJ.�R*�b�v.r���
y!��ESWF�F:US���DGB�MS)�9v�Q+�C��
��:��f�W��I�%/��`�
���H�U^�]��b���������B@"3��I�?���DU�T�,�n�.!ʨ� �����L-�β*��2�
�\���(-8�@Ƞ�a���
Ш4��AT��T���5/$men�~����F�`�qKY9U�����	*EC{�h�<�<rA��P(�$WS�\˥4��C�4$p@�hd�M%�X�I�1F�t�VE��M�������hT Vi~�

�B:!�E�i~1��A
��H��,&X#�P^�od�%j���
*��G
 �&���@J!%&
j����������T�X��HF)U�Aأ�V�2���O�$W"�h��b
�|�;!)�b@�4Ȝ�<j�MwAȤ��H$�W�Gcd�%J'o
�2C��*�_�B6PA'�T�}9u�J
�q��-V:s_�/yMI�Ԕ�����Dz����
9
�A�O�E�|�"9�(V��I��2��%�U/�k�d�`.����,՟
)dO�s�)�U@�G=�WK���RZ(͔���<~W2ɂ"�o�ojl
+���²��*L��֜��^*I�D.I��ꍕ#�E����@�J*!�Ie����3��X(��� ��dyߟ�������ݕQ7�����b����
+��d��E9N[(y_��h"2�
㐷8U��+��I*_8�g�U,�O:+�y�C�̧�
et&YẔJ.)+/T#G7"�i�e��됃�<�-��Wr�QN��G����"�Jw�i��#L����!}r�I�q��>�̯��
��O�(#ϥ�q.HLE�1
+g !u�If�C)��R��2�/�FB�Kј��G�'������[�B�d����rQ
+�䴢.�2��f��3rJ�

 �:��#���A���I���*�h[��[���Z
+�k���
�//%�
+%Gr�)T�D)Y$w�X>�
�l�~ &����Yە��
�B�1�蹠r�K�3E�ڨ*ր��:��Ƥ*g��5�tW2���0EG>dM���$����h�T>J��zGO��@���TV��u�X��
�
��ݼ�JK�S����
+2-�^���YV�鎢S��Q�ai=�s_F�D�|}Nݑ�D
��
N�c�发Ǿ�U?�9Q�T��B]zaALRFT �j��ʥS��(}�J���P!����i���,8�()'�-��sg
?�1r<�(
W�X!,�iT
�>$,\UP��U!/$S�K�
+t9i�u�?��Go+
��](%D\)��$C˨��r�G*g�L ,�r��UQ��Ŋ���j�?��ʺWV�y�9
HZ��
+rN+*�9-�
`�aEye%%�Q#$v@�d"}.^���^J'�U��2��
+L>���,z��9
E�d��(/,+%�U�2	Q��$/�2z1-��NU������],����?��b1��L~�:���58$ˎ����
�H�\YόQ�ą�T)N&�o}W�3s_.a.UTXW��[u*�'�ŋ<�V?m�P�Q�'3
*�@H��������G��e�;�T����Y|Y^e3��џ}Y}��*�P�ϭ��B�Jf>G��S����\�i)��,/
A����)3_���Ͽ�x�AE�	.#)[N\RF����md�f�2V�ϷA6^A��,���
b��,�&��ރ\5=ңAzZ��i��
+i��<�?���o�7���_�+돉zpa���
���m�M�����5����c_A�U�Z(N
�4-��*Jr��V�W�@\�*"�Q�����k �i�-?K&wsd�ۈ�ª�U�.{�
p���Q��9�~���Y�^t�d)=�
+T�=�.�����
+�~q�[��1��'o�PmzO%:IE��8�
+o)|Y.5���"���(�
�O,���s�i���
}�M9w
4��_��\�6J��I@�"�D�ca�G=?�0�
�E����B��a�F�Π<����U���}��=�����V����;�0�h�)�Sq�Д0h���5I������>����o����o�7FH̬(e��Y���Z�����TO��?�ǟ��7�Gn���U�����?�p�
@�3Fy
X���P༅ʉ����
t����+sN+�$]9�%`1*r��oK��:����
�W

+�,�-
��%۷͑���n��6��y�jm2�~�

�����T�>F!��^�&K�u�i�½���<�V^��l�A�����k��G���|��̏oY��;'.G�_H�<�y][�$��#������0ALF	3��
��-C�{�U&��"r�V��,?���1�_��z�7wj�F���rS����Æ2x���!Ê���

}���
��CL��B�bR�����eHX����/������_���5��3���!���]�˰g��C+���
+&��� p���P��(A�vyi����o�}}��>�G3;�s}��3������o�h�3'����>����٦3o7V�Ղ�##��{���ۜ����F'���24�����_�_��<���POI���z�\�v)��
+�^�V��=� o��zAl^�ݙQ�oMI/nΉ�bvq��c��S�։�Ux>攵a
�$l�6�M�mM�OmO��
�nܮ�c6�(6��-(Z"VySĦ�M��^=�[��ul��hd�s46�9�Y����]$
n�v�J�>�鎽_�5�n�|*:���������t�����
6��H�
��;��/�Kj�6y��L�'�':�^>h�st�u�.�fXG
�ڤKы�u��U|16'���	N���S��J�|&Sʩ�[�m	�V����q��k}�w���v��c�'�qquҪ��ԝ�)=g���
�
P���|�C_���/�9���m���"nѲRv-����ʭ�w^�n}������wj�3�u ��|jA'�̊k�s�̦f.�*�1��XLҭ#o}Rպ9.m�]��П�CԘv+���I9�=q��6:ǯ����g�gc
ҋI��n�aݻ/7�S���S����Ti�^����z�>��)�t�nP`.�rk�fs�s,c��)DH���Ԝ׳�����?cVu_Ԧ`m[5DP��,����*�S��
;��Ĭ���y��{�����}>��(z0��=����Q��<��&���)�����I��Eޕ�8I�J�9�=�>�:
��:p��{ׯ��Y4_ك�f�F3
0�wlަEѵe�����p
;��0��u�?�
���]z9�Vq�9
s
�nqs�#�J�r
~�_��jn�;t5����A�&�h
H�d=q'�
����
�3�9α�IN����e�����-�ƤSھ=�w�ս�7�
+�']0����{�nam��>��
+.��a�ZَE|��Sև/'�G�nU��Ǭ�w���
�F
i¡�̱��gYG�敭�g΁~�90�=�o��,6��n�;���
�[�5��
;E{�e�F-��G���������Tׁ䬠����cVY�Cӑ���h�#�Ş�]ս=�q�ŽS�X|����s*�Tt�
s��S/JB�p�^�tj�	��1��;M���)��=�ӫ��zc�mP��D,��iy]Ҧ��`�mM�~�����x?�����柶��y�Y�xk�w��w�\�������a
N�qO�-��OG�����_aӊ.­�mMvV.~y�=�S��I
�p��>�����z	�R��Ne�Ћ	�I�2�>�0���`-�����t�<�t�~�J.Fg%3�Z�!k&\�ƴG�H8E��Yycʮ�&��
�yΩ�ւS�Gx5��[+Ly
ʔo`8��Kw,��肁�9�
+<��$�jq«�`�����Iڃ[�_~�^��������Bcz�|)�4���kR.Y{�)�I���}��t�Sq��m��$
�)1��� ����
����_��	�cV���������/�
�2����*�;V^��\��MKߡ�]��]
�	{W�
+*y���)��w�o䳰[͋9y�Q;�*�w�C�S~� ƐE����l�=:I& ���3�,
P�p���r��پOVeW�m6�]:cK,�G
i������&�}=����T�ý��G�s��O�6'��n������D&���>���TI�����0w��Ϡ���ܭ�y��������Uٱ鐴L
�����x�	�Q��

D
���k����w�yE+�GN�g6E
j��8� t�CҜq���V��ͩ�������1�;q�E/�'���|o�.�`���>6#:��瞌L���=�.[�|��_�g}
]P�l[$ן�16
61�s�g��
���0�;q���'$<Cc)w�	sD	��5��f�`]
�;����S
�)���:���ٚ�4a
:VrA޼������߻Ǝ�Wϥ�_G�ۓ����6��n��~��pO�?j����3�\��鏶��
���
�iD1���O{?|q��l{��0��V��Op'�
收n�}��ԓ
�LY�A�Ҫ�.Q}�
��+�h����Sޖ�+:�.��{�������YgҾ���
%�Ii�
ؙ�ٙ�<��E{!���_#I8U��� �^�;5��C/H��~����b�4J,���N�
��f8'6���
K/�.��Hv��zf�|9
�
+{O�;Eu������ø��-KS閥� �KN� �V�1����Zp�4�ဎ�x���w�Yqs�s�+�78s���
��UԐpI;veW:h0��(	z9�<|;
����D�j~�˭&��󙠴'��n��

��漼��4�
+���_����>��.qCܮh�xDM�
֩$�ϰM�
��&ßa>�l^���:�6�]����vm����߼��},�>��XR���
��8���KҔv
+��
I+�6
�:��7']Fy¡�,�E՞ʭ?y��Y�ɹ�~�5.kH�g-���6���l�Q�&l̺�ڴW��:d��Ǽz��8	�f{Bz.>+�K�
��6Q}l�_�9�ݘנ\��:�����q���|�
�PtZ\�=�=������8�hl^|!a�4��k������

;�Kz%�aK�A�)8��DA_����3\:a�f7+wa��-�;㎾c�����Ѹ�_��
�Jvf
�����q!�K��������i�aO6+������
�|���ī�#��g��g�|�W�k|N�@��2�mP��柌̫�w}�30�3]=���W/]���t��[��SQ��	�Do�*oN�ur�k�f�&�l�v�
e_�!m��K���Xf��s�ɤ��í��_��8��Z{�tg���]�o���7�VⰖc6Yk©$�Z64��b�w�F�^1_��J<�S�A� �ѤW�s�Zid��z��V�^�(R�v���N��[����zT�ݐJ�
)%�E���K;�~�*j�QvN�(��q����
!ܒ�
؛�q}�үL���i�V���q������y�mq��{w�|=����������K����u�s�k3!)k�.�]y�����Ѵ��ޢ^������z
z ���l���OZJ^?e}LxU����
<�?�
+
\N�/�!BC��al�ߵ��=�:H��>�,�l��=9f
+/ �^VG,�����Cp
ly搶l�r����7l�w�z~�"����
ޚjg�|�w`sJv!bӰ^Lr�n��;�tšt�ّ9Imtl��s"� �N:D7�z?^����Uu�yR.Ew�ƫڱp��g^?�~���w(���|�{ :�/�qCobVϊM	OG�{?^���~��n7��3):zM�����S�c��"�
�G�ޏ̵�Efz>�;��ks���OX�� Gv��d}0o��3��gz>���}��a;������^�ǔ�(�Yŵ�O�i����}��
�\������>\}�{��K�?����:��茴�w8���y��9��m�t���E��G�"�G�%��e��鐜�����n��0�)��;I�� �

wɻ�>Aݛe�<�(�I���}�ן������Y���,
�1{
#<�Bۙ
��:�r�R
Eoگ���F
�
M��o$���p�1X���\�!<��ɺ��JH5R�;0�y0�Պ	�A��d0�Y1
�.i�e�*
�=�^k��
�ޑD�ʓL��JvY�M/�$8�)�:�-�H�Ղ�K��z��d` `�m�Z�K �9�p
+kw,��Ǡ���
;AUʧ��C73�׳+���U}zI��B�&bE���4�8��f:0v��3�
�dʈ
�t�a���ِi�u�����t��+[�vICt�u8<�9����ݢ���?�E*x默۠ڱ� 
}�7�uIo��y�=���2a���j���9n��nAmd��/����w^��~>i���f��m#:+:��.aQ���UM���-�k�������U��%�6���N
����O�m�G#�V泻���nǟcs�Ṇ�=b�_�X@�����w��~��������f��3�
��Oi;w&�g��}�'z>�Ls����Ƕ�{*nUd��x�ʯIy���<���D�[S
0}�w�z����>0����������g7 ������x'6�9G�3�c�i���;J=_7���1�x�\t
��Ex><�>�������k�c�	�����׹�o��
xXt%7z <�Ny��6�W	�`��`bn
wg�w:2�9� ]
�fO�xg	�N�^U�p��0�

����}�{&
�f�A��6ƅU��y$�w�����G�
+���pVqp�����I/�6
�tfAO��[�{�J�
�Э�F�&m��N���;�W�����޽�����޲ޔ
i���i�l�E�	��I��w ���)�Ixh�+
8��V��
��ު~��Kڣvֱ��u"��4�SҀF!��`��0�`ʸ]T�tk@&m�؅������D�`H/�
Y��Gx`G4�E��X���MD`�k���3�fM#�}�7B �J��_�� 
nژ��s�zS
=peq}�&���l����1

���9
+�&j��w�]�&m�Y$
�SЯy�0�
��K�0��nĀCG��=��ߖ�:���]lZd
/fT
s���u���q��52'<�U�?
��} �u����Gv�:�ڤ�����4�%��G����?mN׿�k�m�7��sh
��������[M�$�/�\X�{��|7k��u���C�e�[�
�y��s�~u��t�%�$��&
���Q۟_޻�΋��~v����I�	̦�N{�
�#
X{�A����������������H8|t{x^T
�����`s�u0a^H��-q;��iA��K6Y�G�%�g����������������w��u��LVUO�n�e�f�֊�V~U�
xiƧ�.�6���g���<�@_�(�"��3�V
��N�$}xh�F�70
+�[��n��֕D
��
\�w�(1��֬�{�{!�9�U�7f���o��ހ�����������n�؄�Nq����'-
+�.Ɇ��LH#>����z�#j�c̣7Ҧ���O'Ky彄�_- =��<���J�^RV��A�"�t�]b��Zy
+�b��?6���
+�mΰE���q���Zat��L�')��'	�!�@*���~Y��ΐY���Kz�|)�/����Ay�3�K�#��S>�6x��^	�`�I��#� ���Q�-�޴r� ������|�^5�{��MP�5�?�p��O�P�"k���X�]O��!^uJ�>ر����v _mMpO�fe�)�Zq)�_�
��_����;�Ǹ[�ڜ�=���Nj;7�5�ϾS�{����B���>j+I /]�����l�a�
�#n�KH�&`���yg^�wW�?�HY�u{xVr~�	������S�	|NT���^�o+u]=����Ʉ�ь��Nb�c��Yo>i��'���u
����
N9�|��]���p����;�3��^b�����
#
��S`o�>਀}vf�cs�fܩ����%��	��Zh�9YG�a�mNO�����I;�9i=n��A'�^Ov|��Aӟp�Z���̪a'm�>�
+�ɣ��eIox��l�mZ���
��mZ
�
s)X;3Ȯ�.&
*
����z�M~*��&#���Z�ͭ�Y��1{����}:�\̀��.�X
�4����[���o��
+Af�[�
I��`E�y �,�o���A�"
�ckNx6�6쁾�UB�%m��xg"�Y���޵���W�+��еtP����6"(�H����}�_޳
$�2hq��	
8A*`2N o��D��vy;�2i6�{m�u
&$<�7r|ףb�l!@��^
?
�
+߬���I!?��V:4�M��.��7���ވl\¥`�Q3!�h!�`f�YҪ�A�*�։.5�}����������.�="B��b>q��	ޑ�U6��U)���4ତ[/�;��
ۿt�=�����ṇ��14�ǭ:�0k0Ǡ9�4�}�=>�>�z�}h}Bp�kx�W-ܚd�M�����𴙿9�m_���l�Zzy�����Pʮ�8�����58�

�߫'�%/
��nM	��:�
���ϩ;���W�#�Rt���������O�	�!l^���aW٫{m��C�K�5��<��ڃ�_��:���G����u�S�KX��̪�	��ٞ�����Ǧ.�!6�\�- ��b��>�F���ôˠ�x���ոW�½���MҘ�Ø8�
���0��/���3�=��]��
�3㳂jlA|�J[2�e6&yǷ�f�Z�
p �/�a��AO�|
�X%vYK
+�Nx):��\��\{������p�0p�C�C��~�$
:Q�nRg�3dBj	
��~QSfQҕ^T������>5v
��5m�4pyo�؟�E)�V����d
K���1�{ W'
F9�R�`����
���ϨO�{px.�ԋ�N�&�
��bJ��jBt
+sɻw��=X��?��U�p��d��?�
��L����LP-�CX-`2&�FM�ήޚj�L9���җ��l/H�#
����%<JVvy�f�c&�S'
7�1�opo�gPE�b0'���g{�׶��Ga�vm�scqc�0�2
���� 
���7�����?lU��&�m�ȥ���G���&îk>�f�*�y5�=�1oP�;�F�
ˀ��W+K�Nż��,�v�14�=o�mͪ[�QMx�J��<ܣ��7��ܚ�
�LI.Dm��WdU�)X�06)�Q����5���'?�w�7[�݇�NI˳o�`�J�{*«�
�>�6jv�U=�����=�\{*<��eOitB
�GX�a�L���Nћ���V���f嫺��$ma�1��\���{��G'{��aγN;���A=���-ޙ׮�no�!�pڮ��x{���Խ|�Q�3�>\T��TP��hDo ��Pg1�s���v����?��$�#.�2�e�׾�Tas�c��
Y�Q�v�E	����y����
�E|��Tܦ�~~�U���Ƭ�$��V�.Eg�!nX�h�m�rΤ�#7"���M��ݗ��� lXG��Oؕ=�y�<6w�Fܪ��neoʯ�
+NvY)}�\����J���w`b.�
�
)�Q�
��!]���Uбo��W��u�
C���d	����L*��vW��n
�`�598����{���5;�蓸�_����鐒��d�;V��TH�I/+��ߠǼ�_l��ma�V
+zל
 WB�ǫ�9���-e�W�I�
ҭiu7�2�RށQ��?�
�wW4��a�??����\�9�/E
Fi��?�^��^
�.X)�d
�.�}�U/�{N^c��-�
<p�A�;t=�
�Bu�
�w�o��4R��r~�\�p��M맓�,׿^�
��Yt�(��zܣ�&\qخ���j�}�%눻em1��3�Υ�Za�9<�5g����Fw�����"�Wq�v
?fSwo�IjcVu��I��J�;�ŭ{��|À��p�N��]�]���
���T����������c.eoĦ����Ӓ���{�����\�;�O�'�a�
�z7`DkYJ�:�;��'ZJ]���˷j��,���9aͫ;]����E84�؂�|
���DW��75�yy��$�����!t��Ğ�ҷ��U�O����E,�ڝ��ʄ�S�pK������8%�o��x@�B~R�-k_������ރI����tX�j������>���X�m��L���.W��6t�WۏY'�O�OM���mbf�ʍ�T��݈Uގ�J�*��b���~
:c{N�Y���k��������
.;<+�����-��wK�t��`���P���G`�H�~~}��s�g{xA�y�W�kʆ.}G�
������5dK�WwFm�'
�j̪�$�"�~	0����qlsU8`+
�skD��EU��E�m�C�����s�xY�mVtz
�ɖ]��liخ�oٔ=[
���[Ń=��dB�t��p�9�/[�ۙ�}��<{
x�����K(�	��)�Y��q�?U^�=2
+��S"�)��,`��!�nk�S�H{���ف�o��M��	���th�
"8z�7+RN�#i]���b��:�|��eH�|�_�e�7d�oeB:C�"i]��H:ō�Y��KҚ�K �JØ�`��-wx����
��+���J
+�ڻ3����ೈS��l����i�o�&�-�����A�%9}� �3���l6�٩�����l[T�����UZ��9� o�[U�Q�����������=����'\�/�.n.���
�>��U�{�	�ٴK+N85��#��� akJ޶|���Y�[Y�
�M��VYn4������2��,4_�q��cNY{ʥ�g}&��<�3�T�3�Y��^�o�6n5�(��X�;����g̮��ЕriE[6^�ˇ�%�Zt��
������Y�7K#���ؔ�=:��|�F�^���7hp�{[�h�.��0�	�3�1�"G
�����Ob�Z.��k"V�0b7�cv
;��"\��W/?�>~�����n`�z©�K�T<
ŀ��.Tb¯S,}�>|Gu���]��}64v?��0��y�a^�?��h�|��dm�y��Ă�shy)��-PK	�@	Xgx`�V�__�
{1�9�5��Ϻ�Nq�Qrw�C�>�1
�Uڰn�Կ�T={�9�cU�->�~w��xp����v�@̫E]���9ѹ廽����3�����{h
�Mx�<�
+
��Fz���TU���\:`0Ÿ
ޕZ
��X2��(F l:�S�����W�n,�^��
OzG���7�1�Շ�n
���R
E�BM���@��d`�Tp�&擳�\ܯ3�Y�	�иӠ�

��<�[u(��.�Byw:�Q��=3��V,h

+/����>/�Y~����ǜO���&XG�8p��ͤ������lZ�ά�fc\p
0O�δ�ll��G}����42�h�Ze
;3���yE����~��PxRz�{�V���F�p4x��p���]��s���imxNra�)� X4:+�O�t�=���ֿ~���⭦w^|Y�����,`m�N�b ;*2�S��o�͉�bs���;��v~��pj�'K�3U�܃W��~}¦�
��`~v��½e	{7$ _�0&
Woc��0וo�Ve��'���;
}#��}�u���"N�������w���p��Pܭ�ٜ��(fe�/�O
'�4G���
C�q����f����@��x�X��i��<:up	�uH�.�\��!|�
�,�1�6'�g_?�|:�,�?j7)#�ᱸg��ׯ���0��sKZve��n��wrk��I��1�K��q���>�kT��E7��b��k/�vg�Ws#��*ߗZ
�2	Xm�\"`І]ʾ�Ǭ��Ui�}�xخ��A�U�8�0�Sr���6�A�8����l��q�� �5x
 �	x
�6���0���-�I�6/��.�Ƞ���ki��s�w�:�%jK�omٍ�
�Y�y�<H����G�!�,�WK^{��:�
+h��e}���{&�<tk�ťIby���"\(�x����~�	��A��7g���TH�ssj ����JD,�
�%�P̮�ŜE�iP�z�4�%�x=�wdkNX
GqO6-����:2�}
k�ͮOؐ��Ϯ==���o�~��N�w,�bH�ٍR�S.5�7v�Ҿ�Wڹ
8��@��̊�%m&����q}F|ş�z���׏���9I�^�ԟ�k
�s1
`~��'6u�ݭ������I��Wރ;E�؂��ɻ�����~Y��?�|��߷';`o�/f|rN�H��9jSsam}�^4�Q
��=�p�
ǝ��W�HMC�Y�ƘEݹ�T~16��N��p7���cY[�eR#��Ë����
:�
���u,2��x�*���5aWt�,��S�GX
[�p�j�`ߒ
�Ÿ[Ԉ��i��ݰkh$��u~:�{F?N�˺�}�K�
[�����~��N��ǃ�����޸���.�f��
	[���֤�U�c㜍��J�o]��}��P-Ɲ�V�.���(��6�:?J���Dp�Fīl{���lQ��yY�S^q+�w����}C׈�q0�wb.I
�^�Yyկ��?\��
ǂ���J��3���)���p�=�V�������ȷX�ȗ�
+LX@޻�l�q�

�
�B���e�joE��u+[~�>k�|�k
��*�	�
+0�
�x��2��3��T�D�u��\�����3+C_��[��<z�>p-���uiԗ�i�
$���
��_��]6��oɢI�Cg �e��#@E]����]$
�n��
��~�n#:����
L��-	{�G��������l=m�81/hH�U����`ou��l�?�Ezqc�{b{���MPM�@�
�-�n�a
�
0��	���1�Q
�U�O/�]|?i���j��D36�{$�b�|Z����l=�+M����n5s�.n����?��YǷ�=k��q+��x籤M�� ����$M�L2�P�`�.��r�����EI��Eq�^H��[T
+SaK��w*j�$
vxZ���vGfD5IOב�_ �D-�Q�ÒN�n�lO��pǕo0�Q�5�=���w�pj�Y�F�p��g:lN���g�e�$�Z.�Q�0��)��$����%�bo�0�s���+�>��ȧ�
ـ����8��zd��Ǻ�KjEfu�
����٠N���Z�fY!x�,��l�7g/��9�ʀ񿰵��[T�k�V�?�E�c�G�;
ꞍYi��Lס�۠�t�T��-㾱�I�w�3�h��y
���x��D)�SjQ�!���JNf�0���5K���_P�Z��%�ͰGS�
��
{t?��%�l���#O����TH���*a*��)/
2������I���I:�!>p���Oz>ܞ�W�]��s�	��4r�X��/�Z���	?�!��d�?O�f�lǗ�E�vc����.5�=����h]ao�f���ߠ�o�
Շ{��o`^���^5��4��]ҙ�V��R!�.lg�؜� ̯!�F
��
1+�f��S���Y�ȧ�>� �����3�z���/a�o5��N��)`?y�p�

����d|����9�"2���y*��\�l����O�F�{?�xy
{��vMo�b��΁��g`� ����7R��LH���։?<�
����ـ^����[ѻz-:/i��06~c?���u3��O����^�ٰ�u$�;C�ǜ�*�-�8M�h>�շ��o���ҽ���+z3�sŖ]ջ�7/N�~�eSq�^X[Ys�>0��_���
^�Z���'���
5��=�u �։קU-�S�z0�����ݐ�/�=�u&=��8��z��Q���m�4���
ZaK�
x4�l��>��]��2�Z}
�J�3t5�<r7����\��+��<Ja&(��U�0e����w�=Uw����,��

DmC��կc��w��
�t��
����<0v/�(4��~0�
���\J������
.n[�'n�,�2��(�G�ڨ�w.��N���Avy"�|�nf��r�����gZS�
�E>Q���_Ɗ�z^1��$�vgJ���*�_���5j�f�v��׳ݕI��
�� �P�~��� ���"�F��B���4�U���kY<�;L�
�x~ۡfE�j��
�
�PxX��?�
�fC����V�(�(.8:>��izi�̊�N��
�(�ȑ�;�P�;Ԝlp�f&8z;����

�\����K܁9�
1
�t��o�;.��`���&����7aWs20橀RvJ{W��y$��s�~F�U��i����Y�b��U|���
+Nl1���V�r}Nד��H��M����[�=.�>����Z˳�)��*�ao�n�.�"
:1�
���T	�g�.�>"ƽ"�
�Nh�Ә�ʝt�` ��|���~�6V�k���p�F��"��d��zŶMÎ�U�M��qӥ�\w�[�f�5�0���G	����j��E����)�ɵi��#��Ŵ��4 �)aS���#�l
�~M,}�Q�]I��y��sz�N'30�A%ooU)�.+Do���F�Ρ1�V
�R:d4�����<�4�rF�Fb>a�UP�y����׳�����̈́�ڣ�w�&��1�I��~aA�!	<80��{��b��s	��4豐V�I;�������"��q��)E}�9z�_y�|o�g���+7������
+ޛe�X
+�a�70�޴&�/=���Y��M�����{v�–݀�kc�st8�_`_}RK�~YW�)n��y=����$�P�'���J�/N
+�
+��Ԇ̣Q�N
[�E�q��h0!.Xs襱UGܡꎻu��O# n֗r�:�������Q���"
R��*��ǽ*
6qiؓ�TP�Ȯ�M��ƑԢ^n�p)���5v�%��HҫS�����~���G��^<a�z��d�Qg��V�i���*����&2?���W$�*���-� ���J��⺴ͨ�
����kblL��N�.�3결G�Պ좴�/�䂘S�����zkN݆��SNyf�?��쀭-��䂤!
8:��0���3^�M'L{���ЍL�|iwQ%��٧P�&�>���
3��4�����ĵk�>x���	����
��
2�|/���km�$�`�
�Sҫ��m��
�u
%��
��ܘׅ�o)��>�䜊��u(?"�6�3��1���8�qZ4
�a>wW5 W
"Vy��vw%����'���"iO@w���[���B����R����i�J��b��~f��}f��^6_�52���c��fzEg‚���
��!�?t=���"��Th�.��Ke �c
����������F�wm<���_K �E�1���,?mzmB�ݱ~�x>��}�c���B{ÙUй��2!��`~�P���
��� ��}A\>ᕴ�Xz��-}'NI˛%c�_W�Wބt0I�g
�}
�э�_-����O܂!~
Ҩҋ�+a��+�̳|�>�O؛†�-D@�ϊ��'�'"sҺ8`^���
�Gf�Gw�'�6U������#��[Ox�v:%`XU
+��6V�*m�٤
�fz���*�7�:5��C��D�� &

�T��綡݈E\w(�6�%^<��~�Htrs�{,i�ׄ�5;
���)��i#w�
����;�b���qîǠ�u�t)���z��/֞#6�,����z̦�,�/�YV�^����9�Cg��%(�&i]�
(���_�/��	V�~iH�d]I��
�	.�LsN��-��;)�e�`W�����
	;�<��_�=���Sމ{�zl:MX�
�[g~����/������$w�嘳ߔ��piE�^l �:��ԥ���Z~�#�@x��u�&�Z#��Û
���^yOl:
[ӕ�*��G�!���\�G�
��6.8���w����ҹ�0�4��X6_%e��a��K{���nQ}tvjY%�[՛wW�
�5�}���^^��8iW�R�؀
[���dp l��xM�]��׫���7�v�m�֨l��so�c

}9�W��~qk��:�p�U1ק��{��ష��C_K���Sڞ�xH+Gq9)����l�.^O���&MҧûzSnq��84��vj1�����ә�#����o�.jT�o]�[�w��p��s��Ag5n.hxI��
��p��+�����)�'/�v��=�|�����۬�茸::�?�۞�|��~7����?<���7��w�pJ��vyk
+�ClAp6� :��K	��+:#����Xq�A�tq��#:+�ݚDy��蜨:<�;�=�=�9�>�9-������ց��s<bឈº�Z��6�8��_������߼~
+���yq�
+�#�0��9ba
ޞ�<�t
+�v�E5[���]/|\4�9i>a�6��x�v�Y��X�Q�^H	�T�̆�ʄMٵ3-�J,H�vۧ
�����gw���^H�
R���9��}HoĬ���t���|�
p����5Ÿ�;|X�G6
sN�7��eE.Ɇd�)��)��;�=�;��41'�$
�6	�8�U��
a�������l�.kA{'��
+^OIk�6�Y���#���+�i��
wH� K ���P.*�Kg���,:�s������o�
0��I9�
+��W"v��^;�s�0�oBrv�&�ٚ��$�`
φ�,:/�~�c�Lh�JzQ��{g�����l�Z?p
"�쐾?��3�~q[�+��{DM	xW
+�0D̫Wa�����\M/*y�E���"�6� �^�(۟��N�
�cqw��ƌ��Ń���_�' ?#���Wo'M�5��E���&81
8�p)��Ӽ㘝s
+��ϥ�Vc�^
��/\C~����7�K��
vdAt���N��݌g�{��S�#�|9���S�&����q�(ރsd{����F��^|�fnON����
Op���k����n�}�z����w�)����m�
V��G�x'�vq}
�utNV���+n?�V����AxVV��	�������~kb���n�ۭn+*T����{g� �'����{RH�=�$�F���9������y�A�Y����ff�Տ�j����f���7��znuC�o���
�"}/T�����T�d��^\�s�&$�i�	��T�!�h���	�`�~Ͳ���.Ո�3��XV��L��9�O��!g�e���~�繒	1�B܍�y���蟳��s&�b�"��%��KU�R]�9[�8S��gJ�$!�CǠ
G0�5*�t�t�`vE��
�k��e���\�e
��>�BK+�g�G���,�g����]�.f��jb
+pO�g@�/��r�ż�mUѲ.春���S%.�j��!$��?�&�
+��r�����KK��U&����5�	��y
t����{�\�o C����_��
+/T��K!�"���7MJ:SR2N�ِcy��,��B�,2O�LTЙ��5�b���}�	��߁z�\�POOp2�F].r�6-	�zBʉ�d_��w�7�?)��IG�{���A��
��D�?�b�S���9*������"�X&�����ؠ���9�o��!�]�>B�~?5j�
+�l-�����,s���}�l�&'��I��c��3%��EJ��{�����\�W��������t�O����j��!z����=���d� 'X�����X
�)����'م�Z���T
࿋ ���_�^7��6�
;
Ax���=Lc�H�0-�<�J7
Q"כa�6 �G���#1)fo����}f�".4�<�
�<�0�9
EY'H�11�,#ĭu�-Ԃ_
\�k��oǙ~�Վ��
��~/��BYr1S
bS`�r
ܦ����*�M�c�Q>�!���&视���yV��>�~��t"'� x�8����F��ơ�Oz@L⒯z	.~�>��~ ���&�L�K4�g4��Y
� ~��)���*vя�2�	��r챢
c�3r6��?��:o���z�%�-Ћ�r8��S)��
�k��:�0����L�5
��"���[\�m)�@��h�Y6&�`���,4z��t8N��D�%��s5	pH�U���NbL�H����V��n����{>II�@��mS���2L�y�>�~�a�ڀ��?\�;[���u��b����?��A]�za�Qd��
�ݍ�pRt8��Ym�x.7����"� �	��R�s�. �?�S�
|Ա��m�����u	x�
 �"�x��5��ߌc��S� #�RSV������& �Zr_�6�:�Na��
���
�~��
�|<�*2��B7�߮5�_jY�����͹/O�J�\���#�Z�$� ��`�؞�Bי��,F�[e�(�ܮ_k\��n��3m@}
�)i�uDv��_7;J\v��{#���Y
��<9�x~��&�Z&�]ڿ�
E���"�
��l2t����?�DA� j?�*F����
�-�o�
�
�Ӣ��Xq۝�o{]�o�ݘo;�� !x��q4�
���-@�8W�"��[$�$�8>�`���fo�{�0����z�
��
�� �`t0����*xc
�|���D?Xd��&��gjN�MA�Տ�B��0P�~6�
;��"�;�^�G��QB�y��h�$��Y�a^6i��M���+�:]�r�0P�E.�^K{�.���E��L"�� �m2R��!�p
�w����Uef9�do�
��C
+��D}�h�8����q�gӔ̣qL��96���j(�=�}

��)���@�K���@��Q
+N5 at n�r0�����]7Z�^m6�׵C?��a�{Q�f��,��s-�XBI<�����6;�_z�a�
��8�
��ȧ�h��&�|g���(�F1�s���{���e�!㹔~c�>��4���)r�Yi�}5�K{4��|�� }{0�	���ɹ����܇s�����X�8�
l��G m8�
J��3M١@�,�����ĘP�]�P���E�櫳��6�;��#�g*��k-��2����1t��
��T�r�1���$.��
�H�
�<�ҋ/����)6dw p3.p��F�K�7I��}�9�y����?

��&6�"-�by
��@m徛�Lxx�_��RC����O��P

�'Eou�|>�+���.�8+JqX��~a
F|[�@��yi��Itʏ%�}���<!�D]d
)p���x�Ҙ�p8^��Z�v<E���¥
+��ơ�O;=�/�
F����!?_f$<�';lw }��F���"�.ԗ�F�;9'��8!��v+��&�e�&Yy&)3}���{-��<���v��*q"��T���9�%
K�i{���n��zc�+cO�۽�l��b��A��zS�k�$y���I۽0���ԇ���֪�
�jR
vz��x��K���^Z���^? u3A���V[ o���Gk��o�Q�����K%�t"cB,RJ�q
��w���}
�KuɎ �S�黃���c
���ɑ[��w+uy�V�r_h�R���q�-2R�POf	2�0��9��� �M�U�Ԙ�|�&��VW���4*��e.�L͂
I�Q�u-t-E��K��ُ���z8�;��- at m

��
����|g#�'ZQ�c�8.Ң�!���
+��e{�<�b��?�.O�?'�w\��~�-O|��~Ӆ�q ����i�ql�RUދIJ��al��L��1fڣ�n\��0!|�����1�:��<����R�UU
}O[��t�>� prօ��5�S�RJ�~��rc�3/힚�q_S���
�����ۇ=�b�$���>ا��sE >s^�
]��yr&�C��B�j7>X/���i���bZ�b]��IR�����m%!w�/A۽���ܯ*n��N�3ȨS%
�=Eާrd�-!��
{,���ky�-���A�ӵ#�um��W���z�<Χ�i���/9^�~[o��� �m��æ��
�Gs���ӵ$;�u羻PS��qAO���_��4N`Cw��>-5�8.�'<�)��?[���t�.��
� *b��𽜓p[BK�)���R�H�ѷG�!�&��QNW5�t
P�k
X�ź�s�iQ��iv��Ir�
%?�E/1٩
v�0J��q����jm�����$<
��__���u���+�A����㩲B��
���;�`�햢��U9��EY��V���{�ZUl�G��>��y���Ӄ��u���`�r^������1N�a���цt3�Pc�c�0�(��`��c �Yב�v�&�q�2��F;%p���0D��{�5B��[ ��k�_*yN�����{C��)z�
�4#�r��S�EiOjӟ�5��:�������H�c9`0c8�|u��R}�3�^M����C���!�$9WRs��P��^@��<�:�\�u9�}1[��`c�R!V9)�h�J3�e�
��T�q���Kmu�+ [��}�NO�W�01r����\5��J3��� !�P�ȴ��Q���A��j
�e�	���ذ�&���W�mŮ�v��*�V�����@?�R�������~K���J^��r]��vԗa�j���K
��
�EJYI�Ĥ�?g8���kr_��A\��R��Yl��>�]���|C�'�����C�V�
+ގ�����
��{bb�_��E�����M������qy������*^�
]k�3]c��f
���
.�
 �N����2�s4���y�����|yi�z:K&�rYn)�%� ^��n{��~W�����kME_/|�V����	
�`�7s�h+x�T��b�2�a�*�ѩ���=���Z��@
+�����4��l4�|�h�z�
+�r}�_�1��N��%�]�oS��ߧx��9J)ѷt����5�7���"|���'hSei�$��Jv��yQ�]=�vw��ȓ
��
+�p}AX
�ς�i���vz!��r�M1S��ï��3��p�

�>�6���x0��PUd����y�P��b �'�]׺J>\��Iw
䥽��=7��c��@[J<l����T���
c|�u�ܮ�x1�m��']��� ���P߶;K?�P����+�0���p���v��¿:z$��
���p!�gj?4�ğ��������eI���0�(;k�������tЇ���A�L	�^]��$��NP��������Y�$�{
���}�n=�&>ys�b��3�@�X��J��9��>�iV�=�8��:���V&��$���7 at K_lFy+��)��
�K|��H����7���7��%_��a^��%��
+!�,�

b��Zs_��s��hqw��ɸI�[�qO[1q� �,�f����BM��If½���?��W�
]		oq1_� n�ELH>������$�����<����D���-�mĦ��F=R���b.T?�
+<.����{�ў�QL�k��t�����K�6����"���c�Q�{]��(��&�{v���
E�O�9@[2/
�\��t�.�~ �q����%�����$��k}�0#�W�
+^m6�:�7�9��w-b��4i�d
+xHӴ �7�
2�繚�gjn�����;�Y�-3�4ie�ӕ|��hk�����\�f�*녌��Z^s
�������\��y[}Ԙ���g
�Ɏ�-YN���
��L
�m54��NX�U������KU9/6��o5���V����uA?�
"��JCn1���Z�C&��(`�K�mw��F���U�I{�Xq
`�?���xe��ak7@���
+��M��cq����	��m�x��8�aY��-���7��Zk�y�ؐ�ܔ�r�*�i���`����\U~�
�/5u���-�m�s�:
+��V�?�G�)�:l��{
1"�

����\Qk��3
�6�'�t
+t�@��$E_�����@����H��
�w��=��H?�:`�h
+n��V<�4NM������Fh;���8:��.�J�;O[$%�
�/Tl��o�]H��^l����8�H��X��D�
+=��&�3>2R]ol���g�K�$���T�$���+�簽\ر��d����߬wz�����~F�n?�g����No	��A���/[���nz��nr�+�)V)�u�2R�N���M2S
�R�^���ܖ{���q_n�~j��?�1�B��k� ~Nו�z�%�q�)��N�1�Lj�߭
��W'@Jъ�,T�8���(
�=I�v�` �c����1O��9���ğ�l�y�T��ژ�,�&=�F���Y�d�
����|:��X&0	� 'X%�h�2W���

r��;�M��� ���4FI?Q�2̲��݁���M�NKMY���L�� :x����2��=����}6�?��Я& ۮ��
�yD��^�7��^nĸOr2
�0�.U�<����^(g|���
�0��ՇZ��w^k�x���<��n��C��a^�1r�����v'5z��Ջ�6F
�=_��l�� ��������$~1�E

��,�	f�F+�e�2穒��X��x(�g��j�FFE�+���藅���Za��ʌG���9-s���Z
p�*C�bCt�p��	r�I�*�
cfُ愹O��P�ڊ̧
���
#���N'��p�q8�
6aC�FiE�Jުb�K�
�\��Ze��
%�ȼ�S��
y2��9S�S-Rz�b
*P!*�h��(�ڂw#��a�����WS��f�S
���*@����z1Y?���Y:�T�O4Ka�{ݩo�*nnuf�����?W_�f�
��~��ܛbE��!|��C�8W��֒�1 at L��?
g�{�M��'RZ���)2�`0�m�'�u�.��vgї�Nf=*���:MI?�����?mw�뇋}v��?-֥�X�*�a&<����`����@���Y��QL����U��rpX`S0��S�\��S�
��n��8R�
�ӻ��"�Ŏ�/�
��;�,1'��|EƋ�
���Hi�m
+�p�&�.4ČCI��8#��vWi蹚Ul��"�CouEʃA��Z��XƋyu0
�P���	
�om����1x�*�w;�\���G#Ƞ�G���>Y �rs���%x��Og�{C�.�1r�i�St&/'�)y��Qt�~
kU�B��P��Zc��bu�3���.p0'*F��%n�����
+�#1.�f�k;
+�<�)
+��K�
 /^̉� ��u2�ך���m���w�g.���JK��
��n�+�+r$$�^�-v;
&E�#�#��A��~
�g�L��!R�Ã:�^-�x9#�z9+�|rԇ;����=���ף�r����
+���Y����(���0��X�,8Q��]j��%]γ���*뭳�	-u��kCy�u��t-���QV�a��1�M|�ڜ��p�
���0�����X[U��M� j*�LYN�����sH'3

�������
���
�
+#��Z
�4K�q������������T@�|;�%YĜ|yy�;+����d#���>���lj�<�
?#���@������:�N�e(mmګ	F���Y��5��n��F{��s%�t	�%����K����^�n�!削~W�
+��۟��xv<I��"D�����
+"mjF�|c��aZ�)A�ە���km�o,RL�B�W�Oxa�&C ~� �ݒsB
n�|�
+��
.�6IБ�1R"0.���g�j�q����^��]�)�'=�F�=����>b~q�������3-��,%��DZ��1t�&���x�O��!�N�l>]
"�<6
bc-2�HVA<�q �����E*�x��k���V-��G�~�T��v�(�Z���3%��8��E2�*/>������g�z�t�9/��}����BU��L9�$�$ ~4.fg���J{�\Q�u2Z�����c#�BC+<�y�
�}
��\�܅C5ww���p��{�=���p��l�MN�>��`�2V��+ioT��Ђ���o�~��v;����]�~
](�fB��AR��� /�P�-Xj)�<�O~$)�}�P��n��D
Oѳ���Q�E�O\���Ғ�|�xw����G/.��v75}��ӄ�����Ε
�
+�RCɷȰq��`��������Xd�
N��,2>�6S��e��V漘�Fݖ�^N��<��x]�C
:J=;(я���g���1r2�װ
5q�`@�%�C*�X#�++��<]>�����`�K9.�X����C�

!�
��h�$f��&j꒞,��z��D��
{����f�efeY��6�2_�n�k�*��{}�_�r^jk�^���[�hـN橪�^N�
�ST��#g��ܘ�֚�qw�
�?��6OV��c���үC�$ g�V91���a��y�:���<��Q��<��`����^D�U) [<�A���u������
z
�11�y�0y�at�M�M:����
+�)�	�c��;R��2_������*�YYA�Lװ�ZE�����n��bc��l+�ws��ч���V.<�Ҷ;_�Z��F�f!�$ǧe�D�,�������{�7�2h�-�&mM�^Y�
�n
�}� +������� �A��fkZ�r>A�S�e�����`����ԗ�ͩ�
+�.��5+@>����
U�'ݦ�#lS
�q���?H�^�#����ͰQ_�C�À ����N
8�!G�RS�J>¤��V��
�S��)N�y�
�L�a'*
�<�*0��i�QB�a�}0��l������~�� �
P�#�\��H�K�������&�&+��C�������*��F'>�2�A�Ԋ�L���B������]Pw�\���.�g8����X��T��Z3�LՄ1.�C$��Z31���z��"�8�s�3��<�Ӿ�2K�T��喌7;ݬ�T#����8<�x��p�
�XV��a�
1�F�E>�-
��k��k� ./4�a>��w�
g�Б
s4Ł
Nr��:8���/�c��
�B��5'9.��>�J��g���
f
�}whY'J
��\�QJJ0�	�F1�:�BXV�
��V�t9Z?AK�
@

cc��
�}
d�8&tw�7��<U	��%�V�
�u�Pσ~b�iU�!���1���WF	#�|���b�Bt(�%����t��Ե��;r�Og���
�h��-�w���u���nv�}4����Ҁ�qlֱ�K>�-�Z�ˊ ������>��ZWV{_Ƌ{�И�j�����x����8-�"�㘦�Ji���O䨛*A�����8)��-�E�)61����7���/��x.td��Lbc�'(��Lᅶ��|���Ў����f�O������%_7F���<�C2O7*�� ���\/F%襈8�$>�$'~_�s�Zb�����4>�0NL:V֕�j�c���6�`��h��Z.�E�%�P�.=��]Ђ�X�]5+R��NZkG}�A����4`�k�&y%eO,,�
�7�Ɂ�T��Nv���,b���E�vu ��`NHv3�gz8)K
��i�yCHt��kɻba���u��fQ�7쌔����9S
+��M`�����{
���qv�fWy�\�m���^�9h+O�V�:DyK��h��b��w1�

�yCh?�8=�&P�������"g�WZ�>)iOu
�̭�f���2w����]	�l�n6����xI�@[G��W��'�j�yDT�ӏ���zZՄ��Y&�|�~�l��Ϫ��[
+ݗ�`�@^H�*y��V��ZC���
��� "�2F�:���GCB�b-��U�fm��F�q�^v��"�	�i��|��J]�����=��ߛbf
*�%�3夋�&��
�Cw;K>�&��J
�(��"�n��2�/WQ#�����d"�^�7]��p�X��<_�m=[����Ŧiz�ٜPx��.8��ɒн�"����V?�cg�_�sh�g<�
+����eEgSu"�Xf��b��
�k[ݜ�٪"�0!�p�gS0!'3��c"AQ�T�	���E���*���j�c����x��|�� 9\�I�R��
臥R�b3�s�
�q�)��jg���*���V����!����ҏ>�T�[���5]�klҎ�n�y�ؑ��H���\)^�T5
���{Ԥ��{~�6����k1M��,�żY��x��Ɲ�����}���ڷ^Z��vB�_���?�1!���]�p���y
z��/���@���
����r���S܂�
endstream
endobj
42 0 obj
<</Length 65536>>stream
+���ؿWy���<�AE�Uw�N5S��j�'�W#ex�N|Ƀ
+H�M,pNZ\�^B�ڬ��yi�7�qA��Ӄ~���
�uy{������T!B������2���
��&�
�2���IST�^*�u;
�����z
~����
+76� -�9��Z��/W"޿�v��{��^�Df=��,K6�Eȣ�����K	����^�3SS
:�½��A��K
�Q��8��~Lѓ&h�=h��U�g�A�����}y��qk�Y�ZӀt�v��$�h��Y�Dx*j�?�i�'�*��;S�-}:�A���?i���R�p��v

x=�����p�?)��7H����c㏕L�e���Η�we��=)6bO��|S�^
,����t���5�A����D��a�_�C���9?�w�
+y��*#1̡���V��
���s��,�u��;�| ff�)	V5{6ϧ���ܕ�b7����\
�k���[��|���
+���
+%6�:&��:)1�Ozr�
���B��]I��|z�&/��� 5ɢP�3�=1�`k ����
CEͷ�=W�h��
�o��R�6T��N"�P+��y)7iq7�����x���p�}���.(?���	AQȏaӿ�8"�
>k} �Sۚ��b�E?^��4(.�&
M�5L�I�E��[�4��^Q��,=�����[������
�E�1����r~�K� .헎_�?G��u	
č��t؃
+T�
fa���HP��+��}�ӽ����^?��y�wЋ;�B]�Ay��WZ���49N�ZZ�e�	[
�.
s���Q#��O����h�
vn�5Xtȕ0��@�:�R�\Ay>^��w/A.w at 1�߀�>� ݾq
��倏W�
�o-4c�hJ�Mr�Og*�V;8���\�Nթ�v��z%'8���
���
z}�/���'���N���
@n��
���:��� �� `
��!Nk��o�!V�n�����OT1<Z��gm�c~���z� ��J��P��WP��'(��'��SG��?
ݽ
����@���e�
??�wu=�cw
+i�`ׇ�_�
P2���� ;i���ڈ-�C�H���
+��
���@�./A��
@�
��߸	���5Л��A/��	���z=<�a���~�5^쥗�7:�_ֺ���=�҇�p�mlB���� P��;(��{���C���A.��ܿzp��Ƶ���s�ρ~���7����L#`_,UT�fԳy���)j�� )B�H�Ҍ�<��D��������r{����P�˗��w�~�zy�
����í[�kW� ����
�ʊ~��'~�
A$��fUm�Ѵ�5�NW4"?
raϫ��Hi@��^�ru}z� �~�
��5�p�;ׯ�^�x��1���?@��@Ȩ��ŜBgm]���x������|]T����o�ss{ɡӵ��c<��!�S
,�>.6�į�W>�pj"��@7��| �w��+�4"�1%��nx�q�4rmR �Ŀme�>�
o�
 ���� �ɿ�r����}�C�o_=|z��%(��5bZ��F
��t9p��mQ3�f
��(�-�U+{�rG���k � e�_E'�\A��\����|�
a�A�޽���O
�b�|����%9�A'.������ -a����%�����M���2�S	��Oz����3��
��	���=��C�p�. g~|� z�����=�}��=�x���a�
��g��8ɋ��<q
ӧ��~^Y��g��v�!+�z��;��S�3Pg
��@��@�
==�� ���sG�;
AQ�@���r!�a��Рd�7��A��E��rZ�N�+��+��+��
�c
vw}sv%���>={��;��z��
��{�O��b<}��z|�V	N|��A�8�b��������
x��vj����MxY��G�_I��J��Ÿ{�>=���u�ӛ7��x���z��
�/�"\�_��;��q�(X%������x�G�h��;����ҷ�җt�#HXȵ�ޠd�� �
A,?����g@�?=���	��O�@/=�<�	����0SO��
�g�%-"���z����È���Ӌ���#��~~
�������
�߇�pq����?o���� c���
���0<�j
$�^T���A\��ua��w4+��LUR�u��RvT�}#���@'�����J�g�o<AnN/A���zv�/�OA^<9c����
+=;�^5*��r"H۔�|v��:VKs�f{�׊�{�\�<�Y����z�M-��̻�M�ݧ����5�M��!�z;�Me�S�d3���s��ƙ����J�b��2��
�a��p�
�(��Z$�Y����#=/�+��ͻM�ȺKLN��JM}ޅ�x���2tC���R��aB�AU��WT�t�䕱&�v�
Y�N�W��!���אַ��io�y����?!�Y�}\�@��j�	���SP�g�uZ�Y;��me�v3c�%�B�T^?Y�]
�+�!�7%|�'�������PY�
(�qrP�5�w�@��|~�7g7P���������iW!I7x���#<��j5Ĭ�d&y�4s�՜/T��f�Ezu-_3RW<�Д "����n�xy���	��r}�
+��
(�k�utܑQJp�岿M�A��u,���~w��Y9�(+Gl�W����Na�X
ݳ��}I��8�G'_O
����`�%P�A������J
M�
�
+s줕�o�Ԕe���s</䝭5N��W���V5視h� %J�_�å�i!�_�C������̻��i�¼�����	������u=��Hz��,d�sY-T7T�:�ֲ�*)9�xw�,g���ˌߜ���;ʓj�0G\z�	~^7�#B�@g&�I�����+�׷��r�
���f�'^g���
��w=<����mJ��x��4�b���|�/�aޑZH6hk��5��vvH-����G��+n
���hPAt�?��
o������b�R��!��������
+��T9�X�ř�y�}eK�
``v&�����>V�l+�kL���M�9ot��v��x����CY-Ӥ���"���3�T��
�J�bM�a��ݗ�J�*ik�
��(G�M�V�Q�NN�\?q}��bs��J7�]�:Ԅ�h��
0�Φ��3 _meّ�>�r�Ɇ��gܠj�ߑ�{��ݩ*�F/'I�[����P��m�jF���>���9i��!���r�-��k�`^�*�ҷF��fES�M��`S�
+�g�ēy>�tNı�Tr7��i�]Ԩ�^��Djm��H�Y���n.��hɒ4��N��GOV���DgUK}���!�O��쯮��
6�nM�0�
+�8ͅ�KX�ݨ�F19����,��1��ؔ��4#���F��Hse�h[[���5�����m�����
+��[9�k��źa����fҰJ���U���f�\c��\s��R]�w ��1az-U'!E�[��
�𡦲X\v�m
����)�MP�7T[�V^�����c���!ng��'+
�������&��z��m����n�4�A�+Y��c�8-����(e3?li��"�-Q���g�8��-�����.��N�d{e�fH��!��[�D���*��\^u�a`v�q��r��?_?UMƔ�*��,�����i��@�j���h�wƹIK����ѱVYOD�Q��.Z7���MUG*!eg���{�;�>_�
�o�.�X�#%#߬ҷ�ˑ+�J�t_e�d{E���.i���h@(ǻxډf⊘��:J�^
"��`}-ZS?%�����
�a���I��;�'

�fMm�^YI?���%^^_���8���o�)�H(�)!�`eR X�f��f������CaU��k��-�I.:�V���j
�`���9�	�b�$�l�+@�/T��gj�6e#P�
��,5�t�^|0MJ9T��f[�&�V���W
+p;2N?Uñ�TqLZ�q��;@��
���IZ�w�C7^�ٛ�#`[�D�T�8UW�
M�������6u1��gUs�VMY��t� ���
�g*�ǚ*�I% Z5����zё���@�+����Ťh���~0AI2N��K�����*�i�Ov�^7d�c�Z�4)��
�7
v�(p�?V+��3�Q!��j�LK
}[�������mUgﶢ��2L�^
�u�Zܾ�
9]d�/D��B�����ǯ���hR�
�Z
ɺRUp�}=t�}=�
-
�}�����P���ע}����C"t�N�=�(�D�)���Sl�n�
u2o_��q�l���HC�.W����ϟ��vU�"�sqϖ �5
��
i���&��H�#E�6W߾9�[l��
B��u�l�Z���Tq����VG�@��ϖ�[�T���)x�I
+�
E���9gj>�D�C^.
y��\��X���`��Fgڋ���w��G]w���\U�⨀-m(>P����[���U�6mN7V(&ܛ��}v$Ge�ت�5-��Ț��9i_k�bITq:/`<�#C��r?���[V������}�
�9>�dI$��s�'

�m��e�&%��
��U�z�m�*����>����6SVb����bJ�JK�����9�]�m����`�o�$�[g�V55�,'&�h��c5#�
���6��B�؎��!�0C�ɉRR��4-Wْ�*�z�X��<]h귪�ˎ��$�X��A���k7�x�1t�<�k�u6_�y�i�ZMJ>n�3��N/�m
�/�g�kq�z|��T%�P�Ţ�i���|��k���t�<��I���ږ�s����b�5��'���Sue�M�.�
���K���K"��l�Ю1�rn鑜UdV�K��@�s�&�?�(+�T��}<����~���@ ��Zr�u�c����RQ	�nQW�.W[���%ƅ [...]
+�2Ơ����T�����0���YI��"z�F�\n�+�r6dg��y�\�l�rq�����]\�
+� �h�ig����YJ�0+�Q��s7ۿ
��ӌrt�QE�8TSM3Ĥ�F��JePw���a�
+Yߗ���K�ҋYb�fw��0�ㆺ"���,n�P�F�I�i�^7L��.]/A���A+��Н	l��q8M�?[�Q������Z�B��l���l���r�s��ά�7	�V���'��9�|V�=ъ8'�<��RU�]���ma�m�Yl�0�����K��
+>�P�,�G�b�WǠ�W�f�ϖ���
��2T
>±
��K]Q���Ǔ�����ۭ��W볟�t@���衊�w�l���1f�����S[N�>K��j�C�
c�����B��֢ea~m�ל,��F91� '%Y4��S
9�XA���G
��J���r���c)#�4F�< �%����X� �c�;��A�
2˙�;��<����@BK��Gn
�#�&��6�Ħ�`�rf�
{�
�C? _s>_dEZ�~���+!DdL����O<�s�̚�ӹ���
�w->�TUx(E�1!�c���id��lRT�N�j돵
��k�}�.91euX��x���/�j�Ok����
+���I����r
�Ӧ�[RQ�PY]q��8h[�i8��پ��n�DGZg9@�c���C�f��B}�w ��V
��|�e���;��N��
bj�%��v"�ߛu#��W�>�`�8�uY�!T�J7��t��h[�n�SpJ�bZ��7�;��Uw�g����;¶�yB���{��?N��'����?�k�fD�S
oU�'E��է?
�D��
��\C�(�~��NykQӊ��yo
+�����,Z
~OV��ն����
ʨyk��6;�oO�@N[f�~�2�CȐ���'Se����	�KL�U��ԏ#�.L�jEeM�d�':]�S������3 �
B�5ƶ�!�f� �!Oy�������S-����x���s�Y�s���,��g�C'Yg���Kd�6+;���l �pO����ښj�
u�)C�kY%Gc��#��<�
+�^o�E����Ms�O��
�����	u1�h��3��!
��;��n,�ޚd�½!t��P����u���"��,��;Sd�0�I7T��v�rEP�f0�5
��p��ٿҶ�C��ύ�x�(-~����r]��bM΋���'KU)�C��&	=Kݎ
+/�p�ՏI�`������D���>Q3!G���;��II��
�fQ0� wql̢$&��`�ε�8�
+�=
����
+y�lSߡ�
�-���JΩ��(I�V5%�p��?N�k;o����=0�c%�� ƅ

�~9�ޙ��r�a��ϲ����(����}ݓ�I\
��^@�ޑQ�ۀZ���
r6a_F� _{�ħ[Ռ�#99۪d��e�l����u�m�]j�&�t�Jt�X�q�\Uc�SS
RJ�N�G�M�w<�O�1WYsp�U��e�@�9Q����P�O�O2��L��bU��k�W��\-�-2Jld�q
+
�?�6H�AF	&�$%�[e��	R�y��{ܛYI+Ћq���Ȉ�Y>}MLSr|���n4H.V�Zl6ڤ$��h� A ���k_BN�S3$�B=���f��Ś��.��Vk��ag��r7��?G���f���3sf&3�)�'&��j���;����;bk
�"��K�"bM2s��\��yn�\
+��f�U^���{-h�S�+;3�ZO�t�[�Q!��p�����
+������ �>��Gx
�� ۟�z�lz�Ⱦ
+��9V�Z�[�Ի�d�4|���E=��H�%
��Lg~1�����LA?���^Y��9�	|������ty-��j.�HN.u�)��9\�{��u�����\S���Z�V/�u���W�\�O�$�&��o,x�=��^�~k�}c�!�[E
�Ĉ
��m���"�,4f=�
�e���
��� 晆��9�+�����Kf����t�u�����T��/�Y�� ��v͡�S�Qv����߱2�o�K�X��R�=S�d����e?�w���WG�OB>+2�K1�� �9X�������y����7�"��-zz�@��ϳjWG��}�gK,�GsI���)d��<����QH�BcQ >�ͯ���>@�oO��6�ʟ�
�p
+Aov�
+_l�d
�q5
+|o����-%�[faI�lձ��>r�{�
+��W�Y�@�
jY�S at _X%�"�82�1�N�OՅo������Ǻ��'�j�`�M}�O���^�=�7w�?46f^�L�F�ƫcw'*�O�\@�6ֻeԺ���H�dM��PY�q��K��+�4tjh�:�ץ2ַ���q������(�
�Z�~�)P�. �:���Ӱ0��Vz����Ԛ�EL��4lc
m�����_mOQ�^]K�S�Do�w Za_E����dž���Yt��,.ˣ���m["Z�R$��vNa���@o
3��@<IZ��h�3��ܡ
]�� ��*�1�c\�W3�Q�s����?��!��j¥����lک��mO�J�(�{��T�"�ȧ�pׅ�X���>]�^:Yk
���p{rd�e�=���E�I����`]/1ݣ�{��-
�]$�
���!ϵ�HX,~��O��1~k�
+�
C�,���w��,
��U}t.b���s���<�i�z�T���s�N��䧝)X��$xg��������3��w�LC��8|�o1�)B���j�������U�,^
�$�Y�7mc���&ZG�[�կt
��d�9Wg���@�\��W�g����P`�Yg��
)��#r��hm ���Zx�HF�{���(y	�ə)��;��:g���@�?Q��-3�8MG���1x�s��§�N��F!�C�6���
T���AD-	�7U}؝�@%��;"b��jn��,$xo��1
+;[� �ؙϰ��~[�E�j9�=(�D[s���]J�e
(z���v�1i�����8t����������ij�oMo�S����	%m���}���K�-!>C�P~_�ͻ��f^�#Ϗ��4G���;C+�
�&8&	�.	
��ey%�į:2�DKC
.si'Z.��
+�(�#
��XC�:T����\o͹�ۗw�H�Lu�X��aT�e�c��s���	L��0��rcA��
i�ҡ�x�V�p�zͧbԝ,��.���֞��������zo��ݩ����S�<
������k}E�nQ]��<�2Y�v�!���+�ޙ������{�B�;j?{��4�

��+� ��)�&n
a����e[��).�`��<Z��N�xd�4�<,qm
����b
{��+
->S}��X����TCC�ĈD��
x�C���,�XN@�k���A�G�!9��d�ⳮ��������r
���Gm[y�M�M�5e�2w<�����)W�y��[�o�.�P����>��W���:Ĩ
�O|1r8�	B�rkU�c�P|�¦������>l�W�4�>�
�O��&�y�)�Ͽ?���;�8SW������֒��
y75�y��z˞��zc��:|��X��7�/���F��
N #���n{�U�e>�!�
.R!�j6�
`���
S�������s���7��5�t-�'{BF١���)����սb2~�g��?���"B�u�(.A҉��K�m����4���쥦��}�$��Y�PH*��҃�<֐kW:ӯo
�pˠI�3UaV!8�p�V�4���8`����P��|57�
k�qx��(,�:�L8S�1^
>Mʸ#g~pO�P�
اyr��tƟJ�
7ﶩ���� ,}k�\����w��7vGɨ#��qk4?@'H��Иz�:]��l�A>Xf��Y�:�B���.��P�;�����9ה����_7;���E�>hraȽ���aO ^�z�T��P�+5?�bWի_$����d�W�!\R
+-"L޷A�-��MO�q�!�{���]'x�z�e�Qf�s䴪����~�
%#��)ħ����k�}�2���.�[�L|b(�<��q��_��ٜ
�>��ϋ��ߍ�y�|*l_��إ���9|�[I�
j����
���%���l���^�CN��L�V��
�����m
��}5�������uv�|IP�)d��5|��ޡ�s�ҋmS�$s虊_r�1E.�N"��3n�2n�k!H8	7��p���
k9,��Y�1AL���>T1�z2��*��L!���Jv�+������6��u���s.u(�]"L*�
w�)����ޙ#dM��
-r
�S�)\�jg��;�W�h�rK�=9/특��LS�h�����Lo���oֺ�>��u��X�)!9�����oSC�WEzK���3w��x�SL���R4M��;��������u�R^��VP�/��O�
Ó��ƈS������
%'JJ��=�V$�{R���!��b-z�����*�g-w��hX�3��#]E*;��s����@�Ut�UA籎E�W��J�''��ϣsv� a�}�/��%����aS�� ~i���Ah�}�Rl���=���*ug���/l����"�(�@���K( %/���9���08싁�8ְ.9�v��,d���g.��P�7�L��#� ����
3X�R'��%�]cg���$:��V��E|��H�
��s��S����Cg
 ��Bį�#r�Zm�=^�l�A[������v'˂NtL�G�%��(y

��*�k���|��`M̹9b�=�N��o&����`�r}'㧆|Y��*t���o��� MҶ |K ��!���5/ק��
C���Z��5�+���;�ޓ}�ԝ�����:X�WnMCB�˸���f����K���?��n���W�%j�Z�����,��'j޳� �gP1��� ��͑�Vm�cv��Yl���
+0��
�S0�"�xSL)��J�U,�K���j��
58��8��&��2O�4
�������E~Yı�[x��	g�3Ј�Ɯ
+V�e5�<@3�K����
�`�
7t�=����2C�MݐrED��ML��}g�*싎��
���;�NwHuN	v #��jbl���m�w,��د���3=��,6R��1�J����.��t�u
��:aB\�����Pu�e��>IΒr�nI�9�d���
+Ni�0&��)���pm�j�'?��3��>��FG��/ |��G�
�a
�j�~����}5s��@\�
/�;	zo�8\
	�bb�4t�C���WR ':~�
��W �'�W
R/�t�=3�b��So@"��h
�N l
*lӕoU
i�[A�~�d� �$��/��8Dmku�F/����Z}�ab���|50I^%�Ƚ�I;PK�
+6aw��P�N-���A>�v�<쮊>���O~f��+
/��QQ�T�W��?TR*O�l�W��s/�eZD s�W���X����A��R�5\�T'�h��ʁ��q�K�F��N1���f��w
cڶʷ����ي�\u��4$as�����BM�����h����(�3��CG�$������is/R���
R:�e�]>0u/
����\��!Gze���g�о�e^E]����h�Etb�aNW �S� ���W�
�����K5�Owe�be�m�:V
X�it�zw�m�p�#�xy��=�]�L�.3�[����{��`�
+�
+J%�:ʧc��w�ZK�{�
�����5 at n��_��a���׉汚���;[i
<�	� �9X$�͠�vG���}/:d���8�ٙ!��R�������>0w">�������
+��
!"��K�2�꒒J
s��W��,���)����b�t
 �csֆk�O��y�2���<^���g at A;㠗�YX�u'�ܚ�=؞�V�H���6��1T�/�!߷UD|OM��Ev��] F�A/�$��ck��Y�W
J�9���0cwV�<��M!%����ڌ�n����W
,�2��A�w��o}JlᙉI?^e1���)Cg�=X��U�ak���������s�g��K-�s��?���)GZR��#㞢%;?`wgs�I���iai�g�l��g��9�b�
"p�u�$�-`���4�Kh�@Lx�'&�T|�uk
(b�*{(�e_�/9�[q�6I0��C�!W-s�J��Z�9Zl�+b�-�oȿ㒀>~]�}>{WD-�W�jOW�-��[�$������{u���c��'aV�z��
+.X�F_I`g�˟!��-�~R1S�t��%����*�
�^�f
��}�7�~�3�_t��S-,�:]�Vߕ|�Н|��j}Ǿ�s�!�m"rљ���T�$}�10GJr�WR�3���1[�m���T7����C}}㱉I>P�
=�6�Mֆ�"c�
+r^���ģm�2�Jr�[N�Ӊ�liw�*hg���No��,"�G�Y�x{�R�'a�wg�I�Yt��
"�*�E9��}-
~�i<�u�
���N��cgF^�W�����q
� ,������J����3���Pc乩�ꉚ�s}���UK6��t�w��[#��$�|k������xm�y��塆X�r��Z�'�Wz��[�������ET
+�B�M�H����V���X���� �^b ���N
�Z�k�x�>���3j��l�J%��Έ7ԣ^������
O����qI�K�����S_�[]s�]�8(d���-�u�������`
����l��8�2��+,걁A�zپ�L7?u�j��R�
��P�+<V����1~�>V�P۞z}����04bu

߃��s��2�x�M�-���J:I��a�z��/����߃�ŷJ����c
��U�2�x
�c�A%l���8%��_<��
i
 ��S�k���9:�>�I]��
#$��,2�c�
)?��}
��C䑑E;5��@�;��svf��n��3��ȕN)<ec����4|{�板v�u�6~���pk
��1�-�a�=�2��YǠq�yd��"t ��m�U&��g�3�f�=�R	GZ.gk
�9Z�xk<7`�3��E
+�ˌ���çg2��y�z�Y��V[�N
��G*Z�]XjjͿ��%��
+
�{��a�F/ Q�喡���9��R�1
t껍1T�
+��>�w
l�A'X��x�,1k�_g�=��jg��Ev�ŕ��{[�з
f
���
+2nl�A#���g<��H�
�hX�2�s��
���
Ǻ��/��i�/F.��@E���t�WdW
+գ��C�̛!��2NL�Rs����������Rb��@�
�,1S;JL�"�="�]ߚ�E��8���i�%�E@
!#,��:����2JJ1O�S����}�Zx��U"�/�{�4 c����#}������P��{�<�fWE;E�B��z{��)a���
+
��&���;�Ss�
��$.�!��{��'n,ӁJ��1B(r-��v&0	�iH�G	���_
,#��j2�&�!�W�F<ZJ;�P�U#s<jt�k���SPQ:6sw��;�?����"���j��?
t�G�I���#ֆa
��Ǽ��?6G��ۓ��`��
:ys

m
,y�9U�ɱ�L���W�Y�Z�
��ܯ�#��z�jB��_[rk��K�K���ad`��4l����qʰ9���G2VڥZ柽u�~�wf?w��!��y/"��	�nn5
���{�4�_�٨�Yr�U¬�7@�n�b3���~�ĀY&`a���Jj�o��w�z*?��R�E>��}oq��f"�--��
�~�n�{�.x�#���9�xI�w8m{
+B��

�;�n�̯&��M:��uL��0'b}� x}�6���a�/s��e6�Hͦ�*Y������n���&|��(���>���}uK׾��������}%���KF"
�0y�X�MXb����
�i.�oj�ך+\�e���*zf�}�3���3�
bB~Z��8�1p_�Ě#
� ��)n9��
�
/�3�K,�C�ਫ਼�>�s���2���)iU�~\�4�,�����_��%�!�+X�A��e���L��N\��b�o.	��D�(ؗ�N��e]�]�IݞB�:�9듸4e;���
|���Ԥ*�"$�)E8硩�x1'6�P�g��|�W�Ÿ��
'z.�߷޷0�1{g��=���P_��(��w)���1�J��9�L[i�z��U�LLO�-��<��e��#������M �l�#"��Шm!�G^��e���{��zfn
:25t�5T�=a��*�wf

�Z�}��6/W

+R������;����
+��߻]N��I���Qd�JW�]Cg�퍑�p��Z9�)�/k,~�� Xw�Mp�ڭ�廕�|�">W�y��\����:2�[�
+b�m���H�=]eq���u�51.mu��� �%��!�d��ԥ���>�TGmO֤�fkbwD��)N��QJړ :��R��T`�Q*<6�.g�v穥9��
_k�k
�ϝRJ�u
+�=T�i��ac�.�2Ϫ5��H�a7ֆ*B��A����k���[���ʎ����Ϯyx�_���YT�b'�}�?5���ɘc}m�S��ZH{��������fN���j��;
�c���M�]�����*X�� (�9K)t��U��<��j�̩�u�D/h��`RL��u
@�@C�]��7��
�{ 軪��v�>z��6�Q�K���������s
����
�������	L��
!͹��𪉥
��D�
��}+
]�e���f8ĸ,�������Ev.q	;
l�u�_���L��4�>'D���L�j,��0sg�}MK�%SW��qD�i���e�6�x�w��3�"J�G΀���D�,�6W
!oJ��(H�l��
�b���JdO
+Oؓ�D�e��e<��Fr�WH�_�=��
䞄R��g��G9Xjjq�xxC,l�~��pI�+܇L��R
w�؆Nޞ$��ּY�
�G&]����q��
�\�� =��yI�
+ߓ�.%��HK 
�0e^
�Kt�KM�v-3�>Cc��
+����cc��O����7�� �o����T<�uW��1y
��"v�#�4��6�
_�\Zd�^0��>]�!$_��^
��>��2�W<7U<����PQ@��`���}g�-�}�l_dB
��w�Wt��o�����X!^`��
�>
�k�
�����׳H;0i�a궢��#���\yl�4�J1%�1D�G�
���,�[���)v�w�
�V���co��aWJ+�(�G���3]}�[ά[��d�
+Yk���YB�������fp�}9�V��-���Q�}W��<.gS�C���*�/I����=.wO�̰J��v��T�h�{��w���Ƙ��!��=���zۂOE�3ħ�����V����XS��)�(����
�U74z�,�c��ؓ�@������<s�l�<1�1���ud��4�7����!���a�/,6�?��g�
G%_�#�^6��>���R��k^����
%�l����ٔ#c˨G��l�S�w��6V�3�N�5f����A��.�9���k�x�[��ǖ��-�r��
�&��8gh-�p/`�\T�K�N�NWG���^j��"���_�*}�=MȔ5��^nȿ��	t���y��fBͩS�3W��-G�}��7s���M\��<$�=]��@
+M8��Q�@̴�#�t
��,BJ�M�B-��|�⮔�����X�`���:��GF�6���ދMpLsjև��昙7KL��yk݇�arឲI`�K
��L���>Ұig+\����;Pc`
�R`��JJ��j�����ͭ���'aɛ���Қ�
9*}�
�	O��l�F펳�M
�ABT�Ş���"|�-5'��e|�����E�������CUs�g�E8����P���-9^�S\zb�Y�J�f>h���u��<qh�?l���{s�<�:�p�p9 !K_���.��# ���r�CDȳ��6���v��"/`��3���1d�GU��W���`���^r����S�`.u���
��)$��8�]	�l���� <��*鶹����h��$jk�;���j���
騨#-��W�C#��U�+mS�<��<24t
h��*�ӹ�DZe�]
� �ëoh�w疈Z�9E*<4v-z
�j��[������}5��
�ōyz�|#虺
xo%�Y3+ڗ1��i\�u
�9X�l������pA�˽�Ϯ�
���?��mӨ��	X��
`�z�5\�rw�$�5�K�rm_�K����@nuϴM�7a[lm�W��'A�O�c����kcD �s�B�m��}��(~2Cλ��SLN�oĴO�k���{Ө�վ��桂�ʦ�k#�w�'��ׄ��;k�������5�L��<����K���}e]⎰�m�"اăO4L�S��?R�*�c� �
<�k�6|��8�j
+�<��lc����4:E �|u���ds��S�FߚwG�O�2E
����~���YwD좧���k���صa@�0��yJ�]�̴/@ӶgA}��*M��4�WI���n
+s�-s�H���&ѣ%�X��$@�55�~1��G:X�[K��}�\b��$�
"�wG��/�ـ�
+|��Xu�06��8%��<`ϓ��ϻc���Z�qz��\OD
�p�#q��U�-5翘`�<?[k
�˸$�<�q�.1�tO���U�:Ũ!3�� >9p}�.ws
+�m�F�����������1���c˰I�E▪���NEc�g��ٿ���e9��
�ہ�'pk��t��
�Pֳ�fi%3�һ��vT����_��3_�p�@�b��E^�~�� �h�M=���yt�.���LE�WEG
jy\�,]Dϼ�:��I�}`�6����⠒Qg�$�l�0 at N%�-��
�pZ���K������
j
+�k��]�:a��\M�:��/�
+�1G+��o���>mt������]n�y:@+����8!�e
+/�Ϻ)e�_4�Vl�T�p����*Fݾ�OT���jS��dn���_ѹ��%�����������cs��;\_��]
yy��6�@F)ۛ��[F���n�mK��j�M9�*�:N�7�C�h�ro�
+kB׆+߬
���
+�� #G�N�E��WI�K
���s<T��hM��_�Q {�d��2u�e�$�d�
$ا��K���h���	:ϴ@|W��F@�l�ui[3��Vd�M!-��� 6��]�T�ym��x	0�?e���'�]i�
+�g��{s��=�����Y�`ѫ}�����vq�[�L�[��lu�6}��;��c
yb�Ï
Dș�\wj"�\
+x�c�6����9T�ן�z���SSa>%��>]
n�.x"�$_��}6�bsGh��T�9��1�!��d,��
�F�[3��#�xb �N
ĺ#=���@�r�X�_�
+��e��`
�E�Gp���z�7#��;�4O���\��ps�����Xx� W,�K
�0��yJ�s�e�|��({�>Z��"�	��He{r�1����N��^�1
2�GTt葙	<��,��|�#@�T�
�!$�t�}b��	��~SP
t�
�[;:/�(�!\*�"���P���9А�N=^��)#�G ���K�1{�<�E��X��*��ò*��9
l]⳼���j��&
+�
+�4B@}]�4��������U2ʭ�gnZx{�.Q�Q�j�u=�>�*ߙ $۫��3�쩉���6��d��=!�|c
�>GM��:R�aS���$��ܠ��3����G�O
�4���%w�
/�׏V���Cv)yd���(l at G�T$�X��V
.Ъֺ�m
��;��)h������1d��!��|��&��GN��וpJ�q桒瓴����
����]!<j�S�p~�
����O� ���P�-6V��7g\�+
�W�k��.7'34���HI,>��r���qX�Jw�
Y3�i'*��8.�k�U�5 �K'⽩
��OHX�?jE�o(x�c���\
�i̻���	�R\���X���/F�Y�T�Z
���a4���1Y�q�[��z��sl�V�w�F���vK��#E׈G��ܓPK��>̝��5���Ԃ�;�2\���,
����o>5e�CF��k^�wU�l��??�i`���XV'�y�m�꤯����}
�x�c��ڨ��,!s7&!oG�9O`)/����ٴ8��pU�e
v��g�NT�j[�
��CZ�}���>%d��]�ʾw�!Žt�W
�^��C�϶-���
+.~{�V�Qpp�%�l���k���������-~�jɺ��
%�>
����V
�CkQȹ��
�]�a>
�5��]����r�Z�(�@
Kp���{T���X
+���*�|h���WX4��_�)}i���9�h�
�6�8��x���p����5g+$�ET�����["����a��s�%E$Z���7G+^���������|�s�[�7˫�N����QK������srz����w;�8c{������B��H�'coa�jO�ScO������z�W@�}Y�3�:Υe�|.���Ec�СFP�2��G2vݑ�����F���"m#�"}s��l��*^�#��ౌ�{]!(��ڏKt-�qN%�zW����!���18�$�
���Q\��SH���i+M=6�N�%���h�{� ��*t���P�� ��A�kZ� _�,S���E���@|\$D/���w ���P at w���5M��'1��zj?����!�2 �n���?�zk#
+���
���C)�\�B�ym��+;���H���E:Է�Ԣ�Em��Ӿ ���Y��gap��I�YAy��}w�KJN�����v�I��e�XF���q�;#5�bVV���h��������
�5U8�Q�n9�5�IsK0�n	�n_FK9����ѧj
� �<թ��{T��Ɔ�v�e��gh���}9��PCE��?�w���K=�ϗ��q��Fk"�������Ə����_ �ܓB�
h�}�&r_���j{�l[ 
��r~g�.~_ꘆE���o
C?��j.	lF�?�����>dڍqd�Ð���_�T@
�B鬎��Ryc���l�_
���?�����)d��
$̫!��J09��`�Lm������[7��.	{��<xhj�8�j�|�������'@��NV�
+�᪶���D�}
+
�;
	��TE�
��n��;P�Q[#x V���g?�
@�/��@J�c����g��/����C�׺�����O�:j#��&�)�ٺ�%A�CmSf�C���--x}�C���p8�&�yC&�X�e���y��
+ڟ'�9��V�3]c��y�UOu�����?�
�
�']X���ߛ��p��
+v�`�;3��=�V�S}j�.��\�O�*f%\X�.y�B%�T,����Q�S�3�8x����>�
+��� 
�E��لC�d�%
(9���a��dm�{���բ��
�>�
ٞb+�,�rn�Ѳ��t�y(@Y_�j��&~�
QJ��N{☥�{+�/	ʞ�Z �7!!{3��c5
v�?3 g�k]�?5�1_V��*�DK=��� N,U���(���b3^
h9mv&m��"`����=�Of�s؄{�M ?����&�%o�%�7M�Ȳ=	�\ә�`�rAHx}Q�zem���s���/�a��7��I����m���>Ӱ�
+\�MX�o�{�`'�q�}���n��Q`�yl�]��
���7���*x�ח�+B\:f^P��3�0��:���Ȣ�%���IЇ͉�W��'���o��;ɻ�3������il��.cÔ�����M���|�
)�Zk�������^l� ��U�+"���j����C�
~׋�|�)Ado	K�X�5)�KT�E�a�����
n��
��;T��H9�,�s���\�}����Vi�C=�ԵP�yS��!+#��<
�b���}��c[���1�"B�\Pxg}�[���	J�z�s���kZ^�s.�O-�ϵ@;�����E��-{��$>���X]��P�K?��Rcn��p~��"<����['�/���z�{�����{���g��D�|eh�}�^��'7�_���J68 at B͹��f��6e=�q#��R�/-7g=t�U�9F��,�_ss
�5T��>Y�rk ��CX�Q�R�
+�Pɧ:D�
�
2�D�+�ɠi.),gO�N;QSk�|�д k�9Y�S�
S䕔���,9�<�N7���� c��1�n,5վ�
+�E+mO'�1��~�}<ol�x�֍��Ḅ�aB�ec71�6ɫ���b���X�<>o�	��T ����VҪ�4���
4u��2�ԷL(7�V��7�=ٚD眭7�8$Ă���!d�� :^�-}:�H��<s-�J�p����^�_l��YŔY}��V�
)?.�ԗ��h��;Z�[)����WǨ)��9�C
�?e�}�Uo�]wܤ�
+nʃ�9b>2'�&=�[�k�ms��)l�ܼ��[��gn�~�S�-�
pf��8��ϏT$�_ܖ=	�;Y�|}(��SZsf�ou��if�ce}��3ǿw�ڣ �X�����Z����ʗ�Bb*)�ӯ��?-w�}v�tk�:��S�Q�\���+������k�Ypܞ��;
��U2��2t��!�l��Ƞy���
��F�e�DY�ȍ8Z��׸M��t�O����B���P��n�Q@;ӄ����P9/롌�t�5W��<����r/-г.Nr.6T'�C%}?K,0w�5����������7?M�F$���:���H����Y;4���&��c%�x�D����c֦�V)���PmrV�r)d��ۘ�f��<�k�Q�3���5�Zb�]�~��f\X�D���2���W��������k��A��Uq�1D���i(z��:�f���Ĵc��ъ�Ֆ�[�s��t�B��d�
3w��f�u��;F����k?�g�"�bD���3�K,䮈�k��Zƹ�֢�����a?ϑb�(���t-%��x�Y�	�ǟ_i�z�m*{7
;��=����Y�yփN��;ł{|��=���H�;���6��Qʼvw�Rd������ީ���k�����IR�RK��
@
����A2
��m�����޾�L�p���������wc�h�&�x��.ts
+��[fן��4\�e�'>[l)}����(ؼ���#
��VP*�bj�e�Z�-$�YghE["V� �^ق)�.�
���"&�ɿ�W}�a
+�v��V
�@�.ۘ��c>��Kx}�"����4��x�”����#-
锳ЖyZ�|}���h�w�f�W(���-�~�LV�N@��(V7�	A����N���huў�3nj</c�_Ѵ�<�vU�7����W�
+��l����_dް�0��&~�S�.��C"m
�d��T�V*�m	
j
w�^�:?���F^��F�����]�#�[
)~�
�7M�+'(���F��JJվ�*�9Y�1Ň+@���$�‹2N�u][�3�:T&(�;X��k/8��
���������Vt̢�
��P!=�y�.ι@ʱ�aw�["z�M��
���9�)��4!ۣp]K�m����W�~�GS���Q?�(��(������"�͕�NH��_��i�����;c�s����F1�؅wЉ/~��.
9���
%�U��[*^̟}����V���,&��9^���W��Q��ƿ<"x����7=~�D�yE��ݑ�w�����Ʋ����
��?H�W��)��	���ȣ9b�E �\j(
�����ucI��������dl��-��~S�.�vW=�N��ӕ�aI���ڷħ��I%@�-�(������ah��fo
+�et�e�.�=0����-#��N�#�F at a;�u�E|�g�7
�S'H7�0Q�&d��V�R�ls�0�1S�Hu�]�N��q:3�}&~s���\��:e�|������n8�3ɎEl�KE*s�;G(ܝ%XfH9�����qh�\u�$�w�88�
�bw���=�Xg
�&���?LS2n�a�/�
�#���b�
�lҥbc�����F�K� ���>T��%'Ux�,�!���d�O��y�<����9�Q�rn��qL�
���澊�n1:�H�"'P����=)�hg��R`�
rX��Dm�E���*�p�����#q��f��d��
^�َ`��
GF&{WB�ݑ0!���L��\p��4�Ұiz
E�����E�e
��d����R�-�~��t�� cg��(�L�
+}��=��
+�,7�][��ژ���P��M�����վ���^j��>��Y|_ג{ck��O�DxT���ih��<�d����P_���g��X(����Yf�߫m��,��yZ�m�V�9��_i�x!ܚ e]�Ö^��'��Ϻ/f�����0�
�����w=�蟥�� }7:������.�|��Y��U�
����)ɗ���@}Ku�Z7.Z�
+������z�5���.{�;zm�.x�[��~ȻTͥ�Y%w�_�����j7��RC�C1���{����ǂ�[�H}r��o�~�E�����wИ�ߙڀyl/{�5X�TۚyGH�8�P����s�����)t�)徶���OI�
(�(�,9��3X�TL����Yd��
�
+ߙFj��C�ȕ֊�>x���8z��r�
��_�C�4u6]�^�`�F�3�o�(a��3��k�<2h�Z_>���
������e �
��2�DG }Ya��s�t�a�nM�S��4�c
+�"$D^�Sl���B���qq��F����6ͫ���[���1r��6в�����I|�{�O��et��]�e�
�M;�h�
�:
��Y��w�j#����-��>��|04�:���
�|�nJ�g��
+��0�k��l�IrlbR��82ܧ����v?��[
�FXg���"L�w�
����:4�	��;��>
a��k|:���eiY�-
��@,<вهz.�����m�E;Y&�<2R�m�l��ԋ
+V	*��/�
�]�U+���%�Ѝ��1~�=z�6
~���u@��
��}��
J�e�Q��߷�_
�;R��>�̰I�	��ھ�7:
�	��MƬv��p��M����WZ������]"�!��oMҭBl���V7<�\;$�G���z?#{�
�y
�ve����<�����~WHH������p��V��ݝ��
�q�16�>�Lt��E��V�I�~|���浶
�/e���}h]���U���Iw�i��nR�0
�Ȍ97PW���G���^��}����O\��bc����
��>/�� ��*#�<�8��9�&+��oӸ��g��?
�"�%�P��Z������(d���VG?�j�6�h�
봿@�GS{�U)#���(:�8N�Ž>��	�>Z�@|@�4���R�2�
�}<�z��Yl����
ZY�Ͳ�'L�]��
�hM��
4�5S�y�v����ORZ�m�Q��������K�W3��u�T�S�s�⚤yn̝	\��Ց���ԗè�˳��������}	��2��]����3X��'�4]��1R�~);�=��g����&1�7Iq�9��}n
��X������q�^-h0�G�aإ4����pG�J��!K�MQ;c�9'���`�s���*B���3�C��B��C-��&B��@?��!�w&`��y|�W�"���o�{����_p�cRN�L�W#K�m���e��?Y�0�W��u~�_��
��P��ĭ����|$'�o
TX����m�}�
��t�#A�#���	Z��b�6ͩܝ ${�:�o;�o�
�"�F�)K
���^l�S�G��?,	2.k���)�׬3���V�Q�X
m}�n

�BG:�����

�[��
<����q�){ s�H������)z��1m������{�=�OX�
Q	��o��
+�
�
��
+��u��{+�ٷ�F+�\2R�c�Ym
�}���E�c
_j��ֆ!+�5����Q��U^�i�ߞ��%<�[.`�Etж�U�
��I��Q����Qz�f��:W{*$�>�&"^����Nl�j+����晄U�x]ryIP�`�Zx�����"�݌#ظ�YZѮ�_�R%���vX�	�8�_smm��a�<`u�_Ӹ:�9O.ۘ�f��Z��
�[E�
+�<$bc���RS֕aX�O=��sc�������K3M߇��$S�L2�>�����XK콣bG��
)
+*��� �w��{�ILfg���{��s���A���:ϣ�}
�o㒚���Zܘ��˫����.o���y�G�/�Q�?�r�
�l�p�Ʈ�2�k#`�F��q`��f0�ʟ���.9X)gZ+���Fx��!OO�r"��S1�Cd�g�fY����'��	A�c�⒧:Vqd]쭟
���{Ctض��)`�n^��ކw?�s
��/��G����a����4���,��p�F��!�Vm�aIE���~jF����^�|v��iEC�>vIQ�<P�x��(����O��;?99	w���+�y'ѩ���Z���sY�<��(��7D�oyPE����,P���Bś'�����lD��d���t��߫B����_G������
7��
��HM�{�0K���,�)�N\�'/:矣͕+Vlƚ�ոda���?�۸M�v�#����o�
�K���*�'�:k#��
�����dwM�''����u��:
2��C
ܜ�V:>HΙ��
�ζq��a��)����B���}�#Tn9��;vl;�౎��.j�����_TM�'�Ĥ��9�{
.u���N�����[���oA���yg�ҴdFf���?X�B�=�壽
/�m
ئ����!�
͝�Mݮ�]<��q{��\u1�#�F�Q��u���p{�[r�kG�Qo������S�f��
��XԐ��{�	�L��ݘ���qy\��x�+ �^�V>3H.� ����%'�a�Į��#
�� �uo�Yq�3�иde׭�iu{~z�@Ȟ�R�m��=�Q�.w�+VZ5�*���E�pf ���ż����X���Zl�_\q�@J��`�
�_O���&�̼�ޖ
ooK������G�
N��
f\֬��hh.\��kW

슇�
���@w��u���1"t��2|���֌�񕖔sE�H���.��d���b�;aC��4vͅ-t��H�N�6���7����)�vJՖ�Z?7�J]5c+�ؼ�3�;nd�������!-�ݼ�T����H5����[>-.�6�Q|��J;�ag^j-�v�#���i�Չʽ&�O�pT�PwsjHԺ
W�b��������	�C�Lh΋����W�
D��8
��&��5����ȿ5�Q�p��[��щ��O.m�Z�/��}��WL�	���+6l��}?
�>£O���nL�Qs��+&r!��QG~�H-�a�?\�K�4��^B�k
�ٞ�?ʺ[���WM���p�&$���ۖ�R٤���SH!A�J<c������#�|�K�O�5�/֍��Y=���^~��)��X{Cd��a�������
���ebgͬ�	
�`��B��4��I�
|Ѣ
�15P�j�'�y�ūnL���4eĥk������K�Z͆�ްR��C4�����|Ƹ�v��FcQ�L��Ls_�f�)�+6b�������/ZX
c=��3
+J��^~�
+�nLt�>���t�s���/6��Z
����~�3�@�0��N:d߇)��4��s�6u�Zs�?,8�
Crjap dҷ�)�� y8A�~�Wm81�{#�j@?f���:��
;:kZQ�2���Y��Jv��a��2�W�2W�|ִ�[�`f7,Z�u!#
�b�A�����q{��BY�
�#��-?�st�䚏G��Q+����e="iˁ���|m��#BhԚ��Y02�g�Ĕy-9wJCH��?���ū^!sRK)�t�_���ԐI�Z2s -D��V��t���5��s����^���Gj<:��$��F��e=��͘�e�
:d�Àyؠ�� /-�p%�f\���T�l#��͹�RZ��jX�
+�;����\�%���Q��,�{m��uLӉ�
+�
+L�KZ�pZ��}?�n���4
++ڶ6�lZЅkVB���
�K�&"�)��5���8nVY�����C�M8�æ\���Άy
�j���̙�e�KV�\肞Y9�&e{0�A�ͼ�\4�b���
+ft���ീ'�y�fF
�1u�í�����sI�N�W!�����сȬ�[�oC�-*pY�Vr����4���q%��թ��v�
���
��՚rq������\>o�m��aa˪��Z�3V\l􊛍X��*����eCC̒
��2Dk
�����+����&fݖ��]�2�6}��U�a���
��
�
{Lк9���B=����P��|t��0
��e�̄��^T�Q9o�B���p_+�a at R�
���f������
���ה��$�0p�8�[�" ˺w0R��s�.uw����{��Rѐ��PSK�L��N�*�
����iL���
����m/�r\y�d�d
�� {>\ɖ�P���31��UKs�D<z�Ikܙv/zZK.v�/�ҿ ��r��Jr�
Ԫy3�i}H�=�l�rwWƬ�Ȑ/
��%A�m�kNj�Ot
+�"�Ĩ�Mw� ddV�
�r�
��l�Ć��D�9g�p�����(�'L�ޠ�_4o�@��*[2K�
4讟�8o��
����8͈��<��e�WG�i'��cb6Fٴ
id���)�y+
>y�B*� tÊ�^�A�:dsTԻ>֡^�
E�NF���H�7���%�V<�j?�è��4y4s��\��L�ෙ��t���I�|�'�;�2,��-�	uKy� �ozĒ�I�vɄΘS�⃽��1iSԬ
+�~g��]s
+�#m]��2��MҺd�A�l|씖SimE<�u"_N(�KV㢥��j�n
�P6�`�kNJ�Ѽ4�c����6}�^�j��54v��6�p/+}r�_�kg����E[N>aJG+�	�
�;Q��UԲy� ���F��g����k�Z�>.y���M隳'5��%�į{�x��6��KH[u���n~o��^
"�+�?[�f.4zR+��{�
h�OGn�8�E�6�D�(?M�DCL��p[��p����<�0�l�I���EϨ�_L�j���)�jJ��Y�' �0�������^x����x���n�
��*�Ք�%rt��p��>���\l���\�^�t����i� 3���
\ʧQ��YMӇy#6m�Nk��0ѫ���1�~�����9uޝy]��M;�#��	��ꐀ�>"Q��[�� ��,oBAL�ӑ�w���O���P���T|O I�#d$5l
�
+WG�̥6~�H)Xtr���[��9�q���Uz&hx|}�ǘ��p��6l���1
+`A�\0aV�Gtr^� �/u
�����m���s�}\��p
m�ӹ5��o��[7���fE��Y������!�lPPC�
j��f19��!�<��ʷ<����R�7��ؕ!6.�V-1~~ט�1f\U�����R��e��&x���,Gyk^l��Bm��i�iJC,�s}���
���o����=LĬ����Ԯ�p��vbᒥ��������9����ԅ,�Ơ��1��9�����SC
ج�!>k��­Z�uG���fÆ)X�v����24�REԕ�;f*�Ӹ,�3*5.���	=�hT���I٩~����Px��&�ޢ�A������[(; �}&<ob�L���QEk�����m�y2"�-dТ�Y���&T��q}7eT�
j�9��V��Iʙ���g���a2aZM��5H[���'Ǻ�[�ԝ�
������,��)=:{�R�v�ذ7�@�}k�ǵ�f5�4��y-�t�E���Qj�<��%;�!���ΚِE��6� ����ooZi�k.6f����{��%�~BC�
���[(<����зG��EWsɊ��Z���B�V����b�e

�C�
�[,^�r`A<��Z�`ł/��I!
���
�i��l�m��vo���eW
f�Ƭ]�
猈�գ̡Q~��
��cf-��u?}Lǯ�9�u��fb��%�3�uY�ؙ��ҋ:>acB�� 0w�ݲ;Ӧ^�Ё�-�40*6F��	
+r;�
�s�9��^I�է]���'M����r��+u@ Mt�tV�Z��{�%�
i��h�z' �ۙ�w.
��&~{B<�3)��:=[
ZȌȘ3a
+��8�q
���GOq�R���u����ؘ7
>i�a�Ƅҽ)�ck�ݴ�ɗ���
�x��D-�ۻ������6`�V�͠�aL�n���
n��I
!g�D���n�;6-d���4��Y7�v{�F:�gu��ĵa>{g�U�;&h�'6���o��?Ѓ��i��.3j�U����<H��*9}X�M���^x;��S�Һ)�F��
=��F>�[�H9����������Jn�c@�1�
B�i���mcR�u��;
qۦ���3�j���J��7���I��z��XF8���jj}䦻K���Q��{�cZ1�)��*
���Q��� �Ӵ�r�=&��gЧ���eV��E[!g+3���{�2�N#r���,
��tv�C�|� ���Wx4+d;(��핎�թ��v��͚��Sz��
�|��� }=�#,m�w&��h��,�&O� s�V쬅�]r	��A���L��1�
Ut0��y�G�ގ��f�A�}*'�o�e��ik'{�'j_�� ~9#�'%���K� �k [...]

�
�]B�����•M��.q��h�u}�M<���]��dRe#\�x
)�z�D4�[1V����JR1�y�
�{Jz�ܤV����U�zw��C�=��/��k�>O=f��Բ&���+ƹR��G��Ӵ����&�u���<2
L�f,�c��8$�;P�jE:�
+
�rQ�>�����yz�[#��3ͫ����=M�!���}=>��mLi!i_�2
i�x��mϤ4�#+
ȗ���Q?=z\p,�z�Y��N�z�U\w�K2 [�
+wG�%[~|E��k�{�{��	U
���{��i���]�>�6cVH�L�s__����NA=6�@��U���r5w�&m��T|�
�F��ּY�"r����3^݄K�a뤒�� ^�ҝ�UZ�cF�`��+�:k�[Z�h55g�D�KO�$�F�f`	����K&	kR�*ih�c2x�� ���]�5؋2�e�;�1FYoa��D"�e�����y$i�X`�#6��Tnd�n�'7�/�B_�ʃ>`�o����>��7���-�m�M���c3F!�c�S
�&|�j��r�4M.�b��7;5 tW�*D�r��?f���{/>,�V쉒���&ƽn��]!i�H�}�����SZ�Ϭ�tzo��Tڮʒv�˅
]� �n���
��V4=l*�<)��?�K�^-�.��
���/`E��@Q?ɣQw�$�U@���Z��	���8-;���D�m��50����N��+$��
NG��{�Vӯ�Ʌ��P�h�oʹ�1��ͭ��Ծ?.V�{�v��S1�ew���|�<K�E�5*/#��+���?��q?%������=�W����kx؟�s~x�
+�sq&�$ý��h�
h%�	�R�2��*ͰT,F2ġ|�p����HA�1M���a��m�\[-�QV�qT�s6�X�sx(��휰�DʏP��D4V0�+
�t��o
ӵ½zo`��cvOW�ٳ�H��&���¶_
Kz��N����x
?v�NNX�[���Ha���~=�4�UT�ϥż?��ޛ�vi괝�����V��c�����e3
1D������`ϧ��y
��
�0��E6Fa��y�_�\����������%��;�j���4��
�v������I�}���l����8�l��h�t���]
�6�#]�0��(�h�
QY���<�ke>�RF2��'�~ˉ/��M�g�w��%:���>d�Mo�S�;=�>$O(�ч^����W7��QUu��/�?<}Zr"�Dx:����G��a���]���:�z�ʃ���7��X��io�0�gVw�
uvO9�H�^֢V��:zg	4�tF�~3.����gU'�c)*S�Lϗ����ؽ�Ua��Ǣ��Ǯܫ���Ymh4]�5+�(Ŋ"]�(md�����9d(i�(��>[J��;��K�͕��Bb��
�|)&�����Q��߯���8q'�Ν�c�:���̓�
U�NKo�&o�\w�O���qi�zA�Gg�2��2��pw�<Ȗ��Z���
T��
�	'�=/Px�0��Ϙו'32�gR�k�e$��Q��˗lB����4j��^KC<��o���#³���2�?$eP���}S؍gEa��{v?</�M5,�%4���ԏ�
��C�;�}-�6� A���]�
+�p9
�\�l��+P�
��m�x

{�L�!-����I԰Ua�׺t�0��Kd��(����P?�W
+����
+�
+9|�"���d�QK7Ϩj����ɒ�
~�jt�L^��tB����8J�7Aa�T��$2�=yK
+���1�v",:�,*Y�ã���X��@��Ҵiggی���Y|z�sC�����šG�e���
��8����kjN����+žF6��!��c|��ؙ�a��~v�ni��hLع�e�^�ß����}Ý3�s�*m���Zu?�#t�1��`�l����Q��^��QUo�#�Pz"6�s"%��x�;̱
~
{���2��մc��@�����(���VdԊ��u
s�$�–��|�`�=p�) ŅG1�?=z�9��.�!9C�1�\����Ա�cQ�?�Aa�㛏}���Ȫq����tI,e��n��T�:�5d�����I���Bg*
+F�ݭ���u�z�r�ϻe�n>�
�Qv�Ymس�������dˎgU[���cO[D���./�>��i���ا $*�g<���u4�"�φ1��疫~{��>��1	�c/�	a�
Յ�yX`
.,� �VT��!����Cb��ZﵢZ�}�@�7������Ԑ�Z�Q�Wu
��D#e\�d�6Q���
F��B
gS�;���<�it�/bI��^�����2[~�MĜ*�����{p�v!A#節ɍ��� ��9QJΦ cp��Ĝ�_cRI'���<�{��3/�n?���Cvq�oͰ�w�c�[+'������1�"g�լ�������Q(���G| �����9n���\��ý��a���2���e�O<�#�
���Gu��6/{�j�
�����Kv8d�&L�z���"��gt��V�X!�f��Rl�`D׃�j���D�_���L8���9�Z����Nz����5ݦQ<�:��\�T[r
+�![S�_��։�=�2P��� ���BwR
R}�Cn��I�����
{
�����a�q�c�I�+O��.
�,I�P�����r��r�T��y{g�� :����ұKT*F�3T�ꛪ��l��f�V4�΃�
gҋD?_�Uv�vI���а��a�e�E�E
K�
/(�l!�_�z;Jf
��;��Ў{eV�B�f��}�l�)$v����3q�(ã�j�U�}�0��)�]��G�~���K��H,n?�Z�v����d
��ݘaC't�ɪ��2�'[��-
D��)�RYR��C��SX�ExI]xfy��b杬�-8��´�"����*N7(�t�z`C:)b��Ι�S�fM����9}X�(T�
Rd]��>c[��nf*��Ȝ���1�s��P~��a���q'�:~O(���;t��2� �~�Ĵ�w�G�^��2�#fM�k^/�p���������E��ʗ
W��#��̹7ո�[�H���
+��w��;�GJص{` �k�N�^�`�Q�V��BT��$�C�V�[���uF�J����
��g	Ol�`�,18��!
�~T
S��X��-6w!#�w�
+���Цۥʨ֤Xp�� ���m|i�������-�+��eQ	���0�%�p"���*���H˨?���]A7܆��7���
W����-�ݠ��
+�"����7
��y=>m���mr~�A�f
jT�~��H֥-�tZ�9\]4�����Ca���W|�4A�%����K
�j��J
1d�lz��O�
��
�7k����.�I�g5
+4�~Dgg[<���C�<����u��Ma
O)h��U�D�G�	��>���X�v&�^�����
Ż
ֶ����
��%;�5ʦ��ډ��4�D�ڦ
�3%�2
�����6��d2�^��u������1�c�>�O�x��0yx
E��*�M�əJ��%
�4�gT�ۅ��_1 ������Hz��N��P�o�˴�V�"Q Ѥ�:�Y���z8��"{Ɩ�@������r���u`���ost�?٢��
����g��Q
&]��4H��w�$�i����ޞ�tY��J��Cz�5`��P�=�&�-�A]Xہ~9i�����y�h�"<��VJ����2"�L�Dt���^�CN���\�
+0�;����6CbAq��n�/E�'A	=�V[����i��"��Phˬn�yn��{c�Ҹ�~\�����[�{S��Hנ�"�Tk��}����n]��o�n�e���d(��y�?
��9U�p*/�S-�8��_�O
�EY(�n/Z���Ģ��3t��5��neG�G-�w*;+Um·
+�"�_l(��U]z��{�����
�@�5"؎K������<tȌ��5�&U�y8�M/9i��xU-�f	-��NJ���"�� �Wڝ��$��nm'̣�§l��Eoe�-$�y���Q
�s����AM�J�%���FB����:��T�m��Az��M�<nm��t-e���;JA�
�y��ߚ��t7�����椐����[��<�����Y26�N��ǧ�_�i�ӫ7	��V�[�ȳ�[KT]���ցT!K���YN�[��I	$�m:[�Ҧ�w�~�I��-ʶM�º�p����ím������ �h�_V��))�k�FDٔ��̎� jU��il���9�Qu5�35 �"�rC�ʋ
蓃mJ5)���kE�nBŶ��2�D��U�sq��zũ�|��'~�RD�zN�J9�72��c
��֖� 5�,#�$�7V9#i�$�
��� �;�"���g��ϣز�A|�� �iۇ/��7�N�:ڇm2�����3&m�	׼꺏�^���
��y;�d�&DN�d�O+m��&�z�93�p�E�Zv`
+�
1�ʺ��Cd��Y�i��v/�z�F�
��Bƺ�E'�r�.���0�N{�v*��ZV�K�
�ֵ�8�	S.t�ή�

+�_f�[��56��$��u�s�`V�۝�u��L�S�)q*��c ��{}Ԡ�k
:n��BP	:�i�	ʆ����	�p/���5o�¬+~I��Yu�

��
���`����������;�����:Vy�(��K�
϶,R�g{��(��n��YP�/���VM�
+.sV��Ґ���tץ��'A?���;lζ��i�ذ�%U�ٙ5+^���G�^�I z�x���~ÁL�"��yI��Ô����jgB���*�p���t����}�7�*\�p�팎X8�����0ɛNb�Q���aA۔0������
�vJM͛
@��91�����x���m'�h�i��
��`�/��I%>cB�+�
D%���#�d�Aes�I���G��)
%k��#_����.bÂ���|Ν

"��P
��xkϷ�H��(g�
�X�~��db��[8�~6ẃ�ۛK��bR�&ez4|��
�j���]����,��EKS�
������t(p=�� �uj���0ґwE_�z�T�
S�
+d��62�]��`���
���&�oQ�s���=7t4�c�P�b��.��>���3Tʖ
�:ܞsk�(�@[�n׉*��4�3I'���5��p�߿f�%�vW>���z��f����ٱ���l�^���
+7\��YU�ɾ��@W��Y���!��f��5�}�7|�`о�u�����/i��M���
���
+
TD|
o�
�����h�/S�Vyߧآ
KSɼ�8zF�}+��8
Ń�'6�=��l�Y쐙\��6�O��g:
�ӂ��16c�I��ԡ�u�•���_Gǜ�_p� KVF��0�u���2LD
�0e_�q�ߖD����{[:\:��ybd�M=!�������A�6��I�*Dܔ�ᕅ��瞉߶1Q+:\ִ��͎��ٍ->��V�^��W��Ϗ���/�o����ǔ�i�
,�g]�З?ݶ!Rvݴ�}/�y�L�Z���w�Ю��l߃�^՗��W�>]�h^�]�aR���!^Bծ�\�a���+�^Nv�?^T��m��}u�F�A7t��S�u*yM�5)ν8�Y��LWy�,�
6��J;�8X���Ag��i�:t�|��umS�'2eϊ���=sps�)Pɧ�L�E�Ǹ��!*l�
����
ڱa��M��=��/������rDf{k>nhj��
I{v�5cn�14xߋ/���x��
W
k�Ʉ����U}�mWm��
�5�
������=�rYS�.(.�3&ʻ�c��ݵ6�;pa
��խꑩVl涗R�`@f~"�
I�-�`� Oܷ7%�_���t�ƅ��¾_(���a�N,h��_���W�M�;.T֦
��j���W׾8
PП���O^h6��h��)qǎ��k���6����o�t��=7�
�-|K�H��C�wLЏ
���%
,~Â/�q���Ȍ�
߇���
��Yi��ey�������,�8�'��U3<54��n���
����AA�Ɯm7*�(s��$��eAeM���	�
+�w]Ț� ��m
�4V�0��&U��kn��$��_!�����
`Q��i�
7���(�~�K����v"xg�E�7��X�
ea׾XP���(���
��؛R�o�!�6�Eo��=�τ
oO��E�?��;FbP0�[�d��������
+�ji�>�Q�lB��b�����X�e��
�'�f'�
�g��1��ܱ��
И���ee�}kC�g���ɺ����艞r`��">{I5�}�emuT�/��"�������
������a)k���;V*��h��:x|H^�
Ћ��Z�o�uݘ�U�z���q��(a�[�� /�j{R��?=����ג����.�%��A�/
ب�;��uMc����qP�v��N�0�K=;..��m"/������n���X)���W�
/�Ր8
=�J4�T��6�o?���M Ou<�&\�슻��G}�!�>�1�{6L�Q�Ö��ش���iؿ��ƽab��2z
���>tќ���tO��U5�j�D��섧o��V��������'@���I
Fv��E��/ä��~qϊ�ܱ@>��q���W�z��M��=�,Ԕ
+
?���Z16%��H5�n\�����Loɝ�=e��M��ˆ��+zP䚱��g/��[��_��ir�g4�_�n�f
py;���

���@��u
8b� ��:Di8p7W��U�>p!ҁ5�[h��g����F�
V�/��Eli���z�K��詞�{_��O>
+�`���O\3��C
+p�
��i[��Õ-��_|
���G�k�I����c&���[暸�a:��8��}�?
�T
N���':mߧņ�/�h�>+Xց_�T<_7A�
#~�b
 f�`�]���ɍ+>�
R��7M�/��y�Gĥ���!/7u���Ad�\O��
=�hE�I\� 몪~�2}3�U���Rvi��拓[V at c�l��}:wC���
���[
��Ә����M��<��&U8pE+*�O���>n�ǝ���>��%�������?����ز�FQ��<
V4e�'��'���尷����κj��EEc̒�!qE����DMI@��;*"���S��W�5�N(�O���W�m����e�v���5
<��+��K���hλ�0ږ{i�5錇�tf��ueE~��O�t����0���Xs݄��
+�t�DJ���H����ׅ��g;T���+�M�Ո�u=�q˄���3��>�~}vF�����e#��Ȑ������NЉ�A2|�
I\1 |��y2�[xc��������'�t�X��Z(8�I=c&��h�G���>A�����}�|A	��弼�i��������_#X�5WL*j^i)�gWMؼ�#讧�,���
��^_S��n
V<ٷ��~
�k<����]%�(�/>D&PkE�<Mi�ʼ{���k�⧇#�B_�5����OnLݿ���O�ѻ����A��2���X35���_�ˊ����%���(�����U����
&D�i/-��|/�&�v�
>�z���st�
��ō���t�=�ʜ<����;��-j��Nb��"�:Jg��)
+��|Ӻ�ԟ
lM������O�-�
;�y_�e
U��C��{1��!d�|��II����Qf��#͂��s��g��n�Q��NL����i��Z
�x:$L:gƽ�uY��
�j�
k��9�/���]vT����

+T�
�c矟�~����l�bB�{c��?F���+@�w-��o.F㮉X8���|ˀK�2�?l�j"6u���,�E%詃����^xu�F��V?���F,�j_n�ޮ
���wW=
��qJB΅��'g�룷MĂM6=���ae���cO.��ߙ��#��k�I�Y��_��mC훀(゛�����ጯ�����R�m�C�4b3�L��]#�=�O=���T
o����5��'�yY�}����zy�ohc ��XSW>
�\���>YQ�G��ޙ�,y�w����1��0=%�y{�g
8��/kA�
؇�RH�،�Gs�����W�QO�.��^�5�WE��s��hoɉ�2�
^7Ab���Ә��_���?��~^���ɟ��'��e�
�o@��5e��

Lv$]r�ߝV #~
�\\5`�
��+^a��Co
틋P�c �u�\��"~��RϚ���յq;����ּ�_�p�_F �7X�j	��5uٛmS��Qq�e
1�Ҿ]8��z7љ}uU]����^V5D�8S���d<�,� �G��3�mME3}��gzA��}�2��n[ ��孛�c=��
�Ҝ��7O$~��� ���(�0�Vt��;�m����OZ��L����(��i:g��_Q��\
(�� E횫?���;G�;;@IdP�oc}����o�|	r[�m��e�M=���ʇ��-��0F��ScP�/�櫗X�o��������'���o
	bOvC�� [...]
+zv�BN�}BV�\�̿i��ߘS@��ĥw���Aq�u���� >�TWM�!.4R�(�?Hz.�[��kL��"R����k:X��	
��(�
h��Y2^�˹��x x�Pų�ޒGk������.z�-2��Q������t�PB?\�׾:3�I��k���ˇ+��&T�Ƞ�9��;qF�H��5|��W�
�roE���k�
�g��6��E5��B?&a]y��-	_�ޛ�)�3�Y�x�@�_73��Uwfz�t&.o��.�K�;���?���
�߲�+����
н��dz]U�3���ӝy�V�G�i�/���?g���n:��-�a���p���/�U�1���7�����
K��X����M�L.�
;��=UoN����} >L���,�q�|�����
7�w���`Wy���x�IK��M�>硥���P�^��F'=�p6W��s<��

��I���ZO;iѿ��J��=KD�[��nb�LwœIѓ9Ii�r_E2��om�w���/��%a߇,��.��i�O8 [...]
��>��ox�y2)ʿ4%,���[�lS�0ҙwS���eJ
��6��|��s��[:r����������s�{%5����suq�2$*"�}{\R��G2�'=��OC�K�nJ:�.�
����-��3�16uP�{Կ
+��nLv�\YV��ݶ@�G���X����cw�9�^��
蟞�C��������>�z�}{Z�J��֏L���]���с"CݩAч�^N��գ�Vrd
�(�75�Í'�z׎*�3C���c74�w�^ew��t	
�7f�P�So����� ��>ta�����&���FT抾�U=��Jn�@�^N��΢�_ =�kC�
+
+o k}��������3��)g=��'DŽi� o���'q+���
+~���@C�g����Ѷ��.v��	)�Szj_�ب
+zl� !��~t��6p�l7����>r�

��=�ǜ��b�

�jB��7r�95<�̌��������@��U]]4�&���S���!�ը^v�u7;ﱿ�$f��,rS[���QDſ���-<~�A�xA�<a���4ޒu��ͺ
d��2���O�8����gd]^2@��l
��L�/���=_cš�*b�R{0��=�n��5ׯ�b�=������߃��
k��

(z^��`����'/���OG��0Y G�}:��bA�
}F���@
8����N]
������7<]U#���y=>uQ�7�U�dL������|��7!)���W
�- �8��
��W��􋞖ċK���m&��MkZ4��l���3��%}s������xʈO:;��>�ż>�|�}I��c��Xi��r�6-���>d��= ����	�?�^ykY�JX�. C���a>8��Q��9Y�A��Y)m����D7��O
c�
OX�@c���� �v�9'+�3�Sxw�
��"ȫ
�~BO��"���eNZvg�����h��1vv��ߜ`Eʅ

2s��r6КxfF�}%ȋ?�ܟ�pKW��u����^��~8cg���W�׹뀥Ow�_�h˽0�
�=�S�h���EX~�����uIw��5�-=��w��1�9���3=�{'
�7'W
�X~C�岷��;��O�ƒw
e��M�����ϼ��?4����^�u���d�Ϧ{j^��ـw��6!rv��L�N�=�z��Nv6$]��>SӯO��_-���Uɟ]���G3�ݔ�U=$nX�s!��D���b�e� '#̬�K:R��]�v�>[1�R�;��Ǻ�^��Y���IQ�qa��3���ں��|���k���{�vT�ף9��t����*z4)~{�=�ަ	��i�8���Ո�3
2h��ct��!2t� I�
��
��E{*�L��>|��B:&dLZ�d�
���
�����9�SȮ��e^�H8�������}�9Ow��U�#x�?
��f� ��p�����<si�!zY���4a�|�
#��
���0N]q`G�|q�7ͤ�5�Á�]
D%��+nNwUޙS��
	��.l)�qd���Q��6⫋Z�kC�nha1�:x��-���`uĬ
��kJ�tR�^A�e��Ϡ���B͋5<~W�\��C�;�DE7�옼m.wy�nQ�㗀�z[+OI�^
z�E=�`�

�������C��!EM�hkޟ���G� ?m�Pɟ}��M��U}ܞ������L�j�YyW��q��)�g?;��M3��~�ы�oi1i�]z��oXb=ܢ�z�5�����fG|\��܌-�>����6%e���qg���
3��;�f�w
��Q���.bU�/<��Y�vz�t74��Z��¯�Bf�t	��Ɩ-kJ,��%����vUQ�|���a��<�@;� �еU_<��yY֭Q��+��Ի���W�}�g;�Ƥ��]9>���U��M���C��`I#��k*��ߌ��?]���^!���W��<��ArR���1ә{\�ھ�oɹ<�Uzۉ.R���d?;F�|rrӄ�9������+��|u�t���t��T�\�"33۲%����b&��e1 [...]
+O
�R�y�k@�ye\X� a�֓4=Ce
񫯚��
����v/ad�3���~���i
|a�OXxK�5��O�q*�H�{4{v&��@���A�E
Rl�S�Z���rJ*����ʿ:j��Αk�xt�;�%P�χ�䎩C�cm&�LX@��Y�?����DL'${
씨�{�8�У`�=rz}P�}I��>(=���:nyV�m�Hj��I���'���
".1���j�g5�[/<�g|"V}��7����|�h/�f�y�Y�'k�N�k�Z"��Ny�&ͯ䷮�o��m9n�W����_���~�1R�6
m�
"cJT���4�֣$�o�2���]�pk�
���k�k�aZ_���\X��6�5m��S��~e����(��*RiH�n�Z��m
�ҭ�V��9�������$PKW�Q���;���
)�yg��\lI��,�*dd��8����6�)�R^�g:�.ج��X
�^��K̹�!�U��ʯ�G�ik�K���?Z
�y�}�ňN���8�4��'緬��\t��n>o��������*I1�W����S�L�7&cU��*�{B��Q���)j��9����o�c���~r����/�Ϡg���d�ze�n����+)�vk����q6f��gpwܓ�ˎ�%/К5�,��@�2>Dyr�t��RXΪ�Osb�Y~��wcsq=��Wy�ȹk �˄%�9����ʮ��g�~��\[A^��|�x��xTǁn�Q�WG�Y��7�Zf�c��
}�?M-
��ͮqQ�kJ ���ݰ�!��){���{�1C��`Y,��ɕ�!إ�א��)j�” �V�xf�_��_&D�Fi%�b�����em�a�;���aC}��Rn~��j{��4=�g��iɊk1e��h�B���}���FD�!ܖ	�^
�>1�By����ᦴ�
�4��r�Z������ٲ���$b�CV��2}Rt��)�կ
�5���&���q�^)>3nq�F
)j��jn��
�he
����sj.��QF��������9)��֠�\�9��n�z�΅��
��DX�c�Y��
+R	�k�1�
��
Rԍ�1��z[k`l�:j�Ҷ�
T P�|
+RE��&�g���c���ˋ#��~v��ᢾ��')��+MW���
��aYҾ����4Ģ-%����ww��ޞ��-�z�Z��k#�L��k�_BN�
����/t=��y��1���Q���!�Y����6�������c�]ꖶaֆ�5[�2�
���-�4>3�&$���ԘrN�}�v��+�	���o��j������9�ό��;:Vs�������]n���I�U��� �c}m�
�<`���!V��>�GMw�_�RaS@*l	L	!�~r�+�O�A�:���l�
�tH+�,����?i�6���9>9a�քT���~��7 �Oj~��¥͈*?��HE1��Q5��=���>=3���s]{�����2��jU�Q'�_o�g�%�<��B�S��� �A
]vMӪ��]]
9Ў��[[C�k�A�嘒]��J�~%bx9�8��
2>��
G
݂�yP
���T��j 6l*80S��}�X�0��\c�k������~Zz�x"��mNH��$t�}�q��
�L`H	z��k
i���k�o
5�	�	�I��� ���
��
,JD	
���S���K~�=*��������ۥ�5+{ZxC�5H�a=�
ѳ��B�c��J`��R
+��N�xg����k
�	�a-�)>�!�X���)J����ZK92{�I꼏ON+�J�e�w�c:&䃕�
+��
�����7��!=3�/�������?�
�����E�Y
9f��\�2�����!� �S�
+]S0.�l��
+\j!ʫ�b����G�M_h�������6���q��=��̅׍�
��L��\
��?�̋�
�Z��=�A��E�\n�.� -�
0��޷�Y����H��M�:J�t�P�=fK�&�l��s����qz!�M@�}T�(ddCR�;o�b�m
#A�h>
�j:�!�夂�J�vM�J|*VCx���h��
.�1�tr�m�_����N\Hy_�#���VG�N�xkwc�-���ۖ���/4
E�y���$��1z�����~�_���#��e�A�9�9O�Q���S�����3��v�[�/����qk
ys}qas�p{�=9�-暢��OA

���ߵ�ٟ�~n�_��c��bo�ՔҠ��␲k�'�%Ny'ѭ�C
��kK}�?��
+>St��ҏ�㗳PIk��-��y@,�'��ڮ�/�
9�n�7��E]��t*����-<J@�E�bL�($-�o>k�.�����/���?ٟS⊣�6��51]�S�'��
+J���g}gkvik}�3C+r˅P�S܍���H���`���s>�x���}u'V�ʿq��^۵I�/6&ZӶ��,�42{m�!�#��'-"����KE��=l��1J+h����~=�qs�㝡T���O��m9�>̫�N�	�
����AL��i�_�BNmM�.�ը��ԥ����{듴����c��4�vZ�Y������i�v�ӥ7��b��k�v����{�tzH
�ȧ�
|z����t|�� �����hߘdUl�M�31��<��RǣĜ���v2n�∰zi�
��/�[a�$f����\{��J�������P���k�'�^E�ȧ��
l���&�-����Dn�D�$Wĝ@�O�`^��DZ��G�5��	�$h�����؍�)�����>)*=�c5Č�V�41
p|Y��o�p�5��n{]}������[�e��	�:�V��Y�����e} ~�����z?��9΃l�<�]S<�ݔv��Fy
/��ͽ�O���])��sLI�H��$�=xk��l��W�<���
f�l�n�����y�iy�_yp��*z��(���0�̫�A-���W��c��~����u]7���S�z�ޏO�
�\��h����oO!��fZ.[��u���t@
r����<B��:�K���l�R�CZj��"�7q	��m�⯖�6��hÖc�g�ia�9���Zj��`�
����_���yu��S:����BT�U`�Q�#���^�³�#�Ly[�_����w沼�f�j�w���o�6�q��.�'pykC�L���g:��r�uL3*l��[�5
�>o���M(��I
��\�H� �L3}ڻm~
ђ��r�J?�G��ٜD\wMc2w,
��vz}
�
�1Cz�_�+�
h:g^���I��S�ʨ�S�=�jTu�|�%fU���
+���F����1|�ЍiV}���ty�Q6��p}���3���g�T7J�!SW����>B�%̐��Z�_uL���e�⠎�ϲZ�%m��Ξ�I�e����Ը�ՆU�
+��퓥�^b��
ݝۚg����s�o�go��7��$<�\	�&:b��B^b��#�Dڄ����������ފ�#���x��
+��V��X��������#szd���������k�4�$��ZR�2�
�86��L��OJ.N��S�̥����/�]�n�j=������
6��>u7�9-h�?�=6H��O��;t�2|ڇ��f��צ��[����^�Z?��*��΁����t��d}�
�2v��6y��5!l�
�fl
�3�5���:��
+~~�
�sui��x}kR����)g�I�>z֗��?o��8�eB�@9�Ye~��Sr��-?o�A�;ƛ�/��8�h�7�ZRs&.��s@
o
+h
=�)�H�}2bs�f��R��~n�Ms�[J���V�oO���:
�-�g����M�K���/��9�r-� ��8��{�g�^�
�1�9�L�H�>gf�N�Y�����k�81ϫ�*
��Ww7�%�
�w�nyR�� #��1��4�������>�g~G�5�)���Q�٠ZD��D��EH
��u+C��-��
�ɫ��;����.;8��+�U�,

+�C��
�0�Ɣm�B/�f9h퓪��{�:����Qx�_N�J̊�	���G��A�1��
q�Kg�s��\	��Rq["z>.a��u�[�
+��'D��IQ��9��Z?��WFm
+�ޞ!�G�<��R���\�!=
�W�����
+��S���z>zy��S�
VHǂ��\􎙇}
�|�$B6�M����K��Sq��o��ûv.9faBV��5�� �MC����Ƨ����!3�r�.<GG���؂�}gI���R�:lm}#db�
���_�ハYzz|�n�K�(vM �l�k��^��>����]����M��&1�-e���R��&(��	�U�X�푦���_����}|V@�N������������\xv��JӯK
��T�UՓ��^�\��:��6(ЯŎQ�eW�g�g�g�����ك�)	bs{sc�p�-�B|�6���H���NR��� �rh�Vէ�E&�z��
�5��������r�9���p �(c'�%cTl����+	�!����JW��N��+��;Is˙UA��G1ӳ�R�ߖbn�.r��y.έ���`nmMR
+H7)�=rN}P�G��(y-�R
+���`�4?�9�l:RSK"�N�_��9���T�[wac�R�R�rc\O��T<����8���`�[����,�
W�ԝ��8�b��u��a�u�
���"����IHLX�䈁X�&%m���{{
�]
��lUo��J@��2�q�I\�L[����O]S�vhz}#���ҟ��n
 ��)��+�V��� �_	��m���
~.0�ut'��
�qe��m�
����ak
+�6�)�է֚��42�_
+�jRq�Hi���+���Ĭzx���m��ozUw<jb���ֺ^�-u<��@��*�zto��ӧ梗�!/�?��������X�א���԰�X�W#�w�,춒P�5�tj�q���t����7�I`,�˒6��Ph~�L
�{��.?
���x�7������|��DP�E-�:a⣃�%�V;&��s/Z��z���t5}�j����
~ɗ��T�Z'�x�1�*ݚd��>��F.���ڮ�?́����p0t{Zs����R�<���5T�]p��K�7�W�R?,��b4=��b��Ű�Qz�Gʯ�*���Z�m}B��q��O����}{
S7w�����8��
�uO3
}г91�Y�w��ܿ�f��^5!��zz�9�VLÇ���LZ�Ȩ�R���sf_�}1����u�qkg�O�NqI	yۓ-W�|i���F
lxX�l��l:-�g|
5��f�SF��+ȥ�(�c��g�$��\�!帤캰��kc{u}�匼���{���3�v�0an��m�`o��B�_-»&�7V�J��_��(���	,`�{����l�c�q�cԉm���=��ڻ��Vߔ|P��f>5i�y蜢���3����������ꈥα��+}E_z��B�{船�ǣmg��q*}�
�[�A��yШ���Vb��Jt�[N-�븭�{j\RbvXφ�5lXPI)�1R�w-t–�
�Ez�Y�c�~�>C���o>g}Y{b�
�B�@���;�����6 �ݔv�W�h��'��g��Ҭ/�O�&5���5qw��Me֡���z�z.̯�UmN��o�!.
�ƽ%q����7ӌj���)~��b�ݿm�=:�g�����6^����Y���=*o[�աK�V�����(������`I���� ET�%���룵?������ۋ���ɮ�/�7:���
�_�uU���~ؙ���
j�(�B u��5kÔ��F�rjn�AI�Kڎ
+h��^-�ui}i�5������
�nm����p�	�=���s�Q5^�Y�Qr�o�W� ����t�E�d��
+}'lH�#�58Ån!מּ�?���5���>�y�$)���9�k�u`����
��Q��
��9N�\
h99���s�$�N`��S�k�F1)��?M-��+��"�[���zB��
��e~
�&1�� ��qa
�9l��
+��:B1.j�"
Ӱ�n�sy�qyr�G�(�=��`�ژ��a�8ǚ/��$��LXL�Ƌ
>Y
�_ߜdզj�WƩ
HQw� 
�GaWV^7�L$����'1���QP��Xl
(5ۓ���iD>c����Ӷ�
���nw��+�x�irEH
be��>X�"ii ��l�
�Sjv�
�g��b�6^ܜ���,�Dùv)f�j6£�BV'��~C�]���ЈP5��5��q�`��&v+�A찞��!�Eu���:�BR�c
z���௶WͧBZyo��qxA"�[����;���H�#��Zr[+@�4|����m�>{�.�2��ܿZ��-@����Гs
�G�x3l���ScU���V߻�<H��9E/�ZD�����Yr
|vx��v�蕠MZ�Ʈ�~S?�%�f0w|3�[1�d�ΰ���g��Z���mM2j~��z�k�q6�a��
�gU�6��3~Yf�����joE�w�	�!Xn��ͽ�f�7��Z�3Oim��E(�����p�=�Cƭs*D�me&hl��t�[-�oL�2׆1�A
�
no�3
+��%��Nl���uX�QSKA^�p�Ss\�Z״��1�*vNP�]c���*��WoO����ϩ$��*ř�����dĨc�]�����ߚ3	�q�@���1�kC�
�o0�6Fɀ�1i�#�+	
V�KZJ�_��^�+;���qO���f9H��\�!�tlH��jI����ό[�M�I�U���c
���֞G��̲�E@�k���Yb��%6�`��i)�n)�֎�R73�6D\	)P�|R��]������zǍ�<���<Z!nK%ƭ
�n��W���8I�ʩ5;�vT'"�Z�蚡�̵�s0����諭_�?3%��`�K~� �<ͮ����"������#n�7ո��Ƴʞ�?����$����mm!��
1
������%6gk����p��QHٱw=��%
��I�޵�Q
�9������d�����s��
�;���mb��5
�~}��6��?ϣ&�|֦�Za�C��NsQ>sWWp�]c$<�Ə-tt�,��
��;7�)׽%\��E\{��m]=��ZVjF��XKF��&�/��w쏦�1}�=����Zb���GC���A=�ʫ�UE�8I��a,?��T�
!'aa�v�|ꎝ�� �����|
`dl����&�pʉ�������<`f�����o
a�D��Ԡ.�Q�?�	%���|Nչ�?�/�e����p�A5��l@���k$ �p���\HlNŽ͉
� ���7���	n��-s�Z�-g�.�o.�C�9���S��z	)� |Ja�_�A
h;��E V����Q#�V� �c��W�,���
+?����V#�QuQ���9	'2+"�� 
뉅~�E�
/�A��S�Wsc�?@�؞�|�9P��c���h�I�
�듳j}>�+g��B����P�	�x��n��{~�;�ˎDԝŞg��Fצ�1���®;��O5Hc����& �ff��4�vy
{�qH�@�	��{lyD��_i9��1�95��x{�7�IzY$u_�q3�@d ��X
 �;&�����t�lM�� k�
�Yp��
}R8�
����h;�3dj�`׌jt��A-�2j��~]�s�9��
_�>�r�1��I.tv�����QѲZBjRYHCo�۹v!�������A�9�T�䍿
2���0E
�&(#�$�����7�	~
�&��K���A^$ë���f��Ă���Z���{��o�`Rk)xt,�߀/Y�B\Y�B_� ����mݨ� ��QK�ަG���'��B~TG�
+j �˩%
9!wg���_�x�~�1�����!��_zkU(���
��ۺ8F����U��y��F���,1
{�B��-I�ުH�cc"�ո��)|�G��$mw�&�]
�3�~5�z[F�
i��
�x�k����ڳ>-	����@���„�
�1sQ	�i��_������θE� ܓ�܏��5N��*�����J
SL�k8#�������o6�j
��^�ȯbT�Ή{�,v��-<LH˪1PTw�ݲ.�W%A�����\P��@>/rK�E;z!q���R��8�^M%��{"���^�-#�
�/:&�|JF%�\�j?���0�_I)|��'�
b�-���ʨ�IkgG���r�h%�)r�OÃ�
@�q�6A+��G^Z¥NC ]/L��G�]˃�T�z��^�VR��*z����[�(�[D��<���[�h�I�4����RPC.� �Z��TϽ#����UL��`���!ȹ���{+k�>~���0n�aA���Z�mcu��"v`�7���%
u��;l��̿&�{��ڃ��G�
<�W�z�9^��krn}��W�.��&ls�&"a���V
+�1�
���;��ه�Yz
9�R*�q�=��v��w���%�5�&��d��0�ж[��̕ADzd�Kp��P���=���\h���꾍���q�3���'v;iu�G������
��q0��_}W{\�]���a\Q��p���g�@N�&�b^�&恚"����#9G�u�C�����&��3�~
�.Տn5�ɩ@S��Fu����;�W5?%E��"��zD��F�
q�	�=le� ��KΉx�c�������;�\��#&f�s���1A��V�J��,ܯ.A��
6ۭ@��

�d�[Q
.���=����T�(I%�	BN�>��똄\��H�Q3�S	��V�c}��������S�Yr՞��p`'7',����<ڮ�G ��
��P��^咒
�J^�W���M����D�iX~�t�=�Ή�X�

6�tz�O�;e]����S��1V�F?���q��7
�
+V5�%��qj�d�:�K��#���~��h~�~c����ƭ� 6���p�6g��	vuT�c�*�ys
[�Q� >����p�9��c���3�b�o�nQ
#Zjy�@���%�dV�\��%T�
�a%�jcw͛:&'�E�
��4�|s�p3����z>
+���巵����/�d�+a-&�Md��ł:R��V.0T�O�r3ad@�Jv�c�pg�$�~X{(
���k����2BiH/ $�:����>�^�[rLs��{06[�ji�~vk�T�ZG�3�nH�<
��ߡ��]U�L�2>_y�}Sk{S�W��N\�E�]+��aI���"�l+�u+���o��8��V u�_ǀ��l���Pjؽ����h
����;��IדJ#Zt��`k�g��7w��,t?t�AM4q�;
b�[��zح�W�%���ۛR2$f�yt�����t�M�( �����5�V�T��\�Ã�o�����¯ζG��
ԽUIo�.`�-K:v�|�G���{Y{r�Y���RR�ޒ�'�-�q}�5/ae">�y�_m
dTIj����33Np˿�oq�7�w,�ƈ
��9�p«@gD�@KXx��,�o�YM^5:�=�q`e�&�Rk�S
A���tM�J|2j��&j����M�=����}\0w at .�hEX��T��o4
�[ꀔ\
�
�*ү`U-�l>�=�Ɏ�i��
Lx��A��V	�>}٭nû�9��]�_:F���"��ȣ�l(ň�	q���9������L���S+��K໐���%��l�95^�=��oǽ�]!c;�9��eyZ��w�Z3�)I�X�L�O,g��L
��l;?u_�s{{�}�	��Bj^3�9N0�Kʪ
i$d��Y�0j
+B�� ��� ���.=��5�t�k����rj���BX�/�hq�A5��-�f9���>]?d�nwJq�K�*���E~��3A���ʣ~\���ҷf�%��Nqp��Ah��Q���wɈsϫ����gF�|�kZ��{�?�9ʮ��%�
_3�|rl��e�3���Fiw>�=�\ߚ�(z+?:�0�g�
#�[�|aHO�
�U^-�:�k�F�:;
RZ�c���\���,HD�Y#l��#:rMHK���y؝��I{��{G���H�o�"Z>&f��_�|��@�)��I,����k!
�$h`� ;���6qx��dl��Px�KY�5�
�w�JF�ҫ��f8���ؕ�g�݂3�}U��Kt�ߜ�� g�
\��Z׋�
�䚡��
ïϽ��qu�P���OX8�鎂���3�y��Y:$0Rw^ז����+�"����=�c W� ����
+�
!'f`�� 6'q�]R\�g��
�3+w��_�x���ll�Bo����:a�!�&1�b7$�
XD�l�Y��Y..�c5D��f����S�
�!���Z^��8��Y�~9�l����@NN�Y	��'�"b�d���zZ
5�a^-0
�4� *$�%�?�:6����;����FB�:�a]9��Bz��-LDԌ/����n��q
�?��$b��t[��'@�:�ڽܯ�d�
�\X|���ԓ��R�
���N�w�Z�4�)0M+�Oc�<R$�$|NT+����w]�B����êo
�|
�}~LG���\եƐ�@�F1-��4oO"n؞~5���밆۱�>O̷��,�_��EL
�{�	�6(k��Sk|`
�M�������
����'h��JjY@�O�lvM2�6����`W���~�k�ysuik�Q�
�5e
hX�ClN��ޢ��:�~k��
#d�5����]
+ֻO���6Г��X;�����Rr�G�/؝��>.
+x`�$m��qS�����h����u�!�����
?�ޯ�7'm�]�K
w��|��b����D���6.-f�b��̈́�mE��$��$)�9���=Mm��y�_���c��MX��iJ�� %c�=53d���k�"�6+
h��{
��_W���Y��;���9�H
-)�ҥ��Aί�o/��k�lL��ֱ
b=b$���}0���l~rN at tH	9��-?��o��3�z%���
,p��$��ю��
����e�!.#�c�옸�8�瘑���;/��΋h1
���:v�_#�u]\���
�
+Qq�  9;�f�F�Ƹ��ر�(!0�-�ʾ��^�KWޟ�F
+��,XX���5
�G�L	 ��|����
`_��[�*859ˣ��D��<�ScHǨ�Z�~M����s��T����C�0?x�Q�jm�Z�:���$-��������G�W���*�j]A
���rr�eŏ	=�b��AEu4�cU���l���QuPjA�c����.�bJ���	jnp at L��8`�\֮E@��xȀ�Z�9\ufc���v91�A'���;�:>2r�_��
ĕ���5�D�X�J��Fyt������ ᖲ��G�Ӧ�b���
�v�.�
"ⶌY
д}�
�_��ٚ�g�=�����
���/�Xn؝��[���E1g��c�����霠�4Bt��)�Ių]r7�e��D��.���[n����c�f���O�N� u�OX$��&ݯ�EM�˜��moQ���f�C00A�KC:vˇ�86����z�U˂jj������ȡ��h�Q=�zcz�3�����v?���/6�Xy_���(<�H�پ3��8b��u�X
+-����=} ^ɩ�NF�_X�#/��X�1њ�F&96KGmM����̺��
�L!o�_U~gz��9ئ~g�P7��c���Y����v��|g[@�n��o>nxX�G]wƿ/�(�����qY"��"�X9����q

�P�r�e�(���0�WN̉�u��܏�b�U@��R�4_�*)EA��w�n�*��ZA|�y� �
T���ZryXC��Yuk������׷ǰ��9�9�|u���gGj�o��ŧ�b��YU+o������4�`�]�y�����}U'v,|��BgO�z����Fs*�����
+l�O���"ozd���)L�G#!����\�`�.椮a\yM���x�v���`���\2�
��Q�4��I3����d�^�|i{^��w~3����b�[�k�
g���w�Oa'ܣ�;���?�:��7�}
 �{���u솥!�y���Q
"w�P�UJ=2JUPņ��m����ݰ��vK�w柖�u�w�w�C������f6"��C?��8ՎQ��kR�O�z)>�̊��e	���gw��
pCwdN�t*x��!J�c�-E�����Yxu���e>ko��A�*dF�X��y!#���*V�OF�pK�9~-�`g�K�_�~�\y8�P1j�ZZM���$�l�{�c}^w������$�,��׫��[���[o|���
����:��f�%fT�vu1�����}����
j��n<�5�z�-C�	�w��䦃U����;g�W��g��J�1��M��$�5��E�`U(�[�z���[r^�3
1
�.8�z{�~��?.��9��$ ��i�#��}��
v�=��8��Y�VZcP4�<-n�@w���\�$`d5�0W,o���N�����*�t����۹���
ݟ�{oG�F�k�U�	��շ�'��+!9)?����[���y
!1�C��	�;@�u�b��7aJ�s�&0&%;@�G��G�vq�9�rjs����|�.�135����t
��,��u�i����
+�
�1��y�=���n/�l�z�w�Q荏 �
,v���=]+��Z���6�1�O�
�8'��&��;g1���Qk��������\�ܞbU�tLDK�ݞn��!�����{Q
�!��g�����1dFLK�K
�	�a�nP#�
+N�Kʯߚ�U���.۞�~�
+�/��|����L�L�ܳ��
��9�� ����}rص���ӎԵ��Q��7uw�uB��81s���1�z;�"%� �-[��k}��#�5Ʈ1�k��;��\��[d��m,bH�.�13��"���=�6�B���0�kz5f&��.00�v1:Ko�9us
+y3>/���l��$�{}3�$���Sa�n��W�
���R�S�>�q�
�m�j?��ܳ��+����&�X�6��1�j:�:�->X�
+�̍al�F_�i�t�Y�L%	+��a���μ��1�z�%���\Z���z��^5
�=�ĥ�_ݖ�2���m���a3�56���/	�vm\JBO��	U�Y6�k�a|&>ڧf�x�p7W�֟�>*;���\�<0�Sנ��}�[���&s��'iv�̦����?�B}\��f�Ȥ���j��>��w@=q����o��k'V
���y>y���Q1�#jjyL�nJ�����\�����ҧ+OK��5���<����љ0s�S�K
�K�%
��}

�g�znK u 'A�?A9�{
+Ĥ���S�ZVC�����N��蠚V��
~�''����;�"��	�{S/���;~U`��*��1V}�=I�*E(���3t�c�n���h Ξ](�[�wyT���
�8�L�N
+��C�&uG�_7�c2)�����Z9�T}LZ��_N�ۙ�a�F>:���I�
�h�y�(�Q�o Q}j	~k�U��'�X��lhP��1ܻ���p���IxZHOo
��ۓ�|�

�
+1
��us����L���� ��&����!�RB��I�5�8i�7����#�g[
W����
�H��;>τEt�bЦ�"J|j
G�GP'�s]=n�ae��	�Ta��zD�O�|Cw�Η�I赀�R4К���t�*���1���&V3�RH�
�	~ǣ��LX���������T��}���q�ϊ��
��Oo��8����;�
+S��Z����B:.�5E)�X�kf�čL�O�*vL֧��0w�ZJur��s��q�
7h7��X��gc|@���+;fJC��EG�yظM��}6�Z�ZR��2����`��<�S!^5�t}�|ǧ�DM|��R���]�񁜾-#�z��
+P��y>mav%�a5~0vp�tB��
�>BF|^̌�rL������U��<rF�_M+�����c����AG'�M�Iĵ�ą��YQ
+�JI@�͵���^Ӗ��ƛ��@?�|���6� w�1� ֱw-�ڈ��RHU&�D��+!��V� �0��&��j�s~��r�?��/�r�D�7�@ ~�۳�ٻV!=�%o
�
_|W��c=4ӎ
�{�!��N�T�2���v�=݀���I�U�
!ǯ�5}X���`��a�Q�‚&�,�N�� _���Ȱ�R�\'#���,n��2 {v.q�C��!5��\�%o5�
������w
��(2�99���mc���9�.��ډkS��B�w�R�"|�qI_�?�y� �'~�<���$M]��Ab����In��@K^N�;x{�������%#�,�AӢ��$���&�W�G[�l�4�uN n%-�w��؜��WQKSy$iആ�-�
�%�,���
��
��U�Y!���f1ӫ���Ԫ���~��~�`��I
�3����3���ID�������Q
��
qׯ�l�/��,�D�X�w:���S���~�Բ����8O���e�?���,2�m�w�}����O��A�E{�#�k�����7�1���;]��gY�Ԝ{6>�â�ج�=��?;n�c�~]�?l�ڽ*l��`�����|d����1u´߫Ź�;R�/i�Q���[ʨ�[2>,q�@�V�3��g����?;'�N�gY�F
r�ā�[ح�&f��,�xg�
7��$���[�1^}@}�}oA����&�,�}��ks/�������\ƴ(竄>UW����}{�

��'����U w�ǀ��j��+y���d�>5c��nI]��:��ъV�7�F(9�̳Q����;O��ij�mN~�\��e�x�&�������c���q���$��ͷ�|zV}|VLݛ�}�g�y6s��ɦS����2\V������� >���-|�������
LH��Z{WsB�y퓹�
�a���h���Zu�"`��)�ڳ�	��&z��d˅qv�?[
�~�g� RF�����?y���@g�?̵s?΋�^5�ds�
6	I���03�:j��H˩���6b��U64ul��ZX�k����I3��fJE�@��Uw0/��$���.9� ��!���B�0	��x8��R���%��Χ�z�`���W�1�|z���~\k��[n�J؄�X�|���0wpvV���tޏ ��cn�e�1c3a�{/�qew3j�h;Xk�	hZs�]y��F��:č�_�j��IZ���k�G�g0��7�n��+���6�S���s��j���al֤���)v`U��w��e���δ�;ƚ�;�PW�����"���n��� G�[%m[����
����WE��d|5R�����Bn�xHp�T�ӽ_��O?ع��Yv+h�򥷨s>�~��u?Mp���� �k�Hå��`����E
����eG�
6;r�ّ#�͎
9lv��a�#G�
9r��ȑ�fG�
6;r [...]
+��|�	���9%��u-��ű?����b��O�pI
:�-:v
�u����.��P�c��s�c`�cUl�Do�aPT��c�����㓆���H}o.��!V���#��|3>�{�T�����~{�x�����Nr�Xx@�?p���SڱK�����2xKp,�ұ�c��Kǰ��k?9#-����G/.�_��~�?_��O���s�m��|�������O��s/�R{�[����[���o����<u:�M�'�q|�W�\v
R�	���ߚ�7OR�O;x)�•����Z�]�����r����3�������cW�n���m��
��;>9q�
M��c7�]���	����z4n�P#Z	)��6�����
11�wm�ƸWR�"ZMd�����A
��%#������Q���;&%n��#Z*��BSKf���u����)z�� ��5��)��%� �#��ը�	��6>x
2=|0u�}JA�WJ/�Lco��e�YQ9�,�"��6��� [...]
+����.vgŇ

�<���:�0�q5���ё���:Nk�(�'mbNt��r������4�>;8èLĴ�F�
)$D��
Ww
3���e�����o���VÎN�����q]���יּs�oϽ
�{ӝN��N:
��813Ȳ���T"�23� Y
ŌbV�᪒��������,�N�����y��G�E�����փ�j>Y{����P���畟&���g('�:AzV\����bN5��U��ܕ����#okRմ3.m"�]]p=
�[T��)���ne'bWf�����&1+���K�q��ji�ꋵ7uߓn~yޣ��u��_��`N�G٧7�xE�ˠ��Fe�ʿ�3�9��1"�Jժ���9�/�5|�9�̌S�J�eTD��ϛɐJ@,ܯ`�yg����X9�q�2������1�Wtb>I
⓶�
�+�����GTM�T�\���=J�y;�Wqp�J�c�mͲ�#.Y+�u�4ҷ1��
�o>b4a�9���vl��8}���3�PkX��&�B���	�^N�T�\X΢��F}��/kυ�r~&3'��\j.
蹎u�\D��nj<(�D<�R�ǩ̺ٗSs�s[����k�?�2Ϧl�F�C��<���ytgLp
��X��,$g�>a%bc�A5}D��,iW�����M [...]
RԭhOϱϥfYg�Ve�°�
+�ta
�%a���j�!km;B8��p�,��%����Mтx�ڌMݾ5�>�����mSS��YA1eSwd
��aә_�o5}	�؉�T
���ë//�����s��(����yụ�pM�G/�=Z.J5i�Q>i铵�zU!�7�>�jH������*ܩlŠ����+/�?	�+�h�T�n����̚��qޙ�M_.�/yo�Y��
�4:ǽ��	���������lZ�N���d�O���k�yɇ��u����5�O/��j6B
�˱3&�n��O�Bԫ�A-�s�@.b�����IufVR��H*)�����r~q
�U"��:ҥ��.~j�\���<*&�H�VH�
J2h�E=ziҦn��
<�cTa����h@#$���^@����p�7
�[����B�
2j0�b��Q<TH�!���#(C]�ӹ �8�T�=-������m�O�AAs�NQ�T�B��\PX�u��oM���̼ؕo�a!4�
(�I�x{�yb��<��Ԭ�X�
�]-Q��?�O�^`���)�����J2.^q�#o��G3��C4[��@�u�|X���R�
+x�_�#��:l�>�\ٞ��M�W'���b�~�/mߜl�fc�������Rv�ȋ�ý�/=�(��
+ܞۙ`����^���Iz�)�J��N��
�_Ņ���M>��>E�����q���Cٺ�4N�����w�re�Œv��W_U~���ӔU�����fSڭ�l��`
@Sܒ��W\�;�v����j�j{�w1�֋��
�}�1�?�U�dgDWP+�bz�}fc�����?��b
��՝	��zk����p�d�q�
+�[0��
+��A��'��=��˄�
"ԥh�݂�|����֠>N	�T��n�:e�t�'4��]�������BwN��;p�w��5e�؉IU�����+މ�+�ql�{ak��������?���y������C�S#ʂ�o�1��>o�!1�~�rs�)W�I��-��+���A-u�&S!d��F�j�+�A�o��^Y�k%b4!
y3�R��:��>
/ ��
�.炝��!��z��mIZ9��Sm��A�h/���s�؛
i$�G�B=9��x4
ԭ��/
�,Լ�������N��U��΅
�葁܂�*��
+K]7�
�k�p�u�=1�U��m�1w�Q��~2n����
���H�
�>��Z�����(?4��ǵ��O3�↼��#*�=�u��)��!�բ^i+�R��"#V�p���B��\��9�d|j>
�P^y>"�$�R6�cm۸E;Vy��4hE�������2>��".EK�/����.᠟)���¦½w��A�ך�sK����R.��������%�>f��oNo�����<g��y%�9��*�4
i�7�I���['�����M�B�R�ֵY�Źk���e��
8�.oN9���Y�Y�)�+����ʌ[ִ	
���{
��ILHK�YYj��N�Xa~�w`�r��p�N�Gk/�'��Ol���L���3;o�G㼳Y��uI�/Z�m��Cvw����)ec��<�r�+��n�@3�:!u����]�����
q3ϥ��3v�Y��/�A�3imrVQ�3))��
�/���
G�^5~����լ�n۷��u(1&���Zx&5,/^~Z��ک�D�����R.����k��Vu�n�r-�3�~l�E�k#՟Ƨ;��g��2N��
%q�r>��
+������ �v¯d�ni=�Qv�n
Ʋ���C̋���h|��#�"jmu�er���.���y��-�
+��uʚP�V���

<q�*1�
"����׉�VIDtj"b�@_��#�Z�jd�
z��V��i$���|��\�h���K[yE�J�UI
Q��S����-e�c�T���>n��hDy�FHxĵ��q��I���7I��&e�R��.c.���G/!
5
����͈Oѱ�d����j)��R��ܼ�5�`��9��|��|T�J����o8ǖGgs���
�S�r!��
 ��r��pps���1�q*��b�[D���
[�ᡫϩh���m�E��i�	�%�(��܂y019`Jف��’��s65�v�r
���k1��qg�{nsJ^����=�I�+�t|������)YEکa�Nr΅��G��
�I�����Tf��΅�]P��E��S��K�:�!������B�G�;y�I�|�.��9�=�5�;}�v@����z-��'d��@g��씰(=�8��������
�$'E��kޗf&AcPg��l�7���o�s-?�g:�!ny�Ɯ�as�uj8ؑ��1a��3�����#�Y�����Ǻ���s��K�a�e
�ʭ��}KO�>\z\��ңʿl
��.�a
�������s�n�����x��	*�V���9���M���h� �Hۤ5���rf�;�sȠ����Sa�I�����
c�"��v<(�z���b��\Dذ5�<�5&.y�
|��ѽ]4`�����}�`X;�
�ג~#�Js!��w��
�}� &�B��݂Ҕ[X�e�TT%�")�
X�܍�b*d����o
��y����Q�гA�EP˔���
+�ݢ"���h�`aA��ͫ$�)�_ᓵ�>� ����`
z � q�+A��@���z��I�<�7��Nyk�&(&�Q.�s'�ܤ�V�]�w���|,*��U
+b^�F��B�wrၡ���[�dʴ��t�aѮ녨��:��k�h5��j at +q��6ce�NY9�.��'j at A
�P�}2r�E�gP%
*�cK��!s�?��洋W�R�>��F�U��H#�7S>Ae��|du���o�>Y�^�4�����->k?���B~�Bm��Դ�
��\�e�W�Ok��� �KJ�!�
��L�>�"�d�Mۚ.��2��mvNن�5����U\������n��Zz���V�_����mŧȔ�-9!��g
MMt
MOsϧ�����?�6nq��<�u��Ȁ����':�ħZa.��s�[�ç;[o��5p���!i�nXځ� 
��.�LsΤf��R��S+oZ���~���}
���ǽڄ��ٍ��/��V�->�:�����M��
��t�-�0h%
HM��w	+p��
4���U
+�,�|G�!��p�s���,�,
+Z��$��q/�
+ԩsK*����<�'�u�
��p����O�Dž����
�;Ȁ���5���P^`7�r��-���\T�V ����0_� �L��K3�I;V�ŤSP��^I8X�{�z3�J��ނ�T�j�^�
0[>f0�ˈ��\�
|�+H�$"����
������j��[�[���%�b���
+"a~���Hj1`
+�A��qǀ)����ǝK��.ay.��SQ���
��� � =���b3����3��p�c"��g���L}y�>x�Q���}̪�!�nڞ�<��U
ү��,�A�"�m�[坐nj�H�m`;s�Mƥ����ŜҦ�MR�3�eU
+q_�U��2
���,d茣��ʫ+�T�ǭ��#;6Y�ꌪv�f�߼7�>Clʦ�45#*����ۊ<n�bk�{f7��lL
+.nM�� /�WF��ߞ��jg���\þ�x�>d��!�p8+t���aR�p}�[P�0T����w�W�������3��w�������^Y��cp��#�߮���d�E�����ϰ3)��9�
���C����7�߯
�}�{��է5�
j)�#8dx�軔UT��m�3��L�N�Na�6".��iA1��KP��a}��;�������m��0�P�n�蜼}7�S�439T��� �{�ʧ�
��
24��|P#ޝ7���u��Y+p`��������=�͇2NV�,a��[x���-�@����q:ø: ��J��R�
�f?C�؋����G
���q��~�[��|�hȅ,W�P�u>�um�),�x�5���K��_�@K
+Q97��!O�1���ꈰ���������pW?��Ȁ�A���Cj���Z
�*Yn^	9X-�E4
+�/iE�b�u��V�8���C�`ޔCP�3�>�v� �&���
h��
�$�u���T�d!#:
�1w�t����&�/�y��<�_~^�#"r&�3��tF2u�A����"�+Q��Q���i����F��c���
�ƣ�.�{�[2�&jq�)����/�^�9�����dMi+��:�9G�ʌGZG�A�!�J�	.%����
�YYT
�^eǺUX
x����
�q§b�L2Nd����Im�θ�a���t}��
+}!�e=v��;r�ҫ��ҳ�Ә2�_���MA�����k�
?n��.��>=�nI�JʷF9g���1�bNTFXe�믚�{����P�A�l�w������6�KM����F��ǹ�I��
�u]O�5��
�Tr��k��|0�d��܌�$�m!�'9#(��)��K���J
�&����d��ۨۙ�Vf椭؜�����	�$�.�؜l=����+¡.�shظS��
�L~��z�ۘ�X-�q�K�߰#N�����ü
+Vr��Q5�V�E����
P�|2����>�j��q˲��ﳮ��Y/�
+�󠹅y���v>������g��B�_�V�R�Q̡(6[�5Kzm�^��E���G|Nx�	k�@����J��N��4d��G�ذ�����B���pύ\D�&B�f*"i%�Cr&�wn��c}
Z"t}��L@�Mf�����ST���-�פٱ2N��:N �	)�_�_�ޤ���
?�\�ϬK�ϐ�:Z��A.���>u�/�2�#�

z#�q�W+��Q�#H����
�=�Zu.�S�>��>N�����ᾋ(�o��F�h��lPܴ9�;�2��ؙ�R����9�,ܧ�#��C)�Co��y֥���Z!6Ɉ�
q�8�۬���f�c�
���nβOmM..
�
+���I��줼��������im�Ƥ�lji�e��Q�)ҥ{�&
��~��>�[m�n�u�����2�6�Iww��S�v���Z�u��
���Pɟ�G�JM�OaVu��p��/��n
uiXY+���벏\�cj�
r����hy��fV�BA���v�HM�|����<;Ӱ��yK��A6\i�~�u�ќנ����j"�`I3���C0&
i��8̦f�����
��ߴ
Df%�]\�9��y`��I���¼K+؃
 �Ґ��t
+��l�!���'�w2�K)� ��!��uߤ"](d�d�[�I��o�>jp�N��L�<d�|T-!��f"$���$�Z���u��
�9@5m^�\ۋ�ra���k�ॽy� ���h����F9�U�`��3�9��DШ'�}���G/F<&
轹:�n^�]¼�ݘV�u��7S�� p��d@|�gS��I`2"���#j�
�ja�5)�$>�����s��)�ٜ�Kk�v`m�`�_�*,X����wߙ�<�O�@W
4�2���	5�}w�^k���30NI��4�4���a
�ᾇ����\���怌Mղ3-.�M])�Z�1�lN;�����Gv
w'S��hP�I8e��s�V�b���7�Fyפ'Z�� ?ٔ-���;a5���F�gTS~�|�G�r���D3d|�w>=%��8�
�e��)�k�kT�a���}�����
���q��06kQB難�NN�Mz�g�$��ΕW��6�0~�^\zع?3!��#��̰/��ڝ�A�d�KCU/>��f�4� �,=��h�e�7�I��
�y��b��9�^��[y��mrF\�����0�t��
����t��%Ukc���3�
�E�c��_#z
<5�·5b�s��d���W
���$�i�V~����cI16�?�
���5*sn�u���J>
�8�
2���8U
+/Y?ff4���b����{m�[\�8Ѵo{�s����J��{SN5��]{D��XGG@�G]�N�j�g�n�B
z>�S2Ȑ�G��‚R�vE��yE�Ă��$� �5��e �Fu!�5 at k1
Ы�õTH�˸;��lK8M2�f�cN������
�-K�KMv�'�Z&�7�6mjv���$b�R�B:y.��a^YS�!,'�
+NnA�'B=�wʛS^�t׌�!+��P0�
e���
+�8�� �O�;�YG,�����1u�.jԅC7�~�#���w3�q�d��77�}'����V��p/,�?�����΋7�_�o���	���=�TD���|BF�^X#�״<�ٯ���qܞ\��|�4m�m�t�
p����k��W#N��-��^Y+�5g}�6��/��
+qO�@|�,]
–��coaQ��C*.���NuGbNR�u�;7�V�`�'[�⦽䟠�8��p�����ӪO�3��)ƅa��wȹ�k���+�U2�NEk�)o؞����b
���>m=8�����KN�n�Hײ��:E<��͉��ޛ'�c�A�_1��.1',[�~���Y�[#�څ�Y����C�O�>^{��]�u������Do�_�
^}��"�
+-mW&�m?�NN1ꓴ�
�|��HZ�.�DXƢ�I1��ek�qrs�qw�yq���1P���

uݛ�|�l�f��S�r絒�=�?H�a]\��_��*�;:�
�rk�
_
J;�-��d
��Չ�c;3�24#1��L�u|�wc��C|��,�
^;5+�H��)�E�2,�ԉv#]��Ѯ����}�'<įI�;O@�lI�5��Q^1�\}!z�xM���R����@�n�8ێ�n^	��rP�QD�����),�0`��Ϩ"��0�7�ӈ��Eű���9go}υ�����zT��6�:=�$����\:yܩ��Ee�OŃ
Ձ?��>݅k@�j��a����`�Cx
+z
r�����!K(ب_TO���6fu��1e5�H?d��T��*���/-�#�BT���r*G��?Cg-��`߽
�S��s-�OE�����vQ�!����g-?.<g���׆�l=���.Q��e��z�:C�&iښ�^�=��,��J�����VƜ _G�Znr�ִ�<��;����ge$�:F֩��gi��yy����v���	qc!�u-�4�N���sC�1��
sviL}�բI�Tm۳��CZ��!c��#U[Ʀc�u
z.:��'��5t�K�%Q���}ns���£��S�+9�V�z4�Ԉ�J��m�Oɛ�:��l��
�V�)m���m�j?5���g��(D�דnqM�#k!�zy!h2��Sə�m?n���{��-�b�m;�4��+(�g̥f�'��^�(�䕬
3��sF-��3ǻ�X��͊��,MO�Z�Sʖ̜�����{i��M�4D`�eܦ-
q��`L�����O�qd��V^	Nf�Z.��k��0�2ʳ.
�@ߋ�
W/�u��վ��F�zL2��a�
�_�]��TH���>�\u���k���������꽔����o7f��>#���UR���
�[�#C��|X-� �PgD��
+���9�:�9�T�|]�#�'�J�n��.4�p�i�CR�>#(^
�N:T���$�6��H�26 �n�dQ�+oK̉J����Ս�fa�U��3 at D�&"b�%�C>���N��TUˣ��\�`�����E���P��>��# ޟ
�Ԥ��oph�.h^�e��}��
W�}��D�9�Y����+��
���h��*
�DFz�`A9
��K�t淋:#��T������$xeƭlG�
+�ByG.�Q�-�i?3��Z���'e�s�.-{�*,[n�6�s��롎Xd��
endstream
endobj
43 0 obj
<</Length 65536>>stream
+ӤD �d��1�����m�
��$��WP���g���YE]�!�M�H�3VEcbFQ��*5)��9�U�<�Q�
MB��R>�
�KWjN���V��$�1�	X43+���:�
�����c�Gb�?Y}X�Q�u�|Xۧ��{�
y�Ŕ�u�s��
���+E
m�
+~N��d�w��~$}��qW�
u��x
+�gwA)�[��w�r�VE�-F�}�)�5�y�d
ʶ�і�~}"8��:A�=i�V�5���~�8o�$��
ħ�ܙ�<�u��"v~�Wq��!� ns��"N
��7��V�A�V�꾋ݮ�jϯS�K���ړ���S��@�]�o2�L��lsN�^� �g\&e��;���nA�>F aA�Iw��
+i�c^��V~�;Eu��e �����O�\����BD����
��ON�anD�O����އ8�Z�
6hS^%s�
�0�*?�BO��"b�Z�J!#	
A%���c��(�H���`��
����e��A�i�
��E�z��w��VqY!�}+O��-7r�"~�{ǯ"���\��A�eTl��j�?���B^_4��jRKЀ��p�.�a��\�wm���

=vW�NR
�[DHKs�(��������ss��\XЪɨ���qʀK�TT%��ur�ԓu��Ǡ@<%ԛ�ރ�y�����3�9a	B�{rj���Ғ��j�f7(����W6�J�\zV�����Q�;��,�c.���)�Wͦ�7vCRf. m���z���}0��R�i�oM*�f�������/7G�s�����
�	�P��4k淩:�S_ć�>H�i��
O䝄GT�مU�Sށ��w�s]���_�0T�ab�z�_��9yZ#]���Sͅ�z��������2΢n�y�#i��\��CA�B&5fm�䘼:;���L��	��
+
�nY3�5�i����tL�n�s�6ֹ�L�x�(���Wԥh��D�G˧Y� /A}�2�
�
������M��Rޞ����N�s{���߃L�+��L�+m���5��2���x=���n��덻a9���p��nTش5�>VI�ɹ�q�T�ZJ�����b�#n�\�jүdC^�ݞk;��F4�}+
��2
>�Ŵ�l�UD�MDP�N�@�=7������0����	��^��t�эY�y,b���UR���\��Bw=��/������F>��,�J��Q�	
��
�.1�A��b�z=cwA��[T)�ne
��P+�x�ܓ(�hH
y#`��o�F�t�ܼJ�FX��s5�z�{
�
�W�-�և��UP�.G_K��C�9@����dH��]0A
�遷d���^����C��C/�xs���v�׺m��1dft�=���O܈�Z�%���\yu���X�q�*�%}*�ҫ6�[A�7�eLؤ�۳�
�������
+��G
渗_5?ܺ�u0`bԭ�n��
�>(~w�e�7�CԔ
��փY+�L�ޣ�JwF�?��T�ǭ���O��ܢ��x
��뫔�u>>���x%(A
0��m�p����3�Wޙ�K��{��[ɂy��rɁ��-{1I�ۘ�m/���ŔB2,l̸��2A�ְS���̤�#=#*���g�!��ZH��
�u�-��,1�c��'�ר�Op/&�xW(�F\i�[T��i=�3ټ��k&�F
��r	���y��x@Ԉ$-{��޼���̒������Of3���
�B�`�a
"���6౎¼Z�_�}ND���볅�N��Z�vA!x� �e�m'vf��ؙm: �_�sJR6��<ȇ����F}ڮhJ�՝۳����SY�A��1�� ["���8�
�l�GBm��߁�U<`"I�԰Z�u��0��������Fj^�DB�2&e����~2|ˎGo�p�~j�k������j�ha��OF5
+,�����$�_8j��Dz�

�AI[.ʇ,ï^�<�����}u�}��=��=���_1c7U˱��
qj3Aga��
1�)�dL�ݞ�;@@�,Ճ�!����K#�F>�U�B5|&�(&�w��y�
�C�|�s�{
+�:�ޒ���R.օ�����5T������:��C�&�]�
+��ۻAs7�����
3�z:�S&ꂬ�0��^l
+�'oNBض��nO�/"��{�9�"=�iM�I*���
+�	5�`k�u"=�8��j������L:�c ��>
+x�ޗ�Bo�6��|T�8����Ú��P���k	�����mе�URKx`lB�.z�&���@��K
+	`]I�Xg�_�!��1����:�nA�͑��N����{�����f�sEܥb�����Hܩ�P[6Y�t�\�O
���tk����H����øO'ޚV5�L)k(`�����nT�$��Y!�zo�ܕ��	����@>d�R4[����WR^v5��(�嗴�,�
+�﹞_�*,juY��
��_)�Gd����TSvΏ5|�<�nM¸'���%���M;�?κ����$�:ъ]ղ2+-#�/`�l�`���n4`�C��d����A2$�NظQ�ZVX�y����L�W���J�nN��zص��J�P~��Z
�vw�g(��5�����zM�
�XYg�i* �>QKrAiG!����R��%�n/�Q�5�q	J7g;~½��

+�
%ҫ�P�-j��5��,׍�5R$���	jY�
$�&]��
��	�����Y�?�=�
�P
+rX!��[w��Ʈ��V�
+��`4
�^���ロ_4�?��|
|HT�j��7�V�{�9�H��|��i>h�Z�[zI�AE�����p��s
k�6^��2!�k�v�,�2)sZ�Rs�0�dX)Jy���a�Q͞��.�S��Ӽ�;3�+�ŀ�U|Z
1'^
�~s�aRn��:Y
�
�

+�v���t�����]�t��6�r!�2�A���|��~4��K�
*�3��@
���
~��w�y.j0 at v����j?�
���3X�5��(� ��J6��+N
;�S�w\��
��m�+oژ�����B
��J�H
1�����)�ōi�e�#���:}
�,����S�$}�>���L�z�Bnԃ�+)Л�1N��󶃅����(y{KJIaA!zKߛ^Ԩ���XP+�
55��#��V�P
c$��x$��
��,�2�6g�5���
�wc	�ݡsp�gҢp]XDo�!�a3�,�	

a�sh�{ ��XT�H��q+�O�%c�vq�ڔ�&��C��鵷�r�Ha�r���u��(xoL$�!�
�w
���$l����rw��w�F���aq��
��
d�@_�
UK
!Y;�צ@w6Ǚ'w&Y�rAIk!�U�|qH�+X�
��3�<
^P����}/1��^ϥ�e1�^���Z����DxP#�l�$��V��F��
�n�dm���]
+l���{����G���YzRNF��¢޴�d�#cz=��*;p��>����s��[>�Շ������.
�}�1���s�1�SgkJR���u���K�R��
�2޼?cW�F�^��5���������u��QW�
݋�����e� �5���J�s�f��;�7cN>�sn9�����p��� 
�ke�[�@�g�p}N�0����=����ݘJ�v�/�{4�{�t}!~3x�V�x!o��'̉+7^3�l��Nn%�f]��C�B�^�����~��SR���a��ZH�߆9n�%�z�{𐬓^�ܞW���Ȁ�&��\J��U���Ϩ���k�	z�S�ԛ���]���Ղ�C�x���&�OȞTL�E�B�A;����t���T?/+幠��
�Ļ���ܲ�za�|3�`�5b�]꺵�b��[ԙ��F�c��������^��Y��h���U�����ߨ�BfKr��͆zo!��hhp��v�@!���H�����o6&�ܤ�?��J��������/����z
��
+2����]X��
��Ggy4 iN�gS6�E�#i|;o���y�mTc���Ac���G��!����Aq#F��F���S~Y{* ̳p��'��@�a
��
+�٩YQIbBx!='�B�y����KX���MN
.�NU{b\|y{�{<>�;��)�aU$��6V�!��:��P3��y��^7�x4��[K?�$�\1���������޴M\���;VI�꘤hmDtqg�{w��RVaY�.�ܚ^JL��/�gV�;~L��dA�S6q�ߠ���t�_�pܺ��ƨ�.�4�2v=g�o6�c�|��zEƤ��A]NLK�}�e�ST�V
+�/��?���L����6���nq
�T'�9�9Ec>p�9�L��
�T�.~9�W~Nꑷ��/�am��������8[�@��H�9ܫ�c�.y�jE��^
fV�@�7SA�@���q����],`2B�O5�ݝ�w�S���3�E�
�i�
+&��ZwwW4zz���9�s;����w�4��eO�NJ��
Q
��TL��]6��W��/��D5�lrA%�[қw��=���<hznr
����� /e ��Tĝ��x��#� ��
���!��
+K�_ڞrʛ2!���� �e%�=w��u"�`�!q�c]A=zU�{{2
|�	
C at o�z
S���Gڂ��"����r�`�=�c6b�7s�ˤ��j1����)?x
+ph!"e��b��ݥk����7��;�1�
+��
������0��4�nǮ���[y�`8
�
++y���11�>�:����0�׼�+OY�23��
�b�/1�9���������W��~L�y��GҀ��M$䇬]p��Jq����(�33�U�B��5*��53+��O��}K2s���
�|b�{jg�}bgZ^�6*��1�:��qΧm�
��CX�=�9�_�^�q�Ǜc��=q���x�C֐��N'f��
AU�**�OH��.��-d�<�3�<�֧�x��c�)�q�-�ڋ*!�����V�:���iQ1j�T�ۓnI��Xˁ��
�f'��� ��@��ş~�ꍘCX���8�X���̾�ܠB�������%����X�K
+Q���;�rb�w�
4Yz�8d�
0-z�Tl�/�I�ڏf��+�K�H�NʫlNI�2N��σ�#(�
)�9���pK�%��52�YTz]:�����{
��PI�g����wCz�
+`���
|4�`�#rn��mT�Ɲ���4�d��:_�*��~\g.l���Q�`.�� :�H��0?qzm��
�}Hߕ_�����
�	��
��"��q`�l@��½��K��bJ^>�����V��҆$��Mٲ2.���{_W����f�5�2��S��t�J[�%;�Iq���������ey��p
�U2SӼ�s�p�Ks.Y��4��$b��da��I
Ɯ�j��[�N�E団mV^w
X~�y01�:C�_Fz96h~y�~
�C���ILpO�n����}01!����y05�9���Wn
sO.=m�,r��OkO>MMq��Ϭ'
z��sơ����d��3s���Q��y�Ę�x��HjVV�9�?��/1.8K��&���_t|{�������6^2@f�E��_�>�qhu��`jNP��s/!AI|Bp~sDt.t����Q�%ҡj�
�Rt�q<3��Cr��@f�q�p�`6q��8����w�e��˦�ׇj?�N��Imv�s�r/fgW���O���V [...]
+�oJt93#)OO�����̡�@l���1���7�#�9�\P�D��J̩l��?1�'4����	R.5
��	��^p%e�^����N�9�=���9��W��:��0�+�KڹE��c����ip7��>Q=Qp�3�W��ج�����ٿ�Xpd��􌫧�õ��?�A��e�����ys�w����ע��8G3Ӓ��Ψ�
�Ss�1����Vy-�Fi�A�8-��ͬ^z.����s7�5�[�+��/�Lt��3޺?9״?1�y������1��O��nָ�wr������
���'��l��^�]�
Q��=���h�8|���͗�c�âsK�$�}5��Bl�ڝI�9��k/:n�d�����

Oo�
.�7��o�K��tJ��>[
��G������|��t
C�m���Kۓ��Ĵ��-1�?�2�:���sh��a���\��8�,���rjR|��Tr�㇭�
��?o�b|`k�}���E�@��>m���V�2���5�{^�}�=��
|ρ4huvV݌;5,Є�쬑��6r�&Ց�m_o6~8�����ÖO7�0~̹�my����gҳ�b�+o%}*VƦh� ��kJ��^Exm��N
l+�B��l���,������߀G��/o�^\~��i���,;�e����������^3�xѹ?����Oھ^}��!;&)�g�6��Č�r|�sr{�~��s��;��C�?8�*ޏ�n�<��{t�qۗK�[>_z����K������pB�4o����8��[?Yx��
س�K�g�+��Ԥ�l�
�Lr��[e2PA�
+f@��w����	`�����ӳb�AE-j�t`�=�_�M`��Y�A�F���	�EZ��}�+
1h�A�����^�������T���ү"7j>H�w�����?�Dm��S�f_a
�ܩ�s�^���Ì���3�]dP'M�՝�IyE�#9))����“�}���->f|��B|
u�E�K\��b��ڹŤOT��{n_2~X~�<���w)1�>��M��թii9����0��׌��:�	�l�����o+Odg��.���
X��9���s`�㛵������lq���݁\�����^�z�?����ȣ�O&�;�+�m�N�׫�:'�'�ί
�<��8�����
�<�_�Ϛ�$��
k#ʪ̜�#1-�Y}�;N3����3c��q֩���Y}��i�������(1&��1��������m㝇;�M��f�i��]�ND��ҳ���^4}�3�8�3�<��N��.&'E�:eg���\�f{�о�L|z��X�
���ͦ�
�}��LI*6_s�N5��C�0$�7,��)��N�s�H���uJ��6�mv-��_x��y�V�_"7?��i�{�N�ߗ��oØ��e�e�7����7_�E������������
�4eS�m��;��fاև[�[|ܾ?v��3���F'�50P���������V��}����C_������k-[y�9
��?2�k�㔮������3�I���a����\�O+Cܟ6���׫�C�lD
҆�a��-��&X��4���c�Z���O���
�ov���Gy��+�O��-�E��
�� 5�;O8���G�����6��߿3�nZ|�m�
�j�hN_�1���ݨ��s�a�#��w��Z��F��;���n
7�1��U����W����DU9��i���cS������m�r�q�7�?ut]y'0P���!Ɓ�]�����c�+�WN���N�%�H�u
YQ�����������x�~�{���䄸����iq����/
V|�z靗���6���1�����w��2�>�

�|�����}ַ����'�~�Zp���o��O��*c�ڭQe�����;��^����������_?��լ���
YQ�t��p�gh��/�k��t����Gm�o>c

]��kb�����6�(���~
�/�}���w���w�}%�,<l�dB_�w����#��譖OV��|���嫕�-_n6}d7U�!8X���׬��OG��(5�l��\Z�=}������C��ޫ��B�l�V�->���p�_jW�ħc��>�_����j͟m=%�.��θ�t�i�
���K��
`ۥ�M_E�7~�
,}��w鏱��&�X�)�N��S�l�ឡ��E�f��+O:�]�=�	�{��7��OdFEE;P��C�מv|�S��:�����?�_�N����S�ƸKá�e�ι�
<9g,���\�����Ovc����
��{��4p��k�IoO��$E����S��_�R��!�wdyHp2p��o�	����tz���/
�f�gc����7P��q��w@�+����ZR�\^~���o��O�������k����^���9���p�1�xjBU��Fti�q��wAs��?�?�>h�
>�eF�M�cfy���갴$c��Y��{���uLt�_F��}��ؿ����՝���7�;��·���Z�g�3��=��ӓ��]PF:��䤴4k�
Sv�(rWx(z��u�v�_�U�/=l�&;%.�]�����?���`��m�G
w��0^��՗5�l���8z����5#s��;�#�ͩ"�7�G��7�v�]���?X����� ��\������X��?��^��YѯF�W�m�P��Q��_�d��1S�oY����l��ov���w��{�V���]������S���1&>��3��??���Ŀ���^
�ֽ��@���Z���^��k����u�7����?G����������^L [...]
��+͐w���J^��xԕ!B�
� "�,�G-ց�O
2L0��L	R��դ=]nL{i���Ix1.#�H�}
`0}��N��`�.�)�/��Q��)�w8�_��`%�>S��M}E^;=��
z�w�Z�f�y6Sz�8V��%A�
+|�
Р�&��v'�g����F�ȗ^ZQ�K [�����¯�!\�RK�Ǭ�l����F?6�*�f���iA�ݝ�2ߥf��R#�GQa
��Os���������Y�M��}��.�� &̋
+_ota���T��
�/���_���oH�.���w
)�'>��#�N��,T�<[i���e�'3�����w�(�˺�B�����M�R	�ߎ���b�
(iqw$��;�A;#y�lc��3]���e6g�'띒�㚚q�В��А��
~e�y�E�^
+
��@Y�9�2������wS7�k���c�=��a+݈�	^��Bs���
>�"_�ڲ��t�Xe�_n,�z��N��c��g�@�Ø����jk�����g����UI�Ĝ�A藕���K����J��b=��jS���V��0/�y���	Z�ρ�]�҉�.��)���`E\����'��o��>]-�}~�>FN�3S�H	�U��k:A��	J�
)1��VO�7x
���
�8��9
�&��o�@>,��<�Ӓo�!�/OUd<
fe���c����8��P
3_�Vf����x֏	�
+lץΒֻ�^pR���b]-bL�i
hK�7�
ϕ��jNܭ!�ߥN��E5'ڥ����
�R�F'��FG�'� ��N���&�[?2�~��e�k�z`_�
ݕӌ��p�
r�;�_t��t�jW��If��u�
5�027�����E�ڊ<���[�_9?�%.��!b�;�1Iˋ����y�P��RJ�yg�"⑥7��؝�g��$�
�ݜ�
'�-��<��}/&$^�D�5IO��
-�wN��d��o�Io�l����M�oʊ�������?�@��JK���&𛍮�/�mP����C%o�q
+�Ȁ喜�����br�mQ�ϥ	v�k3.�I
2�����i�5�/窳�������EM�0�P�ր������q
;$ؤ91��-6Y��J[��Ya�

/��ZO�_*����é:t�E�.2
��v�
+>�zs߯����]3�ez
�����R����7;��ȍ��h���v'��q �;�X���r}a���$�
Ж
�
�-T'?Y��xf�z
���&i�aI�mL����^h���K��/��s��ԧ�LPBo;��؃Iv�m������&y��aT�Q?�Vg?�b��Z�����|�ƥ�*�,6cvG�[}�Ŧ�7�U��&89��׃Ĕw��S����K��5�=�kHrYj�|nh.��Ӎ
����_퀆^��U翘��~��~����\e>��,��=P�]Pr�����bmy�z
�2Z�}���c�
��w+���򺟖���'�
bR܇�Ll?)�vKѷ?�����1WZ���#�0������3s>_��0�e>�-ٮ��,����3UY�'�����IO���U%ᷛˣ �%��k�o �r� <����݌(�q��5%��zw�� 5���:�?
š=!�
h�y�e��ʲ����\=��T
<h���yWBo�c~lv{Y��-È�U��)���[a��QR�4;��N7�y���م�ED������iI�J{ګ5��	䷥�r��
T����2NM���P��`
z0��W7����_Yk#D͈J=��ějn��V;�
�s�v?:l_�Kܓbb�
YoV:
+|�2n�V5f���W�u����e����/�=ea]��]���&1>F��y.�&ߖ3�Ӓ�S_�陞
��ű_���j��?�5C/�;�	�9CgΫ��D��Ƥ���@�P3H�����_]
��G (Y+�{<W�(殒xc�������P`�(я�����ٸ�z�>����NwYj�}�`'>$E���Q�x�	��}:��!
c�x+�	N)&�&)
���|Պ�с�x�%F�O
+!@��~���iJt�}�$|����Bc����̗�IZ�� ��RW�7�8-gWLL��)�d{�%E_m@�]�)	�J8�=E
{���Ѐ�<��p�EF^���{�/%��3WA=��w%<�I̅��b�W��^/7�?�p�I)��{`!�
MP������� Emw���}/�qa7tUYO���ߟ�bh/�?g�N��pc?��1F��
�家@���OT�G���2J���f�O�t��c���˜0����rO_������P�3f[�C�-Ł�jf��*����
#����R�2p���p���d��f<�e�7S��˼6;���a\�u��2�
+�
!
����^�/� 䪐�+����V ��˱�{�ȃIL���Q2��� � �������7�
�����H)�ߜ�Hy`�D�
䦸_7� 3�q��3��&�.�lw���^[��z�K�! 
>o�����!j��R�N�#���Ս�~�p�6��rs���~\����(-��h�C8��S�Ms��#���ݹ�
�)�6:
+��Yu�؇ʚ_�$1�*��7�ylt�|6
�n��y�kS�-t������
ݨ��AL��{
+z��2LY��.eg~p�������Ԝ=�t
8˭n��e���O��
+=��_f�
�7GљV��0������:\�'��O�'\�UZ�?J
���Yz<E/�K����oS��{Ӽ�S��G��ơ�uM�???���0f�B� ���^��'<
.�su�!��`��
x���C9���of��ń�(��HQ�=Rq;#�`�(:Ʃ䖛��q���>�
ٯ���� ���c!��<�1v��p���x�]	:r����#����NEI��œY�
���j�r#.`��m�.����\L�e���ֺa>�AR�Dm�� 6��RM��u�+�E���[�o�a0��9��3\���d��S���)^��i^�^���^D؁�^�F���C��+К&�
,�rG�ϟ3��'ơ2�}%-�@���v9:�TGG�-W�9g�,������3��}�;>�f�'�=�<DI���-5e����u����W�R
i�
+^�u�#���>RU-pXG:�`���dFX��S��5��p�yk�� �Z��]V���G��3�m
�?�ߧ����09�!a�)*r�MГ?�10�*F��P��
�����#��CIYо� �.&~{�"�p�	�֤�
����Ԓ�n�:ﳔ��z�-�ӱ�V:�ʒ�Bh�J@�h+x�T��X�
�-�������/
�'��b��������{S�B]C��!r�c9/��bK���ִ7��\;�Of�$@ ~����_W�B�u����n
�|�I�1>8����#��g�f��{�w�xOp]GI���2x���ǚ���G��]�-�y���e�8�(�I���di9'��)����'�Bqя��DŽ �;!��N� �3��c=	�?Ḵk)`����%E=����<R2Q�I.�H�(>���� v*�X%���,�X��

�!�т�g�����*��t�&%&�~4.zs
�B{� ,�9�B;%l��5�DC.0C���`�f)3���
V%)g����:X�m�-���P֧�iTҞ��u<�BZ&��[����^�\3�
໿���m� 柭t���u�����w�).�~N�U�Οo.�4�Mz(e�ܛ�M}���5
���)�C������J6�*AE.6'���n��bv���A���"��ע}ˢ�O	�>�**��
|�!�9&P�k=`����W�k����Z��	.lo���=BM���~6F�yCƈ1Ό~ԉ�,a�>�k/�n'F=����Qq�bB��Г)Vف�Z�#��X���}
���R���\C7&��;
`�S:n_����-�5���G�Q�q�2FJ��&>�o.�6KH	f	!�@ņ
��v�tk
�ӡ�is�6;�L�vo�}c�
mu�Ŗ��99
��\�(�����)'AwǨ��}0������-y�F1;bZ�}\����Y�-�_���D giN.��
�z7�Ӵ(��DE�=�
�?�B�NR!K=e�N��Pr�f	&�����W�y{��˪@F��P+`�LC��=*�@����/���ǻ�)��dt��f�<V�Q�3U|�JHqLV3�Z-�Ɉ�[]����<�����.f���rW�M��(���R��8���+�)6&�2�N�Ͱ�]�
n޷��*�X�<j�V
M*&tC�
Z��95 Vx�u	1=���

�7S�lRp����/����6��,u���7�|�{�Wu2ϯ^�C�K;���9�({Jnٞ�Ud�&�
��Vz	���ħ�
�W�`����[k��m���݄(�)ũ�ٴl�"�y�w(g���`�8z�� � [...]
x@��~r恊�5��"��[�8�����9k�̚��d�4FN��/2����Ԣ�
ȦQd�� �o�y��Q�u%
Ku�
ME��>\α���T3˖{���)5�XWUu�
+�2t��0��b;�s�&��B{v��4�
���	r����T'��4u��d?3��2��l��L�9�,�^p�`��yO��nO0c�Npb]�����q�=����8J�p(jY�I �Rj����c���sw�7��2��9�!c[�I�>Z��cև�?�m��s홞�㨘�1"d�Yp��l:^�i��cD-`�&��96��
+_t<��ĸXnq�cI
$�pU�j�d��z	<�$+�5�c�m
+B��"���R��:
>Z'1��Q\⾪�bw��bs�ZѾ�U|.'��j�x7-��!%!ܺa��:��o����
"z��������>�Z�}5���9Wsm�Jⶄ_l�'�v�VZH~
�HC
3b���v��uo�O�4wWd��Y����I:��*�'�!lI�%����V|�CUW�9�� �s������:a����w�(#k��"mV��\����2B��i΁*��]�;/������P0n�6~�u��o
D��G)�{
+
�9�6�T��
��\��>1��2�����ʜ�&Z�vW%x���������$. k
!�_��?^�~ڇ%�}�~}E��)l��
�z�X7p�X����Ⱥ��
�Po /$9U
�RK��r}���n��u�,�!�e
���A>X_�Xo��4��FDhS#I+�y����.�`���8�'n�y�rZ�U�.ٟ���L�{
+v��&t�����!�DŁ[��▲�k=�
U��#q[��W���	�f
C�O�k:��kZ��*�IF�m��w4���kY��9�:^�=T��v[�zm`�꠱�`�Z
�Yx$���B�F
>��M�ޗTc׻X�3U�n�!l�u���A���ʲx�0쉔z��S
x0U[y��
  -�"��;I	;���Ƅm�

ğS���S�����p}�{��q�1��RG������z���k5�&.k���U#��/4ˎW�;���MI�ϩ��7���7�
+T��b�d���:�-��'%��k��=���KW�l/�^h�~�ܓ�ުF�
/2������^v�d5�{��~6�� ?�/Lt�%A��?{�޼�|xt��%���?Aߟ߿@H�vU��w�����ġ�^���jJ�T'櫼��e��q�9��<����B2���k�c�.p�c.�d���I��B�
����G��נ���`Y��IO��rϭ~z�Eʄ�	��.���AN�B7Q.$y����0e�!EW�)���
}�]`�D\⥆_!D�]����B��w��W.��wOA� �

��:�I��|W^�����=�� �ڪ���+B�t�
4�� �䑘�u@���C>n,ʼS�{���#�˻�A�o_\��D\����#~ �A>X�a��T�YI��u�y+k�>nK���*��0#C�.}"g����#<�|����j.���H
���
+�
���"2��*1&�
+>����:Tܾ��qL3�N]ck�-CElK��o�i��!�-� m
�w�O�c����2�
�"�CC�^.
+
�������
P��g�	a:�Io%ܜ C/"g�sNs� ��Z����b��t\�}����Y��<��F��T��*�n�}�^��^ �D]FF�]�'��JI����R��Ҽ?]AƆު΍��=@JtL��i!m[��_�G�X��n��?um�^r��
�}BX���u��� j�?7�
+55�Z���?\��z
�
ܸz}�6(/���1^aȯE~��Y�4&s�?�[��q�D��녕f�%����I\���VdS��w$���!2DQS
.,N|�L��Y�


x;/�놠 �e���H��xa�G��m����]���
���6
+��w�V�s� *��z�r���mЇGA�
�]��'�٭��P�נ� �
-��;a��c-9ߡ�A�Ø��!V�d��p%ɣ�{�W�~���z	r!��P��Aɞ�\_Pл ��@џހ|><ݸr�����D�Q�皐_4�����EO�+Q��YQ�u�2�9� z
��r!��P��w���נWwn��=~

+{�
����ލ�@�@��]�}������|���0H�7��PS�ܸ�*�W
��tiD�n�2S.��_������
+����� y>q�����۠?������� q�����{mɑ�
2ae���\�*Z�Q����3GEx�T�-Rz¥�?.���ၠH���O�>�<ݽr
t�K�7�o���'���:Xă٦�qd��h��I��Z�(��܉���v�K����7P�q�JƒAپ�A��ރ<]��߻
r����
нk�AW.]�?���
+���'(��G
�d^X�7�#
�xT ���Iik�u�K�
�'&2�b�����C����@A/^�"޽��.���; �G�A�_]����~�_<A�̨{�:���a�(m��5��I>z}���l(�0���V�����F {z᧻���зg���W�@O��ݺ|�x����n\�
���!��g�V�kmmޛ�~X��

��&��xE 2Șy���l}!t�����S�~������E���#���
��x�D��
�]��
P߉��A���p�a7�`ayi��86P�y�B-��C\��C.c��.Ab����|�����޾�����
��O~�p�Yw��&�����7�l�pQ��
+肸�X�]�3\[P
�>3�""!�BYl��� ��OA_�W��G��w��s�
ؓ���/�.��t���r���:�.��2@��u�U5��S���S���.&�y#
����˻��	
+r� ��}zu���9� �������=��?��\o��|*
K������C���q�~V��O�+���v�����W�`�7��e7���#�>�޺<�����!(��;л���'���������
 ZV�e��<�,0����AT�RG�'���n�r�{�q#��o��KaB�?>����~���
�x��㫠[�	z��t��
ЇǮ�hoߋ1^_.U�
-�c#v���-1��� .t�
�o#�Я��B�68"�B��wP��7(�����)��ˠ'׮��������[ _�E���������P�K�<��"��?��;4L��1~���
��Q�r)��7P��' �.�� ���u��S`���_�	z
�������\_��BB��%G?��#���s�M�f�MU#Z�!G�wS#f��?�(�O�I�B?�}z��y��
+�����\���x������
=���=}*�q���G<��� :��
+�z��ޝ�S6�$�Tm͚L����W���zz\����7���
�����޸	��ЇgOA���L��w���~G�x��Y�m�r�b��kȞ�"��h� ���vkǐ�v��Ep�KTJ魢���d�]J.�� �>V^�[6��A�kd��+	v ��gkD��ڪ��J�r��<����~�f1�Dp�kM9�i#��F�Ż�߅�����g��%%ܦ���v���Su�t� !~���kkaVW2v�"�a���(n$k�ʅ��;��g�ZQ\��6�� �%�>(Kȹ
+	ϼ���	z��.PˏA��=%z_&����!q>�A�R-zG�)0˅Ӹ�0�
)�+ qפ\��T����a�W�诩E�GI�񗾽� �����o�=A?>��-�bZx�EHb����0�y��bWWR��
�c��<����j�fD�T
W3\[<X�/ �ff^
���#���5
���
t��
P�אˈl�
����f|�1�W�j�EC��r�2OT�[&*�6F����z���/��x��P/�E%�.�G]
��0�����;Wo�><������N��t�+�V���%�̢�f�����冱�Q��RUӖ���
�����l�f<�U��)+�.:#�viJꝰo�~� ���������r�w�
������b׉zr�a�n��0��J�Y�)�efϴ ?�{hqk�5$E{Eb
�N����s%+"�/DF­����^o^���u��
�� 1.�vf\�e*��.�z����L5 ��yY���J�O����\>�sw�����j]YM��1Bj������~~����
��G%\������	()��"*7�j5�z�K
_"��
+來���8�
Us�6``6��ikcu��^z�L
�Ġ�"B_����7;9[#M�D
ͦ��
+�(�B��"�}�Me�W7����
�Ԥ��'+�k�
+��x5vq���`E�vrV�:�k�*�hW��`#b��
��O�=�� |9���]%
l��a���j��{Ԭ���T��JsK^EX�a%z�9�}��S=ME��~����,�oJ
ևv���5��;-H�ˉʪ���F�]�X��l��S������
8+`�MW���
����Ü��*��`U���&U�Ք?�ޜ)�o����E�
���T�kus]���>�����UEN
4��OVS-J
�2Ɇ�H��k]�	!���z��
��*FG���aN�@;`����Hkk���%���qmg��Wu�t��_�ZX��uņa~�U�O�i�%N}e�]W�d�m�؝m�;���82��,
j� ���(EK�'E;5|����J�����v��[y��5��֊
+��
+��x3�Ǫ�E`��U
,����Euˍ�Õ��=}U���	�

���筈ɱZ@�-?UMܰ���EIw��`M�T7%|f��2���|p7���@��U�iy���笀��E��?
UG*rk
i&Dl��y&���)uI���w�6��1R@�����#o������fF�-ݭY�0v�OT�"i��&�v�|��2Z]{k��x��?[o�����wU�<��O٘�(_�U�O�V���	c'Zj��0e}�j���
k�-Jh�K#���AB�R?�ϡ�Lr
z���(F��{�V��kW
��w�55�&U%�
+x��1b����k}q��9�7]A1J�)f6�8��iSX��f�M��zQ�U�)s��ͶɎ�Z�'s�
G��Z�e��d�
#�6%��u).
�
+Egs����j����]�h��w8K)6N⓭*f��tC��x-ߩM*
zs��6ɫY��*�MJN�
�b��	k��mis��2�V#��jq�bt���`������]��
�ʺ��V�����9�B95���I&�,��ӕ�}MǦ�᜚��d�`WU'4*8%�BԆe���Lj��I.l�����U�M�N���g�h�V3l*
+Į@Eo��
Jtү%��>�#X�|��\M�m��w]�ж9�ڳ����Pֱ�(QK#�AV��Q�!�z�dN�9�����#s�[y��6Eɷk9x�bU-����Љ���N���3=�b�d,���Dž�~
 �
���Deٲ���$g@
�
+���ou��т�iW�.T�
/�鎖j:-jz!��G���v�U���Ǩ�=�>�Jf��l]�Z?&L�
+~�6���F&(�����b��3�-���&�
͋���ȸ9,�&��l� B�rj��y�┟.�9�:6~G\�=��y�#���>��$7��Еp0[U��1d��?�J&�h�Yu���i�h��4Hʏ�3Y�tW���^�c[��h����^�'�ᡎGx�!)յ�|Z�-��X��:V�w�u�g�ăyϩc��E{ӄL�$>ig��ws����uaˡ��ߩ�
p��z
���if�CAN5I����%��
+B�lW����w��g��9���)R�]�K<�0`�S��c���[��s͒s
�,�9�i
+ب $e�x�$9G՜�>�����X�q8���T���2b�I\�c�����ݦ� ���<��aL摮�c_���jl����厬��=ϝ!D�����A�i�0Y��J�!扞G;�iu<�ϱ�-vD?qN�!G��f봀6Ӆ�U�Q��ʊMM��T%sO�(�A����Ï����*���X��]�Юd��k�=Աq65�H�=�P�ص?KCnK`�C�  �)'ZB�s�<���(��sL��K����e��æ�������4�e��iS�a�������z�{�
�2�Gsxȯ%L��
���$$h����
+�]�(�?��.h���
+޿�,򞚜��
��o*���X出�ν����)Z�sYPwh��mu��z���2��?G-[��y��	EGzQ���P_):]��j�{���
�T�2����[�g�
1�ڍ��;FJ?�11������ժf��V$oJq[���/�voM���	x��,��L޳��v*P	�}�;����Zj�E�(�k�}��N��ڙ�no
+�b�D����p�
�m����QA��E�C�jG�
+R��$.iS�IZ
B��N�ˎ�x��u2Ӭ�����j������&��jJ�C��ߑ}[hK~c�E��qx����N���[��{�
�2IL�
/
�����f<�?��6���X�b�nu2�N4u-g�
+��
@�
j
@���{����
�
�Qz�yi�ᢷ˾�
�8��Q� 
�[O)��P!<[�
ΰ�����g�p)ӡ&e�M� [t�FI��K�����&�$��f�ʾ:%ؘ��
+�]!@�[�
�T��^x�o��b_�E���E@�B,2|�]E+���i;���*xʓ�o��Ƕ*����jS���*t�YVj�@����
-s�f���
���}ڭ
+|w��f�����}4��}�O2fڊ�,w�Ï��Z�=����dS2
mjZ�i

aW����n�h(p��q<��,U6�^�rO��Xx:G-5�x9,���A��3�)�kE��)Q�E����p6�c����p>��|f�MEL�����Ԓ�����`�S�����osM���Q|��
>
�DG.8�����3�H'�����B��<ڬĤ
Հ��;����1�W�DIء�Tt�L!��q�&�9F�8^�l�k�h೐ϟ�8��Q<�`R�f0�3��!z������~�\���jQ ,j\�U�K�M���%Nj��@����|ꞖO?����橥'3�̵���C$�+S¨7'3T��4��=BJ�O�Ϻ����i&iy�a �؇
�
C�oK��IR��<������*k��$G+��Gk���U�碰֮�V��N5%�|&�q�{<#`h�
�t4_���P3�{�_�7C+vjh��˭s����
%nU�
+�5Щ�k�������uA��[�՛'��ZL�K/"���Sš߀�/
�
���ђ�T��t���i5(�~���'�坪*�����<�����(�,�x�=���o
Z:�﵊�=
aQ��
+|�C�O9��������O㈠d���c�$�˨i61.�؏�a���bLP����fIy�]A��
 �:��b����.�D�"wǸ{���)Ң��c�t�i��k�u@V$��ƉI[Rl�y��r��p��<ݮU
�Vל�P�gZL⡺$�*+ޑ CvĈ �$
�����)��ٚ�}-
���y>�K�K^@ա"��������C}u�s��oW# ���)N@[��sZ��K����U�ˆㅆ�����]�;��g�Ȑ��qD�s��<j��&�"����u�Y�hF�ߟ�b
r|��@y�s�Qh����w7:�"�g�v��
��Ӱ��Z�i�-vy�3q{+��m%��$!��Ϛ��_��������
갹bط��2�Qb��(.�p���5'�>�05\�S
��
6[��d�ywk��p
v�"�Z���1E.������ƫ:[��8�
����9[�z�X�k� �.w�[� �=T9m���{�Zf
,��Iz,g����ş��0N<�4Z���$�V�th�ԃ��p�B:�O�_�w� �
������Ƚ9�6Mx�Y~��~�Vp/q��ZrI)���{�I�{����-��1�HtΠRN�	E�Y��؟�2�
�>Xh�;�բ�i�@�,;��Kv��A�*
a��m�
�{Z$8�d���{|�VG��
�E����>�i'FުH�� ��6A/�
D������
�/��＀�)'����
����jNy n�N #�CEߤ��;��i�1!�@WK?*�6B�[n,��P��\_��l�*��|U�=�`�7���9�Ϗp�އ��`�1�w'���)6�`��
�G��f~4KK�gYd��� �����B
*\��4*�X���S�Gn
�}�{���*qo��תf��t:M�>TQ�
*|�s��f��bvF��M��#�Dm[i�j7�_E/0K�aƁ�/V��
M�O5����������@V8�{b
GG:�c���)U�
+Ԛ��7+؝	
+����y.�9E-�U��*Z�}��e�� ��ݛd��?z8[%8�׵.TU[�d�����
�հ���bR�VV ����a6���2j.�X�BY�T�
����AN�U��{�3w����R�HO-�ӔGZ���Q�7��<�"E���pq�	r��>�>I�9 >�]E�7I�q;��3\ʲ�&f��Z��e�^���,V5�i�
+�l��� >� ���?�����-!����v}���:烩��R�e
F��&�9k}� ��X�kUP��f
�	��dQ���g����X��)j�Bw�����
����?[��^�j;�'��i�1E^��y�g9�C���t��8�gR�Z<�l����J# 9��(���tB?�&H��C�
]+7Ӧhkٟ��<��S��4�CM/�J�q)����2��i�R�����v������P
+c���7竳��FIi��������F	b��K��\���fE�F![^��~��r���]�9/ �g��Jw_l�~�4�xrr�=2u�M���~��in�]5;��\U6�a���R�O����_�����"7��ɞ��`V�˷$�X��4x�'��|k���8,�0\6%Jy�7�/��=ZT�}
�k�t7t�<ъBn���~<�Ӌ,��>t��s̿�\ܩF��+(9F1&tg�J�V�yu�;)���1����[ø��
���O����@Χ��T��b���+E�u@�c���EB��*
wh�C�@�:��
C���9.�
�&5wuj
�E[Ĉ���`�0坾.�S��w��@WY{8/ �^�5�^m��Y�Ny�
.7�"w���N��@���t(Cwq�y�,|���}�;��]y>W���lA�r|ޗj���t�E<��k�@�Ze�p�

v8�M�:j
�}��"���L���ͮg���i;C��t�B*����yK� ���:lnX��
+{�t���d��gk
�9FLuj��
��
�2&X�P��P�gb7{�_���(�Ob
e��q\��<�x4��Щ���c�=����W)(�4.�_!�v��Q�Is̰��)V��\�l��aW�MtN��v'0	)�P��FБ�&�l�U{�V�{��$�1IF)6jk�9�
�����r?};%ɩ�
wN��9�*��*Z��
w0Eδ��ц�<�0��zw��Ֆ�/�^x�����N'��f��i��צ"���fx �=��$�:���p����S��i[�
�(��
�}?��3B�A�dzL�e���x�����V�y�1��B}�G�'o��
�悟���?@�1��7�a��My/���$��[m��?
��B�DDX�g�f����"��
9-w���{�
�~����g�r>L
�o�9�V�r?���q'�ޟNQ!F	槮	�fg l��bR��09n�
�Ճ�5�߯k���ע�����5��w�xp�0﹌yu�s�1V�;Z�oC�~��1)n�$��r^n��
��+���F
�E.�$}�o�t]��}k�3�G�^`�Z
�9S�z��zW��(#�fM�׋a�
�9����q��m���u"�+
?󁎟rWF
�1�u�SW�
�c䎄	��#D[��`���uLS�����4��
s4�g������K�u�
��h��y�,�p���>��NG��c%&�&�z���aL�m
g��v��?�z�����V�KB,�,�9�;f�ēy
�P�F��
+X�)ro�Q~:/�ޟUm�y�]m}�m���;��uʉ������\w�
�'GE�
�jEQ.
-I/-�	�WD�l�M^
�TcMR$��r�M��A���j���)~��,
s<�B>�ԩ�&Z&�1k��g�������EQ��re��Re۾
�R
c
G� �!Ѫ@EY��L笀k��N(8^�jt�yT�8!�,F����ޟ�e�������\$�<BH�פ���f4��Ʌ�&	w�벞���ؓ��:���b��\�e�H�86�
��x��!r�l}����w�X�ؖc7{��;�=��r�muC����C���I

(���!�����5YO���ofE�Ouՙ�k�
@����W�� ���N���c�᫝9o�0!W&(?���	���B�UF�>R1J�f*(� �`��*.�]nNz:D
+���	�^�,���A�
��

�qd��m�|���
$�������b�'F+�qM��k������{@F��+���d{Y���sތP�_.�aRNt����$����O%<vGR
d)	=R1�@&V��}����
�T��^��;�c�Q�[��@�&�����W2Q����jn�wǨ �܆��=���(�9O4��gˍ����Ȥ�QZN�����Ov�i�c]U�f�}U����Q���E6�`����N�iB<�;��#
��:��R��x�sCE���є��LIΝ�����CX�
�+��|����0�^K��k
+���Yz_�4�2B�1���,V����s������KCvǠ��{"�O �d'�-�@�,��,��&?�f����/"|.M0�]�������[G81�CN�Y�3 �g��S=p�qX��~k�5��P�@��p�IdKJJpL��G:�����
ĂS�K
OcҜ��,��Tzj�
<X��[�� 7ì��6˱){3���%6ɮe#,JdO[U�1�F�脼�yxGj.�6��3����
P7�0��UL���1Q���Oj����BP� �a�""N�x\��S�>D�=��H�A������0��)�����Ѣ/�QLԁ��]� ��-�s��h�L�=R�pv>�‹	z��	R��m)9U��|���|p�Y��bb�Js�Ǎ���6	<t�.�Z��p�
������,E�\h����U��^��R�}�[�ӄl��o
�e��P��ﲨu_�(Yh�]i�~�ڒ��Kn�qJ��1^W}�ݍ�؟d�GP?6z~���zh�5~���^T�#� %Ẏ|"�~�2%��q:M/�7��6 [...]
xt
��伟����5 �:Ұ0��T5�蹔=
9w�K8TS��&p��=�A���|m�+C'*H���"?1t�C,��<˨ �
#�;�؄�nt�Te�{c��_*Anȁ���SСӂ��s��zK�~/P�':.ٮf���
Ĝ��ˡ&��J0��At"௢L���.��W���W${]�E~��
+�r_E���+�d
��ڤ��C
*���,���i�訵At�V������l��>g��Lg�#u��+UJ)�ww
B��ww�%D��@HH�(����s���<�s������p����ν�Z3�z&�=^�1���k���c�"�h��
��T�,� ���
+FU_m⏂�7�
�}:1K��m���鑆\���/�le����Q	ӣ�,Ӊ!
�d}�jo[�-���ڊ �%���ɫ⓵m�'���̠�mf�޹��
ɠћ=�WV�s�X�rou�9�
��)HT`�P���$����zɢpm�E*��V��jO��L�Kn
���.���#�,�g��9T~�3
~~�f@��'� �]`�����L��?
z�
;O.]�ъ
2Fَ���k	�!#23h Dž���}]]���"E�Z�p^Xsh�
lz�Y�4<f�!�q� ��g
"�0+_�ԇL��3�E��+
����4M���P�vN�L�EF��uk�&�ˢ@�>V��1���*Yu>��"�`��3�M��W�c���憎�KB�O	��p�[�4&3(���� �*��	d���I)�3
�Ah�s���:A�Q�+�(�ygT���^��!\ʹIJ��աڸ�>�[�0����ss��u����������<�Ե�>�j�	����
 �8�*�9&@�\� �� �_�\��*��;Z�hQذ-C~��V�S2SN�駗;+
�F�
��K������I��}JJ�{����>���_y��S�R�#�T<���n��jWM�
ٸ��y�f6%�%��q�ZrY@�%9�0iA��В�ڮ>)��Jg٭���'�w�)̾��r}����4&9�"�ki�G.>���u�N)�\s��E뫥i ���6��
�Ф##
\�x�?G.����ɨ�35�IZ� ��3�V�X�+����
+�B�� I���U�_w䰢��›#O6�k�k��}�(��m�����A
m�7�J&�o�Yصv���y
J� {.{╀cC*B��9i��K����.���i<Xk�
Y��e�E��u ���h�E�@n
+(��Ɔ���T�	y�%�
b�{
+��ڕ��s��{�2�֖w�#A����
@�8$�Ƞ
��SQ at C�~��[���ݵ��
9n�H�����ÿl
C�� �'�FaQ{Z*��r��Ѣ��3�7�����iL�c�nm �ԃ��

oX ���I�3��_'q����7m
��1j���rw�R��&A�8�xX���JJ�w���Joҹ��O�˘�~
)��< ����C��G@��bٞ��>���<Ӡ��1��
"�5�O��ʮ�	Knn��k�|��|�SGUԷ�U1��3�s��~��"��YX���6�A9�z_I�
�@�-]9��8.Kh1���k���.���؝�do��m��_�i�ş�l��
+�
��>6`���	�V��aث�a��m.ׯ$�oN�����f1��mO��L��=뺦9ᔩ���0!����e � �`@d ?=�i��"�?�lޡ	_镂c\3e� 
4x���G��b��m�dO'd�fP��ʻ�Ί[2F�yQQ��
X�E�($�6�b�G�w���t����HKo�]sO�
k�U����2��gr
Rz�Q{�,l��.l�7P�K�E������me�����m�f��*��Ӏ5����=�|�� ��	9)�
;���L]����u��u`q��_\����KM=_���/���c"�5U�b�3���+���Q���cƫ
�Rj�gs}ϱ�M����
h��!,ak��w����vA��P��s��K��C+���!m�
Aǟ�=�q[/`lΒ�ZjM@��Ӊ�l�1T��_|k�'�f`�
���먺�9A+�Vp��l�s��FŹ��8���cb"w����
��K��ǖ����諕/ ~
+��q�/,�%x��j�N�ޚ†��;K;䑵��A�w��]��%A�Z�a�]��[���a1xs�S�1IJ�xpm���m��ɾ�\ r��^��`V��bv@îs����yL�FR�[�Jq�bs½Vw�\|P�A�t��Y�p��c3��-Eě{����]s,ئ�
Y��[�X�f橊Zza��uZ]_t_�V�����[��3E-��ּXlʹ�E�t?2�f_w�=:2#�����
	���4>��$`
����e���"� ��GgZJ��T�I�jJ�o�
�W�H
=s�gA�������2��_
��:�>�Y�&v��_�8\���\�	�A
+ģ@dY�j^hE�����{pr�.%�[�|l�п.5|
��{\Ә���s�"��K at 2u�b]Rr�.����Lؾ�]�eB<�t�0��()�rp��]�f)���<s�
 
�,
Ʊ��:�߮Q�ۚ��4�Wƪ��S�}Jd��P�s�0���0�e�v�k�6q��ykc
��6�/�f<P�
��F�	{s��y:hW��[�NY��}i�ɹvd��L|��($z}����X�����N	(�/����%6{�[𲇘���J��Y�t�c�<��w֖��:Aʕ���w����C�r1$.��<x��<�W��׆� ��rm����#B�\�^�޻�
+vNc�\\�{��c�Yj+��ґ{m����r[������T��
�%*�Y�6F�1;����f"���9�2�{
޾I(>X�.�7��N���}��f:�o at gM���TlA$e_�J���1r���w����7-�O�U��O9��
{f�٦rz'��� %���"nG���jx�]����/���`
�c�y����J�m���#�h �0!3�\!C�����K�z`���1�`���p��q�M
jp
(�-���R�r.ts����o
b�n�֦\�&���t���!�����Z`�V k�|ގI>�6L*��E��q\�s
+TA�{��OwP9!�V0P�+��A
�c$U�
輠[��3	�:fw��v�q鎉��QB�R��7Dž�d��`3�2\�{
cDE��ewUQ��#7'�I��s�,6u}��2P�d}���W�N����[�A�R� �����
���z�R�+\[rK�(��!t
`�wv�\����S��,=��U��3rF��=uo]��}�WS!vѣ
T��#�������Ps1�3�|��
U�C�w��
����g!���p]S-=�>�����_�bү��9󏥞��mdT at Y�>����\p�[��{Aу�����n�Z�5�J��;�n��V���u&�U
tC��:T�:V� �}h�qwx���x`�Ҏ�
��t��)�c+�nu�vs��
+�V֎��s� ⇌�}�H���Q�2b9�H�]
�  G��%�(�$�=��Ʀ���p��ʇ
���k�%�õ��1�2a��\��Иϋ,�
v��-buZ at M(
+:#䌐���bn
8^p?/�Y��k��5; ����c���➥#�>
�K�M�,��p
+#�� �J�ov��E��:�g��Q��IJ#C�xG-$���}�u�
.}s
��V'�6��,
�k7�(5�yH�O����Ӂ�⎌\�Q��3	y!�x�$�?Z�
�}��� �O�s��I�#�rQ�ݒ���I{x�������嶚'+�Ud̴?�������?z��7�z	�V z��P1�xܦ�:��K�b'����|�5

X�Fz��0�x�-�l�Z������! �x5�
+`}#g��W���5b�~�w��T����;G�1˝%��
�
C߻e��)^�
UC�

��z.��ꀎP�
���|u;䕼��ծE8x`��4�"����=O�=^������Y0����2 ����%�ګ��ץ/�U�Y��mN�2�3��-).s�Wt{��q�ȇ^5��)�yT����K�9�
�ܫfÍ]u��`
[�<�k��V���o־]끼^�Ku�q��Fd�8��}�*j{k�I�`�H��2R�N�^��^��?���k�+��`��;@O<r&���<|l���js}��gƳ$�W?m�U}�j��%�t�>ѫ�1�X:���4��w�N�ӆ���!�W�A�Zq@ʭٙ�VZ��m-SGK�f�4.��Vu�p�h�;[g፵��;�
K�5V:0o�c�u�]�wz^��9V��.��_��~d������c
��&e������\
�Qj��CK���r}gh��;6sY^!gO������¡��|Җ�
v�ak��4��fC�l��� �
@F�:�o���X;�o����������1�z�7C��IiEA5
�W��}rD�{�nL�6/�<뜨��b�S=Z
+d[�L�V�b*x���o
���˔گ��&z[A+
�sP+����}*�܍�
�f��'�Q
*��3�4W&���bS7'�+=���u�}��̌��9R�w��Y
`f��ϨA﷕�_ˀ
�H��E\EȈ���70��r���q�,h8x���6���Ե��ж��u�l����bWM�mWЎ��(�f��O�J�C��
´3���S�����!h�0)��LP�t�|�9l����e���V����t{����y�Y�c�P=�l�W���{��W�-A

+�����1ox~`h�	���^9.cm
mh-��2���(�Շ^�C�+���R�F�x�V�X�`F�3O�� �s`�M�����z��Q
�����-�E�5��>E�^�p���,�
)w������&�
;j*���:���#��K�E7�s��u� m�0k ��
�E
�*B��
+��RB�d�t�H�+�S��$�[Gم�A‡m
���j�|OG
3do��=�[�L��C�����bBj
f`А��!�格�,Զ��n{����������iT�b{�ucc�
k%�
���(.��|}�if��1L�Yr�YK[�}�4!M�{j�Ŧ�B�[ɬ�]��,�#���&��V� b�}�.fk��jȹ
�#�vMM��s0
)1s���V���ͥ���s�/P�#$g<>an��	��9~&ͯ�f���q+}����甴������6�H٪��?�
o�{!Q��
�5/��F�
/�ʶf˟Ԙ�?�8���i��V�pw��x���'
��} f�����川Z�[���[aoĠ�s����~���P}s���5�L�C��2��xf�����V�/g�ٗ���Y��Qꖺ��C��mm�أ&�y��5
{`�2>/�fa׀Cu�_�/hi��+����րQ�\�@��OT�(a�jL�B72��qC��s�qJ��L���R�+^�E�(r�@�(�J"�ů~s�� ���Ơ�C: ����T���/;\e��K���2@Ͼ�V{峽i|��>��r����`e�k
�W� 6B�ʟ�bά
�c ���r�WJ*p��	�c�$Ē`�+Ӕ�(:7�qv
�����]6�ܦ㠶�
���5�5ˣ�K(E=��P�+�����Y�1)�:�o+Y����6&P�C�O��s�E:����e&c�B��t�j�d8����
���>���
�����h��Z�P1!^�9BK�M@��ؐ�+�')�������ǰg�2��6�R}�Ug [...]
+(`�r�{���-�;!��,n�[p���D�(���<��T�A'�v�_�Y�w��ׁ���ˋ�����WS#8y{
+���[p�6XtCۘza�����	%������q ��	�x���,�K�I!��������%oI�_�g�"��D�M�)��ZJ��4Կ��m���Kޡ��
>X,y�>�M�?����] �ۻaϗZ
+�j�I�&�ѿ����&̽��<+窔[r�[�����,b��&�>hb).�;G+�H��
9<cs�з�Fܸ3�����*���ݺ$?�9
�
�n���A�R"S 
 �j���b%�9"y��;��2�.�>��t�P3_.p��5�­Qh���1Z��9��'�
����aF�e�n`�%2�p� 9�PQ���vi��Ҧ����G��
C
���!*
�/ÔoK���Qh�O�)����S����O�s���� :v}��R�ֆ��zlYn%�D�\�b�_�Ƨih
+.�7��6q�«�� ۵
+��X�ЏM�v��y�"�}�Q6M/��R�{{ջ�7����`I�Tq>��LJ��n,J<X���,�
6��9��"�5]�1�c��M�e�)ef�]�E�����=��k��o�9I
�A-��<AIۜf�|ZbS��_�
Z������{Wy
4H�����u��I��^�[l拟v4b�w�Q���
F�]��_n)������(� �x�_c��'�It�J�sY��<m멾�1\��/�?Ա�vtB�n�R�v�[[M��~xѯ�S�[G��|с�C
s��,=HT�[{v��6kWE�؞�%:G���.�kSs�#9����]s�5F)4�A��/;$�w�������.	:`��T�Ǖ������r3_#�|r����Р�ٞ��?/�1�Ml��ꚅD�i�;
+l�_�
����& �kH�à���i\F
��e	���j?>��U�P/ʾ0GO>���⊷��!��-��D
��<�����]EX� ����+�������
Y�
�t�
��^�2T�)b��2�p��>2��f2䳕Zwl� �d�W^����7�DGK�=a�3�{ZB�g
+���UtW�K��6��`
��3��

;�19�Ԝ����[�~J�Uq��/��c6���G&��L%
��uK��]3��of�=�}��L�UN�mk&��E�?-l�c�v�����(��� �ծ�\���VɅe��:q�|s�R�
�c�~��^q{u���S���(�j!`�6f��>
�
X��*�GtL���
�f �s��p�#@�T�J �&%-wֽ��끽;�
+~uY\q�
�K� �"!��:
+�)�z�Yp����5R��p=^�ܧ"X�!o�m�wP��b���sj	5�%
ǥ�C�jإrB���j3��E
+�:L�|]�5��%�
�鸣*&�AfoZxs�.Y�^�u��3˩�'%[ڠ��ٿw�쩍�~�xz[B�\#d���u
������
6%>7(C�mM�L�ď#䢻�	y�ک������騐�G�kT���,���5W�^Zm�W��5������W�v�
��EXt�3���:NJ�>�n��_	���p]	��`,{4�H=?DN>e�|� �yU����N�P����,�3ԋC@����K-���MY�7F+"v4��.���KS�47�4���\��&��pY�1���.�cU�~&��!���S���Kꕵ��GJ�T�nŜ�/z��w
���T���Pp- E&�̓�v���C
�,���'cG�}CK�C�,�
FC�{�c����2a������3���%}��
*��
+zyx߇���!��A�uuGE(WvT�'��N\��=
c�E�X�`�W;�O �~�ρy8���h�L���[
+M����"
���&�.������zt����03�."��wx?�� Y��q���5�
�x�;Ssέa�Vzo�q��I9�~�rr��Ɉ�E��H(�W�8�Us�rb�G�'n�1*�
aO�#^f��s�_�C��7FJ�s�:j�F��w�	?������$�D{e̩����=�1�Ο�Sp�λfi�@
K��й�
+Lᶒ\���
+��o�v�9
�����.b
��t�֪�_����D�A�
+��ឧ����SZ��	�;��'c��[?�9�W��]S�W�#UO�����:��;j!�7LJm�`�If�F>N�+�<�M<�f&��
�|��O��U?Y�\��I+�Uo-=��V���[�
nmԾL3˾��
+�
23	~
�g�s���hi�7�E~%�fGΪ:Pq��B�Z��j!�=�+Yj�>��'����֊��x�5��?V���y!��eB
2L�s��
��+����䮎�$�����wg����֖I��R�:
�%A��jȥb��[�-%���O�������^���G
4��<�ds
������f̫vTɹi�Zx?�����.�Dw��� b~�$���˭�׺�ژ����~�ub_�x�P�g_#G�d�L8o�J9�6\�jw�	�[hlֶ#��ư_ {���,��9Y�����_��%!52i���	-�ݯ��W'��(���Pń�d�­aX����P!L4X��D�GF-6V��a�Rj��P�r
+Jݎ�V�ROo
�?
x
@K�rd�O�/
����]

�o�P6���z��
5�z�HGm�"?�Eה��3��g��	l��b���+|���Kߏ�
�|�r[	��U�?z�`�;0�
8�
0�3�T��Z|`h��9ĭ��ĝyb�w
+ge^���E�T��	�y+��{���Щ?Ab�SSV�-�x�S4�lsM�y~��9aiD��3� ��󖔌�O�?nNC�CF2̡��Y�`���������mYC%�l��r����y�x�E�eS��y��=b�k�&�!��׵�=\
F�{&���!H�s�&nk���zo��]
�1LbaͳYf��~,0��rJ�o���%�?J�~Ze]r
��-T=�ޞh��=�
Ǧyg����[���{^IΓ�����"��h��;����I�F>+|_}� ��i蠝9J�o�^��~��P�d�z�
M<�Y��7Q�����)���u1�9B�c��5�L�V� ���g��<RX�(󼌓tj���w����} ���,؞N����&�'�qHr�Zz
E�}6pI�:
�5C-���Z1�9E�Y4�BK��yq�S+��� :js�U����)��]�e�>X�|�{ZQ�ӕ^X��#��mg����`���Gzq���fȫ�H��4�������Ps
��?�ť���Lܗ:�Ȍ�?ZB��� '��ZA��w?ೞ�x�
).c����Jk�593�wv�����ߌ���
T 3ƅe��e���}�m��ؑs�uJBzv�����ONCy�r��K�ܔ��^�ׇ�e6r�B�[�Yj.x��&_
 �}���r���0��!�s�|���1�W7����k�ڪ��
+&nN\�3�0��U~�g
�P �
�����O�gO���_AvRpyk
����S�\�0!k[Ɓ�
c?�A�����iJ慖�7�ϳ��,4T<�F'���!%.����W�?	���M��
���!)���v�t�S����mGk���ؿ��,�p%�
�[���&�:X���V��%B�_^�ag
W
P!�Ð$�
�b���{��}k��J��Ny��B���� ��	~ɋo�i����O� �.��GRB��:F���f@;��=�%��ίx��1���h�����'a�m}C�C�Pa��<2���YZ& ���SK<
+fe`^@
�D��9j�[�Kp��>� |en�}�V��
/?�_&Q�k-|OA�;���\55��U�c���#�,4��
+�X5�Y�1��
��\Gm
�>�L�>���}�TE�����
+�^))/0�N>�*�T�
���-�f
�>1�hZ�5�|�

�$-��
y���>CM=	����Y�G�1�fY%���\v�rk��q��ĥ�w�ޜ�4Wݶwa�o��!�f�)������ԸF1�|3�x�
�`
�	��R����
�2��&r�� 45l�X��@�4��<S7T�ݘ��}^��*�E��u1��O�l��_~�|�(.z�S�	��$<=9�/p�he*Q�i9'�R�a��z{���"�<
�/~u~����OO�o�*�Ͻ湥�蚆�rV�O��9K.D�E��e��h�!
bjʽ9����_��ۖ�G���ro�iI��98;�����G:
+�5~���({�:�ݧ����"j񪘘)v�
�(��g3/�w�P�\\�s
���Wyu��ɺ��N�{�3:��
�@<��&X�K�蚊������=�v�
�3N�V�S
3�!-�[̓�+�*`�F-,�'>�%
/�@_�Ɲr
+m�=?�`�A>���W��=���2yd�Ý
+D�[EmM�r��ީ9�T��?����|�R�F��9=E�;]M:�I��v�\t��^Q_��Z��o���'���r������C��]���Q?/4�>
jy�=�5��d����|�Gw�90� "V�-��6��
�d�
�fk�q��䊞[pNBH�y�uj����uNJ�>o�X]�wGl��$xFQ)�^T���䦽

�;Ů
H���>�#U+͙Wg���Z��)P)���h[g�=�4���D�04zg���g�.�'C�o�p�!5�.��
RJ�k�Y�
�W[Jn�c�CF�8K�tN�Ͻ��\v
�g�
�w=�ēˍ5/M�/��'����ݠH`^?� ���
�
dH#���
+�W�tI1)�Q�۠�T2r�YZ�u�E&�{K4�uU�ұ��t}s��5@�Ȑ=3�b
DD��0��U�71��;Ԝ�?�"~�C$\Z� =4��S�rcK·�Ob3����eaî�OwN
T�����L��A
W�y�i�`�GhhU
��9C�ܔ�2\ӌ�
)�zV
y�m�����1D�6�����M2Ι[K�D��+�&y�Oo~lC$=;�Q�_�l�W�N���*����Ss��9F�����r?<�ߎƙ�eʧ��oJ�o��׮q�
 
�/�����c3���2-�Vb�fٱ'U��s��ۦΚW���W;ZL��������KN)���*l�i�%�9H�[�Iu)(�-���
�� �2��F���E�r�V?tha�{~mI�/W�K�������qZ��09}WK��Q�D�&*"�&�HM=��<�茂]|Z�+���
+{`ľS�+�
���g]�&��Zlݱt�:G�o�3�L� Ꝅ�w�6X��S�\���Y|ֆ�Y�V
+�"�W�C�K�9E�
��|�^�q��
Wzk_Mk,~�]?<�G)��L?��l�K�@%??g�Dz��A�qa�%���>��(6(�aԧ3rn�Ul��ֻ*��ԤJ[{�#
/�N���^ȣo{���k��� �F��3�(~u�_A)>k��
�YOC���|�p�Kko�
eC�
B^ܩ.p��rJ��)lڙ9R�%1��,9�4�N�ԗG�HO����졌������;t������*���Y�y�D&���S�����z
+tO/d�)e@�-	j�Y�����C�HO���$�a
��L�'@� |�����T��l
�����b�����<i
���S�.��qq�Ft�$���\�`}�8�;]�4ͣ�f��8}�
+��l��=�7Ϭ��p�{&:���[�Ħz���~
����c�T�!9�)y�#���c��
��P/T<�k�]�j�m�5���)�=��S��+�����Ad�k�]�3A>�&�:..`�okd��rJ�Y���W~5�*h���
�o�"��X��I���pq�*:X�/�9�K�]��?k뭺�a3�
�e
��8 ��VRJ�f��~
>׫F���k�9e�ܐ����H��=�\v�D��t}��
�����:��-�9E�vI�E���~#���$|�6K�X��,�ه�\j�$�Kh��p��f�N�=KG�M��B���n*8���
.��!O�&�����ȅ��{�
Q�Jo[�J=~c��`�(��؜i�������
+�(U�S�qd�Ѳ�q�,�,Y=�Q�
�
\R�(�L�=�!�=�(u�2Jׇ��mU���+㔜������¤{�97d�����F���5W�����G����R6�܇|���-�p��Q��Y��_����h�g����K��({ᣪ����##��I�,�fm��c���Ut����>���tM巆8e�>>��
19귕.�
}}�-��	6�#���EW��~��?ʟ_�F��>��o�
}cm汭���@�}SK�U	9�d}���Q�Nx�j�W'��㔴��ҷ{Z
+bWC�xg��;rb��@�}#��rGY�{�V2H(~i
�͵
�b�[�"7z�QA`���r^ڥ6����3
��Lc4�=��c'^�ҢO��e�;X��U�{o!���1A
o�%x�� ������T��"	�e�Mq͢3���1�L�Q2��It��{ZFM���
�t��#7�	���(��=%�uK����Qj��8>в�����	br`^HY"du�.ΰ
+�
.����}j��y��
옭�����vMB��0:���H�!{s����1�s�&�-ť�g(� ��e���1���E�
��YB�� <�5
��JF���Cz*�놰s��$6WꛧV��(���[�q��|C�51�9�x����/��_,†?�9��
+(������
���=�H�����<�H�I��kA�Z�e��P���O6�@O�C�禮�{���!A�R����M�wN�J�����*�9�k_zf�Yn2�2V���[�|wQ��>�V��>5�q){KM}��-�����$�C�J���L��(]�B&�h�$}�b��\�c�.�b>��3��j_��k���
R�KJ/]�@� z��.����&�C��c�=��d��^��i�����G�S7ž�Z�;J�އ�	~��S�r��ru�QxO�E�`��?��+�m�%%�ӊ/
+>|CO{�OB����_�@���YT�p�Sy�RPsr��v�S��)B����1�?��.i���]S�b]o]
:���z��~5�L|�k*�?����-󼒕x~}[`�����w�rh�= vZ�*������ޜ�=��
>���1r���劸��M�3
�gpY�X��,<�?]�a�
}����JF�^��Hѿ���#�4�W��u�R�����d��9������+õ�)�O�0���0�o��so��v�"�8:~P*f޽����m�b�Dgn�R���K�gVlKY`�
1��	����_�$���&��e ���W�گ���1C&�`�����(H���֖��ԋ.W7V�m���Լ���e�r��:R��8��C7%�7�&
+�-�-w��,�A�m�#�}s�Ґ�C:6�Eo
+{<s�$��Xt�Ȧ
/�y_-
�v~����h��:\�r?�
+��Zv�դ��V���6AӁ�R��}m�=\�E�ֽ�
�}{�H���Y����z�{�W�'�X�+��
/[:
+�l
ab�#�4};፭�ާb���zq�YSS��8�k�P3j�Z'h5,�a?��>���ցݥ���@|`d�jT�6�
[
+t֜���{�Y�:J�X�FE����ֻ�^n��}uQ:q�ōQF�G����x[Vc�*��ܑ{ec�:¯��z��P� �
��/&��r���aDE-w��m�a��g�B:
q�X/ڜ��xJ at -fy�LЦ�Sc(��q�v̫�f�q��>+Bܗ�koN�QO�b�k>~���� {����ǖ�Ջ�n�Ћop�_�G%�
+��e��>�(qȄ�UY
]�C�mC��RpJ#�5���5/�C��V��5���|sԊ��.�����
Zt�%%V�� 1k�%���9��?tC�N��]� E,�1
+k�c~}y��?�+?\ܞD&.5��4	�K1/N0�n��
�ᤜ����N }z�
��՝�G���f;Fʞ,7�\Pr�~k�x��8B�
���=9�̊��;����9U�a �+?������im)z2�-|~�iz曐������!�'�(�b�ݿX��9I�=g�/{A-xzz��
��M��yU�uleRwt��
�b�(�;AN=i���q��/�?��/��0(��w
��u��=�(��~��8��*���~���36������F�˒���$��t�_�)ؖ�D�w��:�����a��x��]~dkS��� ����}dB�m����V ]���c�Ǜ��x�s�P
+��ج?M�
+�
>ͣ��:d
�����+���F�� �
�b��薔�{y���J{�
��
ӶU?�v�"�T
Ё�;211�f6cG�&��2���iYr1cS�޴,i�:���AM=' #����}
�¯B���J�_8x�
�`��w������u�~VP���f�
i
�����`�jZ�_C*�lfb?[����^琢�Z��;%𜀆Tf�>��������P��� ߀w�,�Ш�iLb�����������$&ySN�,��yV�� 歡�>ʯ��u6��flMP3l=ď &��M�u�vq���
�w�����2�8�pe���.�8T
�m�W�.e��,�iGK�Ɛ�
+s)��f�u���^5
2���ir��
�dK�*
��~�[ k��Հ
�ؒ0
�����b��5%ߒ	*�%�
cK��ij�E%;��B
��J?5�:��1�	��}�L�(-}O�$
[��M)!cU�Iޚ&�d����wiD$��yKݐ��1���E
+��Sqw����}�����ui�zJ�+��eTδ`�5 at S�����=��¥�{K
�'+}uoWI�˽�$��^��1 k�d�_~���Ϝ����ъG+���K`�6f�y�~ތ�b�Zr�#×�ZJ���^�qS~������"�m�/���6i�
��G
��5 G�v�6{��\rb�}��pL�,�G���?��<��WR�����m��^Ĕ9���-��b[�}?!;�����
_���_6��f�5[��ܚzI���y���yD��)V��锳A��욥�k�*��f�����IJ�����\xiNX�4�a!õ��Y|��4%S�@u�[����^��[�ꄙ'F[��=��IZ�(ȥ����Ͻ3���)N� ��vk]����֮�G�ނ��yX�_���J�5�	z�G+dn/�I
5�̭!l)�i+#�Wn)2!���ո\�
6~e��*�>&�^�U2A�Rf��
�2�g" .fx
b��$�R�X��ȥڄ
�6A�a����^�S�)ٛfᖌ
]�����3�S
�e๶�䚥����H�
�8��Rw��m�fRPvNT�4h`cC

�Oł��p��%K5Ɏ9Ht�3l*;��|�&v��a
t̾��>�P�{&bն
+�
Z�T�L^
FF9'���
+l�m��<�x�Q�v }
�p1���p�U��k�@6�<薌^�aV�LXHπ/�yA���.@�
ͭ~���?�щ��rF�s���B����\�FH�5��-4�_y�D��v�}���!�e�L�Si��c�B���c���5m�7�3����N�C�X�Ya%$�M��s�k�3v ��Q �TG�
��񪨕!����	~�}�U�հ`�6B�+��
+�%�,��-%����
+��\�>C�6�PS��\�[[/���u�
rZ�Q��視۳�ظ8�N4I���!\�|'�m���g�
+�L���\]�O���̑��cM�����^Ռ���"��9nu�≂�~z���$>�XO vB7d쪍YnMZ�q��5'�oNq*�ƨi�
\���vc�V�8��Y�g��'����^@��O�s�R6�1`���~]!@�)�i;];�1�
�L#m��I�؄��"d��h�^%�na���B(�(�N���E�qLSsͽ����ί��s�ie�z򖺉�14�:.Ʃ�@]�<�K�C9��
+��霆F;��4��Yk� gpPi�����r�~���}:f�[C�n(��u9��ԋ���>��F��gPÀ�t,䮁Kh9�M)9k��1��ؘ���л���K
O�~j�~�A�nk5���xc�Sh�M�*���>��ތ;�
QK��
�ml�YSt6����1F��J��qx�̦���L��6!����)�-�b���1�K�7Qa!
�ȯ&����L
��-#Z���^�6hi����� 06��/5t~�_I�*�r(URQ�W�ҽ0\��v��`.-��RaN9�ܣb@]J1E�P�B߂������g8�qf��4��>M/Y��!V�ͼ5U{�ʴ�F�L�����g�7��0`�J
��b��	�1
+��ˍ=!���>�do��XD-

�7�h�6Φb�6u
ܶ��ti��v��!l�K#�mɨ�� 7���-�tKƂ�L�}�Ŷ1���yCņLͽ�eq��DA�4�j� �i�o
�\Ց@_�M��m�c[�ȁ�~p�$j�{��E�aa�eLX�>]��iZ:��-�,6mm
k��.vֽZ
E��b�GU��Yh�
+z�vyG�C*�{�b���_1׈z�kG��
?9d��-Y+ϭ����t�
��Q�����T��h���gc}�O����v�:5]#�6�Q�7�qS���j]+;���*���If�dC�}E;���(�dCV��u�#�H�������j���m�����	+��L�!��x��I��4��
L�<�S���eϭ�B
äęFx�T ��J���>v��4�4dd��u|��<��s�_������m=04�
]3����\�[�ߐ�#��+��ښ�C��1z���!�' N�
�EnJ�1K����������k#m߇�J�ڭ��R����[b�=,@� 	DH�%J�'�����[����>���7�0s]�y�d�<< ��k�Bw|v)酳Rjъ[y����4��x��y�܀u隁>og�Yz�����Y
�8�&�7P�ƙT�
+�e��C؄
�b�R[��'d�dU����
��,H3��A�@G^k���6ks�+Y37��|YƔ������5�
9:��#��^r�+ve�M��b��ڲ>�\�2��O
Q�����e@�mX��w
�%
૔��5��͑&悡	7�i�:Um��!6�)��4R�B��Tq�@������!\Ʈ���
k�ߴ5���ù.��LC��Ds��L���<G�7�2�?Uߴn���T�SFNwʚ�4픸Ɗ�ۀ�+�u45mMԑ\:Z���6�¹L���&rk��gB\<))�ڰ�[O-޲����:�.�i/�lX��Uc
z��m�U�V��H �|j7�M
������6��D�R���3�-T��h=i�@�^�V}9�x��ѭ?q���
]
+����)�%M��e���,vE���Nl��Hsݮ���e�]<���-=&k���aׁ���{��~���pG�|��x�Њ��:�d䌋��lݬ�1	���"�z[i�e9��?�޻ko���qOxQ�*���@�E��^j����k������յе�&┤�dR�K
�w��rZڲ�?�7t��4
Uv>*rV�(�Wu7:T
+�p�k�hMY�v᷆�kW�}l���vFY���-
+:� U
�0k� |��6�u�.%}QN��61��mT莅\�b`V8e��y
�rYǡO��	㜒�::t���lZ��Z��0�|JFN� ������b>�����;NC-�yk�Z���j%:���=������0�}��޾���;��`kkћ5->��"��CS�
������ߝl��k���1+�Z芎��0��Z��94��j�!†���ڮ�Q��1�h.���u��S6rN��^�����X�u��w��ĭ�v����s
���6��x=���i�pk��q0EE�:�c{�����2��׬<崺����
������L��B}#�s��6o��-�
��98�{S�]+#
Ė��;�>�7�m�wuYv��t�����d��ԓ'�,���g�E9%��M��WGX�%s
bz�	�3��}0�
ޙ�P��q�+#��sZb�:�ѳ�������n%�w��}
�?�>����N+�i
jj���cp����s��.-
2!��͛)��:�x��s}�Iڰ7��fZ��춽IRվ��_�v��
�P�~9^ףA�
+�$��O��~ļDȰ�u���֮�AwٌT�b��
�Z���q�f62�x�S��h�ٚ(crF�Qܐ6< Ĩx�0!�;��Ľ���2W]�{���mk=jA�T�u���RUM�yS_J
�����QJ+��6���<ɺ�O9!oG��uOᰀ_>�����e�6~�����-�6�N����č�B!K�D*'�"�Po��L�A\��e����
q
6��:�Y�4�\d��:9B���h�S6u�K�=m�ڂ%6vIK.ش4ׯ}=.oGjۘ_�����<f��
��
�W.
�b�M��u�䈿�uh�
��2�s���.�h���f��S�`?
+I�gf>�tV��ڴq:V
u�cBf���??��[������'':���sRRζ�]�bj&-�a3J�.i)�Q�-��K��)sC�|�`G�F<��p�Y�ޮ|���R����Z-OU7ԣ��"�E�#?��{�
�N����hk�.v��(�
c�l^b�V�\�Z�܌U��M2�pD9�o�Ay
a4�I
̤��㫺��+�O��
o
+k�%�m%�J6l�،[
���3Q��������ە�κ�5{ii���in�YT=8��[��B��=�)mO��1
ypK�g�K��B.~Lތq���q)6~�Ħl��*�
����]��I��`��=�o�9v1X�����^i
8�g
����7

�kWǔ�ת�`�O���Nm}d��=kja�M��/�p�1w��޹3ޫ�
mk�17�L���V�Z4�m�O��
�
]Ԏ��$��PF/SNDw�W���h%�>\�$���M�urRG�Y.U[��X�u��/�������j�h!M6ts'`M�Ao!]
�m�B��A���'�—��mC��ZCB=Y���{T��z 7�B�XW��
K�tg�K0��Э��L��W)㩐B��ϳa[XCq�d�O+s8��2Y��2$S	R�,�=H�nD
��w�.y=��!ů�*��/@�`.2q�Zb��hM���С���:�Ry��H.M�S�(��K�]=�6>�uO�����2qC��󱥺�MeL���DԬPڰ��n��
Ms �A�-�K7t��6�U1e��X�nn� �
&i�M����C"����eL�4���KK�
IdK'7�N}��kI�
�a���u��,���;�G��
4UZe�&m�C�xmIʮ��!~_��k(��
�2q�w����M��v�*�De�g%��'�T��M��_�{��6u���Ԣ��ᮦe@�-��ųJl�c�aQ	i*��٬7�i�tYz3U�'�U �@��+�)�?��3~z�*���y��,�uZ5�U/�9� �VLj���
ƚ���R
f���F�V(T��>I~w�$��KS�R���#
+����-�$��mu>�CA�mF"�(5�>��豀]0���qd�Lڳ��J�]�?��z��
��7��r5�S=�����Y+�e�8�U��xW�ϫ�
��@e9N���p����dmm⤦����6
N��-ml�R�%����
���E�b�.��G�D�e����_��a��'7\��������E��~�_s�k���4�Ttv$;�\�N,6
����]hG1�]���,J�V\
q�-�Z��W������*�}h	�)(��.8�w=#��W/���in�Qԟ`p�.g�P��kn����jBъ�*EM��������| �:�Y\������{v
��@r53�w��q�{��W�ҧ/d�'� n�_����
�5?��&
��L��
?kh�-X�:q+X�9���lNg���&Of�r2���n�̨������(C�X��Iv�7�'?|z� ����u'�Ҽ4�j̴J#]2v4���;6��M��k�r

��#;{
U��5rw���y8��

+n���d�WQn�/i�ߋ2���b��~x
�gZX�{/U��#1_���⚰ߧ�Q�z��_$&��l��n��
)<)�����&}��d��>C~��1�rF^��4��w������?Iq�]z���;�3����o'�4Ҟ���ޙ��U�o�Jlm�}�D:{6����,4���G��ˑ���r@�?3�?E�.�z_��J�ú��U����-����J��N��r����f�� 5�8�Gw����w��S؎�j��=��s��R���R{'*����w9���
v{�*��/��Ɠ<�˗�����/A�$�#�k�x���jB"ᱰ��he���p��os��>�d�[�
����
�{��NW���h�NBԯj02"���7~�@z
����D�����.je��[�
�:Ԑ\D���3�g���ed�Gj��jd2��$�~��nO=s�~�����#�-0����s������$�?�;e`�����ߘ��
Eb��g��ܲ���]�:<
+і;1�m?�����c�?$�4�Ms{�U�v8ֽ��n|Pno}����*(b��u���"!b^˭_����ަ!I�'�R��I`��
�ȵ�2�����߇R�n>��xS�
ż�!����}��
/�[@\�%ߘ��1.�E�]A ��gw'���憛k��޺fF�'&S��h���	������F2�L��=>�����
�>zW���),�}�ړd�߮��=~���: �v�	���5,N��w�i�y]wDŽ�ÐK��s�{B��A�j��J1�'��ѧ��ڛ�ݗC��/ǥt���s���X�w^�W���<J������w�S����(�5��mI��ʲ;�3���p�����;�	��
�\�Ld�����'��ǻ>�/E ���Q�
z��އ.��.����Dҝ�=\-�4؋\
햬��h
ʁ��Y2�c-Y?�
'�^�V�ng���|����KХg�n/���^zB�<C?{F��
���9�D{N����qf��Xa�AyÄ��h^˄�D�(����f��'S�S�̕O��?��Y����!8���� �۫wen�o��ùyŲݞ�~��Q��+�Q�ߒ���9P��n�8c���X��ĻԴ
�����=���5�O�`�^�ة��Q~�������|F�}
 ��9�|���X�?o�\�Ln�%$
+s��}nS�p��L�+�
�
��k*��2�dNx"d����'_��!�t�#�ү�>���,��Cjn�x�a�P�Y.$-��H���4*�$��u�U
}�0f�%�|�(
‡�&5\T�ë��n�YͿ$������_�
%�˼YR*zA���K:��'qsJR⊁q��S�r��'�w$u	
�u]�8��K�{�I�7i%���Q������C�9*����l֍���G�H��J���j���`JWu+�+��K_�8&�3+8^�խ�h��j[��e(铈�>�u�|�]z�
��ң�Ynޡ�K��,����
��v��7��[�}E�3��%í�������H��yD�ʓHT6o������ʅ��>V�o��U�s8��y����E���O0�'
Enw����.%�������G#Y�o��̛W1
�
�bU�O#�	�4���r�ڎ�lR�z&�5Z�V��.�~X\���xW�s�u �W�0ĥ����Q�
���^U�e�L�pl������`
ƺ�����tk�]�I�ʌ��'��{
Dc))T�{j��'$Q�W&�H.h{��[랒W�
��V�BP����I�b�_dT��#�n䂱�~FI͘W3�rB�]��w���=�ܞ��BV�4�P+~�`j��J��'qn�
+����mɥ��ˑ9�7"A}7s�#OA��7Y5�7յ��^�(ê�P���i���
W�iontj;�
+��+�њ��J�h8�v!�7�� 5|7�P��K��K܌s{�
+`3�x��Jl�o{+?�*�����oVʹ�P�D����UE
\c^S�!�٤
ƑdoX���Ylv��!1�;I�Mϊ+y��DC�0u\�-�����ƌ�U�8 �1a��]�X���������^{��2�YM���ʻ�&$�_A��
�^���X�<��A�!�*K��^�KO��J����aLڢ���"$Y�� ��9G��2e��/�����]���E ����i������~������������nY�Y� �4}�mK
�h��_5�3��
�C��cQ��u�A�L!@vu�����|�P��K1�7q9]�C��~��j��/��r@,���̦"rZ��]K-߬$Z�z{��&��mT�T�m��W�q��3΢N�:H}�.��&���r] \�- I7� �&�^��<�ң�n>��K_bk��7=F��
�TE���<%�$O�a�+Zr�K�,Z4�`Ɣͅ�t�~����3B��u�\����/�����\Y�ӚRI
�/G4�c�|OV�
�; �

�+0�x0��{�#|]`0�Zfq����
+Z�A�OS��*� ]&�͕p�D=
q}��D�@U�++y��[��;`&�
i)�
+
D�Y�3�b�,�ы���eC�҅�Y�QK7F��k����aQ���y�(^C��n6�ug�4�ަ��&�^�3���Ȏh�Fl�G[��u]��F�`X�Hҙ�5
�=�[vj��0,vӂ+?�l�p�ˣ=�&��K*���;zY��q�ÖJn��� \�(l���H+n���5wI���K
��

9�Z��:B�� )�)o�O�:k������"��]E��� G�,hW��8�I��R�;Xf�で���2|���|8�ھcaT�I�)�Rrс���m�EM1��\
�
�� G�J�x`����7Q�Ɏ6
�s��.�E֍���5-[ۨ+�҆��|0�T�llط��L��^9���C��))~VY_�ԴaF���¤��fS4�۫��쪧�v�k��5cX�[5�df���.MG��I�;�61�m5�����+C�!�
+d���Y�d�S/Z����]V�m�03���<IO_6�u ��N�G �=�
�/�<�H�`��C�$��]}�~w�Vܶm�6����!r�������1x�	�=
K
���/
�H_�X��
�N�V9}���~;�R��[V��V
+�]#a�O[Z�����XJv(�h�rf�X�k"AN�5���_L
1�����l��c��"���8���P-eq��wR�Xa�%j��0��2�G�l����Xw�`����f��|-�d

:s��N���]�`NIH��uv��|�����7���
ikٰ�i����
�li���h����[P�&>��J_c׭L򂆒�f��c������O�#��v���w�VJɂ�^䔢"\Ce��FrѤ��8�b��
h6�{
�t��bV4�;�3�zؼ�U��d��η
���&l��t-�l�k�x�k۟j�rk�FQ}�Q�Ȝ �pT�c+;a*ID�R4dZƀx����Qz4�#%�O5�
8�\������cܼ�yi�g-3��X&zI�Ƭ(i��/�
���ˊ��P
�>���Ux�h��O�:��LҦ�,xI
y�$�x���[:\��"�d���-K�{�
;2#���i��،#;�b�J.^0Ԗ�Y9���g-���Umu��0*�`�Xp`%
کe�!|򺡶�|���校�'���a\�� *l�8-�E�y5As
+R�������lI�3�ׇK���`��D�>�BTЌ��1?P�p`�d]�Cc��
ۉŻF�E�i���>�,_R0��b|Ҕ�;?����{O�AN1!jR�A�I;�FE
�32j��0O�jho�4�*��E_i�{Zd��H#�l������]̙�’�K�����C{c���ac��h ����N}w�E�
�w��Tu�M
�zCK�,k����X�:�2`��g���i%�rt�hg��5%4�܁):�����ʩ~������x��p�׬��D�/�*���E~���xM
Y� "N
4̷9u���w�=_��a /��oDg�3K��M3H�jJ�CJ�:�ol����Eo�8�����s��
ج;��&B�Mُ���-�t^�����p�d>��g����P���ڦ��8G����)&��B��t��cE^�e�#홣#�k���d� ;_l�N�Q�3T�֛�Ͱ8[��EIn��(��K
+�|>��|�$U�=ˬ�
�c�4��u3��p�3x8�9|8��ߙ`1׌�i:jRA�^�,�:;L�����
zh�՜MPp�v�؄��q_W8Ë��v�D �3�Q1ϔ���{*r榬&vW�K]�F/J��3�
+?-=�ၺ
���E�)p)�ܪ��!Lډ�{l��X,�7��|�������	V�1
hC��fI��`KY�qW���7�����u
�xE	��sB�&�ЂN]W�,��?�{�(C�,)0q����c+�x�H)�����e>ӽ��%�/;z|�T��h�ْ
;#���T�c6�����w绲��x���$����.B�v���~l¦�&~QP�)�=ң�t�X���s�!�
seGM��6�Pw<B�oj�GVxO�M�U�cL��1ae��6���
�����-Yi豱"�� ��J�:Q9��s����cK}��X�e�E�䨘ue�߮	�?�����\JD��
{`���ʿ8���'8�{hȾ��˱	���l]����a�w�T�
+�|4B,;w�a;zl֖
+uh����_�yF
����Í�ñ��=+�oĂ�Օa�ZD̺�:fτN��#��հ�E)��Zs4�Ya������,hmuԞ��}����
��W�(���:
+з�
%2fO	��S�b���+2xؖ��g$����
��ovR��02q�;���0��Bo��Ea�����ߦ)�u
"�5P�|h&�� �Ν�9g0�*m׌θ���m����E�L��:��a�&T鹃��:���
*����NK`�f&�t���W��d��i�QG۵�k��5�����}+�d�BA�H���F��Ls��b6���qM\�i�b���:�_�L���,`KY
��A=[*��h(9��4̒�!R����5�W�a���͒�����2�O��,����|�f��[p� ,��ACF�cn�YQW'�S
n
"����
,xu �~U���PWvb�ȝ,
��/
+�� �T�ub%���(��_W��eQƋ-U����&�Ќ��7��6�{:���U�
+D�KX�	���#���':s���<
<��
X�51<lG�w4����®
"C�Pb®�7�=�5&�X�������~X̝c=�dOM�ڔU���r�;9	�VV�Ѧ����w���eiu�pΛC�a{:dܺ��os��gUZ*c$=����Є�ǚ���D�LO�۱����=����3*�Č�?�cr.f8����:��ct�w'���N*�ߌ�at���&gAT�q�W�v]J)�S�
O���ݡb�5q���#㩫���/هc�!V�9Q����\�m��t��I��VF�i ���\�M%"b{���:��(��[��:��K�͸�eIA�\_��to޳)
���)2jUU��{o
�X19gl��c����R'6xN�ﱩ��~u44��	�[
+x��@�Ϧ
⵭�
=�V
�	ŋ����&d"�f+Zx�/�kc�(lY �ڑ�Y�+���^���&��F�
ۑ���
5$�%�x���Gvl�
Z��|>�Ĕ�G�>]K߷���˃���=v4��vF��d
��4q>�)>�i�
Nu�Ͷ������m�����/~�T�� 
#
Mа�* 3���C��؄�q��.	8l[]�3֕q�=�ɂ��g[A�\DE/��>�))9k2LԆ
XWIɇ�AX�dO�[K#��B<��Ȅ��`�ztҡ�&}K�H�n������Y�b���پ�gfr��0.gM����}c��g#=������V"�,(��Ro���ǰ�����#KEĚ
�~�=��tK��e!<hJ����*{�%E�/���W�Qk���5I��
�b���kSJH����-�rYTs�D�|�l�|�*�����7��(MS�+<���Eλ9ޖ~o�5���}m���`M�|:���t����%��|�P6���`��P��
f&�)����W๧E�o ��6X
�*E�m*�U;jT���������
7�����'���Q������N1H�N
+b�\���V��a�/��d'�Ɇ���%@D���<]�<�(x;RMC
�h�w.A�g;�沸<�p�\�$�@Z�(,�����)���}
x"Bᴨ�ONM����f��Ra��%.�v��?ِ�?�
~84��|u�K-����=y!;��S2���#Ku²8㕫7��,���(<��	�g�?92c��=�`�{�R�����8�-�]R���"�Q�+������L���Pq��7��~VR�
52ક
uu�

�
� {����O��Z`4
�k�O�5�; �Nt$<Xf�<��"�G��e92f��D
X9g㌺�����
�WoJ�!+�4gkܝ�.6�
�7voH�'#���	t��
UphAf}wb��#��EA��in��;}13�d�B��2�щs�O���]#&uG���V���~
i�������*�$O�TyO�>i=�4��;;K<\d��
�,D��X��g{Kޯ���ۊ�`�0��'��xK��E���
��Ĭ�W���vT��
5"bKQ국�w���.����oُv�$�\_ɧE!�kU��QW�
@>,��u	�bb�
^U����jRֶ
+����X�RoikB�X��O��"r����7���|�S
���:8Iw̬�k:J�5[cދ�!*��h=u{����$�������s=)wCR���_���/ۛR� ��
�6%�ؒWx��!-z?Rwo���aMZ�;��w��*�9��wn*�Y
����2`��4�܌H9
._��?9�y
<x���ʰ�;X̳�
+
���� �����������U�q��W?ӼNG	�Mue�
u��6��iU诫�)�̹��H��ߦz!������:uM��f�3��������Hs��u6EE�~`m)�xnm�����{*���7�
����
]M���,����F[3^���NG�7X������.oO�� E�;��d/H��Lu�>Z�{��+�W%{�Uq+C�>"�:+��'���w��9s��������}�Q����* ��glj�C,��w&�Ӽ�o�D�6�+���ŜBG[�s[C�㯓d�)�g�n����t�l�F�g�Q�����IҞ���������� [...]
+z�,�F/�3������gƺ�{&f��ɖ�+2L���൭!�����&FG��_uUa at ml�J} �};њuoK�

.yC^0ō�5������D]�-�o�'�e��Ȱ�ƚK|����!��O�W����h{���$ޘ�C?)j3���OD����FF�mg{�;�� >�JOi�������z�
~��W轥��ّ#�w��
+x��$�{	h��y*L�K{���
^�%(�\��{�!)��--�db�\���\��B�s�+�qW��6Qsw_U�݆�;1
���/�z�=�4�E��(*"��E>N�3''�ղ��q|�wG}ݶ�&mY
+�_`"7E��{�<�Ua��y^��d����T��aV�����]�L\�Tg����q��.pk�}3֖��ޞ�zG�/���d����f{�����q
��ve<^_�O��kI8�
�>63P��ܧZ�m �?=�*�
+^Un�����V��\�!7՘d	.�+��^q�e56�
��i
$pI��l�
�O�����N����Ξo
5ꁑ
w�LO�e�'�:2!�� ��5�o�����!B���|G�4>9�O[c�U#=�ME~ؿ�I�M-2��L*��-�0�������Z�/�0?�і�r�'�������6h�7�}[S
y>��9kn��
��d�
+x��U�oA^�w8J�~�i
8������]-4��P�����<M��1<���� �c�?
�u{l���
#c��u������iN{}��K*\��������Ћ��/c]Y��a��P!��Y�g��?�$���{X��['�Z�.P�K���c��gF֗��֔[NN�ݩ���jk�3/�r	J?Ls2�ʹ�<^�zn+��]ϔ���f�!��C�
[S�����
+J�Cvq�uQu���.�ς
.��>���
-��F88Р��e~?IP��(1ῌ�2�9{�����k�Р�;j|�	�1�0�{��9�3�Nw�=X���V��vC��e��lo.�<�DG��R�xYOG�bowC>��1- ��]����nP�s
��
aΫ=������D���G�]�ȴ�2h9�JqO����}:�@S�?T
�%���U��3㙩%�a{U�SIM��@W ��
�S�&l΁�;�[�&�^�B'�)	�1N񇱦���6���>��tW��S@�������Z�82��D�'穣%閳%.菉���K��YQ"�
+���
+	��<Pub�f8=ޖ��Ċ{1�
�
�oOO�XSbS�I75��m����J�q��d�����_��C

��K]��@%�zm���fS\�9Pⳮ(
h*
�6T��m�#��++牙��~�3/x��-��=�,��,	�$G���  &��C�/����L6�<kHy�`�>�Q�}��
_� �F(�)�WT�	�z�E&��8���V��*��Җ�
�׀�^`�
��kCe!�L���oNLі��K
X'����v?��J��5{zL
+��GY,ښ��{4'6&��H��u��@��Lo�ǂ����c`B���eEu�tOɇ	�}E
+
�|��<t���l�������y᭗0?Kc�]Kc��!�{W�I>7ӫ���}S��9aů��b�ͼ1���2���>��"���l���X�W��i�y:zꝋ9E�Z2h��x�w�uA^�w=_��#��s�QA�6L�pC���S�a���D�ϋ�	#
e�z+��Z�D�
���Bv����J�>�}���r����J�-5�|J�Hh����m��>ݕ�z��n��*d~# � XwgO�J
m���h��6�M}�l
+��*H}��(�;��m�
+�Vh�53��GS��0<q�+��T[���^�9^ѻ���Oږ�E��.�~y��6��Z���+	^�K{3�
�ƃ��<L
�c]U�\}������G�}��P��y0��i�
�)�}�q�9��\<�/���~�
B��9sW�L�3 ��:	s�
+���誈�7����L�C�V��1K��*��E���Z���
�s��$�
²�E>�dT��.垂
}c�'���Ž
:��	y1�S�yS�LY�yLs�L�d>���>Y���
� �o%A���W�t��EN��Q���GnJr�M�����Hz��F�l��YõEO���kK|X���ڳ
+l[U=Ǝ~eo��u�>�J�"�Fid���r���Þ���
	���2�L����'?
팼�����2l
i�Fj�G�5�c���	5_�5�5���g�#�䕁��U	2x[�M<�QJ��0�����-%�q�R�c2�Ԅ��֐���؈c�:���l/|6�S� �i��mgE���B���ӝ%�\=P�3�l_��ߒÃ7������K�%^�B�Ǻ�:z�H�X�y�-���NN��%A��
"l_N��U Ӝ��o
��gLƮ
��:��,�
+
�B>Z[���t�}>�2��JR�T�{M�P:?H�t
 �\�R��֌����w� ?��1'6bᚬ�gMR
z�o����Ҧ8�W溌JB�
5������65`�D�X=#���
�p��c.wKWbi�y4� =6��>Z
B%l����r������Y_��*'�I�
+�>D��3'�|�&���5��]���y�+��ǖ�}:�

0��}�6�x�R�0�@ -�����,I2_��y~�����?
h*"f�*Z�
��->��3�)���
̶ǿt��-��=�4U��w����ں
�#3zf����ãG9)�%5�Q����^X[ ��MEo
+"_^�D{�[`Is]�/&����Gc�i��{�_�krD�
�T��n��l���6r��`��
/��D[�����g����s��/���m��W�U��C-1�X���R��.s�6�G���#2��]
l�m:��Rb�L�6^S�m�T��@�Y�
<���[jB�&~IY
2+(�"����/��U����s�5;X%�D�[U�g�g����[W�����w$yl(
���a�NaI at i��i`�������a�5V�yd��M
��'����
:RC� ��Ӧ��?L�)�A�n�K�O��mUy�TOʳپ
��ނW��ļ�!l�
��sU\��?����
��
 k�]�
ZR��nH�7{#sG��ٔW�V��
��[Jt��0.wWO̾���h=^��b��������3
y�ǚ�Sî�+�51��i�9+Rl�lo�dzq:�p�P�o����VF
a	���ڔ#�vTL���	^@E��PˏL����x���tCQ�,��,��Q!c��d
2��Ō��!\��`��� ����Z�h�Ѯ��2t���&B����
\Æ7'(
��|��*�>0]|�H.X�ݮ�9�3qy�cܲ)%�o��$���?�T��Q\���� .�ZՐKf���~d��]�NAL�w�{4�y`����"+�>�Sg�􋬢Y>���
{C���mc ��_Nd���ɘIA�g��=�
T�1��d-��$r`.�Z
�}����8�ѐ;��J5=�٦�3�/�1`r-`/�c�mɞƦ�Wn���Q�t�=ۓ�$(�;���&Jپ�Z�7 [...]
+nYR8ۛ��h[v�`0�fX��1
+jAK���\x�ʈ##<ཤ�ފ�K�2�ɮ�[�論�϶��N�eQ�׉�V�?B�Z���
��EQ��&��
<G[co����41}U�u���q�7�ǧj	����}6��B.�T��'�!o&�ro(��
bd��)��
��=�_�g;�}'��?-��}���5)<|�����8�jKW�=�Y��|����rf&������j���؀�������f��\۪�Uii��0&cG��^�\OK�~l&�\��
N�g?\WT�/ˠ^S����-Y�NmĢ:vQ�����<��r�e����}�5��`SIm���)aU�t<h�Ȯ�7�4����Z`0NG���R�g�f]�ΜQS�����RJ��}=
�)�Iږ�������UEE��
~l��̈Q��
�~ӽU�c�%��ˆskE�?s��3l��y2�S
tbaѶ�4خ��u
+_�c��Y
y�ʓ�^�9���ED_���
+�^h�<���,��E)4p��徚��p}0����D���$�w����q:�x��8
�!vͤ�U
&���
�������(�Əs�>-˨��!F��0��ЈLZ�����j�Ӊ�P�g�W�;J>�q�
#� �濫��ˁ�
��s׵eA��rߋ��%��L����ԇ��j��3��i�|���%$?��|�d��y1!��S�5�.~�%�=�4d���$V�{�Y��
�i�'�	�]g���#��`13 Z����(��;�I���^��@��߮&��LC������� �-K�>Lv��\�<Z�X�����K���5!eWԶ�:xO
?5W�}A�_�Ԇ
�g�CO�J<fy����Og������6��
_p�
ɦ���g`��%d�%���!��� �㺪�AP�	x��e)>��
+v�4f����@ZZၚ^#�y�A�Z���t�țkȻ#+�b�_�~�3�����qR�_��YG���1�C��*j֋Y^����~{W�H8����Vrѩ��=T�,)z��L�m���}πL0)��Z�f���a��5��VRѶ�b���#�MMM�����
�
���פU��J�3#!�����7��v.����*�h�S|h����ߦ .A��	'���c�V���1ay�� <��X
yS�_�~X彜��{
�椡NƘCkɫ����
]�!������#
,~A��jE
+z`�N�>F%~4�����I��
���A�:������I/m�	
�y��5�l�4���/g���N�L��	s2B���c�e��ʈ}-*n�^OS�g��7e��(�G6j��:� V���Ԩ�ia��E���DK���>{���]-&�g6
�ߓ��#3.o�_�9��p4B�PS��y]�l�~�4P�q� K8� #�&�뗁Zq
+j�.��h�
+�3!�7ե@_�_U"�6ʹ�]KaQAΕ�@���� ���2H�=��>�����)ߵ"S�f��N��vn���	��k��8��}���X�
�3/*|�@���	���Z�
��C'��q�g�4�
�4��Tb⁞:(�G)G 

����k�J��A(��ՠ��zh��wh��o��I{&|ޱ�۱�Sw�Ua냠7K����$%���UG�V榚�`be��
=*qMU��~X�/|cmL�ga%��tݙ��ZQ`R&{J<F[A�$���x�]g[��
2���}�'�^wu���^G�6�g��kJ�ei�Ձ��;�_�?�J�uh���M0
�b�ٮ��㭩����{���c3*��L,\���U��
C=|�L)Z���
����q7�b��ĥ��|���Z�
����:�ڐu�ʊ��"�]���N�@o�m�su`&�
�'�4Ă���1閽>���wk�3�陱*��Z�����M����t8�JڒA�w��C���k�r�
]M¶�Vd�
+j+��}G�N�蟋<G��v�թ
�
�0�����i&� �+�b�--4bS�\��y�h+b�;��-1;7M�
�l]^����^]qeY�����:]Y��:M�Qf�2�%� �����
�&���=������Y�}￸wE���p��y�c\��
�Hh��{�5�7�o�5k�r&
��
��ֶ=�-�̓j3��'u<��"�:�i�jYґ��	#�lӓƿ���8�3��!��V

ԥ�qs���iJy�6��1�h7�9-�T||���������eϵ�e�Ɇ���<����%2;� Iå��\jP�%�\�`О��
3��nM3jw��M�������0n�s~�n�ݲ2�o�O���މ�7ǘ�q=ƞ5���׆F�7�NE�|�KNmڜ�Ux�^��.�;H��@ǭ��)X���(�%t$ׄ�-�
6g�����Z���P��$��p���zM�6�
���h�I�
";�d�F5�
�,�6���a���y\�kq��S�)�㪓[�����
���4�
��ޔY�rh [...]
+�G�d��~�)85�y�19!)�~c�pkm�^�Y"A-�Uݭ����o����������f.٭m����Q׽
�:Pòwg`׼�]�
O�������_0H��\
#宏b���H���䊠��t��eĴl�k
qKs���W�g?ܰ��iOVH���p���\�9�v��쫕�s\��cU���~IP���V�������8ǐ����<���4��:O����s�'{g��{r�=�)�x��W=��~^��h_�,���S�w���ߙ�u]\ם�_�6$
,B�*�~����;b���+�
!9�n�]��=)�p{v�5��OXH����ILA�,���.�"�l{����Y�7��u_����"	w��&�o��1��
��ZRL�
+͌
�c��3�[����e����Z�w}�
�������
�.��������6F�
jD��X{��A��]�U�����ѕ^��f���$�
����L^P�BRr�o	S�]��^�5���]�ӟ�������@o���;��
�# ��+^�@G�M,b���čw
*�ò��_xd��_
��5a_��fy��=%�%`0�־;��{��F
5lf"�����w���7y/�'%W����t�{��l�k���w�XW��vg��a����O�y�~�s:�`��� �x�l��嵩
6�!^�'�$�O�QD�W��}�.uc��3-h���o��嬃�
�9���vL�*7'z!k�p�w�;S���Qr��{b��i{��3�/��w_�/:G�����L�=R!�=C(4>��z��aJ�_�^���ӻ��9fվeһ��^
��~{���c���ʋړ��Ϋ1-�+�f�}�Z�x�_��wYL �'/j�uz������s+/;��s��Iv��
��f}H�A�� [...]
�0�|��ҽ5
+�J��^�ŧ�"Wǰ�A�5i�1�JFwT�F&t
,�+��s߱5Ak���]�����ii]�
M��Ĩ��}����[䨒�6��Wi�t|cF�
��ؐ���)�!#�SۣVAo�.�D�lR at I�l�#o���-���Q��W1�r��*\S�,�OM_�!_�����]\��o��ŴB�{�Q�9N��3E*ڛ�_�M�\�
k?o���3�ݜ���<�n���[V��[�m���s�i��H��YD�L�U��o�ϻ.z�p�)q7��q����?�����/�����ߝ��G�7�Fp��
��\L؜b�+�ڿU��?�
F^�S*#�̺�Ī�Yl�ނa~Kͷ��fm����9����6��	˵@�ݙ�9�[ƕ�|���j�M�ɵ����wd���ս�Q��1��;��I���13�^"Wl��rv�I�+Ä+#�[{������t͐��
+.�3G*sO�����Aw��{��|PF�
+$
�bH2�)��b����0��?GnI��m1��
+����'��%F��)��/�}
�I��m�Z
�2{BJz�}s]�#���0
���@H���M\bX��ܛŕ'-<��z�ݴ���:�+����Jy��A
���ϋ�?_����kz3e�q������iJX�7��{�@�z��kÝ��t�:�JHEzū�7LO����
�K�@�\H��v�An�`�N9��$�X�Xӂ�L��I

��5>?$#T�5�֘
+߰���L�ģ���,�����"Zh8��F���QDC��RR���+�������_6?m����
�
��''6 ��;0r�!9��'��l
��2�rg���ʣ�o��a�^9�ӧa@.p��"�C�+ӽ�gtC�S�&
}�|��:��&��
���uYVP�Z.2 �A]s��4���c�wʡ�����_J{��=�^�f�'�e���s
ӌ��iF��I���[�U�������3@�u�Ί �1A�o��D\�y��U`��K��%�*{P�ו7�ف�~�kV����q[<K�����kB̭Iޭ���O����,��|�>��$��
�uO��
o�φ�%��_i����;�.�ȸ���=����9Q9
+0�4��
��+���������s�1�D���\s���鮫19�*���j&4���[������}
�[}jz�s�X�["V��H�%�+��<��2�<��5�l������W7���,J*�{����
Z��&��ub
�v�0��W�'�d�k}c�M�ף�
�_��=����-�@�������2i�}h�3�k�ZY��	S�q�I���
�bc����R+��
�#��W9'Zϯ�)�ԳH,�C�u��{�^����+
���>�;�a#w�Q�ed�{�\�S�{2�Ը��!�3!�eRUBCjI���9f���qzu�6�ts�Xky�y����eDž��ڑ�F쐉0�	N�e�ߴ=�O]����
�\�?�d�~l��5�
˰տl ����h�2�+j�
����R�=���5�
PS��v�����˭YZ��1���
�'�"���m��3
�����/I�׶���]U���@:������]�o�<�FK{*=�
7Ǜ���L��q\�t�'�[�g����휾�Y��r&���
+>³��v/07FI��ô�����#�F�\/¯�%z�
�(��'�����[�������縫N0�!7��F5z��r�󼳜F�>w�=$ã.�Mw��I��!uf
9=�yv��{x��ۖ��ta@��Y}�8�&�v<6=�\v��nh���Q���hM����IR��p�ƇU��1��Y\QTJmLj���c�,�"0O�M�t��{�	):?�"V��Ƹ��=#�dC��8�!�@P���
15昅\t/��;��@�$�
��2�6���
�9`�qŁT�s��bp� �7
U�9���+#���ӌ�L-�,���s�\���qȕ���H�E�}���N��["��\l�/�w���<���c5���Ӗ筧w owI�0�x�YbmPb��@
X����A�C�]ӝ��*Rc��?���Ĝ�.áᷝS��m,BT���eL؞�ݱ>Eo�����~� �1Z]3�B�<� �e���
����y|qD�y��O
�*
��WLOK�jy�y*���+�BVo�N�g����� [...]
+9�
�\�<�����!��U��w{_���\�"���
R�qƟ�
6G� w�H�I=`L^� �㶁�+[y���X`7;�ݻ�bT@#�z�"�[ƃnM�7FQ�W@
o��nmO�J7F���y	:��e�:�ߓ�� .�9&Ʌ�)^�k���bT8�H�	�尖\�WQvg����礢�?,
��y�u�!��Ife&��JnO&g�Zz[BM��-��7��.��D��'����
�_�+9���2� �����o�O�F;θ�ףzܳD,ݛ��̎��ѕ��}�
3�
��k�D�w��L�����q��S�
bz|�;}`e"�
+R�{��Вc::��+�%D�wz#�f#�a
���8�(��p ���S�1;R!f�=�kveg��"ȓ��"�1��cF�
��m�yJY�(�2�`�!W_����̌(�_�&��򐫳�F�;JqX=�7���4Զ�
S�:�vvy��/���+q#�'�"ubXǧ�l��s��]B��/�
w�;/n��\i�����AX'by9
���)���3;CRR�W�6�z.s���,H��B����-�c�����K�f9i�2���Z�x��,������� ȑ�^̍Z���N�6N�j��p�g�`����{1K�`8��JFkٞ��K���}��7a{8�
��o�X����>ؓS[*jS at E���(�a�'��=��S�K\���0n`"R6.9acaÀo��F@�� M��9��
a�s_�~���w���u��}��k	
^��Frˇ
�H�Rª?�[�Ӗ�w�~�?�X܀�R��W�s|r�V�_��a��ĘQHۓ� �K�v��sg�]���R�=E.�]d6��o���>瘀^�\��D���.�{|�>�_!�
@��[2�_#.½��؜�ܰ��������)�)÷� �j� �
3�Xa����R��|Kh���
��%V�O�j��� �ayV���p��њ/��u?��E�EF�W���,2*>��p�}�I�d����U�<�g
SU
ȉ�����F7f��Q�䘃\w̶�
+�� �0��c �:N�u��YV����񎨚�\��
蚰]�9�u~�c��̚擽�_������{}K���%X
Йy���l���/�ㆁ��ib1���2�'ev�9i:�3
��S��v�E�L�`�<jt)�٪��PQS��qY�,R@��ٜ���&�����G	�h�a�+(#T��֨��}`�s@�U�~j������s�
���o#��σRTyX�k
,�*�FׁI@�i�8���ɼ�%���/��aJ�z66nI7_
n��:���>

�饰�d�}jl��
���
��
��q��}��F
�w�
���
��%�> :|�\���+J����Dz�
��Ԯ�����o��a
�搳{V&�E{Rr��w�����SXς�u<\z��;�
�����ەa
+7g����
T�r�I���t�'#6�.�Jw��Du<��'�ف��^����w_Ȱeq-�;�c#�jz{
+���&�d�"��
"�=%��v&I�e>$ �g3�3}
�E�
���j�b�}ӷ~)��#%������Q@;\|v�"�8����b�1 맺�	
��[f�����ej5��r�
�<����-}`,E,���鑋I~��poI �]�V�.�ֆ�
S�
�2��W��rn{~ŷL� ���1I,�A]���>
X W%M���V�p.P*
3�b��� y�1E)���_���d�����=)��
+N�W�jq/Q����
+��Z�:���^���
r��B�_�~�o��=
��1��+���Z�g5_㳢�)�{c������s��_߭l���ؔf�AL�A�x� ��)�3J
�`�9�Q;�:j�C�_�i�X���{s������)+��Y��l��5�qn�}�%�"�"jMH-d��tX\'��W��P�{
Ȝ�א��U�f�q~o�T�
���Ī>�Տ^S+���=�&���
:/
���$6m�
ֳq�n��%�r�&�$�����G޷P1��=�|f{��dj���<���[N#�|`��\�+��&*t�u�w������b�C��] ޼`";nrb!��?��}I#��9�q&x����?b�w�����<�e�v�2�;�7�$�V^5�Z^4�-�"��W���'l"�9`7�@��LL
�$��Fg{�X�S�16�F�v.7��w9��[S�ۻK������������d���UQ5
h2dND�)���<�e��5���eB�s
+W�y��#C9�;.������
�Jy�{�Z�,2��������zb}�Bj=�;�\ˇU%e���De�n�2��5G,�,s�=K�p���U��X��/�ϻg��-�3l`#C�A����{΅~�� �[�\��w��G���_�~�_b4 ^j
�ig�Ӭ{���~��5���#RJ�o�Ҳ5�/q~���6�ޜg�o�
��1z}\� 9b�ֹ=���[ftxUBl�,�s,�ZV'p7��)�_��"��䚘��xOW`�� �R�Ȯy���i�[c�k�̽�EBqXł��Rk��q7�r.$��"��������7��
�+!*�&<fb�A
i�������w��f\C�,3[
c�ܴ�G>�x0�s�㰋�
�������%I[�
��Ң�<!�S�5�ͮ�L at Xy=�3E(��ޛg�&���B��kD�����F��k/!%`n�,/��B��TlxB�ǧL
ܡ��9\�v���kä����x�6ǟ�ޯ�uL̾��5�n@�A�)h�a�ೄe�~R˂�T���Y�=ғ�7Ko��$�u�k�D-��
+��� 9a
�,��׸a���
Q���w݉Z٘���˘����a+�?5�[{Yn�t��;����EŅ_��a
�>��h(i�1ҫ������[�4�7�`|����
�<mp���ݜ�)���6�


Y&��~�(G�;ɮ����|LLKmK�ma�d{���g	�� .a�#z���0�=2�m�|���'i��'���/z��5K��.�k�,TD�*�.���[�x j؇U
=�$��=K�R�
�_��p/�:0G���
p�[b�[�w�ߝBDu����
iYH�� �R>ԫ�21�5ɪ�z�ϑ��}�k9X•�g��{2n�ֲ�:%�ڞ�v�d,�{�o{�ujmz	|ܯ�v��;��F��.��W�
�������A��4|�'�F�BR�&�93����^m� ���f�+vN�om�m=	tƹ���	b��5Ǩ
�ED�
�."�5��pe;#�����1LvP��*E���
endstream
endobj
44 0 obj
<</Length 65536>>stream
+�Sǩ�w�BrliX�)
+Ȑ�����Y|�W��
jz�s���o|
�r��qo
+w���a����Oݙ�V�a@?t?h
z4�r]
�R�����-���!�?b�o�3k=�"�g[
Uc꽋�"���o�y
��~ly�q}g�R�4T�1��e!
�����eA�ί&�{�����
6J$�9J�c_�\�&�"ADϣ��TdXIl
*�
Q
��ߟL�

��������+�������y
ȱ5�Ý�|*jG�ʣ;�;���ʀ�ڙ1��!��������M
��)��N`��`���yV�?k�K���Szf�M}���J��S�`�O͆�o��2r	�yR��(��E÷��݅~�
�Ж����+��>ҙ�^�Rzj����R\���+�,l���]�� +p!��~�>�&�+���@˳`�Ә[�9L��,���H�K�y��
ʇ&:n�����*��!����Z>$e��5,HXAo�j����	*�a
��+��9b5ET|tp(��ӹ:���y���o�\�2p0^��qu/#���I�
kQA�vF�zZ�2!
hzUH΃�����_n~Z�����w:�=�"�_�G)�Đ�O	� o6�a
�zo��Z6f`���C�ú{Ov����x0P�P�����P�7F/��,9��
�I�>��[�Ef�;�Z8�,��?K��͢o����N�F"RH5t�5E)s�����i}��%��%Q%�)� �����;��i����չ;
�ayV���i��!9��
=��{���'�b��>
���X�V�� CZ
>�zw��}���4
�l��\�_㧤w��i�[��"���b֮�k��1����(�����9�i
,��CRl{�Rb}��
+)L؝qH�s��S�&,����Mw
�t}�]�'��b$6�M��w�����Ҕ�����
��IZ$1��~`|z�/��@�l�+~������d�Τ��?eﻓ\�2R+Ocf/j��6%j`���t��ݥ��I'�i�m�$:gw��Qq�?������
7 k����0)o�-9?���ܣa� 7����=i+W���X�7�������nO��BjZW�?���w
��G���c���%&*d��@��5��P�r��,�
ZDܤ��w��
+�G���|����hϕ�
]}`ec�"��H�����u����FP�ɋ*i�	-
�
հ�b@��|J�,�D����S�W2�|r:��g{��!��0~��~�)�b�ŴlX�  A�^T=˾�φ���hH �������Y�{���^��$�����+8W�$&'�D�����s(	��5s� �ڂJZsĀ���[���O9'�NE�H�Dq��{RJ��u��V�՟ޛ��&
�.�'[@m-��������V��9=��
?�<��6�"Ԧ
,DDI�vL#J��������}d�����-
�2�/���)rQ
耨ԭI�q�1�S
.����2r��h����o<s��q=
7�{�
HJ.<
�̷��
ĕ���_�,
��@+���i5c_����0.gY����I�ߢr�ͤ�شo㳃j~w�^㗋�^� ӧ`�Lc�O�>7<�����S�˭)s�@�$d�V�܄��#��7x̤�wN���r>2j���x�����̚h������x�p��p����OZ�O�� �$��ѽ��G���(������+B�/۽@
� K�Jf��P5��
�p�ꀌܐ�0��+,R�B鉨
[�ݧ��ѷ?�����Ց��ko����I@�&�C���!7���U���
|╘y�d�V��
�B
�jBK�h�Ĩ��ؙF^�*��!
�7�e{Q���Q��`���
W�bJ����
\܁�W�6K�~����;���?)����c��V�êHt�&&L,D��嘜���k��ݗ
�
vF!=��°�����gX�S&
>�ͼ�yɳL* n�2��I���2����*��;�L��(�5!9��+c4oL�
V�v^ߝ@%��n�l�U����
�^�
�.����eԯ���
+�˃����׭���o��?�0p�	�d0b�sϧS��آͩ�˾%t�w�㙃��[@�̠���"�O�ˊ{y)���y�q�mw���pp簊r�X�Z��z�iuI
��QZ}˨|ˏ��Z�U홇ތ�(�~��^�nO��mo���'���ql��I��JI�׺����s�
\L@�l���>oy^s2"�����:��jo�T�2;�21.��{'��"�s�\���s��n�}����C
PQ��~�pͰ
c�����޹�K1=�vT�����(�����膁�QHw.q`��I�q�-�
<s�/sͪԣĕ�W���J����O�=q3�R�>)�ͻ@�u�a
}
+ti��&�<O�=�qHi�>�1�c��:&�=�*4=k��yTsngS�Wܻ�pM�0%+#=7>l
�	j��L�}
�%:D=�v�Q�7��4K�
+|�{����^����ܴ��~����ɡ��y�U���k�/2k�$�����ƀ�X���@����g^���i|�5*�7f{n�}�$����m��e
๬έ	B��^��ko!��������2Q�R�Af�Y1
�;��RF�ȯatZ�QW
/�M/ZO����e�I8Xa��ml\T���7޹�P��1��=�qv�U�I�0�Jp�PU`��
����9Ȅ�GL �R�+<K��1-�*i����% ��x���oG`��Nm�t�qY�K[T�EE�
X���{
Y
��6Њ��Y���h��yv[X�Gͼ�fy�񭬷����+�s�w�� 0�`E2�
��M��\K춐ZH�~�H�s����T�y�<,/j��(b��U�Q
��^��wguQ%VP�vg{.�-���d��8Ƚ����b
|�ؒ�	x^TAn�\��/B�ݠF��X��9n��4�a�
��1�os���ϱ
?^�r&�#ԥM
�_N�t�c���u���
+�"���p�i��Zd�֐z'�
�)���I|��;D��pϭ�_
W������Lg��E�
+�Y��Qs���<��:lz��ٷ0�A��'��FutHH�Ä
���-�I�7���+���Q
�9e��R6>���� Lݞ�ߌ�l��ٽ3���E�
-jf2�-��:�ϯeR

+RMf�G�� o{��A.�6�_�ȋ( oR	y��B݋�S�S芃͇ҐFH�E�o�i;�m;
4Se��!
n�?K�y쭩�K�lEPæ�ML�gz�#�m��tI�Wwy�v�h#aH����};O���Iq�!����L���Ay�\�WFkܛ��\�r�����r7��~55�

+���#����_ˣ��&u|\BCo/�K��
�+��ֳ�I
�Q�k�rvo��)�+xN�ܓ����l4X��%��RzKXF��ʘ�q)Z Vo���N-��'�'BrBU��%�[�$q

�=�}�����\빸W�o`@�&
.�bw�3��<	��	,"n�g at L��
<��
+���7��@#3�:.2 �Ԯ����.Jz.6��t�;����n����g���

��3
ٞeµ�m��%ܨf@�=è
����y�.3��!^��kЕ��,�4�{�=�]������x���ɍ)
���I��"��	�	=�p���F�p�w��(�
�Ed�L�ݙbT���j7�sZK���"�P}��';�
�v��YA�-����NK|󌎨���ʹȍW��S���D%߬�om�T
�sW`z��MX��H��i

z`e����G�߬�FgG
"n�*`��tHX�� c�^�f�q�~ u2i�t/1[�F	�@��RtAD+�.u�P����1�}ͯ 5ԔN���^%��#��u�昖�	tiGD�����7�	kCoA
��JI��
���ˈ*�
�G-��^ԞX}Y��O�*�y��чM�Ӡ�
q͐*�<6�t����]DT8�[�]3�\��Ԑ��%�+�"�������������N�뾒БZ�&62l�c
-�4�a����*�
���`�?��;<2r��1׻��h��}��Ӥ���L�] y�)����bf.�:��3�5}촒�<��cG\�-�ꐷ
�]g��>y���EZ�OF���������a��L����iص�a؅�"�9�̃��I��%t��E��rq��[/�N��uh�� ��E��<XH�hK(MaE祠��vӷL�
*h���
+�ag��b��w�:N�f3��q �xi3
�ks�"d�L|jD�����n�u٧������^tP6����P��.P�br.&�
 Z	랆]���
+}˜���;?
�J
$A
�
�Id���)
Z&ոƁ�[ V��*��i
i�og�Bjz[P��HꁮV�+�߷~Sbk~��
+jmg
���8�y�mk���=���I{�3���1\�g�T�7�/�`a����
�8� ���&,����~��>[&i�b�]�1����>N��+����\��MwV$s�h��i���3[c�g�S���Ar'fy&��l��\������\��������c��r�n���� V���	�
)�ʯ ���|��Z5���� 6o����Z!��mo!g#��[��_V� /����*
����t�"��g�+�` /��q
��Lj��U�?6iظ
^b����DVP�%4<����Ro٧c�k����r!�a�~�J~��cz$��@��%
��X@����}�M߭�B���_6x��-A�G�����~3q��·�_��o�\����{���cG��%9�.�e����p���V>�����[�е�o�-��%���8�����n�k8�}-
�o`������
W�У
+bjdn�Hmۚ��8&8-~ٽ޴U�����%V�
^U�5�
�z�	%iM/�>�ɛ~We�
+�.��j<�/m&�'
�
+�:ǷH����:����
��������#fW����u��|}wsg�T�����?7����7�۞.�
�\ևU�0e�S}K���7�'
cM'cRZÁVDM��
����
�i�У�m�aH�F:��Om�4��-`n'ub�]r?��c.��z��
+.boo�n<)�\��x��^�a�
��������5
�ma�"�Ł֎k���]&�Y�1<,�2�c��s�j�c~�
m���
�&��Cc/��Y��Ȉ�۳�쐚�K�ĸ��R�k6ǺNm���<��k-4����̵u�k!�+���$u �u�ڰ�
+x?���,�
XD�8���Ebi@Ɂ��<܁U�O���
̞�T�y�%��:�Z�7����˭���)

�aCܟ^��[��h�~�������k��k�{a��\��
��FT#��
w��v\�܌���A���P�_��X���v#���g�{u�R���t�5?(H��&��
��/�&����*�Ђy)�Hp�>���(��4��ϻ3�V�U������g;����vLt�w� �D at -sE�
��ld� �D��D⿯�z�@ÅT�Ӌ����ѐ��éU>;s=$0O����/��'�66)�g��񨱿B��Ji-����j��+�t��>w��^��-����������Wv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r��ؑ�fǎ
5;v�ٱ#G͎
9jv��Q�cG��
;r�
�����N�ob�;y���.A�uT|t���
��	�bc��}tv���.!�������t����0�S���	�щz&G��_6�d��������K'�N\����G�o\�κ�u-����K�nܼz�ƥ�/\�t3;�� [...]
+11��sY�~
�2��,€���)��b	�K at a�k;�Ot�}ԝ�;3�����ë��ٗ.d_?�s��Y��gF���G��k���y��Up
+Y7~=�'2�^����_O29'n\�|9�����
R��cZ9��Rv�w����:�ZZg�Bn�i0�A)�<��4��̞�I@(]�\�w�T�[��EU\dB+ �4"jX�C�U��L��̺��En�s�Z�1�-uMbK�K���2�4�$T�d�[q
����>�ѯ�z�y=�9j��,:�?��!��
Y�VǤ|XR+f��'W9&�

��+E�.��;&�.���ꄉ��b��*Js��F'�BzTMk
��5A9��9�ʎ��
,}}I=Q�z�5i�"z6½H,ٞ�fyf��yZ]\-���<xpI�wO�1� �?�C]v�u|���K�Tϵ��њP
+�I���3����cr�1
+������<"�ИT	�A�!$g��4<l��ˍ�$�~e�+�%���<�0����AFuԎ��C |R�AE��搜TR0�|2ZmX�h��(-�S-g
3
��:R㾞G8��i��
s������Z1;f��x�j�_c��p�)��1��2R�}��bL�Ä4l�OInH��k�GI+�����q�4�Pa5�"���ŵ�ꘆX���g��&6*f�C#F4�&Ն4�Ƅ���ꩭI#��6���z�"i���.٣ T�eز��	K���C+�����p���^I��'�k�D����f����{�~k1�)�w)S�`� b%�\B���fzYG������H���'$�5Ŵ<B�|�q�"d�W����ށ�������1#�9��U��R�"�N�����$�
��3=�1��qL�g�\7�����cV:n�4G�����ܚ����+iM�9l�c�P2r1�3�|��1�1�3�:6"(Ǖd���Y�b�F��1���O�o	v=���Jh0�q5�$��4��&��
�$����pO�r��AN�'��K����\�R�a5�{���w�g�� QQ-�[���W��=��}L��L���NH���^D��sJ�E��^@�f�L��U)#�42�i��{�*��lC���_f��5
X
ğw��=�x��S÷Ҿ�O�"bD&�y�Żc��/���
i;�b��rBe at I���[�G�P�W�e6"e1��𛫯�?�~_�M\�-�+q%	�5	��
3�p�L_�_{��	�{)
�5� h镁�ɝ�䳚��ћ�RzsJ��Jh
i�#��6Gd���VĈkIMQ�2m���bRf>9iP�&1'i��E
�����������
-j�S� �3��С+S��'�W�vɓ�z���]ܛ^�����IYE���	M��
Q-�(m�֤m��
��S�
2}�bF
>
+0'����M䦴�Ԓ�P��j\�{~3��`��^X���98��X�'���(1�Q-{�:�
� ��!f��OZ��,w_�<bXO�
i�5A=
���e�r�`
�)�d a��&!}��D�c��L��Ą�GL�h
1Y��96J�"!3�,�*�51��]\
�gv;�T�ʕ�Μ!���M��O��?�=
��L�ꍗ]'���ʴE�Hمܸ��L��0w����o�F6jw�T�;O)�90��޽0T��c�X���2LA
�sg��;�d���H��:
�5Oc 0EG��7�:�j\�g	��=�sno�Xԉ��yr��[�y�(�v`���Rk�
+BEpW�F^W=l�lg�R�P>%��=�suo��jD��NYhИ���{���΃���/�S�Z6$�#7�[A}4�Aݡ�E��������$�����.�;c*!6�bu�g{.Y�����Ϧ�m߆f�8�"�kw�\�7A�� �Ǥ�r�t�9���/�F:�j�5������a���9t�����yDQJG�IiQ	=�>ӫ�
��%ԁ����*
�����y���8�XY���Y=q-v`2~1�I��C+�:mA����/E�)��_���/�s�-<��H���ޡ��O��ب^̊ ����Q��
?�V�����Z߽�j�`�&d�m\�S�/���r�Az��>��=����.y��
>�GK�-A<'���Ft����W	����9�����	MY��	�*e����pL���Ѻ�M�ߤ,��:.&�bt�������j9��7a�R� �և���{������G��	u)3�q��J���[��$Ty�
�2�
+������l1IQ�=�eC�M��C�2�3�����R��1�Xj
̯"�E����Вj]
�
ˋ��v��JӖ��{3��1�5�<� m�w��䖴�I�])���4�K�^VT'$���θ�
M�,�CF��?l��;�l�k�R�zR}@�.Ih(
�L�:'�cBv�q��� n|
�����UP��LOaRCL�B��b��6����[����0����0�Lk�-�=3�\�<�$��5E���4�5N�98�0n�CJ�혞ܘ0P[^C�f�!%�"��pA�X��#:Li@��	�p%
�.�=�f��e�v�"��;OyI���#o�'��y�P�c2f�s���f����IJq`�U�5����a�W~��""g���"f�(�82=�<�e��>����5V��c���22�+#U�4�^;
tD��J���Y,8������N��������	=�o���X
I��VLE���.�}
jGU���,��{���k"�� V" ��&$���Z>jhDGm������
����X�+� /���ltXb��g
��$��Az��N��9\z���J2=�
+bՁ�K9�sv�`�CMY�T�*��6ezM��|꾑OI�i�1-�8e���z�W���~N��ߛ6
虾K=�/lb�D�l���izM H^t�9�*�F����0�-1#�y�������|��,�$m����~��<f�*� $
�Ƙ����l���9l~��%
�<K���&m����S�;/`l�c=g|���)-���"`��%�|��*��U���_��sR:r#���1
��##��.��}��^�ZD�*�-�Ȼ����x��MA
���/��j�k��
Ĥ��
���!�j|yHE��먭{K���dVD�E|0
$3}�5��_P��wg	��Yb�}~�
?��Ij��y1:*a�K���2:��}k����p�I�"�
�=
+���9	0&���
+��/���r����ѱ�.9�kw[��H�
�6&�[�O��
HQ��2L�����`ٟ�O��&ս̰��잃fm�|������7�_�����3�~Bֿ�?&�
�$�$����X4A�_�+ۓ�}�7Io�׹�}?_��ݽ��m�iҤ�5i�=$�;
����
!�(	$ww�qH�~���V���q�af���������KI�� {x��BD[6.�
sp�
2���XGt�߅��u0v����	Y������U
��J7�pw7���u���s�Ҡ��{����$0�
+/bdEL\l�*bŬ2q�T���Y�u�a`ԩGG�r�h9
u�iQ���pG�
�E��U*ܝ��>�Kkwg��Ĝ�s@�Z A-GMu�Qsc{��:wԴ&�Ģ�,��1�����Q@
����5= Y���0�@��A�I	�iy;J҃�I��h8�
%5=b�c��gqgm�\��IMl�C	:h%�y>7<+�͐��
�b�����v`2�G�p:�0G��C��:"�j	!��V����"�
��{���Ӓ3�Fzi � lm|�7����
5����w���?��GK�1uf�6>B�j@
��<CJ�AE��<�
��r��˃�GV@��ƤS���[�y�=
�c~@�-sO�K����=�'绊~�[��әY��Q�z�9��>-!ٯ���(�/,v���ԍ>��UMB�� �w�Q�Q����n�`.-�����^p�1��_&E����E�;��4��{���g���=AJr�T_	(I�����
1
(�J��h�5�8��`g{kcr�D�ՙ���i[���`eU��XUA-d�i�í	�=�$)�=A��4�>gzSt|u�� <�E�����'	��JO,t�����\�F��ۓ���A+I��8>���s0��(DW��e��b�>���3MN�L�@����a`�������>;l�m���P�a
�*�'���k��~�
���m�ƀ�Q13+&z9�E� ��#���� [...]
5sze[�Ljݛ�(���H��I�	��
�%��ŝR9�d!����_�%�pR���:
fwA$�}Yڴ� ��Z�^->	yNP�7n�
+�zfQ%
+��s�qS���y�9���lBN�!�D
RilN"M�>@���G�1�T�����Q[㛰��O�w���}�j�B��X�g�2J}`A�����A
1I +3
+:�6⭜j�c����)���
�ƫQv�s�V�O�,�����Bƺf�Ye!�O�7|�����K�f_�~�1����d-O�ۊ2<)>�W��=Ӵ,�$=sc�� y֖�M��~ҽ]�X�6FM���B^�,
���
+>�5Qx�=]z�5Rz�?�Ԑ��	�e}Qq*���Bp|~
5w�;��Y�~Cs����o��ҁwh9���C�ݨs�veT�*	�q��N��
Y~�|�r[cԇA
�*f��&�
>�6�>��_|��<����s�ۨEQ�#!���s��3�L�5uswmk
+���F
�2�jh��
6H�
�tu��7S{�W뽕g6���
�Q��
̮U, ̤�WG�Rv\��F�"�[MI�h!CC.�[���YY���Q�����4E�.B�)�%��]d�Ž�����	��m�^Ä�
���,CΊ�xT��V
+5K�
�ĞC�@�]zT
+9���cT}X��| ��[dҘ��9j�{
��.�hh9^=�p8sa���$���!�!h�M��M*�4�F����)l�#f6j��
+��Ӽ���N��ٱY
�`#fr&&�o`���8`E���
��u��Y[��;
55Ïh�QD��oM�nG����?��F�bq����.�����6�_b���8�_|V$�98�gvg��$��Xd��l�����!

�Q1r�l�5r��Ԥ4��0

ϣ��ױ�ӰY��h�y�iJZ� W�M5�>%��3c�
��M#�ҫg#z����oOSSv��\����)vy�"�z
���Z������{�Ͱ������Mв�c�ʭa��{A��

}A�c=v �[ r�Bo�Q��nP��(���M�B��g�i+#U�7�#�Z�gRP�b�l
�o�R�v�������
�h�u��8�˕��
���irr8�5���5�:�
� o�\��m���F�"
+p0�$�ݓ�;;�%�fPb\RT���MX ���LRS}��Ұ�O���%l<r�B+ڞ.;�f�:�xk��
+���f��Ӭ°��M򫨹�c�k�}%'�j5��0�j!!��j`&���Y��S
l,�o�)�����~���7����I�W�
�
�
+�N�j��KD![#h�D4��}꒳>m�U����P
⠹�Y�
g�Ӹ�
^����	'��#�%
,�z>�!=fS�"k���$�����n��4-#d��^��|Z��*�h�i
�,�z>vM>�����Em�Obv!le��v&:��k��VN��y��T�>

C&���
+�*�������r*��pk{�5]u
8�55���wM|�&�
hb�,��
����
���fmzs4v"�C���9YX�y��9�
�AD
�"�֪���{fE��]��t�Y��w�����_$,um�Ζ������(_%�[���nM��#��#1ଐQ���
w��
���;��W4�ha�L��k�j11�S��:EH/�
�!�_�"���>
k��Y at s����8EAUS�{BAٚU��q�7��VzPg6�pw"Z	��nD
Zk�	����V��[�8���Eu2ADWW�l���*)-8ï@֕���[Kݙ�m��t��g��~���
���NHh�x�
!i�/����������Y�Q��
P��L�+��)�Sշ�c�G}��|���*$o��1ȆK���}��1�T7+j![
�f.>lf��fq�
+c�g�� ��\�T�xg������k����T1
+�jVY
Xfs��`ra\+��A )u#�
:�qߣf �
�@�x!�FA���掰��`�Z��״ �!��t�ꨭ�	�0��CZ� �!�0�6*l��ĝLL�)����<=U �@�@Mˁ�j�9e51��
1�	ॽYEK�R�D��:��q�
��
�<(
[d�|O���K~�\07�-�
P����S�����_�4Ĝ|��

b�K�ƧSn`�
`��EĊ��=��lrY�,���L�8�JD'����
Q�B�V�
+=*`m�`���}� ��ł���DP��6�Ԅ,R��5s��{����͊%^�
�{7�c�a
�Ǝ���'f�iD8���WlM02�y�[-`���P
uc�[�t`K�|�mx�����jj��)isF����7��!��%a��
M
�!?)yA]}������E�2A�$ၯ��<O^!G�5I~�g�z55��>v�g
��&b�	�0VPs�0�랜î���~=�l�-�jp���Ǐ�Ŝ�I.	e~�Ro���A앵aZ�BG�9�(2-�;IH���;.6�e���Ͽ��)�b�ܐc:
����a��`�z>! ��Wxf�M��IF�BWů;�Ļ1���,��~kC
g�
���L
Be�
S�c&!��8Ԁ n2��	�czK��Ǚ9
��g�<����
�njمsHd��NB�9e��-O�}�ť�5���
�e��S�JCH΀Z
��~
�h~����1-bll����!l|�:�d`#`
q2@˫��(8��'�~��6�+�
�q��9
�Ò@����P
+v���^҈I&H8jZ-�%�8h�9Ek��%{u�Iۆ5rv@)�5r>R[����[���?j��i[%��M2�R@�����+k�1��s��A�|GMˉ8���
��J%As�K���rD,�]E�Y	�
3���*�-�Q3��HY�	AUؠG̵MaSM]�.�۝
+s�:���������54{u2V�Z���{�kzVB�ߞ��I��#��O'�<@
�
����m!s}k�.��a�V�d�&d!kZ����T�+oo����*��,LԲהb�8X�6	Y����r1�WG6�od�|Fne �.��B��״��<�HM�j�v�d
�y7d��Z1ŧTmO3�|jA����ֶ��g��9!�Xj����:1�;C˘��?�3IL_�>�����ny4���
<�G�E{4���	f�R/���%�Ѕ�0�K޷�C�ܵɐZfE�N�zj��h�9CۭO�^e�T2���i٫�0��3|T'��T�
�a�(��|g�ᕮ��l}�;/7�9�0�,�o���a
����Q2�vf*�4��Ya}Ux$�gV|X��66
Y'
�������[!����S�ꖼ�:�����D�9@�A!
�3���<��AS���A|��8%e�&���d
�J�H����Qs*_��ˣ�[���0h����ڣSB�'�!s�
���ɇx��OpO�r=Sb�[Y+Z��Ԉ����]GM�F�f�J)��oA��p����!r:�^I���>jo�ؚ����'��@���j*ot�̠ZD
���am30[��Ĝ�1l�3��a`� ��3
+�#�tg�fL�P�\s	C��!��|ra�y�$�ĥeU.����b�Këv���~#�
=*�#}�
��	����_w&�o,M
a�)�1����C Y�K��%[M�ڔ��4�+�
i�l�4�i�8j�s�Z�i�!���y��GS�
^K�-�Ӏ��Q�Q�2jo�B���<�11�g�V\�{��t
u�(�K�5t��Fw6��;�R��Y�1Nz�3�=S�Ԁ�Y
�k�`����~���
�|c��
�xw^V���\�;3b�O#!��<z6jqs���k�Q�p�<�h�T�F��C�t�{f���FH�9K$��n+���S�t��U��ԫ����J�R�׽���~��NL
+��
0 y�^��"$��T]�{]��{��3����
`g$TuR�85�]u6��l���V�w���l/�EV���L��\L��wt�B��]1H8	�\
6W�ٙ,�mg���zO��	
)3�dTm�pw	7
+�
�
+p�	��ADwiș+���i�(
+��5MN�Z,�\ߌ���}�
+ﴠRى:��=��ΈT6�����\7��$j��Ț�5��R/��oFD
+�$B�ZB�he
�VHH �"
����s�U�1�Li��������X�� ��}|F�*�ξ'�}ǿ���Q�ф��7`~��54�p�d��kw��]೰����0s*AUP'"G�
T�&`E!��¶�W��
1iy�x�5�+LkjzFI��#���G-r�2ܺ�U��f�NR���ww�|�s�tۯ�
���Έ��]Q�3
�^�r{��5׍��9"(C43l�m��[�v�<lW4DlRi�.d�NP����C쬘M*��$
�+�l��*��
���M,�!�[�7UT���A����>��L����a1˧��FL\
x�0���d[Ms���:b��p�p|��U��0/�E!C��R����xrS�ҫ�a�.p!�*���$��I�k�A��ޭ��<Zac��=׏:�=H���@
����|9�y�

Ԉ;S���j0O��## ޱ2����{�3�-���E;��
�
�l{�[��G��
c��nq����B�bE�
+	d��4��5��sO3s��������)vaH#f�!�^�>\}�����rG�!W_�����Q�F�& ;r�Zy�X#�M3�}�Ⱥ39+����0�7Ɗ��t9b�{
��H1կ���ٝ���昄]���U�u����qWP�>4�vzռ�����
�Ч
���g�[a��ޣ1W��<3O��5m=aSm��ȭޚ���S��U�Ԩ�O���^5p�������k��	V�
�ly��7�Ӽ�{&� \��u
u�L��������Mr��#c��x40#
+�߫��<�����
���2P����̲]ࠄ�U4�]Sy�Bzq�Z�@�F��� ��O�urI	;�`����3AN����||�/�l���@�
ؤ"����
�_]�������Z	3l�B��X��h	
�臼�5:����'��9�c�U@����W��YuO�6�;��`n	;hj|���%k3�섳�=��fk����c�
%?l��b��W.����T��־�����)��#V3`��5��M$��Ijִ���\������\m{�*B��
7�ԃǾ�;u1��YoN̉�3��KQ�
�K#��z�V�
�\�^ʃz�#{Ђz}w�5M��#��4"��+�3% ����ٵЊb&B��p։���߮�+>@�C�.�!:�����0��Ʈ����Y����P�
d�=+��s6Ƹ���\d��jщ���
�if��M^PҲ*Z�O	̯�W��s���S�,;
�
5s��zzaPE�j8U�����t
ۣ���u��
CCoP
+�1�h��]��HP[
1��)j��
��
�AX�,��%ܘ]^���L*�)�;Ü߸��;�G������V�ӱQ~�\�h��3-��U�b`�O�O�LV^
O��<r�5��}JzNX/� ,/	��~𷐉Z�7ҋ�ȵikK��P��54=�꟎�MM/ S�F
.j`U�T��0ԛ�\#[�ۢ��a���twV"۵q�Q%?d$��:h�{vzyȈ���3�	/j���"�}ȵC#�g������G��P�9]y#`����v�YH�6Kx>�S$��3�<l�`"V�{K���CV0r*�fY�H+�ə�U�צ��vySh��
+�{"���A�s=pb�US�Y�$�l|�ZE��"�<h�`w�50
������W�z��7��Bݲ��	��VrBfE���G	X��@�7�2���GQ�X��sv|��t��\Û�|}�\�.x��\S/�>d-7j��cȱ8��Ȟ���^��@���y�sr�#b	�۫c!��q໸4t�k ��O`�t�*�X7����n�y落�=32�Z�퉂K�)�]�73Ԣ��O\����GM
+)�d�JV�����T�M������;�
+���?ۏ>T�I������9���x�����THM/��T�(��o{/��ѳ�X[9G\��B3�˜Q@	����
+d��I�
��k�[��K��a�G*�B.!�d\�ڧb� �$�:

��[�vfU�9�U���=�����"6Z�W�K��!�����c�*�$=;d�܋[��&Z��0+�l(���b\X��4��QR��09#�2V!'��mO��n���E���0���&.>�������Y�7+���Jk=�Y|z�
��I�@ִwᕰI1
��
�]	<V��p�

�Ž�g��l�.�>/�}��R?�q�>M孭���[S��a�s]*b�[�'D
-��֦�1�L�Qq�wT���)V��$��(m���
Ȗ~KKW�.�(m�[+�����d`"zɩ6ݧc��<b�)��[ɢ�L��J-�8Y��,�j�)bkW�
��ht��5����a�q(� m�8�ܠ�O���� � ��
��/־���a
�2�@��,
U_ߞ���
l��4�~ ��0��.:��v���'hcU��"��Z���{��Q��S$ڜ,>��	Y�>:
�ʤ�H]ʠ7��N?f�
+����pa3���
����Y at A�0�����O"�ح�?���
�/��eb��\���Ts]ͣ����EQ���Wua{�^��O�|�
h!�e�^"6��v l*��7G)�~U�
�����w����1jnP5�`c
�3��
7�����Z!֯����ږ���1
+����@oD�����Z6���~�SQ�D��IDa#�0r���k�fQXcc�� k6����	Г�,p�Q3>í����q
���ӣFv�GG-�^��-�֏�ko^����D~�ui�X��Q�
�^si�D�jK�.�hk�b�֮���٫�dm�b.�
�
ߞ�\
�	~��8�0
+���}��`�"f�a3�2d�T���^���k�S���b��-q�TE��"�
M�p�a���y69� ���V�������ļH�3Ћ�f6h���v6��.�x��ճå���
�
�|��֫�o����
w������%�bi��
������|v�,h��̵�!kms�ހ�k�J-�V��F;1_�:��P�6r��D��舩)'dG��=M,5t�gk
šnw��c�"y
���ߋ���|E�l�OS}7jf@��1
�*a��~�����P��
+���j�Y�SUWBvr
�/l��ֺ��l���l�[/
w�&d��r�.�C-
}��a�\
G�޿��=z
�G���,�
���4$l5M	��f�!�l<�/824?���=��K�ł �
|��p9��_'����gq{SW�Rۜ0�6D
R>���_
+蠎V�S�S#��_��cG%g��r����
+�q�Gw�Y؅~�zឱ�y��'�&��[��
�b��|
+��	'�/o�T�y���?�B!C�,��
+{�5Q}}�+�����:�<f�7�F�8nkx� ML��GMR~ �ӧ�B
a��t�V%|�S���]�!�Bv&U,�b.hZ��[�
����o
�o�p�5B���'li��[n冁S�6��ޅ�݅<5�����p
+�H�o�S��&hi�G��JvA�
+�f��×4|\�Xۈ\[
ۚ�D���!7J��yQЛ�ab�ܻ�
	��!l��x��
���6=/�#ס�2|s�!S G6�VD�Z�#�=#�A
�إ���`��V�x}�U�5?
�
�͍ϐ
�3�E8��]"
A����jk��m:`�k	ڥ��C�u[Xh�
�G�8�OU���qn�W��,lm�G���M���g����;��aN�6�[j[<�g��\��V�dM-"m����S�k������I��=�D�����!`%�l�_�(r��no����,Lt�.��|#�W�֧��M��5�9>��6��{qJ��znX6���|*>گ�W��bz�"�B6�E
l4xjr�EH%c��|�G����=�a3�
A�4�$'bq��1�H���^U�ƮQʃ�j
��\蹂0�[�Z� �[
"\_��mm��"�syX/��|��83�3�X㙮��|ȗ�Jd���9�
#?��	�����%�7G��B
���	��=���p���^�P}zv��0;�5-@!��#z*��@>'����Jz~H�,J G�m"vP�.E�3E�p|1-f�o�Z���vE���h	)�
M�

R_~�<F�� o#�'L3���p�և��fR�_��\��Y��LM/��Z�fa?�2
h��m�c [...]
�S��|V�
voV�G֍�z!ѣ!�9ѣZ)#���z^5�m�\�����q1[3���af�� =yk���R��3��
=oc���=!#����-�W]��񁖻���]�T�k��#&Vݞ����أ���*	qפ��{N��Ü z��C��A�mO0�}��!
=w�ƣ�?���+��=a�L藢���	��A
�`g�����͏�E,��)�W�����܀��5Sr�&bv@ϩ
�e�(xrM4��Y^�}o�H�֫���79��p�����C�=f���j�Չ������12!ۋ(!��n�,�A�O��{t�w�T�;13�:��\
����\
��Dww��d�=�9k#Ԥ�!���� o���'L̊�_G���N6qw��� ����3�
�ّ9>koA��]�� z��8hzlr
��ccab������r]�����<�M^�$恵�~��†L,�[�)�Z�k�/�~k�L�Q��?[����Q
0�3z	�gx:�1���D��bs�o���:��U�
+�a����ˉX_�
+y�Y��յ��ra�"`�wa#F&jOM�Y�]��|Դ��h"��8�X�y�����0A#��o��͌Ҡ�^
+�U���C��8h
+0�0l���1+�l{�p{��귵~ܕ�>��.�%�$#�;II���m�o��V�]�.?��Yt8�#gE��Ґ�S
���SQ3�*zVH�*���$��3#��uRv� ���|�w���C���ez���I��qҝ�1­�	N�������OI|�Q�
z���jZ��8��eַ�7��ׇ����_�G�G ��R�w{��jHO�ߙ�g�F��q����h
�9��<�e����I;#��q�Ͱ�����A>�/��av&��3�>�cmW�_|W��o���HY��BȾ����,���y&���gP�?@f�u�>�Z��

+���Ab
+�c޿�9̄����%~9m{�� b�
+}�>q�&1`��q��'�L��m%�OEɈh�eH�
"��8+۫�d�Md�<��=+�3p*�:V	�����܋��K��$�r}O�G��p�� �n"zذգ5s	q;�������Bj�kwۣ�?H8��r�
�3f�m�B�
��1�X�7#��Y���B��Z!k��Dm�Ij�sbi��@E�Ԃ��^�� ���!|f	?hkx^�8���N.��yףc�� Ko(yK#�����o��ߜd.��.F�|J��]�J�dҐQH�(��+Ü�8pb8&j����A-1%��dŴ�rd�i�Y�v�>A�%���q�AH
+�����>Ty~����bo���q�=����,�DlR��� ����
�{ۣ���v�/�o�G�WzpܣĻ�qN�Z?��B꨽-��_��{�=��j	u�
��g��0�e��������!�=�~��aV��{�5�;}�r�wf{�zY�݁�_}_���U����U'�zp�S�Ԡ���:\ui���{���U�R�jj�k��`}��d}Q��k��Q�+CjjV`{�;���3Ry�;��
VS2�JF����B'�7�$�|������#�	����Y�"��ϐ�}SԌ�A����
���j!�;�/�N��7i�}�+���������{

)ͯC֮�Š�؈������܋c����A~7I8!
�*n�`�F<�?CM�M�2�ҽp
A� �W�X~�B�b��5����[�$?t!kJj�r?��� �
r�g��힠�ET����<�
�B�k6�/l���Y�	��&2jP�3�2�-30EM�$^_����y'�9�qA�Θ�"�T��<��0��� ��w��0f���3̼������f�L��
+��������S3�JR�w�0�Ȟ�Y����%L|<

�40�wT���Q�
����}N޺k��BFzI��%�l�j��Q�c��K�1��xn�
��b'랶���J�b
�>Y���W��5��qF���~{��x�;�,�z�n
Q�E��g����S���G-��5�r�R!Xx�IvOIH�#B��32p��h�����sۓ�7��o
�b���$�o�F���W�߶ȷ��c�-vV����]�f'o�W�1�Z���
�\�!�X�'-�2�U���l�������1J�������z�\��[����#ԇ�������;��
�����3H�uT�\|]q�?Yu�?Syc{���9&�ޞ�T�\Un�S������/������☖_�B�������wv��.n�
[}Wv||`�sfy���i��r������N�SW������_~
+�s�Z��B!
4!�7%#�LȈc����㖶����+�9:*~Y�^��8�q�����<S�􈁃��x��[�|��)�-~XϭL8�"`[��߭d�mO.��~�
�
f���ђ��l2�}�"
hH�k�r�5LM���]^{_}��Q��|g��o�}�̬�� k�goO��\#�ۛ�}�����j~w�sQݘ���i�1W����
o*�-�F��у��x�>6��x��6 (0�3���̽Ɲ�D�U,���<?��{���2H��3�쭒K�1? ��
��^��
��>�ڋ��b@r�JaU���ǽ	�+����O
+��������

��Я�2vf���^�M[k�O�G�?(�y��)ٟ���p
RS�Jr��1�
̾4���V��E���~�e��
roW�"fyt���1N�6���3
�;"s��g��1G��`[x�xPK�a-�xg
wۧ"�G�� ��{q�5��z/9e{�pۯ䖃��'X9P��\��+�}���o�NY��~�7����ɾ����p����K���W��sϰ�V���g_`O�w��m���oA��M������Yi}�[Ko1����)�?g~f}V�����;Г����זޑ.Ͼ,9�ڕ�����W�oQ׶�EU+�|ﴨj{�S���|a•.ԯ�a�-�������qW�{��6��ô�n�ɭ>����
�#՗lo�Ό�2>]��\�Ջ�H--�-9���׭!���a�5���=yg����[}�7)!��녛cR��[�ݹ�
�
�i[[���ו'\����qf�z�FX# ��P�
��

d}
+j��\J��%�4��r�JD
���:K��ڋ؟�
q<����
���k��M��j�o���3�L]O���
����G�۟--�V��7�z)˭Tn �;��'	wV�ѿͿ��s�D
5<��v�{���ƒݔ[�
����*O�Z
�%Y_�%��[U���E�j{I�6&.�z\\�������k��p��p�5@��pe��tem��>�8�&d�2��U��O���x�(��|'긶!�k����;��f�J�Yڪo�TBGN�J/��e�Q��l�E?������}wg�S�W55m�
+����䫶��CӒ�O����|R|P����k������w�������Sk�P[���u)�/u��P��c��=Z!~KɯX��w>ǜXz�95���uM�>sK�w����������ˮaBF��A�VKu at K�uOW][}_rt�yη�ִ}k}�
����;����I�ڙ`d��C
����Aל���q��Oq'���M�W%}��s܅���֊C�G��
/�ͭ��D��G����v��!v��0�hc����I���������kM]��ٗ�_��n}4%�>�~�N��d-tQ�:_�Y[��v���4����ʳ�oq��K~�
��|�
��An��k�1sS����Y��Y3��u�
�d�7�T__x;�h�8��Uqr�]�ɥ�����C*y�������7;����{�W�5�LY�#݀>����X�М��;s���=��qgk����#-Z�f�u�(?lj.���\���>����/�F�Y�PO����+=�
k��
]�'
/ˎZ���6�|�|�spg
� js�����A�=��Z8�P��:�N�"
ى;
�rl�-�w������M���U���Y��U�UM旫}�[�����̥�l�U.ON˲?�(����Q�R?7��
zIL����8m��t�P_��03��n҃���>��e}aE���M�m~��ig���&���"���̔�����̯�-EFD��&���"�F3�5�L[���jl-�fJ���8�3em��/���e��{p�
�{�_�1HO��>>�
4�����ǫ�cp>_y�8��
+����r?+ӫ��_�g��

���� ���O17�I�����}]|{���̔���l�9��fp�<���=�s�1�͐��
шH;c�,�JBs��t�s�%�3쯎��?�[�_�@��3���ŧ
�~�?���k�\bS}kT�����#k�
;���-�*<�f�=#_���G̏ o��nοA
7<�دoI�bF����.��V�O����u�-���Uّ1Q�ǃ�ԏ�8����k�q��
��S?��������S[PӖ礳���4uY��5Y��
�>f$�uR���kZ��/+n�s���<"*���#sS����'�D)���.��X���%����tm����
���J'��\{���6�}}�7ښ���v��1>�'s}%������n��R�:��
ϫ�8^�ύI����$���^Q�J;��wr�=+i��zk�q�
��bW�	��4����u�_ٞ1�Z��./��ޘ{U}��Z~��V~X�T�Ä������f<�t�
��J/���������}#��O�k���5ecy�}`�s� [...]
���a������T�w�/#����IV�rgũ���{oQ��/����
]�|��濖�I�*V�k���
dzR}t�%��q�/�/��B�<�j�? ��2�As
�3�ݴ����㚆��LO*��vQ�
qs�I�l�-���
}�����t���􄮡�����c>�3^b�MJ�~�6V
_|�L54�ξ�\2��OLJ
+���؟�O�(J�RN�����=��?�~�ݿ͈R?56~g}Z~ts��_Mʞn�8��t�O�G���u
{��dM�O}�����&xɟ�Ӯ�c�-��bO�BRP[���%���O�4%��OG{�7�֜����
/�OM5����wO�(A�� '��E�_�@�Z�<n{^
\^u��A���
5��N��`����
+�_|Y򳱡��1�L`B��j�[#���I��{ʍ��蓶�%�
��i����ӿ�L1
gߡO[۫~5?�_U�U5=B�=��b{J:�^^�}��o�k��v�=*�X_ΏJ��yTr��c�;b������xc顊��^���7�9�¬Ow�4)H�H[�����ǃ�[�̿F�&E_���?���:9oc������ͅߌ�2��I���iY�W�Ey�K���?3��_���w�j�~��
���~�E��7��}�����
��J��t�
~��KIZ�`~��8im/�aJ���n���}�>��S���O�)_��f
�^J�}�??�����;���.�9���.��tU_���1���3�7����K�(��z�7�5����V��l�r��
Ӿ]듢Wzy�
�+���_��*�/��]�� \Ud
��
�K73�k������X[�`��%�� �ާ:ٝ/Wߤ�\�ȹ�1BI��-=�a� [X O�
���2������q~���>�%�8��P]�O��C]�bg���MȲ���=�|� [...]
Eg�wD��m�����@g��i�M�����y)���]�
7���Ҵ�
m���DN:�8�������Qf�r��P�볤�5�7>V��~f���J��AZv�����~q��[�����o��؞����<���Y�q�������Qѡ�.���7�Ik���
/KZz��`x\qD�q�O�Pw������-�����ƌ�-͹�-w�Oy��I˃�뵘˟PҎ���}k8��\r����{룬�#���l
�
��Ÿ�a~�΄�1.'/�']��zB�X�ʹ8�������^���5C��K���FI]�y̟�g������}7")�qL�>���yx�9� 0� q�a%i[��ѵ��7��}�h��y��zy������k{����+�6��`�/�����'�4�憼o^V�Xx�;_Su���s�05���z�`�s~�U���Wx�3̱IQ����]��/���_��䟝o)�X?i�8�?��[yO��ק���2����J撨�����_��9D�]x�=ki/�V�(��q�������)������
s��6�}�_V�������Y`.�����:	�?�\���(>��{���nrv�X۴=��Yo��s�3������D��=*=2݂�:�(�u��W��E�>�����[ܥ���+6`�	q�>���k}����O;����g�̽"���#�������2K�1W�ϳ�O	�.�o旸S�פ+c�������Z�~r��o�gH)S�9�p3�����q_�Pur����)i�����Ǡ�o-t�o [...]
+���m�o� �9^�hkK�o}�~`�%d�1f.����s.����;��2T5�_��
@=�lBx��a��O��J/l�Q��9I_��
+�E�bZX/ mP�
�9�ͭE��i_�����/07�2>��1Y[|�3�#n
S�@\���������n|��rg�|/)e��
�
��F/3�=A��
�ܞ�B�0>����8�k�WazK�n~�9�5�+\�ef,�F�X}Wz|����d[�k̕�~	m{�E��N�ol%�:,����x�o���v�:7������˽R��
��y�AKk��Ji����������'�˽�
U�����

�{�����v�cm}�7��������K�aq�F�_�>�5�)X����G�u_O�s�
��|>��;�l#�[驩2�Ӯ�+N�j�~P)2�����b�
}fk���i��зW^�L	q�=����
���)~���xeF���FQ���)�7Um�׺��#+�9�6쩹�
k�iw�ޓ���#�X�a�|�|�k��Q`.�\u#n�kݙa�A����l����)I�	F��'W߆�:QS������j*9��v��J��O��
����Z��o�%����4��ߗ^��:)3��z�)��C��
�2j�|�|�$��0��5-�C�=�����S�OG����A=�I�����-m�m]������x٧���{����5����6��BG�1cs旳/P��ދr[���h*��gf���
�}U��rw��7����Y�_V^z�K�B�Xz��A����rg
����b��xk���ؠ8�W�Ò�	n��(�p{RT5s9�Q~t�}�9Ч��g�������e����y���C�ڜ�:*.�����=Z��f��JZ�� �R��dz/�n�������;���k3�5#��7-��rD�t`����TS�%E��;�3�W{�o��矣���_��]��{���u�EǷ�w�W�����$�xԴ��w�GWz�}"�wLF�NJ�=�k�}��	)n�=5y������ʺ�S���Խ��N)���K� qw��%$'	Ip�$�H�vf��}���N��� ���Z�
Yk�n�!��I�v
����Fܣ&�m��c�;qA{��[����Ȉ]߻�#�������,����4�f|�B9l���
+?W���w���_�q����rw���AB�dmQ� :��|Mi��6�6��0þn
�ߛ�
���y�P�qcg�l��
��ߝ�f��s3��za�=j�r7<�X_��6�Aj��[ʃNu@����'��
���VR�=*`�� 2��@E
-Tչ�ƶ�������
+}��{��\��5Bͳ
��ēK�Mُw�pq��_N��.+)�t���]�p ���*��,��50������������1�zUϋ8��Rpmy�C�A��#�
���7
+^��S���6LLt�yrN��Ij�3�8
�V�*ֆ�^8 ��b�1�
�W�e8 vQ񛃾�N�/{:TW�zo�
��|K�cMu�+	3��R[��}2�����rAIꡊOYk+|<_�|]�;/�~��ї��=Q��=�O_
DG�˃/*j�#v5�"CC��!b�u7��\K֓�ִ�N)<���$f��v(p` _?�c>�%g|��ܝ�lc����P�{�a
�& ��t����Պ��	r�b[��ծ��Iv��!����6qӽ��Ҩ��z�"�:r�C��3�!Ḅ��e�K�Xׇ߮z o��+�6���f@�8'�hۤ c�d����}��=��q�H.

�K��>S��U�N�U�J���2�
+\�Ґ
q���������x��X��#SMˑQ(ڟ�`�|��G���'��-���f�w�!�%f�ݓ�-�p{�$ps���EB�񽻰�$�l��
B�/��>��z�B$��	Y��
�u���1LM�
���ao �������~
+����N�gc'�S:�� 6��v?+oG�̟i.{9�N�*��\2֦>^�(�h
��ꖑ2׆0����'
%�|G���kN����`�^�B~��|f���6Q���X���_�n_E��0�
��<�$"v����Rw�}�X�(��	l�s�]�;%dl��S�Uٷ�	�g������k��w�Ĵ�+�vH`;>ꪔwk�g�%s]r�aTx���-	�ݎ���Hn���=F�]�FE>:h�� �P��sKQ1��+�[F�Q�	F�u����M�>�
	��		1.ƣb�{�<�CE�l�#"���6�t�KI/�셼15f��Ugޞk)z�� ��U�R��X�W\2B�m����W�i�!��BK޳�\��(%�1!�ZG�Y
-��ۃ�D ��\rL��
�jw��)Q��IN�%��b l
+2x���K��9�,�E��^�*x��W�js����

�k �� "�<
ݕ"=rX�f�/��()�
+�ڌ{�j&b_/�9T�SQMb��.�'nt��25���[J>-ab�zQ�8<����Q�f�����*¡D����$2��g�����y�/ZF��}S�]W-0��%k�����O.-�+�\���
��
+��eW_�l���+ݐ7K�����
�w��55�<�5�
��� �Tc�����O�U�+ve�b�9yk��؋
mE'ޚ�Aߺ�~n�r
��Z��v7.jg���R�+�:&r�>��'c@
���ģf�

+j�C�K5��C-����QFF+2�VP�t�
d�'�;��9�QV�J)� *y�օ��LP�������*!��R*�9΀�����qD�fOa�b[�����W�r
r�
<S�~g�ws��qO�-x��<�=ʬxZ�>�Є��wVX�_d+�*~�>\a�bR��2��>ۜ�p���l�5���h)Z^�
 ǯ���.���M�Ӟ�5��Z�!좈�5��~M
��r4���q���
�+�$4֩%U:�L�M� �L0
|q�Q��-��9Z��6~�Дx�Xs�%�dx�"�b7%Ѐ�����

�kf�U�����qV%&�5M�p��vY�
-f
'���Wo!�]
+r���y

�1X�i�
���Mue/��
+�4n�ar��
�KM�X�E�����r־A(<0	�;Rd��p����� MM����젽)R��w�Ib�����AT�p�r'죖�}���bCd��L�G�!��" �
=rZ�Voq��w~�
sq��glH�wLB�|5�|q�=F�p�kv��r�J;��8.�O57��jo�s�6��,�S�(�����(i�6�Y
*	1�e�3�'1k�x�R?��@Wմ?WӾ��5�fV�
<F&��"O�?�e��bb٥߮���{K�V3�'} ֋��fiE�e�m��
+���L��\a�,|��@�[�0�nU-�6YM�
e�ͷ"?R�X�cb�똸�ywy������㈒�+"j��������:

^�/k��u�f��U�M1�te���ԅ
^l!|Z�E�����B�^������K�<\����i�f$���T�%
&`W\����T
�3���NU]��0��
�
���15<0�/o����hY˝��i6`��
�XK����Is
˷���3���I����znm���
��a�
c��]9��Ҵ
�T"�SN)�k.z���\i�f�4�W��r��(�6��
+�[�)�M���NV�,0��^e��Y.!�1�/[����W
�Ҡ3����\݀w��ץ�
ͅ�f[K���R���[*�
�ou��
T|s�b2=RZ�m�W`�����SwG�#"��������`��,�噫�۞���d��M%sG�,sOq�S\ܮ�	�
B�nt���
��
�XP��]�R��g4�⬐�
m��N��}�+���;�Ȃ�����������P�J�
+R�w��s��#�3Q�9T�y����j_���t\]I앶�t?
���G/��j��Q|����M�v��ѫ]�R���e
�3���UR��)Z�[Y�|�)a�^X�����V�rd
0H�׫���-@�m
�����V:�V�3
���L=6�Ԅ�m-xfl�|6ߑ�n�-��ڠ��\3h�b���*Bv��{�Y��Xݹ�@î�+#5��M�9mrD��
�w0'lؙdC6�	���{~j�������
=�OvԈ��9:v����LQT?��.������~GE;Q��X��@P����{WςΟ>	�;��Ý��p	���1���P1ϳ�?YT�����D��5��L֠�Mp����;
��Kp�`�����X�1�j2�~c�Ɯ&�~=�K�z"��P��GǛʳn7@�n*����$��^�ҍ�X�†l�2f�؉2!�� �߆��Z
.����r

v����c̘��԰Ӹ�O'�޾9��1(��
P��[�� �c
��W�;�IV1��&��mL�
|�4�˳m��S՜�Q*�n|q Uvm��@V��]o,μP
����k�{σ�
�=NM	�k�Rx_[
x�虣�wMd�EI;*�5y�6��R�N�]
�eH���2F�)
셎��fA_7�ş��~?��
+>���qx��?�1A���~��CĹU�s��t8��Il���)��)�,a�gZ�����I
��8��y&�?/�rI��S�߿
������зG����_�@'=�s�Wza9n
��5�Bz�|�Sҷ��x�����x���3�Y��ޞ�F��
1����||{�$��1|L�)xħS؄�?HI��q�
}p�XZ������sչq�7�N
�P6Ŭ��~x�\g�ǵQh��
8�K
3��>L
+ Z�Yg:0�@�\��&�&�����č�~]�+gN�
\>����8��ۏ9^�?�
�k
+��؟�k�q0O%�M�*�
+��1B�M��wk)�v�rKL�_
"��5�a��Ļ��������_���>�/��1NM�&gg�]�G��Za����?�(a v�I�� �w�R�s�0*�����EН
�AO�]ݿv����@�ϝ�> �
<�R�vA+Ⱦ��#�;
��0*�8�HT�q#��/��g���i9�'K��
����;�� P��w���wAϯ�E�|z��6���S��@,yvL����	�F[y<�,�9U�x:�ΈR�1�:��;�’?��)DzCB@��>�>?x ��,���������]]:�;����)`�g@��n��u<!���,t�>�
R�W�DM;;n\H~݂��jE�o4���S2SN��|,��Pf�[P޻@P�����7@���z�<�'@�/���������zC��j�	���o�M �(E�*.z���8&��7 J��NVF�
�

�¾�"����u���5����.�~����m�|B����+�2�T��<[
+}g����:*�,t�?�
������5�g�q'�¾��?�ž|
+�q���E���A/^ ]��/�����s���ys󄒟�٫��fU�z.�k��Qa�Җ���̛&8�*":�7TD����w���WA�._߽

+�������/��_����_���O�n�K~ �fF]��a>�
��ے6�C]#�)x��1Z����� ��OX�~��I�H��ׯ����}�t
�߹S�@w�cܻ|
t��� �+WA��_3
+�j�
����)���U��|ъ���4��6��B5�OFYO���%9�1�'޾:�
8�
 &�����%�i`-/���	=�I�~v����U�X��T�
��!����?I��S����A/^
�v�"�20��._=�u���ILjօx�}� ��{�Ԑ

Z6be�S2;*,Uu��
�r����f�
�%D���>��5���-�`���
���}`�~��*(���c��O��]�@���3
�-�
]�/��+M-僦��E/�ӈ�]�Fa�"�����: ����'������ ��
��g׮��.]����ߙ
�/���*�'��T���P�
]�#ǭ�3�L}�\q5�c7�W��CX^tF�8���8���э��@���q���c��~���/�� ��w��
7@��^�(Y���<�#��^hQQ
�_�;�^Z���	+��
7RK_�B�(J�9��9�Ã;���W��ns���o��
]�]>{��(:����oNV$\[hG��d�܍QL�� &t�
���F�2�@�說�
+���
�Î%� J
E�z
z�w
t��)��?���:���Kg�xq
��ɱ�o�Ϗ2��Jjٞ�K��q�n#
��������:�#y=�M5��*����io߃�^�|t��˿���0��@��:
�����;��Wo�����}
�
�
}e��y���n�4���B1z��
��‡��JoB��O��|zy��ݽ ?`~/���@��\<�ǟ���`
n?=�uTr��x���� 2��"��m�!mz
i]VE����,K��.�!�$�4,>�Dl��c1/_s
+�s�ש�@�Μ�{���-�`-��~:F�J� �f<����k���1SFk�c"ڻ�~X���
E�Չg>A��)�s��!�K.�r�/��ce5�3=
���F���
+� <�c�Fd��.+�P�v�x;-x�����A{-���j*Q����\�_il�EpL�lz�yLR�yjJ�_'
�����
��{ �7���umK)������F����J,�B-4ﶸV�!��`���p��+	9��2O}� =�~���;�n���"��j�c�����]��-	��"���� �@ K����)a�^H����,�5���\����5����/@��� �ۃ Pȫ����O
K=N�?�*/�?̂��o'|s��Ȗ	ة`��Z~��QX���͚�v��t��1����)����ۻw'��A�o������.�u���)Xv�
2���I�0Υ}]쫥Z�
u�l�o�Lr*�����1A��P=Z����&�Sw��eW�N�|�:���g ���{t�s��w@���'�)%7:�����j�UI�����n��]h�_���
�6�L�v ���v3�����
p�BV�EdF�yHJ���~���(��GPlP�񄯑��?|>NK��ZY�7YO
]�@w�5�
Y�"g�n�ѳ�-�W�
J��D
A��I����@����������a	��ƒ�x��
��#����W��g�%�"�^����Y�w��7��|�����~���a�M��Yt5�Ue5U�F�V��]E�d�
��ݱ�נ��Q�����џ�N�~x����qDn�����lr�� �-���Z&�a`�T�͛��Y���,��a�{�Q��Q
�i���R{+t}���1�Dڙ��ؕ"�E�GmK�%�)�alS�MՍ�)6bK΂��|쪂]Vr�
�蹡���1��NX
�,��	Wƺ8󃍰�����~J�W��z��r��6%�`G�,wN�W;��cu}ݺ���T��2!n�����#�Y�/��4k��y��^���)qLP�E���@�Z��{�U´��F�C�X��l��U���Sl�����M��SU��AZ�l'!ru�U�9.�.

+�T
5�ʮ�|E{s���%FVW5!`
$c
���2�M�ɽ\v`�H19� YUT��J.ª`�lI���]зV1.��z�G�&.�"×��D�0+u��4�T9�ښ-nkɮ'��ڙ�A�Ž�n&��0PW�2��ۑcS�Zj��T%tj���

��>�Lm����)%�Ibʊ%o�x)o'�
6�c�Yig�巺E��\�����V�E#G�z���$n�[�zU����]��γ�(�[��5	�}�&�ztKE�[
%�� ���p"UM��3��s������2M7)L?�H�h��:���z���O�U�i��K�U(�4���
_��,G�Ւ�cȈ�a\��(;�,��5%�K٦nl��1fMpWu֝AbĹ1f╙>f�~d�e��,m�j�DE��&�Y�(��y��!x�Z{yc�~��;Zm1���69ϡ����9iU���*}�M;�R�(ke~W��W��:Y��&̜��8?B��
ą��#>9u|�Y�E.t�>l��C~m�J܆v��X����T�UU�
@l����u�o�K����ب�)i[�O�H����H��U9{w�	��D5;jV�K
��t��kl�
�;�s�Z����V�2�����bt��h��#c�=U��U5 ��(��	y{Ӥ�m6yGE/ݝjh�M��\J>ެ�"�'�H����2�b�u��я
_
 �lJ�9��2V
�
�Ŭ��KV�)	v)�bO#��d�
bUuG�Vف��ץa \Z:Ħ��-Rv��(��=UEsk�,���qikj��:�MU'ؖ��VŸ�516�<IJ�
�'Z��>v�B�����t/�:��H V3�*�!GDo�;�Ȥ��c���*y�]cM�}��wU�ж>�ڳ���YS�1�HQ�#��i
rK��h�#�ud�1�[#s�]嫃hא�
:�5'�0�W
�Gt�#�h��Vl�2
+�5�O��g�|Xފ�k�4YU������h��1��V7
{gEM6-�`o��m����鴪�E��bzg ݥ�v�Q��a7��K=��lJz��t]�r?껩���� 4�0��ZQ��
mK+d��2
Ϗ�� '�ygD�^5<�#+�K˿m��B
2r�WÆ{T���Y
�m`b�F�>n�Z�H�m�O{�`��X��	�L
�L#\���4d[I�y�U��hWGG��B�%��
���[694�Ǫ��>[�=�Tl��+}�&f��=��Lɚ�2�К�r���s��v.�
n�pL��>�e`"<Fr��.ө�&m�@>�����*h��5����.U[�S�ܽ;E/sʉ�f1>v���Վ
�1�U�A�\�=J��N`�\S�B����c=ZZ�[C���n�U�ol�r�`�DzL�
+�帄m)6~GA�Q5g�O�b^�����36���"�M�O4�����+>��k��Y��Qj�'���0*�k��pk��\�����\��z����}ْ�2�5�8m
*�&�� 9D?0q)��V���
�xq�\G�M�
�j�w��},Ȧf"��*�G[S�����he#��-ie��
���
y>�ّ3!69�ȡ���u�
���A�g�5kO��垦�7��׆`�@>�
�p�.Ee��cNP�ܩ��e��
����n���j궕����iW3���
��,����
_�۽i�kẶ����B���ђ��s
�CE�p������w���w�A�U����LM��;RF垡�sw��}KC)t-���V������g�#���⺍�eq^�ۄ+��D��3��=S��p���-�
���z:ԥ"dl
l
�>��Sak�d�R7<�6NH�3�Q�%gM�s�$l��(���#�
+�\m��$��>	�8�&�
�|5��H�
��ޗ
�5X�uOG.��h�Ʀ�;����K�9�w5���~h�`�g��f���c�h?�?Z�
s�	6&i]�J����4Ċ�yn��Z��<-��a$��'PE��\���Q�r�Jt�����l[��miq��2���Mì��T��g�{v�\�U�O�MT|qL@>n�Z�Ш�m%
�������
h�Z�L
���C�
�
@|^�-
P
2��J_�Ǩ��lĎ�1X�~k��k��_&R�+
�ќ�fOπ����

�U�L����;Eo��1k�e��E-^cm�C�C:'�Y�}o]bt�����\X6��f/4����q����Y
�*�*�f;T��]-�����	�)7�+�R.sG�C�ոT�
+�P!c-ҊP��eG�K_�R2�z�߭2
m�~�W�}G΂�&�iVqe�jO޳�W�)\�����B'4�;U��Ӏn
�`Wҋ�jJ�y�Pb�|�iׁ��
�ρ��؟���~.��&\��	_th$CVz�^;�
䏹�A���ښ`;t"�M#�XU,4�
G3\��GmJt��?��g�]�O��Ჽ:rّ���@�[�J^,~ol*�a��L��́�X�?M.���H	3
ʯ��,���(Qi�+�j at OɜS��񂷖ɲ�{&B��	����4��8)c��ɡc"�s!���8�sI{ z��T�
����s��I7���W�sR\�UK��1�;jL�}
+��5������볨y�]
�z4æ
͐!zL�rWڝ!���A��=�|w�K�
!$:�^7�w�f�T~[�}��C���#�6%��
!�;�»u�"���f��$�.Vw{���K�眠֡c�С.5)��u{
���3=:>�c`�3Ž+5�?�x��zJ�KK)�_h5�f���l莒R��
+���+d���Ш���o��Un�EA�֢�o��"���j~��=Q��6��t�%�o�.��z{�+�:jP��������(%�PUE�����X O)vyq�e4��?&j�o�:*��2��c�¬rL�E�Mtj�){Z\�[���AEn��˶��9�1R�[JN��b"��1!	�c
(y�ڕu�"���Sr��.	�t[BL[
EE��"l����IVٮ���)���;46
� t;�xEb�y��!AGX&)@,
E{F.
�
T�V$ܛ��9ғK�t��=uY����mk����M
��R@�L�Թu
�
�k���
�<?�
�C��\�G
�Դ홪�]zb�C
O �?�.��� nq�,a�	 a�U����ن�]cu�
�N_O)<�2�p���#�m
�B�J������z^���ְQN6mc�2ȥ�YĄ�A|�ŵΊ��Y�
�wK4�4��� �e�
B�纊�f��EQ˦�1��i��,��wE��5A����Z�
�ܵ����}�[c���1L��
��(��N�i{Z6ʥ�O
+�>]�vs
qqc��`
z���H-J~��K̳Y/s�G

�S�BmNҋ]�5��su�;��܅����
��T�O�� ��;���fj����q�����g((�
+a
�
�0ɥ�ӝZ�3���͐��$�p�
�ߞ����@��X��
z���"�X�γ�{:bY!���s�I�s���T؆��9
Kt�)�3����:��l�C���&�KW-ڝbA=Zzž�Zf�
���8}K���d��)߫`�z���]16~�����E����: �֎�8�I
+����>I-�
�}Y
,�_,��p����f��u�`�ge���J���
��m�
ȑա����
��tͨo��/~�~D�}���X�l�6���:��Q�~}F�|�:X��.!ejڠa������ڥ�R�����0a

l��F,�f>�Hʂ��D��
����%�8U�$�"v_��UWF�
|\�)��V�����
5
�-���)|���T�Ta3\|ڎ
�5��n*x�6�NԵA��K>�U�B��}{ �f�{�I|�R�����5���g�������2��wۀ�^�$��Z�X�б9
�5I*��v�Mri�E69.˥��9&�Yv	6���]
�{&toZ��3յ��
+��rB�E�OZ�~�2�/��P�?���= &���r��9 ��G�F�k�
9*�,Cg�T�IX������–��
��D.��VFXe�_����[$�_�x�]��sM�l��X�����͡"��ȸ���p��MZ�
+�ٟ�-�`�~.�K�ͻZ̮�$[d�4 ���~k⏺%�%m�	��J����୩:穹�i���e
k�$�,�A��J|�%~��2��g]ZT�UY��"��|4�-�{�A�i�y�ݥ|�#ܳU�
@�-��~�
+ۼ3DȮ�6P�z�=�{���3��3l��
���a�GK
��%
+���ۣ�%�̓��!B����i����5uU^=����8���
	>�)��j
����H�(!u_F/Zo/ya�+	\�(x��^V���Tg��#�M���]j�
���f)�3��z�|�{ZT�-�e˪S����S� >t�jS�p�<c�(�0���佶�,������
�l�%��y����i���KFa6�aٷ
t�y�����{���qvʧ��r�"�Vn�a�f	��bOڃ��x?�Dy��0�F��hW�-��=

"�1�h
��_錹�};�ڞ��#�['ٕ�}�/���ؘC-�r�GQ�[C�/@��n�C�Ȫs�	�
��n�
|c��~�ٕ��>R�5��r�/��@���h���ĽSAo��c��p�K��.���0t��
!�F6��f99wi�3����¾n�}U
R
�겞�d�|�Y<��ڽ��!�ץf���ꔫ���0�`y��P��
�g���Jl���e�"l����;��C��+U�s4+j��ե���;�c�}�w&a�;RD�C���A'8 
�)�`�;&���]O��UaӶ����Ȱ�
��NJګ�Q�m��kY�u`�;�W��2��3���ٺ��qL��8>ե
+�ӵ
�Rz���e���}��S�vG\�I��@�G�&e����`
+�
�T��Ws�W�_�k��pMa2 ����~�-A�9�L�Cè�3r�GKU
65:ѥA&�&Q	N!w��孌 #�Z:�h�Uw�\ݻ7G��Ԩ�m	:jc�> s���ݕ�L�$��s�5U_��p�n%߫ga<b�C��^��{��]]�.{��R���

��|��	�Cs��y��]�K��xK��*���Lm�S��ٕ�J�O���ȧ����:
ۦ� 
�ܟ��,p��bͣ�䥶�Ws�y�g��GXy�]�5��e ���s?��zw�+SS�=eU�51#�\��o+��"�X�[�~���Y

s)�.9�2J�rWY�B}�������4[�y:ŏ>�fş[j�}f��
 |�!��ŨHC��� �]�O�%$l
����A=�����6�Z�)-������8*�ݑ�"���b.:�!�lce�wFK�LSQ��縤�ge�ܰ##�k��|94�{��s=I�fZ#���r�H�c�ĕ^`�:.å�i�s��U�?F�>[S���V�t�1I�o�G=��F���8��B�A�o�e^1�R.J)��
��3Ԇ���%�l��w��9�ħ�刘_&
+��HGy�y�C#��s�_
�o H�^
!�
�,�p�Ǖ��[[
�������
Y�E�m�"��8���5�������~��^�ͪ`@}x�Գ�3\���	;��3
|w�Vy8#�vO���2n�MW�h�T1l��\�
���
~�ܑ����ve����·:Qԍٖ�{?f�����v��e�U~w�Q�f	
��g� �h�Cc6F���J��|~���L3P��
�� .%:�:	�Y
�|؛f��ۦ�s���������6�	�R
e�@� �!qG���Q�3]�|�
�ƻN��Rs��	\�e��T������;�:!��o�p�e�`�I�[j�~�=X�I&��6�O�0S�u�HEG�T���)V�_}
�)�E�L��}9�s��]"�Mח>ݑ��8�M1>v��a��4`�.��Fwɛ�!t�'�65��	����
BG.��ޝ�ɺe��8-ʼe���[n/|����!l�b7
�A>�"<�$!�2^�ԙ�p���$)�[�+uO
�;Rj�WE�
�9��fr�pg�q�9���������Ίw���'�f�W��`�`��;`�G��1�߃���n�����fLx,��r+$�_#��
x䙺� CM�k�p���朇#��{sm���r�9��jo�K��%.
6���zUt�
�յyOe���^=��k������l"�l�ÿ��P�?�
�[IG�����9�c|�B��$%��|AN͹��e�^h�
��'��Qr2>�9NL�ps����7��������f�.����?��4���L}�
��[�N��P�3R�v�:��9挊
��ZS��#%1w��t8�	�Wxn=
��S�J/���R��O9;�w��t��FG�9�Rl��s�ڟF
��J�c��6^���D�� r���=�,�J)�
5�t���A�|s�wa��� ���Iz؍mqY��x�#��'
]��g�# ��f8�C�����*vع����{|W��Z4���b@��Ws��Y|�!�%��Pi.2˩#@W�=
��

����;�����)�zl��<���1aV%
��V��0��ϫf���<�(>v���V�g�6�����o��$���B�s�o� �!����m9�ru��{�۫e!�f(�_�ԯ%*�p��9V��<���h��e1<����s�C:�|�W��8�� �NRc�Nb�ؔSGٙ�T����QF�m��\�l����]

��˸��'^]j/y��PUm� "g[�.tη.��~�zk
+��-��o�P2�����wA�����f�

-�g�[jɼ
���	R��>�PS�p��V0ʶG!k��O
+>�A}Iğ����"b�YHɣ<�KB���Q~����Ԙ��ys�
w$A���ڟ��)��� <�Y�H�nJ�?4��?�.5�ѵ��_=g9>kc��W�@��(l>0�I�Zb�{���S��w'1�=���������+���Qz�A�כ+��o�1j�u��p���]���nd��*Ͽ����*~�7���ݕSK��Q���6z˂Β�6ѡfT��
�FY�O}�˩&��Ĩh� 2�WQ�@�t���E�������'�1���Ȭr�Y}�/��J>�%��=-"�?�
�w�4�Ȩ�Ad�?�
�:�2��f�7��y����p�C����(	5ӥdC�rzQge���Ǻ+�OKH�W۲_
jH�x�
L&=��q� !��
���br�J��Mc2m2h��1зIJ����䑦+VF	I���q�r����l�{�<x�=�o�-�o�5�K[��&��A����b�J��ϵ��K����7ёN-��
�՞��
��>8��s�9�C=��1K�bt�vo�Sk_Yྚ^n��ou#�8�qI�rL�)
��v)�aU���	j��=W�F;��Yn"ɥ/
�m���8��r4C�z�,k��W	
+C�#��6=p�*��LW��԰���৆^|,���NDԃ�qb������bb�Y�(���yv�qn��4���/X���5�I�Q0av9�Q�<ʊp�x�cCʝ�ATį���3�]h����;bt�K�KsH�*�$����['l�{ga���Ͷ���2LIU�
+����Jz�5
���{u��p}��2t����F�v]�J}0JH~����� �

��43�_�Iۘ���<��k�Wcpek�zk��y����

���@��	�STȡIPm�@�/w>U0b��	��Z
+�/�㢪�nB�=�m��<�u�]A.���Պoח�;�M�?�������VrI���/��%�=jZ������2W�k�EvOs�*l�g����p�[c�x��ZzxI_mW��q�%�aki�i|��c���'�D�/�1��1:ƭ$dy��Ňzέ�e:u��m)��&˃Ml���n��Z�ޛ�GhH�X`�*
����>����NM�(5����Ɔ�k�O��EA.Iy�m
��U�A�
+9�+���]��/
��
�A��
ڟ&C�]�oߜ��Z�o,x��``
��Ӟ�V��W��s~��H�7�_�����_3�B��p�̮�_��
�ӱGs���� 
��;E�> ��)'���m)IyS-�@��Tr��-c��֌�۽ُ,��7K��w�#�8�4
�x����O�	T<0O�N
��
�gb�{��HC���5�0����Ru/�����������)
+��\m��I(��GEʱ�ё[}�/��ؐ�vL�L�u��)&&�Ӓ΍b}��g<XjF~�����H`��\���:�
���9ͣ9�
I΋Ŏ��u�&_�p+p��&.������O� oz,��pP:l�U\�fs�$�>�f
�ENp��&�6�i��r
\�P�l 
�gsQЉ�������T���[ FJ>^��~y~���1��
+B�s�<x�5��$���j�9��2�ת�|�+<*t�Fo��́��{S��
,��"����v%&�,P�����}�����m�4����!���ꊟJ�q�m���}#�B۔|OSy�ؚ��y�~
�X�c���DD��?W;
+�����
q�
iY�y<��Sh�i*����*��h� ��it�82b�
�d����=�ZUvЙ����H�RY� �ڶ_������K?�w��̶��_�ʺ㐗|�5����-)-gWC�<����,����e3
ُ������H��69��Ԇx������V;����tCޝ�Cײ�/8�aq���m1�ae��Wg���_3��fX��&Lޑ�f
�y;��7�w��bU��l���Z(�H)�?fE�G����ݟ�������;�E_�^�7���:�����TU,�(

!�xs�pep?*�0��6
��!!&;�(�N5���N�K[��o6�r
n��?p�#S|�p��E�7���69�5���
��l���f)<ԮA'�����kj�xg���~��~-���'�wВS�L��V��V�6�0>�e�	�b���^�~c���y
7�U�f���us at T��',�f��G��
\
���4��5��N��'h�69�ح��l{��P��<�z
��k�`R}�Vwu
�K�F��@~�H_���Yr�E
+��m/z�҇
6O2+6&8��6j�B#3j�
+�JIɻ.!%_R���i�^t�c��9��1J�BG�[Sm�]�`I�b[΋ن�{������=.g}�)��
��}#
w4Ǧ
�2In�/[U����gvee�MM.�KX�^u�ȁ�}8��`Y��@�Ccc>��Kk�А�ALT2��Jk�iiO�!�N1 
$C�rx�Bo�۩��{���zp�f��>}l`�~��u�6/�?f1:z��,�.�=��'[���RR���{S�
+��U�0 �!l�L�pk�s˥baV0�
+A�M�$:�C��<�~��f
��1Tq7�)yN
��3�{u�b���[
�����W��W���_%a$=\D��������
+V�=� 4ro���x�t��@q�bgڻ��Ի�Fq���@�����f<�k�x�=R���ȧ��k���������b���lU�^a
�}Y�Ϻ����m
|�w��4�

�	!��麞��:�CA-X�|��t�GK���8�=_�w�l[��6�`�,��e_���L��活*Nإ�ƴ{��з.)>�
�R�o�@CvU������D��
�7��z���L���$����0���s��ߟ�!
zT�ˈϵ�9�~��
bʭ�J�� )IAK��Xx�>��	)��vW�K�8)��OJh!e>�!G�X���*�8��K��	y�F\��
+�=���I̪�����㗆	��IB֮�
#"��E�.�hF(�Hݛ��g�fD5^���`3�%����0����q�7F))rN��
t����؛]�g�*�/6�����\�e�u������&t���>b�CV��
�Fo�A>����V)��g���S�9
y�X��2R+v
�B�
���c�
:ަ��=&kK�M����ʹ#�쓜r��o<�$�6�2�Y�A˄���EA���Qø��@��6����X-��#C��H������{p>��Juߑ�^��Xd�Ֆ��#�X�UA*��E�q��c�p�gx\��>ߞ�H�N�,��\h�}>7Ӝ�¡�@FX�/ڑ�W�?G���v���Ι3�L�&3I&�I��^MS��b�+� ��
+��
�R�IST��]�̜9����?�~����@
۽Wy�a�v��)P`�m�Wkg�B�DlȈ�A5
��^_�D��;�C��D�f�/}M
�oG��~�
6>�F�^H�r��P�˿=����>�7^|�,*�Ĭ�����W�隤�m����z�
��;�n��?],��>*�߫(к�$yu�"iu�-
X���b�,���L졙Izo`��"c��#�߻����6���@l��E�;f
{���:���;!����D�3���*hnH
+~
���8������K��5Ws�Sxa���Fh������\C=�ru
���F�|t���6d�s�:L�.�3v���kb�>:Dc��
�;�v�x/�yྐ��l���'�]sB����S���k��IzF�}�`Yi��
5���R&�����15���,�����&QgٞV�r7��i�du�g�i��_$��Y��}3�y{�5%�nJ�*!��zQ�&��¥�[��]3{l�
+��lnbn��	`�9|��8&sc�Zū�Z���97O}2�Ȼ���Vz���n(�9�i8%��8��
�s/ڇ1�. z֦;�7���
i�m]���^
��M���G(9t	�r�;a�{7����=r���
��] �D�:�|�d������_��|�Abv�W��!�&��+�U�;��~[� �
+)ȍ�ʋZa��
=��&&.��S
7`�#K�R]o�cUW��='Wr�ኣz|EH�-�Z"��w3X@~GGu4p@��s�A^�,� mIl�hPE���������ԍYp~HN۔���XL��
�0�#�����԰ma��:ԯ$�Ftt�e���W
+��M<
�G5���
"mC��lm����t{v@� �;a�ʗg����[ʦ�P�ik_�9�d�
Co������1%���kL�W��]�k�VQa��N"���V
ՔߓR�})�>���tÛ?=,�O��u��3"z壳O�_g���Vɸ�<�
#4�=�t?*#U����%��ݽ��#�?��E�T�����h�
O�ŵ��+�����>���iA�o ���*�UI�>3 y�
������k��=��?�*�/��*t��_�m$4�8�#g�����w��z�`�"
+LѾ������A��ظM�%(�׆�9
+F�%a�믤Ȳ_��9��쥧��E�s��_y�7���5��$0Ӗ|d���2lATN����ZcxVTM-��u�9�/��Of�>:�İ�к��en��)q-$�p��'��?+��?3��4���T���m��g�E�
�c�r
��� $�Se�NT�~�ٍ�ޘŗ���VGۓF��~Y�杏)q�%�2F����v6���p�1|h�5
�Pu�8`������-�`�a��
+Gx��ga��5�o�l�޳6ܲ
4�����za�g�̂?b��8��27��=�GGw�u�8��.���Sv� �|a%��9�p�)i����oa$5:��o�iv

bx���E�]Ӑ���+�6�A�Z[w��&fl���@^Ö�����%rKD��[��4wW]tO���jb㑓��נj�S
����#�/3�q
^"5��9t������-S�����n�C�@��������yR�[ʨ��P
+�2\�}����Z^����:�zDq@���;����_q)�Ĕ��
�GJm�����ni1�[ZxAPJ�T��z&k
G5��=;�횢�[%��[F6���nվ��`��}y����<ё���70�:b`�]�@��ctD�h
[jB�/�[2̻�EBqL�/�,td�z�/X:+/���=�Y�M��\�_^��>��>���=�쩽
\��z�w]���m��P�����C�hr�&�
+�H�~ �{�ړ7��Zaхm%�i��՟��c�m���C��_���|�b��&V&}�ϻ��C\�
W��bjDNL��΃R�#e�L���5��'V�k�m��
+�’ߖ��í����k^�~oC�l.�ދ�eq�/O��\l5%>_�`O�<�P@�
*�y���?RRMH�@���O�M�?׾�v�_��{�����p˭�
,c�������!tfd�^��<Z���$����=׉۟��+�
���_Q"
�:��¤|Xas�
8̞�6b�bztY�@j;r�f�V��q
��:
����?�k���u���AXz,
��fT�z��Ki?
6?�I�}{���8�lJ:0����$f���CӴ�cW綉�;���W����9Z��bv|�G�x7F.��Ӟrk��٫< l91��'����$Ǵ����*a�aD�I�XK2�6�[@���qeA�'����&���Rl�.`��B�w
+^�m�1v�
�����[�vƗ��fdtlИy`ns�E�I	q��W�떄�{���3�w�y�k��p
+�X�I]��(
G��%���
�ȈC+��W��'��kD6��y[x���Y#A5��
3j�ÃZb�_Km� ̱kt��o]N���*��K��!�k���!�ю����⚒Z�6�0��m�tYƠU;Z:,<��
NA�|c�7���t������#̆�Rn���_���<"kc����t�3�|c}����fL����+���ޜ��1Mq��|H7<Zw�c�k��a����)<���%Q5�&$���B
�h�W�e����*I����;kgK��<"�=\��GRq�Й}z���,��i)!�w��e
�
�񣫇Z��p�Z|͡V�ch�ڔ6>
+���
ؖc

�`�
���:H
�~��a
��sXGf�3V~cMRu�7���C^�2K.��æy����n��s��?�[
|�-����輜Yu�Y��g����@s�w
��rTnDI�
��a$oC��з�]=�sg���5����>iiR`�%e�p���߶�A
�
�x�C]ؖC�(��f��}g�X�Gez�:����|���B��=�|s
+�r
���4)����YJ�k��~u�R위�8�Ln�w
�0��Nb���A�R�U~{��s�W8
ֲ	!%
ײ�1�vK
+I
M�r�
+D��^ra�}su���7�.v���=x�o��J���~l!
�J!j~8Ϯ|�
���]��F N�Et��8�o{.?n��G������Qjȵ���~�mx���H͕m%8sO�Q9�~w���3�\��8\a�l
Z@�,�q.��{
\hx�k�v
X9l�4_N-<e������}`����d ⠁��%�l,К�
tC)9Xa�����V#��U3�u�EA�}–p����g�������)�EJU�{`�l��������e1��(��tӛk�M�
+���Z^ѯF�O���k�
�c�WGFZ����7N@ߵ�����\�c���L#�G�䱋�;t0H	��-�K�y���)�Vz�
+�����YTF`���?���o�ȍ����ׂӄrGO�Kg�~)��w��w��QP
+�9�?���=�|_ë���C-�so���WG,h[Kjݒ[>,��t���#;�ؚ���T���Q�����>X����U�O4=
ͷ�/����7�J)�WWGѩ���&^�i%9�$`?��}?
��}E�|_�-�P���'����{ꄆ���o�í�7gjo�5
�c*r�{�-_���YX��
?v`aG|����� ��a9Uۛ�&����
�;���o&C�
���<�s�⪖�}fm
��5�.��\�u��, �f�E�g�ŗ����e@�_ᝀ'�/ ӎ�T����9v�����=�9栢É��*��*C���x&0�;:
�/'��jz�$��e�Wx�'=���+����沽�"�$UGU�"�h�C[o�����
+�˰�P���`�fm}�X5���e=�|�H�
z��s
+4�$�'�
��qU
+��.s�����������ǿ����iM��Y��b:bFBk@�./� Q#�g!�D�x��ڨW�h}fꩽb�x����
XT��i��Y���

+�(-A��
辰�-�;Sq3�'t�&p�?�,�ߛ��]u�&"�zX���7�ڳt�
�!EBP�Ë���\��tc_�� 8�롶�/�?mI��kӘ�Er�w����m9:'�D��N�T�r60�Q�I|���,�����
l�.��W�
�1f��^*@���Ϯ��T�fo�����^�
=��''��Lx
+�vu��hz�S8�ܶ�
+N�j`�
IͭYJ�/����#�7�RX��!���2b����E�}���
��#��9��@�U���T��
=�m���˝��9�� �~h�W��0%q%��?
}�2 ���j�އ(:;�)�96�h[����k��7��\���!jJ>!�x�id�#k����EX�{\��Y�5�h0�GF|Mb�
�������fq�͘"��p0�Dy��
�&>�"K�
����(��|�	?��Olk��-5�6Q���+�h�3�
��h1����W-��>�W?�v�LCx��ɮ
���~�
��&�s|���1;�RP����[Hz���A
�c���lt��x��&x��l��	j�Uh��ӡD=���oNL��<�Ê�3
/�����_����Q��qE���3�/
X��C��Ђ�
7ā8�b�C*lYX��n()��zf���X�a��er?�(�#���'�oEE��}m�'��W$��uW��\\���������/����
�t�W~M�(�%�H��XfT/�R#ʷ4�Z ��⁓��YaP
+li���k����Z���-���؈�K�;艙��+D@�^�I=�o�#�߈@��9
�td�[
�&�원��
pGwt\\T�o�8��
�l}�jbU�:���JG��.2Y�hs���i��̫:S���
ϜC��܃�ם�e�7�ڞ��5J�uP11+
��`3�� ���
X����޼��5
j��.vm�f���`Uٻ@w�Y�9%�W���3z~�o�LVl���� ��
X�glk�(����IL��Uw�X�⤥�6��%�
�	5���Rhڞ
_}h��
�[r\���������"|�}�L�,�6f���p�;�{�!
�vT��@j�=Q�l鬾8�J�j���gC���pE� )��Jw��P[re��ϐ�/u�A�����
OO���ҟ��u�ݩ����{KT��r���
M]�F�}���
�8�o�����������2��wH%/���?�js� y���
i��]�|s��`�Ts� 
��ӎ
�V�l���"ӈ���X
S���jTq\Mh��Z4���%-oޛY@K4�U�ܨ
]�m$��t
+��4聕A�X��.	Z���H�r��쵙_񻆝{r���82���Ip
+��JP�~|{��������@�DԐ7a%8eG����bC������f�`W��nζg�,ak#��T3/��8��Ʈ��]��˅Ϯ|=
�;;
��f�5�s
!�
�������5��]b��Pr��^=�I˛k�l��P�
���B��]

�W�J\��$�B[�.��O�)�Mwd��t��J�؁K4�~]����
��&"���m��B^�kn�Nt������灉��MI�
�pգ==�>�ba�Ej�e�(X�E!��َ�o�
����_���+8뗴ܳ�5�ゟ}�ۖr"4�̉���L������kiѝ���ޡ
Ys��b�w%��qG6-����C�ד�v����"��&n�a��Q2���2N�7���W��qػM���[���q%��?��\�eoii�q��o&4���%^�/
+F�+5W#s��}#�$�����<�����+��~i�U�0�#S��f&���"eĪ=��g���"���ōw���7�ݭ7W%��s�j�����Qrn�R|ce��&���x�w���
�,����ToK�Ո�v5�2���D��}c�Ϸ ���T�A�΀��e}��W?~>���c����=��� N�5v7�'���f
]pw����Qy�C
���U����~����
+�y����o�հ�n�zMʯ�xݖ�To�+���=�Q�����������'Q�#�D�⫟�]d�{�U� 1/���I��cJCRp�]TvK��:t������f\K�F��Ұ��?	J�	�J����9�g�{���T��_��3�0�Uv�'�WC���MO|3�wwO��_��vR���
<=�������	L�����@��u6]�N`����5O�X��[��^��gW�_�/���
+�_�hM���P��QuG��AP��1�-��s{�����
ؿ7�4�D=�
�GO����7p�f����
SS���YBU�u�֕��̰�b��Q|v�)�����c�����u���c�7_��
~:C*��Z��Ih�i+tK����H���+��p��aL�캇���f��9��jM�pG�-��$,��/���+>r���N�,�#C�%bUXM��/q��F
yKI�IQ��7�W���[=m�߲J�f�=10[���%�
���΢�Zv�y9��rW�市�
^���3��DL�������nx����h�݈��������
��
W_�g
�1u�ZH^L-�R ��䶨[�4-����%!�?G*q
��հr~��O ����"�
��9�����ζ{A)�j����
������_�7==�5��
@�ڜd�z&�5��S�|nh��
�B����i%�l����P���u�7P@{V
+��N��|����_��;����uW�g�%V5�bc�=�'����!3����
Y�,��1��S�[s��K]����T��e��b���p�ﻆ
�
���e>/�D�+�2E�y��9� �S��so~���]�~wJ���/��<?��O��sD�F|�����
:�{v����n}��)��o�����¤+_�Sn
	���E�v�?[skURz!�i{���G�T�<����Wr僃��
m�	5A)*'0{�
���:�x�'��J�}Ͼ��r��8O�g@����Ʈ��#
Y�2J
�SFN;
���o���~Y˳]
�["�{w�س�#'��I�����WPM�	g*i��4��M�yٝ��T¾]�q�;v�!54?�%5m��|c�/t���Zֻ�b��מIt��SzRE-�i
W� ��"��?e��k�޶���G_��.�s������;ޝ�d
+��{�D�s�@�
��o�;�^X�C�uS{�#V5l̎�E�`�4E�,��6�.��8���ּ9�xcV�31�~�b�}��.��݇|5
-�Y�+��ʩ�h�U����1Ҝ
��x�xnT]����ߛ��ǥ���Ĝ�Ɇ�nQ���Ŗ����+��
�“m/=���b
�9��2"��;ʶ�aY{rTё��@e��h�&�/'�穕�iv�E\ui���i�˯	oֳ�O�D5�x���{1Ԓqb��������4��	
+���`S�����������9lW�%[{ʯ�&�w�)ȳm#�n��@�IU�qXRh��M����
�ݘ%�D�� ��gƷ�;h��R2�u7/�ꢨ��W�E�����~�~v���c�.��P6Ul�o�����
�p�{69��-��+o,�joX[
n뙜C�
ד�
+r}@F�ߐ��
��u9�q���� BU욺G����Yd��#ͯ?�����设���d �\�6G)iy���
h�##��E�D��=#���FD
Z�𨎁
()�J^��QH�����RGT��ݐB�fAO�3��x�fE=������{�$�jK�(Y����23~��j���7?v�?�1 *�Lꖖ�U�
����.�(j at V���)!";�&T�
�ƿ��c3�-�V�+��?��
��5�������]�)my䞨�n
ky�c6ΐ�y'�{R��et����
�4]XbV�T�+Ҳj�غ�7<�
-���1p�7C-g�՗m�+�����I�ӈ
���x!��\�H�ӣ*BIp����.X�SkBz���Ft,�Oh�y\�ώ����"��=��x��}g��G!�_�I�'GI���n���#���޾֗���c�杶�����秐�_q+�9�����Yy
�u�K�@��c
���[s���;g��a���?�|&C���)�����O*��l[%��e'�>�H�]9��?Q��5\uQ#���)I�q���*B���Ȝ�J\�i;���E|�O@:9)�}�59���fa�M�������k_�j�}� �;�
h������ҚWG&h�ĥ��5@ܭ���
���W�㐤p���
�a��怬�-�{�Qy�0����gZ��'�^nη'ǖ���K
�k
�;C(��;�J�w“��M͢�>I���B
�#�����������[�X�< [...]
�f� �`V"l�N��Z9�-=��%�����Q�?�h��<�
��
+d����w� 2lc�-
�jS�Ί���
4�;��"������W���8\a��V"��M���M��{ w
:�L��ض���n�
�rb���΅��Iٳs8]"�G�p�M?�1��V.�'%��e�D��kξ�K�IV�Q
���5]R3*^������]��f�FI˝m�<C�
+�pO�{���>�Mw�U_��JϮ��?�7�;����<$ym�q���<p�x;�\Z��@�5���e&n����ZEC��\jHI�-R�}�茕���:~ŹBѩat�O��̯�aE��
�-�?����\����Aț�5��k�d�c�,�=��������+��� >�n�����}����i��{0o�b�SLq�ה�'b�������{���+C����>���U{y�Q���;�?�f=��= }h4\V�*~�"K�R�~Qq��'�WO}R���O�M�_�=��)��O]��>���X��n���Oj�~>�q��|[��
2��s�*�~�o @��dDDF,�Qa�7Ǫ�+(�?�����HUL�#�D[�GҔ�"nHZ�=��1��F��9����3���g�F�[z@��iH���qNNz���H���e�m-�w�
`���m=
m
Ɣ���:����vlӇ"�؆k��B'�� ���>���P �9x��򓂘{�7
N�OB�6�1�y!bs�U�紅�B��
��7E,ܜ [...]
�o� >z�_Ĕ�%���$-"A���5[�\��8�8�檣K��}
�#����m,汃�<�2�{V*گ�W�Y��;������ 
/������<6;
��k�d�7\�Y�Vh��o�b��	R�c��ɚ����t�]�x��@�5[o�
�8��>̫p
��s���D��H�5�Dۣ�"� ��e:��X����8�(�!-
�1a�F&a��5r�"�J|��e�5��
-�~}���3T��s��zZ3��қ/��Њ�����y?��m���g�.�c������f�� x�2Ҟ��RSW�M-��2c��s𬨜\��=BȰ�`Su��{�n��

iNԡ���q5?�¾;?O)�� $�s�7;
+�~5�^�c�>C�<�){�)9��?0���N{�%6��7���F��i'8��'��9�2��~;�I�n����IL�Y=��zp
_i
nO�g^�l���vױ��
+�'��=u�����e��D�9��%M��N�����I��@�t���5r
+/��?=��t�3:��i|���u�W����݌�P�Ip��"$5�P�z����ƗJ�o��pe/����&
�H�?=tڟ+��}=�$� �S�ߞ�����h{=JȽ3�x{JFɺ�$���H�Qc*3�U @i�%�6���l����>E� �/gs�Z�%��Dd�BW?(u��+!��?&i��c��H�.Q�Ǣ�Zi(@�!��,ZXC���e�7��w�ax���!us�幎�vfc��V\��W�1y
�Л
i��+�#+V!Om=��6g�iQ%�zW���w�yop��JxfT��8��I��t֟N�//[����
��hGn&��*w��>�`L����������:���FAO�M7W��}��'Smώm�V��`c�R��$���Y���;�`�Go��ξ�s���$9�ԋy�B����H�艉_p��Ut���?
\�Ȍ�(m�c��ڦ�o-dJ����{l�.�
:8�C
�u�ḻ��(��Cs���)|��`�s#��w�`��
	6�;����/:�>E�
��,��*��Ɏ��
+}���'�Ǵ���
��>
����a 
_�c󼒎�+�{�����ݪ]#
�g�6�Ua5���ia9�iC�h6Os��#�Tm/�{�Zb�Pry��R|ۥy|�]
��ՇNs��ϬB�
5���
�攉�pi�\y�Q�䫙����@��d�*��
[U���!LJ4�G5��~��w���c���{"���"�$֭-
0uâf��LP�m�*[��$U�:�~
��|9ؚ��<㻕����iJy[a�w����������9X���蒕��
��+j����>�b�^]7�}�)���m
+���N�O��Y��03�כּ�QXy_?J��9A-���G
��D�
�IM����c��߱�o~!(������
��a˫�_.���hи�������ό�^|F+��9|���њ�IJ�?)م����>��޻��
#�,���3��^��g��JQ���W�s���3*ߖ���W]
L��Z+�:�r�K~��/��7�̸:t��o�Y�~0v6�~�p��<�{+��k"�bzDٖ�9��{���}v�w�JXE��w���==������X��VX��t��-
�u����i|��h��$�e`��b��
Ȃ������V3��
+F�c�:��GՀF\$ �
��.��,��:ޑ�����a at Nzo����k)M�&
+��JE�w�);&:fm�Z�2C*XW�)�ޮ����
+��F\�/ٖ���������Fnk�h7���
Ѝ%Jɩ��W_O���FMH���]puWϡ�Ul�g���#5���*򃓊۶���rx�rw���R��j�#�U��zBKb�<�7-;$hT�"#ne3BKt�2�H�)X�g���–Ɨ�P��yy
����q�7Ů
+��s36g�y�!� �~l��n
�sfe���{O�����
��=Ix瓓��Zȳ�j���;�lұ�׹k&��d.���JVKDGmٵБ�|���R�����Z�~0�� k��F@�mJ�e�
�R�$6�8�z>�k����_I�yq��3z��b�S�(1�5�(2�p

#�|�)w�Hżw2rLު����+
*h�!

��p����[�[��� ����+����mO��
�?�Y5���z��B��Yů|^B������Z�Gڟ�JpY+��̐��3RZ�fY!9�����K�9����W��n���I�/�e��$�DƇ>�&V]+�5
q�o���ߍ�w?�Y�?�:k�;z�n�c�=r!�Q������@��8 �nm�8�”U�2�\G��1�
�4	ͅ<��:��٘������o��
Q
��7��⋶���QLa�ӛ_4��>
5;?npG
$\p����;��
+��͞���,�h�yZ�y�Pћ�9�H*��qBO�(快�57s�
+�,�r_~Vɭ�������6�)�Et���tC%$u�]C��K1�3���
�Sb��g}�T��+ri���lト�#}u�Q;F����=�[7�o
��5�|�3\v}w	�30Ыrf�s�\6p�[�l\XG�	�e�jd�{��qHK�5 �C:T�G�Ls�0�R~��	\��=
�iKN��RR��&*�bJ�̧����5��I�6&���
y8����=
�1�"�l.
+7���MdB<�����B�
+�� ���9Pycm��_x�>X�`KKm���\W���n����e:�������<ЪC{s�_��2�7lh�{LJ�c�r�`��f2��A��w!�VlÖU��Lh��:{
�Cfl��y��G�q�3��X���m=���
J�\5�N놜�T0Z|2j}PM�(��+lֶ�K�)8�Ȳ�;f���a#���������|GZL�.��Dc�޲�8��6d�����.%�g��%���iZy� d���R}�O�M�-�3�r6�B�:�&}m��ؓ=
����ХFb[�ODK�ߵ�(=i�eWyiU=
���C���s�@^
+,b*BrLqTG�
���>��1I|�S1A!�����K���H�lj޾����rg�m�k�
+Z
�����)�c�����[�eqe{fT�,
+���.�]��et�Ҋ�%�9�Q ǭN��Q3s�C�91��<
����u�a}��Z�
 ��
��<�nm���B%9�����Ie�)z��(��;Gŗ��
hr�
�($�79�%j��Ԝ�5�����
�}��i	�:�^��4Y�:�7�1yQ%�1�a�/OQ
+Ę�3�Ƭ��"���1\}�3��hٵ��T���7u]�Y�
����
+.��A
�ï�օ�����_�	��m�Y|
�#�,&����EFKL�C�������
ғA�z�O�E�~�&�Z�X �P}<����]#
�gfb�lC�/XA$�����e
�A�j쬿a﫻
��]�d�c�
����4[F��,C෻�tLDC�w�4=��]9X�{~ho�ڱ�[�К�_d�0�Ӕ�#w�±�s��A'�
����-=�G��Y�q�ne|ǿ��=���FLEL�����;1���W�
�%E�Զm�ppSϥ�5
t�"؅��;��$z��5��u9�=b.O����^�Hࠁ
+���
+W�R at A
���?4�iQ]��'c�yg���
�*��ju�]U�Xk�^�{�Ӭ�S��#٘h]��U�_$TF4TȎ�C?X�
�up���
'�H����F*8fe�B�t�GKo�-+��3�2z�9�8�(��6��-��jb���P�����V�H��3
�E�Zzk�*�]��ƬhPOl��^[�	i���U#��Oo��o�꽧k��%��Yy���,����V;��5�,���w���Ed��44�1I���?^���n����V@�Y����u^U_�_΃�U|�[ʮSvv�6��9DZo�
+fۦ��R��L\r��kɵ�yi�~�K5����@5v��
�S���Cփ�H� �f�k��h�gz�ie1-��	ۯ�{OW�(U�
+�8�N����zg��Q����\���C
+��
.�5�I�">b���]����Zb��::vw��
+����	\��r_΁$���e����@�޵��[F6is��61���.�h�Ā��]=q��}�>�UR��֥-Iީ�n@[m*yX�8�d�\uju
�	�<c�IRX�}�@�]���:rs
�Ͼyj�g�\�_D�w�߻(ȃS�A��|��Ŭ�~@����(�u���p��V:������2��
+��Ȑ
+W�mK��ۨ����t������Q5���֊�:d�"�}SA
�r�ˊ��̵9R���߹o��:���W��|2"h��)
-��e�)#�lj��M���>;n�m(]5Ϩ�
1��kj
fEޅv,t��2�1%8����s�cA
 v���o�0Eq#
���#�e�R���ژ��߲�;���تha{U8��d�BF*|ME�v�

��6������]M���m٘��Ҹe���&ƷDi��
[��m����T���`o�a����:y�6��~a�2q{�ֳ�hw����0"f
g����[��ٺ�����U�xSOn-�	�jB�_��� q��ޯ:t
���s>��1A�q�
+Z�������k�3�&&���$j�� �l�P%CO�n�YE�d��}|��m9��2�ض���:>�9O+��3
���,˔��*���)�ʦ�N۱��f.y���τ�YM�)a�u��F7H�4t7����ٛ
+R��"�9���S�ƕ�A�U�
uH)��N�w�����fy�6�0��g�ֲ��ϵ/̍kF%h]wg��t/vK��̏|�^�{
����{�g#�vMt�>�c֡�����%�K���%Z뎑�
���j:�1K)\����J�9N|g5^�*���%*b`c#zԯ��:g��6��c:�0��Φŭ���"�g "zQ�O�IP��3Dy��nȺ�O
։�A%���4t�]*��1#��#Ԩy
��Cm�
�����-
�X��*F�_I(]�u�
%zY��KC�M?�媢��<=F���	[^�)tx��5�耲��ˬ���9��o9�S[@���v+v�]�+��l�k�^��̧�:��
W���W�#}��Qi�04�Z
��Mv
dM
+��.
�֪���+#����,n�޶�F���^��۲3�q�xf��o����cN:�'��Y[D��Ml⊂լ�e�F(o
S�w��&jCDŽ�d<T�&��u�ib��ŠE$��|�_��e ���ױ�c1d�U�̨�
;��"��:��9|��"�5n;��vէ���f���:Rs�M%
�3{B:!l泶ݝ�
��k{�ж�a��
�er��b�r�d�$g�̽g���NIh�aN�������Ow�����g�ƙY�f��T��<�	:2l=��v�$h�,RZ�v�S�����f A����%�R
����֋��6|m����S�G�xC祿�<!�~SQ��iJ�èn@���
+�F�mR1L+�-��jƆ[�sS�
�c-�]Å�E�yF?c�V�ɇ��	��Vš�!�����{��g0�r�L��w��7Çp�Y�vs��Y!q�Hb
���W/�N4��V��<:cCA����� ��V��C�E�`nY��r$�5I��:ѫ
+
ڿ$`�9D��r�ǐ[K���7qF���.�$�bA��#!`/���<�^V�(���`��^h�'d�N�*� 명�;�ab�c��&�E���OXSr!�yQ�yJ��^`�mhy�
5���y^��8��*��AO�$%���J�d�
jRJ�
��S6�d�G^�;����
k�
�_�E���u�a7t������ Z"`dtl V����
�K�*�i^6���4�$i��K:i����4,8_�U�#��tJ���@�Z>f��Dz��
�.~_��՞K<u0A3��a��u���� fQ�W�
��H���ƊrX��
A����_+��Z�|�c�Xm�Fg�������}ty�ӫ����w����U������;�
���?y�*�q��;��f��v*�:U��,�bѡ袚fh��%!k��do,a��
�����'f
TF���n
����6,.�ˆ�9�b��c(Q矋�÷�SiStY� }.��
�&_�4r���r�h���
Q���ķЅ
[F
k��i�jD�8=�>1.�I�W8�}6�:�PB��U�*�L�N<P���J�dU�
�;6Q���s�6~Z�=�Q��v�ڝ֏Lǖ{Ǽ
+�0�.VK���C

�a
ztȈ�d�\��Q']�O��&d�sɸ�u%���%�_^�#��y���ϧ����[*h$i���[ꛄ�ҝedÊ��/2�g�G��o�(�I��g�ai��w �8�����m�3}��і	N��q�莰
y
���	$�G2�	�����{��]"@cP)�ҦgaeGᮭK�5�9��gYs�}%�A�w0�0��d��bDh��m
�v&S��~����=}E=P�o
La�gf��_�c�&�%�Yj�m����3����a���ba�+g���R6<R:�+���6�1�7q �5
�?S,X("�$��J�Kr���O��!�4An
+��g���|��8ϥ��mܶ�#6x�ѹv��_�P��=|U5�:W������X��&�c�\U��Da
��B�g\I����W_T��~��ӯ
�����>Њ����тK\�o_�VPk��q���mdd���{*��W^#dϽa�%/X��

�򪱤�F{%�vM�FQ6�\U~�
��13i��U=+#�g������%;+���5�؞�����ɣ�U�20�1�	-�ɾ��i�x�x������d��#�eN	Eoc���QF����
w��V����.�z~�w|��ꕬ����z4����m�

2~�2�SQ6�˴Tȿ
+s9'�*ǿ���ɯ�
+>}�����\�7l珹��\���TNL,���S��~��
��}�T�^	�����[n����C�/:.����47�^U��Ku��E��_]�_���K���%�����l���IP���s��o�������^�r�t���؎��*- �)vw����-&&�:�j���������8y���΀��l���`���x�l�zpH[]ڹT at ._�'r�ܡ�cOR�~���
������釿��1��3�z��
���'��/��9�� ~�˩�G����6��-�kh��*昰
<�2��R�K+/
bq��$A�Zlm�\zO���9X���^f�������;�WA	��[�ITG&��9ڢ�,�G��暭�2ꁱmh�(�Q�*���'im�S���L[�6��c��P3�P+	����l�gaN����_
+3��	?����=54˱�۟���2�O���_z�q*��w�o���c$V�πh%��d�KX�ȑ̛�"%<?C�ss˽��[w+���'w�ã��O^&;�E�n<� w�
+��@���zz�l㨸c��ڹ8^I4Ⱥ��"cCK�
+�_��XDV�������F�9$�5!��_��N.P��
���O�`��t�
��/E�s>C�*lȖ�4�O

+R&���nR{���y%�S;YLW9f�7>.DK���ʇ���]>e�x�8��S�������\��7



�n@��'�q��:}*���x���[�9��r<_߳k����jQz��cT��
�;{�g���w�JjI
��"qfr�It�+��,ȯ���D���h��Ĩtǁ���MU
}UWF

`��(����4z�J�=�ފH�|����7���{�����
�;�;D�
���O
S
�bH7,���E6�[1�ު�h�9 T�j:&
�u[	��M/
wƹ�����o0�!,��]|r���Q<�W�P����
��rp�&:|����K�W~a탮fE�f���l�XUu�M);�GD����
N�T"�>�<k���Tߊ�h��%��p�5����CP��k ��
��'��?��Ot�w�Kn�F���z���=~I�ڰ<^Sj�,�)i��}K*
�8ƄSR^�O>�"RZ~�Km��K���W�w᱂�&�޸�2���[�/��9���8�	����~�J���zͭ�J�fe��yZ�X2,��U����[^�
�)��S�/Q��WP��^zV��ਊ���-?�|��x�,��'��ɭ����������^�n.����賭`��u�
m����
j�Fp�ϱ����?~
+�܈H��.:��{� ���
3nx�n���	�:<s;��2n���L��~'�g:ڔ �P'ac�]d]�0)ղ���%6�y;�P��c�������<��?<{���������
��
���=�􇀔��a�8δ[U�lfo��
�����(� 3r��Ľ�D���~*�۴��lz��~�+�	��wA7>�3
�>!

?B��9x��:��a|�����7��t�ωËl����Za����dm�
gQ���fhg�`|C���i!�Ÿ�DQ��BH3����w�RZ���������s0�ƝG1��
��T�cp$�7P:��Q�E[Q�1%�]���|s�
��u>�S�KL{�%O"S�~	�c��f��sڍ�nvx��仔�����/�-#E��~֪��0#�&N�8I:qY��� ��g
++h���J�>�(�g��W�� }��␒Y�c��������!̟Bb�`�,z�����oz�$vY�J�T�!��jҼ���/���nNl�W��Z��h�1/*W�ci?��D�"9�����
��!2�⇸�����9�34U���i�Ԧ�ۥ�MM
Ϣ*N��ꤍ���npk����[�,��E!���i
����~t
��p��� ���}��W�WT��SW��#��ܣj
"�t?�)�8e�T�h�~M��0=D��`?���"��R�e�/�]�R��r�e���%�������7YO��:���:�t.tx�"��'�x#>����_��b?mOK�\����A��4�с
l�(��bط�y9��b���/��䟲`�Ϡ��'E�����'��q?���oD�Wߌ�i~W��aK���1�}:�Yފ]Ք!��+�
��fe
K,�Զ
����'A�rY ����-� 0�s�}�I�
o�sJ
�s���� t�:�X:�_U'
+�uj�]8�����i�X�q�W���aF�Y"�6��vw
�t��׉��x��+��2(��S ��ga7>��nFd�܍ ��˦�^��2��ťʌN�D�aL�]����p�-�`�\S5�l�K�#�m"#���
��M��KW`��7���G)�?�sG���^��
'�͈���/��&����p�@#�@��[���:�pۨt�I$��z���m���&u��ZDcI>��O0��똬�߃�i3�_C�]���u�8wjX1�����7e��n9N���eU�a!���7��,}���>.���(��}@��W�����d��[
I��������`ʾN�E��X�c3=o���&�ǯ���n����&[.
�$"R_�@vw�pn[�2��R�O��|�S��H��4f�oMm{DSG{pKgo�`��JY��
�}2%�oiI�+�܌��C��
S
�J�}��ֆЊ�7
+G���?�f�>�-�!6����M��"2��
Ϯ�1�p;%��f�=;;��Z�XÄ��o��6�i�M5r0UΝ�6�{j������s��6
�Vf�'�unE,�ǀ��;��$�x�6��;�p�K
��lp�
<�߹�+

k�ϋ9I�B�ߦ��g�	
+��u�IYM�`;߷�O
+o��@Z�Dz������ap}�@dm�$��bHF3�P�jG
+�۽�]�
g

���]�YU
�h��q�ZR��Fy��JE�������
+i�\1ė�u��Z�:�c{�:����n�
��'���˳;u��%gH�n!{/�K�W�5���ꆺ��o�{o�q�;�j��DmŢ��D/k@
wq"�*�/�k)�[z��yd1s�	U���#4Ga�]��zU�^V�*�j
+m���GW�::��\��86fWOC
��
��t
CZe�X�G�
�6wJ3{�����v�!
�jzAӳ���Th�g<�:�U�Mь�1'E����l%��ۍ1F�� +{v�7-o!�%�0���@/nCi��������Ɓ��&yNW�<_�!C�v!
=]��6�g�6�
O�7
�K��"f�]x��(�7�FJr
����6~���
�����C���qKm�z�6G7܊�K�񋪞�
CwSW��1԰���+�f�*�zr�|w��l���3eQ̊[�U at gG(����U
cn��g�V���0��Z�+I��X_}���3!dLIQ���}m�ؑ����H�8
Gm�/I	aˣ���G����)�fIY�N$HW���:z������ľ
�Й[��a�?2ٍoK�ۃ�DIM�=1}��)sJaþq`lGS[�1��?3�7\�4]g�c�&�A�4m��ԝ���"�V�Z�Zm��cz�xNE�N�
co�(�Wu��^����P̞���ֆه:f���97��Wz�_����
Mq��P�IyEa#
����>�
)�M�t΍U�x	�ݬPy+`�_eR�",�5%�Y
־T�tn��\)�MQA�t��,���H�_�1��-�fUw���6]׸oj��1��v��
#�>��[Ssr�Uu�%mw����o�,gZ
��('k[˅n�S�և��V�H�c��u�Iqp�Y��[U�
g��p�2dC�.�S7� N/l��4��pY�V��I��'4��EmvE]�ڟ��;_�<02
+v�Ԕ��R��Z���J��>_�jє�4�����i�'F���\�
+�K+�$ʒA�S*U�Z�i��d���;�������u�O'�r�Vİ�JA֋�JԺ���)��
�L4�8δ�ߐ��[F������A^������l���rJ�ڕ#�օ�u1�ݪ�G�ђV��d	'��r'2��I6�D�O��SSǩ�'fVю�
]U�·
�׹��G��L��s���a{�ĸ#3���.<6s��z�U]���P����|��8-gi�:�K
X�"�]��e)+kUFK]�R��5�����|��pq�*�����K���E1/}e�
��d�\�F��C
�:�4��TB��
P�RxAHO���
�"��Q^����Y!#rN�H�7c&*�%����-uSݮ�U�.+��֗�hS�OLU%s�]W���s�
���!X�MSJ96WU
O�W!kjFޢ��=�j/�Kj �f�謁
�;V^��d at 6��i6
|d���
%X�z���@��`k�����2D��
������s�����B��y~��
��� �f��:Pz�����;�ML��6xk~6ã|]�q��8ss�����/v
)�%նPšSp2gļ�˕��
.j����|#���2��r'��HM�<3��L��:�Ū
�����WD���\癎�7��Y���e���TZ��BY����l^��Zmѝ�U5oþ,4���i�xc,�<�c`/ת�����E.��������{���5Q���@����r��6����$�8�,+��r�:
�x�q�x�e�x���`�\��a����9)3k{��o��Ҳ�������7��c3�|1͡��Y�S-ta��_m6����;
Hi	 ��7�_˘i�mrvƮ�
s����R��D��Ł"_%?�ّ��*%mKi�Km� �%�LG�9Փӷ��~�ڄ�u�
?hK2>�=]^�u�ڑdX�K~�'�w;Tb�:>��P������2���	ٵ
б��b��{�	�ܶ�=Z��ץ���	�����5��=%6vM��^�D�l�p_T��^��D3������_�+'E|��
��f=[��w^��.�Ʃ��om
!"��ؕ^j���
�և��
.9Qc�ƈ1�~��xe��R�o
+F���ʲS�;��910�65�PA�>Ҳ�'��q����9"+=�=	<�TSu����_M�!�zΉ��:�W�mڪ�=M)�2L����|��X�t	�`��f��ö$ؘ#-�pK��2۔�8ݘ�hE�NJ��j���cH���7FM:4p�rb҉����ecT��=9>�X]
��,��2`���ǫ�Ǔuu6C	ή���
+t�m
-��iI��*|�U�
[#>_�p�'&*�ĀM��#N����ő65%��\e��by�e�)%�
��8@��d�h�
mS`cօ(�M	.tOIϱiX�c
1�V�W3��l���Ҟ�~�?��jg����L���+�.p8�Q|�e�8�X�@
�𙗳���X�
+�z�#�_�\��P&8P��z�f��B�Z"�rF �����G`�{#�6lG' �/T��e��-VTΔ��|�MG�;�b��&̦��jĶPU{�XӲ�������> q�B=v��訋c���
ʑ�{��Й.�{]Q�o��l��Q�6�J;cf.��\W{�օ0�-�ws��0݂r�o�|>V���+i_,>C�j���#oM�$?�"$�T��
96hk�%��t<Vz��ΝD�,���w���<3��gFN��0��қ�dc ��
�gS��u�l��#-�� 
��X��PK?�
ЋoL�)o�[�_-v:�tA>v`C�n
q�|�Lu�QZ�oC��_e��[SթόU�wW����6Hp/6�ᩊ�)��L��@��lc���<��Duܝ���7�
+fΆ�8e
xͻ#�P�!�*B��yo��!��ħ]X��,}��?'��/tL�bG�����'

!O�5�
#1�LG�;RQ��g8
h���2⟓|�Y6��̂�oF�8)��H�^
��-uA?Z�
�M�.8��G�>��B����W��BW�_��'�E#�O��~�f6��d�h��dS��m���8�wW���>�XFZ�C�Dh����##n���7D��=��
����@o����-9<p[��)
83P�/�Լ?'��,qgF"x�/�yw�r5SYmS1����p� �{W�ܗ�C.LܢS
��[�w�%$ k��9X~��ůvey�
�n�<���B��(��+���$���S3!�n at E�( ���ס��pb��
i�u���
endstream
endobj
45 0 obj
<</Length 65536>>stream
+
	�
��B)�n`c6�PA��Y���#sI��\Y��6�r��\�j<�oU}]j��?����.sK
+�[,��U`C
c�L�r 3��c-��TK��h9��8t_�lM2є�r��/egX��Q�]H7����-�D�H�u�\���s
��*���
\��F���
�H��Zrڞ��M�K�f�_�1�R|�R��Bdž��Ӳ�E@���;+���>����vv}>����`>��{�j:��I*��)�D_�-�,4�<Z�K{�я
��G͵"?쉉a��MqQ��-B�,���εx�����N�����ߴ���
o��A��c��
%>r�:˩u��:�]���jH{<Uu[_u{�<��v?���8>v�Rz�/�t��ir��QD��U�N�}\�{6���|w����p��Pqؖ���+�c�t)��w9�㮩���r[�#=1�@��]�&&mtE�g��u9���Б�r�o����=Y��Z@/w��E�>|�rG�����7;��Mq�G��w���җ��X�xoC��?
g�
>#���an�޼��\�oT�1
+��ܤ;V5�l���� ��5��rG
v;*p=V���f�p}c������?g��s#!	���}q��0��ҙ�bW��v9��2����
�^��(��JJ�Y���⨝!��
E��;���|��ɞO~RWex�g�K�c��C}
�ȇ
+��-?��Z�&1�
v^��}�g��^-�<R���u��K��㟮�g��\���t��0!�P# 
�/�J���ȥ�9A/���7�R�g�c�g���d��}O�B����Ӥ�##1�XO��6K_��k}9n
mYo��\����3ӵf�����;�_
�H)�Jʁ��/��X�
+�LuQ�Gia�l
P��:0^���M5���J������>@
+��'��3
,u�\�\о�8�ҟ�4�{o�.��� ��]����
+0v+k����@N�?P����p�}iާ#%$dCv/K��.�z~�b��{`
k��-��@Q�=q]�~���C��ԇ]��_W:Q��
+V澜�`@y��R�+���nt�;.t��9/PQn(�y��c
С
0Ә�PW
v{�~�X��vo�
�����P�D�|8D��T�rvDEc��[��Msu�C`�����`Cu�ݽaL�׉;�BSE�㥶4�mq��rW��|k�����eW�T>�H�3W���ၗ:|��8*lk�1ۖ�܅
�ӎ���L���:�j
�e�������fo�����UI��4���R=�'�]:x�
y���35��G1&䧭>�)���Ax0$���󝐠 �~n,N�g~Xh�z�)�rk�����&��UNM���n��*���Y`�C�,����i�?��qw���bD�MU
?Q����D+<� ���w��
1(�P�6Ք�Dʊz|�'g���_�[S�[�P�m!�oKT�o��n�`���qw�3}��rҡ�8{�7��r����rd��X�߸��QT��"��\{���X���48��
�s
+g��+S^\ͱ�� ��Aޣ�ĻS<�_K%�JH�(��u0�ws �c�E�h��Y��5-�(����^T�k������C9c]��Z[�{K���tU	�g�8���6pй��0�
+�G!�O�l��3����k��L���v��ׇ��mQX
�DI����m��Q�B��b7�E[��ZS��X+H�7WW�vSB����7V�=9T����p���x

+Ԧ���
�������{r��Ғv�������OT���F�2]�|����~�_/!����P� K/�u�)��=�V
���z��JN���n���4㵂��ju �?ݔ�)�0۔��X��b�
�[<����%d�b�ݷ�x�I1�Ä��FƎ��������\�� 1t����҅�9�����}�'�ӎ��m_
�ЖD�
&��v�o�=`����WBl��~�����Gv9�����{�c,wc��+�/m�F�r!�@Z�/+�iL{=ۘ��z���m��l���!����Q"v�~��\��,���lǹV�ˮ���
�����=�:��>߂�4p�����;N��|�l�xmn�z��
���W��NK
y.+
P�嶂�K��/����iYޓuiϖ;!^����2畚� ���@�{o�0AE�������aB�mI�	�
+J���p�<���.h�M5����.H����Q�{��t���̀��Ԭَ|�1n�S
?����r_Ϗ���grA�w:�Q�4��#U_��PN4>;�wcU�-
���]i^�?+,®�}�cA�;
\�۲]W��<�z
���iH{�ؑ�俛l汑���s�EE\N�5^N�T��,(=��� 
�K��]
��
Op�_�O
t�
r�D�
���*t�i� �t�}�hy���H�Ⱥ��S=�6N��_֡
�ܕ�b�I}���rZB?
+�7�/\�L�f>���<@
�QW��`�
��"�Gˮ���M�f,%
���[�7٘�ZS���L}�����G��`�516�X��a��(��w]h�x�X��b��/ÅO����т~^l��
�p������r�H9��j�!w�C�̷B�W%�0!/��0+���1�Ԙ�ڈ��
��/1�G%�GSy���NnB92�v
"�΁�;4ƾ
x��LS����ԧ[��w�Jt�D;�SY����`;�9��3��{ �ӕ��T�
��v�݅>�l�aRԣ�>b�r#��N��M
+��t�y�6��3TD>�^gZ��y�^��i�N5�]M�<E��GP�{�`���-鯵u�Ϛ0��D��G�� �����/���Qj�r'<P����7BJږ1���P����W�
`gCEڋ�����
��iS�Y���~{�a��"|�|c�������u�w�e��N��?X�ͦ
UY��zH������3#5
�����̏��ط��O�B��T��m5y��x��
��� �_�D�m
+Q^s
/M5Ƚt�
���Ć[D� 9'�r{�1�î�;�J������#y�>aML
+7�g�ԕ��L������A~N
+�Yb�ׇ��,���!^7��窒�OV&���Mys ���o

�*A���O6���
U�:��|�Vpd�D�ȡ�{JT����jy�����
A�)��^�s��R
+��
+���`�5a҇��,�
v9YB��(� G��\g�(�q��ќ�S
+��q�H������"7��y� �d�
iq�B�u��)�
��:�
�o�}��
󺚩m����}X_}U�#}U��~�ס��t��o(Hɪ�'���ћ2F��4��-�zԝA��o���ܘ��ݘP���;�Oyx=�h_����v ��΀�V�����7["R� ��nb���>^��i���v#�w��a+�xS3�u���\_%��G�H���2.�`����E{�v�
�����w ��������5��t#|~^m9.��7Հ?��b�W��}�d +bڔĤ���;3�����R��V�>��K�x ��^�x$cw�o="��Z����Lu�}
��Ԛ�|�!��j'��rW��N���.�ma��Ȩw����y�r�}
�֓�a���
�ts��U��)�z
+|��xe��7
b��܏Y�G#9�{���k�^صl�b7�}�
�yw�x�C!զ�'u:ӕ���8��֢�Ǔ�w!+��B/�wK��^B�ϴĜ���:.�*C��SZDh��~d�Z7�db�hY�c);��|G���{+��8s
��t���(!�ڟ�И�t�.��r[�K�0����}
1�V�t�&�\\礛K����]Q������
͉N�
+B��9^Z�RLH��ލ��s���������Q��QN�t�ٮB�%2�d�ǶHK���0W����2��o
���U6�E
+ڮ�e�v'��h���%C������ͩn6z<A'�O��-0�W�dȶ������&|��`�������&�9�J�]ENؓ'�{��	��Zz��(;k]L
?�
+�[C�ȹ���K
���`'S]�sy��!6�t��^h�}�t </�<�]E����J�
�oև`�+�`g��8j_Ãjs���3��6�\����ڇY�RB�lK�Ǚ���GjJ�����5���!�M�A�
��.���ϗnC�ʜ��{m�+�+C�
� !�2 ���Of�-��
�Ӂ�}fdlK`��"Tȑ����IK�oD8��ҟ�!w���;g�r⾶�2?@�Q�d?8�ğ���H��+
+�Wf?/�Ж�<�!��	1[�(���y_��ʯ
<�lȣ�rg��p��fg��NV����)DzZe�S}M�]]�X�����
��s1�Wm
��TЖ$�ú(�E��
��@� ��h�(|�/�K�Ky8 �'�k��zR�Zw򛩊��KMq�,���k�`w�(&�z�n?=���,��D�F\��v.j�1������':�⡪.����!N��
��ܚ�v����|�*��BG��C
9{�$�1���;���}
~jd��C�^�]�o��
̵�^�G}^i!�?h�{�ڗ�c�����1|�
�ڟ�+-�?���	��vx��O�处s=&�L�N�:E��ca���XCM����rgO��n����e��K}��F�K!=�ݞ�t9M#_ΰʗ���"N��-*�ߛ%�Y84����z8՜�#��rf�&�����Q�~���[��<M���="t�?�q�'����#G�@]z�Ji��q6�PǁX�8��Q|��0��L��ؗ���;�_/��;.u�;�Ǚ��j�r�}KX��?����N��� kf[s�����V�!A_�U�!zw��˾�5S��'#%��i9�*f��
��&ЋM1Ʀ������s�LV�?���]����$�m���)��/u��.���c#߮%g
(ё'l<�-#w�	�rd���>H��4qQ'ZRʷ):��Ă�H1�B�!�����-�'u��^��
�%Z��|���s
�
h�ּwR�/�ZF��%m��
%>v�<��Xh�y
i�?d���Pł����<��6d����;���k�����}5A+����V�pϭQ6lQ�)^�%D�ka�����׹G�u�#-	�o̦�un��/�+��YEK��J~�]	����L�?f	Y��)s}�� �����������s��os4ȑ�1��i�;����#
�3�
+~��]1�`�;PSr��
`/��

I��p�����xй	��ԑ���=ӳp�ZҮ��m|���ю
��䥿�Qpr�1~�����_,��\=�y�g��Ui�4��^v
�.���8Mԥ��3B
�5%;~� �����>x����zo��u�)��AB�������S�QS��l�-��0�.F����L�59+߮/-���9�=09-��05�]�O:11��3��=#1m�DJ��g�ʹ��)
��<��4�1vl*��_9�
QA�Rg�ӓ	*�h���d��v�C\U��F��
:�D�K x/q���m]��kM{�'�y��?�b��4&<��z�y������ljN��@��.࿷���'�c�i�b�
+ }������\獩�i�JF��@q�]NM?ӳ�
+R�\;��tC΋
)5eUH�1Vg>Zn+t���R3�g��э�9Rҳ�Ÿ��^����7�	�Ax[%�χ��<��/tL�]�kj�N���ϧjz�}ya4����b��p��qJ����๊�x�TDŽ]�k*3�M7e=�J��6$�����u�N�Ffᦔ�&!�_�o
h9V	p�(o�()�H��ߕ�A�
+.x��Ѓ
�ij��ں�
s%��Ւ�s!�*�|�t�?X��E�+�ss�_�U<��09q_�����c�Ø�-i���(.��\JYS���
����X��� ��P���2��b� 6�f�\����y{*
�PO͹��#4E�[C ��1T���w GH���;*Z���U-gS
܉���&F��<Q�|�Y�2���u.�Y�P�
���N'���)
�P�����[d��
���YXk�Ը�6�dž�
�)):�@�5��-	���	�
�3#����0����W���D���
J���G&\�U�
ܒ�|��ց�Җg=5��<;�~��nǧ��0p�i.����F���^�p�W�����bOS-���T_����,���UA��l�
������*��c����F/|h �>��~Gl�7��
(Y���A�ߟ������f��MX�}Y
�n�
]�Z��m�'?���}k�0����E�C��m9#�p
�mIq�mv�+��f§]�Ԏa3���`�K]9/V��^-ug9�
a���Ԭ�Fz���]'צ.��%x�.徱2��� ��*G���!���!�'�������Gv%t��
)x`��օ�]v�=ƈ����tb�-v�\�Z�^�\��Y�j��y�-�[B\{ �s3�.ua���iU��
3qn`�먙�#�
Q��lK�cY�/65!��,m=��|7.p��t�!��X�����g`o���wG����++Ԁv
�m�1~V��B�ȹ2v

ln�Ya�O&Z��涡ss��<�&b��&g�ܰ5΄L���q�W�e�])��*.p��}�ҕ�|�t�,�x6)���aN������J�C
+P_�l�
�:��)�
����Mr�W��_�쎑��^�f��s6~_�0ݞ����l�=���+��]
9_S��n��8��,`��X�3k+��J�}�F��v%1�n���*�ߪ�3���
ԉ��:5�A����s<涂�Џ��R>��k���Ǧ&'*)ɀ�͸0����ѐ':Z�\7�}��zbb)8�/;
+=o��g�[,p;Pc�ϧل����
�Vf�ȡ��~2��ڴ��]
��<�->vW�C
�+kRv�0���B��� �C��K@�"���ܬ���C!�b���l����V५;�Zz6�b}[�
+ -Vud&d�
�XD����O�r׆�a;c��3��b���
�D���ve�8��A���Q�	�G'
�u���0�o{�E��c��T��?V�c��|Ԯ��h��sOg9�)�@�	��>���<��<���M�`WQ�X�D�I�);*b¶
h�E���|0T�>֗��; t݅Y@ܔR��:`����"J�>\ԣن|�)!Z_��J�L�ci/t��\��Wc���
�e�/b���`q�e�3�[�7^�z�XO�]L�0V��^K�I��S�X��^6%:�TGL:�1
�JF憜�������8����J���4��xe�k�
bWӑ��J��*l�PK�#�Ce�Cy��M!���0�g�
���Hʾ�a�t,�����l��_
�w5W%�7W�=2���_jIxu��$�J�
ݸ ]u�}��y
��$��T��0���}0F��W�
+����d�/JR�_@�\�9�y�(NY��v��ؑA��Xp� }�)�z�)ợ��uq�ׁ�(��
_����eW�O76�^[��)Gz
�P����5��<
#�^���6ť�9�!v�+M8�D�ï���Z3�/��?n�!�v
2��E.
�Ϋ�ʺ�r��Ru�UA�w@>�+
�e��)#�^��],T��k�8�ڂ�
=���&8�S3�rb�N�
��AZ*�r��ls�����o󴢿�ٴ�Wʛ�fy��=O��Y��2V�u�%� {C�H���k���-+��R+�k�N~�����)Y#Ԅ��*�M[Q�
��

}�H*ؒ�#6$�I<����b�
+>����|a�l��^"�<��D��t=�������n
�8۔Ȁ
#=�b��Ņ>>�
x�6V
�;��_���8ג�ً���?+�5�L�]K˺�ky x��A��B+�gC��ݑ��[c���㭵[�
+캄�؉�4U��`�
���B�K���lȫ�sB~�
�:Ȉ��Fn������G=�
씧����S-%}}l�%jJP ����
7�>�؎~������W�
Ҿ�OXb��E�69
ఀ=��6V�=��|U���H`����*!��
a6%�ĭaR‰����2�~9�*ޕ �'������Іoڠ^�Zf��&;5�R7Dy�s�q��;3����(d&�������
�P����=a���0,bG�
+S��=�h��
x��^t��2���04`{8�e_�ؗc����0Ss������;����RS����r���
<ׄ�G�،o3L��E�`�O�f3Ԕ��l䙁�q�'�Y�`�-2rk�;Z�u��Z�|ڐa".���3�����m
�ܖ�3�δ���SP��'*x{c�<me�c�0.�XK�9�b��Y�����c��3�������U)5y���YH���*�>P��.'���ʪE)-uI�=��N&YH��kU���T�	�F:�r�^�粠�j���h�=&��� g�jI��qL�Mu��DͶ��*��mݳ}�ȹ
�+�7p��S7��JI�9�Sߖ����l�I��籯fk�

p/9?�š���_kiӟ����E�ЀM=0�s�g����?��g�\��<i���|]��μ���v-)�D�	?R�C�e�0@φ�J
=mJB•�������
�\t
	O
��������x��
{
h�S3g�U1wF�y���7"��McE�ݝ!d���X�2VGYWT��G���v���8h
��A���
`�'nH� i}��H
a[���"�n�	��m��3Z.[]0��>���yM���
�
jK������G?%�� 9��f_��iZ������d����i����﷤��VY��rW��<��r�^p=3qEJ�x
t�oj�iJ��	����۴Ĥ�
��rO~�����)c���QN{
+F�����Wb#v(����'s��/v�~Gz.bE�L2�幮t����%�;b��^�@F
��Tw�X���*�Ej9��f���*��j��<
�̴$<Q#����G�_l��`3�1S}��Af�]SS�뱎O��䓯fx�c
)�"��n�Ҫg�M���}����7�ϊ=TaR/f�D�{c��#]Q��p����'�(CK�c]�K�,`gfW�ү����9�
I�ЛC�#�%M7��ٕ�
�y�e��8������ʺu%�*��G��S��u!�ˡ�:���>�|���{���z��w�'n��cmZl�MGα�8�U	6��D���ȥ��&��
���ӝ
xSJ-��=W�����Ԃ��U;���p1C+������H']���&�wGqI��K��/'S,��
���L�>�� �&�b�_�uEPq1�"
���aT��$
��$��՚����j������&��^
�Y��I�?���<���e} �v9YB�W�S6�I��rbԁ
�k�B= [...]
+���%��lg�硪��*/-�k�u壩��7ז�r���
������eST쿯b�m�R���
o�9��Q�'c��s��\dB��(6�@%@�P�V��^�`�
)��D���x6Q��UQS��Pw��8���+>P��,��Ζ��w�c`�}5-��T�t1�&�iJ�{ʢ�?����yf���.)
+�
!�.��E��53���A�*��g�PI�ۗ#����0��?r?ё�
l���B�m����
$f
)I9�̄�K)�M	��d�\�8=g�
��ʌ��r���:�m
��K-zj��
a��
��A
PoUU��<��
�pf�%
��[��Y+��s��rQT
���ش\�%�O&8��L�Xi�3uy��]��K|`](9�Ԙ��w��
^צAGX�=,��n��95�
+/��JW����6���
���o@ϝ�0�V	$xW��s ��|Ȃ��0�ϹΚ
�6AC����;���&���&\��/��b�K9]�j^*����v:��� ��{���ϕ���	
+��ɩ�&f��e6

�҇�o�~5ך�b_����	��*�{�C:���:x�Kt�8q{�q�9��� <��'��'x���V�VCq�T/��x����F�?��v���
@r������x�f�d\MrP�z.lW�ʰ�0Rf;�N���g�J�KmY櫥v�g��yR�uN:.�:BO�
�'O�f�P
�6TFݙxeC��x�½QdG�ϰ+��2�϶8���X6P/�/f�b��c�/�
k*黣%��aJ䁒�s8��T����b�e��[��O��I��.�*�vS9}S�N���/DžY�
]�Ը����W�Q�lc�C
���~�nG]�90 ��fh��	b�M����H~<�������\E�MWF�UG��^�Iߦ8�33vj��:A������\�����"D��	IG���s#��r��?��v��JF����rs�1XࢮHt(�v4���R	�j��
�-hi
h��Hv
�;�\�Oz=D�;L�{�/G
��ji�1ьp�hF:�ix�a�
��\��R [...]
���[�{�AХ7R*�aғ ��
��$3��w����Tݻ3���F,c�G��wϽ�|��
���_K;�9�l8a`u'��ڭ�K/�>
(ȕ�x�ixد�1��9�A�0ϧ �T������Y���-����ꐖ�]S�=K�ӱa!5Y��f
����Nؘew۟� g�e\C�V��
��=�m?�
�<�>�ӻ�sě*	�3�kp����җ�i���̏aE�ۿݞD\���uW�C���R�梠7i

�踰��ִ>���6�8��;�
�t}���
�Y� yl}�ߟw�G��.��kg�"3=�מ��� ����usG78�{F��
n�S�-�����]�@�gc������D�����D�|�����05X��š��������7Q�+W_����xȈF�
+,�|�얕w��׌^���o$-۳2TX##4�~�;�i�ϰ��o�Wv�xm+o)ם?�m�y�i���U@5�% t��{���
�ek�X���S����CJtIL�#�?2��[�,Y~���o[Q���/P'��H׷
�
��l��\�5�y��P1Z=/�E��k�׽�Z��~�•�geI%�%k�R`�C3���
�!o1}�˾�'��kQ
�.�����l�
�-�_���LC�Q��@T-�%�\��
�o
qak
+Y�q}��#��
q
�s��sL��ǔl����.���f’)/�����a}��
+���<�-<�*	�x�y;��s׷Y��Up?H�$,��
+�bgx�Ѳ3���A��
�W������
�۷�\�
p<�
�!��be�w�B^\�"y^�nnO����(-���yh0i��R&�C#�oMv
�sqHI#�V�~%�{y��ҏ������Z�
+�X
�ӘR�
�F���5�
��;sě	-t]ۀ4�&�lN�=����Iϱ�F@λ��ǜ��H�o5?}���b	3n �Y#@�h�m5�3�{䘹�~;�8��<�w�W�^����8����v^��m!(W�Ã>խ����izm�"�$,
L�)䤝|v��B���F0'���H�(�5Ī�
�$8�,N��5P;c��Ѡqx�;�kۘb�|\|�s�8k�`Ƿ^�N:
5�^�|���A��
ٓ����� 4����b&���sߍ�w����Wg�~0���J�ڜ�w�ϫt�Ĝޜ�m-��v���AJj%D�J _�"][y�9�q��pe}�Q��_��cS&
�a�_E��|us�Z�=)hݞvlN���&)7���g�FjSXGoޙ�����WJ*�qQ|�oW�w~1�9���b+���C9�62;3zrcH����q��s|�=�tL���lZ�C��5i
�14�������w���&Q�f2�@���ˢZvw������3Sr���
�Z�I�!���)f]�"��4�)3�n����:�訆��Eg�����	�!�ltU
��_�鹨�8�n�[G�
r
�ru~����ޒ.o�#�n��;��bBAm���	�� je��
�2c��"�w0�a��ϛ�p�h�~Zr� M~:���3��+�͸~x0m
H��������_�f�Φ����[*��D�I�ȹ~��;���^Ėn��9����L� �d\�w�&	'��uC��,bFB��))u�EB��Tυ�7
ǡ�9���]*z��?Om_
�_[y�w�`�Q�.>k]Mm0�@-�pQA��`�*FA���R~�90���~��k
��k��̌".�
÷S���8��J�h_z��I�X�qݛ��t�˾o�ߢΧ=��~5�=���FtԦ���y�����ޝ\_�#�
�Ҵ��ʹ�Ԍ������X34
2i��V�[
+b��~�A43gwY(��G7���*P������D�V�i:�w�G�U6~���
~DEkx�
ky!��
�'��zp��V	;i3�*lg���[�lLr�����'�U;
+v��
���U���q��\^X'!�5DpQ�R
P�9x��*�
��5a�|
���q�%ד�/-�{��?��
�@|����)��7��P�XZ�\�\
+�
.p�B*Ng���n��߬������?l�o�64�/
*X�A5�/�`�DtB\ ���ۦ��-�����|s�s�9܍�^D͸�A�]��W$-B��,���L���	b
wm}
��d�wi�wu���
�^8ޝ�S[�
+�ռ[�`�W�zO��x��
��|B���)z]
��oq9���
+t����ċ���RBL[��7��7��>
Q��!%��I
���m��_3�ؙ� �>��sB�� gk#RcBOG}\�sv�
JD��_
�=�9�+�:�)���1��VoTE����
I�����@�ո~n������,~y�_�0n�.��Tŵ���<�&k`���D���O�i-	��-� sc
yp���<h���N�|oe��ޚ����.d�`�^
+~-
��k��g�������Ϳ�
⊟�@�6�{�p
=(x�����Q
���������/�
<P���*���~X
��Z��>cS��w����Jjӟ7�_~X�9n� �&!�,�mHF��"a��D�p�����~5
�u�<L����T��yrc�@�˺�بI�7���23��CPC�~Xc3��
�2md�eL\TZ��ʁ��`��
�<e�0��)��B�ܘ��,
+a� +
+�S���I���<k����֯�JBe at I�
+)�9����
~���,<LT�j1�Q
�}󃤀R�
+-r;B
+rEx�^��7K���Ăc ̥��szj)%�
�D�yz��<�l�5���$�8��h�[~;��y6�H���ss�\��s����<�6k�D�R��<�fs�|3���Bz�@��LҪ
/��=oq�NC ^/��ʯ�]��
*9�z�o�Z
P��c��F}�"�f�
��i���ۿ���ϭ�!NG��?�S�s�f�sbQ
7�d�����n�m���k+[Sz>>g��2� ޫAmm����V��u3`�.zO�Do�����P�0���L��e���<z`����D�7�S��W�v�(��Pkbz17�g"�&-�RX���G�>��0߭�ϳ��YJCH-"�_�k`�>yN�>^d�'T���<�z
�8��kKo�f.as���z�9�w�yY�L�4	�
���*}�m߯�k>�s�ZU��f�5
�T����O�wMm�×��~�����;\U�v��6�������M�ļ�C�5E��u�@�Jhݚ��>xVaE2��3�BZz��>�kkQ�� [...]
+[�9�}*�%�'L\DP)��ϱ6g�Ŏ�͟���:�6���JǮ�ܓ����<Z��# �����}�Ez��,�"���
+,p�����F�}��tx�v��M�KFVO��Enj�r���[�@η(Bl����^�/��7}�y��ux��
x	�u�֍y^��'�I���/�g}�P�B
���Ib�6�7>� hþ�9N�����`�ߋP A�2z�DZ��EVwP'�'��M��;N��>G�����-je\C�O驭���F�� k�1���=��"�im
w> }� ݌�8��z��{�帚K��(�=.{��~����dp
~6��\��LٸXPG�RV!)m�b���
T�^NݑEv���$oP�V��F�<��{ĩ�yBmT' ����k`$���kFk��G*� ��Q�H�W�6&IPa�
�#
p<e���QE���?L��~��V֦����[��������Ĝ�G��y{K"��"�m�5�4���1ns_
���k}Q
W�
���݊�xh����?�8��d�
DJG��k�7����g�
)�\�q��V��h��3N1����1
�8n�U&��z�qe}�ܝt
�x�H����=#OS!8�����r|�i��7�S�t���=�>�qKz/���F�/KF�.+�
d\|��j���[��/vfIUy�����ju��f��D�xԏ2�H�w��]��y�(����%��RFzg�B������
G
�q�
6a����
	�+�B_���]ڵ1��V�<��%г��3���<�~���$��b�	����.�a�^3�$�a
���Y�尚��S�:0K�N�
pZ`59�9�3���4��sN&<f�σ�(��NJ�����	N��Kb�j��ͱ��B�o�\�W�{��露w}��Sq`��5���cKo��g!�1eCA��PpZ�[`ݟM�w�ckUly��y`�ڐ4�)Y�X��'V�ۂ�Q�,�C�oMa����8
+t���b�c{��UKȁYfcB�h	/*7� ��ޠϮ��.F����VB�
'�y~�>���dL���kpe��7�w}k�X���!��,��y㗡yrUh���$\�h�Q��G^��B��
�&j��#��;Q�轨E�ߞ'VX7��z�~-�㓷g$(�����
�P૒z\SP�-s���՜�����J>u<1E�Xm���ʘ�	�
C���Q
�1�'74��Vƍ[���YZ��4�F�-�e�Q�,`��tt\Kn�j��I��ܙȺ���Fw�"a�!d�5|L� ����F�����=�B:zw�)`n����j15=�3)a��c�SI睷1;�
��[rN�Hd���y���9N����������F�C��yK�s`VH�EV�Y���9J��;��毖����U�&�C��rf��w�7=��n
%g�w���Nh����9��△��B^:��X
�њbz*�.�Ҥ�
�<�>���=���!�+��9����ã��ش��VRk�
�洁��EĘ�ݑ6p`q
�+i`!2f..�eu�
잠�ֈӚ�	�Q��B^�ww��󫐂Z���pA��i���6	��$7č�Q
�:�	@=�Oٰ��
4
�6� �JVw\C��?j:b���%�;��
j	!�
`ƴRrL'�Eu�7[���	_�W�/���MY8��}�A�t���"�O� u�{}hs}�M�I���#!�ޠ�
�<�?�t|4T߁�"gX]�Z]h{�?�:	_��H(1����$�rk
{�|��s�����/Oj�	�	-�C����/eӒ:N����q�o�*~S�a���]&��X�!7 �e�����|�����93
+�9�� ��L��ex8���ËԺ��?-�g{�Q���QV�1��솥W��o�w~��uzc�Q�5���s�bJ
b}�V�|�.�iEl������q�Ր�ޒ��9�P���<���;�O��ʬޞ :��5K��W�+rVl�-�킼�:�C)����~��/��a@��k~��$���=Y�l0�ɺ���{�Q�.$�<B���%-\R�؈�P���&
��7E��5�-ޙ�v&t<���ֿ���i
�ak�R�yM��~I�5��)`�" 7�
���y'_�qI��,0�|S@���J�'E1=��Q-t�����;���eu���Y�9�q�*�#U@�ڥ�=����
+������7�߬�������lJ���ur�{
�p�+e
\lp��
�(2��U�&������L�xN8�)�srv!-gђFVwD��ֲ;Cj	6�
���1��2
+pa��a�5�cu��\D�"�DA�[��}1�=������%a� �g�bZ
.�����6���{g�R�zX��M0���8��lJ��5�h������ �:�ZF[�B��;ΆZ�mMt
K -��
HҦ;O�JZ��y󟼯�����J�Z/Г��t�a�n�2��V��y�����u���UZGj�[8���ַ9���s��tͯ
��U���)B��P�o��e���H*Aݚ gw=gRF
2��6��k�~�u㗁Yؙ���N[o?I���-XZ��qe���{J�*,�J��9F}�: 
���&/�;�r=��SR�����[
.!7�w��a��T�C�!�����a��,�c����厜}`(essn1?c���naE��z�ȭI�ͰZ�NZ�
�.�HX��yG_���=/��=���?l�&��,��N[$�F=�
�%�ra�$���b��u�]���Ҩ�ݻ�$'�
|�@k\�.��6�
l�C�;h�	
�y�]�w�9���%�툆��}�yt�e� [...]
��5?�<��4���L�
}�Ij���
7
��,�W-|�����LGR�l���_��.�lAz�?{^�
�Y$ ���Y'Un��n�%�oٰk�r6ZgD	8�4�(e���LF�*��
�
�k�Y�S�)ۓ���z�|\f�v�lL��%$�쾂u�VF'��4�&�d���:�n�F��*H�I
�f�����y�����X�
�|1-�:����2bj�VZ�IIp��N���}�qb�m��7��@\��ҙ4�1	#}��C��y
hŶ���g
�9ng\5@��ys<��J%���)��_���]��떏�LÃKS���ngL/f$?|�{k����d׉�9�դm�~�6|'��b&!ŧ"w�Y�I� ��[wf�O���C*��4Ƚ���U�o����ȫI
�
:�V�.�@��-pZ�g��S���W�3��?�
+��a�[�����&Rc�Ƃ��䚭9�U�~�q-�:���_z�����|b�ќz'e

+i���	ⵥW��k�����Ī����ec
+��/�J\́m��[
���
�aK�����,\��"F5芐�ؐ41a1� ��~�_�R�/p�V�!�nO��K�Hm9'�s1�	3�`��4�r�.�u쾍)�9�
�rl�T��Sa�x��e�@�Ȧmj(��}A
���_~;e}�vb�u�Մ�&�X��
[jz�uly[��zO3��k���^t~���h����G�[
|��
�k�������Q������E��
+�=�f[	?��@]-x�R���1�?if�

�4��R�:Bs�@h���者�	�蠊���]^~�~�v��[狞*��a=
�
+��_����e�(`�d�Y���10��
�򂙅�w
+Yy3��p
�>������� ���i{I�El�u1y;�\�

Ǖ����Z�T���J!*6O�[y���^~��
�
��I�Y;�Tp��&|}���y�oB�
��zBE�‚�mBL��
C��<���D�K�i����:�au�-R6��촉���h
K/�ǃ
+RE���g�"��A��Q����M��������Ej{�ߕ���IÐd}�� 8 '�
+�n>;��Q/c��,��-�(0%�[~��R
��~�%�j�xjjK���A�1kP�'I%!�f��ä
|4��S�K[�{O �R� ��"jP%�oL�j</
+oy�v_D�-�ߺ�w��v��EQ
�3f��w���9VwR# $�|��3��I^��%�_zߐ���:
bk�p����˸�X��л�|����g�7,����>�^LZ$��S�Nٙ���P
�8������u2k

�-�;�ޑ��G�(�7:č�B�%���6��·5�ֈ����0��5Ԅ�q�-ed� ]ڝ0�:e�����6.iwi�%�ò��RSp��
>+�%6;������i�CJL���U����
۞�Ԁulə��)�/�@UoN�_ܞƔ�4��S*/���' ��y
���Y;�4<�w6c�t$m\t��æ
F�i���hH�y/���d�KC��vu�\\��&�|J�3�(�r� �w�Ie�EZ�눔�Os���M�Y�{�n^+D�^�؝6�o&M��3�?$A}
+(Ym~�6����{����r���謝ڵ5�8��q2�`����
�&��-s<i�B--�t�i�w�?�����<�;���V��iY�9
�5��9
U�^D\-2�Z֧���hޘ��A3T���g�GC3�uq<��A��@ �ږw��9��������}�~^���[���
U�
+�z11��yZcJ��eL�C at +�}S�s�9Bih�׵�
�y�+��q����6,i!��s:62�H��~t�<���W,K��y�X�p1=�3��vg�@Wk���o;�Ii��
2qF/al�G^ܚ����m�=���8�:��W��
�1���
��?M��wpIY��\<z�Ih�^W�9Y�h�
�J���)nݧ�K�ɚxy�L��
+)�R狾�t�h��)�����߯����5�(�Z�#)�ce�*憔�ZG�zNT�{z�]�<On~
+�P	��MI��
+��&13��Ԇ5Ԧ�YH�]���.���v�yeg�t3i��f
���C��#�yM<���xI��W�H��a!ݹ9���>M��~� xA�K�8�};��߼
�2�i3����������O���7�
���Ƙ����s�ɔ����"�\JSf
��@����
��*_���������W��5�,���x�t|����{[���_�
�N���T�O7��/��	#���o�ќw
+{
.p܆������_=�~�7[Sm߆��

�`��
+v���ʙ	�3�FJ�.I[�k���q^{Xu[�w�Y��lB�Kl���[l�,�T�7�X�׸�3��ߦuP]a4��9-{������P
����&�]�$��	
�|���v=����v/�T����<�jy�pyc�R���F��+,B�Nh	�[��OU��\ѾW$�9����|�Eӑͱ֣)%�y�(���R^P�jO��Լ}�~�5|/f⢷�����i=��]Ϛ��=��N��Ǧ,|���l$g�`�
+����-GU��X�T�Sp�=;
�g0�#�iwI���.
�;��4��i#�kg�����o,��>ϛ8��,��o�ߵ��?��
x|�*����쀊\�>���
	Y���61;cZj��Xﱵw�Gw
Ć=�*�:�
|-��������	`������g���%�]�D�u[A��hy��Y@�uJ�Y�z����U�Z�w/�E>���Z�4�������^�|�sp��+���W6�v�I��V� /l�d��
���3m+0žy�A�L[FnE�v\z����
HwW��au�a��?n��
�h��|4��)Z��Gʹ�aQ�u�]�޸����x�]���h��9�D��<���
������w��
@���mu�
>;0�qs����4�l�r�V������
���M"��W"�
ӡ�mO�~�
���	��5�:�r��!�9R=�N�>n�
�������
u<�d� /�>k��$��?���nk���1p���$���{ �_١#�
9hv��A�CG�
:r��Б�f��
4;t�١#�
9hv��A�CG�
:r��Б�f��
4;t�١#�
9hv��A�CG�
:r��Б�f��
4;t�١#�
9hv��A�CG�
:r��Б�f��
4;t�١#�
9hv��A�CG�
:r��Б�f��
4;t�١#�
9hv��A�CG�
:r��Б�f��
4;t�١#�
9hv��A3d�k<�?�����
+:�
�E}�]���Қ�����؟4~rq���-'a�$
�
)/�>y�ܑS�8�ȱ��y�t��M"����6
�����q���}r�Hёӿ��-��ĥ��O��x�̅3EE��]:r�����sgϟ�x���3�/
��?�t�ҙ�gN_�x�¥���^8B;��k�O��t���3G��]Eg/]:Wt��e���p���1Q?!~��	���O.9�ݑ�O:�����]�歌���Q\0%�X�s�߼|��NG�p�#��z�|�̙
߁Y*[� ��	￝��Gj�d��H��#
G��O�B��B�/�|���;}��ɋ�����z�������������Ã��5�"h��G%��+�럿8����S�ɩr
����l�;���Ix�_���g�L���]��G���9]�� yJ�z4��x�<^:r
���/�=wz��O�
�e�Px�t�̙��t���1
�/e�P�	)��vX
5�'nd��
�ΔWU��zZK���O�D̈�ջ=O(
.RjB
�Ƥ���E��AB�k����5�n�����lMӛV��+�'���by|�X�Ғjb*ԕ�IH��܏��6������,��?�-�B
��
+z]J)Dd�R��[j��8�9a����;��
���bJ|]�F�+�7�:Z[���f�bfR�舫��Q5�vk
s1�bv�;�f
.���'
"z�!�$�\�OA._����7"s�ƴ^L���肄��S�!Ax�3�9�=���ƫ��C����jVGF+�g�"��$��ʳΣ��a'6��ή�m�6<�*>�dubjT�h���])� ����i�|0�
`�2�O���X��ep��4ѻ�V
	lĬ��Ihm15�>�aw�T����Ց6��W'ۿߜ�>�5QZ
+fi�!��mn
+���
�lg�\�4J�)���P�JbE�Q����<"~�" �(͞w��Rz.f��CZjs�-����N>5����6.!k�`�zbuBC�LIu)�i���226.&ee�V<��4�
�����M��
Y+����$i3�
���i
�Аj}*|e��Fd�l�S������-�e�k@
6�-��	��KZe�0���}�Q�y�U�68��H8+��wq�P�ћ��Qy����)�����<H;��[,,xeCi�0�RVb[�D����>�Qu���	�<�
���PCi\��{\I`�Z����tɤ)'����ZBmZO퀚���ZF��,�ds�T
��q���k�VKZb�$e%M\TTM�����A
�<�mH��S桡����B\���1�*�zlyBOki�a-���E1� �"����}�@��,���*j}N+@���Ɂ���=�� r�4�ѡED�������[�I�5Y3�1��)���2K�i0��Y�H�E�$�DSG��YY���
�;$�]�D��J� ��Q-�7��iOx����<�d}����比͟�%�J�Αo��~Xy����7�ߧ�����T�Rfo���n����E.*g���
+�e��߬�m�2�ŗ����
���U�LY���◆:�=��v�!�%-B2�F�=t7�- ��̎��ٚT2�r&vo������93�-��tg�V�HiMj�5y+�3��
�Y����IyY��h�,a��dL'%��2n�%��F�.�eA�C��t0��ɾ���y��avy�a�#���;P���S"�Z��ڜ4���|}�El����Bz�
�)]�* &��
����ښwR��Zg\O���#/'t<\�z�����۴�G���~5�z@�+M�=��O wEY7�
5
�:
��D�r�Ln���Q3���N8yT0���C>��ɥ��Yp��Y��..9c��&FwJ5r��V�@�"fC��r^����Q�ܞ��~G�s<�#ո�z�G�?�j��t4g�Q
�ǕB͹W��
�*(5y�����i;���I`턻���13V.fg�R�3G�
�y����7?Z���{re�(c�چ��&z��x�����F4\�Gb�!����92��)&fo���I�	U��������ru�$�o�Q��_"Ol��\���;�JzCRC��.nnO�/���vc
-�`BZf�o�����\B���9�ў�� �=Z�6r7k

H���
K��m'��"�;�Τ�ؘ0pQi�\�	1�yaOJ'Ƨu�^�L�i�Oe�d�[�϶;�_Ŧ����߻3I-������I�RJR�o���i��Koz~0<n���v1c�� �}�ؒ���Bs����T�3bnd̤ [...]
+��{y���{����
� �S&dI„����
j��Pc�(X���OH���ޗ�js6"�hĥͩ�oc*Fo�v�E�1|7n��":VoLO�JZX����ʻ����OO\�]
}���~��ŬJ�Nj���-7
�u�I+�֯%�4���E����?/��YcS�FW�ȅl�=�&
�3b`��r��')�T
j
"�#5&̴ބ��
1R��Ŏ'�_o�$T�
������1���
�F���ɛ��y�1�zs6� k��-2N�$�Ƶ������
Ħ�\����yp�ݕ6����G
���
+[�1кw�PS>	/fb�v �ٚ&]K��	ͳ�*v{RCkL��ɔ攙�N٥��q|��ޯ6�H�W^S��QJc����<�f`�P�#��5�֤����m����

u\��3a-�z�Lm�X�
 �ay;�
���q�2�y{ ���
d„��hP�1
�<a�4�������P0��s4��Ԛ�
��o��xps!�bwnM �6��/�f�U[���IN����o��J���s�jVW�(a�R��"�:���
C�
+`=J�յ��?nNu|\D�U���j$��&�޼U��٥�]�� ��܌����x���Փ1����T s�k�4���QT4~jGm���
�lx
]��Ň%�����币
K�EԤQDL��0��R��d\BV~E� ��2n� �
�����s�q3�����,��-�Dy������4�2�ɡ~Q
�v�Ƨ�y��]�����sN2��ԧ ���P#͜YH/X����ѕ2bo����7a
�3�
�-���]Ą�J%�|
+Կ��՟�r�{��G�%�(x�����
������������im+�īk3��s��/�
�v�)� d-�������L��Y����O��=θoe]C���;os��'0�α��C���9#�u�!b���C��
��:ZcTK,�(��9��򮔉�P�*v8]!ͨ,��P�Zf{B�+
.��mN�
�֨A��P+\Ϛ�u8m1i�jf[Lj��X�Q�&z�{m�
�(����CCY�ɽ�\�+#:j��
�o�\�@��#���	z��sRlR%��h��E�m��k�ǖ^�

+�M טIp�
��Y�1I�JT�u2��9U�/D���	��f����K��ܑ��b���u��ؒ�s%��][����
��g���z;�g��f�E��ۿ\}���ꋶ/|����il� ����+�LrQ`F�Jn��5�!T�Մ�!-
`
��
��=�ZV'�-�.n
;���.m5�u���m�:4
���pPi��ò���ea�nZ�O�+��2?8��X�?,S{SƾsU_QX	8�3ketem\l�)b�2q�6|;�K#��;�	� N�&jS�DkI:ب��O˹�,�w����]��9�½%��ÊthoI��]��
����@,�l÷r�[�s��3����e�(��gf����k�Xو�U at M[�]�����	�
���gj�fZ[XK�L٤����k��Y���w��T�=����J�K
J�C�ɭ�%� a��9�S�u�݇5�c��xQ#�Ӂ�
>��
��@
����EB��:V���̮�_�+�FrC�J�M,�8o=ͺ�ŭR~X��xh�S>�%�<j$��^5�4޺�դ�G�A��ӟ�Rۢ��+���lL��ؽ���l�	WWޠ��T�&�ۓZn_d���Q��=����?�|�әM~�Q2f�	(��H�N��Q-��ڻ�?��C���yȔM�؞"\�i
Q-�
0��9���7���
_< ���������E�p%�yLIt�TY$U�0��ZR}T����)�Y���Pj���+�X
\eX���:|]����ƻ՟p�0{.:eZHM�
+,oF����"�t}q������iBe���VKk�(	��S�?��n�Spmc
}���'�����
�$%D�h�i30���
в�Σ�>ĭBRXM�����I��1�=3���-䆜C,ȯ����h�>|� �3�`��fR]�Չ�o�s���K~+�d��v&|�F����Y W1���FRm�Ni�{��]��9��g)����hB��5)�!W�
��0ȕ�
_ƈ�_��S _�<�_�
�z�\��y��
+^� �di���0~a�p��'e<�/2@�쭊D7���W%C9'
3�+�&HY���T�23�R���6��5N�yON�0���V��;�'j���]BN�#��<Ri~Y"�� r�
�0��s�b��d9׭�� 8��v�;p� j�n倾�:���޸pA���
�������$@+3:�:�m��r0@�������ǀ��E�=�)
�2�
`\
-m
�5bK����F
h�
yu}�ዥ���ͣ���
%�K���O����Z
,��5E��F�
�j$�~	��7I���
��j��^
�e}
+vƯ�>
X��>��-
+��%�P
�i~���?�Of��4_�Dm]~�����,w�m
i�]�

�
Z��q�W[����Y�Ȝ�Փ�ܙ�?������X�נ�B>Ԫ�����yĜ����:�=�8�9�}������;�~tQ�r@�������E4�ƈ�Z��]	(�דZk���KA
-R�3	3i`�nM�O�
��fg
Y��^�<�?�TsP{N� 	q&=�5J��\����=�>j�҂C��[�����5�޸�@���
����
U�Ř_�[c�2���i��m�ݜ�f�k�4�a�h�e�M9���zA�R?-��ʡ�� �z���.3��)= �
2i�9t'�
~�~���h-13��x��L����]�T�9 at ORVZg�F���M@�H�w
��8�쬝��9�w
+� �y)���g�x@
y����1	
�u'
�bLO�5�=8oDOm
+(	�Q=�!a�UD��(q7�V6&
��y��n�8�d��V�����#����w
+���D⌛���������(
�l�
r�#����H;X����
+i�����Iu@[��}���z�_����
Q�-���%-�mp$�eâ0W��gݏԐ���Y�
������Z�*8O���ذ�C@�Zx�-
��������Z������EZSL!B愽kc���)����S���@���w���e)Ѐ6F�=lB�yDC�ۜC_�M����!IT)�GT��
�<4O�
ϒ�2jzsF����?kyP�/���A~�����1�9���LQD�
U� ��?G*˚E��Q �{2&!1�ĕ�zN$5���\E΄-˂z�� p���ZWs{3f>)�o��#�
�����(�f#�&�80O���-�f!RjVgF�h� LJ設;
+ĕ�������1J�)���6q)=�L6>��K��pc=��4�M�5�
�9e���J���;�&>9�"f�)�MJ�-�]� VKD)+�9��97‹�Bm�A�( ��]��;�c�9�[�v]w��z���2�m�����֐�wɇ�s�йI�\^�-�F ~մ���ֵ����R,j �E�f	���m
��&����'r���y7��q2�sn&"
=:9�����i���RQ��`>4A�5 <�
+txO�@oI9�e@�`K�j�u��h9���_�O |jpM�؅��g��Y
u&
�Gs�~���z5{��/�ea�P�\�Ƞ����)�Q�檀k
��>K"A�-槭b:�(�������_�:��y�N�<��lg�|s}��X
�g���g��N���]�����{7��)���q�dY��`B/&�Lra�4,O�e�>�
��wT�R�<�*c�sv-� ܌+8])���Ȣ�X���f?�����E�\i�(a �Q����ɄP���[3����j]�$dM�#	�mj"���R>
:�Sb���k����xd�P��P���
[���eMBr�(��5����V���62���՞3��I=�5*><4EL��
Qt
�/t|W��M� ����6\��?�5�*�[�‚]>�� c��3vf���.8���Y� �q)� ���<+I5�c�����*jcJ��H�Y}�e�
+re�‚QD� ԗ��� ��z�G���)z�N
��
��������t�9�(�
��� 4z����\�>
+�&1=m
�f(x̌�џq�{
+^&*�p��<��t��� �KC������K@��D�]�����w�����{ �N�d��E���~ >(�8d�,8N�3K	�0i}�� �ߚ�פ,
�W��q�qM2���	;�!�i���*8vp����$�-��:�m���]�v�6mM��af�cff[��̌f�혙��
f�%�ɖӮ}���>��]�.�<�3�{��x@�ю-
�G���b�� �:T�d�L�Ӡ��82�t���CN�v�k�
�ճ�ᕲ�0��c
��W7��4���T�7
+�.��>�LB��-���e����P�,��SSr��
��:–��#��
+� ��]|0KI>6����3�*r*�j
����i��a�k�s�
+b��4.jQ��SWT-��A�

�4�g �I�*��+���m�S҉8!��|
��i��C�����j�K)n��3�����"�1+Ps� �y�]�M�Fx4Ԃ�^�3�|
�
;d�3Bz���qو�!��1�ӝ	R�Z�k�2)�5��=�BswLdPE/Z�ϼ�ڙ��ON-r�
�֝uqw0��ky�yX��x�}n
g���*�}8G�X�)�y8��8Rq�
�a~k�<N�ܚ��?��Ā,Jۙ &
��? ���
�������kC�W
3�4���2w�o�tQ}
յ'�
�Z�H- {�}k�cû�=S�8��]�1�~��"݊2���V�Z&ܣ��N�ݟ�&uUMNuy�C��tu�(C 6�����U��E	ý���Q

4��A3^a����p��`�|FB�!�A�V" /aP/ℭ�ZH���h�+�����w�Q��b�W&$��b6T['���ʪ|�dy�]�Cy�"����1��xdR摉�8���>-��PAJ
Z�أ&!`
+|��6��Q���h at w%~3�J���(��lI�X�RH��rJZ	?h(���a���d��	��A�'�5dp/U�nue�K-�M�ʣ��棕� `%�?�� 6
؛���̍
��u�
CE��PQ��Y��y�M"�G3��ii������
(>Lo���f��;2>�8�
1��ҼZ.šb�ڋ�x�t�GG/r�p/�.�����Zۂ��9I��˪OVD��U�ob�<*>�����n�+��T����F(��@�1�Uή��$�")i�'���
6qk3Œ<\����R���t*�0����?KM�B>ޛ$Di{`�Y�����'fT˴�S����;Up_���˕��_|2J�}����W�8��A��\�[NJs�<l�*y�ڝzi�'��y��m��)kcI�GcM/`|v����@Fs�(���^%6ѫ��ڳ/k����E3

͓�t����	�k����i�0Emƹ�n.ګj���@�1� <���)��)+����б3��ii�o޹r�+M�AsM�S�(�|ť �oN��<�#��f����O��F���V����
y���q��ҝ�|�CV���,��O,������uQ���D�v��A�,vȹ��q|"�����f d�
��{B���K@�����W^5>٧�a��"r at U���9�"���w�D� `+�׭��'ɉK=�WG��
+h�% �
��[�Ƈ!�Y�
| ��T4�&�R��ϰ)Y����ѱ�G����P���k�9X}G���9�7�� �)�c g�
+BV�L�WO�
��U;�|��+
�H5�&BViM�*�:^��
���m
�1ʋ��/�t�Z��z�uG֊�����?Viؠ�Z��[�d������o�*�sR�M%
/U�[�B��Z�7���k(��yB�WK-<��u�< |ݣ��� ����R���?Y���i�^���|�[)�{�95��ɒ��y�lS���Ω�J�/�S�ܳ�.�)����&8�_˸v�?ONt*h� ���<��
w��hug��>���7�K�9t��K�9&jw���Jg�M�!�Hˣx5\�c����
m3�����{>�V
+,����H�����Ey7�{N��(l��?TS��zqP+`��bq� {8�w�p
�dw0����
Z����Q^����SqP�J�Z
٦�'o� _zD��̃|
��l�\�t/Jh�i6�=�*v-p��{��_N
+�C��M& ���^9����"�=�jh��
zlc��ƽ�����S! 9U"�[�ń��-`a��+��M%����rI'��F���
+�x��}lJ��g.`"���*�2����C^�����ա�\-�:YW� >
h�E�Ej�W�)��y���Rtl��B yA��U�^��{rl����m��
�I˼J^@�X*ZBF��2ܮ�����fo��DZ�
+6ji�ƣs����R-�vI���%��
�}���ҏ|�?�)�43`.���*j�8`�T�B᱅K:AX�`g���S��Bx	 w���C˒� �G x����	�@�����ˉE��h����gjV���G�������
�3Q�
�~p�
�H�5Kk���Π���gd����&��U�(2t@#d�X+ہ'W�W�Ԭ��	��Qzd�>�	 ?Bk�>���!�*
fo���2Rt�>�}�Yd�:B{@vr+�,�3n��>%s8OIݟ$F�I>��$y�wl���o�"�;癹.=�p���Zd���kÄ��iZ��F
��e.��`@��h!�D ��Ա�,���2

�t��u ��k���W�)!v^�;�x�Ԟwy�#��m��?X[ǧC{ ;2��e�c�T�^�d��yg|�W�cS��s���$�+�WI^%��Q���d�E��BŜXDh�*�.���{|��Q���ۥ`�wNj���n[��/u�����©�Q�A�9?�y���}Y�G�D
, ^ [...]
S��{��C���We���f�;��g��
+�>}U�M-�,RR�K�M��k�����#d��#se�M%b��$
��~8hy}UT}d�Ѓ&�k`b�Jtl���W�
.!�R�~�Y3
Z)k
+�x��
�
+౭�VI��ER�7�Wx����t방�K0!+�
Z�
���
+����i�L�F��F�����4��,�m����=)y��IZ�s���$�#)�H�IڙH��֛��v_�U/�
rz��1��������7NL4ԑ�?
	��	탙'���b��43wo���?�
ɹ�;��л@-�hK�2R�WNJq� ����L�5�H��ñ��~��C"�!g��L��Qꝯ�z�t����ҟx�>
�A�:62�ǐF���.%j��hI\
2�
|Zd�W��h��G��"����T�q��,�
�et�̐���VӋ<Z1�.0>x�呗�s��2t�s�< x2``a��W��	s��i
� �X x�W�O� ��Y

97 �M�j�
ڊ*���٥�0
�W��L��X���V�S���<�8`�h
�X���'�щ���	�~
&��J*�h!�u��C%6ɥ�B&�Rh�Z;�PJ�OE�
+�Y�r��/�F��k)or�D�A�r�-�n:>h�����	轱�!d�{u
�OK-�HYn>yw����<6�gW��ٴ �������Ԣ�8ت:�T�p�T�{
j��
Z�b���<YJ�8P�3(��Z��g����W�LP���kP+i~���n`�&6` �7
"��%u�%��h���Z�Y�
ٷ�+�]ǫ
��jO�W}\�
�����GеX�О����P�<i�NV� �����.55��>|wltȥ�&�Ζ<��i�е��(�����9>�#��#
�������f]���d�(~�]$�ul��
�-13���Kd�Ѳ��q1�y�+���
2ͷ
+%6-!syv�'+� {�\��$챵=���`�-��\xd�mS���E�ch���G;M�lͼ�_�g�8���e�,��x�p,��m
L��1٣ �{
�W21�P��2n95Z��Yh��
*`gZ��%j�K�G+�q�E
+�I.5*Υ ���\�c�sM�J�s�T���ݱ�؄C
+@�
���=9�>�G���>��c����'�I!
�6q^59�>{v0]t?�9�q�*
.�g�}R��@.�����̏��2'�,n�D���D�i��W�,�
�8X@�����J��
��Ze_�Z�
�φ-|���
�+L�+
�[	}0�u�`���t�
�쐱1Amm�����H/8���C9�?O�ٟ+y��	y1{dK�����.�.����Q�{��l<`"rʩf٭�d�t,����OZ��<&bvp���/�A
V�Mr��I��Z�և׫��ج�	��V.�gb���?��~a���?�e�~17`���eY��EB�GK/�\�Dz�}�U}�������<`�0|fZ�ׄ�q���Jyk�"���� ��.�x�s� w�,U�:
0���/���ި>^ⱏLB�'$�Q���Q�x. �W

T�G�}��|��5IC���;T蘃��'���!���/ݭ ��
LP-�
�>�%� 7�l�>�ϑ���� ���*��"�G#�6��(:`_��ܟ"�z����	�9Dž
NP����t���{3���Y�c>�#�����������6�/�
+^��e{Aoe��c+�`�=��7�VH!��^@��xuL�>�5�"5'�ccI�9�`�0�]cRCt�C�~��k
����`C:z�SM���>?�K��g�C��*��sU ~δ��H����4�|nS���-=?�*+?R�����5.!eo����h�5�l�3��Oٛe
̰�C�1>.�5�X騠谁��p4�k�H]:6�.��,_{l�B[ G�
ZL| ���*
���A�x��W��ë<�[K��H��E:��)�w��L�X�ȿ�>��
�q?�
�������N��.��}?�C-��!go��R��A`#�E(��^CY��TV�TB�_4��2\�Wǡ�W+:}K
�ˌ�p��)N56�kť�-������Fe������FE��:O|����
��+h���JDD�@}¡
i�a3���
+��׸��K\T�.1ew��_K/��P@�`L��T�Z��
-W���u��\����,"1�e��`@-�C� ~ޮ栝��#��B���Fie�,�[EҏV
����A���@��ښG��-ǫB�|�|
�9l�2�9n�����7[�{��e5a}YeP+dC���%���I9n>>���=꺎C���P���
ҫ�`����,�CCC�� �%g�U��tl�m{0GLY
�5� ibx��=^
��q_!f�-�ͅ�
qd$����,��rO�/۝���j����c�Aot"����-
41l�j	�l/�N���
�%` _���{pk����B!��8�GśC%��5��7Z.�k����L���q�ؘ5�@˄�i�;s��0�' ���,t�����8T���f��;���GR\2z֑	�Q\>ϫd����*hm-`��
+-U���( ��
+�٘�Ư���͒ʀ����Ƣ�W��?���U.Z��y
��k��"	���գ��ډ tfx��Hʵ)��n�<&w���W�4{u
�
CU3���:1�
��g� �����<��~��q�k*��Y����ti0�"�q

\~*��m�0�]��怩~�{
�W��W˚�k�A
�NJ�6��c,�u����Q���aG��
��蠉�8��
+N̔��9l�G�����O+�6�K<J����$���4�푑
+
[x,�A�W|�J�YR�2�n�ahn
���$C�!��>��斳a
5�ԣ��F.d3TPK�O-��_��"�[�.q�i�m�Xh���Ƈ��@Y�$#h�1ë�ɚ�*�$x at 6�jY�~�5NtBxVU~�	z.+ ���$����
ǼX����?�\��7CMu.VI�
R�W�����
�1YtߵH�<R��-b��@ރ�)J�W#�E�0�яK
fx����:����
7&�ɶN��
�0�|J��4�
+�����Ss€���<�OMχ֙Bp}J>�H_Q2V4
[$5'Kl�S����h�AA���K���h
-�����J��0���8�M�����1�:䑩nЯ�n��kٕ�l`�c0N~��o�g
�+�j�+�&:��ܟ�d:��
�l��ԑ2��A��sl,�\[
��8-�+���<Yクs�N#��S����_�=CKl�[��A3�Ps����l����GF��Ħ���������ƣI����5i��
I��*_�pi����SE�� �;ue�Aku?��������"v�$);��k�V�M�M
cä�T?
�J� �B�\bRW&�n�L	p��n�Sߢr����ރ��<^�
���*�C�W|&I�Cۦ��}�A�?UAY�k�
ʐ�*֫���,���+���7�*@�n~�tl��f<`���|l岏�$�=��a ̳R3��P��1Ж���q̓��S��-��ڿ�W�Ҝs���Yb�_�.�OR�Gq�l���'f>
0,;z�6�[A�q+i9�f��ylh�ȥ�b�j
tΉ
R	)!5а�����:e�L��Yr�HMߜ��o��cfpQ~!ձHJ=��3�fHq�Ynu�nc���!�7�r���s�rO�b~P�@*�~�'�:�B�K.���%���H��X�^���}s���Thf�_IN�hf��������3a�d�/9GFz�_M��)�Y���X����P�4�� ��XAL��i!!=�Ǧz5
x� ��@k�^)�؞p� [...]
+�ꓵ��㭪���d���+��(�
-93`���t�|�Y�r.�o(o:��0�2��G&J�}�f��������0��F��k���#�:�����7�C����
�nt�\
+��)!
5߯bA~pˉI
99ů��4��
#۹�G{�B�_+bzdl�k��a���}��]
�d�
>�>�{{0�y}0�H�'�쌣��e�h�
�u�R�R�g�����M]ٗv'��+x��
�G���|�

a��?�k�����T�5�X% ���1�g��	-�1��:�D�t̠_��̏Vȧ
V��cy����Yr�WN�<lTSs�'�������B�m.Ⱦ�ӟV�ȧ e8gK�y�
�2����!d��w�.��a��=f�g�A
[�Ƞ�����3��A�uC��A69L�z�7�1~=)�.+y���*z�;-��;CKu)	I=
d
b�G
s�eԴ<����t�,*4/}�"���=
�o��{�0��&�1�;U�G
Ḻ��
�������+���Y��

�2	ah�
\瑹�6z��ZV���z
Pf�
��c��К@� �2C>$�
���(h f��</�[A��~�n���3W�/y���/1	�r�N5-���U�1I��+k=:i��
-{s�(hbB�����\$$�L��q	N�5�H=�
ҲP�Y|�O��
�)G*z!���h��1�T� �K��+�����\�O��8���q������C����;h}�c0�f!��s(�y\
����>�{cj*�}�
��>E��D=tLa#
3���ܛ���+�ƌ����w���Ag��
+q���9���(�nP׮z��8�
t^�>AK�
�?w��3w�	�ݨ��Ib$47{�{���R{�����;��G�yB�OEHޞ(}�9R�б@�w�qq
1�6E��
%G�Z
����
+6ܯ �x��\��G����i䋀���Q2�'��ֺ�w�s����›��9�ݳ�Ȁ����Fzq��yb��!�;υy�����tͲ�]s�½1�{��CŷvGa�

�wN%.���殨�@ϑA-):s���	��z�GN/:�
~5����@B~
y�g���^ %�{Jt�k�9H�\D�$
�<=ãd����b�
>��=Ȉ��#��ۣ�6�K���T�,9!(g��i`�?��䚽Q���Q�s�-7lI� C��
�g�^�'%{��c�;C@�f�	�9j�s�Sx8�-�)8�
�h��no
�ܵ��922Q�Ej�Oɂ� �@=y
<�0�C�A{5|�]N^OLr�p	��
x�s����5Լ?,
TX�F�� Aka>-5�P��ߜB�t)i�?W��'f6ɯ#�,L��LG�Ԕ�06C���m��k]���ݴw���
[�%�����,��鑡"|J|��
%�:L~�<�}ᚥf�z@
�߅t
�������EF�FN���Q���2	g����v'�E{��$����O&a�
+�������Op
+�
e���� �H��f�
}�>��3���ލ��7D����S�����%s]��A���r��5V^������G��9�&D�>��@<��<���#FH���c[�
uu��C��A%-��~�]�?V:7�;��x�J_z�/���i�>+@�g���6��7���w���2z]j���O�
Ӕ$��o�K�
�_��+��	|`o����>VY���fO�����v��㷠���}����N���yN�_�EM�tϋp��"��43���fl,���	�j�(�}g
��H̀�
���s���2`A
�1�C �BsJ�F;�a��K|
`[�ԿCF˰�cc6�������$�
�b�{1O�Ǩ��

+hH�m�i� F�
���
 �/u���
��م}䞠���dm���9r�m�f:G�}�qJ��w��K
)���.}(�jĽX�__�*���	��7�zn� ��܎}��hg��eh�����.�t����y�4��|���c���5Fxw8�
CF>�
��z�`��X�>X��`{��9O=���ʸ�>h��	ȧ���s����)l,��
��^-舐�Q
+)��좭!�+s=�Wc]�9�8��(9�SKC�9'��1�#�'��
�b�
��7FQ�5�Yg�����G�Ol��w�ٮ��Os�9�4#���p��}��J7⮥���j��� %ګ�*J��
�[�K
��9^h�� ��z'���>�>�y�1
��g9fii��_�F�O���6{Ko�
~�T����M�\�b�,����a��c�4#om�_,�"o���
�"@�p����
����	�7zKn[:s.OKb���'mj.��ًxvz�A�F?��F��r[����_L��?l�=���J�FY��^�}���9�1�VO�M��{�v�%��� ��� ���(9�>A���/�q0
�g�?�O"
��J�Έ����)y~�ᓡZZ�ͻ�5Px�`
��`����>I�=�"��
!
���BwZX��K�X� �\jE�67^X�_���#]3���a�ˀ�����Ŀ�

h~
+�乸���q+�yN�mr
�
~~�;���)缥�ವ��7k3��N��}0f��(�,=�p��;�}�;�~li����o�������W���q�{�yg�e�9���؝ծ��KmEW�ui?�3���P�}a���z����f���>��B��B������׍
�3s��4���~�����sN�3�ib���m��\�Ӎ~�ӝ1R����W Kx����=��ЯV����*3~4��]�F�_,ϿjlD��˹`
�[C��ֶ�+��y���9�
�耒Qd�E
�3�
yu���p�
���ܔqA��%��K
�4u�w;����_�Xp9�y��F�n���ʾ�(��v�;�w���y�S�E��ś��ȥ���]%�V�
~WH�Nj3�l�#�ZPOF)Ol�$��}V
«"�;J�o�]YiI�Y_�pjg�䡶)���%#���g)��}E�V:�ϩk�N
R�����'�̸oz���[P7{�/���MuE��з
�ŗ�y1�
_}���o���'�9{�Եnܣ�>�=mM֏�����m%7�H�?��^t
���)k=�gK��������
9��}ȼ��	��ۋzhz���}B�r/T
+wǘi˝�����o
��+RN��O�t�_�$���"^�u�#�Mŗ7{�ol����)�fh,�(g|g���ug�j���;' ;&Y��Ը�a�K�g�ֺJn� KjkO��N�f���R�
��a��9�������K�����5�gd�?O
+c�?�$��z�C=�D>�l��Sx��VpE[��*�ǥ��
�3�萎�p-��w�p�ϵ�6]��.��
yd7�
蕫;��׮qr����~̓���;���
��O���ﷇ�s��
����b�l�cc�O.�R�VJrOk*3������_l�F��y�	8mo�F[�sf��i?.��
l�C���,������7���_�H��	|�s
+��һ�ȯ�e�?�js�O�OM���x��aj�m����]rSW��Ӽ �~�ײ��[��d�_X�¼rL�s���q�]�k�- at s��?��Y�
�����5�(ܞ�0
��#�d���b{������e�����?��������Y��}�3�}w���_榴��E�;�
pO�}�4�_NL
*y��iZ�[. 9�|�����ڌ�i�����>��ZG�-�
%EV�{;��w�m��|
T��.��)Q����ٗw�.YO��g_�,P3����
c3��7�Gq�V���i�Nkj�[�~�(�<S�|�eM��n��ߚ�
.O��>��:�H�lA���8%��A���&��_�ߞ��L�z� Դ�wOS�qFY�rJ&M�v����%�s��3��ijmů����N�r��:��vg�y^ܷø'��Q_Y��U�竭���)nз�[ݰ�+M���.k*�~RI3N[����ٰ_
pH�u�����V:���-���6��i��/

����r�z�q������!���A���[�=�׭-Y�*��O+ʓ07S��ZHO6��/W�����L���Tչ�f�9g[ё���|�чy�5D����]�f���$}� M�Q]����}�����G#��Ӄ��Ӈ�<��4=x/Ue�)mm�O@�O�#�`��J�q����
�9Z�fw��N�{�E��Zs�����
}FQ�ꛍQd�]N+�M����W��0�L��/�"�|yK^�y
d�'�t���'E�J�)+����//�#vƙ�g-J�^�E>44®��
ƽֽϿ���;��~�
yF[��9Aί���k��xmeх�v�cm=��� 딮�༥}{Q�w�w�m
��|�8;�rĿy�_骲Ϙ>^�/}�Q�Rj�.��
��+��=RN�tP#�y��~
&&��e�~5Bz���ޢg냹��F1Q>Uy屑/X�̼4�y����֦ԟ��i�-���X���+�nM�
�9fE���r��v{a6;`��:���-���K_�:0��+�Ƣ[^9
����欳�my��*�.����
+i
��y0���
n
^���n�?�]�Ve�Q�'��V$~眧f/��n��Jo����+�:�EsC����{⼳ُ~��IV�=���Ԇy0%x��)�ӿO���k����
��LU������B><���Qz�7�1��O�8Q����_N2">���r�����s���>QK���j1ko
�x���7]M�OS��/�1o>Y��0��8�����^d��я};_�qNY�uY]�~����_`������Z�H��+H��M��y{���O�Rr��
SS��yA���G����yA��ĸڈI�A/�-��,��^��C?X�A��7���`�������W�����g_�PS7�ov��/�95�
P����g�	?�

a[�����S}c����k]���
��S����+���]��R�⷟�ʣO�j3ΏQ�}���~�+��FGڣ�IB��7��m��n����=��%�>B�?f؉_ن��m3����_�����CO�4��ϊR���|��]�h����Tp�Ԑq��䶱v��\��9+!�

+6z�O�M������1_V����I~�ύ����1�7���@��T�WWe��`�}U[����;���/�RO��u��v~8!&:���.�[�Ƌ����U���\&����Y�
�tNX�Z|���x��l����fW�ess��#���Z�3�9���K��u9�{`�]�~􋵶�_7z���/s��~RW��g�
	�%
�p��*�GcM���
�-�<6js
����ɗ�����`��Gj��[�Ϛ�RNO2^}y0F�q��Q{��YjoF�_�=���*�~��ʸ�WZ3~9X$���'��o$���g�v�S�
E+2�L
+���.�Q�/-�಼󕂥.Z��>�'u}�iCc�Ykc�o�
�'�U��V?�W+�5`V��*"��}��2aܿ
�?��__�E=������x���T±F��
.y����ڎ|Vru��򝦪�B+��w�O��-���^BL-�˦���=Fx����~�?��(���[�%�y��r�o~�?NH_�E�36e����<�{�sNQ�yv�
��"?�.􋊒7_6�"��Ғ55��o�^�em)���L�����iƳSK
����?���S�te��iJ��&�y�:���ݳȗ{cEw�u��j��&%y7wGX�k=�+m�[۽�����f�h���SK���iI�����;/��i+혗�aL���*j��X�SSK�/�y��
uk��t��}z�������W�$��c7_��;3��?-͔HEe�1z¿�	�W[
+��~~�փ}8NJ��b4��M���Dž������n�Õn�ݕ����粪��K���팤_�)��7���s���̤/�8	_M������bg��u�^�cn��o�O3��~i�>�-�sc�i����+m cLS�iY�?K{���F�yoAJ�KcP�G�>��z����	��/7z�
Lb�Q?�˳�5|R@�����Ui�
�9��	��"�[kɫt
��se�ם�,��(6nh�m��7�|�������筄��V�pq3e� ����
QS
����ɒ7�=E�u�S�j�g��Ͱ�����������!j�zg����k�#�w�@�5t�<���ӵ��>A��
{s��~�
�/my��1JLH-b�e��1lsH[�"<7��^0֧�(f}?ƈ�����
�{�C�$ye�/˭�ȵ��N���"��\U����6p�ik
�c���,��=�{����QV��	vES���
?��IVڷ㌌�K��w[��R}酺����,�\����<�
�݃iz��	�R����q/�݈{k����yv���tQ���R�����
yY������[�$}#��J+��� ��� ��v��� ��=�&���%��ǧ@�zyl,�?\����{8E��O�#
3�(�,%�`���iD?����n�P��y�H��)���r�7����Ϳ��Sm�'����W?���f�B�W��w.���aO�ړ/j˞~�Ԛy�/P ��*k�.�R"������I_M��}�A|�e�ɷʚ�����
�
Rb%�ŷì�[��1NO�z0����M��֑sUW���rk��^z-:��ꂇ�j�����}���웛��]��45)gtm�����TU�׭
�g�}��; [ا��˃�׳yW��7A��g���S�l�
�t<�Վ�+����>]24�д�V��Y�g���/ [...]
+R�Z_���!J��0��5-"����A���a|�mV�� �����3�g]�T����I@��:晹��C�s�Zz8'&��#��Y���;�Ţ��'[@=J)g
�^c+��=�����6�4�ك|�o,��ҁ�g�EO���%�n�����'G��"60�W{
�o��̾d�K?��GN��� N;�(�8����ۅy�c�[:�o�u���C"����	����{WH���G>>�e�9��k�S�?�O��8���֦(�m�ѓM-�G��{k��{�F�u� ;w���6ŏ��Аuig�
����$��Y^���
�v�[PSY�9կ�\*
ٱXW�Q��̝�����@
�|��D|��T �qg\�_���Q��8�ڛ
Z���`w��p0�˝e_�d'�~8�!
�q���E��Af> ��?��
A>;����%ĭ�A��y�\���)�G�o�ahʸ�P�{s��|�ܜw�=�*Ղ�^^����2X�wN�Zn.�d�K�a^���1�ӯW�s�
N _NPӖ���Rij�gj�"�
�"U}�o����q��2/?�^<ǾS�>Ɲٟ�}}�Cz��4�巖���W�J
������Dl���s�m����U��'���f�����;�„��i_�
j�<e)
y�k}W�;��	�'�n�^la^X@��D��O{��d���}���zq��R��diw�W�T0�n

q��f���6���E��A[�q�5��
�	�9��?���ۦ�/vF�
�
<��Je�SA-�.���T7����Eio����x\��9����{]Y�=�`�6�/<�df{d�؝�~�í1n6tvag�������Wz�Ҝ��z�u�".�>M�t+y��Iv�� ;amP��n����`��p���7��gLm���m�G
Ĩ�{�ɧ7z�;#�<mc��	a�wc��o�5)�VZ�n�"�N12��I�TME�
�|��.Bߘ�� �ٗ�����O�щ��r;-u���=2�i�=�
�WS�2j��$.�ҙ�ܑ�
t�~
�tg��p0)D�+xk��Ey֙Qڻ��9q�&�Q߷a�}2�yuJ�Rz����8/���
\��%�5̳�C:f���c��vf�1�2	�p���1�ɱv�@�~�ޚ�;��=
'D�v!n�^o
#&x��QZ��&�mc靭Z��%�1�G���
�tu��@U�lS6�f�����ۚ�Y��Ug�ME7���'s�+S�M	�N٦h��Qf�Z7⑮>�)���AJ��+s���=��46�����'�>K�M���5����닕ɿL����
�E
.�p�3�BC'�mNL9���FQ������E7�z
n�Lc��*&l@�f?�}
���D��<��ĝ
b��b�
��&��{��s+*$�se���*�U��85a�
qSS�{U�{d�'E��A�H�;NLYnE�66��o
"�g��{ӄ��I|���Gl�����zk�Iwk���Ue�s\�������&��
�F�io���?U訧vEU�洐h�(�mn˻�қy�К|NӐ�{� ��h%Uz���I�
uE�C&e�g�H��x{����K�4uQ^} &���Aߵ��S�zĹ�&ң�f�ӍJ�� -�6'D���x=ȼ�O9�x������	�1/��ϰ���))���W[�ȍ!^�|�eeſ������������C�"k'#FU	���N�ښ(#��h��UE��U�4��Fy��\���E�u�15g�bj+�i����{�ϴ�ig��?N���ϋ��0 3U�����
+��46�r�u��z��p����[+���qR�O�*q͓�t�iW��I�S�Bs7'Y&�;
t��
b䷣���'����oU�/�E�V��*�,�ۧ�@��϶F`-��77'�12�@���N�
+w&��P
8f������56$�V�D�h#���+��V`�G+=�
ǜ �5�=N�۞&�nϒ�mJ6�@_Ӿ%�oښa6G��=�g��(�
��
��a��>ģ�
l�s^��Ԗ\3�\�6���&e�e"�m��4va��+��o�13ݪ�
+��L�3��[@<�X�N��k�z�\d���{���\Uc�%���f
x��
�P&�:��]�tw�q8ϧ8"�m�[���1�)^�*�� ��r���� �gu}�����X�3ޠ����L���f@��1S�-��F)�>�G�ԕwe{�

��?������ݬT���K����;ꖌ+���Qj��[��7���-;P��K9�3�|����$�n�Xh
"��/�-Lw��>l=Y�Z?���
G�lM���)>��o�3�궂�wfq[ä�ù��dccH�k��P��
���O�"�S���0W:y߷�}9���`�dGlvp���K�g�
�ݭq:x�U½�r�ڈn�eǛ�)�LM�G˭�k����r[���o=��o�ʍ�Q�V/I[G6�F_0KH7�#Ք�I�\=������\m�� 7�kNBҼϿ�*K�v���m��ii�*��7,u�'��ˍ�T[ob�E����GN�g
•�fI�N� o��x��f��l
���J��4+_�XtmN��E����@���g[X/����-M�dK��z� A�u��>߃������HKV�Q�������N�������]6���j,��� ��B�mN�04�n�
+~Y����E�<"e8�9��}�|M5��R�4�>XO�V�7;9��쳀S�:������X�P��8�kS���Y~�ᢈ�YS���ҵ~«�֒��QJ�gN��
›�)�v�ӿ�U�"\C͵�I)u��􁵭���(>ߣ�nuk��\�r��
�7��u)%�C9��Q�;%����
�Z�,u�n��cka1��i?�Ť���"�T�t�
��D~��A�:
�".�����+[��ab�}�U�X��g��G_��F����n�[���{��@)���qw7��=w�
�@�kw���{���;y~�+!�����Hf�X�Ǎ	z���n�
eM�/G6 �4�}�܁�� 4����j?6d�
�d=Uҋ���0!�F��tK�SCC��������,���z�����1�[���3��M������9*fu

���|`l�z�-�G�ϰ�{3���)V�z>�/}}�OmC�����6Y9��`�;��
�;C�,�!�zI�*��nB�VT�^n������J�
I}����
��3�s' [...]
y�
Yz�_��
�'!��flԑ��ߘ�Q'�сǰ)�����E={x��<�V=$ᆌ~��GI�NЊ���aK����f�t'+^�ǿ��C�"+�T��&&
���
-���#*�8'9�$6���wo��>~
+�w
��&(���#���+����-���Mr!�n\����֪LU;x���Ӎ(�Џ,�:�C=�G����
+�5��/
+�t��ͫ��΁B
�9JI
+�s��O]
x��3CF��$�EF,0�W�˪s���Jv4��5m�QvCL�Uq�/4\�'�4�,5��qxD������B���E}=�	���L-<�-'#
**©gSצ0��"x���+�����S3!@SM�4�%��W<�F����]*~w��Ƿ�_���
_>����QR܏���c����
h�[I)w���
 �7�ȩc�X����Y8���5�Q�J�Ϳ��B��
+П+sN�}zw���#������'0qA��	a'�q��H��˓���U�1'����%gW���c���>X�LGާ�H���?�Cѷ!?N���@2N��Q/�X9��N<IJ��#���c���
t
�.�>	��
(�۫��9��g�
/�yN2}�/�_�
�bo�Bt��9�%���m):֭&��
��5wy�P ���K���R"��c�DD~;����i^~��qJ�U	+��R"������y��<�n<n%_�CrN���G��B�<=�~t��9Г�W@��^ �q�7Э�g@����4���W�3o�j�=��8�
0
�㥭��J��zD�iNQ�IjV����G~<���mP���O�A�]>
�|� ���-��'@�O�X���07�OC#쭺���$�膪�d��
!�e|m'�o����$&
�

+%���r�>���3�׮�~ܻ
z�wt���c ���'�q������Zp{�
�qi��4*�+�X1�қf$�f

+v�V~���t<7�ˑ�7oA���@9��A�/_�^ݸz �Ǖs�@�
;�w�o.@���ߔ��7kbX�U
��(zkh8 at N.ܔsP�>j���
^r�w


t
�
�
+{v���e���WAN�:��qЃK�A���	~�w��<���y�<Z��<��Xh���@}
�C
v�.U�睆��
/
	e~z
�~����%��@�.] =�p
t�?A'��ν����c2^���C�3�+]Zޫ� �Q�-Ƨ,�cB�跍��+�Ȱߐa�G��߃^]�zz�"(��
P�G��_ �9w
���5��?�
?z
t
8^��W Jz�Eu-����`s�UhWT�\��(5EV~��(��S�c�C�9	>���ŵˠ��@���n�;{��p�����N��
���8<�1z�}MM΃���o^��*�rw�'\�rF��nl���x�Y�x�yQS�u~,���#O�c�b�;��O._���"�񯟃�B������,�a���Mr��+��Ie�8��?��'��9�
��}}����s@����{�
+���;�𗟏��3������|l�\;�CIʳ�Y�qv��D�U�5T��Z�&=�(4.�HEt������wn��ۏ�OA���w`N���޾<���1\����$�qF���~B���M^�~��!T6�:i�0�kUH�xNΩ�7�@�^�>=|
�w�2�2p�� �|z�2���EЙ�N��N�}��T�#�����'�ZD�R/)f���`��e�U�?uQ�~�e��內��3���o^�
^���ٛ�W@��?=���q�"�6�^~���q
����}B
<�Hi�9%oa 
8�^��*!�.M0sU=���ڇ*$�za\Ա���@��žz
zq�&0ǧ@g�
���ҙ�'��@����F�y{�2/��\*t[L�^A��
��gې����otĽ.*����\^hȑ��Aq�����o@/�n��
?����|\���
t��Y /΁B�=>���ùF�+��R�1rh;3
����8Դ��q\���졤�
+Zr�����)�>�^�r�:��˗~?	��M`ޯ�.�yt
���Aw�� =�
��
�:1��e���j�h����¹nB�������Kn@B��|zy�:���� ?`~/��ȋ�@.�;�����X�W�
��ݼ
�	:ZU���Z?"��<��m�"��\⪸����^���
�nq�Ihl��W/�D�|̍?���;�?O��y�
p��'�n��k����bF�y!$��tGE��!�O;�H�&�RߏV�B��gmH��
�B�
O*;[��'<��1��B?�.Z\�Sa�n'��7�6ĕX;���j�UU#X�V"e����6j�@�u��F��U��7P�g�l�_ItɅ���Ә��s脸s��$�8�_YKK]��.v��YD�Z��
���4^��i hj�|h��H�aL��&�	%<�f�]���:U�~���W���. �|
t��
P��	Br��V�����:�I�ܘ`�[�|�y��
`��I��1L��/&x�mL��*<�>�q5!0���G/@� ��;���W�����~8��|� >�$�����z�
�ݮ�$Y&�)�U�v
��V�3+�Yꡚ����X
}�0=�����
y�
+}����sЅ?σ��}?�,�N*C=�fP?�s���5���vm�U��,Sl�u�]�2�/7
֡��ؑ*�
~UTz9'"�DR`���7_�
���%��SgAOn�%�
C$_o'�c��hV��*!e��\�w�~|w^��4�)Pu?.\�K��b
4a���E���ii�ʒ�������OO^���E
:~"��#))�(���:B�� �%��n�+q	�dm���m��6v�c'��6v|5��:"%�T��'3B���ŝM	
8���]л�Ϗg�f_���?�
w��Wr�
�?�bb�+�aŜ����e�{3���9Ї��J.֢�,˪(�V��j
�
+2+����z��ʍ�;
���7n���g'��B��`�B����M1�V3v=��!ojZ��d
yq�3�C��6cޏp!O:q���Z �
̵�F��T5�&�-
rS�*���,��Un3V5XT,���YfV�0�R6dQƆ�MV�f�!�vz���7?��_
�,�v�g�
}u��}�h������TҶe��-��1YW�t�Zu��
j]&���؅nz�R7?k���D��X�
���zzcu�����N
+�yuY��f��T� ey�k�5T�d
u.y5׭b�w�,�Gǣ�T���j�t>|y���>.��

+���ɲ��\i[S�D]s���6b���2 at B�W4զ��{8,�^� l���lYZE��8p��Q�1AI]센��aS����Ѳ
#��E&^=�L�g|
j�
ni�
km�#��u_��Q]
�[e3=x���di���%�$�ԔR��R`��4�t��ۺ��
SM��=:r�y���4���4W����BhQ�������]†���@5�[
����-|3��Zk�YU=򝙺^�QX�3�0景
tu�k6-
�!��̏�5 �I����F�SU��XW�n��T�E
�Г&��}���"��:�a���1�N��T%ҩ�1������f
�jlm�4�
]a��B"����	z��
�ue��2pWU��B��QF�eS/#C;<�<��R j�G+{���c���A����Va�
+A�����,��r��e����
��K\���3�J���2u��=�\/na����U�G;���F��9~v1=�
��vhxd�����~�
��Z��p��$;��N����,�$n�`c
#�-yWW��܎��t����	\�E���
G��d@�JI�.�cVo)�N�w�V���2�g�k��k�J&|SJL_
����"�'��V(:0T�ܪ*�K^�.�ث��xtĒM)&qKN+q�꛶'k�Ng�s�S
�Y\Ew�t�!�:��Z�Æ.���'��k��4Z[�A�����q6�£�Ӷž
b���񞾾ǩ�ÝjZٶ�V`�J6FX�nU%խ0m
+ک���Jky��Z���Y�<��X�D���)��x��Un�e%�u
+�lҞ)�|̀]GA ��f�
�x��`�s�
�p8��U
�U�%�
�-6S]ϲ��uU�ҽ�h�^���g��ü�%Q5bC�(���=�y`�2�W#s�U髃hSs�&�9#�0�W
�G��!
�p��Zd��$��Ϭ��<hΒ�s�8UY1'#g͊�Kb6dG�[]?�6n�1y����ݹV�w��ê����5�K
���v����qR�B7����v�j[��?�-y� A�T�
+�Tr�j����hv
8i�k6y��
qy�MT�}ml�2�JlG��Os�n=�1R�i�?��B{�-}]�#)+��Rg��
���8̡��J�6e4�w�I��]bi�,`�{^Zus[�8\tۦk���,
�Wkr���{�
2�3�+c�`}K�˙��׎6�1_;��îc�vL<�Sπ�HE.6�!�$l
�}Z
,y�s����4�9e
�Nyk�C���R�J
B�y
=�T�zK�M�u�|�6�>�
��X'11N)ߩ�g�%��
5�ܭ$e�q�kj����|9�7�eZTļM	6nS��ݒ��M�ϧ�Qog��=��^�BH����#%�-c_|ϵ�L���h���~c���׶�Ս�NeC�M�B̵g<^�.x�1��1AL�T#bԵȌmq%�!ڞ�C�����a���E3�7�JL�W_ݴ�⑵�Я�
+ܭ�d飼k=�J�KN-]�Go��!�&
oG+��8fK�(ۖP
+�2j�[̡���)p�
�}�
S2<��N��
[+��2
 �1iO��wJ�1�F2�p�_	�ܡ��g�Ļ��VCM�M_׾���ݔ���RB�M�(w�ظ�i:��n_�[��
+�0����]>�&�&�I�3l�]N�p���-�������3G'��̅.�Gc#�KD{�U
�骶
%9�9ǫ�,Վ�\v�g�-<�cr�R��X�+�[�5
+vM�z��R��P����羖q��ikCy�����x����`�
�=�O��iH����"��[4Y5�"qcҳ�ad�{��km��g���
��F_�f�)�ǭ�f~�(
�hH%V1��И}[S�xi�#�K�J�K��2zw���4�H
�E�Yeh��Rͨ]�Oۖ�VEȄ�AhԶ�P�;˩�_��u��nz��yY�k�ñIq�;
+b�C���+�0ݚ�`ST����x ~�V2*vLU-���-5c��R�'+��'�>m��[D���W��v:�I�^���k��l���}�����S�J�O�l�/ya
�$[�1a["t��@Ň�����ID�!���Ģ����~�GK����5.�U�t���R�
��Q+}���f��^CM�]�E8&I���c��c���flH;&��z$��v+X�m1�����i���.5��!��
+ I7�*���"cK�E��d�

a�#�-��`�X��-)6uEDN����������_��-	�=IH�����s�n�漶��i�֢�s
����ŧ�J
�&���\�$"�.C'��Ӯ�I�������p�f+�.�X{FlށW�o �-u��qH�Ù����ܘd�5B޶Rȶʙ( >�L
��G�e�8__�n�
���`3�R遡�yO
�[�L\
(�`h,|n���_/�==!WG*�]糈�i{&6��
�o�#-2d��R��Sb��T�1���2U��c���q��,�YB-X
'��NW6�5
p.�}{Z�`����"Sw���AJ�u#���w_��l�@�
+t��dS��R��Lew����p)&��D*�Ӣ�;Sn�ߜT�#
�iI�.�>���K}�n��	�b� _���W��!���-)>�kb��b�[_Y�24�y竺������u�_cװ�
��`����뉺9�����;
}G��{M���+�:��\�T�Kv�Z
NS}߆�ْ���Y����D��w�J��e^��-s�,R�z�v���_����Ɋ����'+�i~��7Wۊ^�GQ��G܌O\#�}y%駆�=�b <�'�$E_-#i��6R�>�uh(�_��
#j��,L�C�I򨱙n:kc�9�+��e�G��n)�6���C�'��c�(s��Ό;�1p�]B�Z��e;'h%����d�r?6l{���b���t�UB���޾�q��5�z6�	��I\��*�2EbY �8L at sP�j�����>В�4�x��4`K��}��lI)�vt�MƧ��k�:�	��׿K�N��G��Co,�!��Mխ
cU�SKȵ+`q �G�$ [...]
h'����b���9�t��R����	r�� �z^���V��1&e���)�Z�����
+
��Y��gC8
�4��� ץ/
@f:��=&�5/l^����c���,
+��Y����o��*�ţGe��������E���C<*&�� ��xT���t*��A�jSn���.�
� �A��3
*��
JB��,���"Gp0�f:4L���ȩ�nٝ��ٚ�gϵ�>Zl�{�>m����%Ul
������i1�Vz�c�Md�S	3��� ,Lpjx4��Oڙf�<&"�ן�_ w�@�y
\��
	�2�16�
x���.�Y?gY4��Pډ�j�d�\h����a7�&*���A�ZxҾ	[��be�[Ǣ>��3�(vj��.���U�j(��#�m9�m.�0ߌ���RzɎ����Į�=��� �.�C����β^]t |k���@�-�?_�{>��p_��M<���ύ��4P��Ru��
�
�m�ȑ�����}�i����y���}��0!f����tM�mcU�-� ��I�x�:P��6ALW�BBrC���
�}bQK��,�Kɀ�(�ۓ��Ş��� ��Np�HP ��.5��!G'��ѻX�K[����]��-g�\چ�-
�-�}.�#'9�4���%FGm��Bt�y�W�Q�ֲ����/n9%�2����_�v
�{�)\⾚\�����5k��c�������$"������^��'[�X��a,*jc��gt�Et*I��l�SN.�O�2l�8���]Rj��P�N��k�<ӂ*��h�V{ �Ԍ���Qd򡮲j�$��Rn���� /��`!w�t���l�Ҷ��}��濾���柳l��H*u��aVq������	p�ud�c�S���qL�]J����.'��1��P��E�#��2?���Fg�\��؛4��T�M�N��	) 
 ��	�?��6a}
��9A�7c76�3Ve=1w@>/7翱
��mS���^�W�
����;Xd�=Fl�S�L��
+-��/3�¿��m%)g��䣯�{��f��
�֟˂V��P�RC�V��ޘ�r��uL�G��X�=�d�` 
t��2��E�#��
ů�S�ԹA|����n��6����^-��� �9���	\�c��u�����#��]1�p��������=}I��<c��|�6�Oѵ��[h�o��
+�"F��$
���/��rS��W%?^�%
 |� bu[��@��#���3M�ԍ���Y��;щ�
b���{S�J��`$_42˼e�@��G��}�!o�e%}�ᒰ�	�6�6O��w��7���mO�/
��P
+�
����� ݳ����'
>�ҟ/uD����]n�~�#�Y�X��^�7�}̇z_ͣ�%Ĭ�d�� �+�k}eo�U���i��B�{ �6�_n/x�ޙ��6\�џ�r�7���W�����'�
 �
Rb��8,�3�-�[ �� w94T����i�5����0KH�
��qt�u��W��'=2�f<v���N@���+k<&>����AD�BS��٪�+�!p�e�<lc���
�٪J��
+]�*�n�Y��>ە��.�����>�6���R�V����q���[S��-<�.���(Qqv�G���?�Fa�IZ���z�S+\rL�� $`�2�
� ��^�b���v���^ƿx���7	���k����1��d�Z p�j�WE�<M}ٷ���϶l�jw�1p�'�K�����]�5��<zD�[�9�q�+��@�;U�4@}׷�؜@�8�
�]I��ش����m*ީD$lO!�
r|����.
#��j�`�E��X�㙡�Ȅ�	T�� <t�b������m���cҩ��u*������2�;JB�]��\��y���\Y�*}��\���	���� �)ﹹ��M�M�I{M}�� 2�ށ��ݡ�bm2&�	���,d�����P��]
����3
J���P�s
>��!q����LCν�ܧ�af�|'%J�ʻi�<~?6�����U��ؘsWV�zu��p���R��:&���A�k��<	qJ�EN	�br�bg��\]��]9��i�ԟ�Dŋ<�`ƞ]h�~j���|��$l�!���6�ၶ1\��>nc��ڋ���
�d�]�kE}6� >����M�%7�9	?綈vJˍ��/��=Z�ek�8�PGA����a��s�C

ζ��۾�0�k(
+��Nxjj	�[��~�%¥��b�z��k8t����
��rg��Qj���wG���;�)Bn=,�A;&�Ŏ�-\
�'������zn����~����5!��8�m����z��[C�<���rL��x�/#�o�!�:.m��e���WC)���������|�m���R]�͍��2d�M�*[�A�l!�l���:nc������|��V��*�C|x�вp{&ͣf@�u<�]Ʉ�TT�_��	�bN��������oOQ��b\�rW������4�%��n��#�O7'�=��`�
�vԨ
��é@ƛ'`�+.�	�F��6
��V�E��S\��������N*s�P��)X�b�G���ܛmչg�����F�le��p����L"� ��%�Gl�p�N
�e��K�����
+�6���� ~�r
��uf�^ç<��P_a���S�Z2�n�~�c�N��Λj3n
�i�=Se��d��ǁ�"h��$*ї?g9��AB������!g�M]�E��@?.w�����z��U�vi<�N�EIxqlG�B���皳��3n�r��7�U�~�m�/ �[�<����9�cZ��=�ϱ��C:�

"���"��r��%n
��%�dz�Բ-�xh ��F�>�5%�
�;9�Q�?�Q��X[�x{���U���&����Ø�?�@����q��}�HI:�yf��,���<��6���:�u(7p�)��0)��L+2iOO�4%\_�I�A�7�J�å�^9
�<��&牘��ȫes~-T�������>�7� 2�PMǸe4�()񶂕��1�C͵¾L�S.���K(Y7���[s
ٯֻ`	��䬴/��>���#�v���վ�'FA��骸K����yG�f�0��7B�^��
~�W�/�.~7_�zME�:-'���Ҙ~�@F�6�Cb���=�/
+x
��[K��t���c.6���C�
+��Ցnc���0%kS�I�kFP���e�e"W�'˾o���w"@O 9RIߜb�[E��
�d��䝞�xCň9?��rb ���-���Xiҿܖaf������&:� ����o�3Y�C�
+9;ے�̣��\Z�*��M��
*:īg|5������ZbW�LqJ
�l�j`g�[��!���|
��1*ɥ����2�v
j�Q
\A��0���s|��
+�6Nϱ��ڋ������F��!d��2��tu�-_-	'���1���=��)a���Ѿ{��j&��D���'#-P��3���Ѣ��QdĎ��Z
���}}ι����*8h��)Jԙ)|ԩ�	B�+������1B/�
���7>]i/zm��j��*x�Wڊ�
�+�,��閜's����mE���%�����fnN`c7��iMW��3'lq����my��2�.4����3�$1mc��.~�ޅ	uK饛��
�g)��~]q�ܬ/����Z���#܂���w'��ܠ}��ؐ��X��)�h��k_��.��f	<Yט�|_Ϣ
��
+@��I�{�z�\�Z�����k^дgd]jB�[��z�\�:u��,`�=&��R<`�����xc�
��:Jɱ����q\�s�ޅHPV�<o(�򻜗�}G��$�b/₡&��ZOi��ibO�"�t��)��3��Os9���1d�e �s?�c�J^���	��؉o��Þ�;Ϩt��k�E/7�?�&�I
5<��u:�;
h�D�� "�����=
�`�y�ړx�<��zc(��Iw��d�%�)cA
Za8�/�ӑ��Гİs˭����Ă�渂�9�������
�V��W��?xt��m1$�А	�[B�_�~ڒq����WK#��tøw�Y��"��,XkK�[jM�kI��T��wt���Ѳ�
�ȻT3�s���+}��w�4�CM.�x�ѰP������<ξ����r�N1��:�
+���{b�-��U��-��Ѝ.�7�86�%A����>V��&4����2I�ܘ���,�]��p��	Nmi�o�5�c�jhҁ���"I\��\���Ӷ
��t�Y�$HW�zCɊ���<������G�w���Ӎ�/1���h��WD��3�䰳�]%?�<�� ���(:aKʀ�$
؎���#����}4�'��
@����j:4��6)��z�_��P	N6�.t�
o
��_��a\����c���!r����'��^��R�*9y�{0�WFHqזz���
�_���kbf��|���Ƃ/?
�KOG������ꆔ׿f9�_
�j+�+o6��?�G 
>Y�s�����Q[|�KE)�7�'ᡋ��O����ZA�ř��g
}؈��eߟ���Y
	�:�&%ZF�ީ���ߟ�<?!�� ���q����o�m�v��}=��"G�k�Ir��9&~GE�u(ل�QT�SB)9 �����MT�i�9�AKI�I\ģ#��'�f��/�6RQ�1T�[���(E�Z6֭Ʀ;4ФM������,Ưٚ.��R�ړ��.)���S��
+��Tا�����o�I��J� cO
�E�V:�8�
�:'�÷G�"W:�>ʘAg]�L���k}���z���1��C�:R�?
��S�Sʵ
y���t�}�M�3ע���A�x�}�5\��-����M
+�	��VB�Yջ˵��Y�`Т&*�q).>s�&�����|�!#樚��-��=��eEG.������|h(x�Аz�:��q��U��l
W|vN"c�y�t()E��(�����o�*�
p�KOE�� 7��
 ϻ�ω
�_=*2�p��k�(
y�#'fm���7z�ߖ�0A�6�W1?��lWY��!a��pv�{�?��B��� 9{{�X�#'���,#�6�t�T����5��b�=�6��$��)���k� ��M]��x�
`�G�F�i0�ֱ��ůl���Ql�$'�o��}m�Z�.��4��O�Qa4~=V_t���순
wg�|���/ϭvc�bz�W�Ou��̶$?�b��9L	:��'�w���׿bG�JZ�)~��_�Σ�f
�1�{�,��;�d�$@�@v4t at o�?��V|X��؞Ĥإ���1l�����*���$v�@�P7&�Uֆ_0�d<�Ņ��A��� �8C,

��������09{l���4�<���!4����4�JhE &�oO�=j>�<�[�,x<ۜ�`��r�2��鶊����ȅ�ү���W7'pE
5��W�y����t[��vI�_3
�G�go��Y.%
|0ï�{�_�ՒJM��U���3
��&0��f������R�5�.��>o*xu����I1!�w53��c
��f�Z*�}�܏I�e�i�eb��9X�y4띩9�o�%����F�t���B����ه�¶=�������EnIE�z_�������y
6���"f#��ʪ�9&yG��r��2�C�]��>�����&��ġ����	Zbi����zgփ�����qD��������%s[‚o���7��Qc�`�lS��\:|G_��56MxM���u�����_s\
��� ��� ZR�O�*�Evu%s}��'�f�^�5�<��S�/��2�bf;+�δ�������ҵ!V��!v
Ѓ��o
���zb����Ij^�V�%�9����Q� 
@v�<�
m�@'�z��4l�S�B��@~k_���i�"��M�>Z�E��k�척VJ�\#b��ZFι6AL��f>U6���E���
>ZGəs�%�5�w��_�[�^L�'�5f�؟�'y�ج�aD��6f��c��؃uo�At~�*G&�v�<�����
+R�m�Y�U�
�iۦ�sA,��/�g=04�]�|���	�@G�"��/���ӱ�

��R�
$�Y%�Ĺ��w�ʬ����zp��f)��>}�gQ�j�~���y
��W�o�����
͈�f1s��
��+f���2� &N̏��O���3����D)?�u
+�!rw�E;X`1 ���Wr���9%��5�(�j�E6)<v������[��W������'<X
�'-bs��Ϥ���~H�g
+�'��Hh�������
m�w�
T®��Y�/
X��|�:��d�)���pq��
80�O�
���N߆O~q8_7�?]Y���UX�����2�y�~k�y��Y�6N�@BĂ�`���{�v�.��-�¾>��r?*fGM��g�t��޻�\�9��4c",���E_���t����;rv�ř����]�wN6���
+o��C�\r|��4��p�P�;G�zt<����*�{Fa�Ϲ�Q_���\��4a�"�\�UK���!t�nn
��6�	Rj�Ն<��uY��I�a6;
_ZljI�>b\31�~7)���,�%�`w�
����k��n�_Ѝ
ڜbB��j�L)vak��g��@^�	�����pL!0F�G'��j;�L�j���w*1���� �dI�MD�r���k#�$	��^7*�a;8�Fgy��Vp���sC����Œ;�1J�dU�#*��r/!�.�ĭb"7G�>;ee�VQ��

"٭%C,bo���i�T��|���Ԣs�:n[IE���
1&nc�w}WhjCdئ��I�x�	�IL�e 
�؍
r�
+��[�G�
a#�*��蘕~x�lW��/[bd
��x];���.����_KU��z�ZB��W[rf��F[�ļ�
d0��v�l���˱ɰ��me��KbZ��6藳���v�l����
~y�n-
���{��@^(ب�qr�Y�,W˞.�a�v ���P�j��AX�����q�������c=*���G�@������� x�'其6�>;��o��g'�����Ω�V
+6D�0��q�e�����Y���^”��-�d~^ ��A�Ms�.
��ֱ�Z6�@�"�;G��w��<��C��ʾ���c le����.m%׭�x
���C�O�� �D�Qc�
bX�e��e
�����{s��Zs�u�������,���ݨ�I~��.��ߗ�ʃ�
��Yb�	`u�C��t>�
p�[������:0�؇&.c�w�ib�
�}�D߁

��?�m�M�s^�Cc���Y�����s���
.��`��@.5�b.����K���*�K�'ڤ��,�߭����dؖ��4��W5��ژ�����
-��)/�n�٦ q�x1�z6ѫ�3<>ǭe��M|ᾉ�����h �?BLY��E��a~�+�g>8��2�w�?�P�j����$=�����t��t��w�ԎK�D�� "hm�6\�ѩ�F�\$ �Y��
.Tu��	[
z��0�`��;\t���x���n W���|`}?���n�`c��)t��w����R�6��A3��w���o-��Z&�E���{���g.%�u5l�
��5.á�gl��i�Ʋ��;����~�MI̴����r2�`���
kS0*6'q��]�o.
��-)&y�gj����Y
�6T�`�[aF8��(��>�R��6'I�V�Щg�
+lc����`B�-���a`
�u=V�o���c
A��u��,��}\
��lN��E��pRV����¯�S�ߧۢ������
+���t�9?�S�Ŀ�ٕ��8yS�+��?���=�%c�L��4��0������
��Z�T�
c�{�[J��l�������.Q	-`
]jX�|g�[�8%�!b���<��|���B��IPk
���5>�3r ��Мqo�#��������|�s@]iA}�p�oN1b��@>��f=;�L{r����ɍAL��!�&�&���<��T�o�	�f�{<3�f���9�f3�&q�

���Y٦����R�8�b��;�*�_U���0:��s�W��Xhʺ����4לue 0�	��9��0�q|�MD�t*ev)2�&��[&ʃձw䂄˛CE��R�V�l[
+�ܖT|w� 1�:|�f���̐��|=�

䶄����N�������x��VX@:�B+$�W�
��W[~y�

�6DL�o��_�~�@F_���߶Or�����.z|>钬�8p[�#�U��]��k���H .�	v-�ܮc�=�UM�3��=@/��6�yL5-
SU�:��s�eoL��/�-%oz0���"v�C�(#�҃
��c/əa��Ӟ.���b.M��_{�g�B'�v���.|���o��>��1T���J]�,�U΄lIj�nM��p�_��Rˁ������zl{�L���
������)��n�1�˃����{�� ��\�7˩ސbrg�1N=O�]v:t,�C��X�B+�;�ӂ:���q[S-ܐ��*!wW/�;4VV;L��(%i~���8HK�'���J��S_�QS��KA at 8���M8d�����9���.uE�C.
�K }I:���ږ�Ҷe�D��<|}�4n�/��M�J�1Ur����n܏m5���R�أ��4S��HG����<���=}%ףb��
+�hP�VX�T�[rb[B*��=��vN�R�SĴ�1D��1宾:��\)��,�l?&�\��`��tg si�wy�!�y
�i�x=׎�q��d���ѱ)���}N��Ƣ�l ��
ZC�Ȫ��:���;��f�s0V>�X[�����o�9��Yi��Y�O�_����r���v	*�.A'�G˃�;��h�߯H)_O/5�Y%$ɪRo���˾>�W�<�BŁ��>��ơ@����_
5����w�ʾ;F��w���]=
�0�<��76�=�
��Z&Y(M}�'Aq����'�9?�MW�_k/}a
�Gt ��邅\Zj�Fn�r*��K�O0�nʫr�����*�gz�Y۪j�UA�ݚB'9
�M;�����	�
-�T��Jl�CE������
z
}i�2T��!���T�t���&x�=U
$xc��3�~;�
+��Z�����D\��+���RPҖ����,�2���کav�w��.
6wo�N���%
"Tt5�~���b͠w�q�
IJ���Jw�[�$�.å�)��{ӎ
+�4�Uh��m�k�D�t3�Y�ҹ^t��0>�
����d���TW�\Z
ӥg�wf��
�mjb[łٵ-#�
��0)ӡ�P7$�|yU��Nx��^T�漇R^�C]cn��"�
z�2I�5RQ��w��i�Y
+ŭFYF|<�Oڝ6��
f	㻎i�0�f9wCF/�4��$���iUD�_!eyg����6�g�E���&a�Kˀ. ~qy��7UU�L�
�[ū�w��]2&�:��4��>�t=[lι��D^���nw�
o}v$�
�eEE�
�M��O�J������}n��� �8��k#�\wHp�m�E�>h��U��|�����c������D��ѩ6	!�2�
_j�|3r
����s��|��嬡�4j{3ߞ~g�;�:�Z/���!|�aR���΢o���5�����Z�[F����]*h��p�{�x�g�
+_��g�mR|Ʈ�T��4�`��W�����i)����g��ٯVFѱȏ�C���+]����
+S]�m?��1�|]��9~�ӣrF�m;�);+��BK�ۙ����
��0q[S�<��dC��Ƌ?��V
+�]rʭ"n����
�}ޜ(��� �q�AtHf)<� ���m?��FX�C�������ʹk���̴3���;uW��BK������@� b����k�;ՙ�y�w��C���-ɑܹr]k��<�,�}w�T��C���#�JR6��E���C�xY��c�/�3�X {
��
+�h�s
+j����p
�����1l��I����Sjj-~�fd<�>+��98�U
��`S����

$qU��4#K4��[���'s�ͅ
ZL�T?&fF��]B��LĂy9�[Ϊ
Wfn��㔾�t�ZwF��G�� NV�;�ۀ��Oq�>�`����?����Y�BO��)�I<�Y���b_��

8e�/�Ť]�r�'}KI��	�p�KYP�A �V�U�W�5�{
����L*��&Z�q)�æW 8�t��pD[G<�
ࠛ�
"f,��u�n<t�
)8�`��Lv{���
ͮZ!7�MQQ[G}†�>ic*����.u�H-;��
R@��%
�&ĕ7G��G�Ԋ�u�
��<i�~�5;3��Lo��EEͳ-S��/
z�G�(�iM7N�t���zc[�>�a�]�u���
`��xǂ�R(�׿b��^��l��w��6���!%!u�������J���d�?\$:_�Z
+�5����W���oV4�t�#�u��Ӄ��v~���Z���L*���p�
�q�@j�>JA~�36x���1���-ݵ���3F��ﬠ��w�|QQ��k�Zԣ�Ĉ�kj�~L�Lw�/?�����`�UQ
�RoN���e��[E��������ێ4
,)���OK×Օ����C���[VJմ�)�
+`��,���5��}	�O���M�[.Xƺ�)�G��>
�󿎷�
���z�Ɩ��@'�K
8��W���OSJL������R�,�G�Iy�Ԅ���~J�w0���/�U b��į�4�� 	�5 at h�<�����4��Q^���c�)�QAcg��]'_��$�T�EY�	�F��wd��};�t�E���*�K�6-��M+*o����Xgս9e�
�� Vm8���.}�H���pۣ\ƺ�
�y�<�BCR�Q�#@���i �W�S&$�o5��?z��jo��&�����[�(vR��oy��!3�xm���0��>b��Q?^�rӁ/�T4Fy;*�
�6F�������[�l抛
+9�
+^
s�}k���Yuɓm>��#��f���̕�(��$�
��h�%ms���&s�|�
h�kFf���:�z�'��'���wR�H>���T�b�����W�q;&Lƶ��sT7h�e,�9�~\��P�`}�J8��8�
�
�?OP�{>6i��%�؅��V�~u�S{h���J��-�C#&;A�]��󓼒+k*Dœ�ɬ�t��x}�I��شÒfdO�����?'���5�8�&�0��Y)����#B�
�߇
L��@�+gkΥEUU�����
�?7�R��o@��
��݄�}'�`ۂ�	B?Nt��9Zu!�bs/n�M����t�#�zP�
}��an������’W��������'>Q��m,ew_�k���*����K�u�?�?�2����Z�y3�u����w�Q_���]�R��ko�Y��.�b�.bl�(�Gy3]ŷ}���#���l����cC����w�
�Б3RD�T�ٜ�
���G�y{�ڰ�d�g5�37��U(�i�����1a�A��<�gNj(�j|��<�f<��z����6.��cBʆ�/.X^P]��ߖwW�pj�Ճ�|��{������G�~
�7|�aˁ�5� �;p��V\њ��[�P�w\l쁗M�>A��g���1F�}|QY��Ӗwc��齒Tx_I�����	q��ӝ�1NKj�
TȢQ8�/~hc\Z1�K�8��iF�oؐ�vB%��/�T��$�;����T�pO��)uS���v�ᴰg��­�������S��	"2djΑ@�.
x	���.4
͜޲�SWt

ʚ�^T���x��N
~��o��-�h��e�\ӡ�O;i���+��,�C�&;j���ˮlY�Eӊ����҇�=��&{��.
4����*�4ޏic/@�n��ȃ ���
`����C���eg��Z�5�
���v
n�?ׁ�]U���[A�����=܂{nA�}��KP��t6uk���t�@A32)dD$o kX7�rH���

��	���_����/Sb획X1��|X�@�]���#��C�dÄ/�w6�XV����ڤ�/q���A�Ä�%5��Of���6dD'�좞\w�(���R~{
{����ϽИ_���
��{��᭧�)�4��ϨOwO�� _�V���	��I�.���.�+�#��i��і6w'4n~�����7D��������=',e���9��������:"��(��A홱��
+p������K4X��]4c�L�k�}�>�L�6���,�m:�Fl�u���󋲆�o#l*�%궭��M�x�C�3)���С�~&qIOm
6D�:ɵ�>
+|Y�4"(�i�d���tA�J�{Q	��V���	���T��� �r��_�A��,��]�[*��%:}�J*�<"�9������a\�7�Ͼ.�����Z��}77��/RD��AD�yc�	'1���ha�_�@q��c�s�
[x��q�
+k�xf�D��j�K���=
��
���3���=�o��K�0O޲10_&Z����ŶK����$�W �V��Ã�GO{œ9<qM�J�߇�q˲�
Ҳ7�.rQ�������w���������<����ӯ����AY�˱���<p��Φس�jTƺ�9�+Ȼ�o�}���{�m/y�y
U�u���6uTo���q�G���p�.Jݮ�X�i����
����[�u/z@�g%�	�K?������r�no
5�l[�%A-4{YK�p���|���n��
�g_23S���x��E�
x��M��l9�����e��ȴMsݻ�&����#*h�����&�He�n6i�-��t�@s��k_

j������r�����Yp�H�<�]��C����Rp��ïK��ِ�`�@O��>�
+�
��5F,
4���C>~�A�j�L��)��UP
�- at C�������_ǡ�_��,�'Vz������
`r^����k&t�bo������VZ�9F�Ә�[�Ոwgvl�,5���"��T�j�F��uޱ������<?����l��M+�6L���^5�����
Gx4/���E�wa
W5�񶢧.V�m@���o��O�
d�S������D�����r��ͽ2�Q�~�FC[Gs� ���w���}�I۶AS�CuoԵ/�jO��W� ;)���F$��q9�:L~P���03��xgK��Y.]O̾,�xwr��{}TT�lQ�H~WU�D(
�6�	�?�m��{�����
����|�bg�z)Ȑ���
�u|�爏j`��L��*�������r}��w�fq����ql喵���0�tۉk�P4��Ypu� ���W��"O���8f�%��f�;�7�9e�����i�oO+���\�S6����yn�
��ҊgRl�9N�럆p��U��e5�]��{^Qᓠ�8|��%�|�>һ6L*[�Ѫ����=��a!��j�I!5:~�W����
M)��
����7�u�
�(ܜ����N�
%��ּ��fz�����qG�1d
�e�/ֆʟ/��X��D︑�{.já�GY7�
���ԯ.lՁ��e�l�QY_G(M�6\�
�i�ټ9,b�䂩��vv�9)�,���ma� ��0�ˮz[�^�he�5�Ԩ�?��'%u��N��ܛ�F}\Vrg��
+9>��d7!su�[��B&l��\�2`!;��h/$v�M�����q����Q\��(�:�[��)�z�8�*�>'T��%K��"av ���T>R�S/�%���Ċl���I/��B�V��
+?���w��K
+���D}�2��G��a2SqIE�x��
�{���(Ͻ�դ�䦋�v��ɸ�d$#
+���Ύ�����y����;ZL���'?�˞
��ȿ{��W�,�����ص�O?{����sھ������s��[�����|񺃆�1������G�à
�bE���a�f���
�>_�2�Qg��N�J�>mx��%M����<胧��,x����xy�А�aC�

Q{n���dߦ;
��)�Lҩ@��98����y�:d%��;
c>OS	_f9-ߦiăLя	�k 	٠٫rݲ��0����ͻ�`���e}�Qb��¿����:|�y!(�42%�'���LgS����)r֝��@�N�	���S�>���h|��|�yf����7���Kj\6�f���;��cSV�L�{ �aݚWc�\–�^��BƏ�ʮ{YE5ش3zLΟ�]��Rh�E
endstream
endobj
7 0 obj
[6 0 R]
endobj
46 0 obj
<</CreationDate(D:20150504225859-05'00')/Creator(Adobe Illustrator CC 2014 \(Macintosh\))/ModDate(D:20150504225859-05'00')/Producer(Adobe PDF library 11.00)/Title(sticker)>>
endobj
xref
0 47
0000000000 65535 f
+0000000016 00000 n
+0000000144 00000 n
+0000057765 00000 n
+0000000000 00000 f
+0000060982 00000 n
+0000454052 00000 n
+0001633910 00000 n
+0000057816 00000 n
+0000058196 00000 n
+0000454238 00000 n
+0000064184 00000 n
+0000064071 00000 n
+0000060234 00000 n
+0000059359 00000 n
+0000059673 00000 n
+0000059721 00000 n
+0000060488 00000 n
+0000060550 00000 n
+0000060920 00000 n
+0000061284 00000 n
+0000061537 00000 n
+0000064219 00000 n
+0000454122 00000 n
+0000454153 00000 n
+0000454312 00000 n
+0000454871 00000 n
+0000455990 00000 n
+0000470875 00000 n
+0000536463 00000 n
+0000602051 00000 n
+0000667639 00000 n
+0000733227 00000 n
+0000798815 00000 n
+0000864403 00000 n
+0000929991 00000 n
+0000995579 00000 n
+0001061167 00000 n
+0001109206 00000 n
+0001174794 00000 n
+0001240382 00000 n
+0001305970 00000 n
+0001371558 00000 n
+0001437146 00000 n
+0001502734 00000 n
+0001568322 00000 n
+0001633933 00000 n
+trailer
<</Size 47/Root 1 0 R/Info 46 0 R/ID[<84EA07E5C5F74F6EBC8E5DBD38166E29><D17CA53F636D45A4B63442E301C3913C>]>>
startxref
1634123
%%EOF
\ No newline at end of file
diff --git a/doc/_themes/bootstrap/layout.html b/doc/_themes/bootstrap/layout.html
deleted file mode 100644
index 7a59145..0000000
--- a/doc/_themes/bootstrap/layout.html
+++ /dev/null
@@ -1,267 +0,0 @@
-<!DOCTYPE html>
-
-{%- set render_sidebar = (not embedded) and (not theme_nosidebar|tobool) and (sidebars != []) %}
-{%- set url_root = pathto('', 1) %}
-{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
-
-{%- macro relbar(bottom=False) %}
-{%- endmacro %}
-
-{%- macro sidebar() %}
-    {%- if render_sidebar %}
-        <div class="sphinxsidebar">
-            <div class="sphinxsidebarwrapper">
-                {%- if sidebars != None %}
-                    {#- new style sidebar: explicitly include/exclude templates #}
-                    {%- for sidebartemplate in sidebars %}
-                        {%- include sidebartemplate %}
-                    {%- endfor %}
-                {%- else %}
-                    {#- old style sidebars: using blocks -- should be deprecated #}
-                    {%- block sidebartoc %}
-                        {%- include "localtoc.html" %}
-                    {%- endblock %}
-                    {%- block sidebarrel %}
-                        {%- include "relations.html" %}
-                    {%- endblock %}
-                    {%- block sidebarsourcelink %}
-                        {%- include "sourcelink.html" %}
-                    {%- endblock %}
-                    {%- if customsidebar %}
-                        {%- include customsidebar %}
-                    {%- endif %}
-                {%- endif %}
-            </div>
-        </div>
-    {%- endif %}
-{%- endmacro -%}
-
-{%- macro seachbox() %}
-    {%- if pagename != "search" %}
-        <form class="navbar-search" action="{{ pathto('search') }}"
-              method="get">
-            <input type="text" name="q" placeholder="search"/>
-            <input type="hidden" name="check_keywords" value="yes"/>
-            <input type="hidden" name="area" value="default"/>
-        </form>
-    {%- endif %}
-{%- endmacro -%}
-
-<html>
-<head>
-    <meta http-equiv="Content-Type"
-          content="text/html; charset={{ encoding }}"/>
-    {{ metatags }}
-    {%- if not embedded and docstitle %}
-        {%- set titlesuffix = " — "|safe + docstitle|e %}
-    {%- else %}
-        {%- set titlesuffix = "" %}
-    {%- endif %}
-    {%- block htmltitle %}
-        <title>{{ title|striptags|e }}{{ titlesuffix }}</title>
-    {%- endblock %}
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <link href='http://fonts.googleapis.com/css?family=Crete+Round' rel='stylesheet' type='text/css'>
-    <link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css"/>
-    <link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css"/>
-    {%- for cssfile in css_files %}
-        <link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css"/>
-    {%- endfor %}
-    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
-    <!--[if lt IE 9]>
-      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
-    <![endif]-->
-    {%- if not embedded %}
-        <script type="text/javascript">
-            var DOCUMENTATION_OPTIONS = {
-                URL_ROOT:'{{ url_root }}',
-                VERSION:'{{ release|e }}',
-                COLLAPSE_INDEX:false,
-                FILE_SUFFIX:'{{ '' if no_search_suffix else file_suffix }}',
-                HAS_SOURCE:  {{ has_source|lower }}
-            };
-        </script>
-        {%- for scriptfile in script_files + ["_static/bootstrap-dropdown.js"] %}
-            <script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
-        {%- endfor %}
-
-        {%- if use_opensearch %}
-            <link rel="search" type="application/opensearchdescription+xml"
-                  title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
-                  href="{{ pathto('_static/opensearch.xml', 1) }}"/>
-        {%- endif %}
-        {%- if favicon %}
-            <link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
-        {%- endif %}
-    {%- endif %}
-
-    {%- block extrahead %} {% endblock %}
-    <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
-    {% if theme_analytics_code %}
-        <!-- analytics -->
-        <script type="text/javascript">
-            var _gaq = _gaq || [];
-            _gaq.push(['_setAccount', '{{ theme_analytics_code }}']);
-            {% if theme_analytics_domain %}
-                _gaq.push(['_setDomainName', '{{ theme_analytics_domain }}']);
-            {% endif %}
-            _gaq.push(['_trackPageview']);
-
-            (function () {
-                var ga = document.createElement('script');
-                ga.type = 'text/javascript';
-                ga.async = true;
-                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-                var s = document.getElementsByTagName('script')[0];
-                s.parentNode.insertBefore(ga, s);
-            })();
-        </script>
-    {% endif %}
-</head>
-<body>
-
-
-{%- block header %}
-
-    <div class="navbar navbar-static-top">
-        <div class="navbar-inner">
-            <div class="container">
-
-                {%- block headerlogo %}
-                    {%- if logo %}
-                        <a href="{{ pathto('index') }}">
-                            <img class="logo" src="{{ pathto('_static/' + logo, 1) }}"
-                            {% if theme_logo_width %} width="{{ theme_logo_width }}"{% endif %}
-                            {% if theme_logo_height %} height="{{ theme_logo_height }}"{% endif %}
-                            alt="{{ project|e }}" title="{{ project|e }}"/>
-                        </a>
-                    {%- else %}
-{#                        <a class="brand" href="./index.html">Bootstrap</a>#}
-                    {%- endif %}
-                {%- endblock %}
-
-                {%- block relbar1 %}{{ relbar() }}{% endblock %}
-
-
-                <ul class="quick-links">
-                    <li>
-                        <a href="{{ pathto('docs') }}" title="Documentation">Docs</a> 
-                    </li>
-                    <li class="divider">·</li>
-                    <li>
-                        <a href="https://github.com/{{ theme_github_user }}/{{ theme_github_repo }}/">github</a>
-                    </li>
-                    <li class="divider">·</li>
-                    <li>
-                        <a href="https://github.com/{{ theme_github_user }}/{{ theme_github_repo }}/issues">Bugs</a>
-                    </li>
-                    <li class="divider">·</li>
-                    <li>
-                        <a href="{{ pathto('faq') }}" title="FAQ">FAQ</a> 
-                    </li>
-                    <li class="divider">·</li>
-
-                    <li>
-                        <a href="{{ pathto('download') }}" title="Home">Download</a>
-                    </li>
-                    <li class="divider">·</li>
-
-                    <li>
-                        <a href="{{ pathto('community') }}" title="Mailing Lists">Mailing Lists</a>
-                    </li>
-
-                </ul>
-
-            </div>
-        </div>
-    </div>
-{% endblock %}
-
-{%- block content %}
-    {%- block sidebar1 %} {# possible location for sidebar #} {% endblock %}
-    <div class="container">
-        <div class="content row">
-            {%- block document %}
-                <div class="span9">
-                    {% block body %} {% endblock %}
-                    {% if theme_disqus_shortname %}
-                        <div id="disqus_thread"></div>
-                        <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
-                    {% endif %}
-                </div>
-            {%- endblock %}
-            {%- block sidebar2 %}
-                <div class="span3">
-                    {{ sidebar() }}
-                </div>
-            {% endblock %}
-        </div>
-    </div>
-{%- endblock %}
-
-{%- block footer %}
-    <div class="footer">
-        {#        {%- block relbar2 %}{{ relbar(bottom=True) }}{% endblock %}#}
-        <div class="container">
-            {%- if show_copyright %}
-                {%- if hasdoc('copyright') %}
-                    {% trans path=pathto('copyright'), copyright=copyright|e %}©
-                        <a href="{{ path }}">Copyright</a> {{ copyright }}
-                        .{% endtrans %}
-                {%- else %}
-                    {% trans copyright=copyright|e %}©
-                        Copyright {{ copyright }}.{% endtrans %}
-                {%- endif %}
-            {%- endif %}
-            {%- if last_updated %}
-                {% trans last_updated=last_updated|e %}Last updated
-                    on {{ last_updated }}.{% endtrans %}
-            {%- endif %}
-        </div>
-    </div>
-{%- endblock %}
-
-{% if theme_disqus_shortname %}
-    <!-- disqus -->
-    <script type="text/javascript">
-        var disqus_title = '{{ title|striptags|e }}{{ titlesuffix }}';
-        var disqus_identifier ='code' + '.' + "{{ theme_disqus_shortname }}" + window.location.pathname.replace('/', '.');
-    </script>
-
-    <script type="text/javascript">
-        /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
-        var disqus_shortname = "{{ theme_disqus_shortname }}"; // required: replace example with your forum shortname
-
-        /* * * DON'T EDIT BELOW THIS LINE * * */
-        (function() {
-            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
-            dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
-            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
-        })();
-    </script>
-{% endif %}
-
-<script type="text/javascript">
-    $('.nav .active').on('click', function () {
-        e.preventDefault()
-        $(this).siblings().toggle()
-    });
-</script>
-
-<!-- plusone -->
-<script type="text/javascript">
-    (function () {
-        var po = document.createElement('script');
-        po.type = 'text/javascript';
-        po.async = true;
-        po.src = 'https://apis.google.com/js/plusone.js';
-        var s = document.getElementsByTagName('script')[0];
-        s.parentNode.insertBefore(po, s);
-    })();
-</script>
-
-<!-- twitter -->
-<script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
-
-</body>
-</html>
diff --git a/doc/_themes/bootstrap/theme.conf b/doc/_themes/bootstrap/theme.conf
deleted file mode 100644
index def5d44..0000000
--- a/doc/_themes/bootstrap/theme.conf
+++ /dev/null
@@ -1,16 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = sphinx-bootstrap.css
-
-[options]
-nosidebar = false
-sidebarwidth = 200
-logo_width =
-logo_height =
-analytics_code =
-analytics_domain =
-github_user =
-github_repo =
-twitter_username =
-home_url =
-disqus_shortname =
diff --git a/doc/api/cpp/algorithm.rst b/doc/api/cpp/algorithm.rst
new file mode 100644
index 0000000..64ee89e
--- /dev/null
+++ b/doc/api/cpp/algorithm.rst
@@ -0,0 +1,15 @@
+.. _cpp-pdal-algorithm:
+
+******************************************************************************
+``pdal::Algorithm``
+******************************************************************************
+
+.. index:: Algorithm
+
+:cpp:namespace:`pdal::Algorithm` is a set of functions to present a more
+straightforward API for some common library algorithms.  .
+
+.. doxygennamespace:: pdal::Algorithm
+   :members:
+   :undoc-members:
+
diff --git a/doc/api/cpp/algorthm.rst b/doc/api/cpp/algorthm.rst
deleted file mode 100644
index 5102c95..0000000
--- a/doc/api/cpp/algorthm.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-.. _cpp-pdal-algorithm
-
-.. index:: Algorithm
-
-******************************************************************************
-:cpp:namespace:`pdal::Algorithm`
-******************************************************************************
-
-:cpp:namespace:`pdal::Algorithm` is a set of functions to present a more
-  straightforward API for some common library algorithms.  .
-
-.. doxygennamespace:: pdal::Algorithm
-   :members:
-   :undoc-members:
-
diff --git a/doc/api/cpp/utils.rst b/doc/api/cpp/utils.rst
index 3873d9a..c3ed28e 100644
--- a/doc/api/cpp/utils.rst
+++ b/doc/api/cpp/utils.rst
@@ -1,11 +1,11 @@
-.. _cpp-pdal-utils
-
-.. index:: Utils
+.. _cpp-pdal-utils:
 
 ******************************************************************************
 ``pdal::Utils``
 ******************************************************************************
 
+.. index:: Utils
+
 :cpp:namespace:`pdal::Utils` is a set of utility functions.
 
 .. doxygennamespace:: pdal::Utils
diff --git a/doc/apps.rst b/doc/apps.rst
deleted file mode 100644
index 558efca..0000000
--- a/doc/apps.rst
+++ /dev/null
@@ -1,736 +0,0 @@
-.. _apps:
-
-******************************************************************************
-Applications
-******************************************************************************
-
-:Author: Howard Butler
-:Contact: howard at hobu.co
-:Date: 03/13/2016
-
-PDAL contains consists of a single application, called ``pdal``. The ``pdal``
-application currently has the following subcommands:
-
-* :ref:`delta <delta_command>`
-* :ref:`density <density_command>`
-* :ref:`diff <diff_command>`
-* :ref:`ground <ground_command>`
-* :ref:`info <info_command>`
-* :ref:`merge <merge_command>`
-* :ref:`pcl <pcl_command>`
-* :ref:`pipeline <pipeline_command>`
-* :ref:`random <random_command>`
-* :ref:`split <split_command>`
-* :ref:`tindex <tindex_command>`
-* :ref:`translate <translate_command>`
-* :ref:`view <view_command>`
-
-Applications are run by invoking the ``pdal`` application along with the
-command name:
-
-::
-
-    $ pdal info myfile.las
-    $ pdal translate input.las output.las
-    $ pdal pipeline --stdin < myxml.xml
-
-Help for each command can be retrieved via the ``--help`` switch. The
-``--drivers`` and ``--options`` switches can tell you more about particular
-drivers and their options:
-
-::
-
-    $ pdal info --help
-    $ pdal translate --drivers
-    $ pdal pipeline --options writers.las
-
-Additional driver-specific options may be specified by using a
-namespace-prefixed option name. For example, it is possible to set the LAS day
-of year at translation time with the following option:
-
-::
-
-    $ pdal translate \
-        --writers.las.creation_doy="42" \
-        input.las \
-        output.las
-
-.. note::
-
-    Driver specific options can be identified using the ``pdal info --options``
-    invocation.
-
-
-.. _delta_command:
-
-delta command
-------------------------------------------------------------------------------
-
-The ``delta`` command is used to select a nearest point from a candidate file
-for each point in the source file. If the ``--2d`` option is used, the
-query only happens in XY coordinate space.
-
-::
-
-    $ pdal delta <source> <candidate> [output]
-
-Standard out is used if no output file is specified.
-
-::
-
-    --source arg     Non-positional option for specifying source filename
-    --candidate arg  Non-positional option for specifying candidate filename
-    --output arg     Non-positional option for specifying output filename [/dev/stdout]
-    --2d             only 2D comparisons/indexing
-
-Example 1:
-^^^^^^^^^^^^^
-
-::
-
-    $ pdal delta ../../test/data/las/1.2-with-color.las \
-        ../../test/data/las/1.2-with-color.las
-    --------------------------------------------------------------------------------
-    Delta summary for
-         source: '../../test/data/las/1.2-with-color.las'
-         candidate: '../../test/data/las/1.2-with-color.las'
-    --------------------------------------------------------------------------------
-
-    ----------- --------------- --------------- --------------
-     Dimension       X             Y                  Z
-    ----------- --------------- --------------- --------------
-     Min        0.0000            0.0000            0.0000
-     Max        0.0000            0.0000            0.0000
-     Mean       0.0000            0.0000            0.0000
-    ----------- --------------- --------------- --------------
-
-Example 2:
-^^^^^^^^^^
-
-::
-
-    $ pdal delta test/data/1.2-with-color.las \
-        test/data/1.2-with-color.las --detail
-    "ID","DeltaX","DeltaY","DeltaZ"
-    0,0.00,0.00,0.00
-    1,0.00,0.00,0.00
-    2,0.00,0.00,0.00
-    3,0.00,0.00,0.00
-    4,0.00,0.00,0.00
-    5,0.00,0.00,0.00
-    ....
-
-.. _density_command:
-
-density command
---------------------------------------------------------------------------------
-
-The density command produces a tessellated hexagonal OGR layer from the
-output of :ref:`filters.hexbin`.
-
-::
-
-    --input, -i        input point cloud file name
-    --output, -o       output vector data source
-    --lyr_name         OGR layer name to write into datasource
-    --driver, -f       OGR driver name to use
-
-.. _diff_command:
-
-diff command
-------------------------------------------------------------------------------
-
-The ``diff`` command is used for executing a simple contextual difference
-between two sources.
-
-::
-
-    $ pdal diff <source> <candidate>
-
-::
-
-    --source arg     Non-positional option for specifying filename of source file.
-    --candidate arg  Non-positional option for specifying filename to test against source.
-
-The command returns 0 and produces no output if the files describe the same
-point data in the same format, otherwise 1 is returned and a JSON-formatted
-description of the differences is produced.
-
-The command checks for the equivalence of the following items:
-
-* Different schema
-* Expected count
-* Metadata
-* Actual point count
-* Byte-by-byte point data
-
-
-.. _ground_command:
-
-ground command
-------------------------------------------------------------------------------
-
-The ``ground`` command is used to segment the input point cloud into ground
-versus non-ground returns. The output is a point cloud containing only ground
-returns. The ``ground`` command invokes `Point Cloud Library
-<http://pointclouds.org/>`_'s `ProgressiveMorphologicalFilter`_.
-
-.. note::
-
-    The ``ground`` command is only available when PDAL is linked with PCL.
-
-::
-
-    $ pdal ground <input> <output>
-
-::
-
-    --input [-i] arg       Non-positional option for specifying input filename
-    --output [-o] arg      Non-positional option for specifying output filename
-    --maxWindowSize arg    max window size [33]
-    --slope arg            slope [1]
-    --maxDistance arg      max distance [2.5]
-    --initialDistance arg  initial distance [0.15]
-    --cellSize arg         cell size [1]
-    --classify             apply classification labels? [true]
-    --extract              extract ground returns? [false]
-    --approximate [-a]     Use significantly faster approximate algorithm? [false]
-
-
-.. _info_command:
-
-info command
-------------------------------------------------------------------------------
-
-Dumps information about a point cloud file, such as:
-
-* basic properties (extents, number of points, point format)
-* coordinate reference system
-* additional metadata
-* summary statistics about the points
-* the plain text format should be reStructured text if possible to allow a user
-  to retransform the output into whatever they want with ease
-
-::
-
-    $ pdal info <input>
-
-::
-
-    --input arg       Non-positional argument to specify input filename.
-    --point [-p] arg  Display points for particular points.  Points can be specified in
-                      a range or list: 4-10, 15, 255-300.
-    --query arg       Add a listing of points based on the distance from the provided
-                      location.  The number of points returned can be limited by
-                      providing an optional count.
-                      --query "25.34,35.123/3" or --query "11532.23 -10e23 1.234/10"
-    --stats           Display the minimum, maximum, average and count of each
-                      dimension.
-    --boundary        Compute a hexagonal boundary that contains all points.
-    --dimensions arg  Use with --stats to limit the dimensions on which statistics
-                      should be computed.
-                      --dimensions "X, Y,Red"
-    --schema          Dump the schema of the internal point storage.
-    --pipeline-serialization
-                      Create a JSON representation of the pipeline used to generate
-                      the output.
-    --summary         Dump the point count, spatial reference, extrema and dimension
-                      names.
-    --metadata        Dump the metadata associated with the input file.
-
-If no options are provided, ``--stats`` is assumed.
-
-Example 1:
-^^^^^^^^^^^^
-
-::
-
-    $ pdal info  test/data/las/1.2-with-color.las \
-        --query="636601.87, 849018.59, 425.10"
-    {
-      "0":
-      {
-        "Blue": 134,
-        "Classssification": 1,
-        "EdgeOfFlightLine": 0,
-        "GpsTime": 245383.38808001476,
-        "Green": 104,
-        "Intensity": 124,
-        "NumberOfReturns": 1,
-        "PointSourceId": 7326,
-        "Red": 134,
-        "ReturnNumber": 1,
-        "ScanAngleRank": -4,
-        "ScanDirectionFlag": 1,
-        "UserData": 126,
-        "X": 636601.87,
-        "Y": 849018.59999999998,
-        "Z": 425.10000000000002
-      },
-      "1":
-      {
-        "Blue": 134,
-        "Classification": 2,
-        "EdgeOfFlightLine": 0,
-        "GpsTime": 246099.17323102333,
-        "Green": 106,
-        "Intensity": 153,
-        "NumberOfReturns": 1,
-        "PointSourceId": 7327,
-        "Red": 143,
-        "ReturnNumber": 1,
-        "ScanAngleRank": -10,
-        "ScanDirectionFlag": 1,
-        "UserData": 126,
-        "X": 636606.76000000001,
-        "Y": 849053.94000000006,
-        "Z": 425.88999999999999
-      },
-      ...
-
-Example 2:
-^^^^^^^^^^
-
-::
-
-    $ pdal info test/data/1.2-with-color.las -p 0-10
-    {
-      "filename": "../../test/data/las/1.2-with-color.las",
-      "pdal_version": "PDAL 1.0.0.b1 (116d7d) with GeoTIFF 1.4.1 GDAL 1.11.2 LASzip 2.2.0",
-      "points":
-      {
-        "point":
-        [
-          {
-            "Blue": 88,
-            "Classification": 1,
-            "EdgeOfFlightLine": 0,
-            "GpsTime": 245380.78254962614,
-            "Green": 77,
-            "Intensity": 143,
-            "NumberOfReturns": 1,
-            "PointId": 0,
-            "PointSourceId": 7326,
-            "Red": 68,
-            "ReturnNumber": 1,
-            "ScanAngleRank": -9,
-            "ScanDirectionFlag": 1,
-            "UserData": 132,
-            "X": 637012.23999999999,
-            "Y": 849028.31000000006,
-            "Z": 431.66000000000003
-          },
-          {
-            "Blue": 68,
-            "Classification": 1,
-            "EdgeOfFlightLine": 0,
-            "GpsTime": 245381.45279923646,
-            "Green": 66,
-            "Intensity": 18,
-            "NumberOfReturns": 2,
-            "PointId": 1,
-            "PointSourceId": 7326,
-            "Red": 54,
-            "ReturnNumber": 1,
-            "ScanAngleRank": -11,
-            "ScanDirectionFlag": 1,
-            "UserData": 128,
-            "X": 636896.32999999996,
-            "Y": 849087.70000000007,
-            "Z": 446.38999999999999
-          },
-          ...
-
-
-.. _merge_command:
-
-merge command
-------------------------------------------------------------------------------
-
-The ``merge`` command will combine input files into a single output file.
-
-
-::
-
-    $ pdal merge <input> ... <output>
-
-::
-
-    --files [-f] arg  Non-positional argument to specify filenames.  The last
-      file listed is taken to be the output file.
-
-This command provides simple merging of files.  It provides no facility for
-filtering, reprojection, etc.  The file type of the input files may be
-different from one another and different from that of the output file.
-
-
-.. _pcl_command:
-
-pcl command
-------------------------------------------------------------------------------
-
-The ``pcl`` command is used to invoke a PCL JSON pipeline. See
-:ref:`pcl_block_tutorial` for more information.
-
-.. note::
-
-    The ``pcl`` command is only available when PDAL is linked with PCL.
-
-::
-
-    $ pdal pcl <input> <output> <pcl>
-
-::
-
-    --input [-i] arg   Non-positional argument to specify input file name.
-    --output [-o] arg  Non-positional argument to specify output file name.
-    --pcl [-p] arg     Non-positional argument to specify pcl file name.
-    --compress [-z]    Compress output data (if supported by output format)
-    --metadata [-m]    Forward metadata from previous stages.
-
-
-.. _pipeline_command:
-
-pipeline command
-------------------------------------------------------------------------------
-
-The ``pipeline`` command is used to execute :ref:`pipeline` XML. See
-:ref:`reading` or :ref:`pipeline` for more information.
-
-::
-
-    $ pdal pipeline <input>
-
-::
-
-    --input [-i] arg  Non-positional argument to specify input file name.
-    --pipeline-serialization arg
-                      Write input pipeline along with all metadata and created by the
-                      pipeline to the specified file.
-    --validate        Validate the pipeline (including serialization), but do not execute
-                      writing of points
-
-.. note::
-
-    The ``pipeline`` command can accept option substitutions, but they
-    do not replace existing options that are specified in the input XML
-    pipeline.  For example, to set the output and input LAS files for a
-    pipeline that does a translation, construct XML that does not contain
-    ``filename`` for reader and writer and issue the command with the
-    following arguments:
-
-    ::
-
-        $ pdal pipeline -i translate.xml --writers.las.filename=output.laz \
-            --readers.las.filename=input.las
-
-
-.. _random_command:
-
-random command
-------------------------------------------------------------------------------
-
-The ``random`` command is used to create a random point cloud. It uses
-:ref:`readers.faux` to create a point cloud containing ``count`` points
-drawn randomly from either a uniform or normal distribution. For the uniform
-distribution, the bounds can be specified (they default to a unit cube). For
-the normal distribution, the mean and standard deviation can both be set for
-each of the x, y, and z dimensions.
-
-::
-
-    $ pdal random <output>
-
-::
-
-    --output [-o] arg   Non-positional argument to specify output file name.
-    --compress [-z]     Compress output data (if supported by output format)
-    --count arg         Number of points in created point cloud [0].
-    --bounds arg        Extent (in XYZ to clip output to):
-                        --bounds "([xmin,xmax],[ymin,ymax],[zmin,zmax])"
-    --mean arg          List of means (for --distribution normal)
-                        --mean 0.0,0.0,0.0
-                        --mean "0.0 0.0 0.0"
-    --stdev arg         List of standard deviations (for --distribution normal)
-                        --stdev 0.0,0.0,0.0
-                        --stdev "0.0 0.0 0.0"
-    --distribution arg  Distribution type (uniform or normal) [uniform]
-
-
-.. _split_command:
-
-split command
-------------------------------------------------------------------------------
-
-The ``split`` command will create multiple output files from a single input
-file.  The command takes an input file name and an output filename (used as a
-template) or output directory specification.
-
-::
-
-    $ pdal split <input> <output>
-
-::
-
-    --input [-i] arg   Non-positional option for specifying input file name
-    --output [-o] arg  Non-positional option for specifying output file/directory name
-    --length arg       Edge length for splitter cells.  See :ref:`filters.splitter`.
-    --capacity arg     Point capacity for chipper cells.  See :ref:`filters.chipper`.
-
-If neither the ``--length`` nor ``--capacity`` arguments are specified, an
-implcit argument of capacity with a value of 100000 is added.
-
-The output argument is a template.  If the output argument is, for example,
-``file.ext``, the output files created are ``file_#.ext`` where # is a number
-starting at one and incrementing for each file created.
-
-If the output argument ends in a path separator, it is assumed to be a
-directory and the input argument is appended to create the output template.
-The ``split`` command never creates directories.  Directories must pre-exist.
-
-Example 1:
-^^^^^^^^^^^
-
-::
-
-    $ pdal split --capacity 100000 infile.laz outfile.bpf
-
-This command takes the points from the input file ``infile.laz`` and creates
-output files ``outfile_1.bpf``, ``outfile_2.bpf``, ... where each output file
-contains no more than 100000 points.
-
-
-.. _tindex_command:
-
-tindex command
-------------------------------------------------------------------------------
-
-The ``tindex`` command is used to create a `GDAL`_-style tile index for
-PDAL-readable point cloud types (see `gdaltindex`_).
-
-.. note::
-
-    The ``tindex`` command is only available when PDAL is linked with `GDAL`_.
-
-The ``tindex`` command has two modes.  The first mode creates a spatial index
-file for a set of point cloud files.  The second mode creates a point cloud
-file that is the result of merging the points from files referred to in a
-spatial index file that meet some criteria (usually a geographic region filter).
-
-tindex Creation Mode
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    $ pdal tindex <tindex> <filespec>
-
-This command will index the files referred to by ``filespec`` and place the
-result in ``tindex``.  The ``tindex`` is a vector file or database that can be
-handled by `OGR <http://www.gdal.org/ogr_formats.html>`_. The type of the index
-file can be specified by specifying the OGR code for the format using the
-``--driver`` option.  If no driver is specified, the format defaults to "ESRI
-Shapefile".
-
-In vector file-speak, each file specified by ``filespec`` is stored as a feature
-in a layer in the index file. The ``filespec`` is a `glob pattern
-<http://man7.org/linux/man-pages/man7/glob.7.html>'_.  and normally needs to be
-quoted to prevent shell expansion of wildcard characters.
-
-::
-
-    --tindex                   Non-positional option for specifying the index file name.
-    --filespec                 Non-positional option for specifying pattern of files to
-                               be indexed.
-    --lyr_name                 Name of layer in which to store the features. Defaults to
-                               the base name of the first file indexed.
-    --tindex_name              Name of the field in the feature in which to store the
-                               indexed file name. ["location"]
-    --driver                   OGR driver name. ["ESRI Shapefile"]
-    --t_srs                    Spatial reference system in which to store index vector
-                               data. ["EPSG:4326"]
-    --a_srs                    Spatial reference assumed to be the reference for the
-                               source data.  If the source data includes spatial reference
-                               information, this value is IGNORED. ["EPSG:4326"]
-    --write_absolute_path arg  Write absolute rather than relative file paths [false]
-
-tindex Merge Mode
-^^^^^^^^^^^^^^^^^^^^^
-
-::
-
-    $ pdal tindex --merge <tindex> <filespec>
-
-This command will read the index file ``tindex`` and merge the points in the
-files listed index file that pass any filter that might be specified, writing
-the output to the point cloud file specified in ``filespec``.  The type of the
-output file is determined automatically from the filename extension.
-
-::
-
-    --tindex    Non-positional option for specifying the index filename.
-    --filespec  Non-positional option for specifying the merge output filename.
-    --polygon   Well-known text representation of geometric filter.  Only
-                points inside the object will be written to the output file.
-    --bounds    Bounding box for clipping points.  Only points inside the box
-                will be written to the output file.
-                --bounds "([xmin,xmax],[ymin,ymax],[zmin,zmax])"
-    --t_srs     Spatial reference system in which the output data should be
-                represented. ["EPSG:4326"]
-
-Example 1:
-^^^^^^^^^^^
-
-Find all LAS files via ``find``, send that file list via STDIN to
-``pdal tindex``, and write a SQLite tile index file with a layer named ``pdal``:
-
-::
-
-    $ find las/ -iname "*.las" | pdal tindex index.sqlite -f "SQLite" \
-        --stdin --lyr_name pdal
-
-Example 2:
-^^^^^^^^^^^
-
-Glob a list of LAS files, output the SRS for the index entries to EPSG:4326, and
-write out an `SQLite`_ file.
-
-::
-
-    $ pdal tindex index.sqlite "*.las" -f "SQLite" --lyr_name "pdal" \
-        --t_srs "EPSG:4326"
-
-
-.. _translate_command:
-
-translate command
-------------------------------------------------------------------------------
-
-The ``translate`` command can be used for simple conversion of files based on
-their file extensions. It can also be used for constructing pipelines directly
-from the command-line.
-
-::
-
-    $ pdal translate <input> <output>
-
-::
-
-    -i [ --input ] arg    input file name
-    -o [ --output ] arg   output file name
-    -p [ --pipeline ] arg pipeline output
-    -r [ --reader ] arg   reader type
-    -f [ --filter ] arg   filter type
-    -w [ --writer ] arg   writer type
-
-The ``--input`` and ``--output`` file names are required options.
-
-The ``--pipeline`` file name is optional. If given, the pipeline constructed
-from the command-line arguments will be written to disk for reuse in the
-:ref:`pipeline_command`.
-
-The ``--filter`` flag is optional. It is used to specify the driver used to
-filter the data. ``--filter`` accepts multiple arguments if provided, thus
-constructing a multi-stage filtering operation.
-
-If no ``--reader`` or ``--writer`` type are given, PDAL will attempt to infer
-the correct drivers from the input and output file name extensions respectively.
-
-Example 1:
-^^^^^^^^^^^
-
-The ``translate`` command can be augmented by specifying full-path options at
-the command-line invocation. For example, the following invocation will
-translate ``1.2-with-color.las`` to ``output.laz`` while doing the following:
-
-* Setting the creation day of year to 42
-* Setting the creation year to 2014
-* Setting the LAS point format to 1
-* Cropping the file with the given polygon
-
-::
-
-    $ pdal translate \
-        --writers.las.creation_doy="42" \
-        --writers.las.creation_year="2014" \
-        --writers.las.format="1" \
-        --filters.crop.polygon="POLYGON ((636889.412951239268295 851528.512293258565478 422.7001953125,636899.14233423944097 851475.000686757150106 422.4697265625,636899.14233423944097 851475.000686757150106 422.4697265625,636928.33048324030824 851494.459452757611871 422.5400390625,636928.33048324030824 851494.459452757611871 422.5400390625,636928.33048324030824 851494.459452757611871 422.5400390625,636976.977398241520859 851513.918218758190051 424.150390625,636976.977398241520859 851513 [...]
-        ./test/data/1.2-with-color.las \
-        output.laz
-
-Example 2:
-^^^^^^^^^^^
-
-Given these tools, we can now construct a custom pipeline on-the-fly. The
-example below uses a simple LAS reader and writer, but stages a PCL-based
-voxel grid filter, followed by the PCL-based ground filter. We can even set
-stage-specific parameters as shown.
-
-::
-
-    $ pdal translate input.las output.las \
-        --filter filters.pclblock filters.ground \
-        --filters.pclblock.json="{\"pipeline\":{\"filters\":[{\"name\":\"VoxelGrid\"}]}}" \
-        --filters.ground.approximate=true --filters.ground.extract=true
-
-
-.. _view_command:
-
-view command
-------------------------------------------------------------------------------
-
-The ``view`` command can be used to visualize a point cloud using the
-PCLVisualizer. The command takes a single argument, the input file name.
-
-.. note::
-
-    The ``view`` command is only available when PDAL is linked with PCL.
-
-::
-
-    $ pdal view <input>
-
-Once the data has been loaded into the viewer, press h or H to display the
-help.
-
-::
-
-    | Help:
-    -------
-              p, P   : switch to a point-based representation
-              w, W   : switch to a wireframe-based representation (where available)
-              s, S   : switch to a surface-based representation (where available)
-
-              j, J   : take a .PNG snapshot of the current window view
-              c, C   : display current camera/window parameters
-              f, F   : fly to point mode
-
-              e, E   : exit the interactor
-              q, Q   : stop and call VTK's TerminateApp
-
-               +/-   : increment/decrement overall point size
-         +/- [+ ALT] : zoom in/out
-
-              g, G   : display scale grid (on/off)
-              u, U   : display lookup table (on/off)
-
-        o, O         : switch between perspective/parallel projection (default = perspective)
-        r, R [+ ALT] : reset camera [to viewpoint = {0, 0, 0} -> center_{x, y, z}]
-        CTRL + s, S  : save camera parameters
-        CTRL + r, R  : restore camera parameters
-
-        ALT + s, S   : turn stereo mode on/off
-        ALT + f, F   : switch between maximized window mode and original size
-
-              l, L           : list all available geometric and color handlers for the current actor map
-        ALT + 0..9 [+ CTRL]  : switch between different geometric handlers (where available)
-              0..9 [+ CTRL]  : switch between different color handlers (where available)
-
-        SHIFT + left click   : select a point (start with -use_point_picking)
-
-              x, X   : toggle rubber band selection mode for left mouse button
-
-
-.. _`SQLite`: http://www.sqlite.org
-.. _`gdaltindex`: http://www.gdal.org/gdaltindex.html
-.. _`GDAL`: http://www.gdal.org
-.. _`ProgressiveMorphologicalFilter`: http://pointclouds.org/documentation/tutorials/progressive_morphological_filtering.php#progressive-morphological-filtering.
diff --git a/doc/apps/delta.rst b/doc/apps/delta.rst
new file mode 100644
index 0000000..b356a82
--- /dev/null
+++ b/doc/apps/delta.rst
@@ -0,0 +1,58 @@
+.. _delta_command:
+
+******************************************************************************
+delta
+******************************************************************************
+
+The ``delta`` command is used to select a nearest point from a candidate file
+for each point in the source file. If the ``--2d`` option is used, the
+query only happens in XY coordinate space.
+
+::
+
+    $ pdal delta <source> <candidate> [output]
+
+Standard out is used if no output file is specified.
+
+::
+
+    --source arg     Non-positional option for specifying source filename
+    --candidate arg  Non-positional option for specifying candidate filename
+    --output arg     Non-positional option for specifying output filename [/dev/stdout]
+    --2d             only 2D comparisons/indexing
+
+Example 1:
+--------------------------------------------------------------------------------
+
+::
+
+    $ pdal delta ../../test/data/las/1.2-with-color.las \
+        ../../test/data/las/1.2-with-color.las
+    --------------------------------------------------------------------------------
+    Delta summary for
+         source: '../../test/data/las/1.2-with-color.las'
+         candidate: '../../test/data/las/1.2-with-color.las'
+    --------------------------------------------------------------------------------
+
+    ----------- --------------- --------------- --------------
+     Dimension       X             Y                  Z
+    ----------- --------------- --------------- --------------
+     Min        0.0000            0.0000            0.0000
+     Max        0.0000            0.0000            0.0000
+     Mean       0.0000            0.0000            0.0000
+    ----------- --------------- --------------- --------------
+
+Example 2:
+--------------------------------------------------------------------------------
+
+::
+
+    $ pdal delta test/data/1.2-with-color.las \
+        test/data/1.2-with-color.las --detail
+    "ID","DeltaX","DeltaY","DeltaZ"
+    0,0.00,0.00,0.00
+    1,0.00,0.00,0.00
+    2,0.00,0.00,0.00
+    3,0.00,0.00,0.00
+    4,0.00,0.00,0.00
+    5,0.00,0.00,0.00
diff --git a/doc/apps/density.rst b/doc/apps/density.rst
new file mode 100644
index 0000000..9f211d0
--- /dev/null
+++ b/doc/apps/density.rst
@@ -0,0 +1,15 @@
+.. _density_command:
+
+********************************************************************************
+density
+********************************************************************************
+
+The density command produces a tessellated hexagonal OGR layer from the
+output of :ref:`filters.hexbin`.
+
+::
+
+    --input, -i        input point cloud file name
+    --output, -o       output vector data source
+    --lyr_name         OGR layer name to write into datasource
+    --ogrdriver, -f    OGR driver name to use
diff --git a/doc/apps/diff.rst b/doc/apps/diff.rst
new file mode 100644
index 0000000..2942824
--- /dev/null
+++ b/doc/apps/diff.rst
@@ -0,0 +1,31 @@
+.. _diff_command:
+
+********************************************************************************
+diff
+********************************************************************************
+
+The ``diff`` command is used for executing a simple contextual difference
+between two sources.
+
+::
+
+    $ pdal diff <source> <candidate>
+
+::
+
+    --source arg     Non-positional option for specifying filename of source file.
+    --candidate arg  Non-positional option for specifying filename to test against source.
+
+The command returns 0 and produces no output if the files describe the same
+point data in the same format, otherwise 1 is returned and a JSON-formatted
+description of the differences is produced.
+
+The command checks for the equivalence of the following items:
+
+* Different schema
+* Expected count
+* Metadata
+* Actual point count
+* Byte-by-byte point data
+
+
diff --git a/doc/apps/ground.rst b/doc/apps/ground.rst
new file mode 100644
index 0000000..174210b
--- /dev/null
+++ b/doc/apps/ground.rst
@@ -0,0 +1,33 @@
+.. _ground_command:
+
+********************************************************************************
+ground
+********************************************************************************
+
+The ``ground`` command is used to segment the input point cloud into ground
+versus non-ground returns. The output is a point cloud containing only ground
+returns. The ``ground`` command invokes `Point Cloud Library
+<http://pointclouds.org/>`_'s `ProgressiveMorphologicalFilter`_.
+
+.. note::
+
+    The ``ground`` command is only available when PDAL is linked with PCL.
+
+::
+
+    $ pdal ground <input> <output>
+
+::
+
+    --input [-i] arg        Non-positional option for specifying input filename
+    --output [-o] arg       Non-positional option for specifying output filename
+    --max_window_size arg   max window size [33]
+    --slope arg             slope [1]
+    --max_distance arg      max distance [2.5]
+    --initial_distance arg  initial distance [0.15]
+    --cell_size arg         cell size [1]
+    --classify              apply classification labels? [true]
+    --extract               extract ground returns? [false]
+    --approximate [-a]      Use significantly faster approximate algorithm? [false]
+
+.. _`ProgressiveMorphologicalFilter`: http://pointclouds.org/documentation/tutorials/progressive_morphological_filtering.php#progressive-morphological-filtering.
diff --git a/doc/apps/index.rst b/doc/apps/index.rst
new file mode 100644
index 0000000..97afe9c
--- /dev/null
+++ b/doc/apps/index.rst
@@ -0,0 +1,46 @@
+.. _apps:
+
+******************************************************************************
+Applications
+******************************************************************************
+
+PDAL contains consists of a single application, called ``pdal``.  Applications
+are run by invoking the ``pdal`` application along with the command name:
+
+::
+
+    $ pdal info myfile.las
+    $ pdal translate input.las output.las
+    $ pdal pipeline --stdin < myxml.xml
+
+Help for each command can be retrieved via the ``--help`` switch. The
+``--drivers`` and ``--options`` switches can tell you more about particular
+drivers and their options:
+
+::
+
+    $ pdal info --help
+    $ pdal translate --drivers
+    $ pdal pipeline --options writers.las
+
+Additional driver-specific options may be specified by using a
+namespace-prefixed option name. For example, it is possible to set the LAS day
+of year at translation time with the following option:
+
+::
+
+    $ pdal translate \
+        --writers.las.creation_doy="42" \
+        input.las \
+        output.las
+
+.. note::
+
+    Driver specific options can be identified using the ``pdal info --options``
+    invocation.
+
+.. toctree::
+   :maxdepth: 2
+   :glob:
+
+   *
diff --git a/doc/apps/info.rst b/doc/apps/info.rst
new file mode 100644
index 0000000..5868005
--- /dev/null
+++ b/doc/apps/info.rst
@@ -0,0 +1,145 @@
+.. _info_command:
+
+********************************************************************************
+info
+********************************************************************************
+
+Dumps information about a point cloud file, such as:
+
+* basic properties (extents, number of points, point format)
+* coordinate reference system
+* additional metadata
+* summary statistics about the points
+* the plain text format should be reStructured text if possible to allow a user
+  to retransform the output into whatever they want with ease
+
+::
+
+    $ pdal info <input>
+
+::
+
+    --input arg       Non-positional argument to specify input filename.
+    --point [-p] arg  Display points for particular points.  Points can be specified in
+                      a range or list: 4-10, 15, 255-300.
+    --query arg       Add a listing of points based on the distance from the provided
+                      location.  The number of points returned can be limited by
+                      providing an optional count.
+                      --query "25.34,35.123/3" or --query "11532.23 -10e23 1.234/10"
+    --stats           Display the minimum, maximum, average and count of each
+                      dimension.
+    --boundary        Compute a hexagonal boundary that contains all points.
+    --dimensions arg  Use with --stats to limit the dimensions on which statistics
+                      should be computed.
+                      --dimensions "X, Y,Red"
+    --schema          Dump the schema of the internal point storage.
+    --pipeline-serialization
+                      Create a JSON representation of the pipeline used to generate
+                      the output.
+    --summary         Dump the point count, spatial reference, extrema and dimension
+                      names.
+    --metadata        Dump the metadata associated with the input file.
+
+If no options are provided, ``--stats`` is assumed.
+
+Example 1:
+^^^^^^^^^^^^
+
+::
+
+    $ pdal info  test/data/las/1.2-with-color.las \
+        --query="636601.87, 849018.59, 425.10"
+    {
+      "0":
+      {
+        "Blue": 134,
+        "Classssification": 1,
+        "EdgeOfFlightLine": 0,
+        "GpsTime": 245383.38808001476,
+        "Green": 104,
+        "Intensity": 124,
+        "NumberOfReturns": 1,
+        "PointSourceId": 7326,
+        "Red": 134,
+        "ReturnNumber": 1,
+        "ScanAngleRank": -4,
+        "ScanDirectionFlag": 1,
+        "UserData": 126,
+        "X": 636601.87,
+        "Y": 849018.59999999998,
+        "Z": 425.10000000000002
+      },
+      "1":
+      {
+        "Blue": 134,
+        "Classification": 2,
+        "EdgeOfFlightLine": 0,
+        "GpsTime": 246099.17323102333,
+        "Green": 106,
+        "Intensity": 153,
+        "NumberOfReturns": 1,
+        "PointSourceId": 7327,
+        "Red": 143,
+        "ReturnNumber": 1,
+        "ScanAngleRank": -10,
+        "ScanDirectionFlag": 1,
+        "UserData": 126,
+        "X": 636606.76000000001,
+        "Y": 849053.94000000006,
+        "Z": 425.88999999999999
+      },
+      ...
+
+Example 2:
+^^^^^^^^^^
+
+::
+
+    $ pdal info test/data/1.2-with-color.las -p 0-10
+    {
+      "filename": "../../test/data/las/1.2-with-color.las",
+      "pdal_version": "PDAL 1.0.0.b1 (116d7d) with GeoTIFF 1.4.1 GDAL 1.11.2 LASzip 2.2.0",
+      "points":
+      {
+        "point":
+        [
+          {
+            "Blue": 88,
+            "Classification": 1,
+            "EdgeOfFlightLine": 0,
+            "GpsTime": 245380.78254962614,
+            "Green": 77,
+            "Intensity": 143,
+            "NumberOfReturns": 1,
+            "PointId": 0,
+            "PointSourceId": 7326,
+            "Red": 68,
+            "ReturnNumber": 1,
+            "ScanAngleRank": -9,
+            "ScanDirectionFlag": 1,
+            "UserData": 132,
+            "X": 637012.23999999999,
+            "Y": 849028.31000000006,
+            "Z": 431.66000000000003
+          },
+          {
+            "Blue": 68,
+            "Classification": 1,
+            "EdgeOfFlightLine": 0,
+            "GpsTime": 245381.45279923646,
+            "Green": 66,
+            "Intensity": 18,
+            "NumberOfReturns": 2,
+            "PointId": 1,
+            "PointSourceId": 7326,
+            "Red": 54,
+            "ReturnNumber": 1,
+            "ScanAngleRank": -11,
+            "ScanDirectionFlag": 1,
+            "UserData": 128,
+            "X": 636896.32999999996,
+            "Y": 849087.70000000007,
+            "Z": 446.38999999999999
+          },
+          ...
+
diff --git a/doc/apps/merge.rst b/doc/apps/merge.rst
new file mode 100644
index 0000000..f3ac1a5
--- /dev/null
+++ b/doc/apps/merge.rst
@@ -0,0 +1,23 @@
+.. _merge_command:
+
+********************************************************************************
+merge
+********************************************************************************
+
+The ``merge`` command will combine input files into a single output file.
+
+
+::
+
+    $ pdal merge <input> ... <output>
+
+::
+
+    --files [-f] arg  Non-positional argument to specify filenames.  The last
+      file listed is taken to be the output file.
+
+This command provides simple merging of files.  It provides no facility for
+filtering, reprojection, etc.  The file type of the input files may be
+different from one another and different from that of the output file.
+
+
diff --git a/doc/apps/pcl.rst b/doc/apps/pcl.rst
new file mode 100644
index 0000000..e394cec
--- /dev/null
+++ b/doc/apps/pcl.rst
@@ -0,0 +1,26 @@
+.. _pcl_command:
+
+********************************************************************************
+pcl
+********************************************************************************
+
+The ``pcl`` command is used to invoke a PCL JSON pipeline. See
+:ref:`pcl_block_tutorial` for more information.
+
+.. note::
+
+    The ``pcl`` command is only available when PDAL is linked with PCL.
+
+::
+
+    $ pdal pcl <input> <output> <pcl>
+
+::
+
+    --input [-i] arg   Non-positional argument to specify input file name.
+    --output [-o] arg  Non-positional argument to specify output file name.
+    --pcl [-p] arg     Non-positional argument to specify pcl file name.
+    --compress [-z]    Compress output data (if supported by output format)
+    --metadata [-m]    Forward metadata from previous stages.
+
+
diff --git a/doc/apps/pipeline.rst b/doc/apps/pipeline.rst
new file mode 100644
index 0000000..cab6094
--- /dev/null
+++ b/doc/apps/pipeline.rst
@@ -0,0 +1,37 @@
+.. _pipeline_command:
+
+********************************************************************************
+pipeline
+********************************************************************************
+
+The ``pipeline`` command is used to execute :ref:`pipeline` JSON. See
+:ref:`reading` or :ref:`pipeline` for more information.
+
+::
+
+    $ pdal pipeline <input>
+
+::
+
+    --input [-i] arg  Non-positional argument to specify input file name.
+    --pipeline-serialization arg
+                      Write input pipeline along with all metadata and created by the
+                      pipeline to the specified file.
+    --validate        Validate the pipeline (including serialization), but do not execute
+                      writing of points
+
+.. note::
+
+    The ``pipeline`` command can accept option substitutions, but they
+    do not replace existing options that are specified in the input JSON
+    pipeline.  For example, to set the output and input LAS files for a
+    pipeline that does a translation, construct JSON that does not contain
+    ``filename`` for reader and writer and issue the command with the
+    following arguments:
+
+    ::
+
+        $ pdal pipeline translate.json --writers.las.filename=output.laz \
+            --readers.las.filename=input.las
+
+
diff --git a/doc/apps/random.rst b/doc/apps/random.rst
new file mode 100644
index 0000000..81e2fcf
--- /dev/null
+++ b/doc/apps/random.rst
@@ -0,0 +1,34 @@
+.. _random_command:
+
+********************************************************************************
+random
+********************************************************************************
+
+The ``random`` command is used to create a random point cloud. It uses
+:ref:`readers.faux` to create a point cloud containing ``count`` points
+drawn randomly from either a uniform or normal distribution. For the uniform
+distribution, the bounds can be specified (they default to a unit cube). For
+the normal distribution, the mean and standard deviation can both be set for
+each of the x, y, and z dimensions.
+
+::
+
+    $ pdal random <output>
+
+::
+
+    --output [-o] arg   Non-positional argument to specify output file name.
+    --compress [-z]     Compress output data (if supported by output format)
+    --count arg         Number of points in created point cloud [0].
+    --bounds arg        Extent (in XYZ to clip output to):
+                        --bounds "([xmin,xmax],[ymin,ymax],[zmin,zmax])"
+    --mean arg          List of means (for --distribution normal)
+                        --mean 0.0,0.0,0.0
+                        --mean "0.0 0.0 0.0"
+    --stdev arg         List of standard deviations (for --distribution normal)
+                        --stdev 0.0,0.0,0.0
+                        --stdev "0.0 0.0 0.0"
+    --distribution arg  Distribution type (uniform or normal) [uniform]
+
+
+
diff --git a/doc/apps/split.rst b/doc/apps/split.rst
new file mode 100644
index 0000000..5e194b3
--- /dev/null
+++ b/doc/apps/split.rst
@@ -0,0 +1,44 @@
+.. _split_command:
+
+********************************************************************************
+split
+********************************************************************************
+
+The ``split`` command will create multiple output files from a single input
+file.  The command takes an input file name and an output filename (used as a
+template) or output directory specification.
+
+::
+
+    $ pdal split <input> <output>
+
+::
+
+    --input [-i] arg   Non-positional option for specifying input file name
+    --output [-o] arg  Non-positional option for specifying output file/directory name
+    --length arg       Edge length for splitter cells.  See :ref:`filters.splitter`.
+    --capacity arg     Point capacity for chipper cells.  See :ref:`filters.chipper`.
+
+If neither the ``--length`` nor ``--capacity`` arguments are specified, an
+implcit argument of capacity with a value of 100000 is added.
+
+The output argument is a template.  If the output argument is, for example,
+``file.ext``, the output files created are ``file_#.ext`` where # is a number
+starting at one and incrementing for each file created.
+
+If the output argument ends in a path separator, it is assumed to be a
+directory and the input argument is appended to create the output template.
+The ``split`` command never creates directories.  Directories must pre-exist.
+
+Example 1:
+--------------------------------------------------------------------------------
+
+::
+
+    $ pdal split --capacity 100000 infile.laz outfile.bpf
+
+This command takes the points from the input file ``infile.laz`` and creates
+output files ``outfile_1.bpf``, ``outfile_2.bpf``, ... where each output file
+contains no more than 100000 points.
+
+
diff --git a/doc/apps/tindex.rst b/doc/apps/tindex.rst
new file mode 100644
index 0000000..9a5f557
--- /dev/null
+++ b/doc/apps/tindex.rst
@@ -0,0 +1,104 @@
+.. _tindex_command:
+
+********************************************************************************
+tindex
+********************************************************************************
+
+The ``tindex`` command is used to create a `GDAL`_-style tile index for
+PDAL-readable point cloud types (see `gdaltindex`_).
+
+The ``tindex`` command has two modes.  The first mode creates a spatial index
+file for a set of point cloud files.  The second mode creates a point cloud
+file that is the result of merging the points from files referred to in a
+spatial index file that meet some criteria (usually a geographic region filter).
+
+tindex Creation Mode
+--------------------------------------------------------------------------------
+
+::
+
+    $ pdal tindex <tindex> <filespec>
+
+This command will index the files referred to by ``filespec`` and place the
+result in ``tindex``.  The ``tindex`` is a vector file or database that
+will be created by ``pdal`` as necessary to store the file index.
+The type of the index
+file can be specified by specifying the OGR code for the format using the
+``--ogrdriver`` option.  If no driver is specified, the format defaults to "ESRI
+Shapefile".  Any filetype that can be handled by
+`OGR <http://www.gdal.org/ogr_formats.html>`_ is acceptable.
+
+In vector file-speak, each file specified by ``filespec`` is stored as a
+feature in a layer in the index file. The ``filespec`` is a `glob pattern
+<http://man7.org/linux/man-pages/man7/glob.7.html>`_.  and normally needs to be
+quoted to prevent shell expansion of wildcard characters.
+
+::
+
+    --tindex                   Non-positional option for specifying the index file name.
+    --filespec                 Non-positional option for specifying pattern of files to
+                               be indexed.
+    --lyr_name                 Name of layer in which to store the features. Defaults to
+                               the base name of the first file indexed.
+    --tindex_name              Name of the field in the feature in which to store the
+                               indexed file name. ["location"]
+    --ogrdriver                OGR driver name. ["ESRI Shapefile"]
+    --t_srs                    Spatial reference system in which to store index vector
+                               data. ["EPSG:4326"]
+    --a_srs                    Spatial reference assumed to be the reference for the
+                               source data.  If the source data includes spatial reference
+                               information, this value is IGNORED. ["EPSG:4326"]
+    --write_absolute_path arg  Write absolute rather than relative file paths [false]
+
+tindex Merge Mode
+--------------------------------------------------------------------------------
+
+::
+
+    $ pdal tindex --merge <tindex> <filespec>
+
+This command will read the existing index file ``tindex`` and merge the
+points in the indexed files that pass any filter that might be specified,
+writing the output to the point cloud file specified in ``filespec``.
+The type of the output file is determined automatically from the filename
+extension.
+
+::
+
+    --tindex    Non-positional option for specifying the index filename.
+    --filespec  Non-positional option for specifying the merge output filename.
+    --polygon   Well-known text representation of geometric filter.  Only
+                points inside the object will be written to the output file.
+    --bounds    Bounding box for clipping points.  Only points inside the box
+                will be written to the output file.
+                --bounds "([xmin,xmax],[ymin,ymax],[zmin,zmax])"
+    --t_srs     Spatial reference system in which the output data should be
+                represented. ["EPSG:4326"]
+
+Example 1:
+--------------------------------------------------------------------------------
+
+Find all LAS files via ``find``, send that file list via STDIN to
+``pdal tindex``, and write a SQLite tile index file with a layer named ``pdal``:
+
+::
+
+    $ find las/ -iname "*.las" | pdal tindex index.sqlite -f "SQLite" \
+        --stdin --lyr_name pdal
+
+Example 2:
+--------------------------------------------------------------------------------
+
+Glob a list of LAS files, output the SRS for the index entries to EPSG:4326, and
+write out an `SQLite`_ file.
+
+::
+
+    $ pdal tindex index.sqlite "*.las" -f "SQLite" --lyr_name "pdal" \
+        --t_srs "EPSG:4326"
+
+
+.. _`SQLite`: http://www.sqlite.org
+.. _`gdaltindex`: http://www.gdal.org/gdaltindex.html
+.. _`GDAL`: http://www.gdal.org
+
diff --git a/doc/apps/translate.rst b/doc/apps/translate.rst
new file mode 100644
index 0000000..de1fe05
--- /dev/null
+++ b/doc/apps/translate.rst
@@ -0,0 +1,76 @@
+.. _translate_command:
+
+********************************************************************************
+translate
+********************************************************************************
+
+The ``translate`` command can be used for simple conversion of files based on
+their file extensions. It can also be used for constructing pipelines directly
+from the command-line.
+
+::
+
+    $ pdal translate <input> <output>
+
+::
+
+    -i [ --input ] arg    input file name
+    -o [ --output ] arg   output file name
+    -p [ --pipeline ] arg pipeline output
+    -r [ --reader ] arg   reader type
+    -f [ --filter ] arg   filter type
+    -w [ --writer ] arg   writer type
+
+The ``--input`` and ``--output`` file names are required options.
+
+The ``--pipeline`` file name is optional. If given, the pipeline constructed
+from the command-line arguments will be written to disk for reuse in the
+:ref:`pipeline_command`.
+
+The ``--filter`` flag is optional. It is used to specify the driver used to
+filter the data. ``--filter`` accepts multiple arguments if provided, thus
+constructing a multi-stage filtering operation.
+
+If no ``--reader`` or ``--writer`` type are given, PDAL will attempt to infer
+the correct drivers from the input and output file name extensions respectively.
+
+Example 1:
+--------------------------------------------------------------------------------
+
+The ``translate`` command can be augmented by specifying full-path options at
+the command-line invocation. For example, the following invocation will
+translate ``1.2-with-color.las`` to ``output.laz`` while doing the following:
+
+* Setting the creation day of year to 42
+* Setting the creation year to 2014
+* Setting the LAS point format to 1
+* Cropping the file with the given polygon
+
+::
+
+    $ pdal translate \
+        --writers.las.creation_doy="42" \
+        --writers.las.creation_year="2014" \
+        --writers.las.format="1" \
+        --filters.crop.polygon="POLYGON ((636889.412951239268295 851528.512293258565478 422.7001953125,636899.14233423944097 851475.000686757150106 422.4697265625,636899.14233423944097 851475.000686757150106 422.4697265625,636928.33048324030824 851494.459452757611871 422.5400390625,636928.33048324030824 851494.459452757611871 422.5400390625,636928.33048324030824 851494.459452757611871 422.5400390625,636976.977398241520859 851513.918218758190051 424.150390625,636976.977398241520859 851513 [...]
+        ./test/data/1.2-with-color.las \
+        output.laz \
+        filters.crop
+
+Example 2:
+--------------------------------------------------------------------------------
+
+Given these tools, we can now construct a custom pipeline on-the-fly. The
+example below uses a simple LAS reader and writer, but stages a PCL-based
+voxel grid filter, followed by the PCL-based ground filter. We can even set
+stage-specific parameters as shown.
+
+::
+
+    $ pdal translate input.las output.las \
+        --filter filters.pclblock filters.ground \
+        --filters.pclblock.json="{\"pipeline\":{\"filters\":[{\"name\":\"VoxelGrid\"}]}}" \
+        --filters.ground.approximate=true --filters.ground.extract=true
+
+
+
diff --git a/doc/apps/view.rst b/doc/apps/view.rst
new file mode 100644
index 0000000..fb43b31
--- /dev/null
+++ b/doc/apps/view.rst
@@ -0,0 +1,58 @@
+.. _view_command:
+
+********************************************************************************
+view
+********************************************************************************
+
+The ``view`` command can be used to visualize a point cloud using the
+PCLVisualizer. The command takes a single argument, the input file name.
+
+.. note::
+
+    The ``view`` command is only available when PDAL is linked with PCL.
+
+::
+
+    $ pdal view <input>
+
+Once the data has been loaded into the viewer, press h or H to display the
+help.
+
+::
+
+    | Help:
+    -------
+              p, P   : switch to a point-based representation
+              w, W   : switch to a wireframe-based representation (where available)
+              s, S   : switch to a surface-based representation (where available)
+
+              j, J   : take a .PNG snapshot of the current window view
+              c, C   : display current camera/window parameters
+              f, F   : fly to point mode
+
+              e, E   : exit the interactor
+              q, Q   : stop and call VTK's TerminateApp
+
+               +/-   : increment/decrement overall point size
+         +/- [+ ALT] : zoom in/out
+
+              g, G   : display scale grid (on/off)
+              u, U   : display lookup table (on/off)
+
+        o, O         : switch between perspective/parallel projection (default = perspective)
+        r, R [+ ALT] : reset camera [to viewpoint = {0, 0, 0} -> center_{x, y, z}]
+        CTRL + s, S  : save camera parameters
+        CTRL + r, R  : restore camera parameters
+
+        ALT + s, S   : turn stereo mode on/off
+        ALT + f, F   : switch between maximized window mode and original size
+
+              l, L           : list all available geometric and color handlers for the current actor map
+        ALT + 0..9 [+ CTRL]  : switch between different geometric handlers (where available)
+              0..9 [+ CTRL]  : switch between different color handlers (where available)
+
+        SHIFT + left click   : select a point (start with -use_point_picking)
+
+              x, X   : toggle rubber band selection mode for left mouse button
+
+
diff --git a/doc/community.rst b/doc/community.rst
index 50eeede..7e87a2b 100644
--- a/doc/community.rst
+++ b/doc/community.rst
@@ -4,10 +4,6 @@
 Community
 ******************************************************************************
 
-:Author: Howard Butler
-:Contact: howard at hobu.co
-:Date: 10/27/2015
-
 PDAL's community interacts through `Mailing List`_, `GitHub`_, and `IRC`_.
 Please feel welcome to ask questions and participate in all of the venues.
 The `Mailing List`_ communication channel is for general questions, development
diff --git a/doc/compilation/index.rst b/doc/compilation/index.rst
deleted file mode 100644
index cb1c627..0000000
--- a/doc/compilation/index.rst
+++ /dev/null
@@ -1,29 +0,0 @@
-.. _building:
-
-******************************************************************************
-Installation
-******************************************************************************
-
-This section describes how to build and install PDAL under Windows, Linux, and Mac.
-PDAL's numerous :ref:`dependencies` can make it a challenge to build a fully-featured
-build.
-
-.. seealso::
-    :ref:`download` contains links to installable binaries for Windows, OSX, and
-    RHEL Linux systems.
-
-.. seealso::
-    :ref:`docker` describes how to use `Docker <http://docker.io>`__  to
-    get going with PDAL very quickly. This method is likely the fastest way
-    to start using PDAL, especially if you just wish to use the :ref:`apps`.
-
-Contents:
-
-.. toctree::
-   :maxdepth: 1
-
-   unix
-   windows
-   dependencies
-   python
-
diff --git a/doc/compilation/windows.rst b/doc/compilation/windows.rst
deleted file mode 100644
index 13df4e0..0000000
--- a/doc/compilation/windows.rst
+++ /dev/null
@@ -1,227 +0,0 @@
-.. _building_windows:
-
-==============================================================================
-Building Under Windows
-==============================================================================
-
-:Author: Michael Rosen
-:Contact: unknown at lizardtech dot com
-:Date: 3/19/2012
-
-.. note::
-
-    `OSGeo4W`_ contains a pre-built up-to-date 64 bit Windows binary. It
-    is fully-featured, and if you do not need anything custom, it is likely
-    the fastest way to get going.
-
-.. seealso::
-
-    :ref:`docker` describes a way to get a PDAL build and all of
-    its dependencies. If you just want to apply PDAL commandline
-    operations to data, this mechanism is likely to be much faster than
-    compiling your own.
-
-.. _`OSGeo4W`: https://trac.osgeo.org/osgeo4w/
-
-Most Users
-------------------------------------------------------------------------------
-
-If you just want to build PDAL so you can
-
-a. use the utilities or
-b. investigate PDAL integration
-c. test / fix / extend the library and
-
-you are OK with doing all this with a 32 bit compiler, check the
-`Prerequisites`_ and follow the `Basic Build Steps`_ below.
-
-
-Advanced Users
-------------------------------------------------------------------------------
-
-If your needs go beyond this, then check the `Prerequisites`_ and use the
-`Advanced Build Steps`_ below as a guide to configuring the library.
-
-
-Prerequisites
-------------------------------------------------------------------------------
-
-- Ensure you have git. We used version 1.7.3.1.msysgit.0 from
-  http://code.google.com/p/msysgit
-- Ensure you have a Visual Studio 2010 environment setup. We used VStudio 2010
-  Premium.
-- Ensure you have CMake_. We used version 2.8.4 from http://www.cmake.org
-
-The steps below assume that these tools are available from your command line.
-For Git and CMake, that's just adding them to your %PATH%. For VStudio, you
-need to run `vsvars32.bat` ("Microsoft Visual Studio
-10.0\\Common7\\Tools\\vsvars32.bat")
-
-.. _CMake: http://www.cmake.org
-
-Basic Build Steps
-------------------------------------------------------------------------------
-
-Most users can use this procedure to build PDAL on Windows. We satisfy all
-dependencies using OSGeo4W.
-
-0. If you plan to use LAZ support (compressed LAS), get the LASzip source code
-and build it (http://www.laszip.org). Add the directory with laszip.dll to
-your %PATH% (or copy the laszip.* files into the bin directory of PDAL
-itself). Make sure it appears in your PATH before OSGeo4W (as per step 4
-below).
-
-While LASzip is included in the OSGeo4W distribution below (see step 1), the
-version there is compiled with Visual Studio 2008 and we have some suspicion
-that it is incompatible with the version of PDAL you are about to build with
-Visual Studio 2010. Building the LASzip library should be no more complicated
-than::
-
-    set G="Visual Studio 10"
-    set BUILD_TYPE=Debug
-    cmake -G %G% ^
-        -DCMAKE_BUILD_TYPE=%BUILD_TYPE% ^
-        -DCMAKE_VERBOSE_MAKEFILE=OFF ^
-        .
-
-1. Install OSGeo4W (http://download.osgeo.org/osgeo4w/osgeo4w-setup.exe) using
-the "Advanced Install" option and include the following: gdal-dev, laszip,
-libxml2, iconv.
-
-   .. figure::  media/OSGeo4WInstallAdvanced.png
-
-  Install from Internet
-   .. figure::  media/OSGeo4WInstallFromInternet.png
-  Leave the "Root Directory" for the installation unchanged.
-   .. figure::  media/OSGeo4WInstallRootDirectory.png
-  You can leave the "Select Local Package Directory" and "Internet Connection Type" at the defaults. Under the "libs" tree, select "gdal-dev" for installation. (You should probably use the latest version, e.g. 1.8pre-6.)
-   .. figure::  media/OSGeo4WInstallGDALDev.png
-  Select "laszip" (this is not required currently -- see step 0 above).
-   .. figure::  media/OSGeo4WInstallLASZip.png
-  Select "libxml2".
-   .. figure::  media/OSGeo4WInstallLibXML2.png
-  Select "iconv".
-   .. figure::  media/OSGeo4WInstallIconv.png
-  Select "oci".
-   .. figure::  media/OSGeo4WInstallOCI.png
-
-  There are some other required dependencies (e.g. libtiff, libgeotiff) but
-  they are installed by default.
-
-  Select Next to continue on to install the packages.
-
-2.  Get the source code for PDAL:
-
-  ::
-
-     c:\dev> git clone https://github.com/PDAL/PDAL.git
-
-3. From the root of your PDAL tree, run "./cmake/examples/mpg-config.bat". This will create the
-   VStudio solution file and .vcxproj files.
-
-  ::
-
-     c:\dev\PDAL> ./cmake/examples/mpg-config.bat
-
-  .. note::
-
-      The config.bat file is set up to build PDAL in the "officially supported"
-      configuration -- that is, with Oracle, and GDAL, and LASzip, and such. If you
-      followed the previous steps, you should be fine to use this default
-      configuration. You may modify this file if you need to (such as to use a local
-      copy of GDAL or to use NMake instead of Visual Studio); see the `Advanced Build Steps`_
-      below for more instructions.
-
-4.  Verify your system environment variables are set properly:
-
-  - PATH should include %OSGeo4W%\bin
-  - GDAL_DATA should be set to %OSGeo4W%\share\epsg_csv
-  - PROJ_LIB should be set to %OSGeo4W%\share\proj
-
-5.  Start Visual Studio and open PDAL.sln.  Build the solution (F6).
-
-6. Set pdal_test as the startup project and run it (F5). You should see a
-   console window startup, print something like "Running 158 test cases..."
-   (exact number may vary), and then after a short period print something like
-   "\*\*\* No errors detected". If you do get errors, that means either something is
-   broken on the version of PDAL you checked out OR something is wrong with your
-   installation.
-
-7. PYTHON/PLANG NOTE: If you build WITH_PLANG=ON in Debug mode, the system will
-   try to link against "python27d.lib". You need to change .../Python27/include/pyconfig.h
-   as follows:
-
-    - change the line #pragma comment(lib,"python27d.lib") to refer to python27.lib instead
-	- comment out the line "#define Py_DEBUG"
-
-
-
-Advanced Build Steps
-------------------------------------------------------------------------------
-
-Advanced users can use this procedure to customize their PDAL build on
-Windows. This enables the use of custom-built external libraries to satisify
-situations (including x64 support) where using OSGeo4W is inadequate.
-
-1. Acquire and stage the required dependent libraries. PDAL depends on the
-   following external libraries. You'll need to get them and build them (or
-   perhaps, download prebuilt binary packages).
-
-  - GDAL (get version 1.6 or later from http://gdal.org) [ optional ]
-  - LASZip (get version 1.0.1 or later from http://laszip.org) [ optional ]
-  - libxml2 (http://libxml2.org) [ optional ]
-  - iconv (http://www.gnu.org/software/libiconv/) [ optional (required by libxml2) ]
-  - oci (optional, http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html)
-  - libtiff (optional)
-  - libgeotiff (optional)
-
-  One option for all dependencies is OSGeo4W (free, win32
-  installer, no x64 -- see "Basic Build Steps"_ above).
-
-
-2. Having staged the above libs, you need to specify where they are by editing
-   the appropriate lines in the "config.bat" file. Each dependency has a short
-   section of the config.bat file. Check these are specified correctly. For
-   example
-
-  ::
-
-     :: LASZIP
-     set LASZIP_ENABLED=ON
-     set LASZIP_LIBRARY=%DEV_DIR%\laszip\bin\Debug\laszip.lib
-     set LASZIP_INCLUDE_DIR=%DEV_DIR%\laszip\include
-
-3. While you're still in config.bat, configure the "Generator" for CMake.
-
-  ::
-
-     :: Pick your Generator.  NMake will pick up architecture (x32, x64) from your environment
-     rem set GENERATOR="NMake Makefiles"
-     rem set GENERATOR="Visual Studio 10 Win64"
-     set GENERATOR="Visual Studio 10"
-
-     set BUILD_TYPE=Release
-     rem set BUILD_TYPE=Debug
-
-4. Run "config.bat" in the PDAL directory. This will create the VStudio solution file and .vcxproj files.
-
-  ::
-
-     c:\dev\PDAL> config.bat
-
-5. Start Visual Studio and open PDAL.sln (or if you picked "NMake Makefiles", run NMake).
-
-Testing
-------------------------------------------------------------------------------
-
-Set pdal_test as the default/startup application in Visual Studio
-Run with debug (F5)
-
-Troubleshooting
-------------------------------------------------------------------------------
-
-* Missing liblas.dll - double check that ``C:\OSGeo4W\bin`` is on your system PATH variable
-* libtiff.dll errors - double check that other versions of the lib are not on the path. For example, ArcGIS installs a version of libtiff that is not compatible.
-* "ERROR 4: Unable to open EPSG support file gcs.csv" or GDAL_DATA variable errors - Set GDAL_DATA system variable to ``C:\OSGeo4W\share\gdal``
-* PROJ errors - Set PROJ_LIB system variable to ``C:\OSGeo4W\share\proj``
-
diff --git a/doc/conf.py b/doc/conf.py
index 0351643..5b8d6b2 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -12,8 +12,14 @@
 # serve to show the default.
 
 import sys, os, re
+import time
+import datetime
+if os.environ.get('SOURCE_DATE_EPOCH'):
+    year  = datetime.datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.gmtime()))).year
+    today = datetime.datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.gmtime()))).strftime('%B %d, %Y')
+else:
+    year  = datetime.datetime.now().year
 
-import sphinx_bootstrap_theme
 
 # If extensions (or modules to document with autodoc) are in another directory,
 # add these directories to sys.path here. If the directory is relative to the
@@ -27,9 +33,10 @@ import sphinx_bootstrap_theme
 
 # Add any Sphinx extension module names here, as strings. They can be extensions
 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['breathe', 'sphinx.ext.autodoc', 'rst2pdf.pdfbuilder', 'sphinx.ext.pngmath','rst2pdf.pdfbuilder']
+extensions = ['breathe', 'sphinx.ext.autodoc',
+              'sphinx.ext.mathjax', 'sphinx.ext.intersphinx',
+              'sphinxcontrib.bibtex']
 
-# disqus_shortname = 'pdal'
 
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
@@ -45,9 +52,8 @@ master_doc = 'index'
 
 # General information about the project.
 project = u'PDAL'
+copyright = u'%d' % year
 
-import datetime
-copyright = str(datetime.datetime.now().year)
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
@@ -92,7 +98,7 @@ version = release
 
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
-exclude_patterns = []
+exclude_patterns = ['workshop/slides']
 
 # The reST default role (used for this markup: `text`) to use for all documents.
 #default_role = None
@@ -119,89 +125,16 @@ pygments_style = 'sphinx'
 
 # The theme to use for HTML and HTML Help pages.  See the documentation for
 # a list of builtin themes.
-html_theme = 'bootstrap'
-# html_style = "sphinx.css"
+html_theme = 'rtd_theme'
 
 # Theme options are theme-specific and customize the look and feel of a theme
 # further.  For a list of options available for each theme, see the
 # documentation.
-html_theme_options = {
-#     'analytics_code': 'UA-00000000-1',
-#     'github_user': 'PDAL',
-#     'github_repo': 'PDAL',
-# #     'twitter_username': 'pointcloudpipe',
-#     'home_url': 'http://pdal.io',
-#     'disqus_shortname': 'pdal',
-}
-
-html_theme_options = {
-    # Navigation bar title. (Default: ``project`` value)
-    'navbar_title': "",
-
-    # Tab name for entire site. (Default: "Site")
-    'navbar_site_name': "Docs",
-
-    # A list of tuples containing pages or urls to link to.
-    # Valid tuples should be in the following forms:
-    #    (name, page)                 # a link to a page
-    #    (name, "/aa/bb", 1)          # a link to an arbitrary relative url
-    #    (name, "http://example.com", True) # arbitrary absolute url
-    # Note the "1" or "True" value above as the third argument to indicate
-    # an arbitrary url.
-    'navbar_links': [
-        ("Download", "download"),
-        ("GitHub", "https://github.com/PDAL/PDAL", True),
-    ],
-
-    # Render the next and previous page links in navbar. (Default: true)
-    'navbar_sidebarrel': True,
-
-    # Render the current pages TOC in the navbar. (Default: true)
-    'navbar_pagenav': True,
-
-    # Tab name for the current pages TOC. (Default: "Page")
-    'navbar_pagenav_name': "Here",
-
-    # Global TOC depth for "site" navbar tab. (Default: 1)
-    # Switching to -1 shows all levels.
-    'globaltoc_depth': 2,
-
-    # Include hidden TOCs in Site navbar?
-    #
-    # Note: If this is "false", you cannot have mixed ``:hidden:`` and
-    # non-hidden ``toctree`` directives in the same page, or else the build
-    # will break.
-    #
-    # Values: "true" (default) or "false"
-    'globaltoc_includehidden': "true",
-
-    # HTML navbar class (Default: "navbar") to attach to <div> element.
-    # For black navbar, do "navbar navbar-inverse"
-    'navbar_class': "navbar",
-
-    # Fix navigation bar to top of page?
-    # Values: "true" (default) or "false"
-    'navbar_fixed_top': "true",
-
-    # Location of link to source.
-    # Options are "nav" (default), "footer" or anything else to exclude.
-    'source_link_position': "nav",
-
-    # Bootswatch (http://bootswatch.com/) theme.
-    #
-    # Options are nothing (default) or the name of a valid theme
-    # such as "amelia" or "cosmo".
-    'bootswatch_theme': "cerulean",
-
-    # Choose Bootstrap version.
-    # Values: "3" (default) or "2" (in quotes)
-    'bootstrap_version': "3",
-}
 
 # Add any paths that contain custom themes here, relative to this directory.
-html_theme_path = ['./_themes']
 
-html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
+#html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
+html_theme_path = ['.']
 # The name for this set of Sphinx documents.  If None, it defaults to
 # "<project> v<release> documentation".
 html_title = "pdal.io"
@@ -273,36 +206,63 @@ htmlhelp_basename = 'PDALdoc'
 
 
 # -- Options for LaTeX output --------------------------------------------------
-
-# The paper size ('letter' or 'a4').
-#latex_paper_size = 'letter'
+preamble = r'''
+  \makeatother
+  %\color {blue}
+  %\normalcolor {dark blue}
+  \definecolor{VerbatimColor}{RGB}{239, 239, 239}
+  \definecolor{VerbatimBorderColor}{RGB}{148, 148, 148}
+  \usepackage{geometry}
+   \geometry{
+   letterpaper,
+   left={30mm},
+  }
+  \raggedright
+'''
+
+
+
+latex_elements = {
+# The paper size ('letterpaper' or 'a4paper').
+'papersize': 'letterpaper',
+# 'classoptions': ',oneside',
+# 'babel': '\\usepackage[english]{babel}',
 
 # The font size ('10pt', '11pt' or '12pt').
-#latex_font_size = '10pt'
+'pointsize': '12pt',
+
+# Additional stuff for the LaTeX preamble.
+#'preamble': '\setcounter{tocdepth}{0} ',
+'preamble': preamble,
+
+# Latex figure (float) alignment
+'figure_align': 'htbp',
+'releasename':'',
+'tocdepth':4,
+}
 
 # Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title, author, documentclass [howto/manual]).
-# latex_documents = [
-#   ('index', 'PDAL.tex', u'PDAL Documentation',
-#    u'Howard Butler', 'manual'),
-# ]
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+        (master_doc, '%s.tex'% project, u'PDAL: Point cloud Data Abstraction Library',
+         r'Howard Butler\\Brad Chambers\\Michael Gerlek\\PDAL Contributors', 'manual'),
+]
 
 # The name of an image file (relative to this directory) to place at the top of
 # the title page.
-#latex_logo = None
+latex_logo = './_static/logo/pdal_logo_only.png'
 
 # For "manual" documents, if this is true, then toplevel headings are parts,
 # not chapters.
-#latex_use_parts = False
+latex_use_parts = False
 
 # If true, show page references after internal links.
-#latex_show_pagerefs = False
+latex_show_pagerefs = True
 
 # If true, show URL addresses after external links.
-#latex_show_urls = False
+latex_show_urls = True
 
-# Additional stuff for the LaTeX preamble.
-#latex_preamble = ''
 
 # Documents to append as an appendix to all manuals.
 #latex_appendices = []
@@ -311,55 +271,6 @@ htmlhelp_basename = 'PDALdoc'
 #latex_domain_indices = True
 
 
-# -- Options for manual page output --------------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
-    ('index', 'pdal', u'PDAL Documentation',
-     [u'Howard Butler'], 1)
-]
-
-
-# -- Options for Epub output ---------------------------------------------------
-
-# Bibliographic Dublin Core info.
-epub_title = u'PDAL'
-epub_author = u'Howard Butler'
-epub_publisher = u'Howard Butler'
-epub_copyright = u'2011, Howard Butler'
-
-# The language of the text. It defaults to the language option
-# or en if the language is not set.
-#epub_language = ''
-
-# The scheme of the identifier. Typical schemes are ISBN or URL.
-#epub_scheme = ''
-
-# The unique identifier of the text. This can be a ISBN number
-# or the project homepage.
-#epub_identifier = ''
-
-# A unique identification for the text.
-#epub_uid = ''
-
-# HTML files that should be inserted before the pages created by sphinx.
-# The format is a list of tuples containing the path and title.
-#epub_pre_files = []
-
-# HTML files shat should be inserted after the pages created by sphinx.
-# The format is a list of tuples containing the path and title.
-#epub_post_files = []
-
-# A list of files that should not be packed into the epub file.
-#epub_exclude_files = []
-
-# The depth of the table of contents in toc.ncx.
-#epub_tocdepth = 3
-
-# Allow duplicate toc entries.
-#epub_tocdup = True
-
 
 breathe_projects = {
     'api':'doxygen/xml'
@@ -377,16 +288,3 @@ breathe_diagram = {
     'no-link' : False
 }
 
-pdf_documents = [
-    ('index', u'PDAL-'+release, u'PDAL Documentation', u'Howard Butler\\Michael Gerlek\\The PDAL Development Team'),
-]
-pdf_stylesheets = ['pdal']
-pdf_break_level = 3
-pdf_use_coverpage = True
-pdf_breakside = 'any'
-pdf_toc_depth = 3
-pdf_default_dpi = 200
-pdf_style_path = ['.' ]
-pdf_fit_mode="shrink"
-pdf_use_numbered_links = True
-pdf_fit_background_mode="scale"
diff --git a/doc/contributors.rst b/doc/contributors.rst
deleted file mode 100644
index bcbcb01..0000000
--- a/doc/contributors.rst
+++ /dev/null
@@ -1,86 +0,0 @@
-.. _contributors:
-
-******************************************************************************
-Contributors
-******************************************************************************
-
-:Author: Howard Butler
-:Contact: howard at hobu.co
-:Date: 12/29/2015
-
-Numerous organizations, companies, and individuals have contributed time,
-money, and code to build PDAL up into a highly capable software package.
-Without these contributions, PDAL would not progress as quickly, and its
-quality wouldn't be as high. The development team is proud of the software, and
-it collectively represents years of experiences doing point cloud data
-management. We hope you'll find it useful too.
-
-This page is to recognize these contributors and their contributions. Thanks.
-
-Engineering Contributors
---------------------------------------------------------------------------------
-
-.. image:: https://hobu.co/theme/images/hobulogo.png
-    :target: http://hobu.co
-
-`Hobu`_ is the primary company behind the design, testing, development, and
-distribution of PDAL. Two Hobu team members primarily interact with PDAL.
-`Howard Butler`_ founded the project, and he provides project leadership and
-software development.  `Andrew Bell`_ has contributed design, refactoring, and
-new feature development of PDAL over the past couple of years.
-
-.. _`Howard Butler`: https://github.com/hobu
-.. _`Andrew Bell`: https://github.com/abellgithub
-.. _`Hobu`: http://hobu.co
-
-
-.. image:: http://radiantblue.com/wp-content/uploads/2015/12/logo1.png
-    :target: http://radiantblue.com
-
-`Michael Gerlek`_ from `RadiantBlue`_ helped bootstrap PDAL by providing its
-first design, basic primitive objects, and first :ref:`stage <stage_index>`
-implementations.
-
-.. _`Michael Gerlek`: http://github.com/mpgerlek
-
-
-`Bradley Chambers`_ from `RadiantBlue`_ has contributed numerous features and
-capabilities to the PDAL project, including :ref:`Poisson sampling
-<dart-throwing-tutorial>`, :ref:`Progressive Morphological Filters <pcl_ground>`, and
-:ref:`PCL Visualizer <writers.pclvisualizer>`. He is also a prolific
-:ref:`tutorial` writer, and he maintains the :ref:`Windows builds <download>`
-for the project.
-
-.. _`Bradley Chambers`: https://github.com/chambbj
-.. _`RadiantBlue`: http://radiantblue.com/
-
-
-Funding Contributors
---------------------------------------------------------------------------------
-
-.. image:: ./rsgis_logo.png
-    :target: http://www.erdc.usace.army.mil/Locations/CRREL.aspx
-
-The US Army Corps of Engineers Remote Sensing / GIS Center of Expertise at
-`CRREL`_ sponsors development of PDAL for its use in point cloud data
-management systems. `CRREL`_'s `GRiD`_ project manages LiDAR and point cloud
-data for a multitude of U.S. Army Corps missions. Find out more about GRiD in
-this `LiDAR Magazine article`_.
-
-.. image:: ./nsf1.gif
-    :target: http://www.nsf.gov
-
-.. image:: ./uoh.png
-    :target: http://www.uh.edu
-
-`NSF <http://www.nsf.gov>`_, in collaboration with `Dr. Craig Glennie
-<http://www.cive.uh.edu/faculty/glennie>`_ at the `University of Houston
-<http://www.uh.edu>`_ supports PDAL with funding support to develop and enhance
-statistical methods, transformation operations, tutorial and example
-development, and `PCL <http://pointclouds.org>`_ integration.
-
-
-.. _`GRiD`: http://lidar.io/about.html
-.. _`LiDAR Magazine article`: http://www.lidarmag.com/content/view/11343/198/
-.. _`CRREL`: http://www.erdc.usace.army.mil/Locations/CRREL.aspx
-
diff --git a/doc/compilation/dependencies.rst b/doc/development/compilation/dependencies.rst
similarity index 100%
rename from doc/compilation/dependencies.rst
rename to doc/development/compilation/dependencies.rst
diff --git a/doc/development/compilation/index.rst b/doc/development/compilation/index.rst
new file mode 100644
index 0000000..185b50e
--- /dev/null
+++ b/doc/development/compilation/index.rst
@@ -0,0 +1,29 @@
+.. _building:
+
+******************************************************************************
+Compilation
+******************************************************************************
+
+This section describes how to build and install PDAL under Windows, Linux, and Mac.
+PDAL's numerous :ref:`dependencies` can make it a challenge to build a fully-featured
+build.
+
+.. seealso::
+    :ref:`download` contains links to installable binaries for Windows, OSX, and
+    RHEL Linux systems.
+
+.. seealso::
+    :ref:`docker` describes how to use `Docker <http://docker.io>`__  to
+    get going with PDAL very quickly. This method is likely the fastest way
+    to start using PDAL, especially if you just wish to use the :ref:`apps`.
+
+Contents:
+
+.. toctree::
+   :maxdepth: 1
+
+   unix
+   windows
+   dependencies
+   python
+
diff --git a/doc/compilation/media/OSGeo4WInstallAdvanced.png b/doc/development/compilation/media/OSGeo4WInstallAdvanced.png
similarity index 100%
rename from doc/compilation/media/OSGeo4WInstallAdvanced.png
rename to doc/development/compilation/media/OSGeo4WInstallAdvanced.png
diff --git a/doc/compilation/media/OSGeo4WInstallFromInternet.png b/doc/development/compilation/media/OSGeo4WInstallFromInternet.png
similarity index 100%
rename from doc/compilation/media/OSGeo4WInstallFromInternet.png
rename to doc/development/compilation/media/OSGeo4WInstallFromInternet.png
diff --git a/doc/compilation/media/OSGeo4WInstallGDALDev.png b/doc/development/compilation/media/OSGeo4WInstallGDALDev.png
similarity index 100%
rename from doc/compilation/media/OSGeo4WInstallGDALDev.png
rename to doc/development/compilation/media/OSGeo4WInstallGDALDev.png
diff --git a/doc/compilation/media/OSGeo4WInstallIConv.png b/doc/development/compilation/media/OSGeo4WInstallIConv.png
similarity index 100%
rename from doc/compilation/media/OSGeo4WInstallIConv.png
rename to doc/development/compilation/media/OSGeo4WInstallIConv.png
diff --git a/doc/compilation/media/OSGeo4WInstallLASZip.png b/doc/development/compilation/media/OSGeo4WInstallLASZip.png
similarity index 100%
rename from doc/compilation/media/OSGeo4WInstallLASZip.png
rename to doc/development/compilation/media/OSGeo4WInstallLASZip.png
diff --git a/doc/compilation/media/OSGeo4WInstallLibXML2.png b/doc/development/compilation/media/OSGeo4WInstallLibXML2.png
similarity index 100%
rename from doc/compilation/media/OSGeo4WInstallLibXML2.png
rename to doc/development/compilation/media/OSGeo4WInstallLibXML2.png
diff --git a/doc/compilation/media/OSGeo4WInstallOCI.png b/doc/development/compilation/media/OSGeo4WInstallOCI.png
similarity index 100%
rename from doc/compilation/media/OSGeo4WInstallOCI.png
rename to doc/development/compilation/media/OSGeo4WInstallOCI.png
diff --git a/doc/compilation/media/OSGeo4WInstallRootDirectory.png b/doc/development/compilation/media/OSGeo4WInstallRootDirectory.png
similarity index 100%
rename from doc/compilation/media/OSGeo4WInstallRootDirectory.png
rename to doc/development/compilation/media/OSGeo4WInstallRootDirectory.png
diff --git a/doc/compilation/media/ccmake-osx-start.png b/doc/development/compilation/media/ccmake-osx-start.png
similarity index 100%
rename from doc/compilation/media/ccmake-osx-start.png
rename to doc/development/compilation/media/ccmake-osx-start.png
diff --git a/doc/compilation/media/cmake-gui-osx-configured.png b/doc/development/compilation/media/cmake-gui-osx-configured.png
similarity index 100%
rename from doc/compilation/media/cmake-gui-osx-configured.png
rename to doc/development/compilation/media/cmake-gui-osx-configured.png
diff --git a/doc/compilation/media/cmake-gui-osx-start.png b/doc/development/compilation/media/cmake-gui-osx-start.png
similarity index 100%
rename from doc/compilation/media/cmake-gui-osx-start.png
rename to doc/development/compilation/media/cmake-gui-osx-start.png
diff --git a/doc/compilation/media/xcode-lasinfo-arguments.png b/doc/development/compilation/media/xcode-lasinfo-arguments.png
similarity index 100%
rename from doc/compilation/media/xcode-lasinfo-arguments.png
rename to doc/development/compilation/media/xcode-lasinfo-arguments.png
diff --git a/doc/compilation/media/xcode-set-default-executable.png b/doc/development/compilation/media/xcode-set-default-executable.png
similarity index 100%
rename from doc/compilation/media/xcode-set-default-executable.png
rename to doc/development/compilation/media/xcode-set-default-executable.png
diff --git a/doc/compilation/media/xcode-start.png b/doc/development/compilation/media/xcode-start.png
similarity index 100%
rename from doc/compilation/media/xcode-start.png
rename to doc/development/compilation/media/xcode-start.png
diff --git a/doc/compilation/python.rst b/doc/development/compilation/python.rst
similarity index 100%
rename from doc/compilation/python.rst
rename to doc/development/compilation/python.rst
diff --git a/doc/compilation/unix.rst b/doc/development/compilation/unix.rst
similarity index 100%
rename from doc/compilation/unix.rst
rename to doc/development/compilation/unix.rst
diff --git a/doc/development/compilation/windows.rst b/doc/development/compilation/windows.rst
new file mode 100644
index 0000000..aac978e
--- /dev/null
+++ b/doc/development/compilation/windows.rst
@@ -0,0 +1,227 @@
+.. _building_windows:
+
+==============================================================================
+Building Under Windows
+==============================================================================
+
+:Author: Michael Rosen
+:Contact: unknown at lizardtech dot com
+:Date: 3/19/2012
+
+.. note::
+
+    `OSGeo4W`_ contains a pre-built up-to-date 64 bit Windows binary. It
+    is fully-featured, and if you do not need anything custom, it is likely
+    the fastest way to get going.
+
+.. seealso::
+
+    :ref:`docker` describes a way to get a PDAL build and all of
+    its dependencies. If you just want to apply PDAL commandline
+    operations to data, this mechanism is likely to be much faster than
+    compiling your own.
+
+.. _`OSGeo4W`: https://trac.osgeo.org/osgeo4w/
+
+Most Users
+------------------------------------------------------------------------------
+
+If you just want to build PDAL so you can
+
+a. use the utilities or
+b. investigate PDAL integration
+c. test / fix / extend the library and
+
+you are OK with doing all this with a 32 bit compiler, check the
+`Prerequisites`_ and follow the `Basic Build Steps`_ below.
+
+
+Advanced Users
+------------------------------------------------------------------------------
+
+If your needs go beyond this, then check the `Prerequisites`_ and use the
+`Advanced Build Steps`_ below as a guide to configuring the library.
+
+
+Prerequisites
+------------------------------------------------------------------------------
+
+- Ensure you have git. We used version 1.7.3.1.msysgit.0 from
+  http://code.google.com/p/msysgit
+- Ensure you have a Visual Studio 2010 environment setup. We used VStudio 2010
+  Premium.
+- Ensure you have CMake_. We used version 2.8.4 from http://www.cmake.org
+
+The steps below assume that these tools are available from your command line.
+For Git and CMake, that's just adding them to your %PATH%. For VStudio, you
+need to run `vsvars32.bat` ("Microsoft Visual Studio
+10.0\\Common7\\Tools\\vsvars32.bat")
+
+.. _CMake: http://www.cmake.org
+
+Basic Build Steps
+------------------------------------------------------------------------------
+
+Most users can use this procedure to build PDAL on Windows. We satisfy all
+dependencies using OSGeo4W.
+
+0. If you plan to use LAZ support (compressed LAS), get the LASzip source code
+and build it (http://www.laszip.org). Add the directory with laszip.dll to
+your %PATH% (or copy the laszip.* files into the bin directory of PDAL
+itself). Make sure it appears in your PATH before OSGeo4W (as per step 4
+below).
+
+While LASzip is included in the OSGeo4W distribution below (see step 1), the
+version there is compiled with Visual Studio 2008 and we have some suspicion
+that it is incompatible with the version of PDAL you are about to build with
+Visual Studio 2010. Building the LASzip library should be no more complicated
+than::
+
+    set G="Visual Studio 10"
+    set BUILD_TYPE=Debug
+    cmake -G %G% ^
+        -DCMAKE_BUILD_TYPE=%BUILD_TYPE% ^
+        -DCMAKE_VERBOSE_MAKEFILE=OFF ^
+        .
+
+1. Install OSGeo4W (http://download.osgeo.org/osgeo4w/osgeo4w-setup.exe) using
+the "Advanced Install" option and include the following: gdal-dev, laszip,
+libxml2, iconv.
+
+   .. figure::  media/OSGeo4WInstallAdvanced.png
+
+  Install from Internet
+   .. figure::  media/OSGeo4WInstallFromInternet.png
+  Leave the "Root Directory" for the installation unchanged.
+   .. figure::  media/OSGeo4WInstallRootDirectory.png
+  You can leave the "Select Local Package Directory" and "Internet Connection Type" at the defaults. Under the "libs" tree, select "gdal-dev" for installation. (You should probably use the latest version, e.g. 1.8pre-6.)
+   .. figure::  media/OSGeo4WInstallGDALDev.png
+  Select "laszip" (this is not required currently -- see step 0 above).
+   .. figure::  media/OSGeo4WInstallLASZip.png
+  Select "libxml2".
+   .. figure::  media/OSGeo4WInstallLibXML2.png
+  Select "iconv".
+   .. figure::  media/OSGeo4WInstallIConv.png
+  Select "oci".
+   .. figure::  media/OSGeo4WInstallOCI.png
+
+  There are some other required dependencies (e.g. libtiff, libgeotiff) but
+  they are installed by default.
+
+  Select Next to continue on to install the packages.
+
+2.  Get the source code for PDAL:
+
+  ::
+
+     c:\dev> git clone https://github.com/PDAL/PDAL.git
+
+3. From the root of your PDAL tree, run "./cmake/examples/mpg-config.bat". This will create the
+   VStudio solution file and .vcxproj files.
+
+  ::
+
+     c:\dev\PDAL> ./cmake/examples/mpg-config.bat
+
+  .. note::
+
+      The config.bat file is set up to build PDAL in the "officially supported"
+      configuration -- that is, with Oracle, and GDAL, and LASzip, and such. If you
+      followed the previous steps, you should be fine to use this default
+      configuration. You may modify this file if you need to (such as to use a local
+      copy of GDAL or to use NMake instead of Visual Studio); see the `Advanced Build Steps`_
+      below for more instructions.
+
+4.  Verify your system environment variables are set properly:
+
+  - PATH should include %OSGeo4W%\bin
+  - GDAL_DATA should be set to %OSGeo4W%\share\epsg_csv
+  - PROJ_LIB should be set to %OSGeo4W%\share\proj
+
+5.  Start Visual Studio and open PDAL.sln.  Build the solution (F6).
+
+6. Set pdal_test as the startup project and run it (F5). You should see a
+   console window startup, print something like "Running 158 test cases..."
+   (exact number may vary), and then after a short period print something like
+   "\*\*\* No errors detected". If you do get errors, that means either something is
+   broken on the version of PDAL you checked out OR something is wrong with your
+   installation.
+
+7. PYTHON/PLANG NOTE: If you build WITH_PLANG=ON in Debug mode, the system will
+   try to link against "python27d.lib". You need to change .../Python27/include/pyconfig.h
+   as follows:
+
+    - change the line #pragma comment(lib,"python27d.lib") to refer to python27.lib instead
+	- comment out the line "#define Py_DEBUG"
+
+
+
+Advanced Build Steps
+------------------------------------------------------------------------------
+
+Advanced users can use this procedure to customize their PDAL build on
+Windows. This enables the use of custom-built external libraries to satisify
+situations (including x64 support) where using OSGeo4W is inadequate.
+
+1. Acquire and stage the required dependent libraries. PDAL depends on the
+   following external libraries. You'll need to get them and build them (or
+   perhaps, download prebuilt binary packages).
+
+  - GDAL (get version 1.6 or later from http://gdal.org) [ optional ]
+  - LASZip (get version 1.0.1 or later from http://laszip.org) [ optional ]
+  - libxml2 (http://libxml2.org) [ optional ]
+  - iconv (http://www.gnu.org/software/libiconv/) [ optional (required by libxml2) ]
+  - oci (optional, http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html)
+  - libtiff (optional)
+  - libgeotiff (optional)
+
+  One option for all dependencies is OSGeo4W (free, win32
+  installer, no x64 -- see "Basic Build Steps"_ above).
+
+
+2. Having staged the above libs, you need to specify where they are by editing
+   the appropriate lines in the "config.bat" file. Each dependency has a short
+   section of the config.bat file. Check these are specified correctly. For
+   example
+
+  ::
+
+     :: LASZIP
+     set LASZIP_ENABLED=ON
+     set LASZIP_LIBRARY=%DEV_DIR%\laszip\bin\Debug\laszip.lib
+     set LASZIP_INCLUDE_DIR=%DEV_DIR%\laszip\include
+
+3. While you're still in config.bat, configure the "Generator" for CMake.
+
+  ::
+
+     :: Pick your Generator.  NMake will pick up architecture (x32, x64) from your environment
+     rem set GENERATOR="NMake Makefiles"
+     rem set GENERATOR="Visual Studio 10 Win64"
+     set GENERATOR="Visual Studio 10"
+
+     set BUILD_TYPE=Release
+     rem set BUILD_TYPE=Debug
+
+4. Run "config.bat" in the PDAL directory. This will create the VStudio solution file and .vcxproj files.
+
+  ::
+
+     c:\dev\PDAL> config.bat
+
+5. Start Visual Studio and open PDAL.sln (or if you picked "NMake Makefiles", run NMake).
+
+Testing
+------------------------------------------------------------------------------
+
+Set pdal_test as the default/startup application in Visual Studio
+Run with debug (F5)
+
+Troubleshooting
+------------------------------------------------------------------------------
+
+* Missing liblas.dll - double check that ``C:\OSGeo4W\bin`` is on your system PATH variable
+* libtiff.dll errors - double check that other versions of the lib are not on the path. For example, ArcGIS installs a version of libtiff that is not compatible.
+* "ERROR 4: Unable to open EPSG support file gcs.csv" or GDAL_DATA variable errors - Set GDAL_DATA system variable to ``C:\OSGeo4W\share\gdal``
+* PROJ errors - Set PROJ_LIB system variable to ``C:\OSGeo4W\share\proj``
+
diff --git a/doc/development/contributors.rst b/doc/development/contributors.rst
new file mode 100644
index 0000000..2769574
--- /dev/null
+++ b/doc/development/contributors.rst
@@ -0,0 +1,82 @@
+.. _contributors:
+
+******************************************************************************
+Contributors
+******************************************************************************
+
+Numerous organizations, companies, and individuals have contributed time,
+money, and code to build PDAL up into a highly capable software package.
+Without these contributions, PDAL would not progress as quickly, and its
+quality wouldn't be as high. The development team is proud of the software, and
+it collectively represents years of experiences doing point cloud data
+management. We hope you'll find it useful too.
+
+This page is to recognize these contributors and their contributions. Thanks.
+
+Engineering Contributors
+--------------------------------------------------------------------------------
+
+.. image:: https://hobu.co/theme/images/hobulogo.png
+    :target: http://hobu.co
+
+`Hobu`_ is the primary company behind the design, testing, development, and
+distribution of PDAL. Two Hobu team members primarily interact with PDAL.
+`Howard Butler`_ founded the project, and he provides project leadership and
+software development.  `Andrew Bell`_ has contributed design, refactoring, and
+new feature development of PDAL over the past couple of years.
+
+.. _`Howard Butler`: https://github.com/hobu
+.. _`Andrew Bell`: https://github.com/abellgithub
+.. _`Hobu`: http://hobu.co
+
+
+.. image:: http://radiantblue.com/wp-content/uploads/2015/12/logo1.png
+    :target: http://radiantblue.com
+
+`Michael Gerlek`_ from `RadiantBlue`_ helped bootstrap PDAL by providing its
+first design, basic primitive objects, and first :ref:`stage <stage_index>`
+implementations.
+
+.. _`Michael Gerlek`: http://github.com/mpgerlek
+
+
+`Bradley Chambers`_ from `RadiantBlue`_ has contributed numerous features and
+capabilities to the PDAL project, including :ref:`Poisson sampling
+<dart-throwing-tutorial>`, :ref:`Progressive Morphological Filters <pcl_ground>`, and
+:ref:`PCL Visualizer <writers.pclvisualizer>`. He is also a prolific
+:ref:`tutorial` writer, and he maintains the :ref:`Windows builds <download>`
+for the project.
+
+.. _`Bradley Chambers`: https://github.com/chambbj
+.. _`RadiantBlue`: http://radiantblue.com/
+
+
+Funding Contributors
+--------------------------------------------------------------------------------
+
+.. image:: ./rsgis_logo.png
+    :target: http://www.erdc.usace.army.mil/Locations/CRREL.aspx
+
+The US Army Corps of Engineers Remote Sensing / GIS Center of Expertise at
+`CRREL`_ sponsors development of PDAL for its use in point cloud data
+management systems. `CRREL`_'s `GRiD`_ project manages LiDAR and point cloud
+data for a multitude of U.S. Army Corps missions. Find out more about GRiD in
+this `LiDAR Magazine article`_.
+
+.. image:: ./nsf1.png
+    :target: http://www.nsf.gov
+
+.. image:: ./uoh.png
+    :target: http://www.uh.edu
+
+`NSF <http://www.nsf.gov>`_, in collaboration with `Dr. Craig Glennie
+<http://www.cive.uh.edu/faculty/glennie>`_ at the `University of Houston
+<http://www.uh.edu>`_ supports PDAL with funding support to develop and enhance
+statistical methods, transformation operations, tutorial and example
+development, and `PCL <http://pointclouds.org>`_ integration.
+
+
+.. _`GRiD`: http://lidar.io/about.html
+.. _`LiDAR Magazine article`: http://www.lidarmag.com/content/view/11343/198/
+.. _`CRREL`: http://www.erdc.usace.army.mil/Locations/CRREL.aspx
+
diff --git a/doc/development/docs.rst b/doc/development/docs.rst
index 1d93e9c..48a55d3 100644
--- a/doc/development/docs.rst
+++ b/doc/development/docs.rst
@@ -13,16 +13,23 @@ items:
 
 * Sphinx_
 * Breathe_
-* `sphinx_bootstrap_theme`_
 * `Doxygen`_
 * `Latex`_
 * `dvipng`_
 
 .. _`dvipng`: https://en.wikipedia.org/wiki/Dvipng
-.. _`sphinx_bootstrap_theme`: https://pypi.python.org/pypi/sphinx-bootstrap-theme/
 .. _`Latex`: https://en.wikipedia.org/wiki/LaTeX
+.. _`pdflatex`: https://www.tug.org/applications/pdftex/
 
-Sphinx, Breathe_ and Bootstrap
+.. note::
+
+    For the website, PDAL builds the documentation using :ref:`travis` and :ref:`docker`.
+    You can get a listing of the exact Ubuntu requirements in the `Dockerfile`_.
+    See :ref:`integration` for more detail.
+
+.. _`Dockerfile`: https://github.com/PDAL/PDAL/tree/master/scripts/docker/docbuild/Dockerfile
+
+Sphinx_ and Breathe_
 --------------------------------------------------------------------------------
 
 Python dependencies should be installed from PyPI_ with ``pip`` or
@@ -30,7 +37,7 @@ Python dependencies should be installed from PyPI_ with ``pip`` or
 
 .. code-block:: bash
 
-    (sudo) pip install sphinx breathe rst2pdf sphinx_bootstrap_theme
+    (sudo) pip install sphinx breathe
 
 .. note::
 
@@ -50,8 +57,7 @@ doxygen``.
 Latex
 --------------------------------------------------------------------------------
 
-`Latex`_ is used for equation editing inside of Sphinx. It is used to generate
-figures and graphs.
+`Latex`_ and `pdflatex`_ are used to generate the companion PDF of the website.
 
 dvipng
 --------------------------------------------------------------------------------
@@ -77,21 +83,37 @@ is necessary to re-generate the API documentation from the source code using
 `Breathe`_ and `Sphinx`_.
 
 
+.. note::
+
+    For a full build of the :ref:`cppapi` documentation, you need to
+    ``make doxygen`` to have it build its XML output which is consumed
+    by `Breathe`_ before ``make html`` can be issued.
 
 
 Website
 ================================================================================
 
-The http://pdal.io website is regenerated from the master branch at the following
-cron schedule:
+The http://pdal.io website is regenerated from the ``*-maintenance`` branch using
+:ref:`travis`. It will be committed by the ``PDAL-docs`` `GitHub`_ user and pushed
+to the https://github.com/PDAL/pdal.github.io repository. The website
+is then served via `GitHub Pages`_.
 
-::
+.. note::
 
-    30 2,8,12,16,20 * * * /home/pdal/periodic/pdal.sh
+    The website is regenerated and pushed only on the ``after_success`` :ref:`travis`
+    call. If the tests aren't passing, the website won't be updated.
 
-It is generated by a `Digital Ocean`_ droplet that uses the ``PDAL-docs`` `GitHub`_
-user to write to the https://github.com/PDAL/pdal.github.io repository. The website
-is then served via `GitHub Pages`_.
+Building With Docker
+================================================================================
+
+A :ref:`docker` image, ``pdal/docs`` contains the full compliment of requirements,
+and it is used by PDAL's :ref:`travis` continuous integration to build and commit
+new versions of the website. You can easily build the docs using Docker by
+issuing the following command:
+
+::
+
+    docker run -v /path/to/pdal/root/tree:/data -w /data/doc pdal/docs make html
 
 .. _`GitHub Pages`: https://pages.github.com/
 .. _`GitHub`: http://github.com/PDAL/PDAL
diff --git a/doc/development/index.rst b/doc/development/index.rst
index 456f1d6..5e310fc 100644
--- a/doc/development/index.rst
+++ b/doc/development/index.rst
@@ -4,37 +4,22 @@
 Development
 ******************************************************************************
 
-The design, architecture, and implementation of PDAL is captured in this
-set of Notes.  Each Note focues on a single major topic, such
-as Use Cases, Pipeline Design, or Testing.  These Notes are intended to
-capture design decisions, rationales, and points still to be decided.
 
-Editorial comments, and points yet to be resolved, are noted in the text
-**[like this]**.
-
-The proper spelling of the project name is PDAL, in uppercase.  It is
-pronounced to rhyme with "GDAL".
-
-
-Build and Test Status
-------------------------------------------------------------------------------
-
-.. |travis|
-.. |appveyor|
-
-.. |travis| image:: https://travis-ci.org/PDAL/PDAL.png?branch=master
-   :target: https://travis-ci.org/PDAL/PDAL
-
-.. |appveyor| image:: https://ci.appveyor.com/api/projects/status/github/pdal/pdal?branch=master&svg=true
-   :target: https://ci.appveyor.com/project/hobu/pdal
+Developer documentation, such as how to update the docs, where the test
+frameworks are, who develops the software, and conventions to use when
+developing new code can be found in this section.
 
 .. toctree::
    :maxdepth: 2
 
+   compilation/index
    conventions
+   contributors
    docs
    errorhandling
+   metadata
    goals
    testing
+   integration
 
 
diff --git a/doc/development/integration.rst b/doc/development/integration.rst
new file mode 100644
index 0000000..fa70784
--- /dev/null
+++ b/doc/development/integration.rst
@@ -0,0 +1,63 @@
+.. _integration:
+
+================================================================================
+Continuous Integration
+================================================================================
+
+PDAL :ref:`regression tests <pdal_test>` are run on a per-commit basis by at
+least two continuous integration platforms.
+
+
+Status
+--------------------------------------------------------------------------------
+
+|travisstatus|
+|appveyorstatus|
+
+.. |travisstatus| image:: https://travis-ci.org/PDAL/PDAL.png?branch=master
+   :target: https://travis-ci.org/PDAL/PDAL
+
+.. |appveyorstatus| image:: https://ci.appveyor.com/api/projects/status/github/pdal/pdal?branch=master&svg=true
+   :target: https://ci.appveyor.com/project/hobu/pdal
+
+.. _travis:
+
+Travis
+--------------------------------------------------------------------------------
+
+The Travis continuous integration platform runs the PDAL test suite on Linux.
+The build status and other supporting information can be found at
+https://travis-ci.org/PDAL/PDAL Its configuration can be found at
+https://github.com/PDAL/PDAL/blob/master/.travis.yml All administrators of the
+GitHub `PDAL` group have rights to modify the Travis configuration.
+
+It uses the ``pdal/dependencies`` :ref:`docker` image found at
+https://hub.docker.com/r/pdal/dependencies as a base platform for providing
+prerequisite software and running the test suite. If you want to add new test
+functionality based on a dependency, you will need to update that Docker image
+to do so.
+
+
+.. _appveyor:
+
+AppVeyor
+--------------------------------------------------------------------------------
+
+PDAL uses the AppVeyor continuous integration platform to run the PDAL
+compilation and test suite on Windows. The build status and other supporting
+information can be found at https://ci.appveyor.com/project/hobu/pdal
+Its configuration can be found at https://github.com/PDAL/PDAL/blob/master/appveyor.yml
+All administrators of the GitHub `PDAL` group have rights to modify the AppVeyor
+configuration.
+
+`Howard Butler`_ currently pays the bill to run in the AppVeyor upper
+performance processing tier. The AppVeyor configuration depends on `OSGeo4W64`_
+for dependencies. If you want to add new test functionality based on a
+dependency, you will need to update OSGeo4W64 with a new package to do so.
+
+.. _`OSGeo4W64`: http://trac.osgeo.org/osgeo4w/
+
+
+.. _`Howard Butler`: http://github.com/hobu
+
+
diff --git a/doc/development/metadata.rst b/doc/development/metadata.rst
new file mode 100644
index 0000000..e231b9e
--- /dev/null
+++ b/doc/development/metadata.rst
@@ -0,0 +1,223 @@
+.. _metadata:
+
+******************************************************************************
+Metadata
+******************************************************************************
+
+Metadata is an important component of any data processing story. PDAL attempts
+to allow users to operate with metadata in a relatively free-form way, with
+its main Metadata utility, :cpp:class:`pdal::Metadata`.
+
+The basic structure of a :cpp:class:`pdal::Metadata` instance is the following
+tree structure:
+
+.. code-block:: javascript
+
+    {
+        "type": "blank",
+        "value": "",
+        "name": "name",
+        "metadata": {}
+    }
+
+.. note::
+
+    Metadata instances can contain other Metadata instances by adding them
+    with the :cpp:func:`pdal::Metadata::addMetadata` method.  They will be
+    added to the `metadata` sub-tree of the internal property_tree.
+
+Metadata Types
+------------------------------------------------------------------------------
+
+:cpp:class:`pdal::Metadata` instances require that any classes that are added
+to them be copy-constructable and have an ostream<< operator for them.  While
+these constraints mean they are all serializable to strings,
+:cpp:class:`pdal::Metadata` also keeps an explicit type variable, `type` for
+each instance. This property allows us to say something extra about the
+Metadata entry, and allows them to go in and out of :cpp:class:`pdal::Stage` and
+:cpp:class:`pdal::PointView` with type fidelity.
+
+The metadata `type` variable roughly maps to the `XSD type names`_.  The following
+types are valid for current PDAL versions, though more may be added.
+
+.. csv-table:: PDAL :cpp:class:`pdal::Metadata` types
+
+    double, float, integer
+    nonNegativeInteger, boolean, string
+    base64Binary, uuid, bounds
+    spatialreference, blank
+
+.. _`XSD type names`:  http://infohost.nmt.edu/tcc/help/pubs/rnc/xsd.html
+
+.. warning::
+
+    Explicitly-sized types are not supported. Assume that `integer` or
+    `nonNegativeInteger` map to the typical 4-byte signed and unsigned types.
+    You might be required to adjust the value based on an explicit
+    interpretation and cast it into these larger types.
+
+`JSON`_ representation
+------------------------------------------------------------------------------
+
+A more interesting metadata tree might come from the
+:cpp:class:`pdal::drivers::las::Reader`.  Interesting things to note include
+
+
+
+.. _`JSON`: http://www.json.org/
+
+.. code-block:: javascript
+
+    {
+        "name": "readers.las",
+        "type": "blank",
+        "value": "",
+        "metadata":
+        {
+            "compressed":
+            {
+                "name": "compressed",
+                "description": "true if this LAS file is compressed",
+                "type": "boolean",
+                "value": "false"
+            },
+            "dataformatid":
+            {
+                "name": "dataformatid",
+                "description": "The Point Format ID as specified in the LAS specification",
+                "type": "nonNegativeInteger",
+                "value": "3"
+            },
+            ...
+            "project_id":
+            {
+                "name": "project_id",
+                "description": "Project ID (GUID data): The four fields that comprise a complete Globally Unique Identifier (GUID) are now reserved for use as a Project Identifier (Project ID). The field remains optional. The time of assignment of the Project ID is at the discretion of processing software. The Project ID should be the same for all files that are associated with a unique project. By assigning a Project ID and using a File Source ID (defined above) every file within a proj [...]
+                "type": "uuid",
+                "value": "00000000-0000-0000-0000-000000000000"
+            },
+            "system_id":
+            {
+                "name": "system_id",
+                "description": "",
+                "type": "string",
+                "value": "HOBU-SYSTEMID"
+            },
+            ...
+            "vlr_0":
+            {
+                "name": "vlr_0",
+                "description": "A Polygon WKT entry",
+                "type": "base64Binary",
+                "value": "UE9MWUdPTigoNiAxNSwgMTAgMTAsIDIwIDEwLCAyNSAxNSwgMjUgMzUsIDE5IDQwLCAxMSA0MCwgNiAyNSwgNiAxNSkpCg==",
+                "metadata":
+                {
+                    "reserved":
+                    {
+                        "name": "reserved",
+                        "description": "Two bytes of padded, unused space. Some softwares expect the values of these bytes to be 0xAABB as specified in the 1.0 version of the LAS specification",
+                        "type": "nonNegativeInteger",
+                        "value": "43707"
+                    },
+                    "user_id":
+                    {
+                        "name": "user_id",
+                        "description": "The User ID field is ASCII character data that identifies the user which created the variable length record. It is possible to have many Variable Length Records from different sources with different User IDs. If the character data is less than 16 characters, the remaining data must be null. The User ID must be registered with the LAS specification managing body. The management of these User IDs ensures that no two individuals accidentally use the s [...]
+                        "type": "string",
+                        "value": "hobu"
+                    },
+                    "record_id":
+                    {
+                        "name": "record_id",
+                        "description": "The Record ID is dependent upon the User ID. There can be 0 to 65535 Record IDs for every User ID. The LAS specification manages its own Record IDs (User IDs owned by the specification), otherwise Record IDs will be managed by the owner of the given User ID. Thus each User ID is allowed to assign 0 to 65535 Record IDs in any manner they desire. Publicizing the meaning of a given Record ID is left to the owner of the given User ID. Unknown User ID\/ [...]
+                        "type": "nonNegativeInteger",
+                        "value": "1234"
+                    },
+                    "description":
+                    {
+                        "name": "description",
+                        "description": "",
+                        "type": "string",
+                        "value": "A Polygon WKT entry"
+                    }
+                }
+            },
+            ...
+        }
+    }
+
+.. _metadatajson:
+
+:ref:`Pipeline` XML representation
+------------------------------------------------------------------------------
+
+The :ref:`Pipeline` representation of the :cpp:class:`pdal::Metadata` is a
+little bit flatter...
+
+
+::
+
+    <?xml version="1.0" encoding="utf-8"?>
+    <Reader type="readers.las">
+      <Option name="debug">false</Option>
+      <Option name="filename">test/data/interesting.las</Option>
+      <Option name="verbose">0</Option>
+      <Metadata name="writers.las" type="blank">
+        <Metadata name="compressed" type="boolean">false</Metadata>
+        <Metadata name="dataformatid" type="nonNegativeInteger">3</Metadata>
+        <Metadata name="version_major" type="nonNegativeInteger">1</Metadata>
+        <Metadata name="version_minor" type="nonNegativeInteger">2</Metadata>
+        <Metadata name="filesource_id" type="nonNegativeInteger">0</Metadata>
+        <Metadata name="reserved" type="nonNegativeInteger">0</Metadata>
+        <Metadata name="project_id" type="uuid">00000000-0000-0000-0000-000000000000</Metadata>
+        <Metadata name="system_id" type="string">HOBU-SYSTEMID</Metadata>
+        <Metadata name="software_id" type="string">HOBU-GENERATING</Metadata>
+        <Metadata name="creation_doy" type="nonNegativeInteger">145</Metadata>
+        <Metadata name="creation_year" type="nonNegativeInteger">2012</Metadata>
+        <Metadata name="header_size" type="nonNegativeInteger">227</Metadata>
+        <Metadata name="dataoffset" type="nonNegativeInteger">1488</Metadata>
+        <Metadata name="scale_x" type="double">0.01</Metadata>
+        <Metadata name="scale_y" type="double">0.01</Metadata>
+        <Metadata name="scale_z" type="double">0.01</Metadata>
+        <Metadata name="offset_x" type="double">-0</Metadata>
+        <Metadata name="offset_y" type="double">-0</Metadata>
+        <Metadata name="offset_z" type="double">-0</Metadata>
+        <Metadata name="minx" type="double">635619.85</Metadata>
+        <Metadata name="miny" type="double">848899.7000000001</Metadata>
+        <Metadata name="minz" type="double">406.59</Metadata>
+        <Metadata name="maxx" type="double">638982.55</Metadata>
+        <Metadata name="maxy" type="double">853535.4300000001</Metadata>
+        <Metadata name="maxz" type="double">586.38</Metadata>
+        <Metadata name="count" type="nonNegativeInteger">1065</Metadata>
+        <Metadata name="vlr_0" type="base64Binary">UE9MWUdPTigoNiAxNSwgMTAgMTAsIDIwIDEwLCAyNSAxNSwgMjUgMzUsIDE5IDQwLCAxMSA0MCwgNiAyNSwgNiAxNSkpCg==
+            <Metadata name="reserved" type="nonNegativeInteger">43707</Metadata>
+            <Metadata name="user_id" type="string">hobu</Metadata>
+            <Metadata name="record_id" type="nonNegativeInteger">1234</Metadata>
+            <Metadata name="description" type="string">A Polygon WKT entry</Metadata>
+        </Metadata>
+        <Metadata name="vlr_1" type="base64Binary">AQABAAAAFQAABAAAAQABAAEEAAABAAEAAgSxhywAAAAACAAAAQD/fwEIsYdqACwAAggAAAEA/38GCAAAAQCOIwgIAAABAP9/CQiwhwEABgALCLCHAQAHAA0IsIcBAAgAAAwAAAEA/38CDAAAAQD/fwMMAAABAAgABAwAAAEAKiMGDLCHAQACAAcMsIcBAAMADAywhwEAAQANDLCHAQAAAA4MsIcBAAQADwywhwEABQAAAAAAAAAAAA==
+            <Metadata name="reserved" type="nonNegativeInteger">43707</Metadata>
+            <Metadata name="user_id" type="string">LASF_Projection</Metadata>
+            <Metadata name="record_id" type="nonNegativeInteger">34735</Metadata>
+            <Metadata name="description" type="string">GeoTIFF GeoKeyDirectoryTag</Metadata>
+        </Metadata>
+        <Metadata name="vlr_2" type="base64Binary">AAAAAADgREAAAAAAACBewAAAAAAAgEVAAAAAAADARkD//////2kYQQAAAAAAAAAAAAAAQKZUWEGo+euUHaRyQAAAAAAAAAAA
+            <Metadata name="reserved" type="nonNegativeInteger">43707</Metadata>
+            <Metadata name="user_id" type="string">LASF_Projection</Metadata>
+            <Metadata name="record_id" type="nonNegativeInteger">34736</Metadata>
+            <Metadata name="description" type="string">GeoTIFF GeoDoubleParamsTag</Metadata>
+        </Metadata>
+        <Metadata name="vlr_3" type="base64Binary">TkFEXzE5ODNfT3JlZ29uX1N0YXRld2lkZV9MYW1iZXJ0X0ZlZXRfSW50bHxHQ1MgTmFtZSA9IEdDU19Ob3J0aF9BbWVyaWNhbl8xOTgzfERhdHVtID0gRF9Ob3J0aF9BbWVyaWNhbl8xOTgzfEVsbGlwc29pZCA9IEdSU18xOTgwfFByaW1lbSA9IEdyZWVud2ljaHx8AA==
+            <Metadata name="reserved" type="nonNegativeInteger">43707</Metadata>
+            <Metadata name="user_id" type="string">LASF_Projection</Metadata>
+            <Metadata name="record_id" type="nonNegativeInteger">34737</Metadata>
+            <Metadata name="description" type="string">GeoTIFF GeoAsciiParamsTag</Metadata>
+        </Metadata>
+        <Metadata name="vlr_4" type="base64Binary">UFJPSkNTWyJOQURfMTk4M19PcmVnb25fU3RhdGV3aWRlX0xhbWJlcnRfRmVldF9JbnRsIixHRU9HQ1NbIkdDU19Ob3J0aF9BbWVyaWNhbl8xOTgzIixEQVRVTVsiRF9Ob3J0aF9BbWVyaWNhbl8xOTgzIixTUEhFUk9JRFsiR1JTXzE5ODAiLDYzNzgxMzcuMCwyOTguMjU3MjIyMTAxXV0sUFJJTUVNWyJHcmVlbndpY2giLDAuMF0sVU5JVFsiRGVncmVlIiwwLjAxNzQ1MzI5MjUxOTk0MzI5NV1dLFBST0pFQ1RJT05bIkxhbWJlcnRfQ29uZm9ybWFsX0NvbmljXzJTUCJdLFBBUkFNRVRFUlsiRmFsc2VfRWFzdGluZyIsMTMxMjMzNS45NTgwMDUyNDldLFBBUkFNRVRFUlsiRmFsc2VfTm9yd [...]
+            <Metadata name="reserved" type="nonNegativeInteger">43707</Metadata>
+            <Metadata name="user_id" type="string">liblas</Metadata>
+            <Metadata name="record_id" type="nonNegativeInteger">2112</Metadata>
+            <Metadata name="description" type="string">OGR variant of OpenGIS WKT SRS</Metadata>
+        </Metadata>
+      </Metadata>
+    </Reader>
diff --git a/doc/development/nsf1.png b/doc/development/nsf1.png
new file mode 100644
index 0000000..26ed153
Binary files /dev/null and b/doc/development/nsf1.png differ
diff --git a/doc/rsgis_logo.png b/doc/development/rsgis_logo.png
similarity index 100%
rename from doc/rsgis_logo.png
rename to doc/development/rsgis_logo.png
diff --git a/doc/uoh.png b/doc/development/uoh.png
similarity index 100%
rename from doc/uoh.png
rename to doc/development/uoh.png
diff --git a/doc/docbuild/Dockerfile b/doc/docbuild/Dockerfile
deleted file mode 100644
index a2a3cee..0000000
--- a/doc/docbuild/Dockerfile
+++ /dev/null
@@ -1,29 +0,0 @@
-FROM ubuntu:15.10
-
-RUN apt-get -y update && apt-get install -y python-dev python-pip
-RUN apt-get install -y g++
-RUN apt-get install -y doxygen dvipng
-RUN apt-get install -y cmake libjpeg8-dev zlib1g-dev texlive-latex-base texlive-latex-extra
-RUN apt-get install -y git
-RUN apt-get install -y graphviz
-
-RUN pip install Sphinx breathe sphinx_bootstrap_theme awscli matplotlib
-RUN pip install --upgrade https://github.com/hobu/rst2pdf/zipball/master
-
-RUN useradd pdal
-RUN mkdir /home/pdal&& chown -R pdal: /home/pdal
-
-RUN mkdir /root/.ssh
-RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
-WORKDIR /home/pdal
-RUN git clone https://github.com/PDAL/PDAL.git pdal
-RUN git config --global push.default matching
-RUN git config --global user.email "pdal at hobu.net"
-RUN git config --global user.name "PDAL Automated Dockerfile"
-
-VOLUME /data
-
-ADD run.sh /home/pdal/run.sh
-
-# docker run --rm --volumes-from docbuild pdal-doc-build ls -al /data
-# docker create -v $(pwd)/output:/data --name docbuild pdal-doc-build
diff --git a/doc/download.rst b/doc/download.rst
index 0207ba0..1322a56 100644
--- a/doc/download.rst
+++ b/doc/download.rst
@@ -13,29 +13,29 @@ Download
 Current Release(s)
 ------------------------------------------------------------------------------
 
-* **2015-11-25** `PDAL-1.1.0-src.tar.gz`_ `Release Notes`_ (`md5`_)
+* **2016-03-31** `PDAL-1.2.0-src.tar.gz`_ `Release Notes`_ (`md5`_)
 
-.. _`Release Notes`: https://github.com/PDAL/PDAL/releases/tag/1.1.0
+.. _`Release Notes`: https://github.com/PDAL/PDAL/releases/tag/1.2.0
 
-.. _`PDAL-1.1.0-src.tar.gz`: http://download.osgeo.org/pdal/PDAL-1.1.0-src.tar.gz
-.. _`md5`: http://download.osgeo.org/pdal/PDAL-1.1.0-src.tar.gz.md5
+.. _`PDAL-1.2.0-src.tar.gz`: http://download.osgeo.org/pdal/PDAL-1.2.0-src.tar.gz
+.. _`md5`: http://download.osgeo.org/pdal/PDAL-1.2.0-src.tar.gz.md5
 .. _`DebianGIS`: http://wiki.debian.org/DebianGis
 
 
 Past Releases
 ------------------------------------------------------------------------------
 
+* **2015-11-25** `PDAL-1.1.0-src.tar.gz`_ `Release Notes`_ (`md5`_)
 
-* **2015-09-11** `PDAL-1.0.1-src.tar.gz`_ (`md5`_)
 
-.. _`PDAL-1.0.1-src.tar.gz`: http://download.osgeo.org/pdal/PDAL-1.0.1-src.tar.gz
+.. _`PDAL-1.1.0-src.tar.gz`: http://download.osgeo.org/pdal/PDAL-1.1.0-src.tar.gz
 
 
 
 .. _source:
 
 Development Source
-..............................................................................
+------------------------------------------------------------------------------
 
 The main repository for PDAL is located on github at https://github.com/PDAL/PDAL
 
diff --git a/doc/images/docker-print-one.png b/doc/images/docker-print-one.png
new file mode 100644
index 0000000..52dd535
Binary files /dev/null and b/doc/images/docker-print-one.png differ
diff --git a/doc/tutorial/docker-quickstart-env.png b/doc/images/docker-quickstart-env.png
similarity index 100%
rename from doc/tutorial/docker-quickstart-env.png
rename to doc/images/docker-quickstart-env.png
diff --git a/doc/tutorial/docker-quickstart-terminal.png b/doc/images/docker-quickstart-terminal.png
similarity index 100%
rename from doc/tutorial/docker-quickstart-terminal.png
rename to doc/images/docker-quickstart-terminal.png
diff --git a/doc/images/iheartpdal.png b/doc/images/iheartpdal.png
new file mode 100644
index 0000000..7836725
Binary files /dev/null and b/doc/images/iheartpdal.png differ
diff --git a/doc/images/las-crop-bpf-pipeline.png b/doc/images/las-crop-bpf-pipeline.png
new file mode 100644
index 0000000..3bc6e0c
Binary files /dev/null and b/doc/images/las-crop-bpf-pipeline.png differ
diff --git a/doc/images/reproject-merge-pipeline.png b/doc/images/reproject-merge-pipeline.png
new file mode 100644
index 0000000..b3bc695
Binary files /dev/null and b/doc/images/reproject-merge-pipeline.png differ
diff --git a/doc/index.rst b/doc/index.rst
index 40fd38b..9578dff 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -17,66 +17,96 @@ In addition to the library code, PDAL provides a suite of command-line
 applications that users can conveniently use to process, filter, translate, and
 query point cloud data.  See :ref:`apps` for more information.
 
+The entire website is available as a single PDF at http://pdal.io/PDAL.pdf
 
-Documentation
-=================
+News
+--------------------------------------------------------------------------------
+
+**04-24-2016**
+................................................................................
+
+See `Howard Butler`_ and `Brad Chambers`_ give PDAL talks at
+`FOSS4GNA 2016`_ in Raleigh, NC May 2-5. Howard will be presenting `Point cloud web
+services with Greyhound, Entwine, and PDAL`_, and Brad will be presenting `Filtering
+point clouds with PDAL and PCL`_.
+
+
+.. note::
+
+    Catch up with Brad and Howard to get a PDAL sticker.
+
+    .. image:: ./images/iheartpdal.png
+        :scale: 60%
+
+.. _`Howard Butler`: http://github.com/hobu
+.. _`Brad Chambers`: http://github.com/chambbj
+.. _`FOSS4GNA 2016`: https://2016.foss4g-na.org
+.. _`Point cloud web services with Greyhound, Entwine, and PDAL`: https://2016.foss4g-na.org/session/point-cloud-web-services-greyhound-entwine-and-pdal
+.. _`Filtering point clouds with PDAL and PCL`: https://2016.foss4g-na.org/session/filtering-point-clouds-pdal-and-pcl
+
+
+Download
+--------------------------------------------------------------------------------
 
 .. toctree::
    :maxdepth: 2
 
    download
-   compilation/index
-   apps
+
+Community
+--------------------------------------------------------------------------------
+
+.. toctree::
+   :maxdepth: 2
+
    community
-   stages/index
-   tutorial/index
-   tutorial/docker
+
+Usage
+--------------------------------------------------------------------------------
+
+.. toctree::
+   :maxdepth: 2
+   :glob:
+
+   apps/index
+   quickstart
+   stages/readers
+   stages/writers
+   stages/filters
    pipeline
-   faq
-   development/index
-   api/index
-   metadata
-   contributors
-   copyright
+   tutorial/index
 
+Workshop
+--------------------------------------------------------------------------------
 
-Developers and Sponsorship
-================================================================================
+.. toctree::
+   :maxdepth: 2
 
-PDAL is developed by `Howard Butler`_, `Michael Gerlek`_, `Andrew Bell`_,
-`Brad Chambers`_ and `others`_. Find out more about who contributes to
-PDAL at :ref:`contributors`.
+   Workshop <workshop/index>
 
+Development
+--------------------------------------------------------------------------------
 
-.. note::
+.. toctree::
+   :maxdepth: 2
+
+   development/index
+   api/index
+   faq
+   copyright
 
-    PDAL should not be confused with `PCL`_ (Point Cloud Library).  PCL is a
-    library specifically designed to provide algorithmic analysis and
-    modification of point clouds.  PDAL provides a limited interface to the
-    facilities of PCL, but does not in general attempt to duplicate its
-    capabilites.  PDAL is focused more on data access and translation than
-    PCL. See :ref:`filters.pclblock` for more background.
 
 
 
 
 Indices and tables
-==================
+--------------------------------------------------------------------------------
 
 * :ref:`genindex`
 * :ref:`search`
 
-.. _`PCL`: http://pointclouds.org
 .. _`GDAL`: http://www.gdal.org
 .. _`BSD`: http://www.opensource.org/licenses/bsd-license.php
 .. _`point cloud data`: http://en.wikipedia.org/wiki/Point_cloud
 .. _`LIDAR`: http://en.wikipedia.org/wiki/LIDAR
-.. _`U.S. Army Cold Regions Research and Engineering Laboratory` : http://www.crrel.usace.army.mil/
-.. _`Howard Butler`: http://github.com/hobu
-.. _`Andrew Bell`: http://github.com/abellgithub
-.. _`Michael Gerlek`: http://github.com/mpgerlek
-.. _`Brad Chambers`: http://github.com/chambbj
-.. _`others`: http://github.com/PDAL/PDAL/graphs/contributors
-
-
 
diff --git a/doc/json_pipeline_specification.rst b/doc/json_pipeline_specification.rst
deleted file mode 100644
index 6c14908..0000000
--- a/doc/json_pipeline_specification.rst
+++ /dev/null
@@ -1,343 +0,0 @@
-.. _json_pipeline_specification:
-
-======================================
-Draft PDAL JSON Pipeline Specification
-======================================
-
-:Authors:
-    Bradley J. Chambers,
-    Connor Manning,
-    Andrew Bell,
-    Howard Butler
-
-:Revision: 0.1
-:Date: 22 December 2015
-
-The PDAL JSON specification is a point cloud processing pipeline interchange
-format based on JavaScript Object Notation (JSON).
-
-.. sectnum::
-.. contents::
-   :depth: 4
-   :backlinks: none
-
-============
-Introduction
-============
-
-A PDAL JSON object represents a processing pipeline.
-
-A complete PDAL JSON data structure is always an object (in JSON terms). In PDAL
-JSON, an object consists of a collection of name/value pairs -- also called
-members. For each member, the name is always a string. Member values are either
-a string, number, object, array or one of the literals: "true", "false", and
-"null". An array consists of elements where each element is a value as
-described above.
-
-Examples
---------
-
-A simple PDAL pipeline, inferring the appropriate drivers for the reader and
-writer from filenames, and able to be specified as a set of sequential steps:
-
-.. code-block:: json
-
-  {
-      "pipeline":[
-          "input.las",
-          {
-              "type":"crop",
-              "bounds":"([0,100],[0,100])"
-          },
-          "output.bpf"
-      ]
-  }
-
-A more complex PDAL pipeline, that reprojects the stage tagged ``A1``, merges
-the result with ``B``, and writes the merged output with the ``points2grid``
-plugin.:
-
-.. code-block:: json
-
-  {
-      "pipeline":[
-          {
-              "filename":"A.las",
-              "spatialreference":"EPSG:26916"
-          },
-          {
-              "type":"filters.reprojection",
-              "in_srs":"EPSG:26916",
-              "out_srs":"EPSG:4326",
-              "tag":"A2"
-          },
-          {
-              "filename":"B.las",
-              "tag":"B"
-          },
-          {
-              "type":"filters.merge",
-              "tag":"merged",
-              "inputs":[
-                  "A2",
-                  "B"
-              ]
-          },
-          {
-              "type":"writers.p2g",
-              "filename":"output.tif"
-          }
-      ]
-  }
-
-Definitions
------------
-
-* JavaScript Object Notation (JSON), and the terms object, name, value, array,
-  and number, are defined in IETF RTC 4627, at
-  http://www.ietf.org/rfc/rfc4627.txt.
-
-* The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
-  "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this documention are to
-  be interpreted as described in IETF RFC 2119, at
-  http://www.ietf.org/rfc/rfc2119.txt.
-
-=====================
-PDAL Pipeline Objects
-=====================
-
-PDAL JSON pipelines always consist of a single object. This object (referred to
-as the PDAL JSON object below) represents a processing pipeline.
-
-* The PDAL JSON object may have any number of members (name/value pairs).
-
-* The PDAL JSON object must have a :ref:`pipeline_array`.
-
-.. _pipeline_array:
-
-Pipeline Array
---------------
-
-* The pipeline array may have any number of string or :ref:`stage_object`
-  elements.
-
-* String elements shall be interpreted as filenames. PDAL will attempt to infer
-  the proper driver from the file extension and position in the array. A writer
-  stage will only be created if the string is the final element in the array.
-
-.. _stage_object:
-
-Stage Objects
--------------
-
-For more on PDAL stages and their options, check the PDAL documentation on
-`Readers, Writers, and Filters <http://www.pdal.io/stages/index.html>`_.
-
-* A stage object may have a member with the name ``tag`` whose value is a
-  string. The purpose of the tag is to cross-reference this stage within other
-  stages. Each ``tag`` must be unique.
-
-* A stage object may have a member with the name ``inputs`` whose value is an
-  array of strings. Each element in the array is the tag of another stage to be
-  set as input to the current stage.
-
-* Reader stages will disregard the ``inputs`` member.
-
-* If ``inputs`` is not specified for the first non-reader stage, all reader
-  stages leading up to the current stage will be used as inputs.
-
-* If ``inputs`` is not specified for any subsequent non-reader stages, the
-  previous stage in the array will be used as input.
-
-* A ``tag`` mentioned in another stage's ``inputs``  must have been previously
-  defined in the ``pipeline`` array.
-
-* A reader or writer stage object may have a member with the name ``type`` whose
-  value is a string. The ``type`` must specify a valid PDAL reader or writer
-  name.
-
-* A filter stage object must have a member with the name ``type`` whose value is
-  a string. The ``type`` must specify a valid PDAL filter name.
-
-* A stage object may have additional members with names corresponding to
-  stage-specific option names and their respective values.
-
-Filename Globbing
------------------
-
-* A filename may contain the wildcard character ``*`` to match any string of
-  characters. This can be useful if working with multiple input files in a
-  directory (e.g., merging all files).
-
-=================
-Extended Examples
-=================
-
-BPF to LAS
-----------
-
-The following pipeline converts the input file from BPF to LAS, inferring both
-the reader and writer type, and setting a number of options on the writer stage.
-
-.. code-block:: json
-
-  {
-      "pipeline":[
-          "utm15.bpf",
-          {
-              "filename":"out2.las",
-              "scale_x":0.01,
-              "offset_x":311898.23,
-              "scale_y":0.01,
-              "offset_y":4703909.84,
-              "scale_z":0.01,
-              "offset_z":7.385474
-          }
-      ]
-  }
-
-Python HAG
-----------
-
-In our next example, the reader and writer types are once again inferred. After
-reading the input file, the ferry filter is used to copy the Z dimension into a
-new height above ground (HAG) dimension. Next, the programmable filter is used
-with a python script to compute height above ground values by comparing the Z
-values to a surface model. These height above ground values are then written
-back into the Z dimension for further analysis.
-
-.. code-block:: json
-
-  {
-      "pipeline":[
-          "autzen.las",
-          {
-              "type":"ferry",
-              "dimensions":"Z=HAG"
-          },
-          {
-              "type":"programmable",
-              "script":"hag.py",
-              "function":"filter",
-              "module":"anything"
-          },
-          "autzen-hag.las"
-      ]
-  }
-
-DTM
----
-
-A common task is to create a digital terrain model (DTM) from the input point
-cloud. This pipeline infers the reader type, applies an approximate ground
-segmentation filter, and then creates the DTM using the Points2Grid writer with
-only the ground returns.
-
-.. code-block:: json
-
-  {
-      "pipeline":[
-          "autzen-full.las",
-          {
-              "type":"ground",
-              "approximate":true,
-              "max_window_size":33,
-              "slope":1.0,
-              "max_distance":2.5,
-              "initial_distance":0.15,
-              "cell_size":1.0,
-              "extract":true,
-              "classify":false
-          },
-          {
-              "type":"p2g",
-              "filename":"autzen-surface.tif",
-              "output_type":"min",
-              "output_format":"tif",
-              "grid_dist_x":1.0,
-              "grid_dist_y":1.0
-          }
-      ]
-  }
-
-Decimate & Colorize
--------------------
-
-This example still infers the reader and writer types while applying options on
-both. The pipeline decimates the input LAS file by keeping every other point,
-and then colorizes the points using the provided raster image. The output is
-written as ASCII text.
-
-.. code-block:: json
-
-  {
-      "pipeline":[
-          {
-              "filename":"1.2-with-color.las",
-              "spatialreference":"EPSG:2993"
-          },
-          {
-              "type":"decimation",
-              "step":2,
-              "offset":1
-          },
-          {
-              "type":"colorization",
-              "raster":"autzen.tif",
-              "dimensions":"Red:1:1, Green:2:1, Blue:3:1"
-          },
-          {
-              "filename":"junk.txt",
-              "delimiter":",",
-              "write_header":false
-          }
-      ]
-  }
-
-Merge & Reproject
------------------
-
-Our first example with multiple readers, this pipeline infers the reader types,
-and assigns spatial reference information to each. Next, the merge filter merges
-points from all previous readers, and the reprojection filter reprojects data to
-the specified output spatial reference system.
-
-.. code-block:: json
-
-  {
-      "pipeline":[
-          {
-              "filename":"1.2-with-color.las",
-              "spatialreference":"EPSG:2027"
-          },
-          {
-              "filename":"1.2-with-color.las",
-              "spatialreference":"EPSG:2027"
-          },
-          {
-              "type":"merge"
-          },
-          {
-              "type":"reprojection",
-              "out_srs":"EPSG:2028"
-          }
-      ]
-  }
-
-Globbed Inputs
---------------
-
-Finally, we capture another merge pipeline demonstrating the ability to glob
-multiple input LAS files from a given directory.
-
-.. code-block:: json
-
-  {
-      "pipeline":[
-          "/path/to/data/*.las",
-          {
-              "type":"merge"
-          },
-          "output.las"
-      ]
-  }
diff --git a/doc/metadata.rst b/doc/metadata.rst
deleted file mode 100644
index 6fd9029..0000000
--- a/doc/metadata.rst
+++ /dev/null
@@ -1,227 +0,0 @@
-.. _metadata:
-
-******************************************************************************
-Metadata
-******************************************************************************
-
-:Author: Howard Butler
-:Contact: hobu.inc at gmail dot com
-:Date: 5/30/2012
-
-Metadata is an important component of any data processing story. PDAL attempts
-to allow users to operate with metadata in a relatively free-form way, with
-its main Metadata utility, :cpp:class:`pdal::Metadata`.
-
-The basic structure of a :cpp:class:`pdal::Metadata` instance is the following
-tree structure:
-
-.. code-block:: javascript
-
-    {
-        "type": "blank",
-        "value": "",
-        "name": "name",
-        "metadata": {}
-    }
-
-.. note::
-
-    Metadata instances can contain other Metadata instances by adding them
-    with the :cpp:func:`pdal::Metadata::addMetadata` method.  They will be
-    added to the `metadata` sub-tree of the internal property_tree.
-
-Metadata Types
-------------------------------------------------------------------------------
-
-:cpp:class:`pdal::Metadata` instances require that any classes that are added
-to them be copy-constructable and have an ostream<< operator for them.  While
-these constraints mean they are all serializable to strings,
-:cpp:class:`pdal::Metadata` also keeps an explicit type variable, `type` for
-each instance. This property allows us to say something extra about the
-Metadata entry, and allows them to go in and out of :cpp:class:`pdal::Stage` and
-:cpp:class:`pdal::PointView` with type fidelity.
-
-The metadata `type` variable roughly maps to the `XSD type names`_.  The following
-types are valid for current PDAL versions, though more may be added.
-
-.. csv-table:: PDAL :cpp:class:`pdal::Metadata` types
-
-    double, float, integer
-    nonNegativeInteger, boolean, string
-    base64Binary, uuid, bounds
-    spatialreference, blank
-
-.. _`XSD type names`:  http://infohost.nmt.edu/tcc/help/pubs/rnc/xsd.html
-
-.. warning::
-
-    Explicitly-sized types are not supported. Assume that `integer` or
-    `nonNegativeInteger` map to the typical 4-byte signed and unsigned types.
-    You might be required to adjust the value based on an explicit
-    interpretation and cast it into these larger types.
-
-`JSON`_ representation
-------------------------------------------------------------------------------
-
-A more interesting metadata tree might come from the
-:cpp:class:`pdal::drivers::las::Reader`.  Interesting things to note include
-
-
-
-.. _`JSON`: http://www.json.org/
-
-.. code-block:: javascript
-
-    {
-        "name": "readers.las",
-        "type": "blank",
-        "value": "",
-        "metadata":
-        {
-            "compressed":
-            {
-                "name": "compressed",
-                "description": "true if this LAS file is compressed",
-                "type": "boolean",
-                "value": "false"
-            },
-            "dataformatid":
-            {
-                "name": "dataformatid",
-                "description": "The Point Format ID as specified in the LAS specification",
-                "type": "nonNegativeInteger",
-                "value": "3"
-            },
-            ...
-            "project_id":
-            {
-                "name": "project_id",
-                "description": "Project ID (GUID data): The four fields that comprise a complete Globally Unique Identifier (GUID) are now reserved for use as a Project Identifier (Project ID). The field remains optional. The time of assignment of the Project ID is at the discretion of processing software. The Project ID should be the same for all files that are associated with a unique project. By assigning a Project ID and using a File Source ID (defined above) every file within a proj [...]
-                "type": "uuid",
-                "value": "00000000-0000-0000-0000-000000000000"
-            },
-            "system_id":
-            {
-                "name": "system_id",
-                "description": "",
-                "type": "string",
-                "value": "HOBU-SYSTEMID"
-            },
-            ...
-            "vlr_0":
-            {
-                "name": "vlr_0",
-                "description": "A Polygon WKT entry",
-                "type": "base64Binary",
-                "value": "UE9MWUdPTigoNiAxNSwgMTAgMTAsIDIwIDEwLCAyNSAxNSwgMjUgMzUsIDE5IDQwLCAxMSA0MCwgNiAyNSwgNiAxNSkpCg==",
-                "metadata":
-                {
-                    "reserved":
-                    {
-                        "name": "reserved",
-                        "description": "Two bytes of padded, unused space. Some softwares expect the values of these bytes to be 0xAABB as specified in the 1.0 version of the LAS specification",
-                        "type": "nonNegativeInteger",
-                        "value": "43707"
-                    },
-                    "user_id":
-                    {
-                        "name": "user_id",
-                        "description": "The User ID field is ASCII character data that identifies the user which created the variable length record. It is possible to have many Variable Length Records from different sources with different User IDs. If the character data is less than 16 characters, the remaining data must be null. The User ID must be registered with the LAS specification managing body. The management of these User IDs ensures that no two individuals accidentally use the s [...]
-                        "type": "string",
-                        "value": "hobu"
-                    },
-                    "record_id":
-                    {
-                        "name": "record_id",
-                        "description": "The Record ID is dependent upon the User ID. There can be 0 to 65535 Record IDs for every User ID. The LAS specification manages its own Record IDs (User IDs owned by the specification), otherwise Record IDs will be managed by the owner of the given User ID. Thus each User ID is allowed to assign 0 to 65535 Record IDs in any manner they desire. Publicizing the meaning of a given Record ID is left to the owner of the given User ID. Unknown User ID\/ [...]
-                        "type": "nonNegativeInteger",
-                        "value": "1234"
-                    },
-                    "description":
-                    {
-                        "name": "description",
-                        "description": "",
-                        "type": "string",
-                        "value": "A Polygon WKT entry"
-                    }
-                }
-            },
-            ...
-        }
-    }
-
-.. _metadatajson:
-
-:ref:`Pipeline` XML representation
-------------------------------------------------------------------------------
-
-The :ref:`Pipeline` representation of the :cpp:class:`pdal::Metadata` is a
-little bit flatter...
-
-
-::
-
-    <?xml version="1.0" encoding="utf-8"?>
-    <Reader type="readers.las">
-      <Option name="debug">false</Option>
-      <Option name="filename">test/data/interesting.las</Option>
-      <Option name="verbose">0</Option>
-      <Metadata name="writers.las" type="blank">
-        <Metadata name="compressed" type="boolean">false</Metadata>
-        <Metadata name="dataformatid" type="nonNegativeInteger">3</Metadata>
-        <Metadata name="version_major" type="nonNegativeInteger">1</Metadata>
-        <Metadata name="version_minor" type="nonNegativeInteger">2</Metadata>
-        <Metadata name="filesource_id" type="nonNegativeInteger">0</Metadata>
-        <Metadata name="reserved" type="nonNegativeInteger">0</Metadata>
-        <Metadata name="project_id" type="uuid">00000000-0000-0000-0000-000000000000</Metadata>
-        <Metadata name="system_id" type="string">HOBU-SYSTEMID</Metadata>
-        <Metadata name="software_id" type="string">HOBU-GENERATING</Metadata>
-        <Metadata name="creation_doy" type="nonNegativeInteger">145</Metadata>
-        <Metadata name="creation_year" type="nonNegativeInteger">2012</Metadata>
-        <Metadata name="header_size" type="nonNegativeInteger">227</Metadata>
-        <Metadata name="dataoffset" type="nonNegativeInteger">1488</Metadata>
-        <Metadata name="scale_x" type="double">0.01</Metadata>
-        <Metadata name="scale_y" type="double">0.01</Metadata>
-        <Metadata name="scale_z" type="double">0.01</Metadata>
-        <Metadata name="offset_x" type="double">-0</Metadata>
-        <Metadata name="offset_y" type="double">-0</Metadata>
-        <Metadata name="offset_z" type="double">-0</Metadata>
-        <Metadata name="minx" type="double">635619.85</Metadata>
-        <Metadata name="miny" type="double">848899.7000000001</Metadata>
-        <Metadata name="minz" type="double">406.59</Metadata>
-        <Metadata name="maxx" type="double">638982.55</Metadata>
-        <Metadata name="maxy" type="double">853535.4300000001</Metadata>
-        <Metadata name="maxz" type="double">586.38</Metadata>
-        <Metadata name="count" type="nonNegativeInteger">1065</Metadata>
-        <Metadata name="vlr_0" type="base64Binary">UE9MWUdPTigoNiAxNSwgMTAgMTAsIDIwIDEwLCAyNSAxNSwgMjUgMzUsIDE5IDQwLCAxMSA0MCwgNiAyNSwgNiAxNSkpCg==
-            <Metadata name="reserved" type="nonNegativeInteger">43707</Metadata>
-            <Metadata name="user_id" type="string">hobu</Metadata>
-            <Metadata name="record_id" type="nonNegativeInteger">1234</Metadata>
-            <Metadata name="description" type="string">A Polygon WKT entry</Metadata>
-        </Metadata>
-        <Metadata name="vlr_1" type="base64Binary">AQABAAAAFQAABAAAAQABAAEEAAABAAEAAgSxhywAAAAACAAAAQD/fwEIsYdqACwAAggAAAEA/38GCAAAAQCOIwgIAAABAP9/CQiwhwEABgALCLCHAQAHAA0IsIcBAAgAAAwAAAEA/38CDAAAAQD/fwMMAAABAAgABAwAAAEAKiMGDLCHAQACAAcMsIcBAAMADAywhwEAAQANDLCHAQAAAA4MsIcBAAQADwywhwEABQAAAAAAAAAAAA==
-            <Metadata name="reserved" type="nonNegativeInteger">43707</Metadata>
-            <Metadata name="user_id" type="string">LASF_Projection</Metadata>
-            <Metadata name="record_id" type="nonNegativeInteger">34735</Metadata>
-            <Metadata name="description" type="string">GeoTIFF GeoKeyDirectoryTag</Metadata>
-        </Metadata>
-        <Metadata name="vlr_2" type="base64Binary">AAAAAADgREAAAAAAACBewAAAAAAAgEVAAAAAAADARkD//////2kYQQAAAAAAAAAAAAAAQKZUWEGo+euUHaRyQAAAAAAAAAAA
-            <Metadata name="reserved" type="nonNegativeInteger">43707</Metadata>
-            <Metadata name="user_id" type="string">LASF_Projection</Metadata>
-            <Metadata name="record_id" type="nonNegativeInteger">34736</Metadata>
-            <Metadata name="description" type="string">GeoTIFF GeoDoubleParamsTag</Metadata>
-        </Metadata>
-        <Metadata name="vlr_3" type="base64Binary">TkFEXzE5ODNfT3JlZ29uX1N0YXRld2lkZV9MYW1iZXJ0X0ZlZXRfSW50bHxHQ1MgTmFtZSA9IEdDU19Ob3J0aF9BbWVyaWNhbl8xOTgzfERhdHVtID0gRF9Ob3J0aF9BbWVyaWNhbl8xOTgzfEVsbGlwc29pZCA9IEdSU18xOTgwfFByaW1lbSA9IEdyZWVud2ljaHx8AA==
-            <Metadata name="reserved" type="nonNegativeInteger">43707</Metadata>
-            <Metadata name="user_id" type="string">LASF_Projection</Metadata>
-            <Metadata name="record_id" type="nonNegativeInteger">34737</Metadata>
-            <Metadata name="description" type="string">GeoTIFF GeoAsciiParamsTag</Metadata>
-        </Metadata>
-        <Metadata name="vlr_4" type="base64Binary">UFJPSkNTWyJOQURfMTk4M19PcmVnb25fU3RhdGV3aWRlX0xhbWJlcnRfRmVldF9JbnRsIixHRU9HQ1NbIkdDU19Ob3J0aF9BbWVyaWNhbl8xOTgzIixEQVRVTVsiRF9Ob3J0aF9BbWVyaWNhbl8xOTgzIixTUEhFUk9JRFsiR1JTXzE5ODAiLDYzNzgxMzcuMCwyOTguMjU3MjIyMTAxXV0sUFJJTUVNWyJHcmVlbndpY2giLDAuMF0sVU5JVFsiRGVncmVlIiwwLjAxNzQ1MzI5MjUxOTk0MzI5NV1dLFBST0pFQ1RJT05bIkxhbWJlcnRfQ29uZm9ybWFsX0NvbmljXzJTUCJdLFBBUkFNRVRFUlsiRmFsc2VfRWFzdGluZyIsMTMxMjMzNS45NTgwMDUyNDldLFBBUkFNRVRFUlsiRmFsc2VfTm9yd [...]
-            <Metadata name="reserved" type="nonNegativeInteger">43707</Metadata>
-            <Metadata name="user_id" type="string">liblas</Metadata>
-            <Metadata name="record_id" type="nonNegativeInteger">2112</Metadata>
-            <Metadata name="description" type="string">OGR variant of OpenGIS WKT SRS</Metadata>
-        </Metadata>
-      </Metadata>
-    </Reader>
diff --git a/doc/nsf1.gif b/doc/nsf1.gif
deleted file mode 100644
index 182a6aa..0000000
Binary files a/doc/nsf1.gif and /dev/null differ
diff --git a/doc/pdal.style b/doc/pdal.style
deleted file mode 100644
index 3153f3c..0000000
--- a/doc/pdal.style
+++ /dev/null
@@ -1,344 +0,0 @@
-pageSetup:
-    margin-bottom: 8mm
-    margin-left: 12mm
-    margin-right: 12mm
-    margin-top: 8mm
-
-styles:
-    admonition:
-        backColor: #EEFFCC
-        borderColor: #AACC99
-        borderPadding: 8
-        borderWidth: 0.5
-        commands: []
-                [VALIGN, [0, 0], [-1, -1], TOP]
-        spaceAfter: 6
-        spaceBefore: 12
-
-    admonition-heading:
-        backColor: null
-        borderColor: null
-        borderPadding: 0
-        borderWidth: 0
-        leftIndent: 0
-        parent: heading3
-        textColor: black
-
-    admonition-title:
-        backColor: null
-        borderColor: null
-        borderPadding: 0
-        borderWidth: 0
-        leftIndent: 0
-        parent: heading3
-
-    member:
-        parent: admonition-title
-    function:
-        parent: admonition-title
-    file:
-        parent: admonition-title
-
-    seealso-heading:
-        parent: admonition-title
-
-    attribute: parent: bodytext
-    author:
-        alignment: TA_CENTER
-        fontName: stdSansBold
-        fontSize: 120%
-        parent: bodytext
-
-    centered:
-        alignment: TA_CENTER
-        fontName: stdBold
-        parent: bodytext
-
-    class: parent: bodytext
-    code:
-        allowOrphans: false
-        allowWidows: false
-        backColor: #EEFFCC
-        borderColor: #AACC99
-        borderPadding: [6, 0, 0, 4]
-        borderWidth: 0.3
-        spaceBefore: 0
-
-    confval: parent: bodytext
-    data: parent: bodytext
-    kbd: parent: bodytext
-    desc: {parent: bodytext, spaceBefore: 6}
-    descclassname: {fontName: stdMono, parent: literal}
-    descname: {fontName: stdMonoBold, parent: literal}
-    descparameter: {fontName: stdMono, parent: literal}
-    desctype: {fontName: stdMono, parent: literal}
-    directive: parent: bodytext
-    exception: parent: bodytext
-    heading:
-        backColor: #F2F2F2
-        borderColor: #CCCCCC
-        borderPadding: [6, 0, 0, 10]
-        borderWidth: 0.3
-        fontName: stdSansBold
-        fontSize: 10
-        leading: 10
-        leftIndent: 0
-        spaceBefore: 16
-        textColor: #20435C
-
-    heading1: fontSize: 200%
-    heading2: fontSize: 160%
-    heading3: fontSize: 140%
-    heading4: fontSize: 120%
-    heading5: fontSize: 110%
-    heading6: fontSize: 100%
-    hlist:
-        alignment: TA_CENTER
-        commands: []
-                [VALIGN, [0, 0], [-1, -1], TOP]
-        parent: normal
-        spaceAfter: 0
-        spaceBefore: 6
-
-    method: {fontName: stdSansBold, parent: bodytext}
-    note:
-        backColor: #EEEEEE
-        borderColor: #CCCCCC
-        parent: admonition
-
-    optional: {fontName: stdMonoBold, parent: literal}
-    pygments-bp: {parent: code, textColor: #007020}
-    pygments-c: {parent: code, textColor: #808080}
-    pygments-c1: {parent: code, textColor: #808080}
-    pygments-cm: {parent: code, textColor: #808080}
-    pygments-cp: {parent: code, textColor: #507090}
-    pygments-cs:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #cc0000
-
-    pygments-err:
-        backColor: #F0A0A0
-        parent: code
-        textColor: #F00000
-
-    pygments-gd: {parent: code, textColor: #A00000}
-    pygments-ge: {fontName: stdMonoItalic, parent: code}
-    pygments-gh:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #000080
-
-    pygments-gi: {parent: code, textColor: #00A000}
-    pygments-go: {parent: code, textColor: #808080}
-    pygments-gp:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #c65d09
-
-    pygments-gr: {parent: code, textColor: #FF0000}
-    pygments-gs: {fontName: stdMonoBold, parent: code}
-    pygments-gt: {parent: code, textColor: #0040D0}
-    pygments-gu:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #800080
-
-    pygments-hll: {backColor: #ffffcc, parent: code}
-    pygments-il:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #0000D0
-
-    pygments-k:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #008000
-
-    pygments-kc:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #008000
-
-    pygments-kd:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #008000
-
-    pygments-kn:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #008000
-
-    pygments-kp:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #003080
-
-    pygments-kr:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #008000
-
-    pygments-kt:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #303090
-
-    pygments-m:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #6000E0
-
-    pygments-mf:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #6000E0
-
-    pygments-mh:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #005080
-
-    pygments-mi:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #0000D0
-
-    pygments-mo:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #4000E0
-
-    pygments-n-identifier: parent: code
-    pygments-na: {parent: code, textColor: #0000C0}
-    pygments-nb: {parent: code, textColor: #007020}
-    pygments-nc:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #B00060
-
-    pygments-nd:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #505050
-
-    pygments-ne:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #F00000
-
-    pygments-nf:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #0060B0
-
-    pygments-ni:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #800000
-
-    pygments-nl:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #907000
-
-    pygments-nn:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #0e84b5
-
-    pygments-no:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #003060
-
-    pygments-nt: {parent: code, textColor: #007000}
-    pygments-nv: {parent: code, textColor: #906030}
-    pygments-o: {parent: code, textColor: #303030}
-    pygments-ow:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #000000
-
-    pygments-s: {backColor: #fff0f0, parent: code}
-    pygments-s1: {backColor: #fff0f0, parent: code}
-    pygments-s2: {backColor: #fff0f0, parent: code}
-    pygments-sb: {backColor: #fff0f0, parent: code}
-    pygments-sc: {parent: code, textColor: #0040D0}
-    pygments-sd: {parent: code, textColor: #D04020}
-    pygments-se:
-        backColor: #fff0f0
-        fontName: stdMonoBold
-        parent: code
-        textColor: #606060
-
-    pygments-sh: {backColor: #fff0f0, parent: code}
-    pygments-si: {backColor: #e0e0e0, parent: code}
-    pygments-sr:
-        backColor: #fff0ff
-        parent: code
-        textColor: #000000
-
-    pygments-ss: {parent: code, textColor: #A06000}
-    pygments-sx:
-        backColor: #fff0f0
-        parent: code
-        textColor: #D02000
-
-    pygments-vc: {parent: code, textColor: #306090}
-    pygments-vg:
-        fontName: stdMonoBold
-        parent: code
-        textColor: #d07000
-
-    pygments-vi: {parent: code, textColor: #3030B0}
-    pygments-w: {parent: code, textColor: #bbbbbb}
-    returns: parent: bodytext
-    role: parent: bodytext
-    seealso:
-        backColor: #FFFFCC
-        borderColor: #FFFF66
-        parent: admonition
-
-    sidebar:
-        backColor: #EEFFCC
-        borderColor: #AACC99
-        borderPadding: 8
-        borderWidth: 0.5
-        spaceAfter: 6
-        spaceBefore: 12
-
-    sidebar-subtitle:
-        backColor: null
-        borderColor: null
-        borderPadding: 0
-        borderWidth: 0
-        leftIndent: 0
-        parent: heading4
-        spaceBefore: 0
-
-    sidebar-title:
-        backColor: null
-        borderColor: null
-        borderPadding: 0
-        borderWidth: 0
-        leftIndent: 0
-        parent: heading3
-
-    table-heading: {borderWidth: 0, parent: heading}
-
-    todo-node:
-        backColor: #FFFFFF
-        borderColor: #CCCCCC
-        parent: admonition
-
-    versionmodified: {fontName: stdItalic, parent: bodytext}
-
-    warning:
-        backColor: #FFE4E4
-        borderColor: #FF6666
-        parent: admonition
-
-    xref: {fontName: stdMonoBold, parent: code}
-
diff --git a/doc/pipeline.rst b/doc/pipeline.rst
index 9cc9388..3a9c420 100644
--- a/doc/pipeline.rst
+++ b/doc/pipeline.rst
@@ -4,19 +4,20 @@
 Pipeline
 ******************************************************************************
 
-:Author: Howard Butler
-:Contact: howard at hobu.co
-:Date: 03/22/2016
+Pipelines are the operative construct in PDAL. PDAL constructs a pipeline to
+perform data translation operations using :ref:`translate_command`, for
+example. While specific :ref:`applications <apps>` are useful in many contexts,
+a pipeline provides some useful advantages for more complex things:
 
-Pipelines are the operative construct in PDAL -- you must construct pipelines
-to perform data translation operations, filter data, or simply to provide data
-to an endpoint. This document describes some features and background of PDAL
-Pipelines and give some examples you can use to execute translation
-operations.
+1. You have a record of the operation(s) applied to the data
+2. You can construct a skeleton of an operation and substitute specific
+   options (filenames, for example)
+3. You can construct complex operations using the `JSON`_ manipulation
+   facilities of whatever language you want.
 
-.. seealso::
+.. note::
 
-    :ref:`pipeline_command` is used to invoke JSON pipeline operations
+    :ref:`pipeline_command` is used to invoke pipeline operations
     via the command line.
 
 
@@ -24,11 +25,360 @@ operations.
 
     As of PDAL 1.2, `JSON`_ is now the preferred specification language
     for PDAL pipelines. XML read support is still available at 1.2, but
-    JSON is preferred.
+    JSON is preferred. XML support will be dropped in a future release.
 
 .. _`JSON`: http://www.json.org/
 
-Composing pipelines
+
+Introduction
+--------------------------------------------------------------------------------
+
+
+A PDAL JSON object represents a processing pipeline.
+
+A complete PDAL JSON data structure is always an object (in JSON terms). In PDAL
+JSON, an object consists of a collection of name/value pairs -- also called
+members. For each member, the name is always a string. Member values are either
+a string, number, object, array or one of the literals: "true", "false", and
+"null". An array consists of elements where each element is a value as
+described above.
+
+Examples
+................................................................................
+
+A simple PDAL pipeline, inferring the appropriate drivers for the reader and
+writer from filenames, and able to be specified as a set of sequential steps:
+
+.. code-block:: json
+
+  {
+      "pipeline":[
+          "input.las",
+          {
+              "type":"crop",
+              "bounds":"([0,100],[0,100])"
+          },
+          "output.bpf"
+      ]
+  }
+
+.. figure:: ./images/las-crop-bpf-pipeline.png
+
+    A simple pipeline to convert :ref:`LAS <readers.las>` to :ref:`BPF <readers.bpf>`
+    while only keeping points inside the box :math:`[0 \leq x \leq 100, 0 \leq y \leq 100]`.
+
+A more complex PDAL pipeline, that reprojects the stage tagged ``A1``, merges
+the result with ``B``, and writes the merged output with the :ref:`writers.p2g`
+plugin.:
+
+.. code-block:: json
+
+  {
+      "pipeline":[
+          {
+              "filename":"A.las",
+              "spatialreference":"EPSG:26916"
+          },
+          {
+              "type":"filters.reprojection",
+              "in_srs":"EPSG:26916",
+              "out_srs":"EPSG:4326",
+              "tag":"A2"
+          },
+          {
+              "filename":"B.las",
+              "tag":"B"
+          },
+          {
+              "type":"filters.merge",
+              "tag":"merged",
+              "inputs":[
+                  "A2",
+                  "B"
+              ]
+          },
+          {
+              "type":"writers.p2g",
+              "filename":"output.tif"
+          }
+      ]
+  }
+
+.. figure:: ./images/reproject-merge-pipeline.png
+
+    A more complex pipeline that merges two inputs together but uses
+    :ref:`filters.reprojection` to transform the coordinate system of
+    file ``B.las`` from `UTM`_ to `Geographic`_.
+
+.. _`UTM`: http://spatialreference.org/ref/epsg/nad83-utm-zone-16n/
+.. _`Geographic`: http://spatialreference.org/ref/epsg/4326/
+
+Definitions
+................................................................................
+
+* JavaScript Object Notation (JSON), and the terms object, name, value, array,
+  and number, are defined in IETF RTC 4627, at
+  http://www.ietf.org/rfc/rfc4627.txt.
+
+* The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
+  "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this documention are to
+  be interpreted as described in IETF RFC 2119, at
+  http://www.ietf.org/rfc/rfc2119.txt.
+
+Pipeline Objects
+--------------------------------------------------------------------------------
+
+PDAL JSON pipelines always consist of a single object. This object (referred to
+as the PDAL JSON object below) represents a processing pipeline.
+
+* The PDAL JSON object may have any number of members (name/value pairs).
+
+* The PDAL JSON object must have a :ref:`pipeline_array`.
+
+.. _pipeline_array:
+
+Pipeline Array
+................................................................................
+
+* The pipeline array may have any number of string or :ref:`stage_object`
+  elements.
+
+* String elements shall be interpreted as filenames. PDAL will attempt to infer
+  the proper driver from the file extension and position in the array. A writer
+  stage will only be created if the string is the final element in the array.
+
+.. _stage_object:
+
+Stage Objects
+................................................................................
+
+For more on PDAL stages and their options, check the PDAL documentation on
+:ref:`readers`, :ref:`writers`, and :ref:`filters`.
+
+* A stage object may have a member with the name ``tag`` whose value is a
+  string. The purpose of the tag is to cross-reference this stage within other
+  stages. Each ``tag`` must be unique.
+
+* A stage object may have a member with the name ``inputs`` whose value is an
+  array of strings. Each element in the array is the tag of another stage to be
+  set as input to the current stage.
+
+* Reader stages will disregard the ``inputs`` member.
+
+* If ``inputs`` is not specified for the first non-reader stage, all reader
+  stages leading up to the current stage will be used as inputs.
+
+* If ``inputs`` is not specified for any subsequent non-reader stages, the
+  previous stage in the array will be used as input.
+
+* A ``tag`` mentioned in another stage's ``inputs``  must have been previously
+  defined in the ``pipeline`` array.
+
+* A reader or writer stage object may have a member with the name ``type`` whose
+  value is a string. The ``type`` must specify a valid PDAL reader or writer
+  name.
+
+* A filter stage object must have a member with the name ``type`` whose value is
+  a string. The ``type`` must specify a valid PDAL filter name.
+
+* A stage object may have additional members with names corresponding to
+  stage-specific option names and their respective values.
+
+Filename Globbing
+................................................................................
+
+* A filename may contain the wildcard character ``*`` to match any string of
+  characters. This can be useful if working with multiple input files in a
+  directory (e.g., merging all files).
+
+Extended Examples
+--------------------------------------------------------------------------------
+
+BPF to LAS
+................................................................................
+
+The following pipeline converts the input file from :ref:`BPF <readers.bpf>` to
+:ref:`LAS <writers.las>`, inferring both the reader and writer type, and
+setting a number of options on the writer stage.
+
+.. code-block:: json
+
+  {
+      "pipeline":[
+          "utm15.bpf",
+          {
+              "filename":"out2.las",
+              "scale_x":0.01,
+              "offset_x":311898.23,
+              "scale_y":0.01,
+              "offset_y":4703909.84,
+              "scale_z":0.01,
+              "offset_z":7.385474
+          }
+      ]
+  }
+
+Python HAG
+................................................................................
+
+In our next example, the reader and writer types are once again inferred. After
+reading the input file, the ferry filter is used to copy the Z dimension into a
+new height above ground (HAG) dimension. Next, the :ref:`filters.programmable`
+is used with a Python script to compute height above ground values by comparing
+the Z values to a surface model. These height above ground values are then
+written back into the Z dimension for further analysis.
+
+.. seealso::
+
+    :ref:`filters.height` describes using a specific filter to do
+    this job in more detail.
+
+.. code-block:: json
+
+  {
+      "pipeline":[
+          "autzen.las",
+          {
+              "type":"ferry",
+              "dimensions":"Z=HAG"
+          },
+          {
+              "type":"programmable",
+              "script":"hag.py",
+              "function":"filter",
+              "module":"anything"
+          },
+          "autzen-hag.las"
+      ]
+  }
+
+DTM
+................................................................................
+
+A common task is to create a digital terrain model (DTM) from the input point
+cloud. This pipeline infers the reader type, applies an approximate ground
+segmentation filter using :ref:`filters.ground`, and then creates the DTM using
+the :ref:`writers.p2g` with only the ground returns.
+
+.. code-block:: json
+
+  {
+      "pipeline":[
+          "autzen-full.las",
+          {
+              "type":"ground",
+              "approximate":true,
+              "max_window_size":33,
+              "slope":1.0,
+              "max_distance":2.5,
+              "initial_distance":0.15,
+              "cell_size":1.0,
+              "extract":true,
+              "classify":false
+          },
+          {
+              "type":"writers.p2g",
+              "filename":"autzen-surface.tif",
+              "output_type":"min",
+              "output_format":"tif",
+              "grid_dist_x":1.0,
+              "grid_dist_y":1.0
+          }
+      ]
+  }
+
+Decimate & Colorize
+................................................................................
+
+This example still infers the reader and writer types while applying options on
+both. The pipeline decimates the input LAS file by keeping every other point,
+and then colorizes the points using the provided raster image. The output is
+written as ASCII text.
+
+.. code-block:: json
+
+  {
+      "pipeline":[
+          {
+              "filename":"1.2-with-color.las",
+              "spatialreference":"EPSG:2993"
+          },
+          {
+              "type":"decimation",
+              "step":2,
+              "offset":1
+          },
+          {
+              "type":"colorization",
+              "raster":"autzen.tif",
+              "dimensions":"Red:1:1, Green:2:1, Blue:3:1"
+          },
+          {
+              "filename":"junk.txt",
+              "delimiter":",",
+              "write_header":false
+          }
+      ]
+  }
+
+Merge & Reproject
+................................................................................
+
+Our first example with multiple readers, this pipeline infers the reader types,
+and assigns spatial reference information to each. Next, the
+:ref:`filters.merge` merges points from all previous readers, and the
+:ref:`filters.reprojection` filter reprojects data to the specified output
+spatial reference system.
+
+.. code-block:: json
+
+  {
+      "pipeline":[
+          {
+              "filename":"1.2-with-color.las",
+              "spatialreference":"EPSG:2027"
+          },
+          {
+              "filename":"1.2-with-color.las",
+              "spatialreference":"EPSG:2027"
+          },
+          {
+              "type":"merge"
+          },
+          {
+              "type":"reprojection",
+              "out_srs":"EPSG:2028"
+          }
+      ]
+  }
+
+Globbed Inputs
+................................................................................
+
+Finally, we capture another merge pipeline demonstrating the ability to glob
+multiple input LAS files from a given directory.
+
+.. code-block:: json
+
+  {
+      "pipeline":[
+          "/path/to/data/\*.las",
+          {
+              "type":"merge"
+          },
+          "output.las"
+      ]
+  }
+
+
+.. seealso::
+
+    The PDAL source tree contains a number of example pipelines that
+    are used for testing. You might find these inspiring. Go to
+    https://github.com/PDAL/PDAL/tree/master/test/data/pipeline to find
+    more.
+
+API Considerations
 ------------------------------------------------------------------------------
 
 A `Pipeline` is composed as an array of :cpp:class:`pdal::Stage` , with the
@@ -59,7 +409,7 @@ is a consumer of data, and a Filter is an actor on data.
 
 
 Usage
-------------------------------------------------------------------------------
+..............................................................................
 
 While pipeline objects are manipulable through C++ objects, the other, more
 convenient way is through an JSON syntax. The JSON syntax mirrors the
@@ -120,7 +470,7 @@ PDAL. Readers follow the pattern of :ref:`readers.las` or
     stages and their options. See :ref:`info_command` for more.
 
 Options
-------------------------------------------------------------------------------
+..............................................................................
 
 Options are the mechanism that PDAL uses to inform :cpp:class:`pdal::Stage`
 entities how to process data. The following example sorts the data using a
@@ -149,7 +499,3 @@ for the :ref:`writers.las` :cpp:class:`pdal::Stage`.
 
 
 
-Syntax Specification
-------------------------------------------------------------------------------
-
-See :ref:`json_pipeline_specification` for more detail
diff --git a/doc/quickstart.rst b/doc/quickstart.rst
new file mode 100644
index 0000000..0a7fff9
--- /dev/null
+++ b/doc/quickstart.rst
@@ -0,0 +1,199 @@
+.. _quickstart:
+
+******************************************************************************
+Quickstart
+******************************************************************************
+
+.. index:: Docker, Quickstart
+
+Introduction
+------------------------------------------------------------------------------
+
+It's a giant pain to build everything yourself. To make it simpler to use PDAL, a
+build based on Docker is available. This document describes how
+to use it to print the first point of an :ref:`ASPRS LAS <readers.las>` file.
+
+
+.. _docker:
+
+Install Docker
+------------------------------------------------------------------------------
+
+
+The Docker configuration that PDAL provides contains nearly every possible
+feature except for `Oracle Point Cloud`_ support. Things it includes are:
+
+Docker starting documentation can be found at the following links. Read through
+them a bit for your platform so you have an idea what to expect.
+
+* `Windows <http://docs.docker.com/windows/started/>`__
+* `OSX <http://docs.docker.com/mac/started/>`__
+* `Linux <http://docs.docker.com/linux/started/>`__
+
+.. _`Docker Toolbox`: https://www.docker.com/docker-toolbox
+
+.. note::
+
+    We will assume you are running on Windows, but the same commands should
+    work in OSX or Linux too -- though definition of file paths might provide
+    a significant difference.
+
+.. seealso::
+
+    :ref:`apps` provides detailed information on using PDAL applications, and
+    :ref:`workshop` provides a full suite of exercises you can follow to learn
+    how to use PDAL with Docker.
+
+Run Docker Quickstart Terminal
+................................................................................
+
+`Docker`_ is most easily accessed using a terminal window that it configures
+with environment variables and such. Double-click on the "Docker Quickstart Terminal"
+link on your desktop (Windows) or run the "Docker Quickstart Terminal" application
+(Mac).
+
+After some text scrolls by, you should see something like the following image
+:
+
+.. image:: ./images/docker-quickstart-terminal.png
+
+To be sure Docker is working correctly and everything is happy,
+issue the following command and confirm that it reports similar information:
+
+::
+
+    docker-machine env default
+
+.. image:: ./images/docker-quickstart-env.png
+
+Obtain PDAL Image
+................................................................................
+
+A PDAL image based on the latest release, including all recent patches, is
+pushed to `Docker Hub`_ with every code change on the PDAL maintenance branch.
+We need to pull it locally so we can use it to run PDAL commands. Once it is
+pulled, we don't have to pull it again unless we want to refresh it for
+whatever reason.
+
+::
+
+    docker pull pdal/pdal
+
+.. note::
+
+    Other PDAL versions are provided at the same `Docker Hub`_ location,
+    with an expected tag name (ie ``pdal/pdal:1.2``, or ``pdal/pdal:1.x``) for
+    major PDAL versions. The PDAL Docker hub location at
+    https://hub.docker.com/u/pdal/ has images and more information
+    on this topic.
+
+.. _`Docker Hub`: http://hub.docker.com
+
+Fetch Sample Data
+------------------------------------------------------------------------------
+
+We need some sample data to play with, so we're going to download
+the ``autzen.laz`` file to your ``C:/Users/Howard`` drive. Inside the
+`Docker Quickstart Terminal`, issue the following ``curl`` command:
+
+::
+
+    curl -O http://www.liblas.org/samples/autzen/autzen.laz
+
+.. note::
+
+    That's a capital Oh, not a zero.
+
+List the directory to be sure that it was downloaded
+
+::
+
+    ls *.laz
+
+Print the first point
+------------------------------------------------------------------------------
+
+Docker
+................................................................................
+
+Run the following command in the `Docker Quickstart Terminal`
+
+::
+
+    docker run -v /c/Users/Howard:/data pdal/pdal pdal info /data/autzen.laz -p 0
+
+Here's a summary of what's going on with that command invocation
+
+1. ``docker``: We are running PDAL within the context of docker, so all of our
+   commands will start with the ``docker`` command.
+
+2. ``run``: Tells docker we're going to run an image
+
+3. ``-v /c/Users/Howard:/data``: Maps our home directory to a directory called
+   ``/data`` inside the container.
+
+
+   .. seealso::
+
+       The `Docker Volume <https://docs.docker.com/engine/userguide/dockervolumes/>`__
+       document describes mounting volumes in more detail.
+
+4. ``pdal/pdal``: This is the Docker image we are going to run. We fetched it
+   with the command above. If it were not already fetched, Docker would attempt
+   to fetch it when we run this command.
+
+5. ``pdal``: We're finally going to run the ``pdal`` command :)
+
+6. ``info``: We want to run :ref:`info_command` on the data
+
+7. ``/data/autzen.laz``: The ``pdal`` command is now running in the context of
+   our container, which we mounted a ``/data`` directory in with the volume
+   mount operation in Step #3. Our ``autzen.laz`` file resides there.
+
+
+Native
+................................................................................
+
+Run the following command in a terminal window:
+
+::
+
+    pdal info /data/autzen.laz -p 0
+
+
+Here's a summary of what's going on with that command invocation
+
+
+1. ``pdal``: We're finally going to run the ``pdal`` command :)
+
+2. ``info``: We want to run :ref:`info_command` on the data
+
+3. ``/data/autzen.laz``:  Read our ``autzen.laz`` file .
+
+
+.. image:: ./images/docker-print-one.png
+
+What's next?
+------------------------------------------------------------------------------
+
+Visit :ref:`apps` to find out how to utilize PDAL applications to process data
+on the command line yourself. Visit :ref:`development_index` to learn how to
+embed and use PDAL in your own applications. :ref:`readers` lists the formats
+that PDAL can read, :ref:`filters` lists the kinds of operations you can do
+with PDAL, and :ref:`writers` lists the formats PDAL can write.
+
+.. seealso::
+
+    :ref:`community` is a good source to reach out to when you're stuck.
+
+
+.. _`Points2Grid`: https://github.com/CRREL/points2grid
+.. _`Oracle Point Cloud`: http://docs.oracle.com/cd/B28359_01/appdev.111/b28400/sdo_pc_pkg_ref.htm
+.. _`pgpointcloud`: https://github.com/pramsey/pointcloud
+
+.. _`LASzip`: http://laszip.org
+.. _`VirtualBox`: https://www.virtualbox.org/
+.. _`GDAL`: http://gdal.org
+.. _`MapServer`: http://mapserver.org
+.. _`Mapnik`: http://mapnik.org
+.. _`PCL`: http://www.pointclouds.org
diff --git a/doc/rtd_theme/__init__.py b/doc/rtd_theme/__init__.py
new file mode 100644
index 0000000..88ddcce
--- /dev/null
+++ b/doc/rtd_theme/__init__.py
@@ -0,0 +1,17 @@
+"""Sphinx ReadTheDocs theme.
+
+From https://github.com/ryan-roemer/sphinx-bootstrap-theme.
+
+"""
+import os
+
+VERSION = (0, 1, 9)
+
+__version__ = ".".join(str(v) for v in VERSION)
+__version_full__ = __version__
+
+
+def get_html_theme_path():
+    """Return list of HTML theme paths."""
+    cur_dir = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
+    return cur_dir
diff --git a/doc/rtd_theme/breadcrumbs.html b/doc/rtd_theme/breadcrumbs.html
new file mode 100644
index 0000000..1b7ae04
--- /dev/null
+++ b/doc/rtd_theme/breadcrumbs.html
@@ -0,0 +1,31 @@
+{# Support for Sphinx 1.3+ page_source_suffix, but don't break old builds. #}
+
+{% if page_source_suffix %}
+{% set suffix = page_source_suffix %}
+{% else %}
+{% set suffix = source_suffix %}
+{% endif %}
+
+<div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="{{ pathto(master_doc) }}">Home</a> »</li>
+      {% for doc in parents %}
+        <li><a href="{{ doc.link|e }}">{{ doc.title }}</a> »</li>
+      {% endfor %}
+    <li>{{ title }}</li>
+    <li class="wy-breadcrumbs-aside">
+      {% if pagename != "search" %}
+        {% if display_github %}
+          <a href="https://{{ github_host|default("github.com") }}/{{ github_user }}/{{ github_repo }}/blob/{{ github_version }}{{ conf_py_path }}{{ pagename }}{{ suffix }}" class="fa fa-github"> Edit on GitHub</a>
+        {% elif display_bitbucket %}
+          <a href="https://bitbucket.org/{{ bitbucket_user }}/{{ bitbucket_repo }}/src/{{ bitbucket_version}}{{ conf_py_path }}{{ pagename }}{{ suffix }}" class="fa fa-bitbucket"> Edit on Bitbucket</a>
+        {% elif show_source and source_url_prefix %}
+          <a href="{{ source_url_prefix }}{{ pagename }}{{ suffix }}">View page source</a>
+        {% elif show_source and has_source and sourcename %}
+          <a href="{{ pathto('_sources/' + sourcename, true)|e }}" rel="nofollow"> View page source</a>
+        {% endif %}
+      {% endif %}
+    </li>
+  </ul>
+  <hr/>
+</div>
diff --git a/doc/rtd_theme/footer.html b/doc/rtd_theme/footer.html
new file mode 100644
index 0000000..a58ffdb
--- /dev/null
+++ b/doc/rtd_theme/footer.html
@@ -0,0 +1,49 @@
+<footer>
+  {% if next or prev %}
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      {% if next %}
+        <a href="{{ next.link|e }}" class="btn btn-neutral float-right" title="{{ next.title|striptags|e }}" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
+      {% endif %}
+      {% if prev %}
+        <a href="{{ prev.link|e }}" class="btn btn-neutral" title="{{ prev.title|striptags|e }}" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      {% endif %}
+    </div>
+  {% endif %}
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+    {%- if show_copyright %}
+                    ©  {{ copyright }}
+                        <a href="http://github.com/hobu">Howard Butler</a>,
+                        <a href="http://github.com/mpgerlek">Michael Gerlek</a>,
+                        and
+                        <a href="https://github.com/PDAL/PDAL/graphs/contributors">others</a>.
+
+    {%- endif %}
+
+    {%- if build_id and build_url %}
+      {% trans build_url=build_url, build_id=build_id %}
+        <span class="build">
+          Build
+          <a href="{{ build_url }}">{{ build_id }}</a>.
+        </span>
+      {% endtrans %}
+    {%- elif commit %}
+      {% trans commit=commit %}
+        <span class="commit">
+          Revision <code>{{ commit }}</code>.
+        </span>
+      {% endtrans %}
+    {%- elif last_updated %}
+      {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
+    {%- endif %}
+
+    </p>
+  </div>
+
+  {%- block extrafooter %} {% endblock %}
+
+</footer>
+
diff --git a/doc/rtd_theme/layout.html b/doc/rtd_theme/layout.html
new file mode 100644
index 0000000..45d0231
--- /dev/null
+++ b/doc/rtd_theme/layout.html
@@ -0,0 +1,194 @@
+{# TEMPLATE VAR SETTINGS #}
+{%- set url_root = pathto('', 1) %}
+{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
+{%- if not embedded and docstitle %}
+  {%- set titlesuffix = " — "|safe + docstitle|e %}
+{%- else %}
+  {%- set titlesuffix = "" %}
+{%- endif %}
+
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  {{ metatags }}
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  {% block htmltitle %}
+  <title>{{ title|striptags|e }}{{ titlesuffix }}</title>
+  {% endblock %}
+
+  {# FAVICON #}
+  {% if favicon %}
+    <link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
+  {% endif %}
+
+  {# CSS #}
+
+  {# OPENSEARCH #}
+  {% if not embedded %}
+    {% if use_opensearch %}
+      <link rel="search" type="application/opensearchdescription+xml" title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}" href="{{ pathto('_static/opensearch.xml', 1) }}"/>
+    {% endif %}
+
+  {% endif %}
+
+  {# RTD hosts this file, so just load on non RTD builds #}
+  {% if not READTHEDOCS %}
+    <link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
+  {% endif %}
+
+  {% for cssfile in css_files %}
+    <link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
+  {% endfor %}
+
+  {% for cssfile in extra_css_files %}
+    <link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
+  {% endfor %}
+
+  {%- block linktags %}
+    {%- if hasdoc('about') %}
+        <link rel="author" title="{{ _('About these documents') }}"
+              href="{{ pathto('about') }}"/>
+    {%- endif %}
+    {%- if hasdoc('genindex') %}
+        <link rel="index" title="{{ _('Index') }}"
+              href="{{ pathto('genindex') }}"/>
+    {%- endif %}
+    {%- if hasdoc('search') %}
+        <link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}"/>
+    {%- endif %}
+    <link rel="top" title="{{ docstitle|e }}" href="{{ pathto('index') }}"/>
+    {%- if parents %}
+        <link rel="up" title="{{ parents[-1].title|striptags|e }}" href="{{ parents[-1].link|e }}"/>
+    {%- endif %}
+    {%- if next %}
+        <link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}"/>
+    {%- endif %}
+    {%- if prev %}
+        <link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}"/>
+    {%- endif %}
+  {%- endblock %}
+  {%- block extrahead %} {% endblock %}
+
+  {# Keep modernizr in head - http://modernizr.com/docs/#installing #}
+  <script src="{{ pathto('_static/js/modernizr.min.js', 1) }}"></script>
+
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  {% block extrabody %} {% endblock %}
+  <div class="wy-grid-for-nav">
+
+    {# SIDE NAV, TOGGLES ON MOBILE #}
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search">
+          {% block sidebartitle %}
+
+          {% if logo and theme_logo_only %}
+            <a href="{{ pathto(master_doc) }}">
+          {% else %}
+            <a href="{{ pathto(master_doc) }}" class="icon icon-home"> {{ project }}
+          {% endif %}
+
+          {% if logo %}
+            {# Not strictly valid HTML, but it's the only way to display/scale it properly, without weird scripting or heaps of work #}
+            <img src="{{ pathto('_static/' + logo, 1) }}" class="logo" />
+          {% endif %}
+          </a>
+
+          {% if theme_display_version %}
+            {%- set nav_version = version %}
+            {% if READTHEDOCS and current_version %}
+              {%- set nav_version = current_version %}
+            {% endif %}
+            {% if nav_version %}
+              <div class="version">
+                {{ nav_version }}
+              </div>
+            {% endif %}
+          {% endif %}
+
+          {% include "searchbox.html" %}
+
+          {% endblock %}
+        </div>
+
+        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+          {% block menu %}
+            {% set toctree = toctree(maxdepth=4, collapse=theme_collapse_navigation, includehidden=True) %}
+            {% if toctree %}
+                {{ toctree }}
+            {% else %}
+                <!-- Local TOC -->
+                <div class="local-toc">{{ toc }}</div>
+            {% endif %}
+          {% endblock %}
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      {# MOBILE NAV, TRIGGLES SIDE NAV ON TOGGLE #}
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="{{ pathto(master_doc) }}">{{ project }}</a>
+      </nav>
+
+
+      {# PAGE CONTENT #}
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          {% include "breadcrumbs.html" %}
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+            {% block body %}{% endblock %}
+           </div>
+          </div>
+          {% include "footer.html" %}
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  {% include "versions.html" %}
+
+  {% if not embedded %}
+
+    <script type="text/javascript">
+        var DOCUMENTATION_OPTIONS = {
+            URL_ROOT:'{{ url_root }}',
+            VERSION:'{{ release|e }}',
+            COLLAPSE_INDEX:false,
+            FILE_SUFFIX:'{{ '' if no_search_suffix else file_suffix }}',
+            HAS_SOURCE:  {{ has_source|lower }}
+        };
+    </script>
+    {%- for scriptfile in script_files %}
+      <script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
+    {%- endfor %}
+
+  {% endif %}
+
+  {# RTD hosts this file, so just load on non RTD builds #}
+  {% if not READTHEDOCS %}
+    <script type="text/javascript" src="{{ pathto('_static/js/theme.js', 1) }}"></script>
+  {% endif %}
+
+  {# STICKY NAVIGATION #}
+  {% if theme_sticky_navigation %}
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.StickyNav.enable();
+      });
+  </script>
+  {% endif %}
+
+  {%- block footer %} {% endblock %}
+
+</body>
+</html>
diff --git a/doc/rtd_theme/layout_old.html b/doc/rtd_theme/layout_old.html
new file mode 100644
index 0000000..deb8df2
--- /dev/null
+++ b/doc/rtd_theme/layout_old.html
@@ -0,0 +1,205 @@
+{#
+    basic/layout.html
+    ~~~~~~~~~~~~~~~~~
+
+    Master layout template for Sphinx themes.
+
+    :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+#}
+{%- block doctype -%}
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+{%- endblock %}
+{%- set reldelim1 = reldelim1 is not defined and ' »' or reldelim1 %}
+{%- set reldelim2 = reldelim2 is not defined and ' |' or reldelim2 %}
+{%- set render_sidebar = (not embedded) and (not theme_nosidebar|tobool) and
+                         (sidebars != []) %}
+{%- set url_root = pathto('', 1) %}
+{# XXX necessary? #}
+{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
+{%- if not embedded and docstitle %}
+  {%- set titlesuffix = " — "|safe + docstitle|e %}
+{%- else %}
+  {%- set titlesuffix = "" %}
+{%- endif %}
+
+{%- macro relbar() %}
+    <div class="related">
+      <h3>{{ _('Navigation') }}</h3>
+      <ul>
+        {%- for rellink in rellinks %}
+        <li class="right" {% if loop.first %}style="margin-right: 10px"{% endif %}>
+          <a href="{{ pathto(rellink[0]) }}" title="{{ rellink[1]|striptags|e }}"
+             {{ accesskey(rellink[2]) }}>{{ rellink[3] }}</a>
+          {%- if not loop.first %}{{ reldelim2 }}{% endif %}</li>
+        {%- endfor %}
+        {%- block rootrellink %}
+        <li><a href="{{ pathto(master_doc) }}">{{ shorttitle|e }}</a>{{ reldelim1 }}</li>
+        {%- endblock %}
+        {%- for parent in parents %}
+          <li><a href="{{ parent.link|e }}" {% if loop.last %}{{ accesskey("U") }}{% endif %}>{{ parent.title }}</a>{{ reldelim1 }}</li>
+        {%- endfor %}
+        {%- block relbaritems %} {% endblock %}
+      </ul>
+    </div>
+{%- endmacro %}
+
+{%- macro sidebar() %}
+      {%- if render_sidebar %}
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+          {%- block sidebarlogo %}
+          {%- if logo %}
+            <p class="logo"><a href="{{ pathto(master_doc) }}">
+              <img class="logo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/>
+            </a></p>
+          {%- endif %}
+          {%- endblock %}
+          {%- if sidebars != None %}
+            {#- new style sidebar: explicitly include/exclude templates #}
+            {%- for sidebartemplate in sidebars %}
+            {%- include sidebartemplate %}
+            {%- endfor %}
+          {%- else %}
+            {#- old style sidebars: using blocks -- should be deprecated #}
+            {%- block sidebartoc %}
+            {%- include "localtoc.html" %}
+            {%- endblock %}
+            {%- block sidebarrel %}
+            {%- include "relations.html" %}
+            {%- endblock %}
+            {%- block sidebarsourcelink %}
+            {%- include "sourcelink.html" %}
+            {%- endblock %}
+            {%- if customsidebar %}
+            {%- include customsidebar %}
+            {%- endif %}
+            {%- block sidebarsearch %}
+            {%- include "searchbox.html" %}
+            {%- endblock %}
+          {%- endif %}
+        </div>
+      </div>
+      {%- endif %}
+{%- endmacro %}
+
+{%- macro script() %}
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:    '{{ url_root }}',
+        VERSION:     '{{ release|e }}',
+        COLLAPSE_INDEX: false,
+        FILE_SUFFIX: '{{ '' if no_search_suffix else file_suffix }}',
+        HAS_SOURCE:  {{ has_source|lower }}
+      };
+    </script>
+    {%- for scriptfile in script_files %}
+    <script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
+    {%- endfor %}
+{%- endmacro %}
+
+{%- macro css() %}
+    <link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
+    <link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
+    {%- for cssfile in css_files %}
+    <link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
+    {%- endfor %}
+{%- endmacro %}
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset={{ encoding }}" />
+    {{ metatags }}
+    {%- block htmltitle %}
+    <title>{{ title|striptags|e }}{{ titlesuffix }}</title>
+    {%- endblock %}
+    {{ css() }}
+    {%- if not embedded %}
+    {{ script() }}
+    {%- if use_opensearch %}
+    <link rel="search" type="application/opensearchdescription+xml"
+          title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
+          href="{{ pathto('_static/opensearch.xml', 1) }}"/>
+    {%- endif %}
+    {%- if favicon %}
+    <link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
+    {%- endif %}
+    {%- endif %}
+{%- block linktags %}
+    {%- if hasdoc('about') %}
+    <link rel="author" title="{{ _('About these documents') }}" href="{{ pathto('about') }}" />
+    {%- endif %}
+    {%- if hasdoc('genindex') %}
+    <link rel="index" title="{{ _('Index') }}" href="{{ pathto('genindex') }}" />
+    {%- endif %}
+    {%- if hasdoc('search') %}
+    <link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}" />
+    {%- endif %}
+    {%- if hasdoc('copyright') %}
+    <link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}" />
+    {%- endif %}
+    <link rel="top" title="{{ docstitle|e }}" href="{{ pathto('index') }}" />
+    {%- if parents %}
+    <link rel="up" title="{{ parents[-1].title|striptags|e }}" href="{{ parents[-1].link|e }}" />
+    {%- endif %}
+    {%- if next %}
+    <link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}" />
+    {%- endif %}
+    {%- if prev %}
+    <link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}" />
+    {%- endif %}
+{%- endblock %}
+{%- block extrahead %} {% endblock %}
+  </head>
+  <body>
+{%- block header %}{% endblock %}
+
+{%- block relbar1 %}{{ relbar() }}{% endblock %}
+
+{%- block content %}
+  {%- block sidebar1 %} {# possible location for sidebar #} {% endblock %}
+
+    <div class="document">
+  {%- block document %}
+      <div class="documentwrapper">
+      {%- if render_sidebar %}
+        <div class="bodywrapper">
+      {%- endif %}
+          <div class="body">
+            {% block body %} {% endblock %}
+          </div>
+      {%- if render_sidebar %}
+        </div>
+      {%- endif %}
+      </div>
+  {%- endblock %}
+
+  {%- block sidebar2 %}{{ sidebar() }}{% endblock %}
+      <div class="clearer"></div>
+    </div>
+{%- endblock %}
+
+{%- block relbar2 %}{{ relbar() }}{% endblock %}
+
+{%- block footer %}
+    <div class="footer">
+    {%- if show_copyright %}
+      {%- if hasdoc('copyright') %}
+        {% trans path=pathto('copyright'), copyright=copyright|e %}© <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}
+      {%- else %}
+        {% trans copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %}
+      {%- endif %}
+    {%- endif %}
+    {%- if last_updated %}
+      {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
+    {%- endif %}
+    {%- if show_sphinx %}
+      {% trans sphinx_version=sphinx_version|e %}Created using <a href="http://sphinx-doc.org/">Sphinx</a> {{ sphinx_version }}.{% endtrans %}
+    {%- endif %}
+    </div>
+    <p>asdf asdf asdf asdf 22</p>
+{%- endblock %}
+  </body>
+</html>
+
diff --git a/doc/rtd_theme/search.html b/doc/rtd_theme/search.html
new file mode 100644
index 0000000..e3aa9b5
--- /dev/null
+++ b/doc/rtd_theme/search.html
@@ -0,0 +1,50 @@
+{#
+    basic/search.html
+    ~~~~~~~~~~~~~~~~~
+
+    Template for the search page.
+
+    :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+#}
+{%- extends "layout.html" %}
+{% set title = _('Search') %}
+{% set script_files = script_files + ['_static/searchtools.js'] %}
+{% block footer %}
+  <script type="text/javascript">
+    jQuery(function() { Search.loadIndex("{{ pathto('searchindex.js', 1) }}"); });
+  </script>
+  {# this is used when loading the search index using $.ajax fails,
+     such as on Chrome for documents on localhost #}
+  <script type="text/javascript" id="searchindexloader"></script>
+  {{ super() }}
+{% endblock %}
+{% block body %}
+  <noscript>
+  <div id="fallback" class="admonition warning">
+    <p class="last">
+      {% trans %}Please activate JavaScript to enable the search
+      functionality.{% endtrans %}
+    </p>
+  </div>
+  </noscript>
+
+  {% if search_performed %}
+    <h2>{{ _('Search Results') }}</h2>
+    {% if not search_results %}
+      <p>{{ _('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.') }}</p>
+    {% endif %}
+  {% endif %}
+  <div id="search-results">
+  {% if search_results %}
+    <ul>
+    {% for href, caption, context in search_results %}
+      <li>
+        <a href="{{ pathto(item.href) }}">{{ caption }}</a>
+        <p class="context">{{ context|e }}</p>
+      </li>
+    {% endfor %}
+    </ul>
+  {% endif %}
+  </div>
+{% endblock %}
diff --git a/doc/rtd_theme/searchbox.html b/doc/rtd_theme/searchbox.html
new file mode 100644
index 0000000..69c4fc1
--- /dev/null
+++ b/doc/rtd_theme/searchbox.html
@@ -0,0 +1,9 @@
+{%- if builder != 'singlehtml' %}
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="{{ pathto('search') }}" method="get">
+    <input type="text" name="q" placeholder="Search" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+{%- endif %}
diff --git a/doc/rtd_theme/static/css/badge_only.css b/doc/rtd_theme/static/css/badge_only.css
new file mode 100644
index 0000000..7e17fb1
--- /dev/null
+++ b/doc/rtd_theme/static/css/badge_only.css
@@ -0,0 +1,2 @@
+.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../font/fontawesome_webfont.eot");src:url("../font/fontawesome_webfont.eot?#iefix") format("embedded-opentype"),url("../font/fontawesome_webfont.woff") format("woff"),url("../font/fontawesome_webfont.ttf") format("truetype"),url("../font/fontawesome_webfont.svg [...]
+/*# sourceMappingURL=badge_only.css.map */
diff --git a/doc/rtd_theme/static/css/badge_only.css.map b/doc/rtd_theme/static/css/badge_only.css.map
new file mode 100644
index 0000000..9d07b87
--- /dev/null
+++ b/doc/rtd_theme/static/css/badge_only.css.map
@@ -0,0 +1,7 @@
+{
+"version": 3,
+"mappings": "CAyDA,SAAY,EACV,qBAAsB,EAAE,UAAW,EAqDrC,QAAS,EARP,IAAK,EAAE,AAAC,EACR,+BAAS,EAEP,MAAO,EAAE,IAAK,EACd,MAAO,EAAE,CAAE,EACb,cAAO,EACL,IAAK,EAAE,GAAI,EC1Gb,SAkBC,EAjBC,UAAW,ECFJ,UAAW,EDGlB,UAAW,EAHqC,KAAM,EAItD,SAAU,EAJsD,KAAM,EAapE,EAAG,EAAE,qCAAwB,EAC7B,EAAG,EAAE,0PAAyE,ECZpF,SAAU,EACR,MAAO,EAAE,WAAY,EACrB,UAAW,EAAE,UAAW,EACxB,SAAU,EAAE,KAAM,EAClB,UAAW,EAAE,KAAM,EACnB,UAAW,EAAE,AAAC,EACd,cAAe,EAAE,MAAO,EAG1B,IAAK,EACH,MAAO,EAAE,WAAY,EACrB,cAAe,EAAE,MAAO,EAIxB,KAAG,EACD,MAAO,EA [...]
+"sources": ["../../../bower_components/wyrm/sass/wyrm_core/_mixin.sass","../../../bower_components/bourbon/dist/css3/_font-face.scss","../../../sass/_theme_badge_fa.sass","../../../sass/_theme_badge.sass","../../../bower_components/wyrm/sass/wyrm_core/_wy_variables.sass","../../../sass/_theme_variables.sass","../../../bower_components/neat/app/assets/stylesheets/grid/_media.scss"],
+"names": [],
+"file": "badge_only.css"
+}
diff --git a/doc/rtd_theme/static/css/theme.css b/doc/rtd_theme/static/css/theme.css
new file mode 100644
index 0000000..a2d7c0f
--- /dev/null
+++ b/doc/rtd_theme/static/css/theme.css
@@ -0,0 +1,5 @@
+*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}[hidden]{display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:hover,a:active{outline:0}abbr [...]
+ *  Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.2.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa,.wy-menu-vertical li span.toctree-expand,.wy-menu-vertical l [...]
+/*# sourceMappingURL=theme.css.map */
diff --git a/doc/rtd_theme/static/css/theme.css.map b/doc/rtd_theme/static/css/theme.css.map
new file mode 100644
index 0000000..96cc9d2
--- /dev/null
+++ b/doc/rtd_theme/static/css/theme.css.map
@@ -0,0 +1,7 @@
+{
+"version": 3,
+"mappings": "CACE,AAAE,ECQI,iBAAoB,EDPJ,SAAU,ECY1B,cAAiB,EDZD,SAAU,EC2B1B,SAAY,ED3BI,SAAU,EEFlC,uEAAiF,EAC/E,MAAO,EAAE,IAAK,EAEhB,iBAAoB,EAClB,MAAO,EAAE,WAAY,EACrB,OAAQ,EAAE,KAAM,EAChB,IAAK,EAAE,AAAC,EAEV,oBAAqB,EACnB,MAAO,EAAE,GAAI,EAEf,OAAQ,EACN,MAAO,EAAE,GAAI,EAEf,AAAC,EDLO,iBAAoB,ECMd,SAAU,EDDhB,cAAiB,ECCX,SAAU,EDchB,SAAY,ECdN,SAAU,EAExB,GAAI,EACF,QAAS,EAAE,GAAI,EACf,uBAAwB,EAAE,GAAI,EAC9B,mBAAoB,EAAE,GAAI,EAE5B,GAAI,EACF,KAAM,EAAE,AAAC,EAEX,eAAiB,EACf,MAAO,EAAE,AAAC,EAEZ,UAAW,EACT,Y [...]
+"sources": ["../../../bower_components/neat/app/assets/stylesheets/grid/_grid.scss","../../../bower_components/bourbon/dist/addons/_prefixer.scss","../../../bower_components/wyrm/sass/wyrm_core/_reset.sass","../../../bower_components/wyrm/sass/wyrm_core/_mixin.sass","../../../bower_components/font-awesome/scss/_path.scss","../../../bower_components/font-awesome/scss/_core.scss","../../../bower_components/font-awesome/scss/_larger.scss","../../../bower_components/font-awesome/scss/_fixed- [...]
+"names": [],
+"file": "theme.css"
+}
diff --git a/doc/rtd_theme/static/fonts/FontAwesome.otf b/doc/rtd_theme/static/fonts/FontAwesome.otf
new file mode 100644
index 0000000..81c9ad9
Binary files /dev/null and b/doc/rtd_theme/static/fonts/FontAwesome.otf differ
diff --git a/doc/rtd_theme/static/fonts/Inconsolata-Bold.ttf b/doc/rtd_theme/static/fonts/Inconsolata-Bold.ttf
new file mode 100644
index 0000000..58c9fef
Binary files /dev/null and b/doc/rtd_theme/static/fonts/Inconsolata-Bold.ttf differ
diff --git a/doc/rtd_theme/static/fonts/Inconsolata-Regular.ttf b/doc/rtd_theme/static/fonts/Inconsolata-Regular.ttf
new file mode 100644
index 0000000..a87ffba
Binary files /dev/null and b/doc/rtd_theme/static/fonts/Inconsolata-Regular.ttf differ
diff --git a/doc/rtd_theme/static/fonts/Lato-Bold.ttf b/doc/rtd_theme/static/fonts/Lato-Bold.ttf
new file mode 100644
index 0000000..7434369
Binary files /dev/null and b/doc/rtd_theme/static/fonts/Lato-Bold.ttf differ
diff --git a/doc/rtd_theme/static/fonts/Lato-Regular.ttf b/doc/rtd_theme/static/fonts/Lato-Regular.ttf
new file mode 100644
index 0000000..04ea8ef
Binary files /dev/null and b/doc/rtd_theme/static/fonts/Lato-Regular.ttf differ
diff --git a/doc/rtd_theme/static/fonts/RobotoSlab-Bold.ttf b/doc/rtd_theme/static/fonts/RobotoSlab-Bold.ttf
new file mode 100644
index 0000000..df5d1df
Binary files /dev/null and b/doc/rtd_theme/static/fonts/RobotoSlab-Bold.ttf differ
diff --git a/doc/rtd_theme/static/fonts/RobotoSlab-Regular.ttf b/doc/rtd_theme/static/fonts/RobotoSlab-Regular.ttf
new file mode 100644
index 0000000..eb52a79
Binary files /dev/null and b/doc/rtd_theme/static/fonts/RobotoSlab-Regular.ttf differ
diff --git a/doc/rtd_theme/static/fonts/fontawesome-webfont.eot b/doc/rtd_theme/static/fonts/fontawesome-webfont.eot
new file mode 100644
index 0000000..84677bc
Binary files /dev/null and b/doc/rtd_theme/static/fonts/fontawesome-webfont.eot differ
diff --git a/doc/rtd_theme/static/fonts/fontawesome-webfont.svg b/doc/rtd_theme/static/fonts/fontawesome-webfont.svg
new file mode 100644
index 0000000..d907b25
--- /dev/null
+++ b/doc/rtd_theme/static/fonts/fontawesome-webfont.svg
@@ -0,0 +1,520 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="fontawesomeregular" horiz-adv-x="1536" >
+<font-face units-per-em="1792" ascent="1536" descent="-256" />
+<missing-glyph horiz-adv-x="448" />
+<glyph unicode=" "  horiz-adv-x="448" />
+<glyph unicode="&#x09;" horiz-adv-x="448" />
+<glyph unicode="&#xa0;" horiz-adv-x="448" />
+<glyph unicode="&#xa8;" horiz-adv-x="1792" />
+<glyph unicode="&#xa9;" horiz-adv-x="1792" />
+<glyph unicode="&#xae;" horiz-adv-x="1792" />
+<glyph unicode="&#xb4;" horiz-adv-x="1792" />
+<glyph unicode="&#xc6;" horiz-adv-x="1792" />
+<glyph unicode="&#xd8;" horiz-adv-x="1792" />
+<glyph unicode="&#x2000;" horiz-adv-x="768" />
+<glyph unicode="&#x2001;" horiz-adv-x="1537" />
+<glyph unicode="&#x2002;" horiz-adv-x="768" />
+<glyph unicode="&#x2003;" horiz-adv-x="1537" />
+<glyph unicode="&#x2004;" horiz-adv-x="512" />
+<glyph unicode="&#x2005;" horiz-adv-x="384" />
+<glyph unicode="&#x2006;" horiz-adv-x="256" />
+<glyph unicode="&#x2007;" horiz-adv-x="256" />
+<glyph unicode="&#x2008;" horiz-adv-x="192" />
+<glyph unicode="&#x2009;" horiz-adv-x="307" />
+<glyph unicode="&#x200a;" horiz-adv-x="85" />
+<glyph unicode="&#x202f;" horiz-adv-x="307" />
+<glyph unicode="&#x205f;" horiz-adv-x="384" />
+<glyph unicode="&#x2122;" horiz-adv-x="1792" />
+<glyph unicode="&#x221e;" horiz-adv-x="1792" />
+<glyph unicode="&#x2260;" horiz-adv-x="1792" />
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#xf000;" horiz-adv-x="1792" d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
+<glyph unicode="&#xf001;" d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf002;" horiz-adv-x="1664" d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+<glyph unicode="&#xf003;" horiz-adv-x="1792" d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 [...]
+<glyph unicode="&#xf004;" horiz-adv-x="1792" d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z" />
+<glyph unicode="&#xf005;" horiz-adv-x="1664" d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z" />
+<glyph unicode="&#xf006;" horiz-adv-x="1664" d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
+<glyph unicode="&#xf007;" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
+<glyph unicode="&#xf008;" horiz-adv-x="1920" d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 [...]
+<glyph unicode="&#xf009;" horiz-adv-x="1664" d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf00a;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40  [...]
+<glyph unicode="&#xf00b;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40  [...]
+<glyph unicode="&#xf00c;" horiz-adv-x="1792" d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
+<glyph unicode="&#xf00d;" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
+<glyph unicode="&#xf00e;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343  [...]
+<glyph unicode="&#xf010;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150  [...]
+<glyph unicode="&#xf011;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0  [...]
+<glyph unicode="&#xf012;" horiz-adv-x="1792" d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t [...]
+<glyph unicode="&#xf013;" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5 [...]
+<glyph unicode="&#xf014;" horiz-adv-x="1408" d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q [...]
+<glyph unicode="&#xf015;" horiz-adv-x="1664" d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
+<glyph unicode="&#xf016;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z " />
+<glyph unicode="&#xf017;" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf018;" horiz-adv-x="1920" d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t2 [...]
+<glyph unicode="&#xf019;" horiz-adv-x="1664" d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q4 [...]
+<glyph unicode="&#xf01a;" d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf01b;" d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf01c;" d="M1023 576h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8t-2.5 -8h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 q25 -61 25 -123z" />
+<glyph unicode="&#xf01d;" d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf01e;" d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9 l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
+<glyph unicode="&#xf021;" d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 2 [...]
+<glyph unicode="&#xf022;" horiz-adv-x="1792" d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5  [...]
+<glyph unicode="&#xf023;" horiz-adv-x="1152" d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf024;" horiz-adv-x="1792" d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -1 [...]
+<glyph unicode="&#xf025;" horiz-adv-x="1664" d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185  [...]
+<glyph unicode="&#xf026;" horiz-adv-x="768" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf027;" horiz-adv-x="1152" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
+<glyph unicode="&#xf028;" horiz-adv-x="1664" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56  [...]
+<glyph unicode="&#xf029;" horiz-adv-x="1408" d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
+<glyph unicode="&#xf02a;" horiz-adv-x="1792" d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
+<glyph unicode="&#xf02b;" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91z" />
+<glyph unicode="&#xf02c;" horiz-adv-x="1920" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l7 [...]
+<glyph unicode="&#xf02d;" horiz-adv-x="1664" d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 [...]
+<glyph unicode="&#xf02e;" horiz-adv-x="1280" d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+<glyph unicode="&#xf02f;" horiz-adv-x="1664" d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
+<glyph unicode="&#xf030;" horiz-adv-x="1920" d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf031;" horiz-adv-x="1664" d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57 q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-4 [...]
+<glyph unicode="&#xf032;" horiz-adv-x="1408" d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142 q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v [...]
+<glyph unicode="&#xf033;" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q- [...]
+<glyph unicode="&#xf034;" horiz-adv-x="1792" d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2 t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q [...]
+<glyph unicode="&#xf035;" d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1 t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 [...]
+<glyph unicode="&#xf036;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf037;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf038;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf039;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf03a;" horiz-adv-x="1792" d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 - [...]
+<glyph unicode="&#xf03b;" horiz-adv-x="1792" d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22 [...]
+<glyph unicode="&#xf03c;" horiz-adv-x="1792" d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q- [...]
+<glyph unicode="&#xf03d;" horiz-adv-x="1792" d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 q39 -17 39 -59z" />
+<glyph unicode="&#xf03e;" horiz-adv-x="1920" d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf040;" d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 q53 0 91 -38l235 -234q37 -39 37 -91z" />
+<glyph unicode="&#xf041;" horiz-adv-x="1024" d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
+<glyph unicode="&#xf042;" d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf043;" horiz-adv-x="1024" d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
+<glyph unicode="&#xf044;" horiz-adv-x="1792" d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 12 [...]
+<glyph unicode="&#xf045;" horiz-adv-x="1664" d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34 [...]
+<glyph unicode="&#xf046;" horiz-adv-x="1664" d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263  [...]
+<glyph unicode="&#xf047;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256  [...]
+<glyph unicode="&#xf048;" horiz-adv-x="1024" d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19z" />
+<glyph unicode="&#xf049;" horiz-adv-x="1792" d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710 q19 19 32 13t13 -32v-710q4 11 13 19z" />
+<glyph unicode="&#xf04a;" horiz-adv-x="1664" d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19z" />
+<glyph unicode="&#xf04b;" horiz-adv-x="1408" d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
+<glyph unicode="&#xf04c;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf04d;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf04e;" horiz-adv-x="1664" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
+<glyph unicode="&#xf050;" horiz-adv-x="1792" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710 q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
+<glyph unicode="&#xf051;" horiz-adv-x="1024" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19z" />
+<glyph unicode="&#xf052;" horiz-adv-x="1538" d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
+<glyph unicode="&#xf053;" horiz-adv-x="1280" d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" />
+<glyph unicode="&#xf054;" horiz-adv-x="1280" d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" />
+<glyph unicode="&#xf055;" d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf056;" d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
+<glyph unicode="&#xf057;" d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 - [...]
+<glyph unicode="&#xf058;" d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf059;" d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-38 [...]
+<glyph unicode="&#xf05a;" d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05b;" d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h [...]
+<glyph unicode="&#xf05c;" d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385. [...]
+<glyph unicode="&#xf05d;" d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05e;" d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
+<glyph unicode="&#xf060;" d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 t32.5 -90.5z" />
+<glyph unicode="&#xf061;" d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
+<glyph unicode="&#xf062;" horiz-adv-x="1664" d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 q37 -39 37 -91z" />
+<glyph unicode="&#xf063;" horiz-adv-x="1664" d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
+<glyph unicode="&#xf064;" horiz-adv-x="1792" d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
+<glyph unicode="&#xf065;" d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf066;" d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
+<glyph unicode="&#xf067;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf068;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf069;" horiz-adv-x="1664" d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
+<glyph unicode="&#xf06a;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
+<glyph unicode="&#xf06b;" d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 [...]
+<glyph unicode="&#xf06c;" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 3 [...]
+<glyph unicode="&#xf06d;" horiz-adv-x="1408" d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150. [...]
+<glyph unicode="&#xf06e;" horiz-adv-x="1792" d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 [...]
+<glyph unicode="&#xf070;" horiz-adv-x="1792" d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 [...]
+<glyph unicode="&#xf071;" horiz-adv-x="1792" d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
+<glyph unicode="&#xf072;" horiz-adv-x="1408" d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
+<glyph unicode="&#xf073;" horiz-adv-x="1664" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h28 [...]
+<glyph unicode="&#xf074;" horiz-adv-x="1792" d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -1 [...]
+<glyph unicode="&#xf075;" horiz-adv-x="1792" d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
+<glyph unicode="&#xf076;" d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 [...]
+<glyph unicode="&#xf077;" horiz-adv-x="1792" d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" />
+<glyph unicode="&#xf078;" horiz-adv-x="1792" d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" />
+<glyph unicode="&#xf079;" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5  [...]
+<glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5 l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h [...]
+<glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf07d;" horiz-adv-x="768" d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="&#xf080;" horiz-adv-x="2048" d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" />
+<glyph unicode="&#xf081;" d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t [...]
+<glyph unicode="&#xf082;" d="M1536 160q0 -119 -84.5 -203.5t-203.5 -84.5h-192v608h203l30 224h-233v143q0 54 28 83t96 29l132 1v207q-96 9 -180 9q-136 0 -218 -80.5t-82 -225.5v-166h-224v-224h224v-608h-544q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 q119 0 203.5 -84.5t84.5 -203.5v-960z" />
+<glyph unicode="&#xf083;" horiz-adv-x="1792" d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 - [...]
+<glyph unicode="&#xf084;" horiz-adv-x="1792" d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189  [...]
+<glyph unicode="&#xf085;" horiz-adv-x="1920" d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11  [...]
+<glyph unicode="&#xf086;" horiz-adv-x="1792" d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 [...]
+<glyph unicode="&#xf087;" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 4 [...]
+<glyph unicode="&#xf088;" d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h [...]
+<glyph unicode="&#xf089;" horiz-adv-x="896" d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
+<glyph unicode="&#xf08a;" horiz-adv-x="1792" d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -6 [...]
+<glyph unicode="&#xf08b;" horiz-adv-x="1664" d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t4 [...]
+<glyph unicode="&#xf08c;" d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf08d;" horiz-adv-x="1152" d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
+<glyph unicode="&#xf08e;" horiz-adv-x="1792" d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q2 [...]
+<glyph unicode="&#xf090;" d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -2 [...]
+<glyph unicode="&#xf091;" horiz-adv-x="1664" d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 4 [...]
+<glyph unicode="&#xf092;" d="M394 184q-8 -9 -20 3q-13 11 -4 19q8 9 20 -3q12 -11 4 -19zM352 245q9 -12 0 -19q-8 -6 -17 7t0 18q9 7 17 -6zM291 305q-5 -7 -13 -2q-10 5 -7 12q3 5 13 2q10 -5 7 -12zM322 271q-6 -7 -16 3q-9 11 -2 16q6 6 16 -3q9 -11 2 -16zM451 159q-4 -12 -19 -6q-17 4 -13 15 t19 7q16 -5 13 -16zM514 154q0 -11 -16 -11q-17 -2 -17 11q0 11 16 11q17 2 17 -11zM572 164q2 -10 -14 -14t-18 8t14 15q16 2 18 -9zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 [...]
+<glyph unicode="&#xf093;" horiz-adv-x="1664" d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 [...]
+<glyph unicode="&#xf094;" d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t- [...]
+<glyph unicode="&#xf095;" horiz-adv-x="1408" d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5 q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5  [...]
+<glyph unicode="&#xf096;" horiz-adv-x="1408" d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf097;" horiz-adv-x="1280" d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+<glyph unicode="&#xf098;" d="M1280 343q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5 t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216. [...]
+<glyph unicode="&#xf099;" horiz-adv-x="1664" d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
+<glyph unicode="&#xf09a;" horiz-adv-x="1024" d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" />
+<glyph unicode="&#xf09b;" d="M1536 640q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5 q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 - [...]
+<glyph unicode="&#xf09c;" horiz-adv-x="1664" d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 t316.5 -131.5t131.5 -316.5z" />
+<glyph unicode="&#xf09d;" horiz-adv-x="1920" d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
+<glyph unicode="&#xf09e;" horiz-adv-x="1408" d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5 [...]
+<glyph unicode="&#xf0a0;" d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q- [...]
+<glyph unicode="&#xf0a1;" horiz-adv-x="1792" d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
+<glyph unicode="&#xf0a2;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 4 [...]
+<glyph unicode="&#xf0a3;" d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 [...]
+<glyph unicode="&#xf0a4;" horiz-adv-x="1792" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-1 [...]
+<glyph unicode="&#xf0a5;" horiz-adv-x="1792" d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576 q-50 0 -89 -38.5t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32z [...]
+<glyph unicode="&#xf0a6;" d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 - [...]
+<glyph unicode="&#xf0a7;" d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -4 [...]
+<glyph unicode="&#xf0a8;" d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0a9;" d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0aa;" d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0ab;" d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0ac;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5 [...]
+<glyph unicode="&#xf0ad;" horiz-adv-x="1664" d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
+<glyph unicode="&#xf0ae;" horiz-adv-x="1792" d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0b0;" horiz-adv-x="1408" d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
+<glyph unicode="&#xf0b1;" horiz-adv-x="1792" d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf0b2;" d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0  [...]
+<glyph unicode="&#xf0c0;" horiz-adv-x="1920" d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -7 [...]
+<glyph unicode="&#xf0c1;" horiz-adv-x="1664" d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3. [...]
+<glyph unicode="&#xf0c2;" horiz-adv-x="1920" d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z " />
+<glyph unicode="&#xf0c3;" horiz-adv-x="1664" d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
+<glyph unicode="&#xf0c4;" horiz-adv-x="1792" d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 [...]
+<glyph unicode="&#xf0c5;" horiz-adv-x="1792" d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
+<glyph unicode="&#xf0c6;" horiz-adv-x="1408" d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0  [...]
+<glyph unicode="&#xf0c7;" d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 [...]
+<glyph unicode="&#xf0c8;" d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf0c9;" d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22. [...]
+<glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t- [...]
+<glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 97 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -3 [...]
+<glyph unicode="&#xf0cd;" d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -1 [...]
+<glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -2 [...]
+<glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
+<glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5  [...]
+<glyph unicode="&#xf0d2;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11 [...]
+<glyph unicode="&#xf0d3;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 - [...]
+<glyph unicode="&#xf0d4;" d="M829 318q0 -76 -58.5 -112.5t-139.5 -36.5q-41 0 -80.5 9.5t-75.5 28.5t-58 53t-22 78q0 46 25 80t65.5 51.5t82 25t84.5 7.5q20 0 31 -2q2 -1 23 -16.5t26 -19t23 -18t24.5 -22t19 -22.5t17 -26t9 -26.5t4.5 -31.5zM755 863q0 -60 -33 -99.5t-92 -39.5q-53 0 -93 42.5 t-57.5 96.5t-17.5 106q0 61 32 104t92 43q53 0 93.5 -45t58 -101t17.5 -107zM861 1120l88 64h-265q-85 0 -161 -32t-127.5 -98t-51.5 -153q0 -93 64.5 -154.5t158.5 -61.5q22 0 43 3q-13 -29 -13 -54q0 -44 40 -94q-175 -12 -257  [...]
+<glyph unicode="&#xf0d5;" horiz-adv-x="1664" d="M735 740q0 -36 32 -70.5t77.5 -68t90.5 -73.5t77 -104t32 -142q0 -90 -48 -173q-72 -122 -211 -179.5t-298 -57.5q-132 0 -246.5 41.5t-171.5 137.5q-37 60 -37 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 42 -47.5 74t-15.5 73q0 36 21 85q-46 -4 -68 -4 q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q77 66 182.5 98t217.5 32h418l-138 -88h-131q74 -63 112 -133t38 -160q0 -72 -24.5 -129.5t-59 -93t-69.5 -65t-59.5 -61.5t-24.5 -66zM589 836q38 0 78 16.5t66 [...]
+<glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45  [...]
+<glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf0da;" horiz-adv-x="640" d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t11 [...]
+<glyph unicode="&#xf0e1;" d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
+<glyph unicode="&#xf0e2;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 - [...]
+<glyph unicode="&#xf0e3;" horiz-adv-x="1792" d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 - [...]
+<glyph unicode="&#xf0e4;" horiz-adv-x="1792" d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37 [...]
+<glyph unicode="&#xf0e5;" horiz-adv-x="1792" d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26  [...]
+<glyph unicode="&#xf0e6;" horiz-adv-x="1792" d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q [...]
+<glyph unicode="&#xf0e7;" horiz-adv-x="896" d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
+<glyph unicode="&#xf0e8;" horiz-adv-x="1792" d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h [...]
+<glyph unicode="&#xf0e9;" horiz-adv-x="1664" d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 2 [...]
+<glyph unicode="&#xf0ea;" horiz-adv-x="1792" d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
+<glyph unicode="&#xf0eb;" horiz-adv-x="1024" d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q [...]
+<glyph unicode="&#xf0ec;" horiz-adv-x="1792" d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+<glyph unicode="&#xf0ed;" horiz-adv-x="1920" d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+<glyph unicode="&#xf0ee;" horiz-adv-x="1920" d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+<glyph unicode="&#xf0f0;" horiz-adv-x="1408" d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 [...]
+<glyph unicode="&#xf0f1;" horiz-adv-x="1408" d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 - [...]
+<glyph unicode="&#xf0f2;" horiz-adv-x="1792" d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 t66 -158z" />
+<glyph unicode="&#xf0f3;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5 t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
+<glyph unicode="&#xf0f4;" horiz-adv-x="1920" d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
+<glyph unicode="&#xf0f5;" horiz-adv-x="1408" d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t1 [...]
+<glyph unicode="&#xf0f6;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 [...]
+<glyph unicode="&#xf0f7;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22 [...]
+<glyph unicode="&#xf0f8;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22 [...]
+<glyph unicode="&#xf0f9;" horiz-adv-x="1920" d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23  [...]
+<glyph unicode="&#xf0fa;" horiz-adv-x="1792" d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 15 [...]
+<glyph unicode="&#xf0fb;" horiz-adv-x="1920" d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93z" />
+<glyph unicode="&#xf0fc;" horiz-adv-x="1664" d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
+<glyph unicode="&#xf0fd;" d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf0fe;" d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf100;" horiz-adv-x="1024" d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
+<glyph unicode="&#xf101;" horiz-adv-x="1024" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf102;" horiz-adv-x="1152" d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf103;" horiz-adv-x="1152" d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+<glyph unicode="&#xf104;" horiz-adv-x="640" d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+<glyph unicode="&#xf105;" horiz-adv-x="640" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf106;" horiz-adv-x="1152" d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf107;" horiz-adv-x="1152" d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+<glyph unicode="&#xf108;" horiz-adv-x="1920" d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf109;" horiz-adv-x="1920" d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
+<glyph unicode="&#xf10a;" horiz-adv-x="1152" d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf10b;" horiz-adv-x="768" d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf10c;" d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75  [...]
+<glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 [...]
+<glyph unicode="&#xf110;" horiz-adv-x="1568" d="M496 192q0 -60 -42.5 -102t-101.5 -42q-60 0 -102 42t-42 102t42 102t102 42q59 0 101.5 -42t42.5 -102zM928 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -66 -47 -113t-113 -47t-113 47t-47 113 t47 113t113 47t113 -47t47 -113zM1360 192q0 -46 -33 -79t-79 -33t-79 33t-33 79t33 79t79 33t79 -33t33 -79zM528 1088q0 -73 -51.5 -124.5t-124.5 -51.5t-124.5 51.5t-51.5 124.5t51.5 124.5t124.5 51.5t124.5 [...]
+<glyph unicode="&#xf111;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf112;" horiz-adv-x="1792" d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
+<glyph unicode="&#xf113;" horiz-adv-x="1664" d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM16 [...]
+<glyph unicode="&#xf114;" horiz-adv-x="1664" d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf115;" horiz-adv-x="1920" d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 [...]
+<glyph unicode="&#xf116;" horiz-adv-x="1792" />
+<glyph unicode="&#xf117;" horiz-adv-x="1792" />
+<glyph unicode="&#xf118;" d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-2 [...]
+<glyph unicode="&#xf119;" d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248 [...]
+<glyph unicode="&#xf11a;" d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136. [...]
+<glyph unicode="&#xf11b;" horiz-adv-x="1920" d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -1 [...]
+<glyph unicode="&#xf11c;" horiz-adv-x="1920" d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16z [...]
+<glyph unicode="&#xf11d;" horiz-adv-x="1792" d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -9 [...]
+<glyph unicode="&#xf11e;" horiz-adv-x="1792" d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q [...]
+<glyph unicode="&#xf120;" horiz-adv-x="1664" d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 t9 -23z" />
+<glyph unicode="&#xf121;" horiz-adv-x="1920" d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10 [...]
+<glyph unicode="&#xf122;" horiz-adv-x="1792" d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 - [...]
+<glyph unicode="&#xf123;" horiz-adv-x="1664" d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
+<glyph unicode="&#xf124;" horiz-adv-x="1408" d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
+<glyph unicode="&#xf125;" horiz-adv-x="1664" d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf126;" horiz-adv-x="1024" d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 13 [...]
+<glyph unicode="&#xf127;" horiz-adv-x="1664" d="M439 265l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239 [...]
+<glyph unicode="&#xf128;" horiz-adv-x="1024" d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 [...]
+<glyph unicode="&#xf129;" horiz-adv-x="640" d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf12a;" horiz-adv-x="640" d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
+<glyph unicode="&#xf12b;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1534 846v-206h-514l-3 27 q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t- [...]
+<glyph unicode="&#xf12c;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1536 -50v-206h-514l-4 27 q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t- [...]
+<glyph unicode="&#xf12d;" horiz-adv-x="1920" d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
+<glyph unicode="&#xf12e;" horiz-adv-x="1664" d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t [...]
+<glyph unicode="&#xf130;" horiz-adv-x="1152" d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
+<glyph unicode="&#xf131;" horiz-adv-x="1408" d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 [...]
+<glyph unicode="&#xf132;" horiz-adv-x="1280" d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf133;" horiz-adv-x="1664" d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf134;" horiz-adv-x="1408" d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-2 [...]
+<glyph unicode="&#xf135;" horiz-adv-x="1664" d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
+<glyph unicode="&#xf136;" horiz-adv-x="1792" d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" />
+<glyph unicode="&#xf137;" d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf138;" d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf139;" d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf13a;" d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf13b;" horiz-adv-x="1408" d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
+<glyph unicode="&#xf13c;" horiz-adv-x="1792" d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
+<glyph unicode="&#xf13d;" horiz-adv-x="1792" d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 [...]
+<glyph unicode="&#xf13e;" horiz-adv-x="1152" d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 v-320h736z" />
+<glyph unicode="&#xf140;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 2 [...]
+<glyph unicode="&#xf141;" horiz-adv-x="1408" d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf142;" horiz-adv-x="384" d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf143;" d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10 t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23z [...]
+<glyph unicode="&#xf144;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 q16 -8 32 -8q17 0 32 9z" />
+<glyph unicode="&#xf145;" horiz-adv-x="1792" d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
+<glyph unicode="&#xf146;" d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
+<glyph unicode="&#xf147;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf148;" horiz-adv-x="1024" d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
+<glyph unicode="&#xf149;" horiz-adv-x="1024" d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
+<glyph unicode="&#xf14a;" d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14b;" d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14c;" d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14d;" d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14e;" d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf150;" d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf151;" d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf152;" d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf153;" horiz-adv-x="1024" d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126  [...]
+<glyph unicode="&#xf154;" horiz-adv-x="1024" d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
+<glyph unicode="&#xf155;" horiz-adv-x="1024" d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5  [...]
+<glyph unicode="&#xf156;" horiz-adv-x="898" d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf157;" horiz-adv-x="1027" d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q [...]
+<glyph unicode="&#xf158;" horiz-adv-x="1280" d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" />
+<glyph unicode="&#xf159;" horiz-adv-x="1792" d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-1 [...]
+<glyph unicode="&#xf15a;" horiz-adv-x="1280" d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0 [...]
+<glyph unicode="&#xf15b;" d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" />
+<glyph unicode="&#xf15c;" d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" />
+<glyph unicode="&#xf15d;" horiz-adv-x="1664" d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l- [...]
+<glyph unicode="&#xf15e;" horiz-adv-x="1664" d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567 [...]
+<glyph unicode="&#xf160;" horiz-adv-x="1792" d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14  [...]
+<glyph unicode="&#xf161;" horiz-adv-x="1792" d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14  [...]
+<glyph unicode="&#xf162;" d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 [...]
+<glyph unicode="&#xf163;" d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -4 [...]
+<glyph unicode="&#xf164;" horiz-adv-x="1664" d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24  [...]
+<glyph unicode="&#xf165;" horiz-adv-x="1664" d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 [...]
+<glyph unicode="&#xf166;" d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86 [...]
+<glyph unicode="&#xf167;" d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39  [...]
+<glyph unicode="&#xf168;" horiz-adv-x="1408" d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 q25 45 64 45h241q22 0 31 -15z" />
+<glyph unicode="&#xf169;" d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M1280 640q0 37 -30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54zM1792 640q0 -96 -1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58t-69.5 123 q-14 65 -21.5 147.5t-8.5 136.5t-1 150t1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150z" />
+<glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
+<glyph unicode="&#xf16c;" horiz-adv-x="1408" d="M928 135v-151l-707 -1v151zM1169 481v-701l-1 -35v-1h-1132l-35 1h-1v736h121v-618h928v618h120zM241 393l704 -65l-13 -150l-705 65zM309 709l683 -183l-39 -146l-683 183zM472 1058l609 -360l-77 -130l-609 360zM832 1389l398 -585l-124 -85l-399 584zM1285 1536 l121 -697l-149 -26l-121 697z" />
+<glyph unicode="&#xf16d;" d="M1362 110v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5zM1078 643q0 124 -90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5 t90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5zM1362 1003v165q0 28 -20 48.5t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165q0 -29 20 -49t49 -20h174q29 0 49 20t20 49zM1536 1211v-1142q0 -81 -58 -139t-139 -58h-11 [...]
+<glyph unicode="&#xf16e;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
+<glyph unicode="&#xf170;" d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf171;" horiz-adv-x="1408" d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q- [...]
+<glyph unicode="&#xf172;" d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 4 [...]
+<glyph unicode="&#xf173;" horiz-adv-x="1024" d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14 q78 2 134 29z" />
+<glyph unicode="&#xf174;" d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf175;" horiz-adv-x="768" d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
+<glyph unicode="&#xf176;" horiz-adv-x="768" d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
+<glyph unicode="&#xf177;" horiz-adv-x="1792" d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf178;" horiz-adv-x="1792" d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
+<glyph unicode="&#xf179;" horiz-adv-x="1408" d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11 [...]
+<glyph unicode="&#xf17a;" horiz-adv-x="1664" d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
+<glyph unicode="&#xf17b;" horiz-adv-x="1408" d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78  [...]
+<glyph unicode="&#xf17c;" d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69 [...]
+<glyph unicode="&#xf17d;" d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q [...]
+<glyph unicode="&#xf17e;" d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 - [...]
+<glyph unicode="&#xf180;" horiz-adv-x="1280" d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 5 [...]
+<glyph unicode="&#xf181;" d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf182;" horiz-adv-x="1280" d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65. [...]
+<glyph unicode="&#xf183;" horiz-adv-x="1024" d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf184;" d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf185;" horiz-adv-x="1792" d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 2 [...]
+<glyph unicode="&#xf186;" d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
+<glyph unicode="&#xf187;" horiz-adv-x="1792" d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf188;" horiz-adv-x="1664" d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 [...]
+<glyph unicode="&#xf189;" horiz-adv-x="1920" d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91 [...]
+<glyph unicode="&#xf18a;" horiz-adv-x="1792" d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 [...]
+<glyph unicode="&#xf18b;" d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" />
+<glyph unicode="&#xf18c;" horiz-adv-x="1408" d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70  [...]
+<glyph unicode="&#xf18d;" horiz-adv-x="1280" d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z " />
+<glyph unicode="&#xf18e;" d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf190;" d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf191;" d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf192;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf193;" horiz-adv-x="1664" d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 16 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455 [...]
+<glyph unicode="&#xf194;" d="M1254 899q16 85 -21 132q-52 65 -187 45q-17 -3 -41 -12.5t-57.5 -30.5t-64.5 -48.5t-59.5 -70t-44.5 -91.5q80 7 113.5 -16t26.5 -99q-5 -52 -52 -143q-43 -78 -71 -99q-44 -32 -87 14q-23 24 -37.5 64.5t-19 73t-10 84t-8.5 71.5q-23 129 -34 164q-12 37 -35.5 69 t-50.5 40q-57 16 -127 -25q-54 -32 -136.5 -106t-122.5 -102v-7q16 -8 25.5 -26t21.5 -20q21 -3 54.5 8.5t58 10.5t41.5 -30q11 -18 18.5 -38.5t15 -48t12.5 -40.5q17 -46 53 -187q36 -146 57 -197q42 -99 103 -125q43 -12 85 -1.5t7 [...]
+<glyph unicode="&#xf195;" horiz-adv-x="1152" d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf196;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 20 [...]
+<glyph unicode="&#xf197;" horiz-adv-x="2176" d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40 t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-2 [...]
+<glyph unicode="&#xf198;" horiz-adv-x="1664" d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9 q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 - [...]
+<glyph unicode="&#xf199;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69 q-46 32 -141.5 92.5t-142.5 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 [...]
+<glyph unicode="&#xf19a;" horiz-adv-x="1792" d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5 t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5 [...]
+<glyph unicode="&#xf19b;" horiz-adv-x="1792" d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" />
+<glyph unicode="&#xf19c;" horiz-adv-x="2048" d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" />
+<glyph unicode="&#xf19d;" horiz-adv-x="2304" d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" />
+<glyph unicode="&#xf19e;" d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" />
+<glyph unicode="&#xf1a0;" horiz-adv-x="1280" d="M981 197q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -49 2q-53 0 -104.5 -7t-107 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -56 23.5 -102t61 -75.5t87 -50t100 -29t101.5 -8.5q58 0 111.5 13t99 39t73 73t27.5 109zM864 1055 q0 59 -17 125.5t-48 129t-84 103.5t-117 41q-42 0 -82.5 -19.5t-66.5 -52.5q-46 -59 -46 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q37 0 77.5 16.5t65.5 43.5q53 56 53 159zM752 1536h417l-137 [...]
+<glyph unicode="&#xf1a1;" horiz-adv-x="1984" d="M831 572q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96q0 57 41.5 98t97.5 41t96.5 -41t40.5 -98zM1292 711q56 0 96.5 -41t40.5 -98q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96q0 57 41.5 98t97.5 41zM1984 722q0 -62 -31 -114t-83 -82q5 -33 5 -61 q0 -121 -68.5 -230.5t-197.5 -193.5q-125 -82 -285.5 -125.5t-335.5 -43.5q-176 0 -336.5 43.5t-284.5 125.5q-129 84 -197.5 193t-68.5 231q0 29 5 66q-48 31 -77 81.5t-29 109.5q0 94 66 160t160 66q83 0 148 -55q248 1 [...]
+<glyph unicode="&#xf1a2;" d="M950 393q7 7 17.5 7t17.5 -7t7 -18t-7 -18q-65 -64 -208 -64h-1h-1q-143 0 -207 64q-8 7 -8 18t8 18q7 7 17.5 7t17.5 -7q49 -51 172 -51h1h1q122 0 173 51zM671 613q0 -37 -26 -64t-63 -27t-63 27t-26 64t26 63t63 26t63 -26t26 -63zM1214 1049q-29 0 -50 21t-21 50 q0 30 21 51t50 21q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21zM1216 1408q132 0 226 -94t94 -227v-894q0 -133 -94 -227t-226 -94h-896q-132 0 -226 94t-94 227v894q0 133 94 227t226 94h896zM1321 596q35 14 57 45.5t22 70.5q0 51  [...]
+<glyph unicode="&#xf1a3;" d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385 [...]
+<glyph unicode="&#xf1a4;" horiz-adv-x="1920" d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" />
+<glyph unicode="&#xf1a5;" d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
+<glyph unicode="&#xf1a6;" horiz-adv-x="2048" d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123 v-369h123z" />
+<glyph unicode="&#xf1a7;" d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101 v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h- [...]
+<glyph unicode="&#xf1a8;" horiz-adv-x="2038" d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14 q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5  [...]
+<glyph unicode="&#xf1a9;" d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10 q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 [...]
+<glyph unicode="&#xf1aa;" d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 1 [...]
+<glyph unicode="&#xf1ab;" d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5 q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q [...]
+<glyph unicode="&#xf1ac;" horiz-adv-x="1792" d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48 l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 - [...]
+<glyph unicode="&#xf1ad;" d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9 t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-6 [...]
+<glyph unicode="&#xf1ae;" horiz-adv-x="1280" d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68t68 28t68 -28l228 -228h368l228 228q28 28 68 28t68 -28t28 -68t-28 -68zM864 1152q0 -93 -65.5 -158.5 t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf1b0;" horiz-adv-x="1664" d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5 q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 [...]
+<glyph unicode="&#xf1b1;" horiz-adv-x="768" d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" />
+<glyph unicode="&#xf1b2;" horiz-adv-x="1792" d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z " />
+<glyph unicode="&#xf1b3;" horiz-adv-x="2304" d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67 t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-5 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l [...]
+<glyph unicode="&#xf1b4;" horiz-adv-x="2048" d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658 q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96 [...]
+<glyph unicode="&#xf1b5;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5 t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 - [...]
+<glyph unicode="&#xf1b6;" horiz-adv-x="1792" d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5 q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -32 [...]
+<glyph unicode="&#xf1b7;" d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5 q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 2 [...]
+<glyph unicode="&#xf1b8;" horiz-adv-x="1792" d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188 l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 6 [...]
+<glyph unicode="&#xf1b9;" horiz-adv-x="2048" d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384 q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94  [...]
+<glyph unicode="&#xf1ba;" horiz-adv-x="2048" d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5 t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 [...]
+<glyph unicode="&#xf1bb;" d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384 q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" />
+<glyph unicode="&#xf1bc;" d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64 q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t [...]
+<glyph unicode="&#xf1bd;" d="M1397 1408q58 0 98.5 -40.5t40.5 -98.5v-1258q0 -58 -40.5 -98.5t-98.5 -40.5h-1258q-58 0 -98.5 40.5t-40.5 98.5v1258q0 58 40.5 98.5t98.5 40.5h1258zM1465 11v1258q0 28 -20 48t-48 20h-1258q-28 0 -48 -20t-20 -48v-1258q0 -28 20 -48t48 -20h1258q28 0 48 20t20 48 zM694 749l188 -387l533 145v-496q0 -7 -5.5 -12.5t-12.5 -5.5h-1258q-7 0 -12.5 5.5t-5.5 12.5v141l711 195l-212 439q4 1 12 2.5t12 1.5q170 32 303.5 21.5t221 -46t143.5 -94.5q27 -28 -25 -42q-64 -16 -256 -62l-97 198q-111 [...]
+<glyph unicode="&#xf1be;" horiz-adv-x="2304" d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11 q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l [...]
+<glyph unicode="&#xf1c0;" d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127 t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280  [...]
+<glyph unicode="&#xf1c1;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t13 [...]
+<glyph unicode="&#xf1c2;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4l-3 21q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 - [...]
+<glyph unicode="&#xf1c3;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q [...]
+<glyph unicode="&#xf1c4;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" />
+<glyph unicode="&#xf1c5;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" />
+<glyph unicode="&#xf1c6;" d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400 v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137. [...]
+<glyph unicode="&#xf1c7;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -1 [...]
+<glyph unicode="&#xf1c8;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" />
+<glyph unicode="&#xf1c9;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6 [...]
+<glyph unicode="&#xf1ca;" d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406 q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 10 [...]
+<glyph unicode="&#xf1cb;" horiz-adv-x="1792" d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546 q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" />
+<glyph unicode="&#xf1cc;" horiz-adv-x="2048" d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94 q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44  [...]
+<glyph unicode="&#xf1cd;" horiz-adv-x="1792" d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-2 [...]
+<glyph unicode="&#xf1ce;" horiz-adv-x="1792" d="M1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348q0 222 101 414.5t276.5 317t390.5 155.5v-260q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 q0 230 -145.5 406t-366.5 221v260q215 -31 390.5 -155.5t276.5 -317t101 -414.5z" />
+<glyph unicode="&#xf1d0;" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115 [...]
+<glyph unicode="&#xf1d1;" horiz-adv-x="1792" d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251 l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241 [...]
+<glyph unicode="&#xf1d2;" d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85 q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387 [...]
+<glyph unicode="&#xf1d3;" horiz-adv-x="1792" d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58 q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 10 [...]
+<glyph unicode="&#xf1d4;" d="M825 547l343 588h-150q-21 -39 -63.5 -118.5t-68 -128.5t-59.5 -118.5t-60 -128.5h-3q-21 48 -44.5 97t-52 105.5t-46.5 92t-54 104.5t-49 95h-150l323 -589v-435h134v436zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf1d5;" horiz-adv-x="1280" d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5 t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186 [...]
+<glyph unicode="&#xf1d6;" horiz-adv-x="1792" d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5 q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 - [...]
+<glyph unicode="&#xf1d7;" horiz-adv-x="2048" d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25 q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -7 [...]
+<glyph unicode="&#xf1d8;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" />
+<glyph unicode="&#xf1d9;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137 l863 639l-478 -797z" />
+<glyph unicode="&#xf1da;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 - [...]
+<glyph unicode="&#xf1db;" d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf1dc;" horiz-adv-x="1792" d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15 t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5 [...]
+<glyph unicode="&#xf1dd;" horiz-adv-x="1280" d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179 q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" />
+<glyph unicode="&#xf1de;" d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256 q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1 [...]
+<glyph unicode="&#xf1e0;" d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5 t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" />
+<glyph unicode="&#xf1e1;" d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5 t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 [...]
+<glyph unicode="&#xf1e2;" horiz-adv-x="1792" d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5 t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q- [...]
+<glyph unicode="&#xf1e3;" horiz-adv-x="1792" d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323 l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l13 [...]
+<glyph unicode="&#xf1e4;" horiz-adv-x="1792" d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t [...]
+<glyph unicode="&#xf1e5;" horiz-adv-x="1792" d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf1e6;" horiz-adv-x="1792" d="M1755 1083q37 -37 37 -90t-37 -91l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234l401 400 q38 37 91 37t90 -37z" />
+<glyph unicode="&#xf1e7;" horiz-adv-x="1792" d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5 t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1 [...]
+<glyph unicode="&#xf1e8;" horiz-adv-x="1792" d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" />
+<glyph unicode="&#xf1e9;" d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36 q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q70 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 [...]
+<glyph unicode="&#xf1ea;" horiz-adv-x="2048" d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19 t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" />
+<glyph unicode="&#xf1eb;" horiz-adv-x="2048" d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121 q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73 [...]
+<glyph unicode="&#xf1ec;" horiz-adv-x="1792" d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90. [...]
+<glyph unicode="&#xf1ed;" horiz-adv-x="1792" d="M1112 1090q0 159 -237 159h-70q-32 0 -59.5 -21.5t-34.5 -52.5l-63 -276q-2 -5 -2 -16q0 -24 17 -39.5t41 -15.5h53q69 0 128.5 13t112.5 41t83.5 81.5t30.5 126.5zM1716 938q0 -265 -220 -428q-219 -161 -612 -161h-61q-32 0 -59 -21.5t-34 -52.5l-73 -316 q-8 -36 -40.5 -61.5t-69.5 -25.5h-213q-31 0 -53 20t-22 51q0 10 13 65h151q34 0 64 23.5t38 56.5l73 316q8 33 37.5 57t63.5 24h61q390 0 607 160t217 421q0 129 -51 207q183 -92 183 -335zM1533 1123q0 -264 -221 -428q [...]
+<glyph unicode="&#xf1ee;" horiz-adv-x="1792" d="M602 949q19 -61 31 -123.5t17 -141.5t-14 -159t-62 -145q-21 81 -67 157t-95.5 127t-99 90.5t-78.5 57.5t-33 19q-62 34 -81.5 100t14.5 128t101 81.5t129 -14.5q138 -83 238 -177zM927 1236q11 -25 20.5 -46t36.5 -100.5t42.5 -150.5t25.5 -179.5t0 -205.5t-47.5 -209.5 t-105.5 -208.5q-51 -72 -138 -72q-54 0 -98 31q-57 40 -69 109t28 127q60 85 81 195t13 199.5t-32 180.5t-39 128t-22 52q-31 63 -8.5 129.5t85.5 97.5q34 17 75 17q47 0 88.5 -25t63.5 -69zM1248 567q-17 - [...]
+<glyph unicode="&#xf1f0;" horiz-adv-x="2304" d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27 q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24 [...]
+<glyph unicode="&#xf1f1;" horiz-adv-x="2304" d="M671 603h-13q-47 0 -47 -32q0 -22 20 -22q17 0 28 15t12 39zM1066 639h62v3q1 4 0.5 6.5t-1 7t-2 8t-4.5 6.5t-7.5 5t-11.5 2q-28 0 -36 -38zM1606 603h-12q-48 0 -48 -32q0 -22 20 -22q17 0 28 15t12 39zM1925 629q0 41 -30 41q-19 0 -31 -20t-12 -51q0 -42 28 -42 q20 0 32.5 20t12.5 52zM480 770h87l-44 -262h-56l32 201l-71 -201h-39l-4 200l-34 -200h-53l44 262h81l2 -163zM733 663q0 -6 -4 -42q-16 -101 -17 -113h-47l1 22q-20 -26 -58 -26q-23 0 -37.5 16t-14.5 42q0 39  [...]
+<glyph unicode="&#xf1f2;" horiz-adv-x="2304" d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42 q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0  [...]
+<glyph unicode="&#xf1f3;" horiz-adv-x="2304" d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1 [...]
+<glyph unicode="&#xf1f4;" horiz-adv-x="2304" d="M322 689h-15q-19 0 -19 18q0 28 19 85q5 15 15 19.5t28 4.5q77 0 77 -49q0 -41 -30.5 -59.5t-74.5 -18.5zM664 528q-47 0 -47 29q0 62 123 62l3 -3q-5 -88 -79 -88zM1438 687h-15q-19 0 -19 19q0 28 19 85q5 15 14.5 19t28.5 4q77 0 77 -49q0 -41 -30.5 -59.5 t-74.5 -18.5zM1780 527q-47 0 -47 30q0 62 123 62l3 -3q-5 -89 -79 -89zM373 894h-128q-8 0 -14.5 -4t-8.5 -7.5t-7 -12.5q-3 -7 -45 -190t-42 -192q0 -7 5.5 -12.5t13.5 -5.5h62q25 0 32.5 34.5l15 69t32.5 34.5q47 0  [...]
+<glyph unicode="&#xf1f5;" horiz-adv-x="2304" d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109 q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 - [...]
+<glyph unicode="&#xf1f6;" horiz-adv-x="2048" d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5 l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68  [...]
+<glyph unicode="&#xf1f7;" horiz-adv-x="2048" d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128 q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7 [...]
+<glyph unicode="&#xf1f8;" horiz-adv-x="1408" d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704 q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v [...]
+<glyph unicode="&#xf1f9;" d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5 t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 - [...]
+<glyph unicode="&#xf1fa;" d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53 q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0  [...]
+<glyph unicode="&#xf1fb;" horiz-adv-x="1792" d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10 t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" />
+<glyph unicode="&#xf1fc;" horiz-adv-x="1792" d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5 t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" />
+<glyph unicode="&#xf1fd;" horiz-adv-x="1792" d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11t55.5 -11t52.5 -38q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5t47 37.5 q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-35 0 -55.5 11t-52.5 38q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-3 [...]
+<glyph unicode="&#xf1fe;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" />
+<glyph unicode="&#xf200;" horiz-adv-x="1792" d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf201;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9 t9 -23z" />
+<glyph unicode="&#xf202;" horiz-adv-x="1792" d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20 q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43. [...]
+<glyph unicode="&#xf203;" d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73 q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t [...]
+<glyph unicode="&#xf204;" horiz-adv-x="2048" d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5 t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -13 [...]
+<glyph unicode="&#xf205;" horiz-adv-x="2048" d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5 t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" />
+<glyph unicode="&#xf206;" horiz-adv-x="2304" d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94 q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 3 [...]
+<glyph unicode="&#xf207;" d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5 h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 - [...]
+<glyph unicode="&#xf208;" horiz-adv-x="2048" d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327 q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5  [...]
+<glyph unicode="&#xf209;" horiz-adv-x="1280" d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q18 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119 t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169  [...]
+<glyph unicode="&#xf20a;" horiz-adv-x="2048" d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206 q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65 [...]
+<glyph unicode="&#xf20b;" d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5 t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf20c;" d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55 q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -8 [...]
+<glyph unicode="&#xf20d;" horiz-adv-x="1792" />
+<glyph unicode="&#xf20e;" horiz-adv-x="1792" />
+<glyph unicode="&#xf500;" horiz-adv-x="1792" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/rtd_theme/static/fonts/fontawesome-webfont.ttf b/doc/rtd_theme/static/fonts/fontawesome-webfont.ttf
new file mode 100644
index 0000000..96a3639
Binary files /dev/null and b/doc/rtd_theme/static/fonts/fontawesome-webfont.ttf differ
diff --git a/doc/rtd_theme/static/fonts/fontawesome-webfont.woff b/doc/rtd_theme/static/fonts/fontawesome-webfont.woff
new file mode 100644
index 0000000..628b6a5
Binary files /dev/null and b/doc/rtd_theme/static/fonts/fontawesome-webfont.woff differ
diff --git a/doc/rtd_theme/static/js/modernizr.min.js b/doc/rtd_theme/static/js/modernizr.min.js
new file mode 100644
index 0000000..f65d479
--- /dev/null
+++ b/doc/rtd_theme/static/js/modernizr.min.js
@@ -0,0 +1,4 @@
+/* Modernizr 2.6.2 (Custom Build) | MIT & BSD
+ * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-t [...]
+ */
+;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split( [...]
diff --git a/doc/rtd_theme/static/js/theme.js b/doc/rtd_theme/static/js/theme.js
new file mode 100644
index 0000000..432dc0c
--- /dev/null
+++ b/doc/rtd_theme/static/js/theme.js
@@ -0,0 +1,156 @@
+require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({"sphinx-rtd-theme":[function(require,mod [...]
+var jQuery = (typeof(window) != 'undefined') ? window.jQuery : require('jquery');
+
+// Sphinx theme nav state
+function ThemeNav () {
+
+    var nav = {
+        navBar: null,
+        win: null,
+        winScroll: false,
+        winResize: false,
+        linkScroll: false,
+        winPosition: 0,
+        winHeight: null,
+        docHeight: null,
+        isRunning: false
+    };
+
+    nav.enable = function () {
+        var self = this;
+
+        if (!self.isRunning) {
+            self.isRunning = true;
+            jQuery(function ($) {
+                self.init($);
+
+                self.reset();
+                self.win.on('hashchange', self.reset);
+
+                // Set scroll monitor
+                self.win.on('scroll', function () {
+                    if (!self.linkScroll) {
+                        self.winScroll = true;
+                    }
+                });
+                setInterval(function () { if (self.winScroll) self.onScroll(); }, 25);
+
+                // Set resize monitor
+                self.win.on('resize', function () {
+                    self.winResize = true;
+                });
+                setInterval(function () { if (self.winResize) self.onResize(); }, 25);
+                self.onResize();
+            });
+        };
+    };
+
+    nav.init = function ($) {
+        var doc = $(document),
+            self = this;
+
+        this.navBar = $('div.wy-side-scroll:first');
+        this.win = $(window);
+
+        // Set up javascript UX bits
+        $(document)
+            // Shift nav in mobile when clicking the menu.
+            .on('click', "[data-toggle='wy-nav-top']", function() {
+                $("[data-toggle='wy-nav-shift']").toggleClass("shift");
+                $("[data-toggle='rst-versions']").toggleClass("shift");
+            })
+
+            // Nav menu link click operations
+            .on('click', ".wy-menu-vertical .current ul li a", function() {
+                var target = $(this);
+                // Close menu when you click a link.
+                $("[data-toggle='wy-nav-shift']").removeClass("shift");
+                $("[data-toggle='rst-versions']").toggleClass("shift");
+                // Handle dynamic display of l3 and l4 nav lists
+                self.toggleCurrent(target);
+                self.hashChange();
+            })
+            .on('click', "[data-toggle='rst-current-version']", function() {
+                $("[data-toggle='rst-versions']").toggleClass("shift-up");
+            })
+
+        // Make tables responsive
+        $("table.docutils:not(.field-list)")
+            .wrap("<div class='wy-table-responsive'></div>");
+
+        // Add expand links to all parents of nested ul
+        $('.wy-menu-vertical ul').not('.simple').siblings('a').each(function () {
+            var link = $(this);
+                expand = $('<span class="toctree-expand"></span>');
+            expand.on('click', function (ev) {
+                self.toggleCurrent(link);
+                ev.stopPropagation();
+                return false;
+            });
+            link.prepend(expand);
+        });
+    };
+
+    nav.reset = function () {
+        // Get anchor from URL and open up nested nav
+        var anchor = encodeURI(window.location.hash);
+        if (anchor) {
+            try {
+                var link = $('.wy-menu-vertical')
+                    .find('[href="' + anchor + '"]');
+                $('.wy-menu-vertical li.toctree-l1 li.current')
+                    .removeClass('current');
+                link.closest('li.toctree-l2').addClass('current');
+                link.closest('li.toctree-l3').addClass('current');
+                link.closest('li.toctree-l4').addClass('current');
+            }
+            catch (err) {
+                console.log("Error expanding nav for anchor", err);
+            }
+        }
+    };
+
+    nav.onScroll = function () {
+        this.winScroll = false;
+        var newWinPosition = this.win.scrollTop(),
+            winBottom = newWinPosition + this.winHeight,
+            navPosition = this.navBar.scrollTop(),
+            newNavPosition = navPosition + (newWinPosition - this.winPosition);
+        if (newWinPosition < 0 || winBottom > this.docHeight) {
+            return;
+        }
+        this.navBar.scrollTop(newNavPosition);
+        this.winPosition = newWinPosition;
+    };
+
+    nav.onResize = function () {
+        this.winResize = false;
+        this.winHeight = this.win.height();
+        this.docHeight = $(document).height();
+    };
+
+    nav.hashChange = function () {
+        this.linkScroll = true;
+        this.win.one('hashchange', function () {
+            this.linkScroll = false;
+        });
+    };
+
+    nav.toggleCurrent = function (elem) {
+        var parent_li = elem.closest('li');
+        parent_li.siblings('li.current').removeClass('current');
+        parent_li.siblings().find('li.current').removeClass('current');
+        parent_li.find('> ul li.current').removeClass('current');
+        parent_li.toggleClass('current');
+    }
+
+    return nav;
+};
+
+module.exports.ThemeNav = ThemeNav();
+
+if (typeof(window) != 'undefined') {
+    window.SphinxRtdTheme = { StickyNav: module.exports.ThemeNav };
+}
+
+},{"jquery":"jquery"}]},{},["sphinx-rtd-theme"]);
diff --git a/doc/rtd_theme/theme.conf b/doc/rtd_theme/theme.conf
new file mode 100644
index 0000000..3896d4d
--- /dev/null
+++ b/doc/rtd_theme/theme.conf
@@ -0,0 +1,11 @@
+[theme]
+inherit = basic
+stylesheet = css/theme.css
+
+[options]
+typekit_id = hiw1hhg
+analytics_id = 
+sticky_navigation = False
+logo_only =
+collapse_navigation = False
+display_version = True
diff --git a/doc/rtd_theme/versions.html b/doc/rtd_theme/versions.html
new file mode 100644
index 0000000..8b3eb79
--- /dev/null
+++ b/doc/rtd_theme/versions.html
@@ -0,0 +1,37 @@
+{% if READTHEDOCS %}
+{# Add rst-badge after rst-versions for small badge style. #}
+  <div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions">
+    <span class="rst-current-version" data-toggle="rst-current-version">
+      <span class="fa fa-book"> Read the Docs</span>
+      v: {{ current_version }}
+      <span class="fa fa-caret-down"></span>
+    </span>
+    <div class="rst-other-versions">
+      <dl>
+        <dt>Versions</dt>
+        {% for slug, url in versions %}
+          <dd><a href="{{ url }}">{{ slug }}</a></dd>
+        {% endfor %}
+      </dl>
+      <dl>
+        <dt>Downloads</dt>
+        {% for type, url in downloads %}
+          <dd><a href="{{ url }}">{{ type }}</a></dd>
+        {% endfor %}
+      </dl>
+      <dl>
+        <dt>On Read the Docs</dt>
+          <dd>
+            <a href="//{{ PRODUCTION_DOMAIN }}/projects/{{ slug }}/?fromdocs={{ slug }}">Project Home</a>
+          </dd>
+          <dd>
+            <a href="//{{ PRODUCTION_DOMAIN }}/builds/{{ slug }}/?fromdocs={{ slug }}">Builds</a>
+          </dd>
+      </dl>
+      <hr/>
+      Free document hosting provided by <a href="http://www.readthedocs.org">Read the Docs</a>.
+
+    </div>
+  </div>
+{% endif %}
+
diff --git a/doc/stages/filters.approximatecoplanar.rst b/doc/stages/filters.approximatecoplanar.rst
new file mode 100644
index 0000000..c16bd1d
--- /dev/null
+++ b/doc/stages/filters.approximatecoplanar.rst
@@ -0,0 +1,63 @@
+.. _filters.approximatecoplanar:
+
+filters.approximatecoplanar
+===============================================================================
+
+``filters.approximatecoplanar`` filter estimates the planarity of a neighborhood
+of points by first computing eigenvalues for the points and then tagging those
+points for which the following is true:
+
+.. math::
+  
+  \lambda_1 > (thresh_1 * \lambda_0) \text{ && } (\lambda_1 * thresh_2) > \lambda2
+  
+where :math:`\lambda_0`, :math:`\lambda_1`, :math:`\lambda_2` are the
+eigenvalues in ascending order. The threshold values :math:`thresh_1` and
+:math:`thresh_2` are user-defined and default to 25 and 6 respectively.
+
+The filter returns a point cloud with a new dimension  ``Coplanar`` that 
+indicates those points that are part of a neighborhood that is approximately
+coplanar (1) or not (0).
+
+Eigenvalue estimation is performed using Eigen's ``SelfAdjointEigenSolver``. For
+more information see
+https://eigen.tuxfamily.org/dox/classEigen_1_1SelfAdjointEigenSolver.html.
+
+Example
+-------
+
+The sample pipeline presented below estimates the planarity of a point based on
+its eight nearest neighbors using the ``filters.approximatecoplanar`` filter. A
+``filters.range`` stage then filters out any points that were not deemed to be
+coplanar before writing the result in compressed LAZ.
+
+.. code-block:: json
+
+    {
+      "pipeline":[
+        "input.las",
+        {
+          "type":"filters.approximatecoplanar",
+          "knn":8,
+          "thresh1":25,
+          "thresh2":6
+        },
+        {
+          "type":"filters.range",
+          "limits":"Coplanar[1:1]"
+        },
+        "output.laz"
+      ]
+    }
+
+Options
+-------------------------------------------------------------------------------
+
+knn
+  The number of k-nearest neighbors. [Default: **8**]
+  
+thresh1
+  The threshold to be applied to the smallest eigenvalue. [Default: **25**]
+  
+thresh2
+  The threshold to be applied to the second smallest eigenvalue. [Default: **6**]
diff --git a/doc/stages/filters.crop.rst b/doc/stages/filters.crop.rst
index 08da208..50c82e8 100644
--- a/doc/stages/filters.crop.rst
+++ b/doc/stages/filters.crop.rst
@@ -19,8 +19,7 @@ Example
         "file-input.las",
         {
           "type":"filters.crop",
-          "bounds":"bounds",
-          "count":"([0,1000000],[0,1000000])"
+          "bounds":"([0,1000000],[0,1000000])"
         },
         {
           "type":"writers.las",
diff --git a/doc/stages/filters.eigenvalues.rst b/doc/stages/filters.eigenvalues.rst
new file mode 100644
index 0000000..100614c
--- /dev/null
+++ b/doc/stages/filters.eigenvalues.rst
@@ -0,0 +1,45 @@
+.. _filters.eigenvalues:
+
+filters.eigenvalues
+===============================================================================
+
+``filters.eigenvalues`` returns the eigenvalues for a given point, based on its
+k-nearest neighbors.
+
+The filter produces three new dimensions (``Eigenvalue0``, ``Eigenvalue1``, and
+``Eigenvalue2``), which can be analyzed directly, or consumed by downstream
+stages for more advanced filtering. The eigenvalues are sorted in ascending
+order.
+
+The eigenvalue decomposition is performed using Eigen's
+``SelfAdjointEigenSolver``. For more information see
+https://eigen.tuxfamily.org/dox/classEigen_1_1SelfAdjointEigenSolver.html.
+
+Example
+-------
+
+This pipeline demonstrates the calculation of the eigenvalues. The newly created
+dimensions are written out to BPF for further inspection.
+
+.. code-block:: json
+
+    {
+      "pipeline":[
+        "input.las",
+        {
+          "type":"filters.eigenvalues",
+          "knn":8
+        },
+        {
+          "type":"writers.bpf",
+          "filename":"output.bpf",
+          "output_dims":"X,Y,Z,Eigenvalue0,Eigenvalue1,Eigenvalue2"
+        }
+      ]
+    }
+
+Options
+-------------------------------------------------------------------------------
+
+knn
+  The number of k-nearest neighbors. [Default: **8**]
diff --git a/doc/stages/filters.estimaterank.rst b/doc/stages/filters.estimaterank.rst
new file mode 100644
index 0000000..41a6957
--- /dev/null
+++ b/doc/stages/filters.estimaterank.rst
@@ -0,0 +1,50 @@
+.. _filters.estimaterank:
+
+filters.estimaterank
+===============================================================================
+
+``filters.estimaterank`` computes the rank (i.e., the number of nonzero singular
+values) of a neighborhood of points.
+
+This method uses Eigen's JacobiSVD class to solve the singular value
+decomposition and to estimate the rank using the user-specified threshold. A
+singular value will be considered nonzero if its absolute value is greater than
+the product of the user-supplied threshold and the absolute value of the maximum
+singular value.
+
+More on JacobiSVD can be found at
+https://eigen.tuxfamily.org/dox/classEigen_1_1JacobiSVD.html.
+
+Example
+-------
+
+This sample pipeline estimates the rank of each point using
+``filters.estimaterank`` and then filters out those points where the rank is
+three using ``filters.range``.
+
+.. code-block:: json
+
+    {
+      "pipeline":[
+        "input.las",
+        {
+          "type":"filters.estimaterank",
+          "knn":8,
+          "thresh":0.01
+        },
+        {
+          "type":"filters.range",
+          "limits":"Rank![3:3]"
+        },
+        "output.laz"
+      ]
+    }
+
+Options
+-------------------------------------------------------------------------------
+
+knn
+  The number of k-nearest neighbors. [Default: **8**]
+  
+thresh
+  The threshold used to identify nonzero singular values. [Default: **0.01**]
diff --git a/doc/stages/filters.ground.rst b/doc/stages/filters.ground.rst
index 20f3daa..d0c8711 100644
--- a/doc/stages/filters.ground.rst
+++ b/doc/stages/filters.ground.rst
@@ -35,7 +35,7 @@ Example
 Options
 -------------------------------------------------------------------------------
 
-maxWindowSize
+max_window_size
   Maximum window size. [Default: **33**]
 
 slope
diff --git a/doc/stages/filters.hag.rst b/doc/stages/filters.hag.rst
new file mode 100644
index 0000000..a71d858
--- /dev/null
+++ b/doc/stages/filters.hag.rst
@@ -0,0 +1,40 @@
+.. _filters.hag:
+
+filters.hag
+===============================================================================
+
+The Height Above Ground (HAG) filter takes as input a point cloud with a 
+Classification dimension, with ground points assigned the classification label 
+of 2 (per LAS specification). It returns a point cloud with a new dimension 
+``HeightAboveGround`` that contains the normalized height value.
+
+The HAG filter works by iterating through all non-ground points, finding the
+nearest neighbor (in XY only) amongst the ground points, and computing the
+distance between the two Z values.
+
+Example
+-------
+
+.. code-block:: json
+
+    {
+      "pipeline":[
+        "input.las",
+        {
+          "type":"filters.hag"
+        },
+        {
+          "type":"filters.ferry",
+          "dimensions":"HeightAboveGround = Z",
+        },
+        {
+          "type":"writers.las",
+          "filename":"output.las"
+        }
+      ]
+    }
+
+Options
+-------------------------------------------------------------------------------
+
+None
diff --git a/doc/stages/filters.height.rst b/doc/stages/filters.height.rst
index 9d482a9..c9a5a11 100644
--- a/doc/stages/filters.height.rst
+++ b/doc/stages/filters.height.rst
@@ -21,7 +21,7 @@ Example
         },
         {
           "type":"filters.ferry",
-          "dimensions":"Z = HeightAboveGround",
+          "dimensions":"HeightAboveGround = Z",
         },
         {
           "type":"writers.las",
diff --git a/doc/stages/filters.normal.rst b/doc/stages/filters.normal.rst
new file mode 100644
index 0000000..44f19a9
--- /dev/null
+++ b/doc/stages/filters.normal.rst
@@ -0,0 +1,54 @@
+.. _filters.normal:
+
+filters.normal
+===============================================================================
+
+``filters.normal`` returns the estimated normal and curvature for a collection
+of points. The algorithm first computes the eigenvalues and eigenvectors of the
+collection of points, which is comprised of the k-nearest neighbors. The normal
+is taken as the eigenvector corresponding to the smallest eigenvalue. The
+curvature is computed as
+
+.. math::
+  
+  curvature = \frac{\lambda_0}{\lambda_0 + \lambda_1 _+ \lambda_2}
+  
+where :math:`\lambda_i` are the eigenvalues sorted in ascending order.
+
+The filter produces four new dimensions (``NormalX``, ``NormalY``, ``NormalZ``,
+and ``Curvature``), which can be analyzed directly, or consumed by downstream
+stages for more advanced filtering.
+
+The eigenvalue decomposition is performed using Eigen's
+``SelfAdjointEigenSolver``. For more information see
+https://eigen.tuxfamily.org/dox/classEigen_1_1SelfAdjointEigenSolver.html.
+
+Example
+-------
+
+This pipeline demonstrates the calculation of the normal values (along with
+curvature). The newly created dimensions are written out to BPF for further
+inspection.
+
+.. code-block:: json
+
+    {
+      "pipeline":[
+        "input.las",
+        {
+          "type":"filters.normal",
+          "knn":8
+        },
+        {
+          "type":"writers.bpf",
+          "filename":"output.bpf",
+          "output_dims":"X,Y,Z,NormalX,NormalY,NormalZ,Curvature"
+        }
+      ]
+    }
+
+Options
+-------------------------------------------------------------------------------
+
+knn
+  The number of k-nearest neighbors. [Default: **8**]
diff --git a/doc/stages/filters.outlier.rst b/doc/stages/filters.outlier.rst
new file mode 100644
index 0000000..7f71a9e
--- /dev/null
+++ b/doc/stages/filters.outlier.rst
@@ -0,0 +1,147 @@
+.. _filters.outlier:
+
+===============================================================================
+filters.outlier
+===============================================================================
+
+The Outlier filter provides two outlier filtering methods: radius and
+statistical. These two approaches are discussed in further detail below.
+
+Statistical Method
+-------------------------------------------------------------------------------
+
+The default method for identifying outlier points is the statistical outlier method. This method requires two passes through the input ``PointView``, first to compute a threshold value based on global statistics, and second to identify outliers using the computed threshold.
+
+In the first pass, for each point :math:`p_i` in the input ``PointView``, compute the mean distance :math:`\mu_i` to each of the :math:`k` nearest neighbors (where :math:`k` is configurable and specified by ``mean_k``). Then,
+
+.. math::
+  
+  \overline{\mu} = \frac{1}{N} \sum_{i=1}^N \mu_i
+  
+.. math::
+  
+  \sigma = \sqrt{\frac{1}{N-1} \sum_{i=1}^N (\mu_i - \overline{\mu})^2}
+
+A global mean :math:`\overline{\mu}` of these mean distances is then computed along with the standard deviation :math:`\sigma`. From this, the threshold is computed as
+
+.. math::
+  
+  t = \mu + m\sigma
+  
+where :math:`m` is a user-defined multiplier specified by ``multiplier``.
+
+We now interate over the pre-computed mean distances :math:`\mu_i` and compare to computed threshold value. If :math:`\mu_i` is greater than the threshold, it is marked as an outlier.
+
+.. math::
+  
+  outlier_i = \begin{cases}
+      \text{true,} \phantom{false,} \text{if } \mu_i >= t \\
+      \text{false,} \phantom{true,} \text{otherwise} \\
+  \end{cases}
+  
+The ``classify`` and ``extract`` options are used to control whether outlier
+points are labeled as noise, or removed from the output ``PointView``
+completely.
+
+.. figure:: filters.statisticaloutlier.img1.png
+    :scale: 70 %
+    :alt: Points before outlier removal
+
+Before outlier removal, noise points can be found both above and below the
+scene.
+
+
+.. figure:: filters.statisticaloutlier.img2.png
+    :scale: 60 %
+    :alt: Points after outlier removal
+
+After outlier removal, the noise points are removed.
+
+See [Rusu2008]_ for more information.
+
+.. [Rusu2008] Rusu, Radu Bogdan, et al. "Towards 3D point cloud based object maps for household environments." Robotics and Autonomous Systems 56.11 (2008): 927-941.
+
+Example
+................................................................................
+
+In this example, points are marked as outliers if the average distance to each
+of the 12 nearest neighbors is below the computed threshold.
+
+.. code-block:: json
+
+    {
+      "pipeline":[
+        "input.las",
+        {
+          "type":"filters.outlier",
+          "method":"statistical",
+          "mean_k":12,
+          "multiplier":2.2
+        },
+        "output.las"
+      ]
+    }
+        
+Radius Method
+-------------------------------------------------------------------------------
+
+For each point :math:`p_i` in the input ``PointView``, this method counts the
+number of neighboring points :math:`k_i` within radius :math:`r` (specified by
+``radius``). If :math:`k_i<k_{min}`, where :math:`k_{min}` is the minimum number
+of neighbors specified by ``min_k``, it is marked as an outlier.
+
+.. math::
+  
+  outlier_i = \begin{cases}
+      \text{true,} \phantom{false,} \text{if } k_i < k_{min} \\
+      \text{false,} \phantom{true,} \text{otherwise} \\
+  \end{cases}
+  
+The ``classify`` and ``extract`` options are used to control whether outlier
+points are labeled as noise, or removed from the output ``PointView``
+completely.
+
+Example
+...............................................................................
+
+The following example will mark points as outliers when there are fewer than
+four neighbors within a radius of 1.0.
+
+.. code-block:: json
+
+    {
+      "pipeline":[
+        "input.las",
+        {
+          "type":"filters.outlier",
+          "method":"radius",
+          "radius":1.0,
+          "min_k":4
+        },
+        "output.las"
+      ]
+    }
+    
+Options
+-------------------------------------------------------------------------------
+
+method
+  The outlier removal method. [Default: **statistical**]
+
+min_k
+  Minimum number of neighbors in radius (radius method only). [Default: **2**]
+
+radius
+  Radius (radius method only). [Default: **1.0**]
+
+mean_k
+  Mean number of neighbors (statistical method only). [Default: **8**]
+
+multiplier
+  Standard deviation threshold (statistical method only). [Default: **2.0**]
+  
+classify
+  Apply classification value of 18 (LAS high noise)? [Default: **true**]
+
+extract
+  Extract inlier returns only? [Default: **false**]
diff --git a/doc/stages/filters.pmf.rst b/doc/stages/filters.pmf.rst
new file mode 100644
index 0000000..2191005
--- /dev/null
+++ b/doc/stages/filters.pmf.rst
@@ -0,0 +1,56 @@
+.. _filters.pmf:
+
+filters.pmf
+===============================================================================
+
+The Progressive Morphological Filter (PMF) is a method of segmenting ground and
+non-ground returns. This filter is an implementation of the method described in
+[Zhang2003]_.
+
+.. [Zhang2003] Zhang, Keqi, et al. "A progressive morphological filter for removing nonground measurements from airborne LIDAR data." Geoscience and Remote Sensing, IEEE Transactions on 41.4 (2003): 872-882.
+
+
+Example
+-------
+
+.. code-block:: json
+
+    {
+      "pipeline":[
+        "input.las",
+        {
+          "type":"filters.pmf"
+        },
+        {
+          "type":"writers.las",
+          "filename":"output.las"
+        }
+      ]
+    }
+
+Options
+-------------------------------------------------------------------------------
+
+maxWindowSize
+  Maximum window size. [Default: **33**]
+
+slope
+  Slope. [Default: **1.0**]
+
+max_distance
+  Maximum distance. [Default: **2.5**]
+
+initial_distance
+  Initial distance. [Default: **0.15**]
+
+cell_size
+  Cell Size. [Default: **1**]
+
+classify
+  Apply classification labels? [Default: **true**]
+
+extract
+  Extract ground returns? [Default: **false**]
+
+approximate
+  Use approximate algorithm? [Default:: **false**]
diff --git a/doc/stages/filters.rst b/doc/stages/filters.rst
new file mode 100644
index 0000000..0bc482b
--- /dev/null
+++ b/doc/stages/filters.rst
@@ -0,0 +1,16 @@
+.. _filters:
+
+Filters
+=======
+
+Filters operate on data as inline operations. They can remove, modify, reorganize,
+and add points to the data stream as it goes by. Some filters can only operate on
+dimensions they understand (consider :ref:`filters.reprojection` doing geographic
+reprojection on XYZ coordinates), while others do not interrogate the point data at
+all and simply reorganize or split data.
+
+.. toctree::
+   :maxdepth: 1
+   :glob:
+
+   filters.*
diff --git a/doc/stages/filters.sample.rst b/doc/stages/filters.sample.rst
new file mode 100644
index 0000000..6113dc6
--- /dev/null
+++ b/doc/stages/filters.sample.rst
@@ -0,0 +1,34 @@
+.. _filters.sample:
+
+===============================================================================
+filters.sample
+===============================================================================
+
+The practice of performing Poisson sampling via "Dart Throwing" was introduced
+in the mid-1980's by [Cook1986]_ and [Dippe1985]_, and has been applied to
+point clouds in other software [Mesh2009]_.
+
+The sample filter performs Poisson sampling of the input ``PointView``. The
+sampling can be performed in a single pass through the point cloud. To begin,
+each input point is assumed to be kept. As we iterate through the kept points,
+we retrieve all neighbors within a given ``radius``, and mark these neighbors as
+points to be discarded. All remaining kept points are appended to the output
+``PointView``. The full layout (i.e., the dimensions) of the input ``PointView``
+is kept in tact (the same cannot be said for :ref:`filters.voxelgrid`).
+
+.. seealso::
+
+    :ref:`filters.decimation` and :ref:`filters.voxelgrid` also perform
+    decimation.
+
+.. [Cook1986] Cook, Robert L. "Stochastic sampling in computer graphics." *ACM Transactions on Graphics (TOG)* 5.1 (1986): 51-72.
+
+.. [Dippe1985] Dippé, Mark AZ, and Erling Henry Wold. "Antialiasing through stochastic sampling." *ACM Siggraph Computer Graphics* 19.3 (1985): 69-78.
+
+.. [Mesh2009] ALoopingIcon. "Meshing Point Clouds." *MESHLAB STUFF*. n.p., 7 Sept. 2009. Web. 13 Nov. 2015.
+
+Options
+-------------------------------------------------------------------------------
+
+radius
+  Minimum distance between samples. [Default: **1.0**]
diff --git a/doc/stages/filters.transformation.rst b/doc/stages/filters.transformation.rst
index 1198b6d..626398e 100644
--- a/doc/stages/filters.transformation.rst
+++ b/doc/stages/filters.transformation.rst
@@ -27,7 +27,7 @@ This example rotates the points around the z-axis while translating them.
         "untransformed.las",
         {
           "type":"filters.transformation",
-          "matrix":"0 -1  0  1  1  0  0  2  0  0  1  3  0  0  0  1",
+          "matrix":"0 -1  0  1  1  0  0  2  0  0  1  3  0  0  0  1"
         },
         {
           "type":"writers.las",
diff --git a/doc/stages/index.rst b/doc/stages/index.rst
index 58c6854..209f11d 100644
--- a/doc/stages/index.rst
+++ b/doc/stages/index.rst
@@ -7,61 +7,4 @@ Readers, Writers, and Filters
 The :cpp:class:`pdal::Stage` object encapsulates the reading, writing, and
 filtering capabilities for PDAL.
 
-.. _readers:
-
-Readers
-=======
-
-Readers provide data to :ref:`pipeline` operations. Readers might be a simple
-file type, like :ref:`readers.las`, a complex database like :ref:`readers.oci`, or
-a network service like :ref:`readers.greyhound`.
-
-.. note::
-
-    Readers provide :cpp:class:`pdal::Dimension` to :ref:`pipeline`. PDAL attempts
-    to normalize common dimension types, like X, Y, Z, or Intensity, which are
-    often found in LiDAR point clouds. Not all dimension types need to be fixed, however.
-    Database drivers typically return unstructured lists of dimensions.
-
-.. toctree::
-   :maxdepth: 1
-   :glob:
-
-   readers.*
-
-.. _writers:
-
-Writers
-=======
-
-Writers consume data provided by :ref:`readers`. Some writers can consume any
-dimension type, while others only understand fixed dimension names.
-
-.. note::
-
-    Some writers can only consume known dimension names, while PDAL doesn't
-    yet have a registery for the dimension types, you can see the
-    base dimension types at https://github.com/PDAL/PDAL/blob/master/include/pdal/Dimension.hpp
-
-.. toctree::
-   :maxdepth: 1
-   :glob:
-
-   writers.*
-
-.. _filters:
-
-Filters
-=======
-
-Filters operate on data as inline operations. They can remove, modify, reorganize,
-and add points to the data stream as it goes by. Some filters can only operate on
-dimensions they understand (consider :ref:`filters.reprojection` doing geographic
-reprojection on XYZ coordinates), while others do not interrogate the point data at
-all and simply reorganize or split data.
-
-.. toctree::
-   :maxdepth: 1
-   :glob:
-
-   filters.*
+:ref:`readers`, :ref:`writers`, and :ref:`filters`.
diff --git a/doc/stages/readers.pts.rst b/doc/stages/readers.pts.rst
new file mode 100644
index 0000000..b6a4fbb
--- /dev/null
+++ b/doc/stages/readers.pts.rst
@@ -0,0 +1,32 @@
+.. _readers.pts:
+
+readers.pts
+============
+
+The **PTS reader** reads data from PTS files.
+
+
+Example Pipeline
+----------------
+
+.. code-block:: json
+
+    {
+      "pipeline":[
+        {
+          "type":"readers.pts",
+          "filename":"test.pts"
+        },
+        {
+          "type":"writers.text",
+          "filename":"outputfile.txt"
+        }
+      ]
+    }
+
+Options
+-------
+
+filename
+  text file to read [Required]
+
diff --git a/doc/stages/readers.rst b/doc/stages/readers.rst
new file mode 100644
index 0000000..b495d90
--- /dev/null
+++ b/doc/stages/readers.rst
@@ -0,0 +1,22 @@
+.. _readers:
+
+Readers
+=======
+
+Readers provide data to :ref:`pipeline` operations. Readers might be a simple
+file type, like :ref:`readers.las`, a complex database like :ref:`readers.oci`, or
+a network service like :ref:`readers.greyhound`.
+
+.. note::
+
+    Readers provide :cpp:class:`pdal::Dimension` to :ref:`pipeline`. PDAL attempts
+    to normalize common dimension types, like X, Y, Z, or Intensity, which are
+    often found in LiDAR point clouds. Not all dimension types need to be fixed, however.
+    Database drivers typically return unstructured lists of dimensions.
+
+.. toctree::
+   :maxdepth: 1
+   :glob:
+
+   readers.*
+
diff --git a/doc/stages/readers.rxp.rst b/doc/stages/readers.rxp.rst
index d397534..1f11ccc 100644
--- a/doc/stages/readers.rxp.rst
+++ b/doc/stages/readers.rxp.rst
@@ -78,33 +78,21 @@ Options
 -------
 
 filename
-  File to read from [Required if rdtp is not provided]
+  File to read from, or rdtp URI for network-accessible scanner. [Required]
 
 rdtp
-  URI for a network-assessable scanner [Required if filename is not provided]
+  Boolean to switch from file-based reading to RDTP-based. [default: false]
 
 sync_to_pps
   If "true", ensure all incoming points have a valid pps timestamp, usually provided by some sort of GPS clock.
   If "false", use the scanner's internal time.
-  Defaults to "true"
+  [default: true]
 
 minimal
   If "true", only write X, Y, Z, and time values to the data stream.
   If "false", write all available values as derived from the rxp file.
   Use this feature to reduce the memory footprint of a PDAL run, if you don't need any values but the points themselves.
-  Defaults to "false".
-
-inclination_fix
-  *EXPERIMENTAL*: If "true", use inclination values in the rxp file to dynamically correct for inclination changes throughout the scan, using a moving average of 2 * ``inclination_fix_window`` inclination readings (see below).
-  This is an experimental feature that will remove some points from the data stream and modify many others.
-  Use with caution.
-  If "false", disable this feature.
-  Defaults to "false".
-
-inclination_fix_window
-  *EXPERIMENTAL*: Sets the half-size of the inclination fix window (see above).
-  Use of this feature should be considered highly experimental.
-
+  [default: false]
 
 .. _RIEGL Laser Measurement Systems: http://www.riegl.com
 .. _RIEGL download pages: http://www.riegl.com/members-area/software-downloads/libraries/
diff --git a/doc/stages/writers.bpf.rst b/doc/stages/writers.bpf.rst
index 3935fbf..58abd4e 100644
--- a/doc/stages/writers.bpf.rst
+++ b/doc/stages/writers.bpf.rst
@@ -16,7 +16,7 @@ Example
     {
       "pipeline":[
         {
-          "type":"readers.",s
+          "type":"readers.bpf"
           "filename":"inputfile.las"
         },
         {
diff --git a/doc/stages/writers.p2g.rst b/doc/stages/writers.p2g.rst
index 65a54e5..3aa77fe 100644
--- a/doc/stages/writers.p2g.rst
+++ b/doc/stages/writers.p2g.rst
@@ -42,10 +42,11 @@ Example
           "output_type":"mean",
           "output_type":"idw",
           "output_type":"den",
-          "output_format":"den",
+          "output_format":"asc",
         }
       ]
     }
+
 Options
 -------
 
@@ -69,3 +70,8 @@ output_format
 
 z
   Name of the 'z' dimension to use. [Default: 'Z']
+
+bounds
+  Custom bounds for output raster(s).
+  If not provided, bounds will be calculated from the bounds of the input data.
+  [Default: **none**]
diff --git a/doc/stages/writers.pgpointcloud.rst b/doc/stages/writers.pgpointcloud.rst
index beb192d..9c39f5f 100644
--- a/doc/stages/writers.pgpointcloud.rst
+++ b/doc/stages/writers.pgpointcloud.rst
@@ -28,7 +28,7 @@ Example
         }
         {
           "type":"writers.pgpointcloud",
-          "connection":"host=\'localhost\' dbname=\'lidar\' user=\'pramsey\'",
+          "connection":"host='localhost' dbname='lidar' user='pramsey'",
           "table":"example",
           "compression":"dimensional",
           "srid":"26916"
diff --git a/doc/stages/writers.rst b/doc/stages/writers.rst
new file mode 100644
index 0000000..f614dea
--- /dev/null
+++ b/doc/stages/writers.rst
@@ -0,0 +1,20 @@
+.. _writers:
+
+Writers
+=======
+
+Writers consume data provided by :ref:`readers`. Some writers can consume any
+dimension type, while others only understand fixed dimension names.
+
+.. note::
+
+    Some writers can only consume known dimension names, while PDAL doesn't
+    yet have a registery for the dimension types, you can see the
+    base dimension types at https://github.com/PDAL/PDAL/blob/master/include/pdal/Dimension.hpp
+
+.. toctree::
+   :maxdepth: 1
+   :glob:
+
+   writers.*
+
diff --git a/doc/tutorial/calculating-normalized-heights.rst b/doc/tutorial/calculating-normalized-heights.rst
index 0560b15..2957625 100644
--- a/doc/tutorial/calculating-normalized-heights.rst
+++ b/doc/tutorial/calculating-normalized-heights.rst
@@ -164,7 +164,7 @@ we run the following PDAL CLI command
 ::
 
     $ pdal translate autzen.laz autzen-height.bpf height \
-      --writers.bpf.output_dims="X,Y,Z,Height"
+      --writers.bpf.output_dims="X,Y,Z,HeightAboveGround"
 
 The result, when colored by the normalized height instead of elevation is
 
@@ -179,7 +179,7 @@ If you'd like to overwrite your Z values, follow the height filter with :ref:`fi
 ::
 
     $ pdal translate input.laz output-height-as-Z.bpf height ferry \
-      --writers.bpf.output_dims="X,Y,Z" --filters.ferry.dimensions="Height=Z"
+      --writers.bpf.output_dims="X,Y,Z" --filters.ferry.dimensions="HeightAboveGround=Z"
 
 Example #3
 -------------------------------------------------------------------------------
@@ -189,4 +189,4 @@ If you don't yet have points classified as ground, start with :ref:`filters.grou
 ::
 
     $ pdal translate input.laz output-ground-height.bpf ground height \
-      --writers.bpf.output_dims="X,Y,Z,Height"
+      --writers.bpf.output_dims="X,Y,Z,HeightAboveGround"
diff --git a/doc/tutorial/docker-print-one.png b/doc/tutorial/docker-print-one.png
deleted file mode 100644
index 278250f..0000000
Binary files a/doc/tutorial/docker-print-one.png and /dev/null differ
diff --git a/doc/tutorial/docker.rst b/doc/tutorial/docker.rst
deleted file mode 100644
index 2cbbe0d..0000000
--- a/doc/tutorial/docker.rst
+++ /dev/null
@@ -1,196 +0,0 @@
-.. _docker:
-
-******************************************************************************
-Docker
-******************************************************************************
-
-:Author: Howard Butler
-:Contact: howard at hobu.co
-:Date: 01/07/2015
-
-.. index:: Docker
-
-Introduction
-------------------------------------------------------------------------------
-
-It's a giant pain to build everything yourself. To make it simpler to use PDAL, a
-build based on `Docker`_ is also available. This document describes how
-to use it to operate on your own data.
-
-
-.. seealso::
-    The `What is Docker <https://www.docker.com/what-docker>`__ document describes
-    in more detail what exactly Docker is. Think of it as a virtualization platform
-    that doesn't have to be "built" every time from scratch like a Vagrant build would.
-
-Getting Started
-------------------------------------------------------------------------------
-
-Install `Docker Toolbox`_.
-................................................................................
-
-Docker starting documentation can be found at the following links. Read through
-them a bit for your platform so you have an idea what to expect.
-
-* `Windows <http://docs.docker.com/windows/started/>`__
-* `OSX <http://docs.docker.com/mac/started/>`__
-* `Linux <http://docs.docker.com/linux/started/>`__
-
-.. _`Docker Toolbox`: https://www.docker.com/docker-toolbox
-
-.. note::
-
-    This tutorial will assume you are running on Windows, but the same commands should
-    work in OSX or Linux too -- though definition of file paths might provide
-    a significant difference.
-
-Run Docker Quickstart Terminal
-................................................................................
-
-`Docker`_ is most easily accessed using a terminal window that it configures
-with environment variables and such. Double-click on the "Docker Quickstart Terminal"
-link on your desktop (Windows) or run the "Docker Quickstart Terminal" application
-(Mac).
-
-After some text scrolls by, you should see something like the following image
-:
-
-.. image:: docker-quickstart-terminal.png
-
-To be sure Docker is working correctly and everything is happy,
-issue the following command and confirm that it reports similar information:
-
-::
-
-    docker-machine env default
-
-.. image:: docker-quickstart-env.png
-
-Fetch PDAL Image
-................................................................................
-
-The PDAL image provides a recent ``master`` branch build of PDAL. It is pushed
-to `Docker Hub`_ periodically by the PDAL developers. We need to pull it
-locally so we can use it to run PDAL commands. Once it is pulled, we
-don't have to pull it again unless we want to refresh it for
-whatever reason.
-
-::
-
-    docker pull pdal/pdal
-
-.. note::
-
-    Other PDAL versions are provided at the same `Docker Hub`_ location,
-    with an expected tag name (ie ``pdal/1.1``, or ``pdal/1.x``) for
-    major PDAL versions. The PDAL Docker hub location at
-    https://hub.docker.com/u/pdal/ has images and more information
-    on this topic.
-
-.. _`Docker Hub`: http://hub.docker.com
-
-Fetch Sample Data
-................................................................................
-
-We need some sample data to play with, so we're going to download
-the ``autzen.laz`` file to your ``C:/Users/Howard`` drive. Inside the
-Quickstart Terminal, issue the following ``curl`` command:
-
-::
-
-    curl -O http://www.liblas.org/samples/autzen/autzen.laz
-
-.. note::
-
-    That's a capital Oh, not a zero.
-
-List the directory to be sure that it was downloaded
-
-::
-
-    ls *.laz
-
-Print the first point
-................................................................................
-
-To test that we have a working system, we will print out the values of the
-very first point of ``autzen.laz``.
-
-::
-
-    docker run -v //c/Users/Howard:/data pdal/pdal pdal info //data/autzen.laz -p 0
-
-Here's a summary of what's going on with that command invocation
-
-1. ``docker``: We are running PDAL within the context of docker, so all of our
-   commands will start with the ``docker`` command.
-
-2. ``run``: Tells docker we're going to run an image
-
-3. ``-v //c/Users/Howard:/data``: Maps our home directory to a directory called
-   ``/data`` inside the container.
-
-   .. note::
-
-       The double slash, ``//c/Users/Howard`` instead of just ``/c/Users/Howard``
-       is because MSYS on Windows eats the first slash. See
-       https://github.com/docker/docker/issues/12751 for a ticket describing
-       this pain point in more detail. You do not need double slashes
-       if you are using OSX or Linux as your Docker container host.
-
-   .. seealso::
-
-       The `Docker Volume <https://docs.docker.com/engine/userguide/dockervolumes/>`__
-       document describes mounting volumes in more detail.
-
-4. ``pdal/pdal``: This is the Docker image we are going to run. We fetched it
-   with the command above. If it were not already fetched, Docker would attempt
-   to fetch it when we run this command.
-
-5. ``pdal``: We're finally going to run the ``pdal`` command :)
-
-6. ``info``: We want to run :ref:`info_command` on the data
-
-7. ``//data/autzen.laz``: The ``pdal`` command is now running in the context of
-   our container, which we mounted a ``/data`` directory in with the volume
-   mount operation in Step #3. Our ``autzen.laz`` file resides there.
-
-   .. note::
-
-        The same note about the double slash described in Step #3 applies here
-        as well.
-
-.. image:: docker-print-one.png
-
-
-What you get
-------------------------------------------------------------------------------
-
-The  configuration that PDAL provides contains nearly
-every possible feature except for `Oracle Point Cloud`_ support. Things it
-includes are:
-
-* :ref:`filters.hexbin`
-* :ref:`filters.reprojection`
-* :ref:`readers.nitf` and :ref:`writers.nitf`
-* `LASzip`_ support in :ref:`readers.las` and :ref:`writers.las`
-* Interpolation with `Points2Grid`_ using :ref:`writers.p2g`
-* Python manipulation using :ref:`filters.predicate` and :ref:`filters.programmable`
-* `PCL`_ support via :ref:`filters.pclblock`, :ref:`readers.pcd`,
-  :ref:`writers.pcd`, :ref:`ground_command`, and :ref:`pcl_command`
-* :ref:`writers.geowave`
-
-Head to :ref:`pipeline` for more information on using PDAL pipelines. Two pipelines
-are provided in ``/home/vagrant`` that are used to load the ``st-helens-small.las``
-file into `pgpointcloud`_.
-
-.. _`Points2Grid`: https://github.com/CRREL/points2grid
-.. _`Oracle Point Cloud`: http://docs.oracle.com/cd/B28359_01/appdev.111/b28400/sdo_pc_pkg_ref.htm
-.. _`pgpointcloud`: https://github.com/pramsey/pointcloud
-
-.. _`LASzip`: http://laszip.org
-.. _`VirtualBox`: https://www.virtualbox.org/
-.. _`GDAL`: http://gdal.org
-.. _`MapServer`: http://mapserver.org
-.. _`Mapnik`: http://mapnik.org
-.. _`PCL`: http://www.pointclouds.org
diff --git a/doc/tutorial/index.rst b/doc/tutorial/index.rst
index 772a723..16b8986 100644
--- a/doc/tutorial/index.rst
+++ b/doc/tutorial/index.rst
@@ -24,7 +24,6 @@ Using PDAL
 
    reading
    writing
-   docker
    pcl_block_tutorial
    pcl_ground
    clipping-with-shapefile
diff --git a/doc/tutorial/overview.rst b/doc/tutorial/overview.rst
index 9edac09..f92f2ff 100644
--- a/doc/tutorial/overview.rst
+++ b/doc/tutorial/overview.rst
@@ -57,8 +57,7 @@ the elements that make up a point a dimension.  PDAL predefines the dimensions
 that are in common use by the formats that it currently supports.  Readers may
 register their use of a predefined dimension or may have PDAL create a
 dimension with a name and type as requested.  Dimensions are described by the
-enumeration pdal::Dimension::Id::Enum and associated functions in
-Dimension.hpp.
+enumeration pdal::Dimension::Id and associated functions in Dimension.hpp.
 
 PDAL has a default type (Double, Float, Signed32, etc.) for each of its
 predefined dimensions which is believed to be sufficient to accurately
@@ -68,7 +67,7 @@ is no facility to "downsize" a dimension type to save memory.  Dimension.hpp
 can be examined to determine the default storage type of each predefined
 dimension.  In most cases knowledge of the storage data type for
 a dimension isn't required.  PDAL properly converts data to and from the
-internal storage type transparently.  Invalid conversion raise an exception.
+internal storage type transparently.  Invalid conversions raise an exception.
 
 When a storage type is explicitly requested for a dimension, PDAL examines the
 existing storage type and requested type and chooses the storage type so
@@ -82,9 +81,10 @@ requested type is a 16 bit unsigned integer (Unsigned16), PDAL will use a
 Point Layout
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-PDAL stores orientation information in a point layout structure (PointLayout
-object).  This structure contains information about what dimensions are stored
-in a structure containing points, like their names, types, and offsets.
+PDAL stores the set of dimension information in a point layout structure
+(PointLayout object).  It stores information about the physical layout of
+data of each point in memory and also stores the type and name of each
+dimension.
 
 Point Table
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -94,8 +94,8 @@ point table has an associated point layout describing its format.  All
 points in a single point table have the same dimensions and all operations on
 a PDAL pipeline make use of a single point table.  In addition to storing
 points, a point table also stores pipeline metadata that may get created as
-pipeline stages are executed.  Most functions receive a PointTablePtr object,
-which refers to the active point table.  A PointTablePtr can be stored
+pipeline stages are executed.  Most functions receive a PointTableRef object,
+which refers to the active point table.  A PointTableRef can be stored
 or copied cheaply.
 
 Point View
@@ -174,25 +174,31 @@ pipeline.
     allows an exception to be thrown in the case of an invalid option that can
     be properly interpreted by the pipeline.
 
-2) void initialize()
+2) void initialize() OR void initialize(PointTableRef)
 
     Some stages, particularly readers, may need to do things such as open files
     to extract header information before the next step in processing.  Other
     general processing that needs to take place before any stage is executed
-    should occur at this time.  Initialization that can be deferred until the
-    execution stage should be performed in the ready() method (see below).
+    should occur at this time.  If the initialization requires knowledge of
+    the point table, implement the function that accepts one, otherwise
+    implement the no-argument version.  Whether to place initialization code
+    at this step or in prepared() or ready() (see below) is a judgement call,
+    but detection of errors earlier in the process allows faster termination of
+    a pipeline.
 
 3) void addDimensions(PointLayoutPtr layout)
 
     This method allows stages to inform a point table's layout of the dimensions
-    that it would like as part of the record of each point.  Normally, only
+    that it would like as part of the record of each point.  Usually, only
     readers add dimensions to a point table, but there is no prohibition on
     filters or writers from adding dimensions if necessary.  Dimensions should
-    not be added to the layout of a pipeline’s point table except in this
+    not be added to the layout of a pipeline’s point layout except in this
     method.
 
 
 
+
+
 Stage Execution
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -243,7 +249,7 @@ If dimensions are determined as named entities from a point cloud source,
 it may not be known whether the dimensions are predefined or not.  In this
 case the function registerOrAssignDim() can be used.  When a dimension is
 assigned, rather than registered, the reader needs to inform PDAL of the
-type of the variable using the enumeration Dimension::Type::Enum.
+type of the variable using the enumeration Dimension::Type.
 
 In this example, the reader informs the point table's layout that it will
 reference the dimensions X, Y and Z.
@@ -270,7 +276,7 @@ precision floating point.
         for (auto di = header.names.begin(), di != header.names.end(); ++di)
         {
             std::string dimName = *di;
-            Dimension::Id::Enum id = layout->registerOrAssignDim(
+            Dimension::Id id = layout->registerOrAssignDim(
                 dimName,
                 Dimension::Type::Double);
         }
diff --git a/doc/tutorial/pcl_block_tutorial.rst b/doc/tutorial/pcl_block_tutorial.rst
index 395071a..c73fbdc 100644
--- a/doc/tutorial/pcl_block_tutorial.rst
+++ b/doc/tutorial/pcl_block_tutorial.rst
@@ -32,37 +32,9 @@ cloud processing pipelines.
 Quick Start
 ------------------------------------------------------------------------------
 
-.. note::
-
-    Instructions for getting started with PDAL using :ref:`docker` also
-    include built-in PCL support.
-
-PDAL's Vagrant configuration now includes the PCL Block and all necessary
-dependencies. Assuming you've got Vagrant all set up, once you checkout the PDAL
-source code, just do the following:
-
-::
-
-    $ cd pdal
-    $ vagrant up
-    $ vagrant ssh
-
-The ``vagrant up`` command will take a considerable amount of time, but once its
-completed you have a fully functional VM with both PCL and PDAL installed. Try
-entering
-
-::
-
-    $ pdal pipeline --version
-
-at the command line. You should see output similar to the following:
-
-::
-
-    ------------------------------------------------------------------------------------------
-    pdal pipeline (PDAL 0.9.9 (2c6aa8) with GeoTIFF 1.4.0 GDAL 1.9.2 LASzip 2.2.0 System )
-    ------------------------------------------------------------------------------------------
-
+The :ref:`quickstart` document describes how to use PDAL with Docker, which
+includes built-in PCL support. After you have worked through that document, you
+should be able to run any PDAL PCL operations.
 
 
 PDAL Pipeline kernel
diff --git a/doc/tutorial/reading.rst b/doc/tutorial/reading.rst
index 8b221a8..ba7f9d6 100644
--- a/doc/tutorial/reading.rst
+++ b/doc/tutorial/reading.rst
@@ -196,5 +196,5 @@ a pipeline, substituting the input and output as it goes.
 
 .. _`JSON`: http://www.json.org/
 .. _`UUID`: http://en.wikipedia.org/wiki/Universally_unique_identifier
-.. _`interesting.las`: https://github.com/PDAL/PDAL/blob/master/test/data/interesting.las?raw=true
+.. _`interesting.las`: https://github.com/PDAL/PDAL/blob/master/test/data/las/interesting.las?raw=true
 .. _`ASPRS LAS`: http://www.asprs.org/a/society/committees/standards/lidar_exchange_format.html
diff --git a/doc/tutorial/writing-writer.rst b/doc/tutorial/writing-writer.rst
index 1216b92..f16ec52 100644
--- a/doc/tutorial/writing-writer.rst
+++ b/doc/tutorial/writing-writer.rst
@@ -168,4 +168,4 @@ wanted, you could run that output file through the MyReader that was created
 in the previous tutorial, as well.
 
 .. _`interesting.las`: https://github.com/PDAL/PDAL/blob/master/test/data/interesting.las?raw=true
-.. _`pipeline_mywriter.json`: https://github.com/PDAL/PDAL/blob/master/examples/writing-writer/pipeline-mywriter.json?raw=true
+.. _`pipeline-mywriter.json`: https://github.com/PDAL/PDAL/blob/master/examples/writing-writer/pipeline-mywriter.json?raw=true
diff --git a/doc/workshop/.gitignore b/doc/workshop/.gitignore
new file mode 100644
index 0000000..6a33153
--- /dev/null
+++ b/doc/workshop/.gitignore
@@ -0,0 +1,2 @@
+_build
+slides/build
diff --git a/doc/workshop/R/pulse.R b/doc/workshop/R/pulse.R
new file mode 100644
index 0000000..1584386
--- /dev/null
+++ b/doc/workshop/R/pulse.R
@@ -0,0 +1,28 @@
+library(ggplot2)
+library(reshape2)
+
+reference <- c(2, 2, 1, 2, 5, 18, 51, 107, 166, 195, 176, 125, 70, 34, 14, 7, 5, 4, 5, 4, 3, 1, 0, 0)
+low <- c(3, 3, 2, 1, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 4, 15, 50, 119, 194, 243, 255, 255, 217, 158, 97, 54, 30, 23, 20, 20, 18, 19, 20, 19, 17, 15, 13, 11, 12, 11, 10, 10, 10, 9, 10, 10, 10, 9, 11, 14, 27, 47, 66, 69, 54, 34, 19, 12, 9, 8, 7, 8, 12, 18, 28, 35, 34, 26, 16, 11, 15, 33, 64, 94, 105, 89, 58, 30, 14, 9, 7, 7, 7, 9, 9, 9, 7, 6, 5, 5, 6, 6, 6, 6, 5, 5, 4, 3, 4, 4)
+high <- c(2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 3, 1, 1, 2, 4, 11, 29, 53, 74, 81, 73, 54, 34, 17, 8, 3, 3, 4, 4, 3, 2, 2, 2, 2, 2, 2, 3, 5, 4, 4, 3, 2, 1, 2, 1, 2, 1, 1, 2, 3, 4, 5, 6, 5, 4, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 3, 3, 4, 5, 4, 4, 3, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 1)
+
+df <- data.frame(reference=reference, time=seq(0, length(reference) - 1) * 1e-9)
+ggplot(df, aes(time, reference)) +
+    geom_line() +
+    geom_point() +
+    xlab("Time from the start of record in seconds") +
+        ylab("Intensity")
+    ggsave("images/reference-pulse.png")
+
+time <- seq(0, length(low) - 1) * 1e-9
+df <- data.frame(low=low, time=time)
+peaks <- data.frame(time=c(time[21], time[54], time[66], time[75]),
+                    amplitude=c(255, 69, 35, 105))
+df.melt <- melt(df, id.vars="time", variable.name="Channel")
+
+p <- ggplot(df.melt, aes(time, value)) +
+    geom_point() +
+    geom_line() +
+    geom_point(aes(time, amplitude), peaks, colour = "red", shape = 8, size = 4) +
+    xlab("Time from the start of record in seconds") +
+    ylab("Intensity")
+ggsave("images/return-pulse.png")
diff --git a/doc/workshop/agenda.rst b/doc/workshop/agenda.rst
new file mode 100644
index 0000000..50d9f6f
--- /dev/null
+++ b/doc/workshop/agenda.rst
@@ -0,0 +1,48 @@
+.. _introduction:
+
+Introduction
+================================================================================
+
+1. :ref:`lidar-introduction`
+
+2. :ref:`pdal-introduction`
+
+3. :ref:`software`
+
+4. :ref:`basic-info`
+
+5. :ref:`translation`
+
+6. :ref:`analysisa`
+
+7. :ref:`georeferencing`
+
+Materials
+--------------------------------------------------------------------------------
+
+Slides
+................................................................................
+
+* `Slides <http://www.pdal.io/workshop/slides/>`__
+
+Workshop Materials
+................................................................................
+
+These materials are available at http://pdal.io/workshop/ as both
+a PDF and an HTML website.
+
+* `PDF download <http://pdal.io/PDAL.pdf>`__
+* `Website <http://pdal.io/workshop/>`__
+
+USB Example Data Drive
+................................................................................
+
+A companion USB drive containing workshop example data is required
+to follow along with these examples.
+
+.. image:: ./images/agenda-usb-drive.jpg
+
+.. note::
+
+    A drive image is available for download at
+    https://s3.amazonaws.com/pdal/workshop/PDAL.zip
diff --git a/doc/workshop/bibliography.bib b/doc/workshop/bibliography.bib
new file mode 100644
index 0000000..0ef286d
--- /dev/null
+++ b/doc/workshop/bibliography.bib
@@ -0,0 +1,17 @@
+Automatically generated by Mendeley Desktop 1.15.3
+Any changes to this file will be lost if it is regenerated by Mendeley.
+
+BibTeX export options can be customized via Preferences -> BibTeX in Mendeley Desktop
+
+ at article{Glennie2007,
+author = {Glennie, Craig L.},
+file = {:Users/gadomski/Documents/Mendeley Desktop/Glennie - 2007 - Rigorous 3D error analysis of kinematic scanning LIDAR systems.pdf:pdf},
+journal = {Journal of Applied Geodesy},
+keywords = {lidar},
+month = {jan},
+number = {3},
+publisher = {Walter de Gruyter GmbH},
+title = {{Rigorous 3D error analysis of kinematic scanning LIDAR systems}},
+volume = {1},
+year = {2007}
+}
diff --git a/doc/workshop/docker.rst b/doc/workshop/docker.rst
new file mode 100644
index 0000000..a69b9b5
--- /dev/null
+++ b/doc/workshop/docker.rst
@@ -0,0 +1,138 @@
+.. _workshop-docker:
+
+Docker
+================================================================================
+
+.. index:: Docker, software installation
+
+.. include:: ./includes/substitutions.rst
+
+What is Docker?
+--------------------------------------------------------------------------------
+
+|Docker| is operating system virtualization. It is somewhat like a virtual
+machine, but instead of the machine being abstracted, the operating system is.
+The advantage it gives you is the ability to run many different things in many
+different configurations and not have them collide with each other.
+
+How will we use Docker?
+--------------------------------------------------------------------------------
+
+PDAL stands on the shoulders of giants. It uses GDAL, GEOS, and
+:ref:`many other dependencies <building>`. Because of this, it is very
+challenging to build it yourself. We could easily burn an entire workshop
+learning the esoteric build miseries of PDAL and all of its dependencies.
+Fortunately, Docker will allow us to use a fully-featured known
+configuration to run our examples and exercises without having to suffer
+so much.
+
+
+Installing Docker
+--------------------------------------------------------------------------------
+
+1. Copy the entire contents of your workshop USB key to a ``PDAL`` directory in your
+   home directory (something like ``C:\Users\Howard\PDAL``). We will refer to
+   this location for the rest of the workshop materials.
+
+   .. note::
+
+        The workshop materials require ~5gb of local disk storage. You might
+        be able to run directly from the USB drive, but this scenario
+        has not been tested.
+
+2. After your materials are copied, navigate to the
+   ``c:\Users\Howard\PDAL\docker`` directory.
+
+.. image:: ./images/docker-file-navigate.png
+
+.. note::
+
+    It is assumed your Hobu USB drive has all of its contents
+    copied to the ``C:\Users\Howard\PDAL`` folder. Please adjust your
+    locations when reading these tutorial documents accordingly.
+
+3. Choose the install image, Windows or Mac, and install `Docker Toolbox`_ to
+   prepare your machine to run the examples.
+
+.. image:: ./images/docker-install-options.png
+
+.. image:: ./images/docker-install-progress.png
+
+4. Once installed, choose the `Docker Quickstart Terminal` from your Desktop.
+   It will scroll a bunch of text across the terminal screen as it does setup
+   and configuration.  Once it is done, verify that things are working
+   correctly by issuing the following commands:
+
+    ::
+
+        $ docker-machine ls
+
+    ::
+
+        $ docker ps
+
+.. image:: ./images/docker-status.png
+
+Images and Containers
+--------------------------------------------------------------------------------
+
+There are a few Docker concepts to understand before they are very useful. The
+first and most important one is the concept of `images`. A Docker image
+is kind of like an environment that frozen and not yet running. When you actually
+run an image, the thing running is called a `container`. Containers are
+what do the work and virtualize the operating system.
+
+A downside to docker images is they are often really large. Gigabytes. We don't
+want to swamp the bandwidth here at the workshop venue, so we're going to
+load images from the Hobu workshop USB drive.
+
+1. Load the PDAL Docker image:
+
+    If you have a PDAL workshop USB key, you can load it
+    from your workspace contained on it.
+
+    ::
+
+        $ docker load -i /c/Users/Howard/PDAL/docker/images/pdal.tar
+
+
+    If you got your workshop materials from the internet, you
+    can simply issue a ``pull`` command and Docker will fetch
+    and load it for you.
+
+    ::
+
+        $ docker pull pdal/pdal
+
+.. note::
+
+    The `Docker Quickstart Terminal` is `Bash`_, not normal
+    Windows ``cmd.exe``. Because of this, you will need to use double
+    slashes from time to time when providing file paths.
+
+.. _`Bash`: https://www.gnu.org/software/bash/
+
+2. Verify that the image successfully loaded
+
+::
+
+    $ docker images
+
+.. image:: ./images/docker-image-loaded.png
+
+3. Verify PDAL can print help output
+
+::
+
+    $ docker run -t pdal/pdal pdal --help
+
+.. image:: ./images/docker-run-help.png
+
+.. _`Docker Toolbox`: https://www.docker.com/products/docker-toolbox
+
+Conclusion
+--------------------------------------------------------------------------------
+
+Once you have verified that you can run the ``pdal/pdal`` container and print help
+information, you are ready to begin the :ref:`exercises`.
+
diff --git a/doc/workshop/exercises/analysis/boundary/boundary-command-boundary.txt b/doc/workshop/exercises/analysis/boundary/boundary-command-boundary.txt
new file mode 100644
index 0000000..1bf188f
--- /dev/null
+++ b/doc/workshop/exercises/analysis/boundary/boundary-command-boundary.txt
@@ -0,0 +1,5 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+    pdal info \
+    /data/exercises/analysis/density/uncompahgre.laz \
+    --boundary
+
diff --git a/doc/workshop/exercises/analysis/boundary/boundary-command-tindex.txt b/doc/workshop/exercises/analysis/boundary/boundary-command-tindex.txt
new file mode 100644
index 0000000..cefef18
--- /dev/null
+++ b/doc/workshop/exercises/analysis/boundary/boundary-command-tindex.txt
@@ -0,0 +1,5 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+    pdal tindex \
+    --tindex /data/exercises/analysis/boundary/boundary.sqlite \
+    --filespec /data/exercises/analysis/density/uncompahgre.laz \
+    -f SQLite
diff --git a/doc/workshop/exercises/analysis/boundary/boundary.rst b/doc/workshop/exercises/analysis/boundary/boundary.rst
new file mode 100644
index 0000000..da93f94
--- /dev/null
+++ b/doc/workshop/exercises/analysis/boundary/boundary.rst
@@ -0,0 +1,77 @@
+.. _boundary:
+
+Finding the boundary
+================================================================================
+
+.. include:: ../../../includes/substitutions.rst
+
+.. index:: boundary, QGIS, OGR
+
+
+This exercise uses PDAL to find a tight-fighting boundary of an aerial scan.
+Printing the coordinates of the boundary for the file is quite simple using a
+single ``pdal info`` call, but visualizing the boundary is more complicated. To
+complete this exercise, we are going to use :ref:`qgis` to visualize the
+boundary, which means we must first install it on our system.
+
+Exercise
+--------------------------------------------------------------------------------
+
+
+
+.. note::
+
+    We are going to run using the Uncompahgre data in the ``./density``
+    directory.
+
+
+.. literalinclude:: ./boundary-command-boundary.txt
+    :linenos:
+
+.. image:: ../../../images/boundary-text-output.png
+
+... a giant blizzard of coordinate output scrolls across our terminal. Not very
+useful.
+
+Instead, let's generate some kind of vector output we can visualize with
+:ref:`qgis`.  The ``pdal tindex`` is the "tile index" command, and it outputs a
+vector geometry file for each point cloud file it reads. It generates this
+boundary using the same mechanism we invoked above -- :ref:`filters.hexbin`.
+We can leverage this capability to output a contiguous boundary of the ``uncompahgre.laz``
+file.
+
+
+.. literalinclude:: ./boundary-command-tindex.txt
+    :linenos:
+
+.. image:: ../../../images/boundary-tindex-run.png
+
+Once we've run the :ref:`tindex_command`, we can now visualize our output:
+
+
+Open :ref:`qgis` and select `Add Vector Layer`:
+
+.. image:: ../../../images/density-add-layer.png
+
+Navigate to the ``exercises/analysis/boundary`` directory and
+then open the ``boundary.sqlite`` file:
+
+.. image:: ../../../images/boundary-qgis-view.png
+
+Notes
+--------------------------------------------------------------------------------
+
+1. The PDAL boundary computation is an approximation based on a hexagon
+   tessellation. It uses the software at http://github.com/hobu/hexer to do
+   this task.
+
+2. :ref:`filters.hexbin` can also be used by the :ref:`density_command` to
+   generate a tessellated surface. See the :ref:`density` example for
+   steps to achieve this.
+
+3. The :ref:`tindex_command` can be used to generate boundaries for large
+   collections of data. A boundary-based indexing scheme is commonly used
+   in LiDAR processing, and PDAL supports it through the ``tindex``
+   application. You can also use this command to merge data together
+   (query across boundaries, for example).
+
diff --git a/doc/workshop/exercises/analysis/clipping/attributes.json b/doc/workshop/exercises/analysis/clipping/attributes.json
new file mode 100644
index 0000000..6a1ccd5
--- /dev/null
+++ b/doc/workshop/exercises/analysis/clipping/attributes.json
@@ -0,0 +1,11 @@
+{
+"type": "FeatureCollection",
+                                                                                
+"features": [
+{ "type": "Feature", "properties": { "id": 6, "cls": 2 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -123.067019000727967, 44.059524946819884 ], [ -123.066697831944637, 44.059771500882199 ], [ -123.065494970755537, 44.059838504937517 ], [ -123.064074882074451, 44.059742872480356 ], [ -123.063707784110264, 44.059184772926969 ], [ -123.06401206144227, 44.05752667418929 ], [ -123.065925935478475, 44.057786669839672 ], [ -123.065745673821624, 44.058221493390228 ], [ -123.066333794 [...]
+{ "type": "Feature", "properties": { "id": 4, "cls": 5 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -123.064404672110015, 44.062248205780641 ], [ -123.063001791092177, 44.062295757390288 ], [ -123.062938948566199, 44.061866413306625 ], [ -123.063711529699802, 44.061825083575727 ], [ -123.062903757506561, 44.060798284876931 ], [ -123.0634590922878, 44.06084959530147 ], [ -123.063939134831102, 44.061205726019097 ], [ -123.064707560079256, 44.061834553141757 ], [ -123.0644046721 [...]
+{ "type": "Feature", "properties": { "id": 3, "cls": 6 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -123.071105494548775, 44.059121603563895 ], [ -123.070160265697027, 44.059007342229378 ], [ -123.070431650409773, 44.058379004056327 ], [ -123.071225617617372, 44.058576450660659 ], [ -123.071105494548775, 44.059121603563895 ] ] ] } },
+{ "type": "Feature", "properties": { "id": 2, "cls": 6 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -123.06887558672102, 44.059227793751305 ], [ -123.068425255931515, 44.059301773132752 ], [ -123.067936238335534, 44.059248990941661 ], [ -123.06749590912527, 44.059043544671049 ], [ -123.06710185170931, 44.058629650191868 ], [ -123.067099413306224, 44.058063335596437 ], [ -123.067333190514816, 44.057587417330502 ], [ -123.067852567837207, 44.057320435256116 ], [ -123.0682904503 [...]
+{ "type": "Feature", "properties": { "id": 1, "cls": 6 }, "geometry": { "type": "Polygon", "coordinates": [ [ [ -123.071871740947586, 44.058426242457685 ], [ -123.070376025800414, 44.058117017731242 ], [ -123.07060216253906, 44.057465769662898 ], [ -123.072144836409578, 44.057837746292243 ], [ -123.071871740947586, 44.058426242457685 ] ] ] } }
+]
+}
diff --git a/doc/workshop/exercises/analysis/clipping/attributes.vrt b/doc/workshop/exercises/analysis/clipping/attributes.vrt
new file mode 100644
index 0000000..1362d72
--- /dev/null
+++ b/doc/workshop/exercises/analysis/clipping/attributes.vrt
@@ -0,0 +1,9 @@
+    <OGRVRTDataSource>
+        <OGRVRTWarpedLayer>
+            <OGRVRTLayer name="OGRGeoJSON">
+                <SrcDataSource>/data/exercises/analysis/clipping/attributes.json</SrcDataSource>
+                <LayerSRS>EPSG:4326</LayerSRS>
+            </OGRVRTLayer>
+            <TargetSRS>+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999999999 +y_0=0 +ellps=GRS80 +units=ft +no_defs</TargetSRS>
+        </OGRVRTWarpedLayer>
+    </OGRVRTDataSource>
diff --git a/doc/workshop/exercises/analysis/clipping/clipping-run-command.txt b/doc/workshop/exercises/analysis/clipping/clipping-run-command.txt
new file mode 100644
index 0000000..afcf062
--- /dev/null
+++ b/doc/workshop/exercises/analysis/clipping/clipping-run-command.txt
@@ -0,0 +1,3 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+       pdal pipeline \
+       /data/exercises/analysis/clipping/clipping.json
diff --git a/doc/workshop/exercises/analysis/clipping/clipping.json b/doc/workshop/exercises/analysis/clipping/clipping.json
new file mode 100644
index 0000000..ca9b29f
--- /dev/null
+++ b/doc/workshop/exercises/analysis/clipping/clipping.json
@@ -0,0 +1,17 @@
+{
+    "pipeline": [
+        "/data/exercises/analysis/clipping/autzen.laz",
+        {
+            "column": "CLS",
+            "datasource": "/data/exercises/analysis/clipping/attributes.vrt",
+            "dimension": "Classification",
+            "layer": "OGRGeoJSON",
+            "type": "filters.attribute"
+        },
+        {
+            "limits": "Classification[6:6]",
+            "type": "filters.range"
+        },
+        "/data/exercises/analysis/clipping/stadium.las"
+    ]
+}
diff --git a/doc/workshop/exercises/analysis/clipping/clipping.rst b/doc/workshop/exercises/analysis/clipping/clipping.rst
new file mode 100644
index 0000000..1ac557c
--- /dev/null
+++ b/doc/workshop/exercises/analysis/clipping/clipping.rst
@@ -0,0 +1,156 @@
+.. _workshop-clipping:
+
+Clipping data with polygons
+================================================================================
+
+.. include:: ../../../includes/substitutions.rst
+
+.. index:: Clipping, OGR, Vector
+
+This exercise uses PDAL to apply to clip data with polygon geometries.
+
+.. note::
+
+    This exercise is an adaption of the :ref:`PDAL tutorial <clipping>`.
+
+Exercise
+--------------------------------------------------------------------------------
+
+The ``autzen.laz`` file is a staple in PDAL and libLAS examples. We will
+use this file to demonstrate clipping points with a geometry. We're going to
+clip out the stadium into a new LAS file.
+
+.. image:: ../../../images/clipping-autzen-view.png
+
+
+
+Data preparation
+................................................................................
+
+
+The data are mixed in two different coordinate systems. The :ref:`LAZ
+<readers.las>` file is in `Oregon State Plane Ft.`_ and the `GeoJSON`_ defining
+the polygons, ``attributes.json``, is in `EPSG:4326`_. We have two options --
+project the point cloud into the coordinate system of the attribute polygons,
+or project the attribute polygons into the coordinate system of the points. The
+latter is preferable in this case because it will be less math and therefore
+less computation. To make it convenient, we can utilize `OGR`_'s `VRT`_
+capability to reproject the data for us on-the-fly:
+
+
+.. code:: xml
+
+    <OGRVRTDataSource>
+        <OGRVRTWarpedLayer>
+            <OGRVRTLayer name="OGRGeoJSON">
+                <SrcDataSource>attributes.json</SrcDataSource>
+                <LayerSRS>EPSG:4326</LayerSRS>
+            </OGRVRTLayer>
+            <TargetSRS>+proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999999999 +y_0=0 +ellps=GRS80 +units=ft +no_defs</TargetSRS>
+        </OGRVRTWarpedLayer>
+    </OGRVRTDataSource>
+
+.. note::
+
+    This VRT file is available in your workshop materials in the
+    ``./exercises/analysis/clipping/attributes.json`` file. A GDAL or OGR VRT
+    is a kind of "virtual" data source definition type that combines a
+    definition of data and a processing operation into a single, readable data
+    stream.
+
+.. image:: ../../../images/clipping-view-polygons.png
+
+.. note::
+
+    The GeoJSON file does not have an externally-defined coordinate system,
+    so we are explictly setting one with the LayerSRS parameter. If your
+    data does have coordinate system information, you don't need to do that.
+    See the `OGR VRT documentation`_ for more details.
+
+.. _`OGR VRT documentation`: http://www.gdal.org/drv_vrt.html
+
+Pipeline breakdown
+................................................................................
+
+.. include:: ./clipping.json
+    :code: json
+
+.. note::
+
+    This pipeline is available in your workshop materials in the
+    ``./exercises/analysis/clipping/clipping.json`` file.
+
+1. Reader
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``autzen.laz`` is the `LASzip`_ file we will clip.
+
+2. :ref:`filters.attribute`
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The :ref:`filters.attribute` filter allows you to assign values for coincident
+polygons. Using the VRT we defined in `Data preparation`_, :ref:`filters.attribute` will
+assign the values from the ``CLS`` column to the ``Classification`` field.
+
+
+3. :ref:`filters.range`
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The attributes in the ``attributes.json`` file include polygons with values
+``2``, ``5``, and ``6``. We will use :ref:`filters.range` to keep points with
+``Classification`` values in the range of ``6:6``.
+
+3. Writer
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* We will write our content back out using an :ref:`writers.las`.
+
+Execution
+................................................................................
+
+Invoke the following command, substituting accordingly, in your `Docker
+Quickstart Terminal`:
+
+
+.. literalinclude:: ./clipping-run-command.txt
+    :linenos:
+
+.. image:: ../../../images/clipping-run-command.png
+
+Visualization
+................................................................................
+
+Use one of the point cloud visualization tools you installed to take a look at
+your ``c:\Users\Howard\PDAL\exercises\analysis\clipping\stadium.las`` output.
+In the example below, we simply opened the file using the http://plas.io
+website.
+
+
+.. image:: ../../../images/clipping-stadium-clipped.png
+
+
+Notes
+--------------------------------------------------------------------------------
+
+1. :ref:`filters.attribute` does point-in-polygon checks against every point
+   that is read.
+
+2. Points that are *on* the boundary are included.
+
+
+.. _`NASA Airborne Snow Observatory`: http://aso.jpl.nasa.gov/
+.. _`CloudCompare`: http://www.danielgm.net/cc/
+
+.. _`ASPRS LAS`: http://www.asprs.org/Committee-General/LASer-LAS-File-Format-Exchange-Activities.html
+.. _`LASzip`: http://laszip.org
+
+.. _`VRT`: http://www.gdal.org/drv_vrt.html
+
+.. _`EPSG:4326`: http://epsg.io/4326
+.. _`GeoJSON`: http://geojson.org
+
+.. _`Oregon State Plane Ft.`: http://www.oregon.gov/DAS/CIO/GEO/pages/coordination/projections/projections.aspx
+
+.. _`OGR`: http://www.gdal.org
+.. _`Shapefiles`: https://en.wikipedia.org/wiki/Shapefile
+
diff --git a/doc/workshop/exercises/analysis/colorization/colorization-run-command.txt b/doc/workshop/exercises/analysis/colorization/colorization-run-command.txt
new file mode 100644
index 0000000..a26d613
--- /dev/null
+++ b/doc/workshop/exercises/analysis/colorization/colorization-run-command.txt
@@ -0,0 +1,3 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+       pdal pipeline \
+       /data/exercises/analysis/colorization/colorize.json
diff --git a/doc/workshop/exercises/analysis/colorization/colorization.rst b/doc/workshop/exercises/analysis/colorization/colorization.rst
new file mode 100644
index 0000000..fee940e
--- /dev/null
+++ b/doc/workshop/exercises/analysis/colorization/colorization.rst
@@ -0,0 +1,138 @@
+.. _colorization:
+
+Colorizing points with imagery
+================================================================================
+
+.. include:: ../../../includes/substitutions.rst
+
+.. index:: Colorization, GDAL, Raster, RGB
+
+This exercise uses PDAL to apply color information from a raster onto point
+data. Point cloud data, especially |LiDAR|, do not often have coincident color
+information. It is possible to project color information onto the points from
+an imagery source. This makes it convenient to see data in a larger context.
+
+
+Exercise
+--------------------------------------------------------------------------------
+
+PDAL provides a :ref:`filter <filters>` to apply color information from
+raster files onto point cloud data. Think of this operation as a top-down
+projection of RGB color values on the points.
+
+Because this operation is somewhat complex, we are going to use a pipeline
+to define it.
+
+
+.. literalinclude:: ./colorize.json
+    :linenos:
+
+Pipeline breakdown
+................................................................................
+
+1. Reader
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+After our pipeline errata, the first item we define in the pipeline is the
+point cloud file we're going to read.
+
+::
+
+    "/data/exercises/analysis/colorization/uncompahgre.laz",
+
+2. :ref:`filters.colorization`
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The :ref:`filters.colorization` PDAL filter does most of the work for this
+operation. We're going to use the default data scaling options. This
+filter will create PDAL dimensions ``Red``, ``Green``, and ``Blue``.
+
+::
+
+    {
+        "type": "filters.colorization",
+        "raster": "/data/exercises/analysis/colorization/casi-2015-04-29-weekly-mosaic.tif"
+    },
+
+
+3. :ref:`filters.range`
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+A small challenge is the raster will colorize many points with NODATA values.
+We are going to use the :ref:`filters.range` to filter keep any points that
+have ``Red >= 1``.
+
+::
+
+    {
+        "type": "filters.range",
+        "limits": "Red[1:]"
+    },
+
+4. :ref:`writers.las`
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+We could just define the ``uncompahgre-colored.laz`` filename, but we want to
+add a few options to have finer control over what is written. These include:
+
+::
+
+    {
+        "type": "writers.las",
+        "compression": "true",
+        "minor_version": "2",
+        "dataformat_id": "3",
+        "filename":"/data/exercises/colorization/analysis/uncompahgre-colored.laz"
+    }
+
+1. ``compression``: |LASzip| data is ~6x smaller than ASPRS LAS.
+2. ``minor_version``: We want to make sure to output LAS 1.2, which will
+   provide the widest compatibility with other softwares that can
+   consume LAS.
+3. ``dataformat_id``: Format 3 supports both time and color information
+
+.. note::
+
+    :ref:`writers.las` provides a number of possible options to control
+    how your LAS files are written.
+
+Execution
+................................................................................
+
+Invoke the following command, substituting accordingly, in your `Docker
+Quickstart Terminal`:
+
+
+.. literalinclude:: ./colorization-run-command.txt
+    :linenos:
+
+.. image:: ../../../images/colorize-run-command.png
+
+Visualization
+................................................................................
+
+Use one of the point cloud visualization tools you installed to take a look at
+your ``uncompahgre-colored.laz`` output. In the example below, we simply
+opened the file using the http://plas.io website.
+
+.. image:: ../../../images/colorize-umpaghre-colored.png
+
+
+Notes
+--------------------------------------------------------------------------------
+
+
+1. Applying color information that is not time-coincident with the point cloud
+   data will mean you will see discontinuities.
+
+2. GDAL is used to read the image source. Any GDAL-readable data format
+   can be used.
+
+3. There are performance considerations to be aware of depending on the
+   raster format and type being used. See :ref:`filters.colorization`
+   for more information.
+
+4. These data are of `Uncompahgre Basin`_ courtesy of the `NASA Airborne Snow Observatory`_.
+
+.. _`NASA Airborne Snow Observatory`: http://aso.jpl.nasa.gov/
+.. _`Uncompahgre Basin`: https://en.wikipedia.org/wiki/Uncompahgre_River
diff --git a/doc/workshop/exercises/analysis/colorization/colorize.json b/doc/workshop/exercises/analysis/colorization/colorize.json
new file mode 100644
index 0000000..1b0af34
--- /dev/null
+++ b/doc/workshop/exercises/analysis/colorization/colorize.json
@@ -0,0 +1,21 @@
+{
+    "pipeline": [
+        "/data/exercises/analysis/colorization/uncompahgre.laz",
+        {
+            "type": "filters.colorization",
+            "raster": "/data/exercises/analysis/colorization/casi-2015-04-29-weekly-mosaic.tif"
+        },
+        {
+            "type": "filters.range",
+            "limits": "Red[1:]"
+        },
+        {
+            "type": "writers.las",
+            "compression": "true",
+            "minor_version": "2",
+            "dataformat_id": "3",
+            "filename":"/data/exercises/analysis/colorization/uncompahgre-colored.laz"
+        }
+    ]
+}
+
diff --git a/doc/workshop/exercises/analysis/denoising/denoise.json b/doc/workshop/exercises/analysis/denoising/denoise.json
new file mode 100644
index 0000000..7769662
--- /dev/null
+++ b/doc/workshop/exercises/analysis/denoising/denoise.json
@@ -0,0 +1,23 @@
+{
+    "pipeline": [
+        "/data/exercises/analysis/denoising/18TWK820985.laz",
+        {
+            "type": "filters.statisticaloutlier",
+            "extract":"true",
+            "multiplier":3,
+            "mean_k": 8
+        },
+        {
+            "type": "filters.range",
+            "limits": "Z[-100:3000]"
+        },
+        {
+            "type": "writers.las",
+            "compression": "true",
+            "minor_version": "2",
+            "dataformat_id": "0",
+            "filename":"/data/exercises/analysis/denoising/clean.laz"
+        }
+    ]
+}
+
diff --git a/doc/workshop/exercises/analysis/denoising/denoising-docker-machine-create.txt b/doc/workshop/exercises/analysis/denoising/denoising-docker-machine-create.txt
new file mode 100644
index 0000000..f805018
--- /dev/null
+++ b/doc/workshop/exercises/analysis/denoising/denoising-docker-machine-create.txt
@@ -0,0 +1,2 @@
+$ docker-machine create -d virtualbox \
+     --virtualbox-memory 2048 default
diff --git a/doc/workshop/exercises/analysis/denoising/denoising-docker-machine-delete.txt b/doc/workshop/exercises/analysis/denoising/denoising-docker-machine-delete.txt
new file mode 100644
index 0000000..d985cc7
--- /dev/null
+++ b/doc/workshop/exercises/analysis/denoising/denoising-docker-machine-delete.txt
@@ -0,0 +1 @@
+$ docker-machine rm default
diff --git a/doc/workshop/exercises/analysis/denoising/denoising-run-command.txt b/doc/workshop/exercises/analysis/denoising/denoising-run-command.txt
new file mode 100644
index 0000000..f5becdc
--- /dev/null
+++ b/doc/workshop/exercises/analysis/denoising/denoising-run-command.txt
@@ -0,0 +1,4 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+       pdal pipeline \
+       /data/exercises/analysis/denoising/denoise.json
+
diff --git a/doc/workshop/exercises/analysis/denoising/denoising.rst b/doc/workshop/exercises/analysis/denoising/denoising.rst
new file mode 100644
index 0000000..d6162a9
--- /dev/null
+++ b/doc/workshop/exercises/analysis/denoising/denoising.rst
@@ -0,0 +1,149 @@
+.. _denoising:
+
+Removing noise
+================================================================================
+
+.. include:: ../../../includes/substitutions.rst
+
+.. index:: Denoising, Filtering
+
+This exercise uses PDAL to remove unwanted noise in an ALS collection.
+
+.. warning::
+
+    Our default :ref:`docker` machine instance is probably going to run out of
+    memory for this operation (it only has 1gb). We may need to recreate it with the following
+    commands to increase the available memory:
+
+    1. Remove the existing machine instances
+
+        .. literalinclude:: ./denoising-docker-machine-delete.txt
+
+    2. Create a new one with 2gb of memory
+
+        .. literalinclude:: ./denoising-docker-machine-delete.txt
+
+
+
+Exercise
+--------------------------------------------------------------------------------
+
+PDAL provides a :ref:`filter <filters>` through |PCL| to apply a
+statistical filter to data.
+
+Because this operation is somewhat complex, we are going to use a pipeline
+to define it.
+
+.. include:: ./denoise.json
+    :literal:
+
+.. note::
+
+    This pipeline is available in your workshop materials in the
+    ``./exercises/analysis/denoising/denoise.json`` file.
+
+Pipeline breakdown
+................................................................................
+
+1. Reader
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+After our pipeline errata, the first item we define in the pipeline is the
+point cloud file we're going to read.
+
+::
+
+    "/data/exercises/analysis/denoising/18TWK820985.laz",
+
+2. :ref:`filters.statisticaloutlier`
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The :ref:`filters.statisticaloutlier` PDAL filter does most of the work for this
+operation.
+
+::
+
+    {
+        "type": "filters.statisticaloutlier",
+        "extract":"true",
+        "multiplier":3,
+        "mean_k": 8
+    },
+
+
+
+3. :ref:`filters.range`
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Even with the :ref:`filters.statisticaloutlier` operation, there is still a
+cluster of points with extremely negative ``Z`` values. These are some artifact
+or miscomputation of processing, and we don't want these points. We are going
+to use ::ref:`filters.range` to keep only points that are within the range
+``-100 <= Z <= 3000``.
+
+::
+
+    {
+        "type": "filters.range",
+        "limits": "Z[-100:3000]"
+    },
+
+4. :ref:`writers.las`
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+We could just define the ``clean.laz`` filename, but we want to
+add a few options to have finer control over what is written. These include:
+
+::
+
+    {
+        "type": "writers.las",
+        "compression": "true",
+        "minor_version": "2",
+        "dataformat_id": "0",
+        "filename":"/data/exercises/analysis/denoising/clean.laz"
+    }
+
+
+1. ``compression``: |LASzip| data is ~6x smaller than ASPRS LAS.
+2. ``minor_version``: We want to make sure to output LAS 1.2, which will
+   provide the widest compatibility with other softwares that can
+   consume LAS.
+3. ``dataformat_id``: Format 3 supports both time and color information
+
+.. note::
+
+    :ref:`writers.las` provides a number of possible options to control
+    how your LAS files are written.
+
+Execution
+................................................................................
+
+Invoke the following command, substituting accordingly, in your `Docker
+Quickstart Terminal`:
+
+.. literalinclude:: ./denoising-run-command.txt
+
+.. image:: ../../../images/denoise-run-command.png
+
+Visualization
+................................................................................
+
+Use one of the point cloud visualization tools you installed to take a look at
+your ``clean.laz`` output. In the example below, we simply
+opened the file using the `Fugro Viewer`_
+
+.. image:: ../../../images/denoise-fugro.png
+
+.. _`Fugro Viewer`: http://www.fugroviewer.com/
+
+
+Notes
+--------------------------------------------------------------------------------
+
+1. Control the aggressiveness of the algorithm with the ``mean_k`` parameter.
+
+2. :ref:`filters.statisticaloutlier` requires the entire set in memory to
+   process. If you have really large files, you are going to need to
+   :ref:`split <filters.splitter>` them in some way.
+
diff --git a/doc/workshop/exercises/analysis/density/density-command.txt b/doc/workshop/exercises/analysis/density/density-command.txt
new file mode 100644
index 0000000..1db75f1
--- /dev/null
+++ b/doc/workshop/exercises/analysis/density/density-command.txt
@@ -0,0 +1,5 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+       pdal density \
+       /data/exercises/analysis/density/uncompahgre.laz \
+       -o /data/exercises/analysis/density/density.sqlite \
+       -f SQLite
diff --git a/doc/workshop/exercises/analysis/density/density.rst b/doc/workshop/exercises/analysis/density/density.rst
new file mode 100644
index 0000000..054bd09
--- /dev/null
+++ b/doc/workshop/exercises/analysis/density/density.rst
@@ -0,0 +1,90 @@
+.. _density:
+
+Visualizing acquisition density
+================================================================================
+
+.. include:: ../../../includes/substitutions.rst
+
+.. index:: Density, OGR, hexagon tessellation
+
+This exercise uses PDAL to generate a density surface. You can use this
+surface to summarize acquisition quality.
+
+
+Exercise
+--------------------------------------------------------------------------------
+
+PDAL provides an :ref:`application <density_command>` to compute a vector
+field of hexagons computed with :ref:`filters.hexbin`. It is a kind of
+simple interpolation, which we will use for visualization in |QGIS|.
+
+
+Command
+................................................................................
+
+Invoke the following command, substituting accordingly, in your `Docker
+Quickstart Terminal`:
+
+.. literalinclude:: ./density-command.txt
+    :linenos:
+
+
+.. image:: ../../../images/density-command-run.png
+
+Visualization
+................................................................................
+
+The command uses GDAL to output a `SQLite`_ file containing hexagon polygons.
+We will now use |QGIS| to visualize them.
+
+.. _`SQLite`: http://sqlite.org
+
+
+1. Add a vector layer
+
+    .. image:: ../../../images/density-add-layer.png
+
+2. Navigate to the output directory
+
+    .. image:: ../../../images/density-select-layer.png
+
+3. Add the ``density.sqlite`` file to the view
+
+    .. image:: ../../../images/density-file-open.png
+
+4. Right click on the ``density.sqlite`` layer in the `Layers` panel
+   and then choose ``Properties``.
+
+5. Pick the ``Graduated`` drop down
+
+    .. image:: ../../../images/density-graduated-symbols-pick.png
+
+6. Choose the ``Count`` column to visualize
+
+    .. image:: ../../../images/density-count-attribute.png
+
+7. Choose the ``Classify`` button to add intervals
+
+    .. image:: ../../../images/density-graduated-symbols.png
+
+8. Adjust the visualization as desired
+
+    .. image:: ../../../images/density-final-render.png
+
+Notes
+--------------------------------------------------------------------------------
+
+
+1. You can control how the density hexagon surface is created by
+   using the options in :ref:`filters.hexbin`.
+
+   The following settings will use a hexagon edge size of 24
+   units.
+
+   ::
+
+       --filters.hexbin.edge_size=24
+
+2. You can generate a contiguous boundary using |PDAL|'s :ref:`tindex_command`.
+
+.. _`Uncompahgre Basin`: https://en.wikipedia.org/wiki/Uncompahgre_River
diff --git a/doc/workshop/exercises/analysis/dtm/dtm-run-command.txt b/doc/workshop/exercises/analysis/dtm/dtm-run-command.txt
new file mode 100644
index 0000000..9b4a19c
--- /dev/null
+++ b/doc/workshop/exercises/analysis/dtm/dtm-run-command.txt
@@ -0,0 +1,3 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+       pdal pipeline \
+       /data/exercises/analysis/dtm/p2g.json
diff --git a/doc/workshop/exercises/analysis/dtm/dtm.rst b/doc/workshop/exercises/analysis/dtm/dtm.rst
new file mode 100644
index 0000000..1aa33e8
--- /dev/null
+++ b/doc/workshop/exercises/analysis/dtm/dtm.rst
@@ -0,0 +1,133 @@
+.. _dtm:
+
+Generating a DTM
+================================================================================
+
+.. include:: ../../../includes/substitutions.rst
+
+.. index:: elevation model, DTM, DSM
+
+This exercise uses PDAL to generate an elevation model surface using the
+output from the :ref:`ground` exercise, PDAL's :ref:`writers.p2g` operation,
+and |GDAL| to generate an elevation and hillshade surface from point cloud
+data.
+
+
+Exercise
+--------------------------------------------------------------------------------
+
+
+.. note::
+
+    The primary input for `Digital Terrain Model`_ generation is a point cloud
+    with ground classifications. We created this file, called
+    ``ground-filtered.laz``, in the :ref:`ground` exercise. Please produce that
+    file by following that exercise before starting this one.
+
+.. _`Digital Terrain Model`: https://en.wikipedia.org/wiki/Digital_elevation_model
+
+
+
+
+
+Command
+................................................................................
+
+Invoke the following command, substituting accordingly, in your `Docker
+Quickstart Terminal`:
+
+PDAL capability to generate rasterized output is provided by the :ref:`writers.p2g`
+stage. There is no :ref:`application <apps>` to drive this stage, and we
+must use a pipeline.
+
+Pipeline breakdown
+................................................................................
+
+
+.. include:: ./p2g.json
+    :literal:
+
+.. note::
+
+    this pipeline is available in your workshop materials in the
+    ``./exercises/analysis/dtm/dtm.json`` file.
+
+
+1. Reader
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``ground-filtered.laz`` is the |LASzip| file we will clip. You should have
+created this output as part of the :ref:`ground` exercise.
+
+
+2. :ref:`writers.p2g`
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The `Points2grid`_ writer that bins the point cloud data into an elevation
+surface.
+
+
+.. _`Points2grid`: https://github.com/CRREL/points2grid
+
+
+
+Execution
+................................................................................
+
+.. literalinclude:: ./dtm-run-command.txt
+    :linenos:
+
+.. image:: ../../../images/dtm-run-command.png
+
+Visualization
+................................................................................
+
+Something happened, and some files were written, but we cannot really
+see what was produced. Let us use :ref:`qgis` to visualize the output.
+
+1. Open :ref:`qgis` and `Add Raster Layer`:
+
+   .. image:: ../../../images/dtm-add-raster-layer.png
+
+2. Add the `dtm.idw.tif` file from your ``./PDAL/exercises/analysis/dtm``
+   directory.
+
+   .. image:: ../../../images/dtm-add-raster-mean.png
+
+   .. image:: ../../../images/dtm-qgis-added.png
+
+3. Classify the DTM by right-clicking on the `dtm.idw.tif` and choosing
+   `Properties`. Pick the pseudocolor rendering type, and then
+   choose a color ramp and click `Classify`.
+
+   .. image:: ../../../images/dtm-qgis-classify.png
+
+   .. image:: ../../../images/dtm-qgis-colorize-dtm.png
+
+
+4. :ref:`qgis` provides access to |GDAL| processing tools, and we
+   are going to use that to create a hillshade of our surface.
+   Choose `Raster-->Analysis-->Dem`:
+
+   .. image:: ../../../images/dtm-qgis-select-hillshade.png
+
+5. Click the window for the `Output file` and select a location
+   to save the ``hillshade.tif`` file.
+
+   .. image:: ../../../images/dtm-qgis-gdaldem.png
+
+6. Click `OK` and the hillshade of your DTM is now available
+
+   .. image:: ../../../images/dtm-qgis-hillshade-done.png
+
+Notes
+--------------------------------------------------------------------------------
+
+1. `gdaldem`_, which powers the :ref:`qgis` DEM tools, is a very powerful
+   command line utility you can use for processing data.
+
+2. `Points2grid`_ can be used for large data, but it does not interplate
+   typical `TIN`_ surface model before interpolating.
+
+.. _`TIN`: https://en.wikipedia.org/wiki/Triangulated_irregular_network
+.. _`gdaldem`: http://www.gdal.org/gdaldem.html
diff --git a/doc/workshop/exercises/analysis/dtm/p2g.json b/doc/workshop/exercises/analysis/dtm/p2g.json
new file mode 100644
index 0000000..dd55869
--- /dev/null
+++ b/doc/workshop/exercises/analysis/dtm/p2g.json
@@ -0,0 +1,14 @@
+{
+    "pipeline": [
+        "/data/exercises/analysis/ground/ground-filtered.laz",
+        {
+            "filename":"/data/exercises/analysis/dtm/dtm",
+            "output_format":"tif",
+            "output_type":"all",
+            "grid_dist_x":"2.0",
+            "grid_dist_y":"2.0",
+            "type": "writers.p2g"
+        }
+    ]
+}
+
diff --git a/doc/workshop/exercises/analysis/ground/filter.json b/doc/workshop/exercises/analysis/ground/filter.json
new file mode 100644
index 0000000..cc9daec
--- /dev/null
+++ b/doc/workshop/exercises/analysis/ground/filter.json
@@ -0,0 +1,14 @@
+{
+  "pipeline": {
+    "name": "Progressive Morphological Filter with Outlier Removal",
+    "version": 1.0,
+    "filters": [{
+        "name": "StatisticalOutlierRemoval",
+        "setMeanK": 8,
+        "setStddevMulThresh": 3.0
+      }, {
+        "name": "ProgressiveMorphologicalFilter",
+        "setCellSize": 1.5
+    }]
+  }
+}
diff --git a/doc/workshop/exercises/analysis/ground/ground-run-ground-only.txt b/doc/workshop/exercises/analysis/ground/ground-run-ground-only.txt
new file mode 100644
index 0000000..16f80c5
--- /dev/null
+++ b/doc/workshop/exercises/analysis/ground/ground-run-ground-only.txt
@@ -0,0 +1,7 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+       pdal ground \
+       /data/exercises/analysis/ground/CSite1_orig-utm.laz \
+       -o /data/exercises/analysis/ground/ground-only.laz \
+       --filters.ground.classify=true \
+       --filters.ground.extract=true \
+       --writers.las.compression=true -v 4
diff --git a/doc/workshop/exercises/analysis/ground/ground-run-no-filter.txt b/doc/workshop/exercises/analysis/ground/ground-run-no-filter.txt
new file mode 100644
index 0000000..afb1e64
--- /dev/null
+++ b/doc/workshop/exercises/analysis/ground/ground-run-no-filter.txt
@@ -0,0 +1,6 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+       pdal ground \
+       /data/exercises/analysis/ground/CSite1_orig-utm.laz \
+       -o /data/exercises/analysis/ground/ground.laz \
+       --filters.ground.classify=true \
+       --writers.las.compression=true -v 4
diff --git a/doc/workshop/exercises/analysis/ground/ground-run-pcl-filter.txt b/doc/workshop/exercises/analysis/ground/ground-run-pcl-filter.txt
new file mode 100644
index 0000000..b27fc2d
--- /dev/null
+++ b/doc/workshop/exercises/analysis/ground/ground-run-pcl-filter.txt
@@ -0,0 +1,5 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+   pdal pcl \
+   /data/exercises/analysis/ground/CSite1_orig-utm.laz \
+   -o /data/exercises/analysis/ground/ground-filtered.laz \
+   -p /data/exercises/analysis/ground/filter.json
diff --git a/doc/workshop/exercises/analysis/ground/ground.rst b/doc/workshop/exercises/analysis/ground/ground.rst
new file mode 100644
index 0000000..700f946
--- /dev/null
+++ b/doc/workshop/exercises/analysis/ground/ground.rst
@@ -0,0 +1,112 @@
+.. _ground:
+
+Identifying ground
+================================================================================
+
+.. include:: ../../../includes/substitutions.rst
+
+.. index:: ground, classification, filtering
+
+This exercise uses PDAL to classify ground returns using the `Progressive
+Morphological Filter (PMF)` technique.
+
+.. note::
+
+    This excerise is an adaptation of the :ref:`pcl_ground` tutorial on the
+    PDAL website by Brad Chambers. You can find more detail and example
+    invocations there.
+
+Exercise
+--------------------------------------------------------------------------------
+
+The primary input for `Digital Terrain Model`_ generation is a point cloud with
+ground vs. not-ground classifications. In this example, we will use an
+algorithm provided by PDAL, the `Progressive Morphological Filter` technique to
+generate a ground surface.
+
+.. seealso::
+
+    PMF is implemented in PCL. PCL is then linked to PDAL. You can read more
+    about the specifics of the algorithm from the `paper
+    <http://users.cis.fiu.edu/~chens/PDF/TGRS.pdf>`__, and you can read more
+    about the PCL implementation in the source code on `github
+    <https://github.com/PointCloudLibrary/pcl/blob/master/filters/include/pcl/filters/morphological_filter.h>`__.
+
+.. _`Digital Terrain Model`: https://en.wikipedia.org/wiki/Digital_elevation_model
+
+Command
+................................................................................
+
+Invoke the following command, substituting accordingly, in your `Docker
+Quickstart Terminal`:
+
+.. literalinclude:: ./ground-run-no-filter.txt
+    :linenos:
+
+.. image:: ../../../images/ground-run-command.png
+
+As we can see, the algorithm does a great job of discriminating the points, but
+there's a few issues.
+
+.. image:: ../../../images/ground-classified-included.png
+
+
+There's noise underneath the main surface that will cause us trouble when we
+generate a terrain surface.
+
+.. image:: ../../../images/ground-classified-included-side.png
+
+Filtering
+................................................................................
+
+We do not yet have a satisfactory surface for generating a DTM.  When we
+visualize the output of this ground operation, we notice there's still some
+noise. PCL also has its own :ref:`pipeline` concept, and we can stack the
+call to PMF with a call to a the `filters.statisticaloutlier` technique we
+learned about in :ref:`denoising`.
+
+1. Let us start by removing the non-ground data:
+
+.. literalinclude:: ./ground-run-ground-only.txt
+    :linenos:
+    :emphasize-lines: 6
+
+.. note::
+
+    The ``filters.ground.extract=true`` item causes all data except
+    ground-classified points to be removed from the set.
+
+Buildings and other non-ground points are removed with the ``extract`` option
+of :ref:`filters.ground`
+
+.. image:: ../../../images/ground-ground-only-view.png
+
+
+2. Now we will remove the noise. PDAL has the :ref:`pcl_command` to allow you
+   to pass |PCL| pipelines for processing. We will use this to combine
+   the PMF and StatisticalOutlierRemoval filters into a single operation.
+
+.. literalinclude:: ./filter.json
+    :linenos:
+
+.. note::
+
+    This pipeline is available in your workshop materials in the
+        ``./exercises/analysis/ground/filter.json`` file.
+
+
+.. literalinclude:: ./ground-run-pcl-filter.txt
+    :linenos:
+
+The :ref:`pcl_command` allows you to use :ref:`pcl_json_specification` operations in
+succession over data.
+
+.. image:: ../../../images/ground-filtered.png
+
+.. note::
+
+    This pipeline is available in your workshop materials in the
+    ``./exercises/analysis/ground/filter.json`` file.
+
+
+
diff --git a/doc/workshop/exercises/analysis/thinning/thinning-run-dartsample.txt b/doc/workshop/exercises/analysis/thinning/thinning-run-dartsample.txt
new file mode 100644
index 0000000..64043f8
--- /dev/null
+++ b/doc/workshop/exercises/analysis/thinning/thinning-run-dartsample.txt
@@ -0,0 +1,6 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+       pdal translate \
+       /data/exercises/analysis/density/uncompahgre.laz \
+       /data/exercises/analysis/thinning/uncompahgre-thin.laz \
+       dartsample \
+       --filters.dartsample.radius=20
diff --git a/doc/workshop/exercises/analysis/thinning/thinning.rst b/doc/workshop/exercises/analysis/thinning/thinning.rst
new file mode 100644
index 0000000..aa75d08
--- /dev/null
+++ b/doc/workshop/exercises/analysis/thinning/thinning.rst
@@ -0,0 +1,80 @@
+.. _thinning:
+
+Thinning
+================================================================================
+
+.. include:: ../../../includes/substitutions.rst
+
+.. index:: sample, thinning, poisson, voxel sampling, density
+
+This exercise uses PDAL to subsample or thin point cloud data. This might be
+done to accelerate processing (less data), normalize point density, or ease
+visualization.
+
+.. note::
+
+    This excerise is an adaptation of the :ref:`dart-throwing-tutorial` tutorial on the
+    PDAL website by Brad Chambers. It includes some images from that tutorial
+    for illustration. You can find more detail and example invocations there.
+
+Exercise
+--------------------------------------------------------------------------------
+
+As we showed in the :ref:`density` exercise, the points in the `uncompahgre.laz` file
+are not evenly distributed across the entire collection. While we will not get into
+reasons why that particular property is good or bad, we note there are three different
+sampling strategies we could choose. We can attempt to preserve shape, we can try to
+randomly sample, and we can attempt to normalize posting density. PDAL
+provides capability for all three:
+
+* Poisson using the :ref:`filters.dartsample`
+
+* Random using a combination of :ref:`filters.decimation` and :ref:`filters.randomize`
+
+* Voxel using :ref:`filters.voxelgrid`
+
+In this exercise, we are going to thin with the Poisson method, but the concept
+should operate similarly for the :ref:`filters.voxelgrid` approach too. See
+:ref:`dart-throwing-tutorial` for description of how to randomly filter.
+
+.. figure:: ../../../images/thinning-overview.png
+
+    Thinning strategies available in PDAL
+
+Command
+................................................................................
+
+Invoke the following command, substituting accordingly, in your `Docker
+Quickstart Terminal`:
+
+
+.. literalinclude:: ./thinning-run-dartsample.txt
+    :linenos:
+
+.. image:: ../../../images/thinning-command-run.png
+
+Visualization
+................................................................................
+
+http://plas.io has the ability to switch on/off multiple data sets, and we
+are going to use that ability to view both the ``uncompahgre.laz`` and the
+``uncompahgre-thin.laz`` file.
+
+.. figure:: ../../../images/thinning-select-data.png
+
+    Selecting multiple data sets in http://plas.io
+
+.. figure:: ../../../images/thinning-full-res.png
+
+    Full resolution Uncompahgre data set
+
+.. figure:: ../../../images/thinning-poisson-thin.png
+
+    Uncompahgre thinned at a radius of 20m
+
+Notes
+--------------------------------------------------------------------------------
+
+1. Poisson sampling is non-destructive. Points that are filtered with
+   :ref:`filters.dartsample` will retain all attribute information.
+
diff --git a/doc/workshop/exercises/georeferencing/georeferencing-command.txt b/doc/workshop/exercises/georeferencing/georeferencing-command.txt
new file mode 100644
index 0000000..5301f7d
--- /dev/null
+++ b/doc/workshop/exercises/georeferencing/georeferencing-command.txt
@@ -0,0 +1,7 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+    pdal translate \
+    /data/exercises/georeferencing/S1C1_csd_004.csd \
+    /data/exercises/georeferencing/S1C1_csd_004.laz \
+    reprojection range \
+    --filters.reprojection.out_srs="EPSG:32614" \
+    --filters.range.limits="Intensity[0:500]"
diff --git a/doc/workshop/exercises/georeferencing/index.rst b/doc/workshop/exercises/georeferencing/index.rst
new file mode 100644
index 0000000..9026f31
--- /dev/null
+++ b/doc/workshop/exercises/georeferencing/index.rst
@@ -0,0 +1,56 @@
+.. _georeferencing:
+
+Georeferencing
+=================
+
+.. index:: georeferencing, Optech, Riegl, GNSS/IMU, csd, UTM, WGS84
+
+.. include:: ../../includes/substitutions.rst
+
+As discussed :ref:`in the introduction <georeferencing-introduction>`, laser returns from a mobile |LiDAR| system must be georeferenced, i.e. placed into a local or global coordinate system by combining data from the laser and from a GNSS/IMU.
+As of this writing, PDAL does **not** include generic georeferencing tools — this is considered future work.
+However, the |Optech| csd file format includes both laser return and GNSS/IMU data in the same file, and the PDAL csd reader includes built in georeferencing support.
+
+In this section, we will demonstrate how to georeference an |Optech| csd file and reproject that file into a UTM projection.
+
+.. note::
+
+   `Optech's <http://www.teledyneoptech.com/>`__ csd format is just one of several vendor-specific data formats PDAL supports; we also support data files directly from |Riegl| sensors and from several project-specific government platforms.
+
+Exercise
+-----------
+
+The file `S1C1_csd_004.csd` contains airborne data from an |Optech| sensor.
+Without georeferencing these points, they would be impossible to interpret — once they are georeferenced, we will be able to inspect and analyze these points like any other point cloud.
+
+In addition to georeferencing, we are going to make two other tweaks to our point cloud:
+
+- The point cloud is, by default, in |WGS84|, but we will reproject these points to a |UTM| coordinate system for visualization purposes.
+
+- Because these are raw data coming from the sensor, these data are noisy.
+  In particular, there are a few points *very* close to the sensor which were probably caused by air returns or laser light reflecting off of part of the airplane or sensor.
+  These points have very high intensity values, which will screw up our visualization.
+  We will use the :ref:`filters.range` PDAL filter to drop all points with very high intensity values.
+
+.. note::
+
+    These data were provided by Dr. Craig Glennie and were collected by |NCALM|, the National Center for Airborne Laser Mapping.
+    The collect area is southwest of Austin, TX.
+
+Command
+.............
+
+Invoke the following command, substituting accordingly, into your `Docker Quickstart Terminal`:
+
+.. literalinclude:: georeferencing-command.txt
+
+.. image:: ../../images/georeferencing-run-command.png
+
+Visualization
+.................
+
+View your georeferenced point cloud in http://plas.io.
+
+.. figure:: ../../images/georeference-plasio.png
+
+    Our airborne laser point cloud after georeferencing, reprojection, and intensity filtering.
diff --git a/doc/workshop/exercises/index.rst b/doc/workshop/exercises/index.rst
new file mode 100644
index 0000000..1ec253f
--- /dev/null
+++ b/doc/workshop/exercises/index.rst
@@ -0,0 +1,55 @@
+.. _exercises:
+
+Exercises
+================================================================================
+
+.. _basic-info:
+
+Basic Information
+--------------------------------------------------------------------------------
+
+.. toctree::
+   :maxdepth: 3
+
+   info/single-point
+   info/metadata
+   info/near
+
+
+.. _translation:
+
+Translation
+--------------------------------------------------------------------------------
+
+.. toctree::
+   :maxdepth: 3
+
+   translation/compression
+   translation/reprojection
+
+
+.. _analysisa:
+
+Analysis
+--------------------------------------------------------------------------------
+
+.. toctree::
+   :maxdepth: 3
+
+   analysis/boundary/boundary
+   analysis/clipping/clipping
+   analysis/colorization/colorization
+   analysis/denoising/denoising
+   analysis/density/density
+   analysis/thinning/thinning
+   analysis/ground/ground
+   analysis/dtm/dtm
+
+
+Georeferencing
+--------------------------------------------------------------------------------
+
+.. toctree::
+    :maxdepth: 3
+
+    georeferencing/index
diff --git a/doc/workshop/exercises/info/metadata-command.txt b/doc/workshop/exercises/info/metadata-command.txt
new file mode 100644
index 0000000..b9ffc1d
--- /dev/null
+++ b/doc/workshop/exercises/info/metadata-command.txt
@@ -0,0 +1,2 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+    pdal info /data/exercises/info/interesting.las --metadata
diff --git a/doc/workshop/exercises/info/metadata.rst b/doc/workshop/exercises/info/metadata.rst
new file mode 100644
index 0000000..14f23fc
--- /dev/null
+++ b/doc/workshop/exercises/info/metadata.rst
@@ -0,0 +1,64 @@
+.. _workshop-metadata:
+
+Printing file metadata
+================================================================================
+
+.. include:: ../../includes/substitutions.rst
+
+.. index:: metadata, coordinate system, spatial reference system
+
+Exercise
+--------------------------------------------------------------------------------
+
+This exercise uses PDAL to print metadata information. Issue the
+following command in your `Docker Quickstart Terminal`.
+
+
+literalinclude:: ./metadata-command.txt
+    :linenos:
+
+
+.. image:: ../../images/info-interesting-metadata.png
+
+.. note::
+
+    PDAL :ref:`metadata <metadata>` is returned a in a tree
+    structure corresponding to processing pipeline that produced
+    it.
+
+.. seealso::
+
+    Use the `JSON`_ processing capabilities of your favorite processing
+    software to selectively access and manipulate values.
+
+    * `Python JSON library`_
+    * `jsawk`_ (like ``awk`` but for JSON data)
+    * `Ruby JSON library`_
+
+.. _`Python JSON library`: https://docs.python.org/2/library/json.html
+.. _`jsawk`: https://github.com/micha/jsawk
+.. _`Ruby JSON library`: http://ruby-doc.org/stdlib-2.0.0/libdoc/json/rdoc/JSON.html
+
+
+Notes
+--------------------------------------------------------------------------------
+
+1. PDAL uses `JSON`_ as the exchange format when printing information from :ref:`info_command`.
+   JSON is a structured, human-readable format that is much simpler than its `XML`_ cousin.
+
+2. The PDAL :ref:`metadata document <metadata>` contains background and
+   information about specific metadata entries and what they mean.
+
+3. Metadata available for a given file depends on the stage that produces the data.
+   :ref:`Readers <readers>` produce same-named values where possible, but it is
+   common that variables are different. :ref:`Filters <filters>` and even
+   :ref:`writers <writers>` can also produce metadata entries.
+
+4. Spatial reference system or coordinate system information is a kind of
+   special metadata, and is treated as something primary to a :ref:`Stage <stage_index>`
+   in PDAL.
+
+
+.. _`CSV`: https://en.wikipedia.org/wiki/Comma-separated_values
+.. _`JSON`: https://en.wikipedia.org/wiki/JSON
+.. _`XML`: https://en.wikipedia.org/wiki/XML
diff --git a/doc/workshop/exercises/info/near-command-1.txt b/doc/workshop/exercises/info/near-command-1.txt
new file mode 100644
index 0000000..3b4954f
--- /dev/null
+++ b/doc/workshop/exercises/info/near-command-1.txt
@@ -0,0 +1,2 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+    pdal info /data/exercises/info/interesting.las --all
diff --git a/doc/workshop/exercises/info/near-command-2.txt b/doc/workshop/exercises/info/near-command-2.txt
new file mode 100644
index 0000000..4c1245c
--- /dev/null
+++ b/doc/workshop/exercises/info/near-command-2.txt
@@ -0,0 +1,3 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+    pdal info /data/exercises/info/interesting.las \
+    --query "637301.20, 851217.57, 496.49/3"
diff --git a/doc/workshop/exercises/info/near.rst b/doc/workshop/exercises/info/near.rst
new file mode 100644
index 0000000..8361b15
--- /dev/null
+++ b/doc/workshop/exercises/info/near.rst
@@ -0,0 +1,62 @@
+.. _near:
+
+Searching near a point
+================================================================================
+
+.. include:: ../../includes/substitutions.rst
+
+.. index:: nearest, nearby, query, search
+
+Exercise
+--------------------------------------------------------------------------------
+
+This exercise uses PDAL to find points near a given search location. Our
+scenario is a simple one -- we want to find the two points nearest the midpoint
+of the bounding cube of our ``interesting.las`` data file.
+
+First we need to find the midpoint of the bounding cube. To do that, we need to
+print the ``--all`` info for the file and look for the ``bbox`` output:
+
+.. literalinclude:: ./near-command-1.txt
+
+.. image:: ../../images/info-near-bbox.png
+
+Find the average the ``X``, ``Y``, and ``Z`` values:
+
+::
+
+    x = 635619.85 + (638982.55 - 635619.85)/2 = 637301.20
+    y = 848899.70 + (853535.43 - 848899.70)/2 = 851217.57
+    z = 406.59 + (586.38 - 406.59)/2 = 496.49
+
+
+With our "center point", issue the ``--query`` option to ``pdal info``
+and return the three nearest points to it:
+
+.. literalinclude:: ./near-command-2.txt
+
+.. note::
+
+    The ``/3`` portion of our query string tells the ``query``
+    command to give us the 3 nearest points. Adjust this value to
+    return data in closest-distance ordering.
+
+.. image:: ../../images/info-near-point.png
+
+Notes
+--------------------------------------------------------------------------------
+
+1. PDAL uses `JSON`_ as the exchange format when printing information from
+   :ref:`info_command`.  JSON is a structured, human-readable format that is
+   much simpler than its `XML`_ cousin.
+
+2. The ``--query`` option of :ref:`info_command` constructs a `KD-tree`_ of the
+   entire set of points in memory. If you have really large data sets, this
+   isn't going to work so well, and you will need to come up with a different
+   solution.
+
+.. _`KD-tree`: https://en.wikipedia.org/wiki/K-d_tree
+
+.. _`CSV`: https://en.wikipedia.org/wiki/Comma-separated_values
+.. _`JSON`: https://en.wikipedia.org/wiki/JSON
+.. _`XML`: https://en.wikipedia.org/wiki/XML
diff --git a/doc/workshop/exercises/info/single-point-command.txt b/doc/workshop/exercises/info/single-point-command.txt
new file mode 100644
index 0000000..3edb58b
--- /dev/null
+++ b/doc/workshop/exercises/info/single-point-command.txt
@@ -0,0 +1,2 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+    pdal info /data/exercises/info/interesting.las -p 0
diff --git a/doc/workshop/exercises/info/single-point.rst b/doc/workshop/exercises/info/single-point.rst
new file mode 100644
index 0000000..732fa59
--- /dev/null
+++ b/doc/workshop/exercises/info/single-point.rst
@@ -0,0 +1,78 @@
+.. _workshop-single-point:
+
+Printing the first point
+================================================================================
+
+.. include:: ../../includes/substitutions.rst
+
+.. index:: info command, Start Here, docker run
+
+Exercise
+--------------------------------------------------------------------------------
+
+This exercise uses PDAL to print information from the first point. Issue the
+following command in your `Docker Quickstart Terminal`.
+
+.. literalinclude:: ./single-point-command.txt
+    :linenos:
+
+Here's a summary of what's going on with that command invocation
+
+1. ``docker``: We are running PDAL within the context of docker, so all of our
+   commands will start with the ``docker`` command.
+
+2. ``run``: Tells docker we're going to run an image
+
+3. ``-v /c/Users/Howard/PDAL:/data``: Maps our workshop directory to a directory called
+   ``/data`` inside the container.
+
+   .. seealso::
+
+       The `Docker Volume <https://docs.docker.com/engine/userguide/dockervolumes/>`__
+       document describes mounting volumes in more detail.
+
+4. ``pdal/pdal``: This is the Docker image we are going to run. We fetched it in the
+   :ref:`docker` portion of the workshop.
+
+5. ``pdal``: We're finally going to run the ``pdal`` application :)
+
+6. ``info``: We want to run :ref:`info_command` on the data. All commands
+   are run by the ``pdal`` application.
+
+7. ``/data/exercises/info/interesting.las``: The ``pdal`` command is now
+   running in the context of our container, which we mounted a ``/data``
+   directory in with the volume mount operation in Step #3. Our
+   ``interesting.las`` file resides there.
+
+8. ``-p 0``: ``-p`` corresponds to "print a point", and ``0`` means to print
+   the first one (computer people count from 0).
+
+
+.. image:: ../../images/info-interesting-single-point.png
+
+Notes
+--------------------------------------------------------------------------------
+
+.. index:: JSON
+
+1. PDAL uses `JSON`_ as the exchange format when printing information from :ref:`info_command`.
+   JSON is a structured, human-readable format that is much simpler than its `XML`_ cousin.
+
+.. index:: CSV
+
+2. You can use the :ref:`writers.text` writer to output point attributes to `CSV`_ format for
+   other processing.
+
+3. Output help information on the command line by issuing the ``--help`` option
+
+4. A common query with ``pdal info`` is ``--all``, which will print all header,
+   metadata, and statistics about a file.
+
+5. In the command, we add the ``\`` character for line continuation. All items on the
+   ``docker run`` command must be on the same line. You will see this convention
+   throughout the workshop to make the command easier to read, but remember
+   that everything needs to be on one line.
+
+.. _`CSV`: https://en.wikipedia.org/wiki/Comma-separated_values
+.. _`JSON`: https://en.wikipedia.org/wiki/JSON
+.. _`XML`: https://en.wikipedia.org/wiki/XML
diff --git a/doc/workshop/exercises/translation/compression-command-verify.txt b/doc/workshop/exercises/translation/compression-command-verify.txt
new file mode 100644
index 0000000..3354a3b
--- /dev/null
+++ b/doc/workshop/exercises/translation/compression-command-verify.txt
@@ -0,0 +1,5 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+    ls -alh /data/exercises/translation/interesting.laz
+
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+    ls -alh /data/exercises/translation/interesting.las
diff --git a/doc/workshop/exercises/translation/compression-command.txt b/doc/workshop/exercises/translation/compression-command.txt
new file mode 100644
index 0000000..bb789b2
--- /dev/null
+++ b/doc/workshop/exercises/translation/compression-command.txt
@@ -0,0 +1,3 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+    pdal translate /data/exercises/translation/interesting.las \
+    /data/exercises/translation/interesting.laz
diff --git a/doc/workshop/exercises/translation/compression.rst b/doc/workshop/exercises/translation/compression.rst
new file mode 100644
index 0000000..0607b98
--- /dev/null
+++ b/doc/workshop/exercises/translation/compression.rst
@@ -0,0 +1,46 @@
+.. _compression:
+
+Compression
+================================================================================
+
+.. include:: ../../includes/substitutions.rst
+
+Exercise
+--------------------------------------------------------------------------------
+
+This exercise uses PDAL to compress `ASPRS LAS`_ data into `LASzip`_.
+
+.. _`LASzip`: http://laszip.org
+.. _`ASPRS LAS`: http://www.asprs.org/Committee-General/LASer-LAS-File-Format-Exchange-Activities.html
+
+Issue the following command in your `Docker Quickstart Terminal`.
+
+
+.. literalinclude:: ./compression-command.txt
+
+LAS is a very fluffy binary format. Because of the way the data are stored,
+there is ample redundant information, and `LASzip`_ is an open source solution
+for compressing this information
+
+
+1. Verify that the data are in fact compressed:
+
+   .. literalinclude:: ./compression-command-verify.txt
+
+
+   .. image:: ../../images/compression-verify.png
+
+
+Notes
+--------------------------------------------------------------------------------
+
+1. Typical `LASzip`_ compression is 5:1 to 8:1, depending on the type of
+   |LiDAR|. It is a compression format specifically for the `ASPRS LAS`_
+   model, however, and will not be as efficient for other types of
+   point cloud data.
+
+2. You can open and view LAZ data in web browsers using http://plas.io
+
+.. _`CSV`: https://en.wikipedia.org/wiki/Comma-separated_values
+.. _`JSON`: https://en.wikipedia.org/wiki/JSON
+.. _`XML`: https://en.wikipedia.org/wiki/XML
diff --git a/doc/workshop/exercises/translation/reprojection-command-1.txt b/doc/workshop/exercises/translation/reprojection-command-1.txt
new file mode 100644
index 0000000..77c892e
--- /dev/null
+++ b/doc/workshop/exercises/translation/reprojection-command-1.txt
@@ -0,0 +1,5 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+    pdal translate /data/exercises/analysis/ground/CSite1_orig-utm.laz \
+    /data/exercises/translation/csite-dd.laz \
+    reprojection \
+    --filters.reprojection.out_srs="EPSG:4326"
diff --git a/doc/workshop/exercises/translation/reprojection-command-2.txt b/doc/workshop/exercises/translation/reprojection-command-2.txt
new file mode 100644
index 0000000..61683f4
--- /dev/null
+++ b/doc/workshop/exercises/translation/reprojection-command-2.txt
@@ -0,0 +1,10 @@
+docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+    pdal translate \
+    /data/exercises/analysis/ground/CSite1_orig-utm.laz \
+    /data/exercises/translation/csite-dd.laz \
+    reprojection \
+    --filters.reprojection.out_srs="EPSG:4326" \
+    --writers.las.scale_x=0.0000001 \
+    --writers.las.scale_y=0.0000001 \
+    --writers.las.offset_x="auto" \
+    --writers.las.offset_y="auto"
diff --git a/doc/workshop/exercises/translation/reprojection.rst b/doc/workshop/exercises/translation/reprojection.rst
new file mode 100644
index 0000000..f3677d6
--- /dev/null
+++ b/doc/workshop/exercises/translation/reprojection.rst
@@ -0,0 +1,73 @@
+.. _reprojection:
+
+Reprojection
+================================================================================
+
+.. index:: Reprojection, WGS84, UTM
+
+.. include:: ../../includes/substitutions.rst
+
+Exercise
+--------------------------------------------------------------------------------
+
+This exercise uses PDAL to reproject `ASPRS LAS`_ data
+
+.. _`LASzip`: http://laszip.org
+.. _`ASPRS LAS`: http://www.asprs.org/Committee-General/LASer-LAS-File-Format-Exchange-Activities.html
+
+Issue the following command in your `Docker Quickstart Terminal`.
+
+
+.. literalinclude:: ./reprojection-command-1.txt
+    :linenos:
+
+.. image:: ../../images/reprojection-run-command.png
+
+
+Unfortunately this doesn't produce the intended results for us. Issue the following
+``pdal info`` command to see why:
+
+::
+
+    docker run -v /c/Users/Howard/PDAL:/data -t pdal/pdal \
+        pdal info /data/exercises/translation/csite-dd.laz --all
+
+.. image:: ../../images/reprojection-wrong-scale.png
+
+
+Some formats, like :ref:`writers.las` do not automatically set scaling
+information. PDAL cannot really do this for you because there are a number
+of ways to trip up. For latitude/longitude data, you will need to set
+the scale to smaller values like ``0.0000001``. Additionally, LAS uses
+an offset value to move the origin of the value. Use PDAL to set that
+to ``auto`` so you don't have to compute it.
+
+.. literalinclude:: ./reprojection-command-2.txt
+    :linenos:
+
+.. image:: ../../images/reprojection-run-with-scale.png
+
+
+Run the `pdal info` command again to verify the ``X``, ``Y``, and ``Z``
+dimensions:
+
+
+.. image:: ../../images/reprojection-proper-scale.png
+
+Notes
+--------------------------------------------------------------------------------
+
+1. :ref:`filters.reprojection` will use whatever coordinate system is defined
+   by the point cloud file, but you can override it using the ``in_srs``
+   option. This is useful in situations where the coordinate system
+   is not correct, not completely specified, or your system doesn't have
+   all of the required supporting coordinate system dictionaries.
+
+2. PDAL uses `proj.4`_ library for reprojection. This library includes
+   the capability to do both vertical and horizontal datum transformations.
+
+.. _`proj.4`: http://proj4.org
+
+.. _`CSV`: https://en.wikipedia.org/wiki/Comma-separated_values
+.. _`JSON`: https://en.wikipedia.org/wiki/JSON
+.. _`XML`: https://en.wikipedia.org/wiki/XML
diff --git a/doc/workshop/images/agenda-usb-drive.jpg b/doc/workshop/images/agenda-usb-drive.jpg
new file mode 100644
index 0000000..acdd72c
Binary files /dev/null and b/doc/workshop/images/agenda-usb-drive.jpg differ
diff --git a/doc/workshop/images/blizzard-eight.gif b/doc/workshop/images/blizzard-eight.gif
new file mode 100644
index 0000000..7ab18de
Binary files /dev/null and b/doc/workshop/images/blizzard-eight.gif differ
diff --git a/doc/workshop/images/boundary-qgis-view.png b/doc/workshop/images/boundary-qgis-view.png
new file mode 100644
index 0000000..4a2158d
Binary files /dev/null and b/doc/workshop/images/boundary-qgis-view.png differ
diff --git a/doc/workshop/images/boundary-text-output.png b/doc/workshop/images/boundary-text-output.png
new file mode 100644
index 0000000..9a4fbd1
Binary files /dev/null and b/doc/workshop/images/boundary-text-output.png differ
diff --git a/doc/workshop/images/boundary-tindex-run.png b/doc/workshop/images/boundary-tindex-run.png
new file mode 100644
index 0000000..8dae9da
Binary files /dev/null and b/doc/workshop/images/boundary-tindex-run.png differ
diff --git a/doc/workshop/images/clipping-autzen-view.png b/doc/workshop/images/clipping-autzen-view.png
new file mode 100644
index 0000000..e44e8c2
Binary files /dev/null and b/doc/workshop/images/clipping-autzen-view.png differ
diff --git a/doc/workshop/images/clipping-run-command.png b/doc/workshop/images/clipping-run-command.png
new file mode 100644
index 0000000..c23d136
Binary files /dev/null and b/doc/workshop/images/clipping-run-command.png differ
diff --git a/doc/workshop/images/clipping-stadium-clipped.png b/doc/workshop/images/clipping-stadium-clipped.png
new file mode 100644
index 0000000..c352036
Binary files /dev/null and b/doc/workshop/images/clipping-stadium-clipped.png differ
diff --git a/doc/workshop/images/clipping-view-polygons.png b/doc/workshop/images/clipping-view-polygons.png
new file mode 100644
index 0000000..70f4d31
Binary files /dev/null and b/doc/workshop/images/clipping-view-polygons.png differ
diff --git a/doc/workshop/images/colorize-run-command.png b/doc/workshop/images/colorize-run-command.png
new file mode 100644
index 0000000..ce7c999
Binary files /dev/null and b/doc/workshop/images/colorize-run-command.png differ
diff --git a/doc/workshop/images/colorize-umpaghre-colored.png b/doc/workshop/images/colorize-umpaghre-colored.png
new file mode 100644
index 0000000..ea49fed
Binary files /dev/null and b/doc/workshop/images/colorize-umpaghre-colored.png differ
diff --git a/doc/workshop/images/compression-verify.png b/doc/workshop/images/compression-verify.png
new file mode 100644
index 0000000..3729c82
Binary files /dev/null and b/doc/workshop/images/compression-verify.png differ
diff --git a/doc/workshop/images/denoise-fugro.png b/doc/workshop/images/denoise-fugro.png
new file mode 100644
index 0000000..1864661
Binary files /dev/null and b/doc/workshop/images/denoise-fugro.png differ
diff --git a/doc/workshop/images/denoise-plasio.png b/doc/workshop/images/denoise-plasio.png
new file mode 100644
index 0000000..47ede7c
Binary files /dev/null and b/doc/workshop/images/denoise-plasio.png differ
diff --git a/doc/workshop/images/denoise-run-command.png b/doc/workshop/images/denoise-run-command.png
new file mode 100644
index 0000000..2a6d356
Binary files /dev/null and b/doc/workshop/images/denoise-run-command.png differ
diff --git a/doc/workshop/images/density-add-layer.png b/doc/workshop/images/density-add-layer.png
new file mode 100644
index 0000000..ed020a8
Binary files /dev/null and b/doc/workshop/images/density-add-layer.png differ
diff --git a/doc/workshop/images/density-command-run.png b/doc/workshop/images/density-command-run.png
new file mode 100644
index 0000000..597c729
Binary files /dev/null and b/doc/workshop/images/density-command-run.png differ
diff --git a/doc/workshop/images/density-count-attribute.png b/doc/workshop/images/density-count-attribute.png
new file mode 100644
index 0000000..1f8c5ed
Binary files /dev/null and b/doc/workshop/images/density-count-attribute.png differ
diff --git a/doc/workshop/images/density-file-open.png b/doc/workshop/images/density-file-open.png
new file mode 100644
index 0000000..93485f6
Binary files /dev/null and b/doc/workshop/images/density-file-open.png differ
diff --git a/doc/workshop/images/density-final-render.png b/doc/workshop/images/density-final-render.png
new file mode 100644
index 0000000..016676d
Binary files /dev/null and b/doc/workshop/images/density-final-render.png differ
diff --git a/doc/workshop/images/density-graduated-symbols-pick.png b/doc/workshop/images/density-graduated-symbols-pick.png
new file mode 100644
index 0000000..d4c03cc
Binary files /dev/null and b/doc/workshop/images/density-graduated-symbols-pick.png differ
diff --git a/doc/workshop/images/density-graduated-symbols.png b/doc/workshop/images/density-graduated-symbols.png
new file mode 100644
index 0000000..0c3ff13
Binary files /dev/null and b/doc/workshop/images/density-graduated-symbols.png differ
diff --git a/doc/workshop/images/density-select-layer.png b/doc/workshop/images/density-select-layer.png
new file mode 100644
index 0000000..f86e574
Binary files /dev/null and b/doc/workshop/images/density-select-layer.png differ
diff --git a/doc/workshop/images/docker-file-navigate.png b/doc/workshop/images/docker-file-navigate.png
new file mode 100644
index 0000000..dc2ce4c
Binary files /dev/null and b/doc/workshop/images/docker-file-navigate.png differ
diff --git a/doc/workshop/images/docker-image-loaded.png b/doc/workshop/images/docker-image-loaded.png
new file mode 100644
index 0000000..525759b
Binary files /dev/null and b/doc/workshop/images/docker-image-loaded.png differ
diff --git a/doc/workshop/images/docker-install-options.png b/doc/workshop/images/docker-install-options.png
new file mode 100644
index 0000000..8d391c1
Binary files /dev/null and b/doc/workshop/images/docker-install-options.png differ
diff --git a/doc/workshop/images/docker-install-progress.png b/doc/workshop/images/docker-install-progress.png
new file mode 100644
index 0000000..87fe9b5
Binary files /dev/null and b/doc/workshop/images/docker-install-progress.png differ
diff --git a/doc/workshop/images/docker-run-help.png b/doc/workshop/images/docker-run-help.png
new file mode 100644
index 0000000..d900bbe
Binary files /dev/null and b/doc/workshop/images/docker-run-help.png differ
diff --git a/doc/workshop/images/docker-status.png b/doc/workshop/images/docker-status.png
new file mode 100644
index 0000000..2cdd7f2
Binary files /dev/null and b/doc/workshop/images/docker-status.png differ
diff --git a/doc/workshop/images/dtm-add-raster-layer.png b/doc/workshop/images/dtm-add-raster-layer.png
new file mode 100644
index 0000000..6a9cad4
Binary files /dev/null and b/doc/workshop/images/dtm-add-raster-layer.png differ
diff --git a/doc/workshop/images/dtm-add-raster-mean.png b/doc/workshop/images/dtm-add-raster-mean.png
new file mode 100644
index 0000000..c01f924
Binary files /dev/null and b/doc/workshop/images/dtm-add-raster-mean.png differ
diff --git a/doc/workshop/images/dtm-qgis-added.png b/doc/workshop/images/dtm-qgis-added.png
new file mode 100644
index 0000000..12c67a3
Binary files /dev/null and b/doc/workshop/images/dtm-qgis-added.png differ
diff --git a/doc/workshop/images/dtm-qgis-classify.png b/doc/workshop/images/dtm-qgis-classify.png
new file mode 100644
index 0000000..0b7dcf1
Binary files /dev/null and b/doc/workshop/images/dtm-qgis-classify.png differ
diff --git a/doc/workshop/images/dtm-qgis-colorize-dtm.png b/doc/workshop/images/dtm-qgis-colorize-dtm.png
new file mode 100644
index 0000000..aab79e6
Binary files /dev/null and b/doc/workshop/images/dtm-qgis-colorize-dtm.png differ
diff --git a/doc/workshop/images/dtm-qgis-gdaldem.png b/doc/workshop/images/dtm-qgis-gdaldem.png
new file mode 100644
index 0000000..ea104e6
Binary files /dev/null and b/doc/workshop/images/dtm-qgis-gdaldem.png differ
diff --git a/doc/workshop/images/dtm-qgis-hillshade-done.png b/doc/workshop/images/dtm-qgis-hillshade-done.png
new file mode 100644
index 0000000..5b7a761
Binary files /dev/null and b/doc/workshop/images/dtm-qgis-hillshade-done.png differ
diff --git a/doc/workshop/images/dtm-qgis-save-hillshade.png b/doc/workshop/images/dtm-qgis-save-hillshade.png
new file mode 100644
index 0000000..d10a350
Binary files /dev/null and b/doc/workshop/images/dtm-qgis-save-hillshade.png differ
diff --git a/doc/workshop/images/dtm-qgis-select-hillshade.png b/doc/workshop/images/dtm-qgis-select-hillshade.png
new file mode 100644
index 0000000..524639a
Binary files /dev/null and b/doc/workshop/images/dtm-qgis-select-hillshade.png differ
diff --git a/doc/workshop/images/dtm-run-command.png b/doc/workshop/images/dtm-run-command.png
new file mode 100644
index 0000000..5aec845
Binary files /dev/null and b/doc/workshop/images/dtm-run-command.png differ
diff --git a/doc/workshop/images/georeference-plasio.png b/doc/workshop/images/georeference-plasio.png
new file mode 100644
index 0000000..088553e
Binary files /dev/null and b/doc/workshop/images/georeference-plasio.png differ
diff --git a/doc/workshop/images/georeferencing-run-command.png b/doc/workshop/images/georeferencing-run-command.png
new file mode 100644
index 0000000..65dc1ac
Binary files /dev/null and b/doc/workshop/images/georeferencing-run-command.png differ
diff --git a/doc/workshop/images/ground-classified-included-side.png b/doc/workshop/images/ground-classified-included-side.png
new file mode 100644
index 0000000..84c7688
Binary files /dev/null and b/doc/workshop/images/ground-classified-included-side.png differ
diff --git a/doc/workshop/images/ground-classified-included.png b/doc/workshop/images/ground-classified-included.png
new file mode 100644
index 0000000..76b1886
Binary files /dev/null and b/doc/workshop/images/ground-classified-included.png differ
diff --git a/doc/workshop/images/ground-filtered.png b/doc/workshop/images/ground-filtered.png
new file mode 100644
index 0000000..1ca45a7
Binary files /dev/null and b/doc/workshop/images/ground-filtered.png differ
diff --git a/doc/workshop/images/ground-ground-only-view.png b/doc/workshop/images/ground-ground-only-view.png
new file mode 100644
index 0000000..2d3391b
Binary files /dev/null and b/doc/workshop/images/ground-ground-only-view.png differ
diff --git a/doc/workshop/images/ground-run-command.png b/doc/workshop/images/ground-run-command.png
new file mode 100644
index 0000000..3707810
Binary files /dev/null and b/doc/workshop/images/ground-run-command.png differ
diff --git a/doc/workshop/images/info-interesting-metadata.png b/doc/workshop/images/info-interesting-metadata.png
new file mode 100644
index 0000000..8058be6
Binary files /dev/null and b/doc/workshop/images/info-interesting-metadata.png differ
diff --git a/doc/workshop/images/info-interesting-single-point.png b/doc/workshop/images/info-interesting-single-point.png
new file mode 100644
index 0000000..0d4f988
Binary files /dev/null and b/doc/workshop/images/info-interesting-single-point.png differ
diff --git a/doc/workshop/images/info-near-bbox.png b/doc/workshop/images/info-near-bbox.png
new file mode 100644
index 0000000..91f2b9d
Binary files /dev/null and b/doc/workshop/images/info-near-bbox.png differ
diff --git a/doc/workshop/images/info-near-point.png b/doc/workshop/images/info-near-point.png
new file mode 100644
index 0000000..4125ff3
Binary files /dev/null and b/doc/workshop/images/info-near-point.png differ
diff --git a/doc/workshop/images/intro-pdal-simple-pipeline.png b/doc/workshop/images/intro-pdal-simple-pipeline.png
new file mode 100644
index 0000000..768dc17
Binary files /dev/null and b/doc/workshop/images/intro-pdal-simple-pipeline.png differ
diff --git a/doc/workshop/images/pdal-architecture-overview.png b/doc/workshop/images/pdal-architecture-overview.png
new file mode 100644
index 0000000..5b69422
Binary files /dev/null and b/doc/workshop/images/pdal-architecture-overview.png differ
diff --git a/doc/workshop/images/pdal-reader-writer.png b/doc/workshop/images/pdal-reader-writer.png
new file mode 100644
index 0000000..79f60ae
Binary files /dev/null and b/doc/workshop/images/pdal-reader-writer.png differ
diff --git a/doc/workshop/images/qgis-add-raster-layer.png b/doc/workshop/images/qgis-add-raster-layer.png
new file mode 100644
index 0000000..7c1dc6d
Binary files /dev/null and b/doc/workshop/images/qgis-add-raster-layer.png differ
diff --git a/doc/workshop/images/qgis-choose-raster.png b/doc/workshop/images/qgis-choose-raster.png
new file mode 100644
index 0000000..dcbf54a
Binary files /dev/null and b/doc/workshop/images/qgis-choose-raster.png differ
diff --git a/doc/workshop/images/qgis-install-progress.png b/doc/workshop/images/qgis-install-progress.png
new file mode 100644
index 0000000..b7654b6
Binary files /dev/null and b/doc/workshop/images/qgis-install-progress.png differ
diff --git a/doc/workshop/images/qgis-select-qgis.png b/doc/workshop/images/qgis-select-qgis.png
new file mode 100644
index 0000000..a46fd51
Binary files /dev/null and b/doc/workshop/images/qgis-select-qgis.png differ
diff --git a/doc/workshop/images/qgis-start-install.png b/doc/workshop/images/qgis-start-install.png
new file mode 100644
index 0000000..a3fdffa
Binary files /dev/null and b/doc/workshop/images/qgis-start-install.png differ
diff --git a/doc/workshop/images/qgis-view-raster.png b/doc/workshop/images/qgis-view-raster.png
new file mode 100644
index 0000000..0ba2ac6
Binary files /dev/null and b/doc/workshop/images/qgis-view-raster.png differ
diff --git a/doc/workshop/images/reference-pulse.png b/doc/workshop/images/reference-pulse.png
new file mode 100644
index 0000000..dbfc228
Binary files /dev/null and b/doc/workshop/images/reference-pulse.png differ
diff --git a/doc/workshop/images/reprojection-proper-scale.png b/doc/workshop/images/reprojection-proper-scale.png
new file mode 100644
index 0000000..c61b14f
Binary files /dev/null and b/doc/workshop/images/reprojection-proper-scale.png differ
diff --git a/doc/workshop/images/reprojection-run-command.png b/doc/workshop/images/reprojection-run-command.png
new file mode 100644
index 0000000..e41dd0f
Binary files /dev/null and b/doc/workshop/images/reprojection-run-command.png differ
diff --git a/doc/workshop/images/reprojection-run-with-scale.png b/doc/workshop/images/reprojection-run-with-scale.png
new file mode 100644
index 0000000..3ad6d88
Binary files /dev/null and b/doc/workshop/images/reprojection-run-with-scale.png differ
diff --git a/doc/workshop/images/reprojection-wrong-scale.png b/doc/workshop/images/reprojection-wrong-scale.png
new file mode 100644
index 0000000..20223f7
Binary files /dev/null and b/doc/workshop/images/reprojection-wrong-scale.png differ
diff --git a/doc/workshop/images/return-pulse.png b/doc/workshop/images/return-pulse.png
new file mode 100644
index 0000000..e8ce6b9
Binary files /dev/null and b/doc/workshop/images/return-pulse.png differ
diff --git a/doc/workshop/images/thinning-command-run.png b/doc/workshop/images/thinning-command-run.png
new file mode 100644
index 0000000..e22bc90
Binary files /dev/null and b/doc/workshop/images/thinning-command-run.png differ
diff --git a/doc/workshop/images/thinning-full-res.png b/doc/workshop/images/thinning-full-res.png
new file mode 100644
index 0000000..48bf564
Binary files /dev/null and b/doc/workshop/images/thinning-full-res.png differ
diff --git a/doc/workshop/images/thinning-overview.png b/doc/workshop/images/thinning-overview.png
new file mode 100644
index 0000000..28316a1
Binary files /dev/null and b/doc/workshop/images/thinning-overview.png differ
diff --git a/doc/workshop/images/thinning-poisson-thin.png b/doc/workshop/images/thinning-poisson-thin.png
new file mode 100644
index 0000000..964f105
Binary files /dev/null and b/doc/workshop/images/thinning-poisson-thin.png differ
diff --git a/doc/workshop/images/thinning-select-data.png b/doc/workshop/images/thinning-select-data.png
new file mode 100644
index 0000000..9ff41d8
Binary files /dev/null and b/doc/workshop/images/thinning-select-data.png differ
diff --git a/doc/workshop/includes/substitutions.rst b/doc/workshop/includes/substitutions.rst
new file mode 100644
index 0000000..4b41811
--- /dev/null
+++ b/doc/workshop/includes/substitutions.rst
@@ -0,0 +1,20 @@
+.. |USACE| replace:: U.S. Army Corps of Engineers
+.. |GRID| replace:: `GRiD <http://lidar.io/>`__
+.. |ASPRSLAS| replace:: `ASPRS LAS <http://www.asprs.org/Committee-General/LASer-LAS-File-Format-Exchange-Activities.html>`__
+.. |PCL| replace:: `PCL <http://pointclouds.org>`__
+.. |PDAL| replace:: `PDAL <http://pdal.io/>`__
+.. |libLAS| replace:: `libLAS <http://liblas.org/>`__
+.. |QGIS| replace:: `QGIS <http://qgis.org>`__
+.. |GDAL| replace:: `GDAL <http://gdal.org/>`__
+.. |GEOS| replace:: `GEOS <https://trac.osgeo.org/geos/>`__
+.. |LASzip| replace:: `LASzip <http://laszip.org>`__
+.. |Python| replace:: `Python <http://python.org/>`__
+.. |Docker| replace:: `Docker <https://www.docker.com/>`__
+.. |LiDAR| replace:: `LiDAR <https://en.wikipedia.org/wiki/Lidar>`__
+.. |CRREL| replace:: `CRREL <http://www.erdc.usace.army.mil/Locations/ColdRegionsResearchandEngineeringLaboratory.aspx>`__
+.. |Hobu| replace:: `Hobu <http://hobu.co/>`__
+.. |Optech| replace:: `Optech <http://www.teledyneoptech.com/>`__
+.. |Riegl| replace:: `Riegl <http://riegl.com/>`__
+.. |NCALM| replace:: `NCALM <http://ncalm.cive.uh.edu/>`__
+.. |UTM| replace:: `UTM <https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system>`__
+.. |WGS84| replace:: `WGS84 <https://en.wikipedia.org/wiki/Geodetic_datum>`__
diff --git a/doc/workshop/index.rst b/doc/workshop/index.rst
new file mode 100644
index 0000000..cdf035d
--- /dev/null
+++ b/doc/workshop/index.rst
@@ -0,0 +1,22 @@
+.. _workshop:
+
+Point Cloud Processing and Analysis with PDAL
+====================================================
+
+:Author: Howard Butler
+:Author: Pete Gadomski
+:Author: Dr. Craig Glennie
+:Contact: howard at hobu.co
+:Date: 03/30/2016
+
+
+.. include:: ./includes/substitutions.rst
+
+.. toctree::
+   :maxdepth: 3
+
+   agenda
+   lidar-introduction
+   pdal-introduction
+   software
+   exercises/index
diff --git a/doc/workshop/lidar-introduction.rst b/doc/workshop/lidar-introduction.rst
new file mode 100644
index 0000000..3d360ad
--- /dev/null
+++ b/doc/workshop/lidar-introduction.rst
@@ -0,0 +1,166 @@
+.. _lidar-introduction:
+
+Introduction to LiDAR
+================================================================================
+
+LiDAR is a remote sensing technique that uses visible or near-infrared laser
+energy to measure the distance between a sensor and an object.  LiDAR sensors
+are versatile and (often) mobile; they help autonomous cars avoid obstacles and
+make detailed topographic measurements from space.  Before diving into LiDAR
+data processing, we will spend a bit of time reviewing some LiDAR fundamentals
+and discussing some terms of art.
+
+Types of LiDAR
+-----------------
+
+LiDAR systems, generally speaking, come in one of three types:
+
+- **Pulse-based**, or **linear-mode**, systems emit a pulse of laser energy and
+  measure the time it takes for that energy to travel to a target, bounce off
+  the target, and be returned to the sensor.  These systems are called
+  linear-mode because they (generally) only have a single aperture, and so can
+  only measure distance along a single vector at any point in time.
+  Pulse-based systems are very common, and are usually what you would think of
+  when you think of LiDAR.
+- **Phase-based** LiDAR systems measure distance via *interferometry*, that is,
+  by using the phase of a modulated laser beam to calculate a distance as a
+  fraction of the modulated signal's wavelength.  Phase-based systems can be
+  very precise, on the order of a few millimeters, but since they require
+  comparatively more energy than the other two types they are usually used for
+  short-range (e.g. indoor) scanning.
+- **Geiger-mode**, or **photon-counting**, systems use extremely sensitive
+  detectors that can be triggered by a single photon.
+  Since only a single photon is required to trigger a measurement, these
+  systems can operate at much much higher altitudes than linear mode systems.
+  However, Geiger-mode systems are relatively new and suffer from very high
+  amounts of noise and other operational restrictions, making them
+  significantly less common than linear-mode systems.
+
+.. note::
+
+    Unless otherwise noted, if we talk about a LiDAR scanner in this program,
+    we will be referring to a pulse-based (linear) system.
+
+Modes of LiDAR Collection
+---------------------------
+
+LiDAR collects are generally categorized into four subjective types:
+
+- **Terrestrial LiDAR Scanning (TLS)**: scanning with a stationary LiDAR
+  sensor, usually mounted on a tripod.
+- **Airborne LiDAR scanning (ALS)**: also called airborne laser swath mapping
+  (ALSM), scanning with a LiDAR scanner mounted to a fixed-wing or rotor
+  aircraft.
+- **Mobile LiDAR scanning (MLS)**: scanning from a ground-based vehicle, such
+  as a car.
+- **Unmanned LiDAR scanning (ULS)**: scanning with drones or other unmanned
+  vehicles.
+
+With the exception of stationary TLS, LiDAR scanning generally requires the use
+of an integrated GNSS/IMU (Global Navigation Satellite System/Inertial Motion
+Unit), which provides information about the position, rotation, and motion of
+the scanning platform.
+
+.. note::
+
+    As stated in the class description, we will focus on mobile and airborne
+    laser scanning (MLS/ALS), though we will also use some TLS data.
+
+.. _georeferencing-introduction:
+
+.. index:: georeferencing, GNSS/IMU, SOCS
+
+Georeferencing
+------------------
+
+LiDAR scanners collect information in the Scanner's Own Coordinate System
+(SOCS); this is a coordinate system centered at the scanner.  The process of
+rotating, translating, and (possibly) transforming a point cloud into a
+real-world spatial reference system is known as **georeferencing**.
+
+In the case of TLS, georeferencing is simply a matter of discovering the
+position and orientation of the static scanner.  This is usually done with GNSS
+control points, which are used to solve for the scanner's position via
+least-squares.
+
+For mobile or airborne LiDAR scanning, it is necessary to merge the scanner's
+points with the GNSS/IMU data.  This can be done on-the-fly or as a part of a
+post-processing workflow.  Since this is a common operation for mobile and
+airborne LiDAR collects, we will spend a moment discussing the methods and
+complications for georeferencing mobile LiDAR and GNSS/IMU data.
+
+Integrating LiDAR and GNSS/IMU data
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The LiDAR georeferencing equation is well-established; we present a version
+here from :cite:`Glennie2007`:
+
+.. math::
+    :label: georeferencing
+
+    \mathbf{p}^l_G = \mathbf{p}^l_{GPS} + \mathbf{R}^l_b \left( \mathbf{R}^b_s \mathbf{r}^s - \mathbf{l}^b \right)
+
+where:
+
+- :math:`\mathbf{p}^l_G` are the coordinates of the target point in the global reference frame
+- :math:`\mathbf{p}^l_{GPS}` are the coordinates of the GNSS sensor in the global reference frame
+- :math:`\mathbf{R}^l_b` is the rotation matrix from the navigation frame to the global reference frame
+- :math:`\mathbf{R}^b_s` is the rotation matrix from the scanner's frame to the navigation frame (boresight matrix)
+- :math:`\mathbf{r}^s` is the coordinates of the laser point in the scanner's frame
+- :math:`\mathbf{l}^b` is the lever-arm offset between the scanner's original and the navigation's origin
+
+This equation contains fourteen unknowns, and in order to georeference a single
+LiDAR return we must determine all fourteen variables at the time of the pulse.
+
+As a rule of thumb, the position, attitude, and motion of the scanning platform
+(aircraft, vehicle, etc) are sampled at a much lower rate than the pulse rate
+of the laser — rates of ~1Hz are common for GNSS/IMU sampling.  In order to
+match the GNSS/IMU sampling rate with the sampling rate of the laser, GNSS/IMU
+measurements are interpolated to line up with the LiDAR measurements.  Then,
+these positions and attitudes are combined via Equation :eq:`georeferencing` to
+create a final, georeferenced point cloud.
+
+.. note::
+
+    While lever-arm offsets are usually taken from the schematic drawings of
+    the LiDAR mounting system, the boresight matrix cannot be reliably
+    determined from drawings alone.  The boresight matrix must therefore be
+    determined either via manual or automated boresight calibration using
+    actual LiDAR data of planar surfaces, such as the roof and sides of
+    buildings.  The process for determining a boresight calibration from LiDAR
+    data is beyond the scope of this class.
+
+Discrete-Return vs. Full-Waveform
+-------------------------------------
+
+Pulse-based LiDAR systems use the round-trip travel time of a pulse of laser
+energy to measure distances.  The outgoing pulse of a LiDAR system is roughly
+(but not exactly) a Gaussian:
+
+.. figure:: images/reference-pulse.png
+
+    A real-world outgoing LiDAR pulse.
+
+This pulse can interact with multiple objects in a scene before it is returned to the sensor.
+Here is an example of a LiDAR return:
+
+.. figure:: images/return-pulse.png
+
+    A real-world incoming LiDAR return.
+    Potential discrete-return peaks are marked in red.
+
+As you can see, this return pulse can be very complicated.  While there is more
+information contained in the "full waveform" picture displayed above, many
+LiDAR consumers are only interested in detecting the presence or absence of an
+object — simplistically, the peaks in that waveform.
+
+Full waveform data is used only in specialized circumstances.  If you have or
+receive LiDAR data, it will usually be discrete return (point clouds).
+Processing full waveform data is beyond the scope of this class.
+
+.. note::
+
+    PDAL is a discrete-return point cloud processing library.
+    It does not have any functionality to analyse or process full waveform data.
+
+.. bibliography:: bibliography.bib
diff --git a/doc/workshop/pdal-introduction.rst b/doc/workshop/pdal-introduction.rst
new file mode 100644
index 0000000..b0f5fec
--- /dev/null
+++ b/doc/workshop/pdal-introduction.rst
@@ -0,0 +1,334 @@
+.. _pdal-introduction:
+
+Introduction to PDAL
+================================================================================
+
+.. include:: ./includes/substitutions.rst
+
+What is PDAL?
+--------------------------------------------------------------------------------
+
+|PDAL| is Point Data Abstraction Library, and it is an open source software for
+translating and processing point cloud data. It is not limited to just |LiDAR|
+data, although the focus and impetus for many of the tools have their origins
+in LiDAR.
+
+What is its big idea?
+................................................................................
+
+Say you wanted to load some `ASPRS LAS`_ (the most common LiDAR binary format)
+data into a database, but you wanted to transform it into a common coordinate
+system along the way. One option would be to write a specialized program that
+reads LAS data, reprojects it as necessary, and then handles the necessary
+operations to insert the data in the appropriate format in the database.
+
+This approach has a distinct disadvantage. It is a kind of one-off, and it
+could quickly spiral out of control as you look to add new little tweaks and
+features to the operation. It ends up being very specific, and it
+does not allow you to easily reuse the component that reads the LAS data
+separately from the component that transforms the data.
+
+Little programs that encapsulate specific functionality that can be composed
+together provide a more streamlined approach to the problem. They allow for
+reuse, composition, and separation of concerns.  PDAL views point cloud
+processing operations as a pipeline composed as a series of stages.  You might
+have a simple pipeline composed of a :ref:`LAS Reader <readers.las>` stage, a
+:ref:`Reprojection <filters.reprojection>` stage, and a :ref:`PostgreSQL Writer
+<writers.pgpointcloud>`, for example. Rather than writing a single, monolithic
+specialized program to perform this operation, you can dynamically compose it
+as a sequence of steps or operations.
+
+.. figure:: ./images/intro-pdal-simple-pipeline.png
+
+    A simple PDAL pipeline composed of a reader, filter, and writer
+    stages.
+
+PDAL can compose intermediate stages, for operations such as filtering,
+clipping, tiling, transforming into a processing pipeline and reuse as
+necessary. It allows you to define these pipelines as `JSON`_ or `XML`_, and it
+provides a command, :ref:`pipeline_command`, to allow you to execute them.
+
+.. note::
+
+    Raster processing tools often compose operations with this approach.
+    PDAL conceptually steals its pipeline modeling from |GDAL|'s
+    `Virtual Raster Format`_.
+
+.. _`Virtual Raster Format`: http://www.gdal.org/gdal_vrttut.html
+.. _`JSON`: https://en.wikipedia.org/wiki/JSON
+.. _`XML`: https://en.wikipedia.org/wiki/XML
+
+
+How is it different than other tools?
+................................................................................
+
+LAStools
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. index:: LAStools
+
+One of the most common open source processing tool suites available is `LAStools`_
+from `Martin Isenburg`_. PDAL is different in philosophy in a number of important
+ways:
+
+1. All components of PDAL are released as open source software under an `OSI`_-approved
+   license.
+2. PDAL allows application developers to provide proprietary extensions that
+   act as stages in processing pipelines. These might be things like custom format
+   readers, specialized exploitation algorithms, or entire processing pipelines.
+3. PDAL must be able to generically operate on point cloud data of any format --
+   not just `ASPRS LAS`_. `LAStools`_ can read and write formats other than LAS, but
+   its view of formats it understands is within the context of the dimension
+   types provided by the LAS format.
+
+PCL
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. index:: PCL
+
+`PCL`_ is a complementary, rather than substitute, open source software processing
+suite for point cloud data. PDAL itself uses PCL to provide sophisticated algorithmic
+exploitation, :ref:`statistical filtering <filters.statisticaloutlier>`, and
+:ref:`dynamic filtering <pcl_block_tutorial>`. The developer community of the PCL
+library is focused on algorithm development, robotic and computer vision, and
+real-time laser scanner processing. PDAL links and uses PCL, and PDAL provides a
+convenient pipeline mechanism to orchestrate PCL operations.
+
+.. note::
+
+    See :ref:`pcl_block_tutorial` for more detail on how to take advantage of
+    PCL capabilities within PDAL operations.
+
+Greyhound and Entwine
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. index:: Greyhound, Entwine
+
+`Greyhound`_ is an open source software from Hobu, Inc. that allows clients
+over the internet to query and stream progressive point cloud data.  `Entwine`_
+is an open source software from Hobu, Inc. that organizes massive point cloud
+collections into `Greyhound`_-streamable data services. These two software
+projects allow province-scale LiDAR collections to be organized and served
+via HTTP clients over the internet.
+
+
+.. _`Entwine`: http://github.com/connormanning/entwine
+.. _`Greyhound`: http://github.com/hobu/greyhound
+
+plas.io and Potree
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`plas.io`_ is a `WebGL`_ HTML5 point cloud renderer that speaks `ASPRS LAS`_ and
+`LASzip`_ compressed LAS.
+
+`Potree`_ is a `WebGL`_ HTML5 point cloud renderer that speaks `ASPRS LAS`_ and
+`LASzip`_ compressed LAS.
+
+.. note::
+
+    Both renderers can now consume data from Greyhound. See them in action at
+    http://speck.ly and http://potree.entwine.io
+
+.. _`plas.io`: http://plas.io
+.. _`WebGL`: https://en.wikipedia.org/wiki/WebGL
+.. _`Potree`: http://potree.org
+.. _`LASzip`: http://laszip.org
+
+Others
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. index:: OrfeoToolbox, libLAS, CloudCompare, Fusion
+
+Other open source point cloud softwares tend to be GUI, rather than library,
+focused.  They include some processing operations, and sometimes they even
+embed tools such as PDAL. We're obviously biased toward PDAL, but you might
+find useful bits of functionality in them. These other tools include:
+
+* `libLAS`_
+* `CloudCompare`_
+* `Fusion`_
+* `OrfeoToolbox`_
+
+.. _`PCL`: http://pointclouds.org
+.. _`Fusion`: http://www.idaholidar.org/tools/fusion-ldv/
+.. _`OrfeoToolbox`: https://www.orfeo-toolbox.org/
+.. _`CloudCompare`: http://www.danielgm.net/cc/
+.. _`libLAS`: http://liblas.org
+
+.. note::
+
+    The `libLAS`_ project is an open source project that pre-dates PDAL, and
+    provides some of the processing capabilities provided by PDAL. It is
+    currently in maintenance mode due to its dependence on LAS, the release of
+    relevant LAStools capabilities as open source, and the completion of
+    `Python LAS`_ software.
+
+.. _`Python LAS`: https://pypi.python.org/pypi/laspy/1.4.1
+.. _`ASPRS LAS`: http://www.asprs.org/Committee-General/LASer-LAS-File-Format-Exchange-Activities.html
+.. _`OSI`: https://opensource.org/licenses
+
+.. _`LAStools`: http://lastools.org
+.. _`Martin Isenburg`: https://www.cs.unc.edu/~isenburg/
+
+Where did PDAL come from?
+................................................................................
+
+PDAL takes its cue from another very popular open source project -- |GDAL|.
+GDAL is Geospatial Data Abstraction Library, and it is used throughout the geospatial
+software industry to provide translation and processing support for a variety
+of raster and vector formats. PDAL provides the same capability for point
+cloud data types.
+
+PDAL evolved out of the development of database storage and access capabilities
+for the |USACE| CRREL |GRiD| project. Functionality that was creeping into libLAS
+was pulled into a new library, and it was designed from the ground up to mimic
+successful extract, transform, and load libraries in the geospatial software
+domain. PDAL has steadily attracted more contributors as other software developers
+use it to provide point cloud data translation and processing capability to
+their software.
+
+
+How is point cloud data different than raster or vector geo data?
+................................................................................
+
+Point cloud data are indeed very much like the typical vector point data type
+of which many geospatial practitioners are familiar, but their volume causes some
+significant challenges. Besides their `X`, `Y`, and `Z` locations, each point
+often has full attribute information of other things like `Intensity`, `Time`,
+`Red`, `Green`, and `Blue`.
+
+Typical vector coverages of point data might max out at a million or so
+features. Point clouds quickly get into the billions and even trillions, and
+because of this specialized processing and management techniques must be used
+to handle so much data efficiently.
+
+The algorithms used to extract and exploit point cloud data are also significantly
+different than typical vector GIS work flows, and data organization is extremely
+important to be able to efficiently leverage the available computing. These
+characteristics demand a library oriented toward these approaches and PDAL
+achieves it.
+
+What tasks are PDAL good at?
+................................................................................
+
+PDAL is great at point cloud data translation work flows. It allows users to
+apply algorithms to data by providing an abstract API to the content -- freeing
+users from worrying about many data format issues.  PDAL's format-free worry
+does come with a bit of overhead cost. In most cases this is not significant,
+but for specific processing work flows with specific data, specialized tools
+will certainly outperform it.
+
+In exchange for possible performance penalty or data model impedance, developers
+get the freedom to access data over an abstract API, a multitude of algorithms
+to apply to data within easy reach, and the most complete set of
+point cloud format drivers in the industry. PDAL also provides a straightforward
+command line, and it extends simple generic Python processing through Numpy. These
+features make it attractive to software developers, data managers, and
+scientists.
+
+What are PDAL's weak points?
+................................................................................
+
+PDAL doesn't provide a friendly GUI interface, it expects that you have the
+confidence to dig into a command-line interface, and it sometimes forgets that
+you don't always want to read source code to figure out what exactly is
+happening.  PDAL is an open source project in active development, and because
+of that, we're always working to improve it. Please visit :ref:`community` to
+find out how you can participate if you are interested. The project is always
+looking for contribution, and the mailing list is the place to ask for help if
+you are stuck.
+
+High Level Overview
+--------------------------------------------------------------------------------
+
+PDAL is first and foremost a software library. A successful software library
+must meet the needs of software developers who use it to provide its software
+capabilities to their own software. In addition to its use as a software
+library, PDAL provides some :ref:`command line applications <apps>` users can
+leverage to conveniently translate, filter, and process data with PDAL.
+Finally, PDAL provides |Python| support in the form of embedded operations
+and Python extensions.
+
+Core C++ Software Library
+................................................................................
+
+PDAL provides a :ref:`C++ API <api>` software developers can use to provide
+point cloud processing capabilities in their own software. PDAL is cross-platform
+C++, and it can compile and run on Linux, OS X, and Windows.
+
+.. seealso::
+
+    PDAL :ref:`software <reading>` :ref:`development <writing>`
+    :ref:`tutorials <writing-reader>` have more information on how to
+    use the library from a software developer's perspective. We won't
+    get very deep in the C++ swamp in this workshop.
+
+Command Line Utilities
+................................................................................
+
+.. index:: Command line, Apps
+
+PDAL provides a number of :ref:`applications <apps>` that allow users to
+coordinate and construct point cloud processing work flows. Some key tasks
+users can achieve with these applications include:
+
+* Print :ref:`info <info_command>` about a data set
+* Data :ref:`translation <translate_command>` from one point cloud format to another
+* Application of exploitation algorithms
+
+  * Generate a DTM
+  * Remove noise
+  * Reproject from one coordinate system to another
+  * Classify points as :ref:`ground/not ground <ground_command>`
+
+* :ref:`Merge <merge_command>` or :ref:`split <split_command>` data
+* :ref:`Catalog <tindex_command>` collections of data
+
+Python API
+................................................................................
+
+.. index:: Numpy, Python
+
+PDAL supports both embedding |Python| and extending with |Python|. These
+allow you to dynamically interact with point cloud data in a more
+comfortable and familiar language environment for geospatial practitioners
+
+Embed
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. index:: Embed, Python
+
+By embedding Python, PDAL allows you to interact with point cloud data using
+typical `Numpy`_ features. PDAL embeds |Python| scripts in your processing work
+flows with the :ref:`filters.programmable` and :ref:`filters.predicate`
+filters. Your Python scripts can process and interact with point cloud data
+during the execution of a :ref:`PDAL pipeline <pipeline>`, and you are free to
+dynamically do whatever you want in your scripts.
+
+Extension
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. index:: Extension
+
+PDAL also provides a Python extension for software developers who simply
+want to use data as a mechanism to abstract data formats. This approach
+works really well in algorithm work bench scenarios, simple data testing
+and validation challenges, or situations where full C++ applications would be
+too much effort or complexity.
+
+.. seealso::
+
+    The :ref:`python_installation` document contains information on how to
+    install and use the PDAL Python extension.
+
+.. _`Numpy`: http://www.numpy.org/
+
+
+Conclusion
+--------------------------------------------------------------------------------
+
+PDAL is an open source project for translating, filtering, and processing
+point cloud data. It provides a C++ API, command line utilities, and Python
+extensions. There are many open source software projects for interacting
+with point cloud data, and PDAL's niche is in processing, translation,
+and automation.
diff --git a/doc/workshop/qgis.rst b/doc/workshop/qgis.rst
new file mode 100644
index 0000000..65fa41d
--- /dev/null
+++ b/doc/workshop/qgis.rst
@@ -0,0 +1,70 @@
+.. _qgis:
+
+QGIS
+================================================================================
+
+.. index:: QGIS
+
+.. include:: ./includes/substitutions.rst
+
+What is |QGIS|?
+--------------------------------------------------------------------------------
+
+|QGIS| is an open source GIS. It is extensible with |Python|, it integrates
+the `GRASS`_ analytic environment, and it works on both Windows and OS X.
+
+.. _`GRASS`: https://grass.osgeo.org/
+
+How will we use QGIS?
+--------------------------------------------------------------------------------
+
+We're using |QGIS| to visualize raster and vector processing product during
+our workshop. If you have another GIS available to you, you are welcome to
+use it, but because |QGIS| is open source, we are installing it and using it
+to be sure you'll have something to look at data with.
+
+Installing QGIS
+--------------------------------------------------------------------------------
+
+1. Copy the contents of your |Hobu| USB key to a ``PDAL`` directory in your
+   home directory (something like ``C:\Users\Howard\PDAL``). We will refer to
+   this location for the rest of the workshop materials.
+
+2. After your materials are copied, navigate to the
+   ``c:\Users\Howard\PDAL\software`` directory.
+
+.. image:: ./images/qgis-select-qgis.png
+
+.. note::
+
+    It is assumed your |Hobu| USB drive has all of its contents
+    copied to the ``C:\Users\Howard\PDAL`` folder. Please adjust your
+    locations when reading these tutorial documents accordingly.
+
+3. Choose the install image, Windows or Mac, and install |QGIS|
+   prepare your machine to run the examples.
+
+.. image:: ./images/qgis-start-install.png
+
+.. image:: ./images/qgis-install-progress.png
+
+
+4. Once installed, verify you can run |QGIS| by opening the application.
+   Navigate to the ``C:\Users\Howard\PDAL\exercises\analysis\colorization``
+   directory.
+
+.. image:: ./images/qgis-add-raster-layer.png
+
+5. Select the ``casi-2015-04-29-weekly-mosaic.tif`` image and open it
+   for display.
+
+.. image:: ./images/qgis-choose-raster.png
+
+.. image:: ./images/qgis-view-raster.png
+
+
+Conclusion
+--------------------------------------------------------------------------------
+
+|QGIS| allows everyone to have access to a fully-featured GIS. We are going to
+use it to visualize raster and vector data used throughout the workshop.
diff --git a/doc/workshop/slides/source/_static/custom.css b/doc/workshop/slides/source/_static/custom.css
new file mode 100644
index 0000000..d9644b2
--- /dev/null
+++ b/doc/workshop/slides/source/_static/custom.css
@@ -0,0 +1,11 @@
+article h1 {
+    margin-top: 20px;
+}
+
+.strike {
+    text-decoration: line-through;
+}
+
+.strike {
+    text-decoration: line-through;
+}
diff --git a/doc/workshop/slides/source/_static/liblaslogo.png b/doc/workshop/slides/source/_static/liblaslogo.png
new file mode 100644
index 0000000..e22a59c
Binary files /dev/null and b/doc/workshop/slides/source/_static/liblaslogo.png differ
diff --git a/doc/workshop/slides/source/_static/pdal_logo.png b/doc/workshop/slides/source/_static/pdal_logo.png
new file mode 100644
index 0000000..7e61207
Binary files /dev/null and b/doc/workshop/slides/source/_static/pdal_logo.png differ
diff --git a/doc/workshop/slides/source/_static/rsgis_logo.png b/doc/workshop/slides/source/_static/rsgis_logo.png
new file mode 100644
index 0000000..9e3e65f
Binary files /dev/null and b/doc/workshop/slides/source/_static/rsgis_logo.png differ
diff --git a/doc/workshop/slides/source/agenda-include.txt b/doc/workshop/slides/source/agenda-include.txt
new file mode 100644
index 0000000..e2ecd9c
--- /dev/null
+++ b/doc/workshop/slides/source/agenda-include.txt
@@ -0,0 +1,8 @@
+1. :ref:`Front Matter<introduction>`
+2. :ref:`Introduction to LiDAR <lidar_intro>`
+3. :ref:`Introduction to PDAL <pdal_intro>`
+4. :ref:`Software installation <software>`
+5. :ref:`Basic Information <basic_info>`
+6. :ref:`Translation <translation>`
+7. :ref:`Analysis <analysis>`
+8. :ref:`Georeferencing <georeferencing>`
diff --git a/doc/workshop/slides/source/analysis.rst b/doc/workshop/slides/source/analysis.rst
new file mode 100644
index 0000000..cc5620f
--- /dev/null
+++ b/doc/workshop/slides/source/analysis.rst
@@ -0,0 +1,14 @@
+.. _analysis:
+
+Analysis
+================================================================================
+
+* :ref:`boundary`
+* :ref:`clipping`
+* :ref:`colorization`
+* :ref:`denoising`
+* :ref:`density`
+* :ref:`thinning`
+* :ref:`ground`
+* :ref:`dtm`
+
diff --git a/doc/workshop/slides/source/basic_info.rst b/doc/workshop/slides/source/basic_info.rst
new file mode 100644
index 0000000..9d11ee4
--- /dev/null
+++ b/doc/workshop/slides/source/basic_info.rst
@@ -0,0 +1,153 @@
+.. _basic_info:
+
+Basic Information
+================================================================================
+
+* Inspection of file contents
+* Location determination
+* Investigate suitability
+
+Exercises
+================================================================================
+
+1. :ref:`single-point`
+2. :ref:`metadata`
+3. :ref:`near`
+
+Printing a Single Point
+================================================================================
+
+Purpose:
+    * Learn how to run PDAL via :ref:`docker`
+    * Verify PDAL is working correctly
+    * Learn about point cloud data types
+
+:ref:`Workshop Materials <unavco:single-point>`
+
+Command (first point)
+================================================================================
+
+In your `Docker Quickstart Terminal`, issue the following:
+
+.. literalinclude:: ../../exercises/info/single-point-command.txt
+    :linenos:
+
+1. ``docker``: All our commands start with ``docker``
+
+2. ``run``: Tells docker we're going to run an image
+
+3. ``-v /c/Users/Howard/PDAL:/data``: Maps our workshop directory to a directory called
+   ``/data`` inside the container.
+
+Command (first point)
+================================================================================
+
+.. literalinclude:: ../../exercises/info/single-point-command.txt
+    :linenos:
+
+4. ``pdal/pdal``: Run the image with name ``pdal/pdal``
+
+5. ``pdal``: Inside the ``pdal/pdal`` image, run the `pdal` command
+
+6. ``info``: `info` is a "kernel" in PDAL-speak. It is a unit
+   of functionality driven by the command line.
+
+Command (first point)
+================================================================================
+
+.. literalinclude:: ../../exercises/info/single-point-command.txt
+    :linenos:
+
+7. ``/data/exercises/info/interesting.las``: Our directory
+   is now mounted at ``/data``
+
+8. ``-p``: ``-p`` corresponds to "print a point".
+
+9. ``0`` means to print the first
+
+Run (first point)
+================================================================================
+
+.. figure:: ../../images/info-interesting-single-point.png
+
+    `JSON`_ output of the first point
+
+.. _`JSON`: http://json.org
+
+
+
+.. _metadata:
+
+Printing File Metadata
+================================================================================
+
+Purpose:
+    * Investigate files
+    * Verify data validity
+    * Compute bounding box
+    * Retrieve supporting information
+
+:ref:`Metadata Workshop Materials <unavco:metadata>`
+
+Command (metadata)
+================================================================================
+
+In your `Docker Quickstart Terminal`, issue the following:
+
+.. literalinclude:: ../../exercises/info/metadata-command.txt
+    :linenos:
+
+* `JSON`_ output
+* Tree structure
+* Coordinate system
+* Filter output
+
+Run (metadata)
+================================================================================
+
+.. figure:: ../../images/info-interesting-metadata.png
+
+    `JSON`_ output of file metadata
+
+Searching Near a Point
+================================================================================
+
+Purpose:
+    * Neighborhood query
+    * Point ordering
+
+:ref:`Near Workshop Materials <unavco:near>`
+
+Command (near - metadata)
+================================================================================
+
+In your `Docker Quickstart Terminal`, issue the following:
+
+.. literalinclude:: ../../exercises/info/near-command-1.txt
+    :linenos:
+
+* Print *all* metadata info
+* Find and compute midpoints from ``bbox`` metadata
+* Query file nearest midpoint
+
+Command (near - query)
+================================================================================
+
+In your `Docker Quickstart Terminal`, issue the following:
+
+.. literalinclude:: ../../exercises/info/near-command-2.txt
+    :linenos:
+
+* Print 3-nearest points (in order)
+* Output `JSON`_ format
+
+Run (near - query )
+================================================================================
+
+.. image:: ../../images/info-near-point.png
+
+Next
+================================================================================
+
+On to :ref:`translation`
+
diff --git a/doc/workshop/slides/source/boundary.rst b/doc/workshop/slides/source/boundary.rst
new file mode 100644
index 0000000..c0a597d
--- /dev/null
+++ b/doc/workshop/slides/source/boundary.rst
@@ -0,0 +1,52 @@
+.. _boundary:
+
+Boundary
+================================================================================
+
+Purpose:
+    * Estimate spatial footprint
+    * Do it quickly
+    * Balance speed/quality
+    * Look with :ref:`qgis`
+
+:ref:`Boundary Workshop Materials <unavco:boundary>`
+
+Boundary (command)
+================================================================================
+
+.. literalinclude:: ../../exercises/analysis/boundary/boundary-command-boundary.txt
+
+Boundary (command output)
+================================================================================
+
+.. image:: ../../images/boundary-text-output.png
+
+Boundary (blizzard)
+================================================================================
+
+.. image:: ../../images/blizzard-eight.gif
+
+Boundary (tindex)
+================================================================================
+
+.. literalinclude:: ../../exercises/analysis/boundary/boundary-command-tindex.txt
+
+Boundary (tindex output)
+================================================================================
+
+.. image:: ../../images/boundary-tindex-run.png
+
+Boundary (QGIS)
+================================================================================
+
+.. image:: ../../images/density-add-layer.png
+
+Boundary (QGIS)
+================================================================================
+
+.. image:: ../../images/boundary-qgis-view.png
+
+Next
+================================================================================
+
+On to :ref:`clipping`
diff --git a/doc/workshop/slides/source/clipping.rst b/doc/workshop/slides/source/clipping.rst
new file mode 100644
index 0000000..ee81bd6
--- /dev/null
+++ b/doc/workshop/slides/source/clipping.rst
@@ -0,0 +1,100 @@
+.. _clipping:
+
+Cliping data with polygons
+================================================================================
+
+Purpose:
+    * Subset data with a polygon
+    * Assign attribute data
+    * Use PDAL pipeline
+
+:ref:`Clipping Workshop Materials <unavco:clipping>`
+
+Clipping (Autzen)
+================================================================================
+
+.. image:: ../../images/clipping-autzen-view.png
+
+Clipping (setup)
+================================================================================
+
+* Polygons as GeoJSON
+* Data in two coordinate system
+* First use of PDAL Pipeline
+
+Clipping (polygon)
+================================================================================
+
+.. image:: ../../images/clipping-view-polygons.png
+
+Clipping (reproject)
+================================================================================
+
+* GeoJSON in Geographic
+* LiDAR in State Plane
+* Use OGR VRT
+
+Clipping (vrt)
+================================================================================
+
+.. literalinclude:: ../../exercises/analysis/clipping/attributes.vrt
+    :linenos:
+
+Clipping (pipeline)
+================================================================================
+
+* ``translate`` not expressive enough
+* Complex operations (merge, filter, write)
+* Repeatable operations with substitution
+
+Clipping (pipeline)
+================================================================================
+
+.. literalinclude:: ../../exercises/analysis/clipping/clipping.json
+    :linenos:
+
+.. _pipeline_breakdown:
+
+Pipeline
+================================================================================
+
+1. :ref:`readers.las`
+2. :ref:`filters.attribute`
+3. :ref:`filters.range`
+4. :ref:`writers.las`
+
+Attribute Filter
+================================================================================
+
+* Assign point values
+
+  * Polygon
+  * Single value
+
+Range Filter
+================================================================================
+
+* Keep or reject values
+
+Pipeline Strategy
+================================================================================
+
+1. Assign with `filters.attribute`
+2. Filter with `filters.range`
+
+
+Clipping (command)
+================================================================================
+
+.. literalinclude:: ../../exercises/analysis/clipping/clipping-run-command.txt
+    :linenos:
+
+Clipping (verify)
+================================================================================
+
+.. image:: ../../images/clipping-stadium-clipped.png
+
+Next
+================================================================================
+
+On to :ref:`colorization`
diff --git a/doc/workshop/slides/source/colorization.rst b/doc/workshop/slides/source/colorization.rst
new file mode 100644
index 0000000..89d1c28
--- /dev/null
+++ b/doc/workshop/slides/source/colorization.rst
@@ -0,0 +1,73 @@
+.. _colorization:
+
+Colorizing points with imagery
+================================================================================
+
+Purpose:
+    * Top-down projection of RGB imagery
+    * Improve visualization
+    * Assign other GDAL data to points
+
+:ref:`Colorizing Workshop Materials <unavco:colorization>`
+
+
+Colorization (setup)
+================================================================================
+
+* LAZ point cloud
+* GeoTIFF
+
+Pipeline
+================================================================================
+
+1. :ref:`readers.las`
+2. :ref:`filters.colorization`
+3. :ref:`filters.range`
+4. :ref:`writers.las`
+
+Range?
+================================================================================
+
+* GDAL assigns NODATA values
+* Range filter tosses them
+
+Colorization (pipeline)
+================================================================================
+
+.. literalinclude:: ../../exercises/analysis/colorization/colorize.json
+
+Colorization (command)
+================================================================================
+
+.. literalinclude:: ../../exercises/analysis/colorization/colorization-run-command.txt
+    :linenos:
+
+Colorization (polygon)
+================================================================================
+
+.. image:: ../../images/colorize-run-command.png
+
+Colorization Filter
+================================================================================
+
+* For every point
+
+  * Query GDAL-readable raster
+  * Set point attribute to band value
+
+LAS Writer
+================================================================================
+
+* Output LAZ
+* LAS 1.2
+* Point Format 3
+
+Colorization (verify)
+================================================================================
+
+.. image:: ../../images/colorize-umpaghre-colored.png
+
+Next
+================================================================================
+
+On to :ref:`denoising`
diff --git a/doc/workshop/slides/source/conf.py b/doc/workshop/slides/source/conf.py
new file mode 100644
index 0000000..f9f6aa8
--- /dev/null
+++ b/doc/workshop/slides/source/conf.py
@@ -0,0 +1,319 @@
+# -*- coding: utf-8 -*-
+#
+# Point Cloud Processing with PDAL documentation build configuration file, created by
+# sphinx-quickstart on Wed Mar 23 12:02:13 2016.
+#
+# This file is execfile()d with the current directory set to its
+# containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys
+import os
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#sys.path.insert(0, os.path.abspath('.'))
+
+# -- General configuration ------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+    'sphinx.ext.doctest',
+    'sphinx.ext.intersphinx',
+    'sphinx.ext.todo',
+    'sphinx.ext.coverage',
+    'sphinx.ext.pngmath',
+    'sphinx.ext.ifconfig',
+]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+# source_suffix = ['.rst', '.md']
+source_suffix = '.rst'
+
+# The encoding of source files.
+#source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'Point Cloud Processing with PDAL'
+copyright = u'2016, Howard Butler'
+author = u'Howard Butler'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = u'2016.03.23'
+# The full version, including alpha/beta/rc tags.
+release = u'2016.03.23'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = []
+
+# The reST default role (used for this markup: `text`) to use for all
+# documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+# If true, keep warnings as "system message" paragraphs in the built documents.
+#keep_warnings = False
+
+# If true, `todo` and `todoList` produce output, else they produce nothing.
+todo_include_todos = True
+
+
+# -- Options for HTML output ----------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+html_theme = 'alabaster'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+#html_theme_options = {}
+
+# Add any paths that contain custom themes here, relative to this directory.
+#html_theme_path = []
+
+# The name for this set of Sphinx documents.  If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar.  Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+#html_logo = None
+
+# The name of an image file (relative to this directory) to use as a favicon of
+# the docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Add any extra paths that contain custom files (such as robots.txt or
+# .htaccess) here, relative to this directory. These files are copied
+# directly to the root of the documentation.
+#html_extra_path = []
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_domain_indices = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+#html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it.  The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = None
+
+# Language to be used for generating the HTML full-text search index.
+# Sphinx supports the following languages:
+#   'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja'
+#   'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr'
+#html_search_language = 'en'
+
+# A dictionary with options for the search language support, empty by default.
+# Now only 'ja' uses this config value
+#html_search_options = {'type': 'default'}
+
+# The name of a javascript file (relative to the configuration directory) that
+# implements a search results scorer. If empty, the default will be used.
+#html_search_scorer = 'scorer.js'
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'PointCloudProcessingwithPDALdoc'
+
+# -- Options for LaTeX output ---------------------------------------------
+
+latex_elements = {
+# The paper size ('letterpaper' or 'a4paper').
+#'papersize': 'letterpaper',
+
+# The font size ('10pt', '11pt' or '12pt').
+#'pointsize': '10pt',
+
+# Additional stuff for the LaTeX preamble.
+#'preamble': '',
+
+# Latex figure (float) alignment
+#'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+    (master_doc, 'PointCloudProcessingwithPDAL.tex', u'Point Cloud Processing with PDAL Documentation',
+     u'Howard Butler', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# If true, show page references after internal links.
+#latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+#latex_show_urls = False
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_domain_indices = True
+
+
+# -- Options for manual page output ---------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    (master_doc, 'pointcloudprocessingwithpdal', u'Point Cloud Processing with PDAL Documentation',
+     [author], 1)
+]
+
+# If true, show URL addresses after external links.
+#man_show_urls = False
+
+
+# -- Options for Texinfo output -------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+    (master_doc, 'PointCloudProcessingwithPDAL', u'Point Cloud Processing with PDAL Documentation',
+     author, 'PointCloudProcessingwithPDAL', 'One line description of project.',
+     'Miscellaneous'),
+]
+
+# Documents to append as an appendix to all manuals.
+#texinfo_appendices = []
+
+# If false, no module index is generated.
+#texinfo_domain_indices = True
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+#texinfo_show_urls = 'footnote'
+
+# If true, do not generate a @detailmenu in the "Top" node's menu.
+#texinfo_no_detailmenu = False
+
+
+# -- Hieroglyph Slide Configuration ------------
+
+extensions += [
+    'hieroglyph',
+]
+
+slide_title = 'Point Cloud Processing with PDAL'
+slide_theme = 'slides'
+slide_levels = 1
+
+# Place custom static assets in the _static directory and uncomment
+
+# the following lines to include them
+
+slide_theme_options = {
+    'custom_css': 'custom.css',
+#    'custom_js': 'custom.js',
+}
+
+# ----------------------------------------------
+
+
+
+# Example configuration for intersphinx: refer to the Python standard library.
+intersphinx_mapping = {'pdal': ('http://www.pdal.io/', None),
+                       'unavco': ('../../_build/html/../../../../_build/html/', '../../_build/html/objects.inv')}
+
diff --git a/doc/workshop/slides/source/denoising.rst b/doc/workshop/slides/source/denoising.rst
new file mode 100644
index 0000000..408132f
--- /dev/null
+++ b/doc/workshop/slides/source/denoising.rst
@@ -0,0 +1,60 @@
+.. _denoising:
+
+Removing noise
+================================================================================
+
+Purpose:
+    * Remove noise with a statistical method
+    * Maintain point integrity
+
+:ref:`Denoising Workshop Materials <unavco:colorization>`
+
+
+Pipeline
+================================================================================
+
+1. :ref:`readers.las`
+2. :ref:`filters.statisticaloutlier`
+3. :ref:`filters.range`
+4. :ref:`writers.las`
+
+Range Filter
+================================================================================
+
+* Big cluster of extreme ``Z`` values
+* Range filter tosses them
+
+Denoising (pipeline)
+================================================================================
+
+.. literalinclude:: ../../exercises/analysis/denoising/denoise.json
+    :linenos:
+
+Denoising (command)
+================================================================================
+
+.. literalinclude:: ../../exercises/analysis/denoising/denoising-run-command.txt
+    :linenos:
+
+Denoising (execution)
+================================================================================
+
+.. image:: ../../images/denoise-run-command.png
+
+Statistical Outlier Filter
+================================================================================
+
+See [Rusu2008]_ for more information.
+
+.. [Rusu2008] Rusu, Radu Bogdan, et al. "Towards 3D point cloud based object maps for household environments." Robotics and Autonomous Systems 56.11 (2008): 927-941.
+
+
+Denoising (verify)
+================================================================================
+
+.. image:: ../../images/denoise-plasio.png
+
+Next
+================================================================================
+
+On to :ref:`density`
diff --git a/doc/workshop/slides/source/density.rst b/doc/workshop/slides/source/density.rst
new file mode 100644
index 0000000..c4a5a84
--- /dev/null
+++ b/doc/workshop/slides/source/density.rst
@@ -0,0 +1,70 @@
+.. _density:
+
+Visualizing acquisition density
+================================================================================
+
+Purpose:
+    * Characterize collection density
+
+:ref:`Density Workshop Materials <unavco:density>`
+
+
+Density (execution)
+================================================================================
+
+.. image:: ../../images/density-command-run.png
+
+filters.hexbin
+================================================================================
+
+* Hexagon tesselation
+* Sample-based or user-specified edge size
+* Count threshold
+
+
+Density (view)
+================================================================================
+
+.. image:: ../../images/density-add-layer.png
+
+Density (view)
+================================================================================
+
+.. image:: ../../images/density-select-layer.png
+
+Density (view)
+================================================================================
+
+.. image:: ../../images/density-file-open.png
+
+Density (view)
+================================================================================
+
+.. image:: ../../images/density-graduated-symbols-pick.png
+
+Density (view)
+================================================================================
+
+.. image:: ../../images/density-count-attribute.png
+
+Density (view)
+================================================================================
+
+.. image:: ../../images/density-graduated-symbols.png
+
+Density (view)
+================================================================================
+
+.. image:: ../../images/density-final-render.png
+
+Density (edge size)
+================================================================================
+
+::
+
+    --filters.hexbin.edge_size=24
+
+Next
+================================================================================
+
+On to :ref:`thinning`
diff --git a/doc/workshop/slides/source/dtm.rst b/doc/workshop/slides/source/dtm.rst
new file mode 100644
index 0000000..74f0de5
--- /dev/null
+++ b/doc/workshop/slides/source/dtm.rst
@@ -0,0 +1,73 @@
+.. _dtm:
+
+Generating a DTM
+================================================================================
+
+Purpose:
+    * Generate a DTM from ground-filtered data
+    * Data was created in :ref:`ground`
+    * Visualize DTM using :ref:`qgis`
+
+
+:ref:`DTM Workshop Materials <unavco:dtm>`
+
+
+writers.p2g
+================================================================================
+
+* :ref:`writers.p2g`
+* Generated using points2grid (OpenTopography)
+* Write TIFF/ASCII raster
+* Control pixel size
+
+DTM (pipeline)
+================================================================================
+
+.. literalinclude:: ../../exercises/analysis/dtm/p2g.json
+    :linenos:
+
+DTM (execution)
+================================================================================
+
+.. literalinclude:: ../../exercises/analysis/dtm/dtm-run-command.txt
+    :linenos:
+
+DTM (command)
+================================================================================
+
+.. image:: ../../images/dtm-run-command.png
+
+DTM (visualization)
+================================================================================
+
+.. image:: ../../images/dtm-add-raster-mean.png
+
+DTM (visualization)
+================================================================================
+
+.. image:: ../../images/dtm-qgis-classify.png
+
+DTM (visualization)
+================================================================================
+
+.. image:: ../../images/dtm-qgis-colorize-dtm.png
+
+DTM (visualization)
+================================================================================
+
+.. image:: ../../images/dtm-qgis-select-hillshade.png
+
+DTM (visualization)
+================================================================================
+
+.. image:: ../../images/dtm-qgis-gdaldem.png
+
+DTM (visualization)
+================================================================================
+
+.. image:: ../../images/dtm-qgis-hillshade-done.png
+
+Home
+================================================================================
+:ref:`Home <home>`
+
diff --git a/doc/workshop/slides/source/georeferencing.rst b/doc/workshop/slides/source/georeferencing.rst
new file mode 100644
index 0000000..cc8383c
--- /dev/null
+++ b/doc/workshop/slides/source/georeferencing.rst
@@ -0,0 +1,49 @@
+.. _georeferencing:
+
+Georeferencing
+================================================================================
+
+Purpose:
+
+- Transform airborne or mobile LiDAR points into usable point clouds.
+
+
+Components
+===============
+
+- LiDAR point stream
+    - X, Y, Z
+    - Timestamp
+- GNSS/IMU point stream
+    - GPS X, Y, Z
+    - IMU roll, pitch, yaw
+- Lever arm and boresight matrix
+- Combine with the georeferencing equation:
+
+.. figure:: img/georeferencing.png
+
+Caveats
+============
+
+- Generic georeferencing is **not yet** implemented in PDAL.
+- The :ref:`readers.optech` includes built-in georeferencing, which automatically projects data to WGS84.
+
+Command
+============
+
+.. literalinclude:: ../../exercises/georeferencing/georeferencing-command.txt
+    :linenos:
+
+- In order to display the data easily in plas.io, we must reproject to UTM.
+- There are some spurious points close to the sensor that skew the intensity distribution.
+  By filtering these points, we will improve the default display in plas.io.
+
+Verify
+===========
+
+.. figure:: ../../images/georeferencing-run-command.png
+
+Visualize
+===============
+
+.. figure:: ../../images/georeference-plasio.png
diff --git a/doc/workshop/slides/source/ground.rst b/doc/workshop/slides/source/ground.rst
new file mode 100644
index 0000000..0cbfcc1
--- /dev/null
+++ b/doc/workshop/slides/source/ground.rst
@@ -0,0 +1,68 @@
+.. _ground:
+
+Identifying ground
+================================================================================
+
+Purpose:
+    * Filter and classify ground points
+
+
+:ref:`Ground Workshop Materials <unavco:ground>`
+
+
+filters.ground
+================================================================================
+
+* Progressive Morphological Filter [Zhang2003]_.
+* Exact (slow) and Approximate (fast)
+* Ground only, no other types
+
+.. [Zhang2003] Zhang, Keqi, et al. "A progressive morphological filter for removing nonground measurements from airborne LIDAR data." Geoscience and Remote Sensing, IEEE Transactions on 41.4 (2003): 872-882.
+
+Ground (execution)
+================================================================================
+
+.. literalinclude:: ../../exercises/analysis/ground/ground-run-no-filter.txt
+    :linenos:
+
+Ground (view)
+================================================================================
+
+.. image:: ../../images/ground-classified-included.png
+
+Ground (noise)
+================================================================================
+
+Noise!
+
+.. image:: ../../images/ground-classified-included-side.png
+
+Ground (ground only)
+================================================================================
+
+.. literalinclude:: ../../exercises/analysis/ground/ground-run-ground-only.txt
+    :linenos:
+    :emphasize-lines: 6
+
+Ground (PCL pipeline)
+================================================================================
+
+.. literalinclude:: ../../exercises/analysis/ground/filter.json
+    :linenos:
+
+Ground (PCL pipeline)
+================================================================================
+
+.. literalinclude:: ../../exercises/analysis/ground/ground-run-pcl-filter.txt
+    :linenos:
+    :emphasize-lines: 5
+
+Ground (view)
+================================================================================
+
+.. image:: ../../images/ground-filtered.png
+
+Next
+================================================================================
+
+On to :ref:`dtm`
diff --git a/doc/workshop/slides/source/img/docker-diagram.png b/doc/workshop/slides/source/img/docker-diagram.png
new file mode 100644
index 0000000..68dd4fd
Binary files /dev/null and b/doc/workshop/slides/source/img/docker-diagram.png differ
diff --git a/doc/workshop/slides/source/img/georeferencing.png b/doc/workshop/slides/source/img/georeferencing.png
new file mode 100644
index 0000000..4807d68
Binary files /dev/null and b/doc/workshop/slides/source/img/georeferencing.png differ
diff --git a/doc/workshop/slides/source/img/google-car.jpg b/doc/workshop/slides/source/img/google-car.jpg
new file mode 100644
index 0000000..17c0b21
Binary files /dev/null and b/doc/workshop/slides/source/img/google-car.jpg differ
diff --git a/doc/workshop/slides/source/img/guinea.gif b/doc/workshop/slides/source/img/guinea.gif
new file mode 100644
index 0000000..0596b89
Binary files /dev/null and b/doc/workshop/slides/source/img/guinea.gif differ
diff --git a/doc/workshop/slides/source/img/life-so-hard.gif b/doc/workshop/slides/source/img/life-so-hard.gif
new file mode 100644
index 0000000..b1e733c
Binary files /dev/null and b/doc/workshop/slides/source/img/life-so-hard.gif differ
diff --git a/doc/workshop/slides/source/img/ricopter.jpg b/doc/workshop/slides/source/img/ricopter.jpg
new file mode 100644
index 0000000..87449cf
Binary files /dev/null and b/doc/workshop/slides/source/img/ricopter.jpg differ
diff --git a/doc/workshop/slides/source/img/scanner.svg b/doc/workshop/slides/source/img/scanner.svg
new file mode 100644
index 0000000..82005dd
--- /dev/null
+++ b/doc/workshop/slides/source/img/scanner.svg
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="215.07199mm"
+   height="137.21483mm"
+   viewBox="0 0 762.06611 486.19427"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="scanner.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4672"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="StopL">
+      <path
+         transform="scale(0.8,0.8)"
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         d="M 0,5.65 0,-5.65"
+         id="path4674"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="StopL"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="StopL"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4348"
+         d="M 0,5.65 0,-5.65"
+         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         transform="scale(0.8,0.8)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       style="overflow:visible"
+       id="DistanceStart"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="DistanceStart"
+       inkscape:isstock="true">
+      <g
+         id="g2300">
+        <path
+           style="fill:none;stroke:#ffffff;stroke-width:1.14999998;stroke-linecap:square"
+           d="M 0,0 2,0"
+           id="path2306"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:#000000;fill-rule:evenodd;stroke:none"
+           d="M 0,0 13,4 9,0 13,-4 0,0 Z"
+           id="path2302"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square"
+           d="M 0,-4 0,40"
+           id="path2304"
+           inkscape:connector-curvature="0" />
+      </g>
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker4457"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Mend">
+      <path
+         transform="scale(-0.6,-0.6)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path4459"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend"
+       style="overflow:visible"
+       inkscape:isstock="true"
+       inkscape:collect="always">
+      <path
+         id="path4206"
+         style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="scale(-0.6,-0.6)"
+         inkscape:connector-curvature="0" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="493.95439"
+     inkscape:cy="170.52584"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1440"
+     inkscape:window-height="851"
+     inkscape:window-x="0"
+     inkscape:window-y="1"
+     inkscape:window-maximized="1"
+     fit-margin-top="20"
+     fit-margin-left="20"
+     fit-margin-right="20"
+     fit-margin-bottom="20" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(13.756,-166.30296)">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
+       d="m 165.66502,311.92039 507.09658,0"
+       id="path4173"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path4455"
+       d="m 675.78528,323.92039 -507.09658,0"
+       style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4457)" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.28348851px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 676.80221,237.1691 0,344.46201"
+       id="path4527"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g4166"
+       transform="translate(-95.964492,6.0609153)">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3338"
+         d="m 153.54319,569.50929 73.74113,-197.9899"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="M 325.1879,569.50929 251.44677,371.51939"
+         id="path3360"
+         inkscape:connector-curvature="0" />
+      <rect
+         y="273.53461"
+         x="213.16249"
+         height="96.974648"
+         width="49.497475"
+         id="rect3364"
+         style="fill:#ececec;stroke:#000000" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="408.98996"
+       y="287.67673"
+       id="text4529"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4531"
+         x="408.98996"
+         y="287.67673"
+         style="font-size:30px">d</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#StopL)"
+       d="m 178.797,278.62597 209.10158,0"
+       id="path4535"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path4670"
+       d="m 655.89611,278.62597 -209.10158,0"
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 2;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#marker4672)" />
+  </g>
+</svg>
diff --git a/doc/workshop/slides/source/img/vm-diagram.png b/doc/workshop/slides/source/img/vm-diagram.png
new file mode 100644
index 0000000..f44bb26
Binary files /dev/null and b/doc/workshop/slides/source/img/vm-diagram.png differ
diff --git a/doc/workshop/slides/source/index.rst b/doc/workshop/slides/source/index.rst
new file mode 100644
index 0000000..2acb2d7
--- /dev/null
+++ b/doc/workshop/slides/source/index.rst
@@ -0,0 +1,28 @@
+.. _home:
+
+Overview
+================================================================================
+
+.. include:: ./agenda-include.txt
+
+.. toctree::
+   :maxdepth: 1
+   :hidden:
+
+   introduction
+   lidar_intro
+   pdal_intro
+   software
+   basic_info
+   translation
+   analysis
+   georeferencing
+   boundary
+   clipping
+   colorization
+   denoising
+   density
+   thinning
+   ground
+   dtm
+
diff --git a/doc/workshop/slides/source/introduction.rst b/doc/workshop/slides/source/introduction.rst
new file mode 100644
index 0000000..e455d01
--- /dev/null
+++ b/doc/workshop/slides/source/introduction.rst
@@ -0,0 +1,62 @@
+.. _introduction:
+
+Order of business
+================================================================================
+
+* Materials https://hobu.co/workshops/unavco/
+* Follow along https://hobu.co/workshops/unavco/slides/
+* PDF https://hobu.co/workshops/unavco/PDAL-UNAVCO-ShortCourse.pdf
+* Links everywhere
+* First time guinea pigs
+
+Guinea Pigs
+================================================================================
+
+    .. image:: ./img/guinea.gif
+
+Goals
+================================================================================
+
+* Walk out with the confidence that you can use this
+  stuff to do things
+
+* Walk out with materials and software
+
+* Learn a bit too
+
+Who are we
+================================================================================
+
+* Howard Butler
+* Pete Gadomski
+* Dr. Craig Glennie
+
+Howard Butler
+================================================================================
+
+* Owns `Hobu, Inc.`_
+* Develops open source GIS and LiDAR software
+* Commits over 15 years
+* Tweets @ http://twitter.com/howardbutler
+
+.. _`Hobu, Inc.`: http://hobu.co
+
+Pete Gadomski
+================================================================================
+
+* Physical Scientist at CRREL
+* Graduate student in Geosensing Systems Engineering and Sciences at UH
+* Writes code, collects data
+* https://github.com/gadomski
+
+Dr. Craig Glennie
+================================================================================
+
+* Co-PI National Center for Airborne Laser Mapping (NCALM)
+* University of Houston
+* Formerly VP Engineering, Terrapoint
+
+Next
+================================================================================
+
+On to :ref:`lidar_intro`
diff --git a/doc/workshop/slides/source/lidar_intro.rst b/doc/workshop/slides/source/lidar_intro.rst
new file mode 100644
index 0000000..ac3e059
--- /dev/null
+++ b/doc/workshop/slides/source/lidar_intro.rst
@@ -0,0 +1,65 @@
+.. _lidar_intro:
+
+Introduction to LiDAR
+================================================================================
+
+.. include:: ../../includes/substitutions.rst
+
+- Active remote sensing with visible or near-infrared lasers to measure distances
+- Can be mounted on tripods, cars, planes, helicopters, drones, satellites, and more
+
+.. figure:: img/google-car.jpg
+    :width: 400px
+
+How do LiDAR systems measure distance?
+================================================================================
+
+Three primary methods:
+
+1. **By measuring the time-of-flight of laser pulses.**
+2. By measuring the time-of-flight of single photons.
+3. By using interferometry to count the fractional number of wavelengths between a scanner and a target.
+
+.. figure:: img/scanner.svg
+    :height: 200px
+
+
+How is LiDAR used?
+================================================================================
+
+* Terrestrial Laser Scanning (**TLS**)
+* Mobile Laser Scanning (**MLS**)
+* Airborne Laser Scanning (**ALS**): also called Airborne Laser Swath Mapping (ALSM)
+* Unmanned Laser Scanning (**ULS**)
+
+Discrete vs. full-waveform
+============================
+
+- Outgoing puses are *not* instantaneous — they have a finite width and height (approximated by a Gaussian)
+- Return energy is not instantaneous either (see picture)
+- The "full waveform" output (see picture) is usually simplified down to single points (discrete-return)
+
+.. figure:: ../../images/return-pulse.png
+    :height: 250px
+
+Georeferencing
+================================================================================
+
+* LiDAR data is usually only useful if placed in a larger project or global context.
+* "Registering" LiDAR data to a global coordinate system is called **georeferencing**.
+* Georeferencing static (TLS) scans is usually done via known control points, either benchmarks or GNSS survey points.
+* Georeferencing mobile or airborne (MLS/TLS) scans is done by combining LiDAR data with position and orientation information from a GNSS/IMU mounted alongside the LiDAR scanner.
+
+How is LiDAR processed?
+================================================================================
+
+* Vendor-specific software (e.g. RiSCAN Pro and RiProcess, from |Riegl|)
+* Other commercial softwares (e.g. TerraStation, QT Modeler)
+* Mixed-source software (e.g. LasTools)
+* Open-source software (e.g. CloudCompare, PDAL, laspy)
+
+
+Next
+================================================================================
+
+On to :ref:`pdal_intro`
diff --git a/doc/workshop/slides/source/pdal_intro.rst b/doc/workshop/slides/source/pdal_intro.rst
new file mode 100644
index 0000000..52758ad
--- /dev/null
+++ b/doc/workshop/slides/source/pdal_intro.rst
@@ -0,0 +1,192 @@
+.. _pdal_intro:
+
+Introduction to PDAL
+================================================================================
+
+* Point Data Abstraction Library
+* "GDAL for point cloud data"
+* Focus (in priority)
+
+  1. Translation
+  2. Processing
+  3. Exploitation
+
+.. image:: ./_static/pdal_logo.png
+    :target: http://pdal.io
+
+
+
+Open Source
+================================================================================
+
+* `BSD`_ license
+* https://github.com/PDAL/PDAL
+* `Tested with every commit`_
+* 30+ `contributors`_
+* Driven by real world use
+
+.. _`Tested with every commit`: http://travis-ci.org/PDAL/PDAL/builds/
+.. _`BSD`: https://opensource.org/licenses/BSD-2-Clause
+.. _`contributors`: https://github.com/PDAL/PDAL/graphs/contributors
+
+History
+================================================================================
+
+* Started in 2010
+*
+
+  .. image:: ./_static/liblaslogo.png
+    :target: http://liblas.org
+
+* Used by `USACE GRiD`_ project for data warehousing
+
+  .. image:: ./_static/rsgis_logo.png
+    :target: http://lidar.io
+    :scale: 25%
+
+.. _`USACE GRiD`: http://lidar.io
+
+.. role:: strike
+    :class: strike
+
+:strike:`GDAL` PDAL's Niche
+================================================================================
+
+* On-disk or over-the-wire data format is a function of software requirements
+* Immature industry-wide standards (think vector world pre-shapefile)
+* Formats are proliferating quickly as the lidar/radar/sonar software industry expands
+* Need for basic processing operations
+
+
+Processing Pipeline
+================================================================================
+
+* :ref:`C++ core library <api>` implementation
+    * :ref:`Stages <stage_index>` specialize implementation
+    * :cpp:class:`PointView <pdal::PointView>` transits data
+* :ref:`Pipelines <pipeline>` orchestrate operations
+* :ref:`Applications <apps>` invoke pipelines
+
+Pipeline Architecture
+================================================================================
+
+.. image:: ../../images/pdal-reader-writer.png
+
+Pipeline Architecture
+================================================================================
+
+.. image:: ../../images/pdal-architecture-overview.png
+
+Readers (file)
+================================================================================
+
+* :ref:`ASPRS LAS <readers.las>`
+* :ref:`BPF <readers.bpf>`
+* :ref:`MrSID <readers.mrsid>`
+* :ref:`text <readers.text>`
+* :ref:`PCD (PCL)<readers.pcd>`
+* :ref:`PLY <readers.ply>`
+* :ref:`ILVIS2 <readers.ilvis2>`
+* :ref:`NITF <readers.nitf>`
+
+
+Readers (database)
+================================================================================
+
+* :ref:`PostgreSQL <readers.pgpointcloud>`
+* :ref:`Oracle <readers.oci>`
+* :ref:`SQLite <readers.sqlite>`
+
+Writers (file)
+================================================================================
+
+* :ref:`ASPRS LAS <writers.las>`
+* :ref:`BPF <writers.bpf>`
+* :ref:`text <writers.text>`
+* :ref:`PCD (PCL)<writers.pcd>`
+* :ref:`PLY <writers.ply>`
+* :ref:`NITF <writers.nitf>`
+
+Writers (database)
+================================================================================
+
+* :ref:`PostgreSQL <writers.pgpointcloud>`
+* :ref:`Oracle <writers.oci>`
+* :ref:`SQLite <writers.sqlite>`
+
+Filters
+================================================================================
+
+* :ref:`Attribute assignment<filters.attribute>`
+* :ref:`Polygon clipping <filters.crop>`
+* :ref:`Splitting by volume <filters.chipper>`
+* :ref:`Splitting by geometry <filters.divider>`
+* :ref:`Splitting by count <filters.splitter>`
+* :ref:`Coloring with imagery <filters.colorization>`
+
+
+Filters (cont)
+================================================================================
+
+* :ref:`Ground classification<filters.ground>`
+* :ref:`Normalized heights <filters.height>`
+* :ref:`Sorting <filters.sort>`
+* :ref:`Spatial curve sorting <filters.mortonorder>`
+* :ref:`Noise filtering <filters.statisticaloutlier>`
+* :ref:`Merge<filters.merge>`
+
+Filters (cont)
+================================================================================
+
+* :ref:`Reprojection <filters.reprojection>`
+* :ref:`Statistics <filters.mortonorder>`
+* :ref:`Cropping <filters.crop>`
+* :ref:`Voxel sampling<filters.voxelgrid>`
+* :ref:`Poisson sampling<filters.poisson>`
+* :ref:`Range filter<filters.range>`
+* :ref:`Rank decimation <filters.decimation>`
+* :ref:`Boundary computation<filters.hexbin>`
+
+Python
+================================================================================
+
+* Extension
+
+  * Use PDAL to read data into your own applications
+
+* Embed
+
+  * Use Python inline with :ref:`pipeline <pipeline>` operations
+
+Python (cont)
+================================================================================
+
+.. code:: python
+
+    def filter(ins,outs):
+       # Keep only points with classification 1 or 2
+       cls = ins['Classification']
+
+       keep_classes = [1,2]
+
+       # Use the first test for our base array.
+       keep = np.equal(cls, keep_classes[0])
+
+       # For 1:n, test each predicate and join back
+       # to our existing predicate array
+       for k in range(1,len(keep_classes)):
+           t = np.equal(cls, keep_classes[k])
+           keep = keep + t
+
+       outs['Mask'] = keep
+       return True
+
+Next
+================================================================================
+
+On to :ref:`software`
+
+
+
+
+
diff --git a/doc/workshop/slides/source/software.rst b/doc/workshop/slides/source/software.rst
new file mode 100644
index 0000000..f30f1c7
--- /dev/null
+++ b/doc/workshop/slides/source/software.rst
@@ -0,0 +1,120 @@
+.. _software:
+
+Software installation
+================================================================================
+
+1. :ref:`Docker <docker>`
+    * Run PDAL and GDAL command line applications
+
+2. :ref:`QGIS<qgis>`
+    * Visualize vector and raster data
+
+3. `QT Reader`_
+    * Visualize point cloud data
+
+4. `Fugro Viewer`_
+    * Visualize point cloud data
+
+5. http://plas.io
+    * Visualize point cloud data
+
+6. `CloudCompare`_
+    * Visualize point cloud data
+
+.. _`QT Reader`: http://appliedimagery.com/download/
+.. _`Fugro Viewer`: http://www.fugroviewer.com/
+.. _`CloudCompare`: http://www.danielgm.net/cc/
+
+File copying
+================================================================================
+
+1. Copy entire contents:
+
+::
+
+    C:\Users\Howard\PDAL
+
+2. Navigate to ``software`` directory:
+
+::
+
+    c:\Users\Howard\PDAL\software
+
+
+
+Docker Installation
+================================================================================
+
+.. image:: ../../images/docker-file-navigate.png
+
+1. :ref:`Docker <Docker>`
+2. :ref:`QGIS`
+
+
+Docker
+================================================================================
+
+* Containerization
+* Not virtual machines
+* Operating system isolation
+
+Virtual Machine
+================================================================================
+
+.. image:: ./img/vm-diagram.png
+    :target: https://www.docker.com/what-docker
+    :scale: 75%
+
+Docker
+================================================================================
+
+.. image:: ./img/docker-diagram.png
+    :target: https://www.docker.com/what-docker
+    :scale: 75%
+
+Why Docker?
+================================================================================
+
+* Rapid development
+* Compiling is pain
+* Windows development is pain
+* Old software is pain
+
+Compile yourself?
+================================================================================
+
+.. image:: ./img/life-so-hard.gif
+    :scale: 50%
+
+Benefits
+================================================================================
+
+* Freshies
+    * Short bug fix cycle
+
+* Known configuration
+    * Developer configures
+    * *All* the features
+
+* Replicability of configuration
+    * Runs the same on all machines
+    * Inspectable
+    * Repeatable bugs
+
+How it works
+================================================================================
+
+* Linux
+* On Windows, you actually run on a Linux VM
+    * Same on Mac
+    * We will use `VirtualBox`_
+    * `Docker Toolbox`_ does all of it for us
+    * Both free and open source
+
+.. _`VirtualBox`: https://www.virtualbox.org/wiki/Downloads
+.. _`Docker Toolbox`: https://www.docker.com/products/docker-toolbox
+
+Next
+================================================================================
+
+On to :ref:`basic_info`
diff --git a/doc/workshop/slides/source/thinning.rst b/doc/workshop/slides/source/thinning.rst
new file mode 100644
index 0000000..efa5188
--- /dev/null
+++ b/doc/workshop/slides/source/thinning.rst
@@ -0,0 +1,70 @@
+.. _thinning:
+
+Thinning
+================================================================================
+
+Purpose:
+    * Reduce collection density
+
+:ref:`Thinning Workshop Materials <unavco:thinning>`
+
+
+PDAL Thinning Techniques
+================================================================================
+
+* :ref:`filters.dartsample`
+* :ref:`filters.voxelgrid`
+* :ref:`filters.randomize` + :ref:`filters.decimation`
+
+Dart sample
+================================================================================
+
+* Poisson [Cook1986]_ and [Dippe1985]_.
+* Non-destructive
+* Settable threshold
+
+.. [Cook1986] Cook, Robert L. "Stochastic sampling in computer graphics." *ACM Transactions on Graphics (TOG)* 5.1 (1986): 51-72.
+
+.. [Dippe1985] Dippé, Mark AZ, and Erling Henry Wold. "Antialiasing through stochastic sampling." *ACM Siggraph Computer Graphics* 19.3 (1985): 69-78.
+
+Voxel grid
+================================================================================
+
+* Little boxes
+* Uniform
+* Approximated by centroid
+* Destructive
+
+Random + Decimate
+================================================================================
+
+* Decimation filter just keeps every X point
+* Insensitive to density
+
+Thinning (overview)
+================================================================================
+
+.. image:: ../../images/thinning-overview.png
+
+
+Thinning (dart command)
+================================================================================
+
+.. image:: ../../images/thinning-command-run.png
+
+Thinning (before)
+================================================================================
+
+.. image:: ../../images/thinning-full-res.png
+    :scale: 70%
+
+Thinning (after)
+================================================================================
+
+.. image:: ../../images/thinning-poisson-thin.png
+    :scale: 70%
+
+Next
+================================================================================
+
+On to :ref:`ground`
diff --git a/doc/workshop/slides/source/translation.rst b/doc/workshop/slides/source/translation.rst
new file mode 100644
index 0000000..53396f3
--- /dev/null
+++ b/doc/workshop/slides/source/translation.rst
@@ -0,0 +1,91 @@
+.. _translation:
+
+Translation
+================================================================================
+
+* Convert one format to another
+* Do stuff along the way
+
+Compression
+================================================================================
+
+Purpose:
+    * Output a compressed `LAZ`_
+    * Learn about point cloud metadata
+    * Learn about |ASPRSLAS|
+
+:ref:`Compression Workshop Materials <unavco:compression>`
+
+.. include:: ../../includes/substitutions.rst
+.. _`LAZ`: http://laszip.org
+
+LASzip
+================================================================================
+
+* |ASPRSLAS| data model
+* Typical 5:1 to 10:1 ratios
+* Incremental, interruptable, and chunkable
+* Unencumbered open source
+* C++ and JavaScript
+
+Command (compression)
+================================================================================
+
+.. literalinclude:: ../../exercises/translation/compression-command.txt
+    :linenos:
+
+* PDAL chooses option based on filename extension
+* Not all extensions work
+* Imprecise. Use :ref:`pipeline` if you need
+  to be explicit
+
+Verify (compression)
+================================================================================
+
+.. image:: ../../images/compression-verify.png
+
+
+Reprojection
+================================================================================
+
+Purpose:
+    * Transform data in one coordinate system
+      to another
+    * Utilize driver options
+    * Scale output data
+
+:ref:`Reprojection Workshop Materials <unavco:reprojection>`
+
+Command (reproject)
+================================================================================
+
+.. literalinclude:: ../../exercises/translation/reprojection-command-1.txt
+    :linenos:
+
+* We tell ``filters.reprojection`` to output to ``EPSG:4326``
+* Add ``reprojection`` filter directly to ``translate`` command
+* Define reprojection filter option via command line
+
+Command (bad scale)
+================================================================================
+
+.. image:: ../../images/reprojection-wrong-scale.png
+
+Command (scale)
+================================================================================
+
+.. literalinclude:: ../../exercises/translation/reprojection-command-2.txt
+    :linenos:
+
+* Scale set to ``1e-7``
+* Offset to ``auto`` (PDAL calculates minimum)
+
+Command (verify)
+================================================================================
+
+.. image:: ../../images/reprojection-proper-scale.png
+
+Next
+================================================================================
+
+On to :ref:`analysis`
diff --git a/doc/workshop/software.rst b/doc/workshop/software.rst
new file mode 100644
index 0000000..e9ec824
--- /dev/null
+++ b/doc/workshop/software.rst
@@ -0,0 +1,16 @@
+.. _software:
+
+Software Installation
+====================================================
+
+.. include:: ./includes/substitutions.rst
+
+.. toctree::
+   :maxdepth: 2
+
+   docker
+   qgis
+
+
+
+
diff --git a/examples/writing-filter/MyFilter.cpp b/examples/writing-filter/MyFilter.cpp
index 0ec98d6..1dd2258 100644
--- a/examples/writing-filter/MyFilter.cpp
+++ b/examples/writing-filter/MyFilter.cpp
@@ -7,6 +7,7 @@
 #include <pdal/PointTable.hpp>
 #include <pdal/PointView.hpp>
 #include <pdal/StageFactory.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -22,22 +23,16 @@ std::string MyFilter::getName() const
     return s_info.name;
 }
 
-Options MyFilter::getDefaultOptions()
+void MyFilter::addArgs(ProgramArgs& args)
 {
-    Options options;
-    options.add("param", 1.0, "My parameter");
-    return options;
-}
-
-void MyFilter::processOptions(const pdal::Options& options)
-{
-    m_value = options.getValueOrDefault<double>("param", 1.0);
+    args.add("param", "Some parameter", m_value, 1.0);
 }
 
 void MyFilter::addDimensions(PointLayoutPtr layout)
 {
     layout->registerDim(Dimension::Id::Intensity);
-    m_myDimension = layout->registerOrAssignDim("MyDimension", Dimension::Type::Unsigned8);
+    m_myDimension = layout->registerOrAssignDim("MyDimension",
+            Dimension::Type::Unsigned8);
 }
 
 PointViewSet MyFilter::run(PointViewPtr input)
diff --git a/examples/writing-filter/MyFilter.hpp b/examples/writing-filter/MyFilter.hpp
index 9ff3cae..d54c409 100644
--- a/examples/writing-filter/MyFilter.hpp
+++ b/examples/writing-filter/MyFilter.hpp
@@ -24,14 +24,12 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
     double m_value;
-    Dimension::Id::Enum m_myDimension;
+    Dimension::Id m_myDimension;
 
     virtual void addDimensions(PointLayoutPtr layout);
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual PointViewSet run(PointViewPtr view);
 
     MyFilter& operator=(const MyFilter&); // not implemented
diff --git a/examples/writing-kernel/MyKernel.cpp b/examples/writing-kernel/MyKernel.cpp
index 7d61937..01967e5 100644
--- a/examples/writing-kernel/MyKernel.cpp
+++ b/examples/writing-kernel/MyKernel.cpp
@@ -39,24 +39,18 @@ namespace pdal {
     PointTable table;
     StageFactory f;
 
-    Stage * reader = f.createStage("readers.las");
-    Options readerOptions;
-    readerOptions.add("filename", m_input_file);
-    reader->setOptions(readerOptions);
+    Stage& reader = makeReader(m_input_file, "readers.las");
 
-    Stage * filter = f.createStage("filters.decimation");
+    // Options should be added in the call to makeFilter, makeReader,
+    // or makeWriter so that the system can override them with those
+    // provided on the command line when applicable.
     Options filterOptions;
     filterOptions.add("step", 10);
-    filter->setOptions(filterOptions);
-    filter->setInput(*reader);
+    Stage& filter = makeFilter("filters.decimation", reader, filterOptions);
 
-    Stage * writer = f.createStage("writers.text");
-    Options writerOptions;
-    writerOptions.add("filename", m_output_file);
-    writer->setOptions(writerOptions);
-    writer->setInput(*filter);
-    writer->prepare(table);
-    writer->execute(table);
+    Stage& writer = makeWriter(m_output_file, filter, "writers.text");
+    writer.prepare(table);
+    writer.execute(table);
 
     return 0;
   }
diff --git a/examples/writing-reader/MyReader.cpp b/examples/writing-reader/MyReader.cpp
index 4735b54..39beca4 100644
--- a/examples/writing-reader/MyReader.cpp
+++ b/examples/writing-reader/MyReader.cpp
@@ -2,6 +2,7 @@
 
 #include "MyReader.hpp"
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -14,17 +15,9 @@ namespace pdal
 
   std::string MyReader::getName() const { return s_info.name; }
 
-  Options MyReader::getDefaultOptions()
+  void MyReader::addArgs(ProgramArgs& args)
   {
-    Options options;
-    Option z_scale("z_scale", 1.0);
-    options.add(z_scale);
-    return options;
-  }
-
-  void MyReader::processOptions(const Options& options)
-  {
-    m_scale_z = options.getValueOrDefault<double>("z_scale", 1.0);
+    args.add("z_scale", "Z Scaling", m_scale_z, 1.0);
   }
 
   void MyReader::addDimensions(PointLayoutPtr layout)
diff --git a/examples/writing-reader/MyReader.hpp b/examples/writing-reader/MyReader.hpp
index 8fd9f88..e7b8ff0 100644
--- a/examples/writing-reader/MyReader.hpp
+++ b/examples/writing-reader/MyReader.hpp
@@ -17,7 +17,6 @@ namespace pdal
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
     static Dimension::IdList getDefaultDimensions();
 
   private:
@@ -26,7 +25,7 @@ namespace pdal
     double m_scale_z;
 
     virtual void addDimensions(PointLayoutPtr layout);
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual void ready(PointTableRef table);
     virtual point_count_t read(PointViewPtr view, point_count_t count);
     virtual void done(PointTableRef table);
diff --git a/examples/writing-writer/CMakeLists.txt b/examples/writing-writer/CMakeLists.txt
index 7572883..9b4ef31 100644
--- a/examples/writing-writer/CMakeLists.txt
+++ b/examples/writing-writer/CMakeLists.txt
@@ -4,8 +4,6 @@ project(WriterTutorial)
 find_package(PDAL 1.0.0 REQUIRED CONFIG)
 include_directories(${PDAL_INCLUDE_DIRS})
 
-include_directories(/Users/chambbj/loki/pdal/repo/writers)
-
 set(CMAKE_CXX_FLAGS "-std=c++11")
 add_library(pdal_plugin_writer_mywriter SHARED MyWriter.cpp)
 target_link_libraries(pdal_plugin_writer_mywriter ${PDAL_LIBRARIES})
diff --git a/examples/writing-writer/MyWriter.cpp b/examples/writing-writer/MyWriter.cpp
index 261febd..ca83b6a 100644
--- a/examples/writing-writer/MyWriter.cpp
+++ b/examples/writing-writer/MyWriter.cpp
@@ -2,10 +2,7 @@
 
 #include "MyWriter.hpp"
 #include <pdal/pdal_macros.hpp>
-
-#include <boost/program_options.hpp>
-
-namespace po = boost::program_options;
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -32,22 +29,17 @@ namespace pdal
   };
 
 
-  Options MyWriter::getDefaultOptions()
+  void MyWriter::addArgs(ProgramArgs& args)
   {
-    Options options;
-
-    options.add("newline", "\n", "Newline character to use for additional lines");
-    options.add("filename", "", "filename to write output to");
-    options.add("datafield", "", "field to use as the User Data field");
-    options.add("precision", 3, "Precision to use for data fields");
-
-    return options;
+    // setPositional() Makes the argument required.
+    args.add("filename", "Output filename", m_filename).setPositional();  
+    args.add("newline", "Line terminator", m_newline, "\n");
+    args.add("datafield", "Data field", m_datafield, "UserData");
+    args.add("precision", "Precision", m_precision, 3);
   }
 
-
-  void MyWriter::processOptions(const Options& options)
+  void MyWriter::initialize()
   {
-    m_filename = options.getValueOrThrow<std::string>("filename");
     m_stream = FileStreamPtr(FileUtils::createFile(m_filename, true),
       FileStreamDeleter());
     if (!m_stream)
@@ -57,19 +49,14 @@ namespace pdal
         "' for output.";
       throw pdal_error(out.str());
     }
-
-    m_newline = options.getValueOrDefault<std::string>("newline", "\n");
-    m_datafield = options.getValueOrDefault<std::string>("datafield", "UserData");
-    m_precision = options.getValueOrDefault<int>("precision", 3);
   }
 
-
   void MyWriter::ready(PointTableRef table)
   {
     m_stream->precision(m_precision);
     *m_stream << std::fixed;
 
-    Dimension::Id::Enum d = table.layout()->findDim(m_datafield);
+    Dimension::Id d = table.layout()->findDim(m_datafield);
     if (d == Dimension::Id::Unknown)
     {
       std::ostringstream oss;
diff --git a/examples/writing-writer/MyWriter.hpp b/examples/writing-writer/MyWriter.hpp
index 977894d..c1d162a 100644
--- a/examples/writing-writer/MyWriter.hpp
+++ b/examples/writing-writer/MyWriter.hpp
@@ -20,10 +20,9 @@ namespace pdal{
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
   private:
-    virtual void processOptions(const Options&);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void initialize();
     virtual void ready(PointTableRef table);
     virtual void write(const PointViewPtr view);
     virtual void done(PointTableRef table);
@@ -34,7 +33,7 @@ namespace pdal{
     int m_precision;
 
     FileStreamPtr m_stream;
-    Dimension::Id::Enum m_dataDim;
+    Dimension::Id m_dataDim;
   };
 
 } // namespace pdal
diff --git a/filters/CMakeLists.txt b/filters/CMakeLists.txt
index eb28e9c..78d0b25 100644
--- a/filters/CMakeLists.txt
+++ b/filters/CMakeLists.txt
@@ -1,15 +1,25 @@
+add_subdirectory(approximatecoplanar)
 add_subdirectory(attribute)
 add_subdirectory(chipper)
 add_subdirectory(colorization)
 add_subdirectory(crop)
 add_subdirectory(decimation)
 add_subdirectory(divider)
+add_subdirectory(eigenvalues)
+add_subdirectory(estimaterank)
 add_subdirectory(ferry)
+add_subdirectory(hag)
 add_subdirectory(merge)
+add_subdirectory(mongus)
 add_subdirectory(mortonorder)
+add_subdirectory(normal)
+add_subdirectory(outlier)
+add_subdirectory(pmf)
 add_subdirectory(randomize)
 add_subdirectory(range)
 add_subdirectory(reprojection)
+add_subdirectory(sample)
+add_subdirectory(smrf)
 add_subdirectory(sort)
 add_subdirectory(splitter)
 add_subdirectory(stats)
diff --git a/filters/approximatecoplanar/ApproximateCoplanarFilter.cpp b/filters/approximatecoplanar/ApproximateCoplanarFilter.cpp
new file mode 100644
index 0000000..cb46239
--- /dev/null
+++ b/filters/approximatecoplanar/ApproximateCoplanarFilter.cpp
@@ -0,0 +1,107 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include "ApproximateCoplanarFilter.hpp"
+
+#include <pdal/Eigen.hpp>
+#include <pdal/KDIndex.hpp>
+#include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
+
+#include <Eigen/Dense>
+
+#include <string>
+#include <vector>
+
+namespace pdal
+{
+
+static PluginInfo const s_info =
+    PluginInfo("filters.approximatecoplanar", "ApproximateCoplanar Filter", 
+               "http://pdal.io/stages/filters.approximatecoplanar.html");
+
+CREATE_STATIC_PLUGIN(1, 0, ApproximateCoplanarFilter, Filter, s_info)
+
+std::string ApproximateCoplanarFilter::getName() const
+{
+    return s_info.name;
+}
+
+
+void ApproximateCoplanarFilter::addArgs(ProgramArgs& args)
+{
+    args.add("knn", "k-Nearest Neighbors", m_knn, 8);
+    args.add("thresh1", "Threshold 1", m_thresh1, 25.0);
+    args.add("thresh2", "Threshold 2", m_thresh1, 6.0);
+}
+
+
+void ApproximateCoplanarFilter::addDimensions(PointLayoutPtr layout)
+{
+    m_coplanar = layout->registerOrAssignDim("Coplanar", Dimension::Type::Unsigned8);
+}
+
+void ApproximateCoplanarFilter::filter(PointView& view)
+{
+    using namespace Eigen;
+
+    KD3Index kdi(view);
+    kdi.build();
+
+    for (PointId i = 0; i < view.size(); ++i)
+    {
+        // find the k-nearest neighbors
+        double x = view.getFieldAs<double>(Dimension::Id::X, i);
+        double y = view.getFieldAs<double>(Dimension::Id::Y, i);
+        double z = view.getFieldAs<double>(Dimension::Id::Z, i);
+        auto ids = kdi.neighbors(x, y, z, m_knn);
+
+        // compute covariance of the neighborhood
+        auto B = computeCovariance(view, ids);
+
+        // perform the eigen decomposition
+        SelfAdjointEigenSolver<Matrix3f> solver(B);
+        if (solver.info() != Success)
+            throw pdal_error("Cannot perform eigen decomposition.");
+        auto ev = solver.eigenvalues();
+
+        // test eigenvalues to label points that are approximately coplanar
+        if ((ev[1] > m_thresh1 * ev[0]) && (m_thresh2 * ev[1] > ev[2]))
+            view.setField(m_coplanar, i, 1);
+        else
+            view.setField(m_coplanar, i, 0);
+    }
+}
+
+} // namespace pdal
diff --git a/filters/approximatecoplanar/ApproximateCoplanarFilter.hpp b/filters/approximatecoplanar/ApproximateCoplanarFilter.hpp
new file mode 100644
index 0000000..b660204
--- /dev/null
+++ b/filters/approximatecoplanar/ApproximateCoplanarFilter.hpp
@@ -0,0 +1,78 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#pragma once
+
+#include <pdal/Filter.hpp>
+#include <pdal/plugin.hpp>
+
+#include <cstdint>
+#include <memory>
+#include <string>
+
+extern "C" int32_t ApproximateCoplanarFilter_ExitFunc();
+extern "C" PF_ExitFunc ApproximateCoplanarFilter_InitPlugin();
+
+namespace pdal
+{
+
+class Options;
+class PointLayout;
+class PointView;
+
+class PDAL_DLL ApproximateCoplanarFilter : public Filter
+{
+public:
+    ApproximateCoplanarFilter() : Filter()
+    {}
+    ApproximateCoplanarFilter& operator=(
+        const ApproximateCoplanarFilter&) = delete;
+    ApproximateCoplanarFilter(const ApproximateCoplanarFilter&) = delete;
+
+    static void * create();
+    static int32_t destroy(void *);
+    std::string getName() const;
+
+private:
+    int m_knn;
+    double m_thresh1;
+    double m_thresh2;
+    Dimension::Id m_coplanar;
+
+    virtual void addDimensions(PointLayoutPtr layout);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void filter(PointView& view);
+};
+
+} // namespace pdal
diff --git a/filters/approximatecoplanar/CMakeLists.txt b/filters/approximatecoplanar/CMakeLists.txt
new file mode 100644
index 0000000..f71b348
--- /dev/null
+++ b/filters/approximatecoplanar/CMakeLists.txt
@@ -0,0 +1,2 @@
+PDAL_ADD_DRIVER(filter approximatecoplanar "ApproximateCoplanarFilter.cpp" "ApproximateCoplanarFilter.hpp" objects)
+set(PDAL_TARGET_OBJECTS ${PDAL_TARGET_OBJECTS} ${objects} PARENT_SCOPE)
diff --git a/filters/attribute/AttributeFilter.cpp b/filters/attribute/AttributeFilter.cpp
index 1c262cf..47488a5 100644
--- a/filters/attribute/AttributeFilter.cpp
+++ b/filters/attribute/AttributeFilter.cpp
@@ -42,6 +42,7 @@
 #include <pdal/Polygon.hpp>
 #include <pdal/QuadIndex.hpp>
 #include <pdal/StageFactory.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -75,39 +76,33 @@ struct OGRFeatureDeleter
 };
 
 
-void AttributeFilter::initialize()
-{
-    gdal::registerDrivers();
-}
-
-
-Options AttributeFilter::getDefaultOptions()
+void AttributeFilter::addArgs(ProgramArgs& args)
 {
-    Options options;
-
-    options.add("dimension", "Classification");
-    options.add("datasource", "source");
-
-    return options;
+    args.add("dimension", "Dimension on which to filter", m_dimName).
+        setPositional();
+    m_valArg = &args.add("value", "Value to set on matching points", m_value,
+        std::numeric_limits<double>::quiet_NaN());
+    m_dsArg = &args.add("datasource", "OGR-readable datasource for Polygon or "
+        "Multipolygon data", m_datasource);
+    m_colArg = &args.add("column", "OGR datasource column from which to "
+        "read the attribute.", m_column);
+    m_queryArg = &args.add("query", "OGR SQL query to execute on the "
+        "datasource to fetch geometry and attributes", m_query);
+    m_layerArg = &args.add("layer", "Datasource layer to use", m_layer);
 }
 
 
-void AttributeFilter::processOptions(const Options& options)
+void AttributeFilter::initialize()
 {
-    if (!options.hasOption("dimension"))
-    {
-        std::ostringstream oss;
-        oss << getName() << ": option 'dimension' must be specified.";
-        throw pdal_error(oss.str());
-    }
-    if (options.hasOption("value") && options.hasOption("datasource"))
+    if (m_valArg->set() && m_dsArg->set())
     {
         std::ostringstream oss;
         oss << getName() << ": options 'value' and 'datasource' mutually "
             "exclusive.";
         throw pdal_error(oss.str());
     }
-    if (!options.hasOption("value") && !options.hasOption("datasource"))
+
+    if (!m_valArg->set() && !m_dsArg->set())
     {
         std::ostringstream oss;
         oss << getName() << ": Either option 'value' or 'datasource' must "
@@ -115,24 +110,18 @@ void AttributeFilter::processOptions(const Options& options)
         throw pdal_error(oss.str());
     }
 
-    std::string ops[] = { "column", "query", "layer" };
-    for (auto& op : ops)
+    Arg *args[] = { m_colArg, m_queryArg, m_layerArg };
+    for (auto& a : args)
     {
-        if (options.hasOption("value") && options.hasOption(op))
+        if (m_valArg->set() && a->set())
         {
             std::ostringstream oss;
-            oss << getName() << ": option 'op' invalid with option 'value'.";
+            oss << getName() << ": option '" << a->longname() << "' invalid "
+                "with option 'value'.";
             throw pdal_error(oss.str());
         }
     }
-
-    m_dimName = options.getValueOrDefault<std::string>("dimension");
-    m_value = options.getValueOrDefault<double>("value",
-        std::numeric_limits<double>::quiet_NaN());
-    m_datasource = options.getValueOrDefault<std::string>("datasource");
-    m_column = options.getValueOrDefault<std::string>("column");
-    m_query = options.getValueOrDefault<std::string>("query");
-    m_layer = options.getValueOrDefault<std::string>("layer");
+    gdal::registerDrivers();
 }
 
 
@@ -246,9 +235,5 @@ void AttributeFilter::filter(PointView& view)
         UpdateGEOSBuffer(view);
 }
 
-
-void AttributeFilter::done(PointTableRef /*table*/)
-{
-}
-
 } // namespace pdal
+
diff --git a/filters/attribute/AttributeFilter.hpp b/filters/attribute/AttributeFilter.hpp
index b33ed26..7198958 100644
--- a/filters/attribute/AttributeFilter.hpp
+++ b/filters/attribute/AttributeFilter.hpp
@@ -61,28 +61,27 @@ typedef std::shared_ptr<void> OGRDSPtr;
 typedef std::shared_ptr<void> OGRFeaturePtr;
 typedef std::shared_ptr<void> OGRGeometryPtr;
 
+class Arg;
+
 class PDAL_DLL AttributeFilter : public Filter
 {
 public:
-    AttributeFilter() : Filter(), m_ds(0), m_lyr(0)
+    AttributeFilter() : m_ds(0), m_lyr(0)
     {}
 
     static void * create();
     static int32_t destroy(void *);
     std::string getName() const { return "filters.attribute"; }
 
-    Options getDefaultOptions();
-
 private:
+    virtual void addArgs(ProgramArgs& args);
     virtual void initialize();
-    virtual void processOptions(const Options&);
     virtual void prepared(PointTableRef table);
     virtual void ready(PointTableRef table);
     virtual void filter(PointView& view);
-    virtual void done(PointTableRef table);
 
-    AttributeFilter& operator=(const AttributeFilter&); // not implemented
-    AttributeFilter(const AttributeFilter&); // not implemented
+    AttributeFilter& operator=(const AttributeFilter&) = delete;
+    AttributeFilter(const AttributeFilter&) = delete;
 
     typedef std::shared_ptr<void> OGRDSPtr;
 
@@ -90,11 +89,16 @@ private:
     OGRLayerH m_lyr;
     std::string m_dimName;
     double m_value;
+    Arg *m_valArg;
+    Arg *m_dsArg;
+    Arg *m_colArg;
+    Arg *m_queryArg;
+    Arg *m_layerArg;
     std::string m_datasource;
     std::string m_column;
     std::string m_query;
     std::string m_layer;
-    Dimension::Id::Enum m_dim;
+    Dimension::Id m_dim;
 
     void UpdateGEOSBuffer(PointView& view);
 
diff --git a/filters/chipper/ChipperFilter.cpp b/filters/chipper/ChipperFilter.cpp
index 934cb51..5e01c35 100644
--- a/filters/chipper/ChipperFilter.cpp
+++ b/filters/chipper/ChipperFilter.cpp
@@ -67,6 +67,7 @@ be stored.
 **/
 
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -80,18 +81,10 @@ CREATE_STATIC_PLUGIN(1, 0, ChipperFilter, Filter, s_info)
 
 std::string ChipperFilter::getName() const { return s_info.name; }
 
-void ChipperFilter::processOptions(const Options& options)
+void ChipperFilter::addArgs(ProgramArgs& args)
 {
-    m_threshold = options.getValueOrDefault<uint32_t>("capacity", 5000u);
-}
-
-
-Options ChipperFilter::getDefaultOptions()
-{
-    Options options;
-    Option capacity("capacity", 5000u, "Tile capacity");
-    options.add(capacity);
-    return options;
+    args.add("capacity", "Maximum number of points per cell", m_threshold,
+        (PointId) 5000u);
 }
 
 
diff --git a/filters/chipper/ChipperFilter.hpp b/filters/chipper/ChipperFilter.hpp
index 38aefbf..4d39ecf 100644
--- a/filters/chipper/ChipperFilter.hpp
+++ b/filters/chipper/ChipperFilter.hpp
@@ -144,10 +144,8 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual PointViewSet run(PointViewPtr view);
 
     void load(PointView& view, ChipRefList& xvec,
diff --git a/filters/colorization/ColorizationFilter.cpp b/filters/colorization/ColorizationFilter.cpp
index ccfab76..30e6ced 100644
--- a/filters/colorization/ColorizationFilter.cpp
+++ b/filters/colorization/ColorizationFilter.cpp
@@ -36,6 +36,7 @@
 
 #include <pdal/PointView.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <gdal.h>
 #include <ogr_spatialref.h>
@@ -54,22 +55,6 @@ CREATE_STATIC_PLUGIN(1, 0, ColorizationFilter, Filter, s_info)
 
 std::string ColorizationFilter::getName() const { return s_info.name; }
 
-
-void ColorizationFilter::initialize()
-{
-    gdal::registerDrivers();
-}
-
-
-Options ColorizationFilter::getDefaultOptions()
-{
-    Options options;
-
-    options.add("dimensions", "Red:1:1.0, Green:2:1.0, Blue:3");
-
-    return options;
-}
-
 namespace
 {
 
@@ -146,29 +131,27 @@ ColorizationFilter::BandInfo parseDim(const std::string& dim,
 
 } // unnamed namespace
 
-void ColorizationFilter::processOptions(const Options& options)
+void ColorizationFilter::addArgs(ProgramArgs& args)
 {
-    m_rasterFilename = options.getValueOrThrow<std::string>("raster");
-
-    if (options.hasOption("dimension") && !options.hasOption("dimensions"))
-        throw pdal_error("Option 'dimension' no longer supported.  Use "
-            "'dimensions' instead.");
+    args.add("raster", "Raster filename", m_rasterFilename);
+    args.add("dimensions", "Dimensions to use for colorization", m_dimSpec);
+}
 
-    StringList defaultDims;
-    defaultDims.push_back("Red");
-    defaultDims.push_back("Green");
-    defaultDims.push_back("Blue");
 
-    StringList dims =
-        options.getValueOrDefault<StringList>("dimensions", defaultDims);
+void ColorizationFilter::initialize()
+{
+    if (m_dimSpec.empty())
+        m_dimSpec = { "Red", "Green", "Blue" };
 
     uint32_t defaultBand = 1;
-    for (std::string& dim : dims)
+    for (std::string& dim : m_dimSpec)
     {
         BandInfo bi = parseDim(dim, defaultBand);
         defaultBand = bi.m_band + 1;
         m_bands.push_back(bi);
     }
+
+    gdal::registerDrivers();
 }
 
 
@@ -186,7 +169,7 @@ void ColorizationFilter::ready(PointTableRef table)
 
     m_raster.reset(new gdal::Raster(m_rasterFilename));
 
-    GDALError::Enum error = m_raster->open();
+    GDALError error = m_raster->open();
     if (error != GDALError::None)
     {
         if (error == GDALError::NoTransform ||
diff --git a/filters/colorization/ColorizationFilter.hpp b/filters/colorization/ColorizationFilter.hpp
index 5ecaea8..cd68465 100644
--- a/filters/colorization/ColorizationFilter.hpp
+++ b/filters/colorization/ColorizationFilter.hpp
@@ -68,34 +68,32 @@ public:
         std::string m_name;
         uint32_t m_band;
         double m_scale;
-        Dimension::Id::Enum m_dim;
+        Dimension::Id m_dim;
     };
 
 
     ColorizationFilter()
     {}
+    ColorizationFilter& operator=(const ColorizationFilter&) = delete;
+    ColorizationFilter(const ColorizationFilter&) = delete;
 
     static void * create();
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
+    virtual void addArgs(ProgramArgs& args);
     virtual void initialize();
-    virtual void processOptions(const Options&);
     virtual void addDimensions(PointLayoutPtr layout);
     virtual void ready(PointTableRef table);
     virtual bool processOne(PointRef& point);
     virtual void filter(PointView& view);
 
+    StringList m_dimSpec;
     std::string m_rasterFilename;
     std::vector<BandInfo> m_bands;
 
     std::unique_ptr<gdal::Raster> m_raster;
-
-    ColorizationFilter& operator=(const ColorizationFilter&); // not implemented
-    ColorizationFilter(const ColorizationFilter&); // not implemented
 };
 
 } // namespace pdal
diff --git a/filters/crop/CropFilter.cpp b/filters/crop/CropFilter.cpp
index ffc40a9..e312055 100644
--- a/filters/crop/CropFilter.cpp
+++ b/filters/crop/CropFilter.cpp
@@ -40,6 +40,7 @@
 #include <pdal/StageFactory.hpp>
 #include <pdal/Polygon.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <sstream>
 #include <cstdarg>
@@ -62,43 +63,21 @@ CropFilter::CropFilter() : pdal::Filter()
 }
 
 
-void CropFilter::processOptions(const Options& options)
+void CropFilter::addArgs(ProgramArgs& args)
 {
-    m_cropOutside = options.getValueOrDefault<bool>("outside", false);
-    m_assignedSrs = options.getValueOrDefault<SpatialReference>("a_srs");
+    args.add("outside", "Whether we keep points inside or outside of the "
+        "bounding region", m_cropOutside);
+    args.add("a_srs", "Spatial reference for bounding region", m_assignedSrs);
+    args.add("bounds", "Bounds box for cropped points", m_bounds);
+    args.add("polygon", "Bounding polying for cropped points", m_polys).
+        setErrorText("Invalid polygon specification.  "
+            "Must be valid GeoJSON/WKT");
+}
 
-    try
-    {
-        m_bounds = options.getValues<BOX2D>("bounds");
-    }
-    catch (Option::cant_convert)
-    {
-        try
-        {
-            std::vector<BOX3D>  b3d = options.getValues<BOX3D>("bounds");
-            for (auto& i: b3d)
-                m_bounds.push_back(i.to2d());
-        }
-        catch (Option::cant_convert)
-        {
-            std::ostringstream oss;
-            oss << getName() << ": Invalid bounds provided as option.  "
-                "Format: '([xmin,xmax],[ymin,ymax])'.";
-            throw pdal_error(oss.str());
-        }
-    }
 
-    try
-    {
-        m_polys = options.getValues<Polygon>("polygon");
-    }
-    catch (Option::cant_convert)
-    {
-        std::ostringstream oss;
-        oss << getName() << ": Invalid polygon specification as option.  "
-            "Must be valid GeoJSON/WTK";
-        throw pdal_error(oss.str());
-    }
+void CropFilter::initialize()
+{
+    // Set geometry from polygons.
     if (m_polys.size())
     {
         m_geoms.clear();
@@ -117,20 +96,6 @@ void CropFilter::processOptions(const Options& options)
 }
 
 
-Options CropFilter::getDefaultOptions()
-{
-    Options options;
-    options.add("bounds", BOX2D(), "bounds to crop to");
-    options.add("a_srs", "", "Assign coordinate system to polygon");
-    options.add("polygon", std::string(""), "WKT or GeoJSON Polygon/MultiPolygon string to "
-        "use to filter points");
-    options.add("inside", true, "Keep points that are inside or outside "
-        "the given polygon");
-
-    return options;
-}
-
-
 void CropFilter::ready(PointTableRef table)
 {
     for (auto& geom : m_geoms)
@@ -149,7 +114,7 @@ bool CropFilter::processOne(PointRef& point)
             return false;
 
     for (auto& box : m_bounds)
-        if (!crop(point, box))
+        if (!crop(point, box.to2d()))
             return false;
 
     return true;
@@ -174,7 +139,7 @@ PointViewSet CropFilter::run(PointViewPtr view)
         // prepare the crop polygon.
         if (srs != m_lastSrs)
         {
-            geom.m_geom.transform(srs);
+            geom.m_geom = geom.m_geom.transform(srs);
         }
 
         PointViewPtr outView = view->makeNew();
@@ -186,7 +151,7 @@ PointViewSet CropFilter::run(PointViewPtr view)
     for (auto& box : m_bounds)
     {
         PointViewPtr outView = view->makeNew();
-        crop(box, *view, *outView);
+        crop(box.to2d(), *view, *outView);
         viewSet.insert(outView);
     }
     return viewSet;
diff --git a/filters/crop/CropFilter.hpp b/filters/crop/CropFilter.hpp
index dcd9e7a..7314ee4 100644
--- a/filters/crop/CropFilter.hpp
+++ b/filters/crop/CropFilter.hpp
@@ -44,6 +44,8 @@ extern "C" PF_ExitFunc CropFilter_InitPlugin();
 namespace pdal
 {
 
+class ProgramArgs;
+
 // removes any points outside of the given range
 // updates the header accordingly
 class PDAL_DLL CropFilter : public Filter
@@ -55,10 +57,9 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
-    std::vector<BOX2D> m_bounds;
+    std::vector<std::string> m_boundsTxt;
+    std::vector<Bounds> m_bounds;
     bool m_cropOutside;
     std::vector<Polygon> m_polys;
     SpatialReference m_assignedSrs;
@@ -75,7 +76,8 @@ private:
 
     std::vector<GeomPkg> m_geoms;
 
-    virtual void processOptions(const Options& options);
+    void addArgs(ProgramArgs& args);
+    virtual void initialize();
     virtual void ready(PointTableRef table);
     virtual bool processOne(PointRef& point);
     virtual PointViewSet run(PointViewPtr view);
diff --git a/filters/decimation/DecimationFilter.cpp b/filters/decimation/DecimationFilter.cpp
index 96b36b2..8e1a8fe 100644
--- a/filters/decimation/DecimationFilter.cpp
+++ b/filters/decimation/DecimationFilter.cpp
@@ -36,6 +36,7 @@
 
 #include <pdal/PointView.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -49,15 +50,15 @@ CREATE_STATIC_PLUGIN(1, 0, DecimationFilter, Filter,  s_info)
 
 std::string DecimationFilter::getName() const { return s_info.name; }
 
-void DecimationFilter::processOptions(const Options& options)
+void DecimationFilter::addArgs(ProgramArgs& args)
 {
-    m_step = options.getValueOrDefault<uint32_t>("step", 1);
-    m_offset = options.getValueOrDefault<uint32_t>("offset", 0);
-    m_limit = options.getValueOrDefault<point_count_t>("limit",
-        std::numeric_limits<point_count_t>::max());
+    args.add("step", "Points to delete between each kept point", m_step, 1U);
+    args.add("offset", "Index of first point to consider including in output",
+        m_offset);
+    args.add("limit", "Index of last point to consider including in output",
+        m_limit, std::numeric_limits<point_count_t>::max());
 }
 
-
 PointViewSet DecimationFilter::run(PointViewPtr inView)
 {
     PointViewSet viewSet;
diff --git a/filters/decimation/DecimationFilter.hpp b/filters/decimation/DecimationFilter.hpp
index 4ca13ab..45818ef 100644
--- a/filters/decimation/DecimationFilter.hpp
+++ b/filters/decimation/DecimationFilter.hpp
@@ -60,7 +60,7 @@ private:
     point_count_t m_limit;
     PointId m_index;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     void ready(PointTableRef table)
         { m_index = 0; }
     bool processOne(PointRef& point);
diff --git a/filters/divider/DividerFilter.cpp b/filters/divider/DividerFilter.cpp
index 3fe18d2..25ef9cd 100644
--- a/filters/divider/DividerFilter.cpp
+++ b/filters/divider/DividerFilter.cpp
@@ -47,38 +47,70 @@ CREATE_STATIC_PLUGIN(1, 0, DividerFilter, Filter, s_info)
 
 std::string DividerFilter::getName() const { return s_info.name; }
 
-void DividerFilter::processOptions(const Options& options)
+std::istream& operator>>(std::istream& in, DividerFilter::Mode& mode)
 {
-    std::string mode = options.getValueOrDefault<std::string>("mode");
-    mode = Utils::tolower(mode);
-    if (mode.empty() || mode == "partition")
-        m_mode = Mode::Partition;
-    else if (mode == "round_robin")
-        m_mode = Mode::RoundRobin;
+    std::string s;
+    in >> s;
+    
+    s = Utils::tolower(s);
+    if (s == "round_robin")
+        mode = DividerFilter::Mode::RoundRobin;
+    else if (s == "partition")
+        mode = DividerFilter::Mode::Partition;
     else
     {
         std::ostringstream oss;
-        oss << getName() << ": Invalid 'mode' option '" << mode << "'. "
+        oss << "filters.divider: Invalid 'mode' option '" << s << "'. "
             "Valid options are 'partition' and 'round_robin'";
         throw pdal_error(oss.str());
     }
-    if (options.hasOption("count") && options.hasOption("capacity"))
+    return in;
+}
+
+
+std::ostream& operator<<(std::ostream& out, const DividerFilter::Mode& mode)
+{
+    switch (mode)
+    {
+    case DividerFilter::Mode::RoundRobin:
+        out << "round_robin";
+    case DividerFilter::Mode::Partition:
+        out << "partition";
+    }
+    return out;    
+}
+
+
+void DividerFilter::addArgs(ProgramArgs& args)
+{
+    args.add("mode", "A mode of ‘partition’ will write sequential points "
+        "to an output view until the view meets its predetermined size. "
+        "‘round_robin’ mode will iterate through the output views as it "
+        "writes sequential points.", m_mode, DividerFilter::Mode::Partition);
+    m_cntArg = &args.add("count", "Number of output views", m_size);
+    m_capArg = &args.add("capacity", "Maximum number of points in each "
+        "output view", m_size);
+}
+
+
+void DividerFilter::initialize()
+{
+    if (m_cntArg->set() && m_capArg->set())
     {
         std::ostringstream oss;
         oss << getName() << ": Can't specify both option 'count' and "
             "option 'capacity.";
         throw pdal_error(oss.str());
     }
-    if (!options.hasOption("count") && !options.hasOption("capacity"))
+    if (!m_cntArg->set() && !m_capArg->set())
     {
         std::ostringstream oss;
         oss << getName() << ": Must specify either option 'count' or "
-            "option 'capacity.";
+            "option 'capacity'.";
         throw pdal_error(oss.str());
     }
-    if (options.hasOption("count"))
+    if (m_cntArg->set())
     {
-        m_size = options.getValueOrThrow<int>("count");
         m_sizeMode = SizeMode::Count;
         if (m_size < 2 || m_size > 1000)
         {
@@ -88,11 +120,8 @@ void DividerFilter::processOptions(const Options& options)
             throw pdal_error(oss.str());
         }
     }
-    if (options.hasOption("capacity"))
-    {
-        m_size = options.getValueOrThrow<point_count_t>("capacity");
+    if (m_capArg->set())
         m_sizeMode = SizeMode::Capacity;
-    }
 }
 
 
diff --git a/filters/divider/DividerFilter.hpp b/filters/divider/DividerFilter.hpp
index 2ad0546..b235296 100644
--- a/filters/divider/DividerFilter.hpp
+++ b/filters/divider/DividerFilter.hpp
@@ -35,6 +35,7 @@
 
 #include <pdal/Filter.hpp>
 #include <pdal/plugin.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 extern "C" int32_t DividerFilter_ExitFunc();
 extern "C" PF_ExitFunc DividerFilter_InitPlugin();
@@ -55,28 +56,35 @@ public:
     std::string getName() const;
 
 private:
-
-    enum Mode
+    enum class Mode
     {
         Partition,
         RoundRobin
     };
 
-    enum SizeMode
+    enum class SizeMode
     {
         Count,
         Capacity
     };
 
+    Arg *m_cntArg;
+    Arg *m_capArg;
     Mode m_mode;
     SizeMode m_sizeMode;
     point_count_t m_size;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void initialize();
     virtual PointViewSet run(PointViewPtr view);
 
     DividerFilter& operator=(const DividerFilter&); // not implemented
     DividerFilter(const DividerFilter&); // not implemented
+
+    friend std::istream& operator>>(std::istream& in,
+        DividerFilter::Mode& mode);
+    friend std::ostream& operator<<(std::ostream& in,
+        const DividerFilter::Mode& mode);
 };
 
 } // namespace pdal
diff --git a/filters/eigenvalues/CMakeLists.txt b/filters/eigenvalues/CMakeLists.txt
new file mode 100644
index 0000000..b08fda5
--- /dev/null
+++ b/filters/eigenvalues/CMakeLists.txt
@@ -0,0 +1,2 @@
+PDAL_ADD_DRIVER(filter eigenvalues "EigenvaluesFilter.cpp" "EigenvaluesFilter.hpp" objects)
+set(PDAL_TARGET_OBJECTS ${PDAL_TARGET_OBJECTS} ${objects} PARENT_SCOPE)
diff --git a/filters/eigenvalues/EigenvaluesFilter.cpp b/filters/eigenvalues/EigenvaluesFilter.cpp
new file mode 100644
index 0000000..b06a8e2
--- /dev/null
+++ b/filters/eigenvalues/EigenvaluesFilter.cpp
@@ -0,0 +1,105 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include "EigenvaluesFilter.hpp"
+
+#include <pdal/Eigen.hpp>
+#include <pdal/KDIndex.hpp>
+#include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
+
+#include <Eigen/Dense>
+
+#include <string>
+#include <vector>
+
+namespace pdal
+{
+
+static PluginInfo const s_info =
+    PluginInfo("filters.eigenvalues", "Eigenvalues Filter",
+               "http://pdal.io/stages/filters.eigenvalues.html");
+
+CREATE_STATIC_PLUGIN(1, 0, EigenvaluesFilter, Filter, s_info)
+
+std::string EigenvaluesFilter::getName() const
+{
+    return s_info.name;
+}
+
+
+void EigenvaluesFilter::addArgs(ProgramArgs& args)
+{
+    args.add("knn", "k-Nearest neighbors", m_knn, 8);
+}
+
+
+void EigenvaluesFilter::addDimensions(PointLayoutPtr layout)
+{
+    m_e0 = layout->registerOrAssignDim("Eigenvalue0", Dimension::Type::Double);
+    m_e1 = layout->registerOrAssignDim("Eigenvalue1", Dimension::Type::Double);
+    m_e2 = layout->registerOrAssignDim("Eigenvalue2", Dimension::Type::Double);
+}
+
+void EigenvaluesFilter::filter(PointView& view)
+{
+    using namespace Eigen;
+
+    KD3Index kdi(view);
+    kdi.build();
+
+    for (PointId i = 0; i < view.size(); ++i)
+    {
+        // find the k-nearest neighbors
+        double x = view.getFieldAs<double>(Dimension::Id::X, i);
+        double y = view.getFieldAs<double>(Dimension::Id::Y, i);
+        double z = view.getFieldAs<double>(Dimension::Id::Z, i);
+        auto ids = kdi.neighbors(x, y, z, m_knn);
+
+        // compute covariance of the neighborhood
+        auto B = computeCovariance(view, ids);
+
+        // perform the eigen decomposition
+        SelfAdjointEigenSolver<Matrix3f> solver(B);
+        if (solver.info() != Success)
+            throw pdal_error("Cannot perform eigen decomposition.");
+        auto ev = solver.eigenvalues();
+
+        view.setField(m_e0, i, ev[0]);
+        view.setField(m_e1, i, ev[1]);
+        view.setField(m_e2, i, ev[2]);
+    }
+}
+
+} // namespace pdal
diff --git a/filters/eigenvalues/EigenvaluesFilter.hpp b/filters/eigenvalues/EigenvaluesFilter.hpp
new file mode 100644
index 0000000..7f738b2
--- /dev/null
+++ b/filters/eigenvalues/EigenvaluesFilter.hpp
@@ -0,0 +1,75 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#pragma once
+
+#include <pdal/Filter.hpp>
+#include <pdal/plugin.hpp>
+
+#include <cstdint>
+#include <memory>
+#include <string>
+
+extern "C" int32_t EigenvaluesFilter_ExitFunc();
+extern "C" PF_ExitFunc EigenvaluesFilter_InitPlugin();
+
+namespace pdal
+{
+
+class Options;
+class PointLayout;
+class PointView;
+
+class PDAL_DLL EigenvaluesFilter : public Filter
+{
+public:
+    EigenvaluesFilter() : Filter()
+    {}
+    EigenvaluesFilter& operator=(const EigenvaluesFilter&) = delete;
+    EigenvaluesFilter(const EigenvaluesFilter&) = delete;
+
+    static void * create();
+    static int32_t destroy(void *);
+    std::string getName() const;
+
+private:
+    int m_knn;
+    Dimension::Id m_e0, m_e1, m_e2;
+
+    virtual void addDimensions(PointLayoutPtr layout);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void filter(PointView& view);
+};
+
+} // namespace pdal
diff --git a/filters/estimaterank/CMakeLists.txt b/filters/estimaterank/CMakeLists.txt
new file mode 100644
index 0000000..21212a1
--- /dev/null
+++ b/filters/estimaterank/CMakeLists.txt
@@ -0,0 +1,2 @@
+PDAL_ADD_DRIVER(filter estimaterank "EstimateRankFilter.cpp" "EstimateRankFilter.hpp" objects)
+set(PDAL_TARGET_OBJECTS ${PDAL_TARGET_OBJECTS} ${objects} PARENT_SCOPE)
diff --git a/filters/estimaterank/EstimateRankFilter.cpp b/filters/estimaterank/EstimateRankFilter.cpp
new file mode 100644
index 0000000..6205c94
--- /dev/null
+++ b/filters/estimaterank/EstimateRankFilter.cpp
@@ -0,0 +1,89 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include "EstimateRankFilter.hpp"
+
+#include <pdal/Eigen.hpp>
+#include <pdal/KDIndex.hpp>
+#include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
+
+#include <string>
+#include <vector>
+
+namespace pdal
+{
+
+static PluginInfo const s_info =
+    PluginInfo("filters.estimaterank", "EstimateRank Filter", 
+               "http://pdal.io/stages/filters.estimaterank.html");
+
+CREATE_STATIC_PLUGIN(1, 0, EstimateRankFilter, Filter, s_info)
+
+std::string EstimateRankFilter::getName() const
+{
+    return s_info.name;
+}
+
+
+void EstimateRankFilter::addArgs(ProgramArgs& args)
+{
+    args.add("knn", "k-Nearest Neighbors", m_knn, 8);
+    args.add("thresh", "Threshold", m_thresh, 0.01);
+}
+
+
+void EstimateRankFilter::addDimensions(PointLayoutPtr layout)
+{
+    m_rank = layout->registerOrAssignDim("Rank", Dimension::Type::Unsigned8);
+}
+
+void EstimateRankFilter::filter(PointView& view)
+{
+    KD3Index kdi(view);
+    kdi.build();
+
+    for (PointId i = 0; i < view.size(); ++i)
+    {
+        // find the k-nearest neighbors
+        double x = view.getFieldAs<double>(Dimension::Id::X, i);
+        double y = view.getFieldAs<double>(Dimension::Id::Y, i);
+        double z = view.getFieldAs<double>(Dimension::Id::Z, i);
+        auto ids = kdi.neighbors(x, y, z, m_knn);
+
+        view.setField(m_rank, i, computeRank(view, ids, m_thresh));
+    }
+}
+
+} // namespace pdal
diff --git a/filters/estimaterank/EstimateRankFilter.hpp b/filters/estimaterank/EstimateRankFilter.hpp
new file mode 100644
index 0000000..79f9dc9
--- /dev/null
+++ b/filters/estimaterank/EstimateRankFilter.hpp
@@ -0,0 +1,76 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#pragma once
+
+#include <pdal/Filter.hpp>
+#include <pdal/plugin.hpp>
+
+#include <cstdint>
+#include <memory>
+#include <string>
+
+extern "C" int32_t EstimateRankFilter_ExitFunc();
+extern "C" PF_ExitFunc EstimateRankFilter_InitPlugin();
+
+namespace pdal
+{
+
+class Options;
+class PointLayout;
+class PointView;
+
+class PDAL_DLL EstimateRankFilter : public Filter
+{
+public:
+    EstimateRankFilter() : Filter()
+    {}
+    EstimateRankFilter& operator=(const EstimateRankFilter&) = delete;
+    EstimateRankFilter(const EstimateRankFilter&) = delete;
+
+    static void * create();
+    static int32_t destroy(void *);
+    std::string getName() const;
+
+private:
+    int m_knn;
+    double m_thresh;
+    Dimension::Id m_rank;
+
+    virtual void addDimensions(PointLayoutPtr layout);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void filter(PointView& view);
+};
+
+} // namespace pdal
diff --git a/filters/ferry/FerryFilter.cpp b/filters/ferry/FerryFilter.cpp
index 60caed2..87aa75a 100644
--- a/filters/ferry/FerryFilter.cpp
+++ b/filters/ferry/FerryFilter.cpp
@@ -36,6 +36,7 @@
 
 #include <pdal/pdal_export.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -49,24 +50,16 @@ CREATE_STATIC_PLUGIN(1, 0, FerryFilter, Filter, s_info)
 
 std::string FerryFilter::getName() const { return s_info.name; }
 
-Options FerryFilter::getDefaultOptions()
+void FerryFilter::addArgs(ProgramArgs& args)
 {
-    Options options;
-
-    options.add("dimensions", "", "Dimensions to copy (<in>=<out>,...)");
-
-    return options;
+    args.add("dimensions", "List of dimensions to ferry",
+        m_dimSpec).setPositional();
 }
 
 
-void FerryFilter::processOptions(const Options& options)
+void FerryFilter::initialize()
 {
-    if (options.hasOption("dimension"))
-        throw pdal_error("Option 'dimension' no longer supported.  Use "
-            "'dimensions' instead.");
-
-    StringList dims = options.getValueOrThrow<StringList>("dimensions");
-    for (auto& dim : dims)
+    for (auto& dim : m_dimSpec)
     {
         StringList s = Utils::split2(dim, '=');
         if (s.size() != 2)
@@ -116,8 +109,8 @@ void FerryFilter::ready(PointTableRef table)
     const PointLayoutPtr layout(table.layout());
     for (const auto& dim_par : m_name_map)
     {
-        Dimension::Id::Enum f = layout->findDim(dim_par.first);
-        Dimension::Id::Enum t = layout->findDim(dim_par.second);
+        Dimension::Id f = layout->findDim(dim_par.first);
+        Dimension::Id t = layout->findDim(dim_par.second);
         m_dimensions_map.insert(std::make_pair(f,t));
     }
 }
diff --git a/filters/ferry/FerryFilter.hpp b/filters/ferry/FerryFilter.hpp
index a417c48..830220c 100644
--- a/filters/ferry/FerryFilter.hpp
+++ b/filters/ferry/FerryFilter.hpp
@@ -56,21 +56,21 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
-    virtual void processOptions(const Options&);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void initialize();
     virtual void addDimensions(PointLayoutPtr layout);
     virtual void prepared(PointTableRef table);
     virtual void ready(PointTableRef table);
     virtual bool processOne(PointRef& point);
     virtual void filter(PointView& view);
 
-    FerryFilter& operator=(const FerryFilter&); // not implemented
-    FerryFilter(const FerryFilter&); // not implemented
+    FerryFilter& operator=(const FerryFilter&) = delete;
+    FerryFilter(const FerryFilter&) = delete;
 
+    StringList m_dimSpec;
     std::map<std::string, std::string> m_name_map;
-    std::map< Dimension::Id::Enum ,  Dimension::Id::Enum > m_dimensions_map;
+    std::map<Dimension::Id, Dimension::Id> m_dimensions_map;
 };
 
 } // namespace pdal
diff --git a/filters/hag/CMakeLists.txt b/filters/hag/CMakeLists.txt
new file mode 100644
index 0000000..c113296
--- /dev/null
+++ b/filters/hag/CMakeLists.txt
@@ -0,0 +1,2 @@
+PDAL_ADD_DRIVER(filter hag "HAGFilter.cpp" "HAGFilter.hpp" objects)
+set(PDAL_TARGET_OBJECTS ${PDAL_TARGET_OBJECTS} ${objects} PARENT_SCOPE)
diff --git a/filters/hag/HAGFilter.cpp b/filters/hag/HAGFilter.cpp
new file mode 100644
index 0000000..6b8b2d1
--- /dev/null
+++ b/filters/hag/HAGFilter.cpp
@@ -0,0 +1,117 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include "HAGFilter.hpp"
+
+#include <pdal/KDIndex.hpp>
+#include <pdal/pdal_macros.hpp>
+
+#include <string>
+#include <vector>
+
+namespace pdal
+{
+
+static PluginInfo const s_info =
+    PluginInfo("filters.hag", "HAG Filter",
+               "http://pdal.io/stages/filters.hag.html");
+
+CREATE_STATIC_PLUGIN(1, 0, HAGFilter, Filter, s_info)
+
+std::string HAGFilter::getName() const
+{
+    return s_info.name;
+}
+
+void HAGFilter::addDimensions(PointLayoutPtr layout)
+{
+    layout->registerDim(Dimension::Id::HeightAboveGround);
+}
+
+void HAGFilter::prepared(PointTableRef table)
+{
+    const PointLayoutPtr layout(table.layout());
+    if (!layout->hasDim(Dimension::Id::Classification))
+        throw pdal_error("HAGFilter: missing Classification dimension in input PointView");
+}
+
+void HAGFilter::filter(PointView& view)
+{
+    PointViewPtr gView = view.makeNew();
+    PointViewPtr ngView = view.makeNew();
+    std::vector<PointId> gIdx, ngIdx;
+
+    // First pass: Separate into ground and non-ground views.
+    for (PointId i = 0; i < view.size(); ++i)
+    {
+        double c = view.getFieldAs<double>(Dimension::Id::Classification, i);
+        if (c == 2)
+        {
+            gView->appendPoint(view, i);
+            gIdx.push_back(i);
+        }
+        else
+        {
+            ngView->appendPoint(view, i);
+            ngIdx.push_back(i);
+        }
+    }
+
+    // Bail if there weren't any points classified as ground.
+    if (gView->size() == 0)
+        throw pdal_error("HAGFilter: the input PointView does not appear to have any points classified as ground");
+
+    // Build the 2D KD-tree.
+    KD2Index kdi(*gView);
+    kdi.build();
+
+    // Second pass: Find Z difference between non-ground points and the nearest 
+    // neighbor (2D) in the ground view.
+    for (PointId i = 0; i < ngView->size(); ++i)
+    {
+        double x0 = ngView->getFieldAs<double>(Dimension::Id::X, i);
+        double y0 = ngView->getFieldAs<double>(Dimension::Id::Y, i);
+        double z0 = ngView->getFieldAs<double>(Dimension::Id::Z, i);
+        auto ids = kdi.neighbors(x0, y0, 1);
+        double z1 = gView->getFieldAs<double>(Dimension::Id::Z, ids[0]);
+        view.setField(Dimension::Id::HeightAboveGround, ngIdx[i], z0 - z1);
+    }
+
+    // Final pass: Ensure that all ground points have height value pegged at 0.
+    for (auto const& i : gIdx)
+        view.setField(Dimension::Id::HeightAboveGround, i, 0.0);
+}
+
+
+} // namespace pdal
diff --git a/filters/hag/HAGFilter.hpp b/filters/hag/HAGFilter.hpp
new file mode 100644
index 0000000..9f8d168
--- /dev/null
+++ b/filters/hag/HAGFilter.hpp
@@ -0,0 +1,74 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#pragma once
+
+#include <pdal/Filter.hpp>
+#include <pdal/plugin.hpp>
+
+#include <cstdint>
+#include <memory>
+#include <string>
+
+extern "C" int32_t HAGFilter_ExitFunc();
+extern "C" PF_ExitFunc HAGFilter_InitPlugin();
+
+namespace pdal
+{
+
+class Options;
+class PointLayout;
+class PointView;
+
+class PDAL_DLL HAGFilter : public Filter
+{
+public:
+    HAGFilter() : Filter()
+    {}
+
+    static void * create();
+    static int32_t destroy(void *);
+    std::string getName() const;
+
+private:
+
+    virtual void addDimensions(PointLayoutPtr layout);
+    virtual void prepared(PointTableRef table);
+    virtual void filter(PointView& view);
+
+    HAGFilter& operator=(const HAGFilter&); // not implemented
+    HAGFilter(const HAGFilter&); // not implemented
+};
+
+} // namespace pdal
diff --git a/filters/mongus/CMakeLists.txt b/filters/mongus/CMakeLists.txt
new file mode 100644
index 0000000..c9c0c18
--- /dev/null
+++ b/filters/mongus/CMakeLists.txt
@@ -0,0 +1,2 @@
+PDAL_ADD_DRIVER(filter mongus "MongusFilter.cpp" "MongusFilter.hpp" objects)
+set(PDAL_TARGET_OBJECTS ${PDAL_TARGET_OBJECTS} ${objects} PARENT_SCOPE)
diff --git a/filters/mongus/MongusFilter.cpp b/filters/mongus/MongusFilter.cpp
new file mode 100644
index 0000000..d313687
--- /dev/null
+++ b/filters/mongus/MongusFilter.cpp
@@ -0,0 +1,894 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include "MongusFilter.hpp"
+
+#include <pdal/pdal_macros.hpp>
+#include <pdal/PipelineManager.hpp>
+#include <buffer/BufferReader.hpp>
+#include <pdal/util/ProgramArgs.hpp>
+
+#include <Eigen/Dense>
+
+#include "gdal_priv.h" // For File I/O
+#include "gdal_version.h" // For version info
+#include "ogr_spatialref.h"  //For Geographic Information/Transformations
+
+namespace pdal
+{
+
+static PluginInfo const s_info =
+    PluginInfo("filters.mongus", "Mongus and Zalik (2012)",
+               "http://pdal.io/stages/filters.mongus.html");
+
+CREATE_STATIC_PLUGIN(1, 0, MongusFilter, Filter, s_info)
+
+std::string MongusFilter::getName() const
+{
+    return s_info.name;
+}
+
+void MongusFilter::addArgs(ProgramArgs& args)
+{
+    args.add("cell", "Cell size", m_cellSize, 1.0);
+    args.add("k", "Stdev multiplier for threshold", m_k, 3.0);
+    args.add("l", "Max level", m_l, 8);
+    args.add("classify", "Apply classification labels?", m_classify, true);
+    args.add("extract", "Extract ground returns?", m_extract);
+}
+
+void MongusFilter::addDimensions(PointLayoutPtr layout)
+{
+    layout->registerDim(Dimension::Id::Classification);
+}
+
+int MongusFilter::clamp(int t, int min, int max)
+{
+    return ((t < min) ? min : ((t > max) ? max : t));
+}
+
+int MongusFilter::getColIndex(double x, double cell_size)
+{
+    return static_cast<int>(floor((x - m_bounds.minx) / cell_size));
+}
+
+int MongusFilter::getRowIndex(double y, double cell_size)
+{
+    return static_cast<int>(floor((m_maxRow - y) / cell_size));
+}
+
+Eigen::MatrixXd MongusFilter::computeSpline(Eigen::MatrixXd x_prev,
+        Eigen::MatrixXd y_prev,
+        Eigen::MatrixXd z_prev,
+        Eigen::MatrixXd x_samp,
+        Eigen::MatrixXd y_samp)
+{
+    using namespace Eigen;
+
+// maybe make sure that all prevs are the same size, same with samps
+
+    int num_rows = x_samp.rows();
+    int num_cols = x_samp.cols();
+
+    MatrixXd S = MatrixXd::Zero(num_rows, num_cols);
+
+    for (auto outer_col = 0; outer_col < num_cols; ++outer_col)
+    {
+        for (auto outer_row = 0; outer_row < num_rows; ++outer_row)
+        {
+            // Further optimizations are achieved by estimating only the
+            // interpolated surface within a local neighbourhood (e.g. a 7 x 7
+            // neighbourhood is used in our case) of the cell being filtered.
+            int radius = 3;
+
+            int inner_col = std::floor(outer_col/2);
+            int inner_row = std::floor(outer_row/2);
+
+            int cs = clamp(inner_col-radius, 0, z_prev.cols()-1);
+            int ce = clamp(inner_col+radius, 0, z_prev.cols()-1);
+            int col_size = ce - cs + 1;
+            int rs = clamp(inner_row-radius, 0, z_prev.rows()-1);
+            int re = clamp(inner_row+radius, 0, z_prev.rows()-1);
+            int row_size = re - rs + 1;
+
+            MatrixXd Xn = x_prev.block(rs, cs, row_size, col_size);
+            MatrixXd Yn = y_prev.block(rs, cs, row_size, col_size);
+            MatrixXd Hn = z_prev.block(rs, cs, row_size, col_size);
+
+            int nsize = Hn.size();
+            VectorXd T = VectorXd::Zero(nsize);
+            MatrixXd P = MatrixXd::Zero(nsize, 3);
+            MatrixXd K = MatrixXd::Zero(nsize, nsize);
+
+            for (auto id = 0; id < Hn.size(); ++id)
+            {
+                double xj = Xn(id);
+                double yj = Yn(id);
+                double zj = Hn(id);
+                if (std::isnan(xj) || std::isnan(yj) || std::isnan(zj))
+                    continue;
+                T(id) = zj;
+                P.row(id) << 1, xj, yj;
+                for (auto id2 = 0; id2 < Hn.size(); ++id2)
+                {
+                    if (id == id2)
+                        continue;
+                    double xk = Xn(id2);
+                    double yk = Yn(id2);
+                    double zk = Hn(id2);
+                    if (std::isnan(xk) || std::isnan(yk) || std::isnan(zk))
+                        continue;
+                    double rsqr = (xj - xk) * (xj - xk) + (yj - yk) * (yj - yk);
+                    if (rsqr == 0.0)
+                        continue;
+                    K(id, id2) = rsqr * std::log10(std::sqrt(rsqr));
+                }
+            }
+
+            MatrixXd A = MatrixXd::Zero(nsize+3, nsize+3);
+            A.block(0,0,nsize,nsize) = K;
+            A.block(0,nsize,nsize,3) = P;
+            A.block(nsize,0,3,nsize) = P.transpose();
+
+            VectorXd b = VectorXd::Zero(nsize+3);
+            b.head(nsize) = T;
+
+            VectorXd x = A.fullPivHouseholderQr().solve(b);
+
+            Vector3d a = x.tail(3);
+            VectorXd w = x.head(nsize);
+
+            double sum = 0.0;
+            double xi2 = x_samp(outer_row, outer_col);
+            double yi2 = y_samp(outer_row, outer_col);
+            for (auto j = 0; j < nsize; ++j)
+            {
+                double xj = Xn(j);
+                double yj = Yn(j);
+                double zj = Hn(j);
+                if (std::isnan(xj) || std::isnan(yj) || std::isnan(zj))
+                    continue;
+                double rsqr = (xj - xi2) * (xj - xi2) + (yj - yi2) * (yj - yi2);
+                if (rsqr == 0.0)
+                    continue;
+                sum += w(j) * rsqr * std::log10(std::sqrt(rsqr));
+            }
+
+            S(outer_row, outer_col) = a(0) + a(1)*xi2 + a(2)*yi2 + sum;
+        }
+    }
+
+    return S;
+}
+
+void MongusFilter::writeMatrix(Eigen::MatrixXd data, std::string filename, double cell_size, PointViewPtr view)
+{
+    int cols = data.cols();
+    int rows = data.rows();
+
+    GDALAllRegister();
+
+    GDALDataset *mpDstDS(0);
+
+    char **papszMetadata;
+
+    // parse the format driver, hardcoded for the time being
+    std::string tFormat("GTIFF");
+    const char *pszFormat = tFormat.c_str();
+    GDALDriver* tpDriver = GetGDALDriverManager()->GetDriverByName(pszFormat);
+
+    // try to create a file of the requested format
+    if (tpDriver != NULL)
+    {
+        papszMetadata = tpDriver->GetMetadata();
+        if (CSLFetchBoolean(papszMetadata, GDAL_DCAP_CREATE, FALSE))
+        {
+            char **papszOptions = NULL;
+
+            mpDstDS = tpDriver->Create(filename.c_str(), cols, rows, 1,
+                                       GDT_Float32, papszOptions);
+
+            // set the geo transformation
+            double adfGeoTransform[6];
+            adfGeoTransform[0] = m_bounds.minx; // - 0.5*m_GRID_DIST_X;
+            adfGeoTransform[1] = cell_size;
+            adfGeoTransform[2] = 0.0;
+            adfGeoTransform[3] = m_bounds.maxy; // + 0.5*m_GRID_DIST_Y;
+            adfGeoTransform[4] = 0.0;
+            adfGeoTransform[5] = -1 * cell_size;
+            mpDstDS->SetGeoTransform(adfGeoTransform);
+
+            // set the projection
+            mpDstDS->SetProjection(view->spatialReference().getWKT().c_str());
+        }
+    }
+
+    // if we have a valid file
+    if (mpDstDS)
+    {
+        // loop over the raster and determine max slope at each location
+        int cs = 0, ce = cols;
+        int rs = 0, re = rows;
+        float *poRasterData = new float[cols*rows];
+        for (auto i=0; i<cols*rows; i++)
+        {
+            poRasterData[i] = std::numeric_limits<float>::min();
+        }
+
+        #pragma omp parallel for
+        for (auto c = cs; c < ce; ++c)
+        {
+            for (auto r = rs; r < re; ++r)
+            {
+                if (data(r, c) == 0.0 || std::isnan(data(r, c)) || data(r, c) == std::numeric_limits<double>::max())
+                    continue;
+                poRasterData[(r * cols) + c] =
+                    data(r, c);
+            }
+        }
+
+        // write the data
+        if (poRasterData)
+        {
+            GDALRasterBand *tBand = mpDstDS->GetRasterBand(1);
+
+            tBand->SetNoDataValue(std::numeric_limits<float>::min());
+
+            if (cols > 0 && rows > 0)
+#if GDAL_VERSION_MAJOR <= 1
+                tBand->RasterIO(GF_Write, 0, 0, cols, rows,
+                                poRasterData, cols, rows,
+                                GDT_Float32, 0, 0);
+#else
+
+                int ret = tBand->RasterIO(GF_Write, 0, 0, cols, rows,
+                                          poRasterData, cols, rows,
+                                          GDT_Float32, 0, 0, 0);
+#endif
+        }
+
+        GDALClose((GDALDatasetH) mpDstDS);
+
+        delete [] poRasterData;
+    }
+}
+
+void MongusFilter::writeControl(Eigen::MatrixXd cx, Eigen::MatrixXd cy, Eigen::MatrixXd cz, std::string filename)
+{
+    using namespace Dimension;
+
+    PipelineManager m;
+
+    PointTable table;
+    PointViewPtr view(new PointView(table));
+
+    table.layout()->registerDim(Id::X);
+    table.layout()->registerDim(Id::Y);
+    table.layout()->registerDim(Id::Z);
+
+    PointId i = 0;
+    for (auto j = 0; j < cz.size(); ++j)
+    {
+        if (std::isnan(cx(j)) || std::isnan(cy(j)) || std::isnan(cz(j)))
+            continue;
+        view->setField(Id::X, i, cx(j));
+        view->setField(Id::Y, i, cy(j));
+        view->setField(Id::Z, i, cz(j));
+        i++;
+    }
+
+    BufferReader r;
+    r.addView(view);
+
+    Stage& w = m.makeWriter(filename, "writers.las", r);
+    w.prepare(table);
+    w.execute(table);
+}
+
+std::vector<PointId> MongusFilter::processGround(PointViewPtr view)
+{
+    using namespace Eigen;
+
+    point_count_t np(view->size());
+
+    std::vector<PointId> groundIdx;
+
+    // initialization
+
+    view->calculateBounds(m_bounds);
+
+    m_numCols =
+        static_cast<int>(ceil((m_bounds.maxx - m_bounds.minx)/m_cellSize)) + 1;
+    m_numRows =
+        static_cast<int>(ceil((m_bounds.maxy - m_bounds.miny)/m_cellSize)) + 1;
+    m_maxRow = m_bounds.miny + m_numRows * m_cellSize;
+
+    // create control points matrix at default cell size
+    MatrixXd cx(m_numRows, m_numCols);
+    cx.setConstant(std::numeric_limits<double>::quiet_NaN());
+
+    MatrixXd cy(m_numRows, m_numCols);
+    cy.setConstant(std::numeric_limits<double>::quiet_NaN());
+
+    MatrixXd cz(m_numRows, m_numCols);
+    cz.setConstant(std::numeric_limits<double>::max());
+
+    // find initial set of Z minimums at native resolution
+    for (point_count_t i = 0; i < np; ++i)
+    {
+        using namespace Dimension;
+        double x = view->getFieldAs<double>(Id::X, i);
+        double y = view->getFieldAs<double>(Id::Y, i);
+        double z = view->getFieldAs<double>(Id::Z, i);
+
+        int c = clamp(getColIndex(x, m_cellSize), 0, m_numCols-1);
+        int r = clamp(getRowIndex(y, m_cellSize), 0, m_numRows-1);
+
+        if (z < cz(r, c))
+        {
+            cx(r, c) = x;
+            cy(r, c) = y;
+            cz(r, c) = z;
+        }
+    }
+
+    writeControl(cx, cy, cz, "grid_mins.laz");
+
+    // In our case, 2D structural elements of circular shape are employed and
+    // sufficient accuracy is achieved by using a larger window size for opening
+    // (W11) than for closing (W9).
+    MatrixXd mo = matrixOpen(cz, 11);
+    writeControl(cx, cy, mo, "grid_open.laz");
+    MatrixXd mc = matrixClose(mo, 9);
+    writeControl(cx, cy, mc, "grid_close.laz");
+
+    // ...in order to minimize the distortions caused by such filtering, the
+    // output points ... are compared to C and only ci with significantly lower
+    // elevation [are] replaced... In our case, d = 1.0 m was used.
+    for (auto i = 0; i < cz.size(); ++i)
+    {
+        if ((mc(i) - cz(i)) >= 1.0)
+            cz(i) = mc(i);
+    }
+    // cz is still at native resolution, with low points replaced by morphological operators
+    writeControl(cx, cy, cz, "grid_mins_adjusted.laz");
+
+    // downsample control at max_level
+    int level = m_l;
+    double cur_cell_size = m_cellSize * std::pow(2, level);
+    // for max level = 8 and cell size 1, this is 256
+
+    MatrixXd x_prev, y_prev, z_prev;
+
+    // Top-level control samples are assumed to be ground points, no filtering
+    // is applied.
+    downsampleMin(&cx, &cy, &cz, &x_prev, &y_prev, &z_prev, cur_cell_size);
+    // x|y|z_prev are control points downsampled to coarsest resolution for the hierarchy, e.g., for 512x512, this would be 2x2
+    writeControl(x_prev, y_prev, z_prev, "control_init.laz");
+
+    // Point-filtering is performed iteratively at each level of the
+    // control-points hierarchy in a top-down fashion
+    for (auto l = level-1; l > 0; --l)
+    {
+        std::cerr << "Level " << l << std::endl;
+        cur_cell_size /= 2;
+        // 128, 64, 32, 16, 8, 4, 1
+
+        // compute TPS with update control at level
+
+        // The interpolated surface is estimated based on the filtered set of
+        // TPS control-points at the previous level of hierarchy
+        // MatrixXd surface = TPS(x_prev, y_prev, z_prev, cur_cell_size);
+        // 4x4, 8x8, 16x16, 32x32, 64x64, 128x128, 256x256
+
+        // downsample control at level
+        MatrixXd x_samp, y_samp, z_samp;
+        downsampleMin(&cx, &cy, &cz, &x_samp, &y_samp, &z_samp, cur_cell_size);
+        // 4x4, 8x8, 16x16, 32x32, 64x64, 128x128, 256x256
+
+        MatrixXd surface = computeSpline(x_prev, y_prev, z_prev, x_samp, y_samp);
+
+        // if (l == 3)
+        // {
+        //     log()->get(LogLevel::Debug) << cx.rows() << "\t" << cx.cols() << std::endl;
+        //     log()->get(LogLevel::Debug) << x_prev.rows() << "\t" << x_prev.cols() << std::endl;
+        //     log()->get(LogLevel::Debug) << x_samp.rows() << "\t" << x_samp.cols() << std::endl;
+        //     log()->get(LogLevel::Debug) << surface.rows() << "\t" << surface.cols() << std::endl;
+        //     log()->get(LogLevel::Debug) << "x: " << cx.row(1) << std::endl;
+        //     log()->get(LogLevel::Debug) << "z: " << cz.row(1) << std::endl;
+        //     log()->get(LogLevel::Debug) << "control_x: " << x_prev.row(0) << std::endl;
+        //     log()->get(LogLevel::Debug) << "control_z: " << z_prev.row(0) << std::endl;
+        //     log()->get(LogLevel::Debug) << "samples_x: " << x_samp.row(0) << std::endl;
+        //     log()->get(LogLevel::Debug) << "samples_z: " << z_samp.row(0) << std::endl;
+        //     log()->get(LogLevel::Debug) << "spline: " << surface.row(0) << std::endl;
+        // }
+
+        char bufs[256];
+        sprintf(bufs, "cur_control_%d.laz", l);
+        std::string names(bufs);
+        writeControl(x_samp, y_samp, z_samp, names);
+
+        MatrixXd R = z_samp - surface;
+
+        if (l == 7)
+            log()->get(LogLevel::Debug) << R << std::endl;
+
+        double sum = 0.0;
+        double maxcoeff = std::numeric_limits<double>::lowest();
+        double mincoeff = std::numeric_limits<double>::max();
+        for (auto i = 0; i < R.size(); ++i)
+        {
+            if (std::isnan(R(i)))
+                continue;
+            if (R(i) > maxcoeff)
+                maxcoeff = R(i);
+            if (R(i) < mincoeff)
+                mincoeff = R(i);
+            sum += R(i);
+        }
+
+        log()->get(LogLevel::Debug) << "R: max=" << maxcoeff
+                                    << "; min=" << mincoeff
+                                    << "; sum=" << sum
+                                    << "; size=" << R.size() << std::endl;
+
+        // median takes an unsorted vector, possibly containing NANs, and
+        // returns the median value.
+        auto median = [&](std::vector<double> vals)
+        {
+            // Begin by partitioning the vector by isnan.
+            auto ptr = std::partition(vals.begin(), vals.end(), [](double p)
+            {
+                return std::isnan(p);
+            });
+
+            // Copy the actual values, thus eliminating NANs, and sort it.
+            std::vector<double> cp(ptr, vals.end());
+            std::sort(cp.begin(), cp.end());
+
+            std::cerr << "median troubleshooting\n";
+            std::cerr << vals.size() << "\t" << cp.size() << std::endl;
+            std::cerr << cp.size() % 2 << std::endl;
+            std::cerr << cp[cp.size()/2-1] << "\t" << cp[cp.size()/2] << std::endl;
+            if (l == 7)
+            {
+                for (auto const& v : cp)
+                    std::cerr << v << ", ";
+                std::cerr << std::endl;
+            }
+
+            // Compute the median value. For even sized vectors, this is the
+            // average of the midpoints, otherwise it is the midpoint.
+            double median = 0.0;
+            if (cp.size() % 2 == 0)
+                median = (cp[cp.size()/2-1]+cp[cp.size()/2])/2;
+            else
+                median = cp[cp.size()/2];
+
+            return median;
+        };
+
+        // Compute median of residuals.
+        std::vector<double> allres(R.data(), R.data()+R.size());
+        double m = median(allres);
+
+        // Compute absolute difference of the residuals from the median.
+        ArrayXd ad = (R.array()-m).abs();
+
+        // Compute median of absolute differences, with scale factor (1.4862)
+        // for a normal distribution.
+        std::vector<double> absdiff(ad.data(), ad.data()+ad.size());
+        double mad = 1.4862 * median(absdiff);
+
+        // Divide absolute differences by MAD. Values greater than 2 are
+        // considered outliers.
+        MatrixXd M = (ad / mad).matrix();
+
+        sum = 0.0;
+        maxcoeff = std::numeric_limits<double>::lowest();
+        mincoeff = std::numeric_limits<double>::max();
+        for (auto i = 0; i < M.size(); ++i)
+        {
+            if (std::isnan(M(i)))
+                continue;
+            if (M(i) > maxcoeff)
+                maxcoeff = M(i);
+            if (M(i) < mincoeff)
+                mincoeff = M(i);
+            sum += M(i);
+        }
+
+        log()->get(LogLevel::Debug) << "M: max=" << maxcoeff
+                                    << "; min=" << mincoeff
+                                    << "; sum=" << sum
+                                    << "; size=" << M.size() << std::endl;
+
+        double madthresh = 2.0;
+        // Just computing the percent outlier FYI.
+        double perc = static_cast<double>((M.array() > madthresh).count());
+        perc /= static_cast<double>(R.size());
+        perc *= 100.0;
+        log()->get(LogLevel::Debug) << "median=" << m
+                                    << "; MAD=" << mad
+                                    << "; " << (M.array() > madthresh).count()
+                                    << " outliers out of " << R.size()
+                                    << " control points (" << perc << "%)\n";
+
+        // If the TPS control-point is recognized as a non-ground point, it is
+        // replaced by the interpolated point. The time complexity of the
+        // approach is reduced by filtering only the control-points in each
+        // iteration.
+        if (l < 3)
+        {
+            for (auto i = 0; i < M.size(); ++i)
+            {
+                if (M(i) > madthresh)
+                    z_samp(i) = std::numeric_limits<double>::quiet_NaN();
+                // z_samp(i) = surface(i);
+            }
+        }
+
+        if (log()->getLevel() > LogLevel::Debug5)
+        {
+            char buffer[256];
+            sprintf(buffer, "interp_surface_%d.laz", l);
+            std::string name(buffer);
+            // writeMatrix(surface, name, cur_cell_size, view);
+            writeControl(x_samp, y_samp, surface, name);
+
+            char bufm[256];
+            sprintf(bufm, "master_control_%d.laz", l);
+            std::string namem(bufm);
+            writeControl(cx, cy, cz, namem);
+
+            // this is identical to filtered control when written here - should move it...
+            char buf3[256];
+            sprintf(buf3, "prev_control_%d.laz", l);
+            std::string name3(buf3);
+            writeControl(x_prev, y_prev, z_prev, name3);
+
+            char rbuf[256];
+            sprintf(rbuf, "residual_%d.laz", l);
+            std::string rbufn(rbuf);
+            // writeMatrix(R, rbufn, cur_cell_size, view);
+            writeControl(x_samp, y_samp, R, rbufn);
+
+            char mbuf[256];
+            sprintf(mbuf, "median_%d.laz", l);
+            std::string mbufn(mbuf);
+            // writeMatrix(M, mbufn, cur_cell_size, view);
+            writeControl(x_samp, y_samp, M, mbufn);
+
+            char buf2[256];
+            sprintf(buf2, "adjusted_control_%d.laz", l);
+            std::string name2(buf2);
+            writeControl(x_samp, y_samp, z_samp, name2);
+        }
+
+        x_prev = x_samp;
+        y_prev = y_samp;
+        z_prev = z_samp;
+    }
+
+    MatrixXd surface = computeSpline(x_prev, y_prev, z_prev, cx, cy);
+
+    if (log()->getLevel() > LogLevel::Debug5)
+    {
+        //     writeControl(cx, cy, mc, "closed.laz");
+        //
+        char buffer[256];
+        sprintf(buffer, "final_surface.tif");
+        std::string name(buffer);
+        writeMatrix(surface, name, m_cellSize, view);
+        //
+        //     char rbuf[256];
+        //     sprintf(rbuf, "final_residual.tif");
+        //     std::string rbufn(rbuf);
+        //     writeMatrix(R, rbufn, cur_cell_size, view);
+        //
+        //     char obuf[256];
+        //     sprintf(obuf, "final_opened.tif");
+        //     std::string obufn(obuf);
+        //     writeMatrix(maxZ, obufn, cur_cell_size, view);
+        //
+        //     char Tbuf[256];
+        //     sprintf(Tbuf, "final_tophat.tif");
+        //     std::string Tbufn(Tbuf);
+        //     writeMatrix(T, Tbufn, cur_cell_size, view);
+        //
+        //     char tbuf[256];
+        //     sprintf(tbuf, "final_thresh.tif");
+        //     std::string tbufn(tbuf);
+        //     writeMatrix(t, tbufn, cur_cell_size, view);
+    }
+
+    // apply final filtering (top hat) using raw points against TPS
+
+    // ...the LiDAR points are filtered only at the bottom level.
+    for (point_count_t i = 0; i < np; ++i)
+    {
+        using namespace Dimension;
+
+        double x = view->getFieldAs<double>(Id::X, i);
+        double y = view->getFieldAs<double>(Id::Y, i);
+        double z = view->getFieldAs<double>(Id::Z, i);
+
+        int c = clamp(getColIndex(x, cur_cell_size), 0, m_numCols-1);
+        int r = clamp(getRowIndex(y, cur_cell_size), 0, m_numRows-1);
+
+        double res = z - surface(r, c);
+        if (res < 1.0)
+            groundIdx.push_back(i);
+    }
+
+    return groundIdx;
+}
+
+void MongusFilter::downsampleMin(Eigen::MatrixXd *cx, Eigen::MatrixXd *cy,
+                                 Eigen::MatrixXd* cz, Eigen::MatrixXd *dcx,
+                                 Eigen::MatrixXd *dcy, Eigen::MatrixXd* dcz,
+                                 double cell_size)
+{
+    int nr = ceil(cz->rows() / cell_size);
+    int nc = ceil(cz->cols() / cell_size);
+
+    // std::cerr << nr << "\t" << nc << "\t" << cell_size << std::endl;
+
+    dcx->resize(nr, nc);
+    dcx->setConstant(std::numeric_limits<double>::quiet_NaN());
+
+    dcy->resize(nr, nc);
+    dcy->setConstant(std::numeric_limits<double>::quiet_NaN());
+
+    dcz->resize(nr, nc);
+    dcz->setConstant(std::numeric_limits<double>::max());
+
+    for (auto c = 0; c < cz->cols(); ++c)
+    {
+        for (auto r = 0; r < cz->rows(); ++r)
+        {
+            if ((*cz)(r, c) == std::numeric_limits<double>::max())
+                continue;
+
+            int rr = std::floor(r/cell_size);
+            int cc = std::floor(c/cell_size);
+
+            if ((*cz)(r, c) < (*dcz)(rr, cc))
+            {
+                (*dcx)(rr, cc) = (*cx)(r, c);
+                (*dcy)(rr, cc) = (*cy)(r, c);
+                (*dcz)(rr, cc) = (*cz)(r, c);
+            }
+        }
+    }
+}
+
+Eigen::MatrixXd MongusFilter::padMatrix(Eigen::MatrixXd d, int r)
+{
+    using namespace Eigen;
+
+    MatrixXd out = MatrixXd::Zero(d.rows()+2*r, d.cols()+2*r);
+    out.block(r, r, d.rows(), d.cols()) = d;
+    out.block(r, 0, d.rows(), r) =
+        d.block(0, 0, d.rows(), r).rowwise().reverse();
+    out.block(r, d.cols()+r, d.rows(), r) =
+        d.block(0, d.cols()-r, d.rows(), r).rowwise().reverse();
+    out.block(0, 0, r, out.cols()) =
+        out.block(r, 0, r, out.cols()).colwise().reverse();
+    out.block(d.rows()+r, 0, r, out.cols()) =
+        out.block(out.rows()-r, 0, r, out.cols()).colwise().reverse();
+
+    return out;
+}
+
+Eigen::MatrixXd MongusFilter::matrixOpen(Eigen::MatrixXd data, int radius)
+{
+    using namespace Eigen;
+
+    MatrixXd data2 = padMatrix(data, radius);
+
+    int nrows = data2.rows();
+    int ncols = data2.cols();
+
+    // first min, then max of min
+    MatrixXd minZ = MatrixXd::Constant(nrows, ncols,
+                                       std::numeric_limits<double>::max());
+    MatrixXd maxZ = MatrixXd::Constant(nrows, ncols,
+                                       std::numeric_limits<double>::lowest());
+    for (auto c = 0; c < ncols; ++c)
+    {
+        for (auto r = 0; r < nrows; ++r)
+        {
+            int cs = clamp(c-radius, 0, ncols-1);
+            int ce = clamp(c+radius, 0, ncols-1);
+            int rs = clamp(r-radius, 0, nrows-1);
+            int re = clamp(r+radius, 0, nrows-1);
+
+            for (auto col = cs; col <= ce; ++col)
+            {
+                for (auto row = rs; row <= re; ++row)
+                {
+                    if ((row-r)*(row-r)+(col-c)*(col-c) > radius*radius)
+                        continue;
+                    if (data2(row, col) < minZ(r, c))
+                        minZ(r, c) = data2(row, col);
+                }
+            }
+        }
+    }
+    for (auto c = 0; c < ncols; ++c)
+    {
+        for (auto r = 0; r < nrows; ++r)
+        {
+            int cs = clamp(c-radius, 0, ncols-1);
+            int ce = clamp(c+radius, 0, ncols-1);
+            int rs = clamp(r-radius, 0, nrows-1);
+            int re = clamp(r+radius, 0, nrows-1);
+
+            for (auto col = cs; col <= ce; ++col)
+            {
+                for (auto row = rs; row <= re; ++row)
+                {
+                    if ((row-r)*(row-r)+(col-c)*(col-c) > radius*radius)
+                        continue;
+                    if (minZ(row, col) > maxZ(r, c))
+                        maxZ(r, c) = minZ(row, col);
+                }
+            }
+        }
+    }
+
+    return maxZ.block(radius, radius, data.rows(), data.cols());
+}
+
+Eigen::MatrixXd MongusFilter::matrixClose(Eigen::MatrixXd data, int radius)
+{
+    using namespace Eigen;
+
+    MatrixXd data2 = padMatrix(data, radius);
+
+    int nrows = data2.rows();
+    int ncols = data2.cols();
+
+    // first min, then max of min
+    MatrixXd minZ = MatrixXd::Constant(nrows, ncols,
+                                       std::numeric_limits<double>::max());
+    MatrixXd maxZ = MatrixXd::Constant(nrows, ncols,
+                                       std::numeric_limits<double>::lowest());
+    for (auto c = 0; c < ncols; ++c)
+    {
+        for (auto r = 0; r < nrows; ++r)
+        {
+            int cs = clamp(c-radius, 0, ncols-1);
+            int ce = clamp(c+radius, 0, ncols-1);
+            int rs = clamp(r-radius, 0, nrows-1);
+            int re = clamp(r+radius, 0, nrows-1);
+
+            for (auto col = cs; col <= ce; ++col)
+            {
+                for (auto row = rs; row <= re; ++row)
+                {
+                    if ((row-r)*(row-r)+(col-c)*(col-c) > radius*radius)
+                        continue;
+                    if (data2(row, col) > maxZ(r, c))
+                        maxZ(r, c) = data2(row, col);
+                }
+            }
+        }
+    }
+    for (auto c = 0; c < ncols; ++c)
+    {
+        for (auto r = 0; r < nrows; ++r)
+        {
+            int cs = clamp(c-radius, 0, ncols-1);
+            int ce = clamp(c+radius, 0, ncols-1);
+            int rs = clamp(r-radius, 0, nrows-1);
+            int re = clamp(r+radius, 0, nrows-1);
+
+            for (auto col = cs; col <= ce; ++col)
+            {
+                for (auto row = rs; row <= re; ++row)
+                {
+                    if ((row-r)*(row-r)+(col-c)*(col-c) > radius*radius)
+                        continue;
+                    if (maxZ(row, col) < minZ(r, c))
+                        minZ(r, c) = maxZ(row, col);
+                }
+            }
+        }
+    }
+
+    return minZ.block(radius, radius, data.rows(), data.cols());
+}
+
+PointViewSet MongusFilter::run(PointViewPtr view)
+{
+    bool logOutput = log()->getLevel() > LogLevel::Debug1;
+    if (logOutput)
+        log()->floatPrecision(8);
+    log()->get(LogLevel::Debug2) << "Process MongusFilter...\n";
+
+    std::vector<PointId> idx = processGround(view);
+    std::cerr << idx.size() << std::endl;
+
+    PointViewSet viewSet;
+
+    if (!idx.empty() && (m_classify || m_extract))
+    {
+
+        if (m_classify)
+        {
+            log()->get(LogLevel::Debug2) << "Labeled " << idx.size() << " ground returns!\n";
+
+            // set the classification label of ground returns as 2
+            // (corresponding to ASPRS LAS specification)
+            for (const auto& i : idx)
+            {
+                view->setField(Dimension::Id::Classification, i, 2);
+            }
+
+            viewSet.insert(view);
+        }
+
+        if (m_extract)
+        {
+            log()->get(LogLevel::Debug2) << "Extracted " << idx.size() << " ground returns!\n";
+
+            // create new PointView containing only ground returns
+            PointViewPtr output = view->makeNew();
+            for (const auto& i : idx)
+            {
+                output->appendPoint(*view, i);
+            }
+
+            viewSet.erase(view);
+            viewSet.insert(output);
+        }
+    }
+    else
+    {
+        if (idx.empty())
+            log()->get(LogLevel::Debug2) << "Filtered cloud has no ground returns!\n";
+
+        if (!(m_classify || m_extract))
+            log()->get(LogLevel::Debug2) << "Must choose --classify or --extract\n";
+
+        // return the view buffer unchanged
+        viewSet.insert(view);
+    }
+
+    return viewSet;
+}
+
+} // namespace pdal
diff --git a/filters/mongus/MongusFilter.hpp b/filters/mongus/MongusFilter.hpp
new file mode 100644
index 0000000..2dbc888
--- /dev/null
+++ b/filters/mongus/MongusFilter.hpp
@@ -0,0 +1,104 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#pragma once
+
+#include <pdal/Filter.hpp>
+#include <pdal/plugin.hpp>
+
+#include <Eigen/Dense>
+
+#include <memory>
+#include <unordered_map>
+
+extern "C" int32_t MongusFilter_ExitFunc();
+extern "C" PF_ExitFunc MongusFilter_InitPlugin();
+
+namespace pdal
+{
+
+class PointLayout;
+class PointView;
+
+typedef std::unordered_map<int, std::vector<PointId>> PointIdHash;
+
+class PDAL_DLL MongusFilter : public Filter
+{
+public:
+    MongusFilter() : Filter()
+    {}
+
+    static void * create();
+    static int32_t destroy(void *);
+    std::string getName() const;
+
+private:
+    bool m_classify;
+    bool m_extract;
+    int m_numRows;
+    int m_numCols;
+    int m_maxRow;
+    double m_cellSize;
+    double m_k;
+    int m_l;
+    BOX2D m_bounds;
+
+    virtual void addDimensions(PointLayoutPtr layout);
+    virtual void addArgs(ProgramArgs& args);
+    int clamp(int t, int min, int max);
+    int getColIndex(double x, double cell_size);
+    int getRowIndex(double y, double cell_size);
+    void writeMatrix(Eigen::MatrixXd data, std::string filename,
+                     double cell_size, PointViewPtr view);
+    Eigen::MatrixXd computeSpline(Eigen::MatrixXd x_prev,
+                                  Eigen::MatrixXd y_prev,
+                                  Eigen::MatrixXd z_prev,
+                                  Eigen::MatrixXd x_samp,
+                                  Eigen::MatrixXd y_samp);
+    void writeControl(Eigen::MatrixXd cx, Eigen::MatrixXd cy, Eigen::MatrixXd cz, std::string filename);
+    Eigen::MatrixXd padMatrix(Eigen::MatrixXd data, int radius);
+    Eigen::MatrixXd matrixOpen(Eigen::MatrixXd data, int radius);
+    Eigen::MatrixXd matrixClose(Eigen::MatrixXd data, int radius);
+    void downsampleMin(Eigen::MatrixXd *cx, Eigen::MatrixXd *cy,
+                       Eigen::MatrixXd* cz, Eigen::MatrixXd *dcx,
+                       Eigen::MatrixXd *dcy, Eigen::MatrixXd* dcz,
+                       double cell_size);
+    std::vector<PointId> processGround(PointViewPtr view);
+    virtual PointViewSet run(PointViewPtr view);
+
+    MongusFilter& operator=(const MongusFilter&); // not implemented
+    MongusFilter(const MongusFilter&); // not implemented
+};
+
+} // namespace pdal
diff --git a/filters/mortonorder/MortonOrderFilter.cpp b/filters/mortonorder/MortonOrderFilter.cpp
index e687da5..0702f0f 100644
--- a/filters/mortonorder/MortonOrderFilter.cpp
+++ b/filters/mortonorder/MortonOrderFilter.cpp
@@ -52,13 +52,6 @@ CREATE_STATIC_PLUGIN(1, 0, MortonOrderFilter, Filter, s_info)
 
 std::string MortonOrderFilter::getName() const { return s_info.name; }
 
-Options MortonOrderFilter::getDefaultOptions()
-{
-    Options options;
-    return options;
-}
-
-
 //This used to be a lambda, but the VS compiler exploded, I guess.
 typedef std::pair<double, double> Coord;
 namespace
diff --git a/filters/mortonorder/MortonOrderFilter.hpp b/filters/mortonorder/MortonOrderFilter.hpp
index 4192fff..31cc4f4 100644
--- a/filters/mortonorder/MortonOrderFilter.hpp
+++ b/filters/mortonorder/MortonOrderFilter.hpp
@@ -48,19 +48,15 @@ class PDAL_DLL MortonOrderFilter : public pdal::Filter
 public:
     MortonOrderFilter()
     {}
+    MortonOrderFilter& operator=(const MortonOrderFilter&) = delete;
+    MortonOrderFilter(const MortonOrderFilter&) = delete;
 
     static void * create();
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
-    virtual void processOptions(const Options& ) {};
     virtual PointViewSet run(PointViewPtr view);
-
-    MortonOrderFilter& operator=(const MortonOrderFilter&); // not implemented
-    MortonOrderFilter(const MortonOrderFilter&); // not implemented
 };
 
 } // namespace pdal
diff --git a/filters/normal/CMakeLists.txt b/filters/normal/CMakeLists.txt
new file mode 100644
index 0000000..567c537
--- /dev/null
+++ b/filters/normal/CMakeLists.txt
@@ -0,0 +1,2 @@
+PDAL_ADD_DRIVER(filter normal "NormalFilter.cpp" "NormalFilter.hpp" objects)
+set(PDAL_TARGET_OBJECTS ${PDAL_TARGET_OBJECTS} ${objects} PARENT_SCOPE)
diff --git a/filters/normal/NormalFilter.cpp b/filters/normal/NormalFilter.cpp
new file mode 100644
index 0000000..cf3fec1
--- /dev/null
+++ b/filters/normal/NormalFilter.cpp
@@ -0,0 +1,113 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include "NormalFilter.hpp"
+
+#include <pdal/Eigen.hpp>
+#include <pdal/KDIndex.hpp>
+#include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
+
+#include <Eigen/Dense>
+
+#include <string>
+#include <vector>
+
+namespace pdal
+{
+
+static PluginInfo const s_info =
+    PluginInfo("filters.normal", "Normal Filter", 
+               "http://pdal.io/stages/filters.normal.html");
+
+CREATE_STATIC_PLUGIN(1, 0, NormalFilter, Filter, s_info)
+
+std::string NormalFilter::getName() const
+{
+    return s_info.name;
+}
+
+
+void NormalFilter::addArgs(ProgramArgs& args)
+{
+    args.add("knn", "k-Nearest Neighbors", m_knn, 8);
+}
+
+
+void NormalFilter::addDimensions(PointLayoutPtr layout)
+{
+    m_nx = layout->registerOrAssignDim("NormalX", Dimension::Type::Double);
+    m_ny = layout->registerOrAssignDim("NormalY", Dimension::Type::Double);
+    m_nz = layout->registerOrAssignDim("NormalZ", Dimension::Type::Double);
+    m_curvature = layout->registerOrAssignDim("Curvature", Dimension::Type::Double);
+}
+
+void NormalFilter::filter(PointView& view)
+{
+    using namespace Eigen;
+
+    KD3Index kdi(view);
+    kdi.build();
+
+    for (PointId i = 0; i < view.size(); ++i)
+    {
+        // find the k-nearest neighbors
+        double x = view.getFieldAs<double>(Dimension::Id::X, i);
+        double y = view.getFieldAs<double>(Dimension::Id::Y, i);
+        double z = view.getFieldAs<double>(Dimension::Id::Z, i);
+        auto ids = kdi.neighbors(x, y, z, m_knn);
+
+        // compute covariance of the neighborhood
+        auto B = computeCovariance(view, ids);
+
+        // perform the eigen decomposition
+        SelfAdjointEigenSolver<Matrix3f> solver(B);
+        if (solver.info() != Success)
+            throw pdal_error("Cannot perform eigen decomposition.");
+        auto eval = solver.eigenvalues();
+        auto evec = solver.eigenvectors().col(0);
+
+        view.setField(m_nx, i, evec[0]);
+        view.setField(m_ny, i, evec[1]);
+        view.setField(m_nz, i, evec[2]);
+
+        double sum = eval[0] + eval[1] + eval[2];
+        if (sum != 0)
+            view.setField(m_curvature, i, std::fabs(eval[0]/sum));
+        else
+            view.setField(m_curvature, i, 0);
+    }
+}
+
+} // namespace pdal
diff --git a/filters/normal/NormalFilter.hpp b/filters/normal/NormalFilter.hpp
new file mode 100644
index 0000000..052a4a2
--- /dev/null
+++ b/filters/normal/NormalFilter.hpp
@@ -0,0 +1,76 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#pragma once
+
+#include <pdal/Filter.hpp>
+#include <pdal/plugin.hpp>
+
+#include <cstdint>
+#include <memory>
+#include <string>
+
+extern "C" int32_t NormalFilter_ExitFunc();
+extern "C" PF_ExitFunc NormalFilter_InitPlugin();
+
+namespace pdal
+{
+
+class Options;
+class PointLayout;
+class PointView;
+
+class PDAL_DLL NormalFilter : public Filter
+{
+public:
+    NormalFilter() : Filter()
+    {}
+    NormalFilter& operator=(const NormalFilter&) = delete;
+    NormalFilter(const NormalFilter&) = delete;
+
+    static void * create();
+    static int32_t destroy(void *);
+    std::string getName() const;
+
+private:
+    int m_knn;
+    Dimension::Id m_nx, m_ny, m_nz, m_curvature;
+
+    virtual void addDimensions(PointLayoutPtr layout);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void filter(PointView& view);
+
+};
+
+} // namespace pdal
diff --git a/filters/outlier/CMakeLists.txt b/filters/outlier/CMakeLists.txt
new file mode 100644
index 0000000..d78a90f
--- /dev/null
+++ b/filters/outlier/CMakeLists.txt
@@ -0,0 +1,2 @@
+PDAL_ADD_DRIVER(filter outlier "OutlierFilter.cpp" "OutlierFilter.hpp" objects)
+set(PDAL_TARGET_OBJECTS ${PDAL_TARGET_OBJECTS} ${objects} PARENT_SCOPE)
diff --git a/filters/outlier/OutlierFilter.cpp b/filters/outlier/OutlierFilter.cpp
new file mode 100644
index 0000000..db1f401
--- /dev/null
+++ b/filters/outlier/OutlierFilter.cpp
@@ -0,0 +1,237 @@
+/******************************************************************************
+ * Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following
+ * conditions are met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in
+ *       the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+ *       names of its contributors may be used to endorse or promote
+ *       products derived from this software without specific prior
+ *       written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ ****************************************************************************/
+
+#include "OutlierFilter.hpp"
+
+#include <pdal/KDIndex.hpp>
+#include <pdal/util/Utils.hpp>
+#include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
+
+#include <string>
+#include <vector>
+
+namespace pdal
+{
+
+static PluginInfo const s_info =
+    PluginInfo("filters.outlier", "Outlier removal",
+               "http://pdal.io/stages/filters.outlier.html");
+
+CREATE_STATIC_PLUGIN(1, 0, OutlierFilter, Filter, s_info)
+
+std::string OutlierFilter::getName() const
+{
+    return s_info.name;
+}
+
+
+void OutlierFilter::addArgs(ProgramArgs& args)
+{
+    args.add("method", "Method [default: statistical]", m_method,
+        "statistical");
+    args.add("min_k", "Minimum number of neighbors in radius", m_minK, 2);
+    args.add("radius", "Radius", m_radius, 1.0);
+    args.add("mean_k", "Mean number of neighbors", m_meanK, 8);
+    args.add("multiplier", "Standard deviation threshold", m_multiplier, 2.0);
+    args.add("classify", "Apply classification labels?", m_classify, true);
+    args.add("extract", "Extract ground returns?", m_extract);
+}
+
+
+void OutlierFilter::addDimensions(PointLayoutPtr layout)
+{
+    layout->registerDim(Dimension::Id::Classification);
+}
+
+
+Indices OutlierFilter::processRadius(PointViewPtr inView)
+{
+    KD3Index index(*inView);
+    index.build();
+
+    point_count_t np = inView->size();
+
+    std::vector<PointId> inliers, outliers;
+
+    for (PointId i = 0; i < np; ++i)
+    {
+        double x = inView->getFieldAs<double>(Dimension::Id::X, i);
+        double y = inView->getFieldAs<double>(Dimension::Id::Y, i);
+        double z = inView->getFieldAs<double>(Dimension::Id::Z, i);
+
+        auto ids = index.radius(x, y, z, m_radius);
+        if (ids.size() > size_t(m_minK))
+            inliers.push_back(i);
+        else
+            outliers.push_back(i);
+    }
+
+    return Indices{inliers, outliers};
+}
+
+
+Indices OutlierFilter::processStatistical(PointViewPtr inView)
+{
+    KD3Index index(*inView);
+    index.build();
+
+    point_count_t np = inView->size();
+
+    std::vector<PointId> inliers, outliers;
+
+    std::vector<double> distances(np);
+    for (PointId i = 0; i < np; ++i)
+    {
+        double x = inView->getFieldAs<double>(Dimension::Id::X, i);
+        double y = inView->getFieldAs<double>(Dimension::Id::Y, i);
+        double z = inView->getFieldAs<double>(Dimension::Id::Z, i);
+
+        // we increase the count by one because the query point itself will
+        // be included with a distance of 0
+        point_count_t count = m_meanK + 1;
+
+        std::vector<PointId> indices(count);
+        std::vector<double> sqr_dists(count);
+        index.knnSearch(x, y, z, count, &indices, &sqr_dists);
+
+        double dist_sum = 0.0;
+        for (auto const& d : sqr_dists)
+            dist_sum += sqrt(d);
+        distances[i] = dist_sum / m_meanK;
+    }
+
+    double sum = 0.0, sq_sum = 0.0;
+    for (auto const& d : distances)
+    {
+        sum += d;
+        sq_sum += d * d;
+    }
+    double mean = sum / np;
+    double variance = (sq_sum - sum * sum / np) / (np - 1);
+    double stdev = sqrt(variance);
+    double threshold = mean + m_multiplier * stdev;
+
+    for (PointId i = 0; i < np; ++i)
+    {
+        if (distances[i] < threshold)
+            inliers.push_back(i);
+        else
+            outliers.push_back(i);
+    }
+
+    return Indices{inliers, outliers};
+}
+
+
+PointViewSet OutlierFilter::run(PointViewPtr inView)
+{
+    PointViewSet viewSet;
+    if (!inView->size())
+        return viewSet;
+
+    Indices indices;
+    if (Utils::iequals(m_method, "statistical"))
+    {
+        indices = processStatistical(inView);
+    }
+    else if (Utils::iequals(m_method, "radius"))
+    {
+        indices = processRadius(inView);
+    }
+    else
+    {
+        log()->get(LogLevel::Warning) << "Requested method is unrecognized. "
+                                      << "Please choose from \"statistical\" " << "or \"radius\".\n";
+        viewSet.insert(inView);
+        return viewSet;
+    }
+
+    if (indices.inliers.empty())
+    {
+        log()->get(LogLevel::Warning) << "Requested filter would remove all "
+                                      << "points. Try a larger radius/smaller " << "minimum neighbors.\n";
+        viewSet.insert(inView);
+        return viewSet;
+    }
+
+    if (!indices.outliers.empty() && (m_classify || m_extract))
+    {
+        if (m_classify)
+        {
+            log()->get(LogLevel::Debug2) << "Labeled "
+                                         << indices.outliers.size()
+                                         << " outliers as noise!\n";
+
+            // set the classification label of outlier returns as 18
+            // (corresponding to ASPRS LAS specification for high noise)
+            for (const auto& i : indices.outliers)
+                inView->setField(Dimension::Id::Classification, i, 18);
+
+            viewSet.insert(inView);
+        }
+
+        if (m_extract)
+        {
+            log()->get(LogLevel::Debug2) << "Extracted "
+                                         << indices.inliers.size()
+                                         << " inliers!\n";
+
+            // create new PointView containing only outliers
+            PointViewPtr output = inView->makeNew();
+            for (const auto& i : indices.inliers)
+                output->appendPoint(*inView, i);
+
+            viewSet.erase(inView);
+            viewSet.insert(output);
+        }
+    }
+    else
+    {
+        if (indices.outliers.empty())
+            log()->get(LogLevel::Warning) << "Filtered cloud has no "
+                                          << "outliers!\n";
+
+        if (!(m_classify || m_extract))
+            log()->get(LogLevel::Warning) << "Must choose --classify or "
+                                          << "--extract\n";
+
+        // return the input buffer unchanged
+        viewSet.insert(inView);
+    }
+
+    return viewSet;
+}
+
+} // namespace pdal
diff --git a/filters/outlier/OutlierFilter.hpp b/filters/outlier/OutlierFilter.hpp
new file mode 100644
index 0000000..7f42a7f
--- /dev/null
+++ b/filters/outlier/OutlierFilter.hpp
@@ -0,0 +1,87 @@
+/******************************************************************************
+ * Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following
+ * conditions are met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in
+ *       the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+ *       names of its contributors may be used to endorse or promote
+ *       products derived from this software without specific prior
+ *       written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ ****************************************************************************/
+
+#pragma once
+
+#include <pdal/Filter.hpp>
+#include <pdal/plugin.hpp>
+
+#include <memory>
+#include <map>
+#include <string>
+
+extern "C" int32_t OutlierFilter_ExitFunc();
+extern "C" PF_ExitFunc OutlierFilter_InitPlugin();
+
+namespace pdal
+{
+
+class Options;
+
+struct Indices
+{
+    std::vector<PointId> inliers;
+    std::vector<PointId> outliers;
+};
+
+class PDAL_DLL OutlierFilter : public pdal::Filter
+{
+public:
+    OutlierFilter() : Filter()
+    {}
+
+    static void * create();
+    static int32_t destroy(void *);
+    std::string getName() const;
+
+private:
+    std::string m_method;
+    int m_minK;
+    double m_radius;
+    int m_meanK;
+    double m_multiplier;
+    bool m_classify;
+    bool m_extract;
+
+    virtual void addDimensions(PointLayoutPtr layout);
+    virtual void addArgs(ProgramArgs& args);
+    Indices processRadius(PointViewPtr inView);
+    Indices processStatistical(PointViewPtr inView);
+    virtual PointViewSet run(PointViewPtr view);
+
+    OutlierFilter& operator=(const OutlierFilter&); // not implemented
+    OutlierFilter(const OutlierFilter&); // not implemented
+};
+
+} // namespace pdal
diff --git a/filters/pmf/CMakeLists.txt b/filters/pmf/CMakeLists.txt
new file mode 100644
index 0000000..8deae2a
--- /dev/null
+++ b/filters/pmf/CMakeLists.txt
@@ -0,0 +1,2 @@
+PDAL_ADD_DRIVER(filter pmf "PMFFilter.cpp" "PMFFilter.hpp" objects)
+set(PDAL_TARGET_OBJECTS ${PDAL_TARGET_OBJECTS} ${objects} PARENT_SCOPE)
diff --git a/filters/pmf/PMFFilter.cpp b/filters/pmf/PMFFilter.cpp
new file mode 100644
index 0000000..88e4eec
--- /dev/null
+++ b/filters/pmf/PMFFilter.cpp
@@ -0,0 +1,249 @@
+/******************************************************************************
+* Copyright (c) 2015, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include "PMFFilter.hpp"
+
+#include <pdal/KDIndex.hpp>
+#include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
+
+namespace pdal
+{
+
+static PluginInfo const s_info =
+    PluginInfo("filters.pmf", "Progressive morphological filter",
+               "http://pdal.io/stages/filters.pmf.html");
+
+CREATE_STATIC_PLUGIN(1, 0, PMFFilter, Filter, s_info)
+
+std::string PMFFilter::getName() const
+{
+    return s_info.name;
+}
+
+
+void PMFFilter::addArgs(ProgramArgs& args)
+{
+    args.add("max_window_size", "Maximum window size", m_maxWindowSize, 33.0);
+    args.add("slope", "Slope", m_slope, 1.0);
+    args.add("max_distance", "Maximum distance", m_maxDistance, 2.5);
+    args.add("initial_distance", "Initial distance", m_initialDistance, 0.15);
+    args.add("cell_size", "Cell size", m_cellSize, 1.0);
+    args.add("classify", "Apply classification labels?", m_classify, true);
+    args.add("extract", "Extract ground returns?", m_extract);
+    args.add("approximate", "Use approximate algorithm?", m_approximate);
+}
+
+
+void PMFFilter::addDimensions(PointLayoutPtr layout)
+{
+    layout->registerDim(Dimension::Id::Classification);
+}
+
+std::vector<double> PMFFilter::morphOpen(PointViewPtr view, float radius)
+{
+    point_count_t np(view->size());
+
+    KD2Index index(*view);
+    index.build();
+
+    std::vector<double> minZ(np), maxZ(np);
+    typedef std::vector<PointId> PointIdVec;
+    std::map<PointId, PointIdVec> neighborMap;
+
+    // erode
+    for (PointId i = 0; i < np; ++i)
+    {
+        double x = view->getFieldAs<double>(Dimension::Id::X, i);
+        double y = view->getFieldAs<double>(Dimension::Id::Y, i);
+        auto ids = index.radius(x, y, radius);
+
+        // neighborMap.insert(std::pair<PointId, std::vector<PointId>(i, ids));
+        neighborMap[i] = ids;
+        double localMin(std::numeric_limits<double>::max());
+        for (auto const& j : ids)
+        {
+            double z = view->getFieldAs<double>(Dimension::Id::Z, j);
+            if (z < localMin)
+                localMin = z;
+        }
+        minZ[i] = localMin;
+    }
+
+    // dilate
+    for (PointId i = 0; i < np; ++i)
+    {
+        auto ids = neighborMap[i];
+        double localMax(std::numeric_limits<double>::lowest());
+        for (auto const& j : ids)
+        {
+            double z = minZ[j];
+            if (z > localMax)
+                localMax = z;
+        }
+        maxZ[i] = localMax;
+    }
+
+    return maxZ;
+}
+
+std::vector<PointId> PMFFilter::processGround(PointViewPtr view)
+{
+    point_count_t np(view->size());
+
+    // Compute the series of window sizes and height thresholds
+    std::vector<float> height_thresholds;
+    std::vector<float> window_sizes;
+    int iteration = 0;
+    float window_size = 0.0f;
+    float height_threshold = 0.0f;
+
+    while (window_size < m_maxWindowSize)
+    {
+        // Determine the initial window size.
+        if (1) // exponential
+            window_size = m_cellSize * (2.0f * std::pow(2, iteration) + 1.0f);
+        else
+            window_size = m_cellSize * (2.0f * (iteration+1) * 2 + 1.0f);
+
+        // Calculate the height threshold to be used in the next iteration.
+        if (iteration == 0)
+            height_threshold = m_initialDistance;
+        else
+            height_threshold = m_slope * (window_size - window_sizes[iteration-1]) * m_cellSize + m_initialDistance;
+
+        // Enforce max distance on height threshold
+        if (height_threshold > m_maxDistance)
+            height_threshold = m_maxDistance;
+
+        window_sizes.push_back(window_size);
+        height_thresholds.push_back(height_threshold);
+
+        iteration++;
+    }
+
+    std::vector<PointId> groundIdx;
+    for (PointId i = 0; i < np; ++i)
+        groundIdx.push_back(i);
+
+    // Progressively filter ground returns using morphological open
+    for (size_t j = 0; j < window_sizes.size(); ++j)
+    {
+        // Limit filtering to those points currently considered ground returns
+        PointViewPtr ground = view->makeNew();
+        for (PointId i = 0; i < groundIdx.size(); ++i)
+            ground->appendPoint(*view, groundIdx[i]);
+
+        printf("      Iteration %ld (height threshold = %f, window size = %f)...",
+               j, height_thresholds[j], window_sizes[j]);
+
+        // Create new cloud to hold the filtered results. Apply the morphological
+        // opening operation at the current window size.
+        auto maxZ = morphOpen(ground, window_sizes[j]*0.5);
+
+        // Find indices of the points whose difference between the source and
+        // filtered point clouds is less than the current height threshold.
+        std::vector<PointId> pt_indices;
+        for (PointId i = 0; i < ground->size(); ++i)
+        {
+            double z0 = ground->getFieldAs<double>(Dimension::Id::Z, i);
+            double z1 = maxZ[i];
+            float diff = z0 - z1;
+            if (diff < height_thresholds[j])
+                pt_indices.push_back(groundIdx[i]);
+        }
+        groundIdx.swap(pt_indices);
+    }
+
+    return groundIdx;
+}
+
+PointViewSet PMFFilter::run(PointViewPtr input)
+{
+    bool logOutput = log()->getLevel() > LogLevel::Debug1;
+    if (logOutput)
+        log()->floatPrecision(8);
+    log()->get(LogLevel::Debug2) << "Process PMFFilter...\n";
+
+    auto idx = processGround(input);
+
+    PointViewSet viewSet;
+    if (!idx.empty() && (m_classify || m_extract))
+    {
+
+        if (m_classify)
+        {
+            log()->get(LogLevel::Debug2) << "Labeled " << idx.size() << " ground returns!\n";
+
+            // set the classification label of ground returns as 2
+            // (corresponding to ASPRS LAS specification)
+            for (const auto& i : idx)
+            {
+                input->setField(Dimension::Id::Classification, i, 2);
+            }
+
+            viewSet.insert(input);
+        }
+
+        if (m_extract)
+        {
+            log()->get(LogLevel::Debug2) << "Extracted " << idx.size() << " ground returns!\n";
+
+            // create new PointView containing only ground returns
+            PointViewPtr output = input->makeNew();
+            for (const auto& i : idx)
+            {
+                output->appendPoint(*input, i);
+            }
+
+            viewSet.erase(input);
+            viewSet.insert(output);
+        }
+    }
+    else
+    {
+        if (idx.empty())
+            log()->get(LogLevel::Debug2) << "Filtered cloud has no ground returns!\n";
+
+        if (!(m_classify || m_extract))
+            log()->get(LogLevel::Debug2) << "Must choose --classify or --extract\n";
+
+        // return the input buffer unchanged
+        viewSet.insert(input);
+    }
+
+    return viewSet;
+}
+
+} // namespace pdal
diff --git a/filters/pmf/PMFFilter.hpp b/filters/pmf/PMFFilter.hpp
new file mode 100644
index 0000000..a480384
--- /dev/null
+++ b/filters/pmf/PMFFilter.hpp
@@ -0,0 +1,83 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#pragma once
+
+#include <pdal/Filter.hpp>
+#include <pdal/plugin.hpp>
+
+#include <memory>
+
+extern "C" int32_t PMFFilter_ExitFunc();
+extern "C" PF_ExitFunc PMFFilter_InitPlugin();
+
+namespace pdal
+{
+
+class Options;
+class PointLayout;
+class PointTable;
+class PointView;
+
+class PDAL_DLL PMFFilter : public Filter
+{
+public:
+    PMFFilter() : Filter()
+    {}
+
+    static void * create();
+    static int32_t destroy(void *);
+    std::string getName() const;
+
+private:
+    double m_maxWindowSize;
+    double m_slope;
+    double m_maxDistance;
+    double m_initialDistance;
+    double m_cellSize;
+    bool m_classify;
+    bool m_extract;
+    bool m_approximate;
+
+    virtual void addDimensions(PointLayoutPtr layout);
+    virtual void addArgs(ProgramArgs& args);
+    std::vector<double> morphOpen(PointViewPtr view, float radius);
+    std::vector<PointId> processGround(PointViewPtr view);
+    virtual PointViewSet run(PointViewPtr view);
+
+    PMFFilter& operator=(const PMFFilter&); // not implemented
+    PMFFilter(const PMFFilter&); // not implemented
+};
+
+} // namespace pdal
diff --git a/filters/range/RangeFilter.cpp b/filters/range/RangeFilter.cpp
index 34e0989..55c758b 100644
--- a/filters/range/RangeFilter.cpp
+++ b/filters/range/RangeFilter.cpp
@@ -34,8 +34,9 @@
 
 #include "RangeFilter.hpp"
 
-#include <pdal/util/Utils.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
+#include <pdal/util/Utils.hpp>
 
 #include <cctype>
 #include <limits>
@@ -151,14 +152,16 @@ bool operator < (const RangeFilter::Range& r1, const RangeFilter::Range& r2)
 }
 
 
-void RangeFilter::processOptions(const Options& options)
+void RangeFilter::addArgs(ProgramArgs& args)
 {
-    StringList rangeString = options.getValueOrDefault<StringList>("limits");
+    args.add("limits", "Range limits", m_rangeSpec).setPositional();
+}
 
-    if (rangeString.empty())
-        throw pdal_error("filters.range missing required 'limits' option.");
 
-    for (auto const& r : rangeString)
+void RangeFilter::initialize()
+{
+    // Would be better to have the range know how to read from an input stream.
+    for (auto const& r : m_rangeSpec)
         m_range_list.push_back(parseRange(r));
 }
 
@@ -200,7 +203,7 @@ bool RangeFilter::dimensionPasses(double v, const Range& r) const
 // common case.
 bool RangeFilter::processOne(PointRef& point)
 {
-    Dimension::Id::Enum lastId = m_range_list.front().m_id;
+    Dimension::Id lastId = m_range_list.front().m_id;
     bool passes = false;
     for (auto const& r : m_range_list)
     {
diff --git a/filters/range/RangeFilter.hpp b/filters/range/RangeFilter.hpp
index 48792fa..efa0758 100644
--- a/filters/range/RangeFilter.hpp
+++ b/filters/range/RangeFilter.hpp
@@ -72,7 +72,7 @@ public:
             {}
 
         std::string m_name;
-        Dimension::Id::Enum m_id;
+        Dimension::Id m_id;
         double m_lower_bound;
         double m_upper_bound;
         bool m_inclusive_lower_bound;
@@ -89,16 +89,18 @@ public:
     std::string getName() const;
 
 private:
+    StringList m_rangeSpec;
     std::vector<Range> m_range_list;
 
-    virtual void processOptions(const Options&options);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void initialize();
     virtual void prepared(PointTableRef table);
     virtual bool processOne(PointRef& point);
     virtual PointViewSet run(PointViewPtr view);
     bool dimensionPasses(double v, const Range& r) const;
 
-    RangeFilter& operator=(const RangeFilter&); // not implemented
-    RangeFilter(const RangeFilter&); // not implemented
+    RangeFilter& operator=(const RangeFilter&) = delete;
+    RangeFilter(const RangeFilter&) = delete;
 };
 
 } // namespace pdal
diff --git a/filters/reprojection/ReprojectionFilter.cpp b/filters/reprojection/ReprojectionFilter.cpp
index 09f1100..432dc2f 100644
--- a/filters/reprojection/ReprojectionFilter.cpp
+++ b/filters/reprojection/ReprojectionFilter.cpp
@@ -36,6 +36,8 @@
 
 #include <pdal/PointView.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/GDALUtils.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <gdal.h>
 #include <ogr_spatialref.h>
@@ -54,8 +56,12 @@ CREATE_STATIC_PLUGIN(1, 0, ReprojectionFilter, Filter, s_info)
 
 std::string ReprojectionFilter::getName() const { return s_info.name; }
 
-ReprojectionFilter::ReprojectionFilter() : m_inferInputSRS(true),
-    m_in_ref_ptr(NULL), m_out_ref_ptr(NULL), m_transform_ptr(NULL)
+ReprojectionFilter::ReprojectionFilter()
+    : m_inferInputSRS(true)
+    , m_in_ref_ptr(NULL)
+    , m_out_ref_ptr(NULL)
+    , m_transform_ptr(NULL)
+    , m_errorHandler(new gdal::ErrorHandler())
 {}
 
 ReprojectionFilter::~ReprojectionFilter()
@@ -68,50 +74,22 @@ ReprojectionFilter::~ReprojectionFilter()
         OSRDestroySpatialReference(m_out_ref_ptr);
 }
 
-void ReprojectionFilter::processOptions(const Options& options)
-{
-    try
-    {
-       m_outSRS = options.getValueOrThrow<pdal::SpatialReference>("out_srs");
-    }
-    catch (std::invalid_argument)
-    {
-        std::string srs = options.getValueOrDefault<std::string>("out_srs", "");
-        std::ostringstream oss;
-        oss << "Stage " << getName() << " has invalid spatial reference "
-            "specification for 'out_srs' option: '" << srs << "'.";
-        throw pdal_error(oss.str());
-    }
-    catch (Option::not_found)
-    {
-        std::ostringstream oss;
-        oss << "Stage " << getName() << " missing required option 'out_srs'.";
-        throw Option::not_found(oss.str());
-    }
 
-    if (options.hasOption("in_srs"))
-    {
-        try
-        {
-            m_inSRS = options.getValueOrThrow<pdal::SpatialReference>("in_srs");
-            m_inferInputSRS = false;
-        }
-        catch (std::invalid_argument)
-        {
-            std::string srs =
-                options.getValueOrDefault<std::string>("in_srs", "");
-            std::ostringstream oss;
-            oss << "Stage " << getName() << " has invalid spatial reference "
-                "specification for 'in_srs' option: '" << srs << "'.";
-            throw pdal_error(oss.str());
-        }
-    }
+void ReprojectionFilter::addArgs(ProgramArgs& args)
+{
+    args.add("out_srs", "Output spatial reference", m_outSRS).setPositional();
+    args.add("in_srs", "Input spatial reference", m_inSRS);
 }
 
 
 void ReprojectionFilter::initialize()
 {
+    m_inferInputSRS = !m_inSRS.valid();
+
     m_out_ref_ptr = OSRNewSpatialReference(0);
+    if (!m_out_ref_ptr)
+        throw pdal::pdal_error("Unable to allocate new OSR SpatialReference "
+            "in initialize()!");
 
     int result = OSRSetFromUserInput(m_out_ref_ptr,
         m_outSRS.getWKT(pdal::SpatialReference::eCompoundOK).c_str());
@@ -150,6 +128,8 @@ void ReprojectionFilter::createTransform(const SpatialReference& srsSRS)
     if (m_in_ref_ptr)
         OSRDestroySpatialReference(m_in_ref_ptr);
     m_in_ref_ptr = OSRNewSpatialReference(0);
+    if (!m_in_ref_ptr)
+        throw pdal::pdal_error("Unable to allocate new OSR SpatialReference for input coordinate system in createTransform()!");
 
     int result =
         OSRSetFromUserInput(m_in_ref_ptr,
@@ -170,32 +150,11 @@ void ReprojectionFilter::createTransform(const SpatialReference& srsSRS)
     if (!m_transform_ptr)
     {
         std::ostringstream oss;
-        oss << getName() << ": Could not construct transformation.";
+        oss << getName() << ": Could not construct coordinate transformation object in createTransform";
         throw pdal_error(oss.str());
     }
 }
 
-
-bool ReprojectionFilter::transform(double& x, double& y, double& z)
-{
-    // OCTTransform will throw via GDAL error handler
-    // if there is an error. We don't expect the return value
-    // unless the GDAL handler gets shut off for whatever reason. In
-    // that case, we'll just throw.
-    if (OCTTransform(m_transform_ptr, 1, &x, &y, &z))
-    {
-        return true;
-    }
-    else
-    {
-        std::ostringstream msg;
-        msg << "Could not project point for ReprojectionTransform::" <<
-            CPLGetLastErrorMsg();
-        throw pdal_error(msg.str());
-    }
-}
-
-
 PointViewSet ReprojectionFilter::run(PointViewPtr view)
 {
     PointViewSet viewSet;
diff --git a/filters/reprojection/ReprojectionFilter.hpp b/filters/reprojection/ReprojectionFilter.hpp
index 3cbf6b3..f6510a1 100644
--- a/filters/reprojection/ReprojectionFilter.hpp
+++ b/filters/reprojection/ReprojectionFilter.hpp
@@ -47,7 +47,7 @@ namespace pdal
 
 namespace gdal
 {
-    class Debug;
+    class ErrorHandler;
 }
 
 class PDAL_DLL ReprojectionFilter : public Filter
@@ -61,7 +61,7 @@ public:
     std::string getName() const;
 
 private:
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual void initialize();
     virtual void ready(PointTableRef table);
     virtual PointViewSet run(PointViewPtr view);
@@ -69,7 +69,6 @@ private:
 
     void updateBounds();
     void createTransform(const SpatialReference& srs);
-    bool transform(double& x, double& y, double& z);
 
     SpatialReference m_inSRS;
     SpatialReference m_outSRS;
@@ -80,8 +79,7 @@ private:
     ReferencePtr m_in_ref_ptr;
     ReferencePtr m_out_ref_ptr;
     TransformPtr m_transform_ptr;
-
-    bool m_cullBadPoints;
+    gdal::ErrorHandler* m_errorHandler;
 
     ReprojectionFilter& operator=(const ReprojectionFilter&); // not implemented
     ReprojectionFilter(const ReprojectionFilter&); // not implemented
diff --git a/filters/sample/CMakeLists.txt b/filters/sample/CMakeLists.txt
new file mode 100644
index 0000000..6480805
--- /dev/null
+++ b/filters/sample/CMakeLists.txt
@@ -0,0 +1,2 @@
+PDAL_ADD_DRIVER(filter sample "SampleFilter.cpp" "SampleFilter.hpp" objects)
+set(PDAL_TARGET_OBJECTS ${PDAL_TARGET_OBJECTS} ${objects} PARENT_SCOPE)
diff --git a/filters/sample/SampleFilter.cpp b/filters/sample/SampleFilter.cpp
new file mode 100644
index 0000000..70dbef5
--- /dev/null
+++ b/filters/sample/SampleFilter.cpp
@@ -0,0 +1,129 @@
+/******************************************************************************
+ * Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following
+ * conditions are met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in
+ *       the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+ *       names of its contributors may be used to endorse or promote
+ *       products derived from this software without specific prior
+ *       written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ ****************************************************************************/
+
+#include "SampleFilter.hpp"
+
+#include <pdal/KDIndex.hpp>
+#include <pdal/util/Utils.hpp>
+#include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
+
+#include <string>
+#include <vector>
+
+namespace pdal
+{
+
+static PluginInfo const s_info =
+    PluginInfo("filters.sample", "Subsampling filter",
+               "http://pdal.io/stages/filters.sample.html");
+
+CREATE_STATIC_PLUGIN(1, 0, SampleFilter, Filter, s_info)
+
+std::string SampleFilter::getName() const
+{
+    return s_info.name;
+}
+
+
+void SampleFilter::addArgs(ProgramArgs& args)
+{
+    args.add("radius", "Radius", m_radius, 1.0);
+}
+
+
+void SampleFilter::addDimensions(PointLayoutPtr layout)
+{
+    layout->registerDim(Dimension::Id::Classification);
+}
+
+
+PointViewSet SampleFilter::run(PointViewPtr inView)
+{
+    point_count_t np = inView->size();
+
+    // Return empty PointViewSet if the input PointView has no points.
+    // Otherwise, make a new output PointView.
+    PointViewSet viewSet;
+    if (!np)
+        return viewSet;
+    PointViewPtr outView = inView->makeNew();
+
+    // Build the 3D KD-tree.
+    KD3Index index(*inView);
+    index.build();
+
+    // The result looks much better if we take some time to shuffle the indices.
+    std::srand(std::time(NULL));
+    std::vector<PointId> indices(np);
+    for (PointId i = 0; i < np; ++i)
+        indices[i] = i;
+    std::random_shuffle(indices.begin(), indices.end());
+
+    // All points are marked as kept (1) by default. As they are masked by
+    // neighbors within the user-specified radius, their value is changed to 0.
+    std::vector<int> keep(np, 1);
+
+    // We are able to subsample in a single pass over the shufflled indices.
+    for (auto const& i : indices)
+    {
+        // If a point is masked, it is forever masked, and cannot be part of the
+        // sampled cloud. Otherwise, the current index is appended to the output
+        // PointView.
+        if (keep[i] == 0)
+            continue;
+        outView->appendPoint(*inView, i);
+
+        // We now proceed to mask all neighbors within m_radius of the kept
+        // point.
+        double x = inView->getFieldAs<double>(Dimension::Id::X, i);
+        double y = inView->getFieldAs<double>(Dimension::Id::Y, i);
+        double z = inView->getFieldAs<double>(Dimension::Id::Z, i);
+        auto ids = index.radius(x, y, z, m_radius);
+        for (PointId j = 1; j < ids.size(); ++j)
+            keep[ids[j]] = 0;
+    }
+
+    // Simply calculate the percentage of retained points.
+    double frac = (double)outView->size() / (double)inView->size();
+    log()->get(LogLevel::Debug2) << "Retaining "
+                                 << outView->size() << " of "
+                                 << inView->size() << " points ("
+                                 << 100*frac << "%)\n";
+
+    viewSet.insert(outView);
+    return viewSet;
+}
+
+} // namespace pdal
diff --git a/filters/sample/SampleFilter.hpp b/filters/sample/SampleFilter.hpp
new file mode 100644
index 0000000..04f6bca
--- /dev/null
+++ b/filters/sample/SampleFilter.hpp
@@ -0,0 +1,70 @@
+/******************************************************************************
+ * Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following
+ * conditions are met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in
+ *       the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+ *       names of its contributors may be used to endorse or promote
+ *       products derived from this software without specific prior
+ *       written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ ****************************************************************************/
+
+#pragma once
+
+#include <pdal/Filter.hpp>
+#include <pdal/plugin.hpp>
+
+#include <string>
+
+extern "C" int32_t SampleFilter_ExitFunc();
+extern "C" PF_ExitFunc SampleFilter_InitPlugin();
+
+namespace pdal
+{
+
+class Options;
+
+class PDAL_DLL SampleFilter : public pdal::Filter
+{
+public:
+    SampleFilter() : Filter()
+    {}
+    SampleFilter& operator=(const SampleFilter&) = delete;
+    SampleFilter(const SampleFilter&) = delete;
+
+    static void * create();
+    static int32_t destroy(void *);
+    std::string getName() const;
+
+private:
+    double m_radius;
+
+    virtual void addDimensions(PointLayoutPtr layout);
+    virtual void addArgs(ProgramArgs& args);
+    virtual PointViewSet run(PointViewPtr view);
+};
+
+} // namespace pdal
diff --git a/filters/smrf/CMakeLists.txt b/filters/smrf/CMakeLists.txt
new file mode 100644
index 0000000..10213c0
--- /dev/null
+++ b/filters/smrf/CMakeLists.txt
@@ -0,0 +1,2 @@
+PDAL_ADD_DRIVER(filter smrf "SMRFilter.cpp" "SMRFilter.hpp" objects)
+set(PDAL_TARGET_OBJECTS ${PDAL_TARGET_OBJECTS} ${objects} PARENT_SCOPE)
diff --git a/filters/smrf/SMRFilter.cpp b/filters/smrf/SMRFilter.cpp
new file mode 100644
index 0000000..44239e1
--- /dev/null
+++ b/filters/smrf/SMRFilter.cpp
@@ -0,0 +1,1097 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include "SMRFilter.hpp"
+
+#include <pdal/Eigen.hpp>
+#include <pdal/pdal_macros.hpp>
+#include <pdal/PipelineManager.hpp>
+#include <buffer/BufferReader.hpp>
+#include <pdal/util/ProgramArgs.hpp>
+
+#include <Eigen/Dense>
+#include <Eigen/Sparse>
+
+#include "gdal_priv.h" // For File I/O
+#include "gdal_version.h" // For version info
+#include "ogr_spatialref.h"  //For Geographic Information/Transformations
+
+namespace pdal
+{
+using namespace Eigen;
+
+static PluginInfo const s_info =
+    PluginInfo("filters.smrf", "Pingel et al. (2013)",
+               "http://pdal.io/stages/filters.smrf.html");
+
+CREATE_STATIC_PLUGIN(1, 0, SMRFilter, Filter, s_info)
+
+struct distElev
+{
+    double dist;
+    double elev;
+};
+
+struct by_dist
+{
+    bool operator()(distElev const& a, distElev const& b)
+    {
+        return a.dist < b.dist;
+    }
+};
+
+std::string SMRFilter::getName() const
+{
+    return s_info.name;
+}
+
+void SMRFilter::addArgs(ProgramArgs& args)
+{
+    args.add("classify", "Apply classification labels?", m_classify, true);
+    args.add("extract", "Extract ground returns?", m_extract);
+    args.add("cell", "Cell size?", m_cellSize, 1.0);
+    args.add("slope", "Slope?", m_percentSlope, 0.15);
+    args.add("window", "Max window size?", m_maxWindow, 21.0);
+    args.add("threshold", "Threshold?", m_threshold, 0.15);
+    args.add("cut", "Cut net size?", m_cutNet, 0.0);
+}
+
+void SMRFilter::addDimensions(PointLayoutPtr layout)
+{
+    layout->registerDim(Dimension::Id::Classification);
+}
+
+int SMRFilter::clamp(int t, int min, int max)
+{
+    return ((t < min) ? min : ((t > max) ? max : t));
+}
+
+int SMRFilter::getColIndex(double x, double cell_size)
+{
+    return static_cast<int>(floor((x - m_bounds.minx) / cell_size));
+}
+
+int SMRFilter::getRowIndex(double y, double cell_size)
+{
+    return static_cast<int>(floor((m_maxRow - y) / cell_size));
+}
+
+MatrixXd SMRFilter::matrixOpen(MatrixXd data, int radius)
+{
+    MatrixXd data2 = padMatrix(data, radius);
+
+    int nrows = data2.rows();
+    int ncols = data2.cols();
+
+    // first min, then max of min
+    MatrixXd minZ = MatrixXd::Constant(nrows, ncols,
+                                       std::numeric_limits<double>::max());
+    MatrixXd maxZ = MatrixXd::Constant(nrows, ncols,
+                                       std::numeric_limits<double>::lowest());
+    for (int c = 0; c < ncols; ++c)
+    {
+        for (int r = 0; r < nrows; ++r)
+        {
+            int cs = clamp(c-radius, 0, ncols-1);
+            int ce = clamp(c+radius, 0, ncols-1);
+            int rs = clamp(r-radius, 0, nrows-1);
+            int re = clamp(r+radius, 0, nrows-1);
+
+            for (int col = cs; col <= ce; ++col)
+            {
+                for (int row = rs; row <= re; ++row)
+                {
+                    if ((row-r)*(row-r)+(col-c)*(col-c) > radius*radius)
+                        continue;
+                    if (data2(row, col) < minZ(r, c))
+                        minZ(r, c) = data2(row, col);
+                }
+            }
+        }
+    }
+    for (int c = 0; c < ncols; ++c)
+    {
+        for (int r = 0; r < nrows; ++r)
+        {
+            int cs = clamp(c-radius, 0, ncols-1);
+            int ce = clamp(c+radius, 0, ncols-1);
+            int rs = clamp(r-radius, 0, nrows-1);
+            int re = clamp(r+radius, 0, nrows-1);
+
+            for (int col = cs; col <= ce; ++col)
+            {
+                for (int row = rs; row <= re; ++row)
+                {
+                    if ((row-r)*(row-r)+(col-c)*(col-c) > radius*radius)
+                        continue;
+                    if (minZ(row, col) > maxZ(r, c))
+                        maxZ(r, c) = minZ(row, col);
+                }
+            }
+        }
+    }
+
+    return maxZ.block(radius, radius, data.rows(), data.cols());
+}
+
+MatrixXd SMRFilter::inpaintKnn(MatrixXd cx, MatrixXd cy, MatrixXd cz)
+{
+    MatrixXd out = cz;
+
+    for (auto c = 0; c < m_numCols; ++c)
+    {
+        for (auto r = 0; r < m_numRows; ++r)
+        {
+            if (!std::isnan(cz(r, c)))
+                continue;
+
+            int radius = 1;
+            bool enough = false;
+
+            while (!enough)
+            {
+                // log()->get(LogLevel::Debug) << r << "\t" << c << "\t" << radius << std::endl;
+                int cs = clamp(c-radius, 0, m_numCols-1);
+                int ce = clamp(c+radius, 0, m_numCols-1);
+                int col_size = ce - cs + 1;
+                int rs = clamp(r-radius, 0, m_numRows-1);
+                int re = clamp(r+radius, 0, m_numRows-1);
+                int row_size = re - rs + 1;
+
+                // MatrixXd Xn = cx.block(rs, cs, row_size, col_size);
+                // MatrixXd Yn = cy.block(rs, cs, row_size, col_size);
+                MatrixXd Zn = cz.block(rs, cs, row_size, col_size);
+
+                auto notNaN = [](double x)
+                {
+                    return !std::isnan(x);
+                };
+
+                enough = Zn.unaryExpr(notNaN).count() >= 8;
+                if (!enough)
+                {
+                    ++radius;
+                    continue;
+                }
+
+                // auto zNotNaN = [](double x)
+                // {
+                //     if (!std::isnan(x))
+                //         return x;
+                //     else
+                //         return 0.0;
+                // };
+                //
+                // // proceed to find 8 nearest neighbors and average the z values
+                // // std::cerr << Zn.unaryExpr(zNotNaN).sum() << "\t" << Zn.size() << "\t" << Zn.unaryExpr(zNotNaN).sum() / Zn.size() << std::endl;
+                // out(r, c) = Zn.unaryExpr(zNotNaN).sum() / Zn.size();
+
+                std::vector<distElev> de;
+
+                for (auto cc = cs; cc <= ce; ++cc)
+                {
+                    for (auto rr = rs; rr <= re; ++rr)
+                    {
+                        if (std::isnan(cz(rr, cc)))
+                            continue;
+
+                        // compute distance to !isnan neighbor
+                        double dx = cx(rr, cc) - cx(r, c);
+                        double dy = cy(rr, cc) - cy(r, c);
+                        double sqrdist = dx * dx + dy * dy;
+                        de.push_back(distElev{sqrdist, cz(rr, cc)});
+                    }
+                }
+                // sort dists
+                std::sort(de.begin(), de.end(), by_dist());
+
+                // average elevatio of lowest eight dists
+                double sum = 0.0;
+                for (auto i = 0; i < 8; ++i)
+                {
+                    sum += de[i].elev;
+                }
+                sum /= 8.0;
+
+                out(r, c) = sum;
+            }
+        }
+    }
+
+    return out;
+}
+
+MatrixXd SMRFilter::padMatrix(MatrixXd data, int radius)
+{
+    MatrixXd data2 = MatrixXd::Zero(data.rows()+2*radius, data.cols()+2*radius);
+    data2.block(radius, radius, data.rows(), data.cols()) = data;
+    data2.block(radius, 0, data.rows(), radius) =
+        data.block(0, 0, data.rows(), radius).rowwise().reverse();
+    data2.block(radius, data.cols()+radius, data.rows(), radius) =
+        data.block(0, data.cols()-radius, data.rows(), radius).rowwise().reverse();
+    data2.block(0, 0, radius, data2.cols()) =
+        data2.block(radius, 0, radius, data2.cols()).colwise().reverse();
+    data2.block(data.rows()+radius, 0, radius, data2.cols()) =
+        data2.block(data2.rows()-radius, 0, radius, data2.cols()).colwise().reverse();
+
+    return data2;
+}
+
+std::vector<PointId> SMRFilter::processGround(PointViewPtr view)
+{
+    log()->get(LogLevel::Info) << "processGround: Running SMRF...\n";
+
+    // The algorithm consists of four conceptually distinct stages. The first is
+    // the creation of the minimum surface (ZImin). The second is the processing
+    // of the minimum surface, in which grid cells from the raster are
+    // identified as either containing bare earth (BE) or objects (OBJ). This
+    // second stage represents the heart of the algorithm. The third step is the
+    // creation of a DEM from these gridded points. The fourth step is the
+    // identification of the original LIDAR points as either BE or OBJ based on
+    // their relationship to the interpolated
+
+    std::vector<PointId> groundIdx;
+    view->calculateBounds(m_bounds);
+
+    double extent_x = floor(m_bounds.maxx) - ceil(m_bounds.minx);
+    double extent_y = floor(m_bounds.maxy) - ceil(m_bounds.miny);
+
+    m_numCols = static_cast<int>(ceil(extent_x/m_cellSize)) + 1;
+    m_numRows = static_cast<int>(ceil(extent_y/m_cellSize)) + 1;
+    m_maxRow = m_bounds.miny + m_numRows * m_cellSize;
+
+    MatrixXd cx(m_numRows, m_numCols);
+    MatrixXd cy(m_numRows, m_numCols);
+    for (auto c = 0; c < m_numCols; ++c)
+    {
+        for (auto r = 0; r < m_numRows; ++r)
+        {
+            cx(r, c) = m_bounds.minx + (c + 0.5) * m_cellSize;
+            cy(r, c) = m_bounds.miny + (r + 0.5) * m_cellSize;
+        }
+    }
+
+    // STEP 1:
+
+    // As with many other ground filtering algorithms, the first step is
+    // generation of ZImin from the cell size parameter and the extent of the
+    // data. The two vectors corresponding to [min:cellSize:max] for each
+    // coordinate – xi and yi – may be supplied by the user or may be easily and
+    // automatically calculated from the data. Without supplied ranges, the SMRF
+    // algorithm creates a raster from the ceiling of the minimum to the floor
+    // of the maximum values for each of the (x,y) dimensions. If the supplied
+    // cell size parameter is not an integer, the same general rule applies to
+    // values evenly divisible by the cell size. For example, if cell size is
+    // equal to 0.5 m, and the x values range from 52345.6 to 52545.4, the range
+    // would be [52346 52545].
+
+    // The minimum surface grid ZImin defined by vectors (xi,yi) is filled with
+    // the nearest, lowest elevation from the original point cloud (x,y,z)
+    // values, provided that the distance to the nearest point does not exceed
+    // the supplied cell size parameter. This provision means that some grid
+    // points of ZImin will go unfilled. To fill these values, we rely on
+    // computationally inexpensive image inpainting techniques. Image inpainting
+    // involves the replacement of the empty cells in an image (or matrix) with
+    // values calculated from other nearby values. It is a type of interpolation
+    // technique derived from artistic replacement of damaged portions of
+    // photographs and paintings, where preservation of texture is an important
+    // concern (Bertalmio et al., 2000). When empty values are spread through
+    // the image, and the ratio of filled to empty pixels is quite high, most
+    // methods of inpainting will produce satisfactory results. In an evaluation
+    // of inpainting methods on ground identification from the final terrain
+    // model, we found that Laplacian techniques produced error rates nearly
+    // three times higher than either an average of the eight nearest neighbors
+    // or D’Errico’s spring-metaphor inpainting technique (D’Errico, 2004). The
+    // spring-metaphor technique imagines springs connecting each cell with its
+    // eight adjacent neighbors, where the inpainted value corresponds to the
+    // lowest energy state of the set, and where the entire (sparse) set of
+    // linear equations is solved using partial differential equations. Both of
+    // these latter techniques were nearly the same with regards to total error,
+    // with the spring technique performing slightly better than the k-nearest
+    // neighbor (KNN) approach.
+    MatrixXd ZImin = createDSM(*view.get(), m_numRows, m_numCols, m_cellSize,
+                               m_bounds);
+    writeMatrix(ZImin, "zimin.tif", m_cellSize, view);
+
+    // MatrixXd ZImin_painted = inpaintKnn(cx, cy, ZImin);
+    // MatrixXd ZImin_painted = TPS(cx, cy, ZImin);
+    MatrixXd ZImin_painted = expandingTPS(cx, cy, ZImin);
+    writeMatrix(ZImin_painted, "zimin_painted.tif", m_cellSize, view);
+
+    ZImin = ZImin_painted;
+
+    // STEP 2:
+
+    // The second stage of the ground identification algorithm involves the
+    // application of a progressive morphological filter to the minimum surface
+    // grid (ZImin). At the first iteration, the filter applies an image opening
+    // operation to the minimum surface. An opening operation consists of an
+    // application of an erosion filter followed by a dilation filter. The
+    // erosion acts to snap relative high values to relative lows, where a
+    // supplied window radius and shape (or structuring element) defines the
+    // search neighborhood. The dilation uses the same window radius and
+    // structuring element, acting to outwardly expand relative highs. Fig. 2
+    // illustrates an opening operation on a cross section of a transect from
+    // Sample 1–1 in the ISPRS LIDAR reference dataset (Sithole and Vosselman,
+    // 2003), following Zhang et al. (2003).
+
+    // paper has low point happening later, i guess it doesn't matter too much, this is where he does it in matlab code
+    MatrixXi Low = progressiveFilter(-ZImin, m_cellSize, 5.0, 1.0);
+    writeMatrix(Low.cast<double>(), "zilow.tif", m_cellSize, view);
+
+    // matlab code has net cutting occurring here
+    MatrixXd ZInet = ZImin;
+    MatrixXi isNetCell = MatrixXi::Zero(m_numRows, m_numCols);
+    if (m_cutNet > 0.0)
+    {
+        MatrixXd bigOpen = matrixOpen(ZImin, 2*std::ceil(m_cutNet / m_cellSize));
+        for (auto c = 0; c < m_numCols; c += std::ceil(m_cutNet/m_cellSize))
+        {
+            for (auto r = 0; r < m_numRows; ++r)
+            {
+                isNetCell(r, c) = 1;
+            }
+        }
+        for (auto c = 0; c < m_numCols; ++c)
+        {
+            for (auto r = 0; r < m_numRows; r += std::ceil(m_cutNet/m_cellSize))
+            {
+                isNetCell(r, c) = 1;
+            }
+        }
+        for (auto c = 0; c < m_numCols; ++c)
+        {
+            for (auto r = 0; r < m_numRows; ++r)
+            {
+                if (isNetCell(r, c)==1)
+                    ZInet(r, c) = bigOpen(r, c);
+            }
+        }
+        writeMatrix(ZInet, "zinet.tif", m_cellSize, view);
+    }
+
+    // and finally object detection
+    MatrixXi Obj = progressiveFilter(ZInet, m_cellSize, m_percentSlope, m_maxWindow);
+    writeMatrix(Obj.cast<double>(), "ziobj.tif", m_cellSize, view);
+
+    // STEP 3:
+
+    // The end result of the iteration process described above is a binary grid
+    // where each cell is classified as being either bare earth (BE) or object
+    // (OBJ). The algorithm then applies this mask to the starting minimum
+    // surface to eliminate nonground cells. These cells are then inpainted
+    // according to the same process described previously, producing a
+    // provisional DEM (ZIpro).
+
+    // we currently aren't checking for net cells or empty cells (haven't i already marked empty cells as NaNs?)
+    MatrixXd ZIpro = ZImin;
+    for (int i = 0; i < Obj.size(); ++i)
+    {
+        if (Obj(i) == 1 || Low(i) == 1 || isNetCell(i) == 1)
+            ZIpro(i) = std::numeric_limits<double>::quiet_NaN();
+    }
+    writeMatrix(ZIpro, "zipro.tif", m_cellSize, view);
+
+    // MatrixXd ZIpro_painted = inpaintKnn(cx, cy, ZIpro);
+    // MatrixXd ZIpro_painted = TPS(cx, cy, ZIpro);
+    MatrixXd ZIpro_painted = expandingTPS(cx, cy, ZIpro);
+    writeMatrix(ZIpro_painted, "zipro_painted.tif", m_cellSize, view);
+
+    ZIpro = ZIpro_painted;
+
+    // STEP 4:
+
+    // The final step of the algorithm is the identification of ground/object
+    // LIDAR points. This is accomplished by measuring the vertical distance
+    // between each LIDAR point and the provisional DEM, and applying a
+    // threshold calculation. While many authors use a single value for the
+    // elevation threshold, we suggest that a second parameter be used to
+    // increase the threshold on steep slopes, transforming the threshold to a
+    // slope-dependent value. The total permissible distance is then equal to a
+    // fixed elevation threshold plus the scaling value multiplied by the slope
+    // of the DEM at each LIDAR point. The rationale behind this approach is
+    // that small horizontal and vertical displacements yield larger errors on
+    // steep slopes, and as a result the BE/OBJ threshold distance should be
+    // more per- missive at these points.
+
+    // The calculation requires that both elevation and slope are interpolated
+    // from the provisional DEM. There are any number of interpolation
+    // techniques that might be used, and even nearest neighbor approaches work
+    // quite well, so long as the cell size of the DEM nearly corresponds to the
+    // resolution of the LIDAR data. A comparison of how well these different
+    // methods of interpolation perform is given in the next section. Based on
+    // these results, we find that a splined cubic interpolation provides the
+    // best results.
+
+    // It is common in LIDAR point clouds to have a small number of outliers
+    // which may be either above or below the terrain surface. While
+    // above-ground outliers (e.g., a random return from a bird in flight) are
+    // filtered during the normal algorithm routine, the below-ground outliers
+    // (e.g., those caused by a reflection) require a separate approach. Early
+    // in the routine and along a separate processing fork, the minimum surface
+    // is checked for low outliers by inverting the point cloud in the z-axis
+    // and applying the filter with parameters (slope = 500%, maxWindowSize =
+    // 1). The resulting mask is used to flag low outlier cells as OBJ before
+    // the inpainting of the provisional DEM. This outlier identification
+    // methodology is functionally the same as that of Zhang et al. (2003).
+
+    // The provisional DEM (ZIpro), created by removing OBJ cells from the
+    // original minimum surface (ZImin) and then inpainting, tends to be less
+    // smooth than one might wish, especially when the surfaces are to be used
+    // to create visual products like immersive geographic virtual environments.
+    // As a result, it is often worthwhile to reinter- polate a final DEM from
+    // the identified ground points of the original LIDAR data (ZIfin). Surfaces
+    // created from these data tend to be smoother and more visually satisfying
+    // than those derived from the provisional DEM.
+
+    // Very large (>40m in length) buildings can sometimes prove troublesome to
+    // remove on highly differentiated terrain. To accommodate the removal of
+    // such objects, we implemented a feature in the published SMRF algorithm
+    // which is helpful in removing such features. We accomplish this by
+    // introducing into the initial minimum surface a ‘‘net’’ of minimum values
+    // at a spacing equal to the maximum window diameter, where these minimum
+    // values are found by applying a morphological open operation with a disk
+    // shaped structuring element of radius (2?wkmax). Since only one example in
+    // this dataset had features this large (Sample 4–2, a trainyard) we did not
+    // include this portion of the algorithm in the formal testing procedure,
+    // though we provide a brief analysis of the effect of using this net filter
+    // in the next section.
+
+    auto diffX = [&](MatrixXd mat)
+    {
+        MatrixXd data = padMatrix(mat, 1);
+        MatrixXd data2 = data.rightCols(data.cols()-1) - data.leftCols(data.cols()-1);
+        return data2.block(1, 1, mat.rows(), mat.cols());
+    };
+
+    auto diffY = [&](MatrixXd mat)
+    {
+        MatrixXd data = padMatrix(mat, 1);
+        MatrixXd data2 = data.bottomRows(data.rows()-1) - data.topRows(data.rows()-1);
+        return data2.block(1, 1, mat.rows(), mat.cols());
+    };
+
+    MatrixXd gx = diffX(ZIpro / m_cellSize);
+    writeMatrix(gx, "gx.tif", m_cellSize, view);
+    MatrixXd gy = diffY(ZIpro / m_cellSize);
+    writeMatrix(gy, "gy.tif", m_cellSize, view);
+    MatrixXd gsurfs = (gx.cwiseProduct(gx) + gy.cwiseProduct(gy)).cwiseSqrt();
+    writeMatrix(gsurfs, "gsurfs.tif", m_cellSize, view);
+
+    // MatrixXd gsurfs_painted = inpaintKnn(cx, cy, gsurfs);
+    // MatrixXd gsurfs_painted = TPS(cx, cy, gsurfs);
+    MatrixXd gsurfs_painted = expandingTPS(cx, cy, gsurfs);
+    writeMatrix(gsurfs_painted, "gsurfs_painted.tif", m_cellSize, view);
+
+    gsurfs = gsurfs_painted;
+
+    MatrixXd thresh = (m_threshold + 1.2 * gsurfs.array()).matrix();
+    writeMatrix(thresh, "thresh.tif", m_cellSize, view);
+
+    for (PointId i = 0; i < view->size(); ++i)
+    {
+        using namespace Dimension;
+        double x = view->getFieldAs<double>(Id::X, i);
+        double y = view->getFieldAs<double>(Id::Y, i);
+        double z = view->getFieldAs<double>(Id::Z, i);
+
+        int c = clamp(getColIndex(x, m_cellSize), 0, m_numCols-1);
+        int r = clamp(getRowIndex(y, m_cellSize), 0, m_numRows-1);
+
+        // author uses spline interpolation to get value from ZIpro and gsurfs
+
+        if (std::isnan(ZIpro(r, c)))
+            continue;
+
+        // not sure i should just brush this under the rug...
+        if (std::isnan(gsurfs(r, c)))
+            continue;
+
+        double ez = ZIpro(r, c);
+        // double ez = interp2(r, c, cx, cy, ZIpro);
+        // double si = gsurfs(r, c);
+        // double si = interp2(r, c, cx, cy, gsurfs);
+        // double reqVal = m_threshold + 1.2 * si;
+
+        if (std::abs(ez - z) > thresh(r, c))
+            continue;
+
+        // if (std::abs(ZIpro(r, c) - z) > m_threshold)
+        //     continue;
+
+        groundIdx.push_back(i);
+    }
+
+    return groundIdx;
+}
+
+MatrixXi SMRFilter::progressiveFilter(MatrixXd const& ZImin, double cell_size,
+                                      double slope, double max_window)
+{
+    log()->get(LogLevel::Info) << "progressiveFilter: Progressive filtering...\n";
+
+    MatrixXi Obj(m_numRows, m_numCols);
+    Obj.setZero();
+
+    // In this case, we selected a disk-shaped structuring element, and the
+    // radius of the element at each step was increased by one pixel from a
+    // starting value of one pixel to the pixel equivalent of the maximum value
+    // (wkmax). The maximum window radius is supplied as a distance metric
+    // (e.g., 21 m), but is internally converted to a pixel equivalent by
+    // dividing it by the cell size and rounding the result toward positive
+    // infinity (i.e., taking the ceiling value). For example, for a supplied
+    // maximum window radius of 21 m, and a cell size of 2m per pixel, the
+    // result would be a maximum window radius of 11 pixels. While this
+    // represents a relatively slow progression in the expansion of the window
+    // radius, we believe that the high efficiency associated with the opening
+    // operation mitigates the potential for computational waste. The
+    // improvements in classification accuracy using slow, linear progressions
+    // are documented in the next section.
+    int max_radius = ceil(max_window/cell_size);
+    MatrixXd ZIlocal = ZImin;
+    for (int radius = 1; radius <= max_radius; ++radius)
+    {
+        // On the first iteration, the minimum surface (ZImin) is opened using a
+        // disk-shaped structuring element with a radius of one pixel.
+        MatrixXd mo = matrixOpen(ZIlocal, radius);
+
+        // An elevation threshold is then calculated, where the value is equal
+        // to the supplied slope tolerance parameter multiplied by the product
+        // of the window radius and the cell size. For example, if the user
+        // supplied a slope tolerance parameter of 15%, a cell size of 2m per
+        // pixel, the elevation threshold would be 0.3m at a window of one pixel
+        // (0.15 ? 1 ? 2).
+        double threshold = slope * cell_size * radius;
+
+        // This elevation threshold is applied to the difference of the minimum
+        // and the opened surfaces.
+        MatrixXd diff = ZIlocal - mo;
+
+        // Any grid cell with a difference value exceeding the calculated
+        // elevation threshold for the iteration is then flagged as an OBJ cell.
+        for (int i = 0; i < diff.size(); ++i)
+        {
+            if (diff(i) > threshold)
+                Obj(i) = 1;
+        }
+        // writeMatrix(Obj, "obj.tif", m_cellSize, view);
+
+        // The algorithm then proceeds to the next window radius (up to the
+        // maximum), and proceeds as above with the last opened surface acting
+        // as the ‘‘minimum surface’’ for the next difference calculation.
+        ZIlocal = mo;
+
+        log()->get(LogLevel::Info) << "progressiveFilter: Radius = " << radius
+                                   << ", " << Obj.sum() << " object pixels\n";
+    }
+
+    return Obj;
+}
+
+PointViewSet SMRFilter::run(PointViewPtr view)
+{
+    log()->get(LogLevel::Info) << "run: Process SMRFilter...\n";
+
+    std::vector<PointId> idx = processGround(view);
+
+    PointViewSet viewSet;
+
+    if (!idx.empty() && (m_classify || m_extract))
+    {
+
+        if (m_classify)
+        {
+            log()->get(LogLevel::Info) << "run: Labeled " << idx.size() << " ground returns!\n";
+
+            // set the classification label of ground returns as 2
+            // (corresponding to ASPRS LAS specification)
+            for (const auto& i : idx)
+            {
+                view->setField(Dimension::Id::Classification, i, 2);
+            }
+
+            viewSet.insert(view);
+        }
+
+        if (m_extract)
+        {
+            log()->get(LogLevel::Info) << "run: Extracted " << idx.size() << " ground returns!\n";
+
+            // create new PointView containing only ground returns
+            PointViewPtr output = view->makeNew();
+            for (const auto& i : idx)
+            {
+                output->appendPoint(*view, i);
+            }
+
+            viewSet.erase(view);
+            viewSet.insert(output);
+        }
+    }
+    else
+    {
+        if (idx.empty())
+            log()->get(LogLevel::Info) << "run: Filtered cloud has no ground returns!\n";
+
+        if (!(m_classify || m_extract))
+            log()->get(LogLevel::Info) << "run: Must choose --classify or --extract\n";
+
+        // return the view buffer unchanged
+        viewSet.insert(view);
+    }
+
+    return viewSet;
+}
+
+MatrixXd SMRFilter::TPS(MatrixXd cx, MatrixXd cy, MatrixXd cz)
+{
+    log()->get(LogLevel::Info) << "TPS: Reticulating splines...\n";
+
+    MatrixXd S = cz;
+
+    int num_nan_detect(0);
+    int num_nan_replace(0);
+
+    for (auto outer_col = 0; outer_col < m_numCols; ++outer_col)
+    {
+        for (auto outer_row = 0; outer_row < m_numRows; ++outer_row)
+        {
+            if (!std::isnan(S(outer_row, outer_col)))
+                continue;
+
+            num_nan_detect++;
+
+            // Further optimizations are achieved by estimating only the
+            // interpolated surface within a local neighbourhood (e.g. a 7 x 7
+            // neighbourhood is used in our case) of the cell being filtered.
+            int radius = 3;
+
+            int cs = clamp(outer_col-radius, 0, m_numCols-1);
+            int ce = clamp(outer_col+radius, 0, m_numCols-1);
+            int col_size = ce - cs + 1;
+            int rs = clamp(outer_row-radius, 0, m_numRows-1);
+            int re = clamp(outer_row+radius, 0, m_numRows-1);
+            int row_size = re - rs + 1;
+
+            MatrixXd Xn = cx.block(rs, cs, row_size, col_size);
+            MatrixXd Yn = cy.block(rs, cs, row_size, col_size);
+            MatrixXd Hn = cz.block(rs, cs, row_size, col_size);
+
+            int nsize = Hn.size();
+            VectorXd T = VectorXd::Zero(nsize);
+            MatrixXd P = MatrixXd::Zero(nsize, 3);
+            MatrixXd K = MatrixXd::Zero(nsize, nsize);
+
+            int numK(0);
+            for (auto id = 0; id < Hn.size(); ++id)
+            {
+                double xj = Xn(id);
+                double yj = Yn(id);
+                double zj = Hn(id);
+                if (std::isnan(zj))
+                    continue;
+                numK++;
+                T(id) = zj;
+                P.row(id) << 1, xj, yj;
+                for (auto id2 = 0; id2 < Hn.size(); ++id2)
+                {
+                    if (id == id2)
+                        continue;
+                    double xk = Xn(id2);
+                    double yk = Yn(id2);
+                    double rsqr = (xj - xk) * (xj - xk) + (yj - yk) * (yj - yk);
+                    if (rsqr == 0.0)
+                        continue;
+                    K(id, id2) = rsqr * std::log10(std::sqrt(rsqr));
+                }
+            }
+
+            if (numK < 20)
+                continue;
+
+            MatrixXd A = MatrixXd::Zero(nsize+3, nsize+3);
+            A.block(0,0,nsize,nsize) = K;
+            A.block(0,nsize,nsize,3) = P;
+            A.block(nsize,0,3,nsize) = P.transpose();
+
+            VectorXd b = VectorXd::Zero(nsize+3);
+            b.head(nsize) = T;
+
+            VectorXd x = A.fullPivHouseholderQr().solve(b);
+
+            Vector3d a = x.tail(3);
+            VectorXd w = x.head(nsize);
+
+            double sum = 0.0;
+            double xi2 = cx(outer_row, outer_col);
+            double yi2 = cy(outer_row, outer_col);
+            for (auto j = 0; j < nsize; ++j)
+            {
+                double xj = Xn(j);
+                double yj = Yn(j);
+                double rsqr = (xj - xi2) * (xj - xi2) + (yj - yi2) * (yj - yi2);
+                if (rsqr == 0.0)
+                    continue;
+                sum += w(j) * rsqr * std::log10(std::sqrt(rsqr));
+            }
+
+            S(outer_row, outer_col) = a(0) + a(1)*xi2 + a(2)*yi2 + sum;
+
+            if (!std::isnan(S(outer_row, outer_col)))
+                num_nan_replace++;
+
+            // std::cerr << std::fixed;
+            // std::cerr << std::setprecision(3)
+            //           << std::left
+            //           << "S(" << outer_row << "," << outer_col << "): "
+            //           << std::setw(10)
+            //           << S(outer_row, outer_col)
+            //           // << std::setw(3)
+            //           // << "\tz: "
+            //           // << std::setw(10)
+            //           // << zi
+            //           // << std::setw(7)
+            //           // << "\tzdiff: "
+            //           // << std::setw(5)
+            //           // << zi - S(outer_row, outer_col)
+            //           // << std::setw(7)
+            //           // << "\txdiff: "
+            //           // << std::setw(5)
+            //           // << xi2 - xi
+            //           // << std::setw(7)
+            //           // << "\tydiff: "
+            //           // << std::setw(5)
+            //           // << yi2 - yi
+            //           << std::setw(7)
+            //           << "\t# pts: "
+            //           << std::setw(3)
+            //           << nsize
+            //           << std::setw(5)
+            //           << "\tsum: "
+            //           << std::setw(10)
+            //           << sum
+            //           << std::setw(9)
+            //           << "\tw.sum(): "
+            //           << std::setw(5)
+            //           << w.sum()
+            //           << std::setw(6)
+            //           << "\txsum: "
+            //           << std::setw(5)
+            //           << w.dot(P.col(1))
+            //           << std::setw(6)
+            //           << "\tysum: "
+            //           << std::setw(5)
+            //           << w.dot(P.col(2))
+            //           << std::setw(3)
+            //           << "\ta: "
+            //           << std::setw(8)
+            //           << a.transpose()
+            //           << std::endl;
+        }
+    }
+
+    double frac = static_cast<double>(num_nan_replace);
+    frac /= static_cast<double>(num_nan_detect);
+    log()->get(LogLevel::Info) << "TPS: Filled " << num_nan_replace << " of "
+                               << num_nan_detect << " holes ("
+                               << frac * 100.0 << "%)\n";
+
+    return S;
+}
+
+MatrixXd SMRFilter::expandingTPS(MatrixXd cx, MatrixXd cy, MatrixXd cz)
+{
+    log()->get(LogLevel::Info) << "TPS: Reticulating splines...\n";
+
+    MatrixXd S = cz;
+
+    int num_nan_detect(0);
+    int num_nan_replace(0);
+
+    for (auto outer_col = 0; outer_col < m_numCols; ++outer_col)
+    {
+        for (auto outer_row = 0; outer_row < m_numRows; ++outer_row)
+        {
+            if (!std::isnan(S(outer_row, outer_col)))
+                continue;
+
+            num_nan_detect++;
+
+            // Further optimizations are achieved by estimating only the
+            // interpolated surface within a local neighbourhood (e.g. a 7 x 7
+            // neighbourhood is used in our case) of the cell being filtered.
+            int radius = 3;
+            bool solution = false;
+
+            while (!solution)
+            {
+                // std::cerr << radius;
+                int cs = clamp(outer_col-radius, 0, m_numCols-1);
+                int ce = clamp(outer_col+radius, 0, m_numCols-1);
+                int col_size = ce - cs + 1;
+                int rs = clamp(outer_row-radius, 0, m_numRows-1);
+                int re = clamp(outer_row+radius, 0, m_numRows-1);
+                int row_size = re - rs + 1;
+
+                MatrixXd Xn = cx.block(rs, cs, row_size, col_size);
+                MatrixXd Yn = cy.block(rs, cs, row_size, col_size);
+                MatrixXd Hn = cz.block(rs, cs, row_size, col_size);
+
+                int nsize = Hn.size();
+                VectorXd T = VectorXd::Zero(nsize);
+                MatrixXd P = MatrixXd::Zero(nsize, 3);
+                MatrixXd K = MatrixXd::Zero(nsize, nsize);
+
+                int numK(0);
+                for (auto id = 0; id < Hn.size(); ++id)
+                {
+                    double xj = Xn(id);
+                    double yj = Yn(id);
+                    double zj = Hn(id);
+                    if (std::isnan(zj))
+                        continue;
+                    numK++;
+                    T(id) = zj;
+                    P.row(id) << 1, xj, yj;
+                    for (auto id2 = 0; id2 < Hn.size(); ++id2)
+                    {
+                        if (id == id2)
+                            continue;
+                        double xk = Xn(id2);
+                        double yk = Yn(id2);
+                        double rsqr = (xj - xk) * (xj - xk) + (yj - yk) * (yj - yk);
+                        if (rsqr == 0.0)
+                            continue;
+                        K(id, id2) = rsqr * std::log10(std::sqrt(rsqr));
+                    }
+                }
+
+                // if (numK < 20)
+                //     continue;
+
+                MatrixXd A = MatrixXd::Zero(nsize+3, nsize+3);
+                A.block(0,0,nsize,nsize) = K;
+                A.block(0,nsize,nsize,3) = P;
+                A.block(nsize,0,3,nsize) = P.transpose();
+
+                VectorXd b = VectorXd::Zero(nsize+3);
+                b.head(nsize) = T;
+
+                VectorXd x = A.fullPivHouseholderQr().solve(b);
+
+                Vector3d a = x.tail(3);
+                VectorXd w = x.head(nsize);
+
+                double sum = 0.0;
+                double xi2 = cx(outer_row, outer_col);
+                double yi2 = cy(outer_row, outer_col);
+                for (auto j = 0; j < nsize; ++j)
+                {
+                    double xj = Xn(j);
+                    double yj = Yn(j);
+                    double rsqr = (xj - xi2) * (xj - xi2) + (yj - yi2) * (yj - yi2);
+                    if (rsqr == 0.0)
+                        continue;
+                    sum += w(j) * rsqr * std::log10(std::sqrt(rsqr));
+                }
+
+                double val = a(0) + a(1)*xi2 + a(2)*yi2 + sum;
+                solution = !std::isnan(val);
+
+                if (!solution)
+                {
+                    std::cerr << "..." << radius << std::endl;;
+                    ++radius;
+                    continue;
+                }
+
+                S(outer_row, outer_col) = val;
+                num_nan_replace++;
+
+                // std::cerr << std::endl;
+
+                // std::cerr << std::fixed;
+                // std::cerr << std::setprecision(3)
+                //           << std::left
+                //           << "S(" << outer_row << "," << outer_col << "): "
+                //           << std::setw(10)
+                //           << S(outer_row, outer_col)
+                //           // << std::setw(3)
+                //           // << "\tz: "
+                //           // << std::setw(10)
+                //           // << zi
+                //           // << std::setw(7)
+                //           // << "\tzdiff: "
+                //           // << std::setw(5)
+                //           // << zi - S(outer_row, outer_col)
+                //           // << std::setw(7)
+                //           // << "\txdiff: "
+                //           // << std::setw(5)
+                //           // << xi2 - xi
+                //           // << std::setw(7)
+                //           // << "\tydiff: "
+                //           // << std::setw(5)
+                //           // << yi2 - yi
+                //           << std::setw(7)
+                //           << "\t# pts: "
+                //           << std::setw(3)
+                //           << nsize
+                //           << std::setw(5)
+                //           << "\tsum: "
+                //           << std::setw(10)
+                //           << sum
+                //           << std::setw(9)
+                //           << "\tw.sum(): "
+                //           << std::setw(5)
+                //           << w.sum()
+                //           << std::setw(6)
+                //           << "\txsum: "
+                //           << std::setw(5)
+                //           << w.dot(P.col(1))
+                //           << std::setw(6)
+                //           << "\tysum: "
+                //           << std::setw(5)
+                //           << w.dot(P.col(2))
+                //           << std::setw(3)
+                //           << "\ta: "
+                //           << std::setw(8)
+                //           << a.transpose()
+                //           << std::endl;
+            }
+        }
+    }
+
+    double frac = static_cast<double>(num_nan_replace);
+    frac /= static_cast<double>(num_nan_detect);
+    log()->get(LogLevel::Info) << "TPS: Filled " << num_nan_replace << " of "
+                               << num_nan_detect << " holes ("
+                               << frac * 100.0 << "%)\n";
+
+    return S;
+}
+
+void SMRFilter::writeMatrix(MatrixXd data, std::string filename,
+                            double cell_size, PointViewPtr view)
+{
+    int cols = data.cols();
+    int rows = data.rows();
+
+    GDALAllRegister();
+
+    GDALDataset *mpDstDS = NULL;
+
+    char **papszMetadata;
+
+    // parse the format driver, hardcoded for the time being
+    std::string tFormat("GTIFF");
+    const char *pszFormat = tFormat.c_str();
+    GDALDriver* tpDriver = GetGDALDriverManager()->GetDriverByName(pszFormat);
+
+    // try to create a file of the requested format
+    if (tpDriver != NULL)
+    {
+        papszMetadata = tpDriver->GetMetadata();
+        if (CSLFetchBoolean(papszMetadata, GDAL_DCAP_CREATE, FALSE))
+        {
+            char **papszOptions = NULL;
+
+            mpDstDS = tpDriver->Create(filename.c_str(), cols, rows, 1,
+                                       GDT_Float32, papszOptions);
+
+            // set the geo transformation
+            double adfGeoTransform[6];
+            adfGeoTransform[0] = m_bounds.minx; // - 0.5*m_GRID_DIST_X;
+            adfGeoTransform[1] = cell_size;
+            adfGeoTransform[2] = 0.0;
+            adfGeoTransform[3] = m_bounds.maxy; // + 0.5*m_GRID_DIST_Y;
+            adfGeoTransform[4] = 0.0;
+            adfGeoTransform[5] = -1 * cell_size;
+            mpDstDS->SetGeoTransform(adfGeoTransform);
+
+            // set the projection
+            mpDstDS->SetProjection(view->spatialReference().getWKT().c_str());
+        }
+    }
+
+    // if we have a valid file
+    if (mpDstDS)
+    {
+        // loop over the raster and determine max slope at each location
+        int cs = 1, ce = cols - 1;
+        int rs = 1, re = rows - 1;
+        float *poRasterData = new float[cols*rows];
+        for (auto i=0; i<cols*rows; i++)
+        {
+            poRasterData[i] = std::numeric_limits<float>::min();
+        }
+
+        // #pragma omp parallel for
+        for (auto c = cs; c < ce; ++c)
+        {
+            for (auto r = rs; r < re; ++r)
+            {
+                if (data(r, c) == 0.0 || std::isnan(data(r, c)) || data(r, c) == std::numeric_limits<double>::max())
+                    continue;
+                poRasterData[(r * cols) + c] =
+                    data(r, c);
+            }
+        }
+
+        // write the data
+        if (poRasterData)
+        {
+            GDALRasterBand *tBand = mpDstDS->GetRasterBand(1);
+
+            tBand->SetNoDataValue(std::numeric_limits<float>::min());
+
+            if (cols > 0 && rows > 0)
+#if GDAL_VERSION_MAJOR <= 1
+                tBand->RasterIO(GF_Write, 0, 0, cols, rows,
+                                poRasterData, cols, rows,
+                                GDT_Float32, 0, 0);
+#else
+
+                int ret = tBand->RasterIO(GF_Write, 0, 0, cols, rows,
+                                          poRasterData, cols, rows,
+                                          GDT_Float32, 0, 0, 0);
+#endif
+        }
+
+        GDALClose((GDALDatasetH) mpDstDS);
+
+        delete [] poRasterData;
+    }
+}
+
+} // namespace pdal
diff --git a/filters/smrf/SMRFilter.hpp b/filters/smrf/SMRFilter.hpp
new file mode 100644
index 0000000..a60c3da
--- /dev/null
+++ b/filters/smrf/SMRFilter.hpp
@@ -0,0 +1,122 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#pragma once
+
+#include <pdal/Filter.hpp>
+#include <pdal/plugin.hpp>
+
+#include <Eigen/Dense>
+
+#include <memory>
+#include <unordered_map>
+
+extern "C" int32_t SMRFilter_ExitFunc();
+extern "C" PF_ExitFunc SMRFilter_InitPlugin();
+
+namespace pdal
+{
+
+using namespace Eigen;
+
+class PointLayout;
+class PointView;
+
+class PDAL_DLL SMRFilter : public Filter
+{
+public:
+    SMRFilter() : Filter()
+    {}
+
+    static void * create();
+    static int32_t destroy(void *);
+    std::string getName() const;
+
+private:
+    bool m_classify;
+    bool m_extract;
+    int m_numRows;
+    int m_numCols;
+    int m_maxRow;
+    double m_cellSize;
+    double m_cutNet;
+    double m_percentSlope;
+    double m_maxWindow;
+    double m_threshold;
+    BOX2D m_bounds;
+
+    virtual void addArgs(ProgramArgs& args);
+    virtual void addDimensions(PointLayoutPtr layout);
+
+    // clamp is used to help ensure that row and column indices remain
+    // within valid bounds.
+    int clamp(int t, int min, int max);
+
+    // getColIndex gets the corresponding column index for a given x.
+    int getColIndex(double x, double cell_size);
+
+    // getRowIndex gets the corresponding row index for a given y.
+    int getRowIndex(double y, double cell_size);
+
+    // matrixOpen applies a morphological opening with the given radius.
+    MatrixXd matrixOpen(MatrixXd data, int radius);
+
+    MatrixXd inpaintKnn(MatrixXd cx, MatrixXd cy, MatrixXd cz);
+
+    // padMatrx pads the matrix symmetrically with given radius.
+    MatrixXd padMatrix(MatrixXd data, int radius);
+
+    // processGround implements the SMRF algorithm, returning a vector
+    // of ground indices.
+    std::vector<PointId> processGround(PointViewPtr view);
+
+    // progressiveFilter is the core of the SMRF algorithm.
+    MatrixXi progressiveFilter(MatrixXd const& ZImin, double cell_size,
+                               double slope, double max_window);
+
+    virtual PointViewSet run(PointViewPtr view);
+
+    // TPS returns an interpolated matrix using thin plate splines.
+    MatrixXd TPS(MatrixXd cx, MatrixXd cy, MatrixXd cz);
+    MatrixXd expandingTPS(MatrixXd cx, MatrixXd cy, MatrixXd cz);
+
+    // writeMatrix writes out Eigen matrices to GeoTIFFs for debugging.
+    void writeMatrix(MatrixXd data, std::string filename,
+                     double cell_size, PointViewPtr view);
+
+    SMRFilter& operator=(const SMRFilter&); // not implemented
+    SMRFilter(const SMRFilter&); // not implemented
+};
+
+} // namespace pdal
diff --git a/filters/sort/SortFilter.hpp b/filters/sort/SortFilter.hpp
index f9ca4e3..6893faa 100644
--- a/filters/sort/SortFilter.hpp
+++ b/filters/sort/SortFilter.hpp
@@ -37,6 +37,7 @@
 #include <pdal/Filter.hpp>
 #include <pdal/PointViewIter.hpp>
 #include <pdal/plugin.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 extern "C" int32_t SortFilter_ExitFunc();
 extern "C" PF_ExitFunc SortFilter_InitPlugin();
@@ -56,12 +57,15 @@ public:
 
 private:
     // Dimension on which to sort.
-    Dimension::Id::Enum m_dim;
+    Dimension::Id m_dim;
     // Dimension name.
     std::string m_dimName;
 
-    virtual void processOptions(const Options& options)
-        { m_dimName = options.getValueOrThrow<std::string>("dimension"); }
+    virtual void addArgs(ProgramArgs& args)
+    {
+        args.add("dimension", "Dimension on which to sort", m_dimName).
+            setPositional();
+    }
 
     virtual void ready(PointTableRef table)
         { m_dim = table.layout()->findDim(m_dimName); }
@@ -77,8 +81,8 @@ private:
         std::sort(view.begin(), view.end(), cmp);
     }
 
-    SortFilter& operator=(const SortFilter&); // not implemented
-    SortFilter(const SortFilter&); // not implemented
+    SortFilter& operator=(const SortFilter&) = delete;
+    SortFilter(const SortFilter&) = delete;
 };
 
 } // namespace pdal
diff --git a/filters/splitter/SplitterFilter.cpp b/filters/splitter/SplitterFilter.cpp
index 2929b4a..a174a2c 100644
--- a/filters/splitter/SplitterFilter.cpp
+++ b/filters/splitter/SplitterFilter.cpp
@@ -34,12 +34,13 @@
 
 #include "SplitterFilter.hpp"
 
-#include <pdal/pdal_macros.hpp>
-
 #include <cmath>
 #include <iostream>
 #include <limits>
 
+#include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
+
 namespace pdal
 {
 
@@ -52,26 +53,16 @@ CREATE_STATIC_PLUGIN(1, 0, SplitterFilter, Filter, s_info)
 
 std::string SplitterFilter::getName() const { return s_info.name; }
 
-void SplitterFilter::processOptions(const Options& options)
+void SplitterFilter::addArgs(ProgramArgs& args)
 {
-    m_length = options.getValueOrDefault<double>("length", 1000.0);
-    m_xOrigin = options.getValueOrDefault<double>("origin_x",
+    args.add("length", "Edge length of cell", m_length, 1000.0);
+    args.add("origin_x", "X origin for a cell", m_xOrigin,
         std::numeric_limits<double>::quiet_NaN());
-    m_yOrigin = options.getValueOrDefault<double>("origin_y",
+    args.add("origin_y", "Y origin for a cell", m_yOrigin,
         std::numeric_limits<double>::quiet_NaN());
 }
 
 
-Options SplitterFilter::getDefaultOptions()
-{
-    Options options;
-    Option length("length", 1000.0, "Splitter length");
-    options.add(length);
-
-    return options;
-}
-
-
 //This used to be a lambda, but the VS compiler exploded, I guess.
 typedef std::pair<int, int> Coord;
 namespace
diff --git a/filters/splitter/SplitterFilter.hpp b/filters/splitter/SplitterFilter.hpp
index e9a29a7..7926dd6 100644
--- a/filters/splitter/SplitterFilter.hpp
+++ b/filters/splitter/SplitterFilter.hpp
@@ -53,14 +53,12 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
     double m_length;
     double m_xOrigin;
     double m_yOrigin;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual PointViewSet run(PointViewPtr view);
 
     SplitterFilter& operator=(const SplitterFilter&); // not implemented
diff --git a/filters/stats/StatsFilter.cpp b/filters/stats/StatsFilter.cpp
index 30e3399..f05279f 100644
--- a/filters/stats/StatsFilter.cpp
+++ b/filters/stats/StatsFilter.cpp
@@ -34,6 +34,7 @@
 
 #include "StatsFilter.hpp"
 
+#include <cmath>
 #include <unordered_map>
 
 #include <pdal/pdal_export.hpp>
@@ -41,6 +42,7 @@
 #include <pdal/Polygon.hpp>
 #include <pdal/PDALUtils.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -64,6 +66,22 @@ void Summary::extractMetadata(MetadataNode &m) const
     m.add("minimum", minimum(), "minimum");
     m.add("maximum", maximum(), "maximum");
     m.add("average", average(), "average");
+
+    double std = stddev();
+    if (!std::isinf(std) && !std::isnan(std))
+        m.add("stddev", std, "standard deviation");
+
+    double k = kurtosis();
+    if (!std::isinf(k) && !std::isnan(k))
+        m.add("kurtosis", k, "kurtosis");
+
+    double sk = skewness();
+    if (!std::isinf(sk) && !std::isnan(sk))
+        m.add("skewness", skewness(), "skewness");
+
+    double v = variance();
+    if (!std::isinf(v) && !std::isnan(v))
+        m.add("variance", v, "variance");
     m.add("name", m_name, "name");
     if (m_enumerate == Enumerate)
         for (auto& v : m_values)
@@ -85,7 +103,7 @@ bool StatsFilter::processOne(PointRef& point)
 {
     for (auto p = m_stats.begin(); p != m_stats.end(); ++p)
     {
-        Dimension::Id::Enum d = p->first;
+        Dimension::Id d = p->first;
         Summary& c = p->second;
         c.insert(point.getFieldAs<double>(d));
     }
@@ -110,11 +128,13 @@ void StatsFilter::done(PointTableRef table)
 }
 
 
-void StatsFilter::processOptions(const Options& options)
+void StatsFilter::addArgs(ProgramArgs& args)
 {
-    m_dimNames = options.getValueOrDefault<StringList>("dimensions");
-    m_enums = options.getValueOrDefault<StringList>("enumerate");
-    m_counts = options.getValueOrDefault<StringList>("count");
+    args.add("dimensions", "Dimensions on which to calculate statistics",
+        m_dimNames);
+    args.add("enumerate", "Dimensions whose values should be enumerated",
+        m_enums);
+    args.add("count", "Dimensions whose values should be counted", m_counts);
 }
 
 
@@ -173,10 +193,13 @@ void StatsFilter::extractMetadata(PointTableRef table)
 {
     uint32_t position(0);
 
+    bool bNoPoints(true);
     for (auto di = m_stats.begin(); di != m_stats.end(); ++di)
     {
         const Summary& s = di->second;
 
+        bNoPoints = (bool)s.count();
+
         MetadataNode t = m_metadata.addList("statistic");
         t.add("position", position++);
         s.extractMetadata(t);
@@ -188,7 +211,8 @@ void StatsFilter::extractMetadata(PointTableRef table)
     auto zs = m_stats.find(Dimension::Id::Z);
     if (xs != m_stats.end() &&
         ys != m_stats.end() &&
-        zs != m_stats.end())
+        zs != m_stats.end() &&
+        bNoPoints)
     {
         BOX3D box(xs->second.minimum(), ys->second.minimum(), zs->second.minimum(),
                   xs->second.maximum(), ys->second.maximum(), zs->second.maximum());
@@ -219,11 +243,11 @@ void StatsFilter::extractMetadata(PointTableRef table)
 }
 
 
-const Summary& StatsFilter::getStats(Dimension::Id::Enum dim) const
+const Summary& StatsFilter::getStats(Dimension::Id dim) const
 {
     for (auto di = m_stats.begin(); di != m_stats.end(); ++di)
     {
-        Dimension::Id::Enum d = di->first;
+        Dimension::Id d = di->first;
         if (d == dim)
             return di->second;
     }
diff --git a/filters/stats/StatsFilter.hpp b/filters/stats/StatsFilter.hpp
index f435113..b7ada25 100644
--- a/filters/stats/StatsFilter.hpp
+++ b/filters/stats/StatsFilter.hpp
@@ -68,6 +68,14 @@ public:
         { return m_max; }
     double average() const
         { return m_avg; }
+    double variance() const
+        { return M2/(m_cnt - 1.0); }
+    double stddev() const
+        { return std::sqrt(variance()); }
+    double skewness() const
+        { return std::sqrt(double(m_cnt)) * M3 / std::pow(M2, 1.5); }
+    double kurtosis() const
+        { return double(m_cnt)*M4 / (M2*M2) - 3.0; }
     point_count_t count() const
         { return m_cnt; }
     std::string name() const
@@ -83,16 +91,35 @@ public:
         m_min = (std::numeric_limits<double>::max)();
         m_cnt = 0;
         m_avg = 0.0;
+        M1 = M2 = M3 = M4 = 0.0;
     }
 
     void insert(double value)
     {
+        double delta, delta_n, delta_n2, term1;
+
+        point_count_t n1(m_cnt);
+
         m_cnt++;
+        point_count_t n(m_cnt);
         m_min = (std::min)(m_min, value);
         m_max = (std::max)(m_max, value);
         m_avg += (value - m_avg) / m_cnt;
         if (m_enumerate != NoEnum)
             m_values[value]++;
+
+        // stolen from http://www.johndcook.com/blog/skewness_kurtosis/
+
+        n1 = n;
+        delta = value - M1;
+        delta_n = delta / n;
+        delta_n2 = delta_n * delta_n;
+        term1 = delta * delta_n * n1;
+        M1 += delta_n;
+        M4 += term1 * delta_n2 * (n*n - 3*n + 3) +
+            (6 * delta_n2 * M2) - (4 * delta_n * M3);
+        M3 += term1 * delta_n * (n - 2) - 3 * delta_n * M2;
+        M2 += term1;
     }
 
 private:
@@ -103,6 +130,7 @@ private:
     double m_avg;
     EnumMap m_values;
     point_count_t m_cnt;
+    double M1, M2, M3, M4;
 };
 
 } // namespace stats
@@ -119,13 +147,13 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    const stats::Summary& getStats(Dimension::Id::Enum d) const;
+    const stats::Summary& getStats(Dimension::Id d) const;
     void reset();
 
 private:
     StatsFilter& operator=(const StatsFilter&); // not implemented
     StatsFilter(const StatsFilter&); // not implemented
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual bool processOne(PointRef& point);
     virtual void prepared(PointTableRef table);
     virtual void done(PointTableRef table);
@@ -135,7 +163,7 @@ private:
     StringList m_dimNames;
     StringList m_enums;
     StringList m_counts;
-    std::map<Dimension::Id::Enum, stats::Summary> m_stats;
+    std::map<Dimension::Id, stats::Summary> m_stats;
 };
 
 } // namespace pdal
diff --git a/filters/transformation/TransformationFilter.cpp b/filters/transformation/TransformationFilter.cpp
index 3532d70..7ff369b 100644
--- a/filters/transformation/TransformationFilter.cpp
+++ b/filters/transformation/TransformationFilter.cpp
@@ -85,9 +85,15 @@ TransformationMatrix transformationMatrixFromString(const std::string& s)
 }
 
 
-void TransformationFilter::processOptions(const Options& options)
+void TransformationFilter::addArgs(ProgramArgs& args)
 {
-    m_matrix = transformationMatrixFromString(options.getValueOrThrow<std::string>("matrix"));
+    args.add("matrix", "Transformation matrix", m_matrixSpec).setPositional();
+}
+
+
+void TransformationFilter::initialize()
+{
+    m_matrix = transformationMatrixFromString(m_matrixSpec);
 }
 
 
diff --git a/filters/transformation/TransformationFilter.hpp b/filters/transformation/TransformationFilter.hpp
index b0614ad..70bf233 100644
--- a/filters/transformation/TransformationFilter.hpp
+++ b/filters/transformation/TransformationFilter.hpp
@@ -40,6 +40,7 @@
 #include <pdal/Filter.hpp>
 #include <pdal/pdal_export.hpp>
 #include <pdal/plugin.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 extern "C" int32_t TransformationFilter_ExitFunc();
 extern "C" PF_ExitFunc TransformationFilter_InitPlugin();
@@ -47,7 +48,6 @@ extern "C" PF_ExitFunc TransformationFilter_InitPlugin();
 namespace pdal
 {
 
-
 // Transformation matrices are assumed to be stored in row-major order
 typedef std::array<double, 16> TransformationMatrix;
 
@@ -68,10 +68,13 @@ public:
 private:
     TransformationFilter& operator=(const TransformationFilter&); // not implemented
     TransformationFilter(const TransformationFilter&); // not implemented
-    virtual void processOptions(const Options& options);
+
+    virtual void addArgs(ProgramArgs& args);
+    virtual void initialize();
     virtual bool processOne(PointRef& point);
     virtual void filter(PointView& view);
 
+    std::string m_matrixSpec;
     TransformationMatrix m_matrix;
 };
 
diff --git a/include/pdal/Compression.hpp b/include/pdal/Compression.hpp
index 720d732..9309f5e 100644
--- a/include/pdal/Compression.hpp
+++ b/include/pdal/Compression.hpp
@@ -48,6 +48,7 @@
 #endif
 
 #include <pdal/Dimension.hpp>
+#include <pdal/DimType.hpp>
 #include <pdal/util/OStream.hpp>
 
 #include <map>
@@ -108,10 +109,7 @@ size_t addFields(LasZipEngine& engine, const DimTypeList& dims)
 } // anonymous namespace
 
 
-namespace CompressionType
-{
-
-enum Enum
+enum class CompressionType
 {
     None = 0,
     Ght = 1,
@@ -120,9 +118,6 @@ enum Enum
     Unknown = 256
 };
 
-} // namespace CompressionType
-
-
 // This is a utility input/output buffer for the compressor/decompressor.
 template <typename CTYPE = unsigned char>
 class TypedLazPerfBuf
@@ -234,7 +229,7 @@ public:
         // First time through.
         if (!m_encoder || !m_compressor)
         {
-            // Get the position 
+            // Get the position
             m_chunkInfoPos = m_stream.tellp();
             // Seek over the chunk info offset value
             m_stream.seekp(sizeof(uint64_t), std::ios::cur);
diff --git a/include/pdal/DbReader.hpp b/include/pdal/DbReader.hpp
index 95d8680..9ed6db5 100644
--- a/include/pdal/DbReader.hpp
+++ b/include/pdal/DbReader.hpp
@@ -54,14 +54,14 @@ protected:
     void writePoint(PointView& view, PointId idx, const char *buf);
     size_t packedPointSize() const
         { return m_packedPointSize; }
-    size_t dimOffset(Dimension::Id::Enum id) const;
-    Orientation::Enum orientation() const
+    size_t dimOffset(Dimension::Id id) const;
+    Orientation orientation() const
         { return m_orientation; }
 
 private:
     PointLayoutPtr m_layout;
     XMLDimList m_dims;
-    Orientation::Enum m_orientation;
+    Orientation m_orientation;
     size_t m_packedPointSize;
 
     DbReader& operator=(const DbReader&); // not implemented
diff --git a/include/pdal/DbWriter.hpp b/include/pdal/DbWriter.hpp
index 7c445ad..1ad0b45 100644
--- a/include/pdal/DbWriter.hpp
+++ b/include/pdal/DbWriter.hpp
@@ -33,6 +33,7 @@
 
 #pragma once
 
+#include <pdal/Scaling.hpp>
 #include <pdal/Writer.hpp>
 #include <pdal/XMLSchema.hpp>
 
@@ -55,7 +56,7 @@ protected:
     virtual void setAutoXForm(const PointViewPtr view);
     XMLDimList dbDimTypes() const
         { return m_dbDims; }
-    size_t readField(const PointView& view, char *pos, Dimension::Id::Enum id,
+    size_t readField(const PointView& view, char *pos, Dimension::Id id,
         PointId idx);
     size_t readPoint(const PointView& view, PointId idx, char *outbuf);
     size_t packedPointSize() const
@@ -64,22 +65,25 @@ protected:
     // Allows subclass access to ready() without the mess of friends.
     void doReady(PointTableRef table)
         { DbWriter::ready(table); }
+    void doAddArgs(ProgramArgs& args)
+        { DbWriter::addArgs(args); }
 
 private:
+    void addArgs(ProgramArgs& args);
     virtual void prepared(PointTableRef table);
     virtual void ready(PointTableRef table);
 
     DimTypeList m_dimTypes;
     XMLDimList m_dbDims;
     std::unordered_map<int, DimType> m_dimMap;
+    Scaling m_scaling;
     std::pair<int, int> m_xOffsets;
     std::pair<int, int> m_yOffsets;
     std::pair<int, int> m_zOffsets;
 
-    // Size of point data as read from PointTable.
-    size_t m_packedPointSize;
-    // Size of point data as written to DB.
-    size_t m_dbPointSize;
+    StringList m_outputDims; ///< List of dimensions to write
+    size_t m_packedPointSize; ///< Size of point data as read from PointTable.
+    size_t m_dbPointSize; ///< Size of point data as written to DB
     bool m_locationScaling;
 
     DbWriter& operator=(const DbWriter&); // not implemented
diff --git a/include/pdal/DimDetail.hpp b/include/pdal/DimDetail.hpp
new file mode 100644
index 0000000..bf5240e
--- /dev/null
+++ b/include/pdal/DimDetail.hpp
@@ -0,0 +1,83 @@
+/******************************************************************************
+ * Copyright (c) 2016, Hobu Inc.
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following
+ * conditions are met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in
+ *       the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of the Martin Isenburg or Iowa Department
+ *       of Natural Resources nor the names of its contributors may be
+ *       used to endorse or promote products derived from this software
+ *       without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ ****************************************************************************/
+
+#pragma once
+
+#include <pdal/Dimension.hpp>
+
+namespace pdal
+{
+namespace Dimension
+{
+
+class Detail
+{
+public:
+    Detail() : m_id(Id::Unknown), m_offset(-1), m_type(Type::None)
+    {}
+    //NOTE - This is strange, but for some reason things run faster with
+    // this NOOP virtual dtor.  Perhaps it has something to do with
+    // an inlining optimization or perhaps alignment (though a void * doesn't
+    // cause the same performance improvement) It may help on no machine
+    // except mine, but it doesn't hurt anything, either.
+    virtual ~Detail()
+    {}
+
+    void setOffset(int offset)
+        { m_offset = offset; }
+    void setType(Type type)
+        { m_type = type; }
+    void setId(Id id)
+        { m_id = id; }
+    Id id() const
+        { return m_id; }
+    int offset() const
+        { return m_offset; }
+    Type type() const
+        { return m_type; }
+    size_t size() const
+        { return Dimension::size(m_type); }
+    BaseType base() const
+        { return Dimension::base(m_type); }
+
+private:
+    Id m_id;
+    int m_offset;
+    Type m_type;
+};
+typedef std::vector<Detail> DetailList;
+
+} // namespace Dimension
+} // namespace pdal
+
diff --git a/include/pdal/DimType.hpp b/include/pdal/DimType.hpp
new file mode 100644
index 0000000..4bcb26d
--- /dev/null
+++ b/include/pdal/DimType.hpp
@@ -0,0 +1,62 @@
+/******************************************************************************
+ * Copyright (c) 2016, Hobu Inc.
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following
+ * conditions are met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in
+ *       the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of the Martin Isenburg or Iowa Department
+ *       of Natural Resources nor the names of its contributors may be
+ *       used to endorse or promote products derived from this software
+ *       without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ ****************************************************************************/
+
+#pragma once
+
+#include <pdal/Dimension.hpp>
+#include <pdal/pdal_types.hpp>
+
+namespace pdal
+{
+
+struct DimType
+{
+    DimType() : m_id(Dimension::Id::Unknown), m_type(Dimension::Type::None)
+    {}
+    DimType(Dimension::Id id, Dimension::Type type,
+        double scale = 1.0, double offset = 0.0) :
+        m_id(id), m_type(type), m_xform(scale, offset)
+    {}
+    DimType(Dimension::Id id, Dimension::Type type, XForm xform) :
+        m_id(id), m_type(type), m_xform(xform)
+    {}
+
+    Dimension::Id m_id;
+    Dimension::Type m_type;
+    XForm m_xform;  // A convenience for some formats.
+};
+typedef std::vector<DimType> DimTypeList;
+
+} // namespace pdal
+
diff --git a/include/pdal/DimUtil.hpp b/include/pdal/DimUtil.hpp
new file mode 100644
index 0000000..fe5fcb6
--- /dev/null
+++ b/include/pdal/DimUtil.hpp
@@ -0,0 +1,192 @@
+/******************************************************************************
+ * Copyright (c) 2016, Hobu Inc.
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following
+ * conditions are met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in
+ *       the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of the Martin Isenburg or Iowa Department
+ *       of Natural Resources nor the names of its contributors may be
+ *       used to endorse or promote products derived from this software
+ *       without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ ****************************************************************************/
+
+#pragma once
+
+#include <string>
+#include <vector>
+
+#include <pdal/util/Utils.hpp>
+
+namespace pdal
+{
+namespace Dimension
+{
+
+enum class BaseType
+{
+    None = 0x000,
+    Signed = 0x100,
+    Unsigned = 0x200,
+    Floating = 0x400
+};
+
+inline BaseType fromName(std::string name)
+{
+    if (name == "signed")
+        return BaseType::Signed;
+    else if (name == "unsigned")
+        return BaseType::Unsigned;
+    else if (name == "floating")
+        return BaseType::Floating;
+    return BaseType::None;
+}
+
+inline std::string toName(BaseType b)
+{
+    switch (b)
+    {
+    case BaseType::Signed:
+        return "signed";
+    case BaseType::Unsigned:
+        return "unsigned";
+    case BaseType::Floating:
+        return "floating";
+    default:
+        return "";
+    }
+}
+
+enum class Type
+{
+    None = 0,
+    Unsigned8 = Utils::toNative(BaseType::Unsigned) | 1,
+    Signed8 = Utils::toNative(BaseType::Signed) | 1,
+    Unsigned16 = Utils::toNative(BaseType::Unsigned) | 2,
+    Signed16 = Utils::toNative(BaseType::Signed) | 2,
+    Unsigned32 = Utils::toNative(BaseType::Unsigned) | 4,
+    Signed32 = Utils::toNative(BaseType::Signed) | 4,
+    Unsigned64 = Utils::toNative(BaseType::Unsigned )| 8,
+    Signed64 = Utils::toNative(BaseType::Signed) | 8,
+    Float = Utils::toNative(BaseType::Floating) | 4,
+    Double = Utils::toNative(BaseType::Floating) | 8
+};
+
+inline std::size_t size(Type t)
+{
+    return Utils::toNative(t) & 0xFF;
+}
+
+inline BaseType base(Type t)
+{
+    return BaseType(Utils::toNative(t) & 0xFF00);
+}
+
+static const int COUNT = std::numeric_limits<uint16_t>::max();
+static const int PROPRIETARY = 0xFF00;
+
+/// Get a string reresentation of a datatype.
+/// \param[in] dimtype  Dimension type.
+/// \return  String representation of dimension type.
+inline std::string interpretationName(Type dimtype)
+{
+    switch (dimtype)
+    {
+    case Type::None:
+        return "unknown";
+    case Type::Signed8:
+        return "int8_t";
+    case Type::Signed16:
+        return "int16_t";
+    case Type::Signed32:
+        return "int32_t";
+    case Type::Signed64:
+        return "int64_t";
+    case Type::Unsigned8:
+        return "uint8_t";
+    case Type::Unsigned16:
+        return "uint16_t";
+    case Type::Unsigned32:
+        return "uint32_t";
+    case Type::Unsigned64:
+        return "uint64_t";
+    case Type::Float:
+        return "float";
+    case Type::Double:
+        return "double";
+    }
+    return "unknown";
+}
+
+
+/// Get the type corresponding to a type name.
+/// \param s  Name of type.
+/// \return  Corresponding type enumeration value.
+inline Type type(std::string s)
+{
+    s = Utils::tolower(s);
+
+    if (s == "int8_t" || s == "int8")
+       return Type::Signed8;
+    if (s == "int16_t" || s == "int16")
+       return Type::Signed16;
+    if (s == "int32_t" || s == "int32")
+       return Type::Signed32;
+    if (s == "int64_t" || s == "int64")
+       return Type::Signed64;
+    if (s == "uint8_t" || s == "uint8")
+        return Type::Unsigned8;
+    if (s == "uint16_t" || s == "uint16")
+        return Type::Unsigned16;
+    if (s == "uint32_t" || s == "uint32")
+        return Type::Unsigned32;
+    if (s == "uint64_t" || s == "uint64")
+        return Type::Unsigned64;
+    if (s == "float")
+        return Type::Float;
+    if (s == "double")
+        return Type::Double;
+    return Type::None;
+}
+
+
+/// Extract a dimension name of a string.  Dimension names start with an alpha
+/// and continue with numbers or underscores.
+/// \param s  String from which to extract dimension name.
+/// \param p  Position at which to start extracting.
+/// \return  Number of characters in the extracted name.
+inline std::size_t extractName(const std::string& s, std::string::size_type p)
+{
+    if (!std::isalpha(s[p++]))
+        return 0;
+    auto isvalid = [](int c)
+    {
+        return std::isalpha(c) || std::isdigit(c) || c == '_';
+    };
+    return Utils::extract(s, p, isvalid) + 1;
+}
+
+} // namespace Dimension
+} // namespace pdal
+
diff --git a/include/pdal/Dimension.hpp b/include/pdal/Dimension.hpp
deleted file mode 100644
index b98225a..0000000
--- a/include/pdal/Dimension.hpp
+++ /dev/null
@@ -1,931 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2014, Hobu Inc.
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following
- * conditions are met:
- *
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in
- *       the documentation and/or other materials provided
- *       with the distribution.
- *     * Neither the name of the Martin Isenburg or Iowa Department
- *       of Natural Resources nor the names of its contributors may be
- *       used to endorse or promote products derived from this software
- *       without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- ****************************************************************************/
-
-#pragma once
-
-#include <sstream>
-#include <string>
-#include <vector>
-
-#include <pdal/pdal_internal.hpp>
-#include <pdal/util/Utils.hpp>
-
-//NOTE: How to add a predefined dimension.
-//
-// A dimension is easily added to PDAL by doing the following:
-// 1) Add an entry to the enumeration pdal::Dimension::Id::Enum with an
-//   appropriate name.
-// 2) Add an appropriate entry to the switch statement in the function
-//   pdal::Dimension::name() to supply the string name of the dimension.
-// 3) Add an appropriate entry to the switch statement in the function
-//   pdal::Dimension::id() to return the dimension ID given a matching
-//   name.  Make sure that names don't map to more than one dimension.
-// 4) Add an appropriate entry to the switch statement in the function
-//   pdal::Dimension::description() to return a description of the dimension.
-// 5) Add an appropriate entry to the switch statement in the function
-//   pdal::Dimension::defaultType() to return a type sufficiently
-//   large to hold values of the dimension for all relevant formats.
-
-//This should be generated from another format - JSON?
-namespace pdal
-{
-namespace Dimension
-{
-
-namespace BaseType
-{
-enum Enum
-{
-    Signed = 0x100,
-    Unsigned = 0x200,
-    Floating = 0x400
-};
-}
-
-inline BaseType::Enum fromName(std::string name)
-{
-    if (name == "signed")
-        return BaseType::Signed;
-    else if (name == "unsigned")
-        return BaseType::Unsigned;
-    else if (name == "floating")
-        return BaseType::Floating;
-    else
-        throw pdal_error("Invalid BaseType name");
-}
-
-inline std::string toName(BaseType::Enum b)
-{
-    switch (b)
-    {
-    case BaseType::Signed:
-        return "signed";
-    case BaseType::Unsigned:
-        return "unsigned";
-    case BaseType::Floating:
-        return "floating";
-    default:
-        return "";
-    }
-}
-
-namespace Type
-{
-enum Enum
-{
-    None = 0,
-    Unsigned8 = BaseType::Unsigned | 1,
-    Signed8 = BaseType::Signed | 1,
-    Unsigned16 = BaseType::Unsigned | 2,
-    Signed16 = BaseType::Signed | 2,
-    Unsigned32 = BaseType::Unsigned | 4,
-    Signed32 = BaseType::Signed | 4,
-    Unsigned64 = BaseType::Unsigned | 8,
-    Signed64 = BaseType::Signed | 8,
-    Float = BaseType::Floating | 4,
-    Double = BaseType::Floating | 8
-};
-}
-
-inline size_t size(Type::Enum t)
-{
-    return t & 0xFF;
-}
-
-inline BaseType::Enum base(Type::Enum t)
-{
-    return BaseType::Enum(t & 0xFF00);
-}
-
-namespace Id
-{
-enum Enum
-{
-    Unknown,
-    X,
-    Y,
-    Z,
-    Intensity,
-    Amplitude,
-    Reflectance,
-    ReturnNumber,
-    NumberOfReturns,
-    ScanDirectionFlag,
-    EdgeOfFlightLine,
-    Classification,
-    ScanAngleRank,
-    UserData,
-    PointSourceId,
-    Red,
-    Green,
-    Blue,
-    GpsTime,
-    InternalTime,
-    OffsetTime,
-    IsPpsLocked,
-    StartPulse,
-    ReflectedPulse,
-    Pdop,
-    Pitch,
-    Roll,
-    PulseWidth,
-    Deviation,
-    PassiveSignal,
-    BackgroundRadiation,
-    PassiveX,
-    PassiveY,
-    PassiveZ,
-    XVelocity,
-    YVelocity,
-    ZVelocity,
-    PlatformHeading,
-    WanderAngle,
-    XBodyAccel,
-    YBodyAccel,
-    ZBodyAccel,
-    XBodyAngRate,
-    YBodyAngRate,
-    ZBodyAngRate,
-    Flag,
-    Mark,
-    Alpha,
-    EchoRange,
-    ScanChannel,
-    Infrared,
-    HeightAboveGround,
-    ClassFlags,
-    LvisLfid,
-    ShotNumber,
-    LongitudeCentroid,
-    LatitudeCentroid,
-    ElevationCentroid,
-    LongitudeLow,
-    LatitudeLow,
-    ElevationLow,
-    LongitudeHigh,
-    LatitudeHigh,
-    ElevationHigh
-};
-} // namespace Id
-typedef std::vector<Id::Enum> IdList;
-
-static const int COUNT = std::numeric_limits<uint16_t>::max();
-static const int PROPRIETARY = 0xFF00;
-
-/// Get a description of a predefined dimension.
-/// \param[in] id  Dimension ID.
-/// \return  Dimension description.
-inline std::string description(Id::Enum id)
-{
-    switch (id)
-    {
-    case Id::X:
-        return "X coordinate";
-    case Id::Y:
-        return "Y coordinate";
-    case Id::Z:
-        return "Z coordinate";
-    case Id::Intensity:
-        return "Representation of the pulse return magnitude";
-    case Id::Amplitude:
-        return "This is the ratio of the received power to the "
-            "power received at the detection limit expressed in dB";
-    case Id::Reflectance:
-        return "This is the ratio of the received power to the "
-            "power that would be received from a white diffuse target "
-            "at the same distance expressed in dB. The reflectance "
-            "represents a range independent property of the target. "
-            "The surface normal of this target is assumed to be in "
-            "parallel to the laser beam direction.";
-    case Id::ReturnNumber:
-        return "Pulse return number for a given output pulse. A given output "
-            "laser pulse can have many returns, and they must be marked in "
-            "order, starting with 1";
-    case Id::NumberOfReturns:
-        return "Total number of returns for a given pulse.";
-    case Id::ScanDirectionFlag:
-        return "Direction at which the scanner mirror was traveling at the "
-            "time of the output pulse. A value of 1 is a positive scan "
-            "direction, and a bit value of 0 is a negative scan direction, "
-            "where positive scan direction is a scan moving from the left "
-            "side of the in-track direction to the right side and negative "
-            "the opposite";
-    case Id::EdgeOfFlightLine:
-        return "Indicates the end of scanline before a direction change "
-            "with a value of 1 - 0 otherwise";
-    case Id::Classification:
-        return "ASPRS classification.  0 for no classification.  See "
-            "LAS specification for details";
-    case Id::ScanAngleRank:
-        return "Angle degree at which the laster point was output from "
-            "the system, including the roll of the aircraft.  The scan "
-            "angle is based on being nadir, and -90 the left side of the "
-            "aircraft in the direction of flight";
-    case Id::UserData:
-        return "Unspecified user data";
-    case Id::PointSourceId:
-        return "File source ID from which the point originated.  Zero "
-            "indicates that the point originated in the current file";
-    case Id::GpsTime:
-        return "GPS time that the point was acquired";
-    case Id::InternalTime:
-        return "Scanner's internal time when the point was acquired, in seconds";
-    case Id::OffsetTime:
-        return "Milliseconds from first acquired point";
-    case Id::IsPpsLocked:
-        return "The external PPS signal was found to be synchronized at the "
-            "time of the current laser shot.";
-    case Id::Red:
-        return "Red image channel value";
-    case Id::Green:
-        return "Green image channel value";
-    case Id::Blue:
-        return "Blue image channel value";
-    case Id::Alpha:
-        return "Alpha image channel value";
-    case Id::StartPulse:
-        return "Relative pulse signal strength";
-    case Id::ReflectedPulse:
-        return "Relative reflected pulse signal strength";
-    case Id::Pitch:
-        return "Pitch in degrees";
-    case Id::Roll:
-        return "Roll in degrees";
-    case Id::Pdop:
-        return "GPS PDOP (dilution of precision)";
-    case Id::PulseWidth:
-        return "Laser received pulse width (digitizer samples)";
-    case Id::Deviation:
-        return "A larger value for deviation indicates larger distortion.";
-    case Id::PassiveSignal:
-        return "Relative passive signal";
-    case Id::BackgroundRadiation:
-        return "A measure of background radiation.";
-    case Id::PassiveX:
-        return "Passive X footprint";
-    case Id::PassiveY:
-        return "Passive Y footprint";
-    case Id::PassiveZ:
-        return "Passive Z footprint";
-    case Id::XVelocity:
-        return "X Velocity";
-    case Id::YVelocity:
-        return "Y Velocity";
-    case Id::ZVelocity:
-        return "Z Velocity";
-    case Id::PlatformHeading:
-        return "Platform Heading";
-    case Id::WanderAngle:
-        return "Wander Angle";
-    case Id::XBodyAccel:
-        return "X Body Acceleration";
-    case Id::YBodyAccel:
-        return "Y Body Acceleration";
-    case Id::ZBodyAccel:
-        return "Z Body Acceleration";
-    case Id::XBodyAngRate:
-        return "X Body Angle Rate";
-    case Id::YBodyAngRate:
-        return "Y Body Angle Rate";
-    case Id::ZBodyAngRate:
-        return "Z Body Angle Rate";
-    case Id::Mark:
-        return "Mark";
-    case Id::Flag:
-        return "Flag";
-    case Id::EchoRange:
-        return "The distance from the laser origin to the target.";
-    case Id::ScanChannel:
-        return "Scan Channel";
-    case Id::Infrared:
-        return "Near Infrared";
-    case Id::HeightAboveGround:
-        return "Height above ground";
-    case Id::ClassFlags:
-        return "Classification Flags";
-    case Id::LvisLfid:
-        return "LVIS file ID, includes date and time of collection and "
-            "file number.  The second through sixth values represent "
-            "modified Julian date of collection.";
-    case Id::ShotNumber:
-        return "Laser shot assigned during collection.";
-    case Id::LongitudeCentroid:
-        return "Refers to the centroid longitude of the corresponding "
-            "LVIS Level-1B waveform.";
-    case Id::LatitudeCentroid:
-        return "Refers to the centroid latitude of the corresponding "
-            "LVIS Level-1B waveform.";
-    case Id::ElevationCentroid:
-        return "Refers to the centroid elevation of the corresponding "
-            "LVIS Level-1B waveform.";
-    case Id::LongitudeLow:
-        return "Longitude of the lowest detected mode within the waveform.";
-    case Id::LatitudeLow:
-        return "Latitude of the lowest detected mode within the waveform.";
-    case Id::ElevationLow:
-        return "Mean Elevation of the lowest detected mode within the "
-            "waveform.";
-    case Id::LongitudeHigh:
-        return "Longitude of the highest detected mode within the waveform.";
-    case Id::LatitudeHigh:
-        return "Latitude of the highest detected mode within the waveform.";
-    case Id::ElevationHigh:
-        return "Mean Elevation of the highest detected mode within the "
-            "waveform.";
-    case Id::Unknown:
-        return "";
-    }
-    return "";
-}
-
-/// Get a predefined dimension ID given a dimension name.  Multiple names
-/// may map to the same dimension for convenience.  Names are case-insensitive.
-/// \param[in] s  Name of dimension.
-/// \return  Dimension ID associated with the name.  Id::Unknown is returned
-///    if the name doesn't map to a predefined dimension.
-inline Id::Enum id(std::string s)
-{
-    s = Utils::toupper(s);
-
-    if (s == "X")
-        return Id::X;
-    else if (s == "Y")
-        return Id::Y;
-    else if (s == "Z")
-        return Id::Z;
-    else if (s == "INTENSITY")
-        return Id::Intensity;
-    else if (s == "AMPLITUDE")
-        return Id::Amplitude;
-    else if (s == "REFLECTANCE")
-        return Id::Reflectance;
-    else if (s == "RETURNNUMBER")
-        return Id::ReturnNumber;
-    else if (s == "NUMBEROFRETURNS")
-        return Id::NumberOfReturns;
-    else if (s == "SCANDIRECTIONFLAG")
-        return Id::ScanDirectionFlag;
-    else if (s == "EDGEOFFLIGHTLINE")
-        return Id::EdgeOfFlightLine;
-    else if (s == "CLASSIFICATION")
-        return Id::Classification;
-    else if (s == "SCANANGLERANK" || s == "SCANANGLE")
-        return Id::ScanAngleRank;
-    else if (s == "USERDATA")
-        return Id::UserData;
-    else if (s == "POINTSOURCEID")
-        return Id::PointSourceId;
-    else if (s == "RED")
-        return Id::Red;
-    else if (s == "GREEN")
-        return Id::Green;
-    else if (s == "BLUE")
-        return Id::Blue;
-    else if (s == "ALPHA")
-        return Id::Alpha;
-    else if (s == "GPSTIME")
-        return Id::GpsTime;
-    else if (s == "INTERNALTIME")
-        return Id::InternalTime;
-    else if (s == "TIME" || s == "OFFSETTIME")
-        return Id::OffsetTime;
-    else if (s == "ISPPSLOCKED")
-        return Id::IsPpsLocked;
-    else if (s == "STARTPULSE")
-        return Id::StartPulse;
-    else if (s == "RELFECTEDPULSE")
-        return Id::ReflectedPulse;
-    else if (s == "PITCH")
-        return Id::Pitch;
-    else if (s == "ROLL")
-        return Id::Roll;
-    else if (s == "PDOP")
-        return Id::Pdop;
-    else if (s == "PULSEWIDTH")
-        return Id::PulseWidth;
-    else if (s == "DEVIATION")
-        return Id::Deviation;
-    else if (s == "PASSIVESIGNAL")
-        return Id::PassiveSignal;
-    else if (s == "BACKGROUNDRADIATION")
-        return Id::BackgroundRadiation;
-    else if (s == "PASSIVEX")
-        return Id::PassiveX;
-    else if (s == "PASSIVEY")
-        return Id::PassiveY;
-    else if (s == "PASSIVEZ")
-        return Id::PassiveZ;
-    else if (s == "XVELOCITY")
-        return Id::XVelocity;
-    else if (s == "YVELOCITY")
-        return Id::YVelocity;
-    else if (s == "ZVELOCITY")
-        return Id::ZVelocity;
-    else if (s == "PLATFORMHEADING")
-        return Id::PlatformHeading;
-    else if (s == "WANDERANGLE")
-        return Id::WanderAngle;
-    else if (s == "XBODYACCEL")
-        return Id::XBodyAccel;
-    else if (s == "YBODYACCEL")
-        return Id::YBodyAccel;
-    else if (s == "ZBODYACCEL")
-        return Id::ZBodyAccel;
-    else if (s == "XBODYANGRATE")
-        return Id::XBodyAngRate;
-    else if (s == "YBODYANGRATE")
-        return Id::YBodyAngRate;
-    else if (s == "ZBODYANGRATE")
-        return Id::ZBodyAngRate;
-    else if (s == "MARK")
-        return Id::Mark;
-    else if (s == "FLAG")
-        return Id::Flag;
-    else if (s == "ECHORANGE")
-        return Id::EchoRange;
-    else if (s == "SCANCHANNEL")
-        return Id::ScanChannel;
-    else if (s == "INFRARED" || s == "NEARINFRARED")
-        return Id::Infrared;
-    else if (s == "HEIGHTABOVEGROUND")
-        return Id::HeightAboveGround;
-    else if (s == "CLASSFLAGS")
-        return Id::ClassFlags;
-    else if (s == "LVIS_LFID" || s == "LVISLFID")
-        return Id::LvisLfid;
-    else if (s == "SHOTNUMBER")
-        return Id::ShotNumber;
-    else if (s == "LONGITUDE_CENTROID" || s == "LONGITUDECENTROID")
-        return Id::LongitudeCentroid;
-    else if (s == "LATITUDE_CENTROID" || s == "LATITUDECENTROID")
-        return Id::LatitudeCentroid;
-    else if (s == "ELEVATION_CENTROID" || s == "ELEVATIONCENTROID")
-        return Id::ElevationCentroid;
-    else if (s == "LONGITUDE_LOW" || s == "LONGITUDELOW")
-        return Id::LongitudeLow;
-    else if (s == "LATITUDE_LOW" || s == "LATITUDELOW")
-        return Id::LatitudeLow;
-    else if (s == "ELEVATION_LOW" || s == "ELEVATIONLOW")
-        return Id::ElevationLow;
-    else if (s == "LONGITUDE_HIGH" || s == "LONGITUDEHIGH")
-        return Id::LongitudeHigh;
-    else if (s == "LATITUDE_HIGH" || s == "LATITUDEHIGH")
-        return Id::LatitudeHigh;
-    else if (s == "ELEVATION_HIGH" || s == "ELEVATIONHIGH")
-        return Id::ElevationHigh;
-    return Id::Unknown;
-}
-
-/// Get the name of a predefined dimension.
-/// \param[in] id  Dimension ID
-/// \return  Dimension name.
-inline std::string name(Id::Enum id)
-{
-    switch (id)
-    {
-    case Id::X:
-        return "X";
-    case Id::Y:
-        return "Y";
-    case Id::Z:
-        return "Z";
-    case Id::Intensity:
-        return "Intensity";
-    case Id::Amplitude:
-        return "Amplitude";
-    case Id::Reflectance:
-        return "Reflectance";
-    case Id::ReturnNumber:
-        return "ReturnNumber";
-    case Id::NumberOfReturns:
-        return "NumberOfReturns";
-    case Id::ScanDirectionFlag:
-        return "ScanDirectionFlag";
-    case Id::EdgeOfFlightLine:
-        return "EdgeOfFlightLine";
-    case Id::Classification:
-        return "Classification";
-    case Id::ScanAngleRank:
-        return "ScanAngleRank";
-    case Id::UserData:
-        return "UserData";
-    case Id::PointSourceId:
-        return "PointSourceId";
-    case Id::Red:
-        return "Red";
-    case Id::Green:
-        return "Green";
-    case Id::Blue:
-        return "Blue";
-    case Id::Alpha:
-        return "Alpha";
-    case Id::GpsTime:
-        return "GpsTime";
-    case Id::InternalTime:
-        return "InternalTime";
-    case Id::OffsetTime:
-        return "OffsetTime";
-    case Id::IsPpsLocked:
-        return "IsPpsLocked";
-    case Id::StartPulse:
-        return "StartPulse";
-    case Id::ReflectedPulse:
-        return "ReflectedPulse";
-    case Id::Pitch:
-        return "Pitch";
-    case Id::Roll:
-        return "Roll";
-    case Id::Pdop:
-        return "Pdop";
-    case Id::PulseWidth:
-        return "PulseWidth";
-    case Id::Deviation:
-        return "Deviation";
-    case Id::PassiveSignal:
-        return "PassiveSignal";
-    case Id::BackgroundRadiation:
-        return "BackgroundRadiation";
-    case Id::PassiveX:
-        return "PassiveX";
-    case Id::PassiveY:
-        return "PassiveY";
-    case Id::PassiveZ:
-        return "PassiveZ";
-    case Id::XVelocity:
-        return "XVelocity";
-    case Id::YVelocity:
-        return "YVelocity";
-    case Id::ZVelocity:
-        return "ZVelocity";
-    case Id::PlatformHeading:
-        return "PlatformHeading";
-    case Id::WanderAngle:
-        return "WanderAngle";
-    case Id::XBodyAccel:
-        return "XBodyAccel";
-    case Id::YBodyAccel:
-        return "YBodyAccel";
-    case Id::ZBodyAccel:
-        return "ZBodyAccel";
-    case Id::XBodyAngRate:
-        return "XBodyAngRate";
-    case Id::YBodyAngRate:
-        return "YBodyAngRate";
-    case Id::ZBodyAngRate:
-        return "ZBodyAngRate";
-    case Id::Mark:
-        return "Mark";
-    case Id::Flag:
-        return "Flag";
-    case Id::EchoRange:
-        return "EchoRange";
-    case Id::ScanChannel:
-        return "ScanChannel";
-    case Id::Infrared:
-        return "Infrared";
-    case Id::HeightAboveGround:
-        return "HeightAboveGround";
-    case Id::ClassFlags:
-        return "ClassFlags";
-    case Id::LvisLfid:
-        return "LVIS_LFID";
-    case Id::ShotNumber:
-        return "SHOTNUMBER";
-    case Id::LongitudeCentroid:
-        return "LONGITUDE_CENTROID";
-    case Id::LatitudeCentroid:
-        return "LATITUDE_CENTROID";
-    case Id::ElevationCentroid:
-        return "ELEVATION_CENTROID";
-    case Id::LongitudeLow:
-        return "LONGITUDE_LOW";
-    case Id::LatitudeLow:
-        return "LATITUDE_LOW";
-    case Id::ElevationLow:
-        return "ELEVATION_LOW";
-    case Id::LongitudeHigh:
-        return "LONGITUDE_HIGH";
-    case Id::LatitudeHigh:
-        return "LATITUDE_HIGH";
-    case Id::ElevationHigh:
-        return "ELEVATION_HIGH";
-    case Id::Unknown:
-        return "";
-    }
-    return "";
-}
-
-
-/// Get the default storage type of a predefined dimension.
-/// \param[in] id  ID of the predefined dimension.
-/// \return  The dimension's default storage type.  An exception is thrown if
-///   the id doesn't represent a predefined dimension.
-inline Type::Enum defaultType(Id::Enum id)
-{
-    using namespace Type;
-
-    switch (id)
-    {
-    case Id::X:
-        return Double;
-    case Id::Y:
-        return Double;
-    case Id::Z:
-        return Double;
-    case Id::Intensity:
-        return Unsigned16;
-    case Id::Amplitude:
-        return Float;
-    case Id::Reflectance:
-        return Float;
-    case Id::ReturnNumber:
-        return Unsigned8;
-    case Id::NumberOfReturns:
-        return Unsigned8;
-    case Id::ScanDirectionFlag:
-        return Unsigned8;
-    case Id::EdgeOfFlightLine:
-        return Unsigned8;
-    case Id::Classification:
-        return Unsigned8;
-    case Id::ScanAngleRank:
-        return Float;
-    case Id::UserData:
-        return Unsigned8;
-    case Id::PointSourceId:
-        return Unsigned16;
-    case Id::GpsTime:
-        return Double;
-    case Id::InternalTime:
-        return Double;
-    case Id::OffsetTime:
-        return Unsigned32;
-    case Id::IsPpsLocked:
-        return Unsigned8;
-    case Id::Red:
-        return Unsigned16;
-    case Id::Green:
-        return Unsigned16;
-    case Id::Blue:
-        return Unsigned16;
-    case Id::Alpha:
-        return Unsigned16;
-    case Id::StartPulse:
-        return Signed32;
-    case Id::ReflectedPulse:
-        return Signed32;
-    case Id::Pitch:
-        return Float;
-    case Id::Roll:
-        return Float;
-    case Id::Pdop:
-        return Float;
-    case Id::PulseWidth:
-        return Float;
-    case Id::Deviation:
-        return Float;
-    case Id::PassiveSignal:
-        return Signed32;
-    case Id::BackgroundRadiation:
-        return Float;
-    case Id::PassiveX:
-        return Double;
-    case Id::PassiveY:
-        return Double;
-    case Id::PassiveZ:
-        return Double;
-    case Id::XVelocity:
-        return Double;
-    case Id::YVelocity:
-        return Double;
-    case Id::ZVelocity:
-        return Double;
-    case Id::PlatformHeading:
-        return Double;
-    case Id::WanderAngle:
-        return Double;
-    case Id::XBodyAccel:
-        return Double;
-    case Id::YBodyAccel:
-        return Double;
-    case Id::ZBodyAccel:
-        return Double;
-    case Id::XBodyAngRate:
-        return Double;
-    case Id::YBodyAngRate:
-        return Double;
-    case Id::ZBodyAngRate:
-        return Double;
-    case Id::Mark:
-        return Unsigned8;
-    case Id::Flag:
-        return Unsigned8;
-    case Id::EchoRange:
-        return Double;
-    case Id::ScanChannel:
-        return Unsigned8;
-    case Id::Infrared:
-        return Unsigned16;
-    case Id::HeightAboveGround:
-        return Double;
-    case Id::ClassFlags:
-        return Unsigned8;
-    case Id::LvisLfid:
-        return Unsigned64;
-    case Id::ShotNumber:
-        return Unsigned64;
-    case Id::LongitudeCentroid:
-        return Double;
-    case Id::LatitudeCentroid:
-        return Double;
-    case Id::ElevationCentroid:
-        return Double;
-    case Id::LongitudeLow:
-        return Double;
-    case Id::LatitudeLow:
-        return Double;
-    case Id::ElevationLow:
-        return Double;
-    case Id::LongitudeHigh:
-        return Double;
-    case Id::LatitudeHigh:
-        return Double;
-    case Id::ElevationHigh:
-        return Double;
-    case Id::Unknown:
-        throw pdal_error("No type for undefined dimension ID.");
-    }
-    throw pdal_error("No type for undefined dimension ID.");
-}
-
-/// Get a string reresentation of a datatype.
-/// \param[in] dimtype  Dimension type.
-/// \return  String representation of dimension type.
-inline std::string interpretationName(Type::Enum dimtype)
-{
-    switch (dimtype)
-    {
-    case Type::None:
-        return "unknown";
-    case Type::Signed8:
-        return "int8_t";
-    case Type::Signed16:
-        return "int16_t";
-    case Type::Signed32:
-        return "int32_t";
-    case Type::Signed64:
-        return "int64_t";
-    case Type::Unsigned8:
-        return "uint8_t";
-    case Type::Unsigned16:
-        return "uint16_t";
-    case Type::Unsigned32:
-        return "uint32_t";
-    case Type::Unsigned64:
-        return "uint64_t";
-    case Type::Float:
-        return "float";
-    case Type::Double:
-        return "double";
-    }
-    return "unknown";
-}
-
-
-/// Get the type corresponding to a type name.
-/// \param s  Name of type.
-/// \return  Corresponding type enumeration value.
-inline Type::Enum type(std::string s)
-{
-    s = Utils::tolower(s);
-
-    if (s == "int8_t" || s == "int8")
-       return Type::Signed8;
-    if (s == "int16_t" || s == "int16")
-       return Type::Signed16;
-    if (s == "int32_t" || s == "int32")
-       return Type::Signed32;
-    if (s == "int64_t" || s == "int64")
-       return Type::Signed64;
-    if (s == "uint8_t" || s == "uint8")
-        return Type::Unsigned8;
-    if (s == "uint16_t" || s == "uint16")
-        return Type::Unsigned16;
-    if (s == "uint32_t" || s == "uint32")
-        return Type::Unsigned32;
-    if (s == "uint64_t" || s == "uint64")
-        return Type::Unsigned64;
-    if (s == "float")
-        return Type::Float;
-    if (s == "double")
-        return Type::Double;
-    return Type::None;
-}
-
-
-/// Extract a dimension name of a string.  Dimension names start with an alpha
-/// and continue with numbers or underscores.
-/// \param s  String from which to extract dimension name.
-/// \param p  Position at which to start extracting.
-/// \return  Number of characters in the extracted name.
-inline std::size_t extractName(const std::string& s, std::string::size_type p)
-{
-    if (!std::isalpha(s[p++]))
-        return 0;
-    auto isvalid = [](int c)
-    {
-        return std::isalpha(c) || std::isdigit(c) || c == '_';
-    };
-    return Utils::extract(s, p, isvalid) + 1;
-}
-
-class Detail
-{
-public:
-    Detail() : m_id(Id::Unknown), m_offset(-1), m_type(Type::None)
-    {}
-    //NOTE - This is strange, but for some reason things run faster with
-    // this NOOP virtual dtor.  Perhaps it has something to do with
-    // an inlining optimization or perhaps alignment (though a void * doesn't
-    // cause the same performance improvement) It may help on no machine
-    // except mine, but it doesn't hurt anything, either.
-    virtual ~Detail()
-    {}
-
-    void setOffset(int offset)
-        { m_offset = offset; }
-    void setType(Type::Enum type)
-        { m_type = type; }
-    void setId(Id::Enum id)
-        { m_id = id; }
-    Id::Enum id() const
-        { return m_id; }
-    int offset() const
-        { return m_offset; }
-    Type::Enum type() const
-        { return m_type; }
-    size_t size() const
-        { return Dimension::size(m_type); }
-    BaseType::Enum base() const
-        { return Dimension::base(m_type); }
-
-private:
-    Id::Enum m_id;
-    int m_offset;
-    Type::Enum m_type;
-};
-typedef std::vector<Detail> DetailList;
-
-} // namespace Dimension
-
-struct DimType
-{
-    DimType() : m_id(Dimension::Id::Unknown), m_type(Dimension::Type::None)
-    {}
-    DimType(Dimension::Id::Enum id, Dimension::Type::Enum type,
-        double scale = 1.0, double offset = 0.0) :
-        m_id(id), m_type(type), m_xform(scale, offset)
-    {}
-    DimType(Dimension::Id::Enum id, Dimension::Type::Enum type, XForm xform) :
-        m_id(id), m_type(type), m_xform(xform)
-    {}
-
-    Dimension::Id::Enum m_id;
-    Dimension::Type::Enum m_type;
-    XForm m_xform;  // A convenience for some formats.
-};
-typedef std::vector<DimType> DimTypeList;
-
-} // namespace pdal
-
diff --git a/include/pdal/Eigen.hpp b/include/pdal/Eigen.hpp
new file mode 100644
index 0000000..f43237e
--- /dev/null
+++ b/include/pdal/Eigen.hpp
@@ -0,0 +1,140 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#pragma once
+
+#include <pdal/pdal_internal.hpp>
+#include <pdal/util/Bounds.hpp>
+
+#include <Eigen/Dense>
+
+#include <vector>
+
+namespace pdal
+{
+class PointView;
+
+/**
+ * \brief Compute the centroid of a collection of points.
+ *
+ * Computes the 3D centroid of a collection of points (specified by PointId)
+ * sampled from the input PointView.
+ *
+ * \code
+ * // build 3D kd-tree
+ * KD3Index kdi(view);
+ * kdi.build();
+ *
+ * // find the k-nearest neighbors of the first point (k=8)
+ * double x = view.getFieldAs<double>(Dimension::Id::X, 0);
+ * double y = view.getFieldAs<double>(Dimension::Id::Y, 0);
+ * double z = view.getFieldAs<double>(Dimension::Id::Z, 0);
+ * auto ids = kdi.neighbors(x, y, z, 8);
+ *
+ * // compute the centroid
+ * auto centroid = computeCentroid(view, ids);
+ * \endcode
+ *
+ * \param view the source PointView.
+ * \param ids a vector of PointIds specifying a subset of points.
+ * \return the 3D centroid of the XYZ dimensions.
+ */
+PDAL_DLL Eigen::Vector3f computeCentroid(PointView& view, std::vector<PointId> ids);
+
+/**
+ * \brief Compute the covariance matrix of a collection of points.
+ *
+ * Computes the covariance matrix of a collection of points (specified by
+ * PointId) sampled from the input PointView.
+ *
+ * \code
+ * // build 3D kd-tree
+ * KD3Index kdi(view);
+ * kdi.build();
+ *
+ * // find the k-nearest neighbors of the first point (k=8)
+ * double x = view.getFieldAs<double>(Dimension::Id::X, 0);
+ * double y = view.getFieldAs<double>(Dimension::Id::Y, 0);
+ * double z = view.getFieldAs<double>(Dimension::Id::Z, 0);
+ * auto ids = kdi.neighbors(x, y, z, 8);
+ *
+ * // compute the covariance
+ * auto cov = computeCovariance(view, ids);
+ * \endcode
+ *
+ * \param view the source PointView.
+ * \param ids a vector of PointIds specifying a subset of points.
+ * \return the covariance matrix of the XYZ dimensions.
+ */
+PDAL_DLL Eigen::Matrix3f computeCovariance(PointView& view, std::vector<PointId> ids);
+
+/**
+ * \brief Compute the rank of a collection of points.
+ *
+ * Computes the rank of a collection of points (specified by PointId) sampled
+ * from the input PointView. This method uses Eigen's JacobiSVD class to solve
+ * the singular value decomposition and to estimate the rank using the given
+ * threshold. A singular value will be considered nonzero if its absolute value
+ * is greater than the product of the user-supplied threshold and the absolute
+ * value of the maximum singular value.
+ *
+ * More on JacobiSVD can be found at
+ * https://eigen.tuxfamily.org/dox/classEigen_1_1JacobiSVD.html.
+ *
+ * \code
+ * // build 3D kd-tree
+ * KD3Index kdi(view);
+ * kdi.build();
+ *
+ * // find the k-nearest neighbors of the first point (k=8)
+ * double x = view.getFieldAs<double>(Dimension::Id::X, 0);
+ * double y = view.getFieldAs<double>(Dimension::Id::Y, 0);
+ * double z = view.getFieldAs<double>(Dimension::Id::Z, 0);
+ * auto ids = kdi.neighbors(x, y, z, 8);
+ *
+ * // compute the rank using threshold of 0.01
+ * auto rank = computeRank(view, ids, 0.01);
+ * \endcode
+ *
+ * \param view the source PointView.
+ * \param ids a vector of PointIds specifying a subset of points.
+ * \return the estimated rank.
+ */
+PDAL_DLL uint8_t computeRank(PointView& view, std::vector<PointId> ids, double threshold);
+
+// createDSM returns a matrix with minimum Z values from the provided
+// PointView.
+PDAL_DLL Eigen::MatrixXd createDSM(PointView& view, int rows, int cols,
+                                   double cell_size, BOX2D bounds);
+} // namespace pdal
diff --git a/include/pdal/FlexWriter.hpp b/include/pdal/FlexWriter.hpp
index 0efcfdf..ede9ad7 100644
--- a/include/pdal/FlexWriter.hpp
+++ b/include/pdal/FlexWriter.hpp
@@ -34,6 +34,7 @@
 #pragma once
 
 #include <pdal/PDALUtils.hpp>
+#include <pdal/Scaling.hpp>
 #include <pdal/Writer.hpp>
 
 namespace pdal
@@ -56,16 +57,12 @@ protected:
         }
     }
 
+    Scaling m_scaling;
+
 private:
-    virtual void writerProcessOptions(const Options& options)
+    virtual void writerInitialize(PointTableRef table)
     {
-        Writer::writerProcessOptions(options);
-        if (m_filename.empty())
-        {
-            std::ostringstream oss;
-            oss << "Can't write with " << getName() << " without filename.";
-            throw pdal_error(oss.str());
-        }
+        Writer::writerInitialize(table);
         handleFilenameTemplate();
     }
 
diff --git a/include/pdal/GDALUtils.hpp b/include/pdal/GDALUtils.hpp
index 9f8e9a0..fd7a61b 100644
--- a/include/pdal/GDALUtils.hpp
+++ b/include/pdal/GDALUtils.hpp
@@ -36,6 +36,7 @@
 
 #include <pdal/pdal_internal.hpp>
 #include <pdal/Dimension.hpp>
+#include <pdal/util/Bounds.hpp>
 
 #include <pdal/Log.hpp>
 
@@ -61,6 +62,9 @@ namespace gdal
 
 PDAL_DLL void registerDrivers();
 PDAL_DLL void unregisterDrivers();
+PDAL_DLL bool reprojectBounds(BOX3D& box, const std::string& srcSrs,
+    const std::string& dstSrs);
+PDAL_DLL std::string lastError();
 
 typedef std::shared_ptr<void> RefPtr;
 
@@ -172,29 +176,13 @@ private:
 class PDAL_DLL ErrorHandler
 {
 public:
-    class ExceptionSuspender
-    {
-    public:
-        ExceptionSuspender()
-        {
-            doThrow = get().willThrow();
-            get().setThrow(false);
-        }
-        ~ExceptionSuspender()
-        {
-            get().setThrow(doThrow);
-        }
-
-    private:
-        bool doThrow;
-    };
 
     /**
       Get the singleton error handler.
 
       \return  Reference to the error handler.
     */
-    static ErrorHandler& get();
+    static ErrorHandler& getGlobalErrorHandler();
 
     /**
       Set the log and debug state of the error handler.  This is
@@ -206,33 +194,6 @@ public:
     void set(LogPtr log, bool doDebug);
 
     /**
-      Set the log, debug and throw states of the error handler.  This is
-      a convenience and is equivalent to calling setLog(), setDebug() and
-      setThrow().
-
-      \param log  Log to write to.
-      \param doDebug  Debug state of the error handler.
-      \param doThrow  Whether failures/fatals should cause an exception.
-    */
-    void set(LogPtr log, bool doDebug, bool doThrow);
-
-    /**
-      Set whether failures and fatal errors should be logged or cause an
-      exception.
-
-      \param doThrow  Whether failures/fatals should cause exceptions.
-    */
-    void setThrow(bool doThrow);
-
-    /**
-      Determine if the handler will throw exceptions on failures and fatal
-      errors.
-
-      \return  Whether failures/fatals will cause exceptions.
-    */
-    bool willThrow() const;
-
-    /**
       Set the log to which error/debug messages should be written.
 
       \param log  Log to write to.
@@ -255,26 +216,28 @@ public:
     */
     int errorNum();
 
-private:
+    static void CPL_STDCALL trampoline(::CPLErr code, int num, char const* msg)
+    {
+        ErrorHandler::getGlobalErrorHandler().handle(code, num, msg);
+    }
+
     ErrorHandler();
 
+private:
+
     void handle(::CPLErr level, int num, const char *msg);
 
 private:
     bool m_debug;
     pdal::LogPtr m_log;
-    bool m_throw;
     int m_errorNum;
     bool m_cplSet;
 
-    static ErrorHandler m_instance;
 };
 
 
-namespace GDALError
-{
 
-enum Enum
+enum class GDALError
 {
     None,
     NotOpen,
@@ -286,19 +249,17 @@ enum Enum
     CantReadBlock
 };
 
-} // namespace GDALError
-
 class PDAL_DLL Raster
 {
 
 public:
     Raster(const std::string& filename);
     ~Raster();
-    GDALError::Enum open();
+    GDALError open();
     void close();
 
-    GDALError::Enum read(double x, double y, std::vector<double>& data);
-    std::vector<pdal::Dimension::Type::Enum> getPDALDimensionTypes() const
+    GDALError read(double x, double y, std::vector<double>& data);
+    std::vector<pdal::Dimension::Type> getPDALDimensionTypes() const
        { return m_types; }
     /**
       Read a raster band (layer) into a vector.
@@ -307,7 +268,7 @@ public:
         be resized appropriately to hold the data.
       \param nBand  Band number to read.  Band numbers start at 1.
     */
-    GDALError::Enum readBand(std::vector<uint8_t>& band, int nBand);
+    GDALError readBand(std::vector<uint8_t>& band, int nBand);
 
     void pixelToCoord(int column, int row, std::array<double, 2>& output) const;
     SpatialReference getSpatialRef() const;
@@ -323,7 +284,7 @@ public:
     int m_raster_y_size;
 
     int m_band_count;
-    mutable std::vector<pdal::Dimension::Type::Enum> m_types;
+    mutable std::vector<pdal::Dimension::Type> m_types;
     std::vector<std::array<double, 2>> m_block_sizes;
 
     GDALDatasetH m_ds;
@@ -332,7 +293,7 @@ public:
 private:
     bool getPixelAndLinePosition(double x, double y,
         int32_t& pixel, int32_t& line);
-    GDALError::Enum computePDALDimensionTypes();
+    GDALError computePDALDimensionTypes();
 };
 
 } // namespace gdal
diff --git a/include/pdal/KDIndex.hpp b/include/pdal/KDIndex.hpp
index 50ad28f..fcca425 100644
--- a/include/pdal/KDIndex.hpp
+++ b/include/pdal/KDIndex.hpp
@@ -181,6 +181,21 @@ public:
         m_index->findNeighbors(resultSet, &pt[0], nanoflann::SearchParams(10));
         return output;
     }
+    
+    void knnSearch(double x, double y, double z, point_count_t k,
+        std::vector<PointId> *indices, std::vector<double> *sqr_dists)
+    {
+        k = std::min(m_buf.size(), k);
+        nanoflann::KNNResultSet<double, PointId, point_count_t> resultSet(k);
+        
+        resultSet.init(&indices->front(), &sqr_dists->front());
+        
+        std::vector<double> pt;
+        pt.push_back(x);
+        pt.push_back(y);
+        pt.push_back(z);
+        m_index->findNeighbors(resultSet, &pt[0], nanoflann::SearchParams(10));
+    }
 
     std::vector<PointId> radius(double x, double y, double z, double r) const
     {
@@ -212,7 +227,7 @@ double KDIndex<2>::kdtree_get_pt(const PointId idx, int dim) const
     if (idx >= m_buf.size())
         return 0.0;
 
-    Dimension::Id::Enum id = Dimension::Id::Unknown;
+    Dimension::Id id = Dimension::Id::Unknown;
     switch (dim)
     {
     case 0:
@@ -235,7 +250,7 @@ double KDIndex<3>::kdtree_get_pt(const PointId idx, int dim) const
     if (idx >= m_buf.size())
         return 0.0;
 
-    Dimension::Id::Enum id = Dimension::Id::Unknown;
+    Dimension::Id id = Dimension::Id::Unknown;
     switch (dim)
     {
     case 0:
@@ -331,4 +346,3 @@ bool KDIndex<3>::kdtree_get_bbox(BBOX& bb) const
 }
 
 } // namespace pdal
-
diff --git a/include/pdal/Kernel.hpp b/include/pdal/Kernel.hpp
index 92520e4..957007b 100644
--- a/include/pdal/Kernel.hpp
+++ b/include/pdal/Kernel.hpp
@@ -41,7 +41,7 @@
 #include <string>
 #include <vector>
 
-#include <pdal/StageFactory.hpp>
+#include <pdal/PipelineManager.hpp>
 #include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
@@ -67,20 +67,31 @@ public:
     {}
 
     // call this, to start the machine
-    int run(int argc, const char* argv[], const std::string& appName);
+    int run(const StringList& cmdArgs, LogPtr& log);
 
-    bool isDebug() const;
-    uint32_t getVerboseLevel() const;
     virtual std::string getName() const = 0;
+    std::string getShortName() const
+    {
+        StringList names = Utils::split2(getName(), '.');
+        return names.size() == 2 ? names[1] : std::string();
+    }
     bool isVisualize() const;
     void visualize(PointViewPtr view);
 
 protected:
     // this is protected; your derived class ctor will be the public entry point
     Kernel();
-    Stage& createStage(const std::string& name);
-    Stage& makeReader(const std::string& inputFile);
-    Stage& makeWriter(const std::string& outputFile, Stage& parent);
+    Stage& makeReader(const std::string& inputFile, std::string driver);
+    Stage& makeReader(const std::string& inputFile, std::string driver,
+        Options options);
+    Stage& makeFilter(const std::string& driver, Stage& parent);
+    Stage& makeFilter(const std::string& driver, Stage& parent,
+        Options options);
+    Stage& makeFilter(const std::string& driver);
+    Stage& makeWriter(const std::string& outputFile, Stage& parent,
+        std::string driver);
+    Stage& makeWriter(const std::string& outputFile, Stage& parent,
+        std::string driver, Options options);
 
 public:
     virtual void addSwitches(ProgramArgs& args)
@@ -95,69 +106,34 @@ public:
     // it will be wrapped in a global catch try/block for you
     virtual int execute() = 0;
 
-    void setCommonOptions(Options &options);
-
-    const Options& extraStageOptions(const std::string& stage)
-    {
-        static Options nullOpts;
-
-        auto oi = m_extraStageOptions.find(stage);
-        if (oi == m_extraStageOptions.end())
-            return nullOpts;
-        return oi->second;
-    }
-
-    void applyExtraStageOptionsRecursive(Stage *s)
-    {
-        // if options provided via command-line, we assume they should overwrite
-        // existing options, remove first, and then add
-        Options ops = extraStageOptions(s->getName());
-
-        s->removeOptions(ops);
-        s->addOptions(ops);
-        auto stages = s->getInputs();
-        for (Stage *s : stages)
-            applyExtraStageOptionsRecursive(s);
-    }
-
 protected:
-
-    bool m_usestdin;
-    Log m_log;
+    LogPtr m_log;
+    PipelineManager m_manager;
+    std::string m_driverOverride;
 
 private:
     int innerRun(ProgramArgs& args);
     void outputHelp(ProgramArgs& args);
     void outputVersion();
     void addBasicSwitches(ProgramArgs& args);
-    void collectExtraOptions();
+    void parseCommonOptions();
 
-    void doSwitches(int argc, const char *argv[], ProgramArgs& args);
+    void doSwitches(const StringList& cmdArgs, ProgramArgs& args);
     int doStartup();
     int doExecution(ProgramArgs& args);
-    int doShutdown();
 
     static bool test_parseOption(std::string o, std::string& stage,
         std::string& option, std::string& value);
 
-    bool m_isDebug;
-    uint32_t m_verboseLevel;
     bool m_showHelp;
     bool m_showOptions;
-    bool m_showVersion;
     bool m_showTime;
-    std::string m_appName;
     bool m_hardCoreDebug;
-    bool m_reportDebug;
     std::string m_scales;
     std::string m_offsets;
     bool m_visualize;
     std::string m_label;
 
-    std::vector<std::string> m_extra_options;
-    std::map<std::string, Options> m_extraStageOptions;
-    StageFactory m_factory;
-
     Kernel& operator=(const Kernel&); // not implemented
     Kernel(const Kernel&); // not implemented
 };
diff --git a/include/pdal/Log.hpp b/include/pdal/Log.hpp
index 2fd19a5..5b8edf6 100644
--- a/include/pdal/Log.hpp
+++ b/include/pdal/Log.hpp
@@ -73,14 +73,14 @@ public:
     /** @name Logging level
     */
     /// @return the logging level of the pdal::Log instance
-    LogLevel::Enum getLevel()
+    LogLevel getLevel()
     {
         return m_level;
     }
 
     /// Sets the logging level of the pdal::Log instance
     /// @param v logging level to use for get() comparison operations
-    void setLevel(LogLevel::Enum v)
+    void setLevel(LogLevel v)
     {
         m_level = v;
     }
@@ -91,7 +91,7 @@ public:
         { m_leader = leader; }
 
     /// @return A string representing the LogLevel
-    std::string getLevelString(LogLevel::Enum v) const;
+    std::string getLevelString(LogLevel v) const;
 
     /** @name Log stream operations
     */
@@ -106,7 +106,7 @@ public:
     /// @param level logging level to request
     /// If the logging level asked for with
     /// pdal::Log::get is less than the logging level of the pdal::Log instance
-    std::ostream& get(LogLevel::Enum level = LogLevel::Info);
+    std::ostream& get(LogLevel level = LogLevel::Info);
 
     /// Sets the floating point precision
     void floatPrecision(int level);
@@ -124,7 +124,7 @@ private:
 
     void makeNullStream();
 
-    LogLevel::Enum m_level;
+    LogLevel m_level;
     bool m_deleteStreamOnCleanup;
     std::string m_leader;
 };
diff --git a/include/pdal/Metadata.hpp b/include/pdal/Metadata.hpp
index 5f1666e..e034d34 100644
--- a/include/pdal/Metadata.hpp
+++ b/include/pdal/Metadata.hpp
@@ -50,14 +50,11 @@ namespace pdal
 
 class SpatialReference;
 
-namespace MetadataType
-{
-enum Enum
+enum class MetadataType
 {
     Instance,
     Array
 };
-} // namespace MetadataType
 
 class Metadata;
 class MetadataNode;
@@ -174,7 +171,7 @@ private:
         return nc_this->subnodes(name);
     }
 
-    MetadataType::Enum nodeType(const std::string& name) const
+    MetadataType nodeType(const std::string& name) const
     {
         const MetadataImplList& l = subnodes(name);
         if (l.size())
@@ -189,7 +186,7 @@ private:
     std::string m_descrip;
     std::string m_type;
     std::string m_value;
-    MetadataType::Enum m_kind;
+    MetadataType m_kind;
     MetadataSubnodes m_subnodes;
 };
 
@@ -448,7 +445,7 @@ public:
     std::string type() const
         { return m_impl->m_type; }
 
-    MetadataType::Enum kind() const
+    MetadataType kind() const
         { return m_impl->m_kind; }
 
     std::string name() const
diff --git a/include/pdal/Options.hpp b/include/pdal/Options.hpp
index 337733b..fddeec7 100644
--- a/include/pdal/Options.hpp
+++ b/include/pdal/Options.hpp
@@ -48,58 +48,10 @@ namespace pdal
 class Options;
 class Option;
 
-namespace options
-{
-typedef std::multimap<std::string, Option> map_t;
-}
-
-/*!
-    \verbatim embed:rst
-     An Option is just a record with three fields: name, value, and description.
-     The value is stored as a string.
-      
-     Dumped as XML, it looks like this although of course that's not valid
-     XML, since it has no single root element.
-
-     ::
-
-         <?xml...>
-         <Name>myname</Name>
-         <Value>17</Value>
-         <Description>my descr</Description>
-
-     .. warning::
-
-            you should avoid using int8/uint8 types, as these tend to get confused
-            with chars.
-    \endverbatim
-*/
-
 class PDAL_DLL Option
 {
 public:
 
-    class not_found : public pdal_error
-    {
-    public:
-        not_found() : pdal_error("Option not found.")
-        {}
-        not_found(const std::string& msg) : pdal_error(msg)
-        {}
-    };
-
-    class cant_convert : public pdal_error
-    {
-    public:
-        cant_convert(const std::string& name, const std::string& value,
-            const std::string& type) :
-            pdal_error(std::string("Can't convert option '") + name +
-              "' with value '" + value + "' to type '" + type + "'.")
-        {}
-        cant_convert(const std::string& msg) : pdal_error(msg)
-        {}
-    };
-
 /// @name Constructors
 
     Option()
@@ -107,29 +59,23 @@ public:
 
     /// Primary constructor
     template <typename T>
-    Option(std::string const& name, const T& value,
-            std::string const& description = "") :
-        m_name(name), m_description(description)
+    Option(std::string const& name, const T& value) : m_name(name)
     {
-        setValue<T>(value);
+        std::ostringstream oss;
+        oss << value;
+        m_value = oss.str();
     }
 
-    /// Equality operator
-    bool operator==(const Option& rhs) const
-    {
-        return (m_name == rhs.getName() &&
-            m_value == rhs.getValue<std::string>() &&
-            m_description == rhs.getDescription());
-    }
+    Option(std::string const& name, const std::string& value) :
+        m_name(name), m_value(value)
+    {}
 
-    /// Inequality operator
-    bool operator!=(const Option& rhs) const
+    Option(std::string const& name, const bool& value) :
+        m_name(name)
     {
-        return (! operator == (rhs));
+        m_value = value ? "true" : "false";
     }
 
-/// @name Attribute access
-
     /// @return the name for the Option instance
     std::string const& getName() const
     {
@@ -152,220 +98,99 @@ public:
         return count;
     }
 
+    std::string toArg() const;
+
     // Make sure that the option name consists of lowercase characters or
     // underscores.
     static bool nameValid(const std::string& name, bool reportError);
 
-    /// Overwrites the description given in the constructor
-    /// @param description new value to use for the description of the Option
-    inline void setDescription(const std::string& description)
-    {
-        m_description = description;
-    }
-
-    /// @return the description of the Option
-    inline std::string const& getDescription() const
-    {
-        return m_description;
-    }
-
     /// @return the value of the Option.
-    template<typename T>
-    T getValue() const
-    {
-        T t;
-        getValue(t);
-        return t;
-    }
-
-    /// sets the value of the Option to T converted to a string.
-    template<typename T> void setValue(const T& value)
-    {
-        std::ostringstream oss;
-        oss << value;
-        m_value = oss.str();
-    }
+    std::string getValue() const
+        { return m_value; }
 
     bool empty() const;
 
-#if defined(PDAL_COMPILER_MSVC)
-    /// explicit specialization to insert a bool as "true" and "false" rather
-    /// than "0" or "1".
-    template<> void setValue(const bool& value)
-    {
-        m_value = value ? "true" : "false";
-    }
-
-    /// explicit specialization to insert a string so no stream is necessary.
-    template<> void setValue(const std::string& value)
-    {
-        m_value = value;
-    }
-#endif
-
     void toMetadata(MetadataNode& parent) const;
 
 /// @name Private attributes
 private:
     std::string m_name;
     std::string m_value;
-    std::string m_description; // optional field
-
-    template <typename T>
-    void getValue(T& t) const
-    {
-        std::istringstream iss(m_value);
-
-        iss >> t;
-        if (iss.fail())
-            throw cant_convert(m_name, m_value, Utils::typeidName<T>());
-    }
-
-    void getValue(StringList& values) const
-    {
-        values = Utils::split2(m_value, ',');
-        for (std::string& s : values)
-            Utils::trim(s);
-    }
-
-    void getValue(bool& value) const
-    {
-        if (m_value == "true")
-            value = true;
-        else if (m_value == "false")
-            value = false;
-        else
-        {
-            std::istringstream iss(m_value);
-
-            iss >> value;
-            if (iss.fail())
-                throw cant_convert(m_name, m_value, "bool");
-        }
-    }
-
-    void getValue(std::string& value) const
-        { value = m_value; } 
-
-    void getValue(char& value)
-    {
-        if (!Utils::fromString(m_value, value))
-            throw cant_convert(m_name, m_value, "char");
-    }
-
-    void getValue(unsigned char& value) const
-    {
-        if (!Utils::fromString(m_value, value))
-            throw cant_convert(m_name, m_value, "unsigned char");
-    }
-
-    void getValue(signed char& value) const
-    {
-        if (!Utils::fromString(m_value, value))
-            throw cant_convert(m_name, m_value, "signed char");
-    }
 };
 
 
-/// @name Specializations
-#if !defined(PDAL_COMPILER_VC10)
-
-/// explicit specialization to insert a bool as "true" and "false" rather
-/// than "0" or "1".
-template<> void Option::setValue(const bool& value);
-
-/// explicit specialization to insert a string.
-template<> void Option::setValue(const std::string& value);
-#endif
-
 class PDAL_DLL Options
 {
 public:
-    Options()  {}
+    Options()
+    {}
 
-    // copy ctor
-    Options(const Options&);
+    Options(const Option& opt)
+        { add(opt); }
 
-    // assignment operator
-    Options& operator+=(const Options& rhs)
-    {
-        if (&rhs != this)
-        {
-            for (auto i = rhs.m_options.begin(); i != rhs.m_options.end(); ++i)
-            {
-                m_options.insert(std::pair<std::string, Option>(
-                    i->first, i->second));
-            }
-        }
-        return *this;
-    }
+    void add(const Option& option);
+    void addConditional(const Option& option);
 
-    bool empty() const
-    {
-        return (m_options.size() == 0);
-    }
+    // if option name not present, just returns
+    void remove(const Option& option);
 
-    size_t size() const
+    void replace(const Option& option)
     {
-        return m_options.size();
+        remove(option);
+        add(option);
     }
 
-    Options const operator+(const Options& rhs)
+    void toMetadata(MetadataNode& parent) const
     {
-        return Options(*this) += rhs;
+        for (std::string& k : getKeys())
+        {
+            StringList l = getValues(k);
+            std::string vs;
+            for (auto vi = l.begin(); vi != l.end(); ++vi)
+            {
+               if (vi != l.begin())
+                   vs += ", ";
+               vs += *vi;
+            }
+            parent.add(k, vs);
+        }
     }
 
-    bool equals(const Options& rhs) const
+    // add an option (shortcut version, bypass need for an Option object)
+    template<typename T> void add(const std::string& name, T value)
     {
-        return m_options == rhs.m_options;
+        Option opt(name, value);
+        add(opt);
     }
 
-    bool operator==(const Options& rhs) const
+    void add(const std::string& name, const std::string& value)
     {
-        return equals(rhs);
+        Option opt(name, value);
+        add(opt);
     }
 
-    bool operator!=(const Options& rhs) const
+    void add(const std::string& name, const bool& value)
     {
-        return (!equals(rhs));
+        Option opt(name, value);
+        add(opt);
     }
 
-    Options(const Option&);
-
-    // add an option
-    void add(const Option& option);
-
-    // if option name not present, just returns
-    void remove(const Option& option);
-
-    void toMetadata(MetadataNode& parent) const
+    template<typename T> void replace(const std::string& name, T value)
     {
-        for (auto o : getOptions())
-            o.toMetadata(parent);
+        Option opt(name, value);
+        replace(opt);
     }
 
-    // add an option (shortcut version, bypass need for an Option object)
-    template<typename T> void add(const std::string& name, T value,
-        const std::string& description="")
+    void replace(const std::string& name, const std::string& value)
     {
-        Option opt(name, value, description);
-        add(opt);
+        Option opt(name, value);
+        replace(opt);
     }
 
-    // get an option, by name
-    // throws not_found if the option name is not valid
-    const Option& getOption(const std::string & name) const;
-    Option& getOptionByRef(const std::string& name);
-
-    template<typename T>
-    std::vector<T> getValues(const std::string& name) const
+    void replace(const std::string& name, const bool& value)
     {
-        std::vector<T> vals;
-
-        auto ops = getOptions(name);
-        for (Option& op : ops)
-            vals.push_back(op.getValue<T>());
-        return vals;
+        Option opt(name, value);
+        replace(opt);
     }
 
     StringList getValues(const std::string& name) const
@@ -374,82 +199,29 @@ public:
 
         auto ops = getOptions(name);
         for (Option& op : ops)
-        {
-            StringList t = op.getValue<StringList>();
-            s.insert(s.end(), t.begin(), t.end());
-        }
+            s.push_back(op.getValue());
         return s;
     }
 
-    // get value of an option, or throw not_found if option not present
-    template<typename T> T getValueOrThrow(std::string const& name) const
-    {
-        const Option& opt = getOption(name);  // might throw Option::not_found
-        return opt.getValue<T>();
-    }
-
-    std::string getValueOrDefault(std::string const& name,
-        const std::string& defaultValue) const
-    {
-        return getValueOrDefault<std::string>(name, defaultValue);
-    }
-
-    // get value of an option, or use given default if option not present
-    template<typename T>
-    T getValueOrDefault(std::string const& name, const T& defaultValue) const
+    StringList getKeys() const
     {
-        T result;
+        StringList keys;
 
-        try
+        for (auto it = m_options.begin(); it != m_options.end();
+            it = m_options.upper_bound(it->first))
         {
-            // might throw Option::not_found
-            const Option& opt = getOption(name);
-            result = opt.getValue<T>();
+            keys.push_back(it->first);
         }
-        catch (Option::not_found)
-        {
-            result = defaultValue;
-        }
-        return result;
+        return keys;
     }
 
-    // get value of an option or use a value-initialized default
-    template<typename T>
-    T getValueOrDefault(std::string const& name) const
-    {
-        T out;
-
-#if defined(PDAL_COMPILER_MSVC)
-        T *t = new T();
-        out = getValueOrDefault(name, *t);
-        delete t;
-#else
-        if (std::is_fundamental<T>::value)
-        {
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
-            T t{};
-            out = getValueOrDefault(name, t);
-#pragma GCC diagnostic pop
-        }
-        else
-        {
-            T t;
-            out = getValueOrDefault(name, t);
-        }
-#endif
-        return out;
-    }
-
-    // returns true iff the option name is valid
-    bool hasOption(std::string const& name) const;
-
     std::vector<Option> getOptions(std::string const& name="") const;
-
+    StringList toCommandLine() const;
 
 private:
-    options::map_t m_options;
+    std::multimap<std::string, Option> m_options;
 };
+typedef std::map<std::string, Options> OptionsMap;
 
 PDAL_DLL std::ostream& operator<<(std::ostream& ostr, const Options&);
 
diff --git a/include/pdal/PDALUtils.hpp b/include/pdal/PDALUtils.hpp
index 799cbb9..ac3845e 100644
--- a/include/pdal/PDALUtils.hpp
+++ b/include/pdal/PDALUtils.hpp
@@ -38,9 +38,6 @@
 #include <pdal/Dimension.hpp>
 #include <pdal/pdal_defines.h>
 #include <pdal/pdal_export.hpp>
-#include <pdal/PointTable.hpp>
-#include <pdal/PointView.hpp>
-#include <pdal/Options.hpp>
 #include <pdal/util/Inserter.hpp>
 #include <pdal/util/Extractor.hpp>
 
@@ -51,6 +48,7 @@
 
 namespace pdal
 {
+class Options;
 
 namespace Utils
 {
@@ -61,41 +59,41 @@ inline void printError(const std::string& s)
     std::cerr << std::endl;
 }
 
-inline double toDouble(const Everything& e, Dimension::Type::Enum type)
+inline double toDouble(const Everything& e, Dimension::Type type)
 {
-    using namespace Dimension::Type;
+    using Type = Dimension::Type;
 
     double d = 0;
     switch (type)
     {
-    case Unsigned8:
+    case Type::Unsigned8:
         d = e.u8;
         break;
-    case Unsigned16:
+    case Type::Unsigned16:
         d = e.u16;
         break;
-    case Unsigned32:
+    case Type::Unsigned32:
         d = e.u32;
         break;
-    case Unsigned64:
-        d = e.u64;
+    case Type::Unsigned64:
+        d = (double)e.u64;
         break;
-    case Signed8:
+    case Type::Signed8:
         d = e.s8;
         break;
-    case Signed16:
+    case Type::Signed16:
         d = e.s16;
         break;
-    case Signed32:
+    case Type::Signed32:
         d = e.s32;
         break;
-    case Signed64:
-        d = e.s64;
+    case Type::Signed64:
+        d = (double)e.s64;
         break;
-    case Float:
+    case Type::Float:
         d = e.f;
         break;
-    case Double:
+    case Type::Double:
         d = e.d;
         break;
     default:
@@ -104,185 +102,92 @@ inline double toDouble(const Everything& e, Dimension::Type::Enum type)
     return d;
 }
 
-inline Everything extractDim(Extractor& ext, Dimension::Type::Enum type)
+inline Everything extractDim(Extractor& ext, Dimension::Type type)
 {
-    using namespace Dimension::Type;
+    using Type = Dimension::Type;
 
     Everything e;
     switch (type)
     {
-        case Unsigned8:
+        case Type::Unsigned8:
             ext >> e.u8;
             break;
-        case Unsigned16:
+        case Type::Unsigned16:
             ext >> e.u16;
             break;
-        case Unsigned32:
+        case Type::Unsigned32:
             ext >> e.u32;
             break;
-        case Unsigned64:
+        case Type::Unsigned64:
             ext >> e.u64;
             break;
-        case Signed8:
+        case Type::Signed8:
             ext >> e.s8;
             break;
-        case Signed16:
+        case Type::Signed16:
             ext >> e.s16;
             break;
-        case Signed32:
+        case Type::Signed32:
             ext >> e.s32;
             break;
-        case Signed64:
+        case Type::Signed64:
             ext >> e.s64;
             break;
-        case Float:
+        case Type::Float:
             ext >> e.f;
             break;
-        case Double:
+        case Type::Double:
             ext >> e.d;
             break;
-        case None:
+        case Type::None:
             break;
     }
     return e;
 }
 
-inline void insertDim(Inserter& ins, Dimension::Type::Enum type,
+inline void insertDim(Inserter& ins, Dimension::Type type,
     const Everything& e)
 {
-    using namespace Dimension::Type;
+    using Type = Dimension::Type;
 
     switch (type)
     {
-        case Unsigned8:
+        case Type::Unsigned8:
             ins << e.u8;
             break;
-        case Unsigned16:
+        case Type::Unsigned16:
             ins << e.u16;
             break;
-        case Unsigned32:
+        case Type::Unsigned32:
             ins << e.u32;
             break;
-        case Unsigned64:
+        case Type::Unsigned64:
             ins << e.u64;
             break;
-        case Signed8:
+        case Type::Signed8:
             ins << e.s8;
             break;
-        case Signed16:
+        case Type::Signed16:
             ins << e.s16;
             break;
-        case Signed32:
+        case Type::Signed32:
             ins << e.s32;
             break;
-        case Signed64:
+        case Type::Signed64:
             ins << e.s64;
             break;
-        case Float:
+        case Type::Float:
             ins << e.f;
             break;
-        case Double:
+        case Type::Double:
             ins << e.d;
             break;
-        case None:
+        case Type::None:
             break;
     }
 }
 
 
-// inline ptree toPTree(MetadataNode const& node)
-// {
-//     typedef ptree::path_type path;
-//
-//     ptree tree;
-//     tree.put("name", node.name());
-//     tree.put("description", node.description());
-//     tree.put("type", node.type());
-//     tree.put("value", node.value());
-//
-//     MetadataNodeList children = node.children();
-//     for (auto n = children.begin(); n != children.end(); ++n)
-//     {
-//         ptree pnode = toPTree(*n);
-//         if (node.kind() == MetadataType::Array)
-//         {
-//             pdalboost::optional<ptree&> opt =
-//                 tree.get_child_optional(path(node.name(), '/'));
-//             if (opt)
-//                 opt->push_back(std::make_pair("", pnode));
-//             else
-//             {
-//                 tree.push_back(ptree::value_type(node.name(), ptree()));
-//                 auto& p = tree.get_child(path(node.name(), '/'));
-//                 p.push_back(std::make_pair("", pnode));
-//
-//             }
-//         }
-//         else if (node.name().size())
-//             tree.push_back(std::make_pair(node.name(), pnode));
-//     }
-//     return tree;
-// }
-//
-
-inline MetadataNode toMetadata(PointTableRef table)
-{
-    const PointLayoutPtr layout(table.layout());
-    MetadataNode root;
-
-    for (const auto& id : layout->dims())
-    {
-        MetadataNode dim("dimensions");
-        dim.add("name", layout->dimName(id));
-        Dimension::Type::Enum t = layout->dimType(id);
-        dim.add("type", Dimension::toName(Dimension::base(t)));
-        dim.add("size", layout->dimSize(id));
-        root.addList(dim);
-    }
-
-    return root;
-}
-
-
-inline MetadataNode toMetadata(const PointViewPtr view)
-{
-    MetadataNode node;
-
-    const Dimension::IdList& dims = view->dims();
-
-    for (PointId idx = 0; idx < view->size(); idx++)
-    {
-        MetadataNode pointnode = node.add(std::to_string(idx));
-        for (auto di = dims.begin(); di != dims.end(); ++di)
-        {
-            double v = view->getFieldAs<double>(*di, idx);
-            pointnode.add(Dimension::name(*di), v);
-        }
-    }
-
-    return node;
-}
-
-inline MetadataNode toMetadata(const SpatialReference& ref)
-{
-    MetadataNode root("srs");
-    root.add("horizontal", ref.getHorizontal());
-    root.add("vertical", ref.getVertical());
-    root.add("isgeographic", ref.isGeographic());
-    root.add("isgeocentric", ref.isGeocentric());
-    root.add("proj4", ref.getProj4());
-    root.add("prettywkt", ref.getWKT(SpatialReference::eHorizontalOnly, true));
-    root.add("wkt", ref.getWKT(SpatialReference::eHorizontalOnly, false));
-    root.add("compoundwkt", ref.getWKT(SpatialReference::eCompoundOK, false));
-    root.add("prettycompoundwkt", ref.getWKT(SpatialReference::eCompoundOK, true));
-
-    MetadataNode units = root.add("units");
-    units.add("vertical", ref.getVerticalUnits());
-    units.add("horizontal", ref.getVerticalUnits());
-
-    return root;
-}
-
 
 inline MetadataNode toMetadata(const BOX2D& bounds)
 {
@@ -306,92 +211,6 @@ inline MetadataNode toMetadata(const BOX3D& bounds)
     return output;
 }
 
-/// Outputs a string-based boost::property_tree::ptree representation
-/// of the BOX3D instance
-// inline ptree toPTree(const BOX3D& bounds)
-// {
-//     ptree tree;
-//     ptree x;
-//     ptree y;
-//     ptree z;
-//
-//     x.add("minimum", bounds.minx);
-//     x.add("maximum", bounds.maxx);
-//     tree.add_child("0", x);
-//
-//     y.add("minimum", bounds.miny);
-//     y.add("maximum", bounds.maxy);
-//     tree.add_child("1", y);
-//
-//     z.add("minimum", bounds.minz);
-//     z.add("maximum", bounds.maxz);
-//     tree.add_child("2", z);
-//
-//     return tree;
-// }
-//
-// /// Outputs a string-based pdalboost::property_tree::ptree representation
-// /// of the BOX2D instance
-// inline ptree toPTree(const BOX2D& bounds)
-// {
-//     ptree tree;
-//     ptree x;
-//     ptree y;
-//     ptree z;
-//
-//     x.add("minimum", bounds.minx);
-//     x.add("maximum", bounds.maxx);
-//     tree.add_child("0", x);
-//
-//     y.add("minimum", bounds.miny);
-//     y.add("maximum", bounds.maxy);
-//     tree.add_child("1", y);
-//
-//     return tree;
-// }
-//
-// ptree toPTree(const Options& options);
-// inline ptree toPTree(const Option& option)
-// {
-//     ptree t;
-//     t.put("Name", option.getName());
-//     t.put("Value", option.getValue<std::string>());
-//     if (option.getDescription() != "")
-//         t.put("Description", option.getDescription());
-//
-//     return t;
-// }
-//
-//
-// inline ptree toPTree(const Options& options)
-// {
-//     ptree tree;
-//     std::vector<Option> opts = options.getOptions();
-//     for (auto citer = opts.begin(); citer != opts.end(); ++citer)
-//     {
-//         const Option& option = *citer;
-//         ptree subtree = toPTree(option);
-//         tree.add_child("Option", subtree);
-//     }
-//     return tree;
-// }
-//
-//
-//
-// inline ptree toPTree(const SpatialReference& ref)
-// {
-//     ptree srs;
-//
-//     srs.put("proj4", ref.getProj4());
-//     srs.put("prettywkt", ref.getWKT(SpatialReference::eHorizontalOnly, true));
-//     srs.put("wkt", ref.getWKT(SpatialReference::eHorizontalOnly, false));
-//     srs.put("compoundwkt", ref.getWKT(SpatialReference::eCompoundOK, false));
-//     srs.put("prettycompoundwkt", ref.getWKT(SpatialReference::eCompoundOK,
-//        true));
-//
-//     return srs;
-// }
-
 inline int openProgress(const std::string& filename)
 {
 #ifdef WIN32
@@ -439,8 +258,12 @@ inline void writeProgress(int fd, const std::string& type,
 
 std::string PDAL_DLL toJSON(const MetadataNode& m);
 void PDAL_DLL toJSON(const MetadataNode& m, std::ostream& o);
-std::string PDAL_DLL toJSON(const Options& opts);
-void PDAL_DLL toJSON(const Options& opts, std::ostream& o);
+std::istream PDAL_DLL *openFile(const std::string& path, bool asBinary = true);
+std::ostream PDAL_DLL *createFile(const std::string& path,
+    bool asBinary = true);
+void PDAL_DLL closeFile(std::istream *in);
+void PDAL_DLL closeFile(std::ostream *out);
+bool PDAL_DLL fileExists(const std::string& path);
 
 } // namespace Utils
 } // namespace pdal
diff --git a/include/pdal/PipelineManager.hpp b/include/pdal/PipelineManager.hpp
index 4b20a16..bf71f16 100644
--- a/include/pdal/PipelineManager.hpp
+++ b/include/pdal/PipelineManager.hpp
@@ -49,16 +49,18 @@ class PDAL_DLL PipelineManager
 {
 public:
     PipelineManager() : m_tablePtr(new PointTable()), m_table(*m_tablePtr),
-            m_progressFd(-1)
+            m_progressFd(-1), m_input(nullptr)
         {}
     PipelineManager(int progressFd) : m_tablePtr(new PointTable()),
-            m_table(*m_tablePtr), m_progressFd(progressFd)
+            m_table(*m_tablePtr), m_progressFd(progressFd), m_input(nullptr)
         {}
-    PipelineManager(PointTableRef table) : m_table(table), m_progressFd(-1)
+    PipelineManager(PointTableRef table) : m_table(table), m_progressFd(-1),
+            m_input(nullptr)
         {}
     PipelineManager(PointTableRef table, int progressFd) : m_table(table),
-            m_progressFd(progressFd)
+            m_progressFd(progressFd), m_input(nullptr)
         {}
+    ~PipelineManager();
 
     void readPipeline(std::istream& input);
     void readPipeline(const std::string& filename);
@@ -68,16 +70,43 @@ public:
     Stage& addFilter(const std::string& type);
     Stage& addWriter(const std::string& type);
 
+    // These add stages, hook dependencies and set necessary options.
+    // They're preferable to the above as they're more flexible and safer.
+    Stage& makeReader(const std::string& inputFile, std::string driver);
+    Stage& makeReader(const std::string& inputFile, std::string driver,
+        Options options);
+
+    Stage& makeFilter(const std::string& driver);
+    Stage& makeFilter(const std::string& driver, Options options);
+    Stage& makeFilter(const std::string& driver, Stage& parent);
+    Stage& makeFilter(const std::string& driver, Stage& parent,
+        Options options);
+
+    Stage& makeWriter(const std::string& outputFile, std::string driver);
+    Stage& makeWriter(const std::string& outputFile, std::string driver,
+        Options options);
+    Stage& makeWriter(const std::string& outputFile, std::string driver,
+        Stage& parent);
+    Stage& makeWriter(const std::string& outputFile, std::string driver,
+        Stage& parent, Options options);
+
     // returns true if the pipeline endpoint is a writer
     bool isWriterPipeline() const
         { return (bool)getStage(); }
 
-    // return the pipeline reader endpoint (or nullptr, if not a reader pipeline)
+    // return the pipeline reader endpoint (or nullptr, if not a reader
+    // pipeline)
     Stage* getStage() const
         { return m_stages.empty() ? nullptr : m_stages.back(); }
 
+    // Set the log to be available to stages.
+    void setLog(LogPtr& log)
+        { m_log = log; }
+
+    QuickInfo preview() const;
     void prepare() const;
     point_count_t execute();
+    void validateStageOptions() const;
 
     // Get the resulting point views.
     const PointViewSet& views() const
@@ -88,16 +117,25 @@ public:
         { return m_table; }
 
     MetadataNode getMetadata() const;
+    Options& commonOptions()
+        { return m_commonOptions; }
+    OptionsMap& stageOptions()
+        { return m_stageOptions; }
+    Options& stageOptions(Stage& stage);
 
 private:
+    void setOptions(Stage& stage, const Options& addOps);
+
     StageFactory m_factory;
     std::unique_ptr<PointTable> m_tablePtr;
     PointTableRef m_table;
-
+    Options m_commonOptions;
+    OptionsMap m_stageOptions;
     PointViewSet m_viewSet;
-
     std::vector<Stage*> m_stages; // stage observer, never owner
     int m_progressFd;
+    std::istream *m_input;
+    LogPtr m_log;
 
     PipelineManager& operator=(const PipelineManager&); // not implemented
     PipelineManager(const PipelineManager&); // not implemented
@@ -105,4 +143,3 @@ private:
 typedef std::unique_ptr<PipelineManager> PipelineManagerPtr;
 
 } // namespace pdal
-
diff --git a/include/pdal/PipelineWriter.hpp b/include/pdal/PipelineWriter.hpp
index 8fe262b..043bbd4 100644
--- a/include/pdal/PipelineWriter.hpp
+++ b/include/pdal/PipelineWriter.hpp
@@ -50,7 +50,7 @@ namespace PipelineWriter
 
     PDAL_DLL void writePipeline(Stage *s, const std::string& filename);
     PDAL_DLL void writePipeline(Stage *s, std::ostream& strm);
-};
+}
 
 } // namespace pdal
 
diff --git a/include/pdal/PluginManager.hpp b/include/pdal/PluginManager.hpp
index 15339c9..0fc3cc6 100644
--- a/include/pdal/PluginManager.hpp
+++ b/include/pdal/PluginManager.hpp
@@ -39,6 +39,7 @@
 
 #pragma once
 
+#include <pdal/Log.hpp>
 #include <pdal/pdal_internal.hpp>
 #include <pdal/plugin.hpp>
 
@@ -60,6 +61,8 @@ class DynamicLibrary;
 
 class PDAL_DLL PluginManager
 {
+    FRIEND_TEST(PluginManagerTest, SearchPaths);
+
     typedef std::shared_ptr<DynamicLibrary> DynLibPtr;
     typedef std::map<std::string, DynLibPtr> DynamicLibraryMap;
     typedef std::vector<PF_ExitFunc> ExitFuncVec;
@@ -78,6 +81,7 @@ public:
     static void loadAll(int type);
     static void *createObject(const std::string& objectType);
     static StringList names(int typeMask);
+    static void setLog(LogPtr& log);
 
 private:
     // These functions return true if successful.
@@ -95,15 +99,17 @@ private:
     StringList l_names(int typeMask);
     std::string l_description(const std::string& name);
     std::string l_link(const std::string& name);
-
     DynamicLibrary *loadLibrary(const std::string& path,
         std::string& errorString);
 
+    static StringList test_pluginSearchPaths();
+
     PF_PluginAPI_Version m_version;
     DynamicLibraryMap m_dynamicLibraryMap;
     ExitFuncVec m_exitFuncVec;
     RegistrationInfoMap m_plugins;
     std::mutex m_mutex;
+    LogPtr m_log;
 
     // Disable copy/assignment.
     PluginManager(const PluginManager&);
diff --git a/include/pdal/PointContainer.hpp b/include/pdal/PointContainer.hpp
index ce691f8..1757566 100644
--- a/include/pdal/PointContainer.hpp
+++ b/include/pdal/PointContainer.hpp
@@ -47,9 +47,9 @@ class PDAL_DLL PointContainer
     friend class PointView;
     friend class PointRef;
 private:
-    virtual void setFieldInternal(Dimension::Id::Enum dim, PointId idx,
+    virtual void setFieldInternal(Dimension::Id dim, PointId idx,
         const void *val) = 0;
-    virtual void getFieldInternal(Dimension::Id::Enum dim, PointId idx,
+    virtual void getFieldInternal(Dimension::Id dim, PointId idx,
         void *val) const = 0;
 public:
     virtual PointLayoutPtr layout() const = 0;
diff --git a/include/pdal/PointLayout.hpp b/include/pdal/PointLayout.hpp
index 43f256f..905a272 100644
--- a/include/pdal/PointLayout.hpp
+++ b/include/pdal/PointLayout.hpp
@@ -39,7 +39,8 @@
 #include <string>
 #include <vector>
 
-#include "pdal/Dimension.hpp"
+#include <pdal/DimDetail.hpp>
+#include <pdal/DimType.hpp>
 
 namespace pdal
 {
@@ -72,7 +73,7 @@ public:
 
       \param ids  Vector of IDs to register.
     */
-    void registerDims(std::vector<Dimension::Id::Enum> ids);
+    void registerDims(std::vector<Dimension::Id> ids);
 
     /**
       Register a list of dimensions.
@@ -80,7 +81,7 @@ public:
       \param id  Pointer to list of IDs to register.  The last ID in the list
         must have the value Unknown.
     */
-    void registerDims(Dimension::Id::Enum *id);
+    void registerDims(Dimension::Id *id);
 
     /**
       Register use of a standard dimension (declare that a point will contain
@@ -88,7 +89,7 @@ public:
 
       \param id  ID of dimension to be registered.
     */
-    void registerDim(Dimension::Id::Enum id);
+    void registerDim(Dimension::Id id);
 
     /**
       Register use of a standard dimension (declare that a point will contain
@@ -99,7 +100,7 @@ public:
       \param id  ID of dimension to be registered.
       \param type  Minimum type to assign to the dimension.
     */
-    void registerDim(Dimension::Id::Enum id, Dimension::Type::Enum type);
+    void registerDim(Dimension::Id id, Dimension::Type type);
 
     /**
       Assign a non-existing (proprietary) dimension with the given name and
@@ -113,8 +114,8 @@ public:
       \param type  Minimum type to assign to the dimension.
       \return  ID of the new or existing dimension, or Unknown on failure.
     */
-    Dimension::Id::Enum assignDim( const std::string& name,
-        Dimension::Type::Enum type);
+    Dimension::Id assignDim( const std::string& name,
+        Dimension::Type type);
 
     /**
       Register a dimension if one already exists with the given name using the
@@ -125,8 +126,8 @@ public:
         accomodate values of this type.
       \return  ID of dimension registered or assigned.
     */
-    Dimension::Id::Enum registerOrAssignDim(const std::string name,
-        Dimension::Type::Enum type);
+    Dimension::Id registerOrAssignDim(const std::string name,
+        Dimension::Type type);
 
     /**
       Get a list of DimType objects that define the layout.
@@ -150,7 +151,7 @@ public:
       \param name  Name of the dimension.
       \return  ID of the dimension or Unknown.
     */
-    Dimension::Id::Enum findDim(const std::string& name) const;
+    Dimension::Id findDim(const std::string& name) const;
 
     /**
       Get the ID of a proprietary dimension given its name.
@@ -158,7 +159,7 @@ public:
       \param name  Name of the dimension.
       \return  ID of the dimension or Unknown.
     */
-    Dimension::Id::Enum findProprietaryDim(const std::string& name) const;
+    Dimension::Id findProprietaryDim(const std::string& name) const;
 
     /**
       Get the name of a dimension give its ID.  A dimension may have more
@@ -167,7 +168,7 @@ public:
       \param id  ID of the dimension.
       \return  A name associated with the dimension, or a NULL string.
     */
-    std::string dimName(Dimension::Id::Enum id) const;
+    std::string dimName(Dimension::Id id) const;
 
     /**
       Determine if the PointLayout uses the dimension with the given ID.
@@ -175,7 +176,7 @@ public:
       \param id  ID of the dimension to check.
       \return \c true if the layout uses the dimension, \c false otherwise.
     */
-    bool hasDim(Dimension::Id::Enum id) const;
+    bool hasDim(Dimension::Id id) const;
 
     /**
       Get a reference to vector of the IDs of currently used dimensions.
@@ -190,7 +191,7 @@ public:
       \param id  ID of the dimension.
       \return  Type of the dimension.
     */
-    Dimension::Type::Enum dimType(Dimension::Id::Enum id) const;
+    Dimension::Type dimType(Dimension::Id id) const;
 
     /**
       Get the current size in bytes of the dimension.
@@ -198,7 +199,7 @@ public:
       \param id  ID of the dimension.
       \return  Size of the dimension in bytes.
     */
-    size_t dimSize(Dimension::Id::Enum id) const;
+    size_t dimSize(Dimension::Id id) const;
 
     /**
       Get the offset of the dimension in the layout.
@@ -206,7 +207,7 @@ public:
       \param id  ID of the dimension.
       \return  Offset of the dimension in bytes.
     */
-    size_t dimOffset(Dimension::Id::Enum id) const;
+    size_t dimOffset(Dimension::Id id) const;
 
     /**
       Get number of bytes that make up a point.  Returns the sum of the dimSize
@@ -222,18 +223,18 @@ public:
       \param id  ID of the dimension.
       \return  A pointer a dimension's detail.
     */
-    const Dimension::Detail *dimDetail(Dimension::Id::Enum id) const;
+    const Dimension::Detail *dimDetail(Dimension::Id id) const;
 
 private:
     virtual bool update(Dimension::Detail dd, const std::string& name);
 
-    Dimension::Type::Enum resolveType( Dimension::Type::Enum t1,
-        Dimension::Type::Enum t2);
+    Dimension::Type resolveType( Dimension::Type t1,
+        Dimension::Type t2);
 
 protected:
     std::vector<Dimension::Detail> m_detail;
     Dimension::IdList m_used;
-    std::map<std::string, Dimension::Id::Enum> m_propIds;
+    std::map<std::string, Dimension::Id> m_propIds;
     int m_nextFree;
     std::size_t m_pointSize;
     bool m_finalized;
diff --git a/include/pdal/PointRef.hpp b/include/pdal/PointRef.hpp
index 8e43b4c..0a201fc 100644
--- a/include/pdal/PointRef.hpp
+++ b/include/pdal/PointRef.hpp
@@ -34,6 +34,7 @@
 
 #pragma once
 
+#include <pdal/PDALUtils.hpp>
 #include <pdal/PointContainer.hpp>
 #include <pdal/PointLayout.hpp>
 #include <pdal/util/Utils.hpp>
@@ -48,16 +49,16 @@ public:
         m_container(container), m_layout(*container.layout()), m_idx(idx)
     {}
 
-    bool hasDim(Dimension::Id::Enum dim) const
+    bool hasDim(Dimension::Id dim) const
     { return m_layout.hasDim(dim); }
 
     template<class T>
-    T getFieldAs(Dimension::Id::Enum dim) const
+    T getFieldAs(Dimension::Id dim) const
     {
         T val(0);
         bool success = true;
         Everything e;
-        Dimension::Type::Enum type = m_layout.dimDetail(dim)->type();
+        Dimension::Type type = m_layout.dimDetail(dim)->type();
 
         m_container.getFieldInternal(dim, m_idx, &e);
         switch (type)
@@ -102,16 +103,17 @@ public:
             oss << "Unable to fetch data and convert as requested: ";
             oss << Dimension::name(dim) << ":" <<
                 Dimension::interpretationName(type) <<
-                "(" << (double)val << ") -> " << Utils::typeidName<T>();
+                "(" << Utils::toDouble(e, type) << ") -> " <<
+                Utils::typeidName<T>();
             throw pdal_error(oss.str());
         }
         return val;
     }
 
     template<typename T>
-    void setField(Dimension::Id::Enum dim, T val)
+    void setField(Dimension::Id dim, T val)
     {
-        Dimension::Type::Enum type = m_layout.dimDetail(dim)->type();
+        Dimension::Type type = m_layout.dimDetail(dim)->type();
         Everything e;
         bool success = false;
 
@@ -156,10 +158,10 @@ public:
 
     void setPointId(PointId idx)
         { m_idx = idx; }
-    inline void getField(char *val, Dimension::Id::Enum d,
-        Dimension::Type::Enum type) const;
-    inline void setField(Dimension::Id::Enum dim,
-        Dimension::Type::Enum type, const void *val);
+    inline void getField(char *val, Dimension::Id d,
+        Dimension::Type type) const;
+    inline void setField(Dimension::Id dim,
+        Dimension::Type type, const void *val);
 
     /// Fill a buffer with point data specified by the dimension list.
     /// \param[in] dims  List of dimensions/types to retrieve.
@@ -195,8 +197,8 @@ private:
     PointId m_idx;
 };
 
-inline void PointRef::getField(char *val, Dimension::Id::Enum d,
-    Dimension::Type::Enum type) const
+inline void PointRef::getField(char *val, Dimension::Id d,
+    Dimension::Type type) const
 {
     Everything e;
 
@@ -238,8 +240,8 @@ inline void PointRef::getField(char *val, Dimension::Id::Enum d,
     memcpy(val, &e, Dimension::size(type));
 }
 
-inline void PointRef::setField(Dimension::Id::Enum dim,
-    Dimension::Type::Enum type, const void *val)
+inline void PointRef::setField(Dimension::Id dim,
+    Dimension::Type type, const void *val)
 {
     Everything e;
 
diff --git a/include/pdal/PointTable.hpp b/include/pdal/PointTable.hpp
index d19c3ef..211a381 100644
--- a/include/pdal/PointTable.hpp
+++ b/include/pdal/PointTable.hpp
@@ -91,8 +91,8 @@ public:
     }
     virtual bool supportsView() const
         { return false; }
-
     MetadataNode privateMetadata(const std::string& name);
+    MetadataNode toMetadata() const;
 
 private:
     // Point data operations.
@@ -121,9 +121,9 @@ protected:
         { return m_layoutRef.pointSize() * numPts; }
 
 private:
-    virtual void setFieldInternal(Dimension::Id::Enum id, PointId idx,
+    virtual void setFieldInternal(Dimension::Id id, PointId idx,
         const void *value);
-    virtual void getFieldInternal(Dimension::Id::Enum id, PointId idx,
+    virtual void getFieldInternal(Dimension::Id id, PointId idx,
         void *value) const;
 
     // The number of points in each memory block.
diff --git a/include/pdal/PointView.hpp b/include/pdal/PointView.hpp
index 76ceb87..d457337 100644
--- a/include/pdal/PointView.hpp
+++ b/include/pdal/PointView.hpp
@@ -34,12 +34,13 @@
 
 #pragma once
 
-#include <pdal/util/Bounds.hpp>
-#include <pdal/pdal_internal.hpp>
+#include <pdal/DimDetail.hpp>
+#include <pdal/DimType.hpp>
 #include <pdal/PointContainer.hpp>
 #include <pdal/PointLayout.hpp>
 #include <pdal/PointRef.hpp>
 #include <pdal/PointTable.hpp>
+#include <pdal/util/Bounds.hpp>
 
 #include <memory>
 #include <queue>
@@ -112,24 +113,24 @@ public:
         { return PointRef(*this, id); }
 
     template<class T>
-    T getFieldAs(Dimension::Id::Enum dim, PointId pointIndex) const;
+    T getFieldAs(Dimension::Id dim, PointId pointIndex) const;
 
-    inline void getField(char *pos, Dimension::Id::Enum d,
-        Dimension::Type::Enum type, PointId id) const;
+    inline void getField(char *pos, Dimension::Id d,
+        Dimension::Type type, PointId id) const;
 
     template<typename T>
-    void setField(Dimension::Id::Enum dim, PointId idx, T val);
+    void setField(Dimension::Id dim, PointId idx, T val);
 
-    inline void setField(Dimension::Id::Enum dim, Dimension::Type::Enum type,
+    inline void setField(Dimension::Id dim, Dimension::Type type,
         PointId idx, const void *val);
 
     template <typename T>
-    bool compare(Dimension::Id::Enum dim, PointId id1, PointId id2)
+    bool compare(Dimension::Id dim, PointId id1, PointId id2)
     {
         return (getFieldInternal<T>(dim, id1) < getFieldInternal<T>(dim, id2));
     }
 
-    bool compare(Dimension::Id::Enum dim, PointId id1, PointId id2)
+    bool compare(Dimension::Id dim, PointId id1, PointId id2)
     {
         const Dimension::Detail *dd = layout()->dimDetail(dim);
 
@@ -172,7 +173,7 @@ public:
         }
     }
 
-    void getRawField(Dimension::Id::Enum dim, PointId idx, void *buf) const
+    void getRawField(Dimension::Id dim, PointId idx, void *buf) const
     {
         getFieldInternal(dim, idx, buf);
     }
@@ -193,17 +194,17 @@ public:
     static void calculateBounds(const PointViewSet&, BOX3D& box);
 
     void dump(std::ostream& ostr) const;
-    bool hasDim(Dimension::Id::Enum id) const
+    bool hasDim(Dimension::Id id) const
         { return layout()->hasDim(id); }
-    std::string dimName(Dimension::Id::Enum id) const
+    std::string dimName(Dimension::Id id) const
         { return layout()->dimName(id); }
     Dimension::IdList dims() const
         { return layout()->dims(); }
     std::size_t pointSize() const
         { return layout()->pointSize(); }
-    std::size_t dimSize(Dimension::Id::Enum id) const
+    std::size_t dimSize(Dimension::Id id) const
         { return layout()->dimSize(id); }
-    Dimension::Type::Enum dimType(Dimension::Id::Enum id) const
+    Dimension::Type dimType(Dimension::Id id) const
          { return layout()->dimType(id);}
     DimTypeList dimTypes() const
         { return layout()->dimTypes(); }
@@ -255,6 +256,7 @@ public:
         while (!m_temps.empty())
             m_temps.pop();
     }
+    MetadataNode toMetadata() const;
 
 protected:
     PointTableRef m_pointTable;
@@ -270,16 +272,16 @@ private:
     static int m_lastId;
 
     template<typename T_IN, typename T_OUT>
-    bool convertAndSet(Dimension::Id::Enum dim, PointId idx, T_IN in);
+    bool convertAndSet(Dimension::Id dim, PointId idx, T_IN in);
 
-    virtual void setFieldInternal(Dimension::Id::Enum dim, PointId idx,
+    virtual void setFieldInternal(Dimension::Id dim, PointId idx,
         const void *buf);
-    virtual void getFieldInternal(Dimension::Id::Enum dim, PointId idx,
+    virtual void getFieldInternal(Dimension::Id dim, PointId idx,
         void *buf) const
     { m_pointTable.getFieldInternal(dim, m_index[idx], buf); }
 
     template<class T>
-    T getFieldInternal(Dimension::Id::Enum dim, PointId pointIndex) const;
+    T getFieldInternal(Dimension::Id dim, PointId pointIndex) const;
     inline PointId getTemp(PointId id);
     void freeTemp(PointId id)
         { m_temps.push(id); }
@@ -292,7 +294,7 @@ struct PointViewLess
 };
 
 template <class T>
-T PointView::getFieldInternal(Dimension::Id::Enum dim, PointId id) const
+T PointView::getFieldInternal(Dimension::Id dim, PointId id) const
 {
     T t;
 
@@ -300,8 +302,8 @@ T PointView::getFieldInternal(Dimension::Id::Enum dim, PointId id) const
     return t;
 }
 
-inline void PointView::getField(char *pos, Dimension::Id::Enum d,
-    Dimension::Type::Enum type, PointId id) const
+inline void PointView::getField(char *pos, Dimension::Id d,
+    Dimension::Type type, PointId id) const
 {
     Everything e;
 
@@ -343,8 +345,8 @@ inline void PointView::getField(char *pos, Dimension::Id::Enum d,
     memcpy(pos, &e, Dimension::size(type));
 }
 
-inline void PointView::setField(Dimension::Id::Enum dim,
-    Dimension::Type::Enum type, PointId idx, const void *val)
+inline void PointView::setField(Dimension::Id dim,
+    Dimension::Type type, PointId idx, const void *val)
 {
     Everything e;
 
@@ -387,7 +389,7 @@ inline void PointView::setField(Dimension::Id::Enum dim,
 }
 
 template <class T>
-inline T PointView::getFieldAs(Dimension::Id::Enum dim,
+inline T PointView::getFieldAs(Dimension::Id dim,
     PointId pointIndex) const
 {
     assert(pointIndex < m_size);
@@ -448,7 +450,7 @@ inline T PointView::getFieldAs(Dimension::Id::Enum dim,
 
 
 template<typename T_IN, typename T_OUT>
-bool PointView::convertAndSet(Dimension::Id::Enum dim, PointId idx, T_IN in)
+bool PointView::convertAndSet(Dimension::Id dim, PointId idx, T_IN in)
 {
     T_OUT out;
 
@@ -460,7 +462,7 @@ bool PointView::convertAndSet(Dimension::Id::Enum dim, PointId idx, T_IN in)
 
 
 template<typename T>
-void PointView::setField(Dimension::Id::Enum dim, PointId idx, T val)
+void PointView::setField(Dimension::Id dim, PointId idx, T val)
 {
     const Dimension::Detail *dd = layout()->dimDetail(dim);
 
@@ -474,7 +476,7 @@ void PointView::setField(Dimension::Id::Enum dim, PointId idx, T val)
         ok = convertAndSet<T, double>(dim, idx, val);
         break;
     case Dimension::Type::Signed8:
-        setFieldInternal(dim, idx, &val);
+        ok = convertAndSet<T, int8_t>(dim, idx, val);
         break;
     case Dimension::Type::Signed16:
         ok = convertAndSet<T, int16_t>(dim, idx, val);
@@ -486,7 +488,7 @@ void PointView::setField(Dimension::Id::Enum dim, PointId idx, T val)
         ok = convertAndSet<T, int64_t>(dim, idx, val);
         break;
     case Dimension::Type::Unsigned8:
-        setFieldInternal(dim, idx, &val);
+        ok = convertAndSet<T, uint8_t>(dim, idx, val);
         break;
     case Dimension::Type::Unsigned16:
         ok = convertAndSet<T, uint16_t>(dim, idx, val);
@@ -513,7 +515,7 @@ void PointView::setField(Dimension::Id::Enum dim, PointId idx, T val)
 }
 
 /**
-void PointView::setFieldInternal(Dimension::Id::Enum dim, PointId idx,
+void PointView::setFieldInternal(Dimension::Id dim, PointId idx,
     const void *value)
 {
     PointId rawId = 0;
diff --git a/include/pdal/PointViewIter.hpp b/include/pdal/PointViewIter.hpp
index e097f1c..ddba768 100644
--- a/include/pdal/PointViewIter.hpp
+++ b/include/pdal/PointViewIter.hpp
@@ -80,7 +80,7 @@ public:
         return *this;
     }
 
-    bool compare(Dimension::Id::Enum dim, const PointIdxRef& p) const
+    bool compare(Dimension::Id dim, const PointIdxRef& p) const
         { return m_buf->compare(dim, m_id, p.m_id); }
 
     void swap(PointIdxRef& p)
diff --git a/include/pdal/Reader.hpp b/include/pdal/Reader.hpp
index 8325a10..76e5fb3 100644
--- a/include/pdal/Reader.hpp
+++ b/include/pdal/Reader.hpp
@@ -49,7 +49,7 @@ class PDAL_DLL Reader : public Stage
 public:
     typedef std::function<void(PointView&, PointId)> PointReadFunc;
 
-    Reader() : m_count(std::numeric_limits<point_count_t>::max())
+    Reader()
     {}
 
     void setReadCb(PointReadFunc cb)
@@ -59,6 +59,8 @@ protected:
     std::string m_filename;
     point_count_t m_count;
     PointReadFunc m_cb;
+    Arg *m_filenameArg;
+    Arg *m_countArg;
 
 private:
     virtual PointViewSet run(PointViewPtr view)
@@ -70,7 +72,7 @@ private:
         viewSet.insert(view);
         return viewSet;
     }
-    virtual void readerProcessOptions(const Options& options);
+    virtual void readerAddArgs(ProgramArgs& args);
     virtual point_count_t read(PointViewPtr /*view*/, point_count_t /*num*/)
         { return 0; }
 };
diff --git a/include/pdal/Scaling.hpp b/include/pdal/Scaling.hpp
new file mode 100644
index 0000000..ca2b508
--- /dev/null
+++ b/include/pdal/Scaling.hpp
@@ -0,0 +1,88 @@
+/******************************************************************************
+* Copyright (c) 2016, Hobu Inc. (info at hobu.co)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. nor the names of its contributors
+*       may be used to endorse or promote products derived from this
+*       software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#pragma once
+
+#include <pdal/PointView.hpp>
+#include <pdal/util/ProgramArgs.hpp>
+
+namespace pdal
+{
+
+class ProgramArgs;
+
+/**
+  Scaling provides support for transforming X/Y/Z values from double to
+  scaled integers and vice versa.
+*/
+class PDAL_DLL Scaling
+{
+public:
+    XForm m_xXform;          ///< X-dimension transform (scale/offset)
+    XForm m_yXform;          ///< Y-dimension transform (scale/offset)
+    XForm m_zXform;          ///< Z-dimension transform (scale/offset)
+    Arg *m_xOffArg;
+    Arg *m_yOffArg;
+    Arg *m_zOffArg;
+    Arg *m_xScaleArg;
+    Arg *m_yScaleArg;
+    Arg *m_zScaleArg;
+
+    /**
+       Determine if any of the transformations are non-standard.
+
+       \return  Whether any transforms are non-standard.
+    */
+    bool nonstandard() const
+    {
+        return m_xXform.nonstandard() || m_yXform.nonstandard() ||
+            m_zXform.nonstandard();
+    }
+
+    /**
+      Compute an automatic scale/offset for points in the PointView.
+
+      \param view  PointView on which scale should be computed.
+    */
+    virtual void setAutoXForm(const PointViewPtr view);
+
+    /**
+      Add option/command-line arguments for transform variables.
+
+      \param args  Argument set to add to.
+    */
+    void addArgs(ProgramArgs& args);
+};
+
+} // namespace pdal
+
diff --git a/include/pdal/Stage.hpp b/include/pdal/Stage.hpp
index c5c5b4d..7bc45da 100644
--- a/include/pdal/Stage.hpp
+++ b/include/pdal/Stage.hpp
@@ -39,6 +39,7 @@
 #include <pdal/pdal_internal.hpp>
 
 #include <pdal/Dimension.hpp>
+#include <pdal/DimType.hpp>
 #include <pdal/Log.hpp>
 #include <pdal/Metadata.hpp>
 #include <pdal/Options.hpp>
@@ -48,10 +49,12 @@
 #include <pdal/PointView.hpp>
 #include <pdal/QuickInfo.hpp>
 #include <pdal/SpatialReference.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
 
+class ProgramArgs;
 class StageRunner;
 class StageWrapper;
 
@@ -178,6 +181,13 @@ public:
     void addConditionalOptions(const Options& opts);
 
     /**
+      Add a stage's options to a ProgramArgs set.
+
+      \param args  ProgramArgs to add to.
+    */
+    void addAllArgs(ProgramArgs& args);
+
+    /**
       Add options to the existing option set.
 
       \param opts  Options to add.
@@ -200,6 +210,14 @@ public:
     }
 
     /**
+      Set the stage's log.
+
+      \param log  Log pointer.
+    */
+    void setLog(LogPtr& log)
+        { m_log = log; }
+
+    /**
       Return the stage's log pointer.
 
       \return  Log pointer.
@@ -213,7 +231,7 @@ public:
       \return  The stage's debug state.
     */
     bool isDebug() const
-        { return m_options.getValueOrDefault<bool>("debug", false); }
+        { return m_debug; }
 
     /**
       Return the name of a stage.
@@ -244,14 +262,6 @@ public:
         { return m_inputs; }
 
     /**
-      Return the stage's accepted options.
-
-      \return  The options that a stage handles.
-    */
-    virtual Options getDefaultOptions()
-        { return Options(); }
-
-    /**
       Get the stage's metadata node.
 
       \return  Stage's metadata.
@@ -275,31 +285,30 @@ protected:
     int m_progressFd;           ///< Descriptor for progress info.
 
     void setSpatialReference(MetadataNode& m, SpatialReference const&);
+    void addSpatialReferenceArg(ProgramArgs& args);
 
 private:
     bool m_debug;
     uint32_t m_verbose;
+    std::string m_logname;
     std::vector<Stage *> m_inputs;
     LogPtr m_log;
     SpatialReference m_spatialReference;
+    std::unique_ptr<ProgramArgs> m_args;
 
     Stage& operator=(const Stage&); // not implemented
     Stage(const Stage&); // not implemented
-    void Construct();
-
-    void l_processOptions(const Options& options);
 
-    /**
-      Process options.  Implement in subclass.
+    void setupLog();
+    void handleOptions();
 
-      \param options  Options to process.
-    */
-    virtual void processOptions(const Options& /*options*/)
-        {}
-    virtual void readerProcessOptions(const Options& /*options*/)
+    virtual void readerAddArgs(ProgramArgs& /*args*/)
         {}
-    virtual void writerProcessOptions(const Options& /*options*/)
+    void l_addArgs(ProgramArgs& args);
+
+    virtual void writerInitialize(PointTableRef /*table*/)
         {}
+
     void l_initialize(PointTableRef table);
 
     /**
@@ -311,6 +320,22 @@ private:
         { return QuickInfo(); }
 
     /**
+      Add arguments(options) handled by this stage.  Implement in subclass.
+
+      \param args  ProgramArgs object to which arguments should be added.
+    */
+    virtual void addArgs(ProgramArgs& /*args*/)
+    {}
+
+    /**
+      Process options.  Implement in subclass.
+
+      \param options  Options to process.
+    */
+    virtual void processOptions(const Options& /*options*/)
+        {}
+
+    /**
       Initialize stage after options have been processed.  Implement in
       subclass.  If you don't require the \ref table argument, you
       can implement the version of this function that takes no arguments
diff --git a/include/pdal/StageFactory.hpp b/include/pdal/StageFactory.hpp
index 021fd21..ff993ec 100644
--- a/include/pdal/StageFactory.hpp
+++ b/include/pdal/StageFactory.hpp
@@ -67,8 +67,16 @@ public:
     StageFactory(bool no_plugins = true);
 
     /**
-      Infer the reader to use based on filename extension.
+      Return the file extensions associated with a driver.
 
+      \param driver  Name of the driver whose extensions should be returned.
+    */
+    static StringList extensions(const std::string& driver);
+
+    /**
+      Infer the reader to use based on a filename.
+
+      \param filename  Filename that should be analyzed to determine a driver.
       \return  Driver name or empty string if no reader can be inferred from
         the filename.
     */
@@ -83,15 +91,6 @@ public:
     static std::string inferWriterDriver(const std::string& filename);
 
     /**
-      modify options based upon expectations implicit in a given filename.
-      e.g. output files ending in .laz should be compressed
-
-      \param filename  Name of file for which options should be inferred.
-      \return  Inferred options.
-    */  
-    static pdal::Options inferWriterOptionsChanges(const std::string& filename);
-
-    /**
       Create a stage and return a pointer to the created stage.
       The factory takes ownership of any successfully created stage.
 
diff --git a/include/pdal/StageWrapper.hpp b/include/pdal/StageWrapper.hpp
index 38e4cc2..4384220 100644
--- a/include/pdal/StageWrapper.hpp
+++ b/include/pdal/StageWrapper.hpp
@@ -16,8 +16,6 @@ public:
         s.l_initialize(table);
         s.initialize();
     }
-    static void processOptions(Stage& s, const Options& options)
-        { s.processOptions(options); }
     static void addDimensions(Stage& s, PointLayoutPtr layout)
         { s.addDimensions(layout); }
     static void ready(Stage& s, PointTableRef table)
diff --git a/include/pdal/Writer.hpp b/include/pdal/Writer.hpp
index 9753aa3..e705c34 100644
--- a/include/pdal/Writer.hpp
+++ b/include/pdal/Writer.hpp
@@ -52,6 +52,7 @@ class UserCallback;
 class PDAL_DLL Writer : public Stage
 {
     friend class WriterWrapper;
+    friend class DbWriter;
     friend class FlexWriter;
 
 public:
@@ -63,20 +64,9 @@ public:
 
 protected:
     std::string m_filename;  ///< Output filename
-    XForm m_xXform;          ///< X-dimension transform (scale/offset)
-    XForm m_yXform;          ///< Y-dimension transform (scale/offset)
-    XForm m_zXform;          ///< Z-dimension transform (scale/offset)
-    StringList m_outputDims; ///< List of dimensions to write
     std::string::size_type m_hashPos;
 
     /**
-      Compute an automatic scale/offset for points in the PointView.
-
-      \param view  PointView on which scale should be computed.
-    */
-    virtual void setAutoXForm(const PointViewPtr view);
-
-    /**
       Locate template placeholder ('#') and validate filename with respect
       to placeholder.
     */
@@ -90,7 +80,8 @@ private:
         viewSet.insert(view);
         return viewSet;
     }
-    virtual void writerProcessOptions(const Options& options);
+    virtual void writerInitialize(PointTableRef table)
+    {}
 
     /**
       Write the point in a PointView.  This is a simplification of the
diff --git a/include/pdal/XMLSchema.hpp b/include/pdal/XMLSchema.hpp
index b88c0c4..4eeb8cd 100644
--- a/include/pdal/XMLSchema.hpp
+++ b/include/pdal/XMLSchema.hpp
@@ -94,11 +94,11 @@ class PDAL_DLL XMLSchema
 {
 public:
     XMLSchema(std::string xml, std::string xsd = "",
-        Orientation::Enum orientation = Orientation::PointMajor);
+        Orientation orientation = Orientation::PointMajor);
     XMLSchema(const XMLDimList& dims, MetadataNode m = MetadataNode(),
-        Orientation::Enum orientation = Orientation::PointMajor);
+        Orientation orientation = Orientation::PointMajor);
     XMLSchema(const PointLayoutPtr& pointTable, MetadataNode m = MetadataNode(),
-        Orientation::Enum orientation = Orientation::PointMajor);
+        Orientation orientation = Orientation::PointMajor);
     XMLSchema() : m_orientation(Orientation::PointMajor)
     {}
 
@@ -112,25 +112,25 @@ public:
 
     MetadataNode getMetadata() const
         { return m_metadata;}
-    void setId(const std::string& name, Dimension::Id::Enum id)
+    void setId(const std::string& name, Dimension::Id id)
         { xmlDim(name).m_dimType.m_id = id; }
-    void setXForm(Dimension::Id::Enum id, XForm xform)
+    void setXForm(Dimension::Id id, XForm xform)
         { xmlDim(id).m_dimType.m_xform = xform; }
-    XForm xForm(Dimension::Id::Enum id) const
+    XForm xForm(Dimension::Id id) const
         { return xmlDim(id).m_dimType.m_xform; }
-    void setOrientation(Orientation::Enum orientation)
+    void setOrientation(Orientation orientation)
         { m_orientation = orientation; }
-    Orientation::Enum orientation() const
+    Orientation orientation() const
         { return m_orientation; }
 
 private:
-    Orientation::Enum m_orientation;
+    Orientation m_orientation;
     XMLDimList m_dims;
     void* m_global_context;
     MetadataNode m_metadata;
 
-    XMLDim& xmlDim(Dimension::Id::Enum id);
-    const XMLDim& xmlDim(Dimension::Id::Enum id) const;
+    XMLDim& xmlDim(Dimension::Id id);
+    const XMLDim& xmlDim(Dimension::Id id) const;
     XMLDim& xmlDim(const std::string& name);
     xmlDocPtr init(const std::string& xml, const std::string& xsd);
     bool validate(xmlDocPtr doc, const std::string& xsd);
diff --git a/include/pdal/pdal_types.hpp b/include/pdal/pdal_types.hpp
index 4de65a1..3e32fa5 100644
--- a/include/pdal/pdal_types.hpp
+++ b/include/pdal/pdal_types.hpp
@@ -36,15 +36,18 @@
 
 #include <stdint.h>
 #include <cstdlib>
+#include <istream>
 #include <stdexcept>
 #include <string>
 #include <vector>
 
+#include <iostream>
+
 namespace pdal
 {
 
-typedef uint32_t PointId;
-typedef uint32_t point_count_t;
+typedef uint64_t PointId;
+typedef uint64_t point_count_t;
 typedef std::vector<std::string> StringList;
 
 typedef union
@@ -63,47 +66,89 @@ typedef union
 
 struct XForm
 {
-public:
-    XForm() : m_scale(1.0), m_autoScale(false), m_offset(0.0),
-        m_autoOffset(false)
+    struct XFormComponent
+    {
+        XFormComponent() : m_val(0.0), m_auto(false)
+        {}
+
+        XFormComponent(double val) : m_val(val), m_auto(false)
+        {}
+
+        double m_val;
+        bool m_auto;
+
+        bool set(const std::string& sval)
+        {
+            if (sval == "auto")
+                m_auto = true;
+            else
+            {
+                size_t pos;
+                try
+                {
+                    m_val = std::stod(sval, &pos);
+                }
+                catch (...)
+                {
+                    // Set error condition.
+                    pos = sval.size() + 1;
+                }
+                if (pos != sval.size())
+                {
+                    m_val = 0;
+                    return false;
+                }
+            }
+            return true;
+        }
+
+        friend std::istream& operator>>(std::istream& in, XFormComponent& xfc);
+        friend std::ostream& operator<<(std::ostream& in,
+            const XFormComponent& xfc);
+    };
+
+    XForm() : m_scale(1.0), m_offset(0.0)
     {}
 
-    XForm(double scale, double offset) : m_scale(scale), m_autoScale(false),
-        m_offset(offset), m_autoOffset(false)
+    XForm(double scale, double offset) : m_scale(scale), m_offset(offset)
     {}
 
-    double m_scale;
-    // Whether a scale value should be determined by examining the data.
-    bool m_autoScale;
-    double m_offset;
-    // Whether an offset value should be determined by examining the data.
-    bool m_autoOffset;
+    // Scale component of the transform.
+    XFormComponent m_scale;
+    // Offset component of the transform.
+    XFormComponent m_offset;
+
+    double toScaled(double val) const
+        { return (val - m_offset.m_val) / m_scale.m_val; }
 
     bool nonstandard() const
     {
-        return m_autoScale || m_autoOffset || m_scale != 1.0 || m_offset != 0.0;
+        return m_scale.m_auto || m_offset.m_auto ||
+            m_scale.m_val != 1.0 || m_offset.m_val != 0.0;
     }
+};
 
-    void setOffset(const std::string& sval)
-    {
-        if (sval == "auto")
-            m_autoOffset = true;
-        else
-            m_offset = std::strtod(sval.c_str(), NULL);
-    }
+inline std::istream& operator>>(std::istream& in, XForm::XFormComponent& xfc)
+{
+    std::string sval;
 
-    void setScale(const std::string& sval)
-    {
-        if (sval == "auto")
-            m_autoScale = true;
-        else
-            m_scale = std::strtod(sval.c_str(), NULL);
-    }
-};
+    in >> sval;
+    if (!xfc.set(sval))
+        in.setstate(std::ios_base::failbit);
+    return in;
+}
 
-namespace LogLevel
+inline std::ostream& operator<<(std::ostream& out,
+    const XForm::XFormComponent& xfc)
 {
-enum Enum
+    if (xfc.m_auto)
+        out << "auto";
+    else
+        out << xfc.m_val;
+    return out;
+}
+
+enum class LogLevel
 {
     Error = 0,
     Warning,
@@ -115,16 +160,12 @@ enum Enum
     Debug4,
     Debug5
 };
-} // namespace LogLevel
 
-namespace Orientation
-{
-enum Enum
+enum class Orientation
 {
     PointMajor,
     DimensionMajor
 };
-} // namespace Orientation
 
 class pdal_error : public std::runtime_error
 {
diff --git a/include/pdal/plang/Environment.hpp b/include/pdal/plang/Environment.hpp
index 972f10c..689c3ed 100644
--- a/include/pdal/plang/Environment.hpp
+++ b/include/pdal/plang/Environment.hpp
@@ -74,7 +74,7 @@ public:
     void reset_stdout();
 
     static EnvironmentPtr get();
-    static int getPythonDataType(Dimension::Type::Enum t);
+    static int getPythonDataType(Dimension::Type t);
 
 private:
     Redirector m_redirector;
diff --git a/include/pdal/plang/Invocation.hpp b/include/pdal/plang/Invocation.hpp
index 76cc237..56790ee 100644
--- a/include/pdal/plang/Invocation.hpp
+++ b/include/pdal/plang/Invocation.hpp
@@ -62,10 +62,10 @@ public:
     // adds the new variable to the arguments dictionary
     void insertArgument(std::string const& name,
                         uint8_t* data,
-                        Dimension::Type::Enum t,
+                        Dimension::Type t,
                         point_count_t count);
     void *extractResult(const std::string& name,
-                        Dimension::Type::Enum dataType);
+                        Dimension::Type dataType);
 
     bool hasOutputVariable(const std::string& name) const;
 
diff --git a/include/pdal/util/Bounds.hpp b/include/pdal/util/Bounds.hpp
index 5f15ab5..fc8c2d8 100644
--- a/include/pdal/util/Bounds.hpp
+++ b/include/pdal/util/Bounds.hpp
@@ -47,10 +47,6 @@ namespace pdal
 */
 class PDAL_DLL BOX2D
 {
-protected:
-    static const double LOWEST;
-    static const double HIGHEST;
-
 public:
     double minx;  ///< Minimum X value.
     double maxx;  ///< Maximum X value.
@@ -298,11 +294,13 @@ public:
     BOX3D()
        { clear(); }
 
-/**
     BOX3D(const BOX3D& box) :
         BOX2D(box), minz(box.minz), maxz(box.maxz)
     {}
-**/
+
+    explicit BOX3D(const BOX2D& box) :
+        BOX2D(box), minz(0), maxz(0)
+    {}
 
     /**
       Construct and initialize a bounds box.
@@ -546,6 +544,32 @@ public:
 };
 
 /**
+  Wrapper for BOX3D and BOX2D to allow extraction as either.  Typically used
+  to facilitate streaming either a BOX2D or BOX3D 
+*/
+class PDAL_DLL Bounds
+{
+public:
+    Bounds()
+    {}
+
+    Bounds(const BOX3D& box);
+    Bounds(const BOX2D& box);
+
+    BOX3D to3d() const;
+    BOX2D to2d() const;
+    bool is3d() const;
+
+    friend PDAL_DLL std::istream& operator >> (std::istream& in, Bounds& bounds);
+
+private:
+    BOX3D m_box;
+
+    void set(const BOX3D& box);
+    void set(const BOX2D& box);
+};
+
+/**
   Write a 2D bounds box to a stream in a format used by PDAL options.
 
   \param ostr  Stream to write to.
@@ -610,4 +634,6 @@ extern PDAL_DLL std::istream& operator>>(std::istream& istr, BOX2D& bounds);
 */
 extern PDAL_DLL std::istream& operator>>(std::istream& istr, BOX3D& bounds);
 
+PDAL_DLL std::istream& operator >> (std::istream& in, Bounds& bounds);
+
 } // namespace pdal
diff --git a/include/pdal/util/ProgramArgs.hpp b/include/pdal/util/ProgramArgs.hpp
index 27b7e02..fa8b50e 100644
--- a/include/pdal/util/ProgramArgs.hpp
+++ b/include/pdal/util/ProgramArgs.hpp
@@ -22,9 +22,9 @@
 
 #pragma once
 
-#include <deque>
 #include <map>
 #include <memory>
+#include <vector>
 
 #include <pdal/util/Utils.hpp>
 
@@ -40,6 +40,72 @@ public:
     std::string m_error;
 };
 
+namespace
+{
+
+class ArgValList
+{
+    struct ArgVal
+    {
+        std::string m_val;
+        bool m_consumed;
+
+        ArgVal(const std::string& s) :
+            m_val(s), m_consumed(false)
+        {}
+    };
+
+public:
+    ArgValList(const std::vector<std::string>& slist) : m_unconsumedStart(0)
+    {
+        for (const std::string& s : slist)
+            add(s);
+    }
+
+    void add(const std::string& s)
+    {
+        if (s.empty())
+            return;
+        if (s.size() > 1 && s[0] == '-' && s[1] != '-')
+            for (size_t i = 1; i < s.size(); i++)
+                m_vals.push_back({std::string("-") + s[i]});
+        else
+            m_vals.push_back({s});
+    }
+
+    void consume(size_t i)
+    {
+        m_vals[i].m_consumed = true;
+        if (i == m_unconsumedStart)
+            while (i < m_vals.size() && consumed(++i))
+                m_unconsumedStart++;
+    }
+
+    std::vector<std::string> unconsumedArgs() const
+    {
+        std::vector<std::string> remainingVals;
+
+        for (size_t i = firstUnconsumed(); i < size(); ++i)
+            if (!consumed(i))
+                remainingVals.push_back(m_vals[i].m_val);
+        return remainingVals;
+    }
+
+    size_t size() const
+        { return m_vals.size(); }
+    const std::string& operator[](size_t i) const
+        { return m_vals[i].m_val; }
+    bool consumed(size_t i) const
+        { return m_vals[i].m_consumed; }
+    size_t firstUnconsumed() const
+        { return m_unconsumedStart; }
+private:
+    std::vector<ArgVal> m_vals;
+    size_t m_unconsumedStart;
+};
+
+} // unnamed namespace
+
 
 /**
    Description of an argument that can be parsed by \class ProgramArgs.
@@ -120,10 +186,35 @@ public:
         return *this;
     }
     /**
+      Provide error text for the argument to override the default.
+
+      \param error  Error text.
+    */
+    virtual Arg& setErrorText(const std::string& error)
+    {
+        m_error = error;
+        return *this;
+    }
+    /**
       Return whether the argument was set during command-line parsing.
     */
     bool set() const
         { return m_set; }
+    /**
+      Return whether a default value was provided for the argument.
+
+      \return  Whether a default was provided.
+    */
+    virtual bool defaultProvided() const
+        { return false; }
+    /**
+      Return a string representation of an Arg's default value, or an
+      empty string if none exists.
+
+      \return  Default value as a string.
+    */
+    virtual std::string defaultVal() const
+        { return std::string(); }
 
 public:
     /**
@@ -155,15 +246,13 @@ public:
     virtual void reset() = 0;
 
     /**
-      Set the argument's value from the positional list.
+      Set the argument's value from the list of command-line args.
       \note  Not intended to be called from user code.
 
-      \param posList  The list of positional strings specified on the command
-        line.
-      \return  The number of positional strings consumed by this argument.
+      \param vals  The list of command-line argument values.
     */
-    virtual size_t assignPositional(const std::deque<std::string> posList)
-        { return 0; }
+    virtual void assignPositional(ArgValList& vals)
+    {}
 
     /**
       Returns the positional type of the argument.
@@ -231,6 +320,7 @@ protected:
     bool m_set;
     bool m_hidden;
     PosType m_positional;
+    std::string m_error;
 };
 
 /**
@@ -242,7 +332,7 @@ class TArg : public Arg
 {
 public:
     /**
-      Constructor.
+      Constructor that takes a default argument.
 
       \param longname  Name of argument specified on command line with "--"
         prefix.
@@ -256,7 +346,24 @@ public:
     TArg(const std::string& longname, const std::string& shortname,
         const std::string& description, T& variable, T def) :
         Arg(longname, shortname, description), m_var(variable),
-        m_defaultVal(def)
+        m_defaultVal(def), m_defaultProvided(true)
+    { m_var = m_defaultVal; }
+
+    /**
+      Constructor.
+
+      \param longname  Name of argument specified on command line with "--"
+        prefix.
+      \param shortname  Optional name of argument specified on command
+        line with "-" prefix.
+      \param description  Argument description.
+      \param variable  Variable to which the value of the argument should
+        be bound.
+    */
+    TArg(const std::string& longname, const std::string& shortname,
+        const std::string& description, T& variable) :
+        Arg(longname, shortname, description), m_var(variable),
+        m_defaultVal(T()), m_defaultProvided(false)
     { m_var = m_defaultVal; }
 
     /**
@@ -271,7 +378,14 @@ public:
     */
     virtual void setValue(const std::string& s)
     {
-        if (s.size() && s[0] == '-')
+        if (m_set)
+        {
+            std::ostringstream oss;
+            oss << "Attempted to set value twice for argument '" <<
+                m_longname << "'.";
+            throw arg_error(oss.str());
+        }
+        if (s.empty())
         {
             std::stringstream oss;
             oss << "Argument '" << m_longname << "' needs a value and none "
@@ -282,8 +396,13 @@ public:
         if (!Utils::fromString(s, m_var))
         {
             std::ostringstream oss;
-            oss << "Invalid value for argument '" << m_longname << "'.";
-            throw arg_error(oss.str());
+            if (m_error.size())
+                throw arg_error(m_error);
+            else
+            {
+                oss << "Invalid value for argument '" << m_longname << "'.";
+                throw arg_error(oss.str());
+            }
         }
         m_set = true;
     }
@@ -303,42 +422,57 @@ public:
     }
 
     /**
-      Set the argument's value from the positional list.
+      Set the argument's value from the command-line args.
 
       If no value is provided for a required positional option, an arg_error
       exception is thrown.
       \note  Not intended to be called from user code.
 
-      \param posList  The list of positional strings specified on the command
-        line.
-      \return  The number of positional strings consumed by this argument
-        (always 0 or 1).
+      \param vals  The list of command-line args.
     */
-    virtual size_t assignPositional(const std::deque<std::string> posList)
+    virtual void assignPositional(ArgValList& vals)
     {
         if (m_positional == PosType::None || m_set)
-            return 0;
-
-        if (posList.empty())
+            return;
+        for (size_t i = vals.firstUnconsumed(); i < vals.size(); ++i)
         {
-            if (m_positional == PosType::Required)
-            {
-                std::ostringstream oss;
+            const std::string& val = vals[i];
+            if ((val.size() && val[0] == '-') || vals.consumed(i))
+                continue;
+            setValue(val);
+            vals.consume(i);
+            return;
+        }
+        if (m_positional == PosType::Required)
+        {
+            std::ostringstream oss;
 
-                oss << "Missing value for positional argument '" <<
-                    m_longname << "'.";
-                throw arg_error(oss.str());
-            }
-            else
-                return 0;
+            oss << "Missing value for positional argument '" <<
+                m_longname << "'.";
+            throw arg_error(oss.str());
         }
-        setValue(posList.front());
-        return 1;
     }
 
+    /**
+      Return whether a default value was provided for the argument.
+
+      \return  Whether a default was provided.
+    */
+    virtual bool defaultProvided() const
+        { return m_defaultProvided; }
+
+    /**
+      Return a string representation of an Arg's default value.
+
+      \return  Default value as a string.
+    */
+    virtual std::string defaultVal() const
+        { return Utils::toString(m_defaultVal); }
+
 private:
     T& m_var;
     T m_defaultVal;
+    bool m_defaultProvided;
 };
 
 /**
@@ -351,7 +485,7 @@ class TArg<bool> : public Arg
 {
 public:
     /**
-      Constructor for boolean arguments.
+      Constructor for boolean arguments with default value.
 
       \param longname  Name of argument specified on command line with "--"
         prefix.
@@ -365,7 +499,24 @@ public:
     TArg(const std::string& longname, const std::string& shortname,
         const std::string& description, bool& variable, bool def) :
         Arg(longname, shortname, description), m_val(variable),
-        m_defaultVal(def)
+        m_defaultVal(def), m_defaultProvided(true)
+    { m_val = m_defaultVal; }
+
+    /**
+      Constructor for boolean arguments without default value.
+
+      \param longname  Name of argument specified on command line with "--"
+        prefix.
+      \param shortname  Optional name of argument specified on command
+        line with "-" prefix.
+      \param description  Argument description.
+      \param variable  bool variable to which the value of the argument should
+        be bound.
+    */
+    TArg(const std::string& longname, const std::string& shortname,
+        const std::string& description, bool& variable) :
+        Arg(longname, shortname, description), m_val(variable),
+        m_defaultVal(false), m_defaultProvided(false)
     { m_val = m_defaultVal; }
 
     /**
@@ -380,8 +531,9 @@ public:
     /**
       Set a an argument's value from a string.
 
-      \note  The string argument is ingored.  The value that is set is 'true'
-        if the variable's default value is 'false', and vice-versa.
+      \note  The argumet is either 'true' or 'false'.  True means that we're
+        setting the option, which sets the negative of the default value.
+        False sets the option to the default value (essentially a no-op).
       \note  Not intended to be called from user code.
 
       \param s  Value to set [ignored].
@@ -395,7 +547,12 @@ public:
                 "was provided.";
             throw arg_error(oss.str());
         }
-        m_val = !m_defaultVal;
+        if (s == "invert")
+            m_val = !m_defaultVal;
+        else if (s == "true")
+            m_val = true;
+        else
+            m_val = false;
         m_set = true;
     }
 
@@ -440,10 +597,25 @@ public:
         throw arg_error(oss.str());
         return *this;
     }
+    /**
+      Return whether a default value was provided for the argument.
+
+      \return  Whether a default was provided.
+    */
+    virtual bool defaultProvided() const
+        { return m_defaultProvided; }
+    /**
+      Return a string representation of an Arg's default value.
+
+      \return  Default value as a string.
+    */
+    virtual std::string defaultVal() const
+        { return Utils::toString(m_defaultVal); }
 
 private:
     bool& m_val;
     bool m_defaultVal;
+    bool m_defaultProvided;
 };
 
 /**
@@ -452,8 +624,70 @@ private:
   arguments are necessarily bound to variables that are vectors.
   \note  Doesn't properly support list-based boolean values.
 */
+class BaseVArg : public Arg
+{
+public:
+    /**
+      Constructor.
+
+      \param longname  Name of argument specified on command line with "--"
+        prefix.
+      \param shortname  Optional name of argument specified on command
+        line with "-" prefix.
+      \param description  Argument description.
+    */
+    BaseVArg(const std::string& longname, const std::string& shortname,
+        const std::string& description) : Arg(longname, shortname, description)
+    {}
+
+    /**
+      Set the argument's value from the command-line args.
+
+      List-based arguments consume ALL positional arguments until
+      one is found that can't be converted to the type of the bound variable.
+      \note  Not intended to be called from user code.
+
+      \param vals  The list of command-line args.
+    */
+    virtual void assignPositional(ArgValList& vals)
+    {
+        if (m_positional == PosType::None || m_set)
+            return;
+
+        int cnt = 0;
+        for (size_t i = vals.firstUnconsumed(); i < vals.size(); ++i)
+        {
+            const std::string& val = vals[i];
+            if ((val.size() && val[0] == '-') || vals.consumed(i))
+                continue;
+            try
+            {
+                setValue(val);
+                vals.consume(i);
+                cnt++;
+            }
+            catch (arg_error&)
+            {
+                break;
+            }
+        }
+        if (cnt == 0 && m_positional == PosType::Required)
+        {
+            std::ostringstream oss;
+
+            oss << "Missing value for positional argument '" <<
+                m_longname << "'.";
+            throw arg_error(oss.str());
+        }
+    }
+};
+
+/**
+  Description of a generic list-based (vector) argument.
+  \note  Doesn't properly support list-based boolean values.
+*/
 template <typename T>
-class VArg : public Arg
+class VArg : public BaseVArg
 {
 public:
     /**
@@ -468,8 +702,11 @@ public:
     */
     VArg(const std::string& longname, const std::string& shortname,
         const std::string& description, std::vector<T>& variable) :
-        Arg(longname, shortname, description), m_var(variable)
-    {}
+        BaseVArg(longname, shortname, description), m_var(variable)
+    {
+        // Clearing the vector resets to "default" value.
+        m_var.clear();
+    }
 
     /**
       Set a an argument's value from a string.
@@ -515,45 +752,76 @@ public:
         m_hidden = false;
     }
 
+private:
+    std::vector<T>& m_var;
+};
+
+/**
+  Description of an argument tied to a string vector.
+*/
+template <>
+class VArg<std::string> : public BaseVArg
+{
+public:
     /**
-      Set the argument's value from the positional list.
+      Constructor.
 
-      List-based arguments consume ALL positional arguments until
-      one is found that can't be converted to the type of the bound variable.
+      \param longname  Name of argument specified on command line with "--"
+        prefix.
+      \param shortname  Optional name of argument specified on command
+        line with "-" prefix.
+      \param description  Argument description.
+      \param variable  Variable to which the argument value(s) should be bound.
+    */
+    VArg(const std::string& longname, const std::string& shortname,
+        const std::string& description, std::vector<std::string>& variable) :
+        BaseVArg(longname, shortname, description), m_var(variable)
+    {}
+
+    /**
+      Set a an argument's value from a string.
+
+      Throws an arg_error exception if \a s can't be converted to
+      the argument's type.
       \note  Not intended to be called from user code.
 
-      \param posList  The list of positional strings specified on the command
-        line.
-      \return  The number of positional strings consumed by this argument.
+      \param s  Value to set.
     */
-    virtual size_t assignPositional(const std::deque<std::string> posList)
+    virtual void setValue(const std::string& s)
     {
-        if (m_positional == PosType::None || m_set)
-            return 0;
+        std::vector<std::string> slist = Utils::split2(s, ',');
+        for (auto& ts : slist)
+            Utils::trim(ts);
 
-        size_t cnt;
-        for (cnt = 0; cnt < posList.size(); ++cnt)
-            try
-            {
-                setValue(posList[cnt]);
-            }
-            catch (arg_error&)
-            {
-                break;
-            }
-        if (cnt == 0 && m_positional == Arg::PosType::Required)
+        if ((s.size() && s[0] == '-') || slist.empty())
         {
             std::ostringstream oss;
 
-            oss << "Missing value for positional argument '" <<
-                m_longname << "'.";
+            oss << "Missing value for argument '" << m_longname << "'.";
             throw arg_error(oss.str());
         }
-        return cnt;
+        m_rawVal = s;
+        m_var.reserve(m_var.size() + slist.size());
+        m_var.insert(m_var.end(), slist.begin(), slist.end());
+        m_set = true;
+    }
+
+    /**
+      Reset the argument's state.
+
+      Set the internal state of the argument and it's referenced variable
+      as if no command-line parsing had occurred.
+      \note  For testing.  Not intended to be called from user code.
+    */
+    virtual void reset()
+    {
+        m_var.clear();
+        m_set = false;
+        m_hidden = false;
     }
 
 private:
-    std::vector<T>& m_var;
+    std::vector<std::string>& m_var;
 };
 
 /**
@@ -564,6 +832,7 @@ private:
 */
 class ProgramArgs
 {
+
 public:
     /**
       Add a string argument to the list of arguments.
@@ -635,7 +904,7 @@ public:
     }
 
     /**
-      Add an argument to the list of arguments.
+      Add an argument to the list of arguments with a default.
 
       \param name  Name of argument.  Argument names are specified as
         "longname[,shortname]", where shortname is an optional one-character
@@ -648,7 +917,7 @@ public:
     */
     template<typename T>
     Arg& add(const std::string& name, const std::string description, T& var,
-        T def = T())
+        T def)
     {
         std::string longname, shortname;
         splitName(name, longname, shortname);
@@ -661,35 +930,26 @@ public:
     }
 
     /**
-      Parse a command line as specified by its argument list.  Parsing
-      validates the argument vector and assigns values to variables bound
-      to added arguments.
+      Add an argument to the list of arguments.
 
-      \param argc  Number of entries in the argument list.
-      \param argv  List of strings that constitute the argument list.
+      \param name  Name of argument.  Argument names are specified as
+        "longname[,shortname]", where shortname is an optional one-character
+        abbreviation.
+      \param description  Description of the argument.
+      \param var  Reference to variable to bind to argument.
+      \return  Reference to the new argument.
     */
-    void parse(int argc, char *argv[])
+    template<typename T>
+    Arg& add(const std::string& name, const std::string description, T& var)
     {
-        std::vector<std::string> s;
-        for (size_t i = 0; i < (size_t)argc; ++i)
-            s.push_back(argv[i]);
-        parse(s);
-    }
-
-    /**
-      Parse a command line as specified by its argument vector.  No validation
-      occurs and no exceptions are raised, but assignments are made
-      to bound variables where possible.
+        std::string longname, shortname;
+        splitName(name, longname, shortname);
 
-      \param argc  Number of entries in the argument list.
-      \param argv  List of strings that constitute the argument list.
-    */
-    void parseSimple(int argc, char *argv[])
-    {
-        std::vector<std::string> s;
-        for (size_t i = 0; i < (size_t)argc; ++i)
-            s.push_back(argv[i]);
-        parseSimple(s);
+        Arg *arg = new TArg<T>(longname, shortname, description, var);
+        addLongArg(longname, arg);
+        addShortArg(shortname, arg);
+        m_args.push_back(std::unique_ptr<Arg>(arg));
+        return *arg;
     }
 
     /**
@@ -701,23 +961,43 @@ public:
     */
     void parseSimple(std::vector<std::string>& s)
     {
-        m_positional.clear();
-        for (size_t i = 0; i < s.size();)
+        ArgValList vals(s);
+
+        for (size_t i = 0; i < vals.size();)
         {
-            std::string& arg = s[i];
+            const std::string& arg = vals[i];
             // This may be the value, or it may not.  We're passing it along
-            // just in case.  If there is no value, pass along "-" to make
+            // just in case.  If there is no value, pass along "" to make
             // clear that there is none.
-            std::string value((i != s.size() - 1) ? s[i + 1] : "-");
+            std::string value((i != vals.size() - 1) ? vals[i + 1] : "");
             try
             {
-                i += parseArg(arg, value);
+                int matched = parseArg(arg, value);
+                if (!matched)
+                    i++;
+                else
+                    while (matched--)
+                        vals.consume(i++);
             }
-            catch (arg_error& )
+            catch (arg_error&)
             {
                 i++;
             }
         }
+
+        // Go through args and assign those unset to items from the command
+        // line not already consumed.
+        for (auto ai = m_args.begin(); ai != m_args.end(); ++ai)
+        {
+            Arg *arg = ai->get();
+            try
+            {
+                arg->assignPositional(vals);
+            }
+            catch (arg_error&)
+            {}
+        }
+        s = vals.unconsumedArgs();
     }
 
     /**
@@ -729,26 +1009,29 @@ public:
     */
     void parse(std::vector<std::string>& s)
     {
-        m_positional.clear();
         validate();
-
-        for (size_t i = 0; i < s.size();)
+        ArgValList vals(s);
+        for (size_t i = 0; i < vals.size();)
         {
-            std::string& arg = s[i];
+            const std::string& arg = vals[i];
             // This may be the value, or it may not.  We're passing it along
-            // just in case.  If there is no value, pass along "-" to make
+            // just in case.  If there is no value, pass along "" to make
             // clear that there is none.
-            std::string value((i != s.size() - 1) ? s[i + 1] : "-");
-            i += parseArg(arg, value);
+            std::string value((i != vals.size() - 1) ? vals[i + 1] : "");
+            size_t matched = parseArg(arg, value);
+            if (!matched)
+                i++;
+            else
+                while (matched--)
+                    vals.consume(i++);
         }
 
-        // Go through things looking for matches.
+        // Go through args and assign those unset to items from the command
+        // line not already consumed.
         for (auto ai = m_args.begin(); ai != m_args.end(); ++ai)
         {
             Arg *arg = ai->get();
-            size_t cnt = arg->assignPositional(m_positional);
-            while (cnt--)
-                m_positional.pop_front();
+            arg->assignPositional(vals);
         }
     }
 
@@ -796,7 +1079,7 @@ public:
       \param totalWidth  Total width to assume for formatting output.
         Typically this is the width of a terminal window.
     */
-    void dump(std::ostream& out, size_t indent, size_t totalWidth)
+    void dump(std::ostream& out, size_t indent, size_t totalWidth) const
     {
         size_t namelen = 0;
         std::vector<std::pair<std::string, std::string>> info;
@@ -824,7 +1107,8 @@ public:
 
         for (auto i : info)
         {
-            StringList descrip = Utils::wordWrap(i.second, secondLen, firstlen);
+            std::vector<std::string> descrip =
+                Utils::wordWrap(i.second, secondLen, firstlen);
 
             std::string name = i.first;
             out << std::string(indent, ' ');
@@ -842,6 +1126,38 @@ public:
         }
     }
 
+    /**
+      Write a verbose description of arguments to an output stream.  Each
+      argument is on its own line.  The argument's description follows
+      on subsequent lines.
+
+      \param out  Stream to which output should be written.
+      \param nameIndent  Number of characters to indent argument lines.
+      \param descripIndent  Number of characters to indent description lines.
+      \param totalWidth  Total line width.
+
+    */
+    void dump2(std::ostream& out, size_t nameIndent, size_t descripIndent,
+        size_t totalWidth) const
+    {
+        size_t width = totalWidth - descripIndent;
+        for (auto ai = m_args.begin(); ai != m_args.end(); ++ai)
+        {
+            Arg *a = ai->get();
+            out << std::string(nameIndent, ' ') << a->longname();
+            if (a->defaultProvided())
+                out << " [" << a->defaultVal() << "]";
+            out << std::endl;
+            std::vector<std::string> descrip =
+                Utils::wordWrap(a->description(), width);
+            if (descrip.empty())
+                descrip.push_back("<no description available>");
+            for (std::string& s : descrip)
+                out << std::string(descripIndent, ' ') << s << std::endl;
+            out << std::endl;
+        }
+    }
+
 private:
     /*
       Split an argument name into longname and shortname.
@@ -945,14 +1261,13 @@ private:
       \return  Number of strings consumed (1 for positional arguments or
         arguments that don't take values or 2 otherwise).
     */
-    int parseArg(std::string& arg, std::string value)
+    int parseArg(const std::string& arg, const std::string& value)
     {
         if (arg.size() > 1 && arg[0] == '-' && arg[1] == '-')
             return parseLongArg(arg, value);
         else if (arg.size() && arg[0] == '-')
             return parseShortArg(arg, value);
-        m_positional.push_back(arg);
-        return 1;
+        return 0;
     }
 
     /*
@@ -965,14 +1280,15 @@ private:
       \return  Number of strings consumed (1 for positional arguments or
         arguments that don't take values or 2 otherwise).
     */
-    int parseLongArg(std::string name, std::string value)
+    int parseLongArg(const std::string& inName, const std::string& inValue)
     {
         bool attachedValue = false;
 
-        if (name.size() == 2)
+        if (inName.size() == 2)
             throw arg_error("No argument found following '--'.");
 
-        name = name.substr(2);
+        std::string name = inName.substr(2);
+        std::string value = inValue;
 
         std::size_t pos = name.find_first_of("=");
         if (pos != std::string::npos)
@@ -984,6 +1300,13 @@ private:
                 attachedValue = true;
             }
         }
+        else if (value.size() && value[0] == '-')
+        {
+            // If a value starts with a '-' and isn't attached to a name,
+            // we assume it's an option and not a value.
+            value.clear();
+        }
+
         Arg *arg = findLongArg(name);
         if (!arg)
         {
@@ -996,12 +1319,17 @@ private:
         {
             if (attachedValue)
             {
-                std::ostringstream oss;
-                oss << "Value '" << value << "' provided for argument '" <<
-                    name << "' when none is expected.";
-                throw arg_error(oss.str());
+                if (value != "true" && value != "false")
+                {
+                    std::ostringstream oss;
+                    oss << "Value '" << value << "' provided for argument '" <<
+                        name << "' when none is expected.";
+                    throw arg_error(oss.str());
+                }
             }
-            arg->setValue("true");
+            else
+                value = "invert";
+            arg->setValue(value);
             return 1;
         }
 
@@ -1018,12 +1346,11 @@ private:
       \return  Number of strings consumed (1 for positional arguments or
         arguments that don't take values or 2 otherwise).
     */
-    int parseShortArg(std::string& name, std::string value)
+    int parseShortArg(const std::string& name, const std::string& value)
     {
-        int cnt = 1;
-
         if (name.size() == 1)
             throw arg_error("No argument found following '-'.");
+        assert(name.size() == 2);
 
         Arg *arg = findShortArg(name[1]);
         if (!arg)
@@ -1033,33 +1360,28 @@ private:
             throw arg_error(oss.str());
         }
 
+        int cnt;
         if (arg->needsValue())
         {
-            if (name.size() == 2)
+            // If the value starts with a '-', assume it's an option
+            // rather than a value.
+            if (value.empty() || value[0] == '-')
             {
-                arg->setValue(value);
-                cnt = 2;
+                std::ostringstream oss;
+                oss << "Short option '" << name << "' expects value "
+                    "but none directly follows.";
+                throw arg_error(oss.str());
             }
             else
             {
-                std::ostringstream oss;
-
-                oss << "Short option '" << name[1] << "' expects value "
-                    "but appears in option group '" << name << "'.";
-                throw arg_error(oss.str());
+                cnt = 2;
+                arg->setValue(value);
             }
         }
         else
-            arg->setValue("true");
-
-        // If we were specifying a bunch of short options in a group
-        // (like -tswq), then rebuild the option name without the
-        // processed value ('t' in the example), and set cnt to 0 to
-        // say that the argument hasn't been consumed.
-        if (name.size() > 2)
         {
-            name = std::string(1, '-') + name.substr(2);
-            cnt = 0;
+            arg->setValue("true");
+            cnt = 1;
         }
         return cnt;
     }
@@ -1089,12 +1411,6 @@ private:
     std::vector<std::unique_ptr<Arg>> m_args;  /// Storage for arguments
     std::map<std::string, Arg *> m_shortargs;  /// Map from shortname to args
     std::map<std::string, Arg *> m_longargs;  /// Map from longname to args
-
-    /*
-      Contains remaining arguments after positional argument have been
-      processed.
-    */
-    std::deque<std::string> m_positional;
 };
 
 } // namespace pdal
diff --git a/include/pdal/util/Utils.hpp b/include/pdal/util/Utils.hpp
index 598f9f4..9bce5f4 100644
--- a/include/pdal/util/Utils.hpp
+++ b/include/pdal/util/Utils.hpp
@@ -35,21 +35,22 @@
 #pragma once
 
 #include <algorithm>
-#include <string>
 #include <cassert>
 #include <cctype>
-#include <stdexcept>
 #include <cmath>
+#include <cstdint>
+#include <cstring>
 #include <fstream>
 #include <iomanip>
 #include <istream>
 #include <limits>
-#include <cstring>
+#include <map>
 #include <sstream>
+#include <stdexcept>
+#include <string>
 #include <typeinfo>
+#include <type_traits>
 #include <vector>
-#include <map>
-#include <cstdint>
 
 #include "pdal_util_export.hpp"
 
@@ -327,8 +328,9 @@ namespace Utils
 
     /**
       Break a string into a list of strings to not exceed a specified length.
-      The first string can optionally have a maximum length other than that
-      of the rest of the strings.
+      Whitespace is condensed to a single space and each string is free of
+      whitespace at the beginning and end when possible.  Optionally, a line
+      length for the first line can be different from subsequent lines.
 
       \param inputString  String to split into substrings.
       \param lineLength  Maximum length of substrings.
@@ -341,6 +343,22 @@ namespace Utils
         size_t lineLength, size_t firstLength = 0);
 
     /**
+      Break a string into a list of strings to not exceed a specified length.
+      The concatanation of the returned substrings will yield the original
+      string.  The algorithm attempts to break the original string such that
+      each substring begins with a word.
+
+      \param inputString  String to split into substrings.
+      \param lineLength  Maximum length of substrings.
+      \param firstLength  When non-zero, the maximum length of the first
+        substring.  When zero, the first firstLength is assigned the value
+        provided in lineLength.
+      \return  List of substrings generated from the input string.
+    */
+    PDAL_DLL std::vector<std::string> wordWrap2(std::string const& inputString,
+        size_t lineLength, size_t firstLength = 0);
+
+    /**
       Add escape characters or otherwise transform an input string so as to
       be a valid JSON string.
 
@@ -376,6 +394,14 @@ namespace Utils
     PDAL_DLL std::string escapeNonprinting(const std::string& s);
 
     /**
+      Normalize longitude so that it's between (-180, 180].
+
+      \param longitude  Longitude to normalize.
+      \return  Normalized longitude.
+    */
+    PDAL_DLL double normalizeLongitude(double longitude);
+
+    /**
       Convert an input buffer to a hexadecimal string representation similar
       to the output of the UNIX command 'od'.  This is mostly used as an
       occasional debugging aid.
@@ -660,6 +686,14 @@ namespace Utils
     }
 
     /**
+      Convert a bool to a string.
+    */
+    inline std::string toString(bool from)
+    {
+        return from ? "true" : "false";
+    }
+
+    /**
       Convert a double to string with a precision of 10 decimal places.
 
       \param from  Value to convert.
@@ -860,6 +894,12 @@ namespace Utils
         return false;
     }
 
+    template<typename E>
+    constexpr typename std::underlying_type<E>::type toNative(E e)
+    {
+        return static_cast<typename std::underlying_type<E>::type>(e);
+    }
+
 } // namespace Utils
 } // namespace pdal
 
diff --git a/include/pdal/util/portable_endian.hpp b/include/pdal/util/portable_endian.hpp
index b8d294e..b0e753f 100644
--- a/include/pdal/util/portable_endian.hpp
+++ b/include/pdal/util/portable_endian.hpp
@@ -10,7 +10,7 @@
    
 #endif
     
-#if defined(__linux__) || defined(__CYGWIN__)
+#if defined(__linux__) || defined(__CYGWIN__) || defined(__GNU__)
      
 #   include <endian.h>
       
diff --git a/io/CMakeLists.txt b/io/CMakeLists.txt
index 096ae5d..5b938ab 100644
--- a/io/CMakeLists.txt
+++ b/io/CMakeLists.txt
@@ -8,6 +8,7 @@ add_subdirectory(gdal)
 add_subdirectory(null)
 add_subdirectory(optech)
 add_subdirectory(ply)
+add_subdirectory(pts)
 add_subdirectory(qfit)
 add_subdirectory(sbet)
 add_subdirectory(text)
diff --git a/io/bpf/BpfHeader.cpp b/io/bpf/BpfHeader.cpp
index 57a2d93..8094eaf 100644
--- a/io/bpf/BpfHeader.cpp
+++ b/io/bpf/BpfHeader.cpp
@@ -42,6 +42,37 @@
 namespace pdal
 {
 
+std::istream& operator>>(std::istream& in, BpfFormat& format)
+{
+    std::string s;
+
+    in >> s;
+    s = Utils::toupper(s);
+    if (s == "POINT")
+        format = BpfFormat::PointMajor;
+    else if (s == "BYTE")
+        format = BpfFormat::ByteMajor;
+    else if ((s == "DIM") || (s == "DIMENSION"))
+        format = BpfFormat::DimMajor;
+    else
+        in.setstate(std::ios::failbit);
+    return in;
+}
+
+std::ostream& operator<<(std::ostream& out, const BpfFormat& format)
+{
+    switch (format)
+    {
+    case BpfFormat::PointMajor:
+        out << "Point";
+    case BpfFormat::ByteMajor:
+        out << "Byte";
+    case BpfFormat::DimMajor:
+        out << "Dimension";
+    }
+    return out;
+}
+
 ILeStream& operator >> (ILeStream& stream, BpfMuellerMatrix& m)
 {
     for (size_t i = 0; i < (sizeof(m.m_vals) / sizeof(m.m_vals[0])); ++i)
diff --git a/io/bpf/BpfHeader.hpp b/io/bpf/BpfHeader.hpp
index 8fc1b44..6f7b2be 100644
--- a/io/bpf/BpfHeader.hpp
+++ b/io/bpf/BpfHeader.hpp
@@ -75,7 +75,7 @@ struct BpfMuellerMatrix
         for (size_t i = 12; i < 16; ++i)
             std::cerr << m_vals[i] << '\t';
         std::cerr << "\n\n";
-        
+
     }
 
     void apply(double& x, double& y, double& z)
@@ -91,37 +91,31 @@ struct BpfMuellerMatrix
 ILeStream& operator >> (ILeStream& stream, BpfMuellerMatrix& m);
 OLeStream& operator << (OLeStream& stream, BpfMuellerMatrix& m);
 
-namespace BpfFormat
-{
-enum Enum
+enum class BpfFormat
 {
     DimMajor,
     PointMajor,
     ByteMajor
 };
-}
 
-namespace BpfCoordType
-{
-enum Enum
+std::istream& operator >> (std::istream& in, BpfFormat& format);
+std::ostream& operator << (std::ostream& in, const BpfFormat& format);
+
+enum class BpfCoordType
 {
     None,
     UTM,
     TCR,
     ENU
 };
-}
 
-namespace BpfCompression
-{
-enum Enum
+enum class BpfCompression
 {
     None,
     QuickLZ,
     FastLZ,
     Zlib
 };
-}
 
 struct BpfDimension
 {
@@ -135,7 +129,7 @@ struct BpfDimension
     double m_min;
     double m_max;
     std::string m_label;
-    Dimension::Id::Enum m_id;
+    Dimension::Id m_id;
 
     static bool read(ILeStream& stream, std::vector<BpfDimension>& dims,
         size_t start);
@@ -146,16 +140,16 @@ typedef std::vector<BpfDimension> BpfDimensionList;
 struct BpfHeader
 {
     BpfHeader() : m_version(0), m_len(176), m_numDim(0),
-        m_compression(BpfCompression::None), m_numPts(0),
-        m_coordType(BpfCoordType::None), m_coordId(0), m_spacing(0.0),
-        m_startTime(0.0), m_endTime(0.0)
+        m_compression(Utils::toNative(BpfCompression::None)), m_numPts(0),
+        m_coordType(Utils::toNative(BpfCoordType::None)), m_coordId(0),
+        m_spacing(0.0), m_startTime(0.0), m_endTime(0.0)
     {}
 
     int32_t m_version;
     std::string m_ver;
     int32_t m_len;
     int32_t m_numDim;
-    BpfFormat::Enum m_pointFormat;
+    BpfFormat m_pointFormat;
     uint8_t m_compression;
     int32_t m_numPts;
     int32_t m_coordType;
@@ -167,13 +161,14 @@ struct BpfHeader
     std::vector<BpfDimension> m_staticDims;
     LogPtr m_log;
 
-    void setLog(const LogPtr& log)
+    PDAL_DLL void setLog(const LogPtr& log)
          { m_log = log; }
-    bool read(ILeStream& stream);
+    PDAL_DLL bool read(ILeStream& stream);
     bool write(OLeStream& stream);
     bool readV3(ILeStream& stream);
     bool readV1(ILeStream& stream);
-    bool readDimensions(ILeStream& stream, std::vector<BpfDimension>& dims);
+    PDAL_DLL bool readDimensions(ILeStream& stream,
+        std::vector<BpfDimension>& dims);
     void writeDimensions(OLeStream& stream, std::vector<BpfDimension>& dims);
     void dump();
 };
@@ -216,6 +211,14 @@ struct BpfUlemFile
     std::vector<char> m_buf;
     std::string m_filespec;
 
+    BpfUlemFile() : m_len(0)
+    {}
+
+    BpfUlemFile(uint32_t len, const std::string& filename,
+            const std::string& filespec) :
+        m_len(len), m_filename(filename), m_filespec(filespec)
+    {}
+
     bool read(ILeStream& stream);
     bool write(OLeStream& stream);
 };
diff --git a/io/bpf/BpfReader.cpp b/io/bpf/BpfReader.cpp
index db413b6..588693a 100644
--- a/io/bpf/BpfReader.cpp
+++ b/io/bpf/BpfReader.cpp
@@ -56,16 +56,6 @@ CREATE_STATIC_PLUGIN(1, 0, BpfReader, Reader, s_info)
 
 std::string BpfReader::getName() const { return s_info.name; }
 
-void BpfReader::processOptions(const Options&)
-{
-    if (m_filename.empty())
-        throw pdal_error("Can't read BPF file without filename.");
-
-    // Logfile doesn't get set until options are processed.
-    m_header.setLog(log());
-}
-
-
 QuickInfo BpfReader::inspect()
 {
     QuickInfo qi;
@@ -103,6 +93,12 @@ QuickInfo BpfReader::inspect()
 // the dimensions in the PointView.
 void BpfReader::initialize()
 {
+    if (m_filename.empty())
+        throw pdal_error("Can't read BPF file without filename.");
+
+    // Logfile doesn't get set until options are processed.
+    m_header.setLog(log());
+
     m_stream.open(m_filename);
 
     // Resets the stream position in case it was already open.
@@ -115,7 +111,7 @@ void BpfReader::initialize()
         return;
 
     uint32_t zone(abs(m_header.m_coordId));
-    std::string code("");
+    std::string code;
     if (m_header.m_coordId > 0)
         code = "EPSG:326" + Utils::toString(zone);
     else
@@ -154,7 +150,7 @@ void BpfReader::addDimensions(PointLayoutPtr layout)
 {
     for (size_t i = 0; i < m_dims.size(); ++i)
     {
-        Dimension::Type::Enum type = Dimension::Type::Float;
+        Dimension::Type type = Dimension::Type::Float;
 
         BpfDimension& dim = m_dims[i];
         if (dim.m_label == "X" ||
diff --git a/io/bpf/BpfReader.hpp b/io/bpf/BpfReader.hpp
index 50c5725..a27cfbc 100644
--- a/io/bpf/BpfReader.hpp
+++ b/io/bpf/BpfReader.hpp
@@ -82,7 +82,6 @@ private:
     /// Streambuf for deflated data.
     Charbuf m_charbuf;
 
-    virtual void processOptions(const Options& options);
     virtual QuickInfo inspect();
     virtual void initialize();
     virtual void addDimensions(PointLayoutPtr Layout);
@@ -91,7 +90,6 @@ private:
     virtual point_count_t read(PointViewPtr data, point_count_t num);
     virtual void done(PointTableRef table);
 
-
     bool readUlemData();
     bool readUlemFiles();
     bool readHeaderExtraData();
@@ -104,7 +102,6 @@ private:
     point_count_t readByteMajor(PointViewPtr data, point_count_t count);
     size_t readBlock(std::vector<char>& outBuf, size_t index);
     bool eof();
-
     int inflate(char *inbuf, uint32_t insize, char *outbuf, uint32_t outsize);
 
     void seekPointMajor(PointId ptIdx);
diff --git a/io/bpf/BpfWriter.cpp b/io/bpf/BpfWriter.cpp
index ef45508..f7e4506 100644
--- a/io/bpf/BpfWriter.cpp
+++ b/io/bpf/BpfWriter.cpp
@@ -38,11 +38,14 @@
 
 #include <pdal/Options.hpp>
 #include <pdal/pdal_export.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <zlib.h>
 
 #include "BpfCompressor.hpp"
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/Utils.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -58,52 +61,37 @@ CREATE_STATIC_PLUGIN(1, 0, BpfWriter, Writer, s_info)
 
 std::string BpfWriter::getName() const { return s_info.name; }
 
-Options BpfWriter::getDefaultOptions()
+void BpfWriter::addArgs(ProgramArgs& args)
 {
-    Options ops;
-
-    ops.add("filename", "", "Filename for BPF output");
-    ops.add("compression", false, "Whether zlib compression should be used");
-    ops.add("format", "dimension", "Point output format: "
-        "non-interleaved(\"dimension\"), interleaved(\"point\") or "
-        "byte-segregated(\"byte\")");
-    ops.add("coord_id", 0, "Coordinate ID (UTM zone).");
-    return ops;
+    args.add("filename", "Output filename", m_filename).setPositional();
+    args.add("compression", "Output compression", m_compression);
+    args.add("header_data", "Base64-encoded header data", m_extraDataSpec);
+    args.add("format", "Output format", m_header.m_pointFormat,
+        BpfFormat::DimMajor);
+    args.add("coord_id", "UTM coordinate ID", m_header.m_coordId, -9999);
+    args.add("bundledfile", "List of files to bundle in output",
+        m_bundledFilesSpec);
+    args.add("output_dims", "Output dimensions", m_outputDims);
+    m_scaling.addArgs(args);
 }
 
 
-void BpfWriter::processOptions(const Options& options)
+void BpfWriter::initialize()
 {
-    bool compression = options.getValueOrDefault("compression", false);
-    m_header.m_compression = compression ? BpfCompression::Zlib :
-        BpfCompression::None;
-
-    std::string encodedHeader =
-        options.getValueOrDefault<std::string>("header_data");
-    m_extraData = Utils::base64_decode(encodedHeader);
-
-    std::string fileFormat =
-        options.getValueOrDefault<std::string>("format", "POINT");
-    std::transform(fileFormat.begin(), fileFormat.end(), fileFormat.begin(),
-        ::toupper);
-    if (fileFormat.find("POINT") != std::string::npos)
-        m_header.m_pointFormat = BpfFormat::PointMajor;
-    else if (fileFormat.find("BYTE") != std::string::npos)
-        m_header.m_pointFormat = BpfFormat::ByteMajor;
-    else
-        m_header.m_pointFormat = BpfFormat::DimMajor;
-    if (options.hasOption("coord_id"))
+    m_header.m_compression = Utils::toNative(
+            m_compression ? BpfCompression::Zlib : BpfCompression::None);
+    m_extraData = Utils::base64_decode(m_extraDataSpec);
+    if (m_header.m_coordId == -9999)
     {
-        m_header.m_coordType = BpfCoordType::UTM;
-        m_header.m_coordId = options.getValueOrThrow<int>("coord_id");
+        m_header.m_coordId = 0;
+        m_header.m_coordType = Utils::toNative(BpfCoordType::None);
     }
     else
     {
-        m_header.m_coordType = BpfCoordType::None;
-        m_header.m_coordId = 0;
+        m_header.m_coordType = Utils::toNative(BpfCoordType::UTM);
     }
-    StringList files = options.getValues<std::string>("bundledfile");
-    for (auto file : files)
+
+    for (auto file : m_bundledFilesSpec)
     {
         if (!FileUtils::fileExists(file))
         {
@@ -121,10 +109,7 @@ void BpfWriter::processOptions(const Options& options)
             throw pdal_error(oss.str());
         }
 
-        BpfUlemFile ulemFile;
-        ulemFile.m_len = size;
-        ulemFile.m_filespec = file;
-        ulemFile.m_filename = FileUtils::getFilename(file);
+        BpfUlemFile ulemFile(size, FileUtils::getFilename(file), file);
         if (ulemFile.m_filename.length() > 32)
         {
             std::ostringstream oss;
@@ -140,12 +125,12 @@ void BpfWriter::processOptions(const Options& options)
     // unexpected quantization of the coordinates. Instead, we force use of
     // auto offset to subtract the minimum value in XYZ, unless of course, the
     // user chooses to override with their own offset.
-    if (!options.hasOption("offset_x"))
-        m_xXform.m_autoOffset = true;
-    if (!options.hasOption("offset_y"))
-        m_yXform.m_autoOffset = true;
-    if (!options.hasOption("offset_z"))
-        m_zXform.m_autoOffset = true;
+    if (!m_scaling.m_xOffArg->set())
+        m_scaling.m_xXform.m_offset.m_auto = true;
+    if (!m_scaling.m_yOffArg->set())
+        m_scaling.m_yXform.m_offset.m_auto = true;
+    if (!m_scaling.m_zOffArg->set())
+        m_scaling.m_zXform.m_offset.m_auto = true;
 }
 
 
@@ -173,9 +158,9 @@ void BpfWriter::readyFile(const std::string& filename, const SpatialReference&)
 
     m_header.m_len = m_stream.position();
 
-    m_header.m_xform.m_vals[0] = m_xXform.m_scale;
-    m_header.m_xform.m_vals[5] = m_yXform.m_scale;
-    m_header.m_xform.m_vals[10] = m_zXform.m_scale;
+    m_header.m_xform.m_vals[0] = m_scaling.m_xXform.m_scale.m_val;
+    m_header.m_xform.m_vals[5] = m_scaling.m_yXform.m_scale.m_val;
+    m_header.m_xform.m_vals[10] = m_scaling.m_zXform.m_scale.m_val;
 }
 
 
@@ -187,7 +172,7 @@ void BpfWriter::loadBpfDimensions(PointLayoutPtr layout)
     {
        for (std::string& s : m_outputDims)
        {
-           Dimension::Id::Enum id = layout->findDim(s);
+           Dimension::Id id = layout->findDim(s);
            if (id == Dimension::Id::Unknown)
            {
                std::ostringstream oss;
@@ -223,15 +208,15 @@ void BpfWriter::loadBpfDimensions(PointLayoutPtr layout)
 
 void BpfWriter::writeView(const PointViewPtr dataShared)
 {
-    setAutoXForm(dataShared);
+    m_scaling.setAutoXForm(dataShared);
 
     // Avoid reference count overhead internally.
     const PointView* data(dataShared.get());
 
     // We know that X, Y and Z are dimensions 0, 1 and 2.
-    m_dims[0].m_offset = m_xXform.m_offset;
-    m_dims[1].m_offset = m_yXform.m_offset;
-    m_dims[2].m_offset = m_zXform.m_offset;
+    m_dims[0].m_offset = m_scaling.m_xXform.m_offset.m_val;
+    m_dims[1].m_offset = m_scaling.m_yXform.m_offset.m_val;
+    m_dims[2].m_offset = m_scaling.m_zXform.m_offset.m_val;
 
     switch (m_header.m_pointFormat)
     {
@@ -349,11 +334,11 @@ double BpfWriter::getAdjustedValue(const PointView* data,
     bpfDim.m_max = std::max(bpfDim.m_max, d);
 
     if (bpfDim.m_id == Dimension::Id::X)
-        d /= m_xXform.m_scale;
+        d /= m_scaling.m_xXform.m_scale.m_val;
     else if (bpfDim.m_id == Dimension::Id::Y)
-        d /= m_yXform.m_scale;
+        d /= m_scaling.m_yXform.m_scale.m_val;
     else if (bpfDim.m_id == Dimension::Id::Z)
-        d /= m_zXform.m_scale;
+        d /= m_scaling.m_zXform.m_scale.m_val;
     return (d - bpfDim.m_offset);
 }
 
diff --git a/io/bpf/BpfWriter.hpp b/io/bpf/BpfWriter.hpp
index d03a0a3..fb8c6fe 100644
--- a/io/bpf/BpfWriter.hpp
+++ b/io/bpf/BpfWriter.hpp
@@ -59,16 +59,19 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
+    StringList m_outputDims; ///< List of dimensions to write
     OLeStream m_stream;
     BpfHeader m_header;
     BpfDimensionList m_dims;
     std::vector<uint8_t> m_extraData;
     std::vector<BpfUlemFile> m_bundledFiles;
+    bool m_compression;
+    std::string m_extraDataSpec;
+    StringList m_bundledFilesSpec;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void initialize();
     virtual void prepared(PointTableRef table);
     virtual void readyFile(const std::string& filename,
         const SpatialReference& srs);
diff --git a/io/derivative/DerivativeWriter.cpp b/io/derivative/DerivativeWriter.cpp
index 53bd998..31ae3f4 100644
--- a/io/derivative/DerivativeWriter.cpp
+++ b/io/derivative/DerivativeWriter.cpp
@@ -35,6 +35,7 @@
 #include "DerivativeWriter.hpp"
 
 #include <pdal/PointView.hpp>
+#include <pdal/util/FileUtils.hpp>
 #include <pdal/util/Utils.hpp>
 #include <pdal/pdal_macros.hpp>
 
@@ -44,8 +45,6 @@
 #include <iostream>
 #include <limits>
 
-#include <boost/filesystem.hpp>
-
 #include "gdal_priv.h" // For File I/O
 #include "gdal_version.h" // For version info
 #include "ogr_spatialref.h"  //For Geographic Information/Transformations
@@ -73,37 +72,29 @@ DerivativeWriter::DerivativeWriter()
 }
 
 
-void DerivativeWriter::processOptions(const Options& ops)
+void DerivativeWriter::addArgs(ProgramArgs& args)
 {
-    m_GRID_DIST_X = ops.getValueOrDefault<double>("grid_dist_x", 15.0);
-    m_GRID_DIST_Y = ops.getValueOrDefault<double>("grid_dist_y", 15.0);
-    handleFilenameTemplate();
+    args.add("grid_dist_x", "X grid distance", m_GRID_DIST_X, 15.0);
+    args.add("grid_dist_y", "Y grid distance", m_GRID_DIST_Y, 15.0);
+    args.add("primitive_type", "Primitive type", m_primTypesSpec);
+}
 
-    // maybe we eventually introduce an option to do more than slope
-    //std::vector<Option> types = ops.getOptions("output_type");
-
-    //if (!types.size())
-    //    m_outputTypes = OUTPUT_TYPE_ALL;
-    //else
-    //{
-    //    for (auto i = types.begin(); i != types.end(); ++i)
-    //    {
-    //        if (Utils::iequals(i->getValue<std::string>(), "min"))
-    //            m_outputTypes |= OUTPUT_TYPE_MIN;
-    //        if (Utils::iequals(i->getValue<std::string>(), "max"))
-    //            m_outputTypes |= OUTPUT_TYPE_MAX;
-    //        if (Utils::iequals(i->getValue<std::string>(), "mean"))
-    //            m_outputTypes |= OUTPUT_TYPE_MEAN;
-    //        if (Utils::iequals(i->getValue<std::string>(), "idw"))
-    //            m_outputTypes |= OUTPUT_TYPE_IDW;
-    //        if (Utils::iequals(i->getValue<std::string>(), "den"))
-    //            m_outputTypes |= OUTPUT_TYPE_DEN;
-    //        if (Utils::iequals(i->getValue<std::string>(), "all"))
-    //            m_outputTypes = OUTPUT_TYPE_ALL;
-    //    }
-    //}
-
-    std::map<std::string, PrimitiveType> primtypes;
+
+void DerivativeWriter::initialize()
+{
+    static std::map<std::string, PrimitiveType> primtypes =
+        { {"slope_d8", SLOPE_D8},
+          {"slope_fd", SLOPE_FD},
+          {"aspect_d8", ASPECT_D8},
+          {"aspect_fd", ASPECT_FD},
+          {"hillshade", HILLSHADE},
+          {"contour_curvature", CONTOUR_CURVATURE},
+          {"profile_curvature", PROFILE_CURVATURE},
+          {"tangential_curvature", TANGENTIAL_CURVATURE},
+          {"total_curvature", TOTAL_CURVATURE},
+          {"catchment_area", CATCHMENT_AREA}
+        };
+/**
     primtypes["slope_d8"] = SLOPE_D8;
     primtypes["slope_fd"] = SLOPE_FD;
     primtypes["aspect_d8"] = ASPECT_D8;
@@ -114,11 +105,13 @@ void DerivativeWriter::processOptions(const Options& ops)
     primtypes["tangential_curvature"] = TANGENTIAL_CURVATURE;
     primtypes["total_curvature"] = TOTAL_CURVATURE;
     primtypes["catchment_area"] = CATCHMENT_AREA;
+**/
 
-    std::string primTypes = ops.getValueOrDefault("primitive_type", "slope_d8");
-    StringList types = Utils::split2(primTypes, ',');
+    if (m_primTypesSpec.empty())
+        m_primTypesSpec.push_back("slope_d8");
 
-    if (m_hashPos == std::string::npos && types.size() > 1)
+    handleFilenameTemplate();
+    if (m_hashPos == std::string::npos && m_primTypesSpec.size() > 1)
     {
         std::ostringstream oss;
 
@@ -128,9 +121,8 @@ void DerivativeWriter::processOptions(const Options& ops)
         throw pdal_error(oss.str());
     }
 
-    for (std::string os : types)
+    for (std::string os : m_primTypesSpec)
     {
-        Utils::trim(os);
         std::string s = Utils::tolower(os);
         auto pi = primtypes.find(s);
         if (pi == primtypes.end())
@@ -142,9 +134,11 @@ void DerivativeWriter::processOptions(const Options& ops)
         }
         TypeOutput to;
         to.m_type = pi->second;
-        to.m_filename = generateFilename(pi->first) ;
+        to.m_filename = generateFilename(pi->first);
         m_primitiveTypes.push_back(to);
     }
+
+    setBounds(BOX2D());
 }
 
 
@@ -160,24 +154,6 @@ DerivativeWriter::generateFilename(const std::string& primName) const
 }
 
 
-void DerivativeWriter::initialize()
-{
-
-    setBounds(BOX2D());
-}
-
-
-Options DerivativeWriter::getDefaultOptions()
-{
-    Options options;
-
-    options.add("grid_dist_x", 15.0, "X grid distance");
-    options.add("grid_dist_y", 15.0, "Y grid distance");
-    options.add("primitive_type", "slope_d8", "Primitive type");
-
-    return options;
-}
-
 double DerivativeWriter::GetNeighbor(Eigen::MatrixXd* data, int row, int col,
     Direction d)
 {
@@ -1003,10 +979,9 @@ GDALDataset* DerivativeWriter::createFloat32GTIFF(std::string filename,
         {
             char **papszOptions = NULL;
 
-            pdalboost::filesystem::path p(filename);
-            p.replace_extension(".tif");
+            std::string path = FileUtils::stem(filename) + ".tif";
             GDALDataset *dataset;
-            dataset = tpDriver->Create(p.string().c_str(), cols, rows, 1,
+            dataset = tpDriver->Create(path.c_str(), cols, rows, 1,
                 GDT_Float32, papszOptions);
 
             BOX2D& extent = getBounds();
@@ -1306,7 +1281,6 @@ void DerivativeWriter::writeCatchmentArea(Eigen::MatrixXd* tDemData,
 //             float val = data[(tYOut * m_GRID_SIZE_X) + tXOut];
 //             if (val != c_background && !_isnanf(val))
 //             {
-//                 //std::cerr << val << std::endl;
 //                 mean += val;
 //                 nvals++;
 //             }
@@ -1331,16 +1305,12 @@ void DerivativeWriter::writeCatchmentArea(Eigen::MatrixXd* tDemData,
 //     stdev /= (nvals - 1);
 //     stdev = std::sqrt(stdev);
 //
-//     std::cerr << mean << ", " << stdev << ", " << nvals << std::endl;
-//
 //     // pass #3: scale to +/- 2x standard deviations from mean
 //     double min_val = mean - 2*stdev;
 //     double max_val = mean + 2*stdev;
 //     double range = max_val - min_val;
 //     double scale = 256.0 / range;
 //
-//     std::cerr << min_val << " < " << max_val << std::endl;
-//
 //     #pragma omp parallel for
 //
 //     for (int tXOut = tXStart; tXOut < tXEnd; tXOut++)
diff --git a/io/derivative/DerivativeWriter.hpp b/io/derivative/DerivativeWriter.hpp
index 5c16fd8..4ad8f99 100644
--- a/io/derivative/DerivativeWriter.hpp
+++ b/io/derivative/DerivativeWriter.hpp
@@ -36,6 +36,7 @@
 
 #include <pdal/Writer.hpp>
 #include <pdal/plugin.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <Eigen/Core>
 
@@ -92,10 +93,8 @@ public:
 
     DerivativeWriter();
 
-    Options getDefaultOptions();
-
 private:
-    virtual void processOptions(const Options& ops);
+    virtual void addArgs(ProgramArgs& args);
     virtual void initialize();
     virtual void write(const PointViewPtr view);
 
@@ -152,6 +151,7 @@ private:
     uint32_t m_GRID_SIZE_Y;
     double m_GRID_DIST_X;
     double m_GRID_DIST_Y;
+    StringList m_primTypesSpec;
     std::vector<TypeOutput> m_primitiveTypes;
     BOX2D m_bounds;
     SpatialReference m_inSRS;
diff --git a/io/faux/FauxReader.cpp b/io/faux/FauxReader.cpp
index f522d6c..c82aaec 100644
--- a/io/faux/FauxReader.cpp
+++ b/io/faux/FauxReader.cpp
@@ -37,6 +37,7 @@
 #include <pdal/Options.hpp>
 #include <pdal/PointView.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <ctime>
 
@@ -52,73 +53,22 @@ CREATE_STATIC_PLUGIN(1, 0, FauxReader, Reader, s_info)
 
 std::string FauxReader::getName() const { return s_info.name; }
 
-static Mode string2mode(const std::string& str)
+void FauxReader::addArgs(ProgramArgs& args)
 {
-    std::string lstr = Utils::tolower(str);
-    if (lstr == "constant")
-        return Constant;
-    if (lstr == "random")
-        return Random;
-    if (lstr == "ramp")
-        return Ramp;
-    if (lstr == "uniform")
-        return Uniform;
-    if (lstr == "normal")
-        return Normal;
-    std::ostringstream oss;
-    oss << s_info.name << ": Invalid 'mode' option: '" << str << "'.";
-    throw pdal_error(oss.str());
+    args.add("bounds", "X/Y/Z limits", m_bounds, BOX3D(0, 0, 0, 1, 1, 1));
+    args.add("mean_x", "X mean", m_mean_x);
+    args.add("mean_y", "Y mean", m_mean_y);
+    args.add("mean_z", "Z mean", m_mean_z);
+    args.add("stdev_x", "X standard deviation", m_stdev_x, 1.0);
+    args.add("stdev_y", "Y standard deviation", m_stdev_y, 1.0);
+    args.add("stdev_z", "Z standard deviation", m_stdev_z, 1.0);
+    args.add("mode", "Point creation mode", m_mode);
+    args.add("number_of_returns", "Max number of returns", m_numReturns);
 }
 
 
-FauxReader::FauxReader()
-    : pdal::Reader()
+void FauxReader::initialize()
 {
-    m_count = 0;
-}
-
-void FauxReader::processOptions(const Options& options)
-{
-    BOX3D bounds;
-    try
-    {
-        bounds = options.getValueOrDefault<BOX3D>("bounds",
-            BOX3D(0, 0, 0, 1, 1, 1));
-    }
-    catch (Option::cant_convert)
-    {
-        std::string s = options.getValueOrDefault<std::string>("bounds");
-
-        std::ostringstream oss;
-        oss << getName() << ": Invalid 'bounds' specification: '" << s <<
-            "'.  Format: '([xmin,xmax],[ymin,ymax],[zmin,zmax])'.";
-        throw pdal_error(oss.str());
-    }
-    m_minX = bounds.minx;
-    m_maxX = bounds.maxx;
-    m_minY = bounds.miny;
-    m_maxY = bounds.maxy;
-    m_minZ = bounds.minz;
-    m_maxZ = bounds.maxz;
-
-    // For backward compatibility.
-    if (m_count == 0)
-        m_count = options.getValueOrThrow<point_count_t>("num_points");
-    if (m_count == 0)
-    {
-        std::ostringstream oss;
-        oss << getName() << ": Option 'count' must be non-zero.";
-        throw pdal_error(oss.str());
-    }
-
-    m_mean_x = options.getValueOrDefault<double>("mean_x",0.0);
-    m_mean_y = options.getValueOrDefault<double>("mean_y",0.0);
-    m_mean_z = options.getValueOrDefault<double>("mean_z",0.0);
-    m_stdev_x = options.getValueOrDefault<double>("stdev_x",1.0);
-    m_stdev_y = options.getValueOrDefault<double>("stdev_y",1.0);
-    m_stdev_z = options.getValueOrDefault<double>("stdev_z",1.0);
-    m_mode = string2mode(options.getValueOrThrow<std::string>("mode"));
-    m_numReturns = options.getValueOrDefault("number_of_returns", 0);
     if (m_numReturns > 10)
     {
         std::ostringstream oss;
@@ -128,9 +78,9 @@ void FauxReader::processOptions(const Options& options)
     }
     if (m_count > 1)
     {
-        m_delX = (m_maxX - m_minX) / (m_count - 1);
-        m_delY = (m_maxY - m_minY) / (m_count - 1);
-        m_delZ = (m_maxZ - m_minZ) / (m_count - 1);
+        m_delX = (m_bounds.maxx - m_bounds.minx) / (m_count - 1);
+        m_delY = (m_bounds.maxy - m_bounds.miny) / (m_count - 1);
+        m_delZ = (m_bounds.maxz - m_bounds.minz) / (m_count - 1);
     }
     else
     {
@@ -141,18 +91,12 @@ void FauxReader::processOptions(const Options& options)
 }
 
 
-Options FauxReader::getDefaultOptions()
-{
-    Options options;
-    Option count("num_points", 10, "Number of points");
-    options.add(count);
-    return options;
-}
-
-
 void FauxReader::addDimensions(PointLayoutPtr layout)
 {
-    layout->registerDims(getDefaultDimensions());
+    Dimension::IdList ids = { Dimension::Id::X, Dimension::Id::Y,
+        Dimension::Id::Z, Dimension::Id::OffsetTime };
+
+    layout->registerDims(ids);
     if (m_numReturns > 0)
     {
         layout->registerDim(Dimension::Id::ReturnNumber);
@@ -161,17 +105,6 @@ void FauxReader::addDimensions(PointLayoutPtr layout)
 }
 
 
-Dimension::IdList FauxReader::getDefaultDimensions()
-{
-    Dimension::IdList ids;
-
-    ids.push_back(Dimension::Id::X);
-    ids.push_back(Dimension::Id::Y);
-    ids.push_back(Dimension::Id::Z);
-    ids.push_back(Dimension::Id::OffsetTime);
-    return ids;
-}
-
 void FauxReader::ready(PointTableRef /*table*/)
 {
     m_returnNum = 1;
@@ -192,27 +125,27 @@ bool FauxReader::processOne(PointRef& point)
 
     switch (m_mode)
     {
-    case Random:
-        x = Utils::random(m_minX, m_maxX);
-        y = Utils::random(m_minY, m_maxY);
-        z = Utils::random(m_minZ, m_maxZ);
+    case Mode::Random:
+        x = Utils::random(m_bounds.minx, m_bounds.maxx);
+        y = Utils::random(m_bounds.miny, m_bounds.maxy);
+        z = Utils::random(m_bounds.minz, m_bounds.maxz);
         break;
-    case Constant:
-        x = m_minX;
-        y = m_minY;
-        z = m_minZ;
+    case Mode::Constant:
+        x = m_bounds.minx;
+        y = m_bounds.miny;
+        z = m_bounds.minz;
         break;
-    case Ramp:
-        x = m_minX + m_delX * m_index;
-        y = m_minY + m_delY * m_index;
-        z = m_minZ + m_delZ * m_index;
+    case Mode::Ramp:
+        x = m_bounds.minx + m_delX * m_index;
+        y = m_bounds.miny+ m_delY * m_index;
+        z = m_bounds.minz + m_delZ * m_index;
         break;
-    case Uniform:
-        x = Utils::uniform(m_minX, m_maxX, m_seed++);
-        y = Utils::uniform(m_minY, m_maxY, m_seed++);
-        z = Utils::uniform(m_minZ, m_maxZ, m_seed++);
+    case Mode::Uniform:
+        x = Utils::uniform(m_bounds.minx, m_bounds.maxx, m_seed++);
+        y = Utils::uniform(m_bounds.miny, m_bounds.maxy, m_seed++);
+        z = Utils::uniform(m_bounds.minz, m_bounds.maxz, m_seed++);
         break;
-    case Normal:
+    case Mode::Normal:
         x = Utils::normal(m_mean_x, m_stdev_x, m_seed++);
         y = Utils::normal(m_mean_y, m_stdev_y, m_seed++);
         z = Utils::normal(m_mean_z, m_stdev_z, m_seed++);
diff --git a/io/faux/FauxReader.hpp b/io/faux/FauxReader.hpp
index a6b5960..4bad5bc 100644
--- a/io/faux/FauxReader.hpp
+++ b/io/faux/FauxReader.hpp
@@ -43,7 +43,7 @@ extern "C" PF_ExitFunc FauxReader_InitPlugin();
 namespace pdal
 {
 
-enum Mode
+enum class Mode
 {
     Constant,
     Random,
@@ -52,6 +52,44 @@ enum Mode
     Normal
 };
 
+inline std::istream& operator>>(std::istream& in, Mode& m)
+{
+    std::string s;
+
+    in >> s;
+    s = Utils::tolower(s);
+    if (s == "constant")
+        m = Mode::Constant;
+    else if (s == "random")
+        m = Mode::Random;
+    else if (s == "ramp")
+        m = Mode::Ramp;
+    else if (s  == "uniform")
+        m = Mode::Uniform;
+    else if (s == "normal")
+        m = Mode::Normal;
+    else
+        in.setstate(std::ios::failbit);
+    return in;
+}
+
+inline std::ostream& operator<<(std::ostream& out, const Mode& m)
+{
+    switch (m)
+    {
+    case Mode::Constant:
+        out << "Constant";
+    case Mode::Random:
+        out << "Random";
+    case Mode::Ramp:
+        out << "Ramp";
+    case Mode::Uniform:
+        out << "Uniform";            
+    case Mode::Normal:
+        out << "Normal";
+    }
+    return out;
+}
 
 // The FauxReader doesn't read from disk, but instead just makes up data for its
 // points.  The reader is constructed with a given bounding box and a given
@@ -84,23 +122,16 @@ enum Mode
 class PDAL_DLL FauxReader : public Reader
 {
 public:
-    FauxReader();
+    FauxReader()
+    {}
 
     static void * create();
     static int32_t destroy(void *);
     std::string getName() const;
 
-    static Dimension::IdList getDefaultDimensions();
-    Options getDefaultOptions();
-
 private:
     Mode m_mode;
-    double m_minX;
-    double m_maxX;
-    double m_minY;
-    double m_maxY;
-    double m_minZ;
-    double m_maxZ;
+    BOX3D m_bounds;
     double m_mean_x;
     double m_mean_y;
     double m_mean_z;
@@ -116,7 +147,8 @@ private:
     point_count_t m_index;
     uint32_t m_seed;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void initialize();
     virtual void addDimensions(PointLayoutPtr layout);
     virtual void ready(PointTableRef table);
     virtual bool processOne(PointRef& point);
diff --git a/io/gdal/GDALReader.cpp b/io/gdal/GDALReader.cpp
index dca7372..ebe915c 100644
--- a/io/gdal/GDALReader.cpp
+++ b/io/gdal/GDALReader.cpp
@@ -133,7 +133,7 @@ point_count_t GDALReader::read(PointViewPtr view, point_count_t num)
     }
 
     std::vector<uint8_t> band;
-    std::vector<Dimension::Type::Enum> band_types =
+    std::vector<Dimension::Type> band_types =
         m_raster->getPDALDimensionTypes();
 
     for (int b = 0; b < m_raster->m_band_count; ++b)
@@ -145,7 +145,7 @@ point_count_t GDALReader::read(PointViewPtr view, point_count_t num)
         log()->get(LogLevel::Info) << "Read band '" << oss.str() << "'" <<
             std::endl;
 
-        Dimension::Id::Enum d = view->layout()->findDim(oss.str());
+        Dimension::Id d = view->layout()->findDim(oss.str());
         size_t dimSize = Dimension::size(band_types[b]);
         uint8_t* p = band.data();
         for (point_count_t i = 0; i < count; ++i)
diff --git a/io/gdal/GDALReader.hpp b/io/gdal/GDALReader.hpp
index 339fec7..639fa00 100644
--- a/io/gdal/GDALReader.hpp
+++ b/io/gdal/GDALReader.hpp
@@ -51,7 +51,7 @@ namespace pdal
 {
 
 
-typedef std::map<std::string, Dimension::Id::Enum> DimensionMap;
+typedef std::map<std::string, Dimension::Id> DimensionMap;
 
 
 
diff --git a/io/ilvis2/Ilvis2Reader.cpp b/io/ilvis2/Ilvis2Reader.cpp
index fb3a0b9..706a515 100644
--- a/io/ilvis2/Ilvis2Reader.cpp
+++ b/io/ilvis2/Ilvis2Reader.cpp
@@ -35,6 +35,7 @@
 #include "Ilvis2Reader.hpp"
 #include <pdal/util/FileUtils.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <algorithm>
 #include <cmath>
@@ -51,42 +52,49 @@ CREATE_STATIC_PLUGIN(1, 0, Ilvis2Reader, Reader, s_info)
 
 std::string Ilvis2Reader::getName() const { return s_info.name; }
 
-Options Ilvis2Reader::getDefaultOptions()
+std::istream& operator >> (std::istream& in, Ilvis2Reader::IlvisMapping& mval)
 {
-    Options options;
-    options.add("mapping", "all", "The point to extract from the shot: "
-        "low, high, or all.  'all' creates 1 or 2 points per shot, "
-        "depending on if LOW and HIGH are the same.");
-    options.add("filename", "", "The file to read from");
-    options.add("metadata", "", "The metadata file to read from");
-
-    return options;
+    std::string s;
+
+    in >> s;
+    s = Utils::toupper(s);
+    
+    static std::map<std::string, Ilvis2Reader::IlvisMapping> m =
+        { { "INVALID", Ilvis2Reader::IlvisMapping::INVALID }, 
+          { "LOW", Ilvis2Reader::IlvisMapping::LOW }, 
+          { "HIGH", Ilvis2Reader::IlvisMapping::HIGH }, 
+          { "ALL", Ilvis2Reader::IlvisMapping::ALL } };
+
+    mval = m[s];
+    return in;
 }
 
-void Ilvis2Reader::processOptions(const Options& options)
+
+std::ostream& operator<<(std::ostream& out,
+    const Ilvis2Reader::IlvisMapping& mval)
 {
-    std::string mapping =
-        options.getValueOrDefault<std::string>("mapping", "all");
-    mapping = Utils::toupper(mapping);
-    m_mapping = parser.parseMapping(mapping);
-    if (m_mapping == INVALID)
+    switch (mval)
     {
-        std::ostringstream oss;
-        oss << "Invalid value for option for mapping: '" <<
-            mapping << "'.  Value values are 'low', 'high' and 'all'.";
-        throw pdal_error(oss.str());
+    case Ilvis2Reader::IlvisMapping::INVALID:
+        out << "Invalid";
+    case Ilvis2Reader::IlvisMapping::LOW:
+        out << "Low";
+    case Ilvis2Reader::IlvisMapping::HIGH:
+        out << "High";
+    case Ilvis2Reader::IlvisMapping::ALL:
+        out << "All";
     }
+    return out;
+}
 
-    m_metadataFile =
-        options.getValueOrDefault<std::string>("metadata", "");
-    if (!m_metadataFile.empty() && ! FileUtils::fileExists(m_metadataFile))
-    {
-        std::ostringstream oss;
-        oss << "Invalid metadata file: '" << m_metadataFile << "'";
-        throw pdal_error(oss.str());
-    }
+
+void Ilvis2Reader::addArgs(ProgramArgs& args)
+{
+    args.add("mapping", "Mapping for values", m_mapping, IlvisMapping::ALL);
+    args.add("metadata", "Metadata file", m_metadataFile);
 }
 
+
 void Ilvis2Reader::addDimensions(PointLayoutPtr layout)
 {
     layout->registerDim(Dimension::Id::LvisLfid);
@@ -122,6 +130,13 @@ Dimension::IdList Ilvis2Reader::getDefaultDimensions()
 
 void Ilvis2Reader::initialize(PointTableRef)
 {
+    if (!m_metadataFile.empty() && !FileUtils::fileExists(m_metadataFile))
+    {
+        std::ostringstream oss;
+        oss << "Invalid metadata file: '" << m_metadataFile << "'";
+        throw pdal_error(oss.str());
+    }
+
     // Data are WGS84 (4326) with ITRF2000 datum (6656)
     // See http://nsidc.org/data/docs/daac/icebridge/ilvis2/index.html for
     // background
@@ -146,19 +161,6 @@ T convert(const StringList& s, const std::string& name, size_t fieldno)
 }
 
 
-// If longitude between 0-180, just return it, degrees east; if between 180
-// and 360, subtract 360 to get negative value.
-double Ilvis2Reader::convertLongitude(double longitude)
-{
-    longitude = fmod(longitude, 360.0);
-    if (longitude <= -180)
-        longitude += 360;
-    else if (longitude > 180)
-        longitude -= 360;
-    return longitude;
-}
-
-
 void Ilvis2Reader::readPoint(PointRef& point, StringList s,
     std::string pointMap)
 {
@@ -169,26 +171,26 @@ void Ilvis2Reader::readPoint(PointRef& point, StringList s,
     point.setField(pdal::Dimension::Id::GpsTime,
         convert<double>(s, "GPSTIME", 2));
     point.setField(pdal::Dimension::Id::LongitudeCentroid,
-        convertLongitude(convert<double>(s, "LONGITUDE_CENTROID", 3)));
+        Utils::normalizeLongitude(convert<double>(s, "LONGITUDE_CENTROID", 3)));
     point.setField(pdal::Dimension::Id::LatitudeCentroid,
         convert<double>(s, "LATITUDE_CENTROID", 4));
     point.setField(pdal::Dimension::Id::ElevationCentroid,
         convert<double>(s, "ELEVATION_CENTROID", 5));
     point.setField(pdal::Dimension::Id::LongitudeLow,
-        convertLongitude(convert<double>(s, "LONGITUDE_LOW", 6)));
+        Utils::normalizeLongitude(convert<double>(s, "LONGITUDE_LOW", 6)));
     point.setField(pdal::Dimension::Id::LatitudeLow,
         convert<double>(s, "LATITUDE_LOW", 7));
     point.setField(pdal::Dimension::Id::ElevationLow,
         convert<double>(s, "ELEVATION_LOW", 8));
     point.setField(pdal::Dimension::Id::LongitudeHigh,
-        convertLongitude(convert<double>(s, "LONGITUDE_HIGH", 9)));
+        Utils::normalizeLongitude(convert<double>(s, "LONGITUDE_HIGH", 9)));
     point.setField(pdal::Dimension::Id::LatitudeHigh,
         convert<double>(s, "LATITUDE_HIGH", 10));
     point.setField(pdal::Dimension::Id::ElevationHigh,
         convert<double>(s, "ELEVATION_HIGH", 11));
 
     double x, y, z;
-    pdal::Dimension::Id::Enum xd, yd, zd;
+    pdal::Dimension::Id xd, yd, zd;
 
     xd = m_layout->findDim("LONGITUDE_" + pointMap);
     yd = m_layout->findDim("LATITUDE_" + pointMap);
@@ -252,16 +254,16 @@ bool Ilvis2Reader::processOne(PointRef& point)
     double high_elev = convert<double>(m_fields, "ELEVATION_HIGH", 11);
 
     // write LOW point if specified, or for ALL
-    if (m_mapping == LOW || m_mapping == ALL)
+    if (m_mapping == IlvisMapping::LOW || m_mapping == IlvisMapping::ALL)
     {
         readPoint(point, m_fields, "LOW");
         // If we have ALL mapping and the high elevation is different
         // from that of the low elevation, we'll a second point with the
         // high elevation.
-        if (m_mapping == ALL && (low_elev != high_elev))
+        if (m_mapping == IlvisMapping::ALL && (low_elev != high_elev))
             m_resample = true;
     }
-    else if (m_mapping == HIGH)
+    else if (m_mapping == IlvisMapping::HIGH)
         readPoint(point, m_fields, "HIGH");
     return true;
 }
@@ -286,6 +288,7 @@ point_count_t Ilvis2Reader::read(PointViewPtr view, point_count_t count)
     return numRead;
 }
 
+
 void Ilvis2Reader::done(PointTableRef table)
 {
     if (!m_metadataFile.empty())
diff --git a/io/ilvis2/Ilvis2Reader.hpp b/io/ilvis2/Ilvis2Reader.hpp
index 076508f..03b0c5f 100644
--- a/io/ilvis2/Ilvis2Reader.hpp
+++ b/io/ilvis2/Ilvis2Reader.hpp
@@ -59,7 +59,7 @@ namespace pdal
 class PDAL_DLL Ilvis2Reader : public pdal::Reader
 {
 public:
-    enum IlvisMappingType
+    enum class IlvisMapping
     {
       INVALID,
       LOW,
@@ -67,37 +67,18 @@ public:
       ALL
     };
 
-    class MappingParser
-    {
-      std::map<std::string, IlvisMappingType> mappingMap;
-
-      public:
-        MappingParser()
-        {
-            mappingMap["LOW"] = LOW;
-            mappingMap["HIGH"] = HIGH;
-            mappingMap["ALL"] = ALL;
-        }
-
-        IlvisMappingType parseMapping(const std::string &value)
-        { return mappingMap[value]; }
-    };
-
-    Ilvis2Reader() : Reader(), m_mapping(ALL)
-        {}
+    Ilvis2Reader()
+    {}
 
     static void * create();
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
     static Dimension::IdList getDefaultDimensions();
 
-
 private:
     std::ifstream m_stream;
-    MappingParser parser;
-    IlvisMappingType m_mapping;
+    IlvisMapping m_mapping;
     StringList m_fields;
     size_t m_lineNum;
     bool m_resample;
@@ -106,7 +87,7 @@ private:
     Ilvis2MetadataReader m_mdReader;
 
     virtual void addDimensions(PointLayoutPtr layout);
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual void initialize(PointTableRef table);
     virtual void ready(PointTableRef table);
     virtual void done(PointTableRef table);
@@ -114,10 +95,9 @@ private:
     virtual point_count_t read(PointViewPtr view, point_count_t count);
 
     virtual void readPoint(PointRef& point, StringList s, std::string pointMap);
-
-    double convertLongitude(double longitude);
-
 };
 
+std::ostream& operator<<(std::ostream& out,
+    const Ilvis2Reader::IlvisMapping& mval);
 
 } // namespace pdal
diff --git a/io/las/CMakeLists.txt b/io/las/CMakeLists.txt
index d5d9d9b..1bd7c8b 100644
--- a/io/las/CMakeLists.txt
+++ b/io/las/CMakeLists.txt
@@ -33,6 +33,7 @@ set(incs
 set(objs "")
 
 add_library(lascommon OBJECT ${srcs} ${incs})
+add_dependencies(lascommon generate_dimension_hpp)
 set(objs ${objs} $<TARGET_OBJECTS:lascommon>)
 
 #
diff --git a/io/las/GeotiffSupport.cpp b/io/las/GeotiffSupport.cpp
index e4d0edf..c1904e0 100644
--- a/io/las/GeotiffSupport.cpp
+++ b/io/las/GeotiffSupport.cpp
@@ -179,8 +179,6 @@ std::string GeotiffSupport::getWkt(bool horizOnly, bool pretty) const
     GTIFDefn sGTIFDefn;
     char* pszWKT = 0;
 
-    gdal::ErrorHandler::ExceptionSuspender suspender;
-
     if (!m_gtiff)
         return std::string();
 
diff --git a/io/las/HeaderVal.hpp b/io/las/HeaderVal.hpp
index 0d46811..e83bc00 100644
--- a/io/las/HeaderVal.hpp
+++ b/io/las/HeaderVal.hpp
@@ -44,18 +44,20 @@ class BaseHeaderVal
 protected:
     T m_val;
     T m_defVal;
-    bool m_forward;
     bool m_valSet;
 
-    BaseHeaderVal() : m_forward(false), m_valSet(false)
+    BaseHeaderVal() : m_valSet(false)
+    {}
+
+    BaseHeaderVal(const T& t) : m_defVal(t), m_valSet(false)
     {}
 
 public:
     bool valSet() const
         { return m_valSet; }
 
-    void setDefault(const T& t)
-        { m_defVal = t; }
+virtual void print(const std::string& s)
+{}
 };
 
 template <typename T, T MIN = std::numeric_limits<T>::lowest(),
@@ -65,6 +67,12 @@ class NumHeaderVal : public BaseHeaderVal<T>
 public:
     typedef T type;
 
+    NumHeaderVal()
+    {}
+
+    NumHeaderVal(const T& t) : BaseHeaderVal<T>(t)
+    {}
+
     bool setVal(T val)
     {
 #pragma GCC diagnostic push
@@ -79,15 +87,42 @@ public:
 #pragma GCC diagnostic pop
     }
 
-    T val()
+    T val() const
         { return (this->m_valSet ? this->m_val : this->m_defVal); }
 };
 
+
+template <typename T, T MIN, T MAX>
+inline std::istream& operator>>(std::istream& in, NumHeaderVal<T, MIN, MAX>& h)
+{
+    std::string s;
+    T t;
+
+    in >> s;
+    if (!Utils::fromString(s, t) || !h.setVal(t))
+        in.setstate(std::ios::failbit);
+    return in;
+}
+
+template<typename T, T MIN, T MAX>
+inline std::ostream& operator<<(std::ostream& out,
+    const NumHeaderVal<T, MIN, MAX>& h)
+{
+    out << h.val();
+    return out;
+}
+
 class DoubleHeaderVal : public BaseHeaderVal<double>
 {
 public:
     typedef double type;
 
+    DoubleHeaderVal()
+    {}
+
+    DoubleHeaderVal(const double& d) : BaseHeaderVal(d)
+    {}
+
     bool setVal(double val)
     {
         m_val = val;
@@ -99,12 +134,27 @@ public:
         { return (m_valSet ? m_val : m_defVal); }
 };
 
+inline std::istream& operator>>(std::istream& in, DoubleHeaderVal& h)
+{
+    double d;
+    in >> d;
+    if (!h.setVal(d))
+        in.setstate(std::ios::failbit);
+    return in;
+}
+
 template <size_t LEN>
 class StringHeaderVal : public BaseHeaderVal<std::string>
 {
 public:
     typedef std::string type;
 
+    StringHeaderVal()
+    {}
+
+    StringHeaderVal(const std::string& s) : BaseHeaderVal(s)
+    {}
+
     bool setVal(std::string val)
     {
         m_valSet = true;
@@ -113,15 +163,39 @@ public:
         return val.length() <= LEN;
     }
 
-    std::string val()
+    std::string val() const
         { return m_valSet ? m_val : m_defVal; }
 };
 
+template <size_t LEN>
+inline std::istream& operator>>(std::istream& in, StringHeaderVal<LEN>& h)
+{
+    std::string s;
+    in >> s;
+    if (!h.setVal(s))
+        in.setstate(std::ios::failbit);
+    return in;
+}
+
+template <size_t LEN>
+inline std::ostream& operator<<(std::ostream& out,
+    const StringHeaderVal<LEN>& h)
+{
+    out << h.val();
+    return out;
+}
+
 class UuidHeaderVal : public BaseHeaderVal<Uuid>
 {
 public:
     typedef Uuid type;
 
+    UuidHeaderVal()
+    {}
+
+    UuidHeaderVal(const Uuid& uuid) : BaseHeaderVal(uuid)
+    {}
+
     bool setVal(Uuid val)
     {
         m_valSet = true;
@@ -129,9 +203,24 @@ public:
         return true;
     }
 
-    Uuid val()
+    Uuid val() const
         { return m_valSet ? m_val : m_defVal; }
 };
 
+inline std::istream& operator>>(std::istream& in, UuidHeaderVal& h)
+{
+    Uuid u;
+    in >> u;
+    if (!h.setVal(u))
+        in.setstate(std::ios::failbit);
+    return in;
+}
+
+inline std::ostream& operator<<(std::ostream& out, const UuidHeaderVal& h)
+{
+    out << h.val();
+    return out;
+}
+
 } // namespace pdal
 
diff --git a/io/las/LasHeader.cpp b/io/las/LasHeader.cpp
index f6d7395..bfe154a 100644
--- a/io/las/LasHeader.cpp
+++ b/io/las/LasHeader.cpp
@@ -35,8 +35,9 @@
 
 #include "LasHeader.hpp"
 
-#include <pdal/util/Utils.hpp>
 #include <pdal/pdal_config.hpp>
+#include <pdal/Scaling.hpp>
+#include <pdal/util/Utils.hpp>
 
 #include "SummaryData.hpp"
 
@@ -96,28 +97,27 @@ void LasHeader::setSummary(const SummaryData& summary)
 }
 
 
-void LasHeader::setScale(double x, double y, double z)
+void LasHeader::setScaling(const Scaling& scaling)
 {
-    if (x == 0)
+    const double& xs = scaling.m_xXform.m_scale.m_val;
+    const double& ys = scaling.m_yXform.m_scale.m_val;
+    const double& zs = scaling.m_zXform.m_scale.m_val;
+    if (xs == 0)
         throw std::invalid_argument("X scale of 0.0 is invalid!");
 
-    if (y == 0)
+    if (ys == 0)
         throw std::invalid_argument("Y scale of 0.0 is invalid!");
 
-    if (z == 0)
+    if (zs == 0)
         throw std::invalid_argument("Z scale of 0.0 is invalid!");
 
-    m_scales[0] = x;
-    m_scales[1] = y;
-    m_scales[2] = z;
-}
+    m_scales[0] = xs;
+    m_scales[1] = ys;
+    m_scales[2] = zs;
 
-
-void LasHeader::setOffset(double x, double y, double z)
-{
-    m_offsets[0] = x;
-    m_offsets[1] = y;
-    m_offsets[2] = z;
+    m_offsets[0] = scaling.m_xXform.m_offset.m_val;
+    m_offsets[1] = scaling.m_yXform.m_offset.m_val;
+    m_offsets[2] = scaling.m_zXform.m_offset.m_val;
 }
 
 
@@ -180,7 +180,7 @@ Dimension::IdList LasHeader::usedDims() const
 {
     using namespace Dimension;
 
-    Dimension::Id::Enum dims[] = { Id::ReturnNumber, Id::NumberOfReturns,
+    Dimension::Id dims[] = { Id::ReturnNumber, Id::NumberOfReturns,
         Id::X, Id::Y, Id::Z, Id::Intensity, Id::ScanChannel,
         Id::ScanDirectionFlag, Id::EdgeOfFlightLine, Id::Classification,
         Id::UserData, Id::ScanAngleRank, Id::PointSourceId };
diff --git a/io/las/LasHeader.hpp b/io/las/LasHeader.hpp
index 881c36a..3ab709a 100644
--- a/io/las/LasHeader.hpp
+++ b/io/las/LasHeader.hpp
@@ -55,6 +55,7 @@ class ILeStream;
 typedef uint8_t PointFormat;
 std::string GetDefaultSoftwareId();
 class SummaryData;
+class Scaling;
 
 class PDAL_DLL LasHeader
 {
@@ -260,8 +261,8 @@ public:
     double scaleZ() const
         { return m_scales[2]; }
 
-    /// Set values of scale factor for X, Y and Z coordinates.
-    void setScale(double x, double y, double z);
+    /// Set values of scale/offset factor for X, Y and Z coordinates.
+    void setScaling(const Scaling& scaling);
 
     /// Get X coordinate offset.
     double offsetX() const
@@ -380,7 +381,7 @@ public:
     const VlrList& vlrs() const
         { return m_vlrs; }
 
-    friend ILeStream& operator>>(ILeStream&, LasHeader& h);
+    PDAL_DLL friend ILeStream& operator>>(ILeStream&, LasHeader& h);
     friend OLeStream& operator<<(OLeStream&, const LasHeader& h);
     friend std::ostream& operator<<(std::ostream& ostr, const LasHeader& h);
 
diff --git a/io/las/LasReader.cpp b/io/las/LasReader.cpp
index 49b9f0b..1b2ef4a 100644
--- a/io/las/LasReader.cpp
+++ b/io/las/LasReader.cpp
@@ -38,13 +38,12 @@
 #include <string.h>
 
 #include <pdal/Metadata.hpp>
-#include <pdal/PDALUtils.hpp>
 #include <pdal/PointView.hpp>
 #include <pdal/QuickInfo.hpp>
 #include <pdal/util/Extractor.hpp>
-#include <pdal/util/FileUtils.hpp>
 #include <pdal/util/IStream.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #ifdef PDAL_HAVE_LIBGEOTIFF
 #include "GeotiffSupport.hpp"
@@ -68,34 +67,15 @@ public:
 
 } // unnamed namespace
 
-void LasReader::processOptions(const Options& options)
+void LasReader::addArgs(ProgramArgs& args)
 {
-    StringList extraDims = options.getValueOrDefault<StringList>("extra_dims");
-    m_extraDims = LasUtils::parse(extraDims);
-
-    m_compression = options.getValueOrDefault<std::string>("compression",
-        "LASZIP");
-    std::string compression = Utils::toupper(m_compression);
-#ifndef PDAL_HAVE_LAZPERF
-    if (compression == "LAZPERF")
-        throw pdal_error("Can't decompress with LAZperf.  PDAL not built "
-            "with LAZperf.");
-#endif
-    if (compression != "LAZPERF" && compression != "LASZIP")
-    {
-        std::ostringstream oss;
-
-        oss << "Invalid value for option for compression: '" <<
-            m_compression << "'.  Value values are 'lazperf' and 'laszip'.";
-        throw pdal_error(oss.str());
-    }
-
-    // Set case-corrected value.
-    m_compression = compression;
-
-    m_error.setFilename(m_filename);
+    addSpatialReferenceArg(args);
+    args.add("extra_dims", "Dimensions to assign to extra byte data",
+        m_extraDimSpec);
+    args.add("compression", "Decompressor to use", m_compression, "LASZIP");
 }
 
+
 static PluginInfo const s_info = PluginInfo(
     "readers.las",
     "ASPRS LAS 1.0 - 1.4 read support. LASzip support is also \n" \
@@ -133,6 +113,27 @@ QuickInfo LasReader::inspect()
 
 void LasReader::initializeLocal(PointTableRef table, MetadataNode& m)
 {
+    m_extraDims = LasUtils::parse(m_extraDimSpec);
+
+    std::string compression = Utils::toupper(m_compression);
+#ifndef PDAL_HAVE_LAZPERF
+    if (compression == "LAZPERF")
+        throw pdal_error("Can't decompress with LAZperf.  PDAL not built "
+            "with LAZperf.");
+#endif
+    if (compression != "LAZPERF" && compression != "LASZIP")
+    {
+        std::ostringstream oss;
+
+        oss << "Invalid value for option for compression: '" <<
+            m_compression << "'.  Value values are 'lazperf' and 'laszip'.";
+        throw pdal_error(oss.str());
+    }
+
+    // Set case-corrected value.
+    m_compression = compression;
+    m_error.setFilename(m_filename);
+
     m_error.setLog(log());
     m_header.setLog(log());
     createStream();
@@ -229,16 +230,6 @@ void LasReader::ready(PointTableRef table)
 }
 
 
-Options LasReader::getDefaultOptions()
-{
-    Options options;
-    options.add("filename", "", "file to read from");
-    options.add("extra_dims", "", "Extra dimensions not part of the LAS "
-        "point format to be read from each point.");
-    return options;
-}
-
-
 // Store data in the normal metadata place.  Also store it in the private
 // lasforward metadata node.
 template <typename T>
@@ -473,7 +464,7 @@ void LasReader::addDimensions(PointLayoutPtr layout)
 
     for (auto& dim : m_extraDims)
     {
-        Dimension::Type::Enum type = dim.m_dimType.m_type;
+        Dimension::Type type = dim.m_dimType.m_type;
         if (type == Dimension::Type::None)
             continue;
         if (dim.m_dimType.m_xform.nonstandard())
@@ -781,8 +772,8 @@ void LasReader::loadExtraDims(LeExtractor& istream, PointRef& point)
         if (dim.m_dimType.m_xform.nonstandard())
         {
             double d = Utils::toDouble(e, dim.m_dimType.m_type);
-            d = d * dim.m_dimType.m_xform.m_scale +
-                dim.m_dimType.m_xform.m_offset;
+            d = d * dim.m_dimType.m_xform.m_scale.m_val +
+                dim.m_dimType.m_xform.m_offset.m_val;
             point.setField(dim.m_dimType.m_id, d);
         }
         else
diff --git a/io/las/LasReader.hpp b/io/las/LasReader.hpp
index 3dbf2fe..6d68ff0 100644
--- a/io/las/LasReader.hpp
+++ b/io/las/LasReader.hpp
@@ -37,6 +37,7 @@
 #include <pdal/pdal_export.hpp>
 #include <pdal/plugin.hpp>
 #include <pdal/Compression.hpp>
+#include <pdal/PDALUtils.hpp>
 #include <pdal/Reader.hpp>
 
 #include "LasError.hpp"
@@ -66,12 +67,12 @@ protected:
 
     public:
         LasStreamIf(const std::string& filename)
-            { m_istream = FileUtils::openFile(filename); }
+            { m_istream = Utils::openFile(filename); }
 
         ~LasStreamIf()
         {
             if (m_istream)
-                FileUtils::closeFile(m_istream);
+                Utils::closeFile(m_istream);
         }
 
         std::istream *m_istream;
@@ -85,7 +86,6 @@ public:
     static void * create();
     static int32_t destroy(void *);
     std::string getName() const;
-    Options getDefaultOptions();
 
     const LasHeader& header() const
         { return m_header; }
@@ -117,10 +117,11 @@ private:
     std::unique_ptr<LazPerfVlrDecompressor> m_decompressor;
     std::vector<char> m_decompressorBuf;
     point_count_t m_index;
+    StringList m_extraDimSpec;
     std::vector<ExtraDim> m_extraDims;
     std::string m_compression;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual void initialize(PointTableRef table)
         { initializeLocal(table, m_metadata); }
     virtual void initializeLocal(PointTableRef table, MetadataNode& m);
diff --git a/io/las/LasUtils.cpp b/io/las/LasUtils.cpp
index 5e5288c..ad10fa6 100644
--- a/io/las/LasUtils.cpp
+++ b/io/las/LasUtils.cpp
@@ -43,16 +43,20 @@
 namespace pdal
 {
 
+namespace
+{
+    using DT = Dimension::Type;
+    const Dimension::Type lastypes[] = {
+        DT::None, DT::Unsigned8, DT::Signed8, DT::Unsigned16, DT::Signed16,
+        DT::Unsigned32, DT::Signed32, DT::Unsigned64, DT::Signed64,
+        DT::Float, DT::Double
+    };
+}
+
 uint8_t ExtraBytesIf::lasType()
 {
-    using namespace Dimension::Type;
-    
     uint8_t lastype = 0;
 
-    Dimension::Type::Enum lastypes[] = {
-        None, Unsigned8, Signed8, Unsigned16, Signed16,
-        Unsigned32, Signed32, Unsigned64, Signed64, Float, Double
-    };
     for (size_t i = 0; i < sizeof(lastypes) / sizeof(lastypes[0]); ++i)
         if (m_type == lastypes[i])
         {
@@ -67,8 +71,6 @@ uint8_t ExtraBytesIf::lasType()
 
 void ExtraBytesIf::setType(uint8_t lastype)
 {
-    using namespace Dimension::Type;
-
     m_fieldCnt = 1;
     while (lastype > 10)
     {
@@ -76,12 +78,8 @@ void ExtraBytesIf::setType(uint8_t lastype)
         lastype -= 10;
     }
 
-    Dimension::Type::Enum lastypes[] = {
-        None, Unsigned8, Signed8, Unsigned16, Signed16,
-        Unsigned32, Signed32, Unsigned64, Signed64, Float, Double
-    };
     m_type = lastypes[lastype];
-    if (m_type == None)
+    if (m_type == Dimension::Type::None)
         m_fieldCnt = 0;
 }
 
@@ -141,7 +139,7 @@ void ExtraBytesIf::readFrom(const char *buf)
     extractor.get(m_description, 32);
 
     setType(type);
-    if (m_type == 0)
+    if (m_type == Dimension::Type::None)
         m_size = options;
     if (!(options & SCALE_MASK))
         for (size_t i = 0; i < 3; ++i)
@@ -206,7 +204,7 @@ std::vector<ExtraDim> parse(const StringList& dimString)
         }
         Utils::trim(s[0]);
         Utils::trim(s[1]);
-        Dimension::Type::Enum type = Dimension::type(s[1]);
+        Dimension::Type type = Dimension::type(s[1]);
         if (type == Dimension::Type::None)
         {
             std::ostringstream oss;
diff --git a/io/las/LasUtils.hpp b/io/las/LasUtils.hpp
index b1f601a..d2d5a0c 100644
--- a/io/las/LasUtils.hpp
+++ b/io/las/LasUtils.hpp
@@ -35,26 +35,51 @@
 #pragma once
 
 #include <pdal/Dimension.hpp>
+#include <pdal/DimType.hpp>
 #include <string>
 
 namespace pdal
 {
 
-namespace LasCompression
-{
-
-enum Enum
+enum class LasCompression
 {
     LasZip,
     LazPerf,
     None
 };
 
+inline std::istream& operator>>(std::istream& in, LasCompression& c)
+{
+    std::string s;
+
+    in >> s;
+    s = Utils::toupper(s);
+    if (s == "LASZIP"  || s == "TRUE")
+        c = LasCompression::LasZip;
+    else if (s == "LAZPERF")
+        c = LasCompression::LazPerf;
+    else
+        c = LasCompression::None;
+    return in;
+}
+
+inline std::ostream& operator<<(std::ostream& out, const LasCompression& c)
+{
+    switch (c)
+    {
+    case LasCompression::LasZip:
+        out << "LasZip";
+    case LasCompression::LazPerf:
+        out << "LazPerf";
+    case LasCompression::None:
+        out << "None";
+    }
+    return out;
 }
 
 struct ExtraDim
 {
-    ExtraDim(const std::string name, Dimension::Type::Enum type,
+    ExtraDim(const std::string name, Dimension::Type type,
             double scale = 1.0, double offset = 0.0) :
         m_name(name), m_dimType(Dimension::Id::Unknown, type, scale, offset),
         m_size(0)
@@ -106,7 +131,7 @@ public:
         }
     }
 
-    ExtraBytesIf(const std::string& name, Dimension::Type::Enum type,
+    ExtraBytesIf(const std::string& name, Dimension::Type type,
             const std::string& description) :
         m_type(type), m_name(name), m_description(description), m_size(0)
     {
@@ -128,7 +153,7 @@ public:
     std::vector<ExtraDim> toExtraDims();
 
 private:
-    Dimension::Type::Enum m_type;
+    Dimension::Type m_type;
     unsigned m_fieldCnt; // Must be 0 - 3;
     double m_scale[3];
     double m_offset[3];
diff --git a/io/las/LasWriter.cpp b/io/las/LasWriter.cpp
index 7a0b91f..233235d 100644
--- a/io/las/LasWriter.cpp
+++ b/io/las/LasWriter.cpp
@@ -44,6 +44,7 @@
 #include <pdal/util/OStream.hpp>
 #include <pdal/util/Utils.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #ifdef PDAL_HAVE_LIBGEOTIFF
 #include "GeotiffSupport.hpp"
@@ -65,79 +66,62 @@ CREATE_STATIC_PLUGIN(1, 0, LasWriter, Writer, s_info)
 std::string LasWriter::getName() const { return s_info.name; }
 
 LasWriter::LasWriter() : m_ostream(NULL), m_compression(LasCompression::None)
-{
-    m_majorVersion.setDefault(1);
-    m_minorVersion.setDefault(2);
-    m_dataformatId.setDefault(3);
-    m_filesourceId.setDefault(0);
-    m_globalEncoding.setDefault(0);
-    m_systemId.setDefault(m_lasHeader.getSystemIdentifier());
-    m_softwareId.setDefault(GetDefaultSoftwareId());
+{}
 
-    std::time_t now;
-    std::time(&now);
-    std::tm* ptm = std::gmtime(&now);
-    uint16_t year = ptm->tm_year + 1900;
-    uint16_t doy = ptm->tm_yday;
 
-    m_creationDoy.setDefault(doy);
-    m_creationYear.setDefault(year);
-    m_scaleX.setDefault(".01");
-    m_scaleY.setDefault(".01");
-    m_scaleZ.setDefault(".01");
-    m_offsetX.setDefault("0");
-    m_offsetY.setDefault("0");
-    m_offsetZ.setDefault("0");
-}
-
-
-Options LasWriter::getDefaultOptions()
+void LasWriter::addArgs(ProgramArgs& args)
 {
-    Options options;
-    LasHeader header;
-
-    options.add("filename", "", "Output file specification.");
-    options.add("compression", "none", "Compression engine to use ('laszip' "
-        "or 'lazperf'.");
-    options.add("major_version", 1, "LAS Major version");
-    options.add("minor_version", 2, "LAS Minor version");
-    options.add("dataformat_id", 3, "Point format to write");
-    options.add("filesource_id", 0, "File Source ID for this file");
-    options.add("global_encoding", 0, "Global encoding bits");
-    options.add("system_id", header.getSystemIdentifier(),
-        "System ID for this file");
-    options.add("software_id", GetDefaultSoftwareId(),
-        "Software ID for this file");
-
     std::time_t now;
     std::time(&now);
     std::tm* ptm = std::gmtime(&now);
     uint16_t year = ptm->tm_year + 1900;
     uint16_t doy = ptm->tm_yday;
 
-    options.add("creation_doy", doy, "Day of Year for file");
-    options.add("creation_year", year, "4-digit year value for file");
-    options.add("extra_dims", "", "Extra dimensions not part of the LAS "
-        "point format to be added to each point.");
-
-    return options;
-}
-
-
-void LasWriter::processOptions(const Options& options)
-{
-    if (options.hasOption("a_srs"))
-        setSpatialReference(options.getValueOrDefault<std::string>("a_srs"));
-
-    std::string compression =
-        options.getValueOrDefault<std::string>("compression");
-    compression = Utils::toupper(compression);
-    if (compression == "LASZIP" || compression == "TRUE")
+    args.add("filename", "Output filename", m_filename).setPositional();
+    args.add("a_srs", "Spatial reference to use to write output", m_aSrs);
+    args.add("compression", "Compression to use for output ('LASZIP' or "
+        "'LAZPERF')", m_compression, LasCompression::None);
+    args.add("discard_high_return_numbers", "Discard points with out-of-spec "
+        "return numbers.", m_discardHighReturnNumbers);
+    args.add("extra_dims", "Dimensions to write above those in point format",
+        m_extraDimSpec);
+    args.add("forward", "Dimensions to forward from LAS reader", m_forwardSpec);
+
+    args.add("major_version", "LAS major version", m_majorVersion,
+        decltype(m_majorVersion)(1));
+    args.add("minor_version", "LAS minor version", m_minorVersion,
+        decltype(m_minorVersion)(2));
+    args.add("dataformat_id", "Point format", m_dataformatId,
+        decltype(m_dataformatId)(3));
+    args.add("format", "Point format", m_dataformatId,
+        decltype(m_dataformatId)(3));
+    args.add("global_encoding", "Global encoding byte", m_globalEncoding);
+    args.add("project_id", "Project ID", m_projectId);
+    args.add("system_id", "System ID", m_systemId,
+        decltype(m_systemId)(m_lasHeader.getSystemIdentifier()));
+    args.add("software_id", "Software ID", m_softwareId,
+        decltype(m_softwareId)(GetDefaultSoftwareId()));
+    args.add("creation_doy", "Creation day of year", m_creationDoy,
+        decltype(m_creationDoy)(doy));
+    args.add("creation_year", "Creation year", m_creationYear,
+        decltype(m_creationYear)(year));
+    args.add("scale_x", "X scale factor", m_scaleX, decltype(m_scaleX)(".01"));
+    args.add("scale_y", "Y scale factor", m_scaleY, decltype(m_scaleY)(".01"));
+    args.add("scale_z", "Z scale factor", m_scaleZ, decltype(m_scaleZ)(".01"));
+    args.add("offset_x", "X offset", m_offsetX);
+    args.add("offset_y", "Y offset", m_offsetY);
+    args.add("offset_z", "Z offset", m_offsetZ);
+}
+
+void LasWriter::initialize()
+{
+    std::string ext = FileUtils::extension(m_filename);
+    ext = Utils::tolower(ext);
+    if ((ext == ".laz") && (m_compression == LasCompression::None))
         m_compression = LasCompression::LasZip;
-    else if (compression == "LAZPERF")
-        m_compression = LasCompression::LazPerf;
-    else
-        m_compression = LasCompression::None;
+
+    if (!m_aSrs.empty())
+        setSpatialReference(m_aSrs);
     if (m_compression != LasCompression::None)
         m_lasHeader.setCompressed(true);
 #if !defined(PDAL_HAVE_LASZIP) && !defined(PDAL_HAVE_LAZPERF)
@@ -145,14 +129,8 @@ void LasWriter::processOptions(const Options& options)
         throw pdal_error("Can't write LAZ output.  "
             "PDAL not built with LASzip or LAZperf.");
 #endif
-
-    m_discardHighReturnNumbers = options.getValueOrDefault(
-        "discard_high_return_numbers", false);
-    StringList extraDims = options.getValueOrDefault<StringList>("extra_dims");
-    m_extraDims = LasUtils::parse(extraDims);
-
-    fillForwardList(options);
-    getHeaderOptions(options);
+    m_extraDims = LasUtils::parse(m_extraDimSpec);
+    fillForwardList();
 }
 
 
@@ -195,40 +173,26 @@ void LasWriter::prepared(PointTableRef table)
 
 // Get header info from options and store in map for processing with
 // metadata.
-void LasWriter::fillForwardList(const Options &options)
-{
-    StringList forwards = options.getValues("forward");
-
-    StringList header;
-    header.push_back("dataformat_id");
-    header.push_back("major_version");
-    header.push_back("minor_version");
-    header.push_back("filesource_id");
-    header.push_back("global_encoding");
-    header.push_back("project_id");
-    header.push_back("system_id");
-    header.push_back("software_id");
-    header.push_back("creation_doy");
-    header.push_back("creation_year");
-
-    StringList scale;
-    scale.push_back("scale_x");
-    scale.push_back("scale_y");
-    scale.push_back("scale_z");
-
-    StringList offset;
-    offset.push_back("offset_x");
-    offset.push_back("offset_y");
-    offset.push_back("offset_z");
-
-    StringList all;
+void LasWriter::fillForwardList()
+{
+    static const StringList header = {
+        "dataformat_id", "major_version", "minor_version", "filesource_id",
+        "global_encoding", "project_id", "system_id", "software_id",
+        "creation_doy", "creation_year"
+    };
+
+    static const StringList scale = { "scale_x", "scale_y", "scale_z" };
+
+    static const StringList offset = { "offset_x", "offset_y", "offset_z" };
+
+    static StringList all;
     all.insert(all.begin(), header.begin(), header.end());
     all.insert(all.begin(), scale.begin(), scale.end());
     all.insert(all.begin(), offset.begin(), offset.end());
 
     // Build the forward list, replacing special keywords with the proper
     // field names.
-    for (auto& name : forwards)
+    for (auto& name : m_forwardSpec)
     {
         if (name == "all")
         {
@@ -259,37 +223,6 @@ void LasWriter::fillForwardList(const Options &options)
 }
 
 
-template<typename T>
-void setHeaderOption(const std::string& name, T& headerVal, const Options& ops)
-{
-    if (ops.hasOption(name))
-        headerVal.setVal(ops.getValueOrDefault<typename T::type>(name));
-}
-
-
-// Get header info from options and store in map for processing with
-// metadata.
-void LasWriter::getHeaderOptions(const Options &options)
-{
-    setHeaderOption("major_version", m_majorVersion, options);
-    setHeaderOption("minor_version", m_minorVersion, options);
-    setHeaderOption("dataformat_id", m_dataformatId, options);
-    setHeaderOption("format", m_dataformatId, options);
-    setHeaderOption("global_encoding", m_globalEncoding, options);
-    setHeaderOption("project_id", m_projectId, options);
-    setHeaderOption("system_id", m_systemId, options);
-    setHeaderOption("software_id", m_softwareId, options);
-    setHeaderOption("creation_doy", m_creationDoy, options);
-    setHeaderOption("creation_year", m_creationYear, options);
-    setHeaderOption("scale_x", m_scaleX, options);
-    setHeaderOption("scale_y", m_scaleY, options);
-    setHeaderOption("scale_z", m_scaleZ, options);
-    setHeaderOption("offset_x", m_offsetX, options);
-    setHeaderOption("offset_y", m_offsetY, options);
-    setHeaderOption("offset_z", m_offsetZ, options);
-}
-
-
 void LasWriter::readyTable(PointTableRef table)
 {
     m_forwardMetadata = table.privateMetadata("lasforward");
@@ -300,7 +233,7 @@ void LasWriter::readyTable(PointTableRef table)
 void LasWriter::readyFile(const std::string& filename,
     const SpatialReference& srs)
 {
-    std::ostream *out = FileUtils::createFile(filename, true);
+    std::ostream *out = Utils::createFile(filename, true);
     if (!out)
     {
         std::stringstream out;
@@ -599,12 +532,12 @@ void LasWriter::handleHeaderForwards(MetadataNode& forward)
     handleHeaderForward("offset_y", m_offsetY, forward);
     handleHeaderForward("offset_z", m_offsetZ, forward);
 
-    m_xXform.setScale(m_scaleX.val());
-    m_yXform.setScale(m_scaleY.val());
-    m_zXform.setScale(m_scaleZ.val());
-    m_xXform.setOffset(m_offsetX.val());
-    m_yXform.setOffset(m_offsetY.val());
-    m_zXform.setOffset(m_offsetZ.val());
+    m_scaling.m_xXform.m_scale.set(m_scaleX.val());
+    m_scaling.m_yXform.m_scale.set(m_scaleY.val());
+    m_scaling.m_zXform.m_scale.set(m_scaleZ.val());
+    m_scaling.m_xXform.m_offset.set(m_offsetX.val());
+    m_scaling.m_yXform.m_offset.set(m_offsetY.val());
+    m_scaling.m_zXform.m_offset.set(m_offsetZ.val());
 }
 
 /// Fill the LAS header with values as provided in options or forwarded
@@ -613,9 +546,7 @@ void LasWriter::fillHeader()
 {
     const uint16_t WKT_MASK = (1 << 4);
 
-    m_lasHeader.setScale(m_xXform.m_scale, m_yXform.m_scale, m_zXform.m_scale);
-    m_lasHeader.setOffset(m_xXform.m_offset, m_yXform.m_offset,
-        m_zXform.m_offset);
+    m_lasHeader.setScaling(m_scaling);
     m_lasHeader.setVlrCount(m_vlrs.size());
     m_lasHeader.setEVlrCount(m_eVlrs.size());
 
@@ -731,12 +662,12 @@ void LasWriter::writeView(const PointViewPtr view)
 {
     Utils::writeProgress(m_progressFd, "READYVIEW",
         std::to_string(view->size()));
-    setAutoXForm(view);
+    m_scaling.setAutoXForm(view);
 
-    size_t pointLen = m_lasHeader.pointLen();
+    point_count_t pointLen = m_lasHeader.pointLen();
 
     // Make a buffer of at most a meg.
-    m_pointBuf.resize(std::min((size_t)1000000, pointLen * view->size()));
+    m_pointBuf.resize(std::min((point_count_t)1000000, pointLen * view->size()));
 
     const PointView& viewRef(*view.get());
 
@@ -830,15 +761,7 @@ bool LasWriter::fillPointBuf(PointRef& point, LeInserter& ostream)
             m_error.numReturnsWarning(numberOfReturns);
     }
 
-    double xOrig = point.getFieldAs<double>(Id::X);
-    double yOrig = point.getFieldAs<double>(Id::Y);
-    double zOrig = point.getFieldAs<double>(Id::Z);
-
-    double x = (xOrig - m_xXform.m_offset) / m_xXform.m_scale;
-    double y = (yOrig - m_yXform.m_offset) / m_yXform.m_scale;
-    double z = (zOrig - m_zXform.m_offset) / m_zXform.m_scale;
-
-    auto converter = [this](double d, Dimension::Id::Enum dim) -> int32_t
+    auto converter = [this](double d, Dimension::Id dim) -> int32_t
     {
         int32_t i;
 
@@ -853,6 +776,13 @@ bool LasWriter::fillPointBuf(PointRef& point, LeInserter& ostream)
         return i;
     };
 
+    double xOrig = point.getFieldAs<double>(Id::X);
+    double yOrig = point.getFieldAs<double>(Id::Y);
+    double zOrig = point.getFieldAs<double>(Id::Z);
+    double x = m_scaling.m_xXform.toScaled(xOrig);
+    double y = m_scaling.m_yXform.toScaled(yOrig);
+    double z = m_scaling.m_zXform.toScaled(zOrig);
+
     ostream << converter(x, Id::X);
     ostream << converter(y, Id::Y);
     ostream << converter(z, Id::Z);
@@ -974,10 +904,7 @@ void LasWriter::finishOutput()
     }
 
     // Reset the offset/scale since it may have been auto-computed
-    m_lasHeader.setOffset(m_xXform.m_offset, m_yXform.m_offset,
-        m_zXform.m_offset);
-    m_lasHeader.setScale(m_xXform.m_scale, m_yXform.m_scale,
-        m_zXform.m_scale);
+    m_lasHeader.setScaling(m_scaling);
 
     // The summary is calculated as points are written.
     m_lasHeader.setSummary(*m_summaryData);
diff --git a/io/las/LasWriter.hpp b/io/las/LasWriter.hpp
index 0d7edf0..f6ceb9f 100644
--- a/io/las/LasWriter.hpp
+++ b/io/las/LasWriter.hpp
@@ -75,8 +75,6 @@ public:
 
     LasWriter();
 
-    Options getDefaultOptions();
-
 protected:
     void prepOutput(std::ostream *out, const SpatialReference& srs);
     void finishOutput();
@@ -94,14 +92,17 @@ private:
     std::ostream *m_ostream;
     std::vector<VariableLengthRecord> m_vlrs;
     std::vector<ExtVariableLengthRecord> m_eVlrs;
+    StringList m_extraDimSpec;
     std::vector<ExtraDim> m_extraDims;
     uint16_t m_extraByteLen;
     SpatialReference m_srs;
     std::string m_curFilename;
+    StringList m_forwardSpec;
     std::set<std::string> m_forwards;
     bool m_forwardVlrs;
-    LasCompression::Enum m_compression;
+    LasCompression m_compression;
     std::vector<char> m_pointBuf;
+    SpatialReference m_aSrs;
 
     NumHeaderVal<uint8_t, 1, 1> m_majorVersion;
     NumHeaderVal<uint8_t, 1, 4> m_minorVersion;
@@ -114,7 +115,7 @@ private:
     StringHeaderVal<32> m_systemId;
     StringHeaderVal<32> m_softwareId;
     NumHeaderVal<uint16_t, 0, 366> m_creationDoy;
-    // MSVC doesn't see numeric_limits::max() as constexpr do doesn't allow
+    // MSVC doesn't see numeric_limits::max() as constexpr so doesn't allow
     // them as defaults for templates.  Remove when possible.
     NumHeaderVal<uint16_t, 0, 65535> m_creationYear;
     StringHeaderVal<20> m_scaleX;
@@ -125,7 +126,8 @@ private:
     StringHeaderVal<20> m_offsetZ;
     MetadataNode m_forwardMetadata;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void initialize();
     virtual void prepared(PointTableRef table);
     virtual void readyTable(PointTableRef table);
     virtual void readyFile(const std::string& filename,
@@ -134,8 +136,7 @@ private:
     virtual bool processOne(PointRef& point);
     virtual void doneFile();
 
-    void fillForwardList(const Options& options);
-    void getHeaderOptions(const Options& options);
+    void fillForwardList();
     template <typename T>
     void handleHeaderForward(const std::string& s, T& headerVal,
         const MetadataNode& base);
diff --git a/io/optech/OptechReader.cpp b/io/optech/OptechReader.cpp
index 326e596..b8e0180 100644
--- a/io/optech/OptechReader.cpp
+++ b/io/optech/OptechReader.cpp
@@ -39,6 +39,7 @@
 #include <cstring>
 #include <sstream>
 
+#include <pdal/PDALUtils.hpp>
 #include <pdal/SpatialReference.hpp>
 #include <pdal/StageFactory.hpp>
 #include <pdal/pdal_macros.hpp>
@@ -104,7 +105,7 @@ const CsdHeader& OptechReader::getHeader() const { return m_header; }
 
 void OptechReader::initialize()
 {
-    ILeStream stream(FileUtils::openFile(m_filename));
+    ILeStream stream(Utils::openFile(m_filename));
     if (!stream)
     {
         std::stringstream ss;
diff --git a/io/ply/PlyReader.cpp b/io/ply/PlyReader.cpp
index e6bfbfe..57f8aea 100644
--- a/io/ply/PlyReader.cpp
+++ b/io/ply/PlyReader.cpp
@@ -44,11 +44,10 @@ namespace pdal
 namespace
 {
 
-
 struct CallbackContext
 {
     PointViewPtr view;
-    DimensionMap dimensionMap;
+    PlyReader::DimensionMap dimensionMap;
 };
 
 
@@ -121,14 +120,13 @@ int readPlyCallback(p_ply_argument argument)
 
     CallbackContext * context = static_cast<CallbackContext *>(contextAsVoid);
     double value = ply_get_argument_value(argument);
-    Dimension::Id::Enum dimension = context->dimensionMap.at(propertyName);
+    Dimension::Id dimension = context->dimensionMap.at(propertyName);
     context->view->setField(dimension, index, value);
 
     return 1;
 }
 
-
-}
+} // unnamed namespace
 
 
 static PluginInfo const s_info = PluginInfo(
@@ -180,6 +178,27 @@ void PlyReader::initialize()
         throw pdal_error(ss.str());
     }
 
+    static std::map<int, Dimension::Type> types =
+    {
+        { PLY_INT8, Dimension::Type::Signed8 },
+        { PLY_UINT8, Dimension::Type::Unsigned8 },
+        { PLY_INT16, Dimension::Type::Signed16 },
+        { PLY_UINT16, Dimension::Type::Unsigned16 },
+        { PLY_INT32, Dimension::Type::Signed32 },
+        { PLY_UINT32, Dimension::Type::Unsigned32 },
+        { PLY_FLOAT32, Dimension::Type::Float },
+        { PLY_FLOAT64, Dimension::Type::Double },
+
+        { PLY_CHAR, Dimension::Type::Signed8 },
+        { PLY_UCHAR, Dimension::Type::Unsigned8 },
+        { PLY_SHORT, Dimension::Type::Signed16 },
+        { PLY_USHORT, Dimension::Type::Unsigned16 },
+        { PLY_INT, Dimension::Type::Signed32 },
+        { PLY_UINT, Dimension::Type::Unsigned32 },
+        { PLY_FLOAT, Dimension::Type::Float },
+        { PLY_DOUBLE, Dimension::Type::Double }
+    };
+
     p_ply_property property = nullptr;
     while ((property = ply_get_next_property(vertex_element, property)))
     {
@@ -187,7 +206,8 @@ void PlyReader::initialize()
         e_ply_type type;
         e_ply_type length_type;
         e_ply_type value_type;
-        if (!ply_get_property_info(property, &name, &type, &length_type, &value_type))
+        if (!ply_get_property_info(property, &name, &type,
+            &length_type, &value_type))
         {
             std::stringstream ss;
             ss << "Error reading property info in " << m_filename << ".";
@@ -196,11 +216,7 @@ void PlyReader::initialize()
         // For now, we'll just use PDAL's built in dimension matching.
         // We could be smarter about this, e.g. by using the length
         // and value type attributes.
-        Dimension::Id::Enum dim = Dimension::id(name);
-        if (dim != Dimension::Id::Unknown)
-        {
-            m_vertexDimensions[name] = dim;
-        }
+        m_vertexTypes[name] = types[type];
     }
     ply_close(ply);
 }
@@ -208,9 +224,12 @@ void PlyReader::initialize()
 
 void PlyReader::addDimensions(PointLayoutPtr layout)
 {
-    for (auto it : m_vertexDimensions)
+    for (auto it : m_vertexTypes)
     {
-        layout->registerDim(it.second);
+        const std::string& name = it.first;
+        const Dimension::Type& type = it.second;
+
+        m_vertexDimensions[name] = layout->registerOrAssignDim(name, type);
     }
 }
 
@@ -256,4 +275,4 @@ void PlyReader::done(PointTableRef table)
     }
 }
 
-}
+} // namespace pdal
diff --git a/io/ply/PlyReader.hpp b/io/ply/PlyReader.hpp
index 8c4b576..f252437 100644
--- a/io/ply/PlyReader.hpp
+++ b/io/ply/PlyReader.hpp
@@ -50,10 +50,6 @@ extern "C" PF_ExitFunc PlyReader_InitPlugin();
 namespace pdal
 {
 
-
-typedef std::map<std::string, Dimension::Id::Enum> DimensionMap;
-
-
 class PDAL_DLL PlyReader : public Reader
 {
 public:
@@ -61,6 +57,8 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
+    typedef std::map<std::string, Dimension::Id> DimensionMap;
+
     PlyReader();
 
     static Dimension::IdList getDefaultDimensions();
@@ -73,8 +71,9 @@ private:
     virtual void done(PointTableRef table);
 
     p_ply m_ply;
-    DimensionMap m_vertexDimensions;
 
+    DimensionMap m_vertexDimensions;
+    std::map<std::string, Dimension::Type> m_vertexTypes;
 };
 }
 
diff --git a/io/ply/PlyWriter.cpp b/io/ply/PlyWriter.cpp
index 3232965..31fa1e2 100644
--- a/io/ply/PlyWriter.cpp
+++ b/io/ply/PlyWriter.cpp
@@ -37,13 +37,13 @@
 #include <sstream>
 
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
 namespace
 {
 
-
 void createErrorCallback(p_ply ply, const char* message)
 {
     std::stringstream ss;
@@ -52,40 +52,25 @@ void createErrorCallback(p_ply ply, const char* message)
 }
 
 
-e_ply_type getPlyType(Dimension::Type::Enum type)
+e_ply_type getPlyType(Dimension::Type type)
 {
-    using namespace Dimension::Type;
-    switch (type)
+    static std::map<Dimension::Type, e_ply_type> types =
     {
-    case Unsigned8:
-        return PLY_UINT8;
-    case Signed8:
-        return PLY_INT8;
-    case Unsigned16:
-        return PLY_UINT16;
-    case Signed16:
-        return PLY_INT16;
-    case Unsigned32:
-        return PLY_UIN32;
-    case Signed32:
-        return PLY_INT32;
-    case Unsigned64:
-        return PLY_FLOAT64;
-    case Signed64:
-        return PLY_FLOAT64;
-    case Float:
-        return PLY_FLOAT32;
-    case Double:
-        return PLY_FLOAT64;
-    default:
-        // I went back and forth about throwing here, but since it's not
-        // wrong to fall back onto a double (just bad, b/c it can take up
-        // extra space), I chose to default rather than throw.
-        return PLY_FLOAT64;
-    }
-}
+        { Dimension::Type::Unsigned8, PLY_UINT8 },
+        { Dimension::Type::Signed8, PLY_INT8 },
+        { Dimension::Type::Unsigned16, PLY_UINT16 },
+        { Dimension::Type::Signed16, PLY_INT16 },
+        { Dimension::Type::Unsigned32, PLY_UINT32 },
+        { Dimension::Type::Signed32, PLY_INT32 },
+        { Dimension::Type::Float, PLY_FLOAT32 },
+        { Dimension::Type::Double, PLY_FLOAT64 }
+    };
+
+    return types[type];
 }
 
+} // unnamed namespace
+
 
 static PluginInfo const s_info = PluginInfo(
         "writers.ply",
@@ -105,9 +90,18 @@ PlyWriter::PlyWriter()
 {}
 
 
-void PlyWriter::processOptions(const Options& options)
+void PlyWriter::addArgs(ProgramArgs& args)
 {
-    std::string storageMode = options.getValueOrDefault<std::string>("storage_mode", "default");
+    args.add("filename", "Output filename", m_filename).setPositional();
+    args.add("storage_mode", "PLY Storage mode", m_storageModeSpec, "default");
+}
+
+
+void PlyWriter::initialize()
+{
+    std::string storageMode(m_storageModeSpec);
+    storageMode = Utils::tolower(storageMode);
+
     if (storageMode == "ascii")
     {
         m_storageMode = PLY_ASCII;
@@ -127,8 +121,9 @@ void PlyWriter::processOptions(const Options& options)
     else
     {
         std::stringstream ss;
-        ss << "Unknown storage mode '" << storageMode <<
-            "'. Known storage modes are: 'ascii', 'little endian', 'big endian', and 'default'";
+        ss << "Unknown storage mode '" << m_storageModeSpec <<
+            "'. Known storage modes are: 'ascii', 'little endian', "
+            "'big endian', and 'default'";
         throw pdal_error(ss.str());
     }
 }
@@ -136,7 +131,8 @@ void PlyWriter::processOptions(const Options& options)
 
 void PlyWriter::ready(PointTableRef table)
 {
-    m_ply = ply_create(m_filename.c_str(), m_storageMode, createErrorCallback, 0, nullptr);
+    m_ply = ply_create(m_filename.c_str(), m_storageMode, createErrorCallback,
+        0, nullptr);
     if (!m_ply)
     {
         std::stringstream ss;
diff --git a/io/ply/PlyWriter.hpp b/io/ply/PlyWriter.hpp
index 6fbd384..30b52f8 100644
--- a/io/ply/PlyWriter.hpp
+++ b/io/ply/PlyWriter.hpp
@@ -56,13 +56,15 @@ public:
     PlyWriter();
 
 private:
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void initialize();
     virtual void ready(PointTableRef table);
     virtual void write(const PointViewPtr data);
     virtual void done(PointTableRef table);
 
     p_ply m_ply;
     PointViewPtr m_pointCollector;
+    std::string m_storageModeSpec;
     e_ply_storage_mode m_storageMode;
 
 };
diff --git a/io/pts/CMakeLists.txt b/io/pts/CMakeLists.txt
new file mode 100644
index 0000000..feaec35
--- /dev/null
+++ b/io/pts/CMakeLists.txt
@@ -0,0 +1,14 @@
+#
+# Text driver CMake configuration
+#
+
+set(srcs
+    PtsReader.cpp
+)
+
+set(incs
+    PtsReader.hpp
+)
+
+PDAL_ADD_DRIVER(reader pts "${srcs}" "${incs}" objects)
+set(PDAL_TARGET_OBJECTS ${PDAL_TARGET_OBJECTS} ${objects} PARENT_SCOPE)
diff --git a/io/pts/PtsReader.cpp b/io/pts/PtsReader.cpp
new file mode 100644
index 0000000..bf2e300
--- /dev/null
+++ b/io/pts/PtsReader.cpp
@@ -0,0 +1,169 @@
+/******************************************************************************
+* Copyright (c) 2016, Hobu Inc., info at hobu.co
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include <pdal/PDALUtils.hpp>
+#include <pdal/util/Algorithm.hpp>
+
+#include "PtsReader.hpp"
+
+#include <pdal/pdal_macros.hpp>
+
+namespace pdal
+{
+
+static PluginInfo const s_info = PluginInfo(
+    "readers.pts",
+    "Pts Reader",
+    "http://pdal.io/stages/readers.pts.html" );
+
+CREATE_STATIC_PLUGIN(1, 0, PtsReader, Reader, s_info)
+
+std::string PtsReader::getName() const { return s_info.name; }
+
+void PtsReader::initialize(PointTableRef table)
+{
+    m_istream = Utils::openFile(m_filename);
+    if (!m_istream)
+    {
+        std::ostringstream oss;
+        oss << getName() << ": Unable to open pts file '" <<
+            m_filename << "'.";
+        throw pdal_error(oss.str());
+    }
+
+    std::string buf;
+    std::getline(*m_istream, buf);
+
+    // Very first line is point count
+    Utils::fromString(buf, m_PointCount);
+    Utils::closeFile(m_istream);
+}
+
+
+void PtsReader::addDimensions(PointLayoutPtr layout)
+{
+    // Dimensions are fixed in PTS
+
+    m_dims.push_back(Dimension::Id::X);
+    m_dims.push_back(Dimension::Id::Y);
+    m_dims.push_back(Dimension::Id::Z);
+    m_dims.push_back(Dimension::Id::Intensity);
+    m_dims.push_back(Dimension::Id::Red);
+    m_dims.push_back(Dimension::Id::Green);
+    m_dims.push_back(Dimension::Id::Blue);
+
+    for (auto d: m_dims)
+    {
+        layout->registerDim(d);
+    }
+
+}
+
+
+void PtsReader::ready(PointTableRef table)
+{
+    m_istream = Utils::openFile(m_filename);
+    if (!m_istream)
+    {
+        std::ostringstream oss;
+        oss << getName() << ": Unable to open text file '" <<
+            m_filename << "'.";
+        throw pdal_error(oss.str());
+    }
+
+    // Skip header line.
+    std::string buf;
+    std::getline(*m_istream, buf);
+}
+
+
+point_count_t PtsReader::read(PointViewPtr view, point_count_t numPts)
+{
+    PointId idx = view->size();
+
+    point_count_t cnt = 0;
+    size_t line = 1;
+
+    while (m_istream->good() && cnt < numPts)
+    {
+        std::string buf;
+        StringList fields;
+
+        std::getline(*m_istream, buf);
+        line++;
+        if (buf.empty())
+            continue;
+
+        fields = Utils::split2(buf, m_separator);
+        if (fields.size() != m_dims.size())
+        {
+            log()->get(LogLevel::Error) << "Line " << line <<
+               " in '" << m_filename << "' contains " << fields.size() <<
+               " fields when " << m_dims.size() << " were expected.  "
+               "Ignoring." << std::endl;
+            continue;
+        }
+
+        double d;
+        for (size_t i = 0; i < fields.size(); ++i)
+        {
+            if (!Utils::fromString(fields[i], d))
+            {
+                log()->get(LogLevel::Error) << "Can't convert "
+                    "field '" << fields[i] << "' to numeric value on line " <<
+                    line << " in '" << m_filename << "'.  Setting to 0." <<
+                    std::endl;
+                d = 0;
+            }
+            if (i == 3) // Intensity field in PTS is -2048 to 2047, we map to 0 4095
+            {
+                d += 2048;
+            }
+            view->setField(m_dims[i], idx, d);
+        }
+        cnt++;
+        idx++;
+    }
+    return cnt;
+}
+
+
+void PtsReader::done(PointTableRef table)
+{
+    Utils::closeFile(m_istream);
+}
+
+
+} // namespace pdal
+
diff --git a/io/pts/PtsReader.hpp b/io/pts/PtsReader.hpp
new file mode 100644
index 0000000..24ddd3c
--- /dev/null
+++ b/io/pts/PtsReader.hpp
@@ -0,0 +1,107 @@
+/******************************************************************************
+* Copyright (c) 2016, Hobu Inc. (info at hobu.co)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#pragma once
+
+#include <istream>
+
+#include <pdal/Reader.hpp>
+#include <pdal/plugin.hpp>
+
+extern "C" int32_t PtsReader_ExitFunc();
+extern "C" PF_ExitFunc PtsReader_InitPlugin();
+
+namespace pdal
+{
+
+class PDAL_DLL PtsReader : public Reader
+{
+public:
+    static void * create();
+    static int32_t destroy(void *);
+    std::string getName() const;
+
+    PtsReader() : m_separator(' '), m_PointCount(0), m_istream(NULL)
+    {}
+
+private:
+    /**
+      Initialize the reader by opening the file and reading the header line
+      for the point count.
+      Closes the file on completion.
+
+      \param table  Point table being initialized.
+    */
+    virtual void initialize(PointTableRef table);
+
+    /**
+      Add dimensions fixed dimensions for PTS format
+      http://w3.leica-geosystems.com/kb/?guid=5532D590-114C-43CD-A55F-FE79E5937CB2
+
+      \param layout  Layout to which the dimenions are added.
+    */
+    virtual void addDimensions(PointLayoutPtr layout);
+
+    /**
+      Reopen the file in preparation for reading.
+
+      \param table  Point table to make ready.
+    */
+    virtual void ready(PointTableRef table);
+
+    /**
+      Read up to numPts points into the \ref view.
+
+      \param view  PointView in which to insert point data.
+      \param numPts  Maximum number of points to read.
+      \return  Number of points read.
+    */
+    virtual point_count_t read(PointViewPtr view, point_count_t numPts);
+
+    /**
+      Close input file.
+
+      \param table  PointTable we're done with.
+    */
+    virtual void done(PointTableRef table);
+
+private:
+    char m_separator;
+    point_count_t m_PointCount;
+    std::istream *m_istream;
+    StringList m_dimNames;
+    Dimension::IdList m_dims;
+};
+
+} // namespace pdal
diff --git a/io/qfit/QfitReader.cpp b/io/qfit/QfitReader.cpp
index 22277de..c71ea46 100644
--- a/io/qfit/QfitReader.cpp
+++ b/io/qfit/QfitReader.cpp
@@ -167,9 +167,10 @@ Word #       Content
 #include "QfitReader.hpp"
 
 #include <pdal/PointView.hpp>
+#include <pdal/pdal_macros.hpp>
 #include <pdal/util/Extractor.hpp>
 #include <pdal/util/portable_endian.hpp>
-#include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <algorithm>
 #include <map>
@@ -269,30 +270,14 @@ void QfitReader::initialize()
 }
 
 
-Options QfitReader::getDefaultOptions()
+void QfitReader::addArgs(ProgramArgs& args)
 {
-    Options options;
-    Option filename("filename", "", "file to read from");
-    Option flip_coordinates("flip_coordinates", true,
-        "Flip coordinates from 0-360 to -180-180");
-    Option convert_z_units("scale_z", 0.001f,
-        "Z scale. Use 0.001 to go from mm to m");
-    Option little_endian("little_endian", false,
-        "Are data in little endian format?");
-    options.add(filename);
-    options.add(flip_coordinates);
-    options.add(convert_z_units);
-    options.add(little_endian);
-    return options;
+    args.add("flip_coordinates", "Flip coordinates from 0-360 to -180-180",
+        m_flip_x);
+    args.add("scale_z", "Z scale. Use 0.001 to go from mm to m",
+        m_scale_z, 0.001);
 }
-
-
-void QfitReader::processOptions(const Options& ops)
-{
-    m_flip_x = ops.getValueOrDefault("flip_coordinates", true);
-    m_scale_z = ops.getValueOrDefault("scale_z", 0.001);
-}
-
+    
 
 void QfitReader::addDimensions(PointLayoutPtr layout)
 {
@@ -305,7 +290,7 @@ void QfitReader::addDimensions(PointLayoutPtr layout)
     layout->registerDim(Id::Z);
     layout->registerDim(Id::StartPulse);
     layout->registerDim(Id::ReflectedPulse);
-    layout->registerDim(Id::ScanAngleRank);
+    layout->registerDim(Id::Azimuth);
     layout->registerDim(Id::Pitch);
     layout->registerDim(Id::Roll);
     m_size += 36;
@@ -340,7 +325,7 @@ void QfitReader::ready(PointTableRef)
     }
     m_index = 0;
     m_istream.reset(new IStream(m_filename));
-    m_istream->seek(getPointDataOffset());
+    m_istream->seek(m_offset);
 }
 
 
@@ -381,7 +366,7 @@ point_count_t QfitReader::read(PointViewPtr data, point_count_t count)
             data->setField(Dimension::Id::StartPulse, nextId, start_pulse);
             data->setField(Dimension::Id::ReflectedPulse, nextId,
                 reflected_pulse);
-            data->setField(Dimension::Id::ScanAngleRank, nextId,
+            data->setField(Dimension::Id::Azimuth, nextId,
                 scan_angle / 1000.0);
             data->setField(Dimension::Id::Pitch, nextId, pitch / 1000.0);
             data->setField(Dimension::Id::Roll, nextId, roll / 1000.0);
@@ -438,7 +423,7 @@ Dimension::IdList QfitReader::getDefaultDimensions()
     ids.push_back(Dimension::Id::Z);
     ids.push_back(Dimension::Id::StartPulse);
     ids.push_back(Dimension::Id::ReflectedPulse);
-    ids.push_back(Dimension::Id::ScanAngleRank);
+    ids.push_back(Dimension::Id::Azimuth);
     ids.push_back(Dimension::Id::Pitch);
     ids.push_back(Dimension::Id::Roll);
     ids.push_back(Dimension::Id::Pdop);
diff --git a/io/qfit/QfitReader.hpp b/io/qfit/QfitReader.hpp
index 8b901f7..1ada5dd 100644
--- a/io/qfit/QfitReader.hpp
+++ b/io/qfit/QfitReader.hpp
@@ -75,24 +75,8 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
     static Dimension::IdList getDefaultDimensions();
 
-    std::string getFileName() const;
-
-    std::size_t getPointDataOffset() const
-        { return m_offset; }
-    uint32_t getPointDataSize() const
-        { return m_size; }
-    point_count_t getNumPoints() const
-        { return m_numPoints; }
-    bool eof()
-        { return m_index >= m_numPoints; }
-
-    // this is called by the stage's iterator
-    point_count_t processBuffer(PointViewPtr view, std::istream& stream,
-        point_count_t count) const;
-
 private:
     QFIT_Format_Type m_format;
     std::ios::off_type m_point_bytes;
@@ -105,15 +89,15 @@ private:
     std::unique_ptr<IStream> m_istream;
     point_count_t m_index;
 
-    virtual void processOptions(const Options& ops);
+    virtual void addArgs(ProgramArgs& args);
     virtual void initialize();
     virtual void addDimensions(PointLayoutPtr layout);
     virtual void ready(PointTableRef table);
     virtual point_count_t read(PointViewPtr buf, point_count_t count);
     virtual void done(PointTableRef table);
 
-    QfitReader& operator=(const QfitReader&); // not implemented
-    QfitReader(const QfitReader&); // not implemented
+    QfitReader& operator=(const QfitReader&) = delete;
+    QfitReader(const QfitReader&) = delete;
 };
 
 } // namespace pdal
diff --git a/io/sbet/CMakeLists.txt b/io/sbet/CMakeLists.txt
index 9c0c67f..e671b37 100644
--- a/io/sbet/CMakeLists.txt
+++ b/io/sbet/CMakeLists.txt
@@ -5,6 +5,7 @@
 set(objs "")
 
 add_library(sbetcommon OBJECT SbetCommon.cpp SbetCommon.hpp)
+add_dependencies(sbetcommon generate_dimension_hpp)
 set(objs ${objs} $<TARGET_OBJECTS:sbetcommon>)
 
 #
diff --git a/io/sbet/SbetCommon.cpp b/io/sbet/SbetCommon.cpp
index f06b924..f5db727 100644
--- a/io/sbet/SbetCommon.cpp
+++ b/io/sbet/SbetCommon.cpp
@@ -57,7 +57,7 @@ Dimension::IdList fileDimensions()
     ids.push_back(Id::ZVelocity);
     ids.push_back(Id::Roll);
     ids.push_back(Id::Pitch);
-    ids.push_back(Id::PlatformHeading);
+    ids.push_back(Id::Azimuth);
     ids.push_back(Id::WanderAngle);
     ids.push_back(Id::XBodyAccel);
     ids.push_back(Id::YBodyAccel);
diff --git a/io/sbet/SbetReader.cpp b/io/sbet/SbetReader.cpp
index fe6dacd..21cd0fe 100644
--- a/io/sbet/SbetReader.cpp
+++ b/io/sbet/SbetReader.cpp
@@ -50,13 +50,6 @@ CREATE_STATIC_PLUGIN(1, 0, SbetReader, Reader, s_info)
 
 std::string SbetReader::getName() const { return s_info.name; }
 
-Options SbetReader::getDefaultOptions()
-{
-    Options options;
-    return options;
-}
-
-
 void SbetReader::addDimensions(PointLayoutPtr layout)
 {
     layout->registerDims(getDefaultDimensions());
@@ -83,7 +76,7 @@ bool SbetReader::processOne(PointRef& point)
     {
         double d;
         *m_stream >> d;
-        Dimension::Id::Enum dim = *di;
+        Dimension::Id dim = *di;
         point.setField(dim, d);
     }
     return (m_stream->good());
diff --git a/io/sbet/SbetReader.hpp b/io/sbet/SbetReader.hpp
index ee721e2..85ed289 100644
--- a/io/sbet/SbetReader.hpp
+++ b/io/sbet/SbetReader.hpp
@@ -57,7 +57,6 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
     static Dimension::IdList getDefaultDimensions()
         { return fileDimensions(); }
 
diff --git a/io/sbet/SbetWriter.cpp b/io/sbet/SbetWriter.cpp
index e5d2663..63c700e 100644
--- a/io/sbet/SbetWriter.cpp
+++ b/io/sbet/SbetWriter.cpp
@@ -36,6 +36,7 @@
 
 #include <pdal/PointView.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -49,9 +50,9 @@ CREATE_STATIC_PLUGIN(1, 0, SbetWriter, Writer, s_info)
 
 std::string SbetWriter::getName() const { return s_info.name; }
 
-void SbetWriter::processOptions(const Options& options)
+void SbetWriter::addArgs(ProgramArgs& args)
 {
-    m_filename = options.getOption("filename").getValue<std::string>();
+    args.add("filename", "Output filename", m_filename).setPositional();
 }
 
 
@@ -69,7 +70,7 @@ void SbetWriter::write(const PointViewPtr view)
         for (auto di = dims.begin(); di != dims.end(); ++di)
         {
             // If a dimension doesn't exist, write 0.
-            Dimension::Id::Enum dim = *di;
+            Dimension::Id dim = *di;
             *m_stream << (view->hasDim(dim) ?
                 view->getFieldAs<double>(dim, idx) : 0.0);
         }
diff --git a/io/sbet/SbetWriter.hpp b/io/sbet/SbetWriter.hpp
index c97b727..83fefd9 100644
--- a/io/sbet/SbetWriter.hpp
+++ b/io/sbet/SbetWriter.hpp
@@ -60,7 +60,7 @@ private:
     std::unique_ptr<OLeStream> m_stream;
     std::string m_filename;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual void ready(PointTableRef table);
     virtual void write(const PointViewPtr view);
 };
diff --git a/io/text/TextReader.cpp b/io/text/TextReader.cpp
index 4257f3c..54b3018 100644
--- a/io/text/TextReader.cpp
+++ b/io/text/TextReader.cpp
@@ -32,8 +32,8 @@
 * OF SUCH DAMAGE.
 ****************************************************************************/
 
+#include <pdal/PDALUtils.hpp>
 #include <pdal/util/Algorithm.hpp>
-#include <pdal/util/FileUtils.hpp>
 
 #include "TextReader.hpp"
 
@@ -53,7 +53,7 @@ std::string TextReader::getName() const { return s_info.name; }
 
 void TextReader::initialize(PointTableRef table)
 {
-    m_istream = FileUtils::openFile(m_filename);
+    m_istream = Utils::openFile(m_filename);
     if (!m_istream)
     {
         std::ostringstream oss;
@@ -83,7 +83,12 @@ void TextReader::initialize(PointTableRef table)
     }
     else
         m_dimNames = Utils::split2(buf, m_separator);
-    FileUtils::closeFile(m_istream);
+    for (auto f: m_dimNames)
+    {
+        log()->get(LogLevel::Error) << "field '" << f << "'" << std::endl;
+
+    }
+    Utils::closeFile(m_istream);
 }
 
 
@@ -91,7 +96,7 @@ void TextReader::addDimensions(PointLayoutPtr layout)
 {
     for (auto name : m_dimNames)
     {
-        Dimension::Id::Enum id = layout->registerOrAssignDim(name,
+        Dimension::Id id = layout->registerOrAssignDim(name,
             Dimension::Type::Double);
         m_dims.push_back(id);
     }
@@ -100,7 +105,7 @@ void TextReader::addDimensions(PointLayoutPtr layout)
 
 void TextReader::ready(PointTableRef table)
 {
-    m_istream = FileUtils::openFile(m_filename);
+    m_istream = Utils::openFile(m_filename);
     if (!m_istream)
     {
         std::ostringstream oss;
@@ -168,7 +173,7 @@ point_count_t TextReader::read(PointViewPtr view, point_count_t numPts)
 
 void TextReader::done(PointTableRef table)
 {
-    FileUtils::closeFile(m_istream);
+    Utils::closeFile(m_istream);
 }
 
 
diff --git a/io/text/TextWriter.cpp b/io/text/TextWriter.cpp
index dfb8bd6..99ae771 100644
--- a/io/text/TextWriter.cpp
+++ b/io/text/TextWriter.cpp
@@ -35,13 +35,13 @@
 #include "TextWriter.hpp"
 
 #include <pdal/pdal_export.hpp>
+#include <pdal/PDALUtils.hpp>
 #include <pdal/PointView.hpp>
-#include <pdal/util/Algorithm.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/Algorithm.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
-#include <algorithm>
 #include <iostream>
-#include <map>
 
 namespace pdal
 {
@@ -64,30 +64,32 @@ struct FileStreamDeleter
         if (ptr)
         {
             ptr->flush();
-            FileUtils::closeFile(ptr);
+            Utils::closeFile(ptr);
         }
     }
 };
 
 
-Options TextWriter::getDefaultOptions()
+void TextWriter::addArgs(ProgramArgs& args)
 {
-    Options options;
-
-    options.add("delimiter", ",", "Delimiter to use for writing text");
-    options.add("newline", "\n", "Newline character to use for additional "
-        "lines");
-    options.add("quote_header", true, "Write dimension names in quotes");
-    options.add("filename", "", "Filename to write CSV file to");
-
-    return options;
+    args.add("filename", "Output filename", m_filename);
+    args.add("format", "Output format", m_outputType, "csv");
+    args.add("jscallback", "", m_callback);
+    args.add("keep_unspecified", "Write all dimensions", m_writeAllDims, true);
+    args.add("order", "Dimension order", m_dimOrder);
+    args.add("write_header", "Whether a header should be written",
+        m_writeHeader, true);
+    args.add("newline", "String to use as newline", m_newline, "\n");
+    args.add("delimiter", "Dimension delimiter", m_delimiter, ",");
+    args.add("quote_header", "Whether a header should be quoted",
+        m_quoteHeader, true);
+    args.add("precision", "Output precision", m_precision, 3);
 }
 
 
-void TextWriter::processOptions(const Options& ops)
+void TextWriter::initialize(PointTableRef table)
 {
-    m_filename = ops.getValueOrThrow<std::string>("filename");
-    m_stream = FileStreamPtr(FileUtils::createFile(m_filename, true),
+    m_stream = FileStreamPtr(Utils::createFile(m_filename, true),
         FileStreamDeleter());
     if (!m_stream)
     {
@@ -96,19 +98,7 @@ void TextWriter::processOptions(const Options& ops)
             "' for output.";
         throw pdal_error(out.str());
     }
-    m_outputType = ops.getValueOrDefault<std::string>("format", "csv");
     m_outputType = Utils::toupper(m_outputType);
-    m_callback = ops.getValueOrDefault<std::string>("jscallback", "");
-    m_writeAllDims = ops.getValueOrDefault<bool>("keep_unspecified", true);
-    m_dimOrder = ops.getValueOrDefault<std::string>("order", "");
-    m_writeHeader = ops.getValueOrDefault<bool>("write_header", true);
-    m_newline = ops.getValueOrDefault<std::string>("newline", "\n");
-    m_delimiter = ops.getValueOrDefault<std::string>("delimiter", ",");
-    if (m_delimiter.empty())
-        m_delimiter = " ";
-    m_quoteHeader = ops.getValueOrDefault<bool>("quote_header", true);
-    m_packRgb = ops.getValueOrDefault<bool>("pack_rgb", true);
-    m_precision = ops.getValueOrDefault<int>("precision", 3);
 }
 
 
@@ -122,7 +112,7 @@ void TextWriter::ready(PointTableRef table)
     for (std::string dim : dimNames)
     {
         Utils::trim(dim);
-        Dimension::Id::Enum d = table.layout()->findDim(dim);
+        Dimension::Id d = table.layout()->findDim(dim);
         if (d == Dimension::Id::Unknown)
         {
             std::ostringstream oss;
diff --git a/io/text/TextWriter.hpp b/io/text/TextWriter.hpp
index 5bedd44..daac82e 100644
--- a/io/text/TextWriter.hpp
+++ b/io/text/TextWriter.hpp
@@ -62,10 +62,9 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
-    virtual void processOptions(const Options&);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void initialize(PointTableRef table);
     virtual void ready(PointTableRef table);
     virtual void write(const PointViewPtr view);
     virtual void done(PointTableRef table);
diff --git a/io/tindex/TIndexReader.cpp b/io/tindex/TIndexReader.cpp
index 850b409..640a8dd 100644
--- a/io/tindex/TIndexReader.cpp
+++ b/io/tindex/TIndexReader.cpp
@@ -35,6 +35,7 @@
 #include "TIndexReader.hpp"
 #include <pdal/GDALUtils.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -48,29 +49,6 @@ CREATE_STATIC_PLUGIN(1, 0, TIndexReader, Reader, s_info)
 
 std::string TIndexReader::getName() const { return s_info.name; }
 
-Options TIndexReader::getDefaultOptions()
-{
-    Options options;
-    Option sql("sql", "", "OGR-compatible SQL statement for querying tile index layer");
-    options.add(sql);
-    Option polygon("polygon", "", "WKT Polygon or MultiPolygon describing spatial extent to query");
-    options.add(polygon);
-    Option bounds("bounds", "", "PDAL-style bounds to limit query window (exclusive of --polygon)");
-    options.add(bounds);
-    Option lyr_name("lyr_name", "", "OGR layer name from which to read tile index layer");
-    options.add(lyr_name);
-    Option tindex_name("tindex_name", "", "OGR column name from which to read tile index location");
-    options.add(tindex_name);
-    Option a_srs("a_srs", "", "Override SRS of geometry in the tile index");
-    options.add(a_srs);
-    Option t_srs("t_srs", "", "Transform SRS of tile index geometry");
-    options.add(t_srs);
-    Option srs_column("srs_column", "", "Column to use for SRS");
-    options.add(srs_column);
-    return options;
-}
-
-
 TIndexReader::FieldIndexes TIndexReader::getFields()
 {
     FieldIndexes indexes;
@@ -131,33 +109,34 @@ std::vector<TIndexReader::FileInfo> TIndexReader::getFiles()
 }
 
 
-void TIndexReader::processOptions(const Options& options)
+void TIndexReader::addArgs(ProgramArgs& args)
 {
-    m_layerName = options.getValueOrDefault<std::string>("lyr_name", "pdal");
-    m_srsColumnName = options.getValueOrDefault<std::string>("srs_column",
-        "srs");
-    m_tileIndexColumnName =
-        options.getValueOrDefault<std::string>("tindex_name", "location");
-    m_sql = options.getValueOrDefault<std::string>("sql", "");
-
-    BOX2D boundary = options.getValueOrDefault<BOX2D>("boundary", BOX2D());
-    m_wkt = boundary.toWKT();
-    if (m_wkt.empty())
-        m_wkt = options.getValueOrDefault<std::string>("wkt");
-
-    m_tgtSrsString = options.getValueOrDefault<std::string>("t_srs",
+    args.add("lyr_name", "OGR layer name from which to read tile index layer",
+        m_layerName, "pdal");
+    args.add("srs_column", "Column to use for SRS", m_srsColumnName, "srs");
+    args.add("tindex_name", "OGR column name from which to read tile "
+        "index location", m_tileIndexColumnName, "location");
+    args.add("sql", "OGR-compatible SQL statement for querying tile "
+        "index layer", m_sql);
+    args.add("bounds", "PDAL-style bounds to limit query window (exclusive "
+        "of --polygon)", m_bounds);
+    args.add("wkt", "Well-known text description of bounds to limit query",
+        m_wkt);
+    args.add("t_srs", "Transform SRS of tile index geometry", m_tgtSrsString,
         "EPSG:4326");
-    m_filterSRS = options.getValueOrDefault<std::string>("filter_srs");
-    m_attributeFilter = options.getValueOrDefault<std::string>("where");
-    m_dialect = options.getValueOrDefault<std::string>("dialect", "OGRSQL");
-
-    m_out_ref.reset(new gdal::SpatialRef());
+    args.add("filter_srs", "Transforms any wkt or boundary option to "
+        "this coordinate system before filtering or reading data.",
+        m_filterSRS);
+    args.add("where", "OGR SQL filter clause to use on the layer. It only "
+        "works in combination with tile index layers that are defined "
+        "with lyr_name", m_attributeFilter);
+    args.add("dialect", "OGR SQL dialect to use when querying tile "
+        "index layer", m_dialect, "OGRSQL");
 }
 
 
 void TIndexReader::addDimensions(PointLayoutPtr layout)
 {
-    using namespace pdal::Dimension::Type;
     layout->registerDim(pdal::Dimension::Id::X);
     layout->registerDim(pdal::Dimension::Id::Y);
     layout->registerDim(pdal::Dimension::Id::Z);
@@ -172,6 +151,10 @@ pdal::Dimension::IdList TIndexReader::getDefaultDimensions()
 
 void TIndexReader::initialize()
 {
+    if (!m_bounds.empty())
+        m_wkt = m_bounds.toWKT();
+    m_out_ref.reset(new gdal::SpatialRef());
+
     log()->get(LogLevel::Debug) << "Opening file " << m_filename <<
         std::endl;
 
diff --git a/io/tindex/TIndexReader.hpp b/io/tindex/TIndexReader.hpp
index 58d333b..7443072 100644
--- a/io/tindex/TIndexReader.hpp
+++ b/io/tindex/TIndexReader.hpp
@@ -73,13 +73,11 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
     static Dimension::IdList getDefaultDimensions();
 
 private:
-
     virtual void addDimensions(PointLayoutPtr layout);
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual void initialize();
     virtual void ready(PointTableRef table);
     virtual PointViewSet run(PointViewPtr view);
@@ -93,7 +91,7 @@ private:
     std::string m_filterSRS;
     std::string m_attributeFilter;
     std::string m_dialect;
-    BOX2D m_boundary;
+    BOX2D m_bounds;
     std::string m_sql;
 
     std::unique_ptr<gdal::SpatialRef> m_out_ref;
diff --git a/kernels/delta/DeltaKernel.cpp b/kernels/delta/DeltaKernel.cpp
index 063f121..5883e81 100644
--- a/kernels/delta/DeltaKernel.cpp
+++ b/kernels/delta/DeltaKernel.cpp
@@ -72,14 +72,7 @@ void DeltaKernel::addSwitches(ProgramArgs& args)
 PointViewPtr DeltaKernel::loadSet(const std::string& filename,
     PointTable& table)
 {
-    Options ops;
-
-    ops.add<std::string>("filename", filename);
-    ops.add<bool>("debug", isDebug());
-    ops.add<uint32_t>("verbose", getVerboseLevel());
-
-    Stage& reader = makeReader(filename);
-    reader.setOptions(ops);
+    Stage& reader = makeReader(filename, m_driverOverride);
     reader.prepare(table);
     PointViewSet viewSet = reader.execute(table);
     assert(viewSet.size() == 1);
@@ -100,7 +93,7 @@ int DeltaKernel::execute()
     PointLayoutPtr candLayout = candTable.layout();
 
     Dimension::IdList ids = srcLayout->dims();
-    for (Dimension::Id::Enum dim : ids)
+    for (Dimension::Id dim : ids)
     {
         std::string name = srcLayout->dimName(dim);
         if (!m_allDims)
@@ -112,7 +105,7 @@ int DeltaKernel::execute()
         dims[name] = d;
     }
     ids = candLayout->dims();
-    for (Dimension::Id::Enum dim : ids)
+    for (Dimension::Id dim : ids)
     {
         std::string name = candLayout->dimName(dim);
         auto di = dims.find(name);
diff --git a/kernels/delta/DeltaKernel.hpp b/kernels/delta/DeltaKernel.hpp
index 076fb83..4fbf599 100644
--- a/kernels/delta/DeltaKernel.hpp
+++ b/kernels/delta/DeltaKernel.hpp
@@ -50,8 +50,8 @@ namespace pdal
 struct DimIndex
 {
     std::string m_name;
-    Dimension::Id::Enum m_srcId;
-    Dimension::Id::Enum m_candId;
+    Dimension::Id m_srcId;
+    Dimension::Id m_candId;
     double m_min;
     double m_max;
     double m_avg;
diff --git a/kernels/diff/DiffKernel.cpp b/kernels/diff/DiffKernel.cpp
index d54b98f..0c1e9e3 100644
--- a/kernels/diff/DiffKernel.cpp
+++ b/kernels/diff/DiffKernel.cpp
@@ -80,12 +80,12 @@ void DiffKernel::checkPoints(const PointView& source_data,
     {
         for (size_t d = 0; d < sourceDims.size(); ++d)
         {
-            Dimension::Id::Enum sd = sourceDims[d];
-            Dimension::Id::Enum cd = candidateDims[d];
+            Dimension::Id sd = sourceDims[d];
+            Dimension::Id cd = candidateDims[d];
 
             source_data.getRawField(sd, idx, (void *)sbuf);
             candidate_data.getRawField(cd, idx, (void *)cbuf);
-            Dimension::Type::Enum t = Dimension::defaultType(cd);
+            Dimension::Type t = Dimension::defaultType(cd);
             size_t size = Dimension::size(t);
             if (memcmp(sbuf, cbuf, size))
             {
@@ -107,26 +107,15 @@ int DiffKernel::execute()
 {
     PointTable sourceTable;
 
-    Options sourceOptions;
-    sourceOptions.add<std::string>("filename", m_sourceFile);
-    sourceOptions.add<bool>("debug", isDebug());
-    sourceOptions.add<uint32_t>("verbose", getVerboseLevel());
-
-    Stage& source = makeReader(m_sourceFile);
-    source.setOptions(sourceOptions);
+    Stage& source = makeReader(m_sourceFile, m_driverOverride);
     source.prepare(sourceTable);
     PointViewSet sourceSet = source.execute(sourceTable);
 
     MetadataNode errors;
 
     PointTable candidateTable;
-    Options candidateOptions;
-    candidateOptions.add<std::string>("filename", m_candidateFile);
-    candidateOptions.add<bool>("debug", isDebug());
-    candidateOptions.add<uint32_t>("verbose", getVerboseLevel());
 
-    Stage& candidate = makeReader(m_candidateFile);
-    candidate.setOptions(candidateOptions);
+    Stage& candidate = makeReader(m_candidateFile, m_driverOverride);
     candidate.prepare(candidateTable);
     PointViewSet candidateSet = candidate.execute(candidateTable);
 
@@ -163,29 +152,8 @@ int DiffKernel::execute()
 
         oss << "Source and candidate files do not have the same "
             "number of dimensions";
-//         errors.put<std::string>("schema.error", oss.str());
-        //Need to "ptree" the PointTable dimension list in some way
-        // errors.put_child("schema.source", sourceTable.schema()->toPTree());
-        // errors.put_child("schema.candidate",
-        //     candidateTable.schema()->toPTree());
     }
 
-//     if (errors.size())
-//     {
-//         write_json(std::cout, errors);
-//         return 1;
-//     }
-//     else
-    {
-        // If we made it this far with no errors, now we'll
-        // check the points.
-//         checkPoints(*sourceView, *candidateView, errors);
-//         if (errors.size())
-//         {
-//             write_json(std::cout, errors);
-//             return 1;
-//         }
-    }
     return 0;
 }
 
diff --git a/kernels/info/InfoKernel.cpp b/kernels/info/InfoKernel.cpp
index d3c709b..5ed58d0 100644
--- a/kernels/info/InfoKernel.cpp
+++ b/kernels/info/InfoKernel.cpp
@@ -146,6 +146,7 @@ void InfoKernel::addSwitches(ProgramArgs& args)
     args.add("metadata", "dump file metadata info", m_showMetadata);
     args.add("pointcloudschema", "dump PointCloudSchema XML output",
         m_PointCloudSchemaOutput).setHidden();
+    args.add("stdin,s", "Read a pipeline file from standard input", m_usestdin);
 }
 
 // Support for parsing point numbers.  Points can be specified singly or as
@@ -212,7 +213,7 @@ MetadataNode InfoKernel::dumpPoints(PointViewPtr inView) const
             outView->appendPoint(*inView.get(), id);
     }
 
-    MetadataNode tree = Utils::toMetadata(outView);
+    MetadataNode tree = outView->toMetadata();
     std::string prefix("point ");
     for (size_t i = 0; i < outView->size(); ++i)
     {
@@ -229,7 +230,7 @@ MetadataNode InfoKernel::dumpSummary(const QuickInfo& qi)
     MetadataNode summary;
     summary.add("num_points", qi.m_pointCount);
     summary.add("spatial_reference", qi.m_srs.getWKT());
-    MetadataNode srs = pdal::Utils::toMetadata(qi.m_srs);
+    MetadataNode srs = qi.m_srs.toMetadata();
     summary.add(srs);
     MetadataNode bounds = summary.add("bounds");
     MetadataNode x = bounds.add("X");
@@ -256,70 +257,47 @@ MetadataNode InfoKernel::dumpSummary(const QuickInfo& qi)
 }
 
 
-PipelineManagerPtr InfoKernel::makePipeline(const std::string& filename,
-    bool noPoints)
+void InfoKernel::makePipeline(const std::string& filename, bool noPoints)
 {
-    if (!pdal::FileUtils::fileExists(filename))
+    if (!pdal::Utils::fileExists(filename))
         throw pdal_error("File not found: " + filename);
 
-    PipelineManagerPtr output(new PipelineManager);
-
     if (filename == "STDIN")
     {
-        output->readPipeline(std::cin);
+        m_manager.readPipeline(std::cin);
     }
     else if (FileUtils::extension(filename) == ".xml" ||
         FileUtils::extension(filename) == ".json")
     {
-        output->readPipeline(filename);
+        m_manager.readPipeline(filename);
     }
     else
     {
-        StageFactory factory;
-        std::string driver = factory.inferReaderDriver(filename);
-
-        if (driver.empty())
-            throw pdal_error("Cannot determine input file type of " + filename);
-        Stage& reader = output->addReader(driver);
-        Options ro;
-        ro.add("filename", filename);
+        Options ops;
         if (noPoints)
-            ro.add("count", 0);
-        reader.setOptions(ro);
+            ops.add("count", 0);
+        Stage& reader = m_manager.makeReader(filename, m_driverOverride, ops);
         m_reader = &reader;
     }
-    return output;
 }
 
+
 void InfoKernel::setup(const std::string& filename)
 {
-    m_manager = makePipeline(filename, !m_needPoints);
-    Stage *stage = m_manager->getStage();
+    makePipeline(filename, !m_needPoints);
 
+    Stage *stage = m_reader;
     if (m_showStats)
     {
-        m_statsStage = &(m_manager->addFilter("filters.stats"));
+        Options filterOptions;
         if (m_dimensions.size())
-        {
-            Options ops;
-            ops.add("dimensions", m_dimensions);
-            m_statsStage->addOptions(ops);
-        }
-
-        m_statsStage->setInput(*stage);
+            filterOptions.add({"dimensions", m_dimensions});
+        m_statsStage = &m_manager.makeFilter("filters.stats", *stage,
+            filterOptions);
         stage = m_statsStage;
     }
     if (m_boundary)
-    {
-        m_hexbinStage = &(m_manager->addFilter("filters.hexbin"));
-        if (!m_hexbinStage) {
-            throw pdal_error("Unable to compute boundary -- "
-                "http://github.com/hobu/hexer is not linked. "
-                "See the \"boundary\" member in \"stats\" for a coarse "
-                "bounding box");
-        }
-        m_hexbinStage->setInput(*stage);
-    }
+        m_hexbinStage = &m_manager.makeFilter("filters.hexbin", *stage);
 }
 
 
@@ -336,11 +314,10 @@ MetadataNode InfoKernel::run(const std::string& filename)
     }
     else
     {
-        applyExtraStageOptionsRecursive(m_manager->getStage());
         if (m_needPoints || m_showMetadata)
-            m_manager->execute();
+            m_manager.execute();
         else
-            m_manager->prepare();
+            m_manager.prepare();
         dump(root);
     }
     root.add("pdal_version", pdal::GetFullVersionString());
@@ -351,17 +328,17 @@ MetadataNode InfoKernel::run(const std::string& filename)
 void InfoKernel::dump(MetadataNode& root)
 {
     if (m_showSchema)
-        root.add(Utils::toMetadata(m_manager->pointTable()).clone("schema"));
+        root.add(m_manager.pointTable().toMetadata().clone("schema"));
 
     if (m_PointCloudSchemaOutput.size() > 0)
     {
 #ifdef PDAL_HAVE_LIBXML2
-        XMLSchema schema(m_manager->pointTable().layout());
+        XMLSchema schema(m_manager.pointTable().layout());
 
-        std::ostream *out = FileUtils::createFile(m_PointCloudSchemaOutput);
+        std::ostream *out = Utils::createFile(m_PointCloudSchemaOutput);
         std::string xml(schema.xml());
         out->write(xml.c_str(), xml.size());
-        FileUtils::closeFile(out);
+        Utils::closeFile(out);
 #else
         std::cerr << "libxml2 support not enabled, no schema is produced" <<
             std::endl;
@@ -372,18 +349,18 @@ void InfoKernel::dump(MetadataNode& root)
         root.add(m_statsStage->getMetadata().clone("stats"));
 
     if (m_pipelineFile.size() > 0)
-        PipelineWriter::writePipeline(m_manager->getStage(), m_pipelineFile);
+        PipelineWriter::writePipeline(m_manager.getStage(), m_pipelineFile);
 
     if (m_pointIndexes.size())
     {
-        PointViewSet viewSet = m_manager->views();
+        PointViewSet viewSet = m_manager.views();
         assert(viewSet.size() == 1);
         root.add(dumpPoints(*viewSet.begin()).clone("points"));
     }
 
     if (m_queryPoint.size())
     {
-        PointViewSet viewSet = m_manager->views();
+        PointViewSet viewSet = m_manager.views();
         assert(viewSet.size() == 1);
         root.add(dumpQuery(*viewSet.begin()));
     }
@@ -397,12 +374,12 @@ void InfoKernel::dump(MetadataNode& root)
         if (m_reader)
             root.add(m_reader->getMetadata().clone("metadata"));
         else
-            root.add(m_manager->getMetadata().clone("metadata"));
+            root.add(m_manager.getMetadata().clone("metadata"));
     }
 
     if (m_boundary)
     {
-        PointViewSet viewSet = m_manager->views();
+        PointViewSet viewSet = m_manager.views();
         assert(viewSet.size() == 1);
         root.add(m_hexbinStage->getMetadata().clone("boundary"));
     }
@@ -465,7 +442,7 @@ MetadataNode InfoKernel::dumpQuery(PointViewPtr inView) const
     for (auto i = ids.begin(); i != ids.end(); ++i)
         outView->appendPoint(*inView.get(), *i);
 
-    return Utils::toMetadata(outView);
+    return outView->toMetadata();
 }
 
 
diff --git a/kernels/info/InfoKernel.hpp b/kernels/info/InfoKernel.hpp
index 7fa5c4b..7da3079 100644
--- a/kernels/info/InfoKernel.hpp
+++ b/kernels/info/InfoKernel.hpp
@@ -79,7 +79,7 @@ private:
     void dumpPipeline() const;
     MetadataNode dumpSummary(const QuickInfo& qi);
     MetadataNode dumpQuery(PointViewPtr inView) const;
-    PipelineManagerPtr makePipeline(const std::string& filename, bool noPoints);
+    void makePipeline(const std::string& filename, bool noPoints);
 
     std::string m_inputFile;
     bool m_showStats;
@@ -94,13 +94,13 @@ private:
     bool m_showSummary;
     bool m_needPoints;
     std::string m_PointCloudSchemaOutput;
+    bool m_usestdin;
 
     Stage *m_statsStage;
     Stage *m_hexbinStage;
     Stage *m_reader;
 
     MetadataNode m_tree;
-    PipelineManagerPtr m_manager;
 };
 
 } // namespace pdal
diff --git a/kernels/merge/MergeKernel.cpp b/kernels/merge/MergeKernel.cpp
index 8f17610..ae57e0d 100644
--- a/kernels/merge/MergeKernel.cpp
+++ b/kernels/merge/MergeKernel.cpp
@@ -77,22 +77,11 @@ int MergeKernel::execute()
 
     for (size_t i = 0; i < m_files.size(); ++i)
     {
-        Options readerOpts;
-        readerOpts.add("filename", m_files[i]);
-        readerOpts.add("debug", isDebug());
-        readerOpts.add("verbose", getVerboseLevel());
-
-        Stage& reader = makeReader(m_files[i]);
-        reader.setOptions(readerOpts);
-
+        Stage& reader = makeReader(m_files[i], m_driverOverride);
         filter.setInput(reader);
     }
 
-    Options writerOpts;
-
-    Stage& writer = makeWriter(m_outputFile, filter);
-    applyExtraStageOptionsRecursive(&writer);
-
+    Stage& writer = makeWriter(m_outputFile, filter, "");
     writer.prepare(table);
     writer.execute(table);
     return 0;
diff --git a/kernels/pipeline/PipelineKernel.cpp b/kernels/pipeline/PipelineKernel.cpp
index 724ba3a..fdd681e 100644
--- a/kernels/pipeline/PipelineKernel.cpp
+++ b/kernels/pipeline/PipelineKernel.cpp
@@ -39,7 +39,6 @@
 #endif
 
 #include <pdal/PDALUtils.hpp>
-#include <pdal/util/FileUtils.hpp>
 #include <pdal/pdal_macros.hpp>
 
 namespace pdal
@@ -82,33 +81,31 @@ void PipelineKernel::addSwitches(ProgramArgs& args)
         m_progressFile);
     args.add("pointcloudschema", "dump PointCloudSchema XML output",
         m_PointCloudSchemaOutput).setHidden();
+    args.add("stdin,s", "Read pipeline from standard input", m_usestdin);
 }
 
 int PipelineKernel::execute()
 {
-    if (!FileUtils::fileExists(m_inputFile))
+    if (!Utils::fileExists(m_inputFile))
         throw pdal_error("file not found: " + m_inputFile);
     if (m_progressFile.size())
         m_progressFd = Utils::openProgress(m_progressFile);
 
-    PipelineManager manager(m_progressFd);
-
-    manager.readPipeline(m_inputFile);
-    applyExtraStageOptionsRecursive(manager.getStage());
-    manager.execute();
+    m_manager.readPipeline(m_inputFile);
+    m_manager.execute();
 
     if (m_pipelineFile.size() > 0)
-        PipelineWriter::writePipeline(manager.getStage(), m_pipelineFile);
+        PipelineWriter::writePipeline(m_manager.getStage(), m_pipelineFile);
 
     if (m_PointCloudSchemaOutput.size() > 0)
     {
 #ifdef PDAL_HAVE_LIBXML2
-        XMLSchema schema(manager.pointTable().layout());
+        XMLSchema schema(m_manager.pointTable().layout());
 
-        std::ostream *out = FileUtils::createFile(m_PointCloudSchemaOutput);
+        std::ostream *out = Utils::createFile(m_PointCloudSchemaOutput);
         std::string xml(schema.xml());
         out->write(xml.c_str(), xml.size());
-        FileUtils::closeFile(out);
+        Utils::closeFile(out);
 #else
         std::cerr << "libxml2 support not available, no schema is produced" <<
             std::endl;
diff --git a/kernels/pipeline/PipelineKernel.hpp b/kernels/pipeline/PipelineKernel.hpp
index ae5fbaa..4cfc329 100644
--- a/kernels/pipeline/PipelineKernel.hpp
+++ b/kernels/pipeline/PipelineKernel.hpp
@@ -65,6 +65,7 @@ private:
     std::string m_PointCloudSchemaOutput;
     std::string m_progressFile;
     int m_progressFd;
+    bool m_usestdin;
 };
 
 } // pdal
diff --git a/kernels/random/RandomKernel.cpp b/kernels/random/RandomKernel.cpp
index 46fd2c1..a883c51 100644
--- a/kernels/random/RandomKernel.cpp
+++ b/kernels/random/RandomKernel.cpp
@@ -75,30 +75,10 @@ void RandomKernel::addSwitches(ProgramArgs& args)
 }
 
 
-Stage& RandomKernel::makeReader(Options readerOptions)
-{
-    if (isDebug())
-    {
-        readerOptions.add<bool>("debug", true);
-        uint32_t verbosity(getVerboseLevel());
-        if (!verbosity)
-            verbosity = 1;
-
-        readerOptions.add<uint32_t>("verbose", verbosity);
-        readerOptions.add<std::string>("log", "STDERR");
-    }
-
-    auto& reader = createStage("readers.faux");
-    reader.setOptions(readerOptions);
-    return reader;
-}
-
-
 int RandomKernel::execute()
 {
     Options readerOptions;
 
-    setCommonOptions(readerOptions);
     if (!m_bounds.empty())
         readerOptions.add("bounds", m_bounds);
 
@@ -111,22 +91,15 @@ int RandomKernel::execute()
         readerOptions.add("mode", "random");
     else
         throw pdal_error("invalid distribution: " + m_distribution);
-    readerOptions.add("num_points", m_numPointsToWrite);
+    readerOptions.add("count", m_numPointsToWrite);
+    Stage& reader = makeReader("", "readers.faux", readerOptions);
 
     Options writerOptions;
-
-    writerOptions.add("filename", m_outputFile);
-    setCommonOptions(writerOptions);
-
     if (m_bCompress)
         writerOptions.add("compression", true);
-
-    Stage& writer = makeWriter(m_outputFile, makeReader(readerOptions));
-    writer.setOptions(writerOptions);
-    applyExtraStageOptionsRecursive(&writer);
+    Stage& writer = makeWriter(m_outputFile, reader, "", writerOptions);
 
     PointTable table;
-
     writer.prepare(table);
     PointViewSet viewSet = writer.execute(table);
 
diff --git a/kernels/random/RandomKernel.hpp b/kernels/random/RandomKernel.hpp
index e47fadc..75f8fff 100644
--- a/kernels/random/RandomKernel.hpp
+++ b/kernels/random/RandomKernel.hpp
@@ -57,8 +57,6 @@ private:
     RandomKernel();
     void addSwitches(ProgramArgs& arg);
 
-    Stage& makeReader(Options readerOptions);
-
     std::string m_outputFile;
     bool m_bCompress;
     uint64_t m_numPointsToWrite;
diff --git a/kernels/sort/SortKernel.cpp b/kernels/sort/SortKernel.cpp
index 26a4473..635f8ee 100644
--- a/kernels/sort/SortKernel.cpp
+++ b/kernels/sort/SortKernel.cpp
@@ -70,40 +70,14 @@ void SortKernel::addSwitches(ProgramArgs& args)
 }
 
 
-Stage& SortKernel::makeReader(Options readerOptions)
-{
-    if (isDebug())
-    {
-        readerOptions.add<bool>("debug", true);
-        uint32_t verbosity(getVerboseLevel());
-        if (!verbosity)
-            verbosity = 1;
-
-        readerOptions.add<uint32_t>("verbose", verbosity);
-        readerOptions.add<std::string>("log", "STDERR");
-    }
-
-    Stage& stage = Kernel::makeReader(m_inputFile);
-    stage.setOptions(readerOptions);
-
-    return stage;
-}
-
-
 int SortKernel::execute()
 {
-    PointTable table;
-
-    Options readerOptions;
-    readerOptions.add("filename", m_inputFile);
-    readerOptions.add("debug", isDebug());
-    readerOptions.add("verbose", getVerboseLevel());
-
-    Stage& readerStage = makeReader(readerOptions);
+    Stage& readerStage = makeReader(m_inputFile, m_driverOverride);
 
     // go ahead and prepare/execute on reader stage only to grab input
     // PointViewSet, this makes the input PointView available to both the
     // processing pipeline and the visualizer
+    PointTable table;
     readerStage.prepare(table);
     PointViewSet viewSetIn = readerStage.execute(table);
 
@@ -112,33 +86,17 @@ int SortKernel::execute()
     PointViewPtr inView = *viewSetIn.begin();
 
     BufferReader bufferReader;
-    bufferReader.setOptions(readerOptions);
     bufferReader.addView(inView);
 
-    Options sortOptions;
-    sortOptions.add<bool>("debug", isDebug());
-    sortOptions.add<uint32_t>("verbose", getVerboseLevel());
-
-    auto& sortStage = createStage("filters.mortonorder");
-    sortStage.setInput(bufferReader);
-    sortStage.setOptions(sortOptions);
+    Stage& sortStage = makeFilter("filters.mortonorder", bufferReader);
 
     Options writerOptions;
-    writerOptions.add("filename", m_outputFile);
-    setCommonOptions(writerOptions);
-
     if (m_bCompress)
         writerOptions.add("compression", true);
     if (m_bForwardMetadata)
         writerOptions.add("forward_metadata", true);
+    Stage& writer = makeWriter(m_outputFile, sortStage, "", writerOptions);
 
-    Stage& writer = makeWriter(m_outputFile, sortStage);
-
-    // Some options are inferred by makeWriter based on filename
-    // (compression, driver type, etc).
-    writer.addOptions(writerOptions);
-
-    applyExtraStageOptionsRecursive(&writer);
     writer.prepare(table);
 
     // process the data, grabbing the PointViewSet for visualization of the
diff --git a/kernels/sort/SortKernel.hpp b/kernels/sort/SortKernel.hpp
index b960414..5fb39ab 100644
--- a/kernels/sort/SortKernel.hpp
+++ b/kernels/sort/SortKernel.hpp
@@ -55,8 +55,6 @@ private:
     SortKernel();
     void addSwitches(ProgramArgs& args);
 
-    Stage& makeReader(Options readerOptions);
-
     std::string m_inputFile;
     std::string m_outputFile;
     bool m_bCompress;
diff --git a/kernels/split/SplitKernel.cpp b/kernels/split/SplitKernel.cpp
index b227b34..816a56d 100644
--- a/kernels/split/SplitKernel.cpp
+++ b/kernels/split/SplitKernel.cpp
@@ -76,7 +76,7 @@ void SplitKernel::validateSwitches(ProgramArgs& args)
 #endif
 
     if (m_length && m_capacity)
-        throw pdal_error("Can't specify for length and capacity.");
+        throw pdal_error("Can't specify both length and capacity.");
     if (!m_length && !m_capacity)
         m_capacity = 100000;
     if (m_outputFile.back() == pathSeparator)
@@ -102,16 +102,10 @@ int SplitKernel::execute()
 {
     PointTable table;
 
-    Options readerOpts;
-    readerOpts.add("filename", m_inputFile);
-    readerOpts.add("debug", isDebug());
-    readerOpts.add("verbose", getVerboseLevel());
-
-    Stage& reader = makeReader(m_inputFile);
-    reader.setOptions(readerOpts);
+    Stage& reader = makeReader(m_inputFile, m_driverOverride);
 
     Options filterOpts;
-    Stage& f = (m_length ? createStage("filters.splitter") : createStage("filters.chipper"));
+    std::string driver = (m_length ? "filters.splitter" : "filters.chipper");
     if (m_length)
     {
         filterOpts.add("length", m_length);
@@ -122,8 +116,7 @@ int SplitKernel::execute()
     {
         filterOpts.add("capacity", m_capacity);
     }
-    f.setInput(reader);
-    f.setOptions(filterOpts);
+    Stage& f = makeFilter(driver, reader, filterOpts);
     f.prepare(table);
     PointViewSet pvSet = f.execute(table);
 
@@ -134,7 +127,7 @@ int SplitKernel::execute()
         reader.addView(pvp);
 
         std::string filename = makeFilename(m_outputFile, filenum++);
-        Stage& writer = makeWriter(filename, reader);
+        Stage& writer = makeWriter(filename, reader, "");
 
         writer.prepare(table);
         writer.execute(table);
diff --git a/kernels/tindex/TIndexKernel.cpp b/kernels/tindex/TIndexKernel.cpp
index 8933eb6..19777be 100644
--- a/kernels/tindex/TIndexKernel.cpp
+++ b/kernels/tindex/TIndexKernel.cpp
@@ -86,15 +86,13 @@ TIndexKernel::TIndexKernel()
     , m_layer(NULL)
     , m_fastBoundary(false)
 
-{
-    m_log.setLeader("pdal tindex");
-}
+{}
 
 
 void TIndexKernel::addSwitches(ProgramArgs& args)
 {
     args.add("tindex", "OGR-readable/writeable tile index output",
-        m_idxFilename);
+        m_idxFilename).setPositional();
     args.add("filespec", "Build: Pattern of files to index. "
         "Merge: Output filename", m_filespec).setPositional();
     args.add("fast_boundary", "Use extent instead of exact boundary",
@@ -103,7 +101,7 @@ void TIndexKernel::addSwitches(ProgramArgs& args)
         m_layerName);
     args.add("tindex_name", "Tile index column name", m_tileIndexColumnName,
         "location");
-    args.add("driver,f", "OGR driver name to use ", m_driverName,
+    args.add("ogrdriver,f", "OGR driver name to use ", m_driverName,
         "ESRI Shapefile");
     args.add("t_srs", "Target SRS of tile index", m_tgtSrsString,
         "EPSG:4326");
@@ -115,6 +113,8 @@ void TIndexKernel::addSwitches(ProgramArgs& args)
         "Write absolute rather than relative file paths", m_absPath);
     args.add("merge", "Whether we're merging the entries in a tindex file.",
         m_merge);
+    args.add("stdin,s", "Read filespec pattern from standard input",
+        m_usestdin);
 }
 
 
@@ -216,9 +216,11 @@ bool TIndexKernel::isFileIndexed(const FieldIndexes& indexes,
     const FileInfo& fileInfo)
 {
     std::ostringstream qstring;
-    qstring << Utils::toupper(m_tileIndexColumnName) << "=\"" <<
-        fileInfo.m_filename << "\"";
-    OGRErr err = OGR_L_SetAttributeFilter(m_layer, qstring.str().c_str());
+
+    qstring << Utils::toupper(m_tileIndexColumnName) << "=" <<
+        "'" << fileInfo.m_filename << "'";
+    std::string query = qstring.str();
+    OGRErr err = OGR_L_SetAttributeFilter(m_layer, query.c_str());
     if (err != OGRERR_NONE)
     {
         std::ostringstream oss;
@@ -231,7 +233,6 @@ bool TIndexKernel::isFileIndexed(const FieldIndexes& indexes,
     OGR_L_ResetReading(m_layer);
     if (OGR_L_GetNextFeature(m_layer))
         output = true;
-
     OGR_L_ResetReading(m_layer);
     OGR_L_SetAttributeFilter(m_layer, NULL);
     return output;
@@ -288,9 +289,9 @@ void TIndexKernel::createFile()
         if (!isFileIndexed(indexes, info))
         {
             if (createFeature(indexes, info))
-                m_log.get(LogLevel::Info) << "Indexed file " << f << std::endl;
+                m_log->get(LogLevel::Info) << "Indexed file " << f << std::endl;
             else
-                m_log.get(LogLevel::Error) << "Failed to create feature for "
+                m_log->get(LogLevel::Error) << "Failed to create feature for "
                     "file '" << f << "'" << std::endl;
 
         }
@@ -355,79 +356,47 @@ void TIndexKernel::mergeFile()
         OGR_F_Destroy(feature);
     }
 
-    StageFactory factory;
-
-    MergeFilter merge;
-
     Options cropOptions;
     if (!m_bounds.empty())
         cropOptions.add("bounds", m_bounds);
     else
         cropOptions.add("polygon", m_wkt);
 
+    Stage& merge = makeFilter("filters.merge");
     for (auto f : files)
     {
-        Stage *premerge = NULL;
-        std::string driver = factory.inferReaderDriver(f.m_filename);
-        Stage *reader = factory.createStage(driver);
-        if (!reader)
-        {
-            out << "Unable to create reader for file '" << f.m_filename << "'.";
-            throw pdal_error(out.str());
-        }
-        Options readerOptions;
-        readerOptions.add("filename", f.m_filename);
-        reader->setOptions(readerOptions);
-        premerge = reader;
+        Stage& reader = makeReader(f.m_filename, m_driverOverride);
+        Stage *premerge = &reader;
 
         if (m_tgtSrsString != f.m_srs)
         {
-            Stage *repro = factory.createStage("filters.reprojection");
-            repro->setInput(*reader);
             Options reproOptions;
             reproOptions.add("out_srs", m_tgtSrsString);
             reproOptions.add("in_srs", f.m_srs);
-            repro->setOptions(reproOptions);
-            premerge = repro;
+            Stage& repro = makeFilter("filters.reprojection", reader,
+                reproOptions);
+            premerge = &repro;
         }
 
         // WKT is set, even if we're using a bounding box for fitering, so
         // can be used as a test here.
         if (!m_wkt.empty())
         {
-            Stage *crop = factory.createStage("filters.crop");
-            crop->setOptions(cropOptions);
-            crop->setInput(*premerge);
-            premerge = crop;
+            Stage& crop = makeFilter("filters.crop", *premerge, cropOptions);
+            premerge = &crop;
         }
-
         merge.setInput(*premerge);
     }
 
-    std::string driver = factory.inferWriterDriver(m_filespec);
-    Options factoryOptions = factory.inferWriterOptionsChanges(m_filespec);
-    Stage *writer = factory.createStage(driver);
-    if (!writer)
-    {
-        out << "Unable to create reader for file '" << m_filespec << "'.";
-        throw pdal_error(out.str());
-    }
-    writer->setInput(merge);
-
-    applyExtraStageOptionsRecursive(writer);
-
-    Options writerOptions(factoryOptions);
-    setCommonOptions(writerOptions);
-
-    writerOptions.add("filename", m_filespec);
+    Options writerOptions;
     writerOptions.add("offset_x", "auto");
     writerOptions.add("offset_y", "auto");
     writerOptions.add("offset_z", "auto");
-    writer->addConditionalOptions(writerOptions);
+    Stage& writer = makeWriter(m_filespec, merge, "", writerOptions);
 
     PointTable table;
-    writer->prepare(table);
-    writer->execute(table);
+    writer.prepare(table);
+    writer.execute(table);
 }
 
 
@@ -490,7 +459,7 @@ bool TIndexKernel::createFeature(const FieldIndexes& indexes,
         {}
         if (err != OGRERR_NONE)
         {
-            m_log.get(LogLevel::Warning) << "Unable to convert SRS to "
+            m_log->get(LogLevel::Warning) << "Unable to convert SRS to "
                 "proj.4 format for file '" << fileInfo.m_filename << "'" <<
                 std::endl;
             return false;
@@ -517,18 +486,16 @@ TIndexKernel::FileInfo TIndexKernel::getFileInfo(KernelFactory& factory,
 {
     FileInfo fileInfo;
 
-    StageFactory f;
+    PipelineManager manager;
+    manager.commonOptions() = m_manager.commonOptions();
+    manager.stageOptions() = m_manager.stageOptions();
+
+    // Need to make sure options get set.
+    Stage& reader = manager.makeReader(filename, "");
 
-    std::string driverName = f.inferReaderDriver(filename);
-    Stage *s = f.createStage(driverName);
-    Options ops;
-    ops.add("filename", filename);
-    setCommonOptions(ops);
-    s->setOptions(ops);
-    applyExtraStageOptionsRecursive(s);
     if (m_fastBoundary)
     {
-        QuickInfo qi = s->preview();
+        QuickInfo qi = reader.preview();
 
         std::stringstream polygon;
         polygon << "POLYGON ((";
@@ -545,22 +512,11 @@ TIndexKernel::FileInfo TIndexKernel::getFileInfo(KernelFactory& factory,
     }
     else
     {
-        PointTable table;
+        Stage& hexer = manager.makeFilter("filters.hexbin", reader);
 
-        Stage *hexer = f.createStage("filters.hexbin");
-        if (! hexer)
-        {
-
-            std::ostringstream oss;
-
-            oss << "Unable to create hexer stage to create boundaries. "
-                << "Is PDAL_DRIVER_PATH environment variable set?";
-            throw pdal_error(oss.str());
-        }
-        hexer->setInput(*s);
-
-        hexer->prepare(table);
-        PointViewSet set = hexer->execute(table);
+        PointTable table;
+        hexer.prepare(table);
+        PointViewSet set = hexer.execute(table);
 
         MetadataNode m = table.metadata();
         m = m.findChild("filters.hexbin:boundary");
@@ -620,7 +576,7 @@ bool TIndexKernel::createLayer(std::string const& layername)
 
     SpatialRef srs(m_tgtSrsString);
     if (!srs)
-        m_log.get(LogLevel::Error) << "Unable to import srs for layer "
+        m_log->get(LogLevel::Error) << "Unable to import srs for layer "
            "creation" << std::endl;
 
     m_layer = OGR_DS_CreateLayer(m_dataset, m_layerName.c_str(),
diff --git a/kernels/tindex/TIndexKernel.hpp b/kernels/tindex/TIndexKernel.hpp
index d15b5db..bf3be9a 100644
--- a/kernels/tindex/TIndexKernel.hpp
+++ b/kernels/tindex/TIndexKernel.hpp
@@ -113,6 +113,7 @@ private:
     std::string m_tgtSrsString;
     std::string m_assignSrsString;
     bool m_fastBoundary;
+    bool m_usestdin;
 };
 
 } // namespace pdal
diff --git a/kernels/translate/TranslateKernel.cpp b/kernels/translate/TranslateKernel.cpp
index 7f20bcd..edfb260 100644
--- a/kernels/translate/TranslateKernel.cpp
+++ b/kernels/translate/TranslateKernel.cpp
@@ -36,7 +36,6 @@
 #include "TranslateKernel.hpp"
 
 #include <pdal/KernelFactory.hpp>
-#include <pdal/Options.hpp>
 #include <pdal/pdal_macros.hpp>
 #include <pdal/PipelineWriter.hpp>
 #include <pdal/PointTable.hpp>
@@ -88,42 +87,8 @@ void TranslateKernel::addSwitches(ProgramArgs& args)
 
 int TranslateKernel::execute()
 {
-    // setting common options for each stage propagates the debug flag and
-    // verbosity level
-    Options readerOptions, filterOptions, writerOptions;
-    setCommonOptions(readerOptions);
-    setCommonOptions(filterOptions);
-    setCommonOptions(writerOptions);
-
-    m_manager = std::unique_ptr<PipelineManager>(new PipelineManager);
-
-    if (!m_readerType.empty())
-    {
-        m_manager->addReader(m_readerType);
-    }
-    else
-    {
-        StageFactory factory;
-        std::string driver = factory.inferReaderDriver(m_inputFile);
-
-        if (driver.empty())
-            throw pdal_error("Cannot determine input file type of " +
-                                    m_inputFile);
-        m_manager->addReader(driver);
-    }
-
-    if (m_manager == NULL)
-        throw pdal_error("Error making pipeline\n");
-
-    Stage* reader = m_manager->getStage();
-
-    if (reader == NULL)
-        throw pdal_error("Error getting reader\n");
-
-    readerOptions.add("filename", m_inputFile);
-    reader->setOptions(readerOptions);
-
-    Stage* stage = reader;
+    Stage& reader = m_manager.makeReader(m_inputFile, m_readerType);
+    Stage* stage = &reader;
 
     // add each filter provided on the command-line, updating the stage pointer
     for (auto const f : m_filterType)
@@ -133,55 +98,14 @@ int TranslateKernel::execute()
         if (!Utils::startsWith(f, "filters."))
             filter_name.insert(0, "filters.");
 
-        Stage* filter = &(m_manager->addFilter(filter_name));
-
-        if (filter == NULL)
-        {
-            std::ostringstream oss;
-            oss << "Unable to add filter " << filter_name << ".  Filter "
-              "is invalid or plugin could not be loaded.  Check "
-              "'pdal --drivers'.";
-            throw pdal_error("Error getting filter\n");
-        }
-
-        filter->setOptions(filterOptions);
-        filter->setInput(*stage);
-        stage = filter;
-    }
-
-    if (!m_writerType.empty())
-    {
-        m_manager->addWriter(m_writerType);
-    }
-    else
-    {
-        StageFactory factory;
-        std::string driver = factory.inferWriterDriver(m_outputFile);
-
-        if (driver.empty())
-            throw pdal_error("Cannot determine output file type of " +
-                m_outputFile);
-        Options options = factory.inferWriterOptionsChanges(m_outputFile);
-        writerOptions += options;
-        m_manager->addWriter(driver);
+        Stage& filter = m_manager.makeFilter(filter_name, *stage);
+        stage = &filter;
     }
 
-    Stage* writer = m_manager->getStage();
-
-    if (writer == NULL)
-        throw pdal_error("Error getting writer\n");
-
-    writerOptions.add("filename", m_outputFile);
-    writer->setOptions(writerOptions);
-    writer->setInput(*stage);
-
-    // be sure to recurse through any extra stage options provided by the user
-    applyExtraStageOptionsRecursive(writer);
-
-    m_manager->execute();
-
+    Stage& writer = m_manager.makeWriter(m_outputFile, m_writerType, *stage);
+    m_manager.execute();
     if (m_pipelineOutput.size() > 0)
-        PipelineWriter::writePipeline(m_manager->getStage(), m_pipelineOutput);
+        PipelineWriter::writePipeline(&writer, m_pipelineOutput);
 
     return 0;
 }
diff --git a/kernels/translate/TranslateKernel.hpp b/kernels/translate/TranslateKernel.hpp
index b9833c2..28424d7 100644
--- a/kernels/translate/TranslateKernel.hpp
+++ b/kernels/translate/TranslateKernel.hpp
@@ -68,8 +68,6 @@ private:
     std::string m_readerType;
     std::vector<std::string> m_filterType;
     std::string m_writerType;
-
-    std::unique_ptr<PipelineManager> m_manager;
 };
 
 } // namespace pdal
diff --git a/pdal_defines.h.in b/pdal_defines.h.in
index a611df2..a0b88a6 100644
--- a/pdal_defines.h.in
+++ b/pdal_defines.h.in
@@ -32,6 +32,8 @@
 #cmakedefine PDAL_HAVE_LIBXML2
 #cmakedefine PDAL_HAVE_LIBGEOTIFF
 
+#cmakedefine PDAL_ARBITER_ENABLED
+
 /*
  * Debug or Release build?
  */
diff --git a/plugins/cpd/kernel/Cpd.cpp b/plugins/cpd/kernel/Cpd.cpp
index 7ae9399..d967088 100644
--- a/plugins/cpd/kernel/Cpd.cpp
+++ b/plugins/cpd/kernel/Cpd.cpp
@@ -96,13 +96,7 @@ void CpdKernel::addSwitches(ProgramArgs& args)
 
 cpd::Matrix CpdKernel::readFile(const std::string& filename)
 {
-    Options opt;
-    opt.add("filename", filename);
-    opt.add("debug", isDebug());
-    opt.add("verbose", getVerboseLevel());
-
-    Stage& reader = makeReader(filename);
-    reader.setOptions(opt);
+    Stage& reader = makeReader(filename, "");
 
     PointTable table;
     PointViewSet viewSet;
@@ -110,13 +104,11 @@ cpd::Matrix CpdKernel::readFile(const std::string& filename)
     {
         Options boundsOptions;
         boundsOptions.add("bounds", m_bounds);
-        StageFactory f;
 
-        Stage *crop = f.createStage("filters.crop");
-        crop->setInput(reader);
-        crop->setOptions(boundsOptions);
-        crop->prepare(table);
-        viewSet = crop->execute(table);
+        Stage& crop = makeFilter("filters.crop", reader);
+        crop.setOptions(boundsOptions);
+        crop.prepare(table);
+        viewSet = crop.execute(table);
     }
     else
     {
@@ -227,13 +219,12 @@ int CpdKernel::execute()
     reader.addView(outView);
 
     Options writerOpts;
-    writerOpts.add<std::string>("filename", m_output);
-    writerOpts.add<std::string>("order", "X,Y,Z,XVelocity,YVelocity,ZVelocity");
-    writerOpts.add<bool>("keep_unspecified", false);
-    setCommonOptions(writerOpts);
-
-    Stage& writer = makeWriter(m_output, reader);
-    writer.addOptions(writerOpts);
+    if (StageFactory::inferReaderDriver(m_output) == "writers.text")   
+    {
+        writerOpts.add("order", "X,Y,Z,XVelocity,YVelocity,ZVelocity");
+        writerOpts.add("keep_unspecified", false);
+    }
+    Stage& writer = makeWriter(m_output, reader, "", writerOpts);
     writer.prepare(outTable);
     writer.execute(outTable);
 
diff --git a/plugins/cpd/test/CpdKernelTest.cpp b/plugins/cpd/test/CpdKernelTest.cpp
index 8a8fd02..4429677 100644
--- a/plugins/cpd/test/CpdKernelTest.cpp
+++ b/plugins/cpd/test/CpdKernelTest.cpp
@@ -71,7 +71,8 @@ protected:
         reader.setOptions(readerOptions);
 
         Options transformationOptions;
-        transformationOptions.add("matrix", "1 0 0 1\n0 1 0 2\n0 0 1 3\n0 0 0 1");
+        transformationOptions.add("matrix",
+            "1 0 0 1\n0 1 0 2\n0 0 1 3\n0 0 0 1");
         Stage& filter = mrManager.addFilter("filters.transformation");
         filter.setInput(reader);
         filter.setOptions(transformationOptions);
@@ -107,13 +108,9 @@ TEST_F(CpdKernelTest, Execution)
     std::unique_ptr<Kernel> cpdKernel(static_cast<Kernel*>(stage));
 
     int argc = 4;
-    const char * argv[4] = {
-        "rigid",
-        m_x.c_str(),
-        m_y.c_str(),
-        m_outfile.c_str()
-    };
-    int retval = cpdKernel->run(argc, argv, "cpd");
+    LogPtr log(new Log("pdal cpd", &std::clog));
+    StringList argv { "rigid", m_x, m_y, m_outfile };
+    int retval = cpdKernel->run(argv, log);
     EXPECT_EQ(0, retval);
 }
 
diff --git a/plugins/geowave/io/GeoWaveReader.cpp b/plugins/geowave/io/GeoWaveReader.cpp
index 95495b9..7172bd7 100644
--- a/plugins/geowave/io/GeoWaveReader.cpp
+++ b/plugins/geowave/io/GeoWaveReader.cpp
@@ -34,6 +34,7 @@
 
 #include "GeoWaveReader.hpp"
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <jace/Jace.h>
 using jace::java_cast;
@@ -143,59 +144,50 @@ std::string pdal::GeoWaveReader::getName() const { return s_info.name; }
 
 namespace pdal
 {
-
-    Options GeoWaveReader::getDefaultOptions()
+    void GeoWaveReader::addArgs(ProgramArgs& args)
     {
-        Options options;
-
-        Option zookeeperUrl("zookeeper_url", "", "The comma-delimited URLs for all zookeeper servers, this will be directly used to instantiate a ZookeeperInstance");
-        Option instanceName("instance_name", "", "The zookeeper instance name, this will be directly used to instantiate a ZookeeperInstance");
-        Option username("username", "", "The username for the account to establish an Accumulo connector");
-        Option password("password", "", "The password for the account to establish an Accumulo connector");
-        Option tableNamespace("table_namespace", "", "The table name to be used when interacting with GeoWave");
-        Option featureTypeName("feature_type_name", "", "The feature type name to be used when interacting with GeoWave");
-        Option dataAdapter("data_adapter", "FeatureDataAdapter", "FeatureCollectionDataAdapter stores multiple points per Accumulo entry.  FeatureDataAdapter stores a single point per Accumulo entry.");
-        Option pointsPerEntry("points_per_entry", 5000u, "Sets the maximum number of points per Accumulo entry when using FeatureCollectionDataAdapter.");
-        Option bounds("bounds", "", "The extent of the bounding rectangle to use to query points, expressed as a string, eg: ([xmin, xmax], [ymin, ymax], [zmin, zmax])");
-
-        options.add(zookeeperUrl);
-        options.add(instanceName);
-        options.add(username);
-        options.add(password);
-        options.add(tableNamespace);
-        options.add(featureTypeName);
-        options.add(dataAdapter);
-        options.add(pointsPerEntry);
-        options.add(bounds);
-
-        return options;
+        args.add("zookeeper_url", "The comma-delimited URLs for all "
+            "zookeeper servers, this will be directly used to instantiate "
+            "a ZookeeperInstance", m_zookeeperUrl).setPositional();
+        args.add("instance_name", "The zookeeper instance name, this "
+            "will be directly used to instantiate a ZookeeperInstance",
+            m_instanceName).setPositional();
+        args.add("username", "The username for the account to establish "
+            "an Accumulo connector", m_username).setPositional();
+        args.add("password", "The password for the account to establish "
+            "an Accumulo connector", m_password).setPositional();
+        args.add("table_namespace", "The table name to be used when "
+            "interacting with GeoWave", m_tableNamespace).setPositional();
+        args.add("feature_type_name", "The feature type name to be used "
+            "when interacting with GeoWave", m_featureTypeName, "PDAL_Point");
+        args.add("data_adapter", "FeatureCollectionDataAdapter stores "
+            "multiple points per Accumulo entry.  FeatureDataAdapter stores "
+            "a single point per Accumulo entry.", m_dataAdapter,
+            "FeatureCollectionDataAdapter");
+        args.add("points_per_entry", "The maximum number of points per "
+            "Accumulo entry when using FeatureCollectionDataAdapter.",
+            m_pointsPerEntry, 5000U);
+        args.add("bounds", "The extent of the bounding rectangle to use "
+            "to query points, expressed as a string, eg: "
+            "([xmin, xmax], [ymin, ymax], [zmin, zmax])", m_bounds);
     }
 
     void GeoWaveReader::initialize()
     {
+        m_useFeatCollDataAdapter = (m_dataAdapter != "FeatureDataAdapter");
+
         if (!jace::isRunning())
         {
             int status = createJvm();
             if (status == 0)
-                log()->get(LogLevel::Debug) << "JVM Creation Successful" << std::endl;
+                log()->get(LogLevel::Debug) << "JVM Creation Successful" <<
+                std::endl;
             else
-                log()->get(LogLevel::Error) << "JVM Creation Failed: Error ["  << status << "]" << std::endl;
+                log()->get(LogLevel::Error) << "JVM Creation Failed: "
+                    "Error ["  << status << "]" << std::endl;
         }
     }
 
-    void GeoWaveReader::processOptions(const Options& ops)
-    {
-        m_zookeeperUrl = ops.getValueOrThrow<std::string>("zookeeper_url");
-        m_instanceName = ops.getValueOrThrow<std::string>("instance_name");
-        m_username = ops.getValueOrThrow<std::string>("username");
-        m_password = ops.getValueOrThrow<std::string>("password");
-        m_tableNamespace = ops.getValueOrThrow<std::string>("table_namespace");
-        m_featureTypeName =  ops.getValueOrDefault<std::string>("feature_type_name", "PDAL_Point");
-        m_useFeatCollDataAdapter = !(ops.getValueOrDefault<std::string>("data_adapter", "FeatureCollectionDataAdapter").compare("FeatureDataAdapter") == 0);
-        m_pointsPerEntry = ops.getValueOrDefault<uint32_t>("points_per_Entry", 5000u);
-        m_bounds = ops.getValueOrDefault<BOX3D>("bounds", BOX3D());
-    }
-
     void GeoWaveReader::addDimensions(PointLayoutPtr layout)
     {
         layout->registerDims(getDefaultDimensions());
diff --git a/plugins/geowave/io/GeoWaveReader.hpp b/plugins/geowave/io/GeoWaveReader.hpp
index 7603d60..9b1bdad 100644
--- a/plugins/geowave/io/GeoWaveReader.hpp
+++ b/plugins/geowave/io/GeoWaveReader.hpp
@@ -58,11 +58,9 @@ namespace pdal
         static int32_t destroy(void *);
         std::string getName() const;
 
-	Options getDefaultOptions();
-
     private:
         virtual void initialize();
-        virtual void processOptions(const Options& ops);
+        virtual void addArgs(ProgramArgs& args);
         virtual void addDimensions(PointLayoutPtr layout);
         virtual void ready(PointTableRef table);
         virtual point_count_t read(PointViewPtr view, point_count_t count);
@@ -77,9 +75,9 @@ namespace pdal
         std::string m_password;
         std::string m_tableNamespace;
         std::string m_featureTypeName;
+        std::string m_dataAdapter;
         bool m_useFeatCollDataAdapter;
         uint32_t m_pointsPerEntry;
-
         BOX3D m_bounds;
 
         CloseableIterator m_iterator;
diff --git a/plugins/geowave/io/GeoWaveWriter.cpp b/plugins/geowave/io/GeoWaveWriter.cpp
index 494b77d..ad53a17 100644
--- a/plugins/geowave/io/GeoWaveWriter.cpp
+++ b/plugins/geowave/io/GeoWaveWriter.cpp
@@ -35,6 +35,7 @@
 #include "GeoWaveWriter.hpp"
 
 #include <pdal/util/Algorithm.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <jace/Jace.h>
 using jace::java_cast;
@@ -149,46 +150,34 @@ std::string pdal::GeoWaveWriter::getName() const { return s_info.name; }
 
 namespace pdal
 {
-
-    Options GeoWaveWriter::getDefaultOptions()
-    {
-        Options options;
-
-        Option zookeeperUrl("zookeeper_url", "", "The comma-delimited URLs for all zookeeper servers, this will be directly used to instantiate a ZookeeperInstance.");
-        Option instanceName("instance_name", "", "The zookeeper instance name, this will be directly used to instantiate a ZookeeperInstance.");
-        Option username("username", "", "The username for the account to establish an Accumulo connector.");
-        Option password("password", "", "The password for the account to establish an Accumulo connector.");
-        Option tableNamespace("table_namespace", "", "The table name to be used when interacting with GeoWave.");
-        Option featureTypeName("feature_type_name", "PDAL_Point", "The feature type name to be used when interacting with GeoWave.");
-        Option dataAdapter("data_adapter", "FeatureDataAdapter", "FeatureCollectionDataAdapter stores multiple points per Accumulo entry.  FeatureDataAdapter stores a single point per Accumulo entry.");
-        Option pointsPerEntry("points_per_entry", 5000u, "Sets the maximum number of points per Accumulo entry when using FeatureCollectionDataAdapter.");
-
-        options.add(zookeeperUrl);
-        options.add(instanceName);
-        options.add(username);
-        options.add(password);
-        options.add(tableNamespace);
-        options.add(featureTypeName);
-        options.add(dataAdapter);
-        options.add(pointsPerEntry);
-
-        return options;
-    }
-
-    void GeoWaveWriter::processOptions(const Options& ops)
+    void GeoWaveWriter::addArgs(ProgramArgs& args)
     {
-        m_zookeeperUrl = ops.getValueOrThrow<std::string>("zookeeper_url");
-        m_instanceName = ops.getValueOrThrow<std::string>("instance_name");
-        m_username = ops.getValueOrThrow<std::string>("username");
-        m_password = ops.getValueOrThrow<std::string>("password");
-        m_tableNamespace = ops.getValueOrThrow<std::string>("table_namespace");
-        m_featureTypeName = ops.getValueOrDefault<std::string>("feature_type_name", "PDAL_Point");
-        m_useFeatCollDataAdapter = !(ops.getValueOrDefault<std::string>("data_adapter", "FeatureCollectionDataAdapter").compare("FeatureDataAdapter") == 0);
-        m_pointsPerEntry = ops.getValueOrDefault<uint32_t>("points_per_entry", 5000u);
+        args.add("zookeeper_url", "The comma-delimited URLs for all "
+            "zookeeper servers, this will be directly used to instantiate "
+            "a ZookeeperInstance.", m_zookeeperUrl).setPositional();
+        args.add("instance_name", "The zookeeper instance name, this will "
+            "be directly used to instantiate a ZookeeperInstance.",
+            m_instanceName).setPositional();
+        args.add("username", "The username for the account to establish "
+            "an Accumulo connector.", m_username).setPositional();
+        args.add("password", "The password for the account to establish "
+            "an Accumulo connector.", m_password).setPositional();
+        args.add("table_namespace", " "The table name to be used when "
+            "interacting with GeoWave.", m_tableNamespace).setPositional();
+        args.add("feature_type_name", "The feature type name to be used "
+            "when interacting with GeoWave.", m_featureTypeName, "PDAL_Point");
+        args.add("data_adapter", "FeatureCollectionDataAdapter stores "
+            "multiple points per Accumulo entry.  FeatureDataAdapter stores "
+            "a single point per Accumulo entry.", m_dataAdapter,
+            "FeatureCollectionDataAdapter");
+        args.add("points_per_entry", "Sets the maximum number of points "
+            "per Accumulo entry when using FeatureCollectionDataAdapter.",
+            m_pointsPerEntry, 5000U);
     }
 
     void GeoWaveWriter::initialize()
     {
+        m_useFeatCollDataAdapter = (m_dataAdapter != "FeatureDataAdapter");
         if (!jace::isRunning())
         {
             int status = createJvm();
diff --git a/plugins/geowave/io/GeoWaveWriter.hpp b/plugins/geowave/io/GeoWaveWriter.hpp
index 5905fd3..92d8a05 100644
--- a/plugins/geowave/io/GeoWaveWriter.hpp
+++ b/plugins/geowave/io/GeoWaveWriter.hpp
@@ -53,11 +53,9 @@ namespace pdal
         static int32_t destroy(void *);
         std::string getName() const;
 
-        Options getDefaultOptions();
-
     private:
+        virtual void addArgs(ProgramArgs& args);
         virtual void initialize();
-        virtual void processOptions(const Options&);
         virtual void ready(PointTableRef table);
         virtual void write(const PointViewPtr view);
 
@@ -69,10 +67,11 @@ namespace pdal
         std::string m_password;
         std::string m_tableNamespace;
         std::string m_featureTypeName;
+        std::string m_dataAdapter;
         bool m_useFeatCollDataAdapter;
         uint32_t m_pointsPerEntry;
         Dimension::IdList m_dims;
-        std::vector<Dimension::Type::Enum> m_dimTypes;
+        std::vector<Dimension::Type> m_dimTypes;
     };
 
 } // namespace pdal
diff --git a/plugins/greyhound/CMakeLists.txt b/plugins/greyhound/CMakeLists.txt
index fb26595..2049fad 100644
--- a/plugins/greyhound/CMakeLists.txt
+++ b/plugins/greyhound/CMakeLists.txt
@@ -2,34 +2,32 @@
 # Greyhound plugin CMake configuration
 #
 
-find_package(JSONCPP)
-find_package(WEBSOCKETPP)
-if(JSONCPP_FOUND AND WEBSOCKETPP_FOUND)
-    # add JSONCPP stuff
-    include_directories(${JSONCPP_INCLUDE_DIR})
-    add_definitions(-DHAVE_JSONCPP=1)
+include_directories(${PDAL_JSONCPP_INCLUDE_DIR})
+add_definitions(-DHAVE_JSONCPP=1)
 
-    # add WEBSOCKETPP stuff
-    include_directories(${WEBSOCKETPP_INCLUDE_DIR})
-    add_definitions(-D_WEBSOCKETPP_NULLPTR_TOKEN_=0)
-    add_definitions(-D_WEBSOCKETPP_CPP11_RANDOM_DEVICE_=1)
-    add_definitions(-DHAVE_WEBSOCKETPP=1)
+set(srcs
+    io/CompressionStream.cpp
+    io/GreyhoundReader.cpp
+    io/bbox.cpp
+)
 
-    set(srcs
-        io/CompressionStream.cpp
-        io/Exchanges.cpp
-        io/GreyhoundReader.cpp
-        io/WebSocketClient.cpp
-    )
+set(incs
+    io/CompressionStream.hpp
+    io/GreyhoundReader.hpp
+    io/bbox.hpp
+    io/point.hpp
+)
 
-    set(incs
-        io/CompressionStream.hpp
-        io/Exchanges.hpp
-        io/GreyhoundReader.hpp
-        io/WebSocketClient.hpp
-    )
+PDAL_ADD_PLUGIN(libname reader greyhound
+    FILES "${srcs}" "${incs}"
+    LINK_WITH ${PDAL_JSONCPP_LIB_NAME})
 
-    PDAL_ADD_PLUGIN(libname reader greyhound
-        FILES "${srcs}" "${incs}"
-        LINK_WITH ${JSONCPP_LIBRARY})
-endif()
+set(srcs
+    test/GreyhoundReaderTest.cpp
+)
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+PDAL_ADD_TEST(greyhoundreadertest
+    FILES "${srcs}"
+    LINK_WITH ${libname} )
diff --git a/plugins/greyhound/io/Exchanges.cpp b/plugins/greyhound/io/Exchanges.cpp
deleted file mode 100644
index 3ae1916..0000000
--- a/plugins/greyhound/io/Exchanges.cpp
+++ /dev/null
@@ -1,424 +0,0 @@
-/******************************************************************************
-* Copyright (c) 2014, Connor Manning (connor at hobu.co)
-*
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following
-* conditions are met:
-*
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in
-*       the documentation and/or other materials provided
-*       with the distribution.
-*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
-*       names of its contributors may be used to endorse or promote
-*       products derived from this software without specific prior
-*       written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
-* OF SUCH DAMAGE.
-****************************************************************************/
-
-#include "Exchanges.hpp"
-
-namespace pdal
-{
-namespace exchanges
-{
-
-// Base Greyhound exchange
-
-Exchange::Exchange(const std::string& command)
-{
-    m_req["command"] = command;
-}
-
-bool Exchange::checkStatus() const
-{
-    bool valid(false);
-
-    if (res().size())
-    {
-        Json::Value jsonResponse;
-        Json::Reader jsonReader;
-        jsonReader.parse(res().at(0)->get_payload(), jsonResponse);
-
-        if (jsonResponse.isMember("status") &&
-            jsonResponse["status"].isIntegral() &&
-            jsonResponse["status"].asInt() == 1)
-        {
-            valid = true;
-        }
-    }
-
-    return valid;
-}
-
-
-
-// CreateSession exchange
-
-CreateSession::CreateSession(const std::string& pipelineId)
-    : Exchange("create")
-    , m_session()
-{
-    m_req["pipelineId"] = pipelineId;
-}
-
-bool CreateSession::check()
-{
-    bool valid(false);
-
-    if (checkStatus() && res().size() == 1)
-    {
-        Json::Value jsonResponse;
-        Json::Reader jsonReader;
-        jsonReader.parse(res().at(0)->get_payload(), jsonResponse);
-
-        if (jsonResponse.isMember("session") &&
-            jsonResponse["session"].isString())
-        {
-            m_session = jsonResponse["session"].asString();
-            valid = true;
-        }
-    }
-
-    return valid;
-}
-
-std::string CreateSession::getSession() const
-{
-    return m_session;
-}
-
-
-
-// GetNumPoints exchange
-
-GetNumPoints::GetNumPoints(const std::string& sessionId)
-    : Exchange("pointsCount")
-    , m_count()
-{
-    m_req["session"] = sessionId;
-}
-
-bool GetNumPoints::check()
-{
-    bool valid(false);
-
-    if (checkStatus() && res().size() == 1)
-    {
-        Json::Value jsonResponse;
-        Json::Reader jsonReader;
-        jsonReader.parse(res().at(0)->get_payload(), jsonResponse);
-
-        if (jsonResponse.isMember("count") &&
-            jsonResponse["count"].isIntegral())
-        {
-            m_count = jsonResponse["count"].asUInt();
-            valid = true;
-        }
-    }
-
-    return valid;
-}
-
-std::size_t GetNumPoints::count() const
-{
-    return m_count;
-}
-
-
-
-// GetSchema exchange
-
-GetSchema::GetSchema(const std::string& sessionId)
-    : Exchange("schema")
-    , m_dimData()
-{
-    m_req["session"] = sessionId;
-}
-
-bool GetSchema::check()
-{
-    bool valid(false);
-
-    if (checkStatus() && res().size() == 1)
-    {
-        Json::Value jsonResponse;
-        Json::Reader jsonReader;
-        jsonReader.parse(res().at(0)->get_payload(), jsonResponse);
-
-        if (jsonResponse.isMember("schema") &&
-            jsonResponse["schema"].isArray())
-        {
-            Json::Value jsonDimArray(jsonResponse["schema"]);
-
-            for (std::size_t i(0); i < jsonDimArray.size(); ++i)
-            {
-                const Json::Value& jsonDim(
-                        jsonDimArray[static_cast<Json::ArrayIndex>(i)]);
-
-                const Dimension::Id::Enum id(
-                        Dimension::id(jsonDim["name"].asString()));
-
-                const Dimension::Type::Enum type(
-                    static_cast<Dimension::Type::Enum>(
-                        static_cast<int>(Dimension::fromName(
-                            jsonDim["type"].asString())) |
-                        std::stoi(jsonDim["size"].asString())));
-
-                m_dimData.push_back(DimData(id, type));
-            }
-
-            valid = true;
-        }
-    }
-
-    return valid;
-}
-
-std::vector<DimData> GetSchema::schema() const
-{
-    return m_dimData;
-}
-
-
-
-// Read exchange
-
-Read::Read(
-        PointViewPtr view,
-        const PointLayoutPtr layout,
-        const std::string& sessionId,
-        bool compress,
-        int offset,
-        int count)
-    : Exchange("read")
-    , m_view(view)
-    , m_layout(layout)
-    , m_initialized(false)
-    , m_error(false)
-    , m_pointsToRead(0)
-    , m_numBytes(0)
-    , m_numBytesReceived(0)
-    , m_data()
-{
-    m_req["session"] = sessionId;
-    m_req["compress"] = compress;
-    m_req["start"] = offset;
-    if (count != -1) m_req["count"] = count;
-}
-
-bool Read::check()
-{
-    bool valid(false);
-
-    if (!m_error && checkStatus() && res().size() >= 1)
-    {
-        Json::Value jsonResponse;
-        Json::Reader jsonReader;
-        jsonReader.parse(res().at(0)->get_payload(), jsonResponse);
-
-        if (jsonResponse.isMember("numPoints") &&
-            jsonResponse["numPoints"].isIntegral() &&
-            jsonResponse.isMember("numBytes") &&
-            jsonResponse["numBytes"].isIntegral())
-        {
-            m_pointsToRead =
-                std::max<int>(jsonResponse["numPoints"].asInt(), 0);
-            m_numBytes =
-                std::max<int>(jsonResponse["numBytes"].asInt(), 0);
-
-            if (m_pointsToRead * m_layout->pointSize() != m_numBytes)
-            {
-                valid = false;
-                m_error = true;
-            }
-            else
-            {
-                valid = true;
-            }
-        }
-    }
-
-    return valid;
-}
-
-std::size_t Read::numRead() const
-{
-    return m_pointsToRead;
-}
-
-ReadUncompressed::ReadUncompressed(
-        PointViewPtr view,
-        const PointLayoutPtr layout,
-        const std::string& sessionId,
-        int offset,
-        int count)
-    : Read(view, layout, sessionId, false, offset, count)
-{ }
-
-bool ReadUncompressed::done()
-{
-    return (m_initialized && m_numBytesReceived >= m_numBytes) || m_error;
-}
-
-void ReadUncompressed::handleRx(const message_ptr message)
-{
-    if (!m_initialized)
-    {
-        m_initialized = check();
-        if (!m_initialized) m_error = true;
-    }
-    else
-    {
-        if (message->get_opcode() == websocketpp::frame::opcode::binary)
-        {
-            const std::string& bytes(message->get_payload());
-            const std::size_t rawNumBytes(bytes.size());
-            const std::size_t stride(m_layout->pointSize());
-
-            m_data.insert(m_data.end(), bytes.begin(), bytes.end());
-
-            const std::size_t wholePoints(m_data.size() / stride);
-
-            PointId nextId(m_view->size());
-            const PointId doneId(nextId + wholePoints);
-
-            const char* pos(m_data.data());
-
-            while (nextId < doneId)
-            {
-                for (const auto& dim : m_layout->dims())
-                {
-                    m_view->setField(
-                            dim,
-                            m_layout->dimType(dim),
-                            nextId,
-                            pos);
-
-                    pos += m_layout->dimSize(dim);
-                }
-
-                ++nextId;
-            }
-
-            m_numBytesReceived += rawNumBytes;
-            m_data.assign(
-                    m_data.begin() + wholePoints * stride,
-                    m_data.end());
-        }
-        else
-        {
-            m_error = true;
-        }
-    }
-}
-
-#ifdef PDAL_HAVE_LAZPERF
-ReadCompressed::ReadCompressed(
-        PointViewPtr view,
-        const PointLayoutPtr layout,
-        const std::string& sessionId,
-        int offset,
-        int count)
-    : Read(view, layout, sessionId, true, offset, count)
-    , m_decompressionThread()
-    , m_compressionStream()
-    , m_decompressor(m_compressionStream, layout->dimTypes())
-    , m_done(false)
-    , m_doneCv()
-    , m_doneMutex()
-    , m_mutex()
-{ }
-
-bool ReadCompressed::done()
-{
-    std::unique_lock<std::mutex> lock(m_doneMutex);
-    m_doneCv.wait(lock, [this]()->bool { return m_done; });
-    return true;
-}
-
-void ReadCompressed::handleRx(const message_ptr message)
-{
-    std::lock_guard<std::mutex> lock(m_mutex);
-    if (!m_initialized)
-    {
-        m_initialized = check();
-        if (!m_initialized) m_error = true;
-
-        m_data.resize(m_numBytes);
-
-        m_decompressionThread = std::thread([this]()->void {
-            m_decompressor.decompress(m_data.data(), m_data.size());
-
-            const char* pos(m_data.data());
-            for (PointId i(0); i < m_pointsToRead; ++i)
-            {
-                for (const auto& dim : m_layout->dims())
-                {
-                    m_view->setField(
-                            dim,
-                            m_layout->dimType(dim),
-                            i,
-                            pos);
-
-                    pos += m_layout->dimSize(dim);
-                }
-            }
-
-            m_done = true;
-            m_doneCv.notify_all();
-        });
-
-        m_decompressionThread.detach();
-    }
-    else
-    {
-        if (message->get_opcode() == websocketpp::frame::opcode::binary)
-        {
-            const std::string& bytes(message->get_payload());
-
-            m_compressionStream.putBytes(
-                    reinterpret_cast<const uint8_t*>(bytes.data()),
-                    bytes.size());
-        }
-        else
-        {
-            m_error = true;
-        }
-    }
-}
-#endif
-
-
-// Destroy exchange
-
-Destroy::Destroy(const std::string& sessionId)
-    : Exchange("destroy")
-{
-    m_req["session"] = sessionId;
-}
-
-bool Destroy::check()
-{
-    return checkStatus() && res().size() == 1;
-}
-
-} // namespace exchanges
-} // namespace pdal
-
diff --git a/plugins/greyhound/io/Exchanges.hpp b/plugins/greyhound/io/Exchanges.hpp
deleted file mode 100644
index d232ab6..0000000
--- a/plugins/greyhound/io/Exchanges.hpp
+++ /dev/null
@@ -1,196 +0,0 @@
-/******************************************************************************
-* Copyright (c) 2014, Connor Manning (connor at hobu.co)
-*
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following
-* conditions are met:
-*
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in
-*       the documentation and/or other materials provided
-*       with the distribution.
-*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
-*       names of its contributors may be used to endorse or promote
-*       products derived from this software without specific prior
-*       written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
-* OF SUCH DAMAGE.
-****************************************************************************/
-
-#pragma once
-
-#include <string>
-#include <vector>
-#include <mutex>
-#include <condition_variable>
-#include <thread>
-
-#include <pdal/Dimension.hpp>
-#include <pdal/Compression.hpp>
-
-#include "WebSocketClient.hpp"
-#include "GreyhoundReader.hpp"
-#include "CompressionStream.hpp"
-
-namespace pdal
-{
-namespace exchanges
-{
-
-struct DimData
-{
-    DimData(Dimension::Id::Enum id, Dimension::Type::Enum type)
-        : id(id)
-        , type(type)
-    { }
-
-    const Dimension::Id::Enum id;
-    const Dimension::Type::Enum type;
-};
-
-class Exchange : public WebSocketExchange
-{
-protected:
-    Exchange(const std::string& command);
-
-    bool checkStatus() const;
-};
-
-class CreateSession : public Exchange
-{
-public:
-    CreateSession(const std::string& pipelineId);
-
-    virtual bool check();
-
-    std::string getSession() const;
-
-private:
-    std::string m_session;
-};
-
-class GetNumPoints : public Exchange
-{
-public:
-    GetNumPoints(const std::string& sessionId);
-
-    virtual bool check();
-
-    std::size_t count() const;
-
-private:
-    std::size_t m_count;
-};
-
-class GetSchema : public Exchange
-{
-public:
-    GetSchema(const std::string& sessionId);
-
-    virtual bool check();
-
-
-    std::vector<DimData> schema() const;
-
-private:
-    std::vector<DimData> m_dimData;
-};
-
-class Read : public Exchange
-{
-public:
-    Read(
-            PointViewPtr view,
-            const PointLayoutPtr layout,
-            const std::string& sessionId,
-            bool compress,
-            int offset,
-            int count);
-
-    virtual bool check();
-    virtual bool done() = 0;
-    virtual void handleRx(const message_ptr message) = 0;
-
-    std::size_t numRead() const;
-
-protected:
-    PointViewPtr m_view;
-    const PointLayoutPtr m_layout;
-
-    bool m_initialized;
-    bool m_error;
-    std::size_t m_pointsToRead;
-    std::size_t m_numBytes;
-    std::size_t m_numBytesReceived;
-    std::vector<char> m_data;
-};
-
-class ReadUncompressed : public Read
-{
-public:
-    ReadUncompressed(
-            PointViewPtr view,
-            const PointLayoutPtr,
-            const std::string& sessionId,
-            int offset = 0,
-            int count = -1);
-
-    virtual bool done();
-    virtual void handleRx(const message_ptr message);
-};
-
-#ifdef PDAL_HAVE_LAZPERF
-class ReadCompressed : public Read
-{
-public:
-    ReadCompressed(
-            PointViewPtr view,
-            const PointLayoutPtr,
-            const std::string& sessionId,
-            int offset = 0,
-            int count = -1);
-
-    virtual bool done();
-    virtual void handleRx(const message_ptr message);
-
-private:
-    std::thread m_decompressionThread;
-
-    CompressionStream m_compressionStream;
-
-    LazPerfDecompressor<CompressionStream> m_decompressor;
-
-    bool m_done;
-    std::condition_variable m_doneCv;
-    std::mutex m_doneMutex;
-
-    std::mutex m_mutex;
-};
-#endif
-
-class Destroy: public Exchange
-{
-public:
-    Destroy(const std::string& sessionId);
-
-    virtual bool check();
-};
-
-} // namespace exchanges
-} // namespace pdal
-
diff --git a/plugins/greyhound/io/GreyhoundReader.cpp b/plugins/greyhound/io/GreyhoundReader.cpp
index ebe6433..2826b74 100644
--- a/plugins/greyhound/io/GreyhoundReader.cpp
+++ b/plugins/greyhound/io/GreyhoundReader.cpp
@@ -33,8 +33,11 @@
 ****************************************************************************/
 
 #include "GreyhoundReader.hpp"
-#include "Exchanges.hpp"
+#include "bbox.hpp"
+#include "dir.hpp"
 #include <pdal/pdal_macros.hpp>
+#include <pdal/Compression.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -51,78 +54,492 @@ std::string GreyhoundReader::getName() const { return s_info.name; }
 GreyhoundReader::GreyhoundReader()
     : Reader()
     , m_url()
-    , m_pipelineId()
-    , m_sessionId()
-    , m_wsClient()
+    , m_resource()
     , m_numPoints(0)
     , m_index(0)
+    , m_depthBegin(0)
+    , m_depthEnd(std::numeric_limits<uint32_t>::max())
+    , m_baseDepth(0)
+    , m_stopSplittingDepth(0)
+    , m_split(0)
+    , m_retryCount(1)
+    , m_timeout(0)
+    , m_splitCountThreshold(0)
 { }
 
 GreyhoundReader::~GreyhoundReader()
 {
-    // Tell Greyhound we're done using this session.
-    exchanges::Destroy destroyExchange(m_sessionId);
-    m_wsClient.exchange(destroyExchange);
 }
 
-void GreyhoundReader::initialize()
+DimTypeList GreyhoundReader::getSchema(const Json::Value& jsondata) const
 {
-    // Create remote PDAL session.
-    exchanges::CreateSession createExchange(m_pipelineId);
-    m_wsClient.exchange(createExchange);
-    m_sessionId = createExchange.getSession();
+    DimTypeList output;
+
+    if (jsondata.isMember("schema") &&
+        jsondata["schema"].isArray())
+    {
+        Json::Value jsonDimArray(jsondata["schema"]);
+
+        for (std::size_t i(0); i < jsonDimArray.size(); ++i)
+        {
+            const Json::Value& jsonDim(
+                    jsonDimArray[static_cast<Json::ArrayIndex>(i)]);
+
+            const Dimension::Id id(
+                    Dimension::id(jsonDim["name"].asString()));
+
+            const Dimension::Type type(
+                static_cast<Dimension::Type>(
+                    static_cast<int>(Dimension::fromName(
+                        jsonDim["type"].asString())) |
+                    std::stoi(jsonDim["size"].asString())));
+
+            DimType d;
+            d.m_id = id;
+            d.m_type = type;
+            output.push_back(d);
+        }
+    }
+
+    return output;
 }
+BOX3D GreyhoundReader::getBounds(const Json::Value& jsondata, const std::string& memberName) const
+{
+    BOX3D output;
+    if (jsondata.isMember(memberName) &&
+        jsondata[memberName].isArray())
+    {
+        Json::Value bounds(jsondata[memberName]);
 
-void GreyhoundReader::processOptions(const Options& options)
+        output.minx = bounds[0].asDouble();
+        output.miny = bounds[1].asDouble();
+        output.minz = bounds[2].asDouble();
+        output.maxx = bounds[3].asDouble();
+        output.maxy = bounds[4].asDouble();
+        output.maxz = bounds[5].asDouble();
+    }
+    else
+    {
+        throw pdal_error("Greyhound info response has no \"" + memberName + "\" member");
+    }
+
+    return output;
+}
+
+Json::Value GreyhoundReader::fetch(const std::string& url) const
 {
-    m_url = options.getValueOrThrow<std::string>("url");
-    m_pipelineId = options.getValueOrThrow<std::string>("pipeline_id");
+    Json::Value config;
+    if (log()->getLevel() > LogLevel::Debug4)
+        config["arbiter"]["verbose"] = true;
+    config["http"]["timeout"] = m_timeout;
+    arbiter::Arbiter a(config);
+    auto response = a.get(url);
+
+    Json::Value jsonResponse;
+    Json::Reader jsonReader;
+    jsonReader.parse(response, jsonResponse);
+
+    return jsonResponse;
 
-    m_wsClient.initialize(m_url);
 }
 
-void GreyhoundReader::addDimensions(PointLayoutPtr layout)
+
+void GreyhoundReader::initialize(PointTableRef table)
+{
+    std::string info_url = m_url + "/resource/" + m_resource + "/info";
+    log()->get(LogLevel::Info) << "fetching info URL " << info_url << std::endl;
+
+    m_resourceInfo = fetch(info_url);
+
+    m_dimData = getSchema(m_resourceInfo);
+    m_conformingBounds= getBounds(m_resourceInfo, "boundsConforming");
+    m_stopSplittingDepth = std::log(m_resourceInfo["numPoints"].asInt64()) / std::log(4);
+
+    std::string srs = m_resourceInfo["srs"].asString();
+    setSpatialReference(SpatialReference(srs));
+
+    m_baseDepth = m_resourceInfo["baseDepth"].asUInt();
+
+    PointLayoutPtr layout = table.layout();
+
+}
+
+pdal::greyhound::BBox makeBox(BOX3D bounds)
+{
+    pdal::greyhound::Point minimum;
+    pdal::greyhound::Point maximum;
+
+    minimum.x = bounds.minx;
+    minimum.y = bounds.miny;
+    minimum.z = bounds.minz;
+
+    maximum.x = bounds.maxx;
+    maximum.y = bounds.maxy;
+    maximum.z = bounds.maxz;
+    pdal::greyhound::BBox box(minimum, maximum, true);
+    return box;
+
+}
+BOX3D zoom(BOX3D query, BOX3D fullBox, int& split)
+{
+
+    pdal::greyhound::BBox queryBox = makeBox(query);
+    pdal::greyhound::BBox currentBox = makeBox(fullBox);
+
+    while (currentBox.contains(queryBox))
+    {
+        currentBox.go(pdal::greyhound::getDirection(queryBox.mid(), currentBox.mid()));
+        split++;
+    }
+
+    BOX3D output;
+    output.minx = currentBox.min().x; output.maxx = currentBox.max().x;
+    output.miny = currentBox.min().y; output.maxy = currentBox.max().y;
+    output.minz = currentBox.min().z; output.maxz = currentBox.max().z;
+
+    return output;
+}
+
+uint64_t sumHierarchy(const Json::Value& tree)
 {
-    // Get Greyhound schema.
-    exchanges::GetSchema schemaExchange(m_sessionId);
-    m_wsClient.exchange(schemaExchange);
+    uint64_t output(0);
+    if (!tree.isMember("n")) return output;
 
-    std::vector<exchanges::DimData> dimData = schemaExchange.schema();
+    output += tree["n"].asUInt64();
 
-    for (const auto& dim : dimData)
+    auto summarize = [tree](const std::string& name)
     {
-        layout->registerDim(dim.id, dim.type);
+        uint64_t output(0);
+        if (tree.isMember(name))
+        {
+            output += tree[name]["n"].asUInt64();
+            output += sumHierarchy(tree[name]);
+        }
+        return output;
+    };
+
+    output += summarize("nwu");
+    output += summarize("neu");
+    output += summarize("swu");
+    output += summarize("seu");
+    output += summarize("nwd");
+    output += summarize("ned");
+    output += summarize("swd");
+    output += summarize("sed");
+
+    return output;
+}
+
+
+QuickInfo GreyhoundReader::inspect()
+{
+    QuickInfo qi;
+    std::unique_ptr<PointLayout> layout(new PointLayout());
+
+    PointTable table;
+    initialize(table);
+    addDimensions(layout.get());
+
+    Dimension::IdList dims = layout->dims();
+    for (auto di = dims.begin(); di != dims.end(); ++di)
+        qi.m_dimNames.push_back(layout->dimName(*di));
+    qi.m_srs = getSpatialReference();
+    qi.m_valid = true;
+
+    int split(0);
+
+    BOX3D fullBounds = getBounds(m_resourceInfo, "bounds");
+    BOX3D currentBounds = zoom(m_queryBounds, fullBounds, split);
+    m_split = split;
+
+    uint32_t depthBegin = std::max(m_depthBegin, m_baseDepth + 1 + m_split);
+    uint32_t depthEnd = 28;
+
+    Json::Value response = fetchHierarchy(currentBounds, depthBegin, depthEnd);
+    uint64_t count = sumHierarchy(response);
+
+    qi.m_pointCount = count;
+    qi.m_bounds = getBounds(m_resourceInfo, "boundsConforming");
+
+    done(table);
+
+    return qi;
+}
+
+void GreyhoundReader::addArgs(ProgramArgs& args)
+{
+    args.add("url", "URL", m_url);
+    args.add("resource", "Resource ID", m_resource);
+    args.add("timeout", "Request timeout (milliseconds)", m_timeout, 60000u);
+    args.add("bounds", "Bounding cube", m_queryBounds);
+    args.add("depth_begin", "Beginning depth to query", m_depthBegin);
+    args.add("depth_end", "Ending depth to query", m_depthEnd);
+    args.add("retries", "How many times to retry", m_retryCount, 1u);
+    args.add("split_threshold", "Point count for which to start splitting queries", m_splitCountThreshold, (point_count_t)50000llu);
+}
+
+
+void GreyhoundReader::addDimensions(PointLayoutPtr layout)
+{
+    for (auto& dim: m_dimData)
+    {
+        layout->registerDim(dim.m_id, dim.m_type);
     }
+}
+
+
 
-    m_layout = layout;
+
+std::string stringifyBounds(BOX3D bounds)
+{
+    std::stringstream sbounds;
+    sbounds << std::fixed;
+    sbounds << "[" << bounds.minx << "," << bounds.miny << "," << bounds.minz;
+    sbounds << "," << bounds.maxx << "," << bounds.maxy << "," << bounds.maxz << "]";
+    return sbounds.str();
+}
+
+Json::Value GreyhoundReader::fetchHierarchy(BOX3D bounds, uint32_t depthBegin, uint32_t depthEnd)  const
+{
+
+    std::stringstream url;
+    url << m_url << "/resource/" << m_resource;
+    url << "/hierarchy?bounds=" << arbiter::http::sanitize(stringifyBounds(bounds));
+    url << "&depthBegin=" << depthBegin;
+    url << "&depthEnd=" << depthEnd;
+
+    log()->get(LogLevel::Info) << "fetching hierarchy URL " << url.str() << std::endl;
+
+    Json::Value response = fetch(url.str());
+    return response;
 }
 
 void GreyhoundReader::ready(PointTableRef)
 {
-    // Get number of points.
-    exchanges::GetNumPoints numPointsExchange(m_sessionId);
-    m_wsClient.exchange(numPointsExchange);
-    m_numPoints = numPointsExchange.count();
+
+
 }
 
+
+point_count_t GreyhoundReader::readDirection(const greyhound::BBox& currentBox,
+                                            const greyhound::BBox& queryBox,
+                                            uint32_t& depthBegin,
+                                            uint32_t& depthEnd,
+                                            point_count_t count,
+                                            PointViewPtr view,
+                                            const Json::Value& hierarchy)
+{
+
+    point_count_t output(0);
+    if (!currentBox.overlaps(queryBox))
+        return output;
+
+    using namespace pdal::greyhound;
+
+    auto makeDirBox = [](greyhound::BBox box, greyhound::Dir direction)
+    {
+        BBox dirBox = box.get(direction);
+        return dirBox;
+    };
+
+
+
+    if (currentBox.overlaps(queryBox))
+    {
+        BOX3D currentBounds;
+        currentBounds.minx = currentBox.min().x; currentBounds.maxx = currentBox.max().x;
+        currentBounds.miny = currentBox.min().y; currentBounds.maxy = currentBox.max().y;
+        currentBounds.minz = currentBox.min().z; currentBounds.maxz = currentBox.max().z;
+
+        Json::Value hierarchy = fetchHierarchy(currentBounds, depthBegin, depthEnd);
+        point_count_t belowUs = sumHierarchy(hierarchy);
+        point_count_t currentLevel(0);
+        if (hierarchy.isMember("n"))
+            currentLevel = hierarchy["n"].asUInt64();
+
+        if (belowUs  > m_splitCountThreshold )
+        {
+            Json::Value hierarchy = fetchHierarchy(currentBounds, depthBegin, depthEnd);
+            point_count_t belowUs = sumHierarchy(hierarchy);
+            if (hierarchy.isMember("swd"))
+                output += readDirection(makeDirBox(currentBox, Dir::swd), queryBox, depthBegin, depthEnd, count, view, hierarchy["swd"]);
+            if (hierarchy.isMember("sed"))
+                output += readDirection(makeDirBox(currentBox, Dir::sed), queryBox, depthBegin, depthEnd, count, view, hierarchy["sed"]);
+            if (hierarchy.isMember("nwd"))
+                output += readDirection(makeDirBox(currentBox, Dir::nwd), queryBox, depthBegin, depthEnd, count, view, hierarchy["nwd"]);
+            if (hierarchy.isMember("ned"))
+                output += readDirection(makeDirBox(currentBox, Dir::ned), queryBox, depthBegin, depthEnd, count, view, hierarchy["ned"]);
+            if (hierarchy.isMember("swu"))
+                output += readDirection(makeDirBox(currentBox, Dir::swu), queryBox, depthBegin, depthEnd, count, view, hierarchy["swu"]);
+            if (hierarchy.isMember("seu"))
+                output += readDirection(makeDirBox(currentBox, Dir::seu), queryBox, depthBegin, depthEnd, count, view, hierarchy["seu"]);
+            if (hierarchy.isMember("nwu"))
+                output += readDirection(makeDirBox(currentBox, Dir::nwu), queryBox, depthBegin, depthEnd, count, view, hierarchy["nwu"]);
+            if (hierarchy.isMember("neu"))
+                output += readDirection(makeDirBox(currentBox, Dir::neu), queryBox, depthBegin, depthEnd, count, view, hierarchy["neu"]);
+        }
+        else
+        {
+            if (belowUs)
+                output += this->readLevel(view, count, currentBounds, depthBegin, depthEnd);
+        }
+
+    }
+
+    return output;
+
+};
+
+
+
 point_count_t GreyhoundReader::read(
         PointViewPtr view,
         const point_count_t count)
 {
-    // Read data.
+    point_count_t output(0);
+    using namespace pdal::greyhound;
+
+    // if the base depth is greater than
+    // what the user gave use, we use that
+    // if it isn't, we use base depth + 1 (base depth has 0 points)
+//
+
+
+    int split(0);
+
+    BOX3D fullBounds = getBounds(m_resourceInfo, "bounds");
+    BOX3D currentBounds = zoom(m_queryBounds, fullBounds, split);
+    m_split = split;
+
+    uint32_t depthBegin = std::max(m_depthBegin, m_baseDepth + 1 + m_split);
+    uint32_t depthEnd = depthBegin + 1;
+
+    Json::Value hierarchy = fetchHierarchy(currentBounds, depthBegin, depthEnd);
+
+    point_count_t belowUs = sumHierarchy(hierarchy);
+    if (!belowUs)
+        return output;
+
+    BBox queryBox = makeBox(m_queryBounds);
+    BBox currentBox = makeBox(currentBounds);
+
+    while (depthEnd <= m_depthEnd)
+    {
+
+        if (depthEnd >= m_stopSplittingDepth)
+        {
+            depthEnd = m_depthEnd;
+        }
+        output += readDirection(currentBox, queryBox, depthBegin, depthEnd, count, view, hierarchy);
+        depthBegin++;
+        depthEnd = depthBegin + 1;
+    }
+
+    return output;
+
+}
+
+point_count_t GreyhoundReader::readLevel(
+        PointViewPtr view,
+        const point_count_t count,
+        BOX3D bounds,
+        uint32_t depthBegin,
+        uint32_t depthEnd)
+{
+
+
+    std::string bounds_str = stringifyBounds(bounds);
+    std::stringstream url;
+    url << m_url << "/resource/" << m_resource;
+    url << "/read?bounds=" << arbiter::http::sanitize(stringifyBounds(bounds));
+    url << "&depthBegin=" << depthBegin;
+    url << "&depthEnd=" << depthEnd;
+
 #ifdef PDAL_HAVE_LAZPERF
-    exchanges::ReadCompressed readExchange(
-#else
-    exchanges::ReadUncompressed readExchange(
+    url << "&compress=true";
 #endif
-            view,
-            m_layout,
-            m_sessionId,
-            m_index,
-            count);
 
-    m_wsClient.exchange(readExchange);
-    return readExchange.numRead();
+    log()->get(LogLevel::Info) << "fetching read URL " << url.str() << std::endl;
+
+    Json::Value config;
+    if (log()->getLevel() > LogLevel::Debug4)
+        config["arbiter"]["verbose"] = true;
+    config["http"]["timeout"] = 20000;
+    arbiter::Arbiter a(config);
+    uint32_t retries(0);
+    std::vector<char> response;
+    for (uint32_t i = 0; i <= m_retryCount; ++i)
+    {
+        try
+        {
+            response = a.getBinary(url.str());
+            break;
+        } catch (arbiter::ArbiterError&)
+        {
+            continue;
+        }
+    }
+
+    PointId nextId = view->size();
+    point_count_t numRead = 0;
+
+    log()->get(LogLevel::Info) << "Fetched "
+                               << response.size()
+                               << " bytes from "
+                               << m_url << std::endl;
+    if (!response.size())
+    {
+        return numRead;
+    }
+
+    const uint32_t numPoints = *reinterpret_cast<const uint32_t*>(response.data() + response.size() - sizeof(uint32_t));
+
+    log()->get(LogLevel::Info) << "Fetched "
+                               << response.size()
+                               << " bytes and "
+                               << numPoints << " points from"
+                               << m_url << std::endl;
+
+#ifdef PDAL_HAVE_LAZPERF
+    SignedLazPerfBuf buf(response);
+    LazPerfDecompressor<SignedLazPerfBuf> decompressor(buf, m_dimData);
+
+    std::vector<char> ptBuf(decompressor.pointSize());
+    while (numRead < numPoints)
+    {
+        char* outbuf = ptBuf.data();
+        point_count_t numWritten =
+            decompressor.decompress(outbuf, ptBuf.size());
+
+        double x(0.0); double y(0.0); double z(0.0);
+
+        for (auto di = m_dimData.begin(); di != m_dimData.end(); ++di)
+        {
+            view->setField(di->m_id, di->m_type, nextId, outbuf);
+            outbuf += Dimension::size(di->m_type);
+        }
+
+        x = view->getFieldAs<double>(Dimension::Id::X, nextId);
+        y = view->getFieldAs<double>(Dimension::Id::Y, nextId);
+        z = view->getFieldAs<double>(Dimension::Id::Z, nextId);
+
+        if (m_queryBounds.contains(x,y, z))
+        {
+            // overwrite this point id if we were not inside
+            // the box
+            nextId++;
+        }
+
+        numRead++;
+
+        if (m_cb)
+            m_cb(*view, nextId);
+    }
+#else
+
+    throw pdal_error("uncompressed not implemented!");
+#endif
+    return numRead;
 }
 
 bool GreyhoundReader::eof() const
@@ -130,5 +547,9 @@ bool GreyhoundReader::eof() const
     return m_index >= m_numPoints;
 }
 
+void GreyhoundReader::done(PointTableRef)
+{
+}
+
 } // namespace pdal
 
diff --git a/plugins/greyhound/io/GreyhoundReader.hpp b/plugins/greyhound/io/GreyhoundReader.hpp
index 722864a..227371e 100644
--- a/plugins/greyhound/io/GreyhoundReader.hpp
+++ b/plugins/greyhound/io/GreyhoundReader.hpp
@@ -36,14 +36,18 @@
 
 #include <pdal/Reader.hpp>
 #include <pdal/StageFactory.hpp>
+#include <pdal/util/Bounds.hpp>
+#include <arbiter.hpp>
 
-#include "WebSocketClient.hpp"
+#include "dir.hpp"
+#include "bbox.hpp"
 
 namespace pdal
 {
 
 class PDAL_DLL GreyhoundReader : public pdal::Reader
 {
+
 public:
     GreyhoundReader();
     ~GreyhoundReader();
@@ -54,19 +58,48 @@ public:
 
 private:
     std::string m_url;
-    std::string m_pipelineId;
+    std::string m_resource;
     std::string m_sessionId;
-    PointLayoutPtr m_layout;
-    WebSocketClient m_wsClient;
     point_count_t m_numPoints;
     point_count_t m_index;
+    BOX3D m_queryBounds;
+    BOX3D m_conformingBounds;
+//     BOX3D m_bounds;
+    uint32_t m_depthBegin;
+    uint32_t m_depthEnd;
+    uint32_t m_baseDepth;
+    uint32_t m_stopSplittingDepth;
+    uint32_t m_split;
+    uint32_t m_retryCount;
+    Json::Value m_resourceInfo;
+    uint32_t m_timeout;
+    point_count_t m_splitCountThreshold;
 
-    virtual void initialize();
-    virtual void processOptions(const Options& options);
+    virtual void initialize(PointTableRef table);
+    virtual void addArgs(ProgramArgs& args);
     virtual void addDimensions(PointLayoutPtr layout);
     virtual void ready(PointTableRef table);
     virtual point_count_t read(PointViewPtr view, point_count_t count);
     virtual bool eof() const;
+    virtual QuickInfo inspect();
+    virtual void done(PointTableRef table);
+
+    Json::Value fetch(const std::string& url) const;
+    DimTypeList getSchema(const Json::Value& jsondata) const;
+    BOX3D getBounds(const Json::Value& jsondata, const std::string& memberName) const;
+    point_count_t readLevel(PointViewPtr view, point_count_t count, BOX3D bounds, uint32_t readBegin, uint32_t readEnd);
+//     BOX3D zoom(BOX3D bounds, BOX3D fullBox, int& split) const;
+
+    Json::Value fetchHierarchy(BOX3D bounds, uint32_t depthBegin, uint32_t depthEnd)  const;
+
+    point_count_t readDirection(const greyhound::BBox& currentBox,
+                                            const greyhound::BBox& queryBox,
+                                            uint32_t& depthBegin,
+                                            uint32_t& depthEnd,
+                                            point_count_t count,
+                                            PointViewPtr view,
+                                            const Json::Value& hierarchy);
+    DimTypeList m_dimData;
 };
 
 } // namespace pdal
diff --git a/plugins/greyhound/io/WebSocketClient.cpp b/plugins/greyhound/io/WebSocketClient.cpp
deleted file mode 100644
index ecef27a..0000000
--- a/plugins/greyhound/io/WebSocketClient.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-/******************************************************************************
-* Copyright (c) 2014, Connor Manning (connor at hobu.co)
-*
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following
-* conditions are met:
-*
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in
-*       the documentation and/or other materials provided
-*       with the distribution.
-*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
-*       names of its contributors may be used to endorse or promote
-*       products derived from this software without specific prior
-*       written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
-* OF SUCH DAMAGE.
-****************************************************************************/
-
-#include <thread>
-
-#include "WebSocketClient.hpp"
-
-#include <websocketpp/config/asio_no_tls_client.hpp>
-#include <websocketpp/client.hpp>
-#include <pdal/pdal_types.hpp>
-
-namespace pdal
-{
-
-WebSocketClient::WebSocketClient(bool enableLogging)
-    : m_uri()
-    , m_client()
-    , m_jsonReader()
-    , m_cv()
-    , m_mutex()
-    , m_initialized(false)
-{
-    if (!enableLogging)
-    {
-        m_client.clear_access_channels(websocketpp::log::alevel::all);
-        m_client.clear_error_channels(websocketpp::log::elevel::all);
-    }
-
-    m_client.init_asio();
-}
-
-WebSocketClient::WebSocketClient(const std::string& uri, bool enableLogging)
-    : m_uri(uri)
-    , m_client()
-    , m_jsonReader()
-    , m_cv()
-    , m_mutex()
-    , m_initialized(true)
-{
-    if (!enableLogging)
-    {
-        m_client.clear_access_channels(websocketpp::log::alevel::all);
-        m_client.clear_error_channels(websocketpp::log::elevel::all);
-    }
-
-    m_client.init_asio();
-}
-
-void WebSocketClient::initialize(const std::string& uri)
-{
-    m_uri = uri;
-    m_initialized = true;
-}
-
-void WebSocketClient::exchange(WebSocketExchange& exchange)
-{
-    if (!m_initialized) return;
-
-    bool done(false);
-
-    std::thread t([this, &exchange, &done]()
-    {
-        m_client.set_open_handler(
-            [this, &exchange](websocketpp::connection_hdl hdl)
-        {
-            m_client.send(
-                    hdl,
-                    exchange.req().toStyledString(),
-                    websocketpp::frame::opcode::text);
-        });
-
-        m_client.set_message_handler(
-                [this, &exchange, &done](
-                    websocketpp::connection_hdl,
-                    message_ptr msg)
-        {
-            exchange.addResponse(msg);
-
-            std::thread tDone([this, &exchange, &done]() {
-                if (exchange.done())
-                {
-                    std::unique_lock<std::mutex> lock(this->m_mutex);
-                    done = true;
-                    lock.unlock();
-                    this->m_cv.notify_all();
-                }
-            });
-
-            tDone.detach();
-        });
-
-        websocketpp::lib::error_code ec;
-        m_client.reset();
-        m_client.connect(m_client.get_connection(m_uri, ec));
-        m_client.run();
-    });
-
-    t.detach();
-
-    std::unique_lock<std::mutex> lock(m_mutex);
-    m_cv.wait(lock, [&done]()->bool { return done; });
-
-    m_client.stop();
-
-    if (!exchange.check())
-    {
-        Json::Value jsonResponse;
-        Json::Reader jsonReader;
-        std::string message("Websocket exchange response validation failed");
-
-        if (exchange.res().size())
-        {
-            jsonReader.parse(
-                    exchange.res().at(0)->get_payload(),
-                    jsonResponse);
-
-            message += ":\n" + jsonResponse.toStyledString();
-
-            std::cout << message << std::endl;
-        }
-
-        throw new pdal::pdal_error(message);
-    }
-}
-
-} // namespace pdal
-
diff --git a/plugins/greyhound/io/WebSocketClient.hpp b/plugins/greyhound/io/WebSocketClient.hpp
deleted file mode 100644
index b645b6d..0000000
--- a/plugins/greyhound/io/WebSocketClient.hpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/******************************************************************************
-* Copyright (c) 2014, Connor Manning (connor at hobu.co)
-*
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following
-* conditions are met:
-*
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in
-*       the documentation and/or other materials provided
-*       with the distribution.
-*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
-*       names of its contributors may be used to endorse or promote
-*       products derived from this software without specific prior
-*       written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
-* OF SUCH DAMAGE.
-****************************************************************************/
-
-#pragma once
-
-#include <condition_variable>
-#include <mutex>
-
-#include <websocketpp/config/asio_no_tls_client.hpp>
-#include <websocketpp/client.hpp>
-
-#include <json/json.h>
-
-namespace pdal
-{
-
-typedef websocketpp::client<websocketpp::config::asio_client> asioClient;
-typedef websocketpp::config::asio_client::message_type::ptr message_ptr;
-
-class WebSocketExchange
-{
-public:
-    const Json::Value& req() const { return m_req; }
-    const std::vector<message_ptr>& res() const { return m_res; }
-    void addResponse(message_ptr message)
-    {
-        m_res.push_back(message);
-        handleRx(message);
-    }
-
-    virtual bool done() { return true; }
-    virtual bool check() { return true; }
-
-protected:
-    WebSocketExchange() : m_req(), m_res() { }
-    virtual void handleRx(const message_ptr) { }
-
-    Json::Value m_req;
-
-private:
-    std::vector<message_ptr> m_res;
-};
-
-class WebSocketClient
-{
-public:
-    WebSocketClient(bool enableLogging = false);
-    WebSocketClient(const std::string& uri, bool enableLogging = false);
-
-    void initialize(const std::string& uri);
-    void exchange(WebSocketExchange& exchange);
-
-private:
-    std::string m_uri;
-    asioClient m_client;
-    Json::Reader m_jsonReader;
-
-    std::condition_variable m_cv;
-    std::mutex m_mutex;
-
-    bool m_initialized;
-};
-
-} // namespace pdal
-
diff --git a/plugins/greyhound/io/bbox.cpp b/plugins/greyhound/io/bbox.cpp
new file mode 100644
index 0000000..91b0722
--- /dev/null
+++ b/plugins/greyhound/io/bbox.cpp
@@ -0,0 +1,318 @@
+/******************************************************************************
+* Copyright (c) 2016, Connor Manning (connor at hobu.co)
+*
+* Entwine -- Point cloud indexing
+*
+* Supporting libraries released under PDAL licensing by Hobu, inc.
+*
+******************************************************************************/
+
+#include "bbox.hpp"
+
+#include <cmath>
+#include <limits>
+#include <numeric>
+#include <iostream>
+
+#include "range.hpp"
+#include "point.hpp"
+
+namespace pdal { namespace greyhound {
+
+BBox::BBox() : m_min(), m_max(), m_mid(), m_is3d(false) { }
+
+BBox::BBox(const Point min, const Point max, const bool is3d)
+    : m_min(
+            std::min(min.x, max.x),
+            std::min(min.y, max.y),
+            std::min(min.z, max.z))
+    , m_max(
+            std::max(min.x, max.x),
+            std::max(min.y, max.y),
+            std::max(min.z, max.z))
+    , m_mid()
+    , m_is3d(is3d)
+{
+    setMid();
+    check(min, max);
+}
+
+BBox::BBox(const BBox& other)
+    : m_min(other.min())
+    , m_max(other.max())
+    , m_mid(other.m_mid)
+    , m_is3d(other.m_is3d)
+{ }
+
+BBox::BBox(const Json::Value& json)
+    : m_min()
+    , m_max()
+    , m_mid()
+    , m_is3d(true)
+{
+    if (!json.isArray() || (json.size() != 4 && json.size() != 6))
+    {
+        std::string what(
+                "Invalid JSON BBox specification: " + json.toStyledString());
+        throw std::runtime_error(what);
+    }
+
+    m_is3d = (json.size() == 6);
+
+    if (m_is3d)
+    {
+        m_min = Point(
+                json.get(Json::ArrayIndex(0), 0).asDouble(),
+                json.get(Json::ArrayIndex(1), 0).asDouble(),
+                json.get(Json::ArrayIndex(2), 0).asDouble());
+        m_max = Point(
+                json.get(Json::ArrayIndex(3), 0).asDouble(),
+                json.get(Json::ArrayIndex(4), 0).asDouble(),
+                json.get(Json::ArrayIndex(5), 0).asDouble());
+    }
+    else
+    {
+        m_min = Point(
+                json.get(Json::ArrayIndex(0), 0).asDouble(),
+                json.get(Json::ArrayIndex(1), 0).asDouble());
+        m_max = Point(
+                json.get(Json::ArrayIndex(2), 0).asDouble(),
+                json.get(Json::ArrayIndex(3), 0).asDouble());
+    }
+
+    check(m_min, m_max);
+    setMid();
+}
+
+void BBox::set(const BBox& other)
+{
+    m_min = other.m_min;
+    m_max = other.m_max;
+    m_mid = other.m_mid;
+    m_is3d = other.m_is3d;
+}
+
+void BBox::set(const Point& min, const Point& max, const bool is3d)
+{
+    m_min = min;
+    m_max = max;
+    m_is3d = is3d;
+    setMid();
+}
+
+bool BBox::overlaps(const BBox& other) const
+{
+    Point otherMid(other.mid());
+
+    return
+        std::abs(m_mid.x - otherMid.x) <
+            width() / 2.0  + other.width() / 2.0 &&
+        std::abs(m_mid.y - otherMid.y) <
+            depth() / 2.0 + other.depth() / 2.0 &&
+        (
+            !m_is3d ||
+            !other.m_is3d ||
+            std::abs(m_mid.z - otherMid.z) <
+                height() / 2.0 + other.height() / 2.0);
+}
+
+bool BBox::contains(const BBox& other, const bool force2d) const
+{
+    if (!force2d)
+    {
+        return m_min <= other.m_min && m_max >= other.m_max;
+    }
+    else
+    {
+        return
+            m_min.x <= other.m_min.x &&
+            m_min.y <= other.m_min.y &&
+            m_max.x >= other.m_min.x &&
+            m_max.y >= other.m_min.y;
+    }
+}
+
+bool BBox::contains(const Point& p) const
+{
+    return
+        p.x >= m_min.x && p.x < m_max.x &&
+        p.y >= m_min.y && p.y < m_max.y &&
+        (!m_is3d || (p.z >= m_min.z && p.z < m_max.z));
+
+}
+
+void BBox::goNwu()
+{
+    m_max.x = m_mid.x;
+    m_min.y = m_mid.y;
+    if (m_is3d) m_min.z = m_mid.z;
+    setMid();
+}
+
+void BBox::goNwd(const bool force2d)
+{
+    m_max.x = m_mid.x;
+    m_min.y = m_mid.y;
+    if (!force2d && m_is3d) m_max.z = m_mid.z;
+    setMid();
+}
+
+void BBox::goNeu()
+{
+    m_min.x = m_mid.x;
+    m_min.y = m_mid.y;
+    if (m_is3d) m_min.z = m_mid.z;
+    setMid();
+}
+
+void BBox::goNed(const bool force2d)
+{
+    m_min.x = m_mid.x;
+    m_min.y = m_mid.y;
+    if (!force2d && m_is3d) m_max.z = m_mid.z;
+    setMid();
+}
+
+void BBox::goSwu()
+{
+    m_max.x = m_mid.x;
+    m_max.y = m_mid.y;
+    if (m_is3d) m_min.z = m_mid.z;
+    setMid();
+}
+
+void BBox::goSwd(const bool force2d)
+{
+    m_max.x = m_mid.x;
+    m_max.y = m_mid.y;
+    if (!force2d && m_is3d) m_max.z = m_mid.z;
+    setMid();
+}
+
+void BBox::goSeu()
+{
+    m_min.x = m_mid.x;
+    m_max.y = m_mid.y;
+    if (m_is3d) m_min.z = m_mid.z;
+    setMid();
+}
+
+void BBox::goSed(const bool force2d)
+{
+    m_min.x = m_mid.x;
+    m_max.y = m_mid.y;
+    if (!force2d && m_is3d) m_max.z = m_mid.z;
+    setMid();
+}
+
+Json::Value BBox::toJson() const
+{
+    Json::Value json;
+
+    json.append(m_min.x);
+    json.append(m_min.y);
+    if (m_is3d) json.append(m_min.z);
+
+    json.append(m_max.x);
+    json.append(m_max.y);
+    if (m_is3d) json.append(m_max.z);
+
+    return json;
+}
+
+void BBox::check(const Point& min, const Point& max) const
+{
+    if (min.x > max.x || min.y > max.y || min.z > max.z)
+    {
+        std::cout << "Correcting malformed BBox" << std::endl;
+    }
+}
+
+void BBox::setMid()
+{
+    m_mid.x = m_min.x + (m_max.x - m_min.x) / 2.0;
+    m_mid.y = m_min.y + (m_max.y - m_min.y) / 2.0;
+    /* if (m_is3d) */ m_mid.z = m_min.z + (m_max.z - m_min.z) / 2.0;
+}
+
+void BBox::grow(const BBox& other)
+{
+    grow(other.min());
+    grow(other.max());
+}
+
+void BBox::grow(const Point& p)
+{
+    m_min.x = std::min(m_min.x, p.x);
+    m_min.y = std::min(m_min.y, p.y);
+    m_min.z = std::min(m_min.z, p.z);
+    m_max.x = std::max(m_max.x, p.x);
+    m_max.y = std::max(m_max.y, p.y);
+    m_max.z = std::max(m_max.z, p.z);
+    setMid();
+}
+
+void BBox::growZ(const Range& range)
+{
+    m_min.z = std::min(m_min.z, range.min);
+    m_max.z = std::max(m_max.z, range.max);
+    m_mid.z = m_min.z + (m_max.z - m_min.z) / 2.0;
+}
+
+void BBox::growBy(double ratio)
+{
+    const Point delta(
+            (m_max.x - m_mid.x) * ratio,
+            (m_max.y - m_mid.y) * ratio,
+            (m_max.z - m_mid.z) * ratio);
+
+    m_min -= delta;
+    m_max += delta;
+}
+
+std::vector<BBox> BBox::explode() const
+{
+    return std::vector<BBox> {
+        getNwd(true), getNed(true), getSwd(true), getSed(true)
+    };
+}
+
+std::vector<BBox> BBox::explode(std::size_t delta) const
+{
+    std::vector<BBox> result { *this };
+
+    for (std::size_t i(0); i < delta; ++i)
+    {
+        result = std::accumulate(
+                result.begin(),
+                result.end(),
+                std::vector<BBox>(),
+                [](const std::vector<BBox>& in, const BBox& b)
+                {
+                    auto out(in);
+                    auto next(b.explode());
+                    out.insert(out.end(), next.begin(), next.end());
+                    return out;
+                });
+    }
+
+    return result;
+}
+
+std::ostream& operator<<(std::ostream& os, const BBox& bbox)
+{
+    auto flags(os.flags());
+    auto precision(os.precision());
+
+    os << std::setprecision(2) << std::fixed;
+
+    os << "[" << bbox.min() << ", " << bbox.max() << "]";
+
+    os << std::setprecision(precision);
+    os.flags(flags);
+
+    return os;
+}
+
+} // namespace greyhound
+} // namepace pdal
diff --git a/plugins/greyhound/io/bbox.hpp b/plugins/greyhound/io/bbox.hpp
new file mode 100644
index 0000000..6c8a6f1
--- /dev/null
+++ b/plugins/greyhound/io/bbox.hpp
@@ -0,0 +1,217 @@
+/******************************************************************************
+* Copyright (c) 2016, Connor Manning (connor at hobu.co)
+*
+* Entwine -- Point cloud indexing
+*
+* Supporting libraries released under PDAL licensing by Hobu, inc.
+*
+******************************************************************************/
+
+#pragma once
+
+#include "dir.hpp"
+#include "point.hpp"
+#include <json/json.h>
+
+
+namespace pdal { namespace greyhound {
+
+class Range;
+
+class BBox
+{
+public:
+    BBox();
+    BBox(Point min, Point max, bool is3d);
+    BBox(const BBox& other);
+    BBox(const Json::Value& json);
+
+    void set(const BBox& other);
+    void set(const Point& min, const Point& max, bool is3d);
+
+    const Point& min() const { return m_min; }
+    const Point& max() const { return m_max; }
+    const Point& mid() const { return m_mid; }
+
+    // Returns true if this BBox shares any area in common with another.
+    bool overlaps(const BBox& other) const;
+
+    // Returns true if the requested BBox is contained within this BBox.
+    bool contains(const BBox& other, bool force2d = false) const;
+
+    // Returns true if the requested point is contained within this BBox.
+    bool contains(const Point& p) const;
+
+    double width()  const { return m_max.x - m_min.x; } // Length in X.
+    double depth()  const { return m_max.y - m_min.y; } // Length in Y.
+    double height() const { return m_max.z - m_min.z; } // Length in Z.
+
+    double area() const { return width() * depth(); }
+    double volume() const { return width() * depth() * height(); }
+
+    void goNwu();
+    void goNwd(bool force2d = false);
+    void goNeu();
+    void goNed(bool force2d = false);
+    void goSwu();
+    void goSwd(bool force2d = false);
+    void goSeu();
+    void goSed(bool force2d = false);
+
+    BBox getNwd(bool force2d = false) const
+    {
+        BBox b(*this); b.goNwd(force2d); return b;
+    }
+
+    BBox getNed(bool force2d = false) const
+    {
+        BBox b(*this); b.goNed(force2d); return b;
+    }
+
+    BBox getSwd(bool force2d = false) const
+    {
+        BBox b(*this); b.goSwd(force2d); return b;
+    }
+
+    BBox getSed(bool force2d = false) const
+    {
+        BBox b(*this); b.goSed(force2d); return b;
+    }
+
+    BBox getNwu() const { BBox b(*this); b.goNwu(); return b; }
+    BBox getNeu() const { BBox b(*this); b.goNeu(); return b; }
+    BBox getSwu() const { BBox b(*this); b.goSwu(); return b; }
+    BBox getSeu() const { BBox b(*this); b.goSeu(); return b; }
+
+    void go(Dir dir, bool force2d = false)
+    {
+        if (force2d) dir = toDir(toIntegral(dir) % 4);
+
+        switch (dir)
+        {
+            case Dir::swd: goSwd(force2d); break;
+            case Dir::sed: goSed(force2d); break;
+            case Dir::nwd: goNwd(force2d); break;
+            case Dir::ned: goNed(force2d); break;
+            case Dir::swu: goSwu(); break;
+            case Dir::seu: goSeu(); break;
+            case Dir::nwu: goNwu(); break;
+            case Dir::neu: goNeu(); break;
+        }
+    }
+
+    BBox get(Dir dir) const
+    {
+        switch (dir)
+        {
+            case Dir::swd: return getSwd(); break;
+            case Dir::sed: return getSed(); break;
+            case Dir::nwd: return getNwd(); break;
+            case Dir::ned: return getNed(); break;
+            case Dir::swu: return getSwu(); break;
+            case Dir::seu: return getSeu(); break;
+            case Dir::nwu: return getNwu(); break;
+            case Dir::neu: return getNeu(); break;
+        }
+
+        throw std::runtime_error(
+                "Invalid Dir to BBox::get: " +
+                std::to_string(static_cast<int>(dir)));
+    }
+
+    bool exists() const { return Point::exists(m_min) && Point::exists(m_max); }
+    bool is3d() const { return m_is3d; }
+
+    Json::Value toJson() const;
+
+    void grow(const BBox& bbox);
+    void grow(const Point& p);
+    void growZ(const Range& range);
+
+    bool isCubic() const
+    {
+        return width() == depth() && (!m_is3d || width() == height());
+    }
+
+    // Bloat all coordinates necessary to form a cube and also to the nearest
+    // integer.
+    void cubeify()
+    {
+        const double xDist(m_max.x - m_min.x);
+        const double yDist(m_max.y - m_min.y);
+        const double zDist(m_max.z - m_min.z);
+
+        const double radius(
+                std::ceil(std::max(std::max(xDist, yDist), zDist) / 2.0 + 10));
+
+        m_min.x = std::floor(m_mid.x) - radius;
+        m_min.y = std::floor(m_mid.y) - radius;
+        m_min.z = std::floor(m_mid.z) - radius;
+
+        m_max.x = std::floor(m_mid.x) + radius;
+        m_max.y = std::floor(m_mid.y) + radius;
+        m_max.z = std::floor(m_mid.z) + radius;
+
+        setMid();
+    }
+
+    void growBy(double ratio);
+
+    std::vector<BBox> explode() const;
+    std::vector<BBox> explode(std::size_t delta) const;
+
+private:
+    Point m_min;
+    Point m_max;
+    Point m_mid;
+
+    bool m_is3d;
+
+    void setMid();
+
+    void check(const Point& min, const Point& max) const;
+};
+
+inline Point& operator+=(Point& lhs, const Point& rhs)
+{
+    lhs.x += rhs.x;
+    lhs.y += rhs.y;
+    lhs.z += rhs.z;
+    return lhs;
+}
+
+inline Point& operator-=(Point& lhs, const Point& rhs)
+{
+    lhs.x -= rhs.x;
+    lhs.y -= rhs.y;
+    lhs.z -= rhs.z;
+    return lhs;
+}
+
+std::ostream& operator<<(std::ostream& os, const BBox& bbox);
+
+// Orders BBoxes by their midpoint.  This is really only useful if the boxes
+// are arranged in a grid and are of equal size (like during a MetaQuery).
+inline bool operator<(const BBox& lhs, const BBox& rhs)
+{
+    const auto& lhsMid(lhs.mid());
+    const auto& rhsMid(rhs.mid());
+
+    return
+        (lhsMid.x < rhsMid.x) ||
+        (lhsMid.x == rhsMid.x && lhsMid.y < rhsMid.y) ||
+        (lhsMid.x == rhsMid.x && lhsMid.y == rhsMid.y && lhsMid.z < rhsMid.z);
+}
+
+inline bool operator==(const BBox& lhs, const BBox& rhs)
+{
+    return lhs.min() == rhs.min() && lhs.max() == rhs.max();
+}
+
+inline bool operator!=(const BBox& lhs, const BBox& rhs)
+{
+    return !(lhs == rhs);
+}
+
+} // namespace greyhound
+} // namespace pdal
diff --git a/plugins/greyhound/io/dir.hpp b/plugins/greyhound/io/dir.hpp
new file mode 100644
index 0000000..e1ec0ee
--- /dev/null
+++ b/plugins/greyhound/io/dir.hpp
@@ -0,0 +1,73 @@
+/******************************************************************************
+* Copyright (c) 2016, Connor Manning (connor at hobu.co)
+*
+* Entwine -- Point cloud indexing
+*
+* Supporting libraries released under PDAL licensing by Hobu, inc.
+*
+******************************************************************************/
+
+#pragma once
+
+#include "point.hpp"
+
+namespace pdal { namespace greyhound {
+
+enum class Dir
+{
+    swd = 0,
+    sed = 1,
+    nwd = 2,
+    ned = 3,
+    swu = 4,
+    seu = 5,
+    nwu = 6,
+    neu = 7
+};
+
+// Get the direction of point P in relation to an origin O.
+inline Dir getDirection(const Point& p, const Point& o)
+{
+    return static_cast<Dir>(
+            (p.y >= o.y ? 2 : 0) +  // North? +2.
+            (p.x >= o.x ? 1 : 0) +  // East? +1.
+            (p.z >= o.z ? 4 : 0));  // Up? +4.
+}
+
+inline std::string dirToString(Dir dir)
+{
+    switch (dir)
+    {
+        case Dir::swd: return "swd"; break;
+        case Dir::sed: return "sed"; break;
+        case Dir::nwd: return "nwd"; break;
+        case Dir::ned: return "ned"; break;
+        case Dir::swu: return "swu"; break;
+        case Dir::seu: return "seu"; break;
+        case Dir::nwu: return "nwu"; break;
+        case Dir::neu: return "neu"; break;
+    }
+
+    throw std::runtime_error("Cannot convert invalid Dir to string");
+}
+
+inline Dir stringToDir(const std::string& s)
+{
+    return static_cast<Dir>(
+            (s[0] == 'n' ? 2 : 0) + // North? + 2.
+            (s[1] == 'e' ? 1 : 0) + // East? +1.
+            (s[2] == 'u' ? 4 : 0)); // Up? +4.
+}
+
+inline std::size_t toIntegral(Dir dir)
+{
+    return static_cast<std::size_t>(dir);
+}
+
+inline Dir toDir(std::size_t val)
+{
+    return static_cast<Dir>(val);
+}
+
+} // namespace entwine
+} // namespace pdal
diff --git a/plugins/greyhound/io/point.hpp b/plugins/greyhound/io/point.hpp
new file mode 100644
index 0000000..6aae11a
--- /dev/null
+++ b/plugins/greyhound/io/point.hpp
@@ -0,0 +1,128 @@
+/******************************************************************************
+* Copyright (c) 2016, Connor Manning (connor at hobu.co)
+*
+* Entwine -- Point cloud indexing
+*
+* Supporting libraries released under PDAL licensing by Hobu, inc.
+*
+******************************************************************************/
+
+#pragma once
+
+#include <cmath>
+#include <iomanip>
+#include <limits>
+#include <ostream>
+
+namespace pdal { namespace greyhound {
+
+class Point
+{
+public:
+    Point() noexcept
+        : x(Point::emptyCoord())
+        , y(Point::emptyCoord())
+        , z(Point::emptyCoord())
+    { }
+
+    Point(double x, double y) noexcept : x(x), y(y), z(Point::emptyCoord()) { }
+    Point(double x, double y, double z) noexcept : x(x), y(y), z(z) { }
+
+    double sqDist2d(const Point& other) const
+    {
+        const double xDelta(x - other.x);
+        const double yDelta(y - other.y);
+
+        return xDelta * xDelta + yDelta * yDelta;
+    }
+
+    // Calculates the distance-squared to another point.
+    double sqDist3d(const Point& other) const
+    {
+        const double zDelta(z - other.z);
+        return sqDist2d(other) + zDelta * zDelta;
+    }
+
+    static bool exists(Point p)
+    {
+        return
+            p.x != Point::emptyCoord() ||
+            p.y != Point::emptyCoord() ||
+            p.z != Point::emptyCoord();
+    }
+
+    static bool exists(double x, double y, double z)
+    {
+        return exists(Point(x, y, z));
+    }
+
+    static double emptyCoord()
+    {
+        return 0;
+    }
+
+    double x;
+    double y;
+    double z;
+};
+
+inline bool operator<(const Point& lhs, const Point& rhs)
+{
+    return lhs.x < rhs.x && lhs.y < rhs.y && lhs.z < rhs.z;
+}
+
+inline bool operator<=(const Point& lhs, const Point& rhs)
+{
+    return lhs.x <= rhs.x && lhs.y <= rhs.y && lhs.z <= rhs.z;
+}
+
+inline bool operator>(const Point& lhs, const Point& rhs)
+{
+    return lhs.x > rhs.x && lhs.y > rhs.y && lhs.z > rhs.z;
+}
+
+inline bool operator>=(const Point& lhs, const Point& rhs)
+{
+    return lhs.x >= rhs.x && lhs.y >= rhs.y && lhs.z >= rhs.z;
+}
+
+inline bool operator==(const Point& lhs, const Point& rhs)
+{
+    return lhs.x == rhs.x && lhs.y == rhs.y && lhs.z == rhs.z;
+}
+
+inline Point operator+(const Point& in, double offset)
+{
+    return Point(in.x + offset, in.y + offset, in.z + offset);
+}
+
+inline Point operator-(const Point& in, double offset)
+{
+    return in + (-offset);
+}
+
+inline std::ostream& operator<<(std::ostream& os, const Point& point)
+{
+    auto flags(os.flags());
+    auto precision(os.precision());
+
+    os << std::setprecision(2) << std::fixed;
+
+    os << "(" << point.x << ", " << point.y;
+    if (
+            point.z != Point::emptyCoord() &&
+            point.z != std::numeric_limits<double>::max() &&
+            point.z != std::numeric_limits<double>::lowest())
+    {
+        os << ", " << point.z;
+    }
+    os << ")";
+
+    os << std::setprecision(precision);
+    os.flags(flags);
+
+    return os;
+}
+
+} // namespace greyhound
+} // namepsace pdal
diff --git a/plugins/greyhound/io/range.hpp b/plugins/greyhound/io/range.hpp
new file mode 100644
index 0000000..a8e1209
--- /dev/null
+++ b/plugins/greyhound/io/range.hpp
@@ -0,0 +1,37 @@
+/******************************************************************************
+* Copyright (c) 2016, Connor Manning (connor at hobu.co)
+*
+* Entwine -- Point cloud indexing
+*
+* Supporting libraries released under PDAL licensing by Hobu, inc.
+*
+******************************************************************************/
+
+#pragma once
+
+#include <limits>
+
+namespace pdal { namespace greyhound {
+
+class Range
+{
+public:
+    Range()
+        : min(std::numeric_limits<double>::max())
+        , max(std::numeric_limits<double>::lowest())
+    { }
+
+    Range(double min, double max) : min(min), max(max) { }
+
+    void grow(double val)
+    {
+        min = std::min(min, val);
+        max = std::max(max, val);
+    }
+
+    double min;
+    double max;
+};
+
+} // namespace entwine
+} // namepsace pdal
diff --git a/plugins/greyhound/test/GreyhoundReaderTest.cpp b/plugins/greyhound/test/GreyhoundReaderTest.cpp
new file mode 100644
index 0000000..38bb415
--- /dev/null
+++ b/plugins/greyhound/test/GreyhoundReaderTest.cpp
@@ -0,0 +1,144 @@
+/******************************************************************************
+* Copyright (c) 2016, Howard Butler (howard at hobu.co)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include <pdal/pdal_test_main.hpp>
+
+#include <pdal/Writer.hpp>
+#include <pdal/StageFactory.hpp>
+#include <pdal/util/Algorithm.hpp>
+
+#include "Support.hpp"
+#include "../io/GreyhoundReader.hpp"
+
+using namespace pdal;
+
+namespace { // anonymous
+
+std::string ROOT_URL("http://data.greyhound.io");
+
+Options getGreyhoundOptions()
+{
+    Options options;
+
+    options.add(Option("url", ROOT_URL));
+
+    // Grab just the stadium area
+    options.add(Option("bounds", "([638404.60,638895.46],[852818.85,853379.15], [-1,1000])"));
+    options.add(Option("resource", "autzen-h"));
+    options.add(Option("depth_begin", 1));
+    options.add(Option("depth_end", 20));
+    options.add(Option("timeout", 50000));
+    options.add(Option("debug", true));
+    options.add(Option("verbose", 8));
+
+    return options;
+}
+
+}
+
+class GreyhoundReaderTest : public testing::Test
+{
+public:
+    GreyhoundReaderTest() : m_bSkipTests(true) {};
+protected:
+    virtual void SetUp()
+    {
+        arbiter::Arbiter a;
+        try
+        {
+//             a.get(ROOT_URL+"/resource/nyc-h/info");
+//             m_bSkipTests = false;
+        } catch (arbiter::ArbiterError&)
+        {
+            m_bSkipTests = true;
+        }
+    }
+
+
+    virtual void TearDown()
+    {
+    }
+
+    bool shouldSkipTests() const { return m_bSkipTests; }
+private:
+
+    bool m_bSkipTests;
+};
+
+
+TEST_F(GreyhoundReaderTest, read)
+{
+    if (shouldSkipTests())
+    {
+        return;
+    }
+
+    pdal::GreyhoundReader reader;
+
+    reader.setOptions(getGreyhoundOptions());
+    pdal::PointTable table;
+    reader.prepare(table);
+    PointViewSet viewSet = reader.execute(table);
+    PointViewPtr view = *viewSet.begin();
+    EXPECT_EQ(view->size(), 13874u);
+//
+    int position (10);
+    EXPECT_DOUBLE_EQ(view->getFieldAs<double>(pdal::Dimension::Id::X, position), 637472.70000000007);
+
+}
+
+TEST_F(GreyhoundReaderTest, quick)
+{
+    if (shouldSkipTests())
+    {
+        return;
+    }
+
+    pdal::GreyhoundReader reader;
+
+    reader.setOptions(getGreyhoundOptions());
+    pdal::QuickInfo qi = reader.preview();
+    EXPECT_EQ(qi.m_pointCount, 5183374u);
+
+    BOX3D bounds = qi.m_bounds;
+    EXPECT_DOUBLE_EQ(bounds.minx, 635577.79000000004);
+    EXPECT_DOUBLE_EQ(bounds.miny, 848882.15000000002);
+    EXPECT_DOUBLE_EQ(bounds.minz, 406.13999999999999);
+    EXPECT_DOUBLE_EQ(bounds.maxx, 639003.72999999998);
+    EXPECT_DOUBLE_EQ(bounds.maxy, 853537.66000000003);
+    EXPECT_DOUBLE_EQ(bounds.maxz, 615.25999999999999);
+
+
+}
+
diff --git a/plugins/hexbin/CMakeLists.txt b/plugins/hexbin/CMakeLists.txt
index 0eba7c1..02b9dfc 100644
--- a/plugins/hexbin/CMakeLists.txt
+++ b/plugins/hexbin/CMakeLists.txt
@@ -4,7 +4,7 @@
 
 include_directories(${ROOT_DIR}/vendor/pdalboost)
 
-find_package(Hexer)
+find_package(Hexer REQUIRED)
 if (HEXER_FOUND)
     include_directories(${HEXER_INCLUDE_DIR})
     add_definitions(-DHAVE_HEXER=1)
diff --git a/plugins/hexbin/filters/HexBin.cpp b/plugins/hexbin/filters/HexBin.cpp
index 39140b0..63c77be 100644
--- a/plugins/hexbin/filters/HexBin.cpp
+++ b/plugins/hexbin/filters/HexBin.cpp
@@ -51,17 +51,19 @@ static PluginInfo const s_info = PluginInfo(
 
 CREATE_SHARED_PLUGIN(1, 0, HexBin, Filter, s_info)
 
-void HexBin::processOptions(const Options& options)
+void HexBin::addArgs(ProgramArgs& args)
 {
-    m_sampleSize = options.getValueOrDefault<uint32_t>("sample_size", 5000);
-    m_density = options.getValueOrDefault<uint32_t>("threshold", 15);
-    m_outputTesselation = options.getValueOrDefault<bool>("output_tesselation", false);
-
-    if (options.hasOption("edge_length"))
-        m_edgeLength = options.getValueOrDefault<double>("edge_length", 0.0);
-    else
-        // Backward compatability.
-        m_edgeLength = options.getValueOrDefault<double>("edge_size", 0.0);
+    args.add("sample_size", "Sample size for auto-edge length calculation",
+        m_sampleSize, 5000U);
+    args.add("threshold", "Required cell density", m_density, 15);
+    args.add("output_tesselation", "Write tesselation to output metadata",
+        m_outputTesselation);
+    args.add("edge_size", "Synonym for 'edge_length' (deprecated)",
+        m_edgeLength);
+    args.add("edge_length", "Length of hex edge", m_edgeLength);
+    args.add("precision", "Output precision", m_precision, 8U);
+    m_cullArg = &args.add("hole_cull_area_tolerance", "Tolerance area to "
+        "apply to holes before cull", m_cullArea);
 }
 
 
@@ -120,10 +122,9 @@ void HexBin::done(PointTableRef table)
     m_metadata.add("hex_offsets", offsets.str(), "Offset of hex corners from "
         "hex centers.");
 
-    uint32_t precision  = m_options.getValueOrDefault<uint32_t>("precision", 8);
     std::ostringstream polygon;
     polygon.setf(std::ios_base::fixed, std::ios_base::floatfield);
-    polygon.precision(precision);
+    polygon.precision(m_precision);
     m_grid->toWKT(polygon);
 
     if (m_outputTesselation)
@@ -165,9 +166,7 @@ void HexBin::done(PointTableRef table)
     ***/
     double tolerance = 1.1 * m_grid->height() / 2;
 
-    double cull =
-        m_options.getValueOrDefault<double>("hole_cull_area_tolerance",
-            6 * tolerance * tolerance);
+    double cull = m_cullArg->set() ? m_cullArea : (6 * tolerance * tolerance);
 
     SpatialReference srs(table.anySpatialReference());
     pdal::Polygon p(polygon.str(), srs);
@@ -185,13 +184,9 @@ void HexBin::done(PointTableRef table)
         {
 
             std::ostringstream z;
-            if (zone > 0)
-            {
-                z << "EPSG:269" << zone;
-            } else
-            {
-                z << "EPSG:327" << zone;
-            }
+
+            // Use WGS84 UTM zones
+            z << "EPSG:327" << abs(zone);
             return z.str();
         };
 
@@ -199,15 +194,37 @@ void HexBin::done(PointTableRef table)
         density_p = p.transform(utm);
     }
     pdal::Polygon smooth = p.simplify(tolerance, cull);
-    std::string smooth_text = smooth.wkt(precision);
+    std::string smooth_text = smooth.wkt(m_precision);
 
     m_metadata.add("boundary", smooth_text, "Approximated MULTIPOLYGON of domain");
     double area = density_p.area();
 
 //    double density = (double) m_grid->densePointCount() / area ;
     double density = (double) m_count/ area ;
-    m_metadata.add("density", density, "Number of points per square unit");
+    m_metadata.add("density", density, "Number of points per square unit (total area)");
     m_metadata.add("area", area, "Area in square units of tessellated polygon");
+
+    double moving_avg(0.0);
+    double avg_count(0.0);
+
+    double hex_area(((3 * SQRT_3)/2.0) * (m_grid->height() * m_grid->height()));
+    int n(0);
+    point_count_t totalCount(0);
+    double totalArea(0.0);
+    for (HexIter hi = m_grid->hexBegin(); hi != m_grid->hexEnd(); ++hi)
+    {
+        HexInfo h = *hi;
+        totalCount += h.density();
+        totalArea += hex_area;
+        ++n;
+    }
+
+    double avg_density = totalArea /(double) totalCount;
+    m_metadata.add("avg_pt_per_sq_unit", avg_density, "Number of points per square unit (tessellated area within inclusions)");
+
+    double avg_spacing = std::sqrt(1/density);
+    m_metadata.add("avg_pt_spacing", avg_spacing, "Avg point spacing (x/y units)");
+
 }
 
 } // namespace pdal
diff --git a/plugins/hexbin/filters/HexBin.hpp b/plugins/hexbin/filters/HexBin.hpp
index 1668ce8..7258831 100644
--- a/plugins/hexbin/filters/HexBin.hpp
+++ b/plugins/hexbin/filters/HexBin.hpp
@@ -35,6 +35,7 @@
 #pragma once
 
 #include <pdal/Filter.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <hexer/Mathpair.hpp>
 #include <hexer/HexGrid.hpp>
@@ -59,13 +60,16 @@ private:
     std::unique_ptr<hexer::HexGrid> m_grid;
     std::string m_xDimName;
     std::string m_yDimName;
+    uint32_t m_precision;
     uint32_t m_sampleSize;
+    double m_cullArea;
+    Arg *m_cullArg;
     int32_t m_density;
     double m_edgeLength;
     bool m_outputTesselation;
     point_count_t m_count;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual void ready(PointTableRef table);
     virtual void filter(PointView& view);
     virtual void done(PointTableRef table);
diff --git a/plugins/hexbin/kernel/DensityKernel.cpp b/plugins/hexbin/kernel/DensityKernel.cpp
index d77e9f7..0b0dd74 100644
--- a/plugins/hexbin/kernel/DensityKernel.cpp
+++ b/plugins/hexbin/kernel/DensityKernel.cpp
@@ -57,49 +57,11 @@ void DensityKernel::addSwitches(ProgramArgs& args)
 {
     args.add("input,i", "input point cloud file name", m_inputFile);
     args.add("output,o", "output vector data source", m_outputFile);
-    args.add("lyr_name", "OGR layer name to write into datasource",
-        m_layerName);
-    args.add("driver,f", "OGR driver name to use ", m_driverName,
+    args.add("ogrdriver,f", "OGR driver name to use ", m_driverName,
         "ESRI Shapefile");
 }
 
 
-void DensityKernel::makePipeline(const std::string& filename)
-{
-    if (!pdal::FileUtils::fileExists(filename))
-        throw pdal_error("File not found: " + filename);
-
-    m_manager = PipelineManagerPtr(new PipelineManager);
-
-    if (filename == "STDIN")
-    {
-        m_manager->readPipeline(std::cin);
-    }
-    else if (FileUtils::extension(filename) == ".xml" ||
-        FileUtils::extension(filename) == ".json")
-    {
-        m_manager->readPipeline(filename);
-    }
-    else
-    {
-        StageFactory factory;
-        std::string driver = factory.inferReaderDriver(filename);
-
-        if (driver.empty())
-            throw pdal_error("Cannot determine input file type of " + filename);
-        Stage& reader = m_manager->addReader(driver);
-        Options ro;
-        ro.add("filename", filename);
-        reader.setOptions(ro);
-    }
-    Stage *stage = m_manager->getStage();
-    m_hexbinStage = &(m_manager->addFilter("filters.hexbin"));
-    if (!m_hexbinStage)
-        throw pdal_error("Unable to initialize filters.hexbin!");
-    m_hexbinStage->setInput(*stage);
-}
-
-
 void DensityKernel::outputDensity(pdal::SpatialReference const& reference)
 {
     HexBin* hexbin = static_cast<pdal::HexBin*>(m_hexbinStage);
@@ -118,12 +80,21 @@ void DensityKernel::outputDensity(pdal::SpatialReference const& reference)
 int DensityKernel::execute()
 {
     gdal::registerDrivers();
-    std::string filename = m_usestdin ? std::string("STDIN") : m_inputFile;
-    makePipeline(filename);
-    applyExtraStageOptionsRecursive(m_manager->getStage());
-    point_count_t output = m_manager->execute();
-    PointTableRef table = m_manager->pointTable();
-    outputDensity(table.anySpatialReference());
+
+    if (m_inputFile == "STDIN" ||
+        (FileUtils::extension(m_inputFile) == ".xml" ||
+        FileUtils::extension(m_inputFile) == ".json"))
+    {
+        m_manager.readPipeline(m_inputFile);
+    }
+    else
+    {
+        m_manager.makeReader(m_inputFile, "");
+    }
+    m_hexbinStage = &(m_manager.makeFilter("filters.hexbin",
+        *m_manager.getStage()));
+    m_manager.execute();
+    outputDensity(m_manager.pointTable().anySpatialReference());
     return 0;
 }
 
diff --git a/plugins/hexbin/kernel/DensityKernel.hpp b/plugins/hexbin/kernel/DensityKernel.hpp
index a51add7..3a59007 100644
--- a/plugins/hexbin/kernel/DensityKernel.hpp
+++ b/plugins/hexbin/kernel/DensityKernel.hpp
@@ -52,16 +52,12 @@ public:
     int execute();
 
 private:
-    PipelineManagerPtr m_manager;
     Stage *m_hexbinStage;
     std::string m_inputFile;
     std::string m_outputFile;
-    std::string m_layerName;
     std::string m_driverName;
-    std::string m_srs;
 
     virtual void addSwitches(ProgramArgs& args);
-    void makePipeline(const std::string& filename);
     void outputDensity(pdal::SpatialReference const& ref);
 };
 
diff --git a/plugins/hexbin/kernel/OGR.cpp b/plugins/hexbin/kernel/OGR.cpp
index 5ce1846..c62fc3c 100644
--- a/plugins/hexbin/kernel/OGR.cpp
+++ b/plugins/hexbin/kernel/OGR.cpp
@@ -1,17 +1,36 @@
-/*****************************************************************************
-
-    (c) 2013 Hobu, Inc. hobu.inc at gmail.com
-
-    Author: Howard Butler, hobu.inc at gmail.com
-
-    This is free software; you can redistribute and/or modify it under the
-    terms of the GNU Lesser General Licence as published by the Free Software
-    Foundation. See the COPYING file for more information.
-
-    This software is distributed WITHOUT ANY WARRANTY and without even the
-    implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-*****************************************************************************/
+/******************************************************************************
+* Copyright (c) 2016, Howard Butler (howard at hobu.co)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
 
 #include "OGR.hpp"
 
diff --git a/plugins/hexbin/test/HexbinFilterTest.cpp b/plugins/hexbin/test/HexbinFilterTest.cpp
index a94fd44..c3473ea 100644
--- a/plugins/hexbin/test/HexbinFilterTest.cpp
+++ b/plugins/hexbin/test/HexbinFilterTest.cpp
@@ -61,23 +61,20 @@ TEST(HexbinFilterTest, HexbinFilterTest_test_1)
 
     Options options;
     options.add("filename", Support::datapath("las/hextest.las"));
-    options.add("output_tesselation", true);
-    options.add("sample_size", 5000, "Number of samples to use "
-        "when estimating hexagon edge size. Specify 0.0 for edge_size if "
-        "you want to compute one.");
-    options.add("threshold", 1, "Number of points necessary inside "
-        "a hexagon to be considered full");
-    options.add("edge_length", 0.666666666, "The edge size of the hexagon to "
-        "use in situations where you do not want to estimate based on "
-        "a sample");
 
     Stage* reader(f.createStage("readers.las"));
     EXPECT_TRUE(reader);
     reader->setOptions(options);
 
     Stage* hexbin(f.createStage("filters.hexbin"));
+
+    Options hexOptions;
+    hexOptions.add("output_tesselation", true);
+    hexOptions.add("sample_size", 5000);
+    hexOptions.add("threshold", 1);
+    hexOptions.add("edge_length", 0.666666666);
     EXPECT_TRUE(hexbin);
-    hexbin->setOptions(options);
+    hexbin->setOptions(hexOptions);
     hexbin->setInput(*reader);
 
     PointTable table;
diff --git a/plugins/icebridge/io/IcebridgeReader.cpp b/plugins/icebridge/io/IcebridgeReader.cpp
index 1d115cd..720ff34 100644
--- a/plugins/icebridge/io/IcebridgeReader.cpp
+++ b/plugins/icebridge/io/IcebridgeReader.cpp
@@ -36,6 +36,7 @@
 #include <pdal/util/FileUtils.hpp>
 #include <pdal/PointView.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <map>
 
@@ -72,14 +73,6 @@ CREATE_SHARED_PLUGIN(1, 0, IcebridgeReader, Reader, s_info)
 
 std::string IcebridgeReader::getName() const { return s_info.name; }
 
-Options IcebridgeReader::getDefaultOptions()
-{
-    Options options;
-    options.add("filename", "", "file to read from");
-    return options;
-}
-
-
 Dimension::IdList IcebridgeReader::getDefaultDimensions()
 {
     Dimension::IdList ids;
@@ -92,7 +85,7 @@ Dimension::IdList IcebridgeReader::getDefaultDimensions()
     ids.push_back(Id::Z);
     ids.push_back(Id::StartPulse);
     ids.push_back(Id::ReflectedPulse);
-    ids.push_back(Id::ScanAngleRank);
+    ids.push_back(Id::Azimuth);
     ids.push_back(Id::Pitch);
     ids.push_back(Id::Roll);
     ids.push_back(Id::Pdop);
@@ -114,29 +107,6 @@ void IcebridgeReader::ready(PointTableRef table)
     m_index = 0;
 }
 
-void IcebridgeReader::initialize(PointTableRef)
-{
-    // Data are WGS84 (4326) with ITRF2000 datum (6656)
-    // See http://nsidc.org/data/docs/daac/icebridge/ilvis2/index.html for
-    // background
-    SpatialReference ref("EPSG:4326");
-    setSpatialReference(m_metadata, ref);
-}
-
-
-// If longitude between 0-180, just return it, degrees east; if between 180
-// and 360, subtract 360 to get negative value.
-double IcebridgeReader::convertLongitude(double longitude)
-{
-    longitude = fmod(longitude, 360.0);
-    if (longitude <= -180)
-        longitude += 360;
-    else if (longitude > 180)
-        longitude -= 360;
-    return longitude;
-}
-
-
 
 point_count_t IcebridgeReader::read(PointViewPtr view, point_count_t count)
 {
@@ -180,6 +150,19 @@ point_count_t IcebridgeReader::read(PointViewPtr view, point_count_t count)
                         fval++;
                     }
                 }
+                else if (*di == Dimension::Id::X)
+                {
+                    float *fval = (float *)p;
+                    for (PointId i = 0; i < count; ++i)
+                    {
+                        double dval = (double)(*fval);
+                        // Longitude is 0-360. Convert
+                        dval = Utils::normalizeLongitude(dval);
+                        view->setField(*di, nextId++, dval);
+                        fval++;
+                    }
+
+                }
                 else
                 {
                     float *fval = (float *)p;
@@ -202,17 +185,25 @@ point_count_t IcebridgeReader::read(PointViewPtr view, point_count_t count)
     return count;
 }
 
-void IcebridgeReader::processOptions(const Options& options)
+void IcebridgeReader::addArgs(ProgramArgs& args)
 {
-    m_metadataFile =
-        options.getValueOrDefault<std::string>("metadata", "");
-    if (!m_metadataFile.empty() && ! FileUtils::fileExists(m_metadataFile))
+    args.add("metadata", "Metadata file", m_metadataFile);
+}
+
+void IcebridgeReader::initialize()
+{
+    if (!m_metadataFile.empty() && !FileUtils::fileExists(m_metadataFile))
     {
         std::ostringstream oss;
         oss << "Invalid metadata file: '" << m_metadataFile << "'";
         throw pdal_error(oss.str());
     }
 
+    // Data are WGS84 (4326) with ITRF2000 datum (6656)
+    // See http://nsidc.org/data/docs/daac/icebridge/ilvis2/index.html for
+    // background
+    SpatialReference ref("EPSG:4326");
+    setSpatialReference(m_metadata, ref);
 }
 
 void IcebridgeReader::done(PointTableRef table)
diff --git a/plugins/icebridge/io/IcebridgeReader.hpp b/plugins/icebridge/io/IcebridgeReader.hpp
index da7f891..fe457c1 100644
--- a/plugins/icebridge/io/IcebridgeReader.hpp
+++ b/plugins/icebridge/io/IcebridgeReader.hpp
@@ -44,7 +44,7 @@ namespace pdal
   class Ilvis2MetadataReader
   {
   public:
-      inline void readMetadataFile(std::string filename, pdal::MetadataNode* m) {};
+      inline void readMetadataFile(std::string filename, MetadataNode* m) {};
   };
 }
 #else
@@ -76,7 +76,6 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
     static Dimension::IdList getDefaultDimensions();
 
 private:
@@ -84,14 +83,12 @@ private:
     point_count_t m_index;
 
     virtual void addDimensions(PointLayoutPtr layout);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void initialize();
     virtual void ready(PointTableRef table);
-    virtual void processOptions(const Options& options);
     virtual point_count_t read(PointViewPtr view, point_count_t count);
     virtual void done(PointTableRef table);
     virtual bool eof();
-    virtual void initialize(PointTableRef table);
-
-    double convertLongitude(double longitude);
 
     std::string m_metadataFile;
     Ilvis2MetadataReader m_mdReader;
diff --git a/plugins/icebridge/test/IcebridgeReaderTest.cpp b/plugins/icebridge/test/IcebridgeReaderTest.cpp
index 3efd09b..34ac750 100644
--- a/plugins/icebridge/test/IcebridgeReaderTest.cpp
+++ b/plugins/icebridge/test/IcebridgeReaderTest.cpp
@@ -45,7 +45,7 @@ using namespace pdal;
 
 template <typename T>
 void checkDimension(const PointView& data, std::size_t index,
-    Dimension::Id::Enum dim, T expected)
+    Dimension::Id dim, T expected)
 {
     float actual = data.getFieldAs<T>(dim, index);
     EXPECT_FLOAT_EQ(expected, actual);
@@ -74,7 +74,7 @@ void checkPoint(
     checkDimension(data, index, Id::Z, elevation);
     checkDimension(data, index, Id::StartPulse, xmtSig);
     checkDimension(data, index, Id::ReflectedPulse, rcvSig);
-    checkDimension(data, index, Id::ScanAngleRank, azimuth);
+    checkDimension(data, index, Id::Azimuth, azimuth);
     checkDimension(data, index, Id::Pitch, pitch);
     checkDimension(data, index, Id::Roll, roll);
     checkDimension(data, index, Id::Pdop, gpsPdop);
@@ -93,7 +93,7 @@ TEST(IcebridgeReaderTest, testRead)
     Stage* reader(f.createStage("readers.icebridge"));
     EXPECT_TRUE(reader);
 
-    Option filename("filename", getFilePath(), "");
+    Option filename("filename", getFilePath());
     Options options(filename);
     reader->setOptions(options);
 
@@ -109,7 +109,7 @@ TEST(IcebridgeReaderTest, testRead)
             0,
             141437548,     // time
             82.605319,      // latitude
-            301.406196,     // longitude
+            -58.593811,     // longitude
             18.678,         // elevation
             2408,           // xmtSig
             181,            // rcvSig
@@ -125,7 +125,7 @@ TEST(IcebridgeReaderTest, testRead)
             1,
             141437548,     // time
             82.605287,      // latitude
-            301.404862,     // longitude
+            -58.595123,     // longitude
             18.688,         // elevation
             2642,           // xmtSig
             173,            // rcvSig
diff --git a/plugins/matlab/io/MatlabWriter.cpp b/plugins/matlab/io/MatlabWriter.cpp
index 9984cb9..033f3bf 100644
--- a/plugins/matlab/io/MatlabWriter.cpp
+++ b/plugins/matlab/io/MatlabWriter.cpp
@@ -33,7 +33,9 @@
  ****************************************************************************/
 
 #include "MatlabWriter.hpp"
+
 #include <pdal/pdal_macros.hpp>
+#include <pdal/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -49,12 +51,10 @@ CREATE_SHARED_PLUGIN(1, 0, MatlabWriter, Writer, s_info)
 std::string MatlabWriter::getName() const { return s_info.name; }
 
 
-MatlabWriter::MatlabWriter()
-{}
-
-
-void MatlabWriter::processOptions(const Options& options)
-{}
+void MatlabWriter::addArgs(ProgramArgs& args)
+{
+    args.add("output_dims", "Output dimensions", m_outputDims);
+}
 
 
 void MatlabWriter::prepared(PointTableRef table)
diff --git a/plugins/matlab/io/MatlabWriter.hpp b/plugins/matlab/io/MatlabWriter.hpp
index c17183b..6929d7a 100644
--- a/plugins/matlab/io/MatlabWriter.hpp
+++ b/plugins/matlab/io/MatlabWriter.hpp
@@ -48,25 +48,24 @@ extern "C" PF_ExitFunc MatlabWriter_InitPlugin();
 namespace pdal
 {
 
-
 class PDAL_DLL MatlabWriter : public Writer
 {
 public:
-
     static void* create();
     static int32_t destroy(void*);
     std::string getName() const;
 
-    MatlabWriter();
+    MatlabWriter()
+    {}
 
 private:
-
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual void prepared(PointTableRef table);
     virtual void ready(PointTableRef table);
     virtual void write(const PointViewPtr view);
     virtual void done(PointTableRef table);
 
+    StringList m_outputDims; ///< List of dimensions to write
     // Can't use unique_ptr b/c MATFile is an incomplete type.
     MATFile * m_matfile;
     DimTypeList m_dimTypes;
diff --git a/plugins/mrsid/io/MrsidReader.cpp b/plugins/mrsid/io/MrsidReader.cpp
index 09f92da..179a2a8 100644
--- a/plugins/mrsid/io/MrsidReader.cpp
+++ b/plugins/mrsid/io/MrsidReader.cpp
@@ -37,6 +37,8 @@
 #include <lidar/MG4PointReader.h>
 #include <lidar/FileIO.h>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
+#include <pdal/DimUtil.hpp>
 
 namespace pdal
 {
@@ -57,6 +59,7 @@ MrsidReader::MrsidReader()
 {
 }
 
+
 void MrsidReader::done(PointTableRef)
 {
     m_iter->release();
@@ -66,37 +69,36 @@ void MrsidReader::done(PointTableRef)
     m_iter = 0;
 }
 
-pdal::Dimension::Type::Enum getPDALType(LizardTech::DataType t)
+pdal::Dimension::Type getPDALType(LizardTech::DataType t)
 {
 
    using namespace Dimension;
-   using namespace Dimension::Type;
    using namespace LizardTech;
    switch (t)
    {
        case DATATYPE_SINT8:
-           return Signed8;
+           return Type::Signed8;
        case DATATYPE_UINT8:
-           return Unsigned8;
+           return Type::Unsigned8;
        case DATATYPE_SINT16:
-           return Signed16;
+           return Type::Signed16;
        case DATATYPE_UINT16:
-           return Unsigned16;
+           return Type::Unsigned16;
        case DATATYPE_SINT32:
-           return Signed32;
+           return Type::Signed32;
        case DATATYPE_UINT32:
-           return Unsigned32;
+           return Type::Unsigned32;
        case DATATYPE_SINT64:
-           return Signed64;
+           return Type::Signed64;
        case DATATYPE_UINT64:
-           return Unsigned64;
+           return Type::Unsigned64;
        case DATATYPE_FLOAT32:
-           return Float;
+           return Type::Float;
        case DATATYPE_FLOAT64:
-           return Double;
+           return Type::Double;
 
        default:
-           return Double;
+           return Type::Double;
    }
 }
 
@@ -128,7 +130,7 @@ void MrsidReader::addDimensions(PointLayoutPtr layout)
             name = translated->second.c_str();
 
         LizardTech::DataType t = channel.getDataType();
-        Dimension::Type::Enum pdal_type = getPDALType(t);
+        Dimension::Type pdal_type = getPDALType(t);
         layout->registerOrAssignDim(name, pdal_type);
     }
     m_layout = layout;
@@ -159,14 +161,6 @@ void MrsidReader::ready(PointTableRef table, MetadataNode& m)
     m_index = 0;
 }
 
-Options MrsidReader::getDefaultOptions()
-{
-    Options options;
-    options.add("filename", "", "file to read from");
-    return options;
-}
-
-
 QuickInfo MrsidReader::inspect()
 {
     QuickInfo qi;
@@ -197,14 +191,13 @@ QuickInfo MrsidReader::inspect()
 void MrsidReader::LayoutToPointInfo(const PointLayout &layout, LizardTech::PointInfo &pointInfo) const
 {
     using namespace pdal::Dimension;
-    using namespace pdal::Dimension::Type;
     const Dimension::IdList& dims = layout.dims();
 
     pointInfo.init(dims.size());
     for (unsigned int idx=0; idx<dims.size(); idx++)
     {
         std::string name = layout.dimName(dims[idx]);
-        Dimension::Type::Enum t = layout.dimType(dims[idx]);
+        Dimension::Type t = layout.dimType(dims[idx]);
         size_t size = layout.dimSize(dims[idx]);
 
         if (Utils::iequals(name, "EdgeOfFlightLine")) name = CHANNEL_NAME_EdgeFlightLine;
@@ -216,25 +209,25 @@ void MrsidReader::LayoutToPointInfo(const PointLayout &layout, LizardTech::Point
         if (Utils::iequals(name, "ReturnNumber")) name = CHANNEL_NAME_ReturnNum;
         if (Utils::iequals(name, "NumberOfReturns")) name = CHANNEL_NAME_NumReturns;
 
-        if (t == Double)
+        if (t == Type::Double)
             pointInfo.getChannel(idx).init(name.c_str(), LizardTech::DATATYPE_FLOAT64, 64);
-        else if (t == Float)
+        else if (t == Type::Float)
             pointInfo.getChannel(idx).init(name.c_str(), LizardTech::DATATYPE_FLOAT32, 32);
-        else if (t == Signed64)
+        else if (t == Type::Signed64)
             pointInfo.getChannel(idx).init(name.c_str(), LizardTech::DATATYPE_SINT64, 64);
-        else if (t == Signed32)
+        else if (t == Type::Signed32)
             pointInfo.getChannel(idx).init(name.c_str(), LizardTech::DATATYPE_SINT32, 32);
-        else if (t == Signed16)
+        else if (t == Type::Signed16)
             pointInfo.getChannel(idx).init(name.c_str(), LizardTech::DATATYPE_SINT16, 16);
-        else if (t == Signed8)
+        else if (t == Type::Signed8)
             pointInfo.getChannel(idx).init(name.c_str(), LizardTech::DATATYPE_SINT8, 8);
-        else if (t == Unsigned64)
+        else if (t == Type::Unsigned64)
             pointInfo.getChannel(idx).init(name.c_str(), LizardTech::DATATYPE_UINT64, 64);
-        else if (t == Unsigned32)
+        else if (t == Type::Unsigned32)
             pointInfo.getChannel(idx).init(name.c_str(), LizardTech::DATATYPE_UINT32, 32);
-        else if (t == Unsigned16)
+        else if (t == Type::Unsigned16)
             pointInfo.getChannel(idx).init(name.c_str(), LizardTech::DATATYPE_UINT16, 16);
-        else if (t == Unsigned8)
+        else if (t == Type::Unsigned8)
             pointInfo.getChannel(idx).init(name.c_str(), LizardTech::DATATYPE_UINT8, 8);
     }
 }
@@ -249,7 +242,7 @@ T getData(LizardTech::PointData& points, const char* channelId, point_count_t po
 
 point_count_t MrsidReader::read(PointViewPtr view, point_count_t count)
 {
-    using namespace pdal::Dimension::Type;
+    using namespace pdal::Dimension;
 
     LizardTech::PointData points;
     LayoutToPointInfo(*m_layout, m_pointInfo);
@@ -262,19 +255,19 @@ point_count_t MrsidReader::read(PointViewPtr view, point_count_t count)
     {
         for (Dimension::IdList::size_type i=0; i < dims.size(); i++)
         {
-            Dimension::Id::Enum const& d = dims[i];
+            Dimension::Id const& d = dims[i];
             std::string name = m_layout->dimName(d);
-            Dimension::Type::Enum t = m_layout->dimType(d);
+            Dimension::Type t = m_layout->dimType(d);
 
             if (Utils::iequals(name, "X") &&
                 m_pointInfo.hasChannel(CHANNEL_NAME_X))
             {
-                if (t == Double)
+                if (t == Type::Double)
                 {
                     view->setField<double>( d,
                                             pointIndex,
                                             getData<double>(points, CHANNEL_NAME_X, pointIndex));
-                } else if (t == Signed32)
+                } else if (t == Type::Signed32)
                 {
                     view->setField<int32_t>(d,
                                             pointIndex,
@@ -283,12 +276,12 @@ point_count_t MrsidReader::read(PointViewPtr view, point_count_t count)
             } else if (Utils::iequals(name, "Y") &&
                        m_pointInfo.hasChannel(CHANNEL_NAME_Y))
             {
-                if (t == Double)
+                if (t == Type::Double)
                 {
                     view->setField<double>( d,
                                             pointIndex,
                                             getData<double>(points, CHANNEL_NAME_Y, pointIndex));
-                } else if (t == Signed32)
+                } else if (t == Type::Signed32)
                 {
                     view->setField<int32_t>(d,
                                             pointIndex,
@@ -297,12 +290,12 @@ point_count_t MrsidReader::read(PointViewPtr view, point_count_t count)
             } else if (Utils::iequals(name, "Z") &&
                        m_pointInfo.hasChannel(CHANNEL_NAME_Z))
             {
-                if (t == Double)
+                if (t == Type::Double)
                 {
                     view->setField<double>( d,
                                             pointIndex,
                                             getData<double>(points, CHANNEL_NAME_Z, pointIndex));
-                } else if (t == Signed32)
+                } else if (t == Type::Signed32)
                 {
                     view->setField<int32_t>(d,
                                             pointIndex,
diff --git a/plugins/mrsid/io/MrsidReader.hpp b/plugins/mrsid/io/MrsidReader.hpp
index 26371e8..ba533c8 100644
--- a/plugins/mrsid/io/MrsidReader.hpp
+++ b/plugins/mrsid/io/MrsidReader.hpp
@@ -59,13 +59,13 @@ class PDAL_DLL MrsidReader : public pdal::Reader
 public:
     virtual ~MrsidReader(){};
     MrsidReader();
+    MrsidReader& operator=(const MrsidReader&) = delete;
+    MrsidReader(const MrsidReader&) = delete;
 
     static void * create();
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
     point_count_t getNumPoints() const
         { if (m_PS)
             return m_PS->getNumPoints();
@@ -74,7 +74,6 @@ public:
         }
 
 protected:
-    virtual void initialize();
     virtual void addDimensions(PointLayoutPtr layout);
 private:
     LizardTech::MG4PointReader *m_PS;
@@ -84,10 +83,9 @@ private:
 
     point_count_t m_index;
 
-    MrsidReader& operator=(const MrsidReader&); // not implemented
-    MrsidReader(const MrsidReader&); // not implemented
-
-    void LayoutToPointInfo(const PointLayout &layout, LizardTech::PointInfo &pointInfo) const;
+    virtual void initialize();
+    void LayoutToPointInfo(const PointLayout &layout,
+        LizardTech::PointInfo &pointInfo) const;
     virtual QuickInfo inspect();
     virtual void ready(PointTableRef table)
         { ready(table, m_metadata); }
diff --git a/plugins/nitf/CMakeLists.txt b/plugins/nitf/CMakeLists.txt
index 5df6859..c6452bc 100644
--- a/plugins/nitf/CMakeLists.txt
+++ b/plugins/nitf/CMakeLists.txt
@@ -13,14 +13,14 @@ endif()
 # NITF Reader
 #
 set(srcs
-    io/NitfFile.cpp
+    io/NitfFileReader.cpp
     io/MetadataReader.cpp
     io/tre_plugins.cpp
     io/NitfReader.cpp
 )
 
 set(incs
-    io/NitfFile.hpp
+    io/NitfFileReader.hpp
     io/MetadataReader.hpp
     io/tre_plugins.hpp
     io/NitfReader.hpp
@@ -34,12 +34,16 @@ PDAL_ADD_PLUGIN(reader_libname reader nitf
 # NITF Writer
 #
 set(srcs
+    io/NitfFileWriter.cpp
     io/NitfWriter.cpp
+    io/MetadataReader.cpp
     io/tre_plugins.cpp
 )
 
 set(incs
+    io/NitfFileWriter.hpp
     io/NitfWriter.hpp
+    io/MetadataReader.hpp
     io/tre_plugins.hpp
 )
 
diff --git a/plugins/nitf/io/MetadataReader.hpp b/plugins/nitf/io/MetadataReader.hpp
index 6a763a1..ca1f4bb 100644
--- a/plugins/nitf/io/MetadataReader.hpp
+++ b/plugins/nitf/io/MetadataReader.hpp
@@ -52,7 +52,6 @@
 #  pragma clang diagnostic ignored "-Wunused-private-field"
 #endif
 
-#define IMPORT_NITRO_API
 #include <nitro/c++/import/nitf.hpp>
 
 #ifdef PDAL_COMPILER_CLANG
diff --git a/plugins/nitf/io/NitfFile.cpp b/plugins/nitf/io/NitfFile.cpp
deleted file mode 100644
index 41aa0c4..0000000
--- a/plugins/nitf/io/NitfFile.cpp
+++ /dev/null
@@ -1,249 +0,0 @@
-/******************************************************************************
-* Copyright (c) 2012, Michael P. Gerlek (mpg at flaxen.com)
-*
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following
-* conditions are met:
-*
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in
-*       the documentation and/or other materials provided
-*       with the distribution.
-*     * Neither the name of Hobu, Inc. or Flaxen Consulting LLC nor the
-*       names of its contributors may be used to endorse or promote
-*       products derived from this software without specific prior
-*       written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
-* OF SUCH DAMAGE.
-****************************************************************************/
-
-#include "NitfFile.hpp"
-
-#include <pdal/Metadata.hpp>
-
-#include "MetadataReader.hpp"
-#include "tre_plugins.hpp"
-
-
-// Set to true if you want the metadata to contain
-// NITF fields that are empty; if false, those fields
-// will be skipped.
-static const bool SHOW_EMPTY_FIELDS = true;
-
-// Set to true to if you want an error thrown if the
-// NITF file does not have a LAS data segment and a
-// corresponding image segment. (Set to false for
-// testing robustness of metadata parsing.)
-static const bool REQUIRE_LIDAR_SEGMENTS = true;
-
-
-namespace pdal
-{
-
-
-NitfFile::NitfFile(const std::string& filename) :
-    m_reader(NULL),
-    m_io(NULL),
-    m_filename(filename),
-    m_validLidarSegments(false),
-    m_lidarImageSegment(0),
-    m_lidarDataSegment(0)
-{
-    register_tre_plugins();
-}
-
-
-NitfFile::~NitfFile()
-{
-    close();
-}
-
-
-void NitfFile::open()
-{
-    if (::nitf::Reader::getNITFVersion(m_filename.c_str()) == NITF_VER_UNKNOWN)
-        throw pdal_error("Unable to determine NITF file version");
-
-    // read the major NITF data structures, courtesy Nitro
-    m_reader = new ::nitf::Reader();
-    try
-    {
-        m_io = new ::nitf::IOHandle(m_filename.c_str());
-    }
-    catch (::nitf::NITFException& e)
-    {
-        throw pdal_error("unable to open NITF file (" + e.getMessage() + ")");
-    }
-    try
-    {
-        m_record = m_reader->read(*m_io);
-    }
-    catch (::nitf::NITFException& e)
-    {
-        throw pdal_error("unable to read NITF file (" + e.getMessage() + ")");
-    }
-
-
-    // find the image segment corresponding the the lidar data, if any
-    const bool imageOK = locateLidarImageSegment();
-    if (REQUIRE_LIDAR_SEGMENTS && !imageOK)
-    {
-        throw pdal_error("Unable to find lidar-compatible image "
-            "segment in NITF file");
-    }
-
-    // find the LAS data hidden in a DE field, if any
-    const bool dataOK = locateLidarDataSegment();
-    if (REQUIRE_LIDAR_SEGMENTS && !dataOK)
-    {
-        throw pdal_error("Unable to find LIDARA data extension segment "
-            "in NITF file");
-    }
-
-    m_validLidarSegments = dataOK && imageOK;
-}
-
-
-void NitfFile::close()
-{
-    if (m_io)
-    {
-        m_io->close();
-        delete m_io;
-        m_io = NULL;
-    }
-
-    delete m_reader;
-    m_reader = NULL;
-}
-
-
-void NitfFile::getLasOffset(uint64_t& offset,
-                            uint64_t& length)
-{
-    offset = 0;
-    length = 0;
-
-    if (!m_validLidarSegments)
-        return;
-
-    ::nitf::ListIterator iter = m_record.getDataExtensions().begin();
-    const ::nitf::Uint32 numSegs = m_record.getNumDataExtensions();
-    for (::nitf::Uint32 segNum=0; segNum<numSegs; segNum++)
-    {
-        if (segNum == m_lidarDataSegment)
-        {
-            ::nitf::DESegment seg = *iter;
-            const ::nitf::Uint64 seg_offset = seg.getOffset();
-            const ::nitf::Uint64 seg_end = seg.getEnd();
-
-            offset = seg_offset;
-            length = seg_end - seg_offset;
-
-            return;
-        }
-
-        iter++;
-    }
-
-    throw pdal_error("error reading nitf (1)");
-}
-
-
-void NitfFile::extractMetadata(MetadataNode& node)
-{
-    MetadataReader mr(m_record, node, SHOW_EMPTY_FIELDS);
-    mr.read();
-}
-
-
-// set the number of the first segment that is likely to be an image
-// of the lidar data, and return true iff we found one
-bool NitfFile::locateLidarImageSegment()
-{
-    // as per 3.2.3 (pag 19) and 3.2.4 (page 39)
-
-    ::nitf::ListIterator iter = m_record.getImages().begin();
-    const ::nitf::Uint32 numSegs = m_record.getNumImages();
-
-    for (::nitf::Uint32 segNum=0; segNum<numSegs; segNum++)
-    {
-        ::nitf::ImageSegment imseg = *iter;
-
-        ::nitf::ImageSubheader subheader = imseg.getSubheader();
-
-        ::nitf::Field field = subheader.getImageId();
-        ::nitf::Field::FieldType fieldType = field.getType();
-        if (fieldType != (::nitf::Field::FieldType)NITF_BCS_A)
-            throw pdal_error("error reading nitf (5)");
-        std::string iid1 = field.toString();
-
-        // BUG: shouldn't allow "None" here!
-        if (iid1 == "INTENSITY " || iid1 == "ELEVATION " ||
-            iid1 == "None      ")
-        {
-            m_lidarImageSegment = segNum;
-            return true;
-        }
-
-        iter++;
-    }
-
-    return false;
-}
-
-
-// set the number of the first segment that is likely to be the LAS
-// file, and return true iff we found it
-bool NitfFile::locateLidarDataSegment()
-{
-    // as per 3.2.5, page 59
-
-    ::nitf::ListIterator iter = m_record.getDataExtensions().begin();
-    const ::nitf::Uint32 numSegs = m_record.getNumDataExtensions();
-    for (::nitf::Uint32 segNum=0; segNum<numSegs; segNum++)
-    {
-        ::nitf::DESegment seg = *iter;
-
-        ::nitf::DESubheader subheader = seg.getSubheader();
-
-        ::nitf::Field idField = subheader.getTypeID();
-        if (idField.getType() != (::nitf::Field::FieldType)NITF_BCS_A)
-            throw pdal_error("error reading nitf (6)");
-
-        ::nitf::Field verField = subheader.getVersion();
-        if (verField.getType() != (::nitf::Field::FieldType)NITF_BCS_N)
-            throw pdal_error("error reading nitf (7)");
-
-        const std::string id = idField.toString();
-        const int ver = (int)verField;
-
-        if (id == "LIDARA DES               " && ver == 1)
-        {
-            m_lidarDataSegment = segNum;
-            return true;
-        }
-
-        iter++;
-    }
-
-    return false;
-}
-
-
-} // namespaces
diff --git a/plugins/nitf/io/NitfFile.hpp b/plugins/nitf/io/NitfFile.hpp
deleted file mode 100644
index 847cd05..0000000
--- a/plugins/nitf/io/NitfFile.hpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/******************************************************************************
-* Copyright (c) 2012, Michael P. Gerlek (mpg at flaxen.com)
-*
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following
-* conditions are met:
-*
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in
-*       the documentation and/or other materials provided
-*       with the distribution.
-*     * Neither the name of Hobu, Inc. or Flaxen Consulting LLC nor the
-*       names of its contributors may be used to endorse or promote
-*       products derived from this software without specific prior
-*       written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
-* OF SUCH DAMAGE.
-****************************************************************************/
-
-#pragma once
-
-#include <pdal/pdal_internal.hpp>
-
-#include <vector>
-
-#ifdef PDAL_COMPILER_GCC
-#  pragma GCC diagnostic push
-#  pragma GCC diagnostic ignored "-Wredundant-decls"
-#  pragma GCC diagnostic ignored "-Wextra"
-#  pragma GCC diagnostic ignored "-Wcast-qual"
-   // The following pragma doesn't actually work:
-   //   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61653
-   //#  pragma GCC diagnostic ignored "-Wliteral-suffix"
-#endif
-#ifdef PDAL_COMPILER_CLANG
-#  pragma clang diagnostic push
-#  pragma clang diagnostic ignored "-Wunused-private-field"
-#endif
-
-#define IMPORT_NITRO_API
-#include <nitro/c++/import/nitf.hpp>
-
-#ifdef PDAL_COMPILER_CLANG
-#  pragma clang diagnostic pop
-#endif
-#ifdef PDAL_COMPILER_GCC
-#  pragma GCC diagnostic pop
-#endif
-
-namespace pdal
-{
-    class MetadataNode;
-}
-
-
-namespace pdal
-{
-
-//
-// all the processing that is NITF-file specific goes in here
-//
-class PDAL_DLL NitfFile
-{
-public:
-    NitfFile(const std::string& filename);
-    ~NitfFile();
-
-    void open();
-    void close();
-
-    void getLasOffset(uint64_t& offset, uint64_t& length);
-
-    void extractMetadata(MetadataNode& metadata);
-
-private:
-    bool locateLidarImageSegment();
-    bool locateLidarDataSegment();
-
-    ::nitf::Reader *m_reader;
-    ::nitf::IOHandle *m_io;
-    ::nitf::Record m_record;
-
-    const std::string m_filename;
-    bool m_validLidarSegments;
-    ::nitf::Uint32 m_lidarImageSegment;
-    ::nitf::Uint32 m_lidarDataSegment;
-
-    NitfFile(const NitfFile&); // nope
-    NitfFile& operator=(const NitfFile&); // nope
-};
-
-
-} // namespaces
diff --git a/plugins/nitf/io/NitfFileReader.cpp b/plugins/nitf/io/NitfFileReader.cpp
new file mode 100644
index 0000000..39915dd
--- /dev/null
+++ b/plugins/nitf/io/NitfFileReader.cpp
@@ -0,0 +1,227 @@
+/******************************************************************************
+* Copyright (c) 2012, Michael P. Gerlek (mpg at flaxen.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Consulting LLC nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include "NitfFileReader.hpp"
+
+#include <pdal/Metadata.hpp>
+
+#include "MetadataReader.hpp"
+#include "tre_plugins.hpp"
+
+
+// Set to true if you want the metadata to contain
+// NITF fields that are empty; if false, those fields
+// will be skipped.
+static const bool SHOW_EMPTY_FIELDS = true;
+
+// Set to true to if you want an error thrown if the
+// NITF file does not have a LAS data segment and a
+// corresponding image segment. (Set to false for
+// testing robustness of metadata parsing.)
+static const bool REQUIRE_LIDAR_SEGMENTS = true;
+
+
+namespace pdal
+{
+
+NitfFileReader::NitfFileReader(const std::string& filename) :
+    m_filename(filename),
+    m_validLidarSegments(false),
+    m_lidarDataSegment(0)
+{
+    register_tre_plugins();
+}
+
+
+void NitfFileReader::open()
+{
+    if (nitf::Reader::getNITFVersion(m_filename.c_str()) == NITF_VER_UNKNOWN)
+        throw pdal_error("Unable to determine NITF file version");
+
+    // read the major NITF data structures, courtesy Nitro
+    try
+    {
+        m_io.reset(new nitf::IOHandle(m_filename));
+    }
+    catch (nitf::NITFException& e)
+    {
+        throw pdal_error("unable to open NITF file (" + e.getMessage() + ")");
+    }
+    try
+    {
+        nitf::Reader reader;
+        m_record = reader.read(*m_io);
+    }
+    catch (nitf::NITFException& e)
+    {
+        throw pdal_error("unable to read NITF file (" + e.getMessage() + ")");
+    }
+
+    // find the image segment corresponding the the lidar data, if any
+    // NOTE: We don't DO anything with the image segment, we just check
+    // that it exists.
+    const bool imageOK = locateLidarImageSegment();
+    if (REQUIRE_LIDAR_SEGMENTS && !imageOK)
+    {
+        throw pdal_error("Unable to find lidar-compatible image "
+            "segment in NITF file");
+    }
+
+    // find the LAS data hidden in a DE field, if any
+    const bool dataOK = locateLidarDataSegment();
+    if (REQUIRE_LIDAR_SEGMENTS && !dataOK)
+    {
+        throw pdal_error("Unable to find LIDARA data extension segment "
+            "in NITF file");
+    }
+
+    m_validLidarSegments = dataOK && imageOK;
+}
+
+
+void NitfFileReader::close()
+{
+    m_io.reset();
+}
+
+
+void NitfFileReader::getLasOffset(uint64_t& offset, uint64_t& length)
+{
+    offset = 0;
+    length = 0;
+
+    if (!m_validLidarSegments)
+        return;
+
+    nitf::List exts = m_record.getDataExtensions();
+    nitf::Uint32 segId = 0;
+    for (auto it = exts.begin(); it != exts.end(); ++it, ++segId)
+    {
+        if (segId == m_lidarDataSegment)
+        {
+            // Strange iterator doesn't support ->
+            nitf::DESegment seg = *it;
+            nitf::Uint64 seg_offset = seg.getOffset();
+            nitf::Uint64 seg_end = seg.getEnd();
+
+            offset = seg_offset;
+            length = seg_end - seg_offset;
+            return;
+        }
+    }
+    throw pdal_error("error reading nitf (1)");
+}
+
+
+void NitfFileReader::extractMetadata(MetadataNode& node)
+{
+    MetadataReader mr(m_record, node, SHOW_EMPTY_FIELDS);
+    mr.read();
+}
+
+
+// set the number of the first segment that is likely to be an image
+// of the lidar data, and return true iff we found one
+bool NitfFileReader::locateLidarImageSegment()
+{
+    // as per 3.2.3 (pag 19) and 3.2.4 (page 39)
+
+    ::nitf::ListIterator iter = m_record.getImages().begin();
+    const ::nitf::Uint32 numSegs = m_record.getNumImages();
+
+    for (::nitf::Uint32 segNum=0; segNum<numSegs; segNum++)
+    {
+        ::nitf::ImageSegment imseg = *iter;
+
+        ::nitf::ImageSubheader subheader = imseg.getSubheader();
+
+        ::nitf::Field field = subheader.getImageId();
+        ::nitf::Field::FieldType fieldType = field.getType();
+        if (fieldType != (::nitf::Field::FieldType)NITF_BCS_A)
+            throw pdal_error("error reading nitf (5)");
+        std::string iid1 = field.toString();
+
+        // BUG: shouldn't allow "None" here!
+        if (iid1 == "INTENSITY " || iid1 == "ELEVATION " ||
+            iid1 == "None      ")
+        {
+            return true;
+        }
+
+        iter++;
+    }
+
+    return false;
+}
+
+
+// set the number of the first segment that is likely to be the LAS
+// file, and return true iff we found it
+bool NitfFileReader::locateLidarDataSegment()
+{
+    // as per 3.2.5, page 59
+
+    ::nitf::ListIterator iter = m_record.getDataExtensions().begin();
+    const ::nitf::Uint32 numSegs = m_record.getNumDataExtensions();
+    for (::nitf::Uint32 segNum=0; segNum<numSegs; segNum++)
+    {
+        ::nitf::DESegment seg = *iter;
+
+        ::nitf::DESubheader subheader = seg.getSubheader();
+
+        ::nitf::Field idField = subheader.getTypeID();
+        if (idField.getType() != (::nitf::Field::FieldType)NITF_BCS_A)
+            throw pdal_error("error reading nitf (6)");
+
+        ::nitf::Field verField = subheader.getVersion();
+        if (verField.getType() != (::nitf::Field::FieldType)NITF_BCS_N)
+            throw pdal_error("error reading nitf (7)");
+
+        const std::string id = idField.toString();
+        const int ver = (int)verField;
+
+        if (id == "LIDARA DES               " && ver == 1)
+        {
+            m_lidarDataSegment = segNum;
+            return true;
+        }
+
+        iter++;
+    }
+
+    return false;
+}
+
+} // namespace pdal
+
diff --git a/plugins/nitf/io/NitfFileReader.hpp b/plugins/nitf/io/NitfFileReader.hpp
new file mode 100644
index 0000000..c09aec5
--- /dev/null
+++ b/plugins/nitf/io/NitfFileReader.hpp
@@ -0,0 +1,101 @@
+/******************************************************************************
+* Copyright (c) 2012, Michael P. Gerlek (mpg at flaxen.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Consulting LLC nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#pragma once
+
+#include <pdal/Options.hpp>
+#include <pdal/pdal_internal.hpp>
+
+#include <vector>
+
+#ifdef PDAL_COMPILER_GCC
+#  pragma GCC diagnostic push
+#  pragma GCC diagnostic ignored "-Wredundant-decls"
+#  pragma GCC diagnostic ignored "-Wextra"
+#  pragma GCC diagnostic ignored "-Wcast-qual"
+   // The following pragma doesn't actually work:
+   //   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61653
+   //#  pragma GCC diagnostic ignored "-Wliteral-suffix"
+#endif
+#ifdef PDAL_COMPILER_CLANG
+#  pragma clang diagnostic push
+#  pragma clang diagnostic ignored "-Wunused-private-field"
+#endif
+
+#include <nitro/c++/import/nitf.hpp>
+
+#ifdef PDAL_COMPILER_CLANG
+#  pragma clang diagnostic pop
+#endif
+#ifdef PDAL_COMPILER_GCC
+#  pragma GCC diagnostic pop
+#endif
+
+namespace pdal
+{
+    class MetadataNode;
+}
+
+namespace pdal
+{
+
+//
+// all the processing that is NITF-file specific goes in here
+//
+class PDAL_DLL NitfFileReader
+{
+public:
+    NitfFileReader(const std::string& filename);
+    NitfFileReader(const NitfFileReader&) = delete;
+    NitfFileReader& operator=(const NitfFileReader&) = delete;
+
+    void open();
+    void close();
+    void getLasOffset(uint64_t& offset, uint64_t& length);
+    void extractMetadata(MetadataNode& metadata);
+
+private:
+    bool locateLidarImageSegment();
+    bool locateLidarDataSegment();
+
+    std::unique_ptr<nitf::IOHandle> m_io;
+    nitf::Record m_record;
+
+    std::string m_filename;
+    bool m_validLidarSegments;
+    nitf::Uint32 m_lidarDataSegment;
+};
+
+
+} // namespaces
diff --git a/plugins/nitf/io/NitfFileWriter.cpp b/plugins/nitf/io/NitfFileWriter.cpp
new file mode 100644
index 0000000..1739f1e
--- /dev/null
+++ b/plugins/nitf/io/NitfFileWriter.cpp
@@ -0,0 +1,297 @@
+/******************************************************************************
+* Copyright (c) 2016, Hobu Inc. (info at hobu.co)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include "NitfFileWriter.hpp"
+
+#include <pdal/util/FileUtils.hpp>
+
+#include "tre_plugins.hpp"
+
+namespace pdal
+{
+
+NitfFileWriter::NitfFileWriter()
+{
+    register_tre_plugins();
+}
+
+
+void NitfFileWriter::addArgs(ProgramArgs& args)
+{
+    args.add("clevel", "Complexity level", m_cLevel, "03");
+    args.add("stype", "Standard type", m_sType, "BF01");
+    args.add("ostaid", "Origination station ID", m_oStationId, "PDAL");
+    args.add("ftitle", "File title", m_fileTitle);
+    args.add("fsclas", "File/data segment classification", m_fileClass, "U");
+    args.add("oname", "Originator's name", m_origName);
+    args.add("ophone", "Originator's phone number", m_origPhone);
+    args.add("fsctlh", "File control and handling",
+        m_securityControlAndHandling);
+    args.add("fsclsy", "File security classification system",
+        m_securityClassificationSystem);
+    args.add("isclas", "File security classification", m_imgSecurityClass, "U");
+    args.add("idatim", "Image date and time", m_imgDate);
+    args.add("iid2", "Image identifier 2", m_imgIdentifier2);
+    args.add("fscltx", "File classification text", m_sic);
+    args.add("aimidb", "Additional (airborne) image ID", m_aimidb);
+    args.add("acftb", "Aircraft information", m_acftb);
+}
+
+
+//NOTE: Throws except::Throwable.
+//
+void NitfFileWriter::write()
+{
+    ::nitf::Record record(NITF_VER_21);
+    ::nitf::FileHeader header = record.getHeader();
+    header.getFileHeader().set("NITF");
+
+    header.getComplianceLevel().set(m_cLevel);
+    header.getSystemType().set(m_sType);
+    header.getOriginStationID().set(m_oStationId);
+    if (m_fileTitle.empty())
+        m_fileTitle = FileUtils::getFilename(m_filename);
+    header.getFileTitle().set(m_fileTitle);
+    header.getClassification().set(m_fileClass);
+    header.getMessageCopyNum().set("00000");
+    header.getMessageNumCopies().set("00000");
+    header.getEncrypted().set("0");
+    header.getBackgroundColor().setRawData(const_cast<char*>("000"), 3);
+    header.getOriginatorName().set(m_origName);
+    header.getOriginatorPhone().set(m_origPhone);
+    header.getSecurityGroup().getClassificationSystem().set(
+        m_securityClassificationSystem);
+    header.getSecurityGroup().getControlAndHandling().set(
+       m_securityControlAndHandling);
+    header.getSecurityGroup().getClassificationText().set(m_sic);
+
+    ::nitf::DESegment des = record.newDataExtensionSegment();
+
+    des.getSubheader().getFilePartType().set("DE");
+    des.getSubheader().getTypeID().set("LIDARA DES");
+    des.getSubheader().getVersion().set("01");
+    // We currently use the file classification for the subheader, since the
+    // only thing we're writing is the data extension.
+    des.getSubheader().getSecurityClass().set(m_fileClass);
+    ::nitf::FileSecurity security = record.getHeader().getSecurityGroup();
+    des.getSubheader().setSecurityGroup(security.clone());
+
+    ::nitf::TRE usrHdr("LIDARA DES", "raw_data");
+    usrHdr.setField("raw_data", "not");
+    ::nitf::Field fld = usrHdr.getField("raw_data");
+    fld.setType(::nitf::Field::BINARY);
+
+    des.getSubheader().setSubheaderFields(usrHdr);
+
+    ::nitf::ImageSegment image = record.newImageSegment();
+    ::nitf::ImageSubheader subheader = image.getSubheader();
+
+    double corners[4][2];
+    corners[0][0] = m_bounds.maxy;
+    corners[0][1] = m_bounds.minx;
+    corners[1][0] = m_bounds.maxy;
+    corners[1][1] = m_bounds.maxx;
+    corners[2][0] = m_bounds.miny;
+    corners[2][1] = m_bounds.maxx;
+    corners[3][0] = m_bounds.miny;
+    corners[3][1] = m_bounds.minx;
+    subheader.setCornersFromLatLons(NRT_CORNERS_DECIMAL, corners);
+    subheader.getImageSecurityClass().set(m_imgSecurityClass);
+    subheader.setSecurityGroup(security.clone());
+    if (m_imgDate.size())
+        subheader.getImageDateAndTime().set(m_imgDate);
+
+    ::nitf::BandInfo info;
+    ::nitf::LookupTable lt(0,0);
+    info.init(" ",    /* The band representation, Nth band */
+              " ",      /* The band subcategory */
+              "N",      /* The band filter condition */
+              "   ",    /* The band standard image filter code */
+              0,        /* The number of look-up tables */
+              0,        /* The number of entries/LUT */
+              lt);     /* The look-up tables */
+
+    std::vector<::nitf::BandInfo> bands;
+    bands.push_back(info);
+    subheader.setPixelInformation(
+        "INT",      /* Pixel value type */
+        8,         /* Number of bits/pixel */
+        8,         /* Actual number of bits/pixel */
+        "R",       /* Pixel justification */
+        "NODISPLY",     /* Image representation */
+        "VIS",     /* Image category */
+        1,         /* Number of bands */
+        bands);
+
+    subheader.setBlocking(
+        8,   /*!< The number of rows */
+        8,   /*!< The number of columns */
+        8,   /*!< The number of rows/block */
+        8,   /*!< The number of columns/block */
+        "B");                /*!< Image mode */
+
+    //Image Header fields to set
+    subheader.getImageId().set("None");
+    subheader.getImageTitle().set(m_imgIdentifier2);
+
+    //AIMIDB
+    ::nitf::TRE aimidbTre("AIMIDB");
+
+    //LIDAR defaults
+    if (m_imgDate.size())
+        aimidbTre.setField("ACQUISITION_DATE", m_imgDate);
+    aimidbTre.setField("MISSION_NO", "UNKN");
+    aimidbTre.setField("MISSION_IDENTIFICATION", "NOT AVAIL.");
+    aimidbTre.setField("FLIGHT_NO", "00");
+    aimidbTre.setField("CURRENT_SEGMENT", "AA");
+    aimidbTre.setField("START_TILE_COLUMN", "001");
+    aimidbTre.setField("START_TILE_ROW", "00001");
+    aimidbTre.setField("END_SEGMENT", "00");
+    aimidbTre.setField("END_TILE_COLUMN", "001");
+    aimidbTre.setField("END_TILE_ROW", "00001");
+
+    for (auto& s : m_aimidb)
+    {
+        StringList v = Utils::split2(s, ':');
+        if (v.size() != 2)
+        {
+            std::ostringstream oss;
+            oss << "Invalid name/value for AIMIDB '" << s <<
+                "'.  Format: <name>:<value>.";
+            throw oss.str();
+        }
+        Utils::trim(v[0]);
+        Utils::trim(v[1]);
+        aimidbTre.setField(v[0], v[1]);
+    }
+    subheader.getExtendedSection().appendTRE(aimidbTre);
+
+    //if IDATIM is empty set it equal to AIMIDB.ACQUISITION_DATE
+    if (!m_imgDate.size())
+    {
+        m_imgDate = aimidbTre.getField("ACQUISITION_DATE").toString();
+        if (m_imgDate.size())
+            subheader.getImageDateAndTime().set(m_imgDate);
+    }
+
+    //ACFTB
+    ::nitf::TRE acftbTre("ACFTB");
+
+    //LIDAR defaults
+    acftbTre.setField("AC_MSN_ID", "NOT AVAILABLE");
+    acftbTre.setField("SCENE_SOURCE", " ");
+    if (m_imgDate.size()>7)
+        acftbTre.setField("PDATE", m_imgDate.substr(0,8));
+    acftbTre.setField("MPLAN", "999");
+    acftbTre.setField("LOC_ACCY", "000.00");
+    acftbTre.setField("ROW_SPACING", "0000000");
+    acftbTre.setField("ROW_SPACING_UNITS", "u");
+    acftbTre.setField("COL_SPACING", "0000000");
+    acftbTre.setField("COL_SPACING_UNITS", "u");
+    acftbTre.setField("FOCAL_LENGTH", "999.99");
+
+    for (auto& s : m_acftb)
+    {
+        StringList v = Utils::split2(s, ':');
+        if (v.size() != 2)
+        {
+            std::ostringstream oss;
+            oss << "Invalid name/value for ACFTB '" << s <<
+                "'.  Format: <name>:<value>.";
+            throw oss.str();
+        }
+        Utils::trim(v[0]);
+        Utils::trim(v[1]);
+        acftbTre.setField(v[0], v[1]);
+    }
+    subheader.getExtendedSection().appendTRE(acftbTre);
+
+    ::nitf::Writer writer;
+    ::nitf::IOHandle output_io(m_filename, NITF_ACCESS_WRITEONLY,
+        NITF_CREATE);
+    writer.prepare(output_io, record);
+
+    ::nitf::SegmentWriter sWriter = writer.newDEWriter(0);
+    sWriter.attachSource(*m_source);
+
+    // 64 char string
+    std::string zeros(64, '0');
+
+    ::nitf::MemorySource band(
+        const_cast<char*>(zeros.c_str()),
+        zeros.size() /* memory size */,
+        0 /* starting offset */,
+        1 /* bytes per pixel */,
+        0 /*skip*/);
+    ::nitf::ImageSource iSource;
+    iSource.addBand(band);
+
+    ::nitf::ImageWriter iWriter = writer.newImageWriter(0);
+    iWriter.attachSource(iSource);
+
+    writer.write();
+    output_io.close();
+}
+
+
+void NitfFileWriter::setBounds(const BOX3D& bounds)
+{
+    m_bounds = bounds;
+
+    //NITF decimal degree values for corner coordinates only has a
+    // precision of 3 after the decimal. This may cause an invalid
+    // polygon due to rounding errors with a small tile. Therefore
+    // instead of rounding min values will use the floor value and
+    // max values will use the ceiling values.
+    m_bounds.minx = (floor(m_bounds.minx * 1000)) / 1000.0;
+    m_bounds.miny = (floor(m_bounds.miny * 1000)) / 1000.0;
+    m_bounds.maxx = (ceil(m_bounds.maxx * 1000)) / 1000.0;
+    m_bounds.maxy = (ceil(m_bounds.maxy * 1000)) / 1000.0;
+}
+
+
+void NitfFileWriter::wrapData(const char *buf, size_t size)
+{
+    m_source.reset(new ::nitf::SegmentMemorySource(buf, size, 0, 0, false));
+}
+
+
+void NitfFileWriter::wrapData(const std::string& filename)
+{
+    m_inputHandle.reset(new nitf::IOHandle(filename));
+    m_source.reset(new nitf::SegmentFileSource(*m_inputHandle, 0, 0));
+}
+
+} // namespace pdal
+
diff --git a/plugins/nitf/io/NitfFileWriter.hpp b/plugins/nitf/io/NitfFileWriter.hpp
new file mode 100644
index 0000000..9009c37
--- /dev/null
+++ b/plugins/nitf/io/NitfFileWriter.hpp
@@ -0,0 +1,110 @@
+/******************************************************************************
+* Copyright (c) 2012, Michael P. Gerlek (mpg at flaxen.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Consulting LLC nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#pragma once
+
+#include <pdal/Options.hpp>
+#include <pdal/util/ProgramArgs.hpp>
+
+#include <vector>
+
+#ifdef PDAL_COMPILER_GCC
+#  pragma GCC diagnostic push
+#  pragma GCC diagnostic ignored "-Wredundant-decls"
+#  pragma GCC diagnostic ignored "-Wextra"
+#  pragma GCC diagnostic ignored "-Wcast-qual"
+   // The following pragma doesn't actually work:
+   //   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61653
+   //#  pragma GCC diagnostic ignored "-Wliteral-suffix"
+#endif
+#ifdef PDAL_COMPILER_CLANG
+#  pragma clang diagnostic push
+#  pragma clang diagnostic ignored "-Wunused-private-field"
+#endif
+
+#include <nitro/c++/import/nitf.hpp>
+
+#ifdef PDAL_COMPILER_CLANG
+#  pragma clang diagnostic pop
+#endif
+#ifdef PDAL_COMPILER_GCC
+#  pragma GCC diagnostic pop
+#endif
+
+namespace pdal
+{
+
+//
+// all the processing that is NITF-file specific goes in here
+//
+class PDAL_DLL NitfFileWriter
+{
+public:
+    NitfFileWriter();
+    NitfFileWriter(const NitfFileWriter&) = delete;
+    NitfFileWriter& operator=(const NitfFileWriter&) = delete;
+
+    void setFilename(const std::string& filename)
+        { m_filename = filename; }
+    void wrapData(const char *buf, size_t size);
+    void wrapData(const std::string& filename);
+    void addArgs(ProgramArgs& args);
+    void setBounds(const BOX3D& bounds);
+    void write();
+
+    std::unique_ptr<nitf::DataSource> m_source;
+    std::unique_ptr<nitf::IOHandle> m_inputHandle;
+
+    std::string m_cLevel;
+    std::string m_sType;
+    std::string m_oStationId;
+    std::string m_fileTitle;
+    std::string m_fileClass;
+    std::string m_origName;
+    std::string m_origPhone;
+    std::string m_securityControlAndHandling;
+    std::string m_securityClassificationSystem;
+    std::string m_imgSecurityClass;
+    std::string m_imgDate;
+    StringList m_aimidb;
+    StringList m_acftb;
+    std::string m_imgIdentifier2;
+    std::string m_sic;
+    BOX3D m_bounds;
+
+    std::string m_filename;
+};
+
+
+} // namespaces
diff --git a/plugins/nitf/io/NitfReader.cpp b/plugins/nitf/io/NitfReader.cpp
index d1f3846..9cac20e 100644
--- a/plugins/nitf/io/NitfReader.cpp
+++ b/plugins/nitf/io/NitfReader.cpp
@@ -32,7 +32,7 @@
 * OF SUCH DAMAGE.
 ****************************************************************************/
 
-#include "NitfFile.hpp"
+#include "NitfFileReader.hpp"
 #include "NitfReader.hpp"
 #include <pdal/pdal_macros.hpp>
 
@@ -100,15 +100,13 @@ std::string NitfReader::getName() const { return s_info.name; }
 
 void NitfReader::initialize(PointTableRef table)
 {
-    NitfFile nitf(m_filename);
+    NitfFileReader nitf(m_filename);
     nitf.open();
     nitf.getLasOffset(m_offset, m_length);
     nitf.extractMetadata(m_metadata);
     m_metadata.add("DESDATA_OFFSET", m_offset);
     m_metadata.add("DESDATA_LENGTH", m_length);
 
-    nitf.close();
-
     // Initialize the LAS stuff with its own metadata node.
     MetadataNode lasNode = m_metadata.add(LasReader::getName());
     initializeLocal(table, lasNode);
diff --git a/plugins/nitf/io/NitfWriter.cpp b/plugins/nitf/io/NitfWriter.cpp
index 47b0b04..db7d7e2 100644
--- a/plugins/nitf/io/NitfWriter.cpp
+++ b/plugins/nitf/io/NitfWriter.cpp
@@ -37,21 +37,10 @@
 
 #include "NitfWriter.hpp"
 
+#include <pdal/GDALUtils.hpp>
 #include <pdal/pdal_macros.hpp>
-
 #include <pdal/PointView.hpp>
 
-#ifdef PDAL_COMPILER_GCC
-#  pragma GCC diagnostic push
-#  pragma GCC diagnostic ignored "-Wredundant-decls"
-#  pragma GCC diagnostic ignored "-Wextra"
-#  pragma GCC diagnostic ignored "-Wcast-qual"
-   // The following pragma doesn't actually work:
-   //   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61653
-   //#  pragma GCC diagnostic ignored "-Wliteral-suffix"
-#endif
-#include <ogr_spatialref.h>
-#include <cpl_conv.h>
 #ifdef PDAL_COMPILER_CLANG
 #  pragma clang diagnostic push
 #  pragma clang diagnostic ignored "-Wunused-private-field"
@@ -86,49 +75,23 @@ CREATE_SHARED_PLUGIN(1, 0, NitfWriter, Writer, s_info)
 
 std::string NitfWriter::getName() const { return s_info.name; }
 
-BOX3D reprojectBoxToDD(const SpatialReference& reference, const BOX3D& box)
+BOX3D NitfWriter::reprojectBoxToDD(const SpatialReference& reference,
+    const BOX3D& box)
 {
     if (reference.empty())
         return BOX3D();
 
     BOX3D output(box);
-
-    OGRSpatialReferenceH current =
-        OSRNewSpatialReference(reference.getWKT(SpatialReference::eCompoundOK,
-            false).c_str());
-    OGRSpatialReferenceH dd = OSRNewSpatialReference(0);
-
-    OGRErr err = OSRSetFromUserInput(dd, const_cast<char *>("EPSG:4326"));
-    if (err != OGRERR_NONE)
-        throw std::invalid_argument("could not import coordinate system "
-            "into OGRSpatialReference SetFromUserInput");
-
-    OGRCoordinateTransformationH transform =
-        OCTNewCoordinateTransformation(current, dd);
-
-    int ret = OCTTransform(transform, 1,
-        &output.minx, &output.miny, &output.minz);
-    if (ret == 0)
+    if (!gdal::reprojectBounds(output,
+        reference.getWKT(SpatialReference::eCompoundOK, false),
+        "EPSG:4326"))
     {
         std::ostringstream msg;
-        msg << "Could not project point for reprojectBoxToDD::min" <<
-            CPLGetLastErrorMsg() << ret;
-        throw pdal_error(msg.str());
-    }
 
-    OCTTransform(transform, 1, &output.maxx, &output.maxy, &output.maxz);
-    if (ret == 0)
-    {
-        std::ostringstream msg;
-        msg << "Could not project point for reprojectBoxToDD::max" <<
-            CPLGetLastErrorMsg() << ret;
+        msg << getName() << ": Couldn't reproject corner points to "
+            "geographic: " << gdal::lastError();
         throw pdal_error(msg.str());
     }
-
-    OCTDestroyCoordinateTransformation(transform);
-    OSRDestroySpatialReference(current);
-    OSRDestroySpatialReference(dd);
-
     return output;
 }
 
@@ -139,32 +102,17 @@ NitfWriter::NitfWriter()
 }
 
 
-void NitfWriter::processOptions(const Options& options)
+void NitfWriter::addArgs(ProgramArgs& args)
 {
-    LasWriter::processOptions(options);
-    m_cLevel = options.getValueOrDefault<std::string>("clevel","03");
-    m_sType = options.getValueOrDefault<std::string>("stype","BF01");
-    m_oStationId = options.getValueOrDefault<std::string>("ostaid", "PDAL");
-    m_fileTitle = options.getValueOrDefault<std::string>("ftitle");
-    m_fileClass = options.getValueOrDefault<std::string>("fsclas","U");
-    m_origName = options.getValueOrDefault<std::string>("oname");
-    m_origPhone = options.getValueOrDefault<std::string>("ophone");
-    m_securityClass = options.getValueOrDefault<std::string>("fsclas","U");
-    m_securityControlAndHandling =
-        options.getValueOrDefault<std::string>("fsctlh");
-    m_securityClassificationSystem =
-        options.getValueOrDefault<std::string>("fsclsy");
-    m_imgSecurityClass = options.getValueOrDefault<std::string>("fsclas","U");
-    m_imgDate = options.getValueOrDefault<std::string>("idatim");
-    m_imgIdentifier2 = options.getValueOrDefault<std::string>("iid2");
-    m_sic = options.getValueOrDefault<std::string>("fscltx");
-    m_aimidb = options.getValueOrDefault<StringList>("aimidb");
-    m_acftb = options.getValueOrDefault<StringList>("acftb");
+    LasWriter::addArgs(args);
+    m_nitf.addArgs(args);
 }
 
 
 void NitfWriter::writeView(const PointViewPtr view)
 {
+    //ABELL - Think we can just get this from the LAS file header
+    //  when we're done.
     view->calculateBounds(m_bounds);
     LasWriter::writeView(view);
 }
@@ -173,8 +121,9 @@ void NitfWriter::writeView(const PointViewPtr view)
 void NitfWriter::readyFile(const std::string& filename,
     const SpatialReference& srs)
 {
+    m_nitf.setFilename(filename);
     m_error.setFilename(filename);
-    m_nitfFilename = filename;
+
     Utils::writeProgress(m_progressFd, "READYFILE", filename);
     prepOutput(&m_oss, srs);
 }
@@ -184,217 +133,19 @@ void NitfWriter::doneFile()
 {
     finishOutput();
 
-    try
-    {
-        ::nitf::Record record(NITF_VER_21);
-        ::nitf::FileHeader header = record.getHeader();
-        header.getFileHeader().set("NITF");
-        header.getComplianceLevel().set(m_cLevel);
-        header.getSystemType().set(m_sType);
-        header.getOriginStationID().set(m_oStationId);
-        if (m_fileTitle.empty())
-        	m_fileTitle = FileUtils::getFilename(m_nitfFilename);
-        header.getFileTitle().set(m_fileTitle);
-        header.getClassification().set(m_fileClass);
-        header.getMessageCopyNum().set("00000");
-        header.getMessageNumCopies().set("00000");
-        header.getEncrypted().set("0");
-        header.getBackgroundColor().setRawData(const_cast<char*>("000"), 3);
-        header.getOriginatorName().set(m_origName);
-        header.getOriginatorPhone().set(m_origPhone);
-        header.getSecurityGroup().getClassificationSystem().set(
-            m_securityClassificationSystem);
-        header.getSecurityGroup().getControlAndHandling().set(
-            m_securityControlAndHandling);
-        header.getSecurityGroup().getClassificationText().set(m_sic);
-
-        ::nitf::DESegment des = record.newDataExtensionSegment();
-
-        des.getSubheader().getFilePartType().set("DE");
-        des.getSubheader().getTypeID().set("LIDARA DES");
-        des.getSubheader().getVersion().set("01");
-        des.getSubheader().getSecurityClass().set(m_securityClass);
-        ::nitf::FileSecurity security = record.getHeader().getSecurityGroup();
-        des.getSubheader().setSecurityGroup(security.clone());
-
-        ::nitf::TRE usrHdr("LIDARA DES", "raw_data");
-        usrHdr.setField("raw_data", "not");
-        ::nitf::Field fld = usrHdr.getField("raw_data");
-        fld.setType(::nitf::Field::BINARY);
-
-        std::streambuf *buf = m_oss.rdbuf();
-        long size = buf->pubseekoff(0, m_oss.end);
-        buf->pubseekoff(0, m_oss.beg);
-
-        std::vector<char> bytes(size);
-        buf->sgetn(bytes.data(), size);
-        m_oss.clear();
-
-        des.getSubheader().setSubheaderFields(usrHdr);
-
-        ::nitf::ImageSegment image = record.newImageSegment();
-        ::nitf::ImageSubheader subheader = image.getSubheader();
+    std::streambuf *buf = m_oss.rdbuf();
+    long size = buf->pubseekoff(0, m_oss.end);
+    buf->pubseekoff(0, m_oss.beg);
 
-        BOX3D bounds =  reprojectBoxToDD(m_srs, m_bounds);
+    std::vector<char> bytes(size);
+    buf->sgetn(bytes.data(), size);
+    m_oss.clear();
+    m_nitf.wrapData(bytes.data(), size);
+    m_nitf.setBounds(reprojectBoxToDD(m_srs, m_bounds));
 
-        //NITF decimal degree values for corner coordinates only has a
-        // precision of 3 after the decimal. This may cause an invalid
-        // polygon due to rounding errors with a small tile. Therefore
-        // instead of rounding min values will use the floor value and
-        // max values will use the ceiling values.
-        bounds.minx = (floor(bounds.minx * 1000)) / 1000.0;
-        bounds.miny = (floor(bounds.miny * 1000)) / 1000.0;
-        bounds.maxx = (ceil(bounds.maxx * 1000)) / 1000.0;
-        bounds.maxy = (ceil(bounds.maxy * 1000)) / 1000.0;
-
-        double corners[4][2];
-        corners[0][0] = bounds.maxy;
-        corners[0][1] = bounds.minx;
-        corners[1][0] = bounds.maxy;
-        corners[1][1] = bounds.maxx;
-        corners[2][0] = bounds.miny;
-        corners[2][1] = bounds.maxx;
-        corners[3][0] = bounds.miny;
-        corners[3][1] = bounds.minx;
-        subheader.setCornersFromLatLons(NRT_CORNERS_DECIMAL, corners);
-
-        subheader.getImageSecurityClass().set(m_imgSecurityClass);
-        subheader.setSecurityGroup(security.clone());
-        if (m_imgDate.size())
-            subheader.getImageDateAndTime().set(m_imgDate);
-
-        ::nitf::BandInfo info;
-        ::nitf::LookupTable lt(0,0);
-        info.init(" ",    /* The band representation, Nth band */
-                  " ",      /* The band subcategory */
-                  "N",      /* The band filter condition */
-                  "   ",    /* The band standard image filter code */
-                  0,        /* The number of look-up tables */
-                  0,        /* The number of entries/LUT */
-                  lt);     /* The look-up tables */
-
-        std::vector< ::nitf::BandInfo> bands;
-        bands.push_back(info);
-        subheader.setPixelInformation(
-            "INT",      /* Pixel value type */
-            8,         /* Number of bits/pixel */
-            8,         /* Actual number of bits/pixel */
-            "R",       /* Pixel justification */
-            "NODISPLY",     /* Image representation */
-            "VIS",     /* Image category */
-            1,         /* Number of bands */
-            bands);
-
-        subheader.setBlocking(
-            8,   /*!< The number of rows */
-            8,  /*!< The number of columns */
-            8, /*!< The number of rows/block */
-            8,  /*!< The number of columns/block */
-            "B");                /*!< Image mode */
-
-        //Image Header fields to set
-        subheader.getImageId().set("None");
-        subheader.getImageTitle().set(m_imgIdentifier2);
-
-        // 64 char string
-        std::string zeros(64, '0');
-
-        std::unique_ptr< ::nitf::BandSource> band(new ::nitf::MemorySource(
-            const_cast<char*>(zeros.c_str()),
-            zeros.size() /* memory size */,
-            0 /* starting offset */,
-            1 /* bytes per pixel */,
-            0 /*skip*/));
-        ::nitf::ImageSource iSource;
-        iSource.addBand(*band);
-
-        //AIMIDB
-        ::nitf::TRE aimidbTre("AIMIDB");
-
-        //LIDAR defaults
-        if (m_imgDate.size())
-        	aimidbTre.setField("ACQUISITION_DATE", m_imgDate);
-        aimidbTre.setField("MISSION_NO", "UNKN");
-        aimidbTre.setField("MISSION_IDENTIFICATION", "NOT AVAIL.");
-        aimidbTre.setField("FLIGHT_NO", "00");
-        aimidbTre.setField("CURRENT_SEGMENT", "AA");
-        aimidbTre.setField("START_TILE_COLUMN", "001");
-        aimidbTre.setField("START_TILE_ROW", "00001");
-        aimidbTre.setField("END_SEGMENT", "00");
-        aimidbTre.setField("END_TILE_COLUMN", "001");
-        aimidbTre.setField("END_TILE_ROW", "00001");
-
-        for (auto& s : m_aimidb)
-        {
-            StringList v = Utils::split2(s, ':');
-            if (v.size() != 2)
-            {
-                std::ostringstream oss;
-                oss << "Invalid name/value for AIMIDB '" << s <<
-                    "'.  Format: <name>:<value>.";
-                throw oss.str();
-            }
-            Utils::trim(v[0]);
-            Utils::trim(v[1]);
-            aimidbTre.setField(v[0], v[1]);
-        }
-        subheader.getExtendedSection().appendTRE(aimidbTre);
-
-		//if IDATIM is empty set it equal to AIMIDB.ACQUISITION_DATE
-        if(!m_imgDate.size())
-        {
-        	m_imgDate=aimidbTre.getField("ACQUISITION_DATE").toString();
-			if (m_imgDate.size())
-				subheader.getImageDateAndTime().set(m_imgDate);
-        }
-
-        //ACFTB
-        ::nitf::TRE acftbTre("ACFTB");
-
-        //LIDAR defaults
-        acftbTre.setField("AC_MSN_ID", "NOT AVAILABLE");
-        acftbTre.setField("SCENE_SOURCE", " ");
-        if (m_imgDate.size()>7)
-        	acftbTre.setField("PDATE", m_imgDate.substr(0,8));
-        acftbTre.setField("MPLAN", "999");
-        acftbTre.setField("LOC_ACCY", "000.00");
-        acftbTre.setField("ROW_SPACING", "0000000");
-        acftbTre.setField("ROW_SPACING_UNITS", "u");
-        acftbTre.setField("COL_SPACING", "0000000");
-        acftbTre.setField("COL_SPACING_UNITS", "u");
-        acftbTre.setField("FOCAL_LENGTH", "999.99");
-
-        for (auto& s : m_acftb)
-        {
-            StringList v = Utils::split2(s, ':');
-            if (v.size() != 2)
-            {
-                std::ostringstream oss;
-                oss << "Invalid name/value for ACFTB '" << s <<
-                    "'.  Format: <name>:<value>.";
-                throw oss.str();
-            }
-            Utils::trim(v[0]);
-            Utils::trim(v[1]);
-            acftbTre.setField(v[0], v[1]);
-        }
-        subheader.getExtendedSection().appendTRE(acftbTre);
-
-        ::nitf::Writer writer;
-        ::nitf::IOHandle output_io(m_nitfFilename.c_str(),
-            NITF_ACCESS_WRITEONLY, NITF_CREATE);
-        writer.prepare(output_io, record);
-
-        ::nitf::SegmentWriter sWriter = writer.newDEWriter(0);
-
-        ::nitf::SegmentMemorySource sSource(bytes.data(), size, 0, 0, false);
-        sWriter.attachSource(sSource);
-
-        ::nitf::ImageWriter iWriter = writer.newImageWriter(0);
-        iWriter.attachSource(iSource);
-
-        writer.write();
-        output_io.close();
+    try
+    {
+        m_nitf.write();
     }
     catch (except::Throwable & t)
     {
diff --git a/plugins/nitf/io/NitfWriter.hpp b/plugins/nitf/io/NitfWriter.hpp
index f5330ea..302cb14 100644
--- a/plugins/nitf/io/NitfWriter.hpp
+++ b/plugins/nitf/io/NitfWriter.hpp
@@ -37,6 +37,8 @@
 #include <pdal/StageFactory.hpp>
 #include <las/LasWriter.hpp>
 
+#include "NitfFileWriter.hpp"
+
 namespace pdal
 {
 
@@ -51,31 +53,16 @@ public:
     std::string getName() const;
 
 private:
-    virtual void processOptions(const Options& options);
+    NitfFileWriter m_nitf;
+    std::stringstream m_oss;
+    BOX3D m_bounds;
+
+    virtual void addArgs(ProgramArgs& args);
     virtual void readyFile(const std::string& filename,
         const SpatialReference& srs);
     virtual void doneFile();
     virtual void writeView(const PointViewPtr view);
-
-    std::string m_nitfFilename;
-    BOX3D m_bounds;
-    std::string m_cLevel;
-    std::string m_sType;
-    std::string m_oStationId;
-    std::string m_fileTitle;
-    std::string m_fileClass;
-    std::string m_origName;
-    std::string m_origPhone;
-    std::string m_securityClass;
-    std::string m_securityControlAndHandling;
-    std::string m_securityClassificationSystem;
-    std::string m_imgSecurityClass;
-    std::string m_imgDate;
-    StringList m_aimidb;
-    StringList m_acftb;
-    std::string m_imgIdentifier2;
-    std::string m_sic;
-    std::stringstream m_oss;
+    BOX3D reprojectBoxToDD(const SpatialReference& reference, const BOX3D& box);
 
     NitfWriter& operator=(const NitfWriter&); // not implemented
     NitfWriter(const NitfWriter&); // not implemented
diff --git a/plugins/nitf/test/NitfReaderTest.cpp b/plugins/nitf/test/NitfReaderTest.cpp
index 49fbb3b..eb6bb5d 100644
--- a/plugins/nitf/test/NitfReaderTest.cpp
+++ b/plugins/nitf/test/NitfReaderTest.cpp
@@ -69,14 +69,14 @@ TEST(NitfReaderTest, test_one)
     PointViewPtr view = *pbSet.begin();
 
     // check metadata
-//ABELL
-/**
-    {
-        Metadata metadata = nitf_reader.getMetadata();
-        /////////////////////////////////////////////////EXPECT_EQ(metadatums.size(), 80u);
-        EXPECT_EQ(metadata.toPTree().get<std::string>("metadata.FH_FDT.value"), "20120323002946");
-    }
-**/
+    MetadataNode m = nitf_reader->getMetadata();
+    MetadataNode n = m.findChild(
+        [](MetadataNode& m){ return m.name() == "IM:0.IGEOLO"; }
+    );
+    EXPECT_EQ(n.value(),
+        "440344N1230429W440344N1230346W440300N1230346W440300N1230429W");
+    n = m.findChild("FH.FDT");
+    EXPECT_EQ(n.value(), "20120323002946");
 
     //
     // read LAS
@@ -116,50 +116,6 @@ TEST(NitfReaderTest, test_one)
     }
 }
 
-
-TEST(NitfReaderTest, test_chipperXML)
-{
-    Option option("filename", Support::configuredpath("nitf/chipper.xml"));
-    Options options(option);
-
-    PointTable table;
-
-    PipelineManager mgr;
-
-    mgr.readPipeline(Support::configuredpath("nitf/chipper.xml"));
-    //ABELL - need faux writer or something.
-    /**
-    mgr.execute();
-    StageSequentialIterator* iter = reader.createSequentialIterator(data);
-    const uint32_t num_read = iter->read(data);
-    EXPECT_EQ(num_read, 13u);
-
-    uint32_t num_blocks = chipper->GetBlockCount();
-    EXPECT_EQ(num_blocks, 8u);
-    **/
-}
-
-TEST(NitfReaderTest, test_chipperJSON)
-{
-    Option option("filename", Support::configuredpath("nitf/chipper.json"));
-    Options options(option);
-
-    PointTable table;
-
-    PipelineManager mgr;
-    mgr.readPipeline(Support::configuredpath("nitf/chipper.json"));
-    //ABELL - need faux writer or something.
-    /**
-    mgr.execute();
-    StageSequentialIterator* iter = reader.createSequentialIterator(data);
-    const uint32_t num_read = iter->read(data);
-    EXPECT_EQ(num_read, 13u);
-
-    uint32_t num_blocks = chipper->GetBlockCount();
-    EXPECT_EQ(num_blocks, 8u);
-    **/
-}
-
 TEST(NitfReaderTest, optionSrs)
 {
     StageFactory f;
diff --git a/plugins/nitf/test/NitfWriterTest.cpp b/plugins/nitf/test/NitfWriterTest.cpp
index 6f276fb..8900ac5 100644
--- a/plugins/nitf/test/NitfWriterTest.cpp
+++ b/plugins/nitf/test/NitfWriterTest.cpp
@@ -83,6 +83,18 @@ void compare_contents(const std::string& las_file, const std::string& ntf_file)
     EXPECT_EQ(ntfViews.size(), 1u);
     PointViewPtr ntfView = *ntfViews.begin();
 
+    MetadataNode root = ntf_reader->getMetadata();
+    MetadataNode n = root.findChild("FH.FTITLE");
+    EXPECT_EQ(n.value(), "LiDAR from somewhere");
+    n = root.findChild("FH.ONAME");
+    EXPECT_EQ(n.value(), "Howard Butler");
+    n = root.findChild("FH.OPHONE");
+    EXPECT_EQ(n.value(), "5155554628");
+    n = root.findChild([](MetadataNode& m)
+        { return m.name() == "IM:0.IDATIM"; }
+    );
+    EXPECT_EQ(n.value(), "20110516183337");
+
     //
     // compare the two views
     //
@@ -107,8 +119,6 @@ TEST(NitfWriterTest, test1)
 
     const std::string las_input(Support::datapath("las/1.2-with-color.las"));
     const std::string nitf_output(Support::temppath("temp_nitf.ntf"));
-    const std::string reference_output(
-        Support::datapath("nitf/write_test1.ntf"));
 
     FileUtils::deleteFile(nitf_output);
 
@@ -131,7 +141,7 @@ TEST(NitfWriterTest, test1)
         Option cls("fsclas", "S");
         writer_opts.add(cls);
 
-        Option phone("ophone", "5159664628");
+        Option phone("ophone", "5155554628");
         writer_opts.add(phone);
 
         Option name("oname", "Howard Butler");
@@ -166,25 +176,11 @@ TEST(NitfWriterTest, test1)
     }
 
     //
-    // check the generated NITF
-    //
-    //ABELL - This doesn't work and is probably broken because the reference
-    //  file is out of date, but some method of comparing the NITF wrapper
-    //  instead of a byte-by-byte file diff is probably in order.
-/**
-    bool filesSame = Support::compare_files(nitf_output, reference_output);
-    EXPECT_TRUE(filesSame);
-**/
-
-    //
     // check the LAS contents against the source image
     //
-    //ABELL - This tells us that the packaged file (LAS) is fine, but it
-    //  doesn't tell us much about the NITF wrapper.
     compare_contents(las_input, nitf_output);
 
-//    if (filesSame)
-        FileUtils::deleteFile(Support::temppath(nitf_output));
+    FileUtils::deleteFile(Support::temppath(nitf_output));
 }
 
 // Test that data from three input views gets written to separate output files.
diff --git a/plugins/oci/io/OciCommon.cpp b/plugins/oci/io/OciCommon.cpp
index 2404d7a..d8ae64a 100644
--- a/plugins/oci/io/OciCommon.cpp
+++ b/plugins/oci/io/OciCommon.cpp
@@ -37,7 +37,7 @@
 #include <iostream>
 
 #include <pdal/Dimension.hpp>
-#include <pdal/util/FileUtils.hpp>
+#include <pdal/PDALUtils.hpp>
 
 namespace pdal
 {
@@ -48,13 +48,13 @@ Connection connect(std::string connSpec)
 
     std::string connection(connSpec);
 
-    if (FileUtils::fileExists(connection))
+    if (Utils::fileExists(connection))
     {
         std::istream::pos_type size;
-        std::istream* input = FileUtils::openFile(connection, true);
+        std::istream* input = Utils::openFile(connection, true);
         if (!input->good())
         {
-            FileUtils::closeFile(input);
+            Utils::closeFile(input);
             throw pdal_error("Unable to open connection filename for Oracle!");
         }
 
@@ -70,7 +70,7 @@ Connection connect(std::string connSpec)
         }
         connection = output;
 
-        FileUtils::closeFile(input);
+        Utils::closeFile(input);
     }
 
     Connection con;
diff --git a/plugins/oci/io/OciReader.cpp b/plugins/oci/io/OciReader.cpp
index d7f3e15..733df32 100644
--- a/plugins/oci/io/OciReader.cpp
+++ b/plugins/oci/io/OciReader.cpp
@@ -35,6 +35,8 @@
 #include <pdal/Compression.hpp>
 #include <pdal/GDALUtils.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/PDALUtils.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include "OciReader.hpp"
 
@@ -50,18 +52,18 @@ CREATE_SHARED_PLUGIN(1, 0, OciReader, Reader, s_info)
 
 std::string OciReader::getName() const { return s_info.name; }
 
-void OciReader::processOptions(const Options& options)
+void OciReader::addArgs(ProgramArgs& args)
 {
-    m_schemaFile = options.getValueOrDefault<std::string>("xml_schema_dump");
-    m_spatialRef =
-        options.getValueOrDefault<pdal::SpatialReference>("spatialreference");
-    m_query = options.getValueOrThrow<std::string>("query");
-    m_connSpec = options.getValueOrDefault<std::string>("connection");
-
-    m_updatePointSourceId =  options.getValueOrDefault<bool>(
-        "populate_pointsourceid", false);
+    args.add("query", "SQL query to retrieve points", m_query).setPositional();
+    args.add("xml_schema_dump", "File to which schema should be written",
+        m_schemaFile);
+    args.add("connection", "Connection string", m_connSpec);
+    args.add("populate_pointsourceid", "Set point source ID",
+        m_updatePointSourceId);
+    addSpatialReferenceArg(args);
 }
 
+
 void OciReader::initialize()
 {
     m_compression = false;
@@ -137,27 +139,6 @@ void OciReader::defineBlock(Statement stmt, BlockPtr block) const
 }
 
 
-Options OciReader::getDefaultOptions()
-{
-    Options options;
-
-    Option connection("connection", std::string(), "Oracle connection "
-        "string to connect to database");
-
-    Option query("query", std::string(), "SELECT statement that returns "
-        "an SDO_PC object as its first and only queried item.");
-
-    Option xml_schema_dump("xml_schema_dump", std::string(),
-        "Filename to dump the XML schema to.");
-
-    options.add(connection);
-    options.add(query);
-    options.add(xml_schema_dump);
-
-    return options;
-}
-
-
 // Throws an exception if a query is invalid.
 void OciReader::validateQuery()
 {
@@ -252,7 +233,7 @@ void OciReader::addDimensions(PointLayoutPtr layout)
     if (m_schemaFile.size())
     {
         std::string pcSchema = schema.xml();
-        std::ostream *out = FileUtils::createFile(m_schemaFile);
+        std::ostream *out = Utils::createFile(m_schemaFile);
         out->write(pcSchema.c_str(), pcSchema.size());
         FileUtils::closeFile(out);
     }
diff --git a/plugins/oci/io/OciReader.hpp b/plugins/oci/io/OciReader.hpp
index 0fdfdd4..50c1e0c 100644
--- a/plugins/oci/io/OciReader.hpp
+++ b/plugins/oci/io/OciReader.hpp
@@ -49,16 +49,16 @@ class PDAL_DLL OciReader : public DbReader
 public:
     OciReader()
     {}
+    OciReader& operator=(const OciReader&) = delete;
+    OciReader(const OciReader&) = delete;
 
     static void * create();
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
+    virtual void addArgs(ProgramArgs& args);
     virtual void initialize();
-    virtual void processOptions(const Options& options);
     virtual void addDimensions(PointLayoutPtr layout);
     virtual void ready(PointTableRef table)
         { m_atEnd = false; }
@@ -92,9 +92,6 @@ private:
     bool m_atEnd;
     std::map<int32_t, XMLSchema> m_schemas;
     bool m_compression;
-
-    OciReader& operator=(const OciReader&); // not implemented
-    OciReader(const OciReader&); // not implemented
 };
 
 } // namespace pdal
diff --git a/plugins/oci/io/OciWriter.cpp b/plugins/oci/io/OciWriter.cpp
index c90a366..20609a2 100644
--- a/plugins/oci/io/OciWriter.cpp
+++ b/plugins/oci/io/OciWriter.cpp
@@ -33,11 +33,12 @@
 ****************************************************************************/
 
 
-#include <pdal/util/FileUtils.hpp>
 #include <pdal/Compression.hpp>
 #include <pdal/PointView.hpp>
 #include <pdal/StageFactory.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/PDALUtils.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include "OciWriter.hpp"
 
@@ -72,21 +73,11 @@ OciWriter::OciWriter()
 {}
 
 
-void OciWriter::initialize()
-{
-    gdal::registerDrivers();
-    m_connection = connect(m_connSpec);
-    m_gtype = getGType();
-}
-
-
+/**
 Options OciWriter::getDefaultOptions()
 {
     Options options;
 
-    Option is3d("is3d",  false,
-        "Should we use 3D objects (include the z dimension) for SDO_PC "
-        "PC_EXTENT, BLK_EXTENT, and indexing");
     Option solid("solid", false,
         "Define the point cloud's PC_EXTENT geometry gtype as (1,1007,3) "
         "instead of the normal (1,1003,3), and use gtype 3008/2008 vs "
@@ -185,6 +176,7 @@ Options OciWriter::getDefaultOptions()
 
     return options;
 }
+**/
 
 
 void OciWriter::runCommand(std::ostringstream const& command)
@@ -396,7 +388,7 @@ bool OciWriter::isGeographic(int32_t srid)
 
 std::string OciWriter::loadSQLData(std::string const& filename)
 {
-    if (!FileUtils::fileExists(filename))
+    if (!Utils::fileExists(filename))
     {
         std::ostringstream oss;
         oss << filename << " does not exist";
@@ -404,10 +396,10 @@ std::string OciWriter::loadSQLData(std::string const& filename)
     }
 
     std::istream::pos_type size;
-    std::istream* input = FileUtils::openFile(filename, true);
+    std::istream* input = Utils::openFile(filename, true);
     if (!input->good())
     {
-        FileUtils::closeFile(input);
+        Utils::closeFile(input);
         return std::string();
     }
 
@@ -422,7 +414,7 @@ std::string OciWriter::loadSQLData(std::string const& filename)
             output = line;
     }
 
-    FileUtils::closeFile(input);
+    Utils::closeFile(input);
 
     return output;
 }
@@ -434,7 +426,7 @@ void OciWriter::runFileSQL(std::string const& sql)
         return;
 
     std::ostringstream oss;
-    if (!FileUtils::fileExists(sql))
+    if (!Utils::fileExists(sql))
         oss << sql;
     else
         // Our "sql" is really the filename in the ptree
@@ -592,7 +584,7 @@ void OciWriter::createPCEntry()
     std::ostringstream wkt_s;
     if (!m_baseTableBoundaryColumn.empty())
     {
-        if (!FileUtils::fileExists(m_baseTableBoundaryWkt))
+        if (!Utils::fileExists(m_baseTableBoundaryWkt))
         {
             if (!isValidWKT(m_baseTableBoundaryWkt))
             {
@@ -636,17 +628,6 @@ void OciWriter::createPCEntry()
             m_baseTableName << " table. Does the table exist? " << e.what();
         throw pdal_error(oss.str());
     }
-
-    try
-    {
-        Option& pc_id = m_options.getOptionByRef("pc_id");
-        pc_id.setValue(m_pc_id);
-    }
-    catch (Option::not_found)
-    {
-        Option pc_id("pc_id", m_pc_id, "Point Cloud Id");
-        m_options.add(pc_id);
-    }
 }
 
 
@@ -661,60 +642,91 @@ bool OciWriter::isValidWKT(std::string const& input)
 }
 
 
-void OciWriter::processOptions(const Options& options)
+void OciWriter::addArgs(ProgramArgs& args)
 {
-    m_3d = getDefaultedOption<bool>(options, "is3d");
-    m_precision = getDefaultedOption<uint32_t>(options,
-        "stream_output_precision");
-    m_createIndex = options.getValueOrDefault<bool>("create_index", true);
-    m_overwrite = getDefaultedOption<bool>(options, "overwrite");
-    m_reenableCloudTrigger =
-        options.getValueOrDefault<bool>("reenable_cloud_trigger", false);
-    m_disableCloudTrigger =
-        options.getValueOrDefault<bool>("disable_cloud_trigger", false);
-    m_trace = options.getValueOrDefault<bool>("do_trace", false);
-    m_solid = getDefaultedOption<bool>(options, "solid");
-    m_srid = options.getValueOrThrow<uint32_t>("srid");
-    m_baseTableBounds =
-        getDefaultedOption<BOX3D>(options, "base_table_bounds");
-    m_baseTableName = Utils::toupper(
-        options.getValueOrThrow<std::string>("base_table_name"));
-    m_blockTableName = Utils::toupper(
-        options.getValueOrThrow<std::string>("block_table_name"));
-    m_cloudColumnName = Utils::toupper(
-        options.getValueOrThrow<std::string>("cloud_column_name"));
-    m_blockTablePartitionColumn = Utils::toupper(
-        getDefaultedOption<std::string>(options,
-            "block_table_partition_column"));
-    m_blockTablePartitionValue =
-        getDefaultedOption<uint32_t>(options, "block_table_partition_value");
-    m_baseTableAuxColumns =
-        getDefaultedOption<std::string>(options, "base_table_aux_columns");
-    m_baseTableAuxValues =
-        getDefaultedOption<std::string>(options, "base_table_aux_values");
-    m_baseTableBoundaryColumn =
-        getDefaultedOption<std::string>(options, "base_table_boundary_column");
-    m_baseTableBoundaryWkt =
-        getDefaultedOption<std::string>(options, "base_table_boundary_wkt");
-
-    m_chunkCount =
-        options.getValueOrDefault<uint32_t>("blob_chunk_count", 16);
-    m_streamChunks = options.getValueOrDefault<bool>("stream_chunks", false);
-
-    bool dimInterleaved =
-        options.getValueOrDefault<bool>("store_dimensional_orientation", false);
-    m_orientation = dimInterleaved ? Orientation::DimensionMajor :
+    DbWriter::doAddArgs(args);
+    args.add("base_table_name", "Base table name",
+        m_baseTableName).setPositional();
+    args.add("block_table_name", "Block table name",
+        m_blockTableName).setPositional();
+    args.add("cloud_column_name", "Cloud column name",
+        m_cloudColumnName).setPositional();
+    args.add("capacity", "Points per block", m_capacity).setPositional();
+
+    args.add("is3d", "Should we use 3D objects (include the z dimension) "
+        "for SDO_PC PC_EXTENT, BLK_EXTENT, and indexing", m_3d);
+    args.add("stream_output_precision", "The number of digits past the "
+        "decimal place for outputting floats/doubles to streams. This "
+        "is used for creating the SDO_PC object and adding the index "
+        "entry to the USER_SDO_GEOM_METADATA for the block table",
+        m_precision, 8U);
+    args.add("create_index", "Whether an index should be created",
+        m_createIndex, true);
+    args.add("overwrite", "Wipe the block table and recreate it before "
+        "loading data", m_overwrite, false);
+    args.add("reenable_cloud_trigger", "Reenable cloud trigger",
+        m_reenableCloudTrigger);
+    args.add("disable_cloud_trigger", "Disable cloud trigger",
+        m_disableCloudTrigger);
+    args.add("do_trace", "Trace processing", m_trace);
+    args.add("solid", "Define the point cloud's PC_EXTENT geometry "
+        "gtype as (1,1007,3) instead of the normal (1,1003,3), and use "
+        "gtype 3008/2008 vs  3003/2003 for BLK_EXTENT geometry values.",
+        m_solid);
+    args.add("srid", "SRID", m_srid);
+    args.add("base_table_bounds", "A bounding box, given in the Oracle "
+        "SRID specified in 'srid' to set on the PC_EXTENT object of the "
+        "SDO_PC. If none is specified, the cumulated bounds of all of "
+        "the block data are used.", m_baseTableBounds);
+    args.add("block_table_partition_column", "The column name for which "
+        "'block_table_partition_value' will be placed in the "
+        "'block_table_name'", m_blockTablePartitionColumn);
+    args.add("block_table_partition_value", "Integer value to use to "
+        "assign partition IDs in the block table. Used in conjunction "
+        "with 'block_table_partition_column'", m_blockTablePartitionValue);
+    args.add("base_table_aux_columns", "Quoted, comma-separated list of "
+        "columns to add to the SQL that gets executed as part of the "
+        "point cloud insertion into the 'base_table_name' table",
+        m_baseTableAuxColumns);
+    args.add("base_table_aux_values", "Quoted, comma-separated values that "
+        "correspond to 'base_table_aux_columns', entries that will get "
+        "inserted as part of the creation of the SDO_PC entry in the "
+        "'base_table_name' table", m_baseTableAuxValues);
+    args.add("base_table_boundary_column", "The SDO_GEOMETRY column in "
+        "'base_table_name' in which to insert the WKT in "
+        "'base_table_boundary_wkt' representing a boundary for the SDO_PC "
+        "object. Note this is not the same as the 'base_table_bounds', "
+        "which is just a bounding box that is placed on the SDO_PC object "
+        "itself.", m_baseTableBoundaryColumn);
+    args.add("base_table_boundary_wkt", "WKT, in the form of a string or "
+        "a file location, to insert into the SDO_GEOMTRY column defined "
+        "by 'base_table_boundary_column'", m_baseTableBoundaryWkt);
+    args.add("blob_chunk_count", "Blob chunk count", m_chunkCount, 16U);
+    args.add("stream_chunks", "Stream chunks", m_streamChunks);
+    args.add("store_dimensional_orientation", "Point major(default) or "
+        "dimension major storage", m_dimInterleaved);
+    args.add("connection", "Database connection string", m_connSpec);
+    args.add("compression", "Set to turn compression on", m_compression);
+    args.add("pre_sql", "SQL to run before query", m_preSql);
+    args.add("post_block_sql", "SQL to run when stage is done", m_postBlockSql);
+}
+
+
+void OciWriter::initialize()
+{
+    m_baseTableName = Utils::toupper(m_baseTableName);
+    m_blockTableName = Utils::toupper(m_blockTableName);
+    m_cloudColumnName = Utils::toupper(m_cloudColumnName);
+    m_orientation = m_dimInterleaved ? Orientation::DimensionMajor :
         Orientation::PointMajor;
-    m_capacity = options.getValueOrThrow<uint32_t>("capacity");
-    m_connSpec = options.getValueOrDefault<std::string>("connection", "");
-    m_compression = options.getValueOrDefault<bool>("compression", false);
 
     if (m_compression && (m_orientation == Orientation::DimensionMajor))
         throw pdal_error("LAZperf compression not supported for "
             "dimension-major point storage.");
 
-    m_preSql = options.getValueOrDefault<std::string>("pre_sql");
-    m_postBlockSql = options.getValueOrDefault<std::string>("post_block_sql");
+    gdal::registerDrivers();
+    m_connection = connect(m_connSpec);
+    m_gtype = getGType();
 }
 
 
diff --git a/plugins/oci/io/OciWriter.hpp b/plugins/oci/io/OciWriter.hpp
index 255e9d8..8600f6c 100644
--- a/plugins/oci/io/OciWriter.hpp
+++ b/plugins/oci/io/OciWriter.hpp
@@ -53,19 +53,8 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
-    template<typename T>
-    T getDefaultedOption(const Options& options,
-        const std::string& option_name)
-    {
-        T default_value =
-            getDefaultOptions().getOption(option_name).getValue<T>();
-        return options.getValueOrDefault<T>(option_name, default_value);
-    }
-
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual void initialize();
     virtual void ready(PointTableRef table);
     virtual void write(const PointViewPtr view);
@@ -114,6 +103,7 @@ private:
     bool m_overwrite;
     bool m_trace;
     bool m_compression;
+    bool m_dimInterleaved;
 
     std::string m_baseTableName;
     std::string m_cloudColumnName;
@@ -130,7 +120,7 @@ private:
     uint32_t m_chunkCount;
     uint32_t m_capacity;
     bool m_streamChunks;
-    Orientation::Enum m_orientation;
+    Orientation m_orientation;
     std::string m_connSpec;
     std::string m_preSql;
     std::string m_postBlockSql;
diff --git a/plugins/oci/test/OCITest.cpp b/plugins/oci/test/OCITest.cpp
index 6b4fb63..b2848a9 100644
--- a/plugins/oci/test/OCITest.cpp
+++ b/plugins/oci/test/OCITest.cpp
@@ -46,6 +46,15 @@
 
 using namespace pdal;
 
+namespace
+{
+
+static std::string connectString(TestConfig::oracleConnection());
+static const std::string baseTableName("PDAL_TEST_BASE");
+static const std::string blockTableName("PDAL_TEST_BLOCKS");
+
+}
+
 GTEST_API_ int main(int argc, char **argv)
 {
     testing::InitGoogleTest(&argc, argv);
@@ -57,7 +66,7 @@ GTEST_API_ int main(int argc, char **argv)
             auto pos = s.find_first_of('=');
             if (pos == std::string::npos)
                 throw pdal_error("Invalid command line connection string.");
-            TestConfig::g_oracle_connection = s.substr(pos + 1);
+            connectString = s.substr(pos + 1);
             break;
         }
     }
@@ -67,23 +76,30 @@ GTEST_API_ int main(int argc, char **argv)
 
 bool ShouldRunTest()
 {
-    return TestConfig::g_oracle_connection.size() > 0;
+    return connectString.size() > 0;
 }
 
 
-Options getOCIOptions()
+Options readerOptions()
+{
+    Options options;
+
+    options.add("connection", connectString);
+    options.add("xml_schema_dump", "pcs-oracle-xml-schema-dump.xml");
+    return options;
+}
+
+Options writerOptions()
 {
     Options options;
 
     options.add("overwrite", false);
-    options.add("connection", std::string(TestConfig::g_oracle_connection));
-    options.add("block_table_name", "PDAL_TEST_BLOCKS");
-    options.add("base_table_name", "PDAL_TEST_BASE");
+    options.add("connection", connectString);
+    options.add("block_table_name", blockTableName);
+    options.add("base_table_name", baseTableName);
     options.add("cloud_column_name", "CLOUD");
     options.add("srid", 26910);
     options.add("disable_cloud_trigger", true);
-    options.add("filename", Support::datapath("autzen/autzen-utm.las"));
-    options.add("xml_schema_dump", "pcs-oracle-xml-schema-dump.xml");
     return options;
 }
 
@@ -122,21 +138,15 @@ class OCITest : public testing::Test
 protected:
     virtual void SetUp()
     {
-        m_options = getOCIOptions();
-
         connect();
         cleanup();
 
-        std::string base_table_name =
-            m_options.getValueOrThrow<std::string>("base_table_name");
-        std::string create_pc_table("CREATE TABLE " + base_table_name +
+        std::string create_pc_table("CREATE TABLE " + baseTableName +
             " (id number, CLOUD SDO_PC, DESCRIPTION VARCHAR2(20), HEADER "
             "BLOB, BOUNDARY SDO_GEOMETRY)");
         run(create_pc_table);
 
-        std::string block_table_name =
-            m_options.getValueOrThrow<std::string>("block_table_name");
-        std::string create_block_table = "CREATE TABLE " + block_table_name +
+        std::string create_block_table = "CREATE TABLE " + blockTableName +
             " AS SELECT * FROM MDSYS.SDO_PC_BLK_TABLE";
         run(create_block_table);
     }
@@ -144,13 +154,13 @@ protected:
     void connect()
     {
         if (!m_connection.get())
-            m_connection = pdal::connect(TestConfig::g_oracle_connection);
+            m_connection = pdal::connect(connectString);
         if (!m_connection.get() || !m_connection->Succeeded())
         {
             std::ostringstream oss;
 
             oss << "Couldn't connect via OCI using spec '" <<
-                TestConfig::g_oracle_connection << "'";
+                connectString << "'";
             throw pdal_error(oss.str());
         }
     }
@@ -161,7 +171,6 @@ protected:
         statement->Execute();
     }
 
-    Options m_options;
     Connection m_connection;
 
     virtual void TearDown()
@@ -170,78 +179,27 @@ protected:
 
     void cleanup()
     {
-        std::string base_table_name =
-            m_options.getValueOrThrow<std::string>("base_table_name");
-        std::string block_table_name =
-            m_options.getValueOrThrow<std::string>("block_table_name");
-
-        std::string drop_base_table = "DROP TABLE " + base_table_name;
-        std::string drop_block_table = "DROP TABLE " + block_table_name;
+        std::string drop_base_table = "DROP TABLE " + baseTableName;
+        std::string drop_block_table = "DROP TABLE " + blockTableName;
         run(drop_base_table);
         run(drop_block_table);
 
         std::string cleanup_metadata = "DELETE FROM USER_SDO_GEOM_METADATA "
-            "WHERE TABLE_NAME ='" + block_table_name + "'";
+            "WHERE TABLE_NAME ='" + blockTableName + "'";
         run(cleanup_metadata);
     }
 
 };
 
-/**
-TEST_F(OCITest, throughput)
-{
-    Options options;
-
-    options.add("capacity", 10000);
-    options.add("connection", std::string(TestConfig::g_oracle_connection));
-    options.add("block_table_name", "PDAL_TEST_BLOCKS");
-    options.add("base_table_name", "PDAL_TEST_BASE");
-    options.add("cloud_column_name", "CLOUD");
-    options.add("srid", 26910);
-    options.add("disable_cloud_trigger", true);
-    options.add("store_dimensional_orientation", false);
-    options.add("filename", "/Volumes/acbell-lidar1/big.ntf");
 
-    {
-        options.add("offset_x", "auto");
-        options.add("offset_y", "auto");
-        options.add("offset_z", "auto");
-        options.add("scale_x", 1e-6);
-        options.add("scale_y", 1e-6);
-        options.add("scale_z", 1e-6);
-    }
-    //if (compression)
-        options.add("compression", true);
-
-    PointTable table;
-
-    StageFactory f;
-    Stage* reader(f.createStage("readers.nitf"));
-    reader->setOptions(options);
-
-    SplitFilter split(10000);
-    split.setInput(*reader);
-
-    Stage* writer(f.createStage("writers.oci"));
-    EXPECT_TRUE(writer);
-    writer->setOptions(options);
-    writer->setInput(split);
-
-    writer->prepare(table);
-    writer->execute(table);
-}
-***/
-
-
-void writeData(Orientation::Enum orient, bool scaling, bool compression = false)
+void writeData(Orientation orient, bool scaling, bool compression = false)
 {
     Options options;
 
     options.add("capacity", 10000);
-    options.add("connection", std::string(TestConfig::g_oracle_connection));
-    options.add("debug", "true");
-    options.add("block_table_name", "PDAL_TEST_BLOCKS");
-    options.add("base_table_name", "PDAL_TEST_BASE");
+    options.add("connection", std::string(connectString));
+    options.add("block_table_name", blockTableName);
+    options.add("base_table_name", baseTableName);
     options.add("cloud_column_name", "CLOUD");
     options.add("srid", 26910);
     options.add("disable_cloud_trigger", true);
@@ -345,7 +303,7 @@ void readData()
            "FROM PDAL_TEST_BLOCKS l, PDAL_TEST_BASE b "
         "WHERE b.id = l.obj_id ORDER BY l.blk_id ";
 
-    Options options = getOCIOptions();
+    Options options = readerOptions();
     options.add("query", oss.str());
 
     StageFactory f;
@@ -399,4 +357,3 @@ TEST_F(OCITest, point_major_scaled)
     writeData(Orientation::PointMajor, true);
     readData();
 }
-
diff --git a/plugins/p2g/io/P2gWriter.cpp b/plugins/p2g/io/P2gWriter.cpp
index e6e7b03..5cde960 100644
--- a/plugins/p2g/io/P2gWriter.cpp
+++ b/plugins/p2g/io/P2gWriter.cpp
@@ -53,48 +53,51 @@ CREATE_SHARED_PLUGIN(1, 0, P2gWriter, Writer, s_info)
 
 std::string P2gWriter::getName() const { return s_info.name; }
 
-void P2gWriter::processOptions(const Options& options)
+void P2gWriter::addArgs(ProgramArgs& args)
 {
-    m_GRID_DIST_X = options.getValueOrDefault<double>("grid_dist_x", 6.0);
-    m_GRID_DIST_Y = options.getValueOrDefault<double>("grid_dist_y", 6.0);
-    m_zName = options.getValueOrDefault<std::string>("z", "Z");
-    m_RADIUS = options.getValueOrDefault<double>("radius",
-        8.4852813742385713);
-    m_fill_window_size = options.getValueOrDefault<uint32_t>(
-        "fill_window_size", 3);
-    m_filename = options.getValueOrThrow<std::string>("filename");
-
-    std::vector<Option> types = options.getOptions("output_type");
-
-    if (!types.size())
-        m_outputTypes = OUTPUT_TYPE_ALL;
-    else
+    args.add("filename", "Output filename", m_filename).setPositional();
+    args.add("grid_dist_x", "X grid distance", m_GRID_DIST_X, 6.0);
+    args.add("grid_dist_y", "Y grid distance", m_GRID_DIST_Y, 6.0);
+    args.add("radius", "Radius", m_RADIUS, 8.4852813742385713);
+    args.add("fill_window_size", "Fill window size", m_fill_window_size, 3U);
+    args.add("output_type", "Output type", m_outputTypeSpec);
+    args.add("output_format", "Output format", m_outputFormatSpec, "grid");
+    args.add("bounds", "Output raster bounds", m_bounds);
+
+}
+
+void P2gWriter::initialize()
+{
+    m_outputTypes = 0;
+    for (std::string& type : m_outputTypeSpec)
     {
-        for (auto i = types.begin(); i != types.end(); ++i)
+        std::string val = Utils::tolower(type);
+        if (val == "min")
+            m_outputTypes |= OUTPUT_TYPE_MIN;
+        else if (val == "max")
+            m_outputTypes |= OUTPUT_TYPE_MAX;
+        else if (val == "mean")
+            m_outputTypes |= OUTPUT_TYPE_MEAN;
+        else if (val == "idw")
+            m_outputTypes |= OUTPUT_TYPE_IDW;
+        else if (val == "den")
+            m_outputTypes |= OUTPUT_TYPE_DEN;
+        else if (val == "std")
+            m_outputTypes |= OUTPUT_TYPE_STD;
+        else if (val == "all")
+            m_outputTypes = OUTPUT_TYPE_ALL;
+        else
         {
-            std::string val = Utils::tolower(i->getValue<std::string>());
-
-            if (val == "min")
-                m_outputTypes |= OUTPUT_TYPE_MIN;
-            if (val == "max")
-                m_outputTypes |= OUTPUT_TYPE_MAX;
-            if (val == "mean")
-                m_outputTypes |= OUTPUT_TYPE_MEAN;
-            if (val == "idw")
-                m_outputTypes |= OUTPUT_TYPE_IDW;
-            if (val == "den")
-                m_outputTypes |= OUTPUT_TYPE_DEN;
-            if (val == "std")
-                m_outputTypes |= OUTPUT_TYPE_STD;
-            if (val == "all")
-                m_outputTypes = OUTPUT_TYPE_ALL;
+            std::ostringstream oss;
+
+            oss << "Unrecognized output type '" << type << "'."; 
+            throw p2g_error(oss.str());
         }
     }
+    if (m_outputTypes == 0)
+        m_outputTypes = OUTPUT_TYPE_ALL;
 
-    std::string output_format =
-        options.getValueOrDefault<std::string>("output_format", "grid");
-
-    std::string fmt = Utils::tolower(output_format);
+    std::string fmt = Utils::tolower(m_outputFormatSpec);
     if (fmt == "grid")
         m_outputFormat = OUTPUT_FORMAT_GRID_ASCII;
     else if (fmt == "asc")
@@ -106,21 +109,15 @@ void P2gWriter::processOptions(const Options& options)
     else
     {
         std::ostringstream oss;
-        oss << "Unrecognized output format " << output_format;
-        throw p2g_error("Unrecognized output format");
+
+        oss << "Unrecognized output format '" << m_outputFormatSpec << "'";
+        throw p2g_error(oss.str());
     }
 }
 
 
 void P2gWriter::ready(PointTableRef table)
 {
-/*
-    double min_x = (std::numeric_limits<double>::max)();
-    double max_x = (std::numeric_limits<double>::min)();
-    double min_y = (std::numeric_limits<double>::max)();
-    double max_y = (std::numeric_limits<double>::min)();
-    setBounds(pdal::Bounds<double>(min_x, min_y, max_x, max_y));
-*/
     if (!table.spatialReferenceUnique())
     {
         std::ostringstream oss;
@@ -132,27 +129,6 @@ void P2gWriter::ready(PointTableRef table)
 }
 
 
-Options P2gWriter::getDefaultOptions()
-{
-    Options options;
-
-    Option grid_x("grid_dist_x", 6.0, "X grid distance");
-    Option grid_y("grid_dist_y", 6.0, "Y grid distance");
-
-    double default_radius = (double) sqrt(2.0) * grid_x.getValue<double>();
-    Option radius("radius", default_radius);
-
-    Option fill_window_size("fill_window_size", 3);
-    Option dim_z("z", "Z", "Name of Z dimension to interpolate");
-    options.add(dim_z);
-    options.add(grid_x);
-    options.add(grid_y);
-    options.add(radius);
-    options.add(fill_window_size);
-    return options;
-}
-
-
 void P2gWriter::write(const PointViewPtr view)
 {
     for (point_count_t idx = 0; idx < view->size(); idx++)
@@ -163,7 +139,9 @@ void P2gWriter::write(const PointViewPtr view)
         m_coordinates.push_back(Coordinate{x, y, z});
     }
 
-    view->calculateBounds(m_bounds);
+    if (m_bounds.empty()) {
+        view->calculateBounds(m_bounds);
+    }
 }
 
 void P2gWriter::done(PointTableRef table)
@@ -222,7 +200,15 @@ void P2gWriter::done(PointTableRef table)
 
     log()->get(LogLevel::Debug) << "Output SRS  :'" << srs.getWKT() << "'" <<
         std::endl;
-    if (m_interpolator->finish(const_cast<char*>(m_filename.c_str()),
+
+    // Strip off the extension if it was provided so that we don't get
+    // file.asc.type.asc or file.asc.asc, as point2grid appends a file
+    // extension.
+    std::string extension = FileUtils::extension(m_filename);
+    if (extension == ".asc" || extension == ".grid" || extension == ".tif")
+        m_filename = m_filename.substr(0, m_filename.find_last_of("."));
+
+    if (m_interpolator->finish(m_filename.c_str(),
         m_outputFormat, m_outputTypes, adfGeoTransform,
         srs.getWKT().c_str()) < 0)
     {
diff --git a/plugins/p2g/io/P2gWriter.hpp b/plugins/p2g/io/P2gWriter.hpp
index 7eb8bbe..0c02dde 100644
--- a/plugins/p2g/io/P2gWriter.hpp
+++ b/plugins/p2g/io/P2gWriter.hpp
@@ -72,18 +72,16 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
-    P2gWriter& operator=(const P2gWriter&); // not implemented
+    P2gWriter& operator=(const P2gWriter&) = delete;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void initialize();
     virtual void ready(PointTableRef table);
     virtual void write(const PointViewPtr view);
     virtual void done(PointTableRef table);
 
     std::unique_ptr<OutCoreInterp> m_interpolator;
-    uint64_t m_pointCount;
 
     uint32_t m_GRID_SIZE_X;
     uint32_t m_GRID_SIZE_Y;
@@ -92,13 +90,14 @@ private:
     double m_GRID_DIST_Y;
 
     double m_RADIUS;
+    StringList m_outputTypeSpec;
+    std::string m_outputFormatSpec;
     unsigned int m_outputTypes;
     uint32_t m_fill_window_size;
     BOX3D m_bounds;
 
     std::string m_filename;
     int m_outputFormat;
-    std::string m_zName;
 
     typedef struct
     {
diff --git a/plugins/pcl/PCLConversions.hpp b/plugins/pcl/PCLConversions.hpp
index a93381f..d83407c 100755
--- a/plugins/pcl/PCLConversions.hpp
+++ b/plugins/pcl/PCLConversions.hpp
@@ -37,6 +37,8 @@
 
 #pragma once
 
+#include <pdal/pdal_types.hpp>
+
 #include <pdal/PointView.hpp>
 
 #include <pcl/io/pcd_io.h>
@@ -50,7 +52,7 @@ namespace pclsupport
 {
 
 template<typename CLOUDFETCH>
-void setValues(PointViewPtr view, Dimension::Id::Enum dim, size_t numPts,
+void setValues(PointViewPtr view, Dimension::Id dim, size_t numPts,
     CLOUDFETCH fetcher)
 {
     for (size_t i = 0; i < numPts; ++i)
@@ -85,8 +87,8 @@ void PCDtoPDAL(CloudT &cloud, PointViewPtr view, BOX3D const& bounds)
     {
         for (size_t i = 0; i < cloud.points.size(); ++i)
         {
-            float f;
-            bool hasIntensity = true;
+            float f(0.0);
+            bool hasIntensity(true);
 
             typename CloudT::PointType p = cloud.points[i];
             pcl::for_each_type<FieldList>
@@ -100,7 +102,7 @@ void PCDtoPDAL(CloudT &cloud, PointViewPtr view, BOX3D const& bounds)
     {
         for (size_t i = 0; i < cloud.points.size(); ++i)
         {
-            uint32_t v;
+            uint32_t v(0);
 
             typename CloudT::PointType p = cloud.points[i];
             pcl::for_each_type<FieldList>
@@ -128,7 +130,8 @@ void PCDtoPDAL(CloudT &cloud, PointViewPtr view)
  * Converts PDAL data to PCD format.
  */
 template <typename CloudT>
-void PDALtoPCD(PointViewPtr view, CloudT &cloud, BOX3D const& bounds)
+void PDALtoPCD(PointViewPtr view, CloudT &cloud, BOX3D const& bounds,
+               double const& scale_x, double const& scale_y, double const& scale_z)
 {
     typedef typename pcl::traits::fieldList<typename CloudT::PointType>::type
         FieldList;
@@ -147,9 +150,9 @@ void PDALtoPCD(PointViewPtr view, CloudT &cloud, BOX3D const& bounds)
             double zd = view->getFieldAs<double>(Dimension::Id::Z, i) - bounds.minz;
 
             typename CloudT::PointType p = cloud.points[i];
-            p.x = (float)xd;
-            p.y = (float)yd;
-            p.z = (float)zd;
+            p.x = (float) (xd / scale_x);
+            p.y = (float) (yd / scale_y);
+            p.z = (float) (zd / scale_z);
             cloud.points[i] = p;
         }
     }
@@ -179,7 +182,7 @@ void PDALtoPCD(PointViewPtr view, CloudT &cloud, BOX3D const& bounds)
             uint8_t b = view->getFieldAs<uint8_t>(Dimension::Id::Blue, i);
             pcl::for_each_type<FieldList> (
                 pcl::SetIfFieldExists<typename CloudT::PointType, uint32_t> (
-                    p, "rgba", ((uint8_t)r) << 16 | ((uint8_t)g) << 8 | ((uint8_t)b)
+                    p, "rgba", (r << 16) | (g << 8) | b
                 )
             );
             cloud.points[i] = p;
@@ -187,6 +190,18 @@ void PDALtoPCD(PointViewPtr view, CloudT &cloud, BOX3D const& bounds)
     }
 }
 
+/**
+ * \brief Convert PDAL point cloud to PCD.
+ *
+ * Converts PDAL data to PCD format.
+ */
+template <typename CloudT>
+void PDALtoPCD(PointViewPtr view, CloudT &cloud, BOX3D const& bounds)
+{
+    PDALtoPCD(view, cloud, bounds, 1.0, 1.0, 1.0);
+}
+
+
 
 template <typename CloudT>
 void PDALtoPCD(PointViewPtr view, CloudT &cloud)
@@ -196,5 +211,31 @@ void PDALtoPCD(PointViewPtr view, CloudT &cloud)
 }
 
 
+inline void setLogLevel(LogLevel level)
+{
+    // PCL should provide console output at similar verbosity level as PDAL
+    switch (level)
+    {
+        case LogLevel::Error:
+            pcl::console::setVerbosityLevel(pcl::console::L_ALWAYS);
+            break;
+        case LogLevel::Warning:
+            pcl::console::setVerbosityLevel(pcl::console::L_ERROR);
+            break;
+        case LogLevel::Info:
+            pcl::console::setVerbosityLevel(pcl::console::L_WARN);
+            break;
+        case LogLevel::Debug:
+            pcl::console::setVerbosityLevel(pcl::console::L_INFO);
+            break;
+        case LogLevel::Debug1:
+            pcl::console::setVerbosityLevel(pcl::console::L_DEBUG);
+            break;
+        default:
+            pcl::console::setVerbosityLevel(pcl::console::L_VERBOSE);
+            break;
+    }
+}
+
 }  // namespace pcl
 }  // namespace pdal
diff --git a/plugins/pcl/filters/DartSampleFilter.cpp b/plugins/pcl/filters/DartSampleFilter.cpp
index 4e5140f..4ee3884 100644
--- a/plugins/pcl/filters/DartSampleFilter.cpp
+++ b/plugins/pcl/filters/DartSampleFilter.cpp
@@ -43,6 +43,7 @@
 #include <pcl/io/pcd_io.h>
 
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -58,16 +59,9 @@ std::string DartSampleFilter::getName() const
     return s_info.name;
 }
 
-Options DartSampleFilter::getDefaultOptions()
+void DartSampleFilter::addArgs(ProgramArgs& args)
 {
-    Options options;
-    options.add("radius", 1.0, "Minimum distance criterion");
-    return options;
-}
-
-void DartSampleFilter::processOptions(const Options& options)
-{
-    m_radius = options.getValueOrDefault<double>("radius", 1.0);
+    args.add("radius", "Minimum distance criterion", m_radius, 1.0);
 }
 
 PointViewSet DartSampleFilter::run(PointViewPtr input)
@@ -86,28 +80,7 @@ PointViewSet DartSampleFilter::run(PointViewPtr input)
     Cloud::Ptr cloud(new Cloud);
     pclsupport::PDALtoPCD(input, *cloud, buffer_bounds);
 
-    int level = log()->getLevel();
-    switch (level)
-    {
-        case 0:
-            pcl::console::setVerbosityLevel(pcl::console::L_ALWAYS);
-            break;
-        case 1:
-            pcl::console::setVerbosityLevel(pcl::console::L_ERROR);
-            break;
-        case 2:
-            pcl::console::setVerbosityLevel(pcl::console::L_WARN);
-            break;
-        case 3:
-            pcl::console::setVerbosityLevel(pcl::console::L_INFO);
-            break;
-        case 4:
-            pcl::console::setVerbosityLevel(pcl::console::L_DEBUG);
-            break;
-        default:
-            pcl::console::setVerbosityLevel(pcl::console::L_VERBOSE);
-            break;
-    }
+    pclsupport::setLogLevel(log()->getLevel());
 
     pcl::DartSample<pcl::PointXYZ> ds;
     ds.setInputCloud(cloud);
diff --git a/plugins/pcl/filters/DartSampleFilter.hpp b/plugins/pcl/filters/DartSampleFilter.hpp
index 63e6725..bb17bec 100644
--- a/plugins/pcl/filters/DartSampleFilter.hpp
+++ b/plugins/pcl/filters/DartSampleFilter.hpp
@@ -50,12 +50,10 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
     double m_radius;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual PointViewSet run(PointViewPtr view);
 
     DartSampleFilter& operator=(const DartSampleFilter&); // not implemented
diff --git a/plugins/pcl/filters/GreedyProjectionFilter.cpp b/plugins/pcl/filters/GreedyProjectionFilter.cpp
index 4fa268b..11ced9d 100644
--- a/plugins/pcl/filters/GreedyProjectionFilter.cpp
+++ b/plugins/pcl/filters/GreedyProjectionFilter.cpp
@@ -59,24 +59,6 @@ std::string GreedyProjectionFilter::getName() const
     return s_info.name;
 }
 
-Options GreedyProjectionFilter::getDefaultOptions()
-{
-    Options options;
-    // options.add("leaf_x", 1.0, "Leaf size in X dimension");
-    // options.add("leaf_y", 1.0, "Leaf size in Y dimension");
-    // options.add("leaf_z", 1.0, "Leaf size in Z dimension");
-    return options;
-}
-
-/** \brief This method processes the PointView through the given pipeline. */
-
-void GreedyProjectionFilter::processOptions(const Options& options)
-{
-    // m_leaf_x = options.getValueOrDefault<double>("leaf_x", 1.0);
-    // m_leaf_y = options.getValueOrDefault<double>("leaf_y", 1.0);
-    // m_leaf_z = options.getValueOrDefault<double>("leaf_z", 1.0);
-}
-
 PointViewSet GreedyProjectionFilter::run(PointViewPtr input)
 {
     PointViewPtr output = input->makeNew();
@@ -97,28 +79,7 @@ PointViewSet GreedyProjectionFilter::run(PointViewPtr input)
     Cloud::Ptr cloud(new Cloud);
     pclsupport::PDALtoPCD(input, *cloud, buffer_bounds);
 
-    int level = log()->getLevel();
-    switch (level)
-    {
-        case 0:
-            pcl::console::setVerbosityLevel(pcl::console::L_ALWAYS);
-            break;
-        case 1:
-            pcl::console::setVerbosityLevel(pcl::console::L_ERROR);
-            break;
-        case 2:
-            pcl::console::setVerbosityLevel(pcl::console::L_WARN);
-            break;
-        case 3:
-            pcl::console::setVerbosityLevel(pcl::console::L_INFO);
-            break;
-        case 4:
-            pcl::console::setVerbosityLevel(pcl::console::L_DEBUG);
-            break;
-        default:
-            pcl::console::setVerbosityLevel(pcl::console::L_VERBOSE);
-            break;
-    }
+    pclsupport::setLogLevel(log()->getLevel());
 
     // pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);
     pcl::PointCloud<pcl::PointNormal>::Ptr cloud_with_normals(new pcl::PointCloud<pcl::PointNormal>);
diff --git a/plugins/pcl/filters/GreedyProjectionFilter.hpp b/plugins/pcl/filters/GreedyProjectionFilter.hpp
index 3e6646f..1a19120 100644
--- a/plugins/pcl/filters/GreedyProjectionFilter.hpp
+++ b/plugins/pcl/filters/GreedyProjectionFilter.hpp
@@ -50,12 +50,9 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
     // double m_leaf_x, m_leaf_y, m_leaf_z;
 
-    virtual void processOptions(const Options& options);
     virtual PointViewSet run(PointViewPtr view);
 
     GreedyProjectionFilter& operator=(const GreedyProjectionFilter&); // not implemented
diff --git a/plugins/pcl/filters/GridProjectionFilter.cpp b/plugins/pcl/filters/GridProjectionFilter.cpp
index 73a7d33..f21e778 100644
--- a/plugins/pcl/filters/GridProjectionFilter.cpp
+++ b/plugins/pcl/filters/GridProjectionFilter.cpp
@@ -59,24 +59,6 @@ std::string GridProjectionFilter::getName() const
     return s_info.name;
 }
 
-Options GridProjectionFilter::getDefaultOptions()
-{
-    Options options;
-    // options.add("leaf_x", 1.0, "Leaf size in X dimension");
-    // options.add("leaf_y", 1.0, "Leaf size in Y dimension");
-    // options.add("leaf_z", 1.0, "Leaf size in Z dimension");
-    return options;
-}
-
-/** \brief This method processes the PointView through the given pipeline. */
-
-void GridProjectionFilter::processOptions(const Options& options)
-{
-    // m_leaf_x = options.getValueOrDefault<double>("leaf_x", 1.0);
-    // m_leaf_y = options.getValueOrDefault<double>("leaf_y", 1.0);
-    // m_leaf_z = options.getValueOrDefault<double>("leaf_z", 1.0);
-}
-
 PointViewSet GridProjectionFilter::run(PointViewPtr input)
 {
     PointViewPtr output = input->makeNew();
@@ -97,28 +79,7 @@ PointViewSet GridProjectionFilter::run(PointViewPtr input)
     Cloud::Ptr cloud(new Cloud);
     pclsupport::PDALtoPCD(input, *cloud, buffer_bounds);
 
-    int level = log()->getLevel();
-    switch (level)
-    {
-        case 0:
-            pcl::console::setVerbosityLevel(pcl::console::L_ALWAYS);
-            break;
-        case 1:
-            pcl::console::setVerbosityLevel(pcl::console::L_ERROR);
-            break;
-        case 2:
-            pcl::console::setVerbosityLevel(pcl::console::L_WARN);
-            break;
-        case 3:
-            pcl::console::setVerbosityLevel(pcl::console::L_INFO);
-            break;
-        case 4:
-            pcl::console::setVerbosityLevel(pcl::console::L_DEBUG);
-            break;
-        default:
-            pcl::console::setVerbosityLevel(pcl::console::L_VERBOSE);
-            break;
-    }
+    pclsupport::setLogLevel(log()->getLevel());
 
     // pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);
     pcl::PointCloud<pcl::PointNormal>::Ptr cloud_with_normals(new pcl::PointCloud<pcl::PointNormal>);
diff --git a/plugins/pcl/filters/GridProjectionFilter.hpp b/plugins/pcl/filters/GridProjectionFilter.hpp
index bb0037e..f430193 100644
--- a/plugins/pcl/filters/GridProjectionFilter.hpp
+++ b/plugins/pcl/filters/GridProjectionFilter.hpp
@@ -50,12 +50,7 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
-    // double m_leaf_x, m_leaf_y, m_leaf_z;
-
-    virtual void processOptions(const Options& options);
     virtual PointViewSet run(PointViewPtr view);
 
     GridProjectionFilter& operator=(const GridProjectionFilter&); // not implemented
diff --git a/plugins/pcl/filters/GroundFilter.cpp b/plugins/pcl/filters/GroundFilter.cpp
index 7c82a2d..f2c2630 100644
--- a/plugins/pcl/filters/GroundFilter.cpp
+++ b/plugins/pcl/filters/GroundFilter.cpp
@@ -63,30 +63,16 @@ std::string GroundFilter::getName() const
     return s_info.name;
 }
 
-Options GroundFilter::getDefaultOptions()
+void GroundFilter::addArgs(ProgramArgs& args)
 {
-    Options options;
-    options.add("max_window_size", 33, "Maximum window size");
-    options.add("slope", 1, "Slope");
-    options.add("max_distance", 2.5, "Maximum distance");
-    options.add("initial_distance", 0.15, "Initial distance");
-    options.add("cell_size", 1, "Cell Size");
-    options.add("classify", true, "Apply classification labels?");
-    options.add("extract", false, "Extract ground returns?");
-    options.add("approximate", false, "Use approximate algorithm?");
-    return options;
-}
-
-void GroundFilter::processOptions(const Options& options)
-{
-    m_maxWindowSize = options.getValueOrDefault<double>("max_window_size", 33);
-    m_slope = options.getValueOrDefault<double>("slope", 1);
-    m_maxDistance = options.getValueOrDefault<double>("max_distance", 2.5);
-    m_initialDistance = options.getValueOrDefault<double>("initial_distance", 0.15);
-    m_cellSize = options.getValueOrDefault<double>("cell_size", 1);
-    m_classify = options.getValueOrDefault<bool>("classify", true);
-    m_extract = options.getValueOrDefault<bool>("extract", false);
-    m_approximate = options.getValueOrDefault<bool>("approximate", false);
+    args.add("max_window_size", "Maximum window size", m_maxWindowSize, 33.0);
+    args.add("slope", "Slope", m_slope, 1.0);
+    args.add("max_distance", "Maximum distance", m_maxDistance, 2.5);
+    args.add("initial_distance", "Initial distance", m_initialDistance, 0.15);
+    args.add("cell_size", "Cell size", m_cellSize, 1.0);
+    args.add("classify", "Apply the classification labels?", m_classify, true);
+    args.add("extract", "Extract ground returns?", m_extract);
+    args.add("approximate", "Use approximate algorithm?", m_approximate);
 }
 
 void GroundFilter::addDimensions(PointLayoutPtr layout)
@@ -108,29 +94,7 @@ PointViewSet GroundFilter::run(PointViewPtr input)
     input->calculateBounds(bounds);
     pclsupport::PDALtoPCD(input, *cloud, bounds);
 
-    // PCL should provide console output at similar verbosity level as PDAL
-    int level = log()->getLevel();
-    switch (level)
-    {
-        case 0:
-            pcl::console::setVerbosityLevel(pcl::console::L_ALWAYS);
-            break;
-        case 1:
-            pcl::console::setVerbosityLevel(pcl::console::L_ERROR);
-            break;
-        case 2:
-            pcl::console::setVerbosityLevel(pcl::console::L_WARN);
-            break;
-        case 3:
-            pcl::console::setVerbosityLevel(pcl::console::L_INFO);
-            break;
-        case 4:
-            pcl::console::setVerbosityLevel(pcl::console::L_DEBUG);
-            break;
-        default:
-            pcl::console::setVerbosityLevel(pcl::console::L_VERBOSE);
-            break;
-    }
+    pclsupport::setLogLevel(log()->getLevel());
 
     // setup the PMF filter
     pcl::PointIndicesPtr idx(new pcl::PointIndices);
diff --git a/plugins/pcl/filters/GroundFilter.hpp b/plugins/pcl/filters/GroundFilter.hpp
index 49b7753..e2e8b41 100644
--- a/plugins/pcl/filters/GroundFilter.hpp
+++ b/plugins/pcl/filters/GroundFilter.hpp
@@ -57,8 +57,6 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
     double m_maxWindowSize;
     double m_slope;
@@ -70,7 +68,7 @@ private:
     bool m_approximate;
 
     virtual void addDimensions(PointLayoutPtr layout);
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual PointViewSet run(PointViewPtr view);
 
     GroundFilter& operator=(const GroundFilter&); // not implemented
diff --git a/plugins/pcl/filters/MovingLeastSquaresFilter.cpp b/plugins/pcl/filters/MovingLeastSquaresFilter.cpp
index 8bd6e2a..ed4eaa4 100644
--- a/plugins/pcl/filters/MovingLeastSquaresFilter.cpp
+++ b/plugins/pcl/filters/MovingLeastSquaresFilter.cpp
@@ -58,24 +58,6 @@ std::string MovingLeastSquaresFilter::getName() const
     return s_info.name;
 }
 
-Options MovingLeastSquaresFilter::getDefaultOptions()
-{
-    Options options;
-    // options.add("leaf_x", 1.0, "Leaf size in X dimension");
-    // options.add("leaf_y", 1.0, "Leaf size in Y dimension");
-    // options.add("leaf_z", 1.0, "Leaf size in Z dimension");
-    return options;
-}
-
-/** \brief This method processes the PointView through the given pipeline. */
-
-void MovingLeastSquaresFilter::processOptions(const Options& options)
-{
-    // m_leaf_x = options.getValueOrDefault<double>("leaf_x", 1.0);
-    // m_leaf_y = options.getValueOrDefault<double>("leaf_y", 1.0);
-    // m_leaf_z = options.getValueOrDefault<double>("leaf_z", 1.0);
-}
-
 PointViewSet MovingLeastSquaresFilter::run(PointViewPtr input)
 {
     PointViewPtr output = input->makeNew();
@@ -96,28 +78,7 @@ PointViewSet MovingLeastSquaresFilter::run(PointViewPtr input)
     Cloud::Ptr cloud(new Cloud);
     pclsupport::PDALtoPCD(input, *cloud, buffer_bounds);
 
-    int level = log()->getLevel();
-    switch (level)
-    {
-        case 0:
-            pcl::console::setVerbosityLevel(pcl::console::L_ALWAYS);
-            break;
-        case 1:
-            pcl::console::setVerbosityLevel(pcl::console::L_ERROR);
-            break;
-        case 2:
-            pcl::console::setVerbosityLevel(pcl::console::L_WARN);
-            break;
-        case 3:
-            pcl::console::setVerbosityLevel(pcl::console::L_INFO);
-            break;
-        case 4:
-            pcl::console::setVerbosityLevel(pcl::console::L_DEBUG);
-            break;
-        default:
-            pcl::console::setVerbosityLevel(pcl::console::L_VERBOSE);
-            break;
-    }
+    pclsupport::setLogLevel(log()->getLevel());
 
     // initial setup
     pcl::MovingLeastSquares<pcl::PointXYZ, pcl::PointXYZ> mls;
diff --git a/plugins/pcl/filters/MovingLeastSquaresFilter.hpp b/plugins/pcl/filters/MovingLeastSquaresFilter.hpp
index b5c58c2..3895fe5 100644
--- a/plugins/pcl/filters/MovingLeastSquaresFilter.hpp
+++ b/plugins/pcl/filters/MovingLeastSquaresFilter.hpp
@@ -50,12 +50,7 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
-    // double m_leaf_x, m_leaf_y, m_leaf_z;
-
-    virtual void processOptions(const Options& options);
     virtual PointViewSet run(PointViewPtr view);
 
     MovingLeastSquaresFilter& operator=(const MovingLeastSquaresFilter&); // not implemented
diff --git a/plugins/pcl/filters/PCLBlock.cpp b/plugins/pcl/filters/PCLBlock.cpp
index f0dcc88..a9fe6eb 100644
--- a/plugins/pcl/filters/PCLBlock.cpp
+++ b/plugins/pcl/filters/PCLBlock.cpp
@@ -42,6 +42,7 @@
 #include <pcl/io/pcd_io.h>
 
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -57,12 +58,10 @@ std::string PCLBlock::getName() const
     return s_info.name;
 }
 
-/** \brief This method processes the PointView through the given pipeline. */
-
-void PCLBlock::processOptions(const Options& options)
+void PCLBlock::addArgs(ProgramArgs& args)
 {
-    m_filename = options.getValueOrDefault<std::string>("filename", "");
-    m_json = options.getValueOrDefault<std::string>("json", "");
+    args.add("filename", "Output filename", m_filename);
+    args.add("json", "JSON pipeline", m_json);
 }
 
 PointViewSet PCLBlock::run(PointViewPtr input)
@@ -76,9 +75,9 @@ PointViewSet PCLBlock::run(PointViewPtr input)
         log()->floatPrecision(8);
 
     log()->get(LogLevel::Debug2) <<
-                                 input->getFieldAs<double>(Dimension::Id::X, 0) << ", " <<
-                                 input->getFieldAs<double>(Dimension::Id::Y, 0) << ", " <<
-                                 input->getFieldAs<double>(Dimension::Id::Z, 0) << std::endl;
+         input->getFieldAs<double>(Dimension::Id::X, 0) << ", " <<
+         input->getFieldAs<double>(Dimension::Id::Y, 0) << ", " <<
+         input->getFieldAs<double>(Dimension::Id::Z, 0) << std::endl;
     log()->get(LogLevel::Debug2) << "Process PCLBlock..." << std::endl;
 
     BOX3D buffer_bounds;
@@ -90,30 +89,9 @@ PointViewSet PCLBlock::run(PointViewPtr input)
     pclsupport::PDALtoPCD(input, *cloud, buffer_bounds);
 
     log()->get(LogLevel::Debug2) << cloud->points[0].x << ", " <<
-                                 cloud->points[0].y << ", " << cloud->points[0].z << std::endl;
+        cloud->points[0].y << ", " << cloud->points[0].z << std::endl;
 
-    int level = log()->getLevel();
-    switch (level)
-    {
-        case 0:
-            pcl::console::setVerbosityLevel(pcl::console::L_ALWAYS);
-            break;
-        case 1:
-            pcl::console::setVerbosityLevel(pcl::console::L_ERROR);
-            break;
-        case 2:
-            pcl::console::setVerbosityLevel(pcl::console::L_WARN);
-            break;
-        case 3:
-            pcl::console::setVerbosityLevel(pcl::console::L_INFO);
-            break;
-        case 4:
-            pcl::console::setVerbosityLevel(pcl::console::L_DEBUG);
-            break;
-        default:
-            pcl::console::setVerbosityLevel(pcl::console::L_VERBOSE);
-            break;
-    }
+    pclsupport::setLogLevel(log()->getLevel());
 
     pcl::Pipeline<pcl::PointXYZ> pipeline;
     pipeline.setInputCloud(cloud);
diff --git a/plugins/pcl/filters/PCLBlock.hpp b/plugins/pcl/filters/PCLBlock.hpp
index 0255828..229afb9 100644
--- a/plugins/pcl/filters/PCLBlock.hpp
+++ b/plugins/pcl/filters/PCLBlock.hpp
@@ -54,7 +54,7 @@ private:
     std::string m_filename;
     std::string m_json;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual PointViewSet run(PointViewPtr view);
 
     PCLBlock& operator=(const PCLBlock&); // not implemented
diff --git a/plugins/pcl/filters/PoissonFilter.cpp b/plugins/pcl/filters/PoissonFilter.cpp
index f911af4..424c7dd 100644
--- a/plugins/pcl/filters/PoissonFilter.cpp
+++ b/plugins/pcl/filters/PoissonFilter.cpp
@@ -44,6 +44,7 @@
 #include <pcl/surface/poisson.h>
 
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -59,22 +60,12 @@ std::string PoissonFilter::getName() const
     return s_info.name;
 }
 
-Options PoissonFilter::getDefaultOptions()
+void PoissonFilter::addArgs(ProgramArgs& args)
 {
-    Options options;
-    options.add("depth", 8, "Maximum depth of the tree used for reconstruction");
-    options.add("point_weight", 4.0,
-                "Importance of interpolation of point samples in the screened "\
-                "Poisson equation");
-    return options;
-}
-
-/** \brief This method processes the PointView through the given pipeline. */
-
-void PoissonFilter::processOptions(const Options& options)
-{
-    m_depth = options.getValueOrDefault<int>("depth", 8);
-    m_point_weight = options.getValueOrDefault<float>("point_weight", 4.0);
+    args.add("depth", "Maximum depth of the tree used for reconstruction",
+        m_depth, 8);
+    args.add("point_weight", "Importance of interpolation of point "
+        "samples in the screened Poisson equation", m_point_weight, 4.0f);
 }
 
 PointViewSet PoissonFilter::run(PointViewPtr input)
@@ -97,28 +88,7 @@ PointViewSet PoissonFilter::run(PointViewPtr input)
     Cloud::Ptr cloud(new Cloud);
     pclsupport::PDALtoPCD(input, *cloud, buffer_bounds);
 
-    int level = log()->getLevel();
-    switch (level)
-    {
-        case 0:
-            pcl::console::setVerbosityLevel(pcl::console::L_ALWAYS);
-            break;
-        case 1:
-            pcl::console::setVerbosityLevel(pcl::console::L_ERROR);
-            break;
-        case 2:
-            pcl::console::setVerbosityLevel(pcl::console::L_WARN);
-            break;
-        case 3:
-            pcl::console::setVerbosityLevel(pcl::console::L_INFO);
-            break;
-        case 4:
-            pcl::console::setVerbosityLevel(pcl::console::L_DEBUG);
-            break;
-        default:
-            pcl::console::setVerbosityLevel(pcl::console::L_VERBOSE);
-            break;
-    }
+    pclsupport::setLogLevel(log()->getLevel());
 
     // pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);
     pcl::PointCloud<pcl::PointNormal>::Ptr cloud_with_normals(new pcl::PointCloud<pcl::PointNormal>);
diff --git a/plugins/pcl/filters/PoissonFilter.hpp b/plugins/pcl/filters/PoissonFilter.hpp
index 7b502bc..d647e21 100644
--- a/plugins/pcl/filters/PoissonFilter.hpp
+++ b/plugins/pcl/filters/PoissonFilter.hpp
@@ -50,13 +50,11 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
     int m_depth;
     float m_point_weight;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual PointViewSet run(PointViewPtr view);
 
     PoissonFilter& operator=(const PoissonFilter&); // not implemented
diff --git a/plugins/pcl/filters/RadiusOutlierFilter.cpp b/plugins/pcl/filters/RadiusOutlierFilter.cpp
index d3f9ea1..c632afa 100644
--- a/plugins/pcl/filters/RadiusOutlierFilter.cpp
+++ b/plugins/pcl/filters/RadiusOutlierFilter.cpp
@@ -41,6 +41,7 @@
 #include <pdal/PointView.hpp>
 #include <pdal/StageFactory.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <pcl/point_types.h>
 #include <pcl/console/print.h>
@@ -62,22 +63,13 @@ std::string RadiusOutlierFilter::getName() const
     return s_info.name;
 }
 
-Options RadiusOutlierFilter::getDefaultOptions()
+void RadiusOutlierFilter::addArgs(ProgramArgs& args)
 {
-    Options options;
-    options.add("min_neighbors", 2, "Minimum number of neighbors in radius");
-    options.add("radius", 1, "Radius");
-    options.add("classify", true, "Apply classification labels?");
-    options.add("extract", false, "Extract ground returns?");
-    return options;
-}
-
-void RadiusOutlierFilter::processOptions(const Options& options)
-{
-    m_min_neighbors = options.getValueOrDefault<int>("min_neighbors", 2);
-    m_radius = options.getValueOrDefault<double>("radius", 1);
-    m_classify = options.getValueOrDefault<bool>("classify", true);
-    m_extract = options.getValueOrDefault<bool>("extract", false);
+    args.add("min_neighbors", "Minimum number of neighbors in radius",
+        m_min_neighbors, 2);
+    args.add("radius", "Radius", m_radius, 1.0);
+    args.add("classify", "Apply classification labels?", m_classify, true);
+    args.add("extract", "Extract ground returns?", m_extract);
 }
 
 void RadiusOutlierFilter::addDimensions(PointLayoutPtr layout)
@@ -99,29 +91,7 @@ PointViewSet RadiusOutlierFilter::run(PointViewPtr input)
     input->calculateBounds(bounds);
     pclsupport::PDALtoPCD(input, *cloud, bounds);
 
-    // PCL should provide console output at similar verbosity level as PDAL
-    int level = log()->getLevel();
-    switch (level)
-    {
-        case 0:
-            pcl::console::setVerbosityLevel(pcl::console::L_ALWAYS);
-            break;
-        case 1:
-            pcl::console::setVerbosityLevel(pcl::console::L_ERROR);
-            break;
-        case 2:
-            pcl::console::setVerbosityLevel(pcl::console::L_WARN);
-            break;
-        case 3:
-            pcl::console::setVerbosityLevel(pcl::console::L_INFO);
-            break;
-        case 4:
-            pcl::console::setVerbosityLevel(pcl::console::L_DEBUG);
-            break;
-        default:
-            pcl::console::setVerbosityLevel(pcl::console::L_VERBOSE);
-            break;
-    }
+    pclsupport::setLogLevel(log()->getLevel());
 
     // setup the outlier filter
     pcl::RadiusOutlierRemoval<pcl::PointXYZ> ror(true);
diff --git a/plugins/pcl/filters/RadiusOutlierFilter.hpp b/plugins/pcl/filters/RadiusOutlierFilter.hpp
index e7d1190..2646b51 100644
--- a/plugins/pcl/filters/RadiusOutlierFilter.hpp
+++ b/plugins/pcl/filters/RadiusOutlierFilter.hpp
@@ -52,13 +52,13 @@ class PDAL_DLL RadiusOutlierFilter : public Filter
 public:
     RadiusOutlierFilter() : Filter()
     {}
+    RadiusOutlierFilter& operator=(const RadiusOutlierFilter&) = delete;
+    RadiusOutlierFilter(const RadiusOutlierFilter&) = delete;
 
     static void * create();
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
     int m_min_neighbors;
     double m_radius;
@@ -66,11 +66,8 @@ private:
     bool m_extract;
 
     virtual void addDimensions(PointLayoutPtr layout);
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual PointViewSet run(PointViewPtr view);
-
-    RadiusOutlierFilter& operator=(const RadiusOutlierFilter&); // not implemented
-    RadiusOutlierFilter(const RadiusOutlierFilter&); // not implemented
 };
 
 } // namespace pdal
diff --git a/plugins/pcl/filters/StatisticalOutlierFilter.cpp b/plugins/pcl/filters/StatisticalOutlierFilter.cpp
index 65e8048..a1cce1d 100644
--- a/plugins/pcl/filters/StatisticalOutlierFilter.cpp
+++ b/plugins/pcl/filters/StatisticalOutlierFilter.cpp
@@ -41,6 +41,7 @@
 #include <pdal/PointView.hpp>
 #include <pdal/StageFactory.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <pcl/point_types.h>
 #include <pcl/console/print.h>
@@ -62,24 +63,16 @@ std::string StatisticalOutlierFilter::getName() const
     return s_info.name;
 }
 
-Options StatisticalOutlierFilter::getDefaultOptions()
-{
-    Options options;
-    options.add("mean_k", 8, "Mean number of neighbors");
-    options.add("multiplier", 2, "Standard deviation threshold");
-    options.add("classify", true, "Apply classification labels?");
-    options.add("extract", false, "Extract ground returns?");
-    return options;
-}
 
-void StatisticalOutlierFilter::processOptions(const Options& options)
+void StatisticalOutlierFilter::addArgs(ProgramArgs& args)
 {
-    m_meanK = options.getValueOrDefault<int>("mean_k", 8);
-    m_multiplier = options.getValueOrDefault<double>("multiplier", 2);
-    m_classify = options.getValueOrDefault<bool>("classify", true);
-    m_extract = options.getValueOrDefault<bool>("extract", false);
+    args.add("mean_k", "Mean number of neighbors", m_meanK, 8);
+    args.add("multiplier", "Standard deviation threshold", m_multiplier, 2.0);
+    args.add("classify", "Apply classification labels?", m_classify, true);
+    args.add("extract", "Extrac ground returns?", m_extract);
 }
 
+
 void StatisticalOutlierFilter::addDimensions(PointLayoutPtr layout)
 {
     layout->registerDim(Dimension::Id::Classification);
@@ -99,29 +92,7 @@ PointViewSet StatisticalOutlierFilter::run(PointViewPtr input)
     input->calculateBounds(bounds);
     pclsupport::PDALtoPCD(input, *cloud, bounds);
 
-    // PCL should provide console output at similar verbosity level as PDAL
-    int level = log()->getLevel();
-    switch (level)
-    {
-        case 0:
-            pcl::console::setVerbosityLevel(pcl::console::L_ALWAYS);
-            break;
-        case 1:
-            pcl::console::setVerbosityLevel(pcl::console::L_ERROR);
-            break;
-        case 2:
-            pcl::console::setVerbosityLevel(pcl::console::L_WARN);
-            break;
-        case 3:
-            pcl::console::setVerbosityLevel(pcl::console::L_INFO);
-            break;
-        case 4:
-            pcl::console::setVerbosityLevel(pcl::console::L_DEBUG);
-            break;
-        default:
-            pcl::console::setVerbosityLevel(pcl::console::L_VERBOSE);
-            break;
-    }
+    pclsupport::setLogLevel(log()->getLevel());
 
     // setup the outlier filter
     pcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor(true);
diff --git a/plugins/pcl/filters/StatisticalOutlierFilter.hpp b/plugins/pcl/filters/StatisticalOutlierFilter.hpp
index d2b9146..4bb1aa4 100644
--- a/plugins/pcl/filters/StatisticalOutlierFilter.hpp
+++ b/plugins/pcl/filters/StatisticalOutlierFilter.hpp
@@ -57,8 +57,6 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
     int m_meanK;
     double m_multiplier;
@@ -66,7 +64,7 @@ private:
     bool m_extract;
 
     virtual void addDimensions(PointLayoutPtr layout);
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual PointViewSet run(PointViewPtr view);
 
     StatisticalOutlierFilter& operator=(const StatisticalOutlierFilter&); // not implemented
diff --git a/plugins/pcl/filters/VoxelGridFilter.cpp b/plugins/pcl/filters/VoxelGridFilter.cpp
index 9f9f0f5..d02c478 100644
--- a/plugins/pcl/filters/VoxelGridFilter.cpp
+++ b/plugins/pcl/filters/VoxelGridFilter.cpp
@@ -43,6 +43,7 @@
 #include <pcl/filters/voxel_grid.h>
 
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -58,22 +59,12 @@ std::string VoxelGridFilter::getName() const
     return s_info.name;
 }
 
-Options VoxelGridFilter::getDefaultOptions()
-{
-    Options options;
-    options.add("leaf_x", 1.0, "Leaf size in X dimension");
-    options.add("leaf_y", 1.0, "Leaf size in Y dimension");
-    options.add("leaf_z", 1.0, "Leaf size in Z dimension");
-    return options;
-}
-
-/** \brief This method processes the PointView through the given pipeline. */
 
-void VoxelGridFilter::processOptions(const Options& options)
+void VoxelGridFilter::addArgs(ProgramArgs& args)
 {
-    m_leaf_x = options.getValueOrDefault<double>("leaf_x", 1.0);
-    m_leaf_y = options.getValueOrDefault<double>("leaf_y", 1.0);
-    m_leaf_z = options.getValueOrDefault<double>("leaf_z", 1.0);
+    args.add("leaf_x", "Leaf size in X dimension", m_leaf_x, 1.0);
+    args.add("leaf_y", "Leaf size in Y dimension", m_leaf_y, 1.0);
+    args.add("leaf_z", "Leaf size in Z dimension", m_leaf_z, 1.0);
 }
 
 PointViewSet VoxelGridFilter::run(PointViewPtr input)
@@ -96,28 +87,7 @@ PointViewSet VoxelGridFilter::run(PointViewPtr input)
     Cloud::Ptr cloud(new Cloud);
     pclsupport::PDALtoPCD(input, *cloud, buffer_bounds);
 
-    int level = log()->getLevel();
-    switch (level)
-    {
-        case 0:
-            pcl::console::setVerbosityLevel(pcl::console::L_ALWAYS);
-            break;
-        case 1:
-            pcl::console::setVerbosityLevel(pcl::console::L_ERROR);
-            break;
-        case 2:
-            pcl::console::setVerbosityLevel(pcl::console::L_WARN);
-            break;
-        case 3:
-            pcl::console::setVerbosityLevel(pcl::console::L_INFO);
-            break;
-        case 4:
-            pcl::console::setVerbosityLevel(pcl::console::L_DEBUG);
-            break;
-        default:
-            pcl::console::setVerbosityLevel(pcl::console::L_VERBOSE);
-            break;
-    }
+    pclsupport::setLogLevel(log()->getLevel());
 
     // initial setup
     pcl::VoxelGrid<pcl::PointXYZ> vg;
diff --git a/plugins/pcl/filters/VoxelGridFilter.hpp b/plugins/pcl/filters/VoxelGridFilter.hpp
index 915bc40..6502112 100644
--- a/plugins/pcl/filters/VoxelGridFilter.hpp
+++ b/plugins/pcl/filters/VoxelGridFilter.hpp
@@ -45,21 +45,18 @@ class PDAL_DLL VoxelGridFilter : public Filter
 public:
     VoxelGridFilter() : Filter()
     {}
+    VoxelGridFilter& operator=(const VoxelGridFilter&) = delete;
+    VoxelGridFilter(const VoxelGridFilter&) = delete;
 
     static void * create();
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
     double m_leaf_x, m_leaf_y, m_leaf_z;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual PointViewSet run(PointViewPtr view);
-
-    VoxelGridFilter& operator=(const VoxelGridFilter&); // not implemented
-    VoxelGridFilter(const VoxelGridFilter&); // not implemented
 };
 
 } // namespace pdal
diff --git a/plugins/pcl/io/PcdWriter.cpp b/plugins/pcl/io/PcdWriter.cpp
index 8d93c91..f3796c8 100644
--- a/plugins/pcl/io/PcdWriter.cpp
+++ b/plugins/pcl/io/PcdWriter.cpp
@@ -45,6 +45,7 @@
 #include "PCLConversions.hpp"
 #include <pdal/PointView.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -52,43 +53,53 @@ namespace pdal
 static PluginInfo const s_info = PluginInfo(
     "writers.pcd",
     "Write data in the Point Cloud Library (PCL) format.",
-    "http://pdal.io/stages/writers.pclvisualizer.html" );
+    "http://pdal.io/stages/writers.pcd.html" );
 
 CREATE_SHARED_PLUGIN(1, 0, PcdWriter, Writer, s_info)
 
 std::string PcdWriter::getName() const { return s_info.name; }
 
-void PcdWriter::processOptions(const Options& ops)
-{
-    m_filename = ops.getValueOrThrow<std::string>("filename");
-    m_compressed = ops.getValueOrDefault("compression", false);
-}
-
 
-Options PcdWriter::getDefaultOptions()
+void PcdWriter::addArgs(ProgramArgs& args)
 {
-    Options options;
 
-    options.add("filename", "", "Filename to write PCD file to");
-    options.add("compression", false, "Write binary compressed data?");
+    std::string compression;
+    args.add("filename", "Filename to write PCD file to", m_filename);
+    args.add("compression","Level of PCD compression to use (ascii, binary, compressed)", compression, "ascii");
+    args.add("xyz", "Write only XYZ dimensions?", m_xyz, false);
+    args.add("subtract_minimum", "Set origin to minimum of XYZ dimension", m_subtract_minimum, true);
+    args.add("offset_x", "Offset to be subtracted from XYZ position", m_offset_x, 0.0);
+    args.add("offset_y", "Offset to be subtracted from XYZ position", m_offset_y, 0.0);
+    args.add("offset_z", "Offset to be subtracted from XYZ position", m_offset_z, 0.0);
+    args.add("scale_x", "Scale to divide from XYZ dimension", m_scale_x, 1.0);
+    args.add("scale_y", "Scale to divide from XYZ dimension", m_scale_y, 1.0);
+    args.add("scale_z", "Scale to divide from XYZ dimension", m_scale_z, 1.0);
+
+    if (compression == "binary")
+    {
+      m_compression = 1;
+    }
+    else if (compression == "compressed")
+    {
+      m_compression = 2;
+    }
+    else  // including "ascii"
+    {
+      m_compression = 0;
+    }
 
-    return options;
 }
 
-
 void PcdWriter::write(const PointViewPtr view)
 {
-    pcl::PointCloud<XYZIRGBA>::Ptr cloud(new pcl::PointCloud<XYZIRGBA>);
-    BOX3D buffer_bounds;
-    view->calculateBounds(buffer_bounds);
-    pclsupport::PDALtoPCD(view, *cloud, buffer_bounds);
-
-    pcl::PCDWriter w;
-
-    if (m_compressed)
-        w.writeBinaryCompressed<XYZIRGBA>(m_filename, *cloud);
+    if (m_xyz)
+    {
+        writeView<pcl::PointCloud<pcl::PointXYZ> >(view);
+    }
     else
-        w.writeASCII<XYZIRGBA>(m_filename, *cloud);
+    {
+        writeView<pcl::PointCloud<XYZIRGBA> >(view);
+    }
 }
 
 
diff --git a/plugins/pcl/io/PcdWriter.hpp b/plugins/pcl/io/PcdWriter.hpp
index 906faf8..e1264ed 100644
--- a/plugins/pcl/io/PcdWriter.hpp
+++ b/plugins/pcl/io/PcdWriter.hpp
@@ -38,6 +38,11 @@
 #include <pdal/util/FileUtils.hpp>
 #include <pdal/StageFactory.hpp>
 
+#include "PCLConversions.hpp"
+
+#include <pcl/io/pcd_io.h>
+#include <pcl/io/impl/pcd_io.hpp>
+
 #include <vector>
 #include <string>
 
@@ -54,17 +59,55 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
-    virtual void processOptions(const Options&);
+    virtual void addArgs(ProgramArgs& args);
     virtual void write(const PointViewPtr view);
 
+    template<typename CloudT>
+    inline void writeView(const PointViewPtr view); // implemented in header
+
     std::string m_filename;
-    bool m_compressed;
+    uint8_t m_compression;
+    bool m_xyz;
+    bool m_subtract_minimum;
+    double m_offset_x;
+    double m_offset_y;
+    double m_offset_z;
+    double m_scale_x;
+    double m_scale_y;
+    double m_scale_z;
 
     PcdWriter& operator=(const PcdWriter&); // not implemented
     PcdWriter(const PcdWriter&); // not implemented
 };
 
+
+template<typename CloudT>
+void PcdWriter::writeView(const PointViewPtr view)
+{
+    typedef typename CloudT::PointType PointT;
+    typename CloudT::Ptr cloud(new CloudT);
+    BOX3D bounds;
+    if (m_subtract_minimum)
+    {
+        view->calculateBounds(bounds);
+        bounds.grow(bounds.minx + m_offset_x,
+                    bounds.miny + m_offset_y,
+                    bounds.minz + m_offset_z);
+    }
+    else
+    {
+        bounds.grow(m_offset_x, m_offset_y, m_offset_z);
+    }
+    pclsupport::PDALtoPCD(view, *cloud, bounds, m_scale_x, m_scale_y, m_scale_z);
+    pcl::PCDWriter w;
+    switch (m_compression)
+    {
+        case 0 : w.writeASCII<PointT>(m_filename, *cloud); break;
+        case 1 : w.writeBinary<PointT>(m_filename, *cloud); break;
+        case 2 : w.writeBinaryCompressed<PointT>(m_filename, *cloud); break;
+    }
+}
+
+
 } // namespaces
diff --git a/plugins/pcl/kernel/GroundKernel.cpp b/plugins/pcl/kernel/GroundKernel.cpp
index 41db7a2..899af28 100644
--- a/plugins/pcl/kernel/GroundKernel.cpp
+++ b/plugins/pcl/kernel/GroundKernel.cpp
@@ -92,39 +92,24 @@ int GroundKernel::execute()
 {
     PointTable table;
 
-    Options readerOptions;
-    readerOptions.add<std::string>("filename", m_inputFile);
-    setCommonOptions(readerOptions);
-
-    Stage& readerStage(Kernel::makeReader(m_inputFile));
-    readerStage.setOptions(readerOptions);
+    Stage& readerStage(makeReader(m_inputFile, ""));
 
     Options groundOptions;
-    groundOptions.add<double>("max_window_size", m_maxWindowSize);
-    groundOptions.add<double>("slope", m_slope);
-    groundOptions.add<double>("max_distance", m_maxDistance);
-    groundOptions.add<double>("initial_distance", m_initialDistance);
-    groundOptions.add<double>("cell_size", m_cellSize);
-    groundOptions.add<bool>("classify", m_classify);
-    groundOptions.add<bool>("extract", m_extract);
-    groundOptions.add<bool>("approximate", m_approximate);
-    groundOptions.add<bool>("debug", isDebug());
-    groundOptions.add<uint32_t>("verbose", getVerboseLevel());
-
-    StageFactory f;
-    Stage* groundStage(f.createStage("filters.ground"));
-    groundStage->setOptions(groundOptions);
-    groundStage->setInput(readerStage);
+    groundOptions.add("max_window_size", m_maxWindowSize);
+    groundOptions.add("slope", m_slope);
+    groundOptions.add("max_distance", m_maxDistance);
+    groundOptions.add("initial_distance", m_initialDistance);
+    groundOptions.add("cell_size", m_cellSize);
+    groundOptions.add("classify", m_classify);
+    groundOptions.add("extract", m_extract);
+    groundOptions.add("approximate", m_approximate);
+
+    Stage& groundStage = makeFilter("filters.ground", readerStage,
+        groundOptions);
 
     // setup the Writer and write the results
-    Options writerOptions;
-    writerOptions.add<std::string>("filename", m_outputFile);
-    setCommonOptions(writerOptions);
-
-    Stage& writer(Kernel::makeWriter(m_outputFile, *groundStage));
-    writer.setOptions(writerOptions);
+    Stage& writer(makeWriter(m_outputFile, groundStage, ""));
 
-    applyExtraStageOptionsRecursive(&writer);
     writer.prepare(table);
 
     // process the data, grabbing the PointViewSet for visualization of the
@@ -133,7 +118,6 @@ int GroundKernel::execute()
 
     if (isVisualize())
         visualize(*viewSetOut.begin());
-    //visualize(*viewSetIn.begin(), *viewSetOut.begin());
 
     return 0;
 }
diff --git a/plugins/pcl/kernel/PCLKernel.cpp b/plugins/pcl/kernel/PCLKernel.cpp
index 54a469b..c8afd26 100644
--- a/plugins/pcl/kernel/PCLKernel.cpp
+++ b/plugins/pcl/kernel/PCLKernel.cpp
@@ -77,12 +77,7 @@ int PCLKernel::execute()
 {
     PointTable table;
 
-    Options readerOptions;
-    readerOptions.add<std::string>("filename", m_inputFile);
-    setCommonOptions(readerOptions);
-
-    Stage& readerStage(Kernel::makeReader(m_inputFile));
-    readerStage.setOptions(readerOptions);
+    Stage& readerStage(makeReader(m_inputFile, ""));
 
     // go ahead and prepare/execute on reader stage only to grab input
     // PointViewSet, this makes the input PointView available to both the
@@ -96,34 +91,21 @@ int PCLKernel::execute()
     std::shared_ptr<BufferReader> bufferReader(new BufferReader);
     bufferReader->addView(input_view);
 
-    Options pclOptions;
-    pclOptions.add<std::string>("filename", m_pclFile);
-    pclOptions.add<bool>("debug", isDebug());
-    pclOptions.add<uint32_t>("verbose", getVerboseLevel());
-
-    auto& pclStage = createStage("filters.pclblock");
-    pclStage.setInput(*bufferReader);
-    pclStage.setOptions(pclOptions);
+    Options filterOptions({"filename", m_pclFile});
+    Stage& pclStage = makeFilter("filters.pclblock", *bufferReader,
+        filterOptions);
 
     // the PCLBlock stage consumes the BufferReader rather than the
     // readerStage
 
     Options writerOptions;
-    writerOptions.add<std::string>("filename", m_outputFile);
-    setCommonOptions(writerOptions);
-
     if (m_bCompress)
         writerOptions.add<bool>("compression", true);
     if (m_bForwardMetadata)
         writerOptions.add("forward_metadata", true);
 
-    Stage& writer(Kernel::makeWriter(m_outputFile, pclStage));
-
-    // Some options are inferred by makeWriter based on filename
-    // (compression, driver type, etc).
-    writer.addOptions(writerOptions);
+    Stage& writer(makeWriter(m_outputFile, pclStage, "", writerOptions));
 
-    applyExtraStageOptionsRecursive(&writer);
     writer.prepare(table);
 
     // process the data, grabbing the PointViewSet for visualization of the
diff --git a/plugins/pcl/kernel/SmoothKernel.cpp b/plugins/pcl/kernel/SmoothKernel.cpp
index 98baf14..5675aa8 100644
--- a/plugins/pcl/kernel/SmoothKernel.cpp
+++ b/plugins/pcl/kernel/SmoothKernel.cpp
@@ -64,12 +64,7 @@ int SmoothKernel::execute()
 {
     PointTable table;
 
-    Options readerOptions;
-    readerOptions.add("filename", m_inputFile);
-    setCommonOptions(readerOptions);
-
-    Stage& readerStage(Kernel::makeReader(m_inputFile));
-    readerStage.setOptions(readerOptions);
+    Stage& readerStage(makeReader(m_inputFile, ""));
 
     // go ahead and prepare/execute on reader stage only to grab input
     // PointViewSet, this makes the input PointView available to both the
@@ -80,11 +75,15 @@ int SmoothKernel::execute()
     // the input PointViewSet will be used to populate a BufferReader that is
     // consumed by the processing pipeline
     PointViewPtr input_view = *viewSetIn.begin();
-    std::shared_ptr<BufferReader> bufferReader(new BufferReader);
-    bufferReader->setOptions(readerOptions);
-    bufferReader->addView(input_view);
 
-    Options smoothOptions;
+    PipelineManager manager;
+    manager.commonOptions() = m_manager.commonOptions();
+    manager.stageOptions() = m_manager.stageOptions();
+
+    BufferReader& bufferReader =
+        static_cast<BufferReader&>(manager.makeReader("", "readers.buffer"));
+    bufferReader.addView(input_view);
+
     std::ostringstream ss;
     ss << "{";
     ss << "  \"pipeline\": {";
@@ -93,21 +92,12 @@ int SmoothKernel::execute()
     ss << "      }]";
     ss << "    }";
     ss << "}";
-    std::string json = ss.str();
-    smoothOptions.add("json", json);
-    smoothOptions.add("debug", isDebug());
-    smoothOptions.add("verbose", getVerboseLevel());
-
-    auto& smoothStage = createStage("filters.pclblock");
-    smoothStage.setOptions(smoothOptions);
-    smoothStage.setInput(*bufferReader);
 
-    Options writerOptions;
-    writerOptions.add("filename", m_outputFile);
-    setCommonOptions(writerOptions);
+    Options filterOptions({"json", ss.str()});
+    Stage& smoothStage = manager.makeFilter("filters.pclblock", bufferReader,
+        filterOptions);
 
-    Stage& writer(Kernel::makeWriter(m_outputFile, smoothStage));
-    writer.setOptions(writerOptions);
+    Stage& writer(Kernel::makeWriter(m_outputFile, smoothStage, ""));
 
     writer.prepare(table);
 
@@ -117,7 +107,6 @@ int SmoothKernel::execute()
 
     if (isVisualize())
         visualize(*viewSetOut.begin());
-    //visualize(*viewSetIn.begin(), *viewSetOut.begin());
 
     return 0;
 }
diff --git a/plugins/pcl/kernel/ViewKernel.cpp b/plugins/pcl/kernel/ViewKernel.cpp
index 3dde3e0..da40c52 100644
--- a/plugins/pcl/kernel/ViewKernel.cpp
+++ b/plugins/pcl/kernel/ViewKernel.cpp
@@ -132,12 +132,7 @@ void ViewKernel::addSwitches(ProgramArgs& args)
 
 int ViewKernel::execute()
 {
-    Options readerOptions;
-    readerOptions.add<std::string>("filename", m_inputFile);
-    setCommonOptions(readerOptions);
-
-    Stage& readerStage(Kernel::makeReader(m_inputFile));
-    readerStage.setOptions(readerOptions);
+    Stage& readerStage(Kernel::makeReader(m_inputFile, ""));
 
     PointTable table;
     readerStage.prepare(table);
diff --git a/plugins/pcl/test/PCLBlockFilterTest.cpp b/plugins/pcl/test/PCLBlockFilterTest.cpp
index 57a0990..26e0947 100644
--- a/plugins/pcl/test/PCLBlockFilterTest.cpp
+++ b/plugins/pcl/test/PCLBlockFilterTest.cpp
@@ -73,21 +73,14 @@ static void test_filter(const std::string& jsonFile,
     const std::string& autzenThin = "autzen/autzen-thin.las";
     const std::string& autzen = useThin ? autzenThin : autzenThick;
 
-    Option filename("filename", Support::datapath(autzen));
-    Option debug("debug", true, "");
-    Option verbose("verbose", 9, "");
-
-    options.add(filename);
-    options.add(debug);
-    options.add(verbose);
+    options.add("filename", Support::datapath(autzen));
 
     Stage* reader(f.createStage("readers.las"));
     EXPECT_TRUE(reader);
     reader->setOptions(options);
 
-    Option fname("filename", Support::datapath(jsonFile));
     Options filter_options;
-    filter_options.add(fname);
+    filter_options.add("filename", Support::datapath(jsonFile));
 
     Stage* pcl_block(f.createStage("filters.pclblock"));
     EXPECT_TRUE(pcl_block);
diff --git a/plugins/pgpointcloud/io/PgCommon.hpp b/plugins/pgpointcloud/io/PgCommon.hpp
index 94bc78f..c907211 100644
--- a/plugins/pgpointcloud/io/PgCommon.hpp
+++ b/plugins/pgpointcloud/io/PgCommon.hpp
@@ -44,7 +44,7 @@
 namespace pdal
 {
 
-inline pdal::CompressionType::Enum getCompressionType(
+inline pdal::CompressionType getCompressionType(
     std::string compression_type)
 {
     compression_type = Utils::tolower(compression_type);
diff --git a/plugins/pgpointcloud/io/PgReader.cpp b/plugins/pgpointcloud/io/PgReader.cpp
index 6a87ebd..2cc65ff 100644
--- a/plugins/pgpointcloud/io/PgReader.cpp
+++ b/plugins/pgpointcloud/io/PgReader.cpp
@@ -37,6 +37,7 @@
 #include <pdal/PointView.hpp>
 #include <pdal/XMLSchema.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <iostream>
 
@@ -66,40 +67,14 @@ PgReader::~PgReader()
 }
 
 
-Options PgReader::getDefaultOptions()
+void PgReader::addArgs(ProgramArgs& args)
 {
-    Options ops;
-
-    ops.add("connection", "", "Connection string to connect to database");
-    ops.add("table", "", "Table to read out of");
-    ops.add("schema", "", "Schema to read out of");
-    ops.add("column", "", "Column to read out of");
-    ops.add("where", "", "SQL where clause to filter query");
-    ops.add("spatialreference", "",
-        "override the source data spatialreference");
-
-    return ops;
-}
-
-
-void PgReader::processOptions(const Options& options)
-{
-    // If we don't know the table name, we're SOL
-    m_table_name = options.getValueOrThrow<std::string>("table");
-
-    // Connection string needs to exist and actually work
-    m_connection = options.getValueOrThrow<std::string>("connection");
-
-    // Schema and column name can be defaulted safely
-    m_column_name = options.getValueOrDefault<std::string>("column", "pa");
-    m_schema_name = options.getValueOrDefault<std::string>("schema", "");
-
-    // Read other preferences
-    m_where = options.getValueOrDefault<std::string>("where", "");
-
-    // Spatial reference.
-    setSpatialReference(options.getValueOrDefault<SpatialReference>(
-        "spatialreference", SpatialReference()));
+    args.add("table", "Table name", m_table_name).setPositional();
+    args.add("connection", "Connection string", m_connection);
+    args.add("column", "Column name", m_column_name, "pa");
+    args.add("schema", "Schema name", m_schema_name);
+    args.add("where", "Where clause for selection", m_where);
+    addSpatialReferenceArg(args);
 }
 
 
diff --git a/plugins/pgpointcloud/io/PgReader.hpp b/plugins/pgpointcloud/io/PgReader.hpp
index 73938e6..ec6409f 100644
--- a/plugins/pgpointcloud/io/PgReader.hpp
+++ b/plugins/pgpointcloud/io/PgReader.hpp
@@ -89,7 +89,6 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
     virtual point_count_t getNumPoints() const;
     point_count_t getMaxPoints() const;
     std::string getDataQuery() const;
@@ -99,7 +98,7 @@ public:
 
 private:
     virtual void addDimensions(PointLayoutPtr layout);
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual void ready(PointTableRef table);
     virtual void initialize();
     virtual point_count_t read(PointViewPtr view, point_count_t count);
diff --git a/plugins/pgpointcloud/io/PgWriter.cpp b/plugins/pgpointcloud/io/PgWriter.cpp
index 3816bb3..40d702e 100644
--- a/plugins/pgpointcloud/io/PgWriter.cpp
+++ b/plugins/pgpointcloud/io/PgWriter.cpp
@@ -37,10 +37,11 @@
 
 #include <pdal/PointView.hpp>
 #include <pdal/StageFactory.hpp>
-#include <pdal/util/FileUtils.hpp>
-#include <pdal/util/portable_endian.hpp>
 #include <pdal/XMLSchema.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/FileUtils.hpp>
+#include <pdal/util/portable_endian.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -83,78 +84,30 @@ PgWriter::~PgWriter()
 }
 
 
-void PgWriter::processOptions(const Options& options)
+void PgWriter::addArgs(ProgramArgs& args)
 {
-    // If we don't know the table name, we're SOL
-    m_table_name = options.getValueOrThrow<std::string>("table");
-
-    // Schema and column name can be defaulted safely
-    m_column_name = options.getValueOrDefault<std::string>("column", "pa");
-    m_schema_name = options.getValueOrDefault<std::string>("schema");
-    //
-    // Read compression type and turn into an integer
-    std::string compression_str =
-        options.getValueOrDefault<std::string>("compression", "dimensional");
-    m_patch_compression_type = getCompressionType(compression_str);
-
-    // Connection string needs to exist and actually work
-    m_connection = options.getValueOrThrow<std::string>("connection");
-
-    // Read other preferences
-    m_overwrite = options.getValueOrDefault<bool>("overwrite", true);
-    m_srid = options.getValueOrDefault<uint32_t>("srid", 4326);
-    m_pcid = options.getValueOrDefault<uint32_t>("pcid", 0);
-    m_pre_sql = options.getValueOrDefault<std::string>("pre_sql");
-    // Post-SQL can be *either* a SQL file to execute, *or* a SQL statement
-    // to execute. We find out which one here.
-    std::string post_sql = options.getValueOrDefault<std::string>("post_sql");
+    DbWriter::doAddArgs(args);
+    args.add("connection", "Connection string", m_connection).setPositional();
+    args.add("table", "Table name", m_table_name);
+    args.add("column", "Column name", m_column_name, "pa");
+    args.add("schema", "Schema name", m_schema_name);
+    args.add("compression", "Compression type", m_compressionSpec,
+        "dimensional");
+    args.add("overwrite", "Whether data should be overwritten", m_overwrite,
+        true);
+    args.add("srid", "SRID", m_srid, 4326U);
+    args.add("pcid", "PCID", m_pcid);
+    args.add("pre_sql", "SQL to execute before query", m_pre_sql);
+    args.add("post_sql", "SQL to execute after query", m_post_sql);
 }
 
-//
-// Called from PDAL core during start-up. Do everything
-// here that you are going to absolutely require later.
-// Optional things you can defer or attempt to initialize
-// here.
-//
+
 void PgWriter::initialize()
 {
+    m_patch_compression_type = getCompressionType(m_compressionSpec);
     m_session = pg_connect(m_connection);
 }
 
-//
-// Called from somewhere (?) in PDAL core presumably to provide a user-friendly
-// means of editing the reader options.
-//
-Options PgWriter::getDefaultOptions()
-{
-    Options options;
-
-    Option table("table", "", "table to write to");
-    Option schema("schema", "", "schema table resides in");
-    Option column("column", "", "column to write to");
-    Option compression("compression", "dimensional",
-        "patch compression format to use (none, dimensional, ght)");
-    Option overwrite("overwrite", true, "replace any existing table");
-    Option srid("srid", 4326, "spatial reference id to store data in");
-    Option pcid("pcid", 0, "use this existing pointcloud schema id, if it "
-        "exists");
-    Option pre_sql("pre_sql", "", "before the pipeline runs, read and "
-        "execute this SQL file, or run this SQL command");
-    Option post_sql("post_sql", "", "after the pipeline runs, read and "
-        "execute this SQL file, or run this SQL command");
-
-    options.add(table);
-    options.add(schema);
-    options.add(column);
-    options.add(compression);
-    options.add(overwrite);
-    options.add(srid);
-    options.add(pcid);
-    options.add(pre_sql);
-    options.add(post_sql);
-
-    return options;
-}
 
 void PgWriter::writeInit()
 {
@@ -509,7 +462,7 @@ void PgWriter::writeTile(const PointViewPtr view)
 
     uint32_t num_points = htobe32(view->size());
     int32_t pcid = htobe32(m_pcid);
-    CompressionType::Enum compression_v = CompressionType::None;
+    CompressionType compression_v = CompressionType::None;
     uint32_t compression = htobe32(static_cast<uint32_t>(compression_v));
 
 #if BYTE_ORDER == LITTLE_ENDIAN
diff --git a/plugins/pgpointcloud/io/PgWriter.hpp b/plugins/pgpointcloud/io/PgWriter.hpp
index 86bdfb7..61cffd1 100644
--- a/plugins/pgpointcloud/io/PgWriter.hpp
+++ b/plugins/pgpointcloud/io/PgWriter.hpp
@@ -52,18 +52,14 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
+    PgWriter& operator=(const PgWriter&) = delete;
+    PgWriter(const PgWriter&) = delete;
 
-
-    PgWriter& operator=(const PgWriter&); // not implemented
-    PgWriter(const PgWriter&); // not implemented
-
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void initialize();
     virtual void write(const PointViewPtr view);
     virtual void done(PointTableRef table);
-    virtual void initialize();
 
     void writeInit();
     void writeTile(const PointViewPtr view);
@@ -92,13 +88,15 @@ private:
     std::string m_table_name;
     std::string m_column_name;
     std::string m_connection;
-    CompressionType::Enum m_patch_compression_type;
+    std::string m_compressionSpec;
+
+    CompressionType m_patch_compression_type;
     uint32_t m_patch_capacity;
     uint32_t m_srid;
     uint32_t m_pcid;
     bool m_overwrite;
     std::string m_insert;
-    Orientation::Enum m_orientation;
+    Orientation m_orientation;
     std::string m_pre_sql;
     std::string m_post_sql;
 
diff --git a/plugins/pgpointcloud/test/PgpointcloudWriterTest.cpp b/plugins/pgpointcloud/test/PgpointcloudWriterTest.cpp
index e8db031..3f821d7 100644
--- a/plugins/pgpointcloud/test/PgpointcloudWriterTest.cpp
+++ b/plugins/pgpointcloud/test/PgpointcloudWriterTest.cpp
@@ -84,8 +84,6 @@ Options getDbOptions()
     options.add(Option("connection", getTestDBTempConn()));
     options.add(Option("table", "4dal-\"test\"-table")); // intentional quotes
     options.add(Option("column", "p\"a")); // intentional quotes
-    options.add(Option("srid", "4326"));
-    options.add(Option("capacity", "10000"));
 
     return options;
 }
@@ -184,18 +182,14 @@ namespace
 void optionsWrite(const Options& writerOps)
 {
     StageFactory f;
-    Stage* writer(f.createStage("writers.pgpointcloud"));
     Stage* reader(f.createStage("readers.las"));
 
-    EXPECT_TRUE(writer);
-    EXPECT_TRUE(reader);
-    if (!writer || !reader)
-        return;
-
     const std::string file(Support::datapath("las/1.2-with-color.las"));
     Options options;
     options.add("filename", file);
     reader->setOptions(options);
+
+    Stage* writer(f.createStage("writers.pgpointcloud"));
     writer->setOptions(writerOps);
     writer->setInput(*reader);
 
diff --git a/plugins/python/filters/PredicateFilter.cpp b/plugins/python/filters/PredicateFilter.cpp
index 958de0d..53b9f32 100644
--- a/plugins/python/filters/PredicateFilter.cpp
+++ b/plugins/python/filters/PredicateFilter.cpp
@@ -38,6 +38,7 @@
 #include <pdal/PointView.hpp>
 #include <pdal/StageFactory.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -51,29 +52,21 @@ CREATE_SHARED_PLUGIN(1, 0, PredicateFilter, Filter, s_info)
 
 std::string PredicateFilter::getName() const { return s_info.name; }
 
-void PredicateFilter::processOptions(const Options& options)
+void PredicateFilter::addArgs(ProgramArgs& args)
 {
-    m_source = options.getValueOrDefault<std::string>("source", "");
-    if (m_source.empty())
-        m_source = FileUtils::readFileIntoString(
-            options.getValueOrThrow<std::string>("script"));
-    m_module = options.getValueOrThrow<std::string>("module");
-    m_function = options.getValueOrThrow<std::string>("function");
-}
-
-
-Options PredicateFilter::getDefaultOptions()
-{
-    Options options;
-    options.add("script", "");
-    options.add("module", "");
-    options.add("function", "");
-    return options;
+    args.add("source", "Python script to run", m_source);
+    args.add("script", "File containing script to run", m_scriptFile);
+    args.add("module", "Python module containing the function to run",
+        m_module);
+    args.add("function", "Function to call", m_function);
 }
 
 
 void PredicateFilter::ready(PointTableRef table)
 {
+    if (m_source.empty())
+        m_source = FileUtils::readFileIntoString(m_scriptFile);
+
     plang::Environment::get()->set_stdout(log()->getLogStream());
     m_script = new plang::Script(m_source, m_module, m_function);
     m_pythonMethod = new plang::BufferedInvocation(*m_script);
diff --git a/plugins/python/filters/PredicateFilter.hpp b/plugins/python/filters/PredicateFilter.hpp
index 070de13..3e35d3a 100644
--- a/plugins/python/filters/PredicateFilter.hpp
+++ b/plugins/python/filters/PredicateFilter.hpp
@@ -52,16 +52,15 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
     plang::BufferedInvocation* m_pythonMethod;
     plang::Script* m_script;
     std::string m_source;
+    std::string m_scriptFile;
     std::string m_module;
     std::string m_function;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual void ready(PointTableRef table);
     virtual PointViewSet run(PointViewPtr view);
     virtual void done(PointTableRef table);
diff --git a/plugins/python/filters/ProgrammableFilter.cpp b/plugins/python/filters/ProgrammableFilter.cpp
index 280441a..edff7ab 100644
--- a/plugins/python/filters/ProgrammableFilter.cpp
+++ b/plugins/python/filters/ProgrammableFilter.cpp
@@ -38,6 +38,7 @@
 #include <pdal/PointView.hpp>
 #include <pdal/StageFactory.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -51,40 +52,21 @@ CREATE_SHARED_PLUGIN(1, 0, ProgrammableFilter, Filter, s_info)
 
 std::string ProgrammableFilter::getName() const { return s_info.name; }
 
-Options ProgrammableFilter::getDefaultOptions()
+void ProgrammableFilter::addArgs(ProgramArgs& args)
 {
-    Options options;
-    options.add("script", "");
-    options.add("module", "");
-    options.add("function", "");
-    return options;
-}
-
-
-void ProgrammableFilter::processOptions(const Options& options)
-{
-    m_source = options.getValueOrDefault<std::string>("source", "");
-    if (m_source.empty())
-        m_source = FileUtils::readFileIntoString(
-            options.getValueOrThrow<std::string>("script"));
-    m_module = options.getValueOrThrow<std::string>("module");
-    m_function = options.getValueOrThrow<std::string>("function");
-
-    auto addDims = options.getOptions("add_dimension");
-    for (auto it = addDims.cbegin(); it != addDims.cend(); ++it)
-    {
-        m_addDimensions.push_back(it->getValue<std::string>());
-    }
+    args.add("source", "Python script to run", m_source);
+    args.add("script", "File containing script to run", m_scriptFile);
+    args.add("module", "Python module containing the function to run",
+        m_module);
+    args.add("function", "Function to call", m_function);
+    args.add("add_dimension", "Dimensions to add", m_addDimensions);
 }
 
 
 void ProgrammableFilter::addDimensions(PointLayoutPtr layout)
 {
-    for (auto it = m_addDimensions.cbegin(); it != m_addDimensions.cend(); ++it)
-    {
-        Dimension::Id::Enum id = layout->registerOrAssignDim(*it,
-                                    pdal::Dimension::Type::Double);
-    }
+    for (const std::string& s : m_addDimensions)
+        layout->registerOrAssignDim(s, pdal::Dimension::Type::Double);
 }
 
 
diff --git a/plugins/python/filters/ProgrammableFilter.hpp b/plugins/python/filters/ProgrammableFilter.hpp
index 2dac6ea..be3d072 100644
--- a/plugins/python/filters/ProgrammableFilter.hpp
+++ b/plugins/python/filters/ProgrammableFilter.hpp
@@ -54,17 +54,16 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
-
 private:
     plang::Script* m_script;
     plang::BufferedInvocation *m_pythonMethod;
     std::string m_source;
+    std::string m_scriptFile;
     std::string m_module;
     std::string m_function;
-    std::vector<std::string> m_addDimensions;
+    StringList m_addDimensions;
 
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual void addDimensions(PointLayoutPtr layout);
     virtual void ready(PointTableRef table);
     virtual void filter(PointView& view);
diff --git a/plugins/python/test/PLangTest.cpp b/plugins/python/test/PLangTest.cpp
index e4de77e..2c5a130 100644
--- a/plugins/python/test/PLangTest.cpp
+++ b/plugins/python/test/PLangTest.cpp
@@ -347,7 +347,7 @@ TEST(PLangTest, log)
     {
         BOX3D bounds(1.0, 2.0, 3.0, 101.0, 102.0, 103.0);
         Option opt1("bounds", bounds);
-        Option opt2("num_points", 750);
+        Option opt2("count", 750);
         Option opt3("mode", "constant");
 
         reader_opts.add(opt1);
diff --git a/plugins/python/test/PredicateFilterTest.cpp b/plugins/python/test/PredicateFilterTest.cpp
index bdaf699..30010bc 100644
--- a/plugins/python/test/PredicateFilterTest.cpp
+++ b/plugins/python/test/PredicateFilterTest.cpp
@@ -65,7 +65,7 @@ TEST_F(PredicateFilterTest, PredicateFilterTest_test1)
     BOX3D bounds(0.0, 0.0, 0.0, 2.0, 2.0, 2.0);
     Options readerOps;
     readerOps.add("bounds", bounds);
-    readerOps.add("num_points", 1000);
+    readerOps.add("count", 1000);
     readerOps.add("mode", "ramp");
 
     FauxReader reader;
@@ -125,7 +125,7 @@ TEST_F(PredicateFilterTest, PredicateFilterTest_test2)
     BOX3D bounds(0.0, 0.0, 0.0, 2.0, 2.0, 2.0);
     Options readerOps;
     readerOps.add("bounds", bounds);
-    readerOps.add("num_points", 1000);
+    readerOps.add("count", 1000);
     readerOps.add("mode", "ramp");
 
     FauxReader reader;
@@ -183,7 +183,7 @@ TEST_F(PredicateFilterTest, PredicateFilterTest_test3)
     BOX3D bounds(0.0, 0.0, 0.0, 2.0, 2.0, 2.0);
     Options readerOpts;
     readerOpts.add("bounds", bounds);
-    readerOpts.add("num_points", 1000);
+    readerOpts.add("count", 1000);
     readerOpts.add("mode", "ramp");
 
     FauxReader reader;
@@ -264,7 +264,7 @@ TEST_F(PredicateFilterTest, PredicateFilterTest_test4)
     BOX3D bounds(0.0, 0.0, 0.0, 2.0, 2.0, 2.0);
     Options readerOpts;
     readerOpts.add("bounds", bounds);
-    readerOpts.add("num_points", 1000);
+    readerOpts.add("count", 1000);
     readerOpts.add("mode", "ramp");
 
     FauxReader reader;
@@ -319,7 +319,7 @@ TEST_F(PredicateFilterTest, PredicateFilterTest_test5)
     BOX3D bounds(0.0, 0.0, 0.0, 2.0, 2.0, 2.0);
     Options readerOpts;
     readerOpts.add("bounds", bounds);
-    readerOpts.add("num_points", 1000);
+    readerOpts.add("count", 1000);
     readerOpts.add("mode", "ramp");
 
     FauxReader reader;
diff --git a/plugins/python/test/ProgrammableFilterTest.cpp b/plugins/python/test/ProgrammableFilterTest.cpp
index e6f4d4b..9076da0 100644
--- a/plugins/python/test/ProgrammableFilterTest.cpp
+++ b/plugins/python/test/ProgrammableFilterTest.cpp
@@ -61,7 +61,7 @@ TEST_F(ProgrammableFilterTest, ProgrammableFilterTest_test1)
 
     Options ops;
     ops.add("bounds", bounds);
-    ops.add("num_points", 10);
+    ops.add("count", 10);
     ops.add("mode", "ramp");
 
     FauxReader reader;
@@ -161,7 +161,7 @@ TEST_F(ProgrammableFilterTest, add_dimension)
 
     Options ops;
     ops.add("bounds", bounds);
-    ops.add("num_points", 10);
+    ops.add("count", 10);
     ops.add("mode", "ramp");
 
     FauxReader reader;
@@ -196,8 +196,8 @@ TEST_F(ProgrammableFilterTest, add_dimension)
 
     PointLayoutPtr layout(table.layout());
 
-    Dimension::Id::Enum int_id = layout->findDim("AddedIntensity");
-    Dimension::Id::Enum psid_id = layout->findDim("AddedPointSourceId");
+    Dimension::Id int_id = layout->findDim("AddedIntensity");
+    Dimension::Id psid_id = layout->findDim("AddedPointSourceId");
 
     for (unsigned int i = 0; i < view->size(); ++i)
     {
@@ -215,7 +215,7 @@ TEST_F(ProgrammableFilterTest, metadata)
 
     Options ops;
     ops.add("bounds", bounds);
-    ops.add("num_points", 10);
+    ops.add("count", 10);
     ops.add("mode", "ramp");
 
     FauxReader reader;
diff --git a/plugins/python/test/PythonPipelineTest.cpp b/plugins/python/test/PythonPipelineTest.cpp
index 954ccf3..929a649 100644
--- a/plugins/python/test/PythonPipelineTest.cpp
+++ b/plugins/python/test/PythonPipelineTest.cpp
@@ -48,7 +48,8 @@
 // most pipelines (those with a writer) will be invoked via `pdal pipeline`
 static void run_pipeline(std::string const& pipeline)
 {
-    const std::string cmd = Support::binpath(Support::exename("pdal") + " pipeline");
+    const std::string cmd = Support::binpath(Support::exename("pdal") +
+        " pipeline");
 
     std::string output;
     std::string file(Support::configuredpath(pipeline));
diff --git a/plugins/rxp/io/RxpPointcloud.cpp b/plugins/rxp/io/RxpPointcloud.cpp
index 14160ca..11406d8 100644
--- a/plugins/rxp/io/RxpPointcloud.cpp
+++ b/plugins/rxp/io/RxpPointcloud.cpp
@@ -46,7 +46,7 @@ namespace pdal
 {
 
 
-Dimension::Id::Enum getTimeDimensionId(bool syncToPps)
+Dimension::Id getTimeDimensionId(bool syncToPps)
 {
     return syncToPps ? Dimension::Id::GpsTime : Dimension::Id::InternalTime;
 }
@@ -120,7 +120,7 @@ void RxpPointcloud::on_echo_transformed(echo_type echo)
 
     point_count_t idx = m_view->size();
     unsigned int returnNumber = 1;
-    Id::Enum timeId = getTimeDimensionId(m_syncToPps);
+    Id timeId = getTimeDimensionId(m_syncToPps);
     for (const auto& t : targets)
     {
         m_view->setField(Id::X, idx, t.vertex[0]);
diff --git a/plugins/rxp/io/RxpPointcloud.hpp b/plugins/rxp/io/RxpPointcloud.hpp
index efeaecd..49d7497 100644
--- a/plugins/rxp/io/RxpPointcloud.hpp
+++ b/plugins/rxp/io/RxpPointcloud.hpp
@@ -52,7 +52,7 @@ namespace pdal
 {
 
 
-Dimension::Id::Enum getTimeDimensionId(bool syncToPps);
+Dimension::Id getTimeDimensionId(bool syncToPps);
 
 
 class PDAL_DLL RxpPointcloud : public scanlib::pointcloud
diff --git a/plugins/rxp/io/RxpReader.cpp b/plugins/rxp/io/RxpReader.cpp
index 986bd99..7c094f9 100644
--- a/plugins/rxp/io/RxpReader.cpp
+++ b/plugins/rxp/io/RxpReader.cpp
@@ -42,6 +42,7 @@
 
 #include <pdal/StageFactory.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -55,24 +56,6 @@ CREATE_SHARED_PLUGIN(1, 0, RxpReader, Reader, s_info)
 
 std::string RxpReader::getName() const { return s_info.name; }
 
-std::string extractRivlibURI(const Options& options)
-{
-    if (options.hasOption("filename"))
-    {
-        if (options.hasOption("rdtp"))
-        {
-            throw pdal_error("Cannot create URI when both filename "
-                "and rdtp are provided");
-        }
-        return "file:" + options.getValueOrThrow<std::string>("filename");
-    }
-    else
-    {
-        return "rdtp://" + options.getValueOrThrow<std::string>("rdtp");
-    }
-}
-
-
 Dimension::IdList getRxpDimensions(bool syncToPps, bool minimal)
 {
     using namespace Dimension;
@@ -98,20 +81,15 @@ Dimension::IdList getRxpDimensions(bool syncToPps, bool minimal)
 }
 
 
-Options RxpReader::getDefaultOptions()
+void RxpReader::addArgs(ProgramArgs& args)
 {
-    Options options;
-    options.add("sync_to_pps", DEFAULT_SYNC_TO_PPS, "");
-    options.add("minimal", DEFAULT_MINIMAL, "");
-    return options;
+    args.add("rdtp", "", m_isRdtp, DEFAULT_IS_RDTP);
+    args.add("sync_to_pps", "Sync to PPS", m_syncToPps, DEFAULT_SYNC_TO_PPS);
 }
 
-
-void RxpReader::processOptions(const Options& options)
+void RxpReader::initialize()
 {
-    m_uri = extractRivlibURI(options);
-    m_syncToPps = options.getValueOrDefault<bool>("sync_to_pps",
-                                                  DEFAULT_SYNC_TO_PPS);
+    m_uri = m_isRdtp ? "rdtp://" + m_filename : "file:" + m_filename;
 }
 
 
diff --git a/plugins/rxp/io/RxpReader.hpp b/plugins/rxp/io/RxpReader.hpp
index a99a649..d1559b3 100644
--- a/plugins/rxp/io/RxpReader.hpp
+++ b/plugins/rxp/io/RxpReader.hpp
@@ -45,14 +45,15 @@
 
 #include <pdal/PointView.hpp>
 #include <pdal/Reader.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 #include "RxpPointcloud.hpp"
 
-
 namespace pdal
 {
 
 
 const bool DEFAULT_SYNC_TO_PPS = true;
+const bool DEFAULT_IS_RDTP = false;
 const bool DEFAULT_MINIMAL = false;
 
 
@@ -65,7 +66,6 @@ class PDAL_DLL RxpReader : public pdal::Reader
 public:
     RxpReader()
         : pdal::Reader()
-        , m_uri("")
         , m_syncToPps(DEFAULT_SYNC_TO_PPS)
         , m_minimal(false)
         , m_pointcloud()
@@ -75,14 +75,14 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
     static Dimension::IdList getDefaultDimensions()
     {
         return getRxpDimensions(DEFAULT_SYNC_TO_PPS, DEFAULT_MINIMAL);
     }
 
 private:
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
+    virtual void initialize();
     virtual void addDimensions(PointLayoutPtr layout);
     virtual void ready(PointTableRef table);
     virtual point_count_t read(PointViewPtr view, point_count_t count);
@@ -91,8 +91,8 @@ private:
     std::string m_uri;
     bool m_syncToPps;
     bool m_minimal;
+    bool m_isRdtp;
     std::unique_ptr<RxpPointcloud> m_pointcloud;
-
 };
 
 
diff --git a/plugins/rxp/test/RxpReaderTest.cpp b/plugins/rxp/test/RxpReaderTest.cpp
index 52c358e..984e9f9 100644
--- a/plugins/rxp/test/RxpReaderTest.cpp
+++ b/plugins/rxp/test/RxpReaderTest.cpp
@@ -47,8 +47,7 @@ using namespace pdal;
 Options defaultRxpReaderOptions()
 {
     Options options;
-    Option filename("filename",
-        testDataPath() + "130501_232206_cut.rxp", "");
+    Option filename("filename", testDataPath() + "130501_232206_cut.rxp");
     options.add(filename);
     return options;
 }
@@ -56,7 +55,7 @@ Options defaultRxpReaderOptions()
 template <typename T>
 void checkDimensionClose(const PointViewPtr view,
                          std::size_t index,
-                         Dimension::Id::Enum dim,
+                         Dimension::Id dim,
                          T expected)
 {
     T actual = view->getFieldAs<T>(dim, index);
@@ -66,7 +65,7 @@ void checkDimensionClose(const PointViewPtr view,
 template <typename T>
 void checkDimensionEqual(const PointViewPtr view,
                          std::size_t index,
-                         Dimension::Id::Enum dim,
+                         Dimension::Id dim,
                          T expected)
 {
     T actual = view->getFieldAs<T>(dim, index);
@@ -131,7 +130,7 @@ TEST(RxpReaderTest, testRead)
 TEST(RxpReaderTest, testNoPpsSync)
 {
     Options options = defaultRxpReaderOptions();
-    Option syncToPps("sync_to_pps", "false", "");
+    Option syncToPps("sync_to_pps", false);
     options.add(syncToPps);
     RxpReader reader;
     reader.setOptions(options);
@@ -145,22 +144,3 @@ TEST(RxpReaderTest, testNoPpsSync)
     checkPoint(view, 0, 0.0705248788, -0.0417557284, 0.0304775704, 31.917255942733149,
             0.14050000667339191, 0.689999998, -14.4898596, 3, false, 1, 1);
 }
-
-TEST(RxpReaderTest, testURILogic)
-{
-    Option fileOption("filename", "foobar", "");
-    Options fileOptions(fileOption);
-    EXPECT_EQ(extractRivlibURI(fileOptions), "file:foobar");
-
-    Option rdtpOption("rdtp", "192.168.0.33", "");
-    Options rdtpOptions(rdtpOption);
-    EXPECT_EQ(extractRivlibURI(rdtpOptions), "rdtp://192.168.0.33");
-
-    Options emptyOptions;
-    EXPECT_THROW(extractRivlibURI(emptyOptions), Option::not_found);
-
-    Options bothOptions;
-    bothOptions.add(fileOption);
-    bothOptions.add(rdtpOption);
-    EXPECT_THROW(extractRivlibURI(bothOptions), pdal_error);
-}
diff --git a/plugins/sqlite/io/SQLiteCommon.hpp b/plugins/sqlite/io/SQLiteCommon.hpp
index ed18122..36deff1 100644
--- a/plugins/sqlite/io/SQLiteCommon.hpp
+++ b/plugins/sqlite/io/SQLiteCommon.hpp
@@ -486,7 +486,7 @@ public:
         if (module_name.size())
             oss << module_name;
         else
-            oss << lib_extension << "spatialite" << "." << so_extension;
+            oss << lib_extension << "spatialite";
         oss << "')";
         execute(oss.str());
         oss.str("");
diff --git a/plugins/sqlite/io/SQLiteReader.cpp b/plugins/sqlite/io/SQLiteReader.cpp
index 77d3dcf..f20b0ec 100644
--- a/plugins/sqlite/io/SQLiteReader.cpp
+++ b/plugins/sqlite/io/SQLiteReader.cpp
@@ -35,6 +35,8 @@
 #include "SQLiteReader.hpp"
 #include <pdal/PointView.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/PDALUtils.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
@@ -85,22 +87,6 @@ void SQLiteReader::initialize()
 }
 
 
-Options SQLiteReader::getDefaultOptions()
-{
-    Options options;
-
-    Option connection("connection", "",
-        "Connection string to connect to database");
-    Option query("query", "",
-        "SELECT statement that returns point cloud");
-
-    options.add(connection);
-    options.add(query);
-
-    return options;
-}
-
-
 pdal::SpatialReference
 SQLiteReader::fetchSpatialReference(std::string const& query) const
 {
@@ -134,16 +120,16 @@ SQLiteReader::fetchSpatialReference(std::string const& query) const
         return pdal::SpatialReference();
 }
 
-void SQLiteReader::processOptions(const Options& options)
+
+void SQLiteReader::addArgs(ProgramArgs& args)
 {
-    m_schemaFile = options.getValueOrDefault<std::string>(
-        "xml_schema_dump", std::string());
-
-    m_spatialRef =
-        options.getValueOrDefault<pdal::SpatialReference>( "spatialreference");
-    m_query = options.getValueOrThrow<std::string>("query");
-    m_connection = options.getValueOrDefault<std::string>("connection", "");
-    m_modulename = options.getValueOrDefault<std::string>("module", "");
+    args.add("spatialreference", "Spatial reference to apply to points if "
+       "one doesnt exist", m_spatialRef);
+    args.add("query", "SELECT statement that returns point cloud", m_query);
+    args.add("connection", "Database connection string", m_connection);
+    args.add("module", "Spatialite module name", m_modulename);
+    args.add("xml_schema_dump", "File to write point clould schema",
+        m_schemaFile);
 }
 
 
@@ -185,9 +171,9 @@ void SQLiteReader::addDimensions(PointLayoutPtr layout)
 
     if (m_schemaFile.size())
     {
-        std::ostream* out = FileUtils::createFile(m_schemaFile);
+        std::ostream* out = Utils::createFile(m_schemaFile);
         out->write(s.data.c_str(), s.data.size());
-        FileUtils::closeFile(out);
+        Utils::closeFile(out);
     }
 
     XMLSchema schema(s.data);
diff --git a/plugins/sqlite/io/SQLiteReader.hpp b/plugins/sqlite/io/SQLiteReader.hpp
index a5ba9c9..3976e4b 100644
--- a/plugins/sqlite/io/SQLiteReader.hpp
+++ b/plugins/sqlite/io/SQLiteReader.hpp
@@ -55,7 +55,6 @@ public:
     static int32_t destroy(void *);
     std::string getName() const;
 
-    Options getDefaultOptions();
     SpatialReference fetchSpatialReference(std::string const& query) const;
     SQLite& getSession()
         { return *m_session.get(); }
@@ -73,7 +72,7 @@ private:
     bool b_doneQuery;
 
     virtual void initialize();
-    virtual void processOptions(const Options& options);
+    virtual void addArgs(ProgramArgs& args);
     virtual void addDimensions(PointLayoutPtr layout);
     virtual void ready(PointTableRef table);
     point_count_t read(PointViewPtr view, point_count_t count);
diff --git a/plugins/sqlite/io/SQLiteWriter.cpp b/plugins/sqlite/io/SQLiteWriter.cpp
index 23103c4..fba12a7 100644
--- a/plugins/sqlite/io/SQLiteWriter.cpp
+++ b/plugins/sqlite/io/SQLiteWriter.cpp
@@ -38,6 +38,7 @@
 #include <pdal/pdal_internal.hpp>
 #include <pdal/util/FileUtils.hpp>
 #include <pdal/pdal_macros.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include <iomanip>
 #include <sstream>
@@ -62,39 +63,33 @@ SQLiteWriter::SQLiteWriter() :
     , m_sdo_pc_is_initialized(false)
     , m_obj_id(0)
     , m_block_id(0)
-    , m_srid(0)
-    , m_num_points(0)
-    , m_orientation(Orientation::PointMajor)
-    , m_is3d(false)
-    , m_doCompression(false)
 {}
 
 
-void SQLiteWriter::processOptions(const Options& options)
+void SQLiteWriter::addArgs(ProgramArgs& args)
 {
-    m_connection =
-        options.getValueOrDefault<std::string>("connection", "");
-    if (!m_connection.size())
-    {
-        m_connection =
-            options.getValueOrDefault<std::string>("filename", "");
-
-        if (!m_connection.size())
-        throw pdal_error("unable to connect to database, "
-            "no connection string was given!");
-    }
-    m_block_table =
-        options.getValueOrThrow<std::string>("block_table_name");
-    m_cloud_table =
-        options.getValueOrThrow<std::string>("cloud_table_name");
-    m_cloud_column =
-        options.getValueOrDefault<std::string>("cloud_column_name", "id");
-    m_modulename =
-        options.getValueOrDefault<std::string>("module", "");
-    m_srid =
-        m_options.getValueOrDefault<uint32_t>("srid", 4326);
-    m_is3d = m_options.getValueOrDefault<bool>("is3d", false);
-    m_doCompression = m_options.getValueOrDefault<bool>("compression", false);
+    DbWriter::doAddArgs(args);
+    args.add("block_table_name", "Block table name",
+        m_block_table).setPositional();
+    args.add("cloud_table_name", "Cloud table name",
+        m_cloud_table).setPositional();
+    args.add("connection", "SQL conneciton string",
+        m_connection).setPositional();
+    args.add("cloud_column_name", "Cloud column name", m_cloud_column, "id");
+    args.add("module", "Module name", m_modulename);
+    args.add("srid", "SRID", m_srid, 4326U);
+    args.add("pcid", "PCID", m_pcId);
+    args.add("is3d", "Whether a Z dimension should be written", m_is3d);
+    args.add("compression", "Whether blocks should be compressed",
+        m_doCompression);
+    args.add("overwrite", "Whether existing data should be overwritten",
+        m_overwrite);
+    args.add("pre_sql", "SQL to be executed before running the translation, "
+        "or the name of a file containing such SQL", m_preSql);
+    args.add("post_sql", "SQL to be executed after running the translation, "
+        "or the name of a file containing such SQL", m_postSql);
+    args.add("clound_boundary_wkt", "Boundary of points to be written",
+        m_cloudBoundary);
 }
 
 
@@ -167,7 +162,7 @@ void SQLiteWriter::writeInit()
                          << bHaveCloudTable
                          <<"'"<< std::endl;
 
-    if (m_options.getValueOrDefault<bool>("overwrite", true))
+    if (m_overwrite)
     {
         if (bHaveBlockTable)
         {
@@ -181,17 +176,15 @@ void SQLiteWriter::writeInit()
         }
     }
 
-    std::string pre_sql =
-        m_options.getValueOrDefault<std::string>("pre_sql", "");
-    if (pre_sql.size())
+    if (m_preSql.size())
     {
-        std::string sql = FileUtils::readFileIntoString(pre_sql);
+        std::string sql = FileUtils::readFileIntoString(m_preSql);
         if (!sql.size())
         {
             // if there was no file to read because the data in pre_sql was
             // actually the sql code the user wanted to run instead of the
             // filename to open, we'll use that instead.
-            sql = pre_sql;
+            sql = m_preSql;
         }
         m_session->execute(sql);
     }
@@ -211,7 +204,6 @@ void SQLiteWriter::writeInit()
 }
 
 
-
 void SQLiteWriter::CreateBlockTable()
 {
     std::ostringstream oss;
@@ -390,17 +382,15 @@ void SQLiteWriter::done(PointTableRef table)
         CreateIndexes(m_block_table, "extent", m_is3d);
     }
 
-    std::string post_sql =
-        m_options.getValueOrDefault<std::string>("post_sql", "");
-    if (post_sql.size())
+    if (m_postSql.size())
     {
-        std::string sql = FileUtils::readFileIntoString(post_sql);
+        std::string sql = FileUtils::readFileIntoString(m_postSql);
         if (!sql.size())
         {
-            // if there was no file to read because the data in post_sql was
+            // if there was no file to read because the data in m_postSql was
             // actually the sql code the user wanted to run instead of the
             // filename to open, we'll use that instead.
-            sql = post_sql;
+            sql = m_postSql;
         }
         m_session->execute(sql);
     }
@@ -416,20 +406,8 @@ void SQLiteWriter::CreateCloud()
 
     ostringstream oss;
 
-    bool pack =
-        m_options.getValueOrDefault<bool>("pack_ignored_fields", true);
-
-    string bounds = m_options.getValueOrDefault<string>(
-        "cloud_boundary_wkt", "");
-    if (bounds.size())
-    {
-        log()->get(LogLevel::Debug2) << "have cloud_boundary_wkt of size " <<
-            bounds.size() << std::endl;
-        bounds = loadGeometryWKT(bounds);
-    }
-
-    string cloud_column =
-        m_options.getValueOrDefault<string>("cloud_column", "id");
+    if (m_cloudBoundary.size())
+        m_cloudBoundary = loadGeometryWKT(m_cloudBoundary);
 
     oss << "INSERT INTO " << Utils::tolower(m_cloud_table) << "(" <<
         " block_table, schema) VALUES ('" <<
@@ -457,22 +435,13 @@ void SQLiteWriter::CreateCloud()
     m_obj_id = id;
 
     log()->get(LogLevel::Debug) << "Point cloud id was " << id << std::endl;
-    try
-    {
-        Option& pc_id = m_options.getOptionByRef("pc_id");
-        pc_id.setValue(id);
-    }
-    catch (Option::not_found)
-    {
-        Option pc_id("pc_id", id, "Point Cloud Id");
-        m_options.add(pc_id);
-    }
-    if (bounds.size())
+    m_pcId = id;
+    if (m_cloudBoundary.size())
     {
         records rs;
         row r;
 
-        r.push_back(column(bounds));
+        r.push_back(column(m_cloudBoundary));
         r.push_back(column(m_srid));
         r.push_back(column(id));
         rs.push_back(r);
diff --git a/plugins/sqlite/io/SQLiteWriter.hpp b/plugins/sqlite/io/SQLiteWriter.hpp
index 45d31d2..aee76a2 100644
--- a/plugins/sqlite/io/SQLiteWriter.hpp
+++ b/plugins/sqlite/io/SQLiteWriter.hpp
@@ -56,8 +56,8 @@ private:
     SQLiteWriter& operator=(const SQLiteWriter&); // not implemented
     SQLiteWriter(const SQLiteWriter&); // not implemented
 
+    virtual void addArgs(ProgramArgs& args);
     virtual void initialize();
-    virtual void processOptions(const Options& options);
     virtual void write(const PointViewPtr view);
     virtual void done(PointTableRef table);
 
@@ -85,16 +85,18 @@ private:
 	int32_t m_obj_id;
 	int32_t m_block_id;
 	uint32_t m_srid;
-	int64_t m_num_points;
-    Orientation::Enum m_orientation;
-    bool m_pack;
+    std::string m_preSql;
+    std::string m_postSql;
     std::string m_block_table;
     std::string m_cloud_table;
     std::string m_cloud_column;
     std::string m_connection;
     std::string m_modulename;
+    std::string m_cloudBoundary;
+    long m_pcId;
     bool m_is3d;
     bool m_doCompression;;
+    bool m_overwrite;
     PatchPtr m_patch;
 };
 
diff --git a/plugins/sqlite/test/SQLiteTest.cpp b/plugins/sqlite/test/SQLiteTest.cpp
index 97060d8..09a392a 100644
--- a/plugins/sqlite/test/SQLiteTest.cpp
+++ b/plugins/sqlite/test/SQLiteTest.cpp
@@ -47,100 +47,94 @@
 
 using namespace pdal;
 
-Options getSQLITEOptions()
+std::string tempFilename(Support::temppath(
+    "temp-SqliteWriterTest_test_simple_las.sqlite"));
+
+Options getWriterOptions()
 {
     Options options;
 
-    options.add("capacity", 15U, "capacity");
-    options.add("overwrite", true, "overwrite");
-    options.add("connection",
-        Support::temppath("temp-SqliteWriterTest_test_simple_las.sqlite"),
-        "connection");
-    options.add("block_table_name", "PDAL_TEST_BLOCKS", "block_table_name");
+    options.add("overwrite", true);
+    options.add("connection", tempFilename);
+    options.add("block_table_name", "PDAL_TEST_BLOCKS");
     options.add("cloud_table_name", "PDAL_TEST_BASE");
     options.add("is3d", false);
     options.add("srid", 4326);
-    options.add("out_srs", "EPSG:4269");
-    options.add("filename", Support::datapath("las/1.2-with-color.las"));
+    options.add("cloud_column_name", "CLOUD");
+
+    return options;
+}
+
+Options getReaderOptions()
+{
+    Options options;
+
+    options.add("spatialreference", "EPSG:2926");
+    options.add("connection", tempFilename);
     options.add("query", "SELECT b.schema, l.cloud, l.block_id, "
         "l.num_points, l.bbox, l.extent, l.points, b.cloud "
         "FROM PDAL_TEST_BLOCKS l, PDAL_TEST_BASE b "
         "WHERE l.cloud = b.cloud and l.cloud in (1) "
-        "order by l.cloud", "");
-    options.add("spatialreference", "EPSG:2926");
-    options.add("pack_ignored_fields", true);
-    options.add("cloud_column_name", "CLOUD");
-//     options.add("xml_schema_dump", "sqlite-xml-schema-dump.xml");
-    options.add("type", "sqlite");
+        "order by l.cloud");
 
     return options;
 }
 
 void testReadWrite(bool compression, bool scaling)
 {
-    // remove file from earlier run, if needed
-    std::string tempFilename =
-        getSQLITEOptions().getValueOrThrow<std::string>("connection");
-
     FileUtils::deleteFile(tempFilename);
 
-    Options sqliteOptions = getSQLITEOptions();
+    Options writerOptions = getWriterOptions();
     if (scaling)
     {
-        sqliteOptions.add("scale_x", 0.01);
-        sqliteOptions.add("scale_y", 0.01);
+        writerOptions.add("scale_x", 0.01);
+        writerOptions.add("scale_y", 0.01);
     }
-    sqliteOptions.add("compression", compression, "");
+    writerOptions.add("compression", compression);
 
+    StageFactory f;
     {
-        // remove file from earlier run, if needed
-        std::string temp_filename =
-        sqliteOptions.getValueOrThrow<std::string>("connection");
-
-        Options lasReadOpts;
-        lasReadOpts.add("filename", Support::datapath("las/1.2-with-color.las"));
-        lasReadOpts.add("count", 11);
+    Options lasReadOpts;
+    lasReadOpts.add("filename", Support::datapath("las/1.2-with-color.las"));
+    lasReadOpts.add("count", 11);
 
-        LasReader reader;
-        reader.setOptions(lasReadOpts);
+    LasReader reader;
+    reader.setOptions(lasReadOpts);
 
-        StageFactory f;
-        Stage* sqliteWriter(f.createStage("writers.sqlite"));
-        sqliteWriter->setOptions(sqliteOptions);
-        sqliteWriter->setInput(reader);
+    Stage* sqliteWriter(f.createStage("writers.sqlite"));
+    sqliteWriter->setOptions(writerOptions);
+    sqliteWriter->setInput(reader);
 
-        PointTable table;
-        sqliteWriter->prepare(table);
-        sqliteWriter->execute(table);
+    PointTable table;
+    sqliteWriter->prepare(table);
+    sqliteWriter->execute(table);
     }
 
     {
-        // Done - now read back.
-        StageFactory f;
-        Stage* sqliteReader(f.createStage("readers.sqlite"));
-        sqliteReader->setOptions(sqliteOptions);
+    Stage* sqliteReader(f.createStage("readers.sqlite"));
+    sqliteReader->setOptions(getReaderOptions());
 
-        PointTable table2;
-        sqliteReader->prepare(table2);
-        PointViewSet viewSet = sqliteReader->execute(table2);
-        EXPECT_EQ(viewSet.size(), 1U);
-        PointViewPtr view = *viewSet.begin();
+    PointTable table2;
+    sqliteReader->prepare(table2);
+    PointViewSet viewSet = sqliteReader->execute(table2);
+    EXPECT_EQ(viewSet.size(), 1U);
+    PointViewPtr view = *viewSet.begin();
 
-        using namespace Dimension;
+    using namespace Dimension;
 
-        uint16_t reds[] = {68, 54, 112, 178, 134, 99, 90, 106, 106, 100, 64};
-        for (PointId idx = 0; idx < 11; idx++)
-        {
-            uint16_t r = view->getFieldAs<uint16_t>(Id::Red, idx);
-            EXPECT_EQ(r, reds[idx]);
-        }
-        int32_t x = view->getFieldAs<int32_t>(Id::X, 10);
-        EXPECT_EQ(x, 636038);
-        double xd = view->getFieldAs<double>(Id::X, 10);
-        EXPECT_FLOAT_EQ(xd, 636037.53);
+    uint16_t reds[] = {68, 54, 112, 178, 134, 99, 90, 106, 106, 100, 64};
+    for (PointId idx = 0; idx < 11; idx++)
+    {
+        uint16_t r = view->getFieldAs<uint16_t>(Id::Red, idx);
+        EXPECT_EQ(r, reds[idx]);
+    }
+    int32_t x = view->getFieldAs<int32_t>(Id::X, 10);
+    EXPECT_EQ(x, 636038);
+    double xd = view->getFieldAs<double>(Id::X, 10);
+    EXPECT_FLOAT_EQ(xd, 636037.53);
     }
 
-    FileUtils::deleteFile(tempFilename);
+//    FileUtils::deleteFile(tempFilename);
 }
 
 
@@ -177,14 +171,14 @@ TEST(SQLiteTest, Issue895)
 
     FileUtils::deleteFile(filename);
 
-    bool ok;
     const char* sql;
 
     // make a DB, put a table in it
     {
         SQLite db(filename, LogPtr(log));
         db.connect(true);
-        sql = "CREATE TABLE MyTable (id INTEGER PRIMARY KEY AUTOINCREMENT, data)";
+        sql = "CREATE TABLE MyTable (id INTEGER PRIMARY KEY AUTOINCREMENT, "
+            "data)";
         db.execute(sql);
     }
 
@@ -209,8 +203,7 @@ TEST(SQLiteTest, Issue895)
             EXPECT_TRUE(foundMine || foundTheirs);
         }
 
-        ok = db.next();
-        EXPECT_TRUE(ok);
+        EXPECT_TRUE(db.next());
 
         {
             const row* r = db.get();
@@ -221,8 +214,7 @@ TEST(SQLiteTest, Issue895)
             EXPECT_TRUE(foundMine && foundTheirs);
         }
 
-        ok = db.next();
-        EXPECT_FALSE(ok);
+        EXPECT_FALSE(db.next());
     }
 
     // open the DB, ask if the tables exist
@@ -230,11 +222,9 @@ TEST(SQLiteTest, Issue895)
         SQLite db(filename, LogPtr(log));
         db.connect(false);
 
-        ok = db.doesTableExist("MyTable");
-        EXPECT_TRUE(ok);
+        EXPECT_TRUE(db.doesTableExist("MyTable"));
 
-        ok = db.doesTableExist("sqlite_sequence");
-        EXPECT_TRUE(ok);
+        EXPECT_TRUE(db.doesTableExist("sqlite_sequence"));
     }
 }
 
@@ -258,7 +248,7 @@ TEST(SQLiteTest, testSpatialite)
 
     EXPECT_TRUE(db.haveSpatialite());
 
-    FileUtils::deleteFile(filename);
+//    FileUtils::deleteFile(filename);
 }
 
 
@@ -281,5 +271,5 @@ TEST(SQLiteTest, testVersionInfo)
     const std::string q = db.getSpatialiteVersion();
     EXPECT_EQ(q[0], '4'); // 4.2.0 as of this commit
 
-    FileUtils::deleteFile(filename);
+//    FileUtils::deleteFile(filename);
 }
diff --git a/python/VERSION.txt b/python/VERSION.txt
index 1cc5f65..f0bb29e 100644
--- a/python/VERSION.txt
+++ b/python/VERSION.txt
@@ -1 +1 @@
-1.1.0
\ No newline at end of file
+1.3.0
diff --git a/python/pdal/Pipeline.cpp b/python/pdal/Pipeline.cpp
index 59cb59e..b18e6ee 100644
--- a/python/pdal/Pipeline.cpp
+++ b/python/pdal/Pipeline.cpp
@@ -9,8 +9,8 @@
 namespace libpdalpython
 {
 
-Pipeline::Pipeline(std::string const& xml)
-    : m_xml(xml)
+Pipeline::Pipeline(std::string const& json)
+    : m_json(json)
     , m_schema("")
     , m_manager(-1)
 {
@@ -26,7 +26,7 @@ Pipeline::Pipeline(std::string const& xml)
 void Pipeline::execute()
 {
     std::stringstream strm;
-    strm << m_xml;
+    strm << m_json;
     m_manager.readPipeline(strm);
     m_manager.execute();
 #ifdef PDAL_HAVE_LIBXML2
@@ -37,7 +37,7 @@ void Pipeline::execute()
     strm.str("");
     pdal::PipelineWriter::writePipeline(m_manager.getStage(), strm);
 
-    m_xml = strm.str();
+    m_json = strm.str();
 
 }
 
diff --git a/python/pdal/Pipeline.hpp b/python/pdal/Pipeline.hpp
index c5f057c..f832ad1 100644
--- a/python/pdal/Pipeline.hpp
+++ b/python/pdal/Pipeline.hpp
@@ -25,12 +25,12 @@ public:
     ~Pipeline(){};
 
     void execute();
-    inline const char* getXML() const { return m_xml.c_str(); }
+    inline const char* getJSON() const { return m_json.c_str(); }
     inline const char* getSchema() const { return m_schema.c_str(); }
     std::vector<PArray> getArrays() const;
 
 private:
-    std::string m_xml;
+    std::string m_json;
     std::string m_schema;
     pdal::PipelineManager m_manager; // no progress reporting
 
diff --git a/python/pdal/__init__.py b/python/pdal/__init__.py
index 1ab67ec..29739b3 100644
--- a/python/pdal/__init__.py
+++ b/python/pdal/__init__.py
@@ -1 +1 @@
-__version__='1.1.0'
+__version__='1.3.0'
diff --git a/python/pdal/libpdalpython.pyx b/python/pdal/libpdalpython.pyx
index 7f132f2..d049bee 100644
--- a/python/pdal/libpdalpython.pyx
+++ b/python/pdal/libpdalpython.pyx
@@ -17,25 +17,25 @@ cdef extern from "Pipeline.hpp" namespace "libpdalpython":
     cdef cppclass Pipeline:
         Pipeline(const char* ) except +
         void execute() except +
-        const char* getXML()
+        const char* getJSON()
         vector[Array*] getArrays() except +
 
 cdef class PyPipeline:
     cdef Pipeline *thisptr      # hold a c++ instance which we're wrapping
-    def __cinit__(self, unicode xml):
+    def __cinit__(self, unicode json):
         cdef char* x
         if PY_MAJOR_VERSION >= 3:
-            py_byte_string = xml.encode('UTF-8')
+            py_byte_string = json.encode('UTF-8')
             x= py_byte_string
             self.thisptr = new Pipeline(x)
         else:
-            self.thisptr = new Pipeline(xml)
+            self.thisptr = new Pipeline(json)
     def __dealloc__(self):
         del self.thisptr
 
-    property xml:
+    property json:
         def __get__(self):
-            return self.thisptr.getXML().decode('UTF-8')
+            return self.thisptr.getJSON().decode('UTF-8')
 
     def arrays(self):
         v = self.thisptr.getArrays()
diff --git a/python/setup.py b/python/setup.py
index 803caec..a74b90e 100644
--- a/python/setup.py
+++ b/python/setup.py
@@ -110,6 +110,24 @@ from setuptools.extension import Extension as DistutilsExtension
 
 if pdal_config and "clean" not in sys.argv:
     # Collect other options from PDAL
+    try:
+
+        # Running against different major versions is going to fail.
+        # Minor versions might too, depending on numpy.
+        for item in get_pdal_config('--python-version').split():
+            if item:
+                # 2.7.4 or 3.5.2
+                built_version = item.split('.')
+                built_major = int(built_version[0])
+                running_major = int(sys.version_info[0])
+                if built_major != running_major:
+                    message = "Version mismatch. PDAL Python support was compiled against version %d.x but setup is running version is %d.x. "
+                    raise Exception(message % (built_major, running_major))
+
+    # older versions of pdal-config do not include --python-version switch
+    except ValueError:
+        pass
+
     for item in get_pdal_config('--includes').split():
         if item.startswith("-I"):
             include_dirs.extend(item[2:].split(":"))
diff --git a/python/test/test_libpdal.py b/python/test/test_libpdal.py
index 27d047b..ce3c9bc 100644
--- a/python/test/test_libpdal.py
+++ b/python/test/test_libpdal.py
@@ -3,42 +3,47 @@ from pdal import libpdalpython
 import unittest
 import os
 
+DATADIRECTORY = os.environ.get('PDAL_TEST_DIR')
+if not DATADIRECTORY:
+    DATADIRECTORY = "../test"
+
 class TestPDALArray(unittest.TestCase):
-  DATADIRECTORY = "../test"
 
-  def fetch_xml(self, filename):
+  DATADIRECTORY = os.environ.get('PDAL_TEST_DIR')
+  if not DATADIRECTORY:
+      DATADIRECTORY = "../test"
+
+  def fetch_json(self, filename):
     import os
-    DATADIRECTORY = os.environ.get('PDAL_TEST_DIR')
-    if not DATADIRECTORY:
-        DATADIRECTORY = self.DATADIRECTORY
     fn = DATADIRECTORY + os.path.sep +  filename
     output = ''
     with open(fn, 'rb') as f:
         output = f.read().decode('UTF-8')
     return output
 
-  @unittest.skipUnless(os.path.exists(os.path.join(DATADIRECTORY, '/data/pipeline/pipeline_read.xml')),
-                       "missing test data")
+  @unittest.skipUnless(os.path.exists(os.path.join(DATADIRECTORY, 'data/pipeline/pipeline_read.json')),
+                       os.path.join(DATADIRECTORY, 'data/pipeline/pipeline_read.json'))
   def test_construction(self):
     """Can we construct a PDAL pipeline"""
-    xml = self.fetch_xml('/data/pipeline/pipeline_read.xml')
-    r = libpdalpython.PyPipeline(xml)
+    json = self.fetch_json('/data/pipeline/pipeline_read.json')
+    r = libpdalpython.PyPipeline(json)
 
-  @unittest.skipUnless(os.path.exists(os.path.join(DATADIRECTORY, '/data/pipeline/pipeline_read.xml')),
+  @unittest.skipUnless(os.path.exists(os.path.join(DATADIRECTORY, 'data/pipeline/pipeline_read.json')),
                        "missing test data")
   def test_execution(self):
     """Can we execute a PDAL pipeline"""
-    xml = self.fetch_xml('/data/pipeline/pipeline_read.xml')
-    r = libpdalpython.PyPipeline(xml)
+    x = self.fetch_json('/data/pipeline/pipeline_read.json')
+    r = libpdalpython.PyPipeline(x)
     r.execute()
-    self.assertGreater(len(r.xml), 1000)
+    import sys
+    self.assertGreater(len(r.json), 200)
 
-  @unittest.skipUnless(os.path.exists(os.path.join(DATADIRECTORY, '/data/pipeline/pipeline_read.xml')),
+  @unittest.skipUnless(os.path.exists(os.path.join(DATADIRECTORY, 'data/pipeline/pipeline_read.json')),
                        "missing test data")
   def test_array(self):
     """Can we fetch PDAL data as a numpy array"""
-    xml = self.fetch_xml('/data/pipeline/pipeline_read.xml')
-    r = libpdalpython.PyPipeline(xml)
+    json = self.fetch_json('/data/pipeline/pipeline_read.json')
+    r = libpdalpython.PyPipeline(json)
     r.execute()
     arrays = r.arrays()
     self.assertEqual(len(arrays), 1)
@@ -47,12 +52,12 @@ class TestPDALArray(unittest.TestCase):
     self.assertAlmostEqual(a[0][0], 637012.24, 7)
     self.assertAlmostEqual(a[1064][2], 423.92, 7)
 
-  @unittest.skipUnless(os.path.exists(os.path.join(DATADIRECTORY, '/data/filters/chip.xml')),
+  @unittest.skipUnless(os.path.exists(os.path.join(DATADIRECTORY, 'data/filters/chip.json')),
                        "missing test data")
   def test_merged_arrays(self):
     """Can we fetch merged PDAL data """
-    xml = self.fetch_xml('/data/filters/chip.xml')
-    r = libpdalpython.PyPipeline(xml)
+    json = self.fetch_json('/data/filters/chip.json')
+    r = libpdalpython.PyPipeline(json)
     r.execute()
     arrays = r.arrays()
     self.assertEqual(len(arrays), 43)
diff --git a/scripts/ci/add_deploy_key.sh b/scripts/ci/add_deploy_key.sh
new file mode 100755
index 0000000..0a95cb8
--- /dev/null
+++ b/scripts/ci/add_deploy_key.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+if [ -n "$encrypted_6a5172b96922_key" ]; then
+    openssl aes-256-cbc -K $encrypted_6a5172b96922_key -iv $encrypted_6a5172b96922_iv -in scripts/ci/pdaldocs-private.key.enc -out scripts/ci/pdaldocs-private.key -d
+    cp scripts/ci/pdaldocs-private.key ~/.ssh/id_rsa
+    chmod 600 ~/.ssh/id_rsa
+    echo -e "Host *\n\tStrictHostKeyChecking no\n" > ~/.ssh/config
+fi;
+
+
diff --git a/scripts/ci/before_install.sh b/scripts/ci/before_install.sh
index dbec11a..fbfd20d 100755
--- a/scripts/ci/before_install.sh
+++ b/scripts/ci/before_install.sh
@@ -1,5 +1,6 @@
 #!/bin/bash -e
 # Installs requirements for PDAL
 source ./scripts/ci/common.sh
+source ./scripts/ci/docker.sh
+source ./scripts/ci/add_deploy_key.sh
 
-docker pull pdal/dependencies
diff --git a/scripts/ci/build_docs.sh b/scripts/ci/build_docs.sh
new file mode 100755
index 0000000..b57a364
--- /dev/null
+++ b/scripts/ci/build_docs.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+echo "building docs for $TRAVIS_BUILD_DIR/docs"
+docker run -v $TRAVIS_BUILD_DIR:/data -w /data/doc pdal/docs make doxygen
+docker run -v $TRAVIS_BUILD_DIR:/data -w /data/doc pdal/docs make html
+docker run -v $TRAVIS_BUILD_DIR:/data -w /data/doc pdal/docs make latexpdf
+
+
diff --git a/scripts/ci/deploy_website.sh b/scripts/ci/deploy_website.sh
new file mode 100755
index 0000000..90daefb
--- /dev/null
+++ b/scripts/ci/deploy_website.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+builddir=$1
+destdir=$2
+DATE=$(date +'%y.%m.%d %H:%M:%S')
+
+git clone git at github.com:PDAL/pdal.github.io.git $destdir/pdaldocs
+cd $destdir/pdaldocs
+git checkout master
+
+
+cd $builddir/html
+cp -rf * $destdir/pdaldocs
+
+cd $builddir/latex/
+cp PDAL.pdf $destdir/pdaldocs
+
+cd $destdir/pdaldocs
+git config user.email "pdal at hobu.net"
+git config user.name "PDAL Travis docsbot"
+
+git add -A
+git commit -m "update with results of commit https://github.com/PDAL/PDAL/commit/$TRAVIS_COMMIT for ${DATE}"
+git push origin master
+
diff --git a/scripts/ci/docker.sh b/scripts/ci/docker.sh
new file mode 100755
index 0000000..f9055ce
--- /dev/null
+++ b/scripts/ci/docker.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# pdal/doc image has all of the Sphinx
+# dependencies need to build Entwine's docs
+
+docker pull pdal/dependencies
+docker pull pdal/docs
+
diff --git a/scripts/ci/pdaldocs-private.key.enc b/scripts/ci/pdaldocs-private.key.enc
new file mode 100644
index 0000000..c504fe1
Binary files /dev/null and b/scripts/ci/pdaldocs-private.key.enc differ
diff --git a/scripts/docker/Dockerfile b/scripts/docker/Dockerfile
index 2461d66..eb05607 100644
--- a/scripts/docker/Dockerfile
+++ b/scripts/docker/Dockerfile
@@ -6,47 +6,45 @@ ENV CC clang
 ENV CXX clang++
 
 RUN apt-get update && apt-get install -y --fix-missing --no-install-recommends \
-        cython \
-        python-pip \
         libhpdf-dev \
+    libsqlite3-mod-spatialite \
     && rm -rf /var/lib/apt/lists/*
 
-
 RUN git clone --depth=1 https://github.com/PDAL/PDAL \
-	&& cd PDAL \
-	&& git checkout master \
-	&& mkdir build \
-	&& cd build \
-	&& cmake \
-		-DBUILD_PLUGIN_CPD=OFF \
-		-DBUILD_PLUGIN_GREYHOUND=ON \
-		-DBUILD_PLUGIN_HEXBIN=ON \
-		-DBUILD_PLUGIN_ICEBRIDGE=ON \
-		-DBUILD_PLUGIN_MRSID=ON \
-		-DBUILD_PLUGIN_NITF=ON \
-		-DBUILD_PLUGIN_OCI=OFF \
-		-DBUILD_PLUGIN_P2G=ON \
-		-DBUILD_PLUGIN_PCL=ON \
-		-DBUILD_PLUGIN_PGPOINTCLOUD=ON \
-		-DBUILD_PLUGIN_SQLITE=ON \
-		-DBUILD_PLUGIN_RIVLIB=OFF \
-		-DBUILD_PLUGIN_PYTHON=ON \
-		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DENABLE_CTEST=OFF \
-		-DWITH_APPS=ON \
-		-DWITH_LAZPERF=ON \
-		-DWITH_GEOTIFF=ON \
-		-DWITH_LASZIP=ON \
-		-DWITH_TESTS=ON \
-		-DCMAKE_BUILD_TYPE=Release \
-		.. \
-	&& make -j4 \
-	&& make install \
-    && rm -rf PDAL
+    && cd PDAL \
+    && git checkout master \
+    && mkdir build \
+    && cd build \
+    && cmake \
+        -DBUILD_PLUGIN_CPD=OFF \
+        -DBUILD_PLUGIN_GREYHOUND=ON \
+        -DBUILD_PLUGIN_HEXBIN=ON \
+        -DBUILD_PLUGIN_ICEBRIDGE=ON \
+        -DBUILD_PLUGIN_MRSID=ON \
+        -DBUILD_PLUGIN_NITF=ON \
+        -DBUILD_PLUGIN_OCI=OFF \
+        -DBUILD_PLUGIN_P2G=ON \
+        -DBUILD_PLUGIN_PCL=ON \
+        -DBUILD_PLUGIN_PGPOINTCLOUD=ON \
+        -DBUILD_PLUGIN_SQLITE=ON \
+        -DBUILD_PLUGIN_RIVLIB=OFF \
+        -DBUILD_PLUGIN_PYTHON=ON \
+        -DCMAKE_INSTALL_PREFIX=/usr \
+        -DENABLE_CTEST=OFF \
+        -DWITH_APPS=ON \
+        -DWITH_LAZPERF=ON \
+        -DWITH_GEOTIFF=ON \
+        -DWITH_LASZIP=ON \
+        -DWITH_TESTS=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        .. \
+    && make -j4 \
+    && make install \
+    && rm -rf /PDAL
 
-#RUN pip install packaging \
-#    && pip install PDAL
 
+RUN pip install packaging \
+    && pip install PDAL
 
 RUN git clone https://github.com/PDAL/PRC.git \
     && cd PRC \
@@ -58,7 +56,104 @@ RUN git clone https://github.com/PDAL/PRC.git \
     && cmake \
         -DCMAKE_BUILD_TYPE=Release \
         -DPDAL_DIR=/usr/lib/pdal/cmake \
+        -DCMAKE_BUILD_PREFIX=/usr \
         .. \
     && make \
     && make install \
-    && rm -rf PRC
+    && rm -rf /PRC
+
+# Remove all our dev junk and then we'll put back only
+# runtime stuff
+RUN apt-get purge -y \
+    build-essential \
+    ca-certificates \
+    cmake \
+    curl \
+    gfortran \
+    git \
+    libarmadillo-dev \
+    libarpack2-dev \
+    libflann-dev \
+    libhdf5-serial-dev \
+    liblapack-dev \
+    libtiff5-dev \
+    openssh-client \
+    python-dev \
+    python-numpy \
+    python-software-properties \
+    software-properties-common \
+    wget \
+    automake \
+    libtool \
+    libspatialite-dev \
+    libhdf5-dev \
+    subversion \
+    libjsoncpp-dev \
+    libboost-filesystem1.58-dev \
+    libboost-iostreams1.58-dev \
+    libboost-program-options1.58-dev \
+    libboost-system1.58-dev \
+    libboost-thread1.58-dev \
+    subversion \
+    clang \
+    libproj-dev \
+    libc6-dev \
+    libnetcdf-dev \
+    libjasper-dev \
+    libpng-dev \
+    libjpeg-dev \
+    libgif-dev \
+    libwebp-dev \
+    libhdf4-alt-dev \
+    libhdf5-dev \
+    libpq-dev \
+    libxerces-c-dev \
+    unixodbc-dev \
+    libsqlite3-dev \
+    libgeos-dev \
+    libmysqlclient-dev \
+    libltdl-dev \
+    libcurl4-openssl-dev \
+    libspatialite-dev \
+    libdap-dev\
+    ninja \
+    cython \
+    python-pip
+
+RUN apt-get autoremove -y
+
+RUN apt-get update && apt-get install -y \
+    libexpat1 \
+    libgomp1 \
+    libxml2 \
+    libgeos-c1v5 \
+    libjsoncpp1 \
+    libcurl3 \
+    libarmadillo6 \
+    libwebp5 \
+    libodbc1 \
+    odbcinst1debian2 \
+    libxerces-c3.1 \
+    libjasper1 \
+    netcdf-bin \
+    libhdf4-0-alt \
+    libgif7 \
+    libpq5 \
+    libdapclient6v5 \
+    libspatialite7 \
+    libsqlite3-mod-spatialite \
+    spatialite-bin \
+    libmysqlclient20 \
+    libtiff5 \
+    libboost-system1.58.0 \
+    libboost-filesystem1.58.0 \
+    libboost-thread1.58.0 \
+    libboost-program-options1.58.0 \
+    libboost-iostreams1.58.0 \
+    libboost-date-time1.58.0 \
+    libboost-serialization1.58.0 \
+    libboost-chrono1.58.0 \
+    libboost-atomic1.58.0 \
+    libboost-regex1.58.0 \
+    libgdal1i \
+    libflann1.8
diff --git a/scripts/docker/Dockerfile.xenial b/scripts/docker/Dockerfile.xenial
new file mode 100644
index 0000000..84b782d
--- /dev/null
+++ b/scripts/docker/Dockerfile.xenial
@@ -0,0 +1,63 @@
+FROM pdal/dependencies:xenial
+MAINTAINER Howard Butler <howard at hobu.co>
+#ARG branch=master
+
+ENV CC clang
+ENV CXX clang++
+
+RUN apt-get update && apt-get install -y --fix-missing --no-install-recommends \
+        cython \
+        python-pip \
+        libhpdf-dev \
+    && rm -rf /var/lib/apt/lists/*
+
+RUN git clone --depth=1 https://github.com/PDAL/PDAL \
+    && cd PDAL \
+    && git checkout master \
+    && mkdir build \
+    && cd build \
+    && cmake \
+        -DBUILD_PLUGIN_CPD=OFF \
+        -DBUILD_PLUGIN_GREYHOUND=ON \
+        -DBUILD_PLUGIN_HEXBIN=ON \
+        -DBUILD_PLUGIN_ICEBRIDGE=ON \
+        -DBUILD_PLUGIN_MRSID=ON \
+        -DBUILD_PLUGIN_NITF=ON \
+        -DBUILD_PLUGIN_OCI=OFF \
+        -DBUILD_PLUGIN_P2G=ON \
+        -DBUILD_PLUGIN_PCL=ON \
+        -DBUILD_PLUGIN_PGPOINTCLOUD=ON \
+        -DBUILD_PLUGIN_SQLITE=ON \
+        -DBUILD_PLUGIN_RIVLIB=OFF \
+        -DBUILD_PLUGIN_PYTHON=ON \
+        -DCMAKE_INSTALL_PREFIX=/usr \
+        -DENABLE_CTEST=OFF \
+        -DWITH_APPS=ON \
+        -DWITH_LAZPERF=ON \
+        -DWITH_GEOTIFF=ON \
+        -DWITH_LASZIP=ON \
+        -DWITH_TESTS=ON \
+        -DCMAKE_BUILD_TYPE=Release \
+        .. \
+    && make -j4 \
+    && make install \
+    && rm -rf /PDAL
+
+#RUN pip install packaging \
+#    && pip install PDAL
+
+RUN git clone https://github.com/PDAL/PRC.git \
+    && cd PRC \
+    && git checkout master \
+    && mkdir build \
+    && cd build \
+    && echo `pwd` \
+    && ls .. \
+    && cmake \
+        -DCMAKE_BUILD_TYPE=Release \
+        -DPDAL_DIR=/usr/lib/pdal/cmake \
+        .. \
+    && make \
+    && make install \
+    && rm -rf /PRC
+
diff --git a/scripts/docker/dependencies/Dockerfile b/scripts/docker/dependencies/Dockerfile
index ff445ae..0cf895e 100644
--- a/scripts/docker/dependencies/Dockerfile
+++ b/scripts/docker/dependencies/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:15.04
+FROM ubuntu:16.04
 MAINTAINER Howard Butler <howard at hobu.co>
 
 RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 16126D3A3E5C1192
@@ -27,16 +27,18 @@ RUN apt-get update && apt-get install -y --fix-missing --no-install-recommends \
         automake \
         libtool \
         libspatialite-dev \
+        libsqlite3-mod-spatialite \
         libhdf5-dev \
         subversion \
         libjsoncpp-dev \
-        libboost-filesystem1.55-dev \
-        libboost-iostreams1.55-dev \
-        libboost-program-options1.55-dev \
-        libboost-system1.55-dev \
-        libboost-thread1.55-dev \
+        libboost-filesystem1.58-dev \
+        libboost-iostreams1.58-dev \
+        libboost-program-options1.58-dev \
+        libboost-system1.58-dev \
+        libboost-thread1.58-dev \
         subversion \
         clang \
+        clang-3.6 \
         libproj-dev \
         libc6-dev \
         libnetcdf-dev \
@@ -60,49 +62,51 @@ RUN apt-get update && apt-get install -y --fix-missing --no-install-recommends \
         ninja \
         cython \
         python-pip \
+        libgdal1-dev \
     && rm -rf /var/lib/apt/lists/*
 
 
-RUN git clone --depth=1 https://github.com/OSGeo/gdal.git \
-    &&    cd gdal/gdal \
-    && ./configure --prefix=/usr \
-            --mandir=/usr/share/man \
-            --includedir=/usr/include/gdal \
-            --with-threads \
-            --with-grass=no \
-            --with-hide-internal-symbols=yes \
-            --with-rename-internal-libtiff-symbols=yes \
-            --with-rename-internal-libgeotiff-symbols=yes \
-            --with-libtiff=internal \
-            --with-geotiff=internal \
-            --with-webp \
-            --with-jasper \
-            --with-netcdf \
-            --with-hdf5=/usr/lib/x86_64-linux-gnu/hdf5/serial/ \
-            --with-xerces \
-            --with-geos \
-            --with-sqlite3 \
-            --with-curl \
-            --with-pg \
-            --with-mysql \
-            --with-python \
-            --with-odbc \
-            --with-ogdi \
-            --with-dods-root=/usr \
-            --with-spatialite=/usr \
-            --with-cfitsio=no \
-            --with-ecw=no \
-            --with-mrsid=no \
-            --with-poppler=yes \
-            --with-openjpeg=yes \
-            --with-freexl=yes \
-            --with-libkml=yes \
-            --with-armadillo=yes \
-            --with-liblzma=yes \
-            --with-epsilon=/usr \
-    && make -j 4 \
-    && make install \
-    && rm -rf gdal
+
+#RUN git clone --depth=1 https://github.com/OSGeo/gdal.git \
+#    &&    cd gdal/gdal \
+#    && ./configure --prefix=/usr \
+#            --mandir=/usr/share/man \
+#            --includedir=/usr/include/gdal \
+#            --with-threads \
+#            --with-grass=no \
+#            --with-hide-internal-symbols=yes \
+#            --with-rename-internal-libtiff-symbols=yes \
+#            --with-rename-internal-libgeotiff-symbols=yes \
+#            --with-libtiff=internal \
+#            --with-geotiff=internal \
+#            --with-webp \
+#            --with-jasper \
+#            --with-netcdf \
+#            --with-hdf5=/usr/lib/x86_64-linux-gnu/hdf5/serial/ \
+#            --with-xerces \
+#            --with-geos \
+#            --with-sqlite3 \
+#            --with-curl \
+#            --with-pg \
+#            --with-mysql \
+#            --with-python \
+#            --with-odbc \
+#            --with-ogdi \
+#            --with-dods-root=/usr \
+#            --with-spatialite=/usr \
+#            --with-cfitsio=no \
+#            --with-ecw=no \
+#            --with-mrsid=no \
+#            --with-poppler=yes \
+#            --with-openjpeg=yes \
+#            --with-freexl=yes \
+#            --with-libkml=yes \
+#            --with-armadillo=yes \
+#            --with-liblzma=yes \
+#            --with-epsilon=/usr \
+#    && make -j 4 \
+#    && make install \
+#    && rm -rf /gdal
 
 RUN git clone https://github.com/hobu/nitro \
     && cd nitro \
@@ -113,7 +117,7 @@ RUN git clone https://github.com/hobu/nitro \
         .. \
     && make \
     && make install \
-    && rm -rf nitro
+    && rm -rf /nitro
 
 RUN git clone https://github.com/LASzip/LASzip.git laszip \
     && cd laszip \
@@ -126,7 +130,7 @@ RUN git clone https://github.com/LASzip/LASzip.git laszip \
         .. \
     && make \
     && make install \
-    && rm -rf laszip
+    && rm -rf /laszip
 
 
 RUN git clone https://github.com/hobu/hexer.git \
@@ -139,7 +143,7 @@ RUN git clone https://github.com/hobu/hexer.git \
         .. \
     && make \
     && make install \
-    && rm -rf hexer
+    && rm -rf /hexer
 
 RUN git clone https://github.com/CRREL/points2grid.git \
     && cd points2grid \
@@ -151,9 +155,9 @@ RUN git clone https://github.com/CRREL/points2grid.git \
         .. \
     && make \
     && make install \
-    && rm -rf points2grid
+    && rm -rf /points2grid
 
-RUN git clone  https://github.com/verma/laz-perf.git \
+RUN git clone  https://github.com/hobu/laz-perf.git \
     && cd laz-perf \
     && mkdir build \
     && cd build \
@@ -163,19 +167,21 @@ RUN git clone  https://github.com/verma/laz-perf.git \
         .. \
     && make \
     && make install \
-    && rm -rf laz-perf
+    && rm -rf /laz-perf
 
 RUN wget http://bitbucket.org/eigen/eigen/get/3.2.7.tar.gz \
         && tar -xvf 3.2.7.tar.gz \
         && cp -R eigen-eigen-b30b87236a1b/Eigen/ /usr/include/Eigen/ \
-        && cp -R eigen-eigen-b30b87236a1b/unsupported/ /usr/include/unsupported/
+        && cp -R eigen-eigen-b30b87236a1b/unsupported/ /usr/include/unsupported/ \
+        && rm -rf /3.2.7.tar.gz \
+        && rm -rf /eigen-eigen-b30b87236a1b
 
-RUN git clone https://github.com/chambbj/pcl.git \
+RUN git clone https://github.com/PointCloudLibrary/pcl.git \
         && cd pcl \
-        && git checkout pcl-1.7.2-sans-opengl \
+        && git checkout pcl-1.8.0 \
         && mkdir build \
         && cd build \
-        && cmake \
+        && CC="clang" CXX="clang++" CXXFLAGS="-std=c++11"  cmake \
                 -DBUILD_2d=ON \
                 -DBUILD_CUDA=OFF \
                 -DBUILD_GPU=OFF \
@@ -215,12 +221,20 @@ RUN git clone https://github.com/chambbj/pcl.git \
                 -DWITH_QT=OFF \
                 -DWITH_VTK=OFF \
                 -DWITH_PCAP=OFF \
+                -DWITH_OPENNI=OFF \
+                -DWITH_OPENNI2=OFF \
+                -DWITH_FZAPI=OFF \
+                -DWITH_ENSENSO=OFF \
+                -DWITH_DAVIDSDK=OFF \
+                -DWITH_DSSDK=OFF \
+                -DWITH_RSSDK=OFF \
+                -DWITH_OPENGL=OFF \
                 -DCMAKE_INSTALL_PREFIX=/usr \
                 -DCMAKE_BUILD_TYPE="Release" \
                 .. \
-        && make \
+        && make -j 4\
         && make install \
-        && rm -rf pcl
+        && rm -rf /pcl
 
 
 
@@ -230,7 +244,7 @@ RUN svn co -r 2691 https://svn.osgeo.org/metacrs/geotiff/trunk/libgeotiff/ \
     && ./configure --prefix=/usr \
     && make \
     && make install \
-    && rm -rf libgeotiff
+    && rm -rf /libgeotiff
 
 RUN apt-get update && apt-get install -y --fix-missing --no-install-recommends \
         ninja-build \
@@ -238,21 +252,18 @@ RUN apt-get update && apt-get install -y --fix-missing --no-install-recommends \
         unzip \
     && rm -rf /var/lib/apt/lists/*
 
-RUN mkdir /vdatum \
-    && cd /vdatum \
-    && wget http://download.osgeo.org/proj/vdatum/usa_geoid2012.zip && unzip -j -u usa_geoid2012.zip -d /usr/share/proj \
-    && wget http://download.osgeo.org/proj/vdatum/usa_geoid2009.zip && unzip -j -u usa_geoid2009.zip -d /usr/share/proj \
-    && wget http://download.osgeo.org/proj/vdatum/usa_geoid2003.zip && unzip -j -u usa_geoid2003.zip -d /usr/share/proj \
-    && wget http://download.osgeo.org/proj/vdatum/usa_geoid1999.zip && unzip -j -u usa_geoid1999.zip -d /usr/share/proj \
-    && wget http://download.osgeo.org/proj/vdatum/vertcon/vertconc.gtx && mv vertconc.gtx /usr/share/proj \
-    && wget http://download.osgeo.org/proj/vdatum/vertcon/vertcone.gtx && mv vertcone.gtx /usr/share/proj \
-    && wget http://download.osgeo.org/proj/vdatum/vertcon/vertconw.gtx && mv vertconw.gtx /usr/share/proj \
-    && wget http://download.osgeo.org/proj/vdatum/egm96_15/egm96_15.gtx && mv egm96_15.gtx /usr/share/proj \
-    && wget http://download.osgeo.org/proj/vdatum/egm08_25/egm08_25.gtx && mv egm08_25.gtx /usr/share/proj \
-    && rm -rf /vdatum
-
-RUN rm -rf laszip laz-perf points2grid pcl nitro hexer 3.2.7.tar.gz eigen-eigen-b30b87236a1b gdal libgeotiff
-RUN apt-get clean
+#RUN mkdir /vdatum \
+#    && cd /vdatum \
+#    && wget http://download.osgeo.org/proj/vdatum/usa_geoid2012.zip && unzip -j -u usa_geoid2012.zip -d /usr/share/proj \
+#    && wget http://download.osgeo.org/proj/vdatum/usa_geoid2009.zip && unzip -j -u usa_geoid2009.zip -d /usr/share/proj \
+#    && wget http://download.osgeo.org/proj/vdatum/usa_geoid2003.zip && unzip -j -u usa_geoid2003.zip -d /usr/share/proj \
+#    && wget http://download.osgeo.org/proj/vdatum/usa_geoid1999.zip && unzip -j -u usa_geoid1999.zip -d /usr/share/proj \
+#    && wget http://download.osgeo.org/proj/vdatum/vertcon/vertconc.gtx && mv vertconc.gtx /usr/share/proj \
+#    && wget http://download.osgeo.org/proj/vdatum/vertcon/vertcone.gtx && mv vertcone.gtx /usr/share/proj \
+#    && wget http://download.osgeo.org/proj/vdatum/vertcon/vertconw.gtx && mv vertconw.gtx /usr/share/proj \
+#    && wget http://download.osgeo.org/proj/vdatum/egm96_15/egm96_15.gtx && mv egm96_15.gtx /usr/share/proj \
+#    && wget http://download.osgeo.org/proj/vdatum/egm08_25/egm08_25.gtx && mv egm08_25.gtx /usr/share/proj \
+#    && rm -rf /vdatum
 
 RUN git clone https://github.com/gadomski/fgt.git \
     && cd fgt \
@@ -260,8 +271,7 @@ RUN git clone https://github.com/gadomski/fgt.git \
     && cmake . -DWITH_TESTS=OFF -DBUILD_SHARED_LIBS=ON -DEIGEN3_INCLUDE_DIR=/usr/include -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
     && make \
     && make install \
-    && cd .. \
-    && rm -rf fgt
+    && rm -rf /fgt
 
 RUN git clone https://github.com/gadomski/cpd.git \
     && cd cpd \
@@ -269,5 +279,14 @@ RUN git clone https://github.com/gadomski/cpd.git \
     && cmake . -DWITH_TESTS=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
     && make \
     && make install \
-    && cd .. \
-    && rm -rf cpd
+    && rm -rf /cpd
+
+RUN apt-get update && apt-get install -y --fix-missing --no-install-recommends \
+        libhpdf-dev \
+    python-setuptools \
+    && rm -rf /var/lib/apt/lists/*
+
+
+
+#RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.6 20 && update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.6 20
+
diff --git a/scripts/docker/dependencies/Dockerfile.xenial b/scripts/docker/dependencies/Dockerfile.xenial
new file mode 100644
index 0000000..4e8d8ab
--- /dev/null
+++ b/scripts/docker/dependencies/Dockerfile.xenial
@@ -0,0 +1,273 @@
+FROM ubuntu:16.04
+MAINTAINER Howard Butler <howard at hobu.co>
+
+RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 16126D3A3E5C1192
+RUN apt-get update -qq
+RUN apt-get -qq remove postgis
+
+RUN apt-get update && apt-get install -y --fix-missing --no-install-recommends \
+        build-essential \
+        ca-certificates \
+        cmake \
+        curl \
+        gfortran \
+        git \
+        libarmadillo-dev \
+        libarpack2-dev \
+        libflann-dev \
+        libhdf5-serial-dev \
+        liblapack-dev \
+        libtiff5-dev \
+        openssh-client \
+        python-dev \
+        python-numpy \
+        python-software-properties \
+        software-properties-common \
+        wget \
+        automake \
+        libtool \
+        libspatialite-dev \
+        libhdf5-dev \
+        subversion \
+        libjsoncpp-dev \
+        libboost-filesystem-dev \
+        libboost-iostreams-dev \
+        libboost-program-options-dev \
+        libboost-system-dev \
+        libboost-thread-dev \
+        subversion \
+        clang \
+        libproj-dev \
+        libc6-dev \
+        libnetcdf-dev \
+        libjasper-dev \
+        libpng-dev \
+        libjpeg-dev \
+        libgif-dev \
+        libwebp-dev \
+        libhdf4-alt-dev \
+        libhdf5-dev \
+        libpq-dev \
+        libxerces-c-dev \
+        unixodbc-dev \
+        libsqlite3-dev \
+        libgeos-dev \
+        libmysqlclient-dev \
+        libltdl-dev \
+        libcurl4-openssl-dev \
+        libspatialite-dev \
+        libdap-dev\
+        ninja \
+        cython \
+        python-pip \
+    && rm -rf /var/lib/apt/lists/*
+
+
+RUN git clone --depth=1 https://github.com/OSGeo/gdal.git \
+    &&    cd gdal/gdal \
+    && ./configure --prefix=/usr \
+            --mandir=/usr/share/man \
+            --includedir=/usr/include/gdal \
+            --with-threads \
+            --with-grass=no \
+            --with-hide-internal-symbols=yes \
+            --with-rename-internal-libtiff-symbols=yes \
+            --with-rename-internal-libgeotiff-symbols=yes \
+            --with-libtiff=internal \
+            --with-geotiff=internal \
+            --with-webp \
+            --with-jasper \
+            --with-netcdf \
+            --with-hdf5=/usr/lib/x86_64-linux-gnu/hdf5/serial/ \
+            --with-xerces \
+            --with-geos \
+            --with-sqlite3 \
+            --with-curl \
+            --with-pg \
+            --with-mysql \
+            --with-python \
+            --with-odbc \
+            --with-ogdi \
+            --with-dods-root=/usr \
+            --with-spatialite=/usr \
+            --with-cfitsio=no \
+            --with-ecw=no \
+            --with-mrsid=no \
+            --with-poppler=yes \
+            --with-openjpeg=yes \
+            --with-freexl=yes \
+            --with-libkml=yes \
+            --with-armadillo=yes \
+            --with-liblzma=yes \
+            --with-epsilon=/usr \
+    && make -j 4 \
+    && make install \
+    && rm -rf /gdal
+
+RUN git clone https://github.com/hobu/nitro \
+    && cd nitro \
+    && mkdir build \
+    && cd build \
+    && cmake \
+        -DCMAKE_INSTALL_PREFIX=/usr \
+        .. \
+    && make \
+    && make install \
+    && rm -rf /nitro
+
+RUN git clone https://github.com/LASzip/LASzip.git laszip \
+    && cd laszip \
+    && git checkout e7065cbc5bdbbe0c6e50c9d93d1cd346e9be6778 \
+    && mkdir build \
+    && cd build \
+    && cmake \
+        -DCMAKE_INSTALL_PREFIX=/usr \
+        -DCMAKE_BUILD_TYPE="Release" \
+        .. \
+    && make \
+    && make install \
+    && rm -rf /laszip
+
+
+RUN git clone https://github.com/hobu/hexer.git \
+    && cd hexer \
+    && mkdir build \
+    && cd build \
+    && cmake \
+        -DCMAKE_INSTALL_PREFIX=/usr \
+        -DCMAKE_BUILD_TYPE="Release" \
+        .. \
+    && make \
+    && make install \
+    && rm -rf /hexer
+
+RUN git clone https://github.com/CRREL/points2grid.git \
+    && cd points2grid \
+    && mkdir build \
+    && cd build \
+    && cmake \
+        -DCMAKE_INSTALL_PREFIX=/usr \
+        -DCMAKE_BUILD_TYPE="Release" \
+        .. \
+    && make \
+    && make install \
+    && rm -rf /points2grid
+
+RUN git clone  https://github.com/hobu/laz-perf.git \
+    && cd laz-perf \
+    && mkdir build \
+    && cd build \
+    && cmake \
+        -DCMAKE_INSTALL_PREFIX=/usr \
+        -DCMAKE_BUILD_TYPE="Release" \
+        .. \
+    && make \
+    && make install \
+    && rm -rf /laz-perf
+
+RUN wget http://bitbucket.org/eigen/eigen/get/3.2.7.tar.gz \
+        && tar -xvf 3.2.7.tar.gz \
+        && cp -R eigen-eigen-b30b87236a1b/Eigen/ /usr/include/Eigen/ \
+        && cp -R eigen-eigen-b30b87236a1b/unsupported/ /usr/include/unsupported/ \
+        && rm -rf /3.2.7.tar.gz \
+        && rm -rf /eigen-eigen-b30b87236a1b
+
+RUN git clone https://github.com/chambbj/pcl.git \
+        && cd pcl \
+        && git checkout pcl-1.7.2-sans-opengl \
+        && mkdir build \
+        && cd build \
+        && CXXFLAGS="-std=c++11"  cmake \
+                -DBUILD_2d=ON \
+                -DBUILD_CUDA=OFF \
+                -DBUILD_GPU=OFF \
+                -DBUILD_apps=OFF \
+                -DBUILD_common=ON \
+                -DBUILD_examples=OFF \
+                -DBUILD_features=ON \
+                -DBUILD_filters=ON \
+                -DBUILD_geometry=ON \
+                -DBUILD_global_tests=OFF \
+                -DBUILD_io=ON \
+                -DBUILD_kdtree=ON \
+                -DBUILD_keypoints=ON \
+                -DBUILD_ml=ON \
+                -DBUILD_octree=ON \
+                -DBUILD_outofcore=OFF \
+                -DBUILD_people=OFF \
+                -DBUILD_recognition=OFF \
+                -DBUILD_registration=ON \
+                -DBUILD_sample_concensus=ON \
+                -DBUILD_search=ON \
+                -DBUILD_segmentation=ON \
+                -DBUILD_simulation=OFF \
+                -DBUILD_stereo=OFF \
+                -DBUILD_surface=ON \
+                -DBUILD_surface_on_nurbs=OFF \
+                -DBUILD_tools=OFF \
+                -DBUILD_tracking=OFF \
+                -DBUILD_visualization=OFF \
+                -DWITH_LIBUSB=OFF \
+                -DWITH_OPENNI=OFF \
+                -DWITH_OPENNI2=OFF \
+                -DWITH_FZAPI=OFF \
+                -DWITH_PXCAPI=OFF \
+                -DWITH_PNG=OFF \
+                -DWITH_QHULL=OFF \
+                -DWITH_QT=OFF \
+                -DWITH_VTK=OFF \
+                -DWITH_PCAP=OFF \
+                -DCMAKE_INSTALL_PREFIX=/usr \
+                -DCMAKE_BUILD_TYPE="Release" \
+                .. \
+        && make \
+        && make install \
+        && rm -rf /pcl
+
+
+
+RUN svn co -r 2691 https://svn.osgeo.org/metacrs/geotiff/trunk/libgeotiff/ \
+    && cd libgeotiff \
+    && ./autogen.sh \
+    && ./configure --prefix=/usr \
+    && make \
+    && make install \
+    && rm -rf /libgeotiff
+
+RUN apt-get update && apt-get install -y --fix-missing --no-install-recommends \
+        ninja-build \
+        libgeos++-dev \
+        unzip \
+    && rm -rf /var/lib/apt/lists/*
+
+RUN mkdir /vdatum \
+    && cd /vdatum \
+    && wget http://download.osgeo.org/proj/vdatum/usa_geoid2012.zip && unzip -j -u usa_geoid2012.zip -d /usr/share/proj \
+    && wget http://download.osgeo.org/proj/vdatum/usa_geoid2009.zip && unzip -j -u usa_geoid2009.zip -d /usr/share/proj \
+    && wget http://download.osgeo.org/proj/vdatum/usa_geoid2003.zip && unzip -j -u usa_geoid2003.zip -d /usr/share/proj \
+    && wget http://download.osgeo.org/proj/vdatum/usa_geoid1999.zip && unzip -j -u usa_geoid1999.zip -d /usr/share/proj \
+    && wget http://download.osgeo.org/proj/vdatum/vertcon/vertconc.gtx && mv vertconc.gtx /usr/share/proj \
+    && wget http://download.osgeo.org/proj/vdatum/vertcon/vertcone.gtx && mv vertcone.gtx /usr/share/proj \
+    && wget http://download.osgeo.org/proj/vdatum/vertcon/vertconw.gtx && mv vertconw.gtx /usr/share/proj \
+    && wget http://download.osgeo.org/proj/vdatum/egm96_15/egm96_15.gtx && mv egm96_15.gtx /usr/share/proj \
+    && wget http://download.osgeo.org/proj/vdatum/egm08_25/egm08_25.gtx && mv egm08_25.gtx /usr/share/proj \
+    && rm -rf /vdatum
+
+RUN git clone https://github.com/gadomski/fgt.git \
+    && cd fgt \
+    && git checkout v0.4.4 \
+    && cmake . -DWITH_TESTS=OFF -DBUILD_SHARED_LIBS=ON -DEIGEN3_INCLUDE_DIR=/usr/include -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
+    && make \
+    && make install \
+    && rm -rf /fgt
+
+RUN git clone https://github.com/gadomski/cpd.git \
+    && cd cpd \
+    && git checkout v0.3.2 \
+    && cmake . -DWITH_TESTS=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
+    && make \
+    && make install \
+    && rm -rf /cpd
+
+RUN apt-get clean
+
diff --git a/scripts/docker/docbuild/Dockerfile b/scripts/docker/docbuild/Dockerfile
new file mode 100644
index 0000000..e39b881
--- /dev/null
+++ b/scripts/docker/docbuild/Dockerfile
@@ -0,0 +1,12 @@
+FROM ubuntu:15.10
+
+RUN apt-get -y update && apt-get install -y \
+    python-dev python-pip g++ doxygen dvipng \
+    cmake libjpeg8-dev zlib1g-dev texlive-latex-base \
+    texlive-latex-extra git \
+    graphviz python-matplotlib
+
+RUN pip install Sphinx==1.4 breathe \
+    sphinx_bootstrap_theme awscli sphinxcontrib-bibtex \
+    sphinx_rtd_theme
+
diff --git a/doc/docbuild/run.sh b/scripts/docker/docbuild/run.sh
similarity index 100%
rename from doc/docbuild/run.sh
rename to scripts/docker/docbuild/run.sh
diff --git a/scripts/docker/rivlib/Dockerfile b/scripts/docker/rivlib/Dockerfile
index 19fbe55..94afe37 100644
--- a/scripts/docker/rivlib/Dockerfile
+++ b/scripts/docker/rivlib/Dockerfile
@@ -1,4 +1,4 @@
-FROM pdal/master
+FROM pdal/pdal
 MAINTAINER Pete Gadomski <pete.gadomski at gmail.com>
 
 COPY rivlib-2_2_1-x86_64-linux-gcc44 /
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 7e3122c..d2699d4 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -37,7 +37,7 @@ endif()
 set(PDAL_BASE_HPP
   "${PDAL_HEADERS_DIR}/pdal_types.hpp"
   "${PDAL_HEADERS_DIR}/Compression.hpp"
-  "${PDAL_HEADERS_DIR}/Dimension.hpp"
+  "${PDAL_HEADERS_DIR}/Eigen.hpp"
   "${PDAL_HEADERS_DIR}/Filter.hpp"
   "${PDAL_HEADERS_DIR}/FlexWriter.hpp"
   "${PDAL_HEADERS_DIR}/GDALUtils.hpp"
@@ -60,6 +60,7 @@ set(PDAL_BASE_HPP
   "${PDAL_HEADERS_DIR}/Polygon.hpp"
   "${PDAL_HEADERS_DIR}/QuadIndex.hpp"
   "${PDAL_HEADERS_DIR}/Reader.hpp"
+  "${PDAL_HEADERS_DIR}/Scaling.hpp"
   "${PDAL_HEADERS_DIR}/SpatialReference.hpp"
   "${PDAL_HEADERS_DIR}/Stage.hpp"
   "${PDAL_HEADERS_DIR}/StageFactory.hpp"
@@ -74,6 +75,7 @@ set(PDAL_BASE_HPP
 
 set(PDAL_BASE_CPP
   DynamicLibrary.cpp
+  Eigen.cpp
   gitsha.cpp
   GDALUtils.cpp
   GEOSUtils.cpp
@@ -94,6 +96,7 @@ set(PDAL_BASE_CPP
   PluginManager.cpp
   QuadIndex.cpp
   Reader.cpp
+  Scaling.cpp
   SpatialReference.cpp
   Stage.cpp
   StageFactory.cpp
@@ -101,7 +104,6 @@ set(PDAL_BASE_CPP
   ${PDAL_XML_SRC}
   ${PDAL_LAZPERF_SRC}
   ${DB_DRIVER_SRCS}
-  ${PROJECT_SOURCE_DIR}/vendor/jsoncpp-1.6.2/dist/jsoncpp.cpp
 )
 
 list (APPEND PDAL_CPP ${PDAL_BASE_CPP} )
@@ -160,11 +162,11 @@ set_target_properties(${PDAL_BASE_LIB_NAME} PROPERTIES VERSION "${PDAL_BUILD_VER
     CLEAN_DIRECT_OUTPUT 1)
 
 if (WITH_LASZIP)
-    target_link_libraries(${PDAL_BASE_LIB_NAME} ${LASZIP_LIBRARY})
+    target_link_libraries(${PDAL_BASE_LIB_NAME} PUBLIC ${LASZIP_LIBRARY})
 endif()
 
 if (PDAL_HAVE_LIBXML2)
-    target_link_libraries(${PDAL_BASE_LIB_NAME} ${LIBXML2_LIBRARIES})
+    target_link_libraries(${PDAL_BASE_LIB_NAME} PUBLIC ${LIBXML2_LIBRARIES})
 endif()
 
 #
@@ -172,25 +174,37 @@ endif()
 # so that users only need link libpdalcpp.
 #
 if (APPLE)
-    set(REEXPORT_UTIL_LIB "-Wl,-reexport_library,$<TARGET_SONAME_FILE:${PDAL_UTIL_LIB_NAME}>")
+    set(PDAL_REEXPORT "-Wl,-reexport_library,$<TARGET_FILE:${PDAL_UTIL_LIB_NAME}>")
+    #
+    # This allows the rpath reference for the reexported library (above) to
+    # be found.
+    #
+    set(PDAL_LIBDIR "-L$<TARGET_FILE_DIR:${PDAL_UTIL_LIB_NAME}>")
 endif()
 
 target_link_libraries(${PDAL_BASE_LIB_NAME}
-    ${CMAKE_THREAD_LIBS_INIT}
-    ${GDAL_LIBRARY}
-    ${GEOS_LIBRARY}
-    ${ZLIB_LIBRARIES}
-    ${PDAL_BOOST_LIB_NAME}
-    ${PDAL_UTIL_LIB_NAME}
-    ${REEXPORT_UTIL_LIB}
+    PUBLIC
+        ${CMAKE_THREAD_LIBS_INIT}
+        ${GDAL_LIBRARY}
+        ${GEOS_LIBRARY}
+        ${ZLIB_LIBRARIES}
+        ${CURL_LIBRARIES}
+    PRIVATE
+        ${PDAL_REEXPORT}
+        ${PDAL_UTIL_LIB_NAME}
+        ${PDAL_ARBITER_LIB_NAME}
+    ${JSON_CPP_LINK_TYPE}
+        ${PDAL_JSONCPP_LIB_NAME}
+    INTERFACE
+        ${PDAL_LIBDIR}
 )
 
 if (WITH_GEOTIFF)
-    target_link_libraries(${PDAL_BASE_LIB_NAME} ${GEOTIFF_LIBRARY})
+    target_link_libraries(${PDAL_BASE_LIB_NAME} PUBLIC ${GEOTIFF_LIBRARY})
 endif()
 
-if(WIN32)
-    target_link_libraries(${PDAL_BASE_LIB_NAME} ws2_32)
+if (WIN32)
+    target_link_libraries(${PDAL_BASE_LIB_NAME} PUBLIC ws2_32)
 endif()
 
 ###############################################################################
@@ -211,3 +225,6 @@ install(DIRECTORY "${PDAL_HEADERS_DIR}/"
   DESTINATION "${PDAL_INCLUDE_INSTALL_DIR}"
   PATTERN "/CMakeFiles/*" EXCLUDE
   )
+install(FILES ${DIMENSION_OUTFILE} 
+  DESTINATION "${PDAL_INCLUDE_INSTALL_DIR}"
+  )
diff --git a/src/DbReader.cpp b/src/DbReader.cpp
index 299dd10..3917eed 100644
--- a/src/DbReader.cpp
+++ b/src/DbReader.cpp
@@ -91,7 +91,7 @@ DimTypeList DbReader::dbDimTypes() const
 }
 
 
-size_t DbReader::dimOffset(Dimension::Id::Enum id) const
+size_t DbReader::dimOffset(Dimension::Id id) const
 {
     size_t offset = 0;
     for (auto di = m_dims.begin(); di != m_dims.end(); ++di)
@@ -115,7 +115,7 @@ void DbReader::writeField(PointView& view, const char *pos, const DimType& dim,
 
         memcpy(&e, pos, Dimension::size(dim.m_type));
         double d = Utils::toDouble(e, dim.m_type);
-        d = (d * dim.m_xform.m_scale) + dim.m_xform.m_offset;
+        d = (d * dim.m_xform.m_scale.m_val) + dim.m_xform.m_offset.m_val;
         view.setField(dim.m_id, idx, d);
     }
     else
diff --git a/src/DbWriter.cpp b/src/DbWriter.cpp
index 9e5e063..c4bdec8 100644
--- a/src/DbWriter.cpp
+++ b/src/DbWriter.cpp
@@ -31,10 +31,17 @@
 ****************************************************************************/
 
 #include <pdal/DbWriter.hpp>
+#include <pdal/util/Utils.hpp>
 
 namespace pdal
 {
 
+void DbWriter::addArgs(ProgramArgs& args)
+{
+    args.add("output_dims", "Output dimensions", m_outputDims);
+    m_scaling.addArgs(args);
+}
+
 // Build the list of dimensions for the output schema.
 // Placing this here allows validation of dimensions before execution begins.
 void DbWriter::prepared(PointTableRef table)
@@ -72,18 +79,23 @@ void DbWriter::ready(PointTableRef /*table*/)
 
     // Determine if X, Y and Z values should be written as Signed32 along with
     // a scale factor and offset instead of being written as Double.
-    m_locationScaling = (m_xXform.nonstandard() || m_yXform.nonstandard() ||
-        m_zXform.nonstandard());
+    m_locationScaling = m_scaling.nonstandard();
 
     auto cmp = [](const XMLDim& d1, const XMLDim& d2) -> bool
     {
-        long id1 = d1.m_dimType.m_id;
-        long id2 = d2.m_dimType.m_id;
+        long id1 = Utils::toNative(d1.m_dimType.m_id);
+        long id2 = Utils::toNative(d2.m_dimType.m_id);
+
+        const auto isXyz([](long native)->bool
+        {
+            const Id e(static_cast<Id>(native));
+            return (e == Id::X || e == Id::Y || e == Id::Z);
+        });
 
         // Put X, Y and Z at the end of the list.
-        if (id1 == Id::X || id1 == Id::Y || id1 == Id::Z)
+        if (isXyz(id1))
             id1 += 1000000;
-        if (id2 == Id::X || id2 == Id::Y || id2 == Id::Z)
+        if (isXyz(id2))
             id2 += 1000000;
         return id1 < id2;
     };
@@ -106,25 +118,25 @@ void DbWriter::ready(PointTableRef /*table*/)
         m_dimTypes.push_back(xmlDim.m_dimType);
         DimType& dt = m_dimTypes.back();
         // Dim types are stored in the map to allow fast access in readField.
-        m_dimMap[(int)dt.m_id] = dt;
+        m_dimMap[Utils::toNative(dt.m_id)] = dt;
 
         if (m_locationScaling)
         {
             if (xmlDim.m_dimType.m_id == Id::X)
             {
-                xmlDim.m_dimType.m_xform = m_xXform;
+                xmlDim.m_dimType.m_xform = m_scaling.m_xXform;
                 xmlDim.m_dimType.m_type = Type::Signed32;
                 m_xOffsets = std::make_pair(m_packedPointSize, m_dbPointSize);
             }
             if (xmlDim.m_dimType.m_id == Id::Y)
             {
-                xmlDim.m_dimType.m_xform = m_yXform;
+                xmlDim.m_dimType.m_xform = m_scaling.m_yXform;
                 xmlDim.m_dimType.m_type = Type::Signed32;
                 m_yOffsets = std::make_pair(m_packedPointSize, m_dbPointSize);
             }
             if (xmlDim.m_dimType.m_id == Id::Z)
             {
-                xmlDim.m_dimType.m_xform = m_zXform;
+                xmlDim.m_dimType.m_xform = m_scaling.m_zXform;
                 xmlDim.m_dimType.m_type = Type::Signed32;
                 m_zOffsets = std::make_pair(m_packedPointSize, m_dbPointSize);
             }
@@ -140,15 +152,15 @@ void DbWriter::setAutoXForm(const PointViewPtr view)
 {
     using namespace Dimension;
 
-    Writer::setAutoXForm(view);
+    m_scaling.setAutoXForm(view);
     for (auto& xmlDim : m_dbDims)
     {
         if (xmlDim.m_dimType.m_id == Id::X)
-            xmlDim.m_dimType.m_xform = m_xXform;
+            xmlDim.m_dimType.m_xform = m_scaling.m_xXform;
         if (xmlDim.m_dimType.m_id == Id::Y)
-            xmlDim.m_dimType.m_xform = m_yXform;
+            xmlDim.m_dimType.m_xform = m_scaling.m_yXform;
         if (xmlDim.m_dimType.m_id == Id::Z)
-            xmlDim.m_dimType.m_xform = m_zXform;
+            xmlDim.m_dimType.m_xform = m_scaling.m_zXform;
     }
 }
 
@@ -161,7 +173,7 @@ void DbWriter::setAutoXForm(const PointViewPtr view)
 /// \param[in] idx      Index of point to read.
 /// \return  Size of field as read.
 size_t DbWriter::readField(const PointView& view, char *pos,
-    Dimension::Id::Enum id, PointId idx)
+    Dimension::Id id, PointId idx)
 {
     using namespace Dimension;
 
@@ -173,13 +185,14 @@ size_t DbWriter::readField(const PointView& view, char *pos,
     // scaling.
     view.getField(pos, id, dt.m_type, idx);
 
-    auto iconvert = [pos](const XForm& xform, Dimension::Id::Enum dim)
+    auto iconvert = [pos](const XForm& xform, Dimension::Id dim)
     {
         double d;
         int32_t i;
 
         memcpy(&d, pos, sizeof(double));
-        d = (d - xform.m_offset) / xform.m_scale;
+
+        d = xform.toScaled(d);
         if (!Utils::numericCast(d, i))
         {
             std::ostringstream oss;
@@ -195,17 +208,17 @@ size_t DbWriter::readField(const PointView& view, char *pos,
         // For X, Y or Z.
         if (id == Id::X)
         {
-            iconvert(m_xXform, Id::X);
+            iconvert(m_scaling.m_xXform, Id::X);
             size = sizeof(int32_t);
         }
         else if (id == Id::Y)
         {
-            iconvert(m_yXform, Id::Y);
+            iconvert(m_scaling.m_yXform, Id::Y);
             size = sizeof(int32_t);
         }
         else if (id == Id::Z)
         {
-            iconvert(m_zXform, Id::Z);
+            iconvert(m_scaling.m_zXform, Id::Z);
             size = sizeof(int32_t);
         }
     }
@@ -225,14 +238,14 @@ size_t DbWriter::readPoint(const PointView& view, PointId idx, char *outbuf)
     // Read the data for the output dimensions from the view into the outbuf.
     view.getPackedPoint(m_dimTypes, idx, outbuf);
 
-    auto iconvert = [](const XForm& xform, Id::Enum dim,
+    auto iconvert = [](const XForm& xform, Id dim,
         const char *inpos, char *outpos)
     {
         double d;
         int32_t i;
 
         memcpy(&d, inpos, sizeof(double));
-        d = (d - xform.m_offset) / xform.m_scale;
+        d = xform.toScaled(d);
         if (!Utils::numericCast(d, i))
         {
             std::ostringstream oss;
@@ -244,13 +257,13 @@ size_t DbWriter::readPoint(const PointView& view, PointId idx, char *outbuf)
     };
 
     if (m_xOffsets.first >= 0)
-        iconvert(m_xXform, Id::X, outbuf + m_xOffsets.first,
+        iconvert(m_scaling.m_xXform, Id::X, outbuf + m_xOffsets.first,
             outbuf + m_xOffsets.second);
     if (m_yOffsets.first >= 0)
-        iconvert(m_yXform, Id::Y, outbuf + m_yOffsets.first,
+        iconvert(m_scaling.m_yXform, Id::Y, outbuf + m_yOffsets.first,
             outbuf + m_yOffsets.second);
     if (m_zOffsets.first >= 0)
-        iconvert(m_zXform, Id::Z, outbuf + m_zOffsets.first,
+        iconvert(m_scaling.m_zXform, Id::Z, outbuf + m_zOffsets.first,
             outbuf + m_zOffsets.second);
     return m_dbPointSize;
 }
diff --git a/src/Dimension.json b/src/Dimension.json
new file mode 100644
index 0000000..5e756a2
--- /dev/null
+++ b/src/Dimension.json
@@ -0,0 +1,331 @@
+{ "dimensions": [
+    {
+    "name": "X",
+    "type": "double",
+    "description": "X coordinate"
+    },
+    {
+    "name": "Y",
+    "type": "double",
+    "description": "Y coordinate"
+    },
+    {
+    "name": "Z",
+    "type": "double",
+    "description": "Z coordinate"
+    },
+    {
+    "name": "Intensity",
+    "type": "uint16",
+    "description": "Representation of the pulse return magnitude"
+    },
+    {
+    "name": "Amplitude",
+    "type": "float",
+    "description": "This is the ratio of the received power to the power received at the detection limit expressed in dB"
+    },
+    {
+    "name": "Reflectance",
+    "type": "float",
+    "description": "Ratio of the received power to the power that would be received from a white diffuse target at the same distance expressed in dB. The reflectance represents a range independent property of the target.  The surface normal of this target is assumed to be in parallel to the laser beam direction."
+    },
+    {
+    "name": "ReturnNumber",
+    "type": "uint8",
+    "description": "Pulse return number for a given output pulse. A given output laser pulse can have many returns, and they must be marked in order, starting with 1"
+    },
+    {
+    "name": "NumberOfReturns",
+    "type": "uint8",
+    "description": "Total number of returns for a given pulse."
+    },
+    {
+    "name": "ScanDirectionFlag",
+    "type": "uint8",
+    "description": "Direction at which the scanner mirror was traveling at the time of the output pulse. A value of 1 is a positive scan direction, and a bit value of 0 is a negative scan direction, where positive scan direction is a scan moving from the left side of the in-track direction to the right side and negative the opposite"
+    },
+    {
+    "name": "EdgeOfFlightLine",
+    "type": "uint8",
+    "description": "Indicates the end of scanline before a direction change with a value of 1 - 0 otherwise"
+    },
+    {
+    "name": "Classification",
+    "type": "uint8",
+    "description": "ASPRS classification.  0 for no classification.  See LAS specification for details."
+    },
+    {
+    "name": "ScanAngleRank",
+    "alt_names": "ScanAngle",
+    "type": "float",
+    "description": "Angle degree at which the laster point was output from the system, including the roll of the aircraft.  The scan angle is based on being nadir, and -90 the left side of the aircraft in the direction of flight"
+    },
+    {
+    "name": "UserData",
+    "type": "uint8",
+    "description": "Unspecified user data"
+    },
+    {
+    "name": "PointSourceId",
+    "type": "uint16",
+    "description": "File source ID from which the point originated.  Zero indicates that the point originated in the current file"
+    },
+    {
+    "name": "Red",
+    "type": "uint16",
+    "description": "Red image channel value"
+    },
+    {
+    "name": "Green",
+    "type": "uint16",
+    "description": "Green image channel value"
+    },
+    {
+    "name": "Blue",
+    "type": "uint16",
+    "description": "Blue image channel value"
+    },
+    {
+    "name": "GpsTime",
+    "type": "double",
+    "description": "GPS time that the point was acquired"
+    },
+    {
+    "name": "InternalTime",
+    "type": "double",
+    "description": "Scanner's internal time when the point was acquired, in seconds"
+    },
+    {
+    "name": "OffsetTime",
+    "alt_names": "Time",
+    "type": "uint32",
+    "description": "Milliseconds from first acquired point"
+    },
+    {
+    "name": "IsPpsLocked",
+    "type": "uint8",
+    "description": "The external PPS signal was found to be synchronized at the time of the current laser shot."
+    },
+    {
+    "name": "StartPulse",
+    "type": "int32",
+    "description": "Relative pulse signal strength"
+    },
+    {
+    "name": "ReflectedPulse",
+    "type": "int32",
+    "description": "Relative reflected pulse signal strength"
+    },
+    {
+    "name": "Pdop",
+    "type": "float",
+    "description": "GPS PDOP (dilution of precision)"
+    },
+    {
+    "name": "Pitch",
+    "type": "float",
+    "description": "Pitch in degrees"
+    },
+    {
+    "name": "Roll",
+    "type": "float",
+    "description": "Roll in degrees"
+    },
+    {
+    "name": "PulseWidth",
+    "type": "float",
+    "description": "Laser received pulse width (digitizer samples)"
+    },
+    {
+    "name": "Deviation",
+    "type": "float",
+    "description": "A larger value for deviation indicates larger distortion."
+    },
+    {
+    "name": "PassiveSignal",
+    "type": "int32",
+    "description": "Relative passive signal"
+    },
+    {
+    "name": "BackgroundRadiation",
+    "type": "float",
+    "description": "A measure of background radiation."
+    },
+    {
+    "name": "PassiveX",
+    "type": "double",
+    "description": "Passive X footprint"
+    },
+    {
+    "name": "PassiveY",
+    "type": "double",
+    "description": "Passive Y footprint"
+    },
+    {
+    "name": "PassiveZ",
+    "type": "double",
+    "description": "Passive Z footprint"
+    },
+    {
+    "name": "XVelocity",
+    "type": "double",
+    "description": "X Velocity"
+    },
+    {
+    "name": "YVelocity",
+    "type": "double",
+    "description": "Y Velocity"
+    },
+    {
+    "name": "ZVelocity",
+    "type": "double",
+    "description": "Z Velocity"
+    },
+    {
+    "name": "Azimuth",
+    "alt_names": "PlatformHeading",
+    "type": "double",
+    "description": "Scanner azimuth"
+    },
+    {
+    "name": "WanderAngle",
+    "type": "double",
+    "description": "Wander Angle"
+    },
+    {
+    "name": "XBodyAccel",
+    "type": "double",
+    "description": "X Body Acceleration"
+    },
+    {
+    "name": "YBodyAccel",
+    "type": "double",
+    "description": "Y Body Acceleration"
+    },
+    {
+    "name": "ZBodyAccel",
+    "type": "double",
+    "description": "Z Body Acceleration"
+    },
+    {
+    "name": "XBodyAngRate",
+    "type": "double",
+    "description": "X Body Angle Rate"
+    },
+    {
+    "name": "YBodyAngRate",
+    "type": "double",
+    "description": "Y Body Angle Rate"
+    },
+    {
+    "name": "ZBodyAngRate",
+    "type": "double",
+    "description": "Z Body Angle Rate"
+    },
+    {
+    "name": "Flag",
+    "type": "uint8",
+    "description": "Flag"
+    },
+    {
+    "name": "Mark",
+    "type": "uint8",
+    "description": "Mark"
+    },
+    {
+    "name": "Alpha",
+    "type": "uint16",
+    "description": "Alpha"
+    },
+    {
+    "name": "EchoRange",
+    "type": "double",
+    "description": "Echo Range"
+    },
+    {
+    "name": "ScanChannel",
+    "type": "uint8",
+    "description": "Scan Channel"
+    },
+    {
+    "name": "Infrared",
+    "alt_names": "NearInfrared",
+    "type": "uint16",
+    "description": "Infrared"
+    },
+    {
+    "name": "HeightAboveGround",
+    "type": "double",
+    "description": "Height Above Ground"
+    },
+    {
+    "name": "ClassFlags",
+    "type": "uint8",
+    "description": "Class Flags"
+    },
+    {
+    "name": "LvisLfid",
+    "alt_names": "Lvis_Lfid",
+    "type": "uint64",
+    "description": "LVIS_LFID"
+    },
+    {
+    "name": "ShotNumber",
+    "type": "uint64",
+    "description": "Shot Number"
+    },
+    {
+    "name": "LongitudeCentroid",
+    "alt_names": "Longitude_Centroid",
+    "type": "double",
+    "description": "Longitude Centroid"
+    },
+    {
+    "name": "LatitudeCentroid",
+    "alt_names": "Latitude_Centroid",
+    "type": "double",
+    "description": "Latitude Centroid"
+    },
+    {
+    "name": "ElevationCentroid",
+    "alt_names": "Elevation_Centroid",
+    "type": "double",
+    "description": "Elevation Centroid"
+    },
+    {
+    "name": "LongitudeLow",
+    "alt_names": "Longitude_Low",
+    "type": "double",
+    "description": "Longitude Low"
+    },
+    {
+    "name": "LatitudeLow",
+    "alt_names": "Latitude_Low",
+    "type": "double",
+    "description": "Latitude Low"
+    },
+    {
+    "name": "ElevationLow",
+    "alt_names": "Elevation_Low",
+    "type": "double",
+    "description": "Elevation Low"
+    },
+    {
+    "name": "LongitudeHigh",
+    "alt_names": "Longitude_High",
+    "type": "double",
+    "description": "Longitude High"
+    },
+    {
+    "name": "LatitudeHigh",
+    "alt_names": "Latitude_High",
+    "type": "double",
+    "description": "Latitude High"
+    },
+    {
+    "name": "ElevationHigh",
+    "alt_names": "Elevation_High",
+    "type": "double",
+    "description": "Elevation High"
+    }
+] }
diff --git a/src/Eigen.cpp b/src/Eigen.cpp
new file mode 100644
index 0000000..e9f33e6
--- /dev/null
+++ b/src/Eigen.cpp
@@ -0,0 +1,143 @@
+/******************************************************************************
+* Copyright (c) 2016, Bradley J Chambers (brad.chambers at gmail.com)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include <pdal/Eigen.hpp>
+#include <pdal/PointView.hpp>
+#include <pdal/util/Bounds.hpp>
+
+#include <Eigen/Dense>
+
+#include <vector>
+
+namespace pdal
+{
+
+Eigen::Vector3f computeCentroid(PointView& view, std::vector<PointId> ids)
+{
+    using namespace Eigen;
+
+    auto n = ids.size();
+
+    double mx, my, mz;
+    mx = my = mz = 0.0;
+    for (auto const& j : ids)
+    {
+        mx += view.getFieldAs<double>(Dimension::Id::X, j);
+        my += view.getFieldAs<double>(Dimension::Id::Y, j);
+        mz += view.getFieldAs<double>(Dimension::Id::Z, j);
+    }
+
+    Vector3f centroid;
+    centroid << mx/n, my/n, mz/n;
+
+    return centroid;
+}
+
+Eigen::Matrix3f computeCovariance(PointView& view, std::vector<PointId> ids)
+{
+    using namespace Eigen;
+
+    auto n = ids.size();
+
+    Vector3f centroid = computeCentroid(view, ids);
+
+    // demean the neighborhood
+    MatrixXf A(3, n);
+    size_t k = 0;
+    for (auto const& j : ids)
+    {
+        A(0, k) = view.getFieldAs<double>(Dimension::Id::X, j) - centroid[0];
+        A(1, k) = view.getFieldAs<double>(Dimension::Id::Y, j) - centroid[1];
+        A(2, k) = view.getFieldAs<double>(Dimension::Id::Z, j) - centroid[2];
+        k++;
+    }
+
+    return A * A.transpose();
+}
+
+uint8_t computeRank(PointView& view, std::vector<PointId> ids, double threshold)
+{
+    using namespace Eigen;
+
+    Matrix3f B = computeCovariance(view, ids);
+
+    JacobiSVD<Matrix3f> svd(B);
+    svd.setThreshold(threshold);
+    
+    return static_cast<uint8_t>(svd.rank());
+}
+
+Eigen::MatrixXd createDSM(PointView& view, int rows, int cols, double cell_size,
+                          BOX2D bounds)
+{
+    using namespace Dimension;
+    using namespace Eigen;
+    
+    MatrixXd ZImin(rows, cols);
+    ZImin.setConstant(std::numeric_limits<double>::quiet_NaN());
+
+    int maxrow = bounds.miny + rows * cell_size;
+    
+    auto clamp = [](int t, int min, int max)
+    {
+        return ((t < min) ? min : ((t > max) ? max : t));
+    };
+    
+    auto getColIndex = [&bounds, &cell_size](double x)
+    {
+        return static_cast<int>(floor((x - bounds.minx) / cell_size));
+    };
+
+    auto getRowIndex = [&maxrow, &cell_size](double y)
+    {
+        return static_cast<int>(floor((maxrow - y) / cell_size));
+    };
+    
+    for (PointId i = 0; i < view.size(); ++i)
+    {
+        double x = view.getFieldAs<double>(Id::X, i);
+        double y = view.getFieldAs<double>(Id::Y, i);
+        double z = view.getFieldAs<double>(Id::Z, i);
+
+        int c = clamp(getColIndex(x), 0, cols-1);
+        int r = clamp(getRowIndex(y), 0, rows-1);
+
+        if (z < ZImin(r, c) || std::isnan(ZImin(r, c)))
+            ZImin(r, c) = z;
+    }
+
+    return ZImin;
+}
+
+} // namespace pdal
diff --git a/src/GDALUtils.cpp b/src/GDALUtils.cpp
index 0a25d4c..bcbeb80 100644
--- a/src/GDALUtils.cpp
+++ b/src/GDALUtils.cpp
@@ -40,6 +40,8 @@
 #include <map>
 #include <mutex>
 
+#include <ogr_spatialref.h>
+
 #ifdef PDAL_COMPILER_MSVC
 #  pragma warning(disable: 4127)  // conditional expression is constant
 #endif
@@ -49,7 +51,42 @@ namespace pdal
 namespace gdal
 {
 
-ErrorHandler ErrorHandler::m_instance;
+/**
+  Reproject a bounds box from a source projection to a destination.
+  \param box  Bounds box to be reprojected in-place.
+  \param srcSrs  String in WKT or other suitable format of box coordinates.
+  \param dstSrs  String in WKT or other suitable format to which
+    coordinates should be projected.
+  \return  Whether the reprojection was successful or not.
+*/
+bool reprojectBounds(BOX3D& box, const std::string& srcSrs,
+    const std::string& dstSrs)
+{
+    OGRSpatialReference src;
+    OGRSpatialReference dst;
+
+    OGRErr srcOk = OSRSetFromUserInput(&src, srcSrs.c_str());
+    OGRErr dstOk = OSRSetFromUserInput(&dst, dstSrs.c_str());
+    if (srcOk != OGRERR_NONE || dstOk != OGRERR_NONE)
+        return false;
+
+    OGRCoordinateTransformationH transform =
+        OCTNewCoordinateTransformation(&src, &dst);
+
+    bool ok = (OCTTransform(transform, 1, &box.minx, &box.miny, &box.minz) &&
+        OCTTransform(transform, 1, &box.maxx, &box.maxy, &box.maxz));
+    OCTDestroyCoordinateTransformation(transform);
+    return ok;
+}
+
+
+std::string lastError()
+{
+    return CPLGetLastErrorMsg();
+}
+
+
+static ErrorHandler* s_gdalErrorHandler= 0;
 
 void registerDrivers()
 {
@@ -71,31 +108,30 @@ void unregisterDrivers()
 }
 
 
-ErrorHandler& ErrorHandler::get()
+ErrorHandler& ErrorHandler::getGlobalErrorHandler()
 {
-    return m_instance;
-}
+    static std::once_flag flag;
 
+    auto init = []()
+    {
+       s_gdalErrorHandler = new ErrorHandler();
+    };
+
+    std::call_once(flag, init);
+    return *s_gdalErrorHandler;
+}
 
-ErrorHandler::ErrorHandler() : m_throw(true), m_errorNum(0)
+ErrorHandler::ErrorHandler() : m_errorNum(0)
 {
     std::string value;
 
-    auto cb = [](::CPLErr level, int num, const char *msg)
-    {
-        ErrorHandler::get().handle(level, num, msg);
-    };
-    m_cplSet = (Utils::getenv("CPL_DEBUG", value) == 0);
+    // Will return thread-local setting
+    const char* set = CPLGetConfigOption("CPL_DEBUG", "");
+    m_cplSet = (bool)set ;
     m_debug = m_cplSet;
-    CPLSetErrorHandler(cb);
-}
 
-
-void ErrorHandler::set(LogPtr log, bool debug, bool doThrow)
-{
-    setLog(log);
-    setDebug(debug);
-    setThrow(doThrow);
+    // Push on a thread-local error handler
+    CPLSetErrorHandler(&ErrorHandler::trampoline);
 }
 
 
@@ -115,36 +151,20 @@ void ErrorHandler::setLog(LogPtr log)
 void ErrorHandler::setDebug(bool debug)
 {
     m_debug = debug;
-    if (!m_cplSet)
-    {
-        if (debug)
-            Utils::setenv("CPL_DEBUG", "ON");
-        else
-            Utils::unsetenv("CPL_DEBUG");
-    }
-}
 
-
-void ErrorHandler::setThrow(bool doThrow)
-{
-    m_throw = doThrow;
-}
-
-
-bool ErrorHandler::willThrow() const
-{
-    return m_throw;
+    if (debug)
+        CPLSetThreadLocalConfigOption("CPL_DEBUG", "ON");
+    else
+        CPLSetThreadLocalConfigOption("CPL_DEBUG", NULL);
 }
 
 
 int ErrorHandler::errorNum()
 {
     int errorNum = m_errorNum;
-    m_errorNum = 0;
     return errorNum;
 }
 
-
 void ErrorHandler::handle(::CPLErr level, int num, char const* msg)
 {
     std::ostringstream oss;
@@ -153,9 +173,7 @@ void ErrorHandler::handle(::CPLErr level, int num, char const* msg)
     if (level == CE_Failure || level == CE_Fatal)
     {
         oss << "GDAL failure (" << num << ") " << msg;
-        if (m_throw)
-            throw pdal_error(oss.str());
-        else if (m_log)
+        if (m_log)
             m_log->get(LogLevel::Error) << oss.str() << std::endl;
     }
     else if (m_debug && level == CE_Debug)
@@ -322,9 +340,9 @@ Raster::Raster(const std::string& filename)
 }
 
 
-GDALError::Enum Raster::open()
+GDALError Raster::open()
 {
-    GDALError::Enum error = GDALError::None;
+    GDALError error = GDALError::None;
     if (m_ds)
         return error;
 
@@ -413,25 +431,24 @@ bool Raster::getPixelAndLinePosition(double x, double y,
 }
 
 
-Dimension::Type::Enum convertGDALtoPDAL(GDALDataType t)
+Dimension::Type convertGDALtoPDAL(GDALDataType t)
 {
-    using namespace Dimension::Type;
     switch (t)
     {
         case GDT_Byte:
-            return Unsigned8;
+            return Dimension::Type::Unsigned8;
         case GDT_UInt16:
-            return Unsigned16;
+            return Dimension::Type::Unsigned16;
         case GDT_Int16:
-            return Signed16;
+            return Dimension::Type::Signed16;
         case GDT_UInt32:
-            return Unsigned32;
+            return Dimension::Type::Unsigned32;
         case GDT_Int32:
-            return Signed32;
+            return Dimension::Type::Signed32;
         case GDT_Float32:
-            return Float;
+            return Dimension::Type::Float;
         case GDT_Float64:
-            return Double;
+            return Dimension::Type::Double;
         case GDT_CInt16:
         case GDT_CInt32:
         case GDT_CFloat32:
@@ -442,13 +459,13 @@ Dimension::Type::Enum convertGDALtoPDAL(GDALDataType t)
         case GDT_TypeCount:
             throw pdal_error("Detected bad GDAL data type.");
     }
-    return None;
+    return Dimension::Type::None;
 }
 
 
-GDALError::Enum Raster::readBand(std::vector<uint8_t>& points, int nBand)
+GDALError Raster::readBand(std::vector<uint8_t>& points, int nBand)
 {
-    try 
+    try
     {
         BandReader(m_ds, nBand).read(points);
     }
@@ -471,7 +488,7 @@ GDALError::Enum Raster::readBand(std::vector<uint8_t>& points, int nBand)
 }
 
 
-GDALError::Enum Raster::computePDALDimensionTypes()
+GDALError Raster::computePDALDimensionTypes()
 {
     if (!m_ds)
         return GDALError::NotOpen;
@@ -499,7 +516,7 @@ GDALError::Enum Raster::computePDALDimensionTypes()
 }
 
 
-GDALError::Enum Raster::read(double x, double y, std::vector<double>& data)
+GDALError Raster::read(double x, double y, std::vector<double>& data)
 {
     if (!m_ds)
         return GDALError::NotOpen;
@@ -558,7 +575,6 @@ void Raster::close()
 
 } // namespace gdal
 
-
 std::string transformWkt(std::string wkt, const SpatialReference& from,
     const SpatialReference& to)
 {
diff --git a/src/Kernel.cpp b/src/Kernel.cpp
index e3681db..a2a9c96 100644
--- a/src/Kernel.cpp
+++ b/src/Kernel.cpp
@@ -35,7 +35,6 @@
 #include <cctype>
 #include <iostream>
 
-#include <pdal/GDALUtils.hpp>
 #include <pdal/Kernel.hpp>
 #include <pdal/Options.hpp>
 #include <pdal/PDALUtils.hpp>
@@ -59,6 +58,7 @@ namespace
 bool parseOption(std::string o, std::string& stage, std::string& option,
     std::string& value)
 {
+    value.clear();
     if (o.size() < 2)
         return false;
     if (o[0] != '-' || o[1] != '-')
@@ -84,12 +84,11 @@ bool parseOption(std::string o, std::string& stage, std::string& option,
     // Get stage_type.
     count = Utils::extract(o, pos, islc);
     pos += count;
-
     std::string stage_type = o.substr(0, pos);
     if (stage_type != "readers" && stage_type != "writers" &&
         stage_type != "filters")
         return false;
-    if (o[pos++] != '.')
+    if (pos >= o.length() || o[pos++] != '.')
         return false;
 
     // Get stage_name.
@@ -98,7 +97,7 @@ bool parseOption(std::string o, std::string& stage, std::string& option,
         return false;
     pos += count;
     stage = o.substr(0, pos);
-    if (o[pos++] != '.')
+    if (pos >= o.length() || o[pos++] != '.')
         return false;
 
     // Get option name.
@@ -107,8 +106,10 @@ bool parseOption(std::string o, std::string& stage, std::string& option,
     pos += count;
     option = o.substr(optionStart, count);
 
-    if (o[pos++] != '=')
-        return false;
+    // We've gotten a good option name, so return true, even if the value
+    // is missing.  The caller can handle the missing value if desired.
+    if (pos >= o.length() || o[pos++] != '=')
+        return true;
 
     // The command-line parser takes care of quotes around an argument
     // value and such.  May want to do something to handle escaped characters?
@@ -119,15 +120,9 @@ bool parseOption(std::string o, std::string& stage, std::string& option,
 } // unnamed namespace
 
 
-Kernel::Kernel()
-    : m_usestdin(false)
-    , m_log("pdal", "stderr")
-    , m_isDebug(false)
-    , m_verboseLevel(0)
-    , m_showVersion(false)
-    , m_showTime(false)
+Kernel::Kernel() :
+    m_showTime(false)
     , m_hardCoreDebug(false)
-    , m_reportDebug(false)
     , m_visualize(false)
 {}
 
@@ -139,8 +134,9 @@ std::ostream& operator<<(std::ostream& ostr, const Kernel& kernel)
 }
 
 
-void Kernel::doSwitches(int argc, const char *argv[], ProgramArgs& args)
+void Kernel::doSwitches(const StringList& cmdArgs, ProgramArgs& args)
 {
+    OptionsMap& stageOptions = m_manager.stageOptions();
     StringList stringArgs;
 
     // Scan the argument vector for extra stage options.  Pull them out and
@@ -148,26 +144,38 @@ void Kernel::doSwitches(int argc, const char *argv[], ProgramArgs& args)
     // NOTE: This depends on the format being "option=value" rather than
     //   "option value".  This is what we've always expected, so no problem,
     //   but it would be better to be more flexible.
-    for (int i = 0; i < argc; ++i)
+    for (size_t i = 0; i < cmdArgs.size(); ++i)
     {
         std::string stageName, opName, value;
 
-        if (parseOption(argv[i], stageName, opName, value))
+        if (parseOption(cmdArgs[i], stageName, opName, value))
         {
+            if (value.empty())
+            {
+                std::ostringstream oss;
+                oss << "Stage option '" << stageName << "." << opName <<
+                    "' must be specified " << " as --" << stageName << "." <<
+                    opName << "=<value>" << ".";
+                throw pdal_error(oss.str());
+            }
             Option op(opName, value);
-            m_extraStageOptions[stageName].add(op);
+            stageOptions[stageName].add(op);
         }
         else
-            stringArgs.push_back(argv[i]);
+            stringArgs.push_back(cmdArgs[i]);
     }
 
     try
     {
-        addBasicSwitches(args);
-
         // parseSimple allows us to scan for the help option without
         // raising exception about missing arguments and so on.
-        args.parseSimple(stringArgs);
+        // It also removes consumed args from the arg list, so for now,
+        // parse a copy that will be ignored by parse().
+        ProgramArgs hargs;
+        hargs.add("help,h", "Print help message", m_showHelp);
+        hargs.parseSimple(stringArgs);
+
+        addBasicSwitches(args);
         addSwitches(args);
         if (!m_showHelp)
             args.parse(stringArgs);
@@ -219,23 +227,17 @@ int Kernel::doExecution(ProgramArgs& args)
 }
 
 
-int Kernel::doShutdown()
-{
-    gdal::unregisterDrivers();
-    return 0;
-}
-
-
 // this just wraps ALL the code in total catch block
-int Kernel::run(int argc, char const * argv[], const std::string& appName)
+int Kernel::run(const StringList& cmdArgs, LogPtr& log)
 {
-    m_appName = appName;
+    m_log = log;
+    m_manager.setLog(m_log);
 
     ProgramArgs args;
 
     try
     {
-        doSwitches(argc, argv, args);
+        doSwitches(cmdArgs, args);
     }
     catch (const pdal_error& e)
     {
@@ -253,32 +255,7 @@ int Kernel::run(int argc, char const * argv[], const std::string& appName)
     if (startup_status)
         return startup_status;
 
-    int execution_status = doExecution(args);
-
-    // note we will try to shutdown cleanly even if we got an error condition
-    // in the execution phase
-
-    int shutdown_status = doShutdown();
-
-    if (execution_status)
-        return execution_status;
-
-    return shutdown_status;
-}
-
-
-void Kernel::collectExtraOptions()
-{
-    for (const auto& o : m_extra_options)
-    {
-        std::string stageName, opName, value;
-
-        if (parseOption(o, stageName, opName, value))
-        {
-            Option op(opName, value);
-            m_extraStageOptions[stageName].add(op);
-        }
-    }
+    return doExecution(args);
 }
 
 
@@ -296,23 +273,11 @@ int Kernel::innerRun(ProgramArgs& args)
         return -1;
     }
 
-    collectExtraOptions();
+    parseCommonOptions();
     return execute();
 }
 
 
-bool Kernel::isDebug() const
-{
-    return m_isDebug;
-}
-
-
-uint32_t Kernel::getVerboseLevel() const
-{
-    return m_verboseLevel;
-}
-
-
 bool Kernel::isVisualize() const
 {
     return m_visualize;
@@ -321,11 +286,16 @@ bool Kernel::isVisualize() const
 
 void Kernel::visualize(PointViewPtr view)
 {
-    BufferReader bufferReader;
-    bufferReader.addView(view);
+    PipelineManager manager;
+
+    manager.commonOptions() = m_manager.commonOptions();
+    manager.stageOptions() = m_manager.stageOptions();
 
-    auto& writer = createStage("writers.pclvisualizer");
-    writer.setInput(bufferReader);
+    BufferReader& reader =
+        static_cast<BufferReader&>(manager.makeReader("", "readers.buffer"));
+    reader.addView(view);
+
+    Stage& writer = manager.makeWriter("", "writers.pclvisualizer", reader);
 
     PointTable table;
     writer.prepare(table);
@@ -344,20 +314,27 @@ void Kernel::visualize(PointViewPtr input_view, PointViewPtr output_view) const
     BOX3D const& output_bounds = output_view->calculateBounds();
 
     // Convert PointView to a PCL PointCloud
-    pcl::PointCloud<pcl::PointXYZ>::Ptr input_cloud(new pcl::PointCloud<pcl::PointXYZ>);
-    pclsupport::PDALtoPCD(const_cast<PointViewPtr>(*input_view), *input_cloud, input_bounds);
-    pcl::PointCloud<pcl::PointXYZ>::Ptr output_cloud(new pcl::PointCloud<pcl::PointXYZ>);
-    pclsupport::PDALtoPCD(const_cast<PointViewPtr>(*output_view), *output_cloud, output_bounds);
+    pcl::PointCloud<pcl::PointXYZ>::Ptr input_cloud(
+        new pcl::PointCloud<pcl::PointXYZ>);
+    pclsupport::PDALtoPCD(
+        const_cast<PointViewPtr>(*input_view), *input_cloud, input_bounds);
+    pcl::PointCloud<pcl::PointXYZ>::Ptr output_cloud(
+        new pcl::PointCloud<pcl::PointXYZ>);
+    pclsupport::PDALtoPCD(
+        const_cast<PointViewPtr>(*output_view), *output_cloud, output_bounds);
 
     // Create PCLVisualizer
-    std::shared_ptr<pcl::visualization::PCLVisualizer> p(new pcl::visualization::PCLVisualizer("3D Viewer"));
+    std::shared_ptr<pcl::visualization::PCLVisualizer> p(
+        new pcl::visualization::PCLVisualizer("3D Viewer"));
 
     // Set background to black
     p->setBackgroundColor(0, 0, 0);
 
     // Use Z dimension to colorize points
-    pcl::visualization::PointCloudColorHandlerGenericField<pcl::PointXYZ> input_color(input_cloud, "z");
-    pcl::visualization::PointCloudColorHandlerGenericField<pcl::PointXYZ> output_color(output_cloud, "z");
+    pcl::visualization::PointCloudColorHandlerGenericField<pcl::PointXYZ>
+        input_color(input_cloud, "z");
+    pcl::visualization::PointCloudColorHandlerGenericField<pcl::PointXYZ>
+        output_color(output_cloud, "z");
 
     // Add point cloud to the viewer with the Z dimension color handler
     p->createViewPort(0, 0, 0.5, 1, viewport);
@@ -377,20 +354,12 @@ void Kernel::visualize(PointViewPtr input_view, PointViewPtr output_view) const
 */
 
 
-void Kernel::setCommonOptions(Options &options)
+void Kernel::parseCommonOptions()
 {
-    options.add("visualize", m_visualize);
-
-    if (m_isDebug)
-    {
-        options.add("debug", true);
-        uint32_t verbosity(m_verboseLevel);
-        if (!verbosity)
-            verbosity = 1;
+    Options& options = m_manager.commonOptions();
 
-        options.add("verbose", verbosity);
-        options.add("log", "STDERR");
-    }
+    if (m_visualize)
+        options.add("visualize", m_visualize);
 
     auto pred = [](char c){ return (bool)strchr(",| ", c); };
 
@@ -450,7 +419,7 @@ void Kernel::setCommonOptions(Options &options)
 
 void Kernel::outputHelp(ProgramArgs& args)
 {
-    std::cout << "usage: " << "pdal " << m_appName << " [options] " <<
+    std::cout << "usage: " << "pdal " << getShortName() << " [options] " <<
         args.commandLine() << std::endl;
 
     std::cout << "options:" << std::endl;
@@ -465,20 +434,12 @@ void Kernel::outputHelp(ProgramArgs& args)
 
 void Kernel::addBasicSwitches(ProgramArgs& args)
 {
-    args.add("help,h", "Print help message", m_showHelp);
-
-    args.add("debug,d", "Enable debug mode", m_isDebug);
     args.add("developer-debug",
         "Enable developer debug (don't trap exceptions)", m_hardCoreDebug);
     args.add("label", "A string to label the process with", m_label);
-    args.add("verbose,v", "Set verbose message level", m_verboseLevel);
 
     args.add("visualize", "Visualize result", m_visualize);
-    args.add("stdin,s", "Read pipeline JSON from stdin", m_usestdin);
-    /**
-    args.add("heartbeat", "Shell command to run for every progress heartbeat",
-        m_heartbeat_shell_command);
-    **/
+    args.add("driver", "Override reader driver", m_driverOverride, "");
     args.add("scale",
          "A comma-separated or quoted, space-separated list of scales to "
          "set on the output file: \n--scale 0.1,0.1,0.00001\n--scale \""
@@ -489,6 +450,7 @@ void Kernel::addBasicSwitches(ProgramArgs& args)
          "\"1234 5678 91011\"", m_offsets);
 }
 
+/**
 Stage& Kernel::createStage(const std::string& name)
 {
     Stage *stage = m_factory.createStage(name);
@@ -496,34 +458,54 @@ Stage& Kernel::createStage(const std::string& name)
         throw pdal_error("stage creation failed for " + name);
     return *stage;
 }
+**/
 
-Stage& Kernel::makeReader(const std::string& inputFile)
+Stage& Kernel::makeReader(const std::string& inputFile, std::string driver)
 {
-    if (!FileUtils::fileExists(inputFile))
-        throw pdal_error("file not found: " + inputFile);
+    return m_manager.makeReader(inputFile, driver);
+}
 
-    std::string driver = m_factory.inferReaderDriver(inputFile);
-    if (driver.empty())
-        throw pdal_error("Cannot determine input file type of " + inputFile);
 
-    return createStage(driver);
+Stage& Kernel::makeReader(const std::string& inputFile, std::string driver,
+    Options options)
+{
+    return m_manager.makeReader(inputFile, driver, options);
 }
 
-Stage& Kernel::makeWriter(const std::string& outputFile, Stage& parent)
+
+Stage& Kernel::makeFilter(const std::string& driver)
 {
-    std::string driver = m_factory.inferWriterDriver(outputFile);
-    if (driver.empty())
-        throw pdal_error("Cannot determine output file type of " +
-            outputFile);
-    Options options = m_factory.inferWriterOptionsChanges(outputFile);
+    return m_manager.makeFilter(driver);
+}
+
+
+Stage& Kernel::makeFilter(const std::string& driver, Stage& parent)
+{
+    return m_manager.makeFilter(driver, parent);
+}
 
-    auto& writer = createStage(driver);
-    writer.setInput(parent);
-    writer.addOptions(options);
 
-    return writer;
+Stage& Kernel::makeFilter(const std::string& driver, Stage& parent,
+    Options options)
+{
+    return m_manager.makeFilter(driver, parent, options);
 }
 
+
+Stage& Kernel::makeWriter(const std::string& outputFile, Stage& parent,
+    std::string driver)
+{
+    return m_manager.makeWriter(outputFile, driver, parent);
+}
+
+
+Stage& Kernel::makeWriter(const std::string& outputFile, Stage& parent,
+    std::string driver, Options options)
+{
+    return m_manager.makeWriter(outputFile, driver, parent, options);
+}
+
+
 bool Kernel::test_parseOption(std::string o, std::string& stage,
     std::string& option, std::string& value)
 {
diff --git a/src/Log.cpp b/src/Log.cpp
index 60db79e..7ef176c 100644
--- a/src/Log.cpp
+++ b/src/Log.cpp
@@ -33,7 +33,7 @@
 ****************************************************************************/
 
 #include <pdal/Log.hpp>
-#include <pdal/util/Utils.hpp>
+#include <pdal/PDALUtils.hpp>
 
 #include <fstream>
 #include <ostream>
@@ -41,33 +41,33 @@
 namespace pdal
 {
 
-using namespace LogLevel;
-
 Log::Log(std::string const& leaderString,
          std::string const& outputName)
-    : m_level(Error)
+    : m_level(LogLevel::Error)
     , m_deleteStreamOnCleanup(false)
     , m_leader(leaderString)
 {
 
+    makeNullStream();
     if (Utils::iequals(outputName, "stdlog"))
         m_log = &std::clog;
     else if (Utils::iequals(outputName, "stderr"))
         m_log = &std::cerr;
     else if (Utils::iequals(outputName, "stdout"))
         m_log = &std::cout;
+    else if (Utils::iequals(outputName, "devnull"))
+        m_log = m_nullStream;
     else
     {
-        m_log = FileUtils::createFile(outputName);
+        m_log = Utils::createFile(outputName);
         m_deleteStreamOnCleanup = true;
     }
-    makeNullStream();
 }
 
 
 Log::Log(std::string const& leaderString,
          std::ostream* v)
-    : m_level(Error)
+    : m_level(LogLevel::Error)
     , m_deleteStreamOnCleanup(false)
     , m_leader(leaderString)
 {
@@ -114,13 +114,17 @@ void Log::clearFloat()
 }
 
 
-std::ostream& Log::get(LogLevel::Enum level)
+std::ostream& Log::get(LogLevel level)
 {
-    if (level <= m_level)
+    const auto incoming(Utils::toNative(level));
+    const auto stored(Utils::toNative(m_level));
+    const auto nativeDebug(Utils::toNative(LogLevel::Debug));
+    if (incoming <= stored)
     {
         *m_log << "(" << m_leader << " "<< getLevelString(level) <<": " <<
-            level << "): " <<
-            std::string(level < Debug ? 0 : level - Debug, '\t');
+            incoming << "): " <<
+            std::string(incoming < nativeDebug ? 0 : incoming - nativeDebug,
+                    '\t');
         return *m_log;
     }
     return *m_nullStream;
@@ -128,17 +132,17 @@ std::ostream& Log::get(LogLevel::Enum level)
 }
 
 
-std::string Log::getLevelString(LogLevel::Enum level) const
+std::string Log::getLevelString(LogLevel level) const
 {
     switch (level)
     {
-        case Error:
+        case LogLevel::Error:
             return "Error";
             break;
-        case Warning:
+        case LogLevel::Warning:
             return "Warning";
             break;
-        case Info:
+        case LogLevel::Info:
             return "Info";
             break;
         default:
diff --git a/src/Options.cpp b/src/Options.cpp
index 5535cef..4123957 100644
--- a/src/Options.cpp
+++ b/src/Options.cpp
@@ -42,42 +42,19 @@
 namespace pdal
 {
 
-#if !defined(PDAL_COMPILER_MSVC)
-
-// explicit specialization:
-//   if insert a bool, we don't want it to be "0" or "1".
-template<> void Option::setValue(const bool& value)
-{
-    m_value = value ? "true" : "false";
-}
-
-// explicit specialization:
-template<> void Option::setValue(const std::string& value)
+std::string Option::toArg() const
 {
-    m_value = value;
+    return std::string(2, '-') + getName() + '=' + getValue();
 }
-#endif
 
 
 void Option::toMetadata(MetadataNode& parent) const
 {
-    parent.add(getName(), getValue<std::string>());
+    parent.add(getName(), getValue());
 }
 
 //---------------------------------------------------------------------------
 
-
-Options::Options(const Options& rhs)
-    : m_options(rhs.m_options)
-{}
-
-
-Options::Options(const Option& opt)
-{
-    add(opt);
-}
-
-
 bool Option::nameValid(const std::string& name, bool reportError)
 {
     bool valid = (parse(name, 0) == name.size());
@@ -95,44 +72,24 @@ bool Option::nameValid(const std::string& name, bool reportError)
 void Options::add(const Option& option)
 {
     assert(Option::nameValid(option.getName(), true));
-    m_options.insert(std::pair<std::string, Option>(option.getName(), option));
+    m_options.insert({ option.getName(), option });
 }
 
 
-void Options::remove(const Option& option)
+void Options::addConditional(const Option& option)
 {
-    m_options.erase(option.getName());
+    assert(Option::nameValid(option.getName(), true));
+    if (m_options.find(option.getName()) == m_options.end())
+        m_options.insert({ option.getName(), option });
 }
 
 
-Option& Options::getOptionByRef(const std::string& name)
+void Options::remove(const Option& option)
 {
-    auto iter = m_options.find(name);
-    if (iter == m_options.end())
-    {
-        std::ostringstream oss;
-        oss << "Options::getOptionByRef: Required option '" << name <<
-            "' was not found on this stage";
-        throw Option::not_found(oss.str());
-    }
-    return iter->second;
+    m_options.erase(option.getName());
 }
 
 
-const Option& Options::getOption(const std::string& name) const
-{
-    assert(Option::nameValid(name, true));
-    auto iter = m_options.find(name);
-    if (iter == m_options.end())
-    {
-        std::ostringstream oss;
-        oss << "Options::getOption: Required option '" << name <<
-            "' was not found on this stage";
-        throw Option::not_found(oss.str());
-    }
-    return iter->second;
-}
-
 std::vector<Option> Options::getOptions(std::string const& name) const
 {
     std::vector<Option> output;
@@ -157,16 +114,21 @@ std::vector<Option> Options::getOptions(std::string const& name) const
 }
 
 
-bool Options::hasOption(std::string const& name) const
+/**
+  Convert options to a string list appropriate for parsing with ProgramArgs.
+
+  \return  List of options as argument strings.
+*/
+StringList Options::toCommandLine() const
 {
-    try
+    StringList s;
+
+    for (const auto& op : m_options)
     {
-        (void)getOption(name);
-        return true;
+        const Option& o = op.second;
+        s.push_back(o.toArg());
     }
-    catch (Option::not_found)
-    {}
-    return false;
+    return s;
 }
 
 } // namespace pdal
diff --git a/src/PDALUtils.cpp b/src/PDALUtils.cpp
index cebc870..d832fa4 100644
--- a/src/PDALUtils.cpp
+++ b/src/PDALUtils.cpp
@@ -32,7 +32,11 @@
 * OF SUCH DAMAGE.
 ****************************************************************************/
 
+#include <arbiter.hpp>
+
 #include <pdal/PDALUtils.hpp>
+#include <pdal/Options.hpp>
+#include <pdal/util/FileUtils.hpp>
 
 using namespace std;
 
@@ -135,48 +139,6 @@ void toJSON(const MetadataNode& m, std::ostream& o, int level)
     // should be done?
 }
 
-
-void toJSON(const Options& opts, std::ostream& o, int level);
-void toJSON(const Option& opt, std::ostream& o, int level)
-{
-    std::string indent(level * 2, ' ');
-    std::string indent2((level + 1) * 2, ' ');
-
-    std::string quote("\"");
-    std::string name = quote + opt.getName() + quote;
-    std::string description = quote + opt.getDescription() + quote;
-    std::string value = quote + opt.getValue<std::string>() + quote;
-
-    o << indent << name << " :" << endl;
-    o << indent << "{" << endl;
-    o << indent2 << "\"value\" : " << value << "," << endl;
-    o << indent2 << "\"description\" : " << description << endl;
-
-    o << indent << "}";
-}
-
-
-void toJSON(const Options& opts, std::ostream& o, int level)
-{
-    const std::string indent(level * 2, ' ');
-
-    std::vector<Option> optList = opts.getOptions();
-    if (optList.empty())
-        return;
-
-    o << indent << "\"options\" :" << endl;
-    o << indent << "{" << endl;
-    for (auto oi = optList.begin(); oi != optList.end(); ++oi)
-    {
-        Option& opt = *oi;
-        toJSON(opt, o, level + 1);
-        if (oi != optList.rbegin().base() - 1)
-            o << ",";
-        o << endl;
-    }
-    o << indent << "}" << endl;
-}
-
 } // unnamed namespace
 
 namespace Utils
@@ -206,19 +168,170 @@ void toJSON(const MetadataNode& m, std::ostream& o)
     o << std::endl;
 }
 
-std::string toJSON(const Options& opts)
+namespace
 {
-    std::ostringstream o;
 
-    toJSON(opts, o);
-    return o.str();
+std::string tempFilename(const std::string& path)
+{
+    const std::string tempdir(arbiter::fs::getTempPath());
+    const std::string basename(arbiter::util::getBasename(path));
+
+    return arbiter::util::join(tempdir, basename);
+};
+
+// RAII handling of a temp file to make sure file gets deleted.
+class TempFile
+{
+public:
+    TempFile(const std::string path) : m_filename(path)
+    {}
+
+    virtual ~TempFile()
+        { FileUtils::deleteFile(m_filename); }
+
+    const std::string& filename()
+        { return m_filename; }
+
+private:
+    std::string m_filename;
+};
+
+class ArbiterOutStream : public std::ofstream
+{
+public:
+    ArbiterOutStream(const std::string& localPath,
+            const std::string& remotePath, std::ios::openmode mode) :
+        std::ofstream(localPath, mode), m_remotePath(remotePath),
+        m_localFile(localPath)
+    {}
+
+    virtual ~ArbiterOutStream()
+    {
+        close();
+        arbiter::Arbiter a;
+        a.put(m_remotePath, a.getBinary(m_localFile.filename()));
+    }
+
+private:
+    std::string m_remotePath;
+    TempFile m_localFile;
+};
+
+class ArbiterInStream : public std::ifstream
+{
+public:
+    ArbiterInStream(const std::string& localPath, const std::string& remotePath,
+            std::ios::openmode mode) :
+        m_localFile(localPath)
+    {
+        arbiter::Arbiter a;
+        a.put(localPath, a.getBinary(remotePath));
+        open(localPath, mode);
+    }
+
+private:
+    TempFile m_localFile;
+};
+
+}  // unnamed namespace
+
+/**
+  Create a file (may be on a supported remote filesystem).
+
+  \param path  Path to file to create.
+  \param asBinary  Whether the file should be written in binary mode.
+  \return  Pointer to the created stream, or NULL.
+*/
+std::ostream *createFile(const std::string& path, bool asBinary)
+{
+    arbiter::Arbiter a;
+    const bool remote(a.hasDriver(path) && a.isRemote(path));
+
+    ostream *ofs(nullptr);
+    if (remote)
+    {
+        try
+        {
+            ofs = new ArbiterOutStream(tempFilename(path), path,
+                asBinary ? ios::out | ios::binary : ios::out);
+        }
+        catch (arbiter::ArbiterError)
+        {}
+        if (ofs && !ofs->good())
+        {
+            delete ofs;
+            ofs = nullptr;
+        }
+    }
+    else
+        ofs = FileUtils::createFile(path, asBinary);
+    return ofs;
 }
 
-void toJSON(const Options& opts, std::ostream& o)
+
+/**
+  Open a file (potentially on a remote filesystem).
+
+  \param path  Path (potentially remote) of file to open.
+  \param asBinary  Whether the file should be opened binary.
+  \return  Pointer to stream opened for input.
+*/
+std::istream *openFile(const std::string& path, bool asBinary)
 {
-    o << "{" << endl;
-    pdal::toJSON(opts, o, 1);
-    o << "}" << endl;
+    arbiter::Arbiter a;
+    if (a.hasDriver(path) && a.isRemote(path))
+    {
+        try
+        {
+            return new ArbiterInStream(tempFilename(path), path,
+                asBinary ? ios::in | ios::binary : ios::in);
+        }
+        catch (arbiter::ArbiterError)
+        {
+            return nullptr;
+        }
+    }
+    return FileUtils::openFile(path, asBinary);
+}
+
+/**
+  Close an output stream.
+
+  \param out  Stream to close.
+*/
+void closeFile(std::ostream *out)
+{
+    FileUtils::closeFile(out);
+}
+
+
+/**
+  Close an input stream.
+
+  \param out  Stream to close.
+*/
+void closeFile(std::istream *in)
+{
+    FileUtils::closeFile(in);
+}
+
+
+/**
+  Check to see if a file exists.
+
+  \param path  Path to file.
+  \return  Whether the file exists or not.
+*/
+bool fileExists(const std::string& path)
+{
+    arbiter::Arbiter a;
+    if (a.hasDriver(path) && a.isRemote(path) && a.exists(path))
+    {
+        return true;
+    }
+
+    // Arbiter doesn't handle our STDIN hacks.
+    return FileUtils::fileExists(path);
 }
 
 } // namespace Utils
diff --git a/src/PipelineManager.cpp b/src/PipelineManager.cpp
index 6312e0b..0da337d 100644
--- a/src/PipelineManager.cpp
+++ b/src/PipelineManager.cpp
@@ -33,8 +33,7 @@
 ****************************************************************************/
 
 #include <pdal/PipelineManager.hpp>
-
-#include <pdal/util/FileUtils.hpp>
+#include <pdal/PDALUtils.hpp>
 
 #include "PipelineReaderXML.hpp"
 #include "PipelineReaderJSON.hpp"
@@ -42,10 +41,36 @@
 namespace pdal
 {
 
-// TODO(chambbj): what to do about pipelines specified via STDIN?
+PipelineManager::~PipelineManager()
+{
+    Utils::closeFile(m_input);
+}
+
+
 void PipelineManager::readPipeline(std::istream& input)
 {
-    PipelineReaderXML(*this).readPipeline(input); 
+    // Read stream into string.
+    std::string s(std::istreambuf_iterator<char>(input), {});
+
+    std::istringstream ss(s);
+    if (s.find("?xml") != std::string::npos)
+        PipelineReaderXML(*this).readPipeline(ss);
+    else if (s.find("\"pipeline\"") != std::string::npos)
+        PipelineReaderJSON(*this).readPipeline(ss);
+    else
+    {
+        try
+        {
+            PipelineReaderXML(*this).readPipeline(ss);
+        }
+        catch (pdal_error)
+        {
+            // Rewind to make sure the stream is properly positioned after
+            // attempting an XML pipeline.
+            ss.seekg(0);
+            PipelineReaderJSON(*this).readPipeline(ss);
+        }
+    }
 }
 
 
@@ -61,6 +86,12 @@ void PipelineManager::readPipeline(const std::string& filename)
         PipelineReaderJSON pipeReader(*this);
         return pipeReader.readPipeline(filename);
     }
+    else
+    {
+        Utils::closeFile(m_input);
+        m_input = Utils::openFile(filename);
+        readPipeline(*m_input);
+    }
 }
 
 
@@ -73,6 +104,7 @@ Stage& PipelineManager::addReader(const std::string& type)
         ss << "Couldn't create reader stage of type '" << type << "'.";
         throw pdal_error(ss.str());
     }
+    reader->setLog(m_log);
     reader->setProgressFd(m_progressFd);
     m_stages.push_back(reader);
     return *reader;
@@ -88,6 +120,7 @@ Stage& PipelineManager::addFilter(const std::string& type)
         ss << "Couldn't create filter stage of type '" << type << "'.";
         throw pdal_error(ss.str());
     }
+    filter->setLog(m_log);
     filter->setProgressFd(m_progressFd);
     m_stages.push_back(filter);
     return *filter;
@@ -103,14 +136,50 @@ Stage& PipelineManager::addWriter(const std::string& type)
         ss << "Couldn't create writer stage of type '" << type << "'.";
         throw pdal_error(ss.str());
     }
+    writer->setLog(m_log);
     writer->setProgressFd(m_progressFd);
     m_stages.push_back(writer);
     return *writer;
 }
 
 
+void PipelineManager::validateStageOptions() const
+{
+    // Make sure that the options specified are for relevant stages.
+    for (auto& si : m_stageOptions)
+    {
+        const std::string& stageName = si.first;
+        auto it = std::find_if(m_stages.begin(), m_stages.end(),
+            [stageName](Stage *s)
+            { return (s->getName() == stageName); });
+
+        // If the option stage name matches no created stage, then error.
+        if (it == m_stages.end())
+        {
+            std::ostringstream oss;
+            oss << "Argument references invalid/unused stage: '" <<
+                stageName << "'.";
+            throw pdal_error(oss.str());
+        }
+    }
+}
+
+
+QuickInfo PipelineManager::preview() const
+{
+    QuickInfo qi;
+
+    validateStageOptions();
+    Stage *s = getStage();
+    if (s)
+       qi = s->preview();
+    return qi;
+}
+
+
 void PipelineManager::prepare() const
 {
+    validateStageOptions();
     Stage *s = getStage();
     if (s)
        s->prepare(m_table);
@@ -146,4 +215,141 @@ MetadataNode PipelineManager::getMetadata() const
     return output;
 }
 
+
+Stage& PipelineManager::makeReader(const std::string& inputFile,
+    std::string driver)
+{
+    static Options nullOpts;
+
+    return makeReader(inputFile, driver, nullOpts);
+}
+
+
+Stage& PipelineManager::makeReader(const std::string& inputFile,
+    std::string driver, Options options)
+{
+    if (driver.empty())
+    {
+        driver = StageFactory::inferReaderDriver(inputFile);
+        if (driver.empty())
+            throw pdal_error("Cannot determine reader for input file: " +
+                inputFile);
+    }
+    if (!inputFile.empty())
+        options.replace("filename", inputFile);
+
+    Stage& reader = addReader(driver);
+    setOptions(reader, options);
+    return reader;
+}
+
+
+Stage& PipelineManager::makeFilter(const std::string& driver)
+{
+    static Options nullOps;
+
+    Stage& filter = addFilter(driver);
+    setOptions(filter, nullOps);
+    return filter;
+}
+
+
+Stage& PipelineManager::makeFilter(const std::string& driver, Options options)
+{
+    Stage& filter = addFilter(driver);
+    setOptions(filter, options);
+    return filter;
+}
+
+
+Stage& PipelineManager::makeFilter(const std::string& driver, Stage& parent)
+{
+    static Options nullOps;
+
+    return makeFilter(driver, parent, nullOps);
+}
+
+
+Stage& PipelineManager::makeFilter(const std::string& driver, Stage& parent,
+    Options options)
+{
+    Stage& filter = addFilter(driver);
+    setOptions(filter, options);
+    filter.setInput(parent);
+    return filter;
+}
+
+
+Stage& PipelineManager::makeWriter(const std::string& outputFile,
+    std::string driver)
+{
+    static Options nullOps;
+
+    return makeWriter(outputFile, driver, nullOps);
+}
+
+Stage& PipelineManager::makeWriter(const std::string& outputFile,
+    std::string driver, Options options)
+{
+    if (driver.empty())
+    {
+        driver = StageFactory::inferWriterDriver(outputFile);
+        if (driver.empty())
+            throw pdal_error("Cannot determine writer for output file: " +
+                outputFile);
+    }
+
+    if (!outputFile.empty())
+        options.replace("filename", outputFile);
+
+    auto& writer = addWriter(driver);
+    setOptions(writer, options);
+    return writer;
+}
+
+
+Stage& PipelineManager::makeWriter(const std::string& outputFile,
+    std::string driver, Stage& parent)
+{
+    static Options nullOps;
+
+    return makeWriter(outputFile, driver, parent, nullOps);
+}
+
+Stage& PipelineManager::makeWriter(const std::string& outputFile,
+    std::string driver, Stage& parent, Options options)
+{
+    Stage& writer = makeWriter(outputFile, driver, options);
+    writer.setInput(parent);
+    return writer;
+}
+
+
+void PipelineManager::setOptions(Stage& stage, const Options& addOps)
+{
+    // First apply common options.
+    stage.setOptions(m_commonOptions);
+
+    // Apply additional reader/writer options, making sure they replace any
+    // common options.
+    stage.removeOptions(addOps);
+    stage.addOptions(addOps);
+
+    // Apply options provided on the command line, overriding others.
+    Options& ops = stageOptions(stage);
+    stage.removeOptions(ops);
+    stage.addOptions(ops);
+}
+
+
+Options& PipelineManager::stageOptions(Stage& stage)
+{
+    static Options nullOpts;
+
+    auto oi = m_stageOptions.find(stage.getName());
+    if (oi == m_stageOptions.end())
+        return nullOpts;
+    return oi->second;
+}
+
 } // namespace pdal
diff --git a/src/PipelineReaderJSON.cpp b/src/PipelineReaderJSON.cpp
index 7342a97..ddc5af2 100644
--- a/src/PipelineReaderJSON.cpp
+++ b/src/PipelineReaderJSON.cpp
@@ -36,389 +36,281 @@
 
 #include <pdal/Filter.hpp>
 #include <pdal/PipelineManager.hpp>
+#include <pdal/PluginManager.hpp>
 #include <pdal/Options.hpp>
-#include <pdal/util/FileUtils.hpp>
+#include <pdal/PDALUtils.hpp>
 #include <pdal/util/Utils.hpp>
 
 #include <json/json.h>
-#include <json/json-forwards.h>
 
 #include <memory>
 #include <vector>
 
-#ifndef _WIN32
-#include <wordexp.h>
-#endif
-
 namespace pdal
 {
 
-// ------------------------------------------------------------------------
+PipelineReaderJSON::PipelineReaderJSON(PipelineManager& manager) :
+    m_manager(manager)
+{}
 
-// this class helps keep tracks of what child nodes we've seen, so we
-// can keep all the error checking in one place
-class PipelineReaderJSON::StageParserContext
-{
-public:
-    enum Cardinality { None, One, Many };
 
-    StageParserContext()
-        : m_numTypes(0)
-        , m_cardinality(One)
-        , m_numStages(0)
-    {}
+void PipelineReaderJSON::parsePipeline(Json::Value& tree)
+{
+    std::map<std::string, Stage*> tags;
+    std::vector<Stage*> inputs;
 
-    void setCardinality(Cardinality cardinality)
+    Json::ArrayIndex last = tree.size() - 1;
+    for (Json::ArrayIndex i = 0; i < tree.size(); ++i)
     {
-        m_cardinality = cardinality;
-    }
+        Json::Value& node = tree[i];
 
-    void addType()
-    {
-        ++m_numTypes;
-    }
+        std::string filename;
+        std::string tag;
+        std::string type;
+        std::vector<Stage*> specifiedInputs;
+        Options options;
 
-    int getNumTypes()
-    {
-        return m_numTypes;
-    }
+        // strings are assumed to be filenames
+        if (node.isString())
+        {
+            filename = node.asString();
+        }
+        else
+        {
+            type = extractType(node);
+            filename = extractFilename(node);
+            tag = extractTag(node, tags);
+            specifiedInputs = extractInputs(node, tags);
+            if (!specifiedInputs.empty())
+                inputs = specifiedInputs;
+            options = extractOptions(node);
+        }
 
-    void addStage()
-    {
-        ++m_numStages;
-    }
+        Stage *s = nullptr;
 
-    void addUnknown(const std::string& name)
-    {
-        throw pdal_error("PipelineReaderJSON: "
-                         "unknown child of element: " + name);
-    }
-
-    void validate()
-    {
-        if (m_numTypes == 0)
-            throw pdal_error("PipelineReaderJSON: "
-                             "expected Type element missing");
-        if (m_numTypes > 1)
-            throw pdal_error("PipelineReaderJSON: "
-                             "extra Type element found");
-
-        if (m_cardinality == None)
+        // The type is inferred from a filename as a reader if it's not
+        // the last stage or if there's only one.
+        if ((type.empty() && (i == 0 || i != last)) ||
+            Utils::startsWith(type, "readers."))
         {
-            if (m_numStages != 0)
-                throw pdal_error("PipelineReaderJSON: "
-                                 "found child stages where none were expected");
+            s = &m_manager.makeReader(filename, type, options);
+            if (specifiedInputs.size())
+                throw pdal_error("JSON pipeline: Inputs not permitted for "
+                    " reader: '" + filename + "'.");
+            inputs.push_back(s);
         }
-        if (m_cardinality == One)
+        else if (type.empty() || Utils::startsWith(type, "writers."))
         {
-            if (m_numStages == 0)
-                throw pdal_error("PipelineReaderJSON: "
-                                 "expected child stage missing");
-            if (m_numStages > 1)
-                throw pdal_error("PipelineReaderJSON: "
-                                 "extra child stages found");
+            s = &m_manager.makeWriter(filename, type, options);
+            for (Stage *ts : inputs)
+                s->setInput(*ts);
+            inputs.clear();
         }
-        if (m_cardinality == Many)
+        else
         {
-            if (m_numStages == 0)
-                throw pdal_error("PipelineReaderJSON: "
-                                 "expected child stage missing");
+            if (filename.size())
+                options.add("filename", filename);
+            s = &m_manager.makeFilter(type, options);
+            for (Stage *ts : inputs)
+                s->setInput(*ts);
+            inputs.clear();
+            inputs.push_back(s);
         }
+        // s should be valid at this point.  makeXXX will throw if the stage
+        // couldn't be constructed.
+        if (tag.size())
+            tags[tag] = s;
     }
+}
+
+
+void PipelineReaderJSON::readPipeline(std::istream& input)
+{
+    Json::Value root;
+    Json::Reader jsonReader;
+    if (!jsonReader.parse(input, root))
+        throw pdal_error("JSON pipeline: Unable to parse pipeline");
 
-private:
-    int m_numTypes;
-    Cardinality m_cardinality; // num child stages allowed
-    int m_numStages;
-};
+    Json::Value& subtree = root["pipeline"];
+    if (!subtree)
+        throw pdal_error("JSON pipeline: Root element is not a Pipeline");
+    parsePipeline(subtree);
+}
 
 
-PipelineReaderJSON::PipelineReaderJSON(PipelineManager& manager, bool isDebug,
-                                       uint32_t verboseLevel) :
-    m_manager(manager) , m_isDebug(isDebug) , m_verboseLevel(verboseLevel)
+void PipelineReaderJSON::readPipeline(const std::string& filename)
 {
-    if (m_isDebug)
+    m_inputJSONFile = filename;
+
+    std::istream* input = Utils::openFile(filename);
+    if (!input)
     {
-        Option opt("debug", true);
-        m_baseOptions.add(opt);
+        throw pdal_error("JSON pipeline: Unable to open stream for "
+            "file \"" + filename + "\"");
     }
-    if (m_verboseLevel)
+
+    try
     {
-        Option opt("verbose", m_verboseLevel);
-        m_baseOptions.add(opt);
+        readPipeline(*input);
     }
+    catch (...)
+    {
+        Utils::closeFile(input);
+        throw;
+    }
+
+    Utils::closeFile(input);
+    m_inputJSONFile = "";
 }
 
 
-Stage *PipelineReaderJSON::parseReaderByFilename(const std::string& filename)
+std::string PipelineReaderJSON::extractType(Json::Value& node)
 {
-    Options options;
-
-    StageParserContext context;
     std::string type;
 
-    try
+    if (node.isMember("type"))
     {
-        type = StageFactory::inferReaderDriver(filename);
-        if (!type.empty())
+        Json::Value& val = node["type"];
+        if (!val.isNull())
         {
-            context.addType();
+            if (val.isString())
+                type = val.asString();
+            else
+                throw pdal_error("JSON pipeline: 'type' must be specified as "
+                        "a string.");
         }
-
-        Option opt("filename", filename);
-        options += opt;
+        node.removeMember("type");
+        if (node.isMember("type"))
+            throw pdal_error("JSON pipeline: found duplicate 'type' "
+               "entry in stage definition.");
     }
-    catch (Option::not_found)
-    {}
-
-    context.setCardinality(StageParserContext::None);
-    context.validate();
-
-    Stage& reader(m_manager.addReader(type));
-    reader.setOptions(options);
-
-    return &reader;
+    return type;
 }
 
 
-Stage *PipelineReaderJSON::parseWriterByFilename(const std::string& filename)
+std::string PipelineReaderJSON::extractFilename(Json::Value& node)
 {
-    Options options;
-
-    StageParserContext context;
-    std::string type;
+    std::string filename;
 
-    try
+    if (node.isMember("filename"))
     {
-        type = StageFactory::inferWriterDriver(filename);
-        if (type.empty())
-            throw pdal_error("PipelineReaderJSON: "
-                             "Cannot determine output file type of " +
-                             filename);
-
-        options += StageFactory::inferWriterOptionsChanges(filename);
-        context.addType();
+        Json::Value& val = node["filename"];
+        if (!val.isNull())
+        {
+            if (val.isString())
+                filename = val.asString();
+            else
+                throw pdal_error("JSON pipeline: 'filename' must be "
+                    "specified as a string.");
+        }
+        node.removeMember("filename");
+        if (node.isMember("filename"))
+            throw pdal_error("JSON pipeline: found duplicate 'filename' "
+               "entry in stage definition.");
     }
-    catch (Option::not_found)
-    {}
-
-    context.setCardinality(StageParserContext::None);
-    context.validate();
-
-    Stage& writer(m_manager.addWriter(type));
-    writer.setOptions(options);
-
-    return &writer;
+    return filename;
 }
 
 
-void PipelineReaderJSON::parseElement_Pipeline(const Json::Value& tree)
+std::string PipelineReaderJSON::extractTag(Json::Value& node, TagMap& tags)
 {
-    std::map<std::string, Stage*> tags;
-    std::vector<Stage*> stages;
-    std::vector<Stage*> firstReaders;
-    bool onlyReaders = true;
-    bool firstNonReader = true;
+    std::string tag;
 
-    size_t i = 0;
-    for (auto const& node : tree)
+    if (node.isMember("tag"))
     {
-        std::vector<std::string> inputs;
-        Stage* stage = NULL;
-
-        bool curStageIsReader = false;
-
-        // strings are assumed to be filenames
-        if (node.isString())
+        Json::Value& val = node["tag"];
+        if (!val.isNull())
         {
-            std::string filename = node.asString();
-            // surely not common, but if there is only one string, it must be a
-            // reader and not a writer
-            // all filenames assumed to be readers except the last.
-            if (tree.size() == 1 || (i < tree.size()-1))
+            if (val.isString())
             {
-                stage = parseReaderByFilename(filename);
-                if (onlyReaders)
-                    firstReaders.push_back(stage);
-                curStageIsReader = true;
+                tag = val.asString();
+                if (tags.find(tag) != tags.end())
+                    throw pdal_error("JSON pipeline: duplicate tag '" +
+                        tag + "'.");
             }
             else
-            {
-                stage = parseWriterByFilename(filename);
-                onlyReaders = false;
-            }
+                throw pdal_error("JSON pipeline: 'tag' must be "
+                    "specified as a string.");
         }
-        else
-        {
-            bool filenameIsSet = false;
-
-            std::string type, filename, tag;
-            if (node.isMember("type"))
-                type = node["type"].asString();
-            if (node.isMember("filename"))
-                filename = node["filename"].asString();
-            if (node.isMember("tag"))
-                tag = node["tag"].asString();
-            if (node.isMember("inputs"))
-            {
-                for (auto const& input : node["inputs"])
-                {
-                    if (input.isString())
-                        inputs.push_back(input.asString());
-                    else
-                        throw pdal_error("PipelineReaderJSON: "
-                                         "Stage inputs must be specified as "
-                                         "a string");
-                }
-            }
-
-            if (!type.empty())
-            {
-                if (Utils::startsWith(type, "readers."))
-                {
-                    stage = &m_manager.addReader(type);
-                    if (onlyReaders)
-                        firstReaders.push_back(stage);
-                    curStageIsReader = true;
-                }
-                else if (Utils::startsWith(type, "filters."))
-                {
-                    stage = &m_manager.addFilter(type);
-                    onlyReaders = false;
-                }
-                else if (Utils::startsWith(type, "writers."))
-                {
-                    stage = &m_manager.addWriter(type);
-                    onlyReaders = false;
-                }
-                else
-                    throw pdal_error("PipelineReaderJSON: "
-                                     "Could not determine type of " + type);
-            }
-            else if (!filename.empty())
-            {
-                if (i < tree.size()-1)
-                {
-                    stage = parseReaderByFilename(filename);
-                    if (onlyReaders)
-                        firstReaders.push_back(stage);
-                    curStageIsReader = true;
-                    filenameIsSet = true;
-                }
-                else
-                {
-                    stage = parseWriterByFilename(filename);
-                    filenameIsSet = true;
-                    onlyReaders = false;
-                }
-            }
-
-            if (!tag.empty())
-            {
-                if (tags[tag])
-                    throw pdal_error("PipelineReaderJSON: "
-                                     "Duplicate tag " + tag);
-
-                tags[tag] = stage;
-            }
+        node.removeMember("tag");
+        if (node.isMember("tag"))
+            throw pdal_error("JSON pipeline: found duplicate 'tag' "
+               "entry in stage definition.");
+    }
+    return tag;
+}
 
-            Options options(m_baseOptions);
-            for (auto const& name : node.getMemberNames())
-            {
-                if (name.compare("type") == 0)
-                    continue;
-                if (name.compare("inputs") == 0)
-                    continue;
-                if (name.compare("tag") == 0)
-                    continue;
-                if (filenameIsSet && name.compare("filename") == 0)
-                    continue;
-
-                Option opt(name, node[name].asString());
-                options.add(opt);
-            }
 
-            stage->addOptions(options);
-        }
+std::vector<Stage *> PipelineReaderJSON::extractInputs(Json::Value& node,
+    TagMap& tags)
+{
+    std::vector<Stage *> inputs;
+    std::string filename;
 
-        if (!inputs.empty())
-        {
-            for (auto const& input : inputs)
-            {
-                if (!tags[input])
-                    throw pdal_error("PipelineReaderJSON: "
-                                     "Invalid pipeline, undefined stage " +
-                                     input);
-                stage->setInput(*tags[input]);
-            }
-        }
-        else
+    if (node.isMember("inputs"))
+    {
+        Json::Value& val = node["inputs"];
+        if (!val.isNull())
         {
-            if (i && !curStageIsReader)
+            for (const Json::Value& input : node["inputs"])
             {
-                if (firstReaders.size() > 0 && firstNonReader)
+                if (input.isString())
                 {
-                    firstNonReader = false;
-                    for (Stage* s : firstReaders)
-                        stage->setInput(*s);
+                    std::string tag = input.asString();
+                    auto ii = tags.find(tag);
+                    if (ii == tags.end())
+                        throw pdal_error("JSON pipeline: Invalid pipeline: "
+                            "undefined stage tag '" + tag + "'.");
+                    else
+                        inputs.push_back(ii->second);
                 }
                 else
-                {
-                    stage->setInput(*stages[i-1]);
-                }
+                    throw pdal_error("JSON pipeline: 'inputs' tag must "
+                        " be specified as a string.");
             }
         }
-
-        stages.push_back(stage);
-
-        i++;
+        node.removeMember("inputs");
+        if (node.isMember("inputs"))
+            throw pdal_error("JSON pipeline: found duplicate 'inputs' "
+               "entry in stage definition.");
     }
+    return inputs;
 }
 
 
-void PipelineReaderJSON::readPipeline(std::istream& input)
-{
-    Json::Value root;
-    Json::Reader jsonReader;
-    if (!jsonReader.parse(input, root))
-        throw pdal_error("PipelineReaderJSON: unable to parse pipeline");
-
-    Json::Value subtree = root["pipeline"];
-    if (!subtree)
-        throw pdal_error("PipelineReaderJSON: root element is not a Pipeline");
-    parseElement_Pipeline(subtree);
-}
-
-
-void PipelineReaderJSON::readPipeline(const std::string& filename)
+Options PipelineReaderJSON::extractOptions(Json::Value& node)
 {
-    m_inputJSONFile = filename;
-
-    std::istream* input = FileUtils::openFile(filename);
-    if (!input)
-    {
-        throw pdal_error("PipelineReaderJSON: "
-                         "unable to open stream for file \"" + filename + "\"");
-    }
+    Options options;
 
-    try
-    {
-        readPipeline(*input);
-    }
-    catch (const pdal_error& error)
+    for (const std::string& name : node.getMemberNames())
     {
-        throw error;
-    }
-    catch (...)
-    {
-        FileUtils::closeFile(input);
-        throw pdal_error("PipelineReaderJSON: "
-                         "unable to process pipeline file \""+ filename + "\". " "JSON is invalid.");
-    }
+        if (name == "plugin")
+        {
+            PluginManager::loadPlugin(node[name].asString());
 
-    FileUtils::closeFile(input);
+            // Don't actually put a "plugin" option on
+            // any stage
+            continue;
+        }
 
-    m_inputJSONFile = "";
+        if (node[name].isString())
+            options.add(name, node[name].asString());
+        else if (node[name].isInt())
+            options.add(name, node[name].asInt64());
+        else if (node[name].isUInt())
+            options.add(name, node[name].asUInt64());
+        else if (node[name].isDouble())
+            options.add(name, node[name].asDouble());
+        else if (node[name].isBool())
+            options.add(name, node[name].asBool());
+        else if (node[name].isNull())
+            options.add(name, "");
+        else
+            throw pdal_error("JSON pipeline: Value of stage option '" +
+                name + "' cannot be converted.");
+    }
+    node.clear();
+    return options;
 }
 
 } // namespace pdal
diff --git a/src/PipelineReaderJSON.hpp b/src/PipelineReaderJSON.hpp
index 6c74507..70ded84 100644
--- a/src/PipelineReaderJSON.hpp
+++ b/src/PipelineReaderJSON.hpp
@@ -37,16 +37,18 @@
 #include <pdal/pdal_internal.hpp>
 #include <pdal/StageFactory.hpp>
 
-#include <json/json-forwards.h>
+#include <json/json.h>
 
 #include <vector>
 #include <string>
 
+#include <pdal/Options.hpp>
+#include <pdal/StageFactory.hpp>
 
 namespace pdal
 {
 
-class Options;
+class Stage;
 class PipelineManager;
 
 class PDAL_DLL PipelineReaderJSON
@@ -54,33 +56,19 @@ class PDAL_DLL PipelineReaderJSON
     friend class PipelineManager;
 
 private:
-    class StageParserContext;
-
-    PipelineReaderJSON(PipelineManager&, bool debug=false,
-                   uint32_t verbose = 0);
-
-    /**
-      Read a JSON pipeline file into a PipelineManager.
+    typedef std::map<std::string, Stage *> TagMap;
 
-      \param filename  Filename to read.
-    */
+    PipelineReaderJSON(PipelineManager&);
     void readPipeline(const std::string& filename);
-
-    /**
-      Read a JSON pipeline file from a stream into a PipelineManager.
-
-      \param input  Stream to read.
-    */
     void readPipeline(std::istream& input);
-
-    void parseElement_Pipeline(const Json::Value&);
-    Stage *parseReaderByFilename(const std::string& filename);
-    Stage *parseWriterByFilename(const std::string& filename);
+    void parsePipeline(Json::Value&);
+    std::string extractType(Json::Value& node);
+    std::string extractFilename(Json::Value& node);
+    std::string extractTag(Json::Value& node, TagMap& tags);
+    std::vector<Stage *> extractInputs(Json::Value& node, TagMap& tags);
+    Options extractOptions(Json::Value& node);
 
     PipelineManager& m_manager;
-    bool m_isDebug;
-    uint32_t m_verboseLevel;
-    Options m_baseOptions;
     std::string m_inputJSONFile;
 
     PipelineReaderJSON& operator=(const PipelineReaderJSON&); // not implemented
diff --git a/src/PipelineReaderXML.cpp b/src/PipelineReaderXML.cpp
index c1cec56..120ccba 100644
--- a/src/PipelineReaderXML.cpp
+++ b/src/PipelineReaderXML.cpp
@@ -35,6 +35,7 @@
 #include "PipelineReaderXML.hpp"
 
 #include <pdal/Filter.hpp>
+#include <pdal/PDALUtils.hpp>
 #include <pdal/PipelineManager.hpp>
 #include <pdal/PluginManager.hpp>
 #include <pdal/Options.hpp>
@@ -94,7 +95,8 @@ public:
     void validate()
     {
         if (m_numTypes == 0)
-            throw pdal_error("PipelineReaderXML: expected Type element missing");
+            throw pdal_error("PipelineReaderXML: expected Type element "
+                "missing");
         if (m_numTypes > 1)
             throw pdal_error("PipelineReaderXML: extra Type element found");
 
@@ -127,21 +129,9 @@ private:
 };
 
 
-PipelineReaderXML::PipelineReaderXML(PipelineManager& manager, bool isDebug,
-        uint32_t verboseLevel) :
-    m_manager(manager) , m_isDebug(isDebug) , m_verboseLevel(verboseLevel)
-{
-    if (m_isDebug)
-    {
-        Option opt("debug", true);
-        m_baseOptions.add(opt);
-    }
-    if (m_verboseLevel)
-    {
-        Option opt("verbose", m_verboseLevel);
-        m_baseOptions.add(opt);
-    }
-}
+PipelineReaderXML::PipelineReaderXML(PipelineManager& manager) :
+    m_manager(manager)
+{}
 
 
 Option PipelineReaderXML::parseElement_Option(const ptree& tree)
@@ -160,15 +150,14 @@ Option PipelineReaderXML::parseElement_Option(const ptree& tree)
     std::string name = attrs["name"];
     std::string value = tree.get_value<std::string>();
     Utils::trim(value);
-    Option option(name, value);
 
     // filenames in the XML are fixed up as follows:
     //   - if absolute path, leave it alone
     //   - if relative path, make it absolute using the XML file's directory
     // The toAbsolutePath function does exactly that magic for us.
-    if (option.getName() == "filename")
+    if (name == "filename")
     {
-        std::string path = option.getValue<std::string>();
+        std::string path = value;
 #ifndef _WIN32
         wordexp_t result;
         if (wordexp(path.c_str(), &result, 0) == 0)
@@ -186,13 +175,13 @@ Option PipelineReaderXML::parseElement_Option(const ptree& tree)
 
             assert(FileUtils::isAbsolutePath(path));
         }
-        option.setValue(path);
+        return Option(name, path);
     }
-    else if (option.getName() == "plugin")
+    else if (name == "plugin")
     {
-       PluginManager::loadPlugin(option.getValue<std::string>());
+       PluginManager::loadPlugin(value);
     }
-    return option;
+    return Option(name, value);
 }
 
 
@@ -222,9 +211,9 @@ Stage *PipelineReaderXML::parseElement_anystage(const std::string& name,
 
 Stage *PipelineReaderXML::parseElement_Reader(const ptree& tree)
 {
-    Options options(m_baseOptions);
-
+    Options options;
     StageParserContext context;
+    std::string filename;
     context.setCardinality(StageParserContext::None);
 
     map_t attrs;
@@ -243,6 +232,8 @@ Stage *PipelineReaderXML::parseElement_Reader(const ptree& tree)
         else if (name == "Option")
         {
             Option option = parseElement_Option(subtree);
+            if (option.getName() == "filename")
+                filename = option.getValue();
             options.add(option);
         }
         else if (name == "Metadata")
@@ -260,37 +251,19 @@ Stage *PipelineReaderXML::parseElement_Reader(const ptree& tree)
     if (attrs.count("type"))
     {
         type = attrs["type"];
-        context.addType();
     }
 
-    // If we aren't provided a type, try to infer the type from the filename
-    // #278
-    if (context.getNumTypes() == 0)
-    {
-        try
-        {
-            const std::string filename = options.getValueOrThrow<std::string>("filename");
-            type = StageFactory::inferReaderDriver(filename);
-            if (!type.empty())
-            {
-                context.addType();
-            }
-        }
-        catch (Option::not_found)
-        {}
-    }
+    Stage& reader = m_manager.makeReader(filename, type, options);
 
+    context.addType();
     context.validate();
-
-    Stage& reader(m_manager.addReader(type));
-    reader.setOptions(options);
     return &reader;
 }
 
 
 Stage *PipelineReaderXML::parseElement_Filter(const ptree& tree)
 {
-    Options options(m_baseOptions);
+    Options options;
 
     StageParserContext context;
 
@@ -329,16 +302,13 @@ Stage *PipelineReaderXML::parseElement_Filter(const ptree& tree)
 
     std::string type;
     if (attrs.count("type"))
-    {
         type = attrs["type"];
-        context.addType();
-    }
 
-    Stage& filter(m_manager.addFilter(type));
-    filter.setOptions(options);
+    Stage& filter = m_manager.makeFilter(type, options);
     for (auto sp : prevStages)
         filter.setInput(*sp);
     context.setCardinality(StageParserContext::Many);
+    context.addType();
     context.validate();
     return &filter;
 }
@@ -369,8 +339,9 @@ void PipelineReaderXML::collect_attributes(map_t& attrs, const ptree& tree)
 
 Stage *PipelineReaderXML::parseElement_Writer(const ptree& tree)
 {
-    Options options(m_baseOptions);
+    Options options;
     StageParserContext context;
+    std::string filename;
 
     map_t attrs;
     collect_attributes(attrs, tree);
@@ -388,6 +359,8 @@ Stage *PipelineReaderXML::parseElement_Writer(const ptree& tree)
         else if (name == "Option")
         {
             Option option = parseElement_Option(subtree);
+            if (option.getName() == "filename")
+                filename = option.getValue();
             options.add(option);
         }
         else if (name == "Metadata")
@@ -413,10 +386,9 @@ Stage *PipelineReaderXML::parseElement_Writer(const ptree& tree)
     }
 
     context.validate();
-    Stage& writer(m_manager.addWriter(type));
+    Stage& writer = m_manager.makeWriter(filename, type, options);
     for (auto sp : prevStages)
         writer.setInput(*sp);
-    writer.setOptions(options);
     return &writer;
 }
 
@@ -426,8 +398,6 @@ void PipelineReaderXML::parseElement_Pipeline(const ptree& tree)
     Stage *stage = NULL;
     Stage *writer = NULL;
 
-    Options o(m_baseOptions);
-
     map_t attrs;
     collect_attributes(attrs, tree);
 
@@ -486,7 +456,7 @@ void PipelineReaderXML::readPipeline(const std::string& filename)
 {
     m_inputXmlFile = filename;
 
-    std::istream* input = FileUtils::openFile(filename);
+    std::istream* input = Utils::openFile(filename);
 
     try
     {
@@ -498,14 +468,14 @@ void PipelineReaderXML::readPipeline(const std::string& filename)
     }
     catch (...)
     {
-        FileUtils::closeFile(input);
+        Utils::closeFile(input);
         std::ostringstream oss;
         oss << "Unable to process pipeline file \"" << filename << "\"." <<
             "  XML is invalid.";
         throw pdal_error(oss.str());
     }
 
-    FileUtils::closeFile(input);
+    Utils::closeFile(input);
 
     m_inputXmlFile = "";
 }
diff --git a/src/PipelineReaderXML.hpp b/src/PipelineReaderXML.hpp
index db3c229..6d84b71 100644
--- a/src/PipelineReaderXML.hpp
+++ b/src/PipelineReaderXML.hpp
@@ -55,8 +55,7 @@ private:
     class StageParserContext;
 
 public:
-    PipelineReaderXML(PipelineManager&, bool debug=false,
-        uint32_t verbose = 0);
+    PipelineReaderXML(PipelineManager&);
 
     /**
       Read an XML pipeline file into a PipelineManager.
@@ -89,9 +88,6 @@ private:
 
 private:
     PipelineManager& m_manager;
-    bool m_isDebug;
-    uint32_t m_verboseLevel;
-    Options m_baseOptions;
     std::string m_inputXmlFile;
 
     PipelineReaderXML& operator=(const PipelineReaderXML&); // not implemented
diff --git a/src/PipelineWriter.cpp b/src/PipelineWriter.cpp
index bab7ec2..0e787a0 100644
--- a/src/PipelineWriter.cpp
+++ b/src/PipelineWriter.cpp
@@ -37,7 +37,6 @@
 #include <pdal/Metadata.hpp>
 #include <pdal/PDALUtils.hpp>
 #include <pdal/Stage.hpp>
-#include <pdal/util/FileUtils.hpp>
 
 namespace pdal
 {
@@ -76,9 +75,9 @@ namespace PipelineWriter
 
 PDAL_DLL void writePipeline(Stage *stage, const std::string& filename)
 {
-    std::ostream *out = FileUtils::createFile(filename, false);
+    std::ostream *out = Utils::createFile(filename, false);
     writePipeline(stage, *out);
-    FileUtils::closeFile(out);
+    Utils::closeFile(out);
 }
 
 PDAL_DLL void writePipeline(Stage *stage, std::ostream& strm)
diff --git a/src/PluginManager.cpp b/src/PluginManager.cpp
index 8d411c8..7e83831 100644
--- a/src/PluginManager.cpp
+++ b/src/PluginManager.cpp
@@ -43,7 +43,6 @@
 #include <pdal/util/Algorithm.hpp>
 #include <pdal/util/FileUtils.hpp>
 #include <pdal/util/Utils.hpp>
-#include <pdal/Log.hpp>
 
 #include "DynamicLibrary.hpp"
 
@@ -61,7 +60,7 @@ static PluginManager s_instance;
 
 #if defined(__APPLE__) && defined(__MACH__)
     const std::string dynamicLibraryExtension(".dylib");
-#elif defined(__linux__) || defined(__FreeBSD_kernel__)
+#elif defined(__linux__) || defined(__FreeBSD_kernel__) || defined(__GNU__)
     const std::string dynamicLibraryExtension(".so");
 #elif defined _WIN32
     const std::string dynamicLibraryExtension(".dll");
@@ -80,6 +79,30 @@ bool pluginTypeValid(std::string pathname, PF_PluginType type)
             type & PF_PluginType_Writer));
 }
 
+StringList pluginSearchPaths()
+{
+    StringList searchPaths;
+    std::string envOverride;
+
+    Utils::getenv("PDAL_DRIVER_PATH", envOverride);
+
+    if (!envOverride.empty())
+        searchPaths = Utils::split2(envOverride, ':');
+    else
+    {
+        StringList standardPaths = { "./lib", "../lib", "../bin" };
+        for (std::string& s : standardPaths)
+        {
+            if (FileUtils::toAbsolutePath(s) !=
+                FileUtils::toAbsolutePath(PDAL_PLUGIN_INSTALL_PATH))
+                searchPaths.push_back(s);
+        }
+        searchPaths.push_back(PDAL_PLUGIN_INSTALL_PATH);
+    }
+    return searchPaths;
+}
+
+
 } // unnamed namespace;
 
 
@@ -113,31 +136,29 @@ void PluginManager::loadAll(int type)
 
 void PluginManager::l_loadAll(PF_PluginType type)
 {
-    std::string pluginDir;
-    std::string driver_path("PDAL_DRIVER_PATH");
-    Utils::getenv(driver_path, pluginDir);
-
-    // If we don't have a driver path, defaults are set.
-    if (pluginDir.empty())
-    {
-        std::ostringstream oss;
-        oss << PDAL_PLUGIN_INSTALL_PATH <<
-            ":/usr/local/lib:./lib:../lib:../bin";
-        pluginDir = oss.str();
-    }
+    for (const auto& pluginPath : pluginSearchPaths())
+        loadAll(pluginPath, type);
+}
 
-    std::vector<std::string> pluginPathVec = Utils::split2(pluginDir, ':');
 
-    for (const auto& pluginPath : pluginPathVec)
-        loadAll(pluginPath, type);
+StringList PluginManager::test_pluginSearchPaths()
+{
+    return pluginSearchPaths();
 }
 
+
 StringList PluginManager::names(int typeMask)
 {
     return s_instance.l_names(typeMask);
 }
 
 
+void PluginManager::setLog(LogPtr& log)
+{
+    s_instance.m_log = log;
+}
+
+
 StringList PluginManager::l_names(int typeMask)
 {
     StringList l;
@@ -193,6 +214,8 @@ void PluginManager::loadAll(const std::string& pluginDirectory, int type)
 
     if (pluginDirectoryValid)
     {
+        m_log->get(LogLevel::Debug) << "Loading plugins from directory " <<
+            pluginDirectory << std::endl;
         StringList files = FileUtils::directoryList(pluginDirectory);
         for (auto file : files)
         {
@@ -222,7 +245,7 @@ bool PluginManager::l_initializePlugin(PF_InitFunc initFunc)
 }
 
 
-PluginManager::PluginManager()
+PluginManager::PluginManager() : m_log(new Log("PDAL", &std::clog))
 {
     m_version.major = 1;
     m_version.minor = 0;
@@ -232,7 +255,7 @@ PluginManager::PluginManager()
 PluginManager::~PluginManager()
 {
     if (!shutdown())
-        Log("PDAL", "stderr").get(LogLevel::Error) <<
+        m_log->get(LogLevel::Error) <<
             "Error destroying PluginManager" << std::endl;
 }
 
@@ -324,28 +347,10 @@ bool PluginManager::guessLoadByPath(const std::string& driverName)
     std::vector<std::string> driverNameVec;
     driverNameVec = Utils::split2(driverName, '.');
 
-    std::string pluginName = "libpdal_plugin_" + driverNameVec[0] + "_" +
-        driverNameVec[1];
-
-    std::string pluginDir;
-    std::string driver_path("PDAL_DRIVER_PATH");
-    Utils::getenv(driver_path, pluginDir);
-
-    // Default path below if not set.
-    if (pluginDir.empty())
-    {
-        std::ostringstream oss;
-        oss << PDAL_PLUGIN_INSTALL_PATH <<
-            ":/usr/local/lib:./lib:../lib:../bin";
-        pluginDir = oss.str();
-    }
-
-    Log("PDAL", "stderr").get(LogLevel::Debug) <<
-        "Plugin search path '" << pluginDir << "'" << std::endl;
-
-    std::vector<std::string> pluginPathVec = Utils::split2(pluginDir, ':');
-    for (const auto& pluginPath : pluginPathVec)
+    for (const auto& pluginPath : pluginSearchPaths())
     {
+        m_log->get(LogLevel::Debug) <<
+           "Plugin search path: '" << pluginPath << "'" << std::endl;
         if (!FileUtils::fileExists(pluginPath) ||
             !FileUtils::isDirectory(pluginPath))
             continue;
@@ -400,31 +405,33 @@ bool PluginManager::loadByPath(const std::string& pluginPath, int type)
     // If we are a valid type, and we're not yet already
     // loaded in the LibraryMap, load it.
 
-    Log log("PDAL", "stderr");
-
     if (pluginTypeValid(filename, type) && !libraryLoaded(pluginPath))
     {
         std::string errorString;
         auto completePath(FileUtils::toAbsolutePath(pluginPath));
 
-        log.get(LogLevel::Debug) << "Attempting to load plugin '" <<
+        m_log->get(LogLevel::Debug) << "Attempting to load plugin '" <<
             completePath << "'." << std::endl;
 
         if (DynamicLibrary *d = loadLibrary(completePath, errorString))
         {
-            log.get(LogLevel::Debug) << "Loaded plugin '" << completePath <<
+            m_log->get(LogLevel::Debug) << "Loaded plugin '" << completePath <<
                 "'." << std::endl;
             if (PF_InitFunc initFunc =
                     (PF_InitFunc)(d->getSymbol("PF_initPlugin")))
             {
                 loaded = initializePlugin(initFunc);
-                log.get(LogLevel::Debug) << "Initialized plugin '" <<
+                m_log->get(LogLevel::Debug) << "Initialized plugin '" <<
                     completePath << "'." << std::endl;
             }
             else
-                log.get(LogLevel::Error) << "Failed to initialize plugin function for plugin '" <<
+                m_log->get(LogLevel::Error) <<
+                    "Failed to initialize plugin function for plugin '" <<
                     completePath << "'." << std::endl;
         }
+        else
+            m_log->get(LogLevel::Error) << "Plugin '" << completePath <<
+                "' found but failed to load: " << errorString << std::endl;
     }
 
     return loaded;
@@ -471,6 +478,11 @@ DynamicLibrary *PluginManager::loadLibrary(const std::string& path,
         std::lock_guard<std::mutex> lock(m_mutex);
         m_dynamicLibraryMap[FileUtils::toAbsolutePath(path)] = DynLibPtr(d);
     }
+    else
+    {
+        m_log->get(LogLevel::Error) << "Can't load library " << path <<
+            ": " << errorString;
+    }
 
     return d;
 }
diff --git a/src/PointLayout.cpp b/src/PointLayout.cpp
index 6393eff..d3da017 100644
--- a/src/PointLayout.cpp
+++ b/src/PointLayout.cpp
@@ -49,7 +49,7 @@ PointLayout::PointLayout()
     int id = 0;
     for (auto& d : m_detail)
     {
-        d.setId((Dimension::Id::Enum)id);
+        d.setId((Dimension::Id)id);
         id++;
     }
 }
@@ -61,44 +61,43 @@ void PointLayout::finalize()
 }
 
 
-void PointLayout::registerDims(std::vector<Dimension::Id::Enum> ids)
+void PointLayout::registerDims(std::vector<Dimension::Id> ids)
 {
     for (auto ii = ids.begin(); ii != ids.end(); ++ii)
         registerDim(*ii);
 }
 
 
-void PointLayout::registerDims(Dimension::Id::Enum *id)
+void PointLayout::registerDims(Dimension::Id *id)
 {
     while (*id != Dimension::Id::Unknown)
         registerDim(*id++);
 }
 
 
-void PointLayout::registerDim(Dimension::Id::Enum id)
+void PointLayout::registerDim(Dimension::Id id)
 {
     registerDim(id, Dimension::defaultType(id));
 }
 
 
-void PointLayout::registerDim(Dimension::Id::Enum id,
-    Dimension::Type::Enum type)
+void PointLayout::registerDim(Dimension::Id id, Dimension::Type type)
 {
-    Dimension::Detail dd = m_detail[id];
+    Dimension::Detail dd = m_detail[Utils::toNative(id)];
     dd.setType(resolveType(type, dd.type()));
     update(dd, Dimension::name(id));
 }
 
 
-Dimension::Id::Enum PointLayout::assignDim(const std::string& name,
-    Dimension::Type::Enum type)
+Dimension::Id PointLayout::assignDim(const std::string& name,
+    Dimension::Type type)
 {
-    Dimension::Id::Enum id = (Dimension::Id::Enum)m_nextFree;
+    Dimension::Id id = (Dimension::Id)m_nextFree;
 
     auto di = m_propIds.find(name);
     if (di != m_propIds.end())
         id = di->second;
-    Dimension::Detail dd = m_detail[id];
+    Dimension::Detail dd = m_detail[Utils::toNative(id)];
     dd.setType(resolveType(type, dd.type()));
     if (update(dd, name))
     {
@@ -113,10 +112,10 @@ Dimension::Id::Enum PointLayout::assignDim(const std::string& name,
 }
 
 
-Dimension::Id::Enum PointLayout::registerOrAssignDim(const std::string name,
-   Dimension::Type::Enum type)
+Dimension::Id PointLayout::registerOrAssignDim(const std::string name,
+   Dimension::Type type)
 {
-    Dimension::Id::Enum id = Dimension::id(name);
+    Dimension::Id id = Dimension::id(name);
     if (id != Dimension::Id::Unknown)
     {
         registerDim(id, type);
@@ -139,21 +138,21 @@ DimTypeList PointLayout::dimTypes() const
 
 DimType PointLayout::findDimType(const std::string& name) const
 {
-    Dimension::Id::Enum id = findDim(name);
+    Dimension::Id id = findDim(name);
     return DimType(id, dimType(id));
 }
 
 
-Dimension::Id::Enum PointLayout::findDim(const std::string& name) const
+Dimension::Id PointLayout::findDim(const std::string& name) const
 {
-    Dimension::Id::Enum id = Dimension::id(name);
+    Dimension::Id id = Dimension::id(name);
     if (dimType(id) != Dimension::Type::None)
         return id;
     return findProprietaryDim(name);
 }
 
 
-Dimension::Id::Enum
+Dimension::Id
 PointLayout::findProprietaryDim(const std::string& name) const
 {
     auto di = m_propIds.find(name);
@@ -162,7 +161,7 @@ PointLayout::findProprietaryDim(const std::string& name) const
 }
 
 
-std::string PointLayout::dimName(Dimension::Id::Enum id) const
+std::string PointLayout::dimName(Dimension::Id id) const
 {
     std::string name = Dimension::name(id);
     if (!name.empty())
@@ -175,9 +174,9 @@ std::string PointLayout::dimName(Dimension::Id::Enum id) const
 }
 
 
-bool PointLayout::hasDim(Dimension::Id::Enum id) const
+bool PointLayout::hasDim(Dimension::Id id) const
 {
-    return m_detail[id].type() != Dimension::Type::None;
+    return m_detail[Utils::toNative(id)].type() != Dimension::Type::None;
 }
 
 
@@ -187,19 +186,19 @@ const Dimension::IdList& PointLayout::dims() const
 }
 
 
-Dimension::Type::Enum PointLayout::dimType(Dimension::Id::Enum id) const
+Dimension::Type PointLayout::dimType(Dimension::Id id) const
 {
     return dimDetail(id)->type();
 }
 
 
-size_t PointLayout::dimSize(Dimension::Id::Enum id) const
+size_t PointLayout::dimSize(Dimension::Id id) const
 {
     return dimDetail(id)->size();
 }
 
 
-size_t PointLayout::dimOffset(Dimension::Id::Enum id) const
+size_t PointLayout::dimOffset(Dimension::Id id) const
 {
     return dimDetail(id)->offset();
 }
@@ -211,9 +210,9 @@ size_t PointLayout::pointSize() const
 }
 
 
-const Dimension::Detail* PointLayout::dimDetail(Dimension::Id::Enum id) const
+const Dimension::Detail* PointLayout::dimDetail(Dimension::Id id) const
 {
-    return &(m_detail[(size_t)id]);
+    return &(m_detail[Utils::toNative(id)]);
 }
 
 
@@ -234,7 +233,7 @@ bool PointLayout::update(Dimension::Detail dd, const std::string& name)
         if (id == dd.id())
             detail.push_back(dd);
         else
-            detail.push_back(m_detail[id]);
+            detail.push_back(m_detail[Utils::toNative(id)]);
     }
     if (!used)
         detail.push_back(dd);
@@ -275,18 +274,17 @@ bool PointLayout::update(Dimension::Detail dd, const std::string& name)
 
     // Update the detail for the ID.
     for (auto& dtemp : detail)
-        m_detail[dtemp.id()] = dtemp;
+        m_detail[Utils::toNative(dtemp.id())] = dtemp;
 
     return true;
 }
 
 
 // Given two types, find a type that can represent the values of both.
-Dimension::Type::Enum PointLayout::resolveType(Dimension::Type::Enum t1,
-    Dimension::Type::Enum t2)
+Dimension::Type PointLayout::resolveType(Dimension::Type t1,
+    Dimension::Type t2)
 {
     using namespace Dimension;
-    using namespace Dimension::BaseType;
     if (t1 == Type::None && t2 != Type::None)
        return t2;
     if (t2 == Type::None && t1 != Type::None)
@@ -296,15 +294,15 @@ Dimension::Type::Enum PointLayout::resolveType(Dimension::Type::Enum t1,
     if (base(t1) == base(t2))
         return std::max(t1, t2);
     //Prefer floating to non-floating.
-    if (base(t1) == Floating && base(t2) != Floating)
+    if (base(t1) == BaseType::Floating && base(t2) != BaseType::Floating)
         return t1;
-    if (base(t2) == Floating && base(t1) != Floating)
+    if (base(t2) == BaseType::Floating && base(t1) != BaseType::Floating)
         return t2;
     // Now we're left with cases of a signed/unsigned mix.
     // If the unsigned type is smaller, take the signed type.
-    if (base(t1) == Unsigned && size(t1) < size(t2))
+    if (base(t1) == BaseType::Unsigned && size(t1) < size(t2))
         return t2;
-    if (base(t2) == Unsigned && size(t2) < size(t1))
+    if (base(t2) == BaseType::Unsigned && size(t2) < size(t1))
         return t1;
     // Signed type is smaller or the the sizes are equal.
     switch (std::max(size(t1), size(t2)))
diff --git a/src/PointTable.cpp b/src/PointTable.cpp
index 19dbd48..e9e0214 100644
--- a/src/PointTable.cpp
+++ b/src/PointTable.cpp
@@ -47,7 +47,7 @@ MetadataNode BasePointTable::privateMetadata(const std::string& name)
 }
 
 
-void SimplePointTable::setFieldInternal(Dimension::Id::Enum id, PointId idx,
+void SimplePointTable::setFieldInternal(Dimension::Id id, PointId idx,
     const void *value)
 {
     const Dimension::Detail *d = m_layoutRef.dimDetail(id);
@@ -57,7 +57,7 @@ void SimplePointTable::setFieldInternal(Dimension::Id::Enum id, PointId idx,
 }
 
 
-void SimplePointTable::getFieldInternal(Dimension::Id::Enum id, PointId idx,
+void SimplePointTable::getFieldInternal(Dimension::Id id, PointId idx,
     void *value) const
 {
     const Dimension::Detail *d = m_layoutRef.dimDetail(id);
@@ -92,5 +92,24 @@ char *PointTable::getPoint(PointId idx)
     return buf + pointsToBytes(idx % m_blockPtCnt);
 }
 
+
+MetadataNode BasePointTable::toMetadata() const
+{
+    const PointLayoutPtr l(layout());
+    MetadataNode root;
+
+    for (const auto& id : l->dims())
+    {
+        MetadataNode dim("dimensions");
+        dim.add("name", l->dimName(id));
+        Dimension::Type t = l->dimType(id);
+        dim.add("type", Dimension::toName(Dimension::base(t)));
+        dim.add("size", l->dimSize(id));
+        root.addList(dim);
+    }
+
+    return root;
+}
+
 } // namespace pdal
 
diff --git a/src/PointView.cpp b/src/PointView.cpp
index 74c4301..c2c3913 100644
--- a/src/PointView.cpp
+++ b/src/PointView.cpp
@@ -66,7 +66,7 @@ PointViewIter PointView::end()
 }
 
 
-void PointView::setFieldInternal(Dimension::Id::Enum dim, PointId idx,
+void PointView::setFieldInternal(Dimension::Id dim, PointId idx,
     const void *buf)
 {
     PointId rawId = 0;
@@ -136,6 +136,25 @@ void PointView::calculateBounds(const PointViewSet& set, BOX3D& output)
 }
 
 
+MetadataNode PointView::toMetadata() const
+{
+    MetadataNode node;
+
+    const Dimension::IdList& dims = layout()->dims();
+
+    for (PointId idx = 0; idx < size(); idx++)
+    {
+        MetadataNode pointnode = node.add(std::to_string(idx));
+        for (auto di = dims.begin(); di != dims.end(); ++di)
+        {
+            double v = getFieldAs<double>(*di, idx);
+            pointnode.add(layout()->dimName(*di), v);
+        }
+    }
+    return node;
+}
+
+
 void PointView::dump(std::ostream& ostr) const
 {
     using std::endl;
@@ -150,7 +169,7 @@ void PointView::dump(std::ostream& ostr) const
 
         for (auto di = dims.begin(); di != dims.end(); ++di)
         {
-            Dimension::Id::Enum d = *di;
+            Dimension::Id d = *di;
             const Dimension::Detail *dd = layout->dimDetail(d);
             ostr << Dimension::name(d) << " (" <<
                 Dimension::interpretationName(dd->type()) << ") : ";
diff --git a/src/Reader.cpp b/src/Reader.cpp
index 56ac230..f7fde70 100644
--- a/src/Reader.cpp
+++ b/src/Reader.cpp
@@ -33,17 +33,16 @@
 ****************************************************************************/
 
 #include <pdal/Reader.hpp>
-#include <pdal/PipelineWriter.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 namespace pdal
 {
 
-void Reader::readerProcessOptions(const Options& options)
+void Reader::readerAddArgs(ProgramArgs& args)
 {
-    if (options.hasOption("filename"))
-        m_filename = options.getValueOrThrow<std::string>("filename");
-    if (options.hasOption("count"))
-        m_count = options.getValueOrThrow<point_count_t>("count");
+    m_filenameArg = &args.add("filename", "Name of file to read", m_filename);
+    m_countArg = &args.add("count", "Maximum number of points read", m_count,
+        std::numeric_limits<point_count_t>::max());
 }
 
 } // namespace pdal
diff --git a/src/Scaling.cpp b/src/Scaling.cpp
new file mode 100644
index 0000000..f1aa9ec
--- /dev/null
+++ b/src/Scaling.cpp
@@ -0,0 +1,119 @@
+/******************************************************************************
+* Copyright (c) 2016, Hobu Inc. (info at hobu.co)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. names of its contributors may be
+*       used to endorse or promote products derived from this software
+*       without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include <pdal/Scaling.hpp>
+
+namespace pdal
+{
+
+void Scaling::addArgs(ProgramArgs& args)
+{
+    m_xOffArg = &args.add("offset_x", "X offset", m_xXform.m_offset);
+    m_yOffArg = &args.add("offset_y", "Y offset", m_yXform.m_offset);
+    m_zOffArg = &args.add("offset_z", "Z offset", m_zXform.m_offset);
+
+    m_xScaleArg = &args.add("scale_x", "X scale", m_xXform.m_scale,
+        XForm::XFormComponent(1.0));
+    m_yScaleArg = &args.add("scale_y", "Y scale", m_yXform.m_scale,
+        XForm::XFormComponent(1.0));
+    m_zScaleArg = &args.add("scale_z", "Z scale", m_zXform.m_scale,
+        XForm::XFormComponent(1.0));
+}
+
+
+void Scaling::setAutoXForm(const PointViewPtr view)
+{
+   double xmin = (std::numeric_limits<double>::max)();
+   double xmax = (std::numeric_limits<double>::lowest)();
+   bool xmod = m_xXform.m_offset.m_auto || m_xXform.m_scale.m_auto;
+
+   double ymin = (std::numeric_limits<double>::max)();
+   double ymax = (std::numeric_limits<double>::lowest)();
+   bool ymod = m_yXform.m_offset.m_auto || m_yXform.m_scale.m_auto;
+
+   double zmin = (std::numeric_limits<double>::max)();
+   double zmax = (std::numeric_limits<double>::lowest)();
+   bool zmod = m_zXform.m_offset.m_auto || m_zXform.m_scale.m_auto;
+
+   if (!xmod && !ymod && !zmod)
+       return;
+   if (view->empty())
+        return;
+
+    for (PointId idx = 0; idx < view->size(); idx++)
+    {
+        if (xmod)
+        {
+            double x = view->getFieldAs<double>(Dimension::Id::X, idx);
+            xmin = std::min(x, xmin);
+            xmax = std::max(x, xmax);
+        }
+        if (ymod)
+        {
+            double y = view->getFieldAs<double>(Dimension::Id::Y, idx);
+            ymin = std::min(y, ymin);
+            ymax = std::max(y, ymax);
+        }
+        if (zmod)
+        {
+            double z = view->getFieldAs<double>(Dimension::Id::Z, idx);
+            zmin = std::min(z, zmin);
+            zmax = std::max(z, zmax);
+        }
+    }
+
+    if (m_xXform.m_offset.m_auto)
+    {
+        m_xXform.m_offset.m_val = xmin;
+        xmax -= xmin;
+    }
+    if (m_yXform.m_offset.m_auto)
+    {
+        m_yXform.m_offset.m_val = ymin;
+        ymax -= ymin;
+    }
+    if (m_zXform.m_offset.m_auto)
+    {
+        m_zXform.m_offset.m_val = zmin;
+        zmax -= zmin;
+    }
+    if (m_xXform.m_scale.m_auto)
+        m_xXform.m_scale.m_val = xmax / (std::numeric_limits<int>::max)();
+    if (m_yXform.m_scale.m_auto)
+        m_yXform.m_scale.m_val = ymax / (std::numeric_limits<int>::max)();
+    if (m_zXform.m_scale.m_auto)
+        m_zXform.m_scale.m_val = zmax / (std::numeric_limits<int>::max)();
+}
+
+
+} // namespace pdal
diff --git a/src/SpatialReference.cpp b/src/SpatialReference.cpp
index c112dd7..e80c2e7 100644
--- a/src/SpatialReference.cpp
+++ b/src/SpatialReference.cpp
@@ -206,9 +206,13 @@ std::string SpatialReference::getVerticalUnits() const
         if (node)
         {
             char* units(0);
+
+            // The returned value remains internal to the OGRSpatialReference and should not
+            //        be freed, or modified. It may be invalidated on the next
+            //        OGRSpatialReference call.
+
             double u = poSRS->GetLinearUnits(&units);
             tmp = units;
-            CPLFree(units);
 
             Utils::trim(tmp);
 
@@ -246,15 +250,21 @@ std::string SpatialReference::getHorizontalUnits() const
 
     std::string wkt = getWKT(eHorizontalOnly);
     const char* poWKT = wkt.c_str();
-    OGRSpatialReference srs(NULL);
-    if (OGRERR_NONE == srs.importFromWkt(const_cast<char **>(&poWKT)))
+    OGRSpatialReference* poSRS =
+        (OGRSpatialReference*)OSRNewSpatialReference(m_wkt.c_str());
+    if (poSRS)
     {
         char* units(0);
-        double u = srs.GetLinearUnits(&units);
+
+        // The returned value remains internal to the OGRSpatialReference and should not
+        //        be freed, or modified. It may be invalidated on the next
+        //        OGRSpatialReference call.
+
+        double u = poSRS->GetLinearUnits(&units);
         tmp = units;
-        CPLFree(units);
 
         Utils::trim(tmp);
+
     }
 
     return tmp;
@@ -331,14 +341,8 @@ bool SpatialReference::isGeocentric() const
 
 int SpatialReference::calculateZone(double lon, double lat)
 {
-    // Force longitude [-180, 180)
-    lon = fmod(lon, 360.0);
-    if (lon < -180.0)
-        lon += 360.0;
-    else if (lon >= 180.0)
-        lon -= 360.0;
-
     int zone = 0;
+    lon = Utils::normalizeLongitude(lon);
 
     // Special Norway processing.
     if (lat >= 56.0 && lat < 64.0 && lon >= 3.0 && lon < 12.0 )
@@ -455,6 +459,27 @@ int SpatialReference::computeUTMZone(const BOX3D& box) const
 }
 
 
+MetadataNode SpatialReference::toMetadata() const
+{
+    MetadataNode root("srs");
+    root.add("horizontal", getHorizontal());
+    root.add("vertical", getVertical());
+    root.add("isgeographic", isGeographic());
+    root.add("isgeocentric", isGeocentric());
+    root.add("proj4", getProj4());
+    root.add("prettywkt", getWKT(eHorizontalOnly, true));
+    root.add("wkt", getWKT(eHorizontalOnly, false));
+    root.add("compoundwkt", getWKT(eCompoundOK, false));
+    root.add("prettycompoundwkt", getWKT(eCompoundOK, true));
+
+    MetadataNode units = root.add("units");
+    units.add("vertical", getVerticalUnits());
+    units.add("horizontal", getHorizontalUnits());
+
+    return root;
+}
+
+
 void SpatialReference::dump() const
 {
     std::cout << *this;
diff --git a/src/Stage.cpp b/src/Stage.cpp
index bc1aa87..a11fd08 100644
--- a/src/Stage.cpp
+++ b/src/Stage.cpp
@@ -38,6 +38,7 @@
 #include <pdal/Stage.hpp>
 #include <pdal/SpatialReference.hpp>
 #include <pdal/PDALUtils.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #include "StageRunner.hpp"
 
@@ -47,24 +48,14 @@
 namespace pdal
 {
 
-Stage::Stage() : m_progressFd(-1)
-{
-    Construct();
-}
+Stage::Stage() : m_progressFd(-1), m_debug(false), m_verbose(0)
+{}
 
 
 void Stage::addConditionalOptions(const Options& opts)
 {
     for (const auto& o : opts.getOptions())
-        if (!m_options.hasOption(o.getName()))
-            m_options.add(o);
-}
-
-
-void Stage::Construct()
-{
-    m_debug = false;
-    m_verbose = 0;
+        m_options.addConditional(o);
 }
 
 
@@ -85,28 +76,56 @@ void Stage::serialize(MetadataNode root, PipelineWriter::TagMap& tags) const
     m_options.toMetadata(anon);
     for (Stage *s : m_inputs)
         anon.addList("inputs", tagname(s));
-    if (m_metadata.hasChildren())
-        anon.add(m_metadata.clone("execution_metadata"));
     root.addList(anon);
 }
 
+void Stage::addAllArgs(ProgramArgs& args)
+{
+    try
+    {
+        l_addArgs(args);
+        addArgs(args);
+    }
+    catch (arg_error error)
+    {
+        throw pdal_error(error.m_error);
+    }
+}
+
+
+void Stage::handleOptions()
+{
+    addAllArgs(*m_args);
+    try
+    {
+        StringList cmdline = m_options.toCommandLine();
+        m_args->parse(cmdline);
+    }
+    catch (arg_error error)
+    {
+        throw pdal_error(error.m_error);
+    }
+    setupLog();
+}
+
+
 QuickInfo Stage::preview()
 {
-    l_processOptions(m_options);
-    processOptions(m_options);
+    m_args.reset(new ProgramArgs);
+    handleOptions();
     return inspect();
 }
 
 
 void Stage::prepare(PointTableRef table)
 {
+    m_args.reset(new ProgramArgs);
     for (size_t i = 0; i < m_inputs.size(); ++i)
     {
         Stage *prev = m_inputs[i];
         prev->prepare(table);
     }
-    l_processOptions(m_options);
-    processOptions(m_options);
+    handleOptions();
     l_initialize(table);
     initialize(table);
     addDimensions(table.layout());
@@ -148,7 +167,7 @@ PointViewSet Stage::execute(PointTableRef table)
     table.clearSpatialReferences();
     for (auto const& it : views)
         table.addSpatialReference(it->spatialReference());
-    gdal::ErrorHandler::get().set(m_log, m_debug);
+    gdal::ErrorHandler::getGlobalErrorHandler().set(m_log, m_debug);
 
     // Do the ready operation and then start running all the views
     // through the stage.
@@ -305,63 +324,44 @@ void Stage::execute(StreamPointTable& table, std::list<Stage *>& stages)
 }
 
 
-void Stage::l_initialize(PointTableRef table)
+void Stage::l_addArgs(ProgramArgs& args)
 {
-    m_metadata = table.metadata().add(getName());
+    args.add("log", "Debug output filename", m_logname);
+    readerAddArgs(args);
 }
 
 
-void Stage::l_processOptions(const Options& options)
+void Stage::setupLog()
 {
-    m_debug = options.getValueOrDefault<bool>("debug", false);
-    m_verbose = options.getValueOrDefault<uint32_t>("verbose", 0);
-    if (m_debug && !m_verbose)
-        m_verbose = 1;
+    LogLevel l(LogLevel::Error);
 
-    if (m_inputs.empty())
-    {
-        std::string logname =
-            options.getValueOrDefault<std::string>("log", "stdlog");
-        m_log = std::shared_ptr<pdal::Log>(new Log(getName(), logname));
-    }
-    else
-    {
-        if (options.hasOption("log"))
-        {
-            std::string logname = options.getValueOrThrow<std::string>("log");
-            m_log.reset(new Log(getName(), logname));
-        }
-        else
-        {
-            // We know we're not empty at this point
-            std::ostream* v = m_inputs[0]->log()->getLogStream();
-            m_log.reset(new Log(getName(), v));
-        }
-    }
-    m_log->setLevel((LogLevel::Enum)m_verbose);
+    if (m_log)
+        l = m_log->getLevel();
 
-    gdal::ErrorHandler::get().set(m_log, m_debug);
-    geos::ErrorHandler::get().set(m_log, m_debug);
+    if (!m_logname.empty())
+        m_log.reset(new Log(getName(), m_logname));
+    else if (!m_log)
+        m_log.reset(new Log(getName(), "stdlog"));
+    m_log->setLevel(l);
+
+    bool debug(l > LogLevel::Debug);
+    gdal::ErrorHandler::getGlobalErrorHandler().set(m_log, debug);
+}
 
-    // If the user gave us an SRS via options, take that.
-    try
-    {
-        m_spatialReference = options.
-            getValueOrThrow<pdal::SpatialReference>("spatialreference");
-    }
-    catch (pdal_error const&)
-    {
-        // If one wasn't set on the options, we'll ignore at this
-        // point.  Maybe another stage might forward/set it later.
-    }
 
-    // Process reader-specific options.
-    readerProcessOptions(options);
-    // Process writer-specific options.
-    writerProcessOptions(options);
+void Stage::l_initialize(PointTableRef table)
+{
+    m_metadata = table.metadata().add(getName());
+    writerInitialize(table);
 }
 
 
+void Stage::addSpatialReferenceArg(ProgramArgs& args)
+{
+    args.add("spatialreference", "Spatial reference to apply to data",
+        m_spatialReference);
+}
+
 const SpatialReference& Stage::getSpatialReference() const
 {
     return m_spatialReference;
@@ -384,7 +384,7 @@ void Stage::setSpatialReference(MetadataNode& m,
     MetadataNode spatialNode = m.findChild(pred);
     if (spatialNode.empty())
     {
-        m.add(Utils::toMetadata(spatialRef));
+        m.add(spatialRef.toMetadata());
         m.add("spatialreference",
            spatialRef.getWKT(SpatialReference::eHorizontalOnly, false),
            "SRS of this stage");
diff --git a/src/StageFactory.cpp b/src/StageFactory.cpp
index 6865a73..ad4d1f2 100644
--- a/src/StageFactory.cpp
+++ b/src/StageFactory.cpp
@@ -37,17 +37,27 @@
 #include <pdal/util/FileUtils.hpp>
 
 // filters
+#include <approximatecoplanar/ApproximateCoplanarFilter.hpp>
 #include <attribute/AttributeFilter.hpp>
 #include <chipper/ChipperFilter.hpp>
 #include <colorization/ColorizationFilter.hpp>
 #include <crop/CropFilter.hpp>
 #include <decimation/DecimationFilter.hpp>
 #include <divider/DividerFilter.hpp>
+#include <eigenvalues/EigenvaluesFilter.hpp>
+#include <estimaterank/EstimateRankFilter.hpp>
 #include <ferry/FerryFilter.hpp>
+#include <hag/HAGFilter.hpp>
 #include <merge/MergeFilter.hpp>
+#include <mongus/MongusFilter.hpp>
 #include <mortonorder/MortonOrderFilter.hpp>
+#include <normal/NormalFilter.hpp>
+#include <outlier/OutlierFilter.hpp>
+#include <pmf/PMFFilter.hpp>
 #include <range/RangeFilter.hpp>
 #include <reprojection/ReprojectionFilter.hpp>
+#include <sample/SampleFilter.hpp>
+#include <smrf/SMRFilter.hpp>
 #include <sort/SortFilter.hpp>
 #include <splitter/SplitterFilter.hpp>
 #include <stats/StatsFilter.hpp>
@@ -62,6 +72,7 @@
 #include <optech/OptechReader.hpp>
 #include <buffer/BufferReader.hpp>
 #include <ply/PlyReader.hpp>
+#include <pts/PtsReader.hpp>
 #include <qfit/QfitReader.hpp>
 #include <sbet/SbetReader.hpp>
 #include <terrasolid/TerrasolidReader.hpp>
@@ -84,102 +95,123 @@
 namespace pdal
 {
 
-std::string StageFactory::inferReaderDriver(const std::string& filename)
+StringList StageFactory::extensions(const std::string& driver)
 {
-    // filename may actually be a greyhound uri + pipelineId
-    std::string http = filename.substr(0, 4);
-    if (Utils::iequals(http, "http"))
-        return "readers.greyhound";
-
-    std::string ext = FileUtils::extension(filename);
-    std::map<std::string, std::string> drivers;
-    drivers["bin"] = "readers.terrasolid";
-    drivers["bpf"] = "readers.bpf";
-    drivers["csd"] = "readers.optech";
-    drivers["greyhound"] = "readers.greyhound";
-    drivers["icebridge"] = "readers.icebridge";
-    drivers["las"] = "readers.las";
-    drivers["laz"] = "readers.las";
-    drivers["nitf"] = "readers.nitf";
-    drivers["nsf"] = "readers.nitf";
-    drivers["ntf"] = "readers.nitf";
-    drivers["pcd"] = "readers.pcd";
-    drivers["ply"] = "readers.ply";
-    drivers["qi"] = "readers.qfit";
-    drivers["rxp"] = "readers.rxp";
-    drivers["sbet"] = "readers.sbet";
-    drivers["sqlite"] = "readers.sqlite";
-    drivers["sid"] = "readers.mrsid";
-    drivers["tindex"] = "readers.tindex";
-    drivers["txt"] = "readers.text";
-    drivers["h5"] = "readers.icebridge";
+    static std::map<std::string, StringList> exts =
+    {
+        { "readers.terrasolid", { "bin" } },
+        { "readers.bpf", { "bpf" }  },
+        { "readers.optech", { "csd" } },
+        { "readers.greyhound", { "greyhound" } },
+        { "readers.icebridge", { "icebridge" } },
+        { "readers.las", { "las", "laz" } },
+        { "readers.nitf", { "nitf", "nsf", "ntf" } },
+        { "readers.pcd", { "pcd" } },
+        { "readers.ply", { "ply" } },
+        { "readers.pts", { "pts" } },
+        { "readers.qfit", { "qi" } },
+        { "readers.rxp", { "rxp" } },
+        { "readers.sbet", { "sbet" } },
+        { "readers.sqlite", { "sqlite" } },
+        { "readers.mrsid", { "sid" } },
+        { "readers.tindex", { "tindex" } },
+        { "readers.txt", { "txt" } },
+        { "readers.icebridge", { "h5" } },
 
-    if (ext == "")
-        return "";
-    ext = ext.substr(1, ext.length()-1);
-    if (ext == "")
-        return "";
+        { "writers.bpf", { "bpf" } },
+        { "writers.text", { "csv", "json", "txt", "xyz" } },
+        { "writers.las", { "las", "laz" } },
+        { "writers.matlab", { "mat" } },
+        { "writers.nitf", { "nitf", "nsf", "ntf" } },
+        { "writers.pcd", { "pcd" } },
+        { "writers.pclvisualizer", { "pclvis" } },
+        { "writers.ply", { "ply" } },
+        { "writers.sbet", { "sbet" } },
+        { "writers.derivative", { "derivative" } },
+        { "writers.sqlite", { "sqlite" } },
+    };
 
-    ext = Utils::tolower(ext);
-    std::string driver = drivers[ext];
-    return driver; // will be "" if not found
+    return exts[driver];
 }
 
-
-std::string StageFactory::inferWriterDriver(const std::string& filename)
+std::string StageFactory::inferReaderDriver(const std::string& filename)
 {
-    std::string ext = Utils::tolower(FileUtils::extension(filename));
+    static std::map<std::string, std::string> drivers =
+    {
+        { "bin", "readers.terrasolid" },
+        { "bpf", "readers.bpf" },
+        { "csd", "readers.optech" },
+        { "greyhound", "readers.greyhound" },
+        { "icebridge", "readers.icebridge" },
+        { "las", "readers.las" },
+        { "laz", "readers.las" },
+        { "nitf", "readers.nitf" },
+        { "nsf", "readers.nitf" },
+        { "ntf", "readers.nitf" },
+        { "pcd", "readers.pcd" },
+        { "ply", "readers.ply" },
+        { "pts", "readers.pts" },
+        { "qi", "readers.qfit" },
+        { "rxp", "readers.rxp" },
+        { "sbet", "readers.sbet" },
+        { "sqlite", "readers.sqlite" },
+        { "sid", "readers.mrsid" },
+        { "tindex", "readers.tindex" },
+        { "txt", "readers.txt" },
+        { "h5", "readers.icebridge" }
+    };
 
-    std::map<std::string, std::string> drivers;
-    drivers["bpf"] = "writers.bpf";
-    drivers["csv"] = "writers.text";
-    drivers["json"] = "writers.text";
-    drivers["las"] = "writers.las";
-    drivers["laz"] = "writers.las";
-    drivers["mat"] = "writers.matlab";
-    drivers["ntf"] = "writers.nitf";
-    drivers["pcd"] = "writers.pcd";
-    drivers["pclviz"] = "writers.pclvisualizer";
-    drivers["ply"] = "writers.ply";
-    drivers["sbet"] = "writers.sbet";
-    drivers["derivative"] = "writers.derivative";
-    drivers["sqlite"] = "writers.sqlite";
-    drivers["txt"] = "writers.text";
-    drivers["xyz"] = "writers.text";
+    static const std::string ghPrefix("greyhound://");
 
-    if (Utils::iequals(filename, "STDOUT"))
-        return drivers["txt"];
+    std::string ext;
+    // filename may actually be a greyhound uri + pipelineId
+    if (Utils::iequals(filename.substr(0, ghPrefix.size()), ghPrefix))
+        ext = ".greyhound";      // Make it look like an extension.
+    else
+        ext = FileUtils::extension(filename);
 
-    if (ext == "")
-        return drivers["txt"];
-    ext = ext.substr(1, ext.length()-1);
-    if (ext == "")
-        return drivers["txt"];
+    // Strip off '.' and make lowercase.
+    if (ext.length())
+        ext = Utils::tolower(ext.substr(1, ext.length() - 1));
 
-    ext = Utils::tolower(ext);
-    std::string driver = drivers[ext];
-    return driver; // will be "" if not found
+    return drivers[ext]; // will be "" if not found
 }
 
 
-pdal::Options StageFactory::inferWriterOptionsChanges(
-    const std::string& filename)
+std::string StageFactory::inferWriterDriver(const std::string& filename)
 {
-    std::string ext = FileUtils::extension(filename);
-    ext = Utils::tolower(ext);
-    Options options;
+    std::string ext;
 
-    if (Utils::iequals(ext,".laz"))
-        options.add("compression", true);
+    if (filename == "STDOUT")
+        ext = ".txt";
+    else
+        ext = Utils::tolower(FileUtils::extension(filename));
 
-    if (Utils::iequals(ext, ".pcd") &&
-        PluginManager::createObject("writers.pcd"))
+    static std::map<std::string, std::string> drivers =
     {
-        options.add("format","PCD");
-    }
+        { "bpf", "writers.bpf" },
+        { "csv", "writers.text" },
+        { "json", "writers.text" },
+        { "las", "writers.las" },
+        { "laz", "writers.las" },
+        { "mat", "writers.matlab" },
+        { "ntf", "writers.nitf" },
+        { "pcd", "writers.pcd" },
+        { "pclviz", "writers.pclvisualizer" },
+        { "ply", "writers.ply" },
+        { "sbet", "writers.sbet" },
+        { "derivative", "writers.derivative" },
+        { "sqlite", "writers.sqlite" },
+        { "txt", "writers.text" },
+        { "xyz", "writers.text" },
+        { "", "writers.text" }
+    };
+
+    // Strip off '.' and make lowercase.
+    if (ext.length())
+        ext = Utils::tolower(ext.substr(1, ext.length() - 1));
 
-    options.add<std::string>("filename", filename);
-    return options;
+    return drivers[ext];
 }
 
 
@@ -192,17 +224,27 @@ StageFactory::StageFactory(bool no_plugins)
     }
 
     // filters
+    PluginManager::initializePlugin(ApproximateCoplanarFilter_InitPlugin);
     PluginManager::initializePlugin(AttributeFilter_InitPlugin);
     PluginManager::initializePlugin(ChipperFilter_InitPlugin);
     PluginManager::initializePlugin(ColorizationFilter_InitPlugin);
     PluginManager::initializePlugin(CropFilter_InitPlugin);
     PluginManager::initializePlugin(DecimationFilter_InitPlugin);
     PluginManager::initializePlugin(DividerFilter_InitPlugin);
+    PluginManager::initializePlugin(EigenvaluesFilter_InitPlugin);
+    PluginManager::initializePlugin(EstimateRankFilter_InitPlugin);
     PluginManager::initializePlugin(FerryFilter_InitPlugin);
+    PluginManager::initializePlugin(HAGFilter_InitPlugin);
     PluginManager::initializePlugin(MergeFilter_InitPlugin);
+    PluginManager::initializePlugin(MongusFilter_InitPlugin);
     PluginManager::initializePlugin(MortonOrderFilter_InitPlugin);
+    PluginManager::initializePlugin(NormalFilter_InitPlugin);
+    PluginManager::initializePlugin(OutlierFilter_InitPlugin);
+    PluginManager::initializePlugin(PMFFilter_InitPlugin);
     PluginManager::initializePlugin(RangeFilter_InitPlugin);
     PluginManager::initializePlugin(ReprojectionFilter_InitPlugin);
+    PluginManager::initializePlugin(SampleFilter_InitPlugin);
+    PluginManager::initializePlugin(SMRFilter_InitPlugin);
     PluginManager::initializePlugin(SortFilter_InitPlugin);
     PluginManager::initializePlugin(SplitterFilter_InitPlugin);
     PluginManager::initializePlugin(StatsFilter_InitPlugin);
@@ -216,6 +258,7 @@ StageFactory::StageFactory(bool no_plugins)
     PluginManager::initializePlugin(LasReader_InitPlugin);
     PluginManager::initializePlugin(OptechReader_InitPlugin);
     PluginManager::initializePlugin(PlyReader_InitPlugin);
+    PluginManager::initializePlugin(PtsReader_InitPlugin);
     PluginManager::initializePlugin(QfitReader_InitPlugin);
     PluginManager::initializePlugin(SbetReader_InitPlugin);
     PluginManager::initializePlugin(TerrasolidReader_InitPlugin);
diff --git a/src/Writer.cpp b/src/Writer.cpp
index 2fd3654..746aaf4 100644
--- a/src/Writer.cpp
+++ b/src/Writer.cpp
@@ -35,7 +35,7 @@
 #include <pdal/Writer.hpp>
 #include <pdal/Stage.hpp>
 
-#include <pdal/PipelineWriter.hpp>
+#include <pdal/util/ProgramArgs.hpp>
 
 #ifdef PDAL_COMPILER_MSVC
 #  pragma warning(disable: 4127)  // conditional expression is constant
@@ -44,99 +44,6 @@
 namespace pdal
 {
 
-void Writer::writerProcessOptions(const Options& options)
-{
-    auto setOffset = [options](XForm& xform, const std::string& opName)
-    {
-        if (options.hasOption(opName))
-            xform.setOffset(options.getValueOrThrow<std::string>(opName));
-    };
-
-    auto setScale = [options](XForm& xform, const std::string& opName)
-    {
-        if (options.hasOption(opName))
-            xform.setScale(options.getValueOrThrow<std::string>(opName));
-    };
-
-    setOffset(m_xXform, "offset_x");
-    setOffset(m_yXform, "offset_y");
-    setOffset(m_zXform, "offset_z");
-
-    setScale(m_xXform, "scale_x");
-    setScale(m_yXform, "scale_y");
-    setScale(m_zXform, "scale_z");
-
-    if (options.hasOption("filename"))
-        m_filename = options.getValueOrThrow<std::string>("filename");
-    m_outputDims = options.getValueOrDefault<StringList>("output_dims");
-}
-
-
-void Writer::setAutoXForm(const PointViewPtr view)
-{
-   double xmin = (std::numeric_limits<double>::max)();
-   double xmax = (std::numeric_limits<double>::lowest)();
-   bool xmod = m_xXform.m_autoOffset || m_xXform.m_autoScale;
-
-   double ymin = (std::numeric_limits<double>::max)();
-   double ymax = (std::numeric_limits<double>::lowest)();
-   bool ymod = m_yXform.m_autoOffset || m_yXform.m_autoScale;
-
-   double zmin = (std::numeric_limits<double>::max)();
-   double zmax = (std::numeric_limits<double>::lowest)();
-   bool zmod = m_zXform.m_autoOffset || m_zXform.m_autoScale;
-
-   if (!xmod && !ymod && !zmod)
-       return;
-   if (view->empty())
-        return;
-
-    for (PointId idx = 0; idx < view->size(); idx++)
-    {
-        if (xmod)
-        {
-            double x = view->getFieldAs<double>(Dimension::Id::X, idx);
-            xmin = std::min(x, xmin);
-            xmax = std::max(x, xmax);
-        }
-        if (ymod)
-        {
-            double y = view->getFieldAs<double>(Dimension::Id::Y, idx);
-            ymin = std::min(y, ymin);
-            ymax = std::max(y, ymax);
-        }
-        if (zmod)
-        {
-            double z = view->getFieldAs<double>(Dimension::Id::Z, idx);
-            zmin = std::min(z, zmin);
-            zmax = std::max(z, zmax);
-        }
-    }
-
-    if (m_xXform.m_autoOffset)
-    {
-        m_xXform.m_offset = xmin;
-        xmax -= xmin;
-    }
-    if (m_yXform.m_autoOffset)
-    {
-        m_yXform.m_offset = ymin;
-        ymax -= ymin;
-    }
-    if (m_zXform.m_autoOffset)
-    {
-        m_zXform.m_offset = zmin;
-        zmax -= zmin;
-    }
-    if (m_xXform.m_autoScale)
-        m_xXform.m_scale = xmax / (std::numeric_limits<int>::max)();
-    if (m_yXform.m_autoScale)
-        m_yXform.m_scale = ymax / (std::numeric_limits<int>::max)();
-    if (m_zXform.m_autoScale)
-        m_zXform.m_scale = zmax / (std::numeric_limits<int>::max)();
-}
-
-
 void Writer::handleFilenameTemplate()
 {
     std::string::size_type suffixPos = m_filename.find_last_of('.');
diff --git a/src/XMLSchema.cpp b/src/XMLSchema.cpp
index 5e32237..1ce662f 100644
--- a/src/XMLSchema.cpp
+++ b/src/XMLSchema.cpp
@@ -158,7 +158,7 @@ void OCISchemaGenericErrorHandler
 }
 
 XMLSchema::XMLSchema(std::string xml, std::string xsd,
-    Orientation::Enum orientation) : m_orientation(orientation)
+    Orientation orientation) : m_orientation(orientation)
 {
     xmlDocPtr doc = init(xml, xsd);
     if (doc)
@@ -170,13 +170,13 @@ XMLSchema::XMLSchema(std::string xml, std::string xsd,
 
 
 XMLSchema::XMLSchema(const XMLDimList& dims, MetadataNode m,
-    Orientation::Enum orientation) : m_orientation(orientation), m_dims(dims),
+    Orientation orientation) : m_orientation(orientation), m_dims(dims),
     m_metadata(m)
 {}
 
 
 XMLSchema::XMLSchema(const PointLayoutPtr& layout, MetadataNode m,
-    Orientation::Enum orientation) : m_orientation(orientation), m_metadata(m)
+    Orientation orientation) : m_orientation(orientation), m_metadata(m)
 {
     DimTypeList dimTypes = layout->dimTypes();
     for (DimType& d : dimTypes)
@@ -464,7 +464,7 @@ bool XMLSchema::load(xmlDocPtr doc)
                     std::cerr << "Unable to fetch offset value!";
                     return false;
                 }
-                dim.m_dimType.m_xform.m_offset = std::atof((const char*)n);
+                dim.m_dimType.m_xform.m_offset.set((const char*)n);
                 xmlFree(n);
             }
             if (propName == "scale")
@@ -475,7 +475,7 @@ bool XMLSchema::load(xmlDocPtr doc)
                     std::cerr << "Unable to fetch scale value!";
                     return false;
                 }
-                dim.m_dimType.m_xform.m_scale = std::atof((const char*)n);
+                dim.m_dimType.m_xform.m_scale.set((const char*)n);
                 xmlFree(n);
             }
         }
@@ -495,7 +495,7 @@ bool XMLSchema::load(xmlDocPtr doc)
 }
 
 
-XMLDim& XMLSchema::xmlDim(Dimension::Id::Enum id)
+XMLDim& XMLSchema::xmlDim(Dimension::Id id)
 {
     static XMLDim nullDim;
 
@@ -506,7 +506,7 @@ XMLDim& XMLSchema::xmlDim(Dimension::Id::Enum id)
 }
 
 
-const XMLDim& XMLSchema::xmlDim(Dimension::Id::Enum id) const
+const XMLDim& XMLSchema::xmlDim(Dimension::Id id) const
 {
     static XMLDim nullDim;
 
@@ -578,14 +578,14 @@ void XMLSchema::writeXml(xmlTextWriterPtr w) const
             std::ostringstream out;
             out.precision(15);
 
-            out << xform.m_scale;
+            out << xform.m_scale.m_val;
             std::string scale = out.str();
 
             out.str(std::string());
-            out << xform.m_offset;
+            out << xform.m_offset.m_val;
             std::string offset = out.str();
 
-            out << xform.m_scale;
+            out << xform.m_scale.m_val;
             xmlTextWriterWriteElementNS(w, (const xmlChar*)"pc",
                 (const xmlChar *)"scale", NULL,
                 (const xmlChar *)scale.data());
diff --git a/src/gitsha.cpp b/src/gitsha.cpp
index c04849f..87864b1 100644
--- a/src/gitsha.cpp
+++ b/src/gitsha.cpp
@@ -1,3 +1,3 @@
 #include <pdal/gitsha.h>
-#define GIT_SHA1 "60b269e19b642b49ca10b7b52c48f0b21fc3cb3b"
+#define GIT_SHA1 "68d7edb13949c3da3e1fb1864cf61ed0a160372e"
 const char g_GIT_SHA1[] = GIT_SHA1;
diff --git a/src/plang/Array.cpp b/src/plang/Array.cpp
index a8825cd..35b2c03 100644
--- a/src/plang/Array.cpp
+++ b/src/plang/Array.cpp
@@ -102,14 +102,14 @@ PyObject* Array::buildNumpyDescription(PointViewPtr view) const
 
     for (Dimension::IdList::size_type i=0; i < dims.size(); ++i)
     {
-        Dimension::Id::Enum id = (dims[i]);
-        Dimension::Type::Enum t = view->dimType(id);
+        Dimension::Id id = (dims[i]);
+        Dimension::Type t = view->dimType(id);
         npy_intp stride = view->dimSize(id);
 
         std::string name = view->dimName(id);
 
         std::string kind("i");
-        Dimension::BaseType::Enum b = Dimension::base(t);
+        Dimension::BaseType b = Dimension::base(t);
         if (b == Dimension::BaseType::Unsigned)
             kind = "u";
         else if (b == Dimension::BaseType::Floating)
diff --git a/src/plang/BufferedInvocation.cpp b/src/plang/BufferedInvocation.cpp
index e9ef9f3..39ae511 100644
--- a/src/plang/BufferedInvocation.cpp
+++ b/src/plang/BufferedInvocation.cpp
@@ -59,7 +59,7 @@ void BufferedInvocation::begin(PointView& view, MetadataNode m)
 
     for (auto di = dims.begin(); di != dims.end(); ++di)
     {
-        Dimension::Id::Enum d = *di;
+        Dimension::Id d = *di;
         const Dimension::Detail *dd = layout->dimDetail(d);
         void *data = malloc(dd->size() * view.size());
         m_buffers.push_back(data);  // Hold pointer for deallocation
@@ -92,7 +92,7 @@ void BufferedInvocation::end(PointView& view, MetadataNode m)
 
     for (auto di = dims.begin(); di != dims.end(); ++di)
     {
-        Dimension::Id::Enum d = *di;
+        Dimension::Id d = *di;
         const Dimension::Detail *dd = layout->dimDetail(d);
         std::string name = layout->dimName(*di);
         auto found = std::find(names.begin(), names.end(), name);
diff --git a/src/plang/CMakeLists.txt b/src/plang/CMakeLists.txt
index c027663..fc8a46c 100644
--- a/src/plang/CMakeLists.txt
+++ b/src/plang/CMakeLists.txt
@@ -26,7 +26,10 @@ set_target_properties(${PDAL_PLANG_LIB_NAME} PROPERTIES
     SOVERSION "${PDAL_API_VERSION}"
     CLEAN_DIRECT_OUTPUT 1)
 
-target_link_libraries(${PDAL_PLANG_LIB_NAME} ${PDAL_BASE_LIB_NAME} ${PYTHON_LIBRARY})
+target_link_libraries(${PDAL_PLANG_LIB_NAME}
+    ${PDAL_BASE_LIB_NAME}
+    ${PDAL_UTIL_LIB_NAME}
+    ${PYTHON_LIBRARY})
 install(TARGETS ${PLANG_LIB_NAME}
     RUNTIME DESTINATION ${PDAL_BIN_INSTALL_DIR}
     LIBRARY DESTINATION ${PDAL_LIB_INSTALL_DIR}
diff --git a/src/plang/Environment.cpp b/src/plang/Environment.cpp
index 4b7f506..9b8ece6 100644
--- a/src/plang/Environment.cpp
+++ b/src/plang/Environment.cpp
@@ -298,7 +298,7 @@ void addMetadata(PyObject *list, MetadataNode m)
     }
 }
 
-int Environment::getPythonDataType(Dimension::Type::Enum t)
+int Environment::getPythonDataType(Dimension::Type t)
 {
     using namespace Dimension;
 
diff --git a/src/plang/Invocation.cpp b/src/plang/Invocation.cpp
index 9d86d56..61620ad 100644
--- a/src/plang/Invocation.cpp
+++ b/src/plang/Invocation.cpp
@@ -152,7 +152,7 @@ void Invocation::resetArguments()
 
 
 void Invocation::insertArgument(std::string const& name, uint8_t* data,
-    Dimension::Type::Enum t, point_count_t count)
+    Dimension::Type t, point_count_t count)
 {
     npy_intp mydims = count;
     int nd = 1;
@@ -176,7 +176,7 @@ void Invocation::insertArgument(std::string const& name, uint8_t* data,
 
 
 void *Invocation::extractResult(std::string const& name,
-    Dimension::Type::Enum t)
+    Dimension::Type t)
 {
     PyObject* xarr = PyDict_GetItemString(m_varsOut, name.c_str());
     if (!xarr)
@@ -201,7 +201,7 @@ void *Invocation::extractResult(std::string const& name,
     }
 
     using namespace Dimension;
-    BaseType::Enum b = Dimension::base(t);
+    BaseType b = Dimension::base(t);
     if (dtype->kind == 'i' && b != BaseType::Signed)
     {
         std::ostringstream oss;
diff --git a/src/util/Bounds.cpp b/src/util/Bounds.cpp
index 0a97663..9cc74de 100644
--- a/src/util/Bounds.cpp
+++ b/src/util/Bounds.cpp
@@ -85,8 +85,13 @@ void readpair(std::istream& istr, double& low, double& high)
 namespace pdal
 {
 
-const double BOX2D::LOWEST = (std::numeric_limits<double>::lowest)();
-const double BOX2D::HIGHEST = (std::numeric_limits<double>::max)();
+namespace
+{
+
+const double LOWEST = (std::numeric_limits<double>::lowest)();
+const double HIGHEST = (std::numeric_limits<double>::max)();
+
+}
     
 void BOX2D::clear()
 {
@@ -141,6 +146,46 @@ const BOX3D& BOX3D::getDefaultSpatialExtent()
     return v;
 }    
 
+Bounds::Bounds(const BOX3D& box) : m_box(box)
+{}
+
+
+Bounds::Bounds(const BOX2D& box) : m_box(box)
+{
+    m_box.minz = HIGHEST;
+    m_box.maxz = LOWEST;
+}
+
+BOX3D Bounds::to3d() const
+{
+    if (m_box.minz == HIGHEST && m_box.maxz == LOWEST)
+        return BOX3D();
+    return m_box;
+}
+
+BOX2D Bounds::to2d() const
+{
+    return m_box.to2d();
+}
+
+bool Bounds::is3d() const
+{
+    return (m_box.minz != HIGHEST || m_box.maxz != LOWEST);
+}
+
+
+void Bounds::set(const BOX3D& box)
+{
+    m_box = box;
+}
+
+
+void Bounds::set(const BOX2D& box)
+{
+    m_box = BOX3D(box);
+    m_box.minz = HIGHEST;
+    m_box.maxz = LOWEST;
+}
 
 std::istream& operator>>(std::istream& istr, BOX2D& bounds)
 {
@@ -249,4 +294,23 @@ std::istream& operator>>(std::istream& istr, BOX3D& bounds)
     return istr;
 }
 
+std::istream& operator>>(std::istream& in, Bounds& bounds)
+{
+    std::streampos start = in.tellg();
+    BOX3D b3d;
+    in >> b3d;
+    if (in.fail())
+    {
+        in.clear();
+        in.seekg(start);
+        BOX2D b2d;
+        in >> b2d;
+        if (!in.fail())
+            bounds.set(b2d);
+    }
+    else
+        bounds.set(b3d);
+    return in;
+}
+
 } // namespace pdal
diff --git a/src/util/CMakeLists.txt b/src/util/CMakeLists.txt
index 7fccb9f..24db80c 100644
--- a/src/util/CMakeLists.txt
+++ b/src/util/CMakeLists.txt
@@ -33,7 +33,10 @@ set(PDAL_UTIL_SOURCES
     ${PDAL_UTIL_HPP})
 
 PDAL_ADD_LIBRARY(${PDAL_UTIL_LIB_NAME} SHARED ${PDAL_UTIL_SOURCES})
-target_link_libraries(${PDAL_UTIL_LIB_NAME} ${PDAL_BOOST_LIB_NAME} ${CMAKE_DL_LIBS})
+target_link_libraries(${PDAL_UTIL_LIB_NAME}
+    PRIVATE
+        ${PDAL_BOOST_LIB_NAME}
+)
 
 set_target_properties(${PDAL_UTIL_LIB_NAME} PROPERTIES
     VERSION "${PDAL_BUILD_VERSION}"
diff --git a/src/util/FileUtils.cpp b/src/util/FileUtils.cpp
index 39f98ba..49d207a 100644
--- a/src/util/FileUtils.cpp
+++ b/src/util/FileUtils.cpp
@@ -45,6 +45,7 @@
 
 using namespace std;
 
+
 namespace pdal
 {
 
@@ -76,17 +77,18 @@ namespace FileUtils
 
 istream *openFile(string const& filename, bool asBinary)
 {
-    if (isStdin(filename))
+    std::string name(filename);
+    if (isStdin(name))
         return &cin;
 
-    if (!FileUtils::fileExists(filename))
+    if (!FileUtils::fileExists(name))
         return NULL;
 
     ios::openmode mode = ios::in;
     if (asBinary)
         mode |= ios::binary;
 
-    ifstream *ifs = new ifstream(filename, mode);
+    ifstream *ifs = new ifstream(name, mode);
     if (!ifs->good())
     {
         delete ifs;
@@ -96,17 +98,17 @@ istream *openFile(string const& filename, bool asBinary)
 }
 
 
-ostream *createFile(string const& filename, bool asBinary)
+ostream *createFile(string const& name, bool asBinary)
 {
-    if (isStdout(filename))
+    if (isStdout(name))
         return &cout;
 
     ios::openmode mode = ios::out;
     if (asBinary)
         mode |= ios::binary;
 
-    ostream *ofs = new ofstream(filename, mode);
-    if (! ofs->good())
+    ostream *ofs = new ofstream(name, mode);
+    if (!ofs->good())
     {
         delete ofs;
         return NULL;
@@ -196,11 +198,6 @@ void renameFile(const string& dest, const string& src)
 
 bool fileExists(const string& name)
 {
-    // filename may actually be a greyhound uri + pipelineId
-    string http = name.substr(0, 4);
-    if (Utils::iequals(http, "http"))
-        return true;
-
     pdalboost::system::error_code ec;
     pdalboost::filesystem::exists(name, ec);
     return pdalboost::filesystem::exists(name) || isStdin(name);
diff --git a/src/util/Utils.cpp b/src/util/Utils.cpp
index 6128937..fd2f4bb 100644
--- a/src/util/Utils.cpp
+++ b/src/util/Utils.cpp
@@ -442,46 +442,92 @@ std::string Utils::escapeJSON(const std::string &str)
     return escaped;
 }
 
-/// Break a string into a list of strings, none of which exceeds a specified
-/// length.
-/// \param[in] inputString  String to split
-/// \param[in] lineLength  Maximum length of any of the output strings
-/// \param[in] firstLength  Maximum length of any of the output strings
-/// \return  List of string split from input.
-///
-StringList Utils::wordWrap(std::string const& inputString, size_t lineLength,
+
+StringList Utils::wordWrap(std::string const& s, size_t lineLength,
     size_t firstLength)
 {
-    // stolen from http://stackoverflow.com/questions/5815227/fix-improve-word-wrap-function
+    std::vector<std::string> output;
+    if (s.empty())
+        return output;
 
     if (firstLength == 0)
         firstLength = lineLength;
 
     size_t len = firstLength;
-    StringList output;
 
-    std::istringstream iss(inputString);
+    std::istringstream iss(s);
     std::string line;
     do
     {
         std::string word;
         iss >> word;
 
-        if (line.length() + word.length() > len)
+        if ((line.length() + word.length() > len) && line.length())
         {
+            trimTrailing(line);
             output.push_back(line);
             len = lineLength;
             line.clear();
         }
+        while (word.length() > len)
+        {
+            output.push_back(word.substr(0, len));
+            word = word.substr(len);
+            len = lineLength;
+        }
         line += word + " ";
     } while (iss);
-
+    trimTrailing(line);
     if (!line.empty())
         output.push_back(line);
     return output;
 }
 
 
+StringList Utils::wordWrap2(std::string const& s, size_t lineLength,
+    size_t firstLength)
+{
+    std::vector<std::string> output;
+    if (s.empty())
+        return output;
+
+    if (firstLength == 0)
+        firstLength = lineLength;
+
+    auto pushWord = [&s, &output](size_t start, size_t end)
+    {
+        if (start != end)
+            output.push_back(s.substr(start, end - start + 1));
+    };
+
+    size_t len = firstLength;
+    size_t startPos = 0;
+    while (true)
+    {
+        size_t endPos = std::min(startPos + len - 1, s.size() - 1);
+        if (endPos + 1 == s.size())
+        {
+            pushWord(startPos, endPos);
+            return output;
+        }
+        size_t pos = endPos;
+        while (pos > startPos)
+        {
+            if (std::isspace(s[pos]) && !std::isspace(s[pos + 1]))
+            {
+                endPos = pos;
+                break;
+            }
+            pos--;
+        }
+        pushWord(startPos, endPos);
+        len = lineLength;
+        startPos = endPos + 1;
+    }
+    return output;
+}
+
+
 /// Demangle strings using the compiler-provided demangle function.
 /// \param[in] s  String to be demangled.
 /// \return  Demangled string
@@ -540,6 +586,18 @@ std::string Utils::escapeNonprinting(const std::string& s)
     return out;
 }
 
+
+double Utils::normalizeLongitude(double longitude)
+{
+    longitude = fmod(longitude, 360.0);
+    if (longitude <= -180)
+        longitude += 360;
+    else if (longitude > 180)
+        longitude -= 360;
+    return longitude;
+}
+
+
 // Useful for debug on occasion.
 std::string Utils::hexDump(const char *buf, size_t count)
 {
diff --git a/test/data/apps/pdalinfo_stage.txt b/test/data/apps/pdalinfo_stage.txt
index 9999470..1f03a82 100644
--- a/test/data/apps/pdalinfo_stage.txt
+++ b/test/data/apps/pdalinfo_stage.txt
@@ -6,18 +6,8 @@
     {
         "Option":
         {
-            "Name": "debug",
-            "Value": "false"
-        },
-        "Option":
-        {
             "Name": "filename",
             "Value": ".\/apps\/simple.las"
-        },
-        "Option":
-        {
-            "Name": "verbose",
-            "Value": "0"
         }
     },
     "NumPoints": "1065",
diff --git a/test/data/apps/pdalinfo_stage_nosrs.txt b/test/data/apps/pdalinfo_stage_nosrs.txt
index d26e615..f6f310f 100644
--- a/test/data/apps/pdalinfo_stage_nosrs.txt
+++ b/test/data/apps/pdalinfo_stage_nosrs.txt
@@ -6,18 +6,8 @@
     {
         "Option":
         {
-            "Name": "debug",
-            "Value": "false"
-        },
-        "Option":
-        {
             "Name": "filename",
             "Value": "..\/..\/test\/data\/apps\/simple.las"
-        },
-        "Option":
-        {
-            "Name": "verbose",
-            "Value": "0"
         }
     },
     "NumPoints": "1065",
diff --git a/test/data/bpf/bpf2nitf.xml.in b/test/data/bpf/bpf2nitf.xml.in
index 64accc6..f012de4 100644
--- a/test/data/bpf/bpf2nitf.xml.in
+++ b/test/data/bpf/bpf2nitf.xml.in
@@ -14,37 +14,8 @@
         <Option name="idatim" type="string">20131206140713</Option>
         <Option name="fscltx" type="string">SIC:0 CH_FO</Option>
         <Option name="ftitle" type="string">output.ntf</Option>
-        <Option name="geolob" type="string">GEOLOB00048017898386021508996+063.7163336371+034.</Option>
-        <Option name="metadata">
-            <Options>
-                <Option name="software_id">
-                    forward
-                </Option>
-                <Option name="system_id">
-                    PDAL2NTF
-                </Option>
-                <Option name="creation_doy">
-                    forward
-                </Option>
-                <Option name="creation_year">
-                    forward
-                </Option>
-                <Option name="vlr">
-                    dGhpcyBpcyBzb21lIG5ldyB2bHIgdGV4dA==
-                    <Options>
-                        <Option name="record_id">
-                            4321
-                        </Option>
-                        <Option name="user_id">
-                            new VLR
-                        </Option>
-                        <Option name="description">
-                            a description of a new VLR
-                        </Option>
-                    </Options>
-                </Option>
-            </Options>
-        </Option>
+        <Option name="forward">software_id, creation_doy, creation_year</Option>
+        <Option name="system_id">PDAL2NTF</Option>
         <Reader type="readers.bpf">
             <Option name="filename">
                 @CMAKE_SOURCE_DIR@/test/data/bpf/utm15.bpf
diff --git a/test/data/filters/crop_wkt.xml.in b/test/data/filters/crop_wkt.xml.in
index 9e44fa7..b2d5929 100644
--- a/test/data/filters/crop_wkt.xml.in
+++ b/test/data/filters/crop_wkt.xml.in
@@ -33,7 +33,6 @@
             <Option name="outside">
                 false
             </Option>
-            <Option name="x_dim">readers.las.X</Option>
             <Reader type="readers.las">
                 <!-- <Option name="filename">
                     @CMAKE_SOURCE_DIR@/test/data/autzen-colorized-1.2-3.las
diff --git a/test/data/filters/ferry.json.in b/test/data/filters/ferry.json.in
index 498d992..a211003 100644
--- a/test/data/filters/ferry.json.in
+++ b/test/data/filters/ferry.json.in
@@ -10,9 +10,7 @@
     },
     {
       "type": "filters.reprojection",
-      "out_srs": "EPSG:4326+4326",
-      "scale_x": 0.0000001,
-      "scale_y": 0.0000001
+      "out_srs": "EPSG:4326+4326"
     },
     "@CMAKE_SOURCE_DIR@/test/temp/colorized.las"
   ]
diff --git a/test/data/filters/ferry.xml.in b/test/data/filters/ferry.xml.in
index b73e0d1..23b67c9 100644
--- a/test/data/filters/ferry.xml.in
+++ b/test/data/filters/ferry.xml.in
@@ -8,12 +8,6 @@
             <Option name="out_srs">
                 EPSG:4326+4326
             </Option>
-            <Option name="scale_x">
-                0.0000001
-            </Option>
-            <Option name="scale_y">
-                0.0000001
-            </Option>
             <Filter type="filters.ferry">
                 <Option name="dimensions">
                     X=StatePlaneX, Y=StatePlaneY
diff --git a/test/data/filters/hexbin.xml.in b/test/data/filters/hexbin.xml.in
index c7fee7e..d42660b 100644
--- a/test/data/filters/hexbin.xml.in
+++ b/test/data/filters/hexbin.xml.in
@@ -14,12 +14,6 @@
             <Option name="sample_size">
                 5000
             </Option>
-            <Option name="x_dim">
-                readers.las.X
-            </Option>
-            <Option name="y_dim">
-                Y
-            </Option>
             <Option name="precision">
                 4
             </Option>
diff --git a/test/data/filters/merge3.json.in b/test/data/filters/merge3.json.in
index ea042b4..acca6b7 100644
--- a/test/data/filters/merge3.json.in
+++ b/test/data/filters/merge3.json.in
@@ -9,8 +9,7 @@
         "spatialreference": "EPSG:2028"
     },
     {
-      "type": "filters.merge",
-      "verbose": "5"
+      "type": "filters.merge"
     }
   ]
 }
diff --git a/test/data/filters/merge3.xml.in b/test/data/filters/merge3.xml.in
index b407e29..e35829f 100644
--- a/test/data/filters/merge3.xml.in
+++ b/test/data/filters/merge3.xml.in
@@ -1,7 +1,6 @@
 <?xml version="1.0"?>
 <Pipeline version="1.0">
         <Filter type="filters.merge">
-            <Option name="verbose">5</Option>
             <Reader type="readers.las">
                 <Option name="spatialreference">EPSG:2028</Option>
                 <Option name="filename">
diff --git a/test/data/filters/reproject.xml.in b/test/data/filters/reproject.xml.in
index d674d4b..a3ae3ff 100644
--- a/test/data/filters/reproject.xml.in
+++ b/test/data/filters/reproject.xml.in
@@ -34,12 +34,6 @@ def filter(ins,outs):
                 <Option name="spatialreference">
                     EPSG:2993
                 </Option>
-                <Option name="debug">
-                    true
-                </Option>
-                <Option name="verbose">
-                    6
-                </Option>
             </Reader>
         </Filter>
     </Writer>
diff --git a/test/data/io/text-writer-space-delimited.xml.in b/test/data/io/text-writer-space-delimited.xml.in
deleted file mode 100644
index c33b20d..0000000
--- a/test/data/io/text-writer-space-delimited.xml.in
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Pipeline version="1.0">
-    <Writer type="writers.text">
-        <Option name="filename">
-            STDOUT
-        </Option>
-        <Option name="delimiter"> </Option>
-        <Option name="write_header">true</Option>
-        <Option name="order">X,Y,Z,Red,Green,Blue</Option>
-        <Option name="keep_unspecified">true</Option>
-        <Reader type="readers.las">
-            <Option name="filename">
-                @CMAKE_SOURCE_DIR@/test/data/las/1.2-with-color.las
-            </Option>
-            <Option name="spatialreference">
-                EPSG:2993
-	    </Option>
-        </Reader>
-    </Writer>
-</Pipeline>
diff --git a/test/data/misc/opts2json.txt b/test/data/misc/opts2json.txt
deleted file mode 100644
index 5db3e80..0000000
--- a/test/data/misc/opts2json.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-  "options" :
-  {
-    "testa" :
-    {
-      "value" : "This is a test",
-      "description" : ""
-    },
-    "testb" :
-    {
-      "value" : "56",
-      "description" : ""
-    },
-    "testc" :
-    {
-      "value" : "27.5",
-      "description" : "Testing testc"
-    },
-    "teste" :
-    {
-      "value" : "Testing option test e",
-      "description" : ""
-    }
-  }
-}
diff --git a/test/data/nitf/chipper.json.in b/test/data/nitf/chipper.json.in
deleted file mode 100644
index 914b0ef..0000000
--- a/test/data/nitf/chipper.json.in
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "pipeline": [
-    {
-      "filename": "@CMAKE_SOURCE_DIR@/test/data/nitf/autzen-utm10.ntf",
-      "spatialreference": "EPSG:32610",
-      "debug": "true",
-      "verbose": 7
-    },
-    {
-      "type": "filters.chipper",
-        "capacity": 15
-    }
-  ]
-}
diff --git a/test/data/nitf/chipper.xml.in b/test/data/nitf/chipper.xml.in
deleted file mode 100644
index 17f25cf..0000000
--- a/test/data/nitf/chipper.xml.in
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0"?>
-<Pipeline version="1.0">
-      <Filter type="filters.chipper">
-        <Option name="capacity">15</Option>
-          <Reader type="readers.nitf">
-            <Option name="spatialreference">EPSG:32610</Option>
-	    <Option name="filename">@CMAKE_SOURCE_DIR@/test/data/nitf/autzen-utm10.ntf</Option>
-            <Option name="debug">true</Option>
-            <Option name="verbose">7</Option>
-          </Reader>
-      </Filter>
-</Pipeline>
diff --git a/test/data/nitf/las2nitf.xml.in b/test/data/nitf/las2nitf.xml.in
index 260ad00..cef669d 100644
--- a/test/data/nitf/las2nitf.xml.in
+++ b/test/data/nitf/las2nitf.xml.in
@@ -14,7 +14,6 @@
         <Option name="idatim" type="string">20131206140713</Option>
         <Option name="fscltx" type="string">SIC:0 CH_FO</Option>
         <Option name="ftitle" type="string">output.ntf</Option>
-        <Option name="geolob" type="string">GEOLOB00048017898386021508996+063.7163336371+034.</Option>
         <Option name="software_id">
             forward
         </Option>
diff --git a/test/data/nitf/reader.xml b/test/data/nitf/reader.xml
index 02ca9ed..b1fff9a 100644
--- a/test/data/nitf/reader.xml
+++ b/test/data/nitf/reader.xml
@@ -4,11 +4,5 @@
                 <Option name="filename">
                     ../07015_Hamrin_Mountains_Tile_000249_nga.ntf
                 </Option>
-                <Option name="debug">
-                    true
-                </Option>  
-                <Option name="verbose">
-                    7
-                </Option> 
             </Reader>
 </Pipeline>
diff --git a/test/data/oracle/big-write.xml b/test/data/oracle/big-write.xml
index d6b7214..0864b94 100644
--- a/test/data/oracle/big-write.xml
+++ b/test/data/oracle/big-write.xml
@@ -1,12 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Pipeline version="1.0">
     <Writer type="writers.oci">
-        <Option name="debug">
-            true
-        </Option>
-        <Option name="verbose">
-            1
-        </Option>
         <Option name="connection">
             grid/grid at localhost/vm
         </Option>
diff --git a/test/data/oracle/qfit-write.xml b/test/data/oracle/qfit-write.xml
index 2c8c7cb..2ad67bc 100644
--- a/test/data/oracle/qfit-write.xml
+++ b/test/data/oracle/qfit-write.xml
@@ -1,12 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Pipeline version="1.0">
     <Writer type="writers.oci">
-        <Option name="debug">
-            true
-        </Option>
-        <Option name="verbose">
-            1
-        </Option>
         <Option name="connection">
             lidar/lidar at oracle.hobu.biz/lidar
         </Option>
@@ -60,12 +54,6 @@
 		<Option name="filename">
 		    ../qfit/14-word.qi
 		</Option>
-		<Option name="debug">
-		    true
-		</Option>
-		<Option name="verbose">
-		    1
-		</Option>
 		<Option name="flip_coordinates">
 		    true
 		</Option>
diff --git a/test/data/oracle/read-colorize.xml b/test/data/oracle/read-colorize.xml
index 97c9e43..48a1ba4 100644
--- a/test/data/oracle/read-colorize.xml
+++ b/test/data/oracle/read-colorize.xml
@@ -54,12 +54,6 @@
                 <Option name="connection">
                     lidar/lidar at lidar.hobu.biz/lidar
                 </Option>
-                <Option name="debug">
-                    true
-                </Option>
-                <Option name="verbose">
-                    3
-                </Option>
             </Reader>
         </Filter>
     </Writer>
diff --git a/test/data/oracle/write.xml b/test/data/oracle/write.xml
index deae518..cd72bee 100644
--- a/test/data/oracle/write.xml
+++ b/test/data/oracle/write.xml
@@ -54,7 +54,6 @@
             true
         </Option>
         <Filter type="filters.stats">
-           <Option name="exact_dimensions">Classification</Option>
            <Option name="dimensions">readers.las.X, readers.las.Y, readers.las.Z, Classification</Option>        
                 <Filter type="filters.chipper">
                     <Option name="capacity">
diff --git a/test/data/pipeline/bpf2nitf.json.in b/test/data/pipeline/bpf2nitf.json.in
index fe50f5f..94f3d34 100644
--- a/test/data/pipeline/bpf2nitf.json.in
+++ b/test/data/pipeline/bpf2nitf.json.in
@@ -13,7 +13,6 @@
       "idatim":"20131206140713",
       "fscltx":"SIC:0 CH_FO",
       "ftitle":"output.ntf",
-      "geolob":"GEOLOB00048017898386021508996+063.7163336371+034.",
       "forward":"software_id, creation_doy, creation_year",
       "system_id":"PDAL2NTF"
     }
diff --git a/test/data/pipeline/crop-stats.json.in b/test/data/pipeline/crop-stats.json.in
index ef4d71a..19ea5c7 100644
--- a/test/data/pipeline/crop-stats.json.in
+++ b/test/data/pipeline/crop-stats.json.in
@@ -7,7 +7,6 @@
     },
     {
       "type":"filters.stats",
-      "exact_dimensions":"Classification",
       "dimensions":"readers.las.X, readers.las.Y, readers.las.Z, Classification"
     },
     {
diff --git a/test/data/pipeline/crop_wkt.json.in b/test/data/pipeline/crop_wkt.json.in
index dfe0bd2..447849c 100644
--- a/test/data/pipeline/crop_wkt.json.in
+++ b/test/data/pipeline/crop_wkt.json.in
@@ -23,8 +23,7 @@
       434.609375,636539.155163229792379 851056.63721774588339
       422.6396484375,636889.412951239268295 851528.512293258565478
       422.7001953125))",
-      "outside":false,
-      "x_dim":"readers.las.X"
+      "outside":false
     },
     {
       "filename":"@CMAKE_SOURCE_DIR@/test/temp/crop-wkt.las",
diff --git a/test/data/pipeline/ferry-reproject.json.in b/test/data/pipeline/ferry-reproject.json.in
index 498d992..a211003 100644
--- a/test/data/pipeline/ferry-reproject.json.in
+++ b/test/data/pipeline/ferry-reproject.json.in
@@ -10,9 +10,7 @@
     },
     {
       "type": "filters.reprojection",
-      "out_srs": "EPSG:4326+4326",
-      "scale_x": 0.0000001,
-      "scale_y": 0.0000001
+      "out_srs": "EPSG:4326+4326"
     },
     "@CMAKE_SOURCE_DIR@/test/temp/colorized.las"
   ]
diff --git a/test/data/pipeline/hexbin-info.json.in b/test/data/pipeline/hexbin-info.json.in
index c994bbf..9198f2d 100644
--- a/test/data/pipeline/hexbin-info.json.in
+++ b/test/data/pipeline/hexbin-info.json.in
@@ -6,8 +6,6 @@
       "edge_size":0.0,
       "threshold":10,
       "sample_size":5000,
-      "x_dim":"readers.las.X",
-      "y_dim":"Y",
       "precision":4
     }
   ]
diff --git a/test/data/pipeline/hexbin.json.in b/test/data/pipeline/hexbin.json.in
index 0b757c0..c97c945 100644
--- a/test/data/pipeline/hexbin.json.in
+++ b/test/data/pipeline/hexbin.json.in
@@ -6,8 +6,6 @@
       "edge_size":0.0,
       "threshold":10,
       "sample_size":5000,
-      "x_dim":"readers.las.X",
-      "y_dim":"Y",
       "precision":4
     },
     "@CMAKE_SOURCE_DIR@/test/temp/hexbin.las"
diff --git a/test/data/pipeline/las2nitf.json.in b/test/data/pipeline/las2nitf.json.in
index 52f6d37..77f5b56 100644
--- a/test/data/pipeline/las2nitf.json.in
+++ b/test/data/pipeline/las2nitf.json.in
@@ -13,7 +13,6 @@
       "idatim":"20131206140713",
       "fscltx":"SIC:0 CH_FO",
       "ftitle":"output.ntf",
-      "geolob":"GEOLOB00048017898386021508996+063.7163336371+034.",
       "forward":"software_id, creation_doy, creation_year",
       "system_id":"PDAL2NTF"
     }
diff --git a/test/data/pipeline/nitf-chipper.json.in b/test/data/pipeline/nitf-chipper.json.in
index 914b0ef..1a42e55 100644
--- a/test/data/pipeline/nitf-chipper.json.in
+++ b/test/data/pipeline/nitf-chipper.json.in
@@ -2,13 +2,11 @@
   "pipeline": [
     {
       "filename": "@CMAKE_SOURCE_DIR@/test/data/nitf/autzen-utm10.ntf",
-      "spatialreference": "EPSG:32610",
-      "debug": "true",
-      "verbose": 7
+      "spatialreference": "EPSG:32610"
     },
     {
       "type": "filters.chipper",
-        "capacity": 15
+      "capacity": 15
     }
   ]
 }
diff --git a/test/data/pipeline/p2g-writer.json.in b/test/data/pipeline/p2g-writer.json.in
index 674ab74..167bf30 100644
--- a/test/data/pipeline/p2g-writer.json.in
+++ b/test/data/pipeline/p2g-writer.json.in
@@ -2,16 +2,13 @@
   "pipeline":[
     {
       "filename":"@CMAKE_SOURCE_DIR@/test/data/las/1.2-with-color.las",
-      "spatialreference":"@CMAKE_SOURCE_DIR@/test/data/las/1.2-with-color.las.wkt",
-      "debug":true,
-      "verbose":6
+      "spatialreference":"@CMAKE_SOURCE_DIR@/test/data/las/1.2-with-color.las.wkt"
     },
     {
       "type":"writers.p2g",
       "grid_dist_x":6.0,
       "grid_dist_y":6.0,
       "radius":8.4852813742385713,
-      "chunk_size":1234,
       "filename":"@CMAKE_SOURCE_DIR@/test/temp/autzen_grid",
       "output_type":"min",
       "output_type":"max",
diff --git a/test/data/pipeline/pipeline_interpolate.xml.in b/test/data/pipeline/pipeline_interpolate.xml.in
index e137e10..c9a7ec1 100644
--- a/test/data/pipeline/pipeline_interpolate.xml.in
+++ b/test/data/pipeline/pipeline_interpolate.xml.in
@@ -10,9 +10,6 @@
         <Option name="radius">
             8.4852813742385713
         </Option>
-        <Option name="chunk_size">
-            1234
-        </Option>
         <Option name="filename">
             @CMAKE_SOURCE_DIR@/test/temp/autzen_grid
         </Option>
@@ -47,12 +44,6 @@
             <Option name="spatialreference">
                 @CMAKE_SOURCE_DIR@/test/data/las/1.2-with-color.las.wkt
             </Option>
-            <Option name="debug">
-                true
-            </Option>
-            <Option name="verbose">
-                6
-            </Option>
         </Reader>
     </Writer>
 </Pipeline>
diff --git a/test/data/pipeline/pipeline_metadata_writer.xml.in b/test/data/pipeline/pipeline_metadata_writer.xml.in
index bfea24b..5c23412 100644
--- a/test/data/pipeline/pipeline_metadata_writer.xml.in
+++ b/test/data/pipeline/pipeline_metadata_writer.xml.in
@@ -4,47 +4,8 @@
         <Option name="filename">
             @CMAKE_SOURCE_DIR@/test/temp/metadata-output.las
         </Option>
-        <Option name="metadata">
-            <Options>
-                <Option name="software_id">
-                    forward
-                </Option>
-                <Option name="system_id">
-                    SOMEVALUE
-                </Option>
-                <Option name="creation_doy">
-                    forward
-                </Option>            
-                <Option name="creation_year">
-                    forward
-                </Option>            
-                <Option name="vlr">
-                    forward
-                    <Options>
-                        <Option name="record_id">
-                            1234
-                        </Option>
-                        <Option name="user_id">
-                            hobu
-                        </Option>                
-                    </Options>
-                </Option>
-                <Option name="vlr">
-                    dGhpcyBpcyBzb21lIG5ldyB2bHIgdGV4dA==
-                    <Options>
-                        <Option name="record_id">
-                            4321
-                        </Option>
-                        <Option name="user_id">
-                            new VLR
-                        </Option>                
-                        <Option name="description">
-                            a description of a new VLR
-                        </Option>                
-                    </Options>
-                </Option>
-            </Options>
-        </Option>    
+        <Option name="forward">software_id,creation_doy,creation_year,vlr</Option>
+        <Option name="system_id">SOMEVALUE</Option>
         <Reader type="readers.las">
             <Option name="filename">
                 @CMAKE_SOURCE_DIR@/test/data/las/interesting.las
diff --git a/test/data/pipeline/pipeline_write.xml.in b/test/data/pipeline/pipeline_write.xml.in
index 17fa30b..ab83164 100644
--- a/test/data/pipeline/pipeline_write.xml.in
+++ b/test/data/pipeline/pipeline_write.xml.in
@@ -1,9 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Pipeline version="1.0">
     <Writer type="writers.las">
-        <Option name="metadata">
-            <Options/>
-          </Option>
         <Option name="filename">
             @CMAKE_SOURCE_DIR@/test/temp/pdal-compressed.laz
         </Option>
@@ -14,7 +11,6 @@
             2
         </Option>        
         <Filter type="filters.stats">
-            <Option name="exact_dimensions">Classification</Option>
             <Option name="dimensions">readers.las.X, readers.las.Y, readers.las.Z, Classification</Option>
             <Filter type="filters.crop">
                 <Option name="bounds">
diff --git a/test/data/pipeline/qfit2las.json.in b/test/data/pipeline/qfit2las.json.in
index e15cfef..a3529a5 100644
--- a/test/data/pipeline/qfit2las.json.in
+++ b/test/data/pipeline/qfit2las.json.in
@@ -2,16 +2,13 @@
   "pipeline":[
     {
       "filename":"@CMAKE_SOURCE_DIR@/test/data/qfit/14-word.qi",
-      "debug":true,
-      "verbose":1,
       "flip_coordinates":true,
       "scale_z":0.001,
       "spatialreference":"EPSG:4269+3855",
       "log":"stdlog"
     },
     {
-      "filename":"@CMAKE_SOURCE_DIR@/test/temp/out2.las",
-      "debug":true
+      "filename":"@CMAKE_SOURCE_DIR@/test/temp/out2.las"
     }
   ]
 }
diff --git a/test/data/pipeline/reproject.json.in b/test/data/pipeline/reproject.json.in
index cfb1266..75e3917 100644
--- a/test/data/pipeline/reproject.json.in
+++ b/test/data/pipeline/reproject.json.in
@@ -2,9 +2,7 @@
   "pipeline":[
     {
       "filename":"@CMAKE_SOURCE_DIR@/test/data/las/1.2-with-color.las",
-      "spatialreference":"EPSG:2993",
-      "debug":true,
-      "verbose":6
+      "spatialreference":"EPSG:2993"
     },
     {
       "type":"filters.predicate",
diff --git a/test/data/pipeline/sort2.json.in b/test/data/pipeline/sort2.json.in
new file mode 100644
index 0000000..9dc06a6
--- /dev/null
+++ b/test/data/pipeline/sort2.json.in
@@ -0,0 +1,10 @@
+{
+  "pipeline": [
+    "@CMAKE_SOURCE_DIR@/test/data/las/1.2-with-color.las",
+    {
+        "type": "filters.sort",
+        "dimension": "X"
+    },
+    "@CMAKE_SOURCE_DIR@/test/temp/sorted.las"
+  ]
+}
diff --git a/test/data/pipeline/transformation.json.in b/test/data/pipeline/transformation.json.in
new file mode 100644
index 0000000..f5eebed
--- /dev/null
+++ b/test/data/pipeline/transformation.json.in
@@ -0,0 +1,12 @@
+{
+  "pipeline":[
+    {
+      "filename":"@CMAKE_SOURCE_DIR@/test/data/las/1.2-with-color.las"
+    },
+    {
+      "type":"filters.transformation",
+      "matrix": "-1 0 0 1 0 1 0 2 0 0 1 3 0 0 0 1"
+    },
+    "@CMAKE_SOURCE_DIR@/test/temp/out2.las"
+  ]
+}
diff --git a/test/data/ply/text_extradim.ply b/test/data/ply/text_extradim.ply
new file mode 100644
index 0000000..b22b552
--- /dev/null
+++ b/test/data/ply/text_extradim.ply
@@ -0,0 +1,19 @@
+ply
+format ascii 1.0
+comment VCGLIB generated
+element vertex 1
+property float x
+property float y
+property float z
+property float nx
+property float ny
+property float nz
+property uchar red
+property uchar green
+property char blue
+property uchar alpha
+property int omg
+element face 0
+property list uchar int vertex_indices
+end_header
+-2.64944 -13.0955 0.00640115 -0.0237552 -0.00902114 0.999665 63 200 64 255 1234
diff --git a/test/data/pts/test.pts b/test/data/pts/test.pts
new file mode 100644
index 0000000..25992dd
--- /dev/null
+++ b/test/data/pts/test.pts
@@ -0,0 +1,20 @@
+19
+3.980972 -2.006119 -0.010086 -1035 97 59 38
+-25.050461 -2.689682 -0.124985 -1164 32 19 11
+-21.257339 -16.137466 -2.000961 -1397 15 10 10
+-17.998978 -24.000290 -0.014267 -935 38 25 19
+-19.475418 -24.485733 -0.103165 -1212 17 13 12
+-19.483017 -24.488449 -0.121323 -1218 16 12 11
+-19.377609 -24.499924 -1.078964 -1311 13 9 8
+-19.504745 -24.508835 -1.603256 -1249 19 14 13
+-19.503983 -24.513992 -1.596115 -1292 15 12 12
+-19.501144 -24.502396 -1.659653 -1261 20 15 12
+-19.500870 -24.506485 -1.639847 -1275 19 14 11
+-19.500046 -24.518112 -1.600815 -1275 19 15 11
+-19.500992 -24.505173 -1.619644 -1230 20 15 12
+-19.505936 -24.500900 -1.617966 -1248 21 16 13
+-19.502487 -24.524185 -1.573502 -1348 17 13 13
+-19.503708 -24.515854 -1.588211 -1331 17 14 13
+-19.503311 -24.518600 -1.580551 -1326 17 12 12
+-19.502060 -24.526901 -1.565781 -1323 14 12 11
+-19.501053 -24.533554 -1.533951 -1307 17 13 12
diff --git a/test/data/qfit/conversion.xml.in b/test/data/qfit/conversion.xml.in
index e742c40..aac14bb 100644
--- a/test/data/qfit/conversion.xml.in
+++ b/test/data/qfit/conversion.xml.in
@@ -11,12 +11,6 @@
             <Option name="filename">
                 @CMAKE_SOURCE_DIR@/test/data/qfit/14-word.qi
             </Option>
-            <Option name="debug">
-                true
-            </Option>
-            <Option name="verbose">
-                1
-            </Option>
             <Option name="flip_coordinates">
                 true
             </Option>
diff --git a/test/data/qfit/little-endian-conversion.xml.in b/test/data/qfit/little-endian-conversion.xml.in
index c3974ae..b8e0a17 100644
--- a/test/data/qfit/little-endian-conversion.xml.in
+++ b/test/data/qfit/little-endian-conversion.xml.in
@@ -11,12 +11,6 @@
             <Option name="filename">
                 @CMAKE_SOURCE_DIR@/test/data/qfit/20101120_000244.ATM4BT2.qi
             </Option>
-            <Option name="debug">
-                true
-            </Option>
-            <Option name="verbose">
-                1
-            </Option>
             <Option name="flip_coordinates">
                 true
             </Option>
diff --git a/test/data/qfit/reader.xml.in b/test/data/qfit/reader.xml.in
index 05ca05f..e2b7b85 100644
--- a/test/data/qfit/reader.xml.in
+++ b/test/data/qfit/reader.xml.in
@@ -4,12 +4,6 @@
         <Option name="filename">
             @CMAKE_SOURCE_DIR@/test/data/qfit/14-word.qi
         </Option>
-        <Option name="debug">
-            true
-        </Option>
-        <Option name="verbose">
-            1
-        </Option>
         <Option name="flip_coordinates">
             true
         </Option>
diff --git a/test/data/soci/read-cloud.xml b/test/data/soci/read-cloud.xml
index a339198..f318a83 100644
--- a/test/data/soci/read-cloud.xml
+++ b/test/data/soci/read-cloud.xml
@@ -28,12 +28,6 @@
             <Option name="connection">
                 host='localhost' dbname='lidar' user='hobu'
             </Option>
-            <Option name="debug">
-                true
-            </Option>
-            <Option name="verbose">
-                3
-            </Option>
         </Reader>
     </Writer>
 </Pipeline>
diff --git a/test/data/soci/read.xml b/test/data/soci/read.xml
index 575e6df..3ce8746 100644
--- a/test/data/soci/read.xml
+++ b/test/data/soci/read.xml
@@ -33,12 +33,6 @@
             <Option name="connection">
                 host='localhost' dbname='lidar' user='hobu'
             </Option>
-            <Option name="debug">
-                true
-            </Option>
-            <Option name="verbose">
-                3
-            </Option>
         </Reader>
     </Writer>
 </Pipeline>
diff --git a/test/unit/BoundsTest.cpp b/test/unit/BoundsTest.cpp
index 25a6b3f..862ea45 100644
--- a/test/unit/BoundsTest.cpp
+++ b/test/unit/BoundsTest.cpp
@@ -305,3 +305,46 @@ TEST(BoundsTest, test_precisionloss)
 
     EXPECT_DOUBLE_EQ(b2.minx, 0.123456789);
 }
+
+TEST(BoundsTest, b1)
+{
+    std::string s("([0,1],[0,1])");
+    std::istringstream iss(s);
+
+    Bounds b;
+
+    iss >> b;
+    EXPECT_FALSE(b.is3d());
+    EXPECT_TRUE(b.to3d().empty());
+
+    BOX2D box = b.to2d();
+    EXPECT_EQ(box.minx, 0.0);
+    EXPECT_EQ(box.miny, 0.0);
+    EXPECT_EQ(box.maxx, 1.0);
+    EXPECT_EQ(box.maxy, 1.0);
+}
+
+TEST(BoundsTest, b2)
+{
+    std::string s("([0,1],[0,1], [0,2])");
+    std::istringstream iss(s);
+
+    Bounds b;
+
+    iss >> b;
+    EXPECT_TRUE(b.is3d());
+
+    BOX2D box = b.to2d();
+    EXPECT_EQ(box.minx, 0.0);
+    EXPECT_EQ(box.miny, 0.0);
+    EXPECT_EQ(box.maxx, 1.0);
+    EXPECT_EQ(box.maxy, 1.0);
+
+    BOX3D box3 = b.to3d();
+    EXPECT_EQ(box3.minx, 0.0);
+    EXPECT_EQ(box3.miny, 0.0);
+    EXPECT_EQ(box3.maxx, 1.0);
+    EXPECT_EQ(box3.maxy, 1.0);
+    EXPECT_EQ(box3.minz, 0.0);
+    EXPECT_EQ(box3.maxz, 2.0);
+}
diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt
index 7860a69..42d6e57 100644
--- a/test/unit/CMakeLists.txt
+++ b/test/unit/CMakeLists.txt
@@ -26,6 +26,7 @@ include_directories(
     ${PROJECT_SOURCE_DIR}/io/las
     ${PROJECT_SOURCE_DIR}/io/optech
     ${PROJECT_SOURCE_DIR}/io/ply
+    ${PROJECT_SOURCE_DIR}/io/pts
     ${PROJECT_SOURCE_DIR}/io/qfit
     ${PROJECT_SOURCE_DIR}/io/sbet
     ${PROJECT_SOURCE_DIR}/io/text
@@ -62,7 +63,6 @@ PDAL_ADD_TEST(pdal_kernel_test FILES KernelTest.cpp)
 PDAL_ADD_TEST(pdal_log_test FILES LogTest.cpp)
 PDAL_ADD_TEST(pdal_metadata_test FILES MetadataTest.cpp)
 PDAL_ADD_TEST(pdal_options_test FILES OptionsTest.cpp)
-PDAL_ADD_TEST(pdal_pdalutils_test FILES PDALUtilsTest.cpp)
 PDAL_ADD_TEST(pdal_pipeline_manager_test FILES PipelineManagerTest.cpp)
 PDAL_ADD_TEST(pdal_plugin_manager_test FILES PluginManagerTest.cpp)
 PDAL_ADD_TEST(pdal_point_view_test FILES PointViewTest.cpp)
@@ -93,6 +93,7 @@ PDAL_ADD_TEST(pdal_io_las_writer_test FILES io/las/LasWriterTest.cpp)
 PDAL_ADD_TEST(pdal_io_optech_test FILES io/optech/OptechReaderTest.cpp)
 PDAL_ADD_TEST(pdal_io_ply_reader_test FILES io/ply/PlyReaderTest.cpp)
 PDAL_ADD_TEST(pdal_io_ply_writer_test FILES io/ply/PlyWriterTest.cpp)
+PDAL_ADD_TEST(pdal_io_pts_reader_test FILES io/pts/PtsReaderTest.cpp)
 PDAL_ADD_TEST(pdal_io_qfit_test FILES io/qfit/QFITReaderTest.cpp)
 PDAL_ADD_TEST(pdal_io_sbet_reader_test FILES io/sbet/SbetReaderTest.cpp)
 PDAL_ADD_TEST(pdal_io_sbet_writer_test FILES io/sbet/SbetWriterTest.cpp)
diff --git a/test/unit/CompressionTest.cpp b/test/unit/CompressionTest.cpp
index 370c858..2755b7a 100644
--- a/test/unit/CompressionTest.cpp
+++ b/test/unit/CompressionTest.cpp
@@ -133,7 +133,7 @@ TEST(Compression, Simple)
 TEST(Compression, types)
 {
     using namespace Dimension;
-    Type::Enum types[] = {
+    Type types[] = {
         Type::Unsigned8, Type::Unsigned16, Type::Unsigned32, Type::Unsigned64,
         Type::Signed8, Type::Signed16, Type::Signed32, Type::Signed64,
         Type::Float, Type::Double
diff --git a/test/unit/KernelTest.cpp b/test/unit/KernelTest.cpp
index 2f28cc9..bd2f420 100644
--- a/test/unit/KernelTest.cpp
+++ b/test/unit/KernelTest.cpp
@@ -62,6 +62,11 @@ TEST(KernelTest, parseOption)
     ok = Kernel::test_parseOption("--read1ers.las.foobar=baz",
         stage, option, value);
     EXPECT_FALSE(ok);
+
+    ok = Kernel::test_parseOption("--readers.p2g.foobar",
+        stage, option, value);
+    EXPECT_TRUE(ok);
+    EXPECT_EQ(value, "");
 }
 
 }
diff --git a/test/unit/OptionsTest.cpp b/test/unit/OptionsTest.cpp
index b030350..03ad0d7 100644
--- a/test/unit/OptionsTest.cpp
+++ b/test/unit/OptionsTest.cpp
@@ -51,24 +51,6 @@ const std::string xml_str_ref = "<Name>my_string</Name><Value>Yow.</Value><Descr
 namespace pdal
 {
 
-TEST(OptionsTest, test_static_options)
-{
-    Options ops;
-
-    FauxReader reader;
-    reader.setOptions(ops);
-
-    CropFilter crop;
-    crop.setOptions(ops);
-    crop.setInput(reader);
-    auto opts = crop.getDefaultOptions();
-    EXPECT_EQ(opts.getOptions().size(), 4u);
-    EXPECT_TRUE(opts.hasOption("bounds"));
-    EXPECT_TRUE(opts.hasOption("inside"));
-    EXPECT_TRUE(opts.hasOption("polygon"));
-    EXPECT_FALSE(opts.hasOption("metes"));
-}
-
 TEST(OptionsTest, test_option_writing)
 {
     std::ostringstream ostr_i;
@@ -76,198 +58,16 @@ TEST(OptionsTest, test_option_writing)
     std::ostringstream ostr_s;
     const std::string ref_s = xml_header + xml_str_ref;
 
-    const Option option_i("my_int", (uint16_t)17,
-        "This is my integral option.");
+    const Option option_i("my_int", (uint16_t)17);
     EXPECT_TRUE(option_i.getName() == "my_int");
-    EXPECT_TRUE(option_i.getDescription() == "This is my integral option.");
-    EXPECT_TRUE(option_i.getValue<uint16_t>() == 17);
-    EXPECT_TRUE(option_i.getValue<std::string>() == "17");
+    EXPECT_TRUE(option_i.getValue() == "17");
 
-    const Option option_s("my_string", "Yow.", "This is my stringy option.");
+    const Option option_s("my_string", "Yow.");
     EXPECT_TRUE(option_s.getName() == "my_string");
-    EXPECT_TRUE(option_s.getDescription() == "This is my stringy option.");
-    EXPECT_TRUE(option_s.getValue<std::string>() == "Yow.");
-    EXPECT_TRUE(option_s.getValue<std::string>() == "Yow.");
-
-//     const pdalboost::property_tree::ptree tree_i = Utils::toPTree(option_i);
-//     pdalboost::property_tree::xml_parser::write_xml(ostr_i, tree_i);
-//     const std::string str_i = ostr_i.str();
-//     EXPECT_TRUE(str_i == ref_i);
-//
-//     const pdalboost::property_tree::ptree tree_s = Utils::toPTree(option_s);
-//     pdalboost::property_tree::xml_parser::write_xml(ostr_s, tree_s);
-//     const std::string str_s = ostr_s.str();
-//     EXPECT_TRUE(str_s == ref_s);
-}
-
-/**
-TEST(OptionsTest, test_option_reading)
-{
-    // from an xml stream
-    std::istringstream istr(xml_int_ref);
-    pdalboost::property_tree::ptree tree1;
-    pdalboost::property_tree::read_xml(istr,tree1);
-    Option opt_from_istr(tree1);
-
-    EXPECT_TRUE(opt_from_istr.getName() == "my_int");
-    EXPECT_TRUE(opt_from_istr.getDescription() == "This is my integral option.");
-    EXPECT_TRUE(opt_from_istr.getValue<std::string>() == "17");
-    EXPECT_TRUE(opt_from_istr.getValue<int>() == 17);
-
-    // from a ptree (assumed to be built correctly)
-    const pdalboost::property_tree::ptree tree2 = Utils::toPTree(opt_from_istr);
-    Option opt_from_ptree(tree2);
-
-    EXPECT_TRUE(opt_from_ptree.getName() == "my_int");
-    EXPECT_TRUE(opt_from_ptree.getDescription() == "This is my integral option.");
-    EXPECT_TRUE(opt_from_ptree.getValue<std::string>() == "17");
-    EXPECT_TRUE(opt_from_ptree.getValue<int>() == 17);
-}
-**/
-
-TEST(OptionsTest, test_options_copy_ctor)
-{
-    Option opt_i("my_int", 17, "This is my integral option.");
-    const Option opt_s("my_string", "Yow.", "This is my stringy option.");
-
-    Options opts;
-    opts.add(opt_i);
-    opts.add(opt_s);
-
-    Options copy(opts);
-
-    EXPECT_TRUE(copy.hasOption("my_int"));
-    EXPECT_TRUE(copy.hasOption("my_string"));
-}
-
-TEST(OptionsTest, test_options_writing)
-{
-    Options opts;
-
-    const Option option_i("my_int", 17, "This is my integral option.");
-    opts.add(option_i);
-
-    opts.add("my_string", "Yow.", "This is my stringy option.");
-
-    std::ostringstream ostr;
-    const std::string ref = xml_header + "<Option>" + xml_int_ref + "</Option><Option>" + xml_str_ref + "</Option>";
-
-//     const pdalboost::property_tree::ptree& tree = Utils::toPTree(opts);
-//     pdalboost::property_tree::xml_parser::write_xml(ostr, tree);
-//     const std::string str = ostr.str();
-//     EXPECT_TRUE(str == ref);
-//
-    int val_i = opts.getOption("my_int").getValue<int>();
-    std::string desc_i = opts.getOption("my_int").getDescription();
-    std::string val_s = opts.getOption("my_string").getValue<std::string>();
-    std::string desc_s = opts.getOption("my_string").getDescription();
-    EXPECT_TRUE(val_i == 17);
-    EXPECT_TRUE(val_s == "Yow.");
-    EXPECT_TRUE(desc_i == "This is my integral option.");
-    EXPECT_TRUE(desc_s == "This is my stringy option.");
-}
-
-
-TEST(OptionsTest, test_valid_options)
-{
-    Options opts;
-
-    bool reached = false;
-    try
-    {
-        opts.getOption("foo").getValue<int>();
-    }
-    catch (Option::not_found ex)
-    {
-        EXPECT_EQ((std::string)ex.what(),
-            (std::string)"Options::getOption: Required option 'foo' was "
-            "not found on this stage");
-        reached = true;
-    }
-    EXPECT_TRUE(reached);
-
-    EXPECT_FALSE(opts.hasOption("bar"));
-    {
-        Options optI;
-
-        optI.add("foo", 19, "foo as an int");
-        EXPECT_TRUE(optI.hasOption("foo"));
-
-        EXPECT_EQ(optI.getValueOrThrow<int>("foo"), 19);
-
-        optI.add("foo", "nineteen", "foo as a string");
-        EXPECT_TRUE(optI.hasOption("foo"));
-
-        // Options is backed by a std::multimap,
-        // Adding new options will mean the first will
-        // continue to be returned.
-        EXPECT_EQ(optI.getValueOrThrow<int>("foo"), 19);
-
-        std::vector<Option> options = optI.getOptions("foo");
-        EXPECT_EQ(options[1].getValue<std::string>(), "nineteen");
-    }
+    EXPECT_TRUE(option_s.getValue() == "Yow.");
+    EXPECT_TRUE(option_s.getValue() == "Yow.");
 }
 
-TEST(OptionsTest, Options_test_add_vs_put)
-{
-    Options opts;
-
-    opts.add<int>("a",1);
-    opts.add<int>("a",2);
-    opts.add<int>("a",3);
-
-    std::vector<Option> options = opts.getOptions("a");
-    EXPECT_TRUE(opts.hasOption("a"));
-    EXPECT_EQ(options[0].getValue<int>(), 1);
-    EXPECT_EQ(options[1].getValue<int>(), 2);
-    EXPECT_EQ(options[2].getValue<int>(), 3);
-}
-
-TEST(OptionsTest, Options_test_bool)
-{
-    Option a("a", "true", "");
-    Option b("b", "false", "");
-    Option c("c", true);
-    Option d("d", false);
-
-    bool av = a.getValue<bool>();
-    bool bv = b.getValue<bool>();
-    bool cv = c.getValue<bool>();
-    bool dv = d.getValue<bool>();
-
-    EXPECT_EQ(av, true);
-    EXPECT_EQ(bv, false);
-    EXPECT_EQ(cv, true);
-    EXPECT_EQ(dv, false);
-}
-
-TEST(OptionsTest, stringsplit)
-{
-    Option a("a", "This, is,a, test  ,,");
-    std::vector<std::string> slist = a.getValue<std::vector<std::string>>();
-    EXPECT_EQ(slist.size(), (size_t)4);
-    EXPECT_EQ(slist[0], "This");
-    EXPECT_EQ(slist[1], "is");
-    EXPECT_EQ(slist[2], "a");
-    EXPECT_EQ(slist[3], "test");
-}
-
-TEST(OptionsTest, implicitdefault)
-{
-    Options ops;
-    ops.add("a", "This, is,a, test  ,,");
-    ops.add("b", 25);
-
-    int i = ops.getValueOrDefault<int>("c");
-    EXPECT_EQ(i, 0);
-    i = ops.getValueOrDefault<int>("b");
-    EXPECT_EQ(i, 25);
-    std::vector<std::string> slist =
-        ops.getValueOrDefault<std::vector<std::string>>("d");
-    EXPECT_EQ(slist.size(), (size_t)0);
-    slist = ops.getValueOrDefault<std::vector<std::string>>("a");
-    EXPECT_EQ(slist.size(), (size_t)4);
-}
 
 TEST(OptionsTest, conditional)
 {
@@ -289,14 +89,7 @@ TEST(OptionsTest, conditional)
     condOps.add("bazel", "win");
 
     s.addConditionalOptions(condOps);
-    ops = s.getOptions();
-    EXPECT_EQ(ops.size(), 6u);
-    EXPECT_EQ(ops.getValueOrDefault("foo", std::string()), "foo");
-    EXPECT_EQ(ops.getValueOrDefault("bar", std::string()), "bar");
-    EXPECT_EQ(ops.getValueOrDefault("baz", std::string()), "baz");
-    EXPECT_EQ(ops.getValueOrDefault("foot", std::string()), "win");
-    EXPECT_EQ(ops.getValueOrDefault("barf", std::string()), "win");
-    EXPECT_EQ(ops.getValueOrDefault("bazel", std::string()), "win");
+    EXPECT_EQ(s.getOptions().getOptions().size(), 6U);
 }
 
 TEST(OptionsTest, valid)
@@ -308,4 +101,42 @@ TEST(OptionsTest, valid)
     EXPECT_FALSE(Option::nameValid("1foo_123_bar_baz", false));
 }
 
+TEST(OptionsTest, programargs)
+{
+    ProgramArgs args;
+
+    bool falseDef, trueDef;
+
+    args.add("falsedef", "False default", falseDef);
+    args.add("truedef", "True default", trueDef, true);
+
+    Options ops;
+    ops.add("falsedef", false);
+    ops.add("truedef", false);
+
+    StringList cmdLine = ops.toCommandLine();
+    args.parse(cmdLine);
+
+    EXPECT_EQ(falseDef, false);
+    EXPECT_EQ(trueDef, false);
+
+    Options ops2;
+    ops2.add("falsedef", true);
+    ops2.add("truedef", true);
+
+    cmdLine = ops2.toCommandLine();
+    args.reset();
+    args.parse(cmdLine);
+
+    EXPECT_EQ(falseDef, true);
+    EXPECT_EQ(trueDef, true);
+
+    cmdLine.clear();
+    args.reset();
+    args.parse(cmdLine);
+
+    EXPECT_EQ(falseDef, false);
+    EXPECT_EQ(trueDef, true);
+}
+
 } // namespace pdal
diff --git a/test/unit/PDALUtilsTest.cpp b/test/unit/PDALUtilsTest.cpp
deleted file mode 100644
index 5bd8fd4..0000000
--- a/test/unit/PDALUtilsTest.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-/******************************************************************************
-* Copyright (c) 2015, Hobu Inc., hobu at hobu.co
-*
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following
-* conditions are met:
-*
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in
-*       the documentation and/or other materials provided
-*       with the distribution.
-*     * Neither the name of Hobu, Inc. nor the names of its contributors
-*       may be used to endorse or promote products derived from this
-*       software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
-* OF SUCH DAMAGE.
-****************************************************************************/
-
-#include <pdal/pdal_test_main.hpp>
-
-#include <sstream>
-
-#include <pdal/PDALUtils.hpp>
-#include "Support.hpp"
-
-using namespace pdal;
-
-TEST(PDALUtilsTest, options1)
-{
-    Options ops;
-    ops.add("testa", "This is a test");
-    ops.add("testb", 56);
-    ops.add("testc", 27.5, "Testing testc");
-
-    Option op35("testd", 3.5);
-
-    ops.add("teste", "Testing option test e");
-
-    std::string goodfile(Support::datapath("misc/opts2json.txt"));
-    std::string testfile(Support::temppath("opts2json.txt"));
-
-    {
-        // Binary mode to avoid OS-specific translation of EOL
-        std::ofstream out(testfile, std::ios_base::binary);
-        Utils::toJSON(ops, out);
-    }
-    EXPECT_TRUE(Support::compare_files(goodfile, testfile));
-}
-
diff --git a/test/unit/PipelineManagerTest.cpp b/test/unit/PipelineManagerTest.cpp
index 0580784..3b7ebf5 100644
--- a/test/unit/PipelineManagerTest.cpp
+++ b/test/unit/PipelineManagerTest.cpp
@@ -48,79 +48,79 @@ TEST(PipelineManagerTest, basic)
 
     PipelineManager mgr;
 
-    std::cout << "R" << std::endl;
     Options optsR;
     optsR.add("filename", Support::datapath("las/1.2-with-color.las"));
     Stage& reader = mgr.addReader("readers.las");
     reader.setOptions(optsR);
 
-    std::cout << "W" << std::endl;
     Options optsW;
-    optsW.add("filename", outfile, "file to write to");
+    optsW.add("filename", outfile);
     Stage& writer = mgr.addWriter("writers.las");
     writer.setInput(reader);
     writer.setOptions(optsW);
 
-    std::cout << "E" << std::endl;
     point_count_t np = mgr.execute();
-    std::cout << "Done" << std::endl;
-    EXPECT_TRUE(np == 1065U);
+    EXPECT_EQ(np, 1065U);
 
     EXPECT_TRUE(!std::ifstream(outfile).fail());
     FileUtils::deleteFile(outfile);
 }
 
-
-//ABELL - Mosaic
-/**
-TEST(PipelineManagerTest, PipelineManagerTest_test2)
+// Make sure that when we add an option at the command line, it overrides
+// a pipeline option.
+TEST(PipelineManagerTest, OptionOrder)
 {
-    FileUtils::deleteFile("temp.las");
-
+    std::string cmd = Support::binpath(Support::exename("pdal") +
+        " pipeline");
+
+    std::string file(Support::configuredpath("pipeline/sort2.json"));
+
+    std::string output;
+    int stat = Utils::run_shell_command(cmd + " " + file, output);
+    EXPECT_EQ(stat, 0);
+
+    StageFactory f;
+    Stage *r = f.createStage("readers.las");
+
+    Options o;
+    o.add("filename", Support::temppath("sorted.las"));
+    r->setOptions(o);
+    
+    PointTable t;
+    r->prepare(t);
+    PointViewSet s = r->execute(t);
+    EXPECT_EQ(s.size(), 1U);
+    PointViewPtr v = *(s.begin());
+
+    double prev = std::numeric_limits<double>::lowest();
+    for (PointId idx = 0; idx < v->size(); ++idx)
     {
-        PipelineManager mgr;
-
-        Options optsR1;
-        optsR1.add("filename", Support::datapath("1.2-with-color.las"));
-        std::shared_ptr<Stage> reader1(mgr.addReader("readers.las", optsR1));
-
-        Options optsR2;
-        optsR2.add("filename", Support::datapath("1.2-with-color.las"));
-        std::shared_ptr<Stage> reader2(mgr.addReader("readers.las", optsR2));
-
-        Options optsMF;
-        std::vector<std::shared_ptr<Stage> > vec;
-        vec.push_back(reader1);
-        vec.push_back(reader2);
-        MultiFilter* multifilter = mgr.addMultiFilter("filters.mosaic", vec, optsMF);
-
-        Options optsF;
-        optsF.add("bounds", Bounds<double>(0,0,0,1000000,1000000,1000000));
-        Filter* filter = mgr.addFilter("filters.crop", multifilter, optsF);
-
-        Options optsW;
-        optsW.add("filename", "temp.las", "file to write to");
-        std::shared_ptr<Stage> writer(mgr.addWriter("writers.las", *filter, optsW));
-        point_count_t np = mgr.execute();
-
-        EXPECT_TRUE(np == 1065 * 2);
-
-        std::vector<std::shared_ptr<Stage> > reader1_inputs = reader1->getInputs();
-        std::vector<std::shared_ptr<Stage> > reader2_inputs = reader2->getInputs();
-        std::vector<std::shared_ptr<Stage> > multifilter_inputs = multifilter->getInputs();
-        std::vector<std::shared_ptr<Stage> > filter_inputs = filter->getInputs();
-        std::vector<std::shared_ptr<Stage> > writer_inputs = writer->getInputs();
-
-        EXPECT_TRUE(reader1_inputs.size() == 0);
-        EXPECT_TRUE(reader2_inputs.size() == 0);
-        EXPECT_TRUE(multifilter_inputs.size() == 2);
-        EXPECT_TRUE(multifilter_inputs[0] == reader1);
-        EXPECT_TRUE(multifilter_inputs[1] == reader2);
-        EXPECT_TRUE(filter_inputs.size() == 1);
-        EXPECT_TRUE(filter_inputs[0] == multifilter);
-        EXPECT_TRUE(writer_inputs.size() == 1);
+        double d = v->getFieldAs<double>(Dimension::Id::X, idx);
+        EXPECT_GE(d, prev);
+        prev = d;
     }
+    FileUtils::deleteFile(Support::temppath("sorted.las"));
+
+    stat = Utils::run_shell_command(cmd + " " + file +
+        " --filters.sort.dimension=Y", output);
+    EXPECT_EQ(stat, 0);
+
+    Stage *r2 = f.createStage("readers.las");
+    r2->setOptions(o);
 
-    FileUtils::deleteFile("temp.las");
+    PointTable t2;
+    r2->prepare(t2);
+    s = r2->execute(t2);
+    EXPECT_EQ(s.size(), 1U);
+    v = *(s.begin());
+
+    prev = std::numeric_limits<double>::lowest();
+    for (PointId idx = 0; idx < v->size(); ++idx)
+    {
+        double d = v->getFieldAs<double>(Dimension::Id::Y, idx);
+        EXPECT_GE(d, prev);
+        prev = d;
+    }
+    FileUtils::deleteFile(Support::temppath("sorted.las"));
 }
-**/
+
diff --git a/test/unit/PluginManagerTest.cpp b/test/unit/PluginManagerTest.cpp
index 38723e6..ee6b286 100644
--- a/test/unit/PluginManagerTest.cpp
+++ b/test/unit/PluginManagerTest.cpp
@@ -36,6 +36,7 @@
 
 #include <pdal/PluginManager.hpp>
 #include <pdal/Filter.hpp>
+#include <pdal/util/Algorithm.hpp>
 
 #include "Support.hpp"
 
@@ -109,5 +110,31 @@ TEST(PluginManagerTest, CreateObject)
     EXPECT_NE(p.get(), nullptr);
 }
 
+TEST(PluginManagerTest, SearchPaths)
+{
+    std::string curPath;
+    int set = Utils::getenv("PDAL_DRIVER_PATH", curPath);
+    Utils::unsetenv("PDAL_DRIVER_PATH");
+
+    StringList paths = PluginManager::test_pluginSearchPaths();
+    EXPECT_TRUE(Utils::contains(paths, "./lib"));
+    EXPECT_TRUE(Utils::contains(paths, "../lib"));
+    EXPECT_TRUE(Utils::contains(paths, "../bin"));
+    EXPECT_TRUE(Utils::contains(paths, PDAL_PLUGIN_INSTALL_PATH));
+
+    Utils::setenv("PDAL_DRIVER_PATH", "/foo/bar://baz");
+    paths = PluginManager::test_pluginSearchPaths();
+    EXPECT_EQ(paths.size(), 2U);
+    EXPECT_TRUE(Utils::contains(paths, "/foo/bar"));
+    EXPECT_TRUE(Utils::contains(paths, "//baz"));
+    Utils::setenv("PDAL_DRIVER_PATH", "/this/is/a/path");
+    paths = PluginManager::test_pluginSearchPaths();
+    EXPECT_EQ(paths.size(), 1U);
+    EXPECT_TRUE(Utils::contains(paths, "/this/is/a/path"));
+
+    if (set == 0)
+        Utils::setenv("PDAL_DRIVER_PATH", curPath);
+}
+
 } // namespace pdal
 
diff --git a/test/unit/PointContextTest.cpp b/test/unit/PointContextTest.cpp
index 7796461..66579b7 100644
--- a/test/unit/PointContextTest.cpp
+++ b/test/unit/PointContextTest.cpp
@@ -139,7 +139,7 @@ TEST(PointContext, userBuffer)
         bool update(Dimension::DetailList& /*detail*/, Dimension::Detail *cur,
             const std::string& /*name*/)
         {
-            Dimension::Id::Enum id = cur->id();
+            Dimension::Id id = cur->id();
 
             if (id != Dimension::Id::X && id != Dimension::Id::Y &&
                 id != Dimension::Id::Z)
diff --git a/test/unit/PointTableTest.cpp b/test/unit/PointTableTest.cpp
index b64d71f..1e8f0a6 100644
--- a/test/unit/PointTableTest.cpp
+++ b/test/unit/PointTableTest.cpp
@@ -118,7 +118,7 @@ TEST(PointTable, userView)
             { return 0; }
         char *getPoint(PointId idx)
             { return NULL; }
-        void setFieldInternal(Dimension::Id::Enum id, PointId idx,
+        void setFieldInternal(Dimension::Id id, PointId idx,
             const void *value)
         {
             if (id == Dimension::Id::X)
@@ -128,7 +128,7 @@ TEST(PointTable, userView)
             else if (id == Dimension::Id::Z)
                m_z = *(const double *)value;
         }
-        void getFieldInternal(Dimension::Id::Enum id, PointId idx,
+        void getFieldInternal(Dimension::Id id, PointId idx,
             void *value) const
         {
             if (id == Dimension::Id::X)
diff --git a/test/unit/PointViewTest.cpp b/test/unit/PointViewTest.cpp
index c45bd19..16b9359 100644
--- a/test/unit/PointViewTest.cpp
+++ b/test/unit/PointViewTest.cpp
@@ -432,6 +432,31 @@ TEST(PointViewTest, order)
     }
 }
 
+TEST(PointViewTest, issue1264)
+{
+    PointTable t;
+    PointLayoutPtr layout(t.layout());
+    Dimension::Id foo = layout->assignDim("foo", Dimension::Type::Unsigned8);
+    Dimension::Id bar = layout->assignDim("bar", Dimension::Type::Signed8);
+    layout->finalize();
+
+    PointView v(t);
+    double d(250.0);
+    v.setField(foo, 0, d);
+    d = v.getFieldAs<double>(foo, 0);
+    EXPECT_DOUBLE_EQ(d, 250.0);
+    d = 123.0;
+    v.setField(bar, 0, d);
+    d = v.getFieldAs<double>(bar, 0);
+    EXPECT_DOUBLE_EQ(d, 123.0);
+    d = -120.23456;
+    v.setField(bar, 0, d);
+    d = v.getFieldAs<double>(bar, 0);
+    EXPECT_DOUBLE_EQ(d, -120.0);
+    d = 260.0;
+    EXPECT_THROW(v.setField(foo, 0, d), pdal_error);
+}
+
 // Per discussions with @abellgithub (https://github.com/gadomski/PDAL/commit/c1d54e56e2de841d37f2a1b1c218ed723053f6a9#commitcomment-14415138)
 // we only do bounds checking on `PointView`s when in debug mode.
 #ifndef NDEBUG
diff --git a/test/unit/PolygonTest.cpp b/test/unit/PolygonTest.cpp
index cb1dce6..8736215 100644
--- a/test/unit/PolygonTest.cpp
+++ b/test/unit/PolygonTest.cpp
@@ -204,14 +204,4 @@ TEST(PolygonTest, streams)
 
 }
 
-TEST(PolygonTest, options)
-{
-    pdal::Option op("polygon", getWKT(), "");
-
-    Polygon p = op.getValue<Polygon>();
-
-}
-
-
-
 } // namespace pdal
diff --git a/test/unit/ProgramArgsTest.cpp b/test/unit/ProgramArgsTest.cpp
index 1e9803a..55631ca 100644
--- a/test/unit/ProgramArgsTest.cpp
+++ b/test/unit/ProgramArgsTest.cpp
@@ -84,22 +84,32 @@ TEST(ProgramArgsTest, t1)
     EXPECT_THROW(args.parse(s), arg_error);
 
     s = toStringList("--foo=TestFoo");
+    args.reset();
     args.parse(s);
     EXPECT_EQ(m_foo, "TestFoo");
 
     s = toStringList("--foo TestBar");
+    args.reset();
     args.parse(s);
     EXPECT_EQ(m_foo, "TestBar");
 
     s = toStringList("-f");
+    args.reset();
     EXPECT_THROW(args.parse(s), arg_error);
 
     s = toStringList("-f -g");
+    args.reset();
     EXPECT_THROW(args.parse(s), arg_error);
 
     s = toStringList("-f Gah");
+    args.reset();
     args.parse(s);
     EXPECT_EQ(m_foo, "Gah");
+
+    s = toStringList("--foo=-Foo");
+    args.reset();
+    args.parse(s);
+    EXPECT_EQ(m_foo, "-Foo");
 }
 
 TEST(ProgramArgsTest, t2)
@@ -229,8 +239,6 @@ TEST(ProgramArgsTest, positional)
     Arg& baz = args.add("baz,z", "Foo description", m_baz);
     EXPECT_THROW(baz.setPositional(), arg_error);
 
-    // Go through exceptions procedurally.
-
     StringList s = toStringList("--foo Foo -z 55");
     args.parse(s);
     EXPECT_EQ(m_foo, "Foo");
@@ -294,6 +302,48 @@ TEST(ProgramArgsTest, vector)
     EXPECT_EQ(m_baz, false);
 }
 
+TEST(ProgramArgsTest, stringvector)
+{
+    ProgramArgs args;
+
+    std::string m_foo;
+    std::vector<std::string> m_bar;
+    bool m_baz;
+
+    args.add("foo,f", "Foo description", m_foo, "foo").setPositional();
+    args.add("bar", "Foo description", m_bar).setOptionalPositional();
+    args.add("baz,z", "Foo description", m_baz);
+
+    StringList s = toStringList("--bar a,b,c --bar d,e,f Foo -z");
+    args.parse(s);
+    EXPECT_EQ(m_foo, "Foo");
+    EXPECT_EQ(m_bar.size(), 6u);
+    EXPECT_EQ(m_baz, true);
+    EXPECT_EQ(m_bar[0], "a");
+    EXPECT_EQ(m_bar[1], "b");
+    EXPECT_EQ(m_bar[2], "c");
+    EXPECT_EQ(m_bar[3], "d");
+    EXPECT_EQ(m_bar[4], "e");
+    EXPECT_EQ(m_bar[5], "f");
+
+    args.reset();
+    s = toStringList("Foo");
+    args.parse(s);
+    EXPECT_EQ(m_bar.size(), 0u);
+    EXPECT_EQ(m_foo, "Foo");
+    EXPECT_EQ(m_baz, false);
+
+    args.reset();
+    s = toStringList("Fool 44 55 66");
+    args.parse(s);
+    EXPECT_EQ(m_foo, "Fool");
+    EXPECT_EQ(m_bar.size(), 3u);
+    EXPECT_EQ(m_bar[0], "44");
+    EXPECT_EQ(m_bar[1], "55");
+    EXPECT_EQ(m_bar[2], "66");
+    EXPECT_EQ(m_baz, false);
+}
+
 TEST(ProgramArgsTest, vectorfail)
 {
     ProgramArgs args;
@@ -311,4 +361,53 @@ TEST(ProgramArgsTest, vectorfail)
     EXPECT_THROW(args.parse(s), arg_error);
 }
 
+TEST(ProgramArgsTest, parseSimple)
+{
+    ProgramArgs args;
+
+    std::string m_foo;
+    int m_bar;
+    bool m_baz;
+    StringList m_vec;
+
+    args.add("foo,f", "Foo description", m_foo, "foo").setPositional();
+    args.add("vec", "Vec description", m_vec).setPositional();
+    args.add("bar", "Foo description", m_bar, 23);
+    args.add("baz,z", "Foo description", m_baz);
+
+    StringList s = toStringList("--foo TEst --bar=45 -z");
+    args.parseSimple(s);
+    EXPECT_EQ(m_foo, "TEst");
+    EXPECT_EQ(m_bar, 45);
+    EXPECT_EQ(m_baz, true);
+
+    args.reset();
+    s = toStringList("-zf FooTest --bar=55");
+    args.parseSimple(s);
+    EXPECT_EQ(m_foo, "FooTest");
+    EXPECT_EQ(m_bar, 55);
+    EXPECT_EQ(m_baz, true);
+
+    args.reset();
+    s = toStringList("");
+    EXPECT_EQ(m_foo, "foo");
+    EXPECT_EQ(m_bar, 23);
+    EXPECT_EQ(m_baz, false);
+
+    s = toStringList("--bar 55 Foo Barf --holy=Holy --cow=Moo Vec");
+    args.parseSimple(s);
+    EXPECT_EQ(m_foo, "Foo");
+    EXPECT_EQ(m_bar, 55);
+    EXPECT_EQ(m_baz, false);
+    EXPECT_EQ(m_vec.size(), 2U);
+    EXPECT_EQ(m_vec[0], "Barf");
+    EXPECT_EQ(m_vec[1], "Vec");
+    EXPECT_EQ(s.size(), 2U);
+    EXPECT_EQ(s[0], "--holy=Holy");
+    EXPECT_EQ(s[1], "--cow=Moo");
+
+    s = toStringList("--bar 55 Foo Barf");
+    EXPECT_THROW(args.parse(s), arg_error);
+}
+
 #endif
diff --git a/test/unit/StageFactoryTest.cpp b/test/unit/StageFactoryTest.cpp
index 8a84c66..03ce05e 100644
--- a/test/unit/StageFactoryTest.cpp
+++ b/test/unit/StageFactoryTest.cpp
@@ -43,7 +43,7 @@
 namespace pdal
 {
 
-TEST(StageManagerTest, Load)
+TEST(StageFactoryTest, Load)
 {
     StageFactory f(false);
 
@@ -54,7 +54,7 @@ TEST(StageManagerTest, Load)
     ASSERT_TRUE(Utils::contains(ns, "writers.bpf"));
 }
 
-TEST(StageManagerTest, Load2)
+TEST(StageFactoryTest, Load2)
 {
     StageFactory f(false);
 
@@ -64,7 +64,7 @@ TEST(StageManagerTest, Load2)
     ASSERT_FALSE(Utils::contains(ns, "writers.bpf"));
 }
 
-TEST(StageManagerTest, Load3)
+TEST(StageFactoryTest, Load3)
 {
     StageFactory f(false);
 
@@ -74,7 +74,7 @@ TEST(StageManagerTest, Load3)
     ASSERT_FALSE(Utils::contains(ns, "writers.bpf"));
 }
 
-TEST(StageManagerTest, Load4)
+TEST(StageFactoryTest, Load4)
 {
     StageFactory f(false);
 
@@ -83,6 +83,25 @@ TEST(StageManagerTest, Load4)
     ASSERT_FALSE(Utils::contains(ns, "readers.las"));
     ASSERT_TRUE(Utils::contains(ns, "writers.bpf"));
 }
-    
+
+TEST(StageFactoryTest, extensionTest)
+{
+    EXPECT_EQ(StageFactory::inferWriterDriver("foo.laz"), "writers.las");
+    EXPECT_EQ(StageFactory::inferWriterDriver("foo.las"), "writers.las");
+    EXPECT_EQ(StageFactory::inferWriterDriver("STDOUT"), "writers.text");
+    EXPECT_EQ(StageFactory::inferWriterDriver(""), "writers.text");
+
+    EXPECT_EQ(StageFactory::inferReaderDriver("foo.laz"), "readers.las");
+    EXPECT_EQ(StageFactory::inferReaderDriver("foo.las"), "readers.las");
+    EXPECT_EQ(StageFactory::inferReaderDriver("http://foo.laz"), "readers.las");
+    EXPECT_EQ(StageFactory::inferReaderDriver("greyhound://foo.bar.baz"),
+        "readers.greyhound");
+
+    StringList ext = { "las", "laz" };
+    EXPECT_EQ(StageFactory::extensions("writers.las"), ext);
+    ext = { "csv", "json", "txt", "xyz" };
+    EXPECT_EQ(StageFactory::extensions("writers.text"), ext);
+}
+
 } // namespace pdal
 
diff --git a/test/unit/Support.cpp b/test/unit/Support.cpp
index 7b33bda..59ced6a 100644
--- a/test/unit/Support.cpp
+++ b/test/unit/Support.cpp
@@ -41,8 +41,8 @@
 
 #include <stdio.h>
 
-#include <pdal/util/FileUtils.hpp>
 #include <pdal/Options.hpp>
+#include <pdal/PDALUtils.hpp>
 #include <pdal/Stage.hpp>
 #include <pdal/StageFactory.hpp>
 #include "TestConfig.hpp"
@@ -52,7 +52,7 @@ using namespace std;
 
 string Support::datapath()
 {
-    return TestConfig::g_data_path;
+    return TestConfig::dataPath();
 }
 
 std::string Support::datapath(const std::string& file)
@@ -62,7 +62,7 @@ std::string Support::datapath(const std::string& file)
 
 string Support::configuredpath()
 {
-    return TestConfig::g_configured_path;
+    return TestConfig::configuredPath();
 }
 
 std::string Support::configuredpath(const std::string& file)
@@ -72,7 +72,7 @@ std::string Support::configuredpath(const std::string& file)
 
 std::string Support::temppath()
 {
-    return TestConfig::g_data_path + "../temp/";
+    return TestConfig::dataPath() + "../temp/";
 }
 
 std::string Support::temppath(const std::string& file)
@@ -82,7 +82,7 @@ std::string Support::temppath(const std::string& file)
 
 std::string Support::binpath()
 {
-    std::string binpath = TestConfig::g_binary_path;
+    std::string binpath = TestConfig::binaryPath();
 
 #ifdef PDAL_APP_BUNDLE
     return binpath + "/pdal.app/Contents/MacOS/";
@@ -110,17 +110,16 @@ std::string Support::exename(const std::string& name)
 uint32_t Support::diff_text_files(const std::string& file1,
     const std::string& file2, int32_t ignoreLine1)
 {
-    if (!pdal::FileUtils::fileExists(file1) ||
-            !pdal::FileUtils::fileExists(file2))
+    if (!pdal::Utils::fileExists(file1) || !pdal::Utils::fileExists(file2))
         return (std::numeric_limits<uint32_t>::max)();
 
-    std::istream* str1 = pdal::FileUtils::openFile(file1, false);
-    std::istream* str2 = pdal::FileUtils::openFile(file2, false);
+    std::istream* str1 = pdal::Utils::openFile(file1, false);
+    std::istream* str2 = pdal::Utils::openFile(file2, false);
 
     int32_t diffs = diff_text_files(*str1, *str2, ignoreLine1);
 
-    pdal::FileUtils::closeFile(str1);
-    pdal::FileUtils::closeFile(str2);
+    pdal::Utils::closeFile(str1);
+    pdal::Utils::closeFile(str2);
     return diffs;
 }
 
@@ -197,15 +196,18 @@ uint32_t Support::diff_files(const std::string& file1,
     const std::string& file2, uint32_t* ignorable_start,
     uint32_t* ignorable_length, uint32_t num_ignorables)
 {
-    if (!pdal::FileUtils::fileExists(file1) ||
-            !pdal::FileUtils::fileExists(file2))
+    if (!pdal::Utils::fileExists(file1) || !pdal::Utils::fileExists(file2))
         return (std::numeric_limits<uint32_t>::max)();
 
-    std::istream* str1 = pdal::FileUtils::openFile(file1);
-    std::istream* str2 = pdal::FileUtils::openFile(file2);
+    std::istream* str1 = pdal::Utils::openFile(file1);
+    std::istream* str2 = pdal::Utils::openFile(file2);
 
-    return diff_files(*str1, *str2, ignorable_start, ignorable_length,
+    uint32_t ret = diff_files(*str1, *str2, ignorable_start, ignorable_length,
         num_ignorables);
+
+    pdal::Utils::closeFile(str1);
+    pdal::Utils::closeFile(str2);
+    return ret;
 }
 
 
@@ -410,3 +412,4 @@ void Support::compareBounds(const BOX3D& p, const BOX3D& q)
     EXPECT_FLOAT_EQ(p.maxy, q.maxy);
     EXPECT_FLOAT_EQ(p.maxz, q.maxz);
 }
+
diff --git a/test/unit/TestConfig.cpp b/test/unit/TestConfig.cpp
deleted file mode 100644
index 6d969b2..0000000
--- a/test/unit/TestConfig.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/******************************************************************************
-* Copyright (c) 2011, Michael P. Gerlek (mpg at flaxen.com)
-*
-* All rights reserved.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following
-* conditions are met:
-*
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in
-*       the documentation and/or other materials provided
-*       with the distribution.
-*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
-*       names of its contributors may be used to endorse or promote
-*       products derived from this software without specific prior
-*       written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
-* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
-* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
-* OF SUCH DAMAGE.
-****************************************************************************/
-
-#include "TestConfig.hpp"
-
-std::string TestConfig::g_data_path = UNITTEST_TESTCONFIG_DATA_PATH;
-std::string TestConfig::g_configured_path = UNITTEST_TESTCONFIG_CONFIGURED_PATH;
-std::string TestConfig::g_binary_path = UNITTEST_TESTCONFIG_BINARY_PATH;
-std::string TestConfig::g_oracle_connection =
-    UNITTEST_TESTCONFIG_OCI_CONNECTION;
diff --git a/test/unit/TestConfig.hpp.in b/test/unit/TestConfig.hpp.in
index dbad766..5ffaf67 100644
--- a/test/unit/TestConfig.hpp.in
+++ b/test/unit/TestConfig.hpp.in
@@ -42,14 +42,21 @@
 
 #include <string>
 
-struct TestConfig 
+namespace TestConfig 
 {
-    TestConfig();
-    static std::string g_data_path;
-    static std::string g_configured_path;
-    static std::string g_binary_path;
-    static std::string g_oracle_connection;
-};
 
+inline std::string dataPath()
+    { return UNITTEST_TESTCONFIG_DATA_PATH; }
+
+inline std::string configuredPath()
+    { return UNITTEST_TESTCONFIG_CONFIGURED_PATH; }
+
+inline std::string binaryPath()
+    { return UNITTEST_TESTCONFIG_BINARY_PATH; }
+
+inline std::string oracleConnection()
+    { return UNITTEST_TESTCONFIG_OCI_CONNECTION; }
+
+}
 
 #endif
diff --git a/test/unit/UtilsTest.cpp b/test/unit/UtilsTest.cpp
index 17993b6..611e33d 100644
--- a/test/unit/UtilsTest.cpp
+++ b/test/unit/UtilsTest.cpp
@@ -33,6 +33,7 @@
 ****************************************************************************/
 
 #include <pdal/pdal_test_main.hpp>
+#include <pdal/pdal_defines.h>
 
 #include <sstream>
 
@@ -270,7 +271,7 @@ TEST(UtilsTest, split2Char)
 TEST(UtilsTest, case)
 {
     std::string s("This is a test");
-    
+
     EXPECT_EQ("THIS IS A TEST", Utils::toupper(s));
     EXPECT_EQ("this is a test", Utils::tolower(s));
 
@@ -318,3 +319,63 @@ TEST(UtilsTest, escapeNonprinting)
     std::string out = Utils::escapeNonprinting(s);
     EXPECT_EQ(out, "CTRL-N,A,B,R,V: \\n\\a\\b\\r\\v\\x12\\x0e\\x01");
 }
+
+TEST(UtilsTest, wordWrap)
+{
+    std::string s;
+    std::vector<std::string> output;
+
+    s = "This   is   a    test    1234567890abcdefghij1234 a   ";
+    output = Utils::wordWrap(s, 10, 12);
+    EXPECT_EQ(output.size(), 5u);
+    EXPECT_EQ(output[0], "This is a");
+    EXPECT_EQ(output[1], "test");
+    EXPECT_EQ(output[2], "1234567890");
+    EXPECT_EQ(output[3], "abcdefghij");
+    EXPECT_EQ(output[4], "1234 a");
+
+    s = "";
+    output = Utils::wordWrap(s, 10, 12);
+    EXPECT_EQ(output.size(), 0u);
+
+    s = "012345678901abcdefghij01234567";
+    output = Utils::wordWrap(s, 10, 12);
+    EXPECT_EQ(output.size(), 3u);
+    EXPECT_EQ(output[0], "012345678901");
+    EXPECT_EQ(output[1], "abcdefghij");
+    EXPECT_EQ(output[2], "01234567");
+}
+
+TEST(UtilsTest, wordWrap2)
+{
+    std::string s;
+    std::vector<std::string> output;
+
+    s = "This   is   a    test    1234567890abcdefghij1234 a   ";
+    output = Utils::wordWrap2(s, 10, 12);
+    EXPECT_EQ(output.size(), 6u);
+    EXPECT_EQ(output[0], "This   is   ");
+    EXPECT_EQ(output[1], "a    ");
+    EXPECT_EQ(output[2], "test    ");
+    EXPECT_EQ(output[3], "1234567890");
+    EXPECT_EQ(output[4], "abcdefghij");
+    EXPECT_EQ(output[5], "1234 a   ");
+
+    s = "";
+    output = Utils::wordWrap2(s, 10, 12);
+    EXPECT_EQ(output.size(), 0u);
+
+    s = "012345678901abcdefghij01234567";
+    output = Utils::wordWrap2(s, 10, 12);
+    EXPECT_EQ(output.size(), 3u);
+    EXPECT_EQ(output[0], "012345678901");
+    EXPECT_EQ(output[1], "abcdefghij");
+    EXPECT_EQ(output[2], "01234567");
+
+    s = std::string(30, ' ');
+    output = Utils::wordWrap2(s, 10, 12);
+    EXPECT_EQ(output.size(), 3u);
+    EXPECT_EQ(output[0], std::string(12, ' '));
+    EXPECT_EQ(output[1], std::string(10, ' '));
+    EXPECT_EQ(output[2], std::string(8, ' '));
+}
diff --git a/test/unit/XMLSchemaTest.cpp b/test/unit/XMLSchemaTest.cpp
index 45b53d9..6d77e64 100644
--- a/test/unit/XMLSchemaTest.cpp
+++ b/test/unit/XMLSchemaTest.cpp
@@ -80,8 +80,8 @@ TEST(XMLSchemaTest, read)
     };
 
     std::string xml =
-        ReadXML(TestConfig::g_data_path+"../../schemas/6-dim-schema.xml");
-    std::string xsd = ReadXML(TestConfig::g_data_path+"../../schemas/LAS.xsd");
+        ReadXML(TestConfig::dataPath() + "../../schemas/6-dim-schema.xml");
+    std::string xsd = ReadXML(TestConfig::dataPath() + "../../schemas/LAS.xsd");
 
     XMLSchema s(xml, xsd);
     XMLDimList dims = s.xmlDims();
@@ -91,43 +91,43 @@ TEST(XMLSchemaTest, read)
     XMLDim dim = getDim(dims, "X");
     DimType dt = dim.m_dimType;
     EXPECT_EQ(dim.m_name,  "X");
-    EXPECT_FLOAT_EQ(dt.m_xform.m_scale, .01);
-    EXPECT_FLOAT_EQ(dt.m_xform.m_offset, 0.0);
+    EXPECT_FLOAT_EQ(dt.m_xform.m_scale.m_val, .01);
+    EXPECT_FLOAT_EQ(dt.m_xform.m_offset.m_val, 0.0);
     EXPECT_EQ(dt.m_type, Dimension::Type::Signed32);
 
     dim = getDim(dims, "Y");
     dt = dim.m_dimType;
     EXPECT_EQ(dim.m_name, "Y");
-    EXPECT_FLOAT_EQ(dt.m_xform.m_scale, .01);
-    EXPECT_FLOAT_EQ(dt.m_xform.m_offset, 0.0);
+    EXPECT_FLOAT_EQ(dt.m_xform.m_scale.m_val, .01);
+    EXPECT_FLOAT_EQ(dt.m_xform.m_offset.m_val, 0.0);
     EXPECT_EQ(dt.m_type, Dimension::Type::Signed32);
 
     dim = getDim(dims, "Z");
     dt = dim.m_dimType;
     EXPECT_EQ(dim.m_name, "Z");
-    EXPECT_FLOAT_EQ(dt.m_xform.m_scale, .01);
-    EXPECT_FLOAT_EQ(dt.m_xform.m_offset, 0.0);
+    EXPECT_FLOAT_EQ(dt.m_xform.m_scale.m_val, .01);
+    EXPECT_FLOAT_EQ(dt.m_xform.m_offset.m_val, 0.0);
     EXPECT_EQ(dt.m_type, Dimension::Type::Signed32);
 
     dim = getDim(dims, "Intensity");
     dt = dim.m_dimType;
     EXPECT_EQ(dim.m_name, "Intensity");
-    EXPECT_FLOAT_EQ(dt.m_xform.m_scale, 1.0);
-    EXPECT_FLOAT_EQ(dt.m_xform.m_offset, 0.0);
+    EXPECT_FLOAT_EQ(dt.m_xform.m_scale.m_val, 1.0);
+    EXPECT_FLOAT_EQ(dt.m_xform.m_offset.m_val, 0.0);
     EXPECT_EQ(dt.m_type, Dimension::Type::Unsigned16);
 
     dim = getDim(dims, "ReturnNumber");
     dt = dim.m_dimType;
     EXPECT_EQ(dim.m_name, "ReturnNumber");
-    EXPECT_FLOAT_EQ(dt.m_xform.m_scale, 1.0);
-    EXPECT_FLOAT_EQ(dt.m_xform.m_offset, 0.0);
+    EXPECT_FLOAT_EQ(dt.m_xform.m_scale.m_val, 1.0);
+    EXPECT_FLOAT_EQ(dt.m_xform.m_offset.m_val, 0.0);
     EXPECT_EQ(dt.m_type, Dimension::Type::Unsigned8);
 
     dim = getDim(dims, "NumberOfReturns");
     dt = dim.m_dimType;
     EXPECT_EQ(dim.m_name, "NumberOfReturns");
-    EXPECT_FLOAT_EQ(dt.m_xform.m_scale, 1.0);
-    EXPECT_FLOAT_EQ(dt.m_xform.m_offset, 0.0);
+    EXPECT_FLOAT_EQ(dt.m_xform.m_scale.m_val, 1.0);
+    EXPECT_FLOAT_EQ(dt.m_xform.m_offset.m_val, 0.0);
     EXPECT_EQ(dt.m_type, Dimension::Type::Unsigned8);
 }
 
@@ -136,9 +136,9 @@ TEST(XMLSchemaTest, copy)
 {
     using namespace pdal;
 
-    std::string xml = ReadXML(TestConfig::g_data_path +
+    std::string xml = ReadXML(TestConfig::dataPath() +
         "../../schemas/16-dim-schema.xml");
-    std::string xsd = ReadXML(TestConfig::g_data_path+"../../schemas/LAS.xsd");
+    std::string xsd = ReadXML(TestConfig::dataPath() + "../../schemas/LAS.xsd");
 
     XMLSchema s1(xml, xsd);
 
@@ -146,7 +146,7 @@ TEST(XMLSchemaTest, copy)
     XMLDimList dims = s1.xmlDims();
     for (auto di = dims.begin(); di != dims.end(); ++di)
     {
-        Dimension::Id::Enum id =
+        Dimension::Id id =
             table.layout()->registerOrAssignDim(
                     di->m_name,
                     di->m_dimType.m_type);
@@ -186,9 +186,9 @@ TEST(XMLSchemaTest, utf8)
 {
     using namespace pdal;
 
-    std::string inFilename(TestConfig::g_data_path +
+    std::string inFilename(TestConfig::dataPath() +
         "../../schemas/utf8-schema.xml");
-    std::string inXsdFilename(TestConfig::g_data_path +
+    std::string inXsdFilename(TestConfig::dataPath() +
         "../../schemas/LAS.xsd");
     std::string xml = ReadXML(inFilename);
     std::string xsd = ReadXML(inXsdFilename);
@@ -237,13 +237,17 @@ TEST(XMLSchemaTest, precision)
     // Order of dimensions should be maintained.
     DimType d = dims[0].m_dimType;
     EXPECT_EQ(d.m_type, d1.m_dimType.m_type);
-    EXPECT_DOUBLE_EQ(d.m_xform.m_offset, d1.m_dimType.m_xform.m_offset);
-    EXPECT_DOUBLE_EQ(d.m_xform.m_scale, d1.m_dimType.m_xform.m_scale);
+    EXPECT_DOUBLE_EQ(d.m_xform.m_offset.m_val,
+        d1.m_dimType.m_xform.m_offset.m_val);
+    EXPECT_DOUBLE_EQ(d.m_xform.m_scale.m_val,
+        d1.m_dimType.m_xform.m_scale.m_val);
 
     d = dims[1].m_dimType;
     EXPECT_EQ(d.m_type, d2.m_dimType.m_type);
-    EXPECT_DOUBLE_EQ(d.m_xform.m_offset, d2.m_dimType.m_xform.m_offset);
-    EXPECT_DOUBLE_EQ(d.m_xform.m_scale, d2.m_dimType.m_xform.m_scale);
+    EXPECT_DOUBLE_EQ(d.m_xform.m_offset.m_val,
+        d2.m_dimType.m_xform.m_offset.m_val);
+    EXPECT_DOUBLE_EQ(d.m_xform.m_scale.m_val,
+        d2.m_dimType.m_xform.m_scale.m_val);
 }
 
 TEST(XMLSchemaTest, nonstandard)
@@ -252,8 +256,8 @@ TEST(XMLSchemaTest, nonstandard)
 
     XMLDimList dims;
 
-    XMLDim d1(DimType((Dimension::Id::Enum)543, Type::Signed32), "FOOBAR");
-    XMLDim d2(DimType((Dimension::Id::Enum)545, Type::Signed32), "BARFOO");
+    XMLDim d1(DimType((Dimension::Id)543, Type::Signed32), "FOOBAR");
+    XMLDim d2(DimType((Dimension::Id)545, Type::Signed32), "BARFOO");
 
     dims.push_back(d1);
     dims.push_back(d2);
diff --git a/test/unit/apps/pcpipelineTest.cpp b/test/unit/apps/pcpipelineTest.cpp
index 7219a13..cfd681f 100644
--- a/test/unit/apps/pcpipelineTest.cpp
+++ b/test/unit/apps/pcpipelineTest.cpp
@@ -44,14 +44,16 @@
 
 static std::string appName()
 {
-    const std::string app = Support::binpath(Support::exename("pdal") + " pipeline");
+    const std::string app = Support::binpath(Support::exename("pdal") +
+        " pipeline");
     return app;
 }
 
 // most pipelines (those with a writer) will be invoked via `pdal pipeline`
 static void run_pipeline(std::string const& pipeline)
 {
-    const std::string cmd = Support::binpath(Support::exename("pdal") + " pipeline");
+    const std::string cmd = Support::binpath(Support::exename("pdal") +
+        " pipeline");
 
     std::string output;
     std::string file(Support::configuredpath(pipeline));
@@ -61,6 +63,20 @@ static void run_pipeline(std::string const& pipeline)
         std::cerr << output << std::endl;
 }
 
+// most pipelines (those with a writer) will be invoked via `pdal pipeline`
+static void run_pipeline_stdin(std::string const& pipeline)
+{
+    const std::string cmd = Support::binpath(Support::exename("pdal") +
+        " pipeline --stdin");
+
+    std::string output;
+    std::string file(Support::configuredpath(pipeline));
+    int stat = pdal::Utils::run_shell_command(cmd + " < " + file, output);
+    EXPECT_EQ(0, stat);
+    if (stat)
+        std::cerr << output << std::endl;
+}
+
 // pipeines with no writer will be invoked via `pdal info`
 static void run_info(std::string const& pipeline)
 {
@@ -96,12 +112,6 @@ TEST(pipelineBaseTest, common_opts)
     std::string output;
     int stat = pdal::Utils::run_shell_command(cmd + " -h", output);
     EXPECT_EQ(stat, 0);
-
-    // We used to accept --version as a kernel option, rather than an
-    // application option.  Make sure it now throws an error.
-    stat = pdal::Utils::run_shell_command(cmd + " --version 2>&1", output);
-    EXPECT_TRUE(output.find("Unexpected argument") != std::string::npos);
-    EXPECT_NE(stat, 0);
 }
 
 TEST(pipelineBaseTest, drop_color)
@@ -137,6 +147,9 @@ TEST(pipelineBaseTest, readcomments)
 TEST(pipelineBaseTest, write)
 { run_pipeline("pipeline/pipeline_write.xml"); }
 
+TEST(pipelineBaseTest, writeStdin)
+{ run_pipeline_stdin("pipeline/pipeline_write.xml"); }
+
 TEST(pipelineBaseTest, write2)
 { run_pipeline("pipeline/pipeline_write2.xml"); }
 
@@ -218,9 +231,6 @@ TEST(pipelineHoleTest, crop)
 TEST(pipelineIcebridgeTest, DISABLED_icebridge)
 { run_pipeline("icebridge/pipeline.xml"); }
 
-TEST(pipelineNitfTest, chipper)
-{ run_info("nitf/chipper.xml"); }
-
 TEST(pipelineNitfTest, conversion)
 { run_pipeline("nitf/conversion.xml"); }
 
@@ -287,6 +297,3 @@ TEST(pipelineTextTest, csv_writer)
 
 TEST(pipelineTextTest, geojson_writer)
 { run_pipeline("io/text-writer-geojson.xml"); }
-
-TEST(pipelineTextTest, space_delimited_writer)
-{ run_pipeline("io/text-writer-space-delimited.xml"); }
diff --git a/test/unit/apps/pcpipelineTestJSON.cpp b/test/unit/apps/pcpipelineTestJSON.cpp
index 0766e10..9eb6e69 100644
--- a/test/unit/apps/pcpipelineTestJSON.cpp
+++ b/test/unit/apps/pcpipelineTestJSON.cpp
@@ -45,14 +45,15 @@
 
 static std::string appName()
 {
-    const std::string app = Support::binpath(Support::exename("pdal") + " pipeline");
+    const std::string app = Support::binpath(Support::exename("pdal") +
+        " pipeline");
     return app;
 }
 
 // most pipelines (those with a writer) will be invoked via `pdal pipeline`
 static void run_pipeline(std::string const& pipeline)
 {
-    const std::string cmd = Support::binpath(Support::exename("pdal") + " pipeline");
+    const std::string cmd = appName();
 
     std::string output;
     std::string file(Support::configuredpath(pipeline));
@@ -62,19 +63,31 @@ static void run_pipeline(std::string const& pipeline)
         std::cerr << output << std::endl;
 }
 
-#ifdef PDAL_COMPILER_MSVC
+// most pipelines (those with a writer) will be invoked via `pdal pipeline`
+static void run_pipeline_stdin(std::string const& pipeline)
+{
+    const std::string cmd = appName();
+
+    std::string output;
+    std::string file(Support::configuredpath(pipeline));
+    int stat = pdal::Utils::run_shell_command(cmd + " --stdin < " + file,
+        output);
+    EXPECT_EQ(0, stat);
+    if (stat)
+        std::cerr << output << std::endl;
+}
+
 TEST(pipelineBaseTest, no_input)
 {
     const std::string cmd = appName();
 
     std::string output;
     int stat = pdal::Utils::run_shell_command(cmd, output);
-    EXPECT_EQ(-1, stat);
+    EXPECT_NE(0, stat);
 
     const std::string expected = "usage: pdal pipeline [options] [input]";
     EXPECT_EQ(expected, output.substr(0, expected.length()));
 }
-#endif
 
 
 TEST(pipelineBaseTest, common_opts)
@@ -84,12 +97,6 @@ TEST(pipelineBaseTest, common_opts)
     std::string output;
     int stat = pdal::Utils::run_shell_command(cmd + " -h", output);
     EXPECT_EQ(stat, 0);
-
-    // We used to accept --version as a kernel option, rather than an
-    // application option.  Make sure it now throws an error.
-    stat = pdal::Utils::run_shell_command(cmd + " --version 2>&1", output);
-    EXPECT_TRUE(output.find("Unexpected argument") != std::string::npos);
-    EXPECT_NE(stat, 0);
 }
 
 class json : public testing::TestWithParam<const char*> {};
@@ -99,6 +106,12 @@ TEST_P(json, pipeline)
     run_pipeline(GetParam());
 }
 
+TEST(json, pipeline_stdin)
+{
+    run_pipeline_stdin("pipeline/las2csv.json");
+    run_pipeline_stdin("pipeline/bpf2las.json");
+}
+
 INSTANTIATE_TEST_CASE_P(base, json,
                         testing::Values(
                             // "autzen/autzen-interpolate.json",
@@ -127,7 +140,8 @@ INSTANTIATE_TEST_CASE_P(base, json,
                             "pipeline/sbet2txt.json",
                             "pipeline/sort.json",
                             "pipeline/splitter.json",
-                            "pipeline/stats.json"
+                            "pipeline/stats.json",
+                            "pipeline/transformation.json"
                         ));
 
 class jsonWithNITF : public testing::TestWithParam<const char*> {};
@@ -143,14 +157,14 @@ TEST_P(jsonWithNITF, pipeline)
         std::cerr << "WARNING: could not create readers.nitf or writers.nitf, skipping test" << std::endl;
 }
 
+
 INSTANTIATE_TEST_CASE_P(plugins, jsonWithNITF,
                         testing::Values(
                             "pipeline/bpf2nitf.json",
                             "pipeline/las2nitf.json",
                             "pipeline/las2nitf-2.json",
                             "pipeline/las2nitf-crop-with-options.json",
-                            "pipeline/nitf2las.json",
-                            "pipeline/nitf-chipper.json"
+                            "pipeline/nitf2las.json"
                         ));
 
 class jsonWithP2G : public testing::TestWithParam<const char*> {};
diff --git a/test/unit/filters/AdditionalMergeTest.cpp b/test/unit/filters/AdditionalMergeTest.cpp
index 24ea12d..aca15c8 100644
--- a/test/unit/filters/AdditionalMergeTest.cpp
+++ b/test/unit/filters/AdditionalMergeTest.cpp
@@ -71,7 +71,7 @@ TEST(AdditionalMergeTest, merge_filter_and_reader_with_manager)
     merge.setInput(reader2);
 
     Options optsW;
-    optsW.add("filename", outfile, "file to write to");
+    optsW.add("filename", outfile);
     Stage& writer = mgr.addWriter("writers.las");
     writer.setInput(merge);
     writer.setOptions(optsW);
@@ -109,7 +109,7 @@ TEST(AdditionalMergeTest, merge_reader_and_filter_with_manager)
     merge.setInput(filter);
 
     Options optsW;
-    optsW.add("filename", outfile, "file to write to");
+    optsW.add("filename", outfile);
     Stage& writer = mgr.addWriter("writers.las");
     writer.setInput(merge);
     writer.setOptions(optsW);
@@ -145,7 +145,7 @@ TEST(AdditionalMergeTest, merge_filter_and_reader_without_manager)
     merge.setInput(reader2);
 
     Options optsW;
-    optsW.add("filename", outfile, "file to write to");
+    optsW.add("filename", outfile);
     LasWriter writer;
     writer.setInput(merge);
     writer.setOptions(optsW);
@@ -186,7 +186,7 @@ TEST(AdditionalMergeTest, merge_reader_and_filter_without_manager)
     merge.setInput(filter);
 
     Options optsW;
-    optsW.add("filename", outfile, "file to write to");
+    optsW.add("filename", outfile);
     LasWriter writer;
     writer.setInput(merge);
     writer.setOptions(optsW);
@@ -225,7 +225,7 @@ TEST(AdditionalMergeTest, filter_and_reader_writer_inputs_with_manager)
     filter.setOptions(optsF);
 
     Options optsW;
-    optsW.add("filename", outfile, "file to write to");
+    optsW.add("filename", outfile);
     Stage& writer = mgr.addWriter("writers.las");
     writer.setInput(filter);
     writer.setInput(reader2);
@@ -260,7 +260,7 @@ TEST(AdditionalMergeTest, reader_and_filter_writer_inputs_with_manager)
     filter.setOptions(optsF);
 
     Options optsW;
-    optsW.add("filename", outfile, "file to write to");
+    optsW.add("filename", outfile);
     Stage& writer = mgr.addWriter("writers.las");
     writer.setInput(reader2);
     writer.setInput(filter);
@@ -293,7 +293,7 @@ TEST(AdditionalMergeTest, filter_and_reader_writer_inputs_without_manager)
     filter.setOptions(optsF);
 
     Options optsW;
-    optsW.add("filename", outfile, "file to write to");
+    optsW.add("filename", outfile);
     LasWriter writer;
     writer.setInput(filter);
     writer.setInput(reader2);
@@ -335,7 +335,7 @@ TEST(AdditionalMergeTest, reader_and_filter_writer_inputs_without_manager)
     filter.setOptions(optsF);
 
     Options optsW;
-    optsW.add("filename", outfile, "file to write to");
+    optsW.add("filename", outfile);
     LasWriter writer;
     writer.setInput(reader2);
     writer.setInput(filter);
@@ -390,7 +390,7 @@ TEST(AdditionalMergeTest, merge_two_filters_with_manager)
     merge.setInput(filter2);
 
     Options optsW;
-    optsW.add("filename", outfile, "file to write to");
+    optsW.add("filename", outfile);
     Stage& writer = mgr.addWriter("writers.las");
     writer.setInput(merge);
     writer.setOptions(optsW);
@@ -433,7 +433,7 @@ TEST(AdditionalMergeTest, merge_two_filters_without_manager)
     merge.setInput(filter2);
 
     Options optsW;
-    optsW.add("filename", outfile, "file to write to");
+    optsW.add("filename", outfile);
     LasWriter writer;
     writer.setInput(merge);
     writer.setOptions(optsW);
@@ -479,7 +479,7 @@ TEST(AdditionalMergeTest, two_filters_writer_inputs_with_manager)
     filter2.setOptions(optsF2);
 
     Options optsW;
-    optsW.add("filename", outfile, "file to write to");
+    optsW.add("filename", outfile);
     Stage& writer = mgr.addWriter("writers.las");
     writer.setInput(filter1);
     writer.setInput(filter2);
@@ -519,7 +519,7 @@ TEST(AdditionalMergeTest, two_filters_writer_inputs_without_manager)
     filter2.setOptions(optsF2);
 
     Options optsW;
-    optsW.add("filename", outfile, "file to write to");
+    optsW.add("filename", outfile);
     LasWriter writer;
     writer.setInput(filter1);
     writer.setInput(filter2);
diff --git a/test/unit/filters/AttributeFilterTest.cpp b/test/unit/filters/AttributeFilterTest.cpp
index 6eab18e..a26b5f7 100644
--- a/test/unit/filters/AttributeFilterTest.cpp
+++ b/test/unit/filters/AttributeFilterTest.cpp
@@ -139,7 +139,6 @@ TEST(AttributeFilterTest, datasource)
     PointViewPtr v = *s.begin();
     for (PointId i = 0; i < v->size(); ++i)
         EXPECT_EQ(v->getFieldAs<int>(Dimension::Id::Classification, i), 2);
-
     Options o2;
     o2.add("polygon", "POLYGON ((-123.064404672110015 44.062248205780641,-123.063001791092177 44.062295757390288,-123.062938948566199 44.061866413306625,-123.063711529699802 44.061825083575727,-123.062903757506561 44.060798284876931,-123.0634590922878 44.06084959530147,-123.063939134831102 44.061205726019097,-123.064707560079256 44.061834553141757,-123.064404672110015 44.062248205780641))");
     c.setOptions(o2);
diff --git a/test/unit/filters/ChipperTest.cpp b/test/unit/filters/ChipperTest.cpp
index 3ccdae2..7bc3293 100644
--- a/test/unit/filters/ChipperTest.cpp
+++ b/test/unit/filters/ChipperTest.cpp
@@ -58,7 +58,7 @@ TEST(ChipperTest, test_construction)
         // need to scope the writer, so that's it dtor can use the stream
 
         Options options;
-        Option capacity("capacity", 15, "capacity");
+        Option capacity("capacity", 15);
         options.add(capacity);
 
         ChipperFilter chipper;
@@ -131,7 +131,7 @@ TEST(ChipperTest, test_ordering)
     Option filename("filename", source_filename, "");
     options.add(filename);
 
-    Option capacity("capacity", 25,"capacity");
+    Option capacity("capacity", 25);
     options.add(capacity);
 
     LasReader candidate_reader(options);
diff --git a/test/unit/filters/ColorizationFilterTest.cpp b/test/unit/filters/ColorizationFilterTest.cpp
index 2370b3d..6cdcc39 100644
--- a/test/unit/filters/ColorizationFilterTest.cpp
+++ b/test/unit/filters/ColorizationFilterTest.cpp
@@ -100,9 +100,9 @@ void testFileStreamed(const Options& filterOps, StringList dimNames,
     f2.prepare(table);
 
     PointLayoutPtr layout = table.layout();
-    Dimension::Id::Enum id1 = layout->findDim(dimNames[0]);
-    Dimension::Id::Enum id2 = layout->findDim(dimNames[1]);
-    Dimension::Id::Enum id3 = layout->findDim(dimNames[2]);
+    Dimension::Id id1 = layout->findDim(dimNames[0]);
+    Dimension::Id id2 = layout->findDim(dimNames[1]);
+    Dimension::Id id3 = layout->findDim(dimNames[2]);
 
     auto cb = [expectedRed, expectedGreen, expectedBlue, id1, id2, id3]
         (PointRef& point)
@@ -132,8 +132,7 @@ TEST(ColorizationFilterTest, test1)
     Options options;
 
     options.add("dimensions", "Red, Green,Blue::255  ");
-    options.add("raster", Support::datapath("autzen/autzen.jpg"),
-        "raster to read");
+    options.add("raster", Support::datapath("autzen/autzen.jpg"));
 
     StringList dims;
     dims.push_back("Red");
@@ -148,8 +147,7 @@ TEST(ColorizationFilterTest, test2)
 {
     Options options;
 
-    options.add("raster", Support::datapath("autzen/autzen.jpg"),
-        "raster to read");
+    options.add("raster", Support::datapath("autzen/autzen.jpg"));
 
     StringList dims;
     dims.push_back("Red");
@@ -165,8 +163,7 @@ TEST(ColorizationFilterTest, test3)
     Options options;
 
     options.add("dimensions", "Foo:1,Bar_:2,Baz2:3:255");
-    options.add("raster", Support::datapath("autzen/autzen.jpg"),
-        "raster to read");
+    options.add("raster", Support::datapath("autzen/autzen.jpg"));
 
     StringList dims;
     dims.push_back("Foo");
@@ -181,8 +178,7 @@ TEST(ColorizationFilterTest, test4)
     Options options;
 
     options.add("dimensions", "Foo&:1,Bar:2,Baz:3:255");
-    options.add("raster", Support::datapath("autzen/autzen.jpg"),
-        "raster to read");
+    options.add("raster", Support::datapath("autzen/autzen.jpg"));
 
     StringList dims;
     dims.push_back("Foo");
diff --git a/test/unit/filters/CropFilterTest.cpp b/test/unit/filters/CropFilterTest.cpp
index 144abe7..9bd68d6 100644
--- a/test/unit/filters/CropFilterTest.cpp
+++ b/test/unit/filters/CropFilterTest.cpp
@@ -60,7 +60,7 @@ TEST(CropFilterTest, test_crop)
     BOX3D srcBounds(0.0, 0.0, 0.0, 10.0, 100.0, 1000.0);
     Options opts;
     opts.add("bounds", srcBounds);
-    opts.add("num_points", 1000);
+    opts.add("count", 1000);
     opts.add("mode", "ramp");
     FauxReader reader;
     reader.setOptions(opts);
@@ -125,8 +125,8 @@ TEST(CropFilterTest, test_crop_polygon)
     reader.setOptions(ops1);
 
     Options options;
-    Option debug("debug", true, "");
-    Option verbose("verbose", 9, "");
+    Option debug("debug", true);
+    Option verbose("verbose", 9);
 
     std::istream* wkt_stream =
         FileUtils::openFile(Support::datapath("autzen/autzen-selection.wkt"));
@@ -136,7 +136,7 @@ TEST(CropFilterTest, test_crop_polygon)
 
     std::string wkt(strbuf.str());
 
-    Option polygon("polygon", wkt, "");
+    Option polygon("polygon", wkt);
     options.add(polygon);
 
     CropFilter crop;
@@ -156,16 +156,20 @@ TEST(CropFilterTest, test_crop_polygon)
 
 TEST(CropFilterTest, test_crop_polygon_reprojection)
 {
-    Options options;
+    Options readOptions;
+
+    readOptions.add("filename", Support::datapath("las/1.2-with-color.las"));
+    readOptions.add("spatialreference", Support::datapath("autzen/autzen-srs.wkt"));
+
+    LasReader reader;
+    reader.setOptions(readOptions);
+
+    Options reproOptions;
+    reproOptions.add("out_srs", "EPSG:4326");
 
-    options.add("spatialreference", Support::datapath("autzen/autzen-srs.wkt"));
-    options.add("out_srs", "EPSG:4326");
-    options.add("x_dim", std::string("readers.las.X"));
-    options.add("y_dim", std::string("readers.las.Y"));
-    options.add("z_dim", std::string("readers.las.Z"));
-    options.add("scale_x", 0.0000001f);
-    options.add("scale_y", 0.0000001f);
-    options.add("filename", Support::datapath("las/1.2-with-color.las"));
+    ReprojectionFilter reprojection;
+    reprojection.setOptions(reproOptions);
+    reprojection.setInput(reader);
 
     std::istream* wkt_stream = FileUtils::openFile(
         Support::datapath("autzen/autzen-selection-dd.wkt"));
@@ -173,18 +177,11 @@ TEST(CropFilterTest, test_crop_polygon_reprojection)
     strbuf << wkt_stream->rdbuf();
     std::string wkt(strbuf.str());
 
-    Option polygon("polygon", wkt);
-    options.add(polygon);
-
-    LasReader reader;
-    reader.setOptions(options);
-
-    ReprojectionFilter reprojection;
-    reprojection.setOptions(options);
-    reprojection.setInput(reader);
+    Options cropOptions;
+    cropOptions.add("polygon", wkt);
 
     CropFilter crop;
-    crop.setOptions(options);
+    crop.setOptions(cropOptions);
     crop.setInput(reprojection);
 
     PointTable table;
diff --git a/test/unit/filters/DecimationFilterTest.cpp b/test/unit/filters/DecimationFilterTest.cpp
index d4b5354..33332ca 100644
--- a/test/unit/filters/DecimationFilterTest.cpp
+++ b/test/unit/filters/DecimationFilterTest.cpp
@@ -56,7 +56,7 @@ TEST(DecimationFilterTest, DecimationFilterTest_test1)
     Options ops;
     ops.add("bounds", srcBounds);
     ops.add("mode", "random");
-    ops.add("num_points", 30);
+    ops.add("count", 30);
     FauxReader reader;
     reader.setOptions(ops);
 
@@ -91,7 +91,7 @@ TEST(DecimationFilterTest, stream)
     Options ops;
     ops.add("bounds", srcBounds);
     ops.add("mode", "ramp");
-    ops.add("num_points", 100);
+    ops.add("count", 100);
     FauxReader reader;
     reader.setOptions(ops);
 
diff --git a/test/unit/filters/DividerFilterTest.cpp b/test/unit/filters/DividerFilterTest.cpp
index 5b43411..2f85e0c 100644
--- a/test/unit/filters/DividerFilterTest.cpp
+++ b/test/unit/filters/DividerFilterTest.cpp
@@ -46,7 +46,7 @@ TEST(DividerFilterTest, partition_count)
     Options readerOps;
     readerOps.add("bounds", BOX3D(1, 1, 1, count, count, count));
     readerOps.add("mode", "ramp");
-    readerOps.add("num_points", count);
+    readerOps.add("count", count);
 
     FauxReader r;
     r.setOptions(readerOps);
@@ -83,7 +83,7 @@ TEST(DividerFilterTest, partition_capacity)
     Options readerOps;
     readerOps.add("bounds", BOX3D(1, 1, 1, count, count, count));
     readerOps.add("mode", "ramp");
-    readerOps.add("num_points", count);
+    readerOps.add("count", count);
 
     FauxReader r;
     r.setOptions(readerOps);
@@ -120,7 +120,7 @@ TEST(DividerFilterTest, round_robin_count)
     Options readerOps;
     readerOps.add("bounds", BOX3D(1, 1, 1, count, count, count));
     readerOps.add("mode", "ramp");
-    readerOps.add("num_points", count);
+    readerOps.add("count", count);
 
     FauxReader r;
     r.setOptions(readerOps);
@@ -165,7 +165,7 @@ TEST(DividerFilterTest, round_robin_capacity)
     Options readerOps;
     readerOps.add("bounds", BOX3D(1, 1, 1, count, count, count));
     readerOps.add("mode", "ramp");
-    readerOps.add("num_points", count);
+    readerOps.add("count", count);
 
     FauxReader r;
     r.setOptions(readerOps);
diff --git a/test/unit/filters/FerryFilterTest.cpp b/test/unit/filters/FerryFilterTest.cpp
index 7670b46..faec3af 100644
--- a/test/unit/filters/FerryFilterTest.cpp
+++ b/test/unit/filters/FerryFilterTest.cpp
@@ -66,8 +66,8 @@ TEST(FerryFilterTest, test_ferry_copy_xml)
     PointViewPtr view = *viewSet.begin();
     EXPECT_EQ(view->size(), 1065u);
 
-    Dimension::Id::Enum state_plane_x = table.layout()->findDim("StatePlaneX");
-    Dimension::Id::Enum state_plane_y = table.layout()->findDim("StatePlaneY");
+    Dimension::Id state_plane_x = table.layout()->findDim("StatePlaneX");
+    Dimension::Id state_plane_y = table.layout()->findDim("StatePlaneY");
 
     double lon = view->getFieldAs<double>(Dimension::Id::X, 0);
     double lat = view->getFieldAs<double>(Dimension::Id::Y, 0);
@@ -88,7 +88,7 @@ TEST(FerryFilterTest, stream)
     Options ro;
     ro.add("mode", "ramp");
     ro.add("bounds", BOX3D(0, 0, 0, 99, 99, 99));
-    ro.add("num_points", 100);
+    ro.add("count", 100);
 
     r.setOptions(ro);
 
@@ -138,8 +138,8 @@ TEST(FerryFilterTest, test_ferry_copy_json)
     PointViewPtr view = *viewSet.begin();
     EXPECT_EQ(view->size(), 1065u);
 
-    Dimension::Id::Enum state_plane_x = table.layout()->findDim("StatePlaneX");
-    Dimension::Id::Enum state_plane_y = table.layout()->findDim("StatePlaneY");
+    Dimension::Id state_plane_x = table.layout()->findDim("StatePlaneX");
+    Dimension::Id state_plane_y = table.layout()->findDim("StatePlaneY");
 
     double lon = view->getFieldAs<double>(Dimension::Id::X, 0);
     double lat = view->getFieldAs<double>(Dimension::Id::Y, 0);
diff --git a/test/unit/filters/MergeTest.cpp b/test/unit/filters/MergeTest.cpp
index 07067f7..abcca8b 100644
--- a/test/unit/filters/MergeTest.cpp
+++ b/test/unit/filters/MergeTest.cpp
@@ -72,7 +72,10 @@ TEST(MergeTest, test3)
 {
     using namespace pdal;
 
+    LogPtr log(new Log("pdal merge", &std::clog));
+    log->setLevel((LogLevel)5);
     PipelineManager mgr;
+    mgr.setLog(log);
     mgr.readPipeline(Support::configuredpath("filters/merge3.xml"));
 
     std::ostringstream oss;
@@ -125,7 +128,10 @@ TEST(MergeTest, test6)
 {
     using namespace pdal;
 
+    LogPtr log(new Log("pdal merge", &std::clog));
+    log->setLevel((LogLevel)5);
     PipelineManager mgr;
+    mgr.setLog(log);
     mgr.readPipeline(Support::configuredpath("filters/merge3.json"));
 
     std::ostringstream oss;
diff --git a/test/unit/filters/RandomizeFilterTest.cpp b/test/unit/filters/RandomizeFilterTest.cpp
index 44dcb7a..8d1a372 100644
--- a/test/unit/filters/RandomizeFilterTest.cpp
+++ b/test/unit/filters/RandomizeFilterTest.cpp
@@ -48,7 +48,7 @@ TEST(RandomizeFilterTest, simple)
     Options readerOps;
     readerOps.add("bounds", BOX3D(1, 1, 1, count, count, count));
     readerOps.add("mode", "ramp");
-    readerOps.add("num_points", count);
+    readerOps.add("count", count);
 
     FauxReader r;
     r.setOptions(readerOps);
diff --git a/test/unit/filters/RangeFilterTest.cpp b/test/unit/filters/RangeFilterTest.cpp
index fe995b8..cdec6b8 100644
--- a/test/unit/filters/RangeFilterTest.cpp
+++ b/test/unit/filters/RangeFilterTest.cpp
@@ -64,7 +64,7 @@ TEST(RangeFilterTest, singleDimension)
     Options ops;
     ops.add("bounds", srcBounds);
     ops.add("mode", "ramp");
-    ops.add("num_points", 10);
+    ops.add("count", 10);
 
     FauxReader reader;
     reader.setOptions(ops);
@@ -95,7 +95,7 @@ TEST(RangeFilterTest, multipleDimensions)
     Options ops;
     ops.add("bounds", srcBounds);
     ops.add("mode", "ramp");
-    ops.add("num_points", 10);
+    ops.add("count", 10);
 
     FauxReader reader;
     reader.setOptions(ops);
@@ -130,7 +130,7 @@ TEST(RangeFilterTest, multipleDimsBusted)
     Options ops;
     ops.add("bounds", srcBounds);
     ops.add("mode", "ramp");
-    ops.add("num_points", 1);
+    ops.add("count", 1);
 
     FauxReader reader;
     reader.setOptions(ops);
@@ -169,7 +169,7 @@ TEST(RangeFilterTest, onlyMin)
     Options ops;
     ops.add("bounds", srcBounds);
     ops.add("mode", "ramp");
-    ops.add("num_points", 10);
+    ops.add("count", 10);
 
     FauxReader reader;
     reader.setOptions(ops);
@@ -202,7 +202,7 @@ TEST(RangeFilterTest, onlyMax)
     Options ops;
     ops.add("bounds", srcBounds);
     ops.add("mode", "ramp");
-    ops.add("num_points", 10);
+    ops.add("count", 10);
 
     StageFactory f;
     FauxReader reader;
@@ -236,7 +236,7 @@ TEST(RangeFilterTest, negation)
     Options ops;
     ops.add("bounds", srcBounds);
     ops.add("mode", "ramp");
-    ops.add("num_points", 10);
+    ops.add("count", 10);
 
     StageFactory f;
     FauxReader reader;
@@ -271,7 +271,7 @@ TEST(RangeFilterTest, equals)
     Options ops;
     ops.add("bounds", srcBounds);
     ops.add("mode", "ramp");
-    ops.add("num_points", 10);
+    ops.add("count", 10);
 
     FauxReader reader;
     reader.setOptions(ops);
@@ -300,7 +300,7 @@ TEST(RangeFilterTest, negativeValues)
     Options ops;
     ops.add("bounds", srcBounds);
     ops.add("mode", "ramp");
-    ops.add("num_points", 21);
+    ops.add("count", 21);
 
     FauxReader reader;
     reader.setOptions(ops);
@@ -329,7 +329,7 @@ TEST(RangeFilterTest, simple_logic)
     Options ops;
     ops.add("bounds", BOX3D(1, 101, 201, 10, 110, 210));
     ops.add("mode", "ramp");
-    ops.add("num_points", 10);
+    ops.add("count", 10);
 
     FauxReader reader;
     reader.setOptions(ops);
@@ -360,7 +360,7 @@ TEST(RangeFilterTest, stream_logic)
     Options ops;
     ops.add("bounds", BOX3D(1, 101, 201, 10, 110, 210));
     ops.add("mode", "ramp");
-    ops.add("num_points", 10);
+    ops.add("count", 10);
 
     FauxReader reader;
     reader.setOptions(ops);
diff --git a/test/unit/filters/ReprojectionFilterTest.cpp b/test/unit/filters/ReprojectionFilterTest.cpp
index 9ba0a86..bcc1e29 100644
--- a/test/unit/filters/ReprojectionFilterTest.cpp
+++ b/test/unit/filters/ReprojectionFilterTest.cpp
@@ -80,11 +80,7 @@ TEST(ReprojectionFilterTest, ReprojectionFilterTest_test_1)
         reader.setOptions(ops1);
 
         Options options;
-        Option debug("debug", true, "");
-        Option verbose("verbose", 9, "");
-        Option out_srs("out_srs", out_ref.getWKT(),
-            "Output SRS to reproject to");
-        options.add(out_srs);
+        options.add("out_srs", out_ref.getWKT());
 
         ReprojectionFilter reprojectionFilter;
         reprojectionFilter.setOptions(options);
diff --git a/test/unit/filters/SplitterTest.cpp b/test/unit/filters/SplitterTest.cpp
index cb745ed..ff067bc 100644
--- a/test/unit/filters/SplitterTest.cpp
+++ b/test/unit/filters/SplitterTest.cpp
@@ -53,7 +53,7 @@ TEST(SplitterTest, test_tile_filter)
     r.setOptions(ops1);
 
     Options o;
-    Option length("length", 1000, "length");
+    Option length("length", 1000);
     o.add(length);
 
     // create the tile filter and prepare
diff --git a/test/unit/filters/TransformationFilterTest.cpp b/test/unit/filters/TransformationFilterTest.cpp
index ce819ef..4a5f802 100644
--- a/test/unit/filters/TransformationFilterTest.cpp
+++ b/test/unit/filters/TransformationFilterTest.cpp
@@ -53,7 +53,7 @@ public:
         BOX3D bounds(1, 2, 3, 4, 5, 6);
         Options readerOpts;
         readerOpts.add("mode", "constant");
-        readerOpts.add("num_points", 3);
+        readerOpts.add("count", 3);
         readerOpts.add("bounds", bounds);
         m_reader.setOptions(readerOpts);
         m_filter.setInput(m_reader);
diff --git a/test/unit/io/gdal/GDALReaderTest.cpp b/test/unit/io/gdal/GDALReaderTest.cpp
index 9425d09..fca0582 100644
--- a/test/unit/io/gdal/GDALReaderTest.cpp
+++ b/test/unit/io/gdal/GDALReaderTest.cpp
@@ -55,9 +55,9 @@ TEST(GDALReaderTest, simple)
     PointViewSet s = gr.execute(t);
     PointViewPtr v = *s.begin();
     PointLayoutPtr l = t.layout();
-    Dimension::Id::Enum id1 = l->findDim("band-1");
-    Dimension::Id::Enum id2 = l->findDim("band-2");
-    Dimension::Id::Enum id3 = l->findDim("band-3");
+    Dimension::Id id1 = l->findDim("band-1");
+    Dimension::Id id2 = l->findDim("band-2");
+    Dimension::Id id3 = l->findDim("band-3");
     EXPECT_EQ(v->size(), (size_t)(735 * 973));
 
     auto verify = [v, id1, id2, id3]
@@ -133,7 +133,7 @@ protected:
 
         PointTable t;
         gr.prepare(t);
-        Dimension::Id::Enum b1 = t.layout()->findDim("band-1");
+        Dimension::Id b1 = t.layout()->findDim("band-1");
         PointViewSet s = gr.execute(t);
         PointViewPtr v = *s.begin();
 
diff --git a/test/unit/io/ilvis2/Ilvis2ReaderTest.cpp b/test/unit/io/ilvis2/Ilvis2ReaderTest.cpp
index 6e24ff2..5b3c038 100644
--- a/test/unit/io/ilvis2/Ilvis2ReaderTest.cpp
+++ b/test/unit/io/ilvis2/Ilvis2ReaderTest.cpp
@@ -46,7 +46,7 @@ using namespace pdal;
 void checkPoint(const PointView& data, PointId index, double time,
     double latitude, double longitude, double altitude)
 {
-    auto checkDimension = [&data,index](Dimension::Id::Enum dim,
+    auto checkDimension = [&data,index](Dimension::Id dim,
         double expected)
     {
         double actual = data.getFieldAs<double>(dim, index);
diff --git a/test/unit/io/las/LasReaderTest.cpp b/test/unit/io/las/LasReaderTest.cpp
index e294fd1..73277b6 100644
--- a/test/unit/io/las/LasReaderTest.cpp
+++ b/test/unit/io/las/LasReaderTest.cpp
@@ -76,42 +76,6 @@ TEST(LasReaderTest, create)
     EXPECT_TRUE(s);
 }
 
-TEST(LasReaderTest, test_base_options)
-{
-    const std::string file(Support::datapath("las/1.2-with-color.las"));
-
-    const Option opt_filename("filename", file);
-    const Option opt_debug_string("debug", "true");
-    const Option opt_debug_bool("debug", true);
-
-    {
-        Options opts;
-        opts.add(opt_filename);
-
-        LasReader reader;
-        reader.setOptions(opts);
-        EXPECT_TRUE(reader.isDebug() == false);
-    }
-
-    {
-        Options opts;
-        opts.add(opt_filename);
-        opts.add(opt_debug_string);
-        LasReader reader;
-        reader.setOptions(opts);
-        EXPECT_TRUE(reader.isDebug() == true);
-    }
-
-    {
-        Options opts;
-        opts.add(opt_filename);
-        opts.add(opt_debug_bool);
-        LasReader reader;
-        reader.setOptions(opts);
-        EXPECT_TRUE(reader.isDebug() == true);
-    }
-}
-
 
 TEST(LasReaderTest, header)
 {
@@ -265,8 +229,6 @@ TEST(LasReaderTest, inspect)
         qi.m_dimNames.end(), std::begin(dims)));
 }
 
-//ABELL - Find another way to do this.
-/**
 TEST(LasReaderTest, test_vlr)
 {
     PointTable table;
@@ -278,9 +240,15 @@ TEST(LasReaderTest, test_vlr)
     reader.prepare(table);
     reader.execute(table);
 
-    EXPECT_EQ(reader.header().getVLRs().getAll().size(), 390);
+    MetadataNode root = reader.getMetadata();
+    for (size_t i = 0; i < 390; ++i)
+    {
+        std::string name("vlr_");
+        name += std::to_string(i);
+        MetadataNode m = root.findChild(name);
+        EXPECT_TRUE(!m.value().empty()) << "No node " << i;
+    }
 }
-**/
 
 
 TEST(LasReaderTest, testInvalidFileSignature)
@@ -310,37 +278,37 @@ TEST(LasReaderTest, extraBytes)
     DimTypeList dimTypes = layout->dimTypes();
     EXPECT_EQ(dimTypes.size(), (size_t)25);
 
-    Dimension::Id::Enum color0 = layout->findProprietaryDim("Colors0");
+    Dimension::Id color0 = layout->findProprietaryDim("Colors0");
     EXPECT_EQ(layout->dimType(color0), Dimension::Type::Unsigned16);
-    Dimension::Id::Enum color1 = layout->findProprietaryDim("Colors1");
+    Dimension::Id color1 = layout->findProprietaryDim("Colors1");
     EXPECT_EQ(layout->dimType(color1), Dimension::Type::Unsigned16);
-    Dimension::Id::Enum color2 = layout->findProprietaryDim("Colors2");
+    Dimension::Id color2 = layout->findProprietaryDim("Colors2");
     EXPECT_EQ(layout->dimType(color2), Dimension::Type::Unsigned16);
 
-    Dimension::Id::Enum flag0 = layout->findProprietaryDim("Flags0");
+    Dimension::Id flag0 = layout->findProprietaryDim("Flags0");
     EXPECT_EQ(layout->dimType(flag0), Dimension::Type::Signed8);
-    Dimension::Id::Enum flag1 = layout->findProprietaryDim("Flags1");
+    Dimension::Id flag1 = layout->findProprietaryDim("Flags1");
     EXPECT_EQ(layout->dimType(flag1), Dimension::Type::Signed8);
 
-    Dimension::Id::Enum intense2 = layout->findProprietaryDim("Intensity");
+    Dimension::Id intense2 = layout->findProprietaryDim("Intensity");
     EXPECT_EQ(layout->dimType(intense2), Dimension::Type::Unsigned32);
 
-    Dimension::Id::Enum time2 = layout->findProprietaryDim("Time");
+    Dimension::Id time2 = layout->findProprietaryDim("Time");
     EXPECT_EQ(layout->dimType(time2), Dimension::Type::Unsigned64);
 
     PointViewSet viewSet = reader.execute(table);
     EXPECT_EQ(viewSet.size(), (size_t)1);
     PointViewPtr view = *viewSet.begin();
 
-    Dimension::Id::Enum red = layout->findDim("Red");
-    Dimension::Id::Enum green = layout->findDim("Green");
-    Dimension::Id::Enum blue = layout->findDim("Blue");
+    Dimension::Id red = layout->findDim("Red");
+    Dimension::Id green = layout->findDim("Green");
+    Dimension::Id blue = layout->findDim("Blue");
 
-    Dimension::Id::Enum returnNum = layout->findDim("ReturnNumber");
-    Dimension::Id::Enum numReturns = layout->findDim("NumberOfReturns");
+    Dimension::Id returnNum = layout->findDim("ReturnNumber");
+    Dimension::Id numReturns = layout->findDim("NumberOfReturns");
 
-    Dimension::Id::Enum intensity = layout->findDim("Intensity");
-    Dimension::Id::Enum time = layout->findDim("GpsTime");
+    Dimension::Id intensity = layout->findDim("Intensity");
+    Dimension::Id time = layout->findDim("GpsTime");
 
     for (PointId idx = 0; idx < view->size(); ++idx)
     {
diff --git a/test/unit/io/las/LasWriterTest.cpp b/test/unit/io/las/LasWriterTest.cpp
index 566a5b6..1a797b5 100644
--- a/test/unit/io/las/LasWriterTest.cpp
+++ b/test/unit/io/las/LasWriterTest.cpp
@@ -217,11 +217,11 @@ TEST(LasWriterTest, extra_dims)
     reader2.prepare(readTable);
     viewSet = reader2.execute(readTable);
     pb = *viewSet.begin();
-    Dimension::Id::Enum r1 = readTable.layout()->findDim("R1");
+    Dimension::Id r1 = readTable.layout()->findDim("R1");
     EXPECT_TRUE(r1 != Dimension::Id::Unknown);
-    Dimension::Id::Enum b1 = readTable.layout()->findDim("B1");
+    Dimension::Id b1 = readTable.layout()->findDim("B1");
     EXPECT_TRUE(b1 != Dimension::Id::Unknown);
-    Dimension::Id::Enum g1 = readTable.layout()->findDim("G1");
+    Dimension::Id g1 = readTable.layout()->findDim("G1");
     EXPECT_TRUE(g1 != Dimension::Id::Unknown);
     EXPECT_EQ(pb->size(), (size_t)1065);
     size_t j = 0;
@@ -264,9 +264,9 @@ TEST(LasWriterTest, all_extra_dims)
 
     PointTable t2;
     r.prepare(t2);
-    Dimension::Id::Enum foo = t2.layout()->findDim("Foo");
-    Dimension::Id::Enum bar = t2.layout()->findDim("Bar");
-    Dimension::Id::Enum baz = t2.layout()->findDim("Baz");
+    Dimension::Id foo = t2.layout()->findDim("Foo");
+    Dimension::Id bar = t2.layout()->findDim("Bar");
+    Dimension::Id baz = t2.layout()->findDim("Baz");
 
     PointViewSet s = r.execute(t2);
     EXPECT_EQ(s.size(), 1u);
@@ -665,10 +665,11 @@ TEST(LasWriterTest, fix1063_1064_1065)
 
     FileUtils::deleteFile(outfile);
 
-
     std::string cmd = "pdal translate --writers.las.forward=all "
         "--writers.las.a_srs=\"EPSG:4326\" " + infile + " " + outfile;
     std::string output;
+    std::cerr << "*** Shell command = " <<
+        Support::binpath(cmd) << "!\n";
     Utils::run_shell_command(Support::binpath(cmd), output);
 
     Options o;
diff --git a/test/unit/io/ply/PlyReaderTest.cpp b/test/unit/io/ply/PlyReaderTest.cpp
index f8f2102..0b00c09 100644
--- a/test/unit/io/ply/PlyReaderTest.cpp
+++ b/test/unit/io/ply/PlyReaderTest.cpp
@@ -81,6 +81,35 @@ TEST(PlyReader, ReadText)
 }
 
 
+TEST(PlyReader, ReadTextExtraDims)
+{
+    PlyReader reader;
+    Options options;
+    options.add("filename", Support::datapath("ply/text_extradim.ply"));
+    reader.setOptions(options);
+
+    PointTable table;
+    reader.prepare(table);
+    PointViewSet viewSet = reader.execute(table);
+    EXPECT_EQ(viewSet.size(), 1u);
+    PointViewPtr view = *viewSet.begin();
+    EXPECT_EQ(view->size(), 1u);
+
+    PointLayout *layout = view->layout();
+    EXPECT_FLOAT_EQ(view->getFieldAs<float>(Dimension::Id::X, 0), -2.64944f);
+    EXPECT_FLOAT_EQ(view->getFieldAs<float>(Dimension::Id::Y, 0), -13.0955f);
+    EXPECT_FLOAT_EQ(view->getFieldAs<float>(Dimension::Id::Z, 0), 0.00640115f);
+    EXPECT_EQ(view->getFieldAs<float>(layout->findDim("nx"), 0), -0.0237552f);
+    EXPECT_EQ(view->getFieldAs<float>(layout->findDim("ny"), 0), -0.00902114f);
+    EXPECT_EQ(view->getFieldAs<double>(layout->findDim("nz"), 0), .999665f);
+    EXPECT_EQ(view->getFieldAs<int>(Dimension::Id::Red, 0), 63);
+    EXPECT_EQ(view->getFieldAs<int>(Dimension::Id::Green, 0), 200);
+    EXPECT_EQ(view->getFieldAs<int>(Dimension::Id::Blue, 0), 64);
+    EXPECT_EQ(view->getFieldAs<int>(Dimension::Id::Alpha, 0), 255);
+    EXPECT_EQ(view->getFieldAs<double>(layout->findDim("omg"), 0), 1234);
+}
+
+
 TEST(PlyReader, ReadBinary)
 {
     PlyReader reader;
diff --git a/test/unit/io/pts/PtsReaderTest.cpp b/test/unit/io/pts/PtsReaderTest.cpp
new file mode 100644
index 0000000..deb2d4f
--- /dev/null
+++ b/test/unit/io/pts/PtsReaderTest.cpp
@@ -0,0 +1,81 @@
+/******************************************************************************
+* Copyright (c) 2016, Howard Butler <howard at hobu.co>
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. or Flaxen Geo Consulting nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include <pdal/pdal_test_main.hpp>
+#include <pdal/StageFactory.hpp>
+
+#include <PtsReader.hpp>
+#include "Support.hpp"
+
+
+namespace pdal
+{
+
+TEST(PtsReader, Constructor)
+{
+    PtsReader reader1;
+
+    StageFactory f;
+    Stage* reader2(f.createStage("readers.pts"));
+    EXPECT_TRUE(reader2);
+}
+
+
+
+TEST(PtsReader, ReadPtsExtraDims)
+{
+    PtsReader reader;
+    Options options;
+    options.add("filename", Support::datapath("pts/test.pts"));
+    reader.setOptions(options);
+
+    PointTable table;
+    reader.prepare(table);
+    PointViewSet viewSet = reader.execute(table);
+    EXPECT_EQ(viewSet.size(), 1u);
+    PointViewPtr view = *viewSet.begin();
+    EXPECT_EQ(view->size(), 19u);
+
+    PointLayout *layout = view->layout();
+    EXPECT_FLOAT_EQ(view->getFieldAs<float>(Dimension::Id::X, 0), 3.9809721f);
+    EXPECT_FLOAT_EQ(view->getFieldAs<float>(Dimension::Id::Y, 0), -2.006119f);
+    EXPECT_FLOAT_EQ(view->getFieldAs<float>(Dimension::Id::Z, 0), -0.010086f);
+    EXPECT_EQ(view->getFieldAs<int>(Dimension::Id::Red, 0), 97);
+    EXPECT_EQ(view->getFieldAs<int>(Dimension::Id::Green, 0), 59);
+    EXPECT_EQ(view->getFieldAs<int>(Dimension::Id::Blue, 0), 38);
+}
+
+
+
+}
diff --git a/test/unit/io/qfit/QFITReaderTest.cpp b/test/unit/io/qfit/QFITReaderTest.cpp
index 41230fb..ad26251 100644
--- a/test/unit/io/qfit/QFITReaderTest.cpp
+++ b/test/unit/io/qfit/QFITReaderTest.cpp
@@ -64,11 +64,9 @@ TEST(QFITReaderTest, test_10_word)
 {
     Options options;
 
-    options.add("filename", Support::datapath("qfit/10-word.qi"),
-        "Input filename for reader to use");
-    options.add("flip_coordinates", false,
-        "Flip coordinates from 0-360 to -180-180");
-    options.add("scale_z", 0.001f, "Z scale from mm to m");
+    options.add("filename", Support::datapath("qfit/10-word.qi"));
+    options.add("flip_coordinates", false);
+    options.add("scale_z", 0.001f);
     options.add("count", 3);
 
     std::shared_ptr<QfitReader> reader(new QfitReader);
@@ -91,11 +89,9 @@ TEST(QFITReaderTest, test_14_word)
 {
     Options options;
 
-    options.add("filename", Support::datapath("qfit/14-word.qi"),
-        "Input filename for reader to use");
-    options.add("flip_coordinates", false,
-        "Flip coordinates from 0-360 to -180-180");
-    options.add("scale_z", 0.001f, "Z scale from mm to m");
+    options.add("filename", Support::datapath("qfit/14-word.qi"));
+    options.add("flip_coordinates", false);
+    options.add("scale_z", 0.001f);
     options.add("count", 3);
 
     PointTable table;
diff --git a/test/unit/io/sbet/SbetReaderTest.cpp b/test/unit/io/sbet/SbetReaderTest.cpp
index 8d200c2..181abd9 100644
--- a/test/unit/io/sbet/SbetReaderTest.cpp
+++ b/test/unit/io/sbet/SbetReaderTest.cpp
@@ -50,7 +50,7 @@ void checkPoint(const PointView& data, PointId index, double time,
     double heading, double wander, double xaccel, double yaccel,
     double zaccel, double xangrate, double yangrate, double zangrate)
 {
-    auto checkDimension = [&data,index](Dimension::Id::Enum dim,
+    auto checkDimension = [&data,index](Dimension::Id dim,
         double expected)
     {
         double actual = data.getFieldAs<double>(dim, index);
@@ -66,7 +66,7 @@ void checkPoint(const PointView& data, PointId index, double time,
     checkDimension(Dimension::Id::ZVelocity, zvelocity);
     checkDimension(Dimension::Id::Roll, roll);
     checkDimension(Dimension::Id::Pitch, pitch);
-    checkDimension(Dimension::Id::PlatformHeading, heading);
+    checkDimension(Dimension::Id::Azimuth, heading);
     checkDimension(Dimension::Id::WanderAngle, wander);
     checkDimension(Dimension::Id::XBodyAccel, xaccel);
     checkDimension(Dimension::Id::YBodyAccel, yaccel);
@@ -78,15 +78,16 @@ void checkPoint(const PointView& data, PointId index, double time,
 
 TEST(SbetReaderTest, testRead)
 {
-    Option filename("filename", Support::datapath("sbet/2-points.sbet"), "");
-    Options options(filename);
-    std::shared_ptr<SbetReader> reader(new SbetReader);
-    reader->setOptions(options);
+    Options options;
+    options.add("filename", Support::datapath("sbet/2-points.sbet"));
+
+    SbetReader reader;
+    reader.setOptions(options);
 
     PointTable table;
 
-    reader->prepare(table);
-    PointViewSet viewSet = reader->execute(table);
+    reader.prepare(table);
+    PointViewSet viewSet = reader.execute(table);
     EXPECT_EQ(viewSet.size(), 1u);
     PointViewPtr view = *viewSet.begin();
 
@@ -116,13 +117,14 @@ TEST(SbetReaderTest, testRead)
 
 TEST(SbetReaderTest, testBadFile)
 {
-    Option filename("filename", Support::datapath("sbet/badfile.sbet"), "");
-    Options options(filename);
-    std::shared_ptr<SbetReader> reader(new SbetReader);
-    reader->setOptions(options);
+    Options options;
+    options.add("filename", Support::datapath("sbet/badfile.sbet"));
+
+    SbetReader reader;
+    reader.setOptions(options);
     PointTable table;
-    reader->prepare(table);
-    EXPECT_THROW(reader->execute(table), pdal_error);
+    reader.prepare(table);
+    EXPECT_THROW(reader.execute(table), pdal_error);
 }
 
 TEST(SbetReaderTest, testPipelineXML)
diff --git a/test/unit/io/sbet/SbetWriterTest.cpp b/test/unit/io/sbet/SbetWriterTest.cpp
index 037edbc..7f5276c 100644
--- a/test/unit/io/sbet/SbetWriterTest.cpp
+++ b/test/unit/io/sbet/SbetWriterTest.cpp
@@ -44,8 +44,8 @@ using namespace pdal;
 Options makeReaderOptions()
 {
     Options options;
-    Option filename("filename", Support::datapath("sbet/2-points.sbet"), "");
-    options.add(filename);
+    options.add("filename", Support::datapath("sbet/2-points.sbet"));
+
     return options;
 }
 
@@ -53,8 +53,7 @@ Options makeReaderOptions()
 Options makeWriterOptions()
 {
     Options options;
-    Option filename("filename", Support::temppath("SbetWriterTest.sbet"), "");
-    options.add(filename);
+    options.add("filename", Support::temppath("SbetWriterTest.sbet"));
     return options;
 }
 
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index fc8b690..fc45325 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -1 +1,4 @@
 add_subdirectory(lasdump)
+if (BUILD_TOOLS_NITFWRAP)
+    add_subdirectory(nitfwrap)
+endif()
diff --git a/tools/nitfwrap/CMakeLists.txt b/tools/nitfwrap/CMakeLists.txt
new file mode 100644
index 0000000..4bbb8c0
--- /dev/null
+++ b/tools/nitfwrap/CMakeLists.txt
@@ -0,0 +1,43 @@
+include(${ROOT_DIR}/cmake/common.cmake NO_POLICY_SCOPE)
+include(${PDAL_CMAKE_DIR}/nitro.cmake)
+
+set(PDAL_NITF_DIR ${ROOT_DIR}/plugins/nitf/io)
+
+set (SOURCES
+    NitfWrap.cpp
+    ${PDAL_NITF_DIR}/MetadataReader.cpp
+    ${PDAL_NITF_DIR}/NitfFileReader.cpp
+    ${PDAL_NITF_DIR}/NitfFileWriter.cpp
+    ${PDAL_NITF_DIR}/tre_plugins.cpp
+)
+
+set (HEADERS
+    NitfWrap.hpp
+    ${PDAL_NITF_DIR}/MetadataReader.hpp
+    ${PDAL_NITF_DIR}/NitfFileReader.hpp
+    ${PDAL_NITF_DIR}/NitfFileWriter.hpp
+    ${PDAL_NITF_DIR}/tre_plugins.hpp
+)
+
+add_executable(nitfwrap ${SOURCES} ${HEADERS})
+add_dependencies(nitfwrap generate_dimension_hpp)
+target_link_libraries(nitfwrap
+    ${PDAL_BASE_LIB_NAME}
+    ${PDAL_UTIL_LIB_NAME}
+    ${NITRO_LIBRARIES}
+)
+target_include_directories(nitfwrap
+    PRIVATE
+    "${CMAKE_CURRENT_BINARY_DIR}/include"
+    "${PDAL_INCLUDE_DIR}"
+    "${PDAL_NITF_DIR}"
+)
+
+
+if (WITH_TESTS)
+    PDAL_ADD_TEST(
+        nitfwrap_test
+        FILES NitfWrapTest.cpp
+    )
+endif()
+
diff --git a/tools/nitfwrap/NitfWrap.cpp b/tools/nitfwrap/NitfWrap.cpp
new file mode 100644
index 0000000..36911a7
--- /dev/null
+++ b/tools/nitfwrap/NitfWrap.cpp
@@ -0,0 +1,294 @@
+/******************************************************************************
+* Copyright (c) 2016, Hobu Inc. (info at hobu.co)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. nor the
+*       names of its contributors may be used to endorse or promote
+*       products derived from this software without specific prior
+*       written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include <string>
+#include <vector>
+
+#include <NitfFileReader.hpp>
+#include <pdal/Dimension.hpp>
+#include <pdal/GDALUtils.hpp>
+#include <bpf/BpfHeader.hpp>
+#include <las/LasHeader.hpp>
+#include <pdal/util/FileUtils.hpp>
+#include <pdal/util/IStream.hpp>
+
+#include "NitfWrap.hpp"
+
+int main(int argc, char* argv[])
+{
+    std::vector<std::string> args;
+
+    for (int i = 1; i < argc; ++i)
+        args.push_back(argv[i]);
+
+    try
+    {
+        pdal::nitfwrap::NitfWrap nw(args);
+    }
+    catch (pdal::nitfwrap::error err)
+    {
+        std::cerr << "nitfwrap: " << err.what() << "\n";
+    }
+}
+
+namespace pdal
+{
+namespace nitfwrap
+{
+
+namespace
+{
+
+void outputHelp(ProgramArgs& args)
+{
+    std::cout << "usage: nitfwrap [options] " << args.commandLine() <<
+        std::endl;
+    std::cout << "options:" << std::endl;
+    args.dump(std::cout, 2, Utils::screenWidth());
+}
+
+} // unnamed namespace
+
+
+NitfWrap::NitfWrap(std::vector<std::string>& args)
+{
+    if (!parseArgs(args))
+        return;
+
+    if (m_unwrap)
+        unwrap();
+    else
+    {
+        BOX3D bounds;
+        verify(bounds);
+
+        m_nitfWriter.setFilename(m_outputFile);
+        m_nitfWriter.setBounds(bounds);
+        m_nitfWriter.wrapData(m_inputFile);
+        m_nitfWriter.write();
+    }
+}
+
+
+void NitfWrap::unwrap()
+{
+    // Use the NITF reader to get the offset and length
+    uint64_t offset, length;
+    NitfFileReader reader(m_inputFile);
+    reader.open();
+    reader.getLasOffset(offset, length);
+    reader.close();
+
+    // Open file file and seek to the beginning of the location.
+    std::istream *in = FileUtils::openFile(m_inputFile);
+    if (!in)
+    {
+        std::ostringstream oss;
+
+        oss << "Couldn't open input file '" << m_inputFile << "'.";
+        throw error(oss.str());
+    }
+    in->seekg(offset, std::istream::beg);
+    
+    // Find out if this is a LAS or BPF file and make the output filename.
+    bool compressed;
+    BOX3D bounds;
+    ILeStream leIn(in);
+    IStreamMarker mark(leIn);
+    if (verifyLas(leIn, bounds, compressed))
+    {
+        if (m_outputFile.empty())
+        {
+            m_outputFile = FileUtils::stem(m_inputFile);
+            m_outputFile += (compressed ? ".laz" : ".las");
+        }
+    }
+    else
+    {
+        mark.rewind();
+        if (verifyBpf(leIn, bounds))
+        {
+            if (m_outputFile.empty())
+                m_outputFile = FileUtils::stem(m_inputFile) + ".bpf";
+        }
+        else
+        {
+            std::cerr << "Wrapped file isn't BPF or LAS.\n";
+            return;
+        }
+    }
+
+    uint64_t bufsize = 16;
+    std::vector<char> buf(bufsize);
+    std::ostream *out = FileUtils::createFile(m_outputFile);
+    in->seekg(offset, std::istream::beg);
+    while (length)
+    {
+        size_t size = std::min(length, bufsize);
+        in->read(buf.data(), size);
+        out->write(buf.data(), size);
+        length -= size;
+    }
+    FileUtils::closeFile(out);
+}
+
+
+bool NitfWrap::parseArgs(std::vector<std::string>& argList)
+{
+    ProgramArgs args;
+
+    args.add("input,i", "Input filename", m_inputFile).setPositional();
+    args.add("output,o", "Output filename",
+        m_outputFile).setOptionalPositional();
+    args.add("unwrap,u", "Unwrap NITF file", m_unwrap);
+    try
+    {
+        m_nitfWriter.addArgs(args);
+    }
+    catch (arg_error& e)
+    {
+        throw error(e.m_error);
+    }
+
+    try
+    {
+        args.parse(argList);
+    }
+    catch (arg_error& e)
+    {
+        std::cerr << "nitfwrap: " << e.m_error << std::endl;
+        outputHelp(args);
+        return false;
+    }
+
+    if (!FileUtils::fileExists(m_inputFile))
+    {
+        std::ostringstream oss;
+
+        oss << "Input file '" << m_inputFile << "' doesn't exist.";
+        throw error(oss.str());
+    }
+    if (m_outputFile.empty())
+        if (!m_unwrap)
+            m_outputFile = FileUtils::stem(m_inputFile) + ".ntf";
+    return true;
+}
+
+
+void NitfWrap::verify(BOX3D& bounds)
+{
+    std::istream *stream = FileUtils::openFile(m_inputFile);
+
+    if (!stream)
+    {
+        std::ostringstream oss;
+
+        oss << "Couldn't open input file '" << m_inputFile << "'.";
+        throw error(oss.str());
+    }
+
+    bool compression;
+    ILeStream in(stream);
+    IStreamMarker mark(in);
+    if (!verifyLas(in, bounds, compression))
+    {
+        mark.rewind();
+        if (!verifyBpf(in, bounds))
+            throw error("Input file must be LAS/LAZ or BPF.");
+    }
+}
+
+
+bool NitfWrap::verifyLas(ILeStream& in, BOX3D& bounds, bool& compressed)
+{
+    LasHeader h;
+
+    try
+    {
+        in >> h;
+    }
+    catch (pdal_error&)
+    {
+        return false;
+    }
+    compressed = h.compressed();
+    bounds = h.getBounds();
+    gdal::reprojectBounds(bounds, h.srs().getWKT(), "EPSG:4326");
+    return true;
+}
+
+
+bool NitfWrap::verifyBpf(ILeStream& in, BOX3D& bounds)
+{
+    BpfHeader h;
+    BpfDimensionList dims;
+    LogPtr l(new Log("nitfwrap", "devnull"));
+
+    h.setLog(l);
+
+    if (!h.read(in))
+        return false;
+    if (!h.readDimensions(in, dims))
+        return false;
+    for (auto d : dims)
+    {
+        if (d.m_id == Dimension::Id::X)
+        {
+            bounds.minx = d.m_min;
+            bounds.maxx = d.m_max;
+        }
+        if (d.m_id == Dimension::Id::Y)
+        {
+            bounds.miny = d.m_min;
+            bounds.maxy = d.m_max;
+        }
+        if (d.m_id == Dimension::Id::Z)
+        {
+            bounds.minz = d.m_min;
+            bounds.maxz = d.m_max;
+        }
+    }
+    int32_t zone(abs(h.m_coordId));
+    std::string code;
+    if (h.m_coordId > 0)
+        code = "EPSG:326" + Utils::toString(zone);
+    else
+        code = "EPSG:327" + Utils::toString(zone);
+    gdal::reprojectBounds(bounds, code, "EPSG:4326");
+    return true;
+}
+
+} //namespace nitfwrap
+} //namespace pdal
+
diff --git a/tools/nitfwrap/NitfWrap.hpp b/tools/nitfwrap/NitfWrap.hpp
new file mode 100644
index 0000000..975a12f
--- /dev/null
+++ b/tools/nitfwrap/NitfWrap.hpp
@@ -0,0 +1,37 @@
+#pragma once
+
+#include <NitfFileWriter.hpp>
+
+namespace pdal
+{
+namespace nitfwrap
+{
+
+class error : public std::runtime_error
+{
+public:
+    error(const std::string& msg) : std::runtime_error(msg)
+        {}
+};
+
+class NitfWrap
+{
+public:
+    NitfWrap(std::vector<std::string>& args);
+
+private:
+    std::string m_inputFile;
+    std::string m_outputFile;
+    NitfFileWriter m_nitfWriter;
+    bool m_unwrap;
+
+    bool parseArgs(std::vector<std::string>& args);
+    void unwrap();
+    void verify(BOX3D& bounds);
+    bool verifyLas(ILeStream& in, BOX3D& bounds, bool& compressed);
+    bool verifyBpf(ILeStream& in, BOX3D& bounds);
+};
+
+} // namespace nitfwrap
+} // namespace pdal
+
diff --git a/tools/nitfwrap/NitfWrapTest.cpp b/tools/nitfwrap/NitfWrapTest.cpp
new file mode 100644
index 0000000..f1b7b6b
--- /dev/null
+++ b/tools/nitfwrap/NitfWrapTest.cpp
@@ -0,0 +1,107 @@
+/******************************************************************************
+* Copyright (c) 2016, Hobu Inc. (info at hobu.co)
+*
+* All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following
+* conditions are met:
+*
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in
+*       the documentation and/or other materials provided
+*       with the distribution.
+*     * Neither the name of Hobu, Inc. nor thenames of its contributors
+*       may be used to endorse or promote products derived from this
+*       software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+* OF SUCH DAMAGE.
+****************************************************************************/
+
+#include <pdal/pdal_test_main.hpp>
+#include <pdal/util/FileUtils.hpp>
+#include <pdal/util/Utils.hpp>
+
+#include "Support.hpp"
+
+namespace pdal
+{
+
+TEST(NitfWrap, las)
+{
+    std::string exeName(Support::binpath(Support::exename("nitfwrap")));
+
+    std::string output;
+
+    FileUtils::deleteFile("simple.ntf");
+    FileUtils::deleteFile("simple.las");
+    FileUtils::deleteFile("simple.las.save");
+    Utils::run_shell_command("cp " + Support::datapath("las/simple.las") +
+        " .",  output);
+    Utils::run_shell_command("cp simple.las simple.las.save", output);
+    Utils::run_shell_command(exeName + " simple.las", output);
+    FileUtils::deleteFile("simple.las");
+    Utils::run_shell_command(exeName + " -u simple.ntf", output);
+    uint32_t ret = Support::diff_files("simple.las", "simple.las.save");
+    EXPECT_EQ(ret, 0u);
+    FileUtils::deleteFile("simple.ntf");
+    FileUtils::deleteFile("simple.las");
+    FileUtils::deleteFile("simple.las.save");
+}
+
+TEST(NitfWrap, altPath)
+{
+    std::string exeName(Support::binpath(Support::exename("nitfwrap")));
+
+    std::string output;
+
+    FileUtils::deleteFile("foo");
+    FileUtils::deleteFile("bar");
+    FileUtils::deleteFile("baz");
+    Utils::run_shell_command("cp " + Support::datapath("las/simple.las") +
+        " foo",  output);
+    Utils::run_shell_command(exeName + " foo bar", output);
+    Utils::run_shell_command(exeName + " -u bar baz", output);
+    uint32_t ret = Support::diff_files("foo", "baz");
+    EXPECT_EQ(ret, 0u);
+    FileUtils::deleteFile("foo");
+    FileUtils::deleteFile("bar");
+    FileUtils::deleteFile("baz");
+}
+
+TEST(NitfWrap, bpf)
+{
+    std::string exeName(Support::binpath(Support::exename("nitfwrap")));
+
+    std::string output;
+
+    FileUtils::deleteFile("autzen-dd.bpf");
+    FileUtils::deleteFile("autzen-dd.ntf");
+    FileUtils::deleteFile("autzen-dd.bpf.save");
+    Utils::run_shell_command("cp " + Support::datapath("bpf/autzen-dd.bpf") +
+        " .",  output);
+    Utils::run_shell_command("cp autzen-dd.bpf autzen-dd.bpf.save", output);
+    Utils::run_shell_command(exeName + " autzen-dd.bpf", output);
+    FileUtils::deleteFile("autzen-dd.bpf");
+    Utils::run_shell_command(exeName + " -u autzen-dd.ntf", output);
+    uint32_t ret = Support::diff_files("autzen-dd.bpf", "autzen-dd.bpf.save");
+    EXPECT_EQ(ret, 0u);
+    FileUtils::deleteFile("autzen-dd.bpf");
+    FileUtils::deleteFile("autzen-dd.ntf");
+    FileUtils::deleteFile("autzen-dd.bpf.save");
+}
+
+} // namespace pdal
diff --git a/vendor/arbiter/CMakeLists.txt b/vendor/arbiter/CMakeLists.txt
new file mode 100644
index 0000000..a3c6f47
--- /dev/null
+++ b/vendor/arbiter/CMakeLists.txt
@@ -0,0 +1,28 @@
+#
+# Make sure we don't attempt to add a library more than once
+#
+get_property(EXISTS GLOBAL PROPERTY _PDALARBITER_INCLUDED)
+if (EXISTS)
+    return()
+endif()
+
+file(GLOB PDAL_ARBITER_SOURCES
+    "arbiter.cpp"
+    "arbiter.hpp"
+)
+
+if(UNIX)
+  add_definitions("-fPIC")
+endif()
+
+
+PDAL_ADD_LIBRARY(${PDAL_ARBITER_LIB_NAME} STATIC "${PDAL_ARBITER_SOURCES}")
+target_link_libraries(${PDAL_ARBITER_LIB_NAME} )
+
+set_target_properties(${PDAL_ARBITER_LIB_NAME} PROPERTIES
+    VERSION "${PDAL_BUILD_VERSION}"
+    SOVERSION "${PDAL_API_VERSION}"
+    CLEAN_DIRECT_OUTPUT 1)
+
+set_property(GLOBAL PROPERTY _PDALARBITER_INCLUDED TRUE)
+
diff --git a/vendor/arbiter/LICENSE b/vendor/arbiter/LICENSE
new file mode 100644
index 0000000..5fe7f1e
--- /dev/null
+++ b/vendor/arbiter/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Connor Manning
+
+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.
+
diff --git a/vendor/arbiter/README b/vendor/arbiter/README
new file mode 100644
index 0000000..4745a21
--- /dev/null
+++ b/vendor/arbiter/README
@@ -0,0 +1 @@
+https://github.com/connormanning/arbiter
diff --git a/vendor/arbiter/arbiter.cpp b/vendor/arbiter/arbiter.cpp
new file mode 100644
index 0000000..c52b12c
--- /dev/null
+++ b/vendor/arbiter/arbiter.cpp
@@ -0,0 +1,3609 @@
+/// Arbiter amalgamated source (https://github.com/connormanning/arbiter).
+/// It is intended to be used with #include "arbiter.hpp"
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+/*
+The MIT License (MIT)
+
+Copyright (c) 2015 Connor Manning
+
+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.
+
+
+*/
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+#include "arbiter.hpp"
+
+#ifndef ARBITER_IS_AMALGAMATION
+#error "Compile with -I PATH_TO_ARBITER_DIRECTORY"
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/arbiter.cpp
+// //////////////////////////////////////////////////////////////////////
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/arbiter.hpp>
+
+#include <arbiter/driver.hpp>
+#include <arbiter/util/util.hpp>
+#endif
+
+#include <algorithm>
+#include <cstdlib>
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+
+namespace
+{
+    const std::string delimiter("://");
+
+    const std::size_t concurrentHttpReqs(32);
+    const std::size_t httpRetryCount(8);
+}
+
+Arbiter::Arbiter()
+    : m_drivers()
+    , m_pool(concurrentHttpReqs, httpRetryCount, Json::Value())
+{
+    init(Json::Value());
+}
+
+Arbiter::Arbiter(const Json::Value& json)
+    : m_drivers()
+    , m_pool(concurrentHttpReqs, httpRetryCount, json)
+{
+    init(json);
+}
+
+void Arbiter::init(const Json::Value& json)
+{
+    using namespace drivers;
+
+    auto fs(Fs::create(json["file"]));
+    if (fs) m_drivers[fs->type()] = std::move(fs);
+
+    auto test(Test::create(json["test"]));
+    if (test) m_drivers[test->type()] = std::move(test);
+
+    auto http(Http::create(m_pool, json["http"]));
+    if (http) m_drivers[http->type()] = std::move(http);
+
+    auto s3(S3::create(m_pool, json["s3"]));
+    if (s3) m_drivers[s3->type()] = std::move(s3);
+
+    auto dropbox(Dropbox::create(m_pool, json["dropbox"]));
+    if (dropbox) m_drivers[dropbox->type()] = std::move(dropbox);
+}
+
+bool Arbiter::hasDriver(const std::string path) const
+{
+    return m_drivers.count(getType(path));
+}
+
+void Arbiter::addDriver(const std::string type, std::unique_ptr<Driver> driver)
+{
+    if (!driver) throw ArbiterError("Cannot add empty driver for " + type);
+    m_drivers[type] = std::move(driver);
+}
+
+std::string Arbiter::get(const std::string path) const
+{
+    return getDriver(path).get(stripType(path));
+}
+
+std::vector<char> Arbiter::getBinary(const std::string path) const
+{
+    return getDriver(path).getBinary(stripType(path));
+}
+
+std::unique_ptr<std::string> Arbiter::tryGet(std::string path) const
+{
+    return getDriver(path).tryGet(stripType(path));
+}
+
+std::unique_ptr<std::vector<char>> Arbiter::tryGetBinary(std::string path) const
+{
+    return getDriver(path).tryGetBinary(stripType(path));
+}
+
+std::size_t Arbiter::getSize(const std::string path) const
+{
+    return getDriver(path).getSize(stripType(path));
+}
+
+std::unique_ptr<std::size_t> Arbiter::tryGetSize(const std::string path) const
+{
+    return getDriver(path).tryGetSize(stripType(path));
+}
+
+void Arbiter::put(const std::string path, const std::string& data) const
+{
+    return getDriver(path).put(stripType(path), data);
+}
+
+void Arbiter::put(const std::string path, const std::vector<char>& data) const
+{
+    return getDriver(path).put(stripType(path), data);
+}
+
+std::string Arbiter::get(
+        const std::string path,
+        const http::Headers headers,
+        const http::Query query) const
+{
+    return getHttpDriver(path).get(stripType(path), headers, query);
+}
+
+std::unique_ptr<std::string> Arbiter::tryGet(
+        const std::string path,
+        const http::Headers headers,
+        const http::Query query) const
+{
+    return getHttpDriver(path).tryGet(stripType(path), headers, query);
+}
+
+std::vector<char> Arbiter::getBinary(
+        const std::string path,
+        const http::Headers headers,
+        const http::Query query) const
+{
+    return getHttpDriver(path).getBinary(stripType(path), headers, query);
+}
+
+std::unique_ptr<std::vector<char>> Arbiter::tryGetBinary(
+        const std::string path,
+        const http::Headers headers,
+        const http::Query query) const
+{
+    return getHttpDriver(path).tryGetBinary(stripType(path), headers, query);
+}
+
+void Arbiter::put(
+        const std::string path,
+        const std::string& data,
+        const http::Headers headers,
+        const http::Query query) const
+{
+    return getHttpDriver(path).put(stripType(path), data, headers, query);
+}
+
+void Arbiter::put(
+        const std::string path,
+        const std::vector<char>& data,
+        const http::Headers headers,
+        const http::Query query) const
+{
+    return getHttpDriver(path).put(stripType(path), data, headers, query);
+}
+
+void Arbiter::copy(
+        const std::string src,
+        const std::string dst,
+        const bool verbose) const
+{
+    if (src.empty()) throw ArbiterError("Cannot copy from empty source");
+    if (dst.empty()) throw ArbiterError("Cannot copy to empty destination");
+
+    // Globify the source path if it's a directory.  In this case, the source
+    // already ends with a slash.
+    const std::string srcToResolve(src + (util::isDirectory(src) ? "**" : ""));
+
+    if (srcToResolve.back() != '*')
+    {
+        // The source is a single file.
+        copyFile(src, dst, verbose);
+    }
+    else
+    {
+        // We'll need this to mirror the directory structure in the output.
+        // All resolved paths will contain this common prefix, so we can
+        // determine any nested paths from recursive resolutions by stripping
+        // that common portion.
+        const Endpoint& srcEndpoint(getEndpoint(util::stripPostfixing(src)));
+        const std::string commonPrefix(srcEndpoint.prefixedRoot());
+
+        const Endpoint dstEndpoint(getEndpoint(dst));
+
+        if (srcEndpoint.prefixedRoot() == dstEndpoint.prefixedRoot())
+        {
+            throw ArbiterError("Cannot copy directory to itself");
+        }
+
+        int i(0);
+        const auto paths(resolve(srcToResolve, verbose));
+
+        for (const auto& path : paths)
+        {
+            const std::string subpath(path.substr(commonPrefix.size()));
+
+            if (verbose)
+            {
+                std::cout <<
+                    ++i << " / " << paths.size() << ": " <<
+                    path << " -> " << dstEndpoint.fullPath(subpath) <<
+                    std::endl;
+            }
+
+            if (dstEndpoint.isLocal())
+            {
+                fs::mkdirp(util::getNonBasename(dstEndpoint.fullPath(subpath)));
+            }
+
+            dstEndpoint.put(subpath, getBinary(path));
+        }
+    }
+}
+
+void Arbiter::copyFile(
+        const std::string file,
+        const std::string dst,
+        const bool verbose) const
+{
+    if (dst.empty()) throw ArbiterError("Cannot copy to empty destination");
+
+    const Endpoint dstEndpoint(getEndpoint(dst));
+
+    if (util::isDirectory(dst))
+    {
+        // If the destination is a directory, maintain the basename of the
+        // source file.
+        const std::string basename(util::getBasename(file));
+        if (verbose)
+        {
+            std::cout <<
+                file << " -> " <<
+                dstEndpoint.type() + "://" + dstEndpoint.fullPath(basename) <<
+                std::endl;
+        }
+
+        if (dstEndpoint.isLocal()) fs::mkdirp(dst);
+
+        dstEndpoint.put(util::getBasename(file), getBinary(file));
+    }
+    else
+    {
+        if (verbose) std::cout << file << " -> " << dst << std::endl;
+
+        if (dstEndpoint.isLocal()) fs::mkdirp(util::getNonBasename(dst));
+        put(dst, getBinary(file));
+    }
+}
+
+bool Arbiter::isRemote(const std::string path) const
+{
+    return getDriver(path).isRemote();
+}
+
+bool Arbiter::isLocal(const std::string path) const
+{
+    return !isRemote(path);
+}
+
+bool Arbiter::exists(const std::string path) const
+{
+    return tryGetSize(path).get() != nullptr;
+}
+
+bool Arbiter::isHttpDerived(const std::string path) const
+{
+    return tryGetHttpDriver(path) != nullptr;
+}
+
+std::vector<std::string> Arbiter::resolve(
+        const std::string path,
+        const bool verbose) const
+{
+    return getDriver(path).resolve(stripType(path), verbose);
+}
+
+Endpoint Arbiter::getEndpoint(const std::string root) const
+{
+    return Endpoint(getDriver(root), stripType(root));
+}
+
+const Driver& Arbiter::getDriver(const std::string path) const
+{
+    const auto type(getType(path));
+
+    if (!m_drivers.count(type))
+    {
+        throw ArbiterError("No driver for " + path);
+    }
+
+    return *m_drivers.at(type);
+}
+
+const drivers::Http* Arbiter::tryGetHttpDriver(const std::string path) const
+{
+    return dynamic_cast<const drivers::Http*>(&getDriver(path));
+}
+
+const drivers::Http& Arbiter::getHttpDriver(const std::string path) const
+{
+    if (auto d = tryGetHttpDriver(path)) return *d;
+    else throw ArbiterError("Cannot get driver for " + path + " as HTTP");
+}
+
+std::unique_ptr<fs::LocalHandle> Arbiter::getLocalHandle(
+        const std::string path,
+        const Endpoint& tempEndpoint) const
+{
+    std::unique_ptr<fs::LocalHandle> localHandle;
+
+    if (isRemote(path))
+    {
+        if (tempEndpoint.isRemote())
+        {
+            throw ArbiterError("Temporary endpoint must be local.");
+        }
+
+        std::string name(path);
+        std::replace(name.begin(), name.end(), '/', '-');
+        std::replace(name.begin(), name.end(), '\\', '-');
+        std::replace(name.begin(), name.end(), ':', '_');
+
+        tempEndpoint.put(name, getBinary(path));
+
+        localHandle.reset(
+                new fs::LocalHandle(tempEndpoint.root() + name, true));
+    }
+    else
+    {
+        localHandle.reset(
+                new fs::LocalHandle(fs::expandTilde(stripType(path)), false));
+    }
+
+    return localHandle;
+}
+
+std::unique_ptr<fs::LocalHandle> Arbiter::getLocalHandle(
+        const std::string path,
+        std::string tempPath) const
+{
+    if (tempPath.empty()) tempPath = fs::getTempPath();
+    return getLocalHandle(path, getEndpoint(tempPath));
+}
+
+std::string Arbiter::getType(const std::string path)
+{
+    std::string type("file");
+    const std::size_t pos(path.find(delimiter));
+
+    if (pos != std::string::npos)
+    {
+        type = path.substr(0, pos);
+    }
+
+    return type;
+}
+
+std::string Arbiter::stripType(const std::string raw)
+{
+    std::string result(raw);
+    const std::size_t pos(raw.find(delimiter));
+
+    if (pos != std::string::npos)
+    {
+        result = raw.substr(pos + delimiter.size());
+    }
+
+    return result;
+}
+
+std::string Arbiter::getExtension(const std::string path)
+{
+    const std::size_t pos(path.find_last_of('.'));
+
+    if (pos != std::string::npos) return path.substr(pos + 1);
+    else return std::string();
+}
+
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/arbiter.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/driver.cpp
+// //////////////////////////////////////////////////////////////////////
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/driver.hpp>
+
+#include <arbiter/arbiter.hpp>
+#endif
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+
+std::string Driver::get(const std::string path) const
+{
+    const std::vector<char> data(getBinary(path));
+    return std::string(data.begin(), data.end());
+}
+
+std::unique_ptr<std::string> Driver::tryGet(const std::string path) const
+{
+    std::unique_ptr<std::string> result;
+    std::unique_ptr<std::vector<char>> data(tryGetBinary(path));
+    if (data) result.reset(new std::string(data->begin(), data->end()));
+    return result;
+}
+
+std::vector<char> Driver::getBinary(std::string path) const
+{
+    std::vector<char> data;
+    if (!get(path, data)) throw ArbiterError("Could not read file " + path);
+    return data;
+}
+
+std::unique_ptr<std::vector<char>> Driver::tryGetBinary(std::string path) const
+{
+    std::unique_ptr<std::vector<char>> data(new std::vector<char>());
+    if (!get(path, *data)) data.reset();
+    return data;
+}
+
+std::size_t Driver::getSize(const std::string path) const
+{
+    if (auto size = tryGetSize(path)) return *size;
+    else throw ArbiterError("Could not get size of " + path);
+}
+
+void Driver::put(std::string path, const std::string& data) const
+{
+    put(path, std::vector<char>(data.begin(), data.end()));
+}
+
+std::vector<std::string> Driver::resolve(
+        std::string path,
+        const bool verbose) const
+{
+    std::vector<std::string> results;
+
+    if (path.size() > 1 && path.back() == '*')
+    {
+        if (verbose)
+        {
+            std::cout << "Resolving [" << type() << "]: " << path << " ..." <<
+                std::flush;
+        }
+
+        results = glob(path, verbose);
+
+        if (verbose)
+        {
+            std::cout << "\n\tResolved to " << results.size() <<
+                " paths." << std::endl;
+        }
+    }
+    else
+    {
+        if (isRemote()) path = type() + "://" + path;
+        else path = fs::expandTilde(path);
+
+        results.push_back(path);
+    }
+
+    return results;
+}
+
+std::vector<std::string> Driver::glob(std::string path, bool verbose) const
+{
+    throw ArbiterError("Cannot glob driver for: " + path);
+}
+
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/driver.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/endpoint.cpp
+// //////////////////////////////////////////////////////////////////////
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/endpoint.hpp>
+
+#include <arbiter/arbiter.hpp>
+#include <arbiter/driver.hpp>
+#endif
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+
+namespace
+{
+    std::string postfixSlash(std::string path)
+    {
+        if (path.empty()) throw ArbiterError("Invalid root path");
+        if (path.back() != '/') path.push_back('/');
+        return path;
+    }
+}
+
+Endpoint::Endpoint(const Driver& driver, const std::string root)
+    : m_driver(driver)
+    , m_root(fs::expandTilde(postfixSlash(root)))
+{ }
+
+std::string Endpoint::root() const
+{
+    return m_root;
+}
+
+std::string Endpoint::prefixedRoot() const
+{
+    return softPrefix() + root();
+}
+
+std::string Endpoint::type() const
+{
+    return m_driver.type();
+}
+
+bool Endpoint::isRemote() const
+{
+    return m_driver.isRemote();
+}
+
+bool Endpoint::isLocal() const
+{
+    return !isRemote();
+}
+
+bool Endpoint::isHttpDerived() const
+{
+    return tryGetHttpDriver() != nullptr;
+}
+
+std::string Endpoint::get(const std::string subpath) const
+{
+    return m_driver.get(fullPath(subpath));
+}
+
+std::unique_ptr<std::string> Endpoint::tryGet(const std::string subpath)
+    const
+{
+    return m_driver.tryGet(fullPath(subpath));
+}
+
+std::vector<char> Endpoint::getBinary(const std::string subpath) const
+{
+    return m_driver.getBinary(fullPath(subpath));
+}
+
+std::unique_ptr<std::vector<char>> Endpoint::tryGetBinary(
+        const std::string subpath) const
+{
+    return m_driver.tryGetBinary(fullPath(subpath));
+}
+
+std::size_t Endpoint::getSize(const std::string subpath) const
+{
+    return m_driver.getSize(fullPath(subpath));
+}
+
+std::unique_ptr<std::size_t> Endpoint::tryGetSize(
+        const std::string subpath) const
+{
+    return m_driver.tryGetSize(fullPath(subpath));
+}
+
+void Endpoint::put(const std::string subpath, const std::string& data) const
+{
+    m_driver.put(fullPath(subpath), data);
+}
+
+void Endpoint::put(
+        const std::string subpath,
+        const std::vector<char>& data) const
+{
+    m_driver.put(fullPath(subpath), data);
+}
+
+std::string Endpoint::get(
+        const std::string subpath,
+        const http::Headers headers,
+        const http::Query query) const
+{
+    return getHttpDriver().get(fullPath(subpath), headers, query);
+}
+
+std::unique_ptr<std::string> Endpoint::tryGet(
+        const std::string subpath,
+        const http::Headers headers,
+        const http::Query query) const
+{
+    return getHttpDriver().tryGet(fullPath(subpath), headers, query);
+}
+
+std::vector<char> Endpoint::getBinary(
+        const std::string subpath,
+        const http::Headers headers,
+        const http::Query query) const
+{
+    return getHttpDriver().getBinary(fullPath(subpath), headers, query);
+}
+
+std::unique_ptr<std::vector<char>> Endpoint::tryGetBinary(
+        const std::string subpath,
+        const http::Headers headers,
+        const http::Query query) const
+{
+    return getHttpDriver().tryGetBinary(fullPath(subpath), headers, query);
+}
+
+void Endpoint::put(
+        const std::string path,
+        const std::string& data,
+        const http::Headers headers,
+        const http::Query query) const
+{
+    getHttpDriver().put(path, data, headers, query);
+}
+
+void Endpoint::put(
+        const std::string path,
+        const std::vector<char>& data,
+        const http::Headers headers,
+        const http::Query query) const
+{
+    getHttpDriver().put(path, data, headers, query);
+}
+
+std::string Endpoint::fullPath(const std::string& subpath) const
+{
+    return m_root + subpath;
+}
+
+std::string Endpoint::prefixedFullPath(const std::string& subpath) const
+{
+     return softPrefix() + fullPath(subpath);
+}
+
+Endpoint Endpoint::getSubEndpoint(std::string subpath) const
+{
+    return Endpoint(m_driver, m_root + subpath);
+}
+
+std::string Endpoint::softPrefix() const
+{
+    return isRemote() ? type() + "://" : "";
+}
+
+const drivers::Http* Endpoint::tryGetHttpDriver() const
+{
+    return dynamic_cast<const drivers::Http*>(&m_driver);
+}
+
+const drivers::Http& Endpoint::getHttpDriver() const
+{
+    if (auto d = tryGetHttpDriver()) return *d;
+    else throw ArbiterError("Cannot get driver of type " + type() + " as HTTP");
+}
+
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/endpoint.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/drivers/fs.cpp
+// //////////////////////////////////////////////////////////////////////
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/arbiter.hpp>
+#include <arbiter/drivers/fs.hpp>
+#include <arbiter/util/util.hpp>
+#endif
+
+#ifndef ARBITER_WINDOWS
+#include <glob.h>
+#include <sys/stat.h>
+#else
+
+#include <locale>
+#include <codecvt>
+#include <windows.h>
+#endif
+
+#include <algorithm>
+#include <cstdlib>
+#include <fstream>
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+
+namespace
+{
+    // Binary output, overwriting any existing file with a conflicting name.
+    const std::ios_base::openmode binaryTruncMode(
+            std::ofstream::binary |
+            std::ofstream::out |
+            std::ofstream::trunc);
+
+    const std::string home(([]()
+    {
+        std::string s;
+
+#ifndef ARBITER_WINDOWS
+        if (auto home = util::env("HOME")) s = *home;
+#else
+        if (auto userProfile = util::env("USERPROFILE"))
+        {
+            s = *userProfile;
+        }
+        else
+        {
+            auto homeDrive(util::env("HOMEDRIVE"));
+            auto homePath(util::env("HOMEPATH"));
+
+            if (homeDrive && homePath) s = *homeDrive + *homePath;
+        }
+#endif
+        if (s.empty()) std::cout << "No home directory found" << std::endl;
+
+        return s;
+    })());
+}
+
+namespace drivers
+{
+
+std::unique_ptr<Fs> Fs::create(const Json::Value&)
+{
+    return std::unique_ptr<Fs>(new Fs());
+}
+
+std::unique_ptr<std::size_t> Fs::tryGetSize(std::string path) const
+{
+    std::unique_ptr<std::size_t> size;
+
+    path = fs::expandTilde(path);
+
+    std::ifstream stream(path, std::ios::in | std::ios::binary);
+
+    if (stream.good())
+    {
+        stream.seekg(0, std::ios::end);
+        size.reset(new std::size_t(stream.tellg()));
+    }
+
+    return size;
+}
+
+bool Fs::get(std::string path, std::vector<char>& data) const
+{
+    bool good(false);
+
+    path = fs::expandTilde(path);
+    std::ifstream stream(path, std::ios::in | std::ios::binary);
+
+    if (stream.good())
+    {
+        stream.seekg(0, std::ios::end);
+        data.resize(static_cast<std::size_t>(stream.tellg()));
+        stream.seekg(0, std::ios::beg);
+        stream.read(data.data(), data.size());
+        stream.close();
+        good = true;
+    }
+
+    return good;
+}
+
+void Fs::put(std::string path, const std::vector<char>& data) const
+{
+    path = fs::expandTilde(path);
+    std::ofstream stream(path, binaryTruncMode);
+
+    if (!stream.good())
+    {
+        throw ArbiterError("Could not open " + path + " for writing");
+    }
+
+    stream.write(data.data(), data.size());
+
+    if (!stream.good())
+    {
+        throw ArbiterError("Error occurred while writing " + path);
+    }
+}
+
+std::vector<std::string> Fs::glob(std::string path, bool verbose) const
+{
+    std::vector<std::string> results;
+
+    path = fs::expandTilde(path);
+
+    const bool recursive(([&path]()
+    {
+        if (path.size() > 2 && path[path.size() - 2] == '*')
+        {
+            path.pop_back();
+            return true;
+        }
+        else return false;
+    })());
+
+#ifndef ARBITER_WINDOWS
+    glob_t buffer;
+    struct stat info;
+
+    ::glob(path.c_str(), GLOB_NOSORT | GLOB_MARK, 0, &buffer);
+
+    for (std::size_t i(0); i < buffer.gl_pathc; ++i)
+    {
+        const std::string val(buffer.gl_pathv[i]);
+
+        if (stat(val.c_str(), &info) == 0)
+        {
+            if (S_ISREG(info.st_mode))
+            {
+                if (verbose && results.size() % 10000 == 0)
+                {
+                    std::cout << "." << std::flush;
+                }
+
+                results.push_back(val);
+            }
+            else if (recursive && S_ISDIR(info.st_mode))
+            {
+                const auto nested(glob(val + "**", verbose));
+                results.insert(results.end(), nested.begin(), nested.end());
+            }
+        }
+        else
+        {
+            throw ArbiterError("Error globbing - POSIX stat failed");
+        }
+    }
+
+    globfree(&buffer);
+#else
+    std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
+    const std::wstring wide(converter.from_bytes(path));
+
+    LPWIN32_FIND_DATAW data{};
+    HANDLE hFind(FindFirstFileW(wide.c_str(), data));
+
+    if (hFind != INVALID_HANDLE_VALUE)
+    {
+        do
+        {
+            if ((data->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0)
+            {
+                results.push_back(converter.to_bytes(data->cFileName));
+            }
+            // TODO Recurse if necessary.
+        }
+        while (FindNextFileW(hFind, data));
+    }
+#endif
+
+    return results;
+}
+
+} // namespace drivers
+
+namespace fs
+{
+
+bool mkdirp(std::string raw)
+{
+#ifndef ARBITER_WINDOWS
+    const std::string dir(([&raw]()
+    {
+        std::string s(expandTilde(raw));
+
+        // Remove consecutive slashes.  For Windows, we'll need to be careful
+        // not to remove drive letters like C:\\.
+        const auto end = std::unique(s.begin(), s.end(), [](char l, char r){
+            return util::isSlash(l) && util::isSlash(r);
+        });
+
+        s = std::string(s.begin(), end);
+        if (s.size() && util::isSlash(s.back())) s.pop_back();
+        return s;
+    })());
+
+    auto it(dir.begin());
+    const auto end(dir.cend());
+
+    do
+    {
+        it = std::find_if(++it, end, util::isSlash);
+
+        const std::string cur(dir.begin(), it);
+        const bool err(::mkdir(cur.c_str(), S_IRWXU | S_IRGRP | S_IROTH));
+        if (err && errno != EEXIST) return false;
+    }
+    while (it != end);
+
+    return true;
+
+#else
+    throw ArbiterError("Windows mkdirp not done yet.");
+#endif
+}
+
+bool remove(std::string filename)
+{
+    filename = expandTilde(filename);
+
+#ifndef ARBITER_WINDOWS
+    return ::remove(filename.c_str()) == 0;
+#else
+    throw ArbiterError("Windows remove not done yet.");
+#endif
+}
+
+std::string expandTilde(std::string in)
+{
+    std::string out(in);
+
+    if (!in.empty() && in.front() == '~')
+    {
+        if (home.empty()) throw ArbiterError("No home directory found");
+
+        out = home + in.substr(1);
+    }
+
+    return out;
+}
+
+std::string getTempPath()
+{
+#ifndef ARBITER_WINDOWS
+    if (const auto t = util::env("TMPDIR"))     return *t;
+    if (const auto t = util::env("TMP"))        return *t;
+    if (const auto t = util::env("TEMP"))       return *t;
+    if (const auto t = util::env("TEMPDIR"))    return *t;
+    return "/tmp";
+#else
+    std::vector<char> path(MAX_PATH, '\0');
+    if (GetTempPath(MAX_PATH, path.data())) return path.data();
+    else throw ArbiterError("Could not find a temp path.");
+#endif
+}
+
+LocalHandle::LocalHandle(const std::string localPath, const bool isRemote)
+    : m_localPath(expandTilde(localPath))
+    , m_erase(isRemote)
+{ }
+
+LocalHandle::~LocalHandle()
+{
+    if (m_erase) fs::remove(fs::expandTilde(m_localPath));
+}
+
+} // namespace fs
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/drivers/fs.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/drivers/http.cpp
+// //////////////////////////////////////////////////////////////////////
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/arbiter.hpp>
+#include <arbiter/drivers/http.hpp>
+#endif
+
+#ifdef ARBITER_WINDOWS
+#undef min
+#undef max
+#endif
+
+#include <algorithm>
+#include <cstring>
+#include <iostream>
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+namespace drivers
+{
+
+using namespace http;
+
+Http::Http(Pool& pool) : m_pool(pool) { }
+
+std::unique_ptr<Http> Http::create(Pool& pool, const Json::Value&)
+{
+    return std::unique_ptr<Http>(new Http(pool));
+}
+
+std::unique_ptr<std::size_t> Http::tryGetSize(std::string path) const
+{
+    std::unique_ptr<std::size_t> size;
+
+    auto http(m_pool.acquire());
+    Response res(http.head(path));
+
+    if (res.ok() && res.headers().count("Content-Length"))
+    {
+        const std::string& str(res.headers().at("Content-Length"));
+        size.reset(new std::size_t(std::stoul(str)));
+    }
+
+    return size;
+}
+
+std::string Http::get(
+        std::string path,
+        Headers headers,
+        Query query) const
+{
+    const auto data(getBinary(path, headers, query));
+    return std::string(data.begin(), data.end());
+}
+
+std::unique_ptr<std::string> Http::tryGet(
+        std::string path,
+        Headers headers,
+        Query query) const
+{
+    std::unique_ptr<std::string> result;
+    auto data(tryGetBinary(path, headers, query));
+    if (data) result.reset(new std::string(data->begin(), data->end()));
+    return result;
+}
+
+std::vector<char> Http::getBinary(
+        std::string path,
+        Headers headers,
+        Query query) const
+{
+    std::vector<char> data;
+    if (!get(path, data, headers, query))
+    {
+        throw ArbiterError("Could not read from " + path);
+    }
+    return data;
+}
+
+std::unique_ptr<std::vector<char>> Http::tryGetBinary(
+        std::string path,
+        Headers headers,
+        Query query) const
+{
+    std::unique_ptr<std::vector<char>> data(new std::vector<char>());
+    if (!get(path, *data, headers, query)) data.reset();
+    return data;
+}
+
+void Http::put(
+        std::string path,
+        const std::string& data,
+        const Headers headers,
+        const Query query) const
+{
+    put(path, std::vector<char>(data.begin(), data.end()), headers, query);
+}
+
+bool Http::get(
+        std::string path,
+        std::vector<char>& data,
+        const Headers headers,
+        const Query query) const
+{
+    bool good(false);
+
+    auto http(m_pool.acquire());
+    Response res(http.get(path, headers, query));
+
+    if (res.ok())
+    {
+        data = res.data();
+        good = true;
+    }
+
+    return good;
+}
+
+void Http::put(
+        const std::string path,
+        const std::vector<char>& data,
+        const Headers headers,
+        const Query query) const
+{
+    auto http(m_pool.acquire());
+
+    if (!http.put(path, data, headers, query).ok())
+    {
+        throw ArbiterError("Couldn't HTTP PUT to " + path);
+    }
+}
+
+Response Http::internalGet(
+        const std::string path,
+        const Headers headers,
+        const Query query) const
+{
+    return m_pool.acquire().get(path, headers, query);
+}
+
+Response Http::internalPut(
+        const std::string path,
+        const std::vector<char>& data,
+        const Headers headers,
+        const Query query) const
+{
+    return m_pool.acquire().put(path, data, headers, query);
+}
+
+Response Http::internalHead(
+        const std::string path,
+        const Headers headers,
+        const Query query) const
+{
+    return m_pool.acquire().head(path, headers, query);
+}
+
+Response Http::internalPost(
+        const std::string path,
+        const std::vector<char>& data,
+        const Headers headers,
+        const Query query) const
+{
+    return m_pool.acquire().post(path, data, headers, query);
+}
+
+} // namespace drivers
+
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/drivers/http.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/drivers/s3.cpp
+// //////////////////////////////////////////////////////////////////////
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/arbiter.hpp>
+#include <arbiter/drivers/s3.hpp>
+#endif
+
+#include <algorithm>
+#include <cctype>
+#include <chrono>
+#include <cstdlib>
+#include <cstring>
+#include <ctime>
+#include <functional>
+#include <iostream>
+#include <numeric>
+#include <thread>
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/arbiter.hpp>
+#include <arbiter/drivers/fs.hpp>
+#include <arbiter/third/xml/xml.hpp>
+#include <arbiter/util/md5.hpp>
+#include <arbiter/util/sha256.hpp>
+#include <arbiter/util/transforms.hpp>
+#include <arbiter/util/util.hpp>
+#endif
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+
+namespace
+{
+    const std::string dateFormat("%Y%m%d");
+    const std::string timeFormat("%H%M%S");
+
+    std::string getBaseUrl(const std::string& region)
+    {
+        // https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
+        if (region == "us-east-1") return ".s3.amazonaws.com/";
+        else return ".s3-" + region + ".amazonaws.com/";
+    }
+
+    drivers::Fs fsDriver;
+
+    std::string line(const std::string& data) { return data + "\n"; }
+    const std::vector<char> empty;
+
+    typedef Xml::xml_node<> XmlNode;
+    const std::string badResponse("Unexpected contents in AWS response");
+
+    std::string toLower(const std::string& in)
+    {
+        return std::accumulate(
+                in.begin(),
+                in.end(),
+                std::string(),
+                [](const std::string& out, const char c)
+                {
+                    return out + static_cast<char>(::tolower(c));
+                });
+    }
+
+    // Trims sequential whitespace into a single character, and trims all
+    // leading and trailing whitespace.
+    std::string trim(const std::string& in)
+    {
+        std::string s = std::accumulate(
+                in.begin(),
+                in.end(),
+                std::string(),
+                [](const std::string& out, const char c)
+                {
+                    if (
+                        std::isspace(c) &&
+                        (out.empty() || std::isspace(out.back())))
+                    {
+                        return out;
+                    }
+                    else
+                    {
+                        return out + c;
+                    }
+                });
+
+        // Might have one trailing whitespace character.
+        if (s.size() && std::isspace(s.back())) s.pop_back();
+        return s;
+    }
+
+    std::vector<std::string> condense(const std::vector<std::string>& in)
+    {
+        return std::accumulate(
+                in.begin(),
+                in.end(),
+                std::vector<std::string>(),
+                [](const std::vector<std::string>& base, const std::string& in)
+                {
+                    auto out(base);
+
+                    std::string current(in);
+                    current.erase(
+                            std::remove_if(
+                                current.begin(),
+                                current.end(),
+                                [](char c) { return std::isspace(c); }),
+                            current.end());
+
+                    out.push_back(current);
+                    return out;
+                });
+    }
+
+    std::vector<std::string> split(const std::string& in, char delimiter = '\n')
+    {
+        std::size_t index(0);
+        std::size_t pos(0);
+        std::vector<std::string> lines;
+
+        do
+        {
+            index = in.find(delimiter, pos);
+            std::string line(in.substr(pos, index - pos));
+
+            line.erase(
+                    std::remove_if(line.begin(), line.end(), ::isspace),
+                    line.end());
+
+            lines.push_back(line);
+
+            pos = index + 1;
+        }
+        while (index != std::string::npos);
+
+        return lines;
+    }
+}
+
+namespace drivers
+{
+
+using namespace http;
+
+S3::S3(
+        Pool& pool,
+        const S3::Auth& auth,
+        const std::string region,
+        const bool sse)
+    : Http(pool)
+    , m_auth(auth)
+    , m_region(region)
+    , m_baseUrl(getBaseUrl(region))
+    , m_baseHeaders()
+{
+    if (sse)
+    {
+        // This could grow to support other SSE schemes, like KMS and customer-
+        // supplied keys.
+        m_baseHeaders["x-amz-server-side-encryption"] = "AES256";
+    }
+}
+
+std::unique_ptr<S3> S3::create(Pool& pool, const Json::Value& json)
+{
+    std::unique_ptr<Auth> auth;
+    std::unique_ptr<S3> s3;
+
+    const std::string profile(extractProfile(json));
+    const bool sse(json["sse"].asBool());
+
+    if (!json.isNull() && json.isMember("access") & json.isMember("hidden"))
+    {
+        auth.reset(
+                new Auth(
+                    json["access"].asString(),
+                    json["hidden"].asString()));
+    }
+    else
+    {
+        auth = Auth::find(profile);
+    }
+
+    if (!auth) return s3;
+
+    // Try to get the region from the config file, or default to US standard.
+    std::string region("us-east-1");
+    bool regionFound(false);
+
+    const std::string configPath(
+            util::env("AWS_CONFIG_FILE") ?
+                *util::env("AWS_CONFIG_FILE") : "~/.aws/config");
+
+    if (auto p = util::env("AWS_REGION"))
+    {
+        region = *p;
+        regionFound = true;
+    }
+    else if (auto p = util::env("AWS_DEFAULT_REGION"))
+    {
+        region = *p;
+        regionFound = true;
+    }
+    else if (!json.isNull() && json.isMember("region"))
+    {
+        region = json["region"].asString();
+        regionFound = true;
+    }
+    else if (std::unique_ptr<std::string> config = fsDriver.tryGet(configPath))
+    {
+        const std::vector<std::string> lines(condense(split(*config)));
+
+        if (lines.size() >= 3)
+        {
+            std::size_t i(0);
+
+            const std::string profileFind("[" + profile + "]");
+            const std::string outputFind("output=");
+            const std::string regionFind("region=");
+
+            while (i < lines.size() - 2 && !regionFound)
+            {
+                if (lines[i].find(profileFind) != std::string::npos)
+                {
+                    auto parse([&](
+                                const std::string& outputLine,
+                                const std::string& regionLine)
+                    {
+                        std::size_t outputPos(outputLine.find(outputFind));
+                        std::size_t regionPos(regionLine.find(regionFind));
+
+                        if (
+                                outputPos != std::string::npos &&
+                                regionPos != std::string::npos)
+                        {
+                            region = regionLine.substr(
+                                    regionPos + regionFind.size(),
+                                    regionLine.find(';'));
+
+                            return true;
+                        }
+
+                        return false;
+                    });
+
+
+                    const std::string& l1(lines[i + 1]);
+                    const std::string& l2(lines[i + 2]);
+
+                    regionFound = parse(l1, l2) || parse(l2, l1);
+                }
+
+                ++i;
+            }
+        }
+    }
+    else if (json["verbose"].asBool())
+    {
+        std::cout <<
+            "~/.aws/config not found - using region us-east-1" << std::endl;
+    }
+
+    if (!regionFound && json["verbose"].asBool())
+    {
+        std::cout <<
+            "Region not found in ~/.aws/config - using us-east-1" << std::endl;
+    }
+
+    s3.reset(new S3(pool, *auth, region, sse));
+
+    return s3;
+}
+
+std::string S3::extractProfile(const Json::Value& json)
+{
+    if (auto p = util::env("AWS_PROFILE"))
+    {
+        return *p;
+    }
+    else if (auto p = util::env("AWS_DEFAULT_PROFILE"))
+    {
+        return *p;
+    }
+    else if (
+            !json.isNull() &&
+            json.isMember("profile") &&
+            json["profile"].asString().size())
+    {
+        return json["profile"].asString();
+    }
+    else
+    {
+        return "default";
+    }
+}
+
+std::unique_ptr<std::size_t> S3::tryGetSize(std::string rawPath) const
+{
+    std::unique_ptr<std::size_t> size;
+
+    const Resource resource(m_baseUrl, rawPath);
+    const ApiV4 apiV4(
+            "HEAD",
+            m_region,
+            resource,
+            m_auth,
+            Query(),
+            Headers(),
+            empty);
+
+    Response res(Http::internalHead(resource.url(), apiV4.headers()));
+
+    if (res.ok() && res.headers().count("Content-Length"))
+    {
+        const std::string& str(res.headers().at("Content-Length"));
+        size.reset(new std::size_t(std::stoul(str)));
+    }
+
+    return size;
+}
+
+bool S3::get(
+        const std::string rawPath,
+        std::vector<char>& data,
+        const Headers headers,
+        const Query query) const
+{
+    const Resource resource(m_baseUrl, rawPath);
+    const ApiV4 apiV4(
+            "GET",
+            m_region,
+            resource,
+            m_auth,
+            query,
+            headers,
+            empty);
+
+    Response res(
+            Http::internalGet(
+                resource.url(),
+                apiV4.headers(),
+                apiV4.query()));
+
+    if (res.ok())
+    {
+        data = res.data();
+        return true;
+    }
+    else
+    {
+        std::cout << std::string(res.data().data(), res.data().size()) <<
+            std::endl;
+        return false;
+    }
+}
+
+void S3::put(
+        const std::string rawPath,
+        const std::vector<char>& data,
+        const Headers userHeaders,
+        const Query query) const
+{
+    const Resource resource(m_baseUrl, rawPath);
+
+    Headers headers(m_baseHeaders);
+    headers.insert(userHeaders.begin(), userHeaders.end());
+
+    const ApiV4 apiV4(
+            "PUT",
+            m_region,
+            resource,
+            m_auth,
+            query,
+            headers,
+            data);
+
+    Response res(
+            Http::internalPut(
+                resource.url(),
+                data,
+                apiV4.headers(),
+                apiV4.query()));
+
+    if (!res.ok())
+    {
+        throw ArbiterError(
+                "Couldn't S3 PUT to " + rawPath + ": " +
+                std::string(res.data().data(), res.data().size()));
+    }
+}
+
+std::vector<std::string> S3::glob(std::string path, bool verbose) const
+{
+    std::vector<std::string> results;
+    path.pop_back();
+
+    const bool recursive(path.back() == '*');
+    if (recursive) path.pop_back();
+
+    // https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGET.html
+    const Resource resource(m_baseUrl, path);
+    const std::string& bucket(resource.bucket);
+    const std::string& object(resource.object);
+
+    Query query;
+
+    if (object.size()) query["prefix"] = object;
+
+    bool more(false);
+    std::vector<char> data;
+
+    do
+    {
+        if (verbose) std::cout << "." << std::flush;
+
+        if (!get(resource.bucket + "/", data, Headers(), query))
+        {
+            throw ArbiterError("Couldn't S3 GET " + resource.bucket);
+        }
+
+        data.push_back('\0');
+
+        Xml::xml_document<> xml;
+
+        try
+        {
+            xml.parse<0>(data.data());
+        }
+        catch (Xml::parse_error)
+        {
+            throw ArbiterError("Could not parse S3 response.");
+        }
+
+        if (XmlNode* topNode = xml.first_node("ListBucketResult"))
+        {
+            if (XmlNode* truncNode = topNode->first_node("IsTruncated"))
+            {
+                std::string t(truncNode->value());
+                std::transform(t.begin(), t.end(), t.begin(), ::tolower);
+
+                more = (t == "true");
+            }
+
+            if (XmlNode* conNode = topNode->first_node("Contents"))
+            {
+                for ( ; conNode; conNode = conNode->next_sibling())
+                {
+                    if (XmlNode* keyNode = conNode->first_node("Key"))
+                    {
+                        std::string key(keyNode->value());
+                        const bool isSubdir(
+                                key.find('/', object.size()) !=
+                                std::string::npos);
+
+                        // The prefix may contain slashes (i.e. is a sub-dir)
+                        // but we only want to traverse into subdirectories
+                        // beyond the prefix if recursive is true.
+                        if (recursive || !isSubdir)
+                        {
+                            results.push_back("s3://" + bucket + "/" + key);
+                        }
+
+                        if (more)
+                        {
+                            query["marker"] =
+                                object + key.substr(object.size());
+                        }
+                    }
+                    else
+                    {
+                        throw ArbiterError(badResponse);
+                    }
+                }
+            }
+            else
+            {
+                throw ArbiterError(badResponse);
+            }
+        }
+        else
+        {
+            throw ArbiterError(badResponse);
+        }
+
+        xml.clear();
+    }
+    while (more);
+
+    return results;
+}
+
+S3::ApiV4::ApiV4(
+        const std::string verb,
+        const std::string& region,
+        const Resource& resource,
+        const S3::Auth& auth,
+        const Query& query,
+        const Headers& headers,
+        const std::vector<char>& data)
+    : m_auth(auth)
+    , m_region(region)
+    , m_formattedTime()
+    , m_headers(headers)
+    , m_query(query)
+    , m_signedHeadersString()
+{
+    m_headers["Host"] = resource.host();
+    m_headers["X-Amz-Date"] = m_formattedTime.amazonDate();
+    m_headers["X-Amz-Content-Sha256"] =
+            crypto::encodeAsHex(crypto::sha256(data));
+
+    if (verb == "PUT" || verb == "POST")
+    {
+        m_headers["Content-Type"] = "application/octet-stream";
+        m_headers["Transfer-Encoding"] = "";
+        m_headers["Expect"] = "";
+    }
+
+    const Headers normalizedHeaders(
+            std::accumulate(
+                m_headers.begin(),
+                m_headers.end(),
+                Headers(),
+                [](const Headers& in, const Headers::value_type& h)
+                {
+                    Headers out(in);
+                    out[toLower(h.first)] = trim(h.second);
+                    return out;
+                }));
+
+    m_canonicalHeadersString =
+            std::accumulate(
+                normalizedHeaders.begin(),
+                normalizedHeaders.end(),
+                std::string(),
+                [](const std::string& in, const Headers::value_type& h)
+                {
+                    return in + h.first + ':' + h.second + '\n';
+                });
+
+    m_signedHeadersString =
+            std::accumulate(
+                normalizedHeaders.begin(),
+                normalizedHeaders.end(),
+                std::string(),
+                [](const std::string& in, const Headers::value_type& h)
+                {
+                    return in + (in.empty() ? "" : ";") + h.first;
+                });
+
+    const std::string canonicalRequest(
+            buildCanonicalRequest(verb, resource, query, data));
+
+    const std::string stringToSign(buildStringToSign(canonicalRequest));
+
+    const std::string signature(calculateSignature(stringToSign));
+
+    m_headers["Authorization"] =
+            getAuthHeader(m_signedHeadersString, signature);
+}
+
+std::string S3::ApiV4::buildCanonicalRequest(
+        const std::string verb,
+        const Resource& resource,
+        const Query& query,
+        const std::vector<char>& data) const
+{
+    const std::string canonicalUri(sanitize("/" + resource.object));
+
+    auto canonicalizeQuery([](const std::string& s, const Query::value_type& q)
+    {
+        const std::string keyVal(
+                sanitize(q.first, "") + '=' +
+                sanitize(q.second, ""));
+
+        return s + (s.size() ? "&" : "") + keyVal;
+    });
+
+    const std::string canonicalQuery(
+            std::accumulate(
+                query.begin(),
+                query.end(),
+                std::string(),
+                canonicalizeQuery));
+
+    return
+        line(verb) +
+        line(canonicalUri) +
+        line(canonicalQuery) +
+        line(m_canonicalHeadersString) +
+        line(m_signedHeadersString) +
+        crypto::encodeAsHex(crypto::sha256(data));
+}
+
+std::string S3::ApiV4::buildStringToSign(
+        const std::string& canonicalRequest) const
+{
+    return
+        line("AWS4-HMAC-SHA256") +
+        line(m_formattedTime.amazonDate()) +
+        line(m_formattedTime.date() + "/" + m_region + "/s3/aws4_request") +
+        crypto::encodeAsHex(crypto::sha256(canonicalRequest));
+}
+
+std::string S3::ApiV4::calculateSignature(
+        const std::string& stringToSign) const
+{
+    const std::string kDate(
+            crypto::hmacSha256(
+                "AWS4" + m_auth.hidden(),
+                m_formattedTime.date()));
+
+    const std::string kRegion(crypto::hmacSha256(kDate, m_region));
+    const std::string kService(crypto::hmacSha256(kRegion, "s3"));
+    const std::string kSigning(
+            crypto::hmacSha256(kService, "aws4_request"));
+
+    return crypto::encodeAsHex(crypto::hmacSha256(kSigning, stringToSign));
+}
+
+std::string S3::ApiV4::getAuthHeader(
+        const std::string& signedHeadersString,
+        const std::string& signature) const
+{
+    return
+        std::string("AWS4-HMAC-SHA256 ") +
+        "Credential=" + m_auth.access() + '/' +
+            m_formattedTime.date() + "/" + m_region + "/s3/aws4_request, " +
+        "SignedHeaders=" + signedHeadersString + ", " +
+        "Signature=" + signature;
+}
+
+S3::Resource::Resource(std::string baseUrl, std::string fullPath)
+    : baseUrl(baseUrl)
+    , bucket()
+    , object()
+{
+    fullPath = sanitize(fullPath);
+    const std::size_t split(fullPath.find("/"));
+
+    bucket = fullPath.substr(0, split);
+
+    if (split != std::string::npos)
+    {
+        object = fullPath.substr(split + 1);
+    }
+}
+
+std::string S3::Resource::url() const
+{
+    return "https://" + bucket + baseUrl + object;
+}
+
+std::string S3::Resource::host() const
+{
+    return bucket + baseUrl.substr(0, baseUrl.size() - 1); // Pop slash.
+}
+
+S3::FormattedTime::FormattedTime()
+    : m_date(formatTime(dateFormat))
+    , m_time(formatTime(timeFormat))
+{ }
+
+std::string S3::FormattedTime::formatTime(const std::string& format) const
+{
+    std::time_t time(std::time(nullptr));
+    std::vector<char> buf(80, 0);
+
+    if (std::strftime(
+                buf.data(),
+                buf.size(),
+                format.data(),
+                std::gmtime(&time)))
+    {
+        return std::string(buf.data());
+    }
+    else
+    {
+        throw ArbiterError("Could not format time");
+    }
+}
+
+S3::Auth::Auth(const std::string access, const std::string hidden)
+    : m_access(access)
+    , m_hidden(hidden)
+{ }
+
+std::unique_ptr<S3::Auth> S3::Auth::find(std::string profile)
+{
+    std::unique_ptr<S3::Auth> auth;
+
+    auto access(util::env("AWS_ACCESS_KEY_ID"));
+    auto hidden(util::env("AWS_SECRET_ACCESS_KEY"));
+
+    if (access && hidden)
+    {
+        auth.reset(new S3::Auth(*access, *hidden));
+        return auth;
+    }
+
+    access = util::env("AMAZON_ACCESS_KEY_ID");
+    hidden = util::env("AMAZON_SECRET_ACCESS_KEY");
+
+    if (access && hidden)
+    {
+        auth.reset(new S3::Auth(*access, *hidden));
+        return auth;
+    }
+
+    const std::string credFile("~/.aws/credentials");
+
+    // First, try reading credentials file.
+    if (std::unique_ptr<std::string> cred = fsDriver.tryGet(credFile))
+    {
+        const std::vector<std::string> lines(condense(split(*cred)));
+
+        if (lines.size() >= 3)
+        {
+            std::size_t i(0);
+
+            const std::string profileFind("[" + profile + "]");
+            const std::string accessFind("aws_access_key_id=");
+            const std::string hiddenFind("aws_secret_access_key=");
+
+            while (i < lines.size() - 2 && !auth)
+            {
+                if (lines[i].find(profileFind) != std::string::npos)
+                {
+                    const std::string& accessLine(lines[i + 1]);
+                    const std::string& hiddenLine(lines[i + 2]);
+
+                    std::size_t accessPos(accessLine.find(accessFind));
+                    std::size_t hiddenPos(hiddenLine.find(hiddenFind));
+
+                    if (
+                            accessPos != std::string::npos &&
+                            hiddenPos != std::string::npos)
+                    {
+                        const std::string access(
+                                accessLine.substr(
+                                    accessPos + accessFind.size(),
+                                    accessLine.find(';')));
+
+                        const std::string hidden(
+                                hiddenLine.substr(
+                                    hiddenPos + hiddenFind.size(),
+                                    hiddenLine.find(';')));
+
+                        auth.reset(new S3::Auth(access, hidden));
+                    }
+                }
+
+                ++i;
+            }
+        }
+    }
+
+    return auth;
+}
+
+std::string S3::Auth::access() const { return m_access; }
+std::string S3::Auth::hidden() const { return m_hidden; }
+
+} // namespace drivers
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/drivers/s3.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/drivers/dropbox.cpp
+// //////////////////////////////////////////////////////////////////////
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/arbiter.hpp>
+#endif
+
+#include <algorithm>
+#include <cctype>
+#include <cstdlib>
+#include <functional>
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/arbiter.hpp>
+#include <arbiter/drivers/fs.hpp>
+#include <arbiter/drivers/dropbox.hpp>
+#include <arbiter/third/xml/xml.hpp>
+
+#ifndef ARBITER_EXTERNAL_JSON
+#include <arbiter/third/json/json.hpp>
+#endif
+
+#endif
+
+
+
+#ifdef ARBITER_EXTERNAL_JSON
+#include <json/json.h>
+#endif
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+
+namespace
+{
+    const std::string baseGetUrl("https://content.dropboxapi.com/");
+    const std::string getUrl(baseGetUrl + "2/files/download");
+
+    const std::string listUrl("https://api.dropboxapi.com/2/files/list_folder");
+    const std::string metaUrl("https://api.dropboxapi.com/2/files/get_metadata");
+    const std::string continueListUrl(listUrl + "/continue");
+
+    const auto ins([](unsigned char lhs, unsigned char rhs)
+    {
+        return std::tolower(lhs) == std::tolower(rhs);
+    });
+
+    std::string toSanitizedString(const Json::Value& v)
+    {
+        Json::FastWriter writer;
+        std::string f(writer.write(v));
+        f.erase(std::remove(f.begin(), f.end(), '\n'), f.end());
+        return f;
+    }
+
+    const std::string dirTag("folder");
+    const std::string fileTag("file");
+}
+
+namespace drivers
+{
+
+using namespace http;
+
+Dropbox::Dropbox(Pool& pool, const Dropbox::Auth& auth)
+    : Http(pool)
+    , m_auth(auth)
+{ }
+
+std::unique_ptr<Dropbox> Dropbox::create(Pool& pool, const Json::Value& json)
+{
+    std::unique_ptr<Dropbox> dropbox;
+
+    if (!json.isNull() && json.isMember("token"))
+    {
+        dropbox.reset(new Dropbox(pool, Auth(json["token"].asString())));
+    }
+
+    return dropbox;
+}
+
+Headers Dropbox::httpGetHeaders() const
+{
+    Headers headers;
+
+    headers["Authorization"] = "Bearer " + m_auth.token();
+
+    headers["Transfer-Encoding"] = "";
+    headers["Expect"] = "";
+
+    return headers;
+}
+
+Headers Dropbox::httpPostHeaders() const
+{
+    Headers headers;
+
+    headers["Authorization"] = "Bearer " + m_auth.token();
+    headers["Transfer-Encoding"] = "chunked";
+    headers["Expect"] = "100-continue";
+    headers["Content-Type"] = "application/json";
+
+    return headers;
+}
+
+std::unique_ptr<std::size_t> Dropbox::tryGetSize(
+        const std::string rawPath) const
+{
+    std::unique_ptr<std::size_t> result;
+
+    Headers headers(httpPostHeaders());
+
+    Json::Value json;
+    json["path"] = std::string("/" + sanitize(rawPath));
+    const auto f(toSanitizedString(json));
+    const std::vector<char> postData(f.begin(), f.end());
+
+    Response res(Http::internalPost(metaUrl, postData, headers));
+
+    if (res.ok())
+    {
+        const auto data(res.data());
+
+        Json::Value json;
+        Json::Reader reader;
+        reader.parse(std::string(data.data(), data.size()), json, false);
+
+        if (json.isMember("size"))
+        {
+            result.reset(new std::size_t(json["size"].asUInt64()));
+        }
+    }
+
+    return result;
+}
+
+bool Dropbox::get(
+        const std::string rawPath,
+        std::vector<char>& data,
+        const Headers userHeaders,
+        const Query query) const
+{
+    const std::string path(sanitize(rawPath));
+
+    Headers headers(httpGetHeaders());
+
+    Json::Value json;
+    json["path"] = std::string("/" + path);
+    headers["Dropbox-API-Arg"] = toSanitizedString(json);
+
+    headers.insert(userHeaders.begin(), userHeaders.end());
+
+    const Response res(Http::internalGet(getUrl, headers, query));
+
+    if (res.ok())
+    {
+        if (!userHeaders.count("Range"))
+        {
+            if (!res.headers().count("size")) return false;
+
+            const std::size_t size(std::stoul(res.headers().at("size")));
+            data = res.data();
+
+            if (size == data.size()) return true;
+            else
+            {
+                std::cout <<
+                    "Data size check failed - got " <<
+                    size << " of " << res.data().size() << " bytes." <<
+                    std::endl;
+            }
+        }
+        else
+        {
+            data = res.data();
+            return true;
+        }
+    }
+    else
+    {
+        const auto data(res.data());
+        std::string message(data.data(), data.size());
+
+        std::cout <<
+                "Server response: " << res.code() << " - '" << message << "'" <<
+                std::endl;
+    }
+
+    return false;
+}
+
+void Dropbox::put(
+        const std::string rawPath,
+        const std::vector<char>& data,
+        const Headers headers,
+        const Query query) const
+{
+    throw ArbiterError("PUT not yet supported for " + type());
+}
+
+std::string Dropbox::continueFileInfo(std::string cursor) const
+{
+    Headers headers(httpPostHeaders());
+
+    Json::Value json;
+    json["cursor"] = cursor;
+    const std::string f(toSanitizedString(json));
+
+    std::vector<char> postData(f.begin(), f.end());
+    Response res(Http::internalPost(continueListUrl, postData, headers));
+
+    if (res.ok())
+    {
+        return std::string(res.data().data(), res.data().size());
+    }
+    else
+    {
+        std::string message(res.data().data(), res.data().size());
+        throw ArbiterError(
+                "Server response: " + std::to_string(res.code()) + " - '" +
+                message + "'");
+    }
+
+    return std::string("");
+}
+
+std::vector<std::string> Dropbox::glob(std::string rawPath, bool verbose) const
+{
+    std::vector<std::string> results;
+
+    const std::string path(sanitize(rawPath.substr(0, rawPath.size() - 2)));
+
+    auto listPath = [this](std::string path)->std::string
+    {
+        Headers headers(httpPostHeaders());
+
+        Json::Value request;
+        request["path"] = std::string("/" + path);
+        request["recursive"] = false;
+        request["include_media_info"] = false;
+        request["include_deleted"] = false;
+
+        const std::string f(toSanitizedString(request));
+        std::vector<char> postData(f.begin(), f.end());
+
+        // Can't fully qualify this protected method within the lambda due to a
+        // GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61148
+        Response res(internalPost(listUrl, postData, headers));
+
+        if (res.ok())
+        {
+            return std::string(res.data().data(), res.data().size());
+        }
+        else if (res.code() == 409)
+        {
+            return "";
+        }
+        else
+        {
+            std::string message(res.data().data(), res.data().size());
+            throw ArbiterError(
+                    "Server response: " + std::to_string(res.code()) + " - '" +
+                    message + "'");
+        }
+    };
+
+    bool more(false);
+    std::string cursor("");
+
+    auto processPath = [verbose, &results, &more, &cursor](std::string data)
+    {
+        if (data.empty()) return;
+
+        if (verbose) std::cout << '.';
+
+        Json::Value json;
+        Json::Reader reader;
+        reader.parse(data, json, false);
+
+        const Json::Value& entries(json["entries"]);
+
+        if (entries.isNull())
+        {
+            throw ArbiterError("Returned JSON from Dropbox was NULL");
+        }
+        if (!entries.isArray())
+        {
+            throw ArbiterError("Returned JSON from Dropbox was not an array");
+        }
+
+        more = json["has_more"].asBool();
+        cursor = json["cursor"].asString();
+
+        for (std::size_t i(0); i < entries.size(); ++i)
+        {
+            const Json::Value& v(entries[static_cast<Json::ArrayIndex>(i)]);
+            const std::string tag(v[".tag"].asString());
+
+            // Only insert files.
+            if (std::equal(tag.begin(), tag.end(), fileTag.begin(), ins))
+            {
+                // Results already begin with a slash.
+                results.push_back("dropbox:/" + v["path_lower"].asString());
+            }
+        }
+    };
+
+    processPath(listPath(path));
+
+    if (more)
+    {
+        do
+        {
+            processPath(continueFileInfo(cursor));
+        }
+        while (more);
+    }
+
+    return results;
+}
+
+} // namespace drivers
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/drivers/dropbox.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/util/http.cpp
+// //////////////////////////////////////////////////////////////////////
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/util/http.hpp>
+#endif
+
+#include <numeric>
+
+#include <curl/curl.h>
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+namespace http
+{
+
+namespace
+{
+    struct PutData
+    {
+        PutData(const std::vector<char>& data)
+            : data(data)
+            , offset(0)
+        { }
+
+        const std::vector<char>& data;
+        std::size_t offset;
+    };
+
+    std::size_t getCb(
+            const char* in,
+            std::size_t size,
+            std::size_t num,
+            std::vector<char>* out)
+    {
+        const std::size_t fullBytes(size * num);
+        const std::size_t startSize(out->size());
+
+        out->resize(out->size() + fullBytes);
+        std::memcpy(out->data() + startSize, in, fullBytes);
+
+        return fullBytes;
+    }
+
+    std::size_t putCb(
+            char* out,
+            std::size_t size,
+            std::size_t num,
+            PutData* in)
+    {
+        const std::size_t fullBytes(
+                std::min(
+                    size * num,
+                    in->data.size() - in->offset));
+        std::memcpy(out, in->data.data() + in->offset, fullBytes);
+
+        in->offset += fullBytes;
+        return fullBytes;
+    }
+
+    std::size_t headerCb(
+            const char *buffer,
+            std::size_t size,
+            std::size_t num,
+            http::Headers* out)
+    {
+        const std::size_t fullBytes(size * num);
+
+        std::string data(buffer, fullBytes);
+        data.erase(std::remove(data.begin(), data.end(), '\n'), data.end());
+        data.erase(std::remove(data.begin(), data.end(), '\r'), data.end());
+
+        const std::size_t split(data.find_first_of(":"));
+
+        // No colon means it isn't a header with data.
+        if (split == std::string::npos) return fullBytes;
+
+        const std::string key(data.substr(0, split));
+        const std::string val(data.substr(split + 1, data.size()));
+
+        (*out)[key] = val;
+
+        return fullBytes;
+    }
+
+    std::size_t eatLogging(void *out, size_t size, size_t num, void *in)
+    {
+        return size * num;
+    }
+
+    const std::map<char, std::string> sanitizers
+    {
+        { ' ', "%20" },
+        { '!', "%21" },
+        { '"', "%22" },
+        { '#', "%23" },
+        { '$', "%24" },
+        { '\'', "%27" },
+        { '(', "%28" },
+        { ')', "%29" },
+        { '*', "%2A" },
+        { '+', "%2B" },
+        { ',', "%2C" },
+        { '/', "%2F" },
+        { ';', "%3B" },
+        { '<', "%3C" },
+        { '>', "%3E" },
+        { '@', "%40" },
+        { '[', "%5B" },
+        { '\\', "%5C" },
+        { ']', "%5D" },
+        { '^', "%5E" },
+        { '`', "%60" },
+        { '{', "%7B" },
+        { '|', "%7C" },
+        { '}', "%7D" },
+        { '~', "%7E" }
+    };
+
+    const bool followRedirect(true);
+    const std::size_t defaultHttpTimeout(60 * 5);
+} // unnamed namespace
+
+std::string sanitize(const std::string path, const std::string exclusions)
+{
+    std::string result;
+
+    for (const auto c : path)
+    {
+        const auto it(sanitizers.find(c));
+
+        if (it == sanitizers.end() || exclusions.find(c) != std::string::npos)
+        {
+            result += c;
+        }
+        else
+        {
+            result += it->second;
+        }
+    }
+
+    return result;
+}
+
+std::string buildQueryString(const Query& query)
+{
+    return std::accumulate(
+            query.begin(),
+            query.end(),
+            std::string(),
+            [](const std::string& out, const Query::value_type& keyVal)
+            {
+                const char sep(out.empty() ? '?' : '&');
+                return out + sep + keyVal.first + '=' + keyVal.second;
+            });
+}
+
+Curl::Curl(bool verbose, std::size_t timeout)
+    : m_curl(0)
+    , m_headers(0)
+    , m_verbose(verbose)
+    , m_timeout(timeout)
+    , m_data()
+{
+    m_curl = curl_easy_init();
+}
+
+Curl::~Curl()
+{
+    curl_easy_cleanup(m_curl);
+    curl_slist_free_all(m_headers);
+    m_headers = 0;
+}
+
+void Curl::init(
+        const std::string rawPath,
+        const Headers& headers,
+        const Query& query)
+{
+    // Reset our curl instance and header list.
+    curl_slist_free_all(m_headers);
+    m_headers = 0;
+
+    // Set path.
+    const std::string path(sanitize(rawPath + buildQueryString(query)));
+    curl_easy_setopt(m_curl, CURLOPT_URL, path.c_str());
+
+    // Needed for multithreaded Curl usage.
+    curl_easy_setopt(m_curl, CURLOPT_NOSIGNAL, 1L);
+
+    // Substantially faster DNS lookups without IPv6.
+    curl_easy_setopt(m_curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
+
+    // Don't wait forever.
+    curl_easy_setopt(m_curl, CURLOPT_TIMEOUT, m_timeout);
+
+    // Configuration options.
+    if (followRedirect) curl_easy_setopt(m_curl, CURLOPT_FOLLOWLOCATION, 1L);
+
+    // Insert supplied headers.
+    for (const auto& h : headers)
+    {
+        m_headers = curl_slist_append(
+                m_headers,
+                (h.first + ": " + h.second).c_str());
+    }
+}
+
+Response Curl::get(std::string path, Headers headers, Query query)
+{
+    int httpCode(0);
+    std::vector<char> data;
+
+    init(path, headers, query);
+    if (m_verbose) curl_easy_setopt(m_curl, CURLOPT_VERBOSE, 1L);
+
+    // Register callback function and date pointer to consume the result.
+    curl_easy_setopt(m_curl, CURLOPT_WRITEFUNCTION, getCb);
+    curl_easy_setopt(m_curl, CURLOPT_WRITEDATA, &data);
+
+    // Insert all headers into the request.
+    curl_easy_setopt(m_curl, CURLOPT_HTTPHEADER, m_headers);
+
+    // Set up callback and data pointer for received headers.
+    Headers receivedHeaders;
+    curl_easy_setopt(m_curl, CURLOPT_HEADERFUNCTION, headerCb);
+    curl_easy_setopt(m_curl, CURLOPT_HEADERDATA, &receivedHeaders);
+
+    // Run the command.
+    curl_easy_perform(m_curl);
+    curl_easy_getinfo(m_curl, CURLINFO_RESPONSE_CODE, &httpCode);
+
+    curl_easy_reset(m_curl);
+    return Response(httpCode, data, receivedHeaders);
+}
+
+Response Curl::head(std::string path, Headers headers, Query query)
+{
+    int httpCode(0);
+    std::vector<char> data;
+
+    init(path, headers, query);
+    if (m_verbose) curl_easy_setopt(m_curl, CURLOPT_VERBOSE, 1L);
+
+    // Register callback function and date pointer to consume the result.
+    curl_easy_setopt(m_curl, CURLOPT_WRITEFUNCTION, getCb);
+    curl_easy_setopt(m_curl, CURLOPT_WRITEDATA, &data);
+
+    // Insert all headers into the request.
+    curl_easy_setopt(m_curl, CURLOPT_HTTPHEADER, m_headers);
+
+    // Set up callback and data pointer for received headers.
+    Headers receivedHeaders;
+    curl_easy_setopt(m_curl, CURLOPT_HEADERFUNCTION, headerCb);
+    curl_easy_setopt(m_curl, CURLOPT_HEADERDATA, &receivedHeaders);
+
+    // Specify a HEAD request.
+    curl_easy_setopt(m_curl, CURLOPT_NOBODY, 1L);
+
+    // Run the command.
+    curl_easy_perform(m_curl);
+    curl_easy_getinfo(m_curl, CURLINFO_RESPONSE_CODE, &httpCode);
+
+    curl_easy_reset(m_curl);
+    return Response(httpCode, data, receivedHeaders);
+}
+
+Response Curl::put(
+        std::string path,
+        const std::vector<char>& data,
+        Headers headers,
+        Query query)
+{
+    init(path, headers, query);
+    if (m_verbose) curl_easy_setopt(m_curl, CURLOPT_VERBOSE, 1L);
+
+    int httpCode(0);
+
+    std::unique_ptr<PutData> putData(new PutData(data));
+
+    // Register callback function and data pointer to create the request.
+    curl_easy_setopt(m_curl, CURLOPT_READFUNCTION, putCb);
+    curl_easy_setopt(m_curl, CURLOPT_READDATA, putData.get());
+
+    // Insert all headers into the request.
+    curl_easy_setopt(m_curl, CURLOPT_HTTPHEADER, m_headers);
+
+    // Specify that this is a PUT request.
+    curl_easy_setopt(m_curl, CURLOPT_PUT, 1L);
+
+    // Must use this for binary data, otherwise curl will use strlen(), which
+    // will likely be incorrect.
+    curl_easy_setopt(
+            m_curl,
+            CURLOPT_INFILESIZE_LARGE,
+            static_cast<curl_off_t>(data.size()));
+
+    // Hide Curl's habit of printing things to console even with verbose set
+    // to false.
+    curl_easy_setopt(m_curl, CURLOPT_WRITEFUNCTION, eatLogging);
+
+    // Run the command.
+    curl_easy_perform(m_curl);
+    curl_easy_getinfo(m_curl, CURLINFO_RESPONSE_CODE, &httpCode);
+
+    curl_easy_reset(m_curl);
+    return Response(httpCode);
+}
+
+Response Curl::post(
+        std::string path,
+        const std::vector<char>& data,
+        Headers headers,
+        Query query)
+{
+    init(path, headers, query);
+    if (m_verbose) curl_easy_setopt(m_curl, CURLOPT_VERBOSE, 1L);
+
+    int httpCode(0);
+
+    std::unique_ptr<PutData> putData(new PutData(data));
+    std::vector<char> writeData;
+
+    // Register callback function and data pointer to create the request.
+    curl_easy_setopt(m_curl, CURLOPT_READFUNCTION, putCb);
+    curl_easy_setopt(m_curl, CURLOPT_READDATA, putData.get());
+
+    // Register callback function and data pointer to consume the result.
+    curl_easy_setopt(m_curl, CURLOPT_WRITEFUNCTION, getCb);
+    curl_easy_setopt(m_curl, CURLOPT_WRITEDATA, &writeData);
+
+    // Insert all headers into the request.
+    curl_easy_setopt(m_curl, CURLOPT_HTTPHEADER, m_headers);
+
+    // Set up callback and data pointer for received headers.
+    Headers receivedHeaders;
+    curl_easy_setopt(m_curl, CURLOPT_HEADERFUNCTION, headerCb);
+    curl_easy_setopt(m_curl, CURLOPT_HEADERDATA, &receivedHeaders);
+
+    // Specify that this is a POST request.
+    curl_easy_setopt(m_curl, CURLOPT_POST, 1L);
+
+    // Must use this for binary data, otherwise curl will use strlen(), which
+    // will likely be incorrect.
+    curl_easy_setopt(
+            m_curl,
+            CURLOPT_INFILESIZE_LARGE,
+            static_cast<curl_off_t>(data.size()));
+
+    // Run the command.
+    curl_easy_perform(m_curl);
+    curl_easy_getinfo(m_curl, CURLINFO_RESPONSE_CODE, &httpCode);
+
+    curl_easy_reset(m_curl);
+    Response response(httpCode, writeData, receivedHeaders);
+    return response;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+Resource::Resource(
+        Pool& pool,
+        Curl& curl,
+        const std::size_t id,
+        const std::size_t retry)
+    : m_pool(pool)
+    , m_curl(curl)
+    , m_id(id)
+    , m_retry(retry)
+{ }
+
+Resource::~Resource()
+{
+    m_pool.release(m_id);
+}
+
+Response Resource::get(
+        const std::string path,
+        const Headers headers,
+        const Query query)
+{
+    return exec([this, path, headers, query]()->Response
+    {
+        return m_curl.get(path, headers, query);
+    });
+}
+
+Response Resource::head(
+        const std::string path,
+        const Headers headers,
+        const Query query)
+{
+    return exec([this, path, headers, query]()->Response
+    {
+        return m_curl.head(path, headers, query);
+    });
+}
+
+Response Resource::put(
+        std::string path,
+        const std::vector<char>& data,
+        const Headers headers,
+        const Query query)
+{
+    return exec([this, path, &data, headers, query]()->Response
+    {
+        return m_curl.put(path, data, headers, query);
+    });
+}
+
+Response Resource::post(
+        std::string path,
+        const std::vector<char>& data,
+        const Headers headers,
+        const Query query)
+{
+    return exec([this, path, &data, headers, query]()->Response
+    {
+        return m_curl.post(path, data, headers, query);
+    });
+}
+
+Response Resource::exec(std::function<Response()> f)
+{
+    Response res;
+    std::size_t tries(0);
+
+    do
+    {
+        res = f();
+    }
+    while (res.serverError() && tries++ < m_retry);
+
+    return res;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+Pool::Pool(
+        const std::size_t concurrent,
+        const std::size_t retry,
+        const Json::Value& json)
+    : m_curls(concurrent)
+    , m_available(concurrent)
+    , m_retry(retry)
+    , m_mutex()
+    , m_cv()
+{
+    const bool verbose(
+            json.isMember("arbiter") ?
+                json["arbiter"]["verbose"].asBool() : false);
+
+    const std::size_t timeout(
+            json.isMember("http") && json["http"]["timeout"].asUInt64() ?
+                json["http"]["timeout"].asUInt64() : defaultHttpTimeout);
+
+    for (std::size_t i(0); i < concurrent; ++i)
+    {
+        m_available[i] = i;
+        m_curls[i].reset(new Curl(verbose, timeout));
+    }
+}
+
+Resource Pool::acquire()
+{
+    std::unique_lock<std::mutex> lock(m_mutex);
+    m_cv.wait(lock, [this]()->bool { return !m_available.empty(); });
+
+    const std::size_t id(m_available.back());
+    Curl& curl(*m_curls[id]);
+
+    m_available.pop_back();
+
+    return Resource(*this, curl, id, m_retry);
+}
+
+void Pool::release(const std::size_t id)
+{
+    std::unique_lock<std::mutex> lock(m_mutex);
+    m_available.push_back(id);
+    lock.unlock();
+
+    m_cv.notify_one();
+}
+
+} // namepace http
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/util/http.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/util/md5.cpp
+// //////////////////////////////////////////////////////////////////////
+
+#include <cstddef>
+#include <cstdlib>
+#include <memory>
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/util/md5.hpp>
+#include <arbiter/util/macros.hpp>
+#endif
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+namespace crypto
+{
+namespace
+{
+
+const std::size_t blockSize(16);
+
+struct Md5Context
+{
+    Md5Context() : data(), datalen(0), bitlen(0), state()
+    {
+        state[0] = 0x67452301;
+        state[1] = 0xEFCDAB89;
+        state[2] = 0x98BADCFE;
+        state[3] = 0x10325476;
+    }
+
+    uint8_t data[64];
+    uint32_t datalen;
+    unsigned long long bitlen;
+    uint32_t state[4];
+};
+
+void md5_transform(Md5Context *ctx, const uint8_t data[])
+{
+    uint32_t a, b, c, d, m[16], i, j;
+
+    // MD5 specifies big endian byte order, but this implementation assumes a
+    // little endian byte order CPU. Reverse all the bytes upon input, and
+    // re-reverse them on output (in md5_final()).
+    for (i = 0, j = 0; i < 16; ++i, j += 4)
+    {
+        m[i] =
+            (data[j]) + (data[j + 1] << 8) +
+            (data[j + 2] << 16) + (data[j + 3] << 24);
+    }
+
+    a = ctx->state[0];
+    b = ctx->state[1];
+    c = ctx->state[2];
+    d = ctx->state[3];
+
+    FF(a,b,c,d,m[0],  7,0xd76aa478);
+    FF(d,a,b,c,m[1], 12,0xe8c7b756);
+    FF(c,d,a,b,m[2], 17,0x242070db);
+    FF(b,c,d,a,m[3], 22,0xc1bdceee);
+    FF(a,b,c,d,m[4],  7,0xf57c0faf);
+    FF(d,a,b,c,m[5], 12,0x4787c62a);
+    FF(c,d,a,b,m[6], 17,0xa8304613);
+    FF(b,c,d,a,m[7], 22,0xfd469501);
+    FF(a,b,c,d,m[8],  7,0x698098d8);
+    FF(d,a,b,c,m[9], 12,0x8b44f7af);
+    FF(c,d,a,b,m[10],17,0xffff5bb1);
+    FF(b,c,d,a,m[11],22,0x895cd7be);
+    FF(a,b,c,d,m[12], 7,0x6b901122);
+    FF(d,a,b,c,m[13],12,0xfd987193);
+    FF(c,d,a,b,m[14],17,0xa679438e);
+    FF(b,c,d,a,m[15],22,0x49b40821);
+
+    GG(a,b,c,d,m[1],  5,0xf61e2562);
+    GG(d,a,b,c,m[6],  9,0xc040b340);
+    GG(c,d,a,b,m[11],14,0x265e5a51);
+    GG(b,c,d,a,m[0], 20,0xe9b6c7aa);
+    GG(a,b,c,d,m[5],  5,0xd62f105d);
+    GG(d,a,b,c,m[10], 9,0x02441453);
+    GG(c,d,a,b,m[15],14,0xd8a1e681);
+    GG(b,c,d,a,m[4], 20,0xe7d3fbc8);
+    GG(a,b,c,d,m[9],  5,0x21e1cde6);
+    GG(d,a,b,c,m[14], 9,0xc33707d6);
+    GG(c,d,a,b,m[3], 14,0xf4d50d87);
+    GG(b,c,d,a,m[8], 20,0x455a14ed);
+    GG(a,b,c,d,m[13], 5,0xa9e3e905);
+    GG(d,a,b,c,m[2],  9,0xfcefa3f8);
+    GG(c,d,a,b,m[7], 14,0x676f02d9);
+    GG(b,c,d,a,m[12],20,0x8d2a4c8a);
+
+    HH(a,b,c,d,m[5],  4,0xfffa3942);
+    HH(d,a,b,c,m[8], 11,0x8771f681);
+    HH(c,d,a,b,m[11],16,0x6d9d6122);
+    HH(b,c,d,a,m[14],23,0xfde5380c);
+    HH(a,b,c,d,m[1],  4,0xa4beea44);
+    HH(d,a,b,c,m[4], 11,0x4bdecfa9);
+    HH(c,d,a,b,m[7], 16,0xf6bb4b60);
+    HH(b,c,d,a,m[10],23,0xbebfbc70);
+    HH(a,b,c,d,m[13], 4,0x289b7ec6);
+    HH(d,a,b,c,m[0], 11,0xeaa127fa);
+    HH(c,d,a,b,m[3], 16,0xd4ef3085);
+    HH(b,c,d,a,m[6], 23,0x04881d05);
+    HH(a,b,c,d,m[9],  4,0xd9d4d039);
+    HH(d,a,b,c,m[12],11,0xe6db99e5);
+    HH(c,d,a,b,m[15],16,0x1fa27cf8);
+    HH(b,c,d,a,m[2], 23,0xc4ac5665);
+
+    II(a,b,c,d,m[0],  6,0xf4292244);
+    II(d,a,b,c,m[7], 10,0x432aff97);
+    II(c,d,a,b,m[14],15,0xab9423a7);
+    II(b,c,d,a,m[5], 21,0xfc93a039);
+    II(a,b,c,d,m[12], 6,0x655b59c3);
+    II(d,a,b,c,m[3], 10,0x8f0ccc92);
+    II(c,d,a,b,m[10],15,0xffeff47d);
+    II(b,c,d,a,m[1], 21,0x85845dd1);
+    II(a,b,c,d,m[8],  6,0x6fa87e4f);
+    II(d,a,b,c,m[15],10,0xfe2ce6e0);
+    II(c,d,a,b,m[6], 15,0xa3014314);
+    II(b,c,d,a,m[13],21,0x4e0811a1);
+    II(a,b,c,d,m[4],  6,0xf7537e82);
+    II(d,a,b,c,m[11],10,0xbd3af235);
+    II(c,d,a,b,m[2], 15,0x2ad7d2bb);
+    II(b,c,d,a,m[9], 21,0xeb86d391);
+
+    ctx->state[0] += a;
+    ctx->state[1] += b;
+    ctx->state[2] += c;
+    ctx->state[3] += d;
+}
+
+void md5_update(Md5Context *ctx, const uint8_t data[], std::size_t len)
+{
+    for (std::size_t i(0); i < len; ++i) {
+        ctx->data[ctx->datalen] = data[i];
+        ctx->datalen++;
+        if (ctx->datalen == 64) {
+            md5_transform(ctx, ctx->data);
+            ctx->bitlen += 512;
+            ctx->datalen = 0;
+        }
+    }
+}
+
+void md5_final(Md5Context *ctx, uint8_t hash[])
+{
+    std::size_t i(ctx->datalen);
+
+    // Pad whatever data is left in the buffer.
+    if (ctx->datalen < 56) {
+        ctx->data[i++] = 0x80;
+        while (i < 56)
+            ctx->data[i++] = 0x00;
+    }
+    else if (ctx->datalen >= 56) {
+        ctx->data[i++] = 0x80;
+        while (i < 64)
+            ctx->data[i++] = 0x00;
+        md5_transform(ctx, ctx->data);
+        memset(ctx->data, 0, 56);
+    }
+
+    // Append to the padding the total message's length in bits and transform.
+    ctx->bitlen += ctx->datalen * 8;
+    ctx->data[56] = static_cast<uint8_t>(ctx->bitlen);
+    ctx->data[57] = static_cast<uint8_t>(ctx->bitlen >> 8);
+    ctx->data[58] = static_cast<uint8_t>(ctx->bitlen >> 16);
+    ctx->data[59] = static_cast<uint8_t>(ctx->bitlen >> 24);
+    ctx->data[60] = static_cast<uint8_t>(ctx->bitlen >> 32);
+    ctx->data[61] = static_cast<uint8_t>(ctx->bitlen >> 40);
+    ctx->data[62] = static_cast<uint8_t>(ctx->bitlen >> 48);
+    ctx->data[63] = static_cast<uint8_t>(ctx->bitlen >> 56);
+    md5_transform(ctx, ctx->data);
+
+    // Since this implementation uses little endian byte ordering and MD uses
+    // big endian, reverse all the bytes when copying the final state to the
+    // output hash.
+    for (i = 0; i < 4; ++i) {
+        hash[i]      = (ctx->state[0] >> (i * 8)) & 0x000000ff;
+        hash[i + 4]  = (ctx->state[1] >> (i * 8)) & 0x000000ff;
+        hash[i + 8]  = (ctx->state[2] >> (i * 8)) & 0x000000ff;
+        hash[i + 12] = (ctx->state[3] >> (i * 8)) & 0x000000ff;
+    }
+}
+
+} // unnamed namespace
+
+std::string md5(const std::string& data)
+{
+    std::vector<char> out(blockSize, 0);
+
+    Md5Context ctx;
+    md5_update(
+            &ctx,
+            reinterpret_cast<const uint8_t*>(data.data()),
+            data.size());
+    md5_final(&ctx, reinterpret_cast<uint8_t*>(out.data()));
+
+    return std::string(out.data(), out.size());
+}
+
+} // namespace crypto
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/util/md5.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/util/sha256.cpp
+// //////////////////////////////////////////////////////////////////////
+
+#include <cstdlib>
+#include <memory>
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/util/sha256.hpp>
+#include <arbiter/util/macros.hpp>
+#endif
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+namespace crypto
+{
+namespace
+{
+
+const std::size_t block(64);
+
+const std::vector<uint32_t> k {
+    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
+    0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
+    0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
+    0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
+    0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
+    0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
+    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
+    0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
+    0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
+    0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
+    0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
+    0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
+    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
+    0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
+    0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
+    0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
+};
+
+struct Sha256Context
+{
+    Sha256Context() : data(), datalen(0), bitlen(0), state()
+    {
+        state[0] = 0x6a09e667;
+        state[1] = 0xbb67ae85;
+        state[2] = 0x3c6ef372;
+        state[3] = 0xa54ff53a;
+        state[4] = 0x510e527f;
+        state[5] = 0x9b05688c;
+        state[6] = 0x1f83d9ab;
+        state[7] = 0x5be0cd19;
+    }
+
+    uint8_t data[64];
+    uint32_t datalen;
+    std::size_t bitlen;
+    uint32_t state[8];
+};
+
+void sha256_transform(Sha256Context *ctx, const uint8_t data[])
+{
+    uint32_t a, b, c, d, e, f, g, h, i, j, t1, t2, m[64];
+
+    for (i = 0, j = 0; i < 16; ++i, j += 4)
+    {
+        m[i] =
+            (data[j    ] << 24) |
+            (data[j + 1] << 16) |
+            (data[j + 2] << 8 ) |
+            (data[j + 3]);
+    }
+
+    for ( ; i < 64; ++i)
+    {
+        m[i] = SIG1(m[i - 2]) + m[i - 7] + SIG0(m[i - 15]) + m[i - 16];
+    }
+
+    a = ctx->state[0];
+    b = ctx->state[1];
+    c = ctx->state[2];
+    d = ctx->state[3];
+    e = ctx->state[4];
+    f = ctx->state[5];
+    g = ctx->state[6];
+    h = ctx->state[7];
+
+    for (i = 0; i < 64; ++i)
+    {
+        t1 = h + EP1(e) + CH(e,f,g) + k[i] + m[i];
+        t2 = EP0(a) + MAJ(a,b,c);
+        h = g;
+        g = f;
+        f = e;
+        e = d + t1;
+        d = c;
+        c = b;
+        b = a;
+        a = t1 + t2;
+    }
+
+    ctx->state[0] += a;
+    ctx->state[1] += b;
+    ctx->state[2] += c;
+    ctx->state[3] += d;
+    ctx->state[4] += e;
+    ctx->state[5] += f;
+    ctx->state[6] += g;
+    ctx->state[7] += h;
+}
+
+void sha256_update(Sha256Context *ctx, const uint8_t data[], std::size_t len)
+{
+    uint32_t i;
+
+    for (i = 0; i < len; ++i)
+    {
+        ctx->data[ctx->datalen] = data[i];
+
+        if (++ctx->datalen == 64)
+        {
+            sha256_transform(ctx, ctx->data);
+            ctx->bitlen += 512;
+            ctx->datalen = 0;
+        }
+    }
+}
+
+void sha256_final(Sha256Context *ctx, uint8_t hash[])
+{
+    uint32_t i(ctx->datalen);
+
+    // Pad whatever data is left in the buffer.
+    if (ctx->datalen < 56)
+    {
+        ctx->data[i++] = 0x80;
+
+        while (i < 56)
+        {
+            ctx->data[i++] = 0x00;
+        }
+    }
+    else
+    {
+        ctx->data[i++] = 0x80;
+
+        while (i < 64)
+        {
+            ctx->data[i++] = 0x00;
+        }
+
+        sha256_transform(ctx, ctx->data);
+        memset(ctx->data, 0, 56);
+    }
+
+    // Append to the padding the total message's length in bits and transform.
+    ctx->bitlen += ctx->datalen * 8;
+    ctx->data[63] = ctx->bitlen;
+    ctx->data[62] = ctx->bitlen >> 8;
+    ctx->data[61] = ctx->bitlen >> 16;
+    ctx->data[60] = ctx->bitlen >> 24;
+    ctx->data[59] = ctx->bitlen >> 32;
+    ctx->data[58] = ctx->bitlen >> 40;
+    ctx->data[57] = ctx->bitlen >> 48;
+    ctx->data[56] = ctx->bitlen >> 56;
+    sha256_transform(ctx, ctx->data);
+
+    // Since this implementation uses little endian byte ordering and SHA uses
+    // big endian, reverse all the bytes when copying the final state to the
+    // output hash.
+    for (i = 0; i < 4; ++i)
+    {
+        hash[i]      = (ctx->state[0] >> (24 - i * 8)) & 0x000000ff;
+        hash[i + 4]  = (ctx->state[1] >> (24 - i * 8)) & 0x000000ff;
+        hash[i + 8]  = (ctx->state[2] >> (24 - i * 8)) & 0x000000ff;
+        hash[i + 12] = (ctx->state[3] >> (24 - i * 8)) & 0x000000ff;
+        hash[i + 16] = (ctx->state[4] >> (24 - i * 8)) & 0x000000ff;
+        hash[i + 20] = (ctx->state[5] >> (24 - i * 8)) & 0x000000ff;
+        hash[i + 24] = (ctx->state[6] >> (24 - i * 8)) & 0x000000ff;
+        hash[i + 28] = (ctx->state[7] >> (24 - i * 8)) & 0x000000ff;
+    }
+}
+
+} // unnamed namespace
+
+std::vector<char> sha256(const std::vector<char>& data)
+{
+    std::vector<char> out(32, 0);
+
+    Sha256Context ctx;
+    sha256_update(
+            &ctx,
+            reinterpret_cast<const uint8_t*>(data.data()),
+            data.size());
+    sha256_final(&ctx, reinterpret_cast<uint8_t*>(out.data()));
+
+    return out;
+}
+
+std::string sha256(const std::string& data)
+{
+    const std::vector<char> v(data.begin(), data.end());
+    const std::vector<char> result(sha256(v));
+    return std::string(result.data(), result.size());
+}
+
+std::string hmacSha256(const std::string& rawKey, const std::string& data)
+{
+    std::string key(rawKey);
+
+    if (key.size() > block) key = sha256(key);
+    if (key.size() < block) key.insert(key.end(), block - key.size(), 0);
+
+    std::string okeypad(block, 0x5c);
+    std::string ikeypad(block, 0x36);
+
+    for (std::size_t i(0); i < block; ++i)
+    {
+        okeypad[i] ^= key[i];
+        ikeypad[i] ^= key[i];
+    }
+
+    return sha256(okeypad + sha256(ikeypad + data));
+}
+
+} // namespace crypto
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/util/sha256.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/util/transforms.cpp
+// //////////////////////////////////////////////////////////////////////
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/util/transforms.hpp>
+#endif
+
+#include <cstdint>
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+namespace crypto
+{
+namespace
+{
+    const std::string base64Vals(
+        "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/");
+
+    const std::string hexVals("0123456789abcdef");
+} // unnamed namespace
+
+std::string encodeBase64(const std::vector<char>& data)
+{
+    std::vector<uint8_t> input;
+    for (std::size_t i(0); i < data.size(); ++i)
+    {
+        char c(data[i]);
+        input.push_back(*reinterpret_cast<uint8_t*>(&c));
+    }
+
+    std::size_t fullSteps(input.size() / 3);
+    while (input.size() % 3) input.push_back(0);
+    uint8_t* pos(input.data());
+    uint8_t* end(input.data() + fullSteps * 3);
+
+    std::string output(fullSteps * 4, '_');
+    std::size_t outIndex(0);
+
+    const uint32_t mask(0x3F);
+
+    while (pos != end)
+    {
+        uint32_t chunk((*pos) << 16 | *(pos + 1) << 8 | *(pos + 2));
+
+        output[outIndex++] = base64Vals[(chunk >> 18) & mask];
+        output[outIndex++] = base64Vals[(chunk >> 12) & mask];
+        output[outIndex++] = base64Vals[(chunk >>  6) & mask];
+        output[outIndex++] = base64Vals[chunk & mask];
+
+        pos += 3;
+    }
+
+    if (end != input.data() + input.size())
+    {
+        const std::size_t num(pos - end == 1 ? 2 : 3);
+        uint32_t chunk(*(pos) << 16 | *(pos + 1) << 8 | *(pos + 2));
+
+        output.push_back(base64Vals[(chunk >> 18) & mask]);
+        output.push_back(base64Vals[(chunk >> 12) & mask]);
+        if (num == 3) output.push_back(base64Vals[(chunk >> 6) & mask]);
+    }
+
+    while (output.size() % 4) output.push_back('=');
+
+    return output;
+}
+
+std::string encodeBase64(const std::string& input)
+{
+    return encodeBase64(std::vector<char>(input.begin(), input.end()));
+}
+
+std::string encodeAsHex(const std::vector<char>& input)
+{
+    std::string output;
+    output.reserve(input.size() * 2);
+
+    uint8_t u(0);
+
+    for (const char c : input)
+    {
+        u = *reinterpret_cast<const uint8_t*>(&c);
+        output.push_back(hexVals[u >> 4]);
+        output.push_back(hexVals[u & 0x0F]);
+    }
+
+    return output;
+}
+
+std::string encodeAsHex(const std::string& input)
+{
+    return encodeAsHex(std::vector<char>(input.begin(), input.end()));
+}
+
+} // namespace crypto
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/util/transforms.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/util/util.cpp
+// //////////////////////////////////////////////////////////////////////
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/util/util.hpp>
+
+#include <arbiter/arbiter.hpp>
+#endif
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+namespace util
+{
+
+std::string stripPostfixing(const std::string path)
+{
+    std::string stripped(path);
+
+    for (std::size_t i(0); i < 2; ++i)
+    {
+        // Pop trailing asterisk, or double-trailing-asterisks for both non- and
+        // recursive globs.
+        if (!stripped.empty() && stripped.back() == '*') stripped.pop_back();
+    }
+
+    // Pop trailing slash, in which case the result is the innermost directory.
+    while (!stripped.empty() && isSlash(stripped.back())) stripped.pop_back();
+
+    return stripped;
+}
+
+std::string getBasename(const std::string fullPath)
+{
+    std::string result(fullPath);
+
+    const std::string stripped(stripPostfixing(Arbiter::stripType(fullPath)));
+
+    // Now do the real slash searching.
+    const std::size_t pos(stripped.rfind('/'));
+
+    if (pos != std::string::npos)
+    {
+        const std::string sub(stripped.substr(pos + 1));
+        if (!sub.empty()) result = sub;
+    }
+
+    return result;
+}
+
+std::string getNonBasename(const std::string fullPath)
+{
+    std::string result("");
+
+    const std::string stripped(stripPostfixing(Arbiter::stripType(fullPath)));
+
+    // Now do the real slash searching.
+    const std::size_t pos(stripped.rfind('/'));
+
+    if (pos != std::string::npos)
+    {
+        const std::string sub(stripped.substr(0, pos));
+        result = sub;
+    }
+
+    return result;
+}
+
+std::unique_ptr<std::string> env(const std::string& var)
+{
+    std::unique_ptr<std::string> result;
+
+#ifndef ARBITER_WINDOWS
+    if (const char* c = getenv(var.c_str())) result.reset(new std::string(c));
+#else
+    char* c(nullptr);
+    std::size_t size(0);
+
+    if (!_dupenv_s(&c, &size, var.c_str()))
+    {
+        if (c)
+        {
+            result.reset(new std::string(c));
+            free(c);
+        }
+    }
+#endif
+
+    return result;
+}
+
+} // namespace util
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/util/util.cpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
diff --git a/vendor/arbiter/arbiter.hpp b/vendor/arbiter/arbiter.hpp
new file mode 100644
index 0000000..a096110
--- /dev/null
+++ b/vendor/arbiter/arbiter.hpp
@@ -0,0 +1,4603 @@
+/// Arbiter amalgamated header (https://github.com/connormanning/arbiter).
+/// It is intended to be used with #include "arbiter.hpp"
+
+// Git SHA: 4bbe7fc3c79a8b3843f50de195630f110a4a0e24
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+/*
+The MIT License (MIT)
+
+Copyright (c) 2015 Connor Manning
+
+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.
+
+
+*/
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: LICENSE
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+#pragma once
+/// If defined, indicates that the source file is amalgamated
+/// to prevent private header inclusion.
+#define ARBITER_IS_AMALGAMATION
+#define ARBITER_CUSTOM_NAMESPACE pdal
+#define ARBITER_EXTERNAL_JSON
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/util/http.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include <condition_variable>
+#include <map>
+#include <memory>
+#include <mutex>
+#include <string>
+#include <vector>
+
+#include <curl/curl.h>
+
+#ifndef ARBITER_IS_AMALGAMATION
+#ifndef ARBITER_EXTERNAL_JSON
+#include <arbiter/third/json/json.hpp>
+#endif
+#endif
+
+#ifdef ARBITER_EXTERNAL_JSON
+#include <json/json.h>
+#endif
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+namespace http
+{
+
+/** HTTP header fields. */
+using Headers = std::map<std::string, std::string>;
+
+/** HTTP query parameters. */
+using Query = std::map<std::string, std::string>;
+
+/** Perform URI percent-encoding, without encoding characters included in
+ * @p exclusions.
+ */
+std::string sanitize(std::string path, std::string exclusions = "/");
+
+/** Build a query string from key-value pairs.  If @p query is empty, the
+ * result is an empty string.  Otherwise, the result will start with the
+ * '?' character.
+ */
+std::string buildQueryString(const http::Query& query);
+
+/** @cond arbiter_internal */
+
+class Response
+{
+public:
+    Response(int code = 0)
+        : m_code(code)
+        , m_data()
+    { }
+
+    Response(int code, std::vector<char> data)
+        : m_code(code)
+        , m_data(data)
+    { }
+
+    Response(
+            int code,
+            const std::vector<char>& data,
+            const Headers& headers)
+        : m_code(code)
+        , m_data(data)
+        , m_headers(headers)
+    { }
+
+    ~Response() { }
+
+    bool ok() const             { return m_code / 100 == 2; }
+    bool clientError() const    { return m_code / 100 == 4; }
+    bool serverError() const    { return m_code / 100 == 5; }
+    int code() const            { return m_code; }
+
+    std::vector<char> data() const { return m_data; }
+    const Headers& headers() const { return m_headers; }
+
+private:
+    int m_code;
+    std::vector<char> m_data;
+    Headers m_headers;
+};
+
+class Pool;
+
+class Curl
+{
+    friend class Pool;
+
+public:
+    ~Curl();
+
+    http::Response get(std::string path, Headers headers, Query query);
+    http::Response head(std::string path, Headers headers, Query query);
+    http::Response put(
+            std::string path,
+            const std::vector<char>& data,
+            Headers headers,
+            Query query);
+    http::Response post(
+            std::string path,
+            const std::vector<char>& data,
+            Headers headers,
+            Query query);
+
+private:
+    Curl(bool verbose, std::size_t timeout);
+
+    void init(std::string path, const Headers& headers, const Query& query);
+
+    Curl(const Curl&);
+    Curl& operator=(const Curl&);
+
+    CURL* m_curl;
+    curl_slist* m_headers;
+    const bool m_verbose;
+    const std::size_t m_timeout;
+
+    std::vector<char> m_data;
+};
+
+class Resource
+{
+public:
+    Resource(Pool& pool, Curl& curl, std::size_t id, std::size_t retry);
+    ~Resource();
+
+    http::Response get(
+            std::string path,
+            Headers headers = Headers(),
+            Query query = Query());
+
+    http::Response head(
+            std::string path,
+            Headers headers = Headers(),
+            Query query = Query());
+
+    http::Response put(
+            std::string path,
+            const std::vector<char>& data,
+            Headers headers = Headers(),
+            Query query = Query());
+
+    http::Response post(
+            std::string path,
+            const std::vector<char>& data,
+            Headers headers = Headers(),
+            Query query = Query());
+
+private:
+    Pool& m_pool;
+    Curl& m_curl;
+    std::size_t m_id;
+    std::size_t m_retry;
+
+    http::Response exec(std::function<http::Response()> f);
+};
+
+class Pool
+{
+    // Only HttpResource may release.
+    friend class Resource;
+
+public:
+    Pool(
+            std::size_t concurrent,
+            std::size_t retry,
+            const Json::Value& json);
+
+    Resource acquire();
+
+private:
+    void release(std::size_t id);
+
+    std::vector<std::unique_ptr<Curl>> m_curls;
+    std::vector<std::size_t> m_available;
+    std::size_t m_retry;
+
+    std::mutex m_mutex;
+    std::condition_variable m_cv;
+};
+
+/** @endcond */
+
+} // namespace http
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/util/http.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/driver.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include <iostream>
+#include <map>
+#include <memory>
+#include <string>
+#include <vector>
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+
+class HttpPool;
+
+/** @brief Base class for interacting with a storage type.
+ *
+ * A Driver handles reading, writing, and possibly globbing from a storage
+ * source.  It is intended to be overriden by specialized subclasses for each
+ * supported storage mechanism.
+ *
+ * Derived classes must override Driver::type,
+ * Driver::put(std::string, const std::vector<char>&) const, and
+ * Driver::get(std::string, std::vector<char>&) const,
+ * Driver::getSize(std::string) const - and may optionally
+ * override Driver::glob if possible.
+ *
+ * HTTP-derived classes should override the PUT and GET versions that accept
+ * http::Headers and http::Query parameters instead.
+ */
+class Driver
+{
+public:
+    virtual ~Driver() { }
+
+    /**
+     * Returns a string identifying this driver type, which should be unique
+     * among all other drivers.  Paths that begin with the substring
+     * `<type>://` will be routed to this driver.  For example, `fs`, `s3`, or
+     * `http`.
+     *
+     * @note Derived classes must override.
+     */
+    virtual std::string type() const = 0;
+
+    /** Get string data. */
+    std::string get(std::string path) const;
+
+    /** Get string data, if available. */
+    std::unique_ptr<std::string> tryGet(std::string path) const;
+
+    /** Get binary data. */
+    std::vector<char> getBinary(std::string path) const;
+
+    /** Get binary data, if available. */
+    std::unique_ptr<std::vector<char>> tryGetBinary(std::string path) const;
+
+    /**
+     * Write @p data to the given @p path.
+     *
+     * @note Derived classes must override.
+     *
+     * @param path Path with the type-specifying prefix information stripped.
+     */
+    virtual void put(std::string path, const std::vector<char>& data) const = 0;
+
+    /** True for remote paths, otherwise false.  If `true`, a fs::LocalHandle
+     * request will download and write this file to the local filesystem.
+     */
+    virtual bool isRemote() const { return true; }
+
+    /** Get the file size in bytes, if available. */
+    virtual std::unique_ptr<std::size_t> tryGetSize(std::string path) const = 0;
+
+    /** Get the file size in bytes, or throw if it does not exist. */
+    std::size_t getSize(std::string path) const;
+
+    /** Write string data. */
+    void put(std::string path, const std::string& data) const;
+
+    /** @brief Resolve a possibly globbed path.
+     *
+     * See Arbiter::resolve for details.
+     */
+    std::vector<std::string> resolve(
+            std::string path,
+            bool verbose = false) const;
+
+protected:
+    /** @brief Resolve a wildcard path.
+     *
+     * This operation should return a non-recursive resolution of the files
+     * matching the given wildcard @p path (no directories).  With the exception
+     * of the filesystem Driver, results should be prefixed with
+     * `type() + "://"`.
+     *
+     * @note The default behavior is to throw ArbiterError, so derived classes
+     * may optionally override if they can perform this behavior.
+     *
+     * @param path A string ending with the character `*`, and with all
+     * type-specifying prefix information like `http://` or `s3://` stripped.
+     *
+     * @param verbose If true, this function may print out minimal information
+     * to indicate that progress is occurring.
+     */
+    virtual std::vector<std::string> glob(std::string path, bool verbose) const;
+
+    /**
+     * @param path Path with the type-specifying prefix information stripped.
+     * @param[out] data Empty vector in which to write resulting data.
+     */
+    virtual bool get(std::string path, std::vector<char>& data) const = 0;
+};
+
+typedef std::map<std::string, std::unique_ptr<Driver>> DriverMap;
+
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/driver.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/drivers/fs.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/driver.hpp>
+
+#ifndef ARBITER_EXTERNAL_JSON
+#include <arbiter/third/json/json.hpp>
+#endif
+
+#endif
+
+
+
+
+#ifdef ARBITER_EXTERNAL_JSON
+#include <json/json.h>
+#endif
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+
+class Arbiter;
+
+/**
+ * \addtogroup fs
+ * @{
+ */
+
+/** Filesystem utilities. */
+namespace fs
+{
+    /** @brief Returns true if created, false if already existed. */
+    bool mkdirp(std::string dir);
+
+    /** @brief Returns true if removed, otherwise false. */
+    bool remove(std::string filename);
+
+    /** @brief Performs tilde expansion to a fully-qualified path, if possible.
+     */
+    std::string expandTilde(std::string path);
+
+    /** @brief Get temporary path from environment. */
+    std::string getTempPath();
+
+    /** @brief A scoped local filehandle for a possibly remote path.
+     *
+     * This is an RAII style pseudo-filehandle.  It manages the scope of a
+     * local temporary version of a file, where that file may have been copied
+     * from a remote storage location.
+     *
+     * See Arbiter::getLocalHandle for details about construction.
+     */
+    class LocalHandle
+    {
+        friend class arbiter::Arbiter;
+
+    public:
+        /** @brief Deletes the local path if the data was copied from a remote
+         * source.
+         *
+         * This is a no-op if the path was already local and not copied.
+         */
+        ~LocalHandle();
+
+        /** @brief Get the path of the locally stored file.
+         *
+         * @return A local filesystem absolute path containing the data
+         * requested in Arbiter::getLocalHandle.
+         */
+        std::string localPath() const { return m_localPath; }
+
+        /** @brief Release the managed local path and return the path from
+         * LocalHandle::localPath.
+         *
+         * After this call, destruction of the LocalHandle will not erase the
+         * temporary file that may have been created.
+         */
+        std::string release()
+        {
+            m_erase = false;
+            return localPath();
+        }
+
+    private:
+        LocalHandle(std::string localPath, bool isRemote);
+
+        const std::string m_localPath;
+        bool m_erase;
+    };
+}
+/** @} */
+
+namespace drivers
+{
+
+/** @brief Local filesystem driver. */
+class Fs : public Driver
+{
+public:
+    static std::unique_ptr<Fs> create(const Json::Value& json);
+
+    virtual std::string type() const override { return "file"; }
+
+    virtual std::unique_ptr<std::size_t> tryGetSize(
+            std::string path) const override;
+
+    virtual void put(
+            std::string path,
+            const std::vector<char>& data) const override;
+
+    virtual std::vector<std::string> glob(
+            std::string path,
+            bool verbose) const override;
+
+    virtual bool isRemote() const override { return false; }
+
+protected:
+    virtual bool get(std::string path, std::vector<char>& data) const override;
+};
+
+} // namespace drivers
+
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/drivers/fs.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/drivers/http.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include <vector>
+#include <memory>
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/util/http.hpp>
+#include <arbiter/driver.hpp>
+#endif
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+namespace drivers
+{
+
+/** @brief HTTP driver.  Intended as both a standalone driver as well as a base
+ * for derived drivers build atop HTTP.
+ *
+ * Derivers should overload the HTTP-specific put/get methods that accept
+ * headers and query parameters rather than Driver::put and Driver::get.
+ *
+ * Internal methods for derivers are provided as protected methods.
+ */
+class Http : public Driver
+{
+public:
+    Http(http::Pool& pool);
+    static std::unique_ptr<Http> create(
+            http::Pool& pool,
+            const Json::Value& json);
+
+    // Inherited from Driver.
+    virtual std::string type() const override { return "http"; }
+
+    /** By default, performs a HEAD request and returns the contents of the
+     * Content-Length header.
+     */
+    virtual std::unique_ptr<std::size_t> tryGetSize(
+            std::string path) const override;
+
+    virtual void put(
+            std::string path,
+            const std::vector<char>& data) const final override
+    {
+        put(path, data, http::Headers(), http::Query());
+    }
+
+    /* HTTP-specific driver methods follow.  Since many drivers (S3, Dropbox,
+     * etc.) are built atop HTTP, we'll provide HTTP-specific methods for
+     * derived classes to use in addition to the generic PUT/GET combinations.
+     *
+     * Specifically, we'll add POST/HEAD calls, and allow headers and query
+     * parameters to be passed as well.
+     */
+
+    /** Perform an HTTP GET request. */
+    std::string get(
+            std::string path,
+            http::Headers headers,
+            http::Query query) const;
+
+    /** Perform an HTTP GET request. */
+    std::unique_ptr<std::string> tryGet(
+            std::string path,
+            http::Headers headers,
+            http::Query query) const;
+
+    /** Perform an HTTP GET request. */
+    std::vector<char> getBinary(
+            std::string path,
+            http::Headers headers,
+            http::Query query) const;
+
+    /** Perform an HTTP GET request. */
+    std::unique_ptr<std::vector<char>> tryGetBinary(
+            std::string path,
+            http::Headers headers,
+            http::Query query) const;
+
+    /** Perform an HTTP PUT request. */
+    void put(
+            std::string path,
+            const std::string& data,
+            http::Headers headers,
+            http::Query query) const;
+
+    /** HTTP-derived Drivers should override this version of PUT to allow for
+     * custom headers and query parameters.
+     */
+
+    /** Perform an HTTP PUT request. */
+    virtual void put(
+            std::string path,
+            const std::vector<char>& data,
+            http::Headers headers,
+            http::Query query) const;
+
+protected:
+    /** HTTP-derived Drivers should override this version of GET to allow for
+     * custom headers and query parameters.
+     */
+    virtual bool get(
+            std::string path,
+            std::vector<char>& data,
+            http::Headers headers,
+            http::Query query) const;
+
+    /* These operations are other HTTP-specific calls that derived drivers may
+     * need for their underlying API use.
+     */
+    http::Response internalGet(
+            std::string path,
+            http::Headers headers = http::Headers(),
+            http::Query query = http::Query()) const;
+
+    http::Response internalPut(
+            std::string path,
+            const std::vector<char>& data,
+            http::Headers headers = http::Headers(),
+            http::Query query = http::Query()) const;
+
+    http::Response internalHead(
+            std::string path,
+            http::Headers headers = http::Headers(),
+            http::Query query = http::Query()) const;
+
+    http::Response internalPost(
+            std::string path,
+            const std::vector<char>& data,
+            http::Headers headers = http::Headers(),
+            http::Query query = http::Query()) const;
+
+private:
+    virtual bool get(
+            std::string path,
+            std::vector<char>& data) const final override
+    {
+        return get(path, data, http::Headers(), http::Query());
+    }
+
+    http::Pool& m_pool;
+};
+
+} // namespace drivers
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/drivers/http.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/third/xml/rapidxml.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#ifndef RAPIDXML_HPP_INCLUDED
+#define RAPIDXML_HPP_INCLUDED
+
+/*
+========================================================================
+Copyright (c) 2006, 2007 Marcin Kalicinski
+
+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.
+========================================================================
+*/
+
+// Copyright (C) 2006, 2009 Marcin Kalicinski
+// Version 1.13
+// Revision $DateTime: 2009/05/13 01:46:17 $
+//! \file rapidxml.hpp This file contains rapidxml parser and DOM implementation
+
+// If standard library is disabled, user must provide implementations of required functions and typedefs
+#if !defined(RAPIDXML_NO_STDLIB)
+    #include <cstdlib>      // For std::size_t
+    #include <cassert>      // For assert
+    #include <new>          // For placement new
+#endif
+
+// On MSVC, disable "conditional expression is constant" warning (level 4).
+// This warning is almost impossible to avoid with certain types of templated code
+#ifdef _MSC_VER
+    #pragma warning(push)
+    #pragma warning(disable:4127)   // Conditional expression is constant
+#endif
+
+///////////////////////////////////////////////////////////////////////////
+// RAPIDXML_PARSE_ERROR
+
+#if defined(RAPIDXML_NO_EXCEPTIONS)
+
+#define RAPIDXML_PARSE_ERROR(what, where) { parse_error_handler(what, where); assert(0); }
+
+namespace rapidxml
+{
+    //! When exceptions are disabled by defining RAPIDXML_NO_EXCEPTIONS,
+    //! this function is called to notify user about the error.
+    //! It must be defined by the user.
+    //! <br><br>
+    //! This function cannot return. If it does, the results are undefined.
+    //! <br><br>
+    //! A very simple definition might look like that:
+    //! <pre>
+    //! void %rapidxml::%parse_error_handler(const char *what, void *where)
+    //! {
+    //!     std::cout << "Parse error: " << what << "\n";
+    //!     std::abort();
+    //! }
+    //! </pre>
+    //! \param what Human readable description of the error.
+    //! \param where Pointer to character data where error was detected.
+    void parse_error_handler(const char *what, void *where);
+}
+
+#else
+
+#include <exception>    // For std::exception
+
+#define RAPIDXML_PARSE_ERROR(what, where) throw parse_error(what, where)
+
+namespace rapidxml
+{
+
+    //! Parse error exception.
+    //! This exception is thrown by the parser when an error occurs.
+    //! Use what() function to get human-readable error message.
+    //! Use where() function to get a pointer to position within source text where error was detected.
+    //! <br><br>
+    //! If throwing exceptions by the parser is undesirable,
+    //! it can be disabled by defining RAPIDXML_NO_EXCEPTIONS macro before rapidxml.hpp is included.
+    //! This will cause the parser to call rapidxml::parse_error_handler() function instead of throwing an exception.
+    //! This function must be defined by the user.
+    //! <br><br>
+    //! This class derives from <code>std::exception</code> class.
+    class parse_error: public std::exception
+    {
+
+    public:
+
+        //! Constructs parse error
+        parse_error(const char *what, void *where)
+            : m_what(what)
+            , m_where(where)
+        {
+        }
+
+        //! Gets human readable description of error.
+        //! \return Pointer to null terminated description of the error.
+        virtual const char *what() const throw()
+        {
+            return m_what;
+        }
+
+        //! Gets pointer to character data where error happened.
+        //! Ch should be the same as char type of xml_document that produced the error.
+        //! \return Pointer to location within the parsed string where error occured.
+        template<class Ch>
+        Ch *where() const
+        {
+            return reinterpret_cast<Ch *>(m_where);
+        }
+
+    private:
+
+        const char *m_what;
+        void *m_where;
+
+    };
+}
+
+#endif
+
+///////////////////////////////////////////////////////////////////////////
+// Pool sizes
+
+#ifndef RAPIDXML_STATIC_POOL_SIZE
+    // Size of static memory block of memory_pool.
+    // Define RAPIDXML_STATIC_POOL_SIZE before including rapidxml.hpp if you want to override the default value.
+    // No dynamic memory allocations are performed by memory_pool until static memory is exhausted.
+    #define RAPIDXML_STATIC_POOL_SIZE (64 * 1024)
+#endif
+
+#ifndef RAPIDXML_DYNAMIC_POOL_SIZE
+    // Size of dynamic memory block of memory_pool.
+    // Define RAPIDXML_DYNAMIC_POOL_SIZE before including rapidxml.hpp if you want to override the default value.
+    // After the static block is exhausted, dynamic blocks with approximately this size are allocated by memory_pool.
+    #define RAPIDXML_DYNAMIC_POOL_SIZE (64 * 1024)
+#endif
+
+#ifndef RAPIDXML_ALIGNMENT
+    // Memory allocation alignment.
+    // Define RAPIDXML_ALIGNMENT before including rapidxml.hpp if you want to override the default value, which is the size of pointer.
+    // All memory allocations for nodes, attributes and strings will be aligned to this value.
+    // This must be a power of 2 and at least 1, otherwise memory_pool will not work.
+    #define RAPIDXML_ALIGNMENT sizeof(void *)
+#endif
+
+namespace rapidxml
+{
+    // Forward declarations
+    template<class Ch> class xml_node;
+    template<class Ch> class xml_attribute;
+    template<class Ch> class xml_document;
+
+    //! Enumeration listing all node types produced by the parser.
+    //! Use xml_node::type() function to query node type.
+    enum node_type
+    {
+        node_document,      //!< A document node. Name and value are empty.
+        node_element,       //!< An element node. Name contains element name. Value contains text of first data node.
+        node_data,          //!< A data node. Name is empty. Value contains data text.
+        node_cdata,         //!< A CDATA node. Name is empty. Value contains data text.
+        node_comment,       //!< A comment node. Name is empty. Value contains comment text.
+        node_declaration,   //!< A declaration node. Name and value are empty. Declaration parameters (version, encoding and standalone) are in node attributes.
+        node_doctype,       //!< A DOCTYPE node. Name is empty. Value contains DOCTYPE text.
+        node_pi             //!< A PI node. Name contains target. Value contains instructions.
+    };
+
+    ///////////////////////////////////////////////////////////////////////
+    // Parsing flags
+
+    //! Parse flag instructing the parser to not create data nodes.
+    //! Text of first data node will still be placed in value of parent element, unless rapidxml::parse_no_element_values flag is also specified.
+    //! Can be combined with other flags by use of | operator.
+    //! <br><br>
+    //! See xml_document::parse() function.
+    const int parse_no_data_nodes = 0x1;
+
+    //! Parse flag instructing the parser to not use text of first data node as a value of parent element.
+    //! Can be combined with other flags by use of | operator.
+    //! Note that child data nodes of element node take precendence over its value when printing.
+    //! That is, if element has one or more child data nodes <em>and</em> a value, the value will be ignored.
+    //! Use rapidxml::parse_no_data_nodes flag to prevent creation of data nodes if you want to manipulate data using values of elements.
+    //! <br><br>
+    //! See xml_document::parse() function.
+    const int parse_no_element_values = 0x2;
+
+    //! Parse flag instructing the parser to not place zero terminators after strings in the source text.
+    //! By default zero terminators are placed, modifying source text.
+    //! Can be combined with other flags by use of | operator.
+    //! <br><br>
+    //! See xml_document::parse() function.
+    const int parse_no_string_terminators = 0x4;
+
+    //! Parse flag instructing the parser to not translate entities in the source text.
+    //! By default entities are translated, modifying source text.
+    //! Can be combined with other flags by use of | operator.
+    //! <br><br>
+    //! See xml_document::parse() function.
+    const int parse_no_entity_translation = 0x8;
+
+    //! Parse flag instructing the parser to disable UTF-8 handling and assume plain 8 bit characters.
+    //! By default, UTF-8 handling is enabled.
+    //! Can be combined with other flags by use of | operator.
+    //! <br><br>
+    //! See xml_document::parse() function.
+    const int parse_no_utf8 = 0x10;
+
+    //! Parse flag instructing the parser to create XML declaration node.
+    //! By default, declaration node is not created.
+    //! Can be combined with other flags by use of | operator.
+    //! <br><br>
+    //! See xml_document::parse() function.
+    const int parse_declaration_node = 0x20;
+
+    //! Parse flag instructing the parser to create comments nodes.
+    //! By default, comment nodes are not created.
+    //! Can be combined with other flags by use of | operator.
+    //! <br><br>
+    //! See xml_document::parse() function.
+    const int parse_comment_nodes = 0x40;
+
+    //! Parse flag instructing the parser to create DOCTYPE node.
+    //! By default, doctype node is not created.
+    //! Although W3C specification allows at most one DOCTYPE node, RapidXml will silently accept documents with more than one.
+    //! Can be combined with other flags by use of | operator.
+    //! <br><br>
+    //! See xml_document::parse() function.
+    const int parse_doctype_node = 0x80;
+
+    //! Parse flag instructing the parser to create PI nodes.
+    //! By default, PI nodes are not created.
+    //! Can be combined with other flags by use of | operator.
+    //! <br><br>
+    //! See xml_document::parse() function.
+    const int parse_pi_nodes = 0x100;
+
+    //! Parse flag instructing the parser to validate closing tag names.
+    //! If not set, name inside closing tag is irrelevant to the parser.
+    //! By default, closing tags are not validated.
+    //! Can be combined with other flags by use of | operator.
+    //! <br><br>
+    //! See xml_document::parse() function.
+    const int parse_validate_closing_tags = 0x200;
+
+    //! Parse flag instructing the parser to trim all leading and trailing whitespace of data nodes.
+    //! By default, whitespace is not trimmed.
+    //! This flag does not cause the parser to modify source text.
+    //! Can be combined with other flags by use of | operator.
+    //! <br><br>
+    //! See xml_document::parse() function.
+    const int parse_trim_whitespace = 0x400;
+
+    //! Parse flag instructing the parser to condense all whitespace runs of data nodes to a single space character.
+    //! Trimming of leading and trailing whitespace of data is controlled by rapidxml::parse_trim_whitespace flag.
+    //! By default, whitespace is not normalized.
+    //! If this flag is specified, source text will be modified.
+    //! Can be combined with other flags by use of | operator.
+    //! <br><br>
+    //! See xml_document::parse() function.
+    const int parse_normalize_whitespace = 0x800;
+
+    // Compound flags
+
+    //! Parse flags which represent default behaviour of the parser.
+    //! This is always equal to 0, so that all other flags can be simply ored together.
+    //! Normally there is no need to inconveniently disable flags by anding with their negated (~) values.
+    //! This also means that meaning of each flag is a <i>negation</i> of the default setting.
+    //! For example, if flag name is rapidxml::parse_no_utf8, it means that utf-8 is <i>enabled</i> by default,
+    //! and using the flag will disable it.
+    //! <br><br>
+    //! See xml_document::parse() function.
+    const int parse_default = 0;
+
+    //! A combination of parse flags that forbids any modifications of the source text.
+    //! This also results in faster parsing. However, note that the following will occur:
+    //! <ul>
+    //! <li>names and values of nodes will not be zero terminated, you have to use xml_base::name_size() and xml_base::value_size() functions to determine where name and value ends</li>
+    //! <li>entities will not be translated</li>
+    //! <li>whitespace will not be normalized</li>
+    //! </ul>
+    //! See xml_document::parse() function.
+    const int parse_non_destructive = parse_no_string_terminators | parse_no_entity_translation;
+
+    //! A combination of parse flags resulting in fastest possible parsing, without sacrificing important data.
+    //! <br><br>
+    //! See xml_document::parse() function.
+    const int parse_fastest = parse_non_destructive | parse_no_data_nodes;
+
+    //! A combination of parse flags resulting in largest amount of data being extracted.
+    //! This usually results in slowest parsing.
+    //! <br><br>
+    //! See xml_document::parse() function.
+    const int parse_full = parse_declaration_node | parse_comment_nodes | parse_doctype_node | parse_pi_nodes | parse_validate_closing_tags;
+
+    ///////////////////////////////////////////////////////////////////////
+    // Internals
+
+    //! \cond internal
+    namespace internal
+    {
+
+        // Struct that contains lookup tables for the parser
+        // It must be a template to allow correct linking (because it has static data members, which are defined in a header file).
+        template<int Dummy>
+        struct lookup_tables
+        {
+            static const unsigned char lookup_whitespace[256];              // Whitespace table
+            static const unsigned char lookup_node_name[256];               // Node name table
+            static const unsigned char lookup_text[256];                    // Text table
+            static const unsigned char lookup_text_pure_no_ws[256];         // Text table
+            static const unsigned char lookup_text_pure_with_ws[256];       // Text table
+            static const unsigned char lookup_attribute_name[256];          // Attribute name table
+            static const unsigned char lookup_attribute_data_1[256];        // Attribute data table with single quote
+            static const unsigned char lookup_attribute_data_1_pure[256];   // Attribute data table with single quote
+            static const unsigned char lookup_attribute_data_2[256];        // Attribute data table with double quotes
+            static const unsigned char lookup_attribute_data_2_pure[256];   // Attribute data table with double quotes
+            static const unsigned char lookup_digits[256];                  // Digits
+            static const unsigned char lookup_upcase[256];                  // To uppercase conversion table for ASCII characters
+        };
+
+        // Find length of the string
+        template<class Ch>
+        inline std::size_t measure(const Ch *p)
+        {
+            const Ch *tmp = p;
+            while (*tmp)
+                ++tmp;
+            return tmp - p;
+        }
+
+        // Compare strings for equality
+        template<class Ch>
+        inline bool compare(const Ch *p1, std::size_t size1, const Ch *p2, std::size_t size2, bool case_sensitive)
+        {
+            if (size1 != size2)
+                return false;
+            if (case_sensitive)
+            {
+                for (const Ch *end = p1 + size1; p1 < end; ++p1, ++p2)
+                    if (*p1 != *p2)
+                        return false;
+            }
+            else
+            {
+                for (const Ch *end = p1 + size1; p1 < end; ++p1, ++p2)
+                    if (lookup_tables<0>::lookup_upcase[static_cast<unsigned char>(*p1)] != lookup_tables<0>::lookup_upcase[static_cast<unsigned char>(*p2)])
+                        return false;
+            }
+            return true;
+        }
+    }
+    //! \endcond
+
+    ///////////////////////////////////////////////////////////////////////
+    // Memory pool
+
+    //! This class is used by the parser to create new nodes and attributes, without overheads of dynamic memory allocation.
+    //! In most cases, you will not need to use this class directly.
+    //! However, if you need to create nodes manually or modify names/values of nodes,
+    //! you are encouraged to use memory_pool of relevant xml_document to allocate the memory.
+    //! Not only is this faster than allocating them by using <code>new</code> operator,
+    //! but also their lifetime will be tied to the lifetime of document,
+    //! possibly simplyfing memory management.
+    //! <br><br>
+    //! Call allocate_node() or allocate_attribute() functions to obtain new nodes or attributes from the pool.
+    //! You can also call allocate_string() function to allocate strings.
+    //! Such strings can then be used as names or values of nodes without worrying about their lifetime.
+    //! Note that there is no <code>free()</code> function -- all allocations are freed at once when clear() function is called,
+    //! or when the pool is destroyed.
+    //! <br><br>
+    //! It is also possible to create a standalone memory_pool, and use it
+    //! to allocate nodes, whose lifetime will not be tied to any document.
+    //! <br><br>
+    //! Pool maintains <code>RAPIDXML_STATIC_POOL_SIZE</code> bytes of statically allocated memory.
+    //! Until static memory is exhausted, no dynamic memory allocations are done.
+    //! When static memory is exhausted, pool allocates additional blocks of memory of size <code>RAPIDXML_DYNAMIC_POOL_SIZE</code> each,
+    //! by using global <code>new[]</code> and <code>delete[]</code> operators.
+    //! This behaviour can be changed by setting custom allocation routines.
+    //! Use set_allocator() function to set them.
+    //! <br><br>
+    //! Allocations for nodes, attributes and strings are aligned at <code>RAPIDXML_ALIGNMENT</code> bytes.
+    //! This value defaults to the size of pointer on target architecture.
+    //! <br><br>
+    //! To obtain absolutely top performance from the parser,
+    //! it is important that all nodes are allocated from a single, contiguous block of memory.
+    //! Otherwise, cache misses when jumping between two (or more) disjoint blocks of memory can slow down parsing quite considerably.
+    //! If required, you can tweak <code>RAPIDXML_STATIC_POOL_SIZE</code>, <code>RAPIDXML_DYNAMIC_POOL_SIZE</code> and <code>RAPIDXML_ALIGNMENT</code>
+    //! to obtain best wasted memory to performance compromise.
+    //! To do it, define their values before rapidxml.hpp file is included.
+    //! \param Ch Character type of created nodes.
+    template<class Ch = char>
+    class memory_pool
+    {
+
+    public:
+
+        //! \cond internal
+        typedef void *(alloc_func)(std::size_t);       // Type of user-defined function used to allocate memory
+        typedef void (free_func)(void *);              // Type of user-defined function used to free memory
+        //! \endcond
+
+        //! Constructs empty pool with default allocator functions.
+        memory_pool()
+            : m_alloc_func(0)
+            , m_free_func(0)
+        {
+            init();
+        }
+
+        //! Destroys pool and frees all the memory.
+        //! This causes memory occupied by nodes allocated by the pool to be freed.
+        //! Nodes allocated from the pool are no longer valid.
+        ~memory_pool()
+        {
+            clear();
+        }
+
+        //! Allocates a new node from the pool, and optionally assigns name and value to it.
+        //! If the allocation request cannot be accomodated, this function will throw <code>std::bad_alloc</code>.
+        //! If exceptions are disabled by defining RAPIDXML_NO_EXCEPTIONS, this function
+        //! will call rapidxml::parse_error_handler() function.
+        //! \param type Type of node to create.
+        //! \param name Name to assign to the node, or 0 to assign no name.
+        //! \param value Value to assign to the node, or 0 to assign no value.
+        //! \param name_size Size of name to assign, or 0 to automatically calculate size from name string.
+        //! \param value_size Size of value to assign, or 0 to automatically calculate size from value string.
+        //! \return Pointer to allocated node. This pointer will never be NULL.
+        xml_node<Ch> *allocate_node(node_type type,
+                                    const Ch *name = 0, const Ch *value = 0,
+                                    std::size_t name_size = 0, std::size_t value_size = 0)
+        {
+            void *memory = allocate_aligned(sizeof(xml_node<Ch>));
+            xml_node<Ch> *node = new(memory) xml_node<Ch>(type);
+            if (name)
+            {
+                if (name_size > 0)
+                    node->name(name, name_size);
+                else
+                    node->name(name);
+            }
+            if (value)
+            {
+                if (value_size > 0)
+                    node->value(value, value_size);
+                else
+                    node->value(value);
+            }
+            return node;
+        }
+
+        //! Allocates a new attribute from the pool, and optionally assigns name and value to it.
+        //! If the allocation request cannot be accomodated, this function will throw <code>std::bad_alloc</code>.
+        //! If exceptions are disabled by defining RAPIDXML_NO_EXCEPTIONS, this function
+        //! will call rapidxml::parse_error_handler() function.
+        //! \param name Name to assign to the attribute, or 0 to assign no name.
+        //! \param value Value to assign to the attribute, or 0 to assign no value.
+        //! \param name_size Size of name to assign, or 0 to automatically calculate size from name string.
+        //! \param value_size Size of value to assign, or 0 to automatically calculate size from value string.
+        //! \return Pointer to allocated attribute. This pointer will never be NULL.
+        xml_attribute<Ch> *allocate_attribute(const Ch *name = 0, const Ch *value = 0,
+                                              std::size_t name_size = 0, std::size_t value_size = 0)
+        {
+            void *memory = allocate_aligned(sizeof(xml_attribute<Ch>));
+            xml_attribute<Ch> *attribute = new(memory) xml_attribute<Ch>;
+            if (name)
+            {
+                if (name_size > 0)
+                    attribute->name(name, name_size);
+                else
+                    attribute->name(name);
+            }
+            if (value)
+            {
+                if (value_size > 0)
+                    attribute->value(value, value_size);
+                else
+                    attribute->value(value);
+            }
+            return attribute;
+        }
+
+        //! Allocates a char array of given size from the pool, and optionally copies a given string to it.
+        //! If the allocation request cannot be accomodated, this function will throw <code>std::bad_alloc</code>.
+        //! If exceptions are disabled by defining RAPIDXML_NO_EXCEPTIONS, this function
+        //! will call rapidxml::parse_error_handler() function.
+        //! \param source String to initialize the allocated memory with, or 0 to not initialize it.
+        //! \param size Number of characters to allocate, or zero to calculate it automatically from source string length; if size is 0, source string must be specified and null terminated.
+        //! \return Pointer to allocated char array. This pointer will never be NULL.
+        Ch *allocate_string(const Ch *source = 0, std::size_t size = 0)
+        {
+            assert(source || size);     // Either source or size (or both) must be specified
+            if (size == 0)
+                size = internal::measure(source) + 1;
+            Ch *result = static_cast<Ch *>(allocate_aligned(size * sizeof(Ch)));
+            if (source)
+                for (std::size_t i = 0; i < size; ++i)
+                    result[i] = source[i];
+            return result;
+        }
+
+        //! Clones an xml_node and its hierarchy of child nodes and attributes.
+        //! Nodes and attributes are allocated from this memory pool.
+        //! Names and values are not cloned, they are shared between the clone and the source.
+        //! Result node can be optionally specified as a second parameter,
+        //! in which case its contents will be replaced with cloned source node.
+        //! This is useful when you want to clone entire document.
+        //! \param source Node to clone.
+        //! \param result Node to put results in, or 0 to automatically allocate result node
+        //! \return Pointer to cloned node. This pointer will never be NULL.
+        xml_node<Ch> *clone_node(const xml_node<Ch> *source, xml_node<Ch> *result = 0)
+        {
+            // Prepare result node
+            if (result)
+            {
+                result->remove_all_attributes();
+                result->remove_all_nodes();
+                result->type(source->type());
+            }
+            else
+                result = allocate_node(source->type());
+
+            // Clone name and value
+            result->name(source->name(), source->name_size());
+            result->value(source->value(), source->value_size());
+
+            // Clone child nodes and attributes
+            for (xml_node<Ch> *child = source->first_node(); child; child = child->next_sibling())
+                result->append_node(clone_node(child));
+            for (xml_attribute<Ch> *attr = source->first_attribute(); attr; attr = attr->next_attribute())
+                result->append_attribute(allocate_attribute(attr->name(), attr->value(), attr->name_size(), attr->value_size()));
+
+            return result;
+        }
+
+        //! Clears the pool.
+        //! This causes memory occupied by nodes allocated by the pool to be freed.
+        //! Any nodes or strings allocated from the pool will no longer be valid.
+        void clear()
+        {
+            while (m_begin != m_static_memory)
+            {
+                char *previous_begin = reinterpret_cast<header *>(align(m_begin))->previous_begin;
+                if (m_free_func)
+                    m_free_func(m_begin);
+                else
+                    delete[] m_begin;
+                m_begin = previous_begin;
+            }
+            init();
+        }
+
+        //! Sets or resets the user-defined memory allocation functions for the pool.
+        //! This can only be called when no memory is allocated from the pool yet, otherwise results are undefined.
+        //! Allocation function must not return invalid pointer on failure. It should either throw,
+        //! stop the program, or use <code>longjmp()</code> function to pass control to other place of program.
+        //! If it returns invalid pointer, results are undefined.
+        //! <br><br>
+        //! User defined allocation functions must have the following forms:
+        //! <br><code>
+        //! <br>void *allocate(std::size_t size);
+        //! <br>void free(void *pointer);
+        //! </code><br>
+        //! \param af Allocation function, or 0 to restore default function
+        //! \param ff Free function, or 0 to restore default function
+        void set_allocator(alloc_func *af, free_func *ff)
+        {
+            assert(m_begin == m_static_memory && m_ptr == align(m_begin));    // Verify that no memory is allocated yet
+            m_alloc_func = af;
+            m_free_func = ff;
+        }
+
+    private:
+
+        struct header
+        {
+            char *previous_begin;
+        };
+
+        void init()
+        {
+            m_begin = m_static_memory;
+            m_ptr = align(m_begin);
+            m_end = m_static_memory + sizeof(m_static_memory);
+        }
+
+        char *align(char *ptr)
+        {
+            std::size_t alignment = ((RAPIDXML_ALIGNMENT - (std::size_t(ptr) & (RAPIDXML_ALIGNMENT - 1))) & (RAPIDXML_ALIGNMENT - 1));
+            return ptr + alignment;
+        }
+
+        char *allocate_raw(std::size_t size)
+        {
+            // Allocate
+            void *memory;
+            if (m_alloc_func)   // Allocate memory using either user-specified allocation function or global operator new[]
+            {
+                memory = m_alloc_func(size);
+                assert(memory); // Allocator is not allowed to return 0, on failure it must either throw, stop the program or use longjmp
+            }
+            else
+            {
+                memory = new char[size];
+#ifdef RAPIDXML_NO_EXCEPTIONS
+                if (!memory)            // If exceptions are disabled, verify memory allocation, because new will not be able to throw bad_alloc
+                    RAPIDXML_PARSE_ERROR("out of memory", 0);
+#endif
+            }
+            return static_cast<char *>(memory);
+        }
+
+        void *allocate_aligned(std::size_t size)
+        {
+            // Calculate aligned pointer
+            char *result = align(m_ptr);
+
+            // If not enough memory left in current pool, allocate a new pool
+            if (result + size > m_end)
+            {
+                // Calculate required pool size (may be bigger than RAPIDXML_DYNAMIC_POOL_SIZE)
+                std::size_t pool_size = RAPIDXML_DYNAMIC_POOL_SIZE;
+                if (pool_size < size)
+                    pool_size = size;
+
+                // Allocate
+                std::size_t alloc_size = sizeof(header) + (2 * RAPIDXML_ALIGNMENT - 2) + pool_size;     // 2 alignments required in worst case: one for header, one for actual allocation
+                char *raw_memory = allocate_raw(alloc_size);
+
+                // Setup new pool in allocated memory
+                char *pool = align(raw_memory);
+                header *new_header = reinterpret_cast<header *>(pool);
+                new_header->previous_begin = m_begin;
+                m_begin = raw_memory;
+                m_ptr = pool + sizeof(header);
+                m_end = raw_memory + alloc_size;
+
+                // Calculate aligned pointer again using new pool
+                result = align(m_ptr);
+            }
+
+            // Update pool and return aligned pointer
+            m_ptr = result + size;
+            return result;
+        }
+
+        char *m_begin;                                      // Start of raw memory making up current pool
+        char *m_ptr;                                        // First free byte in current pool
+        char *m_end;                                        // One past last available byte in current pool
+        char m_static_memory[RAPIDXML_STATIC_POOL_SIZE];    // Static raw memory
+        alloc_func *m_alloc_func;                           // Allocator function, or 0 if default is to be used
+        free_func *m_free_func;                             // Free function, or 0 if default is to be used
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+    // XML base
+
+    //! Base class for xml_node and xml_attribute implementing common functions:
+    //! name(), name_size(), value(), value_size() and parent().
+    //! \param Ch Character type to use
+    template<class Ch = char>
+    class xml_base
+    {
+
+    public:
+
+        ///////////////////////////////////////////////////////////////////////////
+        // Construction & destruction
+
+        // Construct a base with empty name, value and parent
+        xml_base()
+            : m_name(0)
+            , m_value(0)
+            , m_parent(0)
+        {
+        }
+
+        ///////////////////////////////////////////////////////////////////////////
+        // Node data access
+
+        //! Gets name of the node.
+        //! Interpretation of name depends on type of node.
+        //! Note that name will not be zero-terminated if rapidxml::parse_no_string_terminators option was selected during parse.
+        //! <br><br>
+        //! Use name_size() function to determine length of the name.
+        //! \return Name of node, or empty string if node has no name.
+        Ch *name() const
+        {
+            return m_name ? m_name : nullstr();
+        }
+
+        //! Gets size of node name, not including terminator character.
+        //! This function works correctly irrespective of whether name is or is not zero terminated.
+        //! \return Size of node name, in characters.
+        std::size_t name_size() const
+        {
+            return m_name ? m_name_size : 0;
+        }
+
+        //! Gets value of node.
+        //! Interpretation of value depends on type of node.
+        //! Note that value will not be zero-terminated if rapidxml::parse_no_string_terminators option was selected during parse.
+        //! <br><br>
+        //! Use value_size() function to determine length of the value.
+        //! \return Value of node, or empty string if node has no value.
+        Ch *value() const
+        {
+            return m_value ? m_value : nullstr();
+        }
+
+        //! Gets size of node value, not including terminator character.
+        //! This function works correctly irrespective of whether value is or is not zero terminated.
+        //! \return Size of node value, in characters.
+        std::size_t value_size() const
+        {
+            return m_value ? m_value_size : 0;
+        }
+
+        ///////////////////////////////////////////////////////////////////////////
+        // Node modification
+
+        //! Sets name of node to a non zero-terminated string.
+        //! See \ref ownership_of_strings.
+        //! <br><br>
+        //! Note that node does not own its name or value, it only stores a pointer to it.
+        //! It will not delete or otherwise free the pointer on destruction.
+        //! It is reponsibility of the user to properly manage lifetime of the string.
+        //! The easiest way to achieve it is to use memory_pool of the document to allocate the string -
+        //! on destruction of the document the string will be automatically freed.
+        //! <br><br>
+        //! Size of name must be specified separately, because name does not have to be zero terminated.
+        //! Use name(const Ch *) function to have the length automatically calculated (string must be zero terminated).
+        //! \param name Name of node to set. Does not have to be zero terminated.
+        //! \param size Size of name, in characters. This does not include zero terminator, if one is present.
+        void name(const Ch *name, std::size_t size)
+        {
+            m_name = const_cast<Ch *>(name);
+            m_name_size = size;
+        }
+
+        //! Sets name of node to a zero-terminated string.
+        //! See also \ref ownership_of_strings and xml_node::name(const Ch *, std::size_t).
+        //! \param name Name of node to set. Must be zero terminated.
+        void name(const Ch *name)
+        {
+            this->name(name, internal::measure(name));
+        }
+
+        //! Sets value of node to a non zero-terminated string.
+        //! See \ref ownership_of_strings.
+        //! <br><br>
+        //! Note that node does not own its name or value, it only stores a pointer to it.
+        //! It will not delete or otherwise free the pointer on destruction.
+        //! It is reponsibility of the user to properly manage lifetime of the string.
+        //! The easiest way to achieve it is to use memory_pool of the document to allocate the string -
+        //! on destruction of the document the string will be automatically freed.
+        //! <br><br>
+        //! Size of value must be specified separately, because it does not have to be zero terminated.
+        //! Use value(const Ch *) function to have the length automatically calculated (string must be zero terminated).
+        //! <br><br>
+        //! If an element has a child node of type node_data, it will take precedence over element value when printing.
+        //! If you want to manipulate data of elements using values, use parser flag rapidxml::parse_no_data_nodes to prevent creation of data nodes by the parser.
+        //! \param value value of node to set. Does not have to be zero terminated.
+        //! \param size Size of value, in characters. This does not include zero terminator, if one is present.
+        void value(const Ch *value, std::size_t size)
+        {
+            m_value = const_cast<Ch *>(value);
+            m_value_size = size;
+        }
+
+        //! Sets value of node to a zero-terminated string.
+        //! See also \ref ownership_of_strings and xml_node::value(const Ch *, std::size_t).
+        //! \param value Vame of node to set. Must be zero terminated.
+        void value(const Ch *value)
+        {
+            this->value(value, internal::measure(value));
+        }
+
+        ///////////////////////////////////////////////////////////////////////////
+        // Related nodes access
+
+        //! Gets node parent.
+        //! \return Pointer to parent node, or 0 if there is no parent.
+        xml_node<Ch> *parent() const
+        {
+            return m_parent;
+        }
+
+    protected:
+
+        // Return empty string
+        static Ch *nullstr()
+        {
+            static Ch zero = Ch('\0');
+            return &zero;
+        }
+
+        Ch *m_name;                         // Name of node, or 0 if no name
+        Ch *m_value;                        // Value of node, or 0 if no value
+        std::size_t m_name_size;            // Length of node name, or undefined of no name
+        std::size_t m_value_size;           // Length of node value, or undefined if no value
+        xml_node<Ch> *m_parent;             // Pointer to parent node, or 0 if none
+
+    };
+
+    //! Class representing attribute node of XML document.
+    //! Each attribute has name and value strings, which are available through name() and value() functions (inherited from xml_base).
+    //! Note that after parse, both name and value of attribute will point to interior of source text used for parsing.
+    //! Thus, this text must persist in memory for the lifetime of attribute.
+    //! \param Ch Character type to use.
+    template<class Ch = char>
+    class xml_attribute: public xml_base<Ch>
+    {
+
+        friend class xml_node<Ch>;
+
+    public:
+
+        ///////////////////////////////////////////////////////////////////////////
+        // Construction & destruction
+
+        //! Constructs an empty attribute with the specified type.
+        //! Consider using memory_pool of appropriate xml_document if allocating attributes manually.
+        xml_attribute()
+        {
+        }
+
+        ///////////////////////////////////////////////////////////////////////////
+        // Related nodes access
+
+        //! Gets document of which attribute is a child.
+        //! \return Pointer to document that contains this attribute, or 0 if there is no parent document.
+        xml_document<Ch> *document() const
+        {
+            if (xml_node<Ch> *node = this->parent())
+            {
+                while (node->parent())
+                    node = node->parent();
+                return node->type() == node_document ? static_cast<xml_document<Ch> *>(node) : 0;
+            }
+            else
+                return 0;
+        }
+
+        //! Gets previous attribute, optionally matching attribute name.
+        //! \param name Name of attribute to find, or 0 to return previous attribute regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
+        //! \param name_size Size of name, in characters, or 0 to have size calculated automatically from string
+        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
+        //! \return Pointer to found attribute, or 0 if not found.
+        xml_attribute<Ch> *previous_attribute(const Ch *name = 0, std::size_t name_size = 0, bool case_sensitive = true) const
+        {
+            if (name)
+            {
+                if (name_size == 0)
+                    name_size = internal::measure(name);
+                for (xml_attribute<Ch> *attribute = m_prev_attribute; attribute; attribute = attribute->m_prev_attribute)
+                    if (internal::compare(attribute->name(), attribute->name_size(), name, name_size, case_sensitive))
+                        return attribute;
+                return 0;
+            }
+            else
+                return this->m_parent ? m_prev_attribute : 0;
+        }
+
+        //! Gets next attribute, optionally matching attribute name.
+        //! \param name Name of attribute to find, or 0 to return next attribute regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
+        //! \param name_size Size of name, in characters, or 0 to have size calculated automatically from string
+        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
+        //! \return Pointer to found attribute, or 0 if not found.
+        xml_attribute<Ch> *next_attribute(const Ch *name = 0, std::size_t name_size = 0, bool case_sensitive = true) const
+        {
+            if (name)
+            {
+                if (name_size == 0)
+                    name_size = internal::measure(name);
+                for (xml_attribute<Ch> *attribute = m_next_attribute; attribute; attribute = attribute->m_next_attribute)
+                    if (internal::compare(attribute->name(), attribute->name_size(), name, name_size, case_sensitive))
+                        return attribute;
+                return 0;
+            }
+            else
+                return this->m_parent ? m_next_attribute : 0;
+        }
+
+    private:
+
+        xml_attribute<Ch> *m_prev_attribute;        // Pointer to previous sibling of attribute, or 0 if none; only valid if parent is non-zero
+        xml_attribute<Ch> *m_next_attribute;        // Pointer to next sibling of attribute, or 0 if none; only valid if parent is non-zero
+
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+    // XML node
+
+    //! Class representing a node of XML document.
+    //! Each node may have associated name and value strings, which are available through name() and value() functions.
+    //! Interpretation of name and value depends on type of the node.
+    //! Type of node can be determined by using type() function.
+    //! <br><br>
+    //! Note that after parse, both name and value of node, if any, will point interior of source text used for parsing.
+    //! Thus, this text must persist in the memory for the lifetime of node.
+    //! \param Ch Character type to use.
+    template<class Ch = char>
+    class xml_node: public xml_base<Ch>
+    {
+
+    public:
+
+        ///////////////////////////////////////////////////////////////////////////
+        // Construction & destruction
+
+        //! Constructs an empty node with the specified type.
+        //! Consider using memory_pool of appropriate document to allocate nodes manually.
+        //! \param type Type of node to construct.
+        xml_node(node_type type)
+            : m_type(type)
+            , m_first_node(0)
+            , m_first_attribute(0)
+        {
+        }
+
+        ///////////////////////////////////////////////////////////////////////////
+        // Node data access
+
+        //! Gets type of node.
+        //! \return Type of node.
+        node_type type() const
+        {
+            return m_type;
+        }
+
+        ///////////////////////////////////////////////////////////////////////////
+        // Related nodes access
+
+        //! Gets document of which node is a child.
+        //! \return Pointer to document that contains this node, or 0 if there is no parent document.
+        xml_document<Ch> *document() const
+        {
+            xml_node<Ch> *node = const_cast<xml_node<Ch> *>(this);
+            while (node->parent())
+                node = node->parent();
+            return node->type() == node_document ? static_cast<xml_document<Ch> *>(node) : 0;
+        }
+
+        //! Gets first child node, optionally matching node name.
+        //! \param name Name of child to find, or 0 to return first child regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
+        //! \param name_size Size of name, in characters, or 0 to have size calculated automatically from string
+        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
+        //! \return Pointer to found child, or 0 if not found.
+        xml_node<Ch> *first_node(const Ch *name = 0, std::size_t name_size = 0, bool case_sensitive = true) const
+        {
+            if (name)
+            {
+                if (name_size == 0)
+                    name_size = internal::measure(name);
+                for (xml_node<Ch> *child = m_first_node; child; child = child->next_sibling())
+                    if (internal::compare(child->name(), child->name_size(), name, name_size, case_sensitive))
+                        return child;
+                return 0;
+            }
+            else
+                return m_first_node;
+        }
+
+        //! Gets last child node, optionally matching node name.
+        //! Behaviour is undefined if node has no children.
+        //! Use first_node() to test if node has children.
+        //! \param name Name of child to find, or 0 to return last child regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
+        //! \param name_size Size of name, in characters, or 0 to have size calculated automatically from string
+        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
+        //! \return Pointer to found child, or 0 if not found.
+        xml_node<Ch> *last_node(const Ch *name = 0, std::size_t name_size = 0, bool case_sensitive = true) const
+        {
+            assert(m_first_node);  // Cannot query for last child if node has no children
+            if (name)
+            {
+                if (name_size == 0)
+                    name_size = internal::measure(name);
+                for (xml_node<Ch> *child = m_last_node; child; child = child->previous_sibling())
+                    if (internal::compare(child->name(), child->name_size(), name, name_size, case_sensitive))
+                        return child;
+                return 0;
+            }
+            else
+                return m_last_node;
+        }
+
+        //! Gets previous sibling node, optionally matching node name.
+        //! Behaviour is undefined if node has no parent.
+        //! Use parent() to test if node has a parent.
+        //! \param name Name of sibling to find, or 0 to return previous sibling regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
+        //! \param name_size Size of name, in characters, or 0 to have size calculated automatically from string
+        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
+        //! \return Pointer to found sibling, or 0 if not found.
+        xml_node<Ch> *previous_sibling(const Ch *name = 0, std::size_t name_size = 0, bool case_sensitive = true) const
+        {
+            assert(this->m_parent);     // Cannot query for siblings if node has no parent
+            if (name)
+            {
+                if (name_size == 0)
+                    name_size = internal::measure(name);
+                for (xml_node<Ch> *sibling = m_prev_sibling; sibling; sibling = sibling->m_prev_sibling)
+                    if (internal::compare(sibling->name(), sibling->name_size(), name, name_size, case_sensitive))
+                        return sibling;
+                return 0;
+            }
+            else
+                return m_prev_sibling;
+        }
+
+        //! Gets next sibling node, optionally matching node name.
+        //! Behaviour is undefined if node has no parent.
+        //! Use parent() to test if node has a parent.
+        //! \param name Name of sibling to find, or 0 to return next sibling regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
+        //! \param name_size Size of name, in characters, or 0 to have size calculated automatically from string
+        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
+        //! \return Pointer to found sibling, or 0 if not found.
+        xml_node<Ch> *next_sibling(const Ch *name = 0, std::size_t name_size = 0, bool case_sensitive = true) const
+        {
+            assert(this->m_parent);     // Cannot query for siblings if node has no parent
+            if (name)
+            {
+                if (name_size == 0)
+                    name_size = internal::measure(name);
+                for (xml_node<Ch> *sibling = m_next_sibling; sibling; sibling = sibling->m_next_sibling)
+                    if (internal::compare(sibling->name(), sibling->name_size(), name, name_size, case_sensitive))
+                        return sibling;
+                return 0;
+            }
+            else
+                return m_next_sibling;
+        }
+
+        //! Gets first attribute of node, optionally matching attribute name.
+        //! \param name Name of attribute to find, or 0 to return first attribute regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
+        //! \param name_size Size of name, in characters, or 0 to have size calculated automatically from string
+        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
+        //! \return Pointer to found attribute, or 0 if not found.
+        xml_attribute<Ch> *first_attribute(const Ch *name = 0, std::size_t name_size = 0, bool case_sensitive = true) const
+        {
+            if (name)
+            {
+                if (name_size == 0)
+                    name_size = internal::measure(name);
+                for (xml_attribute<Ch> *attribute = m_first_attribute; attribute; attribute = attribute->m_next_attribute)
+                    if (internal::compare(attribute->name(), attribute->name_size(), name, name_size, case_sensitive))
+                        return attribute;
+                return 0;
+            }
+            else
+                return m_first_attribute;
+        }
+
+        //! Gets last attribute of node, optionally matching attribute name.
+        //! \param name Name of attribute to find, or 0 to return last attribute regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
+        //! \param name_size Size of name, in characters, or 0 to have size calculated automatically from string
+        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
+        //! \return Pointer to found attribute, or 0 if not found.
+        xml_attribute<Ch> *last_attribute(const Ch *name = 0, std::size_t name_size = 0, bool case_sensitive = true) const
+        {
+            if (name)
+            {
+                if (name_size == 0)
+                    name_size = internal::measure(name);
+                for (xml_attribute<Ch> *attribute = m_last_attribute; attribute; attribute = attribute->m_prev_attribute)
+                    if (internal::compare(attribute->name(), attribute->name_size(), name, name_size, case_sensitive))
+                        return attribute;
+                return 0;
+            }
+            else
+                return m_first_attribute ? m_last_attribute : 0;
+        }
+
+        ///////////////////////////////////////////////////////////////////////////
+        // Node modification
+
+        //! Sets type of node.
+        //! \param type Type of node to set.
+        void type(node_type type)
+        {
+            m_type = type;
+        }
+
+        ///////////////////////////////////////////////////////////////////////////
+        // Node manipulation
+
+        //! Prepends a new child node.
+        //! The prepended child becomes the first child, and all existing children are moved one position back.
+        //! \param child Node to prepend.
+        void prepend_node(xml_node<Ch> *child)
+        {
+            assert(child && !child->parent() && child->type() != node_document);
+            if (first_node())
+            {
+                child->m_next_sibling = m_first_node;
+                m_first_node->m_prev_sibling = child;
+            }
+            else
+            {
+                child->m_next_sibling = 0;
+                m_last_node = child;
+            }
+            m_first_node = child;
+            child->m_parent = this;
+            child->m_prev_sibling = 0;
+        }
+
+        //! Appends a new child node.
+        //! The appended child becomes the last child.
+        //! \param child Node to append.
+        void append_node(xml_node<Ch> *child)
+        {
+            assert(child && !child->parent() && child->type() != node_document);
+            if (first_node())
+            {
+                child->m_prev_sibling = m_last_node;
+                m_last_node->m_next_sibling = child;
+            }
+            else
+            {
+                child->m_prev_sibling = 0;
+                m_first_node = child;
+            }
+            m_last_node = child;
+            child->m_parent = this;
+            child->m_next_sibling = 0;
+        }
+
+        //! Inserts a new child node at specified place inside the node.
+        //! All children after and including the specified node are moved one position back.
+        //! \param where Place where to insert the child, or 0 to insert at the back.
+        //! \param child Node to insert.
+        void insert_node(xml_node<Ch> *where, xml_node<Ch> *child)
+        {
+            assert(!where || where->parent() == this);
+            assert(child && !child->parent() && child->type() != node_document);
+            if (where == m_first_node)
+                prepend_node(child);
+            else if (where == 0)
+                append_node(child);
+            else
+            {
+                child->m_prev_sibling = where->m_prev_sibling;
+                child->m_next_sibling = where;
+                where->m_prev_sibling->m_next_sibling = child;
+                where->m_prev_sibling = child;
+                child->m_parent = this;
+            }
+        }
+
+        //! Removes first child node.
+        //! If node has no children, behaviour is undefined.
+        //! Use first_node() to test if node has children.
+        void remove_first_node()
+        {
+            assert(first_node());
+            xml_node<Ch> *child = m_first_node;
+            m_first_node = child->m_next_sibling;
+            if (child->m_next_sibling)
+                child->m_next_sibling->m_prev_sibling = 0;
+            else
+                m_last_node = 0;
+            child->m_parent = 0;
+        }
+
+        //! Removes last child of the node.
+        //! If node has no children, behaviour is undefined.
+        //! Use first_node() to test if node has children.
+        void remove_last_node()
+        {
+            assert(first_node());
+            xml_node<Ch> *child = m_last_node;
+            if (child->m_prev_sibling)
+            {
+                m_last_node = child->m_prev_sibling;
+                child->m_prev_sibling->m_next_sibling = 0;
+            }
+            else
+                m_first_node = 0;
+            child->m_parent = 0;
+        }
+
+        //! Removes specified child from the node
+        // \param where Pointer to child to be removed.
+        void remove_node(xml_node<Ch> *where)
+        {
+            assert(where && where->parent() == this);
+            assert(first_node());
+            if (where == m_first_node)
+                remove_first_node();
+            else if (where == m_last_node)
+                remove_last_node();
+            else
+            {
+                where->m_prev_sibling->m_next_sibling = where->m_next_sibling;
+                where->m_next_sibling->m_prev_sibling = where->m_prev_sibling;
+                where->m_parent = 0;
+            }
+        }
+
+        //! Removes all child nodes (but not attributes).
+        void remove_all_nodes()
+        {
+            for (xml_node<Ch> *node = first_node(); node; node = node->m_next_sibling)
+                node->m_parent = 0;
+            m_first_node = 0;
+        }
+
+        //! Prepends a new attribute to the node.
+        //! \param attribute Attribute to prepend.
+        void prepend_attribute(xml_attribute<Ch> *attribute)
+        {
+            assert(attribute && !attribute->parent());
+            if (first_attribute())
+            {
+                attribute->m_next_attribute = m_first_attribute;
+                m_first_attribute->m_prev_attribute = attribute;
+            }
+            else
+            {
+                attribute->m_next_attribute = 0;
+                m_last_attribute = attribute;
+            }
+            m_first_attribute = attribute;
+            attribute->m_parent = this;
+            attribute->m_prev_attribute = 0;
+        }
+
+        //! Appends a new attribute to the node.
+        //! \param attribute Attribute to append.
+        void append_attribute(xml_attribute<Ch> *attribute)
+        {
+            assert(attribute && !attribute->parent());
+            if (first_attribute())
+            {
+                attribute->m_prev_attribute = m_last_attribute;
+                m_last_attribute->m_next_attribute = attribute;
+            }
+            else
+            {
+                attribute->m_prev_attribute = 0;
+                m_first_attribute = attribute;
+            }
+            m_last_attribute = attribute;
+            attribute->m_parent = this;
+            attribute->m_next_attribute = 0;
+        }
+
+        //! Inserts a new attribute at specified place inside the node.
+        //! All attributes after and including the specified attribute are moved one position back.
+        //! \param where Place where to insert the attribute, or 0 to insert at the back.
+        //! \param attribute Attribute to insert.
+        void insert_attribute(xml_attribute<Ch> *where, xml_attribute<Ch> *attribute)
+        {
+            assert(!where || where->parent() == this);
+            assert(attribute && !attribute->parent());
+            if (where == m_first_attribute)
+                prepend_attribute(attribute);
+            else if (where == 0)
+                append_attribute(attribute);
+            else
+            {
+                attribute->m_prev_attribute = where->m_prev_attribute;
+                attribute->m_next_attribute = where;
+                where->m_prev_attribute->m_next_attribute = attribute;
+                where->m_prev_attribute = attribute;
+                attribute->m_parent = this;
+            }
+        }
+
+        //! Removes first attribute of the node.
+        //! If node has no attributes, behaviour is undefined.
+        //! Use first_attribute() to test if node has attributes.
+        void remove_first_attribute()
+        {
+            assert(first_attribute());
+            xml_attribute<Ch> *attribute = m_first_attribute;
+            if (attribute->m_next_attribute)
+            {
+                attribute->m_next_attribute->m_prev_attribute = 0;
+            }
+            else
+                m_last_attribute = 0;
+            attribute->m_parent = 0;
+            m_first_attribute = attribute->m_next_attribute;
+        }
+
+        //! Removes last attribute of the node.
+        //! If node has no attributes, behaviour is undefined.
+        //! Use first_attribute() to test if node has attributes.
+        void remove_last_attribute()
+        {
+            assert(first_attribute());
+            xml_attribute<Ch> *attribute = m_last_attribute;
+            if (attribute->m_prev_attribute)
+            {
+                attribute->m_prev_attribute->m_next_attribute = 0;
+                m_last_attribute = attribute->m_prev_attribute;
+            }
+            else
+                m_first_attribute = 0;
+            attribute->m_parent = 0;
+        }
+
+        //! Removes specified attribute from node.
+        //! \param where Pointer to attribute to be removed.
+        void remove_attribute(xml_attribute<Ch> *where)
+        {
+            assert(first_attribute() && where->parent() == this);
+            if (where == m_first_attribute)
+                remove_first_attribute();
+            else if (where == m_last_attribute)
+                remove_last_attribute();
+            else
+            {
+                where->m_prev_attribute->m_next_attribute = where->m_next_attribute;
+                where->m_next_attribute->m_prev_attribute = where->m_prev_attribute;
+                where->m_parent = 0;
+            }
+        }
+
+        //! Removes all attributes of node.
+        void remove_all_attributes()
+        {
+            for (xml_attribute<Ch> *attribute = first_attribute(); attribute; attribute = attribute->m_next_attribute)
+                attribute->m_parent = 0;
+            m_first_attribute = 0;
+        }
+
+    private:
+
+        ///////////////////////////////////////////////////////////////////////////
+        // Restrictions
+
+        // No copying
+        xml_node(const xml_node &);
+        void operator =(const xml_node &);
+
+        ///////////////////////////////////////////////////////////////////////////
+        // Data members
+
+        // Note that some of the pointers below have UNDEFINED values if certain other pointers are 0.
+        // This is required for maximum performance, as it allows the parser to omit initialization of
+        // unneded/redundant values.
+        //
+        // The rules are as follows:
+        // 1. first_node and first_attribute contain valid pointers, or 0 if node has no children/attributes respectively
+        // 2. last_node and last_attribute are valid only if node has at least one child/attribute respectively, otherwise they contain garbage
+        // 3. prev_sibling and next_sibling are valid only if node has a parent, otherwise they contain garbage
+
+        node_type m_type;                       // Type of node; always valid
+        xml_node<Ch> *m_first_node;             // Pointer to first child node, or 0 if none; always valid
+        xml_node<Ch> *m_last_node;              // Pointer to last child node, or 0 if none; this value is only valid if m_first_node is non-zero
+        xml_attribute<Ch> *m_first_attribute;   // Pointer to first attribute of node, or 0 if none; always valid
+        xml_attribute<Ch> *m_last_attribute;    // Pointer to last attribute of node, or 0 if none; this value is only valid if m_first_attribute is non-zero
+        xml_node<Ch> *m_prev_sibling;           // Pointer to previous sibling of node, or 0 if none; this value is only valid if m_parent is non-zero
+        xml_node<Ch> *m_next_sibling;           // Pointer to next sibling of node, or 0 if none; this value is only valid if m_parent is non-zero
+
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+    // XML document
+
+    //! This class represents root of the DOM hierarchy.
+    //! It is also an xml_node and a memory_pool through public inheritance.
+    //! Use parse() function to build a DOM tree from a zero-terminated XML text string.
+    //! parse() function allocates memory for nodes and attributes by using functions of xml_document,
+    //! which are inherited from memory_pool.
+    //! To access root node of the document, use the document itself, as if it was an xml_node.
+    //! \param Ch Character type to use.
+    template<class Ch = char>
+    class xml_document: public xml_node<Ch>, public memory_pool<Ch>
+    {
+
+    public:
+
+        //! Constructs empty XML document
+        xml_document()
+            : xml_node<Ch>(node_document)
+        {
+        }
+
+        //! Parses zero-terminated XML string according to given flags.
+        //! Passed string will be modified by the parser, unless rapidxml::parse_non_destructive flag is used.
+        //! The string must persist for the lifetime of the document.
+        //! In case of error, rapidxml::parse_error exception will be thrown.
+        //! <br><br>
+        //! If you want to parse contents of a file, you must first load the file into the memory, and pass pointer to its beginning.
+        //! Make sure that data is zero-terminated.
+        //! <br><br>
+        //! Document can be parsed into multiple times.
+        //! Each new call to parse removes previous nodes and attributes (if any), but does not clear memory pool.
+        //! \param text XML data to parse; pointer is non-const to denote fact that this data may be modified by the parser.
+        template<int Flags>
+        void parse(Ch *text)
+        {
+            assert(text);
+
+            // Remove current contents
+            this->remove_all_nodes();
+            this->remove_all_attributes();
+
+            // Parse BOM, if any
+            parse_bom<Flags>(text);
+
+            // Parse children
+            while (1)
+            {
+                // Skip whitespace before node
+                skip<whitespace_pred, Flags>(text);
+                if (*text == 0)
+                    break;
+
+                // Parse and append new child
+                if (*text == Ch('<'))
+                {
+                    ++text;     // Skip '<'
+                    if (xml_node<Ch> *node = parse_node<Flags>(text))
+                        this->append_node(node);
+                }
+                else
+                    RAPIDXML_PARSE_ERROR("expected <", text);
+            }
+
+        }
+
+        //! Clears the document by deleting all nodes and clearing the memory pool.
+        //! All nodes owned by document pool are destroyed.
+        void clear()
+        {
+            this->remove_all_nodes();
+            this->remove_all_attributes();
+            memory_pool<Ch>::clear();
+        }
+
+    private:
+
+        ///////////////////////////////////////////////////////////////////////
+        // Internal character utility functions
+
+        // Detect whitespace character
+        struct whitespace_pred
+        {
+            static unsigned char test(Ch ch)
+            {
+                return internal::lookup_tables<0>::lookup_whitespace[static_cast<unsigned char>(ch)];
+            }
+        };
+
+        // Detect node name character
+        struct node_name_pred
+        {
+            static unsigned char test(Ch ch)
+            {
+                return internal::lookup_tables<0>::lookup_node_name[static_cast<unsigned char>(ch)];
+            }
+        };
+
+        // Detect attribute name character
+        struct attribute_name_pred
+        {
+            static unsigned char test(Ch ch)
+            {
+                return internal::lookup_tables<0>::lookup_attribute_name[static_cast<unsigned char>(ch)];
+            }
+        };
+
+        // Detect text character (PCDATA)
+        struct text_pred
+        {
+            static unsigned char test(Ch ch)
+            {
+                return internal::lookup_tables<0>::lookup_text[static_cast<unsigned char>(ch)];
+            }
+        };
+
+        // Detect text character (PCDATA) that does not require processing
+        struct text_pure_no_ws_pred
+        {
+            static unsigned char test(Ch ch)
+            {
+                return internal::lookup_tables<0>::lookup_text_pure_no_ws[static_cast<unsigned char>(ch)];
+            }
+        };
+
+        // Detect text character (PCDATA) that does not require processing
+        struct text_pure_with_ws_pred
+        {
+            static unsigned char test(Ch ch)
+            {
+                return internal::lookup_tables<0>::lookup_text_pure_with_ws[static_cast<unsigned char>(ch)];
+            }
+        };
+
+        // Detect attribute value character
+        template<Ch Quote>
+        struct attribute_value_pred
+        {
+            static unsigned char test(Ch ch)
+            {
+                if (Quote == Ch('\''))
+                    return internal::lookup_tables<0>::lookup_attribute_data_1[static_cast<unsigned char>(ch)];
+                if (Quote == Ch('\"'))
+                    return internal::lookup_tables<0>::lookup_attribute_data_2[static_cast<unsigned char>(ch)];
+                return 0;       // Should never be executed, to avoid warnings on Comeau
+            }
+        };
+
+        // Detect attribute value character
+        template<Ch Quote>
+        struct attribute_value_pure_pred
+        {
+            static unsigned char test(Ch ch)
+            {
+                if (Quote == Ch('\''))
+                    return internal::lookup_tables<0>::lookup_attribute_data_1_pure[static_cast<unsigned char>(ch)];
+                if (Quote == Ch('\"'))
+                    return internal::lookup_tables<0>::lookup_attribute_data_2_pure[static_cast<unsigned char>(ch)];
+                return 0;       // Should never be executed, to avoid warnings on Comeau
+            }
+        };
+
+        // Insert coded character, using UTF8 or 8-bit ASCII
+        template<int Flags>
+        static void insert_coded_character(Ch *&text, unsigned long code)
+        {
+            if (Flags & parse_no_utf8)
+            {
+                // Insert 8-bit ASCII character
+                // Todo: possibly verify that code is less than 256 and use replacement char otherwise?
+                text[0] = static_cast<unsigned char>(code);
+                text += 1;
+            }
+            else
+            {
+                // Insert UTF8 sequence
+                if (code < 0x80)    // 1 byte sequence
+                {
+                    text[0] = static_cast<unsigned char>(code);
+                    text += 1;
+                }
+                else if (code < 0x800)  // 2 byte sequence
+                {
+                    text[1] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6;
+                    text[0] = static_cast<unsigned char>(code | 0xC0);
+                    text += 2;
+                }
+                else if (code < 0x10000)    // 3 byte sequence
+                {
+                    text[2] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6;
+                    text[1] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6;
+                    text[0] = static_cast<unsigned char>(code | 0xE0);
+                    text += 3;
+                }
+                else if (code < 0x110000)   // 4 byte sequence
+                {
+                    text[3] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6;
+                    text[2] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6;
+                    text[1] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6;
+                    text[0] = static_cast<unsigned char>(code | 0xF0);
+                    text += 4;
+                }
+                else    // Invalid, only codes up to 0x10FFFF are allowed in Unicode
+                {
+                    RAPIDXML_PARSE_ERROR("invalid numeric character entity", text);
+                }
+            }
+        }
+
+        // Skip characters until predicate evaluates to true
+        template<class StopPred, int Flags>
+        static void skip(Ch *&text)
+        {
+            Ch *tmp = text;
+            while (StopPred::test(*tmp))
+                ++tmp;
+            text = tmp;
+        }
+
+        // Skip characters until predicate evaluates to true while doing the following:
+        // - replacing XML character entity references with proper characters (' & " < > &#...;)
+        // - condensing whitespace sequences to single space character
+        template<class StopPred, class StopPredPure, int Flags>
+        static Ch *skip_and_expand_character_refs(Ch *&text)
+        {
+            // If entity translation, whitespace condense and whitespace trimming is disabled, use plain skip
+            if (Flags & parse_no_entity_translation &&
+                !(Flags & parse_normalize_whitespace) &&
+                !(Flags & parse_trim_whitespace))
+            {
+                skip<StopPred, Flags>(text);
+                return text;
+            }
+
+            // Use simple skip until first modification is detected
+            skip<StopPredPure, Flags>(text);
+
+            // Use translation skip
+            Ch *src = text;
+            Ch *dest = src;
+            while (StopPred::test(*src))
+            {
+                // If entity translation is enabled
+                if (!(Flags & parse_no_entity_translation))
+                {
+                    // Test if replacement is needed
+                    if (src[0] == Ch('&'))
+                    {
+                        switch (src[1])
+                        {
+
+                        // & '
+                        case Ch('a'):
+                            if (src[2] == Ch('m') && src[3] == Ch('p') && src[4] == Ch(';'))
+                            {
+                                *dest = Ch('&');
+                                ++dest;
+                                src += 5;
+                                continue;
+                            }
+                            if (src[2] == Ch('p') && src[3] == Ch('o') && src[4] == Ch('s') && src[5] == Ch(';'))
+                            {
+                                *dest = Ch('\'');
+                                ++dest;
+                                src += 6;
+                                continue;
+                            }
+                            break;
+
+                        // "
+                        case Ch('q'):
+                            if (src[2] == Ch('u') && src[3] == Ch('o') && src[4] == Ch('t') && src[5] == Ch(';'))
+                            {
+                                *dest = Ch('"');
+                                ++dest;
+                                src += 6;
+                                continue;
+                            }
+                            break;
+
+                        // >
+                        case Ch('g'):
+                            if (src[2] == Ch('t') && src[3] == Ch(';'))
+                            {
+                                *dest = Ch('>');
+                                ++dest;
+                                src += 4;
+                                continue;
+                            }
+                            break;
+
+                        // <
+                        case Ch('l'):
+                            if (src[2] == Ch('t') && src[3] == Ch(';'))
+                            {
+                                *dest = Ch('<');
+                                ++dest;
+                                src += 4;
+                                continue;
+                            }
+                            break;
+
+                        // &#...; - assumes ASCII
+                        case Ch('#'):
+                            if (src[2] == Ch('x'))
+                            {
+                                unsigned long code = 0;
+                                src += 3;   // Skip &#x
+                                while (1)
+                                {
+                                    unsigned char digit = internal::lookup_tables<0>::lookup_digits[static_cast<unsigned char>(*src)];
+                                    if (digit == 0xFF)
+                                        break;
+                                    code = code * 16 + digit;
+                                    ++src;
+                                }
+                                insert_coded_character<Flags>(dest, code);    // Put character in output
+                            }
+                            else
+                            {
+                                unsigned long code = 0;
+                                src += 2;   // Skip &#
+                                while (1)
+                                {
+                                    unsigned char digit = internal::lookup_tables<0>::lookup_digits[static_cast<unsigned char>(*src)];
+                                    if (digit == 0xFF)
+                                        break;
+                                    code = code * 10 + digit;
+                                    ++src;
+                                }
+                                insert_coded_character<Flags>(dest, code);    // Put character in output
+                            }
+                            if (*src == Ch(';'))
+                                ++src;
+                            else
+                                RAPIDXML_PARSE_ERROR("expected ;", src);
+                            continue;
+
+                        // Something else
+                        default:
+                            // Ignore, just copy '&' verbatim
+                            break;
+
+                        }
+                    }
+                }
+
+                // If whitespace condensing is enabled
+                if (Flags & parse_normalize_whitespace)
+                {
+                    // Test if condensing is needed
+                    if (whitespace_pred::test(*src))
+                    {
+                        *dest = Ch(' '); ++dest;    // Put single space in dest
+                        ++src;                      // Skip first whitespace char
+                        // Skip remaining whitespace chars
+                        while (whitespace_pred::test(*src))
+                            ++src;
+                        continue;
+                    }
+                }
+
+                // No replacement, only copy character
+                *dest++ = *src++;
+
+            }
+
+            // Return new end
+            text = src;
+            return dest;
+
+        }
+
+        ///////////////////////////////////////////////////////////////////////
+        // Internal parsing functions
+
+        // Parse BOM, if any
+        template<int Flags>
+        void parse_bom(Ch *&text)
+        {
+            // UTF-8?
+            if (static_cast<unsigned char>(text[0]) == 0xEF &&
+                static_cast<unsigned char>(text[1]) == 0xBB &&
+                static_cast<unsigned char>(text[2]) == 0xBF)
+            {
+                text += 3;      // Skup utf-8 bom
+            }
+        }
+
+        // Parse XML declaration (<?xml...)
+        template<int Flags>
+        xml_node<Ch> *parse_xml_declaration(Ch *&text)
+        {
+            // If parsing of declaration is disabled
+            if (!(Flags & parse_declaration_node))
+            {
+                // Skip until end of declaration
+                while (text[0] != Ch('?') || text[1] != Ch('>'))
+                {
+                    if (!text[0])
+                        RAPIDXML_PARSE_ERROR("unexpected end of data", text);
+                    ++text;
+                }
+                text += 2;    // Skip '?>'
+                return 0;
+            }
+
+            // Create declaration
+            xml_node<Ch> *declaration = this->allocate_node(node_declaration);
+
+            // Skip whitespace before attributes or ?>
+            skip<whitespace_pred, Flags>(text);
+
+            // Parse declaration attributes
+            parse_node_attributes<Flags>(text, declaration);
+
+            // Skip ?>
+            if (text[0] != Ch('?') || text[1] != Ch('>'))
+                RAPIDXML_PARSE_ERROR("expected ?>", text);
+            text += 2;
+
+            return declaration;
+        }
+
+        // Parse XML comment (<!--...)
+        template<int Flags>
+        xml_node<Ch> *parse_comment(Ch *&text)
+        {
+            // If parsing of comments is disabled
+            if (!(Flags & parse_comment_nodes))
+            {
+                // Skip until end of comment
+                while (text[0] != Ch('-') || text[1] != Ch('-') || text[2] != Ch('>'))
+                {
+                    if (!text[0])
+                        RAPIDXML_PARSE_ERROR("unexpected end of data", text);
+                    ++text;
+                }
+                text += 3;     // Skip '-->'
+                return 0;      // Do not produce comment node
+            }
+
+            // Remember value start
+            Ch *value = text;
+
+            // Skip until end of comment
+            while (text[0] != Ch('-') || text[1] != Ch('-') || text[2] != Ch('>'))
+            {
+                if (!text[0])
+                    RAPIDXML_PARSE_ERROR("unexpected end of data", text);
+                ++text;
+            }
+
+            // Create comment node
+            xml_node<Ch> *comment = this->allocate_node(node_comment);
+            comment->value(value, text - value);
+
+            // Place zero terminator after comment value
+            if (!(Flags & parse_no_string_terminators))
+                *text = Ch('\0');
+
+            text += 3;     // Skip '-->'
+            return comment;
+        }
+
+        // Parse DOCTYPE
+        template<int Flags>
+        xml_node<Ch> *parse_doctype(Ch *&text)
+        {
+            // Remember value start
+            Ch *value = text;
+
+            // Skip to >
+            while (*text != Ch('>'))
+            {
+                // Determine character type
+                switch (*text)
+                {
+
+                // If '[' encountered, scan for matching ending ']' using naive algorithm with depth
+                // This works for all W3C test files except for 2 most wicked
+                case Ch('['):
+                {
+                    ++text;     // Skip '['
+                    int depth = 1;
+                    while (depth > 0)
+                    {
+                        switch (*text)
+                        {
+                            case Ch('['): ++depth; break;
+                            case Ch(']'): --depth; break;
+                            case 0: RAPIDXML_PARSE_ERROR("unexpected end of data", text);
+                        }
+                        ++text;
+                    }
+                    break;
+                }
+
+                // Error on end of text
+                case Ch('\0'):
+                    RAPIDXML_PARSE_ERROR("unexpected end of data", text);
+
+                // Other character, skip it
+                default:
+                    ++text;
+
+                }
+            }
+
+            // If DOCTYPE nodes enabled
+            if (Flags & parse_doctype_node)
+            {
+                // Create a new doctype node
+                xml_node<Ch> *doctype = this->allocate_node(node_doctype);
+                doctype->value(value, text - value);
+
+                // Place zero terminator after value
+                if (!(Flags & parse_no_string_terminators))
+                    *text = Ch('\0');
+
+                text += 1;      // skip '>'
+                return doctype;
+            }
+            else
+            {
+                text += 1;      // skip '>'
+                return 0;
+            }
+
+        }
+
+        // Parse PI
+        template<int Flags>
+        xml_node<Ch> *parse_pi(Ch *&text)
+        {
+            // If creation of PI nodes is enabled
+            if (Flags & parse_pi_nodes)
+            {
+                // Create pi node
+                xml_node<Ch> *pi = this->allocate_node(node_pi);
+
+                // Extract PI target name
+                Ch *name = text;
+                skip<node_name_pred, Flags>(text);
+                if (text == name)
+                    RAPIDXML_PARSE_ERROR("expected PI target", text);
+                pi->name(name, text - name);
+
+                // Skip whitespace between pi target and pi
+                skip<whitespace_pred, Flags>(text);
+
+                // Remember start of pi
+                Ch *value = text;
+
+                // Skip to '?>'
+                while (text[0] != Ch('?') || text[1] != Ch('>'))
+                {
+                    if (*text == Ch('\0'))
+                        RAPIDXML_PARSE_ERROR("unexpected end of data", text);
+                    ++text;
+                }
+
+                // Set pi value (verbatim, no entity expansion or whitespace normalization)
+                pi->value(value, text - value);
+
+                // Place zero terminator after name and value
+                if (!(Flags & parse_no_string_terminators))
+                {
+                    pi->name()[pi->name_size()] = Ch('\0');
+                    pi->value()[pi->value_size()] = Ch('\0');
+                }
+
+                text += 2;                          // Skip '?>'
+                return pi;
+            }
+            else
+            {
+                // Skip to '?>'
+                while (text[0] != Ch('?') || text[1] != Ch('>'))
+                {
+                    if (*text == Ch('\0'))
+                        RAPIDXML_PARSE_ERROR("unexpected end of data", text);
+                    ++text;
+                }
+                text += 2;    // Skip '?>'
+                return 0;
+            }
+        }
+
+        // Parse and append data
+        // Return character that ends data.
+        // This is necessary because this character might have been overwritten by a terminating 0
+        template<int Flags>
+        Ch parse_and_append_data(xml_node<Ch> *node, Ch *&text, Ch *contents_start)
+        {
+            // Backup to contents start if whitespace trimming is disabled
+            if (!(Flags & parse_trim_whitespace))
+                text = contents_start;
+
+            // Skip until end of data
+            Ch *value = text, *end;
+            if (Flags & parse_normalize_whitespace)
+                end = skip_and_expand_character_refs<text_pred, text_pure_with_ws_pred, Flags>(text);
+            else
+                end = skip_and_expand_character_refs<text_pred, text_pure_no_ws_pred, Flags>(text);
+
+            // Trim trailing whitespace if flag is set; leading was already trimmed by whitespace skip after >
+            if (Flags & parse_trim_whitespace)
+            {
+                if (Flags & parse_normalize_whitespace)
+                {
+                    // Whitespace is already condensed to single space characters by skipping function, so just trim 1 char off the end
+                    if (*(end - 1) == Ch(' '))
+                        --end;
+                }
+                else
+                {
+                    // Backup until non-whitespace character is found
+                    while (whitespace_pred::test(*(end - 1)))
+                        --end;
+                }
+            }
+
+            // If characters are still left between end and value (this test is only necessary if normalization is enabled)
+            // Create new data node
+            if (!(Flags & parse_no_data_nodes))
+            {
+                xml_node<Ch> *data = this->allocate_node(node_data);
+                data->value(value, end - value);
+                node->append_node(data);
+            }
+
+            // Add data to parent node if no data exists yet
+            if (!(Flags & parse_no_element_values))
+                if (*node->value() == Ch('\0'))
+                    node->value(value, end - value);
+
+            // Place zero terminator after value
+            if (!(Flags & parse_no_string_terminators))
+            {
+                Ch ch = *text;
+                *end = Ch('\0');
+                return ch;      // Return character that ends data; this is required because zero terminator overwritten it
+            }
+
+            // Return character that ends data
+            return *text;
+        }
+
+        // Parse CDATA
+        template<int Flags>
+        xml_node<Ch> *parse_cdata(Ch *&text)
+        {
+            // If CDATA is disabled
+            if (Flags & parse_no_data_nodes)
+            {
+                // Skip until end of cdata
+                while (text[0] != Ch(']') || text[1] != Ch(']') || text[2] != Ch('>'))
+                {
+                    if (!text[0])
+                        RAPIDXML_PARSE_ERROR("unexpected end of data", text);
+                    ++text;
+                }
+                text += 3;      // Skip ]]>
+                return 0;       // Do not produce CDATA node
+            }
+
+            // Skip until end of cdata
+            Ch *value = text;
+            while (text[0] != Ch(']') || text[1] != Ch(']') || text[2] != Ch('>'))
+            {
+                if (!text[0])
+                    RAPIDXML_PARSE_ERROR("unexpected end of data", text);
+                ++text;
+            }
+
+            // Create new cdata node
+            xml_node<Ch> *cdata = this->allocate_node(node_cdata);
+            cdata->value(value, text - value);
+
+            // Place zero terminator after value
+            if (!(Flags & parse_no_string_terminators))
+                *text = Ch('\0');
+
+            text += 3;      // Skip ]]>
+            return cdata;
+        }
+
+        // Parse element node
+        template<int Flags>
+        xml_node<Ch> *parse_element(Ch *&text)
+        {
+            // Create element node
+            xml_node<Ch> *element = this->allocate_node(node_element);
+
+            // Extract element name
+            Ch *name = text;
+            skip<node_name_pred, Flags>(text);
+            if (text == name)
+                RAPIDXML_PARSE_ERROR("expected element name", text);
+            element->name(name, text - name);
+
+            // Skip whitespace between element name and attributes or >
+            skip<whitespace_pred, Flags>(text);
+
+            // Parse attributes, if any
+            parse_node_attributes<Flags>(text, element);
+
+            // Determine ending type
+            if (*text == Ch('>'))
+            {
+                ++text;
+                parse_node_contents<Flags>(text, element);
+            }
+            else if (*text == Ch('/'))
+            {
+                ++text;
+                if (*text != Ch('>'))
+                    RAPIDXML_PARSE_ERROR("expected >", text);
+                ++text;
+            }
+            else
+                RAPIDXML_PARSE_ERROR("expected >", text);
+
+            // Place zero terminator after name
+            if (!(Flags & parse_no_string_terminators))
+                element->name()[element->name_size()] = Ch('\0');
+
+            // Return parsed element
+            return element;
+        }
+
+        // Determine node type, and parse it
+        template<int Flags>
+        xml_node<Ch> *parse_node(Ch *&text)
+        {
+            // Parse proper node type
+            switch (text[0])
+            {
+
+            // <...
+            default:
+                // Parse and append element node
+                return parse_element<Flags>(text);
+
+            // <?...
+            case Ch('?'):
+                ++text;     // Skip ?
+                if ((text[0] == Ch('x') || text[0] == Ch('X')) &&
+                    (text[1] == Ch('m') || text[1] == Ch('M')) &&
+                    (text[2] == Ch('l') || text[2] == Ch('L')) &&
+                    whitespace_pred::test(text[3]))
+                {
+                    // '<?xml ' - xml declaration
+                    text += 4;      // Skip 'xml '
+                    return parse_xml_declaration<Flags>(text);
+                }
+                else
+                {
+                    // Parse PI
+                    return parse_pi<Flags>(text);
+                }
+
+            // <!...
+            case Ch('!'):
+
+                // Parse proper subset of <! node
+                switch (text[1])
+                {
+
+                // <!-
+                case Ch('-'):
+                    if (text[2] == Ch('-'))
+                    {
+                        // '<!--' - xml comment
+                        text += 3;     // Skip '!--'
+                        return parse_comment<Flags>(text);
+                    }
+                    break;
+
+                // <![
+                case Ch('['):
+                    if (text[2] == Ch('C') && text[3] == Ch('D') && text[4] == Ch('A') &&
+                        text[5] == Ch('T') && text[6] == Ch('A') && text[7] == Ch('['))
+                    {
+                        // '<![CDATA[' - cdata
+                        text += 8;     // Skip '![CDATA['
+                        return parse_cdata<Flags>(text);
+                    }
+                    break;
+
+                // <!D
+                case Ch('D'):
+                    if (text[2] == Ch('O') && text[3] == Ch('C') && text[4] == Ch('T') &&
+                        text[5] == Ch('Y') && text[6] == Ch('P') && text[7] == Ch('E') &&
+                        whitespace_pred::test(text[8]))
+                    {
+                        // '<!DOCTYPE ' - doctype
+                        text += 9;      // skip '!DOCTYPE '
+                        return parse_doctype<Flags>(text);
+                    }
+
+                }   // switch
+
+                // Attempt to skip other, unrecognized node types starting with <!
+                ++text;     // Skip !
+                while (*text != Ch('>'))
+                {
+                    if (*text == 0)
+                        RAPIDXML_PARSE_ERROR("unexpected end of data", text);
+                    ++text;
+                }
+                ++text;     // Skip '>'
+                return 0;   // No node recognized
+
+            }
+        }
+
+        // Parse contents of the node - children, data etc.
+        template<int Flags>
+        void parse_node_contents(Ch *&text, xml_node<Ch> *node)
+        {
+            // For all children and text
+            while (1)
+            {
+                // Skip whitespace between > and node contents
+                Ch *contents_start = text;      // Store start of node contents before whitespace is skipped
+                skip<whitespace_pred, Flags>(text);
+                Ch next_char = *text;
+
+            // After data nodes, instead of continuing the loop, control jumps here.
+            // This is because zero termination inside parse_and_append_data() function
+            // would wreak havoc with the above code.
+            // Also, skipping whitespace after data nodes is unnecessary.
+            after_data_node:
+
+                // Determine what comes next: node closing, child node, data node, or 0?
+                switch (next_char)
+                {
+
+                // Node closing or child node
+                case Ch('<'):
+                    if (text[1] == Ch('/'))
+                    {
+                        // Node closing
+                        text += 2;      // Skip '</'
+                        if (Flags & parse_validate_closing_tags)
+                        {
+                            // Skip and validate closing tag name
+                            Ch *closing_name = text;
+                            skip<node_name_pred, Flags>(text);
+                            if (!internal::compare(node->name(), node->name_size(), closing_name, text - closing_name, true))
+                                RAPIDXML_PARSE_ERROR("invalid closing tag name", text);
+                        }
+                        else
+                        {
+                            // No validation, just skip name
+                            skip<node_name_pred, Flags>(text);
+                        }
+                        // Skip remaining whitespace after node name
+                        skip<whitespace_pred, Flags>(text);
+                        if (*text != Ch('>'))
+                            RAPIDXML_PARSE_ERROR("expected >", text);
+                        ++text;     // Skip '>'
+                        return;     // Node closed, finished parsing contents
+                    }
+                    else
+                    {
+                        // Child node
+                        ++text;     // Skip '<'
+                        if (xml_node<Ch> *child = parse_node<Flags>(text))
+                            node->append_node(child);
+                    }
+                    break;
+
+                // End of data - error
+                case Ch('\0'):
+                    RAPIDXML_PARSE_ERROR("unexpected end of data", text);
+
+                // Data node
+                default:
+                    next_char = parse_and_append_data<Flags>(node, text, contents_start);
+                    goto after_data_node;   // Bypass regular processing after data nodes
+
+                }
+            }
+        }
+
+        // Parse XML attributes of the node
+        template<int Flags>
+        void parse_node_attributes(Ch *&text, xml_node<Ch> *node)
+        {
+            // For all attributes
+            while (attribute_name_pred::test(*text))
+            {
+                // Extract attribute name
+                Ch *name = text;
+                ++text;     // Skip first character of attribute name
+                skip<attribute_name_pred, Flags>(text);
+                if (text == name)
+                    RAPIDXML_PARSE_ERROR("expected attribute name", name);
+
+                // Create new attribute
+                xml_attribute<Ch> *attribute = this->allocate_attribute();
+                attribute->name(name, text - name);
+                node->append_attribute(attribute);
+
+                // Skip whitespace after attribute name
+                skip<whitespace_pred, Flags>(text);
+
+                // Skip =
+                if (*text != Ch('='))
+                    RAPIDXML_PARSE_ERROR("expected =", text);
+                ++text;
+
+                // Add terminating zero after name
+                if (!(Flags & parse_no_string_terminators))
+                    attribute->name()[attribute->name_size()] = 0;
+
+                // Skip whitespace after =
+                skip<whitespace_pred, Flags>(text);
+
+                // Skip quote and remember if it was ' or "
+                Ch quote = *text;
+                if (quote != Ch('\'') && quote != Ch('"'))
+                    RAPIDXML_PARSE_ERROR("expected ' or \"", text);
+                ++text;
+
+                // Extract attribute value and expand char refs in it
+                Ch *value = text, *end;
+                const int AttFlags = Flags & ~parse_normalize_whitespace;   // No whitespace normalization in attributes
+                if (quote == Ch('\''))
+                    end = skip_and_expand_character_refs<attribute_value_pred<Ch('\'')>, attribute_value_pure_pred<Ch('\'')>, AttFlags>(text);
+                else
+                    end = skip_and_expand_character_refs<attribute_value_pred<Ch('"')>, attribute_value_pure_pred<Ch('"')>, AttFlags>(text);
+
+                // Set attribute value
+                attribute->value(value, end - value);
+
+                // Make sure that end quote is present
+                if (*text != quote)
+                    RAPIDXML_PARSE_ERROR("expected ' or \"", text);
+                ++text;     // Skip quote
+
+                // Add terminating zero after value
+                if (!(Flags & parse_no_string_terminators))
+                    attribute->value()[attribute->value_size()] = 0;
+
+                // Skip whitespace after attribute value
+                skip<whitespace_pred, Flags>(text);
+            }
+        }
+
+    };
+
+    //! \cond internal
+    namespace internal
+    {
+
+        // Whitespace (space \n \r \t)
+        template<int Dummy>
+        const unsigned char lookup_tables<Dummy>::lookup_whitespace[256] =
+        {
+          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
+             0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  0,  1,  0,  0,  // 0
+             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 1
+             1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 2
+             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 3
+             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 4
+             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 5
+             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 6
+             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 7
+             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 8
+             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 9
+             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // A
+             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // B
+             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // C
+             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // D
+             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // E
+             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0   // F
+        };
+
+        // Node name (anything but space \n \r \t / > ? \0)
+        template<int Dummy>
+        const unsigned char lookup_tables<Dummy>::lookup_node_name[256] =
+        {
+          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
+             0,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  1,  1,  0,  1,  1,  // 0
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1
+             0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  // 2
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  // 3
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F
+        };
+
+        // Text (i.e. PCDATA) (anything but < \0)
+        template<int Dummy>
+        const unsigned char lookup_tables<Dummy>::lookup_text[256] =
+        {
+          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
+             0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 0
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 2
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  // 3
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F
+        };
+
+        // Text (i.e. PCDATA) that does not require processing when ws normalization is disabled
+        // (anything but < \0 &)
+        template<int Dummy>
+        const unsigned char lookup_tables<Dummy>::lookup_text_pure_no_ws[256] =
+        {
+          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
+             0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 0
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1
+             1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 2
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  // 3
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F
+        };
+
+        // Text (i.e. PCDATA) that does not require processing when ws normalizationis is enabled
+        // (anything but < \0 & space \n \r \t)
+        template<int Dummy>
+        const unsigned char lookup_tables<Dummy>::lookup_text_pure_with_ws[256] =
+        {
+          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
+             0,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  1,  1,  0,  1,  1,  // 0
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1
+             0,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 2
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  // 3
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F
+        };
+
+        // Attribute name (anything but space \n \r \t / < > = ? ! \0)
+        template<int Dummy>
+        const unsigned char lookup_tables<Dummy>::lookup_attribute_name[256] =
+        {
+          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
+             0,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  1,  1,  0,  1,  1,  // 0
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1
+             0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  // 2
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  // 3
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F
+        };
+
+        // Attribute data with single quote (anything but ' \0)
+        template<int Dummy>
+        const unsigned char lookup_tables<Dummy>::lookup_attribute_data_1[256] =
+        {
+          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
+             0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 0
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1
+             1,  1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  // 2
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 3
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F
+        };
+
+        // Attribute data with single quote that does not require processing (anything but ' \0 &)
+        template<int Dummy>
+        const unsigned char lookup_tables<Dummy>::lookup_attribute_data_1_pure[256] =
+        {
+          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
+             0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 0
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1
+             1,  1,  1,  1,  1,  1,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  // 2
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 3
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F
+        };
+
+        // Attribute data with double quote (anything but " \0)
+        template<int Dummy>
+        const unsigned char lookup_tables<Dummy>::lookup_attribute_data_2[256] =
+        {
+          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
+             0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 0
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1
+             1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 2
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 3
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F
+        };
+
+        // Attribute data with double quote that does not require processing (anything but " \0 &)
+        template<int Dummy>
+        const unsigned char lookup_tables<Dummy>::lookup_attribute_data_2_pure[256] =
+        {
+          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
+             0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 0
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1
+             1,  1,  0,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 2
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 3
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E
+             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F
+        };
+
+        // Digits (dec and hex, 255 denotes end of numeric character reference)
+        template<int Dummy>
+        const unsigned char lookup_tables<Dummy>::lookup_digits[256] =
+        {
+          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
+           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // 0
+           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // 1
+           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // 2
+             0,  1,  2,  3,  4,  5,  6,  7,  8,  9,255,255,255,255,255,255,  // 3
+           255, 10, 11, 12, 13, 14, 15,255,255,255,255,255,255,255,255,255,  // 4
+           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // 5
+           255, 10, 11, 12, 13, 14, 15,255,255,255,255,255,255,255,255,255,  // 6
+           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // 7
+           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // 8
+           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // 9
+           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // A
+           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // B
+           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // C
+           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // D
+           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // E
+           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255   // F
+        };
+
+        // Upper case conversion
+        template<int Dummy>
+        const unsigned char lookup_tables<Dummy>::lookup_upcase[256] =
+        {
+          // 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  A   B   C   D   E   F
+           0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15,   // 0
+           16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,   // 1
+           32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,   // 2
+           48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,   // 3
+           64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,   // 4
+           80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,   // 5
+           96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,   // 6
+           80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 123,124,125,126,127,  // 7
+           128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,  // 8
+           144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,  // 9
+           160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,  // A
+           176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,  // B
+           192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,  // C
+           208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,  // D
+           224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,  // E
+           240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255   // F
+        };
+    }
+    //! \endcond
+
+}
+
+// Undefine internal macros
+#undef RAPIDXML_PARSE_ERROR
+
+// On MSVC, restore warnings state
+#ifdef _MSC_VER
+    #pragma warning(pop)
+#endif
+
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/third/xml/rapidxml.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/third/xml/xml.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#ifndef ARBITER_IS_AMALGAMATION
+
+#ifndef ARBITER_EXTERNAL_XML
+#include <arbiter/third/xml/rapidxml.hpp>
+#endif
+
+#endif
+
+#ifdef ARBITER_EXTERNAL_XML
+#include <rapidxml.hpp>
+#endif
+
+namespace Xml = rapidxml;
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/third/xml/xml.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/util/macros.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#define ROTLEFT(a,b) (((a) << (b)) | ((a) >> (32-(b))))
+#define ROTRIGHT(a,b) (((a) >> (b)) | ((a) << (32-(b))))
+
+// SHA256.
+#define CH(x,y,z) (((x) & (y)) ^ (~(x) & (z)))
+#define MAJ(x,y,z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z)))
+#define EP0(x) (ROTRIGHT(x,2) ^ ROTRIGHT(x,13) ^ ROTRIGHT(x,22))
+#define EP1(x) (ROTRIGHT(x,6) ^ ROTRIGHT(x,11) ^ ROTRIGHT(x,25))
+#define SIG0(x) (ROTRIGHT(x,7) ^ ROTRIGHT(x,18) ^ ((x) >> 3))
+#define SIG1(x) (ROTRIGHT(x,17) ^ ROTRIGHT(x,19) ^ ((x) >> 10))
+
+// MD5.
+#define F(x,y,z) ((x & y) | (~x & z))
+#define G(x,y,z) ((x & z) | (y & ~z))
+#define H(x,y,z) (x ^ y ^ z)
+#define I(x,y,z) (y ^ (x | ~z))
+
+#define FF(a,b,c,d,m,s,t) { a += F(b,c,d) + m + t; \
+                            a = b + ROTLEFT(a,s); }
+#define GG(a,b,c,d,m,s,t) { a += G(b,c,d) + m + t; \
+                            a = b + ROTLEFT(a,s); }
+#define HH(a,b,c,d,m,s,t) { a += H(b,c,d) + m + t; \
+                            a = b + ROTLEFT(a,s); }
+#define II(a,b,c,d,m,s,t) { a += I(b,c,d) + m + t; \
+                            a = b + ROTLEFT(a,s); }
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/util/macros.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/util/md5.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include <cstddef>
+#include <string>
+#include <vector>
+
+// MD5 implementation adapted from:
+//      https://github.com/B-Con/crypto-algorithms
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+namespace crypto
+{
+
+std::string md5(const std::string& data);
+
+} // namespace crypto
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/util/md5.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/util/sha256.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include <cstddef>
+#include <string>
+#include <vector>
+
+// SHA256 implementation adapted from:
+//      https://github.com/B-Con/crypto-algorithms
+// HMAC:
+//      https://en.wikipedia.org/wiki/Hash-based_message_authentication_code
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+namespace crypto
+{
+
+std::vector<char> sha256(const std::vector<char>& data);
+std::string sha256(const std::string& data);
+
+std::string hmacSha256(const std::string& key, const std::string& data);
+
+} // namespace crypto
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/util/sha256.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/util/transforms.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include <string>
+#include <vector>
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+namespace crypto
+{
+
+std::string encodeBase64(const std::vector<char>& data);
+std::string encodeBase64(const std::string& data);
+
+std::string encodeAsHex(const std::vector<char>& data);
+std::string encodeAsHex(const std::string& data);
+
+} // namespace crypto
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/util/transforms.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/util/util.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include <string>
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+
+/** General utilities. */
+namespace util
+{
+    /** Returns @p path, less any trailing glob indicators (one or two
+     * asterisks) as well as any possible trailing slash.
+     */
+    std::string stripPostfixing(std::string path);
+
+    /** Returns the portion of @p fullPath following the last instance of the
+     * character `/`, if any instances exist aside from possibly the delimiter
+     * `://`.  If there are no other instances of `/`, then @p fullPath itself
+     * will be returned.
+     *
+     * If @p fullPath ends with a trailing `/` or a glob indication (i.e. is a
+     * directory), these trailing characters will be stripped prior to the
+     * logic above, thus the innermost directory in the full path will be
+     * returned.
+     */
+    std::string getBasename(std::string fullPath);
+
+    /** Returns everything besides the basename, as determined by `getBasename`.
+     * For file paths, this corresponds to the directory path above the file.
+     * For directory paths, this corresponds to all directories above the
+     * innermost directory.
+     */
+    std::string getNonBasename(std::string fullPath);
+
+    /** @cond arbiter_internal */
+    inline bool isSlash(char c) { return c == '/' || c == '\\'; }
+
+    /** Returns true if the last character is an asterisk. */
+    inline bool isGlob(std::string path)
+    {
+        return path.size() && path.back() == '*';
+    }
+
+    /** Returns true if the last character is a slash or an asterisk. */
+    inline bool isDirectory(std::string path)
+    {
+        return (path.size() && isSlash(path.back())) || isGlob(path);
+    }
+
+    inline std::string joinImpl(bool first = false) { return std::string(); }
+
+    template <typename ...Paths>
+    inline std::string joinImpl(
+            bool first,
+            std::string current,
+            Paths&&... paths)
+    {
+        const bool currentIsDir(current.size() && isSlash(current.back()));
+        std::string next(joinImpl(false, std::forward<Paths>(paths)...));
+
+        // Strip slashes from the front of our remainder.
+        while (next.size() && isSlash(next.front())) next = next.substr(1);
+
+        if (first)
+        {
+            // If this is the first component, strip a single trailing slash if
+            // one exists - but do not strip a double trailing slash since we
+            // want to retain Windows paths like "C://".
+            if (
+                    current.size() > 1 &&
+                    isSlash(current.back()) &&
+                    !isSlash(current.at(current.size() - 2)))
+            {
+                current.pop_back();
+            }
+        }
+        else
+        {
+            while (current.size() && isSlash(current.back()))
+            {
+                current.pop_back();
+            }
+            if (current.empty()) return next;
+        }
+
+        std::string sep;
+
+        if (next.size() && (current.empty() || !isSlash(current.back())))
+        {
+            // We are going to join current with a populated subpath, so make
+            // sure they are separated by a slash.
+            sep = "/";
+        }
+        else if (next.empty() && currentIsDir)
+        {
+            // We are at the end of the chain, and the last component was a
+            // directory.  Retain its trailing slash.
+            if (current.size() && !isSlash(current.back()))
+            {
+                sep = "/";
+            }
+        }
+
+        return current + sep + next;
+    }
+    /** @endcond */
+
+    /** @brief Join one or more path components "intelligently".
+     *
+     * The result is the concatenation of @p path and any members of @p paths
+     * with exactly one slash preceding each non-empty portion of @p path or
+     * @p paths.  Portions of @p paths will be stripped of leading slashes prior
+     * to processing, so portions containing only slashes are considered empty.
+     *
+     * If @p path contains a single trailing slash preceded by a non-slash
+     * character, then that slash will be stripped prior to processing.
+     *
+     * @code
+     * join("")                                 // ""
+     * join("/")                                // "/"
+     * join("/var", "log", "arbiter.log")       // "/var/log/arbiter.log"
+     * join("/var/", "log", "arbiter.log")      // "/var/log/arbiter.log"
+     * join("", "var", "log", "arbiter.log")    // "/var/log/arbiter.log"
+     * join("/", "/var", "log", "arbiter.log")  // "/var/log/arbiter.log"
+     * join("", "/var", "log", "arbiter.log")   // "/var/log/arbiter.log"
+     * join("~", "code", "", "test.cpp", "/")   // "~/code/test.cpp"
+     * join("C:\\", "My Documents")             // "C:/My Documents"
+     * join("s3://", "bucket", "object.txt")    // "s3://bucket/object.txt"
+     * @endcode
+     */
+    template <typename ...Paths>
+    inline std::string join(std::string path, Paths&&... paths)
+    {
+        return joinImpl(true, path, std::forward<Paths>(paths)...);
+    }
+
+    /** @brief Extract an environment variable, if it exists, independent of
+     * platform.
+     */
+    std::unique_ptr<std::string> env(const std::string& var);
+
+} // namespace util
+
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/util/util.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/drivers/s3.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include <memory>
+#include <string>
+#include <vector>
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/drivers/http.hpp>
+#endif
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+
+namespace drivers
+{
+
+/** @brief Amazon %S3 driver. */
+class S3 : public Http
+{
+public:
+    class Auth;
+
+    S3(
+            http::Pool& pool,
+            const Auth& auth,
+            std::string region = "us-east-1",
+            bool sse = false);
+
+    /** Try to construct an S3 Driver.  Searches @p json primarily for the keys
+     * `access` and `hidden` to construct an S3::Auth.  If not found, common
+     * filesystem locations and then the environment will be searched (see
+     * S3::Auth::find).
+     *
+     * Server-side encryption may be enabled by setting key `sse` to `true` in
+     * @p json.
+     */
+    static std::unique_ptr<S3> create(
+            http::Pool& pool,
+            const Json::Value& json);
+
+    static std::string extractProfile(const Json::Value& json);
+
+    virtual std::string type() const override { return "s3"; }
+
+    virtual std::unique_ptr<std::size_t> tryGetSize(
+            std::string path) const override;
+
+    /** Inherited from Drivers::Http. */
+    virtual void put(
+            std::string path,
+            const std::vector<char>& data,
+            http::Headers headers,
+            http::Query query) const override;
+
+    /** @brief AWS authentication information. */
+    class Auth
+    {
+    public:
+        Auth(std::string access, std::string hidden);
+
+        /** @brief Search for credentials in some common locations.
+         *
+         * See:
+         * docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html
+         *
+         * Uses methods 2 and 3 of "Setting AWS Credentials":
+         *      - Check for them in `~/.aws/credentials`.
+         *      - If not found, try the environment settings.
+         */
+        static std::unique_ptr<Auth> find(std::string profile = "");
+
+        std::string access() const;
+        std::string hidden() const;
+
+    private:
+        std::string m_access;
+        std::string m_hidden;
+    };
+
+private:
+    /** Inherited from Drivers::Http. */
+    virtual bool get(
+            std::string path,
+            std::vector<char>& data,
+            http::Headers headers,
+            http::Query query) const override;
+
+    virtual std::vector<std::string> glob(
+            std::string path,
+            bool verbose) const override;
+
+    struct Resource
+    {
+        Resource(std::string baseUrl, std::string fullPath);
+
+        std::string url() const;
+        std::string host() const;
+
+        std::string baseUrl;
+        std::string bucket;
+        std::string object;
+    };
+
+    class FormattedTime
+    {
+    public:
+        FormattedTime();
+
+        const std::string& date() const { return m_date; }
+        const std::string& time() const { return m_time; }
+
+        std::string amazonDate() const
+        {
+            return date() + 'T' + time() + 'Z';
+        }
+
+    private:
+        std::string formatTime(const std::string& format) const;
+
+        const std::string m_date;
+        const std::string m_time;
+    };
+
+    class ApiV4
+    {
+    public:
+        ApiV4(
+                std::string verb,
+                const std::string& region,
+                const Resource& resource,
+                const S3::Auth& auth,
+                const http::Query& query,
+                const http::Headers& headers,
+                const std::vector<char>& data);
+
+        const http::Headers& headers() const { return m_headers; }
+        const http::Query& query() const { return m_query; }
+
+        const std::string& signedHeadersString() const
+        {
+            return m_signedHeadersString;
+        }
+
+    private:
+        std::string buildCanonicalRequest(
+                std::string verb,
+                const Resource& resource,
+                const http::Query& query,
+                const std::vector<char>& data) const;
+
+        std::string buildStringToSign(
+                const std::string& canonicalRequest) const;
+
+        std::string calculateSignature(
+                const std::string& stringToSign) const;
+
+        std::string getAuthHeader(
+                const std::string& signedHeadersString,
+                const std::string& signature) const;
+
+        const S3::Auth& m_auth;
+        const std::string m_region;
+        const FormattedTime m_formattedTime;
+
+        http::Headers m_headers;
+        http::Query m_query;
+        std::string m_canonicalHeadersString;
+        std::string m_signedHeadersString;
+    };
+
+    Auth m_auth;
+
+    std::string m_region;
+    std::string m_baseUrl;
+    http::Headers m_baseHeaders;
+};
+
+} // namespace drivers
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/drivers/s3.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/drivers/dropbox.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include <memory>
+#include <string>
+#include <vector>
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/drivers/http.hpp>
+#endif
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+
+namespace drivers
+{
+
+/** @brief %Dropbox driver. */
+class Dropbox : public Http
+{
+public:
+    class Auth;
+    Dropbox(http::Pool& pool, const Auth& auth);
+
+    /** Try to construct a %Dropbox Driver.  Searches @p json for the key
+     * `token` to construct a DropboxAuth.
+     */
+    static std::unique_ptr<Dropbox> create(
+            http::Pool& pool,
+            const Json::Value& json);
+
+    virtual std::string type() const override { return "dropbox"; }
+    virtual void put(
+            std::string path,
+            const std::vector<char>& data,
+            http::Headers headers,
+            http::Query query = http::Query()) const override;
+
+    /** @brief %Dropbox authentication information. */
+    class Auth
+    {
+    public:
+        explicit Auth(std::string token) : m_token(token) { }
+        const std::string& token() const { return m_token; }
+
+    private:
+        std::string m_token;
+    };
+
+private:
+    virtual bool get(
+            std::string path,
+            std::vector<char>& data,
+            http::Headers headers,
+            http::Query query) const override;
+
+    virtual std::unique_ptr<std::size_t> tryGetSize(
+            std::string path) const override;
+
+    virtual std::vector<std::string> glob(
+            std::string path,
+            bool verbose) const override;
+
+    std::string continueFileInfo(std::string cursor) const;
+
+    http::Headers httpGetHeaders() const;
+    http::Headers httpPostHeaders() const;
+
+    Auth m_auth;
+};
+
+} // namespace drivers
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/drivers/dropbox.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/drivers/test.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include <numeric>
+
+#ifndef ARBITER_IS_AMALGAMATION
+#include <arbiter/drivers/fs.hpp>
+#endif
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+
+class Arbiter;
+
+namespace drivers
+{
+
+/** @brief A filesystem driver that acts as if it were remote for testing
+ * purposes.
+ */
+class Test : public Fs
+{
+public:
+    static std::unique_ptr<Test> create(const Json::Value& json)
+    {
+        return std::unique_ptr<Test>(new Test());
+    }
+
+    virtual std::string type() const override { return "test"; }
+    virtual bool isRemote() const override { return true; }
+
+private:
+    virtual std::vector<std::string> glob(
+            std::string path,
+            bool verbose) const override
+    {
+        auto results(Fs::glob(path, verbose));
+        for (auto& p : results) p = type() + "://" + p;
+        return results;
+    }
+};
+
+} // namespace drivers
+
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/drivers/test.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/endpoint.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include <string>
+#include <vector>
+#include <memory>
+
+#ifndef ARBITER_IS_AMALGAMATION
+
+#include <arbiter/util/http.hpp>
+
+#endif
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+
+namespace drivers { class Http; }
+
+class Driver;
+
+/** @brief A utility class to drive usage from a common root directory.
+ *
+ * Acts as a reusable Driver based on a single root directory.  The interface
+ * is the same as a Driver, although @p path parameters represent subpaths
+ * which will be appended to the value from Endpoint::root to form a full
+ * path.
+ *
+ * An Endpoint may be created using Arbiter::getEndpoint.
+ */
+class Endpoint
+{
+    // Only Arbiter may construct.
+    friend class Arbiter;
+
+public:
+    /** Returns root directory name without any type-prefixing, and will
+     * always end with the character `/`.  For example `~/data/`, or
+     * `my-bucket/nested-directory/`.
+     */
+    std::string root() const;
+
+    /** Returns root directory name ending with the character `/`.  If
+     * `isRemote` is `true`, then the path will be prefixed with
+     * `type() + "://"`.
+     */
+    std::string prefixedRoot() const;
+
+    // Driver passthroughs.
+
+    /** Passthrough to Driver::type. */
+    std::string type() const;
+
+    /** Passthrough to Driver::isRemote. */
+    bool isRemote() const;
+
+    /** Negation of Endpoint::isRemote. */
+    bool isLocal() const;
+
+    /** See Arbiter::isHttpDerived. */
+    bool isHttpDerived() const;
+
+    /** Passthrough to Driver::get. */
+    std::string get(std::string subpath) const;
+
+    /** Passthrough to Driver::tryGet. */
+    std::unique_ptr<std::string> tryGet(std::string subpath) const;
+
+    /** Passthrough to Driver::getBinary. */
+    std::vector<char> getBinary(std::string subpath) const;
+
+    /** Passthrough to Driver::tryGetBinary. */
+    std::unique_ptr<std::vector<char>> tryGetBinary(std::string subpath) const;
+
+    /** Passthrough to Driver::getSize. */
+    std::size_t getSize(std::string subpath) const;
+
+    /** Passthrough to Driver::tryGetSize. */
+    std::unique_ptr<std::size_t> tryGetSize(std::string subpath) const;
+
+    /** Passthrough to Driver::put(std::string, const std::string&) const. */
+    void put(std::string subpath, const std::string& data) const;
+
+    /** Passthrough to
+     * Driver::put(std::string, const std::vector<char>&) const.
+     */
+    void put(std::string subpath, const std::vector<char>& data) const;
+
+    // HTTP-specific passthroughs.
+
+    /** Passthrough to
+     * drivers::Http::get(std::string, http::Headers, http::Query) const. */
+    std::string get(
+            std::string subpath,
+            http::Headers headers,
+            http::Query = http::Query()) const;
+
+    /** Passthrough to
+     * drivers::Http::tryGet(std::string, http::Headers, http::Query) const. */
+    std::unique_ptr<std::string> tryGet(
+            std::string subpath,
+            http::Headers headers,
+            http::Query = http::Query()) const;
+
+    /** Passthrough to
+     * drivers::Http::getBinary(std::string, http::Headers, http::Query) const.
+     */
+    std::vector<char> getBinary(
+            std::string path,
+            http::Headers headers,
+            http::Query query = http::Query()) const;
+
+    /** Passthrough to
+     * drivers::Http::tryGetBinary(std::string, http::Headers, http::Query) const.
+     */
+    std::unique_ptr<std::vector<char>> tryGetBinary(
+            std::string path,
+            http::Headers headers,
+            http::Query query = http::Query()) const;
+
+    /** Passthrough to
+     * drivers::Http::put(std::string, const std::string&, http::Headers, http::Query) const.
+     */
+    void put(
+            std::string path,
+            const std::string& data,
+            http::Headers headers,
+            http::Query query = http::Query()) const;
+
+    /** Passthrough to
+     * drivers::Http::put(std::string, const std::vector<char>&, http::Headers, http::Query) const.
+     */
+    void put(
+            std::string path,
+            const std::vector<char>& data,
+            http::Headers headers,
+            http::Query query = http::Query()) const;
+
+    // Endpoint specifics.
+
+    /** Get the full path corresponding to this subpath.  The path will not
+     * be prefixed with the driver type or the `://` delimiter.
+     */
+    std::string fullPath(const std::string& subpath) const;
+
+    /** Get the full path corresponding to this subpath.  If `isRemote` is
+     * `true`, then the path will be prefixed with `type() + "://"`.
+     */
+    std::string prefixedFullPath(const std::string& subpath) const;
+
+    /** Get a further nested subpath relative to this Endpoint's root. */
+    Endpoint getSubEndpoint(std::string subpath) const;
+
+private:
+    Endpoint(const Driver& driver, std::string root);
+
+    // If `isRemote()`, returns the type and delimiter, otherwise returns an
+    // empty string.
+    std::string softPrefix() const;
+
+    const drivers::Http* tryGetHttpDriver() const;
+    const drivers::Http& getHttpDriver() const;
+
+    const Driver& m_driver;
+    std::string m_root;
+};
+
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/endpoint.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
+
+// //////////////////////////////////////////////////////////////////////
+// Beginning of content of file: arbiter/arbiter.hpp
+// //////////////////////////////////////////////////////////////////////
+
+#pragma once
+
+#include <vector>
+#include <string>
+
+#if defined(_WIN32) || defined(WIN32) || defined(_MSC_VER)
+#define ARBITER_WINDOWS
+#endif
+
+#ifndef ARBITER_IS_AMALGAMATION
+
+#include <arbiter/driver.hpp>
+#include <arbiter/endpoint.hpp>
+#include <arbiter/drivers/fs.hpp>
+#include <arbiter/drivers/test.hpp>
+#include <arbiter/drivers/http.hpp>
+#include <arbiter/drivers/s3.hpp>
+#include <arbiter/drivers/dropbox.hpp>
+
+#ifndef ARBITER_EXTERNAL_JSON
+#include <arbiter/third/json/json.hpp>
+#endif
+
+#endif
+
+
+
+#ifdef ARBITER_EXTERNAL_JSON
+#include <json/json.h>
+#endif
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+namespace ARBITER_CUSTOM_NAMESPACE
+{
+#endif
+
+namespace arbiter
+{
+
+/** @brief Exception class for all internally thrown runtime errors. */
+class ArbiterError : public std::runtime_error
+{
+public:
+    ArbiterError(std::string msg) : std::runtime_error(msg) { }
+};
+
+/** @brief The primary interface for storage abstraction.
+ *
+ * The Arbiter is the primary layer of abstraction for all supported Driver
+ * instances, allowing remote paths to be treated as a simple filesystem or
+ * key-value store.  Routing to specialized drivers is based on a substring
+ * comparison of an incoming path's delimited type, for example
+ * `http://arbiter.io/data.txt` would route to the HTTP driver and
+ * `s3://my-bucket/data.txt` would route to the S3 driver.  Paths containing
+ * no prefixed type information are routed to the filesystem driver.
+ *
+ * All Arbiter operations are thread-safe except unless otherwise noted.
+ */
+class Arbiter
+{
+public:
+    /** Construct a basic Arbiter with only drivers the don't require
+     * external configuration parameters.
+     */
+    Arbiter();
+
+    /** @brief Construct an Arbiter with driver configurations. */
+    Arbiter(const Json::Value& json);
+
+    /** True if a Driver has been registered for this file type. */
+    bool hasDriver(std::string path) const;
+
+    /** @brief Add a custom driver for the supplied type.
+     *
+     * After this operation completes, future requests into arbiter beginning
+     * with the prefix @p type followed by the delimiter `://` will be routed
+     * to the supplied @p driver.  If a Driver of type @p type already exists,
+     * the supplied @p driver will replace it.
+     *
+     * This operation will throw ArbiterError if @p driver is empty.
+     *
+     * @note This operation is not thread-safe.
+     */
+    void addDriver(std::string type, std::unique_ptr<Driver> driver);
+
+    /** Get data or throw if inaccessible. */
+    std::string get(std::string path) const;
+
+    /** Get data if accessible. */
+    std::unique_ptr<std::string> tryGet(std::string path) const;
+
+    /** Get data in binary form or throw if inaccessible. */
+    std::vector<char> getBinary(std::string path) const;
+
+    /** Get data in binary form if accessible. */
+    std::unique_ptr<std::vector<char>> tryGetBinary(std::string path) const;
+
+    /** Get file size in bytes or throw if inaccessible. */
+    std::size_t getSize(std::string path) const;
+
+    /** Get file size in bytes if accessible. */
+    std::unique_ptr<std::size_t> tryGetSize(std::string path) const;
+
+    /** Write data to path. */
+    void put(std::string path, const std::string& data) const;
+
+    /** Write data to path. */
+    void put(std::string path, const std::vector<char>& data) const;
+
+    /** Get data with additional HTTP-specific parameters.  Throws if
+     * isHttpDerived is false for this path. */
+    std::string get(
+            std::string path,
+            http::Headers headers,
+            http::Query query = http::Query()) const;
+
+    /** Get data with additional HTTP-specific parameters.  Throws if
+     * isHttpDerived is false for this path. */
+    std::unique_ptr<std::string> tryGet(
+            std::string path,
+            http::Headers headers,
+            http::Query query = http::Query()) const;
+
+    /** Get data in binary form with additional HTTP-specific parameters.
+     * Throws if isHttpDerived is false for this path. */
+    std::vector<char> getBinary(
+            std::string path,
+            http::Headers headers,
+            http::Query query = http::Query()) const;
+
+    /** Get data in binary form with additional HTTP-specific parameters.
+     * Throws if isHttpDerived is false for this path. */
+    std::unique_ptr<std::vector<char>> tryGetBinary(
+            std::string path,
+            http::Headers headers,
+            http::Query query = http::Query()) const;
+
+    /** Write data to path with additional HTTP-specific parameters.
+     * Throws if isHttpDerived is false for this path. */
+    void put(
+            std::string path,
+            const std::string& data,
+            http::Headers headers,
+            http::Query query = http::Query()) const;
+
+    /** Write data to path with additional HTTP-specific parameters.
+     * Throws if isHttpDerived is false for this path. */
+    void put(
+            std::string path,
+            const std::vector<char>& data,
+            http::Headers headers,
+            http::Query query = http::Query()) const;
+
+    /** Copy data from @p src to @p dst.  @p src will be resolved with
+     * Arbiter::resolve prior to the copy, so globbed directories are supported.
+     * If @p src ends with a slash, it will be resolved with a recursive glob,
+     * in which case any nested directory structure will be recreated in @p dst.
+     *
+     * If @p dst is a filesystem path, fs::mkdirp will be called prior to the
+     * start of copying.  If @p src is a recursive glob, `fs::mkdirp` will
+     * be repeatedly called during copying to ensure that any nested directories
+     * are reproduced.
+     */
+    void copy(std::string src, std::string dst, bool verbose = false) const;
+
+    /** Copy the single file @p file to the destination @p to.  If @p to ends
+     * with a `/` or '\' character, then @p file will be copied into the
+     * directory @p to with the basename of @p file.  If @p does not end with a
+     * slash character, then @p to will be interpreted as a file path.
+     *
+     * If @p to is a local filesystem path, then `fs::mkdirp` will be called
+     * prior to copying.
+     */
+    void copyFile(std::string file, std::string to, bool verbose = false) const;
+
+    /** Returns true if this path is a remote path, or false if it is on the
+     * local filesystem.
+     */
+    bool isRemote(std::string path) const;
+
+    /** Returns true if this path is on the local filesystem, or false if it is
+     * remote.
+     */
+    bool isLocal(std::string path) const;
+
+    /** Returns true if this path exists.  Equivalent to:
+     * @code
+     * tryGetSize(path).get() != nullptr
+     * @endcode
+     *
+     * @note This means that an existing file of size zero will return true.
+     */
+    bool exists(std::string path) const;
+
+    /** Returns true if the protocol for this driver is build on HTTP, like the
+     * S3 and Dropbox drivers are.  If this returns true, http::Headers and
+     * http::Query parameter methods may be used for this path.
+     */
+    bool isHttpDerived(std::string path) const;
+
+    /** @brief Resolve a possibly globbed path.
+     *
+     * If @p path ends with `*`, then this operation will attempt to
+     * non-recursively glob all files matching the given wildcard.  Directories
+     * matching the wildcard and their contents are not returned.
+     *
+     * Examples:
+     * @code
+     * // Returns all files in `~/data`.  A directory `~/data/dir/` and its
+     * // contents would not be returned since this is non-recursive.
+     * a.resolve("~\data\*");
+     *
+     * // Returns all files matching `prefix-*` in bucket `my-bucket`.  An
+     * // object `s3://my-bucket/prefix-123/hello.txt` would not be returned,
+     * // but object `s3://my-bucket/prefix-456.txt` would.
+     * a.resolve("s3://my-bucket/prefix-*");
+     * @endcode
+     *
+     * @note Throws ArbiterError if the selected driver does not support
+     * globbing, for example the HTTP driver.
+     *
+     * @param path Path to search, may be a directory or file.  Globbing
+     * will only occur in the case of a directory.
+     *
+     * @param verbose If true, driver-specific status information may be
+     * printed to STDOUT during globbing.
+     *
+     * @return  If @p path ends with `*`, the results are the contents of the
+     * resulting non-recursive resolution of this path.  Otherwise, the results
+     * are a vector of size one containing only @p path itself, unaltered.
+     */
+    std::vector<std::string> resolve(
+            std::string path,
+            bool verbose = false) const;
+
+    /** @brief Get a reusable Endpoint for this root directory. */
+    Endpoint getEndpoint(std::string root) const;
+
+    /** Returns the Driver, if one can be found, for the given @p path.  The
+     * driver type is determined from the @p path substring prior to the
+     * delimiter `://`.  If this delimiter does not exist, then the filesystem
+     * driver is returned.  If the delimiter exists but a corresponding driver
+     * type is not found, ArbiterError is thrown.
+     *
+     * Optionally, filesystem paths may be explicitly prefixed with `file://`.
+     */
+    const Driver& getDriver(std::string path) const;
+
+    /** @brief Get a fs::LocalHandle to a possibly remote file.
+     *
+     * If @p path is remote (see Arbiter::isRemote), this operation will fetch
+     * the file contents and write them to the local filesystem in the
+     * directory represented by @p tmpEndpoint.  The contents of @p path are
+     * not copied if @p path is already local.
+     *
+     * There are no filename guarantees if @p path is remote.  Use
+     * LocalHandle::localPath to determine this.
+     *
+     * @note This operation will throw an ArbiterError if the path is remote
+     * and @p tmpEndpoint is also remote.
+     *
+     * @param path Possibly remote path to fetch.
+     *
+     * @param tempEndpoint If @path is remote, the local copy will be created
+     * at this Endpoint.
+     *
+     * @return A fs::LocalHandle for local access to the resulting file.
+     */
+    std::unique_ptr<fs::LocalHandle> getLocalHandle(
+            std::string path,
+            const Endpoint& tempEndpoint) const;
+
+    /** @brief Get a fs::LocalHandle to a possibly remote file.
+     *
+     * If @p tempPath is not specified, the environment will be searched for a
+     * temporary location.
+     */
+    std::unique_ptr<fs::LocalHandle> getLocalHandle(
+            std::string path,
+            std::string tempPath = "") const;
+
+    /** If no delimiter of "://" is found, returns "file".  Otherwise, returns
+     * the substring prior to but not including this delimiter.
+     */
+    static std::string getType(std::string path);
+
+    /** Strip the type and delimiter `://`, if they exist. */
+    static std::string stripType(std::string path);
+
+    /** Get the characters following the final instance of '.', or an empty
+     * string if there are no '.' characters. */
+    static std::string getExtension(std::string path);
+
+    /** Fetch the common HTTP pool, which may be useful when dynamically
+     * constructing adding a Driver via Arbiter::addDriver.
+     */
+    http::Pool& httpPool() { return m_pool; }
+
+private:
+    // Registers all available default Driver instances.
+    void init(const Json::Value& json);
+
+    const drivers::Http* tryGetHttpDriver(std::string path) const;
+    const drivers::Http& getHttpDriver(std::string path) const;
+
+    DriverMap m_drivers;
+    http::Pool m_pool;
+};
+
+} // namespace arbiter
+
+#ifdef ARBITER_CUSTOM_NAMESPACE
+}
+#endif
+
+// //////////////////////////////////////////////////////////////////////
+// End of content of file: arbiter/arbiter.hpp
+// //////////////////////////////////////////////////////////////////////
+
+
+
+
+
diff --git a/vendor/eigen-3.1.91/Eigen/CholmodSupport b/vendor/eigen-3.1.91/Eigen/CholmodSupport
deleted file mode 100644
index 745b884..0000000
--- a/vendor/eigen-3.1.91/Eigen/CholmodSupport
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef EIGEN_CHOLMODSUPPORT_MODULE_H
-#define EIGEN_CHOLMODSUPPORT_MODULE_H
-
-#include "SparseCore"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-extern "C" {
-  #include <cholmod.h>
-}
-
-/** \ingroup Support_modules
-  * \defgroup CholmodSupport_Module CholmodSupport module
-  *
-  * This module provides an interface to the Cholmod library which is part of the <a href="http://www.cise.ufl.edu/research/sparse/SuiteSparse/">suitesparse</a> package.
-  * It provides the two following main factorization classes:
-  * - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization.
-  * - class CholmodDecomposiiton: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of the underlying factorization method (supernodal or simplicial).
-  *
-  * For the sake of completeness, this module also propose the two following classes:
-  * - class CholmodSimplicialLLT
-  * - class CholmodSimplicialLDLT
-  * Note that these classes does not bring any particular advantage compared to the built-in
-  * SimplicialLLT and SimplicialLDLT factorization classes.
-  *
-  * \code
-  * #include <Eigen/CholmodSupport>
-  * \endcode
-  *
-  * In order to use this module, the cholmod headers must be accessible from the include paths, and your binary must be linked to the cholmod library and its dependencies.
-  * The dependencies depend on how cholmod has been compiled.
-  * For a cmake based project, you can use our FindCholmod.cmake module to help you in this task.
-  *
-  */
-
-#include "src/misc/Solve.h"
-#include "src/misc/SparseSolve.h"
-
-#include "src/CholmodSupport/CholmodSupport.h"
-
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_CHOLMODSUPPORT_MODULE_H
-
diff --git a/vendor/eigen-3.1.91/Eigen/Core b/vendor/eigen-3.1.91/Eigen/Core
deleted file mode 100644
index 8197c94..0000000
--- a/vendor/eigen-3.1.91/Eigen/Core
+++ /dev/null
@@ -1,377 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2007-2011 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_CORE_H
-#define EIGEN_CORE_H
-
-// first thing Eigen does: stop the compiler from committing suicide
-#include "src/Core/util/DisableStupidWarnings.h"
-
-// then include this file where all our macros are defined. It's really important to do it first because
-// it's where we do all the alignment settings (platform detection and honoring the user's will if he
-// defined e.g. EIGEN_DONT_ALIGN) so it needs to be done before we do anything with vectorization.
-#include "src/Core/util/Macros.h"
-
-#include <complex>
-
-// this include file manages BLAS and MKL related macros
-// and inclusion of their respective header files
-#include "src/Core/util/MKL_support.h"
-
-// if alignment is disabled, then disable vectorization. Note: EIGEN_ALIGN is the proper check, it takes into
-// account both the user's will (EIGEN_DONT_ALIGN) and our own platform checks
-#if !EIGEN_ALIGN
-  #ifndef EIGEN_DONT_VECTORIZE
-    #define EIGEN_DONT_VECTORIZE
-  #endif
-#endif
-
-#ifdef _MSC_VER
-  #include <malloc.h> // for _aligned_malloc -- need it regardless of whether vectorization is enabled
-  #if (_MSC_VER >= 1500) // 2008 or later
-    // Remember that usage of defined() in a #define is undefined by the standard.
-    // a user reported that in 64-bit mode, MSVC doesn't care to define _M_IX86_FP.
-    #if (defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) || defined(_M_X64)
-      #define EIGEN_SSE2_ON_MSVC_2008_OR_LATER
-    #endif
-  #endif
-#else
-  // Remember that usage of defined() in a #define is undefined by the standard
-  #if (defined __SSE2__) && ( (!defined __GNUC__) || (defined __INTEL_COMPILER) || EIGEN_GNUC_AT_LEAST(4,2) )
-    #define EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC
-  #endif
-#endif
-
-#ifndef EIGEN_DONT_VECTORIZE
-
-  #if defined (EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC) || defined(EIGEN_SSE2_ON_MSVC_2008_OR_LATER)
-
-    // Defines symbols for compile-time detection of which instructions are
-    // used.
-    // EIGEN_VECTORIZE_YY is defined if and only if the instruction set YY is used
-    #define EIGEN_VECTORIZE
-    #define EIGEN_VECTORIZE_SSE
-    #define EIGEN_VECTORIZE_SSE2
-
-    // Detect sse3/ssse3/sse4:
-    // gcc and icc defines __SSE3__, ...
-    // there is no way to know about this on msvc. You can define EIGEN_VECTORIZE_SSE* if you
-    // want to force the use of those instructions with msvc.
-    #ifdef __SSE3__
-      #define EIGEN_VECTORIZE_SSE3
-    #endif
-    #ifdef __SSSE3__
-      #define EIGEN_VECTORIZE_SSSE3
-    #endif
-    #ifdef __SSE4_1__
-      #define EIGEN_VECTORIZE_SSE4_1
-    #endif
-    #ifdef __SSE4_2__
-      #define EIGEN_VECTORIZE_SSE4_2
-    #endif
-
-    // include files
-
-    // This extern "C" works around a MINGW-w64 compilation issue
-    // https://sourceforge.net/tracker/index.php?func=detail&aid=3018394&group_id=202880&atid=983354
-    // In essence, intrin.h is included by windows.h and also declares intrinsics (just as emmintrin.h etc. below do).
-    // However, intrin.h uses an extern "C" declaration, and g++ thus complains of duplicate declarations
-    // with conflicting linkage.  The linkage for intrinsics doesn't matter, but at that stage the compiler doesn't know;
-    // so, to avoid compile errors when windows.h is included after Eigen/Core, ensure intrinsics are extern "C" here too.
-    // notice that since these are C headers, the extern "C" is theoretically needed anyways.
-    extern "C" {
-      // In theory we should only include immintrin.h and not the other *mmintrin.h header files directly.
-      // Doing so triggers some issues with ICC. However old gcc versions seems to not have this file, thus:
-      #ifdef __INTEL_COMPILER
-        #include <immintrin.h>
-      #else
-        #include <emmintrin.h>
-        #include <xmmintrin.h>
-        #ifdef  EIGEN_VECTORIZE_SSE3
-        #include <pmmintrin.h>
-        #endif
-        #ifdef EIGEN_VECTORIZE_SSSE3
-        #include <tmmintrin.h>
-        #endif
-        #ifdef EIGEN_VECTORIZE_SSE4_1
-        #include <smmintrin.h>
-        #endif
-        #ifdef EIGEN_VECTORIZE_SSE4_2
-        #include <nmmintrin.h>
-        #endif
-      #endif
-    } // end extern "C"
-  #elif defined __ALTIVEC__
-    #define EIGEN_VECTORIZE
-    #define EIGEN_VECTORIZE_ALTIVEC
-    #include <altivec.h>
-    // We need to #undef all these ugly tokens defined in <altivec.h>
-    // => use __vector instead of vector
-    #undef bool
-    #undef vector
-    #undef pixel
-  #elif defined  __ARM_NEON__
-    #define EIGEN_VECTORIZE
-    #define EIGEN_VECTORIZE_NEON
-    #include <arm_neon.h>
-  #endif
-#endif
-
-#if (defined _OPENMP) && (!defined EIGEN_DONT_PARALLELIZE)
-  #define EIGEN_HAS_OPENMP
-#endif
-
-#ifdef EIGEN_HAS_OPENMP
-#include <omp.h>
-#endif
-
-// MSVC for windows mobile does not have the errno.h file
-#if !(defined(_MSC_VER) && defined(_WIN32_WCE)) && !defined(__ARMCC_VERSION)
-#define EIGEN_HAS_ERRNO
-#endif
-
-#ifdef EIGEN_HAS_ERRNO
-#include <cerrno>
-#endif
-#include <cstddef>
-#include <cstdlib>
-#include <cmath>
-#include <cassert>
-#include <functional>
-#include <iosfwd>
-#include <cstring>
-#include <string>
-#include <limits>
-#include <climits> // for CHAR_BIT
-// for min/max:
-#include <algorithm>
-
-// for outputting debug info
-#ifdef EIGEN_DEBUG_ASSIGN
-#include <iostream>
-#endif
-
-// required for __cpuid, needs to be included after cmath
-#if defined(_MSC_VER) && (defined(_M_IX86)||defined(_M_X64))
-  #include <intrin.h>
-#endif
-
-#if defined(_CPPUNWIND) || defined(__EXCEPTIONS)
-  #define EIGEN_EXCEPTIONS
-#endif
-
-#ifdef EIGEN_EXCEPTIONS
-  #include <new>
-#endif
-
-/** \brief Namespace containing all symbols from the %Eigen library. */
-namespace Eigen {
-
-inline static const char *SimdInstructionSetsInUse(void) {
-#if defined(EIGEN_VECTORIZE_SSE4_2)
-  return "SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2";
-#elif defined(EIGEN_VECTORIZE_SSE4_1)
-  return "SSE, SSE2, SSE3, SSSE3, SSE4.1";
-#elif defined(EIGEN_VECTORIZE_SSSE3)
-  return "SSE, SSE2, SSE3, SSSE3";
-#elif defined(EIGEN_VECTORIZE_SSE3)
-  return "SSE, SSE2, SSE3";
-#elif defined(EIGEN_VECTORIZE_SSE2)
-  return "SSE, SSE2";
-#elif defined(EIGEN_VECTORIZE_ALTIVEC)
-  return "AltiVec";
-#elif defined(EIGEN_VECTORIZE_NEON)
-  return "ARM NEON";
-#else
-  return "None";
-#endif
-}
-
-} // end namespace Eigen
-
-#define STAGE10_FULL_EIGEN2_API             10
-#define STAGE20_RESOLVE_API_CONFLICTS       20
-#define STAGE30_FULL_EIGEN3_API             30
-#define STAGE40_FULL_EIGEN3_STRICTNESS      40
-#define STAGE99_NO_EIGEN2_SUPPORT           99
-
-#if   defined EIGEN2_SUPPORT_STAGE40_FULL_EIGEN3_STRICTNESS
-  #define EIGEN2_SUPPORT
-  #define EIGEN2_SUPPORT_STAGE STAGE40_FULL_EIGEN3_STRICTNESS
-#elif defined EIGEN2_SUPPORT_STAGE30_FULL_EIGEN3_API
-  #define EIGEN2_SUPPORT
-  #define EIGEN2_SUPPORT_STAGE STAGE30_FULL_EIGEN3_API
-#elif defined EIGEN2_SUPPORT_STAGE20_RESOLVE_API_CONFLICTS
-  #define EIGEN2_SUPPORT
-  #define EIGEN2_SUPPORT_STAGE STAGE20_RESOLVE_API_CONFLICTS
-#elif defined EIGEN2_SUPPORT_STAGE10_FULL_EIGEN2_API
-  #define EIGEN2_SUPPORT
-  #define EIGEN2_SUPPORT_STAGE STAGE10_FULL_EIGEN2_API
-#elif defined EIGEN2_SUPPORT
-  // default to stage 3, that's what it's always meant
-  #define EIGEN2_SUPPORT_STAGE30_FULL_EIGEN3_API
-  #define EIGEN2_SUPPORT_STAGE STAGE30_FULL_EIGEN3_API
-#else
-  #define EIGEN2_SUPPORT_STAGE STAGE99_NO_EIGEN2_SUPPORT
-#endif
-
-#ifdef EIGEN2_SUPPORT
-#undef minor
-#endif
-
-// we use size_t frequently and we'll never remember to prepend it with std:: everytime just to
-// ensure QNX/QCC support
-using std::size_t;
-// gcc 4.6.0 wants std:: for ptrdiff_t 
-using std::ptrdiff_t;
-
-/** \defgroup Core_Module Core module
-  * This is the main module of Eigen providing dense matrix and vector support
-  * (both fixed and dynamic size) with all the features corresponding to a BLAS library
-  * and much more...
-  *
-  * \code
-  * #include <Eigen/Core>
-  * \endcode
-  */
-
-#include "src/Core/util/Constants.h"
-#include "src/Core/util/ForwardDeclarations.h"
-#include "src/Core/util/Meta.h"
-#include "src/Core/util/XprHelper.h"
-#include "src/Core/util/StaticAssert.h"
-#include "src/Core/util/Memory.h"
-
-#include "src/Core/NumTraits.h"
-#include "src/Core/MathFunctions.h"
-#include "src/Core/GenericPacketMath.h"
-
-#if defined EIGEN_VECTORIZE_SSE
-  #include "src/Core/arch/SSE/PacketMath.h"
-  #include "src/Core/arch/SSE/MathFunctions.h"
-  #include "src/Core/arch/SSE/Complex.h"
-#elif defined EIGEN_VECTORIZE_ALTIVEC
-  #include "src/Core/arch/AltiVec/PacketMath.h"
-  #include "src/Core/arch/AltiVec/Complex.h"
-#elif defined EIGEN_VECTORIZE_NEON
-  #include "src/Core/arch/NEON/PacketMath.h"
-  #include "src/Core/arch/NEON/Complex.h"
-#endif
-
-#include "src/Core/arch/Default/Settings.h"
-
-#include "src/Core/Functors.h"
-#include "src/Core/DenseCoeffsBase.h"
-#include "src/Core/DenseBase.h"
-#include "src/Core/MatrixBase.h"
-#include "src/Core/EigenBase.h"
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN // work around Doxygen bug triggered by Assign.h r814874
-                                // at least confirmed with Doxygen 1.5.5 and 1.5.6
-  #include "src/Core/Assign.h"
-#endif
-
-#include "src/Core/util/BlasUtil.h"
-#include "src/Core/DenseStorage.h"
-#include "src/Core/NestByValue.h"
-#include "src/Core/ForceAlignedAccess.h"
-#include "src/Core/ReturnByValue.h"
-#include "src/Core/NoAlias.h"
-#include "src/Core/PlainObjectBase.h"
-#include "src/Core/Matrix.h"
-#include "src/Core/Array.h"
-#include "src/Core/CwiseBinaryOp.h"
-#include "src/Core/CwiseUnaryOp.h"
-#include "src/Core/CwiseNullaryOp.h"
-#include "src/Core/CwiseUnaryView.h"
-#include "src/Core/SelfCwiseBinaryOp.h"
-#include "src/Core/Dot.h"
-#include "src/Core/StableNorm.h"
-#include "src/Core/MapBase.h"
-#include "src/Core/Stride.h"
-#include "src/Core/Map.h"
-#include "src/Core/Block.h"
-#include "src/Core/VectorBlock.h"
-#include "src/Core/Ref.h"
-#include "src/Core/Transpose.h"
-#include "src/Core/DiagonalMatrix.h"
-#include "src/Core/Diagonal.h"
-#include "src/Core/DiagonalProduct.h"
-#include "src/Core/PermutationMatrix.h"
-#include "src/Core/Transpositions.h"
-#include "src/Core/Redux.h"
-#include "src/Core/Visitor.h"
-#include "src/Core/Fuzzy.h"
-#include "src/Core/IO.h"
-#include "src/Core/Swap.h"
-#include "src/Core/CommaInitializer.h"
-#include "src/Core/Flagged.h"
-#include "src/Core/ProductBase.h"
-#include "src/Core/GeneralProduct.h"
-#include "src/Core/TriangularMatrix.h"
-#include "src/Core/SelfAdjointView.h"
-#include "src/Core/products/GeneralBlockPanelKernel.h"
-#include "src/Core/products/Parallelizer.h"
-#include "src/Core/products/CoeffBasedProduct.h"
-#include "src/Core/products/GeneralMatrixVector.h"
-#include "src/Core/products/GeneralMatrixMatrix.h"
-#include "src/Core/SolveTriangular.h"
-#include "src/Core/products/GeneralMatrixMatrixTriangular.h"
-#include "src/Core/products/SelfadjointMatrixVector.h"
-#include "src/Core/products/SelfadjointMatrixMatrix.h"
-#include "src/Core/products/SelfadjointProduct.h"
-#include "src/Core/products/SelfadjointRank2Update.h"
-#include "src/Core/products/TriangularMatrixVector.h"
-#include "src/Core/products/TriangularMatrixMatrix.h"
-#include "src/Core/products/TriangularSolverMatrix.h"
-#include "src/Core/products/TriangularSolverVector.h"
-#include "src/Core/BandMatrix.h"
-#include "src/Core/CoreIterators.h"
-
-#include "src/Core/BooleanRedux.h"
-#include "src/Core/Select.h"
-#include "src/Core/VectorwiseOp.h"
-#include "src/Core/Random.h"
-#include "src/Core/Replicate.h"
-#include "src/Core/Reverse.h"
-#include "src/Core/ArrayBase.h"
-#include "src/Core/ArrayWrapper.h"
-
-#ifdef EIGEN_ENABLE_EVALUATORS
-#include "src/Core/Product.h"
-#include "src/Core/CoreEvaluators.h"
-#include "src/Core/AssignEvaluator.h"
-#include "src/Core/ProductEvaluators.h"
-#endif
-
-#ifdef EIGEN_USE_BLAS
-#include "src/Core/products/GeneralMatrixMatrix_MKL.h"
-#include "src/Core/products/GeneralMatrixVector_MKL.h"
-#include "src/Core/products/GeneralMatrixMatrixTriangular_MKL.h"
-#include "src/Core/products/SelfadjointMatrixMatrix_MKL.h"
-#include "src/Core/products/SelfadjointMatrixVector_MKL.h"
-#include "src/Core/products/TriangularMatrixMatrix_MKL.h"
-#include "src/Core/products/TriangularMatrixVector_MKL.h"
-#include "src/Core/products/TriangularSolverMatrix_MKL.h"
-#endif // EIGEN_USE_BLAS
-
-#ifdef EIGEN_USE_MKL_VML
-#include "src/Core/Assign_MKL.h"
-#endif
-
-#include "src/Core/GlobalFunctions.h"
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#ifdef EIGEN2_SUPPORT
-#include "Eigen2Support"
-#endif
-
-#endif // EIGEN_CORE_H
diff --git a/vendor/eigen-3.1.91/Eigen/Eigen2Support b/vendor/eigen-3.1.91/Eigen/Eigen2Support
deleted file mode 100644
index 36156d2..0000000
--- a/vendor/eigen-3.1.91/Eigen/Eigen2Support
+++ /dev/null
@@ -1,82 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN2SUPPORT_H
-#define EIGEN2SUPPORT_H
-
-#if (!defined(EIGEN2_SUPPORT)) || (!defined(EIGEN_CORE_H))
-#error Eigen2 support must be enabled by defining EIGEN2_SUPPORT before including any Eigen header
-#endif
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-/** \ingroup Support_modules
-  * \defgroup Eigen2Support_Module Eigen2 support module
-  * This module provides a couple of deprecated functions improving the compatibility with Eigen2.
-  *
-  * To use it, define EIGEN2_SUPPORT before including any Eigen header
-  * \code
-  * #define EIGEN2_SUPPORT
-  * \endcode
-  *
-  */
-
-#include "src/Eigen2Support/Macros.h"
-#include "src/Eigen2Support/Memory.h"
-#include "src/Eigen2Support/Meta.h"
-#include "src/Eigen2Support/Lazy.h"
-#include "src/Eigen2Support/Cwise.h"
-#include "src/Eigen2Support/CwiseOperators.h"
-#include "src/Eigen2Support/TriangularSolver.h"
-#include "src/Eigen2Support/Block.h"
-#include "src/Eigen2Support/VectorBlock.h"
-#include "src/Eigen2Support/Minor.h"
-#include "src/Eigen2Support/MathFunctions.h"
-
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-// Eigen2 used to include iostream
-#include<iostream>
-
-#define EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, SizeSuffix) \
-using Eigen::Matrix##SizeSuffix##TypeSuffix; \
-using Eigen::Vector##SizeSuffix##TypeSuffix; \
-using Eigen::RowVector##SizeSuffix##TypeSuffix;
-
-#define EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(TypeSuffix) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 2) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 3) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 4) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, X) \
-
-#define EIGEN_USING_MATRIX_TYPEDEFS \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(i) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(f) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(d) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(cf) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(cd)
-
-#define USING_PART_OF_NAMESPACE_EIGEN \
-EIGEN_USING_MATRIX_TYPEDEFS \
-using Eigen::Matrix; \
-using Eigen::MatrixBase; \
-using Eigen::ei_random; \
-using Eigen::ei_real; \
-using Eigen::ei_imag; \
-using Eigen::ei_conj; \
-using Eigen::ei_abs; \
-using Eigen::ei_abs2; \
-using Eigen::ei_sqrt; \
-using Eigen::ei_exp; \
-using Eigen::ei_log; \
-using Eigen::ei_sin; \
-using Eigen::ei_cos;
-
-#endif // EIGEN2SUPPORT_H
diff --git a/vendor/eigen-3.1.91/Eigen/SPQRSupport b/vendor/eigen-3.1.91/Eigen/SPQRSupport
deleted file mode 100644
index 213e028..0000000
--- a/vendor/eigen-3.1.91/Eigen/SPQRSupport
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef EIGEN_SPQRSUPPORT_MODULE_H
-#define EIGEN_SPQRSUPPORT_MODULE_H
-
-#include "SparseCore"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-#include "SuiteSparseQR.hpp"
-
-/** \ingroup Support_modules
-  * \defgroup SPQRSupport_Module SuiteSparseQR module
-  * 
-  * This module provides an interface to the SPQR library, which is part of the <a href="http://www.cise.ufl.edu/research/sparse/SuiteSparse/">suitesparse</a> package.
-  *
-  * \code
-  * #include <Eigen/SPQRSupport>
-  * \endcode
-  *
-  * In order to use this module, the SPQR headers must be accessible from the include paths, and your binary must be linked to the SPQR library and its dependencies (Cholmod, AMD, COLAMD,...).
-  * For a cmake based project, you can use our FindSPQR.cmake and FindCholmod.Cmake modules
-  *
-  */
-
-#include "src/misc/Solve.h"
-#include "src/misc/SparseSolve.h"
-#include "src/CholmodSupport/CholmodSupport.h"
-#include "src/SPQRSupport/SuiteSparseQRSupport.h"
-
-#endif
\ No newline at end of file
diff --git a/vendor/eigen-3.1.91/Eigen/Sparse b/vendor/eigen-3.1.91/Eigen/Sparse
deleted file mode 100644
index 9d4da4c..0000000
--- a/vendor/eigen-3.1.91/Eigen/Sparse
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef EIGEN_SPARSE_MODULE_H
-#define EIGEN_SPARSE_MODULE_H
-
-/** defgroup Sparse_modules Sparse modules
-  *
-  * Meta-module including all related modules:
-  * - SparseCore
-  * - OrderingMethods
-  * - SparseCholesky
-  * - SparseLU
-  * - SparseQR
-  * - IterativeLinearSolvers
-  *
-  * \code
-  * #include <Eigen/Sparse>
-  * \endcode
-  */
-
-#include "SparseCore"
-#include "OrderingMethods"
-#include "SparseCholesky"
-#include "SparseLU"
-#include "SparseQR"
-#include "IterativeLinearSolvers"
-
-#endif // EIGEN_SPARSE_MODULE_H
-
diff --git a/vendor/eigen-3.1.91/Eigen/SparseCholesky b/vendor/eigen-3.1.91/Eigen/SparseCholesky
deleted file mode 100644
index 800f17b..0000000
--- a/vendor/eigen-3.1.91/Eigen/SparseCholesky
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef EIGEN_SPARSECHOLESKY_MODULE_H
-#define EIGEN_SPARSECHOLESKY_MODULE_H
-
-#include "SparseCore"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-/** 
-  * \defgroup SparseCholesky_Module SparseCholesky module
-  *
-  * This module currently provides two variants of the direct sparse Cholesky decomposition for selfadjoint (hermitian) matrices.
-  * Those decompositions are accessible via the following classes:
-  *  - SimplicialLLt,
-  *  - SimplicialLDLt
-  *
-  * Such problems can also be solved using the ConjugateGradient solver from the IterativeLinearSolvers module.
-  *
-  * \code
-  * #include <Eigen/SparseCholesky>
-  * \endcode
-  */
-
-#ifdef EIGEN_MPL2_ONLY
-#error The SparseCholesky module has nothing to offer in MPL2 only mode
-#endif
-
-#include "src/misc/Solve.h"
-#include "src/misc/SparseSolve.h"
-
-#include "src/SparseCholesky/SimplicialCholesky.h"
-
-#ifndef EIGEN_MPL2_ONLY
-#include "src/SparseCholesky/SimplicialCholesky_impl.h"
-#endif
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_SPARSECHOLESKY_MODULE_H
diff --git a/vendor/eigen-3.1.91/Eigen/SparseCore b/vendor/eigen-3.1.91/Eigen/SparseCore
deleted file mode 100644
index 9b5be5e..0000000
--- a/vendor/eigen-3.1.91/Eigen/SparseCore
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef EIGEN_SPARSECORE_MODULE_H
-#define EIGEN_SPARSECORE_MODULE_H
-
-#include "Core"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-#include <vector>
-#include <map>
-#include <cstdlib>
-#include <cstring>
-#include <algorithm>
-
-/** 
-  * \defgroup SparseCore_Module SparseCore module
-  *
-  * This module provides a sparse matrix representation, and basic associatd matrix manipulations
-  * and operations.
-  *
-  * See the \ref TutorialSparse "Sparse tutorial"
-  *
-  * \code
-  * #include <Eigen/SparseCore>
-  * \endcode
-  *
-  * This module depends on: Core.
-  */
-
-namespace Eigen {
-
-/** The type used to identify a general sparse storage. */
-struct Sparse {};
-
-}
-
-#include "src/SparseCore/SparseUtil.h"
-#include "src/SparseCore/SparseMatrixBase.h"
-#include "src/SparseCore/CompressedStorage.h"
-#include "src/SparseCore/AmbiVector.h"
-#include "src/SparseCore/SparseMatrix.h"
-#include "src/SparseCore/MappedSparseMatrix.h"
-#include "src/SparseCore/SparseVector.h"
-#include "src/SparseCore/SparseBlock.h"
-#include "src/SparseCore/SparseTranspose.h"
-#include "src/SparseCore/SparseCwiseUnaryOp.h"
-#include "src/SparseCore/SparseCwiseBinaryOp.h"
-#include "src/SparseCore/SparseDot.h"
-#include "src/SparseCore/SparsePermutation.h"
-#include "src/SparseCore/SparseRedux.h"
-#include "src/SparseCore/SparseFuzzy.h"
-#include "src/SparseCore/ConservativeSparseSparseProduct.h"
-#include "src/SparseCore/SparseSparseProductWithPruning.h"
-#include "src/SparseCore/SparseProduct.h"
-#include "src/SparseCore/SparseDenseProduct.h"
-#include "src/SparseCore/SparseDiagonalProduct.h"
-#include "src/SparseCore/SparseTriangularView.h"
-#include "src/SparseCore/SparseSelfAdjointView.h"
-#include "src/SparseCore/TriangularSolver.h"
-#include "src/SparseCore/SparseView.h"
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_SPARSECORE_MODULE_H
-
diff --git a/vendor/eigen-3.1.91/Eigen/SparseLU b/vendor/eigen-3.1.91/Eigen/SparseLU
deleted file mode 100644
index 38b38b5..0000000
--- a/vendor/eigen-3.1.91/Eigen/SparseLU
+++ /dev/null
@@ -1,46 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSELU_MODULE_H
-#define EIGEN_SPARSELU_MODULE_H
-
-#include "SparseCore"
-
-/** 
-  * \defgroup SparseLU_Module SparseLU module
-  * This module defines a supernodal factorization of general sparse matrices.
-  * The code is fully optimized for supernode-panel updates with specialized kernels.
-  * Please, see the documentation of the SparseLU class for more details.
-  */
-
-// Ordering interface
-#include "OrderingMethods"
-
-#include "src/SparseLU/SparseLU_gemm_kernel.h"
-
-#include "src/SparseLU/SparseLU_Structs.h"
-#include "src/SparseLU/SparseLU_SupernodalMatrix.h"
-#include "src/SparseLU/SparseLUImpl.h"
-#include "src/SparseCore/SparseColEtree.h"
-#include "src/SparseLU/SparseLU_Memory.h"
-#include "src/SparseLU/SparseLU_heap_relax_snode.h"
-#include "src/SparseLU/SparseLU_relax_snode.h"
-#include "src/SparseLU/SparseLU_pivotL.h"
-#include "src/SparseLU/SparseLU_panel_dfs.h"
-#include "src/SparseLU/SparseLU_kernel_bmod.h"
-#include "src/SparseLU/SparseLU_panel_bmod.h"
-#include "src/SparseLU/SparseLU_column_dfs.h"
-#include "src/SparseLU/SparseLU_column_bmod.h"
-#include "src/SparseLU/SparseLU_copy_to_ucol.h"
-#include "src/SparseLU/SparseLU_pruneL.h"
-#include "src/SparseLU/SparseLU_Utils.h"
-#include "src/SparseLU/SparseLU.h"
-
-#endif // EIGEN_SPARSELU_MODULE_H
diff --git a/vendor/eigen-3.1.91/Eigen/SparseQR b/vendor/eigen-3.1.91/Eigen/SparseQR
deleted file mode 100644
index f51913f..0000000
--- a/vendor/eigen-3.1.91/Eigen/SparseQR
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef EIGEN_SPARSEQR_MODULE_H
-#define EIGEN_SPARSEQR_MODULE_H
-
-#include "SparseCore"
-#include "OrderingMethods"
-#include "src/Core/util/DisableStupidWarnings.h"
-
-/** \defgroup SparseQR_Module SparseQR module
-  * \brief Provides QR decomposition for sparse matrices
-  * 
-  * This module provides a simplicial version of the left-looking Sparse QR decomposition. 
-  * The columns of the input matrix should be reordered to limit the fill-in during the 
-  * decomposition. Built-in methods (COLAMD, AMD) or external  methods (METIS) can be used to this end.
-  * See the \link OrderingMethods_Module OrderingMethods\endlink module for the list 
-  * of built-in and external ordering methods.
-  * 
-  * \code
-  * #include <Eigen/SparseQR>
-  * \endcode
-  * 
-  * 
-  */
-#include "OrderingMethods"
-#include "src/SparseCore/SparseColEtree.h"
-#include "src/SparseQR/SparseQR.h"
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif
diff --git a/vendor/eigen-3.1.91/Eigen/UmfPackSupport b/vendor/eigen-3.1.91/Eigen/UmfPackSupport
deleted file mode 100644
index 984f64a..0000000
--- a/vendor/eigen-3.1.91/Eigen/UmfPackSupport
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef EIGEN_UMFPACKSUPPORT_MODULE_H
-#define EIGEN_UMFPACKSUPPORT_MODULE_H
-
-#include "SparseCore"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-extern "C" {
-#include <umfpack.h>
-}
-
-/** \ingroup Support_modules
-  * \defgroup UmfPackSupport_Module UmfPackSupport module
-  *
-  * This module provides an interface to the UmfPack library which is part of the <a href="http://www.cise.ufl.edu/research/sparse/SuiteSparse/">suitesparse</a> package.
-  * It provides the following factorization class:
-  * - class UmfPackLU: a multifrontal sequential LU factorization.
-  *
-  * \code
-  * #include <Eigen/UmfPackSupport>
-  * \endcode
-  *
-  * In order to use this module, the umfpack headers must be accessible from the include paths, and your binary must be linked to the umfpack library and its dependencies.
-  * The dependencies depend on how umfpack has been compiled.
-  * For a cmake based project, you can use our FindUmfPack.cmake module to help you in this task.
-  *
-  */
-
-#include "src/misc/Solve.h"
-#include "src/misc/SparseSolve.h"
-
-#include "src/UmfPackSupport/UmfPackSupport.h"
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_UMFPACKSUPPORT_MODULE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Cholesky/LDLT.h b/vendor/eigen-3.1.91/Eigen/src/Cholesky/LDLT.h
deleted file mode 100644
index 4c0be9d..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Cholesky/LDLT.h
+++ /dev/null
@@ -1,599 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2009 Keir Mierle <mierle at gmail.com>
-// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2011 Timothy E. Holy <tim.holy at gmail.com >
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_LDLT_H
-#define EIGEN_LDLT_H
-
-namespace Eigen { 
-
-namespace internal {
-template<typename MatrixType, int UpLo> struct LDLT_Traits;
-}
-
-/** \ingroup Cholesky_Module
-  *
-  * \class LDLT
-  *
-  * \brief Robust Cholesky decomposition of a matrix with pivoting
-  *
-  * \param MatrixType the type of the matrix of which to compute the LDL^T Cholesky decomposition
-  * \param UpLo the triangular part that will be used for the decompositon: Lower (default) or Upper.
-  *             The other triangular part won't be read.
-  *
-  * Perform a robust Cholesky decomposition of a positive semidefinite or negative semidefinite
-  * matrix \f$ A \f$ such that \f$ A =  P^TLDL^*P \f$, where P is a permutation matrix, L
-  * is lower triangular with a unit diagonal and D is a diagonal matrix.
-  *
-  * The decomposition uses pivoting to ensure stability, so that L will have
-  * zeros in the bottom right rank(A) - n submatrix. Avoiding the square root
-  * on D also stabilizes the computation.
-  *
-  * Remember that Cholesky decompositions are not rank-revealing. Also, do not use a Cholesky
-  * decomposition to determine whether a system of equations has a solution.
-  *
-  * \sa MatrixBase::ldlt(), class LLT
-  */
-template<typename _MatrixType, int _UpLo> class LDLT
-{
-  public:
-    typedef _MatrixType MatrixType;
-    enum {
-      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-      Options = MatrixType::Options & ~RowMajorBit, // these are the options for the TmpMatrixType, we need a ColMajor matrix here!
-      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
-      UpLo = _UpLo
-    };
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
-    typedef typename MatrixType::Index Index;
-    typedef Matrix<Scalar, RowsAtCompileTime, 1, Options, MaxRowsAtCompileTime, 1> TmpMatrixType;
-
-    typedef Transpositions<RowsAtCompileTime, MaxRowsAtCompileTime> TranspositionType;
-    typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationType;
-
-    typedef internal::LDLT_Traits<MatrixType,UpLo> Traits;
-
-    /** \brief Default Constructor.
-      *
-      * The default constructor is useful in cases in which the user intends to
-      * perform decompositions via LDLT::compute(const MatrixType&).
-      */
-    LDLT() : m_matrix(), m_transpositions(), m_isInitialized(false) {}
-
-    /** \brief Default Constructor with memory preallocation
-      *
-      * Like the default constructor but with preallocation of the internal data
-      * according to the specified problem \a size.
-      * \sa LDLT()
-      */
-    LDLT(Index size)
-      : m_matrix(size, size),
-        m_transpositions(size),
-        m_temporary(size),
-        m_isInitialized(false)
-    {}
-
-    /** \brief Constructor with decomposition
-      *
-      * This calculates the decomposition for the input \a matrix.
-      * \sa LDLT(Index size)
-      */
-    LDLT(const MatrixType& matrix)
-      : m_matrix(matrix.rows(), matrix.cols()),
-        m_transpositions(matrix.rows()),
-        m_temporary(matrix.rows()),
-        m_isInitialized(false)
-    {
-      compute(matrix);
-    }
-
-    /** Clear any existing decomposition
-     * \sa rankUpdate(w,sigma)
-     */
-    void setZero()
-    {
-      m_isInitialized = false;
-    }
-
-    /** \returns a view of the upper triangular matrix U */
-    inline typename Traits::MatrixU matrixU() const
-    {
-      eigen_assert(m_isInitialized && "LDLT is not initialized.");
-      return Traits::getU(m_matrix);
-    }
-
-    /** \returns a view of the lower triangular matrix L */
-    inline typename Traits::MatrixL matrixL() const
-    {
-      eigen_assert(m_isInitialized && "LDLT is not initialized.");
-      return Traits::getL(m_matrix);
-    }
-
-    /** \returns the permutation matrix P as a transposition sequence.
-      */
-    inline const TranspositionType& transpositionsP() const
-    {
-      eigen_assert(m_isInitialized && "LDLT is not initialized.");
-      return m_transpositions;
-    }
-
-    /** \returns the coefficients of the diagonal matrix D */
-    inline Diagonal<const MatrixType> vectorD() const
-    {
-      eigen_assert(m_isInitialized && "LDLT is not initialized.");
-      return m_matrix.diagonal();
-    }
-
-    /** \returns true if the matrix is positive (semidefinite) */
-    inline bool isPositive() const
-    {
-      eigen_assert(m_isInitialized && "LDLT is not initialized.");
-      return m_sign == 1;
-    }
-    
-    #ifdef EIGEN2_SUPPORT
-    inline bool isPositiveDefinite() const
-    {
-      return isPositive();
-    }
-    #endif
-
-    /** \returns true if the matrix is negative (semidefinite) */
-    inline bool isNegative(void) const
-    {
-      eigen_assert(m_isInitialized && "LDLT is not initialized.");
-      return m_sign == -1;
-    }
-
-    /** \returns a solution x of \f$ A x = b \f$ using the current decomposition of A.
-      *
-      * This function also supports in-place solves using the syntax <tt>x = decompositionObject.solve(x)</tt> .
-      *
-      * \note_about_checking_solutions
-      *
-      * More precisely, this method solves \f$ A x = b \f$ using the decomposition \f$ A = P^T L D L^* P \f$
-      * by solving the systems \f$ P^T y_1 = b \f$, \f$ L y_2 = y_1 \f$, \f$ D y_3 = y_2 \f$, 
-      * \f$ L^* y_4 = y_3 \f$ and \f$ P x = y_4 \f$ in succession. If the matrix \f$ A \f$ is singular, then
-      * \f$ D \f$ will also be singular (all the other matrices are invertible). In that case, the
-      * least-square solution of \f$ D y_3 = y_2 \f$ is computed. This does not mean that this function
-      * computes the least-square solution of \f$ A x = b \f$ is \f$ A \f$ is singular.
-      *
-      * \sa MatrixBase::ldlt()
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<LDLT, Rhs>
-    solve(const MatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "LDLT is not initialized.");
-      eigen_assert(m_matrix.rows()==b.rows()
-                && "LDLT::solve(): invalid number of rows of the right hand side matrix b");
-      return internal::solve_retval<LDLT, Rhs>(*this, b.derived());
-    }
-
-    #ifdef EIGEN2_SUPPORT
-    template<typename OtherDerived, typename ResultType>
-    bool solve(const MatrixBase<OtherDerived>& b, ResultType *result) const
-    {
-      *result = this->solve(b);
-      return true;
-    }
-    #endif
-
-    template<typename Derived>
-    bool solveInPlace(MatrixBase<Derived> &bAndX) const;
-
-    LDLT& compute(const MatrixType& matrix);
-
-    template <typename Derived>
-    LDLT& rankUpdate(const MatrixBase<Derived>& w, const RealScalar& alpha=1);
-
-    /** \returns the internal LDLT decomposition matrix
-      *
-      * TODO: document the storage layout
-      */
-    inline const MatrixType& matrixLDLT() const
-    {
-      eigen_assert(m_isInitialized && "LDLT is not initialized.");
-      return m_matrix;
-    }
-
-    MatrixType reconstructedMatrix() const;
-
-    inline Index rows() const { return m_matrix.rows(); }
-    inline Index cols() const { return m_matrix.cols(); }
-
-    /** \brief Reports whether previous computation was successful.
-      *
-      * \returns \c Success if computation was succesful,
-      *          \c NumericalIssue if the matrix.appears to be negative.
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "LDLT is not initialized.");
-      return Success;
-    }
-
-  protected:
-
-    /** \internal
-      * Used to compute and store the Cholesky decomposition A = L D L^* = U^* D U.
-      * The strict upper part is used during the decomposition, the strict lower
-      * part correspond to the coefficients of L (its diagonal is equal to 1 and
-      * is not stored), and the diagonal entries correspond to D.
-      */
-    MatrixType m_matrix;
-    TranspositionType m_transpositions;
-    TmpMatrixType m_temporary;
-    int m_sign;
-    bool m_isInitialized;
-};
-
-namespace internal {
-
-template<int UpLo> struct ldlt_inplace;
-
-template<> struct ldlt_inplace<Lower>
-{
-  template<typename MatrixType, typename TranspositionType, typename Workspace>
-  static bool unblocked(MatrixType& mat, TranspositionType& transpositions, Workspace& temp, int* sign=0)
-  {
-    using std::abs;
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::RealScalar RealScalar;
-    typedef typename MatrixType::Index Index;
-    eigen_assert(mat.rows()==mat.cols());
-    const Index size = mat.rows();
-
-    if (size <= 1)
-    {
-      transpositions.setIdentity();
-      if(sign)
-        *sign = real(mat.coeff(0,0))>0 ? 1:-1;
-      return true;
-    }
-
-    RealScalar cutoff(0), biggest_in_corner;
-
-    for (Index k = 0; k < size; ++k)
-    {
-      // Find largest diagonal element
-      Index index_of_biggest_in_corner;
-      biggest_in_corner = mat.diagonal().tail(size-k).cwiseAbs().maxCoeff(&index_of_biggest_in_corner);
-      index_of_biggest_in_corner += k;
-
-      if(k == 0)
-      {
-        // The biggest overall is the point of reference to which further diagonals
-        // are compared; if any diagonal is negligible compared
-        // to the largest overall, the algorithm bails.
-        cutoff = abs(NumTraits<Scalar>::epsilon() * biggest_in_corner);
-
-        if(sign)
-          *sign = real(mat.diagonal().coeff(index_of_biggest_in_corner)) > 0 ? 1 : -1;
-      }
-      else if(sign)
-      {
-        // LDLT is not guaranteed to work for indefinite matrices, but let's try to get the sign right
-        int newSign = real(mat.diagonal().coeff(index_of_biggest_in_corner)) > 0;
-        if(newSign != *sign)
-          *sign = 0;
-      }
-
-      // Finish early if the matrix is not full rank.
-      if(biggest_in_corner < cutoff)
-      {
-        for(Index i = k; i < size; i++) transpositions.coeffRef(i) = i;
-        break;
-      }
-
-      transpositions.coeffRef(k) = index_of_biggest_in_corner;
-      if(k != index_of_biggest_in_corner)
-      {
-        // apply the transposition while taking care to consider only
-        // the lower triangular part
-        Index s = size-index_of_biggest_in_corner-1; // trailing size after the biggest element
-        mat.row(k).head(k).swap(mat.row(index_of_biggest_in_corner).head(k));
-        mat.col(k).tail(s).swap(mat.col(index_of_biggest_in_corner).tail(s));
-        std::swap(mat.coeffRef(k,k),mat.coeffRef(index_of_biggest_in_corner,index_of_biggest_in_corner));
-        for(int i=k+1;i<index_of_biggest_in_corner;++i)
-        {
-          Scalar tmp = mat.coeffRef(i,k);
-          mat.coeffRef(i,k) = conj(mat.coeffRef(index_of_biggest_in_corner,i));
-          mat.coeffRef(index_of_biggest_in_corner,i) = conj(tmp);
-        }
-        if(NumTraits<Scalar>::IsComplex)
-          mat.coeffRef(index_of_biggest_in_corner,k) = conj(mat.coeff(index_of_biggest_in_corner,k));
-      }
-
-      // partition the matrix:
-      //       A00 |  -  |  -
-      // lu  = A10 | A11 |  -
-      //       A20 | A21 | A22
-      Index rs = size - k - 1;
-      Block<MatrixType,Dynamic,1> A21(mat,k+1,k,rs,1);
-      Block<MatrixType,1,Dynamic> A10(mat,k,0,1,k);
-      Block<MatrixType,Dynamic,Dynamic> A20(mat,k+1,0,rs,k);
-
-      if(k>0)
-      {
-        temp.head(k) = mat.diagonal().head(k).asDiagonal() * A10.adjoint();
-        mat.coeffRef(k,k) -= (A10 * temp.head(k)).value();
-        if(rs>0)
-          A21.noalias() -= A20 * temp.head(k);
-      }
-      if((rs>0) && (abs(mat.coeffRef(k,k)) > cutoff))
-        A21 /= mat.coeffRef(k,k);
-    }
-
-    return true;
-  }
-
-  // Reference for the algorithm: Davis and Hager, "Multiple Rank
-  // Modifications of a Sparse Cholesky Factorization" (Algorithm 1)
-  // Trivial rearrangements of their computations (Timothy E. Holy)
-  // allow their algorithm to work for rank-1 updates even if the
-  // original matrix is not of full rank.
-  // Here only rank-1 updates are implemented, to reduce the
-  // requirement for intermediate storage and improve accuracy
-  template<typename MatrixType, typename WDerived>
-  static bool updateInPlace(MatrixType& mat, MatrixBase<WDerived>& w, const typename MatrixType::RealScalar& sigma=1)
-  {
-    using internal::isfinite;
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::RealScalar RealScalar;
-    typedef typename MatrixType::Index Index;
-
-    const Index size = mat.rows();
-    eigen_assert(mat.cols() == size && w.size()==size);
-
-    RealScalar alpha = 1;
-
-    // Apply the update
-    for (Index j = 0; j < size; j++)
-    {
-      // Check for termination due to an original decomposition of low-rank
-      if (!(isfinite)(alpha))
-        break;
-
-      // Update the diagonal terms
-      RealScalar dj = real(mat.coeff(j,j));
-      Scalar wj = w.coeff(j);
-      RealScalar swj2 = sigma*abs2(wj);
-      RealScalar gamma = dj*alpha + swj2;
-
-      mat.coeffRef(j,j) += swj2/alpha;
-      alpha += swj2/dj;
-
-
-      // Update the terms of L
-      Index rs = size-j-1;
-      w.tail(rs) -= wj * mat.col(j).tail(rs);
-      if(gamma != 0)
-        mat.col(j).tail(rs) += (sigma*conj(wj)/gamma)*w.tail(rs);
-    }
-    return true;
-  }
-
-  template<typename MatrixType, typename TranspositionType, typename Workspace, typename WType>
-  static bool update(MatrixType& mat, const TranspositionType& transpositions, Workspace& tmp, const WType& w, const typename MatrixType::RealScalar& sigma=1)
-  {
-    // Apply the permutation to the input w
-    tmp = transpositions * w;
-
-    return ldlt_inplace<Lower>::updateInPlace(mat,tmp,sigma);
-  }
-};
-
-template<> struct ldlt_inplace<Upper>
-{
-  template<typename MatrixType, typename TranspositionType, typename Workspace>
-  static EIGEN_STRONG_INLINE bool unblocked(MatrixType& mat, TranspositionType& transpositions, Workspace& temp, int* sign=0)
-  {
-    Transpose<MatrixType> matt(mat);
-    return ldlt_inplace<Lower>::unblocked(matt, transpositions, temp, sign);
-  }
-
-  template<typename MatrixType, typename TranspositionType, typename Workspace, typename WType>
-  static EIGEN_STRONG_INLINE bool update(MatrixType& mat, TranspositionType& transpositions, Workspace& tmp, WType& w, const typename MatrixType::RealScalar& sigma=1)
-  {
-    Transpose<MatrixType> matt(mat);
-    return ldlt_inplace<Lower>::update(matt, transpositions, tmp, w.conjugate(), sigma);
-  }
-};
-
-template<typename MatrixType> struct LDLT_Traits<MatrixType,Lower>
-{
-  typedef const TriangularView<const MatrixType, UnitLower> MatrixL;
-  typedef const TriangularView<const typename MatrixType::AdjointReturnType, UnitUpper> MatrixU;
-  static inline MatrixL getL(const MatrixType& m) { return m; }
-  static inline MatrixU getU(const MatrixType& m) { return m.adjoint(); }
-};
-
-template<typename MatrixType> struct LDLT_Traits<MatrixType,Upper>
-{
-  typedef const TriangularView<const typename MatrixType::AdjointReturnType, UnitLower> MatrixL;
-  typedef const TriangularView<const MatrixType, UnitUpper> MatrixU;
-  static inline MatrixL getL(const MatrixType& m) { return m.adjoint(); }
-  static inline MatrixU getU(const MatrixType& m) { return m; }
-};
-
-} // end namespace internal
-
-/** Compute / recompute the LDLT decomposition A = L D L^* = U^* D U of \a matrix
-  */
-template<typename MatrixType, int _UpLo>
-LDLT<MatrixType,_UpLo>& LDLT<MatrixType,_UpLo>::compute(const MatrixType& a)
-{
-  eigen_assert(a.rows()==a.cols());
-  const Index size = a.rows();
-
-  m_matrix = a;
-
-  m_transpositions.resize(size);
-  m_isInitialized = false;
-  m_temporary.resize(size);
-
-  internal::ldlt_inplace<UpLo>::unblocked(m_matrix, m_transpositions, m_temporary, &m_sign);
-
-  m_isInitialized = true;
-  return *this;
-}
-
-/** Update the LDLT decomposition:  given A = L D L^T, efficiently compute the decomposition of A + sigma w w^T.
- * \param w a vector to be incorporated into the decomposition.
- * \param sigma a scalar, +1 for updates and -1 for "downdates," which correspond to removing previously-added column vectors. Optional; default value is +1.
- * \sa setZero()
-  */
-template<typename MatrixType, int _UpLo>
-template<typename Derived>
-LDLT<MatrixType,_UpLo>& LDLT<MatrixType,_UpLo>::rankUpdate(const MatrixBase<Derived>& w, const typename NumTraits<typename MatrixType::Scalar>::Real& sigma)
-{
-  const Index size = w.rows();
-  if (m_isInitialized)
-  {
-    eigen_assert(m_matrix.rows()==size);
-  }
-  else
-  {    
-    m_matrix.resize(size,size);
-    m_matrix.setZero();
-    m_transpositions.resize(size);
-    for (Index i = 0; i < size; i++)
-      m_transpositions.coeffRef(i) = i;
-    m_temporary.resize(size);
-    m_sign = sigma>=0 ? 1 : -1;
-    m_isInitialized = true;
-  }
-
-  internal::ldlt_inplace<UpLo>::update(m_matrix, m_transpositions, m_temporary, w, sigma);
-
-  return *this;
-}
-
-namespace internal {
-template<typename _MatrixType, int _UpLo, typename Rhs>
-struct solve_retval<LDLT<_MatrixType,_UpLo>, Rhs>
-  : solve_retval_base<LDLT<_MatrixType,_UpLo>, Rhs>
-{
-  typedef LDLT<_MatrixType,_UpLo> LDLTType;
-  EIGEN_MAKE_SOLVE_HELPERS(LDLTType,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    eigen_assert(rhs().rows() == dec().matrixLDLT().rows());
-    // dst = P b
-    dst = dec().transpositionsP() * rhs();
-
-    // dst = L^-1 (P b)
-    dec().matrixL().solveInPlace(dst);
-
-    // dst = D^-1 (L^-1 P b)
-    // more precisely, use pseudo-inverse of D (see bug 241)
-    using std::abs;
-    using std::max;
-    typedef typename LDLTType::MatrixType MatrixType;
-    typedef typename LDLTType::Scalar Scalar;
-    typedef typename LDLTType::RealScalar RealScalar;
-    const Diagonal<const MatrixType> vectorD = dec().vectorD();
-    RealScalar tolerance = (max)(vectorD.array().abs().maxCoeff() * NumTraits<Scalar>::epsilon(),
-				 RealScalar(1) / NumTraits<RealScalar>::highest()); // motivated by LAPACK's xGELSS
-    for (Index i = 0; i < vectorD.size(); ++i) {
-      if(abs(vectorD(i)) > tolerance)
-	dst.row(i) /= vectorD(i);
-      else
-	dst.row(i).setZero();
-    }
-
-    // dst = L^-T (D^-1 L^-1 P b)
-    dec().matrixU().solveInPlace(dst);
-
-    // dst = P^-1 (L^-T D^-1 L^-1 P b) = A^-1 b
-    dst = dec().transpositionsP().transpose() * dst;
-  }
-};
-}
-
-/** \internal use x = ldlt_object.solve(x);
-  *
-  * This is the \em in-place version of solve().
-  *
-  * \param bAndX represents both the right-hand side matrix b and result x.
-  *
-  * \returns true always! If you need to check for existence of solutions, use another decomposition like LU, QR, or SVD.
-  *
-  * This version avoids a copy when the right hand side matrix b is not
-  * needed anymore.
-  *
-  * \sa LDLT::solve(), MatrixBase::ldlt()
-  */
-template<typename MatrixType,int _UpLo>
-template<typename Derived>
-bool LDLT<MatrixType,_UpLo>::solveInPlace(MatrixBase<Derived> &bAndX) const
-{
-  eigen_assert(m_isInitialized && "LDLT is not initialized.");
-  eigen_assert(m_matrix.rows() == bAndX.rows());
-
-  bAndX = this->solve(bAndX);
-
-  return true;
-}
-
-/** \returns the matrix represented by the decomposition,
- * i.e., it returns the product: P^T L D L^* P.
- * This function is provided for debug purpose. */
-template<typename MatrixType, int _UpLo>
-MatrixType LDLT<MatrixType,_UpLo>::reconstructedMatrix() const
-{
-  eigen_assert(m_isInitialized && "LDLT is not initialized.");
-  const Index size = m_matrix.rows();
-  MatrixType res(size,size);
-
-  // P
-  res.setIdentity();
-  res = transpositionsP() * res;
-  // L^* P
-  res = matrixU() * res;
-  // D(L^*P)
-  res = vectorD().asDiagonal() * res;
-  // L(DL^*P)
-  res = matrixL() * res;
-  // P^T (LDL^*P)
-  res = transpositionsP().transpose() * res;
-
-  return res;
-}
-
-/** \cholesky_module
-  * \returns the Cholesky decomposition with full pivoting without square root of \c *this
-  */
-template<typename MatrixType, unsigned int UpLo>
-inline const LDLT<typename SelfAdjointView<MatrixType, UpLo>::PlainObject, UpLo>
-SelfAdjointView<MatrixType, UpLo>::ldlt() const
-{
-  return LDLT<PlainObject,UpLo>(m_matrix);
-}
-
-/** \cholesky_module
-  * \returns the Cholesky decomposition with full pivoting without square root of \c *this
-  */
-template<typename Derived>
-inline const LDLT<typename MatrixBase<Derived>::PlainObject>
-MatrixBase<Derived>::ldlt() const
-{
-  return LDLT<PlainObject>(derived());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_LDLT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Cholesky/LLT.h b/vendor/eigen-3.1.91/Eigen/src/Cholesky/LLT.h
deleted file mode 100644
index db22a2f..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Cholesky/LLT.h
+++ /dev/null
@@ -1,490 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_LLT_H
-#define EIGEN_LLT_H
-
-namespace Eigen { 
-
-namespace internal{
-template<typename MatrixType, int UpLo> struct LLT_Traits;
-}
-
-/** \ingroup Cholesky_Module
-  *
-  * \class LLT
-  *
-  * \brief Standard Cholesky decomposition (LL^T) of a matrix and associated features
-  *
-  * \param MatrixType the type of the matrix of which we are computing the LL^T Cholesky decomposition
-  * \param UpLo the triangular part that will be used for the decompositon: Lower (default) or Upper.
-  *             The other triangular part won't be read.
-  *
-  * This class performs a LL^T Cholesky decomposition of a symmetric, positive definite
-  * matrix A such that A = LL^* = U^*U, where L is lower triangular.
-  *
-  * While the Cholesky decomposition is particularly useful to solve selfadjoint problems like  D^*D x = b,
-  * for that purpose, we recommend the Cholesky decomposition without square root which is more stable
-  * and even faster. Nevertheless, this standard Cholesky decomposition remains useful in many other
-  * situations like generalised eigen problems with hermitian matrices.
-  *
-  * Remember that Cholesky decompositions are not rank-revealing. This LLT decomposition is only stable on positive definite matrices,
-  * use LDLT instead for the semidefinite case. Also, do not use a Cholesky decomposition to determine whether a system of equations
-  * has a solution.
-  *
-  * Example: \include LLT_example.cpp
-  * Output: \verbinclude LLT_example.out
-  *    
-  * \sa MatrixBase::llt(), class LDLT
-  */
- /* HEY THIS DOX IS DISABLED BECAUSE THERE's A BUG EITHER HERE OR IN LDLT ABOUT THAT (OR BOTH)
-  * Note that during the decomposition, only the upper triangular part of A is considered. Therefore,
-  * the strict lower part does not have to store correct values.
-  */
-template<typename _MatrixType, int _UpLo> class LLT
-{
-  public:
-    typedef _MatrixType MatrixType;
-    enum {
-      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-      Options = MatrixType::Options,
-      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
-    };
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
-    typedef typename MatrixType::Index Index;
-
-    enum {
-      PacketSize = internal::packet_traits<Scalar>::size,
-      AlignmentMask = int(PacketSize)-1,
-      UpLo = _UpLo
-    };
-
-    typedef internal::LLT_Traits<MatrixType,UpLo> Traits;
-
-    /**
-      * \brief Default Constructor.
-      *
-      * The default constructor is useful in cases in which the user intends to
-      * perform decompositions via LLT::compute(const MatrixType&).
-      */
-    LLT() : m_matrix(), m_isInitialized(false) {}
-
-    /** \brief Default Constructor with memory preallocation
-      *
-      * Like the default constructor but with preallocation of the internal data
-      * according to the specified problem \a size.
-      * \sa LLT()
-      */
-    LLT(Index size) : m_matrix(size, size),
-                    m_isInitialized(false) {}
-
-    LLT(const MatrixType& matrix)
-      : m_matrix(matrix.rows(), matrix.cols()),
-        m_isInitialized(false)
-    {
-      compute(matrix);
-    }
-
-    /** \returns a view of the upper triangular matrix U */
-    inline typename Traits::MatrixU matrixU() const
-    {
-      eigen_assert(m_isInitialized && "LLT is not initialized.");
-      return Traits::getU(m_matrix);
-    }
-
-    /** \returns a view of the lower triangular matrix L */
-    inline typename Traits::MatrixL matrixL() const
-    {
-      eigen_assert(m_isInitialized && "LLT is not initialized.");
-      return Traits::getL(m_matrix);
-    }
-
-    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
-      *
-      * Since this LLT class assumes anyway that the matrix A is invertible, the solution
-      * theoretically exists and is unique regardless of b.
-      *
-      * Example: \include LLT_solve.cpp
-      * Output: \verbinclude LLT_solve.out
-      *
-      * \sa solveInPlace(), MatrixBase::llt()
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<LLT, Rhs>
-    solve(const MatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "LLT is not initialized.");
-      eigen_assert(m_matrix.rows()==b.rows()
-                && "LLT::solve(): invalid number of rows of the right hand side matrix b");
-      return internal::solve_retval<LLT, Rhs>(*this, b.derived());
-    }
-
-    #ifdef EIGEN2_SUPPORT
-    template<typename OtherDerived, typename ResultType>
-    bool solve(const MatrixBase<OtherDerived>& b, ResultType *result) const
-    {
-      *result = this->solve(b);
-      return true;
-    }
-    
-    bool isPositiveDefinite() const { return true; }
-    #endif
-
-    template<typename Derived>
-    void solveInPlace(MatrixBase<Derived> &bAndX) const;
-
-    LLT& compute(const MatrixType& matrix);
-
-    /** \returns the LLT decomposition matrix
-      *
-      * TODO: document the storage layout
-      */
-    inline const MatrixType& matrixLLT() const
-    {
-      eigen_assert(m_isInitialized && "LLT is not initialized.");
-      return m_matrix;
-    }
-
-    MatrixType reconstructedMatrix() const;
-
-
-    /** \brief Reports whether previous computation was successful.
-      *
-      * \returns \c Success if computation was succesful,
-      *          \c NumericalIssue if the matrix.appears to be negative.
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "LLT is not initialized.");
-      return m_info;
-    }
-
-    inline Index rows() const { return m_matrix.rows(); }
-    inline Index cols() const { return m_matrix.cols(); }
-
-    template<typename VectorType>
-    LLT rankUpdate(const VectorType& vec, const RealScalar& sigma = 1);
-
-  protected:
-    /** \internal
-      * Used to compute and store L
-      * The strict upper part is not used and even not initialized.
-      */
-    MatrixType m_matrix;
-    bool m_isInitialized;
-    ComputationInfo m_info;
-};
-
-namespace internal {
-
-template<typename Scalar, int UpLo> struct llt_inplace;
-
-template<typename MatrixType, typename VectorType>
-static typename MatrixType::Index llt_rank_update_lower(MatrixType& mat, const VectorType& vec, const typename MatrixType::RealScalar& sigma)
-{
-  using std::sqrt;
-  typedef typename MatrixType::Scalar Scalar;
-  typedef typename MatrixType::RealScalar RealScalar;
-  typedef typename MatrixType::Index Index;
-  typedef typename MatrixType::ColXpr ColXpr;
-  typedef typename internal::remove_all<ColXpr>::type ColXprCleaned;
-  typedef typename ColXprCleaned::SegmentReturnType ColXprSegment;
-  typedef Matrix<Scalar,Dynamic,1> TempVectorType;
-  typedef typename TempVectorType::SegmentReturnType TempVecSegment;
-
-  Index n = mat.cols();
-  eigen_assert(mat.rows()==n && vec.size()==n);
-
-  TempVectorType temp;
-
-  if(sigma>0)
-  {
-    // This version is based on Givens rotations.
-    // It is faster than the other one below, but only works for updates,
-    // i.e., for sigma > 0
-    temp = sqrt(sigma) * vec;
-
-    for(Index i=0; i<n; ++i)
-    {
-      JacobiRotation<Scalar> g;
-      g.makeGivens(mat(i,i), -temp(i), &mat(i,i));
-
-      Index rs = n-i-1;
-      if(rs>0)
-      {
-        ColXprSegment x(mat.col(i).tail(rs));
-        TempVecSegment y(temp.tail(rs));
-        apply_rotation_in_the_plane(x, y, g);
-      }
-    }
-  }
-  else
-  {
-    temp = vec;
-    RealScalar beta = 1;
-    for(Index j=0; j<n; ++j)
-    {
-      RealScalar Ljj = real(mat.coeff(j,j));
-      RealScalar dj = abs2(Ljj);
-      Scalar wj = temp.coeff(j);
-      RealScalar swj2 = sigma*abs2(wj);
-      RealScalar gamma = dj*beta + swj2;
-
-      RealScalar x = dj + swj2/beta;
-      if (x<=RealScalar(0))
-        return j;
-      RealScalar nLjj = sqrt(x);
-      mat.coeffRef(j,j) = nLjj;
-      beta += swj2/dj;
-
-      // Update the terms of L
-      Index rs = n-j-1;
-      if(rs)
-      {
-        temp.tail(rs) -= (wj/Ljj) * mat.col(j).tail(rs);
-        if(gamma != 0)
-          mat.col(j).tail(rs) = (nLjj/Ljj) * mat.col(j).tail(rs) + (nLjj * sigma*conj(wj)/gamma)*temp.tail(rs);
-      }
-    }
-  }
-  return -1;
-}
-
-template<typename Scalar> struct llt_inplace<Scalar, Lower>
-{
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  template<typename MatrixType>
-  static typename MatrixType::Index unblocked(MatrixType& mat)
-  {
-    using std::sqrt;
-    typedef typename MatrixType::Index Index;
-    
-    eigen_assert(mat.rows()==mat.cols());
-    const Index size = mat.rows();
-    for(Index k = 0; k < size; ++k)
-    {
-      Index rs = size-k-1; // remaining size
-
-      Block<MatrixType,Dynamic,1> A21(mat,k+1,k,rs,1);
-      Block<MatrixType,1,Dynamic> A10(mat,k,0,1,k);
-      Block<MatrixType,Dynamic,Dynamic> A20(mat,k+1,0,rs,k);
-
-      RealScalar x = real(mat.coeff(k,k));
-      if (k>0) x -= A10.squaredNorm();
-      if (x<=RealScalar(0))
-        return k;
-      mat.coeffRef(k,k) = x = sqrt(x);
-      if (k>0 && rs>0) A21.noalias() -= A20 * A10.adjoint();
-      if (rs>0) A21 *= RealScalar(1)/x;
-    }
-    return -1;
-  }
-
-  template<typename MatrixType>
-  static typename MatrixType::Index blocked(MatrixType& m)
-  {
-    typedef typename MatrixType::Index Index;
-    eigen_assert(m.rows()==m.cols());
-    Index size = m.rows();
-    if(size<32)
-      return unblocked(m);
-
-    Index blockSize = size/8;
-    blockSize = (blockSize/16)*16;
-    blockSize = (std::min)((std::max)(blockSize,Index(8)), Index(128));
-
-    for (Index k=0; k<size; k+=blockSize)
-    {
-      // partition the matrix:
-      //       A00 |  -  |  -
-      // lu  = A10 | A11 |  -
-      //       A20 | A21 | A22
-      Index bs = (std::min)(blockSize, size-k);
-      Index rs = size - k - bs;
-      Block<MatrixType,Dynamic,Dynamic> A11(m,k,   k,   bs,bs);
-      Block<MatrixType,Dynamic,Dynamic> A21(m,k+bs,k,   rs,bs);
-      Block<MatrixType,Dynamic,Dynamic> A22(m,k+bs,k+bs,rs,rs);
-
-      Index ret;
-      if((ret=unblocked(A11))>=0) return k+ret;
-      if(rs>0) A11.adjoint().template triangularView<Upper>().template solveInPlace<OnTheRight>(A21);
-      if(rs>0) A22.template selfadjointView<Lower>().rankUpdate(A21,-1); // bottleneck
-    }
-    return -1;
-  }
-
-  template<typename MatrixType, typename VectorType>
-  static typename MatrixType::Index rankUpdate(MatrixType& mat, const VectorType& vec, const RealScalar& sigma)
-  {
-    return Eigen::internal::llt_rank_update_lower(mat, vec, sigma);
-  }
-};
-  
-template<typename Scalar> struct llt_inplace<Scalar, Upper>
-{
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-
-  template<typename MatrixType>
-  static EIGEN_STRONG_INLINE typename MatrixType::Index unblocked(MatrixType& mat)
-  {
-    Transpose<MatrixType> matt(mat);
-    return llt_inplace<Scalar, Lower>::unblocked(matt);
-  }
-  template<typename MatrixType>
-  static EIGEN_STRONG_INLINE typename MatrixType::Index blocked(MatrixType& mat)
-  {
-    Transpose<MatrixType> matt(mat);
-    return llt_inplace<Scalar, Lower>::blocked(matt);
-  }
-  template<typename MatrixType, typename VectorType>
-  static typename MatrixType::Index rankUpdate(MatrixType& mat, const VectorType& vec, const RealScalar& sigma)
-  {
-    Transpose<MatrixType> matt(mat);
-    return llt_inplace<Scalar, Lower>::rankUpdate(matt, vec.conjugate(), sigma);
-  }
-};
-
-template<typename MatrixType> struct LLT_Traits<MatrixType,Lower>
-{
-  typedef const TriangularView<const MatrixType, Lower> MatrixL;
-  typedef const TriangularView<const typename MatrixType::AdjointReturnType, Upper> MatrixU;
-  static inline MatrixL getL(const MatrixType& m) { return m; }
-  static inline MatrixU getU(const MatrixType& m) { return m.adjoint(); }
-  static bool inplace_decomposition(MatrixType& m)
-  { return llt_inplace<typename MatrixType::Scalar, Lower>::blocked(m)==-1; }
-};
-
-template<typename MatrixType> struct LLT_Traits<MatrixType,Upper>
-{
-  typedef const TriangularView<const typename MatrixType::AdjointReturnType, Lower> MatrixL;
-  typedef const TriangularView<const MatrixType, Upper> MatrixU;
-  static inline MatrixL getL(const MatrixType& m) { return m.adjoint(); }
-  static inline MatrixU getU(const MatrixType& m) { return m; }
-  static bool inplace_decomposition(MatrixType& m)
-  { return llt_inplace<typename MatrixType::Scalar, Upper>::blocked(m)==-1; }
-};
-
-} // end namespace internal
-
-/** Computes / recomputes the Cholesky decomposition A = LL^* = U^*U of \a matrix
-  *
-  * \returns a reference to *this
-  *
-  * Example: \include TutorialLinAlgComputeTwice.cpp
-  * Output: \verbinclude TutorialLinAlgComputeTwice.out
-  */
-template<typename MatrixType, int _UpLo>
-LLT<MatrixType,_UpLo>& LLT<MatrixType,_UpLo>::compute(const MatrixType& a)
-{
-  eigen_assert(a.rows()==a.cols());
-  const Index size = a.rows();
-  m_matrix.resize(size, size);
-  m_matrix = a;
-
-  m_isInitialized = true;
-  bool ok = Traits::inplace_decomposition(m_matrix);
-  m_info = ok ? Success : NumericalIssue;
-
-  return *this;
-}
-
-/** Performs a rank one update (or dowdate) of the current decomposition.
-  * If A = LL^* before the rank one update,
-  * then after it we have LL^* = A + sigma * v v^* where \a v must be a vector
-  * of same dimension.
-  */
-template<typename _MatrixType, int _UpLo>
-template<typename VectorType>
-LLT<_MatrixType,_UpLo> LLT<_MatrixType,_UpLo>::rankUpdate(const VectorType& v, const RealScalar& sigma)
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(VectorType);
-  eigen_assert(v.size()==m_matrix.cols());
-  eigen_assert(m_isInitialized);
-  if(internal::llt_inplace<typename MatrixType::Scalar, UpLo>::rankUpdate(m_matrix,v,sigma)>=0)
-    m_info = NumericalIssue;
-  else
-    m_info = Success;
-
-  return *this;
-}
-    
-namespace internal {
-template<typename _MatrixType, int UpLo, typename Rhs>
-struct solve_retval<LLT<_MatrixType, UpLo>, Rhs>
-  : solve_retval_base<LLT<_MatrixType, UpLo>, Rhs>
-{
-  typedef LLT<_MatrixType,UpLo> LLTType;
-  EIGEN_MAKE_SOLVE_HELPERS(LLTType,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    dst = rhs();
-    dec().solveInPlace(dst);
-  }
-};
-}
-
-/** \internal use x = llt_object.solve(x);
-  * 
-  * This is the \em in-place version of solve().
-  *
-  * \param bAndX represents both the right-hand side matrix b and result x.
-  *
-  * \returns true always! If you need to check for existence of solutions, use another decomposition like LU, QR, or SVD.
-  *
-  * This version avoids a copy when the right hand side matrix b is not
-  * needed anymore.
-  *
-  * \sa LLT::solve(), MatrixBase::llt()
-  */
-template<typename MatrixType, int _UpLo>
-template<typename Derived>
-void LLT<MatrixType,_UpLo>::solveInPlace(MatrixBase<Derived> &bAndX) const
-{
-  eigen_assert(m_isInitialized && "LLT is not initialized.");
-  eigen_assert(m_matrix.rows()==bAndX.rows());
-  matrixL().solveInPlace(bAndX);
-  matrixU().solveInPlace(bAndX);
-}
-
-/** \returns the matrix represented by the decomposition,
- * i.e., it returns the product: L L^*.
- * This function is provided for debug purpose. */
-template<typename MatrixType, int _UpLo>
-MatrixType LLT<MatrixType,_UpLo>::reconstructedMatrix() const
-{
-  eigen_assert(m_isInitialized && "LLT is not initialized.");
-  return matrixL() * matrixL().adjoint().toDenseMatrix();
-}
-
-/** \cholesky_module
-  * \returns the LLT decomposition of \c *this
-  */
-template<typename Derived>
-inline const LLT<typename MatrixBase<Derived>::PlainObject>
-MatrixBase<Derived>::llt() const
-{
-  return LLT<PlainObject>(derived());
-}
-
-/** \cholesky_module
-  * \returns the LLT decomposition of \c *this
-  */
-template<typename MatrixType, unsigned int UpLo>
-inline const LLT<typename SelfAdjointView<MatrixType, UpLo>::PlainObject, UpLo>
-SelfAdjointView<MatrixType, UpLo>::llt() const
-{
-  return LLT<PlainObject,UpLo>(m_matrix);
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_LLT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Cholesky/LLT_MKL.h b/vendor/eigen-3.1.91/Eigen/src/Cholesky/LLT_MKL.h
deleted file mode 100644
index 64daa44..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Cholesky/LLT_MKL.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- Copyright (c) 2011, Intel Corporation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
- * Neither the name of Intel Corporation nor the names of its contributors may
-   be used to endorse or promote products derived from this software without
-   specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ********************************************************************************
- *   Content : Eigen bindings to Intel(R) MKL
- *     LLt decomposition based on LAPACKE_?potrf function.
- ********************************************************************************
-*/
-
-#ifndef EIGEN_LLT_MKL_H
-#define EIGEN_LLT_MKL_H
-
-#include "Eigen/src/Core/util/MKL_support.h"
-#include <iostream>
-
-namespace Eigen { 
-
-namespace internal {
-
-template<typename Scalar> struct mkl_llt;
-
-#define EIGEN_MKL_LLT(EIGTYPE, MKLTYPE, MKLPREFIX) \
-template<> struct mkl_llt<EIGTYPE> \
-{ \
-  template<typename MatrixType> \
-  static inline typename MatrixType::Index potrf(MatrixType& m, char uplo) \
-  { \
-    lapack_int matrix_order; \
-    lapack_int size, lda, info, StorageOrder; \
-    EIGTYPE* a; \
-    eigen_assert(m.rows()==m.cols()); \
-    /* Set up parameters for ?potrf */ \
-    size = m.rows(); \
-    StorageOrder = MatrixType::Flags&RowMajorBit?RowMajor:ColMajor; \
-    matrix_order = StorageOrder==RowMajor ? LAPACK_ROW_MAJOR : LAPACK_COL_MAJOR; \
-    a = &(m.coeffRef(0,0)); \
-    lda = m.outerStride(); \
-\
-    info = LAPACKE_##MKLPREFIX##potrf( matrix_order, uplo, size, (MKLTYPE*)a, lda ); \
-    info = (info==0) ? Success : NumericalIssue; \
-    return info; \
-  } \
-}; \
-template<> struct llt_inplace<EIGTYPE, Lower> \
-{ \
-  template<typename MatrixType> \
-  static typename MatrixType::Index blocked(MatrixType& m) \
-  { \
-    return mkl_llt<EIGTYPE>::potrf(m, 'L'); \
-  } \
-  template<typename MatrixType, typename VectorType> \
-  static typename MatrixType::Index rankUpdate(MatrixType& mat, const VectorType& vec, const typename MatrixType::RealScalar& sigma) \
-  { return Eigen::internal::llt_rank_update_lower(mat, vec, sigma); } \
-}; \
-template<> struct llt_inplace<EIGTYPE, Upper> \
-{ \
-  template<typename MatrixType> \
-  static typename MatrixType::Index blocked(MatrixType& m) \
-  { \
-    return mkl_llt<EIGTYPE>::potrf(m, 'U'); \
-  } \
-  template<typename MatrixType, typename VectorType> \
-  static typename MatrixType::Index rankUpdate(MatrixType& mat, const VectorType& vec, const typename MatrixType::RealScalar& sigma) \
-  { \
-    Transpose<MatrixType> matt(mat); \
-    return llt_inplace<EIGTYPE, Lower>::rankUpdate(matt, vec.conjugate(), sigma); \
-  } \
-};
-
-EIGEN_MKL_LLT(double, double, d)
-EIGEN_MKL_LLT(float, float, s)
-EIGEN_MKL_LLT(dcomplex, MKL_Complex16, z)
-EIGEN_MKL_LLT(scomplex, MKL_Complex8, c)
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_LLT_MKL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/CholmodSupport/CholmodSupport.h b/vendor/eigen-3.1.91/Eigen/src/CholmodSupport/CholmodSupport.h
deleted file mode 100644
index 42d289a..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/CholmodSupport/CholmodSupport.h
+++ /dev/null
@@ -1,602 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_CHOLMODSUPPORT_H
-#define EIGEN_CHOLMODSUPPORT_H
-
-namespace Eigen { 
-
-namespace internal {
-
-template<typename Scalar, typename CholmodType>
-void cholmod_configure_matrix(CholmodType& mat)
-{
-  if (internal::is_same<Scalar,float>::value)
-  {
-    mat.xtype = CHOLMOD_REAL;
-    mat.dtype = CHOLMOD_SINGLE;
-  }
-  else if (internal::is_same<Scalar,double>::value)
-  {
-    mat.xtype = CHOLMOD_REAL;
-    mat.dtype = CHOLMOD_DOUBLE;
-  }
-  else if (internal::is_same<Scalar,std::complex<float> >::value)
-  {
-    mat.xtype = CHOLMOD_COMPLEX;
-    mat.dtype = CHOLMOD_SINGLE;
-  }
-  else if (internal::is_same<Scalar,std::complex<double> >::value)
-  {
-    mat.xtype = CHOLMOD_COMPLEX;
-    mat.dtype = CHOLMOD_DOUBLE;
-  }
-  else
-  {
-    eigen_assert(false && "Scalar type not supported by CHOLMOD");
-  }
-}
-
-} // namespace internal
-
-/** Wraps the Eigen sparse matrix \a mat into a Cholmod sparse matrix object.
-  * Note that the data are shared.
-  */
-template<typename _Scalar, int _Options, typename _Index>
-cholmod_sparse viewAsCholmod(SparseMatrix<_Scalar,_Options,_Index>& mat)
-{
-  cholmod_sparse res;
-  res.nzmax   = mat.nonZeros();
-  res.nrow    = mat.rows();;
-  res.ncol    = mat.cols();
-  res.p       = mat.outerIndexPtr();
-  res.i       = mat.innerIndexPtr();
-  res.x       = mat.valuePtr();
-  res.sorted  = 1;
-  if(mat.isCompressed())
-  {
-    res.packed  = 1;
-  }
-  else
-  {
-    res.packed  = 0;
-    res.nz = mat.innerNonZeroPtr();
-  }
-
-  res.dtype   = 0;
-  res.stype   = -1;
-  
-  if (internal::is_same<_Index,int>::value)
-  {
-    res.itype = CHOLMOD_INT;
-  }
-  else if (internal::is_same<_Index,UF_long>::value)
-  {
-    res.itype = CHOLMOD_LONG;
-  }
-  else
-  {
-    eigen_assert(false && "Index type not supported yet");
-  }
-
-  // setup res.xtype
-  internal::cholmod_configure_matrix<_Scalar>(res);
-  
-  res.stype = 0;
-  
-  return res;
-}
-
-template<typename _Scalar, int _Options, typename _Index>
-const cholmod_sparse viewAsCholmod(const SparseMatrix<_Scalar,_Options,_Index>& mat)
-{
-  cholmod_sparse res = viewAsCholmod(mat.const_cast_derived());
-  return res;
-}
-
-/** Returns a view of the Eigen sparse matrix \a mat as Cholmod sparse matrix.
-  * The data are not copied but shared. */
-template<typename _Scalar, int _Options, typename _Index, unsigned int UpLo>
-cholmod_sparse viewAsCholmod(const SparseSelfAdjointView<SparseMatrix<_Scalar,_Options,_Index>, UpLo>& mat)
-{
-  cholmod_sparse res = viewAsCholmod(mat.matrix().const_cast_derived());
-  
-  if(UpLo==Upper) res.stype =  1;
-  if(UpLo==Lower) res.stype = -1;
-
-  return res;
-}
-
-/** Returns a view of the Eigen \b dense matrix \a mat as Cholmod dense matrix.
-  * The data are not copied but shared. */
-template<typename Derived>
-cholmod_dense viewAsCholmod(MatrixBase<Derived>& mat)
-{
-  EIGEN_STATIC_ASSERT((internal::traits<Derived>::Flags&RowMajorBit)==0,THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
-  typedef typename Derived::Scalar Scalar;
-
-  cholmod_dense res;
-  res.nrow   = mat.rows();
-  res.ncol   = mat.cols();
-  res.nzmax  = res.nrow * res.ncol;
-  res.d      = Derived::IsVectorAtCompileTime ? mat.derived().size() : mat.derived().outerStride();
-  res.x      = mat.derived().data();
-  res.z      = 0;
-
-  internal::cholmod_configure_matrix<Scalar>(res);
-
-  return res;
-}
-
-/** Returns a view of the Cholmod sparse matrix \a cm as an Eigen sparse matrix.
-  * The data are not copied but shared. */
-template<typename Scalar, int Flags, typename Index>
-MappedSparseMatrix<Scalar,Flags,Index> viewAsEigen(cholmod_sparse& cm)
-{
-  return MappedSparseMatrix<Scalar,Flags,Index>
-         (cm.nrow, cm.ncol, static_cast<Index*>(cm.p)[cm.ncol],
-          static_cast<Index*>(cm.p), static_cast<Index*>(cm.i),static_cast<Scalar*>(cm.x) );
-}
-
-enum CholmodMode {
-  CholmodAuto, CholmodSimplicialLLt, CholmodSupernodalLLt, CholmodLDLt
-};
-
-
-/** \ingroup CholmodSupport_Module
-  * \class CholmodBase
-  * \brief The base class for the direct Cholesky factorization of Cholmod
-  * \sa class CholmodSupernodalLLT, class CholmodSimplicialLDLT, class CholmodSimplicialLLT
-  */
-template<typename _MatrixType, int _UpLo, typename Derived>
-class CholmodBase : internal::noncopyable
-{
-  public:
-    typedef _MatrixType MatrixType;
-    enum { UpLo = _UpLo };
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::RealScalar RealScalar;
-    typedef MatrixType CholMatrixType;
-    typedef typename MatrixType::Index Index;
-
-  public:
-
-    CholmodBase()
-      : m_cholmodFactor(0), m_info(Success), m_isInitialized(false)
-    {
-      cholmod_start(&m_cholmod);
-    }
-
-    CholmodBase(const MatrixType& matrix)
-      : m_cholmodFactor(0), m_info(Success), m_isInitialized(false)
-    {
-      m_shiftOffset[0] = m_shiftOffset[1] = RealScalar(0.0);
-      cholmod_start(&m_cholmod);
-      compute(matrix);
-    }
-
-    ~CholmodBase()
-    {
-      if(m_cholmodFactor)
-        cholmod_free_factor(&m_cholmodFactor, &m_cholmod);
-      cholmod_finish(&m_cholmod);
-    }
-    
-    inline Index cols() const { return m_cholmodFactor->n; }
-    inline Index rows() const { return m_cholmodFactor->n; }
-    
-    Derived& derived() { return *static_cast<Derived*>(this); }
-    const Derived& derived() const { return *static_cast<const Derived*>(this); }
-    
-    /** \brief Reports whether previous computation was successful.
-      *
-      * \returns \c Success if computation was succesful,
-      *          \c NumericalIssue if the matrix.appears to be negative.
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
-      return m_info;
-    }
-
-    /** Computes the sparse Cholesky decomposition of \a matrix */
-    Derived& compute(const MatrixType& matrix)
-    {
-      analyzePattern(matrix);
-      factorize(matrix);
-      return derived();
-    }
-    
-    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
-      *
-      * \sa compute()
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<CholmodBase, Rhs>
-    solve(const MatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "LLT is not initialized.");
-      eigen_assert(rows()==b.rows()
-                && "CholmodDecomposition::solve(): invalid number of rows of the right hand side matrix b");
-      return internal::solve_retval<CholmodBase, Rhs>(*this, b.derived());
-    }
-    
-    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
-      *
-      * \sa compute()
-      */
-    template<typename Rhs>
-    inline const internal::sparse_solve_retval<CholmodBase, Rhs>
-    solve(const SparseMatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "LLT is not initialized.");
-      eigen_assert(rows()==b.rows()
-                && "CholmodDecomposition::solve(): invalid number of rows of the right hand side matrix b");
-      return internal::sparse_solve_retval<CholmodBase, Rhs>(*this, b.derived());
-    }
-    
-    /** Performs a symbolic decomposition on the sparcity of \a matrix.
-      *
-      * This function is particularly useful when solving for several problems having the same structure.
-      * 
-      * \sa factorize()
-      */
-    void analyzePattern(const MatrixType& matrix)
-    {
-      if(m_cholmodFactor)
-      {
-        cholmod_free_factor(&m_cholmodFactor, &m_cholmod);
-        m_cholmodFactor = 0;
-      }
-      cholmod_sparse A = viewAsCholmod(matrix.template selfadjointView<UpLo>());
-      m_cholmodFactor = cholmod_analyze(&A, &m_cholmod);
-      
-      this->m_isInitialized = true;
-      this->m_info = Success;
-      m_analysisIsOk = true;
-      m_factorizationIsOk = false;
-    }
-    
-    /** Performs a numeric decomposition of \a matrix
-      *
-      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
-      *
-      * \sa analyzePattern()
-      */
-    void factorize(const MatrixType& matrix)
-    {
-      eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
-      cholmod_sparse A = viewAsCholmod(matrix.template selfadjointView<UpLo>());
-      cholmod_factorize_p(&A, m_shiftOffset, 0, 0, m_cholmodFactor, &m_cholmod);
-      
-      // If the factorization failed, minor is the column at which it did. On success minor == n.
-      this->m_info = (m_cholmodFactor->minor == m_cholmodFactor->n ? Success : NumericalIssue);
-      m_factorizationIsOk = true;
-    }
-    
-    /** Returns a reference to the Cholmod's configuration structure to get a full control over the performed operations.
-     *  See the Cholmod user guide for details. */
-    cholmod_common& cholmod() { return m_cholmod; }
-    
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** \internal */
-    template<typename Rhs,typename Dest>
-    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
-    {
-      eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
-      const Index size = m_cholmodFactor->n;
-      EIGEN_UNUSED_VARIABLE(size);
-      eigen_assert(size==b.rows());
-
-      // note: cd stands for Cholmod Dense
-      cholmod_dense b_cd = viewAsCholmod(b.const_cast_derived());
-      cholmod_dense* x_cd = cholmod_solve(CHOLMOD_A, m_cholmodFactor, &b_cd, &m_cholmod);
-      if(!x_cd)
-      {
-        this->m_info = NumericalIssue;
-      }
-      // TODO optimize this copy by swapping when possible (be carreful with alignment, etc.)
-      dest = Matrix<Scalar,Dest::RowsAtCompileTime,Dest::ColsAtCompileTime>::Map(reinterpret_cast<Scalar*>(x_cd->x),b.rows(),b.cols());
-      cholmod_free_dense(&x_cd, &m_cholmod);
-    }
-    
-    /** \internal */
-    template<typename RhsScalar, int RhsOptions, typename RhsIndex, typename DestScalar, int DestOptions, typename DestIndex>
-    void _solve(const SparseMatrix<RhsScalar,RhsOptions,RhsIndex> &b, SparseMatrix<DestScalar,DestOptions,DestIndex> &dest) const
-    {
-      eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
-      const Index size = m_cholmodFactor->n;
-      eigen_assert(size==b.rows());
-
-      // note: cs stands for Cholmod Sparse
-      cholmod_sparse b_cs = viewAsCholmod(b);
-      cholmod_sparse* x_cs = cholmod_spsolve(CHOLMOD_A, m_cholmodFactor, &b_cs, &m_cholmod);
-      if(!x_cs)
-      {
-        this->m_info = NumericalIssue;
-      }
-      // TODO optimize this copy by swapping when possible (be carreful with alignment, etc.)
-      dest = viewAsEigen<DestScalar,DestOptions,DestIndex>(*x_cs);
-      cholmod_free_sparse(&x_cs, &m_cholmod);
-    }
-    #endif // EIGEN_PARSED_BY_DOXYGEN
-    
-    
-    /** Sets the shift parameter that will be used to adjust the diagonal coefficients during the numerical factorization.
-      *
-      * During the numerical factorization, an offset term is added to the diagonal coefficients:\n
-      * \c d_ii = \a offset + \c d_ii
-      *
-      * The default is \a offset=0.
-      *
-      * \returns a reference to \c *this.
-      */
-    Derived& setShift(const RealScalar& offset)
-    {
-      m_shiftOffset[0] = offset;
-      return derived();
-    }
-    
-    template<typename Stream>
-    void dumpMemory(Stream& s)
-    {}
-    
-  protected:
-    mutable cholmod_common m_cholmod;
-    cholmod_factor* m_cholmodFactor;
-    RealScalar m_shiftOffset[2];
-    mutable ComputationInfo m_info;
-    bool m_isInitialized;
-    int m_factorizationIsOk;
-    int m_analysisIsOk;
-};
-
-/** \ingroup CholmodSupport_Module
-  * \class CholmodSimplicialLLT
-  * \brief A simplicial direct Cholesky (LLT) factorization and solver based on Cholmod
-  *
-  * This class allows to solve for A.X = B sparse linear problems via a simplicial LL^T Cholesky factorization
-  * using the Cholmod library.
-  * This simplicial variant is equivalent to Eigen's built-in SimplicialLLT class. Thefore, it has little practical interest.
-  * The sparse matrix A must be selfajoint and positive definite. The vectors or matrices
-  * X and B can be either dense or sparse.
-  *
-  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
-  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
-  *               or Upper. Default is Lower.
-  *
-  * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
-  *
-  * \sa \ref TutorialSparseDirectSolvers, class CholmodSupernodalLLT, class SimplicialLLT
-  */
-template<typename _MatrixType, int _UpLo = Lower>
-class CholmodSimplicialLLT : public CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLLT<_MatrixType, _UpLo> >
-{
-    typedef CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLLT> Base;
-    using Base::m_cholmod;
-    
-  public:
-    
-    typedef _MatrixType MatrixType;
-    
-    CholmodSimplicialLLT() : Base() { init(); }
-
-    CholmodSimplicialLLT(const MatrixType& matrix) : Base()
-    {
-      init();
-      compute(matrix);
-    }
-
-    ~CholmodSimplicialLLT() {}
-  protected:
-    void init()
-    {
-      m_cholmod.final_asis = 0;
-      m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
-      m_cholmod.final_ll = 1;
-    }
-};
-
-
-/** \ingroup CholmodSupport_Module
-  * \class CholmodSimplicialLDLT
-  * \brief A simplicial direct Cholesky (LDLT) factorization and solver based on Cholmod
-  *
-  * This class allows to solve for A.X = B sparse linear problems via a simplicial LDL^T Cholesky factorization
-  * using the Cholmod library.
-  * This simplicial variant is equivalent to Eigen's built-in SimplicialLDLT class. Thefore, it has little practical interest.
-  * The sparse matrix A must be selfajoint and positive definite. The vectors or matrices
-  * X and B can be either dense or sparse.
-  *
-  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
-  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
-  *               or Upper. Default is Lower.
-  *
-  * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
-  *
-  * \sa \ref TutorialSparseDirectSolvers, class CholmodSupernodalLLT, class SimplicialLDLT
-  */
-template<typename _MatrixType, int _UpLo = Lower>
-class CholmodSimplicialLDLT : public CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLDLT<_MatrixType, _UpLo> >
-{
-    typedef CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLDLT> Base;
-    using Base::m_cholmod;
-    
-  public:
-    
-    typedef _MatrixType MatrixType;
-    
-    CholmodSimplicialLDLT() : Base() { init(); }
-
-    CholmodSimplicialLDLT(const MatrixType& matrix) : Base()
-    {
-      init();
-      compute(matrix);
-    }
-
-    ~CholmodSimplicialLDLT() {}
-  protected:
-    void init()
-    {
-      m_cholmod.final_asis = 1;
-      m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
-    }
-};
-
-/** \ingroup CholmodSupport_Module
-  * \class CholmodSupernodalLLT
-  * \brief A supernodal Cholesky (LLT) factorization and solver based on Cholmod
-  *
-  * This class allows to solve for A.X = B sparse linear problems via a supernodal LL^T Cholesky factorization
-  * using the Cholmod library.
-  * This supernodal variant performs best on dense enough problems, e.g., 3D FEM, or very high order 2D FEM.
-  * The sparse matrix A must be selfajoint and positive definite. The vectors or matrices
-  * X and B can be either dense or sparse.
-  *
-  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
-  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
-  *               or Upper. Default is Lower.
-  *
-  * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
-  *
-  * \sa \ref TutorialSparseDirectSolvers
-  */
-template<typename _MatrixType, int _UpLo = Lower>
-class CholmodSupernodalLLT : public CholmodBase<_MatrixType, _UpLo, CholmodSupernodalLLT<_MatrixType, _UpLo> >
-{
-    typedef CholmodBase<_MatrixType, _UpLo, CholmodSupernodalLLT> Base;
-    using Base::m_cholmod;
-    
-  public:
-    
-    typedef _MatrixType MatrixType;
-    
-    CholmodSupernodalLLT() : Base() { init(); }
-
-    CholmodSupernodalLLT(const MatrixType& matrix) : Base()
-    {
-      init();
-      compute(matrix);
-    }
-
-    ~CholmodSupernodalLLT() {}
-  protected:
-    void init()
-    {
-      m_cholmod.final_asis = 1;
-      m_cholmod.supernodal = CHOLMOD_SUPERNODAL;
-    }
-};
-
-/** \ingroup CholmodSupport_Module
-  * \class CholmodDecomposition
-  * \brief A general Cholesky factorization and solver based on Cholmod
-  *
-  * This class allows to solve for A.X = B sparse linear problems via a LL^T or LDL^T Cholesky factorization
-  * using the Cholmod library. The sparse matrix A must be selfajoint and positive definite. The vectors or matrices
-  * X and B can be either dense or sparse.
-  *
-  * This variant permits to change the underlying Cholesky method at runtime.
-  * On the other hand, it does not provide access to the result of the factorization.
-  * The default is to let Cholmod automatically choose between a simplicial and supernodal factorization.
-  *
-  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
-  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
-  *               or Upper. Default is Lower.
-  *
-  * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
-  *
-  * \sa \ref TutorialSparseDirectSolvers
-  */
-template<typename _MatrixType, int _UpLo = Lower>
-class CholmodDecomposition : public CholmodBase<_MatrixType, _UpLo, CholmodDecomposition<_MatrixType, _UpLo> >
-{
-    typedef CholmodBase<_MatrixType, _UpLo, CholmodDecomposition> Base;
-    using Base::m_cholmod;
-    
-  public:
-    
-    typedef _MatrixType MatrixType;
-    
-    CholmodDecomposition() : Base() { init(); }
-
-    CholmodDecomposition(const MatrixType& matrix) : Base()
-    {
-      init();
-      compute(matrix);
-    }
-
-    ~CholmodDecomposition() {}
-    
-    void setMode(CholmodMode mode)
-    {
-      switch(mode)
-      {
-        case CholmodAuto:
-          m_cholmod.final_asis = 1;
-          m_cholmod.supernodal = CHOLMOD_AUTO;
-          break;
-        case CholmodSimplicialLLt:
-          m_cholmod.final_asis = 0;
-          m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
-          m_cholmod.final_ll = 1;
-          break;
-        case CholmodSupernodalLLt:
-          m_cholmod.final_asis = 1;
-          m_cholmod.supernodal = CHOLMOD_SUPERNODAL;
-          break;
-        case CholmodLDLt:
-          m_cholmod.final_asis = 1;
-          m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
-          break;
-        default:
-          break;
-      }
-    }
-  protected:
-    void init()
-    {
-      m_cholmod.final_asis = 1;
-      m_cholmod.supernodal = CHOLMOD_AUTO;
-    }
-};
-
-namespace internal {
-  
-template<typename _MatrixType, int _UpLo, typename Derived, typename Rhs>
-struct solve_retval<CholmodBase<_MatrixType,_UpLo,Derived>, Rhs>
-  : solve_retval_base<CholmodBase<_MatrixType,_UpLo,Derived>, Rhs>
-{
-  typedef CholmodBase<_MatrixType,_UpLo,Derived> Dec;
-  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    dec()._solve(rhs(),dst);
-  }
-};
-
-template<typename _MatrixType, int _UpLo, typename Derived, typename Rhs>
-struct sparse_solve_retval<CholmodBase<_MatrixType,_UpLo,Derived>, Rhs>
-  : sparse_solve_retval_base<CholmodBase<_MatrixType,_UpLo,Derived>, Rhs>
-{
-  typedef CholmodBase<_MatrixType,_UpLo,Derived> Dec;
-  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    dec()._solve(rhs(),dst);
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_CHOLMODSUPPORT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Array.h b/vendor/eigen-3.1.91/Eigen/src/Core/Array.h
deleted file mode 100644
index bd47e6c..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/Array.h
+++ /dev/null
@@ -1,308 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_ARRAY_H
-#define EIGEN_ARRAY_H
-
-namespace Eigen {
-
-/** \class Array 
-  * \ingroup Core_Module
-  *
-  * \brief General-purpose arrays with easy API for coefficient-wise operations
-  *
-  * The %Array class is very similar to the Matrix class. It provides
-  * general-purpose one- and two-dimensional arrays. The difference between the
-  * %Array and the %Matrix class is primarily in the API: the API for the
-  * %Array class provides easy access to coefficient-wise operations, while the
-  * API for the %Matrix class provides easy access to linear-algebra
-  * operations.
-  *
-  * This class can be extended with the help of the plugin mechanism described on the page
-  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_ARRAY_PLUGIN.
-  *
-  * \sa \ref TutorialArrayClass, \ref TopicClassHierarchy
-  */
-namespace internal {
-template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
-struct traits<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > : traits<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
-{
-  typedef ArrayXpr XprKind;
-  typedef ArrayBase<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > XprBase;
-};
-}
-
-template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
-class Array
-  : public PlainObjectBase<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
-{
-  public:
-
-    typedef PlainObjectBase<Array> Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(Array)
-
-    enum { Options = _Options };
-    typedef typename Base::PlainObject PlainObject;
-
-  protected:
-    template <typename Derived, typename OtherDerived, bool IsVector>
-    friend struct internal::conservative_resize_like_impl;
-
-    using Base::m_storage;
-
-  public:
-
-    using Base::base;
-    using Base::coeff;
-    using Base::coeffRef;
-
-    /**
-      * The usage of
-      *   using Base::operator=;
-      * fails on MSVC. Since the code below is working with GCC and MSVC, we skipped
-      * the usage of 'using'. This should be done only for operator=.
-      */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Array& operator=(const EigenBase<OtherDerived> &other)
-    {
-      return Base::operator=(other);
-    }
-
-    /** Copies the value of the expression \a other into \c *this with automatic resizing.
-      *
-      * *this might be resized to match the dimensions of \a other. If *this was a null matrix (not already initialized),
-      * it will be initialized.
-      *
-      * Note that copying a row-vector into a vector (and conversely) is allowed.
-      * The resizing, if any, is then done in the appropriate way so that row-vectors
-      * remain row-vectors and vectors remain vectors.
-      */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Array& operator=(const ArrayBase<OtherDerived>& other)
-    {
-      return Base::_set(other);
-    }
-
-    /** This is a special case of the templated operator=. Its purpose is to
-      * prevent a default operator= from hiding the templated operator=.
-      */
-    EIGEN_STRONG_INLINE Array& operator=(const Array& other)
-    {
-      return Base::_set(other);
-    }
-
-    /** Default constructor.
-      *
-      * For fixed-size matrices, does nothing.
-      *
-      * For dynamic-size matrices, creates an empty matrix of size 0. Does not allocate any array. Such a matrix
-      * is called a null matrix. This constructor is the unique way to create null matrices: resizing
-      * a matrix to 0 is not supported.
-      *
-      * \sa resize(Index,Index)
-      */
-    EIGEN_STRONG_INLINE explicit Array() : Base()
-    {
-      Base::_check_template_params();
-      EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
-    }
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    // FIXME is it still needed ??
-    /** \internal */
-    Array(internal::constructor_without_unaligned_array_assert)
-      : Base(internal::constructor_without_unaligned_array_assert())
-    {
-      Base::_check_template_params();
-      EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
-    }
-#endif
-
-    /** Constructs a vector or row-vector with given dimension. \only_for_vectors
-      *
-      * Note that this is only useful for dynamic-size vectors. For fixed-size vectors,
-      * it is redundant to pass the dimension here, so it makes more sense to use the default
-      * constructor Matrix() instead.
-      */
-    EIGEN_STRONG_INLINE explicit Array(Index dim)
-      : Base(dim, RowsAtCompileTime == 1 ? 1 : dim, ColsAtCompileTime == 1 ? 1 : dim)
-    {
-      Base::_check_template_params();
-      EIGEN_STATIC_ASSERT_VECTOR_ONLY(Array)
-      eigen_assert(dim >= 0);
-      eigen_assert(SizeAtCompileTime == Dynamic || SizeAtCompileTime == dim);
-      EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
-    }
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    template<typename T0, typename T1>
-    EIGEN_STRONG_INLINE Array(const T0& val0, const T1& val1)
-    {
-      Base::_check_template_params();
-      this->template _init2<T0,T1>(val0, val1);
-    }
-    #else
-    /** constructs an uninitialized matrix with \a rows rows and \a cols columns.
-      *
-      * This is useful for dynamic-size matrices. For fixed-size matrices,
-      * it is redundant to pass these parameters, so one should use the default constructor
-      * Matrix() instead. */
-    Array(Index rows, Index cols);
-    /** constructs an initialized 2D vector with given coefficients */
-    Array(const Scalar& val0, const Scalar& val1);
-    #endif
-
-    /** constructs an initialized 3D vector with given coefficients */
-    EIGEN_STRONG_INLINE Array(const Scalar& val0, const Scalar& val1, const Scalar& val2)
-    {
-      Base::_check_template_params();
-      EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Array, 3)
-      m_storage.data()[0] = val0;
-      m_storage.data()[1] = val1;
-      m_storage.data()[2] = val2;
-    }
-    /** constructs an initialized 4D vector with given coefficients */
-    EIGEN_STRONG_INLINE Array(const Scalar& val0, const Scalar& val1, const Scalar& val2, const Scalar& val3)
-    {
-      Base::_check_template_params();
-      EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Array, 4)
-      m_storage.data()[0] = val0;
-      m_storage.data()[1] = val1;
-      m_storage.data()[2] = val2;
-      m_storage.data()[3] = val3;
-    }
-
-    explicit Array(const Scalar *data);
-
-    /** Constructor copying the value of the expression \a other */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Array(const ArrayBase<OtherDerived>& other)
-             : Base(other.rows() * other.cols(), other.rows(), other.cols())
-    {
-      Base::_check_template_params();
-      Base::_set_noalias(other);
-    }
-    /** Copy constructor */
-    EIGEN_STRONG_INLINE Array(const Array& other)
-            : Base(other.rows() * other.cols(), other.rows(), other.cols())
-    {
-      Base::_check_template_params();
-      Base::_set_noalias(other);
-    }
-    /** Copy constructor with in-place evaluation */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Array(const ReturnByValue<OtherDerived>& other)
-    {
-      Base::_check_template_params();
-      Base::resize(other.rows(), other.cols());
-      other.evalTo(*this);
-    }
-
-    /** \sa MatrixBase::operator=(const EigenBase<OtherDerived>&) */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Array(const EigenBase<OtherDerived> &other)
-      : Base(other.derived().rows() * other.derived().cols(), other.derived().rows(), other.derived().cols())
-    {
-      Base::_check_template_params();
-      Base::resize(other.rows(), other.cols());
-      *this = other;
-    }
-
-    /** Override MatrixBase::swap() since for dynamic-sized matrices of same type it is enough to swap the
-      * data pointers.
-      */
-    template<typename OtherDerived>
-    void swap(ArrayBase<OtherDerived> const & other)
-    { this->_swap(other.derived()); }
-
-    inline Index innerStride() const { return 1; }
-    inline Index outerStride() const { return this->innerSize(); }
-
-    #ifdef EIGEN_ARRAY_PLUGIN
-    #include EIGEN_ARRAY_PLUGIN
-    #endif
-
-  private:
-
-    template<typename MatrixType, typename OtherDerived, bool SwapPointers>
-    friend struct internal::matrix_swap_impl;
-};
-
-/** \defgroup arraytypedefs Global array typedefs
-  * \ingroup Core_Module
-  *
-  * Eigen defines several typedef shortcuts for most common 1D and 2D array types.
-  *
-  * The general patterns are the following:
-  *
-  * \c ArrayRowsColsType where \c Rows and \c Cols can be \c 2,\c 3,\c 4 for fixed size square matrices or \c X for dynamic size,
-  * and where \c Type can be \c i for integer, \c f for float, \c d for double, \c cf for complex float, \c cd
-  * for complex double.
-  *
-  * For example, \c Array33d is a fixed-size 3x3 array type of doubles, and \c ArrayXXf is a dynamic-size matrix of floats.
-  *
-  * There are also \c ArraySizeType which are self-explanatory. For example, \c Array4cf is
-  * a fixed-size 1D array of 4 complex floats.
-  *
-  * \sa class Array
-  */
-
-#define EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix)   \
-/** \ingroup arraytypedefs */                                    \
-typedef Array<Type, Size, Size> Array##SizeSuffix##SizeSuffix##TypeSuffix;  \
-/** \ingroup arraytypedefs */                                    \
-typedef Array<Type, Size, 1>    Array##SizeSuffix##TypeSuffix;
-
-#define EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, Size)         \
-/** \ingroup arraytypedefs */                                    \
-typedef Array<Type, Size, Dynamic> Array##Size##X##TypeSuffix;  \
-/** \ingroup arraytypedefs */                                    \
-typedef Array<Type, Dynamic, Size> Array##X##Size##TypeSuffix;
-
-#define EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \
-EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 2, 2) \
-EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 3, 3) \
-EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 4, 4) \
-EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, Dynamic, X) \
-EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 2) \
-EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 3) \
-EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 4)
-
-EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(int,                  i)
-EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(float,                f)
-EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(double,               d)
-EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(std::complex<float>,  cf)
-EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(std::complex<double>, cd)
-
-#undef EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES
-#undef EIGEN_MAKE_ARRAY_TYPEDEFS
-
-#undef EIGEN_MAKE_ARRAY_TYPEDEFS_LARGE
-
-#define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, SizeSuffix) \
-using Eigen::Matrix##SizeSuffix##TypeSuffix; \
-using Eigen::Vector##SizeSuffix##TypeSuffix; \
-using Eigen::RowVector##SizeSuffix##TypeSuffix;
-
-#define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(TypeSuffix) \
-EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 2) \
-EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 3) \
-EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 4) \
-EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, X) \
-
-#define EIGEN_USING_ARRAY_TYPEDEFS \
-EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(i) \
-EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(f) \
-EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(d) \
-EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(cf) \
-EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(cd)
-
-} // end namespace Eigen
-
-#endif // EIGEN_ARRAY_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/ArrayBase.h b/vendor/eigen-3.1.91/Eigen/src/Core/ArrayBase.h
deleted file mode 100644
index 3885260..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/ArrayBase.h
+++ /dev/null
@@ -1,228 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_ARRAYBASE_H
-#define EIGEN_ARRAYBASE_H
-
-namespace Eigen { 
-
-template<typename ExpressionType> class MatrixWrapper;
-
-/** \class ArrayBase
-  * \ingroup Core_Module
-  *
-  * \brief Base class for all 1D and 2D array, and related expressions
-  *
-  * An array is similar to a dense vector or matrix. While matrices are mathematical
-  * objects with well defined linear algebra operators, an array is just a collection
-  * of scalar values arranged in a one or two dimensionnal fashion. As the main consequence,
-  * all operations applied to an array are performed coefficient wise. Furthermore,
-  * arrays support scalar math functions of the c++ standard library (e.g., std::sin(x)), and convenient
-  * constructors allowing to easily write generic code working for both scalar values
-  * and arrays.
-  *
-  * This class is the base that is inherited by all array expression types.
-  *
-  * \tparam Derived is the derived type, e.g., an array or an expression type.
-  *
-  * This class can be extended with the help of the plugin mechanism described on the page
-  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_ARRAYBASE_PLUGIN.
-  *
-  * \sa class MatrixBase, \ref TopicClassHierarchy
-  */
-template<typename Derived> class ArrayBase
-  : public DenseBase<Derived>
-{
-  public:
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** The base class for a given storage type. */
-    typedef ArrayBase StorageBaseType;
-
-    typedef ArrayBase Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl;
-
-    using internal::special_scalar_op_base<Derived,typename internal::traits<Derived>::Scalar,
-                typename NumTraits<typename internal::traits<Derived>::Scalar>::Real>::operator*;
-
-    typedef typename internal::traits<Derived>::StorageKind StorageKind;
-    typedef typename internal::traits<Derived>::Index Index;
-    typedef typename internal::traits<Derived>::Scalar Scalar;
-    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-
-    typedef DenseBase<Derived> Base;
-    using Base::RowsAtCompileTime;
-    using Base::ColsAtCompileTime;
-    using Base::SizeAtCompileTime;
-    using Base::MaxRowsAtCompileTime;
-    using Base::MaxColsAtCompileTime;
-    using Base::MaxSizeAtCompileTime;
-    using Base::IsVectorAtCompileTime;
-    using Base::Flags;
-    using Base::CoeffReadCost;
-
-    using Base::derived;
-    using Base::const_cast_derived;
-    using Base::rows;
-    using Base::cols;
-    using Base::size;
-    using Base::coeff;
-    using Base::coeffRef;
-    using Base::lazyAssign;
-    using Base::operator=;
-    using Base::operator+=;
-    using Base::operator-=;
-    using Base::operator*=;
-    using Base::operator/=;
-
-    typedef typename Base::CoeffReturnType CoeffReturnType;
-
-#endif // not EIGEN_PARSED_BY_DOXYGEN
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** \internal the plain matrix type corresponding to this expression. Note that is not necessarily
-      * exactly the return type of eval(): in the case of plain matrices, the return type of eval() is a const
-      * reference to a matrix, not a matrix! It is however guaranteed that the return type of eval() is either
-      * PlainObject or const PlainObject&.
-      */
-    typedef Array<typename internal::traits<Derived>::Scalar,
-                internal::traits<Derived>::RowsAtCompileTime,
-                internal::traits<Derived>::ColsAtCompileTime,
-                AutoAlign | (internal::traits<Derived>::Flags&RowMajorBit ? RowMajor : ColMajor),
-                internal::traits<Derived>::MaxRowsAtCompileTime,
-                internal::traits<Derived>::MaxColsAtCompileTime
-          > PlainObject;
-
-
-    /** \internal Represents a matrix with all coefficients equal to one another*/
-    typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,Derived> ConstantReturnType;
-#endif // not EIGEN_PARSED_BY_DOXYGEN
-
-#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::ArrayBase
-#   include "../plugins/CommonCwiseUnaryOps.h"
-#   include "../plugins/MatrixCwiseUnaryOps.h"
-#   include "../plugins/ArrayCwiseUnaryOps.h"
-#   include "../plugins/CommonCwiseBinaryOps.h"
-#   include "../plugins/MatrixCwiseBinaryOps.h"
-#   include "../plugins/ArrayCwiseBinaryOps.h"
-#   ifdef EIGEN_ARRAYBASE_PLUGIN
-#     include EIGEN_ARRAYBASE_PLUGIN
-#   endif
-#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
-
-    /** Special case of the template operator=, in order to prevent the compiler
-      * from generating a default operator= (issue hit with g++ 4.1)
-      */
-    Derived& operator=(const ArrayBase& other)
-    {
-      return internal::assign_selector<Derived,Derived>::run(derived(), other.derived());
-    }
-
-    Derived& operator+=(const Scalar& scalar)
-    { return *this = derived() + scalar; }
-    Derived& operator-=(const Scalar& scalar)
-    { return *this = derived() - scalar; }
-
-    template<typename OtherDerived>
-    Derived& operator+=(const ArrayBase<OtherDerived>& other);
-    template<typename OtherDerived>
-    Derived& operator-=(const ArrayBase<OtherDerived>& other);
-
-    template<typename OtherDerived>
-    Derived& operator*=(const ArrayBase<OtherDerived>& other);
-
-    template<typename OtherDerived>
-    Derived& operator/=(const ArrayBase<OtherDerived>& other);
-
-  public:
-    ArrayBase<Derived>& array() { return *this; }
-    const ArrayBase<Derived>& array() const { return *this; }
-
-    /** \returns an \link Eigen::MatrixBase Matrix \endlink expression of this array
-      * \sa MatrixBase::array() */
-    MatrixWrapper<Derived> matrix() { return derived(); }
-    const MatrixWrapper<const Derived> matrix() const { return derived(); }
-
-//     template<typename Dest>
-//     inline void evalTo(Dest& dst) const { dst = matrix(); }
-
-  protected:
-    ArrayBase() : Base() {}
-
-  private:
-    explicit ArrayBase(Index);
-    ArrayBase(Index,Index);
-    template<typename OtherDerived> explicit ArrayBase(const ArrayBase<OtherDerived>&);
-  protected:
-    // mixing arrays and matrices is not legal
-    template<typename OtherDerived> Derived& operator+=(const MatrixBase<OtherDerived>& )
-    {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
-    // mixing arrays and matrices is not legal
-    template<typename OtherDerived> Derived& operator-=(const MatrixBase<OtherDerived>& )
-    {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
-};
-
-/** replaces \c *this by \c *this - \a other.
-  *
-  * \returns a reference to \c *this
-  */
-template<typename Derived>
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE Derived &
-ArrayBase<Derived>::operator-=(const ArrayBase<OtherDerived> &other)
-{
-  SelfCwiseBinaryOp<internal::scalar_difference_op<Scalar>, Derived, OtherDerived> tmp(derived());
-  tmp = other.derived();
-  return derived();
-}
-
-/** replaces \c *this by \c *this + \a other.
-  *
-  * \returns a reference to \c *this
-  */
-template<typename Derived>
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE Derived &
-ArrayBase<Derived>::operator+=(const ArrayBase<OtherDerived>& other)
-{
-  SelfCwiseBinaryOp<internal::scalar_sum_op<Scalar>, Derived, OtherDerived> tmp(derived());
-  tmp = other.derived();
-  return derived();
-}
-
-/** replaces \c *this by \c *this * \a other coefficient wise.
-  *
-  * \returns a reference to \c *this
-  */
-template<typename Derived>
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE Derived &
-ArrayBase<Derived>::operator*=(const ArrayBase<OtherDerived>& other)
-{
-  SelfCwiseBinaryOp<internal::scalar_product_op<Scalar>, Derived, OtherDerived> tmp(derived());
-  tmp = other.derived();
-  return derived();
-}
-
-/** replaces \c *this by \c *this / \a other coefficient wise.
-  *
-  * \returns a reference to \c *this
-  */
-template<typename Derived>
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE Derived &
-ArrayBase<Derived>::operator/=(const ArrayBase<OtherDerived>& other)
-{
-  SelfCwiseBinaryOp<internal::scalar_quotient_op<Scalar>, Derived, OtherDerived> tmp(derived());
-  tmp = other.derived();
-  return derived();
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_ARRAYBASE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/ArrayWrapper.h b/vendor/eigen-3.1.91/Eigen/src/Core/ArrayWrapper.h
deleted file mode 100644
index 1e021b0..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/ArrayWrapper.h
+++ /dev/null
@@ -1,254 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_ARRAYWRAPPER_H
-#define EIGEN_ARRAYWRAPPER_H
-
-namespace Eigen { 
-
-/** \class ArrayWrapper
-  * \ingroup Core_Module
-  *
-  * \brief Expression of a mathematical vector or matrix as an array object
-  *
-  * This class is the return type of MatrixBase::array(), and most of the time
-  * this is the only way it is use.
-  *
-  * \sa MatrixBase::array(), class MatrixWrapper
-  */
-
-namespace internal {
-template<typename ExpressionType>
-struct traits<ArrayWrapper<ExpressionType> >
-  : public traits<typename remove_all<typename ExpressionType::Nested>::type >
-{
-  typedef ArrayXpr XprKind;
-};
-}
-
-template<typename ExpressionType>
-class ArrayWrapper : public ArrayBase<ArrayWrapper<ExpressionType> >
-{
-  public:
-    typedef ArrayBase<ArrayWrapper> Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(ArrayWrapper)
-    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(ArrayWrapper)
-
-    typedef typename internal::conditional<
-                       internal::is_lvalue<ExpressionType>::value,
-                       Scalar,
-                       const Scalar
-                     >::type ScalarWithConstIfNotLvalue;
-
-    typedef typename internal::nested<ExpressionType>::type NestedExpressionType;
-
-    inline ArrayWrapper(ExpressionType& matrix) : m_expression(matrix) {}
-
-    inline Index rows() const { return m_expression.rows(); }
-    inline Index cols() const { return m_expression.cols(); }
-    inline Index outerStride() const { return m_expression.outerStride(); }
-    inline Index innerStride() const { return m_expression.innerStride(); }
-
-    inline ScalarWithConstIfNotLvalue* data() { return m_expression.data(); }
-    inline const Scalar* data() const { return m_expression.data(); }
-
-    inline CoeffReturnType coeff(Index rowId, Index colId) const
-    {
-      return m_expression.coeff(rowId, colId);
-    }
-
-    inline Scalar& coeffRef(Index rowId, Index colId)
-    {
-      return m_expression.const_cast_derived().coeffRef(rowId, colId);
-    }
-
-    inline const Scalar& coeffRef(Index rowId, Index colId) const
-    {
-      return m_expression.const_cast_derived().coeffRef(rowId, colId);
-    }
-
-    inline CoeffReturnType coeff(Index index) const
-    {
-      return m_expression.coeff(index);
-    }
-
-    inline Scalar& coeffRef(Index index)
-    {
-      return m_expression.const_cast_derived().coeffRef(index);
-    }
-
-    inline const Scalar& coeffRef(Index index) const
-    {
-      return m_expression.const_cast_derived().coeffRef(index);
-    }
-
-    template<int LoadMode>
-    inline const PacketScalar packet(Index rowId, Index colId) const
-    {
-      return m_expression.template packet<LoadMode>(rowId, colId);
-    }
-
-    template<int LoadMode>
-    inline void writePacket(Index rowId, Index colId, const PacketScalar& val)
-    {
-      m_expression.const_cast_derived().template writePacket<LoadMode>(rowId, colId, val);
-    }
-
-    template<int LoadMode>
-    inline const PacketScalar packet(Index index) const
-    {
-      return m_expression.template packet<LoadMode>(index);
-    }
-
-    template<int LoadMode>
-    inline void writePacket(Index index, const PacketScalar& val)
-    {
-      m_expression.const_cast_derived().template writePacket<LoadMode>(index, val);
-    }
-
-    template<typename Dest>
-    inline void evalTo(Dest& dst) const { dst = m_expression; }
-
-    const typename internal::remove_all<NestedExpressionType>::type& 
-    nestedExpression() const 
-    {
-      return m_expression;
-    }
-
-    /** Forwards the resizing request to the nested expression
-      * \sa DenseBase::resize(Index)  */
-    void resize(Index newSize) { m_expression.const_cast_derived().resize(newSize); }
-    /** Forwards the resizing request to the nested expression
-      * \sa DenseBase::resize(Index,Index)*/
-    void resize(Index nbRows, Index nbCols) { m_expression.const_cast_derived().resize(nbRows,nbCols); }
-
-  protected:
-    NestedExpressionType m_expression;
-};
-
-/** \class MatrixWrapper
-  * \ingroup Core_Module
-  *
-  * \brief Expression of an array as a mathematical vector or matrix
-  *
-  * This class is the return type of ArrayBase::matrix(), and most of the time
-  * this is the only way it is use.
-  *
-  * \sa MatrixBase::matrix(), class ArrayWrapper
-  */
-
-namespace internal {
-template<typename ExpressionType>
-struct traits<MatrixWrapper<ExpressionType> >
- : public traits<typename remove_all<typename ExpressionType::Nested>::type >
-{
-  typedef MatrixXpr XprKind;
-};
-}
-
-template<typename ExpressionType>
-class MatrixWrapper : public MatrixBase<MatrixWrapper<ExpressionType> >
-{
-  public:
-    typedef MatrixBase<MatrixWrapper<ExpressionType> > Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(MatrixWrapper)
-    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(MatrixWrapper)
-
-    typedef typename internal::conditional<
-                       internal::is_lvalue<ExpressionType>::value,
-                       Scalar,
-                       const Scalar
-                     >::type ScalarWithConstIfNotLvalue;
-
-    typedef typename internal::nested<ExpressionType>::type NestedExpressionType;
-
-    inline MatrixWrapper(ExpressionType& a_matrix) : m_expression(a_matrix) {}
-
-    inline Index rows() const { return m_expression.rows(); }
-    inline Index cols() const { return m_expression.cols(); }
-    inline Index outerStride() const { return m_expression.outerStride(); }
-    inline Index innerStride() const { return m_expression.innerStride(); }
-
-    inline ScalarWithConstIfNotLvalue* data() { return m_expression.data(); }
-    inline const Scalar* data() const { return m_expression.data(); }
-
-    inline CoeffReturnType coeff(Index rowId, Index colId) const
-    {
-      return m_expression.coeff(rowId, colId);
-    }
-
-    inline Scalar& coeffRef(Index rowId, Index colId)
-    {
-      return m_expression.const_cast_derived().coeffRef(rowId, colId);
-    }
-
-    inline const Scalar& coeffRef(Index rowId, Index colId) const
-    {
-      return m_expression.derived().coeffRef(rowId, colId);
-    }
-
-    inline CoeffReturnType coeff(Index index) const
-    {
-      return m_expression.coeff(index);
-    }
-
-    inline Scalar& coeffRef(Index index)
-    {
-      return m_expression.const_cast_derived().coeffRef(index);
-    }
-
-    inline const Scalar& coeffRef(Index index) const
-    {
-      return m_expression.const_cast_derived().coeffRef(index);
-    }
-
-    template<int LoadMode>
-    inline const PacketScalar packet(Index rowId, Index colId) const
-    {
-      return m_expression.template packet<LoadMode>(rowId, colId);
-    }
-
-    template<int LoadMode>
-    inline void writePacket(Index rowId, Index colId, const PacketScalar& val)
-    {
-      m_expression.const_cast_derived().template writePacket<LoadMode>(rowId, colId, val);
-    }
-
-    template<int LoadMode>
-    inline const PacketScalar packet(Index index) const
-    {
-      return m_expression.template packet<LoadMode>(index);
-    }
-
-    template<int LoadMode>
-    inline void writePacket(Index index, const PacketScalar& val)
-    {
-      m_expression.const_cast_derived().template writePacket<LoadMode>(index, val);
-    }
-
-    const typename internal::remove_all<NestedExpressionType>::type& 
-    nestedExpression() const 
-    {
-      return m_expression;
-    }
-
-    /** Forwards the resizing request to the nested expression
-      * \sa DenseBase::resize(Index)  */
-    void resize(Index newSize) { m_expression.const_cast_derived().resize(newSize); }
-    /** Forwards the resizing request to the nested expression
-      * \sa DenseBase::resize(Index,Index)*/
-    void resize(Index nbRows, Index nbCols) { m_expression.const_cast_derived().resize(nbRows,nbCols); }
-
-  protected:
-    NestedExpressionType m_expression;
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_ARRAYWRAPPER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Assign.h b/vendor/eigen-3.1.91/Eigen/src/Core/Assign.h
deleted file mode 100644
index 288f8ec..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/Assign.h
+++ /dev/null
@@ -1,583 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2007 Michael Olbrich <michael.olbrich at gmx.net>
-// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_ASSIGN_H
-#define EIGEN_ASSIGN_H
-
-namespace Eigen {
-
-namespace internal {
-
-/***************************************************************************
-* Part 1 : the logic deciding a strategy for traversal and unrolling       *
-***************************************************************************/
-
-template <typename Derived, typename OtherDerived>
-struct assign_traits
-{
-public:
-  enum {
-    DstIsAligned = Derived::Flags & AlignedBit,
-    DstHasDirectAccess = Derived::Flags & DirectAccessBit,
-    SrcIsAligned = OtherDerived::Flags & AlignedBit,
-    JointAlignment = bool(DstIsAligned) && bool(SrcIsAligned) ? Aligned : Unaligned
-  };
-
-private:
-  enum {
-    InnerSize = int(Derived::IsVectorAtCompileTime) ? int(Derived::SizeAtCompileTime)
-              : int(Derived::Flags)&RowMajorBit ? int(Derived::ColsAtCompileTime)
-              : int(Derived::RowsAtCompileTime),
-    InnerMaxSize = int(Derived::IsVectorAtCompileTime) ? int(Derived::MaxSizeAtCompileTime)
-              : int(Derived::Flags)&RowMajorBit ? int(Derived::MaxColsAtCompileTime)
-              : int(Derived::MaxRowsAtCompileTime),
-    MaxSizeAtCompileTime = Derived::SizeAtCompileTime,
-    PacketSize = packet_traits<typename Derived::Scalar>::size
-  };
-
-  enum {
-    StorageOrdersAgree = (int(Derived::IsRowMajor) == int(OtherDerived::IsRowMajor)),
-    MightVectorize = StorageOrdersAgree
-                  && (int(Derived::Flags) & int(OtherDerived::Flags) & ActualPacketAccessBit),
-    MayInnerVectorize  = MightVectorize && int(InnerSize)!=Dynamic && int(InnerSize)%int(PacketSize)==0
-                       && int(DstIsAligned) && int(SrcIsAligned),
-    MayLinearize = StorageOrdersAgree && (int(Derived::Flags) & int(OtherDerived::Flags) & LinearAccessBit),
-    MayLinearVectorize = MightVectorize && MayLinearize && DstHasDirectAccess
-                       && (DstIsAligned || MaxSizeAtCompileTime == Dynamic),
-      /* If the destination isn't aligned, we have to do runtime checks and we don't unroll,
-         so it's only good for large enough sizes. */
-    MaySliceVectorize  = MightVectorize && DstHasDirectAccess
-                       && (int(InnerMaxSize)==Dynamic || int(InnerMaxSize)>=3*PacketSize)
-      /* slice vectorization can be slow, so we only want it if the slices are big, which is
-         indicated by InnerMaxSize rather than InnerSize, think of the case of a dynamic block
-         in a fixed-size matrix */
-  };
-
-public:
-  enum {
-    Traversal = int(MayInnerVectorize)  ? int(InnerVectorizedTraversal)
-              : int(MayLinearVectorize) ? int(LinearVectorizedTraversal)
-              : int(MaySliceVectorize)  ? int(SliceVectorizedTraversal)
-              : int(MayLinearize)       ? int(LinearTraversal)
-                                        : int(DefaultTraversal),
-    Vectorized = int(Traversal) == InnerVectorizedTraversal
-              || int(Traversal) == LinearVectorizedTraversal
-              || int(Traversal) == SliceVectorizedTraversal
-  };
-
-private:
-  enum {
-    UnrollingLimit      = EIGEN_UNROLLING_LIMIT * (Vectorized ? int(PacketSize) : 1),
-    MayUnrollCompletely = int(Derived::SizeAtCompileTime) != Dynamic
-                       && int(OtherDerived::CoeffReadCost) != Dynamic
-                       && int(Derived::SizeAtCompileTime) * int(OtherDerived::CoeffReadCost) <= int(UnrollingLimit),
-    MayUnrollInner      = int(InnerSize) != Dynamic
-                       && int(OtherDerived::CoeffReadCost) != Dynamic
-                       && int(InnerSize) * int(OtherDerived::CoeffReadCost) <= int(UnrollingLimit)
-  };
-
-public:
-  enum {
-    Unrolling = (int(Traversal) == int(InnerVectorizedTraversal) || int(Traversal) == int(DefaultTraversal))
-                ? (
-                    int(MayUnrollCompletely) ? int(CompleteUnrolling)
-                  : int(MayUnrollInner)      ? int(InnerUnrolling)
-                                             : int(NoUnrolling)
-                  )
-              : int(Traversal) == int(LinearVectorizedTraversal)
-                ? ( bool(MayUnrollCompletely) && bool(DstIsAligned) ? int(CompleteUnrolling) : int(NoUnrolling) )
-              : int(Traversal) == int(LinearTraversal)
-                ? ( bool(MayUnrollCompletely) ? int(CompleteUnrolling) : int(NoUnrolling) )
-              : int(NoUnrolling)
-  };
-
-#ifdef EIGEN_DEBUG_ASSIGN
-  static void debug()
-  {
-    EIGEN_DEBUG_VAR(DstIsAligned)
-    EIGEN_DEBUG_VAR(SrcIsAligned)
-    EIGEN_DEBUG_VAR(JointAlignment)
-    EIGEN_DEBUG_VAR(InnerSize)
-    EIGEN_DEBUG_VAR(InnerMaxSize)
-    EIGEN_DEBUG_VAR(PacketSize)
-    EIGEN_DEBUG_VAR(StorageOrdersAgree)
-    EIGEN_DEBUG_VAR(MightVectorize)
-    EIGEN_DEBUG_VAR(MayLinearize)
-    EIGEN_DEBUG_VAR(MayInnerVectorize)
-    EIGEN_DEBUG_VAR(MayLinearVectorize)
-    EIGEN_DEBUG_VAR(MaySliceVectorize)
-    EIGEN_DEBUG_VAR(Traversal)
-    EIGEN_DEBUG_VAR(UnrollingLimit)
-    EIGEN_DEBUG_VAR(MayUnrollCompletely)
-    EIGEN_DEBUG_VAR(MayUnrollInner)
-    EIGEN_DEBUG_VAR(Unrolling)
-  }
-#endif
-};
-
-/***************************************************************************
-* Part 2 : meta-unrollers
-***************************************************************************/
-
-/************************
-*** Default traversal ***
-************************/
-
-template<typename Derived1, typename Derived2, int Index, int Stop>
-struct assign_DefaultTraversal_CompleteUnrolling
-{
-  enum {
-    outer = Index / Derived1::InnerSizeAtCompileTime,
-    inner = Index % Derived1::InnerSizeAtCompileTime
-  };
-
-  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
-  {
-    dst.copyCoeffByOuterInner(outer, inner, src);
-    assign_DefaultTraversal_CompleteUnrolling<Derived1, Derived2, Index+1, Stop>::run(dst, src);
-  }
-};
-
-template<typename Derived1, typename Derived2, int Stop>
-struct assign_DefaultTraversal_CompleteUnrolling<Derived1, Derived2, Stop, Stop>
-{
-  static EIGEN_STRONG_INLINE void run(Derived1 &, const Derived2 &) {}
-};
-
-template<typename Derived1, typename Derived2, int Index, int Stop>
-struct assign_DefaultTraversal_InnerUnrolling
-{
-  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src, typename Derived1::Index outer)
-  {
-    dst.copyCoeffByOuterInner(outer, Index, src);
-    assign_DefaultTraversal_InnerUnrolling<Derived1, Derived2, Index+1, Stop>::run(dst, src, outer);
-  }
-};
-
-template<typename Derived1, typename Derived2, int Stop>
-struct assign_DefaultTraversal_InnerUnrolling<Derived1, Derived2, Stop, Stop>
-{
-  static EIGEN_STRONG_INLINE void run(Derived1 &, const Derived2 &, typename Derived1::Index) {}
-};
-
-/***********************
-*** Linear traversal ***
-***********************/
-
-template<typename Derived1, typename Derived2, int Index, int Stop>
-struct assign_LinearTraversal_CompleteUnrolling
-{
-  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
-  {
-    dst.copyCoeff(Index, src);
-    assign_LinearTraversal_CompleteUnrolling<Derived1, Derived2, Index+1, Stop>::run(dst, src);
-  }
-};
-
-template<typename Derived1, typename Derived2, int Stop>
-struct assign_LinearTraversal_CompleteUnrolling<Derived1, Derived2, Stop, Stop>
-{
-  static EIGEN_STRONG_INLINE void run(Derived1 &, const Derived2 &) {}
-};
-
-/**************************
-*** Inner vectorization ***
-**************************/
-
-template<typename Derived1, typename Derived2, int Index, int Stop>
-struct assign_innervec_CompleteUnrolling
-{
-  enum {
-    outer = Index / Derived1::InnerSizeAtCompileTime,
-    inner = Index % Derived1::InnerSizeAtCompileTime,
-    JointAlignment = assign_traits<Derived1,Derived2>::JointAlignment
-  };
-
-  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
-  {
-    dst.template copyPacketByOuterInner<Derived2, Aligned, JointAlignment>(outer, inner, src);
-    assign_innervec_CompleteUnrolling<Derived1, Derived2,
-      Index+packet_traits<typename Derived1::Scalar>::size, Stop>::run(dst, src);
-  }
-};
-
-template<typename Derived1, typename Derived2, int Stop>
-struct assign_innervec_CompleteUnrolling<Derived1, Derived2, Stop, Stop>
-{
-  static EIGEN_STRONG_INLINE void run(Derived1 &, const Derived2 &) {}
-};
-
-template<typename Derived1, typename Derived2, int Index, int Stop>
-struct assign_innervec_InnerUnrolling
-{
-  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src, typename Derived1::Index outer)
-  {
-    dst.template copyPacketByOuterInner<Derived2, Aligned, Aligned>(outer, Index, src);
-    assign_innervec_InnerUnrolling<Derived1, Derived2,
-      Index+packet_traits<typename Derived1::Scalar>::size, Stop>::run(dst, src, outer);
-  }
-};
-
-template<typename Derived1, typename Derived2, int Stop>
-struct assign_innervec_InnerUnrolling<Derived1, Derived2, Stop, Stop>
-{
-  static EIGEN_STRONG_INLINE void run(Derived1 &, const Derived2 &, typename Derived1::Index) {}
-};
-
-/***************************************************************************
-* Part 3 : implementation of all cases
-***************************************************************************/
-
-template<typename Derived1, typename Derived2,
-         int Traversal = assign_traits<Derived1, Derived2>::Traversal,
-         int Unrolling = assign_traits<Derived1, Derived2>::Unrolling,
-         int Version = Specialized>
-struct assign_impl;
-
-/************************
-*** Default traversal ***
-************************/
-
-template<typename Derived1, typename Derived2, int Unrolling, int Version>
-struct assign_impl<Derived1, Derived2, InvalidTraversal, Unrolling, Version>
-{
-  static inline void run(Derived1 &, const Derived2 &) { }
-};
-
-template<typename Derived1, typename Derived2, int Version>
-struct assign_impl<Derived1, Derived2, DefaultTraversal, NoUnrolling, Version>
-{
-  typedef typename Derived1::Index Index;
-  static inline void run(Derived1 &dst, const Derived2 &src)
-  {
-    const Index innerSize = dst.innerSize();
-    const Index outerSize = dst.outerSize();
-    for(Index outer = 0; outer < outerSize; ++outer)
-      for(Index inner = 0; inner < innerSize; ++inner)
-        dst.copyCoeffByOuterInner(outer, inner, src);
-  }
-};
-
-template<typename Derived1, typename Derived2, int Version>
-struct assign_impl<Derived1, Derived2, DefaultTraversal, CompleteUnrolling, Version>
-{
-  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
-  {
-    assign_DefaultTraversal_CompleteUnrolling<Derived1, Derived2, 0, Derived1::SizeAtCompileTime>
-      ::run(dst, src);
-  }
-};
-
-template<typename Derived1, typename Derived2, int Version>
-struct assign_impl<Derived1, Derived2, DefaultTraversal, InnerUnrolling, Version>
-{
-  typedef typename Derived1::Index Index;
-  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
-  {
-    const Index outerSize = dst.outerSize();
-    for(Index outer = 0; outer < outerSize; ++outer)
-      assign_DefaultTraversal_InnerUnrolling<Derived1, Derived2, 0, Derived1::InnerSizeAtCompileTime>
-        ::run(dst, src, outer);
-  }
-};
-
-/***********************
-*** Linear traversal ***
-***********************/
-
-template<typename Derived1, typename Derived2, int Version>
-struct assign_impl<Derived1, Derived2, LinearTraversal, NoUnrolling, Version>
-{
-  typedef typename Derived1::Index Index;
-  static inline void run(Derived1 &dst, const Derived2 &src)
-  {
-    const Index size = dst.size();
-    for(Index i = 0; i < size; ++i)
-      dst.copyCoeff(i, src);
-  }
-};
-
-template<typename Derived1, typename Derived2, int Version>
-struct assign_impl<Derived1, Derived2, LinearTraversal, CompleteUnrolling, Version>
-{
-  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
-  {
-    assign_LinearTraversal_CompleteUnrolling<Derived1, Derived2, 0, Derived1::SizeAtCompileTime>
-      ::run(dst, src);
-  }
-};
-
-/**************************
-*** Inner vectorization ***
-**************************/
-
-template<typename Derived1, typename Derived2, int Version>
-struct assign_impl<Derived1, Derived2, InnerVectorizedTraversal, NoUnrolling, Version>
-{
-  typedef typename Derived1::Index Index;
-  static inline void run(Derived1 &dst, const Derived2 &src)
-  {
-    const Index innerSize = dst.innerSize();
-    const Index outerSize = dst.outerSize();
-    const Index packetSize = packet_traits<typename Derived1::Scalar>::size;
-    for(Index outer = 0; outer < outerSize; ++outer)
-      for(Index inner = 0; inner < innerSize; inner+=packetSize)
-        dst.template copyPacketByOuterInner<Derived2, Aligned, Aligned>(outer, inner, src);
-  }
-};
-
-template<typename Derived1, typename Derived2, int Version>
-struct assign_impl<Derived1, Derived2, InnerVectorizedTraversal, CompleteUnrolling, Version>
-{
-  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
-  {
-    assign_innervec_CompleteUnrolling<Derived1, Derived2, 0, Derived1::SizeAtCompileTime>
-      ::run(dst, src);
-  }
-};
-
-template<typename Derived1, typename Derived2, int Version>
-struct assign_impl<Derived1, Derived2, InnerVectorizedTraversal, InnerUnrolling, Version>
-{
-  typedef typename Derived1::Index Index;
-  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
-  {
-    const Index outerSize = dst.outerSize();
-    for(Index outer = 0; outer < outerSize; ++outer)
-      assign_innervec_InnerUnrolling<Derived1, Derived2, 0, Derived1::InnerSizeAtCompileTime>
-        ::run(dst, src, outer);
-  }
-};
-
-/***************************
-*** Linear vectorization ***
-***************************/
-
-template <bool IsAligned = false>
-struct unaligned_assign_impl
-{
-  template <typename Derived, typename OtherDerived>
-  static EIGEN_STRONG_INLINE void run(const Derived&, OtherDerived&, typename Derived::Index, typename Derived::Index) {}
-};
-
-template <>
-struct unaligned_assign_impl<false>
-{
-  // MSVC must not inline this functions. If it does, it fails to optimize the
-  // packet access path.
-#ifdef _MSC_VER
-  template <typename Derived, typename OtherDerived>
-  static EIGEN_DONT_INLINE void run(const Derived& src, OtherDerived& dst, typename Derived::Index start, typename Derived::Index end)
-#else
-  template <typename Derived, typename OtherDerived>
-  static EIGEN_STRONG_INLINE void run(const Derived& src, OtherDerived& dst, typename Derived::Index start, typename Derived::Index end)
-#endif
-  {
-    for (typename Derived::Index index = start; index < end; ++index)
-      dst.copyCoeff(index, src);
-  }
-};
-
-template<typename Derived1, typename Derived2, int Version>
-struct assign_impl<Derived1, Derived2, LinearVectorizedTraversal, NoUnrolling, Version>
-{
-  typedef typename Derived1::Index Index;
-  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
-  {
-    const Index size = dst.size();
-    typedef packet_traits<typename Derived1::Scalar> PacketTraits;
-    enum {
-      packetSize = PacketTraits::size,
-      dstAlignment = PacketTraits::AlignedOnScalar ? Aligned : int(assign_traits<Derived1,Derived2>::DstIsAligned) ,
-      srcAlignment = assign_traits<Derived1,Derived2>::JointAlignment
-    };
-    const Index alignedStart = assign_traits<Derived1,Derived2>::DstIsAligned ? 0
-                             : internal::first_aligned(&dst.coeffRef(0), size);
-    const Index alignedEnd = alignedStart + ((size-alignedStart)/packetSize)*packetSize;
-
-    unaligned_assign_impl<assign_traits<Derived1,Derived2>::DstIsAligned!=0>::run(src,dst,0,alignedStart);
-
-    for(Index index = alignedStart; index < alignedEnd; index += packetSize)
-    {
-      dst.template copyPacket<Derived2, dstAlignment, srcAlignment>(index, src);
-    }
-
-    unaligned_assign_impl<>::run(src,dst,alignedEnd,size);
-  }
-};
-
-template<typename Derived1, typename Derived2, int Version>
-struct assign_impl<Derived1, Derived2, LinearVectorizedTraversal, CompleteUnrolling, Version>
-{
-  typedef typename Derived1::Index Index;
-  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
-  {
-    enum { size = Derived1::SizeAtCompileTime,
-           packetSize = packet_traits<typename Derived1::Scalar>::size,
-           alignedSize = (size/packetSize)*packetSize };
-
-    assign_innervec_CompleteUnrolling<Derived1, Derived2, 0, alignedSize>::run(dst, src);
-    assign_DefaultTraversal_CompleteUnrolling<Derived1, Derived2, alignedSize, size>::run(dst, src);
-  }
-};
-
-/**************************
-*** Slice vectorization ***
-***************************/
-
-template<typename Derived1, typename Derived2, int Version>
-struct assign_impl<Derived1, Derived2, SliceVectorizedTraversal, NoUnrolling, Version>
-{
-  typedef typename Derived1::Index Index;
-  static inline void run(Derived1 &dst, const Derived2 &src)
-  {
-    typedef packet_traits<typename Derived1::Scalar> PacketTraits;
-    enum {
-      packetSize = PacketTraits::size,
-      alignable = PacketTraits::AlignedOnScalar,
-      dstAlignment = alignable ? Aligned : int(assign_traits<Derived1,Derived2>::DstIsAligned) ,
-      srcAlignment = assign_traits<Derived1,Derived2>::JointAlignment
-    };
-    const Index packetAlignedMask = packetSize - 1;
-    const Index innerSize = dst.innerSize();
-    const Index outerSize = dst.outerSize();
-    const Index alignedStep = alignable ? (packetSize - dst.outerStride() % packetSize) & packetAlignedMask : 0;
-    Index alignedStart = ((!alignable) || assign_traits<Derived1,Derived2>::DstIsAligned) ? 0
-                       : internal::first_aligned(&dst.coeffRef(0,0), innerSize);
-
-    for(Index outer = 0; outer < outerSize; ++outer)
-    {
-      const Index alignedEnd = alignedStart + ((innerSize-alignedStart) & ~packetAlignedMask);
-      // do the non-vectorizable part of the assignment
-      for(Index inner = 0; inner<alignedStart ; ++inner)
-        dst.copyCoeffByOuterInner(outer, inner, src);
-
-      // do the vectorizable part of the assignment
-      for(Index inner = alignedStart; inner<alignedEnd; inner+=packetSize)
-        dst.template copyPacketByOuterInner<Derived2, dstAlignment, Unaligned>(outer, inner, src);
-
-      // do the non-vectorizable part of the assignment
-      for(Index inner = alignedEnd; inner<innerSize ; ++inner)
-        dst.copyCoeffByOuterInner(outer, inner, src);
-
-      alignedStart = std::min<Index>((alignedStart+alignedStep)%packetSize, innerSize);
-    }
-  }
-};
-
-} // end namespace internal
-
-/***************************************************************************
-* Part 4 : implementation of DenseBase methods
-***************************************************************************/
-
-template<typename Derived>
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE Derived& DenseBase<Derived>
-  ::lazyAssign(const DenseBase<OtherDerived>& other)
-{
-  enum{
-    SameType = internal::is_same<typename Derived::Scalar,typename OtherDerived::Scalar>::value
-  };
-
-  EIGEN_STATIC_ASSERT_LVALUE(Derived)
-  EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Derived,OtherDerived)
-  EIGEN_STATIC_ASSERT(SameType,YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
-
-#ifdef EIGEN_DEBUG_ASSIGN
-  internal::assign_traits<Derived, OtherDerived>::debug();
-#endif
-  eigen_assert(rows() == other.rows() && cols() == other.cols());
-  internal::assign_impl<Derived, OtherDerived, int(SameType) ? int(internal::assign_traits<Derived, OtherDerived>::Traversal)
-                                                       : int(InvalidTraversal)>::run(derived(),other.derived());
-#ifndef EIGEN_NO_DEBUG
-  checkTransposeAliasing(other.derived());
-#endif
-  return derived();
-}
-
-namespace internal {
-
-template<typename Derived, typename OtherDerived,
-         bool EvalBeforeAssigning = (int(OtherDerived::Flags) & EvalBeforeAssigningBit) != 0,
-         bool NeedToTranspose = Derived::IsVectorAtCompileTime
-                && OtherDerived::IsVectorAtCompileTime
-                && ((int(Derived::RowsAtCompileTime) == 1 && int(OtherDerived::ColsAtCompileTime) == 1)
-                      |  // FIXME | instead of || to please GCC 4.4.0 stupid warning "suggest parentheses around &&".
-                         // revert to || as soon as not needed anymore.
-                    (int(Derived::ColsAtCompileTime) == 1 && int(OtherDerived::RowsAtCompileTime) == 1))
-                && int(Derived::SizeAtCompileTime) != 1>
-struct assign_selector;
-
-template<typename Derived, typename OtherDerived>
-struct assign_selector<Derived,OtherDerived,false,false> {
-  static EIGEN_STRONG_INLINE Derived& run(Derived& dst, const OtherDerived& other) { return dst.lazyAssign(other.derived()); }
-};
-template<typename Derived, typename OtherDerived>
-struct assign_selector<Derived,OtherDerived,true,false> {
-  static EIGEN_STRONG_INLINE Derived& run(Derived& dst, const OtherDerived& other) { return dst.lazyAssign(other.eval()); }
-};
-template<typename Derived, typename OtherDerived>
-struct assign_selector<Derived,OtherDerived,false,true> {
-  static EIGEN_STRONG_INLINE Derived& run(Derived& dst, const OtherDerived& other) { return dst.lazyAssign(other.transpose()); }
-};
-template<typename Derived, typename OtherDerived>
-struct assign_selector<Derived,OtherDerived,true,true> {
-  static EIGEN_STRONG_INLINE Derived& run(Derived& dst, const OtherDerived& other) { return dst.lazyAssign(other.transpose().eval()); }
-};
-
-} // end namespace internal
-
-template<typename Derived>
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::operator=(const DenseBase<OtherDerived>& other)
-{
-  return internal::assign_selector<Derived,OtherDerived>::run(derived(), other.derived());
-}
-
-template<typename Derived>
-EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::operator=(const DenseBase& other)
-{
-  return internal::assign_selector<Derived,Derived>::run(derived(), other.derived());
-}
-
-template<typename Derived>
-EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const MatrixBase& other)
-{
-  return internal::assign_selector<Derived,Derived>::run(derived(), other.derived());
-}
-
-template<typename Derived>
-template <typename OtherDerived>
-EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const DenseBase<OtherDerived>& other)
-{
-  return internal::assign_selector<Derived,OtherDerived>::run(derived(), other.derived());
-}
-
-template<typename Derived>
-template <typename OtherDerived>
-EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const EigenBase<OtherDerived>& other)
-{
-  other.derived().evalTo(derived());
-  return derived();
-}
-
-template<typename Derived>
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const ReturnByValue<OtherDerived>& other)
-{
-  other.evalTo(derived());
-  return derived();
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_ASSIGN_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/AssignEvaluator.h b/vendor/eigen-3.1.91/Eigen/src/Core/AssignEvaluator.h
deleted file mode 100644
index 8d835b2..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/AssignEvaluator.h
+++ /dev/null
@@ -1,754 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2011 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2011-2012 Jitse Niesen <jitse at maths.leeds.ac.uk>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_ASSIGN_EVALUATOR_H
-#define EIGEN_ASSIGN_EVALUATOR_H
-
-namespace Eigen {
-
-// This implementation is based on Assign.h
-
-namespace internal {
-  
-/***************************************************************************
-* Part 1 : the logic deciding a strategy for traversal and unrolling       *
-***************************************************************************/
-
-// copy_using_evaluator_traits is based on assign_traits
-
-template <typename Derived, typename OtherDerived>
-struct copy_using_evaluator_traits
-{
-public:
-  enum {
-    DstIsAligned = Derived::Flags & AlignedBit,
-    DstHasDirectAccess = Derived::Flags & DirectAccessBit,
-    SrcIsAligned = OtherDerived::Flags & AlignedBit,
-    JointAlignment = bool(DstIsAligned) && bool(SrcIsAligned) ? Aligned : Unaligned,
-    SrcEvalBeforeAssign = (evaluator_traits<OtherDerived>::HasEvalTo == 1)
-  };
-
-private:
-  enum {
-    InnerSize = int(Derived::IsVectorAtCompileTime) ? int(Derived::SizeAtCompileTime)
-              : int(Derived::Flags)&RowMajorBit ? int(Derived::ColsAtCompileTime)
-              : int(Derived::RowsAtCompileTime),
-    InnerMaxSize = int(Derived::IsVectorAtCompileTime) ? int(Derived::MaxSizeAtCompileTime)
-              : int(Derived::Flags)&RowMajorBit ? int(Derived::MaxColsAtCompileTime)
-              : int(Derived::MaxRowsAtCompileTime),
-    MaxSizeAtCompileTime = Derived::SizeAtCompileTime,
-    PacketSize = packet_traits<typename Derived::Scalar>::size
-  };
-
-  enum {
-    StorageOrdersAgree = (int(Derived::IsRowMajor) == int(OtherDerived::IsRowMajor)),
-    MightVectorize = StorageOrdersAgree
-                  && (int(Derived::Flags) & int(OtherDerived::Flags) & ActualPacketAccessBit),
-    MayInnerVectorize  = MightVectorize && int(InnerSize)!=Dynamic && int(InnerSize)%int(PacketSize)==0
-                       && int(DstIsAligned) && int(SrcIsAligned),
-    MayLinearize = StorageOrdersAgree && (int(Derived::Flags) & int(OtherDerived::Flags) & LinearAccessBit),
-    MayLinearVectorize = MightVectorize && MayLinearize && DstHasDirectAccess
-                       && (DstIsAligned || MaxSizeAtCompileTime == Dynamic),
-      /* If the destination isn't aligned, we have to do runtime checks and we don't unroll,
-         so it's only good for large enough sizes. */
-    MaySliceVectorize  = MightVectorize && DstHasDirectAccess
-                       && (int(InnerMaxSize)==Dynamic || int(InnerMaxSize)>=3*PacketSize)
-      /* slice vectorization can be slow, so we only want it if the slices are big, which is
-         indicated by InnerMaxSize rather than InnerSize, think of the case of a dynamic block
-         in a fixed-size matrix */
-  };
-
-public:
-  enum {
-    Traversal = int(SrcEvalBeforeAssign) ? int(AllAtOnceTraversal) 
-              : int(MayInnerVectorize)   ? int(InnerVectorizedTraversal)
-              : int(MayLinearVectorize)  ? int(LinearVectorizedTraversal)
-              : int(MaySliceVectorize)   ? int(SliceVectorizedTraversal)
-              : int(MayLinearize)        ? int(LinearTraversal)
-                                         : int(DefaultTraversal),
-    Vectorized = int(Traversal) == InnerVectorizedTraversal
-              || int(Traversal) == LinearVectorizedTraversal
-              || int(Traversal) == SliceVectorizedTraversal
-  };
-
-private:
-  enum {
-    UnrollingLimit      = EIGEN_UNROLLING_LIMIT * (Vectorized ? int(PacketSize) : 1),
-    MayUnrollCompletely = int(Derived::SizeAtCompileTime) != Dynamic
-                       && int(OtherDerived::CoeffReadCost) != Dynamic
-                       && int(Derived::SizeAtCompileTime) * int(OtherDerived::CoeffReadCost) <= int(UnrollingLimit),
-    MayUnrollInner      = int(InnerSize) != Dynamic
-                       && int(OtherDerived::CoeffReadCost) != Dynamic
-                       && int(InnerSize) * int(OtherDerived::CoeffReadCost) <= int(UnrollingLimit)
-  };
-
-public:
-  enum {
-    Unrolling = (int(Traversal) == int(InnerVectorizedTraversal) || int(Traversal) == int(DefaultTraversal))
-                ? (
- 		    int(MayUnrollCompletely) ? int(CompleteUnrolling)
-                  : int(MayUnrollInner)      ? int(InnerUnrolling)
-                                             : int(NoUnrolling)
-                  )
-              : int(Traversal) == int(LinearVectorizedTraversal)
-                ? ( bool(MayUnrollCompletely) && bool(DstIsAligned) ? int(CompleteUnrolling) 
-                                                                    : int(NoUnrolling) )
-              : int(Traversal) == int(LinearTraversal)
-                ? ( bool(MayUnrollCompletely) ? int(CompleteUnrolling) 
-                                              : int(NoUnrolling) )
-              : int(NoUnrolling)
-  };
-
-#ifdef EIGEN_DEBUG_ASSIGN
-  static void debug()
-  {
-    EIGEN_DEBUG_VAR(DstIsAligned)
-    EIGEN_DEBUG_VAR(SrcIsAligned)
-    EIGEN_DEBUG_VAR(JointAlignment)
-    EIGEN_DEBUG_VAR(InnerSize)
-    EIGEN_DEBUG_VAR(InnerMaxSize)
-    EIGEN_DEBUG_VAR(PacketSize)
-    EIGEN_DEBUG_VAR(StorageOrdersAgree)
-    EIGEN_DEBUG_VAR(MightVectorize)
-    EIGEN_DEBUG_VAR(MayLinearize)
-    EIGEN_DEBUG_VAR(MayInnerVectorize)
-    EIGEN_DEBUG_VAR(MayLinearVectorize)
-    EIGEN_DEBUG_VAR(MaySliceVectorize)
-    EIGEN_DEBUG_VAR(Traversal)
-    EIGEN_DEBUG_VAR(UnrollingLimit)
-    EIGEN_DEBUG_VAR(MayUnrollCompletely)
-    EIGEN_DEBUG_VAR(MayUnrollInner)
-    EIGEN_DEBUG_VAR(Unrolling)
-  }
-#endif
-};
-
-/***************************************************************************
-* Part 2 : meta-unrollers
-***************************************************************************/
-
-/************************
-*** Default traversal ***
-************************/
-
-template<typename DstEvaluatorType, typename SrcEvaluatorType, int Index, int Stop>
-struct copy_using_evaluator_DefaultTraversal_CompleteUnrolling
-{
-  typedef typename DstEvaluatorType::XprType DstXprType;
-  
-  enum {
-    outer = Index / DstXprType::InnerSizeAtCompileTime,
-    inner = Index % DstXprType::InnerSizeAtCompileTime
-  };
-
-  static EIGEN_STRONG_INLINE void run(DstEvaluatorType &dstEvaluator,
-                                      SrcEvaluatorType &srcEvaluator)
-  {
-    dstEvaluator.copyCoeffByOuterInner(outer, inner, srcEvaluator);
-    copy_using_evaluator_DefaultTraversal_CompleteUnrolling
-      <DstEvaluatorType, SrcEvaluatorType, Index+1, Stop>
-      ::run(dstEvaluator, srcEvaluator);
-  }
-};
-
-template<typename DstEvaluatorType, typename SrcEvaluatorType, int Stop>
-struct copy_using_evaluator_DefaultTraversal_CompleteUnrolling<DstEvaluatorType, SrcEvaluatorType, Stop, Stop>
-{
-  static EIGEN_STRONG_INLINE void run(DstEvaluatorType&, SrcEvaluatorType&) { }
-};
-
-template<typename DstEvaluatorType, typename SrcEvaluatorType, int Index, int Stop>
-struct copy_using_evaluator_DefaultTraversal_InnerUnrolling
-{
-  static EIGEN_STRONG_INLINE void run(DstEvaluatorType &dstEvaluator,
-                                      SrcEvaluatorType &srcEvaluator, 
-                                      int outer)
-  {
-    dstEvaluator.copyCoeffByOuterInner(outer, Index, srcEvaluator);
-    copy_using_evaluator_DefaultTraversal_InnerUnrolling
-      <DstEvaluatorType, SrcEvaluatorType, Index+1, Stop>
-      ::run(dstEvaluator, srcEvaluator, outer);
-  }
-};
-
-template<typename DstEvaluatorType, typename SrcEvaluatorType, int Stop>
-struct copy_using_evaluator_DefaultTraversal_InnerUnrolling<DstEvaluatorType, SrcEvaluatorType, Stop, Stop>
-{
-  static EIGEN_STRONG_INLINE void run(DstEvaluatorType&, SrcEvaluatorType&, int) { }
-};
-
-/***********************
-*** Linear traversal ***
-***********************/
-
-template<typename DstEvaluatorType, typename SrcEvaluatorType, int Index, int Stop>
-struct copy_using_evaluator_LinearTraversal_CompleteUnrolling
-{
-  static EIGEN_STRONG_INLINE void run(DstEvaluatorType &dstEvaluator,
-                                      SrcEvaluatorType &srcEvaluator)
-  {
-    dstEvaluator.copyCoeff(Index, srcEvaluator);
-    copy_using_evaluator_LinearTraversal_CompleteUnrolling
-      <DstEvaluatorType, SrcEvaluatorType, Index+1, Stop>
-      ::run(dstEvaluator, srcEvaluator);
-  }
-};
-
-template<typename DstEvaluatorType, typename SrcEvaluatorType, int Stop>
-struct copy_using_evaluator_LinearTraversal_CompleteUnrolling<DstEvaluatorType, SrcEvaluatorType, Stop, Stop>
-{
-  static EIGEN_STRONG_INLINE void run(DstEvaluatorType&, SrcEvaluatorType&) { }
-};
-
-/**************************
-*** Inner vectorization ***
-**************************/
-
-template<typename DstEvaluatorType, typename SrcEvaluatorType, int Index, int Stop>
-struct copy_using_evaluator_innervec_CompleteUnrolling
-{
-  typedef typename DstEvaluatorType::XprType DstXprType;
-  typedef typename SrcEvaluatorType::XprType SrcXprType;
-
-  enum {
-    outer = Index / DstXprType::InnerSizeAtCompileTime,
-    inner = Index % DstXprType::InnerSizeAtCompileTime,
-    JointAlignment = copy_using_evaluator_traits<DstXprType,SrcXprType>::JointAlignment
-  };
-
-  static EIGEN_STRONG_INLINE void run(DstEvaluatorType &dstEvaluator,
-                                      SrcEvaluatorType &srcEvaluator)
-  {
-    dstEvaluator.template copyPacketByOuterInner<Aligned, JointAlignment>(outer, inner, srcEvaluator);
-    enum { NextIndex = Index + packet_traits<typename DstXprType::Scalar>::size };
-    copy_using_evaluator_innervec_CompleteUnrolling
-      <DstEvaluatorType, SrcEvaluatorType, NextIndex, Stop>
-      ::run(dstEvaluator, srcEvaluator);
-  }
-};
-
-template<typename DstEvaluatorType, typename SrcEvaluatorType, int Stop>
-struct copy_using_evaluator_innervec_CompleteUnrolling<DstEvaluatorType, SrcEvaluatorType, Stop, Stop>
-{
-  static EIGEN_STRONG_INLINE void run(DstEvaluatorType&, SrcEvaluatorType&) { }
-};
-
-template<typename DstEvaluatorType, typename SrcEvaluatorType, int Index, int Stop>
-struct copy_using_evaluator_innervec_InnerUnrolling
-{
-  static EIGEN_STRONG_INLINE void run(DstEvaluatorType &dstEvaluator,
-                                      SrcEvaluatorType &srcEvaluator, 
-                                      int outer)
-  {
-    dstEvaluator.template copyPacketByOuterInner<Aligned, Aligned>(outer, Index, srcEvaluator);
-    typedef typename DstEvaluatorType::XprType DstXprType;
-    enum { NextIndex = Index + packet_traits<typename DstXprType::Scalar>::size };
-    copy_using_evaluator_innervec_InnerUnrolling
-      <DstEvaluatorType, SrcEvaluatorType, NextIndex, Stop>
-      ::run(dstEvaluator, srcEvaluator, outer);
-  }
-};
-
-template<typename DstEvaluatorType, typename SrcEvaluatorType, int Stop>
-struct copy_using_evaluator_innervec_InnerUnrolling<DstEvaluatorType, SrcEvaluatorType, Stop, Stop>
-{
-  static EIGEN_STRONG_INLINE void run(DstEvaluatorType&, SrcEvaluatorType&, int) { }
-};
-
-/***************************************************************************
-* Part 3 : implementation of all cases
-***************************************************************************/
-
-// copy_using_evaluator_impl is based on assign_impl
-
-template<typename DstXprType, typename SrcXprType,
-         int Traversal = copy_using_evaluator_traits<DstXprType, SrcXprType>::Traversal,
-         int Unrolling = copy_using_evaluator_traits<DstXprType, SrcXprType>::Unrolling>
-struct copy_using_evaluator_impl;
-
-/************************
-*** Default traversal ***
-************************/
-
-template<typename DstXprType, typename SrcXprType>
-struct copy_using_evaluator_impl<DstXprType, SrcXprType, DefaultTraversal, NoUnrolling>
-{
-  static void run(DstXprType& dst, const SrcXprType& src)
-  {
-    typedef typename evaluator<DstXprType>::type DstEvaluatorType;
-    typedef typename evaluator<SrcXprType>::type SrcEvaluatorType;
-    typedef typename DstXprType::Index Index;
-
-    DstEvaluatorType dstEvaluator(dst);
-    SrcEvaluatorType srcEvaluator(src);
-
-    for(Index outer = 0; outer < dst.outerSize(); ++outer) {
-      for(Index inner = 0; inner < dst.innerSize(); ++inner) {
-	dstEvaluator.copyCoeffByOuterInner(outer, inner, srcEvaluator);
-      }
-    }
-  }
-};
-
-template<typename DstXprType, typename SrcXprType>
-struct copy_using_evaluator_impl<DstXprType, SrcXprType, DefaultTraversal, CompleteUnrolling>
-{
-  static EIGEN_STRONG_INLINE void run(DstXprType &dst, const SrcXprType &src)
-  {
-    typedef typename evaluator<DstXprType>::type DstEvaluatorType;
-    typedef typename evaluator<SrcXprType>::type SrcEvaluatorType;
-
-    DstEvaluatorType dstEvaluator(dst);
-    SrcEvaluatorType srcEvaluator(src);
-
-    copy_using_evaluator_DefaultTraversal_CompleteUnrolling
-      <DstEvaluatorType, SrcEvaluatorType, 0, DstXprType::SizeAtCompileTime>
-      ::run(dstEvaluator, srcEvaluator);
-  }
-};
-
-template<typename DstXprType, typename SrcXprType>
-struct copy_using_evaluator_impl<DstXprType, SrcXprType, DefaultTraversal, InnerUnrolling>
-{
-  typedef typename DstXprType::Index Index;
-  static EIGEN_STRONG_INLINE void run(DstXprType &dst, const SrcXprType &src)
-  {
-    typedef typename evaluator<DstXprType>::type DstEvaluatorType;
-    typedef typename evaluator<SrcXprType>::type SrcEvaluatorType;
-
-    DstEvaluatorType dstEvaluator(dst);
-    SrcEvaluatorType srcEvaluator(src);
-
-    const Index outerSize = dst.outerSize();
-    for(Index outer = 0; outer < outerSize; ++outer)
-      copy_using_evaluator_DefaultTraversal_InnerUnrolling
-        <DstEvaluatorType, SrcEvaluatorType, 0, DstXprType::InnerSizeAtCompileTime>
-        ::run(dstEvaluator, srcEvaluator, outer);
-  }
-};
-
-/***************************
-*** Linear vectorization ***
-***************************/
-
-template <bool IsAligned = false>
-struct unaligned_copy_using_evaluator_impl
-{
-  // if IsAligned = true, then do nothing
-  template <typename SrcEvaluatorType, typename DstEvaluatorType>
-  static EIGEN_STRONG_INLINE void run(const SrcEvaluatorType&, DstEvaluatorType&, 
-                                      typename SrcEvaluatorType::Index, typename SrcEvaluatorType::Index) {}
-};
-
-template <>
-struct unaligned_copy_using_evaluator_impl<false>
-{
-  // MSVC must not inline this functions. If it does, it fails to optimize the
-  // packet access path.
-#ifdef _MSC_VER
-  template <typename DstEvaluatorType, typename SrcEvaluatorType>
-  static EIGEN_DONT_INLINE void run(DstEvaluatorType &dstEvaluator, 
-                                    const SrcEvaluatorType &srcEvaluator,
-                                    typename DstEvaluatorType::Index start,
-                                    typename DstEvaluatorType::Index end)
-#else
-  template <typename DstEvaluatorType, typename SrcEvaluatorType>
-  static EIGEN_STRONG_INLINE void run(DstEvaluatorType &dstEvaluator, 
-                                      const SrcEvaluatorType &srcEvaluator,
-                                      typename DstEvaluatorType::Index start,
-                                      typename DstEvaluatorType::Index end)
-#endif
-  {
-    for (typename DstEvaluatorType::Index index = start; index < end; ++index)
-      dstEvaluator.copyCoeff(index, srcEvaluator);
-  }
-};
-
-template<typename DstXprType, typename SrcXprType>
-struct copy_using_evaluator_impl<DstXprType, SrcXprType, LinearVectorizedTraversal, NoUnrolling>
-{
-  static EIGEN_STRONG_INLINE void run(DstXprType &dst, const SrcXprType &src)
-  {
-    typedef typename evaluator<DstXprType>::type DstEvaluatorType;
-    typedef typename evaluator<SrcXprType>::type SrcEvaluatorType;
-    typedef typename DstXprType::Index Index;
-
-    DstEvaluatorType dstEvaluator(dst);
-    SrcEvaluatorType srcEvaluator(src);
-
-    const Index size = dst.size();
-    typedef packet_traits<typename DstXprType::Scalar> PacketTraits;
-    enum {
-      packetSize = PacketTraits::size,
-      dstIsAligned = int(copy_using_evaluator_traits<DstXprType,SrcXprType>::DstIsAligned),
-      dstAlignment = PacketTraits::AlignedOnScalar ? Aligned : dstIsAligned,
-      srcAlignment = copy_using_evaluator_traits<DstXprType,SrcXprType>::JointAlignment
-    };
-    const Index alignedStart = dstIsAligned ? 0 : internal::first_aligned(&dstEvaluator.coeffRef(0), size);
-    const Index alignedEnd = alignedStart + ((size-alignedStart)/packetSize)*packetSize;
-
-    unaligned_copy_using_evaluator_impl<dstIsAligned!=0>::run(dstEvaluator, srcEvaluator, 0, alignedStart);
-
-    for(Index index = alignedStart; index < alignedEnd; index += packetSize)
-    {
-      dstEvaluator.template copyPacket<dstAlignment, srcAlignment>(index, srcEvaluator);
-    }
-
-    unaligned_copy_using_evaluator_impl<>::run(dstEvaluator, srcEvaluator, alignedEnd, size);
-  }
-};
-
-template<typename DstXprType, typename SrcXprType>
-struct copy_using_evaluator_impl<DstXprType, SrcXprType, LinearVectorizedTraversal, CompleteUnrolling>
-{
-  typedef typename DstXprType::Index Index;
-  static EIGEN_STRONG_INLINE void run(DstXprType &dst, const SrcXprType &src)
-  {
-    typedef typename evaluator<DstXprType>::type DstEvaluatorType;
-    typedef typename evaluator<SrcXprType>::type SrcEvaluatorType;
-
-    DstEvaluatorType dstEvaluator(dst);
-    SrcEvaluatorType srcEvaluator(src);
-
-    enum { size = DstXprType::SizeAtCompileTime,
-           packetSize = packet_traits<typename DstXprType::Scalar>::size,
-           alignedSize = (size/packetSize)*packetSize };
-
-    copy_using_evaluator_innervec_CompleteUnrolling
-      <DstEvaluatorType, SrcEvaluatorType, 0, alignedSize>
-      ::run(dstEvaluator, srcEvaluator);
-    copy_using_evaluator_DefaultTraversal_CompleteUnrolling
-      <DstEvaluatorType, SrcEvaluatorType, alignedSize, size>
-      ::run(dstEvaluator, srcEvaluator);
-  }
-};
-
-/**************************
-*** Inner vectorization ***
-**************************/
-
-template<typename DstXprType, typename SrcXprType>
-struct copy_using_evaluator_impl<DstXprType, SrcXprType, InnerVectorizedTraversal, NoUnrolling>
-{
-  inline static void run(DstXprType &dst, const SrcXprType &src)
-  {
-    typedef typename evaluator<DstXprType>::type DstEvaluatorType;
-    typedef typename evaluator<SrcXprType>::type SrcEvaluatorType;
-    typedef typename DstXprType::Index Index;
-
-    DstEvaluatorType dstEvaluator(dst);
-    SrcEvaluatorType srcEvaluator(src);
-
-    const Index innerSize = dst.innerSize();
-    const Index outerSize = dst.outerSize();
-    const Index packetSize = packet_traits<typename DstXprType::Scalar>::size;
-    for(Index outer = 0; outer < outerSize; ++outer)
-      for(Index inner = 0; inner < innerSize; inner+=packetSize) {
-	dstEvaluator.template copyPacketByOuterInner<Aligned, Aligned>(outer, inner, srcEvaluator);
-      }
-  }
-};
-
-template<typename DstXprType, typename SrcXprType>
-struct copy_using_evaluator_impl<DstXprType, SrcXprType, InnerVectorizedTraversal, CompleteUnrolling>
-{
-  static EIGEN_STRONG_INLINE void run(DstXprType &dst, const SrcXprType &src)
-  {
-    typedef typename evaluator<DstXprType>::type DstEvaluatorType;
-    typedef typename evaluator<SrcXprType>::type SrcEvaluatorType;
-
-    DstEvaluatorType dstEvaluator(dst);
-    SrcEvaluatorType srcEvaluator(src);
-
-    copy_using_evaluator_innervec_CompleteUnrolling
-      <DstEvaluatorType, SrcEvaluatorType, 0, DstXprType::SizeAtCompileTime>
-      ::run(dstEvaluator, srcEvaluator);
-  }
-};
-
-template<typename DstXprType, typename SrcXprType>
-struct copy_using_evaluator_impl<DstXprType, SrcXprType, InnerVectorizedTraversal, InnerUnrolling>
-{
-  typedef typename DstXprType::Index Index;
-  static EIGEN_STRONG_INLINE void run(DstXprType &dst, const SrcXprType &src)
-  {
-    typedef typename evaluator<DstXprType>::type DstEvaluatorType;
-    typedef typename evaluator<SrcXprType>::type SrcEvaluatorType;
-
-    DstEvaluatorType dstEvaluator(dst);
-    SrcEvaluatorType srcEvaluator(src);
-
-    const Index outerSize = dst.outerSize();
-    for(Index outer = 0; outer < outerSize; ++outer)
-      copy_using_evaluator_innervec_InnerUnrolling
-        <DstEvaluatorType, SrcEvaluatorType, 0, DstXprType::InnerSizeAtCompileTime>
-        ::run(dstEvaluator, srcEvaluator, outer);
-  }
-};
-
-/***********************
-*** Linear traversal ***
-***********************/
-
-template<typename DstXprType, typename SrcXprType>
-struct copy_using_evaluator_impl<DstXprType, SrcXprType, LinearTraversal, NoUnrolling>
-{
-  inline static void run(DstXprType &dst, const SrcXprType &src)
-  {
-    typedef typename evaluator<DstXprType>::type DstEvaluatorType;
-    typedef typename evaluator<SrcXprType>::type SrcEvaluatorType;
-    typedef typename DstXprType::Index Index;
-
-    DstEvaluatorType dstEvaluator(dst);
-    SrcEvaluatorType srcEvaluator(src);
-
-    const Index size = dst.size();
-    for(Index i = 0; i < size; ++i)
-      dstEvaluator.copyCoeff(i, srcEvaluator);
-  }
-};
-
-template<typename DstXprType, typename SrcXprType>
-struct copy_using_evaluator_impl<DstXprType, SrcXprType, LinearTraversal, CompleteUnrolling>
-{
-  static EIGEN_STRONG_INLINE void run(DstXprType &dst, const SrcXprType &src)
-  {
-    typedef typename evaluator<DstXprType>::type DstEvaluatorType;
-    typedef typename evaluator<SrcXprType>::type SrcEvaluatorType;
-
-    DstEvaluatorType dstEvaluator(dst);
-    SrcEvaluatorType srcEvaluator(src);
-
-    copy_using_evaluator_LinearTraversal_CompleteUnrolling
-      <DstEvaluatorType, SrcEvaluatorType, 0, DstXprType::SizeAtCompileTime>
-      ::run(dstEvaluator, srcEvaluator);
-  }
-};
-
-/**************************
-*** Slice vectorization ***
-***************************/
-
-template<typename DstXprType, typename SrcXprType>
-struct copy_using_evaluator_impl<DstXprType, SrcXprType, SliceVectorizedTraversal, NoUnrolling>
-{
-  inline static void run(DstXprType &dst, const SrcXprType &src)
-  {
-    typedef typename evaluator<DstXprType>::type DstEvaluatorType;
-    typedef typename evaluator<SrcXprType>::type SrcEvaluatorType;
-    typedef typename DstXprType::Index Index;
-
-    DstEvaluatorType dstEvaluator(dst);
-    SrcEvaluatorType srcEvaluator(src);
-
-    typedef packet_traits<typename DstXprType::Scalar> PacketTraits;
-    enum {
-      packetSize = PacketTraits::size,
-      alignable = PacketTraits::AlignedOnScalar,
-      dstAlignment = alignable ? Aligned : int(copy_using_evaluator_traits<DstXprType,SrcXprType>::DstIsAligned)
-    };
-    const Index packetAlignedMask = packetSize - 1;
-    const Index innerSize = dst.innerSize();
-    const Index outerSize = dst.outerSize();
-    const Index alignedStep = alignable ? (packetSize - dst.outerStride() % packetSize) & packetAlignedMask : 0;
-    Index alignedStart = ((!alignable) || copy_using_evaluator_traits<DstXprType,SrcXprType>::DstIsAligned) ? 0
-                       : internal::first_aligned(&dstEvaluator.coeffRef(0,0), innerSize);
-
-    for(Index outer = 0; outer < outerSize; ++outer)
-    {
-      const Index alignedEnd = alignedStart + ((innerSize-alignedStart) & ~packetAlignedMask);
-      // do the non-vectorizable part of the assignment
-      for(Index inner = 0; inner<alignedStart ; ++inner) {
-        dstEvaluator.copyCoeffByOuterInner(outer, inner, srcEvaluator);
-      }
-
-      // do the vectorizable part of the assignment
-      for(Index inner = alignedStart; inner<alignedEnd; inner+=packetSize) {
-        dstEvaluator.template copyPacketByOuterInner<dstAlignment, Unaligned>(outer, inner, srcEvaluator);
-      }
-
-      // do the non-vectorizable part of the assignment
-      for(Index inner = alignedEnd; inner<innerSize ; ++inner) {
-        dstEvaluator.copyCoeffByOuterInner(outer, inner, srcEvaluator);
-      }
-
-      alignedStart = std::min<Index>((alignedStart+alignedStep)%packetSize, innerSize);
-    }
-  }
-};
-
-/****************************
-*** All-at-once traversal ***
-****************************/
-
-template<typename DstXprType, typename SrcXprType>
-struct copy_using_evaluator_impl<DstXprType, SrcXprType, AllAtOnceTraversal, NoUnrolling>
-{
-  inline static void run(DstXprType &dst, const SrcXprType &src)
-  {
-    typedef typename evaluator<DstXprType>::type DstEvaluatorType;
-    typedef typename evaluator<SrcXprType>::type SrcEvaluatorType;
-
-    DstEvaluatorType dstEvaluator(dst);
-    SrcEvaluatorType srcEvaluator(src);
-
-    // Evaluate rhs in temporary to prevent aliasing problems in a = a * a;
-    // TODO: Do not pass the xpr object to evalTo()
-    srcEvaluator.evalTo(dstEvaluator, dst);
-  }
-};
-
-/***************************************************************************
-* Part 4 : Entry points
-***************************************************************************/
-
-// Based on DenseBase::LazyAssign()
-
-template<typename DstXprType, template <typename> class StorageBase, typename SrcXprType>
-EIGEN_STRONG_INLINE
-const DstXprType& copy_using_evaluator(const NoAlias<DstXprType, StorageBase>& dst, 
-                                       const EigenBase<SrcXprType>& src)
-{
-  return noalias_copy_using_evaluator(dst.expression(), src.derived());
-}
-
-template<typename XprType, int AssumeAliasing = evaluator_traits<XprType>::AssumeAliasing>
-struct AddEvalIfAssumingAliasing;
-
-template<typename XprType>
-struct AddEvalIfAssumingAliasing<XprType, 0>
-{
-  static const XprType& run(const XprType& xpr) 
-  {
-    return xpr;
-  }
-};
-
-template<typename XprType>
-struct AddEvalIfAssumingAliasing<XprType, 1>
-{
-  static const EvalToTemp<XprType> run(const XprType& xpr)
-  {
-    return EvalToTemp<XprType>(xpr);
-  }
-};
-
-template<typename DstXprType, typename SrcXprType>
-EIGEN_STRONG_INLINE
-const DstXprType& copy_using_evaluator(const EigenBase<DstXprType>& dst, const EigenBase<SrcXprType>& src)
-{
-  return noalias_copy_using_evaluator(dst.const_cast_derived(), 
-				      AddEvalIfAssumingAliasing<SrcXprType>::run(src.derived()));
-}
-
-template<typename DstXprType, typename SrcXprType>
-EIGEN_STRONG_INLINE
-const DstXprType& noalias_copy_using_evaluator(const PlainObjectBase<DstXprType>& dst, const EigenBase<SrcXprType>& src)
-{
-#ifdef EIGEN_DEBUG_ASSIGN
-  internal::copy_using_evaluator_traits<DstXprType, SrcXprType>::debug();
-#endif
-#ifdef EIGEN_NO_AUTOMATIC_RESIZING
-  eigen_assert((dst.size()==0 || (IsVectorAtCompileTime ? (dst.size() == src.size())
-				  : (dst.rows() == src.rows() && dst.cols() == src.cols())))
-	       && "Size mismatch. Automatic resizing is disabled because EIGEN_NO_AUTOMATIC_RESIZING is defined");
-#else
-  dst.const_cast_derived().resizeLike(src.derived());
-#endif
-  return copy_using_evaluator_without_resizing(dst.const_cast_derived(), src.derived());
-}
-
-template<typename DstXprType, typename SrcXprType>
-EIGEN_STRONG_INLINE
-const DstXprType& noalias_copy_using_evaluator(const EigenBase<DstXprType>& dst, const EigenBase<SrcXprType>& src)
-{
-  return copy_using_evaluator_without_resizing(dst.const_cast_derived(), src.derived());
-}
-
-template<typename DstXprType, typename SrcXprType>
-const DstXprType& copy_using_evaluator_without_resizing(const DstXprType& dst, const SrcXprType& src)
-{
-#ifdef EIGEN_DEBUG_ASSIGN
-  internal::copy_using_evaluator_traits<DstXprType, SrcXprType>::debug();
-#endif
-  eigen_assert(dst.rows() == src.rows() && dst.cols() == src.cols());
-  copy_using_evaluator_impl<DstXprType, SrcXprType>::run(const_cast<DstXprType&>(dst), src);
-  return dst;
-}
-
-// Based on DenseBase::swap()
-// TODO: Chech whether we need to do something special for swapping two
-//       Arrays or Matrices.
-
-template<typename DstXprType, typename SrcXprType>
-void swap_using_evaluator(const DstXprType& dst, const SrcXprType& src)
-{
-  copy_using_evaluator(SwapWrapper<DstXprType>(const_cast<DstXprType&>(dst)), src);
-}
-
-// Based on MatrixBase::operator+= (in CwiseBinaryOp.h)
-template<typename DstXprType, typename SrcXprType>
-void add_assign_using_evaluator(const MatrixBase<DstXprType>& dst, const MatrixBase<SrcXprType>& src)
-{
-  typedef typename DstXprType::Scalar Scalar;
-  SelfCwiseBinaryOp<internal::scalar_sum_op<Scalar>, DstXprType, SrcXprType> tmp(dst.const_cast_derived());
-  copy_using_evaluator(tmp, src.derived());
-}
-
-// Based on ArrayBase::operator+=
-template<typename DstXprType, typename SrcXprType>
-void add_assign_using_evaluator(const ArrayBase<DstXprType>& dst, const ArrayBase<SrcXprType>& src)
-{
-  typedef typename DstXprType::Scalar Scalar;
-  SelfCwiseBinaryOp<internal::scalar_sum_op<Scalar>, DstXprType, SrcXprType> tmp(dst.const_cast_derived());
-  copy_using_evaluator(tmp, src.derived());
-}
-
-// TODO: Add add_assign_using_evaluator for EigenBase ?
-
-template<typename DstXprType, typename SrcXprType>
-void subtract_assign_using_evaluator(const MatrixBase<DstXprType>& dst, const MatrixBase<SrcXprType>& src)
-{
-  typedef typename DstXprType::Scalar Scalar;
-  SelfCwiseBinaryOp<internal::scalar_difference_op<Scalar>, DstXprType, SrcXprType> tmp(dst.const_cast_derived());
-  copy_using_evaluator(tmp, src.derived());
-}
-
-template<typename DstXprType, typename SrcXprType>
-void subtract_assign_using_evaluator(const ArrayBase<DstXprType>& dst, const ArrayBase<SrcXprType>& src)
-{
-  typedef typename DstXprType::Scalar Scalar;
-  SelfCwiseBinaryOp<internal::scalar_difference_op<Scalar>, DstXprType, SrcXprType> tmp(dst.const_cast_derived());
-  copy_using_evaluator(tmp, src.derived());
-}
-
-template<typename DstXprType, typename SrcXprType>
-void multiply_assign_using_evaluator(const ArrayBase<DstXprType>& dst, const ArrayBase<SrcXprType>& src)
-{
-  typedef typename DstXprType::Scalar Scalar;
-  SelfCwiseBinaryOp<internal::scalar_product_op<Scalar>, DstXprType, SrcXprType> tmp(dst.const_cast_derived());
-  copy_using_evaluator(tmp, src.derived());
-}
-
-template<typename DstXprType, typename SrcXprType>
-void divide_assign_using_evaluator(const ArrayBase<DstXprType>& dst, const ArrayBase<SrcXprType>& src)
-{
-  typedef typename DstXprType::Scalar Scalar;
-  SelfCwiseBinaryOp<internal::scalar_quotient_op<Scalar>, DstXprType, SrcXprType> tmp(dst.const_cast_derived());
-  copy_using_evaluator(tmp, src.derived());
-}
-
-
-} // namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_ASSIGN_EVALUATOR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Block.h b/vendor/eigen-3.1.91/Eigen/src/Core/Block.h
deleted file mode 100644
index 358b318..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/Block.h
+++ /dev/null
@@ -1,405 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_BLOCK_H
-#define EIGEN_BLOCK_H
-
-namespace Eigen { 
-
-/** \class Block
-  * \ingroup Core_Module
-  *
-  * \brief Expression of a fixed-size or dynamic-size block
-  *
-  * \param XprType the type of the expression in which we are taking a block
-  * \param BlockRows the number of rows of the block we are taking at compile time (optional)
-  * \param BlockCols the number of columns of the block we are taking at compile time (optional)
-  *
-  * This class represents an expression of either a fixed-size or dynamic-size block. It is the return
-  * type of DenseBase::block(Index,Index,Index,Index) and DenseBase::block<int,int>(Index,Index) and
-  * most of the time this is the only way it is used.
-  *
-  * However, if you want to directly maniputate block expressions,
-  * for instance if you want to write a function returning such an expression, you
-  * will need to use this class.
-  *
-  * Here is an example illustrating the dynamic case:
-  * \include class_Block.cpp
-  * Output: \verbinclude class_Block.out
-  *
-  * \note Even though this expression has dynamic size, in the case where \a XprType
-  * has fixed size, this expression inherits a fixed maximal size which means that evaluating
-  * it does not cause a dynamic memory allocation.
-  *
-  * Here is an example illustrating the fixed-size case:
-  * \include class_FixedBlock.cpp
-  * Output: \verbinclude class_FixedBlock.out
-  *
-  * \sa DenseBase::block(Index,Index,Index,Index), DenseBase::block(Index,Index), class VectorBlock
-  */
-
-namespace internal {
-template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
-struct traits<Block<XprType, BlockRows, BlockCols, InnerPanel> > : traits<XprType>
-{
-  typedef typename traits<XprType>::Scalar Scalar;
-  typedef typename traits<XprType>::StorageKind StorageKind;
-  typedef typename traits<XprType>::XprKind XprKind;
-  typedef typename nested<XprType>::type XprTypeNested;
-  typedef typename remove_reference<XprTypeNested>::type _XprTypeNested;
-  enum{
-    MatrixRows = traits<XprType>::RowsAtCompileTime,
-    MatrixCols = traits<XprType>::ColsAtCompileTime,
-    RowsAtCompileTime = MatrixRows == 0 ? 0 : BlockRows,
-    ColsAtCompileTime = MatrixCols == 0 ? 0 : BlockCols,
-    MaxRowsAtCompileTime = BlockRows==0 ? 0
-                         : RowsAtCompileTime != Dynamic ? int(RowsAtCompileTime)
-                         : int(traits<XprType>::MaxRowsAtCompileTime),
-    MaxColsAtCompileTime = BlockCols==0 ? 0
-                         : ColsAtCompileTime != Dynamic ? int(ColsAtCompileTime)
-                         : int(traits<XprType>::MaxColsAtCompileTime),
-    XprTypeIsRowMajor = (int(traits<XprType>::Flags)&RowMajorBit) != 0,
-    IsRowMajor = (MaxRowsAtCompileTime==1&&MaxColsAtCompileTime!=1) ? 1
-               : (MaxColsAtCompileTime==1&&MaxRowsAtCompileTime!=1) ? 0
-               : XprTypeIsRowMajor,
-    HasSameStorageOrderAsXprType = (IsRowMajor == XprTypeIsRowMajor),
-    InnerSize = IsRowMajor ? int(ColsAtCompileTime) : int(RowsAtCompileTime),
-    InnerStrideAtCompileTime = HasSameStorageOrderAsXprType
-                             ? int(inner_stride_at_compile_time<XprType>::ret)
-                             : int(outer_stride_at_compile_time<XprType>::ret),
-    OuterStrideAtCompileTime = HasSameStorageOrderAsXprType
-                             ? int(outer_stride_at_compile_time<XprType>::ret)
-                             : int(inner_stride_at_compile_time<XprType>::ret),
-    MaskPacketAccessBit = (InnerSize == Dynamic || (InnerSize % packet_traits<Scalar>::size) == 0)
-                       && (InnerStrideAtCompileTime == 1)
-                        ? PacketAccessBit : 0,
-    MaskAlignedBit = (InnerPanel && (OuterStrideAtCompileTime!=Dynamic) && (((OuterStrideAtCompileTime * int(sizeof(Scalar))) % 16) == 0)) ? AlignedBit : 0,
-    FlagsLinearAccessBit = (RowsAtCompileTime == 1 || ColsAtCompileTime == 1) ? LinearAccessBit : 0,
-    FlagsLvalueBit = is_lvalue<XprType>::value ? LvalueBit : 0,
-    FlagsRowMajorBit = IsRowMajor ? RowMajorBit : 0,
-    Flags0 = traits<XprType>::Flags & ( (HereditaryBits & ~RowMajorBit) |
-                                        DirectAccessBit |
-                                        MaskPacketAccessBit |
-                                        MaskAlignedBit),
-    Flags = Flags0 | FlagsLinearAccessBit | FlagsLvalueBit | FlagsRowMajorBit
-  };
-};
-
-template<typename XprType, int BlockRows=Dynamic, int BlockCols=Dynamic, bool InnerPanel = false,
-         bool HasDirectAccess = internal::has_direct_access<XprType>::ret> class BlockImpl_dense;
-         
-} // end namespace internal
-
-template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel, typename StorageKind> class BlockImpl;
-
-template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel> class Block
-  : public BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, typename internal::traits<XprType>::StorageKind>
-{
-    typedef BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, typename internal::traits<XprType>::StorageKind> Impl;
-  public:
-    //typedef typename Impl::Base Base;
-    typedef Impl Base;
-    EIGEN_GENERIC_PUBLIC_INTERFACE(Block)
-    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Block)
-  
-    /** Column or Row constructor
-      */
-    inline Block(XprType& xpr, Index i) : Impl(xpr,i)
-    {
-      eigen_assert( (i>=0) && (
-          ((BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) && i<xpr.rows())
-        ||((BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) && i<xpr.cols())));
-    }
-
-    /** Fixed-size constructor
-      */
-    inline Block(XprType& xpr, Index a_startRow, Index a_startCol)
-      : Impl(xpr, a_startRow, a_startCol)
-    {
-      EIGEN_STATIC_ASSERT(RowsAtCompileTime!=Dynamic && ColsAtCompileTime!=Dynamic,THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE)
-      eigen_assert(a_startRow >= 0 && BlockRows >= 1 && a_startRow + BlockRows <= xpr.rows()
-             && a_startCol >= 0 && BlockCols >= 1 && a_startCol + BlockCols <= xpr.cols());
-    }
-
-    /** Dynamic-size constructor
-      */
-    inline Block(XprType& xpr,
-          Index a_startRow, Index a_startCol,
-          Index blockRows, Index blockCols)
-      : Impl(xpr, a_startRow, a_startCol, blockRows, blockCols)
-    {
-      eigen_assert((RowsAtCompileTime==Dynamic || RowsAtCompileTime==blockRows)
-          && (ColsAtCompileTime==Dynamic || ColsAtCompileTime==blockCols));
-      eigen_assert(a_startRow >= 0 && blockRows >= 0 && a_startRow  <= xpr.rows() - blockRows
-          && a_startCol >= 0 && blockCols >= 0 && a_startCol <= xpr.cols() - blockCols);
-    }
-};
-         
-// The generic default implementation for dense block simplu forward to the internal::BlockImpl_dense
-// that must be specialized for direct and non-direct access...
-template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
-class BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, Dense>
-  : public internal::BlockImpl_dense<XprType, BlockRows, BlockCols, InnerPanel>
-{
-    typedef internal::BlockImpl_dense<XprType, BlockRows, BlockCols, InnerPanel> Impl;
-    typedef typename XprType::Index Index;
-  public:
-    typedef Impl Base;
-    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl)
-    inline BlockImpl(XprType& xpr, Index i) : Impl(xpr,i) {}
-    inline BlockImpl(XprType& xpr, Index a_startRow, Index a_startCol) : Impl(xpr, a_startRow, a_startCol) {}
-    inline BlockImpl(XprType& xpr, Index a_startRow, Index a_startCol, Index blockRows, Index blockCols)
-      : Impl(xpr, a_startRow, a_startCol, blockRows, blockCols) {}
-};
-
-namespace internal {
-
-/** \internal Internal implementation of dense Blocks in the general case. */
-template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess> class BlockImpl_dense
-  : public internal::dense_xpr_base<Block<XprType, BlockRows, BlockCols, InnerPanel> >::type
-{
-    typedef Block<XprType, BlockRows, BlockCols, InnerPanel> BlockType;
-  public:
-
-    typedef typename internal::dense_xpr_base<BlockType>::type Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(BlockType)
-    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl_dense)
-
-    class InnerIterator;
-
-    /** Column or Row constructor
-      */
-    inline BlockImpl_dense(XprType& xpr, Index i)
-      : m_xpr(xpr),
-        // It is a row if and only if BlockRows==1 and BlockCols==XprType::ColsAtCompileTime,
-        // and it is a column if and only if BlockRows==XprType::RowsAtCompileTime and BlockCols==1,
-        // all other cases are invalid.
-        // The case a 1x1 matrix seems ambiguous, but the result is the same anyway.
-        m_startRow( (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? i : 0),
-        m_startCol( (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? i : 0),
-        m_blockRows(BlockRows==1 ? 1 : xpr.rows()),
-        m_blockCols(BlockCols==1 ? 1 : xpr.cols())
-    {}
-
-    /** Fixed-size constructor
-      */
-    inline BlockImpl_dense(XprType& xpr, Index a_startRow, Index a_startCol)
-      : m_xpr(xpr), m_startRow(a_startRow), m_startCol(a_startCol),
-                    m_blockRows(BlockRows), m_blockCols(BlockCols)
-    {}
-
-    /** Dynamic-size constructor
-      */
-    inline BlockImpl_dense(XprType& xpr,
-          Index a_startRow, Index a_startCol,
-          Index blockRows, Index blockCols)
-      : m_xpr(xpr), m_startRow(a_startRow), m_startCol(a_startCol),
-                    m_blockRows(blockRows), m_blockCols(blockCols)
-    {}
-
-    inline Index rows() const { return m_blockRows.value(); }
-    inline Index cols() const { return m_blockCols.value(); }
-
-    inline Scalar& coeffRef(Index rowId, Index colId)
-    {
-      EIGEN_STATIC_ASSERT_LVALUE(XprType)
-      return m_xpr.const_cast_derived()
-               .coeffRef(rowId + m_startRow.value(), colId + m_startCol.value());
-    }
-
-    inline const Scalar& coeffRef(Index rowId, Index colId) const
-    {
-      return m_xpr.derived()
-               .coeffRef(rowId + m_startRow.value(), colId + m_startCol.value());
-    }
-
-    EIGEN_STRONG_INLINE const CoeffReturnType coeff(Index rowId, Index colId) const
-    {
-      return m_xpr.coeff(rowId + m_startRow.value(), colId + m_startCol.value());
-    }
-
-    inline Scalar& coeffRef(Index index)
-    {
-      EIGEN_STATIC_ASSERT_LVALUE(XprType)
-      return m_xpr.const_cast_derived()
-             .coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
-                       m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
-    }
-
-    inline const Scalar& coeffRef(Index index) const
-    {
-      return m_xpr.const_cast_derived()
-             .coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
-                       m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
-    }
-
-    inline const CoeffReturnType coeff(Index index) const
-    {
-      return m_xpr
-             .coeff(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
-                    m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
-    }
-
-    template<int LoadMode>
-    inline PacketScalar packet(Index rowId, Index colId) const
-    {
-      return m_xpr.template packet<Unaligned>
-              (rowId + m_startRow.value(), colId + m_startCol.value());
-    }
-
-    template<int LoadMode>
-    inline void writePacket(Index rowId, Index colId, const PacketScalar& val)
-    {
-      m_xpr.const_cast_derived().template writePacket<Unaligned>
-              (rowId + m_startRow.value(), colId + m_startCol.value(), val);
-    }
-
-    template<int LoadMode>
-    inline PacketScalar packet(Index index) const
-    {
-      return m_xpr.template packet<Unaligned>
-              (m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
-               m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
-    }
-
-    template<int LoadMode>
-    inline void writePacket(Index index, const PacketScalar& val)
-    {
-      m_xpr.const_cast_derived().template writePacket<Unaligned>
-         (m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
-          m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0), val);
-    }
-
-    #ifdef EIGEN_PARSED_BY_DOXYGEN
-    /** \sa MapBase::data() */
-    inline const Scalar* data() const;
-    inline Index innerStride() const;
-    inline Index outerStride() const;
-    #endif
-
-    const typename internal::remove_all<typename XprType::Nested>::type& nestedExpression() const 
-    { 
-      return m_xpr; 
-    }
-      
-    Index startRow() const 
-    { 
-      return m_startRow.value(); 
-    }
-      
-    Index startCol() const 
-    { 
-      return m_startCol.value(); 
-    }
-
-  protected:
-
-    const typename XprType::Nested m_xpr;
-    const internal::variable_if_dynamic<Index, XprType::RowsAtCompileTime == 1 ? 0 : Dynamic> m_startRow;
-    const internal::variable_if_dynamic<Index, XprType::ColsAtCompileTime == 1 ? 0 : Dynamic> m_startCol;
-    const internal::variable_if_dynamic<Index, RowsAtCompileTime> m_blockRows;
-    const internal::variable_if_dynamic<Index, ColsAtCompileTime> m_blockCols;
-};
-
-/** \internal Internal implementation of dense Blocks in the direct access case.*/
-template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
-class BlockImpl_dense<XprType,BlockRows,BlockCols, InnerPanel,true>
-  : public MapBase<Block<XprType, BlockRows, BlockCols, InnerPanel> >
-{
-    typedef Block<XprType, BlockRows, BlockCols, InnerPanel> BlockType;
-  public:
-
-    typedef MapBase<BlockType> Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(BlockType)
-    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl_dense)
-
-    /** Column or Row constructor
-      */
-    inline BlockImpl_dense(XprType& xpr, Index i)
-      : Base(internal::const_cast_ptr(&xpr.coeffRef(
-              (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? i : 0,
-              (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? i : 0)),
-             BlockRows==1 ? 1 : xpr.rows(),
-             BlockCols==1 ? 1 : xpr.cols()),
-        m_xpr(xpr)
-    {
-      init();
-    }
-
-    /** Fixed-size constructor
-      */
-    inline BlockImpl_dense(XprType& xpr, Index startRow, Index startCol)
-      : Base(internal::const_cast_ptr(&xpr.coeffRef(startRow,startCol))), m_xpr(xpr)
-    {
-      init();
-    }
-
-    /** Dynamic-size constructor
-      */
-    inline BlockImpl_dense(XprType& xpr,
-          Index startRow, Index startCol,
-          Index blockRows, Index blockCols)
-      : Base(internal::const_cast_ptr(&xpr.coeffRef(startRow,startCol)), blockRows, blockCols),
-        m_xpr(xpr)
-    {
-      init();
-    }
-
-    const typename internal::remove_all<typename XprType::Nested>::type& nestedExpression() const 
-    { 
-      return m_xpr; 
-    }
-      
-    /** \sa MapBase::innerStride() */
-    inline Index innerStride() const
-    {
-      return internal::traits<BlockType>::HasSameStorageOrderAsXprType
-             ? m_xpr.innerStride()
-             : m_xpr.outerStride();
-    }
-
-    /** \sa MapBase::outerStride() */
-    inline Index outerStride() const
-    {
-      return m_outerStride;
-    }
-
-  #ifndef __SUNPRO_CC
-  // FIXME sunstudio is not friendly with the above friend...
-  // META-FIXME there is no 'friend' keyword around here. Is this obsolete?
-  protected:
-  #endif
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** \internal used by allowAligned() */
-    inline BlockImpl_dense(XprType& xpr, const Scalar* data, Index blockRows, Index blockCols)
-      : Base(data, blockRows, blockCols), m_xpr(xpr)
-    {
-      init();
-    }
-    #endif
-
-  protected:
-    void init()
-    {
-      m_outerStride = internal::traits<BlockType>::HasSameStorageOrderAsXprType
-                    ? m_xpr.outerStride()
-                    : m_xpr.innerStride();
-    }
-
-    typename XprType::Nested m_xpr;
-    Index m_outerStride;
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_BLOCK_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/BooleanRedux.h b/vendor/eigen-3.1.91/Eigen/src/Core/BooleanRedux.h
deleted file mode 100644
index f6afeb0..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/BooleanRedux.h
+++ /dev/null
@@ -1,154 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_ALLANDANY_H
-#define EIGEN_ALLANDANY_H
-
-namespace Eigen { 
-
-namespace internal {
-
-template<typename Derived, int UnrollCount>
-struct all_unroller
-{
-  enum {
-    col = (UnrollCount-1) / Derived::RowsAtCompileTime,
-    row = (UnrollCount-1) % Derived::RowsAtCompileTime
-  };
-
-  static inline bool run(const Derived &mat)
-  {
-    return all_unroller<Derived, UnrollCount-1>::run(mat) && mat.coeff(row, col);
-  }
-};
-
-template<typename Derived>
-struct all_unroller<Derived, 1>
-{
-  static inline bool run(const Derived &mat) { return mat.coeff(0, 0); }
-};
-
-template<typename Derived>
-struct all_unroller<Derived, Dynamic>
-{
-  static inline bool run(const Derived &) { return false; }
-};
-
-template<typename Derived, int UnrollCount>
-struct any_unroller
-{
-  enum {
-    col = (UnrollCount-1) / Derived::RowsAtCompileTime,
-    row = (UnrollCount-1) % Derived::RowsAtCompileTime
-  };
-
-  static inline bool run(const Derived &mat)
-  {
-    return any_unroller<Derived, UnrollCount-1>::run(mat) || mat.coeff(row, col);
-  }
-};
-
-template<typename Derived>
-struct any_unroller<Derived, 1>
-{
-  static inline bool run(const Derived &mat) { return mat.coeff(0, 0); }
-};
-
-template<typename Derived>
-struct any_unroller<Derived, Dynamic>
-{
-  static inline bool run(const Derived &) { return false; }
-};
-
-} // end namespace internal
-
-/** \returns true if all coefficients are true
-  *
-  * Example: \include MatrixBase_all.cpp
-  * Output: \verbinclude MatrixBase_all.out
-  *
-  * \sa any(), Cwise::operator<()
-  */
-template<typename Derived>
-inline bool DenseBase<Derived>::all() const
-{
-  enum {
-    unroll = SizeAtCompileTime != Dynamic
-          && CoeffReadCost != Dynamic
-          && NumTraits<Scalar>::AddCost != Dynamic
-          && SizeAtCompileTime * (CoeffReadCost + NumTraits<Scalar>::AddCost) <= EIGEN_UNROLLING_LIMIT
-  };
-  if(unroll)
-    return internal::all_unroller<Derived, unroll ? int(SizeAtCompileTime) : Dynamic>::run(derived());
-  else
-  {
-    for(Index j = 0; j < cols(); ++j)
-      for(Index i = 0; i < rows(); ++i)
-        if (!coeff(i, j)) return false;
-    return true;
-  }
-}
-
-/** \returns true if at least one coefficient is true
-  *
-  * \sa all()
-  */
-template<typename Derived>
-inline bool DenseBase<Derived>::any() const
-{
-  enum {
-    unroll = SizeAtCompileTime != Dynamic
-          && CoeffReadCost != Dynamic
-          && NumTraits<Scalar>::AddCost != Dynamic
-          && SizeAtCompileTime * (CoeffReadCost + NumTraits<Scalar>::AddCost) <= EIGEN_UNROLLING_LIMIT
-  };
-  if(unroll)
-    return internal::any_unroller<Derived, unroll ? int(SizeAtCompileTime) : Dynamic>::run(derived());
-  else
-  {
-    for(Index j = 0; j < cols(); ++j)
-      for(Index i = 0; i < rows(); ++i)
-        if (coeff(i, j)) return true;
-    return false;
-  }
-}
-
-/** \returns the number of coefficients which evaluate to true
-  *
-  * \sa all(), any()
-  */
-template<typename Derived>
-inline typename DenseBase<Derived>::Index DenseBase<Derived>::count() const
-{
-  return derived().template cast<bool>().template cast<Index>().sum();
-}
-
-/** \returns true is \c *this contains at least one Not A Number (NaN).
-  *
-  * \sa isFinite()
-  */
-template<typename Derived>
-inline bool DenseBase<Derived>::hasNaN() const
-{
-  return !((derived().array()==derived().array()).all());
-}
-
-/** \returns true if \c *this contains only finite numbers, i.e., no NaN and no +/-INF values.
-  *
-  * \sa hasNaN()
-  */
-template<typename Derived>
-inline bool DenseBase<Derived>::isFinite() const
-{
-  return !((derived()-derived()).hasNaN());
-}
-    
-} // end namespace Eigen
-
-#endif // EIGEN_ALLANDANY_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/CommaInitializer.h b/vendor/eigen-3.1.91/Eigen/src/Core/CommaInitializer.h
deleted file mode 100644
index a96867a..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/CommaInitializer.h
+++ /dev/null
@@ -1,143 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_COMMAINITIALIZER_H
-#define EIGEN_COMMAINITIALIZER_H
-
-namespace Eigen { 
-
-/** \class CommaInitializer
-  * \ingroup Core_Module
-  *
-  * \brief Helper class used by the comma initializer operator
-  *
-  * This class is internally used to implement the comma initializer feature. It is
-  * the return type of MatrixBase::operator<<, and most of the time this is the only
-  * way it is used.
-  *
-  * \sa \ref MatrixBaseCommaInitRef "MatrixBase::operator<<", CommaInitializer::finished()
-  */
-template<typename XprType>
-struct CommaInitializer
-{
-  typedef typename XprType::Scalar Scalar;
-  typedef typename XprType::Index Index;
-
-  inline CommaInitializer(XprType& xpr, const Scalar& s)
-    : m_xpr(xpr), m_row(0), m_col(1), m_currentBlockRows(1)
-  {
-    m_xpr.coeffRef(0,0) = s;
-  }
-
-  template<typename OtherDerived>
-  inline CommaInitializer(XprType& xpr, const DenseBase<OtherDerived>& other)
-    : m_xpr(xpr), m_row(0), m_col(other.cols()), m_currentBlockRows(other.rows())
-  {
-    m_xpr.block(0, 0, other.rows(), other.cols()) = other;
-  }
-
-  /* inserts a scalar value in the target matrix */
-  CommaInitializer& operator,(const Scalar& s)
-  {
-    if (m_col==m_xpr.cols())
-    {
-      m_row+=m_currentBlockRows;
-      m_col = 0;
-      m_currentBlockRows = 1;
-      eigen_assert(m_row<m_xpr.rows()
-        && "Too many rows passed to comma initializer (operator<<)");
-    }
-    eigen_assert(m_col<m_xpr.cols()
-      && "Too many coefficients passed to comma initializer (operator<<)");
-    eigen_assert(m_currentBlockRows==1);
-    m_xpr.coeffRef(m_row, m_col++) = s;
-    return *this;
-  }
-
-  /* inserts a matrix expression in the target matrix */
-  template<typename OtherDerived>
-  CommaInitializer& operator,(const DenseBase<OtherDerived>& other)
-  {
-    if(other.cols()==0 || other.rows()==0)
-      return *this;
-    if (m_col==m_xpr.cols())
-    {
-      m_row+=m_currentBlockRows;
-      m_col = 0;
-      m_currentBlockRows = other.rows();
-      eigen_assert(m_row+m_currentBlockRows<=m_xpr.rows()
-        && "Too many rows passed to comma initializer (operator<<)");
-    }
-    eigen_assert(m_col<m_xpr.cols()
-      && "Too many coefficients passed to comma initializer (operator<<)");
-    eigen_assert(m_currentBlockRows==other.rows());
-    if (OtherDerived::SizeAtCompileTime != Dynamic)
-      m_xpr.template block<OtherDerived::RowsAtCompileTime != Dynamic ? OtherDerived::RowsAtCompileTime : 1,
-                              OtherDerived::ColsAtCompileTime != Dynamic ? OtherDerived::ColsAtCompileTime : 1>
-                    (m_row, m_col) = other;
-    else
-      m_xpr.block(m_row, m_col, other.rows(), other.cols()) = other;
-    m_col += other.cols();
-    return *this;
-  }
-
-  inline ~CommaInitializer()
-  {
-    eigen_assert((m_row+m_currentBlockRows) == m_xpr.rows()
-         && m_col == m_xpr.cols()
-         && "Too few coefficients passed to comma initializer (operator<<)");
-  }
-
-  /** \returns the built matrix once all its coefficients have been set.
-    * Calling finished is 100% optional. Its purpose is to write expressions
-    * like this:
-    * \code
-    * quaternion.fromRotationMatrix((Matrix3f() << axis0, axis1, axis2).finished());
-    * \endcode
-    */
-  inline XprType& finished() { return m_xpr; }
-
-  XprType& m_xpr;   // target expression
-  Index m_row;              // current row id
-  Index m_col;              // current col id
-  Index m_currentBlockRows; // current block height
-};
-
-/** \anchor MatrixBaseCommaInitRef
-  * Convenient operator to set the coefficients of a matrix.
-  *
-  * The coefficients must be provided in a row major order and exactly match
-  * the size of the matrix. Otherwise an assertion is raised.
-  *
-  * Example: \include MatrixBase_set.cpp
-  * Output: \verbinclude MatrixBase_set.out
-  * 
-  * \note According the c++ standard, the argument expressions of this comma initializer are evaluated in arbitrary order.
-  *
-  * \sa CommaInitializer::finished(), class CommaInitializer
-  */
-template<typename Derived>
-inline CommaInitializer<Derived> DenseBase<Derived>::operator<< (const Scalar& s)
-{
-  return CommaInitializer<Derived>(*static_cast<Derived*>(this), s);
-}
-
-/** \sa operator<<(const Scalar&) */
-template<typename Derived>
-template<typename OtherDerived>
-inline CommaInitializer<Derived>
-DenseBase<Derived>::operator<<(const DenseBase<OtherDerived>& other)
-{
-  return CommaInitializer<Derived>(*static_cast<Derived *>(this), other);
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_COMMAINITIALIZER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/CoreEvaluators.h b/vendor/eigen-3.1.91/Eigen/src/Core/CoreEvaluators.h
deleted file mode 100644
index 272027c..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/CoreEvaluators.h
+++ /dev/null
@@ -1,1311 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2011 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2011-2012 Jitse Niesen <jitse at maths.leeds.ac.uk>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-
-#ifndef EIGEN_COREEVALUATORS_H
-#define EIGEN_COREEVALUATORS_H
-
-namespace Eigen {
-
-namespace internal {
-
-// evaluator_traits<T> contains traits for evaluator_impl<T> 
-
-template<typename T>
-struct evaluator_traits
-{
-  // 1 if evaluator_impl<T>::evalTo() exists
-  // 0 if evaluator_impl<T> allows coefficient-based access
-  static const int HasEvalTo = 0;
-
-  // 1 if assignment A = B assumes aliasing when B is of type T and thus B needs to be evaluated into a
-  // temporary; 0 if not.
-  static const int AssumeAliasing = 0;
-};
-
-// expression class for evaluating nested expression to a temporary
- 
-template<typename ArgType>
-class EvalToTemp;
-
-// evaluator<T>::type is type of evaluator for T
-// evaluator<T>::nestedType is type of evaluator if T is nested inside another evaluator
- 
-template<typename T>
-struct evaluator_impl 
-{ };
- 
-template<typename T, int Nested = evaluator_traits<T>::HasEvalTo>
-struct evaluator_nested_type;
-
-template<typename T>
-struct evaluator_nested_type<T, 0>
-{
-  typedef evaluator_impl<T> type;
-};
-
-template<typename T>
-struct evaluator_nested_type<T, 1>
-{
-  typedef evaluator_impl<EvalToTemp<T> > type;
-};
-
-template<typename T>
-struct evaluator
-{
-  typedef evaluator_impl<T> type;
-  typedef typename evaluator_nested_type<T>::type nestedType;
-};
-
-// TODO: Think about const-correctness
-
-template<typename T>
-struct evaluator<const T>
-  : evaluator<T>
-{ };
-
-// ---------- base class for all writable evaluators ----------
-
-template<typename ExpressionType>
-struct evaluator_impl_base
-{
-  typedef typename ExpressionType::Index Index;
-
-  template<typename OtherEvaluatorType>
-  void copyCoeff(Index row, Index col, const OtherEvaluatorType& other)
-  {
-    derived().coeffRef(row, col) = other.coeff(row, col);
-  }
-
-  template<typename OtherEvaluatorType>
-  void copyCoeffByOuterInner(Index outer, Index inner, const OtherEvaluatorType& other)
-  {
-    Index row = rowIndexByOuterInner(outer, inner); 
-    Index col = colIndexByOuterInner(outer, inner); 
-    derived().copyCoeff(row, col, other);
-  }
-
-  template<typename OtherEvaluatorType>
-  void copyCoeff(Index index, const OtherEvaluatorType& other)
-  {
-    derived().coeffRef(index) = other.coeff(index);
-  }
-
-  template<int StoreMode, int LoadMode, typename OtherEvaluatorType>
-  void copyPacket(Index row, Index col, const OtherEvaluatorType& other)
-  {
-    derived().template writePacket<StoreMode>(row, col, 
-      other.template packet<LoadMode>(row, col));
-  }
-
-  template<int StoreMode, int LoadMode, typename OtherEvaluatorType>
-  void copyPacketByOuterInner(Index outer, Index inner, const OtherEvaluatorType& other)
-  {
-    Index row = rowIndexByOuterInner(outer, inner); 
-    Index col = colIndexByOuterInner(outer, inner); 
-    derived().template copyPacket<StoreMode, LoadMode>(row, col, other);
-  }
-
-  template<int StoreMode, int LoadMode, typename OtherEvaluatorType>
-  void copyPacket(Index index, const OtherEvaluatorType& other)
-  {
-    derived().template writePacket<StoreMode>(index, 
-      other.template packet<LoadMode>(index));
-  }
-
-  Index rowIndexByOuterInner(Index outer, Index inner) const
-  {
-    return int(ExpressionType::RowsAtCompileTime) == 1 ? 0
-      : int(ExpressionType::ColsAtCompileTime) == 1 ? inner
-      : int(ExpressionType::Flags)&RowMajorBit ? outer
-      : inner;
-  }
-
-  Index colIndexByOuterInner(Index outer, Index inner) const
-  {
-    return int(ExpressionType::ColsAtCompileTime) == 1 ? 0
-      : int(ExpressionType::RowsAtCompileTime) == 1 ? inner
-      : int(ExpressionType::Flags)&RowMajorBit ? inner
-      : outer;
-  }
-
-  evaluator_impl<ExpressionType>& derived() 
-  {
-    return *static_cast<evaluator_impl<ExpressionType>*>(this); 
-  }
-};
-
-// -------------------- Matrix and Array --------------------
-//
-// evaluator_impl<PlainObjectBase> is a common base class for the
-// Matrix and Array evaluators.
-
-template<typename Derived>
-struct evaluator_impl<PlainObjectBase<Derived> >
-  : evaluator_impl_base<Derived>
-{
-  typedef PlainObjectBase<Derived> PlainObjectType;
-
-  enum {
-    IsRowMajor = PlainObjectType::IsRowMajor,
-    IsVectorAtCompileTime = PlainObjectType::IsVectorAtCompileTime,
-    RowsAtCompileTime = PlainObjectType::RowsAtCompileTime,
-    ColsAtCompileTime = PlainObjectType::ColsAtCompileTime
-  };
-
-  evaluator_impl(const PlainObjectType& m) 
-    : m_data(m.data()), m_outerStride(IsVectorAtCompileTime ? 0 : m.outerStride()) 
-  { }
-
-  typedef typename PlainObjectType::Index Index;
-  typedef typename PlainObjectType::Scalar Scalar;
-  typedef typename PlainObjectType::CoeffReturnType CoeffReturnType;
-  typedef typename PlainObjectType::PacketScalar PacketScalar;
-  typedef typename PlainObjectType::PacketReturnType PacketReturnType;
-
-  CoeffReturnType coeff(Index row, Index col) const
-  {
-    if (IsRowMajor)
-      return m_data[row * m_outerStride.value() + col];
-    else
-      return m_data[row + col * m_outerStride.value()];
-  }
-
-  CoeffReturnType coeff(Index index) const
-  {
-    return m_data[index];
-  }
-
-  Scalar& coeffRef(Index row, Index col)
-  {
-    if (IsRowMajor)
-      return const_cast<Scalar*>(m_data)[row * m_outerStride.value() + col];
-    else
-      return const_cast<Scalar*>(m_data)[row + col * m_outerStride.value()];
-  }
-
-  Scalar& coeffRef(Index index)
-  {
-    return const_cast<Scalar*>(m_data)[index];
-  }
-
-  template<int LoadMode> 
-  PacketReturnType packet(Index row, Index col) const
-  {
-    if (IsRowMajor)
-      return ploadt<PacketScalar, LoadMode>(m_data + row * m_outerStride.value() + col);
-    else
-      return ploadt<PacketScalar, LoadMode>(m_data + row + col * m_outerStride.value());
-  }
-
-  template<int LoadMode> 
-  PacketReturnType packet(Index index) const
-  {
-    return ploadt<PacketScalar, LoadMode>(m_data + index);
-  }
-
-  template<int StoreMode> 
-  void writePacket(Index row, Index col, const PacketScalar& x)
-  {
-    if (IsRowMajor)
-      return pstoret<Scalar, PacketScalar, StoreMode>
-	            (const_cast<Scalar*>(m_data) + row * m_outerStride.value() + col, x);
-    else
-      return pstoret<Scalar, PacketScalar, StoreMode>
-                    (const_cast<Scalar*>(m_data) + row + col * m_outerStride.value(), x);
-  }
-
-  template<int StoreMode> 
-  void writePacket(Index index, const PacketScalar& x)
-  {
-    return pstoret<Scalar, PacketScalar, StoreMode>(const_cast<Scalar*>(m_data) + index, x);
-  }
-
-protected:
-  const Scalar *m_data;
-
-  // We do not need to know the outer stride for vectors
-  variable_if_dynamic<Index, IsVectorAtCompileTime ? 0 
-		             : int(IsRowMajor) ? ColsAtCompileTime 
-		             : RowsAtCompileTime> m_outerStride;
-};
-
-template<typename Scalar, int Rows, int Cols, int Options, int MaxRows, int MaxCols>
-struct evaluator_impl<Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols> >
-  : evaluator_impl<PlainObjectBase<Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols> > >
-{
-  typedef Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols> XprType;
-
-  evaluator_impl(const XprType& m) 
-    : evaluator_impl<PlainObjectBase<XprType> >(m) 
-  { }
-};
-
-template<typename Scalar, int Rows, int Cols, int Options, int MaxRows, int MaxCols>
-struct evaluator_impl<Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols> >
-  : evaluator_impl<PlainObjectBase<Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols> > >
-{
-  typedef Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols> XprType;
-
-  evaluator_impl(const XprType& m) 
-    : evaluator_impl<PlainObjectBase<XprType> >(m) 
-  { }
-};
-
-// -------------------- EvalToTemp --------------------
-
-template<typename ArgType>
-struct traits<EvalToTemp<ArgType> >
-  : public traits<ArgType>
-{ };
-
-template<typename ArgType>
-class EvalToTemp
-  : public dense_xpr_base<EvalToTemp<ArgType> >::type
-{
- public:
- 
-  typedef typename dense_xpr_base<EvalToTemp>::type Base;
-  EIGEN_GENERIC_PUBLIC_INTERFACE(EvalToTemp)
- 
-  EvalToTemp(const ArgType& arg)
-    : m_arg(arg)
-  { }
- 
-  const ArgType& arg() const
-  {
-    return m_arg;
-  }
-
-  Index rows() const 
-  {
-    return m_arg.rows();
-  }
-
-  Index cols() const 
-  {
-    return m_arg.cols();
-  }
-
- private:
-  const ArgType& m_arg;
-};
- 
-template<typename ArgType>
-struct evaluator_impl<EvalToTemp<ArgType> >
-{
-  typedef EvalToTemp<ArgType> XprType;
-  typedef typename ArgType::PlainObject PlainObject;
-
-  evaluator_impl(const XprType& xpr) 
-    : m_result(xpr.rows(), xpr.cols()), m_resultImpl(m_result)
-  { 
-    copy_using_evaluator_without_resizing(m_result, xpr.arg());
-  }
-
-  // This constructor is used when nesting an EvalTo evaluator in another evaluator
-  evaluator_impl(const ArgType& arg) 
-    : m_result(arg.rows(), arg.cols()), m_resultImpl(m_result)
-  { 
-    copy_using_evaluator_without_resizing(m_result, arg);
-  }
-
-  typedef typename PlainObject::Index Index;
-  typedef typename PlainObject::Scalar Scalar;
-  typedef typename PlainObject::CoeffReturnType CoeffReturnType;
-  typedef typename PlainObject::PacketScalar PacketScalar;
-  typedef typename PlainObject::PacketReturnType PacketReturnType;
-
-  // All other functions are forwarded to m_resultImpl
-
-  CoeffReturnType coeff(Index row, Index col) const 
-  { 
-    return m_resultImpl.coeff(row, col); 
-  }
-  
-  CoeffReturnType coeff(Index index) const 
-  { 
-    return m_resultImpl.coeff(index); 
-  }
-  
-  Scalar& coeffRef(Index row, Index col) 
-  { 
-    return m_resultImpl.coeffRef(row, col); 
-  }
-  
-  Scalar& coeffRef(Index index) 
-  { 
-    return m_resultImpl.coeffRef(index); 
-  }
-
-  template<int LoadMode> 
-  PacketReturnType packet(Index row, Index col) const
-  {
-    return m_resultImpl.template packet<LoadMode>(row, col);
-  }
-
-  template<int LoadMode> 
-  PacketReturnType packet(Index index) const
-  {
-    return m_resultImpl.packet<LoadMode>(index);
-  }
-
-  template<int StoreMode> 
-  void writePacket(Index row, Index col, const PacketScalar& x)
-  {
-    m_resultImpl.template writePacket<StoreMode>(row, col, x);
-  }
-
-  template<int StoreMode> 
-  void writePacket(Index index, const PacketScalar& x)
-  {
-    m_resultImpl.template writePacket<StoreMode>(index, x);
-  }
-
-protected:
-  PlainObject m_result;
-  typename evaluator<PlainObject>::nestedType m_resultImpl;
-};
-
-// -------------------- Transpose --------------------
-
-template<typename ArgType>
-struct evaluator_impl<Transpose<ArgType> >
-  : evaluator_impl_base<Transpose<ArgType> >
-{
-  typedef Transpose<ArgType> XprType;
-
-  evaluator_impl(const XprType& t) : m_argImpl(t.nestedExpression()) {}
-
-  typedef typename XprType::Index Index;
-  typedef typename XprType::Scalar Scalar;
-  typedef typename XprType::CoeffReturnType CoeffReturnType;
-  typedef typename XprType::PacketScalar PacketScalar;
-  typedef typename XprType::PacketReturnType PacketReturnType;
-
-  CoeffReturnType coeff(Index row, Index col) const
-  {
-    return m_argImpl.coeff(col, row);
-  }
-
-  CoeffReturnType coeff(Index index) const
-  {
-    return m_argImpl.coeff(index);
-  }
-
-  Scalar& coeffRef(Index row, Index col)
-  {
-    return m_argImpl.coeffRef(col, row);
-  }
-
-  typename XprType::Scalar& coeffRef(Index index)
-  {
-    return m_argImpl.coeffRef(index);
-  }
-
-  template<int LoadMode>
-  PacketReturnType packet(Index row, Index col) const
-  {
-    return m_argImpl.template packet<LoadMode>(col, row);
-  }
-
-  template<int LoadMode>
-  PacketReturnType packet(Index index) const
-  {
-    return m_argImpl.template packet<LoadMode>(index);
-  }
-
-  template<int StoreMode> 
-  void writePacket(Index row, Index col, const PacketScalar& x)
-  {
-    m_argImpl.template writePacket<StoreMode>(col, row, x);
-  }
-
-  template<int StoreMode> 
-  void writePacket(Index index, const PacketScalar& x)
-  {
-    m_argImpl.template writePacket<StoreMode>(index, x);
-  }
-
-protected:
-  typename evaluator<ArgType>::nestedType m_argImpl;
-};
-
-// -------------------- CwiseNullaryOp --------------------
-
-template<typename NullaryOp, typename PlainObjectType>
-struct evaluator_impl<CwiseNullaryOp<NullaryOp,PlainObjectType> >
-{
-  typedef CwiseNullaryOp<NullaryOp,PlainObjectType> XprType;
-
-  evaluator_impl(const XprType& n) 
-    : m_functor(n.functor()) 
-  { }
-
-  typedef typename XprType::Index Index;
-  typedef typename XprType::CoeffReturnType CoeffReturnType;
-  typedef typename XprType::PacketScalar PacketScalar;
-
-  CoeffReturnType coeff(Index row, Index col) const
-  {
-    return m_functor(row, col);
-  }
-
-  CoeffReturnType coeff(Index index) const
-  {
-    return m_functor(index);
-  }
-
-  template<int LoadMode>
-  PacketScalar packet(Index row, Index col) const
-  {
-    return m_functor.packetOp(row, col);
-  }
-
-  template<int LoadMode>
-  PacketScalar packet(Index index) const
-  {
-    return m_functor.packetOp(index);
-  }
-
-protected:
-  const NullaryOp m_functor;
-};
-
-// -------------------- CwiseUnaryOp --------------------
-
-template<typename UnaryOp, typename ArgType>
-struct evaluator_impl<CwiseUnaryOp<UnaryOp, ArgType> >
-{
-  typedef CwiseUnaryOp<UnaryOp, ArgType> XprType;
-
-  evaluator_impl(const XprType& op) 
-    : m_functor(op.functor()), 
-      m_argImpl(op.nestedExpression()) 
-  { }
-
-  typedef typename XprType::Index Index;
-  typedef typename XprType::CoeffReturnType CoeffReturnType;
-  typedef typename XprType::PacketScalar PacketScalar;
-
-  CoeffReturnType coeff(Index row, Index col) const
-  {
-    return m_functor(m_argImpl.coeff(row, col));
-  }
-
-  CoeffReturnType coeff(Index index) const
-  {
-    return m_functor(m_argImpl.coeff(index));
-  }
-
-  template<int LoadMode>
-  PacketScalar packet(Index row, Index col) const
-  {
-    return m_functor.packetOp(m_argImpl.template packet<LoadMode>(row, col));
-  }
-
-  template<int LoadMode>
-  PacketScalar packet(Index index) const
-  {
-    return m_functor.packetOp(m_argImpl.template packet<LoadMode>(index));
-  }
-
-protected:
-  const UnaryOp m_functor;
-  typename evaluator<ArgType>::nestedType m_argImpl;
-};
-
-// -------------------- CwiseBinaryOp --------------------
-
-template<typename BinaryOp, typename Lhs, typename Rhs>
-struct evaluator_impl<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
-{
-  typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> XprType;
-
-  evaluator_impl(const XprType& xpr) 
-    : m_functor(xpr.functor()),
-      m_lhsImpl(xpr.lhs()), 
-      m_rhsImpl(xpr.rhs())  
-  { }
-
-  typedef typename XprType::Index Index;
-  typedef typename XprType::CoeffReturnType CoeffReturnType;
-  typedef typename XprType::PacketScalar PacketScalar;
-
-  CoeffReturnType coeff(Index row, Index col) const
-  {
-    return m_functor(m_lhsImpl.coeff(row, col), m_rhsImpl.coeff(row, col));
-  }
-
-  CoeffReturnType coeff(Index index) const
-  {
-    return m_functor(m_lhsImpl.coeff(index), m_rhsImpl.coeff(index));
-  }
-
-  template<int LoadMode>
-  PacketScalar packet(Index row, Index col) const
-  {
-    return m_functor.packetOp(m_lhsImpl.template packet<LoadMode>(row, col),
-			      m_rhsImpl.template packet<LoadMode>(row, col));
-  }
-
-  template<int LoadMode>
-  PacketScalar packet(Index index) const
-  {
-    return m_functor.packetOp(m_lhsImpl.template packet<LoadMode>(index),
-			      m_rhsImpl.template packet<LoadMode>(index));
-  }
-
-protected:
-  const BinaryOp m_functor;
-  typename evaluator<Lhs>::nestedType m_lhsImpl;
-  typename evaluator<Rhs>::nestedType m_rhsImpl;
-};
-
-// -------------------- CwiseUnaryView --------------------
-
-template<typename UnaryOp, typename ArgType>
-struct evaluator_impl<CwiseUnaryView<UnaryOp, ArgType> >
-  : evaluator_impl_base<CwiseUnaryView<UnaryOp, ArgType> >
-{
-  typedef CwiseUnaryView<UnaryOp, ArgType> XprType;
-
-  evaluator_impl(const XprType& op) 
-    : m_unaryOp(op.functor()), 
-      m_argImpl(op.nestedExpression()) 
-  { }
-
-  typedef typename XprType::Index Index;
-  typedef typename XprType::Scalar Scalar;
-  typedef typename XprType::CoeffReturnType CoeffReturnType;
-
-  CoeffReturnType coeff(Index row, Index col) const
-  {
-    return m_unaryOp(m_argImpl.coeff(row, col));
-  }
-
-  CoeffReturnType coeff(Index index) const
-  {
-    return m_unaryOp(m_argImpl.coeff(index));
-  }
-
-  Scalar& coeffRef(Index row, Index col)
-  {
-    return m_unaryOp(m_argImpl.coeffRef(row, col));
-  }
-
-  Scalar& coeffRef(Index index)
-  {
-    return m_unaryOp(m_argImpl.coeffRef(index));
-  }
-
-protected:
-  const UnaryOp m_unaryOp;
-  typename evaluator<ArgType>::nestedType m_argImpl;
-};
-
-// -------------------- Map --------------------
-
-template<typename Derived, int AccessorsType>
-struct evaluator_impl<MapBase<Derived, AccessorsType> >
-  : evaluator_impl_base<Derived>
-{
-  typedef MapBase<Derived, AccessorsType> MapType;
-  typedef Derived XprType;
-
-  typedef typename XprType::PointerType PointerType;
-  typedef typename XprType::Index Index;
-  typedef typename XprType::Scalar Scalar;
-  typedef typename XprType::CoeffReturnType CoeffReturnType;
-  typedef typename XprType::PacketScalar PacketScalar;
-  typedef typename XprType::PacketReturnType PacketReturnType;
-  
-  evaluator_impl(const XprType& map) 
-    : m_data(const_cast<PointerType>(map.data())),  
-      m_rowStride(map.rowStride()),
-      m_colStride(map.colStride())
-  { }
- 
-  enum {
-    RowsAtCompileTime = XprType::RowsAtCompileTime
-  };
- 
-  CoeffReturnType coeff(Index row, Index col) const 
-  { 
-    return m_data[col * m_colStride + row * m_rowStride];
-  }
-  
-  CoeffReturnType coeff(Index index) const 
-  { 
-    return coeff(RowsAtCompileTime == 1 ? 0 : index,
-		 RowsAtCompileTime == 1 ? index : 0);
-  }
-
-  Scalar& coeffRef(Index row, Index col) 
-  { 
-    return m_data[col * m_colStride + row * m_rowStride];
-  }
-  
-  Scalar& coeffRef(Index index) 
-  { 
-    return coeffRef(RowsAtCompileTime == 1 ? 0 : index,
-		    RowsAtCompileTime == 1 ? index : 0);
-  }
- 
-  template<int LoadMode> 
-  PacketReturnType packet(Index row, Index col) const 
-  { 
-    PointerType ptr = m_data + row * m_rowStride + col * m_colStride;
-    return internal::ploadt<PacketScalar, LoadMode>(ptr);
-  }
-
-  template<int LoadMode> 
-  PacketReturnType packet(Index index) const 
-  { 
-    return packet<LoadMode>(RowsAtCompileTime == 1 ? 0 : index,
-			    RowsAtCompileTime == 1 ? index : 0);
-  }
-  
-  template<int StoreMode> 
-  void writePacket(Index row, Index col, const PacketScalar& x) 
-  { 
-    PointerType ptr = m_data + row * m_rowStride + col * m_colStride;
-    return internal::pstoret<Scalar, PacketScalar, StoreMode>(ptr, x);
-  }
-  
-  template<int StoreMode> 
-  void writePacket(Index index, const PacketScalar& x) 
-  { 
-    return writePacket<StoreMode>(RowsAtCompileTime == 1 ? 0 : index,
-				  RowsAtCompileTime == 1 ? index : 0,
-				  x);
-  }
- 
-protected:
-  PointerType m_data;
-  int m_rowStride;
-  int m_colStride;
-};
-
-template<typename PlainObjectType, int MapOptions, typename StrideType> 
-struct evaluator_impl<Map<PlainObjectType, MapOptions, StrideType> >
-  : public evaluator_impl<MapBase<Map<PlainObjectType, MapOptions, StrideType> > >
-{
-  typedef Map<PlainObjectType, MapOptions, StrideType> XprType;
-
-  evaluator_impl(const XprType& map) 
-    : evaluator_impl<MapBase<XprType> >(map) 
-  { }
-};
-
-// -------------------- Block --------------------
-
-template<typename ArgType, int BlockRows, int BlockCols, bool InnerPanel,
-         bool HasDirectAccess = internal::has_direct_access<ArgType>::ret> struct block_evaluator;
-         
-template<typename ArgType, int BlockRows, int BlockCols, bool InnerPanel> 
-struct evaluator_impl<Block<ArgType, BlockRows, BlockCols, InnerPanel> >
-  : block_evaluator<ArgType, BlockRows, BlockCols, InnerPanel>
-{
-  typedef Block<ArgType, BlockRows, BlockCols, InnerPanel> XprType;
-  typedef block_evaluator<ArgType, BlockRows, BlockCols, InnerPanel> block_evaluator_type;
-  evaluator_impl(const XprType& block) : block_evaluator_type(block) {}
-};
-
-template<typename ArgType, int BlockRows, int BlockCols, bool InnerPanel>
-struct block_evaluator<ArgType, BlockRows, BlockCols, InnerPanel, /*HasDirectAccess*/ false>
-  : evaluator_impl_base<Block<ArgType, BlockRows, BlockCols, InnerPanel> >
-{
-  typedef Block<ArgType, BlockRows, BlockCols, InnerPanel> XprType;
-
-  block_evaluator(const XprType& block) 
-    : m_argImpl(block.nestedExpression()), 
-      m_startRow(block.startRow()), 
-      m_startCol(block.startCol()) 
-  { }
- 
-  typedef typename XprType::Index Index;
-  typedef typename XprType::Scalar Scalar;
-  typedef typename XprType::CoeffReturnType CoeffReturnType;
-  typedef typename XprType::PacketScalar PacketScalar;
-  typedef typename XprType::PacketReturnType PacketReturnType;
-
-  enum {
-    RowsAtCompileTime = XprType::RowsAtCompileTime
-  };
- 
-  CoeffReturnType coeff(Index row, Index col) const 
-  { 
-    return m_argImpl.coeff(m_startRow.value() + row, m_startCol.value() + col); 
-  }
-  
-  CoeffReturnType coeff(Index index) const 
-  { 
-    return coeff(RowsAtCompileTime == 1 ? 0 : index,
-		 RowsAtCompileTime == 1 ? index : 0);
-  }
-
-  Scalar& coeffRef(Index row, Index col) 
-  { 
-    return m_argImpl.coeffRef(m_startRow.value() + row, m_startCol.value() + col); 
-  }
-  
-  Scalar& coeffRef(Index index) 
-  { 
-    return coeffRef(RowsAtCompileTime == 1 ? 0 : index,
-		    RowsAtCompileTime == 1 ? index : 0);
-  }
- 
-  template<int LoadMode> 
-  PacketReturnType packet(Index row, Index col) const 
-  { 
-    return m_argImpl.template packet<LoadMode>(m_startRow.value() + row, m_startCol.value() + col); 
-  }
-
-  template<int LoadMode> 
-  PacketReturnType packet(Index index) const 
-  { 
-    return packet<LoadMode>(RowsAtCompileTime == 1 ? 0 : index,
-			    RowsAtCompileTime == 1 ? index : 0);
-  }
-  
-  template<int StoreMode> 
-  void writePacket(Index row, Index col, const PacketScalar& x) 
-  { 
-    return m_argImpl.template writePacket<StoreMode>(m_startRow.value() + row, m_startCol.value() + col, x); 
-  }
-  
-  template<int StoreMode> 
-  void writePacket(Index index, const PacketScalar& x) 
-  { 
-    return writePacket<StoreMode>(RowsAtCompileTime == 1 ? 0 : index,
-				  RowsAtCompileTime == 1 ? index : 0,
-				  x);
-  }
- 
-protected:
-  typename evaluator<ArgType>::nestedType m_argImpl;
-  const variable_if_dynamic<Index, ArgType::RowsAtCompileTime == 1 ? 0 : Dynamic> m_startRow;
-  const variable_if_dynamic<Index, ArgType::ColsAtCompileTime == 1 ? 0 : Dynamic> m_startCol;
-};
-
-// TODO: This evaluator does not actually use the child evaluator; 
-// all action is via the data() as returned by the Block expression.
-
-template<typename ArgType, int BlockRows, int BlockCols, bool InnerPanel> 
-struct block_evaluator<ArgType, BlockRows, BlockCols, InnerPanel, /* HasDirectAccess */ true>
-  : evaluator_impl<MapBase<Block<ArgType, BlockRows, BlockCols, InnerPanel> > >
-{
-  typedef Block<ArgType, BlockRows, BlockCols, InnerPanel> XprType;
-
-  block_evaluator(const XprType& block) 
-    : evaluator_impl<MapBase<XprType> >(block) 
-  { }
-};
-
-
-// -------------------- Select --------------------
-
-template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType>
-struct evaluator_impl<Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> >
-{
-  typedef Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> XprType;
-
-  evaluator_impl(const XprType& select) 
-    : m_conditionImpl(select.conditionMatrix()),
-      m_thenImpl(select.thenMatrix()),
-      m_elseImpl(select.elseMatrix())
-  { }
- 
-  typedef typename XprType::Index Index;
-  typedef typename XprType::CoeffReturnType CoeffReturnType;
-
-  CoeffReturnType coeff(Index row, Index col) const
-  {
-    if (m_conditionImpl.coeff(row, col))
-      return m_thenImpl.coeff(row, col);
-    else
-      return m_elseImpl.coeff(row, col);
-  }
-
-  CoeffReturnType coeff(Index index) const
-  {
-    if (m_conditionImpl.coeff(index))
-      return m_thenImpl.coeff(index);
-    else
-      return m_elseImpl.coeff(index);
-  }
- 
-protected:
-  typename evaluator<ConditionMatrixType>::nestedType m_conditionImpl;
-  typename evaluator<ThenMatrixType>::nestedType m_thenImpl;
-  typename evaluator<ElseMatrixType>::nestedType m_elseImpl;
-};
-
-
-// -------------------- Replicate --------------------
-
-template<typename ArgType, int RowFactor, int ColFactor> 
-struct evaluator_impl<Replicate<ArgType, RowFactor, ColFactor> >
-{
-  typedef Replicate<ArgType, RowFactor, ColFactor> XprType;
-
-  evaluator_impl(const XprType& replicate) 
-    : m_argImpl(replicate.nestedExpression()),
-      m_rows(replicate.nestedExpression().rows()),
-      m_cols(replicate.nestedExpression().cols())
-  { }
- 
-  typedef typename XprType::Index Index;
-  typedef typename XprType::CoeffReturnType CoeffReturnType;
-  typedef typename XprType::PacketReturnType PacketReturnType;
-
-  CoeffReturnType coeff(Index row, Index col) const
-  {
-    // try to avoid using modulo; this is a pure optimization strategy
-    const Index actual_row = internal::traits<XprType>::RowsAtCompileTime==1 ? 0
-                           : RowFactor==1 ? row
-                           : row % m_rows.value();
-    const Index actual_col = internal::traits<XprType>::ColsAtCompileTime==1 ? 0
-                           : ColFactor==1 ? col
-                           : col % m_cols.value();
-    
-    return m_argImpl.coeff(actual_row, actual_col);
-  }
-
-  template<int LoadMode>
-  PacketReturnType packet(Index row, Index col) const
-  {
-    const Index actual_row = internal::traits<XprType>::RowsAtCompileTime==1 ? 0
-                           : RowFactor==1 ? row
-                           : row % m_rows.value();
-    const Index actual_col = internal::traits<XprType>::ColsAtCompileTime==1 ? 0
-                           : ColFactor==1 ? col
-                           : col % m_cols.value();
-
-    return m_argImpl.template packet<LoadMode>(actual_row, actual_col);
-  }
- 
-protected:
-  typename evaluator<ArgType>::nestedType m_argImpl;
-  const variable_if_dynamic<Index, XprType::RowsAtCompileTime> m_rows;
-  const variable_if_dynamic<Index, XprType::ColsAtCompileTime> m_cols;
-};
-
-
-// -------------------- PartialReduxExpr --------------------
-//
-// This is a wrapper around the expression object. 
-// TODO: Find out how to write a proper evaluator without duplicating
-//       the row() and col() member functions.
-
-template< typename ArgType, typename MemberOp, int Direction>
-struct evaluator_impl<PartialReduxExpr<ArgType, MemberOp, Direction> >
-{
-  typedef PartialReduxExpr<ArgType, MemberOp, Direction> XprType;
-
-  evaluator_impl(const XprType expr)
-    : m_expr(expr)
-  { }
-
-  typedef typename XprType::Index Index;
-  typedef typename XprType::CoeffReturnType CoeffReturnType;
- 
-  CoeffReturnType coeff(Index row, Index col) const 
-  { 
-    return m_expr.coeff(row, col);
-  }
-  
-  CoeffReturnType coeff(Index index) const 
-  { 
-    return m_expr.coeff(index);
-  }
-
-protected:
-  const XprType m_expr;
-};
-
-
-// -------------------- MatrixWrapper and ArrayWrapper --------------------
-//
-// evaluator_impl_wrapper_base<T> is a common base class for the
-// MatrixWrapper and ArrayWrapper evaluators.
-
-template<typename XprType>
-struct evaluator_impl_wrapper_base
-  : evaluator_impl_base<XprType>
-{
-  typedef typename remove_all<typename XprType::NestedExpressionType>::type ArgType;
-
-  evaluator_impl_wrapper_base(const ArgType& arg) : m_argImpl(arg) {}
-
-  typedef typename ArgType::Index Index;
-  typedef typename ArgType::Scalar Scalar;
-  typedef typename ArgType::CoeffReturnType CoeffReturnType;
-  typedef typename ArgType::PacketScalar PacketScalar;
-  typedef typename ArgType::PacketReturnType PacketReturnType;
-
-  CoeffReturnType coeff(Index row, Index col) const
-  {
-    return m_argImpl.coeff(row, col);
-  }
-
-  CoeffReturnType coeff(Index index) const
-  {
-    return m_argImpl.coeff(index);
-  }
-
-  Scalar& coeffRef(Index row, Index col)
-  {
-    return m_argImpl.coeffRef(row, col);
-  }
-
-  Scalar& coeffRef(Index index)
-  {
-    return m_argImpl.coeffRef(index);
-  }
-
-  template<int LoadMode> 
-  PacketReturnType packet(Index row, Index col) const
-  {
-    return m_argImpl.template packet<LoadMode>(row, col);
-  }
-
-  template<int LoadMode> 
-  PacketReturnType packet(Index index) const
-  {
-    return m_argImpl.template packet<LoadMode>(index);
-  }
-
-  template<int StoreMode> 
-  void writePacket(Index row, Index col, const PacketScalar& x)
-  {
-    m_argImpl.template writePacket<StoreMode>(row, col, x);
-  }
-
-  template<int StoreMode> 
-  void writePacket(Index index, const PacketScalar& x)
-  {
-    m_argImpl.template writePacket<StoreMode>(index, x);
-  }
-
-protected:
-  typename evaluator<ArgType>::nestedType m_argImpl;
-};
-
-template<typename ArgType>
-struct evaluator_impl<MatrixWrapper<ArgType> >
-  : evaluator_impl_wrapper_base<MatrixWrapper<ArgType> >
-{
-  typedef MatrixWrapper<ArgType> XprType;
-
-  evaluator_impl(const XprType& wrapper) 
-    : evaluator_impl_wrapper_base<MatrixWrapper<ArgType> >(wrapper.nestedExpression())
-  { }
-};
-
-template<typename ArgType>
-struct evaluator_impl<ArrayWrapper<ArgType> >
-  : evaluator_impl_wrapper_base<ArrayWrapper<ArgType> >
-{
-  typedef ArrayWrapper<ArgType> XprType;
-
-  evaluator_impl(const XprType& wrapper) 
-    : evaluator_impl_wrapper_base<ArrayWrapper<ArgType> >(wrapper.nestedExpression())
-  { }
-};
-
-
-// -------------------- Reverse --------------------
-
-// defined in Reverse.h:
-template<typename PacketScalar, bool ReversePacket> struct reverse_packet_cond;
-
-template<typename ArgType, int Direction>
-struct evaluator_impl<Reverse<ArgType, Direction> >
-  : evaluator_impl_base<Reverse<ArgType, Direction> >
-{
-  typedef Reverse<ArgType, Direction> XprType;
-  typedef typename XprType::Index Index;
-  typedef typename XprType::Scalar Scalar;
-  typedef typename XprType::CoeffReturnType CoeffReturnType;
-  typedef typename XprType::PacketScalar PacketScalar;
-  typedef typename XprType::PacketReturnType PacketReturnType;
-
-  enum {
-    PacketSize = internal::packet_traits<Scalar>::size,
-    IsRowMajor = XprType::IsRowMajor,
-    IsColMajor = !IsRowMajor,
-    ReverseRow = (Direction == Vertical)   || (Direction == BothDirections),
-    ReverseCol = (Direction == Horizontal) || (Direction == BothDirections),
-    OffsetRow  = ReverseRow && IsColMajor ? PacketSize : 1,
-    OffsetCol  = ReverseCol && IsRowMajor ? PacketSize : 1,
-    ReversePacket = (Direction == BothDirections)
-                    || ((Direction == Vertical)   && IsColMajor)
-                    || ((Direction == Horizontal) && IsRowMajor)
-  };
-  typedef internal::reverse_packet_cond<PacketScalar,ReversePacket> reverse_packet;
-
-  evaluator_impl(const XprType& reverse) 
-    : m_argImpl(reverse.nestedExpression()),
-      m_rows(ReverseRow ? reverse.nestedExpression().rows() : 0),
-      m_cols(ReverseCol ? reverse.nestedExpression().cols() : 0)
-  { }
- 
-  CoeffReturnType coeff(Index row, Index col) const
-  {
-    return m_argImpl.coeff(ReverseRow ? m_rows.value() - row - 1 : row,
-			   ReverseCol ? m_cols.value() - col - 1 : col);
-  }
-
-  CoeffReturnType coeff(Index index) const
-  {
-    return m_argImpl.coeff(m_rows.value() * m_cols.value() - index - 1);
-  }
-
-  Scalar& coeffRef(Index row, Index col)
-  {
-    return m_argImpl.coeffRef(ReverseRow ? m_rows.value() - row - 1 : row,
-			      ReverseCol ? m_cols.value() - col - 1 : col);
-  }
-
-  Scalar& coeffRef(Index index)
-  {
-    return m_argImpl.coeffRef(m_rows.value() * m_cols.value() - index - 1);
-  }
-
-  template<int LoadMode>
-  PacketScalar packet(Index row, Index col) const
-  {
-    return reverse_packet::run(m_argImpl.template packet<LoadMode>(
-                                  ReverseRow ? m_rows.value() - row - OffsetRow : row,
-                                  ReverseCol ? m_cols.value() - col - OffsetCol : col));
-  }
-
-  template<int LoadMode>
-  PacketScalar packet(Index index) const
-  {
-    return preverse(m_argImpl.template packet<LoadMode>(m_rows.value() * m_cols.value() - index - PacketSize));
-  }
-
-  template<int LoadMode>
-  void writePacket(Index row, Index col, const PacketScalar& x)
-  {
-    m_argImpl.template writePacket<LoadMode>(
-                                  ReverseRow ? m_rows.value() - row - OffsetRow : row,
-                                  ReverseCol ? m_cols.value() - col - OffsetCol : col,
-                                  reverse_packet::run(x));
-  }
-
-  template<int LoadMode>
-  void writePacket(Index index, const PacketScalar& x)
-  {
-    m_argImpl.template writePacket<LoadMode>
-      (m_rows.value() * m_cols.value() - index - PacketSize, preverse(x));
-  }
- 
-protected:
-  typename evaluator<ArgType>::nestedType m_argImpl;
-
-  // If we do not reverse rows, then we do not need to know the number of rows; same for columns
-  const variable_if_dynamic<Index, ReverseRow ? ArgType::RowsAtCompileTime : 0> m_rows;
-  const variable_if_dynamic<Index, ReverseCol ? ArgType::ColsAtCompileTime : 0> m_cols;
-};
-
-
-// -------------------- Diagonal --------------------
-
-template<typename ArgType, int DiagIndex>
-struct evaluator_impl<Diagonal<ArgType, DiagIndex> >
-  : evaluator_impl_base<Diagonal<ArgType, DiagIndex> >
-{
-  typedef Diagonal<ArgType, DiagIndex> XprType;
-
-  evaluator_impl(const XprType& diagonal) 
-    : m_argImpl(diagonal.nestedExpression()),
-      m_index(diagonal.index())
-  { }
- 
-  typedef typename XprType::Index Index;
-  typedef typename XprType::Scalar Scalar;
-  typedef typename XprType::CoeffReturnType CoeffReturnType;
-
-  CoeffReturnType coeff(Index row, Index) const
-  {
-    return m_argImpl.coeff(row + rowOffset(), row + colOffset());
-  }
-
-  CoeffReturnType coeff(Index index) const
-  {
-    return m_argImpl.coeff(index + rowOffset(), index + colOffset());
-  }
-
-  Scalar& coeffRef(Index row, Index)
-  {
-    return m_argImpl.coeffRef(row + rowOffset(), row + colOffset());
-  }
-
-  Scalar& coeffRef(Index index)
-  {
-    return m_argImpl.coeffRef(index + rowOffset(), index + colOffset());
-  }
-
-protected:
-  typename evaluator<ArgType>::nestedType m_argImpl;
-  const internal::variable_if_dynamicindex<Index, XprType::DiagIndex> m_index;
-
-private:
-  EIGEN_STRONG_INLINE Index rowOffset() const { return m_index.value() > 0 ? 0 : -m_index.value(); }
-  EIGEN_STRONG_INLINE Index colOffset() const { return m_index.value() > 0 ? m_index.value() : 0; }
-};
-
-
-// ---------- SwapWrapper ----------
-
-template<typename ArgType>
-struct evaluator_impl<SwapWrapper<ArgType> >
-  : evaluator_impl_base<SwapWrapper<ArgType> >
-{
-  typedef SwapWrapper<ArgType> XprType;
-
-  evaluator_impl(const XprType& swapWrapper) 
-    : m_argImpl(swapWrapper.expression())
-  { }
- 
-  typedef typename XprType::Index Index;
-  typedef typename XprType::Scalar Scalar;
-  typedef typename XprType::Packet Packet;
-
-  // This function and the next one are needed by assign to correctly align loads/stores
-  // TODO make Assign use .data()
-  Scalar& coeffRef(Index row, Index col)
-  {
-    return m_argImpl.coeffRef(row, col);
-  }
-  
-  inline Scalar& coeffRef(Index index)
-  {
-    return m_argImpl.coeffRef(index);
-  }
-
-  template<typename OtherEvaluatorType>
-  void copyCoeff(Index row, Index col, const OtherEvaluatorType& other)
-  {
-    OtherEvaluatorType& nonconst_other = const_cast<OtherEvaluatorType&>(other);
-    Scalar tmp = m_argImpl.coeff(row, col);
-    m_argImpl.coeffRef(row, col) = nonconst_other.coeff(row, col);
-    nonconst_other.coeffRef(row, col) = tmp;
-  }
-
-  template<typename OtherEvaluatorType>
-  void copyCoeff(Index index, const OtherEvaluatorType& other)
-  {
-    OtherEvaluatorType& nonconst_other = const_cast<OtherEvaluatorType&>(other);
-    Scalar tmp = m_argImpl.coeff(index);
-    m_argImpl.coeffRef(index) = nonconst_other.coeff(index);
-    nonconst_other.coeffRef(index) = tmp;
-  }
-
-  template<int StoreMode, int LoadMode, typename OtherEvaluatorType>
-  void copyPacket(Index row, Index col, const OtherEvaluatorType& other)
-  {
-    OtherEvaluatorType& nonconst_other = const_cast<OtherEvaluatorType&>(other);
-    Packet tmp = m_argImpl.template packet<StoreMode>(row, col);
-    m_argImpl.template writePacket<StoreMode>
-      (row, col, nonconst_other.template packet<LoadMode>(row, col));
-    nonconst_other.template writePacket<LoadMode>(row, col, tmp);
-  }
-
-  template<int StoreMode, int LoadMode, typename OtherEvaluatorType>
-  void copyPacket(Index index, const OtherEvaluatorType& other)
-  {
-    OtherEvaluatorType& nonconst_other = const_cast<OtherEvaluatorType&>(other);
-    Packet tmp = m_argImpl.template packet<StoreMode>(index);
-    m_argImpl.template writePacket<StoreMode>
-      (index, nonconst_other.template packet<LoadMode>(index));
-    nonconst_other.template writePacket<LoadMode>(index, tmp);
-  }
-
-protected:
-  typename evaluator<ArgType>::nestedType m_argImpl;
-};
-
-
-// ---------- SelfCwiseBinaryOp ----------
-
-template<typename BinaryOp, typename LhsXpr, typename RhsXpr>
-struct evaluator_impl<SelfCwiseBinaryOp<BinaryOp, LhsXpr, RhsXpr> >
-  : evaluator_impl_base<SelfCwiseBinaryOp<BinaryOp, LhsXpr, RhsXpr> >
-{
-  typedef SelfCwiseBinaryOp<BinaryOp, LhsXpr, RhsXpr> XprType;
-
-  evaluator_impl(const XprType& selfCwiseBinaryOp) 
-    : m_argImpl(selfCwiseBinaryOp.expression()),
-      m_functor(selfCwiseBinaryOp.functor())
-  { }
- 
-  typedef typename XprType::Index Index;
-  typedef typename XprType::Scalar Scalar;
-  typedef typename XprType::Packet Packet;
-
-  // This function and the next one are needed by assign to correctly align loads/stores
-  // TODO make Assign use .data()
-  Scalar& coeffRef(Index row, Index col)
-  {
-    return m_argImpl.coeffRef(row, col);
-  }
-  
-  inline Scalar& coeffRef(Index index)
-  {
-    return m_argImpl.coeffRef(index);
-  }
-
-  template<typename OtherEvaluatorType>
-  void copyCoeff(Index row, Index col, const OtherEvaluatorType& other)
-  {
-    Scalar& tmp = m_argImpl.coeffRef(row, col);
-    tmp = m_functor(tmp, other.coeff(row, col));
-  }
-
-  template<typename OtherEvaluatorType>
-  void copyCoeff(Index index, const OtherEvaluatorType& other)
-  {
-    Scalar& tmp = m_argImpl.coeffRef(index);
-    tmp = m_functor(tmp, other.coeff(index));
-  }
-
-  template<int StoreMode, int LoadMode, typename OtherEvaluatorType>
-  void copyPacket(Index row, Index col, const OtherEvaluatorType& other)
-  {
-    const Packet res = m_functor.packetOp(m_argImpl.template packet<StoreMode>(row, col),
-					  other.template packet<LoadMode>(row, col));
-    m_argImpl.template writePacket<StoreMode>(row, col, res);
-  }
-
-  template<int StoreMode, int LoadMode, typename OtherEvaluatorType>
-  void copyPacket(Index index, const OtherEvaluatorType& other)
-  {
-    const Packet res = m_functor.packetOp(m_argImpl.template packet<StoreMode>(index),
-					  other.template packet<LoadMode>(index));
-    m_argImpl.template writePacket<StoreMode>(index, res);
-  }
-
-protected:
-  typename evaluator<LhsXpr>::nestedType m_argImpl;
-  const BinaryOp m_functor;
-};
-
-
-} // namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_COREEVALUATORS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/CwiseBinaryOp.h b/vendor/eigen-3.1.91/Eigen/src/Core/CwiseBinaryOp.h
deleted file mode 100644
index 586f77a..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/CwiseBinaryOp.h
+++ /dev/null
@@ -1,229 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_CWISE_BINARY_OP_H
-#define EIGEN_CWISE_BINARY_OP_H
-
-namespace Eigen {
-
-/** \class CwiseBinaryOp
-  * \ingroup Core_Module
-  *
-  * \brief Generic expression where a coefficient-wise binary operator is applied to two expressions
-  *
-  * \param BinaryOp template functor implementing the operator
-  * \param Lhs the type of the left-hand side
-  * \param Rhs the type of the right-hand side
-  *
-  * This class represents an expression  where a coefficient-wise binary operator is applied to two expressions.
-  * It is the return type of binary operators, by which we mean only those binary operators where
-  * both the left-hand side and the right-hand side are Eigen expressions.
-  * For example, the return type of matrix1+matrix2 is a CwiseBinaryOp.
-  *
-  * Most of the time, this is the only way that it is used, so you typically don't have to name
-  * CwiseBinaryOp types explicitly.
-  *
-  * \sa MatrixBase::binaryExpr(const MatrixBase<OtherDerived> &,const CustomBinaryOp &) const, class CwiseUnaryOp, class CwiseNullaryOp
-  */
-
-namespace internal {
-template<typename BinaryOp, typename Lhs, typename Rhs>
-struct traits<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
-{
-  // we must not inherit from traits<Lhs> since it has
-  // the potential to cause problems with MSVC
-  typedef typename remove_all<Lhs>::type Ancestor;
-  typedef typename traits<Ancestor>::XprKind XprKind;
-  enum {
-    RowsAtCompileTime = traits<Ancestor>::RowsAtCompileTime,
-    ColsAtCompileTime = traits<Ancestor>::ColsAtCompileTime,
-    MaxRowsAtCompileTime = traits<Ancestor>::MaxRowsAtCompileTime,
-    MaxColsAtCompileTime = traits<Ancestor>::MaxColsAtCompileTime
-  };
-
-  // even though we require Lhs and Rhs to have the same scalar type (see CwiseBinaryOp constructor),
-  // we still want to handle the case when the result type is different.
-  typedef typename result_of<
-                     BinaryOp(
-                       typename Lhs::Scalar,
-                       typename Rhs::Scalar
-                     )
-                   >::type Scalar;
-  typedef typename promote_storage_type<typename traits<Lhs>::StorageKind,
-                                           typename traits<Rhs>::StorageKind>::ret StorageKind;
-  typedef typename promote_index_type<typename traits<Lhs>::Index,
-                                         typename traits<Rhs>::Index>::type Index;
-  typedef typename Lhs::Nested LhsNested;
-  typedef typename Rhs::Nested RhsNested;
-  typedef typename remove_reference<LhsNested>::type _LhsNested;
-  typedef typename remove_reference<RhsNested>::type _RhsNested;
-  enum {
-    LhsCoeffReadCost = _LhsNested::CoeffReadCost,
-    RhsCoeffReadCost = _RhsNested::CoeffReadCost,
-    LhsFlags = _LhsNested::Flags,
-    RhsFlags = _RhsNested::Flags,
-    SameType = is_same<typename _LhsNested::Scalar,typename _RhsNested::Scalar>::value,
-    StorageOrdersAgree = (int(Lhs::Flags)&RowMajorBit)==(int(Rhs::Flags)&RowMajorBit),
-    Flags0 = (int(LhsFlags) | int(RhsFlags)) & (
-        HereditaryBits
-      | (int(LhsFlags) & int(RhsFlags) &
-           ( AlignedBit
-           | (StorageOrdersAgree ? LinearAccessBit : 0)
-           | (functor_traits<BinaryOp>::PacketAccess && StorageOrdersAgree && SameType ? PacketAccessBit : 0)
-           )
-        )
-     ),
-    Flags = (Flags0 & ~RowMajorBit) | (LhsFlags & RowMajorBit),
-    CoeffReadCost = LhsCoeffReadCost + RhsCoeffReadCost + functor_traits<BinaryOp>::Cost
-  };
-};
-} // end namespace internal
-
-// we require Lhs and Rhs to have the same scalar type. Currently there is no example of a binary functor
-// that would take two operands of different types. If there were such an example, then this check should be
-// moved to the BinaryOp functors, on a per-case basis. This would however require a change in the BinaryOp functors, as
-// currently they take only one typename Scalar template parameter.
-// It is tempting to always allow mixing different types but remember that this is often impossible in the vectorized paths.
-// So allowing mixing different types gives very unexpected errors when enabling vectorization, when the user tries to
-// add together a float matrix and a double matrix.
-#define EIGEN_CHECK_BINARY_COMPATIBILIY(BINOP,LHS,RHS) \
-  EIGEN_STATIC_ASSERT((internal::functor_is_product_like<BINOP>::ret \
-                        ? int(internal::scalar_product_traits<LHS, RHS>::Defined) \
-                        : int(internal::is_same<LHS, RHS>::value)), \
-    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
-
-template<typename BinaryOp, typename Lhs, typename Rhs, typename StorageKind>
-class CwiseBinaryOpImpl;
-
-template<typename BinaryOp, typename Lhs, typename Rhs>
-class CwiseBinaryOp : internal::no_assignment_operator,
-  public CwiseBinaryOpImpl<
-          BinaryOp, Lhs, Rhs,
-          typename internal::promote_storage_type<typename internal::traits<Lhs>::StorageKind,
-                                           typename internal::traits<Rhs>::StorageKind>::ret>
-{
-  public:
-
-    typedef typename CwiseBinaryOpImpl<
-        BinaryOp, Lhs, Rhs,
-        typename internal::promote_storage_type<typename internal::traits<Lhs>::StorageKind,
-                                         typename internal::traits<Rhs>::StorageKind>::ret>::Base Base;
-    EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseBinaryOp)
-
-    typedef typename internal::nested<Lhs>::type LhsNested;
-    typedef typename internal::nested<Rhs>::type RhsNested;
-    typedef typename internal::remove_reference<LhsNested>::type _LhsNested;
-    typedef typename internal::remove_reference<RhsNested>::type _RhsNested;
-
-    EIGEN_STRONG_INLINE CwiseBinaryOp(const Lhs& aLhs, const Rhs& aRhs, const BinaryOp& func = BinaryOp())
-      : m_lhs(aLhs), m_rhs(aRhs), m_functor(func)
-    {
-      EIGEN_CHECK_BINARY_COMPATIBILIY(BinaryOp,typename Lhs::Scalar,typename Rhs::Scalar);
-      // require the sizes to match
-      EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Lhs, Rhs)
-      eigen_assert(aLhs.rows() == aRhs.rows() && aLhs.cols() == aRhs.cols());
-    }
-
-    EIGEN_STRONG_INLINE Index rows() const {
-      // return the fixed size type if available to enable compile time optimizations
-      if (internal::traits<typename internal::remove_all<LhsNested>::type>::RowsAtCompileTime==Dynamic)
-        return m_rhs.rows();
-      else
-        return m_lhs.rows();
-    }
-    EIGEN_STRONG_INLINE Index cols() const {
-      // return the fixed size type if available to enable compile time optimizations
-      if (internal::traits<typename internal::remove_all<LhsNested>::type>::ColsAtCompileTime==Dynamic)
-        return m_rhs.cols();
-      else
-        return m_lhs.cols();
-    }
-
-    /** \returns the left hand side nested expression */
-    const _LhsNested& lhs() const { return m_lhs; }
-    /** \returns the right hand side nested expression */
-    const _RhsNested& rhs() const { return m_rhs; }
-    /** \returns the functor representing the binary operation */
-    const BinaryOp& functor() const { return m_functor; }
-
-  protected:
-    LhsNested m_lhs;
-    RhsNested m_rhs;
-    const BinaryOp m_functor;
-};
-
-template<typename BinaryOp, typename Lhs, typename Rhs>
-class CwiseBinaryOpImpl<BinaryOp, Lhs, Rhs, Dense>
-  : public internal::dense_xpr_base<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >::type
-{
-    typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> Derived;
-  public:
-
-    typedef typename internal::dense_xpr_base<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >::type Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE( Derived )
-
-    EIGEN_STRONG_INLINE const Scalar coeff(Index rowId, Index colId) const
-    {
-      return derived().functor()(derived().lhs().coeff(rowId, colId),
-                                 derived().rhs().coeff(rowId, colId));
-    }
-
-    template<int LoadMode>
-    EIGEN_STRONG_INLINE PacketScalar packet(Index rowId, Index colId) const
-    {
-      return derived().functor().packetOp(derived().lhs().template packet<LoadMode>(rowId, colId),
-                                          derived().rhs().template packet<LoadMode>(rowId, colId));
-    }
-
-    EIGEN_STRONG_INLINE const Scalar coeff(Index index) const
-    {
-      return derived().functor()(derived().lhs().coeff(index),
-                                 derived().rhs().coeff(index));
-    }
-
-    template<int LoadMode>
-    EIGEN_STRONG_INLINE PacketScalar packet(Index index) const
-    {
-      return derived().functor().packetOp(derived().lhs().template packet<LoadMode>(index),
-                                          derived().rhs().template packet<LoadMode>(index));
-    }
-};
-
-/** replaces \c *this by \c *this - \a other.
-  *
-  * \returns a reference to \c *this
-  */
-template<typename Derived>
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE Derived &
-MatrixBase<Derived>::operator-=(const MatrixBase<OtherDerived> &other)
-{
-  SelfCwiseBinaryOp<internal::scalar_difference_op<Scalar>, Derived, OtherDerived> tmp(derived());
-  tmp = other.derived();
-  return derived();
-}
-
-/** replaces \c *this by \c *this + \a other.
-  *
-  * \returns a reference to \c *this
-  */
-template<typename Derived>
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE Derived &
-MatrixBase<Derived>::operator+=(const MatrixBase<OtherDerived>& other)
-{
-  SelfCwiseBinaryOp<internal::scalar_sum_op<Scalar>, Derived, OtherDerived> tmp(derived());
-  tmp = other.derived();
-  return derived();
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_CWISE_BINARY_OP_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/CwiseUnaryOp.h b/vendor/eigen-3.1.91/Eigen/src/Core/CwiseUnaryOp.h
deleted file mode 100644
index f2de749..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/CwiseUnaryOp.h
+++ /dev/null
@@ -1,126 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_CWISE_UNARY_OP_H
-#define EIGEN_CWISE_UNARY_OP_H
-
-namespace Eigen { 
-
-/** \class CwiseUnaryOp
-  * \ingroup Core_Module
-  *
-  * \brief Generic expression where a coefficient-wise unary operator is applied to an expression
-  *
-  * \param UnaryOp template functor implementing the operator
-  * \param XprType the type of the expression to which we are applying the unary operator
-  *
-  * This class represents an expression where a unary operator is applied to an expression.
-  * It is the return type of all operations taking exactly 1 input expression, regardless of the
-  * presence of other inputs such as scalars. For example, the operator* in the expression 3*matrix
-  * is considered unary, because only the right-hand side is an expression, and its
-  * return type is a specialization of CwiseUnaryOp.
-  *
-  * Most of the time, this is the only way that it is used, so you typically don't have to name
-  * CwiseUnaryOp types explicitly.
-  *
-  * \sa MatrixBase::unaryExpr(const CustomUnaryOp &) const, class CwiseBinaryOp, class CwiseNullaryOp
-  */
-
-namespace internal {
-template<typename UnaryOp, typename XprType>
-struct traits<CwiseUnaryOp<UnaryOp, XprType> >
- : traits<XprType>
-{
-  typedef typename result_of<
-                     UnaryOp(typename XprType::Scalar)
-                   >::type Scalar;
-  typedef typename XprType::Nested XprTypeNested;
-  typedef typename remove_reference<XprTypeNested>::type _XprTypeNested;
-  enum {
-    Flags = _XprTypeNested::Flags & (
-      HereditaryBits | LinearAccessBit | AlignedBit
-      | (functor_traits<UnaryOp>::PacketAccess ? PacketAccessBit : 0)),
-    CoeffReadCost = _XprTypeNested::CoeffReadCost + functor_traits<UnaryOp>::Cost
-  };
-};
-}
-
-template<typename UnaryOp, typename XprType, typename StorageKind>
-class CwiseUnaryOpImpl;
-
-template<typename UnaryOp, typename XprType>
-class CwiseUnaryOp : internal::no_assignment_operator,
-  public CwiseUnaryOpImpl<UnaryOp, XprType, typename internal::traits<XprType>::StorageKind>
-{
-  public:
-
-    typedef typename CwiseUnaryOpImpl<UnaryOp, XprType,typename internal::traits<XprType>::StorageKind>::Base Base;
-    EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseUnaryOp)
-
-    inline CwiseUnaryOp(const XprType& xpr, const UnaryOp& func = UnaryOp())
-      : m_xpr(xpr), m_functor(func) {}
-
-    EIGEN_STRONG_INLINE Index rows() const { return m_xpr.rows(); }
-    EIGEN_STRONG_INLINE Index cols() const { return m_xpr.cols(); }
-
-    /** \returns the functor representing the unary operation */
-    const UnaryOp& functor() const { return m_functor; }
-
-    /** \returns the nested expression */
-    const typename internal::remove_all<typename XprType::Nested>::type&
-    nestedExpression() const { return m_xpr; }
-
-    /** \returns the nested expression */
-    typename internal::remove_all<typename XprType::Nested>::type&
-    nestedExpression() { return m_xpr.const_cast_derived(); }
-
-  protected:
-    typename XprType::Nested m_xpr;
-    const UnaryOp m_functor;
-};
-
-// This is the generic implementation for dense storage.
-// It can be used for any expression types implementing the dense concept.
-template<typename UnaryOp, typename XprType>
-class CwiseUnaryOpImpl<UnaryOp,XprType,Dense>
-  : public internal::dense_xpr_base<CwiseUnaryOp<UnaryOp, XprType> >::type
-{
-  public:
-
-    typedef CwiseUnaryOp<UnaryOp, XprType> Derived;
-    typedef typename internal::dense_xpr_base<CwiseUnaryOp<UnaryOp, XprType> >::type Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
-
-    EIGEN_STRONG_INLINE const Scalar coeff(Index rowId, Index colId) const
-    {
-      return derived().functor()(derived().nestedExpression().coeff(rowId, colId));
-    }
-
-    template<int LoadMode>
-    EIGEN_STRONG_INLINE PacketScalar packet(Index rowId, Index colId) const
-    {
-      return derived().functor().packetOp(derived().nestedExpression().template packet<LoadMode>(rowId, colId));
-    }
-
-    EIGEN_STRONG_INLINE const Scalar coeff(Index index) const
-    {
-      return derived().functor()(derived().nestedExpression().coeff(index));
-    }
-
-    template<int LoadMode>
-    EIGEN_STRONG_INLINE PacketScalar packet(Index index) const
-    {
-      return derived().functor().packetOp(derived().nestedExpression().template packet<LoadMode>(index));
-    }
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_CWISE_UNARY_OP_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/CwiseUnaryView.h b/vendor/eigen-3.1.91/Eigen/src/Core/CwiseUnaryView.h
deleted file mode 100644
index 9f9d497..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/CwiseUnaryView.h
+++ /dev/null
@@ -1,139 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_CWISE_UNARY_VIEW_H
-#define EIGEN_CWISE_UNARY_VIEW_H
-
-namespace Eigen {
-
-/** \class CwiseUnaryView
-  * \ingroup Core_Module
-  *
-  * \brief Generic lvalue expression of a coefficient-wise unary operator of a matrix or a vector
-  *
-  * \param ViewOp template functor implementing the view
-  * \param MatrixType the type of the matrix we are applying the unary operator
-  *
-  * This class represents a lvalue expression of a generic unary view operator of a matrix or a vector.
-  * It is the return type of real() and imag(), and most of the time this is the only way it is used.
-  *
-  * \sa MatrixBase::unaryViewExpr(const CustomUnaryOp &) const, class CwiseUnaryOp
-  */
-
-namespace internal {
-template<typename ViewOp, typename MatrixType>
-struct traits<CwiseUnaryView<ViewOp, MatrixType> >
- : traits<MatrixType>
-{
-  typedef typename result_of<
-                     ViewOp(typename traits<MatrixType>::Scalar)
-                   >::type Scalar;
-  typedef typename MatrixType::Nested MatrixTypeNested;
-  typedef typename remove_all<MatrixTypeNested>::type _MatrixTypeNested;
-  enum {
-    Flags = (traits<_MatrixTypeNested>::Flags & (HereditaryBits | LvalueBit | LinearAccessBit | DirectAccessBit)),
-    CoeffReadCost = traits<_MatrixTypeNested>::CoeffReadCost + functor_traits<ViewOp>::Cost,
-    MatrixTypeInnerStride =  inner_stride_at_compile_time<MatrixType>::ret,
-    // need to cast the sizeof's from size_t to int explicitly, otherwise:
-    // "error: no integral type can represent all of the enumerator values
-    InnerStrideAtCompileTime = MatrixTypeInnerStride == Dynamic
-                             ? int(Dynamic)
-                             : int(MatrixTypeInnerStride) * int(sizeof(typename traits<MatrixType>::Scalar) / sizeof(Scalar)),
-    OuterStrideAtCompileTime = outer_stride_at_compile_time<MatrixType>::ret == Dynamic
-                             ? int(Dynamic)
-                             : outer_stride_at_compile_time<MatrixType>::ret * int(sizeof(typename traits<MatrixType>::Scalar) / sizeof(Scalar))
-  };
-};
-}
-
-template<typename ViewOp, typename MatrixType, typename StorageKind>
-class CwiseUnaryViewImpl;
-
-template<typename ViewOp, typename MatrixType>
-class CwiseUnaryView : internal::no_assignment_operator,
-  public CwiseUnaryViewImpl<ViewOp, MatrixType, typename internal::traits<MatrixType>::StorageKind>
-{
-  public:
-
-    typedef typename CwiseUnaryViewImpl<ViewOp, MatrixType,typename internal::traits<MatrixType>::StorageKind>::Base Base;
-    EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseUnaryView)
-
-    inline CwiseUnaryView(const MatrixType& mat, const ViewOp& func = ViewOp())
-      : m_matrix(mat), m_functor(func) {}
-
-    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(CwiseUnaryView)
-
-    EIGEN_STRONG_INLINE Index rows() const { return m_matrix.rows(); }
-    EIGEN_STRONG_INLINE Index cols() const { return m_matrix.cols(); }
-
-    /** \returns the functor representing unary operation */
-    const ViewOp& functor() const { return m_functor; }
-
-    /** \returns the nested expression */
-    const typename internal::remove_all<typename MatrixType::Nested>::type&
-    nestedExpression() const { return m_matrix; }
-
-    /** \returns the nested expression */
-    typename internal::remove_all<typename MatrixType::Nested>::type&
-    nestedExpression() { return m_matrix.const_cast_derived(); }
-
-  protected:
-    // FIXME changed from MatrixType::Nested because of a weird compilation error with sun CC
-    typename internal::nested<MatrixType>::type m_matrix;
-    ViewOp m_functor;
-};
-
-template<typename ViewOp, typename MatrixType>
-class CwiseUnaryViewImpl<ViewOp,MatrixType,Dense>
-  : public internal::dense_xpr_base< CwiseUnaryView<ViewOp, MatrixType> >::type
-{
-  public:
-
-    typedef CwiseUnaryView<ViewOp, MatrixType> Derived;
-    typedef typename internal::dense_xpr_base< CwiseUnaryView<ViewOp, MatrixType> >::type Base;
-
-    EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
-    
-    inline Scalar* data() { return &coeffRef(0); }
-    inline const Scalar* data() const { return &coeff(0); }
-
-    inline Index innerStride() const
-    {
-      return derived().nestedExpression().innerStride() * sizeof(typename internal::traits<MatrixType>::Scalar) / sizeof(Scalar);
-    }
-
-    inline Index outerStride() const
-    {
-      return derived().nestedExpression().outerStride() * sizeof(typename internal::traits<MatrixType>::Scalar) / sizeof(Scalar);
-    }
-
-    EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
-    {
-      return derived().functor()(derived().nestedExpression().coeff(row, col));
-    }
-
-    EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
-    {
-      return derived().functor()(derived().nestedExpression().coeff(index));
-    }
-
-    EIGEN_STRONG_INLINE Scalar& coeffRef(Index row, Index col)
-    {
-      return derived().functor()(const_cast_derived().nestedExpression().coeffRef(row, col));
-    }
-
-    EIGEN_STRONG_INLINE Scalar& coeffRef(Index index)
-    {
-      return derived().functor()(const_cast_derived().nestedExpression().coeffRef(index));
-    }
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_CWISE_UNARY_VIEW_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/DenseBase.h b/vendor/eigen-3.1.91/Eigen/src/Core/DenseBase.h
deleted file mode 100644
index dfdf6c4..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/DenseBase.h
+++ /dev/null
@@ -1,511 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2007-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_DENSEBASE_H
-#define EIGEN_DENSEBASE_H
-
-namespace Eigen {
-
-/** \class DenseBase
-  * \ingroup Core_Module
-  *
-  * \brief Base class for all dense matrices, vectors, and arrays
-  *
-  * This class is the base that is inherited by all dense objects (matrix, vector, arrays,
-  * and related expression types). The common Eigen API for dense objects is contained in this class.
-  *
-  * \tparam Derived is the derived type, e.g., a matrix type or an expression.
-  *
-  * This class can be extended with the help of the plugin mechanism described on the page
-  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_DENSEBASE_PLUGIN.
-  *
-  * \sa \ref TopicClassHierarchy
-  */
-template<typename Derived> class DenseBase
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-  : public internal::special_scalar_op_base<Derived,typename internal::traits<Derived>::Scalar,
-                                     typename NumTraits<typename internal::traits<Derived>::Scalar>::Real>
-#else
-  : public DenseCoeffsBase<Derived>
-#endif // not EIGEN_PARSED_BY_DOXYGEN
-{
-  public:
-    using internal::special_scalar_op_base<Derived,typename internal::traits<Derived>::Scalar,
-                typename NumTraits<typename internal::traits<Derived>::Scalar>::Real>::operator*;
-
-    class InnerIterator;
-
-    typedef typename internal::traits<Derived>::StorageKind StorageKind;
-
-    /** \brief The type of indices 
-      * \details To change this, \c \#define the preprocessor symbol \c EIGEN_DEFAULT_DENSE_INDEX_TYPE.
-      * \sa \ref TopicPreprocessorDirectives.
-      */
-    typedef typename internal::traits<Derived>::Index Index; 
-
-    typedef typename internal::traits<Derived>::Scalar Scalar;
-    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-
-    typedef DenseCoeffsBase<Derived> Base;
-    using Base::derived;
-    using Base::const_cast_derived;
-    using Base::rows;
-    using Base::cols;
-    using Base::size;
-    using Base::rowIndexByOuterInner;
-    using Base::colIndexByOuterInner;
-    using Base::coeff;
-    using Base::coeffByOuterInner;
-    using Base::packet;
-    using Base::packetByOuterInner;
-    using Base::writePacket;
-    using Base::writePacketByOuterInner;
-    using Base::coeffRef;
-    using Base::coeffRefByOuterInner;
-    using Base::copyCoeff;
-    using Base::copyCoeffByOuterInner;
-    using Base::copyPacket;
-    using Base::copyPacketByOuterInner;
-    using Base::operator();
-    using Base::operator[];
-    using Base::x;
-    using Base::y;
-    using Base::z;
-    using Base::w;
-    using Base::stride;
-    using Base::innerStride;
-    using Base::outerStride;
-    using Base::rowStride;
-    using Base::colStride;
-    typedef typename Base::CoeffReturnType CoeffReturnType;
-
-    enum {
-
-      RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
-        /**< The number of rows at compile-time. This is just a copy of the value provided
-          * by the \a Derived type. If a value is not known at compile-time,
-          * it is set to the \a Dynamic constant.
-          * \sa MatrixBase::rows(), MatrixBase::cols(), ColsAtCompileTime, SizeAtCompileTime */
-
-      ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
-        /**< The number of columns at compile-time. This is just a copy of the value provided
-          * by the \a Derived type. If a value is not known at compile-time,
-          * it is set to the \a Dynamic constant.
-          * \sa MatrixBase::rows(), MatrixBase::cols(), RowsAtCompileTime, SizeAtCompileTime */
-
-
-      SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
-                                                   internal::traits<Derived>::ColsAtCompileTime>::ret),
-        /**< This is equal to the number of coefficients, i.e. the number of
-          * rows times the number of columns, or to \a Dynamic if this is not
-          * known at compile-time. \sa RowsAtCompileTime, ColsAtCompileTime */
-
-      MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
-        /**< This value is equal to the maximum possible number of rows that this expression
-          * might have. If this expression might have an arbitrarily high number of rows,
-          * this value is set to \a Dynamic.
-          *
-          * This value is useful to know when evaluating an expression, in order to determine
-          * whether it is possible to avoid doing a dynamic memory allocation.
-          *
-          * \sa RowsAtCompileTime, MaxColsAtCompileTime, MaxSizeAtCompileTime
-          */
-
-      MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
-        /**< This value is equal to the maximum possible number of columns that this expression
-          * might have. If this expression might have an arbitrarily high number of columns,
-          * this value is set to \a Dynamic.
-          *
-          * This value is useful to know when evaluating an expression, in order to determine
-          * whether it is possible to avoid doing a dynamic memory allocation.
-          *
-          * \sa ColsAtCompileTime, MaxRowsAtCompileTime, MaxSizeAtCompileTime
-          */
-
-      MaxSizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::MaxRowsAtCompileTime,
-                                                      internal::traits<Derived>::MaxColsAtCompileTime>::ret),
-        /**< This value is equal to the maximum possible number of coefficients that this expression
-          * might have. If this expression might have an arbitrarily high number of coefficients,
-          * this value is set to \a Dynamic.
-          *
-          * This value is useful to know when evaluating an expression, in order to determine
-          * whether it is possible to avoid doing a dynamic memory allocation.
-          *
-          * \sa SizeAtCompileTime, MaxRowsAtCompileTime, MaxColsAtCompileTime
-          */
-
-      IsVectorAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime == 1
-                           || internal::traits<Derived>::MaxColsAtCompileTime == 1,
-        /**< This is set to true if either the number of rows or the number of
-          * columns is known at compile-time to be equal to 1. Indeed, in that case,
-          * we are dealing with a column-vector (if there is only one column) or with
-          * a row-vector (if there is only one row). */
-
-      Flags = internal::traits<Derived>::Flags,
-        /**< This stores expression \ref flags flags which may or may not be inherited by new expressions
-          * constructed from this one. See the \ref flags "list of flags".
-          */
-
-      IsRowMajor = int(Flags) & RowMajorBit, /**< True if this expression has row-major storage order. */
-
-      InnerSizeAtCompileTime = int(IsVectorAtCompileTime) ? int(SizeAtCompileTime)
-                             : int(IsRowMajor) ? int(ColsAtCompileTime) : int(RowsAtCompileTime),
-
-      CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
-        /**< This is a rough measure of how expensive it is to read one coefficient from
-          * this expression.
-          */
-
-      InnerStrideAtCompileTime = internal::inner_stride_at_compile_time<Derived>::ret,
-      OuterStrideAtCompileTime = internal::outer_stride_at_compile_time<Derived>::ret
-    };
-
-    enum { ThisConstantIsPrivateInPlainObjectBase };
-
-    /** \returns the number of nonzero coefficients which is in practice the number
-      * of stored coefficients. */
-    inline Index nonZeros() const { return size(); }
-    /** \returns true if either the number of rows or the number of columns is equal to 1.
-      * In other words, this function returns
-      * \code rows()==1 || cols()==1 \endcode
-      * \sa rows(), cols(), IsVectorAtCompileTime. */
-
-    /** \returns the outer size.
-      *
-      * \note For a vector, this returns just 1. For a matrix (non-vector), this is the major dimension
-      * with respect to the \ref TopicStorageOrders "storage order", i.e., the number of columns for a
-      * column-major matrix, and the number of rows for a row-major matrix. */
-    Index outerSize() const
-    {
-      return IsVectorAtCompileTime ? 1
-           : int(IsRowMajor) ? this->rows() : this->cols();
-    }
-
-    /** \returns the inner size.
-      *
-      * \note For a vector, this is just the size. For a matrix (non-vector), this is the minor dimension
-      * with respect to the \ref TopicStorageOrders "storage order", i.e., the number of rows for a 
-      * column-major matrix, and the number of columns for a row-major matrix. */
-    Index innerSize() const
-    {
-      return IsVectorAtCompileTime ? this->size()
-           : int(IsRowMajor) ? this->cols() : this->rows();
-    }
-
-    /** Only plain matrices/arrays, not expressions, may be resized; therefore the only useful resize methods are
-      * Matrix::resize() and Array::resize(). The present method only asserts that the new size equals the old size, and does
-      * nothing else.
-      */
-    void resize(Index newSize)
-    {
-      EIGEN_ONLY_USED_FOR_DEBUG(newSize);
-      eigen_assert(newSize == this->size()
-                && "DenseBase::resize() does not actually allow to resize.");
-    }
-    /** Only plain matrices/arrays, not expressions, may be resized; therefore the only useful resize methods are
-      * Matrix::resize() and Array::resize(). The present method only asserts that the new size equals the old size, and does
-      * nothing else.
-      */
-    void resize(Index nbRows, Index nbCols)
-    {
-      EIGEN_ONLY_USED_FOR_DEBUG(nbRows);
-      EIGEN_ONLY_USED_FOR_DEBUG(nbCols);
-      eigen_assert(nbRows == this->rows() && nbCols == this->cols()
-                && "DenseBase::resize() does not actually allow to resize.");
-    }
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-
-    /** \internal Represents a matrix with all coefficients equal to one another*/
-    typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,Derived> ConstantReturnType;
-    /** \internal Represents a vector with linearly spaced coefficients that allows sequential access only. */
-    typedef CwiseNullaryOp<internal::linspaced_op<Scalar,false>,Derived> SequentialLinSpacedReturnType;
-    /** \internal Represents a vector with linearly spaced coefficients that allows random access. */
-    typedef CwiseNullaryOp<internal::linspaced_op<Scalar,true>,Derived> RandomAccessLinSpacedReturnType;
-    /** \internal the return type of MatrixBase::eigenvalues() */
-    typedef Matrix<typename NumTraits<typename internal::traits<Derived>::Scalar>::Real, internal::traits<Derived>::ColsAtCompileTime, 1> EigenvaluesReturnType;
-
-#endif // not EIGEN_PARSED_BY_DOXYGEN
-
-    /** Copies \a other into *this. \returns a reference to *this. */
-    template<typename OtherDerived>
-    Derived& operator=(const DenseBase<OtherDerived>& other);
-
-    /** Special case of the template operator=, in order to prevent the compiler
-      * from generating a default operator= (issue hit with g++ 4.1)
-      */
-    Derived& operator=(const DenseBase& other);
-
-    template<typename OtherDerived>
-    Derived& operator=(const EigenBase<OtherDerived> &other);
-
-    template<typename OtherDerived>
-    Derived& operator+=(const EigenBase<OtherDerived> &other);
-
-    template<typename OtherDerived>
-    Derived& operator-=(const EigenBase<OtherDerived> &other);
-
-    template<typename OtherDerived>
-    Derived& operator=(const ReturnByValue<OtherDerived>& func);
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** Copies \a other into *this without evaluating other. \returns a reference to *this. */
-    template<typename OtherDerived>
-    Derived& lazyAssign(const DenseBase<OtherDerived>& other);
-#endif // not EIGEN_PARSED_BY_DOXYGEN
-
-    CommaInitializer<Derived> operator<< (const Scalar& s);
-
-    template<unsigned int Added,unsigned int Removed>
-    const Flagged<Derived, Added, Removed> flagged() const;
-
-    template<typename OtherDerived>
-    CommaInitializer<Derived> operator<< (const DenseBase<OtherDerived>& other);
-
-    Eigen::Transpose<Derived> transpose();
-    typedef const Transpose<const Derived> ConstTransposeReturnType;
-    ConstTransposeReturnType transpose() const;
-    void transposeInPlace();
-#ifndef EIGEN_NO_DEBUG
-  protected:
-    template<typename OtherDerived>
-    void checkTransposeAliasing(const OtherDerived& other) const;
-  public:
-#endif
-
-
-    static const ConstantReturnType
-    Constant(Index rows, Index cols, const Scalar& value);
-    static const ConstantReturnType
-    Constant(Index size, const Scalar& value);
-    static const ConstantReturnType
-    Constant(const Scalar& value);
-
-    static const SequentialLinSpacedReturnType
-    LinSpaced(Sequential_t, Index size, const Scalar& low, const Scalar& high);
-    static const RandomAccessLinSpacedReturnType
-    LinSpaced(Index size, const Scalar& low, const Scalar& high);
-    static const SequentialLinSpacedReturnType
-    LinSpaced(Sequential_t, const Scalar& low, const Scalar& high);
-    static const RandomAccessLinSpacedReturnType
-    LinSpaced(const Scalar& low, const Scalar& high);
-
-    template<typename CustomNullaryOp>
-    static const CwiseNullaryOp<CustomNullaryOp, Derived>
-    NullaryExpr(Index rows, Index cols, const CustomNullaryOp& func);
-    template<typename CustomNullaryOp>
-    static const CwiseNullaryOp<CustomNullaryOp, Derived>
-    NullaryExpr(Index size, const CustomNullaryOp& func);
-    template<typename CustomNullaryOp>
-    static const CwiseNullaryOp<CustomNullaryOp, Derived>
-    NullaryExpr(const CustomNullaryOp& func);
-
-    static const ConstantReturnType Zero(Index rows, Index cols);
-    static const ConstantReturnType Zero(Index size);
-    static const ConstantReturnType Zero();
-    static const ConstantReturnType Ones(Index rows, Index cols);
-    static const ConstantReturnType Ones(Index size);
-    static const ConstantReturnType Ones();
-
-    void fill(const Scalar& value);
-    Derived& setConstant(const Scalar& value);
-    Derived& setLinSpaced(Index size, const Scalar& low, const Scalar& high);
-    Derived& setLinSpaced(const Scalar& low, const Scalar& high);
-    Derived& setZero();
-    Derived& setOnes();
-    Derived& setRandom();
-
-    template<typename OtherDerived>
-    bool isApprox(const DenseBase<OtherDerived>& other,
-                  const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
-    bool isMuchSmallerThan(const RealScalar& other,
-                           const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
-    template<typename OtherDerived>
-    bool isMuchSmallerThan(const DenseBase<OtherDerived>& other,
-                           const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
-
-    bool isApproxToConstant(const Scalar& value, const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
-    bool isConstant(const Scalar& value, const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
-    bool isZero(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
-    bool isOnes(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
-    
-    inline bool hasNaN() const;
-    inline bool isFinite() const;
-
-    inline Derived& operator*=(const Scalar& other);
-    inline Derived& operator/=(const Scalar& other);
-
-    typedef typename internal::add_const_on_value_type<typename internal::eval<Derived>::type>::type EvalReturnType;
-    /** \returns the matrix or vector obtained by evaluating this expression.
-      *
-      * Notice that in the case of a plain matrix or vector (not an expression) this function just returns
-      * a const reference, in order to avoid a useless copy.
-      */
-    EIGEN_STRONG_INLINE EvalReturnType eval() const
-    {
-      // Even though MSVC does not honor strong inlining when the return type
-      // is a dynamic matrix, we desperately need strong inlining for fixed
-      // size types on MSVC.
-      return typename internal::eval<Derived>::type(derived());
-    }
-
-    /** swaps *this with the expression \a other.
-      *
-      */
-    template<typename OtherDerived>
-    void swap(const DenseBase<OtherDerived>& other,
-              int = OtherDerived::ThisConstantIsPrivateInPlainObjectBase)
-    {
-      SwapWrapper<Derived>(derived()).lazyAssign(other.derived());
-    }
-
-    /** swaps *this with the matrix or array \a other.
-      *
-      */
-    template<typename OtherDerived>
-    void swap(PlainObjectBase<OtherDerived>& other)
-    {
-      SwapWrapper<Derived>(derived()).lazyAssign(other.derived());
-    }
-
-
-    inline const NestByValue<Derived> nestByValue() const;
-    inline const ForceAlignedAccess<Derived> forceAlignedAccess() const;
-    inline ForceAlignedAccess<Derived> forceAlignedAccess();
-    template<bool Enable> inline const typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type forceAlignedAccessIf() const;
-    template<bool Enable> inline typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type forceAlignedAccessIf();
-
-    Scalar sum() const;
-    Scalar mean() const;
-    Scalar trace() const;
-
-    Scalar prod() const;
-
-    typename internal::traits<Derived>::Scalar minCoeff() const;
-    typename internal::traits<Derived>::Scalar maxCoeff() const;
-
-    template<typename IndexType>
-    typename internal::traits<Derived>::Scalar minCoeff(IndexType* row, IndexType* col) const;
-    template<typename IndexType>
-    typename internal::traits<Derived>::Scalar maxCoeff(IndexType* row, IndexType* col) const;
-    template<typename IndexType>
-    typename internal::traits<Derived>::Scalar minCoeff(IndexType* index) const;
-    template<typename IndexType>
-    typename internal::traits<Derived>::Scalar maxCoeff(IndexType* index) const;
-
-    template<typename BinaryOp>
-    typename internal::result_of<BinaryOp(typename internal::traits<Derived>::Scalar)>::type
-    redux(const BinaryOp& func) const;
-
-    template<typename Visitor>
-    void visit(Visitor& func) const;
-
-    inline const WithFormat<Derived> format(const IOFormat& fmt) const;
-
-    /** \returns the unique coefficient of a 1x1 expression */
-    CoeffReturnType value() const
-    {
-      EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
-      eigen_assert(this->rows() == 1 && this->cols() == 1);
-      return derived().coeff(0,0);
-    }
-
-    bool all(void) const;
-    bool any(void) const;
-    Index count() const;
-
-    typedef VectorwiseOp<Derived, Horizontal> RowwiseReturnType;
-    typedef const VectorwiseOp<const Derived, Horizontal> ConstRowwiseReturnType;
-    typedef VectorwiseOp<Derived, Vertical> ColwiseReturnType;
-    typedef const VectorwiseOp<const Derived, Vertical> ConstColwiseReturnType;
-
-    ConstRowwiseReturnType rowwise() const;
-    RowwiseReturnType rowwise();
-    ConstColwiseReturnType colwise() const;
-    ColwiseReturnType colwise();
-
-    static const CwiseNullaryOp<internal::scalar_random_op<Scalar>,Derived> Random(Index rows, Index cols);
-    static const CwiseNullaryOp<internal::scalar_random_op<Scalar>,Derived> Random(Index size);
-    static const CwiseNullaryOp<internal::scalar_random_op<Scalar>,Derived> Random();
-
-    template<typename ThenDerived,typename ElseDerived>
-    const Select<Derived,ThenDerived,ElseDerived>
-    select(const DenseBase<ThenDerived>& thenMatrix,
-           const DenseBase<ElseDerived>& elseMatrix) const;
-
-    template<typename ThenDerived>
-    inline const Select<Derived,ThenDerived, typename ThenDerived::ConstantReturnType>
-    select(const DenseBase<ThenDerived>& thenMatrix, const typename ThenDerived::Scalar& elseScalar) const;
-
-    template<typename ElseDerived>
-    inline const Select<Derived, typename ElseDerived::ConstantReturnType, ElseDerived >
-    select(const typename ElseDerived::Scalar& thenScalar, const DenseBase<ElseDerived>& elseMatrix) const;
-
-    template<int p> RealScalar lpNorm() const;
-
-    template<int RowFactor, int ColFactor>
-    const Replicate<Derived,RowFactor,ColFactor> replicate() const;
-    const Replicate<Derived,Dynamic,Dynamic> replicate(Index rowFacor,Index colFactor) const;
-
-    typedef Reverse<Derived, BothDirections> ReverseReturnType;
-    typedef const Reverse<const Derived, BothDirections> ConstReverseReturnType;
-    ReverseReturnType reverse();
-    ConstReverseReturnType reverse() const;
-    void reverseInPlace();
-
-#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::DenseBase
-#   include "../plugins/BlockMethods.h"
-#   ifdef EIGEN_DENSEBASE_PLUGIN
-#     include EIGEN_DENSEBASE_PLUGIN
-#   endif
-#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
-
-#ifdef EIGEN2_SUPPORT
-
-    Block<Derived> corner(CornerType type, Index cRows, Index cCols);
-    const Block<Derived> corner(CornerType type, Index cRows, Index cCols) const;
-    template<int CRows, int CCols>
-    Block<Derived, CRows, CCols> corner(CornerType type);
-    template<int CRows, int CCols>
-    const Block<Derived, CRows, CCols> corner(CornerType type) const;
-
-#endif // EIGEN2_SUPPORT
-
-
-    // disable the use of evalTo for dense objects with a nice compilation error
-    template<typename Dest> inline void evalTo(Dest& ) const
-    {
-      EIGEN_STATIC_ASSERT((internal::is_same<Dest,void>::value),THE_EVAL_EVALTO_FUNCTION_SHOULD_NEVER_BE_CALLED_FOR_DENSE_OBJECTS);
-    }
-
-  protected:
-    /** Default constructor. Do nothing. */
-    DenseBase()
-    {
-      /* Just checks for self-consistency of the flags.
-       * Only do it when debugging Eigen, as this borders on paranoiac and could slow compilation down
-       */
-#ifdef EIGEN_INTERNAL_DEBUGGING
-      EIGEN_STATIC_ASSERT((EIGEN_IMPLIES(MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1, int(IsRowMajor))
-                        && EIGEN_IMPLIES(MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1, int(!IsRowMajor))),
-                          INVALID_STORAGE_ORDER_FOR_THIS_VECTOR_EXPRESSION)
-#endif
-    }
-
-  private:
-    explicit DenseBase(int);
-    DenseBase(int,int);
-    template<typename OtherDerived> explicit DenseBase(const DenseBase<OtherDerived>&);
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_DENSEBASE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/DenseStorage.h b/vendor/eigen-3.1.91/Eigen/src/Core/DenseStorage.h
deleted file mode 100644
index 894dcf2..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/DenseStorage.h
+++ /dev/null
@@ -1,331 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2010 Hauke Heibel <hauke.heibel at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_MATRIXSTORAGE_H
-#define EIGEN_MATRIXSTORAGE_H
-
-#ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
-  #define EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN EIGEN_DENSE_STORAGE_CTOR_PLUGIN;
-#else
-  #define EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN
-#endif
-
-namespace Eigen {
-
-namespace internal {
-
-struct constructor_without_unaligned_array_assert {};
-
-/** \internal
-  * Static array. If the MatrixOrArrayOptions require auto-alignment, the array will be automatically aligned:
-  * to 16 bytes boundary if the total size is a multiple of 16 bytes.
-  */
-template <typename T, int Size, int MatrixOrArrayOptions,
-          int Alignment = (MatrixOrArrayOptions&DontAlign) ? 0
-                        : (((Size*sizeof(T))%16)==0) ? 16
-                        : 0 >
-struct plain_array
-{
-  T array[Size];
-
-  plain_array() 
-  { 
-    EIGEN_STATIC_ASSERT(Size * sizeof(T) <= 128 * 128 * 8, OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG);
-  }
-
-  plain_array(constructor_without_unaligned_array_assert) 
-  { 
-    EIGEN_STATIC_ASSERT(Size * sizeof(T) <= 128 * 128 * 8, OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG);
-  }
-};
-
-#if defined(EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT)
-  #define EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(sizemask)
-#elif EIGEN_GNUC_AT_LEAST(4,7) 
-  // GCC 4.7 is too aggressive in its optimizations and remove the alignement test based on the fact the array is declared to be aligned.
-  // See this bug report: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53900
-  // Hiding the origin of the array pointer behind a function argument seems to do the trick even if the function is inlined:
-  template<typename PtrType>
-  EIGEN_ALWAYS_INLINE PtrType eigen_unaligned_array_assert_workaround_gcc47(PtrType array) { return array; }
-  #define EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(sizemask) \
-    eigen_assert((reinterpret_cast<size_t>(eigen_unaligned_array_assert_workaround_gcc47(array)) & sizemask) == 0 \
-              && "this assertion is explained here: " \
-              "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" \
-              " **** READ THIS WEB PAGE !!! ****");
-#else
-  #define EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(sizemask) \
-    eigen_assert((reinterpret_cast<size_t>(array) & sizemask) == 0 \
-              && "this assertion is explained here: " \
-              "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" \
-              " **** READ THIS WEB PAGE !!! ****");
-#endif
-
-template <typename T, int Size, int MatrixOrArrayOptions>
-struct plain_array<T, Size, MatrixOrArrayOptions, 16>
-{
-  EIGEN_USER_ALIGN16 T array[Size];
-
-  plain_array() 
-  { 
-    EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(0xf);
-    EIGEN_STATIC_ASSERT(Size * sizeof(T) <= 128 * 128 * 8, OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG);
-  }
-
-  plain_array(constructor_without_unaligned_array_assert) 
-  { 
-    EIGEN_STATIC_ASSERT(Size * sizeof(T) <= 128 * 128 * 8, OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG);
-  }
-};
-
-template <typename T, int MatrixOrArrayOptions, int Alignment>
-struct plain_array<T, 0, MatrixOrArrayOptions, Alignment>
-{
-  EIGEN_USER_ALIGN16 T array[1];
-  plain_array() {}
-  plain_array(constructor_without_unaligned_array_assert) {}
-};
-
-} // end namespace internal
-
-/** \internal
-  *
-  * \class DenseStorage
-  * \ingroup Core_Module
-  *
-  * \brief Stores the data of a matrix
-  *
-  * This class stores the data of fixed-size, dynamic-size or mixed matrices
-  * in a way as compact as possible.
-  *
-  * \sa Matrix
-  */
-template<typename T, int Size, int _Rows, int _Cols, int _Options> class DenseStorage;
-
-// purely fixed-size matrix
-template<typename T, int Size, int _Rows, int _Cols, int _Options> class DenseStorage
-{
-    internal::plain_array<T,Size,_Options> m_data;
-  public:
-    inline explicit DenseStorage() {}
-    inline DenseStorage(internal::constructor_without_unaligned_array_assert)
-      : m_data(internal::constructor_without_unaligned_array_assert()) {}
-    inline DenseStorage(DenseIndex,DenseIndex,DenseIndex) {}
-    inline void swap(DenseStorage& other) { std::swap(m_data,other.m_data); }
-    static inline DenseIndex rows(void) {return _Rows;}
-    static inline DenseIndex cols(void) {return _Cols;}
-    inline void conservativeResize(DenseIndex,DenseIndex,DenseIndex) {}
-    inline void resize(DenseIndex,DenseIndex,DenseIndex) {}
-    inline const T *data() const { return m_data.array; }
-    inline T *data() { return m_data.array; }
-};
-
-// null matrix
-template<typename T, int _Rows, int _Cols, int _Options> class DenseStorage<T, 0, _Rows, _Cols, _Options>
-{
-  public:
-    inline explicit DenseStorage() {}
-    inline DenseStorage(internal::constructor_without_unaligned_array_assert) {}
-    inline DenseStorage(DenseIndex,DenseIndex,DenseIndex) {}
-    inline void swap(DenseStorage& ) {}
-    static inline DenseIndex rows(void) {return _Rows;}
-    static inline DenseIndex cols(void) {return _Cols;}
-    inline void conservativeResize(DenseIndex,DenseIndex,DenseIndex) {}
-    inline void resize(DenseIndex,DenseIndex,DenseIndex) {}
-    inline const T *data() const { return 0; }
-    inline T *data() { return 0; }
-};
-
-// more specializations for null matrices; these are necessary to resolve ambiguities
-template<typename T, int _Options> class DenseStorage<T, 0, Dynamic, Dynamic, _Options>
-: public DenseStorage<T, 0, 0, 0, _Options> { };
-
-template<typename T, int _Rows, int _Options> class DenseStorage<T, 0, _Rows, Dynamic, _Options>
-: public DenseStorage<T, 0, 0, 0, _Options> { };
-
-template<typename T, int _Cols, int _Options> class DenseStorage<T, 0, Dynamic, _Cols, _Options>
-: public DenseStorage<T, 0, 0, 0, _Options> { };
-
-// dynamic-size matrix with fixed-size storage
-template<typename T, int Size, int _Options> class DenseStorage<T, Size, Dynamic, Dynamic, _Options>
-{
-    internal::plain_array<T,Size,_Options> m_data;
-    DenseIndex m_rows;
-    DenseIndex m_cols;
-  public:
-    inline explicit DenseStorage() : m_rows(0), m_cols(0) {}
-    inline DenseStorage(internal::constructor_without_unaligned_array_assert)
-      : m_data(internal::constructor_without_unaligned_array_assert()), m_rows(0), m_cols(0) {}
-    inline DenseStorage(DenseIndex, DenseIndex nbRows, DenseIndex nbCols) : m_rows(nbRows), m_cols(nbCols) {}
-    inline void swap(DenseStorage& other)
-    { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); std::swap(m_cols,other.m_cols); }
-    inline DenseIndex rows() const {return m_rows;}
-    inline DenseIndex cols() const {return m_cols;}
-    inline void conservativeResize(DenseIndex, DenseIndex nbRows, DenseIndex nbCols) { m_rows = nbRows; m_cols = nbCols; }
-    inline void resize(DenseIndex, DenseIndex nbRows, DenseIndex nbCols) { m_rows = nbRows; m_cols = nbCols; }
-    inline const T *data() const { return m_data.array; }
-    inline T *data() { return m_data.array; }
-};
-
-// dynamic-size matrix with fixed-size storage and fixed width
-template<typename T, int Size, int _Cols, int _Options> class DenseStorage<T, Size, Dynamic, _Cols, _Options>
-{
-    internal::plain_array<T,Size,_Options> m_data;
-    DenseIndex m_rows;
-  public:
-    inline explicit DenseStorage() : m_rows(0) {}
-    inline DenseStorage(internal::constructor_without_unaligned_array_assert)
-      : m_data(internal::constructor_without_unaligned_array_assert()), m_rows(0) {}
-    inline DenseStorage(DenseIndex, DenseIndex nbRows, DenseIndex) : m_rows(nbRows) {}
-    inline void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); }
-    inline DenseIndex rows(void) const {return m_rows;}
-    inline DenseIndex cols(void) const {return _Cols;}
-    inline void conservativeResize(DenseIndex, DenseIndex nbRows, DenseIndex) { m_rows = nbRows; }
-    inline void resize(DenseIndex, DenseIndex nbRows, DenseIndex) { m_rows = nbRows; }
-    inline const T *data() const { return m_data.array; }
-    inline T *data() { return m_data.array; }
-};
-
-// dynamic-size matrix with fixed-size storage and fixed height
-template<typename T, int Size, int _Rows, int _Options> class DenseStorage<T, Size, _Rows, Dynamic, _Options>
-{
-    internal::plain_array<T,Size,_Options> m_data;
-    DenseIndex m_cols;
-  public:
-    inline explicit DenseStorage() : m_cols(0) {}
-    inline DenseStorage(internal::constructor_without_unaligned_array_assert)
-      : m_data(internal::constructor_without_unaligned_array_assert()), m_cols(0) {}
-    inline DenseStorage(DenseIndex, DenseIndex, DenseIndex nbCols) : m_cols(nbCols) {}
-    inline void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_cols,other.m_cols); }
-    inline DenseIndex rows(void) const {return _Rows;}
-    inline DenseIndex cols(void) const {return m_cols;}
-    inline void conservativeResize(DenseIndex, DenseIndex, DenseIndex nbCols) { m_cols = nbCols; }
-    inline void resize(DenseIndex, DenseIndex, DenseIndex nbCols) { m_cols = nbCols; }
-    inline const T *data() const { return m_data.array; }
-    inline T *data() { return m_data.array; }
-};
-
-// purely dynamic matrix.
-template<typename T, int _Options> class DenseStorage<T, Dynamic, Dynamic, Dynamic, _Options>
-{
-    T *m_data;
-    DenseIndex m_rows;
-    DenseIndex m_cols;
-  public:
-    inline explicit DenseStorage() : m_data(0), m_rows(0), m_cols(0) {}
-    inline DenseStorage(internal::constructor_without_unaligned_array_assert)
-       : m_data(0), m_rows(0), m_cols(0) {}
-    inline DenseStorage(DenseIndex size, DenseIndex nbRows, DenseIndex nbCols)
-      : m_data(internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size)), m_rows(nbRows), m_cols(nbCols)
-    { EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN }
-    inline ~DenseStorage() { internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, m_rows*m_cols); }
-    inline void swap(DenseStorage& other)
-    { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); std::swap(m_cols,other.m_cols); }
-    inline DenseIndex rows(void) const {return m_rows;}
-    inline DenseIndex cols(void) const {return m_cols;}
-    inline void conservativeResize(DenseIndex size, DenseIndex nbRows, DenseIndex nbCols)
-    {
-      m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, m_rows*m_cols);
-      m_rows = nbRows;
-      m_cols = nbCols;
-    }
-    void resize(DenseIndex size, DenseIndex nbRows, DenseIndex nbCols)
-    {
-      if(size != m_rows*m_cols)
-      {
-        internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, m_rows*m_cols);
-        if (size)
-          m_data = internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size);
-        else
-          m_data = 0;
-        EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN
-      }
-      m_rows = nbRows;
-      m_cols = nbCols;
-    }
-    inline const T *data() const { return m_data; }
-    inline T *data() { return m_data; }
-};
-
-// matrix with dynamic width and fixed height (so that matrix has dynamic size).
-template<typename T, int _Rows, int _Options> class DenseStorage<T, Dynamic, _Rows, Dynamic, _Options>
-{
-    T *m_data;
-    DenseIndex m_cols;
-  public:
-    inline explicit DenseStorage() : m_data(0), m_cols(0) {}
-    inline DenseStorage(internal::constructor_without_unaligned_array_assert) : m_data(0), m_cols(0) {}
-    inline DenseStorage(DenseIndex size, DenseIndex, DenseIndex nbCols) : m_data(internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size)), m_cols(nbCols)
-    { EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN }
-    inline ~DenseStorage() { internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Rows*m_cols); }
-    inline void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_cols,other.m_cols); }
-    static inline DenseIndex rows(void) {return _Rows;}
-    inline DenseIndex cols(void) const {return m_cols;}
-    inline void conservativeResize(DenseIndex size, DenseIndex, DenseIndex nbCols)
-    {
-      m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, _Rows*m_cols);
-      m_cols = nbCols;
-    }
-    EIGEN_STRONG_INLINE void resize(DenseIndex size, DenseIndex, DenseIndex nbCols)
-    {
-      if(size != _Rows*m_cols)
-      {
-        internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Rows*m_cols);
-        if (size)
-          m_data = internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size);
-        else
-          m_data = 0;
-        EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN
-      }
-      m_cols = nbCols;
-    }
-    inline const T *data() const { return m_data; }
-    inline T *data() { return m_data; }
-};
-
-// matrix with dynamic height and fixed width (so that matrix has dynamic size).
-template<typename T, int _Cols, int _Options> class DenseStorage<T, Dynamic, Dynamic, _Cols, _Options>
-{
-    T *m_data;
-    DenseIndex m_rows;
-  public:
-    inline explicit DenseStorage() : m_data(0), m_rows(0) {}
-    inline DenseStorage(internal::constructor_without_unaligned_array_assert) : m_data(0), m_rows(0) {}
-    inline DenseStorage(DenseIndex size, DenseIndex nbRows, DenseIndex) : m_data(internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size)), m_rows(nbRows)
-    { EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN }
-    inline ~DenseStorage() { internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Cols*m_rows); }
-    inline void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); }
-    inline DenseIndex rows(void) const {return m_rows;}
-    static inline DenseIndex cols(void) {return _Cols;}
-    inline void conservativeResize(DenseIndex size, DenseIndex nbRows, DenseIndex)
-    {
-      m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, m_rows*_Cols);
-      m_rows = nbRows;
-    }
-    EIGEN_STRONG_INLINE void resize(DenseIndex size, DenseIndex nbRows, DenseIndex)
-    {
-      if(size != m_rows*_Cols)
-      {
-        internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Cols*m_rows);
-        if (size)
-          m_data = internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size);
-        else
-          m_data = 0;
-        EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN
-      }
-      m_rows = nbRows;
-    }
-    inline const T *data() const { return m_data; }
-    inline T *data() { return m_data; }
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_MATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Diagonal.h b/vendor/eigen-3.1.91/Eigen/src/Core/Diagonal.h
deleted file mode 100644
index 0927e99..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/Diagonal.h
+++ /dev/null
@@ -1,237 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_DIAGONAL_H
-#define EIGEN_DIAGONAL_H
-
-namespace Eigen { 
-
-/** \class Diagonal
-  * \ingroup Core_Module
-  *
-  * \brief Expression of a diagonal/subdiagonal/superdiagonal in a matrix
-  *
-  * \param MatrixType the type of the object in which we are taking a sub/main/super diagonal
-  * \param DiagIndex the index of the sub/super diagonal. The default is 0 and it means the main diagonal.
-  *              A positive value means a superdiagonal, a negative value means a subdiagonal.
-  *              You can also use Dynamic so the index can be set at runtime.
-  *
-  * The matrix is not required to be square.
-  *
-  * This class represents an expression of the main diagonal, or any sub/super diagonal
-  * of a square matrix. It is the return type of MatrixBase::diagonal() and MatrixBase::diagonal(Index) and most of the
-  * time this is the only way it is used.
-  *
-  * \sa MatrixBase::diagonal(), MatrixBase::diagonal(Index)
-  */
-
-namespace internal {
-template<typename MatrixType, int DiagIndex>
-struct traits<Diagonal<MatrixType,DiagIndex> >
- : traits<MatrixType>
-{
-  typedef typename nested<MatrixType>::type MatrixTypeNested;
-  typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
-  typedef typename MatrixType::StorageKind StorageKind;
-  enum {
-    RowsAtCompileTime = (int(DiagIndex) == DynamicIndex || int(MatrixType::SizeAtCompileTime) == Dynamic) ? Dynamic
-                      : (EIGEN_PLAIN_ENUM_MIN(MatrixType::RowsAtCompileTime - EIGEN_PLAIN_ENUM_MAX(-DiagIndex, 0),
-                                              MatrixType::ColsAtCompileTime - EIGEN_PLAIN_ENUM_MAX( DiagIndex, 0))),
-    ColsAtCompileTime = 1,
-    MaxRowsAtCompileTime = int(MatrixType::MaxSizeAtCompileTime) == Dynamic ? Dynamic
-                         : DiagIndex == DynamicIndex ? EIGEN_SIZE_MIN_PREFER_FIXED(MatrixType::MaxRowsAtCompileTime,
-                                                                              MatrixType::MaxColsAtCompileTime)
-                         : (EIGEN_PLAIN_ENUM_MIN(MatrixType::MaxRowsAtCompileTime - EIGEN_PLAIN_ENUM_MAX(-DiagIndex, 0),
-                                                 MatrixType::MaxColsAtCompileTime - EIGEN_PLAIN_ENUM_MAX( DiagIndex, 0))),
-    MaxColsAtCompileTime = 1,
-    MaskLvalueBit = is_lvalue<MatrixType>::value ? LvalueBit : 0,
-    Flags = (unsigned int)_MatrixTypeNested::Flags & (HereditaryBits | LinearAccessBit | MaskLvalueBit | DirectAccessBit) & ~RowMajorBit,
-    CoeffReadCost = _MatrixTypeNested::CoeffReadCost,
-    MatrixTypeOuterStride = outer_stride_at_compile_time<MatrixType>::ret,
-    InnerStrideAtCompileTime = MatrixTypeOuterStride == Dynamic ? Dynamic : MatrixTypeOuterStride+1,
-    OuterStrideAtCompileTime = 0
-  };
-};
-}
-
-template<typename MatrixType, int _DiagIndex> class Diagonal
-   : public internal::dense_xpr_base< Diagonal<MatrixType,_DiagIndex> >::type
-{
-  public:
-
-    enum { DiagIndex = _DiagIndex };
-    typedef typename internal::dense_xpr_base<Diagonal>::type Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(Diagonal)
-
-    inline Diagonal(MatrixType& matrix, Index a_index = DiagIndex) : m_matrix(matrix), m_index(a_index) {}
-
-    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Diagonal)
-
-    inline Index rows() const
-    { return m_index.value()<0 ? (std::min)(m_matrix.cols(),m_matrix.rows()+m_index.value()) : (std::min)(m_matrix.rows(),m_matrix.cols()-m_index.value()); }
-
-    inline Index cols() const { return 1; }
-
-    inline Index innerStride() const
-    {
-      return m_matrix.outerStride() + 1;
-    }
-
-    inline Index outerStride() const
-    {
-      return 0;
-    }
-
-    typedef typename internal::conditional<
-                       internal::is_lvalue<MatrixType>::value,
-                       Scalar,
-                       const Scalar
-                     >::type ScalarWithConstIfNotLvalue;
-
-    inline ScalarWithConstIfNotLvalue* data() { return &(m_matrix.const_cast_derived().coeffRef(rowOffset(), colOffset())); }
-    inline const Scalar* data() const { return &(m_matrix.const_cast_derived().coeffRef(rowOffset(), colOffset())); }
-
-    inline Scalar& coeffRef(Index row, Index)
-    {
-      EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
-      return m_matrix.const_cast_derived().coeffRef(row+rowOffset(), row+colOffset());
-    }
-
-    inline const Scalar& coeffRef(Index row, Index) const
-    {
-      return m_matrix.const_cast_derived().coeffRef(row+rowOffset(), row+colOffset());
-    }
-
-    inline CoeffReturnType coeff(Index row, Index) const
-    {
-      return m_matrix.coeff(row+rowOffset(), row+colOffset());
-    }
-
-    inline Scalar& coeffRef(Index idx)
-    {
-      EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
-      return m_matrix.const_cast_derived().coeffRef(idx+rowOffset(), idx+colOffset());
-    }
-
-    inline const Scalar& coeffRef(Index idx) const
-    {
-      return m_matrix.const_cast_derived().coeffRef(idx+rowOffset(), idx+colOffset());
-    }
-
-    inline CoeffReturnType coeff(Index idx) const
-    {
-      return m_matrix.coeff(idx+rowOffset(), idx+colOffset());
-    }
-
-    const typename internal::remove_all<typename MatrixType::Nested>::type& 
-    nestedExpression() const 
-    {
-      return m_matrix;
-    }
-
-    int index() const
-    {
-      return m_index.value();
-    }
-
-  protected:
-    typename MatrixType::Nested m_matrix;
-    const internal::variable_if_dynamicindex<Index, DiagIndex> m_index;
-
-  private:
-    // some compilers may fail to optimize std::max etc in case of compile-time constants...
-    EIGEN_STRONG_INLINE Index absDiagIndex() const { return m_index.value()>0 ? m_index.value() : -m_index.value(); }
-    EIGEN_STRONG_INLINE Index rowOffset() const { return m_index.value()>0 ? 0 : -m_index.value(); }
-    EIGEN_STRONG_INLINE Index colOffset() const { return m_index.value()>0 ? m_index.value() : 0; }
-    // triger a compile time error is someone try to call packet
-    template<int LoadMode> typename MatrixType::PacketReturnType packet(Index) const;
-    template<int LoadMode> typename MatrixType::PacketReturnType packet(Index,Index) const;
-};
-
-/** \returns an expression of the main diagonal of the matrix \c *this
-  *
-  * \c *this is not required to be square.
-  *
-  * Example: \include MatrixBase_diagonal.cpp
-  * Output: \verbinclude MatrixBase_diagonal.out
-  *
-  * \sa class Diagonal */
-template<typename Derived>
-inline typename MatrixBase<Derived>::DiagonalReturnType
-MatrixBase<Derived>::diagonal()
-{
-  return derived();
-}
-
-/** This is the const version of diagonal(). */
-template<typename Derived>
-inline const typename MatrixBase<Derived>::ConstDiagonalReturnType
-MatrixBase<Derived>::diagonal() const
-{
-  return ConstDiagonalReturnType(derived());
-}
-
-/** \returns an expression of the \a DiagIndex-th sub or super diagonal of the matrix \c *this
-  *
-  * \c *this is not required to be square.
-  *
-  * The template parameter \a DiagIndex represent a super diagonal if \a DiagIndex > 0
-  * and a sub diagonal otherwise. \a DiagIndex == 0 is equivalent to the main diagonal.
-  *
-  * Example: \include MatrixBase_diagonal_int.cpp
-  * Output: \verbinclude MatrixBase_diagonal_int.out
-  *
-  * \sa MatrixBase::diagonal(), class Diagonal */
-template<typename Derived>
-inline typename MatrixBase<Derived>::template DiagonalIndexReturnType<DynamicIndex>::Type
-MatrixBase<Derived>::diagonal(Index index)
-{
-  return typename DiagonalIndexReturnType<DynamicIndex>::Type(derived(), index);
-}
-
-/** This is the const version of diagonal(Index). */
-template<typename Derived>
-inline typename MatrixBase<Derived>::template ConstDiagonalIndexReturnType<DynamicIndex>::Type
-MatrixBase<Derived>::diagonal(Index index) const
-{
-  return typename ConstDiagonalIndexReturnType<DynamicIndex>::Type(derived(), index);
-}
-
-/** \returns an expression of the \a DiagIndex-th sub or super diagonal of the matrix \c *this
-  *
-  * \c *this is not required to be square.
-  *
-  * The template parameter \a DiagIndex represent a super diagonal if \a DiagIndex > 0
-  * and a sub diagonal otherwise. \a DiagIndex == 0 is equivalent to the main diagonal.
-  *
-  * Example: \include MatrixBase_diagonal_template_int.cpp
-  * Output: \verbinclude MatrixBase_diagonal_template_int.out
-  *
-  * \sa MatrixBase::diagonal(), class Diagonal */
-template<typename Derived>
-template<int Index>
-inline typename MatrixBase<Derived>::template DiagonalIndexReturnType<Index>::Type
-MatrixBase<Derived>::diagonal()
-{
-  return derived();
-}
-
-/** This is the const version of diagonal<int>(). */
-template<typename Derived>
-template<int Index>
-inline typename MatrixBase<Derived>::template ConstDiagonalIndexReturnType<Index>::Type
-MatrixBase<Derived>::diagonal() const
-{
-  return derived();
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_DIAGONAL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/DiagonalProduct.h b/vendor/eigen-3.1.91/Eigen/src/Core/DiagonalProduct.h
deleted file mode 100644
index d55b2c2..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/DiagonalProduct.h
+++ /dev/null
@@ -1,113 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_DIAGONALPRODUCT_H
-#define EIGEN_DIAGONALPRODUCT_H
-
-namespace Eigen { 
-
-namespace internal {
-template<typename MatrixType, typename DiagonalType, int ProductOrder>
-struct traits<DiagonalProduct<MatrixType, DiagonalType, ProductOrder> >
- : traits<MatrixType>
-{
-  typedef typename scalar_product_traits<typename MatrixType::Scalar, typename DiagonalType::Scalar>::ReturnType Scalar;
-  enum {
-    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
-
-    _StorageOrder = MatrixType::Flags & RowMajorBit ? RowMajor : ColMajor,
-    _PacketOnDiag = !((int(_StorageOrder) == RowMajor && int(ProductOrder) == OnTheLeft)
-                    ||(int(_StorageOrder) == ColMajor && int(ProductOrder) == OnTheRight)),
-    _SameTypes = is_same<typename MatrixType::Scalar, typename DiagonalType::Scalar>::value,
-    // FIXME currently we need same types, but in the future the next rule should be the one
-    //_Vectorizable = bool(int(MatrixType::Flags)&PacketAccessBit) && ((!_PacketOnDiag) || (_SameTypes && bool(int(DiagonalType::Flags)&PacketAccessBit))),
-    _Vectorizable = bool(int(MatrixType::Flags)&PacketAccessBit) && _SameTypes && ((!_PacketOnDiag) || (bool(int(DiagonalType::Flags)&PacketAccessBit))),
-
-    Flags = (HereditaryBits & (unsigned int)(MatrixType::Flags)) | (_Vectorizable ? PacketAccessBit : 0),
-    CoeffReadCost = NumTraits<Scalar>::MulCost + MatrixType::CoeffReadCost + DiagonalType::DiagonalVectorType::CoeffReadCost
-  };
-};
-}
-
-template<typename MatrixType, typename DiagonalType, int ProductOrder>
-class DiagonalProduct : internal::no_assignment_operator,
-                        public MatrixBase<DiagonalProduct<MatrixType, DiagonalType, ProductOrder> >
-{
-  public:
-
-    typedef MatrixBase<DiagonalProduct> Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(DiagonalProduct)
-
-    inline DiagonalProduct(const MatrixType& matrix, const DiagonalType& diagonal)
-      : m_matrix(matrix), m_diagonal(diagonal)
-    {
-      eigen_assert(diagonal.diagonal().size() == (ProductOrder == OnTheLeft ? matrix.rows() : matrix.cols()));
-    }
-
-    inline Index rows() const { return m_matrix.rows(); }
-    inline Index cols() const { return m_matrix.cols(); }
-
-    const Scalar coeff(Index row, Index col) const
-    {
-      return m_diagonal.diagonal().coeff(ProductOrder == OnTheLeft ? row : col) * m_matrix.coeff(row, col);
-    }
-
-    template<int LoadMode>
-    EIGEN_STRONG_INLINE PacketScalar packet(Index row, Index col) const
-    {
-      enum {
-        StorageOrder = Flags & RowMajorBit ? RowMajor : ColMajor
-      };
-      const Index indexInDiagonalVector = ProductOrder == OnTheLeft ? row : col;
-
-      return packet_impl<LoadMode>(row,col,indexInDiagonalVector,typename internal::conditional<
-        ((int(StorageOrder) == RowMajor && int(ProductOrder) == OnTheLeft)
-       ||(int(StorageOrder) == ColMajor && int(ProductOrder) == OnTheRight)), internal::true_type, internal::false_type>::type());
-    }
-
-  protected:
-    template<int LoadMode>
-    EIGEN_STRONG_INLINE PacketScalar packet_impl(Index row, Index col, Index id, internal::true_type) const
-    {
-      return internal::pmul(m_matrix.template packet<LoadMode>(row, col),
-                     internal::pset1<PacketScalar>(m_diagonal.diagonal().coeff(id)));
-    }
-
-    template<int LoadMode>
-    EIGEN_STRONG_INLINE PacketScalar packet_impl(Index row, Index col, Index id, internal::false_type) const
-    {
-      enum {
-        InnerSize = (MatrixType::Flags & RowMajorBit) ? MatrixType::ColsAtCompileTime : MatrixType::RowsAtCompileTime,
-        DiagonalVectorPacketLoadMode = (LoadMode == Aligned && ((InnerSize%16) == 0)) ? Aligned : Unaligned
-      };
-      return internal::pmul(m_matrix.template packet<LoadMode>(row, col),
-                     m_diagonal.diagonal().template packet<DiagonalVectorPacketLoadMode>(id));
-    }
-
-    typename MatrixType::Nested m_matrix;
-    typename DiagonalType::Nested m_diagonal;
-};
-
-/** \returns the diagonal matrix product of \c *this by the diagonal matrix \a diagonal.
-  */
-template<typename Derived>
-template<typename DiagonalDerived>
-inline const DiagonalProduct<Derived, DiagonalDerived, OnTheRight>
-MatrixBase<Derived>::operator*(const DiagonalBase<DiagonalDerived> &a_diagonal) const
-{
-  return DiagonalProduct<Derived, DiagonalDerived, OnTheRight>(derived(), a_diagonal.derived());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_DIAGONALPRODUCT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Dot.h b/vendor/eigen-3.1.91/Eigen/src/Core/Dot.h
deleted file mode 100644
index 9d513d6..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/Dot.h
+++ /dev/null
@@ -1,262 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2006-2008, 2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_DOT_H
-#define EIGEN_DOT_H
-
-namespace Eigen { 
-
-namespace internal {
-
-// helper function for dot(). The problem is that if we put that in the body of dot(), then upon calling dot
-// with mismatched types, the compiler emits errors about failing to instantiate cwiseProduct BEFORE
-// looking at the static assertions. Thus this is a trick to get better compile errors.
-template<typename T, typename U,
-// the NeedToTranspose condition here is taken straight from Assign.h
-         bool NeedToTranspose = T::IsVectorAtCompileTime
-                && U::IsVectorAtCompileTime
-                && ((int(T::RowsAtCompileTime) == 1 && int(U::ColsAtCompileTime) == 1)
-                      |  // FIXME | instead of || to please GCC 4.4.0 stupid warning "suggest parentheses around &&".
-                         // revert to || as soon as not needed anymore.
-                    (int(T::ColsAtCompileTime) == 1 && int(U::RowsAtCompileTime) == 1))
->
-struct dot_nocheck
-{
-  typedef typename scalar_product_traits<typename traits<T>::Scalar,typename traits<U>::Scalar>::ReturnType ResScalar;
-  static inline ResScalar run(const MatrixBase<T>& a, const MatrixBase<U>& b)
-  {
-    return a.template binaryExpr<scalar_conj_product_op<typename traits<T>::Scalar,typename traits<U>::Scalar> >(b).sum();
-  }
-};
-
-template<typename T, typename U>
-struct dot_nocheck<T, U, true>
-{
-  typedef typename scalar_product_traits<typename traits<T>::Scalar,typename traits<U>::Scalar>::ReturnType ResScalar;
-  static inline ResScalar run(const MatrixBase<T>& a, const MatrixBase<U>& b)
-  {
-    return a.transpose().template binaryExpr<scalar_conj_product_op<typename traits<T>::Scalar,typename traits<U>::Scalar> >(b).sum();
-  }
-};
-
-} // end namespace internal
-
-/** \returns the dot product of *this with other.
-  *
-  * \only_for_vectors
-  *
-  * \note If the scalar type is complex numbers, then this function returns the hermitian
-  * (sesquilinear) dot product, conjugate-linear in the first variable and linear in the
-  * second variable.
-  *
-  * \sa squaredNorm(), norm()
-  */
-template<typename Derived>
-template<typename OtherDerived>
-typename internal::scalar_product_traits<typename internal::traits<Derived>::Scalar,typename internal::traits<OtherDerived>::Scalar>::ReturnType
-MatrixBase<Derived>::dot(const MatrixBase<OtherDerived>& other) const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
-  EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
-  typedef internal::scalar_conj_product_op<Scalar,typename OtherDerived::Scalar> func;
-  EIGEN_CHECK_BINARY_COMPATIBILIY(func,Scalar,typename OtherDerived::Scalar);
-
-  eigen_assert(size() == other.size());
-
-  return internal::dot_nocheck<Derived,OtherDerived>::run(*this, other);
-}
-
-#ifdef EIGEN2_SUPPORT
-/** \returns the dot product of *this with other, with the Eigen2 convention that the dot product is linear in the first variable
-  * (conjugating the second variable). Of course this only makes a difference in the complex case.
-  *
-  * This method is only available in EIGEN2_SUPPORT mode.
-  *
-  * \only_for_vectors
-  *
-  * \sa dot()
-  */
-template<typename Derived>
-template<typename OtherDerived>
-typename internal::traits<Derived>::Scalar
-MatrixBase<Derived>::eigen2_dot(const MatrixBase<OtherDerived>& other) const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
-  EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
-  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
-    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
-
-  eigen_assert(size() == other.size());
-
-  return internal::dot_nocheck<OtherDerived,Derived>::run(other,*this);
-}
-#endif
-
-
-//---------- implementation of L2 norm and related functions ----------
-
-/** \returns, for vectors, the squared \em l2 norm of \c *this, and for matrices the Frobenius norm.
-  * In both cases, it consists in the sum of the square of all the matrix entries.
-  * For vectors, this is also equals to the dot product of \c *this with itself.
-  *
-  * \sa dot(), norm()
-  */
-template<typename Derived>
-EIGEN_STRONG_INLINE typename NumTraits<typename internal::traits<Derived>::Scalar>::Real MatrixBase<Derived>::squaredNorm() const
-{
-  return internal::real((*this).cwiseAbs2().sum());
-}
-
-/** \returns, for vectors, the \em l2 norm of \c *this, and for matrices the Frobenius norm.
-  * In both cases, it consists in the square root of the sum of the square of all the matrix entries.
-  * For vectors, this is also equals to the square root of the dot product of \c *this with itself.
-  *
-  * \sa dot(), squaredNorm()
-  */
-template<typename Derived>
-inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real MatrixBase<Derived>::norm() const
-{
-  using std::sqrt;
-  return sqrt(squaredNorm());
-}
-
-/** \returns an expression of the quotient of *this by its own norm.
-  *
-  * \only_for_vectors
-  *
-  * \sa norm(), normalize()
-  */
-template<typename Derived>
-inline const typename MatrixBase<Derived>::PlainObject
-MatrixBase<Derived>::normalized() const
-{
-  typedef typename internal::nested<Derived>::type Nested;
-  typedef typename internal::remove_reference<Nested>::type _Nested;
-  _Nested n(derived());
-  return n / n.norm();
-}
-
-/** Normalizes the vector, i.e. divides it by its own norm.
-  *
-  * \only_for_vectors
-  *
-  * \sa norm(), normalized()
-  */
-template<typename Derived>
-inline void MatrixBase<Derived>::normalize()
-{
-  *this /= norm();
-}
-
-//---------- implementation of other norms ----------
-
-namespace internal {
-
-template<typename Derived, int p>
-struct lpNorm_selector
-{
-  typedef typename NumTraits<typename traits<Derived>::Scalar>::Real RealScalar;
-  static inline RealScalar run(const MatrixBase<Derived>& m)
-  {
-    return pow(m.cwiseAbs().array().pow(p).sum(), RealScalar(1)/p);
-  }
-};
-
-template<typename Derived>
-struct lpNorm_selector<Derived, 1>
-{
-  static inline typename NumTraits<typename traits<Derived>::Scalar>::Real run(const MatrixBase<Derived>& m)
-  {
-    return m.cwiseAbs().sum();
-  }
-};
-
-template<typename Derived>
-struct lpNorm_selector<Derived, 2>
-{
-  static inline typename NumTraits<typename traits<Derived>::Scalar>::Real run(const MatrixBase<Derived>& m)
-  {
-    return m.norm();
-  }
-};
-
-template<typename Derived>
-struct lpNorm_selector<Derived, Infinity>
-{
-  static inline typename NumTraits<typename traits<Derived>::Scalar>::Real run(const MatrixBase<Derived>& m)
-  {
-    return m.cwiseAbs().maxCoeff();
-  }
-};
-
-} // end namespace internal
-
-/** \returns the \f$ \ell^p \f$ norm of *this, that is, returns the p-th root of the sum of the p-th powers of the absolute values
-  *          of the coefficients of *this. If \a p is the special value \a Eigen::Infinity, this function returns the \f$ \ell^\infty \f$
-  *          norm, that is the maximum of the absolute values of the coefficients of *this.
-  *
-  * \sa norm()
-  */
-template<typename Derived>
-template<int p>
-inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
-MatrixBase<Derived>::lpNorm() const
-{
-  return internal::lpNorm_selector<Derived, p>::run(*this);
-}
-
-//---------- implementation of isOrthogonal / isUnitary ----------
-
-/** \returns true if *this is approximately orthogonal to \a other,
-  *          within the precision given by \a prec.
-  *
-  * Example: \include MatrixBase_isOrthogonal.cpp
-  * Output: \verbinclude MatrixBase_isOrthogonal.out
-  */
-template<typename Derived>
-template<typename OtherDerived>
-bool MatrixBase<Derived>::isOrthogonal
-(const MatrixBase<OtherDerived>& other, const RealScalar& prec) const
-{
-  typename internal::nested<Derived,2>::type nested(derived());
-  typename internal::nested<OtherDerived,2>::type otherNested(other.derived());
-  return internal::abs2(nested.dot(otherNested)) <= prec * prec * nested.squaredNorm() * otherNested.squaredNorm();
-}
-
-/** \returns true if *this is approximately an unitary matrix,
-  *          within the precision given by \a prec. In the case where the \a Scalar
-  *          type is real numbers, a unitary matrix is an orthogonal matrix, whence the name.
-  *
-  * \note This can be used to check whether a family of vectors forms an orthonormal basis.
-  *       Indeed, \c m.isUnitary() returns true if and only if the columns (equivalently, the rows) of m form an
-  *       orthonormal basis.
-  *
-  * Example: \include MatrixBase_isUnitary.cpp
-  * Output: \verbinclude MatrixBase_isUnitary.out
-  */
-template<typename Derived>
-bool MatrixBase<Derived>::isUnitary(const RealScalar& prec) const
-{
-  typename Derived::Nested nested(derived());
-  for(Index i = 0; i < cols(); ++i)
-  {
-    if(!internal::isApprox(nested.col(i).squaredNorm(), static_cast<RealScalar>(1), prec))
-      return false;
-    for(Index j = 0; j < i; ++j)
-      if(!internal::isMuchSmallerThan(nested.col(i).dot(nested.col(j)), static_cast<Scalar>(1), prec))
-        return false;
-  }
-  return true;
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_DOT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/EigenBase.h b/vendor/eigen-3.1.91/Eigen/src/Core/EigenBase.h
deleted file mode 100644
index 2b8dd1b..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/EigenBase.h
+++ /dev/null
@@ -1,161 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_EIGENBASE_H
-#define EIGEN_EIGENBASE_H
-
-namespace Eigen {
-
-/** Common base class for all classes T such that MatrixBase has an operator=(T) and a constructor MatrixBase(T).
-  *
-  * In other words, an EigenBase object is an object that can be copied into a MatrixBase.
-  *
-  * Besides MatrixBase-derived classes, this also includes special matrix classes such as diagonal matrices, etc.
-  *
-  * Notice that this class is trivial, it is only used to disambiguate overloaded functions.
-  *
-  * \sa \ref TopicClassHierarchy
-  */
-template<typename Derived> struct EigenBase
-{
-//   typedef typename internal::plain_matrix_type<Derived>::type PlainObject;
-
-  typedef typename internal::traits<Derived>::StorageKind StorageKind;
-  typedef typename internal::traits<Derived>::Index Index;
-
-  /** \returns a reference to the derived object */
-  Derived& derived() { return *static_cast<Derived*>(this); }
-  /** \returns a const reference to the derived object */
-  const Derived& derived() const { return *static_cast<const Derived*>(this); }
-
-  inline Derived& const_cast_derived() const
-  { return *static_cast<Derived*>(const_cast<EigenBase*>(this)); }
-  inline const Derived& const_derived() const
-  { return *static_cast<const Derived*>(this); }
-
-  /** \returns the number of rows. \sa cols(), RowsAtCompileTime */
-  inline Index rows() const { return derived().rows(); }
-  /** \returns the number of columns. \sa rows(), ColsAtCompileTime*/
-  inline Index cols() const { return derived().cols(); }
-  /** \returns the number of coefficients, which is rows()*cols().
-    * \sa rows(), cols(), SizeAtCompileTime. */
-  inline Index size() const { return rows() * cols(); }
-
-  /** \internal Don't use it, but do the equivalent: \code dst = *this; \endcode */
-  template<typename Dest> inline void evalTo(Dest& dst) const
-  { derived().evalTo(dst); }
-
-  /** \internal Don't use it, but do the equivalent: \code dst += *this; \endcode */
-  template<typename Dest> inline void addTo(Dest& dst) const
-  {
-    // This is the default implementation,
-    // derived class can reimplement it in a more optimized way.
-    typename Dest::PlainObject res(rows(),cols());
-    evalTo(res);
-    dst += res;
-  }
-
-  /** \internal Don't use it, but do the equivalent: \code dst -= *this; \endcode */
-  template<typename Dest> inline void subTo(Dest& dst) const
-  {
-    // This is the default implementation,
-    // derived class can reimplement it in a more optimized way.
-    typename Dest::PlainObject res(rows(),cols());
-    evalTo(res);
-    dst -= res;
-  }
-
-  /** \internal Don't use it, but do the equivalent: \code dst.applyOnTheRight(*this); \endcode */
-  template<typename Dest> inline void applyThisOnTheRight(Dest& dst) const
-  {
-    // This is the default implementation,
-    // derived class can reimplement it in a more optimized way.
-    dst = dst * this->derived();
-  }
-
-  /** \internal Don't use it, but do the equivalent: \code dst.applyOnTheLeft(*this); \endcode */
-  template<typename Dest> inline void applyThisOnTheLeft(Dest& dst) const
-  {
-    // This is the default implementation,
-    // derived class can reimplement it in a more optimized way.
-    dst = this->derived() * dst;
-  }
-
-};
-
-/***************************************************************************
-* Implementation of matrix base methods
-***************************************************************************/
-
-/** \brief Copies the generic expression \a other into *this.
-  *
-  * \details The expression must provide a (templated) evalTo(Derived& dst) const
-  * function which does the actual job. In practice, this allows any user to write
-  * its own special matrix without having to modify MatrixBase
-  *
-  * \returns a reference to *this.
-  */
-template<typename Derived>
-template<typename OtherDerived>
-Derived& DenseBase<Derived>::operator=(const EigenBase<OtherDerived> &other)
-{
-  other.derived().evalTo(derived());
-  return derived();
-}
-
-template<typename Derived>
-template<typename OtherDerived>
-Derived& DenseBase<Derived>::operator+=(const EigenBase<OtherDerived> &other)
-{
-  other.derived().addTo(derived());
-  return derived();
-}
-
-template<typename Derived>
-template<typename OtherDerived>
-Derived& DenseBase<Derived>::operator-=(const EigenBase<OtherDerived> &other)
-{
-  other.derived().subTo(derived());
-  return derived();
-}
-
-/** replaces \c *this by \c *this * \a other.
-  *
-  * \returns a reference to \c *this
-  */
-template<typename Derived>
-template<typename OtherDerived>
-inline Derived&
-MatrixBase<Derived>::operator*=(const EigenBase<OtherDerived> &other)
-{
-  other.derived().applyThisOnTheRight(derived());
-  return derived();
-}
-
-/** replaces \c *this by \c *this * \a other. It is equivalent to MatrixBase::operator*=().
-  */
-template<typename Derived>
-template<typename OtherDerived>
-inline void MatrixBase<Derived>::applyOnTheRight(const EigenBase<OtherDerived> &other)
-{
-  other.derived().applyThisOnTheRight(derived());
-}
-
-/** replaces \c *this by \c *this * \a other. */
-template<typename Derived>
-template<typename OtherDerived>
-inline void MatrixBase<Derived>::applyOnTheLeft(const EigenBase<OtherDerived> &other)
-{
-  other.derived().applyThisOnTheLeft(derived());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_EIGENBASE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Functors.h b/vendor/eigen-3.1.91/Eigen/src/Core/Functors.h
deleted file mode 100644
index 9a84e8f..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/Functors.h
+++ /dev/null
@@ -1,985 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_FUNCTORS_H
-#define EIGEN_FUNCTORS_H
-
-namespace Eigen {
-
-namespace internal {
-
-// associative functors:
-
-/** \internal
-  * \brief Template functor to compute the sum of two scalars
-  *
-  * \sa class CwiseBinaryOp, MatrixBase::operator+, class VectorwiseOp, MatrixBase::sum()
-  */
-template<typename Scalar> struct scalar_sum_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_sum_op)
-  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a, const Scalar& b) const { return a + b; }
-  template<typename Packet>
-  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
-  { return internal::padd(a,b); }
-  template<typename Packet>
-  EIGEN_STRONG_INLINE const Scalar predux(const Packet& a) const
-  { return internal::predux(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_sum_op<Scalar> > {
-  enum {
-    Cost = NumTraits<Scalar>::AddCost,
-    PacketAccess = packet_traits<Scalar>::HasAdd
-  };
-};
-
-/** \internal
-  * \brief Template functor to compute the product of two scalars
-  *
-  * \sa class CwiseBinaryOp, Cwise::operator*(), class VectorwiseOp, MatrixBase::redux()
-  */
-template<typename LhsScalar,typename RhsScalar> struct scalar_product_op {
-  enum {
-    // TODO vectorize mixed product
-    Vectorizable = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasMul && packet_traits<RhsScalar>::HasMul
-  };
-  typedef typename scalar_product_traits<LhsScalar,RhsScalar>::ReturnType result_type;
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_product_op)
-  EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const { return a * b; }
-  template<typename Packet>
-  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
-  { return internal::pmul(a,b); }
-  template<typename Packet>
-  EIGEN_STRONG_INLINE const result_type predux(const Packet& a) const
-  { return internal::predux_mul(a); }
-};
-template<typename LhsScalar,typename RhsScalar>
-struct functor_traits<scalar_product_op<LhsScalar,RhsScalar> > {
-  enum {
-    Cost = (NumTraits<LhsScalar>::MulCost + NumTraits<RhsScalar>::MulCost)/2, // rough estimate!
-    PacketAccess = scalar_product_op<LhsScalar,RhsScalar>::Vectorizable
-  };
-};
-
-/** \internal
-  * \brief Template functor to compute the conjugate product of two scalars
-  *
-  * This is a short cut for conj(x) * y which is needed for optimization purpose; in Eigen2 support mode, this becomes x * conj(y)
-  */
-template<typename LhsScalar,typename RhsScalar> struct scalar_conj_product_op {
-
-  enum {
-    Conj = NumTraits<LhsScalar>::IsComplex
-  };
-  
-  typedef typename scalar_product_traits<LhsScalar,RhsScalar>::ReturnType result_type;
-  
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_conj_product_op)
-  EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const
-  { return conj_helper<LhsScalar,RhsScalar,Conj,false>().pmul(a,b); }
-  
-  template<typename Packet>
-  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
-  { return conj_helper<Packet,Packet,Conj,false>().pmul(a,b); }
-};
-template<typename LhsScalar,typename RhsScalar>
-struct functor_traits<scalar_conj_product_op<LhsScalar,RhsScalar> > {
-  enum {
-    Cost = NumTraits<LhsScalar>::MulCost,
-    PacketAccess = internal::is_same<LhsScalar, RhsScalar>::value && packet_traits<LhsScalar>::HasMul
-  };
-};
-
-/** \internal
-  * \brief Template functor to compute the min of two scalars
-  *
-  * \sa class CwiseBinaryOp, MatrixBase::cwiseMin, class VectorwiseOp, MatrixBase::minCoeff()
-  */
-template<typename Scalar> struct scalar_min_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_min_op)
-  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a, const Scalar& b) const { using std::min; return (min)(a, b); }
-  template<typename Packet>
-  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
-  { return internal::pmin(a,b); }
-  template<typename Packet>
-  EIGEN_STRONG_INLINE const Scalar predux(const Packet& a) const
-  { return internal::predux_min(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_min_op<Scalar> > {
-  enum {
-    Cost = NumTraits<Scalar>::AddCost,
-    PacketAccess = packet_traits<Scalar>::HasMin
-  };
-};
-
-/** \internal
-  * \brief Template functor to compute the max of two scalars
-  *
-  * \sa class CwiseBinaryOp, MatrixBase::cwiseMax, class VectorwiseOp, MatrixBase::maxCoeff()
-  */
-template<typename Scalar> struct scalar_max_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_max_op)
-  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a, const Scalar& b) const { using std::max; return (max)(a, b); }
-  template<typename Packet>
-  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
-  { return internal::pmax(a,b); }
-  template<typename Packet>
-  EIGEN_STRONG_INLINE const Scalar predux(const Packet& a) const
-  { return internal::predux_max(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_max_op<Scalar> > {
-  enum {
-    Cost = NumTraits<Scalar>::AddCost,
-    PacketAccess = packet_traits<Scalar>::HasMax
-  };
-};
-
-/** \internal
-  * \brief Template functor to compute the hypot of two scalars
-  *
-  * \sa MatrixBase::stableNorm(), class Redux
-  */
-template<typename Scalar> struct scalar_hypot_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_hypot_op)
-//   typedef typename NumTraits<Scalar>::Real result_type;
-  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& _x, const Scalar& _y) const
-  {
-    using std::max;
-    using std::min;
-    using std::sqrt;
-    Scalar p = (max)(_x, _y);
-    Scalar q = (min)(_x, _y);
-    Scalar qp = q/p;
-    return p * sqrt(Scalar(1) + qp*qp);
-  }
-};
-template<typename Scalar>
-struct functor_traits<scalar_hypot_op<Scalar> > {
-  enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess=0 };
-};
-
-/** \internal
-  * \brief Template functor to compute the pow of two scalars
-  */
-template<typename Scalar, typename OtherScalar> struct scalar_binary_pow_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_binary_pow_op)
-  inline Scalar operator() (const Scalar& a, const OtherScalar& b) const { return internal::pow(a, b); }
-};
-template<typename Scalar, typename OtherScalar>
-struct functor_traits<scalar_binary_pow_op<Scalar,OtherScalar> > {
-  enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = false };
-};
-
-// other binary functors:
-
-/** \internal
-  * \brief Template functor to compute the difference of two scalars
-  *
-  * \sa class CwiseBinaryOp, MatrixBase::operator-
-  */
-template<typename Scalar> struct scalar_difference_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_difference_op)
-  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a, const Scalar& b) const { return a - b; }
-  template<typename Packet>
-  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
-  { return internal::psub(a,b); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_difference_op<Scalar> > {
-  enum {
-    Cost = NumTraits<Scalar>::AddCost,
-    PacketAccess = packet_traits<Scalar>::HasSub
-  };
-};
-
-/** \internal
-  * \brief Template functor to compute the quotient of two scalars
-  *
-  * \sa class CwiseBinaryOp, Cwise::operator/()
-  */
-template<typename LhsScalar,typename RhsScalar> struct scalar_quotient_op {
-  enum {
-    // TODO vectorize mixed product
-    Vectorizable = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasDiv && packet_traits<RhsScalar>::HasDiv
-  };
-  typedef typename scalar_product_traits<LhsScalar,RhsScalar>::ReturnType result_type;
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_quotient_op)
-  EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const { return a / b; }
-  template<typename Packet>
-  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
-  { return internal::pdiv(a,b); }
-};
-template<typename LhsScalar,typename RhsScalar>
-struct functor_traits<scalar_quotient_op<LhsScalar,RhsScalar> > {
-  enum {
-    Cost = (NumTraits<LhsScalar>::MulCost + NumTraits<RhsScalar>::MulCost), // rough estimate!
-    PacketAccess = scalar_quotient_op<LhsScalar,RhsScalar>::Vectorizable
-  };
-};
-
-
-
-/** \internal
-  * \brief Template functor to compute the and of two booleans
-  *
-  * \sa class CwiseBinaryOp, ArrayBase::operator&&
-  */
-struct scalar_boolean_and_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_boolean_and_op)
-  EIGEN_STRONG_INLINE bool operator() (const bool& a, const bool& b) const { return a && b; }
-};
-template<> struct functor_traits<scalar_boolean_and_op> {
-  enum {
-    Cost = NumTraits<bool>::AddCost,
-    PacketAccess = false
-  };
-};
-
-/** \internal
-  * \brief Template functor to compute the or of two booleans
-  *
-  * \sa class CwiseBinaryOp, ArrayBase::operator||
-  */
-struct scalar_boolean_or_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_boolean_or_op)
-  EIGEN_STRONG_INLINE bool operator() (const bool& a, const bool& b) const { return a || b; }
-};
-template<> struct functor_traits<scalar_boolean_or_op> {
-  enum {
-    Cost = NumTraits<bool>::AddCost,
-    PacketAccess = false
-  };
-};
-
-// unary functors:
-
-/** \internal
-  * \brief Template functor to compute the opposite of a scalar
-  *
-  * \sa class CwiseUnaryOp, MatrixBase::operator-
-  */
-template<typename Scalar> struct scalar_opposite_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_opposite_op)
-  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { return -a; }
-  template<typename Packet>
-  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
-  { return internal::pnegate(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_opposite_op<Scalar> >
-{ enum {
-    Cost = NumTraits<Scalar>::AddCost,
-    PacketAccess = packet_traits<Scalar>::HasNegate };
-};
-
-/** \internal
-  * \brief Template functor to compute the absolute value of a scalar
-  *
-  * \sa class CwiseUnaryOp, Cwise::abs
-  */
-template<typename Scalar> struct scalar_abs_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_abs_op)
-  typedef typename NumTraits<Scalar>::Real result_type;
-  EIGEN_STRONG_INLINE const result_type operator() (const Scalar& a) const { using std::abs; return abs(a); }
-  template<typename Packet>
-  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
-  { return internal::pabs(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_abs_op<Scalar> >
-{
-  enum {
-    Cost = NumTraits<Scalar>::AddCost,
-    PacketAccess = packet_traits<Scalar>::HasAbs
-  };
-};
-
-/** \internal
-  * \brief Template functor to compute the squared absolute value of a scalar
-  *
-  * \sa class CwiseUnaryOp, Cwise::abs2
-  */
-template<typename Scalar> struct scalar_abs2_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_abs2_op)
-  typedef typename NumTraits<Scalar>::Real result_type;
-  EIGEN_STRONG_INLINE const result_type operator() (const Scalar& a) const { return internal::abs2(a); }
-  template<typename Packet>
-  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
-  { return internal::pmul(a,a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_abs2_op<Scalar> >
-{ enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasAbs2 }; };
-
-/** \internal
-  * \brief Template functor to compute the conjugate of a complex value
-  *
-  * \sa class CwiseUnaryOp, MatrixBase::conjugate()
-  */
-template<typename Scalar> struct scalar_conjugate_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_conjugate_op)
-  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { using internal::conj; return conj(a); }
-  template<typename Packet>
-  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const { return internal::pconj(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_conjugate_op<Scalar> >
-{
-  enum {
-    Cost = NumTraits<Scalar>::IsComplex ? NumTraits<Scalar>::AddCost : 0,
-    PacketAccess = packet_traits<Scalar>::HasConj
-  };
-};
-
-/** \internal
-  * \brief Template functor to cast a scalar to another type
-  *
-  * \sa class CwiseUnaryOp, MatrixBase::cast()
-  */
-template<typename Scalar, typename NewType>
-struct scalar_cast_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_cast_op)
-  typedef NewType result_type;
-  EIGEN_STRONG_INLINE const NewType operator() (const Scalar& a) const { return cast<Scalar, NewType>(a); }
-};
-template<typename Scalar, typename NewType>
-struct functor_traits<scalar_cast_op<Scalar,NewType> >
-{ enum { Cost = is_same<Scalar, NewType>::value ? 0 : NumTraits<NewType>::AddCost, PacketAccess = false }; };
-
-/** \internal
-  * \brief Template functor to extract the real part of a complex
-  *
-  * \sa class CwiseUnaryOp, MatrixBase::real()
-  */
-template<typename Scalar>
-struct scalar_real_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_real_op)
-  typedef typename NumTraits<Scalar>::Real result_type;
-  EIGEN_STRONG_INLINE result_type operator() (const Scalar& a) const { return internal::real(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_real_op<Scalar> >
-{ enum { Cost = 0, PacketAccess = false }; };
-
-/** \internal
-  * \brief Template functor to extract the imaginary part of a complex
-  *
-  * \sa class CwiseUnaryOp, MatrixBase::imag()
-  */
-template<typename Scalar>
-struct scalar_imag_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_imag_op)
-  typedef typename NumTraits<Scalar>::Real result_type;
-  EIGEN_STRONG_INLINE result_type operator() (const Scalar& a) const { return internal::imag(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_imag_op<Scalar> >
-{ enum { Cost = 0, PacketAccess = false }; };
-
-/** \internal
-  * \brief Template functor to extract the real part of a complex as a reference
-  *
-  * \sa class CwiseUnaryOp, MatrixBase::real()
-  */
-template<typename Scalar>
-struct scalar_real_ref_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_real_ref_op)
-  typedef typename NumTraits<Scalar>::Real result_type;
-  EIGEN_STRONG_INLINE result_type& operator() (const Scalar& a) const { return internal::real_ref(*const_cast<Scalar*>(&a)); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_real_ref_op<Scalar> >
-{ enum { Cost = 0, PacketAccess = false }; };
-
-/** \internal
-  * \brief Template functor to extract the imaginary part of a complex as a reference
-  *
-  * \sa class CwiseUnaryOp, MatrixBase::imag()
-  */
-template<typename Scalar>
-struct scalar_imag_ref_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_imag_ref_op)
-  typedef typename NumTraits<Scalar>::Real result_type;
-  EIGEN_STRONG_INLINE result_type& operator() (const Scalar& a) const { return internal::imag_ref(*const_cast<Scalar*>(&a)); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_imag_ref_op<Scalar> >
-{ enum { Cost = 0, PacketAccess = false }; };
-
-/** \internal
-  *
-  * \brief Template functor to compute the exponential of a scalar
-  *
-  * \sa class CwiseUnaryOp, Cwise::exp()
-  */
-template<typename Scalar> struct scalar_exp_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_exp_op)
-  inline const Scalar operator() (const Scalar& a) const { using std::exp; return exp(a); }
-  typedef typename packet_traits<Scalar>::type Packet;
-  inline Packet packetOp(const Packet& a) const { return internal::pexp(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_exp_op<Scalar> >
-{ enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasExp }; };
-
-/** \internal
-  *
-  * \brief Template functor to compute the logarithm of a scalar
-  *
-  * \sa class CwiseUnaryOp, Cwise::log()
-  */
-template<typename Scalar> struct scalar_log_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_log_op)
-  inline const Scalar operator() (const Scalar& a) const { using std::log; return log(a); }
-  typedef typename packet_traits<Scalar>::type Packet;
-  inline Packet packetOp(const Packet& a) const { return internal::plog(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_log_op<Scalar> >
-{ enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasLog }; };
-
-/** \internal
-  * \brief Template functor to multiply a scalar by a fixed other one
-  *
-  * \sa class CwiseUnaryOp, MatrixBase::operator*, MatrixBase::operator/
-  */
-/* NOTE why doing the pset1() in packetOp *is* an optimization ?
- * indeed it seems better to declare m_other as a Packet and do the pset1() once
- * in the constructor. However, in practice:
- *  - GCC does not like m_other as a Packet and generate a load every time it needs it
- *  - on the other hand GCC is able to moves the pset1() outside the loop :)
- *  - simpler code ;)
- * (ICC and gcc 4.4 seems to perform well in both cases, the issue is visible with y = a*x + b*y)
- */
-template<typename Scalar>
-struct scalar_multiple_op {
-  typedef typename packet_traits<Scalar>::type Packet;
-  // FIXME default copy constructors seems bugged with std::complex<>
-  EIGEN_STRONG_INLINE scalar_multiple_op(const scalar_multiple_op& other) : m_other(other.m_other) { }
-  EIGEN_STRONG_INLINE scalar_multiple_op(const Scalar& other) : m_other(other) { }
-  EIGEN_STRONG_INLINE Scalar operator() (const Scalar& a) const { return a * m_other; }
-  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
-  { return internal::pmul(a, pset1<Packet>(m_other)); }
-  typename add_const_on_value_type<typename NumTraits<Scalar>::Nested>::type m_other;
-};
-template<typename Scalar>
-struct functor_traits<scalar_multiple_op<Scalar> >
-{ enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasMul }; };
-
-template<typename Scalar1, typename Scalar2>
-struct scalar_multiple2_op {
-  typedef typename scalar_product_traits<Scalar1,Scalar2>::ReturnType result_type;
-  EIGEN_STRONG_INLINE scalar_multiple2_op(const scalar_multiple2_op& other) : m_other(other.m_other) { }
-  EIGEN_STRONG_INLINE scalar_multiple2_op(const Scalar2& other) : m_other(other) { }
-  EIGEN_STRONG_INLINE result_type operator() (const Scalar1& a) const { return a * m_other; }
-  typename add_const_on_value_type<typename NumTraits<Scalar2>::Nested>::type m_other;
-};
-template<typename Scalar1,typename Scalar2>
-struct functor_traits<scalar_multiple2_op<Scalar1,Scalar2> >
-{ enum { Cost = NumTraits<Scalar1>::MulCost, PacketAccess = false }; };
-
-/** \internal
-  * \brief Template functor to divide a scalar by a fixed other one
-  *
-  * This functor is used to implement the quotient of a matrix by
-  * a scalar where the scalar type is not necessarily a floating point type.
-  *
-  * \sa class CwiseUnaryOp, MatrixBase::operator/
-  */
-template<typename Scalar>
-struct scalar_quotient1_op {
-  typedef typename packet_traits<Scalar>::type Packet;
-  // FIXME default copy constructors seems bugged with std::complex<>
-  EIGEN_STRONG_INLINE scalar_quotient1_op(const scalar_quotient1_op& other) : m_other(other.m_other) { }
-  EIGEN_STRONG_INLINE scalar_quotient1_op(const Scalar& other) : m_other(other) {}
-  EIGEN_STRONG_INLINE Scalar operator() (const Scalar& a) const { return a / m_other; }
-  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
-  { return internal::pdiv(a, pset1<Packet>(m_other)); }
-  typename add_const_on_value_type<typename NumTraits<Scalar>::Nested>::type m_other;
-};
-template<typename Scalar>
-struct functor_traits<scalar_quotient1_op<Scalar> >
-{ enum { Cost = 2 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasDiv }; };
-
-// nullary functors
-
-template<typename Scalar>
-struct scalar_constant_op {
-  typedef typename packet_traits<Scalar>::type Packet;
-  EIGEN_STRONG_INLINE scalar_constant_op(const scalar_constant_op& other) : m_other(other.m_other) { }
-  EIGEN_STRONG_INLINE scalar_constant_op(const Scalar& other) : m_other(other) { }
-  template<typename Index>
-  EIGEN_STRONG_INLINE const Scalar operator() (Index, Index = 0) const { return m_other; }
-  template<typename Index>
-  EIGEN_STRONG_INLINE const Packet packetOp(Index, Index = 0) const { return internal::pset1<Packet>(m_other); }
-  const Scalar m_other;
-};
-template<typename Scalar>
-struct functor_traits<scalar_constant_op<Scalar> >
-// FIXME replace this packet test by a safe one
-{ enum { Cost = 1, PacketAccess = packet_traits<Scalar>::Vectorizable, IsRepeatable = true }; };
-
-template<typename Scalar> struct scalar_identity_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_identity_op)
-  template<typename Index>
-  EIGEN_STRONG_INLINE const Scalar operator() (Index row, Index col) const { return row==col ? Scalar(1) : Scalar(0); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_identity_op<Scalar> >
-{ enum { Cost = NumTraits<Scalar>::AddCost, PacketAccess = false, IsRepeatable = true }; };
-
-template <typename Scalar, bool RandomAccess> struct linspaced_op_impl;
-
-// linear access for packet ops:
-// 1) initialization
-//   base = [low, ..., low] + ([step, ..., step] * [-size, ..., 0])
-// 2) each step (where size is 1 for coeff access or PacketSize for packet access)
-//   base += [size*step, ..., size*step]
-//
-// TODO: Perhaps it's better to initialize lazily (so not in the constructor but in packetOp)
-//       in order to avoid the padd() in operator() ?
-template <typename Scalar>
-struct linspaced_op_impl<Scalar,false>
-{
-  typedef typename packet_traits<Scalar>::type Packet;
-
-  linspaced_op_impl(const Scalar& low, const Scalar& step) :
-  m_low(low), m_step(step),
-  m_packetStep(pset1<Packet>(packet_traits<Scalar>::size*step)),
-  m_base(padd(pset1<Packet>(low), pmul(pset1<Packet>(step),plset<Scalar>(-packet_traits<Scalar>::size)))) {}
-
-  template<typename Index>
-  EIGEN_STRONG_INLINE const Scalar operator() (Index i) const 
-  { 
-    m_base = padd(m_base, pset1<Packet>(m_step));
-    return m_low+Scalar(i)*m_step; 
-  }
-
-  template<typename Index>
-  EIGEN_STRONG_INLINE const Packet packetOp(Index) const { return m_base = padd(m_base,m_packetStep); }
-
-  const Scalar m_low;
-  const Scalar m_step;
-  const Packet m_packetStep;
-  mutable Packet m_base;
-};
-
-// random access for packet ops:
-// 1) each step
-//   [low, ..., low] + ( [step, ..., step] * ( [i, ..., i] + [0, ..., size] ) )
-template <typename Scalar>
-struct linspaced_op_impl<Scalar,true>
-{
-  typedef typename packet_traits<Scalar>::type Packet;
-
-  linspaced_op_impl(const Scalar& low, const Scalar& step) :
-  m_low(low), m_step(step),
-  m_lowPacket(pset1<Packet>(m_low)), m_stepPacket(pset1<Packet>(m_step)), m_interPacket(plset<Scalar>(0)) {}
-
-  template<typename Index>
-  EIGEN_STRONG_INLINE const Scalar operator() (Index i) const { return m_low+i*m_step; }
-
-  template<typename Index>
-  EIGEN_STRONG_INLINE const Packet packetOp(Index i) const
-  { return internal::padd(m_lowPacket, pmul(m_stepPacket, padd(pset1<Packet>(i),m_interPacket))); }
-
-  const Scalar m_low;
-  const Scalar m_step;
-  const Packet m_lowPacket;
-  const Packet m_stepPacket;
-  const Packet m_interPacket;
-};
-
-// ----- Linspace functor ----------------------------------------------------------------
-
-// Forward declaration (we default to random access which does not really give
-// us a speed gain when using packet access but it allows to use the functor in
-// nested expressions).
-template <typename Scalar, bool RandomAccess = true> struct linspaced_op;
-template <typename Scalar, bool RandomAccess> struct functor_traits< linspaced_op<Scalar,RandomAccess> >
-{ enum { Cost = 1, PacketAccess = packet_traits<Scalar>::HasSetLinear, IsRepeatable = true }; };
-template <typename Scalar, bool RandomAccess> struct linspaced_op
-{
-  typedef typename packet_traits<Scalar>::type Packet;
-  linspaced_op(const Scalar& low, const Scalar& high, DenseIndex num_steps) : impl((num_steps==1 ? high : low), (num_steps==1 ? Scalar() : (high-low)/(num_steps-1))) {}
-
-  template<typename Index>
-  EIGEN_STRONG_INLINE const Scalar operator() (Index i) const { return impl(i); }
-
-  // We need this function when assigning e.g. a RowVectorXd to a MatrixXd since
-  // there row==0 and col is used for the actual iteration.
-  template<typename Index>
-  EIGEN_STRONG_INLINE const Scalar operator() (Index row, Index col) const 
-  {
-    eigen_assert(col==0 || row==0);
-    return impl(col + row);
-  }
-
-  template<typename Index>
-  EIGEN_STRONG_INLINE const Packet packetOp(Index i) const { return impl.packetOp(i); }
-
-  // We need this function when assigning e.g. a RowVectorXd to a MatrixXd since
-  // there row==0 and col is used for the actual iteration.
-  template<typename Index>
-  EIGEN_STRONG_INLINE const Packet packetOp(Index row, Index col) const
-  {
-    eigen_assert(col==0 || row==0);
-    return impl.packetOp(col + row);
-  }
-
-  // This proxy object handles the actual required temporaries, the different
-  // implementations (random vs. sequential access) as well as the
-  // correct piping to size 2/4 packet operations.
-  const linspaced_op_impl<Scalar,RandomAccess> impl;
-};
-
-// all functors allow linear access, except scalar_identity_op. So we fix here a quick meta
-// to indicate whether a functor allows linear access, just always answering 'yes' except for
-// scalar_identity_op.
-// FIXME move this to functor_traits adding a functor_default
-template<typename Functor> struct functor_has_linear_access { enum { ret = 1 }; };
-template<typename Scalar> struct functor_has_linear_access<scalar_identity_op<Scalar> > { enum { ret = 0 }; };
-
-// In Eigen, any binary op (Product, CwiseBinaryOp) require the Lhs and Rhs to have the same scalar type, except for multiplication
-// where the mixing of different types is handled by scalar_product_traits
-// In particular, real * complex<real> is allowed.
-// FIXME move this to functor_traits adding a functor_default
-template<typename Functor> struct functor_is_product_like { enum { ret = 0 }; };
-template<typename LhsScalar,typename RhsScalar> struct functor_is_product_like<scalar_product_op<LhsScalar,RhsScalar> > { enum { ret = 1 }; };
-template<typename LhsScalar,typename RhsScalar> struct functor_is_product_like<scalar_conj_product_op<LhsScalar,RhsScalar> > { enum { ret = 1 }; };
-template<typename LhsScalar,typename RhsScalar> struct functor_is_product_like<scalar_quotient_op<LhsScalar,RhsScalar> > { enum { ret = 1 }; };
-
-
-/** \internal
-  * \brief Template functor to add a scalar to a fixed other one
-  * \sa class CwiseUnaryOp, Array::operator+
-  */
-/* If you wonder why doing the pset1() in packetOp() is an optimization check scalar_multiple_op */
-template<typename Scalar>
-struct scalar_add_op {
-  typedef typename packet_traits<Scalar>::type Packet;
-  // FIXME default copy constructors seems bugged with std::complex<>
-  inline scalar_add_op(const scalar_add_op& other) : m_other(other.m_other) { }
-  inline scalar_add_op(const Scalar& other) : m_other(other) { }
-  inline Scalar operator() (const Scalar& a) const { return a + m_other; }
-  inline const Packet packetOp(const Packet& a) const
-  { return internal::padd(a, pset1<Packet>(m_other)); }
-  const Scalar m_other;
-};
-template<typename Scalar>
-struct functor_traits<scalar_add_op<Scalar> >
-{ enum { Cost = NumTraits<Scalar>::AddCost, PacketAccess = packet_traits<Scalar>::HasAdd }; };
-
-/** \internal
-  * \brief Template functor to compute the square root of a scalar
-  * \sa class CwiseUnaryOp, Cwise::sqrt()
-  */
-template<typename Scalar> struct scalar_sqrt_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_sqrt_op)
-  inline const Scalar operator() (const Scalar& a) const { using std::sqrt; return sqrt(a); }
-  typedef typename packet_traits<Scalar>::type Packet;
-  inline Packet packetOp(const Packet& a) const { return internal::psqrt(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_sqrt_op<Scalar> >
-{ enum {
-    Cost = 5 * NumTraits<Scalar>::MulCost,
-    PacketAccess = packet_traits<Scalar>::HasSqrt
-  };
-};
-
-/** \internal
-  * \brief Template functor to compute the cosine of a scalar
-  * \sa class CwiseUnaryOp, ArrayBase::cos()
-  */
-template<typename Scalar> struct scalar_cos_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_cos_op)
-  inline Scalar operator() (const Scalar& a) const { using std::cos; return cos(a); }
-  typedef typename packet_traits<Scalar>::type Packet;
-  inline Packet packetOp(const Packet& a) const { return internal::pcos(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_cos_op<Scalar> >
-{
-  enum {
-    Cost = 5 * NumTraits<Scalar>::MulCost,
-    PacketAccess = packet_traits<Scalar>::HasCos
-  };
-};
-
-/** \internal
-  * \brief Template functor to compute the sine of a scalar
-  * \sa class CwiseUnaryOp, ArrayBase::sin()
-  */
-template<typename Scalar> struct scalar_sin_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_sin_op)
-  inline const Scalar operator() (const Scalar& a) const { using std::sin; return sin(a); }
-  typedef typename packet_traits<Scalar>::type Packet;
-  inline Packet packetOp(const Packet& a) const { return internal::psin(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_sin_op<Scalar> >
-{
-  enum {
-    Cost = 5 * NumTraits<Scalar>::MulCost,
-    PacketAccess = packet_traits<Scalar>::HasSin
-  };
-};
-
-
-/** \internal
-  * \brief Template functor to compute the tan of a scalar
-  * \sa class CwiseUnaryOp, ArrayBase::tan()
-  */
-template<typename Scalar> struct scalar_tan_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_tan_op)
-  inline const Scalar operator() (const Scalar& a) const { using std::tan; return tan(a); }
-  typedef typename packet_traits<Scalar>::type Packet;
-  inline Packet packetOp(const Packet& a) const { return internal::ptan(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_tan_op<Scalar> >
-{
-  enum {
-    Cost = 5 * NumTraits<Scalar>::MulCost,
-    PacketAccess = packet_traits<Scalar>::HasTan
-  };
-};
-
-/** \internal
-  * \brief Template functor to compute the arc cosine of a scalar
-  * \sa class CwiseUnaryOp, ArrayBase::acos()
-  */
-template<typename Scalar> struct scalar_acos_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_acos_op)
-  inline const Scalar operator() (const Scalar& a) const { using std::acos; return acos(a); }
-  typedef typename packet_traits<Scalar>::type Packet;
-  inline Packet packetOp(const Packet& a) const { return internal::pacos(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_acos_op<Scalar> >
-{
-  enum {
-    Cost = 5 * NumTraits<Scalar>::MulCost,
-    PacketAccess = packet_traits<Scalar>::HasACos
-  };
-};
-
-/** \internal
-  * \brief Template functor to compute the arc sine of a scalar
-  * \sa class CwiseUnaryOp, ArrayBase::asin()
-  */
-template<typename Scalar> struct scalar_asin_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_asin_op)
-  inline const Scalar operator() (const Scalar& a) const { using std::asin; return asin(a); }
-  typedef typename packet_traits<Scalar>::type Packet;
-  inline Packet packetOp(const Packet& a) const { return internal::pasin(a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_asin_op<Scalar> >
-{
-  enum {
-    Cost = 5 * NumTraits<Scalar>::MulCost,
-    PacketAccess = packet_traits<Scalar>::HasASin
-  };
-};
-
-/** \internal
-  * \brief Template functor to raise a scalar to a power
-  * \sa class CwiseUnaryOp, Cwise::pow
-  */
-template<typename Scalar>
-struct scalar_pow_op {
-  // FIXME default copy constructors seems bugged with std::complex<>
-  inline scalar_pow_op(const scalar_pow_op& other) : m_exponent(other.m_exponent) { }
-  inline scalar_pow_op(const Scalar& exponent) : m_exponent(exponent) {}
-  inline Scalar operator() (const Scalar& a) const { return internal::pow(a, m_exponent); }
-  const Scalar m_exponent;
-};
-template<typename Scalar>
-struct functor_traits<scalar_pow_op<Scalar> >
-{ enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = false }; };
-
-/** \internal
-  * \brief Template functor to compute the quotient between a scalar and array entries.
-  * \sa class CwiseUnaryOp, Cwise::inverse()
-  */
-template<typename Scalar>
-struct scalar_inverse_mult_op {
-  scalar_inverse_mult_op(const Scalar& other) : m_other(other) {}
-  inline Scalar operator() (const Scalar& a) const { return m_other / a; }
-  template<typename Packet>
-  inline const Packet packetOp(const Packet& a) const
-  { return internal::pdiv(pset1<Packet>(m_other),a); }
-  Scalar m_other;
-};
-
-/** \internal
-  * \brief Template functor to compute the inverse of a scalar
-  * \sa class CwiseUnaryOp, Cwise::inverse()
-  */
-template<typename Scalar>
-struct scalar_inverse_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_inverse_op)
-  inline Scalar operator() (const Scalar& a) const { return Scalar(1)/a; }
-  template<typename Packet>
-  inline const Packet packetOp(const Packet& a) const
-  { return internal::pdiv(pset1<Packet>(Scalar(1)),a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_inverse_op<Scalar> >
-{ enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasDiv }; };
-
-/** \internal
-  * \brief Template functor to compute the square of a scalar
-  * \sa class CwiseUnaryOp, Cwise::square()
-  */
-template<typename Scalar>
-struct scalar_square_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_square_op)
-  inline Scalar operator() (const Scalar& a) const { return a*a; }
-  template<typename Packet>
-  inline const Packet packetOp(const Packet& a) const
-  { return internal::pmul(a,a); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_square_op<Scalar> >
-{ enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasMul }; };
-
-/** \internal
-  * \brief Template functor to compute the cube of a scalar
-  * \sa class CwiseUnaryOp, Cwise::cube()
-  */
-template<typename Scalar>
-struct scalar_cube_op {
-  EIGEN_EMPTY_STRUCT_CTOR(scalar_cube_op)
-  inline Scalar operator() (const Scalar& a) const { return a*a*a; }
-  template<typename Packet>
-  inline const Packet packetOp(const Packet& a) const
-  { return internal::pmul(a,pmul(a,a)); }
-};
-template<typename Scalar>
-struct functor_traits<scalar_cube_op<Scalar> >
-{ enum { Cost = 2*NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasMul }; };
-
-// default functor traits for STL functors:
-
-template<typename T>
-struct functor_traits<std::multiplies<T> >
-{ enum { Cost = NumTraits<T>::MulCost, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::divides<T> >
-{ enum { Cost = NumTraits<T>::MulCost, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::plus<T> >
-{ enum { Cost = NumTraits<T>::AddCost, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::minus<T> >
-{ enum { Cost = NumTraits<T>::AddCost, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::negate<T> >
-{ enum { Cost = NumTraits<T>::AddCost, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::logical_or<T> >
-{ enum { Cost = 1, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::logical_and<T> >
-{ enum { Cost = 1, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::logical_not<T> >
-{ enum { Cost = 1, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::greater<T> >
-{ enum { Cost = 1, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::less<T> >
-{ enum { Cost = 1, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::greater_equal<T> >
-{ enum { Cost = 1, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::less_equal<T> >
-{ enum { Cost = 1, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::equal_to<T> >
-{ enum { Cost = 1, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::not_equal_to<T> >
-{ enum { Cost = 1, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::binder2nd<T> >
-{ enum { Cost = functor_traits<T>::Cost, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::binder1st<T> >
-{ enum { Cost = functor_traits<T>::Cost, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::unary_negate<T> >
-{ enum { Cost = 1 + functor_traits<T>::Cost, PacketAccess = false }; };
-
-template<typename T>
-struct functor_traits<std::binary_negate<T> >
-{ enum { Cost = 1 + functor_traits<T>::Cost, PacketAccess = false }; };
-
-#ifdef EIGEN_STDEXT_SUPPORT
-
-template<typename T0,typename T1>
-struct functor_traits<std::project1st<T0,T1> >
-{ enum { Cost = 0, PacketAccess = false }; };
-
-template<typename T0,typename T1>
-struct functor_traits<std::project2nd<T0,T1> >
-{ enum { Cost = 0, PacketAccess = false }; };
-
-template<typename T0,typename T1>
-struct functor_traits<std::select2nd<std::pair<T0,T1> > >
-{ enum { Cost = 0, PacketAccess = false }; };
-
-template<typename T0,typename T1>
-struct functor_traits<std::select1st<std::pair<T0,T1> > >
-{ enum { Cost = 0, PacketAccess = false }; };
-
-template<typename T0,typename T1>
-struct functor_traits<std::unary_compose<T0,T1> >
-{ enum { Cost = functor_traits<T0>::Cost + functor_traits<T1>::Cost, PacketAccess = false }; };
-
-template<typename T0,typename T1,typename T2>
-struct functor_traits<std::binary_compose<T0,T1,T2> >
-{ enum { Cost = functor_traits<T0>::Cost + functor_traits<T1>::Cost + functor_traits<T2>::Cost, PacketAccess = false }; };
-
-#endif // EIGEN_STDEXT_SUPPORT
-
-// allow to add new functors and specializations of functor_traits from outside Eigen.
-// this macro is really needed because functor_traits must be specialized after it is declared but before it is used...
-#ifdef EIGEN_FUNCTORS_PLUGIN
-#include EIGEN_FUNCTORS_PLUGIN
-#endif
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_FUNCTORS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Fuzzy.h b/vendor/eigen-3.1.91/Eigen/src/Core/Fuzzy.h
deleted file mode 100644
index 8fb9a01..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/Fuzzy.h
+++ /dev/null
@@ -1,150 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_FUZZY_H
-#define EIGEN_FUZZY_H
-
-namespace Eigen { 
-
-namespace internal
-{
-
-template<typename Derived, typename OtherDerived, bool is_integer = NumTraits<typename Derived::Scalar>::IsInteger>
-struct isApprox_selector
-{
-  static bool run(const Derived& x, const OtherDerived& y, const typename Derived::RealScalar& prec)
-  {
-    using std::min;
-    typename internal::nested<Derived,2>::type nested(x);
-    typename internal::nested<OtherDerived,2>::type otherNested(y);
-    return (nested - otherNested).cwiseAbs2().sum() <= prec * prec * (min)(nested.cwiseAbs2().sum(), otherNested.cwiseAbs2().sum());
-  }
-};
-
-template<typename Derived, typename OtherDerived>
-struct isApprox_selector<Derived, OtherDerived, true>
-{
-  static bool run(const Derived& x, const OtherDerived& y, const typename Derived::RealScalar&)
-  {
-    return x.matrix() == y.matrix();
-  }
-};
-
-template<typename Derived, typename OtherDerived, bool is_integer = NumTraits<typename Derived::Scalar>::IsInteger>
-struct isMuchSmallerThan_object_selector
-{
-  static bool run(const Derived& x, const OtherDerived& y, const typename Derived::RealScalar& prec)
-  {
-    return x.cwiseAbs2().sum() <= abs2(prec) * y.cwiseAbs2().sum();
-  }
-};
-
-template<typename Derived, typename OtherDerived>
-struct isMuchSmallerThan_object_selector<Derived, OtherDerived, true>
-{
-  static bool run(const Derived& x, const OtherDerived&, const typename Derived::RealScalar&)
-  {
-    return x.matrix() == Derived::Zero(x.rows(), x.cols()).matrix();
-  }
-};
-
-template<typename Derived, bool is_integer = NumTraits<typename Derived::Scalar>::IsInteger>
-struct isMuchSmallerThan_scalar_selector
-{
-  static bool run(const Derived& x, const typename Derived::RealScalar& y, const typename Derived::RealScalar& prec)
-  {
-    return x.cwiseAbs2().sum() <= abs2(prec * y);
-  }
-};
-
-template<typename Derived>
-struct isMuchSmallerThan_scalar_selector<Derived, true>
-{
-  static bool run(const Derived& x, const typename Derived::RealScalar&, const typename Derived::RealScalar&)
-  {
-    return x.matrix() == Derived::Zero(x.rows(), x.cols()).matrix();
-  }
-};
-
-} // end namespace internal
-
-
-/** \returns \c true if \c *this is approximately equal to \a other, within the precision
-  * determined by \a prec.
-  *
-  * \note The fuzzy compares are done multiplicatively. Two vectors \f$ v \f$ and \f$ w \f$
-  * are considered to be approximately equal within precision \f$ p \f$ if
-  * \f[ \Vert v - w \Vert \leqslant p\,\min(\Vert v\Vert, \Vert w\Vert). \f]
-  * For matrices, the comparison is done using the Hilbert-Schmidt norm (aka Frobenius norm
-  * L2 norm).
-  *
-  * \note Because of the multiplicativeness of this comparison, one can't use this function
-  * to check whether \c *this is approximately equal to the zero matrix or vector.
-  * Indeed, \c isApprox(zero) returns false unless \c *this itself is exactly the zero matrix
-  * or vector. If you want to test whether \c *this is zero, use internal::isMuchSmallerThan(const
-  * RealScalar&, RealScalar) instead.
-  *
-  * \sa internal::isMuchSmallerThan(const RealScalar&, RealScalar) const
-  */
-template<typename Derived>
-template<typename OtherDerived>
-bool DenseBase<Derived>::isApprox(
-  const DenseBase<OtherDerived>& other,
-  const RealScalar& prec
-) const
-{
-  return internal::isApprox_selector<Derived, OtherDerived>::run(derived(), other.derived(), prec);
-}
-
-/** \returns \c true if the norm of \c *this is much smaller than \a other,
-  * within the precision determined by \a prec.
-  *
-  * \note The fuzzy compares are done multiplicatively. A vector \f$ v \f$ is
-  * considered to be much smaller than \f$ x \f$ within precision \f$ p \f$ if
-  * \f[ \Vert v \Vert \leqslant p\,\vert x\vert. \f]
-  *
-  * For matrices, the comparison is done using the Hilbert-Schmidt norm. For this reason,
-  * the value of the reference scalar \a other should come from the Hilbert-Schmidt norm
-  * of a reference matrix of same dimensions.
-  *
-  * \sa isApprox(), isMuchSmallerThan(const DenseBase<OtherDerived>&, RealScalar) const
-  */
-template<typename Derived>
-bool DenseBase<Derived>::isMuchSmallerThan(
-  const typename NumTraits<Scalar>::Real& other,
-  const RealScalar& prec
-) const
-{
-  return internal::isMuchSmallerThan_scalar_selector<Derived>::run(derived(), other, prec);
-}
-
-/** \returns \c true if the norm of \c *this is much smaller than the norm of \a other,
-  * within the precision determined by \a prec.
-  *
-  * \note The fuzzy compares are done multiplicatively. A vector \f$ v \f$ is
-  * considered to be much smaller than a vector \f$ w \f$ within precision \f$ p \f$ if
-  * \f[ \Vert v \Vert \leqslant p\,\Vert w\Vert. \f]
-  * For matrices, the comparison is done using the Hilbert-Schmidt norm.
-  *
-  * \sa isApprox(), isMuchSmallerThan(const RealScalar&, RealScalar) const
-  */
-template<typename Derived>
-template<typename OtherDerived>
-bool DenseBase<Derived>::isMuchSmallerThan(
-  const DenseBase<OtherDerived>& other,
-  const RealScalar& prec
-) const
-{
-  return internal::isMuchSmallerThan_object_selector<Derived, OtherDerived>::run(derived(), other.derived(), prec);
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_FUZZY_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/GeneralProduct.h b/vendor/eigen-3.1.91/Eigen/src/Core/GeneralProduct.h
deleted file mode 100644
index 4e64483..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/GeneralProduct.h
+++ /dev/null
@@ -1,635 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_GENERAL_PRODUCT_H
-#define EIGEN_GENERAL_PRODUCT_H
-
-namespace Eigen { 
-
-/** \class GeneralProduct
-  * \ingroup Core_Module
-  *
-  * \brief Expression of the product of two general matrices or vectors
-  *
-  * \param LhsNested the type used to store the left-hand side
-  * \param RhsNested the type used to store the right-hand side
-  * \param ProductMode the type of the product
-  *
-  * This class represents an expression of the product of two general matrices.
-  * We call a general matrix, a dense matrix with full storage. For instance,
-  * This excludes triangular, selfadjoint, and sparse matrices.
-  * It is the return type of the operator* between general matrices. Its template
-  * arguments are determined automatically by ProductReturnType. Therefore,
-  * GeneralProduct should never be used direclty. To determine the result type of a
-  * function which involves a matrix product, use ProductReturnType::Type.
-  *
-  * \sa ProductReturnType, MatrixBase::operator*(const MatrixBase<OtherDerived>&)
-  */
-template<typename Lhs, typename Rhs, int ProductType = internal::product_type<Lhs,Rhs>::value>
-class GeneralProduct;
-
-enum {
-  Large = 2,
-  Small = 3
-};
-
-namespace internal {
-
-template<int Rows, int Cols, int Depth> struct product_type_selector;
-
-template<int Size, int MaxSize> struct product_size_category
-{
-  enum { is_large = MaxSize == Dynamic ||
-                    Size >= EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD,
-         value = is_large  ? Large
-               : Size == 1 ? 1
-                           : Small
-  };
-};
-
-template<typename Lhs, typename Rhs> struct product_type
-{
-  typedef typename remove_all<Lhs>::type _Lhs;
-  typedef typename remove_all<Rhs>::type _Rhs;
-  enum {
-    MaxRows  = _Lhs::MaxRowsAtCompileTime,
-    Rows  = _Lhs::RowsAtCompileTime,
-    MaxCols  = _Rhs::MaxColsAtCompileTime,
-    Cols  = _Rhs::ColsAtCompileTime,
-    MaxDepth = EIGEN_SIZE_MIN_PREFER_FIXED(_Lhs::MaxColsAtCompileTime,
-                                           _Rhs::MaxRowsAtCompileTime),
-    Depth = EIGEN_SIZE_MIN_PREFER_FIXED(_Lhs::ColsAtCompileTime,
-                                        _Rhs::RowsAtCompileTime),
-    LargeThreshold = EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
-  };
-
-  // the splitting into different lines of code here, introducing the _select enums and the typedef below,
-  // is to work around an internal compiler error with gcc 4.1 and 4.2.
-private:
-  enum {
-    rows_select = product_size_category<Rows,MaxRows>::value,
-    cols_select = product_size_category<Cols,MaxCols>::value,
-    depth_select = product_size_category<Depth,MaxDepth>::value
-  };
-  typedef product_type_selector<rows_select, cols_select, depth_select> selector;
-
-public:
-  enum {
-    value = selector::ret
-  };
-#ifdef EIGEN_DEBUG_PRODUCT
-  static void debug()
-  {
-      EIGEN_DEBUG_VAR(Rows);
-      EIGEN_DEBUG_VAR(Cols);
-      EIGEN_DEBUG_VAR(Depth);
-      EIGEN_DEBUG_VAR(rows_select);
-      EIGEN_DEBUG_VAR(cols_select);
-      EIGEN_DEBUG_VAR(depth_select);
-      EIGEN_DEBUG_VAR(value);
-  }
-#endif
-};
-
-
-/* The following allows to select the kind of product at compile time
- * based on the three dimensions of the product.
- * This is a compile time mapping from {1,Small,Large}^3 -> {product types} */
-// FIXME I'm not sure the current mapping is the ideal one.
-template<int M, int N>  struct product_type_selector<M,N,1>              { enum { ret = OuterProduct }; };
-template<int Depth>     struct product_type_selector<1,    1,    Depth>  { enum { ret = InnerProduct }; };
-template<>              struct product_type_selector<1,    1,    1>      { enum { ret = InnerProduct }; };
-template<>              struct product_type_selector<Small,1,    Small>  { enum { ret = CoeffBasedProductMode }; };
-template<>              struct product_type_selector<1,    Small,Small>  { enum { ret = CoeffBasedProductMode }; };
-template<>              struct product_type_selector<Small,Small,Small>  { enum { ret = CoeffBasedProductMode }; };
-template<>              struct product_type_selector<Small, Small, 1>    { enum { ret = LazyCoeffBasedProductMode }; };
-template<>              struct product_type_selector<Small, Large, 1>    { enum { ret = LazyCoeffBasedProductMode }; };
-template<>              struct product_type_selector<Large, Small, 1>    { enum { ret = LazyCoeffBasedProductMode }; };
-template<>              struct product_type_selector<1,    Large,Small>  { enum { ret = CoeffBasedProductMode }; };
-template<>              struct product_type_selector<1,    Large,Large>  { enum { ret = GemvProduct }; };
-template<>              struct product_type_selector<1,    Small,Large>  { enum { ret = CoeffBasedProductMode }; };
-template<>              struct product_type_selector<Large,1,    Small>  { enum { ret = CoeffBasedProductMode }; };
-template<>              struct product_type_selector<Large,1,    Large>  { enum { ret = GemvProduct }; };
-template<>              struct product_type_selector<Small,1,    Large>  { enum { ret = CoeffBasedProductMode }; };
-template<>              struct product_type_selector<Small,Small,Large>  { enum { ret = GemmProduct }; };
-template<>              struct product_type_selector<Large,Small,Large>  { enum { ret = GemmProduct }; };
-template<>              struct product_type_selector<Small,Large,Large>  { enum { ret = GemmProduct }; };
-template<>              struct product_type_selector<Large,Large,Large>  { enum { ret = GemmProduct }; };
-template<>              struct product_type_selector<Large,Small,Small>  { enum { ret = GemmProduct }; };
-template<>              struct product_type_selector<Small,Large,Small>  { enum { ret = GemmProduct }; };
-template<>              struct product_type_selector<Large,Large,Small>  { enum { ret = GemmProduct }; };
-
-} // end namespace internal
-
-/** \class ProductReturnType
-  * \ingroup Core_Module
-  *
-  * \brief Helper class to get the correct and optimized returned type of operator*
-  *
-  * \param Lhs the type of the left-hand side
-  * \param Rhs the type of the right-hand side
-  * \param ProductMode the type of the product (determined automatically by internal::product_mode)
-  *
-  * This class defines the typename Type representing the optimized product expression
-  * between two matrix expressions. In practice, using ProductReturnType<Lhs,Rhs>::Type
-  * is the recommended way to define the result type of a function returning an expression
-  * which involve a matrix product. The class Product should never be
-  * used directly.
-  *
-  * \sa class Product, MatrixBase::operator*(const MatrixBase<OtherDerived>&)
-  */
-template<typename Lhs, typename Rhs, int ProductType>
-struct ProductReturnType
-{
-  // TODO use the nested type to reduce instanciations ????
-//   typedef typename internal::nested<Lhs,Rhs::ColsAtCompileTime>::type LhsNested;
-//   typedef typename internal::nested<Rhs,Lhs::RowsAtCompileTime>::type RhsNested;
-
-  typedef GeneralProduct<Lhs/*Nested*/, Rhs/*Nested*/, ProductType> Type;
-};
-
-template<typename Lhs, typename Rhs>
-struct ProductReturnType<Lhs,Rhs,CoeffBasedProductMode>
-{
-  typedef typename internal::nested<Lhs, Rhs::ColsAtCompileTime, typename internal::plain_matrix_type<Lhs>::type >::type LhsNested;
-  typedef typename internal::nested<Rhs, Lhs::RowsAtCompileTime, typename internal::plain_matrix_type<Rhs>::type >::type RhsNested;
-  typedef CoeffBasedProduct<LhsNested, RhsNested, EvalBeforeAssigningBit | EvalBeforeNestingBit> Type;
-};
-
-template<typename Lhs, typename Rhs>
-struct ProductReturnType<Lhs,Rhs,LazyCoeffBasedProductMode>
-{
-  typedef typename internal::nested<Lhs, Rhs::ColsAtCompileTime, typename internal::plain_matrix_type<Lhs>::type >::type LhsNested;
-  typedef typename internal::nested<Rhs, Lhs::RowsAtCompileTime, typename internal::plain_matrix_type<Rhs>::type >::type RhsNested;
-  typedef CoeffBasedProduct<LhsNested, RhsNested, NestByRefBit> Type;
-};
-
-// this is a workaround for sun CC
-template<typename Lhs, typename Rhs>
-struct LazyProductReturnType : public ProductReturnType<Lhs,Rhs,LazyCoeffBasedProductMode>
-{};
-
-/***********************************************************************
-*  Implementation of Inner Vector Vector Product
-***********************************************************************/
-
-// FIXME : maybe the "inner product" could return a Scalar
-// instead of a 1x1 matrix ??
-// Pro: more natural for the user
-// Cons: this could be a problem if in a meta unrolled algorithm a matrix-matrix
-// product ends up to a row-vector times col-vector product... To tackle this use
-// case, we could have a specialization for Block<MatrixType,1,1> with: operator=(Scalar x);
-
-namespace internal {
-
-template<typename Lhs, typename Rhs>
-struct traits<GeneralProduct<Lhs,Rhs,InnerProduct> >
- : traits<Matrix<typename scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType,1,1> >
-{};
-
-}
-
-template<typename Lhs, typename Rhs>
-class GeneralProduct<Lhs, Rhs, InnerProduct>
-  : internal::no_assignment_operator,
-    public Matrix<typename internal::scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType,1,1>
-{
-    typedef Matrix<typename internal::scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType,1,1> Base;
-  public:
-    GeneralProduct(const Lhs& lhs, const Rhs& rhs)
-    {
-      EIGEN_STATIC_ASSERT((internal::is_same<typename Lhs::RealScalar, typename Rhs::RealScalar>::value),
-        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
-
-      Base::coeffRef(0,0) = (lhs.transpose().cwiseProduct(rhs)).sum();
-    }
-
-    /** Convertion to scalar */
-    operator const typename Base::Scalar() const {
-      return Base::coeff(0,0);
-    }
-};
-
-/***********************************************************************
-*  Implementation of Outer Vector Vector Product
-***********************************************************************/
-
-namespace internal {
-
-// Column major
-template<typename ProductType, typename Dest, typename Func>
-EIGEN_DONT_INLINE void outer_product_selector_run(const ProductType& prod, Dest& dest, const Func& func, const false_type&)
-{
-  typedef typename Dest::Index Index;
-  // FIXME make sure lhs is sequentially stored
-  // FIXME not very good if rhs is real and lhs complex while alpha is real too
-  const Index cols = dest.cols();
-  for (Index j=0; j<cols; ++j)
-    func(dest.col(j), prod.rhs().coeff(j) * prod.lhs());
-}
-
-// Row major
-template<typename ProductType, typename Dest, typename Func>
-EIGEN_DONT_INLINE void outer_product_selector_run(const ProductType& prod, Dest& dest, const Func& func, const true_type&) {
-  typedef typename Dest::Index Index;
-  // FIXME make sure rhs is sequentially stored
-  // FIXME not very good if lhs is real and rhs complex while alpha is real too
-  const Index rows = dest.rows();
-  for (Index i=0; i<rows; ++i)
-    func(dest.row(i), prod.lhs().coeff(i) * prod.rhs());
-}
-
-template<typename Lhs, typename Rhs>
-struct traits<GeneralProduct<Lhs,Rhs,OuterProduct> >
- : traits<ProductBase<GeneralProduct<Lhs,Rhs,OuterProduct>, Lhs, Rhs> >
-{};
-
-}
-
-template<typename Lhs, typename Rhs>
-class GeneralProduct<Lhs, Rhs, OuterProduct>
-  : public ProductBase<GeneralProduct<Lhs,Rhs,OuterProduct>, Lhs, Rhs>
-{
-    template<typename T> struct IsRowMajor : internal::conditional<(int(T::Flags)&RowMajorBit), internal::true_type, internal::false_type>::type {};
-    
-  public:
-    EIGEN_PRODUCT_PUBLIC_INTERFACE(GeneralProduct)
-
-    GeneralProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
-    {
-      EIGEN_STATIC_ASSERT((internal::is_same<typename Lhs::RealScalar, typename Rhs::RealScalar>::value),
-        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
-    }
-    
-    struct set  { template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const { dst.const_cast_derived()  = src; } };
-    struct add  { template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const { dst.const_cast_derived() += src; } };
-    struct sub  { template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const { dst.const_cast_derived() -= src; } };
-    struct adds {
-      Scalar m_scale;
-      adds(const Scalar& s) : m_scale(s) {}
-      template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const {
-        dst.const_cast_derived() += m_scale * src;
-      }
-    };
-    
-    template<typename Dest>
-    inline void evalTo(Dest& dest) const {
-      internal::outer_product_selector_run(*this, dest, set(), IsRowMajor<Dest>());
-    }
-    
-    template<typename Dest>
-    inline void addTo(Dest& dest) const {
-      internal::outer_product_selector_run(*this, dest, add(), IsRowMajor<Dest>());
-    }
-
-    template<typename Dest>
-    inline void subTo(Dest& dest) const {
-      internal::outer_product_selector_run(*this, dest, sub(), IsRowMajor<Dest>());
-    }
-
-    template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
-    {
-      internal::outer_product_selector_run(*this, dest, adds(alpha), IsRowMajor<Dest>());
-    }
-};
-
-/***********************************************************************
-*  Implementation of General Matrix Vector Product
-***********************************************************************/
-
-/*  According to the shape/flags of the matrix we have to distinghish 3 different cases:
- *   1 - the matrix is col-major, BLAS compatible and M is large => call fast BLAS-like colmajor routine
- *   2 - the matrix is row-major, BLAS compatible and N is large => call fast BLAS-like rowmajor routine
- *   3 - all other cases are handled using a simple loop along the outer-storage direction.
- *  Therefore we need a lower level meta selector.
- *  Furthermore, if the matrix is the rhs, then the product has to be transposed.
- */
-namespace internal {
-
-template<typename Lhs, typename Rhs>
-struct traits<GeneralProduct<Lhs,Rhs,GemvProduct> >
- : traits<ProductBase<GeneralProduct<Lhs,Rhs,GemvProduct>, Lhs, Rhs> >
-{};
-
-template<int Side, int StorageOrder, bool BlasCompatible>
-struct gemv_selector;
-
-} // end namespace internal
-
-template<typename Lhs, typename Rhs>
-class GeneralProduct<Lhs, Rhs, GemvProduct>
-  : public ProductBase<GeneralProduct<Lhs,Rhs,GemvProduct>, Lhs, Rhs>
-{
-  public:
-    EIGEN_PRODUCT_PUBLIC_INTERFACE(GeneralProduct)
-
-    typedef typename Lhs::Scalar LhsScalar;
-    typedef typename Rhs::Scalar RhsScalar;
-
-    GeneralProduct(const Lhs& a_lhs, const Rhs& a_rhs) : Base(a_lhs,a_rhs)
-    {
-//       EIGEN_STATIC_ASSERT((internal::is_same<typename Lhs::Scalar, typename Rhs::Scalar>::value),
-//         YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
-    }
-
-    enum { Side = Lhs::IsVectorAtCompileTime ? OnTheLeft : OnTheRight };
-    typedef typename internal::conditional<int(Side)==OnTheRight,_LhsNested,_RhsNested>::type MatrixType;
-
-    template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
-    {
-      eigen_assert(m_lhs.rows() == dst.rows() && m_rhs.cols() == dst.cols());
-      internal::gemv_selector<Side,(int(MatrixType::Flags)&RowMajorBit) ? RowMajor : ColMajor,
-                       bool(internal::blas_traits<MatrixType>::HasUsableDirectAccess)>::run(*this, dst, alpha);
-    }
-};
-
-namespace internal {
-
-// The vector is on the left => transposition
-template<int StorageOrder, bool BlasCompatible>
-struct gemv_selector<OnTheLeft,StorageOrder,BlasCompatible>
-{
-  template<typename ProductType, typename Dest>
-  static void run(const ProductType& prod, Dest& dest, const typename ProductType::Scalar& alpha)
-  {
-    Transpose<Dest> destT(dest);
-    enum { OtherStorageOrder = StorageOrder == RowMajor ? ColMajor : RowMajor };
-    gemv_selector<OnTheRight,OtherStorageOrder,BlasCompatible>
-      ::run(GeneralProduct<Transpose<const typename ProductType::_RhsNested>,Transpose<const typename ProductType::_LhsNested>, GemvProduct>
-        (prod.rhs().transpose(), prod.lhs().transpose()), destT, alpha);
-  }
-};
-
-template<typename Scalar,int Size,int MaxSize,bool Cond> struct gemv_static_vector_if;
-
-template<typename Scalar,int Size,int MaxSize>
-struct gemv_static_vector_if<Scalar,Size,MaxSize,false>
-{
-  EIGEN_STRONG_INLINE  Scalar* data() { eigen_internal_assert(false && "should never be called"); return 0; }
-};
-
-template<typename Scalar,int Size>
-struct gemv_static_vector_if<Scalar,Size,Dynamic,true>
-{
-  EIGEN_STRONG_INLINE Scalar* data() { return 0; }
-};
-
-template<typename Scalar,int Size,int MaxSize>
-struct gemv_static_vector_if<Scalar,Size,MaxSize,true>
-{
-  #if EIGEN_ALIGN_STATICALLY
-  internal::plain_array<Scalar,EIGEN_SIZE_MIN_PREFER_FIXED(Size,MaxSize),0> m_data;
-  EIGEN_STRONG_INLINE Scalar* data() { return m_data.array; }
-  #else
-  // Some architectures cannot align on the stack,
-  // => let's manually enforce alignment by allocating more data and return the address of the first aligned element.
-  enum {
-    ForceAlignment  = internal::packet_traits<Scalar>::Vectorizable,
-    PacketSize      = internal::packet_traits<Scalar>::size
-  };
-  internal::plain_array<Scalar,EIGEN_SIZE_MIN_PREFER_FIXED(Size,MaxSize)+(ForceAlignment?PacketSize:0),0> m_data;
-  EIGEN_STRONG_INLINE Scalar* data() {
-    return ForceAlignment
-            ? reinterpret_cast<Scalar*>((reinterpret_cast<size_t>(m_data.array) & ~(size_t(15))) + 16)
-            : m_data.array;
-  }
-  #endif
-};
-
-template<> struct gemv_selector<OnTheRight,ColMajor,true>
-{
-  template<typename ProductType, typename Dest>
-  static inline void run(const ProductType& prod, Dest& dest, const typename ProductType::Scalar& alpha)
-  {
-    typedef typename ProductType::Index Index;
-    typedef typename ProductType::LhsScalar   LhsScalar;
-    typedef typename ProductType::RhsScalar   RhsScalar;
-    typedef typename ProductType::Scalar      ResScalar;
-    typedef typename ProductType::RealScalar  RealScalar;
-    typedef typename ProductType::ActualLhsType ActualLhsType;
-    typedef typename ProductType::ActualRhsType ActualRhsType;
-    typedef typename ProductType::LhsBlasTraits LhsBlasTraits;
-    typedef typename ProductType::RhsBlasTraits RhsBlasTraits;
-    typedef Map<Matrix<ResScalar,Dynamic,1>, Aligned> MappedDest;
-
-    ActualLhsType actualLhs = LhsBlasTraits::extract(prod.lhs());
-    ActualRhsType actualRhs = RhsBlasTraits::extract(prod.rhs());
-
-    ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs())
-                                  * RhsBlasTraits::extractScalarFactor(prod.rhs());
-
-    enum {
-      // FIXME find a way to allow an inner stride on the result if packet_traits<Scalar>::size==1
-      // on, the other hand it is good for the cache to pack the vector anyways...
-      EvalToDestAtCompileTime = Dest::InnerStrideAtCompileTime==1,
-      ComplexByReal = (NumTraits<LhsScalar>::IsComplex) && (!NumTraits<RhsScalar>::IsComplex),
-      MightCannotUseDest = (Dest::InnerStrideAtCompileTime!=1) || ComplexByReal
-    };
-
-    gemv_static_vector_if<ResScalar,Dest::SizeAtCompileTime,Dest::MaxSizeAtCompileTime,MightCannotUseDest> static_dest;
-
-    bool alphaIsCompatible = (!ComplexByReal) || (imag(actualAlpha)==RealScalar(0));
-    bool evalToDest = EvalToDestAtCompileTime && alphaIsCompatible;
-    
-    RhsScalar compatibleAlpha = get_factor<ResScalar,RhsScalar>::run(actualAlpha);
-
-    ei_declare_aligned_stack_constructed_variable(ResScalar,actualDestPtr,dest.size(),
-                                                  evalToDest ? dest.data() : static_dest.data());
-    
-    if(!evalToDest)
-    {
-      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
-      int size = dest.size();
-      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
-      #endif
-      if(!alphaIsCompatible)
-      {
-        MappedDest(actualDestPtr, dest.size()).setZero();
-        compatibleAlpha = RhsScalar(1);
-      }
-      else
-        MappedDest(actualDestPtr, dest.size()) = dest;
-    }
-
-    general_matrix_vector_product
-      <Index,LhsScalar,ColMajor,LhsBlasTraits::NeedToConjugate,RhsScalar,RhsBlasTraits::NeedToConjugate>::run(
-        actualLhs.rows(), actualLhs.cols(),
-        actualLhs.data(), actualLhs.outerStride(),
-        actualRhs.data(), actualRhs.innerStride(),
-        actualDestPtr, 1,
-        compatibleAlpha);
-
-    if (!evalToDest)
-    {
-      if(!alphaIsCompatible)
-        dest += actualAlpha * MappedDest(actualDestPtr, dest.size());
-      else
-        dest = MappedDest(actualDestPtr, dest.size());
-    }
-  }
-};
-
-template<> struct gemv_selector<OnTheRight,RowMajor,true>
-{
-  template<typename ProductType, typename Dest>
-  static void run(const ProductType& prod, Dest& dest, const typename ProductType::Scalar& alpha)
-  {
-    typedef typename ProductType::LhsScalar LhsScalar;
-    typedef typename ProductType::RhsScalar RhsScalar;
-    typedef typename ProductType::Scalar    ResScalar;
-    typedef typename ProductType::Index Index;
-    typedef typename ProductType::ActualLhsType ActualLhsType;
-    typedef typename ProductType::ActualRhsType ActualRhsType;
-    typedef typename ProductType::_ActualRhsType _ActualRhsType;
-    typedef typename ProductType::LhsBlasTraits LhsBlasTraits;
-    typedef typename ProductType::RhsBlasTraits RhsBlasTraits;
-
-    typename add_const<ActualLhsType>::type actualLhs = LhsBlasTraits::extract(prod.lhs());
-    typename add_const<ActualRhsType>::type actualRhs = RhsBlasTraits::extract(prod.rhs());
-
-    ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs())
-                                  * RhsBlasTraits::extractScalarFactor(prod.rhs());
-
-    enum {
-      // FIXME find a way to allow an inner stride on the result if packet_traits<Scalar>::size==1
-      // on, the other hand it is good for the cache to pack the vector anyways...
-      DirectlyUseRhs = _ActualRhsType::InnerStrideAtCompileTime==1
-    };
-
-    gemv_static_vector_if<RhsScalar,_ActualRhsType::SizeAtCompileTime,_ActualRhsType::MaxSizeAtCompileTime,!DirectlyUseRhs> static_rhs;
-
-    ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhsPtr,actualRhs.size(),
-        DirectlyUseRhs ? const_cast<RhsScalar*>(actualRhs.data()) : static_rhs.data());
-
-    if(!DirectlyUseRhs)
-    {
-      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
-      int size = actualRhs.size();
-      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
-      #endif
-      Map<typename _ActualRhsType::PlainObject>(actualRhsPtr, actualRhs.size()) = actualRhs;
-    }
-
-    general_matrix_vector_product
-      <Index,LhsScalar,RowMajor,LhsBlasTraits::NeedToConjugate,RhsScalar,RhsBlasTraits::NeedToConjugate>::run(
-        actualLhs.rows(), actualLhs.cols(),
-        actualLhs.data(), actualLhs.outerStride(),
-        actualRhsPtr, 1,
-        dest.data(), dest.innerStride(),
-        actualAlpha);
-  }
-};
-
-template<> struct gemv_selector<OnTheRight,ColMajor,false>
-{
-  template<typename ProductType, typename Dest>
-  static void run(const ProductType& prod, Dest& dest, const typename ProductType::Scalar& alpha)
-  {
-    typedef typename Dest::Index Index;
-    // TODO makes sure dest is sequentially stored in memory, otherwise use a temp
-    const Index size = prod.rhs().rows();
-    for(Index k=0; k<size; ++k)
-      dest += (alpha*prod.rhs().coeff(k)) * prod.lhs().col(k);
-  }
-};
-
-template<> struct gemv_selector<OnTheRight,RowMajor,false>
-{
-  template<typename ProductType, typename Dest>
-  static void run(const ProductType& prod, Dest& dest, const typename ProductType::Scalar& alpha)
-  {
-    typedef typename Dest::Index Index;
-    // TODO makes sure rhs is sequentially stored in memory, otherwise use a temp
-    const Index rows = prod.rows();
-    for(Index i=0; i<rows; ++i)
-      dest.coeffRef(i) += alpha * (prod.lhs().row(i).cwiseProduct(prod.rhs().transpose())).sum();
-  }
-};
-
-} // end namespace internal
-
-/***************************************************************************
-* Implementation of matrix base methods
-***************************************************************************/
-
-/** \returns the matrix product of \c *this and \a other.
-  *
-  * \note If instead of the matrix product you want the coefficient-wise product, see Cwise::operator*().
-  *
-  * \sa lazyProduct(), operator*=(const MatrixBase&), Cwise::operator*()
-  */
-template<typename Derived>
-template<typename OtherDerived>
-inline const typename ProductReturnType<Derived, OtherDerived>::Type
-MatrixBase<Derived>::operator*(const MatrixBase<OtherDerived> &other) const
-{
-  // A note regarding the function declaration: In MSVC, this function will sometimes
-  // not be inlined since DenseStorage is an unwindable object for dynamic
-  // matrices and product types are holding a member to store the result.
-  // Thus it does not help tagging this function with EIGEN_STRONG_INLINE.
-  enum {
-    ProductIsValid =  Derived::ColsAtCompileTime==Dynamic
-                   || OtherDerived::RowsAtCompileTime==Dynamic
-                   || int(Derived::ColsAtCompileTime)==int(OtherDerived::RowsAtCompileTime),
-    AreVectors = Derived::IsVectorAtCompileTime && OtherDerived::IsVectorAtCompileTime,
-    SameSizes = EIGEN_PREDICATE_SAME_MATRIX_SIZE(Derived,OtherDerived)
-  };
-  // note to the lost user:
-  //    * for a dot product use: v1.dot(v2)
-  //    * for a coeff-wise product use: v1.cwiseProduct(v2)
-  EIGEN_STATIC_ASSERT(ProductIsValid || !(AreVectors && SameSizes),
-    INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS)
-  EIGEN_STATIC_ASSERT(ProductIsValid || !(SameSizes && !AreVectors),
-    INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION)
-  EIGEN_STATIC_ASSERT(ProductIsValid || SameSizes, INVALID_MATRIX_PRODUCT)
-#ifdef EIGEN_DEBUG_PRODUCT
-  internal::product_type<Derived,OtherDerived>::debug();
-#endif
-  return typename ProductReturnType<Derived,OtherDerived>::Type(derived(), other.derived());
-}
-
-/** \returns an expression of the matrix product of \c *this and \a other without implicit evaluation.
-  *
-  * The returned product will behave like any other expressions: the coefficients of the product will be
-  * computed once at a time as requested. This might be useful in some extremely rare cases when only
-  * a small and no coherent fraction of the result's coefficients have to be computed.
-  *
-  * \warning This version of the matrix product can be much much slower. So use it only if you know
-  * what you are doing and that you measured a true speed improvement.
-  *
-  * \sa operator*(const MatrixBase&)
-  */
-template<typename Derived>
-template<typename OtherDerived>
-const typename LazyProductReturnType<Derived,OtherDerived>::Type
-MatrixBase<Derived>::lazyProduct(const MatrixBase<OtherDerived> &other) const
-{
-  enum {
-    ProductIsValid =  Derived::ColsAtCompileTime==Dynamic
-                   || OtherDerived::RowsAtCompileTime==Dynamic
-                   || int(Derived::ColsAtCompileTime)==int(OtherDerived::RowsAtCompileTime),
-    AreVectors = Derived::IsVectorAtCompileTime && OtherDerived::IsVectorAtCompileTime,
-    SameSizes = EIGEN_PREDICATE_SAME_MATRIX_SIZE(Derived,OtherDerived)
-  };
-  // note to the lost user:
-  //    * for a dot product use: v1.dot(v2)
-  //    * for a coeff-wise product use: v1.cwiseProduct(v2)
-  EIGEN_STATIC_ASSERT(ProductIsValid || !(AreVectors && SameSizes),
-    INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS)
-  EIGEN_STATIC_ASSERT(ProductIsValid || !(SameSizes && !AreVectors),
-    INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION)
-  EIGEN_STATIC_ASSERT(ProductIsValid || SameSizes, INVALID_MATRIX_PRODUCT)
-
-  return typename LazyProductReturnType<Derived,OtherDerived>::Type(derived(), other.derived());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_PRODUCT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/GenericPacketMath.h b/vendor/eigen-3.1.91/Eigen/src/Core/GenericPacketMath.h
deleted file mode 100644
index 6429442..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/GenericPacketMath.h
+++ /dev/null
@@ -1,350 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_GENERIC_PACKET_MATH_H
-#define EIGEN_GENERIC_PACKET_MATH_H
-
-namespace Eigen {
-
-namespace internal {
-
-/** \internal
-  * \file GenericPacketMath.h
-  *
-  * Default implementation for types not supported by the vectorization.
-  * In practice these functions are provided to make easier the writing
-  * of generic vectorized code.
-  */
-
-#ifndef EIGEN_DEBUG_ALIGNED_LOAD
-#define EIGEN_DEBUG_ALIGNED_LOAD
-#endif
-
-#ifndef EIGEN_DEBUG_UNALIGNED_LOAD
-#define EIGEN_DEBUG_UNALIGNED_LOAD
-#endif
-
-#ifndef EIGEN_DEBUG_ALIGNED_STORE
-#define EIGEN_DEBUG_ALIGNED_STORE
-#endif
-
-#ifndef EIGEN_DEBUG_UNALIGNED_STORE
-#define EIGEN_DEBUG_UNALIGNED_STORE
-#endif
-
-struct default_packet_traits
-{
-  enum {
-    HasAdd    = 1,
-    HasSub    = 1,
-    HasMul    = 1,
-    HasNegate = 1,
-    HasAbs    = 1,
-    HasAbs2   = 1,
-    HasMin    = 1,
-    HasMax    = 1,
-    HasConj   = 1,
-    HasSetLinear = 1,
-
-    HasDiv    = 0,
-    HasSqrt   = 0,
-    HasExp    = 0,
-    HasLog    = 0,
-    HasPow    = 0,
-
-    HasSin    = 0,
-    HasCos    = 0,
-    HasTan    = 0,
-    HasASin   = 0,
-    HasACos   = 0,
-    HasATan   = 0
-  };
-};
-
-template<typename T> struct packet_traits : default_packet_traits
-{
-  typedef T type;
-  enum {
-    Vectorizable = 0,
-    size = 1,
-    AlignedOnScalar = 0
-  };
-  enum {
-    HasAdd    = 0,
-    HasSub    = 0,
-    HasMul    = 0,
-    HasNegate = 0,
-    HasAbs    = 0,
-    HasAbs2   = 0,
-    HasMin    = 0,
-    HasMax    = 0,
-    HasConj   = 0,
-    HasSetLinear = 0
-  };
-};
-
-/** \internal \returns a + b (coeff-wise) */
-template<typename Packet> inline Packet
-padd(const Packet& a,
-        const Packet& b) { return a+b; }
-
-/** \internal \returns a - b (coeff-wise) */
-template<typename Packet> inline Packet
-psub(const Packet& a,
-        const Packet& b) { return a-b; }
-
-/** \internal \returns -a (coeff-wise) */
-template<typename Packet> inline Packet
-pnegate(const Packet& a) { return -a; }
-
-/** \internal \returns conj(a) (coeff-wise) */
-template<typename Packet> inline Packet
-pconj(const Packet& a) { return conj(a); }
-
-/** \internal \returns a * b (coeff-wise) */
-template<typename Packet> inline Packet
-pmul(const Packet& a,
-        const Packet& b) { return a*b; }
-
-/** \internal \returns a / b (coeff-wise) */
-template<typename Packet> inline Packet
-pdiv(const Packet& a,
-        const Packet& b) { return a/b; }
-
-/** \internal \returns the min of \a a and \a b  (coeff-wise) */
-template<typename Packet> inline Packet
-pmin(const Packet& a,
-        const Packet& b) { using std::min; return (min)(a, b); }
-
-/** \internal \returns the max of \a a and \a b  (coeff-wise) */
-template<typename Packet> inline Packet
-pmax(const Packet& a,
-        const Packet& b) { using std::max; return (max)(a, b); }
-
-/** \internal \returns the absolute value of \a a */
-template<typename Packet> inline Packet
-pabs(const Packet& a) { using std::abs; return abs(a); }
-
-/** \internal \returns the bitwise and of \a a and \a b */
-template<typename Packet> inline Packet
-pand(const Packet& a, const Packet& b) { return a & b; }
-
-/** \internal \returns the bitwise or of \a a and \a b */
-template<typename Packet> inline Packet
-por(const Packet& a, const Packet& b) { return a | b; }
-
-/** \internal \returns the bitwise xor of \a a and \a b */
-template<typename Packet> inline Packet
-pxor(const Packet& a, const Packet& b) { return a ^ b; }
-
-/** \internal \returns the bitwise andnot of \a a and \a b */
-template<typename Packet> inline Packet
-pandnot(const Packet& a, const Packet& b) { return a & (!b); }
-
-/** \internal \returns a packet version of \a *from, from must be 16 bytes aligned */
-template<typename Packet> inline Packet
-pload(const typename unpacket_traits<Packet>::type* from) { return *from; }
-
-/** \internal \returns a packet version of \a *from, (un-aligned load) */
-template<typename Packet> inline Packet
-ploadu(const typename unpacket_traits<Packet>::type* from) { return *from; }
-
-/** \internal \returns a packet with elements of \a *from duplicated.
-  * For instance, for a packet of 8 elements, 4 scalar will be read from \a *from and
-  * duplicated to form: {from[0],from[0],from[1],from[1],,from[2],from[2],,from[3],from[3]}
-  * Currently, this function is only used for scalar * complex products.
- */
-template<typename Packet> inline Packet
-ploaddup(const typename unpacket_traits<Packet>::type* from) { return *from; }
-
-/** \internal \returns a packet with constant coefficients \a a, e.g.: (a,a,a,a) */
-template<typename Packet> inline Packet
-pset1(const typename unpacket_traits<Packet>::type& a) { return a; }
-
-/** \internal \brief Returns a packet with coefficients (a,a+1,...,a+packet_size-1). */
-template<typename Scalar> inline typename packet_traits<Scalar>::type
-plset(const Scalar& a) { return a; }
-
-/** \internal copy the packet \a from to \a *to, \a to must be 16 bytes aligned */
-template<typename Scalar, typename Packet> inline void pstore(Scalar* to, const Packet& from)
-{ (*to) = from; }
-
-/** \internal copy the packet \a from to \a *to, (un-aligned store) */
-template<typename Scalar, typename Packet> inline void pstoreu(Scalar* to, const Packet& from)
-{ (*to) = from; }
-
-/** \internal tries to do cache prefetching of \a addr */
-template<typename Scalar> inline void prefetch(const Scalar* addr)
-{
-#if !defined(_MSC_VER)
-__builtin_prefetch(addr);
-#endif
-}
-
-/** \internal \returns the first element of a packet */
-template<typename Packet> inline typename unpacket_traits<Packet>::type pfirst(const Packet& a)
-{ return a; }
-
-/** \internal \returns a packet where the element i contains the sum of the packet of \a vec[i] */
-template<typename Packet> inline Packet
-preduxp(const Packet* vecs) { return vecs[0]; }
-
-/** \internal \returns the sum of the elements of \a a*/
-template<typename Packet> inline typename unpacket_traits<Packet>::type predux(const Packet& a)
-{ return a; }
-
-/** \internal \returns the product of the elements of \a a*/
-template<typename Packet> inline typename unpacket_traits<Packet>::type predux_mul(const Packet& a)
-{ return a; }
-
-/** \internal \returns the min of the elements of \a a*/
-template<typename Packet> inline typename unpacket_traits<Packet>::type predux_min(const Packet& a)
-{ return a; }
-
-/** \internal \returns the max of the elements of \a a*/
-template<typename Packet> inline typename unpacket_traits<Packet>::type predux_max(const Packet& a)
-{ return a; }
-
-/** \internal \returns the reversed elements of \a a*/
-template<typename Packet> inline Packet preverse(const Packet& a)
-{ return a; }
-
-
-/** \internal \returns \a a with real and imaginary part flipped (for complex type only) */
-template<typename Packet> inline Packet pcplxflip(const Packet& a)
-{
-  // FIXME: uncomment the following in case we drop the internal imag and real functions.
-//   using std::imag;
-//   using std::real;
-  return Packet(imag(a),real(a));
-}
-
-/**************************
-* Special math functions
-***************************/
-
-/** \internal \returns the sine of \a a (coeff-wise) */
-template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
-Packet psin(const Packet& a) { using std::sin; return sin(a); }
-
-/** \internal \returns the cosine of \a a (coeff-wise) */
-template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
-Packet pcos(const Packet& a) { using std::cos; return cos(a); }
-
-/** \internal \returns the tan of \a a (coeff-wise) */
-template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
-Packet ptan(const Packet& a) { using std::tan; return tan(a); }
-
-/** \internal \returns the arc sine of \a a (coeff-wise) */
-template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
-Packet pasin(const Packet& a) { using std::asin; return asin(a); }
-
-/** \internal \returns the arc cosine of \a a (coeff-wise) */
-template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
-Packet pacos(const Packet& a) { using std::acos; return acos(a); }
-
-/** \internal \returns the exp of \a a (coeff-wise) */
-template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
-Packet pexp(const Packet& a) { using std::exp; return exp(a); }
-
-/** \internal \returns the log of \a a (coeff-wise) */
-template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
-Packet plog(const Packet& a) { using std::log; return log(a); }
-
-/** \internal \returns the square-root of \a a (coeff-wise) */
-template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
-Packet psqrt(const Packet& a) { using std::sqrt; return sqrt(a); }
-
-/***************************************************************************
-* The following functions might not have to be overwritten for vectorized types
-***************************************************************************/
-
-/** \internal copy a packet with constant coeficient \a a (e.g., [a,a,a,a]) to \a *to. \a to must be 16 bytes aligned */
-// NOTE: this function must really be templated on the packet type (think about different packet types for the same scalar type)
-template<typename Packet>
-inline void pstore1(typename unpacket_traits<Packet>::type* to, const typename unpacket_traits<Packet>::type& a)
-{
-  pstore(to, pset1<Packet>(a));
-}
-
-/** \internal \returns a * b + c (coeff-wise) */
-template<typename Packet> inline Packet
-pmadd(const Packet&  a,
-         const Packet&  b,
-         const Packet&  c)
-{ return padd(pmul(a, b),c); }
-
-/** \internal \returns a packet version of \a *from.
-  * If LoadMode equals #Aligned, \a from must be 16 bytes aligned */
-template<typename Packet, int LoadMode>
-inline Packet ploadt(const typename unpacket_traits<Packet>::type* from)
-{
-  if(LoadMode == Aligned)
-    return pload<Packet>(from);
-  else
-    return ploadu<Packet>(from);
-}
-
-/** \internal copy the packet \a from to \a *to.
-  * If StoreMode equals #Aligned, \a to must be 16 bytes aligned */
-template<typename Scalar, typename Packet, int LoadMode>
-inline void pstoret(Scalar* to, const Packet& from)
-{
-  if(LoadMode == Aligned)
-    pstore(to, from);
-  else
-    pstoreu(to, from);
-}
-
-/** \internal default implementation of palign() allowing partial specialization */
-template<int Offset,typename PacketType>
-struct palign_impl
-{
-  // by default data are aligned, so there is nothing to be done :)
-  static inline void run(PacketType&, const PacketType&) {}
-};
-
-/** \internal update \a first using the concatenation of the packet_size minus \a Offset last elements
-  * of \a first and \a Offset first elements of \a second.
-  * 
-  * This function is currently only used to optimize matrix-vector products on unligned matrices.
-  * It takes 2 packets that represent a contiguous memory array, and returns a packet starting
-  * at the position \a Offset. For instance, for packets of 4 elements, we have:
-  *  Input:
-  *  - first = {f0,f1,f2,f3}
-  *  - second = {s0,s1,s2,s3}
-  * Output: 
-  *   - if Offset==0 then {f0,f1,f2,f3}
-  *   - if Offset==1 then {f1,f2,f3,s0}
-  *   - if Offset==2 then {f2,f3,s0,s1}
-  *   - if Offset==3 then {f3,s0,s1,s3}
-  */
-template<int Offset,typename PacketType>
-inline void palign(PacketType& first, const PacketType& second)
-{
-  palign_impl<Offset,PacketType>::run(first,second);
-}
-
-/***************************************************************************
-* Fast complex products (GCC generates a function call which is very slow)
-***************************************************************************/
-
-template<> inline std::complex<float> pmul(const std::complex<float>& a, const std::complex<float>& b)
-{ return std::complex<float>(real(a)*real(b) - imag(a)*imag(b), imag(a)*real(b) + real(a)*imag(b)); }
-
-template<> inline std::complex<double> pmul(const std::complex<double>& a, const std::complex<double>& b)
-{ return std::complex<double>(real(a)*real(b) - imag(a)*imag(b), imag(a)*real(b) + real(a)*imag(b)); }
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_GENERIC_PACKET_MATH_H
-
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/GlobalFunctions.h b/vendor/eigen-3.1.91/Eigen/src/Core/GlobalFunctions.h
deleted file mode 100644
index 02cae55..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/GlobalFunctions.h
+++ /dev/null
@@ -1,91 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2010-2012 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_GLOBAL_FUNCTIONS_H
-#define EIGEN_GLOBAL_FUNCTIONS_H
-
-#define EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(NAME,FUNCTOR) \
-  template<typename Derived> \
-  inline const Eigen::CwiseUnaryOp<Eigen::internal::FUNCTOR<typename Derived::Scalar>, const Derived> \
-  NAME(const Eigen::ArrayBase<Derived>& x) { \
-    return x.derived(); \
-  }
-
-#define EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(NAME,FUNCTOR) \
-  \
-  template<typename Derived> \
-  struct NAME##_retval<ArrayBase<Derived> > \
-  { \
-    typedef const Eigen::CwiseUnaryOp<Eigen::internal::FUNCTOR<typename Derived::Scalar>, const Derived> type; \
-  }; \
-  template<typename Derived> \
-  struct NAME##_impl<ArrayBase<Derived> > \
-  { \
-    static inline typename NAME##_retval<ArrayBase<Derived> >::type run(const Eigen::ArrayBase<Derived>& x) \
-    { \
-      return x.derived(); \
-    } \
-  };
-
-
-namespace Eigen
-{
-  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(real,scalar_real_op)
-  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(imag,scalar_imag_op)
-  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(sin,scalar_sin_op)
-  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(cos,scalar_cos_op)
-  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(asin,scalar_asin_op)
-  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(acos,scalar_acos_op)
-  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(tan,scalar_tan_op)
-  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(exp,scalar_exp_op)
-  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(log,scalar_log_op)
-  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(abs,scalar_abs_op)
-  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(sqrt,scalar_sqrt_op)
-  
-  template<typename Derived>
-  inline const Eigen::CwiseUnaryOp<Eigen::internal::scalar_pow_op<typename Derived::Scalar>, const Derived>
-  pow(const Eigen::ArrayBase<Derived>& x, const typename Derived::Scalar& exponent) {
-    return x.derived().pow(exponent);
-  }
-
-  template<typename Derived>
-  inline const Eigen::CwiseBinaryOp<Eigen::internal::scalar_binary_pow_op<typename Derived::Scalar, typename Derived::Scalar>, const Derived, const Derived>
-  pow(const Eigen::ArrayBase<Derived>& x, const Eigen::ArrayBase<Derived>& exponents) 
-  {
-    return Eigen::CwiseBinaryOp<Eigen::internal::scalar_binary_pow_op<typename Derived::Scalar, typename Derived::Scalar>, const Derived, const Derived>(
-      x.derived(),
-      exponents.derived()
-    );
-  }
-  
-  /**
-  * \brief Component-wise division of a scalar by array elements.
-  **/
-  template <typename Derived>
-  inline const Eigen::CwiseUnaryOp<Eigen::internal::scalar_inverse_mult_op<typename Derived::Scalar>, const Derived>
-    operator/(const typename Derived::Scalar& s, const Eigen::ArrayBase<Derived>& a)
-  {
-    return Eigen::CwiseUnaryOp<Eigen::internal::scalar_inverse_mult_op<typename Derived::Scalar>, const Derived>(
-      a.derived(),
-      Eigen::internal::scalar_inverse_mult_op<typename Derived::Scalar>(s)  
-    );
-  }
-
-  namespace internal
-  {
-    EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(real,scalar_real_op)
-    EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(imag,scalar_imag_op)
-    EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(abs2,scalar_abs2_op)
-  }
-}
-
-// TODO: cleanly disable those functions that are not supported on Array (internal::real_ref, internal::random, internal::isApprox...)
-
-#endif // EIGEN_GLOBAL_FUNCTIONS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/IO.h b/vendor/eigen-3.1.91/Eigen/src/Core/IO.h
deleted file mode 100644
index 50bf93d..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/IO.h
+++ /dev/null
@@ -1,249 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_IO_H
-#define EIGEN_IO_H
-
-namespace Eigen { 
-
-enum { DontAlignCols = 1 };
-enum { StreamPrecision = -1,
-       FullPrecision = -2 };
-
-namespace internal {
-template<typename Derived>
-std::ostream & print_matrix(std::ostream & s, const Derived& _m, const IOFormat& fmt);
-}
-
-/** \class IOFormat
-  * \ingroup Core_Module
-  *
-  * \brief Stores a set of parameters controlling the way matrices are printed
-  *
-  * List of available parameters:
-  *  - \b precision number of digits for floating point values, or one of the special constants \c StreamPrecision and \c FullPrecision.
-  *                 The default is the special value \c StreamPrecision which means to use the
-  *                 stream's own precision setting, as set for instance using \c cout.precision(3). The other special value
-  *                 \c FullPrecision means that the number of digits will be computed to match the full precision of each floating-point
-  *                 type.
-  *  - \b flags an OR-ed combination of flags, the default value is 0, the only currently available flag is \c DontAlignCols which
-  *             allows to disable the alignment of columns, resulting in faster code.
-  *  - \b coeffSeparator string printed between two coefficients of the same row
-  *  - \b rowSeparator string printed between two rows
-  *  - \b rowPrefix string printed at the beginning of each row
-  *  - \b rowSuffix string printed at the end of each row
-  *  - \b matPrefix string printed at the beginning of the matrix
-  *  - \b matSuffix string printed at the end of the matrix
-  *
-  * Example: \include IOFormat.cpp
-  * Output: \verbinclude IOFormat.out
-  *
-  * \sa DenseBase::format(), class WithFormat
-  */
-struct IOFormat
-{
-  /** Default contructor, see class IOFormat for the meaning of the parameters */
-  IOFormat(int _precision = StreamPrecision, int _flags = 0,
-    const std::string& _coeffSeparator = " ",
-    const std::string& _rowSeparator = "\n", const std::string& _rowPrefix="", const std::string& _rowSuffix="",
-    const std::string& _matPrefix="", const std::string& _matSuffix="")
-  : matPrefix(_matPrefix), matSuffix(_matSuffix), rowPrefix(_rowPrefix), rowSuffix(_rowSuffix), rowSeparator(_rowSeparator),
-    coeffSeparator(_coeffSeparator), precision(_precision), flags(_flags)
-  {
-    int i = int(matSuffix.length())-1;
-    while (i>=0 && matSuffix[i]!='\n')
-    {
-      rowSpacer += ' ';
-      i--;
-    }
-  }
-  std::string matPrefix, matSuffix;
-  std::string rowPrefix, rowSuffix, rowSeparator, rowSpacer;
-  std::string coeffSeparator;
-  int precision;
-  int flags;
-};
-
-/** \class WithFormat
-  * \ingroup Core_Module
-  *
-  * \brief Pseudo expression providing matrix output with given format
-  *
-  * \param ExpressionType the type of the object on which IO stream operations are performed
-  *
-  * This class represents an expression with stream operators controlled by a given IOFormat.
-  * It is the return type of DenseBase::format()
-  * and most of the time this is the only way it is used.
-  *
-  * See class IOFormat for some examples.
-  *
-  * \sa DenseBase::format(), class IOFormat
-  */
-template<typename ExpressionType>
-class WithFormat
-{
-  public:
-
-    WithFormat(const ExpressionType& matrix, const IOFormat& format)
-      : m_matrix(matrix), m_format(format)
-    {}
-
-    friend std::ostream & operator << (std::ostream & s, const WithFormat& wf)
-    {
-      return internal::print_matrix(s, wf.m_matrix.eval(), wf.m_format);
-    }
-
-  protected:
-    const typename ExpressionType::Nested m_matrix;
-    IOFormat m_format;
-};
-
-/** \returns a WithFormat proxy object allowing to print a matrix the with given
-  * format \a fmt.
-  *
-  * See class IOFormat for some examples.
-  *
-  * \sa class IOFormat, class WithFormat
-  */
-template<typename Derived>
-inline const WithFormat<Derived>
-DenseBase<Derived>::format(const IOFormat& fmt) const
-{
-  return WithFormat<Derived>(derived(), fmt);
-}
-
-namespace internal {
-
-template<typename Scalar, bool IsInteger>
-struct significant_decimals_default_impl
-{
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  static inline int run()
-  {
-    using std::ceil;
-    using std::log;
-    return cast<RealScalar,int>(ceil(-log(NumTraits<RealScalar>::epsilon())/log(RealScalar(10))));
-  }
-};
-
-template<typename Scalar>
-struct significant_decimals_default_impl<Scalar, true>
-{
-  static inline int run()
-  {
-    return 0;
-  }
-};
-
-template<typename Scalar>
-struct significant_decimals_impl
-  : significant_decimals_default_impl<Scalar, NumTraits<Scalar>::IsInteger>
-{};
-
-/** \internal
-  * print the matrix \a _m to the output stream \a s using the output format \a fmt */
-template<typename Derived>
-std::ostream & print_matrix(std::ostream & s, const Derived& _m, const IOFormat& fmt)
-{
-  if(_m.size() == 0)
-  {
-    s << fmt.matPrefix << fmt.matSuffix;
-    return s;
-  }
-  
-  typename Derived::Nested m = _m;
-  typedef typename Derived::Scalar Scalar;
-  typedef typename Derived::Index Index;
-
-  Index width = 0;
-
-  std::streamsize explicit_precision;
-  if(fmt.precision == StreamPrecision)
-  {
-    explicit_precision = 0;
-  }
-  else if(fmt.precision == FullPrecision)
-  {
-    if (NumTraits<Scalar>::IsInteger)
-    {
-      explicit_precision = 0;
-    }
-    else
-    {
-      explicit_precision = significant_decimals_impl<Scalar>::run();
-    }
-  }
-  else
-  {
-    explicit_precision = fmt.precision;
-  }
-
-  bool align_cols = !(fmt.flags & DontAlignCols);
-  if(align_cols)
-  {
-    // compute the largest width
-    for(Index j = 1; j < m.cols(); ++j)
-      for(Index i = 0; i < m.rows(); ++i)
-      {
-        std::stringstream sstr;
-        if(explicit_precision) sstr.precision(explicit_precision);
-        sstr << m.coeff(i,j);
-        width = std::max<Index>(width, Index(sstr.str().length()));
-      }
-  }
-  std::streamsize old_precision = 0;
-  if(explicit_precision) old_precision = s.precision(explicit_precision);
-  s << fmt.matPrefix;
-  for(Index i = 0; i < m.rows(); ++i)
-  {
-    if (i)
-      s << fmt.rowSpacer;
-    s << fmt.rowPrefix;
-    if(width) s.width(width);
-    s << m.coeff(i, 0);
-    for(Index j = 1; j < m.cols(); ++j)
-    {
-      s << fmt.coeffSeparator;
-      if (width) s.width(width);
-      s << m.coeff(i, j);
-    }
-    s << fmt.rowSuffix;
-    if( i < m.rows() - 1)
-      s << fmt.rowSeparator;
-  }
-  s << fmt.matSuffix;
-  if(explicit_precision) s.precision(old_precision);
-  return s;
-}
-
-} // end namespace internal
-
-/** \relates DenseBase
-  *
-  * Outputs the matrix, to the given stream.
-  *
-  * If you wish to print the matrix with a format different than the default, use DenseBase::format().
-  *
-  * It is also possible to change the default format by defining EIGEN_DEFAULT_IO_FORMAT before including Eigen headers.
-  * If not defined, this will automatically be defined to Eigen::IOFormat(), that is the Eigen::IOFormat with default parameters.
-  *
-  * \sa DenseBase::format()
-  */
-template<typename Derived>
-std::ostream & operator <<
-(std::ostream & s,
- const DenseBase<Derived> & m)
-{
-  return internal::print_matrix(s, m.eval(), EIGEN_DEFAULT_IO_FORMAT);
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_IO_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/MapBase.h b/vendor/eigen-3.1.91/Eigen/src/Core/MapBase.h
deleted file mode 100644
index 6876de5..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/MapBase.h
+++ /dev/null
@@ -1,242 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2007-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_MAPBASE_H
-#define EIGEN_MAPBASE_H
-
-#define EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived) \
-      EIGEN_STATIC_ASSERT((int(internal::traits<Derived>::Flags) & LinearAccessBit) || Derived::IsVectorAtCompileTime, \
-                          YOU_ARE_TRYING_TO_USE_AN_INDEX_BASED_ACCESSOR_ON_AN_EXPRESSION_THAT_DOES_NOT_SUPPORT_THAT)
-
-namespace Eigen { 
-
-/** \class MapBase
-  * \ingroup Core_Module
-  *
-  * \brief Base class for Map and Block expression with direct access
-  *
-  * \sa class Map, class Block
-  */
-template<typename Derived> class MapBase<Derived, ReadOnlyAccessors>
-  : public internal::dense_xpr_base<Derived>::type
-{
-  public:
-
-    typedef typename internal::dense_xpr_base<Derived>::type Base;
-    enum {
-      RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
-      ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
-      SizeAtCompileTime = Base::SizeAtCompileTime
-    };
-
-    typedef typename internal::traits<Derived>::StorageKind StorageKind;
-    typedef typename internal::traits<Derived>::Index Index;
-    typedef typename internal::traits<Derived>::Scalar Scalar;
-    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-    typedef typename internal::conditional<
-                         bool(internal::is_lvalue<Derived>::value),
-                         Scalar *,
-                         const Scalar *>::type
-                     PointerType;
-
-    using Base::derived;
-//    using Base::RowsAtCompileTime;
-//    using Base::ColsAtCompileTime;
-//    using Base::SizeAtCompileTime;
-    using Base::MaxRowsAtCompileTime;
-    using Base::MaxColsAtCompileTime;
-    using Base::MaxSizeAtCompileTime;
-    using Base::IsVectorAtCompileTime;
-    using Base::Flags;
-    using Base::IsRowMajor;
-
-    using Base::rows;
-    using Base::cols;
-    using Base::size;
-    using Base::coeff;
-    using Base::coeffRef;
-    using Base::lazyAssign;
-    using Base::eval;
-
-    using Base::innerStride;
-    using Base::outerStride;
-    using Base::rowStride;
-    using Base::colStride;
-
-    // bug 217 - compile error on ICC 11.1
-    using Base::operator=;
-
-    typedef typename Base::CoeffReturnType CoeffReturnType;
-
-    inline Index rows() const { return m_rows.value(); }
-    inline Index cols() const { return m_cols.value(); }
-
-    /** Returns a pointer to the first coefficient of the matrix or vector.
-      *
-      * \note When addressing this data, make sure to honor the strides returned by innerStride() and outerStride().
-      *
-      * \sa innerStride(), outerStride()
-      */
-    inline const Scalar* data() const { return m_data; }
-
-    inline const Scalar& coeff(Index rowId, Index colId) const
-    {
-      return m_data[colId * colStride() + rowId * rowStride()];
-    }
-
-    inline const Scalar& coeff(Index index) const
-    {
-      EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
-      return m_data[index * innerStride()];
-    }
-
-    inline const Scalar& coeffRef(Index rowId, Index colId) const
-    {
-      return this->m_data[colId * colStride() + rowId * rowStride()];
-    }
-
-    inline const Scalar& coeffRef(Index index) const
-    {
-      EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
-      return this->m_data[index * innerStride()];
-    }
-
-    template<int LoadMode>
-    inline PacketScalar packet(Index rowId, Index colId) const
-    {
-      return internal::ploadt<PacketScalar, LoadMode>
-               (m_data + (colId * colStride() + rowId * rowStride()));
-    }
-
-    template<int LoadMode>
-    inline PacketScalar packet(Index index) const
-    {
-      EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
-      return internal::ploadt<PacketScalar, LoadMode>(m_data + index * innerStride());
-    }
-
-    inline MapBase(PointerType dataPtr) : m_data(dataPtr), m_rows(RowsAtCompileTime), m_cols(ColsAtCompileTime)
-    {
-      EIGEN_STATIC_ASSERT_FIXED_SIZE(Derived)
-      checkSanity();
-    }
-
-    inline MapBase(PointerType dataPtr, Index vecSize)
-            : m_data(dataPtr),
-              m_rows(RowsAtCompileTime == Dynamic ? vecSize : Index(RowsAtCompileTime)),
-              m_cols(ColsAtCompileTime == Dynamic ? vecSize : Index(ColsAtCompileTime))
-    {
-      EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-      eigen_assert(vecSize >= 0);
-      eigen_assert(dataPtr == 0 || SizeAtCompileTime == Dynamic || SizeAtCompileTime == vecSize);
-      checkSanity();
-    }
-
-    inline MapBase(PointerType dataPtr, Index nbRows, Index nbCols)
-            : m_data(dataPtr), m_rows(nbRows), m_cols(nbCols)
-    {
-      eigen_assert( (dataPtr == 0)
-              || (   nbRows >= 0 && (RowsAtCompileTime == Dynamic || RowsAtCompileTime == nbRows)
-                  && nbCols >= 0 && (ColsAtCompileTime == Dynamic || ColsAtCompileTime == nbCols)));
-      checkSanity();
-    }
-
-  protected:
-
-    void checkSanity() const
-    {
-      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(internal::traits<Derived>::Flags&PacketAccessBit,
-                                        internal::inner_stride_at_compile_time<Derived>::ret==1),
-                          PACKET_ACCESS_REQUIRES_TO_HAVE_INNER_STRIDE_FIXED_TO_1);
-      eigen_assert(EIGEN_IMPLIES(internal::traits<Derived>::Flags&AlignedBit, (size_t(m_data) % 16) == 0)
-                   && "data is not aligned");
-    }
-
-    PointerType m_data;
-    const internal::variable_if_dynamic<Index, RowsAtCompileTime> m_rows;
-    const internal::variable_if_dynamic<Index, ColsAtCompileTime> m_cols;
-};
-
-template<typename Derived> class MapBase<Derived, WriteAccessors>
-  : public MapBase<Derived, ReadOnlyAccessors>
-{
-  public:
-
-    typedef MapBase<Derived, ReadOnlyAccessors> Base;
-
-    typedef typename Base::Scalar Scalar;
-    typedef typename Base::PacketScalar PacketScalar;
-    typedef typename Base::Index Index;
-    typedef typename Base::PointerType PointerType;
-
-    using Base::derived;
-    using Base::rows;
-    using Base::cols;
-    using Base::size;
-    using Base::coeff;
-    using Base::coeffRef;
-
-    using Base::innerStride;
-    using Base::outerStride;
-    using Base::rowStride;
-    using Base::colStride;
-
-    typedef typename internal::conditional<
-                    internal::is_lvalue<Derived>::value,
-                    Scalar,
-                    const Scalar
-                  >::type ScalarWithConstIfNotLvalue;
-
-    inline const Scalar* data() const { return this->m_data; }
-    inline ScalarWithConstIfNotLvalue* data() { return this->m_data; } // no const-cast here so non-const-correct code will give a compile error
-
-    inline ScalarWithConstIfNotLvalue& coeffRef(Index row, Index col)
-    {
-      return this->m_data[col * colStride() + row * rowStride()];
-    }
-
-    inline ScalarWithConstIfNotLvalue& coeffRef(Index index)
-    {
-      EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
-      return this->m_data[index * innerStride()];
-    }
-
-    template<int StoreMode>
-    inline void writePacket(Index row, Index col, const PacketScalar& val)
-    {
-      internal::pstoret<Scalar, PacketScalar, StoreMode>
-               (this->m_data + (col * colStride() + row * rowStride()), val);
-    }
-
-    template<int StoreMode>
-    inline void writePacket(Index index, const PacketScalar& val)
-    {
-      EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
-      internal::pstoret<Scalar, PacketScalar, StoreMode>
-                (this->m_data + index * innerStride(), val);
-    }
-
-    explicit inline MapBase(PointerType dataPtr) : Base(dataPtr) {}
-    inline MapBase(PointerType dataPtr, Index vecSize) : Base(dataPtr, vecSize) {}
-    inline MapBase(PointerType dataPtr, Index nbRows, Index nbCols) : Base(dataPtr, nbRows, nbCols) {}
-
-    Derived& operator=(const MapBase& other)
-    {
-      Base::Base::operator=(other);
-      return derived();
-    }
-
-    using Base::Base::operator=;
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_MAPBASE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/MathFunctions.h b/vendor/eigen-3.1.91/Eigen/src/Core/MathFunctions.h
deleted file mode 100644
index a2c55f2..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/MathFunctions.h
+++ /dev/null
@@ -1,753 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_MATHFUNCTIONS_H
-#define EIGEN_MATHFUNCTIONS_H
-
-namespace Eigen {
-
-namespace internal {
-
-/** \internal \struct global_math_functions_filtering_base
-  *
-  * What it does:
-  * Defines a typedef 'type' as follows:
-  * - if type T has a member typedef Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl, then
-  *   global_math_functions_filtering_base<T>::type is a typedef for it.
-  * - otherwise, global_math_functions_filtering_base<T>::type is a typedef for T.
-  *
-  * How it's used:
-  * To allow to defined the global math functions (like sin...) in certain cases, like the Array expressions.
-  * When you do sin(array1+array2), the object array1+array2 has a complicated expression type, all what you want to know
-  * is that it inherits ArrayBase. So we implement a partial specialization of sin_impl for ArrayBase<Derived>.
-  * So we must make sure to use sin_impl<ArrayBase<Derived> > and not sin_impl<Derived>, otherwise our partial specialization
-  * won't be used. How does sin know that? That's exactly what global_math_functions_filtering_base tells it.
-  *
-  * How it's implemented:
-  * SFINAE in the style of enable_if. Highly susceptible of breaking compilers. With GCC, it sure does work, but if you replace
-  * the typename dummy by an integer template parameter, it doesn't work anymore!
-  */
-
-template<typename T, typename dummy = void>
-struct global_math_functions_filtering_base
-{
-  typedef T type;
-};
-
-template<typename T> struct always_void { typedef void type; };
-
-template<typename T>
-struct global_math_functions_filtering_base
-  <T,
-   typename always_void<typename T::Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl>::type
-  >
-{
-  typedef typename T::Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl type;
-};
-
-#define EIGEN_MATHFUNC_IMPL(func, scalar) func##_impl<typename global_math_functions_filtering_base<scalar>::type>
-#define EIGEN_MATHFUNC_RETVAL(func, scalar) typename func##_retval<typename global_math_functions_filtering_base<scalar>::type>::type
-
-
-/****************************************************************************
-* Implementation of real                                                 *
-****************************************************************************/
-
-template<typename Scalar>
-struct real_impl
-{
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  static inline RealScalar run(const Scalar& x)
-  {
-    return x;
-  }
-};
-
-template<typename RealScalar>
-struct real_impl<std::complex<RealScalar> >
-{
-  static inline RealScalar run(const std::complex<RealScalar>& x)
-  {
-    using std::real;
-    return real(x);
-  }
-};
-
-template<typename Scalar>
-struct real_retval
-{
-  typedef typename NumTraits<Scalar>::Real type;
-};
-
-template<typename Scalar>
-inline EIGEN_MATHFUNC_RETVAL(real, Scalar) real(const Scalar& x)
-{
-  return EIGEN_MATHFUNC_IMPL(real, Scalar)::run(x);
-}
-
-/****************************************************************************
-* Implementation of imag                                                 *
-****************************************************************************/
-
-template<typename Scalar>
-struct imag_impl
-{
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  static inline RealScalar run(const Scalar&)
-  {
-    return RealScalar(0);
-  }
-};
-
-template<typename RealScalar>
-struct imag_impl<std::complex<RealScalar> >
-{
-  static inline RealScalar run(const std::complex<RealScalar>& x)
-  {
-    using std::imag;
-    return imag(x);
-  }
-};
-
-template<typename Scalar>
-struct imag_retval
-{
-  typedef typename NumTraits<Scalar>::Real type;
-};
-
-template<typename Scalar>
-inline EIGEN_MATHFUNC_RETVAL(imag, Scalar) imag(const Scalar& x)
-{
-  return EIGEN_MATHFUNC_IMPL(imag, Scalar)::run(x);
-}
-
-/****************************************************************************
-* Implementation of real_ref                                             *
-****************************************************************************/
-
-template<typename Scalar>
-struct real_ref_impl
-{
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  static inline RealScalar& run(Scalar& x)
-  {
-    return reinterpret_cast<RealScalar*>(&x)[0];
-  }
-  static inline const RealScalar& run(const Scalar& x)
-  {
-    return reinterpret_cast<const RealScalar*>(&x)[0];
-  }
-};
-
-template<typename Scalar>
-struct real_ref_retval
-{
-  typedef typename NumTraits<Scalar>::Real & type;
-};
-
-template<typename Scalar>
-inline typename add_const_on_value_type< EIGEN_MATHFUNC_RETVAL(real_ref, Scalar) >::type real_ref(const Scalar& x)
-{
-  return real_ref_impl<Scalar>::run(x);
-}
-
-template<typename Scalar>
-inline EIGEN_MATHFUNC_RETVAL(real_ref, Scalar) real_ref(Scalar& x)
-{
-  return EIGEN_MATHFUNC_IMPL(real_ref, Scalar)::run(x);
-}
-
-/****************************************************************************
-* Implementation of imag_ref                                             *
-****************************************************************************/
-
-template<typename Scalar, bool IsComplex>
-struct imag_ref_default_impl
-{
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  static inline RealScalar& run(Scalar& x)
-  {
-    return reinterpret_cast<RealScalar*>(&x)[1];
-  }
-  static inline const RealScalar& run(const Scalar& x)
-  {
-    return reinterpret_cast<RealScalar*>(&x)[1];
-  }
-};
-
-template<typename Scalar>
-struct imag_ref_default_impl<Scalar, false>
-{
-  static inline Scalar run(Scalar&)
-  {
-    return Scalar(0);
-  }
-  static inline const Scalar run(const Scalar&)
-  {
-    return Scalar(0);
-  }
-};
-
-template<typename Scalar>
-struct imag_ref_impl : imag_ref_default_impl<Scalar, NumTraits<Scalar>::IsComplex> {};
-
-template<typename Scalar>
-struct imag_ref_retval
-{
-  typedef typename NumTraits<Scalar>::Real & type;
-};
-
-template<typename Scalar>
-inline typename add_const_on_value_type< EIGEN_MATHFUNC_RETVAL(imag_ref, Scalar) >::type imag_ref(const Scalar& x)
-{
-  return imag_ref_impl<Scalar>::run(x);
-}
-
-template<typename Scalar>
-inline EIGEN_MATHFUNC_RETVAL(imag_ref, Scalar) imag_ref(Scalar& x)
-{
-  return EIGEN_MATHFUNC_IMPL(imag_ref, Scalar)::run(x);
-}
-
-/****************************************************************************
-* Implementation of conj                                                 *
-****************************************************************************/
-
-template<typename Scalar>
-struct conj_impl
-{
-  static inline Scalar run(const Scalar& x)
-  {
-    return x;
-  }
-};
-
-template<typename RealScalar>
-struct conj_impl<std::complex<RealScalar> >
-{
-  static inline std::complex<RealScalar> run(const std::complex<RealScalar>& x)
-  {
-    using std::conj;
-    return conj(x);
-  }
-};
-
-template<typename Scalar>
-struct conj_retval
-{
-  typedef Scalar type;
-};
-
-template<typename Scalar>
-inline EIGEN_MATHFUNC_RETVAL(conj, Scalar) conj(const Scalar& x)
-{
-  return EIGEN_MATHFUNC_IMPL(conj, Scalar)::run(x);
-}
-
-/****************************************************************************
-* Implementation of abs2                                                 *
-****************************************************************************/
-
-template<typename Scalar>
-struct abs2_impl
-{
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  static inline RealScalar run(const Scalar& x)
-  {
-    return x*x;
-  }
-};
-
-template<typename RealScalar>
-struct abs2_impl<std::complex<RealScalar> >
-{
-  static inline RealScalar run(const std::complex<RealScalar>& x)
-  {
-    return real(x)*real(x) + imag(x)*imag(x);
-  }
-};
-
-template<typename Scalar>
-struct abs2_retval
-{
-  typedef typename NumTraits<Scalar>::Real type;
-};
-
-template<typename Scalar>
-inline EIGEN_MATHFUNC_RETVAL(abs2, Scalar) abs2(const Scalar& x)
-{
-  return EIGEN_MATHFUNC_IMPL(abs2, Scalar)::run(x);
-}
-
-/****************************************************************************
-* Implementation of norm1                                                *
-****************************************************************************/
-
-template<typename Scalar, bool IsComplex>
-struct norm1_default_impl
-{
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  static inline RealScalar run(const Scalar& x)
-  {
-    using std::abs;
-    return abs(real(x)) + abs(imag(x));
-  }
-};
-
-template<typename Scalar>
-struct norm1_default_impl<Scalar, false>
-{
-  static inline Scalar run(const Scalar& x)
-  {
-    using std::abs;
-    return abs(x);
-  }
-};
-
-template<typename Scalar>
-struct norm1_impl : norm1_default_impl<Scalar, NumTraits<Scalar>::IsComplex> {};
-
-template<typename Scalar>
-struct norm1_retval
-{
-  typedef typename NumTraits<Scalar>::Real type;
-};
-
-template<typename Scalar>
-inline EIGEN_MATHFUNC_RETVAL(norm1, Scalar) norm1(const Scalar& x)
-{
-  return EIGEN_MATHFUNC_IMPL(norm1, Scalar)::run(x);
-}
-
-/****************************************************************************
-* Implementation of hypot                                                *
-****************************************************************************/
-
-template<typename Scalar>
-struct hypot_impl
-{
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  static inline RealScalar run(const Scalar& x, const Scalar& y)
-  {
-    using std::max;
-    using std::min;
-    using std::abs;
-    using std::sqrt;
-    RealScalar _x = abs(x);
-    RealScalar _y = abs(y);
-    RealScalar p = (max)(_x, _y);
-    RealScalar q = (min)(_x, _y);
-    RealScalar qp = q/p;
-    return p * sqrt(RealScalar(1) + qp*qp);
-  }
-};
-
-template<typename Scalar>
-struct hypot_retval
-{
-  typedef typename NumTraits<Scalar>::Real type;
-};
-
-template<typename Scalar>
-inline EIGEN_MATHFUNC_RETVAL(hypot, Scalar) hypot(const Scalar& x, const Scalar& y)
-{
-  return EIGEN_MATHFUNC_IMPL(hypot, Scalar)::run(x, y);
-}
-
-/****************************************************************************
-* Implementation of cast                                                 *
-****************************************************************************/
-
-template<typename OldType, typename NewType>
-struct cast_impl
-{
-  static inline NewType run(const OldType& x)
-  {
-    return static_cast<NewType>(x);
-  }
-};
-
-// here, for once, we're plainly returning NewType: we don't want cast to do weird things.
-
-template<typename OldType, typename NewType>
-inline NewType cast(const OldType& x)
-{
-  return cast_impl<OldType, NewType>::run(x);
-}
-
-/****************************************************************************
-* Implementation of atanh2                                                *
-****************************************************************************/
-
-template<typename Scalar, bool IsInteger>
-struct atanh2_default_impl
-{
-  typedef Scalar retval;
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  static inline Scalar run(const Scalar& x, const Scalar& y)
-  {
-    using std::abs;
-    using std::log;
-    using std::sqrt;
-    Scalar z = x / y;
-    if (y == Scalar(0) || abs(z) > sqrt(NumTraits<RealScalar>::epsilon()))
-      return RealScalar(0.5) * log((y + x) / (y - x));
-    else
-      return z + z*z*z / RealScalar(3);
-  }
-};
-
-template<typename Scalar>
-struct atanh2_default_impl<Scalar, true>
-{
-  static inline Scalar run(const Scalar&, const Scalar&)
-  {
-    EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar)
-    return Scalar(0);
-  }
-};
-
-template<typename Scalar>
-struct atanh2_impl : atanh2_default_impl<Scalar, NumTraits<Scalar>::IsInteger> {};
-
-template<typename Scalar>
-struct atanh2_retval
-{
-  typedef Scalar type;
-};
-
-template<typename Scalar>
-inline EIGEN_MATHFUNC_RETVAL(atanh2, Scalar) atanh2(const Scalar& x, const Scalar& y)
-{
-  return EIGEN_MATHFUNC_IMPL(atanh2, Scalar)::run(x, y);
-}
-
-/****************************************************************************
-* Implementation of pow                                                  *
-****************************************************************************/
-
-template<typename Scalar, bool IsInteger>
-struct pow_default_impl
-{
-  typedef Scalar retval;
-  static inline Scalar run(const Scalar& x, const Scalar& y)
-  {
-    using std::pow;
-    return pow(x, y);
-  }
-};
-
-template<typename Scalar>
-struct pow_default_impl<Scalar, true>
-{
-  static inline Scalar run(Scalar x, Scalar y)
-  {
-    Scalar res(1);
-    eigen_assert(!NumTraits<Scalar>::IsSigned || y >= 0);
-    if(y & 1) res *= x;
-    y >>= 1;
-    while(y)
-    {
-      x *= x;
-      if(y&1) res *= x;
-      y >>= 1;
-    }
-    return res;
-  }
-};
-
-template<typename Scalar>
-struct pow_impl : pow_default_impl<Scalar, NumTraits<Scalar>::IsInteger> {};
-
-template<typename Scalar>
-struct pow_retval
-{
-  typedef Scalar type;
-};
-
-template<typename Scalar>
-inline EIGEN_MATHFUNC_RETVAL(pow, Scalar) pow(const Scalar& x, const Scalar& y)
-{
-  return EIGEN_MATHFUNC_IMPL(pow, Scalar)::run(x, y);
-}
-
-/****************************************************************************
-* Implementation of random                                               *
-****************************************************************************/
-
-template<typename Scalar,
-         bool IsComplex,
-         bool IsInteger>
-struct random_default_impl {};
-
-template<typename Scalar>
-struct random_impl : random_default_impl<Scalar, NumTraits<Scalar>::IsComplex, NumTraits<Scalar>::IsInteger> {};
-
-template<typename Scalar>
-struct random_retval
-{
-  typedef Scalar type;
-};
-
-template<typename Scalar> inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random(const Scalar& x, const Scalar& y);
-template<typename Scalar> inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random();
-
-template<typename Scalar>
-struct random_default_impl<Scalar, false, false>
-{
-  static inline Scalar run(const Scalar& x, const Scalar& y)
-  {
-    return x + (y-x) * Scalar(std::rand()) / Scalar(RAND_MAX);
-  }
-  static inline Scalar run()
-  {
-    return run(Scalar(NumTraits<Scalar>::IsSigned ? -1 : 0), Scalar(1));
-  }
-};
-
-enum {
-  floor_log2_terminate,
-  floor_log2_move_up,
-  floor_log2_move_down,
-  floor_log2_bogus
-};
-
-template<unsigned int n, int lower, int upper> struct floor_log2_selector
-{
-  enum { middle = (lower + upper) / 2,
-         value = (upper <= lower + 1) ? int(floor_log2_terminate)
-               : (n < (1 << middle)) ? int(floor_log2_move_down)
-               : (n==0) ? int(floor_log2_bogus)
-               : int(floor_log2_move_up)
-  };
-};
-
-template<unsigned int n,
-         int lower = 0,
-         int upper = sizeof(unsigned int) * CHAR_BIT - 1,
-         int selector = floor_log2_selector<n, lower, upper>::value>
-struct floor_log2 {};
-
-template<unsigned int n, int lower, int upper>
-struct floor_log2<n, lower, upper, floor_log2_move_down>
-{
-  enum { value = floor_log2<n, lower, floor_log2_selector<n, lower, upper>::middle>::value };
-};
-
-template<unsigned int n, int lower, int upper>
-struct floor_log2<n, lower, upper, floor_log2_move_up>
-{
-  enum { value = floor_log2<n, floor_log2_selector<n, lower, upper>::middle, upper>::value };
-};
-
-template<unsigned int n, int lower, int upper>
-struct floor_log2<n, lower, upper, floor_log2_terminate>
-{
-  enum { value = (n >= ((unsigned int)(1) << (lower+1))) ? lower+1 : lower };
-};
-
-template<unsigned int n, int lower, int upper>
-struct floor_log2<n, lower, upper, floor_log2_bogus>
-{
-  // no value, error at compile time
-};
-
-template<typename Scalar>
-struct random_default_impl<Scalar, false, true>
-{
-  typedef typename NumTraits<Scalar>::NonInteger NonInteger;
-
-  static inline Scalar run(const Scalar& x, const Scalar& y)
-  {
-    return x + Scalar((NonInteger(y)-x+1) * std::rand() / (RAND_MAX + NonInteger(1)));
-  }
-
-  static inline Scalar run()
-  {
-#ifdef EIGEN_MAKING_DOCS
-    return run(Scalar(NumTraits<Scalar>::IsSigned ? -10 : 0), Scalar(10));
-#else
-    enum { rand_bits = floor_log2<(unsigned int)(RAND_MAX)+1>::value,
-           scalar_bits = sizeof(Scalar) * CHAR_BIT,
-           shift = EIGEN_PLAIN_ENUM_MAX(0, int(rand_bits) - int(scalar_bits))
-    };
-    Scalar x = Scalar(std::rand() >> shift);
-    Scalar offset = NumTraits<Scalar>::IsSigned ? Scalar(1 << (rand_bits-1)) : Scalar(0);
-    return x - offset;
-#endif
-  }
-};
-
-template<typename Scalar>
-struct random_default_impl<Scalar, true, false>
-{
-  static inline Scalar run(const Scalar& x, const Scalar& y)
-  {
-    return Scalar(random(real(x), real(y)),
-                  random(imag(x), imag(y)));
-  }
-  static inline Scalar run()
-  {
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-    return Scalar(random<RealScalar>(), random<RealScalar>());
-  }
-};
-
-template<typename Scalar>
-inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random(const Scalar& x, const Scalar& y)
-{
-  return EIGEN_MATHFUNC_IMPL(random, Scalar)::run(x, y);
-}
-
-template<typename Scalar>
-inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random()
-{
-  return EIGEN_MATHFUNC_IMPL(random, Scalar)::run();
-}
-
-/****************************************************************************
-* Implementation of fuzzy comparisons                                       *
-****************************************************************************/
-
-template<typename Scalar,
-         bool IsComplex,
-         bool IsInteger>
-struct scalar_fuzzy_default_impl {};
-
-template<typename Scalar>
-struct scalar_fuzzy_default_impl<Scalar, false, false>
-{
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  template<typename OtherScalar>
-  static inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y, const RealScalar& prec)
-  {
-    using std::abs;
-    return abs(x) <= abs(y) * prec;
-  }
-  static inline bool isApprox(const Scalar& x, const Scalar& y, const RealScalar& prec)
-  {
-    using std::min;
-    using std::abs;
-    return abs(x - y) <= (min)(abs(x), abs(y)) * prec;
-  }
-  static inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y, const RealScalar& prec)
-  {
-    return x <= y || isApprox(x, y, prec);
-  }
-};
-
-template<typename Scalar>
-struct scalar_fuzzy_default_impl<Scalar, false, true>
-{
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  template<typename OtherScalar>
-  static inline bool isMuchSmallerThan(const Scalar& x, const Scalar&, const RealScalar&)
-  {
-    return x == Scalar(0);
-  }
-  static inline bool isApprox(const Scalar& x, const Scalar& y, const RealScalar&)
-  {
-    return x == y;
-  }
-  static inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y, const RealScalar&)
-  {
-    return x <= y;
-  }
-};
-
-template<typename Scalar>
-struct scalar_fuzzy_default_impl<Scalar, true, false>
-{
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  template<typename OtherScalar>
-  static inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y, const RealScalar& prec)
-  {
-    return abs2(x) <= abs2(y) * prec * prec;
-  }
-  static inline bool isApprox(const Scalar& x, const Scalar& y, const RealScalar& prec)
-  {
-    using std::min;
-    return abs2(x - y) <= (min)(abs2(x), abs2(y)) * prec * prec;
-  }
-};
-
-template<typename Scalar>
-struct scalar_fuzzy_impl : scalar_fuzzy_default_impl<Scalar, NumTraits<Scalar>::IsComplex, NumTraits<Scalar>::IsInteger> {};
-
-template<typename Scalar, typename OtherScalar>
-inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y,
-                                   typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision())
-{
-  return scalar_fuzzy_impl<Scalar>::template isMuchSmallerThan<OtherScalar>(x, y, precision);
-}
-
-template<typename Scalar>
-inline bool isApprox(const Scalar& x, const Scalar& y,
-                          typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision())
-{
-  return scalar_fuzzy_impl<Scalar>::isApprox(x, y, precision);
-}
-
-template<typename Scalar>
-inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y,
-                                    typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision())
-{
-  return scalar_fuzzy_impl<Scalar>::isApproxOrLessThan(x, y, precision);
-}
-
-/******************************************
-***  The special case of the  bool type ***
-******************************************/
-
-template<> struct random_impl<bool>
-{
-  static inline bool run()
-  {
-    return random<int>(0,1)==0 ? false : true;
-  }
-};
-
-template<> struct scalar_fuzzy_impl<bool>
-{
-  typedef bool RealScalar;
-  
-  template<typename OtherScalar>
-  static inline bool isMuchSmallerThan(const bool& x, const bool&, const bool&)
-  {
-    return !x;
-  }
-  
-  static inline bool isApprox(bool x, bool y, bool)
-  {
-    return x == y;
-  }
-
-  static inline bool isApproxOrLessThan(const bool& x, const bool& y, const bool&)
-  {
-    return (!x) || y;
-  }
-  
-};
-
-/****************************************************************************
-* Special functions                                                          *
-****************************************************************************/
-
-// std::isfinite is non standard, so let's define our own version,
-// even though it is not very efficient.
-template<typename T> bool (isfinite)(const T& x)
-{
-  return x<NumTraits<T>::highest() && x>NumTraits<T>::lowest();
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_MATHFUNCTIONS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Matrix.h b/vendor/eigen-3.1.91/Eigen/src/Core/Matrix.h
deleted file mode 100644
index 5f6df19..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/Matrix.h
+++ /dev/null
@@ -1,405 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_MATRIX_H
-#define EIGEN_MATRIX_H
-
-namespace Eigen {
-
-/** \class Matrix
-  * \ingroup Core_Module
-  *
-  * \brief The matrix class, also used for vectors and row-vectors
-  *
-  * The %Matrix class is the work-horse for all \em dense (\ref dense "note") matrices and vectors within Eigen.
-  * Vectors are matrices with one column, and row-vectors are matrices with one row.
-  *
-  * The %Matrix class encompasses \em both fixed-size and dynamic-size objects (\ref fixedsize "note").
-  *
-  * The first three template parameters are required:
-  * \tparam _Scalar \anchor matrix_tparam_scalar Numeric type, e.g. float, double, int or std::complex<float>.
-  *                 User defined sclar types are supported as well (see \ref user_defined_scalars "here").
-  * \tparam _Rows Number of rows, or \b Dynamic
-  * \tparam _Cols Number of columns, or \b Dynamic
-  *
-  * The remaining template parameters are optional -- in most cases you don't have to worry about them.
-  * \tparam _Options \anchor matrix_tparam_options A combination of either \b #RowMajor or \b #ColMajor, and of either
-  *                 \b #AutoAlign or \b #DontAlign.
-  *                 The former controls \ref TopicStorageOrders "storage order", and defaults to column-major. The latter controls alignment, which is required
-  *                 for vectorization. It defaults to aligning matrices except for fixed sizes that aren't a multiple of the packet size.
-  * \tparam _MaxRows Maximum number of rows. Defaults to \a _Rows (\ref maxrows "note").
-  * \tparam _MaxCols Maximum number of columns. Defaults to \a _Cols (\ref maxrows "note").
-  *
-  * Eigen provides a number of typedefs covering the usual cases. Here are some examples:
-  *
-  * \li \c Matrix2d is a 2x2 square matrix of doubles (\c Matrix<double, 2, 2>)
-  * \li \c Vector4f is a vector of 4 floats (\c Matrix<float, 4, 1>)
-  * \li \c RowVector3i is a row-vector of 3 ints (\c Matrix<int, 1, 3>)
-  *
-  * \li \c MatrixXf is a dynamic-size matrix of floats (\c Matrix<float, Dynamic, Dynamic>)
-  * \li \c VectorXf is a dynamic-size vector of floats (\c Matrix<float, Dynamic, 1>)
-  *
-  * \li \c Matrix2Xf is a partially fixed-size (dynamic-size) matrix of floats (\c Matrix<float, 2, Dynamic>)
-  * \li \c MatrixX3d is a partially dynamic-size (fixed-size) matrix of double (\c Matrix<double, Dynamic, 3>)
-  *
-  * See \link matrixtypedefs this page \endlink for a complete list of predefined \em %Matrix and \em Vector typedefs.
-  *
-  * You can access elements of vectors and matrices using normal subscripting:
-  *
-  * \code
-  * Eigen::VectorXd v(10);
-  * v[0] = 0.1;
-  * v[1] = 0.2;
-  * v(0) = 0.3;
-  * v(1) = 0.4;
-  *
-  * Eigen::MatrixXi m(10, 10);
-  * m(0, 1) = 1;
-  * m(0, 2) = 2;
-  * m(0, 3) = 3;
-  * \endcode
-  *
-  * This class can be extended with the help of the plugin mechanism described on the page
-  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_MATRIX_PLUGIN.
-  *
-  * <i><b>Some notes:</b></i>
-  *
-  * <dl>
-  * <dt><b>\anchor dense Dense versus sparse:</b></dt>
-  * <dd>This %Matrix class handles dense, not sparse matrices and vectors. For sparse matrices and vectors, see the Sparse module.
-  *
-  * Dense matrices and vectors are plain usual arrays of coefficients. All the coefficients are stored, in an ordinary contiguous array.
-  * This is unlike Sparse matrices and vectors where the coefficients are stored as a list of nonzero coefficients.</dd>
-  *
-  * <dt><b>\anchor fixedsize Fixed-size versus dynamic-size:</b></dt>
-  * <dd>Fixed-size means that the numbers of rows and columns are known are compile-time. In this case, Eigen allocates the array
-  * of coefficients as a fixed-size array, as a class member. This makes sense for very small matrices, typically up to 4x4, sometimes up
-  * to 16x16. Larger matrices should be declared as dynamic-size even if one happens to know their size at compile-time.
-  *
-  * Dynamic-size means that the numbers of rows or columns are not necessarily known at compile-time. In this case they are runtime
-  * variables, and the array of coefficients is allocated dynamically on the heap.
-  *
-  * Note that \em dense matrices, be they Fixed-size or Dynamic-size, <em>do not</em> expand dynamically in the sense of a std::map.
-  * If you want this behavior, see the Sparse module.</dd>
-  *
-  * <dt><b>\anchor maxrows _MaxRows and _MaxCols:</b></dt>
-  * <dd>In most cases, one just leaves these parameters to the default values.
-  * These parameters mean the maximum size of rows and columns that the matrix may have. They are useful in cases
-  * when the exact numbers of rows and columns are not known are compile-time, but it is known at compile-time that they cannot
-  * exceed a certain value. This happens when taking dynamic-size blocks inside fixed-size matrices: in this case _MaxRows and _MaxCols
-  * are the dimensions of the original matrix, while _Rows and _Cols are Dynamic.</dd>
-  * </dl>
-  *
-  * \see MatrixBase for the majority of the API methods for matrices, \ref TopicClassHierarchy, 
-  * \ref TopicStorageOrders 
-  */
-
-namespace internal {
-template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
-struct traits<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
-{
-  typedef _Scalar Scalar;
-  typedef Dense StorageKind;
-  typedef DenseIndex Index;
-  typedef MatrixXpr XprKind;
-  enum {
-    RowsAtCompileTime = _Rows,
-    ColsAtCompileTime = _Cols,
-    MaxRowsAtCompileTime = _MaxRows,
-    MaxColsAtCompileTime = _MaxCols,
-    Flags = compute_matrix_flags<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::ret,
-    CoeffReadCost = NumTraits<Scalar>::ReadCost,
-    Options = _Options,
-    InnerStrideAtCompileTime = 1,
-    OuterStrideAtCompileTime = (Options&RowMajor) ? ColsAtCompileTime : RowsAtCompileTime
-  };
-};
-}
-
-template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
-class Matrix
-  : public PlainObjectBase<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
-{
-  public:
-
-    /** \brief Base class typedef.
-      * \sa PlainObjectBase
-      */
-    typedef PlainObjectBase<Matrix> Base;
-
-    enum { Options = _Options };
-
-    EIGEN_DENSE_PUBLIC_INTERFACE(Matrix)
-
-    typedef typename Base::PlainObject PlainObject;
-
-    using Base::base;
-    using Base::coeffRef;
-
-    /**
-      * \brief Assigns matrices to each other.
-      *
-      * \note This is a special case of the templated operator=. Its purpose is
-      * to prevent a default operator= from hiding the templated operator=.
-      *
-      * \callgraph
-      */
-    EIGEN_STRONG_INLINE Matrix& operator=(const Matrix& other)
-    {
-      return Base::_set(other);
-    }
-
-    /** \internal
-      * \brief Copies the value of the expression \a other into \c *this with automatic resizing.
-      *
-      * *this might be resized to match the dimensions of \a other. If *this was a null matrix (not already initialized),
-      * it will be initialized.
-      *
-      * Note that copying a row-vector into a vector (and conversely) is allowed.
-      * The resizing, if any, is then done in the appropriate way so that row-vectors
-      * remain row-vectors and vectors remain vectors.
-      */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Matrix& operator=(const MatrixBase<OtherDerived>& other)
-    {
-      return Base::_set(other);
-    }
-
-    /* Here, doxygen failed to copy the brief information when using \copydoc */
-
-    /**
-      * \brief Copies the generic expression \a other into *this.
-      * \copydetails DenseBase::operator=(const EigenBase<OtherDerived> &other)
-      */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Matrix& operator=(const EigenBase<OtherDerived> &other)
-    {
-      return Base::operator=(other);
-    }
-
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Matrix& operator=(const ReturnByValue<OtherDerived>& func)
-    {
-      return Base::operator=(func);
-    }
-
-    /** \brief Default constructor.
-      *
-      * For fixed-size matrices, does nothing.
-      *
-      * For dynamic-size matrices, creates an empty matrix of size 0. Does not allocate any array. Such a matrix
-      * is called a null matrix. This constructor is the unique way to create null matrices: resizing
-      * a matrix to 0 is not supported.
-      *
-      * \sa resize(Index,Index)
-      */
-    EIGEN_STRONG_INLINE explicit Matrix() : Base()
-    {
-      Base::_check_template_params();
-      EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
-    }
-
-    // FIXME is it still needed
-    Matrix(internal::constructor_without_unaligned_array_assert)
-      : Base(internal::constructor_without_unaligned_array_assert())
-    { Base::_check_template_params(); EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED }
-
-    /** \brief Constructs a vector or row-vector with given dimension. \only_for_vectors
-      *
-      * Note that this is only useful for dynamic-size vectors. For fixed-size vectors,
-      * it is redundant to pass the dimension here, so it makes more sense to use the default
-      * constructor Matrix() instead.
-      */
-    EIGEN_STRONG_INLINE explicit Matrix(Index dim)
-      : Base(dim, RowsAtCompileTime == 1 ? 1 : dim, ColsAtCompileTime == 1 ? 1 : dim)
-    {
-      Base::_check_template_params();
-      EIGEN_STATIC_ASSERT_VECTOR_ONLY(Matrix)
-      eigen_assert(dim >= 0);
-      eigen_assert(SizeAtCompileTime == Dynamic || SizeAtCompileTime == dim);
-      EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
-    }
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    template<typename T0, typename T1>
-    EIGEN_STRONG_INLINE Matrix(const T0& x, const T1& y)
-    {
-      Base::_check_template_params();
-      Base::template _init2<T0,T1>(x, y);
-    }
-    #else
-    /** \brief Constructs an uninitialized matrix with \a rows rows and \a cols columns.
-      *
-      * This is useful for dynamic-size matrices. For fixed-size matrices,
-      * it is redundant to pass these parameters, so one should use the default constructor
-      * Matrix() instead. */
-    Matrix(Index rows, Index cols);
-    /** \brief Constructs an initialized 2D vector with given coefficients */
-    Matrix(const Scalar& x, const Scalar& y);
-    #endif
-
-    /** \brief Constructs an initialized 3D vector with given coefficients */
-    EIGEN_STRONG_INLINE Matrix(const Scalar& x, const Scalar& y, const Scalar& z)
-    {
-      Base::_check_template_params();
-      EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Matrix, 3)
-      m_storage.data()[0] = x;
-      m_storage.data()[1] = y;
-      m_storage.data()[2] = z;
-    }
-    /** \brief Constructs an initialized 4D vector with given coefficients */
-    EIGEN_STRONG_INLINE Matrix(const Scalar& x, const Scalar& y, const Scalar& z, const Scalar& w)
-    {
-      Base::_check_template_params();
-      EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Matrix, 4)
-      m_storage.data()[0] = x;
-      m_storage.data()[1] = y;
-      m_storage.data()[2] = z;
-      m_storage.data()[3] = w;
-    }
-
-    explicit Matrix(const Scalar *data);
-
-    /** \brief Constructor copying the value of the expression \a other */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Matrix(const MatrixBase<OtherDerived>& other)
-             : Base(other.rows() * other.cols(), other.rows(), other.cols())
-    {
-      // This test resides here, to bring the error messages closer to the user. Normally, these checks
-      // are performed deeply within the library, thus causing long and scary error traces.
-      EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
-        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
-
-      Base::_check_template_params();
-      Base::_set_noalias(other);
-    }
-    /** \brief Copy constructor */
-    EIGEN_STRONG_INLINE Matrix(const Matrix& other)
-            : Base(other.rows() * other.cols(), other.rows(), other.cols())
-    {
-      Base::_check_template_params();
-      Base::_set_noalias(other);
-    }
-    /** \brief Copy constructor with in-place evaluation */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Matrix(const ReturnByValue<OtherDerived>& other)
-    {
-      Base::_check_template_params();
-      Base::resize(other.rows(), other.cols());
-      other.evalTo(*this);
-    }
-
-    /** \brief Copy constructor for generic expressions.
-      * \sa MatrixBase::operator=(const EigenBase<OtherDerived>&)
-      */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Matrix(const EigenBase<OtherDerived> &other)
-      : Base(other.derived().rows() * other.derived().cols(), other.derived().rows(), other.derived().cols())
-    {
-      Base::_check_template_params();
-      Base::resize(other.rows(), other.cols());
-      // FIXME/CHECK: isn't *this = other.derived() more efficient. it allows to
-      //              go for pure _set() implementations, right?
-      *this = other;
-    }
-
-    /** \internal
-      * \brief Override MatrixBase::swap() since for dynamic-sized matrices
-      * of same type it is enough to swap the data pointers.
-      */
-    template<typename OtherDerived>
-    void swap(MatrixBase<OtherDerived> const & other)
-    { this->_swap(other.derived()); }
-
-    inline Index innerStride() const { return 1; }
-    inline Index outerStride() const { return this->innerSize(); }
-
-    /////////// Geometry module ///////////
-
-    template<typename OtherDerived>
-    explicit Matrix(const RotationBase<OtherDerived,ColsAtCompileTime>& r);
-    template<typename OtherDerived>
-    Matrix& operator=(const RotationBase<OtherDerived,ColsAtCompileTime>& r);
-
-    #ifdef EIGEN2_SUPPORT
-    template<typename OtherDerived>
-    explicit Matrix(const eigen2_RotationBase<OtherDerived,ColsAtCompileTime>& r);
-    template<typename OtherDerived>
-    Matrix& operator=(const eigen2_RotationBase<OtherDerived,ColsAtCompileTime>& r);
-    #endif
-
-    // allow to extend Matrix outside Eigen
-    #ifdef EIGEN_MATRIX_PLUGIN
-    #include EIGEN_MATRIX_PLUGIN
-    #endif
-
-  protected:
-    template <typename Derived, typename OtherDerived, bool IsVector>
-    friend struct internal::conservative_resize_like_impl;
-
-    using Base::m_storage;
-};
-
-/** \defgroup matrixtypedefs Global matrix typedefs
-  *
-  * \ingroup Core_Module
-  *
-  * Eigen defines several typedef shortcuts for most common matrix and vector types.
-  *
-  * The general patterns are the following:
-  *
-  * \c MatrixSizeType where \c Size can be \c 2,\c 3,\c 4 for fixed size square matrices or \c X for dynamic size,
-  * and where \c Type can be \c i for integer, \c f for float, \c d for double, \c cf for complex float, \c cd
-  * for complex double.
-  *
-  * For example, \c Matrix3d is a fixed-size 3x3 matrix type of doubles, and \c MatrixXf is a dynamic-size matrix of floats.
-  *
-  * There are also \c VectorSizeType and \c RowVectorSizeType which are self-explanatory. For example, \c Vector4cf is
-  * a fixed-size vector of 4 complex floats.
-  *
-  * \sa class Matrix
-  */
-
-#define EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix)   \
-/** \ingroup matrixtypedefs */                                    \
-typedef Matrix<Type, Size, Size> Matrix##SizeSuffix##TypeSuffix;  \
-/** \ingroup matrixtypedefs */                                    \
-typedef Matrix<Type, Size, 1>    Vector##SizeSuffix##TypeSuffix;  \
-/** \ingroup matrixtypedefs */                                    \
-typedef Matrix<Type, 1, Size>    RowVector##SizeSuffix##TypeSuffix;
-
-#define EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, Size)         \
-/** \ingroup matrixtypedefs */                                    \
-typedef Matrix<Type, Size, Dynamic> Matrix##Size##X##TypeSuffix;  \
-/** \ingroup matrixtypedefs */                                    \
-typedef Matrix<Type, Dynamic, Size> Matrix##X##Size##TypeSuffix;
-
-#define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \
-EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 2, 2) \
-EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 3, 3) \
-EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 4, 4) \
-EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Dynamic, X) \
-EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 2) \
-EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 3) \
-EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 4)
-
-EIGEN_MAKE_TYPEDEFS_ALL_SIZES(int,                  i)
-EIGEN_MAKE_TYPEDEFS_ALL_SIZES(float,                f)
-EIGEN_MAKE_TYPEDEFS_ALL_SIZES(double,               d)
-EIGEN_MAKE_TYPEDEFS_ALL_SIZES(std::complex<float>,  cf)
-EIGEN_MAKE_TYPEDEFS_ALL_SIZES(std::complex<double>, cd)
-
-#undef EIGEN_MAKE_TYPEDEFS_ALL_SIZES
-#undef EIGEN_MAKE_TYPEDEFS
-#undef EIGEN_MAKE_FIXED_TYPEDEFS
-
-} // end namespace Eigen
-
-#endif // EIGEN_MATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/MatrixBase.h b/vendor/eigen-3.1.91/Eigen/src/Core/MatrixBase.h
deleted file mode 100644
index 198e510..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/MatrixBase.h
+++ /dev/null
@@ -1,515 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_MATRIXBASE_H
-#define EIGEN_MATRIXBASE_H
-
-namespace Eigen {
-
-/** \class MatrixBase
-  * \ingroup Core_Module
-  *
-  * \brief Base class for all dense matrices, vectors, and expressions
-  *
-  * This class is the base that is inherited by all matrix, vector, and related expression
-  * types. Most of the Eigen API is contained in this class, and its base classes. Other important
-  * classes for the Eigen API are Matrix, and VectorwiseOp.
-  *
-  * Note that some methods are defined in other modules such as the \ref LU_Module LU module
-  * for all functions related to matrix inversions.
-  *
-  * \tparam Derived is the derived type, e.g. a matrix type, or an expression, etc.
-  *
-  * When writing a function taking Eigen objects as argument, if you want your function
-  * to take as argument any matrix, vector, or expression, just let it take a
-  * MatrixBase argument. As an example, here is a function printFirstRow which, given
-  * a matrix, vector, or expression \a x, prints the first row of \a x.
-  *
-  * \code
-    template<typename Derived>
-    void printFirstRow(const Eigen::MatrixBase<Derived>& x)
-    {
-      cout << x.row(0) << endl;
-    }
-  * \endcode
-  *
-  * This class can be extended with the help of the plugin mechanism described on the page
-  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_MATRIXBASE_PLUGIN.
-  *
-  * \sa \ref TopicClassHierarchy
-  */
-template<typename Derived> class MatrixBase
-  : public DenseBase<Derived>
-{
-  public:
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    typedef MatrixBase StorageBaseType;
-    typedef typename internal::traits<Derived>::StorageKind StorageKind;
-    typedef typename internal::traits<Derived>::Index Index;
-    typedef typename internal::traits<Derived>::Scalar Scalar;
-    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-
-    typedef DenseBase<Derived> Base;
-    using Base::RowsAtCompileTime;
-    using Base::ColsAtCompileTime;
-    using Base::SizeAtCompileTime;
-    using Base::MaxRowsAtCompileTime;
-    using Base::MaxColsAtCompileTime;
-    using Base::MaxSizeAtCompileTime;
-    using Base::IsVectorAtCompileTime;
-    using Base::Flags;
-    using Base::CoeffReadCost;
-
-    using Base::derived;
-    using Base::const_cast_derived;
-    using Base::rows;
-    using Base::cols;
-    using Base::size;
-    using Base::coeff;
-    using Base::coeffRef;
-    using Base::lazyAssign;
-    using Base::eval;
-    using Base::operator+=;
-    using Base::operator-=;
-    using Base::operator*=;
-    using Base::operator/=;
-
-    typedef typename Base::CoeffReturnType CoeffReturnType;
-    typedef typename Base::ConstTransposeReturnType ConstTransposeReturnType;
-    typedef typename Base::RowXpr RowXpr;
-    typedef typename Base::ColXpr ColXpr;
-#endif // not EIGEN_PARSED_BY_DOXYGEN
-
-
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** type of the equivalent square matrix */
-    typedef Matrix<Scalar,EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime),
-                          EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime)> SquareMatrixType;
-#endif // not EIGEN_PARSED_BY_DOXYGEN
-
-    /** \returns the size of the main diagonal, which is min(rows(),cols()).
-      * \sa rows(), cols(), SizeAtCompileTime. */
-    inline Index diagonalSize() const { return (std::min)(rows(),cols()); }
-
-    /** \brief The plain matrix type corresponding to this expression.
-      *
-      * This is not necessarily exactly the return type of eval(). In the case of plain matrices,
-      * the return type of eval() is a const reference to a matrix, not a matrix! It is however guaranteed
-      * that the return type of eval() is either PlainObject or const PlainObject&.
-      */
-    typedef Matrix<typename internal::traits<Derived>::Scalar,
-                internal::traits<Derived>::RowsAtCompileTime,
-                internal::traits<Derived>::ColsAtCompileTime,
-                AutoAlign | (internal::traits<Derived>::Flags&RowMajorBit ? RowMajor : ColMajor),
-                internal::traits<Derived>::MaxRowsAtCompileTime,
-                internal::traits<Derived>::MaxColsAtCompileTime
-          > PlainObject;
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** \internal Represents a matrix with all coefficients equal to one another*/
-    typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,Derived> ConstantReturnType;
-    /** \internal the return type of MatrixBase::adjoint() */
-    typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
-                        CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, ConstTransposeReturnType>,
-                        ConstTransposeReturnType
-                     >::type AdjointReturnType;
-    /** \internal Return type of eigenvalues() */
-    typedef Matrix<std::complex<RealScalar>, internal::traits<Derived>::ColsAtCompileTime, 1, ColMajor> EigenvaluesReturnType;
-    /** \internal the return type of identity */
-    typedef CwiseNullaryOp<internal::scalar_identity_op<Scalar>,Derived> IdentityReturnType;
-    /** \internal the return type of unit vectors */
-    typedef Block<const CwiseNullaryOp<internal::scalar_identity_op<Scalar>, SquareMatrixType>,
-                  internal::traits<Derived>::RowsAtCompileTime,
-                  internal::traits<Derived>::ColsAtCompileTime> BasisReturnType;
-#endif // not EIGEN_PARSED_BY_DOXYGEN
-
-#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::MatrixBase
-#   include "../plugins/CommonCwiseUnaryOps.h"
-#   include "../plugins/CommonCwiseBinaryOps.h"
-#   include "../plugins/MatrixCwiseUnaryOps.h"
-#   include "../plugins/MatrixCwiseBinaryOps.h"
-#   ifdef EIGEN_MATRIXBASE_PLUGIN
-#     include EIGEN_MATRIXBASE_PLUGIN
-#   endif
-#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
-
-    /** Special case of the template operator=, in order to prevent the compiler
-      * from generating a default operator= (issue hit with g++ 4.1)
-      */
-    Derived& operator=(const MatrixBase& other);
-
-    // We cannot inherit here via Base::operator= since it is causing
-    // trouble with MSVC.
-
-    template <typename OtherDerived>
-    Derived& operator=(const DenseBase<OtherDerived>& other);
-
-    template <typename OtherDerived>
-    Derived& operator=(const EigenBase<OtherDerived>& other);
-
-    template<typename OtherDerived>
-    Derived& operator=(const ReturnByValue<OtherDerived>& other);
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    template<typename ProductDerived, typename Lhs, typename Rhs>
-    Derived& lazyAssign(const ProductBase<ProductDerived, Lhs,Rhs>& other);
-
-    template<typename MatrixPower, typename Lhs, typename Rhs>
-    Derived& lazyAssign(const MatrixPowerProduct<MatrixPower, Lhs,Rhs>& other);
-#endif // not EIGEN_PARSED_BY_DOXYGEN
-
-    template<typename OtherDerived>
-    Derived& operator+=(const MatrixBase<OtherDerived>& other);
-    template<typename OtherDerived>
-    Derived& operator-=(const MatrixBase<OtherDerived>& other);
-
-    template<typename OtherDerived>
-    const typename ProductReturnType<Derived,OtherDerived>::Type
-    operator*(const MatrixBase<OtherDerived> &other) const;
-
-    template<typename OtherDerived>
-    const typename LazyProductReturnType<Derived,OtherDerived>::Type
-    lazyProduct(const MatrixBase<OtherDerived> &other) const;
-
-    template<typename OtherDerived>
-    Derived& operator*=(const EigenBase<OtherDerived>& other);
-
-    template<typename OtherDerived>
-    void applyOnTheLeft(const EigenBase<OtherDerived>& other);
-
-    template<typename OtherDerived>
-    void applyOnTheRight(const EigenBase<OtherDerived>& other);
-
-    template<typename DiagonalDerived>
-    const DiagonalProduct<Derived, DiagonalDerived, OnTheRight>
-    operator*(const DiagonalBase<DiagonalDerived> &diagonal) const;
-
-    template<typename OtherDerived>
-    typename internal::scalar_product_traits<typename internal::traits<Derived>::Scalar,typename internal::traits<OtherDerived>::Scalar>::ReturnType
-    dot(const MatrixBase<OtherDerived>& other) const;
-
-    #ifdef EIGEN2_SUPPORT
-      template<typename OtherDerived>
-      Scalar eigen2_dot(const MatrixBase<OtherDerived>& other) const;
-    #endif
-
-    RealScalar squaredNorm() const;
-    RealScalar norm() const;
-    RealScalar stableNorm() const;
-    RealScalar blueNorm() const;
-    RealScalar hypotNorm() const;
-    const PlainObject normalized() const;
-    void normalize();
-
-    const AdjointReturnType adjoint() const;
-    void adjointInPlace();
-
-    typedef Diagonal<Derived> DiagonalReturnType;
-    DiagonalReturnType diagonal();
-    typedef const Diagonal<const Derived> ConstDiagonalReturnType;
-    const ConstDiagonalReturnType diagonal() const;
-
-    template<int Index> struct DiagonalIndexReturnType { typedef Diagonal<Derived,Index> Type; };
-    template<int Index> struct ConstDiagonalIndexReturnType { typedef const Diagonal<const Derived,Index> Type; };
-
-    template<int Index> typename DiagonalIndexReturnType<Index>::Type diagonal();
-    template<int Index> typename ConstDiagonalIndexReturnType<Index>::Type diagonal() const;
-
-    // Note: The "MatrixBase::" prefixes are added to help MSVC9 to match these declarations with the later implementations.
-    // On the other hand they confuse MSVC8...
-    #if (defined _MSC_VER) && (_MSC_VER >= 1500) // 2008 or later
-    typename MatrixBase::template DiagonalIndexReturnType<DynamicIndex>::Type diagonal(Index index);
-    typename MatrixBase::template ConstDiagonalIndexReturnType<DynamicIndex>::Type diagonal(Index index) const;
-    #else
-    typename DiagonalIndexReturnType<DynamicIndex>::Type diagonal(Index index);
-    typename ConstDiagonalIndexReturnType<DynamicIndex>::Type diagonal(Index index) const;
-    #endif
-
-    #ifdef EIGEN2_SUPPORT
-    template<unsigned int Mode> typename internal::eigen2_part_return_type<Derived, Mode>::type part();
-    template<unsigned int Mode> const typename internal::eigen2_part_return_type<Derived, Mode>::type part() const;
-    
-    // huuuge hack. make Eigen2's matrix.part<Diagonal>() work in eigen3. Problem: Diagonal is now a class template instead
-    // of an integer constant. Solution: overload the part() method template wrt template parameters list.
-    template<template<typename T, int N> class U>
-    const DiagonalWrapper<ConstDiagonalReturnType> part() const
-    { return diagonal().asDiagonal(); }
-    #endif // EIGEN2_SUPPORT
-
-    template<unsigned int Mode> struct TriangularViewReturnType { typedef TriangularView<Derived, Mode> Type; };
-    template<unsigned int Mode> struct ConstTriangularViewReturnType { typedef const TriangularView<const Derived, Mode> Type; };
-
-    template<unsigned int Mode> typename TriangularViewReturnType<Mode>::Type triangularView();
-    template<unsigned int Mode> typename ConstTriangularViewReturnType<Mode>::Type triangularView() const;
-
-    template<unsigned int UpLo> struct SelfAdjointViewReturnType { typedef SelfAdjointView<Derived, UpLo> Type; };
-    template<unsigned int UpLo> struct ConstSelfAdjointViewReturnType { typedef const SelfAdjointView<const Derived, UpLo> Type; };
-
-    template<unsigned int UpLo> typename SelfAdjointViewReturnType<UpLo>::Type selfadjointView();
-    template<unsigned int UpLo> typename ConstSelfAdjointViewReturnType<UpLo>::Type selfadjointView() const;
-
-    const SparseView<Derived> sparseView(const Scalar& m_reference = Scalar(0),
-                                         const typename NumTraits<Scalar>::Real& m_epsilon = NumTraits<Scalar>::dummy_precision()) const;
-    static const IdentityReturnType Identity();
-    static const IdentityReturnType Identity(Index rows, Index cols);
-    static const BasisReturnType Unit(Index size, Index i);
-    static const BasisReturnType Unit(Index i);
-    static const BasisReturnType UnitX();
-    static const BasisReturnType UnitY();
-    static const BasisReturnType UnitZ();
-    static const BasisReturnType UnitW();
-
-    const DiagonalWrapper<const Derived> asDiagonal() const;
-    const PermutationWrapper<const Derived> asPermutation() const;
-
-    Derived& setIdentity();
-    Derived& setIdentity(Index rows, Index cols);
-
-    bool isIdentity(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
-    bool isDiagonal(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
-
-    bool isUpperTriangular(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
-    bool isLowerTriangular(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
-
-    template<typename OtherDerived>
-    bool isOrthogonal(const MatrixBase<OtherDerived>& other,
-                      const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
-    bool isUnitary(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
-
-    /** \returns true if each coefficients of \c *this and \a other are all exactly equal.
-      * \warning When using floating point scalar values you probably should rather use a
-      *          fuzzy comparison such as isApprox()
-      * \sa isApprox(), operator!= */
-    template<typename OtherDerived>
-    inline bool operator==(const MatrixBase<OtherDerived>& other) const
-    { return cwiseEqual(other).all(); }
-
-    /** \returns true if at least one pair of coefficients of \c *this and \a other are not exactly equal to each other.
-      * \warning When using floating point scalar values you probably should rather use a
-      *          fuzzy comparison such as isApprox()
-      * \sa isApprox(), operator== */
-    template<typename OtherDerived>
-    inline bool operator!=(const MatrixBase<OtherDerived>& other) const
-    { return cwiseNotEqual(other).any(); }
-
-    NoAlias<Derived,Eigen::MatrixBase > noalias();
-
-    inline const ForceAlignedAccess<Derived> forceAlignedAccess() const;
-    inline ForceAlignedAccess<Derived> forceAlignedAccess();
-    template<bool Enable> inline typename internal::add_const_on_value_type<typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type>::type forceAlignedAccessIf() const;
-    template<bool Enable> inline typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type forceAlignedAccessIf();
-
-    Scalar trace() const;
-
-/////////// Array module ///////////
-
-    template<int p> RealScalar lpNorm() const;
-
-    MatrixBase<Derived>& matrix() { return *this; }
-    const MatrixBase<Derived>& matrix() const { return *this; }
-
-    /** \returns an \link Eigen::ArrayBase Array \endlink expression of this matrix
-      * \sa ArrayBase::matrix() */
-    ArrayWrapper<Derived> array() { return derived(); }
-    const ArrayWrapper<const Derived> array() const { return derived(); }
-
-/////////// LU module ///////////
-
-    const FullPivLU<PlainObject> fullPivLu() const;
-    const PartialPivLU<PlainObject> partialPivLu() const;
-
-    #if EIGEN2_SUPPORT_STAGE < STAGE20_RESOLVE_API_CONFLICTS
-    const LU<PlainObject> lu() const;
-    #endif
-
-    #ifdef EIGEN2_SUPPORT
-    const LU<PlainObject> eigen2_lu() const;
-    #endif
-
-    #if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
-    const PartialPivLU<PlainObject> lu() const;
-    #endif
-    
-    #ifdef EIGEN2_SUPPORT
-    template<typename ResultType>
-    void computeInverse(MatrixBase<ResultType> *result) const {
-      *result = this->inverse();
-    }
-    #endif
-
-    const internal::inverse_impl<Derived> inverse() const;
-    template<typename ResultType>
-    void computeInverseAndDetWithCheck(
-      ResultType& inverse,
-      typename ResultType::Scalar& determinant,
-      bool& invertible,
-      const RealScalar& absDeterminantThreshold = NumTraits<Scalar>::dummy_precision()
-    ) const;
-    template<typename ResultType>
-    void computeInverseWithCheck(
-      ResultType& inverse,
-      bool& invertible,
-      const RealScalar& absDeterminantThreshold = NumTraits<Scalar>::dummy_precision()
-    ) const;
-    Scalar determinant() const;
-
-/////////// Cholesky module ///////////
-
-    const LLT<PlainObject>  llt() const;
-    const LDLT<PlainObject> ldlt() const;
-
-/////////// QR module ///////////
-
-    const HouseholderQR<PlainObject> householderQr() const;
-    const ColPivHouseholderQR<PlainObject> colPivHouseholderQr() const;
-    const FullPivHouseholderQR<PlainObject> fullPivHouseholderQr() const;
-    
-    #ifdef EIGEN2_SUPPORT
-    const QR<PlainObject> qr() const;
-    #endif
-
-    EigenvaluesReturnType eigenvalues() const;
-    RealScalar operatorNorm() const;
-
-/////////// SVD module ///////////
-
-    JacobiSVD<PlainObject> jacobiSvd(unsigned int computationOptions = 0) const;
-
-    #ifdef EIGEN2_SUPPORT
-    SVD<PlainObject> svd() const;
-    #endif
-
-/////////// Geometry module ///////////
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    /// \internal helper struct to form the return type of the cross product
-    template<typename OtherDerived> struct cross_product_return_type {
-      typedef typename internal::scalar_product_traits<typename internal::traits<Derived>::Scalar,typename internal::traits<OtherDerived>::Scalar>::ReturnType Scalar;
-      typedef Matrix<Scalar,MatrixBase::RowsAtCompileTime,MatrixBase::ColsAtCompileTime> type;
-    };
-    #endif // EIGEN_PARSED_BY_DOXYGEN
-    template<typename OtherDerived>
-    typename cross_product_return_type<OtherDerived>::type
-    cross(const MatrixBase<OtherDerived>& other) const;
-    template<typename OtherDerived>
-    PlainObject cross3(const MatrixBase<OtherDerived>& other) const;
-    PlainObject unitOrthogonal(void) const;
-    Matrix<Scalar,3,1> eulerAngles(Index a0, Index a1, Index a2) const;
-    
-    #if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
-    ScalarMultipleReturnType operator*(const UniformScaling<Scalar>& s) const;
-    // put this as separate enum value to work around possible GCC 4.3 bug (?)
-    enum { HomogeneousReturnTypeDirection = ColsAtCompileTime==1?Vertical:Horizontal };
-    typedef Homogeneous<Derived, HomogeneousReturnTypeDirection> HomogeneousReturnType;
-    HomogeneousReturnType homogeneous() const;
-    #endif
-    
-    enum {
-      SizeMinusOne = SizeAtCompileTime==Dynamic ? Dynamic : SizeAtCompileTime-1
-    };
-    typedef Block<const Derived,
-                  internal::traits<Derived>::ColsAtCompileTime==1 ? SizeMinusOne : 1,
-                  internal::traits<Derived>::ColsAtCompileTime==1 ? 1 : SizeMinusOne> ConstStartMinusOne;
-    typedef CwiseUnaryOp<internal::scalar_quotient1_op<typename internal::traits<Derived>::Scalar>,
-                const ConstStartMinusOne > HNormalizedReturnType;
-
-    const HNormalizedReturnType hnormalized() const;
-
-////////// Householder module ///////////
-
-    void makeHouseholderInPlace(Scalar& tau, RealScalar& beta);
-    template<typename EssentialPart>
-    void makeHouseholder(EssentialPart& essential,
-                         Scalar& tau, RealScalar& beta) const;
-    template<typename EssentialPart>
-    void applyHouseholderOnTheLeft(const EssentialPart& essential,
-                                   const Scalar& tau,
-                                   Scalar* workspace);
-    template<typename EssentialPart>
-    void applyHouseholderOnTheRight(const EssentialPart& essential,
-                                    const Scalar& tau,
-                                    Scalar* workspace);
-
-///////// Jacobi module /////////
-
-    template<typename OtherScalar>
-    void applyOnTheLeft(Index p, Index q, const JacobiRotation<OtherScalar>& j);
-    template<typename OtherScalar>
-    void applyOnTheRight(Index p, Index q, const JacobiRotation<OtherScalar>& j);
-
-///////// MatrixFunctions module /////////
-
-    typedef typename internal::stem_function<Scalar>::type StemFunction;
-    const MatrixExponentialReturnValue<Derived> exp() const;
-    const MatrixFunctionReturnValue<Derived> matrixFunction(StemFunction f) const;
-    const MatrixFunctionReturnValue<Derived> cosh() const;
-    const MatrixFunctionReturnValue<Derived> sinh() const;
-    const MatrixFunctionReturnValue<Derived> cos() const;
-    const MatrixFunctionReturnValue<Derived> sin() const;
-    const MatrixSquareRootReturnValue<Derived> sqrt() const;
-    const MatrixLogarithmReturnValue<Derived> log() const;
-    const MatrixPowerReturnValue<Derived> pow(const RealScalar& p) const;
-
-#ifdef EIGEN2_SUPPORT
-    template<typename ProductDerived, typename Lhs, typename Rhs>
-    Derived& operator+=(const Flagged<ProductBase<ProductDerived, Lhs,Rhs>, 0,
-                                      EvalBeforeAssigningBit>& other);
-
-    template<typename ProductDerived, typename Lhs, typename Rhs>
-    Derived& operator-=(const Flagged<ProductBase<ProductDerived, Lhs,Rhs>, 0,
-                                      EvalBeforeAssigningBit>& other);
-
-    /** \deprecated because .lazy() is deprecated
-      * Overloaded for cache friendly product evaluation */
-    template<typename OtherDerived>
-    Derived& lazyAssign(const Flagged<OtherDerived, 0, EvalBeforeAssigningBit>& other)
-    { return lazyAssign(other._expression()); }
-
-    template<unsigned int Added>
-    const Flagged<Derived, Added, 0> marked() const;
-    const Flagged<Derived, 0, EvalBeforeAssigningBit> lazy() const;
-
-    inline const Cwise<Derived> cwise() const;
-    inline Cwise<Derived> cwise();
-
-    VectorBlock<Derived> start(Index size);
-    const VectorBlock<const Derived> start(Index size) const;
-    VectorBlock<Derived> end(Index size);
-    const VectorBlock<const Derived> end(Index size) const;
-    template<int Size> VectorBlock<Derived,Size> start();
-    template<int Size> const VectorBlock<const Derived,Size> start() const;
-    template<int Size> VectorBlock<Derived,Size> end();
-    template<int Size> const VectorBlock<const Derived,Size> end() const;
-
-    Minor<Derived> minor(Index row, Index col);
-    const Minor<Derived> minor(Index row, Index col) const;
-#endif
-
-  protected:
-    MatrixBase() : Base() {}
-
-  private:
-    explicit MatrixBase(int);
-    MatrixBase(int,int);
-    template<typename OtherDerived> explicit MatrixBase(const MatrixBase<OtherDerived>&);
-  protected:
-    // mixing arrays and matrices is not legal
-    template<typename OtherDerived> Derived& operator+=(const ArrayBase<OtherDerived>& )
-    {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
-    // mixing arrays and matrices is not legal
-    template<typename OtherDerived> Derived& operator-=(const ArrayBase<OtherDerived>& )
-    {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_MATRIXBASE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/NoAlias.h b/vendor/eigen-3.1.91/Eigen/src/Core/NoAlias.h
deleted file mode 100644
index 0112c86..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/NoAlias.h
+++ /dev/null
@@ -1,130 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_NOALIAS_H
-#define EIGEN_NOALIAS_H
-
-namespace Eigen {
-
-/** \class NoAlias
-  * \ingroup Core_Module
-  *
-  * \brief Pseudo expression providing an operator = assuming no aliasing
-  *
-  * \param ExpressionType the type of the object on which to do the lazy assignment
-  *
-  * This class represents an expression with special assignment operators
-  * assuming no aliasing between the target expression and the source expression.
-  * More precisely it alloas to bypass the EvalBeforeAssignBit flag of the source expression.
-  * It is the return type of MatrixBase::noalias()
-  * and most of the time this is the only way it is used.
-  *
-  * \sa MatrixBase::noalias()
-  */
-template<typename ExpressionType, template <typename> class StorageBase>
-class NoAlias
-{
-    typedef typename ExpressionType::Scalar Scalar;
-  public:
-    NoAlias(ExpressionType& expression) : m_expression(expression) {}
-
-    /** Behaves like MatrixBase::lazyAssign(other)
-      * \sa MatrixBase::lazyAssign() */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE ExpressionType& operator=(const StorageBase<OtherDerived>& other)
-    { return internal::assign_selector<ExpressionType,OtherDerived,false>::run(m_expression,other.derived()); }
-
-    /** \sa MatrixBase::operator+= */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE ExpressionType& operator+=(const StorageBase<OtherDerived>& other)
-    {
-      typedef SelfCwiseBinaryOp<internal::scalar_sum_op<Scalar>, ExpressionType, OtherDerived> SelfAdder;
-      SelfAdder tmp(m_expression);
-      typedef typename internal::nested<OtherDerived>::type OtherDerivedNested;
-      typedef typename internal::remove_all<OtherDerivedNested>::type _OtherDerivedNested;
-      internal::assign_selector<SelfAdder,_OtherDerivedNested,false>::run(tmp,OtherDerivedNested(other.derived()));
-      return m_expression;
-    }
-
-    /** \sa MatrixBase::operator-= */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE ExpressionType& operator-=(const StorageBase<OtherDerived>& other)
-    {
-      typedef SelfCwiseBinaryOp<internal::scalar_difference_op<Scalar>, ExpressionType, OtherDerived> SelfAdder;
-      SelfAdder tmp(m_expression);
-      typedef typename internal::nested<OtherDerived>::type OtherDerivedNested;
-      typedef typename internal::remove_all<OtherDerivedNested>::type _OtherDerivedNested;
-      internal::assign_selector<SelfAdder,_OtherDerivedNested,false>::run(tmp,OtherDerivedNested(other.derived()));
-      return m_expression;
-    }
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    template<typename ProductDerived, typename Lhs, typename Rhs>
-    EIGEN_STRONG_INLINE ExpressionType& operator+=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
-    { other.derived().addTo(m_expression); return m_expression; }
-
-    template<typename ProductDerived, typename Lhs, typename Rhs>
-    EIGEN_STRONG_INLINE ExpressionType& operator-=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
-    { other.derived().subTo(m_expression); return m_expression; }
-
-    template<typename Lhs, typename Rhs, int NestingFlags>
-    EIGEN_STRONG_INLINE ExpressionType& operator+=(const CoeffBasedProduct<Lhs,Rhs,NestingFlags>& other)
-    { return m_expression.derived() += CoeffBasedProduct<Lhs,Rhs,NestByRefBit>(other.lhs(), other.rhs()); }
-
-    template<typename Lhs, typename Rhs, int NestingFlags>
-    EIGEN_STRONG_INLINE ExpressionType& operator-=(const CoeffBasedProduct<Lhs,Rhs,NestingFlags>& other)
-    { return m_expression.derived() -= CoeffBasedProduct<Lhs,Rhs,NestByRefBit>(other.lhs(), other.rhs()); }
-#endif
-
-    ExpressionType& expression() const
-    {
-      return m_expression;
-    }
-
-  protected:
-    ExpressionType& m_expression;
-};
-
-/** \returns a pseudo expression of \c *this with an operator= assuming
-  * no aliasing between \c *this and the source expression.
-  *
-  * More precisely, noalias() allows to bypass the EvalBeforeAssignBit flag.
-  * Currently, even though several expressions may alias, only product
-  * expressions have this flag. Therefore, noalias() is only usefull when
-  * the source expression contains a matrix product.
-  *
-  * Here are some examples where noalias is usefull:
-  * \code
-  * D.noalias()  = A * B;
-  * D.noalias() += A.transpose() * B;
-  * D.noalias() -= 2 * A * B.adjoint();
-  * \endcode
-  *
-  * On the other hand the following example will lead to a \b wrong result:
-  * \code
-  * A.noalias() = A * B;
-  * \endcode
-  * because the result matrix A is also an operand of the matrix product. Therefore,
-  * there is no alternative than evaluating A * B in a temporary, that is the default
-  * behavior when you write:
-  * \code
-  * A = A * B;
-  * \endcode
-  *
-  * \sa class NoAlias
-  */
-template<typename Derived>
-NoAlias<Derived,MatrixBase> MatrixBase<Derived>::noalias()
-{
-  return derived();
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_NOALIAS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/PermutationMatrix.h b/vendor/eigen-3.1.91/Eigen/src/Core/PermutationMatrix.h
deleted file mode 100644
index 4fc5dd3..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/PermutationMatrix.h
+++ /dev/null
@@ -1,688 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2009-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_PERMUTATIONMATRIX_H
-#define EIGEN_PERMUTATIONMATRIX_H
-
-namespace Eigen { 
-
-template<int RowCol,typename IndicesType,typename MatrixType, typename StorageKind> class PermutedImpl;
-
-/** \class PermutationBase
-  * \ingroup Core_Module
-  *
-  * \brief Base class for permutations
-  *
-  * \param Derived the derived class
-  *
-  * This class is the base class for all expressions representing a permutation matrix,
-  * internally stored as a vector of integers.
-  * The convention followed here is that if \f$ \sigma \f$ is a permutation, the corresponding permutation matrix
-  * \f$ P_\sigma \f$ is such that if \f$ (e_1,\ldots,e_p) \f$ is the canonical basis, we have:
-  *  \f[ P_\sigma(e_i) = e_{\sigma(i)}. \f]
-  * This convention ensures that for any two permutations \f$ \sigma, \tau \f$, we have:
-  *  \f[ P_{\sigma\circ\tau} = P_\sigma P_\tau. \f]
-  *
-  * Permutation matrices are square and invertible.
-  *
-  * Notice that in addition to the member functions and operators listed here, there also are non-member
-  * operator* to multiply any kind of permutation object with any kind of matrix expression (MatrixBase)
-  * on either side.
-  *
-  * \sa class PermutationMatrix, class PermutationWrapper
-  */
-
-namespace internal {
-
-template<typename PermutationType, typename MatrixType, int Side, bool Transposed=false>
-struct permut_matrix_product_retval;
-template<typename PermutationType, typename MatrixType, int Side, bool Transposed=false>
-struct permut_sparsematrix_product_retval;
-enum PermPermProduct_t {PermPermProduct};
-
-} // end namespace internal
-
-template<typename Derived>
-class PermutationBase : public EigenBase<Derived>
-{
-    typedef internal::traits<Derived> Traits;
-    typedef EigenBase<Derived> Base;
-  public:
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    typedef typename Traits::IndicesType IndicesType;
-    enum {
-      Flags = Traits::Flags,
-      CoeffReadCost = Traits::CoeffReadCost,
-      RowsAtCompileTime = Traits::RowsAtCompileTime,
-      ColsAtCompileTime = Traits::ColsAtCompileTime,
-      MaxRowsAtCompileTime = Traits::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = Traits::MaxColsAtCompileTime
-    };
-    typedef typename Traits::Scalar Scalar;
-    typedef typename Traits::Index Index;
-    typedef Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime,0,MaxRowsAtCompileTime,MaxColsAtCompileTime>
-            DenseMatrixType;
-    typedef PermutationMatrix<IndicesType::SizeAtCompileTime,IndicesType::MaxSizeAtCompileTime,Index>
-            PlainPermutationType;
-    using Base::derived;
-    #endif
-
-    /** Copies the other permutation into *this */
-    template<typename OtherDerived>
-    Derived& operator=(const PermutationBase<OtherDerived>& other)
-    {
-      indices() = other.indices();
-      return derived();
-    }
-
-    /** Assignment from the Transpositions \a tr */
-    template<typename OtherDerived>
-    Derived& operator=(const TranspositionsBase<OtherDerived>& tr)
-    {
-      setIdentity(tr.size());
-      for(Index k=size()-1; k>=0; --k)
-        applyTranspositionOnTheRight(k,tr.coeff(k));
-      return derived();
-    }
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** This is a special case of the templated operator=. Its purpose is to
-      * prevent a default operator= from hiding the templated operator=.
-      */
-    Derived& operator=(const PermutationBase& other)
-    {
-      indices() = other.indices();
-      return derived();
-    }
-    #endif
-
-    /** \returns the number of rows */
-    inline Index rows() const { return Index(indices().size()); }
-
-    /** \returns the number of columns */
-    inline Index cols() const { return Index(indices().size()); }
-
-    /** \returns the size of a side of the respective square matrix, i.e., the number of indices */
-    inline Index size() const { return Index(indices().size()); }
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    template<typename DenseDerived>
-    void evalTo(MatrixBase<DenseDerived>& other) const
-    {
-      other.setZero();
-      for (int i=0; i<rows();++i)
-        other.coeffRef(indices().coeff(i),i) = typename DenseDerived::Scalar(1);
-    }
-    #endif
-
-    /** \returns a Matrix object initialized from this permutation matrix. Notice that it
-      * is inefficient to return this Matrix object by value. For efficiency, favor using
-      * the Matrix constructor taking EigenBase objects.
-      */
-    DenseMatrixType toDenseMatrix() const
-    {
-      return derived();
-    }
-
-    /** const version of indices(). */
-    const IndicesType& indices() const { return derived().indices(); }
-    /** \returns a reference to the stored array representing the permutation. */
-    IndicesType& indices() { return derived().indices(); }
-
-    /** Resizes to given size.
-      */
-    inline void resize(Index newSize)
-    {
-      indices().resize(newSize);
-    }
-
-    /** Sets *this to be the identity permutation matrix */
-    void setIdentity()
-    {
-      for(Index i = 0; i < size(); ++i)
-        indices().coeffRef(i) = i;
-    }
-
-    /** Sets *this to be the identity permutation matrix of given size.
-      */
-    void setIdentity(Index newSize)
-    {
-      resize(newSize);
-      setIdentity();
-    }
-
-    /** Multiplies *this by the transposition \f$(ij)\f$ on the left.
-      *
-      * \returns a reference to *this.
-      *
-      * \warning This is much slower than applyTranspositionOnTheRight(int,int):
-      * this has linear complexity and requires a lot of branching.
-      *
-      * \sa applyTranspositionOnTheRight(int,int)
-      */
-    Derived& applyTranspositionOnTheLeft(Index i, Index j)
-    {
-      eigen_assert(i>=0 && j>=0 && i<size() && j<size());
-      for(Index k = 0; k < size(); ++k)
-      {
-        if(indices().coeff(k) == i) indices().coeffRef(k) = j;
-        else if(indices().coeff(k) == j) indices().coeffRef(k) = i;
-      }
-      return derived();
-    }
-
-    /** Multiplies *this by the transposition \f$(ij)\f$ on the right.
-      *
-      * \returns a reference to *this.
-      *
-      * This is a fast operation, it only consists in swapping two indices.
-      *
-      * \sa applyTranspositionOnTheLeft(int,int)
-      */
-    Derived& applyTranspositionOnTheRight(Index i, Index j)
-    {
-      eigen_assert(i>=0 && j>=0 && i<size() && j<size());
-      std::swap(indices().coeffRef(i), indices().coeffRef(j));
-      return derived();
-    }
-
-    /** \returns the inverse permutation matrix.
-      *
-      * \note \note_try_to_help_rvo
-      */
-    inline Transpose<PermutationBase> inverse() const
-    { return derived(); }
-    /** \returns the tranpose permutation matrix.
-      *
-      * \note \note_try_to_help_rvo
-      */
-    inline Transpose<PermutationBase> transpose() const
-    { return derived(); }
-
-    /**** multiplication helpers to hopefully get RVO ****/
-
-  
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-  protected:
-    template<typename OtherDerived>
-    void assignTranspose(const PermutationBase<OtherDerived>& other)
-    {
-      for (int i=0; i<rows();++i) indices().coeffRef(other.indices().coeff(i)) = i;
-    }
-    template<typename Lhs,typename Rhs>
-    void assignProduct(const Lhs& lhs, const Rhs& rhs)
-    {
-      eigen_assert(lhs.cols() == rhs.rows());
-      for (int i=0; i<rows();++i) indices().coeffRef(i) = lhs.indices().coeff(rhs.indices().coeff(i));
-    }
-#endif
-
-  public:
-
-    /** \returns the product permutation matrix.
-      *
-      * \note \note_try_to_help_rvo
-      */
-    template<typename Other>
-    inline PlainPermutationType operator*(const PermutationBase<Other>& other) const
-    { return PlainPermutationType(internal::PermPermProduct, derived(), other.derived()); }
-
-    /** \returns the product of a permutation with another inverse permutation.
-      *
-      * \note \note_try_to_help_rvo
-      */
-    template<typename Other>
-    inline PlainPermutationType operator*(const Transpose<PermutationBase<Other> >& other) const
-    { return PlainPermutationType(internal::PermPermProduct, *this, other.eval()); }
-
-    /** \returns the product of an inverse permutation with another permutation.
-      *
-      * \note \note_try_to_help_rvo
-      */
-    template<typename Other> friend
-    inline PlainPermutationType operator*(const Transpose<PermutationBase<Other> >& other, const PermutationBase& perm)
-    { return PlainPermutationType(internal::PermPermProduct, other.eval(), perm); }
-
-  protected:
-
-};
-
-/** \class PermutationMatrix
-  * \ingroup Core_Module
-  *
-  * \brief Permutation matrix
-  *
-  * \param SizeAtCompileTime the number of rows/cols, or Dynamic
-  * \param MaxSizeAtCompileTime the maximum number of rows/cols, or Dynamic. This optional parameter defaults to SizeAtCompileTime. Most of the time, you should not have to specify it.
-  * \param IndexType the interger type of the indices
-  *
-  * This class represents a permutation matrix, internally stored as a vector of integers.
-  *
-  * \sa class PermutationBase, class PermutationWrapper, class DiagonalMatrix
-  */
-
-namespace internal {
-template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
-struct traits<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType> >
- : traits<Matrix<IndexType,SizeAtCompileTime,SizeAtCompileTime,0,MaxSizeAtCompileTime,MaxSizeAtCompileTime> >
-{
-  typedef IndexType Index;
-  typedef Matrix<IndexType, SizeAtCompileTime, 1, 0, MaxSizeAtCompileTime, 1> IndicesType;
-};
-}
-
-template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
-class PermutationMatrix : public PermutationBase<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType> >
-{
-    typedef PermutationBase<PermutationMatrix> Base;
-    typedef internal::traits<PermutationMatrix> Traits;
-  public:
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    typedef typename Traits::IndicesType IndicesType;
-    #endif
-
-    inline PermutationMatrix()
-    {}
-
-    /** Constructs an uninitialized permutation matrix of given size.
-      */
-    inline PermutationMatrix(int size) : m_indices(size)
-    {}
-
-    /** Copy constructor. */
-    template<typename OtherDerived>
-    inline PermutationMatrix(const PermutationBase<OtherDerived>& other)
-      : m_indices(other.indices()) {}
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** Standard copy constructor. Defined only to prevent a default copy constructor
-      * from hiding the other templated constructor */
-    inline PermutationMatrix(const PermutationMatrix& other) : m_indices(other.indices()) {}
-    #endif
-
-    /** Generic constructor from expression of the indices. The indices
-      * array has the meaning that the permutations sends each integer i to indices[i].
-      *
-      * \warning It is your responsibility to check that the indices array that you passes actually
-      * describes a permutation, i.e., each value between 0 and n-1 occurs exactly once, where n is the
-      * array's size.
-      */
-    template<typename Other>
-    explicit inline PermutationMatrix(const MatrixBase<Other>& a_indices) : m_indices(a_indices)
-    {}
-
-    /** Convert the Transpositions \a tr to a permutation matrix */
-    template<typename Other>
-    explicit PermutationMatrix(const TranspositionsBase<Other>& tr)
-      : m_indices(tr.size())
-    {
-      *this = tr;
-    }
-
-    /** Copies the other permutation into *this */
-    template<typename Other>
-    PermutationMatrix& operator=(const PermutationBase<Other>& other)
-    {
-      m_indices = other.indices();
-      return *this;
-    }
-
-    /** Assignment from the Transpositions \a tr */
-    template<typename Other>
-    PermutationMatrix& operator=(const TranspositionsBase<Other>& tr)
-    {
-      return Base::operator=(tr.derived());
-    }
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** This is a special case of the templated operator=. Its purpose is to
-      * prevent a default operator= from hiding the templated operator=.
-      */
-    PermutationMatrix& operator=(const PermutationMatrix& other)
-    {
-      m_indices = other.m_indices;
-      return *this;
-    }
-    #endif
-
-    /** const version of indices(). */
-    const IndicesType& indices() const { return m_indices; }
-    /** \returns a reference to the stored array representing the permutation. */
-    IndicesType& indices() { return m_indices; }
-
-
-    /**** multiplication helpers to hopefully get RVO ****/
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    template<typename Other>
-    PermutationMatrix(const Transpose<PermutationBase<Other> >& other)
-      : m_indices(other.nestedPermutation().size())
-    {
-      for (int i=0; i<m_indices.size();++i) m_indices.coeffRef(other.nestedPermutation().indices().coeff(i)) = i;
-    }
-    template<typename Lhs,typename Rhs>
-    PermutationMatrix(internal::PermPermProduct_t, const Lhs& lhs, const Rhs& rhs)
-      : m_indices(lhs.indices().size())
-    {
-      Base::assignProduct(lhs,rhs);
-    }
-#endif
-
-  protected:
-
-    IndicesType m_indices;
-};
-
-
-namespace internal {
-template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType, int _PacketAccess>
-struct traits<Map<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType>,_PacketAccess> >
- : traits<Matrix<IndexType,SizeAtCompileTime,SizeAtCompileTime,0,MaxSizeAtCompileTime,MaxSizeAtCompileTime> >
-{
-  typedef IndexType Index;
-  typedef Map<const Matrix<IndexType, SizeAtCompileTime, 1, 0, MaxSizeAtCompileTime, 1>, _PacketAccess> IndicesType;
-};
-}
-
-template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType, int _PacketAccess>
-class Map<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType>,_PacketAccess>
-  : public PermutationBase<Map<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType>,_PacketAccess> >
-{
-    typedef PermutationBase<Map> Base;
-    typedef internal::traits<Map> Traits;
-  public:
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    typedef typename Traits::IndicesType IndicesType;
-    typedef typename IndicesType::Scalar Index;
-    #endif
-
-    inline Map(const Index* indicesPtr)
-      : m_indices(indicesPtr)
-    {}
-
-    inline Map(const Index* indicesPtr, Index size)
-      : m_indices(indicesPtr,size)
-    {}
-
-    /** Copies the other permutation into *this */
-    template<typename Other>
-    Map& operator=(const PermutationBase<Other>& other)
-    { return Base::operator=(other.derived()); }
-
-    /** Assignment from the Transpositions \a tr */
-    template<typename Other>
-    Map& operator=(const TranspositionsBase<Other>& tr)
-    { return Base::operator=(tr.derived()); }
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** This is a special case of the templated operator=. Its purpose is to
-      * prevent a default operator= from hiding the templated operator=.
-      */
-    Map& operator=(const Map& other)
-    {
-      m_indices = other.m_indices;
-      return *this;
-    }
-    #endif
-
-    /** const version of indices(). */
-    const IndicesType& indices() const { return m_indices; }
-    /** \returns a reference to the stored array representing the permutation. */
-    IndicesType& indices() { return m_indices; }
-
-  protected:
-
-    IndicesType m_indices;
-};
-
-/** \class PermutationWrapper
-  * \ingroup Core_Module
-  *
-  * \brief Class to view a vector of integers as a permutation matrix
-  *
-  * \param _IndicesType the type of the vector of integer (can be any compatible expression)
-  *
-  * This class allows to view any vector expression of integers as a permutation matrix.
-  *
-  * \sa class PermutationBase, class PermutationMatrix
-  */
-
-struct PermutationStorage {};
-
-template<typename _IndicesType> class TranspositionsWrapper;
-namespace internal {
-template<typename _IndicesType>
-struct traits<PermutationWrapper<_IndicesType> >
-{
-  typedef PermutationStorage StorageKind;
-  typedef typename _IndicesType::Scalar Scalar;
-  typedef typename _IndicesType::Scalar Index;
-  typedef _IndicesType IndicesType;
-  enum {
-    RowsAtCompileTime = _IndicesType::SizeAtCompileTime,
-    ColsAtCompileTime = _IndicesType::SizeAtCompileTime,
-    MaxRowsAtCompileTime = IndicesType::MaxRowsAtCompileTime,
-    MaxColsAtCompileTime = IndicesType::MaxColsAtCompileTime,
-    Flags = 0,
-    CoeffReadCost = _IndicesType::CoeffReadCost
-  };
-};
-}
-
-template<typename _IndicesType>
-class PermutationWrapper : public PermutationBase<PermutationWrapper<_IndicesType> >
-{
-    typedef PermutationBase<PermutationWrapper> Base;
-    typedef internal::traits<PermutationWrapper> Traits;
-  public:
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    typedef typename Traits::IndicesType IndicesType;
-    #endif
-
-    inline PermutationWrapper(const IndicesType& a_indices)
-      : m_indices(a_indices)
-    {}
-
-    /** const version of indices(). */
-    const typename internal::remove_all<typename IndicesType::Nested>::type&
-    indices() const { return m_indices; }
-
-  protected:
-
-    typename IndicesType::Nested m_indices;
-};
-
-/** \returns the matrix with the permutation applied to the columns.
-  */
-template<typename Derived, typename PermutationDerived>
-inline const internal::permut_matrix_product_retval<PermutationDerived, Derived, OnTheRight>
-operator*(const MatrixBase<Derived>& matrix,
-          const PermutationBase<PermutationDerived> &permutation)
-{
-  return internal::permut_matrix_product_retval
-           <PermutationDerived, Derived, OnTheRight>
-           (permutation.derived(), matrix.derived());
-}
-
-/** \returns the matrix with the permutation applied to the rows.
-  */
-template<typename Derived, typename PermutationDerived>
-inline const internal::permut_matrix_product_retval
-               <PermutationDerived, Derived, OnTheLeft>
-operator*(const PermutationBase<PermutationDerived> &permutation,
-          const MatrixBase<Derived>& matrix)
-{
-  return internal::permut_matrix_product_retval
-           <PermutationDerived, Derived, OnTheLeft>
-           (permutation.derived(), matrix.derived());
-}
-
-namespace internal {
-
-template<typename PermutationType, typename MatrixType, int Side, bool Transposed>
-struct traits<permut_matrix_product_retval<PermutationType, MatrixType, Side, Transposed> >
-{
-  typedef typename MatrixType::PlainObject ReturnType;
-};
-
-template<typename PermutationType, typename MatrixType, int Side, bool Transposed>
-struct permut_matrix_product_retval
- : public ReturnByValue<permut_matrix_product_retval<PermutationType, MatrixType, Side, Transposed> >
-{
-    typedef typename remove_all<typename MatrixType::Nested>::type MatrixTypeNestedCleaned;
-    typedef typename MatrixType::Index Index;
-
-    permut_matrix_product_retval(const PermutationType& perm, const MatrixType& matrix)
-      : m_permutation(perm), m_matrix(matrix)
-    {}
-
-    inline Index rows() const { return m_matrix.rows(); }
-    inline Index cols() const { return m_matrix.cols(); }
-
-    template<typename Dest> inline void evalTo(Dest& dst) const
-    {
-      const Index n = Side==OnTheLeft ? rows() : cols();
-
-      if(is_same<MatrixTypeNestedCleaned,Dest>::value && extract_data(dst) == extract_data(m_matrix))
-      {
-        // apply the permutation inplace
-        Matrix<bool,PermutationType::RowsAtCompileTime,1,0,PermutationType::MaxRowsAtCompileTime> mask(m_permutation.size());
-        mask.fill(false);
-        Index r = 0;
-        while(r < m_permutation.size())
-        {
-          // search for the next seed
-          while(r<m_permutation.size() && mask[r]) r++;
-          if(r>=m_permutation.size())
-            break;
-          // we got one, let's follow it until we are back to the seed
-          Index k0 = r++;
-          Index kPrev = k0;
-          mask.coeffRef(k0) = true;
-          for(Index k=m_permutation.indices().coeff(k0); k!=k0; k=m_permutation.indices().coeff(k))
-          {
-                  Block<Dest, Side==OnTheLeft ? 1 : Dest::RowsAtCompileTime, Side==OnTheRight ? 1 : Dest::ColsAtCompileTime>(dst, k)
-            .swap(Block<Dest, Side==OnTheLeft ? 1 : Dest::RowsAtCompileTime, Side==OnTheRight ? 1 : Dest::ColsAtCompileTime>
-                       (dst,((Side==OnTheLeft) ^ Transposed) ? k0 : kPrev));
-
-            mask.coeffRef(k) = true;
-            kPrev = k;
-          }
-        }
-      }
-      else
-      {
-        for(int i = 0; i < n; ++i)
-        {
-          Block<Dest, Side==OnTheLeft ? 1 : Dest::RowsAtCompileTime, Side==OnTheRight ? 1 : Dest::ColsAtCompileTime>
-               (dst, ((Side==OnTheLeft) ^ Transposed) ? m_permutation.indices().coeff(i) : i)
-
-          =
-
-          Block<const MatrixTypeNestedCleaned,Side==OnTheLeft ? 1 : MatrixType::RowsAtCompileTime,Side==OnTheRight ? 1 : MatrixType::ColsAtCompileTime>
-               (m_matrix, ((Side==OnTheRight) ^ Transposed) ? m_permutation.indices().coeff(i) : i);
-        }
-      }
-    }
-
-  protected:
-    const PermutationType& m_permutation;
-    typename MatrixType::Nested m_matrix;
-};
-
-/* Template partial specialization for transposed/inverse permutations */
-
-template<typename Derived>
-struct traits<Transpose<PermutationBase<Derived> > >
- : traits<Derived>
-{};
-
-} // end namespace internal
-
-template<typename Derived>
-class Transpose<PermutationBase<Derived> >
-  : public EigenBase<Transpose<PermutationBase<Derived> > >
-{
-    typedef Derived PermutationType;
-    typedef typename PermutationType::IndicesType IndicesType;
-    typedef typename PermutationType::PlainPermutationType PlainPermutationType;
-  public:
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    typedef internal::traits<PermutationType> Traits;
-    typedef typename Derived::DenseMatrixType DenseMatrixType;
-    enum {
-      Flags = Traits::Flags,
-      CoeffReadCost = Traits::CoeffReadCost,
-      RowsAtCompileTime = Traits::RowsAtCompileTime,
-      ColsAtCompileTime = Traits::ColsAtCompileTime,
-      MaxRowsAtCompileTime = Traits::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = Traits::MaxColsAtCompileTime
-    };
-    typedef typename Traits::Scalar Scalar;
-    #endif
-
-    Transpose(const PermutationType& p) : m_permutation(p) {}
-
-    inline int rows() const { return m_permutation.rows(); }
-    inline int cols() const { return m_permutation.cols(); }
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    template<typename DenseDerived>
-    void evalTo(MatrixBase<DenseDerived>& other) const
-    {
-      other.setZero();
-      for (int i=0; i<rows();++i)
-        other.coeffRef(i, m_permutation.indices().coeff(i)) = typename DenseDerived::Scalar(1);
-    }
-    #endif
-
-    /** \return the equivalent permutation matrix */
-    PlainPermutationType eval() const { return *this; }
-
-    DenseMatrixType toDenseMatrix() const { return *this; }
-
-    /** \returns the matrix with the inverse permutation applied to the columns.
-      */
-    template<typename OtherDerived> friend
-    inline const internal::permut_matrix_product_retval<PermutationType, OtherDerived, OnTheRight, true>
-    operator*(const MatrixBase<OtherDerived>& matrix, const Transpose& trPerm)
-    {
-      return internal::permut_matrix_product_retval<PermutationType, OtherDerived, OnTheRight, true>(trPerm.m_permutation, matrix.derived());
-    }
-
-    /** \returns the matrix with the inverse permutation applied to the rows.
-      */
-    template<typename OtherDerived>
-    inline const internal::permut_matrix_product_retval<PermutationType, OtherDerived, OnTheLeft, true>
-    operator*(const MatrixBase<OtherDerived>& matrix) const
-    {
-      return internal::permut_matrix_product_retval<PermutationType, OtherDerived, OnTheLeft, true>(m_permutation, matrix.derived());
-    }
-
-    const PermutationType& nestedPermutation() const { return m_permutation; }
-
-  protected:
-    const PermutationType& m_permutation;
-};
-
-template<typename Derived>
-const PermutationWrapper<const Derived> MatrixBase<Derived>::asPermutation() const
-{
-  return derived();
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_PERMUTATIONMATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/PlainObjectBase.h b/vendor/eigen-3.1.91/Eigen/src/Core/PlainObjectBase.h
deleted file mode 100644
index b01bd6d..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/PlainObjectBase.h
+++ /dev/null
@@ -1,782 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_DENSESTORAGEBASE_H
-#define EIGEN_DENSESTORAGEBASE_H
-
-#if defined(EIGEN_INITIALIZE_MATRICES_BY_ZERO)
-# define EIGEN_INITIALIZE_COEFFS
-# define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED for(int i=0;i<base().size();++i) coeffRef(i)=Scalar(0);
-#elif defined(EIGEN_INITIALIZE_MATRICES_BY_NAN)
-# define EIGEN_INITIALIZE_COEFFS
-# define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED for(int i=0;i<base().size();++i) coeffRef(i)=std::numeric_limits<Scalar>::quiet_NaN();
-#else
-# undef EIGEN_INITIALIZE_COEFFS
-# define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
-#endif
-
-namespace Eigen {
-
-namespace internal {
-
-template<int MaxSizeAtCompileTime> struct check_rows_cols_for_overflow {
-  template<typename Index>
-  static EIGEN_ALWAYS_INLINE void run(Index, Index)
-  {
-  }
-};
-
-template<> struct check_rows_cols_for_overflow<Dynamic> {
-  template<typename Index>
-  static EIGEN_ALWAYS_INLINE void run(Index rows, Index cols)
-  {
-    // http://hg.mozilla.org/mozilla-central/file/6c8a909977d3/xpcom/ds/CheckedInt.h#l242
-    // we assume Index is signed
-    Index max_index = (size_t(1) << (8 * sizeof(Index) - 1)) - 1; // assume Index is signed
-    bool error = (rows == 0 || cols == 0) ? false
-               : (rows > max_index / cols);
-    if (error)
-      throw_std_bad_alloc();
-  }
-};
-
-template <typename Derived, typename OtherDerived = Derived, bool IsVector = bool(Derived::IsVectorAtCompileTime)> struct conservative_resize_like_impl;
-
-template<typename MatrixTypeA, typename MatrixTypeB, bool SwapPointers> struct matrix_swap_impl;
-
-} // end namespace internal
-
-/** \class PlainObjectBase
-  * \brief %Dense storage base class for matrices and arrays.
-  *
-  * This class can be extended with the help of the plugin mechanism described on the page
-  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_PLAINOBJECTBASE_PLUGIN.
-  *
-  * \sa \ref TopicClassHierarchy
-  */
-#ifdef EIGEN_PARSED_BY_DOXYGEN
-namespace internal {
-
-// this is a warkaround to doxygen not being able to understand the inheritence logic
-// when it is hidden by the dense_xpr_base helper struct.
-template<typename Derived> struct dense_xpr_base_dispatcher_for_doxygen;// : public MatrixBase<Derived> {};
-/** This class is just a workaround for Doxygen and it does not not actually exist. */
-template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
-struct dense_xpr_base_dispatcher_for_doxygen<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
-    : public MatrixBase<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > {};
-/** This class is just a workaround for Doxygen and it does not not actually exist. */
-template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
-struct dense_xpr_base_dispatcher_for_doxygen<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
-    : public ArrayBase<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > {};
-
-} // namespace internal
-
-template<typename Derived>
-class PlainObjectBase : public internal::dense_xpr_base_dispatcher_for_doxygen<Derived>
-#else
-template<typename Derived>
-class PlainObjectBase : public internal::dense_xpr_base<Derived>::type
-#endif
-{
-  public:
-    enum { Options = internal::traits<Derived>::Options };
-    typedef typename internal::dense_xpr_base<Derived>::type Base;
-
-    typedef typename internal::traits<Derived>::StorageKind StorageKind;
-    typedef typename internal::traits<Derived>::Index Index;
-    typedef typename internal::traits<Derived>::Scalar Scalar;
-    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-    typedef Derived DenseType;
-
-    using Base::RowsAtCompileTime;
-    using Base::ColsAtCompileTime;
-    using Base::SizeAtCompileTime;
-    using Base::MaxRowsAtCompileTime;
-    using Base::MaxColsAtCompileTime;
-    using Base::MaxSizeAtCompileTime;
-    using Base::IsVectorAtCompileTime;
-    using Base::Flags;
-
-    template<typename PlainObjectType, int MapOptions, typename StrideType> friend class Eigen::Map;
-    friend  class Eigen::Map<Derived, Unaligned>;
-    typedef Eigen::Map<Derived, Unaligned>  MapType;
-    friend  class Eigen::Map<const Derived, Unaligned>;
-    typedef const Eigen::Map<const Derived, Unaligned> ConstMapType;
-    friend  class Eigen::Map<Derived, Aligned>;
-    typedef Eigen::Map<Derived, Aligned> AlignedMapType;
-    friend  class Eigen::Map<const Derived, Aligned>;
-    typedef const Eigen::Map<const Derived, Aligned> ConstAlignedMapType;
-    template<typename StrideType> struct StridedMapType { typedef Eigen::Map<Derived, Unaligned, StrideType> type; };
-    template<typename StrideType> struct StridedConstMapType { typedef Eigen::Map<const Derived, Unaligned, StrideType> type; };
-    template<typename StrideType> struct StridedAlignedMapType { typedef Eigen::Map<Derived, Aligned, StrideType> type; };
-    template<typename StrideType> struct StridedConstAlignedMapType { typedef Eigen::Map<const Derived, Aligned, StrideType> type; };
-
-  protected:
-    DenseStorage<Scalar, Base::MaxSizeAtCompileTime, Base::RowsAtCompileTime, Base::ColsAtCompileTime, Options> m_storage;
-
-  public:
-    enum { NeedsToAlign = SizeAtCompileTime != Dynamic && (internal::traits<Derived>::Flags & AlignedBit) != 0 };
-    EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign)
-
-    Base& base() { return *static_cast<Base*>(this); }
-    const Base& base() const { return *static_cast<const Base*>(this); }
-
-    EIGEN_STRONG_INLINE Index rows() const { return m_storage.rows(); }
-    EIGEN_STRONG_INLINE Index cols() const { return m_storage.cols(); }
-
-    EIGEN_STRONG_INLINE const Scalar& coeff(Index rowId, Index colId) const
-    {
-      if(Flags & RowMajorBit)
-        return m_storage.data()[colId + rowId * m_storage.cols()];
-      else // column-major
-        return m_storage.data()[rowId + colId * m_storage.rows()];
-    }
-
-    EIGEN_STRONG_INLINE const Scalar& coeff(Index index) const
-    {
-      return m_storage.data()[index];
-    }
-
-    EIGEN_STRONG_INLINE Scalar& coeffRef(Index rowId, Index colId)
-    {
-      if(Flags & RowMajorBit)
-        return m_storage.data()[colId + rowId * m_storage.cols()];
-      else // column-major
-        return m_storage.data()[rowId + colId * m_storage.rows()];
-    }
-
-    EIGEN_STRONG_INLINE Scalar& coeffRef(Index index)
-    {
-      return m_storage.data()[index];
-    }
-
-    EIGEN_STRONG_INLINE const Scalar& coeffRef(Index rowId, Index colId) const
-    {
-      if(Flags & RowMajorBit)
-        return m_storage.data()[colId + rowId * m_storage.cols()];
-      else // column-major
-        return m_storage.data()[rowId + colId * m_storage.rows()];
-    }
-
-    EIGEN_STRONG_INLINE const Scalar& coeffRef(Index index) const
-    {
-      return m_storage.data()[index];
-    }
-
-    /** \internal */
-    template<int LoadMode>
-    EIGEN_STRONG_INLINE PacketScalar packet(Index rowId, Index colId) const
-    {
-      return internal::ploadt<PacketScalar, LoadMode>
-               (m_storage.data() + (Flags & RowMajorBit
-                                   ? colId + rowId * m_storage.cols()
-                                   : rowId + colId * m_storage.rows()));
-    }
-
-    /** \internal */
-    template<int LoadMode>
-    EIGEN_STRONG_INLINE PacketScalar packet(Index index) const
-    {
-      return internal::ploadt<PacketScalar, LoadMode>(m_storage.data() + index);
-    }
-
-    /** \internal */
-    template<int StoreMode>
-    EIGEN_STRONG_INLINE void writePacket(Index rowId, Index colId, const PacketScalar& val)
-    {
-      internal::pstoret<Scalar, PacketScalar, StoreMode>
-              (m_storage.data() + (Flags & RowMajorBit
-                                   ? colId + rowId * m_storage.cols()
-                                   : rowId + colId * m_storage.rows()), val);
-    }
-
-    /** \internal */
-    template<int StoreMode>
-    EIGEN_STRONG_INLINE void writePacket(Index index, const PacketScalar& val)
-    {
-      internal::pstoret<Scalar, PacketScalar, StoreMode>(m_storage.data() + index, val);
-    }
-
-    /** \returns a const pointer to the data array of this matrix */
-    EIGEN_STRONG_INLINE const Scalar *data() const
-    { return m_storage.data(); }
-
-    /** \returns a pointer to the data array of this matrix */
-    EIGEN_STRONG_INLINE Scalar *data()
-    { return m_storage.data(); }
-
-    /** Resizes \c *this to a \a rows x \a cols matrix.
-      *
-      * This method is intended for dynamic-size matrices, although it is legal to call it on any
-      * matrix as long as fixed dimensions are left unchanged. If you only want to change the number
-      * of rows and/or of columns, you can use resize(NoChange_t, Index), resize(Index, NoChange_t).
-      *
-      * If the current number of coefficients of \c *this exactly matches the
-      * product \a rows * \a cols, then no memory allocation is performed and
-      * the current values are left unchanged. In all other cases, including
-      * shrinking, the data is reallocated and all previous values are lost.
-      *
-      * Example: \include Matrix_resize_int_int.cpp
-      * Output: \verbinclude Matrix_resize_int_int.out
-      *
-      * \sa resize(Index) for vectors, resize(NoChange_t, Index), resize(Index, NoChange_t)
-      */
-    EIGEN_STRONG_INLINE void resize(Index nbRows, Index nbCols)
-    {
-      eigen_assert(   EIGEN_IMPLIES(RowsAtCompileTime!=Dynamic,nbRows==RowsAtCompileTime)
-                   && EIGEN_IMPLIES(ColsAtCompileTime!=Dynamic,nbCols==ColsAtCompileTime)
-                   && EIGEN_IMPLIES(RowsAtCompileTime==Dynamic && MaxRowsAtCompileTime!=Dynamic,nbRows<=MaxRowsAtCompileTime)
-                   && EIGEN_IMPLIES(ColsAtCompileTime==Dynamic && MaxColsAtCompileTime!=Dynamic,nbCols<=MaxColsAtCompileTime)
-                   && nbRows>=0 && nbCols>=0 && "Invalid sizes when resizing a matrix or array.");
-      internal::check_rows_cols_for_overflow<MaxSizeAtCompileTime>::run(nbRows, nbCols);
-      #ifdef EIGEN_INITIALIZE_COEFFS
-        Index size = nbRows*nbCols;
-        bool size_changed = size != this->size();
-        m_storage.resize(size, nbRows, nbCols);
-        if(size_changed) EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
-      #else
-        internal::check_rows_cols_for_overflow<MaxSizeAtCompileTime>::run(nbRows, nbCols);
-        m_storage.resize(nbRows*nbCols, nbRows, nbCols);
-      #endif
-    }
-
-    /** Resizes \c *this to a vector of length \a size
-      *
-      * \only_for_vectors. This method does not work for
-      * partially dynamic matrices when the static dimension is anything other
-      * than 1. For example it will not work with Matrix<double, 2, Dynamic>.
-      *
-      * Example: \include Matrix_resize_int.cpp
-      * Output: \verbinclude Matrix_resize_int.out
-      *
-      * \sa resize(Index,Index), resize(NoChange_t, Index), resize(Index, NoChange_t)
-      */
-    inline void resize(Index size)
-    {
-      EIGEN_STATIC_ASSERT_VECTOR_ONLY(PlainObjectBase)
-      eigen_assert(((SizeAtCompileTime == Dynamic && (MaxSizeAtCompileTime==Dynamic || size<=MaxSizeAtCompileTime)) || SizeAtCompileTime == size) && size>=0);
-      #ifdef EIGEN_INITIALIZE_COEFFS
-        bool size_changed = size != this->size();
-      #endif
-      if(RowsAtCompileTime == 1)
-        m_storage.resize(size, 1, size);
-      else
-        m_storage.resize(size, size, 1);
-      #ifdef EIGEN_INITIALIZE_COEFFS
-        if(size_changed) EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
-      #endif
-    }
-
-    /** Resizes the matrix, changing only the number of columns. For the parameter of type NoChange_t, just pass the special value \c NoChange
-      * as in the example below.
-      *
-      * Example: \include Matrix_resize_NoChange_int.cpp
-      * Output: \verbinclude Matrix_resize_NoChange_int.out
-      *
-      * \sa resize(Index,Index)
-      */
-    inline void resize(NoChange_t, Index nbCols)
-    {
-      resize(rows(), nbCols);
-    }
-
-    /** Resizes the matrix, changing only the number of rows. For the parameter of type NoChange_t, just pass the special value \c NoChange
-      * as in the example below.
-      *
-      * Example: \include Matrix_resize_int_NoChange.cpp
-      * Output: \verbinclude Matrix_resize_int_NoChange.out
-      *
-      * \sa resize(Index,Index)
-      */
-    inline void resize(Index nbRows, NoChange_t)
-    {
-      resize(nbRows, cols());
-    }
-
-    /** Resizes \c *this to have the same dimensions as \a other.
-      * Takes care of doing all the checking that's needed.
-      *
-      * Note that copying a row-vector into a vector (and conversely) is allowed.
-      * The resizing, if any, is then done in the appropriate way so that row-vectors
-      * remain row-vectors and vectors remain vectors.
-      */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE void resizeLike(const EigenBase<OtherDerived>& _other)
-    {
-      const OtherDerived& other = _other.derived();
-      internal::check_rows_cols_for_overflow<MaxSizeAtCompileTime>::run(other.rows(), other.cols());
-      const Index othersize = other.rows()*other.cols();
-      if(RowsAtCompileTime == 1)
-      {
-        eigen_assert(other.rows() == 1 || other.cols() == 1);
-        resize(1, othersize);
-      }
-      else if(ColsAtCompileTime == 1)
-      {
-        eigen_assert(other.rows() == 1 || other.cols() == 1);
-        resize(othersize, 1);
-      }
-      else resize(other.rows(), other.cols());
-    }
-
-    /** Resizes the matrix to \a rows x \a cols while leaving old values untouched.
-      *
-      * The method is intended for matrices of dynamic size. If you only want to change the number
-      * of rows and/or of columns, you can use conservativeResize(NoChange_t, Index) or
-      * conservativeResize(Index, NoChange_t).
-      *
-      * Matrices are resized relative to the top-left element. In case values need to be 
-      * appended to the matrix they will be uninitialized.
-      */
-    EIGEN_STRONG_INLINE void conservativeResize(Index nbRows, Index nbCols)
-    {
-      internal::conservative_resize_like_impl<Derived>::run(*this, nbRows, nbCols);
-    }
-
-    /** Resizes the matrix to \a rows x \a cols while leaving old values untouched.
-      *
-      * As opposed to conservativeResize(Index rows, Index cols), this version leaves
-      * the number of columns unchanged.
-      *
-      * In case the matrix is growing, new rows will be uninitialized.
-      */
-    EIGEN_STRONG_INLINE void conservativeResize(Index nbRows, NoChange_t)
-    {
-      // Note: see the comment in conservativeResize(Index,Index)
-      conservativeResize(nbRows, cols());
-    }
-
-    /** Resizes the matrix to \a rows x \a cols while leaving old values untouched.
-      *
-      * As opposed to conservativeResize(Index rows, Index cols), this version leaves
-      * the number of rows unchanged.
-      *
-      * In case the matrix is growing, new columns will be uninitialized.
-      */
-    EIGEN_STRONG_INLINE void conservativeResize(NoChange_t, Index nbCols)
-    {
-      // Note: see the comment in conservativeResize(Index,Index)
-      conservativeResize(rows(), nbCols);
-    }
-
-    /** Resizes the vector to \a size while retaining old values.
-      *
-      * \only_for_vectors. This method does not work for
-      * partially dynamic matrices when the static dimension is anything other
-      * than 1. For example it will not work with Matrix<double, 2, Dynamic>.
-      *
-      * When values are appended, they will be uninitialized.
-      */
-    EIGEN_STRONG_INLINE void conservativeResize(Index size)
-    {
-      internal::conservative_resize_like_impl<Derived>::run(*this, size);
-    }
-
-    /** Resizes the matrix to \a rows x \a cols of \c other, while leaving old values untouched.
-      *
-      * The method is intended for matrices of dynamic size. If you only want to change the number
-      * of rows and/or of columns, you can use conservativeResize(NoChange_t, Index) or
-      * conservativeResize(Index, NoChange_t).
-      *
-      * Matrices are resized relative to the top-left element. In case values need to be 
-      * appended to the matrix they will copied from \c other.
-      */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE void conservativeResizeLike(const DenseBase<OtherDerived>& other)
-    {
-      internal::conservative_resize_like_impl<Derived,OtherDerived>::run(*this, other);
-    }
-
-    /** This is a special case of the templated operator=. Its purpose is to
-      * prevent a default operator= from hiding the templated operator=.
-      */
-    EIGEN_STRONG_INLINE Derived& operator=(const PlainObjectBase& other)
-    {
-      return _set(other);
-    }
-
-    /** \sa MatrixBase::lazyAssign() */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Derived& lazyAssign(const DenseBase<OtherDerived>& other)
-    {
-      _resize_to_match(other);
-      return Base::lazyAssign(other.derived());
-    }
-
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Derived& operator=(const ReturnByValue<OtherDerived>& func)
-    {
-      resize(func.rows(), func.cols());
-      return Base::operator=(func);
-    }
-
-    EIGEN_STRONG_INLINE explicit PlainObjectBase() : m_storage()
-    {
-//       _check_template_params();
-//       EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
-    }
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    // FIXME is it still needed ?
-    /** \internal */
-    PlainObjectBase(internal::constructor_without_unaligned_array_assert)
-      : m_storage(internal::constructor_without_unaligned_array_assert())
-    {
-//       _check_template_params(); EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
-    }
-#endif
-
-    EIGEN_STRONG_INLINE PlainObjectBase(Index a_size, Index nbRows, Index nbCols)
-      : m_storage(a_size, nbRows, nbCols)
-    {
-//       _check_template_params();
-//       EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
-    }
-
-    /** \copydoc MatrixBase::operator=(const EigenBase<OtherDerived>&)
-      */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Derived& operator=(const EigenBase<OtherDerived> &other)
-    {
-      _resize_to_match(other);
-      Base::operator=(other.derived());
-      return this->derived();
-    }
-
-    /** \sa MatrixBase::operator=(const EigenBase<OtherDerived>&) */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE PlainObjectBase(const EigenBase<OtherDerived> &other)
-      : m_storage(other.derived().rows() * other.derived().cols(), other.derived().rows(), other.derived().cols())
-    {
-      _check_template_params();
-      internal::check_rows_cols_for_overflow<MaxSizeAtCompileTime>::run(other.derived().rows(), other.derived().cols());
-      Base::operator=(other.derived());
-    }
-
-    /** \name Map
-      * These are convenience functions returning Map objects. The Map() static functions return unaligned Map objects,
-      * while the AlignedMap() functions return aligned Map objects and thus should be called only with 16-byte-aligned
-      * \a data pointers.
-      *
-      * \see class Map
-      */
-    //@{
-    static inline ConstMapType Map(const Scalar* data)
-    { return ConstMapType(data); }
-    static inline MapType Map(Scalar* data)
-    { return MapType(data); }
-    static inline ConstMapType Map(const Scalar* data, Index size)
-    { return ConstMapType(data, size); }
-    static inline MapType Map(Scalar* data, Index size)
-    { return MapType(data, size); }
-    static inline ConstMapType Map(const Scalar* data, Index rows, Index cols)
-    { return ConstMapType(data, rows, cols); }
-    static inline MapType Map(Scalar* data, Index rows, Index cols)
-    { return MapType(data, rows, cols); }
-
-    static inline ConstAlignedMapType MapAligned(const Scalar* data)
-    { return ConstAlignedMapType(data); }
-    static inline AlignedMapType MapAligned(Scalar* data)
-    { return AlignedMapType(data); }
-    static inline ConstAlignedMapType MapAligned(const Scalar* data, Index size)
-    { return ConstAlignedMapType(data, size); }
-    static inline AlignedMapType MapAligned(Scalar* data, Index size)
-    { return AlignedMapType(data, size); }
-    static inline ConstAlignedMapType MapAligned(const Scalar* data, Index rows, Index cols)
-    { return ConstAlignedMapType(data, rows, cols); }
-    static inline AlignedMapType MapAligned(Scalar* data, Index rows, Index cols)
-    { return AlignedMapType(data, rows, cols); }
-
-    template<int Outer, int Inner>
-    static inline typename StridedConstMapType<Stride<Outer, Inner> >::type Map(const Scalar* data, const Stride<Outer, Inner>& stride)
-    { return typename StridedConstMapType<Stride<Outer, Inner> >::type(data, stride); }
-    template<int Outer, int Inner>
-    static inline typename StridedMapType<Stride<Outer, Inner> >::type Map(Scalar* data, const Stride<Outer, Inner>& stride)
-    { return typename StridedMapType<Stride<Outer, Inner> >::type(data, stride); }
-    template<int Outer, int Inner>
-    static inline typename StridedConstMapType<Stride<Outer, Inner> >::type Map(const Scalar* data, Index size, const Stride<Outer, Inner>& stride)
-    { return typename StridedConstMapType<Stride<Outer, Inner> >::type(data, size, stride); }
-    template<int Outer, int Inner>
-    static inline typename StridedMapType<Stride<Outer, Inner> >::type Map(Scalar* data, Index size, const Stride<Outer, Inner>& stride)
-    { return typename StridedMapType<Stride<Outer, Inner> >::type(data, size, stride); }
-    template<int Outer, int Inner>
-    static inline typename StridedConstMapType<Stride<Outer, Inner> >::type Map(const Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
-    { return typename StridedConstMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
-    template<int Outer, int Inner>
-    static inline typename StridedMapType<Stride<Outer, Inner> >::type Map(Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
-    { return typename StridedMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
-
-    template<int Outer, int Inner>
-    static inline typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type MapAligned(const Scalar* data, const Stride<Outer, Inner>& stride)
-    { return typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type(data, stride); }
-    template<int Outer, int Inner>
-    static inline typename StridedAlignedMapType<Stride<Outer, Inner> >::type MapAligned(Scalar* data, const Stride<Outer, Inner>& stride)
-    { return typename StridedAlignedMapType<Stride<Outer, Inner> >::type(data, stride); }
-    template<int Outer, int Inner>
-    static inline typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type MapAligned(const Scalar* data, Index size, const Stride<Outer, Inner>& stride)
-    { return typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type(data, size, stride); }
-    template<int Outer, int Inner>
-    static inline typename StridedAlignedMapType<Stride<Outer, Inner> >::type MapAligned(Scalar* data, Index size, const Stride<Outer, Inner>& stride)
-    { return typename StridedAlignedMapType<Stride<Outer, Inner> >::type(data, size, stride); }
-    template<int Outer, int Inner>
-    static inline typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type MapAligned(const Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
-    { return typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
-    template<int Outer, int Inner>
-    static inline typename StridedAlignedMapType<Stride<Outer, Inner> >::type MapAligned(Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
-    { return typename StridedAlignedMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
-    //@}
-
-    using Base::setConstant;
-    Derived& setConstant(Index size, const Scalar& value);
-    Derived& setConstant(Index rows, Index cols, const Scalar& value);
-
-    using Base::setZero;
-    Derived& setZero(Index size);
-    Derived& setZero(Index rows, Index cols);
-
-    using Base::setOnes;
-    Derived& setOnes(Index size);
-    Derived& setOnes(Index rows, Index cols);
-
-    using Base::setRandom;
-    Derived& setRandom(Index size);
-    Derived& setRandom(Index rows, Index cols);
-
-    #ifdef EIGEN_PLAINOBJECTBASE_PLUGIN
-    #include EIGEN_PLAINOBJECTBASE_PLUGIN
-    #endif
-
-  protected:
-    /** \internal Resizes *this in preparation for assigning \a other to it.
-      * Takes care of doing all the checking that's needed.
-      *
-      * Note that copying a row-vector into a vector (and conversely) is allowed.
-      * The resizing, if any, is then done in the appropriate way so that row-vectors
-      * remain row-vectors and vectors remain vectors.
-      */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE void _resize_to_match(const EigenBase<OtherDerived>& other)
-    {
-      #ifdef EIGEN_NO_AUTOMATIC_RESIZING
-      eigen_assert((this->size()==0 || (IsVectorAtCompileTime ? (this->size() == other.size())
-                 : (rows() == other.rows() && cols() == other.cols())))
-        && "Size mismatch. Automatic resizing is disabled because EIGEN_NO_AUTOMATIC_RESIZING is defined");
-      EIGEN_ONLY_USED_FOR_DEBUG(other);
-      #else
-      resizeLike(other);
-      #endif
-    }
-
-    /**
-      * \brief Copies the value of the expression \a other into \c *this with automatic resizing.
-      *
-      * *this might be resized to match the dimensions of \a other. If *this was a null matrix (not already initialized),
-      * it will be initialized.
-      *
-      * Note that copying a row-vector into a vector (and conversely) is allowed.
-      * The resizing, if any, is then done in the appropriate way so that row-vectors
-      * remain row-vectors and vectors remain vectors.
-      *
-      * \sa operator=(const MatrixBase<OtherDerived>&), _set_noalias()
-      *
-      * \internal
-      */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Derived& _set(const DenseBase<OtherDerived>& other)
-    {
-      _set_selector(other.derived(), typename internal::conditional<static_cast<bool>(int(OtherDerived::Flags) & EvalBeforeAssigningBit), internal::true_type, internal::false_type>::type());
-      return this->derived();
-    }
-
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE void _set_selector(const OtherDerived& other, const internal::true_type&) { _set_noalias(other.eval()); }
-
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE void _set_selector(const OtherDerived& other, const internal::false_type&) { _set_noalias(other); }
-
-    /** \internal Like _set() but additionally makes the assumption that no aliasing effect can happen (which
-      * is the case when creating a new matrix) so one can enforce lazy evaluation.
-      *
-      * \sa operator=(const MatrixBase<OtherDerived>&), _set()
-      */
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE Derived& _set_noalias(const DenseBase<OtherDerived>& other)
-    {
-      // I don't think we need this resize call since the lazyAssign will anyways resize
-      // and lazyAssign will be called by the assign selector.
-      //_resize_to_match(other);
-      // the 'false' below means to enforce lazy evaluation. We don't use lazyAssign() because
-      // it wouldn't allow to copy a row-vector into a column-vector.
-      return internal::assign_selector<Derived,OtherDerived,false>::run(this->derived(), other.derived());
-    }
-
-    template<typename T0, typename T1>
-    EIGEN_STRONG_INLINE void _init2(Index nbRows, Index nbCols, typename internal::enable_if<Base::SizeAtCompileTime!=2,T0>::type* = 0)
-    {
-      EIGEN_STATIC_ASSERT(bool(NumTraits<T0>::IsInteger) &&
-                          bool(NumTraits<T1>::IsInteger),
-                          FLOATING_POINT_ARGUMENT_PASSED__INTEGER_WAS_EXPECTED)
-      resize(nbRows,nbCols);
-    }
-    template<typename T0, typename T1>
-    EIGEN_STRONG_INLINE void _init2(const Scalar& val0, const Scalar& val1, typename internal::enable_if<Base::SizeAtCompileTime==2,T0>::type* = 0)
-    {
-      EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(PlainObjectBase, 2)
-      m_storage.data()[0] = val0;
-      m_storage.data()[1] = val1;
-    }
-
-    template<typename MatrixTypeA, typename MatrixTypeB, bool SwapPointers>
-    friend struct internal::matrix_swap_impl;
-
-    /** \internal generic implementation of swap for dense storage since for dynamic-sized matrices of same type it is enough to swap the
-      * data pointers.
-      */
-    template<typename OtherDerived>
-    void _swap(DenseBase<OtherDerived> const & other)
-    {
-      enum { SwapPointers = internal::is_same<Derived, OtherDerived>::value && Base::SizeAtCompileTime==Dynamic };
-      internal::matrix_swap_impl<Derived, OtherDerived, bool(SwapPointers)>::run(this->derived(), other.const_cast_derived());
-    }
-
-  public:
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    static EIGEN_STRONG_INLINE void _check_template_params()
-    {
-      EIGEN_STATIC_ASSERT((EIGEN_IMPLIES(MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1, (Options&RowMajor)==RowMajor)
-                        && EIGEN_IMPLIES(MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1, (Options&RowMajor)==0)
-                        && ((RowsAtCompileTime == Dynamic) || (RowsAtCompileTime >= 0))
-                        && ((ColsAtCompileTime == Dynamic) || (ColsAtCompileTime >= 0))
-                        && ((MaxRowsAtCompileTime == Dynamic) || (MaxRowsAtCompileTime >= 0))
-                        && ((MaxColsAtCompileTime == Dynamic) || (MaxColsAtCompileTime >= 0))
-                        && (MaxRowsAtCompileTime == RowsAtCompileTime || RowsAtCompileTime==Dynamic)
-                        && (MaxColsAtCompileTime == ColsAtCompileTime || ColsAtCompileTime==Dynamic)
-                        && (Options & (DontAlign|RowMajor)) == Options),
-        INVALID_MATRIX_TEMPLATE_PARAMETERS)
-    }
-#endif
-
-private:
-    enum { ThisConstantIsPrivateInPlainObjectBase };
-};
-
-template <typename Derived, typename OtherDerived, bool IsVector>
-struct internal::conservative_resize_like_impl
-{
-  typedef typename Derived::Index Index;
-  static void run(DenseBase<Derived>& _this, Index rows, Index cols)
-  {
-    if (_this.rows() == rows && _this.cols() == cols) return;
-    EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(Derived)
-
-    if ( ( Derived::IsRowMajor && _this.cols() == cols) || // row-major and we change only the number of rows
-         (!Derived::IsRowMajor && _this.rows() == rows) )  // column-major and we change only the number of columns
-    {
-      internal::check_rows_cols_for_overflow<Derived::MaxSizeAtCompileTime>::run(rows, cols);
-      _this.derived().m_storage.conservativeResize(rows*cols,rows,cols);
-    }
-    else
-    {
-      // The storage order does not allow us to use reallocation.
-      typename Derived::PlainObject tmp(rows,cols);
-      const Index common_rows = (std::min)(rows, _this.rows());
-      const Index common_cols = (std::min)(cols, _this.cols());
-      tmp.block(0,0,common_rows,common_cols) = _this.block(0,0,common_rows,common_cols);
-      _this.derived().swap(tmp);
-    }
-  }
-
-  static void run(DenseBase<Derived>& _this, const DenseBase<OtherDerived>& other)
-  {
-    if (_this.rows() == other.rows() && _this.cols() == other.cols()) return;
-
-    // Note: Here is space for improvement. Basically, for conservativeResize(Index,Index),
-    // neither RowsAtCompileTime or ColsAtCompileTime must be Dynamic. If only one of the
-    // dimensions is dynamic, one could use either conservativeResize(Index rows, NoChange_t) or
-    // conservativeResize(NoChange_t, Index cols). For these methods new static asserts like
-    // EIGEN_STATIC_ASSERT_DYNAMIC_ROWS and EIGEN_STATIC_ASSERT_DYNAMIC_COLS would be good.
-    EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(Derived)
-    EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(OtherDerived)
-
-    if ( ( Derived::IsRowMajor && _this.cols() == other.cols()) || // row-major and we change only the number of rows
-         (!Derived::IsRowMajor && _this.rows() == other.rows()) )  // column-major and we change only the number of columns
-    {
-      const Index new_rows = other.rows() - _this.rows();
-      const Index new_cols = other.cols() - _this.cols();
-      _this.derived().m_storage.conservativeResize(other.size(),other.rows(),other.cols());
-      if (new_rows>0)
-        _this.bottomRightCorner(new_rows, other.cols()) = other.bottomRows(new_rows);
-      else if (new_cols>0)
-        _this.bottomRightCorner(other.rows(), new_cols) = other.rightCols(new_cols);
-    }
-    else
-    {
-      // The storage order does not allow us to use reallocation.
-      typename Derived::PlainObject tmp(other);
-      const Index common_rows = (std::min)(tmp.rows(), _this.rows());
-      const Index common_cols = (std::min)(tmp.cols(), _this.cols());
-      tmp.block(0,0,common_rows,common_cols) = _this.block(0,0,common_rows,common_cols);
-      _this.derived().swap(tmp);
-    }
-  }
-};
-
-namespace internal {
-
-template <typename Derived, typename OtherDerived>
-struct conservative_resize_like_impl<Derived,OtherDerived,true>
-{
-  typedef typename Derived::Index Index;
-  static void run(DenseBase<Derived>& _this, Index size)
-  {
-    const Index new_rows = Derived::RowsAtCompileTime==1 ? 1 : size;
-    const Index new_cols = Derived::RowsAtCompileTime==1 ? size : 1;
-    _this.derived().m_storage.conservativeResize(size,new_rows,new_cols);
-  }
-
-  static void run(DenseBase<Derived>& _this, const DenseBase<OtherDerived>& other)
-  {
-    if (_this.rows() == other.rows() && _this.cols() == other.cols()) return;
-
-    const Index num_new_elements = other.size() - _this.size();
-
-    const Index new_rows = Derived::RowsAtCompileTime==1 ? 1 : other.rows();
-    const Index new_cols = Derived::RowsAtCompileTime==1 ? other.cols() : 1;
-    _this.derived().m_storage.conservativeResize(other.size(),new_rows,new_cols);
-
-    if (num_new_elements > 0)
-      _this.tail(num_new_elements) = other.tail(num_new_elements);
-  }
-};
-
-template<typename MatrixTypeA, typename MatrixTypeB, bool SwapPointers>
-struct matrix_swap_impl
-{
-  static inline void run(MatrixTypeA& a, MatrixTypeB& b)
-  {
-    a.base().swap(b);
-  }
-};
-
-template<typename MatrixTypeA, typename MatrixTypeB>
-struct matrix_swap_impl<MatrixTypeA, MatrixTypeB, true>
-{
-  static inline void run(MatrixTypeA& a, MatrixTypeB& b)
-  {
-    static_cast<typename MatrixTypeA::Base&>(a).m_storage.swap(static_cast<typename MatrixTypeB::Base&>(b).m_storage);
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_DENSESTORAGEBASE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Product.h b/vendor/eigen-3.1.91/Eigen/src/Core/Product.h
deleted file mode 100644
index 3a08c02..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/Product.h
+++ /dev/null
@@ -1,107 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_PRODUCT_H
-#define EIGEN_PRODUCT_H
-
-namespace Eigen {
-
-template<typename Lhs, typename Rhs> class Product;
-template<typename Lhs, typename Rhs, typename StorageKind> class ProductImpl;
-
-/** \class Product
-  * \ingroup Core_Module
-  *
-  * \brief Expression of the product of two arbitrary matrices or vectors
-  *
-  * \param Lhs the type of the left-hand side expression
-  * \param Rhs the type of the right-hand side expression
-  *
-  * This class represents an expression of the product of two arbitrary matrices.
-  *
-  */
-
-// Use ProductReturnType to get correct traits, in particular vectorization flags
-namespace internal {
-template<typename Lhs, typename Rhs>
-struct traits<Product<Lhs, Rhs> >
-  : traits<typename ProductReturnType<Lhs, Rhs>::Type>
-{ 
-  // We want A+B*C to be of type Product<Matrix, Sum> and not Product<Matrix, Matrix>
-  // TODO: This flag should eventually go in a separate evaluator traits class
-  enum {
-    Flags = traits<typename ProductReturnType<Lhs, Rhs>::Type>::Flags & ~EvalBeforeNestingBit
-  };
-};
-} // end namespace internal
-
-
-template<typename Lhs, typename Rhs>
-class Product : public ProductImpl<Lhs,Rhs,typename internal::promote_storage_type<typename internal::traits<Lhs>::StorageKind,
-                                                                            typename internal::traits<Rhs>::StorageKind>::ret>
-{
-  public:
-    
-    typedef typename ProductImpl<
-        Lhs, Rhs,
-        typename internal::promote_storage_type<typename Lhs::StorageKind,
-                                                typename Rhs::StorageKind>::ret>::Base Base;
-    EIGEN_GENERIC_PUBLIC_INTERFACE(Product)
-
-    typedef typename Lhs::Nested LhsNested;
-    typedef typename Rhs::Nested RhsNested;
-    typedef typename internal::remove_all<LhsNested>::type LhsNestedCleaned;
-    typedef typename internal::remove_all<RhsNested>::type RhsNestedCleaned;
-
-    Product(const Lhs& lhs, const Rhs& rhs) : m_lhs(lhs), m_rhs(rhs)
-    {
-      eigen_assert(lhs.cols() == rhs.rows()
-        && "invalid matrix product"
-        && "if you wanted a coeff-wise or a dot product use the respective explicit functions");
-    }
-
-    inline Index rows() const { return m_lhs.rows(); }
-    inline Index cols() const { return m_rhs.cols(); }
-
-    const LhsNestedCleaned& lhs() const { return m_lhs; }
-    const RhsNestedCleaned& rhs() const { return m_rhs; }
-
-  protected:
-
-    LhsNested m_lhs;
-    RhsNested m_rhs;
-};
-
-template<typename Lhs, typename Rhs>
-class ProductImpl<Lhs,Rhs,Dense> : public internal::dense_xpr_base<Product<Lhs,Rhs> >::type
-{
-    typedef Product<Lhs, Rhs> Derived;
-  public:
-
-    typedef typename internal::dense_xpr_base<Product<Lhs, Rhs> >::type Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
-};
-
-/***************************************************************************
-* Implementation of matrix base methods
-***************************************************************************/
-
-
-/** \internal used to test the evaluator only
-  */
-template<typename Lhs,typename Rhs>
-const Product<Lhs,Rhs>
-prod(const Lhs& lhs, const Rhs& rhs)
-{
-  return Product<Lhs,Rhs>(lhs,rhs);
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_PRODUCT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/ProductBase.h b/vendor/eigen-3.1.91/Eigen/src/Core/ProductBase.h
deleted file mode 100644
index a494b5f..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/ProductBase.h
+++ /dev/null
@@ -1,278 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_PRODUCTBASE_H
-#define EIGEN_PRODUCTBASE_H
-
-namespace Eigen { 
-
-/** \class ProductBase
-  * \ingroup Core_Module
-  *
-  */
-
-namespace internal {
-template<typename Derived, typename _Lhs, typename _Rhs>
-struct traits<ProductBase<Derived,_Lhs,_Rhs> >
-{
-  typedef MatrixXpr XprKind;
-  typedef typename remove_all<_Lhs>::type Lhs;
-  typedef typename remove_all<_Rhs>::type Rhs;
-  typedef typename scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType Scalar;
-  typedef typename promote_storage_type<typename traits<Lhs>::StorageKind,
-                                           typename traits<Rhs>::StorageKind>::ret StorageKind;
-  typedef typename promote_index_type<typename traits<Lhs>::Index,
-                                         typename traits<Rhs>::Index>::type Index;
-  enum {
-    RowsAtCompileTime = traits<Lhs>::RowsAtCompileTime,
-    ColsAtCompileTime = traits<Rhs>::ColsAtCompileTime,
-    MaxRowsAtCompileTime = traits<Lhs>::MaxRowsAtCompileTime,
-    MaxColsAtCompileTime = traits<Rhs>::MaxColsAtCompileTime,
-    Flags = (MaxRowsAtCompileTime==1 ? RowMajorBit : 0)
-          | EvalBeforeNestingBit | EvalBeforeAssigningBit | NestByRefBit,
-                  // Note that EvalBeforeNestingBit and NestByRefBit
-                  // are not used in practice because nested is overloaded for products
-    CoeffReadCost = 0 // FIXME why is it needed ?
-  };
-};
-}
-
-#define EIGEN_PRODUCT_PUBLIC_INTERFACE(Derived) \
-  typedef ProductBase<Derived, Lhs, Rhs > Base; \
-  EIGEN_DENSE_PUBLIC_INTERFACE(Derived) \
-  typedef typename Base::LhsNested LhsNested; \
-  typedef typename Base::_LhsNested _LhsNested; \
-  typedef typename Base::LhsBlasTraits LhsBlasTraits; \
-  typedef typename Base::ActualLhsType ActualLhsType; \
-  typedef typename Base::_ActualLhsType _ActualLhsType; \
-  typedef typename Base::RhsNested RhsNested; \
-  typedef typename Base::_RhsNested _RhsNested; \
-  typedef typename Base::RhsBlasTraits RhsBlasTraits; \
-  typedef typename Base::ActualRhsType ActualRhsType; \
-  typedef typename Base::_ActualRhsType _ActualRhsType; \
-  using Base::m_lhs; \
-  using Base::m_rhs;
-
-template<typename Derived, typename Lhs, typename Rhs>
-class ProductBase : public MatrixBase<Derived>
-{
-  public:
-    typedef MatrixBase<Derived> Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(ProductBase)
-    
-    typedef typename Lhs::Nested LhsNested;
-    typedef typename internal::remove_all<LhsNested>::type _LhsNested;
-    typedef internal::blas_traits<_LhsNested> LhsBlasTraits;
-    typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhsType;
-    typedef typename internal::remove_all<ActualLhsType>::type _ActualLhsType;
-    typedef typename internal::traits<Lhs>::Scalar LhsScalar;
-
-    typedef typename Rhs::Nested RhsNested;
-    typedef typename internal::remove_all<RhsNested>::type _RhsNested;
-    typedef internal::blas_traits<_RhsNested> RhsBlasTraits;
-    typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType;
-    typedef typename internal::remove_all<ActualRhsType>::type _ActualRhsType;
-    typedef typename internal::traits<Rhs>::Scalar RhsScalar;
-
-    // Diagonal of a product: no need to evaluate the arguments because they are going to be evaluated only once
-    typedef CoeffBasedProduct<LhsNested, RhsNested, 0> FullyLazyCoeffBaseProductType;
-
-  public:
-
-    typedef typename Base::PlainObject PlainObject;
-
-    ProductBase(const Lhs& a_lhs, const Rhs& a_rhs)
-      : m_lhs(a_lhs), m_rhs(a_rhs)
-    {
-      eigen_assert(a_lhs.cols() == a_rhs.rows()
-        && "invalid matrix product"
-        && "if you wanted a coeff-wise or a dot product use the respective explicit functions");
-    }
-
-    inline Index rows() const { return m_lhs.rows(); }
-    inline Index cols() const { return m_rhs.cols(); }
-
-    template<typename Dest>
-    inline void evalTo(Dest& dst) const { dst.setZero(); scaleAndAddTo(dst,Scalar(1)); }
-
-    template<typename Dest>
-    inline void addTo(Dest& dst) const { scaleAndAddTo(dst,Scalar(1)); }
-
-    template<typename Dest>
-    inline void subTo(Dest& dst) const { scaleAndAddTo(dst,Scalar(-1)); }
-
-    template<typename Dest>
-    inline void scaleAndAddTo(Dest& dst, const Scalar& alpha) const { derived().scaleAndAddTo(dst,alpha); }
-
-    const _LhsNested& lhs() const { return m_lhs; }
-    const _RhsNested& rhs() const { return m_rhs; }
-
-    // Implicit conversion to the nested type (trigger the evaluation of the product)
-    operator const PlainObject& () const
-    {
-      m_result.resize(m_lhs.rows(), m_rhs.cols());
-      derived().evalTo(m_result);
-      return m_result;
-    }
-
-    const Diagonal<const FullyLazyCoeffBaseProductType,0> diagonal() const
-    { return FullyLazyCoeffBaseProductType(m_lhs, m_rhs); }
-
-    template<int Index>
-    const Diagonal<FullyLazyCoeffBaseProductType,Index> diagonal() const
-    { return FullyLazyCoeffBaseProductType(m_lhs, m_rhs); }
-
-    const Diagonal<FullyLazyCoeffBaseProductType,Dynamic> diagonal(Index index) const
-    { return FullyLazyCoeffBaseProductType(m_lhs, m_rhs).diagonal(index); }
-
-    // restrict coeff accessors to 1x1 expressions. No need to care about mutators here since this isnt a Lvalue expression
-    typename Base::CoeffReturnType coeff(Index row, Index col) const
-    {
-#ifdef EIGEN2_SUPPORT
-      return lhs().row(row).cwiseProduct(rhs().col(col).transpose()).sum();
-#else
-      EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
-      eigen_assert(this->rows() == 1 && this->cols() == 1);
-      Matrix<Scalar,1,1> result = *this;
-      return result.coeff(row,col);
-#endif
-    }
-
-    typename Base::CoeffReturnType coeff(Index i) const
-    {
-      EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
-      eigen_assert(this->rows() == 1 && this->cols() == 1);
-      Matrix<Scalar,1,1> result = *this;
-      return result.coeff(i);
-    }
-
-    const Scalar& coeffRef(Index row, Index col) const
-    {
-      EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
-      eigen_assert(this->rows() == 1 && this->cols() == 1);
-      return derived().coeffRef(row,col);
-    }
-
-    const Scalar& coeffRef(Index i) const
-    {
-      EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
-      eigen_assert(this->rows() == 1 && this->cols() == 1);
-      return derived().coeffRef(i);
-    }
-
-  protected:
-
-    LhsNested m_lhs;
-    RhsNested m_rhs;
-
-    mutable PlainObject m_result;
-};
-
-// here we need to overload the nested rule for products
-// such that the nested type is a const reference to a plain matrix
-namespace internal {
-template<typename Lhs, typename Rhs, int Mode, int N, typename PlainObject>
-struct nested<GeneralProduct<Lhs,Rhs,Mode>, N, PlainObject>
-{
-  typedef PlainObject const& type;
-};
-}
-
-template<typename NestedProduct>
-class ScaledProduct;
-
-// Note that these two operator* functions are not defined as member
-// functions of ProductBase, because, otherwise we would have to
-// define all overloads defined in MatrixBase. Furthermore, Using
-// "using Base::operator*" would not work with MSVC.
-//
-// Also note that here we accept any compatible scalar types
-template<typename Derived,typename Lhs,typename Rhs>
-const ScaledProduct<Derived>
-operator*(const ProductBase<Derived,Lhs,Rhs>& prod, const typename Derived::Scalar& x)
-{ return ScaledProduct<Derived>(prod.derived(), x); }
-
-template<typename Derived,typename Lhs,typename Rhs>
-typename internal::enable_if<!internal::is_same<typename Derived::Scalar,typename Derived::RealScalar>::value,
-                      const ScaledProduct<Derived> >::type
-operator*(const ProductBase<Derived,Lhs,Rhs>& prod, const typename Derived::RealScalar& x)
-{ return ScaledProduct<Derived>(prod.derived(), x); }
-
-
-template<typename Derived,typename Lhs,typename Rhs>
-const ScaledProduct<Derived>
-operator*(const typename Derived::Scalar& x,const ProductBase<Derived,Lhs,Rhs>& prod)
-{ return ScaledProduct<Derived>(prod.derived(), x); }
-
-template<typename Derived,typename Lhs,typename Rhs>
-typename internal::enable_if<!internal::is_same<typename Derived::Scalar,typename Derived::RealScalar>::value,
-                      const ScaledProduct<Derived> >::type
-operator*(const typename Derived::RealScalar& x,const ProductBase<Derived,Lhs,Rhs>& prod)
-{ return ScaledProduct<Derived>(prod.derived(), x); }
-
-namespace internal {
-template<typename NestedProduct>
-struct traits<ScaledProduct<NestedProduct> >
- : traits<ProductBase<ScaledProduct<NestedProduct>,
-                         typename NestedProduct::_LhsNested,
-                         typename NestedProduct::_RhsNested> >
-{
-  typedef typename traits<NestedProduct>::StorageKind StorageKind;
-};
-}
-
-template<typename NestedProduct>
-class ScaledProduct
-  : public ProductBase<ScaledProduct<NestedProduct>,
-                       typename NestedProduct::_LhsNested,
-                       typename NestedProduct::_RhsNested>
-{
-  public:
-    typedef ProductBase<ScaledProduct<NestedProduct>,
-                       typename NestedProduct::_LhsNested,
-                       typename NestedProduct::_RhsNested> Base;
-    typedef typename Base::Scalar Scalar;
-    typedef typename Base::PlainObject PlainObject;
-//     EIGEN_PRODUCT_PUBLIC_INTERFACE(ScaledProduct)
-
-    ScaledProduct(const NestedProduct& prod, const Scalar& x)
-    : Base(prod.lhs(),prod.rhs()), m_prod(prod), m_alpha(x) {}
-
-    template<typename Dest>
-    inline void evalTo(Dest& dst) const { dst.setZero(); scaleAndAddTo(dst, Scalar(1)); }
-
-    template<typename Dest>
-    inline void addTo(Dest& dst) const { scaleAndAddTo(dst, Scalar(1)); }
-
-    template<typename Dest>
-    inline void subTo(Dest& dst) const { scaleAndAddTo(dst, Scalar(-1)); }
-
-    template<typename Dest>
-    inline void scaleAndAddTo(Dest& dst, const Scalar& a_alpha) const { m_prod.derived().scaleAndAddTo(dst,a_alpha * m_alpha); }
-
-    const Scalar& alpha() const { return m_alpha; }
-    
-  protected:
-    const NestedProduct& m_prod;
-    Scalar m_alpha;
-};
-
-/** \internal
-  * Overloaded to perform an efficient C = (A*B).lazy() */
-template<typename Derived>
-template<typename ProductDerived, typename Lhs, typename Rhs>
-Derived& MatrixBase<Derived>::lazyAssign(const ProductBase<ProductDerived, Lhs,Rhs>& other)
-{
-  other.derived().evalTo(derived());
-  return derived();
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_PRODUCTBASE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/ProductEvaluators.h b/vendor/eigen-3.1.91/Eigen/src/Core/ProductEvaluators.h
deleted file mode 100644
index 8aed510..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/ProductEvaluators.h
+++ /dev/null
@@ -1,411 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2011 Jitse Niesen <jitse at maths.leeds.ac.uk>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-
-#ifndef EIGEN_PRODUCTEVALUATORS_H
-#define EIGEN_PRODUCTEVALUATORS_H
-
-namespace Eigen {
-  
-namespace internal {
-  
-// We can evaluate the product either all at once, like GeneralProduct and its evalTo() function, or
-// traverse the matrix coefficient by coefficient, like CoeffBasedProduct.  Use the existing logic
-// in ProductReturnType to decide.
-
-template<typename XprType, typename ProductType>
-struct product_evaluator_dispatcher;
-
-template<typename Lhs, typename Rhs>
-struct evaluator_impl<Product<Lhs, Rhs> >
-  : product_evaluator_dispatcher<Product<Lhs, Rhs>, typename ProductReturnType<Lhs, Rhs>::Type> 
-{
-  typedef Product<Lhs, Rhs> XprType;
-  typedef product_evaluator_dispatcher<XprType, typename ProductReturnType<Lhs, Rhs>::Type> Base;
-
-  evaluator_impl(const XprType& xpr) : Base(xpr) 
-  { }
-};
-
-template<typename XprType, typename ProductType>
-struct product_evaluator_traits_dispatcher;
-
-template<typename Lhs, typename Rhs>
-struct evaluator_traits<Product<Lhs, Rhs> >
-  : product_evaluator_traits_dispatcher<Product<Lhs, Rhs>, typename ProductReturnType<Lhs, Rhs>::Type> 
-{ 
-  static const int AssumeAliasing = 1;
-};
-
-// Case 1: Evaluate all at once
-//
-// We can view the GeneralProduct class as a part of the product evaluator. 
-// Four sub-cases: InnerProduct, OuterProduct, GemmProduct and GemvProduct.
-// InnerProduct is special because GeneralProduct does not have an evalTo() method in this case.
-
-template<typename Lhs, typename Rhs>
-struct product_evaluator_traits_dispatcher<Product<Lhs, Rhs>, GeneralProduct<Lhs, Rhs, InnerProduct> > 
-{
-  static const int HasEvalTo = 0;
-};
-
-template<typename Lhs, typename Rhs>
-struct product_evaluator_dispatcher<Product<Lhs, Rhs>, GeneralProduct<Lhs, Rhs, InnerProduct> > 
-  : public evaluator<typename Product<Lhs, Rhs>::PlainObject>::type
-{
-  typedef Product<Lhs, Rhs> XprType;
-  typedef typename XprType::PlainObject PlainObject;
-  typedef typename evaluator<PlainObject>::type evaluator_base;
-
-  // TODO: Computation is too early (?)
-  product_evaluator_dispatcher(const XprType& xpr) : evaluator_base(m_result)
-  {
-    m_result.coeffRef(0,0) = (xpr.lhs().transpose().cwiseProduct(xpr.rhs())).sum();
-  }
-  
-protected:  
-  PlainObject m_result;
-};
-
-// For the other three subcases, simply call the evalTo() method of GeneralProduct
-// TODO: GeneralProduct should take evaluators, not expression objects.
-
-template<typename Lhs, typename Rhs, int ProductType>
-struct product_evaluator_traits_dispatcher<Product<Lhs, Rhs>, GeneralProduct<Lhs, Rhs, ProductType> > 
-{
-  static const int HasEvalTo = 1;
-};
-
-template<typename Lhs, typename Rhs, int ProductType>
-struct product_evaluator_dispatcher<Product<Lhs, Rhs>, GeneralProduct<Lhs, Rhs, ProductType> > 
-{
-  typedef Product<Lhs, Rhs> XprType;
-  typedef typename XprType::PlainObject PlainObject;
-  typedef typename evaluator<PlainObject>::type evaluator_base;
-  
-  product_evaluator_dispatcher(const XprType& xpr) : m_xpr(xpr)
-  { }
-  
-  template<typename DstEvaluatorType, typename DstXprType>
-  void evalTo(DstEvaluatorType /* not used */, DstXprType& dst)
-  {
-    dst.resize(m_xpr.rows(), m_xpr.cols());
-    GeneralProduct<Lhs, Rhs, ProductType>(m_xpr.lhs(), m_xpr.rhs()).evalTo(dst);
-  }
-  
-protected: 
-  const XprType& m_xpr;
-};
-
-// Case 2: Evaluate coeff by coeff
-//
-// This is mostly taken from CoeffBasedProduct.h
-// The main difference is that we add an extra argument to the etor_product_*_impl::run() function
-// for the inner dimension of the product, because evaluator object do not know their size.
-
-template<int Traversal, int UnrollingIndex, typename Lhs, typename Rhs, typename RetScalar>
-struct etor_product_coeff_impl;
-
-template<int StorageOrder, int UnrollingIndex, typename Lhs, typename Rhs, typename Packet, int LoadMode>
-struct etor_product_packet_impl;
-
-template<typename Lhs, typename Rhs, typename LhsNested, typename RhsNested, int Flags>
-struct product_evaluator_traits_dispatcher<Product<Lhs, Rhs>, CoeffBasedProduct<LhsNested, RhsNested, Flags> >
-{
-  static const int HasEvalTo = 0;
-};
-
-template<typename Lhs, typename Rhs, typename LhsNested, typename RhsNested, int Flags>
-struct product_evaluator_dispatcher<Product<Lhs, Rhs>, CoeffBasedProduct<LhsNested, RhsNested, Flags> >
-  : evaluator_impl_base<Product<Lhs, Rhs> >
-{
-  typedef Product<Lhs, Rhs> XprType;
-  typedef CoeffBasedProduct<LhsNested, RhsNested, Flags> CoeffBasedProductType;
-
-  product_evaluator_dispatcher(const XprType& xpr) 
-    : m_lhsImpl(xpr.lhs()), 
-      m_rhsImpl(xpr.rhs()),  
-      m_innerDim(xpr.lhs().cols())
-  { }
-
-  typedef typename XprType::Index Index;
-  typedef typename XprType::Scalar Scalar;
-  typedef typename XprType::CoeffReturnType CoeffReturnType;
-  typedef typename XprType::PacketScalar PacketScalar;
-  typedef typename XprType::PacketReturnType PacketReturnType;
-
-  // Everything below here is taken from CoeffBasedProduct.h
-
-  enum {
-    RowsAtCompileTime = traits<CoeffBasedProductType>::RowsAtCompileTime,
-    PacketSize = packet_traits<Scalar>::size,
-    InnerSize  = traits<CoeffBasedProductType>::InnerSize,
-    CoeffReadCost = traits<CoeffBasedProductType>::CoeffReadCost,
-    Unroll = CoeffReadCost != Dynamic && CoeffReadCost <= EIGEN_UNROLLING_LIMIT,
-    CanVectorizeInner = traits<CoeffBasedProductType>::CanVectorizeInner
-  };
-
-  typedef typename evaluator<Lhs>::type LhsEtorType;
-  typedef typename evaluator<Rhs>::type RhsEtorType;
-  typedef etor_product_coeff_impl<CanVectorizeInner ? InnerVectorizedTraversal : DefaultTraversal,
-                                  Unroll ? InnerSize-1 : Dynamic,
-                                  LhsEtorType, RhsEtorType, Scalar> CoeffImpl;
-
-  const CoeffReturnType coeff(Index row, Index col) const
-  {
-    Scalar res;
-    CoeffImpl::run(row, col, m_lhsImpl, m_rhsImpl, m_innerDim, res);
-    return res;
-  }
-
-  /* Allow index-based non-packet access. It is impossible though to allow index-based packed access,
-   * which is why we don't set the LinearAccessBit.
-   */
-  const CoeffReturnType coeff(Index index) const
-  {
-    Scalar res;
-    const Index row = RowsAtCompileTime == 1 ? 0 : index;
-    const Index col = RowsAtCompileTime == 1 ? index : 0;
-    CoeffImpl::run(row, col, m_lhsImpl, m_rhsImpl, m_innerDim, res);
-    return res;
-  }
-
-  template<int LoadMode>
-  const PacketReturnType packet(Index row, Index col) const
-  {
-    PacketScalar res;
-    typedef etor_product_packet_impl<Flags&RowMajorBit ? RowMajor : ColMajor,
-				     Unroll ? InnerSize-1 : Dynamic,
-				     LhsEtorType, RhsEtorType, PacketScalar, LoadMode> PacketImpl;
-    PacketImpl::run(row, col, m_lhsImpl, m_rhsImpl, m_innerDim, res);
-    return res;
-  }
-
-protected:
-  typename evaluator<Lhs>::type m_lhsImpl;
-  typename evaluator<Rhs>::type m_rhsImpl;
-
-  // TODO: Get rid of m_innerDim if known at compile time
-  Index m_innerDim;
-};
-
-/***************************************************************************
-* Normal product .coeff() implementation (with meta-unrolling)
-***************************************************************************/
-
-/**************************************
-*** Scalar path  - no vectorization ***
-**************************************/
-
-template<int UnrollingIndex, typename Lhs, typename Rhs, typename RetScalar>
-struct etor_product_coeff_impl<DefaultTraversal, UnrollingIndex, Lhs, Rhs, RetScalar>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index innerDim, RetScalar &res)
-  {
-    etor_product_coeff_impl<DefaultTraversal, UnrollingIndex-1, Lhs, Rhs, RetScalar>::run(row, col, lhs, rhs, innerDim, res);
-    res += lhs.coeff(row, UnrollingIndex) * rhs.coeff(UnrollingIndex, col);
-  }
-};
-
-template<typename Lhs, typename Rhs, typename RetScalar>
-struct etor_product_coeff_impl<DefaultTraversal, 0, Lhs, Rhs, RetScalar>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index /*innerDim*/, RetScalar &res)
-  {
-    res = lhs.coeff(row, 0) * rhs.coeff(0, col);
-  }
-};
-
-template<typename Lhs, typename Rhs, typename RetScalar>
-struct etor_product_coeff_impl<DefaultTraversal, Dynamic, Lhs, Rhs, RetScalar>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index innerDim, RetScalar& res)
-  {
-    eigen_assert(innerDim>0 && "you are using a non initialized matrix");
-    res = lhs.coeff(row, 0) * rhs.coeff(0, col);
-    for(Index i = 1; i < innerDim; ++i)
-      res += lhs.coeff(row, i) * rhs.coeff(i, col);
-  }
-};
-
-/*******************************************
-*** Scalar path with inner vectorization ***
-*******************************************/
-
-template<int UnrollingIndex, typename Lhs, typename Rhs, typename Packet>
-struct etor_product_coeff_vectorized_unroller
-{
-  typedef typename Lhs::Index Index;
-  enum { PacketSize = packet_traits<typename Lhs::Scalar>::size };
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index innerDim, typename Lhs::PacketScalar &pres)
-  {
-    etor_product_coeff_vectorized_unroller<UnrollingIndex-PacketSize, Lhs, Rhs, Packet>::run(row, col, lhs, rhs, innerDim, pres);
-    pres = padd(pres, pmul( lhs.template packet<Aligned>(row, UnrollingIndex) , rhs.template packet<Aligned>(UnrollingIndex, col) ));
-  }
-};
-
-template<typename Lhs, typename Rhs, typename Packet>
-struct etor_product_coeff_vectorized_unroller<0, Lhs, Rhs, Packet>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index /*innerDim*/, typename Lhs::PacketScalar &pres)
-  {
-    pres = pmul(lhs.template packet<Aligned>(row, 0) , rhs.template packet<Aligned>(0, col));
-  }
-};
-
-template<int UnrollingIndex, typename Lhs, typename Rhs, typename RetScalar>
-struct etor_product_coeff_impl<InnerVectorizedTraversal, UnrollingIndex, Lhs, Rhs, RetScalar>
-{
-  typedef typename Lhs::PacketScalar Packet;
-  typedef typename Lhs::Index Index;
-  enum { PacketSize = packet_traits<typename Lhs::Scalar>::size };
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index innerDim, RetScalar &res)
-  {
-    Packet pres;
-    etor_product_coeff_vectorized_unroller<UnrollingIndex+1-PacketSize, Lhs, Rhs, Packet>::run(row, col, lhs, rhs, innerDim, pres);
-    etor_product_coeff_impl<DefaultTraversal,UnrollingIndex,Lhs,Rhs,RetScalar>::run(row, col, lhs, rhs, innerDim, res);
-    res = predux(pres);
-  }
-};
-
-template<typename Lhs, typename Rhs, int LhsRows = Lhs::RowsAtCompileTime, int RhsCols = Rhs::ColsAtCompileTime>
-struct etor_product_coeff_vectorized_dyn_selector
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index /*innerDim*/, typename Lhs::Scalar &res)
-  {
-    res = lhs.row(row).transpose().cwiseProduct(rhs.col(col)).sum();
-  }
-};
-
-// NOTE the 3 following specializations are because taking .col(0) on a vector is a bit slower
-// NOTE maybe they are now useless since we have a specialization for Block<Matrix>
-template<typename Lhs, typename Rhs, int RhsCols>
-struct etor_product_coeff_vectorized_dyn_selector<Lhs,Rhs,1,RhsCols>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index /*row*/, Index col, const Lhs& lhs, const Rhs& rhs, Index /*innerDim*/, typename Lhs::Scalar &res)
-  {
-    res = lhs.transpose().cwiseProduct(rhs.col(col)).sum();
-  }
-};
-
-template<typename Lhs, typename Rhs, int LhsRows>
-struct etor_product_coeff_vectorized_dyn_selector<Lhs,Rhs,LhsRows,1>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index /*col*/, const Lhs& lhs, const Rhs& rhs, Index /*innerDim*/, typename Lhs::Scalar &res)
-  {
-    res = lhs.row(row).transpose().cwiseProduct(rhs).sum();
-  }
-};
-
-template<typename Lhs, typename Rhs>
-struct etor_product_coeff_vectorized_dyn_selector<Lhs,Rhs,1,1>
-{
-  typedef typename Lhs::Index Index;
-  EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const Lhs& lhs, const Rhs& rhs, Index /*innerDim*/, typename Lhs::Scalar &res)
-  {
-    res = lhs.transpose().cwiseProduct(rhs).sum();
-  }
-};
-
-template<typename Lhs, typename Rhs, typename RetScalar>
-struct etor_product_coeff_impl<InnerVectorizedTraversal, Dynamic, Lhs, Rhs, RetScalar>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index innerDim, typename Lhs::Scalar &res)
-  {
-    etor_product_coeff_vectorized_dyn_selector<Lhs,Rhs>::run(row, col, lhs, rhs, innerDim, res);
-  }
-};
-
-/*******************
-*** Packet path  ***
-*******************/
-
-template<int UnrollingIndex, typename Lhs, typename Rhs, typename Packet, int LoadMode>
-struct etor_product_packet_impl<RowMajor, UnrollingIndex, Lhs, Rhs, Packet, LoadMode>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index innerDim, Packet &res)
-  {
-    etor_product_packet_impl<RowMajor, UnrollingIndex-1, Lhs, Rhs, Packet, LoadMode>::run(row, col, lhs, rhs, innerDim, res);
-    res =  pmadd(pset1<Packet>(lhs.coeff(row, UnrollingIndex)), rhs.template packet<LoadMode>(UnrollingIndex, col), res);
-  }
-};
-
-template<int UnrollingIndex, typename Lhs, typename Rhs, typename Packet, int LoadMode>
-struct etor_product_packet_impl<ColMajor, UnrollingIndex, Lhs, Rhs, Packet, LoadMode>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index innerDim, Packet &res)
-  {
-    etor_product_packet_impl<ColMajor, UnrollingIndex-1, Lhs, Rhs, Packet, LoadMode>::run(row, col, lhs, rhs, innerDim, res);
-    res =  pmadd(lhs.template packet<LoadMode>(row, UnrollingIndex), pset1<Packet>(rhs.coeff(UnrollingIndex, col)), res);
-  }
-};
-
-template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
-struct etor_product_packet_impl<RowMajor, 0, Lhs, Rhs, Packet, LoadMode>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index /*innerDim*/, Packet &res)
-  {
-    res = pmul(pset1<Packet>(lhs.coeff(row, 0)),rhs.template packet<LoadMode>(0, col));
-  }
-};
-
-template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
-struct etor_product_packet_impl<ColMajor, 0, Lhs, Rhs, Packet, LoadMode>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index /*innerDim*/, Packet &res)
-  {
-    res = pmul(lhs.template packet<LoadMode>(row, 0), pset1<Packet>(rhs.coeff(0, col)));
-  }
-};
-
-template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
-struct etor_product_packet_impl<RowMajor, Dynamic, Lhs, Rhs, Packet, LoadMode>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index innerDim, Packet& res)
-  {
-    eigen_assert(innerDim>0 && "you are using a non initialized matrix");
-    res = pmul(pset1<Packet>(lhs.coeff(row, 0)),rhs.template packet<LoadMode>(0, col));
-    for(Index i = 1; i < innerDim; ++i)
-      res =  pmadd(pset1<Packet>(lhs.coeff(row, i)), rhs.template packet<LoadMode>(i, col), res);
-  }
-};
-
-template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
-struct etor_product_packet_impl<ColMajor, Dynamic, Lhs, Rhs, Packet, LoadMode>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Index innerDim, Packet& res)
-  {
-    eigen_assert(innerDim>0 && "you are using a non initialized matrix");
-    res = pmul(lhs.template packet<LoadMode>(row, 0), pset1<Packet>(rhs.coeff(0, col)));
-    for(Index i = 1; i < innerDim; ++i)
-      res =  pmadd(lhs.template packet<LoadMode>(row, i), pset1<Packet>(rhs.coeff(i, col)), res);
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_PRODUCT_EVALUATORS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Redux.h b/vendor/eigen-3.1.91/Eigen/src/Core/Redux.h
deleted file mode 100644
index 50548fa..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/Redux.h
+++ /dev/null
@@ -1,408 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_REDUX_H
-#define EIGEN_REDUX_H
-
-namespace Eigen { 
-
-namespace internal {
-
-// TODO
-//  * implement other kind of vectorization
-//  * factorize code
-
-/***************************************************************************
-* Part 1 : the logic deciding a strategy for vectorization and unrolling
-***************************************************************************/
-
-template<typename Func, typename Derived>
-struct redux_traits
-{
-public:
-  enum {
-    PacketSize = packet_traits<typename Derived::Scalar>::size,
-    InnerMaxSize = int(Derived::IsRowMajor)
-                 ? Derived::MaxColsAtCompileTime
-                 : Derived::MaxRowsAtCompileTime
-  };
-
-  enum {
-    MightVectorize = (int(Derived::Flags)&ActualPacketAccessBit)
-                  && (functor_traits<Func>::PacketAccess),
-    MayLinearVectorize = MightVectorize && (int(Derived::Flags)&LinearAccessBit),
-    MaySliceVectorize  = MightVectorize && int(InnerMaxSize)>=3*PacketSize
-  };
-
-public:
-  enum {
-    Traversal = int(MayLinearVectorize) ? int(LinearVectorizedTraversal)
-              : int(MaySliceVectorize)  ? int(SliceVectorizedTraversal)
-                                        : int(DefaultTraversal)
-  };
-
-public:
-  enum {
-    Cost = (  Derived::SizeAtCompileTime == Dynamic
-           || Derived::CoeffReadCost == Dynamic
-           || (Derived::SizeAtCompileTime!=1 && functor_traits<Func>::Cost == Dynamic)
-           ) ? Dynamic
-           : Derived::SizeAtCompileTime * Derived::CoeffReadCost
-               + (Derived::SizeAtCompileTime-1) * functor_traits<Func>::Cost,
-    UnrollingLimit = EIGEN_UNROLLING_LIMIT * (int(Traversal) == int(DefaultTraversal) ? 1 : int(PacketSize))
-  };
-
-public:
-  enum {
-    Unrolling = Cost != Dynamic && Cost <= UnrollingLimit
-              ? CompleteUnrolling
-              : NoUnrolling
-  };
-};
-
-/***************************************************************************
-* Part 2 : unrollers
-***************************************************************************/
-
-/*** no vectorization ***/
-
-template<typename Func, typename Derived, int Start, int Length>
-struct redux_novec_unroller
-{
-  enum {
-    HalfLength = Length/2
-  };
-
-  typedef typename Derived::Scalar Scalar;
-
-  static EIGEN_STRONG_INLINE Scalar run(const Derived &mat, const Func& func)
-  {
-    return func(redux_novec_unroller<Func, Derived, Start, HalfLength>::run(mat,func),
-                redux_novec_unroller<Func, Derived, Start+HalfLength, Length-HalfLength>::run(mat,func));
-  }
-};
-
-template<typename Func, typename Derived, int Start>
-struct redux_novec_unroller<Func, Derived, Start, 1>
-{
-  enum {
-    outer = Start / Derived::InnerSizeAtCompileTime,
-    inner = Start % Derived::InnerSizeAtCompileTime
-  };
-
-  typedef typename Derived::Scalar Scalar;
-
-  static EIGEN_STRONG_INLINE Scalar run(const Derived &mat, const Func&)
-  {
-    return mat.coeffByOuterInner(outer, inner);
-  }
-};
-
-// This is actually dead code and will never be called. It is required
-// to prevent false warnings regarding failed inlining though
-// for 0 length run() will never be called at all.
-template<typename Func, typename Derived, int Start>
-struct redux_novec_unroller<Func, Derived, Start, 0>
-{
-  typedef typename Derived::Scalar Scalar;
-  static EIGEN_STRONG_INLINE Scalar run(const Derived&, const Func&) { return Scalar(); }
-};
-
-/*** vectorization ***/
-
-template<typename Func, typename Derived, int Start, int Length>
-struct redux_vec_unroller
-{
-  enum {
-    PacketSize = packet_traits<typename Derived::Scalar>::size,
-    HalfLength = Length/2
-  };
-
-  typedef typename Derived::Scalar Scalar;
-  typedef typename packet_traits<Scalar>::type PacketScalar;
-
-  static EIGEN_STRONG_INLINE PacketScalar run(const Derived &mat, const Func& func)
-  {
-    return func.packetOp(
-            redux_vec_unroller<Func, Derived, Start, HalfLength>::run(mat,func),
-            redux_vec_unroller<Func, Derived, Start+HalfLength, Length-HalfLength>::run(mat,func) );
-  }
-};
-
-template<typename Func, typename Derived, int Start>
-struct redux_vec_unroller<Func, Derived, Start, 1>
-{
-  enum {
-    index = Start * packet_traits<typename Derived::Scalar>::size,
-    outer = index / int(Derived::InnerSizeAtCompileTime),
-    inner = index % int(Derived::InnerSizeAtCompileTime),
-    alignment = (Derived::Flags & AlignedBit) ? Aligned : Unaligned
-  };
-
-  typedef typename Derived::Scalar Scalar;
-  typedef typename packet_traits<Scalar>::type PacketScalar;
-
-  static EIGEN_STRONG_INLINE PacketScalar run(const Derived &mat, const Func&)
-  {
-    return mat.template packetByOuterInner<alignment>(outer, inner);
-  }
-};
-
-/***************************************************************************
-* Part 3 : implementation of all cases
-***************************************************************************/
-
-template<typename Func, typename Derived,
-         int Traversal = redux_traits<Func, Derived>::Traversal,
-         int Unrolling = redux_traits<Func, Derived>::Unrolling
->
-struct redux_impl;
-
-template<typename Func, typename Derived>
-struct redux_impl<Func, Derived, DefaultTraversal, NoUnrolling>
-{
-  typedef typename Derived::Scalar Scalar;
-  typedef typename Derived::Index Index;
-  static EIGEN_STRONG_INLINE Scalar run(const Derived& mat, const Func& func)
-  {
-    eigen_assert(mat.rows()>0 && mat.cols()>0 && "you are using an empty matrix");
-    Scalar res;
-    res = mat.coeffByOuterInner(0, 0);
-    for(Index i = 1; i < mat.innerSize(); ++i)
-      res = func(res, mat.coeffByOuterInner(0, i));
-    for(Index i = 1; i < mat.outerSize(); ++i)
-      for(Index j = 0; j < mat.innerSize(); ++j)
-        res = func(res, mat.coeffByOuterInner(i, j));
-    return res;
-  }
-};
-
-template<typename Func, typename Derived>
-struct redux_impl<Func,Derived, DefaultTraversal, CompleteUnrolling>
-  : public redux_novec_unroller<Func,Derived, 0, Derived::SizeAtCompileTime>
-{};
-
-template<typename Func, typename Derived>
-struct redux_impl<Func, Derived, LinearVectorizedTraversal, NoUnrolling>
-{
-  typedef typename Derived::Scalar Scalar;
-  typedef typename packet_traits<Scalar>::type PacketScalar;
-  typedef typename Derived::Index Index;
-
-  static Scalar run(const Derived& mat, const Func& func)
-  {
-    const Index size = mat.size();
-    eigen_assert(size && "you are using an empty matrix");
-    const Index packetSize = packet_traits<Scalar>::size;
-    const Index alignedStart = internal::first_aligned(mat);
-    enum {
-      alignment = bool(Derived::Flags & DirectAccessBit) || bool(Derived::Flags & AlignedBit)
-                ? Aligned : Unaligned
-    };
-    const Index alignedSize2 = ((size-alignedStart)/(2*packetSize))*(2*packetSize);
-    const Index alignedSize = ((size-alignedStart)/(packetSize))*(packetSize);
-    const Index alignedEnd2 = alignedStart + alignedSize2;
-    const Index alignedEnd  = alignedStart + alignedSize;
-    Scalar res;
-    if(alignedSize)
-    {
-      PacketScalar packet_res0 = mat.template packet<alignment>(alignedStart);
-      if(alignedSize>packetSize) // we have at least two packets to partly unroll the loop
-      {
-        PacketScalar packet_res1 = mat.template packet<alignment>(alignedStart+packetSize);
-        for(Index index = alignedStart + 2*packetSize; index < alignedEnd2; index += 2*packetSize)
-        {
-          packet_res0 = func.packetOp(packet_res0, mat.template packet<alignment>(index));
-          packet_res1 = func.packetOp(packet_res1, mat.template packet<alignment>(index+packetSize));
-        }
-
-        packet_res0 = func.packetOp(packet_res0,packet_res1);
-        if(alignedEnd>alignedEnd2)
-          packet_res0 = func.packetOp(packet_res0, mat.template packet<alignment>(alignedEnd2));
-      }
-      res = func.predux(packet_res0);
-
-      for(Index index = 0; index < alignedStart; ++index)
-        res = func(res,mat.coeff(index));
-
-      for(Index index = alignedEnd; index < size; ++index)
-        res = func(res,mat.coeff(index));
-    }
-    else // too small to vectorize anything.
-         // since this is dynamic-size hence inefficient anyway for such small sizes, don't try to optimize.
-    {
-      res = mat.coeff(0);
-      for(Index index = 1; index < size; ++index)
-        res = func(res,mat.coeff(index));
-    }
-
-    return res;
-  }
-};
-
-template<typename Func, typename Derived>
-struct redux_impl<Func, Derived, SliceVectorizedTraversal, NoUnrolling>
-{
-  typedef typename Derived::Scalar Scalar;
-  typedef typename packet_traits<Scalar>::type PacketScalar;
-  typedef typename Derived::Index Index;
-
-  static Scalar run(const Derived& mat, const Func& func)
-  {
-    eigen_assert(mat.rows()>0 && mat.cols()>0 && "you are using an empty matrix");
-    const Index innerSize = mat.innerSize();
-    const Index outerSize = mat.outerSize();
-    enum {
-      packetSize = packet_traits<Scalar>::size
-    };
-    const Index packetedInnerSize = ((innerSize)/packetSize)*packetSize;
-    Scalar res;
-    if(packetedInnerSize)
-    {
-      PacketScalar packet_res = mat.template packet<Unaligned>(0,0);
-      for(Index j=0; j<outerSize; ++j)
-        for(Index i=(j==0?packetSize:0); i<packetedInnerSize; i+=Index(packetSize))
-          packet_res = func.packetOp(packet_res, mat.template packetByOuterInner<Unaligned>(j,i));
-
-      res = func.predux(packet_res);
-      for(Index j=0; j<outerSize; ++j)
-        for(Index i=packetedInnerSize; i<innerSize; ++i)
-          res = func(res, mat.coeffByOuterInner(j,i));
-    }
-    else // too small to vectorize anything.
-         // since this is dynamic-size hence inefficient anyway for such small sizes, don't try to optimize.
-    {
-      res = redux_impl<Func, Derived, DefaultTraversal, NoUnrolling>::run(mat, func);
-    }
-
-    return res;
-  }
-};
-
-template<typename Func, typename Derived>
-struct redux_impl<Func, Derived, LinearVectorizedTraversal, CompleteUnrolling>
-{
-  typedef typename Derived::Scalar Scalar;
-  typedef typename packet_traits<Scalar>::type PacketScalar;
-  enum {
-    PacketSize = packet_traits<Scalar>::size,
-    Size = Derived::SizeAtCompileTime,
-    VectorizedSize = (Size / PacketSize) * PacketSize
-  };
-  static EIGEN_STRONG_INLINE Scalar run(const Derived& mat, const Func& func)
-  {
-    eigen_assert(mat.rows()>0 && mat.cols()>0 && "you are using an empty matrix");
-    Scalar res = func.predux(redux_vec_unroller<Func, Derived, 0, Size / PacketSize>::run(mat,func));
-    if (VectorizedSize != Size)
-      res = func(res,redux_novec_unroller<Func, Derived, VectorizedSize, Size-VectorizedSize>::run(mat,func));
-    return res;
-  }
-};
-
-} // end namespace internal
-
-/***************************************************************************
-* Part 4 : public API
-***************************************************************************/
-
-
-/** \returns the result of a full redux operation on the whole matrix or vector using \a func
-  *
-  * The template parameter \a BinaryOp is the type of the functor \a func which must be
-  * an associative operator. Both current STL and TR1 functor styles are handled.
-  *
-  * \sa DenseBase::sum(), DenseBase::minCoeff(), DenseBase::maxCoeff(), MatrixBase::colwise(), MatrixBase::rowwise()
-  */
-template<typename Derived>
-template<typename Func>
-EIGEN_STRONG_INLINE typename internal::result_of<Func(typename internal::traits<Derived>::Scalar)>::type
-DenseBase<Derived>::redux(const Func& func) const
-{
-  typedef typename internal::remove_all<typename Derived::Nested>::type ThisNested;
-  return internal::redux_impl<Func, ThisNested>
-            ::run(derived(), func);
-}
-
-/** \returns the minimum of all coefficients of \c *this.
-  * \warning the result is undefined if \c *this contains NaN.
-  */
-template<typename Derived>
-EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
-DenseBase<Derived>::minCoeff() const
-{
-  return this->redux(Eigen::internal::scalar_min_op<Scalar>());
-}
-
-/** \returns the maximum of all coefficients of \c *this.
-  * \warning the result is undefined if \c *this contains NaN.
-  */
-template<typename Derived>
-EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
-DenseBase<Derived>::maxCoeff() const
-{
-  return this->redux(Eigen::internal::scalar_max_op<Scalar>());
-}
-
-/** \returns the sum of all coefficients of *this
-  *
-  * \sa trace(), prod(), mean()
-  */
-template<typename Derived>
-EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
-DenseBase<Derived>::sum() const
-{
-  if(SizeAtCompileTime==0 || (SizeAtCompileTime==Dynamic && size()==0))
-    return Scalar(0);
-  return this->redux(Eigen::internal::scalar_sum_op<Scalar>());
-}
-
-/** \returns the mean of all coefficients of *this
-*
-* \sa trace(), prod(), sum()
-*/
-template<typename Derived>
-EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
-DenseBase<Derived>::mean() const
-{
-  return Scalar(this->redux(Eigen::internal::scalar_sum_op<Scalar>())) / Scalar(this->size());
-}
-
-/** \returns the product of all coefficients of *this
-  *
-  * Example: \include MatrixBase_prod.cpp
-  * Output: \verbinclude MatrixBase_prod.out
-  *
-  * \sa sum(), mean(), trace()
-  */
-template<typename Derived>
-EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
-DenseBase<Derived>::prod() const
-{
-  if(SizeAtCompileTime==0 || (SizeAtCompileTime==Dynamic && size()==0))
-    return Scalar(1);
-  return this->redux(Eigen::internal::scalar_product_op<Scalar>());
-}
-
-/** \returns the trace of \c *this, i.e. the sum of the coefficients on the main diagonal.
-  *
-  * \c *this can be any matrix, not necessarily square.
-  *
-  * \sa diagonal(), sum()
-  */
-template<typename Derived>
-EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
-MatrixBase<Derived>::trace() const
-{
-  return derived().diagonal().sum();
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_REDUX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Ref.h b/vendor/eigen-3.1.91/Eigen/src/Core/Ref.h
deleted file mode 100644
index aba795b..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/Ref.h
+++ /dev/null
@@ -1,255 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_REF_H
-#define EIGEN_REF_H
-
-namespace Eigen { 
-
-template<typename Derived> class RefBase;
-template<typename PlainObjectType, int Options = 0,
-         typename StrideType = typename internal::conditional<PlainObjectType::IsVectorAtCompileTime,InnerStride<1>,OuterStride<> >::type > class Ref;
-
-/** \class Ref
-  * \ingroup Core_Module
-  *
-  * \brief A matrix or vector expression mapping an existing expressions
-  *
-  * \tparam PlainObjectType the equivalent matrix type of the mapped data
-  * \tparam Options specifies whether the pointer is \c #Aligned, or \c #Unaligned.
-  *                The default is \c #Unaligned.
-  * \tparam StrideType optionally specifies strides. By default, Ref implies a contiguous storage along the inner dimension (inner stride==1),
-  *                   but accept a variable outer stride (leading dimension).
-  *                   This can be overridden by specifying strides.
-  *                   The type passed here must be a specialization of the Stride template, see examples below.
-  *
-  * This class permits to write non template functions taking Eigen's object as parameters while limiting the number of copies.
-  * A Ref<> object can represent either a const expression or a l-value:
-  * \code
-  * // in-out argument:
-  * void foo1(Ref<VectorXf> x);
-  *
-  * // read-only const argument:
-  * void foo2(const Ref<const VectorXf>& x);
-  * \endcode
-  *
-  * In the in-out case, the input argument must satisfies the constraints of the actual Ref<> type, otherwise a compilation issue will be triggered.
-  * By default, a Ref<VectorXf> can reference any dense vector expression of float having a contiguous memory layout.
-  * Likewise, a Ref<MatrixXf> can reference any column major dense matrix expression of float whose column's elements are contiguously stored with
-  * the possibility to have a constant space inbetween each column, i.e.: the inner stride mmust be equal to 1, but the outer-stride (or leading dimension),
-  * can be greater than the number of rows.
-  *
-  * In the const case, if the input expression does not match the above requirement, then it is evaluated into a temporary before being passed to the function.
-  * Here are some examples:
-  * \code
-  * MatrixXf A;
-  * VectorXf a;
-  * foo1(a.head());             // OK
-  * foo1(A.col());              // OK
-  * foo1(A.row());              // compilation error because here innerstride!=1
-  * foo2(A.row());              // The row is copied into a contiguous temporary
-  * foo2(2*a);                  // The expression is evaluated into a temporary
-  * foo2(A.col().segment(2,4)); // No temporary
-  * \endcode
-  *
-  * The range of inputs that can be referenced without temporary can be enlarged using the last two template parameter.
-  * Here is an example accepting an innerstride!=1:
-  * \code
-  * // in-out argument:
-  * void foo3(Ref<VectorXf,0,InnerStride<> > x);
-  * foo3(A.row());              // OK
-  * \endcode
-  * The downside here is that the function foo3 might be significantly slower than foo1 because it won't be able to exploit vectorization, and will involved more
-  * expensive address computations even if the input is contiguously stored in memory. To overcome this issue, one might propose to overloads internally calling a
-  * template function, e.g.:
-  * \code
-  * // in the .h:
-  * void foo(const Ref<MatrixXf>& A);
-  * void foo(const Ref<MatrixXf,0,Stride<> >& A);
-  *
-  * // in the .cpp:
-  * template<typename TypeOfA> void foo_impl(const TypeOfA& A) {
-  *     ... // crazy code goes here
-  * }
-  * void foo(const Ref<MatrixXf>& A) { foo_impl(A); }
-  * void foo(const Ref<MatrixXf,0,Stride<> >& A) { foo_impl(A); }
-  * \endcode
-  *
-  *
-  * \sa PlainObjectBase::Map(), \ref TopicStorageOrders
-  */
-
-namespace internal {
-
-template<typename _PlainObjectType, int _Options, typename _StrideType>
-struct traits<Ref<_PlainObjectType, _Options, _StrideType> >
-  : public traits<Map<_PlainObjectType, _Options, _StrideType> >
-{
-  typedef _PlainObjectType PlainObjectType;
-  typedef _StrideType StrideType;
-  enum {
-    Options = _Options
-  };
-
-  template<typename Derived> struct match {
-    enum {
-      HasDirectAccess = internal::has_direct_access<Derived>::ret,
-      StorageOrderMatch = PlainObjectType::IsVectorAtCompileTime || ((PlainObjectType::Flags&RowMajorBit)==(Derived::Flags&RowMajorBit)),
-      InnerStrideMatch = int(StrideType::InnerStrideAtCompileTime)==int(Dynamic)
-                      || int(StrideType::InnerStrideAtCompileTime)==int(Derived::InnerStrideAtCompileTime)
-                      || (int(StrideType::InnerStrideAtCompileTime)==0 && int(Derived::InnerStrideAtCompileTime)==1),
-      OuterStrideMatch = Derived::IsVectorAtCompileTime
-                      || int(StrideType::OuterStrideAtCompileTime)==int(Dynamic) || int(StrideType::OuterStrideAtCompileTime)==int(Derived::OuterStrideAtCompileTime),
-      AlignmentMatch = (_Options!=Aligned) || ((PlainObjectType::Flags&AlignedBit)==0) || ((traits<Derived>::Flags&AlignedBit)==AlignedBit),
-      MatchAtCompileTime = HasDirectAccess && StorageOrderMatch && InnerStrideMatch && OuterStrideMatch && AlignmentMatch
-    };
-    typedef typename internal::conditional<MatchAtCompileTime,internal::true_type,internal::false_type>::type type;
-  };
-
-};
-
-template<typename Derived>
-struct traits<RefBase<Derived> > : public traits<Derived> {};
-
-}
-
-template<typename Derived> class RefBase
- : public MapBase<Derived>
-{
-  typedef typename internal::traits<Derived>::PlainObjectType PlainObjectType;
-  typedef typename internal::traits<Derived>::StrideType StrideType;
-
-public:
-
-  typedef MapBase<Derived> Base;
-  EIGEN_DENSE_PUBLIC_INTERFACE(RefBase)
-
-  inline Index innerStride() const
-  {
-    return StrideType::InnerStrideAtCompileTime != 0 ? m_stride.inner() : 1;
-  }
-
-  inline Index outerStride() const
-  {
-    return StrideType::OuterStrideAtCompileTime != 0 ? m_stride.outer()
-         : IsVectorAtCompileTime ? this->size()
-         : int(Flags)&RowMajorBit ? this->cols()
-         : this->rows();
-  }
-
-  RefBase()
-    : Base(0,RowsAtCompileTime==Dynamic?0:RowsAtCompileTime,ColsAtCompileTime==Dynamic?0:ColsAtCompileTime),
-      // Stride<> does not allow default ctor for Dynamic strides, so let' initialize it with dummy values:
-      m_stride(StrideType::OuterStrideAtCompileTime==Dynamic?0:StrideType::OuterStrideAtCompileTime,
-               StrideType::InnerStrideAtCompileTime==Dynamic?0:StrideType::InnerStrideAtCompileTime)
-  {}
-  
-  EIGEN_INHERIT_ASSIGNMENT_OPERATORS(RefBase)
-
-protected:
-
-  typedef Stride<StrideType::OuterStrideAtCompileTime,StrideType::InnerStrideAtCompileTime> StrideBase;
-
-  template<typename Expression>
-  void construct(Expression& expr)
-  {
-    if(PlainObjectType::RowsAtCompileTime==1)
-    {
-      eigen_assert(expr.rows()==1 || expr.cols()==1);
-      ::new (static_cast<Base*>(this)) Base(expr.data(), 1, expr.size());
-    }
-    else if(PlainObjectType::ColsAtCompileTime==1)
-    {
-      eigen_assert(expr.rows()==1 || expr.cols()==1);
-      ::new (static_cast<Base*>(this)) Base(expr.data(), expr.size(), 1);
-    }
-    else
-      ::new (static_cast<Base*>(this)) Base(expr.data(), expr.rows(), expr.cols());
-    ::new (&m_stride) StrideBase(StrideType::OuterStrideAtCompileTime==0?0:expr.outerStride(),
-                                 StrideType::InnerStrideAtCompileTime==0?0:expr.innerStride());    
-  }
-
-  StrideBase m_stride;
-};
-
-
-template<typename PlainObjectType, int Options, typename StrideType> class Ref
-  : public RefBase<Ref<PlainObjectType, Options, StrideType> >
-{
-    typedef internal::traits<Ref> Traits;
-  public:
-
-    typedef RefBase<Ref> Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(Ref)
-
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    template<typename Derived>
-    inline Ref(PlainObjectBase<Derived>& expr,
-               typename internal::enable_if<bool(Traits::template match<Derived>::MatchAtCompileTime),Derived>::type* = 0)
-    {
-      Base::construct(expr);
-    }
-    template<typename Derived>
-    inline Ref(const DenseBase<Derived>& expr,
-               typename internal::enable_if<bool(internal::is_lvalue<Derived>::value&&bool(Traits::template match<Derived>::MatchAtCompileTime)),Derived>::type* = 0,
-               int = Derived::ThisConstantIsPrivateInPlainObjectBase)
-    #else
-    template<typename Derived>
-    inline Ref(DenseBase<Derived>& expr)
-    #endif
-    {
-      Base::construct(expr.const_cast_derived());
-    }
-
-    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Ref)
-
-};
-
-// this is the const ref version
-template<typename TPlainObjectType, int Options, typename StrideType> class Ref<const TPlainObjectType, Options, StrideType>
-  : public RefBase<Ref<const TPlainObjectType, Options, StrideType> >
-{
-    typedef internal::traits<Ref> Traits;
-  public:
-
-    typedef RefBase<Ref> Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(Ref)
-
-    template<typename Derived>
-    inline Ref(const DenseBase<Derived>& expr)
-    {
-//      std::cout << match_helper<Derived>::HasDirectAccess << "," << match_helper<Derived>::OuterStrideMatch << "," << match_helper<Derived>::InnerStrideMatch << "\n";
-//      std::cout << int(StrideType::OuterStrideAtCompileTime) << " - " << int(Derived::OuterStrideAtCompileTime) << "\n";
-//      std::cout << int(StrideType::InnerStrideAtCompileTime) << " - " << int(Derived::InnerStrideAtCompileTime) << "\n";
-      construct(expr.derived(), typename Traits::template match<Derived>::type());
-    }
-
-  protected:
-
-    template<typename Expression>
-    void construct(const Expression& expr,internal::true_type)
-    {
-      Base::construct(expr);
-    }
-
-    template<typename Expression>
-    void construct(const Expression& expr, internal::false_type)
-    {
-      m_object.lazyAssign(expr);
-      Base::construct(m_object);
-    }
-
-  protected:
-    TPlainObjectType m_object;
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_REF_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Replicate.h b/vendor/eigen-3.1.91/Eigen/src/Core/Replicate.h
deleted file mode 100644
index dde86a8..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/Replicate.h
+++ /dev/null
@@ -1,177 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_REPLICATE_H
-#define EIGEN_REPLICATE_H
-
-namespace Eigen { 
-
-/**
-  * \class Replicate
-  * \ingroup Core_Module
-  *
-  * \brief Expression of the multiple replication of a matrix or vector
-  *
-  * \param MatrixType the type of the object we are replicating
-  *
-  * This class represents an expression of the multiple replication of a matrix or vector.
-  * It is the return type of DenseBase::replicate() and most of the time
-  * this is the only way it is used.
-  *
-  * \sa DenseBase::replicate()
-  */
-
-namespace internal {
-template<typename MatrixType,int RowFactor,int ColFactor>
-struct traits<Replicate<MatrixType,RowFactor,ColFactor> >
- : traits<MatrixType>
-{
-  typedef typename MatrixType::Scalar Scalar;
-  typedef typename traits<MatrixType>::StorageKind StorageKind;
-  typedef typename traits<MatrixType>::XprKind XprKind;
-  enum {
-    Factor = (RowFactor==Dynamic || ColFactor==Dynamic) ? Dynamic : RowFactor*ColFactor
-  };
-  typedef typename nested<MatrixType,Factor>::type MatrixTypeNested;
-  typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
-  enum {
-    RowsAtCompileTime = RowFactor==Dynamic || int(MatrixType::RowsAtCompileTime)==Dynamic
-                      ? Dynamic
-                      : RowFactor * MatrixType::RowsAtCompileTime,
-    ColsAtCompileTime = ColFactor==Dynamic || int(MatrixType::ColsAtCompileTime)==Dynamic
-                      ? Dynamic
-                      : ColFactor * MatrixType::ColsAtCompileTime,
-   //FIXME we don't propagate the max sizes !!!
-    MaxRowsAtCompileTime = RowsAtCompileTime,
-    MaxColsAtCompileTime = ColsAtCompileTime,
-    IsRowMajor = MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1 ? 1
-               : MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1 ? 0
-               : (MatrixType::Flags & RowMajorBit) ? 1 : 0,
-    Flags = (_MatrixTypeNested::Flags & HereditaryBits & ~RowMajorBit) | (IsRowMajor ? RowMajorBit : 0),
-    CoeffReadCost = _MatrixTypeNested::CoeffReadCost
-  };
-};
-}
-
-template<typename MatrixType,int RowFactor,int ColFactor> class Replicate
-  : public internal::dense_xpr_base< Replicate<MatrixType,RowFactor,ColFactor> >::type
-{
-    typedef typename internal::traits<Replicate>::MatrixTypeNested MatrixTypeNested;
-    typedef typename internal::traits<Replicate>::_MatrixTypeNested _MatrixTypeNested;
-  public:
-
-    typedef typename internal::dense_xpr_base<Replicate>::type Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(Replicate)
-
-    template<typename OriginalMatrixType>
-    inline explicit Replicate(const OriginalMatrixType& a_matrix)
-      : m_matrix(a_matrix), m_rowFactor(RowFactor), m_colFactor(ColFactor)
-    {
-      EIGEN_STATIC_ASSERT((internal::is_same<typename internal::remove_const<MatrixType>::type,OriginalMatrixType>::value),
-                          THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE)
-      eigen_assert(RowFactor!=Dynamic && ColFactor!=Dynamic);
-    }
-
-    template<typename OriginalMatrixType>
-    inline Replicate(const OriginalMatrixType& a_matrix, Index rowFactor, Index colFactor)
-      : m_matrix(a_matrix), m_rowFactor(rowFactor), m_colFactor(colFactor)
-    {
-      EIGEN_STATIC_ASSERT((internal::is_same<typename internal::remove_const<MatrixType>::type,OriginalMatrixType>::value),
-                          THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE)
-    }
-
-    inline Index rows() const { return m_matrix.rows() * m_rowFactor.value(); }
-    inline Index cols() const { return m_matrix.cols() * m_colFactor.value(); }
-
-    inline Scalar coeff(Index rowId, Index colId) const
-    {
-      // try to avoid using modulo; this is a pure optimization strategy
-      const Index actual_row  = internal::traits<MatrixType>::RowsAtCompileTime==1 ? 0
-                            : RowFactor==1 ? rowId
-                            : rowId%m_matrix.rows();
-      const Index actual_col  = internal::traits<MatrixType>::ColsAtCompileTime==1 ? 0
-                            : ColFactor==1 ? colId
-                            : colId%m_matrix.cols();
-
-      return m_matrix.coeff(actual_row, actual_col);
-    }
-    template<int LoadMode>
-    inline PacketScalar packet(Index rowId, Index colId) const
-    {
-      const Index actual_row  = internal::traits<MatrixType>::RowsAtCompileTime==1 ? 0
-                            : RowFactor==1 ? rowId
-                            : rowId%m_matrix.rows();
-      const Index actual_col  = internal::traits<MatrixType>::ColsAtCompileTime==1 ? 0
-                            : ColFactor==1 ? colId
-                            : colId%m_matrix.cols();
-
-      return m_matrix.template packet<LoadMode>(actual_row, actual_col);
-    }
-
-    const _MatrixTypeNested& nestedExpression() const
-    { 
-      return m_matrix; 
-    }
-
-  protected:
-    MatrixTypeNested m_matrix;
-    const internal::variable_if_dynamic<Index, RowFactor> m_rowFactor;
-    const internal::variable_if_dynamic<Index, ColFactor> m_colFactor;
-};
-
-/**
-  * \return an expression of the replication of \c *this
-  *
-  * Example: \include MatrixBase_replicate.cpp
-  * Output: \verbinclude MatrixBase_replicate.out
-  *
-  * \sa VectorwiseOp::replicate(), DenseBase::replicate(Index,Index), class Replicate
-  */
-template<typename Derived>
-template<int RowFactor, int ColFactor>
-inline const Replicate<Derived,RowFactor,ColFactor>
-DenseBase<Derived>::replicate() const
-{
-  return Replicate<Derived,RowFactor,ColFactor>(derived());
-}
-
-/**
-  * \return an expression of the replication of \c *this
-  *
-  * Example: \include MatrixBase_replicate_int_int.cpp
-  * Output: \verbinclude MatrixBase_replicate_int_int.out
-  *
-  * \sa VectorwiseOp::replicate(), DenseBase::replicate<int,int>(), class Replicate
-  */
-template<typename Derived>
-inline const Replicate<Derived,Dynamic,Dynamic>
-DenseBase<Derived>::replicate(Index rowFactor,Index colFactor) const
-{
-  return Replicate<Derived,Dynamic,Dynamic>(derived(),rowFactor,colFactor);
-}
-
-/**
-  * \return an expression of the replication of each column (or row) of \c *this
-  *
-  * Example: \include DirectionWise_replicate_int.cpp
-  * Output: \verbinclude DirectionWise_replicate_int.out
-  *
-  * \sa VectorwiseOp::replicate(), DenseBase::replicate(), class Replicate
-  */
-template<typename ExpressionType, int Direction>
-const typename VectorwiseOp<ExpressionType,Direction>::ReplicateReturnType
-VectorwiseOp<ExpressionType,Direction>::replicate(Index factor) const
-{
-  return typename VectorwiseOp<ExpressionType,Direction>::ReplicateReturnType
-          (_expression(),Direction==Vertical?factor:1,Direction==Horizontal?factor:1);
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_REPLICATE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/ReturnByValue.h b/vendor/eigen-3.1.91/Eigen/src/Core/ReturnByValue.h
deleted file mode 100644
index 613912f..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/ReturnByValue.h
+++ /dev/null
@@ -1,88 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2009-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_RETURNBYVALUE_H
-#define EIGEN_RETURNBYVALUE_H
-
-namespace Eigen {
-
-/** \class ReturnByValue
-  * \ingroup Core_Module
-  *
-  */
-
-namespace internal {
-
-template<typename Derived>
-struct traits<ReturnByValue<Derived> >
-  : public traits<typename traits<Derived>::ReturnType>
-{
-  enum {
-    // We're disabling the DirectAccess because e.g. the constructor of
-    // the Block-with-DirectAccess expression requires to have a coeffRef method.
-    // Also, we don't want to have to implement the stride stuff.
-    Flags = (traits<typename traits<Derived>::ReturnType>::Flags
-             | EvalBeforeNestingBit) & ~DirectAccessBit
-  };
-};
-
-/* The ReturnByValue object doesn't even have a coeff() method.
- * So the only way that nesting it in an expression can work, is by evaluating it into a plain matrix.
- * So internal::nested always gives the plain return matrix type.
- *
- * FIXME: I don't understand why we need this specialization: isn't this taken care of by the EvalBeforeNestingBit ??
- */
-template<typename Derived,int n,typename PlainObject>
-struct nested<ReturnByValue<Derived>, n, PlainObject>
-{
-  typedef typename traits<Derived>::ReturnType type;
-};
-
-} // end namespace internal
-
-template<typename Derived> class ReturnByValue
-  : public internal::dense_xpr_base< ReturnByValue<Derived> >::type
-{
-  public:
-    typedef typename internal::traits<Derived>::ReturnType ReturnType;
-
-    typedef typename internal::dense_xpr_base<ReturnByValue>::type Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(ReturnByValue)
-
-    template<typename Dest>
-    inline void evalTo(Dest& dst) const
-    { static_cast<const Derived*>(this)->evalTo(dst); }
-    inline Index rows() const { return static_cast<const Derived*>(this)->rows(); }
-    inline Index cols() const { return static_cast<const Derived*>(this)->cols(); }
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-#define Unusable YOU_ARE_TRYING_TO_ACCESS_A_SINGLE_COEFFICIENT_IN_A_SPECIAL_EXPRESSION_WHERE_THAT_IS_NOT_ALLOWED_BECAUSE_THAT_WOULD_BE_INEFFICIENT
-    class Unusable{
-      Unusable(const Unusable&) {}
-      Unusable& operator=(const Unusable&) {return *this;}
-    };
-    const Unusable& coeff(Index) const { return *reinterpret_cast<const Unusable*>(this); }
-    const Unusable& coeff(Index,Index) const { return *reinterpret_cast<const Unusable*>(this); }
-    Unusable& coeffRef(Index) { return *reinterpret_cast<Unusable*>(this); }
-    Unusable& coeffRef(Index,Index) { return *reinterpret_cast<Unusable*>(this); }
-#endif
-};
-
-template<typename Derived>
-template<typename OtherDerived>
-Derived& DenseBase<Derived>::operator=(const ReturnByValue<OtherDerived>& other)
-{
-  other.evalTo(derived());
-  return derived();
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_RETURNBYVALUE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/SelfAdjointView.h b/vendor/eigen-3.1.91/Eigen/src/Core/SelfAdjointView.h
deleted file mode 100644
index d437891..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/SelfAdjointView.h
+++ /dev/null
@@ -1,314 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SELFADJOINTMATRIX_H
-#define EIGEN_SELFADJOINTMATRIX_H
-
-namespace Eigen { 
-
-/** \class SelfAdjointView
-  * \ingroup Core_Module
-  *
-  *
-  * \brief Expression of a selfadjoint matrix from a triangular part of a dense matrix
-  *
-  * \param MatrixType the type of the dense matrix storing the coefficients
-  * \param TriangularPart can be either \c #Lower or \c #Upper
-  *
-  * This class is an expression of a sefladjoint matrix from a triangular part of a matrix
-  * with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView()
-  * and most of the time this is the only way that it is used.
-  *
-  * \sa class TriangularBase, MatrixBase::selfadjointView()
-  */
-
-namespace internal {
-template<typename MatrixType, unsigned int UpLo>
-struct traits<SelfAdjointView<MatrixType, UpLo> > : traits<MatrixType>
-{
-  typedef typename nested<MatrixType>::type MatrixTypeNested;
-  typedef typename remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
-  typedef MatrixType ExpressionType;
-  typedef typename MatrixType::PlainObject DenseMatrixType;
-  enum {
-    Mode = UpLo | SelfAdjoint,
-    Flags =  MatrixTypeNestedCleaned::Flags & (HereditaryBits)
-           & (~(PacketAccessBit | DirectAccessBit | LinearAccessBit)), // FIXME these flags should be preserved
-    CoeffReadCost = MatrixTypeNestedCleaned::CoeffReadCost
-  };
-};
-}
-
-template <typename Lhs, int LhsMode, bool LhsIsVector,
-          typename Rhs, int RhsMode, bool RhsIsVector>
-struct SelfadjointProductMatrix;
-
-// FIXME could also be called SelfAdjointWrapper to be consistent with DiagonalWrapper ??
-template<typename MatrixType, unsigned int UpLo> class SelfAdjointView
-  : public TriangularBase<SelfAdjointView<MatrixType, UpLo> >
-{
-  public:
-
-    typedef TriangularBase<SelfAdjointView> Base;
-    typedef typename internal::traits<SelfAdjointView>::MatrixTypeNested MatrixTypeNested;
-    typedef typename internal::traits<SelfAdjointView>::MatrixTypeNestedCleaned MatrixTypeNestedCleaned;
-
-    /** \brief The type of coefficients in this matrix */
-    typedef typename internal::traits<SelfAdjointView>::Scalar Scalar; 
-
-    typedef typename MatrixType::Index Index;
-
-    enum {
-      Mode = internal::traits<SelfAdjointView>::Mode
-    };
-    typedef typename MatrixType::PlainObject PlainObject;
-
-    inline SelfAdjointView(MatrixType& matrix) : m_matrix(matrix)
-    {}
-
-    inline Index rows() const { return m_matrix.rows(); }
-    inline Index cols() const { return m_matrix.cols(); }
-    inline Index outerStride() const { return m_matrix.outerStride(); }
-    inline Index innerStride() const { return m_matrix.innerStride(); }
-
-    /** \sa MatrixBase::coeff()
-      * \warning the coordinates must fit into the referenced triangular part
-      */
-    inline Scalar coeff(Index row, Index col) const
-    {
-      Base::check_coordinates_internal(row, col);
-      return m_matrix.coeff(row, col);
-    }
-
-    /** \sa MatrixBase::coeffRef()
-      * \warning the coordinates must fit into the referenced triangular part
-      */
-    inline Scalar& coeffRef(Index row, Index col)
-    {
-      Base::check_coordinates_internal(row, col);
-      return m_matrix.const_cast_derived().coeffRef(row, col);
-    }
-
-    /** \internal */
-    const MatrixTypeNestedCleaned& _expression() const { return m_matrix; }
-
-    const MatrixTypeNestedCleaned& nestedExpression() const { return m_matrix; }
-    MatrixTypeNestedCleaned& nestedExpression() { return *const_cast<MatrixTypeNestedCleaned*>(&m_matrix); }
-
-    /** Efficient self-adjoint matrix times vector/matrix product */
-    template<typename OtherDerived>
-    SelfadjointProductMatrix<MatrixType,Mode,false,OtherDerived,0,OtherDerived::IsVectorAtCompileTime>
-    operator*(const MatrixBase<OtherDerived>& rhs) const
-    {
-      return SelfadjointProductMatrix
-              <MatrixType,Mode,false,OtherDerived,0,OtherDerived::IsVectorAtCompileTime>
-              (m_matrix, rhs.derived());
-    }
-
-    /** Efficient vector/matrix times self-adjoint matrix product */
-    template<typename OtherDerived> friend
-    SelfadjointProductMatrix<OtherDerived,0,OtherDerived::IsVectorAtCompileTime,MatrixType,Mode,false>
-    operator*(const MatrixBase<OtherDerived>& lhs, const SelfAdjointView& rhs)
-    {
-      return SelfadjointProductMatrix
-              <OtherDerived,0,OtherDerived::IsVectorAtCompileTime,MatrixType,Mode,false>
-              (lhs.derived(),rhs.m_matrix);
-    }
-
-    /** Perform a symmetric rank 2 update of the selfadjoint matrix \c *this:
-      * \f$ this = this + \alpha u v^* + conj(\alpha) v u^* \f$
-      * \returns a reference to \c *this
-      *
-      * The vectors \a u and \c v \b must be column vectors, however they can be
-      * a adjoint expression without any overhead. Only the meaningful triangular
-      * part of the matrix is updated, the rest is left unchanged.
-      *
-      * \sa rankUpdate(const MatrixBase<DerivedU>&, Scalar)
-      */
-    template<typename DerivedU, typename DerivedV>
-    SelfAdjointView& rankUpdate(const MatrixBase<DerivedU>& u, const MatrixBase<DerivedV>& v, const Scalar& alpha = Scalar(1));
-
-    /** Perform a symmetric rank K update of the selfadjoint matrix \c *this:
-      * \f$ this = this + \alpha ( u u^* ) \f$ where \a u is a vector or matrix.
-      *
-      * \returns a reference to \c *this
-      *
-      * Note that to perform \f$ this = this + \alpha ( u^* u ) \f$ you can simply
-      * call this function with u.adjoint().
-      *
-      * \sa rankUpdate(const MatrixBase<DerivedU>&, const MatrixBase<DerivedV>&, Scalar)
-      */
-    template<typename DerivedU>
-    SelfAdjointView& rankUpdate(const MatrixBase<DerivedU>& u, const Scalar& alpha = Scalar(1));
-
-/////////// Cholesky module ///////////
-
-    const LLT<PlainObject, UpLo> llt() const;
-    const LDLT<PlainObject, UpLo> ldlt() const;
-
-/////////// Eigenvalue module ///////////
-
-    /** Real part of #Scalar */
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-    /** Return type of eigenvalues() */
-    typedef Matrix<RealScalar, internal::traits<MatrixType>::ColsAtCompileTime, 1> EigenvaluesReturnType;
-
-    EigenvaluesReturnType eigenvalues() const;
-    RealScalar operatorNorm() const;
-    
-    #ifdef EIGEN2_SUPPORT
-    template<typename OtherDerived>
-    SelfAdjointView& operator=(const MatrixBase<OtherDerived>& other)
-    {
-      enum {
-        OtherPart = UpLo == Upper ? StrictlyLower : StrictlyUpper
-      };
-      m_matrix.const_cast_derived().template triangularView<UpLo>() = other;
-      m_matrix.const_cast_derived().template triangularView<OtherPart>() = other.adjoint();
-      return *this;
-    }
-    template<typename OtherMatrixType, unsigned int OtherMode>
-    SelfAdjointView& operator=(const TriangularView<OtherMatrixType, OtherMode>& other)
-    {
-      enum {
-        OtherPart = UpLo == Upper ? StrictlyLower : StrictlyUpper
-      };
-      m_matrix.const_cast_derived().template triangularView<UpLo>() = other.toDenseMatrix();
-      m_matrix.const_cast_derived().template triangularView<OtherPart>() = other.toDenseMatrix().adjoint();
-      return *this;
-    }
-    #endif
-
-  protected:
-    MatrixTypeNested m_matrix;
-};
-
-
-// template<typename OtherDerived, typename MatrixType, unsigned int UpLo>
-// internal::selfadjoint_matrix_product_returntype<OtherDerived,SelfAdjointView<MatrixType,UpLo> >
-// operator*(const MatrixBase<OtherDerived>& lhs, const SelfAdjointView<MatrixType,UpLo>& rhs)
-// {
-//   return internal::matrix_selfadjoint_product_returntype<OtherDerived,SelfAdjointView<MatrixType,UpLo> >(lhs.derived(),rhs);
-// }
-
-// selfadjoint to dense matrix
-
-namespace internal {
-
-template<typename Derived1, typename Derived2, int UnrollCount, bool ClearOpposite>
-struct triangular_assignment_selector<Derived1, Derived2, (SelfAdjoint|Upper), UnrollCount, ClearOpposite>
-{
-  enum {
-    col = (UnrollCount-1) / Derived1::RowsAtCompileTime,
-    row = (UnrollCount-1) % Derived1::RowsAtCompileTime
-  };
-
-  static inline void run(Derived1 &dst, const Derived2 &src)
-  {
-    triangular_assignment_selector<Derived1, Derived2, (SelfAdjoint|Upper), UnrollCount-1, ClearOpposite>::run(dst, src);
-
-    if(row == col)
-      dst.coeffRef(row, col) = real(src.coeff(row, col));
-    else if(row < col)
-      dst.coeffRef(col, row) = conj(dst.coeffRef(row, col) = src.coeff(row, col));
-  }
-};
-
-template<typename Derived1, typename Derived2, bool ClearOpposite>
-struct triangular_assignment_selector<Derived1, Derived2, SelfAdjoint|Upper, 0, ClearOpposite>
-{
-  static inline void run(Derived1 &, const Derived2 &) {}
-};
-
-template<typename Derived1, typename Derived2, int UnrollCount, bool ClearOpposite>
-struct triangular_assignment_selector<Derived1, Derived2, (SelfAdjoint|Lower), UnrollCount, ClearOpposite>
-{
-  enum {
-    col = (UnrollCount-1) / Derived1::RowsAtCompileTime,
-    row = (UnrollCount-1) % Derived1::RowsAtCompileTime
-  };
-
-  static inline void run(Derived1 &dst, const Derived2 &src)
-  {
-    triangular_assignment_selector<Derived1, Derived2, (SelfAdjoint|Lower), UnrollCount-1, ClearOpposite>::run(dst, src);
-
-    if(row == col)
-      dst.coeffRef(row, col) = real(src.coeff(row, col));
-    else if(row > col)
-      dst.coeffRef(col, row) = conj(dst.coeffRef(row, col) = src.coeff(row, col));
-  }
-};
-
-template<typename Derived1, typename Derived2, bool ClearOpposite>
-struct triangular_assignment_selector<Derived1, Derived2, SelfAdjoint|Lower, 0, ClearOpposite>
-{
-  static inline void run(Derived1 &, const Derived2 &) {}
-};
-
-template<typename Derived1, typename Derived2, bool ClearOpposite>
-struct triangular_assignment_selector<Derived1, Derived2, SelfAdjoint|Upper, Dynamic, ClearOpposite>
-{
-  typedef typename Derived1::Index Index;
-  static inline void run(Derived1 &dst, const Derived2 &src)
-  {
-    for(Index j = 0; j < dst.cols(); ++j)
-    {
-      for(Index i = 0; i < j; ++i)
-      {
-        dst.copyCoeff(i, j, src);
-        dst.coeffRef(j,i) = conj(dst.coeff(i,j));
-      }
-      dst.copyCoeff(j, j, src);
-    }
-  }
-};
-
-template<typename Derived1, typename Derived2, bool ClearOpposite>
-struct triangular_assignment_selector<Derived1, Derived2, SelfAdjoint|Lower, Dynamic, ClearOpposite>
-{
-  static inline void run(Derived1 &dst, const Derived2 &src)
-  {
-  typedef typename Derived1::Index Index;
-    for(Index i = 0; i < dst.rows(); ++i)
-    {
-      for(Index j = 0; j < i; ++j)
-      {
-        dst.copyCoeff(i, j, src);
-        dst.coeffRef(j,i) = conj(dst.coeff(i,j));
-      }
-      dst.copyCoeff(i, i, src);
-    }
-  }
-};
-
-} // end namespace internal
-
-/***************************************************************************
-* Implementation of MatrixBase methods
-***************************************************************************/
-
-template<typename Derived>
-template<unsigned int UpLo>
-typename MatrixBase<Derived>::template ConstSelfAdjointViewReturnType<UpLo>::Type
-MatrixBase<Derived>::selfadjointView() const
-{
-  return derived();
-}
-
-template<typename Derived>
-template<unsigned int UpLo>
-typename MatrixBase<Derived>::template SelfAdjointViewReturnType<UpLo>::Type
-MatrixBase<Derived>::selfadjointView()
-{
-  return derived();
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_SELFADJOINTMATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/SelfCwiseBinaryOp.h b/vendor/eigen-3.1.91/Eigen/src/Core/SelfCwiseBinaryOp.h
deleted file mode 100644
index 22f3047..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/SelfCwiseBinaryOp.h
+++ /dev/null
@@ -1,197 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SELFCWISEBINARYOP_H
-#define EIGEN_SELFCWISEBINARYOP_H
-
-namespace Eigen { 
-
-/** \class SelfCwiseBinaryOp
-  * \ingroup Core_Module
-  *
-  * \internal
-  *
-  * \brief Internal helper class for optimizing operators like +=, -=
-  *
-  * This is a pseudo expression class re-implementing the copyCoeff/copyPacket
-  * method to directly performs a +=/-= operations in an optimal way. In particular,
-  * this allows to make sure that the input/output data are loaded only once using
-  * aligned packet loads.
-  *
-  * \sa class SwapWrapper for a similar trick.
-  */
-
-namespace internal {
-template<typename BinaryOp, typename Lhs, typename Rhs>
-struct traits<SelfCwiseBinaryOp<BinaryOp,Lhs,Rhs> >
-  : traits<CwiseBinaryOp<BinaryOp,Lhs,Rhs> >
-{
-  enum {
-    // Note that it is still a good idea to preserve the DirectAccessBit
-    // so that assign can correctly align the data.
-    Flags = traits<CwiseBinaryOp<BinaryOp,Lhs,Rhs> >::Flags | (Lhs::Flags&DirectAccessBit) | (Lhs::Flags&LvalueBit),
-    OuterStrideAtCompileTime = Lhs::OuterStrideAtCompileTime,
-    InnerStrideAtCompileTime = Lhs::InnerStrideAtCompileTime
-  };
-};
-}
-
-template<typename BinaryOp, typename Lhs, typename Rhs> class SelfCwiseBinaryOp
-  : public internal::dense_xpr_base< SelfCwiseBinaryOp<BinaryOp, Lhs, Rhs> >::type
-{
-  public:
-
-    typedef typename internal::dense_xpr_base<SelfCwiseBinaryOp>::type Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(SelfCwiseBinaryOp)
-
-    typedef typename internal::packet_traits<Scalar>::type Packet;
-
-    inline SelfCwiseBinaryOp(Lhs& xpr, const BinaryOp& func = BinaryOp()) : m_matrix(xpr), m_functor(func) {}
-
-    inline Index rows() const { return m_matrix.rows(); }
-    inline Index cols() const { return m_matrix.cols(); }
-    inline Index outerStride() const { return m_matrix.outerStride(); }
-    inline Index innerStride() const { return m_matrix.innerStride(); }
-    inline const Scalar* data() const { return m_matrix.data(); }
-
-    // note that this function is needed by assign to correctly align loads/stores
-    // TODO make Assign use .data()
-    inline Scalar& coeffRef(Index row, Index col)
-    {
-      EIGEN_STATIC_ASSERT_LVALUE(Lhs)
-      return m_matrix.const_cast_derived().coeffRef(row, col);
-    }
-    inline const Scalar& coeffRef(Index row, Index col) const
-    {
-      return m_matrix.coeffRef(row, col);
-    }
-
-    // note that this function is needed by assign to correctly align loads/stores
-    // TODO make Assign use .data()
-    inline Scalar& coeffRef(Index index)
-    {
-      EIGEN_STATIC_ASSERT_LVALUE(Lhs)
-      return m_matrix.const_cast_derived().coeffRef(index);
-    }
-    inline const Scalar& coeffRef(Index index) const
-    {
-      return m_matrix.const_cast_derived().coeffRef(index);
-    }
-
-    template<typename OtherDerived>
-    void copyCoeff(Index row, Index col, const DenseBase<OtherDerived>& other)
-    {
-      OtherDerived& _other = other.const_cast_derived();
-      eigen_internal_assert(row >= 0 && row < rows()
-                         && col >= 0 && col < cols());
-      Scalar& tmp = m_matrix.coeffRef(row,col);
-      tmp = m_functor(tmp, _other.coeff(row,col));
-    }
-
-    template<typename OtherDerived>
-    void copyCoeff(Index index, const DenseBase<OtherDerived>& other)
-    {
-      OtherDerived& _other = other.const_cast_derived();
-      eigen_internal_assert(index >= 0 && index < m_matrix.size());
-      Scalar& tmp = m_matrix.coeffRef(index);
-      tmp = m_functor(tmp, _other.coeff(index));
-    }
-
-    template<typename OtherDerived, int StoreMode, int LoadMode>
-    void copyPacket(Index row, Index col, const DenseBase<OtherDerived>& other)
-    {
-      OtherDerived& _other = other.const_cast_derived();
-      eigen_internal_assert(row >= 0 && row < rows()
-                        && col >= 0 && col < cols());
-      m_matrix.template writePacket<StoreMode>(row, col,
-        m_functor.packetOp(m_matrix.template packet<StoreMode>(row, col),_other.template packet<LoadMode>(row, col)) );
-    }
-
-    template<typename OtherDerived, int StoreMode, int LoadMode>
-    void copyPacket(Index index, const DenseBase<OtherDerived>& other)
-    {
-      OtherDerived& _other = other.const_cast_derived();
-      eigen_internal_assert(index >= 0 && index < m_matrix.size());
-      m_matrix.template writePacket<StoreMode>(index,
-        m_functor.packetOp(m_matrix.template packet<StoreMode>(index),_other.template packet<LoadMode>(index)) );
-    }
-
-    // reimplement lazyAssign to handle complex *= real
-    // see CwiseBinaryOp ctor for details
-    template<typename RhsDerived>
-    EIGEN_STRONG_INLINE SelfCwiseBinaryOp& lazyAssign(const DenseBase<RhsDerived>& rhs)
-    {
-      EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Lhs,RhsDerived)
-      EIGEN_CHECK_BINARY_COMPATIBILIY(BinaryOp,typename Lhs::Scalar,typename RhsDerived::Scalar);
-      
-    #ifdef EIGEN_DEBUG_ASSIGN
-      internal::assign_traits<SelfCwiseBinaryOp, RhsDerived>::debug();
-    #endif
-      eigen_assert(rows() == rhs.rows() && cols() == rhs.cols());
-      internal::assign_impl<SelfCwiseBinaryOp, RhsDerived>::run(*this,rhs.derived());
-    #ifndef EIGEN_NO_DEBUG
-      this->checkTransposeAliasing(rhs.derived());
-    #endif
-      return *this;
-    }
-    
-    // overloaded to honor evaluation of special matrices
-    // maybe another solution would be to not use SelfCwiseBinaryOp
-    // at first...
-    SelfCwiseBinaryOp& operator=(const Rhs& _rhs)
-    {
-      typename internal::nested<Rhs>::type rhs(_rhs);
-      return Base::operator=(rhs);
-    }
-
-    Lhs& expression() const 
-    { 
-      return m_matrix;
-    }
-
-    const BinaryOp& functor() const 
-    { 
-      return m_functor;
-    }
-
-  protected:
-    Lhs& m_matrix;
-    const BinaryOp& m_functor;
-
-  private:
-    SelfCwiseBinaryOp& operator=(const SelfCwiseBinaryOp&);
-};
-
-template<typename Derived>
-inline Derived& DenseBase<Derived>::operator*=(const Scalar& other)
-{
-  typedef typename Derived::PlainObject PlainObject;
-  SelfCwiseBinaryOp<internal::scalar_product_op<Scalar>, Derived, typename PlainObject::ConstantReturnType> tmp(derived());
-  tmp = PlainObject::Constant(rows(),cols(),other);
-  return derived();
-}
-
-template<typename Derived>
-inline Derived& DenseBase<Derived>::operator/=(const Scalar& other)
-{
-  typedef typename internal::conditional<NumTraits<Scalar>::IsInteger,
-                                        internal::scalar_quotient_op<Scalar>,
-                                        internal::scalar_product_op<Scalar> >::type BinOp;
-  typedef typename Derived::PlainObject PlainObject;
-  SelfCwiseBinaryOp<BinOp, Derived, typename PlainObject::ConstantReturnType> tmp(derived());
-  Scalar actual_other;
-  if(NumTraits<Scalar>::IsInteger)  actual_other = other;
-  else                              actual_other = Scalar(1)/other;
-  tmp = PlainObject::Constant(rows(),cols(), actual_other);
-  return derived();
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_SELFCWISEBINARYOP_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/SolveTriangular.h b/vendor/eigen-3.1.91/Eigen/src/Core/SolveTriangular.h
deleted file mode 100644
index ef17f28..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/SolveTriangular.h
+++ /dev/null
@@ -1,260 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SOLVETRIANGULAR_H
-#define EIGEN_SOLVETRIANGULAR_H
-
-namespace Eigen { 
-
-namespace internal {
-
-// Forward declarations:
-// The following two routines are implemented in the products/TriangularSolver*.h files
-template<typename LhsScalar, typename RhsScalar, typename Index, int Side, int Mode, bool Conjugate, int StorageOrder>
-struct triangular_solve_vector;
-
-template <typename Scalar, typename Index, int Side, int Mode, bool Conjugate, int TriStorageOrder, int OtherStorageOrder>
-struct triangular_solve_matrix;
-
-// small helper struct extracting some traits on the underlying solver operation
-template<typename Lhs, typename Rhs, int Side>
-class trsolve_traits
-{
-  private:
-    enum {
-      RhsIsVectorAtCompileTime = (Side==OnTheLeft ? Rhs::ColsAtCompileTime : Rhs::RowsAtCompileTime)==1
-    };
-  public:
-    enum {
-      Unrolling   = (RhsIsVectorAtCompileTime && Rhs::SizeAtCompileTime != Dynamic && Rhs::SizeAtCompileTime <= 8)
-                  ? CompleteUnrolling : NoUnrolling,
-      RhsVectors  = RhsIsVectorAtCompileTime ? 1 : Dynamic
-    };
-};
-
-template<typename Lhs, typename Rhs,
-  int Side, // can be OnTheLeft/OnTheRight
-  int Mode, // can be Upper/Lower | UnitDiag
-  int Unrolling = trsolve_traits<Lhs,Rhs,Side>::Unrolling,
-  int RhsVectors = trsolve_traits<Lhs,Rhs,Side>::RhsVectors
-  >
-struct triangular_solver_selector;
-
-template<typename Lhs, typename Rhs, int Side, int Mode>
-struct triangular_solver_selector<Lhs,Rhs,Side,Mode,NoUnrolling,1>
-{
-  typedef typename Lhs::Scalar LhsScalar;
-  typedef typename Rhs::Scalar RhsScalar;
-  typedef blas_traits<Lhs> LhsProductTraits;
-  typedef typename LhsProductTraits::ExtractType ActualLhsType;
-  typedef Map<Matrix<RhsScalar,Dynamic,1>, Aligned> MappedRhs;
-  static void run(const Lhs& lhs, Rhs& rhs)
-  {
-    ActualLhsType actualLhs = LhsProductTraits::extract(lhs);
-
-    // FIXME find a way to allow an inner stride if packet_traits<Scalar>::size==1
-
-    bool useRhsDirectly = Rhs::InnerStrideAtCompileTime==1 || rhs.innerStride()==1;
-
-    ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhs,rhs.size(),
-                                                  (useRhsDirectly ? rhs.data() : 0));
-                                                  
-    if(!useRhsDirectly)
-      MappedRhs(actualRhs,rhs.size()) = rhs;
-
-    triangular_solve_vector<LhsScalar, RhsScalar, typename Lhs::Index, Side, Mode, LhsProductTraits::NeedToConjugate,
-                            (int(Lhs::Flags) & RowMajorBit) ? RowMajor : ColMajor>
-      ::run(actualLhs.cols(), actualLhs.data(), actualLhs.outerStride(), actualRhs);
-
-    if(!useRhsDirectly)
-      rhs = MappedRhs(actualRhs, rhs.size());
-  }
-};
-
-// the rhs is a matrix
-template<typename Lhs, typename Rhs, int Side, int Mode>
-struct triangular_solver_selector<Lhs,Rhs,Side,Mode,NoUnrolling,Dynamic>
-{
-  typedef typename Rhs::Scalar Scalar;
-  typedef typename Rhs::Index Index;
-  typedef blas_traits<Lhs> LhsProductTraits;
-  typedef typename LhsProductTraits::DirectLinearAccessType ActualLhsType;
-
-  static void run(const Lhs& lhs, Rhs& rhs)
-  {
-    typename internal::add_const_on_value_type<ActualLhsType>::type actualLhs = LhsProductTraits::extract(lhs);
-
-    const Index size = lhs.rows();
-    const Index othersize = Side==OnTheLeft? rhs.cols() : rhs.rows();
-
-    typedef internal::gemm_blocking_space<(Rhs::Flags&RowMajorBit) ? RowMajor : ColMajor,Scalar,Scalar,
-              Rhs::MaxRowsAtCompileTime, Rhs::MaxColsAtCompileTime, Lhs::MaxRowsAtCompileTime,4> BlockingType;
-
-    BlockingType blocking(rhs.rows(), rhs.cols(), size);
-
-    triangular_solve_matrix<Scalar,Index,Side,Mode,LhsProductTraits::NeedToConjugate,(int(Lhs::Flags) & RowMajorBit) ? RowMajor : ColMajor,
-                               (Rhs::Flags&RowMajorBit) ? RowMajor : ColMajor>
-      ::run(size, othersize, &actualLhs.coeffRef(0,0), actualLhs.outerStride(), &rhs.coeffRef(0,0), rhs.outerStride(), blocking);
-  }
-};
-
-/***************************************************************************
-* meta-unrolling implementation
-***************************************************************************/
-
-template<typename Lhs, typename Rhs, int Mode, int Index, int Size,
-         bool Stop = Index==Size>
-struct triangular_solver_unroller;
-
-template<typename Lhs, typename Rhs, int Mode, int Index, int Size>
-struct triangular_solver_unroller<Lhs,Rhs,Mode,Index,Size,false> {
-  enum {
-    IsLower = ((Mode&Lower)==Lower),
-    I = IsLower ? Index : Size - Index - 1,
-    S = IsLower ? 0     : I+1
-  };
-  static void run(const Lhs& lhs, Rhs& rhs)
-  {
-    if (Index>0)
-      rhs.coeffRef(I) -= lhs.row(I).template segment<Index>(S).transpose()
-                         .cwiseProduct(rhs.template segment<Index>(S)).sum();
-
-    if(!(Mode & UnitDiag))
-      rhs.coeffRef(I) /= lhs.coeff(I,I);
-
-    triangular_solver_unroller<Lhs,Rhs,Mode,Index+1,Size>::run(lhs,rhs);
-  }
-};
-
-template<typename Lhs, typename Rhs, int Mode, int Index, int Size>
-struct triangular_solver_unroller<Lhs,Rhs,Mode,Index,Size,true> {
-  static void run(const Lhs&, Rhs&) {}
-};
-
-template<typename Lhs, typename Rhs, int Mode>
-struct triangular_solver_selector<Lhs,Rhs,OnTheLeft,Mode,CompleteUnrolling,1> {
-  static void run(const Lhs& lhs, Rhs& rhs)
-  { triangular_solver_unroller<Lhs,Rhs,Mode,0,Rhs::SizeAtCompileTime>::run(lhs,rhs); }
-};
-
-template<typename Lhs, typename Rhs, int Mode>
-struct triangular_solver_selector<Lhs,Rhs,OnTheRight,Mode,CompleteUnrolling,1> {
-  static void run(const Lhs& lhs, Rhs& rhs)
-  {
-    Transpose<const Lhs> trLhs(lhs);
-    Transpose<Rhs> trRhs(rhs);
-    
-    triangular_solver_unroller<Transpose<const Lhs>,Transpose<Rhs>,
-                              ((Mode&Upper)==Upper ? Lower : Upper) | (Mode&UnitDiag),
-                              0,Rhs::SizeAtCompileTime>::run(trLhs,trRhs);
-  }
-};
-
-} // end namespace internal
-
-/***************************************************************************
-* TriangularView methods
-***************************************************************************/
-
-/** "in-place" version of TriangularView::solve() where the result is written in \a other
-  *
-  * \warning The parameter is only marked 'const' to make the C++ compiler accept a temporary expression here.
-  * This function will const_cast it, so constness isn't honored here.
-  *
-  * See TriangularView:solve() for the details.
-  */
-template<typename MatrixType, unsigned int Mode>
-template<int Side, typename OtherDerived>
-void TriangularView<MatrixType,Mode>::solveInPlace(const MatrixBase<OtherDerived>& _other) const
-{
-  OtherDerived& other = _other.const_cast_derived();
-  eigen_assert( cols() == rows() && ((Side==OnTheLeft && cols() == other.rows()) || (Side==OnTheRight && cols() == other.cols())) );
-  eigen_assert((!(Mode & ZeroDiag)) && bool(Mode & (Upper|Lower)));
-
-  enum { copy = internal::traits<OtherDerived>::Flags & RowMajorBit  && OtherDerived::IsVectorAtCompileTime };
-  typedef typename internal::conditional<copy,
-    typename internal::plain_matrix_type_column_major<OtherDerived>::type, OtherDerived&>::type OtherCopy;
-  OtherCopy otherCopy(other);
-
-  internal::triangular_solver_selector<MatrixType, typename internal::remove_reference<OtherCopy>::type,
-    Side, Mode>::run(nestedExpression(), otherCopy);
-
-  if (copy)
-    other = otherCopy;
-}
-
-/** \returns the product of the inverse of \c *this with \a other, \a *this being triangular.
-  *
-  * This function computes the inverse-matrix matrix product inverse(\c *this) * \a other if
-  * \a Side==OnTheLeft (the default), or the right-inverse-multiply  \a other * inverse(\c *this) if
-  * \a Side==OnTheRight.
-  *
-  * The matrix \c *this must be triangular and invertible (i.e., all the coefficients of the
-  * diagonal must be non zero). It works as a forward (resp. backward) substitution if \c *this
-  * is an upper (resp. lower) triangular matrix.
-  *
-  * Example: \include MatrixBase_marked.cpp
-  * Output: \verbinclude MatrixBase_marked.out
-  *
-  * This function returns an expression of the inverse-multiply and can works in-place if it is assigned
-  * to the same matrix or vector \a other.
-  *
-  * For users coming from BLAS, this function (and more specifically solveInPlace()) offer
-  * all the operations supported by the \c *TRSV and \c *TRSM BLAS routines.
-  *
-  * \sa TriangularView::solveInPlace()
-  */
-template<typename Derived, unsigned int Mode>
-template<int Side, typename Other>
-const internal::triangular_solve_retval<Side,TriangularView<Derived,Mode>,Other>
-TriangularView<Derived,Mode>::solve(const MatrixBase<Other>& other) const
-{
-  return internal::triangular_solve_retval<Side,TriangularView,Other>(*this, other.derived());
-}
-
-namespace internal {
-
-
-template<int Side, typename TriangularType, typename Rhs>
-struct traits<triangular_solve_retval<Side, TriangularType, Rhs> >
-{
-  typedef typename internal::plain_matrix_type_column_major<Rhs>::type ReturnType;
-};
-
-template<int Side, typename TriangularType, typename Rhs> struct triangular_solve_retval
- : public ReturnByValue<triangular_solve_retval<Side, TriangularType, Rhs> >
-{
-  typedef typename remove_all<typename Rhs::Nested>::type RhsNestedCleaned;
-  typedef ReturnByValue<triangular_solve_retval> Base;
-  typedef typename Base::Index Index;
-
-  triangular_solve_retval(const TriangularType& tri, const Rhs& rhs)
-    : m_triangularMatrix(tri), m_rhs(rhs)
-  {}
-
-  inline Index rows() const { return m_rhs.rows(); }
-  inline Index cols() const { return m_rhs.cols(); }
-
-  template<typename Dest> inline void evalTo(Dest& dst) const
-  {
-    if(!(is_same<RhsNestedCleaned,Dest>::value && extract_data(dst) == extract_data(m_rhs)))
-      dst = m_rhs;
-    m_triangularMatrix.template solveInPlace<Side>(dst);
-  }
-
-  protected:
-    const TriangularType& m_triangularMatrix;
-    typename Rhs::Nested m_rhs;
-};
-
-} // namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_SOLVETRIANGULAR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/StableNorm.h b/vendor/eigen-3.1.91/Eigen/src/Core/StableNorm.h
deleted file mode 100644
index f57bbb7..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/StableNorm.h
+++ /dev/null
@@ -1,190 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_STABLENORM_H
-#define EIGEN_STABLENORM_H
-
-namespace Eigen { 
-
-namespace internal {
-
-template<typename ExpressionType, typename Scalar>
-inline void stable_norm_kernel(const ExpressionType& bl, Scalar& ssq, Scalar& scale, Scalar& invScale)
-{
-  Scalar max = bl.cwiseAbs().maxCoeff();
-  if (max>scale)
-  {
-    ssq = ssq * abs2(scale/max);
-    scale = max;
-    invScale = Scalar(1)/scale;
-  }
-  // TODO if the max is much much smaller than the current scale,
-  // then we can neglect this sub vector
-  ssq += (bl*invScale).squaredNorm();
-}
-
-template<typename Derived>
-inline typename NumTraits<typename traits<Derived>::Scalar>::Real
-blueNorm_impl(const EigenBase<Derived>& _vec)
-{
-  typedef typename Derived::RealScalar RealScalar;  
-  typedef typename Derived::Index Index;
-  using std::pow;
-  using std::min;
-  using std::max;
-  using std::sqrt;
-  using std::abs;
-  const Derived& vec(_vec.derived());
-  static bool initialized = false;
-  static RealScalar b1, b2, s1m, s2m, overfl, rbig, relerr;
-  if(!initialized)
-  {
-    int ibeta, it, iemin, iemax, iexp;
-    RealScalar eps;
-    // This program calculates the machine-dependent constants
-    // bl, b2, slm, s2m, relerr overfl
-    // from the "basic" machine-dependent numbers
-    // nbig, ibeta, it, iemin, iemax, rbig.
-    // The following define the basic machine-dependent constants.
-    // For portability, the PORT subprograms "ilmaeh" and "rlmach"
-    // are used. For any specific computer, each of the assignment
-    // statements can be replaced
-    ibeta = std::numeric_limits<RealScalar>::radix;                 // base for floating-point numbers
-    it    = std::numeric_limits<RealScalar>::digits;                // number of base-beta digits in mantissa
-    iemin = std::numeric_limits<RealScalar>::min_exponent;          // minimum exponent
-    iemax = std::numeric_limits<RealScalar>::max_exponent;          // maximum exponent
-    rbig  = (std::numeric_limits<RealScalar>::max)();               // largest floating-point number
-
-    iexp  = -((1-iemin)/2);
-    b1    = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp)));    // lower boundary of midrange
-    iexp  = (iemax + 1 - it)/2;
-    b2    = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp)));    // upper boundary of midrange
-
-    iexp  = (2-iemin)/2;
-    s1m   = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp)));    // scaling factor for lower range
-    iexp  = - ((iemax+it)/2);
-    s2m   = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp)));    // scaling factor for upper range
-
-    overfl  = rbig*s2m;                                             // overflow boundary for abig
-    eps     = RealScalar(pow(double(ibeta), 1-it));
-    relerr  = sqrt(eps);                                            // tolerance for neglecting asml
-    initialized = true;
-  }
-  Index n = vec.size();
-  RealScalar ab2 = b2 / RealScalar(n);
-  RealScalar asml = RealScalar(0);
-  RealScalar amed = RealScalar(0);
-  RealScalar abig = RealScalar(0);
-  for(typename Derived::InnerIterator it(vec, 0); it; ++it)
-  {
-    RealScalar ax = abs(it.value());
-    if(ax > ab2)     abig += internal::abs2(ax*s2m);
-    else if(ax < b1) asml += internal::abs2(ax*s1m);
-    else             amed += internal::abs2(ax);
-  }
-  if(abig > RealScalar(0))
-  {
-    abig = sqrt(abig);
-    if(abig > overfl)
-    {
-      return rbig;
-    }
-    if(amed > RealScalar(0))
-    {
-      abig = abig/s2m;
-      amed = sqrt(amed);
-    }
-    else
-      return abig/s2m;
-  }
-  else if(asml > RealScalar(0))
-  {
-    if (amed > RealScalar(0))
-    {
-      abig = sqrt(amed);
-      amed = sqrt(asml) / s1m;
-    }
-    else
-      return sqrt(asml)/s1m;
-  }
-  else
-    return sqrt(amed);
-  asml = (min)(abig, amed);
-  abig = (max)(abig, amed);
-  if(asml <= abig*relerr)
-    return abig;
-  else
-    return abig * sqrt(RealScalar(1) + internal::abs2(asml/abig));
-}
-
-} // end namespace internal
-
-/** \returns the \em l2 norm of \c *this avoiding underflow and overflow.
-  * This version use a blockwise two passes algorithm:
-  *  1 - find the absolute largest coefficient \c s
-  *  2 - compute \f$ s \Vert \frac{*this}{s} \Vert \f$ in a standard way
-  *
-  * For architecture/scalar types supporting vectorization, this version
-  * is faster than blueNorm(). Otherwise the blueNorm() is much faster.
-  *
-  * \sa norm(), blueNorm(), hypotNorm()
-  */
-template<typename Derived>
-inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
-MatrixBase<Derived>::stableNorm() const
-{
-  using std::min;
-  using std::sqrt;
-  const Index blockSize = 4096;
-  RealScalar scale(0);
-  RealScalar invScale(1);
-  RealScalar ssq(0); // sum of square
-  enum {
-    Alignment = (int(Flags)&DirectAccessBit) || (int(Flags)&AlignedBit) ? 1 : 0
-  };
-  Index n = size();
-  Index bi = internal::first_aligned(derived());
-  if (bi>0)
-    internal::stable_norm_kernel(this->head(bi), ssq, scale, invScale);
-  for (; bi<n; bi+=blockSize)
-    internal::stable_norm_kernel(this->segment(bi,(min)(blockSize, n - bi)).template forceAlignedAccessIf<Alignment>(), ssq, scale, invScale);
-  return scale * sqrt(ssq);
-}
-
-/** \returns the \em l2 norm of \c *this using the Blue's algorithm.
-  * A Portable Fortran Program to Find the Euclidean Norm of a Vector,
-  * ACM TOMS, Vol 4, Issue 1, 1978.
-  *
-  * For architecture/scalar types without vectorization, this version
-  * is much faster than stableNorm(). Otherwise the stableNorm() is faster.
-  *
-  * \sa norm(), stableNorm(), hypotNorm()
-  */
-template<typename Derived>
-inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
-MatrixBase<Derived>::blueNorm() const
-{
-  return internal::blueNorm_impl(*this);
-}
-
-/** \returns the \em l2 norm of \c *this avoiding undeflow and overflow.
-  * This version use a concatenation of hypot() calls, and it is very slow.
-  *
-  * \sa norm(), stableNorm()
-  */
-template<typename Derived>
-inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
-MatrixBase<Derived>::hypotNorm() const
-{
-  return this->cwiseAbs().redux(internal::scalar_hypot_op<RealScalar>());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_STABLENORM_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Transpose.h b/vendor/eigen-3.1.91/Eigen/src/Core/Transpose.h
deleted file mode 100644
index 2bc828e..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/Transpose.h
+++ /dev/null
@@ -1,416 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_TRANSPOSE_H
-#define EIGEN_TRANSPOSE_H
-
-namespace Eigen { 
-
-/** \class Transpose
-  * \ingroup Core_Module
-  *
-  * \brief Expression of the transpose of a matrix
-  *
-  * \param MatrixType the type of the object of which we are taking the transpose
-  *
-  * This class represents an expression of the transpose of a matrix.
-  * It is the return type of MatrixBase::transpose() and MatrixBase::adjoint()
-  * and most of the time this is the only way it is used.
-  *
-  * \sa MatrixBase::transpose(), MatrixBase::adjoint()
-  */
-
-namespace internal {
-template<typename MatrixType>
-struct traits<Transpose<MatrixType> > : traits<MatrixType>
-{
-  typedef typename MatrixType::Scalar Scalar;
-  typedef typename nested<MatrixType>::type MatrixTypeNested;
-  typedef typename remove_reference<MatrixTypeNested>::type MatrixTypeNestedPlain;
-  typedef typename traits<MatrixType>::StorageKind StorageKind;
-  typedef typename traits<MatrixType>::XprKind XprKind;
-  enum {
-    RowsAtCompileTime = MatrixType::ColsAtCompileTime,
-    ColsAtCompileTime = MatrixType::RowsAtCompileTime,
-    MaxRowsAtCompileTime = MatrixType::MaxColsAtCompileTime,
-    MaxColsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-    FlagsLvalueBit = is_lvalue<MatrixType>::value ? LvalueBit : 0,
-    Flags0 = MatrixTypeNestedPlain::Flags & ~(LvalueBit | NestByRefBit),
-    Flags1 = Flags0 | FlagsLvalueBit,
-    Flags = Flags1 ^ RowMajorBit,
-    CoeffReadCost = MatrixTypeNestedPlain::CoeffReadCost,
-    InnerStrideAtCompileTime = inner_stride_at_compile_time<MatrixType>::ret,
-    OuterStrideAtCompileTime = outer_stride_at_compile_time<MatrixType>::ret
-  };
-};
-}
-
-template<typename MatrixType, typename StorageKind> class TransposeImpl;
-
-template<typename MatrixType> class Transpose
-  : public TransposeImpl<MatrixType,typename internal::traits<MatrixType>::StorageKind>
-{
-  public:
-
-    typedef typename TransposeImpl<MatrixType,typename internal::traits<MatrixType>::StorageKind>::Base Base;
-    EIGEN_GENERIC_PUBLIC_INTERFACE(Transpose)
-
-    inline Transpose(MatrixType& a_matrix) : m_matrix(a_matrix) {}
-
-    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Transpose)
-
-    inline Index rows() const { return m_matrix.cols(); }
-    inline Index cols() const { return m_matrix.rows(); }
-
-    /** \returns the nested expression */
-    const typename internal::remove_all<typename MatrixType::Nested>::type&
-    nestedExpression() const { return m_matrix; }
-
-    /** \returns the nested expression */
-    typename internal::remove_all<typename MatrixType::Nested>::type&
-    nestedExpression() { return m_matrix.const_cast_derived(); }
-
-  protected:
-    typename MatrixType::Nested m_matrix;
-};
-
-namespace internal {
-
-template<typename MatrixType, bool HasDirectAccess = has_direct_access<MatrixType>::ret>
-struct TransposeImpl_base
-{
-  typedef typename dense_xpr_base<Transpose<MatrixType> >::type type;
-};
-
-template<typename MatrixType>
-struct TransposeImpl_base<MatrixType, false>
-{
-  typedef typename dense_xpr_base<Transpose<MatrixType> >::type type;
-};
-
-} // end namespace internal
-
-template<typename MatrixType> class TransposeImpl<MatrixType,Dense>
-  : public internal::TransposeImpl_base<MatrixType>::type
-{
-  public:
-
-    typedef typename internal::TransposeImpl_base<MatrixType>::type Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(Transpose<MatrixType>)
-
-    inline Index innerStride() const { return derived().nestedExpression().innerStride(); }
-    inline Index outerStride() const { return derived().nestedExpression().outerStride(); }
-
-    typedef typename internal::conditional<
-                       internal::is_lvalue<MatrixType>::value,
-                       Scalar,
-                       const Scalar
-                     >::type ScalarWithConstIfNotLvalue;
-
-    inline ScalarWithConstIfNotLvalue* data() { return derived().nestedExpression().data(); }
-    inline const Scalar* data() const { return derived().nestedExpression().data(); }
-
-    inline ScalarWithConstIfNotLvalue& coeffRef(Index rowId, Index colId)
-    {
-      EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
-      return derived().nestedExpression().const_cast_derived().coeffRef(colId, rowId);
-    }
-
-    inline ScalarWithConstIfNotLvalue& coeffRef(Index index)
-    {
-      EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
-      return derived().nestedExpression().const_cast_derived().coeffRef(index);
-    }
-
-    inline const Scalar& coeffRef(Index rowId, Index colId) const
-    {
-      return derived().nestedExpression().coeffRef(colId, rowId);
-    }
-
-    inline const Scalar& coeffRef(Index index) const
-    {
-      return derived().nestedExpression().coeffRef(index);
-    }
-
-    inline CoeffReturnType coeff(Index rowId, Index colId) const
-    {
-      return derived().nestedExpression().coeff(colId, rowId);
-    }
-
-    inline CoeffReturnType coeff(Index index) const
-    {
-      return derived().nestedExpression().coeff(index);
-    }
-
-    template<int LoadMode>
-    inline const PacketScalar packet(Index rowId, Index colId) const
-    {
-      return derived().nestedExpression().template packet<LoadMode>(colId, rowId);
-    }
-
-    template<int LoadMode>
-    inline void writePacket(Index rowId, Index colId, const PacketScalar& x)
-    {
-      derived().nestedExpression().const_cast_derived().template writePacket<LoadMode>(colId, rowId, x);
-    }
-
-    template<int LoadMode>
-    inline const PacketScalar packet(Index index) const
-    {
-      return derived().nestedExpression().template packet<LoadMode>(index);
-    }
-
-    template<int LoadMode>
-    inline void writePacket(Index index, const PacketScalar& x)
-    {
-      derived().nestedExpression().const_cast_derived().template writePacket<LoadMode>(index, x);
-    }
-};
-
-/** \returns an expression of the transpose of *this.
-  *
-  * Example: \include MatrixBase_transpose.cpp
-  * Output: \verbinclude MatrixBase_transpose.out
-  *
-  * \warning If you want to replace a matrix by its own transpose, do \b NOT do this:
-  * \code
-  * m = m.transpose(); // bug!!! caused by aliasing effect
-  * \endcode
-  * Instead, use the transposeInPlace() method:
-  * \code
-  * m.transposeInPlace();
-  * \endcode
-  * which gives Eigen good opportunities for optimization, or alternatively you can also do:
-  * \code
-  * m = m.transpose().eval();
-  * \endcode
-  *
-  * \sa transposeInPlace(), adjoint() */
-template<typename Derived>
-inline Transpose<Derived>
-DenseBase<Derived>::transpose()
-{
-  return derived();
-}
-
-/** This is the const version of transpose().
-  *
-  * Make sure you read the warning for transpose() !
-  *
-  * \sa transposeInPlace(), adjoint() */
-template<typename Derived>
-inline const typename DenseBase<Derived>::ConstTransposeReturnType
-DenseBase<Derived>::transpose() const
-{
-  return ConstTransposeReturnType(derived());
-}
-
-/** \returns an expression of the adjoint (i.e. conjugate transpose) of *this.
-  *
-  * Example: \include MatrixBase_adjoint.cpp
-  * Output: \verbinclude MatrixBase_adjoint.out
-  *
-  * \warning If you want to replace a matrix by its own adjoint, do \b NOT do this:
-  * \code
-  * m = m.adjoint(); // bug!!! caused by aliasing effect
-  * \endcode
-  * Instead, use the adjointInPlace() method:
-  * \code
-  * m.adjointInPlace();
-  * \endcode
-  * which gives Eigen good opportunities for optimization, or alternatively you can also do:
-  * \code
-  * m = m.adjoint().eval();
-  * \endcode
-  *
-  * \sa adjointInPlace(), transpose(), conjugate(), class Transpose, class internal::scalar_conjugate_op */
-template<typename Derived>
-inline const typename MatrixBase<Derived>::AdjointReturnType
-MatrixBase<Derived>::adjoint() const
-{
-  return this->transpose(); // in the complex case, the .conjugate() is be implicit here
-                            // due to implicit conversion to return type
-}
-
-/***************************************************************************
-* "in place" transpose implementation
-***************************************************************************/
-
-namespace internal {
-
-template<typename MatrixType,
-  bool IsSquare = (MatrixType::RowsAtCompileTime == MatrixType::ColsAtCompileTime) && MatrixType::RowsAtCompileTime!=Dynamic>
-struct inplace_transpose_selector;
-
-template<typename MatrixType>
-struct inplace_transpose_selector<MatrixType,true> { // square matrix
-  static void run(MatrixType& m) {
-    m.template triangularView<StrictlyUpper>().swap(m.transpose());
-  }
-};
-
-template<typename MatrixType>
-struct inplace_transpose_selector<MatrixType,false> { // non square matrix
-  static void run(MatrixType& m) {
-    if (m.rows()==m.cols())
-      m.template triangularView<StrictlyUpper>().swap(m.transpose());
-    else
-      m = m.transpose().eval();
-  }
-};
-
-} // end namespace internal
-
-/** This is the "in place" version of transpose(): it replaces \c *this by its own transpose.
-  * Thus, doing
-  * \code
-  * m.transposeInPlace();
-  * \endcode
-  * has the same effect on m as doing
-  * \code
-  * m = m.transpose().eval();
-  * \endcode
-  * and is faster and also safer because in the latter line of code, forgetting the eval() results
-  * in a bug caused by \ref TopicAliasing "aliasing".
-  *
-  * Notice however that this method is only useful if you want to replace a matrix by its own transpose.
-  * If you just need the transpose of a matrix, use transpose().
-  *
-  * \note if the matrix is not square, then \c *this must be a resizable matrix.
-  *
-  * \sa transpose(), adjoint(), adjointInPlace() */
-template<typename Derived>
-inline void DenseBase<Derived>::transposeInPlace()
-{
-  eigen_assert((rows() == cols() || (RowsAtCompileTime == Dynamic && ColsAtCompileTime == Dynamic))
-               && "transposeInPlace() called on a non-square non-resizable matrix");
-  internal::inplace_transpose_selector<Derived>::run(derived());
-}
-
-/***************************************************************************
-* "in place" adjoint implementation
-***************************************************************************/
-
-/** This is the "in place" version of adjoint(): it replaces \c *this by its own transpose.
-  * Thus, doing
-  * \code
-  * m.adjointInPlace();
-  * \endcode
-  * has the same effect on m as doing
-  * \code
-  * m = m.adjoint().eval();
-  * \endcode
-  * and is faster and also safer because in the latter line of code, forgetting the eval() results
-  * in a bug caused by aliasing.
-  *
-  * Notice however that this method is only useful if you want to replace a matrix by its own adjoint.
-  * If you just need the adjoint of a matrix, use adjoint().
-  *
-  * \note if the matrix is not square, then \c *this must be a resizable matrix.
-  *
-  * \sa transpose(), adjoint(), transposeInPlace() */
-template<typename Derived>
-inline void MatrixBase<Derived>::adjointInPlace()
-{
-  derived() = adjoint().eval();
-}
-
-#ifndef EIGEN_NO_DEBUG
-
-// The following is to detect aliasing problems in most common cases.
-
-namespace internal {
-
-template<typename BinOp,typename NestedXpr,typename Rhs>
-struct blas_traits<SelfCwiseBinaryOp<BinOp,NestedXpr,Rhs> >
- : blas_traits<NestedXpr>
-{
-  typedef SelfCwiseBinaryOp<BinOp,NestedXpr,Rhs> XprType;
-  static inline const XprType extract(const XprType& x) { return x; }
-};
-
-template<bool DestIsTransposed, typename OtherDerived>
-struct check_transpose_aliasing_compile_time_selector
-{
-  enum { ret = bool(blas_traits<OtherDerived>::IsTransposed) != DestIsTransposed };
-};
-
-template<bool DestIsTransposed, typename BinOp, typename DerivedA, typename DerivedB>
-struct check_transpose_aliasing_compile_time_selector<DestIsTransposed,CwiseBinaryOp<BinOp,DerivedA,DerivedB> >
-{
-  enum { ret =    bool(blas_traits<DerivedA>::IsTransposed) != DestIsTransposed
-               || bool(blas_traits<DerivedB>::IsTransposed) != DestIsTransposed
-  };
-};
-
-template<typename Scalar, bool DestIsTransposed, typename OtherDerived>
-struct check_transpose_aliasing_run_time_selector
-{
-  static bool run(const Scalar* dest, const OtherDerived& src)
-  {
-    return (bool(blas_traits<OtherDerived>::IsTransposed) != DestIsTransposed) && (dest!=0 && dest==(const Scalar*)extract_data(src));
-  }
-};
-
-template<typename Scalar, bool DestIsTransposed, typename BinOp, typename DerivedA, typename DerivedB>
-struct check_transpose_aliasing_run_time_selector<Scalar,DestIsTransposed,CwiseBinaryOp<BinOp,DerivedA,DerivedB> >
-{
-  static bool run(const Scalar* dest, const CwiseBinaryOp<BinOp,DerivedA,DerivedB>& src)
-  {
-    return ((blas_traits<DerivedA>::IsTransposed != DestIsTransposed) && (dest!=0 && dest==(const Scalar*)extract_data(src.lhs())))
-        || ((blas_traits<DerivedB>::IsTransposed != DestIsTransposed) && (dest!=0 && dest==(const Scalar*)extract_data(src.rhs())));
-  }
-};
-
-// the following selector, checkTransposeAliasing_impl, based on MightHaveTransposeAliasing,
-// is because when the condition controlling the assert is known at compile time, ICC emits a warning.
-// This is actually a good warning: in expressions that don't have any transposing, the condition is
-// known at compile time to be false, and using that, we can avoid generating the code of the assert again
-// and again for all these expressions that don't need it.
-
-template<typename Derived, typename OtherDerived,
-         bool MightHaveTransposeAliasing
-                 = check_transpose_aliasing_compile_time_selector
-                     <blas_traits<Derived>::IsTransposed,OtherDerived>::ret
-        >
-struct checkTransposeAliasing_impl
-{
-    static void run(const Derived& dst, const OtherDerived& other)
-    {
-        eigen_assert((!check_transpose_aliasing_run_time_selector
-                      <typename Derived::Scalar,blas_traits<Derived>::IsTransposed,OtherDerived>
-                      ::run(extract_data(dst), other))
-          && "aliasing detected during tranposition, use transposeInPlace() "
-             "or evaluate the rhs into a temporary using .eval()");
-
-    }
-};
-
-template<typename Derived, typename OtherDerived>
-struct checkTransposeAliasing_impl<Derived, OtherDerived, false>
-{
-    static void run(const Derived&, const OtherDerived&)
-    {
-    }
-};
-
-} // end namespace internal
-
-template<typename Derived>
-template<typename OtherDerived>
-void DenseBase<Derived>::checkTransposeAliasing(const OtherDerived& other) const
-{
-    internal::checkTransposeAliasing_impl<Derived, OtherDerived>::run(derived(), other);
-}
-#endif
-
-} // end namespace Eigen
-
-#endif // EIGEN_TRANSPOSE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/TriangularMatrix.h b/vendor/eigen-3.1.91/Eigen/src/Core/TriangularMatrix.h
deleted file mode 100644
index fba0736..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/TriangularMatrix.h
+++ /dev/null
@@ -1,830 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_TRIANGULARMATRIX_H
-#define EIGEN_TRIANGULARMATRIX_H
-
-namespace Eigen { 
-
-namespace internal {
-  
-template<int Side, typename TriangularType, typename Rhs> struct triangular_solve_retval;
-  
-}
-
-/** \internal
-  *
-  * \class TriangularBase
-  * \ingroup Core_Module
-  *
-  * \brief Base class for triangular part in a matrix
-  */
-template<typename Derived> class TriangularBase : public EigenBase<Derived>
-{
-  public:
-
-    enum {
-      Mode = internal::traits<Derived>::Mode,
-      CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
-      RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
-      ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
-      MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime
-    };
-    typedef typename internal::traits<Derived>::Scalar Scalar;
-    typedef typename internal::traits<Derived>::StorageKind StorageKind;
-    typedef typename internal::traits<Derived>::Index Index;
-    typedef typename internal::traits<Derived>::DenseMatrixType DenseMatrixType;
-    typedef DenseMatrixType DenseType;
-
-    inline TriangularBase() { eigen_assert(!((Mode&UnitDiag) && (Mode&ZeroDiag))); }
-
-    inline Index rows() const { return derived().rows(); }
-    inline Index cols() const { return derived().cols(); }
-    inline Index outerStride() const { return derived().outerStride(); }
-    inline Index innerStride() const { return derived().innerStride(); }
-
-    inline Scalar coeff(Index row, Index col) const  { return derived().coeff(row,col); }
-    inline Scalar& coeffRef(Index row, Index col) { return derived().coeffRef(row,col); }
-
-    /** \see MatrixBase::copyCoeff(row,col)
-      */
-    template<typename Other>
-    EIGEN_STRONG_INLINE void copyCoeff(Index row, Index col, Other& other)
-    {
-      derived().coeffRef(row, col) = other.coeff(row, col);
-    }
-
-    inline Scalar operator()(Index row, Index col) const
-    {
-      check_coordinates(row, col);
-      return coeff(row,col);
-    }
-    inline Scalar& operator()(Index row, Index col)
-    {
-      check_coordinates(row, col);
-      return coeffRef(row,col);
-    }
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
-    inline Derived& derived() { return *static_cast<Derived*>(this); }
-    #endif // not EIGEN_PARSED_BY_DOXYGEN
-
-    template<typename DenseDerived>
-    void evalTo(MatrixBase<DenseDerived> &other) const;
-    template<typename DenseDerived>
-    void evalToLazy(MatrixBase<DenseDerived> &other) const;
-
-    DenseMatrixType toDenseMatrix() const
-    {
-      DenseMatrixType res(rows(), cols());
-      evalToLazy(res);
-      return res;
-    }
-
-  protected:
-
-    void check_coordinates(Index row, Index col) const
-    {
-      EIGEN_ONLY_USED_FOR_DEBUG(row);
-      EIGEN_ONLY_USED_FOR_DEBUG(col);
-      eigen_assert(col>=0 && col<cols() && row>=0 && row<rows());
-      const int mode = int(Mode) & ~SelfAdjoint;
-      EIGEN_ONLY_USED_FOR_DEBUG(mode);
-      eigen_assert((mode==Upper && col>=row)
-                || (mode==Lower && col<=row)
-                || ((mode==StrictlyUpper || mode==UnitUpper) && col>row)
-                || ((mode==StrictlyLower || mode==UnitLower) && col<row));
-    }
-
-    #ifdef EIGEN_INTERNAL_DEBUGGING
-    void check_coordinates_internal(Index row, Index col) const
-    {
-      check_coordinates(row, col);
-    }
-    #else
-    void check_coordinates_internal(Index , Index ) const {}
-    #endif
-
-};
-
-/** \class TriangularView
-  * \ingroup Core_Module
-  *
-  * \brief Base class for triangular part in a matrix
-  *
-  * \param MatrixType the type of the object in which we are taking the triangular part
-  * \param Mode the kind of triangular matrix expression to construct. Can be #Upper,
-  *             #Lower, #UnitUpper, #UnitLower, #StrictlyUpper, or #StrictlyLower.
-  *             This is in fact a bit field; it must have either #Upper or #Lower, 
-  *             and additionnaly it may have #UnitDiag or #ZeroDiag or neither.
-  *
-  * This class represents a triangular part of a matrix, not necessarily square. Strictly speaking, for rectangular
-  * matrices one should speak of "trapezoid" parts. This class is the return type
-  * of MatrixBase::triangularView() and most of the time this is the only way it is used.
-  *
-  * \sa MatrixBase::triangularView()
-  */
-namespace internal {
-template<typename MatrixType, unsigned int _Mode>
-struct traits<TriangularView<MatrixType, _Mode> > : traits<MatrixType>
-{
-  typedef typename nested<MatrixType>::type MatrixTypeNested;
-  typedef typename remove_reference<MatrixTypeNested>::type MatrixTypeNestedNonRef;
-  typedef typename remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
-  typedef MatrixType ExpressionType;
-  typedef typename MatrixType::PlainObject DenseMatrixType;
-  enum {
-    Mode = _Mode,
-    Flags = (MatrixTypeNestedCleaned::Flags & (HereditaryBits) & (~(PacketAccessBit | DirectAccessBit | LinearAccessBit))) | Mode,
-    CoeffReadCost = MatrixTypeNestedCleaned::CoeffReadCost
-  };
-};
-}
-
-template<int Mode, bool LhsIsTriangular,
-         typename Lhs, bool LhsIsVector,
-         typename Rhs, bool RhsIsVector>
-struct TriangularProduct;
-
-template<typename _MatrixType, unsigned int _Mode> class TriangularView
-  : public TriangularBase<TriangularView<_MatrixType, _Mode> >
-{
-  public:
-
-    typedef TriangularBase<TriangularView> Base;
-    typedef typename internal::traits<TriangularView>::Scalar Scalar;
-
-    typedef _MatrixType MatrixType;
-    typedef typename internal::traits<TriangularView>::DenseMatrixType DenseMatrixType;
-    typedef DenseMatrixType PlainObject;
-
-  protected:
-    typedef typename internal::traits<TriangularView>::MatrixTypeNested MatrixTypeNested;
-    typedef typename internal::traits<TriangularView>::MatrixTypeNestedNonRef MatrixTypeNestedNonRef;
-    typedef typename internal::traits<TriangularView>::MatrixTypeNestedCleaned MatrixTypeNestedCleaned;
-
-    typedef typename internal::remove_all<typename MatrixType::ConjugateReturnType>::type MatrixConjugateReturnType;
-    
-  public:
-    using Base::evalToLazy;
-  
-
-    typedef typename internal::traits<TriangularView>::StorageKind StorageKind;
-    typedef typename internal::traits<TriangularView>::Index Index;
-
-    enum {
-      Mode = _Mode,
-      TransposeMode = (Mode & Upper ? Lower : 0)
-                    | (Mode & Lower ? Upper : 0)
-                    | (Mode & (UnitDiag))
-                    | (Mode & (ZeroDiag))
-    };
-
-    inline TriangularView(const MatrixType& matrix) : m_matrix(matrix)
-    {}
-
-    inline Index rows() const { return m_matrix.rows(); }
-    inline Index cols() const { return m_matrix.cols(); }
-    inline Index outerStride() const { return m_matrix.outerStride(); }
-    inline Index innerStride() const { return m_matrix.innerStride(); }
-
-    /** \sa MatrixBase::operator+=() */
-    template<typename Other> TriangularView&  operator+=(const DenseBase<Other>& other) { return *this = m_matrix + other.derived(); }
-    /** \sa MatrixBase::operator-=() */
-    template<typename Other> TriangularView&  operator-=(const DenseBase<Other>& other) { return *this = m_matrix - other.derived(); }
-    /** \sa MatrixBase::operator*=() */
-    TriangularView&  operator*=(const typename internal::traits<MatrixType>::Scalar& other) { return *this = m_matrix * other; }
-    /** \sa MatrixBase::operator/=() */
-    TriangularView&  operator/=(const typename internal::traits<MatrixType>::Scalar& other) { return *this = m_matrix / other; }
-
-    /** \sa MatrixBase::fill() */
-    void fill(const Scalar& value) { setConstant(value); }
-    /** \sa MatrixBase::setConstant() */
-    TriangularView& setConstant(const Scalar& value)
-    { return *this = MatrixType::Constant(rows(), cols(), value); }
-    /** \sa MatrixBase::setZero() */
-    TriangularView& setZero() { return setConstant(Scalar(0)); }
-    /** \sa MatrixBase::setOnes() */
-    TriangularView& setOnes() { return setConstant(Scalar(1)); }
-
-    /** \sa MatrixBase::coeff()
-      * \warning the coordinates must fit into the referenced triangular part
-      */
-    inline Scalar coeff(Index row, Index col) const
-    {
-      Base::check_coordinates_internal(row, col);
-      return m_matrix.coeff(row, col);
-    }
-
-    /** \sa MatrixBase::coeffRef()
-      * \warning the coordinates must fit into the referenced triangular part
-      */
-    inline Scalar& coeffRef(Index row, Index col)
-    {
-      Base::check_coordinates_internal(row, col);
-      return m_matrix.const_cast_derived().coeffRef(row, col);
-    }
-
-    const MatrixTypeNestedCleaned& nestedExpression() const { return m_matrix; }
-    MatrixTypeNestedCleaned& nestedExpression() { return *const_cast<MatrixTypeNestedCleaned*>(&m_matrix); }
-
-    /** Assigns a triangular matrix to a triangular part of a dense matrix */
-    template<typename OtherDerived>
-    TriangularView& operator=(const TriangularBase<OtherDerived>& other);
-
-    template<typename OtherDerived>
-    TriangularView& operator=(const MatrixBase<OtherDerived>& other);
-
-    TriangularView& operator=(const TriangularView& other)
-    { return *this = other.nestedExpression(); }
-
-    template<typename OtherDerived>
-    void lazyAssign(const TriangularBase<OtherDerived>& other);
-
-    template<typename OtherDerived>
-    void lazyAssign(const MatrixBase<OtherDerived>& other);
-
-    /** \sa MatrixBase::conjugate() */
-    inline TriangularView<MatrixConjugateReturnType,Mode> conjugate()
-    { return m_matrix.conjugate(); }
-    /** \sa MatrixBase::conjugate() const */
-    inline const TriangularView<MatrixConjugateReturnType,Mode> conjugate() const
-    { return m_matrix.conjugate(); }
-
-    /** \sa MatrixBase::adjoint() const */
-    inline const TriangularView<const typename MatrixType::AdjointReturnType,TransposeMode> adjoint() const
-    { return m_matrix.adjoint(); }
-
-    /** \sa MatrixBase::transpose() */
-    inline TriangularView<Transpose<MatrixType>,TransposeMode> transpose()
-    {
-      EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
-      return m_matrix.const_cast_derived().transpose();
-    }
-    /** \sa MatrixBase::transpose() const */
-    inline const TriangularView<Transpose<MatrixType>,TransposeMode> transpose() const
-    {
-      return m_matrix.transpose();
-    }
-
-    /** Efficient triangular matrix times vector/matrix product */
-    template<typename OtherDerived>
-    TriangularProduct<Mode,true,MatrixType,false,OtherDerived, OtherDerived::IsVectorAtCompileTime>
-    operator*(const MatrixBase<OtherDerived>& rhs) const
-    {
-      return TriangularProduct
-              <Mode,true,MatrixType,false,OtherDerived,OtherDerived::IsVectorAtCompileTime>
-              (m_matrix, rhs.derived());
-    }
-
-    /** Efficient vector/matrix times triangular matrix product */
-    template<typename OtherDerived> friend
-    TriangularProduct<Mode,false,OtherDerived,OtherDerived::IsVectorAtCompileTime,MatrixType,false>
-    operator*(const MatrixBase<OtherDerived>& lhs, const TriangularView& rhs)
-    {
-      return TriangularProduct
-              <Mode,false,OtherDerived,OtherDerived::IsVectorAtCompileTime,MatrixType,false>
-              (lhs.derived(),rhs.m_matrix);
-    }
-
-    #ifdef EIGEN2_SUPPORT
-    template<typename OtherDerived>
-    struct eigen2_product_return_type
-    {
-      typedef typename TriangularView<MatrixType,Mode>::DenseMatrixType DenseMatrixType;
-      typedef typename OtherDerived::PlainObject::DenseType OtherPlainObject;
-      typedef typename ProductReturnType<DenseMatrixType, OtherPlainObject>::Type ProdRetType;
-      typedef typename ProdRetType::PlainObject type;
-    };
-    template<typename OtherDerived>
-    const typename eigen2_product_return_type<OtherDerived>::type
-    operator*(const EigenBase<OtherDerived>& rhs) const
-    {
-      typename OtherDerived::PlainObject::DenseType rhsPlainObject;
-      rhs.evalTo(rhsPlainObject);
-      return this->toDenseMatrix() * rhsPlainObject;
-    }
-    template<typename OtherMatrixType>
-    bool isApprox(const TriangularView<OtherMatrixType, Mode>& other, typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision()) const
-    {
-      return this->toDenseMatrix().isApprox(other.toDenseMatrix(), precision);
-    }
-    template<typename OtherDerived>
-    bool isApprox(const MatrixBase<OtherDerived>& other, typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision()) const
-    {
-      return this->toDenseMatrix().isApprox(other, precision);
-    }
-    #endif // EIGEN2_SUPPORT
-
-    template<int Side, typename Other>
-    inline const internal::triangular_solve_retval<Side,TriangularView, Other>
-    solve(const MatrixBase<Other>& other) const;
-
-    template<int Side, typename OtherDerived>
-    void solveInPlace(const MatrixBase<OtherDerived>& other) const;
-
-    template<typename Other>
-    inline const internal::triangular_solve_retval<OnTheLeft,TriangularView, Other> 
-    solve(const MatrixBase<Other>& other) const
-    { return solve<OnTheLeft>(other); }
-
-    template<typename OtherDerived>
-    void solveInPlace(const MatrixBase<OtherDerived>& other) const
-    { return solveInPlace<OnTheLeft>(other); }
-
-    const SelfAdjointView<MatrixTypeNestedNonRef,Mode> selfadjointView() const
-    {
-      EIGEN_STATIC_ASSERT((Mode&UnitDiag)==0,PROGRAMMING_ERROR);
-      return SelfAdjointView<MatrixTypeNestedNonRef,Mode>(m_matrix);
-    }
-    SelfAdjointView<MatrixTypeNestedNonRef,Mode> selfadjointView()
-    {
-      EIGEN_STATIC_ASSERT((Mode&UnitDiag)==0,PROGRAMMING_ERROR);
-      return SelfAdjointView<MatrixTypeNestedNonRef,Mode>(m_matrix);
-    }
-
-    template<typename OtherDerived>
-    void swap(TriangularBase<OtherDerived> const & other)
-    {
-      TriangularView<SwapWrapper<MatrixType>,Mode>(const_cast<MatrixType&>(m_matrix)).lazyAssign(other.derived());
-    }
-
-    template<typename OtherDerived>
-    void swap(MatrixBase<OtherDerived> const & other)
-    {
-      SwapWrapper<MatrixType> swaper(const_cast<MatrixType&>(m_matrix));
-      TriangularView<SwapWrapper<MatrixType>,Mode>(swaper).lazyAssign(other.derived());
-    }
-
-    Scalar determinant() const
-    {
-      if (Mode & UnitDiag)
-        return 1;
-      else if (Mode & ZeroDiag)
-        return 0;
-      else
-        return m_matrix.diagonal().prod();
-    }
-    
-    // TODO simplify the following:
-    template<typename ProductDerived, typename Lhs, typename Rhs>
-    EIGEN_STRONG_INLINE TriangularView& operator=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
-    {
-      setZero();
-      return assignProduct(other,1);
-    }
-    
-    template<typename ProductDerived, typename Lhs, typename Rhs>
-    EIGEN_STRONG_INLINE TriangularView& operator+=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
-    {
-      return assignProduct(other,1);
-    }
-    
-    template<typename ProductDerived, typename Lhs, typename Rhs>
-    EIGEN_STRONG_INLINE TriangularView& operator-=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
-    {
-      return assignProduct(other,-1);
-    }
-    
-    
-    template<typename ProductDerived>
-    EIGEN_STRONG_INLINE TriangularView& operator=(const ScaledProduct<ProductDerived>& other)
-    {
-      setZero();
-      return assignProduct(other,other.alpha());
-    }
-    
-    template<typename ProductDerived>
-    EIGEN_STRONG_INLINE TriangularView& operator+=(const ScaledProduct<ProductDerived>& other)
-    {
-      return assignProduct(other,other.alpha());
-    }
-    
-    template<typename ProductDerived>
-    EIGEN_STRONG_INLINE TriangularView& operator-=(const ScaledProduct<ProductDerived>& other)
-    {
-      return assignProduct(other,-other.alpha());
-    }
-    
-  protected:
-    
-    template<typename ProductDerived, typename Lhs, typename Rhs>
-    EIGEN_STRONG_INLINE TriangularView& assignProduct(const ProductBase<ProductDerived, Lhs,Rhs>& prod, const Scalar& alpha);
-
-    MatrixTypeNested m_matrix;
-};
-
-/***************************************************************************
-* Implementation of triangular evaluation/assignment
-***************************************************************************/
-
-namespace internal {
-
-template<typename Derived1, typename Derived2, unsigned int Mode, int UnrollCount, bool ClearOpposite>
-struct triangular_assignment_selector
-{
-  enum {
-    col = (UnrollCount-1) / Derived1::RowsAtCompileTime,
-    row = (UnrollCount-1) % Derived1::RowsAtCompileTime
-  };
-  
-  typedef typename Derived1::Scalar Scalar;
-
-  static inline void run(Derived1 &dst, const Derived2 &src)
-  {
-    triangular_assignment_selector<Derived1, Derived2, Mode, UnrollCount-1, ClearOpposite>::run(dst, src);
-
-    eigen_assert( Mode == Upper || Mode == Lower
-            || Mode == StrictlyUpper || Mode == StrictlyLower
-            || Mode == UnitUpper || Mode == UnitLower);
-    if((Mode == Upper && row <= col)
-    || (Mode == Lower && row >= col)
-    || (Mode == StrictlyUpper && row < col)
-    || (Mode == StrictlyLower && row > col)
-    || (Mode == UnitUpper && row < col)
-    || (Mode == UnitLower && row > col))
-      dst.copyCoeff(row, col, src);
-    else if(ClearOpposite)
-    {
-      if (Mode&UnitDiag && row==col)
-        dst.coeffRef(row, col) = Scalar(1);
-      else
-        dst.coeffRef(row, col) = Scalar(0);
-    }
-  }
-};
-
-// prevent buggy user code from causing an infinite recursion
-template<typename Derived1, typename Derived2, unsigned int Mode, bool ClearOpposite>
-struct triangular_assignment_selector<Derived1, Derived2, Mode, 0, ClearOpposite>
-{
-  static inline void run(Derived1 &, const Derived2 &) {}
-};
-
-template<typename Derived1, typename Derived2, bool ClearOpposite>
-struct triangular_assignment_selector<Derived1, Derived2, Upper, Dynamic, ClearOpposite>
-{
-  typedef typename Derived1::Index Index;
-  typedef typename Derived1::Scalar Scalar;
-  static inline void run(Derived1 &dst, const Derived2 &src)
-  {
-    for(Index j = 0; j < dst.cols(); ++j)
-    {
-      Index maxi = (std::min)(j, dst.rows()-1);
-      for(Index i = 0; i <= maxi; ++i)
-        dst.copyCoeff(i, j, src);
-      if (ClearOpposite)
-        for(Index i = maxi+1; i < dst.rows(); ++i)
-          dst.coeffRef(i, j) = Scalar(0);
-    }
-  }
-};
-
-template<typename Derived1, typename Derived2, bool ClearOpposite>
-struct triangular_assignment_selector<Derived1, Derived2, Lower, Dynamic, ClearOpposite>
-{
-  typedef typename Derived1::Index Index;
-  static inline void run(Derived1 &dst, const Derived2 &src)
-  {
-    for(Index j = 0; j < dst.cols(); ++j)
-    {
-      for(Index i = j; i < dst.rows(); ++i)
-        dst.copyCoeff(i, j, src);
-      Index maxi = (std::min)(j, dst.rows());
-      if (ClearOpposite)
-        for(Index i = 0; i < maxi; ++i)
-          dst.coeffRef(i, j) = static_cast<typename Derived1::Scalar>(0);
-    }
-  }
-};
-
-template<typename Derived1, typename Derived2, bool ClearOpposite>
-struct triangular_assignment_selector<Derived1, Derived2, StrictlyUpper, Dynamic, ClearOpposite>
-{
-  typedef typename Derived1::Index Index;
-  typedef typename Derived1::Scalar Scalar;
-  static inline void run(Derived1 &dst, const Derived2 &src)
-  {
-    for(Index j = 0; j < dst.cols(); ++j)
-    {
-      Index maxi = (std::min)(j, dst.rows());
-      for(Index i = 0; i < maxi; ++i)
-        dst.copyCoeff(i, j, src);
-      if (ClearOpposite)
-        for(Index i = maxi; i < dst.rows(); ++i)
-          dst.coeffRef(i, j) = Scalar(0);
-    }
-  }
-};
-
-template<typename Derived1, typename Derived2, bool ClearOpposite>
-struct triangular_assignment_selector<Derived1, Derived2, StrictlyLower, Dynamic, ClearOpposite>
-{
-  typedef typename Derived1::Index Index;
-  static inline void run(Derived1 &dst, const Derived2 &src)
-  {
-    for(Index j = 0; j < dst.cols(); ++j)
-    {
-      for(Index i = j+1; i < dst.rows(); ++i)
-        dst.copyCoeff(i, j, src);
-      Index maxi = (std::min)(j, dst.rows()-1);
-      if (ClearOpposite)
-        for(Index i = 0; i <= maxi; ++i)
-          dst.coeffRef(i, j) = static_cast<typename Derived1::Scalar>(0);
-    }
-  }
-};
-
-template<typename Derived1, typename Derived2, bool ClearOpposite>
-struct triangular_assignment_selector<Derived1, Derived2, UnitUpper, Dynamic, ClearOpposite>
-{
-  typedef typename Derived1::Index Index;
-  static inline void run(Derived1 &dst, const Derived2 &src)
-  {
-    for(Index j = 0; j < dst.cols(); ++j)
-    {
-      Index maxi = (std::min)(j, dst.rows());
-      for(Index i = 0; i < maxi; ++i)
-        dst.copyCoeff(i, j, src);
-      if (ClearOpposite)
-      {
-        for(Index i = maxi+1; i < dst.rows(); ++i)
-          dst.coeffRef(i, j) = 0;
-      }
-    }
-    dst.diagonal().setOnes();
-  }
-};
-template<typename Derived1, typename Derived2, bool ClearOpposite>
-struct triangular_assignment_selector<Derived1, Derived2, UnitLower, Dynamic, ClearOpposite>
-{
-  typedef typename Derived1::Index Index;
-  static inline void run(Derived1 &dst, const Derived2 &src)
-  {
-    for(Index j = 0; j < dst.cols(); ++j)
-    {
-      Index maxi = (std::min)(j, dst.rows());
-      for(Index i = maxi+1; i < dst.rows(); ++i)
-        dst.copyCoeff(i, j, src);
-      if (ClearOpposite)
-      {
-        for(Index i = 0; i < maxi; ++i)
-          dst.coeffRef(i, j) = 0;
-      }
-    }
-    dst.diagonal().setOnes();
-  }
-};
-
-} // end namespace internal
-
-// FIXME should we keep that possibility
-template<typename MatrixType, unsigned int Mode>
-template<typename OtherDerived>
-inline TriangularView<MatrixType, Mode>&
-TriangularView<MatrixType, Mode>::operator=(const MatrixBase<OtherDerived>& other)
-{
-  if(OtherDerived::Flags & EvalBeforeAssigningBit)
-  {
-    typename internal::plain_matrix_type<OtherDerived>::type other_evaluated(other.rows(), other.cols());
-    other_evaluated.template triangularView<Mode>().lazyAssign(other.derived());
-    lazyAssign(other_evaluated);
-  }
-  else
-    lazyAssign(other.derived());
-  return *this;
-}
-
-// FIXME should we keep that possibility
-template<typename MatrixType, unsigned int Mode>
-template<typename OtherDerived>
-void TriangularView<MatrixType, Mode>::lazyAssign(const MatrixBase<OtherDerived>& other)
-{
-  enum {
-    unroll = MatrixType::SizeAtCompileTime != Dynamic
-          && internal::traits<OtherDerived>::CoeffReadCost != Dynamic
-          && MatrixType::SizeAtCompileTime*internal::traits<OtherDerived>::CoeffReadCost/2 <= EIGEN_UNROLLING_LIMIT
-  };
-  eigen_assert(m_matrix.rows() == other.rows() && m_matrix.cols() == other.cols());
-
-  internal::triangular_assignment_selector
-    <MatrixType, OtherDerived, int(Mode),
-    unroll ? int(MatrixType::SizeAtCompileTime) : Dynamic,
-    false // do not change the opposite triangular part
-    >::run(m_matrix.const_cast_derived(), other.derived());
-}
-
-
-
-template<typename MatrixType, unsigned int Mode>
-template<typename OtherDerived>
-inline TriangularView<MatrixType, Mode>&
-TriangularView<MatrixType, Mode>::operator=(const TriangularBase<OtherDerived>& other)
-{
-  eigen_assert(Mode == int(OtherDerived::Mode));
-  if(internal::traits<OtherDerived>::Flags & EvalBeforeAssigningBit)
-  {
-    typename OtherDerived::DenseMatrixType other_evaluated(other.rows(), other.cols());
-    other_evaluated.template triangularView<Mode>().lazyAssign(other.derived().nestedExpression());
-    lazyAssign(other_evaluated);
-  }
-  else
-    lazyAssign(other.derived().nestedExpression());
-  return *this;
-}
-
-template<typename MatrixType, unsigned int Mode>
-template<typename OtherDerived>
-void TriangularView<MatrixType, Mode>::lazyAssign(const TriangularBase<OtherDerived>& other)
-{
-  enum {
-    unroll = MatrixType::SizeAtCompileTime != Dynamic
-                   && internal::traits<OtherDerived>::CoeffReadCost != Dynamic
-                   && MatrixType::SizeAtCompileTime * internal::traits<OtherDerived>::CoeffReadCost / 2
-                        <= EIGEN_UNROLLING_LIMIT
-  };
-  eigen_assert(m_matrix.rows() == other.rows() && m_matrix.cols() == other.cols());
-
-  internal::triangular_assignment_selector
-    <MatrixType, OtherDerived, int(Mode),
-    unroll ? int(MatrixType::SizeAtCompileTime) : Dynamic,
-    false // preserve the opposite triangular part
-    >::run(m_matrix.const_cast_derived(), other.derived().nestedExpression());
-}
-
-/***************************************************************************
-* Implementation of TriangularBase methods
-***************************************************************************/
-
-/** Assigns a triangular or selfadjoint matrix to a dense matrix.
-  * If the matrix is triangular, the opposite part is set to zero. */
-template<typename Derived>
-template<typename DenseDerived>
-void TriangularBase<Derived>::evalTo(MatrixBase<DenseDerived> &other) const
-{
-  if(internal::traits<Derived>::Flags & EvalBeforeAssigningBit)
-  {
-    typename internal::plain_matrix_type<Derived>::type other_evaluated(rows(), cols());
-    evalToLazy(other_evaluated);
-    other.derived().swap(other_evaluated);
-  }
-  else
-    evalToLazy(other.derived());
-}
-
-/** Assigns a triangular or selfadjoint matrix to a dense matrix.
-  * If the matrix is triangular, the opposite part is set to zero. */
-template<typename Derived>
-template<typename DenseDerived>
-void TriangularBase<Derived>::evalToLazy(MatrixBase<DenseDerived> &other) const
-{
-  enum {
-    unroll = DenseDerived::SizeAtCompileTime != Dynamic
-                   && internal::traits<Derived>::CoeffReadCost != Dynamic
-                   && DenseDerived::SizeAtCompileTime * internal::traits<Derived>::CoeffReadCost / 2
-                        <= EIGEN_UNROLLING_LIMIT
-  };
-  other.derived().resize(this->rows(), this->cols());
-
-  internal::triangular_assignment_selector
-    <DenseDerived, typename internal::traits<Derived>::MatrixTypeNestedCleaned, Derived::Mode,
-    unroll ? int(DenseDerived::SizeAtCompileTime) : Dynamic,
-    true // clear the opposite triangular part
-    >::run(other.derived(), derived().nestedExpression());
-}
-
-/***************************************************************************
-* Implementation of TriangularView methods
-***************************************************************************/
-
-/***************************************************************************
-* Implementation of MatrixBase methods
-***************************************************************************/
-
-#ifdef EIGEN2_SUPPORT
-
-// implementation of part<>(), including the SelfAdjoint case.
-
-namespace internal {
-template<typename MatrixType, unsigned int Mode>
-struct eigen2_part_return_type
-{
-  typedef TriangularView<MatrixType, Mode> type;
-};
-
-template<typename MatrixType>
-struct eigen2_part_return_type<MatrixType, SelfAdjoint>
-{
-  typedef SelfAdjointView<MatrixType, Upper> type;
-};
-}
-
-/** \deprecated use MatrixBase::triangularView() */
-template<typename Derived>
-template<unsigned int Mode>
-const typename internal::eigen2_part_return_type<Derived, Mode>::type MatrixBase<Derived>::part() const
-{
-  return derived();
-}
-
-/** \deprecated use MatrixBase::triangularView() */
-template<typename Derived>
-template<unsigned int Mode>
-typename internal::eigen2_part_return_type<Derived, Mode>::type MatrixBase<Derived>::part()
-{
-  return derived();
-}
-#endif
-
-/**
-  * \returns an expression of a triangular view extracted from the current matrix
-  *
-  * The parameter \a Mode can have the following values: \c #Upper, \c #StrictlyUpper, \c #UnitUpper,
-  * \c #Lower, \c #StrictlyLower, \c #UnitLower.
-  *
-  * Example: \include MatrixBase_extract.cpp
-  * Output: \verbinclude MatrixBase_extract.out
-  *
-  * \sa class TriangularView
-  */
-template<typename Derived>
-template<unsigned int Mode>
-typename MatrixBase<Derived>::template TriangularViewReturnType<Mode>::Type
-MatrixBase<Derived>::triangularView()
-{
-  return derived();
-}
-
-/** This is the const version of MatrixBase::triangularView() */
-template<typename Derived>
-template<unsigned int Mode>
-typename MatrixBase<Derived>::template ConstTriangularViewReturnType<Mode>::Type
-MatrixBase<Derived>::triangularView() const
-{
-  return derived();
-}
-
-/** \returns true if *this is approximately equal to an upper triangular matrix,
-  *          within the precision given by \a prec.
-  *
-  * \sa isLowerTriangular()
-  */
-template<typename Derived>
-bool MatrixBase<Derived>::isUpperTriangular(const RealScalar& prec) const
-{
-  using std::abs;
-  RealScalar maxAbsOnUpperPart = static_cast<RealScalar>(-1);
-  for(Index j = 0; j < cols(); ++j)
-  {
-    Index maxi = (std::min)(j, rows()-1);
-    for(Index i = 0; i <= maxi; ++i)
-    {
-      RealScalar absValue = abs(coeff(i,j));
-      if(absValue > maxAbsOnUpperPart) maxAbsOnUpperPart = absValue;
-    }
-  }
-  RealScalar threshold = maxAbsOnUpperPart * prec;
-  for(Index j = 0; j < cols(); ++j)
-    for(Index i = j+1; i < rows(); ++i)
-      if(abs(coeff(i, j)) > threshold) return false;
-  return true;
-}
-
-/** \returns true if *this is approximately equal to a lower triangular matrix,
-  *          within the precision given by \a prec.
-  *
-  * \sa isUpperTriangular()
-  */
-template<typename Derived>
-bool MatrixBase<Derived>::isLowerTriangular(const RealScalar& prec) const
-{
-  using std::abs;
-  RealScalar maxAbsOnLowerPart = static_cast<RealScalar>(-1);
-  for(Index j = 0; j < cols(); ++j)
-    for(Index i = j; i < rows(); ++i)
-    {
-      RealScalar absValue = abs(coeff(i,j));
-      if(absValue > maxAbsOnLowerPart) maxAbsOnLowerPart = absValue;
-    }
-  RealScalar threshold = maxAbsOnLowerPart * prec;
-  for(Index j = 1; j < cols(); ++j)
-  {
-    Index maxi = (std::min)(j, rows()-1);
-    for(Index i = 0; i < maxi; ++i)
-      if(abs(coeff(i, j)) > threshold) return false;
-  }
-  return true;
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_TRIANGULARMATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/VectorwiseOp.h b/vendor/eigen-3.1.91/Eigen/src/Core/VectorwiseOp.h
deleted file mode 100644
index 5115648..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/VectorwiseOp.h
+++ /dev/null
@@ -1,641 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_PARTIAL_REDUX_H
-#define EIGEN_PARTIAL_REDUX_H
-
-namespace Eigen { 
-
-/** \class PartialReduxExpr
-  * \ingroup Core_Module
-  *
-  * \brief Generic expression of a partially reduxed matrix
-  *
-  * \tparam MatrixType the type of the matrix we are applying the redux operation
-  * \tparam MemberOp type of the member functor
-  * \tparam Direction indicates the direction of the redux (#Vertical or #Horizontal)
-  *
-  * This class represents an expression of a partial redux operator of a matrix.
-  * It is the return type of some VectorwiseOp functions,
-  * and most of the time this is the only way it is used.
-  *
-  * \sa class VectorwiseOp
-  */
-
-template< typename MatrixType, typename MemberOp, int Direction>
-class PartialReduxExpr;
-
-namespace internal {
-template<typename MatrixType, typename MemberOp, int Direction>
-struct traits<PartialReduxExpr<MatrixType, MemberOp, Direction> >
- : traits<MatrixType>
-{
-  typedef typename MemberOp::result_type Scalar;
-  typedef typename traits<MatrixType>::StorageKind StorageKind;
-  typedef typename traits<MatrixType>::XprKind XprKind;
-  typedef typename MatrixType::Scalar InputScalar;
-  typedef typename nested<MatrixType>::type MatrixTypeNested;
-  typedef typename remove_all<MatrixTypeNested>::type _MatrixTypeNested;
-  enum {
-    RowsAtCompileTime = Direction==Vertical   ? 1 : MatrixType::RowsAtCompileTime,
-    ColsAtCompileTime = Direction==Horizontal ? 1 : MatrixType::ColsAtCompileTime,
-    MaxRowsAtCompileTime = Direction==Vertical   ? 1 : MatrixType::MaxRowsAtCompileTime,
-    MaxColsAtCompileTime = Direction==Horizontal ? 1 : MatrixType::MaxColsAtCompileTime,
-    Flags0 = (unsigned int)_MatrixTypeNested::Flags & HereditaryBits,
-    Flags = (Flags0 & ~RowMajorBit) | (RowsAtCompileTime == 1 ? RowMajorBit : 0),
-    TraversalSize = Direction==Vertical ? RowsAtCompileTime : ColsAtCompileTime
-  };
-  #if EIGEN_GNUC_AT_LEAST(3,4)
-  typedef typename MemberOp::template Cost<InputScalar,int(TraversalSize)> CostOpType;
-  #else
-  typedef typename MemberOp::template Cost<InputScalar,TraversalSize> CostOpType;
-  #endif
-  enum {
-    CoeffReadCost = TraversalSize * traits<_MatrixTypeNested>::CoeffReadCost + int(CostOpType::value)
-  };
-};
-}
-
-template< typename MatrixType, typename MemberOp, int Direction>
-class PartialReduxExpr : internal::no_assignment_operator,
-  public internal::dense_xpr_base< PartialReduxExpr<MatrixType, MemberOp, Direction> >::type
-{
-  public:
-
-    typedef typename internal::dense_xpr_base<PartialReduxExpr>::type Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(PartialReduxExpr)
-    typedef typename internal::traits<PartialReduxExpr>::MatrixTypeNested MatrixTypeNested;
-    typedef typename internal::traits<PartialReduxExpr>::_MatrixTypeNested _MatrixTypeNested;
-
-    PartialReduxExpr(const MatrixType& mat, const MemberOp& func = MemberOp())
-      : m_matrix(mat), m_functor(func) {}
-
-    Index rows() const { return (Direction==Vertical   ? 1 : m_matrix.rows()); }
-    Index cols() const { return (Direction==Horizontal ? 1 : m_matrix.cols()); }
-
-    EIGEN_STRONG_INLINE const Scalar coeff(Index i, Index j) const
-    {
-      if (Direction==Vertical)
-        return m_functor(m_matrix.col(j));
-      else
-        return m_functor(m_matrix.row(i));
-    }
-
-    const Scalar coeff(Index index) const
-    {
-      if (Direction==Vertical)
-        return m_functor(m_matrix.col(index));
-      else
-        return m_functor(m_matrix.row(index));
-    }
-
-  protected:
-    MatrixTypeNested m_matrix;
-    const MemberOp m_functor;
-};
-
-#define EIGEN_MEMBER_FUNCTOR(MEMBER,COST)                               \
-  template <typename ResultType>                                        \
-  struct member_##MEMBER {                                              \
-    EIGEN_EMPTY_STRUCT_CTOR(member_##MEMBER)                            \
-    typedef ResultType result_type;                                     \
-    template<typename Scalar, int Size> struct Cost                     \
-    { enum { value = COST }; };                                         \
-    template<typename XprType>                                          \
-    EIGEN_STRONG_INLINE ResultType operator()(const XprType& mat) const \
-    { return mat.MEMBER(); } \
-  }
-
-namespace internal {
-
-EIGEN_MEMBER_FUNCTOR(squaredNorm, Size * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
-EIGEN_MEMBER_FUNCTOR(norm, (Size+5) * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
-EIGEN_MEMBER_FUNCTOR(stableNorm, (Size+5) * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
-EIGEN_MEMBER_FUNCTOR(blueNorm, (Size+5) * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
-EIGEN_MEMBER_FUNCTOR(hypotNorm, (Size-1) * functor_traits<scalar_hypot_op<Scalar> >::Cost );
-EIGEN_MEMBER_FUNCTOR(sum, (Size-1)*NumTraits<Scalar>::AddCost);
-EIGEN_MEMBER_FUNCTOR(mean, (Size-1)*NumTraits<Scalar>::AddCost + NumTraits<Scalar>::MulCost);
-EIGEN_MEMBER_FUNCTOR(minCoeff, (Size-1)*NumTraits<Scalar>::AddCost);
-EIGEN_MEMBER_FUNCTOR(maxCoeff, (Size-1)*NumTraits<Scalar>::AddCost);
-EIGEN_MEMBER_FUNCTOR(all, (Size-1)*NumTraits<Scalar>::AddCost);
-EIGEN_MEMBER_FUNCTOR(any, (Size-1)*NumTraits<Scalar>::AddCost);
-EIGEN_MEMBER_FUNCTOR(count, (Size-1)*NumTraits<Scalar>::AddCost);
-EIGEN_MEMBER_FUNCTOR(prod, (Size-1)*NumTraits<Scalar>::MulCost);
-
-
-template <typename BinaryOp, typename Scalar>
-struct member_redux {
-  typedef typename result_of<
-                     BinaryOp(Scalar)
-                   >::type  result_type;
-  template<typename _Scalar, int Size> struct Cost
-  { enum { value = (Size-1) * functor_traits<BinaryOp>::Cost }; };
-  member_redux(const BinaryOp func) : m_functor(func) {}
-  template<typename Derived>
-  inline result_type operator()(const DenseBase<Derived>& mat) const
-  { return mat.redux(m_functor); }
-  const BinaryOp m_functor;
-};
-}
-
-/** \class VectorwiseOp
-  * \ingroup Core_Module
-  *
-  * \brief Pseudo expression providing partial reduction operations
-  *
-  * \param ExpressionType the type of the object on which to do partial reductions
-  * \param Direction indicates the direction of the redux (#Vertical or #Horizontal)
-  *
-  * This class represents a pseudo expression with partial reduction features.
-  * It is the return type of DenseBase::colwise() and DenseBase::rowwise()
-  * and most of the time this is the only way it is used.
-  *
-  * Example: \include MatrixBase_colwise.cpp
-  * Output: \verbinclude MatrixBase_colwise.out
-  *
-  * \sa DenseBase::colwise(), DenseBase::rowwise(), class PartialReduxExpr
-  */
-template<typename ExpressionType, int Direction> class VectorwiseOp
-{
-  public:
-
-    typedef typename ExpressionType::Scalar Scalar;
-    typedef typename ExpressionType::RealScalar RealScalar;
-    typedef typename ExpressionType::Index Index;
-    typedef typename internal::conditional<internal::must_nest_by_value<ExpressionType>::ret,
-        ExpressionType, ExpressionType&>::type ExpressionTypeNested;
-    typedef typename internal::remove_all<ExpressionTypeNested>::type ExpressionTypeNestedCleaned;
-
-    template<template<typename _Scalar> class Functor,
-                      typename Scalar=typename internal::traits<ExpressionType>::Scalar> struct ReturnType
-    {
-      typedef PartialReduxExpr<ExpressionType,
-                               Functor<Scalar>,
-                               Direction
-                              > Type;
-    };
-
-    template<typename BinaryOp> struct ReduxReturnType
-    {
-      typedef PartialReduxExpr<ExpressionType,
-                               internal::member_redux<BinaryOp,typename internal::traits<ExpressionType>::Scalar>,
-                               Direction
-                              > Type;
-    };
-
-    enum {
-      IsVertical   = (Direction==Vertical) ? 1 : 0,
-      IsHorizontal = (Direction==Horizontal) ? 1 : 0
-    };
-
-  protected:
-
-    /** \internal
-      * \returns the i-th subvector according to the \c Direction */
-    typedef typename internal::conditional<Direction==Vertical,
-                               typename ExpressionType::ColXpr,
-                               typename ExpressionType::RowXpr>::type SubVector;
-    SubVector subVector(Index i)
-    {
-      return SubVector(m_matrix.derived(),i);
-    }
-
-    /** \internal
-      * \returns the number of subvectors in the direction \c Direction */
-    Index subVectors() const
-    { return Direction==Vertical?m_matrix.cols():m_matrix.rows(); }
-
-    template<typename OtherDerived> struct ExtendedType {
-      typedef Replicate<OtherDerived,
-                        Direction==Vertical   ? 1 : ExpressionType::RowsAtCompileTime,
-                        Direction==Horizontal ? 1 : ExpressionType::ColsAtCompileTime> Type;
-    };
-
-    /** \internal
-      * Replicates a vector to match the size of \c *this */
-    template<typename OtherDerived>
-    typename ExtendedType<OtherDerived>::Type
-    extendedTo(const DenseBase<OtherDerived>& other) const
-    {
-      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(Direction==Vertical, OtherDerived::MaxColsAtCompileTime==1),
-                          YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED)
-      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(Direction==Horizontal, OtherDerived::MaxRowsAtCompileTime==1),
-                          YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED)
-      return typename ExtendedType<OtherDerived>::Type
-                      (other.derived(),
-                       Direction==Vertical   ? 1 : m_matrix.rows(),
-                       Direction==Horizontal ? 1 : m_matrix.cols());
-    }
-    
-    template<typename OtherDerived> struct OppositeExtendedType {
-      typedef Replicate<OtherDerived,
-                        Direction==Horizontal ? 1 : ExpressionType::RowsAtCompileTime,
-                        Direction==Vertical   ? 1 : ExpressionType::ColsAtCompileTime> Type;
-    };
-
-    /** \internal
-      * Replicates a vector in the opposite direction to match the size of \c *this */
-    template<typename OtherDerived>
-    typename OppositeExtendedType<OtherDerived>::Type
-    extendedToOpposite(const DenseBase<OtherDerived>& other) const
-    {
-      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(Direction==Horizontal, OtherDerived::MaxColsAtCompileTime==1),
-                          YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED)
-      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(Direction==Vertical, OtherDerived::MaxRowsAtCompileTime==1),
-                          YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED)
-      return typename OppositeExtendedType<OtherDerived>::Type
-                      (other.derived(),
-                       Direction==Horizontal  ? 1 : m_matrix.rows(),
-                       Direction==Vertical    ? 1 : m_matrix.cols());
-    }
-
-  public:
-
-    inline VectorwiseOp(ExpressionType& matrix) : m_matrix(matrix) {}
-
-    /** \internal */
-    inline const ExpressionType& _expression() const { return m_matrix; }
-
-    /** \returns a row or column vector expression of \c *this reduxed by \a func
-      *
-      * The template parameter \a BinaryOp is the type of the functor
-      * of the custom redux operator. Note that func must be an associative operator.
-      *
-      * \sa class VectorwiseOp, DenseBase::colwise(), DenseBase::rowwise()
-      */
-    template<typename BinaryOp>
-    const typename ReduxReturnType<BinaryOp>::Type
-    redux(const BinaryOp& func = BinaryOp()) const
-    { return typename ReduxReturnType<BinaryOp>::Type(_expression(), func); }
-
-    /** \returns a row (or column) vector expression of the smallest coefficient
-      * of each column (or row) of the referenced expression.
-      * 
-      * \warning the result is undefined if \c *this contains NaN.
-      *
-      * Example: \include PartialRedux_minCoeff.cpp
-      * Output: \verbinclude PartialRedux_minCoeff.out
-      *
-      * \sa DenseBase::minCoeff() */
-    const typename ReturnType<internal::member_minCoeff>::Type minCoeff() const
-    { return _expression(); }
-
-    /** \returns a row (or column) vector expression of the largest coefficient
-      * of each column (or row) of the referenced expression.
-      * 
-      * \warning the result is undefined if \c *this contains NaN.
-      *
-      * Example: \include PartialRedux_maxCoeff.cpp
-      * Output: \verbinclude PartialRedux_maxCoeff.out
-      *
-      * \sa DenseBase::maxCoeff() */
-    const typename ReturnType<internal::member_maxCoeff>::Type maxCoeff() const
-    { return _expression(); }
-
-    /** \returns a row (or column) vector expression of the squared norm
-      * of each column (or row) of the referenced expression.
-      *
-      * Example: \include PartialRedux_squaredNorm.cpp
-      * Output: \verbinclude PartialRedux_squaredNorm.out
-      *
-      * \sa DenseBase::squaredNorm() */
-    const typename ReturnType<internal::member_squaredNorm,RealScalar>::Type squaredNorm() const
-    { return _expression(); }
-
-    /** \returns a row (or column) vector expression of the norm
-      * of each column (or row) of the referenced expression.
-      *
-      * Example: \include PartialRedux_norm.cpp
-      * Output: \verbinclude PartialRedux_norm.out
-      *
-      * \sa DenseBase::norm() */
-    const typename ReturnType<internal::member_norm,RealScalar>::Type norm() const
-    { return _expression(); }
-
-
-    /** \returns a row (or column) vector expression of the norm
-      * of each column (or row) of the referenced expression, using
-      * blue's algorithm.
-      *
-      * \sa DenseBase::blueNorm() */
-    const typename ReturnType<internal::member_blueNorm,RealScalar>::Type blueNorm() const
-    { return _expression(); }
-
-
-    /** \returns a row (or column) vector expression of the norm
-      * of each column (or row) of the referenced expression, avoiding
-      * underflow and overflow.
-      *
-      * \sa DenseBase::stableNorm() */
-    const typename ReturnType<internal::member_stableNorm,RealScalar>::Type stableNorm() const
-    { return _expression(); }
-
-
-    /** \returns a row (or column) vector expression of the norm
-      * of each column (or row) of the referenced expression, avoiding
-      * underflow and overflow using a concatenation of hypot() calls.
-      *
-      * \sa DenseBase::hypotNorm() */
-    const typename ReturnType<internal::member_hypotNorm,RealScalar>::Type hypotNorm() const
-    { return _expression(); }
-
-    /** \returns a row (or column) vector expression of the sum
-      * of each column (or row) of the referenced expression.
-      *
-      * Example: \include PartialRedux_sum.cpp
-      * Output: \verbinclude PartialRedux_sum.out
-      *
-      * \sa DenseBase::sum() */
-    const typename ReturnType<internal::member_sum>::Type sum() const
-    { return _expression(); }
-
-    /** \returns a row (or column) vector expression of the mean
-    * of each column (or row) of the referenced expression.
-    *
-    * \sa DenseBase::mean() */
-    const typename ReturnType<internal::member_mean>::Type mean() const
-    { return _expression(); }
-
-    /** \returns a row (or column) vector expression representing
-      * whether \b all coefficients of each respective column (or row) are \c true.
-      *
-      * \sa DenseBase::all() */
-    const typename ReturnType<internal::member_all>::Type all() const
-    { return _expression(); }
-
-    /** \returns a row (or column) vector expression representing
-      * whether \b at \b least one coefficient of each respective column (or row) is \c true.
-      *
-      * \sa DenseBase::any() */
-    const typename ReturnType<internal::member_any>::Type any() const
-    { return _expression(); }
-
-    /** \returns a row (or column) vector expression representing
-      * the number of \c true coefficients of each respective column (or row).
-      *
-      * Example: \include PartialRedux_count.cpp
-      * Output: \verbinclude PartialRedux_count.out
-      *
-      * \sa DenseBase::count() */
-    const PartialReduxExpr<ExpressionType, internal::member_count<Index>, Direction> count() const
-    { return _expression(); }
-
-    /** \returns a row (or column) vector expression of the product
-      * of each column (or row) of the referenced expression.
-      *
-      * Example: \include PartialRedux_prod.cpp
-      * Output: \verbinclude PartialRedux_prod.out
-      *
-      * \sa DenseBase::prod() */
-    const typename ReturnType<internal::member_prod>::Type prod() const
-    { return _expression(); }
-
-
-    /** \returns a matrix expression
-      * where each column (or row) are reversed.
-      *
-      * Example: \include Vectorwise_reverse.cpp
-      * Output: \verbinclude Vectorwise_reverse.out
-      *
-      * \sa DenseBase::reverse() */
-    const Reverse<ExpressionType, Direction> reverse() const
-    { return Reverse<ExpressionType, Direction>( _expression() ); }
-
-    typedef Replicate<ExpressionType,Direction==Vertical?Dynamic:1,Direction==Horizontal?Dynamic:1> ReplicateReturnType;
-    const ReplicateReturnType replicate(Index factor) const;
-
-    /**
-      * \return an expression of the replication of each column (or row) of \c *this
-      *
-      * Example: \include DirectionWise_replicate.cpp
-      * Output: \verbinclude DirectionWise_replicate.out
-      *
-      * \sa VectorwiseOp::replicate(Index), DenseBase::replicate(), class Replicate
-      */
-    // NOTE implemented here because of sunstudio's compilation errors
-    template<int Factor> const Replicate<ExpressionType,(IsVertical?Factor:1),(IsHorizontal?Factor:1)>
-    replicate(Index factor = Factor) const
-    {
-      return Replicate<ExpressionType,Direction==Vertical?Factor:1,Direction==Horizontal?Factor:1>
-          (_expression(),Direction==Vertical?factor:1,Direction==Horizontal?factor:1);
-    }
-
-/////////// Artithmetic operators ///////////
-
-    /** Copies the vector \a other to each subvector of \c *this */
-    template<typename OtherDerived>
-    ExpressionType& operator=(const DenseBase<OtherDerived>& other)
-    {
-      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
-      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
-      //eigen_assert((m_matrix.isNull()) == (other.isNull())); FIXME
-      return const_cast<ExpressionType&>(m_matrix = extendedTo(other.derived()));
-    }
-
-    /** Adds the vector \a other to each subvector of \c *this */
-    template<typename OtherDerived>
-    ExpressionType& operator+=(const DenseBase<OtherDerived>& other)
-    {
-      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
-      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
-      return const_cast<ExpressionType&>(m_matrix += extendedTo(other.derived()));
-    }
-
-    /** Substracts the vector \a other to each subvector of \c *this */
-    template<typename OtherDerived>
-    ExpressionType& operator-=(const DenseBase<OtherDerived>& other)
-    {
-      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
-      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
-      return const_cast<ExpressionType&>(m_matrix -= extendedTo(other.derived()));
-    }
-
-    /** Multiples each subvector of \c *this by the vector \a other */
-    template<typename OtherDerived>
-    ExpressionType& operator*=(const DenseBase<OtherDerived>& other)
-    {
-      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
-      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
-      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
-      m_matrix *= extendedTo(other.derived());
-      return const_cast<ExpressionType&>(m_matrix);
-    }
-
-    /** Divides each subvector of \c *this by the vector \a other */
-    template<typename OtherDerived>
-    ExpressionType& operator/=(const DenseBase<OtherDerived>& other)
-    {
-      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
-      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
-      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
-      m_matrix /= extendedTo(other.derived());
-      return const_cast<ExpressionType&>(m_matrix);
-    }
-
-    /** Returns the expression of the sum of the vector \a other to each subvector of \c *this */
-    template<typename OtherDerived> EIGEN_STRONG_INLINE
-    CwiseBinaryOp<internal::scalar_sum_op<Scalar>,
-                  const ExpressionTypeNestedCleaned,
-                  const typename ExtendedType<OtherDerived>::Type>
-    operator+(const DenseBase<OtherDerived>& other) const
-    {
-      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
-      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
-      return m_matrix + extendedTo(other.derived());
-    }
-
-    /** Returns the expression of the difference between each subvector of \c *this and the vector \a other */
-    template<typename OtherDerived>
-    CwiseBinaryOp<internal::scalar_difference_op<Scalar>,
-                  const ExpressionTypeNestedCleaned,
-                  const typename ExtendedType<OtherDerived>::Type>
-    operator-(const DenseBase<OtherDerived>& other) const
-    {
-      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
-      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
-      return m_matrix - extendedTo(other.derived());
-    }
-
-    /** Returns the expression where each subvector is the product of the vector \a other
-      * by the corresponding subvector of \c *this */
-    template<typename OtherDerived> EIGEN_STRONG_INLINE
-    CwiseBinaryOp<internal::scalar_product_op<Scalar>,
-                  const ExpressionTypeNestedCleaned,
-                  const typename ExtendedType<OtherDerived>::Type>
-    operator*(const DenseBase<OtherDerived>& other) const
-    {
-      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
-      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
-      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
-      return m_matrix * extendedTo(other.derived());
-    }
-
-    /** Returns the expression where each subvector is the quotient of the corresponding
-      * subvector of \c *this by the vector \a other */
-    template<typename OtherDerived>
-    CwiseBinaryOp<internal::scalar_quotient_op<Scalar>,
-                  const ExpressionTypeNestedCleaned,
-                  const typename ExtendedType<OtherDerived>::Type>
-    operator/(const DenseBase<OtherDerived>& other) const
-    {
-      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
-      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
-      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
-      return m_matrix / extendedTo(other.derived());
-    }
-    
-    /** \returns an expression where each column of row of the referenced matrix are normalized.
-      * The referenced matrix is \b not modified.
-      * \sa MatrixBase::normalized(), normalize()
-      */
-    CwiseBinaryOp<internal::scalar_quotient_op<Scalar>,
-                  const ExpressionTypeNestedCleaned,
-                  const typename OppositeExtendedType<typename ReturnType<internal::member_norm,RealScalar>::Type>::Type>
-    normalized() const { return m_matrix.cwiseQuotient(extendedToOpposite(this->norm())); }
-    
-    
-    /** Normalize in-place each row or columns of the referenced matrix.
-      * \sa MatrixBase::normalize(), normalized()
-      */
-    void normalize() {
-      m_matrix = this->normalized();
-    }
-
-/////////// Geometry module ///////////
-
-    #if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
-    Homogeneous<ExpressionType,Direction> homogeneous() const;
-    #endif
-
-    typedef typename ExpressionType::PlainObject CrossReturnType;
-    template<typename OtherDerived>
-    const CrossReturnType cross(const MatrixBase<OtherDerived>& other) const;
-
-    enum {
-      HNormalized_Size = Direction==Vertical ? internal::traits<ExpressionType>::RowsAtCompileTime
-                                             : internal::traits<ExpressionType>::ColsAtCompileTime,
-      HNormalized_SizeMinusOne = HNormalized_Size==Dynamic ? Dynamic : HNormalized_Size-1
-    };
-    typedef Block<const ExpressionType,
-                  Direction==Vertical   ? int(HNormalized_SizeMinusOne)
-                                        : int(internal::traits<ExpressionType>::RowsAtCompileTime),
-                  Direction==Horizontal ? int(HNormalized_SizeMinusOne)
-                                        : int(internal::traits<ExpressionType>::ColsAtCompileTime)>
-            HNormalized_Block;
-    typedef Block<const ExpressionType,
-                  Direction==Vertical   ? 1 : int(internal::traits<ExpressionType>::RowsAtCompileTime),
-                  Direction==Horizontal ? 1 : int(internal::traits<ExpressionType>::ColsAtCompileTime)>
-            HNormalized_Factors;
-    typedef CwiseBinaryOp<internal::scalar_quotient_op<typename internal::traits<ExpressionType>::Scalar>,
-                const HNormalized_Block,
-                const Replicate<HNormalized_Factors,
-                  Direction==Vertical   ? HNormalized_SizeMinusOne : 1,
-                  Direction==Horizontal ? HNormalized_SizeMinusOne : 1> >
-            HNormalizedReturnType;
-
-    const HNormalizedReturnType hnormalized() const;
-
-  protected:
-    ExpressionTypeNested m_matrix;
-};
-
-/** \returns a VectorwiseOp wrapper of *this providing additional partial reduction operations
-  *
-  * Example: \include MatrixBase_colwise.cpp
-  * Output: \verbinclude MatrixBase_colwise.out
-  *
-  * \sa rowwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
-  */
-template<typename Derived>
-inline const typename DenseBase<Derived>::ConstColwiseReturnType
-DenseBase<Derived>::colwise() const
-{
-  return derived();
-}
-
-/** \returns a writable VectorwiseOp wrapper of *this providing additional partial reduction operations
-  *
-  * \sa rowwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
-  */
-template<typename Derived>
-inline typename DenseBase<Derived>::ColwiseReturnType
-DenseBase<Derived>::colwise()
-{
-  return derived();
-}
-
-/** \returns a VectorwiseOp wrapper of *this providing additional partial reduction operations
-  *
-  * Example: \include MatrixBase_rowwise.cpp
-  * Output: \verbinclude MatrixBase_rowwise.out
-  *
-  * \sa colwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
-  */
-template<typename Derived>
-inline const typename DenseBase<Derived>::ConstRowwiseReturnType
-DenseBase<Derived>::rowwise() const
-{
-  return derived();
-}
-
-/** \returns a writable VectorwiseOp wrapper of *this providing additional partial reduction operations
-  *
-  * \sa colwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
-  */
-template<typename Derived>
-inline typename DenseBase<Derived>::RowwiseReturnType
-DenseBase<Derived>::rowwise()
-{
-  return derived();
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_PARTIAL_REDUX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Visitor.h b/vendor/eigen-3.1.91/Eigen/src/Core/Visitor.h
deleted file mode 100644
index 64867b7..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/Visitor.h
+++ /dev/null
@@ -1,237 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_VISITOR_H
-#define EIGEN_VISITOR_H
-
-namespace Eigen { 
-
-namespace internal {
-
-template<typename Visitor, typename Derived, int UnrollCount>
-struct visitor_impl
-{
-  enum {
-    col = (UnrollCount-1) / Derived::RowsAtCompileTime,
-    row = (UnrollCount-1) % Derived::RowsAtCompileTime
-  };
-
-  static inline void run(const Derived &mat, Visitor& visitor)
-  {
-    visitor_impl<Visitor, Derived, UnrollCount-1>::run(mat, visitor);
-    visitor(mat.coeff(row, col), row, col);
-  }
-};
-
-template<typename Visitor, typename Derived>
-struct visitor_impl<Visitor, Derived, 1>
-{
-  static inline void run(const Derived &mat, Visitor& visitor)
-  {
-    return visitor.init(mat.coeff(0, 0), 0, 0);
-  }
-};
-
-template<typename Visitor, typename Derived>
-struct visitor_impl<Visitor, Derived, Dynamic>
-{
-  typedef typename Derived::Index Index;
-  static inline void run(const Derived& mat, Visitor& visitor)
-  {
-    visitor.init(mat.coeff(0,0), 0, 0);
-    for(Index i = 1; i < mat.rows(); ++i)
-      visitor(mat.coeff(i, 0), i, 0);
-    for(Index j = 1; j < mat.cols(); ++j)
-      for(Index i = 0; i < mat.rows(); ++i)
-        visitor(mat.coeff(i, j), i, j);
-  }
-};
-
-} // end namespace internal
-
-/** Applies the visitor \a visitor to the whole coefficients of the matrix or vector.
-  *
-  * The template parameter \a Visitor is the type of the visitor and provides the following interface:
-  * \code
-  * struct MyVisitor {
-  *   // called for the first coefficient
-  *   void init(const Scalar& value, Index i, Index j);
-  *   // called for all other coefficients
-  *   void operator() (const Scalar& value, Index i, Index j);
-  * };
-  * \endcode
-  *
-  * \note compared to one or two \em for \em loops, visitors offer automatic
-  * unrolling for small fixed size matrix.
-  *
-  * \sa minCoeff(Index*,Index*), maxCoeff(Index*,Index*), DenseBase::redux()
-  */
-template<typename Derived>
-template<typename Visitor>
-void DenseBase<Derived>::visit(Visitor& visitor) const
-{
-  enum { unroll = SizeAtCompileTime != Dynamic
-                   && CoeffReadCost != Dynamic
-                   && (SizeAtCompileTime == 1 || internal::functor_traits<Visitor>::Cost != Dynamic)
-                   && SizeAtCompileTime * CoeffReadCost + (SizeAtCompileTime-1) * internal::functor_traits<Visitor>::Cost
-                      <= EIGEN_UNROLLING_LIMIT };
-  return internal::visitor_impl<Visitor, Derived,
-      unroll ? int(SizeAtCompileTime) : Dynamic
-    >::run(derived(), visitor);
-}
-
-namespace internal {
-
-/** \internal
-  * \brief Base class to implement min and max visitors
-  */
-template <typename Derived>
-struct coeff_visitor
-{
-  typedef typename Derived::Index Index;
-  typedef typename Derived::Scalar Scalar;
-  Index row, col;
-  Scalar res;
-  inline void init(const Scalar& value, Index i, Index j)
-  {
-    res = value;
-    row = i;
-    col = j;
-  }
-};
-
-/** \internal
-  * \brief Visitor computing the min coefficient with its value and coordinates
-  *
-  * \sa DenseBase::minCoeff(Index*, Index*)
-  */
-template <typename Derived>
-struct min_coeff_visitor : coeff_visitor<Derived>
-{
-  typedef typename Derived::Index Index;
-  typedef typename Derived::Scalar Scalar;
-  void operator() (const Scalar& value, Index i, Index j)
-  {
-    if(value < this->res)
-    {
-      this->res = value;
-      this->row = i;
-      this->col = j;
-    }
-  }
-};
-
-template<typename Scalar>
-struct functor_traits<min_coeff_visitor<Scalar> > {
-  enum {
-    Cost = NumTraits<Scalar>::AddCost
-  };
-};
-
-/** \internal
-  * \brief Visitor computing the max coefficient with its value and coordinates
-  *
-  * \sa DenseBase::maxCoeff(Index*, Index*)
-  */
-template <typename Derived>
-struct max_coeff_visitor : coeff_visitor<Derived>
-{
-  typedef typename Derived::Index Index;
-  typedef typename Derived::Scalar Scalar;
-  void operator() (const Scalar& value, Index i, Index j)
-  {
-    if(value > this->res)
-    {
-      this->res = value;
-      this->row = i;
-      this->col = j;
-    }
-  }
-};
-
-template<typename Scalar>
-struct functor_traits<max_coeff_visitor<Scalar> > {
-  enum {
-    Cost = NumTraits<Scalar>::AddCost
-  };
-};
-
-} // end namespace internal
-
-/** \returns the minimum of all coefficients of *this and puts in *row and *col its location.
-  * \warning the result is undefined if \c *this contains NaN.
-  *
-  * \sa DenseBase::minCoeff(Index*), DenseBase::maxCoeff(Index*,Index*), DenseBase::visitor(), DenseBase::minCoeff()
-  */
-template<typename Derived>
-template<typename IndexType>
-typename internal::traits<Derived>::Scalar
-DenseBase<Derived>::minCoeff(IndexType* rowId, IndexType* colId) const
-{
-  internal::min_coeff_visitor<Derived> minVisitor;
-  this->visit(minVisitor);
-  *rowId = minVisitor.row;
-  if (colId) *colId = minVisitor.col;
-  return minVisitor.res;
-}
-
-/** \returns the minimum of all coefficients of *this and puts in *index its location.
-  * \warning the result is undefined if \c *this contains NaN. 
-  *
-  * \sa DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::maxCoeff(IndexType*,IndexType*), DenseBase::visitor(), DenseBase::minCoeff()
-  */
-template<typename Derived>
-template<typename IndexType>
-typename internal::traits<Derived>::Scalar
-DenseBase<Derived>::minCoeff(IndexType* index) const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  internal::min_coeff_visitor<Derived> minVisitor;
-  this->visit(minVisitor);
-  *index = (RowsAtCompileTime==1) ? minVisitor.col : minVisitor.row;
-  return minVisitor.res;
-}
-
-/** \returns the maximum of all coefficients of *this and puts in *row and *col its location.
-  * \warning the result is undefined if \c *this contains NaN. 
-  *
-  * \sa DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::visitor(), DenseBase::maxCoeff()
-  */
-template<typename Derived>
-template<typename IndexType>
-typename internal::traits<Derived>::Scalar
-DenseBase<Derived>::maxCoeff(IndexType* rowPtr, IndexType* colPtr) const
-{
-  internal::max_coeff_visitor<Derived> maxVisitor;
-  this->visit(maxVisitor);
-  *rowPtr = maxVisitor.row;
-  if (colPtr) *colPtr = maxVisitor.col;
-  return maxVisitor.res;
-}
-
-/** \returns the maximum of all coefficients of *this and puts in *index its location.
-  * \warning the result is undefined if \c *this contains NaN.
-  *
-  * \sa DenseBase::maxCoeff(IndexType*,IndexType*), DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::visitor(), DenseBase::maxCoeff()
-  */
-template<typename Derived>
-template<typename IndexType>
-typename internal::traits<Derived>::Scalar
-DenseBase<Derived>::maxCoeff(IndexType* index) const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  internal::max_coeff_visitor<Derived> maxVisitor;
-  this->visit(maxVisitor);
-  *index = (RowsAtCompileTime==1) ? maxVisitor.col : maxVisitor.row;
-  return maxVisitor.res;
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_VISITOR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/arch/AltiVec/PacketMath.h b/vendor/eigen-3.1.91/Eigen/src/Core/arch/AltiVec/PacketMath.h
deleted file mode 100644
index 75de193..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/arch/AltiVec/PacketMath.h
+++ /dev/null
@@ -1,498 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Konstantinos Margaritis <markos at codex.gr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_PACKET_MATH_ALTIVEC_H
-#define EIGEN_PACKET_MATH_ALTIVEC_H
-
-namespace Eigen {
-
-namespace internal {
-
-#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
-#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 4
-#endif
-
-#ifndef EIGEN_HAS_FUSE_CJMADD
-#define EIGEN_HAS_FUSE_CJMADD 1
-#endif
-
-// NOTE Altivec has 32 registers, but Eigen only accepts a value of 8 or 16
-#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
-#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 16
-#endif
-
-typedef __vector float          Packet4f;
-typedef __vector int            Packet4i;
-typedef __vector unsigned int   Packet4ui;
-typedef __vector __bool int     Packet4bi;
-typedef __vector short int      Packet8i;
-typedef __vector unsigned char  Packet16uc;
-
-// We don't want to write the same code all the time, but we need to reuse the constants
-// and it doesn't really work to declare them global, so we define macros instead
-
-#define _EIGEN_DECLARE_CONST_FAST_Packet4f(NAME,X) \
-  Packet4f p4f_##NAME = (Packet4f) vec_splat_s32(X)
-
-#define _EIGEN_DECLARE_CONST_FAST_Packet4i(NAME,X) \
-  Packet4i p4i_##NAME = vec_splat_s32(X)
-
-#define _EIGEN_DECLARE_CONST_Packet4f(NAME,X) \
-  Packet4f p4f_##NAME = pset1<Packet4f>(X)
-
-#define _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(NAME,X) \
-  Packet4f p4f_##NAME = vreinterpretq_f32_u32(pset1<int>(X))
-
-#define _EIGEN_DECLARE_CONST_Packet4i(NAME,X) \
-  Packet4i p4i_##NAME = pset1<Packet4i>(X)
-
-#define DST_CHAN 1
-#define DST_CTRL(size, count, stride) (((size) << 24) | ((count) << 16) | (stride))
-
-// Define global static constants:
-static Packet4f p4f_COUNTDOWN = { 3.0, 2.0, 1.0, 0.0 };
-static Packet4i p4i_COUNTDOWN = { 3, 2, 1, 0 };
-static Packet16uc p16uc_REVERSE = {12,13,14,15, 8,9,10,11, 4,5,6,7, 0,1,2,3};
-static Packet16uc p16uc_FORWARD = vec_lvsl(0, (float*)0);
-static Packet16uc p16uc_DUPLICATE = {0,1,2,3, 0,1,2,3, 4,5,6,7, 4,5,6,7};
-
-static _EIGEN_DECLARE_CONST_FAST_Packet4f(ZERO, 0);
-static _EIGEN_DECLARE_CONST_FAST_Packet4i(ZERO, 0);
-static _EIGEN_DECLARE_CONST_FAST_Packet4i(ONE,1);
-static _EIGEN_DECLARE_CONST_FAST_Packet4i(MINUS16,-16);
-static _EIGEN_DECLARE_CONST_FAST_Packet4i(MINUS1,-1);
-static Packet4f p4f_ONE = vec_ctf(p4i_ONE, 0);
-static Packet4f p4f_ZERO_ = (Packet4f) vec_sl((Packet4ui)p4i_MINUS1, (Packet4ui)p4i_MINUS1);
-
-template<> struct packet_traits<float>  : default_packet_traits
-{
-  typedef Packet4f type;
-  enum {
-    Vectorizable = 1,
-    AlignedOnScalar = 1,
-    size=4,
-
-    // FIXME check the Has*
-    HasSin  = 0,
-    HasCos  = 0,
-    HasLog  = 0,
-    HasExp  = 0,
-    HasSqrt = 0
-  };
-};
-template<> struct packet_traits<int>    : default_packet_traits
-{
-  typedef Packet4i type;
-  enum {
-    // FIXME check the Has*
-    Vectorizable = 1,
-    AlignedOnScalar = 1,
-    size=4
-  };
-};
-
-template<> struct unpacket_traits<Packet4f> { typedef float  type; enum {size=4}; };
-template<> struct unpacket_traits<Packet4i> { typedef int    type; enum {size=4}; };
-/*
-inline std::ostream & operator <<(std::ostream & s, const Packet4f & v)
-{
-  union {
-    Packet4f   v;
-    float n[4];
-  } vt;
-  vt.v = v;
-  s << vt.n[0] << ", " << vt.n[1] << ", " << vt.n[2] << ", " << vt.n[3];
-  return s;
-}
-
-inline std::ostream & operator <<(std::ostream & s, const Packet4i & v)
-{
-  union {
-    Packet4i   v;
-    int n[4];
-  } vt;
-  vt.v = v;
-  s << vt.n[0] << ", " << vt.n[1] << ", " << vt.n[2] << ", " << vt.n[3];
-  return s;
-}
-
-inline std::ostream & operator <<(std::ostream & s, const Packet4ui & v)
-{
-  union {
-    Packet4ui   v;
-    unsigned int n[4];
-  } vt;
-  vt.v = v;
-  s << vt.n[0] << ", " << vt.n[1] << ", " << vt.n[2] << ", " << vt.n[3];
-  return s;
-}
-
-inline std::ostream & operator <<(std::ostream & s, const Packetbi & v)
-{
-  union {
-    Packet4bi v;
-    unsigned int n[4];
-  } vt;
-  vt.v = v;
-  s << vt.n[0] << ", " << vt.n[1] << ", " << vt.n[2] << ", " << vt.n[3];
-  return s;
-}
-*/
-template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float&  from) {
-  // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
-  float EIGEN_ALIGN16 af[4];
-  af[0] = from;
-  Packet4f vc = vec_ld(0, af);
-  vc = vec_splat(vc, 0);
-  return vc;
-}
-
-template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int&    from)   {
-  int EIGEN_ALIGN16 ai[4];
-  ai[0] = from;
-  Packet4i vc = vec_ld(0, ai);
-  vc = vec_splat(vc, 0);
-  return vc;
-}
-
-template<> EIGEN_STRONG_INLINE Packet4f plset<float>(const float& a) { return vec_add(pset1<Packet4f>(a), p4f_COUNTDOWN); }
-template<> EIGEN_STRONG_INLINE Packet4i plset<int>(const int& a)     { return vec_add(pset1<Packet4i>(a), p4i_COUNTDOWN); }
-
-template<> EIGEN_STRONG_INLINE Packet4f padd<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_add(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i padd<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_add(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f psub<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_sub(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i psub<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_sub(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pnegate(const Packet4f& a) { return psub<Packet4f>(p4f_ZERO, a); }
-template<> EIGEN_STRONG_INLINE Packet4i pnegate(const Packet4i& a) { return psub<Packet4i>(p4i_ZERO, a); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pmul<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_madd(a,b,p4f_ZERO); }
-/* Commented out: it's actually slower than processing it scalar
- *
-template<> EIGEN_STRONG_INLINE Packet4i pmul<Packet4i>(const Packet4i& a, const Packet4i& b)
-{
-  // Detailed in: http://freevec.org/content/32bit_signed_integer_multiplication_altivec
-  //Set up constants, variables
-  Packet4i a1, b1, bswap, low_prod, high_prod, prod, prod_, v1sel;
-
-  // Get the absolute values
-  a1  = vec_abs(a);
-  b1  = vec_abs(b);
-
-  // Get the signs using xor
-  Packet4bi sgn = (Packet4bi) vec_cmplt(vec_xor(a, b), p4i_ZERO);
-
-  // Do the multiplication for the asbolute values.
-  bswap = (Packet4i) vec_rl((Packet4ui) b1, (Packet4ui) p4i_MINUS16 );
-  low_prod = vec_mulo((Packet8i) a1, (Packet8i)b1);
-  high_prod = vec_msum((Packet8i) a1, (Packet8i) bswap, p4i_ZERO);
-  high_prod = (Packet4i) vec_sl((Packet4ui) high_prod, (Packet4ui) p4i_MINUS16);
-  prod = vec_add( low_prod, high_prod );
-
-  // NOR the product and select only the negative elements according to the sign mask
-  prod_ = vec_nor(prod, prod);
-  prod_ = vec_sel(p4i_ZERO, prod_, sgn);
-
-  // Add 1 to the result to get the negative numbers
-  v1sel = vec_sel(p4i_ZERO, p4i_ONE, sgn);
-  prod_ = vec_add(prod_, v1sel);
-
-  // Merge the results back to the final vector.
-  prod = vec_sel(prod, prod_, sgn);
-
-  return prod;
-}
-*/
-template<> EIGEN_STRONG_INLINE Packet4f pdiv<Packet4f>(const Packet4f& a, const Packet4f& b)
-{
-  Packet4f t, y_0, y_1, res;
-
-  // Altivec does not offer a divide instruction, we have to do a reciprocal approximation
-  y_0 = vec_re(b);
-
-  // Do one Newton-Raphson iteration to get the needed accuracy
-  t   = vec_nmsub(y_0, b, p4f_ONE);
-  y_1 = vec_madd(y_0, t, y_0);
-
-  res = vec_madd(a, y_1, p4f_ZERO);
-  return res;
-}
-
-template<> EIGEN_STRONG_INLINE Packet4i pdiv<Packet4i>(const Packet4i& /*a*/, const Packet4i& /*b*/)
-{ eigen_assert(false && "packet integer division are not supported by AltiVec");
-  return pset1<Packet4i>(0);
-}
-
-// for some weird raisons, it has to be overloaded for packet of integers
-template<> EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c) { return vec_madd(a, b, c); }
-template<> EIGEN_STRONG_INLINE Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) { return padd(pmul(a,b), c); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pmin<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_min(a, b); }
-template<> EIGEN_STRONG_INLINE Packet4i pmin<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_min(a, b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pmax<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_max(a, b); }
-template<> EIGEN_STRONG_INLINE Packet4i pmax<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_max(a, b); }
-
-// Logical Operations are not supported for float, so we have to reinterpret casts using NEON intrinsics
-template<> EIGEN_STRONG_INLINE Packet4f pand<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_and(a, b); }
-template<> EIGEN_STRONG_INLINE Packet4i pand<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_and(a, b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f por<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_or(a, b); }
-template<> EIGEN_STRONG_INLINE Packet4i por<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_or(a, b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pxor<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_xor(a, b); }
-template<> EIGEN_STRONG_INLINE Packet4i pxor<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_xor(a, b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pandnot<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_and(a, vec_nor(b, b)); }
-template<> EIGEN_STRONG_INLINE Packet4i pandnot<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_and(a, vec_nor(b, b)); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pload<Packet4f>(const float* from) { EIGEN_DEBUG_ALIGNED_LOAD return vec_ld(0, from); }
-template<> EIGEN_STRONG_INLINE Packet4i pload<Packet4i>(const int*     from) { EIGEN_DEBUG_ALIGNED_LOAD return vec_ld(0, from); }
-
-template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float* from)
-{
-  EIGEN_DEBUG_ALIGNED_LOAD
-  // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
-  Packet16uc MSQ, LSQ;
-  Packet16uc mask;
-  MSQ = vec_ld(0, (unsigned char *)from);          // most significant quadword
-  LSQ = vec_ld(15, (unsigned char *)from);         // least significant quadword
-  mask = vec_lvsl(0, from);                        // create the permute mask
-  return (Packet4f) vec_perm(MSQ, LSQ, mask);           // align the data
-
-}
-template<> EIGEN_STRONG_INLINE Packet4i ploadu<Packet4i>(const int* from)
-{
-  EIGEN_DEBUG_ALIGNED_LOAD
-  // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
-  Packet16uc MSQ, LSQ;
-  Packet16uc mask;
-  MSQ = vec_ld(0, (unsigned char *)from);          // most significant quadword
-  LSQ = vec_ld(15, (unsigned char *)from);         // least significant quadword
-  mask = vec_lvsl(0, from);                        // create the permute mask
-  return (Packet4i) vec_perm(MSQ, LSQ, mask);    // align the data
-}
-
-template<> EIGEN_STRONG_INLINE Packet4f ploaddup<Packet4f>(const float*   from)
-{
-  Packet4f p;
-  if((ptrdiff_t(&from) % 16) == 0)  p = pload<Packet4f>(from);
-  else                              p = ploadu<Packet4f>(from);
-  return vec_perm(p, p, p16uc_DUPLICATE);
-}
-template<> EIGEN_STRONG_INLINE Packet4i ploaddup<Packet4i>(const int*     from)
-{
-  Packet4i p;
-  if((ptrdiff_t(&from) % 16) == 0)  p = pload<Packet4i>(from);
-  else                              p = ploadu<Packet4i>(from);
-  return vec_perm(p, p, p16uc_DUPLICATE);
-}
-
-template<> EIGEN_STRONG_INLINE void pstore<float>(float*   to, const Packet4f& from) { EIGEN_DEBUG_ALIGNED_STORE vec_st(from, 0, to); }
-template<> EIGEN_STRONG_INLINE void pstore<int>(int*       to, const Packet4i& from) { EIGEN_DEBUG_ALIGNED_STORE vec_st(from, 0, to); }
-
-template<> EIGEN_STRONG_INLINE void pstoreu<float>(float*  to, const Packet4f& from)
-{
-  EIGEN_DEBUG_UNALIGNED_STORE
-  // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
-  // Warning: not thread safe!
-  Packet16uc MSQ, LSQ, edges;
-  Packet16uc edgeAlign, align;
-
-  MSQ = vec_ld(0, (unsigned char *)to);                     // most significant quadword
-  LSQ = vec_ld(15, (unsigned char *)to);                    // least significant quadword
-  edgeAlign = vec_lvsl(0, to);                              // permute map to extract edges
-  edges=vec_perm(LSQ,MSQ,edgeAlign);                        // extract the edges
-  align = vec_lvsr( 0, to );                                // permute map to misalign data
-  MSQ = vec_perm(edges,(Packet16uc)from,align);             // misalign the data (MSQ)
-  LSQ = vec_perm((Packet16uc)from,edges,align);             // misalign the data (LSQ)
-  vec_st( LSQ, 15, (unsigned char *)to );                   // Store the LSQ part first
-  vec_st( MSQ, 0, (unsigned char *)to );                    // Store the MSQ part
-}
-template<> EIGEN_STRONG_INLINE void pstoreu<int>(int*      to, const Packet4i& from)
-{
-  EIGEN_DEBUG_UNALIGNED_STORE
-  // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
-  // Warning: not thread safe!
-  Packet16uc MSQ, LSQ, edges;
-  Packet16uc edgeAlign, align;
-
-  MSQ = vec_ld(0, (unsigned char *)to);                     // most significant quadword
-  LSQ = vec_ld(15, (unsigned char *)to);                    // least significant quadword
-  edgeAlign = vec_lvsl(0, to);                              // permute map to extract edges
-  edges=vec_perm(LSQ, MSQ, edgeAlign);                      // extract the edges
-  align = vec_lvsr( 0, to );                                // permute map to misalign data
-  MSQ = vec_perm(edges, (Packet16uc) from, align);          // misalign the data (MSQ)
-  LSQ = vec_perm((Packet16uc) from, edges, align);          // misalign the data (LSQ)
-  vec_st( LSQ, 15, (unsigned char *)to );                   // Store the LSQ part first
-  vec_st( MSQ, 0, (unsigned char *)to );                    // Store the MSQ part
-}
-
-template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) { vec_dstt(addr, DST_CTRL(2,2,32), DST_CHAN); }
-template<> EIGEN_STRONG_INLINE void prefetch<int>(const int*     addr) { vec_dstt(addr, DST_CTRL(2,2,32), DST_CHAN); }
-
-template<> EIGEN_STRONG_INLINE float  pfirst<Packet4f>(const Packet4f& a) { float EIGEN_ALIGN16 x[4]; vec_st(a, 0, x); return x[0]; }
-template<> EIGEN_STRONG_INLINE int    pfirst<Packet4i>(const Packet4i& a) { int   EIGEN_ALIGN16 x[4]; vec_st(a, 0, x); return x[0]; }
-
-template<> EIGEN_STRONG_INLINE Packet4f preverse(const Packet4f& a) { return (Packet4f)vec_perm((Packet16uc)a,(Packet16uc)a, p16uc_REVERSE); }
-template<> EIGEN_STRONG_INLINE Packet4i preverse(const Packet4i& a) { return (Packet4i)vec_perm((Packet16uc)a,(Packet16uc)a, p16uc_REVERSE); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f& a) { return vec_abs(a); }
-template<> EIGEN_STRONG_INLINE Packet4i pabs(const Packet4i& a) { return vec_abs(a); }
-
-template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
-{
-  Packet4f b, sum;
-  b   = (Packet4f) vec_sld(a, a, 8);
-  sum = vec_add(a, b);
-  b   = (Packet4f) vec_sld(sum, sum, 4);
-  sum = vec_add(sum, b);
-  return pfirst(sum);
-}
-
-template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
-{
-  Packet4f v[4], sum[4];
-
-  // It's easier and faster to transpose then add as columns
-  // Check: http://www.freevec.org/function/matrix_4x4_transpose_floats for explanation
-  // Do the transpose, first set of moves
-  v[0] = vec_mergeh(vecs[0], vecs[2]);
-  v[1] = vec_mergel(vecs[0], vecs[2]);
-  v[2] = vec_mergeh(vecs[1], vecs[3]);
-  v[3] = vec_mergel(vecs[1], vecs[3]);
-  // Get the resulting vectors
-  sum[0] = vec_mergeh(v[0], v[2]);
-  sum[1] = vec_mergel(v[0], v[2]);
-  sum[2] = vec_mergeh(v[1], v[3]);
-  sum[3] = vec_mergel(v[1], v[3]);
-
-  // Now do the summation:
-  // Lines 0+1
-  sum[0] = vec_add(sum[0], sum[1]);
-  // Lines 2+3
-  sum[1] = vec_add(sum[2], sum[3]);
-  // Add the results
-  sum[0] = vec_add(sum[0], sum[1]);
-
-  return sum[0];
-}
-
-template<> EIGEN_STRONG_INLINE int predux<Packet4i>(const Packet4i& a)
-{
-  Packet4i sum;
-  sum = vec_sums(a, p4i_ZERO);
-  sum = vec_sld(sum, p4i_ZERO, 12);
-  return pfirst(sum);
-}
-
-template<> EIGEN_STRONG_INLINE Packet4i preduxp<Packet4i>(const Packet4i* vecs)
-{
-  Packet4i v[4], sum[4];
-
-  // It's easier and faster to transpose then add as columns
-  // Check: http://www.freevec.org/function/matrix_4x4_transpose_floats for explanation
-  // Do the transpose, first set of moves
-  v[0] = vec_mergeh(vecs[0], vecs[2]);
-  v[1] = vec_mergel(vecs[0], vecs[2]);
-  v[2] = vec_mergeh(vecs[1], vecs[3]);
-  v[3] = vec_mergel(vecs[1], vecs[3]);
-  // Get the resulting vectors
-  sum[0] = vec_mergeh(v[0], v[2]);
-  sum[1] = vec_mergel(v[0], v[2]);
-  sum[2] = vec_mergeh(v[1], v[3]);
-  sum[3] = vec_mergel(v[1], v[3]);
-
-  // Now do the summation:
-  // Lines 0+1
-  sum[0] = vec_add(sum[0], sum[1]);
-  // Lines 2+3
-  sum[1] = vec_add(sum[2], sum[3]);
-  // Add the results
-  sum[0] = vec_add(sum[0], sum[1]);
-
-  return sum[0];
-}
-
-// Other reduction functions:
-// mul
-template<> EIGEN_STRONG_INLINE float predux_mul<Packet4f>(const Packet4f& a)
-{
-  Packet4f prod;
-  prod = pmul(a, (Packet4f)vec_sld(a, a, 8));
-  return pfirst(pmul(prod, (Packet4f)vec_sld(prod, prod, 4)));
-}
-
-template<> EIGEN_STRONG_INLINE int predux_mul<Packet4i>(const Packet4i& a)
-{
-  EIGEN_ALIGN16 int aux[4];
-  pstore(aux, a);
-  return aux[0] * aux[1] * aux[2] * aux[3];
-}
-
-// min
-template<> EIGEN_STRONG_INLINE float predux_min<Packet4f>(const Packet4f& a)
-{
-  Packet4f b, res;
-  b = vec_min(a, vec_sld(a, a, 8));
-  res = vec_min(b, vec_sld(b, b, 4));
-  return pfirst(res);
-}
-
-template<> EIGEN_STRONG_INLINE int predux_min<Packet4i>(const Packet4i& a)
-{
-  Packet4i b, res;
-  b = vec_min(a, vec_sld(a, a, 8));
-  res = vec_min(b, vec_sld(b, b, 4));
-  return pfirst(res);
-}
-
-// max
-template<> EIGEN_STRONG_INLINE float predux_max<Packet4f>(const Packet4f& a)
-{
-  Packet4f b, res;
-  b = vec_max(a, vec_sld(a, a, 8));
-  res = vec_max(b, vec_sld(b, b, 4));
-  return pfirst(res);
-}
-
-template<> EIGEN_STRONG_INLINE int predux_max<Packet4i>(const Packet4i& a)
-{
-  Packet4i b, res;
-  b = vec_max(a, vec_sld(a, a, 8));
-  res = vec_max(b, vec_sld(b, b, 4));
-  return pfirst(res);
-}
-
-template<int Offset>
-struct palign_impl<Offset,Packet4f>
-{
-  static EIGEN_STRONG_INLINE void run(Packet4f& first, const Packet4f& second)
-  {
-    if (Offset!=0)
-      first = vec_sld(first, second, Offset*4);
-  }
-};
-
-template<int Offset>
-struct palign_impl<Offset,Packet4i>
-{
-  static EIGEN_STRONG_INLINE void run(Packet4i& first, const Packet4i& second)
-  {
-    if (Offset!=0)
-      first = vec_sld(first, second, Offset*4);
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_PACKET_MATH_ALTIVEC_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/arch/NEON/Complex.h b/vendor/eigen-3.1.91/Eigen/src/Core/arch/NEON/Complex.h
deleted file mode 100644
index 795b4be..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/arch/NEON/Complex.h
+++ /dev/null
@@ -1,259 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_COMPLEX_NEON_H
-#define EIGEN_COMPLEX_NEON_H
-
-namespace Eigen {
-
-namespace internal {
-
-static uint32x4_t p4ui_CONJ_XOR = EIGEN_INIT_NEON_PACKET4(0x00000000, 0x80000000, 0x00000000, 0x80000000);
-static uint32x2_t p2ui_CONJ_XOR = EIGEN_INIT_NEON_PACKET2(0x00000000, 0x80000000);
-
-//---------- float ----------
-struct Packet2cf
-{
-  EIGEN_STRONG_INLINE Packet2cf() {}
-  EIGEN_STRONG_INLINE explicit Packet2cf(const Packet4f& a) : v(a) {}
-  Packet4f  v;
-};
-
-template<> struct packet_traits<std::complex<float> >  : default_packet_traits
-{
-  typedef Packet2cf type;
-  enum {
-    Vectorizable = 1,
-    AlignedOnScalar = 1,
-    size = 2,
-
-    HasAdd    = 1,
-    HasSub    = 1,
-    HasMul    = 1,
-    HasDiv    = 1,
-    HasNegate = 1,
-    HasAbs    = 0,
-    HasAbs2   = 0,
-    HasMin    = 0,
-    HasMax    = 0,
-    HasSetLinear = 0
-  };
-};
-
-template<> struct unpacket_traits<Packet2cf> { typedef std::complex<float> type; enum {size=2}; };
-
-template<> EIGEN_STRONG_INLINE Packet2cf pset1<Packet2cf>(const std::complex<float>&  from)
-{
-  float32x2_t r64;
-  r64 = vld1_f32((float *)&from);
-
-  return Packet2cf(vcombine_f32(r64, r64));
-}
-
-template<> EIGEN_STRONG_INLINE Packet2cf padd<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(padd<Packet4f>(a.v,b.v)); }
-template<> EIGEN_STRONG_INLINE Packet2cf psub<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(psub<Packet4f>(a.v,b.v)); }
-template<> EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf& a) { return Packet2cf(pnegate<Packet4f>(a.v)); }
-template<> EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf& a)
-{
-  Packet4ui b = vreinterpretq_u32_f32(a.v);
-  return Packet2cf(vreinterpretq_f32_u32(veorq_u32(b, p4ui_CONJ_XOR)));
-}
-
-template<> EIGEN_STRONG_INLINE Packet2cf pmul<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
-{
-  Packet4f v1, v2;
-  float32x2_t a_lo, a_hi;
-
-  // Get the real values of a | a1_re | a1_re | a2_re | a2_re |
-  v1 = vcombine_f32(vdup_lane_f32(vget_low_f32(a.v), 0), vdup_lane_f32(vget_high_f32(a.v), 0));
-  // Get the real values of a | a1_im | a1_im | a2_im | a2_im |
-  v2 = vcombine_f32(vdup_lane_f32(vget_low_f32(a.v), 1), vdup_lane_f32(vget_high_f32(a.v), 1));
-  // Multiply the real a with b
-  v1 = vmulq_f32(v1, b.v);
-  // Multiply the imag a with b
-  v2 = vmulq_f32(v2, b.v);
-  // Conjugate v2 
-  v2 = vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(v2), p4ui_CONJ_XOR));
-  // Swap real/imag elements in v2.
-  a_lo = vrev64_f32(vget_low_f32(v2));
-  a_hi = vrev64_f32(vget_high_f32(v2));
-  v2 = vcombine_f32(a_lo, a_hi);
-  // Add and return the result
-  return Packet2cf(vaddq_f32(v1, v2));
-}
-
-template<> EIGEN_STRONG_INLINE Packet2cf pand   <Packet2cf>(const Packet2cf& a, const Packet2cf& b)
-{
-  return Packet2cf(vreinterpretq_f32_u32(vorrq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
-}
-template<> EIGEN_STRONG_INLINE Packet2cf por    <Packet2cf>(const Packet2cf& a, const Packet2cf& b)
-{
-  return Packet2cf(vreinterpretq_f32_u32(vorrq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
-}
-template<> EIGEN_STRONG_INLINE Packet2cf pxor   <Packet2cf>(const Packet2cf& a, const Packet2cf& b)
-{
-  return Packet2cf(vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
-}
-template<> EIGEN_STRONG_INLINE Packet2cf pandnot<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
-{
-  return Packet2cf(vreinterpretq_f32_u32(vbicq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
-}
-
-template<> EIGEN_STRONG_INLINE Packet2cf pload<Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet2cf(pload<Packet4f>((const float*)from)); }
-template<> EIGEN_STRONG_INLINE Packet2cf ploadu<Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_UNALIGNED_LOAD return Packet2cf(ploadu<Packet4f>((const float*)from)); }
-
-template<> EIGEN_STRONG_INLINE Packet2cf ploaddup<Packet2cf>(const std::complex<float>* from) { return pset1<Packet2cf>(*from); }
-
-template<> EIGEN_STRONG_INLINE void pstore <std::complex<float> >(std::complex<float> *   to, const Packet2cf& from) { EIGEN_DEBUG_ALIGNED_STORE pstore((float*)to, from.v); }
-template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<float> >(std::complex<float> *   to, const Packet2cf& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu((float*)to, from.v); }
-
-template<> EIGEN_STRONG_INLINE void prefetch<std::complex<float> >(const std::complex<float> *   addr) { __pld((float *)addr); }
-
-template<> EIGEN_STRONG_INLINE std::complex<float>  pfirst<Packet2cf>(const Packet2cf& a)
-{
-  std::complex<float> EIGEN_ALIGN16 x[2];
-  vst1q_f32((float *)x, a.v);
-  return x[0];
-}
-
-template<> EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf& a)
-{
-  float32x2_t a_lo, a_hi;
-  Packet4f a_r128;
-
-  a_lo = vget_low_f32(a.v);
-  a_hi = vget_high_f32(a.v);
-  a_r128 = vcombine_f32(a_hi, a_lo);
-
-  return Packet2cf(a_r128);
-}
-
-template<> EIGEN_STRONG_INLINE Packet2cf pcplxflip<Packet2cf>(const Packet2cf& a)
-{
-  return Packet2cf(vrev64q_f32(a.v));
-}
-
-template<> EIGEN_STRONG_INLINE std::complex<float> predux<Packet2cf>(const Packet2cf& a)
-{
-  float32x2_t a1, a2;
-  std::complex<float> s;
-
-  a1 = vget_low_f32(a.v);
-  a2 = vget_high_f32(a.v);
-  a2 = vadd_f32(a1, a2);
-  vst1_f32((float *)&s, a2);
-
-  return s;
-}
-
-template<> EIGEN_STRONG_INLINE Packet2cf preduxp<Packet2cf>(const Packet2cf* vecs)
-{
-  Packet4f sum1, sum2, sum;
-
-  // Add the first two 64-bit float32x2_t of vecs[0]
-  sum1 = vcombine_f32(vget_low_f32(vecs[0].v), vget_low_f32(vecs[1].v));
-  sum2 = vcombine_f32(vget_high_f32(vecs[0].v), vget_high_f32(vecs[1].v));
-  sum = vaddq_f32(sum1, sum2);
-
-  return Packet2cf(sum);
-}
-
-template<> EIGEN_STRONG_INLINE std::complex<float> predux_mul<Packet2cf>(const Packet2cf& a)
-{
-  float32x2_t a1, a2, v1, v2, prod;
-  std::complex<float> s;
-
-  a1 = vget_low_f32(a.v);
-  a2 = vget_high_f32(a.v);
-   // Get the real values of a | a1_re | a1_re | a2_re | a2_re |
-  v1 = vdup_lane_f32(a1, 0);
-  // Get the real values of a | a1_im | a1_im | a2_im | a2_im |
-  v2 = vdup_lane_f32(a1, 1);
-  // Multiply the real a with b
-  v1 = vmul_f32(v1, a2);
-  // Multiply the imag a with b
-  v2 = vmul_f32(v2, a2);
-  // Conjugate v2 
-  v2 = vreinterpret_f32_u32(veor_u32(vreinterpret_u32_f32(v2), p2ui_CONJ_XOR));
-  // Swap real/imag elements in v2.
-  v2 = vrev64_f32(v2);
-  // Add v1, v2
-  prod = vadd_f32(v1, v2);
-
-  vst1_f32((float *)&s, prod);
-
-  return s;
-}
-
-template<int Offset>
-struct palign_impl<Offset,Packet2cf>
-{
-  EIGEN_STRONG_INLINE static void run(Packet2cf& first, const Packet2cf& second)
-  {
-    if (Offset==1)
-    {
-      first.v = vextq_f32(first.v, second.v, 2);
-    }
-  }
-};
-
-template<> struct conj_helper<Packet2cf, Packet2cf, false,true>
-{
-  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
-  { return padd(pmul(x,y),c); }
-
-  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
-  {
-    return internal::pmul(a, pconj(b));
-  }
-};
-
-template<> struct conj_helper<Packet2cf, Packet2cf, true,false>
-{
-  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
-  { return padd(pmul(x,y),c); }
-
-  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
-  {
-    return internal::pmul(pconj(a), b);
-  }
-};
-
-template<> struct conj_helper<Packet2cf, Packet2cf, true,true>
-{
-  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
-  { return padd(pmul(x,y),c); }
-
-  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
-  {
-    return pconj(internal::pmul(a, b));
-  }
-};
-
-template<> EIGEN_STRONG_INLINE Packet2cf pdiv<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
-{
-  // TODO optimize it for AltiVec
-  Packet2cf res = conj_helper<Packet2cf,Packet2cf,false,true>().pmul(a,b);
-  Packet4f s, rev_s;
-  float32x2_t a_lo, a_hi;
-
-  // this computes the norm
-  s = vmulq_f32(b.v, b.v);
-  a_lo = vrev64_f32(vget_low_f32(s));
-  a_hi = vrev64_f32(vget_high_f32(s));
-  rev_s = vcombine_f32(a_lo, a_hi);
-
-  return Packet2cf(pdiv(res.v, vaddq_f32(s,rev_s)));
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_COMPLEX_NEON_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/arch/NEON/PacketMath.h b/vendor/eigen-3.1.91/Eigen/src/Core/arch/NEON/PacketMath.h
deleted file mode 100644
index 2662e2e..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/arch/NEON/PacketMath.h
+++ /dev/null
@@ -1,407 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2010 Konstantinos Margaritis <markos at codex.gr>
-// Heavily based on Gael's SSE version.
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_PACKET_MATH_NEON_H
-#define EIGEN_PACKET_MATH_NEON_H
-
-namespace Eigen {
-
-namespace internal {
-
-#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
-#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8
-#endif
-
-// FIXME NEON has 16 quad registers, but since the current register allocator
-// is so bad, it is much better to reduce it to 8
-#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
-#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 8
-#endif
-
-typedef float32x4_t Packet4f;
-typedef int32x4_t   Packet4i;
-typedef uint32x4_t  Packet4ui;
-
-#define _EIGEN_DECLARE_CONST_Packet4f(NAME,X) \
-  const Packet4f p4f_##NAME = pset1<Packet4f>(X)
-
-#define _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(NAME,X) \
-  const Packet4f p4f_##NAME = vreinterpretq_f32_u32(pset1<int>(X))
-
-#define _EIGEN_DECLARE_CONST_Packet4i(NAME,X) \
-  const Packet4i p4i_##NAME = pset1<Packet4i>(X)
-
-#if defined(__llvm__) && !defined(__clang__)
-  //Special treatment for Apple's llvm-gcc, its NEON packet types are unions
-  #define EIGEN_INIT_NEON_PACKET2(X, Y)       {{X, Y}}
-  #define EIGEN_INIT_NEON_PACKET4(X, Y, Z, W) {{X, Y, Z, W}}
-#else
-  //Default initializer for packets
-  #define EIGEN_INIT_NEON_PACKET2(X, Y)       {X, Y}
-  #define EIGEN_INIT_NEON_PACKET4(X, Y, Z, W) {X, Y, Z, W}
-#endif
-    
-#ifndef __pld
-#define __pld(x) asm volatile ( "   pld [%[addr]]\n" :: [addr] "r" (x) : "cc" );
-#endif
-
-template<> struct packet_traits<float>  : default_packet_traits
-{
-  typedef Packet4f type;
-  enum {
-    Vectorizable = 1,
-    AlignedOnScalar = 1,
-    size = 4,
-   
-    HasDiv  = 1,
-    // FIXME check the Has*
-    HasSin  = 0,
-    HasCos  = 0,
-    HasLog  = 0,
-    HasExp  = 0,
-    HasSqrt = 0
-  };
-};
-template<> struct packet_traits<int>    : default_packet_traits
-{
-  typedef Packet4i type;
-  enum {
-    Vectorizable = 1,
-    AlignedOnScalar = 1,
-    size=4
-    // FIXME check the Has*
-  };
-};
-
-#if EIGEN_GNUC_AT_MOST(4,4) && !defined(__llvm__)
-// workaround gcc 4.2, 4.3 and 4.4 compilatin issue
-EIGEN_STRONG_INLINE float32x4_t vld1q_f32(const float* x) { return ::vld1q_f32((const float32_t*)x); }
-EIGEN_STRONG_INLINE float32x2_t vld1_f32 (const float* x) { return ::vld1_f32 ((const float32_t*)x); }
-EIGEN_STRONG_INLINE void        vst1q_f32(float* to, float32x4_t from) { ::vst1q_f32((float32_t*)to,from); }
-EIGEN_STRONG_INLINE void        vst1_f32 (float* to, float32x2_t from) { ::vst1_f32 ((float32_t*)to,from); }
-#endif
-
-template<> struct unpacket_traits<Packet4f> { typedef float  type; enum {size=4}; };
-template<> struct unpacket_traits<Packet4i> { typedef int    type; enum {size=4}; };
-
-template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float&  from) { return vdupq_n_f32(from); }
-template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int&    from)   { return vdupq_n_s32(from); }
-
-template<> EIGEN_STRONG_INLINE Packet4f plset<float>(const float& a)
-{
-  Packet4f countdown = EIGEN_INIT_NEON_PACKET4(0, 1, 2, 3);
-  return vaddq_f32(pset1<Packet4f>(a), countdown);
-}
-template<> EIGEN_STRONG_INLINE Packet4i plset<int>(const int& a)
-{
-  Packet4i countdown = EIGEN_INIT_NEON_PACKET4(0, 1, 2, 3);
-  return vaddq_s32(pset1<Packet4i>(a), countdown);
-}
-
-template<> EIGEN_STRONG_INLINE Packet4f padd<Packet4f>(const Packet4f& a, const Packet4f& b) { return vaddq_f32(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i padd<Packet4i>(const Packet4i& a, const Packet4i& b) { return vaddq_s32(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f psub<Packet4f>(const Packet4f& a, const Packet4f& b) { return vsubq_f32(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i psub<Packet4i>(const Packet4i& a, const Packet4i& b) { return vsubq_s32(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pnegate(const Packet4f& a) { return vnegq_f32(a); }
-template<> EIGEN_STRONG_INLINE Packet4i pnegate(const Packet4i& a) { return vnegq_s32(a); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pmul<Packet4f>(const Packet4f& a, const Packet4f& b) { return vmulq_f32(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i pmul<Packet4i>(const Packet4i& a, const Packet4i& b) { return vmulq_s32(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pdiv<Packet4f>(const Packet4f& a, const Packet4f& b)
-{
-  Packet4f inv, restep, div;
-
-  // NEON does not offer a divide instruction, we have to do a reciprocal approximation
-  // However NEON in contrast to other SIMD engines (AltiVec/SSE), offers
-  // a reciprocal estimate AND a reciprocal step -which saves a few instructions
-  // vrecpeq_f32() returns an estimate to 1/b, which we will finetune with
-  // Newton-Raphson and vrecpsq_f32()
-  inv = vrecpeq_f32(b);
-
-  // This returns a differential, by which we will have to multiply inv to get a better
-  // approximation of 1/b.
-  restep = vrecpsq_f32(b, inv);
-  inv = vmulq_f32(restep, inv);
-
-  // Finally, multiply a by 1/b and get the wanted result of the division.
-  div = vmulq_f32(a, inv);
-
-  return div;
-}
-template<> EIGEN_STRONG_INLINE Packet4i pdiv<Packet4i>(const Packet4i& /*a*/, const Packet4i& /*b*/)
-{ eigen_assert(false && "packet integer division are not supported by NEON");
-  return pset1<Packet4i>(0);
-}
-
-// for some weird raisons, it has to be overloaded for packet of integers
-template<> EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c) { return vmlaq_f32(c,a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) { return vmlaq_s32(c,a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pmin<Packet4f>(const Packet4f& a, const Packet4f& b) { return vminq_f32(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i pmin<Packet4i>(const Packet4i& a, const Packet4i& b) { return vminq_s32(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pmax<Packet4f>(const Packet4f& a, const Packet4f& b) { return vmaxq_f32(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i pmax<Packet4i>(const Packet4i& a, const Packet4i& b) { return vmaxq_s32(a,b); }
-
-// Logical Operations are not supported for float, so we have to reinterpret casts using NEON intrinsics
-template<> EIGEN_STRONG_INLINE Packet4f pand<Packet4f>(const Packet4f& a, const Packet4f& b)
-{
-  return vreinterpretq_f32_u32(vandq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
-}
-template<> EIGEN_STRONG_INLINE Packet4i pand<Packet4i>(const Packet4i& a, const Packet4i& b) { return vandq_s32(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f por<Packet4f>(const Packet4f& a, const Packet4f& b)
-{
-  return vreinterpretq_f32_u32(vorrq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
-}
-template<> EIGEN_STRONG_INLINE Packet4i por<Packet4i>(const Packet4i& a, const Packet4i& b) { return vorrq_s32(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pxor<Packet4f>(const Packet4f& a, const Packet4f& b)
-{
-  return vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
-}
-template<> EIGEN_STRONG_INLINE Packet4i pxor<Packet4i>(const Packet4i& a, const Packet4i& b) { return veorq_s32(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pandnot<Packet4f>(const Packet4f& a, const Packet4f& b)
-{
-  return vreinterpretq_f32_u32(vbicq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
-}
-template<> EIGEN_STRONG_INLINE Packet4i pandnot<Packet4i>(const Packet4i& a, const Packet4i& b) { return vbicq_s32(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pload<Packet4f>(const float* from) { EIGEN_DEBUG_ALIGNED_LOAD return vld1q_f32(from); }
-template<> EIGEN_STRONG_INLINE Packet4i pload<Packet4i>(const int*   from) { EIGEN_DEBUG_ALIGNED_LOAD return vld1q_s32(from); }
-
-template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float* from) { EIGEN_DEBUG_UNALIGNED_LOAD return vld1q_f32(from); }
-template<> EIGEN_STRONG_INLINE Packet4i ploadu<Packet4i>(const int* from)   { EIGEN_DEBUG_UNALIGNED_LOAD return vld1q_s32(from); }
-
-template<> EIGEN_STRONG_INLINE Packet4f ploaddup<Packet4f>(const float*   from)
-{
-  float32x2_t lo, hi;
-  lo = vdup_n_f32(*from);
-  hi = vdup_n_f32(*(from+1));
-  return vcombine_f32(lo, hi);
-}
-template<> EIGEN_STRONG_INLINE Packet4i ploaddup<Packet4i>(const int*     from)
-{
-  int32x2_t lo, hi;
-  lo = vdup_n_s32(*from);
-  hi = vdup_n_s32(*(from+1));
-  return vcombine_s32(lo, hi);
-}
-
-template<> EIGEN_STRONG_INLINE void pstore<float>(float*   to, const Packet4f& from) { EIGEN_DEBUG_ALIGNED_STORE vst1q_f32(to, from); }
-template<> EIGEN_STRONG_INLINE void pstore<int>(int*       to, const Packet4i& from) { EIGEN_DEBUG_ALIGNED_STORE vst1q_s32(to, from); }
-
-template<> EIGEN_STRONG_INLINE void pstoreu<float>(float*  to, const Packet4f& from) { EIGEN_DEBUG_UNALIGNED_STORE vst1q_f32(to, from); }
-template<> EIGEN_STRONG_INLINE void pstoreu<int>(int*      to, const Packet4i& from) { EIGEN_DEBUG_UNALIGNED_STORE vst1q_s32(to, from); }
-
-template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) { __pld(addr); }
-template<> EIGEN_STRONG_INLINE void prefetch<int>(const int*     addr) { __pld(addr); }
-
-// FIXME only store the 2 first elements ?
-template<> EIGEN_STRONG_INLINE float  pfirst<Packet4f>(const Packet4f& a) { float EIGEN_ALIGN16 x[4]; vst1q_f32(x, a); return x[0]; }
-template<> EIGEN_STRONG_INLINE int    pfirst<Packet4i>(const Packet4i& a) { int   EIGEN_ALIGN16 x[4]; vst1q_s32(x, a); return x[0]; }
-
-template<> EIGEN_STRONG_INLINE Packet4f preverse(const Packet4f& a) {
-  float32x2_t a_lo, a_hi;
-  Packet4f a_r64;
-
-  a_r64 = vrev64q_f32(a);
-  a_lo = vget_low_f32(a_r64);
-  a_hi = vget_high_f32(a_r64);
-  return vcombine_f32(a_hi, a_lo);
-}
-template<> EIGEN_STRONG_INLINE Packet4i preverse(const Packet4i& a) {
-  int32x2_t a_lo, a_hi;
-  Packet4i a_r64;
-
-  a_r64 = vrev64q_s32(a);
-  a_lo = vget_low_s32(a_r64);
-  a_hi = vget_high_s32(a_r64);
-  return vcombine_s32(a_hi, a_lo);
-}
-template<> EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f& a) { return vabsq_f32(a); }
-template<> EIGEN_STRONG_INLINE Packet4i pabs(const Packet4i& a) { return vabsq_s32(a); }
-
-template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
-{
-  float32x2_t a_lo, a_hi, sum;
-
-  a_lo = vget_low_f32(a);
-  a_hi = vget_high_f32(a);
-  sum = vpadd_f32(a_lo, a_hi);
-  sum = vpadd_f32(sum, sum);
-  return vget_lane_f32(sum, 0);
-}
-
-template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
-{
-  float32x4x2_t vtrn1, vtrn2, res1, res2;
-  Packet4f sum1, sum2, sum;
-
-  // NEON zip performs interleaving of the supplied vectors.
-  // We perform two interleaves in a row to acquire the transposed vector
-  vtrn1 = vzipq_f32(vecs[0], vecs[2]);
-  vtrn2 = vzipq_f32(vecs[1], vecs[3]);
-  res1 = vzipq_f32(vtrn1.val[0], vtrn2.val[0]);
-  res2 = vzipq_f32(vtrn1.val[1], vtrn2.val[1]);
-
-  // Do the addition of the resulting vectors
-  sum1 = vaddq_f32(res1.val[0], res1.val[1]);
-  sum2 = vaddq_f32(res2.val[0], res2.val[1]);
-  sum = vaddq_f32(sum1, sum2);
-
-  return sum;
-}
-
-template<> EIGEN_STRONG_INLINE int predux<Packet4i>(const Packet4i& a)
-{
-  int32x2_t a_lo, a_hi, sum;
-
-  a_lo = vget_low_s32(a);
-  a_hi = vget_high_s32(a);
-  sum = vpadd_s32(a_lo, a_hi);
-  sum = vpadd_s32(sum, sum);
-  return vget_lane_s32(sum, 0);
-}
-
-template<> EIGEN_STRONG_INLINE Packet4i preduxp<Packet4i>(const Packet4i* vecs)
-{
-  int32x4x2_t vtrn1, vtrn2, res1, res2;
-  Packet4i sum1, sum2, sum;
-
-  // NEON zip performs interleaving of the supplied vectors.
-  // We perform two interleaves in a row to acquire the transposed vector
-  vtrn1 = vzipq_s32(vecs[0], vecs[2]);
-  vtrn2 = vzipq_s32(vecs[1], vecs[3]);
-  res1 = vzipq_s32(vtrn1.val[0], vtrn2.val[0]);
-  res2 = vzipq_s32(vtrn1.val[1], vtrn2.val[1]);
-
-  // Do the addition of the resulting vectors
-  sum1 = vaddq_s32(res1.val[0], res1.val[1]);
-  sum2 = vaddq_s32(res2.val[0], res2.val[1]);
-  sum = vaddq_s32(sum1, sum2);
-
-  return sum;
-}
-
-// Other reduction functions:
-// mul
-template<> EIGEN_STRONG_INLINE float predux_mul<Packet4f>(const Packet4f& a)
-{
-  float32x2_t a_lo, a_hi, prod;
-
-  // Get a_lo = |a1|a2| and a_hi = |a3|a4|
-  a_lo = vget_low_f32(a);
-  a_hi = vget_high_f32(a);
-  // Get the product of a_lo * a_hi -> |a1*a3|a2*a4|
-  prod = vmul_f32(a_lo, a_hi);
-  // Multiply prod with its swapped value |a2*a4|a1*a3|
-  prod = vmul_f32(prod, vrev64_f32(prod));
-
-  return vget_lane_f32(prod, 0);
-}
-template<> EIGEN_STRONG_INLINE int predux_mul<Packet4i>(const Packet4i& a)
-{
-  int32x2_t a_lo, a_hi, prod;
-
-  // Get a_lo = |a1|a2| and a_hi = |a3|a4|
-  a_lo = vget_low_s32(a);
-  a_hi = vget_high_s32(a);
-  // Get the product of a_lo * a_hi -> |a1*a3|a2*a4|
-  prod = vmul_s32(a_lo, a_hi);
-  // Multiply prod with its swapped value |a2*a4|a1*a3|
-  prod = vmul_s32(prod, vrev64_s32(prod));
-
-  return vget_lane_s32(prod, 0);
-}
-
-// min
-template<> EIGEN_STRONG_INLINE float predux_min<Packet4f>(const Packet4f& a)
-{
-  float32x2_t a_lo, a_hi, min;
-
-  a_lo = vget_low_f32(a);
-  a_hi = vget_high_f32(a);
-  min = vpmin_f32(a_lo, a_hi);
-  min = vpmin_f32(min, min);
-
-  return vget_lane_f32(min, 0);
-}
-
-template<> EIGEN_STRONG_INLINE int predux_min<Packet4i>(const Packet4i& a)
-{
-  int32x2_t a_lo, a_hi, min;
-
-  a_lo = vget_low_s32(a);
-  a_hi = vget_high_s32(a);
-  min = vpmin_s32(a_lo, a_hi);
-  min = vpmin_s32(min, min);
-  
-  return vget_lane_s32(min, 0);
-}
-
-// max
-template<> EIGEN_STRONG_INLINE float predux_max<Packet4f>(const Packet4f& a)
-{
-  float32x2_t a_lo, a_hi, max;
-
-  a_lo = vget_low_f32(a);
-  a_hi = vget_high_f32(a);
-  max = vpmax_f32(a_lo, a_hi);
-  max = vpmax_f32(max, max);
-
-  return vget_lane_f32(max, 0);
-}
-
-template<> EIGEN_STRONG_INLINE int predux_max<Packet4i>(const Packet4i& a)
-{
-  int32x2_t a_lo, a_hi, max;
-
-  a_lo = vget_low_s32(a);
-  a_hi = vget_high_s32(a);
-  max = vpmax_s32(a_lo, a_hi);
-
-  return vget_lane_s32(max, 0);
-}
-
-// this PALIGN_NEON business is to work around a bug in LLVM Clang 3.0 causing incorrect compilation errors,
-// see bug 347 and this LLVM bug: http://llvm.org/bugs/show_bug.cgi?id=11074
-#define PALIGN_NEON(Offset,Type,Command) \
-template<>\
-struct palign_impl<Offset,Type>\
-{\
-    EIGEN_STRONG_INLINE static void run(Type& first, const Type& second)\
-    {\
-        if (Offset!=0)\
-            first = Command(first, second, Offset);\
-    }\
-};\
-
-PALIGN_NEON(0,Packet4f,vextq_f32)
-PALIGN_NEON(1,Packet4f,vextq_f32)
-PALIGN_NEON(2,Packet4f,vextq_f32)
-PALIGN_NEON(3,Packet4f,vextq_f32)
-PALIGN_NEON(0,Packet4i,vextq_s32)
-PALIGN_NEON(1,Packet4i,vextq_s32)
-PALIGN_NEON(2,Packet4i,vextq_s32)
-PALIGN_NEON(3,Packet4i,vextq_s32)
-    
-#undef PALIGN_NEON
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_PACKET_MATH_NEON_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/arch/SSE/Complex.h b/vendor/eigen-3.1.91/Eigen/src/Core/arch/SSE/Complex.h
deleted file mode 100644
index bd76d75..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/arch/SSE/Complex.h
+++ /dev/null
@@ -1,442 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_COMPLEX_SSE_H
-#define EIGEN_COMPLEX_SSE_H
-
-namespace Eigen {
-
-namespace internal {
-
-//---------- float ----------
-struct Packet2cf
-{
-  EIGEN_STRONG_INLINE Packet2cf() {}
-  EIGEN_STRONG_INLINE explicit Packet2cf(const __m128& a) : v(a) {}
-  __m128  v;
-};
-
-template<> struct packet_traits<std::complex<float> >  : default_packet_traits
-{
-  typedef Packet2cf type;
-  enum {
-    Vectorizable = 1,
-    AlignedOnScalar = 1,
-    size = 2,
-
-    HasAdd    = 1,
-    HasSub    = 1,
-    HasMul    = 1,
-    HasDiv    = 1,
-    HasNegate = 1,
-    HasAbs    = 0,
-    HasAbs2   = 0,
-    HasMin    = 0,
-    HasMax    = 0,
-    HasSetLinear = 0
-  };
-};
-
-template<> struct unpacket_traits<Packet2cf> { typedef std::complex<float> type; enum {size=2}; };
-
-template<> EIGEN_STRONG_INLINE Packet2cf padd<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_add_ps(a.v,b.v)); }
-template<> EIGEN_STRONG_INLINE Packet2cf psub<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_sub_ps(a.v,b.v)); }
-template<> EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf& a)
-{
-  const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x80000000,0x80000000,0x80000000,0x80000000));
-  return Packet2cf(_mm_xor_ps(a.v,mask));
-}
-template<> EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf& a)
-{
-  const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
-  return Packet2cf(_mm_xor_ps(a.v,mask));
-}
-
-template<> EIGEN_STRONG_INLINE Packet2cf pmul<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
-{
-  // TODO optimize it for SSE3 and 4
-  #ifdef EIGEN_VECTORIZE_SSE3
-  return Packet2cf(_mm_addsub_ps(_mm_mul_ps(_mm_moveldup_ps(a.v), b.v),
-                                 _mm_mul_ps(_mm_movehdup_ps(a.v),
-                                            vec4f_swizzle1(b.v, 1, 0, 3, 2))));
-//   return Packet2cf(_mm_addsub_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v),
-//                                  _mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
-//                                             vec4f_swizzle1(b.v, 1, 0, 3, 2))));
-  #else
-  const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x80000000,0x00000000,0x80000000,0x00000000));
-  return Packet2cf(_mm_add_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v),
-                              _mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
-                                                    vec4f_swizzle1(b.v, 1, 0, 3, 2)), mask)));
-  #endif
-}
-
-template<> EIGEN_STRONG_INLINE Packet2cf pand   <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_and_ps(a.v,b.v)); }
-template<> EIGEN_STRONG_INLINE Packet2cf por    <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_or_ps(a.v,b.v)); }
-template<> EIGEN_STRONG_INLINE Packet2cf pxor   <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_xor_ps(a.v,b.v)); }
-template<> EIGEN_STRONG_INLINE Packet2cf pandnot<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_andnot_ps(a.v,b.v)); }
-
-template<> EIGEN_STRONG_INLINE Packet2cf pload <Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet2cf(pload<Packet4f>(&real_ref(*from))); }
-template<> EIGEN_STRONG_INLINE Packet2cf ploadu<Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_UNALIGNED_LOAD return Packet2cf(ploadu<Packet4f>(&real_ref(*from))); }
-
-template<> EIGEN_STRONG_INLINE Packet2cf pset1<Packet2cf>(const std::complex<float>&  from)
-{
-  Packet2cf res;
-#if EIGEN_GNUC_AT_MOST(4,2)
-  // Workaround annoying "may be used uninitialized in this function" warning with gcc 4.2
-  res.v = _mm_loadl_pi(_mm_set1_ps(0.0f), reinterpret_cast<const __m64*>(&from));
-#elif EIGEN_GNUC_AT_LEAST(4,6)
-  // Suppress annoying "may be used uninitialized in this function" warning with gcc >= 4.6
-  #pragma GCC diagnostic push
-  #pragma GCC diagnostic ignored "-Wuninitialized"
-  res.v = _mm_loadl_pi(res.v, (const __m64*)&from);
-  #pragma GCC diagnostic pop
-#else
-  res.v = _mm_loadl_pi(res.v, (const __m64*)&from);
-#endif
-  return Packet2cf(_mm_movelh_ps(res.v,res.v));
-}
-
-template<> EIGEN_STRONG_INLINE Packet2cf ploaddup<Packet2cf>(const std::complex<float>* from) { return pset1<Packet2cf>(*from); }
-
-template<> EIGEN_STRONG_INLINE void pstore <std::complex<float> >(std::complex<float> *   to, const Packet2cf& from) { EIGEN_DEBUG_ALIGNED_STORE pstore(&real_ref(*to), from.v); }
-template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<float> >(std::complex<float> *   to, const Packet2cf& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu(&real_ref(*to), from.v); }
-
-template<> EIGEN_STRONG_INLINE void prefetch<std::complex<float> >(const std::complex<float> *   addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
-
-template<> EIGEN_STRONG_INLINE std::complex<float>  pfirst<Packet2cf>(const Packet2cf& a)
-{
-  #if EIGEN_GNUC_AT_MOST(4,3)
-  // Workaround gcc 4.2 ICE - this is not performance wise ideal, but who cares...
-  // This workaround also fix invalid code generation with gcc 4.3
-  EIGEN_ALIGN16 std::complex<float> res[2];
-  _mm_store_ps((float*)res, a.v);
-  return res[0];
-  #else
-  std::complex<float> res;
-  _mm_storel_pi((__m64*)&res, a.v);
-  return res;
-  #endif
-}
-
-template<> EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf& a) { return Packet2cf(_mm_castpd_ps(preverse(_mm_castps_pd(a.v)))); }
-
-template<> EIGEN_STRONG_INLINE std::complex<float> predux<Packet2cf>(const Packet2cf& a)
-{
-  return pfirst(Packet2cf(_mm_add_ps(a.v, _mm_movehl_ps(a.v,a.v))));
-}
-
-template<> EIGEN_STRONG_INLINE Packet2cf preduxp<Packet2cf>(const Packet2cf* vecs)
-{
-  return Packet2cf(_mm_add_ps(_mm_movelh_ps(vecs[0].v,vecs[1].v), _mm_movehl_ps(vecs[1].v,vecs[0].v)));
-}
-
-template<> EIGEN_STRONG_INLINE std::complex<float> predux_mul<Packet2cf>(const Packet2cf& a)
-{
-  return pfirst(pmul(a, Packet2cf(_mm_movehl_ps(a.v,a.v))));
-}
-
-template<int Offset>
-struct palign_impl<Offset,Packet2cf>
-{
-  static EIGEN_STRONG_INLINE void run(Packet2cf& first, const Packet2cf& second)
-  {
-    if (Offset==1)
-    {
-      first.v = _mm_movehl_ps(first.v, first.v);
-      first.v = _mm_movelh_ps(first.v, second.v);
-    }
-  }
-};
-
-template<> struct conj_helper<Packet2cf, Packet2cf, false,true>
-{
-  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
-  { return padd(pmul(x,y),c); }
-
-  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
-  {
-    #ifdef EIGEN_VECTORIZE_SSE3
-    return internal::pmul(a, pconj(b));
-    #else
-    const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
-    return Packet2cf(_mm_add_ps(_mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v), mask),
-                                _mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
-                                           vec4f_swizzle1(b.v, 1, 0, 3, 2))));
-    #endif
-  }
-};
-
-template<> struct conj_helper<Packet2cf, Packet2cf, true,false>
-{
-  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
-  { return padd(pmul(x,y),c); }
-
-  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
-  {
-    #ifdef EIGEN_VECTORIZE_SSE3
-    return internal::pmul(pconj(a), b);
-    #else
-    const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
-    return Packet2cf(_mm_add_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v),
-                                _mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
-                                                      vec4f_swizzle1(b.v, 1, 0, 3, 2)), mask)));
-    #endif
-  }
-};
-
-template<> struct conj_helper<Packet2cf, Packet2cf, true,true>
-{
-  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
-  { return padd(pmul(x,y),c); }
-
-  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
-  {
-    #ifdef EIGEN_VECTORIZE_SSE3
-    return pconj(internal::pmul(a, b));
-    #else
-    const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
-    return Packet2cf(_mm_sub_ps(_mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v), mask),
-                                _mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
-                                           vec4f_swizzle1(b.v, 1, 0, 3, 2))));
-    #endif
-  }
-};
-
-template<> struct conj_helper<Packet4f, Packet2cf, false,false>
-{
-  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet4f& x, const Packet2cf& y, const Packet2cf& c) const
-  { return padd(c, pmul(x,y)); }
-
-  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet4f& x, const Packet2cf& y) const
-  { return Packet2cf(Eigen::internal::pmul(x, y.v)); }
-};
-
-template<> struct conj_helper<Packet2cf, Packet4f, false,false>
-{
-  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet4f& y, const Packet2cf& c) const
-  { return padd(c, pmul(x,y)); }
-
-  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& x, const Packet4f& y) const
-  { return Packet2cf(Eigen::internal::pmul(x.v, y)); }
-};
-
-template<> EIGEN_STRONG_INLINE Packet2cf pdiv<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
-{
-  // TODO optimize it for SSE3 and 4
-  Packet2cf res = conj_helper<Packet2cf,Packet2cf,false,true>().pmul(a,b);
-  __m128 s = _mm_mul_ps(b.v,b.v);
-  return Packet2cf(_mm_div_ps(res.v,_mm_add_ps(s,_mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(s), 0xb1)))));
-}
-
-EIGEN_STRONG_INLINE Packet2cf pcplxflip/*<Packet2cf>*/(const Packet2cf& x)
-{
-  return Packet2cf(vec4f_swizzle1(x.v, 1, 0, 3, 2));
-}
-
-
-//---------- double ----------
-struct Packet1cd
-{
-  EIGEN_STRONG_INLINE Packet1cd() {}
-  EIGEN_STRONG_INLINE explicit Packet1cd(const __m128d& a) : v(a) {}
-  __m128d  v;
-};
-
-template<> struct packet_traits<std::complex<double> >  : default_packet_traits
-{
-  typedef Packet1cd type;
-  enum {
-    Vectorizable = 1,
-    AlignedOnScalar = 0,
-    size = 1,
-
-    HasAdd    = 1,
-    HasSub    = 1,
-    HasMul    = 1,
-    HasDiv    = 1,
-    HasNegate = 1,
-    HasAbs    = 0,
-    HasAbs2   = 0,
-    HasMin    = 0,
-    HasMax    = 0,
-    HasSetLinear = 0
-  };
-};
-
-template<> struct unpacket_traits<Packet1cd> { typedef std::complex<double> type; enum {size=1}; };
-
-template<> EIGEN_STRONG_INLINE Packet1cd padd<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_add_pd(a.v,b.v)); }
-template<> EIGEN_STRONG_INLINE Packet1cd psub<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_sub_pd(a.v,b.v)); }
-template<> EIGEN_STRONG_INLINE Packet1cd pnegate(const Packet1cd& a) { return Packet1cd(pnegate(a.v)); }
-template<> EIGEN_STRONG_INLINE Packet1cd pconj(const Packet1cd& a)
-{
-  const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
-  return Packet1cd(_mm_xor_pd(a.v,mask));
-}
-
-template<> EIGEN_STRONG_INLINE Packet1cd pmul<Packet1cd>(const Packet1cd& a, const Packet1cd& b)
-{
-  // TODO optimize it for SSE3 and 4
-  #ifdef EIGEN_VECTORIZE_SSE3
-  return Packet1cd(_mm_addsub_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v),
-                                 _mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
-                                            vec2d_swizzle1(b.v, 1, 0))));
-  #else
-  const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x0,0x0,0x80000000,0x0));
-  return Packet1cd(_mm_add_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v),
-                              _mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
-                                                    vec2d_swizzle1(b.v, 1, 0)), mask)));
-  #endif
-}
-
-template<> EIGEN_STRONG_INLINE Packet1cd pand   <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_and_pd(a.v,b.v)); }
-template<> EIGEN_STRONG_INLINE Packet1cd por    <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_or_pd(a.v,b.v)); }
-template<> EIGEN_STRONG_INLINE Packet1cd pxor   <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_xor_pd(a.v,b.v)); }
-template<> EIGEN_STRONG_INLINE Packet1cd pandnot<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_andnot_pd(a.v,b.v)); }
-
-// FIXME force unaligned load, this is a temporary fix
-template<> EIGEN_STRONG_INLINE Packet1cd pload <Packet1cd>(const std::complex<double>* from)
-{ EIGEN_DEBUG_ALIGNED_LOAD return Packet1cd(pload<Packet2d>((const double*)from)); }
-template<> EIGEN_STRONG_INLINE Packet1cd ploadu<Packet1cd>(const std::complex<double>* from)
-{ EIGEN_DEBUG_UNALIGNED_LOAD return Packet1cd(ploadu<Packet2d>((const double*)from)); }
-template<> EIGEN_STRONG_INLINE Packet1cd pset1<Packet1cd>(const std::complex<double>&  from)
-{ /* here we really have to use unaligned loads :( */ return ploadu<Packet1cd>(&from); }
-
-template<> EIGEN_STRONG_INLINE Packet1cd ploaddup<Packet1cd>(const std::complex<double>* from) { return pset1<Packet1cd>(*from); }
-
-// FIXME force unaligned store, this is a temporary fix
-template<> EIGEN_STRONG_INLINE void pstore <std::complex<double> >(std::complex<double> *   to, const Packet1cd& from) { EIGEN_DEBUG_ALIGNED_STORE pstore((double*)to, from.v); }
-template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<double> >(std::complex<double> *   to, const Packet1cd& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu((double*)to, from.v); }
-
-template<> EIGEN_STRONG_INLINE void prefetch<std::complex<double> >(const std::complex<double> *   addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
-
-template<> EIGEN_STRONG_INLINE std::complex<double>  pfirst<Packet1cd>(const Packet1cd& a)
-{
-  EIGEN_ALIGN16 double res[2];
-  _mm_store_pd(res, a.v);
-  return std::complex<double>(res[0],res[1]);
-}
-
-template<> EIGEN_STRONG_INLINE Packet1cd preverse(const Packet1cd& a) { return a; }
-
-template<> EIGEN_STRONG_INLINE std::complex<double> predux<Packet1cd>(const Packet1cd& a)
-{
-  return pfirst(a);
-}
-
-template<> EIGEN_STRONG_INLINE Packet1cd preduxp<Packet1cd>(const Packet1cd* vecs)
-{
-  return vecs[0];
-}
-
-template<> EIGEN_STRONG_INLINE std::complex<double> predux_mul<Packet1cd>(const Packet1cd& a)
-{
-  return pfirst(a);
-}
-
-template<int Offset>
-struct palign_impl<Offset,Packet1cd>
-{
-  static EIGEN_STRONG_INLINE void run(Packet1cd& /*first*/, const Packet1cd& /*second*/)
-  {
-    // FIXME is it sure we never have to align a Packet1cd?
-    // Even though a std::complex<double> has 16 bytes, it is not necessarily aligned on a 16 bytes boundary...
-  }
-};
-
-template<> struct conj_helper<Packet1cd, Packet1cd, false,true>
-{
-  EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
-  { return padd(pmul(x,y),c); }
-
-  EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
-  {
-    #ifdef EIGEN_VECTORIZE_SSE3
-    return internal::pmul(a, pconj(b));
-    #else
-    const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
-    return Packet1cd(_mm_add_pd(_mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v), mask),
-                                _mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
-                                           vec2d_swizzle1(b.v, 1, 0))));
-    #endif
-  }
-};
-
-template<> struct conj_helper<Packet1cd, Packet1cd, true,false>
-{
-  EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
-  { return padd(pmul(x,y),c); }
-
-  EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
-  {
-    #ifdef EIGEN_VECTORIZE_SSE3
-    return internal::pmul(pconj(a), b);
-    #else
-    const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
-    return Packet1cd(_mm_add_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v),
-                                _mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
-                                                      vec2d_swizzle1(b.v, 1, 0)), mask)));
-    #endif
-  }
-};
-
-template<> struct conj_helper<Packet1cd, Packet1cd, true,true>
-{
-  EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
-  { return padd(pmul(x,y),c); }
-
-  EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
-  {
-    #ifdef EIGEN_VECTORIZE_SSE3
-    return pconj(internal::pmul(a, b));
-    #else
-    const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
-    return Packet1cd(_mm_sub_pd(_mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v), mask),
-                                _mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
-                                           vec2d_swizzle1(b.v, 1, 0))));
-    #endif
-  }
-};
-
-template<> struct conj_helper<Packet2d, Packet1cd, false,false>
-{
-  EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet2d& x, const Packet1cd& y, const Packet1cd& c) const
-  { return padd(c, pmul(x,y)); }
-
-  EIGEN_STRONG_INLINE Packet1cd pmul(const Packet2d& x, const Packet1cd& y) const
-  { return Packet1cd(Eigen::internal::pmul(x, y.v)); }
-};
-
-template<> struct conj_helper<Packet1cd, Packet2d, false,false>
-{
-  EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet2d& y, const Packet1cd& c) const
-  { return padd(c, pmul(x,y)); }
-
-  EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& x, const Packet2d& y) const
-  { return Packet1cd(Eigen::internal::pmul(x.v, y)); }
-};
-
-template<> EIGEN_STRONG_INLINE Packet1cd pdiv<Packet1cd>(const Packet1cd& a, const Packet1cd& b)
-{
-  // TODO optimize it for SSE3 and 4
-  Packet1cd res = conj_helper<Packet1cd,Packet1cd,false,true>().pmul(a,b);
-  __m128d s = _mm_mul_pd(b.v,b.v);
-  return Packet1cd(_mm_div_pd(res.v, _mm_add_pd(s,_mm_shuffle_pd(s, s, 0x1))));
-}
-
-EIGEN_STRONG_INLINE Packet1cd pcplxflip/*<Packet1cd>*/(const Packet1cd& x)
-{
-  return Packet1cd(preverse(x.v));
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_COMPLEX_SSE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/arch/SSE/MathFunctions.h b/vendor/eigen-3.1.91/Eigen/src/Core/arch/SSE/MathFunctions.h
deleted file mode 100644
index 5ede55f..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/arch/SSE/MathFunctions.h
+++ /dev/null
@@ -1,464 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2007 Julien Pommier
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-/* The sin, cos, exp, and log functions of this file come from
- * Julien Pommier's sse math library: http://gruntthepeon.free.fr/ssemath/
- */
-
-#ifndef EIGEN_MATH_FUNCTIONS_SSE_H
-#define EIGEN_MATH_FUNCTIONS_SSE_H
-
-namespace Eigen {
-
-namespace internal {
-
-template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
-Packet4f plog<Packet4f>(const Packet4f& _x)
-{
-  Packet4f x = _x;
-  _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
-  _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
-  _EIGEN_DECLARE_CONST_Packet4i(0x7f, 0x7f);
-
-  _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(inv_mant_mask, ~0x7f800000);
-
-  /* the smallest non denormalized float number */
-  _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(min_norm_pos,  0x00800000);
-  _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(minus_inf,     0xff800000);//-1.f/0.f);
-  
-  /* natural logarithm computed for 4 simultaneous float
-    return NaN for x <= 0
-  */
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_SQRTHF, 0.707106781186547524f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p0, 7.0376836292E-2f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p1, - 1.1514610310E-1f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p2, 1.1676998740E-1f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p3, - 1.2420140846E-1f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p4, + 1.4249322787E-1f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p5, - 1.6668057665E-1f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p6, + 2.0000714765E-1f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p7, - 2.4999993993E-1f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p8, + 3.3333331174E-1f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_q1, -2.12194440e-4f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_q2, 0.693359375f);
-
-
-  Packet4i emm0;
-
-  Packet4f invalid_mask = _mm_cmplt_ps(x, _mm_setzero_ps());
-  Packet4f iszero_mask = _mm_cmpeq_ps(x, _mm_setzero_ps());
-
-  x = pmax(x, p4f_min_norm_pos);  /* cut off denormalized stuff */
-  emm0 = _mm_srli_epi32(_mm_castps_si128(x), 23);
-
-  /* keep only the fractional part */
-  x = _mm_and_ps(x, p4f_inv_mant_mask);
-  x = _mm_or_ps(x, p4f_half);
-
-  emm0 = _mm_sub_epi32(emm0, p4i_0x7f);
-  Packet4f e = padd(_mm_cvtepi32_ps(emm0), p4f_1);
-
-  /* part2:
-     if( x < SQRTHF ) {
-       e -= 1;
-       x = x + x - 1.0;
-     } else { x = x - 1.0; }
-  */
-  Packet4f mask = _mm_cmplt_ps(x, p4f_cephes_SQRTHF);
-  Packet4f tmp = _mm_and_ps(x, mask);
-  x = psub(x, p4f_1);
-  e = psub(e, _mm_and_ps(p4f_1, mask));
-  x = padd(x, tmp);
-
-  Packet4f x2 = pmul(x,x);
-  Packet4f x3 = pmul(x2,x);
-
-  Packet4f y, y1, y2;
-  y  = pmadd(p4f_cephes_log_p0, x, p4f_cephes_log_p1);
-  y1 = pmadd(p4f_cephes_log_p3, x, p4f_cephes_log_p4);
-  y2 = pmadd(p4f_cephes_log_p6, x, p4f_cephes_log_p7);
-  y  = pmadd(y , x, p4f_cephes_log_p2);
-  y1 = pmadd(y1, x, p4f_cephes_log_p5);
-  y2 = pmadd(y2, x, p4f_cephes_log_p8);
-  y = pmadd(y, x3, y1);
-  y = pmadd(y, x3, y2);
-  y = pmul(y, x3);
-
-  y1 = pmul(e, p4f_cephes_log_q1);
-  tmp = pmul(x2, p4f_half);
-  y = padd(y, y1);
-  x = psub(x, tmp);
-  y2 = pmul(e, p4f_cephes_log_q2);
-  x = padd(x, y);
-  x = padd(x, y2);
-  // negative arg will be NAN, 0 will be -INF
-  return _mm_or_ps(_mm_andnot_ps(iszero_mask, _mm_or_ps(x, invalid_mask)),
-                   _mm_and_ps(iszero_mask, p4f_minus_inf));
-}
-
-template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
-Packet4f pexp<Packet4f>(const Packet4f& _x)
-{
-  Packet4f x = _x;
-  _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
-  _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
-  _EIGEN_DECLARE_CONST_Packet4i(0x7f, 0x7f);
-
-
-  _EIGEN_DECLARE_CONST_Packet4f(exp_hi,  88.3762626647950f);
-  _EIGEN_DECLARE_CONST_Packet4f(exp_lo, -88.3762626647949f);
-
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_LOG2EF, 1.44269504088896341f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_C1, 0.693359375f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_C2, -2.12194440e-4f);
-
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p0, 1.9875691500E-4f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p1, 1.3981999507E-3f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p2, 8.3334519073E-3f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p3, 4.1665795894E-2f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p4, 1.6666665459E-1f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p5, 5.0000001201E-1f);
-
-  Packet4f tmp = _mm_setzero_ps(), fx;
-  Packet4i emm0;
-
-  // clamp x
-  x = pmax(pmin(x, p4f_exp_hi), p4f_exp_lo);
-
-  /* express exp(x) as exp(g + n*log(2)) */
-  fx = pmadd(x, p4f_cephes_LOG2EF, p4f_half);
-
-#ifdef EIGEN_VECTORIZE_SSE4_1
-  fx = _mm_floor_ps(fx);
-#else
-  emm0 = _mm_cvttps_epi32(fx);
-  tmp  = _mm_cvtepi32_ps(emm0);
-  /* if greater, substract 1 */
-  Packet4f mask = _mm_cmpgt_ps(tmp, fx);
-  mask = _mm_and_ps(mask, p4f_1);
-  fx = psub(tmp, mask);
-#endif
-
-  tmp = pmul(fx, p4f_cephes_exp_C1);
-  Packet4f z = pmul(fx, p4f_cephes_exp_C2);
-  x = psub(x, tmp);
-  x = psub(x, z);
-
-  z = pmul(x,x);
-
-  Packet4f y = p4f_cephes_exp_p0;
-  y = pmadd(y, x, p4f_cephes_exp_p1);
-  y = pmadd(y, x, p4f_cephes_exp_p2);
-  y = pmadd(y, x, p4f_cephes_exp_p3);
-  y = pmadd(y, x, p4f_cephes_exp_p4);
-  y = pmadd(y, x, p4f_cephes_exp_p5);
-  y = pmadd(y, z, x);
-  y = padd(y, p4f_1);
-
-  // build 2^n
-  emm0 = _mm_cvttps_epi32(fx);
-  emm0 = _mm_add_epi32(emm0, p4i_0x7f);
-  emm0 = _mm_slli_epi32(emm0, 23);
-  return pmul(y, _mm_castsi128_ps(emm0));
-}
-template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
-Packet2d pexp<Packet2d>(const Packet2d& _x)
-{
-  Packet2d x = _x;
-
-  _EIGEN_DECLARE_CONST_Packet2d(1 , 1.0);
-  _EIGEN_DECLARE_CONST_Packet2d(2 , 2.0);
-  _EIGEN_DECLARE_CONST_Packet2d(half, 0.5);
-
-  _EIGEN_DECLARE_CONST_Packet2d(exp_hi,  709.437);
-  _EIGEN_DECLARE_CONST_Packet2d(exp_lo, -709.436139303);
-
-  _EIGEN_DECLARE_CONST_Packet2d(cephes_LOG2EF, 1.4426950408889634073599);
-
-  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p0, 1.26177193074810590878e-4);
-  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p1, 3.02994407707441961300e-2);
-  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p2, 9.99999999999999999910e-1);
-
-  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q0, 3.00198505138664455042e-6);
-  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q1, 2.52448340349684104192e-3);
-  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q2, 2.27265548208155028766e-1);
-  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q3, 2.00000000000000000009e0);
-
-  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_C1, 0.693145751953125);
-  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_C2, 1.42860682030941723212e-6);
-  static const __m128i p4i_1023_0 = _mm_setr_epi32(1023, 1023, 0, 0);
-
-  Packet2d tmp = _mm_setzero_pd(), fx;
-  Packet4i emm0;
-
-  // clamp x
-  x = pmax(pmin(x, p2d_exp_hi), p2d_exp_lo);
-  /* express exp(x) as exp(g + n*log(2)) */
-  fx = pmadd(p2d_cephes_LOG2EF, x, p2d_half);
-
-#ifdef EIGEN_VECTORIZE_SSE4_1
-  fx = _mm_floor_pd(fx);
-#else
-  emm0 = _mm_cvttpd_epi32(fx);
-  tmp  = _mm_cvtepi32_pd(emm0);
-  /* if greater, substract 1 */
-  Packet2d mask = _mm_cmpgt_pd(tmp, fx);
-  mask = _mm_and_pd(mask, p2d_1);
-  fx = psub(tmp, mask);
-#endif
-
-  tmp = pmul(fx, p2d_cephes_exp_C1);
-  Packet2d z = pmul(fx, p2d_cephes_exp_C2);
-  x = psub(x, tmp);
-  x = psub(x, z);
-
-  Packet2d x2 = pmul(x,x);
-
-  Packet2d px = p2d_cephes_exp_p0;
-  px = pmadd(px, x2, p2d_cephes_exp_p1);
-  px = pmadd(px, x2, p2d_cephes_exp_p2);
-  px = pmul (px, x);
-
-  Packet2d qx = p2d_cephes_exp_q0;
-  qx = pmadd(qx, x2, p2d_cephes_exp_q1);
-  qx = pmadd(qx, x2, p2d_cephes_exp_q2);
-  qx = pmadd(qx, x2, p2d_cephes_exp_q3);
-
-  x = pdiv(px,psub(qx,px));
-  x = pmadd(p2d_2,x,p2d_1);
-
-  // build 2^n
-  emm0 = _mm_cvttpd_epi32(fx);
-  emm0 = _mm_add_epi32(emm0, p4i_1023_0);
-  emm0 = _mm_slli_epi32(emm0, 20);
-  emm0 = _mm_shuffle_epi32(emm0, _MM_SHUFFLE(1,2,0,3));
-  return pmul(x, _mm_castsi128_pd(emm0));
-}
-
-/* evaluation of 4 sines at onces, using SSE2 intrinsics.
-
-   The code is the exact rewriting of the cephes sinf function.
-   Precision is excellent as long as x < 8192 (I did not bother to
-   take into account the special handling they have for greater values
-   -- it does not return garbage for arguments over 8192, though, but
-   the extra precision is missing).
-
-   Note that it is such that sinf((float)M_PI) = 8.74e-8, which is the
-   surprising but correct result.
-*/
-
-template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
-Packet4f psin<Packet4f>(const Packet4f& _x)
-{
-  Packet4f x = _x;
-  _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
-  _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
-
-  _EIGEN_DECLARE_CONST_Packet4i(1, 1);
-  _EIGEN_DECLARE_CONST_Packet4i(not1, ~1);
-  _EIGEN_DECLARE_CONST_Packet4i(2, 2);
-  _EIGEN_DECLARE_CONST_Packet4i(4, 4);
-
-  _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(sign_mask, 0x80000000);
-
-  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP1,-0.78515625f);
-  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP2, -2.4187564849853515625e-4f);
-  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP3, -3.77489497744594108e-8f);
-  _EIGEN_DECLARE_CONST_Packet4f(sincof_p0, -1.9515295891E-4f);
-  _EIGEN_DECLARE_CONST_Packet4f(sincof_p1,  8.3321608736E-3f);
-  _EIGEN_DECLARE_CONST_Packet4f(sincof_p2, -1.6666654611E-1f);
-  _EIGEN_DECLARE_CONST_Packet4f(coscof_p0,  2.443315711809948E-005f);
-  _EIGEN_DECLARE_CONST_Packet4f(coscof_p1, -1.388731625493765E-003f);
-  _EIGEN_DECLARE_CONST_Packet4f(coscof_p2,  4.166664568298827E-002f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_FOPI, 1.27323954473516f); // 4 / M_PI
-
-  Packet4f xmm1, xmm2 = _mm_setzero_ps(), xmm3, sign_bit, y;
-
-  Packet4i emm0, emm2;
-  sign_bit = x;
-  /* take the absolute value */
-  x = pabs(x);
-
-  /* take the modulo */
-
-  /* extract the sign bit (upper one) */
-  sign_bit = _mm_and_ps(sign_bit, p4f_sign_mask);
-
-  /* scale by 4/Pi */
-  y = pmul(x, p4f_cephes_FOPI);
-
-  /* store the integer part of y in mm0 */
-  emm2 = _mm_cvttps_epi32(y);
-  /* j=(j+1) & (~1) (see the cephes sources) */
-  emm2 = _mm_add_epi32(emm2, p4i_1);
-  emm2 = _mm_and_si128(emm2, p4i_not1);
-  y = _mm_cvtepi32_ps(emm2);
-  /* get the swap sign flag */
-  emm0 = _mm_and_si128(emm2, p4i_4);
-  emm0 = _mm_slli_epi32(emm0, 29);
-  /* get the polynom selection mask
-     there is one polynom for 0 <= x <= Pi/4
-     and another one for Pi/4<x<=Pi/2
-
-     Both branches will be computed.
-  */
-  emm2 = _mm_and_si128(emm2, p4i_2);
-  emm2 = _mm_cmpeq_epi32(emm2, _mm_setzero_si128());
-
-  Packet4f swap_sign_bit = _mm_castsi128_ps(emm0);
-  Packet4f poly_mask = _mm_castsi128_ps(emm2);
-  sign_bit = _mm_xor_ps(sign_bit, swap_sign_bit);
-
-  /* The magic pass: "Extended precision modular arithmetic"
-     x = ((x - y * DP1) - y * DP2) - y * DP3; */
-  xmm1 = pmul(y, p4f_minus_cephes_DP1);
-  xmm2 = pmul(y, p4f_minus_cephes_DP2);
-  xmm3 = pmul(y, p4f_minus_cephes_DP3);
-  x = padd(x, xmm1);
-  x = padd(x, xmm2);
-  x = padd(x, xmm3);
-
-  /* Evaluate the first polynom  (0 <= x <= Pi/4) */
-  y = p4f_coscof_p0;
-  Packet4f z = _mm_mul_ps(x,x);
-
-  y = pmadd(y, z, p4f_coscof_p1);
-  y = pmadd(y, z, p4f_coscof_p2);
-  y = pmul(y, z);
-  y = pmul(y, z);
-  Packet4f tmp = pmul(z, p4f_half);
-  y = psub(y, tmp);
-  y = padd(y, p4f_1);
-
-  /* Evaluate the second polynom  (Pi/4 <= x <= 0) */
-
-  Packet4f y2 = p4f_sincof_p0;
-  y2 = pmadd(y2, z, p4f_sincof_p1);
-  y2 = pmadd(y2, z, p4f_sincof_p2);
-  y2 = pmul(y2, z);
-  y2 = pmul(y2, x);
-  y2 = padd(y2, x);
-
-  /* select the correct result from the two polynoms */
-  y2 = _mm_and_ps(poly_mask, y2);
-  y = _mm_andnot_ps(poly_mask, y);
-  y = _mm_or_ps(y,y2);
-  /* update the sign */
-  return _mm_xor_ps(y, sign_bit);
-}
-
-/* almost the same as psin */
-template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
-Packet4f pcos<Packet4f>(const Packet4f& _x)
-{
-  Packet4f x = _x;
-  _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
-  _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
-
-  _EIGEN_DECLARE_CONST_Packet4i(1, 1);
-  _EIGEN_DECLARE_CONST_Packet4i(not1, ~1);
-  _EIGEN_DECLARE_CONST_Packet4i(2, 2);
-  _EIGEN_DECLARE_CONST_Packet4i(4, 4);
-
-  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP1,-0.78515625f);
-  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP2, -2.4187564849853515625e-4f);
-  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP3, -3.77489497744594108e-8f);
-  _EIGEN_DECLARE_CONST_Packet4f(sincof_p0, -1.9515295891E-4f);
-  _EIGEN_DECLARE_CONST_Packet4f(sincof_p1,  8.3321608736E-3f);
-  _EIGEN_DECLARE_CONST_Packet4f(sincof_p2, -1.6666654611E-1f);
-  _EIGEN_DECLARE_CONST_Packet4f(coscof_p0,  2.443315711809948E-005f);
-  _EIGEN_DECLARE_CONST_Packet4f(coscof_p1, -1.388731625493765E-003f);
-  _EIGEN_DECLARE_CONST_Packet4f(coscof_p2,  4.166664568298827E-002f);
-  _EIGEN_DECLARE_CONST_Packet4f(cephes_FOPI, 1.27323954473516f); // 4 / M_PI
-
-  Packet4f xmm1, xmm2 = _mm_setzero_ps(), xmm3, y;
-  Packet4i emm0, emm2;
-
-  x = pabs(x);
-
-  /* scale by 4/Pi */
-  y = pmul(x, p4f_cephes_FOPI);
-
-  /* get the integer part of y */
-  emm2 = _mm_cvttps_epi32(y);
-  /* j=(j+1) & (~1) (see the cephes sources) */
-  emm2 = _mm_add_epi32(emm2, p4i_1);
-  emm2 = _mm_and_si128(emm2, p4i_not1);
-  y = _mm_cvtepi32_ps(emm2);
-
-  emm2 = _mm_sub_epi32(emm2, p4i_2);
-
-  /* get the swap sign flag */
-  emm0 = _mm_andnot_si128(emm2, p4i_4);
-  emm0 = _mm_slli_epi32(emm0, 29);
-  /* get the polynom selection mask */
-  emm2 = _mm_and_si128(emm2, p4i_2);
-  emm2 = _mm_cmpeq_epi32(emm2, _mm_setzero_si128());
-
-  Packet4f sign_bit = _mm_castsi128_ps(emm0);
-  Packet4f poly_mask = _mm_castsi128_ps(emm2);
-
-  /* The magic pass: "Extended precision modular arithmetic"
-     x = ((x - y * DP1) - y * DP2) - y * DP3; */
-  xmm1 = pmul(y, p4f_minus_cephes_DP1);
-  xmm2 = pmul(y, p4f_minus_cephes_DP2);
-  xmm3 = pmul(y, p4f_minus_cephes_DP3);
-  x = padd(x, xmm1);
-  x = padd(x, xmm2);
-  x = padd(x, xmm3);
-
-  /* Evaluate the first polynom  (0 <= x <= Pi/4) */
-  y = p4f_coscof_p0;
-  Packet4f z = pmul(x,x);
-
-  y = pmadd(y,z,p4f_coscof_p1);
-  y = pmadd(y,z,p4f_coscof_p2);
-  y = pmul(y, z);
-  y = pmul(y, z);
-  Packet4f tmp = _mm_mul_ps(z, p4f_half);
-  y = psub(y, tmp);
-  y = padd(y, p4f_1);
-
-  /* Evaluate the second polynom  (Pi/4 <= x <= 0) */
-  Packet4f y2 = p4f_sincof_p0;
-  y2 = pmadd(y2, z, p4f_sincof_p1);
-  y2 = pmadd(y2, z, p4f_sincof_p2);
-  y2 = pmul(y2, z);
-  y2 = pmadd(y2, x, x);
-
-  /* select the correct result from the two polynoms */
-  y2 = _mm_and_ps(poly_mask, y2);
-  y  = _mm_andnot_ps(poly_mask, y);
-  y  = _mm_or_ps(y,y2);
-
-  /* update the sign */
-  return _mm_xor_ps(y, sign_bit);
-}
-
-// This is based on Quake3's fast inverse square root.
-// For detail see here: http://www.beyond3d.com/content/articles/8/
-template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
-Packet4f psqrt<Packet4f>(const Packet4f& _x)
-{
-  Packet4f half = pmul(_x, pset1<Packet4f>(.5f));
-
-  /* select only the inverse sqrt of non-zero inputs */
-  Packet4f non_zero_mask = _mm_cmpgt_ps(_x, pset1<Packet4f>(std::numeric_limits<float>::epsilon()));
-  Packet4f x = _mm_and_ps(non_zero_mask, _mm_rsqrt_ps(_x));
-
-  x = pmul(x, psub(pset1<Packet4f>(1.5f), pmul(half, pmul(x,x))));
-  return pmul(_x,x);
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_MATH_FUNCTIONS_SSE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/arch/SSE/PacketMath.h b/vendor/eigen-3.1.91/Eigen/src/Core/arch/SSE/PacketMath.h
deleted file mode 100644
index 50114b8..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/arch/SSE/PacketMath.h
+++ /dev/null
@@ -1,644 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_PACKET_MATH_SSE_H
-#define EIGEN_PACKET_MATH_SSE_H
-
-namespace Eigen {
-
-namespace internal {
-
-#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
-#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8
-#endif
-
-#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
-#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS (2*sizeof(void*))
-#endif
-
-typedef __m128  Packet4f;
-typedef __m128i Packet4i;
-typedef __m128d Packet2d;
-
-template<> struct is_arithmetic<__m128>  { enum { value = true }; };
-template<> struct is_arithmetic<__m128i> { enum { value = true }; };
-template<> struct is_arithmetic<__m128d> { enum { value = true }; };
-
-#define vec4f_swizzle1(v,p,q,r,s) \
-  (_mm_castsi128_ps(_mm_shuffle_epi32( _mm_castps_si128(v), ((s)<<6|(r)<<4|(q)<<2|(p)))))
-
-#define vec4i_swizzle1(v,p,q,r,s) \
-  (_mm_shuffle_epi32( v, ((s)<<6|(r)<<4|(q)<<2|(p))))
-
-#define vec2d_swizzle1(v,p,q) \
-  (_mm_castsi128_pd(_mm_shuffle_epi32( _mm_castpd_si128(v), ((q*2+1)<<6|(q*2)<<4|(p*2+1)<<2|(p*2)))))
-  
-#define vec4f_swizzle2(a,b,p,q,r,s) \
-  (_mm_shuffle_ps( (a), (b), ((s)<<6|(r)<<4|(q)<<2|(p))))
-
-#define vec4i_swizzle2(a,b,p,q,r,s) \
-  (_mm_castps_si128( (_mm_shuffle_ps( _mm_castsi128_ps(a), _mm_castsi128_ps(b), ((s)<<6|(r)<<4|(q)<<2|(p))))))
-
-#define _EIGEN_DECLARE_CONST_Packet4f(NAME,X) \
-  const Packet4f p4f_##NAME = pset1<Packet4f>(X)
-
-#define _EIGEN_DECLARE_CONST_Packet2d(NAME,X) \
-  const Packet2d p2d_##NAME = pset1<Packet2d>(X)
-
-#define _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(NAME,X) \
-  const Packet4f p4f_##NAME = _mm_castsi128_ps(pset1<Packet4i>(X))
-
-#define _EIGEN_DECLARE_CONST_Packet4i(NAME,X) \
-  const Packet4i p4i_##NAME = pset1<Packet4i>(X)
-
-
-template<> struct packet_traits<float>  : default_packet_traits
-{
-  typedef Packet4f type;
-  enum {
-    Vectorizable = 1,
-    AlignedOnScalar = 1,
-    size=4,
-
-    HasDiv  = 1,
-    HasSin  = EIGEN_FAST_MATH,
-    HasCos  = EIGEN_FAST_MATH,
-    HasLog  = 1,
-    HasExp  = 1,
-    HasSqrt = 1
-  };
-};
-template<> struct packet_traits<double> : default_packet_traits
-{
-  typedef Packet2d type;
-  enum {
-    Vectorizable = 1,
-    AlignedOnScalar = 1,
-    size=2,
-
-    HasDiv  = 1,
-    HasExp  = 1
-  };
-};
-template<> struct packet_traits<int>    : default_packet_traits
-{
-  typedef Packet4i type;
-  enum {
-    // FIXME check the Has*
-    Vectorizable = 1,
-    AlignedOnScalar = 1,
-    size=4
-  };
-};
-
-template<> struct unpacket_traits<Packet4f> { typedef float  type; enum {size=4}; };
-template<> struct unpacket_traits<Packet2d> { typedef double type; enum {size=2}; };
-template<> struct unpacket_traits<Packet4i> { typedef int    type; enum {size=4}; };
-
-#if defined(_MSC_VER) && (_MSC_VER==1500)
-// Workaround MSVC 9 internal compiler error.
-// TODO: It has been detected with win64 builds (amd64), so let's check whether it also happens in 32bits+SSE mode
-// TODO: let's check whether there does not exist a better fix, like adding a pset0() function. (it crashed on pset1(0)).
-template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float&  from) { return _mm_set_ps(from,from,from,from); }
-template<> EIGEN_STRONG_INLINE Packet2d pset1<Packet2d>(const double& from) { return _mm_set_pd(from,from); }
-template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int&    from) { return _mm_set_epi32(from,from,from,from); }
-#else
-template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float&  from) { return _mm_set1_ps(from); }
-template<> EIGEN_STRONG_INLINE Packet2d pset1<Packet2d>(const double& from) { return _mm_set1_pd(from); }
-template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int&    from) { return _mm_set1_epi32(from); }
-#endif
-
-template<> EIGEN_STRONG_INLINE Packet4f plset<float>(const float& a) { return _mm_add_ps(pset1<Packet4f>(a), _mm_set_ps(3,2,1,0)); }
-template<> EIGEN_STRONG_INLINE Packet2d plset<double>(const double& a) { return _mm_add_pd(pset1<Packet2d>(a),_mm_set_pd(1,0)); }
-template<> EIGEN_STRONG_INLINE Packet4i plset<int>(const int& a) { return _mm_add_epi32(pset1<Packet4i>(a),_mm_set_epi32(3,2,1,0)); }
-
-template<> EIGEN_STRONG_INLINE Packet4f padd<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_add_ps(a,b); }
-template<> EIGEN_STRONG_INLINE Packet2d padd<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_add_pd(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i padd<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_add_epi32(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f psub<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_sub_ps(a,b); }
-template<> EIGEN_STRONG_INLINE Packet2d psub<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_sub_pd(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i psub<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_sub_epi32(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pnegate(const Packet4f& a)
-{
-  const Packet4f mask = _mm_castsi128_ps(_mm_setr_epi32(0x80000000,0x80000000,0x80000000,0x80000000));
-  return _mm_xor_ps(a,mask);
-}
-template<> EIGEN_STRONG_INLINE Packet2d pnegate(const Packet2d& a)
-{
-  const Packet2d mask = _mm_castsi128_pd(_mm_setr_epi32(0x0,0x80000000,0x0,0x80000000));
-  return _mm_xor_pd(a,mask);
-}
-template<> EIGEN_STRONG_INLINE Packet4i pnegate(const Packet4i& a)
-{
-  return psub(_mm_setr_epi32(0,0,0,0), a);
-}
-
-template<> EIGEN_STRONG_INLINE Packet4f pmul<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_mul_ps(a,b); }
-template<> EIGEN_STRONG_INLINE Packet2d pmul<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_mul_pd(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i pmul<Packet4i>(const Packet4i& a, const Packet4i& b)
-{
-#ifdef EIGEN_VECTORIZE_SSE4_1
-  return _mm_mullo_epi32(a,b);
-#else
-  // this version is slightly faster than 4 scalar products
-  return vec4i_swizzle1(
-            vec4i_swizzle2(
-              _mm_mul_epu32(a,b),
-              _mm_mul_epu32(vec4i_swizzle1(a,1,0,3,2),
-                            vec4i_swizzle1(b,1,0,3,2)),
-              0,2,0,2),
-            0,2,1,3);
-#endif
-}
-
-template<> EIGEN_STRONG_INLINE Packet4f pdiv<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_div_ps(a,b); }
-template<> EIGEN_STRONG_INLINE Packet2d pdiv<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_div_pd(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i pdiv<Packet4i>(const Packet4i& /*a*/, const Packet4i& /*b*/)
-{ eigen_assert(false && "packet integer division are not supported by SSE");
-  return pset1<Packet4i>(0);
-}
-
-// for some weird raisons, it has to be overloaded for packet of integers
-template<> EIGEN_STRONG_INLINE Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) { return padd(pmul(a,b), c); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pmin<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_min_ps(a,b); }
-template<> EIGEN_STRONG_INLINE Packet2d pmin<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_min_pd(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i pmin<Packet4i>(const Packet4i& a, const Packet4i& b)
-{
-#ifdef EIGEN_VECTORIZE_SSE4_1
-  return _mm_min_epi32(a,b);
-#else
-  // after some bench, this version *is* faster than a scalar implementation
-  Packet4i mask = _mm_cmplt_epi32(a,b);
-  return _mm_or_si128(_mm_and_si128(mask,a),_mm_andnot_si128(mask,b));
-#endif
-}
-
-template<> EIGEN_STRONG_INLINE Packet4f pmax<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_max_ps(a,b); }
-template<> EIGEN_STRONG_INLINE Packet2d pmax<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_max_pd(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i pmax<Packet4i>(const Packet4i& a, const Packet4i& b)
-{
-#ifdef EIGEN_VECTORIZE_SSE4_1
-  return _mm_max_epi32(a,b);
-#else
-  // after some bench, this version *is* faster than a scalar implementation
-  Packet4i mask = _mm_cmpgt_epi32(a,b);
-  return _mm_or_si128(_mm_and_si128(mask,a),_mm_andnot_si128(mask,b));
-#endif
-}
-
-template<> EIGEN_STRONG_INLINE Packet4f pand<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_and_ps(a,b); }
-template<> EIGEN_STRONG_INLINE Packet2d pand<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_and_pd(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i pand<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_and_si128(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f por<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_or_ps(a,b); }
-template<> EIGEN_STRONG_INLINE Packet2d por<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_or_pd(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i por<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_or_si128(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pxor<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_xor_ps(a,b); }
-template<> EIGEN_STRONG_INLINE Packet2d pxor<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_xor_pd(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i pxor<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_xor_si128(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pandnot<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_andnot_ps(a,b); }
-template<> EIGEN_STRONG_INLINE Packet2d pandnot<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_andnot_pd(a,b); }
-template<> EIGEN_STRONG_INLINE Packet4i pandnot<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_andnot_si128(a,b); }
-
-template<> EIGEN_STRONG_INLINE Packet4f pload<Packet4f>(const float*   from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm_load_ps(from); }
-template<> EIGEN_STRONG_INLINE Packet2d pload<Packet2d>(const double*  from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm_load_pd(from); }
-template<> EIGEN_STRONG_INLINE Packet4i pload<Packet4i>(const int*     from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm_load_si128(reinterpret_cast<const Packet4i*>(from)); }
-
-#if defined(_MSC_VER)
-  template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float*  from) {
-    EIGEN_DEBUG_UNALIGNED_LOAD
-    #if (_MSC_VER==1600)
-    // NOTE Some version of MSVC10 generates bad code when using _mm_loadu_ps
-    // (i.e., it does not generate an unaligned load!!
-    // TODO On most architectures this version should also be faster than a single _mm_loadu_ps
-    // so we could also enable it for MSVC08 but first we have to make this later does not generate crap when doing so...
-    __m128 res = _mm_loadl_pi(_mm_set1_ps(0.0f), (const __m64*)(from));
-    res = _mm_loadh_pi(res, (const __m64*)(from+2));
-    return res;
-    #else
-    return _mm_loadu_ps(from);
-    #endif
-  }
-  template<> EIGEN_STRONG_INLINE Packet2d ploadu<Packet2d>(const double* from) { EIGEN_DEBUG_UNALIGNED_LOAD return _mm_loadu_pd(from); }
-  template<> EIGEN_STRONG_INLINE Packet4i ploadu<Packet4i>(const int*    from) { EIGEN_DEBUG_UNALIGNED_LOAD return _mm_loadu_si128(reinterpret_cast<const Packet4i*>(from)); }
-#else
-// Fast unaligned loads. Note that here we cannot directly use intrinsics: this would
-// require pointer casting to incompatible pointer types and leads to invalid code
-// because of the strict aliasing rule. The "dummy" stuff are required to enforce
-// a correct instruction dependency.
-// TODO: do the same for MSVC (ICC is compatible)
-// NOTE: with the code below, MSVC's compiler crashes!
-
-#if defined(__GNUC__) && defined(__i386__)
-  // bug 195: gcc/i386 emits weird x87 fldl/fstpl instructions for _mm_load_sd
-  #define EIGEN_AVOID_CUSTOM_UNALIGNED_LOADS 1
-#elif defined(__clang__)
-  // bug 201: Segfaults in __mm_loadh_pd with clang 2.8
-  #define EIGEN_AVOID_CUSTOM_UNALIGNED_LOADS 1
-#else
-  #define EIGEN_AVOID_CUSTOM_UNALIGNED_LOADS 0
-#endif
-
-template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float* from)
-{
-  EIGEN_DEBUG_UNALIGNED_LOAD
-#if EIGEN_AVOID_CUSTOM_UNALIGNED_LOADS
-  return _mm_loadu_ps(from);
-#else
-  __m128d res;
-  res =  _mm_load_sd((const double*)(from)) ;
-  res =  _mm_loadh_pd(res, (const double*)(from+2)) ;
-  return _mm_castpd_ps(res);
-#endif
-}
-template<> EIGEN_STRONG_INLINE Packet2d ploadu<Packet2d>(const double* from)
-{
-  EIGEN_DEBUG_UNALIGNED_LOAD
-#if EIGEN_AVOID_CUSTOM_UNALIGNED_LOADS
-  return _mm_loadu_pd(from);
-#else
-  __m128d res;
-  res = _mm_load_sd(from) ;
-  res = _mm_loadh_pd(res,from+1);
-  return res;
-#endif
-}
-template<> EIGEN_STRONG_INLINE Packet4i ploadu<Packet4i>(const int* from)
-{
-  EIGEN_DEBUG_UNALIGNED_LOAD
-#if EIGEN_AVOID_CUSTOM_UNALIGNED_LOADS
-  return _mm_loadu_si128(reinterpret_cast<const Packet4i*>(from));
-#else
-  __m128d res;
-  res =  _mm_load_sd((const double*)(from)) ;
-  res =  _mm_loadh_pd(res, (const double*)(from+2)) ;
-  return _mm_castpd_si128(res);
-#endif
-}
-#endif
-
-template<> EIGEN_STRONG_INLINE Packet4f ploaddup<Packet4f>(const float*   from)
-{
-  return vec4f_swizzle1(_mm_castpd_ps(_mm_load_sd(reinterpret_cast<const double*>(from))), 0, 0, 1, 1);
-}
-template<> EIGEN_STRONG_INLINE Packet2d ploaddup<Packet2d>(const double*  from)
-{ return pset1<Packet2d>(from[0]); }
-template<> EIGEN_STRONG_INLINE Packet4i ploaddup<Packet4i>(const int*     from)
-{
-  Packet4i tmp;
-  tmp = _mm_loadl_epi64(reinterpret_cast<const Packet4i*>(from));
-  return vec4i_swizzle1(tmp, 0, 0, 1, 1);
-}
-
-template<> EIGEN_STRONG_INLINE void pstore<float>(float*   to, const Packet4f& from) { EIGEN_DEBUG_ALIGNED_STORE _mm_store_ps(to, from); }
-template<> EIGEN_STRONG_INLINE void pstore<double>(double* to, const Packet2d& from) { EIGEN_DEBUG_ALIGNED_STORE _mm_store_pd(to, from); }
-template<> EIGEN_STRONG_INLINE void pstore<int>(int*       to, const Packet4i& from) { EIGEN_DEBUG_ALIGNED_STORE _mm_store_si128(reinterpret_cast<Packet4i*>(to), from); }
-
-template<> EIGEN_STRONG_INLINE void pstoreu<double>(double* to, const Packet2d& from) {
-  EIGEN_DEBUG_UNALIGNED_STORE
-  _mm_storel_pd((to), from);
-  _mm_storeh_pd((to+1), from);
-}
-template<> EIGEN_STRONG_INLINE void pstoreu<float>(float*  to, const Packet4f& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu(reinterpret_cast<double*>(to), _mm_castps_pd(from)); }
-template<> EIGEN_STRONG_INLINE void pstoreu<int>(int*      to, const Packet4i& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu(reinterpret_cast<double*>(to), _mm_castsi128_pd(from)); }
-
-// some compilers might be tempted to perform multiple moves instead of using a vector path.
-template<> EIGEN_STRONG_INLINE void pstore1<Packet4f>(float* to, const float& a)
-{
-  Packet4f pa = _mm_set_ss(a);
-  pstore(to, vec4f_swizzle1(pa,0,0,0,0));
-}
-// some compilers might be tempted to perform multiple moves instead of using a vector path.
-template<> EIGEN_STRONG_INLINE void pstore1<Packet2d>(double* to, const double& a)
-{
-  Packet2d pa = _mm_set_sd(a);
-  pstore(to, vec2d_swizzle1(pa,0,0));
-}
-
-template<> EIGEN_STRONG_INLINE void prefetch<float>(const float*   addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
-template<> EIGEN_STRONG_INLINE void prefetch<double>(const double* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
-template<> EIGEN_STRONG_INLINE void prefetch<int>(const int*       addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
-
-#if defined(_MSC_VER) && defined(_WIN64) && !defined(__INTEL_COMPILER)
-// The temporary variable fixes an internal compilation error in vs <= 2008 and a wrong-result bug in vs 2010
-// Direct of the struct members fixed bug #62.
-template<> EIGEN_STRONG_INLINE float  pfirst<Packet4f>(const Packet4f& a) { return a.m128_f32[0]; }
-template<> EIGEN_STRONG_INLINE double pfirst<Packet2d>(const Packet2d& a) { return a.m128d_f64[0]; }
-template<> EIGEN_STRONG_INLINE int    pfirst<Packet4i>(const Packet4i& a) { int x = _mm_cvtsi128_si32(a); return x; }
-#elif defined(_MSC_VER) && !defined(__INTEL_COMPILER)
-// The temporary variable fixes an internal compilation error in vs <= 2008 and a wrong-result bug in vs 2010
-template<> EIGEN_STRONG_INLINE float  pfirst<Packet4f>(const Packet4f& a) { float x = _mm_cvtss_f32(a); return x; }
-template<> EIGEN_STRONG_INLINE double pfirst<Packet2d>(const Packet2d& a) { double x = _mm_cvtsd_f64(a); return x; }
-template<> EIGEN_STRONG_INLINE int    pfirst<Packet4i>(const Packet4i& a) { int x = _mm_cvtsi128_si32(a); return x; }
-#else
-template<> EIGEN_STRONG_INLINE float  pfirst<Packet4f>(const Packet4f& a) { return _mm_cvtss_f32(a); }
-template<> EIGEN_STRONG_INLINE double pfirst<Packet2d>(const Packet2d& a) { return _mm_cvtsd_f64(a); }
-template<> EIGEN_STRONG_INLINE int    pfirst<Packet4i>(const Packet4i& a) { return _mm_cvtsi128_si32(a); }
-#endif
-
-template<> EIGEN_STRONG_INLINE Packet4f preverse(const Packet4f& a)
-{ return _mm_shuffle_ps(a,a,0x1B); }
-template<> EIGEN_STRONG_INLINE Packet2d preverse(const Packet2d& a)
-{ return _mm_shuffle_pd(a,a,0x1); }
-template<> EIGEN_STRONG_INLINE Packet4i preverse(const Packet4i& a)
-{ return _mm_shuffle_epi32(a,0x1B); }
-
-
-template<> EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f& a)
-{
-  const Packet4f mask = _mm_castsi128_ps(_mm_setr_epi32(0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF));
-  return _mm_and_ps(a,mask);
-}
-template<> EIGEN_STRONG_INLINE Packet2d pabs(const Packet2d& a)
-{
-  const Packet2d mask = _mm_castsi128_pd(_mm_setr_epi32(0xFFFFFFFF,0x7FFFFFFF,0xFFFFFFFF,0x7FFFFFFF));
-  return _mm_and_pd(a,mask);
-}
-template<> EIGEN_STRONG_INLINE Packet4i pabs(const Packet4i& a)
-{
-  #ifdef EIGEN_VECTORIZE_SSSE3
-  return _mm_abs_epi32(a);
-  #else
-  Packet4i aux = _mm_srai_epi32(a,31);
-  return _mm_sub_epi32(_mm_xor_si128(a,aux),aux);
-  #endif
-}
-
-EIGEN_STRONG_INLINE void punpackp(Packet4f* vecs)
-{
-  vecs[1] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0x55));
-  vecs[2] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0xAA));
-  vecs[3] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0xFF));
-  vecs[0] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0x00));
-}
-
-#ifdef EIGEN_VECTORIZE_SSE3
-// TODO implement SSE2 versions as well as integer versions
-template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
-{
-  return _mm_hadd_ps(_mm_hadd_ps(vecs[0], vecs[1]),_mm_hadd_ps(vecs[2], vecs[3]));
-}
-template<> EIGEN_STRONG_INLINE Packet2d preduxp<Packet2d>(const Packet2d* vecs)
-{
-  return _mm_hadd_pd(vecs[0], vecs[1]);
-}
-// SSSE3 version:
-// EIGEN_STRONG_INLINE Packet4i preduxp(const Packet4i* vecs)
-// {
-//   return _mm_hadd_epi32(_mm_hadd_epi32(vecs[0], vecs[1]),_mm_hadd_epi32(vecs[2], vecs[3]));
-// }
-
-template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
-{
-  Packet4f tmp0 = _mm_hadd_ps(a,a);
-  return pfirst(_mm_hadd_ps(tmp0, tmp0));
-}
-
-template<> EIGEN_STRONG_INLINE double predux<Packet2d>(const Packet2d& a) { return pfirst(_mm_hadd_pd(a, a)); }
-
-// SSSE3 version:
-// EIGEN_STRONG_INLINE float predux(const Packet4i& a)
-// {
-//   Packet4i tmp0 = _mm_hadd_epi32(a,a);
-//   return pfirst(_mm_hadd_epi32(tmp0, tmp0));
-// }
-#else
-// SSE2 versions
-template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
-{
-  Packet4f tmp = _mm_add_ps(a, _mm_movehl_ps(a,a));
-  return pfirst(_mm_add_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
-}
-template<> EIGEN_STRONG_INLINE double predux<Packet2d>(const Packet2d& a)
-{
-  return pfirst(_mm_add_sd(a, _mm_unpackhi_pd(a,a)));
-}
-
-template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
-{
-  Packet4f tmp0, tmp1, tmp2;
-  tmp0 = _mm_unpacklo_ps(vecs[0], vecs[1]);
-  tmp1 = _mm_unpackhi_ps(vecs[0], vecs[1]);
-  tmp2 = _mm_unpackhi_ps(vecs[2], vecs[3]);
-  tmp0 = _mm_add_ps(tmp0, tmp1);
-  tmp1 = _mm_unpacklo_ps(vecs[2], vecs[3]);
-  tmp1 = _mm_add_ps(tmp1, tmp2);
-  tmp2 = _mm_movehl_ps(tmp1, tmp0);
-  tmp0 = _mm_movelh_ps(tmp0, tmp1);
-  return _mm_add_ps(tmp0, tmp2);
-}
-
-template<> EIGEN_STRONG_INLINE Packet2d preduxp<Packet2d>(const Packet2d* vecs)
-{
-  return _mm_add_pd(_mm_unpacklo_pd(vecs[0], vecs[1]), _mm_unpackhi_pd(vecs[0], vecs[1]));
-}
-#endif  // SSE3
-
-template<> EIGEN_STRONG_INLINE int predux<Packet4i>(const Packet4i& a)
-{
-  Packet4i tmp = _mm_add_epi32(a, _mm_unpackhi_epi64(a,a));
-  return pfirst(tmp) + pfirst(_mm_shuffle_epi32(tmp, 1));
-}
-
-template<> EIGEN_STRONG_INLINE Packet4i preduxp<Packet4i>(const Packet4i* vecs)
-{
-  Packet4i tmp0, tmp1, tmp2;
-  tmp0 = _mm_unpacklo_epi32(vecs[0], vecs[1]);
-  tmp1 = _mm_unpackhi_epi32(vecs[0], vecs[1]);
-  tmp2 = _mm_unpackhi_epi32(vecs[2], vecs[3]);
-  tmp0 = _mm_add_epi32(tmp0, tmp1);
-  tmp1 = _mm_unpacklo_epi32(vecs[2], vecs[3]);
-  tmp1 = _mm_add_epi32(tmp1, tmp2);
-  tmp2 = _mm_unpacklo_epi64(tmp0, tmp1);
-  tmp0 = _mm_unpackhi_epi64(tmp0, tmp1);
-  return _mm_add_epi32(tmp0, tmp2);
-}
-
-// Other reduction functions:
-
-// mul
-template<> EIGEN_STRONG_INLINE float predux_mul<Packet4f>(const Packet4f& a)
-{
-  Packet4f tmp = _mm_mul_ps(a, _mm_movehl_ps(a,a));
-  return pfirst(_mm_mul_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
-}
-template<> EIGEN_STRONG_INLINE double predux_mul<Packet2d>(const Packet2d& a)
-{
-  return pfirst(_mm_mul_sd(a, _mm_unpackhi_pd(a,a)));
-}
-template<> EIGEN_STRONG_INLINE int predux_mul<Packet4i>(const Packet4i& a)
-{
-  // after some experiments, it is seems this is the fastest way to implement it
-  // for GCC (eg., reusing pmul is very slow !)
-  // TODO try to call _mm_mul_epu32 directly
-  EIGEN_ALIGN16 int aux[4];
-  pstore(aux, a);
-  return  (aux[0] * aux[1]) * (aux[2] * aux[3]);;
-}
-
-// min
-template<> EIGEN_STRONG_INLINE float predux_min<Packet4f>(const Packet4f& a)
-{
-  Packet4f tmp = _mm_min_ps(a, _mm_movehl_ps(a,a));
-  return pfirst(_mm_min_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
-}
-template<> EIGEN_STRONG_INLINE double predux_min<Packet2d>(const Packet2d& a)
-{
-  return pfirst(_mm_min_sd(a, _mm_unpackhi_pd(a,a)));
-}
-template<> EIGEN_STRONG_INLINE int predux_min<Packet4i>(const Packet4i& a)
-{
-  // after some experiments, it is seems this is the fastest way to implement it
-  // for GCC (eg., it does not like using std::min after the pstore !!)
-  EIGEN_ALIGN16 int aux[4];
-  pstore(aux, a);
-  int aux0 = aux[0]<aux[1] ? aux[0] : aux[1];
-  int aux2 = aux[2]<aux[3] ? aux[2] : aux[3];
-  return aux0<aux2 ? aux0 : aux2;
-}
-
-// max
-template<> EIGEN_STRONG_INLINE float predux_max<Packet4f>(const Packet4f& a)
-{
-  Packet4f tmp = _mm_max_ps(a, _mm_movehl_ps(a,a));
-  return pfirst(_mm_max_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
-}
-template<> EIGEN_STRONG_INLINE double predux_max<Packet2d>(const Packet2d& a)
-{
-  return pfirst(_mm_max_sd(a, _mm_unpackhi_pd(a,a)));
-}
-template<> EIGEN_STRONG_INLINE int predux_max<Packet4i>(const Packet4i& a)
-{
-  // after some experiments, it is seems this is the fastest way to implement it
-  // for GCC (eg., it does not like using std::min after the pstore !!)
-  EIGEN_ALIGN16 int aux[4];
-  pstore(aux, a);
-  int aux0 = aux[0]>aux[1] ? aux[0] : aux[1];
-  int aux2 = aux[2]>aux[3] ? aux[2] : aux[3];
-  return aux0>aux2 ? aux0 : aux2;
-}
-
-#if (defined __GNUC__)
-// template <> EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f&  a, const Packet4f&  b, const Packet4f&  c)
-// {
-//   Packet4f res = b;
-//   asm("mulps %[a], %[b] \n\taddps %[c], %[b]" : [b] "+x" (res) : [a] "x" (a), [c] "x" (c));
-//   return res;
-// }
-// EIGEN_STRONG_INLINE Packet4i _mm_alignr_epi8(const Packet4i&  a, const Packet4i&  b, const int i)
-// {
-//   Packet4i res = a;
-//   asm("palignr %[i], %[a], %[b] " : [b] "+x" (res) : [a] "x" (a), [i] "i" (i));
-//   return res;
-// }
-#endif
-
-#ifdef EIGEN_VECTORIZE_SSSE3
-// SSSE3 versions
-template<int Offset>
-struct palign_impl<Offset,Packet4f>
-{
-  static EIGEN_STRONG_INLINE void run(Packet4f& first, const Packet4f& second)
-  {
-    if (Offset!=0)
-      first = _mm_castsi128_ps(_mm_alignr_epi8(_mm_castps_si128(second), _mm_castps_si128(first), Offset*4));
-  }
-};
-
-template<int Offset>
-struct palign_impl<Offset,Packet4i>
-{
-  static EIGEN_STRONG_INLINE void run(Packet4i& first, const Packet4i& second)
-  {
-    if (Offset!=0)
-      first = _mm_alignr_epi8(second,first, Offset*4);
-  }
-};
-
-template<int Offset>
-struct palign_impl<Offset,Packet2d>
-{
-  static EIGEN_STRONG_INLINE void run(Packet2d& first, const Packet2d& second)
-  {
-    if (Offset==1)
-      first = _mm_castsi128_pd(_mm_alignr_epi8(_mm_castpd_si128(second), _mm_castpd_si128(first), 8));
-  }
-};
-#else
-// SSE2 versions
-template<int Offset>
-struct palign_impl<Offset,Packet4f>
-{
-  static EIGEN_STRONG_INLINE void run(Packet4f& first, const Packet4f& second)
-  {
-    if (Offset==1)
-    {
-      first = _mm_move_ss(first,second);
-      first = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(first),0x39));
-    }
-    else if (Offset==2)
-    {
-      first = _mm_movehl_ps(first,first);
-      first = _mm_movelh_ps(first,second);
-    }
-    else if (Offset==3)
-    {
-      first = _mm_move_ss(first,second);
-      first = _mm_shuffle_ps(first,second,0x93);
-    }
-  }
-};
-
-template<int Offset>
-struct palign_impl<Offset,Packet4i>
-{
-  static EIGEN_STRONG_INLINE void run(Packet4i& first, const Packet4i& second)
-  {
-    if (Offset==1)
-    {
-      first = _mm_castps_si128(_mm_move_ss(_mm_castsi128_ps(first),_mm_castsi128_ps(second)));
-      first = _mm_shuffle_epi32(first,0x39);
-    }
-    else if (Offset==2)
-    {
-      first = _mm_castps_si128(_mm_movehl_ps(_mm_castsi128_ps(first),_mm_castsi128_ps(first)));
-      first = _mm_castps_si128(_mm_movelh_ps(_mm_castsi128_ps(first),_mm_castsi128_ps(second)));
-    }
-    else if (Offset==3)
-    {
-      first = _mm_castps_si128(_mm_move_ss(_mm_castsi128_ps(first),_mm_castsi128_ps(second)));
-      first = _mm_castps_si128(_mm_shuffle_ps(_mm_castsi128_ps(first),_mm_castsi128_ps(second),0x93));
-    }
-  }
-};
-
-template<int Offset>
-struct palign_impl<Offset,Packet2d>
-{
-  static EIGEN_STRONG_INLINE void run(Packet2d& first, const Packet2d& second)
-  {
-    if (Offset==1)
-    {
-      first = _mm_castps_pd(_mm_movehl_ps(_mm_castpd_ps(first),_mm_castpd_ps(first)));
-      first = _mm_castps_pd(_mm_movelh_ps(_mm_castpd_ps(first),_mm_castpd_ps(second)));
-    }
-  }
-};
-#endif
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_PACKET_MATH_SSE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/CoeffBasedProduct.h b/vendor/eigen-3.1.91/Eigen/src/Core/products/CoeffBasedProduct.h
deleted file mode 100644
index c06a0df..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/products/CoeffBasedProduct.h
+++ /dev/null
@@ -1,441 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_COEFFBASED_PRODUCT_H
-#define EIGEN_COEFFBASED_PRODUCT_H
-
-namespace Eigen { 
-
-namespace internal {
-
-/*********************************************************************************
-*  Coefficient based product implementation.
-*  It is designed for the following use cases:
-*  - small fixed sizes
-*  - lazy products
-*********************************************************************************/
-
-/* Since the all the dimensions of the product are small, here we can rely
- * on the generic Assign mechanism to evaluate the product per coeff (or packet).
- *
- * Note that here the inner-loops should always be unrolled.
- */
-
-template<int Traversal, int UnrollingIndex, typename Lhs, typename Rhs, typename RetScalar>
-struct product_coeff_impl;
-
-template<int StorageOrder, int UnrollingIndex, typename Lhs, typename Rhs, typename Packet, int LoadMode>
-struct product_packet_impl;
-
-template<typename LhsNested, typename RhsNested, int NestingFlags>
-struct traits<CoeffBasedProduct<LhsNested,RhsNested,NestingFlags> >
-{
-  typedef MatrixXpr XprKind;
-  typedef typename remove_all<LhsNested>::type _LhsNested;
-  typedef typename remove_all<RhsNested>::type _RhsNested;
-  typedef typename scalar_product_traits<typename _LhsNested::Scalar, typename _RhsNested::Scalar>::ReturnType Scalar;
-  typedef typename promote_storage_type<typename traits<_LhsNested>::StorageKind,
-                                           typename traits<_RhsNested>::StorageKind>::ret StorageKind;
-  typedef typename promote_index_type<typename traits<_LhsNested>::Index,
-                                         typename traits<_RhsNested>::Index>::type Index;
-
-  enum {
-      LhsCoeffReadCost = _LhsNested::CoeffReadCost,
-      RhsCoeffReadCost = _RhsNested::CoeffReadCost,
-      LhsFlags = _LhsNested::Flags,
-      RhsFlags = _RhsNested::Flags,
-
-      RowsAtCompileTime = _LhsNested::RowsAtCompileTime,
-      ColsAtCompileTime = _RhsNested::ColsAtCompileTime,
-      InnerSize = EIGEN_SIZE_MIN_PREFER_FIXED(_LhsNested::ColsAtCompileTime, _RhsNested::RowsAtCompileTime),
-
-      MaxRowsAtCompileTime = _LhsNested::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = _RhsNested::MaxColsAtCompileTime,
-
-      LhsRowMajor = LhsFlags & RowMajorBit,
-      RhsRowMajor = RhsFlags & RowMajorBit,
-
-      SameType = is_same<typename _LhsNested::Scalar,typename _RhsNested::Scalar>::value,
-
-      CanVectorizeRhs = RhsRowMajor && (RhsFlags & PacketAccessBit)
-                      && (ColsAtCompileTime == Dynamic
-                          || ( (ColsAtCompileTime % packet_traits<Scalar>::size) == 0
-                              && (RhsFlags&AlignedBit)
-                             )
-                         ),
-
-      CanVectorizeLhs = (!LhsRowMajor) && (LhsFlags & PacketAccessBit)
-                      && (RowsAtCompileTime == Dynamic
-                          || ( (RowsAtCompileTime % packet_traits<Scalar>::size) == 0
-                              && (LhsFlags&AlignedBit)
-                             )
-                         ),
-
-      EvalToRowMajor = (MaxRowsAtCompileTime==1&&MaxColsAtCompileTime!=1) ? 1
-                     : (MaxColsAtCompileTime==1&&MaxRowsAtCompileTime!=1) ? 0
-                     : (RhsRowMajor && !CanVectorizeLhs),
-
-      Flags = ((unsigned int)(LhsFlags | RhsFlags) & HereditaryBits & ~RowMajorBit)
-            | (EvalToRowMajor ? RowMajorBit : 0)
-            | NestingFlags
-            | (LhsFlags & RhsFlags & AlignedBit)
-            // TODO enable vectorization for mixed types
-            | (SameType && (CanVectorizeLhs || CanVectorizeRhs) ? PacketAccessBit : 0),
-
-      CoeffReadCost = InnerSize == Dynamic ? Dynamic
-                    : InnerSize * (NumTraits<Scalar>::MulCost + LhsCoeffReadCost + RhsCoeffReadCost)
-                      + (InnerSize - 1) * NumTraits<Scalar>::AddCost,
-
-      /* CanVectorizeInner deserves special explanation. It does not affect the product flags. It is not used outside
-      * of Product. If the Product itself is not a packet-access expression, there is still a chance that the inner
-      * loop of the product might be vectorized. This is the meaning of CanVectorizeInner. Since it doesn't affect
-      * the Flags, it is safe to make this value depend on ActualPacketAccessBit, that doesn't affect the ABI.
-      */
-      CanVectorizeInner =    SameType
-                          && LhsRowMajor
-                          && (!RhsRowMajor)
-                          && (LhsFlags & RhsFlags & ActualPacketAccessBit)
-                          && (LhsFlags & RhsFlags & AlignedBit)
-                          && (InnerSize % packet_traits<Scalar>::size == 0)
-    };
-};
-
-} // end namespace internal
-
-template<typename LhsNested, typename RhsNested, int NestingFlags>
-class CoeffBasedProduct
-  : internal::no_assignment_operator,
-    public MatrixBase<CoeffBasedProduct<LhsNested, RhsNested, NestingFlags> >
-{
-  public:
-
-    typedef MatrixBase<CoeffBasedProduct> Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(CoeffBasedProduct)
-    typedef typename Base::PlainObject PlainObject;
-
-  private:
-
-    typedef typename internal::traits<CoeffBasedProduct>::_LhsNested _LhsNested;
-    typedef typename internal::traits<CoeffBasedProduct>::_RhsNested _RhsNested;
-
-    enum {
-      PacketSize = internal::packet_traits<Scalar>::size,
-      InnerSize  = internal::traits<CoeffBasedProduct>::InnerSize,
-      Unroll = CoeffReadCost != Dynamic && CoeffReadCost <= EIGEN_UNROLLING_LIMIT,
-      CanVectorizeInner = internal::traits<CoeffBasedProduct>::CanVectorizeInner
-    };
-
-    typedef internal::product_coeff_impl<CanVectorizeInner ? InnerVectorizedTraversal : DefaultTraversal,
-                                   Unroll ? InnerSize-1 : Dynamic,
-                                   _LhsNested, _RhsNested, Scalar> ScalarCoeffImpl;
-
-    typedef CoeffBasedProduct<LhsNested,RhsNested,NestByRefBit> LazyCoeffBasedProductType;
-
-  public:
-
-    inline CoeffBasedProduct(const CoeffBasedProduct& other)
-      : Base(), m_lhs(other.m_lhs), m_rhs(other.m_rhs)
-    {}
-
-    template<typename Lhs, typename Rhs>
-    inline CoeffBasedProduct(const Lhs& lhs, const Rhs& rhs)
-      : m_lhs(lhs), m_rhs(rhs)
-    {
-      // we don't allow taking products of matrices of different real types, as that wouldn't be vectorizable.
-      // We still allow to mix T and complex<T>.
-      EIGEN_STATIC_ASSERT((internal::scalar_product_traits<typename Lhs::RealScalar, typename Rhs::RealScalar>::Defined),
-        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
-      eigen_assert(lhs.cols() == rhs.rows()
-        && "invalid matrix product"
-        && "if you wanted a coeff-wise or a dot product use the respective explicit functions");
-    }
-
-    EIGEN_STRONG_INLINE Index rows() const { return m_lhs.rows(); }
-    EIGEN_STRONG_INLINE Index cols() const { return m_rhs.cols(); }
-
-    EIGEN_STRONG_INLINE const Scalar coeff(Index row, Index col) const
-    {
-      Scalar res;
-      ScalarCoeffImpl::run(row, col, m_lhs, m_rhs, res);
-      return res;
-    }
-
-    /* Allow index-based non-packet access. It is impossible though to allow index-based packed access,
-     * which is why we don't set the LinearAccessBit.
-     */
-    EIGEN_STRONG_INLINE const Scalar coeff(Index index) const
-    {
-      Scalar res;
-      const Index row = RowsAtCompileTime == 1 ? 0 : index;
-      const Index col = RowsAtCompileTime == 1 ? index : 0;
-      ScalarCoeffImpl::run(row, col, m_lhs, m_rhs, res);
-      return res;
-    }
-
-    template<int LoadMode>
-    EIGEN_STRONG_INLINE const PacketScalar packet(Index row, Index col) const
-    {
-      PacketScalar res;
-      internal::product_packet_impl<Flags&RowMajorBit ? RowMajor : ColMajor,
-                              Unroll ? InnerSize-1 : Dynamic,
-                              _LhsNested, _RhsNested, PacketScalar, LoadMode>
-        ::run(row, col, m_lhs, m_rhs, res);
-      return res;
-    }
-
-    // Implicit conversion to the nested type (trigger the evaluation of the product)
-    EIGEN_STRONG_INLINE operator const PlainObject& () const
-    {
-      m_result.lazyAssign(*this);
-      return m_result;
-    }
-
-    const _LhsNested& lhs() const { return m_lhs; }
-    const _RhsNested& rhs() const { return m_rhs; }
-
-    const Diagonal<const LazyCoeffBasedProductType,0> diagonal() const
-    { return reinterpret_cast<const LazyCoeffBasedProductType&>(*this); }
-
-    template<int DiagonalIndex>
-    const Diagonal<const LazyCoeffBasedProductType,DiagonalIndex> diagonal() const
-    { return reinterpret_cast<const LazyCoeffBasedProductType&>(*this); }
-
-    const Diagonal<const LazyCoeffBasedProductType,Dynamic> diagonal(Index index) const
-    { return reinterpret_cast<const LazyCoeffBasedProductType&>(*this).diagonal(index); }
-
-  protected:
-    typename internal::add_const_on_value_type<LhsNested>::type m_lhs;
-    typename internal::add_const_on_value_type<RhsNested>::type m_rhs;
-
-    mutable PlainObject m_result;
-};
-
-namespace internal {
-
-// here we need to overload the nested rule for products
-// such that the nested type is a const reference to a plain matrix
-template<typename Lhs, typename Rhs, int N, typename PlainObject>
-struct nested<CoeffBasedProduct<Lhs,Rhs,EvalBeforeNestingBit|EvalBeforeAssigningBit>, N, PlainObject>
-{
-  typedef PlainObject const& type;
-};
-
-/***************************************************************************
-* Normal product .coeff() implementation (with meta-unrolling)
-***************************************************************************/
-
-/**************************************
-*** Scalar path  - no vectorization ***
-**************************************/
-
-template<int UnrollingIndex, typename Lhs, typename Rhs, typename RetScalar>
-struct product_coeff_impl<DefaultTraversal, UnrollingIndex, Lhs, Rhs, RetScalar>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, RetScalar &res)
-  {
-    product_coeff_impl<DefaultTraversal, UnrollingIndex-1, Lhs, Rhs, RetScalar>::run(row, col, lhs, rhs, res);
-    res += lhs.coeff(row, UnrollingIndex) * rhs.coeff(UnrollingIndex, col);
-  }
-};
-
-template<typename Lhs, typename Rhs, typename RetScalar>
-struct product_coeff_impl<DefaultTraversal, 0, Lhs, Rhs, RetScalar>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, RetScalar &res)
-  {
-    res = lhs.coeff(row, 0) * rhs.coeff(0, col);
-  }
-};
-
-template<typename Lhs, typename Rhs, typename RetScalar>
-struct product_coeff_impl<DefaultTraversal, Dynamic, Lhs, Rhs, RetScalar>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, RetScalar& res)
-  {
-    eigen_assert(lhs.cols()>0 && "you are using a non initialized matrix");
-    res = lhs.coeff(row, 0) * rhs.coeff(0, col);
-      for(Index i = 1; i < lhs.cols(); ++i)
-        res += lhs.coeff(row, i) * rhs.coeff(i, col);
-  }
-};
-
-/*******************************************
-*** Scalar path with inner vectorization ***
-*******************************************/
-
-template<int UnrollingIndex, typename Lhs, typename Rhs, typename Packet>
-struct product_coeff_vectorized_unroller
-{
-  typedef typename Lhs::Index Index;
-  enum { PacketSize = packet_traits<typename Lhs::Scalar>::size };
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, typename Lhs::PacketScalar &pres)
-  {
-    product_coeff_vectorized_unroller<UnrollingIndex-PacketSize, Lhs, Rhs, Packet>::run(row, col, lhs, rhs, pres);
-    pres = padd(pres, pmul( lhs.template packet<Aligned>(row, UnrollingIndex) , rhs.template packet<Aligned>(UnrollingIndex, col) ));
-  }
-};
-
-template<typename Lhs, typename Rhs, typename Packet>
-struct product_coeff_vectorized_unroller<0, Lhs, Rhs, Packet>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, typename Lhs::PacketScalar &pres)
-  {
-    pres = pmul(lhs.template packet<Aligned>(row, 0) , rhs.template packet<Aligned>(0, col));
-  }
-};
-
-template<int UnrollingIndex, typename Lhs, typename Rhs, typename RetScalar>
-struct product_coeff_impl<InnerVectorizedTraversal, UnrollingIndex, Lhs, Rhs, RetScalar>
-{
-  typedef typename Lhs::PacketScalar Packet;
-  typedef typename Lhs::Index Index;
-  enum { PacketSize = packet_traits<typename Lhs::Scalar>::size };
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, RetScalar &res)
-  {
-    Packet pres;
-    product_coeff_vectorized_unroller<UnrollingIndex+1-PacketSize, Lhs, Rhs, Packet>::run(row, col, lhs, rhs, pres);
-    product_coeff_impl<DefaultTraversal,UnrollingIndex,Lhs,Rhs,RetScalar>::run(row, col, lhs, rhs, res);
-    res = predux(pres);
-  }
-};
-
-template<typename Lhs, typename Rhs, int LhsRows = Lhs::RowsAtCompileTime, int RhsCols = Rhs::ColsAtCompileTime>
-struct product_coeff_vectorized_dyn_selector
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar &res)
-  {
-    res = lhs.row(row).transpose().cwiseProduct(rhs.col(col)).sum();
-  }
-};
-
-// NOTE the 3 following specializations are because taking .col(0) on a vector is a bit slower
-// NOTE maybe they are now useless since we have a specialization for Block<Matrix>
-template<typename Lhs, typename Rhs, int RhsCols>
-struct product_coeff_vectorized_dyn_selector<Lhs,Rhs,1,RhsCols>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index /*row*/, Index col, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar &res)
-  {
-    res = lhs.transpose().cwiseProduct(rhs.col(col)).sum();
-  }
-};
-
-template<typename Lhs, typename Rhs, int LhsRows>
-struct product_coeff_vectorized_dyn_selector<Lhs,Rhs,LhsRows,1>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index /*col*/, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar &res)
-  {
-    res = lhs.row(row).transpose().cwiseProduct(rhs).sum();
-  }
-};
-
-template<typename Lhs, typename Rhs>
-struct product_coeff_vectorized_dyn_selector<Lhs,Rhs,1,1>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar &res)
-  {
-    res = lhs.transpose().cwiseProduct(rhs).sum();
-  }
-};
-
-template<typename Lhs, typename Rhs, typename RetScalar>
-struct product_coeff_impl<InnerVectorizedTraversal, Dynamic, Lhs, Rhs, RetScalar>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar &res)
-  {
-    product_coeff_vectorized_dyn_selector<Lhs,Rhs>::run(row, col, lhs, rhs, res);
-  }
-};
-
-/*******************
-*** Packet path  ***
-*******************/
-
-template<int UnrollingIndex, typename Lhs, typename Rhs, typename Packet, int LoadMode>
-struct product_packet_impl<RowMajor, UnrollingIndex, Lhs, Rhs, Packet, LoadMode>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet &res)
-  {
-    product_packet_impl<RowMajor, UnrollingIndex-1, Lhs, Rhs, Packet, LoadMode>::run(row, col, lhs, rhs, res);
-    res =  pmadd(pset1<Packet>(lhs.coeff(row, UnrollingIndex)), rhs.template packet<LoadMode>(UnrollingIndex, col), res);
-  }
-};
-
-template<int UnrollingIndex, typename Lhs, typename Rhs, typename Packet, int LoadMode>
-struct product_packet_impl<ColMajor, UnrollingIndex, Lhs, Rhs, Packet, LoadMode>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet &res)
-  {
-    product_packet_impl<ColMajor, UnrollingIndex-1, Lhs, Rhs, Packet, LoadMode>::run(row, col, lhs, rhs, res);
-    res =  pmadd(lhs.template packet<LoadMode>(row, UnrollingIndex), pset1<Packet>(rhs.coeff(UnrollingIndex, col)), res);
-  }
-};
-
-template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
-struct product_packet_impl<RowMajor, 0, Lhs, Rhs, Packet, LoadMode>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet &res)
-  {
-    res = pmul(pset1<Packet>(lhs.coeff(row, 0)),rhs.template packet<LoadMode>(0, col));
-  }
-};
-
-template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
-struct product_packet_impl<ColMajor, 0, Lhs, Rhs, Packet, LoadMode>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet &res)
-  {
-    res = pmul(lhs.template packet<LoadMode>(row, 0), pset1<Packet>(rhs.coeff(0, col)));
-  }
-};
-
-template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
-struct product_packet_impl<RowMajor, Dynamic, Lhs, Rhs, Packet, LoadMode>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet& res)
-  {
-    eigen_assert(lhs.cols()>0 && "you are using a non initialized matrix");
-    res = pmul(pset1<Packet>(lhs.coeff(row, 0)),rhs.template packet<LoadMode>(0, col));
-      for(Index i = 1; i < lhs.cols(); ++i)
-        res =  pmadd(pset1<Packet>(lhs.coeff(row, i)), rhs.template packet<LoadMode>(i, col), res);
-  }
-};
-
-template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
-struct product_packet_impl<ColMajor, Dynamic, Lhs, Rhs, Packet, LoadMode>
-{
-  typedef typename Lhs::Index Index;
-  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet& res)
-  {
-    eigen_assert(lhs.cols()>0 && "you are using a non initialized matrix");
-    res = pmul(lhs.template packet<LoadMode>(row, 0), pset1<Packet>(rhs.coeff(0, col)));
-      for(Index i = 1; i < lhs.cols(); ++i)
-        res =  pmadd(lhs.template packet<LoadMode>(row, i), pset1<Packet>(rhs.coeff(i, col)), res);
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_COEFFBASED_PRODUCT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralBlockPanelKernel.h
deleted file mode 100644
index 780fa74..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralBlockPanelKernel.h
+++ /dev/null
@@ -1,1335 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_GENERAL_BLOCK_PANEL_H
-#define EIGEN_GENERAL_BLOCK_PANEL_H
-
-namespace Eigen { 
-  
-namespace internal {
-
-template<typename _LhsScalar, typename _RhsScalar, bool _ConjLhs=false, bool _ConjRhs=false>
-class gebp_traits;
-
-
-/** \internal \returns b if a<=0, and returns a otherwise. */
-inline std::ptrdiff_t manage_caching_sizes_helper(std::ptrdiff_t a, std::ptrdiff_t b)
-{
-  return a<=0 ? b : a;
-}
-
-/** \internal */
-inline void manage_caching_sizes(Action action, std::ptrdiff_t* l1=0, std::ptrdiff_t* l2=0)
-{
-  static std::ptrdiff_t m_l1CacheSize = 0;
-  static std::ptrdiff_t m_l2CacheSize = 0;
-  if(m_l2CacheSize==0)
-  {
-    m_l1CacheSize = manage_caching_sizes_helper(queryL1CacheSize(),8 * 1024);
-    m_l2CacheSize = manage_caching_sizes_helper(queryTopLevelCacheSize(),1*1024*1024);
-  }
-  
-  if(action==SetAction)
-  {
-    // set the cpu cache size and cache all block sizes from a global cache size in byte
-    eigen_internal_assert(l1!=0 && l2!=0);
-    m_l1CacheSize = *l1;
-    m_l2CacheSize = *l2;
-  }
-  else if(action==GetAction)
-  {
-    eigen_internal_assert(l1!=0 && l2!=0);
-    *l1 = m_l1CacheSize;
-    *l2 = m_l2CacheSize;
-  }
-  else
-  {
-    eigen_internal_assert(false);
-  }
-}
-
-/** \brief Computes the blocking parameters for a m x k times k x n matrix product
-  *
-  * \param[in,out] k Input: the third dimension of the product. Output: the blocking size along the same dimension.
-  * \param[in,out] m Input: the number of rows of the left hand side. Output: the blocking size along the same dimension.
-  * \param[in,out] n Input: the number of columns of the right hand side. Output: the blocking size along the same dimension.
-  *
-  * Given a m x k times k x n matrix product of scalar types \c LhsScalar and \c RhsScalar,
-  * this function computes the blocking size parameters along the respective dimensions
-  * for matrix products and related algorithms. The blocking sizes depends on various
-  * parameters:
-  * - the L1 and L2 cache sizes,
-  * - the register level blocking sizes defined by gebp_traits,
-  * - the number of scalars that fit into a packet (when vectorization is enabled).
-  *
-  * \sa setCpuCacheSizes */
-template<typename LhsScalar, typename RhsScalar, int KcFactor, typename SizeType>
-void computeProductBlockingSizes(SizeType& k, SizeType& m, SizeType& n)
-{
-  EIGEN_UNUSED_VARIABLE(n);
-  // Explanations:
-  // Let's recall the product algorithms form kc x nc horizontal panels B' on the rhs and
-  // mc x kc blocks A' on the lhs. A' has to fit into L2 cache. Moreover, B' is processed
-  // per kc x nr vertical small panels where nr is the blocking size along the n dimension
-  // at the register level. For vectorization purpose, these small vertical panels are unpacked,
-  // e.g., each coefficient is replicated to fit a packet. This small vertical panel has to
-  // stay in L1 cache.
-  std::ptrdiff_t l1, l2;
-
-  typedef gebp_traits<LhsScalar,RhsScalar> Traits;
-  enum {
-    kdiv = KcFactor * 2 * Traits::nr
-         * Traits::RhsProgress * sizeof(RhsScalar),
-    mr = gebp_traits<LhsScalar,RhsScalar>::mr,
-    mr_mask = (0xffffffff/mr)*mr
-  };
-
-  manage_caching_sizes(GetAction, &l1, &l2);
-  k = std::min<SizeType>(k, l1/kdiv);
-  SizeType _m = k>0 ? l2/(4 * sizeof(LhsScalar) * k) : 0;
-  if(_m<m) m = _m & mr_mask;
-}
-
-template<typename LhsScalar, typename RhsScalar, typename SizeType>
-inline void computeProductBlockingSizes(SizeType& k, SizeType& m, SizeType& n)
-{
-  computeProductBlockingSizes<LhsScalar,RhsScalar,1>(k, m, n);
-}
-
-#ifdef EIGEN_HAS_FUSE_CJMADD
-  #define MADD(CJ,A,B,C,T)  C = CJ.pmadd(A,B,C);
-#else
-
-  // FIXME (a bit overkill maybe ?)
-
-  template<typename CJ, typename A, typename B, typename C, typename T> struct gebp_madd_selector {
-    EIGEN_ALWAYS_INLINE static void run(const CJ& cj, A& a, B& b, C& c, T& /*t*/)
-    {
-      c = cj.pmadd(a,b,c);
-    }
-  };
-
-  template<typename CJ, typename T> struct gebp_madd_selector<CJ,T,T,T,T> {
-    EIGEN_ALWAYS_INLINE static void run(const CJ& cj, T& a, T& b, T& c, T& t)
-    {
-      t = b; t = cj.pmul(a,t); c = padd(c,t);
-    }
-  };
-
-  template<typename CJ, typename A, typename B, typename C, typename T>
-  EIGEN_STRONG_INLINE void gebp_madd(const CJ& cj, A& a, B& b, C& c, T& t)
-  {
-    gebp_madd_selector<CJ,A,B,C,T>::run(cj,a,b,c,t);
-  }
-
-  #define MADD(CJ,A,B,C,T)  gebp_madd(CJ,A,B,C,T);
-//   #define MADD(CJ,A,B,C,T)  T = B; T = CJ.pmul(A,T); C = padd(C,T);
-#endif
-
-/* Vectorization logic
- *  real*real: unpack rhs to constant packets, ...
- * 
- *  cd*cd : unpack rhs to (b_r,b_r), (b_i,b_i), mul to get (a_r b_r,a_i b_r) (a_r b_i,a_i b_i),
- *          storing each res packet into two packets (2x2),
- *          at the end combine them: swap the second and addsub them 
- *  cf*cf : same but with 2x4 blocks
- *  cplx*real : unpack rhs to constant packets, ...
- *  real*cplx : load lhs as (a0,a0,a1,a1), and mul as usual
- */
-template<typename _LhsScalar, typename _RhsScalar, bool _ConjLhs, bool _ConjRhs>
-class gebp_traits
-{
-public:
-  typedef _LhsScalar LhsScalar;
-  typedef _RhsScalar RhsScalar;
-  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
-
-  enum {
-    ConjLhs = _ConjLhs,
-    ConjRhs = _ConjRhs,
-    Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable,
-    LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
-    RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
-    ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1,
-    
-    NumberOfRegisters = EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS,
-
-    // register block size along the N direction (must be either 2 or 4)
-    nr = NumberOfRegisters/4,
-
-    // register block size along the M direction (currently, this one cannot be modified)
-    mr = 2 * LhsPacketSize,
-    
-    WorkSpaceFactor = nr * RhsPacketSize,
-
-    LhsProgress = LhsPacketSize,
-    RhsProgress = RhsPacketSize
-  };
-
-  typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
-  typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
-  typedef typename packet_traits<ResScalar>::type  _ResPacket;
-
-  typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
-  typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
-  typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
-
-  typedef ResPacket AccPacket;
-  
-  EIGEN_STRONG_INLINE void initAcc(AccPacket& p)
-  {
-    p = pset1<ResPacket>(ResScalar(0));
-  }
-
-  EIGEN_STRONG_INLINE void unpackRhs(DenseIndex n, const RhsScalar* rhs, RhsScalar* b)
-  {
-    for(DenseIndex k=0; k<n; k++)
-      pstore1<RhsPacket>(&b[k*RhsPacketSize], rhs[k]);
-  }
-
-  EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacket& dest) const
-  {
-    dest = pload<RhsPacket>(b);
-  }
-
-  EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
-  {
-    dest = pload<LhsPacket>(a);
-  }
-
-  EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, AccPacket& c, AccPacket& tmp) const
-  {
-    tmp = b; tmp = pmul(a,tmp); c = padd(c,tmp);
-  }
-
-  EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha, ResPacket& r) const
-  {
-    r = pmadd(c,alpha,r);
-  }
-
-protected:
-//   conj_helper<LhsScalar,RhsScalar,ConjLhs,ConjRhs> cj;
-//   conj_helper<LhsPacket,RhsPacket,ConjLhs,ConjRhs> pcj;
-};
-
-template<typename RealScalar, bool _ConjLhs>
-class gebp_traits<std::complex<RealScalar>, RealScalar, _ConjLhs, false>
-{
-public:
-  typedef std::complex<RealScalar> LhsScalar;
-  typedef RealScalar RhsScalar;
-  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
-
-  enum {
-    ConjLhs = _ConjLhs,
-    ConjRhs = false,
-    Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable,
-    LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
-    RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
-    ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1,
-    
-    NumberOfRegisters = EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS,
-    nr = NumberOfRegisters/4,
-    mr = 2 * LhsPacketSize,
-    WorkSpaceFactor = nr*RhsPacketSize,
-
-    LhsProgress = LhsPacketSize,
-    RhsProgress = RhsPacketSize
-  };
-
-  typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
-  typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
-  typedef typename packet_traits<ResScalar>::type  _ResPacket;
-
-  typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
-  typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
-  typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
-
-  typedef ResPacket AccPacket;
-
-  EIGEN_STRONG_INLINE void initAcc(AccPacket& p)
-  {
-    p = pset1<ResPacket>(ResScalar(0));
-  }
-
-  EIGEN_STRONG_INLINE void unpackRhs(DenseIndex n, const RhsScalar* rhs, RhsScalar* b)
-  {
-    for(DenseIndex k=0; k<n; k++)
-      pstore1<RhsPacket>(&b[k*RhsPacketSize], rhs[k]);
-  }
-
-  EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacket& dest) const
-  {
-    dest = pload<RhsPacket>(b);
-  }
-
-  EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
-  {
-    dest = pload<LhsPacket>(a);
-  }
-
-  EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp) const
-  {
-    madd_impl(a, b, c, tmp, typename conditional<Vectorizable,true_type,false_type>::type());
-  }
-
-  EIGEN_STRONG_INLINE void madd_impl(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp, const true_type&) const
-  {
-    tmp = b; tmp = pmul(a.v,tmp); c.v = padd(c.v,tmp);
-  }
-
-  EIGEN_STRONG_INLINE void madd_impl(const LhsScalar& a, const RhsScalar& b, ResScalar& c, RhsScalar& /*tmp*/, const false_type&) const
-  {
-    c += a * b;
-  }
-
-  EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha, ResPacket& r) const
-  {
-    r = cj.pmadd(c,alpha,r);
-  }
-
-protected:
-  conj_helper<ResPacket,ResPacket,ConjLhs,false> cj;
-};
-
-template<typename RealScalar, bool _ConjLhs, bool _ConjRhs>
-class gebp_traits<std::complex<RealScalar>, std::complex<RealScalar>, _ConjLhs, _ConjRhs >
-{
-public:
-  typedef std::complex<RealScalar>  Scalar;
-  typedef std::complex<RealScalar>  LhsScalar;
-  typedef std::complex<RealScalar>  RhsScalar;
-  typedef std::complex<RealScalar>  ResScalar;
-  
-  enum {
-    ConjLhs = _ConjLhs,
-    ConjRhs = _ConjRhs,
-    Vectorizable = packet_traits<RealScalar>::Vectorizable
-                && packet_traits<Scalar>::Vectorizable,
-    RealPacketSize  = Vectorizable ? packet_traits<RealScalar>::size : 1,
-    ResPacketSize   = Vectorizable ? packet_traits<ResScalar>::size : 1,
-    
-    nr = 2,
-    mr = 2 * ResPacketSize,
-    WorkSpaceFactor = Vectorizable ? 2*nr*RealPacketSize : nr,
-
-    LhsProgress = ResPacketSize,
-    RhsProgress = Vectorizable ? 2*ResPacketSize : 1
-  };
-  
-  typedef typename packet_traits<RealScalar>::type RealPacket;
-  typedef typename packet_traits<Scalar>::type     ScalarPacket;
-  struct DoublePacket
-  {
-    RealPacket first;
-    RealPacket second;
-  };
-
-  typedef typename conditional<Vectorizable,RealPacket,  Scalar>::type LhsPacket;
-  typedef typename conditional<Vectorizable,DoublePacket,Scalar>::type RhsPacket;
-  typedef typename conditional<Vectorizable,ScalarPacket,Scalar>::type ResPacket;
-  typedef typename conditional<Vectorizable,DoublePacket,Scalar>::type AccPacket;
-  
-  EIGEN_STRONG_INLINE void initAcc(Scalar& p) { p = Scalar(0); }
-
-  EIGEN_STRONG_INLINE void initAcc(DoublePacket& p)
-  {
-    p.first   = pset1<RealPacket>(RealScalar(0));
-    p.second  = pset1<RealPacket>(RealScalar(0));
-  }
-
-  /* Unpack the rhs coeff such that each complex coefficient is spread into
-   * two packects containing respectively the real and imaginary coefficient
-   * duplicated as many time as needed: (x+iy) => [x, ..., x] [y, ..., y]
-   */
-  EIGEN_STRONG_INLINE void unpackRhs(DenseIndex n, const Scalar* rhs, Scalar* b)
-  {
-    for(DenseIndex k=0; k<n; k++)
-    {
-      if(Vectorizable)
-      {
-        pstore1<RealPacket>((RealScalar*)&b[k*ResPacketSize*2+0],             real(rhs[k]));
-        pstore1<RealPacket>((RealScalar*)&b[k*ResPacketSize*2+ResPacketSize], imag(rhs[k]));
-      }
-      else
-        b[k] = rhs[k];
-    }
-  }
-
-  EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, ResPacket& dest) const { dest = *b; }
-
-  EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, DoublePacket& dest) const
-  {
-    dest.first  = pload<RealPacket>((const RealScalar*)b);
-    dest.second = pload<RealPacket>((const RealScalar*)(b+ResPacketSize));
-  }
-
-  // nothing special here
-  EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
-  {
-    dest = pload<LhsPacket>((const typename unpacket_traits<LhsPacket>::type*)(a));
-  }
-
-  EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, DoublePacket& c, RhsPacket& /*tmp*/) const
-  {
-    c.first   = padd(pmul(a,b.first), c.first);
-    c.second  = padd(pmul(a,b.second),c.second);
-  }
-
-  EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, ResPacket& c, RhsPacket& /*tmp*/) const
-  {
-    c = cj.pmadd(a,b,c);
-  }
-  
-  EIGEN_STRONG_INLINE void acc(const Scalar& c, const Scalar& alpha, Scalar& r) const { r += alpha * c; }
-  
-  EIGEN_STRONG_INLINE void acc(const DoublePacket& c, const ResPacket& alpha, ResPacket& r) const
-  {
-    // assemble c
-    ResPacket tmp;
-    if((!ConjLhs)&&(!ConjRhs))
-    {
-      tmp = pcplxflip(pconj(ResPacket(c.second)));
-      tmp = padd(ResPacket(c.first),tmp);
-    }
-    else if((!ConjLhs)&&(ConjRhs))
-    {
-      tmp = pconj(pcplxflip(ResPacket(c.second)));
-      tmp = padd(ResPacket(c.first),tmp);
-    }
-    else if((ConjLhs)&&(!ConjRhs))
-    {
-      tmp = pcplxflip(ResPacket(c.second));
-      tmp = padd(pconj(ResPacket(c.first)),tmp);
-    }
-    else if((ConjLhs)&&(ConjRhs))
-    {
-      tmp = pcplxflip(ResPacket(c.second));
-      tmp = psub(pconj(ResPacket(c.first)),tmp);
-    }
-    
-    r = pmadd(tmp,alpha,r);
-  }
-
-protected:
-  conj_helper<LhsScalar,RhsScalar,ConjLhs,ConjRhs> cj;
-};
-
-template<typename RealScalar, bool _ConjRhs>
-class gebp_traits<RealScalar, std::complex<RealScalar>, false, _ConjRhs >
-{
-public:
-  typedef std::complex<RealScalar>  Scalar;
-  typedef RealScalar  LhsScalar;
-  typedef Scalar      RhsScalar;
-  typedef Scalar      ResScalar;
-
-  enum {
-    ConjLhs = false,
-    ConjRhs = _ConjRhs,
-    Vectorizable = packet_traits<RealScalar>::Vectorizable
-                && packet_traits<Scalar>::Vectorizable,
-    LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
-    RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
-    ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1,
-    
-    NumberOfRegisters = EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS,
-    nr = 4,
-    mr = 2*ResPacketSize,
-    WorkSpaceFactor = nr*RhsPacketSize,
-
-    LhsProgress = ResPacketSize,
-    RhsProgress = ResPacketSize
-  };
-
-  typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
-  typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
-  typedef typename packet_traits<ResScalar>::type  _ResPacket;
-
-  typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
-  typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
-  typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
-
-  typedef ResPacket AccPacket;
-
-  EIGEN_STRONG_INLINE void initAcc(AccPacket& p)
-  {
-    p = pset1<ResPacket>(ResScalar(0));
-  }
-
-  EIGEN_STRONG_INLINE void unpackRhs(DenseIndex n, const RhsScalar* rhs, RhsScalar* b)
-  {
-    for(DenseIndex k=0; k<n; k++)
-      pstore1<RhsPacket>(&b[k*RhsPacketSize], rhs[k]);
-  }
-
-  EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacket& dest) const
-  {
-    dest = pload<RhsPacket>(b);
-  }
-
-  EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
-  {
-    dest = ploaddup<LhsPacket>(a);
-  }
-
-  EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp) const
-  {
-    madd_impl(a, b, c, tmp, typename conditional<Vectorizable,true_type,false_type>::type());
-  }
-
-  EIGEN_STRONG_INLINE void madd_impl(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp, const true_type&) const
-  {
-    tmp = b; tmp.v = pmul(a,tmp.v); c = padd(c,tmp);
-  }
-
-  EIGEN_STRONG_INLINE void madd_impl(const LhsScalar& a, const RhsScalar& b, ResScalar& c, RhsScalar& /*tmp*/, const false_type&) const
-  {
-    c += a * b;
-  }
-
-  EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha, ResPacket& r) const
-  {
-    r = cj.pmadd(alpha,c,r);
-  }
-
-protected:
-  conj_helper<ResPacket,ResPacket,false,ConjRhs> cj;
-};
-
-/* optimized GEneral packed Block * packed Panel product kernel
- *
- * Mixing type logic: C += A * B
- *  |  A  |  B  | comments
- *  |real |cplx | no vectorization yet, would require to pack A with duplication
- *  |cplx |real | easy vectorization
- */
-template<typename LhsScalar, typename RhsScalar, typename Index, int mr, int nr, bool ConjugateLhs, bool ConjugateRhs>
-struct gebp_kernel
-{
-  typedef gebp_traits<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> Traits;
-  typedef typename Traits::ResScalar ResScalar;
-  typedef typename Traits::LhsPacket LhsPacket;
-  typedef typename Traits::RhsPacket RhsPacket;
-  typedef typename Traits::ResPacket ResPacket;
-  typedef typename Traits::AccPacket AccPacket;
-
-  enum {
-    Vectorizable  = Traits::Vectorizable,
-    LhsProgress   = Traits::LhsProgress,
-    RhsProgress   = Traits::RhsProgress,
-    ResPacketSize = Traits::ResPacketSize
-  };
-
-  EIGEN_DONT_INLINE
-  void operator()(ResScalar* res, Index resStride, const LhsScalar* blockA, const RhsScalar* blockB, Index rows, Index depth, Index cols, ResScalar alpha,
-                  Index strideA=-1, Index strideB=-1, Index offsetA=0, Index offsetB=0, RhsScalar* unpackedB=0);
-};
-
-template<typename LhsScalar, typename RhsScalar, typename Index, int mr, int nr, bool ConjugateLhs, bool ConjugateRhs>
-EIGEN_DONT_INLINE
-void gebp_kernel<LhsScalar,RhsScalar,Index,mr,nr,ConjugateLhs,ConjugateRhs>
-  ::operator()(ResScalar* res, Index resStride, const LhsScalar* blockA, const RhsScalar* blockB, Index rows, Index depth, Index cols, ResScalar alpha,
-               Index strideA, Index strideB, Index offsetA, Index offsetB, RhsScalar* unpackedB)
-  {
-    Traits traits;
-    
-    if(strideA==-1) strideA = depth;
-    if(strideB==-1) strideB = depth;
-    conj_helper<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> cj;
-//     conj_helper<LhsPacket,RhsPacket,ConjugateLhs,ConjugateRhs> pcj;
-    Index packet_cols = (cols/nr) * nr;
-    const Index peeled_mc = (rows/mr)*mr;
-    // FIXME:
-    const Index peeled_mc2 = peeled_mc + (rows-peeled_mc >= LhsProgress ? LhsProgress : 0);
-    const Index peeled_kc = (depth/4)*4;
-
-    if(unpackedB==0)
-      unpackedB = const_cast<RhsScalar*>(blockB - strideB * nr * RhsProgress);
-
-    // loops on each micro vertical panel of rhs (depth x nr)
-    for(Index j2=0; j2<packet_cols; j2+=nr)
-    {
-      traits.unpackRhs(depth*nr,&blockB[j2*strideB+offsetB*nr],unpackedB); 
-
-      // loops on each largest micro horizontal panel of lhs (mr x depth)
-      // => we select a mr x nr micro block of res which is entirely
-      //    stored into mr/packet_size x nr registers.
-      for(Index i=0; i<peeled_mc; i+=mr)
-      {
-        const LhsScalar* blA = &blockA[i*strideA+offsetA*mr];
-        prefetch(&blA[0]);
-
-        // gets res block as register
-        AccPacket C0, C1, C2, C3, C4, C5, C6, C7;
-                  traits.initAcc(C0);
-                  traits.initAcc(C1);
-        if(nr==4) traits.initAcc(C2);
-        if(nr==4) traits.initAcc(C3);
-                  traits.initAcc(C4);
-                  traits.initAcc(C5);
-        if(nr==4) traits.initAcc(C6);
-        if(nr==4) traits.initAcc(C7);
-
-        ResScalar* r0 = &res[(j2+0)*resStride + i];
-        ResScalar* r1 = r0 + resStride;
-        ResScalar* r2 = r1 + resStride;
-        ResScalar* r3 = r2 + resStride;
-
-        prefetch(r0+16);
-        prefetch(r1+16);
-        prefetch(r2+16);
-        prefetch(r3+16);
-
-        // performs "inner" product
-        // TODO let's check wether the folowing peeled loop could not be
-        //      optimized via optimal prefetching from one loop to the other
-        const RhsScalar* blB = unpackedB;
-        for(Index k=0; k<peeled_kc; k+=4)
-        {
-          if(nr==2)
-          {
-            LhsPacket A0, A1;
-            RhsPacket B_0;
-            RhsPacket T0;
-            
-EIGEN_ASM_COMMENT("mybegin2");
-            traits.loadLhs(&blA[0*LhsProgress], A0);
-            traits.loadLhs(&blA[1*LhsProgress], A1);
-            traits.loadRhs(&blB[0*RhsProgress], B_0);
-            traits.madd(A0,B_0,C0,T0);
-            traits.madd(A1,B_0,C4,B_0);
-            traits.loadRhs(&blB[1*RhsProgress], B_0);
-            traits.madd(A0,B_0,C1,T0);
-            traits.madd(A1,B_0,C5,B_0);
-
-            traits.loadLhs(&blA[2*LhsProgress], A0);
-            traits.loadLhs(&blA[3*LhsProgress], A1);
-            traits.loadRhs(&blB[2*RhsProgress], B_0);
-            traits.madd(A0,B_0,C0,T0);
-            traits.madd(A1,B_0,C4,B_0);
-            traits.loadRhs(&blB[3*RhsProgress], B_0);
-            traits.madd(A0,B_0,C1,T0);
-            traits.madd(A1,B_0,C5,B_0);
-
-            traits.loadLhs(&blA[4*LhsProgress], A0);
-            traits.loadLhs(&blA[5*LhsProgress], A1);
-            traits.loadRhs(&blB[4*RhsProgress], B_0);
-            traits.madd(A0,B_0,C0,T0);
-            traits.madd(A1,B_0,C4,B_0);
-            traits.loadRhs(&blB[5*RhsProgress], B_0);
-            traits.madd(A0,B_0,C1,T0);
-            traits.madd(A1,B_0,C5,B_0);
-
-            traits.loadLhs(&blA[6*LhsProgress], A0);
-            traits.loadLhs(&blA[7*LhsProgress], A1);
-            traits.loadRhs(&blB[6*RhsProgress], B_0);
-            traits.madd(A0,B_0,C0,T0);
-            traits.madd(A1,B_0,C4,B_0);
-            traits.loadRhs(&blB[7*RhsProgress], B_0);
-            traits.madd(A0,B_0,C1,T0);
-            traits.madd(A1,B_0,C5,B_0);
-EIGEN_ASM_COMMENT("myend");
-          }
-          else
-          {
-EIGEN_ASM_COMMENT("mybegin4");
-            LhsPacket A0, A1;
-            RhsPacket B_0, B1, B2, B3;
-            RhsPacket T0;
-            
-            traits.loadLhs(&blA[0*LhsProgress], A0);
-            traits.loadLhs(&blA[1*LhsProgress], A1);
-            traits.loadRhs(&blB[0*RhsProgress], B_0);
-            traits.loadRhs(&blB[1*RhsProgress], B1);
-
-            traits.madd(A0,B_0,C0,T0);
-            traits.loadRhs(&blB[2*RhsProgress], B2);
-            traits.madd(A1,B_0,C4,B_0);
-            traits.loadRhs(&blB[3*RhsProgress], B3);
-            traits.loadRhs(&blB[4*RhsProgress], B_0);
-            traits.madd(A0,B1,C1,T0);
-            traits.madd(A1,B1,C5,B1);
-            traits.loadRhs(&blB[5*RhsProgress], B1);
-            traits.madd(A0,B2,C2,T0);
-            traits.madd(A1,B2,C6,B2);
-            traits.loadRhs(&blB[6*RhsProgress], B2);
-            traits.madd(A0,B3,C3,T0);
-            traits.loadLhs(&blA[2*LhsProgress], A0);
-            traits.madd(A1,B3,C7,B3);
-            traits.loadLhs(&blA[3*LhsProgress], A1);
-            traits.loadRhs(&blB[7*RhsProgress], B3);
-            traits.madd(A0,B_0,C0,T0);
-            traits.madd(A1,B_0,C4,B_0);
-            traits.loadRhs(&blB[8*RhsProgress], B_0);
-            traits.madd(A0,B1,C1,T0);
-            traits.madd(A1,B1,C5,B1);
-            traits.loadRhs(&blB[9*RhsProgress], B1);
-            traits.madd(A0,B2,C2,T0);
-            traits.madd(A1,B2,C6,B2);
-            traits.loadRhs(&blB[10*RhsProgress], B2);
-            traits.madd(A0,B3,C3,T0);
-            traits.loadLhs(&blA[4*LhsProgress], A0);
-            traits.madd(A1,B3,C7,B3);
-            traits.loadLhs(&blA[5*LhsProgress], A1);
-            traits.loadRhs(&blB[11*RhsProgress], B3);
-
-            traits.madd(A0,B_0,C0,T0);
-            traits.madd(A1,B_0,C4,B_0);
-            traits.loadRhs(&blB[12*RhsProgress], B_0);
-            traits.madd(A0,B1,C1,T0);
-            traits.madd(A1,B1,C5,B1);
-            traits.loadRhs(&blB[13*RhsProgress], B1);
-            traits.madd(A0,B2,C2,T0);
-            traits.madd(A1,B2,C6,B2);
-            traits.loadRhs(&blB[14*RhsProgress], B2);
-            traits.madd(A0,B3,C3,T0);
-            traits.loadLhs(&blA[6*LhsProgress], A0);
-            traits.madd(A1,B3,C7,B3);
-            traits.loadLhs(&blA[7*LhsProgress], A1);
-            traits.loadRhs(&blB[15*RhsProgress], B3);
-            traits.madd(A0,B_0,C0,T0);
-            traits.madd(A1,B_0,C4,B_0);
-            traits.madd(A0,B1,C1,T0);
-            traits.madd(A1,B1,C5,B1);
-            traits.madd(A0,B2,C2,T0);
-            traits.madd(A1,B2,C6,B2);
-            traits.madd(A0,B3,C3,T0);
-            traits.madd(A1,B3,C7,B3);
-          }
-
-          blB += 4*nr*RhsProgress;
-          blA += 4*mr;
-        }
-        // process remaining peeled loop
-        for(Index k=peeled_kc; k<depth; k++)
-        {
-          if(nr==2)
-          {
-            LhsPacket A0, A1;
-            RhsPacket B_0;
-            RhsPacket T0;
-
-            traits.loadLhs(&blA[0*LhsProgress], A0);
-            traits.loadLhs(&blA[1*LhsProgress], A1);
-            traits.loadRhs(&blB[0*RhsProgress], B_0);
-            traits.madd(A0,B_0,C0,T0);
-            traits.madd(A1,B_0,C4,B_0);
-            traits.loadRhs(&blB[1*RhsProgress], B_0);
-            traits.madd(A0,B_0,C1,T0);
-            traits.madd(A1,B_0,C5,B_0);
-          }
-          else
-          {
-            LhsPacket A0, A1;
-            RhsPacket B_0, B1, B2, B3;
-            RhsPacket T0;
-
-            traits.loadLhs(&blA[0*LhsProgress], A0);
-            traits.loadLhs(&blA[1*LhsProgress], A1);
-            traits.loadRhs(&blB[0*RhsProgress], B_0);
-            traits.loadRhs(&blB[1*RhsProgress], B1);
-
-            traits.madd(A0,B_0,C0,T0);
-            traits.loadRhs(&blB[2*RhsProgress], B2);
-            traits.madd(A1,B_0,C4,B_0);
-            traits.loadRhs(&blB[3*RhsProgress], B3);
-            traits.madd(A0,B1,C1,T0);
-            traits.madd(A1,B1,C5,B1);
-            traits.madd(A0,B2,C2,T0);
-            traits.madd(A1,B2,C6,B2);
-            traits.madd(A0,B3,C3,T0);
-            traits.madd(A1,B3,C7,B3);
-          }
-
-          blB += nr*RhsProgress;
-          blA += mr;
-        }
-
-        if(nr==4)
-        {
-          ResPacket R0, R1, R2, R3, R4, R5, R6;
-          ResPacket alphav = pset1<ResPacket>(alpha);
-
-          R0 = ploadu<ResPacket>(r0);
-          R1 = ploadu<ResPacket>(r1);
-          R2 = ploadu<ResPacket>(r2);
-          R3 = ploadu<ResPacket>(r3);
-          R4 = ploadu<ResPacket>(r0 + ResPacketSize);
-          R5 = ploadu<ResPacket>(r1 + ResPacketSize);
-          R6 = ploadu<ResPacket>(r2 + ResPacketSize);
-          traits.acc(C0, alphav, R0);
-          pstoreu(r0, R0);
-          R0 = ploadu<ResPacket>(r3 + ResPacketSize);
-
-          traits.acc(C1, alphav, R1);
-          traits.acc(C2, alphav, R2);
-          traits.acc(C3, alphav, R3);
-          traits.acc(C4, alphav, R4);
-          traits.acc(C5, alphav, R5);
-          traits.acc(C6, alphav, R6);
-          traits.acc(C7, alphav, R0);
-          
-          pstoreu(r1, R1);
-          pstoreu(r2, R2);
-          pstoreu(r3, R3);
-          pstoreu(r0 + ResPacketSize, R4);
-          pstoreu(r1 + ResPacketSize, R5);
-          pstoreu(r2 + ResPacketSize, R6);
-          pstoreu(r3 + ResPacketSize, R0);
-        }
-        else
-        {
-          ResPacket R0, R1, R4;
-          ResPacket alphav = pset1<ResPacket>(alpha);
-
-          R0 = ploadu<ResPacket>(r0);
-          R1 = ploadu<ResPacket>(r1);
-          R4 = ploadu<ResPacket>(r0 + ResPacketSize);
-          traits.acc(C0, alphav, R0);
-          pstoreu(r0, R0);
-          R0 = ploadu<ResPacket>(r1 + ResPacketSize);
-          traits.acc(C1, alphav, R1);
-          traits.acc(C4, alphav, R4);
-          traits.acc(C5, alphav, R0);
-          pstoreu(r1, R1);
-          pstoreu(r0 + ResPacketSize, R4);
-          pstoreu(r1 + ResPacketSize, R0);
-        }
-        
-      }
-      
-      if(rows-peeled_mc>=LhsProgress)
-      {
-        Index i = peeled_mc;
-        const LhsScalar* blA = &blockA[i*strideA+offsetA*LhsProgress];
-        prefetch(&blA[0]);
-
-        // gets res block as register
-        AccPacket C0, C1, C2, C3;
-                  traits.initAcc(C0);
-                  traits.initAcc(C1);
-        if(nr==4) traits.initAcc(C2);
-        if(nr==4) traits.initAcc(C3);
-
-        // performs "inner" product
-        const RhsScalar* blB = unpackedB;
-        for(Index k=0; k<peeled_kc; k+=4)
-        {
-          if(nr==2)
-          {
-            LhsPacket A0;
-            RhsPacket B_0, B1;
-
-            traits.loadLhs(&blA[0*LhsProgress], A0);
-            traits.loadRhs(&blB[0*RhsProgress], B_0);
-            traits.loadRhs(&blB[1*RhsProgress], B1);
-            traits.madd(A0,B_0,C0,B_0);
-            traits.loadRhs(&blB[2*RhsProgress], B_0);
-            traits.madd(A0,B1,C1,B1);
-            traits.loadLhs(&blA[1*LhsProgress], A0);
-            traits.loadRhs(&blB[3*RhsProgress], B1);
-            traits.madd(A0,B_0,C0,B_0);
-            traits.loadRhs(&blB[4*RhsProgress], B_0);
-            traits.madd(A0,B1,C1,B1);
-            traits.loadLhs(&blA[2*LhsProgress], A0);
-            traits.loadRhs(&blB[5*RhsProgress], B1);
-            traits.madd(A0,B_0,C0,B_0);
-            traits.loadRhs(&blB[6*RhsProgress], B_0);
-            traits.madd(A0,B1,C1,B1);
-            traits.loadLhs(&blA[3*LhsProgress], A0);
-            traits.loadRhs(&blB[7*RhsProgress], B1);
-            traits.madd(A0,B_0,C0,B_0);
-            traits.madd(A0,B1,C1,B1);
-          }
-          else
-          {
-            LhsPacket A0;
-            RhsPacket B_0, B1, B2, B3;
-
-            traits.loadLhs(&blA[0*LhsProgress], A0);
-            traits.loadRhs(&blB[0*RhsProgress], B_0);
-            traits.loadRhs(&blB[1*RhsProgress], B1);
-
-            traits.madd(A0,B_0,C0,B_0);
-            traits.loadRhs(&blB[2*RhsProgress], B2);
-            traits.loadRhs(&blB[3*RhsProgress], B3);
-            traits.loadRhs(&blB[4*RhsProgress], B_0);
-            traits.madd(A0,B1,C1,B1);
-            traits.loadRhs(&blB[5*RhsProgress], B1);
-            traits.madd(A0,B2,C2,B2);
-            traits.loadRhs(&blB[6*RhsProgress], B2);
-            traits.madd(A0,B3,C3,B3);
-            traits.loadLhs(&blA[1*LhsProgress], A0);
-            traits.loadRhs(&blB[7*RhsProgress], B3);
-            traits.madd(A0,B_0,C0,B_0);
-            traits.loadRhs(&blB[8*RhsProgress], B_0);
-            traits.madd(A0,B1,C1,B1);
-            traits.loadRhs(&blB[9*RhsProgress], B1);
-            traits.madd(A0,B2,C2,B2);
-            traits.loadRhs(&blB[10*RhsProgress], B2);
-            traits.madd(A0,B3,C3,B3);
-            traits.loadLhs(&blA[2*LhsProgress], A0);
-            traits.loadRhs(&blB[11*RhsProgress], B3);
-
-            traits.madd(A0,B_0,C0,B_0);
-            traits.loadRhs(&blB[12*RhsProgress], B_0);
-            traits.madd(A0,B1,C1,B1);
-            traits.loadRhs(&blB[13*RhsProgress], B1);
-            traits.madd(A0,B2,C2,B2);
-            traits.loadRhs(&blB[14*RhsProgress], B2);
-            traits.madd(A0,B3,C3,B3);
-
-            traits.loadLhs(&blA[3*LhsProgress], A0);
-            traits.loadRhs(&blB[15*RhsProgress], B3);
-            traits.madd(A0,B_0,C0,B_0);
-            traits.madd(A0,B1,C1,B1);
-            traits.madd(A0,B2,C2,B2);
-            traits.madd(A0,B3,C3,B3);
-          }
-
-          blB += nr*4*RhsProgress;
-          blA += 4*LhsProgress;
-        }
-        // process remaining peeled loop
-        for(Index k=peeled_kc; k<depth; k++)
-        {
-          if(nr==2)
-          {
-            LhsPacket A0;
-            RhsPacket B_0, B1;
-
-            traits.loadLhs(&blA[0*LhsProgress], A0);
-            traits.loadRhs(&blB[0*RhsProgress], B_0);
-            traits.loadRhs(&blB[1*RhsProgress], B1);
-            traits.madd(A0,B_0,C0,B_0);
-            traits.madd(A0,B1,C1,B1);
-          }
-          else
-          {
-            LhsPacket A0;
-            RhsPacket B_0, B1, B2, B3;
-
-            traits.loadLhs(&blA[0*LhsProgress], A0);
-            traits.loadRhs(&blB[0*RhsProgress], B_0);
-            traits.loadRhs(&blB[1*RhsProgress], B1);
-            traits.loadRhs(&blB[2*RhsProgress], B2);
-            traits.loadRhs(&blB[3*RhsProgress], B3);
-
-            traits.madd(A0,B_0,C0,B_0);
-            traits.madd(A0,B1,C1,B1);
-            traits.madd(A0,B2,C2,B2);
-            traits.madd(A0,B3,C3,B3);
-          }
-
-          blB += nr*RhsProgress;
-          blA += LhsProgress;
-        }
-
-        ResPacket R0, R1, R2, R3;
-        ResPacket alphav = pset1<ResPacket>(alpha);
-
-        ResScalar* r0 = &res[(j2+0)*resStride + i];
-        ResScalar* r1 = r0 + resStride;
-        ResScalar* r2 = r1 + resStride;
-        ResScalar* r3 = r2 + resStride;
-
-                  R0 = ploadu<ResPacket>(r0);
-                  R1 = ploadu<ResPacket>(r1);
-        if(nr==4) R2 = ploadu<ResPacket>(r2);
-        if(nr==4) R3 = ploadu<ResPacket>(r3);
-
-                  traits.acc(C0, alphav, R0);
-                  traits.acc(C1, alphav, R1);
-        if(nr==4) traits.acc(C2, alphav, R2);
-        if(nr==4) traits.acc(C3, alphav, R3);
-
-                  pstoreu(r0, R0);
-                  pstoreu(r1, R1);
-        if(nr==4) pstoreu(r2, R2);
-        if(nr==4) pstoreu(r3, R3);
-      }
-      for(Index i=peeled_mc2; i<rows; i++)
-      {
-        const LhsScalar* blA = &blockA[i*strideA+offsetA];
-        prefetch(&blA[0]);
-
-        // gets a 1 x nr res block as registers
-        ResScalar C0(0), C1(0), C2(0), C3(0);
-        // TODO directly use blockB ???
-        const RhsScalar* blB = &blockB[j2*strideB+offsetB*nr];
-        for(Index k=0; k<depth; k++)
-        {
-          if(nr==2)
-          {
-            LhsScalar A0;
-            RhsScalar B_0, B1;
-
-            A0 = blA[k];
-            B_0 = blB[0];
-            B1 = blB[1];
-            MADD(cj,A0,B_0,C0,B_0);
-            MADD(cj,A0,B1,C1,B1);
-          }
-          else
-          {
-            LhsScalar A0;
-            RhsScalar B_0, B1, B2, B3;
-
-            A0 = blA[k];
-            B_0 = blB[0];
-            B1 = blB[1];
-            B2 = blB[2];
-            B3 = blB[3];
-
-            MADD(cj,A0,B_0,C0,B_0);
-            MADD(cj,A0,B1,C1,B1);
-            MADD(cj,A0,B2,C2,B2);
-            MADD(cj,A0,B3,C3,B3);
-          }
-
-          blB += nr;
-        }
-                  res[(j2+0)*resStride + i] += alpha*C0;
-                  res[(j2+1)*resStride + i] += alpha*C1;
-        if(nr==4) res[(j2+2)*resStride + i] += alpha*C2;
-        if(nr==4) res[(j2+3)*resStride + i] += alpha*C3;
-      }
-    }
-    // process remaining rhs/res columns one at a time
-    // => do the same but with nr==1
-    for(Index j2=packet_cols; j2<cols; j2++)
-    {
-      // unpack B
-      traits.unpackRhs(depth, &blockB[j2*strideB+offsetB], unpackedB);
-
-      for(Index i=0; i<peeled_mc; i+=mr)
-      {
-        const LhsScalar* blA = &blockA[i*strideA+offsetA*mr];
-        prefetch(&blA[0]);
-
-        // TODO move the res loads to the stores
-
-        // get res block as registers
-        AccPacket C0, C4;
-        traits.initAcc(C0);
-        traits.initAcc(C4);
-
-        const RhsScalar* blB = unpackedB;
-        for(Index k=0; k<depth; k++)
-        {
-          LhsPacket A0, A1;
-          RhsPacket B_0;
-          RhsPacket T0;
-
-          traits.loadLhs(&blA[0*LhsProgress], A0);
-          traits.loadLhs(&blA[1*LhsProgress], A1);
-          traits.loadRhs(&blB[0*RhsProgress], B_0);
-          traits.madd(A0,B_0,C0,T0);
-          traits.madd(A1,B_0,C4,B_0);
-
-          blB += RhsProgress;
-          blA += 2*LhsProgress;
-        }
-        ResPacket R0, R4;
-        ResPacket alphav = pset1<ResPacket>(alpha);
-
-        ResScalar* r0 = &res[(j2+0)*resStride + i];
-
-        R0 = ploadu<ResPacket>(r0);
-        R4 = ploadu<ResPacket>(r0+ResPacketSize);
-
-        traits.acc(C0, alphav, R0);
-        traits.acc(C4, alphav, R4);
-
-        pstoreu(r0,               R0);
-        pstoreu(r0+ResPacketSize, R4);
-      }
-      if(rows-peeled_mc>=LhsProgress)
-      {
-        Index i = peeled_mc;
-        const LhsScalar* blA = &blockA[i*strideA+offsetA*LhsProgress];
-        prefetch(&blA[0]);
-
-        AccPacket C0;
-        traits.initAcc(C0);
-
-        const RhsScalar* blB = unpackedB;
-        for(Index k=0; k<depth; k++)
-        {
-          LhsPacket A0;
-          RhsPacket B_0;
-          traits.loadLhs(blA, A0);
-          traits.loadRhs(blB, B_0);
-          traits.madd(A0, B_0, C0, B_0);
-          blB += RhsProgress;
-          blA += LhsProgress;
-        }
-
-        ResPacket alphav = pset1<ResPacket>(alpha);
-        ResPacket R0 = ploadu<ResPacket>(&res[(j2+0)*resStride + i]);
-        traits.acc(C0, alphav, R0);
-        pstoreu(&res[(j2+0)*resStride + i], R0);
-      }
-      for(Index i=peeled_mc2; i<rows; i++)
-      {
-        const LhsScalar* blA = &blockA[i*strideA+offsetA];
-        prefetch(&blA[0]);
-
-        // gets a 1 x 1 res block as registers
-        ResScalar C0(0);
-        // FIXME directly use blockB ??
-        const RhsScalar* blB = &blockB[j2*strideB+offsetB];
-        for(Index k=0; k<depth; k++)
-        {
-          LhsScalar A0 = blA[k];
-          RhsScalar B_0 = blB[k];
-          MADD(cj, A0, B_0, C0, B_0);
-        }
-        res[(j2+0)*resStride + i] += alpha*C0;
-      }
-    }
-  }
-
-
-#undef CJMADD
-
-// pack a block of the lhs
-// The traversal is as follow (mr==4):
-//   0  4  8 12 ...
-//   1  5  9 13 ...
-//   2  6 10 14 ...
-//   3  7 11 15 ...
-//
-//  16 20 24 28 ...
-//  17 21 25 29 ...
-//  18 22 26 30 ...
-//  19 23 27 31 ...
-//
-//  32 33 34 35 ...
-//  36 36 38 39 ...
-template<typename Scalar, typename Index, int Pack1, int Pack2, int StorageOrder, bool Conjugate, bool PanelMode>
-struct gemm_pack_lhs
-{
-  EIGEN_DONT_INLINE void operator()(Scalar* blockA, const Scalar* EIGEN_RESTRICT _lhs, Index lhsStride, Index depth, Index rows, Index stride=0, Index offset=0);
-};
-
-template<typename Scalar, typename Index, int Pack1, int Pack2, int StorageOrder, bool Conjugate, bool PanelMode>
-EIGEN_DONT_INLINE void gemm_pack_lhs<Scalar, Index, Pack1, Pack2, StorageOrder, Conjugate, PanelMode>
-  ::operator()(Scalar* blockA, const Scalar* EIGEN_RESTRICT _lhs, Index lhsStride, Index depth, Index rows, Index stride, Index offset)
-{
-  typedef typename packet_traits<Scalar>::type Packet;
-  enum { PacketSize = packet_traits<Scalar>::size };
-
-  EIGEN_ASM_COMMENT("EIGEN PRODUCT PACK LHS");
-  eigen_assert(((!PanelMode) && stride==0 && offset==0) || (PanelMode && stride>=depth && offset<=stride));
-  eigen_assert( (StorageOrder==RowMajor) || ((Pack1%PacketSize)==0 && Pack1<=4*PacketSize) );
-  conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
-  const_blas_data_mapper<Scalar, Index, StorageOrder> lhs(_lhs,lhsStride);
-  Index count = 0;
-  Index peeled_mc = (rows/Pack1)*Pack1;
-  for(Index i=0; i<peeled_mc; i+=Pack1)
-  {
-    if(PanelMode) count += Pack1 * offset;
-
-    if(StorageOrder==ColMajor)
-    {
-      for(Index k=0; k<depth; k++)
-      {
-        Packet A, B, C, D;
-        if(Pack1>=1*PacketSize) A = ploadu<Packet>(&lhs(i+0*PacketSize, k));
-        if(Pack1>=2*PacketSize) B = ploadu<Packet>(&lhs(i+1*PacketSize, k));
-        if(Pack1>=3*PacketSize) C = ploadu<Packet>(&lhs(i+2*PacketSize, k));
-        if(Pack1>=4*PacketSize) D = ploadu<Packet>(&lhs(i+3*PacketSize, k));
-        if(Pack1>=1*PacketSize) { pstore(blockA+count, cj.pconj(A)); count+=PacketSize; }
-        if(Pack1>=2*PacketSize) { pstore(blockA+count, cj.pconj(B)); count+=PacketSize; }
-        if(Pack1>=3*PacketSize) { pstore(blockA+count, cj.pconj(C)); count+=PacketSize; }
-        if(Pack1>=4*PacketSize) { pstore(blockA+count, cj.pconj(D)); count+=PacketSize; }
-      }
-    }
-    else
-    {
-      for(Index k=0; k<depth; k++)
-      {
-        // TODO add a vectorized transpose here
-        Index w=0;
-        for(; w<Pack1-3; w+=4)
-        {
-          Scalar a(cj(lhs(i+w+0, k))),
-                  b(cj(lhs(i+w+1, k))),
-                  c(cj(lhs(i+w+2, k))),
-                  d(cj(lhs(i+w+3, k)));
-          blockA[count++] = a;
-          blockA[count++] = b;
-          blockA[count++] = c;
-          blockA[count++] = d;
-        }
-        if(Pack1%4)
-          for(;w<Pack1;++w)
-            blockA[count++] = cj(lhs(i+w, k));
-      }
-    }
-    if(PanelMode) count += Pack1 * (stride-offset-depth);
-  }
-  if(rows-peeled_mc>=Pack2)
-  {
-    if(PanelMode) count += Pack2*offset;
-    for(Index k=0; k<depth; k++)
-      for(Index w=0; w<Pack2; w++)
-        blockA[count++] = cj(lhs(peeled_mc+w, k));
-    if(PanelMode) count += Pack2 * (stride-offset-depth);
-    peeled_mc += Pack2;
-  }
-  for(Index i=peeled_mc; i<rows; i++)
-  {
-    if(PanelMode) count += offset;
-    for(Index k=0; k<depth; k++)
-      blockA[count++] = cj(lhs(i, k));
-    if(PanelMode) count += (stride-offset-depth);
-  }
-}
-
-// copy a complete panel of the rhs
-// this version is optimized for column major matrices
-// The traversal order is as follow: (nr==4):
-//  0  1  2  3   12 13 14 15   24 27
-//  4  5  6  7   16 17 18 19   25 28
-//  8  9 10 11   20 21 22 23   26 29
-//  .  .  .  .    .  .  .  .    .  .
-template<typename Scalar, typename Index, int nr, bool Conjugate, bool PanelMode>
-struct gemm_pack_rhs<Scalar, Index, nr, ColMajor, Conjugate, PanelMode>
-{
-  typedef typename packet_traits<Scalar>::type Packet;
-  enum { PacketSize = packet_traits<Scalar>::size };
-  EIGEN_DONT_INLINE void operator()(Scalar* blockB, const Scalar* rhs, Index rhsStride, Index depth, Index cols, Index stride=0, Index offset=0);
-};
-
-template<typename Scalar, typename Index, int nr, bool Conjugate, bool PanelMode>
-EIGEN_DONT_INLINE void gemm_pack_rhs<Scalar, Index, nr, ColMajor, Conjugate, PanelMode>
-  ::operator()(Scalar* blockB, const Scalar* rhs, Index rhsStride, Index depth, Index cols, Index stride, Index offset)
-{
-  EIGEN_ASM_COMMENT("EIGEN PRODUCT PACK RHS COLMAJOR");
-  eigen_assert(((!PanelMode) && stride==0 && offset==0) || (PanelMode && stride>=depth && offset<=stride));
-  conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
-  Index packet_cols = (cols/nr) * nr;
-  Index count = 0;
-  for(Index j2=0; j2<packet_cols; j2+=nr)
-  {
-    // skip what we have before
-    if(PanelMode) count += nr * offset;
-    const Scalar* b0 = &rhs[(j2+0)*rhsStride];
-    const Scalar* b1 = &rhs[(j2+1)*rhsStride];
-    const Scalar* b2 = &rhs[(j2+2)*rhsStride];
-    const Scalar* b3 = &rhs[(j2+3)*rhsStride];
-    for(Index k=0; k<depth; k++)
-    {
-                blockB[count+0] = cj(b0[k]);
-                blockB[count+1] = cj(b1[k]);
-      if(nr==4) blockB[count+2] = cj(b2[k]);
-      if(nr==4) blockB[count+3] = cj(b3[k]);
-      count += nr;
-    }
-    // skip what we have after
-    if(PanelMode) count += nr * (stride-offset-depth);
-  }
-
-  // copy the remaining columns one at a time (nr==1)
-  for(Index j2=packet_cols; j2<cols; ++j2)
-  {
-    if(PanelMode) count += offset;
-    const Scalar* b0 = &rhs[(j2+0)*rhsStride];
-    for(Index k=0; k<depth; k++)
-    {
-      blockB[count] = cj(b0[k]);
-      count += 1;
-    }
-    if(PanelMode) count += (stride-offset-depth);
-  }
-}
-
-// this version is optimized for row major matrices
-template<typename Scalar, typename Index, int nr, bool Conjugate, bool PanelMode>
-struct gemm_pack_rhs<Scalar, Index, nr, RowMajor, Conjugate, PanelMode>
-{
-  enum { PacketSize = packet_traits<Scalar>::size };
-  EIGEN_DONT_INLINE void operator()(Scalar* blockB, const Scalar* rhs, Index rhsStride, Index depth, Index cols, Index stride=0, Index offset=0);
-};
-
-template<typename Scalar, typename Index, int nr, bool Conjugate, bool PanelMode>
-EIGEN_DONT_INLINE void gemm_pack_rhs<Scalar, Index, nr, RowMajor, Conjugate, PanelMode>
-  ::operator()(Scalar* blockB, const Scalar* rhs, Index rhsStride, Index depth, Index cols, Index stride, Index offset)
-{
-  EIGEN_ASM_COMMENT("EIGEN PRODUCT PACK RHS ROWMAJOR");
-  eigen_assert(((!PanelMode) && stride==0 && offset==0) || (PanelMode && stride>=depth && offset<=stride));
-  conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
-  Index packet_cols = (cols/nr) * nr;
-  Index count = 0;
-  for(Index j2=0; j2<packet_cols; j2+=nr)
-  {
-    // skip what we have before
-    if(PanelMode) count += nr * offset;
-    for(Index k=0; k<depth; k++)
-    {
-      const Scalar* b0 = &rhs[k*rhsStride + j2];
-                blockB[count+0] = cj(b0[0]);
-                blockB[count+1] = cj(b0[1]);
-      if(nr==4) blockB[count+2] = cj(b0[2]);
-      if(nr==4) blockB[count+3] = cj(b0[3]);
-      count += nr;
-    }
-    // skip what we have after
-    if(PanelMode) count += nr * (stride-offset-depth);
-  }
-  // copy the remaining columns one at a time (nr==1)
-  for(Index j2=packet_cols; j2<cols; ++j2)
-  {
-    if(PanelMode) count += offset;
-    const Scalar* b0 = &rhs[j2];
-    for(Index k=0; k<depth; k++)
-    {
-      blockB[count] = cj(b0[k*rhsStride]);
-      count += 1;
-    }
-    if(PanelMode) count += stride-offset-depth;
-  }
-}
-
-} // end namespace internal
-
-/** \returns the currently set level 1 cpu cache size (in bytes) used to estimate the ideal blocking size parameters.
-  * \sa setCpuCacheSize */
-inline std::ptrdiff_t l1CacheSize()
-{
-  std::ptrdiff_t l1, l2;
-  internal::manage_caching_sizes(GetAction, &l1, &l2);
-  return l1;
-}
-
-/** \returns the currently set level 2 cpu cache size (in bytes) used to estimate the ideal blocking size parameters.
-  * \sa setCpuCacheSize */
-inline std::ptrdiff_t l2CacheSize()
-{
-  std::ptrdiff_t l1, l2;
-  internal::manage_caching_sizes(GetAction, &l1, &l2);
-  return l2;
-}
-
-/** Set the cpu L1 and L2 cache sizes (in bytes).
-  * These values are use to adjust the size of the blocks
-  * for the algorithms working per blocks.
-  *
-  * \sa computeProductBlockingSizes */
-inline void setCpuCacheSizes(std::ptrdiff_t l1, std::ptrdiff_t l2)
-{
-  internal::manage_caching_sizes(SetAction, &l1, &l2);
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_GENERAL_BLOCK_PANEL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralMatrixMatrix.h b/vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralMatrixMatrix.h
deleted file mode 100644
index 3f5ffcf..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralMatrixMatrix.h
+++ /dev/null
@@ -1,427 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_GENERAL_MATRIX_MATRIX_H
-#define EIGEN_GENERAL_MATRIX_MATRIX_H
-
-namespace Eigen { 
-
-namespace internal {
-
-template<typename _LhsScalar, typename _RhsScalar> class level3_blocking;
-
-/* Specialization for a row-major destination matrix => simple transposition of the product */
-template<
-  typename Index,
-  typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
-  typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs>
-struct general_matrix_matrix_product<Index,LhsScalar,LhsStorageOrder,ConjugateLhs,RhsScalar,RhsStorageOrder,ConjugateRhs,RowMajor>
-{
-  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
-  static EIGEN_STRONG_INLINE void run(
-    Index rows, Index cols, Index depth,
-    const LhsScalar* lhs, Index lhsStride,
-    const RhsScalar* rhs, Index rhsStride,
-    ResScalar* res, Index resStride,
-    ResScalar alpha,
-    level3_blocking<RhsScalar,LhsScalar>& blocking,
-    GemmParallelInfo<Index>* info = 0)
-  {
-    // transpose the product such that the result is column major
-    general_matrix_matrix_product<Index,
-      RhsScalar, RhsStorageOrder==RowMajor ? ColMajor : RowMajor, ConjugateRhs,
-      LhsScalar, LhsStorageOrder==RowMajor ? ColMajor : RowMajor, ConjugateLhs,
-      ColMajor>
-    ::run(cols,rows,depth,rhs,rhsStride,lhs,lhsStride,res,resStride,alpha,blocking,info);
-  }
-};
-
-/*  Specialization for a col-major destination matrix
- *    => Blocking algorithm following Goto's paper */
-template<
-  typename Index,
-  typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
-  typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs>
-struct general_matrix_matrix_product<Index,LhsScalar,LhsStorageOrder,ConjugateLhs,RhsScalar,RhsStorageOrder,ConjugateRhs,ColMajor>
-{
-
-typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
-static void run(Index rows, Index cols, Index depth,
-  const LhsScalar* _lhs, Index lhsStride,
-  const RhsScalar* _rhs, Index rhsStride,
-  ResScalar* res, Index resStride,
-  ResScalar alpha,
-  level3_blocking<LhsScalar,RhsScalar>& blocking,
-  GemmParallelInfo<Index>* info = 0)
-{
-  const_blas_data_mapper<LhsScalar, Index, LhsStorageOrder> lhs(_lhs,lhsStride);
-  const_blas_data_mapper<RhsScalar, Index, RhsStorageOrder> rhs(_rhs,rhsStride);
-
-  typedef gebp_traits<LhsScalar,RhsScalar> Traits;
-
-  Index kc = blocking.kc();                   // cache block size along the K direction
-  Index mc = (std::min)(rows,blocking.mc());  // cache block size along the M direction
-  //Index nc = blocking.nc(); // cache block size along the N direction
-
-  gemm_pack_lhs<LhsScalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
-  gemm_pack_rhs<RhsScalar, Index, Traits::nr, RhsStorageOrder> pack_rhs;
-  gebp_kernel<LhsScalar, RhsScalar, Index, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp;
-
-#ifdef EIGEN_HAS_OPENMP
-  if(info)
-  {
-    // this is the parallel version!
-    Index tid = omp_get_thread_num();
-    Index threads = omp_get_num_threads();
-    
-    std::size_t sizeA = kc*mc;
-    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
-    ei_declare_aligned_stack_constructed_variable(LhsScalar, blockA, sizeA, 0);
-    ei_declare_aligned_stack_constructed_variable(RhsScalar, w, sizeW, 0);
-    
-    RhsScalar* blockB = blocking.blockB();
-    eigen_internal_assert(blockB!=0);
-
-    // For each horizontal panel of the rhs, and corresponding vertical panel of the lhs...
-    for(Index k=0; k<depth; k+=kc)
-    {
-      const Index actual_kc = (std::min)(k+kc,depth)-k; // => rows of B', and cols of the A'
-
-      // In order to reduce the chance that a thread has to wait for the other,
-      // let's start by packing A'.
-      pack_lhs(blockA, &lhs(0,k), lhsStride, actual_kc, mc);
-
-      // Pack B_k to B' in a parallel fashion:
-      // each thread packs the sub block B_k,j to B'_j where j is the thread id.
-
-      // However, before copying to B'_j, we have to make sure that no other thread is still using it,
-      // i.e., we test that info[tid].users equals 0.
-      // Then, we set info[tid].users to the number of threads to mark that all other threads are going to use it.
-      while(info[tid].users!=0) {}
-      info[tid].users += threads;
-
-      pack_rhs(blockB+info[tid].rhs_start*actual_kc, &rhs(k,info[tid].rhs_start), rhsStride, actual_kc, info[tid].rhs_length);
-
-      // Notify the other threads that the part B'_j is ready to go.
-      info[tid].sync = k;
-
-      // Computes C_i += A' * B' per B'_j
-      for(Index shift=0; shift<threads; ++shift)
-      {
-        Index j = (tid+shift)%threads;
-
-        // At this point we have to make sure that B'_j has been updated by the thread j,
-        // we use testAndSetOrdered to mimic a volatile access.
-        // However, no need to wait for the B' part which has been updated by the current thread!
-        if(shift>0)
-          while(info[j].sync!=k) {}
-
-        gebp(res+info[j].rhs_start*resStride, resStride, blockA, blockB+info[j].rhs_start*actual_kc, mc, actual_kc, info[j].rhs_length, alpha, -1,-1,0,0, w);
-      }
-
-      // Then keep going as usual with the remaining A'
-      for(Index i=mc; i<rows; i+=mc)
-      {
-        const Index actual_mc = (std::min)(i+mc,rows)-i;
-
-        // pack A_i,k to A'
-        pack_lhs(blockA, &lhs(i,k), lhsStride, actual_kc, actual_mc);
-
-        // C_i += A' * B'
-        gebp(res+i, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha, -1,-1,0,0, w);
-      }
-
-      // Release all the sub blocks B'_j of B' for the current thread,
-      // i.e., we simply decrement the number of users by 1
-      for(Index j=0; j<threads; ++j)
-        #pragma omp atomic
-        --(info[j].users);
-    }
-  }
-  else
-#endif // EIGEN_HAS_OPENMP
-  {
-    EIGEN_UNUSED_VARIABLE(info);
-
-    // this is the sequential version!
-    std::size_t sizeA = kc*mc;
-    std::size_t sizeB = kc*cols;
-    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
-
-    ei_declare_aligned_stack_constructed_variable(LhsScalar, blockA, sizeA, blocking.blockA());
-    ei_declare_aligned_stack_constructed_variable(RhsScalar, blockB, sizeB, blocking.blockB());
-    ei_declare_aligned_stack_constructed_variable(RhsScalar, blockW, sizeW, blocking.blockW());
-
-    // For each horizontal panel of the rhs, and corresponding panel of the lhs...
-    // (==GEMM_VAR1)
-    for(Index k2=0; k2<depth; k2+=kc)
-    {
-      const Index actual_kc = (std::min)(k2+kc,depth)-k2;
-
-      // OK, here we have selected one horizontal panel of rhs and one vertical panel of lhs.
-      // => Pack rhs's panel into a sequential chunk of memory (L2 caching)
-      // Note that this panel will be read as many times as the number of blocks in the lhs's
-      // vertical panel which is, in practice, a very low number.
-      pack_rhs(blockB, &rhs(k2,0), rhsStride, actual_kc, cols);
-
-      // For each mc x kc block of the lhs's vertical panel...
-      // (==GEPP_VAR1)
-      for(Index i2=0; i2<rows; i2+=mc)
-      {
-        const Index actual_mc = (std::min)(i2+mc,rows)-i2;
-
-        // We pack the lhs's block into a sequential chunk of memory (L1 caching)
-        // Note that this block will be read a very high number of times, which is equal to the number of
-        // micro vertical panel of the large rhs's panel (e.g., cols/4 times).
-        pack_lhs(blockA, &lhs(i2,k2), lhsStride, actual_kc, actual_mc);
-
-        // Everything is packed, we can now call the block * panel kernel:
-        gebp(res+i2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha, -1, -1, 0, 0, blockW);
-      }
-    }
-  }
-}
-
-};
-
-/*********************************************************************************
-*  Specialization of GeneralProduct<> for "large" GEMM, i.e.,
-*  implementation of the high level wrapper to general_matrix_matrix_product
-**********************************************************************************/
-
-template<typename Lhs, typename Rhs>
-struct traits<GeneralProduct<Lhs,Rhs,GemmProduct> >
- : traits<ProductBase<GeneralProduct<Lhs,Rhs,GemmProduct>, Lhs, Rhs> >
-{};
-
-template<typename Scalar, typename Index, typename Gemm, typename Lhs, typename Rhs, typename Dest, typename BlockingType>
-struct gemm_functor
-{
-  gemm_functor(const Lhs& lhs, const Rhs& rhs, Dest& dest, const Scalar& actualAlpha,
-                  BlockingType& blocking)
-    : m_lhs(lhs), m_rhs(rhs), m_dest(dest), m_actualAlpha(actualAlpha), m_blocking(blocking)
-  {}
-
-  void initParallelSession() const
-  {
-    m_blocking.allocateB();
-  }
-
-  void operator() (Index row, Index rows, Index col=0, Index cols=-1, GemmParallelInfo<Index>* info=0) const
-  {
-    if(cols==-1)
-      cols = m_rhs.cols();
-
-    Gemm::run(rows, cols, m_lhs.cols(),
-              /*(const Scalar*)*/&m_lhs.coeffRef(row,0), m_lhs.outerStride(),
-              /*(const Scalar*)*/&m_rhs.coeffRef(0,col), m_rhs.outerStride(),
-              (Scalar*)&(m_dest.coeffRef(row,col)), m_dest.outerStride(),
-              m_actualAlpha, m_blocking, info);
-  }
-
-  protected:
-    const Lhs& m_lhs;
-    const Rhs& m_rhs;
-    Dest& m_dest;
-    Scalar m_actualAlpha;
-    BlockingType& m_blocking;
-};
-
-template<int StorageOrder, typename LhsScalar, typename RhsScalar, int MaxRows, int MaxCols, int MaxDepth, int KcFactor=1,
-bool FiniteAtCompileTime = MaxRows!=Dynamic && MaxCols!=Dynamic && MaxDepth != Dynamic> class gemm_blocking_space;
-
-template<typename _LhsScalar, typename _RhsScalar>
-class level3_blocking
-{
-    typedef _LhsScalar LhsScalar;
-    typedef _RhsScalar RhsScalar;
-
-  protected:
-    LhsScalar* m_blockA;
-    RhsScalar* m_blockB;
-    RhsScalar* m_blockW;
-
-    DenseIndex m_mc;
-    DenseIndex m_nc;
-    DenseIndex m_kc;
-
-  public:
-
-    level3_blocking()
-      : m_blockA(0), m_blockB(0), m_blockW(0), m_mc(0), m_nc(0), m_kc(0)
-    {}
-
-    inline DenseIndex mc() const { return m_mc; }
-    inline DenseIndex nc() const { return m_nc; }
-    inline DenseIndex kc() const { return m_kc; }
-
-    inline LhsScalar* blockA() { return m_blockA; }
-    inline RhsScalar* blockB() { return m_blockB; }
-    inline RhsScalar* blockW() { return m_blockW; }
-};
-
-template<int StorageOrder, typename _LhsScalar, typename _RhsScalar, int MaxRows, int MaxCols, int MaxDepth, int KcFactor>
-class gemm_blocking_space<StorageOrder,_LhsScalar,_RhsScalar,MaxRows, MaxCols, MaxDepth, KcFactor, true>
-  : public level3_blocking<
-      typename conditional<StorageOrder==RowMajor,_RhsScalar,_LhsScalar>::type,
-      typename conditional<StorageOrder==RowMajor,_LhsScalar,_RhsScalar>::type>
-{
-    enum {
-      Transpose = StorageOrder==RowMajor,
-      ActualRows = Transpose ? MaxCols : MaxRows,
-      ActualCols = Transpose ? MaxRows : MaxCols
-    };
-    typedef typename conditional<Transpose,_RhsScalar,_LhsScalar>::type LhsScalar;
-    typedef typename conditional<Transpose,_LhsScalar,_RhsScalar>::type RhsScalar;
-    typedef gebp_traits<LhsScalar,RhsScalar> Traits;
-    enum {
-      SizeA = ActualRows * MaxDepth,
-      SizeB = ActualCols * MaxDepth,
-      SizeW = MaxDepth * Traits::WorkSpaceFactor
-    };
-
-    EIGEN_ALIGN16 LhsScalar m_staticA[SizeA];
-    EIGEN_ALIGN16 RhsScalar m_staticB[SizeB];
-    EIGEN_ALIGN16 RhsScalar m_staticW[SizeW];
-
-  public:
-
-    gemm_blocking_space(DenseIndex /*rows*/, DenseIndex /*cols*/, DenseIndex /*depth*/)
-    {
-      this->m_mc = ActualRows;
-      this->m_nc = ActualCols;
-      this->m_kc = MaxDepth;
-      this->m_blockA = m_staticA;
-      this->m_blockB = m_staticB;
-      this->m_blockW = m_staticW;
-    }
-
-    inline void allocateA() {}
-    inline void allocateB() {}
-    inline void allocateW() {}
-    inline void allocateAll() {}
-};
-
-template<int StorageOrder, typename _LhsScalar, typename _RhsScalar, int MaxRows, int MaxCols, int MaxDepth, int KcFactor>
-class gemm_blocking_space<StorageOrder,_LhsScalar,_RhsScalar,MaxRows, MaxCols, MaxDepth, KcFactor, false>
-  : public level3_blocking<
-      typename conditional<StorageOrder==RowMajor,_RhsScalar,_LhsScalar>::type,
-      typename conditional<StorageOrder==RowMajor,_LhsScalar,_RhsScalar>::type>
-{
-    enum {
-      Transpose = StorageOrder==RowMajor
-    };
-    typedef typename conditional<Transpose,_RhsScalar,_LhsScalar>::type LhsScalar;
-    typedef typename conditional<Transpose,_LhsScalar,_RhsScalar>::type RhsScalar;
-    typedef gebp_traits<LhsScalar,RhsScalar> Traits;
-
-    DenseIndex m_sizeA;
-    DenseIndex m_sizeB;
-    DenseIndex m_sizeW;
-
-  public:
-
-    gemm_blocking_space(DenseIndex rows, DenseIndex cols, DenseIndex depth)
-    {
-      this->m_mc = Transpose ? cols : rows;
-      this->m_nc = Transpose ? rows : cols;
-      this->m_kc = depth;
-
-      computeProductBlockingSizes<LhsScalar,RhsScalar,KcFactor>(this->m_kc, this->m_mc, this->m_nc);
-      m_sizeA = this->m_mc * this->m_kc;
-      m_sizeB = this->m_kc * this->m_nc;
-      m_sizeW = this->m_kc*Traits::WorkSpaceFactor;
-    }
-
-    void allocateA()
-    {
-      if(this->m_blockA==0)
-        this->m_blockA = aligned_new<LhsScalar>(m_sizeA);
-    }
-
-    void allocateB()
-    {
-      if(this->m_blockB==0)
-        this->m_blockB = aligned_new<RhsScalar>(m_sizeB);
-    }
-
-    void allocateW()
-    {
-      if(this->m_blockW==0)
-        this->m_blockW = aligned_new<RhsScalar>(m_sizeW);
-    }
-
-    void allocateAll()
-    {
-      allocateA();
-      allocateB();
-      allocateW();
-    }
-
-    ~gemm_blocking_space()
-    {
-      aligned_delete(this->m_blockA, m_sizeA);
-      aligned_delete(this->m_blockB, m_sizeB);
-      aligned_delete(this->m_blockW, m_sizeW);
-    }
-};
-
-} // end namespace internal
-
-template<typename Lhs, typename Rhs>
-class GeneralProduct<Lhs, Rhs, GemmProduct>
-  : public ProductBase<GeneralProduct<Lhs,Rhs,GemmProduct>, Lhs, Rhs>
-{
-    enum {
-      MaxDepthAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(Lhs::MaxColsAtCompileTime,Rhs::MaxRowsAtCompileTime)
-    };
-  public:
-    EIGEN_PRODUCT_PUBLIC_INTERFACE(GeneralProduct)
-    
-    typedef typename  Lhs::Scalar LhsScalar;
-    typedef typename  Rhs::Scalar RhsScalar;
-    typedef           Scalar      ResScalar;
-
-    GeneralProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
-    {
-      typedef internal::scalar_product_op<LhsScalar,RhsScalar> BinOp;
-      EIGEN_CHECK_BINARY_COMPATIBILIY(BinOp,LhsScalar,RhsScalar);
-    }
-
-    template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
-    {
-      eigen_assert(dst.rows()==m_lhs.rows() && dst.cols()==m_rhs.cols());
-
-      typename internal::add_const_on_value_type<ActualLhsType>::type lhs = LhsBlasTraits::extract(m_lhs);
-      typename internal::add_const_on_value_type<ActualRhsType>::type rhs = RhsBlasTraits::extract(m_rhs);
-
-      Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(m_lhs)
-                                 * RhsBlasTraits::extractScalarFactor(m_rhs);
-
-      typedef internal::gemm_blocking_space<(Dest::Flags&RowMajorBit) ? RowMajor : ColMajor,LhsScalar,RhsScalar,
-              Dest::MaxRowsAtCompileTime,Dest::MaxColsAtCompileTime,MaxDepthAtCompileTime> BlockingType;
-
-      typedef internal::gemm_functor<
-        Scalar, Index,
-        internal::general_matrix_matrix_product<
-          Index,
-          LhsScalar, (_ActualLhsType::Flags&RowMajorBit) ? RowMajor : ColMajor, bool(LhsBlasTraits::NeedToConjugate),
-          RhsScalar, (_ActualRhsType::Flags&RowMajorBit) ? RowMajor : ColMajor, bool(RhsBlasTraits::NeedToConjugate),
-          (Dest::Flags&RowMajorBit) ? RowMajor : ColMajor>,
-        _ActualLhsType, _ActualRhsType, Dest, BlockingType> GemmFunctor;
-
-      BlockingType blocking(dst.rows(), dst.cols(), lhs.cols());
-
-      internal::parallelize_gemm<(Dest::MaxRowsAtCompileTime>32 || Dest::MaxRowsAtCompileTime==Dynamic)>(GemmFunctor(lhs, rhs, dst, actualAlpha, blocking), this->rows(), this->cols(), Dest::Flags&RowMajorBit);
-    }
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_GENERAL_MATRIX_MATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralMatrixVector.h b/vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralMatrixVector.h
deleted file mode 100644
index 9bdd588..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralMatrixVector.h
+++ /dev/null
@@ -1,573 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_GENERAL_MATRIX_VECTOR_H
-#define EIGEN_GENERAL_MATRIX_VECTOR_H
-
-namespace Eigen { 
-
-namespace internal {
-
-/* Optimized col-major matrix * vector product:
- * This algorithm processes 4 columns at onces that allows to both reduce
- * the number of load/stores of the result by a factor 4 and to reduce
- * the instruction dependency. Moreover, we know that all bands have the
- * same alignment pattern.
- *
- * Mixing type logic: C += alpha * A * B
- *  |  A  |  B  |alpha| comments
- *  |real |cplx |cplx | no vectorization
- *  |real |cplx |real | alpha is converted to a cplx when calling the run function, no vectorization
- *  |cplx |real |cplx | invalid, the caller has to do tmp: = A * B; C += alpha*tmp
- *  |cplx |real |real | optimal case, vectorization possible via real-cplx mul
- */
-template<typename Index, typename LhsScalar, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs, int Version>
-struct general_matrix_vector_product<Index,LhsScalar,ColMajor,ConjugateLhs,RhsScalar,ConjugateRhs,Version>
-{
-typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
-
-enum {
-  Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable
-              && int(packet_traits<LhsScalar>::size)==int(packet_traits<RhsScalar>::size),
-  LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
-  RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
-  ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1
-};
-
-typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
-typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
-typedef typename packet_traits<ResScalar>::type  _ResPacket;
-
-typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
-typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
-typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
-
-EIGEN_DONT_INLINE static void run(
-  Index rows, Index cols,
-  const LhsScalar* lhs, Index lhsStride,
-  const RhsScalar* rhs, Index rhsIncr,
-  ResScalar* res, Index
-  #ifdef EIGEN_INTERNAL_DEBUGGING
-    resIncr
-  #endif
-  , RhsScalar alpha);
-};
-
-template<typename Index, typename LhsScalar, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs, int Version>
-EIGEN_DONT_INLINE void general_matrix_vector_product<Index,LhsScalar,ColMajor,ConjugateLhs,RhsScalar,ConjugateRhs,Version>::run(
-  Index rows, Index cols,
-  const LhsScalar* lhs, Index lhsStride,
-  const RhsScalar* rhs, Index rhsIncr,
-  ResScalar* res, Index
-  #ifdef EIGEN_INTERNAL_DEBUGGING
-    resIncr
-  #endif
-  , RhsScalar alpha)
-{
-  eigen_internal_assert(resIncr==1);
-  #ifdef _EIGEN_ACCUMULATE_PACKETS
-  #error _EIGEN_ACCUMULATE_PACKETS has already been defined
-  #endif
-  #define _EIGEN_ACCUMULATE_PACKETS(A0,A13,A2) \
-    pstore(&res[j], \
-      padd(pload<ResPacket>(&res[j]), \
-        padd( \
-          padd(pcj.pmul(EIGEN_CAT(ploa , A0)<LhsPacket>(&lhs0[j]),    ptmp0), \
-                  pcj.pmul(EIGEN_CAT(ploa , A13)<LhsPacket>(&lhs1[j]),   ptmp1)), \
-          padd(pcj.pmul(EIGEN_CAT(ploa , A2)<LhsPacket>(&lhs2[j]),    ptmp2), \
-                  pcj.pmul(EIGEN_CAT(ploa , A13)<LhsPacket>(&lhs3[j]),   ptmp3)) )))
-
-  conj_helper<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> cj;
-  conj_helper<LhsPacket,RhsPacket,ConjugateLhs,ConjugateRhs> pcj;
-  if(ConjugateRhs)
-    alpha = conj(alpha);
-
-  enum { AllAligned = 0, EvenAligned, FirstAligned, NoneAligned };
-  const Index columnsAtOnce = 4;
-  const Index peels = 2;
-  const Index LhsPacketAlignedMask = LhsPacketSize-1;
-  const Index ResPacketAlignedMask = ResPacketSize-1;
-//  const Index PeelAlignedMask = ResPacketSize*peels-1;
-  const Index size = rows;
-  
-  // How many coeffs of the result do we have to skip to be aligned.
-  // Here we assume data are at least aligned on the base scalar type.
-  Index alignedStart = internal::first_aligned(res,size);
-  Index alignedSize = ResPacketSize>1 ? alignedStart + ((size-alignedStart) & ~ResPacketAlignedMask) : 0;
-  const Index peeledSize = alignedSize - RhsPacketSize*peels - RhsPacketSize + 1;
-
-  const Index alignmentStep = LhsPacketSize>1 ? (LhsPacketSize - lhsStride % LhsPacketSize) & LhsPacketAlignedMask : 0;
-  Index alignmentPattern = alignmentStep==0 ? AllAligned
-                       : alignmentStep==(LhsPacketSize/2) ? EvenAligned
-                       : FirstAligned;
-
-  // we cannot assume the first element is aligned because of sub-matrices
-  const Index lhsAlignmentOffset = internal::first_aligned(lhs,size);
-
-  // find how many columns do we have to skip to be aligned with the result (if possible)
-  Index skipColumns = 0;
-  // if the data cannot be aligned (TODO add some compile time tests when possible, e.g. for floats)
-  if( (size_t(lhs)%sizeof(LhsScalar)) || (size_t(res)%sizeof(ResScalar)) )
-  {
-    alignedSize = 0;
-    alignedStart = 0;
-  }
-  else if (LhsPacketSize>1)
-  {
-    eigen_internal_assert(size_t(lhs+lhsAlignmentOffset)%sizeof(LhsPacket)==0 || size<LhsPacketSize);
-
-    while (skipColumns<LhsPacketSize &&
-          alignedStart != ((lhsAlignmentOffset + alignmentStep*skipColumns)%LhsPacketSize))
-      ++skipColumns;
-    if (skipColumns==LhsPacketSize)
-    {
-      // nothing can be aligned, no need to skip any column
-      alignmentPattern = NoneAligned;
-      skipColumns = 0;
-    }
-    else
-    {
-      skipColumns = (std::min)(skipColumns,cols);
-      // note that the skiped columns are processed later.
-    }
-
-    eigen_internal_assert(  (alignmentPattern==NoneAligned)
-                      || (skipColumns + columnsAtOnce >= cols)
-                      || LhsPacketSize > size
-                      || (size_t(lhs+alignedStart+lhsStride*skipColumns)%sizeof(LhsPacket))==0);
-  }
-  else if(Vectorizable)
-  {
-    alignedStart = 0;
-    alignedSize = size;
-    alignmentPattern = AllAligned;
-  }
-
-  Index offset1 = (FirstAligned && alignmentStep==1?3:1);
-  Index offset3 = (FirstAligned && alignmentStep==1?1:3);
-
-  Index columnBound = ((cols-skipColumns)/columnsAtOnce)*columnsAtOnce + skipColumns;
-  for (Index i=skipColumns; i<columnBound; i+=columnsAtOnce)
-  {
-    RhsPacket ptmp0 = pset1<RhsPacket>(alpha*rhs[i*rhsIncr]),
-              ptmp1 = pset1<RhsPacket>(alpha*rhs[(i+offset1)*rhsIncr]),
-              ptmp2 = pset1<RhsPacket>(alpha*rhs[(i+2)*rhsIncr]),
-              ptmp3 = pset1<RhsPacket>(alpha*rhs[(i+offset3)*rhsIncr]);
-
-    // this helps a lot generating better binary code
-    const LhsScalar *lhs0 = lhs + i*lhsStride,     *lhs1 = lhs + (i+offset1)*lhsStride,
-                    *lhs2 = lhs + (i+2)*lhsStride, *lhs3 = lhs + (i+offset3)*lhsStride;
-
-    if (Vectorizable)
-    {
-      /* explicit vectorization */
-      // process initial unaligned coeffs
-      for (Index j=0; j<alignedStart; ++j)
-      {
-        res[j] = cj.pmadd(lhs0[j], pfirst(ptmp0), res[j]);
-        res[j] = cj.pmadd(lhs1[j], pfirst(ptmp1), res[j]);
-        res[j] = cj.pmadd(lhs2[j], pfirst(ptmp2), res[j]);
-        res[j] = cj.pmadd(lhs3[j], pfirst(ptmp3), res[j]);
-      }
-
-      if (alignedSize>alignedStart)
-      {
-        switch(alignmentPattern)
-        {
-          case AllAligned:
-            for (Index j = alignedStart; j<alignedSize; j+=ResPacketSize)
-              _EIGEN_ACCUMULATE_PACKETS(d,d,d);
-            break;
-          case EvenAligned:
-            for (Index j = alignedStart; j<alignedSize; j+=ResPacketSize)
-              _EIGEN_ACCUMULATE_PACKETS(d,du,d);
-            break;
-          case FirstAligned:
-          {
-            Index j = alignedStart;
-            if(peels>1)
-            {
-              LhsPacket A00, A01, A02, A03, A10, A11, A12, A13;
-              ResPacket T0, T1;
-
-              A01 = pload<LhsPacket>(&lhs1[alignedStart-1]);
-              A02 = pload<LhsPacket>(&lhs2[alignedStart-2]);
-              A03 = pload<LhsPacket>(&lhs3[alignedStart-3]);
-
-              for (; j<peeledSize; j+=peels*ResPacketSize)
-              {
-                A11 = pload<LhsPacket>(&lhs1[j-1+LhsPacketSize]);  palign<1>(A01,A11);
-                A12 = pload<LhsPacket>(&lhs2[j-2+LhsPacketSize]);  palign<2>(A02,A12);
-                A13 = pload<LhsPacket>(&lhs3[j-3+LhsPacketSize]);  palign<3>(A03,A13);
-
-                A00 = pload<LhsPacket>(&lhs0[j]);
-                A10 = pload<LhsPacket>(&lhs0[j+LhsPacketSize]);
-                T0  = pcj.pmadd(A00, ptmp0, pload<ResPacket>(&res[j]));
-                T1  = pcj.pmadd(A10, ptmp0, pload<ResPacket>(&res[j+ResPacketSize]));
-
-                T0  = pcj.pmadd(A01, ptmp1, T0);
-                A01 = pload<LhsPacket>(&lhs1[j-1+2*LhsPacketSize]);  palign<1>(A11,A01);
-                T0  = pcj.pmadd(A02, ptmp2, T0);
-                A02 = pload<LhsPacket>(&lhs2[j-2+2*LhsPacketSize]);  palign<2>(A12,A02);
-                T0  = pcj.pmadd(A03, ptmp3, T0);
-                pstore(&res[j],T0);
-                A03 = pload<LhsPacket>(&lhs3[j-3+2*LhsPacketSize]);  palign<3>(A13,A03);
-                T1  = pcj.pmadd(A11, ptmp1, T1);
-                T1  = pcj.pmadd(A12, ptmp2, T1);
-                T1  = pcj.pmadd(A13, ptmp3, T1);
-                pstore(&res[j+ResPacketSize],T1);
-              }
-            }
-            for (; j<alignedSize; j+=ResPacketSize)
-              _EIGEN_ACCUMULATE_PACKETS(d,du,du);
-            break;
-          }
-          default:
-            for (Index j = alignedStart; j<alignedSize; j+=ResPacketSize)
-              _EIGEN_ACCUMULATE_PACKETS(du,du,du);
-            break;
-        }
-      }
-    } // end explicit vectorization
-
-    /* process remaining coeffs (or all if there is no explicit vectorization) */
-    for (Index j=alignedSize; j<size; ++j)
-    {
-      res[j] = cj.pmadd(lhs0[j], pfirst(ptmp0), res[j]);
-      res[j] = cj.pmadd(lhs1[j], pfirst(ptmp1), res[j]);
-      res[j] = cj.pmadd(lhs2[j], pfirst(ptmp2), res[j]);
-      res[j] = cj.pmadd(lhs3[j], pfirst(ptmp3), res[j]);
-    }
-  }
-
-  // process remaining first and last columns (at most columnsAtOnce-1)
-  Index end = cols;
-  Index start = columnBound;
-  do
-  {
-    for (Index k=start; k<end; ++k)
-    {
-      RhsPacket ptmp0 = pset1<RhsPacket>(alpha*rhs[k*rhsIncr]);
-      const LhsScalar* lhs0 = lhs + k*lhsStride;
-
-      if (Vectorizable)
-      {
-        /* explicit vectorization */
-        // process first unaligned result's coeffs
-        for (Index j=0; j<alignedStart; ++j)
-          res[j] += cj.pmul(lhs0[j], pfirst(ptmp0));
-        // process aligned result's coeffs
-        if ((size_t(lhs0+alignedStart)%sizeof(LhsPacket))==0)
-          for (Index i = alignedStart;i<alignedSize;i+=ResPacketSize)
-            pstore(&res[i], pcj.pmadd(ploadu<LhsPacket>(&lhs0[i]), ptmp0, pload<ResPacket>(&res[i])));
-        else
-          for (Index i = alignedStart;i<alignedSize;i+=ResPacketSize)
-            pstore(&res[i], pcj.pmadd(ploadu<LhsPacket>(&lhs0[i]), ptmp0, pload<ResPacket>(&res[i])));
-      }
-
-      // process remaining scalars (or all if no explicit vectorization)
-      for (Index i=alignedSize; i<size; ++i)
-        res[i] += cj.pmul(lhs0[i], pfirst(ptmp0));
-    }
-    if (skipColumns)
-    {
-      start = 0;
-      end = skipColumns;
-      skipColumns = 0;
-    }
-    else
-      break;
-  } while(Vectorizable);
-  #undef _EIGEN_ACCUMULATE_PACKETS
-}
-
-/* Optimized row-major matrix * vector product:
- * This algorithm processes 4 rows at onces that allows to both reduce
- * the number of load/stores of the result by a factor 4 and to reduce
- * the instruction dependency. Moreover, we know that all bands have the
- * same alignment pattern.
- *
- * Mixing type logic:
- *  - alpha is always a complex (or converted to a complex)
- *  - no vectorization
- */
-template<typename Index, typename LhsScalar, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs, int Version>
-struct general_matrix_vector_product<Index,LhsScalar,RowMajor,ConjugateLhs,RhsScalar,ConjugateRhs,Version>
-{
-typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
-
-enum {
-  Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable
-              && int(packet_traits<LhsScalar>::size)==int(packet_traits<RhsScalar>::size),
-  LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
-  RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
-  ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1
-};
-
-typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
-typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
-typedef typename packet_traits<ResScalar>::type  _ResPacket;
-
-typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
-typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
-typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
-  
-EIGEN_DONT_INLINE static void run(
-  Index rows, Index cols,
-  const LhsScalar* lhs, Index lhsStride,
-  const RhsScalar* rhs, Index rhsIncr,
-  ResScalar* res, Index resIncr,
-  ResScalar alpha);
-};
-
-template<typename Index, typename LhsScalar, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs, int Version>
-EIGEN_DONT_INLINE void general_matrix_vector_product<Index,LhsScalar,RowMajor,ConjugateLhs,RhsScalar,ConjugateRhs,Version>::run(
-  Index rows, Index cols,
-  const LhsScalar* lhs, Index lhsStride,
-  const RhsScalar* rhs, Index rhsIncr,
-  ResScalar* res, Index resIncr,
-  ResScalar alpha)
-{
-  EIGEN_UNUSED_VARIABLE(rhsIncr);
-  eigen_internal_assert(rhsIncr==1);
-  #ifdef _EIGEN_ACCUMULATE_PACKETS
-  #error _EIGEN_ACCUMULATE_PACKETS has already been defined
-  #endif
-
-  #define _EIGEN_ACCUMULATE_PACKETS(A0,A13,A2) {\
-    RhsPacket b = pload<RhsPacket>(&rhs[j]); \
-    ptmp0 = pcj.pmadd(EIGEN_CAT(ploa,A0) <LhsPacket>(&lhs0[j]), b, ptmp0); \
-    ptmp1 = pcj.pmadd(EIGEN_CAT(ploa,A13)<LhsPacket>(&lhs1[j]), b, ptmp1); \
-    ptmp2 = pcj.pmadd(EIGEN_CAT(ploa,A2) <LhsPacket>(&lhs2[j]), b, ptmp2); \
-    ptmp3 = pcj.pmadd(EIGEN_CAT(ploa,A13)<LhsPacket>(&lhs3[j]), b, ptmp3); }
-
-  conj_helper<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> cj;
-  conj_helper<LhsPacket,RhsPacket,ConjugateLhs,ConjugateRhs> pcj;
-
-  enum { AllAligned=0, EvenAligned=1, FirstAligned=2, NoneAligned=3 };
-  const Index rowsAtOnce = 4;
-  const Index peels = 2;
-  const Index RhsPacketAlignedMask = RhsPacketSize-1;
-  const Index LhsPacketAlignedMask = LhsPacketSize-1;
-//   const Index PeelAlignedMask = RhsPacketSize*peels-1;
-  const Index depth = cols;
-
-  // How many coeffs of the result do we have to skip to be aligned.
-  // Here we assume data are at least aligned on the base scalar type
-  // if that's not the case then vectorization is discarded, see below.
-  Index alignedStart = internal::first_aligned(rhs, depth);
-  Index alignedSize = RhsPacketSize>1 ? alignedStart + ((depth-alignedStart) & ~RhsPacketAlignedMask) : 0;
-  const Index peeledSize = alignedSize - RhsPacketSize*peels - RhsPacketSize + 1;
-
-  const Index alignmentStep = LhsPacketSize>1 ? (LhsPacketSize - lhsStride % LhsPacketSize) & LhsPacketAlignedMask : 0;
-  Index alignmentPattern = alignmentStep==0 ? AllAligned
-                         : alignmentStep==(LhsPacketSize/2) ? EvenAligned
-                         : FirstAligned;
-
-  // we cannot assume the first element is aligned because of sub-matrices
-  const Index lhsAlignmentOffset = internal::first_aligned(lhs,depth);
-
-  // find how many rows do we have to skip to be aligned with rhs (if possible)
-  Index skipRows = 0;
-  // if the data cannot be aligned (TODO add some compile time tests when possible, e.g. for floats)
-  if( (sizeof(LhsScalar)!=sizeof(RhsScalar)) || (size_t(lhs)%sizeof(LhsScalar)) || (size_t(rhs)%sizeof(RhsScalar)) )
-  {
-    alignedSize = 0;
-    alignedStart = 0;
-  }
-  else if (LhsPacketSize>1)
-  {
-    eigen_internal_assert(size_t(lhs+lhsAlignmentOffset)%sizeof(LhsPacket)==0  || depth<LhsPacketSize);
-
-    while (skipRows<LhsPacketSize &&
-           alignedStart != ((lhsAlignmentOffset + alignmentStep*skipRows)%LhsPacketSize))
-      ++skipRows;
-    if (skipRows==LhsPacketSize)
-    {
-      // nothing can be aligned, no need to skip any column
-      alignmentPattern = NoneAligned;
-      skipRows = 0;
-    }
-    else
-    {
-      skipRows = (std::min)(skipRows,Index(rows));
-      // note that the skiped columns are processed later.
-    }
-    eigen_internal_assert(  alignmentPattern==NoneAligned
-                      || LhsPacketSize==1
-                      || (skipRows + rowsAtOnce >= rows)
-                      || LhsPacketSize > depth
-                      || (size_t(lhs+alignedStart+lhsStride*skipRows)%sizeof(LhsPacket))==0);
-  }
-  else if(Vectorizable)
-  {
-    alignedStart = 0;
-    alignedSize = depth;
-    alignmentPattern = AllAligned;
-  }
-
-  Index offset1 = (FirstAligned && alignmentStep==1?3:1);
-  Index offset3 = (FirstAligned && alignmentStep==1?1:3);
-
-  Index rowBound = ((rows-skipRows)/rowsAtOnce)*rowsAtOnce + skipRows;
-  for (Index i=skipRows; i<rowBound; i+=rowsAtOnce)
-  {
-    EIGEN_ALIGN16 ResScalar tmp0 = ResScalar(0);
-    ResScalar tmp1 = ResScalar(0), tmp2 = ResScalar(0), tmp3 = ResScalar(0);
-
-    // this helps the compiler generating good binary code
-    const LhsScalar *lhs0 = lhs + i*lhsStride,     *lhs1 = lhs + (i+offset1)*lhsStride,
-                    *lhs2 = lhs + (i+2)*lhsStride, *lhs3 = lhs + (i+offset3)*lhsStride;
-
-    if (Vectorizable)
-    {
-      /* explicit vectorization */
-      ResPacket ptmp0 = pset1<ResPacket>(ResScalar(0)), ptmp1 = pset1<ResPacket>(ResScalar(0)),
-                ptmp2 = pset1<ResPacket>(ResScalar(0)), ptmp3 = pset1<ResPacket>(ResScalar(0));
-
-      // process initial unaligned coeffs
-      // FIXME this loop get vectorized by the compiler !
-      for (Index j=0; j<alignedStart; ++j)
-      {
-        RhsScalar b = rhs[j];
-        tmp0 += cj.pmul(lhs0[j],b); tmp1 += cj.pmul(lhs1[j],b);
-        tmp2 += cj.pmul(lhs2[j],b); tmp3 += cj.pmul(lhs3[j],b);
-      }
-
-      if (alignedSize>alignedStart)
-      {
-        switch(alignmentPattern)
-        {
-          case AllAligned:
-            for (Index j = alignedStart; j<alignedSize; j+=RhsPacketSize)
-              _EIGEN_ACCUMULATE_PACKETS(d,d,d);
-            break;
-          case EvenAligned:
-            for (Index j = alignedStart; j<alignedSize; j+=RhsPacketSize)
-              _EIGEN_ACCUMULATE_PACKETS(d,du,d);
-            break;
-          case FirstAligned:
-          {
-            Index j = alignedStart;
-            if (peels>1)
-            {
-              /* Here we proccess 4 rows with with two peeled iterations to hide
-               * the overhead of unaligned loads. Moreover unaligned loads are handled
-               * using special shift/move operations between the two aligned packets
-               * overlaping the desired unaligned packet. This is *much* more efficient
-               * than basic unaligned loads.
-               */
-              LhsPacket A01, A02, A03, A11, A12, A13;
-              A01 = pload<LhsPacket>(&lhs1[alignedStart-1]);
-              A02 = pload<LhsPacket>(&lhs2[alignedStart-2]);
-              A03 = pload<LhsPacket>(&lhs3[alignedStart-3]);
-
-              for (; j<peeledSize; j+=peels*RhsPacketSize)
-              {
-                RhsPacket b = pload<RhsPacket>(&rhs[j]);
-                A11 = pload<LhsPacket>(&lhs1[j-1+LhsPacketSize]);  palign<1>(A01,A11);
-                A12 = pload<LhsPacket>(&lhs2[j-2+LhsPacketSize]);  palign<2>(A02,A12);
-                A13 = pload<LhsPacket>(&lhs3[j-3+LhsPacketSize]);  palign<3>(A03,A13);
-
-                ptmp0 = pcj.pmadd(pload<LhsPacket>(&lhs0[j]), b, ptmp0);
-                ptmp1 = pcj.pmadd(A01, b, ptmp1);
-                A01 = pload<LhsPacket>(&lhs1[j-1+2*LhsPacketSize]);  palign<1>(A11,A01);
-                ptmp2 = pcj.pmadd(A02, b, ptmp2);
-                A02 = pload<LhsPacket>(&lhs2[j-2+2*LhsPacketSize]);  palign<2>(A12,A02);
-                ptmp3 = pcj.pmadd(A03, b, ptmp3);
-                A03 = pload<LhsPacket>(&lhs3[j-3+2*LhsPacketSize]);  palign<3>(A13,A03);
-
-                b = pload<RhsPacket>(&rhs[j+RhsPacketSize]);
-                ptmp0 = pcj.pmadd(pload<LhsPacket>(&lhs0[j+LhsPacketSize]), b, ptmp0);
-                ptmp1 = pcj.pmadd(A11, b, ptmp1);
-                ptmp2 = pcj.pmadd(A12, b, ptmp2);
-                ptmp3 = pcj.pmadd(A13, b, ptmp3);
-              }
-            }
-            for (; j<alignedSize; j+=RhsPacketSize)
-              _EIGEN_ACCUMULATE_PACKETS(d,du,du);
-            break;
-          }
-          default:
-            for (Index j = alignedStart; j<alignedSize; j+=RhsPacketSize)
-              _EIGEN_ACCUMULATE_PACKETS(du,du,du);
-            break;
-        }
-        tmp0 += predux(ptmp0);
-        tmp1 += predux(ptmp1);
-        tmp2 += predux(ptmp2);
-        tmp3 += predux(ptmp3);
-      }
-    } // end explicit vectorization
-
-    // process remaining coeffs (or all if no explicit vectorization)
-    // FIXME this loop get vectorized by the compiler !
-    for (Index j=alignedSize; j<depth; ++j)
-    {
-      RhsScalar b = rhs[j];
-      tmp0 += cj.pmul(lhs0[j],b); tmp1 += cj.pmul(lhs1[j],b);
-      tmp2 += cj.pmul(lhs2[j],b); tmp3 += cj.pmul(lhs3[j],b);
-    }
-    res[i*resIncr]            += alpha*tmp0;
-    res[(i+offset1)*resIncr]  += alpha*tmp1;
-    res[(i+2)*resIncr]        += alpha*tmp2;
-    res[(i+offset3)*resIncr]  += alpha*tmp3;
-  }
-
-  // process remaining first and last rows (at most columnsAtOnce-1)
-  Index end = rows;
-  Index start = rowBound;
-  do
-  {
-    for (Index i=start; i<end; ++i)
-    {
-      EIGEN_ALIGN16 ResScalar tmp0 = ResScalar(0);
-      ResPacket ptmp0 = pset1<ResPacket>(tmp0);
-      const LhsScalar* lhs0 = lhs + i*lhsStride;
-      // process first unaligned result's coeffs
-      // FIXME this loop get vectorized by the compiler !
-      for (Index j=0; j<alignedStart; ++j)
-        tmp0 += cj.pmul(lhs0[j], rhs[j]);
-
-      if (alignedSize>alignedStart)
-      {
-        // process aligned rhs coeffs
-        if ((size_t(lhs0+alignedStart)%sizeof(LhsPacket))==0)
-          for (Index j = alignedStart;j<alignedSize;j+=RhsPacketSize)
-            ptmp0 = pcj.pmadd(pload<LhsPacket>(&lhs0[j]), pload<RhsPacket>(&rhs[j]), ptmp0);
-        else
-          for (Index j = alignedStart;j<alignedSize;j+=RhsPacketSize)
-            ptmp0 = pcj.pmadd(ploadu<LhsPacket>(&lhs0[j]), pload<RhsPacket>(&rhs[j]), ptmp0);
-        tmp0 += predux(ptmp0);
-      }
-
-      // process remaining scalars
-      // FIXME this loop get vectorized by the compiler !
-      for (Index j=alignedSize; j<depth; ++j)
-        tmp0 += cj.pmul(lhs0[j], rhs[j]);
-      res[i*resIncr] += alpha*tmp0;
-    }
-    if (skipRows)
-    {
-      start = 0;
-      end = skipRows;
-      skipRows = 0;
-    }
-    else
-      break;
-  } while(Vectorizable);
-
-  #undef _EIGEN_ACCUMULATE_PACKETS
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_GENERAL_MATRIX_VECTOR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/Parallelizer.h b/vendor/eigen-3.1.91/Eigen/src/Core/products/Parallelizer.h
deleted file mode 100644
index 5c3e9b7..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/products/Parallelizer.h
+++ /dev/null
@@ -1,159 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_PARALLELIZER_H
-#define EIGEN_PARALLELIZER_H
-
-namespace Eigen { 
-
-namespace internal {
-
-/** \internal */
-inline void manage_multi_threading(Action action, int* v)
-{
-  static EIGEN_UNUSED int m_maxThreads = -1;
-
-  if(action==SetAction)
-  {
-    eigen_internal_assert(v!=0);
-    m_maxThreads = *v;
-  }
-  else if(action==GetAction)
-  {
-    eigen_internal_assert(v!=0);
-    #ifdef EIGEN_HAS_OPENMP
-    if(m_maxThreads>0)
-      *v = m_maxThreads;
-    else
-      *v = omp_get_max_threads();
-    #else
-    *v = 1;
-    #endif
-  }
-  else
-  {
-    eigen_internal_assert(false);
-  }
-}
-
-}
-
-/** Must be call first when calling Eigen from multiple threads */
-inline void initParallel()
-{
-  int nbt;
-  internal::manage_multi_threading(GetAction, &nbt);
-  std::ptrdiff_t l1, l2;
-  internal::manage_caching_sizes(GetAction, &l1, &l2);
-}
-
-/** \returns the max number of threads reserved for Eigen
-  * \sa setNbThreads */
-inline int nbThreads()
-{
-  int ret;
-  internal::manage_multi_threading(GetAction, &ret);
-  return ret;
-}
-
-/** Sets the max number of threads reserved for Eigen
-  * \sa nbThreads */
-inline void setNbThreads(int v)
-{
-  internal::manage_multi_threading(SetAction, &v);
-}
-
-namespace internal {
-
-template<typename Index> struct GemmParallelInfo
-{
-  GemmParallelInfo() : sync(-1), users(0), rhs_start(0), rhs_length(0) {}
-
-  int volatile sync;
-  int volatile users;
-
-  Index rhs_start;
-  Index rhs_length;
-};
-
-template<bool Condition, typename Functor, typename Index>
-void parallelize_gemm(const Functor& func, Index rows, Index cols, bool transpose)
-{
-  // TODO when EIGEN_USE_BLAS is defined,
-  // we should still enable OMP for other scalar types
-#if !(defined (EIGEN_HAS_OPENMP)) || defined (EIGEN_USE_BLAS)
-  // FIXME the transpose variable is only needed to properly split
-  // the matrix product when multithreading is enabled. This is a temporary
-  // fix to support row-major destination matrices. This whole
-  // parallelizer mechanism has to be redisigned anyway.
-  EIGEN_UNUSED_VARIABLE(transpose);
-  func(0,rows, 0,cols);
-#else
-
-  // Dynamically check whether we should enable or disable OpenMP.
-  // The conditions are:
-  // - the max number of threads we can create is greater than 1
-  // - we are not already in a parallel code
-  // - the sizes are large enough
-
-  // 1- are we already in a parallel session?
-  // FIXME omp_get_num_threads()>1 only works for openmp, what if the user does not use openmp?
-  if((!Condition) || (omp_get_num_threads()>1))
-    return func(0,rows, 0,cols);
-
-  Index size = transpose ? cols : rows;
-
-  // 2- compute the maximal number of threads from the size of the product:
-  // FIXME this has to be fine tuned
-  Index max_threads = std::max<Index>(1,size / 32);
-
-  // 3 - compute the number of threads we are going to use
-  Index threads = std::min<Index>(nbThreads(), max_threads);
-
-  if(threads==1)
-    return func(0,rows, 0,cols);
-
-  Eigen::initParallel();
-  func.initParallelSession();
-
-  if(transpose)
-    std::swap(rows,cols);
-
-  Index blockCols = (cols / threads) & ~Index(0x3);
-  Index blockRows = (rows / threads) & ~Index(0x7);
-  
-  GemmParallelInfo<Index>* info = new GemmParallelInfo<Index>[threads];
-
-  #pragma omp parallel for schedule(static,1) num_threads(threads)
-  for(Index i=0; i<threads; ++i)
-  {
-    Index r0 = i*blockRows;
-    Index actualBlockRows = (i+1==threads) ? rows-r0 : blockRows;
-
-    Index c0 = i*blockCols;
-    Index actualBlockCols = (i+1==threads) ? cols-c0 : blockCols;
-
-    info[i].rhs_start = c0;
-    info[i].rhs_length = actualBlockCols;
-
-    if(transpose)
-      func(0, cols, r0, actualBlockRows, info);
-    else
-      func(r0, actualBlockRows, 0,cols, info);
-  }
-
-  delete[] info;
-#endif
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_PARALLELIZER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/SelfadjointMatrixMatrix.h b/vendor/eigen-3.1.91/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
deleted file mode 100644
index ee619df..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
+++ /dev/null
@@ -1,436 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SELFADJOINT_MATRIX_MATRIX_H
-#define EIGEN_SELFADJOINT_MATRIX_MATRIX_H
-
-namespace Eigen { 
-
-namespace internal {
-
-// pack a selfadjoint block diagonal for use with the gebp_kernel
-template<typename Scalar, typename Index, int Pack1, int Pack2, int StorageOrder>
-struct symm_pack_lhs
-{
-  template<int BlockRows> inline
-  void pack(Scalar* blockA, const const_blas_data_mapper<Scalar,Index,StorageOrder>& lhs, Index cols, Index i, Index& count)
-  {
-    // normal copy
-    for(Index k=0; k<i; k++)
-      for(Index w=0; w<BlockRows; w++)
-        blockA[count++] = lhs(i+w,k);           // normal
-    // symmetric copy
-    Index h = 0;
-    for(Index k=i; k<i+BlockRows; k++)
-    {
-      for(Index w=0; w<h; w++)
-        blockA[count++] = conj(lhs(k, i+w)); // transposed
-
-      blockA[count++] = real(lhs(k,k));   // real (diagonal)
-
-      for(Index w=h+1; w<BlockRows; w++)
-        blockA[count++] = lhs(i+w, k);          // normal
-      ++h;
-    }
-    // transposed copy
-    for(Index k=i+BlockRows; k<cols; k++)
-      for(Index w=0; w<BlockRows; w++)
-        blockA[count++] = conj(lhs(k, i+w)); // transposed
-  }
-  void operator()(Scalar* blockA, const Scalar* _lhs, Index lhsStride, Index cols, Index rows)
-  {
-    const_blas_data_mapper<Scalar,Index,StorageOrder> lhs(_lhs,lhsStride);
-    Index count = 0;
-    Index peeled_mc = (rows/Pack1)*Pack1;
-    for(Index i=0; i<peeled_mc; i+=Pack1)
-    {
-      pack<Pack1>(blockA, lhs, cols, i, count);
-    }
-
-    if(rows-peeled_mc>=Pack2)
-    {
-      pack<Pack2>(blockA, lhs, cols, peeled_mc, count);
-      peeled_mc += Pack2;
-    }
-
-    // do the same with mr==1
-    for(Index i=peeled_mc; i<rows; i++)
-    {
-      for(Index k=0; k<i; k++)
-        blockA[count++] = lhs(i, k);              // normal
-
-      blockA[count++] = real(lhs(i, i));       // real (diagonal)
-
-      for(Index k=i+1; k<cols; k++)
-        blockA[count++] = conj(lhs(k, i));     // transposed
-    }
-  }
-};
-
-template<typename Scalar, typename Index, int nr, int StorageOrder>
-struct symm_pack_rhs
-{
-  enum { PacketSize = packet_traits<Scalar>::size };
-  void operator()(Scalar* blockB, const Scalar* _rhs, Index rhsStride, Index rows, Index cols, Index k2)
-  {
-    Index end_k = k2 + rows;
-    Index count = 0;
-    const_blas_data_mapper<Scalar,Index,StorageOrder> rhs(_rhs,rhsStride);
-    Index packet_cols = (cols/nr)*nr;
-
-    // first part: normal case
-    for(Index j2=0; j2<k2; j2+=nr)
-    {
-      for(Index k=k2; k<end_k; k++)
-      {
-        blockB[count+0] = rhs(k,j2+0);
-        blockB[count+1] = rhs(k,j2+1);
-        if (nr==4)
-        {
-          blockB[count+2] = rhs(k,j2+2);
-          blockB[count+3] = rhs(k,j2+3);
-        }
-        count += nr;
-      }
-    }
-
-    // second part: diagonal block
-    for(Index j2=k2; j2<(std::min)(k2+rows,packet_cols); j2+=nr)
-    {
-      // again we can split vertically in three different parts (transpose, symmetric, normal)
-      // transpose
-      for(Index k=k2; k<j2; k++)
-      {
-        blockB[count+0] = conj(rhs(j2+0,k));
-        blockB[count+1] = conj(rhs(j2+1,k));
-        if (nr==4)
-        {
-          blockB[count+2] = conj(rhs(j2+2,k));
-          blockB[count+3] = conj(rhs(j2+3,k));
-        }
-        count += nr;
-      }
-      // symmetric
-      Index h = 0;
-      for(Index k=j2; k<j2+nr; k++)
-      {
-        // normal
-        for (Index w=0 ; w<h; ++w)
-          blockB[count+w] = rhs(k,j2+w);
-
-        blockB[count+h] = real(rhs(k,k));
-
-        // transpose
-        for (Index w=h+1 ; w<nr; ++w)
-          blockB[count+w] = conj(rhs(j2+w,k));
-        count += nr;
-        ++h;
-      }
-      // normal
-      for(Index k=j2+nr; k<end_k; k++)
-      {
-        blockB[count+0] = rhs(k,j2+0);
-        blockB[count+1] = rhs(k,j2+1);
-        if (nr==4)
-        {
-          blockB[count+2] = rhs(k,j2+2);
-          blockB[count+3] = rhs(k,j2+3);
-        }
-        count += nr;
-      }
-    }
-
-    // third part: transposed
-    for(Index j2=k2+rows; j2<packet_cols; j2+=nr)
-    {
-      for(Index k=k2; k<end_k; k++)
-      {
-        blockB[count+0] = conj(rhs(j2+0,k));
-        blockB[count+1] = conj(rhs(j2+1,k));
-        if (nr==4)
-        {
-          blockB[count+2] = conj(rhs(j2+2,k));
-          blockB[count+3] = conj(rhs(j2+3,k));
-        }
-        count += nr;
-      }
-    }
-
-    // copy the remaining columns one at a time (=> the same with nr==1)
-    for(Index j2=packet_cols; j2<cols; ++j2)
-    {
-      // transpose
-      Index half = (std::min)(end_k,j2);
-      for(Index k=k2; k<half; k++)
-      {
-        blockB[count] = conj(rhs(j2,k));
-        count += 1;
-      }
-
-      if(half==j2 && half<k2+rows)
-      {
-        blockB[count] = real(rhs(j2,j2));
-        count += 1;
-      }
-      else
-        half--;
-
-      // normal
-      for(Index k=half+1; k<k2+rows; k++)
-      {
-        blockB[count] = rhs(k,j2);
-        count += 1;
-      }
-    }
-  }
-};
-
-/* Optimized selfadjoint matrix * matrix (_SYMM) product built on top of
- * the general matrix matrix product.
- */
-template <typename Scalar, typename Index,
-          int LhsStorageOrder, bool LhsSelfAdjoint, bool ConjugateLhs,
-          int RhsStorageOrder, bool RhsSelfAdjoint, bool ConjugateRhs,
-          int ResStorageOrder>
-struct product_selfadjoint_matrix;
-
-template <typename Scalar, typename Index,
-          int LhsStorageOrder, bool LhsSelfAdjoint, bool ConjugateLhs,
-          int RhsStorageOrder, bool RhsSelfAdjoint, bool ConjugateRhs>
-struct product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,LhsSelfAdjoint,ConjugateLhs, RhsStorageOrder,RhsSelfAdjoint,ConjugateRhs,RowMajor>
-{
-
-  static EIGEN_STRONG_INLINE void run(
-    Index rows, Index cols,
-    const Scalar* lhs, Index lhsStride,
-    const Scalar* rhs, Index rhsStride,
-    Scalar* res,       Index resStride,
-    const Scalar& alpha)
-  {
-    product_selfadjoint_matrix<Scalar, Index,
-      EIGEN_LOGICAL_XOR(RhsSelfAdjoint,RhsStorageOrder==RowMajor) ? ColMajor : RowMajor,
-      RhsSelfAdjoint, NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(RhsSelfAdjoint,ConjugateRhs),
-      EIGEN_LOGICAL_XOR(LhsSelfAdjoint,LhsStorageOrder==RowMajor) ? ColMajor : RowMajor,
-      LhsSelfAdjoint, NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(LhsSelfAdjoint,ConjugateLhs),
-      ColMajor>
-      ::run(cols, rows,  rhs, rhsStride,  lhs, lhsStride,  res, resStride,  alpha);
-  }
-};
-
-template <typename Scalar, typename Index,
-          int LhsStorageOrder, bool ConjugateLhs,
-          int RhsStorageOrder, bool ConjugateRhs>
-struct product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,true,ConjugateLhs, RhsStorageOrder,false,ConjugateRhs,ColMajor>
-{
-
-  static EIGEN_DONT_INLINE void run(
-    Index rows, Index cols,
-    const Scalar* _lhs, Index lhsStride,
-    const Scalar* _rhs, Index rhsStride,
-    Scalar* res,        Index resStride,
-    const Scalar& alpha);
-};
-
-template <typename Scalar, typename Index,
-          int LhsStorageOrder, bool ConjugateLhs,
-          int RhsStorageOrder, bool ConjugateRhs>
-EIGEN_DONT_INLINE void product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,true,ConjugateLhs, RhsStorageOrder,false,ConjugateRhs,ColMajor>::run(
-    Index rows, Index cols,
-    const Scalar* _lhs, Index lhsStride,
-    const Scalar* _rhs, Index rhsStride,
-    Scalar* res,        Index resStride,
-    const Scalar& alpha)
-  {
-    Index size = rows;
-
-    const_blas_data_mapper<Scalar, Index, LhsStorageOrder> lhs(_lhs,lhsStride);
-    const_blas_data_mapper<Scalar, Index, RhsStorageOrder> rhs(_rhs,rhsStride);
-
-    typedef gebp_traits<Scalar,Scalar> Traits;
-
-    Index kc = size;  // cache block size along the K direction
-    Index mc = rows;  // cache block size along the M direction
-    Index nc = cols;  // cache block size along the N direction
-    computeProductBlockingSizes<Scalar,Scalar>(kc, mc, nc);
-    // kc must smaller than mc
-    kc = (std::min)(kc,mc);
-
-    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
-    std::size_t sizeB = sizeW + kc*cols;
-    ei_declare_aligned_stack_constructed_variable(Scalar, blockA, kc*mc, 0);
-    ei_declare_aligned_stack_constructed_variable(Scalar, allocatedBlockB, sizeB, 0);
-    Scalar* blockB = allocatedBlockB + sizeW;
-
-    gebp_kernel<Scalar, Scalar, Index, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp_kernel;
-    symm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
-    gemm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder> pack_rhs;
-    gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder==RowMajor?ColMajor:RowMajor, true> pack_lhs_transposed;
-
-    for(Index k2=0; k2<size; k2+=kc)
-    {
-      const Index actual_kc = (std::min)(k2+kc,size)-k2;
-
-      // we have selected one row panel of rhs and one column panel of lhs
-      // pack rhs's panel into a sequential chunk of memory
-      // and expand each coeff to a constant packet for further reuse
-      pack_rhs(blockB, &rhs(k2,0), rhsStride, actual_kc, cols);
-
-      // the select lhs's panel has to be split in three different parts:
-      //  1 - the transposed panel above the diagonal block => transposed packed copy
-      //  2 - the diagonal block => special packed copy
-      //  3 - the panel below the diagonal block => generic packed copy
-      for(Index i2=0; i2<k2; i2+=mc)
-      {
-        const Index actual_mc = (std::min)(i2+mc,k2)-i2;
-        // transposed packed copy
-        pack_lhs_transposed(blockA, &lhs(k2, i2), lhsStride, actual_kc, actual_mc);
-
-        gebp_kernel(res+i2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha);
-      }
-      // the block diagonal
-      {
-        const Index actual_mc = (std::min)(k2+kc,size)-k2;
-        // symmetric packed copy
-        pack_lhs(blockA, &lhs(k2,k2), lhsStride, actual_kc, actual_mc);
-
-        gebp_kernel(res+k2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha);
-      }
-
-      for(Index i2=k2+kc; i2<size; i2+=mc)
-      {
-        const Index actual_mc = (std::min)(i2+mc,size)-i2;
-        gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder,false>()
-          (blockA, &lhs(i2, k2), lhsStride, actual_kc, actual_mc);
-
-        gebp_kernel(res+i2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha);
-      }
-    }
-  }
-
-// matrix * selfadjoint product
-template <typename Scalar, typename Index,
-          int LhsStorageOrder, bool ConjugateLhs,
-          int RhsStorageOrder, bool ConjugateRhs>
-struct product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,false,ConjugateLhs, RhsStorageOrder,true,ConjugateRhs,ColMajor>
-{
-
-  static EIGEN_DONT_INLINE void run(
-    Index rows, Index cols,
-    const Scalar* _lhs, Index lhsStride,
-    const Scalar* _rhs, Index rhsStride,
-    Scalar* res,        Index resStride,
-    const Scalar& alpha);
-};
-
-template <typename Scalar, typename Index,
-          int LhsStorageOrder, bool ConjugateLhs,
-          int RhsStorageOrder, bool ConjugateRhs>
-EIGEN_DONT_INLINE void product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,false,ConjugateLhs, RhsStorageOrder,true,ConjugateRhs,ColMajor>::run(
-    Index rows, Index cols,
-    const Scalar* _lhs, Index lhsStride,
-    const Scalar* _rhs, Index rhsStride,
-    Scalar* res,        Index resStride,
-    const Scalar& alpha)
-  {
-    Index size = cols;
-
-    const_blas_data_mapper<Scalar, Index, LhsStorageOrder> lhs(_lhs,lhsStride);
-
-    typedef gebp_traits<Scalar,Scalar> Traits;
-
-    Index kc = size; // cache block size along the K direction
-    Index mc = rows;  // cache block size along the M direction
-    Index nc = cols;  // cache block size along the N direction
-    computeProductBlockingSizes<Scalar,Scalar>(kc, mc, nc);
-    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
-    std::size_t sizeB = sizeW + kc*cols;
-    ei_declare_aligned_stack_constructed_variable(Scalar, blockA, kc*mc, 0);
-    ei_declare_aligned_stack_constructed_variable(Scalar, allocatedBlockB, sizeB, 0);
-    Scalar* blockB = allocatedBlockB + sizeW;
-
-    gebp_kernel<Scalar, Scalar, Index, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp_kernel;
-    gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
-    symm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder> pack_rhs;
-
-    for(Index k2=0; k2<size; k2+=kc)
-    {
-      const Index actual_kc = (std::min)(k2+kc,size)-k2;
-
-      pack_rhs(blockB, _rhs, rhsStride, actual_kc, cols, k2);
-
-      // => GEPP
-      for(Index i2=0; i2<rows; i2+=mc)
-      {
-        const Index actual_mc = (std::min)(i2+mc,rows)-i2;
-        pack_lhs(blockA, &lhs(i2, k2), lhsStride, actual_kc, actual_mc);
-
-        gebp_kernel(res+i2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha);
-      }
-    }
-  }
-
-} // end namespace internal
-
-/***************************************************************************
-* Wrapper to product_selfadjoint_matrix
-***************************************************************************/
-
-namespace internal {
-template<typename Lhs, int LhsMode, typename Rhs, int RhsMode>
-struct traits<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,RhsMode,false> >
-  : traits<ProductBase<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,RhsMode,false>, Lhs, Rhs> >
-{};
-}
-
-template<typename Lhs, int LhsMode, typename Rhs, int RhsMode>
-struct SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,RhsMode,false>
-  : public ProductBase<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,RhsMode,false>, Lhs, Rhs >
-{
-  EIGEN_PRODUCT_PUBLIC_INTERFACE(SelfadjointProductMatrix)
-
-  SelfadjointProductMatrix(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
-
-  enum {
-    LhsIsUpper = (LhsMode&(Upper|Lower))==Upper,
-    LhsIsSelfAdjoint = (LhsMode&SelfAdjoint)==SelfAdjoint,
-    RhsIsUpper = (RhsMode&(Upper|Lower))==Upper,
-    RhsIsSelfAdjoint = (RhsMode&SelfAdjoint)==SelfAdjoint
-  };
-
-  template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
-  {
-    eigen_assert(dst.rows()==m_lhs.rows() && dst.cols()==m_rhs.cols());
-
-    typename internal::add_const_on_value_type<ActualLhsType>::type lhs = LhsBlasTraits::extract(m_lhs);
-    typename internal::add_const_on_value_type<ActualRhsType>::type rhs = RhsBlasTraits::extract(m_rhs);
-
-    Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(m_lhs)
-                               * RhsBlasTraits::extractScalarFactor(m_rhs);
-
-    internal::product_selfadjoint_matrix<Scalar, Index,
-      EIGEN_LOGICAL_XOR(LhsIsUpper,
-                        internal::traits<Lhs>::Flags &RowMajorBit) ? RowMajor : ColMajor, LhsIsSelfAdjoint,
-      NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(LhsIsUpper,bool(LhsBlasTraits::NeedToConjugate)),
-      EIGEN_LOGICAL_XOR(RhsIsUpper,
-                        internal::traits<Rhs>::Flags &RowMajorBit) ? RowMajor : ColMajor, RhsIsSelfAdjoint,
-      NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(RhsIsUpper,bool(RhsBlasTraits::NeedToConjugate)),
-      internal::traits<Dest>::Flags&RowMajorBit  ? RowMajor : ColMajor>
-      ::run(
-        lhs.rows(), rhs.cols(),                 // sizes
-        &lhs.coeffRef(0,0),    lhs.outerStride(),  // lhs info
-        &rhs.coeffRef(0,0),    rhs.outerStride(),  // rhs info
-        &dst.coeffRef(0,0), dst.outerStride(),  // result info
-        actualAlpha                             // alpha
-      );
-  }
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_SELFADJOINT_MATRIX_MATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/SelfadjointMatrixVector.h b/vendor/eigen-3.1.91/Eigen/src/Core/products/SelfadjointMatrixVector.h
deleted file mode 100644
index 969ae65..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/products/SelfadjointMatrixVector.h
+++ /dev/null
@@ -1,281 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SELFADJOINT_MATRIX_VECTOR_H
-#define EIGEN_SELFADJOINT_MATRIX_VECTOR_H
-
-namespace Eigen { 
-
-namespace internal {
-
-/* Optimized selfadjoint matrix * vector product:
- * This algorithm processes 2 columns at onces that allows to both reduce
- * the number of load/stores of the result by a factor 2 and to reduce
- * the instruction dependency.
- */
-
-template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs, int Version=Specialized>
-struct selfadjoint_matrix_vector_product;
-
-template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs, int Version>
-struct selfadjoint_matrix_vector_product
-
-{
-static EIGEN_DONT_INLINE void run(
-  Index size,
-  const Scalar*  lhs, Index lhsStride,
-  const Scalar* _rhs, Index rhsIncr,
-  Scalar* res,
-  Scalar alpha);
-};
-
-template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs, int Version>
-EIGEN_DONT_INLINE void selfadjoint_matrix_vector_product<Scalar,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs,Version>::run(
-  Index size,
-  const Scalar*  lhs, Index lhsStride,
-  const Scalar* _rhs, Index rhsIncr,
-  Scalar* res,
-  Scalar alpha)
-{
-  typedef typename packet_traits<Scalar>::type Packet;
-  const Index PacketSize = sizeof(Packet)/sizeof(Scalar);
-
-  enum {
-    IsRowMajor = StorageOrder==RowMajor ? 1 : 0,
-    IsLower = UpLo == Lower ? 1 : 0,
-    FirstTriangular = IsRowMajor == IsLower
-  };
-
-  conj_helper<Scalar,Scalar,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs,  IsRowMajor), ConjugateRhs> cj0;
-  conj_helper<Scalar,Scalar,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs, !IsRowMajor), ConjugateRhs> cj1;
-  conj_helper<Scalar,Scalar,NumTraits<Scalar>::IsComplex, ConjugateRhs> cjd;
-
-  conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs,  IsRowMajor), ConjugateRhs> pcj0;
-  conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs, !IsRowMajor), ConjugateRhs> pcj1;
-
-  Scalar cjAlpha = ConjugateRhs ? conj(alpha) : alpha;
-
-  // FIXME this copy is now handled outside product_selfadjoint_vector, so it could probably be removed.
-  // if the rhs is not sequentially stored in memory we copy it to a temporary buffer,
-  // this is because we need to extract packets
-  ei_declare_aligned_stack_constructed_variable(Scalar,rhs,size,rhsIncr==1 ? const_cast<Scalar*>(_rhs) : 0);  
-  if (rhsIncr!=1)
-  {
-    const Scalar* it = _rhs;
-    for (Index i=0; i<size; ++i, it+=rhsIncr)
-      rhs[i] = *it;
-  }
-
-  Index bound = (std::max)(Index(0),size-8) & 0xfffffffe;
-  if (FirstTriangular)
-    bound = size - bound;
-
-  for (Index j=FirstTriangular ? bound : 0;
-       j<(FirstTriangular ? size : bound);j+=2)
-  {
-    const Scalar* EIGEN_RESTRICT A0 = lhs + j*lhsStride;
-    const Scalar* EIGEN_RESTRICT A1 = lhs + (j+1)*lhsStride;
-
-    Scalar t0 = cjAlpha * rhs[j];
-    Packet ptmp0 = pset1<Packet>(t0);
-    Scalar t1 = cjAlpha * rhs[j+1];
-    Packet ptmp1 = pset1<Packet>(t1);
-
-    Scalar t2(0);
-    Packet ptmp2 = pset1<Packet>(t2);
-    Scalar t3(0);
-    Packet ptmp3 = pset1<Packet>(t3);
-
-    size_t starti = FirstTriangular ? 0 : j+2;
-    size_t endi   = FirstTriangular ? j : size;
-    size_t alignedStart = (starti) + internal::first_aligned(&res[starti], endi-starti);
-    size_t alignedEnd = alignedStart + ((endi-alignedStart)/(PacketSize))*(PacketSize);
-
-    // TODO make sure this product is a real * complex and that the rhs is properly conjugated if needed
-    res[j]   += cjd.pmul(internal::real(A0[j]), t0);
-    res[j+1] += cjd.pmul(internal::real(A1[j+1]), t1);
-    if(FirstTriangular)
-    {
-      res[j]   += cj0.pmul(A1[j],   t1);
-      t3       += cj1.pmul(A1[j],   rhs[j]);
-    }
-    else
-    {
-      res[j+1] += cj0.pmul(A0[j+1],t0);
-      t2 += cj1.pmul(A0[j+1], rhs[j+1]);
-    }
-
-    for (size_t i=starti; i<alignedStart; ++i)
-    {
-      res[i] += t0 * A0[i] + t1 * A1[i];
-      t2 += conj(A0[i]) * rhs[i];
-      t3 += conj(A1[i]) * rhs[i];
-    }
-    // Yes this an optimization for gcc 4.3 and 4.4 (=> huge speed up)
-    // gcc 4.2 does this optimization automatically.
-    const Scalar* EIGEN_RESTRICT a0It  = A0  + alignedStart;
-    const Scalar* EIGEN_RESTRICT a1It  = A1  + alignedStart;
-    const Scalar* EIGEN_RESTRICT rhsIt = rhs + alignedStart;
-          Scalar* EIGEN_RESTRICT resIt = res + alignedStart;
-    for (size_t i=alignedStart; i<alignedEnd; i+=PacketSize)
-    {
-      Packet A0i = ploadu<Packet>(a0It);  a0It  += PacketSize;
-      Packet A1i = ploadu<Packet>(a1It);  a1It  += PacketSize;
-      Packet Bi  = ploadu<Packet>(rhsIt); rhsIt += PacketSize; // FIXME should be aligned in most cases
-      Packet Xi  = pload <Packet>(resIt);
-
-      Xi    = pcj0.pmadd(A0i,ptmp0, pcj0.pmadd(A1i,ptmp1,Xi));
-      ptmp2 = pcj1.pmadd(A0i,  Bi, ptmp2);
-      ptmp3 = pcj1.pmadd(A1i,  Bi, ptmp3);
-      pstore(resIt,Xi); resIt += PacketSize;
-    }
-    for (size_t i=alignedEnd; i<endi; i++)
-    {
-      res[i] += cj0.pmul(A0[i], t0) + cj0.pmul(A1[i],t1);
-      t2 += cj1.pmul(A0[i], rhs[i]);
-      t3 += cj1.pmul(A1[i], rhs[i]);
-    }
-
-    res[j]   += alpha * (t2 + predux(ptmp2));
-    res[j+1] += alpha * (t3 + predux(ptmp3));
-  }
-  for (Index j=FirstTriangular ? 0 : bound;j<(FirstTriangular ? bound : size);j++)
-  {
-    const Scalar* EIGEN_RESTRICT A0 = lhs + j*lhsStride;
-
-    Scalar t1 = cjAlpha * rhs[j];
-    Scalar t2(0);
-    // TODO make sure this product is a real * complex and that the rhs is properly conjugated if needed
-    res[j] += cjd.pmul(internal::real(A0[j]), t1);
-    for (Index i=FirstTriangular ? 0 : j+1; i<(FirstTriangular ? j : size); i++)
-    {
-      res[i] += cj0.pmul(A0[i], t1);
-      t2 += cj1.pmul(A0[i], rhs[i]);
-    }
-    res[j] += alpha * t2;
-  }
-}
-
-} // end namespace internal 
-
-/***************************************************************************
-* Wrapper to product_selfadjoint_vector
-***************************************************************************/
-
-namespace internal {
-template<typename Lhs, int LhsMode, typename Rhs>
-struct traits<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,0,true> >
-  : traits<ProductBase<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,0,true>, Lhs, Rhs> >
-{};
-}
-
-template<typename Lhs, int LhsMode, typename Rhs>
-struct SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,0,true>
-  : public ProductBase<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,0,true>, Lhs, Rhs >
-{
-  EIGEN_PRODUCT_PUBLIC_INTERFACE(SelfadjointProductMatrix)
-
-  enum {
-    LhsUpLo = LhsMode&(Upper|Lower)
-  };
-
-  SelfadjointProductMatrix(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
-
-  template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
-  {
-    typedef typename Dest::Scalar ResScalar;
-    typedef typename Base::RhsScalar RhsScalar;
-    typedef Map<Matrix<ResScalar,Dynamic,1>, Aligned> MappedDest;
-    
-    eigen_assert(dest.rows()==m_lhs.rows() && dest.cols()==m_rhs.cols());
-
-    typename internal::add_const_on_value_type<ActualLhsType>::type lhs = LhsBlasTraits::extract(m_lhs);
-    typename internal::add_const_on_value_type<ActualRhsType>::type rhs = RhsBlasTraits::extract(m_rhs);
-
-    Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(m_lhs)
-                               * RhsBlasTraits::extractScalarFactor(m_rhs);
-
-    enum {
-      EvalToDest = (Dest::InnerStrideAtCompileTime==1),
-      UseRhs = (_ActualRhsType::InnerStrideAtCompileTime==1)
-    };
-    
-    internal::gemv_static_vector_if<ResScalar,Dest::SizeAtCompileTime,Dest::MaxSizeAtCompileTime,!EvalToDest> static_dest;
-    internal::gemv_static_vector_if<RhsScalar,_ActualRhsType::SizeAtCompileTime,_ActualRhsType::MaxSizeAtCompileTime,!UseRhs> static_rhs;
-
-    ei_declare_aligned_stack_constructed_variable(ResScalar,actualDestPtr,dest.size(),
-                                                  EvalToDest ? dest.data() : static_dest.data());
-                                                  
-    ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhsPtr,rhs.size(),
-        UseRhs ? const_cast<RhsScalar*>(rhs.data()) : static_rhs.data());
-    
-    if(!EvalToDest)
-    {
-      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
-      int size = dest.size();
-      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
-      #endif
-      MappedDest(actualDestPtr, dest.size()) = dest;
-    }
-      
-    if(!UseRhs)
-    {
-      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
-      int size = rhs.size();
-      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
-      #endif
-      Map<typename _ActualRhsType::PlainObject>(actualRhsPtr, rhs.size()) = rhs;
-    }
-      
-      
-    internal::selfadjoint_matrix_vector_product<Scalar, Index, (internal::traits<_ActualLhsType>::Flags&RowMajorBit) ? RowMajor : ColMajor, int(LhsUpLo), bool(LhsBlasTraits::NeedToConjugate), bool(RhsBlasTraits::NeedToConjugate)>::run
-      (
-        lhs.rows(),                             // size
-        &lhs.coeffRef(0,0),  lhs.outerStride(), // lhs info
-        actualRhsPtr, 1,                        // rhs info
-        actualDestPtr,                          // result info
-        actualAlpha                             // scale factor
-      );
-    
-    if(!EvalToDest)
-      dest = MappedDest(actualDestPtr, dest.size());
-  }
-};
-
-namespace internal {
-template<typename Lhs, typename Rhs, int RhsMode>
-struct traits<SelfadjointProductMatrix<Lhs,0,true,Rhs,RhsMode,false> >
-  : traits<ProductBase<SelfadjointProductMatrix<Lhs,0,true,Rhs,RhsMode,false>, Lhs, Rhs> >
-{};
-}
-
-template<typename Lhs, typename Rhs, int RhsMode>
-struct SelfadjointProductMatrix<Lhs,0,true,Rhs,RhsMode,false>
-  : public ProductBase<SelfadjointProductMatrix<Lhs,0,true,Rhs,RhsMode,false>, Lhs, Rhs >
-{
-  EIGEN_PRODUCT_PUBLIC_INTERFACE(SelfadjointProductMatrix)
-
-  enum {
-    RhsUpLo = RhsMode&(Upper|Lower)
-  };
-
-  SelfadjointProductMatrix(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
-
-  template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
-  {
-    // let's simply transpose the product
-    Transpose<Dest> destT(dest);
-    SelfadjointProductMatrix<Transpose<const Rhs>, int(RhsUpLo)==Upper ? Lower : Upper, false,
-                             Transpose<const Lhs>, 0, true>(m_rhs.transpose(), m_lhs.transpose()).scaleAndAddTo(destT, alpha);
-  }
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_SELFADJOINT_MATRIX_VECTOR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/SelfadjointRank2Update.h b/vendor/eigen-3.1.91/Eigen/src/Core/products/SelfadjointRank2Update.h
deleted file mode 100644
index 4b57f18..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/products/SelfadjointRank2Update.h
+++ /dev/null
@@ -1,93 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SELFADJOINTRANK2UPTADE_H
-#define EIGEN_SELFADJOINTRANK2UPTADE_H
-
-namespace Eigen { 
-
-namespace internal {
-
-/* Optimized selfadjoint matrix += alpha * uv' + conj(alpha)*vu'
- * It corresponds to the Level2 syr2 BLAS routine
- */
-
-template<typename Scalar, typename Index, typename UType, typename VType, int UpLo>
-struct selfadjoint_rank2_update_selector;
-
-template<typename Scalar, typename Index, typename UType, typename VType>
-struct selfadjoint_rank2_update_selector<Scalar,Index,UType,VType,Lower>
-{
-  static void run(Scalar* mat, Index stride, const UType& u, const VType& v, const Scalar& alpha)
-  {
-    const Index size = u.size();
-    for (Index i=0; i<size; ++i)
-    {
-      Map<Matrix<Scalar,Dynamic,1> >(mat+stride*i+i, size-i) +=
-                        (conj(alpha)  * conj(u.coeff(i))) * v.tail(size-i)
-                      + (alpha * conj(v.coeff(i))) * u.tail(size-i);
-    }
-  }
-};
-
-template<typename Scalar, typename Index, typename UType, typename VType>
-struct selfadjoint_rank2_update_selector<Scalar,Index,UType,VType,Upper>
-{
-  static void run(Scalar* mat, Index stride, const UType& u, const VType& v, const Scalar& alpha)
-  {
-    const Index size = u.size();
-    for (Index i=0; i<size; ++i)
-      Map<Matrix<Scalar,Dynamic,1> >(mat+stride*i, i+1) +=
-                        (conj(alpha)  * conj(u.coeff(i))) * v.head(i+1)
-                      + (alpha * conj(v.coeff(i))) * u.head(i+1);
-  }
-};
-
-template<bool Cond, typename T> struct conj_expr_if
-  : conditional<!Cond, const T&,
-      CwiseUnaryOp<scalar_conjugate_op<typename traits<T>::Scalar>,T> > {};
-
-} // end namespace internal
-
-template<typename MatrixType, unsigned int UpLo>
-template<typename DerivedU, typename DerivedV>
-SelfAdjointView<MatrixType,UpLo>& SelfAdjointView<MatrixType,UpLo>
-::rankUpdate(const MatrixBase<DerivedU>& u, const MatrixBase<DerivedV>& v, const Scalar& alpha)
-{
-  typedef internal::blas_traits<DerivedU> UBlasTraits;
-  typedef typename UBlasTraits::DirectLinearAccessType ActualUType;
-  typedef typename internal::remove_all<ActualUType>::type _ActualUType;
-  typename internal::add_const_on_value_type<ActualUType>::type actualU = UBlasTraits::extract(u.derived());
-
-  typedef internal::blas_traits<DerivedV> VBlasTraits;
-  typedef typename VBlasTraits::DirectLinearAccessType ActualVType;
-  typedef typename internal::remove_all<ActualVType>::type _ActualVType;
-  typename internal::add_const_on_value_type<ActualVType>::type actualV = VBlasTraits::extract(v.derived());
-
-  // If MatrixType is row major, then we use the routine for lower triangular in the upper triangular case and
-  // vice versa, and take the complex conjugate of all coefficients and vector entries.
-
-  enum { IsRowMajor = (internal::traits<MatrixType>::Flags&RowMajorBit) ? 1 : 0 };
-  Scalar actualAlpha = alpha * UBlasTraits::extractScalarFactor(u.derived())
-                             * internal::conj(VBlasTraits::extractScalarFactor(v.derived()));
-  if (IsRowMajor)
-    actualAlpha = internal::conj(actualAlpha);
-
-  internal::selfadjoint_rank2_update_selector<Scalar, Index,
-    typename internal::remove_all<typename internal::conj_expr_if<IsRowMajor ^ UBlasTraits::NeedToConjugate,_ActualUType>::type>::type,
-    typename internal::remove_all<typename internal::conj_expr_if<IsRowMajor ^ VBlasTraits::NeedToConjugate,_ActualVType>::type>::type,
-    (IsRowMajor ? int(UpLo==Upper ? Lower : Upper) : UpLo)>
-    ::run(_expression().const_cast_derived().data(),_expression().outerStride(),actualU,actualV,actualAlpha);
-
-  return *this;
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_SELFADJOINTRANK2UPTADE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h b/vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h
deleted file mode 100644
index ba41a1c..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- Copyright (c) 2011, Intel Corporation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
- * Neither the name of Intel Corporation nor the names of its contributors may
-   be used to endorse or promote products derived from this software without
-   specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ********************************************************************************
- *   Content : Eigen bindings to Intel(R) MKL
- *   Triangular matrix * matrix product functionality based on ?TRMM.
- ********************************************************************************
-*/
-
-#ifndef EIGEN_TRIANGULAR_MATRIX_MATRIX_MKL_H
-#define EIGEN_TRIANGULAR_MATRIX_MATRIX_MKL_H
-
-namespace Eigen { 
-
-namespace internal {
-
-
-template <typename Scalar, typename Index,
-          int Mode, bool LhsIsTriangular,
-          int LhsStorageOrder, bool ConjugateLhs,
-          int RhsStorageOrder, bool ConjugateRhs,
-          int ResStorageOrder>
-struct product_triangular_matrix_matrix_trmm :
-       product_triangular_matrix_matrix<Scalar,Index,Mode,
-          LhsIsTriangular,LhsStorageOrder,ConjugateLhs,
-          RhsStorageOrder, ConjugateRhs, ResStorageOrder, BuiltIn> {};
-
-
-// try to go to BLAS specialization
-#define EIGEN_MKL_TRMM_SPECIALIZE(Scalar, LhsIsTriangular) \
-template <typename Index, int Mode, \
-          int LhsStorageOrder, bool ConjugateLhs, \
-          int RhsStorageOrder, bool ConjugateRhs> \
-struct product_triangular_matrix_matrix<Scalar,Index, Mode, LhsIsTriangular, \
-           LhsStorageOrder,ConjugateLhs, RhsStorageOrder,ConjugateRhs,ColMajor,Specialized> { \
-  static inline void run(Index _rows, Index _cols, Index _depth, const Scalar* _lhs, Index lhsStride,\
-    const Scalar* _rhs, Index rhsStride, Scalar* res, Index resStride, Scalar alpha, level3_blocking<Scalar,Scalar>& blocking) { \
-      product_triangular_matrix_matrix_trmm<Scalar,Index,Mode, \
-        LhsIsTriangular,LhsStorageOrder,ConjugateLhs, \
-        RhsStorageOrder, ConjugateRhs, ColMajor>::run( \
-        _rows, _cols, _depth, _lhs, lhsStride, _rhs, rhsStride, res, resStride, alpha, blocking); \
-  } \
-};
-
-EIGEN_MKL_TRMM_SPECIALIZE(double, true)
-EIGEN_MKL_TRMM_SPECIALIZE(double, false)
-EIGEN_MKL_TRMM_SPECIALIZE(dcomplex, true)
-EIGEN_MKL_TRMM_SPECIALIZE(dcomplex, false)
-EIGEN_MKL_TRMM_SPECIALIZE(float, true)
-EIGEN_MKL_TRMM_SPECIALIZE(float, false)
-EIGEN_MKL_TRMM_SPECIALIZE(scomplex, true)
-EIGEN_MKL_TRMM_SPECIALIZE(scomplex, false)
-
-// implements col-major += alpha * op(triangular) * op(general)
-#define EIGEN_MKL_TRMM_L(EIGTYPE, MKLTYPE, EIGPREFIX, MKLPREFIX) \
-template <typename Index, int Mode, \
-          int LhsStorageOrder, bool ConjugateLhs, \
-          int RhsStorageOrder, bool ConjugateRhs> \
-struct product_triangular_matrix_matrix_trmm<EIGTYPE,Index,Mode,true, \
-         LhsStorageOrder,ConjugateLhs,RhsStorageOrder,ConjugateRhs,ColMajor> \
-{ \
-  enum { \
-    IsLower = (Mode&Lower) == Lower, \
-    SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1, \
-    IsUnitDiag  = (Mode&UnitDiag) ? 1 : 0, \
-    IsZeroDiag  = (Mode&ZeroDiag) ? 1 : 0, \
-    LowUp = IsLower ? Lower : Upper, \
-    conjA = ((LhsStorageOrder==ColMajor) && ConjugateLhs) ? 1 : 0 \
-  }; \
-\
-  static void run( \
-    Index _rows, Index _cols, Index _depth, \
-    const EIGTYPE* _lhs, Index lhsStride, \
-    const EIGTYPE* _rhs, Index rhsStride, \
-    EIGTYPE* res,        Index resStride, \
-    EIGTYPE alpha, level3_blocking<EIGTYPE,EIGTYPE>& blocking) \
-  { \
-   Index diagSize  = (std::min)(_rows,_depth); \
-   Index rows      = IsLower ? _rows : diagSize; \
-   Index depth     = IsLower ? diagSize : _depth; \
-   Index cols      = _cols; \
-\
-   typedef Matrix<EIGTYPE, Dynamic, Dynamic, LhsStorageOrder> MatrixLhs; \
-   typedef Matrix<EIGTYPE, Dynamic, Dynamic, RhsStorageOrder> MatrixRhs; \
-\
-/* Non-square case - doesn't fit to MKL ?TRMM. Fall to default triangular product or call MKL ?GEMM*/ \
-   if (rows != depth) { \
-\
-     int nthr = mkl_domain_get_max_threads(MKL_BLAS); \
-\
-     if (((nthr==1) && (((std::max)(rows,depth)-diagSize)/(double)diagSize < 0.5))) { \
-     /* Most likely no benefit to call TRMM or GEMM from MKL*/ \
-       product_triangular_matrix_matrix<EIGTYPE,Index,Mode,true, \
-       LhsStorageOrder,ConjugateLhs, RhsStorageOrder, ConjugateRhs, ColMajor, BuiltIn>::run( \
-           _rows, _cols, _depth, _lhs, lhsStride, _rhs, rhsStride, res, resStride, alpha, blocking); \
-     /*std::cout << "TRMM_L: A is not square! Go to Eigen TRMM implementation!\n";*/ \
-     } else { \
-     /* Make sense to call GEMM */ \
-       Map<const MatrixLhs, 0, OuterStride<> > lhsMap(_lhs,rows,depth,OuterStride<>(lhsStride)); \
-       MatrixLhs aa_tmp=lhsMap.template triangularView<Mode>(); \
-       MKL_INT aStride = aa_tmp.outerStride(); \
-       gemm_blocking_space<ColMajor,EIGTYPE,EIGTYPE,Dynamic,Dynamic,Dynamic> gemm_blocking(_rows,_cols,_depth); \
-       general_matrix_matrix_product<Index,EIGTYPE,LhsStorageOrder,ConjugateLhs,EIGTYPE,RhsStorageOrder,ConjugateRhs,ColMajor>::run( \
-       rows, cols, depth, aa_tmp.data(), aStride, _rhs, rhsStride, res, resStride, alpha, gemm_blocking, 0); \
-\
-     /*std::cout << "TRMM_L: A is not square! Go to MKL GEMM implementation! " << nthr<<" \n";*/ \
-     } \
-     return; \
-   } \
-   char side = 'L', transa, uplo, diag = 'N'; \
-   EIGTYPE *b; \
-   const EIGTYPE *a; \
-   MKL_INT m, n, lda, ldb; \
-   MKLTYPE alpha_; \
-\
-/* Set alpha_*/ \
-   assign_scalar_eig2mkl<MKLTYPE, EIGTYPE>(alpha_, alpha); \
-\
-/* Set m, n */ \
-   m = (MKL_INT)diagSize; \
-   n = (MKL_INT)cols; \
-\
-/* Set trans */ \
-   transa = (LhsStorageOrder==RowMajor) ? ((ConjugateLhs) ? 'C' : 'T') : 'N'; \
-\
-/* Set b, ldb */ \
-   Map<const MatrixRhs, 0, OuterStride<> > rhs(_rhs,depth,cols,OuterStride<>(rhsStride)); \
-   MatrixX##EIGPREFIX b_tmp; \
-\
-   if (ConjugateRhs) b_tmp = rhs.conjugate(); else b_tmp = rhs; \
-   b = b_tmp.data(); \
-   ldb = b_tmp.outerStride(); \
-\
-/* Set uplo */ \
-   uplo = IsLower ? 'L' : 'U'; \
-   if (LhsStorageOrder==RowMajor) uplo = (uplo == 'L') ? 'U' : 'L'; \
-/* Set a, lda */ \
-   Map<const MatrixLhs, 0, OuterStride<> > lhs(_lhs,rows,depth,OuterStride<>(lhsStride)); \
-   MatrixLhs a_tmp; \
-\
-   if ((conjA!=0) || (SetDiag==0)) { \
-     if (conjA) a_tmp = lhs.conjugate(); else a_tmp = lhs; \
-     if (IsZeroDiag) \
-       a_tmp.diagonal().setZero(); \
-     else if (IsUnitDiag) \
-       a_tmp.diagonal().setOnes();\
-     a = a_tmp.data(); \
-     lda = a_tmp.outerStride(); \
-   } else { \
-     a = _lhs; \
-     lda = lhsStride; \
-   } \
-   /*std::cout << "TRMM_L: A is square! Go to MKL TRMM implementation! \n";*/ \
-/* call ?trmm*/ \
-   MKLPREFIX##trmm(&side, &uplo, &transa, &diag, &m, &n, &alpha_, (const MKLTYPE*)a, &lda, (MKLTYPE*)b, &ldb); \
-\
-/* Add op(a_triangular)*b into res*/ \
-   Map<MatrixX##EIGPREFIX, 0, OuterStride<> > res_tmp(res,rows,cols,OuterStride<>(resStride)); \
-   res_tmp=res_tmp+b_tmp; \
-  } \
-};
-
-EIGEN_MKL_TRMM_L(double, double, d, d)
-EIGEN_MKL_TRMM_L(dcomplex, MKL_Complex16, cd, z)
-EIGEN_MKL_TRMM_L(float, float, f, s)
-EIGEN_MKL_TRMM_L(scomplex, MKL_Complex8, cf, c)
-
-// implements col-major += alpha * op(general) * op(triangular)
-#define EIGEN_MKL_TRMM_R(EIGTYPE, MKLTYPE, EIGPREFIX, MKLPREFIX) \
-template <typename Index, int Mode, \
-          int LhsStorageOrder, bool ConjugateLhs, \
-          int RhsStorageOrder, bool ConjugateRhs> \
-struct product_triangular_matrix_matrix_trmm<EIGTYPE,Index,Mode,false, \
-         LhsStorageOrder,ConjugateLhs,RhsStorageOrder,ConjugateRhs,ColMajor> \
-{ \
-  enum { \
-    IsLower = (Mode&Lower) == Lower, \
-    SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1, \
-    IsUnitDiag  = (Mode&UnitDiag) ? 1 : 0, \
-    IsZeroDiag  = (Mode&ZeroDiag) ? 1 : 0, \
-    LowUp = IsLower ? Lower : Upper, \
-    conjA = ((RhsStorageOrder==ColMajor) && ConjugateRhs) ? 1 : 0 \
-  }; \
-\
-  static void run( \
-    Index _rows, Index _cols, Index _depth, \
-    const EIGTYPE* _lhs, Index lhsStride, \
-    const EIGTYPE* _rhs, Index rhsStride, \
-    EIGTYPE* res,        Index resStride, \
-    EIGTYPE alpha, level3_blocking<EIGTYPE,EIGTYPE>& blocking) \
-  { \
-   Index diagSize  = (std::min)(_cols,_depth); \
-   Index rows      = _rows; \
-   Index depth     = IsLower ? _depth : diagSize; \
-   Index cols      = IsLower ? diagSize : _cols; \
-\
-   typedef Matrix<EIGTYPE, Dynamic, Dynamic, LhsStorageOrder> MatrixLhs; \
-   typedef Matrix<EIGTYPE, Dynamic, Dynamic, RhsStorageOrder> MatrixRhs; \
-\
-/* Non-square case - doesn't fit to MKL ?TRMM. Fall to default triangular product or call MKL ?GEMM*/ \
-   if (cols != depth) { \
-\
-     int nthr = mkl_domain_get_max_threads(MKL_BLAS); \
-\
-     if ((nthr==1) && (((std::max)(cols,depth)-diagSize)/(double)diagSize < 0.5)) { \
-     /* Most likely no benefit to call TRMM or GEMM from MKL*/ \
-       product_triangular_matrix_matrix<EIGTYPE,Index,Mode,false, \
-       LhsStorageOrder,ConjugateLhs, RhsStorageOrder, ConjugateRhs, ColMajor, BuiltIn>::run( \
-           _rows, _cols, _depth, _lhs, lhsStride, _rhs, rhsStride, res, resStride, alpha, blocking); \
-       /*std::cout << "TRMM_R: A is not square! Go to Eigen TRMM implementation!\n";*/ \
-     } else { \
-     /* Make sense to call GEMM */ \
-       Map<const MatrixRhs, 0, OuterStride<> > rhsMap(_rhs,depth,cols, OuterStride<>(rhsStride)); \
-       MatrixRhs aa_tmp=rhsMap.template triangularView<Mode>(); \
-       MKL_INT aStride = aa_tmp.outerStride(); \
-       gemm_blocking_space<ColMajor,EIGTYPE,EIGTYPE,Dynamic,Dynamic,Dynamic> gemm_blocking(_rows,_cols,_depth); \
-       general_matrix_matrix_product<Index,EIGTYPE,LhsStorageOrder,ConjugateLhs,EIGTYPE,RhsStorageOrder,ConjugateRhs,ColMajor>::run( \
-       rows, cols, depth, _lhs, lhsStride, aa_tmp.data(), aStride, res, resStride, alpha, gemm_blocking, 0); \
-\
-     /*std::cout << "TRMM_R: A is not square! Go to MKL GEMM implementation! " << nthr<<" \n";*/ \
-     } \
-     return; \
-   } \
-   char side = 'R', transa, uplo, diag = 'N'; \
-   EIGTYPE *b; \
-   const EIGTYPE *a; \
-   MKL_INT m, n, lda, ldb; \
-   MKLTYPE alpha_; \
-\
-/* Set alpha_*/ \
-   assign_scalar_eig2mkl<MKLTYPE, EIGTYPE>(alpha_, alpha); \
-\
-/* Set m, n */ \
-   m = (MKL_INT)rows; \
-   n = (MKL_INT)diagSize; \
-\
-/* Set trans */ \
-   transa = (RhsStorageOrder==RowMajor) ? ((ConjugateRhs) ? 'C' : 'T') : 'N'; \
-\
-/* Set b, ldb */ \
-   Map<const MatrixLhs, 0, OuterStride<> > lhs(_lhs,rows,depth,OuterStride<>(lhsStride)); \
-   MatrixX##EIGPREFIX b_tmp; \
-\
-   if (ConjugateLhs) b_tmp = lhs.conjugate(); else b_tmp = lhs; \
-   b = b_tmp.data(); \
-   ldb = b_tmp.outerStride(); \
-\
-/* Set uplo */ \
-   uplo = IsLower ? 'L' : 'U'; \
-   if (RhsStorageOrder==RowMajor) uplo = (uplo == 'L') ? 'U' : 'L'; \
-/* Set a, lda */ \
-   Map<const MatrixRhs, 0, OuterStride<> > rhs(_rhs,depth,cols, OuterStride<>(rhsStride)); \
-   MatrixRhs a_tmp; \
-\
-   if ((conjA!=0) || (SetDiag==0)) { \
-     if (conjA) a_tmp = rhs.conjugate(); else a_tmp = rhs; \
-     if (IsZeroDiag) \
-       a_tmp.diagonal().setZero(); \
-     else if (IsUnitDiag) \
-       a_tmp.diagonal().setOnes();\
-     a = a_tmp.data(); \
-     lda = a_tmp.outerStride(); \
-   } else { \
-     a = _rhs; \
-     lda = rhsStride; \
-   } \
-   /*std::cout << "TRMM_R: A is square! Go to MKL TRMM implementation! \n";*/ \
-/* call ?trmm*/ \
-   MKLPREFIX##trmm(&side, &uplo, &transa, &diag, &m, &n, &alpha_, (const MKLTYPE*)a, &lda, (MKLTYPE*)b, &ldb); \
-\
-/* Add op(a_triangular)*b into res*/ \
-   Map<MatrixX##EIGPREFIX, 0, OuterStride<> > res_tmp(res,rows,cols,OuterStride<>(resStride)); \
-   res_tmp=res_tmp+b_tmp; \
-  } \
-};
-
-EIGEN_MKL_TRMM_R(double, double, d, d)
-EIGEN_MKL_TRMM_R(dcomplex, MKL_Complex16, cd, z)
-EIGEN_MKL_TRMM_R(float, float, f, s)
-EIGEN_MKL_TRMM_R(scomplex, MKL_Complex8, cf, c)
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_TRIANGULAR_MATRIX_MATRIX_MKL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularMatrixVector.h b/vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularMatrixVector.h
deleted file mode 100644
index c8b7d28..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularMatrixVector.h
+++ /dev/null
@@ -1,348 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_TRIANGULARMATRIXVECTOR_H
-#define EIGEN_TRIANGULARMATRIXVECTOR_H
-
-namespace Eigen { 
-
-namespace internal {
-
-template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs, int StorageOrder, int Version=Specialized>
-struct triangular_matrix_vector_product;
-
-template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs, int Version>
-struct triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,ColMajor,Version>
-{
-  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
-  enum {
-    IsLower = ((Mode&Lower)==Lower),
-    HasUnitDiag = (Mode & UnitDiag)==UnitDiag,
-    HasZeroDiag = (Mode & ZeroDiag)==ZeroDiag
-  };
-  static EIGEN_DONT_INLINE  void run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
-                                     const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const ResScalar& alpha);
-};
-
-template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs, int Version>
-EIGEN_DONT_INLINE void triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,ColMajor,Version>
-  ::run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
-        const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const ResScalar& alpha)
-  {
-    static const Index PanelWidth = EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH;
-    Index size = (std::min)(_rows,_cols);
-    Index rows = IsLower ? _rows : (std::min)(_rows,_cols);
-    Index cols = IsLower ? (std::min)(_rows,_cols) : _cols;
-
-    typedef Map<const Matrix<LhsScalar,Dynamic,Dynamic,ColMajor>, 0, OuterStride<> > LhsMap;
-    const LhsMap lhs(_lhs,rows,cols,OuterStride<>(lhsStride));
-    typename conj_expr_if<ConjLhs,LhsMap>::type cjLhs(lhs);
-    
-    typedef Map<const Matrix<RhsScalar,Dynamic,1>, 0, InnerStride<> > RhsMap;
-    const RhsMap rhs(_rhs,cols,InnerStride<>(rhsIncr));
-    typename conj_expr_if<ConjRhs,RhsMap>::type cjRhs(rhs);
-
-    typedef Map<Matrix<ResScalar,Dynamic,1> > ResMap;
-    ResMap res(_res,rows);
-
-    for (Index pi=0; pi<size; pi+=PanelWidth)
-    {
-      Index actualPanelWidth = (std::min)(PanelWidth, size-pi);
-      for (Index k=0; k<actualPanelWidth; ++k)
-      {
-        Index i = pi + k;
-        Index s = IsLower ? ((HasUnitDiag||HasZeroDiag) ? i+1 : i ) : pi;
-        Index r = IsLower ? actualPanelWidth-k : k+1;
-        if ((!(HasUnitDiag||HasZeroDiag)) || (--r)>0)
-          res.segment(s,r) += (alpha * cjRhs.coeff(i)) * cjLhs.col(i).segment(s,r);
-        if (HasUnitDiag)
-          res.coeffRef(i) += alpha * cjRhs.coeff(i);
-      }
-      Index r = IsLower ? rows - pi - actualPanelWidth : pi;
-      if (r>0)
-      {
-        Index s = IsLower ? pi+actualPanelWidth : 0;
-        general_matrix_vector_product<Index,LhsScalar,ColMajor,ConjLhs,RhsScalar,ConjRhs,BuiltIn>::run(
-            r, actualPanelWidth,
-            &lhs.coeffRef(s,pi), lhsStride,
-            &rhs.coeffRef(pi), rhsIncr,
-            &res.coeffRef(s), resIncr, alpha);
-      }
-    }
-    if((!IsLower) && cols>size)
-    {
-      general_matrix_vector_product<Index,LhsScalar,ColMajor,ConjLhs,RhsScalar,ConjRhs>::run(
-          rows, cols-size,
-          &lhs.coeffRef(0,size), lhsStride,
-          &rhs.coeffRef(size), rhsIncr,
-          _res, resIncr, alpha);
-    }
-  }
-
-template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs,int Version>
-struct triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,RowMajor,Version>
-{
-  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
-  enum {
-    IsLower = ((Mode&Lower)==Lower),
-    HasUnitDiag = (Mode & UnitDiag)==UnitDiag,
-    HasZeroDiag = (Mode & ZeroDiag)==ZeroDiag
-  };
-  static EIGEN_DONT_INLINE void run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
-                                    const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const ResScalar& alpha);
-};
-
-template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs,int Version>
-EIGEN_DONT_INLINE void triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,RowMajor,Version>
-  ::run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
-        const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const ResScalar& alpha)
-  {
-    static const Index PanelWidth = EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH;
-    Index diagSize = (std::min)(_rows,_cols);
-    Index rows = IsLower ? _rows : diagSize;
-    Index cols = IsLower ? diagSize : _cols;
-
-    typedef Map<const Matrix<LhsScalar,Dynamic,Dynamic,RowMajor>, 0, OuterStride<> > LhsMap;
-    const LhsMap lhs(_lhs,rows,cols,OuterStride<>(lhsStride));
-    typename conj_expr_if<ConjLhs,LhsMap>::type cjLhs(lhs);
-
-    typedef Map<const Matrix<RhsScalar,Dynamic,1> > RhsMap;
-    const RhsMap rhs(_rhs,cols);
-    typename conj_expr_if<ConjRhs,RhsMap>::type cjRhs(rhs);
-
-    typedef Map<Matrix<ResScalar,Dynamic,1>, 0, InnerStride<> > ResMap;
-    ResMap res(_res,rows,InnerStride<>(resIncr));
-    
-    for (Index pi=0; pi<diagSize; pi+=PanelWidth)
-    {
-      Index actualPanelWidth = (std::min)(PanelWidth, diagSize-pi);
-      for (Index k=0; k<actualPanelWidth; ++k)
-      {
-        Index i = pi + k;
-        Index s = IsLower ? pi  : ((HasUnitDiag||HasZeroDiag) ? i+1 : i);
-        Index r = IsLower ? k+1 : actualPanelWidth-k;
-        if ((!(HasUnitDiag||HasZeroDiag)) || (--r)>0)
-          res.coeffRef(i) += alpha * (cjLhs.row(i).segment(s,r).cwiseProduct(cjRhs.segment(s,r).transpose())).sum();
-        if (HasUnitDiag)
-          res.coeffRef(i) += alpha * cjRhs.coeff(i);
-      }
-      Index r = IsLower ? pi : cols - pi - actualPanelWidth;
-      if (r>0)
-      {
-        Index s = IsLower ? 0 : pi + actualPanelWidth;
-        general_matrix_vector_product<Index,LhsScalar,RowMajor,ConjLhs,RhsScalar,ConjRhs,BuiltIn>::run(
-            actualPanelWidth, r,
-            &lhs.coeffRef(pi,s), lhsStride,
-            &rhs.coeffRef(s), rhsIncr,
-            &res.coeffRef(pi), resIncr, alpha);
-      }
-    }
-    if(IsLower && rows>diagSize)
-    {
-      general_matrix_vector_product<Index,LhsScalar,RowMajor,ConjLhs,RhsScalar,ConjRhs>::run(
-            rows-diagSize, cols,
-            &lhs.coeffRef(diagSize,0), lhsStride,
-            &rhs.coeffRef(0), rhsIncr,
-            &res.coeffRef(diagSize), resIncr, alpha);
-    }
-  }
-
-/***************************************************************************
-* Wrapper to product_triangular_vector
-***************************************************************************/
-
-template<int Mode, bool LhsIsTriangular, typename Lhs, typename Rhs>
-struct traits<TriangularProduct<Mode,LhsIsTriangular,Lhs,false,Rhs,true> >
- : traits<ProductBase<TriangularProduct<Mode,LhsIsTriangular,Lhs,false,Rhs,true>, Lhs, Rhs> >
-{};
-
-template<int Mode, bool LhsIsTriangular, typename Lhs, typename Rhs>
-struct traits<TriangularProduct<Mode,LhsIsTriangular,Lhs,true,Rhs,false> >
- : traits<ProductBase<TriangularProduct<Mode,LhsIsTriangular,Lhs,true,Rhs,false>, Lhs, Rhs> >
-{};
-
-
-template<int StorageOrder>
-struct trmv_selector;
-
-} // end namespace internal
-
-template<int Mode, typename Lhs, typename Rhs>
-struct TriangularProduct<Mode,true,Lhs,false,Rhs,true>
-  : public ProductBase<TriangularProduct<Mode,true,Lhs,false,Rhs,true>, Lhs, Rhs >
-{
-  EIGEN_PRODUCT_PUBLIC_INTERFACE(TriangularProduct)
-
-  TriangularProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
-
-  template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
-  {
-    eigen_assert(dst.rows()==m_lhs.rows() && dst.cols()==m_rhs.cols());
-  
-    internal::trmv_selector<(int(internal::traits<Lhs>::Flags)&RowMajorBit) ? RowMajor : ColMajor>::run(*this, dst, alpha);
-  }
-};
-
-template<int Mode, typename Lhs, typename Rhs>
-struct TriangularProduct<Mode,false,Lhs,true,Rhs,false>
-  : public ProductBase<TriangularProduct<Mode,false,Lhs,true,Rhs,false>, Lhs, Rhs >
-{
-  EIGEN_PRODUCT_PUBLIC_INTERFACE(TriangularProduct)
-
-  TriangularProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
-
-  template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
-  {
-    eigen_assert(dst.rows()==m_lhs.rows() && dst.cols()==m_rhs.cols());
-
-    typedef TriangularProduct<(Mode & (UnitDiag|ZeroDiag)) | ((Mode & Lower) ? Upper : Lower),true,Transpose<const Rhs>,false,Transpose<const Lhs>,true> TriangularProductTranspose;
-    Transpose<Dest> dstT(dst);
-    internal::trmv_selector<(int(internal::traits<Rhs>::Flags)&RowMajorBit) ? ColMajor : RowMajor>::run(
-      TriangularProductTranspose(m_rhs.transpose(),m_lhs.transpose()), dstT, alpha);
-  }
-};
-
-namespace internal {
-
-// TODO: find a way to factorize this piece of code with gemv_selector since the logic is exactly the same.
-  
-template<> struct trmv_selector<ColMajor>
-{
-  template<int Mode, typename Lhs, typename Rhs, typename Dest>
-  static void run(const TriangularProduct<Mode,true,Lhs,false,Rhs,true>& prod, Dest& dest, const typename TriangularProduct<Mode,true,Lhs,false,Rhs,true>::Scalar& alpha)
-  {
-    typedef TriangularProduct<Mode,true,Lhs,false,Rhs,true> ProductType;
-    typedef typename ProductType::Index Index;
-    typedef typename ProductType::LhsScalar   LhsScalar;
-    typedef typename ProductType::RhsScalar   RhsScalar;
-    typedef typename ProductType::Scalar      ResScalar;
-    typedef typename ProductType::RealScalar  RealScalar;
-    typedef typename ProductType::ActualLhsType ActualLhsType;
-    typedef typename ProductType::ActualRhsType ActualRhsType;
-    typedef typename ProductType::LhsBlasTraits LhsBlasTraits;
-    typedef typename ProductType::RhsBlasTraits RhsBlasTraits;
-    typedef Map<Matrix<ResScalar,Dynamic,1>, Aligned> MappedDest;
-
-    typename internal::add_const_on_value_type<ActualLhsType>::type actualLhs = LhsBlasTraits::extract(prod.lhs());
-    typename internal::add_const_on_value_type<ActualRhsType>::type actualRhs = RhsBlasTraits::extract(prod.rhs());
-
-    ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs())
-                                  * RhsBlasTraits::extractScalarFactor(prod.rhs());
-
-    enum {
-      // FIXME find a way to allow an inner stride on the result if packet_traits<Scalar>::size==1
-      // on, the other hand it is good for the cache to pack the vector anyways...
-      EvalToDestAtCompileTime = Dest::InnerStrideAtCompileTime==1,
-      ComplexByReal = (NumTraits<LhsScalar>::IsComplex) && (!NumTraits<RhsScalar>::IsComplex),
-      MightCannotUseDest = (Dest::InnerStrideAtCompileTime!=1) || ComplexByReal
-    };
-
-    gemv_static_vector_if<ResScalar,Dest::SizeAtCompileTime,Dest::MaxSizeAtCompileTime,MightCannotUseDest> static_dest;
-
-    bool alphaIsCompatible = (!ComplexByReal) || (imag(actualAlpha)==RealScalar(0));
-    bool evalToDest = EvalToDestAtCompileTime && alphaIsCompatible;
-    
-    RhsScalar compatibleAlpha = get_factor<ResScalar,RhsScalar>::run(actualAlpha);
-
-    ei_declare_aligned_stack_constructed_variable(ResScalar,actualDestPtr,dest.size(),
-                                                  evalToDest ? dest.data() : static_dest.data());
-
-    if(!evalToDest)
-    {
-      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
-      Index size = dest.size();
-      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
-      #endif
-      if(!alphaIsCompatible)
-      {
-        MappedDest(actualDestPtr, dest.size()).setZero();
-        compatibleAlpha = RhsScalar(1);
-      }
-      else
-        MappedDest(actualDestPtr, dest.size()) = dest;
-    }
-    
-    internal::triangular_matrix_vector_product
-      <Index,Mode,
-       LhsScalar, LhsBlasTraits::NeedToConjugate,
-       RhsScalar, RhsBlasTraits::NeedToConjugate,
-       ColMajor>
-      ::run(actualLhs.rows(),actualLhs.cols(),
-            actualLhs.data(),actualLhs.outerStride(),
-            actualRhs.data(),actualRhs.innerStride(),
-            actualDestPtr,1,compatibleAlpha);
-
-    if (!evalToDest)
-    {
-      if(!alphaIsCompatible)
-        dest += actualAlpha * MappedDest(actualDestPtr, dest.size());
-      else
-        dest = MappedDest(actualDestPtr, dest.size());
-    }
-  }
-};
-
-template<> struct trmv_selector<RowMajor>
-{
-  template<int Mode, typename Lhs, typename Rhs, typename Dest>
-  static void run(const TriangularProduct<Mode,true,Lhs,false,Rhs,true>& prod, Dest& dest, const typename TriangularProduct<Mode,true,Lhs,false,Rhs,true>::Scalar& alpha)
-  {
-    typedef TriangularProduct<Mode,true,Lhs,false,Rhs,true> ProductType;
-    typedef typename ProductType::LhsScalar LhsScalar;
-    typedef typename ProductType::RhsScalar RhsScalar;
-    typedef typename ProductType::Scalar    ResScalar;
-    typedef typename ProductType::Index Index;
-    typedef typename ProductType::ActualLhsType ActualLhsType;
-    typedef typename ProductType::ActualRhsType ActualRhsType;
-    typedef typename ProductType::_ActualRhsType _ActualRhsType;
-    typedef typename ProductType::LhsBlasTraits LhsBlasTraits;
-    typedef typename ProductType::RhsBlasTraits RhsBlasTraits;
-
-    typename add_const<ActualLhsType>::type actualLhs = LhsBlasTraits::extract(prod.lhs());
-    typename add_const<ActualRhsType>::type actualRhs = RhsBlasTraits::extract(prod.rhs());
-
-    ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs())
-                                  * RhsBlasTraits::extractScalarFactor(prod.rhs());
-
-    enum {
-      DirectlyUseRhs = _ActualRhsType::InnerStrideAtCompileTime==1
-    };
-
-    gemv_static_vector_if<RhsScalar,_ActualRhsType::SizeAtCompileTime,_ActualRhsType::MaxSizeAtCompileTime,!DirectlyUseRhs> static_rhs;
-
-    ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhsPtr,actualRhs.size(),
-        DirectlyUseRhs ? const_cast<RhsScalar*>(actualRhs.data()) : static_rhs.data());
-
-    if(!DirectlyUseRhs)
-    {
-      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
-      int size = actualRhs.size();
-      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
-      #endif
-      Map<typename _ActualRhsType::PlainObject>(actualRhsPtr, actualRhs.size()) = actualRhs;
-    }
-    
-    internal::triangular_matrix_vector_product
-      <Index,Mode,
-       LhsScalar, LhsBlasTraits::NeedToConjugate,
-       RhsScalar, RhsBlasTraits::NeedToConjugate,
-       RowMajor>
-      ::run(actualLhs.rows(),actualLhs.cols(),
-            actualLhs.data(),actualLhs.outerStride(),
-            actualRhsPtr,1,
-            dest.data(),dest.innerStride(),
-            actualAlpha);
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_TRIANGULARMATRIXVECTOR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularSolverMatrix.h b/vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularSolverMatrix.h
deleted file mode 100644
index f103eae..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularSolverMatrix.h
+++ /dev/null
@@ -1,329 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_TRIANGULAR_SOLVER_MATRIX_H
-#define EIGEN_TRIANGULAR_SOLVER_MATRIX_H
-
-namespace Eigen { 
-
-namespace internal {
-
-// if the rhs is row major, let's transpose the product
-template <typename Scalar, typename Index, int Side, int Mode, bool Conjugate, int TriStorageOrder>
-struct triangular_solve_matrix<Scalar,Index,Side,Mode,Conjugate,TriStorageOrder,RowMajor>
-{
-  static void run(
-    Index size, Index cols,
-    const Scalar*  tri, Index triStride,
-    Scalar* _other, Index otherStride,
-    level3_blocking<Scalar,Scalar>& blocking)
-  {
-    triangular_solve_matrix<
-      Scalar, Index, Side==OnTheLeft?OnTheRight:OnTheLeft,
-      (Mode&UnitDiag) | ((Mode&Upper) ? Lower : Upper),
-      NumTraits<Scalar>::IsComplex && Conjugate,
-      TriStorageOrder==RowMajor ? ColMajor : RowMajor, ColMajor>
-      ::run(size, cols, tri, triStride, _other, otherStride, blocking);
-  }
-};
-
-/* Optimized triangular solver with multiple right hand side and the triangular matrix on the left
- */
-template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
-struct triangular_solve_matrix<Scalar,Index,OnTheLeft,Mode,Conjugate,TriStorageOrder,ColMajor>
-{
-  static EIGEN_DONT_INLINE void run(
-    Index size, Index otherSize,
-    const Scalar* _tri, Index triStride,
-    Scalar* _other, Index otherStride,
-    level3_blocking<Scalar,Scalar>& blocking);
-};
-template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
-EIGEN_DONT_INLINE void triangular_solve_matrix<Scalar,Index,OnTheLeft,Mode,Conjugate,TriStorageOrder,ColMajor>::run(
-    Index size, Index otherSize,
-    const Scalar* _tri, Index triStride,
-    Scalar* _other, Index otherStride,
-    level3_blocking<Scalar,Scalar>& blocking)
-  {
-    Index cols = otherSize;
-    const_blas_data_mapper<Scalar, Index, TriStorageOrder> tri(_tri,triStride);
-    blas_data_mapper<Scalar, Index, ColMajor> other(_other,otherStride);
-
-    typedef gebp_traits<Scalar,Scalar> Traits;
-    enum {
-      SmallPanelWidth   = EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
-      IsLower = (Mode&Lower) == Lower
-    };
-
-    Index kc = blocking.kc();                   // cache block size along the K direction
-    Index mc = (std::min)(size,blocking.mc());  // cache block size along the M direction
-
-    std::size_t sizeA = kc*mc;
-    std::size_t sizeB = kc*cols;
-    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
-
-    ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
-    ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
-    ei_declare_aligned_stack_constructed_variable(Scalar, blockW, sizeW, blocking.blockW());
-
-    conj_if<Conjugate> conj;
-    gebp_kernel<Scalar, Scalar, Index, Traits::mr, Traits::nr, Conjugate, false> gebp_kernel;
-    gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, TriStorageOrder> pack_lhs;
-    gemm_pack_rhs<Scalar, Index, Traits::nr, ColMajor, false, true> pack_rhs;
-
-    // the goal here is to subdivise the Rhs panels such that we keep some cache
-    // coherence when accessing the rhs elements
-    std::ptrdiff_t l1, l2;
-    manage_caching_sizes(GetAction, &l1, &l2);
-    Index subcols = cols>0 ? l2/(4 * sizeof(Scalar) * otherStride) : 0;
-    subcols = std::max<Index>((subcols/Traits::nr)*Traits::nr, Traits::nr);
-
-    for(Index k2=IsLower ? 0 : size;
-        IsLower ? k2<size : k2>0;
-        IsLower ? k2+=kc : k2-=kc)
-    {
-      const Index actual_kc = (std::min)(IsLower ? size-k2 : k2, kc);
-
-      // We have selected and packed a big horizontal panel R1 of rhs. Let B be the packed copy of this panel,
-      // and R2 the remaining part of rhs. The corresponding vertical panel of lhs is split into
-      // A11 (the triangular part) and A21 the remaining rectangular part.
-      // Then the high level algorithm is:
-      //  - B = R1                    => general block copy (done during the next step)
-      //  - R1 = A11^-1 B             => tricky part
-      //  - update B from the new R1  => actually this has to be performed continuously during the above step
-      //  - R2 -= A21 * B             => GEPP
-
-      // The tricky part: compute R1 = A11^-1 B while updating B from R1
-      // The idea is to split A11 into multiple small vertical panels.
-      // Each panel can be split into a small triangular part T1k which is processed without optimization,
-      // and the remaining small part T2k which is processed using gebp with appropriate block strides
-      for(Index j2=0; j2<cols; j2+=subcols)
-      {
-        Index actual_cols = (std::min)(cols-j2,subcols);
-        // for each small vertical panels [T1k^T, T2k^T]^T of lhs
-        for (Index k1=0; k1<actual_kc; k1+=SmallPanelWidth)
-        {
-          Index actualPanelWidth = std::min<Index>(actual_kc-k1, SmallPanelWidth);
-          // tr solve
-          for (Index k=0; k<actualPanelWidth; ++k)
-          {
-            // TODO write a small kernel handling this (can be shared with trsv)
-            Index i  = IsLower ? k2+k1+k : k2-k1-k-1;
-            Index s  = IsLower ? k2+k1 : i+1;
-            Index rs = actualPanelWidth - k - 1; // remaining size
-
-            Scalar a = (Mode & UnitDiag) ? Scalar(1) : Scalar(1)/conj(tri(i,i));
-            for (Index j=j2; j<j2+actual_cols; ++j)
-            {
-              if (TriStorageOrder==RowMajor)
-              {
-                Scalar b(0);
-                const Scalar* l = &tri(i,s);
-                Scalar* r = &other(s,j);
-                for (Index i3=0; i3<k; ++i3)
-                  b += conj(l[i3]) * r[i3];
-
-                other(i,j) = (other(i,j) - b)*a;
-              }
-              else
-              {
-                Index s = IsLower ? i+1 : i-rs;
-                Scalar b = (other(i,j) *= a);
-                Scalar* r = &other(s,j);
-                const Scalar* l = &tri(s,i);
-                for (Index i3=0;i3<rs;++i3)
-                  r[i3] -= b * conj(l[i3]);
-              }
-            }
-          }
-
-          Index lengthTarget = actual_kc-k1-actualPanelWidth;
-          Index startBlock   = IsLower ? k2+k1 : k2-k1-actualPanelWidth;
-          Index blockBOffset = IsLower ? k1 : lengthTarget;
-
-          // update the respective rows of B from other
-          pack_rhs(blockB+actual_kc*j2, &other(startBlock,j2), otherStride, actualPanelWidth, actual_cols, actual_kc, blockBOffset);
-
-          // GEBP
-          if (lengthTarget>0)
-          {
-            Index startTarget  = IsLower ? k2+k1+actualPanelWidth : k2-actual_kc;
-
-            pack_lhs(blockA, &tri(startTarget,startBlock), triStride, actualPanelWidth, lengthTarget);
-
-            gebp_kernel(&other(startTarget,j2), otherStride, blockA, blockB+actual_kc*j2, lengthTarget, actualPanelWidth, actual_cols, Scalar(-1),
-                        actualPanelWidth, actual_kc, 0, blockBOffset, blockW);
-          }
-        }
-      }
-      
-      // R2 -= A21 * B => GEPP
-      {
-        Index start = IsLower ? k2+kc : 0;
-        Index end   = IsLower ? size : k2-kc;
-        for(Index i2=start; i2<end; i2+=mc)
-        {
-          const Index actual_mc = (std::min)(mc,end-i2);
-          if (actual_mc>0)
-          {
-            pack_lhs(blockA, &tri(i2, IsLower ? k2 : k2-kc), triStride, actual_kc, actual_mc);
-
-            gebp_kernel(_other+i2, otherStride, blockA, blockB, actual_mc, actual_kc, cols, Scalar(-1), -1, -1, 0, 0, blockW);
-          }
-        }
-      }
-    }
-  }
-
-/* Optimized triangular solver with multiple left hand sides and the trinagular matrix on the right
- */
-template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
-struct triangular_solve_matrix<Scalar,Index,OnTheRight,Mode,Conjugate,TriStorageOrder,ColMajor>
-{
-  static EIGEN_DONT_INLINE void run(
-    Index size, Index otherSize,
-    const Scalar* _tri, Index triStride,
-    Scalar* _other, Index otherStride,
-    level3_blocking<Scalar,Scalar>& blocking);
-};
-template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
-EIGEN_DONT_INLINE void triangular_solve_matrix<Scalar,Index,OnTheRight,Mode,Conjugate,TriStorageOrder,ColMajor>::run(
-    Index size, Index otherSize,
-    const Scalar* _tri, Index triStride,
-    Scalar* _other, Index otherStride,
-    level3_blocking<Scalar,Scalar>& blocking)
-  {
-    Index rows = otherSize;
-    const_blas_data_mapper<Scalar, Index, TriStorageOrder> rhs(_tri,triStride);
-    blas_data_mapper<Scalar, Index, ColMajor> lhs(_other,otherStride);
-
-    typedef gebp_traits<Scalar,Scalar> Traits;
-    enum {
-      RhsStorageOrder   = TriStorageOrder,
-      SmallPanelWidth   = EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
-      IsLower = (Mode&Lower) == Lower
-    };
-
-    Index kc = blocking.kc();                   // cache block size along the K direction
-    Index mc = (std::min)(rows,blocking.mc());  // cache block size along the M direction
-
-    std::size_t sizeA = kc*mc;
-    std::size_t sizeB = kc*size;
-    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
-
-    ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
-    ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
-    ei_declare_aligned_stack_constructed_variable(Scalar, blockW, sizeW, blocking.blockW());
-
-    conj_if<Conjugate> conj;
-    gebp_kernel<Scalar,Scalar, Index, Traits::mr, Traits::nr, false, Conjugate> gebp_kernel;
-    gemm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder> pack_rhs;
-    gemm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder,false,true> pack_rhs_panel;
-    gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, ColMajor, false, true> pack_lhs_panel;
-
-    for(Index k2=IsLower ? size : 0;
-        IsLower ? k2>0 : k2<size;
-        IsLower ? k2-=kc : k2+=kc)
-    {
-      const Index actual_kc = (std::min)(IsLower ? k2 : size-k2, kc);
-      Index actual_k2 = IsLower ? k2-actual_kc : k2 ;
-
-      Index startPanel = IsLower ? 0 : k2+actual_kc;
-      Index rs = IsLower ? actual_k2 : size - actual_k2 - actual_kc;
-      Scalar* geb = blockB+actual_kc*actual_kc;
-
-      if (rs>0) pack_rhs(geb, &rhs(actual_k2,startPanel), triStride, actual_kc, rs);
-
-      // triangular packing (we only pack the panels off the diagonal,
-      // neglecting the blocks overlapping the diagonal
-      {
-        for (Index j2=0; j2<actual_kc; j2+=SmallPanelWidth)
-        {
-          Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
-          Index actual_j2 = actual_k2 + j2;
-          Index panelOffset = IsLower ? j2+actualPanelWidth : 0;
-          Index panelLength = IsLower ? actual_kc-j2-actualPanelWidth : j2;
-
-          if (panelLength>0)
-          pack_rhs_panel(blockB+j2*actual_kc,
-                         &rhs(actual_k2+panelOffset, actual_j2), triStride,
-                         panelLength, actualPanelWidth,
-                         actual_kc, panelOffset);
-        }
-      }
-
-      for(Index i2=0; i2<rows; i2+=mc)
-      {
-        const Index actual_mc = (std::min)(mc,rows-i2);
-
-        // triangular solver kernel
-        {
-          // for each small block of the diagonal (=> vertical panels of rhs)
-          for (Index j2 = IsLower
-                      ? (actual_kc - ((actual_kc%SmallPanelWidth) ? Index(actual_kc%SmallPanelWidth)
-                                                                  : Index(SmallPanelWidth)))
-                      : 0;
-               IsLower ? j2>=0 : j2<actual_kc;
-               IsLower ? j2-=SmallPanelWidth : j2+=SmallPanelWidth)
-          {
-            Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
-            Index absolute_j2 = actual_k2 + j2;
-            Index panelOffset = IsLower ? j2+actualPanelWidth : 0;
-            Index panelLength = IsLower ? actual_kc - j2 - actualPanelWidth : j2;
-
-            // GEBP
-            if(panelLength>0)
-            {
-              gebp_kernel(&lhs(i2,absolute_j2), otherStride,
-                          blockA, blockB+j2*actual_kc,
-                          actual_mc, panelLength, actualPanelWidth,
-                          Scalar(-1),
-                          actual_kc, actual_kc, // strides
-                          panelOffset, panelOffset, // offsets
-                          blockW);  // workspace
-            }
-
-            // unblocked triangular solve
-            for (Index k=0; k<actualPanelWidth; ++k)
-            {
-              Index j = IsLower ? absolute_j2+actualPanelWidth-k-1 : absolute_j2+k;
-
-              Scalar* r = &lhs(i2,j);
-              for (Index k3=0; k3<k; ++k3)
-              {
-                Scalar b = conj(rhs(IsLower ? j+1+k3 : absolute_j2+k3,j));
-                Scalar* a = &lhs(i2,IsLower ? j+1+k3 : absolute_j2+k3);
-                for (Index i=0; i<actual_mc; ++i)
-                  r[i] -= a[i] * b;
-              }
-              Scalar b = (Mode & UnitDiag) ? Scalar(1) : Scalar(1)/conj(rhs(j,j));
-              for (Index i=0; i<actual_mc; ++i)
-                r[i] *= b;
-            }
-
-            // pack the just computed part of lhs to A
-            pack_lhs_panel(blockA, _other+absolute_j2*otherStride+i2, otherStride,
-                           actualPanelWidth, actual_mc,
-                           actual_kc, j2);
-          }
-        }
-
-        if (rs>0)
-          gebp_kernel(_other+i2+startPanel*otherStride, otherStride, blockA, geb,
-                      actual_mc, actual_kc, rs, Scalar(-1),
-                      -1, -1, 0, 0, blockW);
-      }
-    }
-  }
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_TRIANGULAR_SOLVER_MATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/util/BlasUtil.h b/vendor/eigen-3.1.91/Eigen/src/Core/util/BlasUtil.h
deleted file mode 100644
index 9149665..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/util/BlasUtil.h
+++ /dev/null
@@ -1,264 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_BLASUTIL_H
-#define EIGEN_BLASUTIL_H
-
-// This file contains many lightweight helper classes used to
-// implement and control fast level 2 and level 3 BLAS-like routines.
-
-namespace Eigen {
-
-namespace internal {
-
-// forward declarations
-template<typename LhsScalar, typename RhsScalar, typename Index, int mr, int nr, bool ConjugateLhs=false, bool ConjugateRhs=false>
-struct gebp_kernel;
-
-template<typename Scalar, typename Index, int nr, int StorageOrder, bool Conjugate = false, bool PanelMode=false>
-struct gemm_pack_rhs;
-
-template<typename Scalar, typename Index, int Pack1, int Pack2, int StorageOrder, bool Conjugate = false, bool PanelMode = false>
-struct gemm_pack_lhs;
-
-template<
-  typename Index,
-  typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
-  typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs,
-  int ResStorageOrder>
-struct general_matrix_matrix_product;
-
-template<typename Index, typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs, int Version=Specialized>
-struct general_matrix_vector_product;
-
-
-template<bool Conjugate> struct conj_if;
-
-template<> struct conj_if<true> {
-  template<typename T>
-  inline T operator()(const T& x) { return conj(x); }
-  template<typename T>
-  inline T pconj(const T& x) { return internal::pconj(x); }
-};
-
-template<> struct conj_if<false> {
-  template<typename T>
-  inline const T& operator()(const T& x) { return x; }
-  template<typename T>
-  inline const T& pconj(const T& x) { return x; }
-};
-
-template<typename Scalar> struct conj_helper<Scalar,Scalar,false,false>
-{
-  EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const { return internal::pmadd(x,y,c); }
-  EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const { return internal::pmul(x,y); }
-};
-
-template<typename RealScalar> struct conj_helper<std::complex<RealScalar>, std::complex<RealScalar>, false,true>
-{
-  typedef std::complex<RealScalar> Scalar;
-  EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const
-  { return c + pmul(x,y); }
-
-  EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const
-  { return Scalar(real(x)*real(y) + imag(x)*imag(y), imag(x)*real(y) - real(x)*imag(y)); }
-};
-
-template<typename RealScalar> struct conj_helper<std::complex<RealScalar>, std::complex<RealScalar>, true,false>
-{
-  typedef std::complex<RealScalar> Scalar;
-  EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const
-  { return c + pmul(x,y); }
-
-  EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const
-  { return Scalar(real(x)*real(y) + imag(x)*imag(y), real(x)*imag(y) - imag(x)*real(y)); }
-};
-
-template<typename RealScalar> struct conj_helper<std::complex<RealScalar>, std::complex<RealScalar>, true,true>
-{
-  typedef std::complex<RealScalar> Scalar;
-  EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const
-  { return c + pmul(x,y); }
-
-  EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const
-  { return Scalar(real(x)*real(y) - imag(x)*imag(y), - real(x)*imag(y) - imag(x)*real(y)); }
-};
-
-template<typename RealScalar,bool Conj> struct conj_helper<std::complex<RealScalar>, RealScalar, Conj,false>
-{
-  typedef std::complex<RealScalar> Scalar;
-  EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const RealScalar& y, const Scalar& c) const
-  { return padd(c, pmul(x,y)); }
-  EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const RealScalar& y) const
-  { return conj_if<Conj>()(x)*y; }
-};
-
-template<typename RealScalar,bool Conj> struct conj_helper<RealScalar, std::complex<RealScalar>, false,Conj>
-{
-  typedef std::complex<RealScalar> Scalar;
-  EIGEN_STRONG_INLINE Scalar pmadd(const RealScalar& x, const Scalar& y, const Scalar& c) const
-  { return padd(c, pmul(x,y)); }
-  EIGEN_STRONG_INLINE Scalar pmul(const RealScalar& x, const Scalar& y) const
-  { return x*conj_if<Conj>()(y); }
-};
-
-template<typename From,typename To> struct get_factor {
-  static EIGEN_STRONG_INLINE To run(const From& x) { return x; }
-};
-
-template<typename Scalar> struct get_factor<Scalar,typename NumTraits<Scalar>::Real> {
-  static EIGEN_STRONG_INLINE typename NumTraits<Scalar>::Real run(const Scalar& x) { return real(x); }
-};
-
-// Lightweight helper class to access matrix coefficients.
-// Yes, this is somehow redundant with Map<>, but this version is much much lighter,
-// and so I hope better compilation performance (time and code quality).
-template<typename Scalar, typename Index, int StorageOrder>
-class blas_data_mapper
-{
-  public:
-    blas_data_mapper(Scalar* data, Index stride) : m_data(data), m_stride(stride) {}
-    EIGEN_STRONG_INLINE Scalar& operator()(Index i, Index j)
-    { return m_data[StorageOrder==RowMajor ? j + i*m_stride : i + j*m_stride]; }
-  protected:
-    Scalar* EIGEN_RESTRICT m_data;
-    Index m_stride;
-};
-
-// lightweight helper class to access matrix coefficients (const version)
-template<typename Scalar, typename Index, int StorageOrder>
-class const_blas_data_mapper
-{
-  public:
-    const_blas_data_mapper(const Scalar* data, Index stride) : m_data(data), m_stride(stride) {}
-    EIGEN_STRONG_INLINE const Scalar& operator()(Index i, Index j) const
-    { return m_data[StorageOrder==RowMajor ? j + i*m_stride : i + j*m_stride]; }
-  protected:
-    const Scalar* EIGEN_RESTRICT m_data;
-    Index m_stride;
-};
-
-
-/* Helper class to analyze the factors of a Product expression.
- * In particular it allows to pop out operator-, scalar multiples,
- * and conjugate */
-template<typename XprType> struct blas_traits
-{
-  typedef typename traits<XprType>::Scalar Scalar;
-  typedef const XprType& ExtractType;
-  typedef XprType _ExtractType;
-  enum {
-    IsComplex = NumTraits<Scalar>::IsComplex,
-    IsTransposed = false,
-    NeedToConjugate = false,
-    HasUsableDirectAccess = (    (int(XprType::Flags)&DirectAccessBit)
-                              && (   bool(XprType::IsVectorAtCompileTime)
-                                  || int(inner_stride_at_compile_time<XprType>::ret) == 1)
-                             ) ?  1 : 0
-  };
-  typedef typename conditional<bool(HasUsableDirectAccess),
-    ExtractType,
-    typename _ExtractType::PlainObject
-    >::type DirectLinearAccessType;
-  static inline ExtractType extract(const XprType& x) { return x; }
-  static inline const Scalar extractScalarFactor(const XprType&) { return Scalar(1); }
-};
-
-// pop conjugate
-template<typename Scalar, typename NestedXpr>
-struct blas_traits<CwiseUnaryOp<scalar_conjugate_op<Scalar>, NestedXpr> >
- : blas_traits<NestedXpr>
-{
-  typedef blas_traits<NestedXpr> Base;
-  typedef CwiseUnaryOp<scalar_conjugate_op<Scalar>, NestedXpr> XprType;
-  typedef typename Base::ExtractType ExtractType;
-
-  enum {
-    IsComplex = NumTraits<Scalar>::IsComplex,
-    NeedToConjugate = Base::NeedToConjugate ? 0 : IsComplex
-  };
-  static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); }
-  static inline Scalar extractScalarFactor(const XprType& x) { return conj(Base::extractScalarFactor(x.nestedExpression())); }
-};
-
-// pop scalar multiple
-template<typename Scalar, typename NestedXpr>
-struct blas_traits<CwiseUnaryOp<scalar_multiple_op<Scalar>, NestedXpr> >
- : blas_traits<NestedXpr>
-{
-  typedef blas_traits<NestedXpr> Base;
-  typedef CwiseUnaryOp<scalar_multiple_op<Scalar>, NestedXpr> XprType;
-  typedef typename Base::ExtractType ExtractType;
-  static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); }
-  static inline Scalar extractScalarFactor(const XprType& x)
-  { return x.functor().m_other * Base::extractScalarFactor(x.nestedExpression()); }
-};
-
-// pop opposite
-template<typename Scalar, typename NestedXpr>
-struct blas_traits<CwiseUnaryOp<scalar_opposite_op<Scalar>, NestedXpr> >
- : blas_traits<NestedXpr>
-{
-  typedef blas_traits<NestedXpr> Base;
-  typedef CwiseUnaryOp<scalar_opposite_op<Scalar>, NestedXpr> XprType;
-  typedef typename Base::ExtractType ExtractType;
-  static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); }
-  static inline Scalar extractScalarFactor(const XprType& x)
-  { return - Base::extractScalarFactor(x.nestedExpression()); }
-};
-
-// pop/push transpose
-template<typename NestedXpr>
-struct blas_traits<Transpose<NestedXpr> >
- : blas_traits<NestedXpr>
-{
-  typedef typename NestedXpr::Scalar Scalar;
-  typedef blas_traits<NestedXpr> Base;
-  typedef Transpose<NestedXpr> XprType;
-  typedef Transpose<const typename Base::_ExtractType>  ExtractType; // const to get rid of a compile error; anyway blas traits are only used on the RHS
-  typedef Transpose<const typename Base::_ExtractType> _ExtractType;
-  typedef typename conditional<bool(Base::HasUsableDirectAccess),
-    ExtractType,
-    typename ExtractType::PlainObject
-    >::type DirectLinearAccessType;
-  enum {
-    IsTransposed = Base::IsTransposed ? 0 : 1
-  };
-  static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); }
-  static inline Scalar extractScalarFactor(const XprType& x) { return Base::extractScalarFactor(x.nestedExpression()); }
-};
-
-template<typename T>
-struct blas_traits<const T>
-     : blas_traits<T>
-{};
-
-template<typename T, bool HasUsableDirectAccess=blas_traits<T>::HasUsableDirectAccess>
-struct extract_data_selector {
-  static const typename T::Scalar* run(const T& m)
-  {
-    return blas_traits<T>::extract(m).data();
-  }
-};
-
-template<typename T>
-struct extract_data_selector<T,false> {
-  static typename T::Scalar* run(const T&) { return 0; }
-};
-
-template<typename T> const typename T::Scalar* extract_data(const T& m)
-{
-  return extract_data_selector<T>::run(m);
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_BLASUTIL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/util/Constants.h b/vendor/eigen-3.1.91/Eigen/src/Core/util/Constants.h
deleted file mode 100644
index 14b9624..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/util/Constants.h
+++ /dev/null
@@ -1,438 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_CONSTANTS_H
-#define EIGEN_CONSTANTS_H
-
-namespace Eigen {
-
-/** This value means that a positive quantity (e.g., a size) is not known at compile-time, and that instead the value is
-  * stored in some runtime variable.
-  *
-  * Changing the value of Dynamic breaks the ABI, as Dynamic is often used as a template parameter for Matrix.
-  */
-const int Dynamic = -1;
-
-/** This value means that a signed quantity (e.g., a signed index) is not known at compile-time, and that instead its value
-  * has to be specified at runtime.
-  */
-const int DynamicIndex = 0xffffff;
-
-/** This value means +Infinity; it is currently used only as the p parameter to MatrixBase::lpNorm<int>().
-  * The value Infinity there means the L-infinity norm.
-  */
-const int Infinity = -1;
-
-/** \defgroup flags Flags
-  * \ingroup Core_Module
-  *
-  * These are the possible bits which can be OR'ed to constitute the flags of a matrix or
-  * expression.
-  *
-  * It is important to note that these flags are a purely compile-time notion. They are a compile-time property of
-  * an expression type, implemented as enum's. They are not stored in memory at runtime, and they do not incur any
-  * runtime overhead.
-  *
-  * \sa MatrixBase::Flags
-  */
-
-/** \ingroup flags
-  *
-  * for a matrix, this means that the storage order is row-major.
-  * If this bit is not set, the storage order is column-major.
-  * For an expression, this determines the storage order of
-  * the matrix created by evaluation of that expression. 
-  * \sa \ref TopicStorageOrders */
-const unsigned int RowMajorBit = 0x1;
-
-/** \ingroup flags
-  *
-  * means the expression should be evaluated by the calling expression */
-const unsigned int EvalBeforeNestingBit = 0x2;
-
-/** \ingroup flags
-  *
-  * means the expression should be evaluated before any assignment */
-const unsigned int EvalBeforeAssigningBit = 0x4;
-
-/** \ingroup flags
-  *
-  * Short version: means the expression might be vectorized
-  *
-  * Long version: means that the coefficients can be handled by packets
-  * and start at a memory location whose alignment meets the requirements
-  * of the present CPU architecture for optimized packet access. In the fixed-size
-  * case, there is the additional condition that it be possible to access all the
-  * coefficients by packets (this implies the requirement that the size be a multiple of 16 bytes,
-  * and that any nontrivial strides don't break the alignment). In the dynamic-size case,
-  * there is no such condition on the total size and strides, so it might not be possible to access
-  * all coeffs by packets.
-  *
-  * \note This bit can be set regardless of whether vectorization is actually enabled.
-  *       To check for actual vectorizability, see \a ActualPacketAccessBit.
-  */
-const unsigned int PacketAccessBit = 0x8;
-
-#ifdef EIGEN_VECTORIZE
-/** \ingroup flags
-  *
-  * If vectorization is enabled (EIGEN_VECTORIZE is defined) this constant
-  * is set to the value \a PacketAccessBit.
-  *
-  * If vectorization is not enabled (EIGEN_VECTORIZE is not defined) this constant
-  * is set to the value 0.
-  */
-const unsigned int ActualPacketAccessBit = PacketAccessBit;
-#else
-const unsigned int ActualPacketAccessBit = 0x0;
-#endif
-
-/** \ingroup flags
-  *
-  * Short version: means the expression can be seen as 1D vector.
-  *
-  * Long version: means that one can access the coefficients
-  * of this expression by coeff(int), and coeffRef(int) in the case of a lvalue expression. These
-  * index-based access methods are guaranteed
-  * to not have to do any runtime computation of a (row, col)-pair from the index, so that it
-  * is guaranteed that whenever it is available, index-based access is at least as fast as
-  * (row,col)-based access. Expressions for which that isn't possible don't have the LinearAccessBit.
-  *
-  * If both PacketAccessBit and LinearAccessBit are set, then the
-  * packets of this expression can be accessed by packet(int), and writePacket(int) in the case of a
-  * lvalue expression.
-  *
-  * Typically, all vector expressions have the LinearAccessBit, but there is one exception:
-  * Product expressions don't have it, because it would be troublesome for vectorization, even when the
-  * Product is a vector expression. Thus, vector Product expressions allow index-based coefficient access but
-  * not index-based packet access, so they don't have the LinearAccessBit.
-  */
-const unsigned int LinearAccessBit = 0x10;
-
-/** \ingroup flags
-  *
-  * Means the expression has a coeffRef() method, i.e. is writable as its individual coefficients are directly addressable.
-  * This rules out read-only expressions.
-  *
-  * Note that DirectAccessBit and LvalueBit are mutually orthogonal, as there are examples of expression having one but note
-  * the other:
-  *   \li writable expressions that don't have a very simple memory layout as a strided array, have LvalueBit but not DirectAccessBit
-  *   \li Map-to-const expressions, for example Map<const Matrix>, have DirectAccessBit but not LvalueBit
-  *
-  * Expressions having LvalueBit also have their coeff() method returning a const reference instead of returning a new value.
-  */
-const unsigned int LvalueBit = 0x20;
-
-/** \ingroup flags
-  *
-  * Means that the underlying array of coefficients can be directly accessed as a plain strided array. The memory layout
-  * of the array of coefficients must be exactly the natural one suggested by rows(), cols(),
-  * outerStride(), innerStride(), and the RowMajorBit. This rules out expressions such as Diagonal, whose coefficients,
-  * though referencable, do not have such a regular memory layout.
-  *
-  * See the comment on LvalueBit for an explanation of how LvalueBit and DirectAccessBit are mutually orthogonal.
-  */
-const unsigned int DirectAccessBit = 0x40;
-
-/** \ingroup flags
-  *
-  * means the first coefficient packet is guaranteed to be aligned */
-const unsigned int AlignedBit = 0x80;
-
-const unsigned int NestByRefBit = 0x100;
-
-// list of flags that are inherited by default
-const unsigned int HereditaryBits = RowMajorBit
-                                  | EvalBeforeNestingBit
-                                  | EvalBeforeAssigningBit;
-
-/** \defgroup enums Enumerations
-  * \ingroup Core_Module
-  *
-  * Various enumerations used in %Eigen. Many of these are used as template parameters.
-  */
-
-/** \ingroup enums
-  * Enum containing possible values for the \p Mode parameter of 
-  * MatrixBase::selfadjointView() and MatrixBase::triangularView(). */
-enum {
-  /** View matrix as a lower triangular matrix. */
-  Lower=0x1,                      
-  /** View matrix as an upper triangular matrix. */
-  Upper=0x2,                      
-  /** %Matrix has ones on the diagonal; to be used in combination with #Lower or #Upper. */
-  UnitDiag=0x4, 
-  /** %Matrix has zeros on the diagonal; to be used in combination with #Lower or #Upper. */
-  ZeroDiag=0x8,
-  /** View matrix as a lower triangular matrix with ones on the diagonal. */
-  UnitLower=UnitDiag|Lower, 
-  /** View matrix as an upper triangular matrix with ones on the diagonal. */
-  UnitUpper=UnitDiag|Upper,
-  /** View matrix as a lower triangular matrix with zeros on the diagonal. */
-  StrictlyLower=ZeroDiag|Lower, 
-  /** View matrix as an upper triangular matrix with zeros on the diagonal. */
-  StrictlyUpper=ZeroDiag|Upper,
-  /** Used in BandMatrix and SelfAdjointView to indicate that the matrix is self-adjoint. */
-  SelfAdjoint=0x10,
-  /** Used to support symmetric, non-selfadjoint, complex matrices. */
-  Symmetric=0x20
-};
-
-/** \ingroup enums
-  * Enum for indicating whether an object is aligned or not. */
-enum { 
-  /** Object is not correctly aligned for vectorization. */
-  Unaligned=0, 
-  /** Object is aligned for vectorization. */
-  Aligned=1 
-};
-
-/** \ingroup enums
- * Enum used by DenseBase::corner() in Eigen2 compatibility mode. */
-// FIXME after the corner() API change, this was not needed anymore, except by AlignedBox
-// TODO: find out what to do with that. Adapt the AlignedBox API ?
-enum CornerType { TopLeft, TopRight, BottomLeft, BottomRight };
-
-/** \ingroup enums
-  * Enum containing possible values for the \p Direction parameter of
-  * Reverse, PartialReduxExpr and VectorwiseOp. */
-enum DirectionType { 
-  /** For Reverse, all columns are reversed; 
-    * for PartialReduxExpr and VectorwiseOp, act on columns. */
-  Vertical, 
-  /** For Reverse, all rows are reversed; 
-    * for PartialReduxExpr and VectorwiseOp, act on rows. */
-  Horizontal, 
-  /** For Reverse, both rows and columns are reversed; 
-    * not used for PartialReduxExpr and VectorwiseOp. */
-  BothDirections 
-};
-
-/** \internal \ingroup enums
-  * Enum to specify how to traverse the entries of a matrix. */
-enum {
-  /** \internal Default traversal, no vectorization, no index-based access */
-  DefaultTraversal,
-  /** \internal No vectorization, use index-based access to have only one for loop instead of 2 nested loops */
-  LinearTraversal,
-  /** \internal Equivalent to a slice vectorization for fixed-size matrices having good alignment
-    * and good size */
-  InnerVectorizedTraversal,
-  /** \internal Vectorization path using a single loop plus scalar loops for the
-    * unaligned boundaries */
-  LinearVectorizedTraversal,
-  /** \internal Generic vectorization path using one vectorized loop per row/column with some
-    * scalar loops to handle the unaligned boundaries */
-  SliceVectorizedTraversal,
-  /** \internal Special case to properly handle incompatible scalar types or other defecting cases*/
-  InvalidTraversal,
-  /** \internal Evaluate all entries at once */
-  AllAtOnceTraversal
-};
-
-/** \internal \ingroup enums
-  * Enum to specify whether to unroll loops when traversing over the entries of a matrix. */
-enum {
-  /** \internal Do not unroll loops. */
-  NoUnrolling,
-  /** \internal Unroll only the inner loop, but not the outer loop. */
-  InnerUnrolling,
-  /** \internal Unroll both the inner and the outer loop. If there is only one loop, 
-    * because linear traversal is used, then unroll that loop. */
-  CompleteUnrolling
-};
-
-/** \internal \ingroup enums
-  * Enum to specify whether to use the default (built-in) implementation or the specialization. */
-enum {
-  Specialized,
-  BuiltIn
-};
-
-/** \ingroup enums
-  * Enum containing possible values for the \p _Options template parameter of
-  * Matrix, Array and BandMatrix. */
-enum {
-  /** Storage order is column major (see \ref TopicStorageOrders). */
-  ColMajor = 0,
-  /** Storage order is row major (see \ref TopicStorageOrders). */
-  RowMajor = 0x1,  // it is only a coincidence that this is equal to RowMajorBit -- don't rely on that
-  /** Align the matrix itself if it is vectorizable fixed-size */
-  AutoAlign = 0,
-  /** Don't require alignment for the matrix itself (the array of coefficients, if dynamically allocated, may still be requested to be aligned) */ // FIXME --- clarify the situation
-  DontAlign = 0x2
-};
-
-/** \ingroup enums
-  * Enum for specifying whether to apply or solve on the left or right. */
-enum {
-  /** Apply transformation on the left. */
-  OnTheLeft = 1,  
-  /** Apply transformation on the right. */
-  OnTheRight = 2  
-};
-
-/* the following used to be written as:
- *
- *   struct NoChange_t {};
- *   namespace {
- *     EIGEN_UNUSED NoChange_t NoChange;
- *   }
- *
- * on the ground that it feels dangerous to disambiguate overloaded functions on enum/integer types.  
- * However, this leads to "variable declared but never referenced" warnings on Intel Composer XE,
- * and we do not know how to get rid of them (bug 450).
- */
-
-enum NoChange_t   { NoChange };
-enum Sequential_t { Sequential };
-enum Default_t    { Default };
-
-/** \internal \ingroup enums
-  * Used in AmbiVector. */
-enum {
-  IsDense         = 0,
-  IsSparse
-};
-
-/** \ingroup enums
-  * Used as template parameter in DenseCoeffBase and MapBase to indicate 
-  * which accessors should be provided. */
-enum AccessorLevels {
-  /** Read-only access via a member function. */
-  ReadOnlyAccessors, 
-  /** Read/write access via member functions. */
-  WriteAccessors, 
-  /** Direct read-only access to the coefficients. */
-  DirectAccessors, 
-  /** Direct read/write access to the coefficients. */
-  DirectWriteAccessors
-};
-
-/** \ingroup enums
-  * Enum with options to give to various decompositions. */
-enum DecompositionOptions {
-  /** \internal Not used (meant for LDLT?). */
-  Pivoting            = 0x01, 
-  /** \internal Not used (meant for LDLT?). */
-  NoPivoting          = 0x02, 
-  /** Used in JacobiSVD to indicate that the square matrix U is to be computed. */
-  ComputeFullU        = 0x04,
-  /** Used in JacobiSVD to indicate that the thin matrix U is to be computed. */
-  ComputeThinU        = 0x08,
-  /** Used in JacobiSVD to indicate that the square matrix V is to be computed. */
-  ComputeFullV        = 0x10,
-  /** Used in JacobiSVD to indicate that the thin matrix V is to be computed. */
-  ComputeThinV        = 0x20,
-  /** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
-    * that only the eigenvalues are to be computed and not the eigenvectors. */
-  EigenvaluesOnly     = 0x40,
-  /** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
-    * that both the eigenvalues and the eigenvectors are to be computed. */
-  ComputeEigenvectors = 0x80,
-  /** \internal */
-  EigVecMask = EigenvaluesOnly | ComputeEigenvectors,
-  /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
-    * solve the generalized eigenproblem \f$ Ax = \lambda B x \f$. */
-  Ax_lBx              = 0x100,
-  /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
-    * solve the generalized eigenproblem \f$ ABx = \lambda x \f$. */
-  ABx_lx              = 0x200,
-  /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
-    * solve the generalized eigenproblem \f$ BAx = \lambda x \f$. */
-  BAx_lx              = 0x400,
-  /** \internal */
-  GenEigMask = Ax_lBx | ABx_lx | BAx_lx
-};
-
-/** \ingroup enums
-  * Possible values for the \p QRPreconditioner template parameter of JacobiSVD. */
-enum QRPreconditioners {
-  /** Do not specify what is to be done if the SVD of a non-square matrix is asked for. */
-  NoQRPreconditioner,
-  /** Use a QR decomposition without pivoting as the first step. */
-  HouseholderQRPreconditioner,
-  /** Use a QR decomposition with column pivoting as the first step. */
-  ColPivHouseholderQRPreconditioner,
-  /** Use a QR decomposition with full pivoting as the first step. */
-  FullPivHouseholderQRPreconditioner
-};
-
-#ifdef Success
-#error The preprocessor symbol 'Success' is defined, possibly by the X11 header file X.h
-#endif
-
-/** \ingroup enums
-  * Enum for reporting the status of a computation. */
-enum ComputationInfo {
-  /** Computation was successful. */
-  Success = 0,        
-  /** The provided data did not satisfy the prerequisites. */
-  NumericalIssue = 1, 
-  /** Iterative procedure did not converge. */
-  NoConvergence = 2,
-  /** The inputs are invalid, or the algorithm has been improperly called.
-    * When assertions are enabled, such errors trigger an assert. */
-  InvalidInput = 3
-};
-
-/** \ingroup enums
-  * Enum used to specify how a particular transformation is stored in a matrix.
-  * \sa Transform, Hyperplane::transform(). */
-enum TransformTraits {
-  /** Transformation is an isometry. */
-  Isometry      = 0x1,
-  /** Transformation is an affine transformation stored as a (Dim+1)^2 matrix whose last row is 
-    * assumed to be [0 ... 0 1]. */
-  Affine        = 0x2,
-  /** Transformation is an affine transformation stored as a (Dim) x (Dim+1) matrix. */
-  AffineCompact = 0x10 | Affine,
-  /** Transformation is a general projective transformation stored as a (Dim+1)^2 matrix. */
-  Projective    = 0x20
-};
-
-/** \internal \ingroup enums
-  * Enum used to choose between implementation depending on the computer architecture. */
-namespace Architecture
-{
-  enum Type {
-    Generic = 0x0,
-    SSE = 0x1,
-    AltiVec = 0x2,
-#if defined EIGEN_VECTORIZE_SSE
-    Target = SSE
-#elif defined EIGEN_VECTORIZE_ALTIVEC
-    Target = AltiVec
-#else
-    Target = Generic
-#endif
-  };
-}
-
-/** \internal \ingroup enums
-  * Enum used as template parameter in GeneralProduct. */
-enum { CoeffBasedProductMode, LazyCoeffBasedProductMode, OuterProduct, InnerProduct, GemvProduct, GemmProduct };
-
-/** \internal \ingroup enums
-  * Enum used in experimental parallel implementation. */
-enum Action {GetAction, SetAction};
-
-/** The type used to identify a dense storage. */
-struct Dense {};
-
-/** The type used to identify a matrix expression */
-struct MatrixXpr {};
-
-/** The type used to identify an array expression */
-struct ArrayXpr {};
-
-} // end namespace Eigen
-
-#endif // EIGEN_CONSTANTS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/util/ForwardDeclarations.h b/vendor/eigen-3.1.91/Eigen/src/Core/util/ForwardDeclarations.h
deleted file mode 100644
index d6a8145..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/util/ForwardDeclarations.h
+++ /dev/null
@@ -1,299 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2007-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_FORWARDDECLARATIONS_H
-#define EIGEN_FORWARDDECLARATIONS_H
-
-namespace Eigen {
-namespace internal {
-
-template<typename T> struct traits;
-
-// here we say once and for all that traits<const T> == traits<T>
-// When constness must affect traits, it has to be constness on template parameters on which T itself depends.
-// For example, traits<Map<const T> > != traits<Map<T> >, but
-//              traits<const Map<T> > == traits<Map<T> >
-template<typename T> struct traits<const T> : traits<T> {};
-
-template<typename Derived> struct has_direct_access
-{
-  enum { ret = (traits<Derived>::Flags & DirectAccessBit) ? 1 : 0 };
-};
-
-template<typename Derived> struct accessors_level
-{
-  enum { has_direct_access = (traits<Derived>::Flags & DirectAccessBit) ? 1 : 0,
-         has_write_access = (traits<Derived>::Flags & LvalueBit) ? 1 : 0,
-         value = has_direct_access ? (has_write_access ? DirectWriteAccessors : DirectAccessors)
-                                   : (has_write_access ? WriteAccessors       : ReadOnlyAccessors)
-  };
-};
-
-} // end namespace internal
-
-template<typename T> struct NumTraits;
-
-template<typename Derived> struct EigenBase;
-template<typename Derived> class DenseBase;
-template<typename Derived> class PlainObjectBase;
-
-
-template<typename Derived,
-         int Level = internal::accessors_level<Derived>::value >
-class DenseCoeffsBase;
-
-template<typename _Scalar, int _Rows, int _Cols,
-         int _Options = AutoAlign |
-#if defined(__GNUC__) && __GNUC__==3 && __GNUC_MINOR__==4
-    // workaround a bug in at least gcc 3.4.6
-    // the innermost ?: ternary operator is misparsed. We write it slightly
-    // differently and this makes gcc 3.4.6 happy, but it's ugly.
-    // The error would only show up with EIGEN_DEFAULT_TO_ROW_MAJOR is defined
-    // (when EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION is RowMajor)
-                          ( (_Rows==1 && _Cols!=1) ? RowMajor
-                          : !(_Cols==1 && _Rows!=1) ?  EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION
-                          : ColMajor ),
-#else
-                          ( (_Rows==1 && _Cols!=1) ? RowMajor
-                          : (_Cols==1 && _Rows!=1) ? ColMajor
-                          : EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ),
-#endif
-         int _MaxRows = _Rows,
-         int _MaxCols = _Cols
-> class Matrix;
-
-template<typename Derived> class MatrixBase;
-template<typename Derived> class ArrayBase;
-
-template<typename ExpressionType, unsigned int Added, unsigned int Removed> class Flagged;
-template<typename ExpressionType, template <typename> class StorageBase > class NoAlias;
-template<typename ExpressionType> class NestByValue;
-template<typename ExpressionType> class ForceAlignedAccess;
-template<typename ExpressionType> class SwapWrapper;
-
-template<typename XprType, int BlockRows=Dynamic, int BlockCols=Dynamic, bool InnerPanel = false> class Block;
-
-template<typename MatrixType, int Size=Dynamic> class VectorBlock;
-template<typename MatrixType> class Transpose;
-template<typename MatrixType> class Conjugate;
-template<typename NullaryOp, typename MatrixType>         class CwiseNullaryOp;
-template<typename UnaryOp,   typename MatrixType>         class CwiseUnaryOp;
-template<typename ViewOp,    typename MatrixType>         class CwiseUnaryView;
-template<typename BinaryOp,  typename Lhs, typename Rhs>  class CwiseBinaryOp;
-template<typename BinOp,     typename Lhs, typename Rhs>  class SelfCwiseBinaryOp;
-template<typename Derived,   typename Lhs, typename Rhs>  class ProductBase;
-template<typename Lhs, typename Rhs, int Mode>            class GeneralProduct;
-template<typename Lhs, typename Rhs, int NestingFlags>    class CoeffBasedProduct;
-
-template<typename Derived> class DiagonalBase;
-template<typename _DiagonalVectorType> class DiagonalWrapper;
-template<typename _Scalar, int SizeAtCompileTime, int MaxSizeAtCompileTime=SizeAtCompileTime> class DiagonalMatrix;
-template<typename MatrixType, typename DiagonalType, int ProductOrder> class DiagonalProduct;
-template<typename MatrixType, int Index = 0> class Diagonal;
-template<int SizeAtCompileTime, int MaxSizeAtCompileTime = SizeAtCompileTime, typename IndexType=int> class PermutationMatrix;
-template<int SizeAtCompileTime, int MaxSizeAtCompileTime = SizeAtCompileTime, typename IndexType=int> class Transpositions;
-template<typename Derived> class PermutationBase;
-template<typename Derived> class TranspositionsBase;
-template<typename _IndicesType> class PermutationWrapper;
-template<typename _IndicesType> class TranspositionsWrapper;
-
-template<typename Derived,
-         int Level = internal::accessors_level<Derived>::has_write_access ? WriteAccessors : ReadOnlyAccessors
-> class MapBase;
-template<int InnerStrideAtCompileTime, int OuterStrideAtCompileTime> class Stride;
-template<typename MatrixType, int MapOptions=Unaligned, typename StrideType = Stride<0,0> > class Map;
-
-template<typename Derived> class TriangularBase;
-template<typename MatrixType, unsigned int Mode> class TriangularView;
-template<typename MatrixType, unsigned int Mode> class SelfAdjointView;
-template<typename MatrixType> class SparseView;
-template<typename ExpressionType> class WithFormat;
-template<typename MatrixType> struct CommaInitializer;
-template<typename Derived> class ReturnByValue;
-template<typename ExpressionType> class ArrayWrapper;
-template<typename ExpressionType> class MatrixWrapper;
-
-namespace internal {
-template<typename DecompositionType, typename Rhs> struct solve_retval_base;
-template<typename DecompositionType, typename Rhs> struct solve_retval;
-template<typename DecompositionType> struct kernel_retval_base;
-template<typename DecompositionType> struct kernel_retval;
-template<typename DecompositionType> struct image_retval_base;
-template<typename DecompositionType> struct image_retval;
-} // end namespace internal
-
-namespace internal {
-template<typename _Scalar, int Rows=Dynamic, int Cols=Dynamic, int Supers=Dynamic, int Subs=Dynamic, int Options=0> class BandMatrix;
-}
-
-namespace internal {
-template<typename Lhs, typename Rhs> struct product_type;
-}
-
-template<typename Lhs, typename Rhs,
-         int ProductType = internal::product_type<Lhs,Rhs>::value>
-struct ProductReturnType;
-
-// this is a workaround for sun CC
-template<typename Lhs, typename Rhs> struct LazyProductReturnType;
-
-namespace internal {
-
-// Provides scalar/packet-wise product and product with accumulation
-// with optional conjugation of the arguments.
-template<typename LhsScalar, typename RhsScalar, bool ConjLhs=false, bool ConjRhs=false> struct conj_helper;
-
-template<typename Scalar> struct scalar_sum_op;
-template<typename Scalar> struct scalar_difference_op;
-template<typename LhsScalar,typename RhsScalar> struct scalar_conj_product_op;
-template<typename Scalar> struct scalar_opposite_op;
-template<typename Scalar> struct scalar_conjugate_op;
-template<typename Scalar> struct scalar_real_op;
-template<typename Scalar> struct scalar_imag_op;
-template<typename Scalar> struct scalar_abs_op;
-template<typename Scalar> struct scalar_abs2_op;
-template<typename Scalar> struct scalar_sqrt_op;
-template<typename Scalar> struct scalar_exp_op;
-template<typename Scalar> struct scalar_log_op;
-template<typename Scalar> struct scalar_cos_op;
-template<typename Scalar> struct scalar_sin_op;
-template<typename Scalar> struct scalar_acos_op;
-template<typename Scalar> struct scalar_asin_op;
-template<typename Scalar> struct scalar_tan_op;
-template<typename Scalar> struct scalar_pow_op;
-template<typename Scalar> struct scalar_inverse_op;
-template<typename Scalar> struct scalar_square_op;
-template<typename Scalar> struct scalar_cube_op;
-template<typename Scalar, typename NewType> struct scalar_cast_op;
-template<typename Scalar> struct scalar_multiple_op;
-template<typename Scalar> struct scalar_quotient1_op;
-template<typename Scalar> struct scalar_min_op;
-template<typename Scalar> struct scalar_max_op;
-template<typename Scalar> struct scalar_random_op;
-template<typename Scalar> struct scalar_add_op;
-template<typename Scalar> struct scalar_constant_op;
-template<typename Scalar> struct scalar_identity_op;
-
-template<typename LhsScalar,typename RhsScalar=LhsScalar> struct scalar_product_op;
-template<typename LhsScalar,typename RhsScalar> struct scalar_multiple2_op;
-template<typename LhsScalar,typename RhsScalar=LhsScalar> struct scalar_quotient_op;
-
-} // end namespace internal
-
-struct IOFormat;
-
-// Array module
-template<typename _Scalar, int _Rows, int _Cols,
-         int _Options = AutoAlign |
-#if defined(__GNUC__) && __GNUC__==3 && __GNUC_MINOR__==4
-    // workaround a bug in at least gcc 3.4.6
-    // the innermost ?: ternary operator is misparsed. We write it slightly
-    // differently and this makes gcc 3.4.6 happy, but it's ugly.
-    // The error would only show up with EIGEN_DEFAULT_TO_ROW_MAJOR is defined
-    // (when EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION is RowMajor)
-                          ( (_Rows==1 && _Cols!=1) ? RowMajor
-                          : !(_Cols==1 && _Rows!=1) ?  EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION
-                          : ColMajor ),
-#else
-                          ( (_Rows==1 && _Cols!=1) ? RowMajor
-                          : (_Cols==1 && _Rows!=1) ? ColMajor
-                          : EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ),
-#endif
-         int _MaxRows = _Rows, int _MaxCols = _Cols> class Array;
-template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType> class Select;
-template<typename MatrixType, typename BinaryOp, int Direction> class PartialReduxExpr;
-template<typename ExpressionType, int Direction> class VectorwiseOp;
-template<typename MatrixType,int RowFactor,int ColFactor> class Replicate;
-template<typename MatrixType, int Direction = BothDirections> class Reverse;
-
-template<typename MatrixType> class FullPivLU;
-template<typename MatrixType> class PartialPivLU;
-namespace internal {
-template<typename MatrixType> struct inverse_impl;
-}
-template<typename MatrixType> class HouseholderQR;
-template<typename MatrixType> class ColPivHouseholderQR;
-template<typename MatrixType> class FullPivHouseholderQR;
-template<typename MatrixType, int QRPreconditioner = ColPivHouseholderQRPreconditioner> class JacobiSVD;
-template<typename MatrixType, int UpLo = Lower> class LLT;
-template<typename MatrixType, int UpLo = Lower> class LDLT;
-template<typename VectorsType, typename CoeffsType, int Side=OnTheLeft> class HouseholderSequence;
-template<typename Scalar>     class JacobiRotation;
-
-// Geometry module:
-template<typename Derived, int _Dim> class RotationBase;
-template<typename Lhs, typename Rhs> class Cross;
-template<typename Derived> class QuaternionBase;
-template<typename Scalar> class Rotation2D;
-template<typename Scalar> class AngleAxis;
-template<typename Scalar,int Dim> class Translation;
-
-#ifdef EIGEN2_SUPPORT
-template<typename Derived, int _Dim> class eigen2_RotationBase;
-template<typename Lhs, typename Rhs> class eigen2_Cross;
-template<typename Scalar> class eigen2_Quaternion;
-template<typename Scalar> class eigen2_Rotation2D;
-template<typename Scalar> class eigen2_AngleAxis;
-template<typename Scalar,int Dim> class eigen2_Transform;
-template <typename _Scalar, int _AmbientDim> class eigen2_ParametrizedLine;
-template <typename _Scalar, int _AmbientDim> class eigen2_Hyperplane;
-template<typename Scalar,int Dim> class eigen2_Translation;
-template<typename Scalar,int Dim> class eigen2_Scaling;
-#endif
-
-#if EIGEN2_SUPPORT_STAGE < STAGE20_RESOLVE_API_CONFLICTS
-template<typename Scalar> class Quaternion;
-template<typename Scalar,int Dim> class Transform;
-template <typename _Scalar, int _AmbientDim> class ParametrizedLine;
-template <typename _Scalar, int _AmbientDim> class Hyperplane;
-template<typename Scalar,int Dim> class Scaling;
-#endif
-
-#if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
-template<typename Scalar, int Options = AutoAlign> class Quaternion;
-template<typename Scalar,int Dim,int Mode,int _Options=AutoAlign> class Transform;
-template <typename _Scalar, int _AmbientDim, int Options=AutoAlign> class ParametrizedLine;
-template <typename _Scalar, int _AmbientDim, int Options=AutoAlign> class Hyperplane;
-template<typename Scalar> class UniformScaling;
-template<typename MatrixType,int Direction> class Homogeneous;
-#endif
-
-// MatrixFunctions module
-template<typename Derived> struct MatrixExponentialReturnValue;
-template<typename Derived> class MatrixFunctionReturnValue;
-template<typename Derived> class MatrixSquareRootReturnValue;
-template<typename Derived> class MatrixLogarithmReturnValue;
-template<typename Derived> class MatrixPowerReturnValue;
-template<typename Derived, typename Lhs, typename Rhs> class MatrixPowerProduct;
-
-namespace internal {
-template <typename Scalar>
-struct stem_function
-{
-  typedef std::complex<typename NumTraits<Scalar>::Real> ComplexScalar;
-  typedef ComplexScalar type(ComplexScalar, int);
-};
-}
-
-
-#ifdef EIGEN2_SUPPORT
-template<typename ExpressionType> class Cwise;
-template<typename MatrixType> class Minor;
-template<typename MatrixType> class LU;
-template<typename MatrixType> class QR;
-template<typename MatrixType> class SVD;
-namespace internal {
-template<typename MatrixType, unsigned int Mode> struct eigen2_part_return_type;
-}
-#endif
-
-} // end namespace Eigen
-
-#endif // EIGEN_FORWARDDECLARATIONS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/util/MKL_support.h b/vendor/eigen-3.1.91/Eigen/src/Core/util/MKL_support.h
deleted file mode 100644
index 1e6e355..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/util/MKL_support.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- Copyright (c) 2011, Intel Corporation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
- * Neither the name of Intel Corporation nor the names of its contributors may
-   be used to endorse or promote products derived from this software without
-   specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ********************************************************************************
- *   Content : Eigen bindings to Intel(R) MKL
- *   Include file with common MKL declarations
- ********************************************************************************
-*/
-
-#ifndef EIGEN_MKL_SUPPORT_H
-#define EIGEN_MKL_SUPPORT_H
-
-#ifdef EIGEN_USE_MKL_ALL
-  #ifndef EIGEN_USE_BLAS
-    #define EIGEN_USE_BLAS
-  #endif
-  #ifndef EIGEN_USE_LAPACKE
-    #define EIGEN_USE_LAPACKE
-  #endif
-  #ifndef EIGEN_USE_MKL_VML
-    #define EIGEN_USE_MKL_VML
-  #endif
-#endif
-
-#ifdef EIGEN_USE_LAPACKE_STRICT
-  #define EIGEN_USE_LAPACKE
-#endif
-
-#if defined(EIGEN_USE_BLAS) || defined(EIGEN_USE_LAPACKE) || defined(EIGEN_USE_MKL_VML)
-  #define EIGEN_USE_MKL
-#endif
-
-#if defined EIGEN_USE_MKL
-
-#include <mkl.h>
-#include <mkl_lapacke.h>
-#define EIGEN_MKL_VML_THRESHOLD 128
-
-namespace Eigen {
-
-typedef std::complex<double> dcomplex;
-typedef std::complex<float>  scomplex;
-
-namespace internal {
-
-template<typename MKLType, typename EigenType>
-static inline void assign_scalar_eig2mkl(MKLType& mklScalar, const EigenType& eigenScalar) {
-  mklScalar=eigenScalar;
-}
-
-template<typename MKLType, typename EigenType>
-static inline void assign_conj_scalar_eig2mkl(MKLType& mklScalar, const EigenType& eigenScalar) {
-  mklScalar=eigenScalar;
-}
-
-template <>
-inline void assign_scalar_eig2mkl<MKL_Complex16,dcomplex>(MKL_Complex16& mklScalar, const dcomplex& eigenScalar) {
-  mklScalar.real=eigenScalar.real();
-  mklScalar.imag=eigenScalar.imag();
-}
-
-template <>
-inline void assign_scalar_eig2mkl<MKL_Complex8,scomplex>(MKL_Complex8& mklScalar, const scomplex& eigenScalar) {
-  mklScalar.real=eigenScalar.real();
-  mklScalar.imag=eigenScalar.imag();
-}
-
-template <>
-inline void assign_conj_scalar_eig2mkl<MKL_Complex16,dcomplex>(MKL_Complex16& mklScalar, const dcomplex& eigenScalar) {
-  mklScalar.real=eigenScalar.real();
-  mklScalar.imag=-eigenScalar.imag();
-}
-
-template <>
-inline void assign_conj_scalar_eig2mkl<MKL_Complex8,scomplex>(MKL_Complex8& mklScalar, const scomplex& eigenScalar) {
-  mklScalar.real=eigenScalar.real();
-  mklScalar.imag=-eigenScalar.imag();
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif
-
-#endif // EIGEN_MKL_SUPPORT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/util/Macros.h b/vendor/eigen-3.1.91/Eigen/src/Core/util/Macros.h
deleted file mode 100644
index 2368c89..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/util/Macros.h
+++ /dev/null
@@ -1,416 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_MACROS_H
-#define EIGEN_MACROS_H
-
-#define EIGEN_WORLD_VERSION 3
-#define EIGEN_MAJOR_VERSION 1
-#define EIGEN_MINOR_VERSION 91
-
-#define EIGEN_VERSION_AT_LEAST(x,y,z) (EIGEN_WORLD_VERSION>x || (EIGEN_WORLD_VERSION>=x && \
-                                      (EIGEN_MAJOR_VERSION>y || (EIGEN_MAJOR_VERSION>=y && \
-                                                                 EIGEN_MINOR_VERSION>=z))))
-#ifdef __GNUC__
-  #define EIGEN_GNUC_AT_LEAST(x,y) ((__GNUC__==x && __GNUC_MINOR__>=y) || __GNUC__>x)
-#else
-  #define EIGEN_GNUC_AT_LEAST(x,y) 0
-#endif
- 
-#ifdef __GNUC__
-  #define EIGEN_GNUC_AT_MOST(x,y) ((__GNUC__==x && __GNUC_MINOR__<=y) || __GNUC__<x)
-#else
-  #define EIGEN_GNUC_AT_MOST(x,y) 0
-#endif
-
-#if EIGEN_GNUC_AT_MOST(4,3) && !defined(__clang__)
-  // see bug 89
-  #define EIGEN_SAFE_TO_USE_STANDARD_ASSERT_MACRO 0
-#else
-  #define EIGEN_SAFE_TO_USE_STANDARD_ASSERT_MACRO 1
-#endif
-
-#if defined(__GNUC__) && (__GNUC__ <= 3)
-#define EIGEN_GCC3_OR_OLDER 1
-#else
-#define EIGEN_GCC3_OR_OLDER 0
-#endif
-
-// 16 byte alignment is only useful for vectorization. Since it affects the ABI, we need to enable
-// 16 byte alignment on all platforms where vectorization might be enabled. In theory we could always
-// enable alignment, but it can be a cause of problems on some platforms, so we just disable it in
-// certain common platform (compiler+architecture combinations) to avoid these problems.
-// Only static alignment is really problematic (relies on nonstandard compiler extensions that don't
-// work everywhere, for example don't work on GCC/ARM), try to keep heap alignment even
-// when we have to disable static alignment.
-#if defined(__GNUC__) && !(defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__ppc__) || defined(__ia64__))
-#define EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT 1
-#else
-#define EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT 0
-#endif
-
-// static alignment is completely disabled with GCC 3, Sun Studio, and QCC/QNX
-#if !EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT \
- && !EIGEN_GCC3_OR_OLDER \
- && !defined(__SUNPRO_CC) \
- && !defined(__QNXNTO__)
-  #define EIGEN_ARCH_WANTS_STACK_ALIGNMENT 1
-#else
-  #define EIGEN_ARCH_WANTS_STACK_ALIGNMENT 0
-#endif
-
-#ifdef EIGEN_DONT_ALIGN
-  #ifndef EIGEN_DONT_ALIGN_STATICALLY
-    #define EIGEN_DONT_ALIGN_STATICALLY
-  #endif
-  #define EIGEN_ALIGN 0
-#else
-  #define EIGEN_ALIGN 1
-#endif
-
-// EIGEN_ALIGN_STATICALLY is the true test whether we want to align arrays on the stack or not. It takes into account both the user choice to explicitly disable
-// alignment (EIGEN_DONT_ALIGN_STATICALLY) and the architecture config (EIGEN_ARCH_WANTS_STACK_ALIGNMENT). Henceforth, only EIGEN_ALIGN_STATICALLY should be used.
-#if EIGEN_ARCH_WANTS_STACK_ALIGNMENT && !defined(EIGEN_DONT_ALIGN_STATICALLY)
-  #define EIGEN_ALIGN_STATICALLY 1
-#else
-  #define EIGEN_ALIGN_STATICALLY 0
-  #ifndef EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT
-    #define EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT
-  #endif
-#endif
-
-#ifdef EIGEN_DEFAULT_TO_ROW_MAJOR
-#define EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION RowMajor
-#else
-#define EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ColMajor
-#endif
-
-#ifndef EIGEN_DEFAULT_DENSE_INDEX_TYPE
-#define EIGEN_DEFAULT_DENSE_INDEX_TYPE std::ptrdiff_t
-#endif
-
-/** Allows to disable some optimizations which might affect the accuracy of the result.
-  * Such optimization are enabled by default, and set EIGEN_FAST_MATH to 0 to disable them.
-  * They currently include:
-  *   - single precision Cwise::sin() and Cwise::cos() when SSE vectorization is enabled.
-  */
-#ifndef EIGEN_FAST_MATH
-#define EIGEN_FAST_MATH 1
-#endif
-
-#define EIGEN_DEBUG_VAR(x) std::cerr << #x << " = " << x << std::endl;
-
-// concatenate two tokens
-#define EIGEN_CAT2(a,b) a ## b
-#define EIGEN_CAT(a,b) EIGEN_CAT2(a,b)
-
-// convert a token to a string
-#define EIGEN_MAKESTRING2(a) #a
-#define EIGEN_MAKESTRING(a) EIGEN_MAKESTRING2(a)
-
-// EIGEN_STRONG_INLINE is a stronger version of the inline, using __forceinline on MSVC,
-// but it still doesn't use GCC's always_inline. This is useful in (common) situations where MSVC needs forceinline
-// but GCC is still doing fine with just inline.
-#if (defined _MSC_VER) || (defined __INTEL_COMPILER)
-#define EIGEN_STRONG_INLINE __forceinline
-#else
-#define EIGEN_STRONG_INLINE inline
-#endif
-
-// EIGEN_ALWAYS_INLINE is the stronget, it has the effect of making the function inline and adding every possible
-// attribute to maximize inlining. This should only be used when really necessary: in particular,
-// it uses __attribute__((always_inline)) on GCC, which most of the time is useless and can severely harm compile times.
-// FIXME with the always_inline attribute,
-// gcc 3.4.x reports the following compilation error:
-//   Eval.h:91: sorry, unimplemented: inlining failed in call to 'const Eigen::Eval<Derived> Eigen::MatrixBase<Scalar, Derived>::eval() const'
-//    : function body not available
-#if EIGEN_GNUC_AT_LEAST(4,0)
-#define EIGEN_ALWAYS_INLINE __attribute__((always_inline)) inline
-#else
-#define EIGEN_ALWAYS_INLINE EIGEN_STRONG_INLINE
-#endif
-
-#if (defined __GNUC__)
-#define EIGEN_DONT_INLINE __attribute__((noinline))
-#elif (defined _MSC_VER)
-#define EIGEN_DONT_INLINE __declspec(noinline)
-#else
-#define EIGEN_DONT_INLINE
-#endif
-
-#if (defined __GNUC__)
-#define EIGEN_PERMISSIVE_EXPR __extension__
-#else
-#define EIGEN_PERMISSIVE_EXPR
-#endif
-
-// this macro allows to get rid of linking errors about multiply defined functions.
-//  - static is not very good because it prevents definitions from different object files to be merged.
-//           So static causes the resulting linked executable to be bloated with multiple copies of the same function.
-//  - inline is not perfect either as it unwantedly hints the compiler toward inlining the function.
-#define EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
-#define EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS inline
-
-#ifdef NDEBUG
-# ifndef EIGEN_NO_DEBUG
-#  define EIGEN_NO_DEBUG
-# endif
-#endif
-
-// eigen_plain_assert is where we implement the workaround for the assert() bug in GCC <= 4.3, see bug 89
-#ifdef EIGEN_NO_DEBUG
-  #define eigen_plain_assert(x)
-#else
-  #if EIGEN_SAFE_TO_USE_STANDARD_ASSERT_MACRO
-    namespace Eigen {
-    namespace internal {
-    inline bool copy_bool(bool b) { return b; }
-    }
-    }
-    #define eigen_plain_assert(x) assert(x)
-  #else
-    // work around bug 89
-    #include <cstdlib>   // for abort
-    #include <iostream>  // for std::cerr
-
-    namespace Eigen {
-    namespace internal {
-    // trivial function copying a bool. Must be EIGEN_DONT_INLINE, so we implement it after including Eigen headers.
-    // see bug 89.
-    namespace {
-    EIGEN_DONT_INLINE bool copy_bool(bool b) { return b; }
-    }
-    inline void assert_fail(const char *condition, const char *function, const char *file, int line)
-    {
-      std::cerr << "assertion failed: " << condition << " in function " << function << " at " << file << ":" << line << std::endl;
-      abort();
-    }
-    }
-    }
-    #define eigen_plain_assert(x) \
-      do { \
-        if(!Eigen::internal::copy_bool(x)) \
-          Eigen::internal::assert_fail(EIGEN_MAKESTRING(x), __PRETTY_FUNCTION__, __FILE__, __LINE__); \
-      } while(false)
-  #endif
-#endif
-
-// eigen_assert can be overridden
-#ifndef eigen_assert
-#define eigen_assert(x) eigen_plain_assert(x)
-#endif
-
-#ifdef EIGEN_INTERNAL_DEBUGGING
-#define eigen_internal_assert(x) eigen_assert(x)
-#else
-#define eigen_internal_assert(x)
-#endif
-
-#ifdef EIGEN_NO_DEBUG
-#define EIGEN_ONLY_USED_FOR_DEBUG(x) (void)x
-#else
-#define EIGEN_ONLY_USED_FOR_DEBUG(x)
-#endif
-
-#ifndef EIGEN_NO_DEPRECATED_WARNING
-  #if (defined __GNUC__)
-    #define EIGEN_DEPRECATED __attribute__((deprecated))
-  #elif (defined _MSC_VER)
-    #define EIGEN_DEPRECATED __declspec(deprecated)
-  #else
-    #define EIGEN_DEPRECATED
-  #endif
-#else
-  #define EIGEN_DEPRECATED
-#endif
-
-#if (defined __GNUC__)
-#define EIGEN_UNUSED __attribute__((unused))
-#else
-#define EIGEN_UNUSED
-#endif
-
-// Suppresses 'unused variable' warnings.
-#define EIGEN_UNUSED_VARIABLE(var) (void)var;
-
-#if !defined(EIGEN_ASM_COMMENT) && (defined __GNUC__)
-#define EIGEN_ASM_COMMENT(X)  asm("#" X)
-#else
-#define EIGEN_ASM_COMMENT(X)
-#endif
-
-/* EIGEN_ALIGN_TO_BOUNDARY(n) forces data to be n-byte aligned. This is used to satisfy SIMD requirements.
- * However, we do that EVEN if vectorization (EIGEN_VECTORIZE) is disabled,
- * so that vectorization doesn't affect binary compatibility.
- *
- * If we made alignment depend on whether or not EIGEN_VECTORIZE is defined, it would be impossible to link
- * vectorized and non-vectorized code.
- */
-#if (defined __GNUC__) || (defined __PGI) || (defined __IBMCPP__) || (defined __ARMCC_VERSION)
-  #define EIGEN_ALIGN_TO_BOUNDARY(n) __attribute__((aligned(n)))
-#elif (defined _MSC_VER)
-  #define EIGEN_ALIGN_TO_BOUNDARY(n) __declspec(align(n))
-#elif (defined __SUNPRO_CC)
-  // FIXME not sure about this one:
-  #define EIGEN_ALIGN_TO_BOUNDARY(n) __attribute__((aligned(n)))
-#else
-  #error Please tell me what is the equivalent of __attribute__((aligned(n))) for your compiler
-#endif
-
-#define EIGEN_ALIGN16 EIGEN_ALIGN_TO_BOUNDARY(16)
-
-#if EIGEN_ALIGN_STATICALLY
-#define EIGEN_USER_ALIGN_TO_BOUNDARY(n) EIGEN_ALIGN_TO_BOUNDARY(n)
-#define EIGEN_USER_ALIGN16 EIGEN_ALIGN16
-#else
-#define EIGEN_USER_ALIGN_TO_BOUNDARY(n)
-#define EIGEN_USER_ALIGN16
-#endif
-
-#ifdef EIGEN_DONT_USE_RESTRICT_KEYWORD
-  #define EIGEN_RESTRICT
-#endif
-#ifndef EIGEN_RESTRICT
-  #define EIGEN_RESTRICT __restrict
-#endif
-
-#ifndef EIGEN_STACK_ALLOCATION_LIMIT
-#define EIGEN_STACK_ALLOCATION_LIMIT 20000
-#endif
-
-#ifndef EIGEN_DEFAULT_IO_FORMAT
-#ifdef EIGEN_MAKING_DOCS
-// format used in Eigen's documentation
-// needed to define it here as escaping characters in CMake add_definition's argument seems very problematic.
-#define EIGEN_DEFAULT_IO_FORMAT Eigen::IOFormat(3, 0, " ", "\n", "", "")
-#else
-#define EIGEN_DEFAULT_IO_FORMAT Eigen::IOFormat()
-#endif
-#endif
-
-// just an empty macro !
-#define EIGEN_EMPTY
-
-#if defined(_MSC_VER) && (!defined(__INTEL_COMPILER))
-#define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) \
-  using Base::operator =;
-#elif defined(__clang__) // workaround clang bug (see http://forum.kde.org/viewtopic.php?f=74&t=102653)
-#define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) \
-  using Base::operator =; \
-  EIGEN_STRONG_INLINE Derived& operator=(const Derived& other) { Base::operator=(other); return *this; } \
-  template <typename OtherDerived> \
-  EIGEN_STRONG_INLINE Derived& operator=(const DenseBase<OtherDerived>& other) { Base::operator=(other.derived()); return *this; }
-#else
-#define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) \
-  using Base::operator =; \
-  EIGEN_STRONG_INLINE Derived& operator=(const Derived& other) \
-  { \
-    Base::operator=(other); \
-    return *this; \
-  }
-#endif
-
-#define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Derived) \
-  EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived)
-
-/**
-* Just a side note. Commenting within defines works only by documenting
-* behind the object (via '!<'). Comments cannot be multi-line and thus
-* we have these extra long lines. What is confusing doxygen over here is
-* that we use '\' and basically have a bunch of typedefs with their
-* documentation in a single line.
-**/
-
-#define EIGEN_GENERIC_PUBLIC_INTERFACE(Derived) \
-  typedef typename Eigen::internal::traits<Derived>::Scalar Scalar; /*!< \brief Numeric type, e.g. float, double, int or std::complex<float>. */ \
-  typedef typename Eigen::NumTraits<Scalar>::Real RealScalar; /*!< \brief The underlying numeric type for composed scalar types. \details In cases where Scalar is e.g. std::complex<T>, T were corresponding to RealScalar. */ \
-  typedef typename Base::CoeffReturnType CoeffReturnType; /*!< \brief The return type for coefficient access. \details Depending on whether the object allows direct coefficient access (e.g. for a MatrixXd), this type is either 'const Scalar&' or simply 'Scalar' for objects that do not allow direct coefficient access. */ \
-  typedef typename Eigen::internal::nested<Derived>::type Nested; \
-  typedef typename Eigen::internal::traits<Derived>::StorageKind StorageKind; \
-  typedef typename Eigen::internal::traits<Derived>::Index Index; \
-  enum { RowsAtCompileTime = Eigen::internal::traits<Derived>::RowsAtCompileTime, \
-        ColsAtCompileTime = Eigen::internal::traits<Derived>::ColsAtCompileTime, \
-        Flags = Eigen::internal::traits<Derived>::Flags, \
-        CoeffReadCost = Eigen::internal::traits<Derived>::CoeffReadCost, \
-        SizeAtCompileTime = Base::SizeAtCompileTime, \
-        MaxSizeAtCompileTime = Base::MaxSizeAtCompileTime, \
-        IsVectorAtCompileTime = Base::IsVectorAtCompileTime };
-
-
-#define EIGEN_DENSE_PUBLIC_INTERFACE(Derived) \
-  typedef typename Eigen::internal::traits<Derived>::Scalar Scalar; /*!< \brief Numeric type, e.g. float, double, int or std::complex<float>. */ \
-  typedef typename Eigen::NumTraits<Scalar>::Real RealScalar; /*!< \brief The underlying numeric type for composed scalar types. \details In cases where Scalar is e.g. std::complex<T>, T were corresponding to RealScalar. */ \
-  typedef typename Base::PacketScalar PacketScalar; \
-  typedef typename Base::CoeffReturnType CoeffReturnType; /*!< \brief The return type for coefficient access. \details Depending on whether the object allows direct coefficient access (e.g. for a MatrixXd), this type is either 'const Scalar&' or simply 'Scalar' for objects that do not allow direct coefficient access. */ \
-  typedef typename Eigen::internal::nested<Derived>::type Nested; \
-  typedef typename Eigen::internal::traits<Derived>::StorageKind StorageKind; \
-  typedef typename Eigen::internal::traits<Derived>::Index Index; \
-  enum { RowsAtCompileTime = Eigen::internal::traits<Derived>::RowsAtCompileTime, \
-        ColsAtCompileTime = Eigen::internal::traits<Derived>::ColsAtCompileTime, \
-        MaxRowsAtCompileTime = Eigen::internal::traits<Derived>::MaxRowsAtCompileTime, \
-        MaxColsAtCompileTime = Eigen::internal::traits<Derived>::MaxColsAtCompileTime, \
-        Flags = Eigen::internal::traits<Derived>::Flags, \
-        CoeffReadCost = Eigen::internal::traits<Derived>::CoeffReadCost, \
-        SizeAtCompileTime = Base::SizeAtCompileTime, \
-        MaxSizeAtCompileTime = Base::MaxSizeAtCompileTime, \
-        IsVectorAtCompileTime = Base::IsVectorAtCompileTime }; \
-  using Base::derived; \
-  using Base::const_cast_derived;
-
-
-#define EIGEN_PLAIN_ENUM_MIN(a,b) (((int)a <= (int)b) ? (int)a : (int)b)
-#define EIGEN_PLAIN_ENUM_MAX(a,b) (((int)a >= (int)b) ? (int)a : (int)b)
-
-// EIGEN_SIZE_MIN_PREFER_DYNAMIC gives the min between compile-time sizes. 0 has absolute priority, followed by 1,
-// followed by Dynamic, followed by other finite values. The reason for giving Dynamic the priority over
-// finite values is that min(3, Dynamic) should be Dynamic, since that could be anything between 0 and 3.
-#define EIGEN_SIZE_MIN_PREFER_DYNAMIC(a,b) (((int)a == 0 || (int)b == 0) ? 0 \
-                           : ((int)a == 1 || (int)b == 1) ? 1 \
-                           : ((int)a == Dynamic || (int)b == Dynamic) ? Dynamic \
-                           : ((int)a <= (int)b) ? (int)a : (int)b)
-
-// EIGEN_SIZE_MIN_PREFER_FIXED is a variant of EIGEN_SIZE_MIN_PREFER_DYNAMIC comparing MaxSizes. The difference is that finite values
-// now have priority over Dynamic, so that min(3, Dynamic) gives 3. Indeed, whatever the actual value is
-// (between 0 and 3), it is not more than 3.
-#define EIGEN_SIZE_MIN_PREFER_FIXED(a,b)  (((int)a == 0 || (int)b == 0) ? 0 \
-                           : ((int)a == 1 || (int)b == 1) ? 1 \
-                           : ((int)a == Dynamic && (int)b == Dynamic) ? Dynamic \
-                           : ((int)a == Dynamic) ? (int)b \
-                           : ((int)b == Dynamic) ? (int)a \
-                           : ((int)a <= (int)b) ? (int)a : (int)b)
-
-// see EIGEN_SIZE_MIN_PREFER_DYNAMIC. No need for a separate variant for MaxSizes here.
-#define EIGEN_SIZE_MAX(a,b) (((int)a == Dynamic || (int)b == Dynamic) ? Dynamic \
-                           : ((int)a >= (int)b) ? (int)a : (int)b)
-
-#define EIGEN_LOGICAL_XOR(a,b) (((a) || (b)) && !((a) && (b)))
-
-#define EIGEN_IMPLIES(a,b) (!(a) || (b))
-
-#define EIGEN_MAKE_CWISE_BINARY_OP(METHOD,FUNCTOR) \
-  template<typename OtherDerived> \
-  EIGEN_STRONG_INLINE const CwiseBinaryOp<FUNCTOR<Scalar>, const Derived, const OtherDerived> \
-  (METHOD)(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const \
-  { \
-    return CwiseBinaryOp<FUNCTOR<Scalar>, const Derived, const OtherDerived>(derived(), other.derived()); \
-  }
-
-// the expression type of a cwise product
-#define EIGEN_CWISE_PRODUCT_RETURN_TYPE(LHS,RHS) \
-    CwiseBinaryOp< \
-      internal::scalar_product_op< \
-          typename internal::traits<LHS>::Scalar, \
-          typename internal::traits<RHS>::Scalar \
-      >, \
-      const LHS, \
-      const RHS \
-    >
-
-#endif // EIGEN_MACROS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/util/Memory.h b/vendor/eigen-3.1.91/Eigen/src/Core/util/Memory.h
deleted file mode 100644
index 3ca666f..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/util/Memory.h
+++ /dev/null
@@ -1,974 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2008-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2009 Kenneth Riddile <kfriddile at yahoo.com>
-// Copyright (C) 2010 Hauke Heibel <hauke.heibel at gmail.com>
-// Copyright (C) 2010 Thomas Capricelli <orzel at freehackers.org>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-
-/*****************************************************************************
-*** Platform checks for aligned malloc functions                           ***
-*****************************************************************************/
-
-#ifndef EIGEN_MEMORY_H
-#define EIGEN_MEMORY_H
-
-#ifndef EIGEN_MALLOC_ALREADY_ALIGNED
-
-// Try to determine automatically if malloc is already aligned.
-
-// On 64-bit systems, glibc's malloc returns 16-byte-aligned pointers, see:
-//   http://www.gnu.org/s/libc/manual/html_node/Aligned-Memory-Blocks.html
-// This is true at least since glibc 2.8.
-// This leaves the question how to detect 64-bit. According to this document,
-//   http://gcc.fyxm.net/summit/2003/Porting%20to%2064%20bit.pdf
-// page 114, "[The] LP64 model [...] is used by all 64-bit UNIX ports" so it's indeed
-// quite safe, at least within the context of glibc, to equate 64-bit with LP64.
-#if defined(__GLIBC__) && ((__GLIBC__>=2 && __GLIBC_MINOR__ >= 8) || __GLIBC__>2) \
- && defined(__LP64__) && ! defined( __SANITIZE_ADDRESS__ )
-  #define EIGEN_GLIBC_MALLOC_ALREADY_ALIGNED 1
-#else
-  #define EIGEN_GLIBC_MALLOC_ALREADY_ALIGNED 0
-#endif
-
-// FreeBSD 6 seems to have 16-byte aligned malloc
-//   See http://svn.freebsd.org/viewvc/base/stable/6/lib/libc/stdlib/malloc.c?view=markup
-// FreeBSD 7 seems to have 16-byte aligned malloc except on ARM and MIPS architectures
-//   See http://svn.freebsd.org/viewvc/base/stable/7/lib/libc/stdlib/malloc.c?view=markup
-#if defined(__FreeBSD__) && !defined(__arm__) && !defined(__mips__)
-  #define EIGEN_FREEBSD_MALLOC_ALREADY_ALIGNED 1
-#else
-  #define EIGEN_FREEBSD_MALLOC_ALREADY_ALIGNED 0
-#endif
-
-#if defined(__APPLE__) \
- || defined(_WIN64) \
- || EIGEN_GLIBC_MALLOC_ALREADY_ALIGNED \
- || EIGEN_FREEBSD_MALLOC_ALREADY_ALIGNED
-  #define EIGEN_MALLOC_ALREADY_ALIGNED 1
-#else
-  #define EIGEN_MALLOC_ALREADY_ALIGNED 0
-#endif
-
-#endif
-
-#if ((defined __QNXNTO__) || (defined _GNU_SOURCE) || ((defined _XOPEN_SOURCE) && (_XOPEN_SOURCE >= 600))) \
- && (defined _POSIX_ADVISORY_INFO) && (_POSIX_ADVISORY_INFO > 0)
-  #define EIGEN_HAS_POSIX_MEMALIGN 1
-#else
-  #define EIGEN_HAS_POSIX_MEMALIGN 0
-#endif
-
-#ifdef EIGEN_VECTORIZE_SSE
-  #define EIGEN_HAS_MM_MALLOC 1
-#else
-  #define EIGEN_HAS_MM_MALLOC 0
-#endif
-
-namespace Eigen {
-
-namespace internal {
-
-inline void throw_std_bad_alloc()
-{
-  #ifdef EIGEN_EXCEPTIONS
-    throw std::bad_alloc();
-  #else
-    std::size_t huge = -1;
-    new int[huge];
-  #endif
-}
-
-/*****************************************************************************
-*** Implementation of handmade aligned functions                           ***
-*****************************************************************************/
-
-/* ----- Hand made implementations of aligned malloc/free and realloc ----- */
-
-/** \internal Like malloc, but the returned pointer is guaranteed to be 16-byte aligned.
-  * Fast, but wastes 16 additional bytes of memory. Does not throw any exception.
-  */
-inline void* handmade_aligned_malloc(std::size_t size)
-{
-  void *original = std::malloc(size+16);
-  if (original == 0) return 0;
-  void *aligned = reinterpret_cast<void*>((reinterpret_cast<std::size_t>(original) & ~(std::size_t(15))) + 16);
-  *(reinterpret_cast<void**>(aligned) - 1) = original;
-  return aligned;
-}
-
-/** \internal Frees memory allocated with handmade_aligned_malloc */
-inline void handmade_aligned_free(void *ptr)
-{
-  if (ptr) std::free(*(reinterpret_cast<void**>(ptr) - 1));
-}
-
-/** \internal
-  * \brief Reallocates aligned memory.
-  * Since we know that our handmade version is based on std::realloc
-  * we can use std::realloc to implement efficient reallocation.
-  */
-inline void* handmade_aligned_realloc(void* ptr, std::size_t size, std::size_t = 0)
-{
-  if (ptr == 0) return handmade_aligned_malloc(size);
-  void *original = *(reinterpret_cast<void**>(ptr) - 1);
-  std::ptrdiff_t previous_offset = static_cast<char *>(ptr)-static_cast<char *>(original);
-  original = std::realloc(original,size+16);
-  if (original == 0) return 0;
-  void *aligned = reinterpret_cast<void*>((reinterpret_cast<std::size_t>(original) & ~(std::size_t(15))) + 16);
-  void *previous_aligned = static_cast<char *>(original)+previous_offset;
-  if(aligned!=previous_aligned)
-    std::memmove(aligned, previous_aligned, size);
-  
-  *(reinterpret_cast<void**>(aligned) - 1) = original;
-  return aligned;
-}
-
-/*****************************************************************************
-*** Implementation of generic aligned realloc (when no realloc can be used)***
-*****************************************************************************/
-
-void* aligned_malloc(std::size_t size);
-void  aligned_free(void *ptr);
-
-/** \internal
-  * \brief Reallocates aligned memory.
-  * Allows reallocation with aligned ptr types. This implementation will
-  * always create a new memory chunk and copy the old data.
-  */
-inline void* generic_aligned_realloc(void* ptr, size_t size, size_t old_size)
-{
-  if (ptr==0)
-    return aligned_malloc(size);
-
-  if (size==0)
-  {
-    aligned_free(ptr);
-    return 0;
-  }
-
-  void* newptr = aligned_malloc(size);
-  if (newptr == 0)
-  {
-    #ifdef EIGEN_HAS_ERRNO
-    errno = ENOMEM; // according to the standard
-    #endif
-    return 0;
-  }
-
-  if (ptr != 0)
-  {
-    std::memcpy(newptr, ptr, (std::min)(size,old_size));
-    aligned_free(ptr);
-  }
-
-  return newptr;
-}
-
-/*****************************************************************************
-*** Implementation of portable aligned versions of malloc/free/realloc     ***
-*****************************************************************************/
-
-#ifdef EIGEN_NO_MALLOC
-inline void check_that_malloc_is_allowed()
-{
-  eigen_assert(false && "heap allocation is forbidden (EIGEN_NO_MALLOC is defined)");
-}
-#elif defined EIGEN_RUNTIME_NO_MALLOC
-inline bool is_malloc_allowed_impl(bool update, bool new_value = false)
-{
-  static bool value = true;
-  if (update == 1)
-    value = new_value;
-  return value;
-}
-inline bool is_malloc_allowed() { return is_malloc_allowed_impl(false); }
-inline bool set_is_malloc_allowed(bool new_value) { return is_malloc_allowed_impl(true, new_value); }
-inline void check_that_malloc_is_allowed()
-{
-  eigen_assert(is_malloc_allowed() && "heap allocation is forbidden (EIGEN_RUNTIME_NO_MALLOC is defined and g_is_malloc_allowed is false)");
-}
-#else 
-inline void check_that_malloc_is_allowed()
-{}
-#endif
-
-/** \internal Allocates \a size bytes. The returned pointer is guaranteed to have 16 bytes alignment.
-  * On allocation error, the returned pointer is null, and std::bad_alloc is thrown.
-  */
-inline void* aligned_malloc(size_t size)
-{
-  check_that_malloc_is_allowed();
-
-  void *result;
-  #if !EIGEN_ALIGN
-    result = std::malloc(size);
-  #elif EIGEN_MALLOC_ALREADY_ALIGNED
-    result = std::malloc(size);
-  #elif EIGEN_HAS_POSIX_MEMALIGN
-    if(posix_memalign(&result, 16, size)) result = 0;
-  #elif EIGEN_HAS_MM_MALLOC
-    result = _mm_malloc(size, 16);
-#elif defined(_MSC_VER) && (!defined(_WIN32_WCE))
-    result = _aligned_malloc(size, 16);
-  #else
-    result = handmade_aligned_malloc(size);
-  #endif
-
-  if(!result && size)
-    throw_std_bad_alloc();
-
-  return result;
-}
-
-/** \internal Frees memory allocated with aligned_malloc. */
-inline void aligned_free(void *ptr)
-{
-  #if !EIGEN_ALIGN
-    std::free(ptr);
-  #elif EIGEN_MALLOC_ALREADY_ALIGNED
-    std::free(ptr);
-  #elif EIGEN_HAS_POSIX_MEMALIGN
-    std::free(ptr);
-  #elif EIGEN_HAS_MM_MALLOC
-    _mm_free(ptr);
-  #elif defined(_MSC_VER) && (!defined(_WIN32_WCE))
-    _aligned_free(ptr);
-  #else
-    handmade_aligned_free(ptr);
-  #endif
-}
-
-/**
-* \internal
-* \brief Reallocates an aligned block of memory.
-* \throws std::bad_alloc on allocation failure
-**/
-inline void* aligned_realloc(void *ptr, size_t new_size, size_t old_size)
-{
-  EIGEN_UNUSED_VARIABLE(old_size);
-
-  void *result;
-#if !EIGEN_ALIGN
-  result = std::realloc(ptr,new_size);
-#elif EIGEN_MALLOC_ALREADY_ALIGNED
-  result = std::realloc(ptr,new_size);
-#elif EIGEN_HAS_POSIX_MEMALIGN
-  result = generic_aligned_realloc(ptr,new_size,old_size);
-#elif EIGEN_HAS_MM_MALLOC
-  // The defined(_mm_free) is just here to verify that this MSVC version
-  // implements _mm_malloc/_mm_free based on the corresponding _aligned_
-  // functions. This may not always be the case and we just try to be safe.
-  #if defined(_MSC_VER) && defined(_mm_free)
-    result = _aligned_realloc(ptr,new_size,16);
-  #else
-    result = generic_aligned_realloc(ptr,new_size,old_size);
-  #endif
-#elif defined(_MSC_VER)
-  result = _aligned_realloc(ptr,new_size,16);
-#else
-  result = handmade_aligned_realloc(ptr,new_size,old_size);
-#endif
-
-  if (!result && new_size)
-    throw_std_bad_alloc();
-
-  return result;
-}
-
-/*****************************************************************************
-*** Implementation of conditionally aligned functions                      ***
-*****************************************************************************/
-
-/** \internal Allocates \a size bytes. If Align is true, then the returned ptr is 16-byte-aligned.
-  * On allocation error, the returned pointer is null, and a std::bad_alloc is thrown.
-  */
-template<bool Align> inline void* conditional_aligned_malloc(size_t size)
-{
-  return aligned_malloc(size);
-}
-
-template<> inline void* conditional_aligned_malloc<false>(size_t size)
-{
-  check_that_malloc_is_allowed();
-
-  void *result = std::malloc(size);
-  if(!result && size)
-    throw_std_bad_alloc();
-  return result;
-}
-
-/** \internal Frees memory allocated with conditional_aligned_malloc */
-template<bool Align> inline void conditional_aligned_free(void *ptr)
-{
-  aligned_free(ptr);
-}
-
-template<> inline void conditional_aligned_free<false>(void *ptr)
-{
-  std::free(ptr);
-}
-
-template<bool Align> inline void* conditional_aligned_realloc(void* ptr, size_t new_size, size_t old_size)
-{
-  return aligned_realloc(ptr, new_size, old_size);
-}
-
-template<> inline void* conditional_aligned_realloc<false>(void* ptr, size_t new_size, size_t)
-{
-  return std::realloc(ptr, new_size);
-}
-
-/*****************************************************************************
-*** Construction/destruction of array elements                             ***
-*****************************************************************************/
-
-/** \internal Constructs the elements of an array.
-  * The \a size parameter tells on how many objects to call the constructor of T.
-  */
-template<typename T> inline T* construct_elements_of_array(T *ptr, size_t size)
-{
-  for (size_t i=0; i < size; ++i) ::new (ptr + i) T;
-  return ptr;
-}
-
-/** \internal Destructs the elements of an array.
-  * The \a size parameters tells on how many objects to call the destructor of T.
-  */
-template<typename T> inline void destruct_elements_of_array(T *ptr, size_t size)
-{
-  // always destruct an array starting from the end.
-  if(ptr)
-    while(size) ptr[--size].~T();
-}
-
-/*****************************************************************************
-*** Implementation of aligned new/delete-like functions                    ***
-*****************************************************************************/
-
-template<typename T>
-EIGEN_ALWAYS_INLINE void check_size_for_overflow(size_t size)
-{
-  if(size > size_t(-1) / sizeof(T))
-    throw_std_bad_alloc();
-}
-
-/** \internal Allocates \a size objects of type T. The returned pointer is guaranteed to have 16 bytes alignment.
-  * On allocation error, the returned pointer is undefined, but a std::bad_alloc is thrown.
-  * The default constructor of T is called.
-  */
-template<typename T> inline T* aligned_new(size_t size)
-{
-  check_size_for_overflow<T>(size);
-  T *result = reinterpret_cast<T*>(aligned_malloc(sizeof(T)*size));
-  return construct_elements_of_array(result, size);
-}
-
-template<typename T, bool Align> inline T* conditional_aligned_new(size_t size)
-{
-  check_size_for_overflow<T>(size);
-  T *result = reinterpret_cast<T*>(conditional_aligned_malloc<Align>(sizeof(T)*size));
-  return construct_elements_of_array(result, size);
-}
-
-/** \internal Deletes objects constructed with aligned_new
-  * The \a size parameters tells on how many objects to call the destructor of T.
-  */
-template<typename T> inline void aligned_delete(T *ptr, size_t size)
-{
-  destruct_elements_of_array<T>(ptr, size);
-  aligned_free(ptr);
-}
-
-/** \internal Deletes objects constructed with conditional_aligned_new
-  * The \a size parameters tells on how many objects to call the destructor of T.
-  */
-template<typename T, bool Align> inline void conditional_aligned_delete(T *ptr, size_t size)
-{
-  destruct_elements_of_array<T>(ptr, size);
-  conditional_aligned_free<Align>(ptr);
-}
-
-template<typename T, bool Align> inline T* conditional_aligned_realloc_new(T* pts, size_t new_size, size_t old_size)
-{
-  check_size_for_overflow<T>(new_size);
-  check_size_for_overflow<T>(old_size);
-  if(new_size < old_size)
-    destruct_elements_of_array(pts+new_size, old_size-new_size);
-  T *result = reinterpret_cast<T*>(conditional_aligned_realloc<Align>(reinterpret_cast<void*>(pts), sizeof(T)*new_size, sizeof(T)*old_size));
-  if(new_size > old_size)
-    construct_elements_of_array(result+old_size, new_size-old_size);
-  return result;
-}
-
-
-template<typename T, bool Align> inline T* conditional_aligned_new_auto(size_t size)
-{
-  check_size_for_overflow<T>(size);
-  T *result = reinterpret_cast<T*>(conditional_aligned_malloc<Align>(sizeof(T)*size));
-  if(NumTraits<T>::RequireInitialization)
-    construct_elements_of_array(result, size);
-  return result;
-}
-
-template<typename T, bool Align> inline T* conditional_aligned_realloc_new_auto(T* pts, size_t new_size, size_t old_size)
-{
-  check_size_for_overflow<T>(new_size);
-  check_size_for_overflow<T>(old_size);
-  if(NumTraits<T>::RequireInitialization && (new_size < old_size))
-    destruct_elements_of_array(pts+new_size, old_size-new_size);
-  T *result = reinterpret_cast<T*>(conditional_aligned_realloc<Align>(reinterpret_cast<void*>(pts), sizeof(T)*new_size, sizeof(T)*old_size));
-  if(NumTraits<T>::RequireInitialization && (new_size > old_size))
-    construct_elements_of_array(result+old_size, new_size-old_size);
-  return result;
-}
-
-template<typename T, bool Align> inline void conditional_aligned_delete_auto(T *ptr, size_t size)
-{
-  if(NumTraits<T>::RequireInitialization)
-    destruct_elements_of_array<T>(ptr, size);
-  conditional_aligned_free<Align>(ptr);
-}
-
-/****************************************************************************/
-
-/** \internal Returns the index of the first element of the array that is well aligned for vectorization.
-  *
-  * \param array the address of the start of the array
-  * \param size the size of the array
-  *
-  * \note If no element of the array is well aligned, the size of the array is returned. Typically,
-  * for example with SSE, "well aligned" means 16-byte-aligned. If vectorization is disabled or if the
-  * packet size for the given scalar type is 1, then everything is considered well-aligned.
-  *
-  * \note If the scalar type is vectorizable, we rely on the following assumptions: sizeof(Scalar) is a
-  * power of 2, the packet size in bytes is also a power of 2, and is a multiple of sizeof(Scalar). On the
-  * other hand, we do not assume that the array address is a multiple of sizeof(Scalar), as that fails for
-  * example with Scalar=double on certain 32-bit platforms, see bug #79.
-  *
-  * There is also the variant first_aligned(const MatrixBase&) defined in DenseCoeffsBase.h.
-  */
-template<typename Scalar, typename Index>
-static inline Index first_aligned(const Scalar* array, Index size)
-{
-  enum { PacketSize = packet_traits<Scalar>::size,
-         PacketAlignedMask = PacketSize-1
-  };
-
-  if(PacketSize==1)
-  {
-    // Either there is no vectorization, or a packet consists of exactly 1 scalar so that all elements
-    // of the array have the same alignment.
-    return 0;
-  }
-  else if(size_t(array) & (sizeof(Scalar)-1))
-  {
-    // There is vectorization for this scalar type, but the array is not aligned to the size of a single scalar.
-    // Consequently, no element of the array is well aligned.
-    return size;
-  }
-  else
-  {
-    return std::min<Index>( (PacketSize - (Index((size_t(array)/sizeof(Scalar))) & PacketAlignedMask))
-                           & PacketAlignedMask, size);
-  }
-}
-
-/** \internal Returns the smallest integer multiple of \a base and greater or equal to \a size
-  */ 
-template<typename Index> 
-inline static Index first_multiple(Index size, Index base)
-{
-  return ((size+base-1)/base)*base;
-}
-
-// std::copy is much slower than memcpy, so let's introduce a smart_copy which
-// use memcpy on trivial types, i.e., on types that does not require an initialization ctor.
-template<typename T, bool UseMemcpy> struct smart_copy_helper;
-
-template<typename T> void smart_copy(const T* start, const T* end, T* target)
-{
-  smart_copy_helper<T,!NumTraits<T>::RequireInitialization>::run(start, end, target);
-}
-
-template<typename T> struct smart_copy_helper<T,true> {
-  static inline void run(const T* start, const T* end, T* target)
-  { memcpy(target, start, std::ptrdiff_t(end)-std::ptrdiff_t(start)); }
-};
-
-template<typename T> struct smart_copy_helper<T,false> {
-  static inline void run(const T* start, const T* end, T* target)
-  { std::copy(start, end, target); }
-};
-
-
-/*****************************************************************************
-*** Implementation of runtime stack allocation (falling back to malloc)    ***
-*****************************************************************************/
-
-// you can overwrite Eigen's default behavior regarding alloca by defining EIGEN_ALLOCA
-// to the appropriate stack allocation function
-#ifndef EIGEN_ALLOCA
-  #if (defined __linux__)
-    #define EIGEN_ALLOCA alloca
-  #elif defined(_MSC_VER)
-    #define EIGEN_ALLOCA _alloca
-  #endif
-#endif
-
-// This helper class construct the allocated memory, and takes care of destructing and freeing the handled data
-// at destruction time. In practice this helper class is mainly useful to avoid memory leak in case of exceptions.
-template<typename T> class aligned_stack_memory_handler
-{
-  public:
-    /* Creates a stack_memory_handler responsible for the buffer \a ptr of size \a size.
-     * Note that \a ptr can be 0 regardless of the other parameters.
-     * This constructor takes care of constructing/initializing the elements of the buffer if required by the scalar type T (see NumTraits<T>::RequireInitialization).
-     * In this case, the buffer elements will also be destructed when this handler will be destructed.
-     * Finally, if \a dealloc is true, then the pointer \a ptr is freed.
-     **/
-    aligned_stack_memory_handler(T* ptr, size_t size, bool dealloc)
-      : m_ptr(ptr), m_size(size), m_deallocate(dealloc)
-    {
-      if(NumTraits<T>::RequireInitialization && m_ptr)
-        Eigen::internal::construct_elements_of_array(m_ptr, size);
-    }
-    ~aligned_stack_memory_handler()
-    {
-      if(NumTraits<T>::RequireInitialization && m_ptr)
-        Eigen::internal::destruct_elements_of_array<T>(m_ptr, m_size);
-      if(m_deallocate)
-        Eigen::internal::aligned_free(m_ptr);
-    }
-  protected:
-    T* m_ptr;
-    size_t m_size;
-    bool m_deallocate;
-};
-
-} // end namespace internal
-
-/** \internal
-  * Declares, allocates and construct an aligned buffer named NAME of SIZE elements of type TYPE on the stack
-  * if SIZE is smaller than EIGEN_STACK_ALLOCATION_LIMIT, and if stack allocation is supported by the platform
-  * (currently, this is Linux and Visual Studio only). Otherwise the memory is allocated on the heap.
-  * The allocated buffer is automatically deleted when exiting the scope of this declaration.
-  * If BUFFER is non null, then the declared variable is simply an alias for BUFFER, and no allocation/deletion occurs.
-  * Here is an example:
-  * \code
-  * {
-  *   ei_declare_aligned_stack_constructed_variable(float,data,size,0);
-  *   // use data[0] to data[size-1]
-  * }
-  * \endcode
-  * The underlying stack allocation function can controlled with the EIGEN_ALLOCA preprocessor token.
-  */
-#ifdef EIGEN_ALLOCA
-
-  #ifdef __arm__
-    #define EIGEN_ALIGNED_ALLOCA(SIZE) reinterpret_cast<void*>((reinterpret_cast<size_t>(EIGEN_ALLOCA(SIZE+16)) & ~(size_t(15))) + 16)
-  #else
-    #define EIGEN_ALIGNED_ALLOCA EIGEN_ALLOCA
-  #endif
-
-  #define ei_declare_aligned_stack_constructed_variable(TYPE,NAME,SIZE,BUFFER) \
-    Eigen::internal::check_size_for_overflow<TYPE>(SIZE); \
-    TYPE* NAME = (BUFFER)!=0 ? (BUFFER) \
-               : reinterpret_cast<TYPE*>( \
-                      (sizeof(TYPE)*SIZE<=EIGEN_STACK_ALLOCATION_LIMIT) ? EIGEN_ALIGNED_ALLOCA(sizeof(TYPE)*SIZE) \
-                    : Eigen::internal::aligned_malloc(sizeof(TYPE)*SIZE) );  \
-    Eigen::internal::aligned_stack_memory_handler<TYPE> EIGEN_CAT(NAME,_stack_memory_destructor)((BUFFER)==0 ? NAME : 0,SIZE,sizeof(TYPE)*SIZE>EIGEN_STACK_ALLOCATION_LIMIT)
-
-#else
-
-  #define ei_declare_aligned_stack_constructed_variable(TYPE,NAME,SIZE,BUFFER) \
-    Eigen::internal::check_size_for_overflow<TYPE>(SIZE); \
-    TYPE* NAME = (BUFFER)!=0 ? BUFFER : reinterpret_cast<TYPE*>(Eigen::internal::aligned_malloc(sizeof(TYPE)*SIZE));    \
-    Eigen::internal::aligned_stack_memory_handler<TYPE> EIGEN_CAT(NAME,_stack_memory_destructor)((BUFFER)==0 ? NAME : 0,SIZE,true)
-    
-#endif
-
-
-/*****************************************************************************
-*** Implementation of EIGEN_MAKE_ALIGNED_OPERATOR_NEW [_IF]                ***
-*****************************************************************************/
-
-#if EIGEN_ALIGN
-  #ifdef EIGEN_EXCEPTIONS
-    #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_NOTHROW(NeedsToAlign) \
-      void* operator new(size_t size, const std::nothrow_t&) throw() { \
-        try { return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); } \
-        catch (...) { return 0; } \
-        return 0; \
-      }
-  #else
-    #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_NOTHROW(NeedsToAlign) \
-      void* operator new(size_t size, const std::nothrow_t&) throw() { \
-        return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); \
-      }
-  #endif
-
-  #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign) \
-      void *operator new(size_t size) { \
-        return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); \
-      } \
-      void *operator new[](size_t size) { \
-        return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); \
-      } \
-      void operator delete(void * ptr) throw() { Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); } \
-      void operator delete[](void * ptr) throw() { Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); } \
-      /* in-place new and delete. since (at least afaik) there is no actual   */ \
-      /* memory allocated we can safely let the default implementation handle */ \
-      /* this particular case. */ \
-      static void *operator new(size_t size, void *ptr) { return ::operator new(size,ptr); } \
-      void operator delete(void * memory, void *ptr) throw() { return ::operator delete(memory,ptr); } \
-      /* nothrow-new (returns zero instead of std::bad_alloc) */ \
-      EIGEN_MAKE_ALIGNED_OPERATOR_NEW_NOTHROW(NeedsToAlign) \
-      void operator delete(void *ptr, const std::nothrow_t&) throw() { \
-        Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); \
-      } \
-      typedef void eigen_aligned_operator_new_marker_type;
-#else
-  #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign)
-#endif
-
-#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(true)
-#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(Scalar,Size) \
-  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(bool(((Size)!=Eigen::Dynamic) && ((sizeof(Scalar)*(Size))%16==0)))
-
-/****************************************************************************/
-
-/** \class aligned_allocator
-* \ingroup Core_Module
-*
-* \brief STL compatible allocator to use with with 16 byte aligned types
-*
-* Example:
-* \code
-* // Matrix4f requires 16 bytes alignment:
-* std::map< int, Matrix4f, std::less<int>, 
-*           aligned_allocator<std::pair<const int, Matrix4f> > > my_map_mat4;
-* // Vector3f does not require 16 bytes alignment, no need to use Eigen's allocator:
-* std::map< int, Vector3f > my_map_vec3;
-* \endcode
-*
-* \sa \ref TopicStlContainers.
-*/
-template<class T>
-class aligned_allocator
-{
-public:
-    typedef size_t    size_type;
-    typedef std::ptrdiff_t difference_type;
-    typedef T*        pointer;
-    typedef const T*  const_pointer;
-    typedef T&        reference;
-    typedef const T&  const_reference;
-    typedef T         value_type;
-
-    template<class U>
-    struct rebind
-    {
-        typedef aligned_allocator<U> other;
-    };
-
-    pointer address( reference value ) const
-    {
-        return &value;
-    }
-
-    const_pointer address( const_reference value ) const
-    {
-        return &value;
-    }
-
-    aligned_allocator()
-    {
-    }
-
-    aligned_allocator( const aligned_allocator& )
-    {
-    }
-
-    template<class U>
-    aligned_allocator( const aligned_allocator<U>& )
-    {
-    }
-
-    ~aligned_allocator()
-    {
-    }
-
-    size_type max_size() const
-    {
-        return (std::numeric_limits<size_type>::max)();
-    }
-
-    pointer allocate( size_type num, const void* hint = 0 )
-    {
-        EIGEN_UNUSED_VARIABLE(hint);
-        internal::check_size_for_overflow<T>(num);
-        return static_cast<pointer>( internal::aligned_malloc( num * sizeof(T) ) );
-    }
-
-    void construct( pointer p, const T& value )
-    {
-        ::new( p ) T( value );
-    }
-
-    // Support for c++11
-#if (__cplusplus >= 201103L)
-    template<typename... Args>
-    void  construct(pointer p, Args&&... args)
-    {
-      ::new(p) T(std::forward<Args>(args)...);
-    }
-#endif
-
-    void destroy( pointer p )
-    {
-        p->~T();
-    }
-
-    void deallocate( pointer p, size_type /*num*/ )
-    {
-        internal::aligned_free( p );
-    }
-
-    bool operator!=(const aligned_allocator<T>& ) const
-    { return false; }
-
-    bool operator==(const aligned_allocator<T>& ) const
-    { return true; }
-};
-
-//---------- Cache sizes ----------
-
-#if !defined(EIGEN_NO_CPUID)
-#  if defined(__GNUC__) && ( defined(__i386__) || defined(__x86_64__) )
-#    if defined(__PIC__) && defined(__i386__)
-       // Case for x86 with PIC
-#      define EIGEN_CPUID(abcd,func,id) \
-         __asm__ __volatile__ ("xchgl %%ebx, %k1;cpuid; xchgl %%ebx,%k1": "=a" (abcd[0]), "=&r" (abcd[1]), "=c" (abcd[2]), "=d" (abcd[3]) : "a" (func), "c" (id));
-#    elif defined(__PIC__) && defined(__x86_64__)
-       // Case for x64 with PIC. In theory this is only a problem with recent gcc and with medium or large code model, not with the default small code model.
-       // However, we cannot detect which code model is used, and the xchg overhead is negligible anyway.
-#      define EIGEN_CPUID(abcd,func,id) \
-        __asm__ __volatile__ ("xchg{q}\t{%%}rbx, %q1; cpuid; xchg{q}\t{%%}rbx, %q1": "=a" (abcd[0]), "=&r" (abcd[1]), "=c" (abcd[2]), "=d" (abcd[3]) : "0" (func), "2" (id));
-#    else
-       // Case for x86_64 or x86 w/o PIC
-#      define EIGEN_CPUID(abcd,func,id) \
-         __asm__ __volatile__ ("cpuid": "=a" (abcd[0]), "=b" (abcd[1]), "=c" (abcd[2]), "=d" (abcd[3]) : "0" (func), "2" (id) );
-#    endif
-#  elif defined(_MSC_VER)
-#    if (_MSC_VER > 1500) && ( defined(_M_IX86) || defined(_M_X64) )
-#      define EIGEN_CPUID(abcd,func,id) __cpuidex((int*)abcd,func,id)
-#    endif
-#  endif
-#endif
-
-namespace internal {
-
-#ifdef EIGEN_CPUID
-
-inline bool cpuid_is_vendor(int abcd[4], const char* vendor)
-{
-  return abcd[1]==(reinterpret_cast<const int*>(vendor))[0] && abcd[3]==(reinterpret_cast<const int*>(vendor))[1] && abcd[2]==(reinterpret_cast<const int*>(vendor))[2];
-}
-
-inline void queryCacheSizes_intel_direct(int& l1, int& l2, int& l3)
-{
-  int abcd[4];
-  l1 = l2 = l3 = 0;
-  int cache_id = 0;
-  int cache_type = 0;
-  do {
-    abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
-    EIGEN_CPUID(abcd,0x4,cache_id);
-    cache_type  = (abcd[0] & 0x0F) >> 0;
-    if(cache_type==1||cache_type==3) // data or unified cache
-    {
-      int cache_level = (abcd[0] & 0xE0) >> 5;  // A[7:5]
-      int ways        = (abcd[1] & 0xFFC00000) >> 22; // B[31:22]
-      int partitions  = (abcd[1] & 0x003FF000) >> 12; // B[21:12]
-      int line_size   = (abcd[1] & 0x00000FFF) >>  0; // B[11:0]
-      int sets        = (abcd[2]);                    // C[31:0]
-
-      int cache_size = (ways+1) * (partitions+1) * (line_size+1) * (sets+1);
-
-      switch(cache_level)
-      {
-        case 1: l1 = cache_size; break;
-        case 2: l2 = cache_size; break;
-        case 3: l3 = cache_size; break;
-        default: break;
-      }
-    }
-    cache_id++;
-  } while(cache_type>0 && cache_id<16);
-}
-
-inline void queryCacheSizes_intel_codes(int& l1, int& l2, int& l3)
-{
-  int abcd[4];
-  abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
-  l1 = l2 = l3 = 0;
-  EIGEN_CPUID(abcd,0x00000002,0);
-  unsigned char * bytes = reinterpret_cast<unsigned char *>(abcd)+2;
-  bool check_for_p2_core2 = false;
-  for(int i=0; i<14; ++i)
-  {
-    switch(bytes[i])
-    {
-      case 0x0A: l1 = 8; break;   // 0Ah   data L1 cache, 8 KB, 2 ways, 32 byte lines
-      case 0x0C: l1 = 16; break;  // 0Ch   data L1 cache, 16 KB, 4 ways, 32 byte lines
-      case 0x0E: l1 = 24; break;  // 0Eh   data L1 cache, 24 KB, 6 ways, 64 byte lines
-      case 0x10: l1 = 16; break;  // 10h   data L1 cache, 16 KB, 4 ways, 32 byte lines (IA-64)
-      case 0x15: l1 = 16; break;  // 15h   code L1 cache, 16 KB, 4 ways, 32 byte lines (IA-64)
-      case 0x2C: l1 = 32; break;  // 2Ch   data L1 cache, 32 KB, 8 ways, 64 byte lines
-      case 0x30: l1 = 32; break;  // 30h   code L1 cache, 32 KB, 8 ways, 64 byte lines
-      case 0x60: l1 = 16; break;  // 60h   data L1 cache, 16 KB, 8 ways, 64 byte lines, sectored
-      case 0x66: l1 = 8; break;   // 66h   data L1 cache, 8 KB, 4 ways, 64 byte lines, sectored
-      case 0x67: l1 = 16; break;  // 67h   data L1 cache, 16 KB, 4 ways, 64 byte lines, sectored
-      case 0x68: l1 = 32; break;  // 68h   data L1 cache, 32 KB, 4 ways, 64 byte lines, sectored
-      case 0x1A: l2 = 96; break;   // code and data L2 cache, 96 KB, 6 ways, 64 byte lines (IA-64)
-      case 0x22: l3 = 512; break;   // code and data L3 cache, 512 KB, 4 ways (!), 64 byte lines, dual-sectored
-      case 0x23: l3 = 1024; break;   // code and data L3 cache, 1024 KB, 8 ways, 64 byte lines, dual-sectored
-      case 0x25: l3 = 2048; break;   // code and data L3 cache, 2048 KB, 8 ways, 64 byte lines, dual-sectored
-      case 0x29: l3 = 4096; break;   // code and data L3 cache, 4096 KB, 8 ways, 64 byte lines, dual-sectored
-      case 0x39: l2 = 128; break;   // code and data L2 cache, 128 KB, 4 ways, 64 byte lines, sectored
-      case 0x3A: l2 = 192; break;   // code and data L2 cache, 192 KB, 6 ways, 64 byte lines, sectored
-      case 0x3B: l2 = 128; break;   // code and data L2 cache, 128 KB, 2 ways, 64 byte lines, sectored
-      case 0x3C: l2 = 256; break;   // code and data L2 cache, 256 KB, 4 ways, 64 byte lines, sectored
-      case 0x3D: l2 = 384; break;   // code and data L2 cache, 384 KB, 6 ways, 64 byte lines, sectored
-      case 0x3E: l2 = 512; break;   // code and data L2 cache, 512 KB, 4 ways, 64 byte lines, sectored
-      case 0x40: l2 = 0; break;   // no integrated L2 cache (P6 core) or L3 cache (P4 core)
-      case 0x41: l2 = 128; break;   // code and data L2 cache, 128 KB, 4 ways, 32 byte lines
-      case 0x42: l2 = 256; break;   // code and data L2 cache, 256 KB, 4 ways, 32 byte lines
-      case 0x43: l2 = 512; break;   // code and data L2 cache, 512 KB, 4 ways, 32 byte lines
-      case 0x44: l2 = 1024; break;   // code and data L2 cache, 1024 KB, 4 ways, 32 byte lines
-      case 0x45: l2 = 2048; break;   // code and data L2 cache, 2048 KB, 4 ways, 32 byte lines
-      case 0x46: l3 = 4096; break;   // code and data L3 cache, 4096 KB, 4 ways, 64 byte lines
-      case 0x47: l3 = 8192; break;   // code and data L3 cache, 8192 KB, 8 ways, 64 byte lines
-      case 0x48: l2 = 3072; break;   // code and data L2 cache, 3072 KB, 12 ways, 64 byte lines
-      case 0x49: if(l2!=0) l3 = 4096; else {check_for_p2_core2=true; l3 = l2 = 4096;} break;// code and data L3 cache, 4096 KB, 16 ways, 64 byte lines (P4) or L2 for core2
-      case 0x4A: l3 = 6144; break;   // code and data L3 cache, 6144 KB, 12 ways, 64 byte lines
-      case 0x4B: l3 = 8192; break;   // code and data L3 cache, 8192 KB, 16 ways, 64 byte lines
-      case 0x4C: l3 = 12288; break;   // code and data L3 cache, 12288 KB, 12 ways, 64 byte lines
-      case 0x4D: l3 = 16384; break;   // code and data L3 cache, 16384 KB, 16 ways, 64 byte lines
-      case 0x4E: l2 = 6144; break;   // code and data L2 cache, 6144 KB, 24 ways, 64 byte lines
-      case 0x78: l2 = 1024; break;   // code and data L2 cache, 1024 KB, 4 ways, 64 byte lines
-      case 0x79: l2 = 128; break;   // code and data L2 cache, 128 KB, 8 ways, 64 byte lines, dual-sectored
-      case 0x7A: l2 = 256; break;   // code and data L2 cache, 256 KB, 8 ways, 64 byte lines, dual-sectored
-      case 0x7B: l2 = 512; break;   // code and data L2 cache, 512 KB, 8 ways, 64 byte lines, dual-sectored
-      case 0x7C: l2 = 1024; break;   // code and data L2 cache, 1024 KB, 8 ways, 64 byte lines, dual-sectored
-      case 0x7D: l2 = 2048; break;   // code and data L2 cache, 2048 KB, 8 ways, 64 byte lines
-      case 0x7E: l2 = 256; break;   // code and data L2 cache, 256 KB, 8 ways, 128 byte lines, sect. (IA-64)
-      case 0x7F: l2 = 512; break;   // code and data L2 cache, 512 KB, 2 ways, 64 byte lines
-      case 0x80: l2 = 512; break;   // code and data L2 cache, 512 KB, 8 ways, 64 byte lines
-      case 0x81: l2 = 128; break;   // code and data L2 cache, 128 KB, 8 ways, 32 byte lines
-      case 0x82: l2 = 256; break;   // code and data L2 cache, 256 KB, 8 ways, 32 byte lines
-      case 0x83: l2 = 512; break;   // code and data L2 cache, 512 KB, 8 ways, 32 byte lines
-      case 0x84: l2 = 1024; break;   // code and data L2 cache, 1024 KB, 8 ways, 32 byte lines
-      case 0x85: l2 = 2048; break;   // code and data L2 cache, 2048 KB, 8 ways, 32 byte lines
-      case 0x86: l2 = 512; break;   // code and data L2 cache, 512 KB, 4 ways, 64 byte lines
-      case 0x87: l2 = 1024; break;   // code and data L2 cache, 1024 KB, 8 ways, 64 byte lines
-      case 0x88: l3 = 2048; break;   // code and data L3 cache, 2048 KB, 4 ways, 64 byte lines (IA-64)
-      case 0x89: l3 = 4096; break;   // code and data L3 cache, 4096 KB, 4 ways, 64 byte lines (IA-64)
-      case 0x8A: l3 = 8192; break;   // code and data L3 cache, 8192 KB, 4 ways, 64 byte lines (IA-64)
-      case 0x8D: l3 = 3072; break;   // code and data L3 cache, 3072 KB, 12 ways, 128 byte lines (IA-64)
-
-      default: break;
-    }
-  }
-  if(check_for_p2_core2 && l2 == l3)
-    l3 = 0;
-  l1 *= 1024;
-  l2 *= 1024;
-  l3 *= 1024;
-}
-
-inline void queryCacheSizes_intel(int& l1, int& l2, int& l3, int max_std_funcs)
-{
-  if(max_std_funcs>=4)
-    queryCacheSizes_intel_direct(l1,l2,l3);
-  else
-    queryCacheSizes_intel_codes(l1,l2,l3);
-}
-
-inline void queryCacheSizes_amd(int& l1, int& l2, int& l3)
-{
-  int abcd[4];
-  abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
-  EIGEN_CPUID(abcd,0x80000005,0);
-  l1 = (abcd[2] >> 24) * 1024; // C[31:24] = L1 size in KB
-  abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
-  EIGEN_CPUID(abcd,0x80000006,0);
-  l2 = (abcd[2] >> 16) * 1024; // C[31;16] = l2 cache size in KB
-  l3 = ((abcd[3] & 0xFFFC000) >> 18) * 512 * 1024; // D[31;18] = l3 cache size in 512KB
-}
-#endif
-
-/** \internal
- * Queries and returns the cache sizes in Bytes of the L1, L2, and L3 data caches respectively */
-inline void queryCacheSizes(int& l1, int& l2, int& l3)
-{
-  #ifdef EIGEN_CPUID
-  int abcd[4];
-
-  // identify the CPU vendor
-  EIGEN_CPUID(abcd,0x0,0);
-  int max_std_funcs = abcd[1];
-  if(cpuid_is_vendor(abcd,"GenuineIntel"))
-    queryCacheSizes_intel(l1,l2,l3,max_std_funcs);
-  else if(cpuid_is_vendor(abcd,"AuthenticAMD") || cpuid_is_vendor(abcd,"AMDisbetter!"))
-    queryCacheSizes_amd(l1,l2,l3);
-  else
-    // by default let's use Intel's API
-    queryCacheSizes_intel(l1,l2,l3,max_std_funcs);
-
-  // here is the list of other vendors:
-//   ||cpuid_is_vendor(abcd,"VIA VIA VIA ")
-//   ||cpuid_is_vendor(abcd,"CyrixInstead")
-//   ||cpuid_is_vendor(abcd,"CentaurHauls")
-//   ||cpuid_is_vendor(abcd,"GenuineTMx86")
-//   ||cpuid_is_vendor(abcd,"TransmetaCPU")
-//   ||cpuid_is_vendor(abcd,"RiseRiseRise")
-//   ||cpuid_is_vendor(abcd,"Geode by NSC")
-//   ||cpuid_is_vendor(abcd,"SiS SiS SiS ")
-//   ||cpuid_is_vendor(abcd,"UMC UMC UMC ")
-//   ||cpuid_is_vendor(abcd,"NexGenDriven")
-  #else
-  l1 = l2 = l3 = -1;
-  #endif
-}
-
-/** \internal
- * \returns the size in Bytes of the L1 data cache */
-inline int queryL1CacheSize()
-{
-  int l1(-1), l2, l3;
-  queryCacheSizes(l1,l2,l3);
-  return l1;
-}
-
-/** \internal
- * \returns the size in Bytes of the L2 or L3 cache if this later is present */
-inline int queryTopLevelCacheSize()
-{
-  int l1, l2(-1), l3(-1);
-  queryCacheSizes(l1,l2,l3);
-  return (std::max)(l2,l3);
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_MEMORY_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/util/StaticAssert.h b/vendor/eigen-3.1.91/Eigen/src/Core/util/StaticAssert.h
deleted file mode 100644
index 8872c5b..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/util/StaticAssert.h
+++ /dev/null
@@ -1,206 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_STATIC_ASSERT_H
-#define EIGEN_STATIC_ASSERT_H
-
-/* Some notes on Eigen's static assertion mechanism:
- *
- *  - in EIGEN_STATIC_ASSERT(CONDITION,MSG) the parameter CONDITION must be a compile time boolean
- *    expression, and MSG an enum listed in struct internal::static_assertion<true>
- *
- *  - define EIGEN_NO_STATIC_ASSERT to disable them (and save compilation time)
- *    in that case, the static assertion is converted to the following runtime assert:
- *      eigen_assert(CONDITION && "MSG")
- *
- *  - currently EIGEN_STATIC_ASSERT can only be used in function scope
- *
- */
-
-#ifndef EIGEN_NO_STATIC_ASSERT
-
-  #if defined(__GXX_EXPERIMENTAL_CXX0X__) || (defined(_MSC_VER) && (_MSC_VER >= 1600))
-
-    // if native static_assert is enabled, let's use it
-    #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
-
-  #else // not CXX0X
-
-    namespace Eigen {
-
-    namespace internal {
-
-    template<bool condition>
-    struct static_assertion {};
-
-    template<>
-    struct static_assertion<true>
-    {
-      enum {
-        YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX,
-        YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES,
-        YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES,
-        THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE,
-        THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE,
-        THIS_METHOD_IS_ONLY_FOR_OBJECTS_OF_A_SPECIFIC_SIZE,
-        YOU_MADE_A_PROGRAMMING_MISTAKE,
-        EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT,
-        EIGEN_INTERNAL_COMPILATION_ERROR_OR_YOU_MADE_A_PROGRAMMING_MISTAKE,
-        YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR,
-        YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR,
-        UNALIGNED_LOAD_AND_STORE_OPERATIONS_UNIMPLEMENTED_ON_ALTIVEC,
-        THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES,
-        FLOATING_POINT_ARGUMENT_PASSED__INTEGER_WAS_EXPECTED,
-        NUMERIC_TYPE_MUST_BE_REAL,
-        COEFFICIENT_WRITE_ACCESS_TO_SELFADJOINT_NOT_SUPPORTED,
-        WRITING_TO_TRIANGULAR_PART_WITH_UNIT_DIAGONAL_IS_NOT_SUPPORTED,
-        THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE,
-        INVALID_MATRIX_PRODUCT,
-        INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS,
-        INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION,
-        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY,
-        THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES,
-        THIS_METHOD_IS_ONLY_FOR_ROW_MAJOR_MATRICES,
-        INVALID_MATRIX_TEMPLATE_PARAMETERS,
-        INVALID_MATRIXBASE_TEMPLATE_PARAMETERS,
-        BOTH_MATRICES_MUST_HAVE_THE_SAME_STORAGE_ORDER,
-        THIS_METHOD_IS_ONLY_FOR_DIAGONAL_MATRIX,
-        THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE,
-        THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_WITH_DIRECT_MEMORY_ACCESS_SUCH_AS_MAP_OR_PLAIN_MATRICES,
-        YOU_ALREADY_SPECIFIED_THIS_STRIDE,
-        INVALID_STORAGE_ORDER_FOR_THIS_VECTOR_EXPRESSION,
-        THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD,
-        PACKET_ACCESS_REQUIRES_TO_HAVE_INNER_STRIDE_FIXED_TO_1,
-        THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS,
-        YOU_CANNOT_MIX_ARRAYS_AND_MATRICES,
-        YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION,
-        THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY,
-        YOU_ARE_TRYING_TO_USE_AN_INDEX_BASED_ACCESSOR_ON_AN_EXPRESSION_THAT_DOES_NOT_SUPPORT_THAT,
-        THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS,
-        THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL,
-        THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES,
-        YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED,
-        YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED,
-        THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE,
-        THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH,
-        OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG
-      };
-    };
-
-    } // end namespace internal
-
-    } // end namespace Eigen
-
-    // Specialized implementation for MSVC to avoid "conditional
-    // expression is constant" warnings.  This implementation doesn't
-    // appear to work under GCC, hence the multiple implementations.
-    #ifdef _MSC_VER
-
-      #define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
-        {Eigen::internal::static_assertion<bool(CONDITION)>::MSG;}
-
-    #else
-
-      #define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
-        if (Eigen::internal::static_assertion<bool(CONDITION)>::MSG) {}
-
-    #endif
-
-  #endif // not CXX0X
-
-#else // EIGEN_NO_STATIC_ASSERT
-
-  #define EIGEN_STATIC_ASSERT(CONDITION,MSG) eigen_assert((CONDITION) && #MSG);
-
-#endif // EIGEN_NO_STATIC_ASSERT
-
-
-// static assertion failing if the type \a TYPE is not a vector type
-#define EIGEN_STATIC_ASSERT_VECTOR_ONLY(TYPE) \
-  EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime, \
-                      YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX)
-
-// static assertion failing if the type \a TYPE is not fixed-size
-#define EIGEN_STATIC_ASSERT_FIXED_SIZE(TYPE) \
-  EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime!=Eigen::Dynamic, \
-                      YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR)
-
-// static assertion failing if the type \a TYPE is not dynamic-size
-#define EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(TYPE) \
-  EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime==Eigen::Dynamic, \
-                      YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR)
-
-// static assertion failing if the type \a TYPE is not a vector type of the given size
-#define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE) \
-  EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime && TYPE::SizeAtCompileTime==SIZE, \
-                      THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE)
-
-// static assertion failing if the type \a TYPE is not a vector type of the given size
-#define EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(TYPE, ROWS, COLS) \
-  EIGEN_STATIC_ASSERT(TYPE::RowsAtCompileTime==ROWS && TYPE::ColsAtCompileTime==COLS, \
-                      THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE)
-
-// static assertion failing if the two vector expression types are not compatible (same fixed-size or dynamic size)
-#define EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(TYPE0,TYPE1) \
-  EIGEN_STATIC_ASSERT( \
-      (int(TYPE0::SizeAtCompileTime)==Eigen::Dynamic \
-    || int(TYPE1::SizeAtCompileTime)==Eigen::Dynamic \
-    || int(TYPE0::SizeAtCompileTime)==int(TYPE1::SizeAtCompileTime)),\
-    YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES)
-
-#define EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0,TYPE1) \
-     ( \
-        (int(TYPE0::SizeAtCompileTime)==0 && int(TYPE1::SizeAtCompileTime)==0) \
-    || (\
-          (int(TYPE0::RowsAtCompileTime)==Eigen::Dynamic \
-        || int(TYPE1::RowsAtCompileTime)==Eigen::Dynamic \
-        || int(TYPE0::RowsAtCompileTime)==int(TYPE1::RowsAtCompileTime)) \
-      &&  (int(TYPE0::ColsAtCompileTime)==Eigen::Dynamic \
-        || int(TYPE1::ColsAtCompileTime)==Eigen::Dynamic \
-        || int(TYPE0::ColsAtCompileTime)==int(TYPE1::ColsAtCompileTime))\
-       ) \
-     )
-
-#ifdef EIGEN2_SUPPORT
-  #define EIGEN_STATIC_ASSERT_NON_INTEGER(TYPE) \
-    eigen_assert(!NumTraits<Scalar>::IsInteger);
-#else
-  #define EIGEN_STATIC_ASSERT_NON_INTEGER(TYPE) \
-    EIGEN_STATIC_ASSERT(!NumTraits<TYPE>::IsInteger, THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES)
-#endif
-
-
-// static assertion failing if it is guaranteed at compile-time that the two matrix expression types have different sizes
-#define EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(TYPE0,TYPE1) \
-  EIGEN_STATIC_ASSERT( \
-     EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0,TYPE1),\
-    YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES)
-
-#define EIGEN_STATIC_ASSERT_SIZE_1x1(TYPE) \
-      EIGEN_STATIC_ASSERT((TYPE::RowsAtCompileTime == 1 || TYPE::RowsAtCompileTime == Dynamic) && \
-                          (TYPE::ColsAtCompileTime == 1 || TYPE::ColsAtCompileTime == Dynamic), \
-                          THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS)
-
-#define EIGEN_STATIC_ASSERT_LVALUE(Derived) \
-      EIGEN_STATIC_ASSERT(internal::is_lvalue<Derived>::value, \
-                          THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
-
-#define EIGEN_STATIC_ASSERT_ARRAYXPR(Derived) \
-      EIGEN_STATIC_ASSERT((internal::is_same<typename internal::traits<Derived>::XprKind, ArrayXpr>::value), \
-                          THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES)
-
-#define EIGEN_STATIC_ASSERT_SAME_XPR_KIND(Derived1, Derived2) \
-      EIGEN_STATIC_ASSERT((internal::is_same<typename internal::traits<Derived1>::XprKind, \
-                                             typename internal::traits<Derived2>::XprKind \
-                                            >::value), \
-                          YOU_CANNOT_MIX_ARRAYS_AND_MATRICES)
-
-
-#endif // EIGEN_STATIC_ASSERT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/util/XprHelper.h b/vendor/eigen-3.1.91/Eigen/src/Core/util/XprHelper.h
deleted file mode 100644
index 3d1290c..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Core/util/XprHelper.h
+++ /dev/null
@@ -1,468 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_XPRHELPER_H
-#define EIGEN_XPRHELPER_H
-
-// just a workaround because GCC seems to not really like empty structs
-// FIXME: gcc 4.3 generates bad code when strict-aliasing is enabled
-// so currently we simply disable this optimization for gcc 4.3
-#if (defined __GNUG__) && !((__GNUC__==4) && (__GNUC_MINOR__==3))
-  #define EIGEN_EMPTY_STRUCT_CTOR(X) \
-    EIGEN_STRONG_INLINE X() {} \
-    EIGEN_STRONG_INLINE X(const X& ) {}
-#else
-  #define EIGEN_EMPTY_STRUCT_CTOR(X)
-#endif
-
-namespace Eigen {
-
-typedef EIGEN_DEFAULT_DENSE_INDEX_TYPE DenseIndex;
-
-namespace internal {
-
-//classes inheriting no_assignment_operator don't generate a default operator=.
-class no_assignment_operator
-{
-  private:
-    no_assignment_operator& operator=(const no_assignment_operator&);
-};
-
-/** \internal return the index type with the largest number of bits */
-template<typename I1, typename I2>
-struct promote_index_type
-{
-  typedef typename conditional<(sizeof(I1)<sizeof(I2)), I2, I1>::type type;
-};
-
-/** \internal If the template parameter Value is Dynamic, this class is just a wrapper around a T variable that
-  * can be accessed using value() and setValue().
-  * Otherwise, this class is an empty structure and value() just returns the template parameter Value.
-  */
-template<typename T, int Value> class variable_if_dynamic
-{
-  public:
-    EIGEN_EMPTY_STRUCT_CTOR(variable_if_dynamic)
-    explicit variable_if_dynamic(T v) { EIGEN_ONLY_USED_FOR_DEBUG(v); assert(v == T(Value)); }
-    static T value() { return T(Value); }
-    void setValue(T) {}
-};
-
-template<typename T> class variable_if_dynamic<T, Dynamic>
-{
-    T m_value;
-    variable_if_dynamic() { assert(false); }
-  public:
-    explicit variable_if_dynamic(T value) : m_value(value) {}
-    T value() const { return m_value; }
-    void setValue(T value) { m_value = value; }
-};
-
-/** \internal like variable_if_dynamic but for DynamicIndex
-  */
-template<typename T, int Value> class variable_if_dynamicindex
-{
-  public:
-    EIGEN_EMPTY_STRUCT_CTOR(variable_if_dynamicindex)
-    explicit variable_if_dynamicindex(T v) { EIGEN_ONLY_USED_FOR_DEBUG(v); assert(v == T(Value)); }
-    static T value() { return T(Value); }
-    void setValue(T) {}
-};
-
-template<typename T> class variable_if_dynamicindex<T, DynamicIndex>
-{
-    T m_value;
-    variable_if_dynamicindex() { assert(false); }
-  public:
-    explicit variable_if_dynamicindex(T value) : m_value(value) {}
-    T value() const { return m_value; }
-    void setValue(T value) { m_value = value; }
-};
-
-template<typename T> struct functor_traits
-{
-  enum
-  {
-    Cost = 10,
-    PacketAccess = false
-  };
-};
-
-template<typename T> struct packet_traits;
-
-template<typename T> struct unpacket_traits
-{
-  typedef T type;
-  enum {size=1};
-};
-
-template<typename _Scalar, int _Rows, int _Cols,
-         int _Options = AutoAlign |
-                          ( (_Rows==1 && _Cols!=1) ? RowMajor
-                          : (_Cols==1 && _Rows!=1) ? ColMajor
-                          : EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ),
-         int _MaxRows = _Rows,
-         int _MaxCols = _Cols
-> class make_proper_matrix_type
-{
-    enum {
-      IsColVector = _Cols==1 && _Rows!=1,
-      IsRowVector = _Rows==1 && _Cols!=1,
-      Options = IsColVector ? (_Options | ColMajor) & ~RowMajor
-              : IsRowVector ? (_Options | RowMajor) & ~ColMajor
-              : _Options
-    };
-  public:
-    typedef Matrix<_Scalar, _Rows, _Cols, Options, _MaxRows, _MaxCols> type;
-};
-
-template<typename Scalar, int Rows, int Cols, int Options, int MaxRows, int MaxCols>
-class compute_matrix_flags
-{
-    enum {
-      row_major_bit = Options&RowMajor ? RowMajorBit : 0,
-      is_dynamic_size_storage = MaxRows==Dynamic || MaxCols==Dynamic,
-
-      aligned_bit =
-      (
-            ((Options&DontAlign)==0)
-        && (
-#if EIGEN_ALIGN_STATICALLY
-             ((!is_dynamic_size_storage) && (((MaxCols*MaxRows*int(sizeof(Scalar))) % 16) == 0))
-#else
-             0
-#endif
-
-          ||
-
-#if EIGEN_ALIGN
-             is_dynamic_size_storage
-#else
-             0
-#endif
-
-          )
-      ) ? AlignedBit : 0,
-      packet_access_bit = packet_traits<Scalar>::Vectorizable && aligned_bit ? PacketAccessBit : 0
-    };
-
-  public:
-    enum { ret = LinearAccessBit | LvalueBit | DirectAccessBit | NestByRefBit | packet_access_bit | row_major_bit | aligned_bit };
-};
-
-template<int _Rows, int _Cols> struct size_at_compile_time
-{
-  enum { ret = (_Rows==Dynamic || _Cols==Dynamic) ? Dynamic : _Rows * _Cols };
-};
-
-/* plain_matrix_type : the difference from eval is that plain_matrix_type is always a plain matrix type,
- * whereas eval is a const reference in the case of a matrix
- */
-
-template<typename T, typename StorageKind = typename traits<T>::StorageKind> struct plain_matrix_type;
-template<typename T, typename BaseClassType> struct plain_matrix_type_dense;
-template<typename T> struct plain_matrix_type<T,Dense>
-{
-  typedef typename plain_matrix_type_dense<T,typename traits<T>::XprKind>::type type;
-};
-
-template<typename T> struct plain_matrix_type_dense<T,MatrixXpr>
-{
-  typedef Matrix<typename traits<T>::Scalar,
-                traits<T>::RowsAtCompileTime,
-                traits<T>::ColsAtCompileTime,
-                AutoAlign | (traits<T>::Flags&RowMajorBit ? RowMajor : ColMajor),
-                traits<T>::MaxRowsAtCompileTime,
-                traits<T>::MaxColsAtCompileTime
-          > type;
-};
-
-template<typename T> struct plain_matrix_type_dense<T,ArrayXpr>
-{
-  typedef Array<typename traits<T>::Scalar,
-                traits<T>::RowsAtCompileTime,
-                traits<T>::ColsAtCompileTime,
-                AutoAlign | (traits<T>::Flags&RowMajorBit ? RowMajor : ColMajor),
-                traits<T>::MaxRowsAtCompileTime,
-                traits<T>::MaxColsAtCompileTime
-          > type;
-};
-
-/* eval : the return type of eval(). For matrices, this is just a const reference
- * in order to avoid a useless copy
- */
-
-template<typename T, typename StorageKind = typename traits<T>::StorageKind> struct eval;
-
-template<typename T> struct eval<T,Dense>
-{
-  typedef typename plain_matrix_type<T>::type type;
-//   typedef typename T::PlainObject type;
-//   typedef T::Matrix<typename traits<T>::Scalar,
-//                 traits<T>::RowsAtCompileTime,
-//                 traits<T>::ColsAtCompileTime,
-//                 AutoAlign | (traits<T>::Flags&RowMajorBit ? RowMajor : ColMajor),
-//                 traits<T>::MaxRowsAtCompileTime,
-//                 traits<T>::MaxColsAtCompileTime
-//           > type;
-};
-
-// for matrices, no need to evaluate, just use a const reference to avoid a useless copy
-template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
-struct eval<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>, Dense>
-{
-  typedef const Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& type;
-};
-
-template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
-struct eval<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>, Dense>
-{
-  typedef const Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& type;
-};
-
-
-
-/* plain_matrix_type_column_major : same as plain_matrix_type but guaranteed to be column-major
- */
-template<typename T> struct plain_matrix_type_column_major
-{
-  enum { Rows = traits<T>::RowsAtCompileTime,
-         Cols = traits<T>::ColsAtCompileTime,
-         MaxRows = traits<T>::MaxRowsAtCompileTime,
-         MaxCols = traits<T>::MaxColsAtCompileTime
-  };
-  typedef Matrix<typename traits<T>::Scalar,
-                Rows,
-                Cols,
-                (MaxRows==1&&MaxCols!=1) ? RowMajor : ColMajor,
-                MaxRows,
-                MaxCols
-          > type;
-};
-
-/* plain_matrix_type_row_major : same as plain_matrix_type but guaranteed to be row-major
- */
-template<typename T> struct plain_matrix_type_row_major
-{
-  enum { Rows = traits<T>::RowsAtCompileTime,
-         Cols = traits<T>::ColsAtCompileTime,
-         MaxRows = traits<T>::MaxRowsAtCompileTime,
-         MaxCols = traits<T>::MaxColsAtCompileTime
-  };
-  typedef Matrix<typename traits<T>::Scalar,
-                Rows,
-                Cols,
-                (MaxCols==1&&MaxRows!=1) ? RowMajor : ColMajor,
-                MaxRows,
-                MaxCols
-          > type;
-};
-
-// we should be able to get rid of this one too
-template<typename T> struct must_nest_by_value { enum { ret = false }; };
-
-/** \internal The reference selector for template expressions. The idea is that we don't
-  * need to use references for expressions since they are light weight proxy
-  * objects which should generate no copying overhead. */
-template <typename T>
-struct ref_selector
-{
-  typedef typename conditional<
-    bool(traits<T>::Flags & NestByRefBit),
-    T const&,
-    const T
-  >::type type;
-};
-
-/** \internal Adds the const qualifier on the value-type of T2 if and only if T1 is a const type */
-template<typename T1, typename T2>
-struct transfer_constness
-{
-  typedef typename conditional<
-    bool(internal::is_const<T1>::value),
-    typename internal::add_const_on_value_type<T2>::type,
-    T2
-  >::type type;
-};
-
-/** \internal Determines how a given expression should be nested into another one.
-  * For example, when you do a * (b+c), Eigen will determine how the expression b+c should be
-  * nested into the bigger product expression. The choice is between nesting the expression b+c as-is, or
-  * evaluating that expression b+c into a temporary variable d, and nest d so that the resulting expression is
-  * a*d. Evaluating can be beneficial for example if every coefficient access in the resulting expression causes
-  * many coefficient accesses in the nested expressions -- as is the case with matrix product for example.
-  *
-  * \param T the type of the expression being nested
-  * \param n the number of coefficient accesses in the nested expression for each coefficient access in the bigger expression.
-  *
-  * Note that if no evaluation occur, then the constness of T is preserved.
-  *
-  * Example. Suppose that a, b, and c are of type Matrix3d. The user forms the expression a*(b+c).
-  * b+c is an expression "sum of matrices", which we will denote by S. In order to determine how to nest it,
-  * the Product expression uses: nested<S, 3>::ret, which turns out to be Matrix3d because the internal logic of
-  * nested determined that in this case it was better to evaluate the expression b+c into a temporary. On the other hand,
-  * since a is of type Matrix3d, the Product expression nests it as nested<Matrix3d, 3>::ret, which turns out to be
-  * const Matrix3d&, because the internal logic of nested determined that since a was already a matrix, there was no point
-  * in copying it into another matrix.
-  */
-template<typename T, int n=1, typename PlainObject = typename eval<T>::type> struct nested
-{
-  enum {
-    // for the purpose of this test, to keep it reasonably simple, we arbitrarily choose a value of Dynamic values.
-    // the choice of 10000 makes it larger than any practical fixed value and even most dynamic values.
-    // in extreme cases where these assumptions would be wrong, we would still at worst suffer performance issues
-    // (poor choice of temporaries).
-    // it's important that this value can still be squared without integer overflowing.
-    DynamicAsInteger = 10000,
-    ScalarReadCost = NumTraits<typename traits<T>::Scalar>::ReadCost,
-    ScalarReadCostAsInteger = ScalarReadCost == Dynamic ? int(DynamicAsInteger) : int(ScalarReadCost),
-    CoeffReadCost = traits<T>::CoeffReadCost,
-    CoeffReadCostAsInteger = CoeffReadCost == Dynamic ? int(DynamicAsInteger) : int(CoeffReadCost),
-    NAsInteger = n == Dynamic ? int(DynamicAsInteger) : n,
-    CostEvalAsInteger   = (NAsInteger+1) * ScalarReadCostAsInteger + CoeffReadCostAsInteger,
-    CostNoEvalAsInteger = NAsInteger * CoeffReadCostAsInteger
-  };
-
-  typedef typename conditional<
-      ( (int(traits<T>::Flags) & EvalBeforeNestingBit) ||
-        int(CostEvalAsInteger) < int(CostNoEvalAsInteger)
-      ),
-      PlainObject,
-      typename ref_selector<T>::type
-  >::type type;
-};
-
-template<typename T>
-T* const_cast_ptr(const T* ptr)
-{
-  return const_cast<T*>(ptr);
-}
-
-template<typename Derived, typename XprKind = typename traits<Derived>::XprKind>
-struct dense_xpr_base
-{
-  /* dense_xpr_base should only ever be used on dense expressions, thus falling either into the MatrixXpr or into the ArrayXpr cases */
-};
-
-template<typename Derived>
-struct dense_xpr_base<Derived, MatrixXpr>
-{
-  typedef MatrixBase<Derived> type;
-};
-
-template<typename Derived>
-struct dense_xpr_base<Derived, ArrayXpr>
-{
-  typedef ArrayBase<Derived> type;
-};
-
-/** \internal Helper base class to add a scalar multiple operator
-  * overloads for complex types */
-template<typename Derived,typename Scalar,typename OtherScalar,
-         bool EnableIt = !is_same<Scalar,OtherScalar>::value >
-struct special_scalar_op_base : public DenseCoeffsBase<Derived>
-{
-  // dummy operator* so that the
-  // "using special_scalar_op_base::operator*" compiles
-  void operator*() const;
-};
-
-template<typename Derived,typename Scalar,typename OtherScalar>
-struct special_scalar_op_base<Derived,Scalar,OtherScalar,true>  : public DenseCoeffsBase<Derived>
-{
-  const CwiseUnaryOp<scalar_multiple2_op<Scalar,OtherScalar>, Derived>
-  operator*(const OtherScalar& scalar) const
-  {
-    return CwiseUnaryOp<scalar_multiple2_op<Scalar,OtherScalar>, Derived>
-      (*static_cast<const Derived*>(this), scalar_multiple2_op<Scalar,OtherScalar>(scalar));
-  }
-
-  inline friend const CwiseUnaryOp<scalar_multiple2_op<Scalar,OtherScalar>, Derived>
-  operator*(const OtherScalar& scalar, const Derived& matrix)
-  { return static_cast<const special_scalar_op_base&>(matrix).operator*(scalar); }
-};
-
-template<typename XprType, typename CastType> struct cast_return_type
-{
-  typedef typename XprType::Scalar CurrentScalarType;
-  typedef typename remove_all<CastType>::type _CastType;
-  typedef typename _CastType::Scalar NewScalarType;
-  typedef typename conditional<is_same<CurrentScalarType,NewScalarType>::value,
-                              const XprType&,CastType>::type type;
-};
-
-template <typename A, typename B> struct promote_storage_type;
-
-template <typename A> struct promote_storage_type<A,A>
-{
-  typedef A ret;
-};
-
-/** \internal gives the plain matrix or array type to store a row/column/diagonal of a matrix type.
-  * \param Scalar optional parameter allowing to pass a different scalar type than the one of the MatrixType.
-  */
-template<typename ExpressionType, typename Scalar = typename ExpressionType::Scalar>
-struct plain_row_type
-{
-  typedef Matrix<Scalar, 1, ExpressionType::ColsAtCompileTime,
-                 ExpressionType::PlainObject::Options | RowMajor, 1, ExpressionType::MaxColsAtCompileTime> MatrixRowType;
-  typedef Array<Scalar, 1, ExpressionType::ColsAtCompileTime,
-                 ExpressionType::PlainObject::Options | RowMajor, 1, ExpressionType::MaxColsAtCompileTime> ArrayRowType;
-
-  typedef typename conditional<
-    is_same< typename traits<ExpressionType>::XprKind, MatrixXpr >::value,
-    MatrixRowType,
-    ArrayRowType 
-  >::type type;
-};
-
-template<typename ExpressionType, typename Scalar = typename ExpressionType::Scalar>
-struct plain_col_type
-{
-  typedef Matrix<Scalar, ExpressionType::RowsAtCompileTime, 1,
-                 ExpressionType::PlainObject::Options & ~RowMajor, ExpressionType::MaxRowsAtCompileTime, 1> MatrixColType;
-  typedef Array<Scalar, ExpressionType::RowsAtCompileTime, 1,
-                 ExpressionType::PlainObject::Options & ~RowMajor, ExpressionType::MaxRowsAtCompileTime, 1> ArrayColType;
-
-  typedef typename conditional<
-    is_same< typename traits<ExpressionType>::XprKind, MatrixXpr >::value,
-    MatrixColType,
-    ArrayColType 
-  >::type type;
-};
-
-template<typename ExpressionType, typename Scalar = typename ExpressionType::Scalar>
-struct plain_diag_type
-{
-  enum { diag_size = EIGEN_SIZE_MIN_PREFER_DYNAMIC(ExpressionType::RowsAtCompileTime, ExpressionType::ColsAtCompileTime),
-         max_diag_size = EIGEN_SIZE_MIN_PREFER_FIXED(ExpressionType::MaxRowsAtCompileTime, ExpressionType::MaxColsAtCompileTime)
-  };
-  typedef Matrix<Scalar, diag_size, 1, ExpressionType::PlainObject::Options & ~RowMajor, max_diag_size, 1> MatrixDiagType;
-  typedef Array<Scalar, diag_size, 1, ExpressionType::PlainObject::Options & ~RowMajor, max_diag_size, 1> ArrayDiagType;
-
-  typedef typename conditional<
-    is_same< typename traits<ExpressionType>::XprKind, MatrixXpr >::value,
-    MatrixDiagType,
-    ArrayDiagType 
-  >::type type;
-};
-
-template<typename ExpressionType>
-struct is_lvalue
-{
-  enum { value = !bool(is_const<ExpressionType>::value) &&
-                 bool(traits<ExpressionType>::Flags & LvalueBit) };
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_XPRHELPER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/AlignedBox.h b/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/AlignedBox.h
deleted file mode 100644
index 7b2b865..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/AlignedBox.h
+++ /dev/null
@@ -1,159 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <g.gael at free.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
-
-namespace Eigen { 
-
-/** \geometry_module \ingroup Geometry_Module
-  * \nonstableyet
-  *
-  * \class AlignedBox
-  *
-  * \brief An axis aligned box
-  *
-  * \param _Scalar the type of the scalar coefficients
-  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
-  *
-  * This class represents an axis aligned box as a pair of the minimal and maximal corners.
-  */
-template <typename _Scalar, int _AmbientDim>
-class AlignedBox
-{
-public:
-EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim==Dynamic ? Dynamic : _AmbientDim+1)
-  enum { AmbientDimAtCompileTime = _AmbientDim };
-  typedef _Scalar Scalar;
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  typedef Matrix<Scalar,AmbientDimAtCompileTime,1> VectorType;
-
-  /** Default constructor initializing a null box. */
-  inline explicit AlignedBox()
-  { if (AmbientDimAtCompileTime!=Dynamic) setNull(); }
-
-  /** Constructs a null box with \a _dim the dimension of the ambient space. */
-  inline explicit AlignedBox(int _dim) : m_min(_dim), m_max(_dim)
-  { setNull(); }
-
-  /** Constructs a box with extremities \a _min and \a _max. */
-  inline AlignedBox(const VectorType& _min, const VectorType& _max) : m_min(_min), m_max(_max) {}
-
-  /** Constructs a box containing a single point \a p. */
-  inline explicit AlignedBox(const VectorType& p) : m_min(p), m_max(p) {}
-
-  ~AlignedBox() {}
-
-  /** \returns the dimension in which the box holds */
-  inline int dim() const { return AmbientDimAtCompileTime==Dynamic ? m_min.size()-1 : AmbientDimAtCompileTime; }
-
-  /** \returns true if the box is null, i.e, empty. */
-  inline bool isNull() const { return (m_min.cwise() > m_max).any(); }
-
-  /** Makes \c *this a null/empty box. */
-  inline void setNull()
-  {
-    m_min.setConstant( (std::numeric_limits<Scalar>::max)());
-    m_max.setConstant(-(std::numeric_limits<Scalar>::max)());
-  }
-
-  /** \returns the minimal corner */
-  inline const VectorType& (min)() const { return m_min; }
-  /** \returns a non const reference to the minimal corner */
-  inline VectorType& (min)() { return m_min; }
-  /** \returns the maximal corner */
-  inline const VectorType& (max)() const { return m_max; }
-  /** \returns a non const reference to the maximal corner */
-  inline VectorType& (max)() { return m_max; }
-
-  /** \returns true if the point \a p is inside the box \c *this. */
-  inline bool contains(const VectorType& p) const
-  { return (m_min.cwise()<=p).all() && (p.cwise()<=m_max).all(); }
-
-  /** \returns true if the box \a b is entirely inside the box \c *this. */
-  inline bool contains(const AlignedBox& b) const
-  { return (m_min.cwise()<=(b.min)()).all() && ((b.max)().cwise()<=m_max).all(); }
-
-  /** Extends \c *this such that it contains the point \a p and returns a reference to \c *this. */
-  inline AlignedBox& extend(const VectorType& p)
-  { m_min = (m_min.cwise().min)(p); m_max = (m_max.cwise().max)(p); return *this; }
-
-  /** Extends \c *this such that it contains the box \a b and returns a reference to \c *this. */
-  inline AlignedBox& extend(const AlignedBox& b)
-  { m_min = (m_min.cwise().min)(b.m_min); m_max = (m_max.cwise().max)(b.m_max); return *this; }
-
-  /** Clamps \c *this by the box \a b and returns a reference to \c *this. */
-  inline AlignedBox& clamp(const AlignedBox& b)
-  { m_min = (m_min.cwise().max)(b.m_min); m_max = (m_max.cwise().min)(b.m_max); return *this; }
-
-  /** Translate \c *this by the vector \a t and returns a reference to \c *this. */
-  inline AlignedBox& translate(const VectorType& t)
-  { m_min += t; m_max += t; return *this; }
-
-  /** \returns the squared distance between the point \a p and the box \c *this,
-    * and zero if \a p is inside the box.
-    * \sa exteriorDistance()
-    */
-  inline Scalar squaredExteriorDistance(const VectorType& p) const;
-
-  /** \returns the distance between the point \a p and the box \c *this,
-    * and zero if \a p is inside the box.
-    * \sa squaredExteriorDistance()
-    */
-  inline Scalar exteriorDistance(const VectorType& p) const
-  { return ei_sqrt(squaredExteriorDistance(p)); }
-
-  /** \returns \c *this with scalar type casted to \a NewScalarType
-    *
-    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
-    * then this function smartly returns a const reference to \c *this.
-    */
-  template<typename NewScalarType>
-  inline typename internal::cast_return_type<AlignedBox,
-           AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type cast() const
-  {
-    return typename internal::cast_return_type<AlignedBox,
-                    AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type(*this);
-  }
-
-  /** Copy constructor with scalar type conversion */
-  template<typename OtherScalarType>
-  inline explicit AlignedBox(const AlignedBox<OtherScalarType,AmbientDimAtCompileTime>& other)
-  {
-    m_min = (other.min)().template cast<Scalar>();
-    m_max = (other.max)().template cast<Scalar>();
-  }
-
-  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
-    * determined by \a prec.
-    *
-    * \sa MatrixBase::isApprox() */
-  bool isApprox(const AlignedBox& other, typename NumTraits<Scalar>::Real prec = precision<Scalar>()) const
-  { return m_min.isApprox(other.m_min, prec) && m_max.isApprox(other.m_max, prec); }
-
-protected:
-
-  VectorType m_min, m_max;
-};
-
-template<typename Scalar,int AmbiantDim>
-inline Scalar AlignedBox<Scalar,AmbiantDim>::squaredExteriorDistance(const VectorType& p) const
-{
-  Scalar dist2(0);
-  Scalar aux;
-  for (int k=0; k<dim(); ++k)
-  {
-    if ((aux = (p[k]-m_min[k]))<Scalar(0))
-      dist2 += aux*aux;
-    else if ( (aux = (m_max[k]-p[k]))<Scalar(0))
-      dist2 += aux*aux;
-  }
-  return dist2;
-}
-
-} // end namespace Eigen
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/Hyperplane.h b/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/Hyperplane.h
deleted file mode 100644
index 49e3739..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/Hyperplane.h
+++ /dev/null
@@ -1,254 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <g.gael at free.fr>
-// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
-
-namespace Eigen { 
-
-/** \geometry_module \ingroup Geometry_Module
-  *
-  * \class Hyperplane
-  *
-  * \brief A hyperplane
-  *
-  * A hyperplane is an affine subspace of dimension n-1 in a space of dimension n.
-  * For example, a hyperplane in a plane is a line; a hyperplane in 3-space is a plane.
-  *
-  * \param _Scalar the scalar type, i.e., the type of the coefficients
-  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
-  *             Notice that the dimension of the hyperplane is _AmbientDim-1.
-  *
-  * This class represents an hyperplane as the zero set of the implicit equation
-  * \f$ n \cdot x + d = 0 \f$ where \f$ n \f$ is a unit normal vector of the plane (linear part)
-  * and \f$ d \f$ is the distance (offset) to the origin.
-  */
-template <typename _Scalar, int _AmbientDim>
-class Hyperplane
-{
-public:
-  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim==Dynamic ? Dynamic : _AmbientDim+1)
-  enum { AmbientDimAtCompileTime = _AmbientDim };
-  typedef _Scalar Scalar;
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  typedef Matrix<Scalar,AmbientDimAtCompileTime,1> VectorType;
-  typedef Matrix<Scalar,int(AmbientDimAtCompileTime)==Dynamic
-                        ? Dynamic
-                        : int(AmbientDimAtCompileTime)+1,1> Coefficients;
-  typedef Block<Coefficients,AmbientDimAtCompileTime,1> NormalReturnType;
-
-  /** Default constructor without initialization */
-  inline explicit Hyperplane() {}
-
-  /** Constructs a dynamic-size hyperplane with \a _dim the dimension
-    * of the ambient space */
-  inline explicit Hyperplane(int _dim) : m_coeffs(_dim+1) {}
-
-  /** Construct a plane from its normal \a n and a point \a e onto the plane.
-    * \warning the vector normal is assumed to be normalized.
-    */
-  inline Hyperplane(const VectorType& n, const VectorType& e)
-    : m_coeffs(n.size()+1)
-  {
-    normal() = n;
-    offset() = -e.eigen2_dot(n);
-  }
-
-  /** Constructs a plane from its normal \a n and distance to the origin \a d
-    * such that the algebraic equation of the plane is \f$ n \cdot x + d = 0 \f$.
-    * \warning the vector normal is assumed to be normalized.
-    */
-  inline Hyperplane(const VectorType& n, Scalar d)
-    : m_coeffs(n.size()+1)
-  {
-    normal() = n;
-    offset() = d;
-  }
-
-  /** Constructs a hyperplane passing through the two points. If the dimension of the ambient space
-    * is greater than 2, then there isn't uniqueness, so an arbitrary choice is made.
-    */
-  static inline Hyperplane Through(const VectorType& p0, const VectorType& p1)
-  {
-    Hyperplane result(p0.size());
-    result.normal() = (p1 - p0).unitOrthogonal();
-    result.offset() = -result.normal().eigen2_dot(p0);
-    return result;
-  }
-
-  /** Constructs a hyperplane passing through the three points. The dimension of the ambient space
-    * is required to be exactly 3.
-    */
-  static inline Hyperplane Through(const VectorType& p0, const VectorType& p1, const VectorType& p2)
-  {
-    EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 3)
-    Hyperplane result(p0.size());
-    result.normal() = (p2 - p0).cross(p1 - p0).normalized();
-    result.offset() = -result.normal().eigen2_dot(p0);
-    return result;
-  }
-
-  /** Constructs a hyperplane passing through the parametrized line \a parametrized.
-    * If the dimension of the ambient space is greater than 2, then there isn't uniqueness,
-    * so an arbitrary choice is made.
-    */
-  // FIXME to be consitent with the rest this could be implemented as a static Through function ??
-  explicit Hyperplane(const ParametrizedLine<Scalar, AmbientDimAtCompileTime>& parametrized)
-  {
-    normal() = parametrized.direction().unitOrthogonal();
-    offset() = -normal().eigen2_dot(parametrized.origin());
-  }
-
-  ~Hyperplane() {}
-
-  /** \returns the dimension in which the plane holds */
-  inline int dim() const { return int(AmbientDimAtCompileTime)==Dynamic ? m_coeffs.size()-1 : int(AmbientDimAtCompileTime); }
-
-  /** normalizes \c *this */
-  void normalize(void)
-  {
-    m_coeffs /= normal().norm();
-  }
-
-  /** \returns the signed distance between the plane \c *this and a point \a p.
-    * \sa absDistance()
-    */
-  inline Scalar signedDistance(const VectorType& p) const { return p.eigen2_dot(normal()) + offset(); }
-
-  /** \returns the absolute distance between the plane \c *this and a point \a p.
-    * \sa signedDistance()
-    */
-  inline Scalar absDistance(const VectorType& p) const { return ei_abs(signedDistance(p)); }
-
-  /** \returns the projection of a point \a p onto the plane \c *this.
-    */
-  inline VectorType projection(const VectorType& p) const { return p - signedDistance(p) * normal(); }
-
-  /** \returns a constant reference to the unit normal vector of the plane, which corresponds
-    * to the linear part of the implicit equation.
-    */
-  inline const NormalReturnType normal() const { return NormalReturnType(*const_cast<Coefficients*>(&m_coeffs),0,0,dim(),1); }
-
-  /** \returns a non-constant reference to the unit normal vector of the plane, which corresponds
-    * to the linear part of the implicit equation.
-    */
-  inline NormalReturnType normal() { return NormalReturnType(m_coeffs,0,0,dim(),1); }
-
-  /** \returns the distance to the origin, which is also the "constant term" of the implicit equation
-    * \warning the vector normal is assumed to be normalized.
-    */
-  inline const Scalar& offset() const { return m_coeffs.coeff(dim()); }
-
-  /** \returns a non-constant reference to the distance to the origin, which is also the constant part
-    * of the implicit equation */
-  inline Scalar& offset() { return m_coeffs(dim()); }
-
-  /** \returns a constant reference to the coefficients c_i of the plane equation:
-    * \f$ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \f$
-    */
-  inline const Coefficients& coeffs() const { return m_coeffs; }
-
-  /** \returns a non-constant reference to the coefficients c_i of the plane equation:
-    * \f$ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \f$
-    */
-  inline Coefficients& coeffs() { return m_coeffs; }
-
-  /** \returns the intersection of *this with \a other.
-    *
-    * \warning The ambient space must be a plane, i.e. have dimension 2, so that \c *this and \a other are lines.
-    *
-    * \note If \a other is approximately parallel to *this, this method will return any point on *this.
-    */
-  VectorType intersection(const Hyperplane& other)
-  {
-    EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 2)
-    Scalar det = coeffs().coeff(0) * other.coeffs().coeff(1) - coeffs().coeff(1) * other.coeffs().coeff(0);
-    // since the line equations ax+by=c are normalized with a^2+b^2=1, the following tests
-    // whether the two lines are approximately parallel.
-    if(ei_isMuchSmallerThan(det, Scalar(1)))
-    {   // special case where the two lines are approximately parallel. Pick any point on the first line.
-        if(ei_abs(coeffs().coeff(1))>ei_abs(coeffs().coeff(0)))
-            return VectorType(coeffs().coeff(1), -coeffs().coeff(2)/coeffs().coeff(1)-coeffs().coeff(0));
-        else
-            return VectorType(-coeffs().coeff(2)/coeffs().coeff(0)-coeffs().coeff(1), coeffs().coeff(0));
-    }
-    else
-    {   // general case
-        Scalar invdet = Scalar(1) / det;
-        return VectorType(invdet*(coeffs().coeff(1)*other.coeffs().coeff(2)-other.coeffs().coeff(1)*coeffs().coeff(2)),
-                          invdet*(other.coeffs().coeff(0)*coeffs().coeff(2)-coeffs().coeff(0)*other.coeffs().coeff(2)));
-    }
-  }
-
-  /** Applies the transformation matrix \a mat to \c *this and returns a reference to \c *this.
-    *
-    * \param mat the Dim x Dim transformation matrix
-    * \param traits specifies whether the matrix \a mat represents an Isometry
-    *               or a more generic Affine transformation. The default is Affine.
-    */
-  template<typename XprType>
-  inline Hyperplane& transform(const MatrixBase<XprType>& mat, TransformTraits traits = Affine)
-  {
-    if (traits==Affine)
-      normal() = mat.inverse().transpose() * normal();
-    else if (traits==Isometry)
-      normal() = mat * normal();
-    else
-    {
-      ei_assert("invalid traits value in Hyperplane::transform()");
-    }
-    return *this;
-  }
-
-  /** Applies the transformation \a t to \c *this and returns a reference to \c *this.
-    *
-    * \param t the transformation of dimension Dim
-    * \param traits specifies whether the transformation \a t represents an Isometry
-    *               or a more generic Affine transformation. The default is Affine.
-    *               Other kind of transformations are not supported.
-    */
-  inline Hyperplane& transform(const Transform<Scalar,AmbientDimAtCompileTime>& t,
-                                TransformTraits traits = Affine)
-  {
-    transform(t.linear(), traits);
-    offset() -= t.translation().eigen2_dot(normal());
-    return *this;
-  }
-
-  /** \returns \c *this with scalar type casted to \a NewScalarType
-    *
-    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
-    * then this function smartly returns a const reference to \c *this.
-    */
-  template<typename NewScalarType>
-  inline typename internal::cast_return_type<Hyperplane,
-           Hyperplane<NewScalarType,AmbientDimAtCompileTime> >::type cast() const
-  {
-    return typename internal::cast_return_type<Hyperplane,
-                    Hyperplane<NewScalarType,AmbientDimAtCompileTime> >::type(*this);
-  }
-
-  /** Copy constructor with scalar type conversion */
-  template<typename OtherScalarType>
-  inline explicit Hyperplane(const Hyperplane<OtherScalarType,AmbientDimAtCompileTime>& other)
-  { m_coeffs = other.coeffs().template cast<Scalar>(); }
-
-  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
-    * determined by \a prec.
-    *
-    * \sa MatrixBase::isApprox() */
-  bool isApprox(const Hyperplane& other, typename NumTraits<Scalar>::Real prec = precision<Scalar>()) const
-  { return m_coeffs.isApprox(other.m_coeffs, prec); }
-
-protected:
-
-  Coefficients m_coeffs;
-};
-
-} // end namespace Eigen
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h b/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h
deleted file mode 100644
index 3523611..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h
+++ /dev/null
@@ -1,141 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <g.gael at free.fr>
-// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
-
-namespace Eigen { 
-
-/** \geometry_module \ingroup Geometry_Module
-  *
-  * \class ParametrizedLine
-  *
-  * \brief A parametrized line
-  *
-  * A parametrized line is defined by an origin point \f$ \mathbf{o} \f$ and a unit
-  * direction vector \f$ \mathbf{d} \f$ such that the line corresponds to
-  * the set \f$ l(t) = \mathbf{o} + t \mathbf{d} \f$, \f$ l \in \mathbf{R} \f$.
-  *
-  * \param _Scalar the scalar type, i.e., the type of the coefficients
-  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
-  */
-template <typename _Scalar, int _AmbientDim>
-class ParametrizedLine
-{
-public:
-  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
-  enum { AmbientDimAtCompileTime = _AmbientDim };
-  typedef _Scalar Scalar;
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  typedef Matrix<Scalar,AmbientDimAtCompileTime,1> VectorType;
-
-  /** Default constructor without initialization */
-  inline explicit ParametrizedLine() {}
-
-  /** Constructs a dynamic-size line with \a _dim the dimension
-    * of the ambient space */
-  inline explicit ParametrizedLine(int _dim) : m_origin(_dim), m_direction(_dim) {}
-
-  /** Initializes a parametrized line of direction \a direction and origin \a origin.
-    * \warning the vector direction is assumed to be normalized.
-    */
-  ParametrizedLine(const VectorType& origin, const VectorType& direction)
-    : m_origin(origin), m_direction(direction) {}
-
-  explicit ParametrizedLine(const Hyperplane<_Scalar, _AmbientDim>& hyperplane);
-
-  /** Constructs a parametrized line going from \a p0 to \a p1. */
-  static inline ParametrizedLine Through(const VectorType& p0, const VectorType& p1)
-  { return ParametrizedLine(p0, (p1-p0).normalized()); }
-
-  ~ParametrizedLine() {}
-
-  /** \returns the dimension in which the line holds */
-  inline int dim() const { return m_direction.size(); }
-
-  const VectorType& origin() const { return m_origin; }
-  VectorType& origin() { return m_origin; }
-
-  const VectorType& direction() const { return m_direction; }
-  VectorType& direction() { return m_direction; }
-
-  /** \returns the squared distance of a point \a p to its projection onto the line \c *this.
-    * \sa distance()
-    */
-  RealScalar squaredDistance(const VectorType& p) const
-  {
-    VectorType diff = p-origin();
-    return (diff - diff.eigen2_dot(direction())* direction()).squaredNorm();
-  }
-  /** \returns the distance of a point \a p to its projection onto the line \c *this.
-    * \sa squaredDistance()
-    */
-  RealScalar distance(const VectorType& p) const { return ei_sqrt(squaredDistance(p)); }
-
-  /** \returns the projection of a point \a p onto the line \c *this. */
-  VectorType projection(const VectorType& p) const
-  { return origin() + (p-origin()).eigen2_dot(direction()) * direction(); }
-
-  Scalar intersection(const Hyperplane<_Scalar, _AmbientDim>& hyperplane);
-
-  /** \returns \c *this with scalar type casted to \a NewScalarType
-    *
-    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
-    * then this function smartly returns a const reference to \c *this.
-    */
-  template<typename NewScalarType>
-  inline typename internal::cast_return_type<ParametrizedLine,
-           ParametrizedLine<NewScalarType,AmbientDimAtCompileTime> >::type cast() const
-  {
-    return typename internal::cast_return_type<ParametrizedLine,
-                    ParametrizedLine<NewScalarType,AmbientDimAtCompileTime> >::type(*this);
-  }
-
-  /** Copy constructor with scalar type conversion */
-  template<typename OtherScalarType>
-  inline explicit ParametrizedLine(const ParametrizedLine<OtherScalarType,AmbientDimAtCompileTime>& other)
-  {
-    m_origin = other.origin().template cast<Scalar>();
-    m_direction = other.direction().template cast<Scalar>();
-  }
-
-  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
-    * determined by \a prec.
-    *
-    * \sa MatrixBase::isApprox() */
-  bool isApprox(const ParametrizedLine& other, typename NumTraits<Scalar>::Real prec = precision<Scalar>()) const
-  { return m_origin.isApprox(other.m_origin, prec) && m_direction.isApprox(other.m_direction, prec); }
-
-protected:
-
-  VectorType m_origin, m_direction;
-};
-
-/** Constructs a parametrized line from a 2D hyperplane
-  *
-  * \warning the ambient space must have dimension 2 such that the hyperplane actually describes a line
-  */
-template <typename _Scalar, int _AmbientDim>
-inline ParametrizedLine<_Scalar, _AmbientDim>::ParametrizedLine(const Hyperplane<_Scalar, _AmbientDim>& hyperplane)
-{
-  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 2)
-  direction() = hyperplane.normal().unitOrthogonal();
-  origin() = -hyperplane.normal()*hyperplane.offset();
-}
-
-/** \returns the parameter value of the intersection between \c *this and the given hyperplane
-  */
-template <typename _Scalar, int _AmbientDim>
-inline _Scalar ParametrizedLine<_Scalar, _AmbientDim>::intersection(const Hyperplane<_Scalar, _AmbientDim>& hyperplane)
-{
-  return -(hyperplane.offset()+origin().eigen2_dot(hyperplane.normal()))
-          /(direction().eigen2_dot(hyperplane.normal()));
-}
-
-} // end namespace Eigen
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/LeastSquares.h b/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/LeastSquares.h
deleted file mode 100644
index 0e6fdb4..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/LeastSquares.h
+++ /dev/null
@@ -1,170 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN2_LEASTSQUARES_H
-#define EIGEN2_LEASTSQUARES_H
-
-namespace Eigen { 
-
-/** \ingroup LeastSquares_Module
-  *
-  * \leastsquares_module
-  *
-  * For a set of points, this function tries to express
-  * one of the coords as a linear (affine) function of the other coords.
-  *
-  * This is best explained by an example. This function works in full
-  * generality, for points in a space of arbitrary dimension, and also over
-  * the complex numbers, but for this example we will work in dimension 3
-  * over the real numbers (doubles).
-  *
-  * So let us work with the following set of 5 points given by their
-  * \f$(x,y,z)\f$ coordinates:
-  * @code
-    Vector3d points[5];
-    points[0] = Vector3d( 3.02, 6.89, -4.32 );
-    points[1] = Vector3d( 2.01, 5.39, -3.79 );
-    points[2] = Vector3d( 2.41, 6.01, -4.01 );
-    points[3] = Vector3d( 2.09, 5.55, -3.86 );
-    points[4] = Vector3d( 2.58, 6.32, -4.10 );
-  * @endcode
-  * Suppose that we want to express the second coordinate (\f$y\f$) as a linear
-  * expression in \f$x\f$ and \f$z\f$, that is,
-  * \f[ y=ax+bz+c \f]
-  * for some constants \f$a,b,c\f$. Thus, we want to find the best possible
-  * constants \f$a,b,c\f$ so that the plane of equation \f$y=ax+bz+c\f$ fits
-  * best the five above points. To do that, call this function as follows:
-  * @code
-    Vector3d coeffs; // will store the coefficients a, b, c
-    linearRegression(
-      5,
-      &points,
-      &coeffs,
-      1 // the coord to express as a function of
-        // the other ones. 0 means x, 1 means y, 2 means z.
-    );
-  * @endcode
-  * Now the vector \a coeffs is approximately
-  * \f$( 0.495 ,  -1.927 ,  -2.906 )\f$.
-  * Thus, we get \f$a=0.495, b = -1.927, c = -2.906\f$. Let us check for
-  * instance how near points[0] is from the plane of equation \f$y=ax+bz+c\f$.
-  * Looking at the coords of points[0], we see that:
-  * \f[ax+bz+c = 0.495 * 3.02 + (-1.927) * (-4.32) + (-2.906) = 6.91.\f]
-  * On the other hand, we have \f$y=6.89\f$. We see that the values
-  * \f$6.91\f$ and \f$6.89\f$
-  * are near, so points[0] is very near the plane of equation \f$y=ax+bz+c\f$.
-  *
-  * Let's now describe precisely the parameters:
-  * @param numPoints the number of points
-  * @param points the array of pointers to the points on which to perform the linear regression
-  * @param result pointer to the vector in which to store the result.
-                  This vector must be of the same type and size as the
-                  data points. The meaning of its coords is as follows.
-                  For brevity, let \f$n=Size\f$,
-                  \f$r_i=result[i]\f$,
-                  and \f$f=funcOfOthers\f$. Denote by
-                  \f$x_0,\ldots,x_{n-1}\f$
-                  the n coordinates in the n-dimensional space.
-                  Then the resulting equation is:
-                  \f[ x_f = r_0 x_0 + \cdots + r_{f-1}x_{f-1}
-                   + r_{f+1}x_{f+1} + \cdots + r_{n-1}x_{n-1} + r_n. \f]
-  * @param funcOfOthers Determines which coord to express as a function of the
-                        others. Coords are numbered starting from 0, so that a
-                        value of 0 means \f$x\f$, 1 means \f$y\f$,
-                        2 means \f$z\f$, ...
-  *
-  * \sa fitHyperplane()
-  */
-template<typename VectorType>
-void linearRegression(int numPoints,
-                      VectorType **points,
-                      VectorType *result,
-                      int funcOfOthers )
-{
-  typedef typename VectorType::Scalar Scalar;
-  typedef Hyperplane<Scalar, VectorType::SizeAtCompileTime> HyperplaneType;
-  const int size = points[0]->size();
-  result->resize(size);
-  HyperplaneType h(size);
-  fitHyperplane(numPoints, points, &h);
-  for(int i = 0; i < funcOfOthers; i++)
-    result->coeffRef(i) = - h.coeffs()[i] / h.coeffs()[funcOfOthers];
-  for(int i = funcOfOthers; i < size; i++)
-    result->coeffRef(i) = - h.coeffs()[i+1] / h.coeffs()[funcOfOthers];
-}
-
-/** \ingroup LeastSquares_Module
-  *
-  * \leastsquares_module
-  *
-  * This function is quite similar to linearRegression(), so we refer to the
-  * documentation of this function and only list here the differences.
-  *
-  * The main difference from linearRegression() is that this function doesn't
-  * take a \a funcOfOthers argument. Instead, it finds a general equation
-  * of the form
-  * \f[ r_0 x_0 + \cdots + r_{n-1}x_{n-1} + r_n = 0, \f]
-  * where \f$n=Size\f$, \f$r_i=retCoefficients[i]\f$, and we denote by
-  * \f$x_0,\ldots,x_{n-1}\f$ the n coordinates in the n-dimensional space.
-  *
-  * Thus, the vector \a retCoefficients has size \f$n+1\f$, which is another
-  * difference from linearRegression().
-  *
-  * In practice, this function performs an hyper-plane fit in a total least square sense
-  * via the following steps:
-  *  1 - center the data to the mean
-  *  2 - compute the covariance matrix
-  *  3 - pick the eigenvector corresponding to the smallest eigenvalue of the covariance matrix
-  * The ratio of the smallest eigenvalue and the second one gives us a hint about the relevance
-  * of the solution. This value is optionally returned in \a soundness.
-  *
-  * \sa linearRegression()
-  */
-template<typename VectorType, typename HyperplaneType>
-void fitHyperplane(int numPoints,
-                   VectorType **points,
-                   HyperplaneType *result,
-                   typename NumTraits<typename VectorType::Scalar>::Real* soundness = 0)
-{
-  typedef typename VectorType::Scalar Scalar;
-  typedef Matrix<Scalar,VectorType::SizeAtCompileTime,VectorType::SizeAtCompileTime> CovMatrixType;
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(VectorType)
-  ei_assert(numPoints >= 1);
-  int size = points[0]->size();
-  ei_assert(size+1 == result->coeffs().size());
-
-  // compute the mean of the data
-  VectorType mean = VectorType::Zero(size);
-  for(int i = 0; i < numPoints; ++i)
-    mean += *(points[i]);
-  mean /= numPoints;
-
-  // compute the covariance matrix
-  CovMatrixType covMat = CovMatrixType::Zero(size, size);
-  VectorType remean = VectorType::Zero(size);
-  for(int i = 0; i < numPoints; ++i)
-  {
-    VectorType diff = (*(points[i]) - mean).conjugate();
-    covMat += diff * diff.adjoint();
-  }
-
-  // now we just have to pick the eigen vector with smallest eigen value
-  SelfAdjointEigenSolver<CovMatrixType> eig(covMat);
-  result->normal() = eig.eigenvectors().col(0);
-  if (soundness)
-    *soundness = eig.eigenvalues().coeff(0)/eig.eigenvalues().coeff(1);
-
-  // let's compute the constant coefficient such that the
-  // plane pass trough the mean point:
-  result->offset() = - (result->normal().cwise()* mean).sum();
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN2_LEASTSQUARES_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/MathFunctions.h b/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/MathFunctions.h
deleted file mode 100644
index bde5dd4..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/MathFunctions.h
+++ /dev/null
@@ -1,57 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN2_MATH_FUNCTIONS_H
-#define EIGEN2_MATH_FUNCTIONS_H
-
-namespace Eigen { 
-
-template<typename T> inline typename NumTraits<T>::Real ei_real(const T& x) { return internal::real(x); }
-template<typename T> inline typename NumTraits<T>::Real ei_imag(const T& x) { return internal::imag(x); }
-template<typename T> inline T ei_conj(const T& x) { return internal::conj(x); }
-template<typename T> inline typename NumTraits<T>::Real ei_abs (const T& x) { using std::abs; return abs(x); }
-template<typename T> inline typename NumTraits<T>::Real ei_abs2(const T& x) { return internal::abs2(x); }
-template<typename T> inline T ei_sqrt(const T& x) { using std::sqrt; return sqrt(x); }
-template<typename T> inline T ei_exp (const T& x) { using std::exp;  return exp(x); }
-template<typename T> inline T ei_log (const T& x) { using std::log;  return log(x); }
-template<typename T> inline T ei_sin (const T& x) { using std::sin;  return sin(x); }
-template<typename T> inline T ei_cos (const T& x) { using std::cos;  return cos(x); }
-template<typename T> inline T ei_atan2(const T& x,const T& y) { using std::atan2; return atan2(x,y); }
-template<typename T> inline T ei_pow (const T& x,const T& y) { return internal::pow(x,y); }
-template<typename T> inline T ei_random () { return internal::random<T>(); }
-template<typename T> inline T ei_random (const T& x, const T& y) { return internal::random(x, y); }
-
-template<typename T> inline T precision () { return NumTraits<T>::dummy_precision(); }
-template<typename T> inline T machine_epsilon () { return NumTraits<T>::epsilon(); }
-
-
-template<typename Scalar, typename OtherScalar>
-inline bool ei_isMuchSmallerThan(const Scalar& x, const OtherScalar& y,
-                                   typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision())
-{
-  return internal::isMuchSmallerThan(x, y, precision);
-}
-
-template<typename Scalar>
-inline bool ei_isApprox(const Scalar& x, const Scalar& y,
-                          typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision())
-{
-  return internal::isApprox(x, y, precision);
-}
-
-template<typename Scalar>
-inline bool ei_isApproxOrLessThan(const Scalar& x, const Scalar& y,
-                                    typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision())
-{
-  return internal::isApproxOrLessThan(x, y, precision);
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN2_MATH_FUNCTIONS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/SVD.h b/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/SVD.h
deleted file mode 100644
index a08b695..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/SVD.h
+++ /dev/null
@@ -1,638 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <g.gael at free.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN2_SVD_H
-#define EIGEN2_SVD_H
-
-namespace Eigen {
-
-/** \ingroup SVD_Module
-  * \nonstableyet
-  *
-  * \class SVD
-  *
-  * \brief Standard SVD decomposition of a matrix and associated features
-  *
-  * \param MatrixType the type of the matrix of which we are computing the SVD decomposition
-  *
-  * This class performs a standard SVD decomposition of a real matrix A of size \c M x \c N
-  * with \c M \>= \c N.
-  *
-  *
-  * \sa MatrixBase::SVD()
-  */
-template<typename MatrixType> class SVD
-{
-  private:
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
-
-    enum {
-      PacketSize = internal::packet_traits<Scalar>::size,
-      AlignmentMask = int(PacketSize)-1,
-      MinSize = EIGEN_SIZE_MIN_PREFER_DYNAMIC(MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime)
-    };
-
-    typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> ColVector;
-    typedef Matrix<Scalar, MatrixType::ColsAtCompileTime, 1> RowVector;
-
-    typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, MinSize> MatrixUType;
-    typedef Matrix<Scalar, MatrixType::ColsAtCompileTime, MatrixType::ColsAtCompileTime> MatrixVType;
-    typedef Matrix<Scalar, MinSize, 1> SingularValuesType;
-
-  public:
-
-    SVD() {} // a user who relied on compiler-generated default compiler reported problems with MSVC in 2.0.7
-    
-    SVD(const MatrixType& matrix)
-      : m_matU(matrix.rows(), (std::min)(matrix.rows(), matrix.cols())),
-        m_matV(matrix.cols(),matrix.cols()),
-        m_sigma((std::min)(matrix.rows(),matrix.cols()))
-    {
-      compute(matrix);
-    }
-
-    template<typename OtherDerived, typename ResultType>
-    bool solve(const MatrixBase<OtherDerived> &b, ResultType* result) const;
-
-    const MatrixUType& matrixU() const { return m_matU; }
-    const SingularValuesType& singularValues() const { return m_sigma; }
-    const MatrixVType& matrixV() const { return m_matV; }
-
-    void compute(const MatrixType& matrix);
-    SVD& sort();
-
-    template<typename UnitaryType, typename PositiveType>
-    void computeUnitaryPositive(UnitaryType *unitary, PositiveType *positive) const;
-    template<typename PositiveType, typename UnitaryType>
-    void computePositiveUnitary(PositiveType *positive, UnitaryType *unitary) const;
-    template<typename RotationType, typename ScalingType>
-    void computeRotationScaling(RotationType *unitary, ScalingType *positive) const;
-    template<typename ScalingType, typename RotationType>
-    void computeScalingRotation(ScalingType *positive, RotationType *unitary) const;
-
-  protected:
-    /** \internal */
-    MatrixUType m_matU;
-    /** \internal */
-    MatrixVType m_matV;
-    /** \internal */
-    SingularValuesType m_sigma;
-};
-
-/** Computes / recomputes the SVD decomposition A = U S V^* of \a matrix
-  *
-  * \note this code has been adapted from JAMA (public domain)
-  */
-template<typename MatrixType>
-void SVD<MatrixType>::compute(const MatrixType& matrix)
-{
-  const int m = matrix.rows();
-  const int n = matrix.cols();
-  const int nu = (std::min)(m,n);
-  ei_assert(m>=n && "In Eigen 2.0, SVD only works for MxN matrices with M>=N. Sorry!");
-  ei_assert(m>1 && "In Eigen 2.0, SVD doesn't work on 1x1 matrices");
-
-  m_matU.resize(m, nu);
-  m_matU.setZero();
-  m_sigma.resize((std::min)(m,n));
-  m_matV.resize(n,n);
-
-  RowVector e(n);
-  ColVector work(m);
-  MatrixType matA(matrix);
-  const bool wantu = true;
-  const bool wantv = true;
-  int i=0, j=0, k=0;
-
-  // Reduce A to bidiagonal form, storing the diagonal elements
-  // in s and the super-diagonal elements in e.
-  int nct = (std::min)(m-1,n);
-  int nrt = (std::max)(0,(std::min)(n-2,m));
-  for (k = 0; k < (std::max)(nct,nrt); ++k)
-  {
-    if (k < nct)
-    {
-      // Compute the transformation for the k-th column and
-      // place the k-th diagonal in m_sigma[k].
-      m_sigma[k] = matA.col(k).end(m-k).norm();
-      if (m_sigma[k] != 0.0) // FIXME
-      {
-        if (matA(k,k) < 0.0)
-          m_sigma[k] = -m_sigma[k];
-        matA.col(k).end(m-k) /= m_sigma[k];
-        matA(k,k) += 1.0;
-      }
-      m_sigma[k] = -m_sigma[k];
-    }
-
-    for (j = k+1; j < n; ++j)
-    {
-      if ((k < nct) && (m_sigma[k] != 0.0))
-      {
-        // Apply the transformation.
-        Scalar t = matA.col(k).end(m-k).eigen2_dot(matA.col(j).end(m-k)); // FIXME dot product or cwise prod + .sum() ??
-        t = -t/matA(k,k);
-        matA.col(j).end(m-k) += t * matA.col(k).end(m-k);
-      }
-
-      // Place the k-th row of A into e for the
-      // subsequent calculation of the row transformation.
-      e[j] = matA(k,j);
-    }
-
-    // Place the transformation in U for subsequent back multiplication.
-    if (wantu & (k < nct))
-      m_matU.col(k).end(m-k) = matA.col(k).end(m-k);
-
-    if (k < nrt)
-    {
-      // Compute the k-th row transformation and place the
-      // k-th super-diagonal in e[k].
-      e[k] = e.end(n-k-1).norm();
-      if (e[k] != 0.0)
-      {
-          if (e[k+1] < 0.0)
-            e[k] = -e[k];
-          e.end(n-k-1) /= e[k];
-          e[k+1] += 1.0;
-      }
-      e[k] = -e[k];
-      if ((k+1 < m) & (e[k] != 0.0))
-      {
-        // Apply the transformation.
-        work.end(m-k-1) = matA.corner(BottomRight,m-k-1,n-k-1) * e.end(n-k-1);
-        for (j = k+1; j < n; ++j)
-          matA.col(j).end(m-k-1) += (-e[j]/e[k+1]) * work.end(m-k-1);
-      }
-
-      // Place the transformation in V for subsequent back multiplication.
-      if (wantv)
-        m_matV.col(k).end(n-k-1) = e.end(n-k-1);
-    }
-  }
-
-
-  // Set up the final bidiagonal matrix or order p.
-  int p = (std::min)(n,m+1);
-  if (nct < n)
-    m_sigma[nct] = matA(nct,nct);
-  if (m < p)
-    m_sigma[p-1] = 0.0;
-  if (nrt+1 < p)
-    e[nrt] = matA(nrt,p-1);
-  e[p-1] = 0.0;
-
-  // If required, generate U.
-  if (wantu)
-  {
-    for (j = nct; j < nu; ++j)
-    {
-      m_matU.col(j).setZero();
-      m_matU(j,j) = 1.0;
-    }
-    for (k = nct-1; k >= 0; k--)
-    {
-      if (m_sigma[k] != 0.0)
-      {
-        for (j = k+1; j < nu; ++j)
-        {
-          Scalar t = m_matU.col(k).end(m-k).eigen2_dot(m_matU.col(j).end(m-k)); // FIXME is it really a dot product we want ?
-          t = -t/m_matU(k,k);
-          m_matU.col(j).end(m-k) += t * m_matU.col(k).end(m-k);
-        }
-        m_matU.col(k).end(m-k) = - m_matU.col(k).end(m-k);
-        m_matU(k,k) = Scalar(1) + m_matU(k,k);
-        if (k-1>0)
-          m_matU.col(k).start(k-1).setZero();
-      }
-      else
-      {
-        m_matU.col(k).setZero();
-        m_matU(k,k) = 1.0;
-      }
-    }
-  }
-
-  // If required, generate V.
-  if (wantv)
-  {
-    for (k = n-1; k >= 0; k--)
-    {
-      if ((k < nrt) & (e[k] != 0.0))
-      {
-        for (j = k+1; j < nu; ++j)
-        {
-          Scalar t = m_matV.col(k).end(n-k-1).eigen2_dot(m_matV.col(j).end(n-k-1)); // FIXME is it really a dot product we want ?
-          t = -t/m_matV(k+1,k);
-          m_matV.col(j).end(n-k-1) += t * m_matV.col(k).end(n-k-1);
-        }
-      }
-      m_matV.col(k).setZero();
-      m_matV(k,k) = 1.0;
-    }
-  }
-
-  // Main iteration loop for the singular values.
-  int pp = p-1;
-  int iter = 0;
-  Scalar eps = ei_pow(Scalar(2),ei_is_same_type<Scalar,float>::ret ? Scalar(-23) : Scalar(-52));
-  while (p > 0)
-  {
-    int k=0;
-    int kase=0;
-
-    // Here is where a test for too many iterations would go.
-
-    // This section of the program inspects for
-    // negligible elements in the s and e arrays.  On
-    // completion the variables kase and k are set as follows.
-
-    // kase = 1     if s(p) and e[k-1] are negligible and k<p
-    // kase = 2     if s(k) is negligible and k<p
-    // kase = 3     if e[k-1] is negligible, k<p, and
-    //              s(k), ..., s(p) are not negligible (qr step).
-    // kase = 4     if e(p-1) is negligible (convergence).
-
-    for (k = p-2; k >= -1; --k)
-    {
-      if (k == -1)
-          break;
-      if (ei_abs(e[k]) <= eps*(ei_abs(m_sigma[k]) + ei_abs(m_sigma[k+1])))
-      {
-          e[k] = 0.0;
-          break;
-      }
-    }
-    if (k == p-2)
-    {
-      kase = 4;
-    }
-    else
-    {
-      int ks;
-      for (ks = p-1; ks >= k; --ks)
-      {
-        if (ks == k)
-          break;
-        Scalar t = (ks != p ? ei_abs(e[ks]) : Scalar(0)) + (ks != k+1 ? ei_abs(e[ks-1]) : Scalar(0));
-        if (ei_abs(m_sigma[ks]) <= eps*t)
-        {
-          m_sigma[ks] = 0.0;
-          break;
-        }
-      }
-      if (ks == k)
-      {
-        kase = 3;
-      }
-      else if (ks == p-1)
-      {
-        kase = 1;
-      }
-      else
-      {
-        kase = 2;
-        k = ks;
-      }
-    }
-    ++k;
-
-    // Perform the task indicated by kase.
-    switch (kase)
-    {
-
-      // Deflate negligible s(p).
-      case 1:
-      {
-        Scalar f(e[p-2]);
-        e[p-2] = 0.0;
-        for (j = p-2; j >= k; --j)
-        {
-          Scalar t(internal::hypot(m_sigma[j],f));
-          Scalar cs(m_sigma[j]/t);
-          Scalar sn(f/t);
-          m_sigma[j] = t;
-          if (j != k)
-          {
-            f = -sn*e[j-1];
-            e[j-1] = cs*e[j-1];
-          }
-          if (wantv)
-          {
-            for (i = 0; i < n; ++i)
-            {
-              t = cs*m_matV(i,j) + sn*m_matV(i,p-1);
-              m_matV(i,p-1) = -sn*m_matV(i,j) + cs*m_matV(i,p-1);
-              m_matV(i,j) = t;
-            }
-          }
-        }
-      }
-      break;
-
-      // Split at negligible s(k).
-      case 2:
-      {
-        Scalar f(e[k-1]);
-        e[k-1] = 0.0;
-        for (j = k; j < p; ++j)
-        {
-          Scalar t(internal::hypot(m_sigma[j],f));
-          Scalar cs( m_sigma[j]/t);
-          Scalar sn(f/t);
-          m_sigma[j] = t;
-          f = -sn*e[j];
-          e[j] = cs*e[j];
-          if (wantu)
-          {
-            for (i = 0; i < m; ++i)
-            {
-              t = cs*m_matU(i,j) + sn*m_matU(i,k-1);
-              m_matU(i,k-1) = -sn*m_matU(i,j) + cs*m_matU(i,k-1);
-              m_matU(i,j) = t;
-            }
-          }
-        }
-      }
-      break;
-
-      // Perform one qr step.
-      case 3:
-      {
-        // Calculate the shift.
-        Scalar scale = (std::max)((std::max)((std::max)((std::max)(
-                        ei_abs(m_sigma[p-1]),ei_abs(m_sigma[p-2])),ei_abs(e[p-2])),
-                        ei_abs(m_sigma[k])),ei_abs(e[k]));
-        Scalar sp = m_sigma[p-1]/scale;
-        Scalar spm1 = m_sigma[p-2]/scale;
-        Scalar epm1 = e[p-2]/scale;
-        Scalar sk = m_sigma[k]/scale;
-        Scalar ek = e[k]/scale;
-        Scalar b = ((spm1 + sp)*(spm1 - sp) + epm1*epm1)/Scalar(2);
-        Scalar c = (sp*epm1)*(sp*epm1);
-        Scalar shift(0);
-        if ((b != 0.0) || (c != 0.0))
-        {
-          shift = ei_sqrt(b*b + c);
-          if (b < 0.0)
-            shift = -shift;
-          shift = c/(b + shift);
-        }
-        Scalar f = (sk + sp)*(sk - sp) + shift;
-        Scalar g = sk*ek;
-
-        // Chase zeros.
-
-        for (j = k; j < p-1; ++j)
-        {
-          Scalar t = internal::hypot(f,g);
-          Scalar cs = f/t;
-          Scalar sn = g/t;
-          if (j != k)
-            e[j-1] = t;
-          f = cs*m_sigma[j] + sn*e[j];
-          e[j] = cs*e[j] - sn*m_sigma[j];
-          g = sn*m_sigma[j+1];
-          m_sigma[j+1] = cs*m_sigma[j+1];
-          if (wantv)
-          {
-            for (i = 0; i < n; ++i)
-            {
-              t = cs*m_matV(i,j) + sn*m_matV(i,j+1);
-              m_matV(i,j+1) = -sn*m_matV(i,j) + cs*m_matV(i,j+1);
-              m_matV(i,j) = t;
-            }
-          }
-          t = internal::hypot(f,g);
-          cs = f/t;
-          sn = g/t;
-          m_sigma[j] = t;
-          f = cs*e[j] + sn*m_sigma[j+1];
-          m_sigma[j+1] = -sn*e[j] + cs*m_sigma[j+1];
-          g = sn*e[j+1];
-          e[j+1] = cs*e[j+1];
-          if (wantu && (j < m-1))
-          {
-            for (i = 0; i < m; ++i)
-            {
-              t = cs*m_matU(i,j) + sn*m_matU(i,j+1);
-              m_matU(i,j+1) = -sn*m_matU(i,j) + cs*m_matU(i,j+1);
-              m_matU(i,j) = t;
-            }
-          }
-        }
-        e[p-2] = f;
-        iter = iter + 1;
-      }
-      break;
-
-      // Convergence.
-      case 4:
-      {
-        // Make the singular values positive.
-        if (m_sigma[k] <= 0.0)
-        {
-          m_sigma[k] = m_sigma[k] < Scalar(0) ? -m_sigma[k] : Scalar(0);
-          if (wantv)
-            m_matV.col(k).start(pp+1) = -m_matV.col(k).start(pp+1);
-        }
-
-        // Order the singular values.
-        while (k < pp)
-        {
-          if (m_sigma[k] >= m_sigma[k+1])
-            break;
-          Scalar t = m_sigma[k];
-          m_sigma[k] = m_sigma[k+1];
-          m_sigma[k+1] = t;
-          if (wantv && (k < n-1))
-            m_matV.col(k).swap(m_matV.col(k+1));
-          if (wantu && (k < m-1))
-            m_matU.col(k).swap(m_matU.col(k+1));
-          ++k;
-        }
-        iter = 0;
-        p--;
-      }
-      break;
-    } // end big switch
-  } // end iterations
-}
-
-template<typename MatrixType>
-SVD<MatrixType>& SVD<MatrixType>::sort()
-{
-  int mu = m_matU.rows();
-  int mv = m_matV.rows();
-  int n  = m_matU.cols();
-
-  for (int i=0; i<n; ++i)
-  {
-    int  k = i;
-    Scalar p = m_sigma.coeff(i);
-
-    for (int j=i+1; j<n; ++j)
-    {
-      if (m_sigma.coeff(j) > p)
-      {
-        k = j;
-        p = m_sigma.coeff(j);
-      }
-    }
-    if (k != i)
-    {
-      m_sigma.coeffRef(k) = m_sigma.coeff(i);  // i.e.
-      m_sigma.coeffRef(i) = p;                 // swaps the i-th and the k-th elements
-
-      int j = mu;
-      for(int s=0; j!=0; ++s, --j)
-        std::swap(m_matU.coeffRef(s,i), m_matU.coeffRef(s,k));
-
-      j = mv;
-      for (int s=0; j!=0; ++s, --j)
-        std::swap(m_matV.coeffRef(s,i), m_matV.coeffRef(s,k));
-    }
-  }
-  return *this;
-}
-
-/** \returns the solution of \f$ A x = b \f$ using the current SVD decomposition of A.
-  * The parts of the solution corresponding to zero singular values are ignored.
-  *
-  * \sa MatrixBase::svd(), LU::solve(), LLT::solve()
-  */
-template<typename MatrixType>
-template<typename OtherDerived, typename ResultType>
-bool SVD<MatrixType>::solve(const MatrixBase<OtherDerived> &b, ResultType* result) const
-{
-  const int rows = m_matU.rows();
-  ei_assert(b.rows() == rows);
-
-  Scalar maxVal = m_sigma.cwise().abs().maxCoeff();
-  for (int j=0; j<b.cols(); ++j)
-  {
-    Matrix<Scalar,MatrixUType::RowsAtCompileTime,1> aux = m_matU.transpose() * b.col(j);
-
-    for (int i = 0; i <m_matU.cols(); ++i)
-    {
-      Scalar si = m_sigma.coeff(i);
-      if (ei_isMuchSmallerThan(ei_abs(si),maxVal))
-        aux.coeffRef(i) = 0;
-      else
-        aux.coeffRef(i) /= si;
-    }
-
-    result->col(j) = m_matV * aux;
-  }
-  return true;
-}
-
-/** Computes the polar decomposition of the matrix, as a product unitary x positive.
-  *
-  * If either pointer is zero, the corresponding computation is skipped.
-  *
-  * Only for square matrices.
-  *
-  * \sa computePositiveUnitary(), computeRotationScaling()
-  */
-template<typename MatrixType>
-template<typename UnitaryType, typename PositiveType>
-void SVD<MatrixType>::computeUnitaryPositive(UnitaryType *unitary,
-                                             PositiveType *positive) const
-{
-  ei_assert(m_matU.cols() == m_matV.cols() && "Polar decomposition is only for square matrices");
-  if(unitary) *unitary = m_matU * m_matV.adjoint();
-  if(positive) *positive = m_matV * m_sigma.asDiagonal() * m_matV.adjoint();
-}
-
-/** Computes the polar decomposition of the matrix, as a product positive x unitary.
-  *
-  * If either pointer is zero, the corresponding computation is skipped.
-  *
-  * Only for square matrices.
-  *
-  * \sa computeUnitaryPositive(), computeRotationScaling()
-  */
-template<typename MatrixType>
-template<typename UnitaryType, typename PositiveType>
-void SVD<MatrixType>::computePositiveUnitary(UnitaryType *positive,
-                                             PositiveType *unitary) const
-{
-  ei_assert(m_matU.rows() == m_matV.rows() && "Polar decomposition is only for square matrices");
-  if(unitary) *unitary = m_matU * m_matV.adjoint();
-  if(positive) *positive = m_matU * m_sigma.asDiagonal() * m_matU.adjoint();
-}
-
-/** decomposes the matrix as a product rotation x scaling, the scaling being
-  * not necessarily positive.
-  *
-  * If either pointer is zero, the corresponding computation is skipped.
-  *
-  * This method requires the Geometry module.
-  *
-  * \sa computeScalingRotation(), computeUnitaryPositive()
-  */
-template<typename MatrixType>
-template<typename RotationType, typename ScalingType>
-void SVD<MatrixType>::computeRotationScaling(RotationType *rotation, ScalingType *scaling) const
-{
-  ei_assert(m_matU.rows() == m_matV.rows() && "Polar decomposition is only for square matrices");
-  Scalar x = (m_matU * m_matV.adjoint()).determinant(); // so x has absolute value 1
-  Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> sv(m_sigma);
-  sv.coeffRef(0) *= x;
-  if(scaling) scaling->lazyAssign(m_matV * sv.asDiagonal() * m_matV.adjoint());
-  if(rotation)
-  {
-    MatrixType m(m_matU);
-    m.col(0) /= x;
-    rotation->lazyAssign(m * m_matV.adjoint());
-  }
-}
-
-/** decomposes the matrix as a product scaling x rotation, the scaling being
-  * not necessarily positive.
-  *
-  * If either pointer is zero, the corresponding computation is skipped.
-  *
-  * This method requires the Geometry module.
-  *
-  * \sa computeRotationScaling(), computeUnitaryPositive()
-  */
-template<typename MatrixType>
-template<typename ScalingType, typename RotationType>
-void SVD<MatrixType>::computeScalingRotation(ScalingType *scaling, RotationType *rotation) const
-{
-  ei_assert(m_matU.rows() == m_matV.rows() && "Polar decomposition is only for square matrices");
-  Scalar x = (m_matU * m_matV.adjoint()).determinant(); // so x has absolute value 1
-  Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> sv(m_sigma);
-  sv.coeffRef(0) *= x;
-  if(scaling) scaling->lazyAssign(m_matU * sv.asDiagonal() * m_matU.adjoint());
-  if(rotation)
-  {
-    MatrixType m(m_matU);
-    m.col(0) /= x;
-    rotation->lazyAssign(m * m_matV.adjoint());
-  }
-}
-
-
-/** \svd_module
-  * \returns the SVD decomposition of \c *this
-  */
-template<typename Derived>
-inline SVD<typename MatrixBase<Derived>::PlainObject>
-MatrixBase<Derived>::svd() const
-{
-  return SVD<PlainObject>(derived());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN2_SVD_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/ComplexEigenSolver.h b/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/ComplexEigenSolver.h
deleted file mode 100644
index bd41bf7..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/ComplexEigenSolver.h
+++ /dev/null
@@ -1,333 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Claire Maurice
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2010,2012 Jitse Niesen <jitse at maths.leeds.ac.uk>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_COMPLEX_EIGEN_SOLVER_H
-#define EIGEN_COMPLEX_EIGEN_SOLVER_H
-
-#include "./ComplexSchur.h"
-
-namespace Eigen { 
-
-/** \eigenvalues_module \ingroup Eigenvalues_Module
-  *
-  *
-  * \class ComplexEigenSolver
-  *
-  * \brief Computes eigenvalues and eigenvectors of general complex matrices
-  *
-  * \tparam _MatrixType the type of the matrix of which we are
-  * computing the eigendecomposition; this is expected to be an
-  * instantiation of the Matrix class template.
-  *
-  * The eigenvalues and eigenvectors of a matrix \f$ A \f$ are scalars
-  * \f$ \lambda \f$ and vectors \f$ v \f$ such that \f$ Av = \lambda v
-  * \f$.  If \f$ D \f$ is a diagonal matrix with the eigenvalues on
-  * the diagonal, and \f$ V \f$ is a matrix with the eigenvectors as
-  * its columns, then \f$ A V = V D \f$. The matrix \f$ V \f$ is
-  * almost always invertible, in which case we have \f$ A = V D V^{-1}
-  * \f$. This is called the eigendecomposition.
-  *
-  * The main function in this class is compute(), which computes the
-  * eigenvalues and eigenvectors of a given function. The
-  * documentation for that function contains an example showing the
-  * main features of the class.
-  *
-  * \sa class EigenSolver, class SelfAdjointEigenSolver
-  */
-template<typename _MatrixType> class ComplexEigenSolver
-{
-  public:
-
-    /** \brief Synonym for the template parameter \p _MatrixType. */
-    typedef _MatrixType MatrixType;
-
-    enum {
-      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-      Options = MatrixType::Options,
-      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
-    };
-
-    /** \brief Scalar type for matrices of type #MatrixType. */
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-    typedef typename MatrixType::Index Index;
-
-    /** \brief Complex scalar type for #MatrixType.
-      *
-      * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
-      * \c float or \c double) and just \c Scalar if #Scalar is
-      * complex.
-      */
-    typedef std::complex<RealScalar> ComplexScalar;
-
-    /** \brief Type for vector of eigenvalues as returned by eigenvalues().
-      *
-      * This is a column vector with entries of type #ComplexScalar.
-      * The length of the vector is the size of #MatrixType.
-      */
-    typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options&(~RowMajor), MaxColsAtCompileTime, 1> EigenvalueType;
-
-    /** \brief Type for matrix of eigenvectors as returned by eigenvectors().
-      *
-      * This is a square matrix with entries of type #ComplexScalar.
-      * The size is the same as the size of #MatrixType.
-      */
-    typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> EigenvectorType;
-
-    /** \brief Default constructor.
-      *
-      * The default constructor is useful in cases in which the user intends to
-      * perform decompositions via compute().
-      */
-    ComplexEigenSolver()
-            : m_eivec(),
-              m_eivalues(),
-              m_schur(),
-              m_isInitialized(false),
-              m_eigenvectorsOk(false),
-              m_matX()
-    {}
-
-    /** \brief Default Constructor with memory preallocation
-      *
-      * Like the default constructor but with preallocation of the internal data
-      * according to the specified problem \a size.
-      * \sa ComplexEigenSolver()
-      */
-    ComplexEigenSolver(Index size)
-            : m_eivec(size, size),
-              m_eivalues(size),
-              m_schur(size),
-              m_isInitialized(false),
-              m_eigenvectorsOk(false),
-              m_matX(size, size)
-    {}
-
-    /** \brief Constructor; computes eigendecomposition of given matrix.
-      *
-      * \param[in]  matrix  Square matrix whose eigendecomposition is to be computed.
-      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
-      *    eigenvalues are computed; if false, only the eigenvalues are
-      *    computed.
-      *
-      * This constructor calls compute() to compute the eigendecomposition.
-      */
-      ComplexEigenSolver(const MatrixType& matrix, bool computeEigenvectors = true)
-            : m_eivec(matrix.rows(),matrix.cols()),
-              m_eivalues(matrix.cols()),
-              m_schur(matrix.rows()),
-              m_isInitialized(false),
-              m_eigenvectorsOk(false),
-              m_matX(matrix.rows(),matrix.cols())
-    {
-      compute(matrix, computeEigenvectors);
-    }
-
-    /** \brief Returns the eigenvectors of given matrix.
-      *
-      * \returns  A const reference to the matrix whose columns are the eigenvectors.
-      *
-      * \pre Either the constructor
-      * ComplexEigenSolver(const MatrixType& matrix, bool) or the member
-      * function compute(const MatrixType& matrix, bool) has been called before
-      * to compute the eigendecomposition of a matrix, and
-      * \p computeEigenvectors was set to true (the default).
-      *
-      * This function returns a matrix whose columns are the eigenvectors. Column
-      * \f$ k \f$ is an eigenvector corresponding to eigenvalue number \f$ k
-      * \f$ as returned by eigenvalues().  The eigenvectors are normalized to
-      * have (Euclidean) norm equal to one. The matrix returned by this
-      * function is the matrix \f$ V \f$ in the eigendecomposition \f$ A = V D
-      * V^{-1} \f$, if it exists.
-      *
-      * Example: \include ComplexEigenSolver_eigenvectors.cpp
-      * Output: \verbinclude ComplexEigenSolver_eigenvectors.out
-      */
-    const EigenvectorType& eigenvectors() const
-    {
-      eigen_assert(m_isInitialized && "ComplexEigenSolver is not initialized.");
-      eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
-      return m_eivec;
-    }
-
-    /** \brief Returns the eigenvalues of given matrix.
-      *
-      * \returns A const reference to the column vector containing the eigenvalues.
-      *
-      * \pre Either the constructor
-      * ComplexEigenSolver(const MatrixType& matrix, bool) or the member
-      * function compute(const MatrixType& matrix, bool) has been called before
-      * to compute the eigendecomposition of a matrix.
-      *
-      * This function returns a column vector containing the
-      * eigenvalues. Eigenvalues are repeated according to their
-      * algebraic multiplicity, so there are as many eigenvalues as
-      * rows in the matrix. The eigenvalues are not sorted in any particular
-      * order.
-      *
-      * Example: \include ComplexEigenSolver_eigenvalues.cpp
-      * Output: \verbinclude ComplexEigenSolver_eigenvalues.out
-      */
-    const EigenvalueType& eigenvalues() const
-    {
-      eigen_assert(m_isInitialized && "ComplexEigenSolver is not initialized.");
-      return m_eivalues;
-    }
-
-    /** \brief Computes eigendecomposition of given matrix.
-      *
-      * \param[in]  matrix  Square matrix whose eigendecomposition is to be computed.
-      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
-      *    eigenvalues are computed; if false, only the eigenvalues are
-      *    computed.
-      * \returns    Reference to \c *this
-      *
-      * This function computes the eigenvalues of the complex matrix \p matrix.
-      * The eigenvalues() function can be used to retrieve them.  If
-      * \p computeEigenvectors is true, then the eigenvectors are also computed
-      * and can be retrieved by calling eigenvectors().
-      *
-      * The matrix is first reduced to Schur form using the
-      * ComplexSchur class. The Schur decomposition is then used to
-      * compute the eigenvalues and eigenvectors.
-      *
-      * The cost of the computation is dominated by the cost of the
-      * Schur decomposition, which is \f$ O(n^3) \f$ where \f$ n \f$
-      * is the size of the matrix.
-      *
-      * Example: \include ComplexEigenSolver_compute.cpp
-      * Output: \verbinclude ComplexEigenSolver_compute.out
-      */
-    ComplexEigenSolver& compute(const MatrixType& matrix, bool computeEigenvectors = true);
-
-    /** \brief Reports whether previous computation was successful.
-      *
-      * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "ComplexEigenSolver is not initialized.");
-      return m_schur.info();
-    }
-
-    /** \brief Sets the maximum number of iterations allowed. */
-    ComplexEigenSolver& setMaxIterations(Index maxIters)
-    {
-      m_schur.setMaxIterations(maxIters);
-      return *this;
-    }
-
-    /** \brief Returns the maximum number of iterations. */
-    Index getMaxIterations()
-    {
-      return m_schur.getMaxIterations();
-    }
-
-  protected:
-    EigenvectorType m_eivec;
-    EigenvalueType m_eivalues;
-    ComplexSchur<MatrixType> m_schur;
-    bool m_isInitialized;
-    bool m_eigenvectorsOk;
-    EigenvectorType m_matX;
-
-  private:
-    void doComputeEigenvectors(const RealScalar& matrixnorm);
-    void sortEigenvalues(bool computeEigenvectors);
-};
-
-
-template<typename MatrixType>
-ComplexEigenSolver<MatrixType>& 
-ComplexEigenSolver<MatrixType>::compute(const MatrixType& matrix, bool computeEigenvectors)
-{
-  // this code is inspired from Jampack
-  eigen_assert(matrix.cols() == matrix.rows());
-
-  // Do a complex Schur decomposition, A = U T U^*
-  // The eigenvalues are on the diagonal of T.
-  m_schur.compute(matrix, computeEigenvectors);
-
-  if(m_schur.info() == Success)
-  {
-    m_eivalues = m_schur.matrixT().diagonal();
-    if(computeEigenvectors)
-      doComputeEigenvectors(matrix.norm());
-    sortEigenvalues(computeEigenvectors);
-  }
-
-  m_isInitialized = true;
-  m_eigenvectorsOk = computeEigenvectors;
-  return *this;
-}
-
-
-template<typename MatrixType>
-void ComplexEigenSolver<MatrixType>::doComputeEigenvectors(const RealScalar& matrixnorm)
-{
-  const Index n = m_eivalues.size();
-
-  // Compute X such that T = X D X^(-1), where D is the diagonal of T.
-  // The matrix X is unit triangular.
-  m_matX = EigenvectorType::Zero(n, n);
-  for(Index k=n-1 ; k>=0 ; k--)
-  {
-    m_matX.coeffRef(k,k) = ComplexScalar(1.0,0.0);
-    // Compute X(i,k) using the (i,k) entry of the equation X T = D X
-    for(Index i=k-1 ; i>=0 ; i--)
-    {
-      m_matX.coeffRef(i,k) = -m_schur.matrixT().coeff(i,k);
-      if(k-i-1>0)
-        m_matX.coeffRef(i,k) -= (m_schur.matrixT().row(i).segment(i+1,k-i-1) * m_matX.col(k).segment(i+1,k-i-1)).value();
-      ComplexScalar z = m_schur.matrixT().coeff(i,i) - m_schur.matrixT().coeff(k,k);
-      if(z==ComplexScalar(0))
-      {
-        // If the i-th and k-th eigenvalue are equal, then z equals 0.
-        // Use a small value instead, to prevent division by zero.
-        internal::real_ref(z) = NumTraits<RealScalar>::epsilon() * matrixnorm;
-      }
-      m_matX.coeffRef(i,k) = m_matX.coeff(i,k) / z;
-    }
-  }
-
-  // Compute V as V = U X; now A = U T U^* = U X D X^(-1) U^* = V D V^(-1)
-  m_eivec.noalias() = m_schur.matrixU() * m_matX;
-  // .. and normalize the eigenvectors
-  for(Index k=0 ; k<n ; k++)
-  {
-    m_eivec.col(k).normalize();
-  }
-}
-
-
-template<typename MatrixType>
-void ComplexEigenSolver<MatrixType>::sortEigenvalues(bool computeEigenvectors)
-{
-  const Index n =  m_eivalues.size();
-  for (Index i=0; i<n; i++)
-  {
-    Index k;
-    m_eivalues.cwiseAbs().tail(n-i).minCoeff(&k);
-    if (k != 0)
-    {
-      k += i;
-      std::swap(m_eivalues[k],m_eivalues[i]);
-      if(computeEigenvectors)
-	m_eivec.col(i).swap(m_eivec.col(k));
-    }
-  }
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_COMPLEX_EIGEN_SOLVER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/ComplexSchur.h b/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/ComplexSchur.h
deleted file mode 100644
index 62b57ff..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/ComplexSchur.h
+++ /dev/null
@@ -1,456 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Claire Maurice
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2010,2012 Jitse Niesen <jitse at maths.leeds.ac.uk>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_COMPLEX_SCHUR_H
-#define EIGEN_COMPLEX_SCHUR_H
-
-#include "./HessenbergDecomposition.h"
-
-namespace Eigen { 
-
-namespace internal {
-template<typename MatrixType, bool IsComplex> struct complex_schur_reduce_to_hessenberg;
-}
-
-/** \eigenvalues_module \ingroup Eigenvalues_Module
-  *
-  *
-  * \class ComplexSchur
-  *
-  * \brief Performs a complex Schur decomposition of a real or complex square matrix
-  *
-  * \tparam _MatrixType the type of the matrix of which we are
-  * computing the Schur decomposition; this is expected to be an
-  * instantiation of the Matrix class template.
-  *
-  * Given a real or complex square matrix A, this class computes the
-  * Schur decomposition: \f$ A = U T U^*\f$ where U is a unitary
-  * complex matrix, and T is a complex upper triangular matrix.  The
-  * diagonal of the matrix T corresponds to the eigenvalues of the
-  * matrix A.
-  *
-  * Call the function compute() to compute the Schur decomposition of
-  * a given matrix. Alternatively, you can use the 
-  * ComplexSchur(const MatrixType&, bool) constructor which computes
-  * the Schur decomposition at construction time. Once the
-  * decomposition is computed, you can use the matrixU() and matrixT()
-  * functions to retrieve the matrices U and V in the decomposition.
-  *
-  * \note This code is inspired from Jampack
-  *
-  * \sa class RealSchur, class EigenSolver, class ComplexEigenSolver
-  */
-template<typename _MatrixType> class ComplexSchur
-{
-  public:
-    typedef _MatrixType MatrixType;
-    enum {
-      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-      Options = MatrixType::Options,
-      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
-    };
-
-    /** \brief Scalar type for matrices of type \p _MatrixType. */
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-    typedef typename MatrixType::Index Index;
-
-    /** \brief Complex scalar type for \p _MatrixType. 
-      *
-      * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
-      * \c float or \c double) and just \c Scalar if #Scalar is
-      * complex.
-      */
-    typedef std::complex<RealScalar> ComplexScalar;
-
-    /** \brief Type for the matrices in the Schur decomposition.
-      *
-      * This is a square matrix with entries of type #ComplexScalar. 
-      * The size is the same as the size of \p _MatrixType.
-      */
-    typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> ComplexMatrixType;
-
-    /** \brief Default constructor.
-      *
-      * \param [in] size  Positive integer, size of the matrix whose Schur decomposition will be computed.
-      *
-      * The default constructor is useful in cases in which the user
-      * intends to perform decompositions via compute().  The \p size
-      * parameter is only used as a hint. It is not an error to give a
-      * wrong \p size, but it may impair performance.
-      *
-      * \sa compute() for an example.
-      */
-    ComplexSchur(Index size = RowsAtCompileTime==Dynamic ? 1 : RowsAtCompileTime)
-      : m_matT(size,size),
-        m_matU(size,size),
-        m_hess(size),
-        m_isInitialized(false),
-        m_matUisUptodate(false),
-        m_maxIters(-1)
-    {}
-
-    /** \brief Constructor; computes Schur decomposition of given matrix. 
-      * 
-      * \param[in]  matrix    Square matrix whose Schur decomposition is to be computed.
-      * \param[in]  computeU  If true, both T and U are computed; if false, only T is computed.
-      *
-      * This constructor calls compute() to compute the Schur decomposition.
-      *
-      * \sa matrixT() and matrixU() for examples.
-      */
-    ComplexSchur(const MatrixType& matrix, bool computeU = true)
-      : m_matT(matrix.rows(),matrix.cols()),
-        m_matU(matrix.rows(),matrix.cols()),
-        m_hess(matrix.rows()),
-        m_isInitialized(false),
-        m_matUisUptodate(false),
-        m_maxIters(-1)
-    {
-      compute(matrix, computeU);
-    }
-
-    /** \brief Returns the unitary matrix in the Schur decomposition. 
-      *
-      * \returns A const reference to the matrix U.
-      *
-      * It is assumed that either the constructor
-      * ComplexSchur(const MatrixType& matrix, bool computeU) or the
-      * member function compute(const MatrixType& matrix, bool computeU)
-      * has been called before to compute the Schur decomposition of a
-      * matrix, and that \p computeU was set to true (the default
-      * value).
-      *
-      * Example: \include ComplexSchur_matrixU.cpp
-      * Output: \verbinclude ComplexSchur_matrixU.out
-      */
-    const ComplexMatrixType& matrixU() const
-    {
-      eigen_assert(m_isInitialized && "ComplexSchur is not initialized.");
-      eigen_assert(m_matUisUptodate && "The matrix U has not been computed during the ComplexSchur decomposition.");
-      return m_matU;
-    }
-
-    /** \brief Returns the triangular matrix in the Schur decomposition. 
-      *
-      * \returns A const reference to the matrix T.
-      *
-      * It is assumed that either the constructor
-      * ComplexSchur(const MatrixType& matrix, bool computeU) or the
-      * member function compute(const MatrixType& matrix, bool computeU)
-      * has been called before to compute the Schur decomposition of a
-      * matrix.
-      *
-      * Note that this function returns a plain square matrix. If you want to reference
-      * only the upper triangular part, use:
-      * \code schur.matrixT().triangularView<Upper>() \endcode 
-      *
-      * Example: \include ComplexSchur_matrixT.cpp
-      * Output: \verbinclude ComplexSchur_matrixT.out
-      */
-    const ComplexMatrixType& matrixT() const
-    {
-      eigen_assert(m_isInitialized && "ComplexSchur is not initialized.");
-      return m_matT;
-    }
-
-    /** \brief Computes Schur decomposition of given matrix. 
-      * 
-      * \param[in]  matrix  Square matrix whose Schur decomposition is to be computed.
-      * \param[in]  computeU  If true, both T and U are computed; if false, only T is computed.
-
-      * \returns    Reference to \c *this
-      *
-      * The Schur decomposition is computed by first reducing the
-      * matrix to Hessenberg form using the class
-      * HessenbergDecomposition. The Hessenberg matrix is then reduced
-      * to triangular form by performing QR iterations with a single
-      * shift. The cost of computing the Schur decomposition depends
-      * on the number of iterations; as a rough guide, it may be taken
-      * on the number of iterations; as a rough guide, it may be taken
-      * to be \f$25n^3\f$ complex flops, or \f$10n^3\f$ complex flops
-      * if \a computeU is false.
-      *
-      * Example: \include ComplexSchur_compute.cpp
-      * Output: \verbinclude ComplexSchur_compute.out
-      *
-      * \sa compute(const MatrixType&, bool, Index)
-      */
-    ComplexSchur& compute(const MatrixType& matrix, bool computeU = true);
-    
-    /** \brief Compute Schur decomposition from a given Hessenberg matrix
-     *  \param[in] matrixH Matrix in Hessenberg form H
-     *  \param[in] matrixQ orthogonal matrix Q that transform a matrix A to H : A = Q H Q^T
-     *  \param computeU Computes the matriX U of the Schur vectors
-     * \return Reference to \c *this
-     * 
-     *  This routine assumes that the matrix is already reduced in Hessenberg form matrixH
-     *  using either the class HessenbergDecomposition or another mean. 
-     *  It computes the upper quasi-triangular matrix T of the Schur decomposition of H
-     *  When computeU is true, this routine computes the matrix U such that 
-     *  A = U T U^T =  (QZ) T (QZ)^T = Q H Q^T where A is the initial matrix
-     * 
-     * NOTE Q is referenced if computeU is true; so, if the initial orthogonal matrix
-     * is not available, the user should give an identity matrix (Q.setIdentity())
-     * 
-     * \sa compute(const MatrixType&, bool)
-     */
-    template<typename HessMatrixType, typename OrthMatrixType>
-    ComplexSchur& computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ,  bool computeU=true);
-
-    /** \brief Reports whether previous computation was successful.
-      *
-      * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "ComplexSchur is not initialized.");
-      return m_info;
-    }
-
-    /** \brief Sets the maximum number of iterations allowed. 
-      *
-      * If not specified by the user, the maximum number of iterations is m_maxIterationsPerRow times the size
-      * of the matrix.
-      */
-    ComplexSchur& setMaxIterations(Index maxIters)
-    {
-      m_maxIters = maxIters;
-      return *this;
-    }
-
-    /** \brief Returns the maximum number of iterations. */
-    Index getMaxIterations()
-    {
-      return m_maxIters;
-    }
-
-    /** \brief Maximum number of iterations per row.
-      *
-      * If not otherwise specified, the maximum number of iterations is this number times the size of the
-      * matrix. It is currently set to 30.
-      */
-    static const int m_maxIterationsPerRow = 30;
-
-  protected:
-    ComplexMatrixType m_matT, m_matU;
-    HessenbergDecomposition<MatrixType> m_hess;
-    ComputationInfo m_info;
-    bool m_isInitialized;
-    bool m_matUisUptodate;
-    Index m_maxIters;
-
-  private:  
-    bool subdiagonalEntryIsNeglegible(Index i);
-    ComplexScalar computeShift(Index iu, Index iter);
-    void reduceToTriangularForm(bool computeU);
-    friend struct internal::complex_schur_reduce_to_hessenberg<MatrixType, NumTraits<Scalar>::IsComplex>;
-};
-
-/** If m_matT(i+1,i) is neglegible in floating point arithmetic
-  * compared to m_matT(i,i) and m_matT(j,j), then set it to zero and
-  * return true, else return false. */
-template<typename MatrixType>
-inline bool ComplexSchur<MatrixType>::subdiagonalEntryIsNeglegible(Index i)
-{
-  RealScalar d = internal::norm1(m_matT.coeff(i,i)) + internal::norm1(m_matT.coeff(i+1,i+1));
-  RealScalar sd = internal::norm1(m_matT.coeff(i+1,i));
-  if (internal::isMuchSmallerThan(sd, d, NumTraits<RealScalar>::epsilon()))
-  {
-    m_matT.coeffRef(i+1,i) = ComplexScalar(0);
-    return true;
-  }
-  return false;
-}
-
-
-/** Compute the shift in the current QR iteration. */
-template<typename MatrixType>
-typename ComplexSchur<MatrixType>::ComplexScalar ComplexSchur<MatrixType>::computeShift(Index iu, Index iter)
-{
-  using std::abs;
-  if (iter == 10 || iter == 20) 
-  {
-    // exceptional shift, taken from http://www.netlib.org/eispack/comqr.f
-    return abs(internal::real(m_matT.coeff(iu,iu-1))) + abs(internal::real(m_matT.coeff(iu-1,iu-2)));
-  }
-
-  // compute the shift as one of the eigenvalues of t, the 2x2
-  // diagonal block on the bottom of the active submatrix
-  Matrix<ComplexScalar,2,2> t = m_matT.template block<2,2>(iu-1,iu-1);
-  RealScalar normt = t.cwiseAbs().sum();
-  t /= normt;     // the normalization by sf is to avoid under/overflow
-
-  ComplexScalar b = t.coeff(0,1) * t.coeff(1,0);
-  ComplexScalar c = t.coeff(0,0) - t.coeff(1,1);
-  ComplexScalar disc = sqrt(c*c + RealScalar(4)*b);
-  ComplexScalar det = t.coeff(0,0) * t.coeff(1,1) - b;
-  ComplexScalar trace = t.coeff(0,0) + t.coeff(1,1);
-  ComplexScalar eival1 = (trace + disc) / RealScalar(2);
-  ComplexScalar eival2 = (trace - disc) / RealScalar(2);
-
-  if(internal::norm1(eival1) > internal::norm1(eival2))
-    eival2 = det / eival1;
-  else
-    eival1 = det / eival2;
-
-  // choose the eigenvalue closest to the bottom entry of the diagonal
-  if(internal::norm1(eival1-t.coeff(1,1)) < internal::norm1(eival2-t.coeff(1,1)))
-    return normt * eival1;
-  else
-    return normt * eival2;
-}
-
-
-template<typename MatrixType>
-ComplexSchur<MatrixType>& ComplexSchur<MatrixType>::compute(const MatrixType& matrix, bool computeU)
-{
-  m_matUisUptodate = false;
-  eigen_assert(matrix.cols() == matrix.rows());
-
-  if(matrix.cols() == 1)
-  {
-    m_matT = matrix.template cast<ComplexScalar>();
-    if(computeU)  m_matU = ComplexMatrixType::Identity(1,1);
-    m_info = Success;
-    m_isInitialized = true;
-    m_matUisUptodate = computeU;
-    return *this;
-  }
-
-  internal::complex_schur_reduce_to_hessenberg<MatrixType, NumTraits<Scalar>::IsComplex>::run(*this, matrix, computeU);
-  computeFromHessenberg(m_matT, m_matU, computeU);
-  return *this;
-}
-
-template<typename MatrixType>
-template<typename HessMatrixType, typename OrthMatrixType>
-ComplexSchur<MatrixType>& ComplexSchur<MatrixType>::computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ, bool computeU)
-{
-  m_matT = matrixH;
-  if(computeU)
-    m_matU = matrixQ;
-  reduceToTriangularForm(computeU);
-  return *this;
-}
-namespace internal {
-
-/* Reduce given matrix to Hessenberg form */
-template<typename MatrixType, bool IsComplex>
-struct complex_schur_reduce_to_hessenberg
-{
-  // this is the implementation for the case IsComplex = true
-  static void run(ComplexSchur<MatrixType>& _this, const MatrixType& matrix, bool computeU)
-  {
-    _this.m_hess.compute(matrix);
-    _this.m_matT = _this.m_hess.matrixH();
-    if(computeU)  _this.m_matU = _this.m_hess.matrixQ();
-  }
-};
-
-template<typename MatrixType>
-struct complex_schur_reduce_to_hessenberg<MatrixType, false>
-{
-  static void run(ComplexSchur<MatrixType>& _this, const MatrixType& matrix, bool computeU)
-  {
-    typedef typename ComplexSchur<MatrixType>::ComplexScalar ComplexScalar;
-
-    // Note: m_hess is over RealScalar; m_matT and m_matU is over ComplexScalar
-    _this.m_hess.compute(matrix);
-    _this.m_matT = _this.m_hess.matrixH().template cast<ComplexScalar>();
-    if(computeU)  
-    {
-      // This may cause an allocation which seems to be avoidable
-      MatrixType Q = _this.m_hess.matrixQ(); 
-      _this.m_matU = Q.template cast<ComplexScalar>();
-    }
-  }
-};
-
-} // end namespace internal
-
-// Reduce the Hessenberg matrix m_matT to triangular form by QR iteration.
-template<typename MatrixType>
-void ComplexSchur<MatrixType>::reduceToTriangularForm(bool computeU)
-{  
-  Index maxIters = m_maxIters;
-  if (maxIters == -1)
-    maxIters = m_maxIterationsPerRow * m_matT.rows();
-
-  // The matrix m_matT is divided in three parts. 
-  // Rows 0,...,il-1 are decoupled from the rest because m_matT(il,il-1) is zero. 
-  // Rows il,...,iu is the part we are working on (the active submatrix).
-  // Rows iu+1,...,end are already brought in triangular form.
-  Index iu = m_matT.cols() - 1;
-  Index il;
-  Index iter = 0; // number of iterations we are working on the (iu,iu) element
-  Index totalIter = 0; // number of iterations for whole matrix
-
-  while(true)
-  {
-    // find iu, the bottom row of the active submatrix
-    while(iu > 0)
-    {
-      if(!subdiagonalEntryIsNeglegible(iu-1)) break;
-      iter = 0;
-      --iu;
-    }
-
-    // if iu is zero then we are done; the whole matrix is triangularized
-    if(iu==0) break;
-
-    // if we spent too many iterations, we give up
-    iter++;
-    totalIter++;
-    if(totalIter > maxIters) break;
-
-    // find il, the top row of the active submatrix
-    il = iu-1;
-    while(il > 0 && !subdiagonalEntryIsNeglegible(il-1))
-    {
-      --il;
-    }
-
-    /* perform the QR step using Givens rotations. The first rotation
-       creates a bulge; the (il+2,il) element becomes nonzero. This
-       bulge is chased down to the bottom of the active submatrix. */
-
-    ComplexScalar shift = computeShift(iu, iter);
-    JacobiRotation<ComplexScalar> rot;
-    rot.makeGivens(m_matT.coeff(il,il) - shift, m_matT.coeff(il+1,il));
-    m_matT.rightCols(m_matT.cols()-il).applyOnTheLeft(il, il+1, rot.adjoint());
-    m_matT.topRows((std::min)(il+2,iu)+1).applyOnTheRight(il, il+1, rot);
-    if(computeU) m_matU.applyOnTheRight(il, il+1, rot);
-
-    for(Index i=il+1 ; i<iu ; i++)
-    {
-      rot.makeGivens(m_matT.coeffRef(i,i-1), m_matT.coeffRef(i+1,i-1), &m_matT.coeffRef(i,i-1));
-      m_matT.coeffRef(i+1,i-1) = ComplexScalar(0);
-      m_matT.rightCols(m_matT.cols()-i).applyOnTheLeft(i, i+1, rot.adjoint());
-      m_matT.topRows((std::min)(i+2,iu)+1).applyOnTheRight(i, i+1, rot);
-      if(computeU) m_matU.applyOnTheRight(i, i+1, rot);
-    }
-  }
-
-  if(totalIter <= maxIters)
-    m_info = Success;
-  else
-    m_info = NoConvergence;
-
-  m_isInitialized = true;
-  m_matUisUptodate = computeU;
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_COMPLEX_SCHUR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/ComplexSchur_MKL.h b/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/ComplexSchur_MKL.h
deleted file mode 100644
index 91496ae..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/ComplexSchur_MKL.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- Copyright (c) 2011, Intel Corporation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
- * Neither the name of Intel Corporation nor the names of its contributors may
-   be used to endorse or promote products derived from this software without
-   specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ********************************************************************************
- *   Content : Eigen bindings to Intel(R) MKL
- *    Complex Schur needed to complex unsymmetrical eigenvalues/eigenvectors.
- ********************************************************************************
-*/
-
-#ifndef EIGEN_COMPLEX_SCHUR_MKL_H
-#define EIGEN_COMPLEX_SCHUR_MKL_H
-
-#include "Eigen/src/Core/util/MKL_support.h"
-
-namespace Eigen { 
-
-/** \internal Specialization for the data types supported by MKL */
-
-#define EIGEN_MKL_SCHUR_COMPLEX(EIGTYPE, MKLTYPE, MKLPREFIX, MKLPREFIX_U, EIGCOLROW, MKLCOLROW) \
-template<> inline \
-ComplexSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >& \
-ComplexSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >::compute(const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW>& matrix, bool computeU) \
-{ \
-  typedef Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> MatrixType; \
-  typedef MatrixType::Scalar Scalar; \
-  typedef MatrixType::RealScalar RealScalar; \
-  typedef std::complex<RealScalar> ComplexScalar; \
-\
-  eigen_assert(matrix.cols() == matrix.rows()); \
-\
-  m_matUisUptodate = false; \
-  if(matrix.cols() == 1) \
-  { \
-    m_matT = matrix.cast<ComplexScalar>(); \
-    if(computeU)  m_matU = ComplexMatrixType::Identity(1,1); \
-      m_info = Success; \
-      m_isInitialized = true; \
-      m_matUisUptodate = computeU; \
-      return *this; \
-  } \
-  lapack_int n = matrix.cols(), sdim, info; \
-  lapack_int lda = matrix.outerStride(); \
-  lapack_int matrix_order = MKLCOLROW; \
-  char jobvs, sort='N'; \
-  LAPACK_##MKLPREFIX_U##_SELECT1 select = 0; \
-  jobvs = (computeU) ? 'V' : 'N'; \
-  m_matU.resize(n, n); \
-  lapack_int ldvs  = m_matU.outerStride(); \
-  m_matT = matrix; \
-  Matrix<EIGTYPE, Dynamic, Dynamic> w; \
-  w.resize(n, 1);\
-  info = LAPACKE_##MKLPREFIX##gees( matrix_order, jobvs, sort, select, n, (MKLTYPE*)m_matT.data(), lda, &sdim, (MKLTYPE*)w.data(), (MKLTYPE*)m_matU.data(), ldvs ); \
-  if(info == 0) \
-    m_info = Success; \
-  else \
-    m_info = NoConvergence; \
-\
-  m_isInitialized = true; \
-  m_matUisUptodate = computeU; \
-  return *this; \
-\
-}
-
-EIGEN_MKL_SCHUR_COMPLEX(dcomplex, MKL_Complex16, z, Z, ColMajor, LAPACK_COL_MAJOR)
-EIGEN_MKL_SCHUR_COMPLEX(scomplex, MKL_Complex8,  c, C, ColMajor, LAPACK_COL_MAJOR)
-EIGEN_MKL_SCHUR_COMPLEX(dcomplex, MKL_Complex16, z, Z, RowMajor, LAPACK_ROW_MAJOR)
-EIGEN_MKL_SCHUR_COMPLEX(scomplex, MKL_Complex8,  c, C, RowMajor, LAPACK_ROW_MAJOR)
-
-} // end namespace Eigen
-
-#endif // EIGEN_COMPLEX_SCHUR_MKL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/EigenSolver.h b/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/EigenSolver.h
deleted file mode 100644
index f0d4e5a..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/EigenSolver.h
+++ /dev/null
@@ -1,598 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2010,2012 Jitse Niesen <jitse at maths.leeds.ac.uk>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_EIGENSOLVER_H
-#define EIGEN_EIGENSOLVER_H
-
-#include "./RealSchur.h"
-
-namespace Eigen { 
-
-/** \eigenvalues_module \ingroup Eigenvalues_Module
-  *
-  *
-  * \class EigenSolver
-  *
-  * \brief Computes eigenvalues and eigenvectors of general matrices
-  *
-  * \tparam _MatrixType the type of the matrix of which we are computing the
-  * eigendecomposition; this is expected to be an instantiation of the Matrix
-  * class template. Currently, only real matrices are supported.
-  *
-  * The eigenvalues and eigenvectors of a matrix \f$ A \f$ are scalars
-  * \f$ \lambda \f$ and vectors \f$ v \f$ such that \f$ Av = \lambda v \f$.  If
-  * \f$ D \f$ is a diagonal matrix with the eigenvalues on the diagonal, and
-  * \f$ V \f$ is a matrix with the eigenvectors as its columns, then \f$ A V =
-  * V D \f$. The matrix \f$ V \f$ is almost always invertible, in which case we
-  * have \f$ A = V D V^{-1} \f$. This is called the eigendecomposition.
-  *
-  * The eigenvalues and eigenvectors of a matrix may be complex, even when the
-  * matrix is real. However, we can choose real matrices \f$ V \f$ and \f$ D
-  * \f$ satisfying \f$ A V = V D \f$, just like the eigendecomposition, if the
-  * matrix \f$ D \f$ is not required to be diagonal, but if it is allowed to
-  * have blocks of the form
-  * \f[ \begin{bmatrix} u & v \\ -v & u \end{bmatrix} \f]
-  * (where \f$ u \f$ and \f$ v \f$ are real numbers) on the diagonal.  These
-  * blocks correspond to complex eigenvalue pairs \f$ u \pm iv \f$. We call
-  * this variant of the eigendecomposition the pseudo-eigendecomposition.
-  *
-  * Call the function compute() to compute the eigenvalues and eigenvectors of
-  * a given matrix. Alternatively, you can use the 
-  * EigenSolver(const MatrixType&, bool) constructor which computes the
-  * eigenvalues and eigenvectors at construction time. Once the eigenvalue and
-  * eigenvectors are computed, they can be retrieved with the eigenvalues() and
-  * eigenvectors() functions. The pseudoEigenvalueMatrix() and
-  * pseudoEigenvectors() methods allow the construction of the
-  * pseudo-eigendecomposition.
-  *
-  * The documentation for EigenSolver(const MatrixType&, bool) contains an
-  * example of the typical use of this class.
-  *
-  * \note The implementation is adapted from
-  * <a href="http://math.nist.gov/javanumerics/jama/">JAMA</a> (public domain).
-  * Their code is based on EISPACK.
-  *
-  * \sa MatrixBase::eigenvalues(), class ComplexEigenSolver, class SelfAdjointEigenSolver
-  */
-template<typename _MatrixType> class EigenSolver
-{
-  public:
-
-    /** \brief Synonym for the template parameter \p _MatrixType. */
-    typedef _MatrixType MatrixType;
-
-    enum {
-      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-      Options = MatrixType::Options,
-      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
-    };
-
-    /** \brief Scalar type for matrices of type #MatrixType. */
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-    typedef typename MatrixType::Index Index;
-
-    /** \brief Complex scalar type for #MatrixType. 
-      *
-      * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
-      * \c float or \c double) and just \c Scalar if #Scalar is
-      * complex.
-      */
-    typedef std::complex<RealScalar> ComplexScalar;
-
-    /** \brief Type for vector of eigenvalues as returned by eigenvalues(). 
-      *
-      * This is a column vector with entries of type #ComplexScalar.
-      * The length of the vector is the size of #MatrixType.
-      */
-    typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> EigenvalueType;
-
-    /** \brief Type for matrix of eigenvectors as returned by eigenvectors(). 
-      *
-      * This is a square matrix with entries of type #ComplexScalar. 
-      * The size is the same as the size of #MatrixType.
-      */
-    typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> EigenvectorsType;
-
-    /** \brief Default constructor.
-      *
-      * The default constructor is useful in cases in which the user intends to
-      * perform decompositions via EigenSolver::compute(const MatrixType&, bool).
-      *
-      * \sa compute() for an example.
-      */
- EigenSolver() : m_eivec(), m_eivalues(), m_isInitialized(false), m_realSchur(), m_matT(), m_tmp() {}
-
-    /** \brief Default constructor with memory preallocation
-      *
-      * Like the default constructor but with preallocation of the internal data
-      * according to the specified problem \a size.
-      * \sa EigenSolver()
-      */
-    EigenSolver(Index size)
-      : m_eivec(size, size),
-        m_eivalues(size),
-        m_isInitialized(false),
-        m_eigenvectorsOk(false),
-        m_realSchur(size),
-        m_matT(size, size), 
-        m_tmp(size)
-    {}
-
-    /** \brief Constructor; computes eigendecomposition of given matrix. 
-      * 
-      * \param[in]  matrix  Square matrix whose eigendecomposition is to be computed.
-      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
-      *    eigenvalues are computed; if false, only the eigenvalues are
-      *    computed. 
-      *
-      * This constructor calls compute() to compute the eigenvalues
-      * and eigenvectors.
-      *
-      * Example: \include EigenSolver_EigenSolver_MatrixType.cpp
-      * Output: \verbinclude EigenSolver_EigenSolver_MatrixType.out
-      *
-      * \sa compute()
-      */
-    EigenSolver(const MatrixType& matrix, bool computeEigenvectors = true)
-      : m_eivec(matrix.rows(), matrix.cols()),
-        m_eivalues(matrix.cols()),
-        m_isInitialized(false),
-        m_eigenvectorsOk(false),
-        m_realSchur(matrix.cols()),
-        m_matT(matrix.rows(), matrix.cols()), 
-        m_tmp(matrix.cols())
-    {
-      compute(matrix, computeEigenvectors);
-    }
-
-    /** \brief Returns the eigenvectors of given matrix. 
-      *
-      * \returns  %Matrix whose columns are the (possibly complex) eigenvectors.
-      *
-      * \pre Either the constructor 
-      * EigenSolver(const MatrixType&,bool) or the member function
-      * compute(const MatrixType&, bool) has been called before, and
-      * \p computeEigenvectors was set to true (the default).
-      *
-      * Column \f$ k \f$ of the returned matrix is an eigenvector corresponding
-      * to eigenvalue number \f$ k \f$ as returned by eigenvalues().  The
-      * eigenvectors are normalized to have (Euclidean) norm equal to one. The
-      * matrix returned by this function is the matrix \f$ V \f$ in the
-      * eigendecomposition \f$ A = V D V^{-1} \f$, if it exists.
-      *
-      * Example: \include EigenSolver_eigenvectors.cpp
-      * Output: \verbinclude EigenSolver_eigenvectors.out
-      *
-      * \sa eigenvalues(), pseudoEigenvectors()
-      */
-    EigenvectorsType eigenvectors() const;
-
-    /** \brief Returns the pseudo-eigenvectors of given matrix. 
-      *
-      * \returns  Const reference to matrix whose columns are the pseudo-eigenvectors.
-      *
-      * \pre Either the constructor 
-      * EigenSolver(const MatrixType&,bool) or the member function
-      * compute(const MatrixType&, bool) has been called before, and
-      * \p computeEigenvectors was set to true (the default).
-      *
-      * The real matrix \f$ V \f$ returned by this function and the
-      * block-diagonal matrix \f$ D \f$ returned by pseudoEigenvalueMatrix()
-      * satisfy \f$ AV = VD \f$.
-      *
-      * Example: \include EigenSolver_pseudoEigenvectors.cpp
-      * Output: \verbinclude EigenSolver_pseudoEigenvectors.out
-      *
-      * \sa pseudoEigenvalueMatrix(), eigenvectors()
-      */
-    const MatrixType& pseudoEigenvectors() const
-    {
-      eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
-      eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
-      return m_eivec;
-    }
-
-    /** \brief Returns the block-diagonal matrix in the pseudo-eigendecomposition.
-      *
-      * \returns  A block-diagonal matrix.
-      *
-      * \pre Either the constructor 
-      * EigenSolver(const MatrixType&,bool) or the member function
-      * compute(const MatrixType&, bool) has been called before.
-      *
-      * The matrix \f$ D \f$ returned by this function is real and
-      * block-diagonal. The blocks on the diagonal are either 1-by-1 or 2-by-2
-      * blocks of the form
-      * \f$ \begin{bmatrix} u & v \\ -v & u \end{bmatrix} \f$.
-      * These blocks are not sorted in any particular order.
-      * The matrix \f$ D \f$ and the matrix \f$ V \f$ returned by
-      * pseudoEigenvectors() satisfy \f$ AV = VD \f$.
-      *
-      * \sa pseudoEigenvectors() for an example, eigenvalues()
-      */
-    MatrixType pseudoEigenvalueMatrix() const;
-
-    /** \brief Returns the eigenvalues of given matrix. 
-      *
-      * \returns A const reference to the column vector containing the eigenvalues.
-      *
-      * \pre Either the constructor 
-      * EigenSolver(const MatrixType&,bool) or the member function
-      * compute(const MatrixType&, bool) has been called before.
-      *
-      * The eigenvalues are repeated according to their algebraic multiplicity,
-      * so there are as many eigenvalues as rows in the matrix. The eigenvalues 
-      * are not sorted in any particular order.
-      *
-      * Example: \include EigenSolver_eigenvalues.cpp
-      * Output: \verbinclude EigenSolver_eigenvalues.out
-      *
-      * \sa eigenvectors(), pseudoEigenvalueMatrix(),
-      *     MatrixBase::eigenvalues()
-      */
-    const EigenvalueType& eigenvalues() const
-    {
-      eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
-      return m_eivalues;
-    }
-
-    /** \brief Computes eigendecomposition of given matrix. 
-      * 
-      * \param[in]  matrix  Square matrix whose eigendecomposition is to be computed.
-      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
-      *    eigenvalues are computed; if false, only the eigenvalues are
-      *    computed. 
-      * \returns    Reference to \c *this
-      *
-      * This function computes the eigenvalues of the real matrix \p matrix.
-      * The eigenvalues() function can be used to retrieve them.  If 
-      * \p computeEigenvectors is true, then the eigenvectors are also computed
-      * and can be retrieved by calling eigenvectors().
-      *
-      * The matrix is first reduced to real Schur form using the RealSchur
-      * class. The Schur decomposition is then used to compute the eigenvalues
-      * and eigenvectors.
-      *
-      * The cost of the computation is dominated by the cost of the
-      * Schur decomposition, which is very approximately \f$ 25n^3 \f$
-      * (where \f$ n \f$ is the size of the matrix) if \p computeEigenvectors 
-      * is true, and \f$ 10n^3 \f$ if \p computeEigenvectors is false.
-      *
-      * This method reuses of the allocated data in the EigenSolver object.
-      *
-      * Example: \include EigenSolver_compute.cpp
-      * Output: \verbinclude EigenSolver_compute.out
-      */
-    EigenSolver& compute(const MatrixType& matrix, bool computeEigenvectors = true);
-
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
-      return m_realSchur.info();
-    }
-
-    /** \brief Sets the maximum number of iterations allowed. */
-    EigenSolver& setMaxIterations(Index maxIters)
-    {
-      m_realSchur.setMaxIterations(maxIters);
-      return *this;
-    }
-
-    /** \brief Returns the maximum number of iterations. */
-    Index getMaxIterations()
-    {
-      return m_realSchur.getMaxIterations();
-    }
-
-  private:
-    void doComputeEigenvectors();
-
-  protected:
-    MatrixType m_eivec;
-    EigenvalueType m_eivalues;
-    bool m_isInitialized;
-    bool m_eigenvectorsOk;
-    RealSchur<MatrixType> m_realSchur;
-    MatrixType m_matT;
-
-    typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ColumnVectorType;
-    ColumnVectorType m_tmp;
-};
-
-template<typename MatrixType>
-MatrixType EigenSolver<MatrixType>::pseudoEigenvalueMatrix() const
-{
-  eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
-  Index n = m_eivalues.rows();
-  MatrixType matD = MatrixType::Zero(n,n);
-  for (Index i=0; i<n; ++i)
-  {
-    if (internal::isMuchSmallerThan(internal::imag(m_eivalues.coeff(i)), internal::real(m_eivalues.coeff(i))))
-      matD.coeffRef(i,i) = internal::real(m_eivalues.coeff(i));
-    else
-    {
-      matD.template block<2,2>(i,i) <<  internal::real(m_eivalues.coeff(i)), internal::imag(m_eivalues.coeff(i)),
-                                       -internal::imag(m_eivalues.coeff(i)), internal::real(m_eivalues.coeff(i));
-      ++i;
-    }
-  }
-  return matD;
-}
-
-template<typename MatrixType>
-typename EigenSolver<MatrixType>::EigenvectorsType EigenSolver<MatrixType>::eigenvectors() const
-{
-  eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
-  eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
-  Index n = m_eivec.cols();
-  EigenvectorsType matV(n,n);
-  for (Index j=0; j<n; ++j)
-  {
-    if (internal::isMuchSmallerThan(internal::imag(m_eivalues.coeff(j)), internal::real(m_eivalues.coeff(j))) || j+1==n)
-    {
-      // we have a real eigen value
-      matV.col(j) = m_eivec.col(j).template cast<ComplexScalar>();
-      matV.col(j).normalize();
-    }
-    else
-    {
-      // we have a pair of complex eigen values
-      for (Index i=0; i<n; ++i)
-      {
-        matV.coeffRef(i,j)   = ComplexScalar(m_eivec.coeff(i,j),  m_eivec.coeff(i,j+1));
-        matV.coeffRef(i,j+1) = ComplexScalar(m_eivec.coeff(i,j), -m_eivec.coeff(i,j+1));
-      }
-      matV.col(j).normalize();
-      matV.col(j+1).normalize();
-      ++j;
-    }
-  }
-  return matV;
-}
-
-template<typename MatrixType>
-EigenSolver<MatrixType>& 
-EigenSolver<MatrixType>::compute(const MatrixType& matrix, bool computeEigenvectors)
-{
-  using std::sqrt;
-  using std::abs;
-  eigen_assert(matrix.cols() == matrix.rows());
-
-  // Reduce to real Schur form.
-  m_realSchur.compute(matrix, computeEigenvectors);
-
-  if (m_realSchur.info() == Success)
-  {
-    m_matT = m_realSchur.matrixT();
-    if (computeEigenvectors)
-      m_eivec = m_realSchur.matrixU();
-  
-    // Compute eigenvalues from matT
-    m_eivalues.resize(matrix.cols());
-    Index i = 0;
-    while (i < matrix.cols()) 
-    {
-      if (i == matrix.cols() - 1 || m_matT.coeff(i+1, i) == Scalar(0)) 
-      {
-        m_eivalues.coeffRef(i) = m_matT.coeff(i, i);
-        ++i;
-      }
-      else
-      {
-        Scalar p = Scalar(0.5) * (m_matT.coeff(i, i) - m_matT.coeff(i+1, i+1));
-        Scalar z = sqrt(abs(p * p + m_matT.coeff(i+1, i) * m_matT.coeff(i, i+1)));
-        m_eivalues.coeffRef(i)   = ComplexScalar(m_matT.coeff(i+1, i+1) + p, z);
-        m_eivalues.coeffRef(i+1) = ComplexScalar(m_matT.coeff(i+1, i+1) + p, -z);
-        i += 2;
-      }
-    }
-    
-    // Compute eigenvectors.
-    if (computeEigenvectors)
-      doComputeEigenvectors();
-  }
-
-  m_isInitialized = true;
-  m_eigenvectorsOk = computeEigenvectors;
-
-  return *this;
-}
-
-// Complex scalar division.
-template<typename Scalar>
-std::complex<Scalar> cdiv(const Scalar& xr, const Scalar& xi, const Scalar& yr, const Scalar& yi)
-{
-  using std::abs;
-  Scalar r,d;
-  if (abs(yr) > abs(yi))
-  {
-      r = yi/yr;
-      d = yr + r*yi;
-      return std::complex<Scalar>((xr + r*xi)/d, (xi - r*xr)/d);
-  }
-  else
-  {
-      r = yr/yi;
-      d = yi + r*yr;
-      return std::complex<Scalar>((r*xr + xi)/d, (r*xi - xr)/d);
-  }
-}
-
-
-template<typename MatrixType>
-void EigenSolver<MatrixType>::doComputeEigenvectors()
-{
-  using std::abs;
-  const Index size = m_eivec.cols();
-  const Scalar eps = NumTraits<Scalar>::epsilon();
-
-  // inefficient! this is already computed in RealSchur
-  Scalar norm(0);
-  for (Index j = 0; j < size; ++j)
-  {
-    norm += m_matT.row(j).segment((std::max)(j-1,Index(0)), size-(std::max)(j-1,Index(0))).cwiseAbs().sum();
-  }
-  
-  // Backsubstitute to find vectors of upper triangular form
-  if (norm == 0.0)
-  {
-    return;
-  }
-
-  for (Index n = size-1; n >= 0; n--)
-  {
-    Scalar p = m_eivalues.coeff(n).real();
-    Scalar q = m_eivalues.coeff(n).imag();
-
-    // Scalar vector
-    if (q == Scalar(0))
-    {
-      Scalar lastr(0), lastw(0);
-      Index l = n;
-
-      m_matT.coeffRef(n,n) = 1.0;
-      for (Index i = n-1; i >= 0; i--)
-      {
-        Scalar w = m_matT.coeff(i,i) - p;
-        Scalar r = m_matT.row(i).segment(l,n-l+1).dot(m_matT.col(n).segment(l, n-l+1));
-
-        if (m_eivalues.coeff(i).imag() < 0.0)
-        {
-          lastw = w;
-          lastr = r;
-        }
-        else
-        {
-          l = i;
-          if (m_eivalues.coeff(i).imag() == 0.0)
-          {
-            if (w != 0.0)
-              m_matT.coeffRef(i,n) = -r / w;
-            else
-              m_matT.coeffRef(i,n) = -r / (eps * norm);
-          }
-          else // Solve real equations
-          {
-            Scalar x = m_matT.coeff(i,i+1);
-            Scalar y = m_matT.coeff(i+1,i);
-            Scalar denom = (m_eivalues.coeff(i).real() - p) * (m_eivalues.coeff(i).real() - p) + m_eivalues.coeff(i).imag() * m_eivalues.coeff(i).imag();
-            Scalar t = (x * lastr - lastw * r) / denom;
-            m_matT.coeffRef(i,n) = t;
-            if (abs(x) > abs(lastw))
-              m_matT.coeffRef(i+1,n) = (-r - w * t) / x;
-            else
-              m_matT.coeffRef(i+1,n) = (-lastr - y * t) / lastw;
-          }
-
-          // Overflow control
-          Scalar t = abs(m_matT.coeff(i,n));
-          if ((eps * t) * t > Scalar(1))
-            m_matT.col(n).tail(size-i) /= t;
-        }
-      }
-    }
-    else if (q < Scalar(0) && n > 0) // Complex vector
-    {
-      Scalar lastra(0), lastsa(0), lastw(0);
-      Index l = n-1;
-
-      // Last vector component imaginary so matrix is triangular
-      if (abs(m_matT.coeff(n,n-1)) > abs(m_matT.coeff(n-1,n)))
-      {
-        m_matT.coeffRef(n-1,n-1) = q / m_matT.coeff(n,n-1);
-        m_matT.coeffRef(n-1,n) = -(m_matT.coeff(n,n) - p) / m_matT.coeff(n,n-1);
-      }
-      else
-      {
-        std::complex<Scalar> cc = cdiv<Scalar>(0.0,-m_matT.coeff(n-1,n),m_matT.coeff(n-1,n-1)-p,q);
-        m_matT.coeffRef(n-1,n-1) = internal::real(cc);
-        m_matT.coeffRef(n-1,n) = internal::imag(cc);
-      }
-      m_matT.coeffRef(n,n-1) = 0.0;
-      m_matT.coeffRef(n,n) = 1.0;
-      for (Index i = n-2; i >= 0; i--)
-      {
-        Scalar ra = m_matT.row(i).segment(l, n-l+1).dot(m_matT.col(n-1).segment(l, n-l+1));
-        Scalar sa = m_matT.row(i).segment(l, n-l+1).dot(m_matT.col(n).segment(l, n-l+1));
-        Scalar w = m_matT.coeff(i,i) - p;
-
-        if (m_eivalues.coeff(i).imag() < 0.0)
-        {
-          lastw = w;
-          lastra = ra;
-          lastsa = sa;
-        }
-        else
-        {
-          l = i;
-          if (m_eivalues.coeff(i).imag() == RealScalar(0))
-          {
-            std::complex<Scalar> cc = cdiv(-ra,-sa,w,q);
-            m_matT.coeffRef(i,n-1) = internal::real(cc);
-            m_matT.coeffRef(i,n) = internal::imag(cc);
-          }
-          else
-          {
-            // Solve complex equations
-            Scalar x = m_matT.coeff(i,i+1);
-            Scalar y = m_matT.coeff(i+1,i);
-            Scalar vr = (m_eivalues.coeff(i).real() - p) * (m_eivalues.coeff(i).real() - p) + m_eivalues.coeff(i).imag() * m_eivalues.coeff(i).imag() - q * q;
-            Scalar vi = (m_eivalues.coeff(i).real() - p) * Scalar(2) * q;
-            if ((vr == 0.0) && (vi == 0.0))
-              vr = eps * norm * (abs(w) + abs(q) + abs(x) + abs(y) + abs(lastw));
-
-            std::complex<Scalar> cc = cdiv(x*lastra-lastw*ra+q*sa,x*lastsa-lastw*sa-q*ra,vr,vi);
-            m_matT.coeffRef(i,n-1) = internal::real(cc);
-            m_matT.coeffRef(i,n) = internal::imag(cc);
-            if (abs(x) > (abs(lastw) + abs(q)))
-            {
-              m_matT.coeffRef(i+1,n-1) = (-ra - w * m_matT.coeff(i,n-1) + q * m_matT.coeff(i,n)) / x;
-              m_matT.coeffRef(i+1,n) = (-sa - w * m_matT.coeff(i,n) - q * m_matT.coeff(i,n-1)) / x;
-            }
-            else
-            {
-              cc = cdiv(-lastra-y*m_matT.coeff(i,n-1),-lastsa-y*m_matT.coeff(i,n),lastw,q);
-              m_matT.coeffRef(i+1,n-1) = internal::real(cc);
-              m_matT.coeffRef(i+1,n) = internal::imag(cc);
-            }
-          }
-
-          // Overflow control
-          using std::max;
-          Scalar t = (max)(abs(m_matT.coeff(i,n-1)),abs(m_matT.coeff(i,n)));
-          if ((eps * t) * t > Scalar(1))
-            m_matT.block(i, n-1, size-i, 2) /= t;
-
-        }
-      }
-      
-      // We handled a pair of complex conjugate eigenvalues, so need to skip them both
-      n--;
-    }
-    else
-    {
-      eigen_assert(0 && "Internal bug in EigenSolver"); // this should not happen
-    }
-  }
-
-  // Back transformation to get eigenvectors of original matrix
-  for (Index j = size-1; j >= 0; j--)
-  {
-    m_tmp.noalias() = m_eivec.leftCols(j+1) * m_matT.col(j).segment(0, j+1);
-    m_eivec.col(j) = m_tmp;
-  }
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_EIGENSOLVER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h b/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
deleted file mode 100644
index dc240e1..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
+++ /dev/null
@@ -1,341 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2010,2012 Jitse Niesen <jitse at maths.leeds.ac.uk>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_GENERALIZEDEIGENSOLVER_H
-#define EIGEN_GENERALIZEDEIGENSOLVER_H
-
-#include "./RealQZ.h"
-
-namespace Eigen { 
-
-/** \eigenvalues_module \ingroup Eigenvalues_Module
-  *
-  *
-  * \class GeneralizedEigenSolver
-  *
-  * \brief Computes the generalized eigenvalues and eigenvectors of a pair of general matrices
-  *
-  * \tparam _MatrixType the type of the matrices of which we are computing the
-  * eigen-decomposition; this is expected to be an instantiation of the Matrix
-  * class template. Currently, only real matrices are supported.
-  *
-  * The generalized eigenvalues and eigenvectors of a matrix pair \f$ A \f$ and \f$ B \f$ are scalars
-  * \f$ \lambda \f$ and vectors \f$ v \f$ such that \f$ Av = \lambda Bv \f$.  If
-  * \f$ D \f$ is a diagonal matrix with the eigenvalues on the diagonal, and
-  * \f$ V \f$ is a matrix with the eigenvectors as its columns, then \f$ A V =
-  * B V D \f$. The matrix \f$ V \f$ is almost always invertible, in which case we
-  * have \f$ A = B V D V^{-1} \f$. This is called the generalized eigen-decomposition.
-  *
-  * The generalized eigenvalues and eigenvectors of a matrix pair may be complex, even when the
-  * matrices are real. Moreover, the generalized eigenvalue might be infinite if the matrix B is
-  * singular. To workaround this difficulty, the eigenvalues are provided as a pair of complex \f$ \alpha \f$
-  * and real \f$ \beta \f$ such that: \f$ \lambda_i = \alpha_i / \beta_i \f$. If \f$ \beta_i \f$ is (nearly) zero,
-  * then one can consider the well defined left eigenvalue \f$ \mu = \beta_i / \alpha_i\f$ such that:
-  * \f$ \mu_i A v_i = B v_i \f$, or even \f$ \mu_i u_i^T A  = u_i^T B \f$ where \f$ u_i \f$ is
-  * called the left eigenvector.
-  *
-  * Call the function compute() to compute the generalized eigenvalues and eigenvectors of
-  * a given matrix pair. Alternatively, you can use the
-  * GeneralizedEigenSolver(const MatrixType&, const MatrixType&, bool) constructor which computes the
-  * eigenvalues and eigenvectors at construction time. Once the eigenvalue and
-  * eigenvectors are computed, they can be retrieved with the eigenvalues() and
-  * eigenvectors() functions.
-  *
-  * Here is an usage example of this class:
-  * Example: \include GeneralizedEigenSolver.cpp
-  * Output: \verbinclude GeneralizedEigenSolver.out
-  *
-  * \sa MatrixBase::eigenvalues(), class ComplexEigenSolver, class SelfAdjointEigenSolver
-  */
-template<typename _MatrixType> class GeneralizedEigenSolver
-{
-  public:
-
-    /** \brief Synonym for the template parameter \p _MatrixType. */
-    typedef _MatrixType MatrixType;
-
-    enum {
-      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-      Options = MatrixType::Options,
-      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
-    };
-
-    /** \brief Scalar type for matrices of type #MatrixType. */
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-    typedef typename MatrixType::Index Index;
-
-    /** \brief Complex scalar type for #MatrixType. 
-      *
-      * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
-      * \c float or \c double) and just \c Scalar if #Scalar is
-      * complex.
-      */
-    typedef std::complex<RealScalar> ComplexScalar;
-
-    /** \brief Type for vector of real scalar values eigenvalues as returned by betas().
-      *
-      * This is a column vector with entries of type #Scalar.
-      * The length of the vector is the size of #MatrixType.
-      */
-    typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> VectorType;
-
-    /** \brief Type for vector of complex scalar values eigenvalues as returned by betas().
-      *
-      * This is a column vector with entries of type #ComplexScalar.
-      * The length of the vector is the size of #MatrixType.
-      */
-    typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ComplexVectorType;
-
-    /** \brief Expression type for the eigenvalues as returned by eigenvalues().
-      */
-    typedef CwiseBinaryOp<internal::scalar_quotient_op<ComplexScalar,Scalar>,ComplexVectorType,VectorType> EigenvalueType;
-
-    /** \brief Type for matrix of eigenvectors as returned by eigenvectors(). 
-      *
-      * This is a square matrix with entries of type #ComplexScalar. 
-      * The size is the same as the size of #MatrixType.
-      */
-    typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> EigenvectorsType;
-
-    /** \brief Default constructor.
-      *
-      * The default constructor is useful in cases in which the user intends to
-      * perform decompositions via EigenSolver::compute(const MatrixType&, bool).
-      *
-      * \sa compute() for an example.
-      */
-    GeneralizedEigenSolver() : m_eivec(), m_alphas(), m_betas(), m_isInitialized(false), m_realQZ(), m_matS(), m_tmp() {}
-
-    /** \brief Default constructor with memory preallocation
-      *
-      * Like the default constructor but with preallocation of the internal data
-      * according to the specified problem \a size.
-      * \sa GeneralizedEigenSolver()
-      */
-    GeneralizedEigenSolver(Index size)
-      : m_eivec(size, size),
-        m_alphas(size),
-        m_betas(size),
-        m_isInitialized(false),
-        m_eigenvectorsOk(false),
-        m_realQZ(size),
-        m_matS(size, size),
-        m_tmp(size)
-    {}
-
-    /** \brief Constructor; computes the generalized eigendecomposition of given matrix pair.
-      * 
-      * \param[in]  A  Square matrix whose eigendecomposition is to be computed.
-      * \param[in]  B  Square matrix whose eigendecomposition is to be computed.
-      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
-      *    eigenvalues are computed; if false, only the eigenvalues are computed.
-      *
-      * This constructor calls compute() to compute the generalized eigenvalues
-      * and eigenvectors.
-      *
-      * \sa compute()
-      */
-    GeneralizedEigenSolver(const MatrixType& A, const MatrixType& B, bool computeEigenvectors = true)
-      : m_eivec(A.rows(), A.cols()),
-        m_alphas(A.cols()),
-        m_betas(A.cols()),
-        m_isInitialized(false),
-        m_eigenvectorsOk(false),
-        m_realQZ(A.cols()),
-        m_matS(A.rows(), A.cols()),
-        m_tmp(A.cols())
-    {
-      compute(A, B, computeEigenvectors);
-    }
-
-    /* \brief Returns the computed generalized eigenvectors.
-      *
-      * \returns  %Matrix whose columns are the (possibly complex) eigenvectors.
-      *
-      * \pre Either the constructor 
-      * GeneralizedEigenSolver(const MatrixType&,const MatrixType&, bool) or the member function
-      * compute(const MatrixType&, const MatrixType& bool) has been called before, and
-      * \p computeEigenvectors was set to true (the default).
-      *
-      * Column \f$ k \f$ of the returned matrix is an eigenvector corresponding
-      * to eigenvalue number \f$ k \f$ as returned by eigenvalues().  The
-      * eigenvectors are normalized to have (Euclidean) norm equal to one. The
-      * matrix returned by this function is the matrix \f$ V \f$ in the
-      * generalized eigendecomposition \f$ A = B V D V^{-1} \f$, if it exists.
-      *
-      * \sa eigenvalues()
-      */
-//    EigenvectorsType eigenvectors() const;
-
-    /** \brief Returns an expression of the computed generalized eigenvalues.
-      *
-      * \returns An expression of the column vector containing the eigenvalues.
-      *
-      * It is a shortcut for \code this->alphas().cwiseQuotient(this->betas()); \endcode
-      * Not that betas might contain zeros. It is therefore not recommended to use this function,
-      * but rather directly deal with the alphas and betas vectors.
-      *
-      * \pre Either the constructor 
-      * GeneralizedEigenSolver(const MatrixType&,const MatrixType&,bool) or the member function
-      * compute(const MatrixType&,const MatrixType&,bool) has been called before.
-      *
-      * The eigenvalues are repeated according to their algebraic multiplicity,
-      * so there are as many eigenvalues as rows in the matrix. The eigenvalues 
-      * are not sorted in any particular order.
-      *
-      * \sa alphas(), betas(), eigenvectors()
-      */
-    EigenvalueType eigenvalues() const
-    {
-      eigen_assert(m_isInitialized && "GeneralizedEigenSolver is not initialized.");
-      return EigenvalueType(m_alphas,m_betas);
-    }
-
-    /** \returns A const reference to the vectors containing the alpha values
-      *
-      * This vector permits to reconstruct the j-th eigenvalues as alphas(i)/betas(j).
-      *
-      * \sa betas(), eigenvalues() */
-    ComplexVectorType alphas() const
-    {
-      eigen_assert(m_isInitialized && "GeneralizedEigenSolver is not initialized.");
-      return m_alphas;
-    }
-
-    /** \returns A const reference to the vectors containing the beta values
-      *
-      * This vector permits to reconstruct the j-th eigenvalues as alphas(i)/betas(j).
-      *
-      * \sa alphas(), eigenvalues() */
-    VectorType betas() const
-    {
-      eigen_assert(m_isInitialized && "GeneralizedEigenSolver is not initialized.");
-      return m_betas;
-    }
-
-    /** \brief Computes generalized eigendecomposition of given matrix.
-      * 
-      * \param[in]  A  Square matrix whose eigendecomposition is to be computed.
-      * \param[in]  B  Square matrix whose eigendecomposition is to be computed.
-      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
-      *    eigenvalues are computed; if false, only the eigenvalues are
-      *    computed. 
-      * \returns    Reference to \c *this
-      *
-      * This function computes the eigenvalues of the real matrix \p matrix.
-      * The eigenvalues() function can be used to retrieve them.  If 
-      * \p computeEigenvectors is true, then the eigenvectors are also computed
-      * and can be retrieved by calling eigenvectors().
-      *
-      * The matrix is first reduced to real generalized Schur form using the RealQZ
-      * class. The generalized Schur decomposition is then used to compute the eigenvalues
-      * and eigenvectors.
-      *
-      * The cost of the computation is dominated by the cost of the
-      * generalized Schur decomposition.
-      *
-      * This method reuses of the allocated data in the GeneralizedEigenSolver object.
-      */
-    GeneralizedEigenSolver& compute(const MatrixType& A, const MatrixType& B, bool computeEigenvectors = true);
-
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
-      return m_realQZ.info();
-    }
-
-    /** Sets the maximal number of iterations allowed.
-    */
-    GeneralizedEigenSolver& setMaxIterations(Index maxIters)
-    {
-      m_realQZ.setMaxIterations(maxIters);
-      return *this;
-    }
-
-  protected:
-    MatrixType m_eivec;
-    ComplexVectorType m_alphas;
-    VectorType m_betas;
-    bool m_isInitialized;
-    bool m_eigenvectorsOk;
-    RealQZ<MatrixType> m_realQZ;
-    MatrixType m_matS;
-
-    typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ColumnVectorType;
-    ColumnVectorType m_tmp;
-};
-
-//template<typename MatrixType>
-//typename GeneralizedEigenSolver<MatrixType>::EigenvectorsType GeneralizedEigenSolver<MatrixType>::eigenvectors() const
-//{
-//  eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
-//  eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
-//  Index n = m_eivec.cols();
-//  EigenvectorsType matV(n,n);
-//  // TODO
-//  return matV;
-//}
-
-template<typename MatrixType>
-GeneralizedEigenSolver<MatrixType>&
-GeneralizedEigenSolver<MatrixType>::compute(const MatrixType& A, const MatrixType& B, bool computeEigenvectors)
-{
-  using std::sqrt;
-  using std::abs;
-  eigen_assert(A.cols() == A.rows() && B.cols() == A.rows() && B.cols() == B.rows());
-
-  // Reduce to generalized real Schur form:
-  // A = Q S Z and B = Q T Z
-  m_realQZ.compute(A, B, computeEigenvectors);
-
-  if (m_realQZ.info() == Success)
-  {
-    m_matS = m_realQZ.matrixS();
-    if (computeEigenvectors)
-      m_eivec = m_realQZ.matrixZ().transpose();
-  
-    // Compute eigenvalues from matS
-    m_alphas.resize(A.cols());
-    m_betas.resize(A.cols());
-    Index i = 0;
-    while (i < A.cols())
-    {
-      if (i == A.cols() - 1 || m_matS.coeff(i+1, i) == Scalar(0))
-      {
-        m_alphas.coeffRef(i) = m_matS.coeff(i, i);
-        m_betas.coeffRef(i)  = m_realQZ.matrixT().coeff(i,i);
-        ++i;
-      }
-      else
-      {
-        Scalar p = Scalar(0.5) * (m_matS.coeff(i, i) - m_matS.coeff(i+1, i+1));
-        Scalar z = sqrt(abs(p * p + m_matS.coeff(i+1, i) * m_matS.coeff(i, i+1)));
-        m_alphas.coeffRef(i)   = ComplexScalar(m_matS.coeff(i+1, i+1) + p, z);
-        m_alphas.coeffRef(i+1) = ComplexScalar(m_matS.coeff(i+1, i+1) + p, -z);
-
-        m_betas.coeffRef(i)   = m_realQZ.matrixT().coeff(i,i);
-        m_betas.coeffRef(i+1) = m_realQZ.matrixT().coeff(i,i);
-        i += 2;
-      }
-    }
-  }
-
-  m_isInitialized = true;
-  m_eigenvectorsOk = false;//computeEigenvectors;
-
-  return *this;
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_GENERALIZEDEIGENSOLVER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/HessenbergDecomposition.h b/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/HessenbergDecomposition.h
deleted file mode 100644
index ebd8ae9..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/HessenbergDecomposition.h
+++ /dev/null
@@ -1,373 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2010 Jitse Niesen <jitse at maths.leeds.ac.uk>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_HESSENBERGDECOMPOSITION_H
-#define EIGEN_HESSENBERGDECOMPOSITION_H
-
-namespace Eigen { 
-
-namespace internal {
-  
-template<typename MatrixType> struct HessenbergDecompositionMatrixHReturnType;
-template<typename MatrixType>
-struct traits<HessenbergDecompositionMatrixHReturnType<MatrixType> >
-{
-  typedef MatrixType ReturnType;
-};
-
-}
-
-/** \eigenvalues_module \ingroup Eigenvalues_Module
-  *
-  *
-  * \class HessenbergDecomposition
-  *
-  * \brief Reduces a square matrix to Hessenberg form by an orthogonal similarity transformation
-  *
-  * \tparam _MatrixType the type of the matrix of which we are computing the Hessenberg decomposition
-  *
-  * This class performs an Hessenberg decomposition of a matrix \f$ A \f$. In
-  * the real case, the Hessenberg decomposition consists of an orthogonal
-  * matrix \f$ Q \f$ and a Hessenberg matrix \f$ H \f$ such that \f$ A = Q H
-  * Q^T \f$. An orthogonal matrix is a matrix whose inverse equals its
-  * transpose (\f$ Q^{-1} = Q^T \f$). A Hessenberg matrix has zeros below the
-  * subdiagonal, so it is almost upper triangular. The Hessenberg decomposition
-  * of a complex matrix is \f$ A = Q H Q^* \f$ with \f$ Q \f$ unitary (that is,
-  * \f$ Q^{-1} = Q^* \f$).
-  *
-  * Call the function compute() to compute the Hessenberg decomposition of a
-  * given matrix. Alternatively, you can use the
-  * HessenbergDecomposition(const MatrixType&) constructor which computes the
-  * Hessenberg decomposition at construction time. Once the decomposition is
-  * computed, you can use the matrixH() and matrixQ() functions to construct
-  * the matrices H and Q in the decomposition.
-  *
-  * The documentation for matrixH() contains an example of the typical use of
-  * this class.
-  *
-  * \sa class ComplexSchur, class Tridiagonalization, \ref QR_Module "QR Module"
-  */
-template<typename _MatrixType> class HessenbergDecomposition
-{
-  public:
-
-    /** \brief Synonym for the template parameter \p _MatrixType. */
-    typedef _MatrixType MatrixType;
-
-    enum {
-      Size = MatrixType::RowsAtCompileTime,
-      SizeMinusOne = Size == Dynamic ? Dynamic : Size - 1,
-      Options = MatrixType::Options,
-      MaxSize = MatrixType::MaxRowsAtCompileTime,
-      MaxSizeMinusOne = MaxSize == Dynamic ? Dynamic : MaxSize - 1
-    };
-
-    /** \brief Scalar type for matrices of type #MatrixType. */
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::Index Index;
-
-    /** \brief Type for vector of Householder coefficients.
-      *
-      * This is column vector with entries of type #Scalar. The length of the
-      * vector is one less than the size of #MatrixType, if it is a fixed-side
-      * type.
-      */
-    typedef Matrix<Scalar, SizeMinusOne, 1, Options & ~RowMajor, MaxSizeMinusOne, 1> CoeffVectorType;
-
-    /** \brief Return type of matrixQ() */
-    typedef typename HouseholderSequence<MatrixType,CoeffVectorType>::ConjugateReturnType HouseholderSequenceType;
-    
-    typedef internal::HessenbergDecompositionMatrixHReturnType<MatrixType> MatrixHReturnType;
-
-    /** \brief Default constructor; the decomposition will be computed later.
-      *
-      * \param [in] size  The size of the matrix whose Hessenberg decomposition will be computed.
-      *
-      * The default constructor is useful in cases in which the user intends to
-      * perform decompositions via compute().  The \p size parameter is only
-      * used as a hint. It is not an error to give a wrong \p size, but it may
-      * impair performance.
-      *
-      * \sa compute() for an example.
-      */
-    HessenbergDecomposition(Index size = Size==Dynamic ? 2 : Size)
-      : m_matrix(size,size),
-        m_temp(size),
-        m_isInitialized(false)
-    {
-      if(size>1)
-        m_hCoeffs.resize(size-1);
-    }
-
-    /** \brief Constructor; computes Hessenberg decomposition of given matrix.
-      *
-      * \param[in]  matrix  Square matrix whose Hessenberg decomposition is to be computed.
-      *
-      * This constructor calls compute() to compute the Hessenberg
-      * decomposition.
-      *
-      * \sa matrixH() for an example.
-      */
-    HessenbergDecomposition(const MatrixType& matrix)
-      : m_matrix(matrix),
-        m_temp(matrix.rows()),
-        m_isInitialized(false)
-    {
-      if(matrix.rows()<2)
-      {
-        m_isInitialized = true;
-        return;
-      }
-      m_hCoeffs.resize(matrix.rows()-1,1);
-      _compute(m_matrix, m_hCoeffs, m_temp);
-      m_isInitialized = true;
-    }
-
-    /** \brief Computes Hessenberg decomposition of given matrix.
-      *
-      * \param[in]  matrix  Square matrix whose Hessenberg decomposition is to be computed.
-      * \returns    Reference to \c *this
-      *
-      * The Hessenberg decomposition is computed by bringing the columns of the
-      * matrix successively in the required form using Householder reflections
-      * (see, e.g., Algorithm 7.4.2 in Golub \& Van Loan, <i>%Matrix
-      * Computations</i>). The cost is \f$ 10n^3/3 \f$ flops, where \f$ n \f$
-      * denotes the size of the given matrix.
-      *
-      * This method reuses of the allocated data in the HessenbergDecomposition
-      * object.
-      *
-      * Example: \include HessenbergDecomposition_compute.cpp
-      * Output: \verbinclude HessenbergDecomposition_compute.out
-      */
-    HessenbergDecomposition& compute(const MatrixType& matrix)
-    {
-      m_matrix = matrix;
-      if(matrix.rows()<2)
-      {
-        m_isInitialized = true;
-        return *this;
-      }
-      m_hCoeffs.resize(matrix.rows()-1,1);
-      _compute(m_matrix, m_hCoeffs, m_temp);
-      m_isInitialized = true;
-      return *this;
-    }
-
-    /** \brief Returns the Householder coefficients.
-      *
-      * \returns a const reference to the vector of Householder coefficients
-      *
-      * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
-      * or the member function compute(const MatrixType&) has been called
-      * before to compute the Hessenberg decomposition of a matrix.
-      *
-      * The Householder coefficients allow the reconstruction of the matrix
-      * \f$ Q \f$ in the Hessenberg decomposition from the packed data.
-      *
-      * \sa packedMatrix(), \ref Householder_Module "Householder module"
-      */
-    const CoeffVectorType& householderCoefficients() const
-    {
-      eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
-      return m_hCoeffs;
-    }
-
-    /** \brief Returns the internal representation of the decomposition
-      *
-      *	\returns a const reference to a matrix with the internal representation
-      *	         of the decomposition.
-      *
-      * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
-      * or the member function compute(const MatrixType&) has been called
-      * before to compute the Hessenberg decomposition of a matrix.
-      *
-      * The returned matrix contains the following information:
-      *  - the upper part and lower sub-diagonal represent the Hessenberg matrix H
-      *  - the rest of the lower part contains the Householder vectors that, combined with
-      *    Householder coefficients returned by householderCoefficients(),
-      *    allows to reconstruct the matrix Q as
-      *       \f$ Q = H_{N-1} \ldots H_1 H_0 \f$.
-      *    Here, the matrices \f$ H_i \f$ are the Householder transformations
-      *       \f$ H_i = (I - h_i v_i v_i^T) \f$
-      *    where \f$ h_i \f$ is the \f$ i \f$th Householder coefficient and
-      *    \f$ v_i \f$ is the Householder vector defined by
-      *       \f$ v_i = [ 0, \ldots, 0, 1, M(i+2,i), \ldots, M(N-1,i) ]^T \f$
-      *    with M the matrix returned by this function.
-      *
-      * See LAPACK for further details on this packed storage.
-      *
-      * Example: \include HessenbergDecomposition_packedMatrix.cpp
-      * Output: \verbinclude HessenbergDecomposition_packedMatrix.out
-      *
-      * \sa householderCoefficients()
-      */
-    const MatrixType& packedMatrix() const
-    {
-      eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
-      return m_matrix;
-    }
-
-    /** \brief Reconstructs the orthogonal matrix Q in the decomposition
-      *
-      * \returns object representing the matrix Q
-      *
-      * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
-      * or the member function compute(const MatrixType&) has been called
-      * before to compute the Hessenberg decomposition of a matrix.
-      *
-      * This function returns a light-weight object of template class
-      * HouseholderSequence. You can either apply it directly to a matrix or
-      * you can convert it to a matrix of type #MatrixType.
-      *
-      * \sa matrixH() for an example, class HouseholderSequence
-      */
-    HouseholderSequenceType matrixQ() const
-    {
-      eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
-      return HouseholderSequenceType(m_matrix, m_hCoeffs.conjugate())
-             .setLength(m_matrix.rows() - 1)
-             .setShift(1);
-    }
-
-    /** \brief Constructs the Hessenberg matrix H in the decomposition
-      *
-      * \returns expression object representing the matrix H
-      *
-      * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
-      * or the member function compute(const MatrixType&) has been called
-      * before to compute the Hessenberg decomposition of a matrix.
-      *
-      * The object returned by this function constructs the Hessenberg matrix H
-      * when it is assigned to a matrix or otherwise evaluated. The matrix H is
-      * constructed from the packed matrix as returned by packedMatrix(): The
-      * upper part (including the subdiagonal) of the packed matrix contains
-      * the matrix H. It may sometimes be better to directly use the packed
-      * matrix instead of constructing the matrix H.
-      *
-      * Example: \include HessenbergDecomposition_matrixH.cpp
-      * Output: \verbinclude HessenbergDecomposition_matrixH.out
-      *
-      * \sa matrixQ(), packedMatrix()
-      */
-    MatrixHReturnType matrixH() const
-    {
-      eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
-      return MatrixHReturnType(*this);
-    }
-
-  private:
-
-    typedef Matrix<Scalar, 1, Size, Options | RowMajor, 1, MaxSize> VectorType;
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-    static void _compute(MatrixType& matA, CoeffVectorType& hCoeffs, VectorType& temp);
-
-  protected:
-    MatrixType m_matrix;
-    CoeffVectorType m_hCoeffs;
-    VectorType m_temp;
-    bool m_isInitialized;
-};
-
-/** \internal
-  * Performs a tridiagonal decomposition of \a matA in place.
-  *
-  * \param matA the input selfadjoint matrix
-  * \param hCoeffs returned Householder coefficients
-  *
-  * The result is written in the lower triangular part of \a matA.
-  *
-  * Implemented from Golub's "%Matrix Computations", algorithm 8.3.1.
-  *
-  * \sa packedMatrix()
-  */
-template<typename MatrixType>
-void HessenbergDecomposition<MatrixType>::_compute(MatrixType& matA, CoeffVectorType& hCoeffs, VectorType& temp)
-{
-  eigen_assert(matA.rows()==matA.cols());
-  Index n = matA.rows();
-  temp.resize(n);
-  for (Index i = 0; i<n-1; ++i)
-  {
-    // let's consider the vector v = i-th column starting at position i+1
-    Index remainingSize = n-i-1;
-    RealScalar beta;
-    Scalar h;
-    matA.col(i).tail(remainingSize).makeHouseholderInPlace(h, beta);
-    matA.col(i).coeffRef(i+1) = beta;
-    hCoeffs.coeffRef(i) = h;
-
-    // Apply similarity transformation to remaining columns,
-    // i.e., compute A = H A H'
-
-    // A = H A
-    matA.bottomRightCorner(remainingSize, remainingSize)
-        .applyHouseholderOnTheLeft(matA.col(i).tail(remainingSize-1), h, &temp.coeffRef(0));
-
-    // A = A H'
-    matA.rightCols(remainingSize)
-        .applyHouseholderOnTheRight(matA.col(i).tail(remainingSize-1).conjugate(), internal::conj(h), &temp.coeffRef(0));
-  }
-}
-
-namespace internal {
-
-/** \eigenvalues_module \ingroup Eigenvalues_Module
-  *
-  *
-  * \brief Expression type for return value of HessenbergDecomposition::matrixH()
-  *
-  * \tparam MatrixType type of matrix in the Hessenberg decomposition
-  *
-  * Objects of this type represent the Hessenberg matrix in the Hessenberg
-  * decomposition of some matrix. The object holds a reference to the
-  * HessenbergDecomposition class until the it is assigned or evaluated for
-  * some other reason (the reference should remain valid during the life time
-  * of this object). This class is the return type of
-  * HessenbergDecomposition::matrixH(); there is probably no other use for this
-  * class.
-  */
-template<typename MatrixType> struct HessenbergDecompositionMatrixHReturnType
-: public ReturnByValue<HessenbergDecompositionMatrixHReturnType<MatrixType> >
-{
-    typedef typename MatrixType::Index Index;
-  public:
-    /** \brief Constructor.
-      *
-      * \param[in] hess  Hessenberg decomposition
-      */
-    HessenbergDecompositionMatrixHReturnType(const HessenbergDecomposition<MatrixType>& hess) : m_hess(hess) { }
-
-    /** \brief Hessenberg matrix in decomposition.
-      *
-      * \param[out] result  Hessenberg matrix in decomposition \p hess which
-      *                     was passed to the constructor
-      */
-    template <typename ResultType>
-    inline void evalTo(ResultType& result) const
-    {
-      result = m_hess.packedMatrix();
-      Index n = result.rows();
-      if (n>2)
-        result.bottomLeftCorner(n-2, n-2).template triangularView<Lower>().setZero();
-    }
-
-    Index rows() const { return m_hess.packedMatrix().rows(); }
-    Index cols() const { return m_hess.packedMatrix().cols(); }
-
-  protected:
-    const HessenbergDecomposition<MatrixType>& m_hess;
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_HESSENBERGDECOMPOSITION_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/RealQZ.h b/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/RealQZ.h
deleted file mode 100644
index 5706eee..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/RealQZ.h
+++ /dev/null
@@ -1,624 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Alexey Korepanov <kaikaikai at yandex.ru>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_REAL_QZ_H
-#define EIGEN_REAL_QZ_H
-
-namespace Eigen {
-
-  /** \eigenvalues_module \ingroup Eigenvalues_Module
-   *
-   *
-   * \class RealQZ
-   *
-   * \brief Performs a real QZ decomposition of a pair of square matrices
-   *
-   * \tparam _MatrixType the type of the matrix of which we are computing the
-   * real QZ decomposition; this is expected to be an instantiation of the
-   * Matrix class template.
-   *
-   * Given a real square matrices A and B, this class computes the real QZ
-   * decomposition: \f$ A = Q S Z \f$, \f$ B = Q T Z \f$ where Q and Z are
-   * real orthogonal matrixes, T is upper-triangular matrix, and S is upper
-   * quasi-triangular matrix. An orthogonal matrix is a matrix whose
-   * inverse is equal to its transpose, \f$ U^{-1} = U^T \f$. A quasi-triangular
-   * matrix is a block-triangular matrix whose diagonal consists of 1-by-1
-   * blocks and 2-by-2 blocks where further reduction is impossible due to
-   * complex eigenvalues. 
-   *
-   * The eigenvalues of the pencil \f$ A - z B \f$ can be obtained from
-   * 1x1 and 2x2 blocks on the diagonals of S and T.
-   *
-   * Call the function compute() to compute the real QZ decomposition of a
-   * given pair of matrices. Alternatively, you can use the 
-   * RealQZ(const MatrixType& B, const MatrixType& B, bool computeQZ)
-   * constructor which computes the real QZ decomposition at construction
-   * time. Once the decomposition is computed, you can use the matrixS(),
-   * matrixT(), matrixQ() and matrixZ() functions to retrieve the matrices
-   * S, T, Q and Z in the decomposition. If computeQZ==false, some time
-   * is saved by not computing matrices Q and Z.
-   *
-   * Example: \include RealQZ_compute.cpp
-   * Output: \include RealQZ_compute.out
-   *
-   * \note The implementation is based on the algorithm in "Matrix Computations"
-   * by Gene H. Golub and Charles F. Van Loan, and a paper "An algorithm for
-   * generalized eigenvalue problems" by C.B.Moler and G.W.Stewart.
-   *
-   * \sa class RealSchur, class ComplexSchur, class EigenSolver, class ComplexEigenSolver
-   */
-
-  template<typename _MatrixType> class RealQZ
-  {
-    public:
-      typedef _MatrixType MatrixType;
-      enum {
-        RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-        ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-        Options = MatrixType::Options,
-        MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-        MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
-      };
-      typedef typename MatrixType::Scalar Scalar;
-      typedef std::complex<typename NumTraits<Scalar>::Real> ComplexScalar;
-      typedef typename MatrixType::Index Index;
-
-      typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> EigenvalueType;
-      typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ColumnVectorType;
-
-      /** \brief Default constructor.
-       *
-       * \param [in] size  Positive integer, size of the matrix whose QZ decomposition will be computed.
-       *
-       * The default constructor is useful in cases in which the user intends to
-       * perform decompositions via compute().  The \p size parameter is only
-       * used as a hint. It is not an error to give a wrong \p size, but it may
-       * impair performance.
-       *
-       * \sa compute() for an example.
-       */
-      RealQZ(Index size = RowsAtCompileTime==Dynamic ? 1 : RowsAtCompileTime) : 
-        m_S(size, size),
-        m_T(size, size),
-        m_Q(size, size),
-        m_Z(size, size),
-        m_workspace(size*2),
-        m_maxIters(400),
-        m_isInitialized(false)
-        { }
-
-      /** \brief Constructor; computes real QZ decomposition of given matrices
-       * 
-       * \param[in]  A          Matrix A.
-       * \param[in]  B          Matrix B.
-       * \param[in]  computeQZ  If false, A and Z are not computed.
-       *
-       * This constructor calls compute() to compute the QZ decomposition.
-       */
-      RealQZ(const MatrixType& A, const MatrixType& B, bool computeQZ = true) :
-        m_S(A.rows(),A.cols()),
-        m_T(A.rows(),A.cols()),
-        m_Q(A.rows(),A.cols()),
-        m_Z(A.rows(),A.cols()),
-        m_workspace(A.rows()*2),
-        m_maxIters(400),
-        m_isInitialized(false) {
-          compute(A, B, computeQZ);
-        }
-
-      /** \brief Returns matrix Q in the QZ decomposition. 
-       *
-       * \returns A const reference to the matrix Q.
-       */
-      const MatrixType& matrixQ() const {
-        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
-        eigen_assert(m_computeQZ && "The matrices Q and Z have not been computed during the QZ decomposition.");
-        return m_Q;
-      }
-
-      /** \brief Returns matrix Z in the QZ decomposition. 
-       *
-       * \returns A const reference to the matrix Z.
-       */
-      const MatrixType& matrixZ() const {
-        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
-        eigen_assert(m_computeQZ && "The matrices Q and Z have not been computed during the QZ decomposition.");
-        return m_Z;
-      }
-
-      /** \brief Returns matrix S in the QZ decomposition. 
-       *
-       * \returns A const reference to the matrix S.
-       */
-      const MatrixType& matrixS() const {
-        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
-        return m_S;
-      }
-
-      /** \brief Returns matrix S in the QZ decomposition. 
-       *
-       * \returns A const reference to the matrix S.
-       */
-      const MatrixType& matrixT() const {
-        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
-        return m_T;
-      }
-
-      /** \brief Computes QZ decomposition of given matrix. 
-       * 
-       * \param[in]  A          Matrix A.
-       * \param[in]  B          Matrix B.
-       * \param[in]  computeQZ  If false, A and Z are not computed.
-       * \returns    Reference to \c *this
-       */
-      RealQZ& compute(const MatrixType& A, const MatrixType& B, bool computeQZ = true);
-
-      /** \brief Reports whether previous computation was successful.
-       *
-       * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
-       */
-      ComputationInfo info() const
-      {
-        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
-        return m_info;
-      }
-
-      /** \brief Returns number of performed QR-like iterations.
-      */
-      Index iterations() const
-      {
-        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
-        return m_global_iter;
-      }
-
-      /** Sets the maximal number of iterations allowed to converge to one eigenvalue
-       * or decouple the problem.
-      */
-      RealQZ& setMaxIterations(Index maxIters)
-      {
-        m_maxIters = maxIters;
-        return *this;
-      }
-
-    private:
-
-      MatrixType m_S, m_T, m_Q, m_Z;
-      Matrix<Scalar,Dynamic,1> m_workspace;
-      ComputationInfo m_info;
-      Index m_maxIters;
-      bool m_isInitialized;
-      bool m_computeQZ;
-      Scalar m_normOfT, m_normOfS;
-      Index m_global_iter;
-
-      typedef Matrix<Scalar,3,1> Vector3s;
-      typedef Matrix<Scalar,2,1> Vector2s;
-      typedef Matrix<Scalar,2,2> Matrix2s;
-      typedef JacobiRotation<Scalar> JRs;
-
-      void hessenbergTriangular();
-      void computeNorms();
-      Index findSmallSubdiagEntry(Index iu);
-      Index findSmallDiagEntry(Index f, Index l);
-      void splitOffTwoRows(Index i);
-      void pushDownZero(Index z, Index f, Index l);
-      void step(Index f, Index l, Index iter);
-
-  }; // RealQZ
-
-  /** \internal Reduces S and T to upper Hessenberg - triangular form */
-  template<typename MatrixType>
-    void RealQZ<MatrixType>::hessenbergTriangular()
-    {
-
-      const Index dim = m_S.cols();
-
-      // perform QR decomposition of T, overwrite T with R, save Q
-      HouseholderQR<MatrixType> qrT(m_T);
-      m_T = qrT.matrixQR();
-      m_T.template triangularView<StrictlyLower>().setZero();
-      m_Q = qrT.householderQ();
-      // overwrite S with Q* S
-      m_S.applyOnTheLeft(m_Q.adjoint());
-      // init Z as Identity
-      if (m_computeQZ)
-        m_Z = MatrixType::Identity(dim,dim);
-      // reduce S to upper Hessenberg with Givens rotations
-      for (Index j=0; j<=dim-3; j++) {
-        for (Index i=dim-1; i>=j+2; i--) {
-          JRs G;
-          // kill S(i,j)
-          if(m_S.coeff(i,j) != 0)
-          {
-            G.makeGivens(m_S.coeff(i-1,j), m_S.coeff(i,j), &m_S.coeffRef(i-1, j));
-            m_S.coeffRef(i,j) = Scalar(0.0);
-            m_S.rightCols(dim-j-1).applyOnTheLeft(i-1,i,G.adjoint());
-            m_T.rightCols(dim-i+1).applyOnTheLeft(i-1,i,G.adjoint());
-          }
-          // update Q
-          if (m_computeQZ)
-            m_Q.applyOnTheRight(i-1,i,G);
-          // kill T(i,i-1)
-          if(m_T.coeff(i,i-1)!=Scalar(0))
-          {
-            G.makeGivens(m_T.coeff(i,i), m_T.coeff(i,i-1), &m_T.coeffRef(i,i));
-            m_T.coeffRef(i,i-1) = Scalar(0.0);
-            m_S.applyOnTheRight(i,i-1,G);
-            m_T.topRows(i).applyOnTheRight(i,i-1,G);
-          }
-          // update Z
-          if (m_computeQZ)
-            m_Z.applyOnTheLeft(i,i-1,G.adjoint());
-        }
-      }
-    }
-
-  /** \internal Computes vector L1 norms of S and T when in Hessenberg-Triangular form already */
-  template<typename MatrixType>
-    inline void RealQZ<MatrixType>::computeNorms()
-    {
-      const Index size = m_S.cols();
-      m_normOfS = Scalar(0.0);
-      m_normOfT = Scalar(0.0);
-      for (Index j = 0; j < size; ++j)
-      {
-        m_normOfS += m_S.col(j).segment(0, (std::min)(size,j+2)).cwiseAbs().sum();
-        m_normOfT += m_T.row(j).segment(j, size - j).cwiseAbs().sum();
-      }
-    }
-
-
-  /** \internal Look for single small sub-diagonal element S(res, res-1) and return res (or 0) */
-  template<typename MatrixType>
-    inline typename MatrixType::Index RealQZ<MatrixType>::findSmallSubdiagEntry(Index iu)
-    {
-      using std::abs;
-      Index res = iu;
-      while (res > 0)
-      {
-        Scalar s = abs(m_S.coeff(res-1,res-1)) + abs(m_S.coeff(res,res));
-        if (s == Scalar(0.0))
-          s = m_normOfS;
-        if (abs(m_S.coeff(res,res-1)) < NumTraits<Scalar>::epsilon() * s)
-          break;
-        res--;
-      }
-      return res;
-    }
-
-  /** \internal Look for single small diagonal element T(res, res) for res between f and l, and return res (or f-1)  */
-  template<typename MatrixType>
-    inline typename MatrixType::Index RealQZ<MatrixType>::findSmallDiagEntry(Index f, Index l)
-    {
-      using std::abs;
-      Index res = l;
-      while (res >= f) {
-        if (abs(m_T.coeff(res,res)) <= NumTraits<Scalar>::epsilon() * m_normOfT)
-          break;
-        res--;
-      }
-      return res;
-    }
-
-  /** \internal decouple 2x2 diagonal block in rows i, i+1 if eigenvalues are real */
-  template<typename MatrixType>
-    inline void RealQZ<MatrixType>::splitOffTwoRows(Index i)
-    {
-      using std::abs;
-      using std::sqrt;
-      const Index dim=m_S.cols();
-      if (abs(m_S.coeff(i+1,i)==Scalar(0)))
-        return;
-      Index z = findSmallDiagEntry(i,i+1);
-      if (z==i-1)
-      {
-        // block of (S T^{-1})
-        Matrix2s STi = m_T.template block<2,2>(i,i).template triangularView<Upper>().
-          template solve<OnTheRight>(m_S.template block<2,2>(i,i));
-        Scalar p = Scalar(0.5)*(STi(0,0)-STi(1,1));
-        Scalar q = p*p + STi(1,0)*STi(0,1);
-        if (q>=0) {
-          Scalar z = sqrt(q);
-          // one QR-like iteration for ABi - lambda I
-          // is enough - when we know exact eigenvalue in advance,
-          // convergence is immediate
-          JRs G;
-          if (p>=0)
-            G.makeGivens(p + z, STi(1,0));
-          else
-            G.makeGivens(p - z, STi(1,0));
-          m_S.rightCols(dim-i).applyOnTheLeft(i,i+1,G.adjoint());
-          m_T.rightCols(dim-i).applyOnTheLeft(i,i+1,G.adjoint());
-          // update Q
-          if (m_computeQZ)
-            m_Q.applyOnTheRight(i,i+1,G);
-
-          G.makeGivens(m_T.coeff(i+1,i+1), m_T.coeff(i+1,i));
-          m_S.topRows(i+2).applyOnTheRight(i+1,i,G);
-          m_T.topRows(i+2).applyOnTheRight(i+1,i,G);
-          // update Z
-          if (m_computeQZ)
-            m_Z.applyOnTheLeft(i+1,i,G.adjoint());
-
-          m_S.coeffRef(i+1,i) = Scalar(0.0);
-          m_T.coeffRef(i+1,i) = Scalar(0.0);
-        }
-      }
-      else
-      {
-        pushDownZero(z,i,i+1);
-      }
-    }
-
-  /** \internal use zero in T(z,z) to zero S(l,l-1), working in block f..l */
-  template<typename MatrixType>
-    inline void RealQZ<MatrixType>::pushDownZero(Index z, Index f, Index l)
-    {
-      JRs G;
-      const Index dim = m_S.cols();
-      for (Index zz=z; zz<l; zz++)
-      {
-        // push 0 down
-        Index firstColS = zz>f ? (zz-1) : zz;
-        G.makeGivens(m_T.coeff(zz, zz+1), m_T.coeff(zz+1, zz+1));
-        m_S.rightCols(dim-firstColS).applyOnTheLeft(zz,zz+1,G.adjoint());
-        m_T.rightCols(dim-zz).applyOnTheLeft(zz,zz+1,G.adjoint());
-        m_T.coeffRef(zz+1,zz+1) = Scalar(0.0);
-        // update Q
-        if (m_computeQZ)
-          m_Q.applyOnTheRight(zz,zz+1,G);
-        // kill S(zz+1, zz-1)
-        if (zz>f)
-        {
-          G.makeGivens(m_S.coeff(zz+1, zz), m_S.coeff(zz+1,zz-1));
-          m_S.topRows(zz+2).applyOnTheRight(zz, zz-1,G);
-          m_T.topRows(zz+1).applyOnTheRight(zz, zz-1,G);
-          m_S.coeffRef(zz+1,zz-1) = Scalar(0.0);
-          // update Z
-          if (m_computeQZ)
-            m_Z.applyOnTheLeft(zz,zz-1,G.adjoint());
-        }
-      }
-      // finally kill S(l,l-1)
-      G.makeGivens(m_S.coeff(l,l), m_S.coeff(l,l-1));
-      m_S.applyOnTheRight(l,l-1,G);
-      m_T.applyOnTheRight(l,l-1,G);
-      m_S.coeffRef(l,l-1)=Scalar(0.0);
-      // update Z
-      if (m_computeQZ)
-        m_Z.applyOnTheLeft(l,l-1,G.adjoint());
-    }
-
-  /** \internal QR-like iterative step for block f..l */
-  template<typename MatrixType>
-    inline void RealQZ<MatrixType>::step(Index f, Index l, Index iter)
-    {
-      using std::abs;
-      const Index dim = m_S.cols();
-
-      // x, y, z
-      Scalar x, y, z;
-      if (iter==10)
-      {
-        // Wilkinson ad hoc shift
-        const Scalar
-          a11=m_S.coeff(f+0,f+0), a12=m_S.coeff(f+0,f+1),
-          a21=m_S.coeff(f+1,f+0), a22=m_S.coeff(f+1,f+1), a32=m_S.coeff(f+2,f+1),
-          b12=m_T.coeff(f+0,f+1),
-          b11i=Scalar(1.0)/m_T.coeff(f+0,f+0),
-          b22i=Scalar(1.0)/m_T.coeff(f+1,f+1),
-          a87=m_S.coeff(l-1,l-2),
-          a98=m_S.coeff(l-0,l-1),
-          b77i=Scalar(1.0)/m_T.coeff(l-2,l-2),
-          b88i=Scalar(1.0)/m_T.coeff(l-1,l-1);
-        Scalar ss = abs(a87*b77i) + abs(a98*b88i),
-               lpl = Scalar(1.5)*ss,
-               ll = ss*ss;
-        x = ll + a11*a11*b11i*b11i - lpl*a11*b11i + a12*a21*b11i*b22i
-          - a11*a21*b12*b11i*b11i*b22i;
-        y = a11*a21*b11i*b11i - lpl*a21*b11i + a21*a22*b11i*b22i 
-          - a21*a21*b12*b11i*b11i*b22i;
-        z = a21*a32*b11i*b22i;
-      }
-      else if (iter==16)
-      {
-        // another exceptional shift
-        x = m_S.coeff(f,f)/m_T.coeff(f,f)-m_S.coeff(l,l)/m_T.coeff(l,l) + m_S.coeff(l,l-1)*m_T.coeff(l-1,l) /
-          (m_T.coeff(l-1,l-1)*m_T.coeff(l,l));
-        y = m_S.coeff(f+1,f)/m_T.coeff(f,f);
-        z = 0;
-      }
-      else if (iter>23 && !(iter%8))
-      {
-        // extremely exceptional shift
-        x = internal::random<Scalar>(-1.0,1.0);
-        y = internal::random<Scalar>(-1.0,1.0);
-        z = internal::random<Scalar>(-1.0,1.0);
-      }
-      else
-      {
-        // Compute the shifts: (x,y,z,0...) = (AB^-1 - l1 I) (AB^-1 - l2 I) e1
-        // where l1 and l2 are the eigenvalues of the 2x2 matrix C = U V^-1 where
-        // U and V are 2x2 bottom right sub matrices of A and B. Thus:
-        //  = AB^-1AB^-1 + l1 l2 I - (l1+l2)(AB^-1)
-        //  = AB^-1AB^-1 + det(M) - tr(M)(AB^-1)
-        // Since we are only interested in having x, y, z with a correct ratio, we have:
-        const Scalar
-          a11 = m_S.coeff(f,f),     a12 = m_S.coeff(f,f+1),
-          a21 = m_S.coeff(f+1,f),   a22 = m_S.coeff(f+1,f+1),
-                                    a32 = m_S.coeff(f+2,f+1),
-
-          a88 = m_S.coeff(l-1,l-1), a89 = m_S.coeff(l-1,l),
-          a98 = m_S.coeff(l,l-1),   a99 = m_S.coeff(l,l),
-
-          b11 = m_T.coeff(f,f),     b12 = m_T.coeff(f,f+1),
-                                    b22 = m_T.coeff(f+1,f+1),
-
-          b88 = m_T.coeff(l-1,l-1), b89 = m_T.coeff(l-1,l),
-                                    b99 = m_T.coeff(l,l);
-
-        x = ( (a88/b88 - a11/b11)*(a99/b99 - a11/b11) - (a89/b99)*(a98/b88) + (a98/b88)*(b89/b99)*(a11/b11) ) * (b11/a21)
-          + a12/b22 - (a11/b11)*(b12/b22);
-        y = (a22/b22-a11/b11) - (a21/b11)*(b12/b22) - (a88/b88-a11/b11) - (a99/b99-a11/b11) + (a98/b88)*(b89/b99);
-        z = a32/b22;
-      }
-
-      JRs G;
-
-      for (Index k=f; k<=l-2; k++)
-      {
-        // variables for Householder reflections
-        Vector2s essential2;
-        Scalar tau, beta;
-
-        Vector3s hr(x,y,z);
-
-        // Q_k to annihilate S(k+1,k-1) and S(k+2,k-1)
-        hr.makeHouseholderInPlace(tau, beta);
-        essential2 = hr.template bottomRows<2>();
-        Index fc=(std::max)(k-1,Index(0));  // first col to update
-        m_S.template middleRows<3>(k).rightCols(dim-fc).applyHouseholderOnTheLeft(essential2, tau, m_workspace.data());
-        m_T.template middleRows<3>(k).rightCols(dim-fc).applyHouseholderOnTheLeft(essential2, tau, m_workspace.data());
-        if (m_computeQZ)
-          m_Q.template middleCols<3>(k).applyHouseholderOnTheRight(essential2, tau, m_workspace.data());
-        if (k>f)
-          m_S.coeffRef(k+2,k-1) = m_S.coeffRef(k+1,k-1) = Scalar(0.0);
-
-        // Z_{k1} to annihilate T(k+2,k+1) and T(k+2,k)
-        hr << m_T.coeff(k+2,k+2),m_T.coeff(k+2,k),m_T.coeff(k+2,k+1);
-        hr.makeHouseholderInPlace(tau, beta);
-        essential2 = hr.template bottomRows<2>();
-        {
-          Index lr = (std::min)(k+4,dim); // last row to update
-          Map<Matrix<Scalar,Dynamic,1> > tmp(m_workspace.data(),lr);
-          // S
-          tmp = m_S.template middleCols<2>(k).topRows(lr) * essential2;
-          tmp += m_S.col(k+2).head(lr);
-          m_S.col(k+2).head(lr) -= tau*tmp;
-          m_S.template middleCols<2>(k).topRows(lr) -= (tau*tmp) * essential2.adjoint();
-          // T
-          tmp = m_T.template middleCols<2>(k).topRows(lr) * essential2;
-          tmp += m_T.col(k+2).head(lr);
-          m_T.col(k+2).head(lr) -= tau*tmp;
-          m_T.template middleCols<2>(k).topRows(lr) -= (tau*tmp) * essential2.adjoint();
-        }
-        if (m_computeQZ)
-        {
-          // Z
-          Map<Matrix<Scalar,1,Dynamic> > tmp(m_workspace.data(),dim);
-          tmp = essential2.adjoint()*(m_Z.template middleRows<2>(k));
-          tmp += m_Z.row(k+2);
-          m_Z.row(k+2) -= tau*tmp;
-          m_Z.template middleRows<2>(k) -= essential2 * (tau*tmp);
-        }
-        m_T.coeffRef(k+2,k) = m_T.coeffRef(k+2,k+1) = Scalar(0.0);
-
-        // Z_{k2} to annihilate T(k+1,k)
-        G.makeGivens(m_T.coeff(k+1,k+1), m_T.coeff(k+1,k));
-        m_S.applyOnTheRight(k+1,k,G);
-        m_T.applyOnTheRight(k+1,k,G);
-        // update Z
-        if (m_computeQZ)
-          m_Z.applyOnTheLeft(k+1,k,G.adjoint());
-        m_T.coeffRef(k+1,k) = Scalar(0.0);
-
-        // update x,y,z
-        x = m_S.coeff(k+1,k);
-        y = m_S.coeff(k+2,k);
-        if (k < l-2)
-          z = m_S.coeff(k+3,k);
-      } // loop over k
-
-      // Q_{n-1} to annihilate y = S(l,l-2)
-      G.makeGivens(x,y);
-      m_S.applyOnTheLeft(l-1,l,G.adjoint());
-      m_T.applyOnTheLeft(l-1,l,G.adjoint());
-      if (m_computeQZ)
-        m_Q.applyOnTheRight(l-1,l,G);
-      m_S.coeffRef(l,l-2) = Scalar(0.0);
-
-      // Z_{n-1} to annihilate T(l,l-1)
-      G.makeGivens(m_T.coeff(l,l),m_T.coeff(l,l-1));
-      m_S.applyOnTheRight(l,l-1,G);
-      m_T.applyOnTheRight(l,l-1,G);
-      if (m_computeQZ)
-        m_Z.applyOnTheLeft(l,l-1,G.adjoint());
-      m_T.coeffRef(l,l-1) = Scalar(0.0);
-    }
-
-
-  template<typename MatrixType>
-    RealQZ<MatrixType>& RealQZ<MatrixType>::compute(const MatrixType& A_in, const MatrixType& B_in, bool computeQZ)
-    {
-
-      const Index dim = A_in.cols();
-
-      eigen_assert (A_in.rows()==dim && A_in.cols()==dim 
-          && B_in.rows()==dim && B_in.cols()==dim 
-          && "Need square matrices of the same dimension");
-
-      m_isInitialized = true;
-      m_computeQZ = computeQZ;
-      m_S = A_in; m_T = B_in;
-      m_workspace.resize(dim*2);
-      m_global_iter = 0;
-
-      // entrance point: hessenberg triangular decomposition
-      hessenbergTriangular();
-      // compute L1 vector norms of T, S into m_normOfS, m_normOfT
-      computeNorms();
-
-      Index l = dim-1, 
-            f, 
-            local_iter = 0;
-
-      while (l>0 && local_iter<m_maxIters)
-      {
-        f = findSmallSubdiagEntry(l);
-        // now rows and columns f..l (including) decouple from the rest of the problem
-        if (f>0) m_S.coeffRef(f,f-1) = Scalar(0.0);
-        if (f == l) // One root found
-        {
-          l--;
-          local_iter = 0;
-        }
-        else if (f == l-1) // Two roots found
-        {
-          splitOffTwoRows(f);
-          l -= 2;
-          local_iter = 0;
-        }
-        else // No convergence yet
-        {
-          // if there's zero on diagonal of T, we can isolate an eigenvalue with Givens rotations
-          Index z = findSmallDiagEntry(f,l);
-          if (z>=f)
-          {
-            // zero found
-            pushDownZero(z,f,l);
-          }
-          else
-          {
-            // We are sure now that S.block(f,f, l-f+1,l-f+1) is underuced upper-Hessenberg 
-            // and T.block(f,f, l-f+1,l-f+1) is invertible uper-triangular, which allows to
-            // apply a QR-like iteration to rows and columns f..l.
-            step(f,l, local_iter);
-            local_iter++;
-            m_global_iter++;
-          }
-        }
-      }
-      // check if we converged before reaching iterations limit
-      m_info = (local_iter<m_maxIters) ? Success : NoConvergence;
-      return *this;
-    } // end compute
-
-} // end namespace Eigen
-
-#endif //EIGEN_REAL_QZ
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/RealSchur.h b/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/RealSchur.h
deleted file mode 100644
index 64d1363..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/RealSchur.h
+++ /dev/null
@@ -1,529 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2010,2012 Jitse Niesen <jitse at maths.leeds.ac.uk>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_REAL_SCHUR_H
-#define EIGEN_REAL_SCHUR_H
-
-#include "./HessenbergDecomposition.h"
-
-namespace Eigen { 
-
-/** \eigenvalues_module \ingroup Eigenvalues_Module
-  *
-  *
-  * \class RealSchur
-  *
-  * \brief Performs a real Schur decomposition of a square matrix
-  *
-  * \tparam _MatrixType the type of the matrix of which we are computing the
-  * real Schur decomposition; this is expected to be an instantiation of the
-  * Matrix class template.
-  *
-  * Given a real square matrix A, this class computes the real Schur
-  * decomposition: \f$ A = U T U^T \f$ where U is a real orthogonal matrix and
-  * T is a real quasi-triangular matrix. An orthogonal matrix is a matrix whose
-  * inverse is equal to its transpose, \f$ U^{-1} = U^T \f$. A quasi-triangular
-  * matrix is a block-triangular matrix whose diagonal consists of 1-by-1
-  * blocks and 2-by-2 blocks with complex eigenvalues. The eigenvalues of the
-  * blocks on the diagonal of T are the same as the eigenvalues of the matrix
-  * A, and thus the real Schur decomposition is used in EigenSolver to compute
-  * the eigendecomposition of a matrix.
-  *
-  * Call the function compute() to compute the real Schur decomposition of a
-  * given matrix. Alternatively, you can use the RealSchur(const MatrixType&, bool)
-  * constructor which computes the real Schur decomposition at construction
-  * time. Once the decomposition is computed, you can use the matrixU() and
-  * matrixT() functions to retrieve the matrices U and T in the decomposition.
-  *
-  * The documentation of RealSchur(const MatrixType&, bool) contains an example
-  * of the typical use of this class.
-  *
-  * \note The implementation is adapted from
-  * <a href="http://math.nist.gov/javanumerics/jama/">JAMA</a> (public domain).
-  * Their code is based on EISPACK.
-  *
-  * \sa class ComplexSchur, class EigenSolver, class ComplexEigenSolver
-  */
-template<typename _MatrixType> class RealSchur
-{
-  public:
-    typedef _MatrixType MatrixType;
-    enum {
-      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-      Options = MatrixType::Options,
-      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
-    };
-    typedef typename MatrixType::Scalar Scalar;
-    typedef std::complex<typename NumTraits<Scalar>::Real> ComplexScalar;
-    typedef typename MatrixType::Index Index;
-
-    typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> EigenvalueType;
-    typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ColumnVectorType;
-
-    /** \brief Default constructor.
-      *
-      * \param [in] size  Positive integer, size of the matrix whose Schur decomposition will be computed.
-      *
-      * The default constructor is useful in cases in which the user intends to
-      * perform decompositions via compute().  The \p size parameter is only
-      * used as a hint. It is not an error to give a wrong \p size, but it may
-      * impair performance.
-      *
-      * \sa compute() for an example.
-      */
-    RealSchur(Index size = RowsAtCompileTime==Dynamic ? 1 : RowsAtCompileTime)
-            : m_matT(size, size),
-              m_matU(size, size),
-              m_workspaceVector(size),
-              m_hess(size),
-              m_isInitialized(false),
-              m_matUisUptodate(false),
-              m_maxIters(-1)
-    { }
-
-    /** \brief Constructor; computes real Schur decomposition of given matrix. 
-      * 
-      * \param[in]  matrix    Square matrix whose Schur decomposition is to be computed.
-      * \param[in]  computeU  If true, both T and U are computed; if false, only T is computed.
-      *
-      * This constructor calls compute() to compute the Schur decomposition.
-      *
-      * Example: \include RealSchur_RealSchur_MatrixType.cpp
-      * Output: \verbinclude RealSchur_RealSchur_MatrixType.out
-      */
-    RealSchur(const MatrixType& matrix, bool computeU = true)
-            : m_matT(matrix.rows(),matrix.cols()),
-              m_matU(matrix.rows(),matrix.cols()),
-              m_workspaceVector(matrix.rows()),
-              m_hess(matrix.rows()),
-              m_isInitialized(false),
-              m_matUisUptodate(false),
-              m_maxIters(-1)
-    {
-      compute(matrix, computeU);
-    }
-
-    /** \brief Returns the orthogonal matrix in the Schur decomposition. 
-      *
-      * \returns A const reference to the matrix U.
-      *
-      * \pre Either the constructor RealSchur(const MatrixType&, bool) or the
-      * member function compute(const MatrixType&, bool) has been called before
-      * to compute the Schur decomposition of a matrix, and \p computeU was set
-      * to true (the default value).
-      *
-      * \sa RealSchur(const MatrixType&, bool) for an example
-      */
-    const MatrixType& matrixU() const
-    {
-      eigen_assert(m_isInitialized && "RealSchur is not initialized.");
-      eigen_assert(m_matUisUptodate && "The matrix U has not been computed during the RealSchur decomposition.");
-      return m_matU;
-    }
-
-    /** \brief Returns the quasi-triangular matrix in the Schur decomposition. 
-      *
-      * \returns A const reference to the matrix T.
-      *
-      * \pre Either the constructor RealSchur(const MatrixType&, bool) or the
-      * member function compute(const MatrixType&, bool) has been called before
-      * to compute the Schur decomposition of a matrix.
-      *
-      * \sa RealSchur(const MatrixType&, bool) for an example
-      */
-    const MatrixType& matrixT() const
-    {
-      eigen_assert(m_isInitialized && "RealSchur is not initialized.");
-      return m_matT;
-    }
-  
-    /** \brief Computes Schur decomposition of given matrix. 
-      * 
-      * \param[in]  matrix    Square matrix whose Schur decomposition is to be computed.
-      * \param[in]  computeU  If true, both T and U are computed; if false, only T is computed.
-      * \returns    Reference to \c *this
-      *
-      * The Schur decomposition is computed by first reducing the matrix to
-      * Hessenberg form using the class HessenbergDecomposition. The Hessenberg
-      * matrix is then reduced to triangular form by performing Francis QR
-      * iterations with implicit double shift. The cost of computing the Schur
-      * decomposition depends on the number of iterations; as a rough guide, it
-      * may be taken to be \f$25n^3\f$ flops if \a computeU is true and
-      * \f$10n^3\f$ flops if \a computeU is false.
-      *
-      * Example: \include RealSchur_compute.cpp
-      * Output: \verbinclude RealSchur_compute.out
-      *
-      * \sa compute(const MatrixType&, bool, Index)
-      */
-    RealSchur& compute(const MatrixType& matrix, bool computeU = true);
-
-    /** \brief Computes Schur decomposition of a Hessenberg matrix H = Z T Z^T
-     *  \param[in] matrixH Matrix in Hessenberg form H
-     *  \param[in] matrixQ orthogonal matrix Q that transform a matrix A to H : A = Q H Q^T
-     *  \param computeU Computes the matriX U of the Schur vectors
-     * \return Reference to \c *this
-     * 
-     *  This routine assumes that the matrix is already reduced in Hessenberg form matrixH
-     *  using either the class HessenbergDecomposition or another mean. 
-     *  It computes the upper quasi-triangular matrix T of the Schur decomposition of H
-     *  When computeU is true, this routine computes the matrix U such that 
-     *  A = U T U^T =  (QZ) T (QZ)^T = Q H Q^T where A is the initial matrix
-     * 
-     * NOTE Q is referenced if computeU is true; so, if the initial orthogonal matrix
-     * is not available, the user should give an identity matrix (Q.setIdentity())
-     * 
-     * \sa compute(const MatrixType&, bool)
-     */
-    template<typename HessMatrixType, typename OrthMatrixType>
-    RealSchur& computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ,  bool computeU);
-    /** \brief Reports whether previous computation was successful.
-      *
-      * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "RealSchur is not initialized.");
-      return m_info;
-    }
-
-    /** \brief Sets the maximum number of iterations allowed. 
-      *
-      * If not specified by the user, the maximum number of iterations is m_maxIterationsPerRow times the size
-      * of the matrix.
-      */
-    RealSchur& setMaxIterations(Index maxIters)
-    {
-      m_maxIters = maxIters;
-      return *this;
-    }
-
-    /** \brief Returns the maximum number of iterations. */
-    Index getMaxIterations()
-    {
-      return m_maxIters;
-    }
-
-    /** \brief Maximum number of iterations per row.
-      *
-      * If not otherwise specified, the maximum number of iterations is this number times the size of the
-      * matrix. It is currently set to 40.
-      */
-    static const int m_maxIterationsPerRow = 40;
-
-  private:
-    
-    MatrixType m_matT;
-    MatrixType m_matU;
-    ColumnVectorType m_workspaceVector;
-    HessenbergDecomposition<MatrixType> m_hess;
-    ComputationInfo m_info;
-    bool m_isInitialized;
-    bool m_matUisUptodate;
-    Index m_maxIters;
-
-    typedef Matrix<Scalar,3,1> Vector3s;
-
-    Scalar computeNormOfT();
-    Index findSmallSubdiagEntry(Index iu, const Scalar& norm);
-    void splitOffTwoRows(Index iu, bool computeU, const Scalar& exshift);
-    void computeShift(Index iu, Index iter, Scalar& exshift, Vector3s& shiftInfo);
-    void initFrancisQRStep(Index il, Index iu, const Vector3s& shiftInfo, Index& im, Vector3s& firstHouseholderVector);
-    void performFrancisQRStep(Index il, Index im, Index iu, bool computeU, const Vector3s& firstHouseholderVector, Scalar* workspace);
-};
-
-
-template<typename MatrixType>
-RealSchur<MatrixType>& RealSchur<MatrixType>::compute(const MatrixType& matrix, bool computeU)
-{
-  eigen_assert(matrix.cols() == matrix.rows());
-  Index maxIters = m_maxIters;
-  if (maxIters == -1)
-    maxIters = m_maxIterationsPerRow * matrix.rows();
-
-  // Step 1. Reduce to Hessenberg form
-  m_hess.compute(matrix);
-
-  // Step 2. Reduce to real Schur form  
-  computeFromHessenberg(m_hess.matrixH(), m_hess.matrixQ(), computeU);
-  
-  return *this;
-}
-template<typename MatrixType>
-template<typename HessMatrixType, typename OrthMatrixType>
-RealSchur<MatrixType>& RealSchur<MatrixType>::computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ,  bool computeU)
-{  
-  m_matT = matrixH; 
-  if(computeU)
-    m_matU = matrixQ;
-  
-  Index maxIters = m_maxIters;
-  if (maxIters == -1)
-    maxIters = m_maxIterationsPerRow * matrixH.rows();
-  m_workspaceVector.resize(m_matT.cols());
-  Scalar* workspace = &m_workspaceVector.coeffRef(0);
-
-  // The matrix m_matT is divided in three parts. 
-  // Rows 0,...,il-1 are decoupled from the rest because m_matT(il,il-1) is zero. 
-  // Rows il,...,iu is the part we are working on (the active window).
-  // Rows iu+1,...,end are already brought in triangular form.
-  Index iu = m_matT.cols() - 1;
-  Index iter = 0;      // iteration count for current eigenvalue
-  Index totalIter = 0; // iteration count for whole matrix
-  Scalar exshift(0);   // sum of exceptional shifts
-  Scalar norm = computeNormOfT();
-
-  if(norm!=0)
-  {
-    while (iu >= 0)
-    {
-      Index il = findSmallSubdiagEntry(iu, norm);
-
-      // Check for convergence
-      if (il == iu) // One root found
-      {
-        m_matT.coeffRef(iu,iu) = m_matT.coeff(iu,iu) + exshift;
-        if (iu > 0)
-          m_matT.coeffRef(iu, iu-1) = Scalar(0);
-        iu--;
-        iter = 0;
-      }
-      else if (il == iu-1) // Two roots found
-      {
-        splitOffTwoRows(iu, computeU, exshift);
-        iu -= 2;
-        iter = 0;
-      }
-      else // No convergence yet
-      {
-        // The firstHouseholderVector vector has to be initialized to something to get rid of a silly GCC warning (-O1 -Wall -DNDEBUG )
-        Vector3s firstHouseholderVector(0,0,0), shiftInfo;
-        computeShift(iu, iter, exshift, shiftInfo);
-        iter = iter + 1;
-        totalIter = totalIter + 1;
-        if (totalIter > maxIters) break;
-        Index im;
-        initFrancisQRStep(il, iu, shiftInfo, im, firstHouseholderVector);
-        performFrancisQRStep(il, im, iu, computeU, firstHouseholderVector, workspace);
-      }
-    }
-  }
-  if(totalIter <= maxIters)
-    m_info = Success;
-  else
-    m_info = NoConvergence;
-
-  m_isInitialized = true;
-  m_matUisUptodate = computeU;
-  return *this;
-}
-
-/** \internal Computes and returns vector L1 norm of T */
-template<typename MatrixType>
-inline typename MatrixType::Scalar RealSchur<MatrixType>::computeNormOfT()
-{
-  const Index size = m_matT.cols();
-  // FIXME to be efficient the following would requires a triangular reduxion code
-  // Scalar norm = m_matT.upper().cwiseAbs().sum() 
-  //               + m_matT.bottomLeftCorner(size-1,size-1).diagonal().cwiseAbs().sum();
-  Scalar norm(0);
-  for (Index j = 0; j < size; ++j)
-    norm += m_matT.col(j).segment(0, (std::min)(size,j+2)).cwiseAbs().sum();
-  return norm;
-}
-
-/** \internal Look for single small sub-diagonal element and returns its index */
-template<typename MatrixType>
-inline typename MatrixType::Index RealSchur<MatrixType>::findSmallSubdiagEntry(Index iu, const Scalar& norm)
-{
-  using std::abs;
-  Index res = iu;
-  while (res > 0)
-  {
-    Scalar s = abs(m_matT.coeff(res-1,res-1)) + abs(m_matT.coeff(res,res));
-    if (s == 0.0)
-      s = norm;
-    if (abs(m_matT.coeff(res,res-1)) < NumTraits<Scalar>::epsilon() * s)
-      break;
-    res--;
-  }
-  return res;
-}
-
-/** \internal Update T given that rows iu-1 and iu decouple from the rest. */
-template<typename MatrixType>
-inline void RealSchur<MatrixType>::splitOffTwoRows(Index iu, bool computeU, const Scalar& exshift)
-{
-  using std::sqrt;
-  using std::abs;
-  const Index size = m_matT.cols();
-
-  // The eigenvalues of the 2x2 matrix [a b; c d] are 
-  // trace +/- sqrt(discr/4) where discr = tr^2 - 4*det, tr = a + d, det = ad - bc
-  Scalar p = Scalar(0.5) * (m_matT.coeff(iu-1,iu-1) - m_matT.coeff(iu,iu));
-  Scalar q = p * p + m_matT.coeff(iu,iu-1) * m_matT.coeff(iu-1,iu);   // q = tr^2 / 4 - det = discr/4
-  m_matT.coeffRef(iu,iu) += exshift;
-  m_matT.coeffRef(iu-1,iu-1) += exshift;
-
-  if (q >= Scalar(0)) // Two real eigenvalues
-  {
-    Scalar z = sqrt(abs(q));
-    JacobiRotation<Scalar> rot;
-    if (p >= Scalar(0))
-      rot.makeGivens(p + z, m_matT.coeff(iu, iu-1));
-    else
-      rot.makeGivens(p - z, m_matT.coeff(iu, iu-1));
-
-    m_matT.rightCols(size-iu+1).applyOnTheLeft(iu-1, iu, rot.adjoint());
-    m_matT.topRows(iu+1).applyOnTheRight(iu-1, iu, rot);
-    m_matT.coeffRef(iu, iu-1) = Scalar(0); 
-    if (computeU)
-      m_matU.applyOnTheRight(iu-1, iu, rot);
-  }
-
-  if (iu > 1) 
-    m_matT.coeffRef(iu-1, iu-2) = Scalar(0);
-}
-
-/** \internal Form shift in shiftInfo, and update exshift if an exceptional shift is performed. */
-template<typename MatrixType>
-inline void RealSchur<MatrixType>::computeShift(Index iu, Index iter, Scalar& exshift, Vector3s& shiftInfo)
-{
-  using std::sqrt;
-  using std::abs;
-  shiftInfo.coeffRef(0) = m_matT.coeff(iu,iu);
-  shiftInfo.coeffRef(1) = m_matT.coeff(iu-1,iu-1);
-  shiftInfo.coeffRef(2) = m_matT.coeff(iu,iu-1) * m_matT.coeff(iu-1,iu);
-
-  // Wilkinson's original ad hoc shift
-  if (iter == 10)
-  {
-    exshift += shiftInfo.coeff(0);
-    for (Index i = 0; i <= iu; ++i)
-      m_matT.coeffRef(i,i) -= shiftInfo.coeff(0);
-    Scalar s = abs(m_matT.coeff(iu,iu-1)) + abs(m_matT.coeff(iu-1,iu-2));
-    shiftInfo.coeffRef(0) = Scalar(0.75) * s;
-    shiftInfo.coeffRef(1) = Scalar(0.75) * s;
-    shiftInfo.coeffRef(2) = Scalar(-0.4375) * s * s;
-  }
-
-  // MATLAB's new ad hoc shift
-  if (iter == 30)
-  {
-    Scalar s = (shiftInfo.coeff(1) - shiftInfo.coeff(0)) / Scalar(2.0);
-    s = s * s + shiftInfo.coeff(2);
-    if (s > Scalar(0))
-    {
-      s = sqrt(s);
-      if (shiftInfo.coeff(1) < shiftInfo.coeff(0))
-        s = -s;
-      s = s + (shiftInfo.coeff(1) - shiftInfo.coeff(0)) / Scalar(2.0);
-      s = shiftInfo.coeff(0) - shiftInfo.coeff(2) / s;
-      exshift += s;
-      for (Index i = 0; i <= iu; ++i)
-        m_matT.coeffRef(i,i) -= s;
-      shiftInfo.setConstant(Scalar(0.964));
-    }
-  }
-}
-
-/** \internal Compute index im at which Francis QR step starts and the first Householder vector. */
-template<typename MatrixType>
-inline void RealSchur<MatrixType>::initFrancisQRStep(Index il, Index iu, const Vector3s& shiftInfo, Index& im, Vector3s& firstHouseholderVector)
-{
-  using std::abs;
-  Vector3s& v = firstHouseholderVector; // alias to save typing
-
-  for (im = iu-2; im >= il; --im)
-  {
-    const Scalar Tmm = m_matT.coeff(im,im);
-    const Scalar r = shiftInfo.coeff(0) - Tmm;
-    const Scalar s = shiftInfo.coeff(1) - Tmm;
-    v.coeffRef(0) = (r * s - shiftInfo.coeff(2)) / m_matT.coeff(im+1,im) + m_matT.coeff(im,im+1);
-    v.coeffRef(1) = m_matT.coeff(im+1,im+1) - Tmm - r - s;
-    v.coeffRef(2) = m_matT.coeff(im+2,im+1);
-    if (im == il) {
-      break;
-    }
-    const Scalar lhs = m_matT.coeff(im,im-1) * (abs(v.coeff(1)) + abs(v.coeff(2)));
-    const Scalar rhs = v.coeff(0) * (abs(m_matT.coeff(im-1,im-1)) + abs(Tmm) + abs(m_matT.coeff(im+1,im+1)));
-    if (abs(lhs) < NumTraits<Scalar>::epsilon() * rhs)
-    {
-      break;
-    }
-  }
-}
-
-/** \internal Perform a Francis QR step involving rows il:iu and columns im:iu. */
-template<typename MatrixType>
-inline void RealSchur<MatrixType>::performFrancisQRStep(Index il, Index im, Index iu, bool computeU, const Vector3s& firstHouseholderVector, Scalar* workspace)
-{
-  eigen_assert(im >= il);
-  eigen_assert(im <= iu-2);
-
-  const Index size = m_matT.cols();
-
-  for (Index k = im; k <= iu-2; ++k)
-  {
-    bool firstIteration = (k == im);
-
-    Vector3s v;
-    if (firstIteration)
-      v = firstHouseholderVector;
-    else
-      v = m_matT.template block<3,1>(k,k-1);
-
-    Scalar tau, beta;
-    Matrix<Scalar, 2, 1> ess;
-    v.makeHouseholder(ess, tau, beta);
-    
-    if (beta != Scalar(0)) // if v is not zero
-    {
-      if (firstIteration && k > il)
-        m_matT.coeffRef(k,k-1) = -m_matT.coeff(k,k-1);
-      else if (!firstIteration)
-        m_matT.coeffRef(k,k-1) = beta;
-
-      // These Householder transformations form the O(n^3) part of the algorithm
-      m_matT.block(k, k, 3, size-k).applyHouseholderOnTheLeft(ess, tau, workspace);
-      m_matT.block(0, k, (std::min)(iu,k+3) + 1, 3).applyHouseholderOnTheRight(ess, tau, workspace);
-      if (computeU)
-        m_matU.block(0, k, size, 3).applyHouseholderOnTheRight(ess, tau, workspace);
-    }
-  }
-
-  Matrix<Scalar, 2, 1> v = m_matT.template block<2,1>(iu-1, iu-2);
-  Scalar tau, beta;
-  Matrix<Scalar, 1, 1> ess;
-  v.makeHouseholder(ess, tau, beta);
-
-  if (beta != Scalar(0)) // if v is not zero
-  {
-    m_matT.coeffRef(iu-1, iu-2) = beta;
-    m_matT.block(iu-1, iu-1, 2, size-iu+1).applyHouseholderOnTheLeft(ess, tau, workspace);
-    m_matT.block(0, iu-1, iu+1, 2).applyHouseholderOnTheRight(ess, tau, workspace);
-    if (computeU)
-      m_matU.block(0, iu-1, size, 2).applyHouseholderOnTheRight(ess, tau, workspace);
-  }
-
-  // clean up pollution due to round-off errors
-  for (Index i = im+2; i <= iu; ++i)
-  {
-    m_matT.coeffRef(i,i-2) = Scalar(0);
-    if (i > im+2)
-      m_matT.coeffRef(i,i-3) = Scalar(0);
-  }
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_REAL_SCHUR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/RealSchur_MKL.h b/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/RealSchur_MKL.h
deleted file mode 100644
index ad97364..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/RealSchur_MKL.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- Copyright (c) 2011, Intel Corporation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
- * Neither the name of Intel Corporation nor the names of its contributors may
-   be used to endorse or promote products derived from this software without
-   specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ********************************************************************************
- *   Content : Eigen bindings to Intel(R) MKL
- *    Real Schur needed to real unsymmetrical eigenvalues/eigenvectors.
- ********************************************************************************
-*/
-
-#ifndef EIGEN_REAL_SCHUR_MKL_H
-#define EIGEN_REAL_SCHUR_MKL_H
-
-#include "Eigen/src/Core/util/MKL_support.h"
-
-namespace Eigen { 
-
-/** \internal Specialization for the data types supported by MKL */
-
-#define EIGEN_MKL_SCHUR_REAL(EIGTYPE, MKLTYPE, MKLPREFIX, MKLPREFIX_U, EIGCOLROW, MKLCOLROW) \
-template<> inline \
-RealSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >& \
-RealSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >::compute(const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW>& matrix, bool computeU) \
-{ \
-  typedef Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> MatrixType; \
-  typedef MatrixType::Scalar Scalar; \
-  typedef MatrixType::RealScalar RealScalar; \
-\
-  eigen_assert(matrix.cols() == matrix.rows()); \
-\
-  lapack_int n = matrix.cols(), sdim, info; \
-  lapack_int lda = matrix.outerStride(); \
-  lapack_int matrix_order = MKLCOLROW; \
-  char jobvs, sort='N'; \
-  LAPACK_##MKLPREFIX_U##_SELECT2 select = 0; \
-  jobvs = (computeU) ? 'V' : 'N'; \
-  m_matU.resize(n, n); \
-  lapack_int ldvs  = m_matU.outerStride(); \
-  m_matT = matrix; \
-  Matrix<EIGTYPE, Dynamic, Dynamic> wr, wi; \
-  wr.resize(n, 1); wi.resize(n, 1); \
-  info = LAPACKE_##MKLPREFIX##gees( matrix_order, jobvs, sort, select, n, (MKLTYPE*)m_matT.data(), lda, &sdim, (MKLTYPE*)wr.data(), (MKLTYPE*)wi.data(), (MKLTYPE*)m_matU.data(), ldvs ); \
-  if(info == 0) \
-    m_info = Success; \
-  else \
-    m_info = NoConvergence; \
-\
-  m_isInitialized = true; \
-  m_matUisUptodate = computeU; \
-  return *this; \
-\
-}
-
-EIGEN_MKL_SCHUR_REAL(double,   double, d, D, ColMajor, LAPACK_COL_MAJOR)
-EIGEN_MKL_SCHUR_REAL(float,    float,  s, S, ColMajor, LAPACK_COL_MAJOR)
-EIGEN_MKL_SCHUR_REAL(double,   double, d, D, RowMajor, LAPACK_ROW_MAJOR)
-EIGEN_MKL_SCHUR_REAL(float,    float,  s, S, RowMajor, LAPACK_ROW_MAJOR)
-
-} // end namespace Eigen
-
-#endif // EIGEN_REAL_SCHUR_MKL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h b/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
deleted file mode 100644
index 03c0249..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
+++ /dev/null
@@ -1,802 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2010 Jitse Niesen <jitse at maths.leeds.ac.uk>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SELFADJOINTEIGENSOLVER_H
-#define EIGEN_SELFADJOINTEIGENSOLVER_H
-
-#include "./Tridiagonalization.h"
-
-namespace Eigen { 
-
-template<typename _MatrixType>
-class GeneralizedSelfAdjointEigenSolver;
-
-namespace internal {
-template<typename SolverType,int Size,bool IsComplex> struct direct_selfadjoint_eigenvalues;
-}
-
-/** \eigenvalues_module \ingroup Eigenvalues_Module
-  *
-  *
-  * \class SelfAdjointEigenSolver
-  *
-  * \brief Computes eigenvalues and eigenvectors of selfadjoint matrices
-  *
-  * \tparam _MatrixType the type of the matrix of which we are computing the
-  * eigendecomposition; this is expected to be an instantiation of the Matrix
-  * class template.
-  *
-  * A matrix \f$ A \f$ is selfadjoint if it equals its adjoint. For real
-  * matrices, this means that the matrix is symmetric: it equals its
-  * transpose. This class computes the eigenvalues and eigenvectors of a
-  * selfadjoint matrix. These are the scalars \f$ \lambda \f$ and vectors
-  * \f$ v \f$ such that \f$ Av = \lambda v \f$.  The eigenvalues of a
-  * selfadjoint matrix are always real. If \f$ D \f$ is a diagonal matrix with
-  * the eigenvalues on the diagonal, and \f$ V \f$ is a matrix with the
-  * eigenvectors as its columns, then \f$ A = V D V^{-1} \f$ (for selfadjoint
-  * matrices, the matrix \f$ V \f$ is always invertible). This is called the
-  * eigendecomposition.
-  *
-  * The algorithm exploits the fact that the matrix is selfadjoint, making it
-  * faster and more accurate than the general purpose eigenvalue algorithms
-  * implemented in EigenSolver and ComplexEigenSolver.
-  *
-  * Only the \b lower \b triangular \b part of the input matrix is referenced.
-  *
-  * Call the function compute() to compute the eigenvalues and eigenvectors of
-  * a given matrix. Alternatively, you can use the
-  * SelfAdjointEigenSolver(const MatrixType&, int) constructor which computes
-  * the eigenvalues and eigenvectors at construction time. Once the eigenvalue
-  * and eigenvectors are computed, they can be retrieved with the eigenvalues()
-  * and eigenvectors() functions.
-  *
-  * The documentation for SelfAdjointEigenSolver(const MatrixType&, int)
-  * contains an example of the typical use of this class.
-  *
-  * To solve the \em generalized eigenvalue problem \f$ Av = \lambda Bv \f$ and
-  * the likes, see the class GeneralizedSelfAdjointEigenSolver.
-  *
-  * \sa MatrixBase::eigenvalues(), class EigenSolver, class ComplexEigenSolver
-  */
-template<typename _MatrixType> class SelfAdjointEigenSolver
-{
-  public:
-
-    typedef _MatrixType MatrixType;
-    enum {
-      Size = MatrixType::RowsAtCompileTime,
-      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-      Options = MatrixType::Options,
-      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
-    };
-    
-    /** \brief Scalar type for matrices of type \p _MatrixType. */
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::Index Index;
-
-    /** \brief Real scalar type for \p _MatrixType.
-      *
-      * This is just \c Scalar if #Scalar is real (e.g., \c float or
-      * \c double), and the type of the real part of \c Scalar if #Scalar is
-      * complex.
-      */
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-    
-    friend struct internal::direct_selfadjoint_eigenvalues<SelfAdjointEigenSolver,Size,NumTraits<Scalar>::IsComplex>;
-
-    /** \brief Type for vector of eigenvalues as returned by eigenvalues().
-      *
-      * This is a column vector with entries of type #RealScalar.
-      * The length of the vector is the size of \p _MatrixType.
-      */
-    typedef typename internal::plain_col_type<MatrixType, RealScalar>::type RealVectorType;
-    typedef Tridiagonalization<MatrixType> TridiagonalizationType;
-
-    /** \brief Default constructor for fixed-size matrices.
-      *
-      * The default constructor is useful in cases in which the user intends to
-      * perform decompositions via compute(). This constructor
-      * can only be used if \p _MatrixType is a fixed-size matrix; use
-      * SelfAdjointEigenSolver(Index) for dynamic-size matrices.
-      *
-      * Example: \include SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp
-      * Output: \verbinclude SelfAdjointEigenSolver_SelfAdjointEigenSolver.out
-      */
-    SelfAdjointEigenSolver()
-        : m_eivec(),
-          m_eivalues(),
-          m_subdiag(),
-          m_isInitialized(false)
-    { }
-
-    /** \brief Constructor, pre-allocates memory for dynamic-size matrices.
-      *
-      * \param [in]  size  Positive integer, size of the matrix whose
-      * eigenvalues and eigenvectors will be computed.
-      *
-      * This constructor is useful for dynamic-size matrices, when the user
-      * intends to perform decompositions via compute(). The \p size
-      * parameter is only used as a hint. It is not an error to give a wrong
-      * \p size, but it may impair performance.
-      *
-      * \sa compute() for an example
-      */
-    SelfAdjointEigenSolver(Index size)
-        : m_eivec(size, size),
-          m_eivalues(size),
-          m_subdiag(size > 1 ? size - 1 : 1),
-          m_isInitialized(false)
-    {}
-
-    /** \brief Constructor; computes eigendecomposition of given matrix.
-      *
-      * \param[in]  matrix  Selfadjoint matrix whose eigendecomposition is to
-      *    be computed. Only the lower triangular part of the matrix is referenced.
-      * \param[in]  options Can be #ComputeEigenvectors (default) or #EigenvaluesOnly.
-      *
-      * This constructor calls compute(const MatrixType&, int) to compute the
-      * eigenvalues of the matrix \p matrix. The eigenvectors are computed if
-      * \p options equals #ComputeEigenvectors.
-      *
-      * Example: \include SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp
-      * Output: \verbinclude SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.out
-      *
-      * \sa compute(const MatrixType&, int)
-      */
-    SelfAdjointEigenSolver(const MatrixType& matrix, int options = ComputeEigenvectors)
-      : m_eivec(matrix.rows(), matrix.cols()),
-        m_eivalues(matrix.cols()),
-        m_subdiag(matrix.rows() > 1 ? matrix.rows() - 1 : 1),
-        m_isInitialized(false)
-    {
-      compute(matrix, options);
-    }
-
-    /** \brief Computes eigendecomposition of given matrix.
-      *
-      * \param[in]  matrix  Selfadjoint matrix whose eigendecomposition is to
-      *    be computed. Only the lower triangular part of the matrix is referenced.
-      * \param[in]  options Can be #ComputeEigenvectors (default) or #EigenvaluesOnly.
-      * \returns    Reference to \c *this
-      *
-      * This function computes the eigenvalues of \p matrix.  The eigenvalues()
-      * function can be used to retrieve them.  If \p options equals #ComputeEigenvectors,
-      * then the eigenvectors are also computed and can be retrieved by
-      * calling eigenvectors().
-      *
-      * This implementation uses a symmetric QR algorithm. The matrix is first
-      * reduced to tridiagonal form using the Tridiagonalization class. The
-      * tridiagonal matrix is then brought to diagonal form with implicit
-      * symmetric QR steps with Wilkinson shift. Details can be found in
-      * Section 8.3 of Golub \& Van Loan, <i>%Matrix Computations</i>.
-      *
-      * The cost of the computation is about \f$ 9n^3 \f$ if the eigenvectors
-      * are required and \f$ 4n^3/3 \f$ if they are not required.
-      *
-      * This method reuses the memory in the SelfAdjointEigenSolver object that
-      * was allocated when the object was constructed, if the size of the
-      * matrix does not change.
-      *
-      * Example: \include SelfAdjointEigenSolver_compute_MatrixType.cpp
-      * Output: \verbinclude SelfAdjointEigenSolver_compute_MatrixType.out
-      *
-      * \sa SelfAdjointEigenSolver(const MatrixType&, int)
-      */
-    SelfAdjointEigenSolver& compute(const MatrixType& matrix, int options = ComputeEigenvectors);
-    
-    /** \brief Computes eigendecomposition of given matrix using a direct algorithm
-      *
-      * This is a variant of compute(const MatrixType&, int options) which
-      * directly solves the underlying polynomial equation.
-      * 
-      * Currently only 3x3 matrices for which the sizes are known at compile time are supported (e.g., Matrix3d).
-      * 
-      * This method is usually significantly faster than the QR algorithm
-      * but it might also be less accurate. It is also worth noting that
-      * for 3x3 matrices it involves trigonometric operations which are
-      * not necessarily available for all scalar types.
-      *
-      * \sa compute(const MatrixType&, int options)
-      */
-    SelfAdjointEigenSolver& computeDirect(const MatrixType& matrix, int options = ComputeEigenvectors);
-
-    /** \brief Returns the eigenvectors of given matrix.
-      *
-      * \returns  A const reference to the matrix whose columns are the eigenvectors.
-      *
-      * \pre The eigenvectors have been computed before.
-      *
-      * Column \f$ k \f$ of the returned matrix is an eigenvector corresponding
-      * to eigenvalue number \f$ k \f$ as returned by eigenvalues().  The
-      * eigenvectors are normalized to have (Euclidean) norm equal to one. If
-      * this object was used to solve the eigenproblem for the selfadjoint
-      * matrix \f$ A \f$, then the matrix returned by this function is the
-      * matrix \f$ V \f$ in the eigendecomposition \f$ A = V D V^{-1} \f$.
-      *
-      * Example: \include SelfAdjointEigenSolver_eigenvectors.cpp
-      * Output: \verbinclude SelfAdjointEigenSolver_eigenvectors.out
-      *
-      * \sa eigenvalues()
-      */
-    const MatrixType& eigenvectors() const
-    {
-      eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
-      eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
-      return m_eivec;
-    }
-
-    /** \brief Returns the eigenvalues of given matrix.
-      *
-      * \returns A const reference to the column vector containing the eigenvalues.
-      *
-      * \pre The eigenvalues have been computed before.
-      *
-      * The eigenvalues are repeated according to their algebraic multiplicity,
-      * so there are as many eigenvalues as rows in the matrix. The eigenvalues
-      * are sorted in increasing order.
-      *
-      * Example: \include SelfAdjointEigenSolver_eigenvalues.cpp
-      * Output: \verbinclude SelfAdjointEigenSolver_eigenvalues.out
-      *
-      * \sa eigenvectors(), MatrixBase::eigenvalues()
-      */
-    const RealVectorType& eigenvalues() const
-    {
-      eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
-      return m_eivalues;
-    }
-
-    /** \brief Computes the positive-definite square root of the matrix.
-      *
-      * \returns the positive-definite square root of the matrix
-      *
-      * \pre The eigenvalues and eigenvectors of a positive-definite matrix
-      * have been computed before.
-      *
-      * The square root of a positive-definite matrix \f$ A \f$ is the
-      * positive-definite matrix whose square equals \f$ A \f$. This function
-      * uses the eigendecomposition \f$ A = V D V^{-1} \f$ to compute the
-      * square root as \f$ A^{1/2} = V D^{1/2} V^{-1} \f$.
-      *
-      * Example: \include SelfAdjointEigenSolver_operatorSqrt.cpp
-      * Output: \verbinclude SelfAdjointEigenSolver_operatorSqrt.out
-      *
-      * \sa operatorInverseSqrt(),
-      *     \ref MatrixFunctions_Module "MatrixFunctions Module"
-      */
-    MatrixType operatorSqrt() const
-    {
-      eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
-      eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
-      return m_eivec * m_eivalues.cwiseSqrt().asDiagonal() * m_eivec.adjoint();
-    }
-
-    /** \brief Computes the inverse square root of the matrix.
-      *
-      * \returns the inverse positive-definite square root of the matrix
-      *
-      * \pre The eigenvalues and eigenvectors of a positive-definite matrix
-      * have been computed before.
-      *
-      * This function uses the eigendecomposition \f$ A = V D V^{-1} \f$ to
-      * compute the inverse square root as \f$ V D^{-1/2} V^{-1} \f$. This is
-      * cheaper than first computing the square root with operatorSqrt() and
-      * then its inverse with MatrixBase::inverse().
-      *
-      * Example: \include SelfAdjointEigenSolver_operatorInverseSqrt.cpp
-      * Output: \verbinclude SelfAdjointEigenSolver_operatorInverseSqrt.out
-      *
-      * \sa operatorSqrt(), MatrixBase::inverse(),
-      *     \ref MatrixFunctions_Module "MatrixFunctions Module"
-      */
-    MatrixType operatorInverseSqrt() const
-    {
-      eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
-      eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
-      return m_eivec * m_eivalues.cwiseInverse().cwiseSqrt().asDiagonal() * m_eivec.adjoint();
-    }
-
-    /** \brief Reports whether previous computation was successful.
-      *
-      * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
-      return m_info;
-    }
-
-    /** \brief Maximum number of iterations.
-      *
-      * The algorithm terminates if it does not converge within m_maxIterations * n iterations, where n
-      * denotes the size of the matrix. This value is currently set to 30 (copied from LAPACK).
-      */
-    static const int m_maxIterations = 30;
-
-    #ifdef EIGEN2_SUPPORT
-    SelfAdjointEigenSolver(const MatrixType& matrix, bool computeEigenvectors)
-      : m_eivec(matrix.rows(), matrix.cols()),
-        m_eivalues(matrix.cols()),
-        m_subdiag(matrix.rows() > 1 ? matrix.rows() - 1 : 1),
-        m_isInitialized(false)
-    {
-      compute(matrix, computeEigenvectors);
-    }
-    
-    SelfAdjointEigenSolver(const MatrixType& matA, const MatrixType& matB, bool computeEigenvectors = true)
-        : m_eivec(matA.cols(), matA.cols()),
-          m_eivalues(matA.cols()),
-          m_subdiag(matA.cols() > 1 ? matA.cols() - 1 : 1),
-          m_isInitialized(false)
-    {
-      static_cast<GeneralizedSelfAdjointEigenSolver<MatrixType>*>(this)->compute(matA, matB, computeEigenvectors ? ComputeEigenvectors : EigenvaluesOnly);
-    }
-    
-    void compute(const MatrixType& matrix, bool computeEigenvectors)
-    {
-      compute(matrix, computeEigenvectors ? ComputeEigenvectors : EigenvaluesOnly);
-    }
-
-    void compute(const MatrixType& matA, const MatrixType& matB, bool computeEigenvectors = true)
-    {
-      compute(matA, matB, computeEigenvectors ? ComputeEigenvectors : EigenvaluesOnly);
-    }
-    #endif // EIGEN2_SUPPORT
-
-  protected:
-    MatrixType m_eivec;
-    RealVectorType m_eivalues;
-    typename TridiagonalizationType::SubDiagonalType m_subdiag;
-    ComputationInfo m_info;
-    bool m_isInitialized;
-    bool m_eigenvectorsOk;
-};
-
-/** \internal
-  *
-  * \eigenvalues_module \ingroup Eigenvalues_Module
-  *
-  * Performs a QR step on a tridiagonal symmetric matrix represented as a
-  * pair of two vectors \a diag and \a subdiag.
-  *
-  * \param matA the input selfadjoint matrix
-  * \param hCoeffs returned Householder coefficients
-  *
-  * For compilation efficiency reasons, this procedure does not use eigen expression
-  * for its arguments.
-  *
-  * Implemented from Golub's "Matrix Computations", algorithm 8.3.2:
-  * "implicit symmetric QR step with Wilkinson shift"
-  */
-namespace internal {
-template<int StorageOrder,typename RealScalar, typename Scalar, typename Index>
-static void tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, Index start, Index end, Scalar* matrixQ, Index n);
-}
-
-template<typename MatrixType>
-SelfAdjointEigenSolver<MatrixType>& SelfAdjointEigenSolver<MatrixType>
-::compute(const MatrixType& matrix, int options)
-{
-  using std::abs;
-  eigen_assert(matrix.cols() == matrix.rows());
-  eigen_assert((options&~(EigVecMask|GenEigMask))==0
-          && (options&EigVecMask)!=EigVecMask
-          && "invalid option parameter");
-  bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors;
-  Index n = matrix.cols();
-  m_eivalues.resize(n,1);
-
-  if(n==1)
-  {
-    m_eivalues.coeffRef(0,0) = internal::real(matrix.coeff(0,0));
-    if(computeEigenvectors)
-      m_eivec.setOnes(n,n);
-    m_info = Success;
-    m_isInitialized = true;
-    m_eigenvectorsOk = computeEigenvectors;
-    return *this;
-  }
-
-  // declare some aliases
-  RealVectorType& diag = m_eivalues;
-  MatrixType& mat = m_eivec;
-
-  // map the matrix coefficients to [-1:1] to avoid over- and underflow.
-  mat = matrix.template triangularView<Lower>();
-  RealScalar scale = mat.cwiseAbs().maxCoeff();
-  if(scale==RealScalar(0)) scale = RealScalar(1);
-  mat.template triangularView<Lower>() /= scale;
-  m_subdiag.resize(n-1);
-  internal::tridiagonalization_inplace(mat, diag, m_subdiag, computeEigenvectors);
-  
-  Index end = n-1;
-  Index start = 0;
-  Index iter = 0; // total number of iterations
-
-  while (end>0)
-  {
-    for (Index i = start; i<end; ++i)
-      if (internal::isMuchSmallerThan(abs(m_subdiag[i]),(abs(diag[i])+abs(diag[i+1]))))
-        m_subdiag[i] = 0;
-
-    // find the largest unreduced block
-    while (end>0 && m_subdiag[end-1]==0)
-    {
-      end--;
-    }
-    if (end<=0)
-      break;
-
-    // if we spent too many iterations, we give up
-    iter++;
-    if(iter > m_maxIterations * n) break;
-
-    start = end - 1;
-    while (start>0 && m_subdiag[start-1]!=0)
-      start--;
-
-    internal::tridiagonal_qr_step<MatrixType::Flags&RowMajorBit ? RowMajor : ColMajor>(diag.data(), m_subdiag.data(), start, end, computeEigenvectors ? m_eivec.data() : (Scalar*)0, n);
-  }
-
-  if (iter <= m_maxIterations * n)
-    m_info = Success;
-  else
-    m_info = NoConvergence;
-
-  // Sort eigenvalues and corresponding vectors.
-  // TODO make the sort optional ?
-  // TODO use a better sort algorithm !!
-  if (m_info == Success)
-  {
-    for (Index i = 0; i < n-1; ++i)
-    {
-      Index k;
-      m_eivalues.segment(i,n-i).minCoeff(&k);
-      if (k > 0)
-      {
-        std::swap(m_eivalues[i], m_eivalues[k+i]);
-        if(computeEigenvectors)
-          m_eivec.col(i).swap(m_eivec.col(k+i));
-      }
-    }
-  }
-  
-  // scale back the eigen values
-  m_eivalues *= scale;
-
-  m_isInitialized = true;
-  m_eigenvectorsOk = computeEigenvectors;
-  return *this;
-}
-
-
-namespace internal {
-  
-template<typename SolverType,int Size,bool IsComplex> struct direct_selfadjoint_eigenvalues
-{
-  static inline void run(SolverType& eig, const typename SolverType::MatrixType& A, int options)
-  { eig.compute(A,options); }
-};
-
-template<typename SolverType> struct direct_selfadjoint_eigenvalues<SolverType,3,false>
-{
-  typedef typename SolverType::MatrixType MatrixType;
-  typedef typename SolverType::RealVectorType VectorType;
-  typedef typename SolverType::Scalar Scalar;
-  
-  static inline void computeRoots(const MatrixType& m, VectorType& roots)
-  {
-    using std::sqrt;
-    using std::atan2;
-    using std::cos;
-    using std::sin;
-    const Scalar s_inv3 = Scalar(1.0)/Scalar(3.0);
-    const Scalar s_sqrt3 = sqrt(Scalar(3.0));
-
-    // The characteristic equation is x^3 - c2*x^2 + c1*x - c0 = 0.  The
-    // eigenvalues are the roots to this equation, all guaranteed to be
-    // real-valued, because the matrix is symmetric.
-    Scalar c0 = m(0,0)*m(1,1)*m(2,2) + Scalar(2)*m(1,0)*m(2,0)*m(2,1) - m(0,0)*m(2,1)*m(2,1) - m(1,1)*m(2,0)*m(2,0) - m(2,2)*m(1,0)*m(1,0);
-    Scalar c1 = m(0,0)*m(1,1) - m(1,0)*m(1,0) + m(0,0)*m(2,2) - m(2,0)*m(2,0) + m(1,1)*m(2,2) - m(2,1)*m(2,1);
-    Scalar c2 = m(0,0) + m(1,1) + m(2,2);
-
-    // Construct the parameters used in classifying the roots of the equation
-    // and in solving the equation for the roots in closed form.
-    Scalar c2_over_3 = c2*s_inv3;
-    Scalar a_over_3 = (c1 - c2*c2_over_3)*s_inv3;
-    if (a_over_3 > Scalar(0))
-      a_over_3 = Scalar(0);
-
-    Scalar half_b = Scalar(0.5)*(c0 + c2_over_3*(Scalar(2)*c2_over_3*c2_over_3 - c1));
-
-    Scalar q = half_b*half_b + a_over_3*a_over_3*a_over_3;
-    if (q > Scalar(0))
-      q = Scalar(0);
-
-    // Compute the eigenvalues by solving for the roots of the polynomial.
-    Scalar rho = sqrt(-a_over_3);
-    Scalar theta = atan2(sqrt(-q),half_b)*s_inv3;
-    Scalar cos_theta = cos(theta);
-    Scalar sin_theta = sin(theta);
-    roots(0) = c2_over_3 + Scalar(2)*rho*cos_theta;
-    roots(1) = c2_over_3 - rho*(cos_theta + s_sqrt3*sin_theta);
-    roots(2) = c2_over_3 - rho*(cos_theta - s_sqrt3*sin_theta);
-
-    // Sort in increasing order.
-    if (roots(0) >= roots(1))
-      std::swap(roots(0),roots(1));
-    if (roots(1) >= roots(2))
-    {
-      std::swap(roots(1),roots(2));
-      if (roots(0) >= roots(1))
-        std::swap(roots(0),roots(1));
-    }
-  }
-  
-  static inline void run(SolverType& solver, const MatrixType& mat, int options)
-  {
-    using std::sqrt;
-    eigen_assert(mat.cols() == 3 && mat.cols() == mat.rows());
-    eigen_assert((options&~(EigVecMask|GenEigMask))==0
-            && (options&EigVecMask)!=EigVecMask
-            && "invalid option parameter");
-    bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors;
-    
-    MatrixType& eivecs = solver.m_eivec;
-    VectorType& eivals = solver.m_eivalues;
-  
-    // map the matrix coefficients to [-1:1] to avoid over- and underflow.
-    Scalar scale = mat.cwiseAbs().maxCoeff();
-    MatrixType scaledMat = mat / scale;
-
-    // compute the eigenvalues
-    computeRoots(scaledMat,eivals);
-
-    // compute the eigen vectors
-    if(computeEigenvectors)
-    {
-      Scalar safeNorm2 = Eigen::NumTraits<Scalar>::epsilon();
-      safeNorm2 *= safeNorm2;
-      if((eivals(2)-eivals(0))<=Eigen::NumTraits<Scalar>::epsilon())
-      {
-        eivecs.setIdentity();
-      }
-      else
-      {
-        scaledMat = scaledMat.template selfadjointView<Lower>();
-        MatrixType tmp;
-        tmp = scaledMat;
-
-        Scalar d0 = eivals(2) - eivals(1);
-        Scalar d1 = eivals(1) - eivals(0);
-        int k =  d0 > d1 ? 2 : 0;
-        d0 = d0 > d1 ? d1 : d0;
-
-        tmp.diagonal().array () -= eivals(k);
-        VectorType cross;
-        Scalar n;
-        n = (cross = tmp.row(0).cross(tmp.row(1))).squaredNorm();
-
-        if(n>safeNorm2)
-          eivecs.col(k) = cross / sqrt(n);
-        else
-        {
-          n = (cross = tmp.row(0).cross(tmp.row(2))).squaredNorm();
-
-          if(n>safeNorm2)
-            eivecs.col(k) = cross / sqrt(n);
-          else
-          {
-            n = (cross = tmp.row(1).cross(tmp.row(2))).squaredNorm();
-
-            if(n>safeNorm2)
-              eivecs.col(k) = cross / sqrt(n);
-            else
-            {
-              // the input matrix and/or the eigenvaues probably contains some inf/NaN,
-              // => exit
-              // scale back to the original size.
-              eivals *= scale;
-
-              solver.m_info = NumericalIssue;
-              solver.m_isInitialized = true;
-              solver.m_eigenvectorsOk = computeEigenvectors;
-              return;
-            }
-          }
-        }
-
-        tmp = scaledMat;
-        tmp.diagonal().array() -= eivals(1);
-
-        if(d0<=Eigen::NumTraits<Scalar>::epsilon())
-          eivecs.col(1) = eivecs.col(k).unitOrthogonal();
-        else
-        {
-          n = (cross = eivecs.col(k).cross(tmp.row(0).normalized())).squaredNorm();
-          if(n>safeNorm2)
-            eivecs.col(1) = cross / sqrt(n);
-          else
-          {
-            n = (cross = eivecs.col(k).cross(tmp.row(1))).squaredNorm();
-            if(n>safeNorm2)
-              eivecs.col(1) = cross / sqrt(n);
-            else
-            {
-              n = (cross = eivecs.col(k).cross(tmp.row(2))).squaredNorm();
-              if(n>safeNorm2)
-                eivecs.col(1) = cross / sqrt(n);
-              else
-              {
-                // we should never reach this point,
-                // if so the last two eigenvalues are likely to ve very closed to each other
-                eivecs.col(1) = eivecs.col(k).unitOrthogonal();
-              }
-            }
-          }
-
-          // make sure that eivecs[1] is orthogonal to eivecs[2]
-          Scalar d = eivecs.col(1).dot(eivecs.col(k));
-          eivecs.col(1) = (eivecs.col(1) - d * eivecs.col(k)).normalized();
-        }
-
-        eivecs.col(k==2 ? 0 : 2) = eivecs.col(k).cross(eivecs.col(1)).normalized();
-      }
-    }
-    // Rescale back to the original size.
-    eivals *= scale;
-    
-    solver.m_info = Success;
-    solver.m_isInitialized = true;
-    solver.m_eigenvectorsOk = computeEigenvectors;
-  }
-};
-
-// 2x2 direct eigenvalues decomposition, code from Hauke Heibel
-template<typename SolverType> struct direct_selfadjoint_eigenvalues<SolverType,2,false>
-{
-  typedef typename SolverType::MatrixType MatrixType;
-  typedef typename SolverType::RealVectorType VectorType;
-  typedef typename SolverType::Scalar Scalar;
-  
-  static inline void computeRoots(const MatrixType& m, VectorType& roots)
-  {
-    using std::sqrt;
-    const Scalar t0 = Scalar(0.5) * sqrt( abs2(m(0,0)-m(1,1)) + Scalar(4)*m(1,0)*m(1,0));
-    const Scalar t1 = Scalar(0.5) * (m(0,0) + m(1,1));
-    roots(0) = t1 - t0;
-    roots(1) = t1 + t0;
-  }
-  
-  static inline void run(SolverType& solver, const MatrixType& mat, int options)
-  {
-    using std::sqrt;
-    eigen_assert(mat.cols() == 2 && mat.cols() == mat.rows());
-    eigen_assert((options&~(EigVecMask|GenEigMask))==0
-            && (options&EigVecMask)!=EigVecMask
-            && "invalid option parameter");
-    bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors;
-    
-    MatrixType& eivecs = solver.m_eivec;
-    VectorType& eivals = solver.m_eivalues;
-  
-    // map the matrix coefficients to [-1:1] to avoid over- and underflow.
-    Scalar scale = mat.cwiseAbs().maxCoeff();
-    scale = (std::max)(scale,Scalar(1));
-    MatrixType scaledMat = mat / scale;
-    
-    // Compute the eigenvalues
-    computeRoots(scaledMat,eivals);
-    
-    // compute the eigen vectors
-    if(computeEigenvectors)
-    {
-      scaledMat.diagonal().array () -= eivals(1);
-      Scalar a2 = abs2(scaledMat(0,0));
-      Scalar c2 = abs2(scaledMat(1,1));
-      Scalar b2 = abs2(scaledMat(1,0));
-      if(a2>c2)
-      {
-        eivecs.col(1) << -scaledMat(1,0), scaledMat(0,0);
-        eivecs.col(1) /= sqrt(a2+b2);
-      }
-      else
-      {
-        eivecs.col(1) << -scaledMat(1,1), scaledMat(1,0);
-        eivecs.col(1) /= sqrt(c2+b2);
-      }
-
-      eivecs.col(0) << eivecs.col(1).unitOrthogonal();
-    }
-    
-    // Rescale back to the original size.
-    eivals *= scale;
-    
-    solver.m_info = Success;
-    solver.m_isInitialized = true;
-    solver.m_eigenvectorsOk = computeEigenvectors;
-  }
-};
-
-}
-
-template<typename MatrixType>
-SelfAdjointEigenSolver<MatrixType>& SelfAdjointEigenSolver<MatrixType>
-::computeDirect(const MatrixType& matrix, int options)
-{
-  internal::direct_selfadjoint_eigenvalues<SelfAdjointEigenSolver,Size,NumTraits<Scalar>::IsComplex>::run(*this,matrix,options);
-  return *this;
-}
-
-namespace internal {
-template<int StorageOrder,typename RealScalar, typename Scalar, typename Index>
-static void tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, Index start, Index end, Scalar* matrixQ, Index n)
-{
-  using std::abs;
-  RealScalar td = (diag[end-1] - diag[end])*RealScalar(0.5);
-  RealScalar e = subdiag[end-1];
-  // Note that thanks to scaling, e^2 or td^2 cannot overflow, however they can still
-  // underflow thus leading to inf/NaN values when using the following commented code:
-//   RealScalar e2 = abs2(subdiag[end-1]);
-//   RealScalar mu = diag[end] - e2 / (td + (td>0 ? 1 : -1) * sqrt(td*td + e2));
-  // This explain the following, somewhat more complicated, version:
-  RealScalar mu = diag[end];
-  if(td==0)
-    mu -= abs(e);
-  else
-  {
-    RealScalar e2 = abs2(subdiag[end-1]);
-    RealScalar h = hypot(td,e);
-    if(e2==0)  mu -= (e / (td + (td>0 ? 1 : -1))) * (e / h);
-    else       mu -= e2 / (td + (td>0 ? h : -h));
-  }
-  
-  RealScalar x = diag[start] - mu;
-  RealScalar z = subdiag[start];
-  for (Index k = start; k < end; ++k)
-  {
-    JacobiRotation<RealScalar> rot;
-    rot.makeGivens(x, z);
-
-    // do T = G' T G
-    RealScalar sdk = rot.s() * diag[k] + rot.c() * subdiag[k];
-    RealScalar dkp1 = rot.s() * subdiag[k] + rot.c() * diag[k+1];
-
-    diag[k] = rot.c() * (rot.c() * diag[k] - rot.s() * subdiag[k]) - rot.s() * (rot.c() * subdiag[k] - rot.s() * diag[k+1]);
-    diag[k+1] = rot.s() * sdk + rot.c() * dkp1;
-    subdiag[k] = rot.c() * sdk - rot.s() * dkp1;
-    
-
-    if (k > start)
-      subdiag[k - 1] = rot.c() * subdiag[k-1] - rot.s() * z;
-
-    x = subdiag[k];
-
-    if (k < end - 1)
-    {
-      z = -rot.s() * subdiag[k+1];
-      subdiag[k + 1] = rot.c() * subdiag[k+1];
-    }
-    
-    // apply the givens rotation to the unit matrix Q = Q * G
-    if (matrixQ)
-    {
-      // FIXME if StorageOrder == RowMajor this operation is not very efficient
-      Map<Matrix<Scalar,Dynamic,Dynamic,StorageOrder> > q(matrixQ,n,n);
-      q.applyOnTheRight(k,k+1,rot);
-    }
-  }
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_SELFADJOINTEIGENSOLVER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h b/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h
deleted file mode 100644
index 5de5f15..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- Copyright (c) 2011, Intel Corporation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
- * Neither the name of Intel Corporation nor the names of its contributors may
-   be used to endorse or promote products derived from this software without
-   specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ********************************************************************************
- *   Content : Eigen bindings to Intel(R) MKL
- *    Self-adjoint eigenvalues/eigenvectors.
- ********************************************************************************
-*/
-
-#ifndef EIGEN_SAEIGENSOLVER_MKL_H
-#define EIGEN_SAEIGENSOLVER_MKL_H
-
-#include "Eigen/src/Core/util/MKL_support.h"
-
-namespace Eigen { 
-
-/** \internal Specialization for the data types supported by MKL */
-
-#define EIGEN_MKL_EIG_SELFADJ(EIGTYPE, MKLTYPE, MKLRTYPE, MKLNAME, EIGCOLROW, MKLCOLROW ) \
-template<> inline \
-SelfAdjointEigenSolver<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >& \
-SelfAdjointEigenSolver<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >::compute(const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW>& matrix, int options) \
-{ \
-  eigen_assert(matrix.cols() == matrix.rows()); \
-  eigen_assert((options&~(EigVecMask|GenEigMask))==0 \
-          && (options&EigVecMask)!=EigVecMask \
-          && "invalid option parameter"); \
-  bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors; \
-  lapack_int n = matrix.cols(), lda, matrix_order, info; \
-  m_eivalues.resize(n,1); \
-  m_subdiag.resize(n-1); \
-  m_eivec = matrix; \
-\
-  if(n==1) \
-  { \
-    m_eivalues.coeffRef(0,0) = internal::real(matrix.coeff(0,0)); \
-    if(computeEigenvectors) m_eivec.setOnes(n,n); \
-    m_info = Success; \
-    m_isInitialized = true; \
-    m_eigenvectorsOk = computeEigenvectors; \
-    return *this; \
-  } \
-\
-  lda = matrix.outerStride(); \
-  matrix_order=MKLCOLROW; \
-  char jobz, uplo='L'/*, range='A'*/; \
-  jobz = computeEigenvectors ? 'V' : 'N'; \
-\
-  info = LAPACKE_##MKLNAME( matrix_order, jobz, uplo, n, (MKLTYPE*)m_eivec.data(), lda, (MKLRTYPE*)m_eivalues.data() ); \
-  m_info = (info==0) ? Success : NoConvergence; \
-  m_isInitialized = true; \
-  m_eigenvectorsOk = computeEigenvectors; \
-  return *this; \
-}
-
-
-EIGEN_MKL_EIG_SELFADJ(double,   double,        double, dsyev, ColMajor, LAPACK_COL_MAJOR)
-EIGEN_MKL_EIG_SELFADJ(float,    float,         float,  ssyev, ColMajor, LAPACK_COL_MAJOR)
-EIGEN_MKL_EIG_SELFADJ(dcomplex, MKL_Complex16, double, zheev, ColMajor, LAPACK_COL_MAJOR)
-EIGEN_MKL_EIG_SELFADJ(scomplex, MKL_Complex8,  float,  cheev, ColMajor, LAPACK_COL_MAJOR)
-
-EIGEN_MKL_EIG_SELFADJ(double,   double,        double, dsyev, RowMajor, LAPACK_ROW_MAJOR)
-EIGEN_MKL_EIG_SELFADJ(float,    float,         float,  ssyev, RowMajor, LAPACK_ROW_MAJOR)
-EIGEN_MKL_EIG_SELFADJ(dcomplex, MKL_Complex16, double, zheev, RowMajor, LAPACK_ROW_MAJOR)
-EIGEN_MKL_EIG_SELFADJ(scomplex, MKL_Complex8,  float,  cheev, RowMajor, LAPACK_ROW_MAJOR)
-
-} // end namespace Eigen
-
-#endif // EIGEN_SAEIGENSOLVER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/Tridiagonalization.h b/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/Tridiagonalization.h
deleted file mode 100644
index e840876..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/Tridiagonalization.h
+++ /dev/null
@@ -1,557 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2010 Jitse Niesen <jitse at maths.leeds.ac.uk>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_TRIDIAGONALIZATION_H
-#define EIGEN_TRIDIAGONALIZATION_H
-
-namespace Eigen { 
-
-namespace internal {
-  
-template<typename MatrixType> struct TridiagonalizationMatrixTReturnType;
-template<typename MatrixType>
-struct traits<TridiagonalizationMatrixTReturnType<MatrixType> >
-{
-  typedef typename MatrixType::PlainObject ReturnType;
-};
-
-template<typename MatrixType, typename CoeffVectorType>
-void tridiagonalization_inplace(MatrixType& matA, CoeffVectorType& hCoeffs);
-}
-
-/** \eigenvalues_module \ingroup Eigenvalues_Module
-  *
-  *
-  * \class Tridiagonalization
-  *
-  * \brief Tridiagonal decomposition of a selfadjoint matrix
-  *
-  * \tparam _MatrixType the type of the matrix of which we are computing the
-  * tridiagonal decomposition; this is expected to be an instantiation of the
-  * Matrix class template.
-  *
-  * This class performs a tridiagonal decomposition of a selfadjoint matrix \f$ A \f$ such that:
-  * \f$ A = Q T Q^* \f$ where \f$ Q \f$ is unitary and \f$ T \f$ a real symmetric tridiagonal matrix.
-  *
-  * A tridiagonal matrix is a matrix which has nonzero elements only on the
-  * main diagonal and the first diagonal below and above it. The Hessenberg
-  * decomposition of a selfadjoint matrix is in fact a tridiagonal
-  * decomposition. This class is used in SelfAdjointEigenSolver to compute the
-  * eigenvalues and eigenvectors of a selfadjoint matrix.
-  *
-  * Call the function compute() to compute the tridiagonal decomposition of a
-  * given matrix. Alternatively, you can use the Tridiagonalization(const MatrixType&)
-  * constructor which computes the tridiagonal Schur decomposition at
-  * construction time. Once the decomposition is computed, you can use the
-  * matrixQ() and matrixT() functions to retrieve the matrices Q and T in the
-  * decomposition.
-  *
-  * The documentation of Tridiagonalization(const MatrixType&) contains an
-  * example of the typical use of this class.
-  *
-  * \sa class HessenbergDecomposition, class SelfAdjointEigenSolver
-  */
-template<typename _MatrixType> class Tridiagonalization
-{
-  public:
-
-    /** \brief Synonym for the template parameter \p _MatrixType. */
-    typedef _MatrixType MatrixType;
-
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-    typedef typename MatrixType::Index Index;
-
-    enum {
-      Size = MatrixType::RowsAtCompileTime,
-      SizeMinusOne = Size == Dynamic ? Dynamic : (Size > 1 ? Size - 1 : 1),
-      Options = MatrixType::Options,
-      MaxSize = MatrixType::MaxRowsAtCompileTime,
-      MaxSizeMinusOne = MaxSize == Dynamic ? Dynamic : (MaxSize > 1 ? MaxSize - 1 : 1)
-    };
-
-    typedef Matrix<Scalar, SizeMinusOne, 1, Options & ~RowMajor, MaxSizeMinusOne, 1> CoeffVectorType;
-    typedef typename internal::plain_col_type<MatrixType, RealScalar>::type DiagonalType;
-    typedef Matrix<RealScalar, SizeMinusOne, 1, Options & ~RowMajor, MaxSizeMinusOne, 1> SubDiagonalType;
-    typedef typename internal::remove_all<typename MatrixType::RealReturnType>::type MatrixTypeRealView;
-    typedef internal::TridiagonalizationMatrixTReturnType<MatrixTypeRealView> MatrixTReturnType;
-
-    typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
-              typename internal::add_const_on_value_type<typename Diagonal<const MatrixType>::RealReturnType>::type,
-              const Diagonal<const MatrixType>
-            >::type DiagonalReturnType;
-
-    typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
-              typename internal::add_const_on_value_type<typename Diagonal<
-                Block<const MatrixType,SizeMinusOne,SizeMinusOne> >::RealReturnType>::type,
-              const Diagonal<
-                Block<const MatrixType,SizeMinusOne,SizeMinusOne> >
-            >::type SubDiagonalReturnType;
-
-    /** \brief Return type of matrixQ() */
-    typedef typename HouseholderSequence<MatrixType,CoeffVectorType>::ConjugateReturnType HouseholderSequenceType;
-
-    /** \brief Default constructor.
-      *
-      * \param [in]  size  Positive integer, size of the matrix whose tridiagonal
-      * decomposition will be computed.
-      *
-      * The default constructor is useful in cases in which the user intends to
-      * perform decompositions via compute().  The \p size parameter is only
-      * used as a hint. It is not an error to give a wrong \p size, but it may
-      * impair performance.
-      *
-      * \sa compute() for an example.
-      */
-    Tridiagonalization(Index size = Size==Dynamic ? 2 : Size)
-      : m_matrix(size,size),
-        m_hCoeffs(size > 1 ? size-1 : 1),
-        m_isInitialized(false)
-    {}
-
-    /** \brief Constructor; computes tridiagonal decomposition of given matrix.
-      *
-      * \param[in]  matrix  Selfadjoint matrix whose tridiagonal decomposition
-      * is to be computed.
-      *
-      * This constructor calls compute() to compute the tridiagonal decomposition.
-      *
-      * Example: \include Tridiagonalization_Tridiagonalization_MatrixType.cpp
-      * Output: \verbinclude Tridiagonalization_Tridiagonalization_MatrixType.out
-      */
-    Tridiagonalization(const MatrixType& matrix)
-      : m_matrix(matrix),
-        m_hCoeffs(matrix.cols() > 1 ? matrix.cols()-1 : 1),
-        m_isInitialized(false)
-    {
-      internal::tridiagonalization_inplace(m_matrix, m_hCoeffs);
-      m_isInitialized = true;
-    }
-
-    /** \brief Computes tridiagonal decomposition of given matrix.
-      *
-      * \param[in]  matrix  Selfadjoint matrix whose tridiagonal decomposition
-      * is to be computed.
-      * \returns    Reference to \c *this
-      *
-      * The tridiagonal decomposition is computed by bringing the columns of
-      * the matrix successively in the required form using Householder
-      * reflections. The cost is \f$ 4n^3/3 \f$ flops, where \f$ n \f$ denotes
-      * the size of the given matrix.
-      *
-      * This method reuses of the allocated data in the Tridiagonalization
-      * object, if the size of the matrix does not change.
-      *
-      * Example: \include Tridiagonalization_compute.cpp
-      * Output: \verbinclude Tridiagonalization_compute.out
-      */
-    Tridiagonalization& compute(const MatrixType& matrix)
-    {
-      m_matrix = matrix;
-      m_hCoeffs.resize(matrix.rows()-1, 1);
-      internal::tridiagonalization_inplace(m_matrix, m_hCoeffs);
-      m_isInitialized = true;
-      return *this;
-    }
-
-    /** \brief Returns the Householder coefficients.
-      *
-      * \returns a const reference to the vector of Householder coefficients
-      *
-      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
-      * the member function compute(const MatrixType&) has been called before
-      * to compute the tridiagonal decomposition of a matrix.
-      *
-      * The Householder coefficients allow the reconstruction of the matrix
-      * \f$ Q \f$ in the tridiagonal decomposition from the packed data.
-      *
-      * Example: \include Tridiagonalization_householderCoefficients.cpp
-      * Output: \verbinclude Tridiagonalization_householderCoefficients.out
-      *
-      * \sa packedMatrix(), \ref Householder_Module "Householder module"
-      */
-    inline CoeffVectorType householderCoefficients() const
-    {
-      eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
-      return m_hCoeffs;
-    }
-
-    /** \brief Returns the internal representation of the decomposition
-      *
-      *	\returns a const reference to a matrix with the internal representation
-      *	         of the decomposition.
-      *
-      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
-      * the member function compute(const MatrixType&) has been called before
-      * to compute the tridiagonal decomposition of a matrix.
-      *
-      * The returned matrix contains the following information:
-      *  - the strict upper triangular part is equal to the input matrix A.
-      *  - the diagonal and lower sub-diagonal represent the real tridiagonal
-      *    symmetric matrix T.
-      *  - the rest of the lower part contains the Householder vectors that,
-      *    combined with Householder coefficients returned by
-      *    householderCoefficients(), allows to reconstruct the matrix Q as
-      *       \f$ Q = H_{N-1} \ldots H_1 H_0 \f$.
-      *    Here, the matrices \f$ H_i \f$ are the Householder transformations
-      *       \f$ H_i = (I - h_i v_i v_i^T) \f$
-      *    where \f$ h_i \f$ is the \f$ i \f$th Householder coefficient and
-      *    \f$ v_i \f$ is the Householder vector defined by
-      *       \f$ v_i = [ 0, \ldots, 0, 1, M(i+2,i), \ldots, M(N-1,i) ]^T \f$
-      *    with M the matrix returned by this function.
-      *
-      * See LAPACK for further details on this packed storage.
-      *
-      * Example: \include Tridiagonalization_packedMatrix.cpp
-      * Output: \verbinclude Tridiagonalization_packedMatrix.out
-      *
-      * \sa householderCoefficients()
-      */
-    inline const MatrixType& packedMatrix() const
-    {
-      eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
-      return m_matrix;
-    }
-
-    /** \brief Returns the unitary matrix Q in the decomposition
-      *
-      * \returns object representing the matrix Q
-      *
-      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
-      * the member function compute(const MatrixType&) has been called before
-      * to compute the tridiagonal decomposition of a matrix.
-      *
-      * This function returns a light-weight object of template class
-      * HouseholderSequence. You can either apply it directly to a matrix or
-      * you can convert it to a matrix of type #MatrixType.
-      *
-      * \sa Tridiagonalization(const MatrixType&) for an example,
-      *     matrixT(), class HouseholderSequence
-      */
-    HouseholderSequenceType matrixQ() const
-    {
-      eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
-      return HouseholderSequenceType(m_matrix, m_hCoeffs.conjugate())
-             .setLength(m_matrix.rows() - 1)
-             .setShift(1);
-    }
-
-    /** \brief Returns an expression of the tridiagonal matrix T in the decomposition
-      *
-      * \returns expression object representing the matrix T
-      *
-      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
-      * the member function compute(const MatrixType&) has been called before
-      * to compute the tridiagonal decomposition of a matrix.
-      *
-      * Currently, this function can be used to extract the matrix T from internal
-      * data and copy it to a dense matrix object. In most cases, it may be
-      * sufficient to directly use the packed matrix or the vector expressions
-      * returned by diagonal() and subDiagonal() instead of creating a new
-      * dense copy matrix with this function.
-      *
-      * \sa Tridiagonalization(const MatrixType&) for an example,
-      * matrixQ(), packedMatrix(), diagonal(), subDiagonal()
-      */
-    MatrixTReturnType matrixT() const
-    {
-      eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
-      return MatrixTReturnType(m_matrix.real());
-    }
-
-    /** \brief Returns the diagonal of the tridiagonal matrix T in the decomposition.
-      *
-      * \returns expression representing the diagonal of T
-      *
-      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
-      * the member function compute(const MatrixType&) has been called before
-      * to compute the tridiagonal decomposition of a matrix.
-      *
-      * Example: \include Tridiagonalization_diagonal.cpp
-      * Output: \verbinclude Tridiagonalization_diagonal.out
-      *
-      * \sa matrixT(), subDiagonal()
-      */
-    DiagonalReturnType diagonal() const;
-
-    /** \brief Returns the subdiagonal of the tridiagonal matrix T in the decomposition.
-      *
-      * \returns expression representing the subdiagonal of T
-      *
-      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
-      * the member function compute(const MatrixType&) has been called before
-      * to compute the tridiagonal decomposition of a matrix.
-      *
-      * \sa diagonal() for an example, matrixT()
-      */
-    SubDiagonalReturnType subDiagonal() const;
-
-  protected:
-
-    MatrixType m_matrix;
-    CoeffVectorType m_hCoeffs;
-    bool m_isInitialized;
-};
-
-template<typename MatrixType>
-typename Tridiagonalization<MatrixType>::DiagonalReturnType
-Tridiagonalization<MatrixType>::diagonal() const
-{
-  eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
-  return m_matrix.diagonal();
-}
-
-template<typename MatrixType>
-typename Tridiagonalization<MatrixType>::SubDiagonalReturnType
-Tridiagonalization<MatrixType>::subDiagonal() const
-{
-  eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
-  Index n = m_matrix.rows();
-  return Block<const MatrixType,SizeMinusOne,SizeMinusOne>(m_matrix, 1, 0, n-1,n-1).diagonal();
-}
-
-namespace internal {
-
-/** \internal
-  * Performs a tridiagonal decomposition of the selfadjoint matrix \a matA in-place.
-  *
-  * \param[in,out] matA On input the selfadjoint matrix. Only the \b lower triangular part is referenced.
-  *                     On output, the strict upper part is left unchanged, and the lower triangular part
-  *                     represents the T and Q matrices in packed format has detailed below.
-  * \param[out]    hCoeffs returned Householder coefficients (see below)
-  *
-  * On output, the tridiagonal selfadjoint matrix T is stored in the diagonal
-  * and lower sub-diagonal of the matrix \a matA.
-  * The unitary matrix Q is represented in a compact way as a product of
-  * Householder reflectors \f$ H_i \f$ such that:
-  *       \f$ Q = H_{N-1} \ldots H_1 H_0 \f$.
-  * The Householder reflectors are defined as
-  *       \f$ H_i = (I - h_i v_i v_i^T) \f$
-  * where \f$ h_i = hCoeffs[i]\f$ is the \f$ i \f$th Householder coefficient and
-  * \f$ v_i \f$ is the Householder vector defined by
-  *       \f$ v_i = [ 0, \ldots, 0, 1, matA(i+2,i), \ldots, matA(N-1,i) ]^T \f$.
-  *
-  * Implemented from Golub's "Matrix Computations", algorithm 8.3.1.
-  *
-  * \sa Tridiagonalization::packedMatrix()
-  */
-template<typename MatrixType, typename CoeffVectorType>
-void tridiagonalization_inplace(MatrixType& matA, CoeffVectorType& hCoeffs)
-{
-  using internal::conj;
-  typedef typename MatrixType::Index Index;
-  typedef typename MatrixType::Scalar Scalar;
-  typedef typename MatrixType::RealScalar RealScalar;
-  Index n = matA.rows();
-  eigen_assert(n==matA.cols());
-  eigen_assert(n==hCoeffs.size()+1 || n==1);
-  
-  for (Index i = 0; i<n-1; ++i)
-  {
-    Index remainingSize = n-i-1;
-    RealScalar beta;
-    Scalar h;
-    matA.col(i).tail(remainingSize).makeHouseholderInPlace(h, beta);
-
-    // Apply similarity transformation to remaining columns,
-    // i.e., A = H A H' where H = I - h v v' and v = matA.col(i).tail(n-i-1)
-    matA.col(i).coeffRef(i+1) = 1;
-
-    hCoeffs.tail(n-i-1).noalias() = (matA.bottomRightCorner(remainingSize,remainingSize).template selfadjointView<Lower>()
-                                  * (conj(h) * matA.col(i).tail(remainingSize)));
-
-    hCoeffs.tail(n-i-1) += (conj(h)*Scalar(-0.5)*(hCoeffs.tail(remainingSize).dot(matA.col(i).tail(remainingSize)))) * matA.col(i).tail(n-i-1);
-
-    matA.bottomRightCorner(remainingSize, remainingSize).template selfadjointView<Lower>()
-      .rankUpdate(matA.col(i).tail(remainingSize), hCoeffs.tail(remainingSize), -1);
-
-    matA.col(i).coeffRef(i+1) = beta;
-    hCoeffs.coeffRef(i) = h;
-  }
-}
-
-// forward declaration, implementation at the end of this file
-template<typename MatrixType,
-         int Size=MatrixType::ColsAtCompileTime,
-         bool IsComplex=NumTraits<typename MatrixType::Scalar>::IsComplex>
-struct tridiagonalization_inplace_selector;
-
-/** \brief Performs a full tridiagonalization in place
-  *
-  * \param[in,out]  mat  On input, the selfadjoint matrix whose tridiagonal
-  *    decomposition is to be computed. Only the lower triangular part referenced.
-  *    The rest is left unchanged. On output, the orthogonal matrix Q
-  *    in the decomposition if \p extractQ is true.
-  * \param[out]  diag  The diagonal of the tridiagonal matrix T in the
-  *    decomposition.
-  * \param[out]  subdiag  The subdiagonal of the tridiagonal matrix T in
-  *    the decomposition.
-  * \param[in]  extractQ  If true, the orthogonal matrix Q in the
-  *    decomposition is computed and stored in \p mat.
-  *
-  * Computes the tridiagonal decomposition of the selfadjoint matrix \p mat in place
-  * such that \f$ mat = Q T Q^* \f$ where \f$ Q \f$ is unitary and \f$ T \f$ a real
-  * symmetric tridiagonal matrix.
-  *
-  * The tridiagonal matrix T is passed to the output parameters \p diag and \p subdiag. If
-  * \p extractQ is true, then the orthogonal matrix Q is passed to \p mat. Otherwise the lower
-  * part of the matrix \p mat is destroyed.
-  *
-  * The vectors \p diag and \p subdiag are not resized. The function
-  * assumes that they are already of the correct size. The length of the
-  * vector \p diag should equal the number of rows in \p mat, and the
-  * length of the vector \p subdiag should be one left.
-  *
-  * This implementation contains an optimized path for 3-by-3 matrices
-  * which is especially useful for plane fitting.
-  *
-  * \note Currently, it requires two temporary vectors to hold the intermediate
-  * Householder coefficients, and to reconstruct the matrix Q from the Householder
-  * reflectors.
-  *
-  * Example (this uses the same matrix as the example in
-  *    Tridiagonalization::Tridiagonalization(const MatrixType&)):
-  *    \include Tridiagonalization_decomposeInPlace.cpp
-  * Output: \verbinclude Tridiagonalization_decomposeInPlace.out
-  *
-  * \sa class Tridiagonalization
-  */
-template<typename MatrixType, typename DiagonalType, typename SubDiagonalType>
-void tridiagonalization_inplace(MatrixType& mat, DiagonalType& diag, SubDiagonalType& subdiag, bool extractQ)
-{
-  eigen_assert(mat.cols()==mat.rows() && diag.size()==mat.rows() && subdiag.size()==mat.rows()-1);
-  tridiagonalization_inplace_selector<MatrixType>::run(mat, diag, subdiag, extractQ);
-}
-
-/** \internal
-  * General full tridiagonalization
-  */
-template<typename MatrixType, int Size, bool IsComplex>
-struct tridiagonalization_inplace_selector
-{
-  typedef typename Tridiagonalization<MatrixType>::CoeffVectorType CoeffVectorType;
-  typedef typename Tridiagonalization<MatrixType>::HouseholderSequenceType HouseholderSequenceType;
-  typedef typename MatrixType::Index Index;
-  template<typename DiagonalType, typename SubDiagonalType>
-  static void run(MatrixType& mat, DiagonalType& diag, SubDiagonalType& subdiag, bool extractQ)
-  {
-    CoeffVectorType hCoeffs(mat.cols()-1);
-    tridiagonalization_inplace(mat,hCoeffs);
-    diag = mat.diagonal().real();
-    subdiag = mat.template diagonal<-1>().real();
-    if(extractQ)
-      mat = HouseholderSequenceType(mat, hCoeffs.conjugate())
-            .setLength(mat.rows() - 1)
-            .setShift(1);
-  }
-};
-
-/** \internal
-  * Specialization for 3x3 real matrices.
-  * Especially useful for plane fitting.
-  */
-template<typename MatrixType>
-struct tridiagonalization_inplace_selector<MatrixType,3,false>
-{
-  typedef typename MatrixType::Scalar Scalar;
-  typedef typename MatrixType::RealScalar RealScalar;
-
-  template<typename DiagonalType, typename SubDiagonalType>
-  static void run(MatrixType& mat, DiagonalType& diag, SubDiagonalType& subdiag, bool extractQ)
-  {
-    using std::sqrt;
-    diag[0] = mat(0,0);
-    RealScalar v1norm2 = abs2(mat(2,0));
-    if(v1norm2 == RealScalar(0))
-    {
-      diag[1] = mat(1,1);
-      diag[2] = mat(2,2);
-      subdiag[0] = mat(1,0);
-      subdiag[1] = mat(2,1);
-      if (extractQ)
-        mat.setIdentity();
-    }
-    else
-    {
-      RealScalar beta = sqrt(abs2(mat(1,0)) + v1norm2);
-      RealScalar invBeta = RealScalar(1)/beta;
-      Scalar m01 = mat(1,0) * invBeta;
-      Scalar m02 = mat(2,0) * invBeta;
-      Scalar q = RealScalar(2)*m01*mat(2,1) + m02*(mat(2,2) - mat(1,1));
-      diag[1] = mat(1,1) + m02*q;
-      diag[2] = mat(2,2) - m02*q;
-      subdiag[0] = beta;
-      subdiag[1] = mat(2,1) - m01 * q;
-      if (extractQ)
-      {
-        mat << 1,   0,    0,
-               0, m01,  m02,
-               0, m02, -m01;
-      }
-    }
-  }
-};
-
-/** \internal
-  * Trivial specialization for 1x1 matrices
-  */
-template<typename MatrixType, bool IsComplex>
-struct tridiagonalization_inplace_selector<MatrixType,1,IsComplex>
-{
-  typedef typename MatrixType::Scalar Scalar;
-
-  template<typename DiagonalType, typename SubDiagonalType>
-  static void run(MatrixType& mat, DiagonalType& diag, SubDiagonalType&, bool extractQ)
-  {
-    diag(0,0) = real(mat(0,0));
-    if(extractQ)
-      mat(0,0) = Scalar(1);
-  }
-};
-
-/** \internal
-  * \eigenvalues_module \ingroup Eigenvalues_Module
-  *
-  * \brief Expression type for return value of Tridiagonalization::matrixT()
-  *
-  * \tparam MatrixType type of underlying dense matrix
-  */
-template<typename MatrixType> struct TridiagonalizationMatrixTReturnType
-: public ReturnByValue<TridiagonalizationMatrixTReturnType<MatrixType> >
-{
-    typedef typename MatrixType::Index Index;
-  public:
-    /** \brief Constructor.
-      *
-      * \param[in] mat The underlying dense matrix
-      */
-    TridiagonalizationMatrixTReturnType(const MatrixType& mat) : m_matrix(mat) { }
-
-    template <typename ResultType>
-    inline void evalTo(ResultType& result) const
-    {
-      result.setZero();
-      result.template diagonal<1>() = m_matrix.template diagonal<-1>().conjugate();
-      result.diagonal() = m_matrix.diagonal();
-      result.template diagonal<-1>() = m_matrix.template diagonal<-1>();
-    }
-
-    Index rows() const { return m_matrix.rows(); }
-    Index cols() const { return m_matrix.cols(); }
-
-  protected:
-    typename MatrixType::Nested m_matrix;
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_TRIDIAGONALIZATION_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/AlignedBox.h b/vendor/eigen-3.1.91/Eigen/src/Geometry/AlignedBox.h
deleted file mode 100644
index 538a5af..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Geometry/AlignedBox.h
+++ /dev/null
@@ -1,375 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_ALIGNEDBOX_H
-#define EIGEN_ALIGNEDBOX_H
-
-namespace Eigen { 
-
-/** \geometry_module \ingroup Geometry_Module
-  *
-  *
-  * \class AlignedBox
-  *
-  * \brief An axis aligned box
-  *
-  * \param _Scalar the type of the scalar coefficients
-  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
-  *
-  * This class represents an axis aligned box as a pair of the minimal and maximal corners.
-  */
-template <typename _Scalar, int _AmbientDim>
-class AlignedBox
-{
-public:
-EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
-  enum { AmbientDimAtCompileTime = _AmbientDim };
-  typedef _Scalar                                   Scalar;
-  typedef NumTraits<Scalar>                         ScalarTraits;
-  typedef DenseIndex                                Index;
-  typedef typename ScalarTraits::Real               RealScalar;
-  typedef typename ScalarTraits::NonInteger      NonInteger;
-  typedef Matrix<Scalar,AmbientDimAtCompileTime,1>  VectorType;
-
-  /** Define constants to name the corners of a 1D, 2D or 3D axis aligned bounding box */
-  enum CornerType
-  {
-    /** 1D names */
-    Min=0, Max=1,
-
-    /** Added names for 2D */
-    BottomLeft=0, BottomRight=1,
-    TopLeft=2, TopRight=3,
-
-    /** Added names for 3D */
-    BottomLeftFloor=0, BottomRightFloor=1,
-    TopLeftFloor=2, TopRightFloor=3,
-    BottomLeftCeil=4, BottomRightCeil=5,
-    TopLeftCeil=6, TopRightCeil=7
-  };
-
-
-  /** Default constructor initializing a null box. */
-  inline explicit AlignedBox()
-  { if (AmbientDimAtCompileTime!=Dynamic) setEmpty(); }
-
-  /** Constructs a null box with \a _dim the dimension of the ambient space. */
-  inline explicit AlignedBox(Index _dim) : m_min(_dim), m_max(_dim)
-  { setEmpty(); }
-
-  /** Constructs a box with extremities \a _min and \a _max. */
-  template<typename OtherVectorType1, typename OtherVectorType2>
-  inline AlignedBox(const OtherVectorType1& _min, const OtherVectorType2& _max) : m_min(_min), m_max(_max) {}
-
-  /** Constructs a box containing a single point \a p. */
-  template<typename Derived>
-  inline explicit AlignedBox(const MatrixBase<Derived>& a_p)
-  {
-    typename internal::nested<Derived,2>::type p(a_p.derived());
-    m_min = p;
-    m_max = p;
-  }
-
-  ~AlignedBox() {}
-
-  /** \returns the dimension in which the box holds */
-  inline Index dim() const { return AmbientDimAtCompileTime==Dynamic ? m_min.size() : Index(AmbientDimAtCompileTime); }
-
-  /** \deprecated use isEmpty */
-  inline bool isNull() const { return isEmpty(); }
-
-  /** \deprecated use setEmpty */
-  inline void setNull() { setEmpty(); }
-
-  /** \returns true if the box is empty. */
-  inline bool isEmpty() const { return (m_min.array() > m_max.array()).any(); }
-
-  /** Makes \c *this an empty box. */
-  inline void setEmpty()
-  {
-    m_min.setConstant( ScalarTraits::highest() );
-    m_max.setConstant( ScalarTraits::lowest() );
-  }
-
-  /** \returns the minimal corner */
-  inline const VectorType& (min)() const { return m_min; }
-  /** \returns a non const reference to the minimal corner */
-  inline VectorType& (min)() { return m_min; }
-  /** \returns the maximal corner */
-  inline const VectorType& (max)() const { return m_max; }
-  /** \returns a non const reference to the maximal corner */
-  inline VectorType& (max)() { return m_max; }
-
-  /** \returns the center of the box */
-  inline const CwiseUnaryOp<internal::scalar_quotient1_op<Scalar>,
-                            const CwiseBinaryOp<internal::scalar_sum_op<Scalar>, const VectorType, const VectorType> >
-  center() const
-  { return (m_min+m_max)/2; }
-
-  /** \returns the lengths of the sides of the bounding box.
-    * Note that this function does not get the same
-    * result for integral or floating scalar types: see
-    */
-  inline const CwiseBinaryOp< internal::scalar_difference_op<Scalar>, const VectorType, const VectorType> sizes() const
-  { return m_max - m_min; }
-
-  /** \returns the volume of the bounding box */
-  inline Scalar volume() const
-  { return sizes().prod(); }
-
-  /** \returns an expression for the bounding box diagonal vector
-    * if the length of the diagonal is needed: diagonal().norm()
-    * will provide it.
-    */
-  inline CwiseBinaryOp< internal::scalar_difference_op<Scalar>, const VectorType, const VectorType> diagonal() const
-  { return sizes(); }
-
-  /** \returns the vertex of the bounding box at the corner defined by
-    * the corner-id corner. It works only for a 1D, 2D or 3D bounding box.
-    * For 1D bounding boxes corners are named by 2 enum constants:
-    * BottomLeft and BottomRight.
-    * For 2D bounding boxes, corners are named by 4 enum constants:
-    * BottomLeft, BottomRight, TopLeft, TopRight.
-    * For 3D bounding boxes, the following names are added:
-    * BottomLeftCeil, BottomRightCeil, TopLeftCeil, TopRightCeil.
-    */
-  inline VectorType corner(CornerType corner) const
-  {
-    EIGEN_STATIC_ASSERT(_AmbientDim <= 3, THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE);
-
-    VectorType res;
-
-    Index mult = 1;
-    for(Index d=0; d<dim(); ++d)
-    {
-      if( mult & corner ) res[d] = m_max[d];
-      else                res[d] = m_min[d];
-      mult *= 2;
-    }
-    return res;
-  }
-
-  /** \returns a random point inside the bounding box sampled with
-   * a uniform distribution */
-  inline VectorType sample() const
-  {
-    VectorType r;
-    for(Index d=0; d<dim(); ++d)
-    {
-      if(!ScalarTraits::IsInteger)
-      {
-        r[d] = m_min[d] + (m_max[d]-m_min[d])
-             * internal::random<Scalar>(Scalar(0), Scalar(1));
-      }
-      else
-        r[d] = internal::random(m_min[d], m_max[d]);
-    }
-    return r;
-  }
-
-  /** \returns true if the point \a p is inside the box \c *this. */
-  template<typename Derived>
-  inline bool contains(const MatrixBase<Derived>& a_p) const
-  {
-    typename internal::nested<Derived,2>::type p(a_p.derived());
-    return (m_min.array()<=p.array()).all() && (p.array()<=m_max.array()).all();
-  }
-
-  /** \returns true if the box \a b is entirely inside the box \c *this. */
-  inline bool contains(const AlignedBox& b) const
-  { return (m_min.array()<=(b.min)().array()).all() && ((b.max)().array()<=m_max.array()).all(); }
-
-  /** Extends \c *this such that it contains the point \a p and returns a reference to \c *this. */
-  template<typename Derived>
-  inline AlignedBox& extend(const MatrixBase<Derived>& a_p)
-  {
-    typename internal::nested<Derived,2>::type p(a_p.derived());
-    m_min = m_min.cwiseMin(p);
-    m_max = m_max.cwiseMax(p);
-    return *this;
-  }
-
-  /** Extends \c *this such that it contains the box \a b and returns a reference to \c *this. */
-  inline AlignedBox& extend(const AlignedBox& b)
-  {
-    m_min = m_min.cwiseMin(b.m_min);
-    m_max = m_max.cwiseMax(b.m_max);
-    return *this;
-  }
-
-  /** Clamps \c *this by the box \a b and returns a reference to \c *this. */
-  inline AlignedBox& clamp(const AlignedBox& b)
-  {
-    m_min = m_min.cwiseMax(b.m_min);
-    m_max = m_max.cwiseMin(b.m_max);
-    return *this;
-  }
-
-  /** Returns an AlignedBox that is the intersection of \a b and \c *this */
-  inline AlignedBox intersection(const AlignedBox& b) const
-  {return AlignedBox(m_min.cwiseMax(b.m_min), m_max.cwiseMin(b.m_max)); }
-
-  /** Returns an AlignedBox that is the union of \a b and \c *this */
-  inline AlignedBox merged(const AlignedBox& b) const
-  { return AlignedBox(m_min.cwiseMin(b.m_min), m_max.cwiseMax(b.m_max)); }
-
-  /** Translate \c *this by the vector \a t and returns a reference to \c *this. */
-  template<typename Derived>
-  inline AlignedBox& translate(const MatrixBase<Derived>& a_t)
-  {
-    const typename internal::nested<Derived,2>::type t(a_t.derived());
-    m_min += t;
-    m_max += t;
-    return *this;
-  }
-
-  /** \returns the squared distance between the point \a p and the box \c *this,
-    * and zero if \a p is inside the box.
-    * \sa exteriorDistance()
-    */
-  template<typename Derived>
-  inline Scalar squaredExteriorDistance(const MatrixBase<Derived>& a_p) const;
-
-  /** \returns the squared distance between the boxes \a b and \c *this,
-    * and zero if the boxes intersect.
-    * \sa exteriorDistance()
-    */
-  inline Scalar squaredExteriorDistance(const AlignedBox& b) const;
-
-  /** \returns the distance between the point \a p and the box \c *this,
-    * and zero if \a p is inside the box.
-    * \sa squaredExteriorDistance()
-    */
-  template<typename Derived>
-  inline NonInteger exteriorDistance(const MatrixBase<Derived>& p) const
-  { using std::sqrt; return sqrt(NonInteger(squaredExteriorDistance(p))); }
-
-  /** \returns the distance between the boxes \a b and \c *this,
-    * and zero if the boxes intersect.
-    * \sa squaredExteriorDistance()
-    */
-  inline NonInteger exteriorDistance(const AlignedBox& b) const
-  { using std::sqrt; return sqrt(NonInteger(squaredExteriorDistance(b))); }
-
-  /** \returns \c *this with scalar type casted to \a NewScalarType
-    *
-    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
-    * then this function smartly returns a const reference to \c *this.
-    */
-  template<typename NewScalarType>
-  inline typename internal::cast_return_type<AlignedBox,
-           AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type cast() const
-  {
-    return typename internal::cast_return_type<AlignedBox,
-                    AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type(*this);
-  }
-
-  /** Copy constructor with scalar type conversion */
-  template<typename OtherScalarType>
-  inline explicit AlignedBox(const AlignedBox<OtherScalarType,AmbientDimAtCompileTime>& other)
-  {
-    m_min = (other.min)().template cast<Scalar>();
-    m_max = (other.max)().template cast<Scalar>();
-  }
-
-  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
-    * determined by \a prec.
-    *
-    * \sa MatrixBase::isApprox() */
-  bool isApprox(const AlignedBox& other, const RealScalar& prec = ScalarTraits::dummy_precision()) const
-  { return m_min.isApprox(other.m_min, prec) && m_max.isApprox(other.m_max, prec); }
-
-protected:
-
-  VectorType m_min, m_max;
-};
-
-
-
-template<typename Scalar,int AmbientDim>
-template<typename Derived>
-inline Scalar AlignedBox<Scalar,AmbientDim>::squaredExteriorDistance(const MatrixBase<Derived>& a_p) const
-{
-  typename internal::nested<Derived,2*AmbientDim>::type p(a_p.derived());
-  Scalar dist2(0);
-  Scalar aux;
-  for (Index k=0; k<dim(); ++k)
-  {
-    if( m_min[k] > p[k] )
-    {
-      aux = m_min[k] - p[k];
-      dist2 += aux*aux;
-    }
-    else if( p[k] > m_max[k] )
-    {
-      aux = p[k] - m_max[k];
-      dist2 += aux*aux;
-    }
-  }
-  return dist2;
-}
-
-template<typename Scalar,int AmbientDim>
-inline Scalar AlignedBox<Scalar,AmbientDim>::squaredExteriorDistance(const AlignedBox& b) const
-{
-  Scalar dist2(0);
-  Scalar aux;
-  for (Index k=0; k<dim(); ++k)
-  {
-    if( m_min[k] > b.m_max[k] )
-    {
-      aux = m_min[k] - b.m_max[k];
-      dist2 += aux*aux;
-    }
-    else if( b.m_min[k] > m_max[k] )
-    {
-      aux = b.m_min[k] - m_max[k];
-      dist2 += aux*aux;
-    }
-  }
-  return dist2;
-}
-
-/** \defgroup alignedboxtypedefs Global aligned box typedefs
-  *
-  * \ingroup Geometry_Module
-  *
-  * Eigen defines several typedef shortcuts for most common aligned box types.
-  *
-  * The general patterns are the following:
-  *
-  * \c AlignedBoxSizeType where \c Size can be \c 1, \c 2,\c 3,\c 4 for fixed size boxes or \c X for dynamic size,
-  * and where \c Type can be \c i for integer, \c f for float, \c d for double.
-  *
-  * For example, \c AlignedBox3d is a fixed-size 3x3 aligned box type of doubles, and \c AlignedBoxXf is a dynamic-size aligned box of floats.
-  *
-  * \sa class AlignedBox
-  */
-
-#define EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix)    \
-/** \ingroup alignedboxtypedefs */                                 \
-typedef AlignedBox<Type, Size>   AlignedBox##SizeSuffix##TypeSuffix;
-
-#define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \
-EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 1, 1) \
-EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 2, 2) \
-EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 3, 3) \
-EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 4, 4) \
-EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Dynamic, X)
-
-EIGEN_MAKE_TYPEDEFS_ALL_SIZES(int,                  i)
-EIGEN_MAKE_TYPEDEFS_ALL_SIZES(float,                f)
-EIGEN_MAKE_TYPEDEFS_ALL_SIZES(double,               d)
-
-#undef EIGEN_MAKE_TYPEDEFS_ALL_SIZES
-#undef EIGEN_MAKE_TYPEDEFS
-
-} // end namespace Eigen
-
-#endif // EIGEN_ALIGNEDBOX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/AngleAxis.h b/vendor/eigen-3.1.91/Eigen/src/Geometry/AngleAxis.h
deleted file mode 100644
index 553d38c..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Geometry/AngleAxis.h
+++ /dev/null
@@ -1,233 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_ANGLEAXIS_H
-#define EIGEN_ANGLEAXIS_H
-
-namespace Eigen { 
-
-/** \geometry_module \ingroup Geometry_Module
-  *
-  * \class AngleAxis
-  *
-  * \brief Represents a 3D rotation as a rotation angle around an arbitrary 3D axis
-  *
-  * \param _Scalar the scalar type, i.e., the type of the coefficients.
-  *
-  * \warning When setting up an AngleAxis object, the axis vector \b must \b be \b normalized.
-  *
-  * The following two typedefs are provided for convenience:
-  * \li \c AngleAxisf for \c float
-  * \li \c AngleAxisd for \c double
-  *
-  * Combined with MatrixBase::Unit{X,Y,Z}, AngleAxis can be used to easily
-  * mimic Euler-angles. Here is an example:
-  * \include AngleAxis_mimic_euler.cpp
-  * Output: \verbinclude AngleAxis_mimic_euler.out
-  *
-  * \note This class is not aimed to be used to store a rotation transformation,
-  * but rather to make easier the creation of other rotation (Quaternion, rotation Matrix)
-  * and transformation objects.
-  *
-  * \sa class Quaternion, class Transform, MatrixBase::UnitX()
-  */
-
-namespace internal {
-template<typename _Scalar> struct traits<AngleAxis<_Scalar> >
-{
-  typedef _Scalar Scalar;
-};
-}
-
-template<typename _Scalar>
-class AngleAxis : public RotationBase<AngleAxis<_Scalar>,3>
-{
-  typedef RotationBase<AngleAxis<_Scalar>,3> Base;
-
-public:
-
-  using Base::operator*;
-
-  enum { Dim = 3 };
-  /** the scalar type of the coefficients */
-  typedef _Scalar Scalar;
-  typedef Matrix<Scalar,3,3> Matrix3;
-  typedef Matrix<Scalar,3,1> Vector3;
-  typedef Quaternion<Scalar> QuaternionType;
-
-protected:
-
-  Vector3 m_axis;
-  Scalar m_angle;
-
-public:
-
-  /** Default constructor without initialization. */
-  AngleAxis() {}
-  /** Constructs and initialize the angle-axis rotation from an \a angle in radian
-    * and an \a axis which \b must \b be \b normalized.
-    *
-    * \warning If the \a axis vector is not normalized, then the angle-axis object
-    *          represents an invalid rotation. */
-  template<typename Derived>
-  inline AngleAxis(const Scalar& angle, const MatrixBase<Derived>& axis) : m_axis(axis), m_angle(angle) {}
-  /** Constructs and initialize the angle-axis rotation from a quaternion \a q. */
-  template<typename QuatDerived> inline explicit AngleAxis(const QuaternionBase<QuatDerived>& q) { *this = q; }
-  /** Constructs and initialize the angle-axis rotation from a 3x3 rotation matrix. */
-  template<typename Derived>
-  inline explicit AngleAxis(const MatrixBase<Derived>& m) { *this = m; }
-
-  Scalar angle() const { return m_angle; }
-  Scalar& angle() { return m_angle; }
-
-  const Vector3& axis() const { return m_axis; }
-  Vector3& axis() { return m_axis; }
-
-  /** Concatenates two rotations */
-  inline QuaternionType operator* (const AngleAxis& other) const
-  { return QuaternionType(*this) * QuaternionType(other); }
-
-  /** Concatenates two rotations */
-  inline QuaternionType operator* (const QuaternionType& other) const
-  { return QuaternionType(*this) * other; }
-
-  /** Concatenates two rotations */
-  friend inline QuaternionType operator* (const QuaternionType& a, const AngleAxis& b)
-  { return a * QuaternionType(b); }
-
-  /** \returns the inverse rotation, i.e., an angle-axis with opposite rotation angle */
-  AngleAxis inverse() const
-  { return AngleAxis(-m_angle, m_axis); }
-
-  template<class QuatDerived>
-  AngleAxis& operator=(const QuaternionBase<QuatDerived>& q);
-  template<typename Derived>
-  AngleAxis& operator=(const MatrixBase<Derived>& m);
-
-  template<typename Derived>
-  AngleAxis& fromRotationMatrix(const MatrixBase<Derived>& m);
-  Matrix3 toRotationMatrix(void) const;
-
-  /** \returns \c *this with scalar type casted to \a NewScalarType
-    *
-    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
-    * then this function smartly returns a const reference to \c *this.
-    */
-  template<typename NewScalarType>
-  inline typename internal::cast_return_type<AngleAxis,AngleAxis<NewScalarType> >::type cast() const
-  { return typename internal::cast_return_type<AngleAxis,AngleAxis<NewScalarType> >::type(*this); }
-
-  /** Copy constructor with scalar type conversion */
-  template<typename OtherScalarType>
-  inline explicit AngleAxis(const AngleAxis<OtherScalarType>& other)
-  {
-    m_axis = other.axis().template cast<Scalar>();
-    m_angle = Scalar(other.angle());
-  }
-
-  static inline const AngleAxis Identity() { return AngleAxis(0, Vector3::UnitX()); }
-
-  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
-    * determined by \a prec.
-    *
-    * \sa MatrixBase::isApprox() */
-  bool isApprox(const AngleAxis& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
-  { return m_axis.isApprox(other.m_axis, prec) && internal::isApprox(m_angle,other.m_angle, prec); }
-};
-
-/** \ingroup Geometry_Module
-  * single precision angle-axis type */
-typedef AngleAxis<float> AngleAxisf;
-/** \ingroup Geometry_Module
-  * double precision angle-axis type */
-typedef AngleAxis<double> AngleAxisd;
-
-/** Set \c *this from a \b unit quaternion.
-  * The axis is normalized.
-  * 
-  * \warning As any other method dealing with quaternion, if the input quaternion
-  *          is not normalized then the result is undefined.
-  */
-template<typename Scalar>
-template<typename QuatDerived>
-AngleAxis<Scalar>& AngleAxis<Scalar>::operator=(const QuaternionBase<QuatDerived>& q)
-{
-  using std::acos;
-  using std::min;
-  using std::max;
-  using std::sqrt;
-  Scalar n2 = q.vec().squaredNorm();
-  if (n2 < NumTraits<Scalar>::dummy_precision()*NumTraits<Scalar>::dummy_precision())
-  {
-    m_angle = 0;
-    m_axis << 1, 0, 0;
-  }
-  else
-  {
-    m_angle = Scalar(2)*acos((min)((max)(Scalar(-1),q.w()),Scalar(1)));
-    m_axis = q.vec() / sqrt(n2);
-  }
-  return *this;
-}
-
-/** Set \c *this from a 3x3 rotation matrix \a mat.
-  */
-template<typename Scalar>
-template<typename Derived>
-AngleAxis<Scalar>& AngleAxis<Scalar>::operator=(const MatrixBase<Derived>& mat)
-{
-  // Since a direct conversion would not be really faster,
-  // let's use the robust Quaternion implementation:
-  return *this = QuaternionType(mat);
-}
-
-/**
-* \brief Sets \c *this from a 3x3 rotation matrix.
-**/
-template<typename Scalar>
-template<typename Derived>
-AngleAxis<Scalar>& AngleAxis<Scalar>::fromRotationMatrix(const MatrixBase<Derived>& mat)
-{
-  return *this = QuaternionType(mat);
-}
-
-/** Constructs and \returns an equivalent 3x3 rotation matrix.
-  */
-template<typename Scalar>
-typename AngleAxis<Scalar>::Matrix3
-AngleAxis<Scalar>::toRotationMatrix(void) const
-{
-  using std::sin;
-  using std::cos;
-  Matrix3 res;
-  Vector3 sin_axis  = sin(m_angle) * m_axis;
-  Scalar c = cos(m_angle);
-  Vector3 cos1_axis = (Scalar(1)-c) * m_axis;
-
-  Scalar tmp;
-  tmp = cos1_axis.x() * m_axis.y();
-  res.coeffRef(0,1) = tmp - sin_axis.z();
-  res.coeffRef(1,0) = tmp + sin_axis.z();
-
-  tmp = cos1_axis.x() * m_axis.z();
-  res.coeffRef(0,2) = tmp + sin_axis.y();
-  res.coeffRef(2,0) = tmp - sin_axis.y();
-
-  tmp = cos1_axis.y() * m_axis.z();
-  res.coeffRef(1,2) = tmp - sin_axis.x();
-  res.coeffRef(2,1) = tmp + sin_axis.x();
-
-  res.diagonal() = (cos1_axis.cwiseProduct(m_axis)).array() + c;
-
-  return res;
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_ANGLEAXIS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/EulerAngles.h b/vendor/eigen-3.1.91/Eigen/src/Geometry/EulerAngles.h
deleted file mode 100644
index 2163077..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Geometry/EulerAngles.h
+++ /dev/null
@@ -1,85 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_EULERANGLES_H
-#define EIGEN_EULERANGLES_H
-
-namespace Eigen { 
-
-/** \geometry_module \ingroup Geometry_Module
-  *
-  *
-  * \returns the Euler-angles of the rotation matrix \c *this using the convention defined by the triplet (\a a0,\a a1,\a a2)
-  *
-  * Each of the three parameters \a a0,\a a1,\a a2 represents the respective rotation axis as an integer in {0,1,2}.
-  * For instance, in:
-  * \code Vector3f ea = mat.eulerAngles(2, 0, 2); \endcode
-  * "2" represents the z axis and "0" the x axis, etc. The returned angles are such that
-  * we have the following equality:
-  * \code
-  * mat == AngleAxisf(ea[0], Vector3f::UnitZ())
-  *      * AngleAxisf(ea[1], Vector3f::UnitX())
-  *      * AngleAxisf(ea[2], Vector3f::UnitZ()); \endcode
-  * This corresponds to the right-multiply conventions (with right hand side frames).
-  */
-template<typename Derived>
-inline Matrix<typename MatrixBase<Derived>::Scalar,3,1>
-MatrixBase<Derived>::eulerAngles(Index a0, Index a1, Index a2) const
-{
-  using std::atan2;
-  /* Implemented from Graphics Gems IV */
-  EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Derived,3,3)
-
-  Matrix<Scalar,3,1> res;
-  typedef Matrix<typename Derived::Scalar,2,1> Vector2;
-  const Scalar epsilon = NumTraits<Scalar>::dummy_precision();
-
-  const Index odd = ((a0+1)%3 == a1) ? 0 : 1;
-  const Index i = a0;
-  const Index j = (a0 + 1 + odd)%3;
-  const Index k = (a0 + 2 - odd)%3;
-
-  if (a0==a2)
-  {
-    Scalar s = Vector2(coeff(j,i) , coeff(k,i)).norm();
-    res[1] = atan2(s, coeff(i,i));
-    if (s > epsilon)
-    {
-      res[0] = atan2(coeff(j,i), coeff(k,i));
-      res[2] = atan2(coeff(i,j),-coeff(i,k));
-    }
-    else
-    {
-      res[0] = Scalar(0);
-      res[2] = (coeff(i,i)>0?1:-1)*atan2(-coeff(k,j), coeff(j,j));
-    }
-  }
-  else
-  {
-    Scalar c = Vector2(coeff(i,i) , coeff(i,j)).norm();
-    res[1] = atan2(-coeff(i,k), c);
-    if (c > epsilon)
-    {
-      res[0] = atan2(coeff(j,k), coeff(k,k));
-      res[2] = atan2(coeff(i,j), coeff(i,i));
-    }
-    else
-    {
-      res[0] = Scalar(0);
-      res[2] = (coeff(i,k)>0?1:-1)*atan2(-coeff(k,j), coeff(j,j));
-    }
-  }
-  if (!odd)
-    res = -res;
-  return res;
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_EULERANGLES_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/Homogeneous.h b/vendor/eigen-3.1.91/Eigen/src/Geometry/Homogeneous.h
deleted file mode 100644
index df03feb..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Geometry/Homogeneous.h
+++ /dev/null
@@ -1,307 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_HOMOGENEOUS_H
-#define EIGEN_HOMOGENEOUS_H
-
-namespace Eigen { 
-
-/** \geometry_module \ingroup Geometry_Module
-  *
-  * \class Homogeneous
-  *
-  * \brief Expression of one (or a set of) homogeneous vector(s)
-  *
-  * \param MatrixType the type of the object in which we are making homogeneous
-  *
-  * This class represents an expression of one (or a set of) homogeneous vector(s).
-  * It is the return type of MatrixBase::homogeneous() and most of the time
-  * this is the only way it is used.
-  *
-  * \sa MatrixBase::homogeneous()
-  */
-
-namespace internal {
-
-template<typename MatrixType,int Direction>
-struct traits<Homogeneous<MatrixType,Direction> >
- : traits<MatrixType>
-{
-  typedef typename traits<MatrixType>::StorageKind StorageKind;
-  typedef typename nested<MatrixType>::type MatrixTypeNested;
-  typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
-  enum {
-    RowsPlusOne = (MatrixType::RowsAtCompileTime != Dynamic) ?
-                  int(MatrixType::RowsAtCompileTime) + 1 : Dynamic,
-    ColsPlusOne = (MatrixType::ColsAtCompileTime != Dynamic) ?
-                  int(MatrixType::ColsAtCompileTime) + 1 : Dynamic,
-    RowsAtCompileTime = Direction==Vertical  ?  RowsPlusOne : MatrixType::RowsAtCompileTime,
-    ColsAtCompileTime = Direction==Horizontal ? ColsPlusOne : MatrixType::ColsAtCompileTime,
-    MaxRowsAtCompileTime = RowsAtCompileTime,
-    MaxColsAtCompileTime = ColsAtCompileTime,
-    TmpFlags = _MatrixTypeNested::Flags & HereditaryBits,
-    Flags = ColsAtCompileTime==1 ? (TmpFlags & ~RowMajorBit)
-          : RowsAtCompileTime==1 ? (TmpFlags | RowMajorBit)
-          : TmpFlags,
-    CoeffReadCost = _MatrixTypeNested::CoeffReadCost
-  };
-};
-
-template<typename MatrixType,typename Lhs> struct homogeneous_left_product_impl;
-template<typename MatrixType,typename Rhs> struct homogeneous_right_product_impl;
-
-} // end namespace internal
-
-template<typename MatrixType,int _Direction> class Homogeneous
-  : public MatrixBase<Homogeneous<MatrixType,_Direction> >
-{
-  public:
-
-    enum { Direction = _Direction };
-
-    typedef MatrixBase<Homogeneous> Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(Homogeneous)
-
-    inline Homogeneous(const MatrixType& matrix)
-      : m_matrix(matrix)
-    {}
-
-    inline Index rows() const { return m_matrix.rows() + (int(Direction)==Vertical   ? 1 : 0); }
-    inline Index cols() const { return m_matrix.cols() + (int(Direction)==Horizontal ? 1 : 0); }
-
-    inline Scalar coeff(Index row, Index col) const
-    {
-      if(  (int(Direction)==Vertical   && row==m_matrix.rows())
-        || (int(Direction)==Horizontal && col==m_matrix.cols()))
-        return 1;
-      return m_matrix.coeff(row, col);
-    }
-
-    template<typename Rhs>
-    inline const internal::homogeneous_right_product_impl<Homogeneous,Rhs>
-    operator* (const MatrixBase<Rhs>& rhs) const
-    {
-      eigen_assert(int(Direction)==Horizontal);
-      return internal::homogeneous_right_product_impl<Homogeneous,Rhs>(m_matrix,rhs.derived());
-    }
-
-    template<typename Lhs> friend
-    inline const internal::homogeneous_left_product_impl<Homogeneous,Lhs>
-    operator* (const MatrixBase<Lhs>& lhs, const Homogeneous& rhs)
-    {
-      eigen_assert(int(Direction)==Vertical);
-      return internal::homogeneous_left_product_impl<Homogeneous,Lhs>(lhs.derived(),rhs.m_matrix);
-    }
-
-    template<typename Scalar, int Dim, int Mode, int Options> friend
-    inline const internal::homogeneous_left_product_impl<Homogeneous,Transform<Scalar,Dim,Mode,Options> >
-    operator* (const Transform<Scalar,Dim,Mode,Options>& lhs, const Homogeneous& rhs)
-    {
-      eigen_assert(int(Direction)==Vertical);
-      return internal::homogeneous_left_product_impl<Homogeneous,Transform<Scalar,Dim,Mode,Options> >(lhs,rhs.m_matrix);
-    }
-
-  protected:
-    typename MatrixType::Nested m_matrix;
-};
-
-/** \geometry_module
-  *
-  * \return an expression of the equivalent homogeneous vector
-  *
-  * \only_for_vectors
-  *
-  * Example: \include MatrixBase_homogeneous.cpp
-  * Output: \verbinclude MatrixBase_homogeneous.out
-  *
-  * \sa class Homogeneous
-  */
-template<typename Derived>
-inline typename MatrixBase<Derived>::HomogeneousReturnType
-MatrixBase<Derived>::homogeneous() const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
-  return derived();
-}
-
-/** \geometry_module
-  *
-  * \returns a matrix expression of homogeneous column (or row) vectors
-  *
-  * Example: \include VectorwiseOp_homogeneous.cpp
-  * Output: \verbinclude VectorwiseOp_homogeneous.out
-  *
-  * \sa MatrixBase::homogeneous() */
-template<typename ExpressionType, int Direction>
-inline Homogeneous<ExpressionType,Direction>
-VectorwiseOp<ExpressionType,Direction>::homogeneous() const
-{
-  return _expression();
-}
-
-/** \geometry_module
-  *
-  * \returns an expression of the homogeneous normalized vector of \c *this
-  *
-  * Example: \include MatrixBase_hnormalized.cpp
-  * Output: \verbinclude MatrixBase_hnormalized.out
-  *
-  * \sa VectorwiseOp::hnormalized() */
-template<typename Derived>
-inline const typename MatrixBase<Derived>::HNormalizedReturnType
-MatrixBase<Derived>::hnormalized() const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
-  return ConstStartMinusOne(derived(),0,0,
-    ColsAtCompileTime==1?size()-1:1,
-    ColsAtCompileTime==1?1:size()-1) / coeff(size()-1);
-}
-
-/** \geometry_module
-  *
-  * \returns an expression of the homogeneous normalized vector of \c *this
-  *
-  * Example: \include DirectionWise_hnormalized.cpp
-  * Output: \verbinclude DirectionWise_hnormalized.out
-  *
-  * \sa MatrixBase::hnormalized() */
-template<typename ExpressionType, int Direction>
-inline const typename VectorwiseOp<ExpressionType,Direction>::HNormalizedReturnType
-VectorwiseOp<ExpressionType,Direction>::hnormalized() const
-{
-  return HNormalized_Block(_expression(),0,0,
-      Direction==Vertical   ? _expression().rows()-1 : _expression().rows(),
-      Direction==Horizontal ? _expression().cols()-1 : _expression().cols()).cwiseQuotient(
-      Replicate<HNormalized_Factors,
-                Direction==Vertical   ? HNormalized_SizeMinusOne : 1,
-                Direction==Horizontal ? HNormalized_SizeMinusOne : 1>
-        (HNormalized_Factors(_expression(),
-          Direction==Vertical    ? _expression().rows()-1:0,
-          Direction==Horizontal  ? _expression().cols()-1:0,
-          Direction==Vertical    ? 1 : _expression().rows(),
-          Direction==Horizontal  ? 1 : _expression().cols()),
-         Direction==Vertical   ? _expression().rows()-1 : 1,
-         Direction==Horizontal ? _expression().cols()-1 : 1));
-}
-
-namespace internal {
-
-template<typename MatrixOrTransformType>
-struct take_matrix_for_product
-{
-  typedef MatrixOrTransformType type;
-  static const type& run(const type &x) { return x; }
-};
-
-template<typename Scalar, int Dim, int Mode,int Options>
-struct take_matrix_for_product<Transform<Scalar, Dim, Mode, Options> >
-{
-  typedef Transform<Scalar, Dim, Mode, Options> TransformType;
-  typedef typename internal::add_const<typename TransformType::ConstAffinePart>::type type;
-  static type run (const TransformType& x) { return x.affine(); }
-};
-
-template<typename Scalar, int Dim, int Options>
-struct take_matrix_for_product<Transform<Scalar, Dim, Projective, Options> >
-{
-  typedef Transform<Scalar, Dim, Projective, Options> TransformType;
-  typedef typename TransformType::MatrixType type;
-  static const type& run (const TransformType& x) { return x.matrix(); }
-};
-
-template<typename MatrixType,typename Lhs>
-struct traits<homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs> >
-{
-  typedef typename take_matrix_for_product<Lhs>::type LhsMatrixType;
-  typedef typename remove_all<MatrixType>::type MatrixTypeCleaned;
-  typedef typename remove_all<LhsMatrixType>::type LhsMatrixTypeCleaned;
-  typedef typename make_proper_matrix_type<
-                 typename traits<MatrixTypeCleaned>::Scalar,
-                 LhsMatrixTypeCleaned::RowsAtCompileTime,
-                 MatrixTypeCleaned::ColsAtCompileTime,
-                 MatrixTypeCleaned::PlainObject::Options,
-                 LhsMatrixTypeCleaned::MaxRowsAtCompileTime,
-                 MatrixTypeCleaned::MaxColsAtCompileTime>::type ReturnType;
-};
-
-template<typename MatrixType,typename Lhs>
-struct homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs>
-  : public ReturnByValue<homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs> >
-{
-  typedef typename traits<homogeneous_left_product_impl>::LhsMatrixType LhsMatrixType;
-  typedef typename remove_all<LhsMatrixType>::type LhsMatrixTypeCleaned;
-  typedef typename remove_all<typename LhsMatrixTypeCleaned::Nested>::type LhsMatrixTypeNested;
-  typedef typename MatrixType::Index Index;
-  homogeneous_left_product_impl(const Lhs& lhs, const MatrixType& rhs)
-    : m_lhs(take_matrix_for_product<Lhs>::run(lhs)),
-      m_rhs(rhs)
-  {}
-
-  inline Index rows() const { return m_lhs.rows(); }
-  inline Index cols() const { return m_rhs.cols(); }
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    // FIXME investigate how to allow lazy evaluation of this product when possible
-    dst = Block<const LhsMatrixTypeNested,
-              LhsMatrixTypeNested::RowsAtCompileTime,
-              LhsMatrixTypeNested::ColsAtCompileTime==Dynamic?Dynamic:LhsMatrixTypeNested::ColsAtCompileTime-1>
-            (m_lhs,0,0,m_lhs.rows(),m_lhs.cols()-1) * m_rhs;
-    dst += m_lhs.col(m_lhs.cols()-1).rowwise()
-            .template replicate<MatrixType::ColsAtCompileTime>(m_rhs.cols());
-  }
-
-  typename LhsMatrixTypeCleaned::Nested m_lhs;
-  typename MatrixType::Nested m_rhs;
-};
-
-template<typename MatrixType,typename Rhs>
-struct traits<homogeneous_right_product_impl<Homogeneous<MatrixType,Horizontal>,Rhs> >
-{
-  typedef typename make_proper_matrix_type<typename traits<MatrixType>::Scalar,
-                 MatrixType::RowsAtCompileTime,
-                 Rhs::ColsAtCompileTime,
-                 MatrixType::PlainObject::Options,
-                 MatrixType::MaxRowsAtCompileTime,
-                 Rhs::MaxColsAtCompileTime>::type ReturnType;
-};
-
-template<typename MatrixType,typename Rhs>
-struct homogeneous_right_product_impl<Homogeneous<MatrixType,Horizontal>,Rhs>
-  : public ReturnByValue<homogeneous_right_product_impl<Homogeneous<MatrixType,Horizontal>,Rhs> >
-{
-  typedef typename remove_all<typename Rhs::Nested>::type RhsNested;
-  typedef typename MatrixType::Index Index;
-  homogeneous_right_product_impl(const MatrixType& lhs, const Rhs& rhs)
-    : m_lhs(lhs), m_rhs(rhs)
-  {}
-
-  inline Index rows() const { return m_lhs.rows(); }
-  inline Index cols() const { return m_rhs.cols(); }
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    // FIXME investigate how to allow lazy evaluation of this product when possible
-    dst = m_lhs * Block<const RhsNested,
-                        RhsNested::RowsAtCompileTime==Dynamic?Dynamic:RhsNested::RowsAtCompileTime-1,
-                        RhsNested::ColsAtCompileTime>
-            (m_rhs,0,0,m_rhs.rows()-1,m_rhs.cols());
-    dst += m_rhs.row(m_rhs.rows()-1).colwise()
-            .template replicate<MatrixType::RowsAtCompileTime>(m_lhs.rows());
-  }
-
-  typename MatrixType::Nested m_lhs;
-  typename Rhs::Nested m_rhs;
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_HOMOGENEOUS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/Hyperplane.h b/vendor/eigen-3.1.91/Eigen/src/Geometry/Hyperplane.h
deleted file mode 100644
index 6b31efd..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Geometry/Hyperplane.h
+++ /dev/null
@@ -1,270 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_HYPERPLANE_H
-#define EIGEN_HYPERPLANE_H
-
-namespace Eigen { 
-
-/** \geometry_module \ingroup Geometry_Module
-  *
-  * \class Hyperplane
-  *
-  * \brief A hyperplane
-  *
-  * A hyperplane is an affine subspace of dimension n-1 in a space of dimension n.
-  * For example, a hyperplane in a plane is a line; a hyperplane in 3-space is a plane.
-  *
-  * \param _Scalar the scalar type, i.e., the type of the coefficients
-  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
-  *             Notice that the dimension of the hyperplane is _AmbientDim-1.
-  *
-  * This class represents an hyperplane as the zero set of the implicit equation
-  * \f$ n \cdot x + d = 0 \f$ where \f$ n \f$ is a unit normal vector of the plane (linear part)
-  * and \f$ d \f$ is the distance (offset) to the origin.
-  */
-template <typename _Scalar, int _AmbientDim, int _Options>
-class Hyperplane
-{
-public:
-  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim==Dynamic ? Dynamic : _AmbientDim+1)
-  enum {
-    AmbientDimAtCompileTime = _AmbientDim,
-    Options = _Options
-  };
-  typedef _Scalar Scalar;
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  typedef DenseIndex Index;
-  typedef Matrix<Scalar,AmbientDimAtCompileTime,1> VectorType;
-  typedef Matrix<Scalar,Index(AmbientDimAtCompileTime)==Dynamic
-                        ? Dynamic
-                        : Index(AmbientDimAtCompileTime)+1,1,Options> Coefficients;
-  typedef Block<Coefficients,AmbientDimAtCompileTime,1> NormalReturnType;
-  typedef const Block<const Coefficients,AmbientDimAtCompileTime,1> ConstNormalReturnType;
-
-  /** Default constructor without initialization */
-  inline explicit Hyperplane() {}
-  
-  template<int OtherOptions>
-  Hyperplane(const Hyperplane<Scalar,AmbientDimAtCompileTime,OtherOptions>& other)
-   : m_coeffs(other.coeffs())
-  {}
-
-  /** Constructs a dynamic-size hyperplane with \a _dim the dimension
-    * of the ambient space */
-  inline explicit Hyperplane(Index _dim) : m_coeffs(_dim+1) {}
-
-  /** Construct a plane from its normal \a n and a point \a e onto the plane.
-    * \warning the vector normal is assumed to be normalized.
-    */
-  inline Hyperplane(const VectorType& n, const VectorType& e)
-    : m_coeffs(n.size()+1)
-  {
-    normal() = n;
-    offset() = -n.dot(e);
-  }
-
-  /** Constructs a plane from its normal \a n and distance to the origin \a d
-    * such that the algebraic equation of the plane is \f$ n \cdot x + d = 0 \f$.
-    * \warning the vector normal is assumed to be normalized.
-    */
-  inline Hyperplane(const VectorType& n, const Scalar& d)
-    : m_coeffs(n.size()+1)
-  {
-    normal() = n;
-    offset() = d;
-  }
-
-  /** Constructs a hyperplane passing through the two points. If the dimension of the ambient space
-    * is greater than 2, then there isn't uniqueness, so an arbitrary choice is made.
-    */
-  static inline Hyperplane Through(const VectorType& p0, const VectorType& p1)
-  {
-    Hyperplane result(p0.size());
-    result.normal() = (p1 - p0).unitOrthogonal();
-    result.offset() = -p0.dot(result.normal());
-    return result;
-  }
-
-  /** Constructs a hyperplane passing through the three points. The dimension of the ambient space
-    * is required to be exactly 3.
-    */
-  static inline Hyperplane Through(const VectorType& p0, const VectorType& p1, const VectorType& p2)
-  {
-    EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 3)
-    Hyperplane result(p0.size());
-    result.normal() = (p2 - p0).cross(p1 - p0).normalized();
-    result.offset() = -p0.dot(result.normal());
-    return result;
-  }
-
-  /** Constructs a hyperplane passing through the parametrized line \a parametrized.
-    * If the dimension of the ambient space is greater than 2, then there isn't uniqueness,
-    * so an arbitrary choice is made.
-    */
-  // FIXME to be consitent with the rest this could be implemented as a static Through function ??
-  explicit Hyperplane(const ParametrizedLine<Scalar, AmbientDimAtCompileTime>& parametrized)
-  {
-    normal() = parametrized.direction().unitOrthogonal();
-    offset() = -parametrized.origin().dot(normal());
-  }
-
-  ~Hyperplane() {}
-
-  /** \returns the dimension in which the plane holds */
-  inline Index dim() const { return AmbientDimAtCompileTime==Dynamic ? m_coeffs.size()-1 : Index(AmbientDimAtCompileTime); }
-
-  /** normalizes \c *this */
-  void normalize(void)
-  {
-    m_coeffs /= normal().norm();
-  }
-
-  /** \returns the signed distance between the plane \c *this and a point \a p.
-    * \sa absDistance()
-    */
-  inline Scalar signedDistance(const VectorType& p) const { return normal().dot(p) + offset(); }
-
-  /** \returns the absolute distance between the plane \c *this and a point \a p.
-    * \sa signedDistance()
-    */
-  inline Scalar absDistance(const VectorType& p) const { using std::abs; return abs(signedDistance(p)); }
-
-  /** \returns the projection of a point \a p onto the plane \c *this.
-    */
-  inline VectorType projection(const VectorType& p) const { return p - signedDistance(p) * normal(); }
-
-  /** \returns a constant reference to the unit normal vector of the plane, which corresponds
-    * to the linear part of the implicit equation.
-    */
-  inline ConstNormalReturnType normal() const { return ConstNormalReturnType(m_coeffs,0,0,dim(),1); }
-
-  /** \returns a non-constant reference to the unit normal vector of the plane, which corresponds
-    * to the linear part of the implicit equation.
-    */
-  inline NormalReturnType normal() { return NormalReturnType(m_coeffs,0,0,dim(),1); }
-
-  /** \returns the distance to the origin, which is also the "constant term" of the implicit equation
-    * \warning the vector normal is assumed to be normalized.
-    */
-  inline const Scalar& offset() const { return m_coeffs.coeff(dim()); }
-
-  /** \returns a non-constant reference to the distance to the origin, which is also the constant part
-    * of the implicit equation */
-  inline Scalar& offset() { return m_coeffs(dim()); }
-
-  /** \returns a constant reference to the coefficients c_i of the plane equation:
-    * \f$ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \f$
-    */
-  inline const Coefficients& coeffs() const { return m_coeffs; }
-
-  /** \returns a non-constant reference to the coefficients c_i of the plane equation:
-    * \f$ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \f$
-    */
-  inline Coefficients& coeffs() { return m_coeffs; }
-
-  /** \returns the intersection of *this with \a other.
-    *
-    * \warning The ambient space must be a plane, i.e. have dimension 2, so that \c *this and \a other are lines.
-    *
-    * \note If \a other is approximately parallel to *this, this method will return any point on *this.
-    */
-  VectorType intersection(const Hyperplane& other) const
-  {
-    using std::abs;
-    EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 2)
-    Scalar det = coeffs().coeff(0) * other.coeffs().coeff(1) - coeffs().coeff(1) * other.coeffs().coeff(0);
-    // since the line equations ax+by=c are normalized with a^2+b^2=1, the following tests
-    // whether the two lines are approximately parallel.
-    if(internal::isMuchSmallerThan(det, Scalar(1)))
-    {   // special case where the two lines are approximately parallel. Pick any point on the first line.
-        if(abs(coeffs().coeff(1))>abs(coeffs().coeff(0)))
-            return VectorType(coeffs().coeff(1), -coeffs().coeff(2)/coeffs().coeff(1)-coeffs().coeff(0));
-        else
-            return VectorType(-coeffs().coeff(2)/coeffs().coeff(0)-coeffs().coeff(1), coeffs().coeff(0));
-    }
-    else
-    {   // general case
-        Scalar invdet = Scalar(1) / det;
-        return VectorType(invdet*(coeffs().coeff(1)*other.coeffs().coeff(2)-other.coeffs().coeff(1)*coeffs().coeff(2)),
-                          invdet*(other.coeffs().coeff(0)*coeffs().coeff(2)-coeffs().coeff(0)*other.coeffs().coeff(2)));
-    }
-  }
-
-  /** Applies the transformation matrix \a mat to \c *this and returns a reference to \c *this.
-    *
-    * \param mat the Dim x Dim transformation matrix
-    * \param traits specifies whether the matrix \a mat represents an #Isometry
-    *               or a more generic #Affine transformation. The default is #Affine.
-    */
-  template<typename XprType>
-  inline Hyperplane& transform(const MatrixBase<XprType>& mat, TransformTraits traits = Affine)
-  {
-    if (traits==Affine)
-      normal() = mat.inverse().transpose() * normal();
-    else if (traits==Isometry)
-      normal() = mat * normal();
-    else
-    {
-      eigen_assert(0 && "invalid traits value in Hyperplane::transform()");
-    }
-    return *this;
-  }
-
-  /** Applies the transformation \a t to \c *this and returns a reference to \c *this.
-    *
-    * \param t the transformation of dimension Dim
-    * \param traits specifies whether the transformation \a t represents an #Isometry
-    *               or a more generic #Affine transformation. The default is #Affine.
-    *               Other kind of transformations are not supported.
-    */
-  template<int TrOptions>
-  inline Hyperplane& transform(const Transform<Scalar,AmbientDimAtCompileTime,Affine,TrOptions>& t,
-                                TransformTraits traits = Affine)
-  {
-    transform(t.linear(), traits);
-    offset() -= normal().dot(t.translation());
-    return *this;
-  }
-
-  /** \returns \c *this with scalar type casted to \a NewScalarType
-    *
-    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
-    * then this function smartly returns a const reference to \c *this.
-    */
-  template<typename NewScalarType>
-  inline typename internal::cast_return_type<Hyperplane,
-           Hyperplane<NewScalarType,AmbientDimAtCompileTime,Options> >::type cast() const
-  {
-    return typename internal::cast_return_type<Hyperplane,
-                    Hyperplane<NewScalarType,AmbientDimAtCompileTime,Options> >::type(*this);
-  }
-
-  /** Copy constructor with scalar type conversion */
-  template<typename OtherScalarType,int OtherOptions>
-  inline explicit Hyperplane(const Hyperplane<OtherScalarType,AmbientDimAtCompileTime,OtherOptions>& other)
-  { m_coeffs = other.coeffs().template cast<Scalar>(); }
-
-  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
-    * determined by \a prec.
-    *
-    * \sa MatrixBase::isApprox() */
-  template<int OtherOptions>
-  bool isApprox(const Hyperplane<Scalar,AmbientDimAtCompileTime,OtherOptions>& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
-  { return m_coeffs.isApprox(other.m_coeffs, prec); }
-
-protected:
-
-  Coefficients m_coeffs;
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_HYPERPLANE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/OrthoMethods.h b/vendor/eigen-3.1.91/Eigen/src/Geometry/OrthoMethods.h
deleted file mode 100644
index 4c1bf5f..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Geometry/OrthoMethods.h
+++ /dev/null
@@ -1,218 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_ORTHOMETHODS_H
-#define EIGEN_ORTHOMETHODS_H
-
-namespace Eigen { 
-
-/** \geometry_module
-  *
-  * \returns the cross product of \c *this and \a other
-  *
-  * Here is a very good explanation of cross-product: http://xkcd.com/199/
-  * \sa MatrixBase::cross3()
-  */
-template<typename Derived>
-template<typename OtherDerived>
-inline typename MatrixBase<Derived>::template cross_product_return_type<OtherDerived>::type
-MatrixBase<Derived>::cross(const MatrixBase<OtherDerived>& other) const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Derived,3)
-  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,3)
-
-  // Note that there is no need for an expression here since the compiler
-  // optimize such a small temporary very well (even within a complex expression)
-  typename internal::nested<Derived,2>::type lhs(derived());
-  typename internal::nested<OtherDerived,2>::type rhs(other.derived());
-  return typename cross_product_return_type<OtherDerived>::type(
-    internal::conj(lhs.coeff(1) * rhs.coeff(2) - lhs.coeff(2) * rhs.coeff(1)),
-    internal::conj(lhs.coeff(2) * rhs.coeff(0) - lhs.coeff(0) * rhs.coeff(2)),
-    internal::conj(lhs.coeff(0) * rhs.coeff(1) - lhs.coeff(1) * rhs.coeff(0))
-  );
-}
-
-namespace internal {
-
-template< int Arch,typename VectorLhs,typename VectorRhs,
-          typename Scalar = typename VectorLhs::Scalar,
-          bool Vectorizable = bool((VectorLhs::Flags&VectorRhs::Flags)&PacketAccessBit)>
-struct cross3_impl {
-  static inline typename internal::plain_matrix_type<VectorLhs>::type
-  run(const VectorLhs& lhs, const VectorRhs& rhs)
-  {
-    return typename internal::plain_matrix_type<VectorLhs>::type(
-      internal::conj(lhs.coeff(1) * rhs.coeff(2) - lhs.coeff(2) * rhs.coeff(1)),
-      internal::conj(lhs.coeff(2) * rhs.coeff(0) - lhs.coeff(0) * rhs.coeff(2)),
-      internal::conj(lhs.coeff(0) * rhs.coeff(1) - lhs.coeff(1) * rhs.coeff(0)),
-      0
-    );
-  }
-};
-
-}
-
-/** \geometry_module
-  *
-  * \returns the cross product of \c *this and \a other using only the x, y, and z coefficients
-  *
-  * The size of \c *this and \a other must be four. This function is especially useful
-  * when using 4D vectors instead of 3D ones to get advantage of SSE/AltiVec vectorization.
-  *
-  * \sa MatrixBase::cross()
-  */
-template<typename Derived>
-template<typename OtherDerived>
-inline typename MatrixBase<Derived>::PlainObject
-MatrixBase<Derived>::cross3(const MatrixBase<OtherDerived>& other) const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Derived,4)
-  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,4)
-
-  typedef typename internal::nested<Derived,2>::type DerivedNested;
-  typedef typename internal::nested<OtherDerived,2>::type OtherDerivedNested;
-  DerivedNested lhs(derived());
-  OtherDerivedNested rhs(other.derived());
-
-  return internal::cross3_impl<Architecture::Target,
-                        typename internal::remove_all<DerivedNested>::type,
-                        typename internal::remove_all<OtherDerivedNested>::type>::run(lhs,rhs);
-}
-
-/** \returns a matrix expression of the cross product of each column or row
-  * of the referenced expression with the \a other vector.
-  *
-  * The referenced matrix must have one dimension equal to 3.
-  * The result matrix has the same dimensions than the referenced one.
-  *
-  * \geometry_module
-  *
-  * \sa MatrixBase::cross() */
-template<typename ExpressionType, int Direction>
-template<typename OtherDerived>
-const typename VectorwiseOp<ExpressionType,Direction>::CrossReturnType
-VectorwiseOp<ExpressionType,Direction>::cross(const MatrixBase<OtherDerived>& other) const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,3)
-  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
-    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
-
-  CrossReturnType res(_expression().rows(),_expression().cols());
-  if(Direction==Vertical)
-  {
-    eigen_assert(CrossReturnType::RowsAtCompileTime==3 && "the matrix must have exactly 3 rows");
-    res.row(0) = (_expression().row(1) * other.coeff(2) - _expression().row(2) * other.coeff(1)).conjugate();
-    res.row(1) = (_expression().row(2) * other.coeff(0) - _expression().row(0) * other.coeff(2)).conjugate();
-    res.row(2) = (_expression().row(0) * other.coeff(1) - _expression().row(1) * other.coeff(0)).conjugate();
-  }
-  else
-  {
-    eigen_assert(CrossReturnType::ColsAtCompileTime==3 && "the matrix must have exactly 3 columns");
-    res.col(0) = (_expression().col(1) * other.coeff(2) - _expression().col(2) * other.coeff(1)).conjugate();
-    res.col(1) = (_expression().col(2) * other.coeff(0) - _expression().col(0) * other.coeff(2)).conjugate();
-    res.col(2) = (_expression().col(0) * other.coeff(1) - _expression().col(1) * other.coeff(0)).conjugate();
-  }
-  return res;
-}
-
-namespace internal {
-
-template<typename Derived, int Size = Derived::SizeAtCompileTime>
-struct unitOrthogonal_selector
-{
-  typedef typename plain_matrix_type<Derived>::type VectorType;
-  typedef typename traits<Derived>::Scalar Scalar;
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  typedef typename Derived::Index Index;
-  typedef Matrix<Scalar,2,1> Vector2;
-  static inline VectorType run(const Derived& src)
-  {
-    VectorType perp = VectorType::Zero(src.size());
-    Index maxi = 0;
-    Index sndi = 0;
-    src.cwiseAbs().maxCoeff(&maxi);
-    if (maxi==0)
-      sndi = 1;
-    RealScalar invnm = RealScalar(1)/(Vector2() << src.coeff(sndi),src.coeff(maxi)).finished().norm();
-    perp.coeffRef(maxi) = -conj(src.coeff(sndi)) * invnm;
-    perp.coeffRef(sndi) =  conj(src.coeff(maxi)) * invnm;
-
-    return perp;
-   }
-};
-
-template<typename Derived>
-struct unitOrthogonal_selector<Derived,3>
-{
-  typedef typename plain_matrix_type<Derived>::type VectorType;
-  typedef typename traits<Derived>::Scalar Scalar;
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  static inline VectorType run(const Derived& src)
-  {
-    VectorType perp;
-    /* Let us compute the crossed product of *this with a vector
-     * that is not too close to being colinear to *this.
-     */
-
-    /* unless the x and y coords are both close to zero, we can
-     * simply take ( -y, x, 0 ) and normalize it.
-     */
-    if((!isMuchSmallerThan(src.x(), src.z()))
-    || (!isMuchSmallerThan(src.y(), src.z())))
-    {
-      RealScalar invnm = RealScalar(1)/src.template head<2>().norm();
-      perp.coeffRef(0) = -conj(src.y())*invnm;
-      perp.coeffRef(1) = conj(src.x())*invnm;
-      perp.coeffRef(2) = 0;
-    }
-    /* if both x and y are close to zero, then the vector is close
-     * to the z-axis, so it's far from colinear to the x-axis for instance.
-     * So we take the crossed product with (1,0,0) and normalize it.
-     */
-    else
-    {
-      RealScalar invnm = RealScalar(1)/src.template tail<2>().norm();
-      perp.coeffRef(0) = 0;
-      perp.coeffRef(1) = -conj(src.z())*invnm;
-      perp.coeffRef(2) = conj(src.y())*invnm;
-    }
-
-    return perp;
-   }
-};
-
-template<typename Derived>
-struct unitOrthogonal_selector<Derived,2>
-{
-  typedef typename plain_matrix_type<Derived>::type VectorType;
-  static inline VectorType run(const Derived& src)
-  { return VectorType(-conj(src.y()), conj(src.x())).normalized(); }
-};
-
-} // end namespace internal
-
-/** \returns a unit vector which is orthogonal to \c *this
-  *
-  * The size of \c *this must be at least 2. If the size is exactly 2,
-  * then the returned vector is a counter clock wise rotation of \c *this, i.e., (-y,x).normalized().
-  *
-  * \sa cross()
-  */
-template<typename Derived>
-typename MatrixBase<Derived>::PlainObject
-MatrixBase<Derived>::unitOrthogonal() const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  return internal::unitOrthogonal_selector<Derived>::run(derived());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_ORTHOMETHODS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/ParametrizedLine.h b/vendor/eigen-3.1.91/Eigen/src/Geometry/ParametrizedLine.h
deleted file mode 100644
index 98dd0f0..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Geometry/ParametrizedLine.h
+++ /dev/null
@@ -1,195 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_PARAMETRIZEDLINE_H
-#define EIGEN_PARAMETRIZEDLINE_H
-
-namespace Eigen { 
-
-/** \geometry_module \ingroup Geometry_Module
-  *
-  * \class ParametrizedLine
-  *
-  * \brief A parametrized line
-  *
-  * A parametrized line is defined by an origin point \f$ \mathbf{o} \f$ and a unit
-  * direction vector \f$ \mathbf{d} \f$ such that the line corresponds to
-  * the set \f$ l(t) = \mathbf{o} + t \mathbf{d} \f$, \f$ t \in \mathbf{R} \f$.
-  *
-  * \param _Scalar the scalar type, i.e., the type of the coefficients
-  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
-  */
-template <typename _Scalar, int _AmbientDim, int _Options>
-class ParametrizedLine
-{
-public:
-  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
-  enum {
-    AmbientDimAtCompileTime = _AmbientDim,
-    Options = _Options
-  };
-  typedef _Scalar Scalar;
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  typedef DenseIndex Index;
-  typedef Matrix<Scalar,AmbientDimAtCompileTime,1,Options> VectorType;
-
-  /** Default constructor without initialization */
-  inline explicit ParametrizedLine() {}
-  
-  template<int OtherOptions>
-  ParametrizedLine(const ParametrizedLine<Scalar,AmbientDimAtCompileTime,OtherOptions>& other)
-   : m_origin(other.origin()), m_direction(other.direction())
-  {}
-
-  /** Constructs a dynamic-size line with \a _dim the dimension
-    * of the ambient space */
-  inline explicit ParametrizedLine(Index _dim) : m_origin(_dim), m_direction(_dim) {}
-
-  /** Initializes a parametrized line of direction \a direction and origin \a origin.
-    * \warning the vector direction is assumed to be normalized.
-    */
-  ParametrizedLine(const VectorType& origin, const VectorType& direction)
-    : m_origin(origin), m_direction(direction) {}
-
-  template <int OtherOptions>
-  explicit ParametrizedLine(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane);
-
-  /** Constructs a parametrized line going from \a p0 to \a p1. */
-  static inline ParametrizedLine Through(const VectorType& p0, const VectorType& p1)
-  { return ParametrizedLine(p0, (p1-p0).normalized()); }
-
-  ~ParametrizedLine() {}
-
-  /** \returns the dimension in which the line holds */
-  inline Index dim() const { return m_direction.size(); }
-
-  const VectorType& origin() const { return m_origin; }
-  VectorType& origin() { return m_origin; }
-
-  const VectorType& direction() const { return m_direction; }
-  VectorType& direction() { return m_direction; }
-
-  /** \returns the squared distance of a point \a p to its projection onto the line \c *this.
-    * \sa distance()
-    */
-  RealScalar squaredDistance(const VectorType& p) const
-  {
-    VectorType diff = p - origin();
-    return (diff - direction().dot(diff) * direction()).squaredNorm();
-  }
-  /** \returns the distance of a point \a p to its projection onto the line \c *this.
-    * \sa squaredDistance()
-    */
-  RealScalar distance(const VectorType& p) const { using std::sqrt; return sqrt(squaredDistance(p)); }
-
-  /** \returns the projection of a point \a p onto the line \c *this. */
-  VectorType projection(const VectorType& p) const
-  { return origin() + direction().dot(p-origin()) * direction(); }
-
-  VectorType pointAt(const Scalar& t) const;
-  
-  template <int OtherOptions>
-  Scalar intersectionParameter(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const;
- 
-  template <int OtherOptions>
-  Scalar intersection(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const;
-  
-  template <int OtherOptions>
-  VectorType intersectionPoint(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const;
-
-  /** \returns \c *this with scalar type casted to \a NewScalarType
-    *
-    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
-    * then this function smartly returns a const reference to \c *this.
-    */
-  template<typename NewScalarType>
-  inline typename internal::cast_return_type<ParametrizedLine,
-           ParametrizedLine<NewScalarType,AmbientDimAtCompileTime,Options> >::type cast() const
-  {
-    return typename internal::cast_return_type<ParametrizedLine,
-                    ParametrizedLine<NewScalarType,AmbientDimAtCompileTime,Options> >::type(*this);
-  }
-
-  /** Copy constructor with scalar type conversion */
-  template<typename OtherScalarType,int OtherOptions>
-  inline explicit ParametrizedLine(const ParametrizedLine<OtherScalarType,AmbientDimAtCompileTime,OtherOptions>& other)
-  {
-    m_origin = other.origin().template cast<Scalar>();
-    m_direction = other.direction().template cast<Scalar>();
-  }
-
-  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
-    * determined by \a prec.
-    *
-    * \sa MatrixBase::isApprox() */
-  bool isApprox(const ParametrizedLine& other, typename NumTraits<Scalar>::Real prec = NumTraits<Scalar>::dummy_precision()) const
-  { return m_origin.isApprox(other.m_origin, prec) && m_direction.isApprox(other.m_direction, prec); }
-
-protected:
-
-  VectorType m_origin, m_direction;
-};
-
-/** Constructs a parametrized line from a 2D hyperplane
-  *
-  * \warning the ambient space must have dimension 2 such that the hyperplane actually describes a line
-  */
-template <typename _Scalar, int _AmbientDim, int _Options>
-template <int OtherOptions>
-inline ParametrizedLine<_Scalar, _AmbientDim,_Options>::ParametrizedLine(const Hyperplane<_Scalar, _AmbientDim,OtherOptions>& hyperplane)
-{
-  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 2)
-  direction() = hyperplane.normal().unitOrthogonal();
-  origin() = -hyperplane.normal()*hyperplane.offset();
-}
-
-/** \returns the point at \a t along this line
-  */
-template <typename _Scalar, int _AmbientDim, int _Options>
-inline typename ParametrizedLine<_Scalar, _AmbientDim,_Options>::VectorType
-ParametrizedLine<_Scalar, _AmbientDim,_Options>::pointAt(const _Scalar& t) const
-{
-  return origin() + (direction()*t); 
-}
-
-/** \returns the parameter value of the intersection between \c *this and the given \a hyperplane
-  */
-template <typename _Scalar, int _AmbientDim, int _Options>
-template <int OtherOptions>
-inline _Scalar ParametrizedLine<_Scalar, _AmbientDim,_Options>::intersectionParameter(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const
-{
-  return -(hyperplane.offset()+hyperplane.normal().dot(origin()))
-          / hyperplane.normal().dot(direction());
-}
-
-
-/** \deprecated use intersectionParameter()
-  * \returns the parameter value of the intersection between \c *this and the given \a hyperplane
-  */
-template <typename _Scalar, int _AmbientDim, int _Options>
-template <int OtherOptions>
-inline _Scalar ParametrizedLine<_Scalar, _AmbientDim,_Options>::intersection(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const
-{
-  return intersectionParameter(hyperplane);
-}
-
-/** \returns the point of the intersection between \c *this and the given hyperplane
-  */
-template <typename _Scalar, int _AmbientDim, int _Options>
-template <int OtherOptions>
-inline typename ParametrizedLine<_Scalar, _AmbientDim,_Options>::VectorType
-ParametrizedLine<_Scalar, _AmbientDim,_Options>::intersectionPoint(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const
-{
-  return pointAt(intersectionParameter(hyperplane));
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_PARAMETRIZEDLINE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/Quaternion.h b/vendor/eigen-3.1.91/Eigen/src/Geometry/Quaternion.h
deleted file mode 100644
index e135f2b..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Geometry/Quaternion.h
+++ /dev/null
@@ -1,775 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2009 Mathieu Gautier <mathieu.gautier at cea.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_QUATERNION_H
-#define EIGEN_QUATERNION_H
-namespace Eigen { 
-
-
-/***************************************************************************
-* Definition of QuaternionBase<Derived>
-* The implementation is at the end of the file
-***************************************************************************/
-
-namespace internal {
-template<typename Other,
-         int OtherRows=Other::RowsAtCompileTime,
-         int OtherCols=Other::ColsAtCompileTime>
-struct quaternionbase_assign_impl;
-}
-
-/** \geometry_module \ingroup Geometry_Module
-  * \class QuaternionBase
-  * \brief Base class for quaternion expressions
-  * \tparam Derived derived type (CRTP)
-  * \sa class Quaternion
-  */
-template<class Derived>
-class QuaternionBase : public RotationBase<Derived, 3>
-{
-  typedef RotationBase<Derived, 3> Base;
-public:
-  using Base::operator*;
-  using Base::derived;
-
-  typedef typename internal::traits<Derived>::Scalar Scalar;
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  typedef typename internal::traits<Derived>::Coefficients Coefficients;
-  enum {
-    Flags = Eigen::internal::traits<Derived>::Flags
-  };
-
- // typedef typename Matrix<Scalar,4,1> Coefficients;
-  /** the type of a 3D vector */
-  typedef Matrix<Scalar,3,1> Vector3;
-  /** the equivalent rotation matrix type */
-  typedef Matrix<Scalar,3,3> Matrix3;
-  /** the equivalent angle-axis type */
-  typedef AngleAxis<Scalar> AngleAxisType;
-
-
-
-  /** \returns the \c x coefficient */
-  inline Scalar x() const { return this->derived().coeffs().coeff(0); }
-  /** \returns the \c y coefficient */
-  inline Scalar y() const { return this->derived().coeffs().coeff(1); }
-  /** \returns the \c z coefficient */
-  inline Scalar z() const { return this->derived().coeffs().coeff(2); }
-  /** \returns the \c w coefficient */
-  inline Scalar w() const { return this->derived().coeffs().coeff(3); }
-
-  /** \returns a reference to the \c x coefficient */
-  inline Scalar& x() { return this->derived().coeffs().coeffRef(0); }
-  /** \returns a reference to the \c y coefficient */
-  inline Scalar& y() { return this->derived().coeffs().coeffRef(1); }
-  /** \returns a reference to the \c z coefficient */
-  inline Scalar& z() { return this->derived().coeffs().coeffRef(2); }
-  /** \returns a reference to the \c w coefficient */
-  inline Scalar& w() { return this->derived().coeffs().coeffRef(3); }
-
-  /** \returns a read-only vector expression of the imaginary part (x,y,z) */
-  inline const VectorBlock<const Coefficients,3> vec() const { return coeffs().template head<3>(); }
-
-  /** \returns a vector expression of the imaginary part (x,y,z) */
-  inline VectorBlock<Coefficients,3> vec() { return coeffs().template head<3>(); }
-
-  /** \returns a read-only vector expression of the coefficients (x,y,z,w) */
-  inline const typename internal::traits<Derived>::Coefficients& coeffs() const { return derived().coeffs(); }
-
-  /** \returns a vector expression of the coefficients (x,y,z,w) */
-  inline typename internal::traits<Derived>::Coefficients& coeffs() { return derived().coeffs(); }
-
-  EIGEN_STRONG_INLINE QuaternionBase<Derived>& operator=(const QuaternionBase<Derived>& other);
-  template<class OtherDerived> EIGEN_STRONG_INLINE Derived& operator=(const QuaternionBase<OtherDerived>& other);
-
-// disabled this copy operator as it is giving very strange compilation errors when compiling
-// test_stdvector with GCC 4.4.2. This looks like a GCC bug though, so feel free to re-enable it if it's
-// useful; however notice that we already have the templated operator= above and e.g. in MatrixBase
-// we didn't have to add, in addition to templated operator=, such a non-templated copy operator.
-//  Derived& operator=(const QuaternionBase& other)
-//  { return operator=<Derived>(other); }
-
-  Derived& operator=(const AngleAxisType& aa);
-  template<class OtherDerived> Derived& operator=(const MatrixBase<OtherDerived>& m);
-
-  /** \returns a quaternion representing an identity rotation
-    * \sa MatrixBase::Identity()
-    */
-  static inline Quaternion<Scalar> Identity() { return Quaternion<Scalar>(1, 0, 0, 0); }
-
-  /** \sa QuaternionBase::Identity(), MatrixBase::setIdentity()
-    */
-  inline QuaternionBase& setIdentity() { coeffs() << 0, 0, 0, 1; return *this; }
-
-  /** \returns the squared norm of the quaternion's coefficients
-    * \sa QuaternionBase::norm(), MatrixBase::squaredNorm()
-    */
-  inline Scalar squaredNorm() const { return coeffs().squaredNorm(); }
-
-  /** \returns the norm of the quaternion's coefficients
-    * \sa QuaternionBase::squaredNorm(), MatrixBase::norm()
-    */
-  inline Scalar norm() const { return coeffs().norm(); }
-
-  /** Normalizes the quaternion \c *this
-    * \sa normalized(), MatrixBase::normalize() */
-  inline void normalize() { coeffs().normalize(); }
-  /** \returns a normalized copy of \c *this
-    * \sa normalize(), MatrixBase::normalized() */
-  inline Quaternion<Scalar> normalized() const { return Quaternion<Scalar>(coeffs().normalized()); }
-
-    /** \returns the dot product of \c *this and \a other
-    * Geometrically speaking, the dot product of two unit quaternions
-    * corresponds to the cosine of half the angle between the two rotations.
-    * \sa angularDistance()
-    */
-  template<class OtherDerived> inline Scalar dot(const QuaternionBase<OtherDerived>& other) const { return coeffs().dot(other.coeffs()); }
-
-  template<class OtherDerived> Scalar angularDistance(const QuaternionBase<OtherDerived>& other) const;
-
-  /** \returns an equivalent 3x3 rotation matrix */
-  Matrix3 toRotationMatrix() const;
-
-  /** \returns the quaternion which transform \a a into \a b through a rotation */
-  template<typename Derived1, typename Derived2>
-  Derived& setFromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b);
-
-  template<class OtherDerived> EIGEN_STRONG_INLINE Quaternion<Scalar> operator* (const QuaternionBase<OtherDerived>& q) const;
-  template<class OtherDerived> EIGEN_STRONG_INLINE Derived& operator*= (const QuaternionBase<OtherDerived>& q);
-
-  /** \returns the quaternion describing the inverse rotation */
-  Quaternion<Scalar> inverse() const;
-
-  /** \returns the conjugated quaternion */
-  Quaternion<Scalar> conjugate() const;
-
-  /** \returns an interpolation for a constant motion between \a other and \c *this
-    * \a t in [0;1]
-    * see http://en.wikipedia.org/wiki/Slerp
-    */
-  template<class OtherDerived> Quaternion<Scalar> slerp(const Scalar& t, const QuaternionBase<OtherDerived>& other) const;
-
-  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
-    * determined by \a prec.
-    *
-    * \sa MatrixBase::isApprox() */
-  template<class OtherDerived>
-  bool isApprox(const QuaternionBase<OtherDerived>& other, const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const
-  { return coeffs().isApprox(other.coeffs(), prec); }
-
-	/** return the result vector of \a v through the rotation*/
-  EIGEN_STRONG_INLINE Vector3 _transformVector(Vector3 v) const;
-
-  /** \returns \c *this with scalar type casted to \a NewScalarType
-    *
-    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
-    * then this function smartly returns a const reference to \c *this.
-    */
-  template<typename NewScalarType>
-  inline typename internal::cast_return_type<Derived,Quaternion<NewScalarType> >::type cast() const
-  {
-    return typename internal::cast_return_type<Derived,Quaternion<NewScalarType> >::type(derived());
-  }
-
-#ifdef EIGEN_QUATERNIONBASE_PLUGIN
-# include EIGEN_QUATERNIONBASE_PLUGIN
-#endif
-};
-
-/***************************************************************************
-* Definition/implementation of Quaternion<Scalar>
-***************************************************************************/
-
-/** \geometry_module \ingroup Geometry_Module
-  *
-  * \class Quaternion
-  *
-  * \brief The quaternion class used to represent 3D orientations and rotations
-  *
-  * \tparam _Scalar the scalar type, i.e., the type of the coefficients
-  * \tparam _Options controls the memory alignement of the coeffecients. Can be \# AutoAlign or \# DontAlign. Default is AutoAlign.
-  *
-  * This class represents a quaternion \f$ w+xi+yj+zk \f$ that is a convenient representation of
-  * orientations and rotations of objects in three dimensions. Compared to other representations
-  * like Euler angles or 3x3 matrices, quatertions offer the following advantages:
-  * \li \b compact storage (4 scalars)
-  * \li \b efficient to compose (28 flops),
-  * \li \b stable spherical interpolation
-  *
-  * The following two typedefs are provided for convenience:
-  * \li \c Quaternionf for \c float
-  * \li \c Quaterniond for \c double
-  *
-  * \sa  class AngleAxis, class Transform
-  */
-
-namespace internal {
-template<typename _Scalar,int _Options>
-struct traits<Quaternion<_Scalar,_Options> >
-{
-  typedef Quaternion<_Scalar,_Options> PlainObject;
-  typedef _Scalar Scalar;
-  typedef Matrix<_Scalar,4,1,_Options> Coefficients;
-  enum{
-    IsAligned = internal::traits<Coefficients>::Flags & AlignedBit,
-    Flags = IsAligned ? (AlignedBit | LvalueBit) : LvalueBit
-  };
-};
-}
-
-template<typename _Scalar, int _Options>
-class Quaternion : public QuaternionBase<Quaternion<_Scalar,_Options> >
-{
-  typedef QuaternionBase<Quaternion<_Scalar,_Options> > Base;
-  enum { IsAligned = internal::traits<Quaternion>::IsAligned };
-
-public:
-  typedef _Scalar Scalar;
-
-  EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Quaternion)
-  using Base::operator*=;
-
-  typedef typename internal::traits<Quaternion>::Coefficients Coefficients;
-  typedef typename Base::AngleAxisType AngleAxisType;
-
-  /** Default constructor leaving the quaternion uninitialized. */
-  inline Quaternion() {}
-
-  /** Constructs and initializes the quaternion \f$ w+xi+yj+zk \f$ from
-    * its four coefficients \a w, \a x, \a y and \a z.
-    *
-    * \warning Note the order of the arguments: the real \a w coefficient first,
-    * while internally the coefficients are stored in the following order:
-    * [\c x, \c y, \c z, \c w]
-    */
-  inline Quaternion(const Scalar& w, const Scalar& x, const Scalar& y, const Scalar& z) : m_coeffs(x, y, z, w){}
-
-  /** Constructs and initialize a quaternion from the array data */
-  inline Quaternion(const Scalar* data) : m_coeffs(data) {}
-
-  /** Copy constructor */
-  template<class Derived> EIGEN_STRONG_INLINE Quaternion(const QuaternionBase<Derived>& other) { this->Base::operator=(other); }
-
-  /** Constructs and initializes a quaternion from the angle-axis \a aa */
-  explicit inline Quaternion(const AngleAxisType& aa) { *this = aa; }
-
-  /** Constructs and initializes a quaternion from either:
-    *  - a rotation matrix expression,
-    *  - a 4D vector expression representing quaternion coefficients.
-    */
-  template<typename Derived>
-  explicit inline Quaternion(const MatrixBase<Derived>& other) { *this = other; }
-
-  /** Explicit copy constructor with scalar conversion */
-  template<typename OtherScalar, int OtherOptions>
-  explicit inline Quaternion(const Quaternion<OtherScalar, OtherOptions>& other)
-  { m_coeffs = other.coeffs().template cast<Scalar>(); }
-
-  template<typename Derived1, typename Derived2>
-  static Quaternion FromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b);
-
-  inline Coefficients& coeffs() { return m_coeffs;}
-  inline const Coefficients& coeffs() const { return m_coeffs;}
-
-  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(IsAligned)
-
-protected:
-  Coefficients m_coeffs;
-  
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    static EIGEN_STRONG_INLINE void _check_template_params()
-    {
-      EIGEN_STATIC_ASSERT( (_Options & DontAlign) == _Options,
-        INVALID_MATRIX_TEMPLATE_PARAMETERS)
-    }
-#endif
-};
-
-/** \ingroup Geometry_Module
-  * single precision quaternion type */
-typedef Quaternion<float> Quaternionf;
-/** \ingroup Geometry_Module
-  * double precision quaternion type */
-typedef Quaternion<double> Quaterniond;
-
-/***************************************************************************
-* Specialization of Map<Quaternion<Scalar>>
-***************************************************************************/
-
-namespace internal {
-  template<typename _Scalar, int _Options>
-  struct traits<Map<Quaternion<_Scalar>, _Options> > : traits<Quaternion<_Scalar, (int(_Options)&Aligned)==Aligned ? AutoAlign : DontAlign> >
-  {
-    typedef Map<Matrix<_Scalar,4,1>, _Options> Coefficients;
-  };
-}
-
-namespace internal {
-  template<typename _Scalar, int _Options>
-  struct traits<Map<const Quaternion<_Scalar>, _Options> > : traits<Quaternion<_Scalar, (int(_Options)&Aligned)==Aligned ? AutoAlign : DontAlign> >
-  {
-    typedef Map<const Matrix<_Scalar,4,1>, _Options> Coefficients;
-    typedef traits<Quaternion<_Scalar, (int(_Options)&Aligned)==Aligned ? AutoAlign : DontAlign> > TraitsBase;
-    enum {
-      Flags = TraitsBase::Flags & ~LvalueBit
-    };
-  };
-}
-
-/** \ingroup Geometry_Module
-  * \brief Quaternion expression mapping a constant memory buffer
-  *
-  * \tparam _Scalar the type of the Quaternion coefficients
-  * \tparam _Options see class Map
-  *
-  * This is a specialization of class Map for Quaternion. This class allows to view
-  * a 4 scalar memory buffer as an Eigen's Quaternion object.
-  *
-  * \sa class Map, class Quaternion, class QuaternionBase
-  */
-template<typename _Scalar, int _Options>
-class Map<const Quaternion<_Scalar>, _Options >
-  : public QuaternionBase<Map<const Quaternion<_Scalar>, _Options> >
-{
-    typedef QuaternionBase<Map<const Quaternion<_Scalar>, _Options> > Base;
-
-  public:
-    typedef _Scalar Scalar;
-    typedef typename internal::traits<Map>::Coefficients Coefficients;
-    EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map)
-    using Base::operator*=;
-
-    /** Constructs a Mapped Quaternion object from the pointer \a coeffs
-      *
-      * The pointer \a coeffs must reference the four coeffecients of Quaternion in the following order:
-      * \code *coeffs == {x, y, z, w} \endcode
-      *
-      * If the template parameter _Options is set to #Aligned, then the pointer coeffs must be aligned. */
-    EIGEN_STRONG_INLINE Map(const Scalar* coeffs) : m_coeffs(coeffs) {}
-
-    inline const Coefficients& coeffs() const { return m_coeffs;}
-
-  protected:
-    const Coefficients m_coeffs;
-};
-
-/** \ingroup Geometry_Module
-  * \brief Expression of a quaternion from a memory buffer
-  *
-  * \tparam _Scalar the type of the Quaternion coefficients
-  * \tparam _Options see class Map
-  *
-  * This is a specialization of class Map for Quaternion. This class allows to view
-  * a 4 scalar memory buffer as an Eigen's  Quaternion object.
-  *
-  * \sa class Map, class Quaternion, class QuaternionBase
-  */
-template<typename _Scalar, int _Options>
-class Map<Quaternion<_Scalar>, _Options >
-  : public QuaternionBase<Map<Quaternion<_Scalar>, _Options> >
-{
-    typedef QuaternionBase<Map<Quaternion<_Scalar>, _Options> > Base;
-
-  public:
-    typedef _Scalar Scalar;
-    typedef typename internal::traits<Map>::Coefficients Coefficients;
-    EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map)
-    using Base::operator*=;
-
-    /** Constructs a Mapped Quaternion object from the pointer \a coeffs
-      *
-      * The pointer \a coeffs must reference the four coeffecients of Quaternion in the following order:
-      * \code *coeffs == {x, y, z, w} \endcode
-      *
-      * If the template parameter _Options is set to #Aligned, then the pointer coeffs must be aligned. */
-    EIGEN_STRONG_INLINE Map(Scalar* coeffs) : m_coeffs(coeffs) {}
-
-    inline Coefficients& coeffs() { return m_coeffs; }
-    inline const Coefficients& coeffs() const { return m_coeffs; }
-
-  protected:
-    Coefficients m_coeffs;
-};
-
-/** \ingroup Geometry_Module
-  * Map an unaligned array of single precision scalar as a quaternion */
-typedef Map<Quaternion<float>, 0>         QuaternionMapf;
-/** \ingroup Geometry_Module
-  * Map an unaligned array of double precision scalar as a quaternion */
-typedef Map<Quaternion<double>, 0>        QuaternionMapd;
-/** \ingroup Geometry_Module
-  * Map a 16-bits aligned array of double precision scalars as a quaternion */
-typedef Map<Quaternion<float>, Aligned>   QuaternionMapAlignedf;
-/** \ingroup Geometry_Module
-  * Map a 16-bits aligned array of double precision scalars as a quaternion */
-typedef Map<Quaternion<double>, Aligned>  QuaternionMapAlignedd;
-
-/***************************************************************************
-* Implementation of QuaternionBase methods
-***************************************************************************/
-
-// Generic Quaternion * Quaternion product
-// This product can be specialized for a given architecture via the Arch template argument.
-namespace internal {
-template<int Arch, class Derived1, class Derived2, typename Scalar, int _Options> struct quat_product
-{
-  static EIGEN_STRONG_INLINE Quaternion<Scalar> run(const QuaternionBase<Derived1>& a, const QuaternionBase<Derived2>& b){
-    return Quaternion<Scalar>
-    (
-      a.w() * b.w() - a.x() * b.x() - a.y() * b.y() - a.z() * b.z(),
-      a.w() * b.x() + a.x() * b.w() + a.y() * b.z() - a.z() * b.y(),
-      a.w() * b.y() + a.y() * b.w() + a.z() * b.x() - a.x() * b.z(),
-      a.w() * b.z() + a.z() * b.w() + a.x() * b.y() - a.y() * b.x()
-    );
-  }
-};
-}
-
-/** \returns the concatenation of two rotations as a quaternion-quaternion product */
-template <class Derived>
-template <class OtherDerived>
-EIGEN_STRONG_INLINE Quaternion<typename internal::traits<Derived>::Scalar>
-QuaternionBase<Derived>::operator* (const QuaternionBase<OtherDerived>& other) const
-{
-  EIGEN_STATIC_ASSERT((internal::is_same<typename Derived::Scalar, typename OtherDerived::Scalar>::value),
-   YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
-  return internal::quat_product<Architecture::Target, Derived, OtherDerived,
-                         typename internal::traits<Derived>::Scalar,
-                         internal::traits<Derived>::IsAligned && internal::traits<OtherDerived>::IsAligned>::run(*this, other);
-}
-
-/** \sa operator*(Quaternion) */
-template <class Derived>
-template <class OtherDerived>
-EIGEN_STRONG_INLINE Derived& QuaternionBase<Derived>::operator*= (const QuaternionBase<OtherDerived>& other)
-{
-  derived() = derived() * other.derived();
-  return derived();
-}
-
-/** Rotation of a vector by a quaternion.
-  * \remarks If the quaternion is used to rotate several points (>1)
-  * then it is much more efficient to first convert it to a 3x3 Matrix.
-  * Comparison of the operation cost for n transformations:
-  *   - Quaternion2:    30n
-  *   - Via a Matrix3: 24 + 15n
-  */
-template <class Derived>
-EIGEN_STRONG_INLINE typename QuaternionBase<Derived>::Vector3
-QuaternionBase<Derived>::_transformVector(Vector3 v) const
-{
-    // Note that this algorithm comes from the optimization by hand
-    // of the conversion to a Matrix followed by a Matrix/Vector product.
-    // It appears to be much faster than the common algorithm found
-    // in the litterature (30 versus 39 flops). It also requires two
-    // Vector3 as temporaries.
-    Vector3 uv = this->vec().cross(v);
-    uv += uv;
-    return v + this->w() * uv + this->vec().cross(uv);
-}
-
-template<class Derived>
-EIGEN_STRONG_INLINE QuaternionBase<Derived>& QuaternionBase<Derived>::operator=(const QuaternionBase<Derived>& other)
-{
-  coeffs() = other.coeffs();
-  return derived();
-}
-
-template<class Derived>
-template<class OtherDerived>
-EIGEN_STRONG_INLINE Derived& QuaternionBase<Derived>::operator=(const QuaternionBase<OtherDerived>& other)
-{
-  coeffs() = other.coeffs();
-  return derived();
-}
-
-/** Set \c *this from an angle-axis \a aa and returns a reference to \c *this
-  */
-template<class Derived>
-EIGEN_STRONG_INLINE Derived& QuaternionBase<Derived>::operator=(const AngleAxisType& aa)
-{
-  using std::cos;
-  using std::sin;
-  Scalar ha = Scalar(0.5)*aa.angle(); // Scalar(0.5) to suppress precision loss warnings
-  this->w() = cos(ha);
-  this->vec() = sin(ha) * aa.axis();
-  return derived();
-}
-
-/** Set \c *this from the expression \a xpr:
-  *   - if \a xpr is a 4x1 vector, then \a xpr is assumed to be a quaternion
-  *   - if \a xpr is a 3x3 matrix, then \a xpr is assumed to be rotation matrix
-  *     and \a xpr is converted to a quaternion
-  */
-
-template<class Derived>
-template<class MatrixDerived>
-inline Derived& QuaternionBase<Derived>::operator=(const MatrixBase<MatrixDerived>& xpr)
-{
-  EIGEN_STATIC_ASSERT((internal::is_same<typename Derived::Scalar, typename MatrixDerived::Scalar>::value),
-   YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
-  internal::quaternionbase_assign_impl<MatrixDerived>::run(*this, xpr.derived());
-  return derived();
-}
-
-/** Convert the quaternion to a 3x3 rotation matrix. The quaternion is required to
-  * be normalized, otherwise the result is undefined.
-  */
-template<class Derived>
-inline typename QuaternionBase<Derived>::Matrix3
-QuaternionBase<Derived>::toRotationMatrix(void) const
-{
-  // NOTE if inlined, then gcc 4.2 and 4.4 get rid of the temporary (not gcc 4.3 !!)
-  // if not inlined then the cost of the return by value is huge ~ +35%,
-  // however, not inlining this function is an order of magnitude slower, so
-  // it has to be inlined, and so the return by value is not an issue
-  Matrix3 res;
-
-  const Scalar tx  = Scalar(2)*this->x();
-  const Scalar ty  = Scalar(2)*this->y();
-  const Scalar tz  = Scalar(2)*this->z();
-  const Scalar twx = tx*this->w();
-  const Scalar twy = ty*this->w();
-  const Scalar twz = tz*this->w();
-  const Scalar txx = tx*this->x();
-  const Scalar txy = ty*this->x();
-  const Scalar txz = tz*this->x();
-  const Scalar tyy = ty*this->y();
-  const Scalar tyz = tz*this->y();
-  const Scalar tzz = tz*this->z();
-
-  res.coeffRef(0,0) = Scalar(1)-(tyy+tzz);
-  res.coeffRef(0,1) = txy-twz;
-  res.coeffRef(0,2) = txz+twy;
-  res.coeffRef(1,0) = txy+twz;
-  res.coeffRef(1,1) = Scalar(1)-(txx+tzz);
-  res.coeffRef(1,2) = tyz-twx;
-  res.coeffRef(2,0) = txz-twy;
-  res.coeffRef(2,1) = tyz+twx;
-  res.coeffRef(2,2) = Scalar(1)-(txx+tyy);
-
-  return res;
-}
-
-/** Sets \c *this to be a quaternion representing a rotation between
-  * the two arbitrary vectors \a a and \a b. In other words, the built
-  * rotation represent a rotation sending the line of direction \a a
-  * to the line of direction \a b, both lines passing through the origin.
-  *
-  * \returns a reference to \c *this.
-  *
-  * Note that the two input vectors do \b not have to be normalized, and
-  * do not need to have the same norm.
-  */
-template<class Derived>
-template<typename Derived1, typename Derived2>
-inline Derived& QuaternionBase<Derived>::setFromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b)
-{
-  using std::max;
-  using std::sqrt;
-  Vector3 v0 = a.normalized();
-  Vector3 v1 = b.normalized();
-  Scalar c = v1.dot(v0);
-
-  // if dot == -1, vectors are nearly opposites
-  // => accuraletly compute the rotation axis by computing the
-  //    intersection of the two planes. This is done by solving:
-  //       x^T v0 = 0
-  //       x^T v1 = 0
-  //    under the constraint:
-  //       ||x|| = 1
-  //    which yields a singular value problem
-  if (c < Scalar(-1)+NumTraits<Scalar>::dummy_precision())
-  {
-    c = max<Scalar>(c,-1);
-    Matrix<Scalar,2,3> m; m << v0.transpose(), v1.transpose();
-    JacobiSVD<Matrix<Scalar,2,3> > svd(m, ComputeFullV);
-    Vector3 axis = svd.matrixV().col(2);
-
-    Scalar w2 = (Scalar(1)+c)*Scalar(0.5);
-    this->w() = sqrt(w2);
-    this->vec() = axis * sqrt(Scalar(1) - w2);
-    return derived();
-  }
-  Vector3 axis = v0.cross(v1);
-  Scalar s = sqrt((Scalar(1)+c)*Scalar(2));
-  Scalar invs = Scalar(1)/s;
-  this->vec() = axis * invs;
-  this->w() = s * Scalar(0.5);
-
-  return derived();
-}
-
-
-/** Returns a quaternion representing a rotation between
-  * the two arbitrary vectors \a a and \a b. In other words, the built
-  * rotation represent a rotation sending the line of direction \a a
-  * to the line of direction \a b, both lines passing through the origin.
-  *
-  * \returns resulting quaternion
-  *
-  * Note that the two input vectors do \b not have to be normalized, and
-  * do not need to have the same norm.
-  */
-template<typename Scalar, int Options>
-template<typename Derived1, typename Derived2>
-Quaternion<Scalar,Options> Quaternion<Scalar,Options>::FromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b)
-{
-    Quaternion quat;
-    quat.setFromTwoVectors(a, b);
-    return quat;
-}
-
-
-/** \returns the multiplicative inverse of \c *this
-  * Note that in most cases, i.e., if you simply want the opposite rotation,
-  * and/or the quaternion is normalized, then it is enough to use the conjugate.
-  *
-  * \sa QuaternionBase::conjugate()
-  */
-template <class Derived>
-inline Quaternion<typename internal::traits<Derived>::Scalar> QuaternionBase<Derived>::inverse() const
-{
-  // FIXME should this function be called multiplicativeInverse and conjugate() be called inverse() or opposite()  ??
-  Scalar n2 = this->squaredNorm();
-  if (n2 > 0)
-    return Quaternion<Scalar>(conjugate().coeffs() / n2);
-  else
-  {
-    // return an invalid result to flag the error
-    return Quaternion<Scalar>(Coefficients::Zero());
-  }
-}
-
-/** \returns the conjugate of the \c *this which is equal to the multiplicative inverse
-  * if the quaternion is normalized.
-  * The conjugate of a quaternion represents the opposite rotation.
-  *
-  * \sa Quaternion2::inverse()
-  */
-template <class Derived>
-inline Quaternion<typename internal::traits<Derived>::Scalar>
-QuaternionBase<Derived>::conjugate() const
-{
-  return Quaternion<Scalar>(this->w(),-this->x(),-this->y(),-this->z());
-}
-
-/** \returns the angle (in radian) between two rotations
-  * \sa dot()
-  */
-template <class Derived>
-template <class OtherDerived>
-inline typename internal::traits<Derived>::Scalar
-QuaternionBase<Derived>::angularDistance(const QuaternionBase<OtherDerived>& other) const
-{
-  using std::acos;
-  using std::abs;
-  double d = abs(this->dot(other));
-  if (d>=1.0)
-    return Scalar(0);
-  return static_cast<Scalar>(2 * acos(d));
-}
-
-/** \returns the spherical linear interpolation between the two quaternions
-  * \c *this and \a other at the parameter \a t
-  */
-template <class Derived>
-template <class OtherDerived>
-Quaternion<typename internal::traits<Derived>::Scalar>
-QuaternionBase<Derived>::slerp(const Scalar& t, const QuaternionBase<OtherDerived>& other) const
-{
-  using std::acos;
-  using std::sin;
-  using std::abs;
-  static const Scalar one = Scalar(1) - NumTraits<Scalar>::epsilon();
-  Scalar d = this->dot(other);
-  Scalar absD = abs(d);
-
-  Scalar scale0;
-  Scalar scale1;
-
-  if(absD>=one)
-  {
-    scale0 = Scalar(1) - t;
-    scale1 = t;
-  }
-  else
-  {
-    // theta is the angle between the 2 quaternions
-    Scalar theta = acos(absD);
-    Scalar sinTheta = sin(theta);
-
-    scale0 = sin( ( Scalar(1) - t ) * theta) / sinTheta;
-    scale1 = sin( ( t * theta) ) / sinTheta;
-  }
-  if(d<0) scale1 = -scale1;
-
-  return Quaternion<Scalar>(scale0 * coeffs() + scale1 * other.coeffs());
-}
-
-namespace internal {
-
-// set from a rotation matrix
-template<typename Other>
-struct quaternionbase_assign_impl<Other,3,3>
-{
-  typedef typename Other::Scalar Scalar;
-  typedef DenseIndex Index;
-  template<class Derived> static inline void run(QuaternionBase<Derived>& q, const Other& mat)
-  {
-    using std::sqrt;
-    // This algorithm comes from  "Quaternion Calculus and Fast Animation",
-    // Ken Shoemake, 1987 SIGGRAPH course notes
-    Scalar t = mat.trace();
-    if (t > Scalar(0))
-    {
-      t = sqrt(t + Scalar(1.0));
-      q.w() = Scalar(0.5)*t;
-      t = Scalar(0.5)/t;
-      q.x() = (mat.coeff(2,1) - mat.coeff(1,2)) * t;
-      q.y() = (mat.coeff(0,2) - mat.coeff(2,0)) * t;
-      q.z() = (mat.coeff(1,0) - mat.coeff(0,1)) * t;
-    }
-    else
-    {
-      DenseIndex i = 0;
-      if (mat.coeff(1,1) > mat.coeff(0,0))
-        i = 1;
-      if (mat.coeff(2,2) > mat.coeff(i,i))
-        i = 2;
-      DenseIndex j = (i+1)%3;
-      DenseIndex k = (j+1)%3;
-
-      t = sqrt(mat.coeff(i,i)-mat.coeff(j,j)-mat.coeff(k,k) + Scalar(1.0));
-      q.coeffs().coeffRef(i) = Scalar(0.5) * t;
-      t = Scalar(0.5)/t;
-      q.w() = (mat.coeff(k,j)-mat.coeff(j,k))*t;
-      q.coeffs().coeffRef(j) = (mat.coeff(j,i)+mat.coeff(i,j))*t;
-      q.coeffs().coeffRef(k) = (mat.coeff(k,i)+mat.coeff(i,k))*t;
-    }
-  }
-};
-
-// set from a vector of coefficients assumed to be a quaternion
-template<typename Other>
-struct quaternionbase_assign_impl<Other,4,1>
-{
-  typedef typename Other::Scalar Scalar;
-  template<class Derived> static inline void run(QuaternionBase<Derived>& q, const Other& vec)
-  {
-    q.coeffs() = vec;
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_QUATERNION_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/Rotation2D.h b/vendor/eigen-3.1.91/Eigen/src/Geometry/Rotation2D.h
deleted file mode 100644
index 1cac343..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Geometry/Rotation2D.h
+++ /dev/null
@@ -1,157 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_ROTATION2D_H
-#define EIGEN_ROTATION2D_H
-
-namespace Eigen { 
-
-/** \geometry_module \ingroup Geometry_Module
-  *
-  * \class Rotation2D
-  *
-  * \brief Represents a rotation/orientation in a 2 dimensional space.
-  *
-  * \param _Scalar the scalar type, i.e., the type of the coefficients
-  *
-  * This class is equivalent to a single scalar representing a counter clock wise rotation
-  * as a single angle in radian. It provides some additional features such as the automatic
-  * conversion from/to a 2x2 rotation matrix. Moreover this class aims to provide a similar
-  * interface to Quaternion in order to facilitate the writing of generic algorithms
-  * dealing with rotations.
-  *
-  * \sa class Quaternion, class Transform
-  */
-
-namespace internal {
-
-template<typename _Scalar> struct traits<Rotation2D<_Scalar> >
-{
-  typedef _Scalar Scalar;
-};
-} // end namespace internal
-
-template<typename _Scalar>
-class Rotation2D : public RotationBase<Rotation2D<_Scalar>,2>
-{
-  typedef RotationBase<Rotation2D<_Scalar>,2> Base;
-
-public:
-
-  using Base::operator*;
-
-  enum { Dim = 2 };
-  /** the scalar type of the coefficients */
-  typedef _Scalar Scalar;
-  typedef Matrix<Scalar,2,1> Vector2;
-  typedef Matrix<Scalar,2,2> Matrix2;
-
-protected:
-
-  Scalar m_angle;
-
-public:
-
-  /** Construct a 2D counter clock wise rotation from the angle \a a in radian. */
-  inline Rotation2D(const Scalar& a) : m_angle(a) {}
-
-  /** \returns the rotation angle */
-  inline Scalar angle() const { return m_angle; }
-
-  /** \returns a read-write reference to the rotation angle */
-  inline Scalar& angle() { return m_angle; }
-
-  /** \returns the inverse rotation */
-  inline Rotation2D inverse() const { return -m_angle; }
-
-  /** Concatenates two rotations */
-  inline Rotation2D operator*(const Rotation2D& other) const
-  { return m_angle + other.m_angle; }
-
-  /** Concatenates two rotations */
-  inline Rotation2D& operator*=(const Rotation2D& other)
-  { m_angle += other.m_angle; return *this; }
-
-  /** Applies the rotation to a 2D vector */
-  Vector2 operator* (const Vector2& vec) const
-  { return toRotationMatrix() * vec; }
-
-  template<typename Derived>
-  Rotation2D& fromRotationMatrix(const MatrixBase<Derived>& m);
-  Matrix2 toRotationMatrix(void) const;
-
-  /** \returns the spherical interpolation between \c *this and \a other using
-    * parameter \a t. It is in fact equivalent to a linear interpolation.
-    */
-  inline Rotation2D slerp(const Scalar& t, const Rotation2D& other) const
-  { return m_angle * (1-t) + other.angle() * t; }
-
-  /** \returns \c *this with scalar type casted to \a NewScalarType
-    *
-    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
-    * then this function smartly returns a const reference to \c *this.
-    */
-  template<typename NewScalarType>
-  inline typename internal::cast_return_type<Rotation2D,Rotation2D<NewScalarType> >::type cast() const
-  { return typename internal::cast_return_type<Rotation2D,Rotation2D<NewScalarType> >::type(*this); }
-
-  /** Copy constructor with scalar type conversion */
-  template<typename OtherScalarType>
-  inline explicit Rotation2D(const Rotation2D<OtherScalarType>& other)
-  {
-    m_angle = Scalar(other.angle());
-  }
-
-  static inline Rotation2D Identity() { return Rotation2D(0); }
-
-  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
-    * determined by \a prec.
-    *
-    * \sa MatrixBase::isApprox() */
-  bool isApprox(const Rotation2D& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
-  { return internal::isApprox(m_angle,other.m_angle, prec); }
-};
-
-/** \ingroup Geometry_Module
-  * single precision 2D rotation type */
-typedef Rotation2D<float> Rotation2Df;
-/** \ingroup Geometry_Module
-  * double precision 2D rotation type */
-typedef Rotation2D<double> Rotation2Dd;
-
-/** Set \c *this from a 2x2 rotation matrix \a mat.
-  * In other words, this function extract the rotation angle
-  * from the rotation matrix.
-  */
-template<typename Scalar>
-template<typename Derived>
-Rotation2D<Scalar>& Rotation2D<Scalar>::fromRotationMatrix(const MatrixBase<Derived>& mat)
-{
-  using std::atan2;
-  EIGEN_STATIC_ASSERT(Derived::RowsAtCompileTime==2 && Derived::ColsAtCompileTime==2,YOU_MADE_A_PROGRAMMING_MISTAKE)
-  m_angle = atan2(mat.coeff(1,0), mat.coeff(0,0));
-  return *this;
-}
-
-/** Constructs and \returns an equivalent 2x2 rotation matrix.
-  */
-template<typename Scalar>
-typename Rotation2D<Scalar>::Matrix2
-Rotation2D<Scalar>::toRotationMatrix(void) const
-{
-  using std::sin;
-  using std::cos;
-  Scalar sinA = sin(m_angle);
-  Scalar cosA = cos(m_angle);
-  return (Matrix2() << cosA, -sinA, sinA, cosA).finished();
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_ROTATION2D_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/Transform.h b/vendor/eigen-3.1.91/Eigen/src/Geometry/Transform.h
deleted file mode 100644
index 887e718..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Geometry/Transform.h
+++ /dev/null
@@ -1,1440 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2010 Hauke Heibel <hauke.heibel at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_TRANSFORM_H
-#define EIGEN_TRANSFORM_H
-
-namespace Eigen { 
-
-namespace internal {
-
-template<typename Transform>
-struct transform_traits
-{
-  enum
-  {
-    Dim = Transform::Dim,
-    HDim = Transform::HDim,
-    Mode = Transform::Mode,
-    IsProjective = (int(Mode)==int(Projective))
-  };
-};
-
-template< typename TransformType,
-          typename MatrixType,
-          int Case = transform_traits<TransformType>::IsProjective ? 0
-                   : int(MatrixType::RowsAtCompileTime) == int(transform_traits<TransformType>::HDim) ? 1
-                   : 2>
-struct transform_right_product_impl;
-
-template< typename Other,
-          int Mode,
-          int Options,
-          int Dim,
-          int HDim,
-          int OtherRows=Other::RowsAtCompileTime,
-          int OtherCols=Other::ColsAtCompileTime>
-struct transform_left_product_impl;
-
-template< typename Lhs,
-          typename Rhs,
-          bool AnyProjective = 
-            transform_traits<Lhs>::IsProjective ||
-            transform_traits<Rhs>::IsProjective>
-struct transform_transform_product_impl;
-
-template< typename Other,
-          int Mode,
-          int Options,
-          int Dim,
-          int HDim,
-          int OtherRows=Other::RowsAtCompileTime,
-          int OtherCols=Other::ColsAtCompileTime>
-struct transform_construct_from_matrix;
-
-template<typename TransformType> struct transform_take_affine_part;
-
-} // end namespace internal
-
-/** \geometry_module \ingroup Geometry_Module
-  *
-  * \class Transform
-  *
-  * \brief Represents an homogeneous transformation in a N dimensional space
-  *
-  * \tparam _Scalar the scalar type, i.e., the type of the coefficients
-  * \tparam _Dim the dimension of the space
-  * \tparam _Mode the type of the transformation. Can be:
-  *              - #Affine: the transformation is stored as a (Dim+1)^2 matrix,
-  *                         where the last row is assumed to be [0 ... 0 1].
-  *              - #AffineCompact: the transformation is stored as a (Dim)x(Dim+1) matrix.
-  *              - #Projective: the transformation is stored as a (Dim+1)^2 matrix
-  *                             without any assumption.
-  * \tparam _Options has the same meaning as in class Matrix. It allows to specify DontAlign and/or RowMajor.
-  *                  These Options are passed directly to the underlying matrix type.
-  *
-  * The homography is internally represented and stored by a matrix which
-  * is available through the matrix() method. To understand the behavior of
-  * this class you have to think a Transform object as its internal
-  * matrix representation. The chosen convention is right multiply:
-  *
-  * \code v' = T * v \endcode
-  *
-  * Therefore, an affine transformation matrix M is shaped like this:
-  *
-  * \f$ \left( \begin{array}{cc}
-  * linear & translation\\
-  * 0 ... 0 & 1
-  * \end{array} \right) \f$
-  *
-  * Note that for a projective transformation the last row can be anything,
-  * and then the interpretation of different parts might be sightly different.
-  *
-  * However, unlike a plain matrix, the Transform class provides many features
-  * simplifying both its assembly and usage. In particular, it can be composed
-  * with any other transformations (Transform,Translation,RotationBase,Matrix)
-  * and can be directly used to transform implicit homogeneous vectors. All these
-  * operations are handled via the operator*. For the composition of transformations,
-  * its principle consists to first convert the right/left hand sides of the product
-  * to a compatible (Dim+1)^2 matrix and then perform a pure matrix product.
-  * Of course, internally, operator* tries to perform the minimal number of operations
-  * according to the nature of each terms. Likewise, when applying the transform
-  * to non homogeneous vectors, the latters are automatically promoted to homogeneous
-  * one before doing the matrix product. The convertions to homogeneous representations
-  * are performed as follow:
-  *
-  * \b Translation t (Dim)x(1):
-  * \f$ \left( \begin{array}{cc}
-  * I & t \\
-  * 0\,...\,0 & 1
-  * \end{array} \right) \f$
-  *
-  * \b Rotation R (Dim)x(Dim):
-  * \f$ \left( \begin{array}{cc}
-  * R & 0\\
-  * 0\,...\,0 & 1
-  * \end{array} \right) \f$
-  *
-  * \b Linear \b Matrix L (Dim)x(Dim):
-  * \f$ \left( \begin{array}{cc}
-  * L & 0\\
-  * 0\,...\,0 & 1
-  * \end{array} \right) \f$
-  *
-  * \b Affine \b Matrix A (Dim)x(Dim+1):
-  * \f$ \left( \begin{array}{c}
-  * A\\
-  * 0\,...\,0\,1
-  * \end{array} \right) \f$
-  *
-  * \b Column \b vector v (Dim)x(1):
-  * \f$ \left( \begin{array}{c}
-  * v\\
-  * 1
-  * \end{array} \right) \f$
-  *
-  * \b Set \b of \b column \b vectors V1...Vn (Dim)x(n):
-  * \f$ \left( \begin{array}{ccc}
-  * v_1 & ... & v_n\\
-  * 1 & ... & 1
-  * \end{array} \right) \f$
-  *
-  * The concatenation of a Transform object with any kind of other transformation
-  * always returns a Transform object.
-  *
-  * A little exception to the "as pure matrix product" rule is the case of the
-  * transformation of non homogeneous vectors by an affine transformation. In
-  * that case the last matrix row can be ignored, and the product returns non
-  * homogeneous vectors.
-  *
-  * Since, for instance, a Dim x Dim matrix is interpreted as a linear transformation,
-  * it is not possible to directly transform Dim vectors stored in a Dim x Dim matrix.
-  * The solution is either to use a Dim x Dynamic matrix or explicitly request a
-  * vector transformation by making the vector homogeneous:
-  * \code
-  * m' = T * m.colwise().homogeneous();
-  * \endcode
-  * Note that there is zero overhead.
-  *
-  * Conversion methods from/to Qt's QMatrix and QTransform are available if the
-  * preprocessor token EIGEN_QT_SUPPORT is defined.
-  *
-  * This class can be extended with the help of the plugin mechanism described on the page
-  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_TRANSFORM_PLUGIN.
-  *
-  * \sa class Matrix, class Quaternion
-  */
-template<typename _Scalar, int _Dim, int _Mode, int _Options>
-class Transform
-{
-public:
-  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Dim==Dynamic ? Dynamic : (_Dim+1)*(_Dim+1))
-  enum {
-    Mode = _Mode,
-    Options = _Options,
-    Dim = _Dim,     ///< space dimension in which the transformation holds
-    HDim = _Dim+1,  ///< size of a respective homogeneous vector
-    Rows = int(Mode)==(AffineCompact) ? Dim : HDim
-  };
-  /** the scalar type of the coefficients */
-  typedef _Scalar Scalar;
-  typedef DenseIndex Index;
-  /** type of the matrix used to represent the transformation */
-  typedef typename internal::make_proper_matrix_type<Scalar,Rows,HDim,Options>::type MatrixType;
-  /** constified MatrixType */
-  typedef const MatrixType ConstMatrixType;
-  /** type of the matrix used to represent the linear part of the transformation */
-  typedef Matrix<Scalar,Dim,Dim,Options> LinearMatrixType;
-  /** type of read/write reference to the linear part of the transformation */
-  typedef Block<MatrixType,Dim,Dim,int(Mode)==(AffineCompact)> LinearPart;
-  /** type of read reference to the linear part of the transformation */
-  typedef const Block<ConstMatrixType,Dim,Dim,int(Mode)==(AffineCompact)> ConstLinearPart;
-  /** type of read/write reference to the affine part of the transformation */
-  typedef typename internal::conditional<int(Mode)==int(AffineCompact),
-                              MatrixType&,
-                              Block<MatrixType,Dim,HDim> >::type AffinePart;
-  /** type of read reference to the affine part of the transformation */
-  typedef typename internal::conditional<int(Mode)==int(AffineCompact),
-                              const MatrixType&,
-                              const Block<const MatrixType,Dim,HDim> >::type ConstAffinePart;
-  /** type of a vector */
-  typedef Matrix<Scalar,Dim,1> VectorType;
-  /** type of a read/write reference to the translation part of the rotation */
-  typedef Block<MatrixType,Dim,1,int(Mode)==(AffineCompact)> TranslationPart;
-  /** type of a read reference to the translation part of the rotation */
-  typedef const Block<ConstMatrixType,Dim,1,int(Mode)==(AffineCompact)> ConstTranslationPart;
-  /** corresponding translation type */
-  typedef Translation<Scalar,Dim> TranslationType;
-  
-  // this intermediate enum is needed to avoid an ICE with gcc 3.4 and 4.0
-  enum { TransformTimeDiagonalMode = ((Mode==int(Isometry))?Affine:int(Mode)) };
-  /** The return type of the product between a diagonal matrix and a transform */
-  typedef Transform<Scalar,Dim,TransformTimeDiagonalMode> TransformTimeDiagonalReturnType;
-
-protected:
-
-  MatrixType m_matrix;
-
-public:
-
-  /** Default constructor without initialization of the meaningful coefficients.
-    * If Mode==Affine, then the last row is set to [0 ... 0 1] */
-  inline Transform()
-  {
-    check_template_params();
-    if (int(Mode)==Affine)
-      makeAffine();
-  }
-
-  inline Transform(const Transform& other)
-  {
-    check_template_params();
-    m_matrix = other.m_matrix;
-  }
-
-  inline explicit Transform(const TranslationType& t)
-  {
-    check_template_params();
-    *this = t;
-  }
-  inline explicit Transform(const UniformScaling<Scalar>& s)
-  {
-    check_template_params();
-    *this = s;
-  }
-  template<typename Derived>
-  inline explicit Transform(const RotationBase<Derived, Dim>& r)
-  {
-    check_template_params();
-    *this = r;
-  }
-
-  inline Transform& operator=(const Transform& other)
-  { m_matrix = other.m_matrix; return *this; }
-
-  typedef internal::transform_take_affine_part<Transform> take_affine_part;
-
-  /** Constructs and initializes a transformation from a Dim^2 or a (Dim+1)^2 matrix. */
-  template<typename OtherDerived>
-  inline explicit Transform(const EigenBase<OtherDerived>& other)
-  {
-    EIGEN_STATIC_ASSERT((internal::is_same<Scalar,typename OtherDerived::Scalar>::value),
-      YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY);
-
-    check_template_params();
-    internal::transform_construct_from_matrix<OtherDerived,Mode,Options,Dim,HDim>::run(this, other.derived());
-  }
-
-  /** Set \c *this from a Dim^2 or (Dim+1)^2 matrix. */
-  template<typename OtherDerived>
-  inline Transform& operator=(const EigenBase<OtherDerived>& other)
-  {
-    EIGEN_STATIC_ASSERT((internal::is_same<Scalar,typename OtherDerived::Scalar>::value),
-      YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY);
-
-    internal::transform_construct_from_matrix<OtherDerived,Mode,Options,Dim,HDim>::run(this, other.derived());
-    return *this;
-  }
-  
-  template<int OtherOptions>
-  inline Transform(const Transform<Scalar,Dim,Mode,OtherOptions>& other)
-  {
-    check_template_params();
-    // only the options change, we can directly copy the matrices
-    m_matrix = other.matrix();
-  }
-
-  template<int OtherMode,int OtherOptions>
-  inline Transform(const Transform<Scalar,Dim,OtherMode,OtherOptions>& other)
-  {
-    check_template_params();
-    // prevent conversions as:
-    // Affine | AffineCompact | Isometry = Projective
-    EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(OtherMode==int(Projective), Mode==int(Projective)),
-                        YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION)
-
-    // prevent conversions as:
-    // Isometry = Affine | AffineCompact
-    EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(OtherMode==int(Affine)||OtherMode==int(AffineCompact), Mode!=int(Isometry)),
-                        YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION)
-
-    enum { ModeIsAffineCompact = Mode == int(AffineCompact),
-           OtherModeIsAffineCompact = OtherMode == int(AffineCompact)
-    };
-
-    if(ModeIsAffineCompact == OtherModeIsAffineCompact)
-    {
-      // We need the block expression because the code is compiled for all
-      // combinations of transformations and will trigger a compile time error
-      // if one tries to assign the matrices directly
-      m_matrix.template block<Dim,Dim+1>(0,0) = other.matrix().template block<Dim,Dim+1>(0,0);
-      makeAffine();
-    }
-    else if(OtherModeIsAffineCompact)
-    {
-      typedef typename Transform<Scalar,Dim,OtherMode,OtherOptions>::MatrixType OtherMatrixType;
-      internal::transform_construct_from_matrix<OtherMatrixType,Mode,Options,Dim,HDim>::run(this, other.matrix());
-    }
-    else
-    {
-      // here we know that Mode == AffineCompact and OtherMode != AffineCompact.
-      // if OtherMode were Projective, the static assert above would already have caught it.
-      // So the only possibility is that OtherMode == Affine
-      linear() = other.linear();
-      translation() = other.translation();
-    }
-  }
-
-  template<typename OtherDerived>
-  Transform(const ReturnByValue<OtherDerived>& other)
-  {
-    check_template_params();
-    other.evalTo(*this);
-  }
-
-  template<typename OtherDerived>
-  Transform& operator=(const ReturnByValue<OtherDerived>& other)
-  {
-    other.evalTo(*this);
-    return *this;
-  }
-
-  #ifdef EIGEN_QT_SUPPORT
-  inline Transform(const QMatrix& other);
-  inline Transform& operator=(const QMatrix& other);
-  inline QMatrix toQMatrix(void) const;
-  inline Transform(const QTransform& other);
-  inline Transform& operator=(const QTransform& other);
-  inline QTransform toQTransform(void) const;
-  #endif
-
-  /** shortcut for m_matrix(row,col);
-    * \sa MatrixBase::operator(Index,Index) const */
-  inline Scalar operator() (Index row, Index col) const { return m_matrix(row,col); }
-  /** shortcut for m_matrix(row,col);
-    * \sa MatrixBase::operator(Index,Index) */
-  inline Scalar& operator() (Index row, Index col) { return m_matrix(row,col); }
-
-  /** \returns a read-only expression of the transformation matrix */
-  inline const MatrixType& matrix() const { return m_matrix; }
-  /** \returns a writable expression of the transformation matrix */
-  inline MatrixType& matrix() { return m_matrix; }
-
-  /** \returns a read-only expression of the linear part of the transformation */
-  inline ConstLinearPart linear() const { return ConstLinearPart(m_matrix,0,0); }
-  /** \returns a writable expression of the linear part of the transformation */
-  inline LinearPart linear() { return LinearPart(m_matrix,0,0); }
-
-  /** \returns a read-only expression of the Dim x HDim affine part of the transformation */
-  inline ConstAffinePart affine() const { return take_affine_part::run(m_matrix); }
-  /** \returns a writable expression of the Dim x HDim affine part of the transformation */
-  inline AffinePart affine() { return take_affine_part::run(m_matrix); }
-
-  /** \returns a read-only expression of the translation vector of the transformation */
-  inline ConstTranslationPart translation() const { return ConstTranslationPart(m_matrix,0,Dim); }
-  /** \returns a writable expression of the translation vector of the transformation */
-  inline TranslationPart translation() { return TranslationPart(m_matrix,0,Dim); }
-
-  /** \returns an expression of the product between the transform \c *this and a matrix expression \a other
-    *
-    * The right hand side \a other might be either:
-    * \li a vector of size Dim,
-    * \li an homogeneous vector of size Dim+1,
-    * \li a set of vectors of size Dim x Dynamic,
-    * \li a set of homogeneous vectors of size Dim+1 x Dynamic,
-    * \li a linear transformation matrix of size Dim x Dim,
-    * \li an affine transformation matrix of size Dim x Dim+1,
-    * \li a transformation matrix of size Dim+1 x Dim+1.
-    */
-  // note: this function is defined here because some compilers cannot find the respective declaration
-  template<typename OtherDerived>
-  EIGEN_STRONG_INLINE const typename internal::transform_right_product_impl<Transform, OtherDerived>::ResultType
-  operator * (const EigenBase<OtherDerived> &other) const
-  { return internal::transform_right_product_impl<Transform, OtherDerived>::run(*this,other.derived()); }
-
-  /** \returns the product expression of a transformation matrix \a a times a transform \a b
-    *
-    * The left hand side \a other might be either:
-    * \li a linear transformation matrix of size Dim x Dim,
-    * \li an affine transformation matrix of size Dim x Dim+1,
-    * \li a general transformation matrix of size Dim+1 x Dim+1.
-    */
-  template<typename OtherDerived> friend
-  inline const typename internal::transform_left_product_impl<OtherDerived,Mode,Options,_Dim,_Dim+1>::ResultType
-    operator * (const EigenBase<OtherDerived> &a, const Transform &b)
-  { return internal::transform_left_product_impl<OtherDerived,Mode,Options,Dim,HDim>::run(a.derived(),b); }
-
-  /** \returns The product expression of a transform \a a times a diagonal matrix \a b
-    *
-    * The rhs diagonal matrix is interpreted as an affine scaling transformation. The
-    * product results in a Transform of the same type (mode) as the lhs only if the lhs 
-    * mode is no isometry. In that case, the returned transform is an affinity.
-    */
-  template<typename DiagonalDerived>
-  inline const TransformTimeDiagonalReturnType
-    operator * (const DiagonalBase<DiagonalDerived> &b) const
-  {
-    TransformTimeDiagonalReturnType res(*this);
-    res.linear() *= b;
-    return res;
-  }
-
-  /** \returns The product expression of a diagonal matrix \a a times a transform \a b
-    *
-    * The lhs diagonal matrix is interpreted as an affine scaling transformation. The
-    * product results in a Transform of the same type (mode) as the lhs only if the lhs 
-    * mode is no isometry. In that case, the returned transform is an affinity.
-    */
-  template<typename DiagonalDerived>
-  friend inline TransformTimeDiagonalReturnType
-    operator * (const DiagonalBase<DiagonalDerived> &a, const Transform &b)
-  {
-    TransformTimeDiagonalReturnType res;
-    res.linear().noalias() = a*b.linear();
-    res.translation().noalias() = a*b.translation();
-    if (Mode!=int(AffineCompact))
-      res.matrix().row(Dim) = b.matrix().row(Dim);
-    return res;
-  }
-
-  template<typename OtherDerived>
-  inline Transform& operator*=(const EigenBase<OtherDerived>& other) { return *this = *this * other; }
-
-  /** Concatenates two transformations */
-  inline const Transform operator * (const Transform& other) const
-  {
-    return internal::transform_transform_product_impl<Transform,Transform>::run(*this,other);
-  }
-  
-  #ifdef __INTEL_COMPILER
-private:
-  // this intermediate structure permits to workaround a bug in ICC 11:
-  //   error: template instantiation resulted in unexpected function type of "Eigen::Transform<double, 3, 32, 0>
-  //             (const Eigen::Transform<double, 3, 2, 0> &) const"
-  //  (the meaning of a name may have changed since the template declaration -- the type of the template is:
-  // "Eigen::internal::transform_transform_product_impl<Eigen::Transform<double, 3, 32, 0>,
-  //     Eigen::Transform<double, 3, Mode, Options>, <expression>>::ResultType (const Eigen::Transform<double, 3, Mode, Options> &) const")
-  // 
-  template<int OtherMode,int OtherOptions> struct icc_11_workaround
-  {
-    typedef internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> > ProductType;
-    typedef typename ProductType::ResultType ResultType;
-  };
-  
-public:
-  /** Concatenates two different transformations */
-  template<int OtherMode,int OtherOptions>
-  inline typename icc_11_workaround<OtherMode,OtherOptions>::ResultType
-    operator * (const Transform<Scalar,Dim,OtherMode,OtherOptions>& other) const
-  {
-    typedef typename icc_11_workaround<OtherMode,OtherOptions>::ProductType ProductType;
-    return ProductType::run(*this,other);
-  }
-  #else
-  /** Concatenates two different transformations */
-  template<int OtherMode,int OtherOptions>
-  inline typename internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> >::ResultType
-    operator * (const Transform<Scalar,Dim,OtherMode,OtherOptions>& other) const
-  {
-    return internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> >::run(*this,other);
-  }
-  #endif
-
-  /** \sa MatrixBase::setIdentity() */
-  void setIdentity() { m_matrix.setIdentity(); }
-
-  /**
-   * \brief Returns an identity transformation.
-   * \todo In the future this function should be returning a Transform expression.
-   */
-  static const Transform Identity()
-  {
-    return Transform(MatrixType::Identity());
-  }
-
-  template<typename OtherDerived>
-  inline Transform& scale(const MatrixBase<OtherDerived> &other);
-
-  template<typename OtherDerived>
-  inline Transform& prescale(const MatrixBase<OtherDerived> &other);
-
-  inline Transform& scale(const Scalar& s);
-  inline Transform& prescale(const Scalar& s);
-
-  template<typename OtherDerived>
-  inline Transform& translate(const MatrixBase<OtherDerived> &other);
-
-  template<typename OtherDerived>
-  inline Transform& pretranslate(const MatrixBase<OtherDerived> &other);
-
-  template<typename RotationType>
-  inline Transform& rotate(const RotationType& rotation);
-
-  template<typename RotationType>
-  inline Transform& prerotate(const RotationType& rotation);
-
-  Transform& shear(const Scalar& sx, const Scalar& sy);
-  Transform& preshear(const Scalar& sx, const Scalar& sy);
-
-  inline Transform& operator=(const TranslationType& t);
-  inline Transform& operator*=(const TranslationType& t) { return translate(t.vector()); }
-  inline Transform operator*(const TranslationType& t) const;
-
-  inline Transform& operator=(const UniformScaling<Scalar>& t);
-  inline Transform& operator*=(const UniformScaling<Scalar>& s) { return scale(s.factor()); }
-  inline Transform<Scalar,Dim,(int(Mode)==int(Isometry)?Affine:Isometry)> operator*(const UniformScaling<Scalar>& s) const
-  {
-    Transform<Scalar,Dim,(int(Mode)==int(Isometry)?Affine:Isometry),Options> res = *this;
-    res.scale(s.factor());
-    return res;
-  }
-
-  inline Transform& operator*=(const DiagonalMatrix<Scalar,Dim>& s) { linear() *= s; return *this; }
-
-  template<typename Derived>
-  inline Transform& operator=(const RotationBase<Derived,Dim>& r);
-  template<typename Derived>
-  inline Transform& operator*=(const RotationBase<Derived,Dim>& r) { return rotate(r.toRotationMatrix()); }
-  template<typename Derived>
-  inline Transform operator*(const RotationBase<Derived,Dim>& r) const;
-
-  const LinearMatrixType rotation() const;
-  template<typename RotationMatrixType, typename ScalingMatrixType>
-  void computeRotationScaling(RotationMatrixType *rotation, ScalingMatrixType *scaling) const;
-  template<typename ScalingMatrixType, typename RotationMatrixType>
-  void computeScalingRotation(ScalingMatrixType *scaling, RotationMatrixType *rotation) const;
-
-  template<typename PositionDerived, typename OrientationType, typename ScaleDerived>
-  Transform& fromPositionOrientationScale(const MatrixBase<PositionDerived> &position,
-    const OrientationType& orientation, const MatrixBase<ScaleDerived> &scale);
-
-  inline Transform inverse(TransformTraits traits = (TransformTraits)Mode) const;
-
-  /** \returns a const pointer to the column major internal matrix */
-  const Scalar* data() const { return m_matrix.data(); }
-  /** \returns a non-const pointer to the column major internal matrix */
-  Scalar* data() { return m_matrix.data(); }
-
-  /** \returns \c *this with scalar type casted to \a NewScalarType
-    *
-    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
-    * then this function smartly returns a const reference to \c *this.
-    */
-  template<typename NewScalarType>
-  inline typename internal::cast_return_type<Transform,Transform<NewScalarType,Dim,Mode,Options> >::type cast() const
-  { return typename internal::cast_return_type<Transform,Transform<NewScalarType,Dim,Mode,Options> >::type(*this); }
-
-  /** Copy constructor with scalar type conversion */
-  template<typename OtherScalarType>
-  inline explicit Transform(const Transform<OtherScalarType,Dim,Mode,Options>& other)
-  {
-    check_template_params();
-    m_matrix = other.matrix().template cast<Scalar>();
-  }
-
-  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
-    * determined by \a prec.
-    *
-    * \sa MatrixBase::isApprox() */
-  bool isApprox(const Transform& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
-  { return m_matrix.isApprox(other.m_matrix, prec); }
-
-  /** Sets the last row to [0 ... 0 1]
-    */
-  void makeAffine()
-  {
-    if(int(Mode)!=int(AffineCompact))
-    {
-      matrix().template block<1,Dim>(Dim,0).setZero();
-      matrix().coeffRef(Dim,Dim) = Scalar(1);
-    }
-  }
-
-  /** \internal
-    * \returns the Dim x Dim linear part if the transformation is affine,
-    *          and the HDim x Dim part for projective transformations.
-    */
-  inline Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,Dim> linearExt()
-  { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,Dim>(0,0); }
-  /** \internal
-    * \returns the Dim x Dim linear part if the transformation is affine,
-    *          and the HDim x Dim part for projective transformations.
-    */
-  inline const Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,Dim> linearExt() const
-  { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,Dim>(0,0); }
-
-  /** \internal
-    * \returns the translation part if the transformation is affine,
-    *          and the last column for projective transformations.
-    */
-  inline Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,1> translationExt()
-  { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,1>(0,Dim); }
-  /** \internal
-    * \returns the translation part if the transformation is affine,
-    *          and the last column for projective transformations.
-    */
-  inline const Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,1> translationExt() const
-  { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,1>(0,Dim); }
-
-
-  #ifdef EIGEN_TRANSFORM_PLUGIN
-  #include EIGEN_TRANSFORM_PLUGIN
-  #endif
-  
-protected:
-  #ifndef EIGEN_PARSED_BY_DOXYGEN
-    static EIGEN_STRONG_INLINE void check_template_params()
-    {
-      EIGEN_STATIC_ASSERT((Options & (DontAlign|RowMajor)) == Options, INVALID_MATRIX_TEMPLATE_PARAMETERS)
-    }
-  #endif
-
-};
-
-/** \ingroup Geometry_Module */
-typedef Transform<float,2,Isometry> Isometry2f;
-/** \ingroup Geometry_Module */
-typedef Transform<float,3,Isometry> Isometry3f;
-/** \ingroup Geometry_Module */
-typedef Transform<double,2,Isometry> Isometry2d;
-/** \ingroup Geometry_Module */
-typedef Transform<double,3,Isometry> Isometry3d;
-
-/** \ingroup Geometry_Module */
-typedef Transform<float,2,Affine> Affine2f;
-/** \ingroup Geometry_Module */
-typedef Transform<float,3,Affine> Affine3f;
-/** \ingroup Geometry_Module */
-typedef Transform<double,2,Affine> Affine2d;
-/** \ingroup Geometry_Module */
-typedef Transform<double,3,Affine> Affine3d;
-
-/** \ingroup Geometry_Module */
-typedef Transform<float,2,AffineCompact> AffineCompact2f;
-/** \ingroup Geometry_Module */
-typedef Transform<float,3,AffineCompact> AffineCompact3f;
-/** \ingroup Geometry_Module */
-typedef Transform<double,2,AffineCompact> AffineCompact2d;
-/** \ingroup Geometry_Module */
-typedef Transform<double,3,AffineCompact> AffineCompact3d;
-
-/** \ingroup Geometry_Module */
-typedef Transform<float,2,Projective> Projective2f;
-/** \ingroup Geometry_Module */
-typedef Transform<float,3,Projective> Projective3f;
-/** \ingroup Geometry_Module */
-typedef Transform<double,2,Projective> Projective2d;
-/** \ingroup Geometry_Module */
-typedef Transform<double,3,Projective> Projective3d;
-
-/**************************
-*** Optional QT support ***
-**************************/
-
-#ifdef EIGEN_QT_SUPPORT
-/** Initializes \c *this from a QMatrix assuming the dimension is 2.
-  *
-  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
-  */
-template<typename Scalar, int Dim, int Mode,int Options>
-Transform<Scalar,Dim,Mode,Options>::Transform(const QMatrix& other)
-{
-  check_template_params();
-  *this = other;
-}
-
-/** Set \c *this from a QMatrix assuming the dimension is 2.
-  *
-  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
-  */
-template<typename Scalar, int Dim, int Mode,int Options>
-Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const QMatrix& other)
-{
-  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
-  m_matrix << other.m11(), other.m21(), other.dx(),
-              other.m12(), other.m22(), other.dy(),
-              0, 0, 1;
-  return *this;
-}
-
-/** \returns a QMatrix from \c *this assuming the dimension is 2.
-  *
-  * \warning this conversion might loss data if \c *this is not affine
-  *
-  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-QMatrix Transform<Scalar,Dim,Mode,Options>::toQMatrix(void) const
-{
-  check_template_params();
-  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
-  return QMatrix(m_matrix.coeff(0,0), m_matrix.coeff(1,0),
-                 m_matrix.coeff(0,1), m_matrix.coeff(1,1),
-                 m_matrix.coeff(0,2), m_matrix.coeff(1,2));
-}
-
-/** Initializes \c *this from a QTransform assuming the dimension is 2.
-  *
-  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
-  */
-template<typename Scalar, int Dim, int Mode,int Options>
-Transform<Scalar,Dim,Mode,Options>::Transform(const QTransform& other)
-{
-  check_template_params();
-  *this = other;
-}
-
-/** Set \c *this from a QTransform assuming the dimension is 2.
-  *
-  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const QTransform& other)
-{
-  check_template_params();
-  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
-  if (Mode == int(AffineCompact))
-    m_matrix << other.m11(), other.m21(), other.dx(),
-                other.m12(), other.m22(), other.dy();
-  else
-    m_matrix << other.m11(), other.m21(), other.dx(),
-                other.m12(), other.m22(), other.dy(),
-                other.m13(), other.m23(), other.m33();
-  return *this;
-}
-
-/** \returns a QTransform from \c *this assuming the dimension is 2.
-  *
-  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-QTransform Transform<Scalar,Dim,Mode,Options>::toQTransform(void) const
-{
-  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
-  if (Mode == int(AffineCompact))
-    return QTransform(m_matrix.coeff(0,0), m_matrix.coeff(1,0),
-                      m_matrix.coeff(0,1), m_matrix.coeff(1,1),
-                      m_matrix.coeff(0,2), m_matrix.coeff(1,2));
-  else
-    return QTransform(m_matrix.coeff(0,0), m_matrix.coeff(1,0), m_matrix.coeff(2,0),
-                      m_matrix.coeff(0,1), m_matrix.coeff(1,1), m_matrix.coeff(2,1),
-                      m_matrix.coeff(0,2), m_matrix.coeff(1,2), m_matrix.coeff(2,2));
-}
-#endif
-
-/*********************
-*** Procedural API ***
-*********************/
-
-/** Applies on the right the non uniform scale transformation represented
-  * by the vector \a other to \c *this and returns a reference to \c *this.
-  * \sa prescale()
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-template<typename OtherDerived>
-Transform<Scalar,Dim,Mode,Options>&
-Transform<Scalar,Dim,Mode,Options>::scale(const MatrixBase<OtherDerived> &other)
-{
-  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
-  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
-  linearExt().noalias() = (linearExt() * other.asDiagonal());
-  return *this;
-}
-
-/** Applies on the right a uniform scale of a factor \a c to \c *this
-  * and returns a reference to \c *this.
-  * \sa prescale(Scalar)
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::scale(const Scalar& s)
-{
-  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
-  linearExt() *= s;
-  return *this;
-}
-
-/** Applies on the left the non uniform scale transformation represented
-  * by the vector \a other to \c *this and returns a reference to \c *this.
-  * \sa scale()
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-template<typename OtherDerived>
-Transform<Scalar,Dim,Mode,Options>&
-Transform<Scalar,Dim,Mode,Options>::prescale(const MatrixBase<OtherDerived> &other)
-{
-  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
-  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
-  m_matrix.template block<Dim,HDim>(0,0).noalias() = (other.asDiagonal() * m_matrix.template block<Dim,HDim>(0,0));
-  return *this;
-}
-
-/** Applies on the left a uniform scale of a factor \a c to \c *this
-  * and returns a reference to \c *this.
-  * \sa scale(Scalar)
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::prescale(const Scalar& s)
-{
-  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
-  m_matrix.template topRows<Dim>() *= s;
-  return *this;
-}
-
-/** Applies on the right the translation matrix represented by the vector \a other
-  * to \c *this and returns a reference to \c *this.
-  * \sa pretranslate()
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-template<typename OtherDerived>
-Transform<Scalar,Dim,Mode,Options>&
-Transform<Scalar,Dim,Mode,Options>::translate(const MatrixBase<OtherDerived> &other)
-{
-  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
-  translationExt() += linearExt() * other;
-  return *this;
-}
-
-/** Applies on the left the translation matrix represented by the vector \a other
-  * to \c *this and returns a reference to \c *this.
-  * \sa translate()
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-template<typename OtherDerived>
-Transform<Scalar,Dim,Mode,Options>&
-Transform<Scalar,Dim,Mode,Options>::pretranslate(const MatrixBase<OtherDerived> &other)
-{
-  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
-  if(int(Mode)==int(Projective))
-    affine() += other * m_matrix.row(Dim);
-  else
-    translation() += other;
-  return *this;
-}
-
-/** Applies on the right the rotation represented by the rotation \a rotation
-  * to \c *this and returns a reference to \c *this.
-  *
-  * The template parameter \a RotationType is the type of the rotation which
-  * must be known by internal::toRotationMatrix<>.
-  *
-  * Natively supported types includes:
-  *   - any scalar (2D),
-  *   - a Dim x Dim matrix expression,
-  *   - a Quaternion (3D),
-  *   - a AngleAxis (3D)
-  *
-  * This mechanism is easily extendable to support user types such as Euler angles,
-  * or a pair of Quaternion for 4D rotations.
-  *
-  * \sa rotate(Scalar), class Quaternion, class AngleAxis, prerotate(RotationType)
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-template<typename RotationType>
-Transform<Scalar,Dim,Mode,Options>&
-Transform<Scalar,Dim,Mode,Options>::rotate(const RotationType& rotation)
-{
-  linearExt() *= internal::toRotationMatrix<Scalar,Dim>(rotation);
-  return *this;
-}
-
-/** Applies on the left the rotation represented by the rotation \a rotation
-  * to \c *this and returns a reference to \c *this.
-  *
-  * See rotate() for further details.
-  *
-  * \sa rotate()
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-template<typename RotationType>
-Transform<Scalar,Dim,Mode,Options>&
-Transform<Scalar,Dim,Mode,Options>::prerotate(const RotationType& rotation)
-{
-  m_matrix.template block<Dim,HDim>(0,0) = internal::toRotationMatrix<Scalar,Dim>(rotation)
-                                         * m_matrix.template block<Dim,HDim>(0,0);
-  return *this;
-}
-
-/** Applies on the right the shear transformation represented
-  * by the vector \a other to \c *this and returns a reference to \c *this.
-  * \warning 2D only.
-  * \sa preshear()
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-Transform<Scalar,Dim,Mode,Options>&
-Transform<Scalar,Dim,Mode,Options>::shear(const Scalar& sx, const Scalar& sy)
-{
-  EIGEN_STATIC_ASSERT(int(Dim)==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
-  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
-  VectorType tmp = linear().col(0)*sy + linear().col(1);
-  linear() << linear().col(0) + linear().col(1)*sx, tmp;
-  return *this;
-}
-
-/** Applies on the left the shear transformation represented
-  * by the vector \a other to \c *this and returns a reference to \c *this.
-  * \warning 2D only.
-  * \sa shear()
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-Transform<Scalar,Dim,Mode,Options>&
-Transform<Scalar,Dim,Mode,Options>::preshear(const Scalar& sx, const Scalar& sy)
-{
-  EIGEN_STATIC_ASSERT(int(Dim)==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
-  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
-  m_matrix.template block<Dim,HDim>(0,0) = LinearMatrixType(1, sx, sy, 1) * m_matrix.template block<Dim,HDim>(0,0);
-  return *this;
-}
-
-/******************************************************
-*** Scaling, Translation and Rotation compatibility ***
-******************************************************/
-
-template<typename Scalar, int Dim, int Mode, int Options>
-inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const TranslationType& t)
-{
-  linear().setIdentity();
-  translation() = t.vector();
-  makeAffine();
-  return *this;
-}
-
-template<typename Scalar, int Dim, int Mode, int Options>
-inline Transform<Scalar,Dim,Mode,Options> Transform<Scalar,Dim,Mode,Options>::operator*(const TranslationType& t) const
-{
-  Transform res = *this;
-  res.translate(t.vector());
-  return res;
-}
-
-template<typename Scalar, int Dim, int Mode, int Options>
-inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const UniformScaling<Scalar>& s)
-{
-  m_matrix.setZero();
-  linear().diagonal().fill(s.factor());
-  makeAffine();
-  return *this;
-}
-
-template<typename Scalar, int Dim, int Mode, int Options>
-template<typename Derived>
-inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const RotationBase<Derived,Dim>& r)
-{
-  linear() = internal::toRotationMatrix<Scalar,Dim>(r);
-  translation().setZero();
-  makeAffine();
-  return *this;
-}
-
-template<typename Scalar, int Dim, int Mode, int Options>
-template<typename Derived>
-inline Transform<Scalar,Dim,Mode,Options> Transform<Scalar,Dim,Mode,Options>::operator*(const RotationBase<Derived,Dim>& r) const
-{
-  Transform res = *this;
-  res.rotate(r.derived());
-  return res;
-}
-
-/************************
-*** Special functions ***
-************************/
-
-/** \returns the rotation part of the transformation
-  *
-  *
-  * \svd_module
-  *
-  * \sa computeRotationScaling(), computeScalingRotation(), class SVD
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-const typename Transform<Scalar,Dim,Mode,Options>::LinearMatrixType
-Transform<Scalar,Dim,Mode,Options>::rotation() const
-{
-  LinearMatrixType result;
-  computeRotationScaling(&result, (LinearMatrixType*)0);
-  return result;
-}
-
-
-/** decomposes the linear part of the transformation as a product rotation x scaling, the scaling being
-  * not necessarily positive.
-  *
-  * If either pointer is zero, the corresponding computation is skipped.
-  *
-  *
-  *
-  * \svd_module
-  *
-  * \sa computeScalingRotation(), rotation(), class SVD
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-template<typename RotationMatrixType, typename ScalingMatrixType>
-void Transform<Scalar,Dim,Mode,Options>::computeRotationScaling(RotationMatrixType *rotation, ScalingMatrixType *scaling) const
-{
-  JacobiSVD<LinearMatrixType> svd(linear(), ComputeFullU | ComputeFullV);
-
-  Scalar x = (svd.matrixU() * svd.matrixV().adjoint()).determinant(); // so x has absolute value 1
-  VectorType sv(svd.singularValues());
-  sv.coeffRef(0) *= x;
-  if(scaling) scaling->lazyAssign(svd.matrixV() * sv.asDiagonal() * svd.matrixV().adjoint());
-  if(rotation)
-  {
-    LinearMatrixType m(svd.matrixU());
-    m.col(0) /= x;
-    rotation->lazyAssign(m * svd.matrixV().adjoint());
-  }
-}
-
-/** decomposes the linear part of the transformation as a product rotation x scaling, the scaling being
-  * not necessarily positive.
-  *
-  * If either pointer is zero, the corresponding computation is skipped.
-  *
-  *
-  *
-  * \svd_module
-  *
-  * \sa computeRotationScaling(), rotation(), class SVD
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-template<typename ScalingMatrixType, typename RotationMatrixType>
-void Transform<Scalar,Dim,Mode,Options>::computeScalingRotation(ScalingMatrixType *scaling, RotationMatrixType *rotation) const
-{
-  JacobiSVD<LinearMatrixType> svd(linear(), ComputeFullU | ComputeFullV);
-
-  Scalar x = (svd.matrixU() * svd.matrixV().adjoint()).determinant(); // so x has absolute value 1
-  VectorType sv(svd.singularValues());
-  sv.coeffRef(0) *= x;
-  if(scaling) scaling->lazyAssign(svd.matrixU() * sv.asDiagonal() * svd.matrixU().adjoint());
-  if(rotation)
-  {
-    LinearMatrixType m(svd.matrixU());
-    m.col(0) /= x;
-    rotation->lazyAssign(m * svd.matrixV().adjoint());
-  }
-}
-
-/** Convenient method to set \c *this from a position, orientation and scale
-  * of a 3D object.
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-template<typename PositionDerived, typename OrientationType, typename ScaleDerived>
-Transform<Scalar,Dim,Mode,Options>&
-Transform<Scalar,Dim,Mode,Options>::fromPositionOrientationScale(const MatrixBase<PositionDerived> &position,
-  const OrientationType& orientation, const MatrixBase<ScaleDerived> &scale)
-{
-  linear() = internal::toRotationMatrix<Scalar,Dim>(orientation);
-  linear() *= scale.asDiagonal();
-  translation() = position;
-  makeAffine();
-  return *this;
-}
-
-namespace internal {
-
-// selector needed to avoid taking the inverse of a 3x4 matrix
-template<typename TransformType, int Mode=TransformType::Mode>
-struct projective_transform_inverse
-{
-  static inline void run(const TransformType&, TransformType&)
-  {}
-};
-
-template<typename TransformType>
-struct projective_transform_inverse<TransformType, Projective>
-{
-  static inline void run(const TransformType& m, TransformType& res)
-  {
-    res.matrix() = m.matrix().inverse();
-  }
-};
-
-} // end namespace internal
-
-
-/**
-  *
-  * \returns the inverse transformation according to some given knowledge
-  * on \c *this.
-  *
-  * \param hint allows to optimize the inversion process when the transformation
-  * is known to be not a general transformation (optional). The possible values are:
-  *  - #Projective if the transformation is not necessarily affine, i.e., if the
-  *    last row is not guaranteed to be [0 ... 0 1]
-  *  - #Affine if the last row can be assumed to be [0 ... 0 1]
-  *  - #Isometry if the transformation is only a concatenations of translations
-  *    and rotations.
-  *  The default is the template class parameter \c Mode.
-  *
-  * \warning unless \a traits is always set to NoShear or NoScaling, this function
-  * requires the generic inverse method of MatrixBase defined in the LU module. If
-  * you forget to include this module, then you will get hard to debug linking errors.
-  *
-  * \sa MatrixBase::inverse()
-  */
-template<typename Scalar, int Dim, int Mode, int Options>
-Transform<Scalar,Dim,Mode,Options>
-Transform<Scalar,Dim,Mode,Options>::inverse(TransformTraits hint) const
-{
-  Transform res;
-  if (hint == Projective)
-  {
-    internal::projective_transform_inverse<Transform>::run(*this, res);
-  }
-  else
-  {
-    if (hint == Isometry)
-    {
-      res.matrix().template topLeftCorner<Dim,Dim>() = linear().transpose();
-    }
-    else if(hint&Affine)
-    {
-      res.matrix().template topLeftCorner<Dim,Dim>() = linear().inverse();
-    }
-    else
-    {
-      eigen_assert(false && "Invalid transform traits in Transform::Inverse");
-    }
-    // translation and remaining parts
-    res.matrix().template topRightCorner<Dim,1>()
-      = - res.matrix().template topLeftCorner<Dim,Dim>() * translation();
-    res.makeAffine(); // we do need this, because in the beginning res is uninitialized
-  }
-  return res;
-}
-
-namespace internal {
-
-/*****************************************************
-*** Specializations of take affine part            ***
-*****************************************************/
-
-template<typename TransformType> struct transform_take_affine_part {
-  typedef typename TransformType::MatrixType MatrixType;
-  typedef typename TransformType::AffinePart AffinePart;
-  typedef typename TransformType::ConstAffinePart ConstAffinePart;
-  static inline AffinePart run(MatrixType& m)
-  { return m.template block<TransformType::Dim,TransformType::HDim>(0,0); }
-  static inline ConstAffinePart run(const MatrixType& m)
-  { return m.template block<TransformType::Dim,TransformType::HDim>(0,0); }
-};
-
-template<typename Scalar, int Dim, int Options>
-struct transform_take_affine_part<Transform<Scalar,Dim,AffineCompact, Options> > {
-  typedef typename Transform<Scalar,Dim,AffineCompact,Options>::MatrixType MatrixType;
-  static inline MatrixType& run(MatrixType& m) { return m; }
-  static inline const MatrixType& run(const MatrixType& m) { return m; }
-};
-
-/*****************************************************
-*** Specializations of construct from matrix       ***
-*****************************************************/
-
-template<typename Other, int Mode, int Options, int Dim, int HDim>
-struct transform_construct_from_matrix<Other, Mode,Options,Dim,HDim, Dim,Dim>
-{
-  static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)
-  {
-    transform->linear() = other;
-    transform->translation().setZero();
-    transform->makeAffine();
-  }
-};
-
-template<typename Other, int Mode, int Options, int Dim, int HDim>
-struct transform_construct_from_matrix<Other, Mode,Options,Dim,HDim, Dim,HDim>
-{
-  static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)
-  {
-    transform->affine() = other;
-    transform->makeAffine();
-  }
-};
-
-template<typename Other, int Mode, int Options, int Dim, int HDim>
-struct transform_construct_from_matrix<Other, Mode,Options,Dim,HDim, HDim,HDim>
-{
-  static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)
-  { transform->matrix() = other; }
-};
-
-template<typename Other, int Options, int Dim, int HDim>
-struct transform_construct_from_matrix<Other, AffineCompact,Options,Dim,HDim, HDim,HDim>
-{
-  static inline void run(Transform<typename Other::Scalar,Dim,AffineCompact,Options> *transform, const Other& other)
-  { transform->matrix() = other.template block<Dim,HDim>(0,0); }
-};
-
-/**********************************************************
-***   Specializations of operator* with rhs EigenBase   ***
-**********************************************************/
-
-template<int LhsMode,int RhsMode>
-struct transform_product_result
-{
-  enum 
-  { 
-    Mode =
-      (LhsMode == (int)Projective    || RhsMode == (int)Projective    ) ? Projective :
-      (LhsMode == (int)Affine        || RhsMode == (int)Affine        ) ? Affine :
-      (LhsMode == (int)AffineCompact || RhsMode == (int)AffineCompact ) ? AffineCompact :
-      (LhsMode == (int)Isometry      || RhsMode == (int)Isometry      ) ? Isometry : Projective
-  };
-};
-
-template< typename TransformType, typename MatrixType >
-struct transform_right_product_impl< TransformType, MatrixType, 0 >
-{
-  typedef typename MatrixType::PlainObject ResultType;
-
-  static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const MatrixType& other)
-  {
-    return T.matrix() * other;
-  }
-};
-
-template< typename TransformType, typename MatrixType >
-struct transform_right_product_impl< TransformType, MatrixType, 1 >
-{
-  enum { 
-    Dim = TransformType::Dim, 
-    HDim = TransformType::HDim,
-    OtherRows = MatrixType::RowsAtCompileTime,
-    OtherCols = MatrixType::ColsAtCompileTime
-  };
-
-  typedef typename MatrixType::PlainObject ResultType;
-
-  static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const MatrixType& other)
-  {
-    EIGEN_STATIC_ASSERT(OtherRows==HDim, YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES);
-
-    typedef Block<ResultType, Dim, OtherCols, int(MatrixType::RowsAtCompileTime)==Dim> TopLeftLhs;
-
-    ResultType res(other.rows(),other.cols());
-    TopLeftLhs(res, 0, 0, Dim, other.cols()).noalias() = T.affine() * other;
-    res.row(OtherRows-1) = other.row(OtherRows-1);
-    
-    return res;
-  }
-};
-
-template< typename TransformType, typename MatrixType >
-struct transform_right_product_impl< TransformType, MatrixType, 2 >
-{
-  enum { 
-    Dim = TransformType::Dim, 
-    HDim = TransformType::HDim,
-    OtherRows = MatrixType::RowsAtCompileTime,
-    OtherCols = MatrixType::ColsAtCompileTime
-  };
-
-  typedef typename MatrixType::PlainObject ResultType;
-
-  static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const MatrixType& other)
-  {
-    EIGEN_STATIC_ASSERT(OtherRows==Dim, YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES);
-
-    typedef Block<ResultType, Dim, OtherCols, true> TopLeftLhs;
-    ResultType res(Replicate<typename TransformType::ConstTranslationPart, 1, OtherCols>(T.translation(),1,other.cols()));
-    TopLeftLhs(res, 0, 0, Dim, other.cols()).noalias() += T.linear() * other;
-
-    return res;
-  }
-};
-
-/**********************************************************
-***   Specializations of operator* with lhs EigenBase   ***
-**********************************************************/
-
-// generic HDim x HDim matrix * T => Projective
-template<typename Other,int Mode, int Options, int Dim, int HDim>
-struct transform_left_product_impl<Other,Mode,Options,Dim,HDim, HDim,HDim>
-{
-  typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
-  typedef typename TransformType::MatrixType MatrixType;
-  typedef Transform<typename Other::Scalar,Dim,Projective,Options> ResultType;
-  static ResultType run(const Other& other,const TransformType& tr)
-  { return ResultType(other * tr.matrix()); }
-};
-
-// generic HDim x HDim matrix * AffineCompact => Projective
-template<typename Other, int Options, int Dim, int HDim>
-struct transform_left_product_impl<Other,AffineCompact,Options,Dim,HDim, HDim,HDim>
-{
-  typedef Transform<typename Other::Scalar,Dim,AffineCompact,Options> TransformType;
-  typedef typename TransformType::MatrixType MatrixType;
-  typedef Transform<typename Other::Scalar,Dim,Projective,Options> ResultType;
-  static ResultType run(const Other& other,const TransformType& tr)
-  {
-    ResultType res;
-    res.matrix().noalias() = other.template block<HDim,Dim>(0,0) * tr.matrix();
-    res.matrix().col(Dim) += other.col(Dim);
-    return res;
-  }
-};
-
-// affine matrix * T
-template<typename Other,int Mode, int Options, int Dim, int HDim>
-struct transform_left_product_impl<Other,Mode,Options,Dim,HDim, Dim,HDim>
-{
-  typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
-  typedef typename TransformType::MatrixType MatrixType;
-  typedef TransformType ResultType;
-  static ResultType run(const Other& other,const TransformType& tr)
-  {
-    ResultType res;
-    res.affine().noalias() = other * tr.matrix();
-    res.matrix().row(Dim) = tr.matrix().row(Dim);
-    return res;
-  }
-};
-
-// affine matrix * AffineCompact
-template<typename Other, int Options, int Dim, int HDim>
-struct transform_left_product_impl<Other,AffineCompact,Options,Dim,HDim, Dim,HDim>
-{
-  typedef Transform<typename Other::Scalar,Dim,AffineCompact,Options> TransformType;
-  typedef typename TransformType::MatrixType MatrixType;
-  typedef TransformType ResultType;
-  static ResultType run(const Other& other,const TransformType& tr)
-  {
-    ResultType res;
-    res.matrix().noalias() = other.template block<Dim,Dim>(0,0) * tr.matrix();
-    res.translation() += other.col(Dim);
-    return res;
-  }
-};
-
-// linear matrix * T
-template<typename Other,int Mode, int Options, int Dim, int HDim>
-struct transform_left_product_impl<Other,Mode,Options,Dim,HDim, Dim,Dim>
-{
-  typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
-  typedef typename TransformType::MatrixType MatrixType;
-  typedef TransformType ResultType;
-  static ResultType run(const Other& other, const TransformType& tr)
-  {
-    TransformType res;
-    if(Mode!=int(AffineCompact))
-      res.matrix().row(Dim) = tr.matrix().row(Dim);
-    res.matrix().template topRows<Dim>().noalias()
-      = other * tr.matrix().template topRows<Dim>();
-    return res;
-  }
-};
-
-/**********************************************************
-*** Specializations of operator* with another Transform ***
-**********************************************************/
-
-template<typename Scalar, int Dim, int LhsMode, int LhsOptions, int RhsMode, int RhsOptions>
-struct transform_transform_product_impl<Transform<Scalar,Dim,LhsMode,LhsOptions>,Transform<Scalar,Dim,RhsMode,RhsOptions>,false >
-{
-  enum { ResultMode = transform_product_result<LhsMode,RhsMode>::Mode };
-  typedef Transform<Scalar,Dim,LhsMode,LhsOptions> Lhs;
-  typedef Transform<Scalar,Dim,RhsMode,RhsOptions> Rhs;
-  typedef Transform<Scalar,Dim,ResultMode,LhsOptions> ResultType;
-  static ResultType run(const Lhs& lhs, const Rhs& rhs)
-  {
-    ResultType res;
-    res.linear() = lhs.linear() * rhs.linear();
-    res.translation() = lhs.linear() * rhs.translation() + lhs.translation();
-    res.makeAffine();
-    return res;
-  }
-};
-
-template<typename Scalar, int Dim, int LhsMode, int LhsOptions, int RhsMode, int RhsOptions>
-struct transform_transform_product_impl<Transform<Scalar,Dim,LhsMode,LhsOptions>,Transform<Scalar,Dim,RhsMode,RhsOptions>,true >
-{
-  typedef Transform<Scalar,Dim,LhsMode,LhsOptions> Lhs;
-  typedef Transform<Scalar,Dim,RhsMode,RhsOptions> Rhs;
-  typedef Transform<Scalar,Dim,Projective> ResultType;
-  static ResultType run(const Lhs& lhs, const Rhs& rhs)
-  {
-    return ResultType( lhs.matrix() * rhs.matrix() );
-  }
-};
-
-template<typename Scalar, int Dim, int LhsOptions, int RhsOptions>
-struct transform_transform_product_impl<Transform<Scalar,Dim,AffineCompact,LhsOptions>,Transform<Scalar,Dim,Projective,RhsOptions>,true >
-{
-  typedef Transform<Scalar,Dim,AffineCompact,LhsOptions> Lhs;
-  typedef Transform<Scalar,Dim,Projective,RhsOptions> Rhs;
-  typedef Transform<Scalar,Dim,Projective> ResultType;
-  static ResultType run(const Lhs& lhs, const Rhs& rhs)
-  {
-    ResultType res;
-    res.matrix().template topRows<Dim>() = lhs.matrix() * rhs.matrix();
-    res.matrix().row(Dim) = rhs.matrix().row(Dim);
-    return res;
-  }
-};
-
-template<typename Scalar, int Dim, int LhsOptions, int RhsOptions>
-struct transform_transform_product_impl<Transform<Scalar,Dim,Projective,LhsOptions>,Transform<Scalar,Dim,AffineCompact,RhsOptions>,true >
-{
-  typedef Transform<Scalar,Dim,Projective,LhsOptions> Lhs;
-  typedef Transform<Scalar,Dim,AffineCompact,RhsOptions> Rhs;
-  typedef Transform<Scalar,Dim,Projective> ResultType;
-  static ResultType run(const Lhs& lhs, const Rhs& rhs)
-  {
-    ResultType res(lhs.matrix().template leftCols<Dim>() * rhs.matrix());
-    res.matrix().col(Dim) += lhs.matrix().col(Dim);
-    return res;
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_TRANSFORM_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/Translation.h b/vendor/eigen-3.1.91/Eigen/src/Geometry/Translation.h
deleted file mode 100644
index 7fda179..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Geometry/Translation.h
+++ /dev/null
@@ -1,206 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_TRANSLATION_H
-#define EIGEN_TRANSLATION_H
-
-namespace Eigen { 
-
-/** \geometry_module \ingroup Geometry_Module
-  *
-  * \class Translation
-  *
-  * \brief Represents a translation transformation
-  *
-  * \param _Scalar the scalar type, i.e., the type of the coefficients.
-  * \param _Dim the  dimension of the space, can be a compile time value or Dynamic
-  *
-  * \note This class is not aimed to be used to store a translation transformation,
-  * but rather to make easier the constructions and updates of Transform objects.
-  *
-  * \sa class Scaling, class Transform
-  */
-template<typename _Scalar, int _Dim>
-class Translation
-{
-public:
-  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Dim)
-  /** dimension of the space */
-  enum { Dim = _Dim };
-  /** the scalar type of the coefficients */
-  typedef _Scalar Scalar;
-  /** corresponding vector type */
-  typedef Matrix<Scalar,Dim,1> VectorType;
-  /** corresponding linear transformation matrix type */
-  typedef Matrix<Scalar,Dim,Dim> LinearMatrixType;
-  /** corresponding affine transformation type */
-  typedef Transform<Scalar,Dim,Affine> AffineTransformType;
-  /** corresponding isometric transformation type */
-  typedef Transform<Scalar,Dim,Isometry> IsometryTransformType;
-
-protected:
-
-  VectorType m_coeffs;
-
-public:
-
-  /** Default constructor without initialization. */
-  Translation() {}
-  /**  */
-  inline Translation(const Scalar& sx, const Scalar& sy)
-  {
-    eigen_assert(Dim==2);
-    m_coeffs.x() = sx;
-    m_coeffs.y() = sy;
-  }
-  /**  */
-  inline Translation(const Scalar& sx, const Scalar& sy, const Scalar& sz)
-  {
-    eigen_assert(Dim==3);
-    m_coeffs.x() = sx;
-    m_coeffs.y() = sy;
-    m_coeffs.z() = sz;
-  }
-  /** Constructs and initialize the translation transformation from a vector of translation coefficients */
-  explicit inline Translation(const VectorType& vector) : m_coeffs(vector) {}
-
-  /** \brief Retruns the x-translation by value. **/
-  inline Scalar x() const { return m_coeffs.x(); }
-  /** \brief Retruns the y-translation by value. **/
-  inline Scalar y() const { return m_coeffs.y(); }
-  /** \brief Retruns the z-translation by value. **/
-  inline Scalar z() const { return m_coeffs.z(); }
-
-  /** \brief Retruns the x-translation as a reference. **/
-  inline Scalar& x() { return m_coeffs.x(); }
-  /** \brief Retruns the y-translation as a reference. **/
-  inline Scalar& y() { return m_coeffs.y(); }
-  /** \brief Retruns the z-translation as a reference. **/
-  inline Scalar& z() { return m_coeffs.z(); }
-
-  const VectorType& vector() const { return m_coeffs; }
-  VectorType& vector() { return m_coeffs; }
-
-  const VectorType& translation() const { return m_coeffs; }
-  VectorType& translation() { return m_coeffs; }
-
-  /** Concatenates two translation */
-  inline Translation operator* (const Translation& other) const
-  { return Translation(m_coeffs + other.m_coeffs); }
-
-  /** Concatenates a translation and a uniform scaling */
-  inline AffineTransformType operator* (const UniformScaling<Scalar>& other) const;
-
-  /** Concatenates a translation and a linear transformation */
-  template<typename OtherDerived>
-  inline AffineTransformType operator* (const EigenBase<OtherDerived>& linear) const;
-
-  /** Concatenates a translation and a rotation */
-  template<typename Derived>
-  inline IsometryTransformType operator*(const RotationBase<Derived,Dim>& r) const
-  { return *this * IsometryTransformType(r); }
-
-  /** \returns the concatenation of a linear transformation \a l with the translation \a t */
-  // its a nightmare to define a templated friend function outside its declaration
-  template<typename OtherDerived> friend
-  inline AffineTransformType operator*(const EigenBase<OtherDerived>& linear, const Translation& t)
-  {
-    AffineTransformType res;
-    res.matrix().setZero();
-    res.linear() = linear.derived();
-    res.translation() = linear.derived() * t.m_coeffs;
-    res.matrix().row(Dim).setZero();
-    res(Dim,Dim) = Scalar(1);
-    return res;
-  }
-
-  /** Concatenates a translation and a transformation */
-  template<int Mode, int Options>
-  inline Transform<Scalar,Dim,Mode> operator* (const Transform<Scalar,Dim,Mode,Options>& t) const
-  {
-    Transform<Scalar,Dim,Mode> res = t;
-    res.pretranslate(m_coeffs);
-    return res;
-  }
-
-  /** Applies translation to vector */
-  inline VectorType operator* (const VectorType& other) const
-  { return m_coeffs + other; }
-
-  /** \returns the inverse translation (opposite) */
-  Translation inverse() const { return Translation(-m_coeffs); }
-
-  Translation& operator=(const Translation& other)
-  {
-    m_coeffs = other.m_coeffs;
-    return *this;
-  }
-
-  static const Translation Identity() { return Translation(VectorType::Zero()); }
-
-  /** \returns \c *this with scalar type casted to \a NewScalarType
-    *
-    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
-    * then this function smartly returns a const reference to \c *this.
-    */
-  template<typename NewScalarType>
-  inline typename internal::cast_return_type<Translation,Translation<NewScalarType,Dim> >::type cast() const
-  { return typename internal::cast_return_type<Translation,Translation<NewScalarType,Dim> >::type(*this); }
-
-  /** Copy constructor with scalar type conversion */
-  template<typename OtherScalarType>
-  inline explicit Translation(const Translation<OtherScalarType,Dim>& other)
-  { m_coeffs = other.vector().template cast<Scalar>(); }
-
-  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
-    * determined by \a prec.
-    *
-    * \sa MatrixBase::isApprox() */
-  bool isApprox(const Translation& other, typename NumTraits<Scalar>::Real prec = NumTraits<Scalar>::dummy_precision()) const
-  { return m_coeffs.isApprox(other.m_coeffs, prec); }
-
-};
-
-/** \addtogroup Geometry_Module */
-//@{
-typedef Translation<float, 2> Translation2f;
-typedef Translation<double,2> Translation2d;
-typedef Translation<float, 3> Translation3f;
-typedef Translation<double,3> Translation3d;
-//@}
-
-template<typename Scalar, int Dim>
-inline typename Translation<Scalar,Dim>::AffineTransformType
-Translation<Scalar,Dim>::operator* (const UniformScaling<Scalar>& other) const
-{
-  AffineTransformType res;
-  res.matrix().setZero();
-  res.linear().diagonal().fill(other.factor());
-  res.translation() = m_coeffs;
-  res(Dim,Dim) = Scalar(1);
-  return res;
-}
-
-template<typename Scalar, int Dim>
-template<typename OtherDerived>
-inline typename Translation<Scalar,Dim>::AffineTransformType
-Translation<Scalar,Dim>::operator* (const EigenBase<OtherDerived>& linear) const
-{
-  AffineTransformType res;
-  res.matrix().setZero();
-  res.linear() = linear.derived();
-  res.translation() = m_coeffs;
-  res.matrix().row(Dim).setZero();
-  res(Dim,Dim) = Scalar(1);
-  return res;
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_TRANSLATION_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/Umeyama.h b/vendor/eigen-3.1.91/Eigen/src/Geometry/Umeyama.h
deleted file mode 100644
index 345b47e..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Geometry/Umeyama.h
+++ /dev/null
@@ -1,177 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Hauke Heibel <hauke.heibel at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_UMEYAMA_H
-#define EIGEN_UMEYAMA_H
-
-// This file requires the user to include 
-// * Eigen/Core
-// * Eigen/LU 
-// * Eigen/SVD
-// * Eigen/Array
-
-namespace Eigen { 
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-
-// These helpers are required since it allows to use mixed types as parameters
-// for the Umeyama. The problem with mixed parameters is that the return type
-// cannot trivially be deduced when float and double types are mixed.
-namespace internal {
-
-// Compile time return type deduction for different MatrixBase types.
-// Different means here different alignment and parameters but the same underlying
-// real scalar type.
-template<typename MatrixType, typename OtherMatrixType>
-struct umeyama_transform_matrix_type
-{
-  enum {
-    MinRowsAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(MatrixType::RowsAtCompileTime, OtherMatrixType::RowsAtCompileTime),
-
-    // When possible we want to choose some small fixed size value since the result
-    // is likely to fit on the stack. So here, EIGEN_SIZE_MIN_PREFER_DYNAMIC is not what we want.
-    HomogeneousDimension = int(MinRowsAtCompileTime) == Dynamic ? Dynamic : int(MinRowsAtCompileTime)+1
-  };
-
-  typedef Matrix<typename traits<MatrixType>::Scalar,
-    HomogeneousDimension,
-    HomogeneousDimension,
-    AutoAlign | (traits<MatrixType>::Flags & RowMajorBit ? RowMajor : ColMajor),
-    HomogeneousDimension,
-    HomogeneousDimension
-  > type;
-};
-
-}
-
-#endif
-
-/**
-* \geometry_module \ingroup Geometry_Module
-*
-* \brief Returns the transformation between two point sets.
-*
-* The algorithm is based on:
-* "Least-squares estimation of transformation parameters between two point patterns",
-* Shinji Umeyama, PAMI 1991, DOI: 10.1109/34.88573
-*
-* It estimates parameters \f$ c, \mathbf{R}, \f$ and \f$ \mathbf{t} \f$ such that
-* \f{align*}
-*   \frac{1}{n} \sum_{i=1}^n \vert\vert y_i - (c\mathbf{R}x_i + \mathbf{t}) \vert\vert_2^2
-* \f}
-* is minimized.
-*
-* The algorithm is based on the analysis of the covariance matrix
-* \f$ \Sigma_{\mathbf{x}\mathbf{y}} \in \mathbb{R}^{d \times d} \f$
-* of the input point sets \f$ \mathbf{x} \f$ and \f$ \mathbf{y} \f$ where 
-* \f$d\f$ is corresponding to the dimension (which is typically small).
-* The analysis is involving the SVD having a complexity of \f$O(d^3)\f$
-* though the actual computational effort lies in the covariance
-* matrix computation which has an asymptotic lower bound of \f$O(dm)\f$ when 
-* the input point sets have dimension \f$d \times m\f$.
-*
-* Currently the method is working only for floating point matrices.
-*
-* \todo Should the return type of umeyama() become a Transform?
-*
-* \param src Source points \f$ \mathbf{x} = \left( x_1, \hdots, x_n \right) \f$.
-* \param dst Destination points \f$ \mathbf{y} = \left( y_1, \hdots, y_n \right) \f$.
-* \param with_scaling Sets \f$ c=1 \f$ when <code>false</code> is passed.
-* \return The homogeneous transformation 
-* \f{align*}
-*   T = \begin{bmatrix} c\mathbf{R} & \mathbf{t} \\ \mathbf{0} & 1 \end{bmatrix}
-* \f}
-* minimizing the resudiual above. This transformation is always returned as an 
-* Eigen::Matrix.
-*/
-template <typename Derived, typename OtherDerived>
-typename internal::umeyama_transform_matrix_type<Derived, OtherDerived>::type
-umeyama(const MatrixBase<Derived>& src, const MatrixBase<OtherDerived>& dst, bool with_scaling = true)
-{
-  typedef typename internal::umeyama_transform_matrix_type<Derived, OtherDerived>::type TransformationMatrixType;
-  typedef typename internal::traits<TransformationMatrixType>::Scalar Scalar;
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  typedef typename Derived::Index Index;
-
-  EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL)
-  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename internal::traits<OtherDerived>::Scalar>::value),
-    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
-
-  enum { Dimension = EIGEN_SIZE_MIN_PREFER_DYNAMIC(Derived::RowsAtCompileTime, OtherDerived::RowsAtCompileTime) };
-
-  typedef Matrix<Scalar, Dimension, 1> VectorType;
-  typedef Matrix<Scalar, Dimension, Dimension> MatrixType;
-  typedef typename internal::plain_matrix_type_row_major<Derived>::type RowMajorMatrixType;
-
-  const Index m = src.rows(); // dimension
-  const Index n = src.cols(); // number of measurements
-
-  // required for demeaning ...
-  const RealScalar one_over_n = 1 / static_cast<RealScalar>(n);
-
-  // computation of mean
-  const VectorType src_mean = src.rowwise().sum() * one_over_n;
-  const VectorType dst_mean = dst.rowwise().sum() * one_over_n;
-
-  // demeaning of src and dst points
-  const RowMajorMatrixType src_demean = src.colwise() - src_mean;
-  const RowMajorMatrixType dst_demean = dst.colwise() - dst_mean;
-
-  // Eq. (36)-(37)
-  const Scalar src_var = src_demean.rowwise().squaredNorm().sum() * one_over_n;
-
-  // Eq. (38)
-  const MatrixType sigma = one_over_n * dst_demean * src_demean.transpose();
-
-  JacobiSVD<MatrixType> svd(sigma, ComputeFullU | ComputeFullV);
-
-  // Initialize the resulting transformation with an identity matrix...
-  TransformationMatrixType Rt = TransformationMatrixType::Identity(m+1,m+1);
-
-  // Eq. (39)
-  VectorType S = VectorType::Ones(m);
-  if (sigma.determinant()<0) S(m-1) = -1;
-
-  // Eq. (40) and (43)
-  const VectorType& d = svd.singularValues();
-  Index rank = 0; for (Index i=0; i<m; ++i) if (!internal::isMuchSmallerThan(d.coeff(i),d.coeff(0))) ++rank;
-  if (rank == m-1) {
-    if ( svd.matrixU().determinant() * svd.matrixV().determinant() > 0 ) {
-      Rt.block(0,0,m,m).noalias() = svd.matrixU()*svd.matrixV().transpose();
-    } else {
-      const Scalar s = S(m-1); S(m-1) = -1;
-      Rt.block(0,0,m,m).noalias() = svd.matrixU() * S.asDiagonal() * svd.matrixV().transpose();
-      S(m-1) = s;
-    }
-  } else {
-    Rt.block(0,0,m,m).noalias() = svd.matrixU() * S.asDiagonal() * svd.matrixV().transpose();
-  }
-
-  if (with_scaling)
-  {
-    // Eq. (42)
-    const Scalar c = 1/src_var * svd.singularValues().dot(S);
-
-    // Eq. (41)
-    Rt.col(m).head(m) = dst_mean;
-    Rt.col(m).head(m).noalias() -= c*Rt.topLeftCorner(m,m)*src_mean;
-    Rt.block(0,0,m,m) *= c;
-  }
-  else
-  {
-    Rt.col(m).head(m) = dst_mean;
-    Rt.col(m).head(m).noalias() -= Rt.topLeftCorner(m,m)*src_mean;
-  }
-
-  return Rt;
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_UMEYAMA_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Householder/BlockHouseholder.h b/vendor/eigen-3.1.91/Eigen/src/Householder/BlockHouseholder.h
deleted file mode 100644
index 1991c65..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Householder/BlockHouseholder.h
+++ /dev/null
@@ -1,68 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2010 Vincent Lejeune
-// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_BLOCK_HOUSEHOLDER_H
-#define EIGEN_BLOCK_HOUSEHOLDER_H
-
-// This file contains some helper function to deal with block householder reflectors
-
-namespace Eigen { 
-
-namespace internal {
-
-/** \internal */
-template<typename TriangularFactorType,typename VectorsType,typename CoeffsType>
-void make_block_householder_triangular_factor(TriangularFactorType& triFactor, const VectorsType& vectors, const CoeffsType& hCoeffs)
-{
-  typedef typename TriangularFactorType::Index Index;
-  typedef typename VectorsType::Scalar Scalar;
-  const Index nbVecs = vectors.cols();
-  eigen_assert(triFactor.rows() == nbVecs && triFactor.cols() == nbVecs && vectors.rows()>=nbVecs);
-
-  for(Index i = 0; i < nbVecs; i++)
-  {
-    Index rs = vectors.rows() - i;
-    Scalar Vii = vectors(i,i);
-    vectors.const_cast_derived().coeffRef(i,i) = Scalar(1);
-    triFactor.col(i).head(i).noalias() = -hCoeffs(i) * vectors.block(i, 0, rs, i).adjoint()
-                                       * vectors.col(i).tail(rs);
-    vectors.const_cast_derived().coeffRef(i, i) = Vii;
-    // FIXME add .noalias() once the triangular product can work inplace
-    triFactor.col(i).head(i) = triFactor.block(0,0,i,i).template triangularView<Upper>()
-                             * triFactor.col(i).head(i);
-    triFactor(i,i) = hCoeffs(i);
-  }
-}
-
-/** \internal */
-template<typename MatrixType,typename VectorsType,typename CoeffsType>
-void apply_block_householder_on_the_left(MatrixType& mat, const VectorsType& vectors, const CoeffsType& hCoeffs)
-{
-  typedef typename MatrixType::Index Index;
-  enum { TFactorSize = MatrixType::ColsAtCompileTime };
-  Index nbVecs = vectors.cols();
-  Matrix<typename MatrixType::Scalar, TFactorSize, TFactorSize> T(nbVecs,nbVecs);
-  make_block_householder_triangular_factor(T, vectors, hCoeffs);
-
-  const TriangularView<const VectorsType, UnitLower>& V(vectors);
-
-  // A -= V T V^* A
-  Matrix<typename MatrixType::Scalar,VectorsType::ColsAtCompileTime,MatrixType::ColsAtCompileTime,0,
-         VectorsType::MaxColsAtCompileTime,MatrixType::MaxColsAtCompileTime> tmp = V.adjoint() * mat;
-  // FIXME add .noalias() once the triangular product can work inplace
-  tmp = T.template triangularView<Upper>().adjoint() * tmp;
-  mat.noalias() -= V * tmp;
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_BLOCK_HOUSEHOLDER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Householder/Householder.h b/vendor/eigen-3.1.91/Eigen/src/Householder/Householder.h
deleted file mode 100644
index b7cfa9b..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Householder/Householder.h
+++ /dev/null
@@ -1,171 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_HOUSEHOLDER_H
-#define EIGEN_HOUSEHOLDER_H
-
-namespace Eigen { 
-
-namespace internal {
-template<int n> struct decrement_size
-{
-  enum {
-    ret = n==Dynamic ? n : n-1
-  };
-};
-}
-
-/** Computes the elementary reflector H such that:
-  * \f$ H *this = [ beta 0 ... 0]^T \f$
-  * where the transformation H is:
-  * \f$ H = I - tau v v^*\f$
-  * and the vector v is:
-  * \f$ v^T = [1 essential^T] \f$
-  *
-  * The essential part of the vector \c v is stored in *this.
-  * 
-  * On output:
-  * \param tau the scaling factor of the Householder transformation
-  * \param beta the result of H * \c *this
-  *
-  * \sa MatrixBase::makeHouseholder(), MatrixBase::applyHouseholderOnTheLeft(),
-  *     MatrixBase::applyHouseholderOnTheRight()
-  */
-template<typename Derived>
-void MatrixBase<Derived>::makeHouseholderInPlace(Scalar& tau, RealScalar& beta)
-{
-  VectorBlock<Derived, internal::decrement_size<Base::SizeAtCompileTime>::ret> essentialPart(derived(), 1, size()-1);
-  makeHouseholder(essentialPart, tau, beta);
-}
-
-/** Computes the elementary reflector H such that:
-  * \f$ H *this = [ beta 0 ... 0]^T \f$
-  * where the transformation H is:
-  * \f$ H = I - tau v v^*\f$
-  * and the vector v is:
-  * \f$ v^T = [1 essential^T] \f$
-  *
-  * On output:
-  * \param essential the essential part of the vector \c v
-  * \param tau the scaling factor of the Householder transformation
-  * \param beta the result of H * \c *this
-  *
-  * \sa MatrixBase::makeHouseholderInPlace(), MatrixBase::applyHouseholderOnTheLeft(),
-  *     MatrixBase::applyHouseholderOnTheRight()
-  */
-template<typename Derived>
-template<typename EssentialPart>
-void MatrixBase<Derived>::makeHouseholder(
-  EssentialPart& essential,
-  Scalar& tau,
-  RealScalar& beta) const
-{
-  using std::sqrt;
-  using internal::conj;
-  
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(EssentialPart)
-  VectorBlock<const Derived, EssentialPart::SizeAtCompileTime> tail(derived(), 1, size()-1);
-  
-  RealScalar tailSqNorm = size()==1 ? RealScalar(0) : tail.squaredNorm();
-  Scalar c0 = coeff(0);
-
-  if(tailSqNorm == RealScalar(0) && internal::imag(c0)==RealScalar(0))
-  {
-    tau = RealScalar(0);
-    beta = internal::real(c0);
-    essential.setZero();
-  }
-  else
-  {
-    beta = sqrt(internal::abs2(c0) + tailSqNorm);
-    if (internal::real(c0)>=RealScalar(0))
-      beta = -beta;
-    essential = tail / (c0 - beta);
-    tau = conj((beta - c0) / beta);
-  }
-}
-
-/** Apply the elementary reflector H given by
-  * \f$ H = I - tau v v^*\f$
-  * with
-  * \f$ v^T = [1 essential^T] \f$
-  * from the left to a vector or matrix.
-  *
-  * On input:
-  * \param essential the essential part of the vector \c v
-  * \param tau the scaling factor of the Householder transformation
-  * \param workspace a pointer to working space with at least
-  *                  this->cols() * essential.size() entries
-  *
-  * \sa MatrixBase::makeHouseholder(), MatrixBase::makeHouseholderInPlace(), 
-  *     MatrixBase::applyHouseholderOnTheRight()
-  */
-template<typename Derived>
-template<typename EssentialPart>
-void MatrixBase<Derived>::applyHouseholderOnTheLeft(
-  const EssentialPart& essential,
-  const Scalar& tau,
-  Scalar* workspace)
-{
-  if(rows() == 1)
-  {
-    *this *= Scalar(1)-tau;
-  }
-  else
-  {
-    Map<typename internal::plain_row_type<PlainObject>::type> tmp(workspace,cols());
-    Block<Derived, EssentialPart::SizeAtCompileTime, Derived::ColsAtCompileTime> bottom(derived(), 1, 0, rows()-1, cols());
-    tmp.noalias() = essential.adjoint() * bottom;
-    tmp += this->row(0);
-    this->row(0) -= tau * tmp;
-    bottom.noalias() -= tau * essential * tmp;
-  }
-}
-
-/** Apply the elementary reflector H given by
-  * \f$ H = I - tau v v^*\f$
-  * with
-  * \f$ v^T = [1 essential^T] \f$
-  * from the right to a vector or matrix.
-  *
-  * On input:
-  * \param essential the essential part of the vector \c v
-  * \param tau the scaling factor of the Householder transformation
-  * \param workspace a pointer to working space with at least
-  *                  this->cols() * essential.size() entries
-  *
-  * \sa MatrixBase::makeHouseholder(), MatrixBase::makeHouseholderInPlace(), 
-  *     MatrixBase::applyHouseholderOnTheLeft()
-  */
-template<typename Derived>
-template<typename EssentialPart>
-void MatrixBase<Derived>::applyHouseholderOnTheRight(
-  const EssentialPart& essential,
-  const Scalar& tau,
-  Scalar* workspace)
-{
-  if(cols() == 1)
-  {
-    *this *= Scalar(1)-tau;
-  }
-  else
-  {
-    Map<typename internal::plain_col_type<PlainObject>::type> tmp(workspace,rows());
-    Block<Derived, Derived::RowsAtCompileTime, EssentialPart::SizeAtCompileTime> right(derived(), 0, 1, rows(), cols()-1);
-    tmp.noalias() = right * essential.conjugate();
-    tmp += this->col(0);
-    this->col(0) -= tau * tmp;
-    right.noalias() -= tau * tmp * essential.transpose();
-  }
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_HOUSEHOLDER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Householder/HouseholderSequence.h b/vendor/eigen-3.1.91/Eigen/src/Householder/HouseholderSequence.h
deleted file mode 100644
index 1e71e16..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Householder/HouseholderSequence.h
+++ /dev/null
@@ -1,441 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_HOUSEHOLDER_SEQUENCE_H
-#define EIGEN_HOUSEHOLDER_SEQUENCE_H
-
-namespace Eigen { 
-
-/** \ingroup Householder_Module
-  * \householder_module
-  * \class HouseholderSequence
-  * \brief Sequence of Householder reflections acting on subspaces with decreasing size
-  * \tparam VectorsType type of matrix containing the Householder vectors
-  * \tparam CoeffsType  type of vector containing the Householder coefficients
-  * \tparam Side        either OnTheLeft (the default) or OnTheRight
-  *
-  * This class represents a product sequence of Householder reflections where the first Householder reflection
-  * acts on the whole space, the second Householder reflection leaves the one-dimensional subspace spanned by
-  * the first unit vector invariant, the third Householder reflection leaves the two-dimensional subspace
-  * spanned by the first two unit vectors invariant, and so on up to the last reflection which leaves all but
-  * one dimensions invariant and acts only on the last dimension. Such sequences of Householder reflections
-  * are used in several algorithms to zero out certain parts of a matrix. Indeed, the methods
-  * HessenbergDecomposition::matrixQ(), Tridiagonalization::matrixQ(), HouseholderQR::householderQ(),
-  * and ColPivHouseholderQR::householderQ() all return a %HouseholderSequence.
-  *
-  * More precisely, the class %HouseholderSequence represents an \f$ n \times n \f$ matrix \f$ H \f$ of the
-  * form \f$ H = \prod_{i=0}^{n-1} H_i \f$ where the i-th Householder reflection is \f$ H_i = I - h_i v_i
-  * v_i^* \f$. The i-th Householder coefficient \f$ h_i \f$ is a scalar and the i-th Householder vector \f$
-  * v_i \f$ is a vector of the form
-  * \f[ 
-  * v_i = [\underbrace{0, \ldots, 0}_{i-1\mbox{ zeros}}, 1, \underbrace{*, \ldots,*}_{n-i\mbox{ arbitrary entries}} ]. 
-  * \f]
-  * The last \f$ n-i \f$ entries of \f$ v_i \f$ are called the essential part of the Householder vector.
-  *
-  * Typical usages are listed below, where H is a HouseholderSequence:
-  * \code
-  * A.applyOnTheRight(H);             // A = A * H
-  * A.applyOnTheLeft(H);              // A = H * A
-  * A.applyOnTheRight(H.adjoint());   // A = A * H^*
-  * A.applyOnTheLeft(H.adjoint());    // A = H^* * A
-  * MatrixXd Q = H;                   // conversion to a dense matrix
-  * \endcode
-  * In addition to the adjoint, you can also apply the inverse (=adjoint), the transpose, and the conjugate operators.
-  *
-  * See the documentation for HouseholderSequence(const VectorsType&, const CoeffsType&) for an example.
-  *
-  * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
-  */
-
-namespace internal {
-
-template<typename VectorsType, typename CoeffsType, int Side>
-struct traits<HouseholderSequence<VectorsType,CoeffsType,Side> >
-{
-  typedef typename VectorsType::Scalar Scalar;
-  typedef typename VectorsType::Index Index;
-  typedef typename VectorsType::StorageKind StorageKind;
-  enum {
-    RowsAtCompileTime = Side==OnTheLeft ? traits<VectorsType>::RowsAtCompileTime
-                                        : traits<VectorsType>::ColsAtCompileTime,
-    ColsAtCompileTime = RowsAtCompileTime,
-    MaxRowsAtCompileTime = Side==OnTheLeft ? traits<VectorsType>::MaxRowsAtCompileTime
-                                           : traits<VectorsType>::MaxColsAtCompileTime,
-    MaxColsAtCompileTime = MaxRowsAtCompileTime,
-    Flags = 0
-  };
-};
-
-template<typename VectorsType, typename CoeffsType, int Side>
-struct hseq_side_dependent_impl
-{
-  typedef Block<const VectorsType, Dynamic, 1> EssentialVectorType;
-  typedef HouseholderSequence<VectorsType, CoeffsType, OnTheLeft> HouseholderSequenceType;
-  typedef typename VectorsType::Index Index;
-  static inline const EssentialVectorType essentialVector(const HouseholderSequenceType& h, Index k)
-  {
-    Index start = k+1+h.m_shift;
-    return Block<const VectorsType,Dynamic,1>(h.m_vectors, start, k, h.rows()-start, 1);
-  }
-};
-
-template<typename VectorsType, typename CoeffsType>
-struct hseq_side_dependent_impl<VectorsType, CoeffsType, OnTheRight>
-{
-  typedef Transpose<Block<const VectorsType, 1, Dynamic> > EssentialVectorType;
-  typedef HouseholderSequence<VectorsType, CoeffsType, OnTheRight> HouseholderSequenceType;
-  typedef typename VectorsType::Index Index;
-  static inline const EssentialVectorType essentialVector(const HouseholderSequenceType& h, Index k)
-  {
-    Index start = k+1+h.m_shift;
-    return Block<const VectorsType,1,Dynamic>(h.m_vectors, k, start, 1, h.rows()-start).transpose();
-  }
-};
-
-template<typename OtherScalarType, typename MatrixType> struct matrix_type_times_scalar_type
-{
-  typedef typename scalar_product_traits<OtherScalarType, typename MatrixType::Scalar>::ReturnType
-    ResultScalar;
-  typedef Matrix<ResultScalar, MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime,
-                 0, MatrixType::MaxRowsAtCompileTime, MatrixType::MaxColsAtCompileTime> Type;
-};
-
-} // end namespace internal
-
-template<typename VectorsType, typename CoeffsType, int Side> class HouseholderSequence
-  : public EigenBase<HouseholderSequence<VectorsType,CoeffsType,Side> >
-{
-    enum {
-      RowsAtCompileTime = internal::traits<HouseholderSequence>::RowsAtCompileTime,
-      ColsAtCompileTime = internal::traits<HouseholderSequence>::ColsAtCompileTime,
-      MaxRowsAtCompileTime = internal::traits<HouseholderSequence>::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = internal::traits<HouseholderSequence>::MaxColsAtCompileTime
-    };
-    typedef typename internal::traits<HouseholderSequence>::Scalar Scalar;
-    typedef typename VectorsType::Index Index;
-
-    typedef typename internal::hseq_side_dependent_impl<VectorsType,CoeffsType,Side>::EssentialVectorType
-            EssentialVectorType;
-
-  public:
-
-    typedef HouseholderSequence<
-      VectorsType,
-      typename internal::conditional<NumTraits<Scalar>::IsComplex,
-        typename internal::remove_all<typename CoeffsType::ConjugateReturnType>::type,
-        CoeffsType>::type,
-      Side
-    > ConjugateReturnType;
-
-    /** \brief Constructor.
-      * \param[in]  v      %Matrix containing the essential parts of the Householder vectors
-      * \param[in]  h      Vector containing the Householder coefficients
-      *
-      * Constructs the Householder sequence with coefficients given by \p h and vectors given by \p v. The
-      * i-th Householder coefficient \f$ h_i \f$ is given by \p h(i) and the essential part of the i-th
-      * Householder vector \f$ v_i \f$ is given by \p v(k,i) with \p k > \p i (the subdiagonal part of the
-      * i-th column). If \p v has fewer columns than rows, then the Householder sequence contains as many
-      * Householder reflections as there are columns.
-      *
-      * \note The %HouseholderSequence object stores \p v and \p h by reference.
-      *
-      * Example: \include HouseholderSequence_HouseholderSequence.cpp
-      * Output: \verbinclude HouseholderSequence_HouseholderSequence.out
-      *
-      * \sa setLength(), setShift()
-      */
-    HouseholderSequence(const VectorsType& v, const CoeffsType& h)
-      : m_vectors(v), m_coeffs(h), m_trans(false), m_length(v.diagonalSize()),
-        m_shift(0)
-    {
-    }
-
-    /** \brief Copy constructor. */
-    HouseholderSequence(const HouseholderSequence& other)
-      : m_vectors(other.m_vectors),
-        m_coeffs(other.m_coeffs),
-        m_trans(other.m_trans),
-        m_length(other.m_length),
-        m_shift(other.m_shift)
-    {
-    }
-
-    /** \brief Number of rows of transformation viewed as a matrix.
-      * \returns Number of rows 
-      * \details This equals the dimension of the space that the transformation acts on.
-      */
-    Index rows() const { return Side==OnTheLeft ? m_vectors.rows() : m_vectors.cols(); }
-
-    /** \brief Number of columns of transformation viewed as a matrix.
-      * \returns Number of columns
-      * \details This equals the dimension of the space that the transformation acts on.
-      */
-    Index cols() const { return rows(); }
-
-    /** \brief Essential part of a Householder vector.
-      * \param[in]  k  Index of Householder reflection
-      * \returns    Vector containing non-trivial entries of k-th Householder vector
-      *
-      * This function returns the essential part of the Householder vector \f$ v_i \f$. This is a vector of
-      * length \f$ n-i \f$ containing the last \f$ n-i \f$ entries of the vector
-      * \f[ 
-      * v_i = [\underbrace{0, \ldots, 0}_{i-1\mbox{ zeros}}, 1, \underbrace{*, \ldots,*}_{n-i\mbox{ arbitrary entries}} ]. 
-      * \f]
-      * The index \f$ i \f$ equals \p k + shift(), corresponding to the k-th column of the matrix \p v
-      * passed to the constructor.
-      *
-      * \sa setShift(), shift()
-      */
-    const EssentialVectorType essentialVector(Index k) const
-    {
-      eigen_assert(k >= 0 && k < m_length);
-      return internal::hseq_side_dependent_impl<VectorsType,CoeffsType,Side>::essentialVector(*this, k);
-    }
-
-    /** \brief %Transpose of the Householder sequence. */
-    HouseholderSequence transpose() const
-    {
-      return HouseholderSequence(*this).setTrans(!m_trans);
-    }
-
-    /** \brief Complex conjugate of the Householder sequence. */
-    ConjugateReturnType conjugate() const
-    {
-      return ConjugateReturnType(m_vectors, m_coeffs.conjugate())
-             .setTrans(m_trans)
-             .setLength(m_length)
-             .setShift(m_shift);
-    }
-
-    /** \brief Adjoint (conjugate transpose) of the Householder sequence. */
-    ConjugateReturnType adjoint() const
-    {
-      return conjugate().setTrans(!m_trans);
-    }
-
-    /** \brief Inverse of the Householder sequence (equals the adjoint). */
-    ConjugateReturnType inverse() const { return adjoint(); }
-
-    /** \internal */
-    template<typename DestType> inline void evalTo(DestType& dst) const
-    {
-      Matrix<Scalar, DestType::RowsAtCompileTime, 1,
-             AutoAlign|ColMajor, DestType::MaxRowsAtCompileTime, 1> workspace(rows());
-      evalTo(dst, workspace);
-    }
-
-    /** \internal */
-    template<typename Dest, typename Workspace>
-    void evalTo(Dest& dst, Workspace& workspace) const
-    {
-      workspace.resize(rows());
-      Index vecs = m_length;
-      if(    internal::is_same<typename internal::remove_all<VectorsType>::type,Dest>::value
-          && internal::extract_data(dst) == internal::extract_data(m_vectors))
-      {
-        // in-place
-        dst.diagonal().setOnes();
-        dst.template triangularView<StrictlyUpper>().setZero();
-        for(Index k = vecs-1; k >= 0; --k)
-        {
-          Index cornerSize = rows() - k - m_shift;
-          if(m_trans)
-            dst.bottomRightCorner(cornerSize, cornerSize)
-               .applyHouseholderOnTheRight(essentialVector(k), m_coeffs.coeff(k), workspace.data());
-          else
-            dst.bottomRightCorner(cornerSize, cornerSize)
-               .applyHouseholderOnTheLeft(essentialVector(k), m_coeffs.coeff(k), workspace.data());
-
-          // clear the off diagonal vector
-          dst.col(k).tail(rows()-k-1).setZero();
-        }
-        // clear the remaining columns if needed
-        for(Index k = 0; k<cols()-vecs ; ++k)
-          dst.col(k).tail(rows()-k-1).setZero();
-      }
-      else
-      {
-        dst.setIdentity(rows(), rows());
-        for(Index k = vecs-1; k >= 0; --k)
-        {
-          Index cornerSize = rows() - k - m_shift;
-          if(m_trans)
-            dst.bottomRightCorner(cornerSize, cornerSize)
-               .applyHouseholderOnTheRight(essentialVector(k), m_coeffs.coeff(k), &workspace.coeffRef(0));
-          else
-            dst.bottomRightCorner(cornerSize, cornerSize)
-               .applyHouseholderOnTheLeft(essentialVector(k), m_coeffs.coeff(k), &workspace.coeffRef(0));
-        }
-      }
-    }
-
-    /** \internal */
-    template<typename Dest> inline void applyThisOnTheRight(Dest& dst) const
-    {
-      Matrix<Scalar,1,Dest::RowsAtCompileTime,RowMajor,1,Dest::MaxRowsAtCompileTime> workspace(dst.rows());
-      applyThisOnTheRight(dst, workspace);
-    }
-
-    /** \internal */
-    template<typename Dest, typename Workspace>
-    inline void applyThisOnTheRight(Dest& dst, Workspace& workspace) const
-    {
-      workspace.resize(dst.rows());
-      for(Index k = 0; k < m_length; ++k)
-      {
-        Index actual_k = m_trans ? m_length-k-1 : k;
-        dst.rightCols(rows()-m_shift-actual_k)
-           .applyHouseholderOnTheRight(essentialVector(actual_k), m_coeffs.coeff(actual_k), workspace.data());
-      }
-    }
-
-    /** \internal */
-    template<typename Dest> inline void applyThisOnTheLeft(Dest& dst) const
-    {
-      Matrix<Scalar,1,Dest::ColsAtCompileTime,RowMajor,1,Dest::MaxColsAtCompileTime> workspace(dst.cols());
-      applyThisOnTheLeft(dst, workspace);
-    }
-
-    /** \internal */
-    template<typename Dest, typename Workspace>
-    inline void applyThisOnTheLeft(Dest& dst, Workspace& workspace) const
-    {
-      workspace.resize(dst.cols());
-      for(Index k = 0; k < m_length; ++k)
-      {
-        Index actual_k = m_trans ? k : m_length-k-1;
-        dst.bottomRows(rows()-m_shift-actual_k)
-           .applyHouseholderOnTheLeft(essentialVector(actual_k), m_coeffs.coeff(actual_k), workspace.data());
-      }
-    }
-
-    /** \brief Computes the product of a Householder sequence with a matrix.
-      * \param[in]  other  %Matrix being multiplied.
-      * \returns    Expression object representing the product.
-      *
-      * This function computes \f$ HM \f$ where \f$ H \f$ is the Householder sequence represented by \p *this
-      * and \f$ M \f$ is the matrix \p other.
-      */
-    template<typename OtherDerived>
-    typename internal::matrix_type_times_scalar_type<Scalar, OtherDerived>::Type operator*(const MatrixBase<OtherDerived>& other) const
-    {
-      typename internal::matrix_type_times_scalar_type<Scalar, OtherDerived>::Type
-        res(other.template cast<typename internal::matrix_type_times_scalar_type<Scalar,OtherDerived>::ResultScalar>());
-      applyThisOnTheLeft(res);
-      return res;
-    }
-
-    template<typename _VectorsType, typename _CoeffsType, int _Side> friend struct internal::hseq_side_dependent_impl;
-
-    /** \brief Sets the length of the Householder sequence.
-      * \param [in]  length  New value for the length.
-      *
-      * By default, the length \f$ n \f$ of the Householder sequence \f$ H = H_0 H_1 \ldots H_{n-1} \f$ is set
-      * to the number of columns of the matrix \p v passed to the constructor, or the number of rows if that
-      * is smaller. After this function is called, the length equals \p length.
-      *
-      * \sa length()
-      */
-    HouseholderSequence& setLength(Index length)
-    {
-      m_length = length;
-      return *this;
-    }
-
-    /** \brief Sets the shift of the Householder sequence.
-      * \param [in]  shift  New value for the shift.
-      *
-      * By default, a %HouseholderSequence object represents \f$ H = H_0 H_1 \ldots H_{n-1} \f$ and the i-th
-      * column of the matrix \p v passed to the constructor corresponds to the i-th Householder
-      * reflection. After this function is called, the object represents \f$ H = H_{\mathrm{shift}}
-      * H_{\mathrm{shift}+1} \ldots H_{n-1} \f$ and the i-th column of \p v corresponds to the (shift+i)-th
-      * Householder reflection.
-      *
-      * \sa shift()
-      */
-    HouseholderSequence& setShift(Index shift)
-    {
-      m_shift = shift;
-      return *this;
-    }
-
-    Index length() const { return m_length; }  /**< \brief Returns the length of the Householder sequence. */
-    Index shift() const { return m_shift; }    /**< \brief Returns the shift of the Householder sequence. */
-
-    /* Necessary for .adjoint() and .conjugate() */
-    template <typename VectorsType2, typename CoeffsType2, int Side2> friend class HouseholderSequence;
-
-  protected:
-
-    /** \brief Sets the transpose flag.
-      * \param [in]  trans  New value of the transpose flag.
-      *
-      * By default, the transpose flag is not set. If the transpose flag is set, then this object represents 
-      * \f$ H^T = H_{n-1}^T \ldots H_1^T H_0^T \f$ instead of \f$ H = H_0 H_1 \ldots H_{n-1} \f$.
-      *
-      * \sa trans()
-      */
-    HouseholderSequence& setTrans(bool trans)
-    {
-      m_trans = trans;
-      return *this;
-    }
-
-    bool trans() const { return m_trans; }     /**< \brief Returns the transpose flag. */
-
-    typename VectorsType::Nested m_vectors;
-    typename CoeffsType::Nested m_coeffs;
-    bool m_trans;
-    Index m_length;
-    Index m_shift;
-};
-
-/** \brief Computes the product of a matrix with a Householder sequence.
-  * \param[in]  other  %Matrix being multiplied.
-  * \param[in]  h      %HouseholderSequence being multiplied.
-  * \returns    Expression object representing the product.
-  *
-  * This function computes \f$ MH \f$ where \f$ M \f$ is the matrix \p other and \f$ H \f$ is the
-  * Householder sequence represented by \p h.
-  */
-template<typename OtherDerived, typename VectorsType, typename CoeffsType, int Side>
-typename internal::matrix_type_times_scalar_type<typename VectorsType::Scalar,OtherDerived>::Type operator*(const MatrixBase<OtherDerived>& other, const HouseholderSequence<VectorsType,CoeffsType,Side>& h)
-{
-  typename internal::matrix_type_times_scalar_type<typename VectorsType::Scalar,OtherDerived>::Type
-    res(other.template cast<typename internal::matrix_type_times_scalar_type<typename VectorsType::Scalar,OtherDerived>::ResultScalar>());
-  h.applyThisOnTheRight(res);
-  return res;
-}
-
-/** \ingroup Householder_Module \householder_module
-  * \brief Convenience function for constructing a Householder sequence. 
-  * \returns A HouseholderSequence constructed from the specified arguments.
-  */
-template<typename VectorsType, typename CoeffsType>
-HouseholderSequence<VectorsType,CoeffsType> householderSequence(const VectorsType& v, const CoeffsType& h)
-{
-  return HouseholderSequence<VectorsType,CoeffsType,OnTheLeft>(v, h);
-}
-
-/** \ingroup Householder_Module \householder_module
-  * \brief Convenience function for constructing a Householder sequence. 
-  * \returns A HouseholderSequence constructed from the specified arguments.
-  * \details This function differs from householderSequence() in that the template argument \p OnTheSide of
-  * the constructed HouseholderSequence is set to OnTheRight, instead of the default OnTheLeft.
-  */
-template<typename VectorsType, typename CoeffsType>
-HouseholderSequence<VectorsType,CoeffsType,OnTheRight> rightHouseholderSequence(const VectorsType& v, const CoeffsType& h)
-{
-  return HouseholderSequence<VectorsType,CoeffsType,OnTheRight>(v, h);
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_HOUSEHOLDER_SEQUENCE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h b/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
deleted file mode 100644
index 73ca9bf..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
+++ /dev/null
@@ -1,149 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_BASIC_PRECONDITIONERS_H
-#define EIGEN_BASIC_PRECONDITIONERS_H
-
-namespace Eigen { 
-
-/** \ingroup IterativeLinearSolvers_Module
-  * \brief A preconditioner based on the digonal entries
-  *
-  * This class allows to approximately solve for A.x = b problems assuming A is a diagonal matrix.
-  * In other words, this preconditioner neglects all off diagonal entries and, in Eigen's language, solves for:
-  * \code
-  * A.diagonal().asDiagonal() . x = b
-  * \endcode
-  *
-  * \tparam _Scalar the type of the scalar.
-  *
-  * This preconditioner is suitable for both selfadjoint and general problems.
-  * The diagonal entries are pre-inverted and stored into a dense vector.
-  *
-  * \note A variant that has yet to be implemented would attempt to preserve the norm of each column.
-  *
-  */
-template <typename _Scalar>
-class DiagonalPreconditioner
-{
-    typedef _Scalar Scalar;
-    typedef Matrix<Scalar,Dynamic,1> Vector;
-    typedef typename Vector::Index Index;
-
-  public:
-    // this typedef is only to export the scalar type and compile-time dimensions to solve_retval
-    typedef Matrix<Scalar,Dynamic,Dynamic> MatrixType;
-
-    DiagonalPreconditioner() : m_isInitialized(false) {}
-
-    template<typename MatType>
-    DiagonalPreconditioner(const MatType& mat) : m_invdiag(mat.cols())
-    {
-      compute(mat);
-    }
-
-    Index rows() const { return m_invdiag.size(); }
-    Index cols() const { return m_invdiag.size(); }
-    
-    template<typename MatType>
-    DiagonalPreconditioner& analyzePattern(const MatType& )
-    {
-      return *this;
-    }
-    
-    template<typename MatType>
-    DiagonalPreconditioner& factorize(const MatType& mat)
-    {
-      m_invdiag.resize(mat.cols());
-      for(int j=0; j<mat.outerSize(); ++j)
-      {
-        typename MatType::InnerIterator it(mat,j);
-        while(it && it.index()!=j) ++it;
-        if(it && it.index()==j)
-          m_invdiag(j) = Scalar(1)/it.value();
-        else
-          m_invdiag(j) = 0;
-      }
-      m_isInitialized = true;
-      return *this;
-    }
-    
-    template<typename MatType>
-    DiagonalPreconditioner& compute(const MatType& mat)
-    {
-      return factorize(mat);
-    }
-
-    template<typename Rhs, typename Dest>
-    void _solve(const Rhs& b, Dest& x) const
-    {
-      x = m_invdiag.array() * b.array() ;
-    }
-
-    template<typename Rhs> inline const internal::solve_retval<DiagonalPreconditioner, Rhs>
-    solve(const MatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "DiagonalPreconditioner is not initialized.");
-      eigen_assert(m_invdiag.size()==b.rows()
-                && "DiagonalPreconditioner::solve(): invalid number of rows of the right hand side matrix b");
-      return internal::solve_retval<DiagonalPreconditioner, Rhs>(*this, b.derived());
-    }
-
-  protected:
-    Vector m_invdiag;
-    bool m_isInitialized;
-};
-
-namespace internal {
-
-template<typename _MatrixType, typename Rhs>
-struct solve_retval<DiagonalPreconditioner<_MatrixType>, Rhs>
-  : solve_retval_base<DiagonalPreconditioner<_MatrixType>, Rhs>
-{
-  typedef DiagonalPreconditioner<_MatrixType> Dec;
-  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    dec()._solve(rhs(),dst);
-  }
-};
-
-}
-
-/** \ingroup IterativeLinearSolvers_Module
-  * \brief A naive preconditioner which approximates any matrix as the identity matrix
-  *
-  * \sa class DiagonalPreconditioner
-  */
-class IdentityPreconditioner
-{
-  public:
-
-    IdentityPreconditioner() {}
-
-    template<typename MatrixType>
-    IdentityPreconditioner(const MatrixType& ) {}
-    
-    template<typename MatrixType>
-    IdentityPreconditioner& analyzePattern(const MatrixType& ) { return *this; }
-    
-    template<typename MatrixType>
-    IdentityPreconditioner& factorize(const MatrixType& ) { return *this; }
-
-    template<typename MatrixType>
-    IdentityPreconditioner& compute(const MatrixType& ) { return *this; }
-    
-    template<typename Rhs>
-    inline const Rhs& solve(const Rhs& b) const { return b; }
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_BASIC_PRECONDITIONERS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h b/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
deleted file mode 100644
index fbefb69..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
+++ /dev/null
@@ -1,261 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_BICGSTAB_H
-#define EIGEN_BICGSTAB_H
-
-namespace Eigen { 
-
-namespace internal {
-
-/** \internal Low-level bi conjugate gradient stabilized algorithm
-  * \param mat The matrix A
-  * \param rhs The right hand side vector b
-  * \param x On input and initial solution, on output the computed solution.
-  * \param precond A preconditioner being able to efficiently solve for an
-  *                approximation of Ax=b (regardless of b)
-  * \param iters On input the max number of iteration, on output the number of performed iterations.
-  * \param tol_error On input the tolerance error, on output an estimation of the relative error.
-  * \return false in the case of numerical issue, for example a break down of BiCGSTAB. 
-  */
-template<typename MatrixType, typename Rhs, typename Dest, typename Preconditioner>
-bool bicgstab(const MatrixType& mat, const Rhs& rhs, Dest& x,
-              const Preconditioner& precond, int& iters,
-              typename Dest::RealScalar& tol_error)
-{
-  using std::sqrt;
-  using std::abs;
-  typedef typename Dest::RealScalar RealScalar;
-  typedef typename Dest::Scalar Scalar;
-  typedef Matrix<Scalar,Dynamic,1> VectorType;
-  RealScalar tol = tol_error;
-  int maxIters = iters;
-
-  int n = mat.cols();
-  x = precond.solve(x);
-  VectorType r  = rhs - mat * x;
-  VectorType r0 = r;
-  
-  RealScalar r0_sqnorm = rhs.squaredNorm();
-  if(r0_sqnorm == 0)
-  {
-    x.setZero();
-    return true;
-  }
-  Scalar rho    = 1;
-  Scalar alpha  = 1;
-  Scalar w      = 1;
-  
-  VectorType v = VectorType::Zero(n), p = VectorType::Zero(n);
-  VectorType y(n),  z(n);
-  VectorType kt(n), ks(n);
-
-  VectorType s(n), t(n);
-
-  RealScalar tol2 = tol*tol;
-  int i = 0;
-
-  while ( r.squaredNorm()/r0_sqnorm > tol2 && i<maxIters )
-  {
-    Scalar rho_old = rho;
-
-    rho = r0.dot(r);
-    if (rho == Scalar(0)) return false; /* New search directions cannot be found */
-    Scalar beta = (rho/rho_old) * (alpha / w);
-    p = r + beta * (p - w * v);
-    
-    y = precond.solve(p);
-    
-    v.noalias() = mat * y;
-
-    alpha = rho / r0.dot(v);
-    s = r - alpha * v;
-
-    z = precond.solve(s);
-    t.noalias() = mat * z;
-
-    w = t.dot(s) / t.squaredNorm();
-    x += alpha * y + w * z;
-    r = s - w * t;
-    ++i;
-  }
-  tol_error = sqrt(r.squaredNorm()/r0_sqnorm);
-  iters = i;
-  return true; 
-}
-
-}
-
-template< typename _MatrixType,
-          typename _Preconditioner = DiagonalPreconditioner<typename _MatrixType::Scalar> >
-class BiCGSTAB;
-
-namespace internal {
-
-template< typename _MatrixType, typename _Preconditioner>
-struct traits<BiCGSTAB<_MatrixType,_Preconditioner> >
-{
-  typedef _MatrixType MatrixType;
-  typedef _Preconditioner Preconditioner;
-};
-
-}
-
-/** \ingroup IterativeLinearSolvers_Module
-  * \brief A bi conjugate gradient stabilized solver for sparse square problems
-  *
-  * This class allows to solve for A.x = b sparse linear problems using a bi conjugate gradient
-  * stabilized algorithm. The vectors x and b can be either dense or sparse.
-  *
-  * \tparam _MatrixType the type of the sparse matrix A, can be a dense or a sparse matrix.
-  * \tparam _Preconditioner the type of the preconditioner. Default is DiagonalPreconditioner
-  *
-  * The maximal number of iterations and tolerance value can be controlled via the setMaxIterations()
-  * and setTolerance() methods. The defaults are the size of the problem for the maximal number of iterations
-  * and NumTraits<Scalar>::epsilon() for the tolerance.
-  * 
-  * This class can be used as the direct solver classes. Here is a typical usage example:
-  * \code
-  * int n = 10000;
-  * VectorXd x(n), b(n);
-  * SparseMatrix<double> A(n,n);
-  * // fill A and b
-  * BiCGSTAB<SparseMatrix<double> > solver;
-  * solver(A);
-  * x = solver.solve(b);
-  * std::cout << "#iterations:     " << solver.iterations() << std::endl;
-  * std::cout << "estimated error: " << solver.error()      << std::endl;
-  * // update b, and solve again
-  * x = solver.solve(b);
-  * \endcode
-  * 
-  * By default the iterations start with x=0 as an initial guess of the solution.
-  * One can control the start using the solveWithGuess() method. Here is a step by
-  * step execution example starting with a random guess and printing the evolution
-  * of the estimated error:
-  * * \code
-  * x = VectorXd::Random(n);
-  * solver.setMaxIterations(1);
-  * int i = 0;
-  * do {
-  *   x = solver.solveWithGuess(b,x);
-  *   std::cout << i << " : " << solver.error() << std::endl;
-  *   ++i;
-  * } while (solver.info()!=Success && i<100);
-  * \endcode
-  * Note that such a step by step excution is slightly slower.
-  * 
-  * \sa class SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
-  */
-template< typename _MatrixType, typename _Preconditioner>
-class BiCGSTAB : public IterativeSolverBase<BiCGSTAB<_MatrixType,_Preconditioner> >
-{
-  typedef IterativeSolverBase<BiCGSTAB> Base;
-  using Base::mp_matrix;
-  using Base::m_error;
-  using Base::m_iterations;
-  using Base::m_info;
-  using Base::m_isInitialized;
-public:
-  typedef _MatrixType MatrixType;
-  typedef typename MatrixType::Scalar Scalar;
-  typedef typename MatrixType::Index Index;
-  typedef typename MatrixType::RealScalar RealScalar;
-  typedef _Preconditioner Preconditioner;
-
-public:
-
-  /** Default constructor. */
-  BiCGSTAB() : Base() {}
-
-  /** Initialize the solver with matrix \a A for further \c Ax=b solving.
-    * 
-    * This constructor is a shortcut for the default constructor followed
-    * by a call to compute().
-    * 
-    * \warning this class stores a reference to the matrix A as well as some
-    * precomputed values that depend on it. Therefore, if \a A is changed
-    * this class becomes invalid. Call compute() to update it with the new
-    * matrix A, or modify a copy of A.
-    */
-  BiCGSTAB(const MatrixType& A) : Base(A) {}
-
-  ~BiCGSTAB() {}
-  
-  /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A
-    * \a x0 as an initial solution.
-    *
-    * \sa compute()
-    */
-  template<typename Rhs,typename Guess>
-  inline const internal::solve_retval_with_guess<BiCGSTAB, Rhs, Guess>
-  solveWithGuess(const MatrixBase<Rhs>& b, const Guess& x0) const
-  {
-    eigen_assert(m_isInitialized && "BiCGSTAB is not initialized.");
-    eigen_assert(Base::rows()==b.rows()
-              && "BiCGSTAB::solve(): invalid number of rows of the right hand side matrix b");
-    return internal::solve_retval_with_guess
-            <BiCGSTAB, Rhs, Guess>(*this, b.derived(), x0);
-  }
-  
-  /** \internal */
-  template<typename Rhs,typename Dest>
-  void _solveWithGuess(const Rhs& b, Dest& x) const
-  {    
-    bool failed = false;
-    for(int j=0; j<b.cols(); ++j)
-    {
-      m_iterations = Base::maxIterations();
-      m_error = Base::m_tolerance;
-      
-      typename Dest::ColXpr xj(x,j);
-      if(!internal::bicgstab(*mp_matrix, b.col(j), xj, Base::m_preconditioner, m_iterations, m_error))
-        failed = true;
-    }
-    m_info = failed ? NumericalIssue
-           : m_error <= Base::m_tolerance ? Success
-           : NoConvergence;
-    m_isInitialized = true;
-  }
-
-  /** \internal */
-  template<typename Rhs,typename Dest>
-  void _solve(const Rhs& b, Dest& x) const
-  {
-//     x.setZero();
-  x = b;
-    _solveWithGuess(b,x);
-  }
-
-protected:
-
-};
-
-
-namespace internal {
-
-  template<typename _MatrixType, typename _Preconditioner, typename Rhs>
-struct solve_retval<BiCGSTAB<_MatrixType, _Preconditioner>, Rhs>
-  : solve_retval_base<BiCGSTAB<_MatrixType, _Preconditioner>, Rhs>
-{
-  typedef BiCGSTAB<_MatrixType, _Preconditioner> Dec;
-  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    dec()._solve(rhs(),dst);
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_BICGSTAB_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h b/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
deleted file mode 100644
index 00b5647..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
+++ /dev/null
@@ -1,265 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_CONJUGATE_GRADIENT_H
-#define EIGEN_CONJUGATE_GRADIENT_H
-
-namespace Eigen { 
-
-namespace internal {
-
-/** \internal Low-level conjugate gradient algorithm
-  * \param mat The matrix A
-  * \param rhs The right hand side vector b
-  * \param x On input and initial solution, on output the computed solution.
-  * \param precond A preconditioner being able to efficiently solve for an
-  *                approximation of Ax=b (regardless of b)
-  * \param iters On input the max number of iteration, on output the number of performed iterations.
-  * \param tol_error On input the tolerance error, on output an estimation of the relative error.
-  */
-template<typename MatrixType, typename Rhs, typename Dest, typename Preconditioner>
-EIGEN_DONT_INLINE
-void conjugate_gradient(const MatrixType& mat, const Rhs& rhs, Dest& x,
-                        const Preconditioner& precond, int& iters,
-                        typename Dest::RealScalar& tol_error)
-{
-  using std::sqrt;
-  using std::abs;
-  typedef typename Dest::RealScalar RealScalar;
-  typedef typename Dest::Scalar Scalar;
-  typedef Matrix<Scalar,Dynamic,1> VectorType;
-  
-  RealScalar tol = tol_error;
-  int maxIters = iters;
-  
-  int n = mat.cols();
-
-  VectorType residual = rhs - mat * x; //initial residual
-
-  RealScalar rhsNorm2 = rhs.squaredNorm();
-  if(rhsNorm2 == 0) 
-  {
-    x.setZero();
-    iters = 0;
-    tol_error = 0;
-    return;
-  }
-  RealScalar threshold = tol*tol*rhsNorm2;
-  RealScalar residualNorm2 = residual.squaredNorm();
-  if (residualNorm2 < threshold)
-  {
-    iters = 0;
-    tol_error = sqrt(residualNorm2 / rhsNorm2);
-    return;
-  }
-  
-  VectorType p(n);
-  p = precond.solve(residual);      //initial search direction
-
-  VectorType z(n), tmp(n);
-  RealScalar absNew = internal::real(residual.dot(p));  // the square of the absolute value of r scaled by invM
-  int i = 0;
-  while(i < maxIters)
-  {
-    tmp.noalias() = mat * p;              // the bottleneck of the algorithm
-
-    Scalar alpha = absNew / p.dot(tmp);   // the amount we travel on dir
-    x += alpha * p;                       // update solution
-    residual -= alpha * tmp;              // update residue
-    
-    residualNorm2 = residual.squaredNorm();
-    if(residualNorm2 < threshold)
-      break;
-    
-    z = precond.solve(residual);          // approximately solve for "A z = residual"
-
-    RealScalar absOld = absNew;
-    absNew = internal::real(residual.dot(z));     // update the absolute value of r
-    RealScalar beta = absNew / absOld;            // calculate the Gram-Schmidt value used to create the new search direction
-    p = z + beta * p;                             // update search direction
-    i++;
-  }
-  tol_error = sqrt(residualNorm2 / rhsNorm2);
-  iters = i;
-}
-
-}
-
-template< typename _MatrixType, int _UpLo=Lower,
-          typename _Preconditioner = DiagonalPreconditioner<typename _MatrixType::Scalar> >
-class ConjugateGradient;
-
-namespace internal {
-
-template< typename _MatrixType, int _UpLo, typename _Preconditioner>
-struct traits<ConjugateGradient<_MatrixType,_UpLo,_Preconditioner> >
-{
-  typedef _MatrixType MatrixType;
-  typedef _Preconditioner Preconditioner;
-};
-
-}
-
-/** \ingroup IterativeLinearSolvers_Module
-  * \brief A conjugate gradient solver for sparse self-adjoint problems
-  *
-  * This class allows to solve for A.x = b sparse linear problems using a conjugate gradient algorithm.
-  * The sparse matrix A must be selfadjoint. The vectors x and b can be either dense or sparse.
-  *
-  * \tparam _MatrixType the type of the sparse matrix A, can be a dense or a sparse matrix.
-  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
-  *               or Upper. Default is Lower.
-  * \tparam _Preconditioner the type of the preconditioner. Default is DiagonalPreconditioner
-  *
-  * The maximal number of iterations and tolerance value can be controlled via the setMaxIterations()
-  * and setTolerance() methods. The defaults are the size of the problem for the maximal number of iterations
-  * and NumTraits<Scalar>::epsilon() for the tolerance.
-  * 
-  * This class can be used as the direct solver classes. Here is a typical usage example:
-  * \code
-  * int n = 10000;
-  * VectorXd x(n), b(n);
-  * SparseMatrix<double> A(n,n);
-  * // fill A and b
-  * ConjugateGradient<SparseMatrix<double> > cg;
-  * cg.compute(A);
-  * x = cg.solve(b);
-  * std::cout << "#iterations:     " << cg.iterations() << std::endl;
-  * std::cout << "estimated error: " << cg.error()      << std::endl;
-  * // update b, and solve again
-  * x = cg.solve(b);
-  * \endcode
-  * 
-  * By default the iterations start with x=0 as an initial guess of the solution.
-  * One can control the start using the solveWithGuess() method. Here is a step by
-  * step execution example starting with a random guess and printing the evolution
-  * of the estimated error:
-  * * \code
-  * x = VectorXd::Random(n);
-  * cg.setMaxIterations(1);
-  * int i = 0;
-  * do {
-  *   x = cg.solveWithGuess(b,x);
-  *   std::cout << i << " : " << cg.error() << std::endl;
-  *   ++i;
-  * } while (cg.info()!=Success && i<100);
-  * \endcode
-  * Note that such a step by step excution is slightly slower.
-  * 
-  * \sa class SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
-  */
-template< typename _MatrixType, int _UpLo, typename _Preconditioner>
-class ConjugateGradient : public IterativeSolverBase<ConjugateGradient<_MatrixType,_UpLo,_Preconditioner> >
-{
-  typedef IterativeSolverBase<ConjugateGradient> Base;
-  using Base::mp_matrix;
-  using Base::m_error;
-  using Base::m_iterations;
-  using Base::m_info;
-  using Base::m_isInitialized;
-public:
-  typedef _MatrixType MatrixType;
-  typedef typename MatrixType::Scalar Scalar;
-  typedef typename MatrixType::Index Index;
-  typedef typename MatrixType::RealScalar RealScalar;
-  typedef _Preconditioner Preconditioner;
-
-  enum {
-    UpLo = _UpLo
-  };
-
-public:
-
-  /** Default constructor. */
-  ConjugateGradient() : Base() {}
-
-  /** Initialize the solver with matrix \a A for further \c Ax=b solving.
-    * 
-    * This constructor is a shortcut for the default constructor followed
-    * by a call to compute().
-    * 
-    * \warning this class stores a reference to the matrix A as well as some
-    * precomputed values that depend on it. Therefore, if \a A is changed
-    * this class becomes invalid. Call compute() to update it with the new
-    * matrix A, or modify a copy of A.
-    */
-  ConjugateGradient(const MatrixType& A) : Base(A) {}
-
-  ~ConjugateGradient() {}
-  
-  /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A
-    * \a x0 as an initial solution.
-    *
-    * \sa compute()
-    */
-  template<typename Rhs,typename Guess>
-  inline const internal::solve_retval_with_guess<ConjugateGradient, Rhs, Guess>
-  solveWithGuess(const MatrixBase<Rhs>& b, const Guess& x0) const
-  {
-    eigen_assert(m_isInitialized && "ConjugateGradient is not initialized.");
-    eigen_assert(Base::rows()==b.rows()
-              && "ConjugateGradient::solve(): invalid number of rows of the right hand side matrix b");
-    return internal::solve_retval_with_guess
-            <ConjugateGradient, Rhs, Guess>(*this, b.derived(), x0);
-  }
-
-  /** \internal */
-  template<typename Rhs,typename Dest>
-  void _solveWithGuess(const Rhs& b, Dest& x) const
-  {
-    m_iterations = Base::maxIterations();
-    m_error = Base::m_tolerance;
-
-    for(int j=0; j<b.cols(); ++j)
-    {
-      m_iterations = Base::maxIterations();
-      m_error = Base::m_tolerance;
-
-      typename Dest::ColXpr xj(x,j);
-      internal::conjugate_gradient(mp_matrix->template selfadjointView<UpLo>(), b.col(j), xj,
-                                   Base::m_preconditioner, m_iterations, m_error);
-    }
-
-    m_isInitialized = true;
-    m_info = m_error <= Base::m_tolerance ? Success : NoConvergence;
-  }
-  
-  /** \internal */
-  template<typename Rhs,typename Dest>
-  void _solve(const Rhs& b, Dest& x) const
-  {
-    x.setOnes();
-    _solveWithGuess(b,x);
-  }
-
-protected:
-
-};
-
-
-namespace internal {
-
-template<typename _MatrixType, int _UpLo, typename _Preconditioner, typename Rhs>
-struct solve_retval<ConjugateGradient<_MatrixType,_UpLo,_Preconditioner>, Rhs>
-  : solve_retval_base<ConjugateGradient<_MatrixType,_UpLo,_Preconditioner>, Rhs>
-{
-  typedef ConjugateGradient<_MatrixType,_UpLo,_Preconditioner> Dec;
-  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    dec()._solve(rhs(),dst);
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_CONJUGATE_GRADIENT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h b/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
deleted file mode 100644
index 17d18ef..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
+++ /dev/null
@@ -1,468 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_INCOMPLETE_LUT_H
-#define EIGEN_INCOMPLETE_LUT_H
-
-
-namespace Eigen { 
-
-namespace internal {
-    
-/** \internal
-  * Compute a quick-sort split of a vector 
-  * On output, the vector row is permuted such that its elements satisfy
-  * abs(row(i)) >= abs(row(ncut)) if i<ncut
-  * abs(row(i)) <= abs(row(ncut)) if i>ncut 
-  * \param row The vector of values
-  * \param ind The array of index for the elements in @p row
-  * \param ncut  The number of largest elements to keep
-  **/ 
-template <typename VectorV, typename VectorI, typename Index>
-Index QuickSplit(VectorV &row, VectorI &ind, Index ncut)
-{
-  typedef typename VectorV::RealScalar RealScalar;
-  using std::swap;
-  using std::abs;
-  Index mid;
-  Index n = row.size(); /* length of the vector */
-  Index first, last ;
-  
-  ncut--; /* to fit the zero-based indices */
-  first = 0; 
-  last = n-1; 
-  if (ncut < first || ncut > last ) return 0;
-  
-  do {
-    mid = first; 
-    RealScalar abskey = abs(row(mid)); 
-    for (Index j = first + 1; j <= last; j++) {
-      if ( abs(row(j)) > abskey) {
-        ++mid;
-        swap(row(mid), row(j));
-        swap(ind(mid), ind(j));
-      }
-    }
-    /* Interchange for the pivot element */
-    swap(row(mid), row(first));
-    swap(ind(mid), ind(first));
-    
-    if (mid > ncut) last = mid - 1;
-    else if (mid < ncut ) first = mid + 1; 
-  } while (mid != ncut );
-  
-  return 0; /* mid is equal to ncut */ 
-}
-
-}// end namespace internal
-
-/** \ingroup IterativeLinearSolvers_Module
-  * \class IncompleteLUT
-  * \brief Incomplete LU factorization with dual-threshold strategy
-  *
-  * During the numerical factorization, two dropping rules are used :
-  *  1) any element whose magnitude is less than some tolerance is dropped.
-  *    This tolerance is obtained by multiplying the input tolerance @p droptol 
-  *    by the average magnitude of all the original elements in the current row.
-  *  2) After the elimination of the row, only the @p fill largest elements in 
-  *    the L part and the @p fill largest elements in the U part are kept 
-  *    (in addition to the diagonal element ). Note that @p fill is computed from 
-  *    the input parameter @p fillfactor which is used the ratio to control the fill_in 
-  *    relatively to the initial number of nonzero elements.
-  * 
-  * The two extreme cases are when @p droptol=0 (to keep all the @p fill*2 largest elements)
-  * and when @p fill=n/2 with @p droptol being different to zero. 
-  * 
-  * References : Yousef Saad, ILUT: A dual threshold incomplete LU factorization, 
-  *              Numerical Linear Algebra with Applications, 1(4), pp 387-402, 1994.
-  * 
-  * NOTE : The following implementation is derived from the ILUT implementation
-  * in the SPARSKIT package, Copyright (C) 2005, the Regents of the University of Minnesota 
-  *  released under the terms of the GNU LGPL: 
-  *    http://www-users.cs.umn.edu/~saad/software/SPARSKIT/README
-  * However, Yousef Saad gave us permission to relicense his ILUT code to MPL2.
-  * See the Eigen mailing list archive, thread: ILUT, date: July 8, 2012:
-  *   http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2012/07/msg00064.html
-  * alternatively, on GMANE:
-  *   http://comments.gmane.org/gmane.comp.lib.eigen/3302
-  */
-template <typename _Scalar>
-class IncompleteLUT : internal::noncopyable
-{
-    typedef _Scalar Scalar;
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-    typedef Matrix<Scalar,Dynamic,1> Vector;
-    typedef SparseMatrix<Scalar,RowMajor> FactorType;
-    typedef SparseMatrix<Scalar,ColMajor> PermutType;
-    typedef typename FactorType::Index Index;
-
-  public:
-    typedef Matrix<Scalar,Dynamic,Dynamic> MatrixType;
-    
-    IncompleteLUT()
-      : m_droptol(NumTraits<Scalar>::dummy_precision()), m_fillfactor(10),
-        m_analysisIsOk(false), m_factorizationIsOk(false), m_isInitialized(false)
-    {}
-    
-    template<typename MatrixType>
-    IncompleteLUT(const MatrixType& mat, const RealScalar& droptol=NumTraits<Scalar>::dummy_precision(), int fillfactor = 10)
-      : m_droptol(droptol),m_fillfactor(fillfactor),
-        m_analysisIsOk(false),m_factorizationIsOk(false),m_isInitialized(false)
-    {
-      eigen_assert(fillfactor != 0);
-      compute(mat); 
-    }
-    
-    Index rows() const { return m_lu.rows(); }
-    
-    Index cols() const { return m_lu.cols(); }
-
-    /** \brief Reports whether previous computation was successful.
-      *
-      * \returns \c Success if computation was succesful,
-      *          \c NumericalIssue if the matrix.appears to be negative.
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "IncompleteLUT is not initialized.");
-      return m_info;
-    }
-    
-    template<typename MatrixType>
-    void analyzePattern(const MatrixType& amat);
-    
-    template<typename MatrixType>
-    void factorize(const MatrixType& amat);
-    
-    /**
-      * Compute an incomplete LU factorization with dual threshold on the matrix mat
-      * No pivoting is done in this version
-      * 
-      **/
-    template<typename MatrixType>
-    IncompleteLUT<Scalar>& compute(const MatrixType& amat)
-    {
-      analyzePattern(amat); 
-      factorize(amat);
-      eigen_assert(m_factorizationIsOk == true); 
-      m_isInitialized = true;
-      return *this;
-    }
-
-    void setDroptol(const RealScalar& droptol); 
-    void setFillfactor(int fillfactor); 
-    
-    template<typename Rhs, typename Dest>
-    void _solve(const Rhs& b, Dest& x) const
-    {
-      x = m_Pinv * b;  
-      x = m_lu.template triangularView<UnitLower>().solve(x);
-      x = m_lu.template triangularView<Upper>().solve(x);
-      x = m_P * x; 
-    }
-
-    template<typename Rhs> inline const internal::solve_retval<IncompleteLUT, Rhs>
-     solve(const MatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "IncompleteLUT is not initialized.");
-      eigen_assert(cols()==b.rows()
-                && "IncompleteLUT::solve(): invalid number of rows of the right hand side matrix b");
-      return internal::solve_retval<IncompleteLUT, Rhs>(*this, b.derived());
-    }
-
-protected:
-
-    /** keeps off-diagonal entries; drops diagonal entries */
-    struct keep_diag {
-      inline bool operator() (const Index& row, const Index& col, const Scalar&) const
-      {
-        return row!=col;
-      }
-    };
-
-protected:
-
-    FactorType m_lu;
-    RealScalar m_droptol;
-    int m_fillfactor;
-    bool m_analysisIsOk;
-    bool m_factorizationIsOk;
-    bool m_isInitialized;
-    ComputationInfo m_info;
-    PermutationMatrix<Dynamic,Dynamic,Index> m_P;     // Fill-reducing permutation
-    PermutationMatrix<Dynamic,Dynamic,Index> m_Pinv;  // Inverse permutation
-};
-
-/**
- * Set control parameter droptol
- *  \param droptol   Drop any element whose magnitude is less than this tolerance 
- **/ 
-template<typename Scalar>
-void IncompleteLUT<Scalar>::setDroptol(const RealScalar& droptol)
-{
-  this->m_droptol = droptol;   
-}
-
-/**
- * Set control parameter fillfactor
- * \param fillfactor  This is used to compute the  number @p fill_in of largest elements to keep on each row. 
- **/ 
-template<typename Scalar>
-void IncompleteLUT<Scalar>::setFillfactor(int fillfactor)
-{
-  this->m_fillfactor = fillfactor;   
-}
-
-template <typename Scalar>
-template<typename _MatrixType>
-void IncompleteLUT<Scalar>::analyzePattern(const _MatrixType& amat)
-{
-  // Compute the Fill-reducing permutation
-  SparseMatrix<Scalar,ColMajor, Index> mat1 = amat;
-  SparseMatrix<Scalar,ColMajor, Index> mat2 = amat.transpose();
-  // Symmetrize the pattern
-  // FIXME for a matrix with nearly symmetric pattern, mat2+mat1 is the appropriate choice.
-  //       on the other hand for a really non-symmetric pattern, mat2*mat1 should be prefered...
-  SparseMatrix<Scalar,ColMajor, Index> AtA = mat2 + mat1;
-  AtA.prune(keep_diag());
-  internal::minimum_degree_ordering<Scalar, Index>(AtA, m_P);  // Then compute the AMD ordering...
-
-  m_Pinv  = m_P.inverse(); // ... and the inverse permutation
-
-  m_analysisIsOk = true;
-}
-
-template <typename Scalar>
-template<typename _MatrixType>
-void IncompleteLUT<Scalar>::factorize(const _MatrixType& amat)
-{
-  using std::sqrt;
-  using std::swap;
-  using std::abs;
-
-  eigen_assert((amat.rows() == amat.cols()) && "The factorization should be done on a square matrix");
-  Index n = amat.cols();  // Size of the matrix
-  m_lu.resize(n,n);
-  // Declare Working vectors and variables
-  Vector u(n) ;     // real values of the row -- maximum size is n --
-  VectorXi ju(n);   // column position of the values in u -- maximum size  is n
-  VectorXi jr(n);   // Indicate the position of the nonzero elements in the vector u -- A zero location is indicated by -1
-
-  // Apply the fill-reducing permutation
-  eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
-  SparseMatrix<Scalar,RowMajor, Index> mat;
-  mat = amat.twistedBy(m_Pinv);
-
-  // Initialization
-  jr.fill(-1);
-  ju.fill(0);
-  u.fill(0);
-
-  // number of largest elements to keep in each row:
-  Index fill_in =   static_cast<Index> (amat.nonZeros()*m_fillfactor)/n+1;
-  if (fill_in > n) fill_in = n;
-
-  // number of largest nonzero elements to keep in the L and the U part of the current row:
-  Index nnzL = fill_in/2;
-  Index nnzU = nnzL;
-  m_lu.reserve(n * (nnzL + nnzU + 1));
-
-  // global loop over the rows of the sparse matrix
-  for (Index ii = 0; ii < n; ii++)
-  {
-    // 1 - copy the lower and the upper part of the row i of mat in the working vector u
-
-    Index sizeu = 1; // number of nonzero elements in the upper part of the current row
-    Index sizel = 0; // number of nonzero elements in the lower part of the current row
-    ju(ii)    = ii;
-    u(ii)     = 0;
-    jr(ii)    = ii;
-    RealScalar rownorm = 0;
-
-    typename FactorType::InnerIterator j_it(mat, ii); // Iterate through the current row ii
-    for (; j_it; ++j_it)
-    {
-      Index k = j_it.index();
-      if (k < ii)
-      {
-        // copy the lower part
-        ju(sizel) = k;
-        u(sizel) = j_it.value();
-        jr(k) = sizel;
-        ++sizel;
-      }
-      else if (k == ii)
-      {
-        u(ii) = j_it.value();
-      }
-      else
-      {
-        // copy the upper part
-        Index jpos = ii + sizeu;
-        ju(jpos) = k;
-        u(jpos) = j_it.value();
-        jr(k) = jpos;
-        ++sizeu;
-      }
-      rownorm += internal::abs2(j_it.value());
-    }
-
-    // 2 - detect possible zero row
-    if(rownorm==0)
-    {
-      m_info = NumericalIssue;
-      return;
-    }
-    // Take the 2-norm of the current row as a relative tolerance
-    rownorm = sqrt(rownorm);
-
-    // 3 - eliminate the previous nonzero rows
-    Index jj = 0;
-    Index len = 0;
-    while (jj < sizel)
-    {
-      // In order to eliminate in the correct order,
-      // we must select first the smallest column index among  ju(jj:sizel)
-      Index k;
-      Index minrow = ju.segment(jj,sizel-jj).minCoeff(&k); // k is relative to the segment
-      k += jj;
-      if (minrow != ju(jj))
-      {
-        // swap the two locations
-        Index j = ju(jj);
-        swap(ju(jj), ju(k));
-        jr(minrow) = jj;   jr(j) = k;
-        swap(u(jj), u(k));
-      }
-      // Reset this location
-      jr(minrow) = -1;
-
-      // Start elimination
-      typename FactorType::InnerIterator ki_it(m_lu, minrow);
-      while (ki_it && ki_it.index() < minrow) ++ki_it;
-      eigen_internal_assert(ki_it && ki_it.col()==minrow);
-      Scalar fact = u(jj) / ki_it.value();
-
-      // drop too small elements
-      if(abs(fact) <= m_droptol)
-      {
-        jj++;
-        continue;
-      }
-
-      // linear combination of the current row ii and the row minrow
-      ++ki_it;
-      for (; ki_it; ++ki_it)
-      {
-        Scalar prod = fact * ki_it.value();
-        Index j       = ki_it.index();
-        Index jpos    = jr(j);
-        if (jpos == -1) // fill-in element
-        {
-          Index newpos;
-          if (j >= ii) // dealing with the upper part
-          {
-            newpos = ii + sizeu;
-            sizeu++;
-            eigen_internal_assert(sizeu<=n);
-          }
-          else // dealing with the lower part
-          {
-            newpos = sizel;
-            sizel++;
-            eigen_internal_assert(sizel<=ii);
-          }
-          ju(newpos) = j;
-          u(newpos) = -prod;
-          jr(j) = newpos;
-        }
-        else
-          u(jpos) -= prod;
-      }
-      // store the pivot element
-      u(len) = fact;
-      ju(len) = minrow;
-      ++len;
-
-      jj++;
-    } // end of the elimination on the row ii
-
-    // reset the upper part of the pointer jr to zero
-    for(Index k = 0; k <sizeu; k++) jr(ju(ii+k)) = -1;
-
-    // 4 - partially sort and insert the elements in the m_lu matrix
-
-    // sort the L-part of the row
-    sizel = len;
-    len = (std::min)(sizel, nnzL);
-    typename Vector::SegmentReturnType ul(u.segment(0, sizel));
-    typename VectorXi::SegmentReturnType jul(ju.segment(0, sizel));
-    internal::QuickSplit(ul, jul, len);
-
-    // store the largest m_fill elements of the L part
-    m_lu.startVec(ii);
-    for(Index k = 0; k < len; k++)
-      m_lu.insertBackByOuterInnerUnordered(ii,ju(k)) = u(k);
-
-    // store the diagonal element
-    // apply a shifting rule to avoid zero pivots (we are doing an incomplete factorization)
-    if (u(ii) == Scalar(0))
-      u(ii) = sqrt(m_droptol) * rownorm;
-    m_lu.insertBackByOuterInnerUnordered(ii, ii) = u(ii);
-
-    // sort the U-part of the row
-    // apply the dropping rule first
-    len = 0;
-    for(Index k = 1; k < sizeu; k++)
-    {
-      if(abs(u(ii+k)) > m_droptol * rownorm )
-      {
-        ++len;
-        u(ii + len)  = u(ii + k);
-        ju(ii + len) = ju(ii + k);
-      }
-    }
-    sizeu = len + 1; // +1 to take into account the diagonal element
-    len = (std::min)(sizeu, nnzU);
-    typename Vector::SegmentReturnType uu(u.segment(ii+1, sizeu-1));
-    typename VectorXi::SegmentReturnType juu(ju.segment(ii+1, sizeu-1));
-    internal::QuickSplit(uu, juu, len);
-
-    // store the largest elements of the U part
-    for(Index k = ii + 1; k < ii + len; k++)
-      m_lu.insertBackByOuterInnerUnordered(ii,ju(k)) = u(k);
-  }
-
-  m_lu.finalize();
-  m_lu.makeCompressed();
-
-  m_factorizationIsOk = true;
-  m_info = Success;
-}
-
-namespace internal {
-
-template<typename _MatrixType, typename Rhs>
-struct solve_retval<IncompleteLUT<_MatrixType>, Rhs>
-  : solve_retval_base<IncompleteLUT<_MatrixType>, Rhs>
-{
-  typedef IncompleteLUT<_MatrixType> Dec;
-  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    dec()._solve(rhs(),dst);
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_INCOMPLETE_LUT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h b/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
deleted file mode 100644
index 2036922..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
+++ /dev/null
@@ -1,254 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_ITERATIVE_SOLVER_BASE_H
-#define EIGEN_ITERATIVE_SOLVER_BASE_H
-
-namespace Eigen { 
-
-/** \ingroup IterativeLinearSolvers_Module
-  * \brief Base class for linear iterative solvers
-  *
-  * \sa class SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
-  */
-template< typename Derived>
-class IterativeSolverBase : internal::noncopyable
-{
-public:
-  typedef typename internal::traits<Derived>::MatrixType MatrixType;
-  typedef typename internal::traits<Derived>::Preconditioner Preconditioner;
-  typedef typename MatrixType::Scalar Scalar;
-  typedef typename MatrixType::Index Index;
-  typedef typename MatrixType::RealScalar RealScalar;
-
-public:
-
-  Derived& derived() { return *static_cast<Derived*>(this); }
-  const Derived& derived() const { return *static_cast<const Derived*>(this); }
-
-  /** Default constructor. */
-  IterativeSolverBase()
-    : mp_matrix(0)
-  {
-    init();
-  }
-
-  /** Initialize the solver with matrix \a A for further \c Ax=b solving.
-    * 
-    * This constructor is a shortcut for the default constructor followed
-    * by a call to compute().
-    * 
-    * \warning this class stores a reference to the matrix A as well as some
-    * precomputed values that depend on it. Therefore, if \a A is changed
-    * this class becomes invalid. Call compute() to update it with the new
-    * matrix A, or modify a copy of A.
-    */
-  IterativeSolverBase(const MatrixType& A)
-  {
-    init();
-    compute(A);
-  }
-
-  ~IterativeSolverBase() {}
-  
-  /** Initializes the iterative solver for the sparcity pattern of the matrix \a A for further solving \c Ax=b problems.
-    *
-    * Currently, this function mostly call analyzePattern on the preconditioner. In the future
-    * we might, for instance, implement column reodering for faster matrix vector products.
-    */
-  Derived& analyzePattern(const MatrixType& A)
-  {
-    m_preconditioner.analyzePattern(A);
-    m_isInitialized = true;
-    m_analysisIsOk = true;
-    m_info = Success;
-    return derived();
-  }
-  
-  /** Initializes the iterative solver with the numerical values of the matrix \a A for further solving \c Ax=b problems.
-    *
-    * Currently, this function mostly call factorize on the preconditioner.
-    *
-    * \warning this class stores a reference to the matrix A as well as some
-    * precomputed values that depend on it. Therefore, if \a A is changed
-    * this class becomes invalid. Call compute() to update it with the new
-    * matrix A, or modify a copy of A.
-    */
-  Derived& factorize(const MatrixType& A)
-  {
-    eigen_assert(m_analysisIsOk && "You must first call analyzePattern()"); 
-    mp_matrix = &A;
-    m_preconditioner.factorize(A);
-    m_factorizationIsOk = true;
-    m_info = Success;
-    return derived();
-  }
-
-  /** Initializes the iterative solver with the matrix \a A for further solving \c Ax=b problems.
-    *
-    * Currently, this function mostly initialized/compute the preconditioner. In the future
-    * we might, for instance, implement column reodering for faster matrix vector products.
-    *
-    * \warning this class stores a reference to the matrix A as well as some
-    * precomputed values that depend on it. Therefore, if \a A is changed
-    * this class becomes invalid. Call compute() to update it with the new
-    * matrix A, or modify a copy of A.
-    */
-  Derived& compute(const MatrixType& A)
-  {
-    mp_matrix = &A;
-    m_preconditioner.compute(A);
-    m_isInitialized = true;
-    m_analysisIsOk = true;
-    m_factorizationIsOk = true;
-    m_info = Success;
-    return derived();
-  }
-
-  /** \internal */
-  Index rows() const { return mp_matrix ? mp_matrix->rows() : 0; }
-  /** \internal */
-  Index cols() const { return mp_matrix ? mp_matrix->cols() : 0; }
-
-  /** \returns the tolerance threshold used by the stopping criteria */
-  RealScalar tolerance() const { return m_tolerance; }
-  
-  /** Sets the tolerance threshold used by the stopping criteria */
-  Derived& setTolerance(const RealScalar& tolerance)
-  {
-    m_tolerance = tolerance;
-    return derived();
-  }
-
-  /** \returns a read-write reference to the preconditioner for custom configuration. */
-  Preconditioner& preconditioner() { return m_preconditioner; }
-  
-  /** \returns a read-only reference to the preconditioner. */
-  const Preconditioner& preconditioner() const { return m_preconditioner; }
-
-  /** \returns the max number of iterations */
-  int maxIterations() const
-  {
-    return (mp_matrix && m_maxIterations<0) ? mp_matrix->cols() : m_maxIterations;
-  }
-  
-  /** Sets the max number of iterations */
-  Derived& setMaxIterations(int maxIters)
-  {
-    m_maxIterations = maxIters;
-    return derived();
-  }
-
-  /** \returns the number of iterations performed during the last solve */
-  int iterations() const
-  {
-    eigen_assert(m_isInitialized && "ConjugateGradient is not initialized.");
-    return m_iterations;
-  }
-
-  /** \returns the tolerance error reached during the last solve */
-  RealScalar error() const
-  {
-    eigen_assert(m_isInitialized && "ConjugateGradient is not initialized.");
-    return m_error;
-  }
-
-  /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
-    *
-    * \sa compute()
-    */
-  template<typename Rhs> inline const internal::solve_retval<Derived, Rhs>
-  solve(const MatrixBase<Rhs>& b) const
-  {
-    eigen_assert(m_isInitialized && "IterativeSolverBase is not initialized.");
-    eigen_assert(rows()==b.rows()
-              && "IterativeSolverBase::solve(): invalid number of rows of the right hand side matrix b");
-    return internal::solve_retval<Derived, Rhs>(derived(), b.derived());
-  }
-  
-  /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
-    *
-    * \sa compute()
-    */
-  template<typename Rhs>
-  inline const internal::sparse_solve_retval<IterativeSolverBase, Rhs>
-  solve(const SparseMatrixBase<Rhs>& b) const
-  {
-    eigen_assert(m_isInitialized && "IterativeSolverBase is not initialized.");
-    eigen_assert(rows()==b.rows()
-              && "IterativeSolverBase::solve(): invalid number of rows of the right hand side matrix b");
-    return internal::sparse_solve_retval<IterativeSolverBase, Rhs>(*this, b.derived());
-  }
-
-  /** \returns Success if the iterations converged, and NoConvergence otherwise. */
-  ComputationInfo info() const
-  {
-    eigen_assert(m_isInitialized && "IterativeSolverBase is not initialized.");
-    return m_info;
-  }
-  
-  /** \internal */
-  template<typename Rhs, typename DestScalar, int DestOptions, typename DestIndex>
-  void _solve_sparse(const Rhs& b, SparseMatrix<DestScalar,DestOptions,DestIndex> &dest) const
-  {
-    eigen_assert(rows()==b.rows());
-    
-    int rhsCols = b.cols();
-    int size = b.rows();
-    Eigen::Matrix<DestScalar,Dynamic,1> tb(size);
-    Eigen::Matrix<DestScalar,Dynamic,1> tx(size);
-    for(int k=0; k<rhsCols; ++k)
-    {
-      tb = b.col(k);
-      tx = derived().solve(tb);
-      dest.col(k) = tx.sparseView(0);
-    }
-  }
-
-protected:
-  void init()
-  {
-    m_isInitialized = false;
-    m_analysisIsOk = false;
-    m_factorizationIsOk = false;
-    m_maxIterations = -1;
-    m_tolerance = NumTraits<Scalar>::epsilon();
-  }
-  const MatrixType* mp_matrix;
-  Preconditioner m_preconditioner;
-
-  int m_maxIterations;
-  RealScalar m_tolerance;
-  
-  mutable RealScalar m_error;
-  mutable int m_iterations;
-  mutable ComputationInfo m_info;
-  mutable bool m_isInitialized, m_analysisIsOk, m_factorizationIsOk;
-};
-
-namespace internal {
- 
-template<typename Derived, typename Rhs>
-struct sparse_solve_retval<IterativeSolverBase<Derived>, Rhs>
-  : sparse_solve_retval_base<IterativeSolverBase<Derived>, Rhs>
-{
-  typedef IterativeSolverBase<Derived> Dec;
-  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    dec().derived()._solve_sparse(rhs(),dst);
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_ITERATIVE_SOLVER_BASE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Jacobi/Jacobi.h b/vendor/eigen-3.1.91/Eigen/src/Jacobi/Jacobi.h
deleted file mode 100644
index d9d7519..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/Jacobi/Jacobi.h
+++ /dev/null
@@ -1,433 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_JACOBI_H
-#define EIGEN_JACOBI_H
-
-namespace Eigen { 
-
-/** \ingroup Jacobi_Module
-  * \jacobi_module
-  * \class JacobiRotation
-  * \brief Rotation given by a cosine-sine pair.
-  *
-  * This class represents a Jacobi or Givens rotation.
-  * This is a 2D rotation in the plane \c J of angle \f$ \theta \f$ defined by
-  * its cosine \c c and sine \c s as follow:
-  * \f$ J = \left ( \begin{array}{cc} c & \overline s \\ -s  & \overline c \end{array} \right ) \f$
-  *
-  * You can apply the respective counter-clockwise rotation to a column vector \c v by
-  * applying its adjoint on the left: \f$ v = J^* v \f$ that translates to the following Eigen code:
-  * \code
-  * v.applyOnTheLeft(J.adjoint());
-  * \endcode
-  *
-  * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
-  */
-template<typename Scalar> class JacobiRotation
-{
-  public:
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-
-    /** Default constructor without any initialization. */
-    JacobiRotation() {}
-
-    /** Construct a planar rotation from a cosine-sine pair (\a c, \c s). */
-    JacobiRotation(const Scalar& c, const Scalar& s) : m_c(c), m_s(s) {}
-
-    Scalar& c() { return m_c; }
-    Scalar c() const { return m_c; }
-    Scalar& s() { return m_s; }
-    Scalar s() const { return m_s; }
-
-    /** Concatenates two planar rotation */
-    JacobiRotation operator*(const JacobiRotation& other)
-    {
-      using internal::conj;
-      return JacobiRotation(m_c * other.m_c - conj(m_s) * other.m_s,
-                            conj(m_c * conj(other.m_s) + conj(m_s) * conj(other.m_c)));
-    }
-
-    /** Returns the transposed transformation */
-    JacobiRotation transpose() const { using internal::conj; return JacobiRotation(m_c, -conj(m_s)); }
-
-    /** Returns the adjoint transformation */
-    JacobiRotation adjoint() const { using internal::conj; return JacobiRotation(conj(m_c), -m_s); }
-
-    template<typename Derived>
-    bool makeJacobi(const MatrixBase<Derived>&, typename Derived::Index p, typename Derived::Index q);
-    bool makeJacobi(const RealScalar& x, const Scalar& y, const RealScalar& z);
-
-    void makeGivens(const Scalar& p, const Scalar& q, Scalar* z=0);
-
-  protected:
-    void makeGivens(const Scalar& p, const Scalar& q, Scalar* z, internal::true_type);
-    void makeGivens(const Scalar& p, const Scalar& q, Scalar* z, internal::false_type);
-
-    Scalar m_c, m_s;
-};
-
-/** Makes \c *this as a Jacobi rotation \a J such that applying \a J on both the right and left sides of the selfadjoint 2x2 matrix
-  * \f$ B = \left ( \begin{array}{cc} x & y \\ \overline y & z \end{array} \right )\f$ yields a diagonal matrix \f$ A = J^* B J \f$
-  *
-  * \sa MatrixBase::makeJacobi(const MatrixBase<Derived>&, Index, Index), MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
-  */
-template<typename Scalar>
-bool JacobiRotation<Scalar>::makeJacobi(const RealScalar& x, const Scalar& y, const RealScalar& z)
-{
-  using std::sqrt;
-  using std::abs;
-  typedef typename NumTraits<Scalar>::Real RealScalar;
-  if(y == Scalar(0))
-  {
-    m_c = Scalar(1);
-    m_s = Scalar(0);
-    return false;
-  }
-  else
-  {
-    RealScalar tau = (x-z)/(RealScalar(2)*abs(y));
-    RealScalar w = sqrt(internal::abs2(tau) + RealScalar(1));
-    RealScalar t;
-    if(tau>RealScalar(0))
-    {
-      t = RealScalar(1) / (tau + w);
-    }
-    else
-    {
-      t = RealScalar(1) / (tau - w);
-    }
-    RealScalar sign_t = t > RealScalar(0) ? RealScalar(1) : RealScalar(-1);
-    RealScalar n = RealScalar(1) / sqrt(internal::abs2(t)+RealScalar(1));
-    m_s = - sign_t * (internal::conj(y) / abs(y)) * abs(t) * n;
-    m_c = n;
-    return true;
-  }
-}
-
-/** Makes \c *this as a Jacobi rotation \c J such that applying \a J on both the right and left sides of the 2x2 selfadjoint matrix
-  * \f$ B = \left ( \begin{array}{cc} \text{this}_{pp} & \text{this}_{pq} \\ (\text{this}_{pq})^* & \text{this}_{qq} \end{array} \right )\f$ yields
-  * a diagonal matrix \f$ A = J^* B J \f$
-  *
-  * Example: \include Jacobi_makeJacobi.cpp
-  * Output: \verbinclude Jacobi_makeJacobi.out
-  *
-  * \sa JacobiRotation::makeJacobi(RealScalar, Scalar, RealScalar), MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
-  */
-template<typename Scalar>
-template<typename Derived>
-inline bool JacobiRotation<Scalar>::makeJacobi(const MatrixBase<Derived>& m, typename Derived::Index p, typename Derived::Index q)
-{
-  return makeJacobi(internal::real(m.coeff(p,p)), m.coeff(p,q), internal::real(m.coeff(q,q)));
-}
-
-/** Makes \c *this as a Givens rotation \c G such that applying \f$ G^* \f$ to the left of the vector
-  * \f$ V = \left ( \begin{array}{c} p \\ q \end{array} \right )\f$ yields:
-  * \f$ G^* V = \left ( \begin{array}{c} r \\ 0 \end{array} \right )\f$.
-  *
-  * The value of \a z is returned if \a z is not null (the default is null).
-  * Also note that G is built such that the cosine is always real.
-  *
-  * Example: \include Jacobi_makeGivens.cpp
-  * Output: \verbinclude Jacobi_makeGivens.out
-  *
-  * This function implements the continuous Givens rotation generation algorithm
-  * found in Anderson (2000), Discontinuous Plane Rotations and the Symmetric Eigenvalue Problem.
-  * LAPACK Working Note 150, University of Tennessee, UT-CS-00-454, December 4, 2000.
-  *
-  * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
-  */
-template<typename Scalar>
-void JacobiRotation<Scalar>::makeGivens(const Scalar& p, const Scalar& q, Scalar* z)
-{
-  makeGivens(p, q, z, typename internal::conditional<NumTraits<Scalar>::IsComplex, internal::true_type, internal::false_type>::type());
-}
-
-
-// specialization for complexes
-template<typename Scalar>
-void JacobiRotation<Scalar>::makeGivens(const Scalar& p, const Scalar& q, Scalar* r, internal::true_type)
-{
-  using std::sqrt;
-  using std::abs;
-  using internal::conj;
-  
-  if(q==Scalar(0))
-  {
-    m_c = internal::real(p)<0 ? Scalar(-1) : Scalar(1);
-    m_s = 0;
-    if(r) *r = m_c * p;
-  }
-  else if(p==Scalar(0))
-  {
-    m_c = 0;
-    m_s = -q/abs(q);
-    if(r) *r = abs(q);
-  }
-  else
-  {
-    RealScalar p1 = internal::norm1(p);
-    RealScalar q1 = internal::norm1(q);
-    if(p1>=q1)
-    {
-      Scalar ps = p / p1;
-      RealScalar p2 = internal::abs2(ps);
-      Scalar qs = q / p1;
-      RealScalar q2 = internal::abs2(qs);
-
-      RealScalar u = sqrt(RealScalar(1) + q2/p2);
-      if(internal::real(p)<RealScalar(0))
-        u = -u;
-
-      m_c = Scalar(1)/u;
-      m_s = -qs*conj(ps)*(m_c/p2);
-      if(r) *r = p * u;
-    }
-    else
-    {
-      Scalar ps = p / q1;
-      RealScalar p2 = internal::abs2(ps);
-      Scalar qs = q / q1;
-      RealScalar q2 = internal::abs2(qs);
-
-      RealScalar u = q1 * sqrt(p2 + q2);
-      if(internal::real(p)<RealScalar(0))
-        u = -u;
-
-      p1 = abs(p);
-      ps = p/p1;
-      m_c = p1/u;
-      m_s = -conj(ps) * (q/u);
-      if(r) *r = ps * u;
-    }
-  }
-}
-
-// specialization for reals
-template<typename Scalar>
-void JacobiRotation<Scalar>::makeGivens(const Scalar& p, const Scalar& q, Scalar* r, internal::false_type)
-{
-  using std::sqrt;
-  using std::abs;
-  if(q==Scalar(0))
-  {
-    m_c = p<Scalar(0) ? Scalar(-1) : Scalar(1);
-    m_s = Scalar(0);
-    if(r) *r = abs(p);
-  }
-  else if(p==Scalar(0))
-  {
-    m_c = Scalar(0);
-    m_s = q<Scalar(0) ? Scalar(1) : Scalar(-1);
-    if(r) *r = abs(q);
-  }
-  else if(abs(p) > abs(q))
-  {
-    Scalar t = q/p;
-    Scalar u = sqrt(Scalar(1) + internal::abs2(t));
-    if(p<Scalar(0))
-      u = -u;
-    m_c = Scalar(1)/u;
-    m_s = -t * m_c;
-    if(r) *r = p * u;
-  }
-  else
-  {
-    Scalar t = p/q;
-    Scalar u = sqrt(Scalar(1) + internal::abs2(t));
-    if(q<Scalar(0))
-      u = -u;
-    m_s = -Scalar(1)/u;
-    m_c = -t * m_s;
-    if(r) *r = q * u;
-  }
-
-}
-
-/****************************************************************************************
-*   Implementation of MatrixBase methods
-****************************************************************************************/
-
-/** \jacobi_module
-  * Applies the clock wise 2D rotation \a j to the set of 2D vectors of cordinates \a x and \a y:
-  * \f$ \left ( \begin{array}{cc} x \\ y \end{array} \right )  =  J \left ( \begin{array}{cc} x \\ y \end{array} \right ) \f$
-  *
-  * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
-  */
-namespace internal {
-template<typename VectorX, typename VectorY, typename OtherScalar>
-void apply_rotation_in_the_plane(VectorX& _x, VectorY& _y, const JacobiRotation<OtherScalar>& j);
-}
-
-/** \jacobi_module
-  * Applies the rotation in the plane \a j to the rows \a p and \a q of \c *this, i.e., it computes B = J * B,
-  * with \f$ B = \left ( \begin{array}{cc} \text{*this.row}(p) \\ \text{*this.row}(q) \end{array} \right ) \f$.
-  *
-  * \sa class JacobiRotation, MatrixBase::applyOnTheRight(), internal::apply_rotation_in_the_plane()
-  */
-template<typename Derived>
-template<typename OtherScalar>
-inline void MatrixBase<Derived>::applyOnTheLeft(Index p, Index q, const JacobiRotation<OtherScalar>& j)
-{
-  RowXpr x(this->row(p));
-  RowXpr y(this->row(q));
-  internal::apply_rotation_in_the_plane(x, y, j);
-}
-
-/** \ingroup Jacobi_Module
-  * Applies the rotation in the plane \a j to the columns \a p and \a q of \c *this, i.e., it computes B = B * J
-  * with \f$ B = \left ( \begin{array}{cc} \text{*this.col}(p) & \text{*this.col}(q) \end{array} \right ) \f$.
-  *
-  * \sa class JacobiRotation, MatrixBase::applyOnTheLeft(), internal::apply_rotation_in_the_plane()
-  */
-template<typename Derived>
-template<typename OtherScalar>
-inline void MatrixBase<Derived>::applyOnTheRight(Index p, Index q, const JacobiRotation<OtherScalar>& j)
-{
-  ColXpr x(this->col(p));
-  ColXpr y(this->col(q));
-  internal::apply_rotation_in_the_plane(x, y, j.transpose());
-}
-
-namespace internal {
-template<typename VectorX, typename VectorY, typename OtherScalar>
-void /*EIGEN_DONT_INLINE*/ apply_rotation_in_the_plane(VectorX& _x, VectorY& _y, const JacobiRotation<OtherScalar>& j)
-{
-  typedef typename VectorX::Index Index;
-  typedef typename VectorX::Scalar Scalar;
-  enum { PacketSize = packet_traits<Scalar>::size };
-  typedef typename packet_traits<Scalar>::type Packet;
-  eigen_assert(_x.size() == _y.size());
-  Index size = _x.size();
-  Index incrx = _x.innerStride();
-  Index incry = _y.innerStride();
-
-  Scalar* EIGEN_RESTRICT x = &_x.coeffRef(0);
-  Scalar* EIGEN_RESTRICT y = &_y.coeffRef(0);
-  
-  OtherScalar c = j.c();
-  OtherScalar s = j.s();
-  if (c==OtherScalar(1) && s==OtherScalar(0))
-    return;
-
-  /*** dynamic-size vectorized paths ***/
-
-  if(VectorX::SizeAtCompileTime == Dynamic &&
-    (VectorX::Flags & VectorY::Flags & PacketAccessBit) &&
-    ((incrx==1 && incry==1) || PacketSize == 1))
-  {
-    // both vectors are sequentially stored in memory => vectorization
-    enum { Peeling = 2 };
-
-    Index alignedStart = internal::first_aligned(y, size);
-    Index alignedEnd = alignedStart + ((size-alignedStart)/PacketSize)*PacketSize;
-
-    const Packet pc = pset1<Packet>(c);
-    const Packet ps = pset1<Packet>(s);
-    conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex,false> pcj;
-
-    for(Index i=0; i<alignedStart; ++i)
-    {
-      Scalar xi = x[i];
-      Scalar yi = y[i];
-      x[i] =  c * xi + conj(s) * yi;
-      y[i] = -s * xi + conj(c) * yi;
-    }
-
-    Scalar* EIGEN_RESTRICT px = x + alignedStart;
-    Scalar* EIGEN_RESTRICT py = y + alignedStart;
-
-    if(internal::first_aligned(x, size)==alignedStart)
-    {
-      for(Index i=alignedStart; i<alignedEnd; i+=PacketSize)
-      {
-        Packet xi = pload<Packet>(px);
-        Packet yi = pload<Packet>(py);
-        pstore(px, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
-        pstore(py, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
-        px += PacketSize;
-        py += PacketSize;
-      }
-    }
-    else
-    {
-      Index peelingEnd = alignedStart + ((size-alignedStart)/(Peeling*PacketSize))*(Peeling*PacketSize);
-      for(Index i=alignedStart; i<peelingEnd; i+=Peeling*PacketSize)
-      {
-        Packet xi   = ploadu<Packet>(px);
-        Packet xi1  = ploadu<Packet>(px+PacketSize);
-        Packet yi   = pload <Packet>(py);
-        Packet yi1  = pload <Packet>(py+PacketSize);
-        pstoreu(px, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
-        pstoreu(px+PacketSize, padd(pmul(pc,xi1),pcj.pmul(ps,yi1)));
-        pstore (py, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
-        pstore (py+PacketSize, psub(pcj.pmul(pc,yi1),pmul(ps,xi1)));
-        px += Peeling*PacketSize;
-        py += Peeling*PacketSize;
-      }
-      if(alignedEnd!=peelingEnd)
-      {
-        Packet xi = ploadu<Packet>(x+peelingEnd);
-        Packet yi = pload <Packet>(y+peelingEnd);
-        pstoreu(x+peelingEnd, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
-        pstore (y+peelingEnd, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
-      }
-    }
-
-    for(Index i=alignedEnd; i<size; ++i)
-    {
-      Scalar xi = x[i];
-      Scalar yi = y[i];
-      x[i] =  c * xi + conj(s) * yi;
-      y[i] = -s * xi + conj(c) * yi;
-    }
-  }
-
-  /*** fixed-size vectorized path ***/
-  else if(VectorX::SizeAtCompileTime != Dynamic &&
-          (VectorX::Flags & VectorY::Flags & PacketAccessBit) &&
-          (VectorX::Flags & VectorY::Flags & AlignedBit))
-  {
-    const Packet pc = pset1<Packet>(c);
-    const Packet ps = pset1<Packet>(s);
-    conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex,false> pcj;
-    Scalar* EIGEN_RESTRICT px = x;
-    Scalar* EIGEN_RESTRICT py = y;
-    for(Index i=0; i<size; i+=PacketSize)
-    {
-      Packet xi = pload<Packet>(px);
-      Packet yi = pload<Packet>(py);
-      pstore(px, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
-      pstore(py, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
-      px += PacketSize;
-      py += PacketSize;
-    }
-  }
-
-  /*** non-vectorized path ***/
-  else
-  {
-    for(Index i=0; i<size; ++i)
-    {
-      Scalar xi = *x;
-      Scalar yi = *y;
-      *x =  c * xi + conj(s) * yi;
-      *y = -s * xi + conj(c) * yi;
-      x += incrx;
-      y += incry;
-    }
-  }
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_JACOBI_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/LU/FullPivLU.h b/vendor/eigen-3.1.91/Eigen/src/LU/FullPivLU.h
deleted file mode 100644
index dfe25f4..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/LU/FullPivLU.h
+++ /dev/null
@@ -1,742 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_LU_H
-#define EIGEN_LU_H
-
-namespace Eigen { 
-
-/** \ingroup LU_Module
-  *
-  * \class FullPivLU
-  *
-  * \brief LU decomposition of a matrix with complete pivoting, and related features
-  *
-  * \param MatrixType the type of the matrix of which we are computing the LU decomposition
-  *
-  * This class represents a LU decomposition of any matrix, with complete pivoting: the matrix A
-  * is decomposed as A = PLUQ where L is unit-lower-triangular, U is upper-triangular, and P and Q
-  * are permutation matrices. This is a rank-revealing LU decomposition. The eigenvalues (diagonal
-  * coefficients) of U are sorted in such a way that any zeros are at the end.
-  *
-  * This decomposition provides the generic approach to solving systems of linear equations, computing
-  * the rank, invertibility, inverse, kernel, and determinant.
-  *
-  * This LU decomposition is very stable and well tested with large matrices. However there are use cases where the SVD
-  * decomposition is inherently more stable and/or flexible. For example, when computing the kernel of a matrix,
-  * working with the SVD allows to select the smallest singular values of the matrix, something that
-  * the LU decomposition doesn't see.
-  *
-  * The data of the LU decomposition can be directly accessed through the methods matrixLU(),
-  * permutationP(), permutationQ().
-  *
-  * As an exemple, here is how the original matrix can be retrieved:
-  * \include class_FullPivLU.cpp
-  * Output: \verbinclude class_FullPivLU.out
-  *
-  * \sa MatrixBase::fullPivLu(), MatrixBase::determinant(), MatrixBase::inverse()
-  */
-template<typename _MatrixType> class FullPivLU
-{
-  public:
-    typedef _MatrixType MatrixType;
-    enum {
-      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-      Options = MatrixType::Options,
-      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
-    };
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
-    typedef typename internal::traits<MatrixType>::StorageKind StorageKind;
-    typedef typename MatrixType::Index Index;
-    typedef typename internal::plain_row_type<MatrixType, Index>::type IntRowVectorType;
-    typedef typename internal::plain_col_type<MatrixType, Index>::type IntColVectorType;
-    typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationQType;
-    typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationPType;
-
-    /**
-      * \brief Default Constructor.
-      *
-      * The default constructor is useful in cases in which the user intends to
-      * perform decompositions via LU::compute(const MatrixType&).
-      */
-    FullPivLU();
-
-    /** \brief Default Constructor with memory preallocation
-      *
-      * Like the default constructor but with preallocation of the internal data
-      * according to the specified problem \a size.
-      * \sa FullPivLU()
-      */
-    FullPivLU(Index rows, Index cols);
-
-    /** Constructor.
-      *
-      * \param matrix the matrix of which to compute the LU decomposition.
-      *               It is required to be nonzero.
-      */
-    FullPivLU(const MatrixType& matrix);
-
-    /** Computes the LU decomposition of the given matrix.
-      *
-      * \param matrix the matrix of which to compute the LU decomposition.
-      *               It is required to be nonzero.
-      *
-      * \returns a reference to *this
-      */
-    FullPivLU& compute(const MatrixType& matrix);
-
-    /** \returns the LU decomposition matrix: the upper-triangular part is U, the
-      * unit-lower-triangular part is L (at least for square matrices; in the non-square
-      * case, special care is needed, see the documentation of class FullPivLU).
-      *
-      * \sa matrixL(), matrixU()
-      */
-    inline const MatrixType& matrixLU() const
-    {
-      eigen_assert(m_isInitialized && "LU is not initialized.");
-      return m_lu;
-    }
-
-    /** \returns the number of nonzero pivots in the LU decomposition.
-      * Here nonzero is meant in the exact sense, not in a fuzzy sense.
-      * So that notion isn't really intrinsically interesting, but it is
-      * still useful when implementing algorithms.
-      *
-      * \sa rank()
-      */
-    inline Index nonzeroPivots() const
-    {
-      eigen_assert(m_isInitialized && "LU is not initialized.");
-      return m_nonzero_pivots;
-    }
-
-    /** \returns the absolute value of the biggest pivot, i.e. the biggest
-      *          diagonal coefficient of U.
-      */
-    RealScalar maxPivot() const { return m_maxpivot; }
-
-    /** \returns the permutation matrix P
-      *
-      * \sa permutationQ()
-      */
-    inline const PermutationPType& permutationP() const
-    {
-      eigen_assert(m_isInitialized && "LU is not initialized.");
-      return m_p;
-    }
-
-    /** \returns the permutation matrix Q
-      *
-      * \sa permutationP()
-      */
-    inline const PermutationQType& permutationQ() const
-    {
-      eigen_assert(m_isInitialized && "LU is not initialized.");
-      return m_q;
-    }
-
-    /** \returns the kernel of the matrix, also called its null-space. The columns of the returned matrix
-      * will form a basis of the kernel.
-      *
-      * \note If the kernel has dimension zero, then the returned matrix is a column-vector filled with zeros.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      *
-      * Example: \include FullPivLU_kernel.cpp
-      * Output: \verbinclude FullPivLU_kernel.out
-      *
-      * \sa image()
-      */
-    inline const internal::kernel_retval<FullPivLU> kernel() const
-    {
-      eigen_assert(m_isInitialized && "LU is not initialized.");
-      return internal::kernel_retval<FullPivLU>(*this);
-    }
-
-    /** \returns the image of the matrix, also called its column-space. The columns of the returned matrix
-      * will form a basis of the kernel.
-      *
-      * \param originalMatrix the original matrix, of which *this is the LU decomposition.
-      *                       The reason why it is needed to pass it here, is that this allows
-      *                       a large optimization, as otherwise this method would need to reconstruct it
-      *                       from the LU decomposition.
-      *
-      * \note If the image has dimension zero, then the returned matrix is a column-vector filled with zeros.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      *
-      * Example: \include FullPivLU_image.cpp
-      * Output: \verbinclude FullPivLU_image.out
-      *
-      * \sa kernel()
-      */
-    inline const internal::image_retval<FullPivLU>
-      image(const MatrixType& originalMatrix) const
-    {
-      eigen_assert(m_isInitialized && "LU is not initialized.");
-      return internal::image_retval<FullPivLU>(*this, originalMatrix);
-    }
-
-    /** \return a solution x to the equation Ax=b, where A is the matrix of which
-      * *this is the LU decomposition.
-      *
-      * \param b the right-hand-side of the equation to solve. Can be a vector or a matrix,
-      *          the only requirement in order for the equation to make sense is that
-      *          b.rows()==A.rows(), where A is the matrix of which *this is the LU decomposition.
-      *
-      * \returns a solution.
-      *
-      * \note_about_checking_solutions
-      *
-      * \note_about_arbitrary_choice_of_solution
-      * \note_about_using_kernel_to_study_multiple_solutions
-      *
-      * Example: \include FullPivLU_solve.cpp
-      * Output: \verbinclude FullPivLU_solve.out
-      *
-      * \sa TriangularView::solve(), kernel(), inverse()
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<FullPivLU, Rhs>
-    solve(const MatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "LU is not initialized.");
-      return internal::solve_retval<FullPivLU, Rhs>(*this, b.derived());
-    }
-
-    /** \returns the determinant of the matrix of which
-      * *this is the LU decomposition. It has only linear complexity
-      * (that is, O(n) where n is the dimension of the square matrix)
-      * as the LU decomposition has already been computed.
-      *
-      * \note This is only for square matrices.
-      *
-      * \note For fixed-size matrices of size up to 4, MatrixBase::determinant() offers
-      *       optimized paths.
-      *
-      * \warning a determinant can be very big or small, so for matrices
-      * of large enough dimension, there is a risk of overflow/underflow.
-      *
-      * \sa MatrixBase::determinant()
-      */
-    typename internal::traits<MatrixType>::Scalar determinant() const;
-
-    /** Allows to prescribe a threshold to be used by certain methods, such as rank(),
-      * who need to determine when pivots are to be considered nonzero. This is not used for the
-      * LU decomposition itself.
-      *
-      * When it needs to get the threshold value, Eigen calls threshold(). By default, this
-      * uses a formula to automatically determine a reasonable threshold.
-      * Once you have called the present method setThreshold(const RealScalar&),
-      * your value is used instead.
-      *
-      * \param threshold The new value to use as the threshold.
-      *
-      * A pivot will be considered nonzero if its absolute value is strictly greater than
-      *  \f$ \vert pivot \vert \leqslant threshold \times \vert maxpivot \vert \f$
-      * where maxpivot is the biggest pivot.
-      *
-      * If you want to come back to the default behavior, call setThreshold(Default_t)
-      */
-    FullPivLU& setThreshold(const RealScalar& threshold)
-    {
-      m_usePrescribedThreshold = true;
-      m_prescribedThreshold = threshold;
-      return *this;
-    }
-
-    /** Allows to come back to the default behavior, letting Eigen use its default formula for
-      * determining the threshold.
-      *
-      * You should pass the special object Eigen::Default as parameter here.
-      * \code lu.setThreshold(Eigen::Default); \endcode
-      *
-      * See the documentation of setThreshold(const RealScalar&).
-      */
-    FullPivLU& setThreshold(Default_t)
-    {
-      m_usePrescribedThreshold = false;
-      return *this;
-    }
-
-    /** Returns the threshold that will be used by certain methods such as rank().
-      *
-      * See the documentation of setThreshold(const RealScalar&).
-      */
-    RealScalar threshold() const
-    {
-      eigen_assert(m_isInitialized || m_usePrescribedThreshold);
-      return m_usePrescribedThreshold ? m_prescribedThreshold
-      // this formula comes from experimenting (see "LU precision tuning" thread on the list)
-      // and turns out to be identical to Higham's formula used already in LDLt.
-                                      : NumTraits<Scalar>::epsilon() * m_lu.diagonalSize();
-    }
-
-    /** \returns the rank of the matrix of which *this is the LU decomposition.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      */
-    inline Index rank() const
-    {
-      using std::abs;
-      eigen_assert(m_isInitialized && "LU is not initialized.");
-      RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold();
-      Index result = 0;
-      for(Index i = 0; i < m_nonzero_pivots; ++i)
-        result += (abs(m_lu.coeff(i,i)) > premultiplied_threshold);
-      return result;
-    }
-
-    /** \returns the dimension of the kernel of the matrix of which *this is the LU decomposition.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      */
-    inline Index dimensionOfKernel() const
-    {
-      eigen_assert(m_isInitialized && "LU is not initialized.");
-      return cols() - rank();
-    }
-
-    /** \returns true if the matrix of which *this is the LU decomposition represents an injective
-      *          linear map, i.e. has trivial kernel; false otherwise.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      */
-    inline bool isInjective() const
-    {
-      eigen_assert(m_isInitialized && "LU is not initialized.");
-      return rank() == cols();
-    }
-
-    /** \returns true if the matrix of which *this is the LU decomposition represents a surjective
-      *          linear map; false otherwise.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      */
-    inline bool isSurjective() const
-    {
-      eigen_assert(m_isInitialized && "LU is not initialized.");
-      return rank() == rows();
-    }
-
-    /** \returns true if the matrix of which *this is the LU decomposition is invertible.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      */
-    inline bool isInvertible() const
-    {
-      eigen_assert(m_isInitialized && "LU is not initialized.");
-      return isInjective() && (m_lu.rows() == m_lu.cols());
-    }
-
-    /** \returns the inverse of the matrix of which *this is the LU decomposition.
-      *
-      * \note If this matrix is not invertible, the returned matrix has undefined coefficients.
-      *       Use isInvertible() to first determine whether this matrix is invertible.
-      *
-      * \sa MatrixBase::inverse()
-      */
-    inline const internal::solve_retval<FullPivLU,typename MatrixType::IdentityReturnType> inverse() const
-    {
-      eigen_assert(m_isInitialized && "LU is not initialized.");
-      eigen_assert(m_lu.rows() == m_lu.cols() && "You can't take the inverse of a non-square matrix!");
-      return internal::solve_retval<FullPivLU,typename MatrixType::IdentityReturnType>
-               (*this, MatrixType::Identity(m_lu.rows(), m_lu.cols()));
-    }
-
-    MatrixType reconstructedMatrix() const;
-
-    inline Index rows() const { return m_lu.rows(); }
-    inline Index cols() const { return m_lu.cols(); }
-
-  protected:
-    MatrixType m_lu;
-    PermutationPType m_p;
-    PermutationQType m_q;
-    IntColVectorType m_rowsTranspositions;
-    IntRowVectorType m_colsTranspositions;
-    Index m_det_pq, m_nonzero_pivots;
-    RealScalar m_maxpivot, m_prescribedThreshold;
-    bool m_isInitialized, m_usePrescribedThreshold;
-};
-
-template<typename MatrixType>
-FullPivLU<MatrixType>::FullPivLU()
-  : m_isInitialized(false), m_usePrescribedThreshold(false)
-{
-}
-
-template<typename MatrixType>
-FullPivLU<MatrixType>::FullPivLU(Index rows, Index cols)
-  : m_lu(rows, cols),
-    m_p(rows),
-    m_q(cols),
-    m_rowsTranspositions(rows),
-    m_colsTranspositions(cols),
-    m_isInitialized(false),
-    m_usePrescribedThreshold(false)
-{
-}
-
-template<typename MatrixType>
-FullPivLU<MatrixType>::FullPivLU(const MatrixType& matrix)
-  : m_lu(matrix.rows(), matrix.cols()),
-    m_p(matrix.rows()),
-    m_q(matrix.cols()),
-    m_rowsTranspositions(matrix.rows()),
-    m_colsTranspositions(matrix.cols()),
-    m_isInitialized(false),
-    m_usePrescribedThreshold(false)
-{
-  compute(matrix);
-}
-
-template<typename MatrixType>
-FullPivLU<MatrixType>& FullPivLU<MatrixType>::compute(const MatrixType& matrix)
-{
-  // the permutations are stored as int indices, so just to be sure:
-  eigen_assert(matrix.rows()<=NumTraits<int>::highest() && matrix.cols()<=NumTraits<int>::highest());
-  
-  m_isInitialized = true;
-  m_lu = matrix;
-
-  const Index size = matrix.diagonalSize();
-  const Index rows = matrix.rows();
-  const Index cols = matrix.cols();
-
-  // will store the transpositions, before we accumulate them at the end.
-  // can't accumulate on-the-fly because that will be done in reverse order for the rows.
-  m_rowsTranspositions.resize(matrix.rows());
-  m_colsTranspositions.resize(matrix.cols());
-  Index number_of_transpositions = 0; // number of NONTRIVIAL transpositions, i.e. m_rowsTranspositions[i]!=i
-
-  m_nonzero_pivots = size; // the generic case is that in which all pivots are nonzero (invertible case)
-  m_maxpivot = RealScalar(0);
-
-  for(Index k = 0; k < size; ++k)
-  {
-    // First, we need to find the pivot.
-
-    // biggest coefficient in the remaining bottom-right corner (starting at row k, col k)
-    Index row_of_biggest_in_corner, col_of_biggest_in_corner;
-    RealScalar biggest_in_corner;
-    biggest_in_corner = m_lu.bottomRightCorner(rows-k, cols-k)
-                        .cwiseAbs()
-                        .maxCoeff(&row_of_biggest_in_corner, &col_of_biggest_in_corner);
-    row_of_biggest_in_corner += k; // correct the values! since they were computed in the corner,
-    col_of_biggest_in_corner += k; // need to add k to them.
-
-    if(biggest_in_corner==RealScalar(0))
-    {
-      // before exiting, make sure to initialize the still uninitialized transpositions
-      // in a sane state without destroying what we already have.
-      m_nonzero_pivots = k;
-      for(Index i = k; i < size; ++i)
-      {
-        m_rowsTranspositions.coeffRef(i) = i;
-        m_colsTranspositions.coeffRef(i) = i;
-      }
-      break;
-    }
-
-    if(biggest_in_corner > m_maxpivot) m_maxpivot = biggest_in_corner;
-
-    // Now that we've found the pivot, we need to apply the row/col swaps to
-    // bring it to the location (k,k).
-
-    m_rowsTranspositions.coeffRef(k) = row_of_biggest_in_corner;
-    m_colsTranspositions.coeffRef(k) = col_of_biggest_in_corner;
-    if(k != row_of_biggest_in_corner) {
-      m_lu.row(k).swap(m_lu.row(row_of_biggest_in_corner));
-      ++number_of_transpositions;
-    }
-    if(k != col_of_biggest_in_corner) {
-      m_lu.col(k).swap(m_lu.col(col_of_biggest_in_corner));
-      ++number_of_transpositions;
-    }
-
-    // Now that the pivot is at the right location, we update the remaining
-    // bottom-right corner by Gaussian elimination.
-
-    if(k<rows-1)
-      m_lu.col(k).tail(rows-k-1) /= m_lu.coeff(k,k);
-    if(k<size-1)
-      m_lu.block(k+1,k+1,rows-k-1,cols-k-1).noalias() -= m_lu.col(k).tail(rows-k-1) * m_lu.row(k).tail(cols-k-1);
-  }
-
-  // the main loop is over, we still have to accumulate the transpositions to find the
-  // permutations P and Q
-
-  m_p.setIdentity(rows);
-  for(Index k = size-1; k >= 0; --k)
-    m_p.applyTranspositionOnTheRight(k, m_rowsTranspositions.coeff(k));
-
-  m_q.setIdentity(cols);
-  for(Index k = 0; k < size; ++k)
-    m_q.applyTranspositionOnTheRight(k, m_colsTranspositions.coeff(k));
-
-  m_det_pq = (number_of_transpositions%2) ? -1 : 1;
-  return *this;
-}
-
-template<typename MatrixType>
-typename internal::traits<MatrixType>::Scalar FullPivLU<MatrixType>::determinant() const
-{
-  eigen_assert(m_isInitialized && "LU is not initialized.");
-  eigen_assert(m_lu.rows() == m_lu.cols() && "You can't take the determinant of a non-square matrix!");
-  return Scalar(m_det_pq) * Scalar(m_lu.diagonal().prod());
-}
-
-/** \returns the matrix represented by the decomposition,
- * i.e., it returns the product: P^{-1} L U Q^{-1}.
- * This function is provided for debug purpose. */
-template<typename MatrixType>
-MatrixType FullPivLU<MatrixType>::reconstructedMatrix() const
-{
-  eigen_assert(m_isInitialized && "LU is not initialized.");
-  const Index smalldim = (std::min)(m_lu.rows(), m_lu.cols());
-  // LU
-  MatrixType res(m_lu.rows(),m_lu.cols());
-  // FIXME the .toDenseMatrix() should not be needed...
-  res = m_lu.leftCols(smalldim)
-            .template triangularView<UnitLower>().toDenseMatrix()
-      * m_lu.topRows(smalldim)
-            .template triangularView<Upper>().toDenseMatrix();
-
-  // P^{-1}(LU)
-  res = m_p.inverse() * res;
-
-  // (P^{-1}LU)Q^{-1}
-  res = res * m_q.inverse();
-
-  return res;
-}
-
-/********* Implementation of kernel() **************************************************/
-
-namespace internal {
-template<typename _MatrixType>
-struct kernel_retval<FullPivLU<_MatrixType> >
-  : kernel_retval_base<FullPivLU<_MatrixType> >
-{
-  EIGEN_MAKE_KERNEL_HELPERS(FullPivLU<_MatrixType>)
-
-  enum { MaxSmallDimAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(
-            MatrixType::MaxColsAtCompileTime,
-            MatrixType::MaxRowsAtCompileTime)
-  };
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    using std::abs;
-    const Index cols = dec().matrixLU().cols(), dimker = cols - rank();
-    if(dimker == 0)
-    {
-      // The Kernel is just {0}, so it doesn't have a basis properly speaking, but let's
-      // avoid crashing/asserting as that depends on floating point calculations. Let's
-      // just return a single column vector filled with zeros.
-      dst.setZero();
-      return;
-    }
-
-    /* Let us use the following lemma:
-      *
-      * Lemma: If the matrix A has the LU decomposition PAQ = LU,
-      * then Ker A = Q(Ker U).
-      *
-      * Proof: trivial: just keep in mind that P, Q, L are invertible.
-      */
-
-    /* Thus, all we need to do is to compute Ker U, and then apply Q.
-      *
-      * U is upper triangular, with eigenvalues sorted so that any zeros appear at the end.
-      * Thus, the diagonal of U ends with exactly
-      * dimKer zero's. Let us use that to construct dimKer linearly
-      * independent vectors in Ker U.
-      */
-
-    Matrix<Index, Dynamic, 1, 0, MaxSmallDimAtCompileTime, 1> pivots(rank());
-    RealScalar premultiplied_threshold = dec().maxPivot() * dec().threshold();
-    Index p = 0;
-    for(Index i = 0; i < dec().nonzeroPivots(); ++i)
-      if(abs(dec().matrixLU().coeff(i,i)) > premultiplied_threshold)
-        pivots.coeffRef(p++) = i;
-    eigen_internal_assert(p == rank());
-
-    // we construct a temporaty trapezoid matrix m, by taking the U matrix and
-    // permuting the rows and cols to bring the nonnegligible pivots to the top of
-    // the main diagonal. We need that to be able to apply our triangular solvers.
-    // FIXME when we get triangularView-for-rectangular-matrices, this can be simplified
-    Matrix<typename MatrixType::Scalar, Dynamic, Dynamic, MatrixType::Options,
-           MaxSmallDimAtCompileTime, MatrixType::MaxColsAtCompileTime>
-      m(dec().matrixLU().block(0, 0, rank(), cols));
-    for(Index i = 0; i < rank(); ++i)
-    {
-      if(i) m.row(i).head(i).setZero();
-      m.row(i).tail(cols-i) = dec().matrixLU().row(pivots.coeff(i)).tail(cols-i);
-    }
-    m.block(0, 0, rank(), rank());
-    m.block(0, 0, rank(), rank()).template triangularView<StrictlyLower>().setZero();
-    for(Index i = 0; i < rank(); ++i)
-      m.col(i).swap(m.col(pivots.coeff(i)));
-
-    // ok, we have our trapezoid matrix, we can apply the triangular solver.
-    // notice that the math behind this suggests that we should apply this to the
-    // negative of the RHS, but for performance we just put the negative sign elsewhere, see below.
-    m.topLeftCorner(rank(), rank())
-     .template triangularView<Upper>().solveInPlace(
-        m.topRightCorner(rank(), dimker)
-      );
-
-    // now we must undo the column permutation that we had applied!
-    for(Index i = rank()-1; i >= 0; --i)
-      m.col(i).swap(m.col(pivots.coeff(i)));
-
-    // see the negative sign in the next line, that's what we were talking about above.
-    for(Index i = 0; i < rank(); ++i) dst.row(dec().permutationQ().indices().coeff(i)) = -m.row(i).tail(dimker);
-    for(Index i = rank(); i < cols; ++i) dst.row(dec().permutationQ().indices().coeff(i)).setZero();
-    for(Index k = 0; k < dimker; ++k) dst.coeffRef(dec().permutationQ().indices().coeff(rank()+k), k) = Scalar(1);
-  }
-};
-
-/***** Implementation of image() *****************************************************/
-
-template<typename _MatrixType>
-struct image_retval<FullPivLU<_MatrixType> >
-  : image_retval_base<FullPivLU<_MatrixType> >
-{
-  EIGEN_MAKE_IMAGE_HELPERS(FullPivLU<_MatrixType>)
-
-  enum { MaxSmallDimAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(
-            MatrixType::MaxColsAtCompileTime,
-            MatrixType::MaxRowsAtCompileTime)
-  };
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    using std::abs;
-    if(rank() == 0)
-    {
-      // The Image is just {0}, so it doesn't have a basis properly speaking, but let's
-      // avoid crashing/asserting as that depends on floating point calculations. Let's
-      // just return a single column vector filled with zeros.
-      dst.setZero();
-      return;
-    }
-
-    Matrix<Index, Dynamic, 1, 0, MaxSmallDimAtCompileTime, 1> pivots(rank());
-    RealScalar premultiplied_threshold = dec().maxPivot() * dec().threshold();
-    Index p = 0;
-    for(Index i = 0; i < dec().nonzeroPivots(); ++i)
-      if(abs(dec().matrixLU().coeff(i,i)) > premultiplied_threshold)
-        pivots.coeffRef(p++) = i;
-    eigen_internal_assert(p == rank());
-
-    for(Index i = 0; i < rank(); ++i)
-      dst.col(i) = originalMatrix().col(dec().permutationQ().indices().coeff(pivots.coeff(i)));
-  }
-};
-
-/***** Implementation of solve() *****************************************************/
-
-template<typename _MatrixType, typename Rhs>
-struct solve_retval<FullPivLU<_MatrixType>, Rhs>
-  : solve_retval_base<FullPivLU<_MatrixType>, Rhs>
-{
-  EIGEN_MAKE_SOLVE_HELPERS(FullPivLU<_MatrixType>,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    /* The decomposition PAQ = LU can be rewritten as A = P^{-1} L U Q^{-1}.
-     * So we proceed as follows:
-     * Step 1: compute c = P * rhs.
-     * Step 2: replace c by the solution x to Lx = c. Exists because L is invertible.
-     * Step 3: replace c by the solution x to Ux = c. May or may not exist.
-     * Step 4: result = Q * c;
-     */
-
-    const Index rows = dec().rows(), cols = dec().cols(),
-              nonzero_pivots = dec().nonzeroPivots();
-    eigen_assert(rhs().rows() == rows);
-    const Index smalldim = (std::min)(rows, cols);
-
-    if(nonzero_pivots == 0)
-    {
-      dst.setZero();
-      return;
-    }
-
-    typename Rhs::PlainObject c(rhs().rows(), rhs().cols());
-
-    // Step 1
-    c = dec().permutationP() * rhs();
-
-    // Step 2
-    dec().matrixLU()
-        .topLeftCorner(smalldim,smalldim)
-        .template triangularView<UnitLower>()
-        .solveInPlace(c.topRows(smalldim));
-    if(rows>cols)
-    {
-      c.bottomRows(rows-cols)
-        -= dec().matrixLU().bottomRows(rows-cols)
-         * c.topRows(cols);
-    }
-
-    // Step 3
-    dec().matrixLU()
-        .topLeftCorner(nonzero_pivots, nonzero_pivots)
-        .template triangularView<Upper>()
-        .solveInPlace(c.topRows(nonzero_pivots));
-
-    // Step 4
-    for(Index i = 0; i < nonzero_pivots; ++i)
-      dst.row(dec().permutationQ().indices().coeff(i)) = c.row(i);
-    for(Index i = nonzero_pivots; i < dec().matrixLU().cols(); ++i)
-      dst.row(dec().permutationQ().indices().coeff(i)).setZero();
-  }
-};
-
-} // end namespace internal
-
-/******* MatrixBase methods *****************************************************************/
-
-/** \lu_module
-  *
-  * \return the full-pivoting LU decomposition of \c *this.
-  *
-  * \sa class FullPivLU
-  */
-template<typename Derived>
-inline const FullPivLU<typename MatrixBase<Derived>::PlainObject>
-MatrixBase<Derived>::fullPivLu() const
-{
-  return FullPivLU<PlainObject>(eval());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_LU_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/LU/Inverse.h b/vendor/eigen-3.1.91/Eigen/src/LU/Inverse.h
deleted file mode 100644
index a5ae83b..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/LU/Inverse.h
+++ /dev/null
@@ -1,400 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_INVERSE_H
-#define EIGEN_INVERSE_H
-
-namespace Eigen { 
-
-namespace internal {
-
-/**********************************
-*** General case implementation ***
-**********************************/
-
-template<typename MatrixType, typename ResultType, int Size = MatrixType::RowsAtCompileTime>
-struct compute_inverse
-{
-  static inline void run(const MatrixType& matrix, ResultType& result)
-  {
-    result = matrix.partialPivLu().inverse();
-  }
-};
-
-template<typename MatrixType, typename ResultType, int Size = MatrixType::RowsAtCompileTime>
-struct compute_inverse_and_det_with_check { /* nothing! general case not supported. */ };
-
-/****************************
-*** Size 1 implementation ***
-****************************/
-
-template<typename MatrixType, typename ResultType>
-struct compute_inverse<MatrixType, ResultType, 1>
-{
-  static inline void run(const MatrixType& matrix, ResultType& result)
-  {
-    typedef typename MatrixType::Scalar Scalar;
-    result.coeffRef(0,0) = Scalar(1) / matrix.coeff(0,0);
-  }
-};
-
-template<typename MatrixType, typename ResultType>
-struct compute_inverse_and_det_with_check<MatrixType, ResultType, 1>
-{
-  static inline void run(
-    const MatrixType& matrix,
-    const typename MatrixType::RealScalar& absDeterminantThreshold,
-    ResultType& result,
-    typename ResultType::Scalar& determinant,
-    bool& invertible
-  )
-  {
-    using std::abs;
-    determinant = matrix.coeff(0,0);
-    invertible = abs(determinant) > absDeterminantThreshold;
-    if(invertible) result.coeffRef(0,0) = typename ResultType::Scalar(1) / determinant;
-  }
-};
-
-/****************************
-*** Size 2 implementation ***
-****************************/
-
-template<typename MatrixType, typename ResultType>
-inline void compute_inverse_size2_helper(
-    const MatrixType& matrix, const typename ResultType::Scalar& invdet,
-    ResultType& result)
-{
-  result.coeffRef(0,0) = matrix.coeff(1,1) * invdet;
-  result.coeffRef(1,0) = -matrix.coeff(1,0) * invdet;
-  result.coeffRef(0,1) = -matrix.coeff(0,1) * invdet;
-  result.coeffRef(1,1) = matrix.coeff(0,0) * invdet;
-}
-
-template<typename MatrixType, typename ResultType>
-struct compute_inverse<MatrixType, ResultType, 2>
-{
-  static inline void run(const MatrixType& matrix, ResultType& result)
-  {
-    typedef typename ResultType::Scalar Scalar;
-    const Scalar invdet = typename MatrixType::Scalar(1) / matrix.determinant();
-    compute_inverse_size2_helper(matrix, invdet, result);
-  }
-};
-
-template<typename MatrixType, typename ResultType>
-struct compute_inverse_and_det_with_check<MatrixType, ResultType, 2>
-{
-  static inline void run(
-    const MatrixType& matrix,
-    const typename MatrixType::RealScalar& absDeterminantThreshold,
-    ResultType& inverse,
-    typename ResultType::Scalar& determinant,
-    bool& invertible
-  )
-  {
-    using std::abs;
-    typedef typename ResultType::Scalar Scalar;
-    determinant = matrix.determinant();
-    invertible = abs(determinant) > absDeterminantThreshold;
-    if(!invertible) return;
-    const Scalar invdet = Scalar(1) / determinant;
-    compute_inverse_size2_helper(matrix, invdet, inverse);
-  }
-};
-
-/****************************
-*** Size 3 implementation ***
-****************************/
-
-template<typename MatrixType, int i, int j>
-inline typename MatrixType::Scalar cofactor_3x3(const MatrixType& m)
-{
-  enum {
-    i1 = (i+1) % 3,
-    i2 = (i+2) % 3,
-    j1 = (j+1) % 3,
-    j2 = (j+2) % 3
-  };
-  return m.coeff(i1, j1) * m.coeff(i2, j2)
-       - m.coeff(i1, j2) * m.coeff(i2, j1);
-}
-
-template<typename MatrixType, typename ResultType>
-inline void compute_inverse_size3_helper(
-    const MatrixType& matrix,
-    const typename ResultType::Scalar& invdet,
-    const Matrix<typename ResultType::Scalar,3,1>& cofactors_col0,
-    ResultType& result)
-{
-  result.row(0) = cofactors_col0 * invdet;
-  result.coeffRef(1,0) =  cofactor_3x3<MatrixType,0,1>(matrix) * invdet;
-  result.coeffRef(1,1) =  cofactor_3x3<MatrixType,1,1>(matrix) * invdet;
-  result.coeffRef(1,2) =  cofactor_3x3<MatrixType,2,1>(matrix) * invdet;
-  result.coeffRef(2,0) =  cofactor_3x3<MatrixType,0,2>(matrix) * invdet;
-  result.coeffRef(2,1) =  cofactor_3x3<MatrixType,1,2>(matrix) * invdet;
-  result.coeffRef(2,2) =  cofactor_3x3<MatrixType,2,2>(matrix) * invdet;
-}
-
-template<typename MatrixType, typename ResultType>
-struct compute_inverse<MatrixType, ResultType, 3>
-{
-  static inline void run(const MatrixType& matrix, ResultType& result)
-  {
-    typedef typename ResultType::Scalar Scalar;
-    Matrix<typename MatrixType::Scalar,3,1> cofactors_col0;
-    cofactors_col0.coeffRef(0) =  cofactor_3x3<MatrixType,0,0>(matrix);
-    cofactors_col0.coeffRef(1) =  cofactor_3x3<MatrixType,1,0>(matrix);
-    cofactors_col0.coeffRef(2) =  cofactor_3x3<MatrixType,2,0>(matrix);
-    const Scalar det = (cofactors_col0.cwiseProduct(matrix.col(0))).sum();
-    const Scalar invdet = Scalar(1) / det;
-    compute_inverse_size3_helper(matrix, invdet, cofactors_col0, result);
-  }
-};
-
-template<typename MatrixType, typename ResultType>
-struct compute_inverse_and_det_with_check<MatrixType, ResultType, 3>
-{
-  static inline void run(
-    const MatrixType& matrix,
-    const typename MatrixType::RealScalar& absDeterminantThreshold,
-    ResultType& inverse,
-    typename ResultType::Scalar& determinant,
-    bool& invertible
-  )
-  {
-    using std::abs;
-    typedef typename ResultType::Scalar Scalar;
-    Matrix<Scalar,3,1> cofactors_col0;
-    cofactors_col0.coeffRef(0) =  cofactor_3x3<MatrixType,0,0>(matrix);
-    cofactors_col0.coeffRef(1) =  cofactor_3x3<MatrixType,1,0>(matrix);
-    cofactors_col0.coeffRef(2) =  cofactor_3x3<MatrixType,2,0>(matrix);
-    determinant = (cofactors_col0.cwiseProduct(matrix.col(0))).sum();
-    invertible = abs(determinant) > absDeterminantThreshold;
-    if(!invertible) return;
-    const Scalar invdet = Scalar(1) / determinant;
-    compute_inverse_size3_helper(matrix, invdet, cofactors_col0, inverse);
-  }
-};
-
-/****************************
-*** Size 4 implementation ***
-****************************/
-
-template<typename Derived>
-inline const typename Derived::Scalar general_det3_helper
-(const MatrixBase<Derived>& matrix, int i1, int i2, int i3, int j1, int j2, int j3)
-{
-  return matrix.coeff(i1,j1)
-         * (matrix.coeff(i2,j2) * matrix.coeff(i3,j3) - matrix.coeff(i2,j3) * matrix.coeff(i3,j2));
-}
-
-template<typename MatrixType, int i, int j>
-inline typename MatrixType::Scalar cofactor_4x4(const MatrixType& matrix)
-{
-  enum {
-    i1 = (i+1) % 4,
-    i2 = (i+2) % 4,
-    i3 = (i+3) % 4,
-    j1 = (j+1) % 4,
-    j2 = (j+2) % 4,
-    j3 = (j+3) % 4
-  };
-  return general_det3_helper(matrix, i1, i2, i3, j1, j2, j3)
-       + general_det3_helper(matrix, i2, i3, i1, j1, j2, j3)
-       + general_det3_helper(matrix, i3, i1, i2, j1, j2, j3);
-}
-
-template<int Arch, typename Scalar, typename MatrixType, typename ResultType>
-struct compute_inverse_size4
-{
-  static void run(const MatrixType& matrix, ResultType& result)
-  {
-    result.coeffRef(0,0) =  cofactor_4x4<MatrixType,0,0>(matrix);
-    result.coeffRef(1,0) = -cofactor_4x4<MatrixType,0,1>(matrix);
-    result.coeffRef(2,0) =  cofactor_4x4<MatrixType,0,2>(matrix);
-    result.coeffRef(3,0) = -cofactor_4x4<MatrixType,0,3>(matrix);
-    result.coeffRef(0,2) =  cofactor_4x4<MatrixType,2,0>(matrix);
-    result.coeffRef(1,2) = -cofactor_4x4<MatrixType,2,1>(matrix);
-    result.coeffRef(2,2) =  cofactor_4x4<MatrixType,2,2>(matrix);
-    result.coeffRef(3,2) = -cofactor_4x4<MatrixType,2,3>(matrix);
-    result.coeffRef(0,1) = -cofactor_4x4<MatrixType,1,0>(matrix);
-    result.coeffRef(1,1) =  cofactor_4x4<MatrixType,1,1>(matrix);
-    result.coeffRef(2,1) = -cofactor_4x4<MatrixType,1,2>(matrix);
-    result.coeffRef(3,1) =  cofactor_4x4<MatrixType,1,3>(matrix);
-    result.coeffRef(0,3) = -cofactor_4x4<MatrixType,3,0>(matrix);
-    result.coeffRef(1,3) =  cofactor_4x4<MatrixType,3,1>(matrix);
-    result.coeffRef(2,3) = -cofactor_4x4<MatrixType,3,2>(matrix);
-    result.coeffRef(3,3) =  cofactor_4x4<MatrixType,3,3>(matrix);
-    result /= (matrix.col(0).cwiseProduct(result.row(0).transpose())).sum();
-  }
-};
-
-template<typename MatrixType, typename ResultType>
-struct compute_inverse<MatrixType, ResultType, 4>
- : compute_inverse_size4<Architecture::Target, typename MatrixType::Scalar,
-                            MatrixType, ResultType>
-{
-};
-
-template<typename MatrixType, typename ResultType>
-struct compute_inverse_and_det_with_check<MatrixType, ResultType, 4>
-{
-  static inline void run(
-    const MatrixType& matrix,
-    const typename MatrixType::RealScalar& absDeterminantThreshold,
-    ResultType& inverse,
-    typename ResultType::Scalar& determinant,
-    bool& invertible
-  )
-  {
-    using std::abs;
-    determinant = matrix.determinant();
-    invertible = abs(determinant) > absDeterminantThreshold;
-    if(invertible) compute_inverse<MatrixType, ResultType>::run(matrix, inverse);
-  }
-};
-
-/*************************
-*** MatrixBase methods ***
-*************************/
-
-template<typename MatrixType>
-struct traits<inverse_impl<MatrixType> >
-{
-  typedef typename MatrixType::PlainObject ReturnType;
-};
-
-template<typename MatrixType>
-struct inverse_impl : public ReturnByValue<inverse_impl<MatrixType> >
-{
-  typedef typename MatrixType::Index Index;
-  typedef typename internal::eval<MatrixType>::type MatrixTypeNested;
-  typedef typename remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
-  MatrixTypeNested m_matrix;
-
-  inverse_impl(const MatrixType& matrix)
-    : m_matrix(matrix)
-  {}
-
-  inline Index rows() const { return m_matrix.rows(); }
-  inline Index cols() const { return m_matrix.cols(); }
-
-  template<typename Dest> inline void evalTo(Dest& dst) const
-  {
-    const int Size = EIGEN_PLAIN_ENUM_MIN(MatrixType::ColsAtCompileTime,Dest::ColsAtCompileTime);
-    EIGEN_ONLY_USED_FOR_DEBUG(Size);
-    eigen_assert(( (Size<=1) || (Size>4) || (extract_data(m_matrix)!=extract_data(dst)))
-              && "Aliasing problem detected in inverse(), you need to do inverse().eval() here.");
-
-    compute_inverse<MatrixTypeNestedCleaned, Dest>::run(m_matrix, dst);
-  }
-};
-
-} // end namespace internal
-
-/** \lu_module
-  *
-  * \returns the matrix inverse of this matrix.
-  *
-  * For small fixed sizes up to 4x4, this method uses cofactors.
-  * In the general case, this method uses class PartialPivLU.
-  *
-  * \note This matrix must be invertible, otherwise the result is undefined. If you need an
-  * invertibility check, do the following:
-  * \li for fixed sizes up to 4x4, use computeInverseAndDetWithCheck().
-  * \li for the general case, use class FullPivLU.
-  *
-  * Example: \include MatrixBase_inverse.cpp
-  * Output: \verbinclude MatrixBase_inverse.out
-  *
-  * \sa computeInverseAndDetWithCheck()
-  */
-template<typename Derived>
-inline const internal::inverse_impl<Derived> MatrixBase<Derived>::inverse() const
-{
-  EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsInteger,THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES)
-  eigen_assert(rows() == cols());
-  return internal::inverse_impl<Derived>(derived());
-}
-
-/** \lu_module
-  *
-  * Computation of matrix inverse and determinant, with invertibility check.
-  *
-  * This is only for fixed-size square matrices of size up to 4x4.
-  *
-  * \param inverse Reference to the matrix in which to store the inverse.
-  * \param determinant Reference to the variable in which to store the inverse.
-  * \param invertible Reference to the bool variable in which to store whether the matrix is invertible.
-  * \param absDeterminantThreshold Optional parameter controlling the invertibility check.
-  *                                The matrix will be declared invertible if the absolute value of its
-  *                                determinant is greater than this threshold.
-  *
-  * Example: \include MatrixBase_computeInverseAndDetWithCheck.cpp
-  * Output: \verbinclude MatrixBase_computeInverseAndDetWithCheck.out
-  *
-  * \sa inverse(), computeInverseWithCheck()
-  */
-template<typename Derived>
-template<typename ResultType>
-inline void MatrixBase<Derived>::computeInverseAndDetWithCheck(
-    ResultType& inverse,
-    typename ResultType::Scalar& determinant,
-    bool& invertible,
-    const RealScalar& absDeterminantThreshold
-  ) const
-{
-  // i'd love to put some static assertions there, but SFINAE means that they have no effect...
-  eigen_assert(rows() == cols());
-  // for 2x2, it's worth giving a chance to avoid evaluating.
-  // for larger sizes, evaluating has negligible cost and limits code size.
-  typedef typename internal::conditional<
-    RowsAtCompileTime == 2,
-    typename internal::remove_all<typename internal::nested<Derived, 2>::type>::type,
-    PlainObject
-  >::type MatrixType;
-  internal::compute_inverse_and_det_with_check<MatrixType, ResultType>::run
-    (derived(), absDeterminantThreshold, inverse, determinant, invertible);
-}
-
-/** \lu_module
-  *
-  * Computation of matrix inverse, with invertibility check.
-  *
-  * This is only for fixed-size square matrices of size up to 4x4.
-  *
-  * \param inverse Reference to the matrix in which to store the inverse.
-  * \param invertible Reference to the bool variable in which to store whether the matrix is invertible.
-  * \param absDeterminantThreshold Optional parameter controlling the invertibility check.
-  *                                The matrix will be declared invertible if the absolute value of its
-  *                                determinant is greater than this threshold.
-  *
-  * Example: \include MatrixBase_computeInverseWithCheck.cpp
-  * Output: \verbinclude MatrixBase_computeInverseWithCheck.out
-  *
-  * \sa inverse(), computeInverseAndDetWithCheck()
-  */
-template<typename Derived>
-template<typename ResultType>
-inline void MatrixBase<Derived>::computeInverseWithCheck(
-    ResultType& inverse,
-    bool& invertible,
-    const RealScalar& absDeterminantThreshold
-  ) const
-{
-  RealScalar determinant;
-  // i'd love to put some static assertions there, but SFINAE means that they have no effect...
-  eigen_assert(rows() == cols());
-  computeInverseAndDetWithCheck(inverse,determinant,invertible,absDeterminantThreshold);
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_INVERSE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/LU/PartialPivLU.h b/vendor/eigen-3.1.91/Eigen/src/LU/PartialPivLU.h
deleted file mode 100644
index 740ee69..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/LU/PartialPivLU.h
+++ /dev/null
@@ -1,501 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_PARTIALLU_H
-#define EIGEN_PARTIALLU_H
-
-namespace Eigen { 
-
-/** \ingroup LU_Module
-  *
-  * \class PartialPivLU
-  *
-  * \brief LU decomposition of a matrix with partial pivoting, and related features
-  *
-  * \param MatrixType the type of the matrix of which we are computing the LU decomposition
-  *
-  * This class represents a LU decomposition of a \b square \b invertible matrix, with partial pivoting: the matrix A
-  * is decomposed as A = PLU where L is unit-lower-triangular, U is upper-triangular, and P
-  * is a permutation matrix.
-  *
-  * Typically, partial pivoting LU decomposition is only considered numerically stable for square invertible
-  * matrices. Thus LAPACK's dgesv and dgesvx require the matrix to be square and invertible. The present class
-  * does the same. It will assert that the matrix is square, but it won't (actually it can't) check that the
-  * matrix is invertible: it is your task to check that you only use this decomposition on invertible matrices.
-  *
-  * The guaranteed safe alternative, working for all matrices, is the full pivoting LU decomposition, provided
-  * by class FullPivLU.
-  *
-  * This is \b not a rank-revealing LU decomposition. Many features are intentionally absent from this class,
-  * such as rank computation. If you need these features, use class FullPivLU.
-  *
-  * This LU decomposition is suitable to invert invertible matrices. It is what MatrixBase::inverse() uses
-  * in the general case.
-  * On the other hand, it is \b not suitable to determine whether a given matrix is invertible.
-  *
-  * The data of the LU decomposition can be directly accessed through the methods matrixLU(), permutationP().
-  *
-  * \sa MatrixBase::partialPivLu(), MatrixBase::determinant(), MatrixBase::inverse(), MatrixBase::computeInverse(), class FullPivLU
-  */
-template<typename _MatrixType> class PartialPivLU
-{
-  public:
-
-    typedef _MatrixType MatrixType;
-    enum {
-      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-      Options = MatrixType::Options,
-      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
-    };
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
-    typedef typename internal::traits<MatrixType>::StorageKind StorageKind;
-    typedef typename MatrixType::Index Index;
-    typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationType;
-    typedef Transpositions<RowsAtCompileTime, MaxRowsAtCompileTime> TranspositionType;
-
-
-    /**
-    * \brief Default Constructor.
-    *
-    * The default constructor is useful in cases in which the user intends to
-    * perform decompositions via PartialPivLU::compute(const MatrixType&).
-    */
-    PartialPivLU();
-
-    /** \brief Default Constructor with memory preallocation
-      *
-      * Like the default constructor but with preallocation of the internal data
-      * according to the specified problem \a size.
-      * \sa PartialPivLU()
-      */
-    PartialPivLU(Index size);
-
-    /** Constructor.
-      *
-      * \param matrix the matrix of which to compute the LU decomposition.
-      *
-      * \warning The matrix should have full rank (e.g. if it's square, it should be invertible).
-      * If you need to deal with non-full rank, use class FullPivLU instead.
-      */
-    PartialPivLU(const MatrixType& matrix);
-
-    PartialPivLU& compute(const MatrixType& matrix);
-
-    /** \returns the LU decomposition matrix: the upper-triangular part is U, the
-      * unit-lower-triangular part is L (at least for square matrices; in the non-square
-      * case, special care is needed, see the documentation of class FullPivLU).
-      *
-      * \sa matrixL(), matrixU()
-      */
-    inline const MatrixType& matrixLU() const
-    {
-      eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
-      return m_lu;
-    }
-
-    /** \returns the permutation matrix P.
-      */
-    inline const PermutationType& permutationP() const
-    {
-      eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
-      return m_p;
-    }
-
-    /** This method returns the solution x to the equation Ax=b, where A is the matrix of which
-      * *this is the LU decomposition.
-      *
-      * \param b the right-hand-side of the equation to solve. Can be a vector or a matrix,
-      *          the only requirement in order for the equation to make sense is that
-      *          b.rows()==A.rows(), where A is the matrix of which *this is the LU decomposition.
-      *
-      * \returns the solution.
-      *
-      * Example: \include PartialPivLU_solve.cpp
-      * Output: \verbinclude PartialPivLU_solve.out
-      *
-      * Since this PartialPivLU class assumes anyway that the matrix A is invertible, the solution
-      * theoretically exists and is unique regardless of b.
-      *
-      * \sa TriangularView::solve(), inverse(), computeInverse()
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<PartialPivLU, Rhs>
-    solve(const MatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
-      return internal::solve_retval<PartialPivLU, Rhs>(*this, b.derived());
-    }
-
-    /** \returns the inverse of the matrix of which *this is the LU decomposition.
-      *
-      * \warning The matrix being decomposed here is assumed to be invertible. If you need to check for
-      *          invertibility, use class FullPivLU instead.
-      *
-      * \sa MatrixBase::inverse(), LU::inverse()
-      */
-    inline const internal::solve_retval<PartialPivLU,typename MatrixType::IdentityReturnType> inverse() const
-    {
-      eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
-      return internal::solve_retval<PartialPivLU,typename MatrixType::IdentityReturnType>
-               (*this, MatrixType::Identity(m_lu.rows(), m_lu.cols()));
-    }
-
-    /** \returns the determinant of the matrix of which
-      * *this is the LU decomposition. It has only linear complexity
-      * (that is, O(n) where n is the dimension of the square matrix)
-      * as the LU decomposition has already been computed.
-      *
-      * \note For fixed-size matrices of size up to 4, MatrixBase::determinant() offers
-      *       optimized paths.
-      *
-      * \warning a determinant can be very big or small, so for matrices
-      * of large enough dimension, there is a risk of overflow/underflow.
-      *
-      * \sa MatrixBase::determinant()
-      */
-    typename internal::traits<MatrixType>::Scalar determinant() const;
-
-    MatrixType reconstructedMatrix() const;
-
-    inline Index rows() const { return m_lu.rows(); }
-    inline Index cols() const { return m_lu.cols(); }
-
-  protected:
-    MatrixType m_lu;
-    PermutationType m_p;
-    TranspositionType m_rowsTranspositions;
-    Index m_det_p;
-    bool m_isInitialized;
-};
-
-template<typename MatrixType>
-PartialPivLU<MatrixType>::PartialPivLU()
-  : m_lu(),
-    m_p(),
-    m_rowsTranspositions(),
-    m_det_p(0),
-    m_isInitialized(false)
-{
-}
-
-template<typename MatrixType>
-PartialPivLU<MatrixType>::PartialPivLU(Index size)
-  : m_lu(size, size),
-    m_p(size),
-    m_rowsTranspositions(size),
-    m_det_p(0),
-    m_isInitialized(false)
-{
-}
-
-template<typename MatrixType>
-PartialPivLU<MatrixType>::PartialPivLU(const MatrixType& matrix)
-  : m_lu(matrix.rows(), matrix.rows()),
-    m_p(matrix.rows()),
-    m_rowsTranspositions(matrix.rows()),
-    m_det_p(0),
-    m_isInitialized(false)
-{
-  compute(matrix);
-}
-
-namespace internal {
-
-/** \internal This is the blocked version of fullpivlu_unblocked() */
-template<typename Scalar, int StorageOrder, typename PivIndex>
-struct partial_lu_impl
-{
-  // FIXME add a stride to Map, so that the following mapping becomes easier,
-  // another option would be to create an expression being able to automatically
-  // warp any Map, Matrix, and Block expressions as a unique type, but since that's exactly
-  // a Map + stride, why not adding a stride to Map, and convenient ctors from a Matrix,
-  // and Block.
-  typedef Map<Matrix<Scalar, Dynamic, Dynamic, StorageOrder> > MapLU;
-  typedef Block<MapLU, Dynamic, Dynamic> MatrixType;
-  typedef Block<MatrixType,Dynamic,Dynamic> BlockType;
-  typedef typename MatrixType::RealScalar RealScalar;
-  typedef typename MatrixType::Index Index;
-
-  /** \internal performs the LU decomposition in-place of the matrix \a lu
-    * using an unblocked algorithm.
-    *
-    * In addition, this function returns the row transpositions in the
-    * vector \a row_transpositions which must have a size equal to the number
-    * of columns of the matrix \a lu, and an integer \a nb_transpositions
-    * which returns the actual number of transpositions.
-    *
-    * \returns The index of the first pivot which is exactly zero if any, or a negative number otherwise.
-    */
-  static Index unblocked_lu(MatrixType& lu, PivIndex* row_transpositions, PivIndex& nb_transpositions)
-  {
-    const Index rows = lu.rows();
-    const Index cols = lu.cols();
-    const Index size = (std::min)(rows,cols);
-    nb_transpositions = 0;
-    Index first_zero_pivot = -1;
-    for(Index k = 0; k < size; ++k)
-    {
-      Index rrows = rows-k-1;
-      Index rcols = cols-k-1;
-        
-      Index row_of_biggest_in_col;
-      RealScalar biggest_in_corner
-        = lu.col(k).tail(rows-k).cwiseAbs().maxCoeff(&row_of_biggest_in_col);
-      row_of_biggest_in_col += k;
-
-      row_transpositions[k] = PivIndex(row_of_biggest_in_col);
-
-      if(biggest_in_corner != RealScalar(0))
-      {
-        if(k != row_of_biggest_in_col)
-        {
-          lu.row(k).swap(lu.row(row_of_biggest_in_col));
-          ++nb_transpositions;
-        }
-
-        // FIXME shall we introduce a safe quotient expression in cas 1/lu.coeff(k,k)
-        // overflow but not the actual quotient?
-        lu.col(k).tail(rrows) /= lu.coeff(k,k);
-      }
-      else if(first_zero_pivot==-1)
-      {
-        // the pivot is exactly zero, we record the index of the first pivot which is exactly 0,
-        // and continue the factorization such we still have A = PLU
-        first_zero_pivot = k;
-      }
-
-      if(k<rows-1)
-        lu.bottomRightCorner(rrows,rcols).noalias() -= lu.col(k).tail(rrows) * lu.row(k).tail(rcols);
-    }
-    return first_zero_pivot;
-  }
-
-  /** \internal performs the LU decomposition in-place of the matrix represented
-    * by the variables \a rows, \a cols, \a lu_data, and \a lu_stride using a
-    * recursive, blocked algorithm.
-    *
-    * In addition, this function returns the row transpositions in the
-    * vector \a row_transpositions which must have a size equal to the number
-    * of columns of the matrix \a lu, and an integer \a nb_transpositions
-    * which returns the actual number of transpositions.
-    *
-    * \returns The index of the first pivot which is exactly zero if any, or a negative number otherwise.
-    *
-    * \note This very low level interface using pointers, etc. is to:
-    *   1 - reduce the number of instanciations to the strict minimum
-    *   2 - avoid infinite recursion of the instanciations with Block<Block<Block<...> > >
-    */
-  static Index blocked_lu(Index rows, Index cols, Scalar* lu_data, Index luStride, PivIndex* row_transpositions, PivIndex& nb_transpositions, Index maxBlockSize=256)
-  {
-    MapLU lu1(lu_data,StorageOrder==RowMajor?rows:luStride,StorageOrder==RowMajor?luStride:cols);
-    MatrixType lu(lu1,0,0,rows,cols);
-
-    const Index size = (std::min)(rows,cols);
-
-    // if the matrix is too small, no blocking:
-    if(size<=16)
-    {
-      return unblocked_lu(lu, row_transpositions, nb_transpositions);
-    }
-
-    // automatically adjust the number of subdivisions to the size
-    // of the matrix so that there is enough sub blocks:
-    Index blockSize;
-    {
-      blockSize = size/8;
-      blockSize = (blockSize/16)*16;
-      blockSize = (std::min)((std::max)(blockSize,Index(8)), maxBlockSize);
-    }
-
-    nb_transpositions = 0;
-    Index first_zero_pivot = -1;
-    for(Index k = 0; k < size; k+=blockSize)
-    {
-      Index bs = (std::min)(size-k,blockSize); // actual size of the block
-      Index trows = rows - k - bs; // trailing rows
-      Index tsize = size - k - bs; // trailing size
-
-      // partition the matrix:
-      //                          A00 | A01 | A02
-      // lu  = A_0 | A_1 | A_2 =  A10 | A11 | A12
-      //                          A20 | A21 | A22
-      BlockType A_0(lu,0,0,rows,k);
-      BlockType A_2(lu,0,k+bs,rows,tsize);
-      BlockType A11(lu,k,k,bs,bs);
-      BlockType A12(lu,k,k+bs,bs,tsize);
-      BlockType A21(lu,k+bs,k,trows,bs);
-      BlockType A22(lu,k+bs,k+bs,trows,tsize);
-
-      PivIndex nb_transpositions_in_panel;
-      // recursively call the blocked LU algorithm on [A11^T A21^T]^T
-      // with a very small blocking size:
-      Index ret = blocked_lu(trows+bs, bs, &lu.coeffRef(k,k), luStride,
-                   row_transpositions+k, nb_transpositions_in_panel, 16);
-      if(ret>=0 && first_zero_pivot==-1)
-        first_zero_pivot = k+ret;
-
-      nb_transpositions += nb_transpositions_in_panel;
-      // update permutations and apply them to A_0
-      for(Index i=k; i<k+bs; ++i)
-      {
-        Index piv = (row_transpositions[i] += k);
-        A_0.row(i).swap(A_0.row(piv));
-      }
-
-      if(trows)
-      {
-        // apply permutations to A_2
-        for(Index i=k;i<k+bs; ++i)
-          A_2.row(i).swap(A_2.row(row_transpositions[i]));
-
-        // A12 = A11^-1 A12
-        A11.template triangularView<UnitLower>().solveInPlace(A12);
-
-        A22.noalias() -= A21 * A12;
-      }
-    }
-    return first_zero_pivot;
-  }
-};
-
-/** \internal performs the LU decomposition with partial pivoting in-place.
-  */
-template<typename MatrixType, typename TranspositionType>
-void partial_lu_inplace(MatrixType& lu, TranspositionType& row_transpositions, typename TranspositionType::Index& nb_transpositions)
-{
-  eigen_assert(lu.cols() == row_transpositions.size());
-  eigen_assert((&row_transpositions.coeffRef(1)-&row_transpositions.coeffRef(0)) == 1);
-
-  partial_lu_impl
-    <typename MatrixType::Scalar, MatrixType::Flags&RowMajorBit?RowMajor:ColMajor, typename TranspositionType::Index>
-    ::blocked_lu(lu.rows(), lu.cols(), &lu.coeffRef(0,0), lu.outerStride(), &row_transpositions.coeffRef(0), nb_transpositions);
-}
-
-} // end namespace internal
-
-template<typename MatrixType>
-PartialPivLU<MatrixType>& PartialPivLU<MatrixType>::compute(const MatrixType& matrix)
-{
-  // the row permutation is stored as int indices, so just to be sure:
-  eigen_assert(matrix.rows()<NumTraits<int>::highest());
-  
-  m_lu = matrix;
-
-  eigen_assert(matrix.rows() == matrix.cols() && "PartialPivLU is only for square (and moreover invertible) matrices");
-  const Index size = matrix.rows();
-
-  m_rowsTranspositions.resize(size);
-
-  typename TranspositionType::Index nb_transpositions;
-  internal::partial_lu_inplace(m_lu, m_rowsTranspositions, nb_transpositions);
-  m_det_p = (nb_transpositions%2) ? -1 : 1;
-
-  m_p = m_rowsTranspositions;
-
-  m_isInitialized = true;
-  return *this;
-}
-
-template<typename MatrixType>
-typename internal::traits<MatrixType>::Scalar PartialPivLU<MatrixType>::determinant() const
-{
-  eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
-  return Scalar(m_det_p) * m_lu.diagonal().prod();
-}
-
-/** \returns the matrix represented by the decomposition,
- * i.e., it returns the product: P^{-1} L U.
- * This function is provided for debug purpose. */
-template<typename MatrixType>
-MatrixType PartialPivLU<MatrixType>::reconstructedMatrix() const
-{
-  eigen_assert(m_isInitialized && "LU is not initialized.");
-  // LU
-  MatrixType res = m_lu.template triangularView<UnitLower>().toDenseMatrix()
-                 * m_lu.template triangularView<Upper>();
-
-  // P^{-1}(LU)
-  res = m_p.inverse() * res;
-
-  return res;
-}
-
-/***** Implementation of solve() *****************************************************/
-
-namespace internal {
-
-template<typename _MatrixType, typename Rhs>
-struct solve_retval<PartialPivLU<_MatrixType>, Rhs>
-  : solve_retval_base<PartialPivLU<_MatrixType>, Rhs>
-{
-  EIGEN_MAKE_SOLVE_HELPERS(PartialPivLU<_MatrixType>,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    /* The decomposition PA = LU can be rewritten as A = P^{-1} L U.
-    * So we proceed as follows:
-    * Step 1: compute c = Pb.
-    * Step 2: replace c by the solution x to Lx = c.
-    * Step 3: replace c by the solution x to Ux = c.
-    */
-
-    eigen_assert(rhs().rows() == dec().matrixLU().rows());
-
-    // Step 1
-    dst = dec().permutationP() * rhs();
-
-    // Step 2
-    dec().matrixLU().template triangularView<UnitLower>().solveInPlace(dst);
-
-    // Step 3
-    dec().matrixLU().template triangularView<Upper>().solveInPlace(dst);
-  }
-};
-
-} // end namespace internal
-
-/******** MatrixBase methods *******/
-
-/** \lu_module
-  *
-  * \return the partial-pivoting LU decomposition of \c *this.
-  *
-  * \sa class PartialPivLU
-  */
-template<typename Derived>
-inline const PartialPivLU<typename MatrixBase<Derived>::PlainObject>
-MatrixBase<Derived>::partialPivLu() const
-{
-  return PartialPivLU<PlainObject>(eval());
-}
-
-#if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
-/** \lu_module
-  *
-  * Synonym of partialPivLu().
-  *
-  * \return the partial-pivoting LU decomposition of \c *this.
-  *
-  * \sa class PartialPivLU
-  */
-template<typename Derived>
-inline const PartialPivLU<typename MatrixBase<Derived>::PlainObject>
-MatrixBase<Derived>::lu() const
-{
-  return PartialPivLU<PlainObject>(eval());
-}
-#endif
-
-} // end namespace Eigen
-
-#endif // EIGEN_PARTIALLU_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/MetisSupport/MetisSupport.h b/vendor/eigen-3.1.91/Eigen/src/MetisSupport/MetisSupport.h
deleted file mode 100644
index 818355e..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/MetisSupport/MetisSupport.h
+++ /dev/null
@@ -1,137 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#ifndef METIS_SUPPORT_H
-#define METIS_SUPPORT_H
-
-namespace Eigen {
-/**
- * Get the fill-reducing ordering from the METIS package
- * 
- * If A is the original matrix and Ap is the permuted matrix, 
- * the fill-reducing permutation is defined as follows :
- * Row (column) i of A is the matperm(i) row (column) of Ap. 
- * WARNING: As computed by METIS, this corresponds to the vector iperm (instead of perm)
- */
-template <typename Index>
-class MetisOrdering
-{
-public:
-  typedef PermutationMatrix<Dynamic,Dynamic,Index> PermutationType;
-  typedef Matrix<Index,Dynamic,1> IndexVector; 
-  
-  template <typename MatrixType>
-  void get_symmetrized_graph(const MatrixType& A)
-  {
-    Index m = A.cols(); 
-    eigen_assert((A.rows() == A.cols()) && "ONLY FOR SQUARED MATRICES");
-    // Get the transpose of the input matrix 
-    MatrixType At = A.transpose(); 
-    // Get the number of nonzeros elements in each row/col of At+A
-    Index TotNz = 0; 
-    IndexVector visited(m); 
-    visited.setConstant(-1); 
-    for (int j = 0; j < m; j++)
-    {
-      // Compute the union structure of of A(j,:) and At(j,:)
-      visited(j) = j; // Do not include the diagonal element
-      // Get the nonzeros in row/column j of A
-      for (typename MatrixType::InnerIterator it(A, j); it; ++it)
-      {
-        Index idx = it.index(); // Get the row index (for column major) or column index (for row major)
-        if (visited(idx) != j ) 
-        {
-          visited(idx) = j; 
-          ++TotNz; 
-        }
-      }
-      //Get the nonzeros in row/column j of At
-      for (typename MatrixType::InnerIterator it(At, j); it; ++it)
-      {
-        Index idx = it.index(); 
-        if(visited(idx) != j)
-        {
-          visited(idx) = j; 
-          ++TotNz; 
-        }
-      }
-    }
-    // Reserve place for A + At
-    m_indexPtr.resize(m+1);
-    m_innerIndices.resize(TotNz); 
-
-    // Now compute the real adjacency list of each column/row 
-    visited.setConstant(-1); 
-    Index CurNz = 0; 
-    for (int j = 0; j < m; j++)
-    {
-      m_indexPtr(j) = CurNz; 
-      
-      visited(j) = j; // Do not include the diagonal element
-      // Add the pattern of row/column j of A to A+At
-      for (typename MatrixType::InnerIterator it(A,j); it; ++it)
-      {
-        Index idx = it.index(); // Get the row index (for column major) or column index (for row major)
-        if (visited(idx) != j ) 
-        {
-          visited(idx) = j; 
-          m_innerIndices(CurNz) = idx; 
-          CurNz++; 
-        }
-      }
-      //Add the pattern of row/column j of At to A+At
-      for (typename MatrixType::InnerIterator it(At, j); it; ++it)
-      {
-        Index idx = it.index(); 
-        if(visited(idx) != j)
-        {
-          visited(idx) = j; 
-          m_innerIndices(CurNz) = idx; 
-          ++CurNz; 
-        }
-      }
-    }
-    m_indexPtr(m) = CurNz;    
-  }
-  
-  template <typename MatrixType>
-  void operator() (const MatrixType& A, PermutationType& matperm)
-  {
-     Index m = A.cols();
-     IndexVector perm(m),iperm(m); 
-    // First, symmetrize the matrix graph. 
-     get_symmetrized_graph(A); 
-     int output_error;
-     
-     // Call the fill-reducing routine from METIS 
-     output_error = METIS_NodeND(&m, m_indexPtr.data(), m_innerIndices.data(), NULL, NULL, perm.data(), iperm.data());
-     
-    if(output_error != METIS_OK) 
-    {
-      //FIXME The ordering interface should define a class of possible errors 
-     std::cerr << "ERROR WHILE CALLING THE METIS PACKAGE \n"; 
-     return; 
-    }
-    
-    // Get the fill-reducing permutation 
-    //NOTE:  If Ap is the permuted matrix then perm and iperm vectors are defined as follows 
-    // Row (column) i of Ap is the perm(i) row(column) of A, and row (column) i of A is the iperm(i) row(column) of Ap
-    
-     matperm.resize(m);
-     for (int j = 0; j < m; j++)
-       matperm.indices()(iperm(j)) = j;
-   
-  }
-  
-  protected:
-    IndexVector m_indexPtr; // Pointer to the adjacenccy list of each row/column
-    IndexVector m_innerIndices; // Adjacency list 
-};
-
-}// end namespace eigen 
-#endif
\ No newline at end of file
diff --git a/vendor/eigen-3.1.91/Eigen/src/OrderingMethods/Amd.h b/vendor/eigen-3.1.91/Eigen/src/OrderingMethods/Amd.h
deleted file mode 100644
index 41b4fd7..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/OrderingMethods/Amd.h
+++ /dev/null
@@ -1,435 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-
-/*
-
-NOTE: this routine has been adapted from the CSparse library:
-
-Copyright (c) 2006, Timothy A. Davis.
-http://www.cise.ufl.edu/research/sparse/CSparse
-
-CSparse is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-CSparse is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this Module; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-*/
-
-#include "../Core/util/NonMPL2.h"
-
-#ifndef EIGEN_SPARSE_AMD_H
-#define EIGEN_SPARSE_AMD_H
-
-namespace Eigen { 
-
-namespace internal {
-  
-template<typename T> inline T amd_flip(const T& i) { return -i-2; }
-template<typename T> inline T amd_unflip(const T& i) { return i<0 ? amd_flip(i) : i; }
-template<typename T0, typename T1> inline bool amd_marked(const T0* w, const T1& j) { return w[j]<0; }
-template<typename T0, typename T1> inline void amd_mark(const T0* w, const T1& j) { return w[j] = amd_flip(w[j]); }
-
-/* clear w */
-template<typename Index>
-static int cs_wclear (Index mark, Index lemax, Index *w, Index n)
-{
-  Index k;
-  if(mark < 2 || (mark + lemax < 0))
-  {
-    for(k = 0; k < n; k++)
-      if(w[k] != 0)
-        w[k] = 1;
-    mark = 2;
-  }
-  return (mark);     /* at this point, w[0..n-1] < mark holds */
-}
-
-/* depth-first search and postorder of a tree rooted at node j */
-template<typename Index>
-Index cs_tdfs(Index j, Index k, Index *head, const Index *next, Index *post, Index *stack)
-{
-  int i, p, top = 0;
-  if(!head || !next || !post || !stack) return (-1);    /* check inputs */
-  stack[0] = j;                 /* place j on the stack */
-  while (top >= 0)                /* while (stack is not empty) */
-  {
-    p = stack[top];           /* p = top of stack */
-    i = head[p];              /* i = youngest child of p */
-    if(i == -1)
-    {
-      top--;                 /* p has no unordered children left */
-      post[k++] = p;        /* node p is the kth postordered node */
-    }
-    else
-    {
-      head[p] = next[i];   /* remove i from children of p */
-      stack[++top] = i;     /* start dfs on child node i */
-    }
-  }
-  return k;
-}
-
-
-/** \internal
-  * \ingroup OrderingMethods_Module 
-  * Approximate minimum degree ordering algorithm.
-  * \returns the permutation P reducing the fill-in of the input matrix \a C
-  * The input matrix \a C must be a selfadjoint compressed column major SparseMatrix object. Both the upper and lower parts have to be stored, but the diagonal entries are optional.
-  * On exit the values of C are destroyed */
-template<typename Scalar, typename Index>
-void minimum_degree_ordering(SparseMatrix<Scalar,ColMajor,Index>& C, PermutationMatrix<Dynamic,Dynamic,Index>& perm)
-{
-  using std::sqrt;
-  
-  int d, dk, dext, lemax = 0, e, elenk, eln, i, j, k, k1,
-      k2, k3, jlast, ln, dense, nzmax, mindeg = 0, nvi, nvj, nvk, mark, wnvi,
-      ok, nel = 0, p, p1, p2, p3, p4, pj, pk, pk1, pk2, pn, q, t;
-  unsigned int h;
-  
-  Index n = C.cols();
-  dense = std::max<Index> (16, Index(10 * sqrt(double(n))));   /* find dense threshold */
-  dense = std::min<Index> (n-2, dense);
-  
-  Index cnz = C.nonZeros();
-  perm.resize(n+1);
-  t = cnz + cnz/5 + 2*n;                 /* add elbow room to C */
-  C.resizeNonZeros(t);
-  
-  Index* W       = new Index[8*(n+1)]; /* get workspace */
-  Index* len     = W;
-  Index* nv      = W +   (n+1);
-  Index* next    = W + 2*(n+1);
-  Index* head    = W + 3*(n+1);
-  Index* elen    = W + 4*(n+1);
-  Index* degree  = W + 5*(n+1);
-  Index* w       = W + 6*(n+1);
-  Index* hhead   = W + 7*(n+1);
-  Index* last    = perm.indices().data();                              /* use P as workspace for last */
-  
-  /* --- Initialize quotient graph ---------------------------------------- */
-  Index* Cp = C.outerIndexPtr();
-  Index* Ci = C.innerIndexPtr();
-  for(k = 0; k < n; k++)
-    len[k] = Cp[k+1] - Cp[k];
-  len[n] = 0;
-  nzmax = t;
-  
-  for(i = 0; i <= n; i++)
-  {
-    head[i]   = -1;                     // degree list i is empty
-    last[i]   = -1;
-    next[i]   = -1;
-    hhead[i]  = -1;                     // hash list i is empty 
-    nv[i]     = 1;                      // node i is just one node
-    w[i]      = 1;                      // node i is alive
-    elen[i]   = 0;                      // Ek of node i is empty
-    degree[i] = len[i];                 // degree of node i
-  }
-  mark = internal::cs_wclear<Index>(0, 0, w, n);         /* clear w */
-  elen[n] = -2;                         /* n is a dead element */
-  Cp[n] = -1;                           /* n is a root of assembly tree */
-  w[n] = 0;                             /* n is a dead element */
-  
-  /* --- Initialize degree lists ------------------------------------------ */
-  for(i = 0; i < n; i++)
-  {
-    d = degree[i];
-    if(d == 0)                         /* node i is empty */
-    {
-      elen[i] = -2;                 /* element i is dead */
-      nel++;
-      Cp[i] = -1;                   /* i is a root of assembly tree */
-      w[i] = 0;
-    }
-    else if(d > dense)                 /* node i is dense */
-    {
-      nv[i] = 0;                    /* absorb i into element n */
-      elen[i] = -1;                 /* node i is dead */
-      nel++;
-      Cp[i] = amd_flip (n);
-      nv[n]++;
-    }
-    else
-    {
-      if(head[d] != -1) last[head[d]] = i;
-      next[i] = head[d];           /* put node i in degree list d */
-      head[d] = i;
-    }
-  }
-  
-  while (nel < n)                         /* while (selecting pivots) do */
-  {
-    /* --- Select node of minimum approximate degree -------------------- */
-    for(k = -1; mindeg < n && (k = head[mindeg]) == -1; mindeg++) {}
-    if(next[k] != -1) last[next[k]] = -1;
-    head[mindeg] = next[k];          /* remove k from degree list */
-    elenk = elen[k];                  /* elenk = |Ek| */
-    nvk = nv[k];                      /* # of nodes k represents */
-    nel += nvk;                        /* nv[k] nodes of A eliminated */
-    
-    /* --- Garbage collection ------------------------------------------- */
-    if(elenk > 0 && cnz + mindeg >= nzmax)
-    {
-      for(j = 0; j < n; j++)
-      {
-        if((p = Cp[j]) >= 0)      /* j is a live node or element */
-        {
-          Cp[j] = Ci[p];          /* save first entry of object */
-          Ci[p] = amd_flip (j);    /* first entry is now amd_flip(j) */
-        }
-      }
-      for(q = 0, p = 0; p < cnz; ) /* scan all of memory */
-      {
-        if((j = amd_flip (Ci[p++])) >= 0)  /* found object j */
-        {
-          Ci[q] = Cp[j];       /* restore first entry of object */
-          Cp[j] = q++;          /* new pointer to object j */
-          for(k3 = 0; k3 < len[j]-1; k3++) Ci[q++] = Ci[p++];
-        }
-      }
-      cnz = q;                       /* Ci[cnz...nzmax-1] now free */
-    }
-    
-    /* --- Construct new element ---------------------------------------- */
-    dk = 0;
-    nv[k] = -nvk;                     /* flag k as in Lk */
-    p = Cp[k];
-    pk1 = (elenk == 0) ? p : cnz;      /* do in place if elen[k] == 0 */
-    pk2 = pk1;
-    for(k1 = 1; k1 <= elenk + 1; k1++)
-    {
-      if(k1 > elenk)
-      {
-        e = k;                     /* search the nodes in k */
-        pj = p;                    /* list of nodes starts at Ci[pj]*/
-        ln = len[k] - elenk;      /* length of list of nodes in k */
-      }
-      else
-      {
-        e = Ci[p++];              /* search the nodes in e */
-        pj = Cp[e];
-        ln = len[e];              /* length of list of nodes in e */
-      }
-      for(k2 = 1; k2 <= ln; k2++)
-      {
-        i = Ci[pj++];
-        if((nvi = nv[i]) <= 0) continue; /* node i dead, or seen */
-        dk += nvi;                 /* degree[Lk] += size of node i */
-        nv[i] = -nvi;             /* negate nv[i] to denote i in Lk*/
-        Ci[pk2++] = i;            /* place i in Lk */
-        if(next[i] != -1) last[next[i]] = last[i];
-        if(last[i] != -1)         /* remove i from degree list */
-        {
-          next[last[i]] = next[i];
-        }
-        else
-        {
-          head[degree[i]] = next[i];
-        }
-      }
-      if(e != k)
-      {
-        Cp[e] = amd_flip (k);      /* absorb e into k */
-        w[e] = 0;                 /* e is now a dead element */
-      }
-    }
-    if(elenk != 0) cnz = pk2;         /* Ci[cnz...nzmax] is free */
-    degree[k] = dk;                   /* external degree of k - |Lk\i| */
-    Cp[k] = pk1;                      /* element k is in Ci[pk1..pk2-1] */
-    len[k] = pk2 - pk1;
-    elen[k] = -2;                     /* k is now an element */
-    
-    /* --- Find set differences ----------------------------------------- */
-    mark = internal::cs_wclear<Index>(mark, lemax, w, n);  /* clear w if necessary */
-    for(pk = pk1; pk < pk2; pk++)    /* scan 1: find |Le\Lk| */
-    {
-      i = Ci[pk];
-      if((eln = elen[i]) <= 0) continue;/* skip if elen[i] empty */
-      nvi = -nv[i];                      /* nv[i] was negated */
-      wnvi = mark - nvi;
-      for(p = Cp[i]; p <= Cp[i] + eln - 1; p++)  /* scan Ei */
-      {
-        e = Ci[p];
-        if(w[e] >= mark)
-        {
-          w[e] -= nvi;          /* decrement |Le\Lk| */
-        }
-        else if(w[e] != 0)        /* ensure e is a live element */
-        {
-          w[e] = degree[e] + wnvi; /* 1st time e seen in scan 1 */
-        }
-      }
-    }
-    
-    /* --- Degree update ------------------------------------------------ */
-    for(pk = pk1; pk < pk2; pk++)    /* scan2: degree update */
-    {
-      i = Ci[pk];                   /* consider node i in Lk */
-      p1 = Cp[i];
-      p2 = p1 + elen[i] - 1;
-      pn = p1;
-      for(h = 0, d = 0, p = p1; p <= p2; p++)    /* scan Ei */
-      {
-        e = Ci[p];
-        if(w[e] != 0)             /* e is an unabsorbed element */
-        {
-          dext = w[e] - mark;   /* dext = |Le\Lk| */
-          if(dext > 0)
-          {
-            d += dext;         /* sum up the set differences */
-            Ci[pn++] = e;     /* keep e in Ei */
-            h += e;            /* compute the hash of node i */
-          }
-          else
-          {
-            Cp[e] = amd_flip (k);  /* aggressive absorb. e->k */
-            w[e] = 0;             /* e is a dead element */
-          }
-        }
-      }
-      elen[i] = pn - p1 + 1;        /* elen[i] = |Ei| */
-      p3 = pn;
-      p4 = p1 + len[i];
-      for(p = p2 + 1; p < p4; p++) /* prune edges in Ai */
-      {
-        j = Ci[p];
-        if((nvj = nv[j]) <= 0) continue; /* node j dead or in Lk */
-        d += nvj;                  /* degree(i) += |j| */
-        Ci[pn++] = j;             /* place j in node list of i */
-        h += j;                    /* compute hash for node i */
-      }
-      if(d == 0)                     /* check for mass elimination */
-      {
-        Cp[i] = amd_flip (k);      /* absorb i into k */
-        nvi = -nv[i];
-        dk -= nvi;                 /* |Lk| -= |i| */
-        nvk += nvi;                /* |k| += nv[i] */
-        nel += nvi;
-        nv[i] = 0;
-        elen[i] = -1;             /* node i is dead */
-      }
-      else
-      {
-        degree[i] = std::min<Index> (degree[i], d);   /* update degree(i) */
-        Ci[pn] = Ci[p3];         /* move first node to end */
-        Ci[p3] = Ci[p1];         /* move 1st el. to end of Ei */
-        Ci[p1] = k;               /* add k as 1st element in of Ei */
-        len[i] = pn - p1 + 1;     /* new len of adj. list of node i */
-        h %= n;                    /* finalize hash of i */
-        next[i] = hhead[h];      /* place i in hash bucket */
-        hhead[h] = i;
-        last[i] = h;              /* save hash of i in last[i] */
-      }
-    }                                   /* scan2 is done */
-    degree[k] = dk;                   /* finalize |Lk| */
-    lemax = std::max<Index>(lemax, dk);
-    mark = internal::cs_wclear<Index>(mark+lemax, lemax, w, n);    /* clear w */
-    
-    /* --- Supernode detection ------------------------------------------ */
-    for(pk = pk1; pk < pk2; pk++)
-    {
-      i = Ci[pk];
-      if(nv[i] >= 0) continue;         /* skip if i is dead */
-      h = last[i];                      /* scan hash bucket of node i */
-      i = hhead[h];
-      hhead[h] = -1;                    /* hash bucket will be empty */
-      for(; i != -1 && next[i] != -1; i = next[i], mark++)
-      {
-        ln = len[i];
-        eln = elen[i];
-        for(p = Cp[i]+1; p <= Cp[i] + ln-1; p++) w[Ci[p]] = mark;
-        jlast = i;
-        for(j = next[i]; j != -1; ) /* compare i with all j */
-        {
-          ok = (len[j] == ln) && (elen[j] == eln);
-          for(p = Cp[j] + 1; ok && p <= Cp[j] + ln - 1; p++)
-          {
-            if(w[Ci[p]] != mark) ok = 0;    /* compare i and j*/
-          }
-          if(ok)                     /* i and j are identical */
-          {
-            Cp[j] = amd_flip (i);  /* absorb j into i */
-            nv[i] += nv[j];
-            nv[j] = 0;
-            elen[j] = -1;         /* node j is dead */
-            j = next[j];          /* delete j from hash bucket */
-            next[jlast] = j;
-          }
-          else
-          {
-            jlast = j;             /* j and i are different */
-            j = next[j];
-          }
-        }
-      }
-    }
-    
-    /* --- Finalize new element------------------------------------------ */
-    for(p = pk1, pk = pk1; pk < pk2; pk++)   /* finalize Lk */
-    {
-      i = Ci[pk];
-      if((nvi = -nv[i]) <= 0) continue;/* skip if i is dead */
-      nv[i] = nvi;                      /* restore nv[i] */
-      d = degree[i] + dk - nvi;         /* compute external degree(i) */
-      d = std::min<Index> (d, n - nel - nvi);
-      if(head[d] != -1) last[head[d]] = i;
-      next[i] = head[d];               /* put i back in degree list */
-      last[i] = -1;
-      head[d] = i;
-      mindeg = std::min<Index> (mindeg, d);       /* find new minimum degree */
-      degree[i] = d;
-      Ci[p++] = i;                      /* place i in Lk */
-    }
-    nv[k] = nvk;                      /* # nodes absorbed into k */
-    if((len[k] = p-pk1) == 0)         /* length of adj list of element k*/
-    {
-      Cp[k] = -1;                   /* k is a root of the tree */
-      w[k] = 0;                     /* k is now a dead element */
-    }
-    if(elenk != 0) cnz = p;           /* free unused space in Lk */
-  }
-  
-  /* --- Postordering ----------------------------------------------------- */
-  for(i = 0; i < n; i++) Cp[i] = amd_flip (Cp[i]);/* fix assembly tree */
-  for(j = 0; j <= n; j++) head[j] = -1;
-  for(j = n; j >= 0; j--)              /* place unordered nodes in lists */
-  {
-    if(nv[j] > 0) continue;          /* skip if j is an element */
-    next[j] = head[Cp[j]];          /* place j in list of its parent */
-    head[Cp[j]] = j;
-  }
-  for(e = n; e >= 0; e--)              /* place elements in lists */
-  {
-    if(nv[e] <= 0) continue;         /* skip unless e is an element */
-    if(Cp[e] != -1)
-    {
-      next[e] = head[Cp[e]];      /* place e in list of its parent */
-      head[Cp[e]] = e;
-    }
-  }
-  for(k = 0, i = 0; i <= n; i++)       /* postorder the assembly tree */
-  {
-    if(Cp[i] == -1) k = internal::cs_tdfs<Index>(i, k, head, next, perm.indices().data(), w);
-  }
-  
-  perm.indices().conservativeResize(n);
-
-  delete[] W;
-}
-
-} // namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSE_AMD_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/OrderingMethods/Eigen_Colamd.h b/vendor/eigen-3.1.91/Eigen/src/OrderingMethods/Eigen_Colamd.h
deleted file mode 100644
index 44548f6..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/OrderingMethods/Eigen_Colamd.h
+++ /dev/null
@@ -1,1850 +0,0 @@
-// // This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Desire Nuentsa Wakam <desire.nuentsa_wakam at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-// This file is modified from the colamd/symamd library. The copyright is below
-
-//   The authors of the code itself are Stefan I. Larimore and Timothy A.
-//   Davis (davis at cise.ufl.edu), University of Florida.  The algorithm was
-//   developed in collaboration with John Gilbert, Xerox PARC, and Esmond
-//   Ng, Oak Ridge National Laboratory.
-// 
-//     Date:
-// 
-//   September 8, 2003.  Version 2.3.
-// 
-//     Acknowledgements:
-// 
-//   This work was supported by the National Science Foundation, under
-//   grants DMS-9504974 and DMS-9803599.
-// 
-//     Notice:
-// 
-//   Copyright (c) 1998-2003 by the University of Florida.
-//   All Rights Reserved.
-// 
-//   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
-//   EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
-// 
-//   Permission is hereby granted to use, copy, modify, and/or distribute
-//   this program, provided that the Copyright, this License, and the
-//   Availability of the original version is retained on all copies and made
-//   accessible to the end-user of any code or package that includes COLAMD
-//   or any modified version of COLAMD. 
-// 
-//     Availability:
-// 
-//   The colamd/symamd library is available at
-// 
-//       http://www.cise.ufl.edu/research/sparse/colamd/
-
-//   This is the http://www.cise.ufl.edu/research/sparse/colamd/colamd.h
-//   file.  It is required by the colamd.c, colamdmex.c, and symamdmex.c
-//   files, and by any C code that calls the routines whose prototypes are
-//   listed below, or that uses the colamd/symamd definitions listed below.
-  
-#ifndef EIGEN_COLAMD_H
-#define EIGEN_COLAMD_H
-
-namespace internal {
-/* Ensure that debugging is turned off: */
-#ifndef COLAMD_NDEBUG
-#define COLAMD_NDEBUG
-#endif /* NDEBUG */
-/* ========================================================================== */
-/* === Knob and statistics definitions ====================================== */
-/* ========================================================================== */
-
-/* size of the knobs [ ] array.  Only knobs [0..1] are currently used. */
-#define COLAMD_KNOBS 20
-
-/* number of output statistics.  Only stats [0..6] are currently used. */
-#define COLAMD_STATS 20 
-
-/* knobs [0] and stats [0]: dense row knob and output statistic. */
-#define COLAMD_DENSE_ROW 0
-
-/* knobs [1] and stats [1]: dense column knob and output statistic. */
-#define COLAMD_DENSE_COL 1
-
-/* stats [2]: memory defragmentation count output statistic */
-#define COLAMD_DEFRAG_COUNT 2
-
-/* stats [3]: colamd status:  zero OK, > 0 warning or notice, < 0 error */
-#define COLAMD_STATUS 3
-
-/* stats [4..6]: error info, or info on jumbled columns */ 
-#define COLAMD_INFO1 4
-#define COLAMD_INFO2 5
-#define COLAMD_INFO3 6
-
-/* error codes returned in stats [3]: */
-#define COLAMD_OK       (0)
-#define COLAMD_OK_BUT_JUMBLED     (1)
-#define COLAMD_ERROR_A_not_present    (-1)
-#define COLAMD_ERROR_p_not_present    (-2)
-#define COLAMD_ERROR_nrow_negative    (-3)
-#define COLAMD_ERROR_ncol_negative    (-4)
-#define COLAMD_ERROR_nnz_negative   (-5)
-#define COLAMD_ERROR_p0_nonzero     (-6)
-#define COLAMD_ERROR_A_too_small    (-7)
-#define COLAMD_ERROR_col_length_negative  (-8)
-#define COLAMD_ERROR_row_index_out_of_bounds  (-9)
-#define COLAMD_ERROR_out_of_memory    (-10)
-#define COLAMD_ERROR_internal_error   (-999)
-
-/* ========================================================================== */
-/* === Definitions ========================================================== */
-/* ========================================================================== */
-
-#define COLAMD_MAX(a,b) (((a) > (b)) ? (a) : (b))
-#define COLAMD_MIN(a,b) (((a) < (b)) ? (a) : (b))
-
-#define ONES_COMPLEMENT(r) (-(r)-1)
-
-/* -------------------------------------------------------------------------- */
-
-#define COLAMD_EMPTY (-1)
-
-/* Row and column status */
-#define ALIVE (0)
-#define DEAD  (-1)
-
-/* Column status */
-#define DEAD_PRINCIPAL    (-1)
-#define DEAD_NON_PRINCIPAL  (-2)
-
-/* Macros for row and column status update and checking. */
-#define ROW_IS_DEAD(r)      ROW_IS_MARKED_DEAD (Row[r].shared2.mark)
-#define ROW_IS_MARKED_DEAD(row_mark)  (row_mark < ALIVE)
-#define ROW_IS_ALIVE(r)     (Row [r].shared2.mark >= ALIVE)
-#define COL_IS_DEAD(c)      (Col [c].start < ALIVE)
-#define COL_IS_ALIVE(c)     (Col [c].start >= ALIVE)
-#define COL_IS_DEAD_PRINCIPAL(c)  (Col [c].start == DEAD_PRINCIPAL)
-#define KILL_ROW(r)     { Row [r].shared2.mark = DEAD ; }
-#define KILL_PRINCIPAL_COL(c)   { Col [c].start = DEAD_PRINCIPAL ; }
-#define KILL_NON_PRINCIPAL_COL(c) { Col [c].start = DEAD_NON_PRINCIPAL ; }
-
-/* ========================================================================== */
-/* === Colamd reporting mechanism =========================================== */
-/* ========================================================================== */
-
-// == Row and Column structures ==
-template <typename Index>
-struct colamd_col
-{
-  Index start ;   /* index for A of first row in this column, or DEAD */
-  /* if column is dead */
-  Index length ;  /* number of rows in this column */
-  union
-  {
-    Index thickness ; /* number of original columns represented by this */
-    /* col, if the column is alive */
-    Index parent ;  /* parent in parent tree super-column structure, if */
-    /* the column is dead */
-  } shared1 ;
-  union
-  {
-    Index score ; /* the score used to maintain heap, if col is alive */
-    Index order ; /* pivot ordering of this column, if col is dead */
-  } shared2 ;
-  union
-  {
-    Index headhash ;  /* head of a hash bucket, if col is at the head of */
-    /* a degree list */
-    Index hash ;  /* hash value, if col is not in a degree list */
-    Index prev ;  /* previous column in degree list, if col is in a */
-    /* degree list (but not at the head of a degree list) */
-  } shared3 ;
-  union
-  {
-    Index degree_next ; /* next column, if col is in a degree list */
-    Index hash_next ;   /* next column, if col is in a hash list */
-  } shared4 ;
-  
-};
- 
-template <typename Index>
-struct Colamd_Row
-{
-  Index start ;   /* index for A of first col in this row */
-  Index length ;  /* number of principal columns in this row */
-  union
-  {
-    Index degree ;  /* number of principal & non-principal columns in row */
-    Index p ;   /* used as a row pointer in init_rows_cols () */
-  } shared1 ;
-  union
-  {
-    Index mark ;  /* for computing set differences and marking dead rows*/
-    Index first_column ;/* first column in row (used in garbage collection) */
-  } shared2 ;
-  
-};
- 
-/* ========================================================================== */
-/* === Colamd recommended memory size ======================================= */
-/* ========================================================================== */
- 
-/*
-  The recommended length Alen of the array A passed to colamd is given by
-  the COLAMD_RECOMMENDED (nnz, n_row, n_col) macro.  It returns -1 if any
-  argument is negative.  2*nnz space is required for the row and column
-  indices of the matrix. colamd_c (n_col) + colamd_r (n_row) space is
-  required for the Col and Row arrays, respectively, which are internal to
-  colamd.  An additional n_col space is the minimal amount of "elbow room",
-  and nnz/5 more space is recommended for run time efficiency.
-  
-  This macro is not needed when using symamd.
-  
-  Explicit typecast to Index added Sept. 23, 2002, COLAMD version 2.2, to avoid
-  gcc -pedantic warning messages.
-*/
-template <typename Index>
-inline Index colamd_c(Index n_col) 
-{ return Index( ((n_col) + 1) * sizeof (colamd_col<Index>) / sizeof (Index) ) ; }
-
-template <typename Index>
-inline Index  colamd_r(Index n_row)
-{ return Index(((n_row) + 1) * sizeof (Colamd_Row<Index>) / sizeof (Index)); }
-
-// Prototypes of non-user callable routines
-template <typename Index>
-static Index init_rows_cols (Index n_row, Index n_col, Colamd_Row<Index> Row [], colamd_col<Index> col [], Index A [], Index p [], Index stats[COLAMD_STATS] ); 
-
-template <typename Index>
-static void init_scoring (Index n_row, Index n_col, Colamd_Row<Index> Row [], colamd_col<Index> Col [], Index A [], Index head [], double knobs[COLAMD_KNOBS], Index *p_n_row2, Index *p_n_col2, Index *p_max_deg);
-
-template <typename Index>
-static Index find_ordering (Index n_row, Index n_col, Index Alen, Colamd_Row<Index> Row [], colamd_col<Index> Col [], Index A [], Index head [], Index n_col2, Index max_deg, Index pfree);
-
-template <typename Index>
-static void order_children (Index n_col, colamd_col<Index> Col [], Index p []);
-
-template <typename Index>
-static void detect_super_cols (colamd_col<Index> Col [], Index A [], Index head [], Index row_start, Index row_length ) ;
-
-template <typename Index>
-static Index garbage_collection (Index n_row, Index n_col, Colamd_Row<Index> Row [], colamd_col<Index> Col [], Index A [], Index *pfree) ;
-
-template <typename Index>
-static inline  Index clear_mark (Index n_row, Colamd_Row<Index> Row [] ) ;
-
-/* === No debugging ========================================================= */
-
-#define COLAMD_DEBUG0(params) ;
-#define COLAMD_DEBUG1(params) ;
-#define COLAMD_DEBUG2(params) ;
-#define COLAMD_DEBUG3(params) ;
-#define COLAMD_DEBUG4(params) ;
-
-#define COLAMD_ASSERT(expression) ((void) 0)
-
-
-/**
- * \brief Returns the recommended value of Alen 
- * 
- * Returns recommended value of Alen for use by colamd.  
- * Returns -1 if any input argument is negative.  
- * The use of this routine or macro is optional.  
- * Note that the macro uses its arguments   more than once, 
- * so be careful for side effects, if you pass expressions as arguments to COLAMD_RECOMMENDED.  
- * 
- * \param nnz nonzeros in A
- * \param n_row number of rows in A
- * \param n_col number of columns in A
- * \return recommended value of Alen for use by colamd
- */
-template <typename Index>
-inline Index colamd_recommended ( Index nnz, Index n_row, Index n_col)
-{
-  if ((nnz) < 0 || (n_row) < 0 || (n_col) < 0)
-    return (-1);
-  else
-    return (2 * (nnz) + colamd_c (n_col) + colamd_r (n_row) + (n_col) + ((nnz) / 5)); 
-}
-
-/**
- * \brief set default parameters  The use of this routine is optional.
- * 
- * Colamd: rows with more than (knobs [COLAMD_DENSE_ROW] * n_col)
- * entries are removed prior to ordering.  Columns with more than
- * (knobs [COLAMD_DENSE_COL] * n_row) entries are removed prior to
- * ordering, and placed last in the output column ordering. 
- *
- * COLAMD_DENSE_ROW and COLAMD_DENSE_COL are defined as 0 and 1,
- * respectively, in colamd.h.  Default values of these two knobs
- * are both 0.5.  Currently, only knobs [0] and knobs [1] are
- * used, but future versions may use more knobs.  If so, they will
- * be properly set to their defaults by the future version of
- * colamd_set_defaults, so that the code that calls colamd will
- * not need to change, assuming that you either use
- * colamd_set_defaults, or pass a (double *) NULL pointer as the
- * knobs array to colamd or symamd.
- * 
- * \param knobs parameter settings for colamd
- */
-
-static inline void colamd_set_defaults(double knobs[COLAMD_KNOBS])
-{
-  /* === Local variables ================================================== */
-  
-  int i ;
-
-  if (!knobs)
-  {
-    return ;      /* no knobs to initialize */
-  }
-  for (i = 0 ; i < COLAMD_KNOBS ; i++)
-  {
-    knobs [i] = 0 ;
-  }
-  knobs [COLAMD_DENSE_ROW] = 0.5 ;  /* ignore rows over 50% dense */
-  knobs [COLAMD_DENSE_COL] = 0.5 ;  /* ignore columns over 50% dense */
-}
-
-/** 
- * \brief  Computes a column ordering using the column approximate minimum degree ordering
- * 
- * Computes a column ordering (Q) of A such that P(AQ)=LU or
- * (AQ)'AQ=LL' have less fill-in and require fewer floating point
- * operations than factorizing the unpermuted matrix A or A'A,
- * respectively.
- * 
- * 
- * \param n_row number of rows in A
- * \param n_col number of columns in A
- * \param Alen, size of the array A
- * \param A row indices of the matrix, of size ALen
- * \param p column pointers of A, of size n_col+1
- * \param knobs parameter settings for colamd
- * \param stats colamd output statistics and error codes
- */
-template <typename Index>
-static bool colamd(Index n_row, Index n_col, Index Alen, Index *A, Index *p, double knobs[COLAMD_KNOBS], Index stats[COLAMD_STATS])
-{
-  /* === Local variables ================================================== */
-  
-  Index i ;     /* loop index */
-  Index nnz ;     /* nonzeros in A */
-  Index Row_size ;    /* size of Row [], in integers */
-  Index Col_size ;    /* size of Col [], in integers */
-  Index need ;      /* minimum required length of A */
-  Colamd_Row<Index> *Row ;   /* pointer into A of Row [0..n_row] array */
-  colamd_col<Index> *Col ;   /* pointer into A of Col [0..n_col] array */
-  Index n_col2 ;    /* number of non-dense, non-empty columns */
-  Index n_row2 ;    /* number of non-dense, non-empty rows */
-  Index ngarbage ;    /* number of garbage collections performed */
-  Index max_deg ;   /* maximum row degree */
-  double default_knobs [COLAMD_KNOBS] ; /* default knobs array */
-  
-  
-  /* === Check the input arguments ======================================== */
-  
-  if (!stats)
-  {
-    COLAMD_DEBUG0 (("colamd: stats not present\n")) ;
-    return (false) ;
-  }
-  for (i = 0 ; i < COLAMD_STATS ; i++)
-  {
-    stats [i] = 0 ;
-  }
-  stats [COLAMD_STATUS] = COLAMD_OK ;
-  stats [COLAMD_INFO1] = -1 ;
-  stats [COLAMD_INFO2] = -1 ;
-  
-  if (!A)   /* A is not present */
-  {
-    stats [COLAMD_STATUS] = COLAMD_ERROR_A_not_present ;
-    COLAMD_DEBUG0 (("colamd: A not present\n")) ;
-    return (false) ;
-  }
-  
-  if (!p)   /* p is not present */
-  {
-    stats [COLAMD_STATUS] = COLAMD_ERROR_p_not_present ;
-    COLAMD_DEBUG0 (("colamd: p not present\n")) ;
-    return (false) ;
-  }
-  
-  if (n_row < 0)  /* n_row must be >= 0 */
-  {
-    stats [COLAMD_STATUS] = COLAMD_ERROR_nrow_negative ;
-    stats [COLAMD_INFO1] = n_row ;
-    COLAMD_DEBUG0 (("colamd: nrow negative %d\n", n_row)) ;
-    return (false) ;
-  }
-  
-  if (n_col < 0)  /* n_col must be >= 0 */
-  {
-    stats [COLAMD_STATUS] = COLAMD_ERROR_ncol_negative ;
-    stats [COLAMD_INFO1] = n_col ;
-    COLAMD_DEBUG0 (("colamd: ncol negative %d\n", n_col)) ;
-    return (false) ;
-  }
-  
-  nnz = p [n_col] ;
-  if (nnz < 0)  /* nnz must be >= 0 */
-  {
-    stats [COLAMD_STATUS] = COLAMD_ERROR_nnz_negative ;
-    stats [COLAMD_INFO1] = nnz ;
-    COLAMD_DEBUG0 (("colamd: number of entries negative %d\n", nnz)) ;
-    return (false) ;
-  }
-  
-  if (p [0] != 0)
-  {
-    stats [COLAMD_STATUS] = COLAMD_ERROR_p0_nonzero ;
-    stats [COLAMD_INFO1] = p [0] ;
-    COLAMD_DEBUG0 (("colamd: p[0] not zero %d\n", p [0])) ;
-    return (false) ;
-  }
-  
-  /* === If no knobs, set default knobs =================================== */
-  
-  if (!knobs)
-  {
-    colamd_set_defaults (default_knobs) ;
-    knobs = default_knobs ;
-  }
-  
-  /* === Allocate the Row and Col arrays from array A ===================== */
-  
-  Col_size = colamd_c (n_col) ;
-  Row_size = colamd_r (n_row) ;
-  need = 2*nnz + n_col + Col_size + Row_size ;
-  
-  if (need > Alen)
-  {
-    /* not enough space in array A to perform the ordering */
-    stats [COLAMD_STATUS] = COLAMD_ERROR_A_too_small ;
-    stats [COLAMD_INFO1] = need ;
-    stats [COLAMD_INFO2] = Alen ;
-    COLAMD_DEBUG0 (("colamd: Need Alen >= %d, given only Alen = %d\n", need,Alen));
-    return (false) ;
-  }
-  
-  Alen -= Col_size + Row_size ;
-  Col = (colamd_col<Index> *) &A [Alen] ;
-  Row = (Colamd_Row<Index> *) &A [Alen + Col_size] ;
-
-  /* === Construct the row and column data structures ===================== */
-  
-  if (!Eigen::internal::init_rows_cols (n_row, n_col, Row, Col, A, p, stats))
-  {
-    /* input matrix is invalid */
-    COLAMD_DEBUG0 (("colamd: Matrix invalid\n")) ;
-    return (false) ;
-  }
-  
-  /* === Initialize scores, kill dense rows/columns ======================= */
-
-  Eigen::internal::init_scoring (n_row, n_col, Row, Col, A, p, knobs,
-		&n_row2, &n_col2, &max_deg) ;
-  
-  /* === Order the supercolumns =========================================== */
-  
-  ngarbage = Eigen::internal::find_ordering (n_row, n_col, Alen, Row, Col, A, p,
-			    n_col2, max_deg, 2*nnz) ;
-  
-  /* === Order the non-principal columns ================================== */
-  
-  Eigen::internal::order_children (n_col, Col, p) ;
-  
-  /* === Return statistics in stats ======================================= */
-  
-  stats [COLAMD_DENSE_ROW] = n_row - n_row2 ;
-  stats [COLAMD_DENSE_COL] = n_col - n_col2 ;
-  stats [COLAMD_DEFRAG_COUNT] = ngarbage ;
-  COLAMD_DEBUG0 (("colamd: done.\n")) ; 
-  return (true) ;
-}
-
-/* ========================================================================== */
-/* === NON-USER-CALLABLE ROUTINES: ========================================== */
-/* ========================================================================== */
-
-/* There are no user-callable routines beyond this point in the file */
-
-
-/* ========================================================================== */
-/* === init_rows_cols ======================================================= */
-/* ========================================================================== */
-
-/*
-  Takes the column form of the matrix in A and creates the row form of the
-  matrix.  Also, row and column attributes are stored in the Col and Row
-  structs.  If the columns are un-sorted or contain duplicate row indices,
-  this routine will also sort and remove duplicate row indices from the
-  column form of the matrix.  Returns false if the matrix is invalid,
-  true otherwise.  Not user-callable.
-*/
-template <typename Index>
-static Index init_rows_cols  /* returns true if OK, or false otherwise */
-  (
-    /* === Parameters ======================================================= */
-
-    Index n_row,      /* number of rows of A */
-    Index n_col,      /* number of columns of A */
-    Colamd_Row<Index> Row [],    /* of size n_row+1 */
-    colamd_col<Index> Col [],    /* of size n_col+1 */
-    Index A [],     /* row indices of A, of size Alen */
-    Index p [],     /* pointers to columns in A, of size n_col+1 */
-    Index stats [COLAMD_STATS]  /* colamd statistics */ 
-    )
-{
-  /* === Local variables ================================================== */
-
-  Index col ;     /* a column index */
-  Index row ;     /* a row index */
-  Index *cp ;     /* a column pointer */
-  Index *cp_end ;   /* a pointer to the end of a column */
-  Index *rp ;     /* a row pointer */
-  Index *rp_end ;   /* a pointer to the end of a row */
-  Index last_row ;    /* previous row */
-
-  /* === Initialize columns, and check column pointers ==================== */
-
-  for (col = 0 ; col < n_col ; col++)
-  {
-    Col [col].start = p [col] ;
-    Col [col].length = p [col+1] - p [col] ;
-
-    if (Col [col].length < 0)
-    {
-      /* column pointers must be non-decreasing */
-      stats [COLAMD_STATUS] = COLAMD_ERROR_col_length_negative ;
-      stats [COLAMD_INFO1] = col ;
-      stats [COLAMD_INFO2] = Col [col].length ;
-      COLAMD_DEBUG0 (("colamd: col %d length %d < 0\n", col, Col [col].length)) ;
-      return (false) ;
-    }
-
-    Col [col].shared1.thickness = 1 ;
-    Col [col].shared2.score = 0 ;
-    Col [col].shared3.prev = COLAMD_EMPTY ;
-    Col [col].shared4.degree_next = COLAMD_EMPTY ;
-  }
-
-  /* p [0..n_col] no longer needed, used as "head" in subsequent routines */
-
-  /* === Scan columns, compute row degrees, and check row indices ========= */
-
-  stats [COLAMD_INFO3] = 0 ;  /* number of duplicate or unsorted row indices*/
-
-  for (row = 0 ; row < n_row ; row++)
-  {
-    Row [row].length = 0 ;
-    Row [row].shared2.mark = -1 ;
-  }
-
-  for (col = 0 ; col < n_col ; col++)
-  {
-    last_row = -1 ;
-
-    cp = &A [p [col]] ;
-    cp_end = &A [p [col+1]] ;
-
-    while (cp < cp_end)
-    {
-      row = *cp++ ;
-
-      /* make sure row indices within range */
-      if (row < 0 || row >= n_row)
-      {
-	stats [COLAMD_STATUS] = COLAMD_ERROR_row_index_out_of_bounds ;
-	stats [COLAMD_INFO1] = col ;
-	stats [COLAMD_INFO2] = row ;
-	stats [COLAMD_INFO3] = n_row ;
-	COLAMD_DEBUG0 (("colamd: row %d col %d out of bounds\n", row, col)) ;
-	return (false) ;
-      }
-
-      if (row <= last_row || Row [row].shared2.mark == col)
-      {
-	/* row index are unsorted or repeated (or both), thus col */
-	/* is jumbled.  This is a notice, not an error condition. */
-	stats [COLAMD_STATUS] = COLAMD_OK_BUT_JUMBLED ;
-	stats [COLAMD_INFO1] = col ;
-	stats [COLAMD_INFO2] = row ;
-	(stats [COLAMD_INFO3]) ++ ;
-	COLAMD_DEBUG1 (("colamd: row %d col %d unsorted/duplicate\n",row,col));
-      }
-
-      if (Row [row].shared2.mark != col)
-      {
-	Row [row].length++ ;
-      }
-      else
-      {
-	/* this is a repeated entry in the column, */
-	/* it will be removed */
-	Col [col].length-- ;
-      }
-
-      /* mark the row as having been seen in this column */
-      Row [row].shared2.mark = col ;
-
-      last_row = row ;
-    }
-  }
-
-  /* === Compute row pointers ============================================= */
-
-  /* row form of the matrix starts directly after the column */
-  /* form of matrix in A */
-  Row [0].start = p [n_col] ;
-  Row [0].shared1.p = Row [0].start ;
-  Row [0].shared2.mark = -1 ;
-  for (row = 1 ; row < n_row ; row++)
-  {
-    Row [row].start = Row [row-1].start + Row [row-1].length ;
-    Row [row].shared1.p = Row [row].start ;
-    Row [row].shared2.mark = -1 ;
-  }
-
-  /* === Create row form ================================================== */
-
-  if (stats [COLAMD_STATUS] == COLAMD_OK_BUT_JUMBLED)
-  {
-    /* if cols jumbled, watch for repeated row indices */
-    for (col = 0 ; col < n_col ; col++)
-    {
-      cp = &A [p [col]] ;
-      cp_end = &A [p [col+1]] ;
-      while (cp < cp_end)
-      {
-	row = *cp++ ;
-	if (Row [row].shared2.mark != col)
-	{
-	  A [(Row [row].shared1.p)++] = col ;
-	  Row [row].shared2.mark = col ;
-	}
-      }
-    }
-  }
-  else
-  {
-    /* if cols not jumbled, we don't need the mark (this is faster) */
-    for (col = 0 ; col < n_col ; col++)
-    {
-      cp = &A [p [col]] ;
-      cp_end = &A [p [col+1]] ;
-      while (cp < cp_end)
-      {
-	A [(Row [*cp++].shared1.p)++] = col ;
-      }
-    }
-  }
-
-  /* === Clear the row marks and set row degrees ========================== */
-
-  for (row = 0 ; row < n_row ; row++)
-  {
-    Row [row].shared2.mark = 0 ;
-    Row [row].shared1.degree = Row [row].length ;
-  }
-
-  /* === See if we need to re-create columns ============================== */
-
-  if (stats [COLAMD_STATUS] == COLAMD_OK_BUT_JUMBLED)
-  {
-    COLAMD_DEBUG0 (("colamd: reconstructing column form, matrix jumbled\n")) ;
-
-
-    /* === Compute col pointers ========================================= */
-
-    /* col form of the matrix starts at A [0]. */
-    /* Note, we may have a gap between the col form and the row */
-    /* form if there were duplicate entries, if so, it will be */
-    /* removed upon the first garbage collection */
-    Col [0].start = 0 ;
-    p [0] = Col [0].start ;
-    for (col = 1 ; col < n_col ; col++)
-    {
-      /* note that the lengths here are for pruned columns, i.e. */
-      /* no duplicate row indices will exist for these columns */
-      Col [col].start = Col [col-1].start + Col [col-1].length ;
-      p [col] = Col [col].start ;
-    }
-
-    /* === Re-create col form =========================================== */
-
-    for (row = 0 ; row < n_row ; row++)
-    {
-      rp = &A [Row [row].start] ;
-      rp_end = rp + Row [row].length ;
-      while (rp < rp_end)
-      {
-	A [(p [*rp++])++] = row ;
-      }
-    }
-  }
-
-  /* === Done.  Matrix is not (or no longer) jumbled ====================== */
-
-  return (true) ;
-}
-
-
-/* ========================================================================== */
-/* === init_scoring ========================================================= */
-/* ========================================================================== */
-
-/*
-  Kills dense or empty columns and rows, calculates an initial score for
-  each column, and places all columns in the degree lists.  Not user-callable.
-*/
-template <typename Index>
-static void init_scoring
-  (
-    /* === Parameters ======================================================= */
-
-    Index n_row,      /* number of rows of A */
-    Index n_col,      /* number of columns of A */
-    Colamd_Row<Index> Row [],    /* of size n_row+1 */
-    colamd_col<Index> Col [],    /* of size n_col+1 */
-    Index A [],     /* column form and row form of A */
-    Index head [],    /* of size n_col+1 */
-    double knobs [COLAMD_KNOBS],/* parameters */
-    Index *p_n_row2,    /* number of non-dense, non-empty rows */
-    Index *p_n_col2,    /* number of non-dense, non-empty columns */
-    Index *p_max_deg    /* maximum row degree */
-    )
-{
-  /* === Local variables ================================================== */
-
-  Index c ;     /* a column index */
-  Index r, row ;    /* a row index */
-  Index *cp ;     /* a column pointer */
-  Index deg ;     /* degree of a row or column */
-  Index *cp_end ;   /* a pointer to the end of a column */
-  Index *new_cp ;   /* new column pointer */
-  Index col_length ;    /* length of pruned column */
-  Index score ;     /* current column score */
-  Index n_col2 ;    /* number of non-dense, non-empty columns */
-  Index n_row2 ;    /* number of non-dense, non-empty rows */
-  Index dense_row_count ; /* remove rows with more entries than this */
-  Index dense_col_count ; /* remove cols with more entries than this */
-  Index min_score ;   /* smallest column score */
-  Index max_deg ;   /* maximum row degree */
-  Index next_col ;    /* Used to add to degree list.*/
-
-
-  /* === Extract knobs ==================================================== */
-
-  dense_row_count = COLAMD_MAX (0, COLAMD_MIN (knobs [COLAMD_DENSE_ROW] * n_col, n_col)) ;
-  dense_col_count = COLAMD_MAX (0, COLAMD_MIN (knobs [COLAMD_DENSE_COL] * n_row, n_row)) ;
-  COLAMD_DEBUG1 (("colamd: densecount: %d %d\n", dense_row_count, dense_col_count)) ;
-  max_deg = 0 ;
-  n_col2 = n_col ;
-  n_row2 = n_row ;
-
-  /* === Kill empty columns =============================================== */
-
-  /* Put the empty columns at the end in their natural order, so that LU */
-  /* factorization can proceed as far as possible. */
-  for (c = n_col-1 ; c >= 0 ; c--)
-  {
-    deg = Col [c].length ;
-    if (deg == 0)
-    {
-      /* this is a empty column, kill and order it last */
-      Col [c].shared2.order = --n_col2 ;
-      KILL_PRINCIPAL_COL (c) ;
-    }
-  }
-  COLAMD_DEBUG1 (("colamd: null columns killed: %d\n", n_col - n_col2)) ;
-
-  /* === Kill dense columns =============================================== */
-
-  /* Put the dense columns at the end, in their natural order */
-  for (c = n_col-1 ; c >= 0 ; c--)
-  {
-    /* skip any dead columns */
-    if (COL_IS_DEAD (c))
-    {
-      continue ;
-    }
-    deg = Col [c].length ;
-    if (deg > dense_col_count)
-    {
-      /* this is a dense column, kill and order it last */
-      Col [c].shared2.order = --n_col2 ;
-      /* decrement the row degrees */
-      cp = &A [Col [c].start] ;
-      cp_end = cp + Col [c].length ;
-      while (cp < cp_end)
-      {
-	Row [*cp++].shared1.degree-- ;
-      }
-      KILL_PRINCIPAL_COL (c) ;
-    }
-  }
-  COLAMD_DEBUG1 (("colamd: Dense and null columns killed: %d\n", n_col - n_col2)) ;
-
-  /* === Kill dense and empty rows ======================================== */
-
-  for (r = 0 ; r < n_row ; r++)
-  {
-    deg = Row [r].shared1.degree ;
-    COLAMD_ASSERT (deg >= 0 && deg <= n_col) ;
-    if (deg > dense_row_count || deg == 0)
-    {
-      /* kill a dense or empty row */
-      KILL_ROW (r) ;
-      --n_row2 ;
-    }
-    else
-    {
-      /* keep track of max degree of remaining rows */
-      max_deg = COLAMD_MAX (max_deg, deg) ;
-    }
-  }
-  COLAMD_DEBUG1 (("colamd: Dense and null rows killed: %d\n", n_row - n_row2)) ;
-
-  /* === Compute initial column scores ==================================== */
-
-  /* At this point the row degrees are accurate.  They reflect the number */
-  /* of "live" (non-dense) columns in each row.  No empty rows exist. */
-  /* Some "live" columns may contain only dead rows, however.  These are */
-  /* pruned in the code below. */
-
-  /* now find the initial matlab score for each column */
-  for (c = n_col-1 ; c >= 0 ; c--)
-  {
-    /* skip dead column */
-    if (COL_IS_DEAD (c))
-    {
-      continue ;
-    }
-    score = 0 ;
-    cp = &A [Col [c].start] ;
-    new_cp = cp ;
-    cp_end = cp + Col [c].length ;
-    while (cp < cp_end)
-    {
-      /* get a row */
-      row = *cp++ ;
-      /* skip if dead */
-      if (ROW_IS_DEAD (row))
-      {
-	continue ;
-      }
-      /* compact the column */
-      *new_cp++ = row ;
-      /* add row's external degree */
-      score += Row [row].shared1.degree - 1 ;
-      /* guard against integer overflow */
-      score = COLAMD_MIN (score, n_col) ;
-    }
-    /* determine pruned column length */
-    col_length = (Index) (new_cp - &A [Col [c].start]) ;
-    if (col_length == 0)
-    {
-      /* a newly-made null column (all rows in this col are "dense" */
-      /* and have already been killed) */
-      COLAMD_DEBUG2 (("Newly null killed: %d\n", c)) ;
-      Col [c].shared2.order = --n_col2 ;
-      KILL_PRINCIPAL_COL (c) ;
-    }
-    else
-    {
-      /* set column length and set score */
-      COLAMD_ASSERT (score >= 0) ;
-      COLAMD_ASSERT (score <= n_col) ;
-      Col [c].length = col_length ;
-      Col [c].shared2.score = score ;
-    }
-  }
-  COLAMD_DEBUG1 (("colamd: Dense, null, and newly-null columns killed: %d\n",
-		  n_col-n_col2)) ;
-
-  /* At this point, all empty rows and columns are dead.  All live columns */
-  /* are "clean" (containing no dead rows) and simplicial (no supercolumns */
-  /* yet).  Rows may contain dead columns, but all live rows contain at */
-  /* least one live column. */
-
-  /* === Initialize degree lists ========================================== */
-
-
-  /* clear the hash buckets */
-  for (c = 0 ; c <= n_col ; c++)
-  {
-    head [c] = COLAMD_EMPTY ;
-  }
-  min_score = n_col ;
-  /* place in reverse order, so low column indices are at the front */
-  /* of the lists.  This is to encourage natural tie-breaking */
-  for (c = n_col-1 ; c >= 0 ; c--)
-  {
-    /* only add principal columns to degree lists */
-    if (COL_IS_ALIVE (c))
-    {
-      COLAMD_DEBUG4 (("place %d score %d minscore %d ncol %d\n",
-		      c, Col [c].shared2.score, min_score, n_col)) ;
-
-      /* === Add columns score to DList =============================== */
-
-      score = Col [c].shared2.score ;
-
-      COLAMD_ASSERT (min_score >= 0) ;
-      COLAMD_ASSERT (min_score <= n_col) ;
-      COLAMD_ASSERT (score >= 0) ;
-      COLAMD_ASSERT (score <= n_col) ;
-      COLAMD_ASSERT (head [score] >= COLAMD_EMPTY) ;
-
-      /* now add this column to dList at proper score location */
-      next_col = head [score] ;
-      Col [c].shared3.prev = COLAMD_EMPTY ;
-      Col [c].shared4.degree_next = next_col ;
-
-      /* if there already was a column with the same score, set its */
-      /* previous pointer to this new column */
-      if (next_col != COLAMD_EMPTY)
-      {
-	Col [next_col].shared3.prev = c ;
-      }
-      head [score] = c ;
-
-      /* see if this score is less than current min */
-      min_score = COLAMD_MIN (min_score, score) ;
-
-
-    }
-  }
-
-
-  /* === Return number of remaining columns, and max row degree =========== */
-
-  *p_n_col2 = n_col2 ;
-  *p_n_row2 = n_row2 ;
-  *p_max_deg = max_deg ;
-}
-
-
-/* ========================================================================== */
-/* === find_ordering ======================================================== */
-/* ========================================================================== */
-
-/*
-  Order the principal columns of the supercolumn form of the matrix
-  (no supercolumns on input).  Uses a minimum approximate column minimum
-  degree ordering method.  Not user-callable.
-*/
-template <typename Index>
-static Index find_ordering /* return the number of garbage collections */
-  (
-    /* === Parameters ======================================================= */
-
-    Index n_row,      /* number of rows of A */
-    Index n_col,      /* number of columns of A */
-    Index Alen,     /* size of A, 2*nnz + n_col or larger */
-    Colamd_Row<Index> Row [],    /* of size n_row+1 */
-    colamd_col<Index> Col [],    /* of size n_col+1 */
-    Index A [],     /* column form and row form of A */
-    Index head [],    /* of size n_col+1 */
-    Index n_col2,     /* Remaining columns to order */
-    Index max_deg,    /* Maximum row degree */
-    Index pfree     /* index of first free slot (2*nnz on entry) */
-    )
-{
-  /* === Local variables ================================================== */
-
-  Index k ;     /* current pivot ordering step */
-  Index pivot_col ;   /* current pivot column */
-  Index *cp ;     /* a column pointer */
-  Index *rp ;     /* a row pointer */
-  Index pivot_row ;   /* current pivot row */
-  Index *new_cp ;   /* modified column pointer */
-  Index *new_rp ;   /* modified row pointer */
-  Index pivot_row_start ; /* pointer to start of pivot row */
-  Index pivot_row_degree ;  /* number of columns in pivot row */
-  Index pivot_row_length ;  /* number of supercolumns in pivot row */
-  Index pivot_col_score ; /* score of pivot column */
-  Index needed_memory ;   /* free space needed for pivot row */
-  Index *cp_end ;   /* pointer to the end of a column */
-  Index *rp_end ;   /* pointer to the end of a row */
-  Index row ;     /* a row index */
-  Index col ;     /* a column index */
-  Index max_score ;   /* maximum possible score */
-  Index cur_score ;   /* score of current column */
-  unsigned int hash ;   /* hash value for supernode detection */
-  Index head_column ;   /* head of hash bucket */
-  Index first_col ;   /* first column in hash bucket */
-  Index tag_mark ;    /* marker value for mark array */
-  Index row_mark ;    /* Row [row].shared2.mark */
-  Index set_difference ;  /* set difference size of row with pivot row */
-  Index min_score ;   /* smallest column score */
-  Index col_thickness ;   /* "thickness" (no. of columns in a supercol) */
-  Index max_mark ;    /* maximum value of tag_mark */
-  Index pivot_col_thickness ; /* number of columns represented by pivot col */
-  Index prev_col ;    /* Used by Dlist operations. */
-  Index next_col ;    /* Used by Dlist operations. */
-  Index ngarbage ;    /* number of garbage collections performed */
-
-
-  /* === Initialization and clear mark ==================================== */
-
-  max_mark = INT_MAX - n_col ;  /* INT_MAX defined in <limits.h> */
-  tag_mark = Eigen::internal::clear_mark (n_row, Row) ;
-  min_score = 0 ;
-  ngarbage = 0 ;
-  COLAMD_DEBUG1 (("colamd: Ordering, n_col2=%d\n", n_col2)) ;
-
-  /* === Order the columns ================================================ */
-
-  for (k = 0 ; k < n_col2 ; /* 'k' is incremented below */)
-  {
-
-    /* === Select pivot column, and order it ============================ */
-
-    /* make sure degree list isn't empty */
-    COLAMD_ASSERT (min_score >= 0) ;
-    COLAMD_ASSERT (min_score <= n_col) ;
-    COLAMD_ASSERT (head [min_score] >= COLAMD_EMPTY) ;
-
-    /* get pivot column from head of minimum degree list */
-    while (head [min_score] == COLAMD_EMPTY && min_score < n_col)
-    {
-      min_score++ ;
-    }
-    pivot_col = head [min_score] ;
-    COLAMD_ASSERT (pivot_col >= 0 && pivot_col <= n_col) ;
-    next_col = Col [pivot_col].shared4.degree_next ;
-    head [min_score] = next_col ;
-    if (next_col != COLAMD_EMPTY)
-    {
-      Col [next_col].shared3.prev = COLAMD_EMPTY ;
-    }
-
-    COLAMD_ASSERT (COL_IS_ALIVE (pivot_col)) ;
-    COLAMD_DEBUG3 (("Pivot col: %d\n", pivot_col)) ;
-
-    /* remember score for defrag check */
-    pivot_col_score = Col [pivot_col].shared2.score ;
-
-    /* the pivot column is the kth column in the pivot order */
-    Col [pivot_col].shared2.order = k ;
-
-    /* increment order count by column thickness */
-    pivot_col_thickness = Col [pivot_col].shared1.thickness ;
-    k += pivot_col_thickness ;
-    COLAMD_ASSERT (pivot_col_thickness > 0) ;
-
-    /* === Garbage_collection, if necessary ============================= */
-
-    needed_memory = COLAMD_MIN (pivot_col_score, n_col - k) ;
-    if (pfree + needed_memory >= Alen)
-    {
-      pfree = Eigen::internal::garbage_collection (n_row, n_col, Row, Col, A, &A [pfree]) ;
-      ngarbage++ ;
-      /* after garbage collection we will have enough */
-      COLAMD_ASSERT (pfree + needed_memory < Alen) ;
-      /* garbage collection has wiped out the Row[].shared2.mark array */
-      tag_mark = Eigen::internal::clear_mark (n_row, Row) ;
-
-    }
-
-    /* === Compute pivot row pattern ==================================== */
-
-    /* get starting location for this new merged row */
-    pivot_row_start = pfree ;
-
-    /* initialize new row counts to zero */
-    pivot_row_degree = 0 ;
-
-    /* tag pivot column as having been visited so it isn't included */
-    /* in merged pivot row */
-    Col [pivot_col].shared1.thickness = -pivot_col_thickness ;
-
-    /* pivot row is the union of all rows in the pivot column pattern */
-    cp = &A [Col [pivot_col].start] ;
-    cp_end = cp + Col [pivot_col].length ;
-    while (cp < cp_end)
-    {
-      /* get a row */
-      row = *cp++ ;
-      COLAMD_DEBUG4 (("Pivot col pattern %d %d\n", ROW_IS_ALIVE (row), row)) ;
-      /* skip if row is dead */
-      if (ROW_IS_DEAD (row))
-      {
-	continue ;
-      }
-      rp = &A [Row [row].start] ;
-      rp_end = rp + Row [row].length ;
-      while (rp < rp_end)
-      {
-	/* get a column */
-	col = *rp++ ;
-	/* add the column, if alive and untagged */
-	col_thickness = Col [col].shared1.thickness ;
-	if (col_thickness > 0 && COL_IS_ALIVE (col))
-	{
-	  /* tag column in pivot row */
-	  Col [col].shared1.thickness = -col_thickness ;
-	  COLAMD_ASSERT (pfree < Alen) ;
-	  /* place column in pivot row */
-	  A [pfree++] = col ;
-	  pivot_row_degree += col_thickness ;
-	}
-      }
-    }
-
-    /* clear tag on pivot column */
-    Col [pivot_col].shared1.thickness = pivot_col_thickness ;
-    max_deg = COLAMD_MAX (max_deg, pivot_row_degree) ;
-
-
-    /* === Kill all rows used to construct pivot row ==================== */
-
-    /* also kill pivot row, temporarily */
-    cp = &A [Col [pivot_col].start] ;
-    cp_end = cp + Col [pivot_col].length ;
-    while (cp < cp_end)
-    {
-      /* may be killing an already dead row */
-      row = *cp++ ;
-      COLAMD_DEBUG3 (("Kill row in pivot col: %d\n", row)) ;
-      KILL_ROW (row) ;
-    }
-
-    /* === Select a row index to use as the new pivot row =============== */
-
-    pivot_row_length = pfree - pivot_row_start ;
-    if (pivot_row_length > 0)
-    {
-      /* pick the "pivot" row arbitrarily (first row in col) */
-      pivot_row = A [Col [pivot_col].start] ;
-      COLAMD_DEBUG3 (("Pivotal row is %d\n", pivot_row)) ;
-    }
-    else
-    {
-      /* there is no pivot row, since it is of zero length */
-      pivot_row = COLAMD_EMPTY ;
-      COLAMD_ASSERT (pivot_row_length == 0) ;
-    }
-    COLAMD_ASSERT (Col [pivot_col].length > 0 || pivot_row_length == 0) ;
-
-    /* === Approximate degree computation =============================== */
-
-    /* Here begins the computation of the approximate degree.  The column */
-    /* score is the sum of the pivot row "length", plus the size of the */
-    /* set differences of each row in the column minus the pattern of the */
-    /* pivot row itself.  The column ("thickness") itself is also */
-    /* excluded from the column score (we thus use an approximate */
-    /* external degree). */
-
-    /* The time taken by the following code (compute set differences, and */
-    /* add them up) is proportional to the size of the data structure */
-    /* being scanned - that is, the sum of the sizes of each column in */
-    /* the pivot row.  Thus, the amortized time to compute a column score */
-    /* is proportional to the size of that column (where size, in this */
-    /* context, is the column "length", or the number of row indices */
-    /* in that column).  The number of row indices in a column is */
-    /* monotonically non-decreasing, from the length of the original */
-    /* column on input to colamd. */
-
-    /* === Compute set differences ====================================== */
-
-    COLAMD_DEBUG3 (("** Computing set differences phase. **\n")) ;
-
-    /* pivot row is currently dead - it will be revived later. */
-
-    COLAMD_DEBUG3 (("Pivot row: ")) ;
-    /* for each column in pivot row */
-    rp = &A [pivot_row_start] ;
-    rp_end = rp + pivot_row_length ;
-    while (rp < rp_end)
-    {
-      col = *rp++ ;
-      COLAMD_ASSERT (COL_IS_ALIVE (col) && col != pivot_col) ;
-      COLAMD_DEBUG3 (("Col: %d\n", col)) ;
-
-      /* clear tags used to construct pivot row pattern */
-      col_thickness = -Col [col].shared1.thickness ;
-      COLAMD_ASSERT (col_thickness > 0) ;
-      Col [col].shared1.thickness = col_thickness ;
-
-      /* === Remove column from degree list =========================== */
-
-      cur_score = Col [col].shared2.score ;
-      prev_col = Col [col].shared3.prev ;
-      next_col = Col [col].shared4.degree_next ;
-      COLAMD_ASSERT (cur_score >= 0) ;
-      COLAMD_ASSERT (cur_score <= n_col) ;
-      COLAMD_ASSERT (cur_score >= COLAMD_EMPTY) ;
-      if (prev_col == COLAMD_EMPTY)
-      {
-	head [cur_score] = next_col ;
-      }
-      else
-      {
-	Col [prev_col].shared4.degree_next = next_col ;
-      }
-      if (next_col != COLAMD_EMPTY)
-      {
-	Col [next_col].shared3.prev = prev_col ;
-      }
-
-      /* === Scan the column ========================================== */
-
-      cp = &A [Col [col].start] ;
-      cp_end = cp + Col [col].length ;
-      while (cp < cp_end)
-      {
-	/* get a row */
-	row = *cp++ ;
-	row_mark = Row [row].shared2.mark ;
-	/* skip if dead */
-	if (ROW_IS_MARKED_DEAD (row_mark))
-	{
-	  continue ;
-	}
-	COLAMD_ASSERT (row != pivot_row) ;
-	set_difference = row_mark - tag_mark ;
-	/* check if the row has been seen yet */
-	if (set_difference < 0)
-	{
-	  COLAMD_ASSERT (Row [row].shared1.degree <= max_deg) ;
-	  set_difference = Row [row].shared1.degree ;
-	}
-	/* subtract column thickness from this row's set difference */
-	set_difference -= col_thickness ;
-	COLAMD_ASSERT (set_difference >= 0) ;
-	/* absorb this row if the set difference becomes zero */
-	if (set_difference == 0)
-	{
-	  COLAMD_DEBUG3 (("aggressive absorption. Row: %d\n", row)) ;
-	  KILL_ROW (row) ;
-	}
-	else
-	{
-	  /* save the new mark */
-	  Row [row].shared2.mark = set_difference + tag_mark ;
-	}
-      }
-    }
-
-
-    /* === Add up set differences for each column ======================= */
-
-    COLAMD_DEBUG3 (("** Adding set differences phase. **\n")) ;
-
-    /* for each column in pivot row */
-    rp = &A [pivot_row_start] ;
-    rp_end = rp + pivot_row_length ;
-    while (rp < rp_end)
-    {
-      /* get a column */
-      col = *rp++ ;
-      COLAMD_ASSERT (COL_IS_ALIVE (col) && col != pivot_col) ;
-      hash = 0 ;
-      cur_score = 0 ;
-      cp = &A [Col [col].start] ;
-      /* compact the column */
-      new_cp = cp ;
-      cp_end = cp + Col [col].length ;
-
-      COLAMD_DEBUG4 (("Adding set diffs for Col: %d.\n", col)) ;
-
-      while (cp < cp_end)
-      {
-	/* get a row */
-	row = *cp++ ;
-	COLAMD_ASSERT(row >= 0 && row < n_row) ;
-	row_mark = Row [row].shared2.mark ;
-	/* skip if dead */
-	if (ROW_IS_MARKED_DEAD (row_mark))
-	{
-	  continue ;
-	}
-	COLAMD_ASSERT (row_mark > tag_mark) ;
-	/* compact the column */
-	*new_cp++ = row ;
-	/* compute hash function */
-	hash += row ;
-	/* add set difference */
-	cur_score += row_mark - tag_mark ;
-	/* integer overflow... */
-	cur_score = COLAMD_MIN (cur_score, n_col) ;
-      }
-
-      /* recompute the column's length */
-      Col [col].length = (Index) (new_cp - &A [Col [col].start]) ;
-
-      /* === Further mass elimination ================================= */
-
-      if (Col [col].length == 0)
-      {
-	COLAMD_DEBUG4 (("further mass elimination. Col: %d\n", col)) ;
-	/* nothing left but the pivot row in this column */
-	KILL_PRINCIPAL_COL (col) ;
-	pivot_row_degree -= Col [col].shared1.thickness ;
-	COLAMD_ASSERT (pivot_row_degree >= 0) ;
-	/* order it */
-	Col [col].shared2.order = k ;
-	/* increment order count by column thickness */
-	k += Col [col].shared1.thickness ;
-      }
-      else
-      {
-	/* === Prepare for supercolumn detection ==================== */
-
-	COLAMD_DEBUG4 (("Preparing supercol detection for Col: %d.\n", col)) ;
-
-	/* save score so far */
-	Col [col].shared2.score = cur_score ;
-
-	/* add column to hash table, for supercolumn detection */
-	hash %= n_col + 1 ;
-
-	COLAMD_DEBUG4 ((" Hash = %d, n_col = %d.\n", hash, n_col)) ;
-	COLAMD_ASSERT (hash <= n_col) ;
-
-	head_column = head [hash] ;
-	if (head_column > COLAMD_EMPTY)
-	{
-	  /* degree list "hash" is non-empty, use prev (shared3) of */
-	  /* first column in degree list as head of hash bucket */
-	  first_col = Col [head_column].shared3.headhash ;
-	  Col [head_column].shared3.headhash = col ;
-	}
-	else
-	{
-	  /* degree list "hash" is empty, use head as hash bucket */
-	  first_col = - (head_column + 2) ;
-	  head [hash] = - (col + 2) ;
-	}
-	Col [col].shared4.hash_next = first_col ;
-
-	/* save hash function in Col [col].shared3.hash */
-	Col [col].shared3.hash = (Index) hash ;
-	COLAMD_ASSERT (COL_IS_ALIVE (col)) ;
-      }
-    }
-
-    /* The approximate external column degree is now computed.  */
-
-    /* === Supercolumn detection ======================================== */
-
-    COLAMD_DEBUG3 (("** Supercolumn detection phase. **\n")) ;
-
-    Eigen::internal::detect_super_cols (Col, A, head, pivot_row_start, pivot_row_length) ;
-
-    /* === Kill the pivotal column ====================================== */
-
-    KILL_PRINCIPAL_COL (pivot_col) ;
-
-    /* === Clear mark =================================================== */
-
-    tag_mark += (max_deg + 1) ;
-    if (tag_mark >= max_mark)
-    {
-      COLAMD_DEBUG2 (("clearing tag_mark\n")) ;
-      tag_mark = Eigen::internal::clear_mark (n_row, Row) ;
-    }
-
-    /* === Finalize the new pivot row, and column scores ================ */
-
-    COLAMD_DEBUG3 (("** Finalize scores phase. **\n")) ;
-
-    /* for each column in pivot row */
-    rp = &A [pivot_row_start] ;
-    /* compact the pivot row */
-    new_rp = rp ;
-    rp_end = rp + pivot_row_length ;
-    while (rp < rp_end)
-    {
-      col = *rp++ ;
-      /* skip dead columns */
-      if (COL_IS_DEAD (col))
-      {
-	continue ;
-      }
-      *new_rp++ = col ;
-      /* add new pivot row to column */
-      A [Col [col].start + (Col [col].length++)] = pivot_row ;
-
-      /* retrieve score so far and add on pivot row's degree. */
-      /* (we wait until here for this in case the pivot */
-      /* row's degree was reduced due to mass elimination). */
-      cur_score = Col [col].shared2.score + pivot_row_degree ;
-
-      /* calculate the max possible score as the number of */
-      /* external columns minus the 'k' value minus the */
-      /* columns thickness */
-      max_score = n_col - k - Col [col].shared1.thickness ;
-
-      /* make the score the external degree of the union-of-rows */
-      cur_score -= Col [col].shared1.thickness ;
-
-      /* make sure score is less or equal than the max score */
-      cur_score = COLAMD_MIN (cur_score, max_score) ;
-      COLAMD_ASSERT (cur_score >= 0) ;
-
-      /* store updated score */
-      Col [col].shared2.score = cur_score ;
-
-      /* === Place column back in degree list ========================= */
-
-      COLAMD_ASSERT (min_score >= 0) ;
-      COLAMD_ASSERT (min_score <= n_col) ;
-      COLAMD_ASSERT (cur_score >= 0) ;
-      COLAMD_ASSERT (cur_score <= n_col) ;
-      COLAMD_ASSERT (head [cur_score] >= COLAMD_EMPTY) ;
-      next_col = head [cur_score] ;
-      Col [col].shared4.degree_next = next_col ;
-      Col [col].shared3.prev = COLAMD_EMPTY ;
-      if (next_col != COLAMD_EMPTY)
-      {
-	Col [next_col].shared3.prev = col ;
-      }
-      head [cur_score] = col ;
-
-      /* see if this score is less than current min */
-      min_score = COLAMD_MIN (min_score, cur_score) ;
-
-    }
-
-    /* === Resurrect the new pivot row ================================== */
-
-    if (pivot_row_degree > 0)
-    {
-      /* update pivot row length to reflect any cols that were killed */
-      /* during super-col detection and mass elimination */
-      Row [pivot_row].start  = pivot_row_start ;
-      Row [pivot_row].length = (Index) (new_rp - &A[pivot_row_start]) ;
-      Row [pivot_row].shared1.degree = pivot_row_degree ;
-      Row [pivot_row].shared2.mark = 0 ;
-      /* pivot row is no longer dead */
-    }
-  }
-
-  /* === All principal columns have now been ordered ====================== */
-
-  return (ngarbage) ;
-}
-
-
-/* ========================================================================== */
-/* === order_children ======================================================= */
-/* ========================================================================== */
-
-/*
-  The find_ordering routine has ordered all of the principal columns (the
-  representatives of the supercolumns).  The non-principal columns have not
-  yet been ordered.  This routine orders those columns by walking up the
-  parent tree (a column is a child of the column which absorbed it).  The
-  final permutation vector is then placed in p [0 ... n_col-1], with p [0]
-  being the first column, and p [n_col-1] being the last.  It doesn't look
-  like it at first glance, but be assured that this routine takes time linear
-  in the number of columns.  Although not immediately obvious, the time
-  taken by this routine is O (n_col), that is, linear in the number of
-  columns.  Not user-callable.
-*/
-template <typename Index>
-static inline  void order_children
-(
-  /* === Parameters ======================================================= */
-
-  Index n_col,      /* number of columns of A */
-  colamd_col<Index> Col [],    /* of size n_col+1 */
-  Index p []      /* p [0 ... n_col-1] is the column permutation*/
-  )
-{
-  /* === Local variables ================================================== */
-
-  Index i ;     /* loop counter for all columns */
-  Index c ;     /* column index */
-  Index parent ;    /* index of column's parent */
-  Index order ;     /* column's order */
-
-  /* === Order each non-principal column ================================== */
-
-  for (i = 0 ; i < n_col ; i++)
-  {
-    /* find an un-ordered non-principal column */
-    COLAMD_ASSERT (COL_IS_DEAD (i)) ;
-    if (!COL_IS_DEAD_PRINCIPAL (i) && Col [i].shared2.order == COLAMD_EMPTY)
-    {
-      parent = i ;
-      /* once found, find its principal parent */
-      do
-      {
-	parent = Col [parent].shared1.parent ;
-      } while (!COL_IS_DEAD_PRINCIPAL (parent)) ;
-
-      /* now, order all un-ordered non-principal columns along path */
-      /* to this parent.  collapse tree at the same time */
-      c = i ;
-      /* get order of parent */
-      order = Col [parent].shared2.order ;
-
-      do
-      {
-	COLAMD_ASSERT (Col [c].shared2.order == COLAMD_EMPTY) ;
-
-	/* order this column */
-	Col [c].shared2.order = order++ ;
-	/* collaps tree */
-	Col [c].shared1.parent = parent ;
-
-	/* get immediate parent of this column */
-	c = Col [c].shared1.parent ;
-
-	/* continue until we hit an ordered column.  There are */
-	/* guarranteed not to be anymore unordered columns */
-	/* above an ordered column */
-      } while (Col [c].shared2.order == COLAMD_EMPTY) ;
-
-      /* re-order the super_col parent to largest order for this group */
-      Col [parent].shared2.order = order ;
-    }
-  }
-
-  /* === Generate the permutation ========================================= */
-
-  for (c = 0 ; c < n_col ; c++)
-  {
-    p [Col [c].shared2.order] = c ;
-  }
-}
-
-
-/* ========================================================================== */
-/* === detect_super_cols ==================================================== */
-/* ========================================================================== */
-
-/*
-  Detects supercolumns by finding matches between columns in the hash buckets.
-  Check amongst columns in the set A [row_start ... row_start + row_length-1].
-  The columns under consideration are currently *not* in the degree lists,
-  and have already been placed in the hash buckets.
-
-  The hash bucket for columns whose hash function is equal to h is stored
-  as follows:
-
-  if head [h] is >= 0, then head [h] contains a degree list, so:
-
-  head [h] is the first column in degree bucket h.
-  Col [head [h]].headhash gives the first column in hash bucket h.
-
-  otherwise, the degree list is empty, and:
-
-  -(head [h] + 2) is the first column in hash bucket h.
-
-  For a column c in a hash bucket, Col [c].shared3.prev is NOT a "previous
-  column" pointer.  Col [c].shared3.hash is used instead as the hash number
-  for that column.  The value of Col [c].shared4.hash_next is the next column
-  in the same hash bucket.
-
-  Assuming no, or "few" hash collisions, the time taken by this routine is
-  linear in the sum of the sizes (lengths) of each column whose score has
-  just been computed in the approximate degree computation.
-  Not user-callable.
-*/
-template <typename Index>
-static void detect_super_cols
-(
-  /* === Parameters ======================================================= */
-  
-  colamd_col<Index> Col [],    /* of size n_col+1 */
-  Index A [],     /* row indices of A */
-  Index head [],    /* head of degree lists and hash buckets */
-  Index row_start,    /* pointer to set of columns to check */
-  Index row_length    /* number of columns to check */
-)
-{
-  /* === Local variables ================================================== */
-
-  Index hash ;      /* hash value for a column */
-  Index *rp ;     /* pointer to a row */
-  Index c ;     /* a column index */
-  Index super_c ;   /* column index of the column to absorb into */
-  Index *cp1 ;      /* column pointer for column super_c */
-  Index *cp2 ;      /* column pointer for column c */
-  Index length ;    /* length of column super_c */
-  Index prev_c ;    /* column preceding c in hash bucket */
-  Index i ;     /* loop counter */
-  Index *rp_end ;   /* pointer to the end of the row */
-  Index col ;     /* a column index in the row to check */
-  Index head_column ;   /* first column in hash bucket or degree list */
-  Index first_col ;   /* first column in hash bucket */
-
-  /* === Consider each column in the row ================================== */
-
-  rp = &A [row_start] ;
-  rp_end = rp + row_length ;
-  while (rp < rp_end)
-  {
-    col = *rp++ ;
-    if (COL_IS_DEAD (col))
-    {
-      continue ;
-    }
-
-    /* get hash number for this column */
-    hash = Col [col].shared3.hash ;
-    COLAMD_ASSERT (hash <= n_col) ;
-
-    /* === Get the first column in this hash bucket ===================== */
-
-    head_column = head [hash] ;
-    if (head_column > COLAMD_EMPTY)
-    {
-      first_col = Col [head_column].shared3.headhash ;
-    }
-    else
-    {
-      first_col = - (head_column + 2) ;
-    }
-
-    /* === Consider each column in the hash bucket ====================== */
-
-    for (super_c = first_col ; super_c != COLAMD_EMPTY ;
-	 super_c = Col [super_c].shared4.hash_next)
-    {
-      COLAMD_ASSERT (COL_IS_ALIVE (super_c)) ;
-      COLAMD_ASSERT (Col [super_c].shared3.hash == hash) ;
-      length = Col [super_c].length ;
-
-      /* prev_c is the column preceding column c in the hash bucket */
-      prev_c = super_c ;
-
-      /* === Compare super_c with all columns after it ================ */
-
-      for (c = Col [super_c].shared4.hash_next ;
-	   c != COLAMD_EMPTY ; c = Col [c].shared4.hash_next)
-      {
-	COLAMD_ASSERT (c != super_c) ;
-	COLAMD_ASSERT (COL_IS_ALIVE (c)) ;
-	COLAMD_ASSERT (Col [c].shared3.hash == hash) ;
-
-	/* not identical if lengths or scores are different */
-	if (Col [c].length != length ||
-	    Col [c].shared2.score != Col [super_c].shared2.score)
-	{
-	  prev_c = c ;
-	  continue ;
-	}
-
-	/* compare the two columns */
-	cp1 = &A [Col [super_c].start] ;
-	cp2 = &A [Col [c].start] ;
-
-	for (i = 0 ; i < length ; i++)
-	{
-	  /* the columns are "clean" (no dead rows) */
-	  COLAMD_ASSERT (ROW_IS_ALIVE (*cp1))  ;
-	  COLAMD_ASSERT (ROW_IS_ALIVE (*cp2))  ;
-	  /* row indices will same order for both supercols, */
-	  /* no gather scatter nessasary */
-	  if (*cp1++ != *cp2++)
-	  {
-	    break ;
-	  }
-	}
-
-	/* the two columns are different if the for-loop "broke" */
-	if (i != length)
-	{
-	  prev_c = c ;
-	  continue ;
-	}
-
-	/* === Got it!  two columns are identical =================== */
-
-	COLAMD_ASSERT (Col [c].shared2.score == Col [super_c].shared2.score) ;
-
-	Col [super_c].shared1.thickness += Col [c].shared1.thickness ;
-	Col [c].shared1.parent = super_c ;
-	KILL_NON_PRINCIPAL_COL (c) ;
-	/* order c later, in order_children() */
-	Col [c].shared2.order = COLAMD_EMPTY ;
-	/* remove c from hash bucket */
-	Col [prev_c].shared4.hash_next = Col [c].shared4.hash_next ;
-      }
-    }
-
-    /* === Empty this hash bucket ======================================= */
-
-    if (head_column > COLAMD_EMPTY)
-    {
-      /* corresponding degree list "hash" is not empty */
-      Col [head_column].shared3.headhash = COLAMD_EMPTY ;
-    }
-    else
-    {
-      /* corresponding degree list "hash" is empty */
-      head [hash] = COLAMD_EMPTY ;
-    }
-  }
-}
-
-
-/* ========================================================================== */
-/* === garbage_collection =================================================== */
-/* ========================================================================== */
-
-/*
-  Defragments and compacts columns and rows in the workspace A.  Used when
-  all avaliable memory has been used while performing row merging.  Returns
-  the index of the first free position in A, after garbage collection.  The
-  time taken by this routine is linear is the size of the array A, which is
-  itself linear in the number of nonzeros in the input matrix.
-  Not user-callable.
-*/
-template <typename Index>
-static Index garbage_collection  /* returns the new value of pfree */
-  (
-    /* === Parameters ======================================================= */
-    
-    Index n_row,      /* number of rows */
-    Index n_col,      /* number of columns */
-    Colamd_Row<Index> Row [],    /* row info */
-    colamd_col<Index> Col [],    /* column info */
-    Index A [],     /* A [0 ... Alen-1] holds the matrix */
-    Index *pfree      /* &A [0] ... pfree is in use */
-    )
-{
-  /* === Local variables ================================================== */
-
-  Index *psrc ;     /* source pointer */
-  Index *pdest ;    /* destination pointer */
-  Index j ;     /* counter */
-  Index r ;     /* a row index */
-  Index c ;     /* a column index */
-  Index length ;    /* length of a row or column */
-
-  /* === Defragment the columns =========================================== */
-
-  pdest = &A[0] ;
-  for (c = 0 ; c < n_col ; c++)
-  {
-    if (COL_IS_ALIVE (c))
-    {
-      psrc = &A [Col [c].start] ;
-
-      /* move and compact the column */
-      COLAMD_ASSERT (pdest <= psrc) ;
-      Col [c].start = (Index) (pdest - &A [0]) ;
-      length = Col [c].length ;
-      for (j = 0 ; j < length ; j++)
-      {
-	r = *psrc++ ;
-	if (ROW_IS_ALIVE (r))
-	{
-	  *pdest++ = r ;
-	}
-      }
-      Col [c].length = (Index) (pdest - &A [Col [c].start]) ;
-    }
-  }
-
-  /* === Prepare to defragment the rows =================================== */
-
-  for (r = 0 ; r < n_row ; r++)
-  {
-    if (ROW_IS_ALIVE (r))
-    {
-      if (Row [r].length == 0)
-      {
-	/* this row is of zero length.  cannot compact it, so kill it */
-	COLAMD_DEBUG3 (("Defrag row kill\n")) ;
-	KILL_ROW (r) ;
-      }
-      else
-      {
-	/* save first column index in Row [r].shared2.first_column */
-	psrc = &A [Row [r].start] ;
-	Row [r].shared2.first_column = *psrc ;
-	COLAMD_ASSERT (ROW_IS_ALIVE (r)) ;
-	/* flag the start of the row with the one's complement of row */
-	*psrc = ONES_COMPLEMENT (r) ;
-
-      }
-    }
-  }
-
-  /* === Defragment the rows ============================================== */
-
-  psrc = pdest ;
-  while (psrc < pfree)
-  {
-    /* find a negative number ... the start of a row */
-    if (*psrc++ < 0)
-    {
-      psrc-- ;
-      /* get the row index */
-      r = ONES_COMPLEMENT (*psrc) ;
-      COLAMD_ASSERT (r >= 0 && r < n_row) ;
-      /* restore first column index */
-      *psrc = Row [r].shared2.first_column ;
-      COLAMD_ASSERT (ROW_IS_ALIVE (r)) ;
-
-      /* move and compact the row */
-      COLAMD_ASSERT (pdest <= psrc) ;
-      Row [r].start = (Index) (pdest - &A [0]) ;
-      length = Row [r].length ;
-      for (j = 0 ; j < length ; j++)
-      {
-	c = *psrc++ ;
-	if (COL_IS_ALIVE (c))
-	{
-	  *pdest++ = c ;
-	}
-      }
-      Row [r].length = (Index) (pdest - &A [Row [r].start]) ;
-
-    }
-  }
-  /* ensure we found all the rows */
-  COLAMD_ASSERT (debug_rows == 0) ;
-
-  /* === Return the new value of pfree ==================================== */
-
-  return ((Index) (pdest - &A [0])) ;
-}
-
-
-/* ========================================================================== */
-/* === clear_mark =========================================================== */
-/* ========================================================================== */
-
-/*
-  Clears the Row [].shared2.mark array, and returns the new tag_mark.
-  Return value is the new tag_mark.  Not user-callable.
-*/
-template <typename Index>
-static inline  Index clear_mark  /* return the new value for tag_mark */
-  (
-      /* === Parameters ======================================================= */
-
-    Index n_row,    /* number of rows in A */
-    Colamd_Row<Index> Row [] /* Row [0 ... n_row-1].shared2.mark is set to zero */
-    )
-{
-  /* === Local variables ================================================== */
-
-  Index r ;
-
-  for (r = 0 ; r < n_row ; r++)
-  {
-    if (ROW_IS_ALIVE (r))
-    {
-      Row [r].shared2.mark = 0 ;
-    }
-  }
-  return (1) ;
-}
-
-
-} // namespace internal 
-#endif
diff --git a/vendor/eigen-3.1.91/Eigen/src/OrderingMethods/Ordering.h b/vendor/eigen-3.1.91/Eigen/src/OrderingMethods/Ordering.h
deleted file mode 100644
index b4da653..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/OrderingMethods/Ordering.h
+++ /dev/null
@@ -1,150 +0,0 @@
- 
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012  Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_ORDERING_H
-#define EIGEN_ORDERING_H
-
-namespace Eigen {
-  
-#include "Eigen_Colamd.h"
-
-namespace internal {
-    
-/** \internal
-  * \ingroup OrderingMethods_Module
-  * \returns the symmetric pattern A^T+A from the input matrix A. 
-  * FIXME: The values should not be considered here
-  */
-template<typename MatrixType> 
-void ordering_helper_at_plus_a(const MatrixType& mat, MatrixType& symmat)
-{
-  MatrixType C;
-  C = mat.transpose(); // NOTE: Could be  costly
-  for (int i = 0; i < C.rows(); i++) 
-  {
-      for (typename MatrixType::InnerIterator it(C, i); it; ++it)
-        it.valueRef() = 0.0;
-  }
-  symmat = C + mat; 
-}
-    
-}
-
-#ifndef EIGEN_MPL2_ONLY
-
-/** \ingroup OrderingMethods_Module
-  * \class AMDOrdering
-  *
-  * Functor computing the \em approximate \em minimum \em degree ordering
-  * If the matrix is not structurally symmetric, an ordering of A^T+A is computed
-  * \tparam  Index The type of indices of the matrix 
-  * \sa COLAMDOrdering
-  */
-template <typename Index>
-class AMDOrdering
-{
-  public:
-    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType;
-    
-    /** Compute the permutation vector from a sparse matrix
-     * This routine is much faster if the input matrix is column-major     
-     */
-    template <typename MatrixType>
-    void operator()(const MatrixType& mat, PermutationType& perm)
-    {
-      // Compute the symmetric pattern
-      SparseMatrix<typename MatrixType::Scalar, ColMajor, Index> symm;
-      internal::ordering_helper_at_plus_a(mat,symm); 
-    
-      // Call the AMD routine 
-      //m_mat.prune(keep_diag());
-      internal::minimum_degree_ordering(symm, perm);
-    }
-    
-    /** Compute the permutation with a selfadjoint matrix */
-    template <typename SrcType, unsigned int SrcUpLo> 
-    void operator()(const SparseSelfAdjointView<SrcType, SrcUpLo>& mat, PermutationType& perm)
-    { 
-      SparseMatrix<typename SrcType::Scalar, ColMajor, Index> C; C = mat;
-      
-      // Call the AMD routine 
-      // m_mat.prune(keep_diag()); //Remove the diagonal elements 
-      internal::minimum_degree_ordering(C, perm);
-    }
-};
-
-#endif // EIGEN_MPL2_ONLY
-
-/** \ingroup OrderingMethods_Module
-  * \class NaturalOrdering
-  *
-  * Functor computing the natural ordering (identity)
-  * 
-  * \note Returns an empty permutation matrix
-  * \tparam  Index The type of indices of the matrix 
-  */
-template <typename Index>
-class NaturalOrdering
-{
-  public:
-    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType;
-    
-    /** Compute the permutation vector from a column-major sparse matrix */
-    template <typename MatrixType>
-    void operator()(const MatrixType& /*mat*/, PermutationType& perm)
-    {
-      perm.resize(0); 
-    }
-    
-};
-
-/** \ingroup OrderingMethods_Module
-  * \class COLAMDOrdering
-  *
-  * Functor computing the \em column \em approximate \em minimum \em degree ordering 
-  * The matrix should be in column-major format
-  */
-template<typename Index>
-class COLAMDOrdering
-{
-  public:
-    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType; 
-    typedef Matrix<Index, Dynamic, 1> IndexVector;
-    
-    /** Compute the permutation vector form a sparse matrix */
-    template <typename MatrixType>
-    void operator() (const MatrixType& mat, PermutationType& perm)
-    {
-      Index m = mat.rows();
-      Index n = mat.cols();
-      Index nnz = mat.nonZeros();
-      // Get the recommended value of Alen to be used by colamd
-      Index Alen = internal::colamd_recommended(nnz, m, n); 
-      // Set the default parameters
-      double knobs [COLAMD_KNOBS]; 
-      Index stats [COLAMD_STATS];
-      internal::colamd_set_defaults(knobs);
-      
-      Index info;
-      IndexVector p(n+1), A(Alen); 
-      for(Index i=0; i <= n; i++)   p(i) = mat.outerIndexPtr()[i];
-      for(Index i=0; i < nnz; i++)  A(i) = mat.innerIndexPtr()[i];
-      // Call Colamd routine to compute the ordering 
-      info = internal::colamd(m, n, Alen, A.data(), p.data(), knobs, stats); 
-      eigen_assert( info && "COLAMD failed " );
-      
-      perm.resize(n);
-      for (Index i = 0; i < n; i++) perm.indices()(p(i)) = i;
-    }
-};
-
-} // end namespace Eigen
-
-#endif
diff --git a/vendor/eigen-3.1.91/Eigen/src/PardisoSupport/PardisoSupport.h b/vendor/eigen-3.1.91/Eigen/src/PardisoSupport/PardisoSupport.h
deleted file mode 100644
index 1c48f0d..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/PardisoSupport/PardisoSupport.h
+++ /dev/null
@@ -1,592 +0,0 @@
-/*
- Copyright (c) 2011, Intel Corporation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
- * Neither the name of Intel Corporation nor the names of its contributors may
-   be used to endorse or promote products derived from this software without
-   specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ********************************************************************************
- *   Content : Eigen bindings to Intel(R) MKL PARDISO
- ********************************************************************************
-*/
-
-#ifndef EIGEN_PARDISOSUPPORT_H
-#define EIGEN_PARDISOSUPPORT_H
-
-namespace Eigen { 
-
-template<typename _MatrixType> class PardisoLU;
-template<typename _MatrixType, int Options=Upper> class PardisoLLT;
-template<typename _MatrixType, int Options=Upper> class PardisoLDLT;
-
-namespace internal
-{
-  template<typename Index>
-  struct pardiso_run_selector
-  {
-    static Index run( _MKL_DSS_HANDLE_t pt, Index maxfct, Index mnum, Index type, Index phase, Index n, void *a,
-                      Index *ia, Index *ja, Index *perm, Index nrhs, Index *iparm, Index msglvl, void *b, void *x)
-    {
-      Index error = 0;
-      ::pardiso(pt, &maxfct, &mnum, &type, &phase, &n, a, ia, ja, perm, &nrhs, iparm, &msglvl, b, x, &error);
-      return error;
-    }
-  };
-  template<>
-  struct pardiso_run_selector<long long int>
-  {
-    typedef long long int Index;
-    static Index run( _MKL_DSS_HANDLE_t pt, Index maxfct, Index mnum, Index type, Index phase, Index n, void *a,
-                      Index *ia, Index *ja, Index *perm, Index nrhs, Index *iparm, Index msglvl, void *b, void *x)
-    {
-      Index error = 0;
-      ::pardiso_64(pt, &maxfct, &mnum, &type, &phase, &n, a, ia, ja, perm, &nrhs, iparm, &msglvl, b, x, &error);
-      return error;
-    }
-  };
-
-  template<class Pardiso> struct pardiso_traits;
-
-  template<typename _MatrixType>
-  struct pardiso_traits< PardisoLU<_MatrixType> >
-  {
-    typedef _MatrixType MatrixType;
-    typedef typename _MatrixType::Scalar Scalar;
-    typedef typename _MatrixType::RealScalar RealScalar;
-    typedef typename _MatrixType::Index Index;
-  };
-
-  template<typename _MatrixType, int Options>
-  struct pardiso_traits< PardisoLLT<_MatrixType, Options> >
-  {
-    typedef _MatrixType MatrixType;
-    typedef typename _MatrixType::Scalar Scalar;
-    typedef typename _MatrixType::RealScalar RealScalar;
-    typedef typename _MatrixType::Index Index;
-  };
-
-  template<typename _MatrixType, int Options>
-  struct pardiso_traits< PardisoLDLT<_MatrixType, Options> >
-  {
-    typedef _MatrixType MatrixType;
-    typedef typename _MatrixType::Scalar Scalar;
-    typedef typename _MatrixType::RealScalar RealScalar;
-    typedef typename _MatrixType::Index Index;    
-  };
-
-}
-
-template<class Derived>
-class PardisoImpl
-{
-    typedef internal::pardiso_traits<Derived> Traits;
-  public:
-    typedef typename Traits::MatrixType MatrixType;
-    typedef typename Traits::Scalar Scalar;
-    typedef typename Traits::RealScalar RealScalar;
-    typedef typename Traits::Index Index;
-    typedef SparseMatrix<Scalar,RowMajor,Index> SparseMatrixType;
-    typedef Matrix<Scalar,Dynamic,1> VectorType;
-    typedef Matrix<Index, 1, MatrixType::ColsAtCompileTime> IntRowVectorType;
-    typedef Matrix<Index, MatrixType::RowsAtCompileTime, 1> IntColVectorType;
-    typedef Array<Index,64,1,DontAlign> ParameterType;
-    enum {
-      ScalarIsComplex = NumTraits<Scalar>::IsComplex
-    };
-
-    PardisoImpl()
-    {
-      eigen_assert((sizeof(Index) >= sizeof(_INTEGER_t) && sizeof(Index) <= 8) && "Non-supported index type");
-      m_iparm.setZero();
-      m_msglvl = 0; // No output
-      m_initialized = false;
-    }
-
-    ~PardisoImpl()
-    {
-      pardisoRelease();
-    }
-
-    inline Index cols() const { return m_size; }
-    inline Index rows() const { return m_size; }
-  
-    /** \brief Reports whether previous computation was successful.
-      *
-      * \returns \c Success if computation was succesful,
-      *          \c NumericalIssue if the matrix appears to be negative.
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_initialized && "Decomposition is not initialized.");
-      return m_info;
-    }
-
-    /** \warning for advanced usage only.
-      * \returns a reference to the parameter array controlling PARDISO.
-      * See the PARDISO manual to know how to use it. */
-    ParameterType& pardisoParameterArray()
-    {
-      return m_iparm;
-    }
-    
-    /** Performs a symbolic decomposition on the sparcity of \a matrix.
-      *
-      * This function is particularly useful when solving for several problems having the same structure.
-      * 
-      * \sa factorize()
-      */
-    Derived& analyzePattern(const MatrixType& matrix);
-    
-    /** Performs a numeric decomposition of \a matrix
-      *
-      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
-      *
-      * \sa analyzePattern()
-      */
-    Derived& factorize(const MatrixType& matrix);
-
-    Derived& compute(const MatrixType& matrix);
-    
-    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
-      *
-      * \sa compute()
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<PardisoImpl, Rhs>
-    solve(const MatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_initialized && "Pardiso solver is not initialized.");
-      eigen_assert(rows()==b.rows()
-                && "PardisoImpl::solve(): invalid number of rows of the right hand side matrix b");
-      return internal::solve_retval<PardisoImpl, Rhs>(*this, b.derived());
-    }
-
-    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
-      *
-      * \sa compute()
-      */
-    template<typename Rhs>
-    inline const internal::sparse_solve_retval<PardisoImpl, Rhs>
-    solve(const SparseMatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_initialized && "Pardiso solver is not initialized.");
-      eigen_assert(rows()==b.rows()
-                && "PardisoImpl::solve(): invalid number of rows of the right hand side matrix b");
-      return internal::sparse_solve_retval<PardisoImpl, Rhs>(*this, b.derived());
-    }
-
-    Derived& derived()
-    {
-      return *static_cast<Derived*>(this);
-    }
-    const Derived& derived() const
-    {
-      return *static_cast<const Derived*>(this);
-    }
-
-    template<typename BDerived, typename XDerived>
-    bool _solve(const MatrixBase<BDerived> &b, MatrixBase<XDerived>& x) const;
-
-  protected:
-    void pardisoRelease()
-    {
-      if(m_initialized) // Factorization ran at least once
-      {
-        internal::pardiso_run_selector<Index>::run(m_pt, 1, 1, m_type, -1, m_size, 0, 0, 0, m_perm.data(), 0,
-                                                   m_iparm.data(), m_msglvl, 0, 0);
-      }
-    }
-
-    void pardisoInit(int type)
-    {
-      m_type = type;
-      bool symmetric = abs(m_type) < 10;
-      m_iparm[0] = 1;   // No solver default
-      m_iparm[1] = 3;   // use Metis for the ordering
-      m_iparm[2] = 1;   // Numbers of processors, value of OMP_NUM_THREADS
-      m_iparm[3] = 0;   // No iterative-direct algorithm
-      m_iparm[4] = 0;   // No user fill-in reducing permutation
-      m_iparm[5] = 0;   // Write solution into x
-      m_iparm[6] = 0;   // Not in use
-      m_iparm[7] = 2;   // Max numbers of iterative refinement steps
-      m_iparm[8] = 0;   // Not in use
-      m_iparm[9] = 13;  // Perturb the pivot elements with 1E-13
-      m_iparm[10] = symmetric ? 0 : 1; // Use nonsymmetric permutation and scaling MPS
-      m_iparm[11] = 0;  // Not in use
-      m_iparm[12] = symmetric ? 0 : 1;  // Maximum weighted matching algorithm is switched-off (default for symmetric).
-                                        // Try m_iparm[12] = 1 in case of inappropriate accuracy
-      m_iparm[13] = 0;  // Output: Number of perturbed pivots
-      m_iparm[14] = 0;  // Not in use
-      m_iparm[15] = 0;  // Not in use
-      m_iparm[16] = 0;  // Not in use
-      m_iparm[17] = -1; // Output: Number of nonzeros in the factor LU
-      m_iparm[18] = -1; // Output: Mflops for LU factorization
-      m_iparm[19] = 0;  // Output: Numbers of CG Iterations
-      
-      m_iparm[20] = 0;  // 1x1 pivoting
-      m_iparm[26] = 0;  // No matrix checker
-      m_iparm[27] = (sizeof(RealScalar) == 4) ? 1 : 0;
-      m_iparm[34] = 1;  // C indexing
-      m_iparm[59] = 1;  // Automatic switch between In-Core and Out-of-Core modes
-    }
-
-  protected:
-    // cached data to reduce reallocation, etc.
-    
-    void manageErrorCode(Index error)
-    {
-      switch(error)
-      {
-        case 0:
-          m_info = Success;
-          break;
-        case -4:
-        case -7:
-          m_info = NumericalIssue;
-          break;
-        default:
-          m_info = InvalidInput;
-      }
-    }
-
-    mutable SparseMatrixType m_matrix;
-    ComputationInfo m_info;
-    bool m_initialized, m_analysisIsOk, m_factorizationIsOk;
-    Index m_type, m_msglvl;
-    mutable void *m_pt[64];
-    mutable ParameterType m_iparm;
-    mutable IntColVectorType m_perm;
-    Index m_size;
-    
-  private:
-    PardisoImpl(PardisoImpl &) {}
-};
-
-template<class Derived>
-Derived& PardisoImpl<Derived>::compute(const MatrixType& a)
-{
-  m_size = a.rows();
-  eigen_assert(a.rows() == a.cols());
-
-  pardisoRelease();
-  memset(m_pt, 0, sizeof(m_pt));
-  m_perm.setZero(m_size);
-  derived().getMatrix(a);
-  
-  Index error;
-  error = internal::pardiso_run_selector<Index>::run(m_pt, 1, 1, m_type, 12, m_size,
-                                                     m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
-                                                     m_perm.data(), 0, m_iparm.data(), m_msglvl, NULL, NULL);
-
-  manageErrorCode(error);
-  m_analysisIsOk = true;
-  m_factorizationIsOk = true;
-  m_initialized = true;
-  return derived();
-}
-
-template<class Derived>
-Derived& PardisoImpl<Derived>::analyzePattern(const MatrixType& a)
-{
-  m_size = a.rows();
-  eigen_assert(m_size == a.cols());
-
-  pardisoRelease();
-  memset(m_pt, 0, sizeof(m_pt));
-  m_perm.setZero(m_size);
-  derived().getMatrix(a);
-  
-  Index error;
-  error = internal::pardiso_run_selector<Index>::run(m_pt, 1, 1, m_type, 11, m_size,
-                                                     m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
-                                                     m_perm.data(), 0, m_iparm.data(), m_msglvl, NULL, NULL);
-  
-  manageErrorCode(error);
-  m_analysisIsOk = true;
-  m_factorizationIsOk = false;
-  m_initialized = true;
-  return derived();
-}
-
-template<class Derived>
-Derived& PardisoImpl<Derived>::factorize(const MatrixType& a)
-{
-  eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
-  eigen_assert(m_size == a.rows() && m_size == a.cols());
-  
-  derived().getMatrix(a);
-
-  Index error;  
-  error = internal::pardiso_run_selector<Index>::run(m_pt, 1, 1, m_type, 22, m_size,
-                                                     m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
-                                                     m_perm.data(), 0, m_iparm.data(), m_msglvl, NULL, NULL);
-  
-  manageErrorCode(error);
-  m_factorizationIsOk = true;
-  return derived();
-}
-
-template<class Base>
-template<typename BDerived,typename XDerived>
-bool PardisoImpl<Base>::_solve(const MatrixBase<BDerived> &b, MatrixBase<XDerived>& x) const
-{
-  if(m_iparm[0] == 0) // Factorization was not computed
-    return false;
-
-  //Index n = m_matrix.rows();
-  Index nrhs = Index(b.cols());
-  eigen_assert(m_size==b.rows());
-  eigen_assert(((MatrixBase<BDerived>::Flags & RowMajorBit) == 0 || nrhs == 1) && "Row-major right hand sides are not supported");
-  eigen_assert(((MatrixBase<XDerived>::Flags & RowMajorBit) == 0 || nrhs == 1) && "Row-major matrices of unknowns are not supported");
-  eigen_assert(((nrhs == 1) || b.outerStride() == b.rows()));
-
-
-//  switch (transposed) {
-//    case SvNoTrans    : m_iparm[11] = 0 ; break;
-//    case SvTranspose  : m_iparm[11] = 2 ; break;
-//    case SvAdjoint    : m_iparm[11] = 1 ; break;
-//    default:
-//      //std::cerr << "Eigen: transposition  option \"" << transposed << "\" not supported by the PARDISO backend\n";
-//      m_iparm[11] = 0;
-//  }
-
-  Scalar* rhs_ptr = const_cast<Scalar*>(b.derived().data());
-  Matrix<Scalar,Dynamic,Dynamic,ColMajor> tmp;
-  
-  // Pardiso cannot solve in-place
-  if(rhs_ptr == x.derived().data())
-  {
-    tmp = b;
-    rhs_ptr = tmp.data();
-  }
-  
-  Index error;
-  error = internal::pardiso_run_selector<Index>::run(m_pt, 1, 1, m_type, 33, m_size,
-                                                     m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
-                                                     m_perm.data(), nrhs, m_iparm.data(), m_msglvl,
-                                                     rhs_ptr, x.derived().data());
-
-  return error==0;
-}
-
-
-/** \ingroup PardisoSupport_Module
-  * \class PardisoLU
-  * \brief A sparse direct LU factorization and solver based on the PARDISO library
-  *
-  * This class allows to solve for A.X = B sparse linear problems via a direct LU factorization
-  * using the Intel MKL PARDISO library. The sparse matrix A must be squared and invertible.
-  * The vectors or matrices X and B can be either dense or sparse.
-  *
-  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
-  *
-  * \sa \ref TutorialSparseDirectSolvers
-  */
-template<typename MatrixType>
-class PardisoLU : public PardisoImpl< PardisoLU<MatrixType> >
-{
-  protected:
-    typedef PardisoImpl< PardisoLU<MatrixType> > Base;
-    typedef typename Base::Scalar Scalar;
-    typedef typename Base::RealScalar RealScalar;
-    using Base::pardisoInit;
-    using Base::m_matrix;
-    friend class PardisoImpl< PardisoLU<MatrixType> >;
-
-  public:
-
-    using Base::compute;
-    using Base::solve;
-
-    PardisoLU()
-      : Base()
-    {
-      pardisoInit(Base::ScalarIsComplex ? 13 : 11);
-    }
-
-    PardisoLU(const MatrixType& matrix)
-      : Base()
-    {
-      pardisoInit(Base::ScalarIsComplex ? 13 : 11);
-      compute(matrix);
-    }
-  protected:
-    void getMatrix(const MatrixType& matrix)
-    {
-      m_matrix = matrix;
-    }
-    
-  private:
-    PardisoLU(PardisoLU& ) {}
-};
-
-/** \ingroup PardisoSupport_Module
-  * \class PardisoLLT
-  * \brief A sparse direct Cholesky (LLT) factorization and solver based on the PARDISO library
-  *
-  * This class allows to solve for A.X = B sparse linear problems via a LL^T Cholesky factorization
-  * using the Intel MKL PARDISO library. The sparse matrix A must be selfajoint and positive definite.
-  * The vectors or matrices X and B can be either dense or sparse.
-  *
-  * \tparam MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
-  * \tparam UpLo can be any bitwise combination of Upper, Lower. The default is Upper, meaning only the upper triangular part has to be used.
-  *         Upper|Lower can be used to tell both triangular parts can be used as input.
-  *
-  * \sa \ref TutorialSparseDirectSolvers
-  */
-template<typename MatrixType, int _UpLo>
-class PardisoLLT : public PardisoImpl< PardisoLLT<MatrixType,_UpLo> >
-{
-  protected:
-    typedef PardisoImpl< PardisoLLT<MatrixType,_UpLo> > Base;
-    typedef typename Base::Scalar Scalar;
-    typedef typename Base::Index Index;
-    typedef typename Base::RealScalar RealScalar;
-    using Base::pardisoInit;
-    using Base::m_matrix;
-    friend class PardisoImpl< PardisoLLT<MatrixType,_UpLo> >;
-
-  public:
-
-    enum { UpLo = _UpLo };
-    using Base::compute;
-    using Base::solve;
-
-    PardisoLLT()
-      : Base()
-    {
-      pardisoInit(Base::ScalarIsComplex ? 4 : 2);
-    }
-
-    PardisoLLT(const MatrixType& matrix)
-      : Base()
-    {
-      pardisoInit(Base::ScalarIsComplex ? 4 : 2);
-      compute(matrix);
-    }
-    
-  protected:
-    
-    void getMatrix(const MatrixType& matrix)
-    {
-      // PARDISO supports only upper, row-major matrices
-      PermutationMatrix<Dynamic,Dynamic,Index> p_null;
-      m_matrix.resize(matrix.rows(), matrix.cols());
-      m_matrix.template selfadjointView<Upper>() = matrix.template selfadjointView<UpLo>().twistedBy(p_null);
-    }
-    
-  private:
-    PardisoLLT(PardisoLLT& ) {}
-};
-
-/** \ingroup PardisoSupport_Module
-  * \class PardisoLDLT
-  * \brief A sparse direct Cholesky (LDLT) factorization and solver based on the PARDISO library
-  *
-  * This class allows to solve for A.X = B sparse linear problems via a LDL^T Cholesky factorization
-  * using the Intel MKL PARDISO library. The sparse matrix A is assumed to be selfajoint and positive definite.
-  * For complex matrices, A can also be symmetric only, see the \a Options template parameter.
-  * The vectors or matrices X and B can be either dense or sparse.
-  *
-  * \tparam MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
-  * \tparam Options can be any bitwise combination of Upper, Lower, and Symmetric. The default is Upper, meaning only the upper triangular part has to be used.
-  *         Symmetric can be used for symmetric, non-selfadjoint complex matrices, the default being to assume a selfadjoint matrix.
-  *         Upper|Lower can be used to tell both triangular parts can be used as input.
-  *
-  * \sa \ref TutorialSparseDirectSolvers
-  */
-template<typename MatrixType, int Options>
-class PardisoLDLT : public PardisoImpl< PardisoLDLT<MatrixType,Options> >
-{
-  protected:
-    typedef PardisoImpl< PardisoLDLT<MatrixType,Options> > Base;
-    typedef typename Base::Scalar Scalar;
-    typedef typename Base::Index Index;
-    typedef typename Base::RealScalar RealScalar;
-    using Base::pardisoInit;
-    using Base::m_matrix;
-    friend class PardisoImpl< PardisoLDLT<MatrixType,Options> >;
-
-  public:
-
-    using Base::compute;
-    using Base::solve;
-    enum { UpLo = Options&(Upper|Lower) };
-
-    PardisoLDLT()
-      : Base()
-    {
-      pardisoInit(Base::ScalarIsComplex ? ( bool(Options&Symmetric) ? 6 : -4 ) : -2);
-    }
-
-    PardisoLDLT(const MatrixType& matrix)
-      : Base()
-    {
-      pardisoInit(Base::ScalarIsComplex ? ( bool(Options&Symmetric) ? 6 : -4 ) : -2);
-      compute(matrix);
-    }
-    
-    void getMatrix(const MatrixType& matrix)
-    {
-      // PARDISO supports only upper, row-major matrices
-      PermutationMatrix<Dynamic,Dynamic,Index> p_null;
-      m_matrix.resize(matrix.rows(), matrix.cols());
-      m_matrix.template selfadjointView<Upper>() = matrix.template selfadjointView<UpLo>().twistedBy(p_null);
-    }
-    
-  private:
-    PardisoLDLT(PardisoLDLT& ) {}
-};
-
-namespace internal {
-  
-template<typename _Derived, typename Rhs>
-struct solve_retval<PardisoImpl<_Derived>, Rhs>
-  : solve_retval_base<PardisoImpl<_Derived>, Rhs>
-{
-  typedef PardisoImpl<_Derived> Dec;
-  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    dec()._solve(rhs(),dst);
-  }
-};
-
-template<typename Derived, typename Rhs>
-struct sparse_solve_retval<PardisoImpl<Derived>, Rhs>
-  : sparse_solve_retval_base<PardisoImpl<Derived>, Rhs>
-{
-  typedef PardisoImpl<Derived> Dec;
-  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    this->defaultEvalTo(dst);
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_PARDISOSUPPORT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/QR/ColPivHouseholderQR.h b/vendor/eigen-3.1.91/Eigen/src/QR/ColPivHouseholderQR.h
deleted file mode 100644
index 9ec8a65..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/QR/ColPivHouseholderQR.h
+++ /dev/null
@@ -1,555 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_COLPIVOTINGHOUSEHOLDERQR_H
-#define EIGEN_COLPIVOTINGHOUSEHOLDERQR_H
-
-namespace Eigen { 
-
-/** \ingroup QR_Module
-  *
-  * \class ColPivHouseholderQR
-  *
-  * \brief Householder rank-revealing QR decomposition of a matrix with column-pivoting
-  *
-  * \param MatrixType the type of the matrix of which we are computing the QR decomposition
-  *
-  * This class performs a rank-revealing QR decomposition of a matrix \b A into matrices \b P, \b Q and \b R
-  * such that 
-  * \f[
-  *  \mathbf{A} \, \mathbf{P} = \mathbf{Q} \, \mathbf{R}
-  * \f]
-  * by using Householder transformations. Here, \b P is a permutation matrix, \b Q a unitary matrix and \b R an 
-  * upper triangular matrix.
-  *
-  * This decomposition performs column pivoting in order to be rank-revealing and improve
-  * numerical stability. It is slower than HouseholderQR, and faster than FullPivHouseholderQR.
-  *
-  * \sa MatrixBase::colPivHouseholderQr()
-  */
-template<typename _MatrixType> class ColPivHouseholderQR
-{
-  public:
-
-    typedef _MatrixType MatrixType;
-    enum {
-      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-      Options = MatrixType::Options,
-      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
-    };
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::RealScalar RealScalar;
-    typedef typename MatrixType::Index Index;
-    typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, Options, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixQType;
-    typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
-    typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationType;
-    typedef typename internal::plain_row_type<MatrixType, Index>::type IntRowVectorType;
-    typedef typename internal::plain_row_type<MatrixType>::type RowVectorType;
-    typedef typename internal::plain_row_type<MatrixType, RealScalar>::type RealRowVectorType;
-    typedef typename HouseholderSequence<MatrixType,HCoeffsType>::ConjugateReturnType HouseholderSequenceType;
-    
-  private:
-    
-    typedef typename PermutationType::Index PermIndexType;
-    
-  public:
-
-    /**
-    * \brief Default Constructor.
-    *
-    * The default constructor is useful in cases in which the user intends to
-    * perform decompositions via ColPivHouseholderQR::compute(const MatrixType&).
-    */
-    ColPivHouseholderQR()
-      : m_qr(),
-        m_hCoeffs(),
-        m_colsPermutation(),
-        m_colsTranspositions(),
-        m_temp(),
-        m_colSqNorms(),
-        m_isInitialized(false) {}
-
-    /** \brief Default Constructor with memory preallocation
-      *
-      * Like the default constructor but with preallocation of the internal data
-      * according to the specified problem \a size.
-      * \sa ColPivHouseholderQR()
-      */
-    ColPivHouseholderQR(Index rows, Index cols)
-      : m_qr(rows, cols),
-        m_hCoeffs((std::min)(rows,cols)),
-        m_colsPermutation(PermIndexType(cols)),
-        m_colsTranspositions(cols),
-        m_temp(cols),
-        m_colSqNorms(cols),
-        m_isInitialized(false),
-        m_usePrescribedThreshold(false) {}
-
-    ColPivHouseholderQR(const MatrixType& matrix)
-      : m_qr(matrix.rows(), matrix.cols()),
-        m_hCoeffs((std::min)(matrix.rows(),matrix.cols())),
-        m_colsPermutation(PermIndexType(matrix.cols())),
-        m_colsTranspositions(matrix.cols()),
-        m_temp(matrix.cols()),
-        m_colSqNorms(matrix.cols()),
-        m_isInitialized(false),
-        m_usePrescribedThreshold(false)
-    {
-      compute(matrix);
-    }
-
-    /** This method finds a solution x to the equation Ax=b, where A is the matrix of which
-      * *this is the QR decomposition, if any exists.
-      *
-      * \param b the right-hand-side of the equation to solve.
-      *
-      * \returns a solution.
-      *
-      * \note The case where b is a matrix is not yet implemented. Also, this
-      *       code is space inefficient.
-      *
-      * \note_about_checking_solutions
-      *
-      * \note_about_arbitrary_choice_of_solution
-      *
-      * Example: \include ColPivHouseholderQR_solve.cpp
-      * Output: \verbinclude ColPivHouseholderQR_solve.out
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<ColPivHouseholderQR, Rhs>
-    solve(const MatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
-      return internal::solve_retval<ColPivHouseholderQR, Rhs>(*this, b.derived());
-    }
-
-    HouseholderSequenceType householderQ(void) const;
-    HouseholderSequenceType matrixQ(void) const
-    {
-      return householderQ(); 
-    }
-
-    /** \returns a reference to the matrix where the Householder QR decomposition is stored
-      */
-    const MatrixType& matrixQR() const
-    {
-      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
-      return m_qr;
-    }
-    
-    /** \returns a reference to the matrix where the result Householder QR is stored 
-     * \warning The strict lower part of this matrix contains internal values. 
-     * Only the upper triangular part should be referenced. To get it, use
-     * \code matrixR().template triangularView<Upper>() \endcode
-     * For rank-deficient matrices, use 
-     * \code 
-     * matrixR().topLeftCorner(rank(), rank()).template triangularView<Upper>() 
-     * \endcode
-     */
-    const MatrixType& matrixR() const
-    {
-      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
-      return m_qr;
-    }
-    
-    ColPivHouseholderQR& compute(const MatrixType& matrix);
-
-    const PermutationType& colsPermutation() const
-    {
-      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
-      return m_colsPermutation;
-    }
-
-    /** \returns the absolute value of the determinant of the matrix of which
-      * *this is the QR decomposition. It has only linear complexity
-      * (that is, O(n) where n is the dimension of the square matrix)
-      * as the QR decomposition has already been computed.
-      *
-      * \note This is only for square matrices.
-      *
-      * \warning a determinant can be very big or small, so for matrices
-      * of large enough dimension, there is a risk of overflow/underflow.
-      * One way to work around that is to use logAbsDeterminant() instead.
-      *
-      * \sa logAbsDeterminant(), MatrixBase::determinant()
-      */
-    typename MatrixType::RealScalar absDeterminant() const;
-
-    /** \returns the natural log of the absolute value of the determinant of the matrix of which
-      * *this is the QR decomposition. It has only linear complexity
-      * (that is, O(n) where n is the dimension of the square matrix)
-      * as the QR decomposition has already been computed.
-      *
-      * \note This is only for square matrices.
-      *
-      * \note This method is useful to work around the risk of overflow/underflow that's inherent
-      * to determinant computation.
-      *
-      * \sa absDeterminant(), MatrixBase::determinant()
-      */
-    typename MatrixType::RealScalar logAbsDeterminant() const;
-
-    /** \returns the rank of the matrix of which *this is the QR decomposition.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      */
-    inline Index rank() const
-    {
-      using std::abs;
-      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
-      RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold();
-      Index result = 0;
-      for(Index i = 0; i < m_nonzero_pivots; ++i)
-        result += (abs(m_qr.coeff(i,i)) > premultiplied_threshold);
-      return result;
-    }
-
-    /** \returns the dimension of the kernel of the matrix of which *this is the QR decomposition.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      */
-    inline Index dimensionOfKernel() const
-    {
-      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
-      return cols() - rank();
-    }
-
-    /** \returns true if the matrix of which *this is the QR decomposition represents an injective
-      *          linear map, i.e. has trivial kernel; false otherwise.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      */
-    inline bool isInjective() const
-    {
-      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
-      return rank() == cols();
-    }
-
-    /** \returns true if the matrix of which *this is the QR decomposition represents a surjective
-      *          linear map; false otherwise.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      */
-    inline bool isSurjective() const
-    {
-      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
-      return rank() == rows();
-    }
-
-    /** \returns true if the matrix of which *this is the QR decomposition is invertible.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      */
-    inline bool isInvertible() const
-    {
-      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
-      return isInjective() && isSurjective();
-    }
-
-    /** \returns the inverse of the matrix of which *this is the QR decomposition.
-      *
-      * \note If this matrix is not invertible, the returned matrix has undefined coefficients.
-      *       Use isInvertible() to first determine whether this matrix is invertible.
-      */
-    inline const
-    internal::solve_retval<ColPivHouseholderQR, typename MatrixType::IdentityReturnType>
-    inverse() const
-    {
-      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
-      return internal::solve_retval<ColPivHouseholderQR,typename MatrixType::IdentityReturnType>
-               (*this, MatrixType::Identity(m_qr.rows(), m_qr.cols()));
-    }
-
-    inline Index rows() const { return m_qr.rows(); }
-    inline Index cols() const { return m_qr.cols(); }
-    const HCoeffsType& hCoeffs() const { return m_hCoeffs; }
-
-    /** Allows to prescribe a threshold to be used by certain methods, such as rank(),
-      * who need to determine when pivots are to be considered nonzero. This is not used for the
-      * QR decomposition itself.
-      *
-      * When it needs to get the threshold value, Eigen calls threshold(). By default, this
-      * uses a formula to automatically determine a reasonable threshold.
-      * Once you have called the present method setThreshold(const RealScalar&),
-      * your value is used instead.
-      *
-      * \param threshold The new value to use as the threshold.
-      *
-      * A pivot will be considered nonzero if its absolute value is strictly greater than
-      *  \f$ \vert pivot \vert \leqslant threshold \times \vert maxpivot \vert \f$
-      * where maxpivot is the biggest pivot.
-      *
-      * If you want to come back to the default behavior, call setThreshold(Default_t)
-      */
-    ColPivHouseholderQR& setThreshold(const RealScalar& threshold)
-    {
-      m_usePrescribedThreshold = true;
-      m_prescribedThreshold = threshold;
-      return *this;
-    }
-
-    /** Allows to come back to the default behavior, letting Eigen use its default formula for
-      * determining the threshold.
-      *
-      * You should pass the special object Eigen::Default as parameter here.
-      * \code qr.setThreshold(Eigen::Default); \endcode
-      *
-      * See the documentation of setThreshold(const RealScalar&).
-      */
-    ColPivHouseholderQR& setThreshold(Default_t)
-    {
-      m_usePrescribedThreshold = false;
-      return *this;
-    }
-
-    /** Returns the threshold that will be used by certain methods such as rank().
-      *
-      * See the documentation of setThreshold(const RealScalar&).
-      */
-    RealScalar threshold() const
-    {
-      eigen_assert(m_isInitialized || m_usePrescribedThreshold);
-      return m_usePrescribedThreshold ? m_prescribedThreshold
-      // this formula comes from experimenting (see "LU precision tuning" thread on the list)
-      // and turns out to be identical to Higham's formula used already in LDLt.
-                                      : NumTraits<Scalar>::epsilon() * m_qr.diagonalSize();
-    }
-
-    /** \returns the number of nonzero pivots in the QR decomposition.
-      * Here nonzero is meant in the exact sense, not in a fuzzy sense.
-      * So that notion isn't really intrinsically interesting, but it is
-      * still useful when implementing algorithms.
-      *
-      * \sa rank()
-      */
-    inline Index nonzeroPivots() const
-    {
-      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
-      return m_nonzero_pivots;
-    }
-
-    /** \returns the absolute value of the biggest pivot, i.e. the biggest
-      *          diagonal coefficient of R.
-      */
-    RealScalar maxPivot() const { return m_maxpivot; }
-    
-    /** \brief Reports whether the QR factorization was succesful.
-      *
-      * \note This function always returns \c Success. It is provided for compatibility 
-      * with other factorization routines.
-      * \returns \c Success 
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
-      return Success;
-    }
-
-  protected:
-    MatrixType m_qr;
-    HCoeffsType m_hCoeffs;
-    PermutationType m_colsPermutation;
-    IntRowVectorType m_colsTranspositions;
-    RowVectorType m_temp;
-    RealRowVectorType m_colSqNorms;
-    bool m_isInitialized, m_usePrescribedThreshold;
-    RealScalar m_prescribedThreshold, m_maxpivot;
-    Index m_nonzero_pivots;
-    Index m_det_pq;
-};
-
-template<typename MatrixType>
-typename MatrixType::RealScalar ColPivHouseholderQR<MatrixType>::absDeterminant() const
-{
-  using std::abs;
-  eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
-  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
-  return abs(m_qr.diagonal().prod());
-}
-
-template<typename MatrixType>
-typename MatrixType::RealScalar ColPivHouseholderQR<MatrixType>::logAbsDeterminant() const
-{
-  eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
-  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
-  return m_qr.diagonal().cwiseAbs().array().log().sum();
-}
-
-template<typename MatrixType>
-ColPivHouseholderQR<MatrixType>& ColPivHouseholderQR<MatrixType>::compute(const MatrixType& matrix)
-{
-  using std::abs;
-  Index rows = matrix.rows();
-  Index cols = matrix.cols();
-  Index size = matrix.diagonalSize();
-  
-  // the column permutation is stored as int indices, so just to be sure:
-  eigen_assert(cols<=NumTraits<int>::highest());
-
-  m_qr = matrix;
-  m_hCoeffs.resize(size);
-
-  m_temp.resize(cols);
-
-  m_colsTranspositions.resize(matrix.cols());
-  Index number_of_transpositions = 0;
-
-  m_colSqNorms.resize(cols);
-  for(Index k = 0; k < cols; ++k)
-    m_colSqNorms.coeffRef(k) = m_qr.col(k).squaredNorm();
-
-  RealScalar threshold_helper = m_colSqNorms.maxCoeff() * internal::abs2(NumTraits<Scalar>::epsilon()) / RealScalar(rows);
-
-  m_nonzero_pivots = size; // the generic case is that in which all pivots are nonzero (invertible case)
-  m_maxpivot = RealScalar(0);
-
-  for(Index k = 0; k < size; ++k)
-  {
-    // first, we look up in our table m_colSqNorms which column has the biggest squared norm
-    Index biggest_col_index;
-    RealScalar biggest_col_sq_norm = m_colSqNorms.tail(cols-k).maxCoeff(&biggest_col_index);
-    biggest_col_index += k;
-
-    // since our table m_colSqNorms accumulates imprecision at every step, we must now recompute
-    // the actual squared norm of the selected column.
-    // Note that not doing so does result in solve() sometimes returning inf/nan values
-    // when running the unit test with 1000 repetitions.
-    biggest_col_sq_norm = m_qr.col(biggest_col_index).tail(rows-k).squaredNorm();
-
-    // we store that back into our table: it can't hurt to correct our table.
-    m_colSqNorms.coeffRef(biggest_col_index) = biggest_col_sq_norm;
-
-    // if the current biggest column is smaller than epsilon times the initial biggest column,
-    // terminate to avoid generating nan/inf values.
-    // Note that here, if we test instead for "biggest == 0", we get a failure every 1000 (or so)
-    // repetitions of the unit test, with the result of solve() filled with large values of the order
-    // of 1/(size*epsilon).
-    if(biggest_col_sq_norm < threshold_helper * RealScalar(rows-k))
-    {
-      m_nonzero_pivots = k;
-      m_hCoeffs.tail(size-k).setZero();
-      m_qr.bottomRightCorner(rows-k,cols-k)
-          .template triangularView<StrictlyLower>()
-          .setZero();
-      break;
-    }
-
-    // apply the transposition to the columns
-    m_colsTranspositions.coeffRef(k) = biggest_col_index;
-    if(k != biggest_col_index) {
-      m_qr.col(k).swap(m_qr.col(biggest_col_index));
-      std::swap(m_colSqNorms.coeffRef(k), m_colSqNorms.coeffRef(biggest_col_index));
-      ++number_of_transpositions;
-    }
-
-    // generate the householder vector, store it below the diagonal
-    RealScalar beta;
-    m_qr.col(k).tail(rows-k).makeHouseholderInPlace(m_hCoeffs.coeffRef(k), beta);
-
-    // apply the householder transformation to the diagonal coefficient
-    m_qr.coeffRef(k,k) = beta;
-
-    // remember the maximum absolute value of diagonal coefficients
-    if(abs(beta) > m_maxpivot) m_maxpivot = abs(beta);
-
-    // apply the householder transformation
-    m_qr.bottomRightCorner(rows-k, cols-k-1)
-        .applyHouseholderOnTheLeft(m_qr.col(k).tail(rows-k-1), m_hCoeffs.coeffRef(k), &m_temp.coeffRef(k+1));
-
-    // update our table of squared norms of the columns
-    m_colSqNorms.tail(cols-k-1) -= m_qr.row(k).tail(cols-k-1).cwiseAbs2();
-  }
-
-  m_colsPermutation.setIdentity(PermIndexType(cols));
-  for(PermIndexType k = 0; k < m_nonzero_pivots; ++k)
-    m_colsPermutation.applyTranspositionOnTheRight(k, PermIndexType(m_colsTranspositions.coeff(k)));
-
-  m_det_pq = (number_of_transpositions%2) ? -1 : 1;
-  m_isInitialized = true;
-
-  return *this;
-}
-
-namespace internal {
-
-template<typename _MatrixType, typename Rhs>
-struct solve_retval<ColPivHouseholderQR<_MatrixType>, Rhs>
-  : solve_retval_base<ColPivHouseholderQR<_MatrixType>, Rhs>
-{
-  EIGEN_MAKE_SOLVE_HELPERS(ColPivHouseholderQR<_MatrixType>,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    eigen_assert(rhs().rows() == dec().rows());
-
-    const int cols = dec().cols(),
-    nonzero_pivots = dec().nonzeroPivots();
-
-    if(nonzero_pivots == 0)
-    {
-      dst.setZero();
-      return;
-    }
-
-    typename Rhs::PlainObject c(rhs());
-
-    // Note that the matrix Q = H_0^* H_1^*... so its inverse is Q^* = (H_0 H_1 ...)^T
-    c.applyOnTheLeft(householderSequence(dec().matrixQR(), dec().hCoeffs())
-                     .setLength(dec().nonzeroPivots())
-		     .transpose()
-      );
-
-    dec().matrixR()
-       .topLeftCorner(nonzero_pivots, nonzero_pivots)
-       .template triangularView<Upper>()
-       .solveInPlace(c.topRows(nonzero_pivots));
-
-    for(Index i = 0; i < nonzero_pivots; ++i) dst.row(dec().colsPermutation().indices().coeff(i)) = c.row(i);
-    for(Index i = nonzero_pivots; i < cols; ++i) dst.row(dec().colsPermutation().indices().coeff(i)).setZero();
-  }
-};
-
-} // end namespace internal
-
-/** \returns the matrix Q as a sequence of householder transformations */
-template<typename MatrixType>
-typename ColPivHouseholderQR<MatrixType>::HouseholderSequenceType ColPivHouseholderQR<MatrixType>
-  ::householderQ() const
-{
-  eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
-  return HouseholderSequenceType(m_qr, m_hCoeffs.conjugate()).setLength(m_nonzero_pivots);
-}
-
-/** \return the column-pivoting Householder QR decomposition of \c *this.
-  *
-  * \sa class ColPivHouseholderQR
-  */
-template<typename Derived>
-const ColPivHouseholderQR<typename MatrixBase<Derived>::PlainObject>
-MatrixBase<Derived>::colPivHouseholderQr() const
-{
-  return ColPivHouseholderQR<PlainObject>(eval());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_COLPIVOTINGHOUSEHOLDERQR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/QR/ColPivHouseholderQR_MKL.h b/vendor/eigen-3.1.91/Eigen/src/QR/ColPivHouseholderQR_MKL.h
deleted file mode 100644
index b5b1983..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/QR/ColPivHouseholderQR_MKL.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- Copyright (c) 2011, Intel Corporation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
- * Neither the name of Intel Corporation nor the names of its contributors may
-   be used to endorse or promote products derived from this software without
-   specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ********************************************************************************
- *   Content : Eigen bindings to Intel(R) MKL
- *    Householder QR decomposition of a matrix with column pivoting based on
- *    LAPACKE_?geqp3 function.
- ********************************************************************************
-*/
-
-#ifndef EIGEN_COLPIVOTINGHOUSEHOLDERQR_MKL_H
-#define EIGEN_COLPIVOTINGHOUSEHOLDERQR_MKL_H
-
-#include "Eigen/src/Core/util/MKL_support.h"
-
-namespace Eigen { 
-
-/** \internal Specialization for the data types supported by MKL */
-
-#define EIGEN_MKL_QR_COLPIV(EIGTYPE, MKLTYPE, MKLPREFIX, EIGCOLROW, MKLCOLROW) \
-template<> inline \
-ColPivHouseholderQR<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> >& \
-ColPivHouseholderQR<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> >::compute( \
-              const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic>& matrix) \
-\
-{ \
-  using std::abs; \
-  typedef Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> MatrixType; \
-  typedef MatrixType::Scalar Scalar; \
-  typedef MatrixType::RealScalar RealScalar; \
-  Index rows = matrix.rows();\
-  Index cols = matrix.cols();\
-  Index size = matrix.diagonalSize();\
-\
-  m_qr = matrix;\
-  m_hCoeffs.resize(size);\
-\
-  m_colsTranspositions.resize(cols);\
-  /*Index number_of_transpositions = 0;*/ \
-\
-  m_nonzero_pivots = 0; \
-  m_maxpivot = RealScalar(0);\
-  m_colsPermutation.resize(cols); \
-  m_colsPermutation.indices().setZero(); \
-\
-  lapack_int lda = m_qr.outerStride(), i; \
-  lapack_int matrix_order = MKLCOLROW; \
-  LAPACKE_##MKLPREFIX##geqp3( matrix_order, rows, cols, (MKLTYPE*)m_qr.data(), lda, (lapack_int*)m_colsPermutation.indices().data(), (MKLTYPE*)m_hCoeffs.data()); \
-  m_isInitialized = true; \
-  m_maxpivot=m_qr.diagonal().cwiseAbs().maxCoeff(); \
-  m_hCoeffs.adjointInPlace(); \
-  RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold(); \
-  lapack_int *perm = m_colsPermutation.indices().data(); \
-  for(i=0;i<size;i++) { \
-    m_nonzero_pivots += (abs(m_qr.coeff(i,i)) > premultiplied_threshold);\
-  } \
-  for(i=0;i<cols;i++) perm[i]--;\
-\
-  /*m_det_pq = (number_of_transpositions%2) ? -1 : 1;  // TODO: It's not needed now; fix upon availability in Eigen */ \
-\
-  return *this; \
-}
-
-EIGEN_MKL_QR_COLPIV(double,   double,        d, ColMajor, LAPACK_COL_MAJOR)
-EIGEN_MKL_QR_COLPIV(float,    float,         s, ColMajor, LAPACK_COL_MAJOR)
-EIGEN_MKL_QR_COLPIV(dcomplex, MKL_Complex16, z, ColMajor, LAPACK_COL_MAJOR)
-EIGEN_MKL_QR_COLPIV(scomplex, MKL_Complex8,  c, ColMajor, LAPACK_COL_MAJOR)
-
-EIGEN_MKL_QR_COLPIV(double,   double,        d, RowMajor, LAPACK_ROW_MAJOR)
-EIGEN_MKL_QR_COLPIV(float,    float,         s, RowMajor, LAPACK_ROW_MAJOR)
-EIGEN_MKL_QR_COLPIV(dcomplex, MKL_Complex16, z, RowMajor, LAPACK_ROW_MAJOR)
-EIGEN_MKL_QR_COLPIV(scomplex, MKL_Complex8,  c, RowMajor, LAPACK_ROW_MAJOR)
-
-} // end namespace Eigen
-
-#endif // EIGEN_COLPIVOTINGHOUSEHOLDERQR_MKL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/QR/FullPivHouseholderQR.h b/vendor/eigen-3.1.91/Eigen/src/QR/FullPivHouseholderQR.h
deleted file mode 100644
index 613c29e..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/QR/FullPivHouseholderQR.h
+++ /dev/null
@@ -1,598 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_FULLPIVOTINGHOUSEHOLDERQR_H
-#define EIGEN_FULLPIVOTINGHOUSEHOLDERQR_H
-
-namespace Eigen { 
-
-namespace internal {
-
-template<typename MatrixType> struct FullPivHouseholderQRMatrixQReturnType;
-
-template<typename MatrixType>
-struct traits<FullPivHouseholderQRMatrixQReturnType<MatrixType> >
-{
-  typedef typename MatrixType::PlainObject ReturnType;
-};
-
-}
-
-/** \ingroup QR_Module
-  *
-  * \class FullPivHouseholderQR
-  *
-  * \brief Householder rank-revealing QR decomposition of a matrix with full pivoting
-  *
-  * \param MatrixType the type of the matrix of which we are computing the QR decomposition
-  *
-  * This class performs a rank-revealing QR decomposition of a matrix \b A into matrices \b P, \b Q and \b R
-  * such that 
-  * \f[
-  *  \mathbf{A} \, \mathbf{P} = \mathbf{Q} \, \mathbf{R}
-  * \f]
-  * by using Householder transformations. Here, \b P is a permutation matrix, \b Q a unitary matrix and \b R an 
-  * upper triangular matrix.
-  *
-  * This decomposition performs a very prudent full pivoting in order to be rank-revealing and achieve optimal
-  * numerical stability. The trade-off is that it is slower than HouseholderQR and ColPivHouseholderQR.
-  *
-  * \sa MatrixBase::fullPivHouseholderQr()
-  */
-template<typename _MatrixType> class FullPivHouseholderQR
-{
-  public:
-
-    typedef _MatrixType MatrixType;
-    enum {
-      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-      Options = MatrixType::Options,
-      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
-    };
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::RealScalar RealScalar;
-    typedef typename MatrixType::Index Index;
-    typedef internal::FullPivHouseholderQRMatrixQReturnType<MatrixType> MatrixQReturnType;
-    typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
-    typedef Matrix<Index, 1, ColsAtCompileTime, RowMajor, 1, MaxColsAtCompileTime> IntRowVectorType;
-    typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationType;
-    typedef typename internal::plain_col_type<MatrixType, Index>::type IntColVectorType;
-    typedef typename internal::plain_row_type<MatrixType>::type RowVectorType;
-    typedef typename internal::plain_col_type<MatrixType>::type ColVectorType;
-
-    /** \brief Default Constructor.
-      *
-      * The default constructor is useful in cases in which the user intends to
-      * perform decompositions via FullPivHouseholderQR::compute(const MatrixType&).
-      */
-    FullPivHouseholderQR()
-      : m_qr(),
-        m_hCoeffs(),
-        m_rows_transpositions(),
-        m_cols_transpositions(),
-        m_cols_permutation(),
-        m_temp(),
-        m_isInitialized(false),
-        m_usePrescribedThreshold(false) {}
-
-    /** \brief Default Constructor with memory preallocation
-      *
-      * Like the default constructor but with preallocation of the internal data
-      * according to the specified problem \a size.
-      * \sa FullPivHouseholderQR()
-      */
-    FullPivHouseholderQR(Index rows, Index cols)
-      : m_qr(rows, cols),
-        m_hCoeffs((std::min)(rows,cols)),
-        m_rows_transpositions(rows),
-        m_cols_transpositions(cols),
-        m_cols_permutation(cols),
-        m_temp((std::min)(rows,cols)),
-        m_isInitialized(false),
-        m_usePrescribedThreshold(false) {}
-
-    FullPivHouseholderQR(const MatrixType& matrix)
-      : m_qr(matrix.rows(), matrix.cols()),
-        m_hCoeffs((std::min)(matrix.rows(), matrix.cols())),
-        m_rows_transpositions(matrix.rows()),
-        m_cols_transpositions(matrix.cols()),
-        m_cols_permutation(matrix.cols()),
-        m_temp((std::min)(matrix.rows(), matrix.cols())),
-        m_isInitialized(false),
-        m_usePrescribedThreshold(false)
-    {
-      compute(matrix);
-    }
-
-    /** This method finds a solution x to the equation Ax=b, where A is the matrix of which
-      * *this is the QR decomposition, if any exists.
-      *
-      * \param b the right-hand-side of the equation to solve.
-      *
-      * \returns a solution.
-      *
-      * \note The case where b is a matrix is not yet implemented. Also, this
-      *       code is space inefficient.
-      *
-      * \note_about_checking_solutions
-      *
-      * \note_about_arbitrary_choice_of_solution
-      *
-      * Example: \include FullPivHouseholderQR_solve.cpp
-      * Output: \verbinclude FullPivHouseholderQR_solve.out
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<FullPivHouseholderQR, Rhs>
-    solve(const MatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
-      return internal::solve_retval<FullPivHouseholderQR, Rhs>(*this, b.derived());
-    }
-
-    /** \returns Expression object representing the matrix Q
-      */
-    MatrixQReturnType matrixQ(void) const;
-
-    /** \returns a reference to the matrix where the Householder QR decomposition is stored
-      */
-    const MatrixType& matrixQR() const
-    {
-      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
-      return m_qr;
-    }
-
-    FullPivHouseholderQR& compute(const MatrixType& matrix);
-
-    const PermutationType& colsPermutation() const
-    {
-      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
-      return m_cols_permutation;
-    }
-
-    const IntColVectorType& rowsTranspositions() const
-    {
-      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
-      return m_rows_transpositions;
-    }
-
-    /** \returns the absolute value of the determinant of the matrix of which
-      * *this is the QR decomposition. It has only linear complexity
-      * (that is, O(n) where n is the dimension of the square matrix)
-      * as the QR decomposition has already been computed.
-      *
-      * \note This is only for square matrices.
-      *
-      * \warning a determinant can be very big or small, so for matrices
-      * of large enough dimension, there is a risk of overflow/underflow.
-      * One way to work around that is to use logAbsDeterminant() instead.
-      *
-      * \sa logAbsDeterminant(), MatrixBase::determinant()
-      */
-    typename MatrixType::RealScalar absDeterminant() const;
-
-    /** \returns the natural log of the absolute value of the determinant of the matrix of which
-      * *this is the QR decomposition. It has only linear complexity
-      * (that is, O(n) where n is the dimension of the square matrix)
-      * as the QR decomposition has already been computed.
-      *
-      * \note This is only for square matrices.
-      *
-      * \note This method is useful to work around the risk of overflow/underflow that's inherent
-      * to determinant computation.
-      *
-      * \sa absDeterminant(), MatrixBase::determinant()
-      */
-    typename MatrixType::RealScalar logAbsDeterminant() const;
-
-    /** \returns the rank of the matrix of which *this is the QR decomposition.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      */
-    inline Index rank() const
-    {
-      using std::abs;
-      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
-      RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold();
-      Index result = 0;
-      for(Index i = 0; i < m_nonzero_pivots; ++i)
-        result += (abs(m_qr.coeff(i,i)) > premultiplied_threshold);
-      return result;
-    }
-
-    /** \returns the dimension of the kernel of the matrix of which *this is the QR decomposition.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      */
-    inline Index dimensionOfKernel() const
-    {
-      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
-      return cols() - rank();
-    }
-
-    /** \returns true if the matrix of which *this is the QR decomposition represents an injective
-      *          linear map, i.e. has trivial kernel; false otherwise.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      */
-    inline bool isInjective() const
-    {
-      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
-      return rank() == cols();
-    }
-
-    /** \returns true if the matrix of which *this is the QR decomposition represents a surjective
-      *          linear map; false otherwise.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      */
-    inline bool isSurjective() const
-    {
-      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
-      return rank() == rows();
-    }
-
-    /** \returns true if the matrix of which *this is the QR decomposition is invertible.
-      *
-      * \note This method has to determine which pivots should be considered nonzero.
-      *       For that, it uses the threshold value that you can control by calling
-      *       setThreshold(const RealScalar&).
-      */
-    inline bool isInvertible() const
-    {
-      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
-      return isInjective() && isSurjective();
-    }
-
-    /** \returns the inverse of the matrix of which *this is the QR decomposition.
-      *
-      * \note If this matrix is not invertible, the returned matrix has undefined coefficients.
-      *       Use isInvertible() to first determine whether this matrix is invertible.
-      */    inline const
-    internal::solve_retval<FullPivHouseholderQR, typename MatrixType::IdentityReturnType>
-    inverse() const
-    {
-      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
-      return internal::solve_retval<FullPivHouseholderQR,typename MatrixType::IdentityReturnType>
-               (*this, MatrixType::Identity(m_qr.rows(), m_qr.cols()));
-    }
-
-    inline Index rows() const { return m_qr.rows(); }
-    inline Index cols() const { return m_qr.cols(); }
-    const HCoeffsType& hCoeffs() const { return m_hCoeffs; }
-
-    /** Allows to prescribe a threshold to be used by certain methods, such as rank(),
-      * who need to determine when pivots are to be considered nonzero. This is not used for the
-      * QR decomposition itself.
-      *
-      * When it needs to get the threshold value, Eigen calls threshold(). By default, this
-      * uses a formula to automatically determine a reasonable threshold.
-      * Once you have called the present method setThreshold(const RealScalar&),
-      * your value is used instead.
-      *
-      * \param threshold The new value to use as the threshold.
-      *
-      * A pivot will be considered nonzero if its absolute value is strictly greater than
-      *  \f$ \vert pivot \vert \leqslant threshold \times \vert maxpivot \vert \f$
-      * where maxpivot is the biggest pivot.
-      *
-      * If you want to come back to the default behavior, call setThreshold(Default_t)
-      */
-    FullPivHouseholderQR& setThreshold(const RealScalar& threshold)
-    {
-      m_usePrescribedThreshold = true;
-      m_prescribedThreshold = threshold;
-      return *this;
-    }
-
-    /** Allows to come back to the default behavior, letting Eigen use its default formula for
-      * determining the threshold.
-      *
-      * You should pass the special object Eigen::Default as parameter here.
-      * \code qr.setThreshold(Eigen::Default); \endcode
-      *
-      * See the documentation of setThreshold(const RealScalar&).
-      */
-    FullPivHouseholderQR& setThreshold(Default_t)
-    {
-      m_usePrescribedThreshold = false;
-      return *this;
-    }
-
-    /** Returns the threshold that will be used by certain methods such as rank().
-      *
-      * See the documentation of setThreshold(const RealScalar&).
-      */
-    RealScalar threshold() const
-    {
-      eigen_assert(m_isInitialized || m_usePrescribedThreshold);
-      return m_usePrescribedThreshold ? m_prescribedThreshold
-      // this formula comes from experimenting (see "LU precision tuning" thread on the list)
-      // and turns out to be identical to Higham's formula used already in LDLt.
-                                      : NumTraits<Scalar>::epsilon() * m_qr.diagonalSize();
-    }
-
-    /** \returns the number of nonzero pivots in the QR decomposition.
-      * Here nonzero is meant in the exact sense, not in a fuzzy sense.
-      * So that notion isn't really intrinsically interesting, but it is
-      * still useful when implementing algorithms.
-      *
-      * \sa rank()
-      */
-    inline Index nonzeroPivots() const
-    {
-      eigen_assert(m_isInitialized && "LU is not initialized.");
-      return m_nonzero_pivots;
-    }
-
-    /** \returns the absolute value of the biggest pivot, i.e. the biggest
-      *          diagonal coefficient of U.
-      */
-    RealScalar maxPivot() const { return m_maxpivot; }
-
-  protected:
-    MatrixType m_qr;
-    HCoeffsType m_hCoeffs;
-    IntColVectorType m_rows_transpositions;
-    IntRowVectorType m_cols_transpositions;
-    PermutationType m_cols_permutation;
-    RowVectorType m_temp;
-    bool m_isInitialized, m_usePrescribedThreshold;
-    RealScalar m_prescribedThreshold, m_maxpivot;
-    Index m_nonzero_pivots;
-    RealScalar m_precision;
-    Index m_det_pq;
-};
-
-template<typename MatrixType>
-typename MatrixType::RealScalar FullPivHouseholderQR<MatrixType>::absDeterminant() const
-{
-  using std::abs;
-  eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
-  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
-  return abs(m_qr.diagonal().prod());
-}
-
-template<typename MatrixType>
-typename MatrixType::RealScalar FullPivHouseholderQR<MatrixType>::logAbsDeterminant() const
-{
-  eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
-  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
-  return m_qr.diagonal().cwiseAbs().array().log().sum();
-}
-
-template<typename MatrixType>
-FullPivHouseholderQR<MatrixType>& FullPivHouseholderQR<MatrixType>::compute(const MatrixType& matrix)
-{
-  using std::abs;
-  Index rows = matrix.rows();
-  Index cols = matrix.cols();
-  Index size = (std::min)(rows,cols);
-
-  m_qr = matrix;
-  m_hCoeffs.resize(size);
-
-  m_temp.resize(cols);
-
-  m_precision = NumTraits<Scalar>::epsilon() * size;
-
-  m_rows_transpositions.resize(matrix.rows());
-  m_cols_transpositions.resize(matrix.cols());
-  Index number_of_transpositions = 0;
-
-  RealScalar biggest(0);
-
-  m_nonzero_pivots = size; // the generic case is that in which all pivots are nonzero (invertible case)
-  m_maxpivot = RealScalar(0);
-
-  for (Index k = 0; k < size; ++k)
-  {
-    Index row_of_biggest_in_corner, col_of_biggest_in_corner;
-    RealScalar biggest_in_corner;
-
-    biggest_in_corner = m_qr.bottomRightCorner(rows-k, cols-k)
-                            .cwiseAbs()
-                            .maxCoeff(&row_of_biggest_in_corner, &col_of_biggest_in_corner);
-    row_of_biggest_in_corner += k;
-    col_of_biggest_in_corner += k;
-    if(k==0) biggest = biggest_in_corner;
-
-    // if the corner is negligible, then we have less than full rank, and we can finish early
-    if(internal::isMuchSmallerThan(biggest_in_corner, biggest, m_precision))
-    {
-      m_nonzero_pivots = k;
-      for(Index i = k; i < size; i++)
-      {
-        m_rows_transpositions.coeffRef(i) = i;
-        m_cols_transpositions.coeffRef(i) = i;
-        m_hCoeffs.coeffRef(i) = Scalar(0);
-      }
-      break;
-    }
-
-    m_rows_transpositions.coeffRef(k) = row_of_biggest_in_corner;
-    m_cols_transpositions.coeffRef(k) = col_of_biggest_in_corner;
-    if(k != row_of_biggest_in_corner) {
-      m_qr.row(k).tail(cols-k).swap(m_qr.row(row_of_biggest_in_corner).tail(cols-k));
-      ++number_of_transpositions;
-    }
-    if(k != col_of_biggest_in_corner) {
-      m_qr.col(k).swap(m_qr.col(col_of_biggest_in_corner));
-      ++number_of_transpositions;
-    }
-
-    RealScalar beta;
-    m_qr.col(k).tail(rows-k).makeHouseholderInPlace(m_hCoeffs.coeffRef(k), beta);
-    m_qr.coeffRef(k,k) = beta;
-
-    // remember the maximum absolute value of diagonal coefficients
-    if(abs(beta) > m_maxpivot) m_maxpivot = abs(beta);
-
-    m_qr.bottomRightCorner(rows-k, cols-k-1)
-        .applyHouseholderOnTheLeft(m_qr.col(k).tail(rows-k-1), m_hCoeffs.coeffRef(k), &m_temp.coeffRef(k+1));
-  }
-
-  m_cols_permutation.setIdentity(cols);
-  for(Index k = 0; k < size; ++k)
-    m_cols_permutation.applyTranspositionOnTheRight(k, m_cols_transpositions.coeff(k));
-
-  m_det_pq = (number_of_transpositions%2) ? -1 : 1;
-  m_isInitialized = true;
-
-  return *this;
-}
-
-namespace internal {
-
-template<typename _MatrixType, typename Rhs>
-struct solve_retval<FullPivHouseholderQR<_MatrixType>, Rhs>
-  : solve_retval_base<FullPivHouseholderQR<_MatrixType>, Rhs>
-{
-  EIGEN_MAKE_SOLVE_HELPERS(FullPivHouseholderQR<_MatrixType>,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    const Index rows = dec().rows(), cols = dec().cols();
-    eigen_assert(rhs().rows() == rows);
-
-    // FIXME introduce nonzeroPivots() and use it here. and more generally,
-    // make the same improvements in this dec as in FullPivLU.
-    if(dec().rank()==0)
-    {
-      dst.setZero();
-      return;
-    }
-
-    typename Rhs::PlainObject c(rhs());
-
-    Matrix<Scalar,1,Rhs::ColsAtCompileTime> temp(rhs().cols());
-    for (Index k = 0; k < dec().rank(); ++k)
-    {
-      Index remainingSize = rows-k;
-      c.row(k).swap(c.row(dec().rowsTranspositions().coeff(k)));
-      c.bottomRightCorner(remainingSize, rhs().cols())
-       .applyHouseholderOnTheLeft(dec().matrixQR().col(k).tail(remainingSize-1),
-                                  dec().hCoeffs().coeff(k), &temp.coeffRef(0));
-    }
-
-    if(!dec().isSurjective())
-    {
-      // is c is in the image of R ?
-      RealScalar biggest_in_upper_part_of_c = c.topRows(   dec().rank()     ).cwiseAbs().maxCoeff();
-      RealScalar biggest_in_lower_part_of_c = c.bottomRows(rows-dec().rank()).cwiseAbs().maxCoeff();
-      // FIXME brain dead
-      const RealScalar m_precision = NumTraits<Scalar>::epsilon() * (std::min)(rows,cols);
-      // this internal:: prefix is needed by at least gcc 3.4 and ICC
-      if(!internal::isMuchSmallerThan(biggest_in_lower_part_of_c, biggest_in_upper_part_of_c, m_precision))
-        return;
-    }
-    dec().matrixQR()
-       .topLeftCorner(dec().rank(), dec().rank())
-       .template triangularView<Upper>()
-       .solveInPlace(c.topRows(dec().rank()));
-
-    for(Index i = 0; i < dec().rank(); ++i) dst.row(dec().colsPermutation().indices().coeff(i)) = c.row(i);
-    for(Index i = dec().rank(); i < cols; ++i) dst.row(dec().colsPermutation().indices().coeff(i)).setZero();
-  }
-};
-
-/** \ingroup QR_Module
-  *
-  * \brief Expression type for return value of FullPivHouseholderQR::matrixQ()
-  *
-  * \tparam MatrixType type of underlying dense matrix
-  */
-template<typename MatrixType> struct FullPivHouseholderQRMatrixQReturnType
-  : public ReturnByValue<FullPivHouseholderQRMatrixQReturnType<MatrixType> >
-{
-public:
-  typedef typename MatrixType::Index Index;
-  typedef typename internal::plain_col_type<MatrixType, Index>::type IntColVectorType;
-  typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
-  typedef Matrix<typename MatrixType::Scalar, 1, MatrixType::RowsAtCompileTime, RowMajor, 1,
-                 MatrixType::MaxRowsAtCompileTime> WorkVectorType;
-
-  FullPivHouseholderQRMatrixQReturnType(const MatrixType&       qr,
-                                        const HCoeffsType&      hCoeffs,
-                                        const IntColVectorType& rowsTranspositions)
-    : m_qr(qr),
-      m_hCoeffs(hCoeffs),
-      m_rowsTranspositions(rowsTranspositions)
-      {}
-
-  template <typename ResultType>
-  void evalTo(ResultType& result) const
-  {
-    const Index rows = m_qr.rows();
-    WorkVectorType workspace(rows);
-    evalTo(result, workspace);
-  }
-
-  template <typename ResultType>
-  void evalTo(ResultType& result, WorkVectorType& workspace) const
-  {
-    using internal::conj;
-    // compute the product H'_0 H'_1 ... H'_n-1,
-    // where H_k is the k-th Householder transformation I - h_k v_k v_k'
-    // and v_k is the k-th Householder vector [1,m_qr(k+1,k), m_qr(k+2,k), ...]
-    const Index rows = m_qr.rows();
-    const Index cols = m_qr.cols();
-    const Index size = (std::min)(rows, cols);
-    workspace.resize(rows);
-    result.setIdentity(rows, rows);
-    for (Index k = size-1; k >= 0; k--)
-    {
-      result.block(k, k, rows-k, rows-k)
-            .applyHouseholderOnTheLeft(m_qr.col(k).tail(rows-k-1), conj(m_hCoeffs.coeff(k)), &workspace.coeffRef(k));
-      result.row(k).swap(result.row(m_rowsTranspositions.coeff(k)));
-    }
-  }
-
-    Index rows() const { return m_qr.rows(); }
-    Index cols() const { return m_qr.rows(); }
-
-protected:
-  typename MatrixType::Nested m_qr;
-  typename HCoeffsType::Nested m_hCoeffs;
-  typename IntColVectorType::Nested m_rowsTranspositions;
-};
-
-} // end namespace internal
-
-template<typename MatrixType>
-inline typename FullPivHouseholderQR<MatrixType>::MatrixQReturnType FullPivHouseholderQR<MatrixType>::matrixQ() const
-{
-  eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
-  return MatrixQReturnType(m_qr, m_hCoeffs, m_rows_transpositions);
-}
-
-/** \return the full-pivoting Householder QR decomposition of \c *this.
-  *
-  * \sa class FullPivHouseholderQR
-  */
-template<typename Derived>
-const FullPivHouseholderQR<typename MatrixBase<Derived>::PlainObject>
-MatrixBase<Derived>::fullPivHouseholderQr() const
-{
-  return FullPivHouseholderQR<PlainObject>(eval());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_FULLPIVOTINGHOUSEHOLDERQR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/QR/HouseholderQR.h b/vendor/eigen-3.1.91/Eigen/src/QR/HouseholderQR.h
deleted file mode 100644
index 0314d52..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/QR/HouseholderQR.h
+++ /dev/null
@@ -1,351 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
-// Copyright (C) 2010 Vincent Lejeune
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_QR_H
-#define EIGEN_QR_H
-
-namespace Eigen { 
-
-/** \ingroup QR_Module
-  *
-  *
-  * \class HouseholderQR
-  *
-  * \brief Householder QR decomposition of a matrix
-  *
-  * \param MatrixType the type of the matrix of which we are computing the QR decomposition
-  *
-  * This class performs a QR decomposition of a matrix \b A into matrices \b Q and \b R
-  * such that 
-  * \f[
-  *  \mathbf{A} = \mathbf{Q} \, \mathbf{R}
-  * \f]
-  * by using Householder transformations. Here, \b Q a unitary matrix and \b R an upper triangular matrix.
-  * The result is stored in a compact way compatible with LAPACK.
-  *
-  * Note that no pivoting is performed. This is \b not a rank-revealing decomposition.
-  * If you want that feature, use FullPivHouseholderQR or ColPivHouseholderQR instead.
-  *
-  * This Householder QR decomposition is faster, but less numerically stable and less feature-full than
-  * FullPivHouseholderQR or ColPivHouseholderQR.
-  *
-  * \sa MatrixBase::householderQr()
-  */
-template<typename _MatrixType> class HouseholderQR
-{
-  public:
-
-    typedef _MatrixType MatrixType;
-    enum {
-      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-      Options = MatrixType::Options,
-      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
-    };
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::RealScalar RealScalar;
-    typedef typename MatrixType::Index Index;
-    typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, (MatrixType::Flags&RowMajorBit) ? RowMajor : ColMajor, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixQType;
-    typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
-    typedef typename internal::plain_row_type<MatrixType>::type RowVectorType;
-    typedef typename HouseholderSequence<MatrixType,HCoeffsType>::ConjugateReturnType HouseholderSequenceType;
-
-    /**
-    * \brief Default Constructor.
-    *
-    * The default constructor is useful in cases in which the user intends to
-    * perform decompositions via HouseholderQR::compute(const MatrixType&).
-    */
-    HouseholderQR() : m_qr(), m_hCoeffs(), m_temp(), m_isInitialized(false) {}
-
-    /** \brief Default Constructor with memory preallocation
-      *
-      * Like the default constructor but with preallocation of the internal data
-      * according to the specified problem \a size.
-      * \sa HouseholderQR()
-      */
-    HouseholderQR(Index rows, Index cols)
-      : m_qr(rows, cols),
-        m_hCoeffs((std::min)(rows,cols)),
-        m_temp(cols),
-        m_isInitialized(false) {}
-
-    HouseholderQR(const MatrixType& matrix)
-      : m_qr(matrix.rows(), matrix.cols()),
-        m_hCoeffs((std::min)(matrix.rows(),matrix.cols())),
-        m_temp(matrix.cols()),
-        m_isInitialized(false)
-    {
-      compute(matrix);
-    }
-
-    /** This method finds a solution x to the equation Ax=b, where A is the matrix of which
-      * *this is the QR decomposition, if any exists.
-      *
-      * \param b the right-hand-side of the equation to solve.
-      *
-      * \returns a solution.
-      *
-      * \note The case where b is a matrix is not yet implemented. Also, this
-      *       code is space inefficient.
-      *
-      * \note_about_checking_solutions
-      *
-      * \note_about_arbitrary_choice_of_solution
-      *
-      * Example: \include HouseholderQR_solve.cpp
-      * Output: \verbinclude HouseholderQR_solve.out
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<HouseholderQR, Rhs>
-    solve(const MatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
-      return internal::solve_retval<HouseholderQR, Rhs>(*this, b.derived());
-    }
-
-    /** This method returns an expression of the unitary matrix Q as a sequence of Householder transformations.
-      *
-      * The returned expression can directly be used to perform matrix products. It can also be assigned to a dense Matrix object.
-      * Here is an example showing how to recover the full or thin matrix Q, as well as how to perform matrix products using operator*:
-      *
-      * Example: \include HouseholderQR_householderQ.cpp
-      * Output: \verbinclude HouseholderQR_householderQ.out
-      */
-    HouseholderSequenceType householderQ() const
-    {
-      eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
-      return HouseholderSequenceType(m_qr, m_hCoeffs.conjugate());
-    }
-
-    /** \returns a reference to the matrix where the Householder QR decomposition is stored
-      * in a LAPACK-compatible way.
-      */
-    const MatrixType& matrixQR() const
-    {
-        eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
-        return m_qr;
-    }
-
-    HouseholderQR& compute(const MatrixType& matrix);
-
-    /** \returns the absolute value of the determinant of the matrix of which
-      * *this is the QR decomposition. It has only linear complexity
-      * (that is, O(n) where n is the dimension of the square matrix)
-      * as the QR decomposition has already been computed.
-      *
-      * \note This is only for square matrices.
-      *
-      * \warning a determinant can be very big or small, so for matrices
-      * of large enough dimension, there is a risk of overflow/underflow.
-      * One way to work around that is to use logAbsDeterminant() instead.
-      *
-      * \sa logAbsDeterminant(), MatrixBase::determinant()
-      */
-    typename MatrixType::RealScalar absDeterminant() const;
-
-    /** \returns the natural log of the absolute value of the determinant of the matrix of which
-      * *this is the QR decomposition. It has only linear complexity
-      * (that is, O(n) where n is the dimension of the square matrix)
-      * as the QR decomposition has already been computed.
-      *
-      * \note This is only for square matrices.
-      *
-      * \note This method is useful to work around the risk of overflow/underflow that's inherent
-      * to determinant computation.
-      *
-      * \sa absDeterminant(), MatrixBase::determinant()
-      */
-    typename MatrixType::RealScalar logAbsDeterminant() const;
-
-    inline Index rows() const { return m_qr.rows(); }
-    inline Index cols() const { return m_qr.cols(); }
-    const HCoeffsType& hCoeffs() const { return m_hCoeffs; }
-
-  protected:
-    MatrixType m_qr;
-    HCoeffsType m_hCoeffs;
-    RowVectorType m_temp;
-    bool m_isInitialized;
-};
-
-template<typename MatrixType>
-typename MatrixType::RealScalar HouseholderQR<MatrixType>::absDeterminant() const
-{
-  using std::abs;
-  eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
-  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
-  return abs(m_qr.diagonal().prod());
-}
-
-template<typename MatrixType>
-typename MatrixType::RealScalar HouseholderQR<MatrixType>::logAbsDeterminant() const
-{
-  eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
-  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
-  return m_qr.diagonal().cwiseAbs().array().log().sum();
-}
-
-namespace internal {
-
-/** \internal */
-template<typename MatrixQR, typename HCoeffs>
-void householder_qr_inplace_unblocked(MatrixQR& mat, HCoeffs& hCoeffs, typename MatrixQR::Scalar* tempData = 0)
-{
-  typedef typename MatrixQR::Index Index;
-  typedef typename MatrixQR::Scalar Scalar;
-  typedef typename MatrixQR::RealScalar RealScalar;
-  Index rows = mat.rows();
-  Index cols = mat.cols();
-  Index size = (std::min)(rows,cols);
-
-  eigen_assert(hCoeffs.size() == size);
-
-  typedef Matrix<Scalar,MatrixQR::ColsAtCompileTime,1> TempType;
-  TempType tempVector;
-  if(tempData==0)
-  {
-    tempVector.resize(cols);
-    tempData = tempVector.data();
-  }
-
-  for(Index k = 0; k < size; ++k)
-  {
-    Index remainingRows = rows - k;
-    Index remainingCols = cols - k - 1;
-
-    RealScalar beta;
-    mat.col(k).tail(remainingRows).makeHouseholderInPlace(hCoeffs.coeffRef(k), beta);
-    mat.coeffRef(k,k) = beta;
-
-    // apply H to remaining part of m_qr from the left
-    mat.bottomRightCorner(remainingRows, remainingCols)
-        .applyHouseholderOnTheLeft(mat.col(k).tail(remainingRows-1), hCoeffs.coeffRef(k), tempData+k+1);
-  }
-}
-
-/** \internal */
-template<typename MatrixQR, typename HCoeffs>
-void householder_qr_inplace_blocked(MatrixQR& mat, HCoeffs& hCoeffs,
-                                       typename MatrixQR::Index maxBlockSize=32,
-                                       typename MatrixQR::Scalar* tempData = 0)
-{
-  typedef typename MatrixQR::Index Index;
-  typedef typename MatrixQR::Scalar Scalar;
-  typedef Block<MatrixQR,Dynamic,Dynamic> BlockType;
-
-  Index rows = mat.rows();
-  Index cols = mat.cols();
-  Index size = (std::min)(rows, cols);
-
-  typedef Matrix<Scalar,Dynamic,1,ColMajor,MatrixQR::MaxColsAtCompileTime,1> TempType;
-  TempType tempVector;
-  if(tempData==0)
-  {
-    tempVector.resize(cols);
-    tempData = tempVector.data();
-  }
-
-  Index blockSize = (std::min)(maxBlockSize,size);
-
-  Index k = 0;
-  for (k = 0; k < size; k += blockSize)
-  {
-    Index bs = (std::min)(size-k,blockSize);  // actual size of the block
-    Index tcols = cols - k - bs;            // trailing columns
-    Index brows = rows-k;                   // rows of the block
-
-    // partition the matrix:
-    //        A00 | A01 | A02
-    // mat  = A10 | A11 | A12
-    //        A20 | A21 | A22
-    // and performs the qr dec of [A11^T A12^T]^T
-    // and update [A21^T A22^T]^T using level 3 operations.
-    // Finally, the algorithm continue on A22
-
-    BlockType A11_21 = mat.block(k,k,brows,bs);
-    Block<HCoeffs,Dynamic,1> hCoeffsSegment = hCoeffs.segment(k,bs);
-
-    householder_qr_inplace_unblocked(A11_21, hCoeffsSegment, tempData);
-
-    if(tcols)
-    {
-      BlockType A21_22 = mat.block(k,k+bs,brows,tcols);
-      apply_block_householder_on_the_left(A21_22,A11_21,hCoeffsSegment.adjoint());
-    }
-  }
-}
-
-template<typename _MatrixType, typename Rhs>
-struct solve_retval<HouseholderQR<_MatrixType>, Rhs>
-  : solve_retval_base<HouseholderQR<_MatrixType>, Rhs>
-{
-  EIGEN_MAKE_SOLVE_HELPERS(HouseholderQR<_MatrixType>,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    const Index rows = dec().rows(), cols = dec().cols();
-    const Index rank = (std::min)(rows, cols);
-    eigen_assert(rhs().rows() == rows);
-
-    typename Rhs::PlainObject c(rhs());
-
-    // Note that the matrix Q = H_0^* H_1^*... so its inverse is Q^* = (H_0 H_1 ...)^T
-    c.applyOnTheLeft(householderSequence(
-      dec().matrixQR().leftCols(rank),
-      dec().hCoeffs().head(rank)).transpose()
-    );
-
-    dec().matrixQR()
-       .topLeftCorner(rank, rank)
-       .template triangularView<Upper>()
-       .solveInPlace(c.topRows(rank));
-
-    dst.topRows(rank) = c.topRows(rank);
-    dst.bottomRows(cols-rank).setZero();
-  }
-};
-
-} // end namespace internal
-
-template<typename MatrixType>
-HouseholderQR<MatrixType>& HouseholderQR<MatrixType>::compute(const MatrixType& matrix)
-{
-  Index rows = matrix.rows();
-  Index cols = matrix.cols();
-  Index size = (std::min)(rows,cols);
-
-  m_qr = matrix;
-  m_hCoeffs.resize(size);
-
-  m_temp.resize(cols);
-
-  internal::householder_qr_inplace_blocked(m_qr, m_hCoeffs, 48, m_temp.data());
-
-  m_isInitialized = true;
-  return *this;
-}
-
-/** \return the Householder QR decomposition of \c *this.
-  *
-  * \sa class HouseholderQR
-  */
-template<typename Derived>
-const HouseholderQR<typename MatrixBase<Derived>::PlainObject>
-MatrixBase<Derived>::householderQr() const
-{
-  return HouseholderQR<PlainObject>(eval());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_QR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/QR/HouseholderQR_MKL.h b/vendor/eigen-3.1.91/Eigen/src/QR/HouseholderQR_MKL.h
deleted file mode 100644
index 5313de6..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/QR/HouseholderQR_MKL.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- Copyright (c) 2011, Intel Corporation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
- * Neither the name of Intel Corporation nor the names of its contributors may
-   be used to endorse or promote products derived from this software without
-   specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ********************************************************************************
- *   Content : Eigen bindings to Intel(R) MKL
- *    Householder QR decomposition of a matrix w/o pivoting based on
- *    LAPACKE_?geqrf function.
- ********************************************************************************
-*/
-
-#ifndef EIGEN_QR_MKL_H
-#define EIGEN_QR_MKL_H
-
-#include "Eigen/src/Core/util/MKL_support.h"
-
-namespace Eigen { 
-
-namespace internal {
-
-/** \internal Specialization for the data types supported by MKL */
-
-#define EIGEN_MKL_QR_NOPIV(EIGTYPE, MKLTYPE, MKLPREFIX) \
-template<typename MatrixQR, typename HCoeffs> \
-void householder_qr_inplace_blocked(MatrixQR& mat, HCoeffs& hCoeffs, \
-                                       typename MatrixQR::Index maxBlockSize=32, \
-                                       EIGTYPE* tempData = 0) \
-{ \
-  lapack_int m = mat.rows(); \
-  lapack_int n = mat.cols(); \
-  lapack_int lda = mat.outerStride(); \
-  lapack_int matrix_order = (MatrixQR::IsRowMajor) ? LAPACK_ROW_MAJOR : LAPACK_COL_MAJOR; \
-  LAPACKE_##MKLPREFIX##geqrf( matrix_order, m, n, (MKLTYPE*)mat.data(), lda, (MKLTYPE*)hCoeffs.data()); \
-  hCoeffs.adjointInPlace(); \
-\
-}
-
-EIGEN_MKL_QR_NOPIV(double, double, d)
-EIGEN_MKL_QR_NOPIV(float, float, s)
-EIGEN_MKL_QR_NOPIV(dcomplex, MKL_Complex16, z)
-EIGEN_MKL_QR_NOPIV(scomplex, MKL_Complex8, c)
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_QR_MKL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h b/vendor/eigen-3.1.91/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h
deleted file mode 100644
index 0ffb894..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h
+++ /dev/null
@@ -1,304 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Desire Nuentsa <desire.nuentsa_wakam at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SUITESPARSEQRSUPPORT_H
-#define EIGEN_SUITESPARSEQRSUPPORT_H
-
-namespace Eigen {
-  
-  template<typename MatrixType> class SPQR; 
-  template<typename SPQRType> struct SPQRMatrixQReturnType; 
-  template<typename SPQRType> struct SPQRMatrixQTransposeReturnType; 
-  template <typename SPQRType, typename Derived> struct SPQR_QProduct;
-  namespace internal {
-    template <typename SPQRType> struct traits<SPQRMatrixQReturnType<SPQRType> >
-    {
-      typedef typename SPQRType::MatrixType ReturnType;
-    };
-    template <typename SPQRType> struct traits<SPQRMatrixQTransposeReturnType<SPQRType> >
-    {
-      typedef typename SPQRType::MatrixType ReturnType;
-    };
-    template <typename SPQRType, typename Derived> struct traits<SPQR_QProduct<SPQRType, Derived> >
-    {
-      typedef typename Derived::PlainObject ReturnType;
-    };
-  } // End namespace internal
-  
-/**
- * \ingroup SPQRSupport_Module
- * \class SPQR
- * \brief Sparse QR factorization based on SuiteSparseQR library
- * 
- * This class is used to perform a multithreaded and multifrontal rank-revealing QR decomposition 
- * of sparse matrices. The result is then used to solve linear leasts_square systems.
- * Clearly, a QR factorization is returned such that A*P = Q*R where :
- * 
- * P is the column permutation. Use colsPermutation() to get it.
- * 
- * Q is the orthogonal matrix represented as Householder reflectors. 
- * Use matrixQ() to get an expression and matrixQ().transpose() to get the transpose.
- * You can then apply it to a vector.
- * 
- * R is the sparse triangular factor. Use matrixQR() to get it as SparseMatrix.
- * NOTE : The Index type of R is always UF_long. You can get it with SPQR::Index
- * 
- * \tparam _MatrixType The type of the sparse matrix A, must be a column-major SparseMatrix<>
- * NOTE 
- * 
- */
-template<typename _MatrixType>
-class SPQR
-{
-  public:
-    typedef typename _MatrixType::Scalar Scalar;
-    typedef typename _MatrixType::RealScalar RealScalar;
-    typedef UF_long Index ; 
-    typedef SparseMatrix<Scalar, ColMajor, Index> MatrixType;
-    typedef PermutationMatrix<Dynamic, Dynamic> PermutationType;
-  public:
-    SPQR() 
-    : m_ordering(SPQR_ORDERING_DEFAULT),
-      m_allow_tol(SPQR_DEFAULT_TOL),
-      m_tolerance (NumTraits<Scalar>::epsilon())
-    { 
-      cholmod_l_start(&m_cc);
-    }
-    
-    SPQR(const _MatrixType& matrix) 
-    : m_ordering(SPQR_ORDERING_DEFAULT),
-      m_allow_tol(SPQR_DEFAULT_TOL),
-      m_tolerance (NumTraits<Scalar>::epsilon())
-    {
-      cholmod_l_start(&m_cc);
-      compute(matrix);
-    }
-    
-    ~SPQR()
-    {
-      // Calls SuiteSparseQR_free()
-      cholmod_free_sparse(&m_H, &m_cc); 
-      cholmod_free_dense(&m_HTau, &m_cc);
-      delete[] m_E;
-      delete[] m_HPinv; 
-    }
-    void compute(const _MatrixType& matrix)
-    {
-      MatrixType mat(matrix);
-      cholmod_sparse A; 
-      A = viewAsCholmod(mat);
-      Index col = matrix.cols();
-      m_rank = SuiteSparseQR<Scalar>(m_ordering, m_tolerance, col, &A, 
-                             &m_cR, &m_E, &m_H, &m_HPinv, &m_HTau, &m_cc);
-
-      if (!m_cR)
-      {
-        m_info = NumericalIssue; 
-        m_isInitialized = false;
-        return;
-      }
-      m_info = Success;
-      m_isInitialized = true;
-      m_isRUpToDate = false;
-    }
-    /** 
-     * Get the number of rows of the input matrix and the Q matrix
-     */
-    inline Index rows() const {return m_H->nrow; }
-    
-    /** 
-     * Get the number of columns of the input matrix. 
-     */
-    inline Index cols() const { return m_cR->ncol; }
-   
-      /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
-      *
-      * \sa compute()
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<SPQR, Rhs> solve(const MatrixBase<Rhs>& B) const 
-    {
-      eigen_assert(m_isInitialized && " The QR factorization should be computed first, call compute()");
-      eigen_assert(this->rows()==B.rows()
-                    && "SPQR::solve(): invalid number of rows of the right hand side matrix B");
-          return internal::solve_retval<SPQR, Rhs>(*this, B.derived());
-    }
-    
-    template<typename Rhs, typename Dest>
-    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
-    {
-      eigen_assert(m_isInitialized && " The QR factorization should be computed first, call compute()");
-      eigen_assert(b.cols()==1 && "This method is for vectors only");
-      
-      //Compute Q^T * b
-      Dest y; 
-      y = matrixQ().transpose() * b;
-        // Solves with the triangular matrix R
-      Index rk = this->rank();
-      y.topRows(rk) = this->matrixR().topLeftCorner(rk, rk).template triangularView<Upper>().solve(y.topRows(rk));
-      y.bottomRows(cols()-rk).setZero();
-      // Apply the column permutation 
-      dest.topRows(cols()) = colsPermutation() * y.topRows(cols());
-      
-      m_info = Success;
-    }
-    
-    /** \returns the sparse triangular factor R. It is a sparse matrix
-     */
-    const MatrixType matrixR() const
-    {
-      eigen_assert(m_isInitialized && " The QR factorization should be computed first, call compute()");
-      if(!m_isRUpToDate) {
-        m_R = viewAsEigen<Scalar,ColMajor, typename MatrixType::Index>(*m_cR);
-        m_isRUpToDate = true;
-      }
-      return m_R;
-    }
-    /// Get an expression of the matrix Q
-    SPQRMatrixQReturnType<SPQR> matrixQ() const
-    {
-      return SPQRMatrixQReturnType<SPQR>(*this);
-    }
-    /// Get the permutation that was applied to columns of A
-    PermutationType colsPermutation() const
-    { 
-      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
-      Index n = m_cR->ncol;
-      PermutationType colsPerm(n);
-      for(Index j = 0; j <n; j++) colsPerm.indices()(j) = m_E[j];
-      return colsPerm; 
-      
-    }
-    /**
-     * Gets the rank of the matrix. 
-     * It should be equal to matrixQR().cols if the matrix is full-rank
-     */
-    Index rank() const
-    {
-      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
-      return m_cc.SPQR_istat[4];
-    }
-    /// Set the fill-reducing ordering method to be used
-    void setSPQROrdering(int ord) { m_ordering = ord;}
-    /// Set the tolerance tol to treat columns with 2-norm < =tol as zero
-    void setPivotThreshold(const RealScalar& tol) { m_tolerance = tol; }
-    
-    /** \returns a pointer to the SPQR workspace */
-    cholmod_common *cholmodCommon() const { return &m_cc; }
-    
-    
-    /** \brief Reports whether previous computation was successful.
-      *
-      * \returns \c Success if computation was succesful,
-      *          \c NumericalIssue if the sparse QR can not be computed
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
-      return m_info;
-    }
-  protected:
-    bool m_isInitialized;
-    bool m_analysisIsOk;
-    bool m_factorizationIsOk;
-    mutable bool m_isRUpToDate;
-    mutable ComputationInfo m_info;
-    int m_ordering; // Ordering method to use, see SPQR's manual
-    int m_allow_tol; // Allow to use some tolerance during numerical factorization.
-    RealScalar m_tolerance; // treat columns with 2-norm below this tolerance as zero
-    mutable cholmod_sparse *m_cR; // The sparse R factor in cholmod format
-    mutable MatrixType m_R; // The sparse matrix R in Eigen format
-    mutable Index *m_E; // The permutation applied to columns
-    mutable cholmod_sparse *m_H;  //The householder vectors
-    mutable Index *m_HPinv; // The row permutation of H
-    mutable cholmod_dense *m_HTau; // The Householder coefficients
-    mutable Index m_rank; // The rank of the matrix
-    mutable cholmod_common m_cc; // Workspace and parameters
-    template<typename ,typename > friend struct SPQR_QProduct;
-};
-
-template <typename SPQRType, typename Derived>
-struct SPQR_QProduct : ReturnByValue<SPQR_QProduct<SPQRType,Derived> >
-{
-  typedef typename SPQRType::Scalar Scalar;
-  typedef typename SPQRType::Index Index;
-  //Define the constructor to get reference to argument types
-  SPQR_QProduct(const SPQRType& spqr, const Derived& other, bool transpose) : m_spqr(spqr),m_other(other),m_transpose(transpose) {}
-  
-  inline Index rows() const { return m_transpose ? m_spqr.rows() : m_spqr.cols(); }
-  inline Index cols() const { return m_other.cols(); }
-  // Assign to a vector
-  template<typename ResType>
-  void evalTo(ResType& res) const
-  {
-    cholmod_dense y_cd;
-    cholmod_dense *x_cd; 
-    int method = m_transpose ? SPQR_QTX : SPQR_QX; 
-    cholmod_common *cc = m_spqr.cholmodCommon();
-    y_cd = viewAsCholmod(m_other.const_cast_derived());
-    x_cd = SuiteSparseQR_qmult<Scalar>(method, m_spqr.m_H, m_spqr.m_HTau, m_spqr.m_HPinv, &y_cd, cc);
-    res = Matrix<Scalar,ResType::RowsAtCompileTime,ResType::ColsAtCompileTime>::Map(reinterpret_cast<Scalar*>(x_cd->x), x_cd->nrow, x_cd->ncol);
-    cholmod_free_dense(&x_cd, cc); 
-  }
-  const SPQRType& m_spqr; 
-  const Derived& m_other; 
-  bool m_transpose; 
-  
-};
-template<typename SPQRType>
-struct SPQRMatrixQReturnType{
-  
-  SPQRMatrixQReturnType(const SPQRType& spqr) : m_spqr(spqr) {}
-  template<typename Derived>
-  SPQR_QProduct<SPQRType, Derived> operator*(const MatrixBase<Derived>& other)
-  {
-    return SPQR_QProduct<SPQRType,Derived>(m_spqr,other.derived(),false);
-  }
-  SPQRMatrixQTransposeReturnType<SPQRType> adjoint() const
-  {
-    return SPQRMatrixQTransposeReturnType<SPQRType>(m_spqr);
-  }
-  // To use for operations with the transpose of Q
-  SPQRMatrixQTransposeReturnType<SPQRType> transpose() const
-  {
-    return SPQRMatrixQTransposeReturnType<SPQRType>(m_spqr);
-  }
-  const SPQRType& m_spqr;
-};
-
-template<typename SPQRType>
-struct SPQRMatrixQTransposeReturnType{
-  SPQRMatrixQTransposeReturnType(const SPQRType& spqr) : m_spqr(spqr) {}
-  template<typename Derived>
-  SPQR_QProduct<SPQRType,Derived> operator*(const MatrixBase<Derived>& other)
-  {
-    return SPQR_QProduct<SPQRType,Derived>(m_spqr,other.derived(), true);
-  }
-  const SPQRType& m_spqr;
-};
-
-namespace internal {
-  
-template<typename _MatrixType, typename Rhs>
-struct solve_retval<SPQR<_MatrixType>, Rhs>
-  : solve_retval_base<SPQR<_MatrixType>, Rhs>
-{
-  typedef SPQR<_MatrixType> Dec;
-  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    dec()._solve(rhs(),dst);
-  }
-};
-
-} // end namespace internal
-
-}// End namespace Eigen
-#endif
\ No newline at end of file
diff --git a/vendor/eigen-3.1.91/Eigen/src/SVD/JacobiSVD.h b/vendor/eigen-3.1.91/Eigen/src/SVD/JacobiSVD.h
deleted file mode 100644
index 495d3fa..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SVD/JacobiSVD.h
+++ /dev/null
@@ -1,884 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_JACOBISVD_H
-#define EIGEN_JACOBISVD_H
-
-namespace Eigen { 
-
-namespace internal {
-// forward declaration (needed by ICC)
-// the empty body is required by MSVC
-template<typename MatrixType, int QRPreconditioner,
-         bool IsComplex = NumTraits<typename MatrixType::Scalar>::IsComplex>
-struct svd_precondition_2x2_block_to_be_real {};
-
-/*** QR preconditioners (R-SVD)
- ***
- *** Their role is to reduce the problem of computing the SVD to the case of a square matrix.
- *** This approach, known as R-SVD, is an optimization for rectangular-enough matrices, and is a requirement for
- *** JacobiSVD which by itself is only able to work on square matrices.
- ***/
-
-enum { PreconditionIfMoreColsThanRows, PreconditionIfMoreRowsThanCols };
-
-template<typename MatrixType, int QRPreconditioner, int Case>
-struct qr_preconditioner_should_do_anything
-{
-  enum { a = MatrixType::RowsAtCompileTime != Dynamic &&
-             MatrixType::ColsAtCompileTime != Dynamic &&
-             MatrixType::ColsAtCompileTime <= MatrixType::RowsAtCompileTime,
-         b = MatrixType::RowsAtCompileTime != Dynamic &&
-             MatrixType::ColsAtCompileTime != Dynamic &&
-             MatrixType::RowsAtCompileTime <= MatrixType::ColsAtCompileTime,
-         ret = !( (QRPreconditioner == NoQRPreconditioner) ||
-                  (Case == PreconditionIfMoreColsThanRows && bool(a)) ||
-                  (Case == PreconditionIfMoreRowsThanCols && bool(b)) )
-  };
-};
-
-template<typename MatrixType, int QRPreconditioner, int Case,
-         bool DoAnything = qr_preconditioner_should_do_anything<MatrixType, QRPreconditioner, Case>::ret
-> struct qr_preconditioner_impl {};
-
-template<typename MatrixType, int QRPreconditioner, int Case>
-class qr_preconditioner_impl<MatrixType, QRPreconditioner, Case, false>
-{
-public:
-  typedef typename MatrixType::Index Index;
-  void allocate(const JacobiSVD<MatrixType, QRPreconditioner>&) {}
-  bool run(JacobiSVD<MatrixType, QRPreconditioner>&, const MatrixType&)
-  {
-    return false;
-  }
-};
-
-/*** preconditioner using FullPivHouseholderQR ***/
-
-template<typename MatrixType>
-class qr_preconditioner_impl<MatrixType, FullPivHouseholderQRPreconditioner, PreconditionIfMoreRowsThanCols, true>
-{
-public:
-  typedef typename MatrixType::Index Index;
-  typedef typename MatrixType::Scalar Scalar;
-  enum
-  {
-    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime
-  };
-  typedef Matrix<Scalar, 1, RowsAtCompileTime, RowMajor, 1, MaxRowsAtCompileTime> WorkspaceType;
-
-  void allocate(const JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd)
-  {
-    if (svd.rows() != m_qr.rows() || svd.cols() != m_qr.cols())
-    {
-      m_qr.~QRType();
-      ::new (&m_qr) QRType(svd.rows(), svd.cols());
-    }
-    if (svd.m_computeFullU) m_workspace.resize(svd.rows());
-  }
-
-  bool run(JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
-  {
-    if(matrix.rows() > matrix.cols())
-    {
-      m_qr.compute(matrix);
-      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.cols(),matrix.cols()).template triangularView<Upper>();
-      if(svd.m_computeFullU) m_qr.matrixQ().evalTo(svd.m_matrixU, m_workspace);
-      if(svd.computeV()) svd.m_matrixV = m_qr.colsPermutation();
-      return true;
-    }
-    return false;
-  }
-private:
-  typedef FullPivHouseholderQR<MatrixType> QRType;
-  QRType m_qr;
-  WorkspaceType m_workspace;
-};
-
-template<typename MatrixType>
-class qr_preconditioner_impl<MatrixType, FullPivHouseholderQRPreconditioner, PreconditionIfMoreColsThanRows, true>
-{
-public:
-  typedef typename MatrixType::Index Index;
-  typedef typename MatrixType::Scalar Scalar;
-  enum
-  {
-    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
-    Options = MatrixType::Options
-  };
-  typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, Options, MaxColsAtCompileTime, MaxRowsAtCompileTime>
-          TransposeTypeWithSameStorageOrder;
-
-  void allocate(const JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd)
-  {
-    if (svd.cols() != m_qr.rows() || svd.rows() != m_qr.cols())
-    {
-      m_qr.~QRType();
-      ::new (&m_qr) QRType(svd.cols(), svd.rows());
-    }
-    m_adjoint.resize(svd.cols(), svd.rows());
-    if (svd.m_computeFullV) m_workspace.resize(svd.cols());
-  }
-
-  bool run(JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
-  {
-    if(matrix.cols() > matrix.rows())
-    {
-      m_adjoint = matrix.adjoint();
-      m_qr.compute(m_adjoint);
-      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.rows(),matrix.rows()).template triangularView<Upper>().adjoint();
-      if(svd.m_computeFullV) m_qr.matrixQ().evalTo(svd.m_matrixV, m_workspace);
-      if(svd.computeU()) svd.m_matrixU = m_qr.colsPermutation();
-      return true;
-    }
-    else return false;
-  }
-private:
-  typedef FullPivHouseholderQR<TransposeTypeWithSameStorageOrder> QRType;
-  QRType m_qr;
-  TransposeTypeWithSameStorageOrder m_adjoint;
-  typename internal::plain_row_type<MatrixType>::type m_workspace;
-};
-
-/*** preconditioner using ColPivHouseholderQR ***/
-
-template<typename MatrixType>
-class qr_preconditioner_impl<MatrixType, ColPivHouseholderQRPreconditioner, PreconditionIfMoreRowsThanCols, true>
-{
-public:
-  typedef typename MatrixType::Index Index;
-
-  void allocate(const JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd)
-  {
-    if (svd.rows() != m_qr.rows() || svd.cols() != m_qr.cols())
-    {
-      m_qr.~QRType();
-      ::new (&m_qr) QRType(svd.rows(), svd.cols());
-    }
-    if (svd.m_computeFullU) m_workspace.resize(svd.rows());
-    else if (svd.m_computeThinU) m_workspace.resize(svd.cols());
-  }
-
-  bool run(JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
-  {
-    if(matrix.rows() > matrix.cols())
-    {
-      m_qr.compute(matrix);
-      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.cols(),matrix.cols()).template triangularView<Upper>();
-      if(svd.m_computeFullU) m_qr.householderQ().evalTo(svd.m_matrixU, m_workspace);
-      else if(svd.m_computeThinU)
-      {
-        svd.m_matrixU.setIdentity(matrix.rows(), matrix.cols());
-        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixU, m_workspace);
-      }
-      if(svd.computeV()) svd.m_matrixV = m_qr.colsPermutation();
-      return true;
-    }
-    return false;
-  }
-
-private:
-  typedef ColPivHouseholderQR<MatrixType> QRType;
-  QRType m_qr;
-  typename internal::plain_col_type<MatrixType>::type m_workspace;
-};
-
-template<typename MatrixType>
-class qr_preconditioner_impl<MatrixType, ColPivHouseholderQRPreconditioner, PreconditionIfMoreColsThanRows, true>
-{
-public:
-  typedef typename MatrixType::Index Index;
-  typedef typename MatrixType::Scalar Scalar;
-  enum
-  {
-    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
-    Options = MatrixType::Options
-  };
-
-  typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, Options, MaxColsAtCompileTime, MaxRowsAtCompileTime>
-          TransposeTypeWithSameStorageOrder;
-
-  void allocate(const JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd)
-  {
-    if (svd.cols() != m_qr.rows() || svd.rows() != m_qr.cols())
-    {
-      m_qr.~QRType();
-      ::new (&m_qr) QRType(svd.cols(), svd.rows());
-    }
-    if (svd.m_computeFullV) m_workspace.resize(svd.cols());
-    else if (svd.m_computeThinV) m_workspace.resize(svd.rows());
-    m_adjoint.resize(svd.cols(), svd.rows());
-  }
-
-  bool run(JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
-  {
-    if(matrix.cols() > matrix.rows())
-    {
-      m_adjoint = matrix.adjoint();
-      m_qr.compute(m_adjoint);
-
-      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.rows(),matrix.rows()).template triangularView<Upper>().adjoint();
-      if(svd.m_computeFullV) m_qr.householderQ().evalTo(svd.m_matrixV, m_workspace);
-      else if(svd.m_computeThinV)
-      {
-        svd.m_matrixV.setIdentity(matrix.cols(), matrix.rows());
-        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixV, m_workspace);
-      }
-      if(svd.computeU()) svd.m_matrixU = m_qr.colsPermutation();
-      return true;
-    }
-    else return false;
-  }
-
-private:
-  typedef ColPivHouseholderQR<TransposeTypeWithSameStorageOrder> QRType;
-  QRType m_qr;
-  TransposeTypeWithSameStorageOrder m_adjoint;
-  typename internal::plain_row_type<MatrixType>::type m_workspace;
-};
-
-/*** preconditioner using HouseholderQR ***/
-
-template<typename MatrixType>
-class qr_preconditioner_impl<MatrixType, HouseholderQRPreconditioner, PreconditionIfMoreRowsThanCols, true>
-{
-public:
-  typedef typename MatrixType::Index Index;
-
-  void allocate(const JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd)
-  {
-    if (svd.rows() != m_qr.rows() || svd.cols() != m_qr.cols())
-    {
-      m_qr.~QRType();
-      ::new (&m_qr) QRType(svd.rows(), svd.cols());
-    }
-    if (svd.m_computeFullU) m_workspace.resize(svd.rows());
-    else if (svd.m_computeThinU) m_workspace.resize(svd.cols());
-  }
-
-  bool run(JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd, const MatrixType& matrix)
-  {
-    if(matrix.rows() > matrix.cols())
-    {
-      m_qr.compute(matrix);
-      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.cols(),matrix.cols()).template triangularView<Upper>();
-      if(svd.m_computeFullU) m_qr.householderQ().evalTo(svd.m_matrixU, m_workspace);
-      else if(svd.m_computeThinU)
-      {
-        svd.m_matrixU.setIdentity(matrix.rows(), matrix.cols());
-        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixU, m_workspace);
-      }
-      if(svd.computeV()) svd.m_matrixV.setIdentity(matrix.cols(), matrix.cols());
-      return true;
-    }
-    return false;
-  }
-private:
-  typedef HouseholderQR<MatrixType> QRType;
-  QRType m_qr;
-  typename internal::plain_col_type<MatrixType>::type m_workspace;
-};
-
-template<typename MatrixType>
-class qr_preconditioner_impl<MatrixType, HouseholderQRPreconditioner, PreconditionIfMoreColsThanRows, true>
-{
-public:
-  typedef typename MatrixType::Index Index;
-  typedef typename MatrixType::Scalar Scalar;
-  enum
-  {
-    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
-    Options = MatrixType::Options
-  };
-
-  typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, Options, MaxColsAtCompileTime, MaxRowsAtCompileTime>
-          TransposeTypeWithSameStorageOrder;
-
-  void allocate(const JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd)
-  {
-    if (svd.cols() != m_qr.rows() || svd.rows() != m_qr.cols())
-    {
-      m_qr.~QRType();
-      ::new (&m_qr) QRType(svd.cols(), svd.rows());
-    }
-    if (svd.m_computeFullV) m_workspace.resize(svd.cols());
-    else if (svd.m_computeThinV) m_workspace.resize(svd.rows());
-    m_adjoint.resize(svd.cols(), svd.rows());
-  }
-
-  bool run(JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd, const MatrixType& matrix)
-  {
-    if(matrix.cols() > matrix.rows())
-    {
-      m_adjoint = matrix.adjoint();
-      m_qr.compute(m_adjoint);
-
-      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.rows(),matrix.rows()).template triangularView<Upper>().adjoint();
-      if(svd.m_computeFullV) m_qr.householderQ().evalTo(svd.m_matrixV, m_workspace);
-      else if(svd.m_computeThinV)
-      {
-        svd.m_matrixV.setIdentity(matrix.cols(), matrix.rows());
-        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixV, m_workspace);
-      }
-      if(svd.computeU()) svd.m_matrixU.setIdentity(matrix.rows(), matrix.rows());
-      return true;
-    }
-    else return false;
-  }
-
-private:
-  typedef HouseholderQR<TransposeTypeWithSameStorageOrder> QRType;
-  QRType m_qr;
-  TransposeTypeWithSameStorageOrder m_adjoint;
-  typename internal::plain_row_type<MatrixType>::type m_workspace;
-};
-
-/*** 2x2 SVD implementation
- ***
- *** JacobiSVD consists in performing a series of 2x2 SVD subproblems
- ***/
-
-template<typename MatrixType, int QRPreconditioner>
-struct svd_precondition_2x2_block_to_be_real<MatrixType, QRPreconditioner, false>
-{
-  typedef JacobiSVD<MatrixType, QRPreconditioner> SVD;
-  typedef typename SVD::Index Index;
-  static void run(typename SVD::WorkMatrixType&, SVD&, Index, Index) {}
-};
-
-template<typename MatrixType, int QRPreconditioner>
-struct svd_precondition_2x2_block_to_be_real<MatrixType, QRPreconditioner, true>
-{
-  typedef JacobiSVD<MatrixType, QRPreconditioner> SVD;
-  typedef typename MatrixType::Scalar Scalar;
-  typedef typename MatrixType::RealScalar RealScalar;
-  typedef typename SVD::Index Index;
-  static void run(typename SVD::WorkMatrixType& work_matrix, SVD& svd, Index p, Index q)
-  {
-    using std::sqrt;
-    Scalar z;
-    JacobiRotation<Scalar> rot;
-    RealScalar n = sqrt(abs2(work_matrix.coeff(p,p)) + abs2(work_matrix.coeff(q,p)));
-    if(n==0)
-    {
-      z = abs(work_matrix.coeff(p,q)) / work_matrix.coeff(p,q);
-      work_matrix.row(p) *= z;
-      if(svd.computeU()) svd.m_matrixU.col(p) *= conj(z);
-      z = abs(work_matrix.coeff(q,q)) / work_matrix.coeff(q,q);
-      work_matrix.row(q) *= z;
-      if(svd.computeU()) svd.m_matrixU.col(q) *= conj(z);
-    }
-    else
-    {
-      rot.c() = conj(work_matrix.coeff(p,p)) / n;
-      rot.s() = work_matrix.coeff(q,p) / n;
-      work_matrix.applyOnTheLeft(p,q,rot);
-      if(svd.computeU()) svd.m_matrixU.applyOnTheRight(p,q,rot.adjoint());
-      if(work_matrix.coeff(p,q) != Scalar(0))
-      {
-        Scalar z = abs(work_matrix.coeff(p,q)) / work_matrix.coeff(p,q);
-        work_matrix.col(q) *= z;
-        if(svd.computeV()) svd.m_matrixV.col(q) *= z;
-      }
-      if(work_matrix.coeff(q,q) != Scalar(0))
-      {
-        z = abs(work_matrix.coeff(q,q)) / work_matrix.coeff(q,q);
-        work_matrix.row(q) *= z;
-        if(svd.computeU()) svd.m_matrixU.col(q) *= conj(z);
-      }
-    }
-  }
-};
-
-template<typename MatrixType, typename RealScalar, typename Index>
-void real_2x2_jacobi_svd(const MatrixType& matrix, Index p, Index q,
-                            JacobiRotation<RealScalar> *j_left,
-                            JacobiRotation<RealScalar> *j_right)
-{
-  using std::sqrt;
-  Matrix<RealScalar,2,2> m;
-  m << real(matrix.coeff(p,p)), real(matrix.coeff(p,q)),
-       real(matrix.coeff(q,p)), real(matrix.coeff(q,q));
-  JacobiRotation<RealScalar> rot1;
-  RealScalar t = m.coeff(0,0) + m.coeff(1,1);
-  RealScalar d = m.coeff(1,0) - m.coeff(0,1);
-  if(t == RealScalar(0))
-  {
-    rot1.c() = RealScalar(0);
-    rot1.s() = d > RealScalar(0) ? RealScalar(1) : RealScalar(-1);
-  }
-  else
-  {
-    RealScalar u = d / t;
-    rot1.c() = RealScalar(1) / sqrt(RealScalar(1) + abs2(u));
-    rot1.s() = rot1.c() * u;
-  }
-  m.applyOnTheLeft(0,1,rot1);
-  j_right->makeJacobi(m,0,1);
-  *j_left  = rot1 * j_right->transpose();
-}
-
-} // end namespace internal
-
-/** \ingroup SVD_Module
-  *
-  *
-  * \class JacobiSVD
-  *
-  * \brief Two-sided Jacobi SVD decomposition of a rectangular matrix
-  *
-  * \param MatrixType the type of the matrix of which we are computing the SVD decomposition
-  * \param QRPreconditioner this optional parameter allows to specify the type of QR decomposition that will be used internally
-  *                        for the R-SVD step for non-square matrices. See discussion of possible values below.
-  *
-  * SVD decomposition consists in decomposing any n-by-p matrix \a A as a product
-  *   \f[ A = U S V^* \f]
-  * where \a U is a n-by-n unitary, \a V is a p-by-p unitary, and \a S is a n-by-p real positive matrix which is zero outside of its main diagonal;
-  * the diagonal entries of S are known as the \em singular \em values of \a A and the columns of \a U and \a V are known as the left
-  * and right \em singular \em vectors of \a A respectively.
-  *
-  * Singular values are always sorted in decreasing order.
-  *
-  * This JacobiSVD decomposition computes only the singular values by default. If you want \a U or \a V, you need to ask for them explicitly.
-  *
-  * You can ask for only \em thin \a U or \a V to be computed, meaning the following. In case of a rectangular n-by-p matrix, letting \a m be the
-  * smaller value among \a n and \a p, there are only \a m singular vectors; the remaining columns of \a U and \a V do not correspond to actual
-  * singular vectors. Asking for \em thin \a U or \a V means asking for only their \a m first columns to be formed. So \a U is then a n-by-m matrix,
-  * and \a V is then a p-by-m matrix. Notice that thin \a U and \a V are all you need for (least squares) solving.
-  *
-  * Here's an example demonstrating basic usage:
-  * \include JacobiSVD_basic.cpp
-  * Output: \verbinclude JacobiSVD_basic.out
-  *
-  * This JacobiSVD class is a two-sided Jacobi R-SVD decomposition, ensuring optimal reliability and accuracy. The downside is that it's slower than
-  * bidiagonalizing SVD algorithms for large square matrices; however its complexity is still \f$ O(n^2p) \f$ where \a n is the smaller dimension and
-  * \a p is the greater dimension, meaning that it is still of the same order of complexity as the faster bidiagonalizing R-SVD algorithms.
-  * In particular, like any R-SVD, it takes advantage of non-squareness in that its complexity is only linear in the greater dimension.
-  *
-  * If the input matrix has inf or nan coefficients, the result of the computation is undefined, but the computation is guaranteed to
-  * terminate in finite (and reasonable) time.
-  *
-  * The possible values for QRPreconditioner are:
-  * \li ColPivHouseholderQRPreconditioner is the default. In practice it's very safe. It uses column-pivoting QR.
-  * \li FullPivHouseholderQRPreconditioner, is the safest and slowest. It uses full-pivoting QR.
-  *     Contrary to other QRs, it doesn't allow computing thin unitaries.
-  * \li HouseholderQRPreconditioner is the fastest, and less safe and accurate than the pivoting variants. It uses non-pivoting QR.
-  *     This is very similar in safety and accuracy to the bidiagonalization process used by bidiagonalizing SVD algorithms (since bidiagonalization
-  *     is inherently non-pivoting). However the resulting SVD is still more reliable than bidiagonalizing SVDs because the Jacobi-based iterarive
-  *     process is more reliable than the optimized bidiagonal SVD iterations.
-  * \li NoQRPreconditioner allows not to use a QR preconditioner at all. This is useful if you know that you will only be computing
-  *     JacobiSVD decompositions of square matrices. Non-square matrices require a QR preconditioner. Using this option will result in
-  *     faster compilation and smaller executable code. It won't significantly speed up computation, since JacobiSVD is always checking
-  *     if QR preconditioning is needed before applying it anyway.
-  *
-  * \sa MatrixBase::jacobiSvd()
-  */
-template<typename _MatrixType, int QRPreconditioner> class JacobiSVD
-{
-  public:
-
-    typedef _MatrixType MatrixType;
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
-    typedef typename MatrixType::Index Index;
-    enum {
-      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-      DiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime,ColsAtCompileTime),
-      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
-      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
-      MaxDiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(MaxRowsAtCompileTime,MaxColsAtCompileTime),
-      MatrixOptions = MatrixType::Options
-    };
-
-    typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime,
-                   MatrixOptions, MaxRowsAtCompileTime, MaxRowsAtCompileTime>
-            MatrixUType;
-    typedef Matrix<Scalar, ColsAtCompileTime, ColsAtCompileTime,
-                   MatrixOptions, MaxColsAtCompileTime, MaxColsAtCompileTime>
-            MatrixVType;
-    typedef typename internal::plain_diag_type<MatrixType, RealScalar>::type SingularValuesType;
-    typedef typename internal::plain_row_type<MatrixType>::type RowType;
-    typedef typename internal::plain_col_type<MatrixType>::type ColType;
-    typedef Matrix<Scalar, DiagSizeAtCompileTime, DiagSizeAtCompileTime,
-                   MatrixOptions, MaxDiagSizeAtCompileTime, MaxDiagSizeAtCompileTime>
-            WorkMatrixType;
-
-    /** \brief Default Constructor.
-      *
-      * The default constructor is useful in cases in which the user intends to
-      * perform decompositions via JacobiSVD::compute(const MatrixType&).
-      */
-    JacobiSVD()
-      : m_isInitialized(false),
-        m_isAllocated(false),
-        m_computationOptions(0),
-        m_rows(-1), m_cols(-1)
-    {}
-
-
-    /** \brief Default Constructor with memory preallocation
-      *
-      * Like the default constructor but with preallocation of the internal data
-      * according to the specified problem size.
-      * \sa JacobiSVD()
-      */
-    JacobiSVD(Index rows, Index cols, unsigned int computationOptions = 0)
-      : m_isInitialized(false),
-        m_isAllocated(false),
-        m_computationOptions(0),
-        m_rows(-1), m_cols(-1)
-    {
-      allocate(rows, cols, computationOptions);
-    }
-
-    /** \brief Constructor performing the decomposition of given matrix.
-     *
-     * \param matrix the matrix to decompose
-     * \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
-     *                           By default, none is computed. This is a bit-field, the possible bits are #ComputeFullU, #ComputeThinU,
-     *                           #ComputeFullV, #ComputeThinV.
-     *
-     * Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
-     * available with the (non-default) FullPivHouseholderQR preconditioner.
-     */
-    JacobiSVD(const MatrixType& matrix, unsigned int computationOptions = 0)
-      : m_isInitialized(false),
-        m_isAllocated(false),
-        m_computationOptions(0),
-        m_rows(-1), m_cols(-1)
-    {
-      compute(matrix, computationOptions);
-    }
-
-    /** \brief Method performing the decomposition of given matrix using custom options.
-     *
-     * \param matrix the matrix to decompose
-     * \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
-     *                           By default, none is computed. This is a bit-field, the possible bits are #ComputeFullU, #ComputeThinU,
-     *                           #ComputeFullV, #ComputeThinV.
-     *
-     * Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
-     * available with the (non-default) FullPivHouseholderQR preconditioner.
-     */
-    JacobiSVD& compute(const MatrixType& matrix, unsigned int computationOptions);
-
-    /** \brief Method performing the decomposition of given matrix using current options.
-     *
-     * \param matrix the matrix to decompose
-     *
-     * This method uses the current \a computationOptions, as already passed to the constructor or to compute(const MatrixType&, unsigned int).
-     */
-    JacobiSVD& compute(const MatrixType& matrix)
-    {
-      return compute(matrix, m_computationOptions);
-    }
-
-    /** \returns the \a U matrix.
-     *
-     * For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p,
-     * the U matrix is n-by-n if you asked for #ComputeFullU, and is n-by-m if you asked for #ComputeThinU.
-     *
-     * The \a m first columns of \a U are the left singular vectors of the matrix being decomposed.
-     *
-     * This method asserts that you asked for \a U to be computed.
-     */
-    const MatrixUType& matrixU() const
-    {
-      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
-      eigen_assert(computeU() && "This JacobiSVD decomposition didn't compute U. Did you ask for it?");
-      return m_matrixU;
-    }
-
-    /** \returns the \a V matrix.
-     *
-     * For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p,
-     * the V matrix is p-by-p if you asked for #ComputeFullV, and is p-by-m if you asked for ComputeThinV.
-     *
-     * The \a m first columns of \a V are the right singular vectors of the matrix being decomposed.
-     *
-     * This method asserts that you asked for \a V to be computed.
-     */
-    const MatrixVType& matrixV() const
-    {
-      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
-      eigen_assert(computeV() && "This JacobiSVD decomposition didn't compute V. Did you ask for it?");
-      return m_matrixV;
-    }
-
-    /** \returns the vector of singular values.
-     *
-     * For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p, the
-     * returned vector has size \a m.  Singular values are always sorted in decreasing order.
-     */
-    const SingularValuesType& singularValues() const
-    {
-      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
-      return m_singularValues;
-    }
-
-    /** \returns true if \a U (full or thin) is asked for in this SVD decomposition */
-    inline bool computeU() const { return m_computeFullU || m_computeThinU; }
-    /** \returns true if \a V (full or thin) is asked for in this SVD decomposition */
-    inline bool computeV() const { return m_computeFullV || m_computeThinV; }
-
-    /** \returns a (least squares) solution of \f$ A x = b \f$ using the current SVD decomposition of A.
-      *
-      * \param b the right-hand-side of the equation to solve.
-      *
-      * \note Solving requires both U and V to be computed. Thin U and V are enough, there is no need for full U or V.
-      *
-      * \note SVD solving is implicitly least-squares. Thus, this method serves both purposes of exact solving and least-squares solving.
-      * In other words, the returned solution is guaranteed to minimize the Euclidean norm \f$ \Vert A x - b \Vert \f$.
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<JacobiSVD, Rhs>
-    solve(const MatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
-      eigen_assert(computeU() && computeV() && "JacobiSVD::solve() requires both unitaries U and V to be computed (thin unitaries suffice).");
-      return internal::solve_retval<JacobiSVD, Rhs>(*this, b.derived());
-    }
-
-    /** \returns the number of singular values that are not exactly 0 */
-    Index nonzeroSingularValues() const
-    {
-      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
-      return m_nonzeroSingularValues;
-    }
-
-    inline Index rows() const { return m_rows; }
-    inline Index cols() const { return m_cols; }
-
-  private:
-    void allocate(Index rows, Index cols, unsigned int computationOptions);
-
-  protected:
-    MatrixUType m_matrixU;
-    MatrixVType m_matrixV;
-    SingularValuesType m_singularValues;
-    WorkMatrixType m_workMatrix;
-    bool m_isInitialized, m_isAllocated;
-    bool m_computeFullU, m_computeThinU;
-    bool m_computeFullV, m_computeThinV;
-    unsigned int m_computationOptions;
-    Index m_nonzeroSingularValues, m_rows, m_cols, m_diagSize;
-
-    template<typename __MatrixType, int _QRPreconditioner, bool _IsComplex>
-    friend struct internal::svd_precondition_2x2_block_to_be_real;
-    template<typename __MatrixType, int _QRPreconditioner, int _Case, bool _DoAnything>
-    friend struct internal::qr_preconditioner_impl;
-
-    internal::qr_preconditioner_impl<MatrixType, QRPreconditioner, internal::PreconditionIfMoreColsThanRows> m_qr_precond_morecols;
-    internal::qr_preconditioner_impl<MatrixType, QRPreconditioner, internal::PreconditionIfMoreRowsThanCols> m_qr_precond_morerows;
-};
-
-template<typename MatrixType, int QRPreconditioner>
-void JacobiSVD<MatrixType, QRPreconditioner>::allocate(Index rows, Index cols, unsigned int computationOptions)
-{
-  eigen_assert(rows >= 0 && cols >= 0);
-
-  if (m_isAllocated &&
-      rows == m_rows &&
-      cols == m_cols &&
-      computationOptions == m_computationOptions)
-  {
-    return;
-  }
-
-  m_rows = rows;
-  m_cols = cols;
-  m_isInitialized = false;
-  m_isAllocated = true;
-  m_computationOptions = computationOptions;
-  m_computeFullU = (computationOptions & ComputeFullU) != 0;
-  m_computeThinU = (computationOptions & ComputeThinU) != 0;
-  m_computeFullV = (computationOptions & ComputeFullV) != 0;
-  m_computeThinV = (computationOptions & ComputeThinV) != 0;
-  eigen_assert(!(m_computeFullU && m_computeThinU) && "JacobiSVD: you can't ask for both full and thin U");
-  eigen_assert(!(m_computeFullV && m_computeThinV) && "JacobiSVD: you can't ask for both full and thin V");
-  eigen_assert(EIGEN_IMPLIES(m_computeThinU || m_computeThinV, MatrixType::ColsAtCompileTime==Dynamic) &&
-              "JacobiSVD: thin U and V are only available when your matrix has a dynamic number of columns.");
-  if (QRPreconditioner == FullPivHouseholderQRPreconditioner)
-  {
-      eigen_assert(!(m_computeThinU || m_computeThinV) &&
-              "JacobiSVD: can't compute thin U or thin V with the FullPivHouseholderQR preconditioner. "
-              "Use the ColPivHouseholderQR preconditioner instead.");
-  }
-  m_diagSize = (std::min)(m_rows, m_cols);
-  m_singularValues.resize(m_diagSize);
-  if(RowsAtCompileTime==Dynamic)
-    m_matrixU.resize(m_rows, m_computeFullU ? m_rows
-                            : m_computeThinU ? m_diagSize
-                            : 0);
-  if(ColsAtCompileTime==Dynamic)
-    m_matrixV.resize(m_cols, m_computeFullV ? m_cols
-                            : m_computeThinV ? m_diagSize
-                            : 0);
-  m_workMatrix.resize(m_diagSize, m_diagSize);
-  
-  if(m_cols>m_rows) m_qr_precond_morecols.allocate(*this);
-  if(m_rows>m_cols) m_qr_precond_morerows.allocate(*this);
-}
-
-template<typename MatrixType, int QRPreconditioner>
-JacobiSVD<MatrixType, QRPreconditioner>&
-JacobiSVD<MatrixType, QRPreconditioner>::compute(const MatrixType& matrix, unsigned int computationOptions)
-{
-  using std::abs;
-  allocate(matrix.rows(), matrix.cols(), computationOptions);
-
-  // currently we stop when we reach precision 2*epsilon as the last bit of precision can require an unreasonable number of iterations,
-  // only worsening the precision of U and V as we accumulate more rotations
-  const RealScalar precision = RealScalar(2) * NumTraits<Scalar>::epsilon();
-
-  // limit for very small denormal numbers to be considered zero in order to avoid infinite loops (see bug 286)
-  const RealScalar considerAsZero = RealScalar(2) * std::numeric_limits<RealScalar>::denorm_min();
-
-  /*** step 1. The R-SVD step: we use a QR decomposition to reduce to the case of a square matrix */
-
-  if(!m_qr_precond_morecols.run(*this, matrix) && !m_qr_precond_morerows.run(*this, matrix))
-  {
-    m_workMatrix = matrix.block(0,0,m_diagSize,m_diagSize);
-    if(m_computeFullU) m_matrixU.setIdentity(m_rows,m_rows);
-    if(m_computeThinU) m_matrixU.setIdentity(m_rows,m_diagSize);
-    if(m_computeFullV) m_matrixV.setIdentity(m_cols,m_cols);
-    if(m_computeThinV) m_matrixV.setIdentity(m_cols, m_diagSize);
-  }
-
-  /*** step 2. The main Jacobi SVD iteration. ***/
-
-  bool finished = false;
-  while(!finished)
-  {
-    finished = true;
-
-    // do a sweep: for all index pairs (p,q), perform SVD of the corresponding 2x2 sub-matrix
-
-    for(Index p = 1; p < m_diagSize; ++p)
-    {
-      for(Index q = 0; q < p; ++q)
-      {
-        // if this 2x2 sub-matrix is not diagonal already...
-        // notice that this comparison will evaluate to false if any NaN is involved, ensuring that NaN's don't
-        // keep us iterating forever. Similarly, small denormal numbers are considered zero.
-        using std::max;
-        RealScalar threshold = (max)(considerAsZero, precision * (max)(abs(m_workMatrix.coeff(p,p)),
-                                                                       abs(m_workMatrix.coeff(q,q))));
-        if((max)(abs(m_workMatrix.coeff(p,q)),abs(m_workMatrix.coeff(q,p))) > threshold)
-        {
-          finished = false;
-
-          // perform SVD decomposition of 2x2 sub-matrix corresponding to indices p,q to make it diagonal
-          internal::svd_precondition_2x2_block_to_be_real<MatrixType, QRPreconditioner>::run(m_workMatrix, *this, p, q);
-          JacobiRotation<RealScalar> j_left, j_right;
-          internal::real_2x2_jacobi_svd(m_workMatrix, p, q, &j_left, &j_right);
-
-          // accumulate resulting Jacobi rotations
-          m_workMatrix.applyOnTheLeft(p,q,j_left);
-          if(computeU()) m_matrixU.applyOnTheRight(p,q,j_left.transpose());
-
-          m_workMatrix.applyOnTheRight(p,q,j_right);
-          if(computeV()) m_matrixV.applyOnTheRight(p,q,j_right);
-        }
-      }
-    }
-  }
-
-  /*** step 3. The work matrix is now diagonal, so ensure it's positive so its diagonal entries are the singular values ***/
-
-  for(Index i = 0; i < m_diagSize; ++i)
-  {
-    RealScalar a = abs(m_workMatrix.coeff(i,i));
-    m_singularValues.coeffRef(i) = a;
-    if(computeU() && (a!=RealScalar(0))) m_matrixU.col(i) *= m_workMatrix.coeff(i,i)/a;
-  }
-
-  /*** step 4. Sort singular values in descending order and compute the number of nonzero singular values ***/
-
-  m_nonzeroSingularValues = m_diagSize;
-  for(Index i = 0; i < m_diagSize; i++)
-  {
-    Index pos;
-    RealScalar maxRemainingSingularValue = m_singularValues.tail(m_diagSize-i).maxCoeff(&pos);
-    if(maxRemainingSingularValue == RealScalar(0))
-    {
-      m_nonzeroSingularValues = i;
-      break;
-    }
-    if(pos)
-    {
-      pos += i;
-      std::swap(m_singularValues.coeffRef(i), m_singularValues.coeffRef(pos));
-      if(computeU()) m_matrixU.col(pos).swap(m_matrixU.col(i));
-      if(computeV()) m_matrixV.col(pos).swap(m_matrixV.col(i));
-    }
-  }
-
-  m_isInitialized = true;
-  return *this;
-}
-
-namespace internal {
-template<typename _MatrixType, int QRPreconditioner, typename Rhs>
-struct solve_retval<JacobiSVD<_MatrixType, QRPreconditioner>, Rhs>
-  : solve_retval_base<JacobiSVD<_MatrixType, QRPreconditioner>, Rhs>
-{
-  typedef JacobiSVD<_MatrixType, QRPreconditioner> JacobiSVDType;
-  EIGEN_MAKE_SOLVE_HELPERS(JacobiSVDType,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    eigen_assert(rhs().rows() == dec().rows());
-
-    // A = U S V^*
-    // So A^{-1} = V S^{-1} U^*
-
-    Index diagSize = (std::min)(dec().rows(), dec().cols());
-    typename JacobiSVDType::SingularValuesType invertedSingVals(diagSize);
-
-    Index nonzeroSingVals = dec().nonzeroSingularValues();
-    invertedSingVals.head(nonzeroSingVals) = dec().singularValues().head(nonzeroSingVals).array().inverse();
-    invertedSingVals.tail(diagSize - nonzeroSingVals).setZero();
-
-    dst = dec().matrixV().leftCols(diagSize)
-        * invertedSingVals.asDiagonal()
-        * dec().matrixU().leftCols(diagSize).adjoint()
-        * rhs();
-  }
-};
-} // end namespace internal
-
-/** \svd_module
-  *
-  * \return the singular value decomposition of \c *this computed by two-sided
-  * Jacobi transformations.
-  *
-  * \sa class JacobiSVD
-  */
-template<typename Derived>
-JacobiSVD<typename MatrixBase<Derived>::PlainObject>
-MatrixBase<Derived>::jacobiSvd(unsigned int computationOptions) const
-{
-  return JacobiSVD<PlainObject>(*this, computationOptions);
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_JACOBISVD_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SVD/JacobiSVD_MKL.h b/vendor/eigen-3.1.91/Eigen/src/SVD/JacobiSVD_MKL.h
deleted file mode 100644
index decda75..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SVD/JacobiSVD_MKL.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- Copyright (c) 2011, Intel Corporation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modification,
- are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
- * Neither the name of Intel Corporation nor the names of its contributors may
-   be used to endorse or promote products derived from this software without
-   specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- ********************************************************************************
- *   Content : Eigen bindings to Intel(R) MKL
- *    Singular Value Decomposition - SVD.
- ********************************************************************************
-*/
-
-#ifndef EIGEN_JACOBISVD_MKL_H
-#define EIGEN_JACOBISVD_MKL_H
-
-#include "Eigen/src/Core/util/MKL_support.h"
-
-namespace Eigen { 
-
-/** \internal Specialization for the data types supported by MKL */
-
-#define EIGEN_MKL_SVD(EIGTYPE, MKLTYPE, MKLRTYPE, MKLPREFIX, EIGCOLROW, MKLCOLROW) \
-template<> inline \
-JacobiSVD<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic>, ColPivHouseholderQRPreconditioner>& \
-JacobiSVD<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic>, ColPivHouseholderQRPreconditioner>::compute(const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic>& matrix, unsigned int computationOptions) \
-{ \
-  typedef Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> MatrixType; \
-  typedef MatrixType::Scalar Scalar; \
-  typedef MatrixType::RealScalar RealScalar; \
-  allocate(matrix.rows(), matrix.cols(), computationOptions); \
-\
-  /*const RealScalar precision = RealScalar(2) * NumTraits<Scalar>::epsilon();*/ \
-  m_nonzeroSingularValues = m_diagSize; \
-\
-  lapack_int lda = matrix.outerStride(), ldu, ldvt; \
-  lapack_int matrix_order = MKLCOLROW; \
-  char jobu, jobvt; \
-  MKLTYPE *u, *vt, dummy; \
-  jobu  = (m_computeFullU) ? 'A' : (m_computeThinU) ? 'S' : 'N'; \
-  jobvt = (m_computeFullV) ? 'A' : (m_computeThinV) ? 'S' : 'N'; \
-  if (computeU()) { \
-    ldu  = m_matrixU.outerStride(); \
-    u    = (MKLTYPE*)m_matrixU.data(); \
-  } else { ldu=1; u=&dummy; }\
-  MatrixType localV; \
-  ldvt = (m_computeFullV) ? m_cols : (m_computeThinV) ? m_diagSize : 1; \
-  if (computeV()) { \
-    localV.resize(ldvt, m_cols); \
-    vt   = (MKLTYPE*)localV.data(); \
-  } else { ldvt=1; vt=&dummy; }\
-  Matrix<MKLRTYPE, Dynamic, Dynamic> superb; superb.resize(m_diagSize, 1); \
-  MatrixType m_temp; m_temp = matrix; \
-  LAPACKE_##MKLPREFIX##gesvd( matrix_order, jobu, jobvt, m_rows, m_cols, (MKLTYPE*)m_temp.data(), lda, (MKLRTYPE*)m_singularValues.data(), u, ldu, vt, ldvt, superb.data()); \
-  if (computeV()) m_matrixV = localV.adjoint(); \
- /* for(int i=0;i<m_diagSize;i++) if (m_singularValues.coeffRef(i) < precision) { m_nonzeroSingularValues--; m_singularValues.coeffRef(i)=RealScalar(0);}*/ \
-  m_isInitialized = true; \
-  return *this; \
-}
-
-EIGEN_MKL_SVD(double,   double,        double, d, ColMajor, LAPACK_COL_MAJOR)
-EIGEN_MKL_SVD(float,    float,         float , s, ColMajor, LAPACK_COL_MAJOR)
-EIGEN_MKL_SVD(dcomplex, MKL_Complex16, double, z, ColMajor, LAPACK_COL_MAJOR)
-EIGEN_MKL_SVD(scomplex, MKL_Complex8,  float , c, ColMajor, LAPACK_COL_MAJOR)
-
-EIGEN_MKL_SVD(double,   double,        double, d, RowMajor, LAPACK_ROW_MAJOR)
-EIGEN_MKL_SVD(float,    float,         float , s, RowMajor, LAPACK_ROW_MAJOR)
-EIGEN_MKL_SVD(dcomplex, MKL_Complex16, double, z, RowMajor, LAPACK_ROW_MAJOR)
-EIGEN_MKL_SVD(scomplex, MKL_Complex8,  float , c, RowMajor, LAPACK_ROW_MAJOR)
-
-} // end namespace Eigen
-
-#endif // EIGEN_JACOBISVD_MKL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SVD/UpperBidiagonalization.h b/vendor/eigen-3.1.91/Eigen/src/SVD/UpperBidiagonalization.h
deleted file mode 100644
index 213b310..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SVD/UpperBidiagonalization.h
+++ /dev/null
@@ -1,148 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_BIDIAGONALIZATION_H
-#define EIGEN_BIDIAGONALIZATION_H
-
-namespace Eigen { 
-
-namespace internal {
-// UpperBidiagonalization will probably be replaced by a Bidiagonalization class, don't want to make it stable API.
-// At the same time, it's useful to keep for now as it's about the only thing that is testing the BandMatrix class.
-
-template<typename _MatrixType> class UpperBidiagonalization
-{
-  public:
-
-    typedef _MatrixType MatrixType;
-    enum {
-      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
-      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
-      ColsAtCompileTimeMinusOne = internal::decrement_size<ColsAtCompileTime>::ret
-    };
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::RealScalar RealScalar;
-    typedef typename MatrixType::Index Index;
-    typedef Matrix<Scalar, 1, ColsAtCompileTime> RowVectorType;
-    typedef Matrix<Scalar, RowsAtCompileTime, 1> ColVectorType;
-    typedef BandMatrix<RealScalar, ColsAtCompileTime, ColsAtCompileTime, 1, 0> BidiagonalType;
-    typedef Matrix<Scalar, ColsAtCompileTime, 1> DiagVectorType;
-    typedef Matrix<Scalar, ColsAtCompileTimeMinusOne, 1> SuperDiagVectorType;
-    typedef HouseholderSequence<
-              const MatrixType,
-              CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, const Diagonal<const MatrixType,0> >
-            > HouseholderUSequenceType;
-    typedef HouseholderSequence<
-              const MatrixType,
-              Diagonal<const MatrixType,1>,
-              OnTheRight
-            > HouseholderVSequenceType;
-    
-    /**
-    * \brief Default Constructor.
-    *
-    * The default constructor is useful in cases in which the user intends to
-    * perform decompositions via Bidiagonalization::compute(const MatrixType&).
-    */
-    UpperBidiagonalization() : m_householder(), m_bidiagonal(), m_isInitialized(false) {}
-
-    UpperBidiagonalization(const MatrixType& matrix)
-      : m_householder(matrix.rows(), matrix.cols()),
-        m_bidiagonal(matrix.cols(), matrix.cols()),
-        m_isInitialized(false)
-    {
-      compute(matrix);
-    }
-    
-    UpperBidiagonalization& compute(const MatrixType& matrix);
-    
-    const MatrixType& householder() const { return m_householder; }
-    const BidiagonalType& bidiagonal() const { return m_bidiagonal; }
-    
-    const HouseholderUSequenceType householderU() const
-    {
-      eigen_assert(m_isInitialized && "UpperBidiagonalization is not initialized.");
-      return HouseholderUSequenceType(m_householder, m_householder.diagonal().conjugate());
-    }
-
-    const HouseholderVSequenceType householderV() // const here gives nasty errors and i'm lazy
-    {
-      eigen_assert(m_isInitialized && "UpperBidiagonalization is not initialized.");
-      return HouseholderVSequenceType(m_householder, m_householder.const_derived().template diagonal<1>())
-             .setLength(m_householder.cols()-1)
-             .setShift(1);
-    }
-    
-  protected:
-    MatrixType m_householder;
-    BidiagonalType m_bidiagonal;
-    bool m_isInitialized;
-};
-
-template<typename _MatrixType>
-UpperBidiagonalization<_MatrixType>& UpperBidiagonalization<_MatrixType>::compute(const _MatrixType& matrix)
-{
-  Index rows = matrix.rows();
-  Index cols = matrix.cols();
-  
-  eigen_assert(rows >= cols && "UpperBidiagonalization is only for matrices satisfying rows>=cols.");
-  
-  m_householder = matrix;
-
-  ColVectorType temp(rows);
-
-  for (Index k = 0; /* breaks at k==cols-1 below */ ; ++k)
-  {
-    Index remainingRows = rows - k;
-    Index remainingCols = cols - k - 1;
-
-    // construct left householder transform in-place in m_householder
-    m_householder.col(k).tail(remainingRows)
-                 .makeHouseholderInPlace(m_householder.coeffRef(k,k),
-                                         m_bidiagonal.template diagonal<0>().coeffRef(k));
-    // apply householder transform to remaining part of m_householder on the left
-    m_householder.bottomRightCorner(remainingRows, remainingCols)
-                 .applyHouseholderOnTheLeft(m_householder.col(k).tail(remainingRows-1),
-                                            m_householder.coeff(k,k),
-                                            temp.data());
-
-    if(k == cols-1) break;
-    
-    // construct right householder transform in-place in m_householder
-    m_householder.row(k).tail(remainingCols)
-                 .makeHouseholderInPlace(m_householder.coeffRef(k,k+1),
-                                         m_bidiagonal.template diagonal<1>().coeffRef(k));
-    // apply householder transform to remaining part of m_householder on the left
-    m_householder.bottomRightCorner(remainingRows-1, remainingCols)
-                 .applyHouseholderOnTheRight(m_householder.row(k).tail(remainingCols-1).transpose(),
-                                             m_householder.coeff(k,k+1),
-                                             temp.data());
-  }
-  m_isInitialized = true;
-  return *this;
-}
-
-#if 0
-/** \return the Householder QR decomposition of \c *this.
-  *
-  * \sa class Bidiagonalization
-  */
-template<typename Derived>
-const UpperBidiagonalization<typename MatrixBase<Derived>::PlainObject>
-MatrixBase<Derived>::bidiagonalization() const
-{
-  return UpperBidiagonalization<PlainObject>(eval());
-}
-#endif
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_BIDIAGONALIZATION_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCholesky/SimplicialCholesky.h b/vendor/eigen-3.1.91/Eigen/src/SparseCholesky/SimplicialCholesky.h
deleted file mode 100644
index 6274727..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCholesky/SimplicialCholesky.h
+++ /dev/null
@@ -1,667 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2012 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SIMPLICIAL_CHOLESKY_H
-#define EIGEN_SIMPLICIAL_CHOLESKY_H
-
-namespace Eigen { 
-
-enum SimplicialCholeskyMode {
-  SimplicialCholeskyLLT,
-  SimplicialCholeskyLDLT
-};
-
-/** \ingroup SparseCholesky_Module
-  * \brief A direct sparse Cholesky factorizations
-  *
-  * These classes provide LL^T and LDL^T Cholesky factorizations of sparse matrices that are
-  * selfadjoint and positive definite. The factorization allows for solving A.X = B where
-  * X and B can be either dense or sparse.
-  * 
-  * In order to reduce the fill-in, a symmetric permutation P is applied prior to the factorization
-  * such that the factorized matrix is P A P^-1.
-  *
-  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
-  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
-  *               or Upper. Default is Lower.
-  *
-  */
-template<typename Derived>
-class SimplicialCholeskyBase : internal::noncopyable
-{
-  public:
-    typedef typename internal::traits<Derived>::MatrixType MatrixType;
-    enum { UpLo = internal::traits<Derived>::UpLo };
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::RealScalar RealScalar;
-    typedef typename MatrixType::Index Index;
-    typedef SparseMatrix<Scalar,ColMajor,Index> CholMatrixType;
-    typedef Matrix<Scalar,Dynamic,1> VectorType;
-
-  public:
-
-    /** Default constructor */
-    SimplicialCholeskyBase()
-      : m_info(Success), m_isInitialized(false), m_shiftOffset(0), m_shiftScale(1)
-    {}
-
-    SimplicialCholeskyBase(const MatrixType& matrix)
-      : m_info(Success), m_isInitialized(false), m_shiftOffset(0), m_shiftScale(1)
-    {
-      derived().compute(matrix);
-    }
-
-    ~SimplicialCholeskyBase()
-    {
-    }
-
-    Derived& derived() { return *static_cast<Derived*>(this); }
-    const Derived& derived() const { return *static_cast<const Derived*>(this); }
-    
-    inline Index cols() const { return m_matrix.cols(); }
-    inline Index rows() const { return m_matrix.rows(); }
-    
-    /** \brief Reports whether previous computation was successful.
-      *
-      * \returns \c Success if computation was succesful,
-      *          \c NumericalIssue if the matrix.appears to be negative.
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
-      return m_info;
-    }
-    
-    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
-      *
-      * \sa compute()
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<SimplicialCholeskyBase, Rhs>
-    solve(const MatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "Simplicial LLT or LDLT is not initialized.");
-      eigen_assert(rows()==b.rows()
-                && "SimplicialCholeskyBase::solve(): invalid number of rows of the right hand side matrix b");
-      return internal::solve_retval<SimplicialCholeskyBase, Rhs>(*this, b.derived());
-    }
-    
-    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
-      *
-      * \sa compute()
-      */
-    template<typename Rhs>
-    inline const internal::sparse_solve_retval<SimplicialCholeskyBase, Rhs>
-    solve(const SparseMatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "Simplicial LLT or LDLT is not initialized.");
-      eigen_assert(rows()==b.rows()
-                && "SimplicialCholesky::solve(): invalid number of rows of the right hand side matrix b");
-      return internal::sparse_solve_retval<SimplicialCholeskyBase, Rhs>(*this, b.derived());
-    }
-    
-    /** \returns the permutation P
-      * \sa permutationPinv() */
-    const PermutationMatrix<Dynamic,Dynamic,Index>& permutationP() const
-    { return m_P; }
-    
-    /** \returns the inverse P^-1 of the permutation P
-      * \sa permutationP() */
-    const PermutationMatrix<Dynamic,Dynamic,Index>& permutationPinv() const
-    { return m_Pinv; }
-
-    /** Sets the shift parameters that will be used to adjust the diagonal coefficients during the numerical factorization.
-      *
-      * During the numerical factorization, the diagonal coefficients are transformed by the following linear model:\n
-      * \c d_ii = \a offset + \a scale * \c d_ii
-      *
-      * The default is the identity transformation with \a offset=0, and \a scale=1.
-      *
-      * \returns a reference to \c *this.
-      */
-    Derived& setShift(const RealScalar& offset, const RealScalar& scale = 1)
-    {
-      m_shiftOffset = offset;
-      m_shiftScale = scale;
-      return derived();
-    }
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** \internal */
-    template<typename Stream>
-    void dumpMemory(Stream& s)
-    {
-      int total = 0;
-      s << "  L:        " << ((total+=(m_matrix.cols()+1) * sizeof(int) + m_matrix.nonZeros()*(sizeof(int)+sizeof(Scalar))) >> 20) << "Mb" << "\n";
-      s << "  diag:     " << ((total+=m_diag.size() * sizeof(Scalar)) >> 20) << "Mb" << "\n";
-      s << "  tree:     " << ((total+=m_parent.size() * sizeof(int)) >> 20) << "Mb" << "\n";
-      s << "  nonzeros: " << ((total+=m_nonZerosPerCol.size() * sizeof(int)) >> 20) << "Mb" << "\n";
-      s << "  perm:     " << ((total+=m_P.size() * sizeof(int)) >> 20) << "Mb" << "\n";
-      s << "  perm^-1:  " << ((total+=m_Pinv.size() * sizeof(int)) >> 20) << "Mb" << "\n";
-      s << "  TOTAL:    " << (total>> 20) << "Mb" << "\n";
-    }
-
-    /** \internal */
-    template<typename Rhs,typename Dest>
-    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
-    {
-      eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
-      eigen_assert(m_matrix.rows()==b.rows());
-
-      if(m_info!=Success)
-        return;
-
-      if(m_P.size()>0)
-        dest = m_P * b;
-      else
-        dest = b;
-
-      if(m_matrix.nonZeros()>0) // otherwise L==I
-        derived().matrixL().solveInPlace(dest);
-
-      if(m_diag.size()>0)
-        dest = m_diag.asDiagonal().inverse() * dest;
-
-      if (m_matrix.nonZeros()>0) // otherwise U==I
-        derived().matrixU().solveInPlace(dest);
-
-      if(m_P.size()>0)
-        dest = m_Pinv * dest;
-    }
-
-#endif // EIGEN_PARSED_BY_DOXYGEN
-
-  protected:
-    
-    /** Computes the sparse Cholesky decomposition of \a matrix */
-    template<bool DoLDLT>
-    void compute(const MatrixType& matrix)
-    {
-      eigen_assert(matrix.rows()==matrix.cols());
-      Index size = matrix.cols();
-      CholMatrixType ap(size,size);
-      ordering(matrix, ap);
-      analyzePattern_preordered(ap, DoLDLT);
-      factorize_preordered<DoLDLT>(ap);
-    }
-    
-    template<bool DoLDLT>
-    void factorize(const MatrixType& a)
-    {
-      eigen_assert(a.rows()==a.cols());
-      int size = a.cols();
-      CholMatrixType ap(size,size);
-      ap.template selfadjointView<Upper>() = a.template selfadjointView<UpLo>().twistedBy(m_P);
-      factorize_preordered<DoLDLT>(ap);
-    }
-
-    template<bool DoLDLT>
-    void factorize_preordered(const CholMatrixType& a);
-
-    void analyzePattern(const MatrixType& a, bool doLDLT)
-    {
-      eigen_assert(a.rows()==a.cols());
-      int size = a.cols();
-      CholMatrixType ap(size,size);
-      ordering(a, ap);
-      analyzePattern_preordered(ap,doLDLT);
-    }
-    void analyzePattern_preordered(const CholMatrixType& a, bool doLDLT);
-    
-    void ordering(const MatrixType& a, CholMatrixType& ap);
-
-    /** keeps off-diagonal entries; drops diagonal entries */
-    struct keep_diag {
-      inline bool operator() (const Index& row, const Index& col, const Scalar&) const
-      {
-        return row!=col;
-      }
-    };
-
-    mutable ComputationInfo m_info;
-    bool m_isInitialized;
-    bool m_factorizationIsOk;
-    bool m_analysisIsOk;
-    
-    CholMatrixType m_matrix;
-    VectorType m_diag;                                // the diagonal coefficients (LDLT mode)
-    VectorXi m_parent;                                // elimination tree
-    VectorXi m_nonZerosPerCol;
-    PermutationMatrix<Dynamic,Dynamic,Index> m_P;     // the permutation
-    PermutationMatrix<Dynamic,Dynamic,Index> m_Pinv;  // the inverse permutation
-
-    RealScalar m_shiftOffset;
-    RealScalar m_shiftScale;
-};
-
-template<typename _MatrixType, int _UpLo = Lower> class SimplicialLLT;
-template<typename _MatrixType, int _UpLo = Lower> class SimplicialLDLT;
-template<typename _MatrixType, int _UpLo = Lower> class SimplicialCholesky;
-
-namespace internal {
-
-template<typename _MatrixType, int _UpLo> struct traits<SimplicialLLT<_MatrixType,_UpLo> >
-{
-  typedef _MatrixType MatrixType;
-  enum { UpLo = _UpLo };
-  typedef typename MatrixType::Scalar                         Scalar;
-  typedef typename MatrixType::Index                          Index;
-  typedef SparseMatrix<Scalar, ColMajor, Index>               CholMatrixType;
-  typedef SparseTriangularView<CholMatrixType, Eigen::Lower>  MatrixL;
-  typedef SparseTriangularView<typename CholMatrixType::AdjointReturnType, Eigen::Upper>   MatrixU;
-  static inline MatrixL getL(const MatrixType& m) { return m; }
-  static inline MatrixU getU(const MatrixType& m) { return m.adjoint(); }
-};
-
-template<typename _MatrixType,int _UpLo> struct traits<SimplicialLDLT<_MatrixType,_UpLo> >
-{
-  typedef _MatrixType MatrixType;
-  enum { UpLo = _UpLo };
-  typedef typename MatrixType::Scalar                             Scalar;
-  typedef typename MatrixType::Index                              Index;
-  typedef SparseMatrix<Scalar, ColMajor, Index>                   CholMatrixType;
-  typedef SparseTriangularView<CholMatrixType, Eigen::UnitLower>  MatrixL;
-  typedef SparseTriangularView<typename CholMatrixType::AdjointReturnType, Eigen::UnitUpper> MatrixU;
-  static inline MatrixL getL(const MatrixType& m) { return m; }
-  static inline MatrixU getU(const MatrixType& m) { return m.adjoint(); }
-};
-
-template<typename _MatrixType, int _UpLo> struct traits<SimplicialCholesky<_MatrixType,_UpLo> >
-{
-  typedef _MatrixType MatrixType;
-  enum { UpLo = _UpLo };
-};
-
-}
-
-/** \ingroup SparseCholesky_Module
-  * \class SimplicialLLT
-  * \brief A direct sparse LLT Cholesky factorizations
-  *
-  * This class provides a LL^T Cholesky factorizations of sparse matrices that are
-  * selfadjoint and positive definite. The factorization allows for solving A.X = B where
-  * X and B can be either dense or sparse.
-  * 
-  * In order to reduce the fill-in, a symmetric permutation P is applied prior to the factorization
-  * such that the factorized matrix is P A P^-1.
-  *
-  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
-  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
-  *               or Upper. Default is Lower.
-  *
-  * \sa class SimplicialLDLT
-  */
-template<typename _MatrixType, int _UpLo>
-    class SimplicialLLT : public SimplicialCholeskyBase<SimplicialLLT<_MatrixType,_UpLo> >
-{
-public:
-    typedef _MatrixType MatrixType;
-    enum { UpLo = _UpLo };
-    typedef SimplicialCholeskyBase<SimplicialLLT> Base;
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::RealScalar RealScalar;
-    typedef typename MatrixType::Index Index;
-    typedef SparseMatrix<Scalar,ColMajor,Index> CholMatrixType;
-    typedef Matrix<Scalar,Dynamic,1> VectorType;
-    typedef internal::traits<SimplicialLLT> Traits;
-    typedef typename Traits::MatrixL  MatrixL;
-    typedef typename Traits::MatrixU  MatrixU;
-public:
-    /** Default constructor */
-    SimplicialLLT() : Base() {}
-    /** Constructs and performs the LLT factorization of \a matrix */
-    SimplicialLLT(const MatrixType& matrix)
-        : Base(matrix) {}
-
-    /** \returns an expression of the factor L */
-    inline const MatrixL matrixL() const {
-        eigen_assert(Base::m_factorizationIsOk && "Simplicial LLT not factorized");
-        return Traits::getL(Base::m_matrix);
-    }
-
-    /** \returns an expression of the factor U (= L^*) */
-    inline const MatrixU matrixU() const {
-        eigen_assert(Base::m_factorizationIsOk && "Simplicial LLT not factorized");
-        return Traits::getU(Base::m_matrix);
-    }
-    
-    /** Computes the sparse Cholesky decomposition of \a matrix */
-    SimplicialLLT& compute(const MatrixType& matrix)
-    {
-      Base::template compute<false>(matrix);
-      return *this;
-    }
-
-    /** Performs a symbolic decomposition on the sparcity of \a matrix.
-      *
-      * This function is particularly useful when solving for several problems having the same structure.
-      *
-      * \sa factorize()
-      */
-    void analyzePattern(const MatrixType& a)
-    {
-      Base::analyzePattern(a, false);
-    }
-
-    /** Performs a numeric decomposition of \a matrix
-      *
-      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
-      *
-      * \sa analyzePattern()
-      */
-    void factorize(const MatrixType& a)
-    {
-      Base::template factorize<false>(a);
-    }
-
-    /** \returns the determinant of the underlying matrix from the current factorization */
-    Scalar determinant() const
-    {
-      Scalar detL = Base::m_matrix.diagonal().prod();
-      return internal::abs2(detL);
-    }
-};
-
-/** \ingroup SparseCholesky_Module
-  * \class SimplicialLDLT
-  * \brief A direct sparse LDLT Cholesky factorizations without square root.
-  *
-  * This class provides a LDL^T Cholesky factorizations without square root of sparse matrices that are
-  * selfadjoint and positive definite. The factorization allows for solving A.X = B where
-  * X and B can be either dense or sparse.
-  * 
-  * In order to reduce the fill-in, a symmetric permutation P is applied prior to the factorization
-  * such that the factorized matrix is P A P^-1.
-  *
-  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
-  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
-  *               or Upper. Default is Lower.
-  *
-  * \sa class SimplicialLLT
-  */
-template<typename _MatrixType, int _UpLo>
-    class SimplicialLDLT : public SimplicialCholeskyBase<SimplicialLDLT<_MatrixType,_UpLo> >
-{
-public:
-    typedef _MatrixType MatrixType;
-    enum { UpLo = _UpLo };
-    typedef SimplicialCholeskyBase<SimplicialLDLT> Base;
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::RealScalar RealScalar;
-    typedef typename MatrixType::Index Index;
-    typedef SparseMatrix<Scalar,ColMajor,Index> CholMatrixType;
-    typedef Matrix<Scalar,Dynamic,1> VectorType;
-    typedef internal::traits<SimplicialLDLT> Traits;
-    typedef typename Traits::MatrixL  MatrixL;
-    typedef typename Traits::MatrixU  MatrixU;
-public:
-    /** Default constructor */
-    SimplicialLDLT() : Base() {}
-
-    /** Constructs and performs the LLT factorization of \a matrix */
-    SimplicialLDLT(const MatrixType& matrix)
-        : Base(matrix) {}
-
-    /** \returns a vector expression of the diagonal D */
-    inline const VectorType vectorD() const {
-        eigen_assert(Base::m_factorizationIsOk && "Simplicial LDLT not factorized");
-        return Base::m_diag;
-    }
-    /** \returns an expression of the factor L */
-    inline const MatrixL matrixL() const {
-        eigen_assert(Base::m_factorizationIsOk && "Simplicial LDLT not factorized");
-        return Traits::getL(Base::m_matrix);
-    }
-
-    /** \returns an expression of the factor U (= L^*) */
-    inline const MatrixU matrixU() const {
-        eigen_assert(Base::m_factorizationIsOk && "Simplicial LDLT not factorized");
-        return Traits::getU(Base::m_matrix);
-    }
-
-    /** Computes the sparse Cholesky decomposition of \a matrix */
-    SimplicialLDLT& compute(const MatrixType& matrix)
-    {
-      Base::template compute<true>(matrix);
-      return *this;
-    }
-    
-    /** Performs a symbolic decomposition on the sparcity of \a matrix.
-      *
-      * This function is particularly useful when solving for several problems having the same structure.
-      *
-      * \sa factorize()
-      */
-    void analyzePattern(const MatrixType& a)
-    {
-      Base::analyzePattern(a, true);
-    }
-
-    /** Performs a numeric decomposition of \a matrix
-      *
-      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
-      *
-      * \sa analyzePattern()
-      */
-    void factorize(const MatrixType& a)
-    {
-      Base::template factorize<true>(a);
-    }
-
-    /** \returns the determinant of the underlying matrix from the current factorization */
-    Scalar determinant() const
-    {
-      return Base::m_diag.prod();
-    }
-};
-
-/** \deprecated use SimplicialLDLT or class SimplicialLLT
-  * \ingroup SparseCholesky_Module
-  * \class SimplicialCholesky
-  *
-  * \sa class SimplicialLDLT, class SimplicialLLT
-  */
-template<typename _MatrixType, int _UpLo>
-    class SimplicialCholesky : public SimplicialCholeskyBase<SimplicialCholesky<_MatrixType,_UpLo> >
-{
-public:
-    typedef _MatrixType MatrixType;
-    enum { UpLo = _UpLo };
-    typedef SimplicialCholeskyBase<SimplicialCholesky> Base;
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::RealScalar RealScalar;
-    typedef typename MatrixType::Index Index;
-    typedef SparseMatrix<Scalar,ColMajor,Index> CholMatrixType;
-    typedef Matrix<Scalar,Dynamic,1> VectorType;
-    typedef internal::traits<SimplicialCholesky> Traits;
-    typedef internal::traits<SimplicialLDLT<MatrixType,UpLo> > LDLTTraits;
-    typedef internal::traits<SimplicialLLT<MatrixType,UpLo>  > LLTTraits;
-  public:
-    SimplicialCholesky() : Base(), m_LDLT(true) {}
-
-    SimplicialCholesky(const MatrixType& matrix)
-      : Base(), m_LDLT(true)
-    {
-      compute(matrix);
-    }
-
-    SimplicialCholesky& setMode(SimplicialCholeskyMode mode)
-    {
-      switch(mode)
-      {
-      case SimplicialCholeskyLLT:
-        m_LDLT = false;
-        break;
-      case SimplicialCholeskyLDLT:
-        m_LDLT = true;
-        break;
-      default:
-        break;
-      }
-
-      return *this;
-    }
-
-    inline const VectorType vectorD() const {
-        eigen_assert(Base::m_factorizationIsOk && "Simplicial Cholesky not factorized");
-        return Base::m_diag;
-    }
-    inline const CholMatrixType rawMatrix() const {
-        eigen_assert(Base::m_factorizationIsOk && "Simplicial Cholesky not factorized");
-        return Base::m_matrix;
-    }
-    
-    /** Computes the sparse Cholesky decomposition of \a matrix */
-    SimplicialCholesky& compute(const MatrixType& matrix)
-    {
-      if(m_LDLT)
-        Base::template compute<true>(matrix);
-      else
-        Base::template compute<false>(matrix);
-      return *this;
-    }
-
-    /** Performs a symbolic decomposition on the sparcity of \a matrix.
-      *
-      * This function is particularly useful when solving for several problems having the same structure.
-      *
-      * \sa factorize()
-      */
-    void analyzePattern(const MatrixType& a)
-    {
-      Base::analyzePattern(a, m_LDLT);
-    }
-
-    /** Performs a numeric decomposition of \a matrix
-      *
-      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
-      *
-      * \sa analyzePattern()
-      */
-    void factorize(const MatrixType& a)
-    {
-      if(m_LDLT)
-        Base::template factorize<true>(a);
-      else
-        Base::template factorize<false>(a);
-    }
-
-    /** \internal */
-    template<typename Rhs,typename Dest>
-    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
-    {
-      eigen_assert(Base::m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
-      eigen_assert(Base::m_matrix.rows()==b.rows());
-
-      if(Base::m_info!=Success)
-        return;
-
-      if(Base::m_P.size()>0)
-        dest = Base::m_P * b;
-      else
-        dest = b;
-
-      if(Base::m_matrix.nonZeros()>0) // otherwise L==I
-      {
-        if(m_LDLT)
-          LDLTTraits::getL(Base::m_matrix).solveInPlace(dest);
-        else
-          LLTTraits::getL(Base::m_matrix).solveInPlace(dest);
-      }
-
-      if(Base::m_diag.size()>0)
-        dest = Base::m_diag.asDiagonal().inverse() * dest;
-
-      if (Base::m_matrix.nonZeros()>0) // otherwise I==I
-      {
-        if(m_LDLT)
-          LDLTTraits::getU(Base::m_matrix).solveInPlace(dest);
-        else
-          LLTTraits::getU(Base::m_matrix).solveInPlace(dest);
-      }
-
-      if(Base::m_P.size()>0)
-        dest = Base::m_Pinv * dest;
-    }
-    
-    Scalar determinant() const
-    {
-      if(m_LDLT)
-      {
-        return Base::m_diag.prod();
-      }
-      else
-      {
-        Scalar detL = Diagonal<const CholMatrixType>(Base::m_matrix).prod();
-        return internal::abs2(detL);
-      }
-    }
-    
-  protected:
-    bool m_LDLT;
-};
-
-template<typename Derived>
-void SimplicialCholeskyBase<Derived>::ordering(const MatrixType& a, CholMatrixType& ap)
-{
-  eigen_assert(a.rows()==a.cols());
-  const Index size = a.rows();
-  // TODO allows to configure the permutation
-  // Note that amd compute the inverse permutation
-  {
-    CholMatrixType C;
-    C = a.template selfadjointView<UpLo>();
-    // remove diagonal entries:
-    // seems not to be needed
-    // C.prune(keep_diag());
-    internal::minimum_degree_ordering(C, m_Pinv);
-  }
-
-  if(m_Pinv.size()>0)
-    m_P = m_Pinv.inverse();
-  else
-    m_P.resize(0);
-
-  ap.resize(size,size);
-  ap.template selfadjointView<Upper>() = a.template selfadjointView<UpLo>().twistedBy(m_P);
-}
-
-namespace internal {
-  
-template<typename Derived, typename Rhs>
-struct solve_retval<SimplicialCholeskyBase<Derived>, Rhs>
-  : solve_retval_base<SimplicialCholeskyBase<Derived>, Rhs>
-{
-  typedef SimplicialCholeskyBase<Derived> Dec;
-  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    dec().derived()._solve(rhs(),dst);
-  }
-};
-
-template<typename Derived, typename Rhs>
-struct sparse_solve_retval<SimplicialCholeskyBase<Derived>, Rhs>
-  : sparse_solve_retval_base<SimplicialCholeskyBase<Derived>, Rhs>
-{
-  typedef SimplicialCholeskyBase<Derived> Dec;
-  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    this->defaultEvalTo(dst);
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_SIMPLICIAL_CHOLESKY_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h b/vendor/eigen-3.1.91/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
deleted file mode 100644
index 4b24986..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
+++ /dev/null
@@ -1,199 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2012 Gael Guennebaud <gael.guennebaud at inria.fr>
-
-/*
-
-NOTE: thes functions vave been adapted from the LDL library:
-
-LDL Copyright (c) 2005 by Timothy A. Davis.  All Rights Reserved.
-
-LDL License:
-
-    Your use or distribution of LDL or any modified version of
-    LDL implies that you agree to this License.
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
-    USA
-
-    Permission is hereby granted to use or copy this program under the
-    terms of the GNU LGPL, provided that the Copyright, this License,
-    and the Availability of the original version is retained on all copies.
-    User documentation of any code that uses this code or any modified
-    version of this code must cite the Copyright, this License, the
-    Availability note, and "Used by permission." Permission to modify
-    the code and to distribute modified code is granted, provided the
-    Copyright, this License, and the Availability note are retained,
-    and a notice that the code was modified is included.
- */
-
-#include "../Core/util/NonMPL2.h"
-
-#ifndef EIGEN_SIMPLICIAL_CHOLESKY_IMPL_H
-#define EIGEN_SIMPLICIAL_CHOLESKY_IMPL_H
-
-namespace Eigen {
-
-template<typename Derived>
-void SimplicialCholeskyBase<Derived>::analyzePattern_preordered(const CholMatrixType& ap, bool doLDLT)
-{
-  const Index size = ap.rows();
-  m_matrix.resize(size, size);
-  m_parent.resize(size);
-  m_nonZerosPerCol.resize(size);
-
-  ei_declare_aligned_stack_constructed_variable(Index, tags, size, 0);
-
-  for(Index k = 0; k < size; ++k)
-  {
-    /* L(k,:) pattern: all nodes reachable in etree from nz in A(0:k-1,k) */
-    m_parent[k] = -1;             /* parent of k is not yet known */
-    tags[k] = k;                  /* mark node k as visited */
-    m_nonZerosPerCol[k] = 0;      /* count of nonzeros in column k of L */
-    for(typename CholMatrixType::InnerIterator it(ap,k); it; ++it)
-    {
-      Index i = it.index();
-      if(i < k)
-      {
-        /* follow path from i to root of etree, stop at flagged node */
-        for(; tags[i] != k; i = m_parent[i])
-        {
-          /* find parent of i if not yet determined */
-          if (m_parent[i] == -1)
-            m_parent[i] = k;
-          m_nonZerosPerCol[i]++;        /* L (k,i) is nonzero */
-          tags[i] = k;                  /* mark i as visited */
-        }
-      }
-    }
-  }
-
-  /* construct Lp index array from m_nonZerosPerCol column counts */
-  Index* Lp = m_matrix.outerIndexPtr();
-  Lp[0] = 0;
-  for(Index k = 0; k < size; ++k)
-    Lp[k+1] = Lp[k] + m_nonZerosPerCol[k] + (doLDLT ? 0 : 1);
-
-  m_matrix.resizeNonZeros(Lp[size]);
-
-  m_isInitialized     = true;
-  m_info              = Success;
-  m_analysisIsOk      = true;
-  m_factorizationIsOk = false;
-}
-
-
-template<typename Derived>
-template<bool DoLDLT>
-void SimplicialCholeskyBase<Derived>::factorize_preordered(const CholMatrixType& ap)
-{
-  using std::sqrt;
-
-  eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
-  eigen_assert(ap.rows()==ap.cols());
-  const Index size = ap.rows();
-  eigen_assert(m_parent.size()==size);
-  eigen_assert(m_nonZerosPerCol.size()==size);
-
-  const Index* Lp = m_matrix.outerIndexPtr();
-  Index* Li = m_matrix.innerIndexPtr();
-  Scalar* Lx = m_matrix.valuePtr();
-
-  ei_declare_aligned_stack_constructed_variable(Scalar, y, size, 0);
-  ei_declare_aligned_stack_constructed_variable(Index,  pattern, size, 0);
-  ei_declare_aligned_stack_constructed_variable(Index,  tags, size, 0);
-
-  bool ok = true;
-  m_diag.resize(DoLDLT ? size : 0);
-
-  for(Index k = 0; k < size; ++k)
-  {
-    // compute nonzero pattern of kth row of L, in topological order
-    y[k] = 0.0;                     // Y(0:k) is now all zero
-    Index top = size;               // stack for pattern is empty
-    tags[k] = k;                    // mark node k as visited
-    m_nonZerosPerCol[k] = 0;        // count of nonzeros in column k of L
-    for(typename MatrixType::InnerIterator it(ap,k); it; ++it)
-    {
-      Index i = it.index();
-      if(i <= k)
-      {
-        y[i] += internal::conj(it.value());            /* scatter A(i,k) into Y (sum duplicates) */
-        Index len;
-        for(len = 0; tags[i] != k; i = m_parent[i])
-        {
-          pattern[len++] = i;     /* L(k,i) is nonzero */
-          tags[i] = k;            /* mark i as visited */
-        }
-        while(len > 0)
-          pattern[--top] = pattern[--len];
-      }
-    }
-
-    /* compute numerical values kth row of L (a sparse triangular solve) */
-
-    RealScalar d = internal::real(y[k]) * m_shiftScale + m_shiftOffset;    // get D(k,k), apply the shift function, and clear Y(k)
-    y[k] = 0.0;
-    for(; top < size; ++top)
-    {
-      Index i = pattern[top];       /* pattern[top:n-1] is pattern of L(:,k) */
-      Scalar yi = y[i];             /* get and clear Y(i) */
-      y[i] = 0.0;
-
-      /* the nonzero entry L(k,i) */
-      Scalar l_ki;
-      if(DoLDLT)
-        l_ki = yi / m_diag[i];
-      else
-        yi = l_ki = yi / Lx[Lp[i]];
-
-      Index p2 = Lp[i] + m_nonZerosPerCol[i];
-      Index p;
-      for(p = Lp[i] + (DoLDLT ? 0 : 1); p < p2; ++p)
-        y[Li[p]] -= internal::conj(Lx[p]) * yi;
-      d -= internal::real(l_ki * internal::conj(yi));
-      Li[p] = k;                          /* store L(k,i) in column form of L */
-      Lx[p] = l_ki;
-      ++m_nonZerosPerCol[i];              /* increment count of nonzeros in col i */
-    }
-    if(DoLDLT)
-    {
-      m_diag[k] = d;
-      if(d == RealScalar(0))
-      {
-        ok = false;                         /* failure, D(k,k) is zero */
-        break;
-      }
-    }
-    else
-    {
-      Index p = Lp[k] + m_nonZerosPerCol[k]++;
-      Li[p] = k ;                /* store L(k,k) = sqrt (d) in column k */
-      if(d <= RealScalar(0)) {
-        ok = false;              /* failure, matrix is not positive definite */
-        break;
-      }
-      Lx[p] = sqrt(d) ;
-    }
-  }
-
-  m_info = ok ? Success : NumericalIssue;
-  m_factorizationIsOk = true;
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_SIMPLICIAL_CHOLESKY_IMPL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/AmbiVector.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/AmbiVector.h
deleted file mode 100644
index 17fff96..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/AmbiVector.h
+++ /dev/null
@@ -1,373 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_AMBIVECTOR_H
-#define EIGEN_AMBIVECTOR_H
-
-namespace Eigen { 
-
-namespace internal {
-
-/** \internal
-  * Hybrid sparse/dense vector class designed for intensive read-write operations.
-  *
-  * See BasicSparseLLT and SparseProduct for usage examples.
-  */
-template<typename _Scalar, typename _Index>
-class AmbiVector
-{
-  public:
-    typedef _Scalar Scalar;
-    typedef _Index Index;
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-
-    AmbiVector(Index size)
-      : m_buffer(0), m_zero(0), m_size(0), m_allocatedSize(0), m_allocatedElements(0), m_mode(-1)
-    {
-      resize(size);
-    }
-
-    void init(double estimatedDensity);
-    void init(int mode);
-
-    Index nonZeros() const;
-
-    /** Specifies a sub-vector to work on */
-    void setBounds(Index start, Index end) { m_start = start; m_end = end; }
-
-    void setZero();
-
-    void restart();
-    Scalar& coeffRef(Index i);
-    Scalar& coeff(Index i);
-
-    class Iterator;
-
-    ~AmbiVector() { delete[] m_buffer; }
-
-    void resize(Index size)
-    {
-      if (m_allocatedSize < size)
-        reallocate(size);
-      m_size = size;
-    }
-
-    Index size() const { return m_size; }
-
-  protected:
-
-    void reallocate(Index size)
-    {
-      // if the size of the matrix is not too large, let's allocate a bit more than needed such
-      // that we can handle dense vector even in sparse mode.
-      delete[] m_buffer;
-      if (size<1000)
-      {
-        Index allocSize = (size * sizeof(ListEl))/sizeof(Scalar);
-        m_allocatedElements = (allocSize*sizeof(Scalar))/sizeof(ListEl);
-        m_buffer = new Scalar[allocSize];
-      }
-      else
-      {
-        m_allocatedElements = (size*sizeof(Scalar))/sizeof(ListEl);
-        m_buffer = new Scalar[size];
-      }
-      m_size = size;
-      m_start = 0;
-      m_end = m_size;
-    }
-
-    void reallocateSparse()
-    {
-      Index copyElements = m_allocatedElements;
-      m_allocatedElements = (std::min)(Index(m_allocatedElements*1.5),m_size);
-      Index allocSize = m_allocatedElements * sizeof(ListEl);
-      allocSize = allocSize/sizeof(Scalar) + (allocSize%sizeof(Scalar)>0?1:0);
-      Scalar* newBuffer = new Scalar[allocSize];
-      memcpy(newBuffer,  m_buffer,  copyElements * sizeof(ListEl));
-      delete[] m_buffer;
-      m_buffer = newBuffer;
-    }
-
-  protected:
-    // element type of the linked list
-    struct ListEl
-    {
-      Index next;
-      Index index;
-      Scalar value;
-    };
-
-    // used to store data in both mode
-    Scalar* m_buffer;
-    Scalar m_zero;
-    Index m_size;
-    Index m_start;
-    Index m_end;
-    Index m_allocatedSize;
-    Index m_allocatedElements;
-    Index m_mode;
-
-    // linked list mode
-    Index m_llStart;
-    Index m_llCurrent;
-    Index m_llSize;
-};
-
-/** \returns the number of non zeros in the current sub vector */
-template<typename _Scalar,typename _Index>
-_Index AmbiVector<_Scalar,_Index>::nonZeros() const
-{
-  if (m_mode==IsSparse)
-    return m_llSize;
-  else
-    return m_end - m_start;
-}
-
-template<typename _Scalar,typename _Index>
-void AmbiVector<_Scalar,_Index>::init(double estimatedDensity)
-{
-  if (estimatedDensity>0.1)
-    init(IsDense);
-  else
-    init(IsSparse);
-}
-
-template<typename _Scalar,typename _Index>
-void AmbiVector<_Scalar,_Index>::init(int mode)
-{
-  m_mode = mode;
-  if (m_mode==IsSparse)
-  {
-    m_llSize = 0;
-    m_llStart = -1;
-  }
-}
-
-/** Must be called whenever we might perform a write access
-  * with an index smaller than the previous one.
-  *
-  * Don't worry, this function is extremely cheap.
-  */
-template<typename _Scalar,typename _Index>
-void AmbiVector<_Scalar,_Index>::restart()
-{
-  m_llCurrent = m_llStart;
-}
-
-/** Set all coefficients of current subvector to zero */
-template<typename _Scalar,typename _Index>
-void AmbiVector<_Scalar,_Index>::setZero()
-{
-  if (m_mode==IsDense)
-  {
-    for (Index i=m_start; i<m_end; ++i)
-      m_buffer[i] = Scalar(0);
-  }
-  else
-  {
-    eigen_assert(m_mode==IsSparse);
-    m_llSize = 0;
-    m_llStart = -1;
-  }
-}
-
-template<typename _Scalar,typename _Index>
-_Scalar& AmbiVector<_Scalar,_Index>::coeffRef(_Index i)
-{
-  if (m_mode==IsDense)
-    return m_buffer[i];
-  else
-  {
-    ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_buffer);
-    // TODO factorize the following code to reduce code generation
-    eigen_assert(m_mode==IsSparse);
-    if (m_llSize==0)
-    {
-      // this is the first element
-      m_llStart = 0;
-      m_llCurrent = 0;
-      ++m_llSize;
-      llElements[0].value = Scalar(0);
-      llElements[0].index = i;
-      llElements[0].next = -1;
-      return llElements[0].value;
-    }
-    else if (i<llElements[m_llStart].index)
-    {
-      // this is going to be the new first element of the list
-      ListEl& el = llElements[m_llSize];
-      el.value = Scalar(0);
-      el.index = i;
-      el.next = m_llStart;
-      m_llStart = m_llSize;
-      ++m_llSize;
-      m_llCurrent = m_llStart;
-      return el.value;
-    }
-    else
-    {
-      Index nextel = llElements[m_llCurrent].next;
-      eigen_assert(i>=llElements[m_llCurrent].index && "you must call restart() before inserting an element with lower or equal index");
-      while (nextel >= 0 && llElements[nextel].index<=i)
-      {
-        m_llCurrent = nextel;
-        nextel = llElements[nextel].next;
-      }
-
-      if (llElements[m_llCurrent].index==i)
-      {
-        // the coefficient already exists and we found it !
-        return llElements[m_llCurrent].value;
-      }
-      else
-      {
-        if (m_llSize>=m_allocatedElements)
-        {
-          reallocateSparse();
-          llElements = reinterpret_cast<ListEl*>(m_buffer);
-        }
-        eigen_internal_assert(m_llSize<m_allocatedElements && "internal error: overflow in sparse mode");
-        // let's insert a new coefficient
-        ListEl& el = llElements[m_llSize];
-        el.value = Scalar(0);
-        el.index = i;
-        el.next = llElements[m_llCurrent].next;
-        llElements[m_llCurrent].next = m_llSize;
-        ++m_llSize;
-        return el.value;
-      }
-    }
-  }
-}
-
-template<typename _Scalar,typename _Index>
-_Scalar& AmbiVector<_Scalar,_Index>::coeff(_Index i)
-{
-  if (m_mode==IsDense)
-    return m_buffer[i];
-  else
-  {
-    ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_buffer);
-    eigen_assert(m_mode==IsSparse);
-    if ((m_llSize==0) || (i<llElements[m_llStart].index))
-    {
-      return m_zero;
-    }
-    else
-    {
-      Index elid = m_llStart;
-      while (elid >= 0 && llElements[elid].index<i)
-        elid = llElements[elid].next;
-
-      if (llElements[elid].index==i)
-        return llElements[m_llCurrent].value;
-      else
-        return m_zero;
-    }
-  }
-}
-
-/** Iterator over the nonzero coefficients */
-template<typename _Scalar,typename _Index>
-class AmbiVector<_Scalar,_Index>::Iterator
-{
-  public:
-    typedef _Scalar Scalar;
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-
-    /** Default constructor
-      * \param vec the vector on which we iterate
-      * \param epsilon the minimal value used to prune zero coefficients.
-      * In practice, all coefficients having a magnitude smaller than \a epsilon
-      * are skipped.
-      */
-    Iterator(const AmbiVector& vec, const RealScalar& epsilon = 0)
-      : m_vector(vec)
-    {
-      using std::abs;
-      m_epsilon = epsilon;
-      m_isDense = m_vector.m_mode==IsDense;
-      if (m_isDense)
-      {
-        m_currentEl = 0;   // this is to avoid a compilation warning
-        m_cachedValue = 0; // this is to avoid a compilation warning
-        m_cachedIndex = m_vector.m_start-1;
-        ++(*this);
-      }
-      else
-      {
-        ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_vector.m_buffer);
-        m_currentEl = m_vector.m_llStart;
-        while (m_currentEl>=0 && abs(llElements[m_currentEl].value)<=m_epsilon)
-          m_currentEl = llElements[m_currentEl].next;
-        if (m_currentEl<0)
-        {
-          m_cachedValue = 0; // this is to avoid a compilation warning
-          m_cachedIndex = -1;
-        }
-        else
-        {
-          m_cachedIndex = llElements[m_currentEl].index;
-          m_cachedValue = llElements[m_currentEl].value;
-        }
-      }
-    }
-
-    Index index() const { return m_cachedIndex; }
-    Scalar value() const { return m_cachedValue; }
-
-    operator bool() const { return m_cachedIndex>=0; }
-
-    Iterator& operator++()
-    {
-      using std::abs;
-      if (m_isDense)
-      {
-        do {
-          ++m_cachedIndex;
-        } while (m_cachedIndex<m_vector.m_end && abs(m_vector.m_buffer[m_cachedIndex])<m_epsilon);
-        if (m_cachedIndex<m_vector.m_end)
-          m_cachedValue = m_vector.m_buffer[m_cachedIndex];
-        else
-          m_cachedIndex=-1;
-      }
-      else
-      {
-        ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_vector.m_buffer);
-        do {
-          m_currentEl = llElements[m_currentEl].next;
-        } while (m_currentEl>=0 && abs(llElements[m_currentEl].value)<m_epsilon);
-        if (m_currentEl<0)
-        {
-          m_cachedIndex = -1;
-        }
-        else
-        {
-          m_cachedIndex = llElements[m_currentEl].index;
-          m_cachedValue = llElements[m_currentEl].value;
-        }
-      }
-      return *this;
-    }
-
-  protected:
-    const AmbiVector& m_vector; // the target vector
-    Index m_currentEl;            // the current element in sparse/linked-list mode
-    RealScalar m_epsilon;       // epsilon used to prune zero coefficients
-    Index m_cachedIndex;          // current coordinate
-    Scalar m_cachedValue;       // current value
-    bool m_isDense;             // mode of the vector
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_AMBIVECTOR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/CompressedStorage.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/CompressedStorage.h
deleted file mode 100644
index 3321fab..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/CompressedStorage.h
+++ /dev/null
@@ -1,233 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_COMPRESSED_STORAGE_H
-#define EIGEN_COMPRESSED_STORAGE_H
-
-namespace Eigen { 
-
-namespace internal {
-
-/** \internal
-  * Stores a sparse set of values as a list of values and a list of indices.
-  *
-  */
-template<typename _Scalar,typename _Index>
-class CompressedStorage
-{
-  public:
-
-    typedef _Scalar Scalar;
-    typedef _Index Index;
-
-  protected:
-
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-
-  public:
-
-    CompressedStorage()
-      : m_values(0), m_indices(0), m_size(0), m_allocatedSize(0)
-    {}
-
-    CompressedStorage(size_t size)
-      : m_values(0), m_indices(0), m_size(0), m_allocatedSize(0)
-    {
-      resize(size);
-    }
-
-    CompressedStorage(const CompressedStorage& other)
-      : m_values(0), m_indices(0), m_size(0), m_allocatedSize(0)
-    {
-      *this = other;
-    }
-
-    CompressedStorage& operator=(const CompressedStorage& other)
-    {
-      resize(other.size());
-      memcpy(m_values, other.m_values, m_size * sizeof(Scalar));
-      memcpy(m_indices, other.m_indices, m_size * sizeof(Index));
-      return *this;
-    }
-
-    void swap(CompressedStorage& other)
-    {
-      std::swap(m_values, other.m_values);
-      std::swap(m_indices, other.m_indices);
-      std::swap(m_size, other.m_size);
-      std::swap(m_allocatedSize, other.m_allocatedSize);
-    }
-
-    ~CompressedStorage()
-    {
-      delete[] m_values;
-      delete[] m_indices;
-    }
-
-    void reserve(size_t size)
-    {
-      size_t newAllocatedSize = m_size + size;
-      if (newAllocatedSize > m_allocatedSize)
-        reallocate(newAllocatedSize);
-    }
-
-    void squeeze()
-    {
-      if (m_allocatedSize>m_size)
-        reallocate(m_size);
-    }
-
-    void resize(size_t size, float reserveSizeFactor = 0)
-    {
-      if (m_allocatedSize<size)
-        reallocate(size + size_t(reserveSizeFactor*size));
-      m_size = size;
-    }
-
-    void append(const Scalar& v, Index i)
-    {
-      Index id = static_cast<Index>(m_size);
-      resize(m_size+1, 1);
-      m_values[id] = v;
-      m_indices[id] = i;
-    }
-
-    inline size_t size() const { return m_size; }
-    inline size_t allocatedSize() const { return m_allocatedSize; }
-    inline void clear() { m_size = 0; }
-
-    inline Scalar& value(size_t i) { return m_values[i]; }
-    inline const Scalar& value(size_t i) const { return m_values[i]; }
-
-    inline Index& index(size_t i) { return m_indices[i]; }
-    inline const Index& index(size_t i) const { return m_indices[i]; }
-
-    static CompressedStorage Map(Index* indices, Scalar* values, size_t size)
-    {
-      CompressedStorage res;
-      res.m_indices = indices;
-      res.m_values = values;
-      res.m_allocatedSize = res.m_size = size;
-      return res;
-    }
-
-    /** \returns the largest \c k such that for all \c j in [0,k) index[\c j]\<\a key */
-    inline Index searchLowerIndex(Index key) const
-    {
-      return searchLowerIndex(0, m_size, key);
-    }
-
-    /** \returns the largest \c k in [start,end) such that for all \c j in [start,k) index[\c j]\<\a key */
-    inline Index searchLowerIndex(size_t start, size_t end, Index key) const
-    {
-      while(end>start)
-      {
-        size_t mid = (end+start)>>1;
-        if (m_indices[mid]<key)
-          start = mid+1;
-        else
-          end = mid;
-      }
-      return static_cast<Index>(start);
-    }
-
-    /** \returns the stored value at index \a key
-      * If the value does not exist, then the value \a defaultValue is returned without any insertion. */
-    inline Scalar at(Index key, const Scalar& defaultValue = Scalar(0)) const
-    {
-      if (m_size==0)
-        return defaultValue;
-      else if (key==m_indices[m_size-1])
-        return m_values[m_size-1];
-      // ^^  optimization: let's first check if it is the last coefficient
-      // (very common in high level algorithms)
-      const size_t id = searchLowerIndex(0,m_size-1,key);
-      return ((id<m_size) && (m_indices[id]==key)) ? m_values[id] : defaultValue;
-    }
-
-    /** Like at(), but the search is performed in the range [start,end) */
-    inline Scalar atInRange(size_t start, size_t end, Index key, const Scalar& defaultValue = Scalar(0)) const
-    {
-      if (start>=end)
-        return Scalar(0);
-      else if (end>start && key==m_indices[end-1])
-        return m_values[end-1];
-      // ^^  optimization: let's first check if it is the last coefficient
-      // (very common in high level algorithms)
-      const size_t id = searchLowerIndex(start,end-1,key);
-      return ((id<end) && (m_indices[id]==key)) ? m_values[id] : defaultValue;
-    }
-
-    /** \returns a reference to the value at index \a key
-      * If the value does not exist, then the value \a defaultValue is inserted
-      * such that the keys are sorted. */
-    inline Scalar& atWithInsertion(Index key, const Scalar& defaultValue = Scalar(0))
-    {
-      size_t id = searchLowerIndex(0,m_size,key);
-      if (id>=m_size || m_indices[id]!=key)
-      {
-        resize(m_size+1,1);
-        for (size_t j=m_size-1; j>id; --j)
-        {
-          m_indices[j] = m_indices[j-1];
-          m_values[j] = m_values[j-1];
-        }
-        m_indices[id] = key;
-        m_values[id] = defaultValue;
-      }
-      return m_values[id];
-    }
-
-    void prune(const Scalar& reference, const RealScalar& epsilon = NumTraits<RealScalar>::dummy_precision())
-    {
-      size_t k = 0;
-      size_t n = size();
-      for (size_t i=0; i<n; ++i)
-      {
-        if (!internal::isMuchSmallerThan(value(i), reference, epsilon))
-        {
-          value(k) = value(i);
-          index(k) = index(i);
-          ++k;
-        }
-      }
-      resize(k,0);
-    }
-
-  protected:
-
-    inline void reallocate(size_t size)
-    {
-      Scalar* newValues  = new Scalar[size];
-      Index* newIndices = new Index[size];
-      size_t copySize = (std::min)(size, m_size);
-      // copy
-      internal::smart_copy(m_values, m_values+copySize, newValues);
-      internal::smart_copy(m_indices, m_indices+copySize, newIndices);
-      // delete old stuff
-      delete[] m_values;
-      delete[] m_indices;
-      m_values = newValues;
-      m_indices = newIndices;
-      m_allocatedSize = size;
-    }
-
-  protected:
-    Scalar* m_values;
-    Index* m_indices;
-    size_t m_size;
-    size_t m_allocatedSize;
-
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_COMPRESSED_STORAGE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
deleted file mode 100644
index 4b13f08..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
+++ /dev/null
@@ -1,245 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_CONSERVATIVESPARSESPARSEPRODUCT_H
-#define EIGEN_CONSERVATIVESPARSESPARSEPRODUCT_H
-
-namespace Eigen { 
-
-namespace internal {
-
-template<typename Lhs, typename Rhs, typename ResultType>
-static void conservative_sparse_sparse_product_impl(const Lhs& lhs, const Rhs& rhs, ResultType& res)
-{
-  typedef typename remove_all<Lhs>::type::Scalar Scalar;
-  typedef typename remove_all<Lhs>::type::Index Index;
-
-  // make sure to call innerSize/outerSize since we fake the storage order.
-  Index rows = lhs.innerSize();
-  Index cols = rhs.outerSize();
-  eigen_assert(lhs.outerSize() == rhs.innerSize());
-
-  std::vector<bool> mask(rows,false);
-  Matrix<Scalar,Dynamic,1> values(rows);
-  Matrix<Index,Dynamic,1>  indices(rows);
-
-  // estimate the number of non zero entries
-  // given a rhs column containing Y non zeros, we assume that the respective Y columns
-  // of the lhs differs in average of one non zeros, thus the number of non zeros for
-  // the product of a rhs column with the lhs is X+Y where X is the average number of non zero
-  // per column of the lhs.
-  // Therefore, we have nnz(lhs*rhs) = nnz(lhs) + nnz(rhs)
-  Index estimated_nnz_prod = lhs.nonZeros() + rhs.nonZeros();
-
-  res.setZero();
-  res.reserve(Index(estimated_nnz_prod));
-  // we compute each column of the result, one after the other
-  for (Index j=0; j<cols; ++j)
-  {
-
-    res.startVec(j);
-    Index nnz = 0;
-    for (typename Rhs::InnerIterator rhsIt(rhs, j); rhsIt; ++rhsIt)
-    {
-      Scalar y = rhsIt.value();
-      Index k = rhsIt.index();
-      for (typename Lhs::InnerIterator lhsIt(lhs, k); lhsIt; ++lhsIt)
-      {
-        Index i = lhsIt.index();
-        Scalar x = lhsIt.value();
-        if(!mask[i])
-        {
-          mask[i] = true;
-          values[i] = x * y;
-          indices[nnz] = i;
-          ++nnz;
-        }
-        else
-          values[i] += x * y;
-      }
-    }
-
-    // unordered insertion
-    for(int k=0; k<nnz; ++k)
-    {
-      int i = indices[k];
-      res.insertBackByOuterInnerUnordered(j,i) = values[i];
-      mask[i] = false;
-    }
-
-#if 0
-    // alternative ordered insertion code:
-
-    int t200 = rows/(log2(200)*1.39);
-    int t = (rows*100)/139;
-
-    // FIXME reserve nnz non zeros
-    // FIXME implement fast sort algorithms for very small nnz
-    // if the result is sparse enough => use a quick sort
-    // otherwise => loop through the entire vector
-    // In order to avoid to perform an expensive log2 when the
-    // result is clearly very sparse we use a linear bound up to 200.
-    //if((nnz<200 && nnz<t200) || nnz * log2(nnz) < t)
-    //res.startVec(j);
-    if(true)
-    {
-      if(nnz>1) std::sort(indices.data(),indices.data()+nnz);
-      for(int k=0; k<nnz; ++k)
-      {
-        int i = indices[k];
-        res.insertBackByOuterInner(j,i) = values[i];
-        mask[i] = false;
-      }
-    }
-    else
-    {
-      // dense path
-      for(int i=0; i<rows; ++i)
-      {
-        if(mask[i])
-        {
-          mask[i] = false;
-          res.insertBackByOuterInner(j,i) = values[i];
-        }
-      }
-    }
-#endif
-
-  }
-  res.finalize();
-}
-
-
-} // end namespace internal
-
-namespace internal {
-
-template<typename Lhs, typename Rhs, typename ResultType,
-  int LhsStorageOrder = (traits<Lhs>::Flags&RowMajorBit) ? RowMajor : ColMajor,
-  int RhsStorageOrder = (traits<Rhs>::Flags&RowMajorBit) ? RowMajor : ColMajor,
-  int ResStorageOrder = (traits<ResultType>::Flags&RowMajorBit) ? RowMajor : ColMajor>
-struct conservative_sparse_sparse_product_selector;
-
-template<typename Lhs, typename Rhs, typename ResultType>
-struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,ColMajor>
-{
-  typedef typename remove_all<Lhs>::type LhsCleaned;
-  typedef typename LhsCleaned::Scalar Scalar;
-
-  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
-  {
-    typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
-    typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
-    ColMajorMatrix resCol(lhs.rows(),rhs.cols());
-    internal::conservative_sparse_sparse_product_impl<Lhs,Rhs,ColMajorMatrix>(lhs, rhs, resCol);
-    // sort the non zeros:
-    RowMajorMatrix resRow(resCol);
-    res = resRow;
-  }
-};
-
-template<typename Lhs, typename Rhs, typename ResultType>
-struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,ColMajor,ColMajor>
-{
-  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
-  {
-     typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
-     RowMajorMatrix rhsRow = rhs;
-     RowMajorMatrix resRow(lhs.rows(), rhs.cols());
-     internal::conservative_sparse_sparse_product_impl<RowMajorMatrix,Lhs,RowMajorMatrix>(rhsRow, lhs, resRow);
-     res = resRow;
-  }
-};
-
-template<typename Lhs, typename Rhs, typename ResultType>
-struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,RowMajor,ColMajor>
-{
-  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
-  {
-    typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
-    RowMajorMatrix lhsRow = lhs;
-    RowMajorMatrix resRow(lhs.rows(), rhs.cols());
-    internal::conservative_sparse_sparse_product_impl<Rhs,RowMajorMatrix,RowMajorMatrix>(rhs, lhsRow, resRow);
-    res = resRow;
-  }
-};
-
-template<typename Lhs, typename Rhs, typename ResultType>
-struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,ColMajor>
-{
-  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
-  {
-    typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
-    RowMajorMatrix resRow(lhs.rows(), rhs.cols());
-    internal::conservative_sparse_sparse_product_impl<Rhs,Lhs,RowMajorMatrix>(rhs, lhs, resRow);
-    res = resRow;
-  }
-};
-
-
-template<typename Lhs, typename Rhs, typename ResultType>
-struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,RowMajor>
-{
-  typedef typename traits<typename remove_all<Lhs>::type>::Scalar Scalar;
-
-  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
-  {
-    typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
-    ColMajorMatrix resCol(lhs.rows(), rhs.cols());
-    internal::conservative_sparse_sparse_product_impl<Lhs,Rhs,ColMajorMatrix>(lhs, rhs, resCol);
-    res = resCol;
-  }
-};
-
-template<typename Lhs, typename Rhs, typename ResultType>
-struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,ColMajor,RowMajor>
-{
-  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
-  {
-    typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
-    ColMajorMatrix lhsCol = lhs;
-    ColMajorMatrix resCol(lhs.rows(), rhs.cols());
-    internal::conservative_sparse_sparse_product_impl<ColMajorMatrix,Rhs,ColMajorMatrix>(lhsCol, rhs, resCol);
-    res = resCol;
-  }
-};
-
-template<typename Lhs, typename Rhs, typename ResultType>
-struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,RowMajor,RowMajor>
-{
-  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
-  {
-    typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
-    ColMajorMatrix rhsCol = rhs;
-    ColMajorMatrix resCol(lhs.rows(), rhs.cols());
-    internal::conservative_sparse_sparse_product_impl<Lhs,ColMajorMatrix,ColMajorMatrix>(lhs, rhsCol, resCol);
-    res = resCol;
-  }
-};
-
-template<typename Lhs, typename Rhs, typename ResultType>
-struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,RowMajor>
-{
-  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
-  {
-    typedef SparseMatrix<typename ResultType::Scalar,RowMajor> RowMajorMatrix;
-    typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
-    RowMajorMatrix resRow(lhs.rows(),rhs.cols());
-    internal::conservative_sparse_sparse_product_impl<Rhs,Lhs,RowMajorMatrix>(rhs, lhs, resRow);
-    // sort the non zeros:
-    ColMajorMatrix resCol(resRow);
-    res = resCol;
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_CONSERVATIVESPARSESPARSEPRODUCT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/CoreIterators.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/CoreIterators.h
deleted file mode 100644
index 6da4683..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/CoreIterators.h
+++ /dev/null
@@ -1,61 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_COREITERATORS_H
-#define EIGEN_COREITERATORS_H
-
-namespace Eigen { 
-
-/* This file contains the respective InnerIterator definition of the expressions defined in Eigen/Core
- */
-
-/** \ingroup SparseCore_Module
-  * \class InnerIterator
-  * \brief An InnerIterator allows to loop over the element of a sparse (or dense) matrix or expression
-  *
-  * todo
-  */
-
-// generic version for dense matrix and expressions
-template<typename Derived> class DenseBase<Derived>::InnerIterator
-{
-  protected:
-    typedef typename Derived::Scalar Scalar;
-    typedef typename Derived::Index Index;
-
-    enum { IsRowMajor = (Derived::Flags&RowMajorBit)==RowMajorBit };
-  public:
-    EIGEN_STRONG_INLINE InnerIterator(const Derived& expr, Index outer)
-      : m_expression(expr), m_inner(0), m_outer(outer), m_end(expr.innerSize())
-    {}
-
-    EIGEN_STRONG_INLINE Scalar value() const
-    {
-      return (IsRowMajor) ? m_expression.coeff(m_outer, m_inner)
-                          : m_expression.coeff(m_inner, m_outer);
-    }
-
-    EIGEN_STRONG_INLINE InnerIterator& operator++() { m_inner++; return *this; }
-
-    EIGEN_STRONG_INLINE Index index() const { return m_inner; }
-    inline Index row() const { return IsRowMajor ? m_outer : index(); }
-    inline Index col() const { return IsRowMajor ? index() : m_outer; }
-
-    EIGEN_STRONG_INLINE operator bool() const { return m_inner < m_end && m_inner>=0; }
-
-  protected:
-    const Derived& m_expression;
-    Index m_inner;
-    const Index m_outer;
-    const Index m_end;
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_COREITERATORS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/MappedSparseMatrix.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/MappedSparseMatrix.h
deleted file mode 100644
index 93cd483..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/MappedSparseMatrix.h
+++ /dev/null
@@ -1,179 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_MAPPED_SPARSEMATRIX_H
-#define EIGEN_MAPPED_SPARSEMATRIX_H
-
-namespace Eigen { 
-
-/** \class MappedSparseMatrix
-  *
-  * \brief Sparse matrix
-  *
-  * \param _Scalar the scalar type, i.e. the type of the coefficients
-  *
-  * See http://www.netlib.org/linalg/html_templates/node91.html for details on the storage scheme.
-  *
-  */
-namespace internal {
-template<typename _Scalar, int _Flags, typename _Index>
-struct traits<MappedSparseMatrix<_Scalar, _Flags, _Index> > : traits<SparseMatrix<_Scalar, _Flags, _Index> >
-{};
-}
-
-template<typename _Scalar, int _Flags, typename _Index>
-class MappedSparseMatrix
-  : public SparseMatrixBase<MappedSparseMatrix<_Scalar, _Flags, _Index> >
-{
-  public:
-    EIGEN_SPARSE_PUBLIC_INTERFACE(MappedSparseMatrix)
-    enum { IsRowMajor = Base::IsRowMajor };
-
-  protected:
-
-    Index   m_outerSize;
-    Index   m_innerSize;
-    Index   m_nnz;
-    Index*  m_outerIndex;
-    Index*  m_innerIndices;
-    Scalar* m_values;
-
-  public:
-
-    inline Index rows() const { return IsRowMajor ? m_outerSize : m_innerSize; }
-    inline Index cols() const { return IsRowMajor ? m_innerSize : m_outerSize; }
-    inline Index innerSize() const { return m_innerSize; }
-    inline Index outerSize() const { return m_outerSize; }
-
-    //----------------------------------------
-    // direct access interface
-    inline const Scalar* valuePtr() const { return m_values; }
-    inline Scalar* valuePtr() { return m_values; }
-
-    inline const Index* innerIndexPtr() const { return m_innerIndices; }
-    inline Index* innerIndexPtr() { return m_innerIndices; }
-
-    inline const Index* outerIndexPtr() const { return m_outerIndex; }
-    inline Index* outerIndexPtr() { return m_outerIndex; }
-    //----------------------------------------
-
-    inline Scalar coeff(Index row, Index col) const
-    {
-      const Index outer = IsRowMajor ? row : col;
-      const Index inner = IsRowMajor ? col : row;
-
-      Index start = m_outerIndex[outer];
-      Index end = m_outerIndex[outer+1];
-      if (start==end)
-        return Scalar(0);
-      else if (end>0 && inner==m_innerIndices[end-1])
-        return m_values[end-1];
-      // ^^  optimization: let's first check if it is the last coefficient
-      // (very common in high level algorithms)
-
-      const Index* r = std::lower_bound(&m_innerIndices[start],&m_innerIndices[end-1],inner);
-      const Index id = r-&m_innerIndices[0];
-      return ((*r==inner) && (id<end)) ? m_values[id] : Scalar(0);
-    }
-
-    inline Scalar& coeffRef(Index row, Index col)
-    {
-      const Index outer = IsRowMajor ? row : col;
-      const Index inner = IsRowMajor ? col : row;
-
-      Index start = m_outerIndex[outer];
-      Index end = m_outerIndex[outer+1];
-      eigen_assert(end>=start && "you probably called coeffRef on a non finalized matrix");
-      eigen_assert(end>start && "coeffRef cannot be called on a zero coefficient");
-      Index* r = std::lower_bound(&m_innerIndices[start],&m_innerIndices[end],inner);
-      const Index id = r-&m_innerIndices[0];
-      eigen_assert((*r==inner) && (id<end) && "coeffRef cannot be called on a zero coefficient");
-      return m_values[id];
-    }
-
-    class InnerIterator;
-    class ReverseInnerIterator;
-
-    /** \returns the number of non zero coefficients */
-    inline Index nonZeros() const  { return m_nnz; }
-
-    inline MappedSparseMatrix(Index rows, Index cols, Index nnz, Index* outerIndexPtr, Index* innerIndexPtr, Scalar* valuePtr)
-      : m_outerSize(IsRowMajor?rows:cols), m_innerSize(IsRowMajor?cols:rows), m_nnz(nnz), m_outerIndex(outerIndexPtr),
-        m_innerIndices(innerIndexPtr), m_values(valuePtr)
-    {}
-
-    /** Empty destructor */
-    inline ~MappedSparseMatrix() {}
-};
-
-template<typename Scalar, int _Flags, typename _Index>
-class MappedSparseMatrix<Scalar,_Flags,_Index>::InnerIterator
-{
-  public:
-    InnerIterator(const MappedSparseMatrix& mat, Index outer)
-      : m_matrix(mat),
-        m_outer(outer),
-        m_id(mat.outerIndexPtr()[outer]),
-        m_start(m_id),
-        m_end(mat.outerIndexPtr()[outer+1])
-    {}
-
-    inline InnerIterator& operator++() { m_id++; return *this; }
-
-    inline Scalar value() const { return m_matrix.valuePtr()[m_id]; }
-    inline Scalar& valueRef() { return const_cast<Scalar&>(m_matrix.valuePtr()[m_id]); }
-
-    inline Index index() const { return m_matrix.innerIndexPtr()[m_id]; }
-    inline Index row() const { return IsRowMajor ? m_outer : index(); }
-    inline Index col() const { return IsRowMajor ? index() : m_outer; }
-
-    inline operator bool() const { return (m_id < m_end) && (m_id>=m_start); }
-
-  protected:
-    const MappedSparseMatrix& m_matrix;
-    const Index m_outer;
-    Index m_id;
-    const Index m_start;
-    const Index m_end;
-};
-
-template<typename Scalar, int _Flags, typename _Index>
-class MappedSparseMatrix<Scalar,_Flags,_Index>::ReverseInnerIterator
-{
-  public:
-    ReverseInnerIterator(const MappedSparseMatrix& mat, Index outer)
-      : m_matrix(mat),
-        m_outer(outer),
-        m_id(mat.outerIndexPtr()[outer+1]),
-        m_start(mat.outerIndexPtr()[outer]),
-        m_end(m_id)
-    {}
-
-    inline ReverseInnerIterator& operator--() { m_id--; return *this; }
-
-    inline Scalar value() const { return m_matrix.valuePtr()[m_id-1]; }
-    inline Scalar& valueRef() { return const_cast<Scalar&>(m_matrix.valuePtr()[m_id-1]); }
-
-    inline Index index() const { return m_matrix.innerIndexPtr()[m_id-1]; }
-    inline Index row() const { return IsRowMajor ? m_outer : index(); }
-    inline Index col() const { return IsRowMajor ? index() : m_outer; }
-
-    inline operator bool() const { return (m_id <= m_end) && (m_id>m_start); }
-
-  protected:
-    const MappedSparseMatrix& m_matrix;
-    const Index m_outer;
-    Index m_id;
-    const Index m_start;
-    const Index m_end;
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_MAPPED_SPARSEMATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseAssign.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseAssign.h
deleted file mode 100644
index e69de29..0000000
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseBlock.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseBlock.h
deleted file mode 100644
index e025e4d..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseBlock.h
+++ /dev/null
@@ -1,403 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSE_BLOCK_H
-#define EIGEN_SPARSE_BLOCK_H
-
-namespace Eigen { 
-
-template<typename XprType, int BlockRows, int BlockCols>
-class BlockImpl<XprType,BlockRows,BlockCols,true,Sparse>
-  : public SparseMatrixBase<Block<XprType,BlockRows,BlockCols,true> >
-{
-    typedef typename internal::remove_all<typename XprType::Nested>::type _MatrixTypeNested;
-    typedef Block<XprType, BlockRows, BlockCols, true> BlockType;
-public:
-    enum { IsRowMajor = internal::traits<BlockType>::IsRowMajor };
-protected:
-    enum { OuterSize = IsRowMajor ? BlockRows : BlockCols };
-public:
-    EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType)
-    
-    class InnerIterator: public XprType::InnerIterator
-    {
-      public:
-        inline InnerIterator(const BlockType& xpr, Index outer)
-          : XprType::InnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
-        {}
-        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
-        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
-      protected:
-        Index m_outer;
-    };
-    class ReverseInnerIterator: public XprType::ReverseInnerIterator
-    {
-      public:
-        inline ReverseInnerIterator(const BlockType& xpr, Index outer)
-          : XprType::ReverseInnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
-        {}
-        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
-        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
-      protected:
-        Index m_outer;
-    };
-
-    inline BlockImpl(const XprType& xpr, int i)
-      : m_matrix(xpr), m_outerStart(i), m_outerSize(OuterSize)
-    {}
-
-    inline BlockImpl(const XprType& xpr, int startRow, int startCol, int blockRows, int blockCols)
-      : m_matrix(xpr), m_outerStart(IsRowMajor ? startRow : startCol), m_outerSize(IsRowMajor ? blockRows : blockCols)
-    {}
-
-    EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); }
-    EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); }
-
-  protected:
-
-    typename XprType::Nested m_matrix;
-    Index m_outerStart;
-    const internal::variable_if_dynamic<Index, OuterSize> m_outerSize;
-};
-
-
-/***************************************************************************
-* specialisation for SparseMatrix
-***************************************************************************/
-
-template<typename _Scalar, int _Options, typename _Index, int BlockRows, int BlockCols>
-class BlockImpl<SparseMatrix<_Scalar, _Options, _Index>,BlockRows,BlockCols,true,Sparse>
-  : public SparseMatrixBase<Block<SparseMatrix<_Scalar, _Options, _Index>,BlockRows,BlockCols,true> >
-{
-    typedef SparseMatrix<_Scalar, _Options, _Index> SparseMatrixType;
-    typedef typename internal::remove_all<typename SparseMatrixType::Nested>::type _MatrixTypeNested;
-    typedef Block<SparseMatrixType, BlockRows, BlockCols, true> BlockType;
-public:
-    enum { IsRowMajor = internal::traits<BlockType>::IsRowMajor };
-    EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType)
-protected:
-    enum { OuterSize = IsRowMajor ? BlockRows : BlockCols };
-public:
-    
-    class InnerIterator: public SparseMatrixType::InnerIterator
-    {
-      public:
-        inline InnerIterator(const BlockType& xpr, Index outer)
-          : SparseMatrixType::InnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
-        {}
-        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
-        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
-      protected:
-        Index m_outer;
-    };
-    class ReverseInnerIterator: public SparseMatrixType::ReverseInnerIterator
-    {
-      public:
-        inline ReverseInnerIterator(const BlockType& xpr, Index outer)
-          : SparseMatrixType::ReverseInnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
-        {}
-        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
-        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
-      protected:
-        Index m_outer;
-    };
-
-    inline BlockImpl(const SparseMatrixType& xpr, int i)
-      : m_matrix(xpr), m_outerStart(i), m_outerSize(OuterSize)
-    {}
-
-    inline BlockImpl(const SparseMatrixType& xpr, int startRow, int startCol, int blockRows, int blockCols)
-      : m_matrix(xpr), m_outerStart(IsRowMajor ? startRow : startCol), m_outerSize(IsRowMajor ? blockRows : blockCols)
-    {}
-
-    template<typename OtherDerived>
-    inline BlockType& operator=(const SparseMatrixBase<OtherDerived>& other)
-    {
-      typedef typename internal::remove_all<typename SparseMatrixType::Nested>::type _NestedMatrixType;
-      _NestedMatrixType& matrix = const_cast<_NestedMatrixType&>(m_matrix);;
-      // This assignement is slow if this vector set is not empty
-      // and/or it is not at the end of the nonzeros of the underlying matrix.
-
-      // 1 - eval to a temporary to avoid transposition and/or aliasing issues
-      SparseMatrix<Scalar, IsRowMajor ? RowMajor : ColMajor, Index> tmp(other);
-
-      // 2 - let's check whether there is enough allocated memory
-      Index nnz           = tmp.nonZeros();
-      Index start         = m_outerStart==0 ? 0 : matrix.outerIndexPtr()[m_outerStart]; // starting position of the current block
-      Index end           = m_matrix.outerIndexPtr()[m_outerStart+m_outerSize.value()]; // ending posiiton of the current block
-      Index block_size    = end - start;                                                // available room in the current block
-      Index tail_size     = m_matrix.outerIndexPtr()[m_matrix.outerSize()] - end;
-      
-      Index free_size     = m_matrix.isCompressed()
-                          ? Index(matrix.data().allocatedSize()) + block_size
-                          : block_size;
-
-      if(nnz>free_size) 
-      {
-        // realloc manually to reduce copies
-        typename SparseMatrixType::Storage newdata(m_matrix.data().allocatedSize() - block_size + nnz);
-
-        std::memcpy(&newdata.value(0), &m_matrix.data().value(0), start*sizeof(Scalar));
-        std::memcpy(&newdata.index(0), &m_matrix.data().index(0), start*sizeof(Index));
-
-        std::memcpy(&newdata.value(start), &tmp.data().value(0), nnz*sizeof(Scalar));
-        std::memcpy(&newdata.index(start), &tmp.data().index(0), nnz*sizeof(Index));
-
-        std::memcpy(&newdata.value(start+nnz), &matrix.data().value(end), tail_size*sizeof(Scalar));
-        std::memcpy(&newdata.index(start+nnz), &matrix.data().index(end), tail_size*sizeof(Index));
-        
-        newdata.resize(m_matrix.outerIndexPtr()[m_matrix.outerSize()] - block_size + nnz);
-
-        matrix.data().swap(newdata);
-      }
-      else
-      {
-        // no need to realloc, simply copy the tail at its respective position and insert tmp
-        matrix.data().resize(start + nnz + tail_size);
-
-        std::memmove(&matrix.data().value(start+nnz), &matrix.data().value(end), tail_size*sizeof(Scalar));
-        std::memmove(&matrix.data().index(start+nnz), &matrix.data().index(end), tail_size*sizeof(Index));
-
-        std::memcpy(&matrix.data().value(start), &tmp.data().value(0), nnz*sizeof(Scalar));
-        std::memcpy(&matrix.data().index(start), &tmp.data().index(0), nnz*sizeof(Index));
-      }
-      
-      // update innerNonZeros
-      if(!m_matrix.isCompressed())
-        for(Index j=0; j<m_outerSize.value(); ++j)
-          matrix.innerNonZeroPtr()[m_outerStart+j] = tmp.innerVector(j).nonZeros();
-
-      // update outer index pointers
-      Index p = start;
-      for(Index k=0; k<m_outerSize.value(); ++k)
-      {
-        matrix.outerIndexPtr()[m_outerStart+k] = p;
-        p += tmp.innerVector(k).nonZeros();
-      }
-      std::ptrdiff_t offset = nnz - block_size;
-      for(Index k = m_outerStart + m_outerSize.value(); k<=matrix.outerSize(); ++k)
-      {
-        matrix.outerIndexPtr()[k] += offset;
-      }
-
-      return derived();
-    }
-
-    inline BlockType& operator=(const BlockType& other)
-    {
-      return operator=<BlockType>(other);
-    }
-
-    inline const Scalar* valuePtr() const
-    { return m_matrix.valuePtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
-    inline Scalar* valuePtr()
-    { return m_matrix.const_cast_derived().valuePtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
-
-    inline const Index* innerIndexPtr() const
-    { return m_matrix.innerIndexPtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
-    inline Index* innerIndexPtr()
-    { return m_matrix.const_cast_derived().innerIndexPtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
-
-    inline const Index* outerIndexPtr() const
-    { return m_matrix.outerIndexPtr() + m_outerStart; }
-    inline Index* outerIndexPtr()
-    { return m_matrix.const_cast_derived().outerIndexPtr() + m_outerStart; }
-
-    Index nonZeros() const
-    {
-      if(m_matrix.isCompressed())
-        return  std::size_t(m_matrix.outerIndexPtr()[m_outerStart+m_outerSize.value()])
-              - std::size_t(m_matrix.outerIndexPtr()[m_outerStart]);
-      else if(m_outerSize.value()==0)
-        return 0;
-      else
-        return Map<const Matrix<Index,OuterSize,1> >(m_matrix.innerNonZeroPtr()+m_outerStart, m_outerSize.value()).sum();
-    }
-
-    const Scalar& lastCoeff() const
-    {
-      EIGEN_STATIC_ASSERT_VECTOR_ONLY(BlockImpl);
-      eigen_assert(nonZeros()>0);
-      if(m_matrix.isCompressed())
-        return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart+1]-1];
-      else
-        return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart]+m_matrix.innerNonZeroPtr()[m_outerStart]-1];
-    }
-
-    EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); }
-    EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); }
-
-  protected:
-
-    typename SparseMatrixType::Nested m_matrix;
-    Index m_outerStart;
-    const internal::variable_if_dynamic<Index, OuterSize> m_outerSize;
-
-};
-
-//----------
-
-/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
-  * is col-major (resp. row-major).
-  */
-template<typename Derived>
-typename SparseMatrixBase<Derived>::InnerVectorReturnType SparseMatrixBase<Derived>::innerVector(Index outer)
-{ return InnerVectorReturnType(derived(), outer); }
-
-/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
-  * is col-major (resp. row-major). Read-only.
-  */
-template<typename Derived>
-const typename SparseMatrixBase<Derived>::ConstInnerVectorReturnType SparseMatrixBase<Derived>::innerVector(Index outer) const
-{ return ConstInnerVectorReturnType(derived(), outer); }
-
-/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
-  * is col-major (resp. row-major).
-  */
-template<typename Derived>
-Block<Derived,Dynamic,Dynamic,true> SparseMatrixBase<Derived>::innerVectors(Index outerStart, Index outerSize)
-{
-  return Block<Derived,Dynamic,Dynamic,true>(derived(),
-                                             IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart,
-                                             IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize);
-  
-}
-
-/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
-  * is col-major (resp. row-major). Read-only.
-  */
-template<typename Derived>
-const Block<const Derived,Dynamic,Dynamic,true> SparseMatrixBase<Derived>::innerVectors(Index outerStart, Index outerSize) const
-{
-  return Block<const Derived,Dynamic,Dynamic,true>(derived(),
-                                                  IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart,
-                                                  IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize);
-  
-}
-
-/** Generic implementation of sparse Block expression.
-  * Real-only. 
-  */
-template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
-class BlockImpl<XprType,BlockRows,BlockCols,InnerPanel,Sparse>
-  : public SparseMatrixBase<Block<XprType,BlockRows,BlockCols,InnerPanel> >, internal::no_assignment_operator
-{
-  typedef typename internal::remove_all<typename XprType::Nested>::type _MatrixTypeNested;
-  typedef Block<XprType, BlockRows, BlockCols, InnerPanel> BlockType;
-public:
-    enum { IsRowMajor = internal::traits<BlockType>::IsRowMajor };
-    EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType)
-
-    /** Column or Row constructor
-      */
-    inline BlockImpl(const XprType& xpr, int i)
-      : m_matrix(xpr),
-        m_startRow( (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? i : 0),
-        m_startCol( (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? i : 0),
-        m_blockRows(xpr.rows()),
-        m_blockCols(xpr.cols())
-    {}
-
-    /** Dynamic-size constructor
-      */
-    inline BlockImpl(const XprType& xpr, int startRow, int startCol, int blockRows, int blockCols)
-      : m_matrix(xpr), m_startRow(startRow), m_startCol(startCol), m_blockRows(blockRows), m_blockCols(blockCols)
-    {}
-
-    inline int rows() const { return m_blockRows.value(); }
-    inline int cols() const { return m_blockCols.value(); }
-
-    inline Scalar& coeffRef(int row, int col)
-    {
-      return m_matrix.const_cast_derived()
-               .coeffRef(row + m_startRow.value(), col + m_startCol.value());
-    }
-
-    inline const Scalar coeff(int row, int col) const
-    {
-      return m_matrix.coeff(row + m_startRow.value(), col + m_startCol.value());
-    }
-
-    inline Scalar& coeffRef(int index)
-    {
-      return m_matrix.const_cast_derived()
-             .coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
-                       m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
-    }
-
-    inline const Scalar coeff(int index) const
-    {
-      return m_matrix
-             .coeff(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
-                    m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
-    }
-    
-    inline const _MatrixTypeNested& nestedExpression() const { return m_matrix; }
-    
-    class InnerIterator : public _MatrixTypeNested::InnerIterator
-    {
-      typedef typename _MatrixTypeNested::InnerIterator Base;
-      const BlockType& m_block;
-      Index m_end;
-    public:
-
-      EIGEN_STRONG_INLINE InnerIterator(const BlockType& block, Index outer)
-        : Base(block.derived().nestedExpression(), outer + (IsRowMajor ? block.m_startRow.value() : block.m_startCol.value())),
-          m_block(block),
-          m_end(IsRowMajor ? block.m_startCol.value()+block.m_blockCols.value() : block.m_startRow.value()+block.m_blockRows.value())
-      {
-        while( (Base::operator bool()) && (Base::index() < (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value())) )
-          Base::operator++();
-      }
-
-      inline Index index()  const { return Base::index() - (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value()); }
-      inline Index outer()  const { return Base::outer() - (IsRowMajor ? m_block.m_startRow.value() : m_block.m_startCol.value()); }
-      inline Index row()    const { return Base::row()   - m_block.m_startRow.value(); }
-      inline Index col()    const { return Base::col()   - m_block.m_startCol.value(); }
-      
-      inline operator bool() const { return Base::operator bool() && Base::index() < m_end; }
-    };
-    class ReverseInnerIterator : public _MatrixTypeNested::ReverseInnerIterator
-    {
-      typedef typename _MatrixTypeNested::ReverseInnerIterator Base;
-      const BlockType& m_block;
-      Index m_begin;
-    public:
-
-      EIGEN_STRONG_INLINE ReverseInnerIterator(const BlockType& block, Index outer)
-        : Base(block.derived().nestedExpression(), outer + (IsRowMajor ? block.m_startRow.value() : block.m_startCol.value())),
-          m_block(block),
-          m_begin(IsRowMajor ? block.m_startCol.value() : block.m_startRow.value())
-      {
-        while( (Base::operator bool()) && (Base::index() >= (IsRowMajor ? m_block.m_startCol.value()+block.m_blockCols.value() : m_block.m_startRow.value()+block.m_blockRows.value())) )
-          Base::operator--();
-      }
-
-      inline Index index()  const { return Base::index() - (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value()); }
-      inline Index outer()  const { return Base::outer() - (IsRowMajor ? m_block.m_startRow.value() : m_block.m_startCol.value()); }
-      inline Index row()    const { return Base::row()   - m_block.m_startRow.value(); }
-      inline Index col()    const { return Base::col()   - m_block.m_startCol.value(); }
-      
-      inline operator bool() const { return Base::operator bool() && Base::index() >= m_begin; }
-    };
-  protected:
-    friend class InnerIterator;
-    friend class ReverseInnerIterator;
-
-    typename XprType::Nested m_matrix;
-    const internal::variable_if_dynamic<Index, XprType::RowsAtCompileTime == 1 ? 0 : Dynamic> m_startRow;
-    const internal::variable_if_dynamic<Index, XprType::ColsAtCompileTime == 1 ? 0 : Dynamic> m_startCol;
-    const internal::variable_if_dynamic<Index, RowsAtCompileTime> m_blockRows;
-    const internal::variable_if_dynamic<Index, ColsAtCompileTime> m_blockCols;
-
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSE_BLOCK_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseColEtree.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseColEtree.h
deleted file mode 100644
index f89ca38..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseColEtree.h
+++ /dev/null
@@ -1,204 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-
-/* 
- 
- * NOTE: This file is the modified version of sp_coletree.c file in SuperLU 
- 
- * -- SuperLU routine (version 3.1) --
- * Univ. of California Berkeley, Xerox Palo Alto Research Center,
- * and Lawrence Berkeley National Lab.
- * August 1, 2008
- *
- * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
- * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program for any
- * purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is
- * granted, provided the above notices are retained, and a notice that
- * the code was modified is included with the above copyright notice.
- */
-#ifndef SPARSE_COLETREE_H
-#define SPARSE_COLETREE_H
-
-namespace Eigen {
-
-namespace internal {
-
-/** Find the root of the tree/set containing the vertex i : Use Path halving */ 
-template<typename Index, typename IndexVector>
-Index etree_find (Index i, IndexVector& pp)
-{
-  Index p = pp(i); // Parent 
-  Index gp = pp(p); // Grand parent 
-  while (gp != p) 
-  {
-    pp(i) = gp; // Parent pointer on find path is changed to former grand parent
-    i = gp; 
-    p = pp(i);
-    gp = pp(p);
-  }
-  return p; 
-}
-
-/** Compute the column elimination tree of a sparse matrix
-  * \param mat The matrix in column-major format. 
-  * \param parent The elimination tree
-  * \param firstRowElt The column index of the first element in each row
-  * \param perm The permutation to apply to the column of \b mat
-  */
-template <typename MatrixType, typename IndexVector>
-int coletree(const MatrixType& mat, IndexVector& parent, IndexVector& firstRowElt, typename MatrixType::Index *perm=0)
-{
-  typedef typename MatrixType::Index Index;
-  Index nc = mat.cols(); // Number of columns 
-  Index m = mat.rows();
-  IndexVector root(nc); // root of subtree of etree 
-  root.setZero();
-  IndexVector pp(nc); // disjoint sets 
-  pp.setZero(); // Initialize disjoint sets 
-  parent.resize(mat.cols());
-  //Compute first nonzero column in each row 
-  Index row,col; 
-  firstRowElt.resize(m);
-  firstRowElt.setConstant(nc);
-  firstRowElt.segment(0, nc).setLinSpaced(nc, 0, nc-1);
-  bool found_diag;
-  for (col = 0; col < nc; col++)
-  {
-    Index pcol = col;
-    if(perm) pcol  = perm[col];
-    for (typename MatrixType::InnerIterator it(mat, pcol); it; ++it)
-    { 
-      row = it.row();
-      firstRowElt(row) = (std::min)(firstRowElt(row), col);
-    }
-  }
-  /* Compute etree by Liu's algorithm for symmetric matrices,
-          except use (firstRowElt[r],c) in place of an edge (r,c) of A.
-    Thus each row clique in A'*A is replaced by a star
-    centered at its first vertex, which has the same fill. */
-  Index rset, cset, rroot; 
-  for (col = 0; col < nc; col++) 
-  {
-    found_diag = false;
-    pp(col) = col; 
-    cset = col; 
-    root(cset) = col; 
-    parent(col) = nc; 
-    /* The diagonal element is treated here even if it does not exist in the matrix
-     * hence the loop is executed once more */ 
-    Index pcol = col;
-    if(perm) pcol  = perm[col];
-    for (typename MatrixType::InnerIterator it(mat, pcol); it||!found_diag; ++it)
-    { //  A sequence of interleaved find and union is performed 
-      Index i = col;
-      if(it) i = it.index();
-      if (i == col) found_diag = true;
-      row = firstRowElt(i);
-      if (row >= col) continue; 
-      rset = internal::etree_find(row, pp); // Find the name of the set containing row
-      rroot = root(rset);
-      if (rroot != col) 
-      {
-        parent(rroot) = col; 
-        pp(cset) = rset; 
-        cset = rset; 
-        root(cset) = col; 
-      }
-    }
-  }
-  return 0;  
-}
-
-/** 
-  * Depth-first search from vertex n.  No recursion.
-  * This routine was contributed by Cédric Doucet, CEDRAT Group, Meylan, France.
-*/
-template <typename Index, typename IndexVector>
-void nr_etdfs (Index n, IndexVector& parent, IndexVector& first_kid, IndexVector& next_kid, IndexVector& post, Index postnum)
-{
-  Index current = n, first, next;
-  while (postnum != n) 
-  {
-    // No kid for the current node
-    first = first_kid(current);
-    
-    // no kid for the current node
-    if (first == -1) 
-    {
-      // Numbering this node because it has no kid 
-      post(current) = postnum++;
-      
-      // looking for the next kid 
-      next = next_kid(current); 
-      while (next == -1) 
-      {
-        // No more kids : back to the parent node
-        current = parent(current); 
-        // numbering the parent node 
-        post(current) = postnum++;
-        
-        // Get the next kid 
-        next = next_kid(current); 
-      }
-      // stopping criterion 
-      if (postnum == n+1) return; 
-      
-      // Updating current node 
-      current = next; 
-    }
-    else 
-    {
-      current = first; 
-    }
-  }
-}
-
-
-/**
-  * \brief Post order a tree 
-  * \param n the number of nodes
-  * \param parent Input tree
-  * \param post postordered tree
-  */
-template <typename Index, typename IndexVector>
-void treePostorder(Index n, IndexVector& parent, IndexVector& post)
-{
-  IndexVector first_kid, next_kid; // Linked list of children 
-  Index postnum; 
-  // Allocate storage for working arrays and results 
-  first_kid.resize(n+1); 
-  next_kid.setZero(n+1);
-  post.setZero(n+1);
-  
-  // Set up structure describing children
-  Index v, dad; 
-  first_kid.setConstant(-1); 
-  for (v = n-1; v >= 0; v--) 
-  {
-    dad = parent(v);
-    next_kid(v) = first_kid(dad); 
-    first_kid(dad) = v; 
-  }
-  
-  // Depth-first search from dummy root vertex #n
-  postnum = 0; 
-  internal::nr_etdfs(n, parent, first_kid, next_kid, post, postnum);
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // SPARSE_COLETREE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseCwiseBinaryOp.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
deleted file mode 100644
index d5f97f7..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
+++ /dev/null
@@ -1,324 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSE_CWISE_BINARY_OP_H
-#define EIGEN_SPARSE_CWISE_BINARY_OP_H
-
-namespace Eigen { 
-
-// Here we have to handle 3 cases:
-//  1 - sparse op dense
-//  2 - dense op sparse
-//  3 - sparse op sparse
-// We also need to implement a 4th iterator for:
-//  4 - dense op dense
-// Finally, we also need to distinguish between the product and other operations :
-//                configuration      returned mode
-//  1 - sparse op dense    product      sparse
-//                         generic      dense
-//  2 - dense op sparse    product      sparse
-//                         generic      dense
-//  3 - sparse op sparse   product      sparse
-//                         generic      sparse
-//  4 - dense op dense     product      dense
-//                         generic      dense
-
-namespace internal {
-
-template<> struct promote_storage_type<Dense,Sparse>
-{ typedef Sparse ret; };
-
-template<> struct promote_storage_type<Sparse,Dense>
-{ typedef Sparse ret; };
-
-template<typename BinaryOp, typename Lhs, typename Rhs, typename Derived,
-  typename _LhsStorageMode = typename traits<Lhs>::StorageKind,
-  typename _RhsStorageMode = typename traits<Rhs>::StorageKind>
-class sparse_cwise_binary_op_inner_iterator_selector;
-
-} // end namespace internal
-
-template<typename BinaryOp, typename Lhs, typename Rhs>
-class CwiseBinaryOpImpl<BinaryOp, Lhs, Rhs, Sparse>
-  : public SparseMatrixBase<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
-{
-  public:
-    class InnerIterator;
-    class ReverseInnerIterator;
-    typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> Derived;
-    EIGEN_SPARSE_PUBLIC_INTERFACE(Derived)
-    CwiseBinaryOpImpl()
-    {
-      typedef typename internal::traits<Lhs>::StorageKind LhsStorageKind;
-      typedef typename internal::traits<Rhs>::StorageKind RhsStorageKind;
-      EIGEN_STATIC_ASSERT((
-                (!internal::is_same<LhsStorageKind,RhsStorageKind>::value)
-            ||  ((Lhs::Flags&RowMajorBit) == (Rhs::Flags&RowMajorBit))),
-            THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH);
-    }
-};
-
-template<typename BinaryOp, typename Lhs, typename Rhs>
-class CwiseBinaryOpImpl<BinaryOp,Lhs,Rhs,Sparse>::InnerIterator
-  : public internal::sparse_cwise_binary_op_inner_iterator_selector<BinaryOp,Lhs,Rhs,typename CwiseBinaryOpImpl<BinaryOp,Lhs,Rhs,Sparse>::InnerIterator>
-{
-  public:
-    typedef typename Lhs::Index Index;
-    typedef internal::sparse_cwise_binary_op_inner_iterator_selector<
-      BinaryOp,Lhs,Rhs, InnerIterator> Base;
-
-    EIGEN_STRONG_INLINE InnerIterator(const CwiseBinaryOpImpl& binOp, typename CwiseBinaryOpImpl::Index outer)
-      : Base(binOp.derived(),outer)
-    {}
-};
-
-/***************************************************************************
-* Implementation of inner-iterators
-***************************************************************************/
-
-// template<typename T> struct internal::func_is_conjunction { enum { ret = false }; };
-// template<typename T> struct internal::func_is_conjunction<internal::scalar_product_op<T> > { enum { ret = true }; };
-
-// TODO generalize the internal::scalar_product_op specialization to all conjunctions if any !
-
-namespace internal {
-
-// sparse - sparse  (generic)
-template<typename BinaryOp, typename Lhs, typename Rhs, typename Derived>
-class sparse_cwise_binary_op_inner_iterator_selector<BinaryOp, Lhs, Rhs, Derived, Sparse, Sparse>
-{
-    typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> CwiseBinaryXpr;
-    typedef typename traits<CwiseBinaryXpr>::Scalar Scalar;
-    typedef typename traits<CwiseBinaryXpr>::_LhsNested _LhsNested;
-    typedef typename traits<CwiseBinaryXpr>::_RhsNested _RhsNested;
-    typedef typename _LhsNested::InnerIterator LhsIterator;
-    typedef typename _RhsNested::InnerIterator RhsIterator;
-    typedef typename Lhs::Index Index;
-
-  public:
-
-    EIGEN_STRONG_INLINE sparse_cwise_binary_op_inner_iterator_selector(const CwiseBinaryXpr& xpr, Index outer)
-      : m_lhsIter(xpr.lhs(),outer), m_rhsIter(xpr.rhs(),outer), m_functor(xpr.functor())
-    {
-      this->operator++();
-    }
-
-    EIGEN_STRONG_INLINE Derived& operator++()
-    {
-      if (m_lhsIter && m_rhsIter && (m_lhsIter.index() == m_rhsIter.index()))
-      {
-        m_id = m_lhsIter.index();
-        m_value = m_functor(m_lhsIter.value(), m_rhsIter.value());
-        ++m_lhsIter;
-        ++m_rhsIter;
-      }
-      else if (m_lhsIter && (!m_rhsIter || (m_lhsIter.index() < m_rhsIter.index())))
-      {
-        m_id = m_lhsIter.index();
-        m_value = m_functor(m_lhsIter.value(), Scalar(0));
-        ++m_lhsIter;
-      }
-      else if (m_rhsIter && (!m_lhsIter || (m_lhsIter.index() > m_rhsIter.index())))
-      {
-        m_id = m_rhsIter.index();
-        m_value = m_functor(Scalar(0), m_rhsIter.value());
-        ++m_rhsIter;
-      }
-      else
-      {
-        m_value = 0; // this is to avoid a compilation warning
-        m_id = -1;
-      }
-      return *static_cast<Derived*>(this);
-    }
-
-    EIGEN_STRONG_INLINE Scalar value() const { return m_value; }
-
-    EIGEN_STRONG_INLINE Index index() const { return m_id; }
-    EIGEN_STRONG_INLINE Index row() const { return Lhs::IsRowMajor ? m_lhsIter.row() : index(); }
-    EIGEN_STRONG_INLINE Index col() const { return Lhs::IsRowMajor ? index() : m_lhsIter.col(); }
-
-    EIGEN_STRONG_INLINE operator bool() const { return m_id>=0; }
-
-  protected:
-    LhsIterator m_lhsIter;
-    RhsIterator m_rhsIter;
-    const BinaryOp& m_functor;
-    Scalar m_value;
-    Index m_id;
-};
-
-// sparse - sparse  (product)
-template<typename T, typename Lhs, typename Rhs, typename Derived>
-class sparse_cwise_binary_op_inner_iterator_selector<scalar_product_op<T>, Lhs, Rhs, Derived, Sparse, Sparse>
-{
-    typedef scalar_product_op<T> BinaryFunc;
-    typedef CwiseBinaryOp<BinaryFunc, Lhs, Rhs> CwiseBinaryXpr;
-    typedef typename CwiseBinaryXpr::Scalar Scalar;
-    typedef typename traits<CwiseBinaryXpr>::_LhsNested _LhsNested;
-    typedef typename _LhsNested::InnerIterator LhsIterator;
-    typedef typename traits<CwiseBinaryXpr>::_RhsNested _RhsNested;
-    typedef typename _RhsNested::InnerIterator RhsIterator;
-    typedef typename Lhs::Index Index;
-  public:
-
-    EIGEN_STRONG_INLINE sparse_cwise_binary_op_inner_iterator_selector(const CwiseBinaryXpr& xpr, Index outer)
-      : m_lhsIter(xpr.lhs(),outer), m_rhsIter(xpr.rhs(),outer), m_functor(xpr.functor())
-    {
-      while (m_lhsIter && m_rhsIter && (m_lhsIter.index() != m_rhsIter.index()))
-      {
-        if (m_lhsIter.index() < m_rhsIter.index())
-          ++m_lhsIter;
-        else
-          ++m_rhsIter;
-      }
-    }
-
-    EIGEN_STRONG_INLINE Derived& operator++()
-    {
-      ++m_lhsIter;
-      ++m_rhsIter;
-      while (m_lhsIter && m_rhsIter && (m_lhsIter.index() != m_rhsIter.index()))
-      {
-        if (m_lhsIter.index() < m_rhsIter.index())
-          ++m_lhsIter;
-        else
-          ++m_rhsIter;
-      }
-      return *static_cast<Derived*>(this);
-    }
-
-    EIGEN_STRONG_INLINE Scalar value() const { return m_functor(m_lhsIter.value(), m_rhsIter.value()); }
-
-    EIGEN_STRONG_INLINE Index index() const { return m_lhsIter.index(); }
-    EIGEN_STRONG_INLINE Index row() const { return m_lhsIter.row(); }
-    EIGEN_STRONG_INLINE Index col() const { return m_lhsIter.col(); }
-
-    EIGEN_STRONG_INLINE operator bool() const { return (m_lhsIter && m_rhsIter); }
-
-  protected:
-    LhsIterator m_lhsIter;
-    RhsIterator m_rhsIter;
-    const BinaryFunc& m_functor;
-};
-
-// sparse - dense  (product)
-template<typename T, typename Lhs, typename Rhs, typename Derived>
-class sparse_cwise_binary_op_inner_iterator_selector<scalar_product_op<T>, Lhs, Rhs, Derived, Sparse, Dense>
-{
-    typedef scalar_product_op<T> BinaryFunc;
-    typedef CwiseBinaryOp<BinaryFunc, Lhs, Rhs> CwiseBinaryXpr;
-    typedef typename CwiseBinaryXpr::Scalar Scalar;
-    typedef typename traits<CwiseBinaryXpr>::_LhsNested _LhsNested;
-    typedef typename traits<CwiseBinaryXpr>::RhsNested RhsNested;
-    typedef typename _LhsNested::InnerIterator LhsIterator;
-    typedef typename Lhs::Index Index;
-    enum { IsRowMajor = (int(Lhs::Flags)&RowMajorBit)==RowMajorBit };
-  public:
-
-    EIGEN_STRONG_INLINE sparse_cwise_binary_op_inner_iterator_selector(const CwiseBinaryXpr& xpr, Index outer)
-      : m_rhs(xpr.rhs()), m_lhsIter(xpr.lhs(),outer), m_functor(xpr.functor()), m_outer(outer)
-    {}
-
-    EIGEN_STRONG_INLINE Derived& operator++()
-    {
-      ++m_lhsIter;
-      return *static_cast<Derived*>(this);
-    }
-
-    EIGEN_STRONG_INLINE Scalar value() const
-    { return m_functor(m_lhsIter.value(),
-                       m_rhs.coeff(IsRowMajor?m_outer:m_lhsIter.index(),IsRowMajor?m_lhsIter.index():m_outer)); }
-
-    EIGEN_STRONG_INLINE Index index() const { return m_lhsIter.index(); }
-    EIGEN_STRONG_INLINE Index row() const { return m_lhsIter.row(); }
-    EIGEN_STRONG_INLINE Index col() const { return m_lhsIter.col(); }
-
-    EIGEN_STRONG_INLINE operator bool() const { return m_lhsIter; }
-
-  protected:
-    RhsNested m_rhs;
-    LhsIterator m_lhsIter;
-    const BinaryFunc m_functor;
-    const Index m_outer;
-};
-
-// sparse - dense  (product)
-template<typename T, typename Lhs, typename Rhs, typename Derived>
-class sparse_cwise_binary_op_inner_iterator_selector<scalar_product_op<T>, Lhs, Rhs, Derived, Dense, Sparse>
-{
-    typedef scalar_product_op<T> BinaryFunc;
-    typedef CwiseBinaryOp<BinaryFunc, Lhs, Rhs> CwiseBinaryXpr;
-    typedef typename CwiseBinaryXpr::Scalar Scalar;
-    typedef typename traits<CwiseBinaryXpr>::_RhsNested _RhsNested;
-    typedef typename _RhsNested::InnerIterator RhsIterator;
-    typedef typename Lhs::Index Index;
-
-    enum { IsRowMajor = (int(Rhs::Flags)&RowMajorBit)==RowMajorBit };
-  public:
-
-    EIGEN_STRONG_INLINE sparse_cwise_binary_op_inner_iterator_selector(const CwiseBinaryXpr& xpr, Index outer)
-      : m_xpr(xpr), m_rhsIter(xpr.rhs(),outer), m_functor(xpr.functor()), m_outer(outer)
-    {}
-
-    EIGEN_STRONG_INLINE Derived& operator++()
-    {
-      ++m_rhsIter;
-      return *static_cast<Derived*>(this);
-    }
-
-    EIGEN_STRONG_INLINE Scalar value() const
-    { return m_functor(m_xpr.lhs().coeff(IsRowMajor?m_outer:m_rhsIter.index(),IsRowMajor?m_rhsIter.index():m_outer), m_rhsIter.value()); }
-
-    EIGEN_STRONG_INLINE Index index() const { return m_rhsIter.index(); }
-    EIGEN_STRONG_INLINE Index row() const { return m_rhsIter.row(); }
-    EIGEN_STRONG_INLINE Index col() const { return m_rhsIter.col(); }
-
-    EIGEN_STRONG_INLINE operator bool() const { return m_rhsIter; }
-
-  protected:
-    const CwiseBinaryXpr& m_xpr;
-    RhsIterator m_rhsIter;
-    const BinaryFunc& m_functor;
-    const Index m_outer;
-};
-
-} // end namespace internal
-
-/***************************************************************************
-* Implementation of SparseMatrixBase and SparseCwise functions/operators
-***************************************************************************/
-
-template<typename Derived>
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE Derived &
-SparseMatrixBase<Derived>::operator-=(const SparseMatrixBase<OtherDerived> &other)
-{
-  return *this = derived() - other.derived();
-}
-
-template<typename Derived>
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE Derived &
-SparseMatrixBase<Derived>::operator+=(const SparseMatrixBase<OtherDerived>& other)
-{
-  return *this = derived() + other.derived();
-}
-
-template<typename Derived>
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE const EIGEN_SPARSE_CWISE_PRODUCT_RETURN_TYPE
-SparseMatrixBase<Derived>::cwiseProduct(const MatrixBase<OtherDerived> &other) const
-{
-  return EIGEN_SPARSE_CWISE_PRODUCT_RETURN_TYPE(derived(), other.derived());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSE_CWISE_BINARY_OP_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseDenseProduct.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseDenseProduct.h
deleted file mode 100644
index 8c608a6..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseDenseProduct.h
+++ /dev/null
@@ -1,300 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSEDENSEPRODUCT_H
-#define EIGEN_SPARSEDENSEPRODUCT_H
-
-namespace Eigen { 
-
-template<typename Lhs, typename Rhs, int InnerSize> struct SparseDenseProductReturnType
-{
-  typedef SparseTimeDenseProduct<Lhs,Rhs> Type;
-};
-
-template<typename Lhs, typename Rhs> struct SparseDenseProductReturnType<Lhs,Rhs,1>
-{
-  typedef SparseDenseOuterProduct<Lhs,Rhs,false> Type;
-};
-
-template<typename Lhs, typename Rhs, int InnerSize> struct DenseSparseProductReturnType
-{
-  typedef DenseTimeSparseProduct<Lhs,Rhs> Type;
-};
-
-template<typename Lhs, typename Rhs> struct DenseSparseProductReturnType<Lhs,Rhs,1>
-{
-  typedef SparseDenseOuterProduct<Rhs,Lhs,true> Type;
-};
-
-namespace internal {
-
-template<typename Lhs, typename Rhs, bool Tr>
-struct traits<SparseDenseOuterProduct<Lhs,Rhs,Tr> >
-{
-  typedef Sparse StorageKind;
-  typedef typename scalar_product_traits<typename traits<Lhs>::Scalar,
-                                         typename traits<Rhs>::Scalar>::ReturnType Scalar;
-  typedef typename Lhs::Index Index;
-  typedef typename Lhs::Nested LhsNested;
-  typedef typename Rhs::Nested RhsNested;
-  typedef typename remove_all<LhsNested>::type _LhsNested;
-  typedef typename remove_all<RhsNested>::type _RhsNested;
-
-  enum {
-    LhsCoeffReadCost = traits<_LhsNested>::CoeffReadCost,
-    RhsCoeffReadCost = traits<_RhsNested>::CoeffReadCost,
-
-    RowsAtCompileTime    = Tr ? int(traits<Rhs>::RowsAtCompileTime)     : int(traits<Lhs>::RowsAtCompileTime),
-    ColsAtCompileTime    = Tr ? int(traits<Lhs>::ColsAtCompileTime)     : int(traits<Rhs>::ColsAtCompileTime),
-    MaxRowsAtCompileTime = Tr ? int(traits<Rhs>::MaxRowsAtCompileTime)  : int(traits<Lhs>::MaxRowsAtCompileTime),
-    MaxColsAtCompileTime = Tr ? int(traits<Lhs>::MaxColsAtCompileTime)  : int(traits<Rhs>::MaxColsAtCompileTime),
-
-    Flags = Tr ? RowMajorBit : 0,
-
-    CoeffReadCost = LhsCoeffReadCost + RhsCoeffReadCost + NumTraits<Scalar>::MulCost
-  };
-};
-
-} // end namespace internal
-
-template<typename Lhs, typename Rhs, bool Tr>
-class SparseDenseOuterProduct
- : public SparseMatrixBase<SparseDenseOuterProduct<Lhs,Rhs,Tr> >
-{
-  public:
-
-    typedef SparseMatrixBase<SparseDenseOuterProduct> Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(SparseDenseOuterProduct)
-    typedef internal::traits<SparseDenseOuterProduct> Traits;
-
-  private:
-
-    typedef typename Traits::LhsNested LhsNested;
-    typedef typename Traits::RhsNested RhsNested;
-    typedef typename Traits::_LhsNested _LhsNested;
-    typedef typename Traits::_RhsNested _RhsNested;
-
-  public:
-
-    class InnerIterator;
-
-    EIGEN_STRONG_INLINE SparseDenseOuterProduct(const Lhs& lhs, const Rhs& rhs)
-      : m_lhs(lhs), m_rhs(rhs)
-    {
-      EIGEN_STATIC_ASSERT(!Tr,YOU_MADE_A_PROGRAMMING_MISTAKE);
-    }
-
-    EIGEN_STRONG_INLINE SparseDenseOuterProduct(const Rhs& rhs, const Lhs& lhs)
-      : m_lhs(lhs), m_rhs(rhs)
-    {
-      EIGEN_STATIC_ASSERT(Tr,YOU_MADE_A_PROGRAMMING_MISTAKE);
-    }
-
-    EIGEN_STRONG_INLINE Index rows() const { return Tr ? m_rhs.rows() : m_lhs.rows(); }
-    EIGEN_STRONG_INLINE Index cols() const { return Tr ? m_lhs.cols() : m_rhs.cols(); }
-
-    EIGEN_STRONG_INLINE const _LhsNested& lhs() const { return m_lhs; }
-    EIGEN_STRONG_INLINE const _RhsNested& rhs() const { return m_rhs; }
-
-  protected:
-    LhsNested m_lhs;
-    RhsNested m_rhs;
-};
-
-template<typename Lhs, typename Rhs, bool Transpose>
-class SparseDenseOuterProduct<Lhs,Rhs,Transpose>::InnerIterator : public _LhsNested::InnerIterator
-{
-    typedef typename _LhsNested::InnerIterator Base;
-  public:
-    EIGEN_STRONG_INLINE InnerIterator(const SparseDenseOuterProduct& prod, Index outer)
-      : Base(prod.lhs(), 0), m_outer(outer), m_factor(prod.rhs().coeff(outer))
-    {
-    }
-
-    inline Index outer() const { return m_outer; }
-    inline Index row() const { return Transpose ? Base::row() : m_outer; }
-    inline Index col() const { return Transpose ? m_outer : Base::row(); }
-
-    inline Scalar value() const { return Base::value() * m_factor; }
-
-  protected:
-    int m_outer;
-    Scalar m_factor;
-};
-
-namespace internal {
-template<typename Lhs, typename Rhs>
-struct traits<SparseTimeDenseProduct<Lhs,Rhs> >
- : traits<ProductBase<SparseTimeDenseProduct<Lhs,Rhs>, Lhs, Rhs> >
-{
-  typedef Dense StorageKind;
-  typedef MatrixXpr XprKind;
-};
-
-template<typename SparseLhsType, typename DenseRhsType, typename DenseResType,
-         int LhsStorageOrder = ((SparseLhsType::Flags&RowMajorBit)==RowMajorBit) ? RowMajor : ColMajor,
-         bool ColPerCol = ((DenseRhsType::Flags&RowMajorBit)==0) || DenseRhsType::ColsAtCompileTime==1>
-struct sparse_time_dense_product_impl;
-
-template<typename SparseLhsType, typename DenseRhsType, typename DenseResType>
-struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, RowMajor, true>
-{
-  typedef typename internal::remove_all<SparseLhsType>::type Lhs;
-  typedef typename internal::remove_all<DenseRhsType>::type Rhs;
-  typedef typename internal::remove_all<DenseResType>::type Res;
-  typedef typename Lhs::Index Index;
-  typedef typename Lhs::InnerIterator LhsInnerIterator;
-  static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha)
-  {
-    for(Index c=0; c<rhs.cols(); ++c)
-    {
-      int n = lhs.outerSize();
-      for(Index j=0; j<n; ++j)
-      {
-        typename Res::Scalar tmp(0);
-        for(LhsInnerIterator it(lhs,j); it ;++it)
-          tmp += it.value() * rhs.coeff(it.index(),c);
-        res.coeffRef(j,c) = alpha * tmp;
-      }
-    }
-  }
-};
-
-template<typename SparseLhsType, typename DenseRhsType, typename DenseResType>
-struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, ColMajor, true>
-{
-  typedef typename internal::remove_all<SparseLhsType>::type Lhs;
-  typedef typename internal::remove_all<DenseRhsType>::type Rhs;
-  typedef typename internal::remove_all<DenseResType>::type Res;
-  typedef typename Lhs::InnerIterator LhsInnerIterator;
-  typedef typename Lhs::Index Index;
-  static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha)
-  {
-    for(Index c=0; c<rhs.cols(); ++c)
-    {
-      for(Index j=0; j<lhs.outerSize(); ++j)
-      {
-        typename Res::Scalar rhs_j = alpha * rhs.coeff(j,c);
-        for(LhsInnerIterator it(lhs,j); it ;++it)
-          res.coeffRef(it.index(),c) += it.value() * rhs_j;
-      }
-    }
-  }
-};
-
-template<typename SparseLhsType, typename DenseRhsType, typename DenseResType>
-struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, RowMajor, false>
-{
-  typedef typename internal::remove_all<SparseLhsType>::type Lhs;
-  typedef typename internal::remove_all<DenseRhsType>::type Rhs;
-  typedef typename internal::remove_all<DenseResType>::type Res;
-  typedef typename Lhs::InnerIterator LhsInnerIterator;
-  typedef typename Lhs::Index Index;
-  static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha)
-  {
-    for(Index j=0; j<lhs.outerSize(); ++j)
-    {
-      typename Res::RowXpr res_j(res.row(j));
-      for(LhsInnerIterator it(lhs,j); it ;++it)
-        res_j += (alpha*it.value()) * rhs.row(it.index());
-    }
-  }
-};
-
-template<typename SparseLhsType, typename DenseRhsType, typename DenseResType>
-struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, ColMajor, false>
-{
-  typedef typename internal::remove_all<SparseLhsType>::type Lhs;
-  typedef typename internal::remove_all<DenseRhsType>::type Rhs;
-  typedef typename internal::remove_all<DenseResType>::type Res;
-  typedef typename Lhs::InnerIterator LhsInnerIterator;
-  typedef typename Lhs::Index Index;
-  static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha)
-  {
-    for(Index j=0; j<lhs.outerSize(); ++j)
-    {
-      typename Rhs::ConstRowXpr rhs_j(rhs.row(j));
-      for(LhsInnerIterator it(lhs,j); it ;++it)
-        res.row(it.index()) += (alpha*it.value()) * rhs_j;
-    }
-  }
-};
-
-template<typename SparseLhsType, typename DenseRhsType, typename DenseResType,typename AlphaType>
-inline void sparse_time_dense_product(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const AlphaType& alpha)
-{
-  sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType>::run(lhs, rhs, res, alpha);
-}
-
-} // end namespace internal
-
-template<typename Lhs, typename Rhs>
-class SparseTimeDenseProduct
-  : public ProductBase<SparseTimeDenseProduct<Lhs,Rhs>, Lhs, Rhs>
-{
-  public:
-    EIGEN_PRODUCT_PUBLIC_INTERFACE(SparseTimeDenseProduct)
-
-    SparseTimeDenseProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
-    {}
-
-    template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
-    {
-      internal::sparse_time_dense_product(m_lhs, m_rhs, dest, alpha);
-    }
-
-  private:
-    SparseTimeDenseProduct& operator=(const SparseTimeDenseProduct&);
-};
-
-
-// dense = dense * sparse
-namespace internal {
-template<typename Lhs, typename Rhs>
-struct traits<DenseTimeSparseProduct<Lhs,Rhs> >
- : traits<ProductBase<DenseTimeSparseProduct<Lhs,Rhs>, Lhs, Rhs> >
-{
-  typedef Dense StorageKind;
-};
-} // end namespace internal
-
-template<typename Lhs, typename Rhs>
-class DenseTimeSparseProduct
-  : public ProductBase<DenseTimeSparseProduct<Lhs,Rhs>, Lhs, Rhs>
-{
-  public:
-    EIGEN_PRODUCT_PUBLIC_INTERFACE(DenseTimeSparseProduct)
-
-    DenseTimeSparseProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
-    {}
-
-    template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
-    {
-      Transpose<const _LhsNested> lhs_t(m_lhs);
-      Transpose<const _RhsNested> rhs_t(m_rhs);
-      Transpose<Dest> dest_t(dest);
-      internal::sparse_time_dense_product(rhs_t, lhs_t, dest_t, alpha);
-    }
-
-  private:
-    DenseTimeSparseProduct& operator=(const DenseTimeSparseProduct&);
-};
-
-// sparse * dense
-template<typename Derived>
-template<typename OtherDerived>
-inline const typename SparseDenseProductReturnType<Derived,OtherDerived>::Type
-SparseMatrixBase<Derived>::operator*(const MatrixBase<OtherDerived> &other) const
-{
-  return typename SparseDenseProductReturnType<Derived,OtherDerived>::Type(derived(), other.derived());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSEDENSEPRODUCT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseDiagonalProduct.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseDiagonalProduct.h
deleted file mode 100644
index 5ec4018..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseDiagonalProduct.h
+++ /dev/null
@@ -1,192 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSE_DIAGONAL_PRODUCT_H
-#define EIGEN_SPARSE_DIAGONAL_PRODUCT_H
-
-namespace Eigen { 
-
-// The product of a diagonal matrix with a sparse matrix can be easily
-// implemented using expression template.
-// We have two consider very different cases:
-// 1 - diag * row-major sparse
-//     => each inner vector <=> scalar * sparse vector product
-//     => so we can reuse CwiseUnaryOp::InnerIterator
-// 2 - diag * col-major sparse
-//     => each inner vector <=> densevector * sparse vector cwise product
-//     => again, we can reuse specialization of CwiseBinaryOp::InnerIterator
-//        for that particular case
-// The two other cases are symmetric.
-
-namespace internal {
-
-template<typename Lhs, typename Rhs>
-struct traits<SparseDiagonalProduct<Lhs, Rhs> >
-{
-  typedef typename remove_all<Lhs>::type _Lhs;
-  typedef typename remove_all<Rhs>::type _Rhs;
-  typedef typename _Lhs::Scalar Scalar;
-  typedef typename promote_index_type<typename traits<Lhs>::Index,
-                                         typename traits<Rhs>::Index>::type Index;
-  typedef Sparse StorageKind;
-  typedef MatrixXpr XprKind;
-  enum {
-    RowsAtCompileTime = _Lhs::RowsAtCompileTime,
-    ColsAtCompileTime = _Rhs::ColsAtCompileTime,
-
-    MaxRowsAtCompileTime = _Lhs::MaxRowsAtCompileTime,
-    MaxColsAtCompileTime = _Rhs::MaxColsAtCompileTime,
-
-    SparseFlags = is_diagonal<_Lhs>::ret ? int(_Rhs::Flags) : int(_Lhs::Flags),
-    Flags = (SparseFlags&RowMajorBit),
-    CoeffReadCost = Dynamic
-  };
-};
-
-enum {SDP_IsDiagonal, SDP_IsSparseRowMajor, SDP_IsSparseColMajor};
-template<typename Lhs, typename Rhs, typename SparseDiagonalProductType, int RhsMode, int LhsMode>
-class sparse_diagonal_product_inner_iterator_selector;
-
-} // end namespace internal
-
-template<typename Lhs, typename Rhs>
-class SparseDiagonalProduct
-  : public SparseMatrixBase<SparseDiagonalProduct<Lhs,Rhs> >,
-    internal::no_assignment_operator
-{
-    typedef typename Lhs::Nested LhsNested;
-    typedef typename Rhs::Nested RhsNested;
-
-    typedef typename internal::remove_all<LhsNested>::type _LhsNested;
-    typedef typename internal::remove_all<RhsNested>::type _RhsNested;
-
-    enum {
-      LhsMode = internal::is_diagonal<_LhsNested>::ret ? internal::SDP_IsDiagonal
-              : (_LhsNested::Flags&RowMajorBit) ? internal::SDP_IsSparseRowMajor : internal::SDP_IsSparseColMajor,
-      RhsMode = internal::is_diagonal<_RhsNested>::ret ? internal::SDP_IsDiagonal
-              : (_RhsNested::Flags&RowMajorBit) ? internal::SDP_IsSparseRowMajor : internal::SDP_IsSparseColMajor
-    };
-
-  public:
-
-    EIGEN_SPARSE_PUBLIC_INTERFACE(SparseDiagonalProduct)
-
-    typedef internal::sparse_diagonal_product_inner_iterator_selector
-                <_LhsNested,_RhsNested,SparseDiagonalProduct,LhsMode,RhsMode> InnerIterator;
-
-    EIGEN_STRONG_INLINE SparseDiagonalProduct(const Lhs& lhs, const Rhs& rhs)
-      : m_lhs(lhs), m_rhs(rhs)
-    {
-      eigen_assert(lhs.cols() == rhs.rows() && "invalid sparse matrix * diagonal matrix product");
-    }
-
-    EIGEN_STRONG_INLINE Index rows() const { return m_lhs.rows(); }
-    EIGEN_STRONG_INLINE Index cols() const { return m_rhs.cols(); }
-
-    EIGEN_STRONG_INLINE const _LhsNested& lhs() const { return m_lhs; }
-    EIGEN_STRONG_INLINE const _RhsNested& rhs() const { return m_rhs; }
-
-  protected:
-    LhsNested m_lhs;
-    RhsNested m_rhs;
-};
-
-namespace internal {
-
-template<typename Lhs, typename Rhs, typename SparseDiagonalProductType>
-class sparse_diagonal_product_inner_iterator_selector
-<Lhs,Rhs,SparseDiagonalProductType,SDP_IsDiagonal,SDP_IsSparseRowMajor>
-  : public CwiseUnaryOp<scalar_multiple_op<typename Lhs::Scalar>,const Rhs>::InnerIterator
-{
-    typedef typename CwiseUnaryOp<scalar_multiple_op<typename Lhs::Scalar>,const Rhs>::InnerIterator Base;
-    typedef typename Lhs::Index Index;
-  public:
-    inline sparse_diagonal_product_inner_iterator_selector(
-              const SparseDiagonalProductType& expr, Index outer)
-      : Base(expr.rhs()*(expr.lhs().diagonal().coeff(outer)), outer)
-    {}
-};
-
-template<typename Lhs, typename Rhs, typename SparseDiagonalProductType>
-class sparse_diagonal_product_inner_iterator_selector
-<Lhs,Rhs,SparseDiagonalProductType,SDP_IsDiagonal,SDP_IsSparseColMajor>
-  : public CwiseBinaryOp<
-      scalar_product_op<typename Lhs::Scalar>,
-      typename Rhs::ConstInnerVectorReturnType,
-      typename Lhs::DiagonalVectorType>::InnerIterator
-{
-    typedef typename CwiseBinaryOp<
-      scalar_product_op<typename Lhs::Scalar>,
-      typename Rhs::ConstInnerVectorReturnType,
-      typename Lhs::DiagonalVectorType>::InnerIterator Base;
-    typedef typename Lhs::Index Index;
-    Index m_outer;
-  public:
-    inline sparse_diagonal_product_inner_iterator_selector(
-              const SparseDiagonalProductType& expr, Index outer)
-      : Base(expr.rhs().innerVector(outer) .cwiseProduct(expr.lhs().diagonal()), 0), m_outer(outer)
-    {}
-    
-    inline Index outer() const { return m_outer; }
-    inline Index col() const { return m_outer; }
-};
-
-template<typename Lhs, typename Rhs, typename SparseDiagonalProductType>
-class sparse_diagonal_product_inner_iterator_selector
-<Lhs,Rhs,SparseDiagonalProductType,SDP_IsSparseColMajor,SDP_IsDiagonal>
-  : public CwiseUnaryOp<scalar_multiple_op<typename Rhs::Scalar>,const Lhs>::InnerIterator
-{
-    typedef typename CwiseUnaryOp<scalar_multiple_op<typename Rhs::Scalar>,const Lhs>::InnerIterator Base;
-    typedef typename Lhs::Index Index;
-  public:
-    inline sparse_diagonal_product_inner_iterator_selector(
-              const SparseDiagonalProductType& expr, Index outer)
-      : Base(expr.lhs()*expr.rhs().diagonal().coeff(outer), outer)
-    {}
-};
-
-template<typename Lhs, typename Rhs, typename SparseDiagonalProductType>
-class sparse_diagonal_product_inner_iterator_selector
-<Lhs,Rhs,SparseDiagonalProductType,SDP_IsSparseRowMajor,SDP_IsDiagonal>
-  : public CwiseBinaryOp<
-      scalar_product_op<typename Rhs::Scalar>,
-      typename Lhs::ConstInnerVectorReturnType,
-      Transpose<const typename Rhs::DiagonalVectorType> >::InnerIterator
-{
-    typedef typename CwiseBinaryOp<
-      scalar_product_op<typename Rhs::Scalar>,
-      typename Lhs::ConstInnerVectorReturnType,
-      Transpose<const typename Rhs::DiagonalVectorType> >::InnerIterator Base;
-    typedef typename Lhs::Index Index;
-    Index m_outer;
-  public:
-    inline sparse_diagonal_product_inner_iterator_selector(
-              const SparseDiagonalProductType& expr, Index outer)
-      : Base(expr.lhs().innerVector(outer) .cwiseProduct(expr.rhs().diagonal().transpose()), 0), m_outer(outer)
-    {}
-    
-    inline Index outer() const { return m_outer; }
-    inline Index row() const { return m_outer; }
-};
-
-} // end namespace internal
-
-// SparseMatrixBase functions
-
-template<typename Derived>
-template<typename OtherDerived>
-const SparseDiagonalProduct<Derived,OtherDerived>
-SparseMatrixBase<Derived>::operator*(const DiagonalBase<OtherDerived> &other) const
-{
-  return SparseDiagonalProduct<Derived,OtherDerived>(this->derived(), other.derived());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSE_DIAGONAL_PRODUCT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseDot.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseDot.h
deleted file mode 100644
index dfeb3a8..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseDot.h
+++ /dev/null
@@ -1,101 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSE_DOT_H
-#define EIGEN_SPARSE_DOT_H
-
-namespace Eigen { 
-
-template<typename Derived>
-template<typename OtherDerived>
-typename internal::traits<Derived>::Scalar
-SparseMatrixBase<Derived>::dot(const MatrixBase<OtherDerived>& other) const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
-  EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
-  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
-    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
-
-  eigen_assert(size() == other.size());
-  eigen_assert(other.size()>0 && "you are using a non initialized vector");
-
-  typename Derived::InnerIterator i(derived(),0);
-  Scalar res(0);
-  while (i)
-  {
-    res += internal::conj(i.value()) * other.coeff(i.index());
-    ++i;
-  }
-  return res;
-}
-
-template<typename Derived>
-template<typename OtherDerived>
-typename internal::traits<Derived>::Scalar
-SparseMatrixBase<Derived>::dot(const SparseMatrixBase<OtherDerived>& other) const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
-  EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
-  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
-    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
-
-  eigen_assert(size() == other.size());
-
-  typedef typename Derived::Nested  Nested;
-  typedef typename OtherDerived::Nested  OtherNested;
-  typedef typename internal::remove_all<Nested>::type  NestedCleaned;
-  typedef typename internal::remove_all<OtherNested>::type  OtherNestedCleaned;
-
-  Nested nthis(derived());
-  OtherNested nother(other.derived());
-
-  typename NestedCleaned::InnerIterator i(nthis,0);
-  typename OtherNestedCleaned::InnerIterator j(nother,0);
-  Scalar res(0);
-  while (i && j)
-  {
-    if (i.index()==j.index())
-    {
-      res += internal::conj(i.value()) * j.value();
-      ++i; ++j;
-    }
-    else if (i.index()<j.index())
-      ++i;
-    else
-      ++j;
-  }
-  return res;
-}
-
-template<typename Derived>
-inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
-SparseMatrixBase<Derived>::squaredNorm() const
-{
-  return internal::real((*this).cwiseAbs2().sum());
-}
-
-template<typename Derived>
-inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
-SparseMatrixBase<Derived>::norm() const
-{
-  using std::sqrt;
-  return sqrt(squaredNorm());
-}
-
-template<typename Derived>
-inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
-SparseMatrixBase<Derived>::blueNorm() const
-{
-  return internal::blueNorm_impl(*this);
-}
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSE_DOT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseMatrix.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseMatrix.h
deleted file mode 100644
index dc57f77..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseMatrix.h
+++ /dev/null
@@ -1,1219 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSEMATRIX_H
-#define EIGEN_SPARSEMATRIX_H
-
-namespace Eigen { 
-
-/** \ingroup SparseCore_Module
-  *
-  * \class SparseMatrix
-  *
-  * \brief A versatible sparse matrix representation
-  *
-  * This class implements a more versatile variants of the common \em compressed row/column storage format.
-  * Each colmun's (resp. row) non zeros are stored as a pair of value with associated row (resp. colmiun) index.
-  * All the non zeros are stored in a single large buffer. Unlike the \em compressed format, there might be extra
-  * space inbetween the nonzeros of two successive colmuns (resp. rows) such that insertion of new non-zero
-  * can be done with limited memory reallocation and copies.
-  *
-  * A call to the function makeCompressed() turns the matrix into the standard \em compressed format
-  * compatible with many library.
-  *
-  * More details on this storage sceheme are given in the \ref TutorialSparse "manual pages".
-  *
-  * \tparam _Scalar the scalar type, i.e. the type of the coefficients
-  * \tparam _Options Union of bit flags controlling the storage scheme. Currently the only possibility
-  *                 is RowMajor. The default is 0 which means column-major.
-  * \tparam _Index the type of the indices. It has to be a \b signed type (e.g., short, int, std::ptrdiff_t). Default is \c int.
-  *
-  * This class can be extended with the help of the plugin mechanism described on the page
-  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_SPARSEMATRIX_PLUGIN.
-  */
-
-namespace internal {
-template<typename _Scalar, int _Options, typename _Index>
-struct traits<SparseMatrix<_Scalar, _Options, _Index> >
-{
-  typedef _Scalar Scalar;
-  typedef _Index Index;
-  typedef Sparse StorageKind;
-  typedef MatrixXpr XprKind;
-  enum {
-    RowsAtCompileTime = Dynamic,
-    ColsAtCompileTime = Dynamic,
-    MaxRowsAtCompileTime = Dynamic,
-    MaxColsAtCompileTime = Dynamic,
-    Flags = _Options | NestByRefBit | LvalueBit,
-    CoeffReadCost = NumTraits<Scalar>::ReadCost,
-    SupportedAccessPatterns = InnerRandomAccessPattern
-  };
-};
-
-template<typename _Scalar, int _Options, typename _Index, int DiagIndex>
-struct traits<Diagonal<const SparseMatrix<_Scalar, _Options, _Index>, DiagIndex> >
-{
-  typedef SparseMatrix<_Scalar, _Options, _Index> MatrixType;
-  typedef typename nested<MatrixType>::type MatrixTypeNested;
-  typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
-
-  typedef _Scalar Scalar;
-  typedef Dense StorageKind;
-  typedef _Index Index;
-  typedef MatrixXpr XprKind;
-
-  enum {
-    RowsAtCompileTime = Dynamic,
-    ColsAtCompileTime = 1,
-    MaxRowsAtCompileTime = Dynamic,
-    MaxColsAtCompileTime = 1,
-    Flags = 0,
-    CoeffReadCost = _MatrixTypeNested::CoeffReadCost*10
-  };
-};
-
-} // end namespace internal
-
-template<typename _Scalar, int _Options, typename _Index>
-class SparseMatrix
-  : public SparseMatrixBase<SparseMatrix<_Scalar, _Options, _Index> >
-{
-  public:
-    EIGEN_SPARSE_PUBLIC_INTERFACE(SparseMatrix)
-    EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseMatrix, +=)
-    EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseMatrix, -=)
-
-    typedef MappedSparseMatrix<Scalar,Flags> Map;
-    using Base::IsRowMajor;
-    typedef internal::CompressedStorage<Scalar,Index> Storage;
-    enum {
-      Options = _Options
-    };
-
-  protected:
-
-    typedef SparseMatrix<Scalar,(Flags&~RowMajorBit)|(IsRowMajor?RowMajorBit:0)> TransposedSparseMatrix;
-
-    Index m_outerSize;
-    Index m_innerSize;
-    Index* m_outerIndex;
-    Index* m_innerNonZeros;     // optional, if null then the data is compressed
-    Storage m_data;
-    
-    Eigen::Map<Matrix<Index,Dynamic,1> > innerNonZeros() { return Eigen::Map<Matrix<Index,Dynamic,1> >(m_innerNonZeros, m_innerNonZeros?m_outerSize:0); }
-    const  Eigen::Map<const Matrix<Index,Dynamic,1> > innerNonZeros() const { return Eigen::Map<const Matrix<Index,Dynamic,1> >(m_innerNonZeros, m_innerNonZeros?m_outerSize:0); }
-
-  public:
-    
-    /** \returns whether \c *this is in compressed form. */
-    inline bool isCompressed() const { return m_innerNonZeros==0; }
-
-    /** \returns the number of rows of the matrix */
-    inline Index rows() const { return IsRowMajor ? m_outerSize : m_innerSize; }
-    /** \returns the number of columns of the matrix */
-    inline Index cols() const { return IsRowMajor ? m_innerSize : m_outerSize; }
-
-    /** \returns the number of rows (resp. columns) of the matrix if the storage order column major (resp. row major) */
-    inline Index innerSize() const { return m_innerSize; }
-    /** \returns the number of columns (resp. rows) of the matrix if the storage order column major (resp. row major) */
-    inline Index outerSize() const { return m_outerSize; }
-    
-    /** \returns a const pointer to the array of values.
-      * This function is aimed at interoperability with other libraries.
-      * \sa innerIndexPtr(), outerIndexPtr() */
-    inline const Scalar* valuePtr() const { return &m_data.value(0); }
-    /** \returns a non-const pointer to the array of values.
-      * This function is aimed at interoperability with other libraries.
-      * \sa innerIndexPtr(), outerIndexPtr() */
-    inline Scalar* valuePtr() { return &m_data.value(0); }
-
-    /** \returns a const pointer to the array of inner indices.
-      * This function is aimed at interoperability with other libraries.
-      * \sa valuePtr(), outerIndexPtr() */
-    inline const Index* innerIndexPtr() const { return &m_data.index(0); }
-    /** \returns a non-const pointer to the array of inner indices.
-      * This function is aimed at interoperability with other libraries.
-      * \sa valuePtr(), outerIndexPtr() */
-    inline Index* innerIndexPtr() { return &m_data.index(0); }
-
-    /** \returns a const pointer to the array of the starting positions of the inner vectors.
-      * This function is aimed at interoperability with other libraries.
-      * \sa valuePtr(), innerIndexPtr() */
-    inline const Index* outerIndexPtr() const { return m_outerIndex; }
-    /** \returns a non-const pointer to the array of the starting positions of the inner vectors.
-      * This function is aimed at interoperability with other libraries.
-      * \sa valuePtr(), innerIndexPtr() */
-    inline Index* outerIndexPtr() { return m_outerIndex; }
-
-    /** \returns a const pointer to the array of the number of non zeros of the inner vectors.
-      * This function is aimed at interoperability with other libraries.
-      * \warning it returns the null pointer 0 in compressed mode */
-    inline const Index* innerNonZeroPtr() const { return m_innerNonZeros; }
-    /** \returns a non-const pointer to the array of the number of non zeros of the inner vectors.
-      * This function is aimed at interoperability with other libraries.
-      * \warning it returns the null pointer 0 in compressed mode */
-    inline Index* innerNonZeroPtr() { return m_innerNonZeros; }
-
-    /** \internal */
-    inline Storage& data() { return m_data; }
-    /** \internal */
-    inline const Storage& data() const { return m_data; }
-
-    /** \returns the value of the matrix at position \a i, \a j
-      * This function returns Scalar(0) if the element is an explicit \em zero */
-    inline Scalar coeff(Index row, Index col) const
-    {
-      const Index outer = IsRowMajor ? row : col;
-      const Index inner = IsRowMajor ? col : row;
-      Index end = m_innerNonZeros ? m_outerIndex[outer] + m_innerNonZeros[outer] : m_outerIndex[outer+1];
-      return m_data.atInRange(m_outerIndex[outer], end, inner);
-    }
-
-    /** \returns a non-const reference to the value of the matrix at position \a i, \a j
-      *
-      * If the element does not exist then it is inserted via the insert(Index,Index) function
-      * which itself turns the matrix into a non compressed form if that was not the case.
-      *
-      * This is a O(log(nnz_j)) operation (binary search) plus the cost of insert(Index,Index)
-      * function if the element does not already exist.
-      */
-    inline Scalar& coeffRef(Index row, Index col)
-    {
-      const Index outer = IsRowMajor ? row : col;
-      const Index inner = IsRowMajor ? col : row;
-
-      Index start = m_outerIndex[outer];
-      Index end = m_innerNonZeros ? m_outerIndex[outer] + m_innerNonZeros[outer] : m_outerIndex[outer+1];
-      eigen_assert(end>=start && "you probably called coeffRef on a non finalized matrix");
-      if(end<=start)
-        return insert(row,col);
-      const Index p = m_data.searchLowerIndex(start,end-1,inner);
-      if((p<end) && (m_data.index(p)==inner))
-        return m_data.value(p);
-      else
-        return insert(row,col);
-    }
-
-    /** \returns a reference to a novel non zero coefficient with coordinates \a row x \a col.
-      * The non zero coefficient must \b not already exist.
-      *
-      * If the matrix \c *this is in compressed mode, then \c *this is turned into uncompressed
-      * mode while reserving room for 2 non zeros per inner vector. It is strongly recommended to first
-      * call reserve(const SizesType &) to reserve a more appropriate number of elements per
-      * inner vector that better match your scenario.
-      *
-      * This function performs a sorted insertion in O(1) if the elements of each inner vector are
-      * inserted in increasing inner index order, and in O(nnz_j) for a random insertion.
-      *
-      */
-    Scalar& insert(Index row, Index col)
-    {
-      if(isCompressed())
-      {
-        reserve(VectorXi::Constant(outerSize(), 2));
-      }
-      return insertUncompressed(row,col);
-    }
-
-  public:
-
-    class InnerIterator;
-    class ReverseInnerIterator;
-
-    /** Removes all non zeros but keep allocated memory */
-    inline void setZero()
-    {
-      m_data.clear();
-      memset(m_outerIndex, 0, (m_outerSize+1)*sizeof(Index));
-      if(m_innerNonZeros)
-        memset(m_innerNonZeros, 0, (m_outerSize)*sizeof(Index));
-    }
-
-    /** \returns the number of non zero coefficients */
-    inline Index nonZeros() const
-    {
-      if(m_innerNonZeros)
-        return innerNonZeros().sum();
-      return static_cast<Index>(m_data.size());
-    }
-
-    /** Preallocates \a reserveSize non zeros.
-      *
-      * Precondition: the matrix must be in compressed mode. */
-    inline void reserve(Index reserveSize)
-    {
-      eigen_assert(isCompressed() && "This function does not make sense in non compressed mode.");
-      m_data.reserve(reserveSize);
-    }
-    
-    #ifdef EIGEN_PARSED_BY_DOXYGEN
-    /** Preallocates \a reserveSize[\c j] non zeros for each column (resp. row) \c j.
-      *
-      * This function turns the matrix in non-compressed mode */
-    template<class SizesType>
-    inline void reserve(const SizesType& reserveSizes);
-    #else
-    template<class SizesType>
-    inline void reserve(const SizesType& reserveSizes, const typename SizesType::value_type& enableif = typename SizesType::value_type())
-    {
-      EIGEN_UNUSED_VARIABLE(enableif);
-      reserveInnerVectors(reserveSizes);
-    }
-    template<class SizesType>
-    inline void reserve(const SizesType& reserveSizes, const typename SizesType::Scalar& enableif =
-    #if (!defined(_MSC_VER)) || (_MSC_VER>=1500) // MSVC 2005 fails to compile with this typename
-        typename
-    #endif
-        SizesType::Scalar())
-    {
-      EIGEN_UNUSED_VARIABLE(enableif);
-      reserveInnerVectors(reserveSizes);
-    }
-    #endif // EIGEN_PARSED_BY_DOXYGEN
-  protected:
-    template<class SizesType>
-    inline void reserveInnerVectors(const SizesType& reserveSizes)
-    {
-      
-      if(isCompressed())
-      {
-        std::size_t totalReserveSize = 0;
-        // turn the matrix into non-compressed mode
-        m_innerNonZeros = static_cast<Index*>(std::malloc(m_outerSize * sizeof(Index)));
-        if (!m_innerNonZeros) internal::throw_std_bad_alloc();
-        
-        // temporarily use m_innerSizes to hold the new starting points.
-        Index* newOuterIndex = m_innerNonZeros;
-        
-        Index count = 0;
-        for(Index j=0; j<m_outerSize; ++j)
-        {
-          newOuterIndex[j] = count;
-          count += reserveSizes[j] + (m_outerIndex[j+1]-m_outerIndex[j]);
-          totalReserveSize += reserveSizes[j];
-        }
-        m_data.reserve(totalReserveSize);
-        Index previousOuterIndex = m_outerIndex[m_outerSize];
-        for(Index j=m_outerSize-1; j>=0; --j)
-        {
-          Index innerNNZ = previousOuterIndex - m_outerIndex[j];
-          for(Index i=innerNNZ-1; i>=0; --i)
-          {
-            m_data.index(newOuterIndex[j]+i) = m_data.index(m_outerIndex[j]+i);
-            m_data.value(newOuterIndex[j]+i) = m_data.value(m_outerIndex[j]+i);
-          }
-          previousOuterIndex = m_outerIndex[j];
-          m_outerIndex[j] = newOuterIndex[j];
-          m_innerNonZeros[j] = innerNNZ;
-        }
-        m_outerIndex[m_outerSize] = m_outerIndex[m_outerSize-1] + m_innerNonZeros[m_outerSize-1] + reserveSizes[m_outerSize-1];
-        
-        m_data.resize(m_outerIndex[m_outerSize]);
-      }
-      else
-      {
-        Index* newOuterIndex = static_cast<Index*>(std::malloc((m_outerSize+1)*sizeof(Index)));
-        if (!newOuterIndex) internal::throw_std_bad_alloc();
-        
-        Index count = 0;
-        for(Index j=0; j<m_outerSize; ++j)
-        {
-          newOuterIndex[j] = count;
-          Index alreadyReserved = (m_outerIndex[j+1]-m_outerIndex[j]) - m_innerNonZeros[j];
-          Index toReserve = std::max<Index>(reserveSizes[j], alreadyReserved);
-          count += toReserve + m_innerNonZeros[j];
-        }
-        newOuterIndex[m_outerSize] = count;
-        
-        m_data.resize(count);
-        for(Index j=m_outerSize-1; j>=0; --j)
-        {
-          Index offset = newOuterIndex[j] - m_outerIndex[j];
-          if(offset>0)
-          {
-            Index innerNNZ = m_innerNonZeros[j];
-            for(Index i=innerNNZ-1; i>=0; --i)
-            {
-              m_data.index(newOuterIndex[j]+i) = m_data.index(m_outerIndex[j]+i);
-              m_data.value(newOuterIndex[j]+i) = m_data.value(m_outerIndex[j]+i);
-            }
-          }
-        }
-        
-        std::swap(m_outerIndex, newOuterIndex);
-        std::free(newOuterIndex);
-      }
-      
-    }
-  public:
-
-    //--- low level purely coherent filling ---
-
-    /** \internal
-      * \returns a reference to the non zero coefficient at position \a row, \a col assuming that:
-      * - the nonzero does not already exist
-      * - the new coefficient is the last one according to the storage order
-      *
-      * Before filling a given inner vector you must call the statVec(Index) function.
-      *
-      * After an insertion session, you should call the finalize() function.
-      *
-      * \sa insert, insertBackByOuterInner, startVec */
-    inline Scalar& insertBack(Index row, Index col)
-    {
-      return insertBackByOuterInner(IsRowMajor?row:col, IsRowMajor?col:row);
-    }
-
-    /** \internal
-      * \sa insertBack, startVec */
-    inline Scalar& insertBackByOuterInner(Index outer, Index inner)
-    {
-      eigen_assert(size_t(m_outerIndex[outer+1]) == m_data.size() && "Invalid ordered insertion (invalid outer index)");
-      eigen_assert( (m_outerIndex[outer+1]-m_outerIndex[outer]==0 || m_data.index(m_data.size()-1)<inner) && "Invalid ordered insertion (invalid inner index)");
-      Index p = m_outerIndex[outer+1];
-      ++m_outerIndex[outer+1];
-      m_data.append(0, inner);
-      return m_data.value(p);
-    }
-
-    /** \internal
-      * \warning use it only if you know what you are doing */
-    inline Scalar& insertBackByOuterInnerUnordered(Index outer, Index inner)
-    {
-      Index p = m_outerIndex[outer+1];
-      ++m_outerIndex[outer+1];
-      m_data.append(0, inner);
-      return m_data.value(p);
-    }
-
-    /** \internal
-      * \sa insertBack, insertBackByOuterInner */
-    inline void startVec(Index outer)
-    {
-      eigen_assert(m_outerIndex[outer]==int(m_data.size()) && "You must call startVec for each inner vector sequentially");
-      eigen_assert(m_outerIndex[outer+1]==0 && "You must call startVec for each inner vector sequentially");
-      m_outerIndex[outer+1] = m_outerIndex[outer];
-    }
-
-    /** \internal
-      * Must be called after inserting a set of non zero entries using the low level compressed API.
-      */
-    inline void finalize()
-    {
-      if(isCompressed())
-      {
-        Index size = static_cast<Index>(m_data.size());
-        Index i = m_outerSize;
-        // find the last filled column
-        while (i>=0 && m_outerIndex[i]==0)
-          --i;
-        ++i;
-        while (i<=m_outerSize)
-        {
-          m_outerIndex[i] = size;
-          ++i;
-        }
-      }
-    }
-
-    //---
-
-    template<typename InputIterators>
-    void setFromTriplets(const InputIterators& begin, const InputIterators& end);
-
-    void sumupDuplicates();
-
-    //---
-    
-    /** \internal
-      * same as insert(Index,Index) except that the indices are given relative to the storage order */
-    Scalar& insertByOuterInner(Index j, Index i)
-    {
-      return insert(IsRowMajor ? j : i, IsRowMajor ? i : j);
-    }
-
-    /** Turns the matrix into the \em compressed format.
-      */
-    void makeCompressed()
-    {
-      if(isCompressed())
-        return;
-      
-      Index oldStart = m_outerIndex[1];
-      m_outerIndex[1] = m_innerNonZeros[0];
-      for(Index j=1; j<m_outerSize; ++j)
-      {
-        Index nextOldStart = m_outerIndex[j+1];
-        Index offset = oldStart - m_outerIndex[j];
-        if(offset>0)
-        {
-          for(Index k=0; k<m_innerNonZeros[j]; ++k)
-          {
-            m_data.index(m_outerIndex[j]+k) = m_data.index(oldStart+k);
-            m_data.value(m_outerIndex[j]+k) = m_data.value(oldStart+k);
-          }
-        }
-        m_outerIndex[j+1] = m_outerIndex[j] + m_innerNonZeros[j];
-        oldStart = nextOldStart;
-      }
-      std::free(m_innerNonZeros);
-      m_innerNonZeros = 0;
-      m_data.resize(m_outerIndex[m_outerSize]);
-      m_data.squeeze();
-    }
-
-    /** Turns the matrix into the uncompressed mode */
-    void uncompress()
-    {
-      if(m_innerNonZeros != 0)
-        return; 
-      m_innerNonZeros = static_cast<Index*>(std::malloc(m_outerSize * sizeof(Index)));
-      for (int i = 0; i < m_outerSize; i++)
-      {
-        m_innerNonZeros[i] = m_outerIndex[i+1] - m_outerIndex[i]; 
-      }
-    }
-    
-    /** Suppresses all nonzeros which are \b much \b smaller \b than \a reference under the tolerence \a epsilon */
-    void prune(const Scalar& reference, const RealScalar& epsilon = NumTraits<RealScalar>::dummy_precision())
-    {
-      prune(default_prunning_func(reference,epsilon));
-    }
-    
-    /** Turns the matrix into compressed format, and suppresses all nonzeros which do not satisfy the predicate \a keep.
-      * The functor type \a KeepFunc must implement the following function:
-      * \code
-      * bool operator() (const Index& row, const Index& col, const Scalar& value) const;
-      * \endcode
-      * \sa prune(Scalar,RealScalar)
-      */
-    template<typename KeepFunc>
-    void prune(const KeepFunc& keep = KeepFunc())
-    {
-      // TODO optimize the uncompressed mode to avoid moving and allocating the data twice
-      // TODO also implement a unit test
-      makeCompressed();
-
-      Index k = 0;
-      for(Index j=0; j<m_outerSize; ++j)
-      {
-        Index previousStart = m_outerIndex[j];
-        m_outerIndex[j] = k;
-        Index end = m_outerIndex[j+1];
-        for(Index i=previousStart; i<end; ++i)
-        {
-          if(keep(IsRowMajor?j:m_data.index(i), IsRowMajor?m_data.index(i):j, m_data.value(i)))
-          {
-            m_data.value(k) = m_data.value(i);
-            m_data.index(k) = m_data.index(i);
-            ++k;
-          }
-        }
-      }
-      m_outerIndex[m_outerSize] = k;
-      m_data.resize(k,0);
-    }
-
-    /** Resizes the matrix to a \a rows x \a cols matrix leaving old values untouched.
-      * \sa resizeNonZeros(Index), reserve(), setZero()
-      */
-    void conservativeResize(Index rows, Index cols) 
-    {
-        // No change
-        if (this->rows() == rows && this->cols() == cols) return;
-
-        Index innerChange = IsRowMajor ? cols - this->cols() : rows - this->rows();
-        Index outerChange = IsRowMajor ? rows - this->rows() : cols - this->cols();
-        Index newInnerSize = IsRowMajor ? cols : rows;
-
-        // Deals with inner non zeros
-        if (m_innerNonZeros)
-        {
-          // Resize m_innerNonZeros
-          Index *newInnerNonZeros = static_cast<Index*>(std::realloc(m_innerNonZeros, (m_outerSize + outerChange) * sizeof(Index)));
-          if (!newInnerNonZeros) internal::throw_std_bad_alloc();
-          m_innerNonZeros = newInnerNonZeros;
-          
-          for(Index i=m_outerSize; i<m_outerSize+outerChange; i++)          
-            m_innerNonZeros[i] = 0;
-        } 
-        else if (innerChange < 0) 
-        {
-          // Inner size decreased: allocate a new m_innerNonZeros
-          m_innerNonZeros = static_cast<Index*>(std::malloc((m_outerSize+outerChange+1) * sizeof(Index)));
-          if (!m_innerNonZeros) internal::throw_std_bad_alloc();
-          for(Index i = 0; i < m_outerSize; i++)
-            m_innerNonZeros[i] = m_outerIndex[i+1] - m_outerIndex[i];
-        }
-        
-        // Change the m_innerNonZeros in case of a decrease of inner size
-        if (m_innerNonZeros && innerChange < 0) {
-              for(Index i = 0; i < m_outerSize + (std::min)(outerChange, Index(0)); i++)
-              {
-                Index &n = m_innerNonZeros[i];
-                Index start = m_outerIndex[i];
-                while (n > 0 && m_data.index(start+n-1) >= newInnerSize) --n; 
-              }
-        }
-        
-        m_innerSize = newInnerSize;
-
-        // Re-allocate outer index structure if necessary
-        if (outerChange == 0)
-          return;
-            
-        Index *newOuterIndex = static_cast<Index*>(std::realloc(m_outerIndex, (m_outerSize + outerChange + 1) * sizeof(Index)));
-        if (!newOuterIndex) internal::throw_std_bad_alloc();
-        m_outerIndex = newOuterIndex;
-        if (outerChange > 0) {
-          Index last = m_outerSize == 0 ? 0 : m_outerIndex[m_outerSize];
-          for(Index i=m_outerSize; i<m_outerSize+outerChange+1; i++)          
-            m_outerIndex[i] = last; 
-        }
-        m_outerSize += outerChange;
-        
-    }
-    
-    /** Resizes the matrix to a \a rows x \a cols matrix and initializes it to zero.
-      * \sa resizeNonZeros(Index), reserve(), setZero()
-      */
-    void resize(Index rows, Index cols)
-    {
-      const Index outerSize = IsRowMajor ? rows : cols;
-      m_innerSize = IsRowMajor ? cols : rows;
-      m_data.clear();
-      if (m_outerSize != outerSize || m_outerSize==0)
-      {
-        std::free(m_outerIndex);
-        m_outerIndex = static_cast<Index*>(std::malloc((outerSize + 1) * sizeof(Index)));
-        if (!m_outerIndex) internal::throw_std_bad_alloc();
-        
-        m_outerSize = outerSize;
-      }
-      if(m_innerNonZeros)
-      {
-        std::free(m_innerNonZeros);
-        m_innerNonZeros = 0;
-      }
-      memset(m_outerIndex, 0, (m_outerSize+1)*sizeof(Index));
-    }
-
-    /** \internal
-      * Resize the nonzero vector to \a size */
-    void resizeNonZeros(Index size)
-    {
-      // TODO remove this function
-      m_data.resize(size);
-    }
-
-    /** \returns a const expression of the diagonal coefficients */
-    const Diagonal<const SparseMatrix> diagonal() const { return *this; }
-
-    /** Default constructor yielding an empty \c 0 \c x \c 0 matrix */
-    inline SparseMatrix()
-      : m_outerSize(-1), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
-    {
-      check_template_parameters();
-      resize(0, 0);
-    }
-
-    /** Constructs a \a rows \c x \a cols empty matrix */
-    inline SparseMatrix(Index rows, Index cols)
-      : m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
-    {
-      check_template_parameters();
-      resize(rows, cols);
-    }
-
-    /** Constructs a sparse matrix from the sparse expression \a other */
-    template<typename OtherDerived>
-    inline SparseMatrix(const SparseMatrixBase<OtherDerived>& other)
-      : m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
-    {
-      check_template_parameters();
-      *this = other.derived();
-    }
-
-    /** Copy constructor (it performs a deep copy) */
-    inline SparseMatrix(const SparseMatrix& other)
-      : Base(), m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
-    {
-      check_template_parameters();
-      *this = other.derived();
-    }
-
-    /** \brief Copy constructor with in-place evaluation */
-    template<typename OtherDerived>
-    SparseMatrix(const ReturnByValue<OtherDerived>& other)
-      : Base(), m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
-    {
-      check_template_parameters();
-      initAssignment(other);
-      other.evalTo(*this);
-    }
-
-    /** Swaps the content of two sparse matrices of the same type.
-      * This is a fast operation that simply swaps the underlying pointers and parameters. */
-    inline void swap(SparseMatrix& other)
-    {
-      //EIGEN_DBG_SPARSE(std::cout << "SparseMatrix:: swap\n");
-      std::swap(m_outerIndex, other.m_outerIndex);
-      std::swap(m_innerSize, other.m_innerSize);
-      std::swap(m_outerSize, other.m_outerSize);
-      std::swap(m_innerNonZeros, other.m_innerNonZeros);
-      m_data.swap(other.m_data);
-    }
-
-    inline SparseMatrix& operator=(const SparseMatrix& other)
-    {
-      if (other.isRValue())
-      {
-        swap(other.const_cast_derived());
-      }
-      else
-      {
-        initAssignment(other);
-        if(other.isCompressed())
-        {
-          memcpy(m_outerIndex, other.m_outerIndex, (m_outerSize+1)*sizeof(Index));
-          m_data = other.m_data;
-        }
-        else
-        {
-          Base::operator=(other);
-        }
-      }
-      return *this;
-    }
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    template<typename Lhs, typename Rhs>
-    inline SparseMatrix& operator=(const SparseSparseProduct<Lhs,Rhs>& product)
-    { return Base::operator=(product); }
-    
-    template<typename OtherDerived>
-    inline SparseMatrix& operator=(const ReturnByValue<OtherDerived>& other)
-    {
-      initAssignment(other);
-      return Base::operator=(other.derived());
-    }
-    
-    template<typename OtherDerived>
-    inline SparseMatrix& operator=(const EigenBase<OtherDerived>& other)
-    { return Base::operator=(other.derived()); }
-    #endif
-
-    template<typename OtherDerived>
-    EIGEN_DONT_INLINE SparseMatrix& operator=(const SparseMatrixBase<OtherDerived>& other);
-
-    friend std::ostream & operator << (std::ostream & s, const SparseMatrix& m)
-    {
-      EIGEN_DBG_SPARSE(
-        s << "Nonzero entries:\n";
-        if(m.isCompressed())
-          for (Index i=0; i<m.nonZeros(); ++i)
-            s << "(" << m.m_data.value(i) << "," << m.m_data.index(i) << ") ";
-        else
-          for (Index i=0; i<m.outerSize(); ++i)
-          {
-            int p = m.m_outerIndex[i];
-            int pe = m.m_outerIndex[i]+m.m_innerNonZeros[i];
-            Index k=p;
-            for (; k<pe; ++k)
-              s << "(" << m.m_data.value(k) << "," << m.m_data.index(k) << ") ";
-            for (; k<m.m_outerIndex[i+1]; ++k)
-              s << "(_,_) ";
-          }
-        s << std::endl;
-        s << std::endl;
-        s << "Outer pointers:\n";
-        for (Index i=0; i<m.outerSize(); ++i)
-          s << m.m_outerIndex[i] << " ";
-        s << " $" << std::endl;
-        if(!m.isCompressed())
-        {
-          s << "Inner non zeros:\n";
-          for (Index i=0; i<m.outerSize(); ++i)
-            s << m.m_innerNonZeros[i] << " ";
-          s << " $" << std::endl;
-        }
-        s << std::endl;
-      );
-      s << static_cast<const SparseMatrixBase<SparseMatrix>&>(m);
-      return s;
-    }
-
-    /** Destructor */
-    inline ~SparseMatrix()
-    {
-      std::free(m_outerIndex);
-      std::free(m_innerNonZeros);
-    }
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** Overloaded for performance */
-    Scalar sum() const;
-#endif
-    
-#   ifdef EIGEN_SPARSEMATRIX_PLUGIN
-#     include EIGEN_SPARSEMATRIX_PLUGIN
-#   endif
-
-protected:
-
-    template<typename Other>
-    void initAssignment(const Other& other)
-    {
-      resize(other.rows(), other.cols());
-      if(m_innerNonZeros)
-      {
-        std::free(m_innerNonZeros);
-        m_innerNonZeros = 0;
-      }
-    }
-
-    /** \internal
-      * \sa insert(Index,Index) */
-    EIGEN_DONT_INLINE Scalar& insertCompressed(Index row, Index col);
-
-    /** \internal
-      * A vector object that is equal to 0 everywhere but v at the position i */
-    class SingletonVector
-    {
-        Index m_index;
-        Index m_value;
-      public:
-        typedef Index value_type;
-        SingletonVector(Index i, Index v)
-          : m_index(i), m_value(v)
-        {}
-
-        Index operator[](Index i) const { return i==m_index ? m_value : 0; }
-    };
-
-    /** \internal
-      * \sa insert(Index,Index) */
-    EIGEN_DONT_INLINE Scalar& insertUncompressed(Index row, Index col);
-
-public:
-    /** \internal
-      * \sa insert(Index,Index) */
-    EIGEN_STRONG_INLINE Scalar& insertBackUncompressed(Index row, Index col)
-    {
-      const Index outer = IsRowMajor ? row : col;
-      const Index inner = IsRowMajor ? col : row;
-
-      eigen_assert(!isCompressed());
-      eigen_assert(m_innerNonZeros[outer]<=(m_outerIndex[outer+1] - m_outerIndex[outer]));
-
-      Index p = m_outerIndex[outer] + m_innerNonZeros[outer]++;
-      m_data.index(p) = inner;
-      return (m_data.value(p) = 0);
-    }
-
-private:
-  static void check_template_parameters()
-  {
-    EIGEN_STATIC_ASSERT(NumTraits<Index>::IsSigned,THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE);
-  }
-
-  struct default_prunning_func {
-    default_prunning_func(const Scalar& ref, const RealScalar& eps) : reference(ref), epsilon(eps) {}
-    inline bool operator() (const Index&, const Index&, const Scalar& value) const
-    {
-      return !internal::isMuchSmallerThan(value, reference, epsilon);
-    }
-    Scalar reference;
-    RealScalar epsilon;
-  };
-};
-
-template<typename Scalar, int _Options, typename _Index>
-class SparseMatrix<Scalar,_Options,_Index>::InnerIterator
-{
-  public:
-    InnerIterator(const SparseMatrix& mat, Index outer)
-      : m_values(mat.valuePtr()), m_indices(mat.innerIndexPtr()), m_outer(outer), m_id(mat.m_outerIndex[outer])
-    {
-      if(mat.isCompressed())
-        m_end = mat.m_outerIndex[outer+1];
-      else
-        m_end = m_id + mat.m_innerNonZeros[outer];
-    }
-
-    inline InnerIterator& operator++() { m_id++; return *this; }
-
-    inline const Scalar& value() const { return m_values[m_id]; }
-    inline Scalar& valueRef() { return const_cast<Scalar&>(m_values[m_id]); }
-
-    inline Index index() const { return m_indices[m_id]; }
-    inline Index outer() const { return m_outer; }
-    inline Index row() const { return IsRowMajor ? m_outer : index(); }
-    inline Index col() const { return IsRowMajor ? index() : m_outer; }
-
-    inline operator bool() const { return (m_id < m_end); }
-
-  protected:
-    const Scalar* m_values;
-    const Index* m_indices;
-    const Index m_outer;
-    Index m_id;
-    Index m_end;
-};
-
-template<typename Scalar, int _Options, typename _Index>
-class SparseMatrix<Scalar,_Options,_Index>::ReverseInnerIterator
-{
-  public:
-    ReverseInnerIterator(const SparseMatrix& mat, Index outer)
-      : m_values(mat.valuePtr()), m_indices(mat.innerIndexPtr()), m_outer(outer), m_start(mat.m_outerIndex[outer])
-    {
-      if(mat.isCompressed())
-        m_id = mat.m_outerIndex[outer+1];
-      else
-        m_id = m_start + mat.m_innerNonZeros[outer];
-    }
-
-    inline ReverseInnerIterator& operator--() { --m_id; return *this; }
-
-    inline const Scalar& value() const { return m_values[m_id-1]; }
-    inline Scalar& valueRef() { return const_cast<Scalar&>(m_values[m_id-1]); }
-
-    inline Index index() const { return m_indices[m_id-1]; }
-    inline Index outer() const { return m_outer; }
-    inline Index row() const { return IsRowMajor ? m_outer : index(); }
-    inline Index col() const { return IsRowMajor ? index() : m_outer; }
-
-    inline operator bool() const { return (m_id > m_start); }
-
-  protected:
-    const Scalar* m_values;
-    const Index* m_indices;
-    const Index m_outer;
-    Index m_id;
-    const Index m_start;
-};
-
-namespace internal {
-
-template<typename InputIterator, typename SparseMatrixType>
-void set_from_triplets(const InputIterator& begin, const InputIterator& end, SparseMatrixType& mat, int Options = 0)
-{
-  EIGEN_UNUSED_VARIABLE(Options);
-  enum { IsRowMajor = SparseMatrixType::IsRowMajor };
-  typedef typename SparseMatrixType::Scalar Scalar;
-  SparseMatrix<Scalar,IsRowMajor?ColMajor:RowMajor> trMat(mat.rows(),mat.cols());
-
-  // pass 1: count the nnz per inner-vector
-  VectorXi wi(trMat.outerSize());
-  wi.setZero();
-  for(InputIterator it(begin); it!=end; ++it)
-    wi(IsRowMajor ? it->col() : it->row())++;
-
-  // pass 2: insert all the elements into trMat
-  trMat.reserve(wi);
-  for(InputIterator it(begin); it!=end; ++it)
-    trMat.insertBackUncompressed(it->row(),it->col()) = it->value();
-
-  // pass 3:
-  trMat.sumupDuplicates();
-
-  // pass 4: transposed copy -> implicit sorting
-  mat = trMat;
-}
-
-}
-
-
-/** Fill the matrix \c *this with the list of \em triplets defined by the iterator range \a begin - \a end.
-  *
-  * A \em triplet is a tuple (i,j,value) defining a non-zero element.
-  * The input list of triplets does not have to be sorted, and can contains duplicated elements.
-  * In any case, the result is a \b sorted and \b compressed sparse matrix where the duplicates have been summed up.
-  * This is a \em O(n) operation, with \em n the number of triplet elements.
-  * The initial contents of \c *this is destroyed.
-  * The matrix \c *this must be properly resized beforehand using the SparseMatrix(Index,Index) constructor,
-  * or the resize(Index,Index) method. The sizes are not extracted from the triplet list.
-  *
-  * The \a InputIterators value_type must provide the following interface:
-  * \code
-  * Scalar value() const; // the value
-  * Scalar row() const;   // the row index i
-  * Scalar col() const;   // the column index j
-  * \endcode
-  * See for instance the Eigen::Triplet template class.
-  *
-  * Here is a typical usage example:
-  * \code
-    typedef Triplet<double> T;
-    std::vector<T> tripletList;
-    triplets.reserve(estimation_of_entries);
-    for(...)
-    {
-      // ...
-      tripletList.push_back(T(i,j,v_ij));
-    }
-    SparseMatrixType m(rows,cols);
-    m.setFromTriplets(tripletList.begin(), tripletList.end());
-    // m is ready to go!
-  * \endcode
-  *
-  * \warning The list of triplets is read multiple times (at least twice). Therefore, it is not recommended to define
-  * an abstract iterator over a complex data-structure that would be expensive to evaluate. The triplets should rather
-  * be explicitely stored into a std::vector for instance.
-  */
-template<typename Scalar, int _Options, typename _Index>
-template<typename InputIterators>
-void SparseMatrix<Scalar,_Options,_Index>::setFromTriplets(const InputIterators& begin, const InputIterators& end)
-{
-  internal::set_from_triplets(begin, end, *this);
-}
-
-/** \internal */
-template<typename Scalar, int _Options, typename _Index>
-void SparseMatrix<Scalar,_Options,_Index>::sumupDuplicates()
-{
-  eigen_assert(!isCompressed());
-  // TODO, in practice we should be able to use m_innerNonZeros for that task
-  VectorXi wi(innerSize());
-  wi.fill(-1);
-  Index count = 0;
-  // for each inner-vector, wi[inner_index] will hold the position of first element into the index/value buffers
-  for(int j=0; j<outerSize(); ++j)
-  {
-    Index start   = count;
-    Index oldEnd  = m_outerIndex[j]+m_innerNonZeros[j];
-    for(Index k=m_outerIndex[j]; k<oldEnd; ++k)
-    {
-      Index i = m_data.index(k);
-      if(wi(i)>=start)
-      {
-        // we already meet this entry => accumulate it
-        m_data.value(wi(i)) += m_data.value(k);
-      }
-      else
-      {
-        m_data.value(count) = m_data.value(k);
-        m_data.index(count) = m_data.index(k);
-        wi(i) = count;
-        ++count;
-      }
-    }
-    m_outerIndex[j] = start;
-  }
-  m_outerIndex[m_outerSize] = count;
-
-  // turn the matrix into compressed form
-  std::free(m_innerNonZeros);
-  m_innerNonZeros = 0;
-  m_data.resize(m_outerIndex[m_outerSize]);
-}
-
-template<typename Scalar, int _Options, typename _Index>
-template<typename OtherDerived>
-EIGEN_DONT_INLINE SparseMatrix<Scalar,_Options,_Index>& SparseMatrix<Scalar,_Options,_Index>::operator=(const SparseMatrixBase<OtherDerived>& other)
-{
-  const bool needToTranspose = (Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit);
-  if (needToTranspose)
-  {
-    // two passes algorithm:
-    //  1 - compute the number of coeffs per dest inner vector
-    //  2 - do the actual copy/eval
-    // Since each coeff of the rhs has to be evaluated twice, let's evaluate it if needed
-    typedef typename internal::nested<OtherDerived,2>::type OtherCopy;
-    typedef typename internal::remove_all<OtherCopy>::type _OtherCopy;
-    OtherCopy otherCopy(other.derived());
-
-    SparseMatrix dest(other.rows(),other.cols());
-    Eigen::Map<Matrix<Index, Dynamic, 1> > (dest.m_outerIndex,dest.outerSize()).setZero();
-
-    // pass 1
-    // FIXME the above copy could be merged with that pass
-    for (Index j=0; j<otherCopy.outerSize(); ++j)
-      for (typename _OtherCopy::InnerIterator it(otherCopy, j); it; ++it)
-        ++dest.m_outerIndex[it.index()];
-
-    // prefix sum
-    Index count = 0;
-    VectorXi positions(dest.outerSize());
-    for (Index j=0; j<dest.outerSize(); ++j)
-    {
-      Index tmp = dest.m_outerIndex[j];
-      dest.m_outerIndex[j] = count;
-      positions[j] = count;
-      count += tmp;
-    }
-    dest.m_outerIndex[dest.outerSize()] = count;
-    // alloc
-    dest.m_data.resize(count);
-    // pass 2
-    for (Index j=0; j<otherCopy.outerSize(); ++j)
-    {
-      for (typename _OtherCopy::InnerIterator it(otherCopy, j); it; ++it)
-      {
-        Index pos = positions[it.index()]++;
-        dest.m_data.index(pos) = j;
-        dest.m_data.value(pos) = it.value();
-      }
-    }
-    this->swap(dest);
-    return *this;
-  }
-  else
-  {
-    if(other.isRValue())
-      initAssignment(other.derived());
-    // there is no special optimization
-    return Base::operator=(other.derived());
-  }
-}
-
-template<typename _Scalar, int _Options, typename _Index>
-EIGEN_DONT_INLINE typename SparseMatrix<_Scalar,_Options,_Index>::Scalar& SparseMatrix<_Scalar,_Options,_Index>::insertUncompressed(Index row, Index col)
-{
-  eigen_assert(!isCompressed());
-
-  const Index outer = IsRowMajor ? row : col;
-  const Index inner = IsRowMajor ? col : row;
-
-  Index room = m_outerIndex[outer+1] - m_outerIndex[outer];
-  Index innerNNZ = m_innerNonZeros[outer];
-  if(innerNNZ>=room)
-  {
-    // this inner vector is full, we need to reallocate the whole buffer :(
-    reserve(SingletonVector(outer,std::max<Index>(2,innerNNZ)));
-  }
-
-  Index startId = m_outerIndex[outer];
-  Index p = startId + m_innerNonZeros[outer];
-  while ( (p > startId) && (m_data.index(p-1) > inner) )
-  {
-    m_data.index(p) = m_data.index(p-1);
-    m_data.value(p) = m_data.value(p-1);
-    --p;
-  }
-  eigen_assert((p<=startId || m_data.index(p-1)!=inner) && "you cannot insert an element that already exist, you must call coeffRef to this end");
-
-  m_innerNonZeros[outer]++;
-
-  m_data.index(p) = inner;
-  return (m_data.value(p) = 0);
-}
-
-template<typename _Scalar, int _Options, typename _Index>
-EIGEN_DONT_INLINE typename SparseMatrix<_Scalar,_Options,_Index>::Scalar& SparseMatrix<_Scalar,_Options,_Index>::insertCompressed(Index row, Index col)
-{
-  eigen_assert(isCompressed());
-
-  const Index outer = IsRowMajor ? row : col;
-  const Index inner = IsRowMajor ? col : row;
-
-  Index previousOuter = outer;
-  if (m_outerIndex[outer+1]==0)
-  {
-    // we start a new inner vector
-    while (previousOuter>=0 && m_outerIndex[previousOuter]==0)
-    {
-      m_outerIndex[previousOuter] = static_cast<Index>(m_data.size());
-      --previousOuter;
-    }
-    m_outerIndex[outer+1] = m_outerIndex[outer];
-  }
-
-  // here we have to handle the tricky case where the outerIndex array
-  // starts with: [ 0 0 0 0 0 1 ...] and we are inserted in, e.g.,
-  // the 2nd inner vector...
-  bool isLastVec = (!(previousOuter==-1 && m_data.size()!=0))
-                && (size_t(m_outerIndex[outer+1]) == m_data.size());
-
-  size_t startId = m_outerIndex[outer];
-  // FIXME let's make sure sizeof(long int) == sizeof(size_t)
-  size_t p = m_outerIndex[outer+1];
-  ++m_outerIndex[outer+1];
-
-  float reallocRatio = 1;
-  if (m_data.allocatedSize()<=m_data.size())
-  {
-    // if there is no preallocated memory, let's reserve a minimum of 32 elements
-    if (m_data.size()==0)
-    {
-      m_data.reserve(32);
-    }
-    else
-    {
-      // we need to reallocate the data, to reduce multiple reallocations
-      // we use a smart resize algorithm based on the current filling ratio
-      // in addition, we use float to avoid integers overflows
-      float nnzEstimate = float(m_outerIndex[outer])*float(m_outerSize)/float(outer+1);
-      reallocRatio = (nnzEstimate-float(m_data.size()))/float(m_data.size());
-      // furthermore we bound the realloc ratio to:
-      //   1) reduce multiple minor realloc when the matrix is almost filled
-      //   2) avoid to allocate too much memory when the matrix is almost empty
-      reallocRatio = (std::min)((std::max)(reallocRatio,1.5f),8.f);
-    }
-  }
-  m_data.resize(m_data.size()+1,reallocRatio);
-
-  if (!isLastVec)
-  {
-    if (previousOuter==-1)
-    {
-      // oops wrong guess.
-      // let's correct the outer offsets
-      for (Index k=0; k<=(outer+1); ++k)
-        m_outerIndex[k] = 0;
-      Index k=outer+1;
-      while(m_outerIndex[k]==0)
-        m_outerIndex[k++] = 1;
-      while (k<=m_outerSize && m_outerIndex[k]!=0)
-        m_outerIndex[k++]++;
-      p = 0;
-      --k;
-      k = m_outerIndex[k]-1;
-      while (k>0)
-      {
-        m_data.index(k) = m_data.index(k-1);
-        m_data.value(k) = m_data.value(k-1);
-        k--;
-      }
-    }
-    else
-    {
-      // we are not inserting into the last inner vec
-      // update outer indices:
-      Index j = outer+2;
-      while (j<=m_outerSize && m_outerIndex[j]!=0)
-        m_outerIndex[j++]++;
-      --j;
-      // shift data of last vecs:
-      Index k = m_outerIndex[j]-1;
-      while (k>=Index(p))
-      {
-        m_data.index(k) = m_data.index(k-1);
-        m_data.value(k) = m_data.value(k-1);
-        k--;
-      }
-    }
-  }
-
-  while ( (p > startId) && (m_data.index(p-1) > inner) )
-  {
-    m_data.index(p) = m_data.index(p-1);
-    m_data.value(p) = m_data.value(p-1);
-    --p;
-  }
-
-  m_data.index(p) = inner;
-  return (m_data.value(p) = 0);
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSEMATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseMatrixBase.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseMatrixBase.h
deleted file mode 100644
index 5903396..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseMatrixBase.h
+++ /dev/null
@@ -1,448 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSEMATRIXBASE_H
-#define EIGEN_SPARSEMATRIXBASE_H
-
-namespace Eigen { 
-
-/** \ingroup SparseCore_Module
-  *
-  * \class SparseMatrixBase
-  *
-  * \brief Base class of any sparse matrices or sparse expressions
-  *
-  * \tparam Derived
-  *
-  * This class can be extended with the help of the plugin mechanism described on the page
-  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_SPARSEMATRIXBASE_PLUGIN.
-  */
-template<typename Derived> class SparseMatrixBase : public EigenBase<Derived>
-{
-  public:
-
-    typedef typename internal::traits<Derived>::Scalar Scalar;
-    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
-    typedef typename internal::traits<Derived>::StorageKind StorageKind;
-    typedef typename internal::traits<Derived>::Index Index;
-    typedef typename internal::add_const_on_value_type_if_arithmetic<
-                         typename internal::packet_traits<Scalar>::type
-                     >::type PacketReturnType;
-
-    typedef SparseMatrixBase StorageBaseType;
-    typedef EigenBase<Derived> Base;
-    
-    template<typename OtherDerived>
-    Derived& operator=(const EigenBase<OtherDerived> &other)
-    {
-      other.derived().evalTo(derived());
-      return derived();
-    }
-
-    enum {
-
-      RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
-        /**< The number of rows at compile-time. This is just a copy of the value provided
-          * by the \a Derived type. If a value is not known at compile-time,
-          * it is set to the \a Dynamic constant.
-          * \sa MatrixBase::rows(), MatrixBase::cols(), ColsAtCompileTime, SizeAtCompileTime */
-
-      ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
-        /**< The number of columns at compile-time. This is just a copy of the value provided
-          * by the \a Derived type. If a value is not known at compile-time,
-          * it is set to the \a Dynamic constant.
-          * \sa MatrixBase::rows(), MatrixBase::cols(), RowsAtCompileTime, SizeAtCompileTime */
-
-
-      SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
-                                                   internal::traits<Derived>::ColsAtCompileTime>::ret),
-        /**< This is equal to the number of coefficients, i.e. the number of
-          * rows times the number of columns, or to \a Dynamic if this is not
-          * known at compile-time. \sa RowsAtCompileTime, ColsAtCompileTime */
-
-      MaxRowsAtCompileTime = RowsAtCompileTime,
-      MaxColsAtCompileTime = ColsAtCompileTime,
-
-      MaxSizeAtCompileTime = (internal::size_at_compile_time<MaxRowsAtCompileTime,
-                                                      MaxColsAtCompileTime>::ret),
-
-      IsVectorAtCompileTime = RowsAtCompileTime == 1 || ColsAtCompileTime == 1,
-        /**< This is set to true if either the number of rows or the number of
-          * columns is known at compile-time to be equal to 1. Indeed, in that case,
-          * we are dealing with a column-vector (if there is only one column) or with
-          * a row-vector (if there is only one row). */
-
-      Flags = internal::traits<Derived>::Flags,
-        /**< This stores expression \ref flags flags which may or may not be inherited by new expressions
-          * constructed from this one. See the \ref flags "list of flags".
-          */
-
-      CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
-        /**< This is a rough measure of how expensive it is to read one coefficient from
-          * this expression.
-          */
-
-      IsRowMajor = Flags&RowMajorBit ? 1 : 0,
-
-      #ifndef EIGEN_PARSED_BY_DOXYGEN
-      _HasDirectAccess = (int(Flags)&DirectAccessBit) ? 1 : 0 // workaround sunCC
-      #endif
-    };
-
-    /** \internal the return type of MatrixBase::adjoint() */
-    typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
-                        CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, Eigen::Transpose<const Derived> >,
-                        Transpose<const Derived>
-                     >::type AdjointReturnType;
-
-
-    typedef SparseMatrix<Scalar, Flags&RowMajorBit ? RowMajor : ColMajor> PlainObject;
-
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** This is the "real scalar" type; if the \a Scalar type is already real numbers
-      * (e.g. int, float or double) then \a RealScalar is just the same as \a Scalar. If
-      * \a Scalar is \a std::complex<T> then RealScalar is \a T.
-      *
-      * \sa class NumTraits
-      */
-    typedef typename NumTraits<Scalar>::Real RealScalar;
-
-    /** \internal the return type of coeff()
-      */
-    typedef typename internal::conditional<_HasDirectAccess, const Scalar&, Scalar>::type CoeffReturnType;
-
-    /** \internal Represents a matrix with all coefficients equal to one another*/
-    typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,Matrix<Scalar,Dynamic,Dynamic> > ConstantReturnType;
-
-    /** type of the equivalent square matrix */
-    typedef Matrix<Scalar,EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime),
-                          EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime)> SquareMatrixType;
-
-    inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
-    inline Derived& derived() { return *static_cast<Derived*>(this); }
-    inline Derived& const_cast_derived() const
-    { return *static_cast<Derived*>(const_cast<SparseMatrixBase*>(this)); }
-#endif // not EIGEN_PARSED_BY_DOXYGEN
-
-#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::SparseMatrixBase
-#   include "../plugins/CommonCwiseUnaryOps.h"
-#   include "../plugins/CommonCwiseBinaryOps.h"
-#   include "../plugins/MatrixCwiseUnaryOps.h"
-#   include "../plugins/MatrixCwiseBinaryOps.h"
-#   include "../plugins/BlockMethods.h"
-#   ifdef EIGEN_SPARSEMATRIXBASE_PLUGIN
-#     include EIGEN_SPARSEMATRIXBASE_PLUGIN
-#   endif
-#   undef EIGEN_CURRENT_STORAGE_BASE_CLASS
-#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
-
-    /** \returns the number of rows. \sa cols() */
-    inline Index rows() const { return derived().rows(); }
-    /** \returns the number of columns. \sa rows() */
-    inline Index cols() const { return derived().cols(); }
-    /** \returns the number of coefficients, which is \a rows()*cols().
-      * \sa rows(), cols(). */
-    inline Index size() const { return rows() * cols(); }
-    /** \returns the number of nonzero coefficients which is in practice the number
-      * of stored coefficients. */
-    inline Index nonZeros() const { return derived().nonZeros(); }
-    /** \returns true if either the number of rows or the number of columns is equal to 1.
-      * In other words, this function returns
-      * \code rows()==1 || cols()==1 \endcode
-      * \sa rows(), cols(), IsVectorAtCompileTime. */
-    inline bool isVector() const { return rows()==1 || cols()==1; }
-    /** \returns the size of the storage major dimension,
-      * i.e., the number of columns for a columns major matrix, and the number of rows otherwise */
-    Index outerSize() const { return (int(Flags)&RowMajorBit) ? this->rows() : this->cols(); }
-    /** \returns the size of the inner dimension according to the storage order,
-      * i.e., the number of rows for a columns major matrix, and the number of cols otherwise */
-    Index innerSize() const { return (int(Flags)&RowMajorBit) ? this->cols() : this->rows(); }
-
-    bool isRValue() const { return m_isRValue; }
-    Derived& markAsRValue() { m_isRValue = true; return derived(); }
-
-    SparseMatrixBase() : m_isRValue(false) { /* TODO check flags */ }
-
-    
-    template<typename OtherDerived>
-    Derived& operator=(const ReturnByValue<OtherDerived>& other)
-    {
-      other.evalTo(derived());
-      return derived();
-    }
-
-
-    template<typename OtherDerived>
-    inline Derived& operator=(const SparseMatrixBase<OtherDerived>& other)
-    {
-      return assign(other.derived());
-    }
-
-    inline Derived& operator=(const Derived& other)
-    {
-//       if (other.isRValue())
-//         derived().swap(other.const_cast_derived());
-//       else
-      return assign(other.derived());
-    }
-
-  protected:
-
-    template<typename OtherDerived>
-    inline Derived& assign(const OtherDerived& other)
-    {
-      const bool transpose = (Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit);
-      const Index outerSize = (int(OtherDerived::Flags) & RowMajorBit) ? other.rows() : other.cols();
-      if ((!transpose) && other.isRValue())
-      {
-        // eval without temporary
-        derived().resize(other.rows(), other.cols());
-        derived().setZero();
-        derived().reserve((std::max)(this->rows(),this->cols())*2);
-        for (Index j=0; j<outerSize; ++j)
-        {
-          derived().startVec(j);
-          for (typename OtherDerived::InnerIterator it(other, j); it; ++it)
-          {
-            Scalar v = it.value();
-            derived().insertBackByOuterInner(j,it.index()) = v;
-          }
-        }
-        derived().finalize();
-      }
-      else
-      {
-        assignGeneric(other);
-      }
-      return derived();
-    }
-
-    template<typename OtherDerived>
-    inline void assignGeneric(const OtherDerived& other)
-    {
-      //const bool transpose = (Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit);
-      eigen_assert(( ((internal::traits<Derived>::SupportedAccessPatterns&OuterRandomAccessPattern)==OuterRandomAccessPattern) ||
-                  (!((Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit)))) &&
-                  "the transpose operation is supposed to be handled in SparseMatrix::operator=");
-
-      enum { Flip = (Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit) };
-
-      const Index outerSize = other.outerSize();
-      //typedef typename internal::conditional<transpose, LinkedVectorMatrix<Scalar,Flags&RowMajorBit>, Derived>::type TempType;
-      // thanks to shallow copies, we always eval to a tempary
-      Derived temp(other.rows(), other.cols());
-
-      temp.reserve((std::max)(this->rows(),this->cols())*2);
-      for (Index j=0; j<outerSize; ++j)
-      {
-        temp.startVec(j);
-        for (typename OtherDerived::InnerIterator it(other.derived(), j); it; ++it)
-        {
-          Scalar v = it.value();
-          temp.insertBackByOuterInner(Flip?it.index():j,Flip?j:it.index()) = v;
-        }
-      }
-      temp.finalize();
-
-      derived() = temp.markAsRValue();
-    }
-
-  public:
-
-    template<typename Lhs, typename Rhs>
-    inline Derived& operator=(const SparseSparseProduct<Lhs,Rhs>& product);
-
-    friend std::ostream & operator << (std::ostream & s, const SparseMatrixBase& m)
-    {
-      typedef typename Derived::Nested Nested;
-      typedef typename internal::remove_all<Nested>::type NestedCleaned;
-
-      if (Flags&RowMajorBit)
-      {
-        const Nested nm(m.derived());
-        for (Index row=0; row<nm.outerSize(); ++row)
-        {
-          Index col = 0;
-          for (typename NestedCleaned::InnerIterator it(nm.derived(), row); it; ++it)
-          {
-            for ( ; col<it.index(); ++col)
-              s << "0 ";
-            s << it.value() << " ";
-            ++col;
-          }
-          for ( ; col<m.cols(); ++col)
-            s << "0 ";
-          s << std::endl;
-        }
-      }
-      else
-      {
-        const Nested nm(m.derived());
-        if (m.cols() == 1) {
-          Index row = 0;
-          for (typename NestedCleaned::InnerIterator it(nm.derived(), 0); it; ++it)
-          {
-            for ( ; row<it.index(); ++row)
-              s << "0" << std::endl;
-            s << it.value() << std::endl;
-            ++row;
-          }
-          for ( ; row<m.rows(); ++row)
-            s << "0" << std::endl;
-        }
-        else
-        {
-          SparseMatrix<Scalar, RowMajorBit> trans = m;
-          s << static_cast<const SparseMatrixBase<SparseMatrix<Scalar, RowMajorBit> >&>(trans);
-        }
-      }
-      return s;
-    }
-
-    template<typename OtherDerived>
-    Derived& operator+=(const SparseMatrixBase<OtherDerived>& other);
-    template<typename OtherDerived>
-    Derived& operator-=(const SparseMatrixBase<OtherDerived>& other);
-
-    Derived& operator*=(const Scalar& other);
-    Derived& operator/=(const Scalar& other);
-
-    #define EIGEN_SPARSE_CWISE_PRODUCT_RETURN_TYPE \
-      CwiseBinaryOp< \
-        internal::scalar_product_op< \
-          typename internal::scalar_product_traits< \
-            typename internal::traits<Derived>::Scalar, \
-            typename internal::traits<OtherDerived>::Scalar \
-          >::ReturnType \
-        >, \
-        Derived, \
-        OtherDerived \
-      >
-
-    template<typename OtherDerived>
-    EIGEN_STRONG_INLINE const EIGEN_SPARSE_CWISE_PRODUCT_RETURN_TYPE
-    cwiseProduct(const MatrixBase<OtherDerived> &other) const;
-
-    // sparse * sparse
-    template<typename OtherDerived>
-    const typename SparseSparseProductReturnType<Derived,OtherDerived>::Type
-    operator*(const SparseMatrixBase<OtherDerived> &other) const;
-
-    // sparse * diagonal
-    template<typename OtherDerived>
-    const SparseDiagonalProduct<Derived,OtherDerived>
-    operator*(const DiagonalBase<OtherDerived> &other) const;
-
-    // diagonal * sparse
-    template<typename OtherDerived> friend
-    const SparseDiagonalProduct<OtherDerived,Derived>
-    operator*(const DiagonalBase<OtherDerived> &lhs, const SparseMatrixBase& rhs)
-    { return SparseDiagonalProduct<OtherDerived,Derived>(lhs.derived(), rhs.derived()); }
-
-    /** dense * sparse (return a dense object unless it is an outer product) */
-    template<typename OtherDerived> friend
-    const typename DenseSparseProductReturnType<OtherDerived,Derived>::Type
-    operator*(const MatrixBase<OtherDerived>& lhs, const Derived& rhs)
-    { return typename DenseSparseProductReturnType<OtherDerived,Derived>::Type(lhs.derived(),rhs); }
-
-    /** sparse * dense (returns a dense object unless it is an outer product) */
-    template<typename OtherDerived>
-    const typename SparseDenseProductReturnType<Derived,OtherDerived>::Type
-    operator*(const MatrixBase<OtherDerived> &other) const;
-    
-     /** \returns an expression of P H P^-1 where H is the matrix represented by \c *this */
-    SparseSymmetricPermutationProduct<Derived,Upper|Lower> twistedBy(const PermutationMatrix<Dynamic,Dynamic,Index>& perm) const
-    {
-      return SparseSymmetricPermutationProduct<Derived,Upper|Lower>(derived(), perm);
-    }
-
-    template<typename OtherDerived>
-    Derived& operator*=(const SparseMatrixBase<OtherDerived>& other);
-
-    #ifdef EIGEN2_SUPPORT
-    // deprecated
-    template<typename OtherDerived>
-    typename internal::plain_matrix_type_column_major<OtherDerived>::type
-    solveTriangular(const MatrixBase<OtherDerived>& other) const;
-
-    // deprecated
-    template<typename OtherDerived>
-    void solveTriangularInPlace(MatrixBase<OtherDerived>& other) const;
-    #endif // EIGEN2_SUPPORT
-
-    template<int Mode>
-    inline const SparseTriangularView<Derived, Mode> triangularView() const;
-
-    template<unsigned int UpLo> inline const SparseSelfAdjointView<Derived, UpLo> selfadjointView() const;
-    template<unsigned int UpLo> inline SparseSelfAdjointView<Derived, UpLo> selfadjointView();
-
-    template<typename OtherDerived> Scalar dot(const MatrixBase<OtherDerived>& other) const;
-    template<typename OtherDerived> Scalar dot(const SparseMatrixBase<OtherDerived>& other) const;
-    RealScalar squaredNorm() const;
-    RealScalar norm()  const;
-    RealScalar blueNorm() const;
-
-    Transpose<Derived> transpose() { return derived(); }
-    const Transpose<const Derived> transpose() const { return derived(); }
-    const AdjointReturnType adjoint() const { return transpose(); }
-
-    // inner-vector
-    typedef Block<Derived,IsRowMajor?1:Dynamic,IsRowMajor?Dynamic:1,true>       InnerVectorReturnType;
-    typedef Block<const Derived,IsRowMajor?1:Dynamic,IsRowMajor?Dynamic:1,true> ConstInnerVectorReturnType;
-    InnerVectorReturnType innerVector(Index outer);
-    const ConstInnerVectorReturnType innerVector(Index outer) const;
-
-    // set of inner-vectors
-    Block<Derived,Dynamic,Dynamic,true> innerVectors(Index outerStart, Index outerSize);
-    const Block<const Derived,Dynamic,Dynamic,true> innerVectors(Index outerStart, Index outerSize) const;
-
-      /** \internal use operator= */
-      template<typename DenseDerived>
-      void evalTo(MatrixBase<DenseDerived>& dst) const
-      {
-        dst.setZero();
-        for (Index j=0; j<outerSize(); ++j)
-          for (typename Derived::InnerIterator i(derived(),j); i; ++i)
-            dst.coeffRef(i.row(),i.col()) = i.value();
-      }
-
-      Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime> toDense() const
-      {
-        return derived();
-      }
-
-    template<typename OtherDerived>
-    bool isApprox(const SparseMatrixBase<OtherDerived>& other,
-                  const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const
-    { return toDense().isApprox(other.toDense(),prec); }
-
-    template<typename OtherDerived>
-    bool isApprox(const MatrixBase<OtherDerived>& other,
-                  const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const
-    { return toDense().isApprox(other,prec); }
-
-    /** \returns the matrix or vector obtained by evaluating this expression.
-      *
-      * Notice that in the case of a plain matrix or vector (not an expression) this function just returns
-      * a const reference, in order to avoid a useless copy.
-      */
-    inline const typename internal::eval<Derived>::type eval() const
-    { return typename internal::eval<Derived>::type(derived()); }
-
-    Scalar sum() const;
-
-  protected:
-
-    bool m_isRValue;
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSEMATRIXBASE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparsePermutation.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparsePermutation.h
deleted file mode 100644
index b897b75..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparsePermutation.h
+++ /dev/null
@@ -1,148 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSE_PERMUTATION_H
-#define EIGEN_SPARSE_PERMUTATION_H
-
-// This file implements sparse * permutation products
-
-namespace Eigen { 
-
-namespace internal {
-
-template<typename PermutationType, typename MatrixType, int Side, bool Transposed>
-struct traits<permut_sparsematrix_product_retval<PermutationType, MatrixType, Side, Transposed> >
-{
-  typedef typename remove_all<typename MatrixType::Nested>::type MatrixTypeNestedCleaned;
-  typedef typename MatrixTypeNestedCleaned::Scalar Scalar;
-  typedef typename MatrixTypeNestedCleaned::Index Index;
-  enum {
-    SrcStorageOrder = MatrixTypeNestedCleaned::Flags&RowMajorBit ? RowMajor : ColMajor,
-    MoveOuter = SrcStorageOrder==RowMajor ? Side==OnTheLeft : Side==OnTheRight
-  };
-
-  typedef typename internal::conditional<MoveOuter,
-        SparseMatrix<Scalar,SrcStorageOrder,Index>,
-        SparseMatrix<Scalar,int(SrcStorageOrder)==RowMajor?ColMajor:RowMajor,Index> >::type ReturnType;
-};
-
-template<typename PermutationType, typename MatrixType, int Side, bool Transposed>
-struct permut_sparsematrix_product_retval
- : public ReturnByValue<permut_sparsematrix_product_retval<PermutationType, MatrixType, Side, Transposed> >
-{
-    typedef typename remove_all<typename MatrixType::Nested>::type MatrixTypeNestedCleaned;
-    typedef typename MatrixTypeNestedCleaned::Scalar Scalar;
-    typedef typename MatrixTypeNestedCleaned::Index Index;
-
-    enum {
-      SrcStorageOrder = MatrixTypeNestedCleaned::Flags&RowMajorBit ? RowMajor : ColMajor,
-      MoveOuter = SrcStorageOrder==RowMajor ? Side==OnTheLeft : Side==OnTheRight
-    };
-
-    permut_sparsematrix_product_retval(const PermutationType& perm, const MatrixType& matrix)
-      : m_permutation(perm), m_matrix(matrix)
-    {}
-
-    inline int rows() const { return m_matrix.rows(); }
-    inline int cols() const { return m_matrix.cols(); }
-
-    template<typename Dest> inline void evalTo(Dest& dst) const
-    {
-      if(MoveOuter)
-      {
-        SparseMatrix<Scalar,SrcStorageOrder,Index> tmp(m_matrix.rows(), m_matrix.cols());
-        VectorXi sizes(m_matrix.outerSize());
-        for(Index j=0; j<m_matrix.outerSize(); ++j)
-        {
-          Index jp = m_permutation.indices().coeff(j);
-          sizes[((Side==OnTheLeft) ^ Transposed) ? jp : j] = m_matrix.innerVector(((Side==OnTheRight) ^ Transposed) ? jp : j).size();
-        }
-        tmp.reserve(sizes);
-        for(Index j=0; j<m_matrix.outerSize(); ++j)
-        {
-          Index jp = m_permutation.indices().coeff(j);
-          Index jsrc = ((Side==OnTheRight) ^ Transposed) ? jp : j;
-          Index jdst = ((Side==OnTheLeft) ^ Transposed) ? jp : j;
-          for(typename MatrixTypeNestedCleaned::InnerIterator it(m_matrix,jsrc); it; ++it)
-            tmp.insertByOuterInner(jdst,it.index()) = it.value();
-        }
-        dst = tmp;
-      }
-      else
-      {
-        SparseMatrix<Scalar,int(SrcStorageOrder)==RowMajor?ColMajor:RowMajor,Index> tmp(m_matrix.rows(), m_matrix.cols());
-        VectorXi sizes(tmp.outerSize());
-        sizes.setZero();
-        PermutationMatrix<Dynamic,Dynamic,Index> perm;
-        if((Side==OnTheLeft) ^ Transposed)
-          perm = m_permutation;
-        else
-          perm = m_permutation.transpose();
-
-        for(Index j=0; j<m_matrix.outerSize(); ++j)
-          for(typename MatrixTypeNestedCleaned::InnerIterator it(m_matrix,j); it; ++it)
-            sizes[perm.indices().coeff(it.index())]++;
-        tmp.reserve(sizes);
-        for(Index j=0; j<m_matrix.outerSize(); ++j)
-          for(typename MatrixTypeNestedCleaned::InnerIterator it(m_matrix,j); it; ++it)
-            tmp.insertByOuterInner(perm.indices().coeff(it.index()),j) = it.value();
-        dst = tmp;
-      }
-    }
-
-  protected:
-    const PermutationType& m_permutation;
-    typename MatrixType::Nested m_matrix;
-};
-
-}
-
-
-
-/** \returns the matrix with the permutation applied to the columns
-  */
-template<typename SparseDerived, typename PermDerived>
-inline const internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheRight, false>
-operator*(const SparseMatrixBase<SparseDerived>& matrix, const PermutationBase<PermDerived>& perm)
-{
-  return internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheRight, false>(perm, matrix.derived());
-}
-
-/** \returns the matrix with the permutation applied to the rows
-  */
-template<typename SparseDerived, typename PermDerived>
-inline const internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheLeft, false>
-operator*( const PermutationBase<PermDerived>& perm, const SparseMatrixBase<SparseDerived>& matrix)
-{
-  return internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheLeft, false>(perm, matrix.derived());
-}
-
-
-
-/** \returns the matrix with the inverse permutation applied to the columns.
-  */
-template<typename SparseDerived, typename PermDerived>
-inline const internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheRight, true>
-operator*(const SparseMatrixBase<SparseDerived>& matrix, const Transpose<PermutationBase<PermDerived> >& tperm)
-{
-  return internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheRight, true>(tperm.nestedPermutation(), matrix.derived());
-}
-
-/** \returns the matrix with the inverse permutation applied to the rows.
-  */
-template<typename SparseDerived, typename PermDerived>
-inline const internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheLeft, true>
-operator*(const Transpose<PermutationBase<PermDerived> >& tperm, const SparseMatrixBase<SparseDerived>& matrix)
-{
-  return internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheLeft, true>(tperm.nestedPermutation(), matrix.derived());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSE_SELFADJOINTVIEW_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseProduct.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseProduct.h
deleted file mode 100644
index 70b6480..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseProduct.h
+++ /dev/null
@@ -1,187 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSEPRODUCT_H
-#define EIGEN_SPARSEPRODUCT_H
-
-namespace Eigen { 
-
-template<typename Lhs, typename Rhs>
-struct SparseSparseProductReturnType
-{
-  typedef typename internal::traits<Lhs>::Scalar Scalar;
-  enum {
-    LhsRowMajor = internal::traits<Lhs>::Flags & RowMajorBit,
-    RhsRowMajor = internal::traits<Rhs>::Flags & RowMajorBit,
-    TransposeRhs = (!LhsRowMajor) && RhsRowMajor,
-    TransposeLhs = LhsRowMajor && (!RhsRowMajor)
-  };
-
-  typedef typename internal::conditional<TransposeLhs,
-    SparseMatrix<Scalar,0>,
-    typename internal::nested<Lhs,Rhs::RowsAtCompileTime>::type>::type LhsNested;
-
-  typedef typename internal::conditional<TransposeRhs,
-    SparseMatrix<Scalar,0>,
-    typename internal::nested<Rhs,Lhs::RowsAtCompileTime>::type>::type RhsNested;
-
-  typedef SparseSparseProduct<LhsNested, RhsNested> Type;
-};
-
-namespace internal {
-template<typename LhsNested, typename RhsNested>
-struct traits<SparseSparseProduct<LhsNested, RhsNested> >
-{
-  typedef MatrixXpr XprKind;
-  // clean the nested types:
-  typedef typename remove_all<LhsNested>::type _LhsNested;
-  typedef typename remove_all<RhsNested>::type _RhsNested;
-  typedef typename _LhsNested::Scalar Scalar;
-  typedef typename promote_index_type<typename traits<_LhsNested>::Index,
-                                         typename traits<_RhsNested>::Index>::type Index;
-
-  enum {
-    LhsCoeffReadCost = _LhsNested::CoeffReadCost,
-    RhsCoeffReadCost = _RhsNested::CoeffReadCost,
-    LhsFlags = _LhsNested::Flags,
-    RhsFlags = _RhsNested::Flags,
-
-    RowsAtCompileTime    = _LhsNested::RowsAtCompileTime,
-    ColsAtCompileTime    = _RhsNested::ColsAtCompileTime,
-    MaxRowsAtCompileTime = _LhsNested::MaxRowsAtCompileTime,
-    MaxColsAtCompileTime = _RhsNested::MaxColsAtCompileTime,
-
-    InnerSize = EIGEN_SIZE_MIN_PREFER_FIXED(_LhsNested::ColsAtCompileTime, _RhsNested::RowsAtCompileTime),
-
-    EvalToRowMajor = (RhsFlags & LhsFlags & RowMajorBit),
-
-    RemovedBits = ~(EvalToRowMajor ? 0 : RowMajorBit),
-
-    Flags = (int(LhsFlags | RhsFlags) & HereditaryBits & RemovedBits)
-          | EvalBeforeAssigningBit
-          | EvalBeforeNestingBit,
-
-    CoeffReadCost = Dynamic
-  };
-
-  typedef Sparse StorageKind;
-};
-
-} // end namespace internal
-
-template<typename LhsNested, typename RhsNested>
-class SparseSparseProduct : internal::no_assignment_operator,
-  public SparseMatrixBase<SparseSparseProduct<LhsNested, RhsNested> >
-{
-  public:
-
-    typedef SparseMatrixBase<SparseSparseProduct> Base;
-    EIGEN_DENSE_PUBLIC_INTERFACE(SparseSparseProduct)
-
-  private:
-
-    typedef typename internal::traits<SparseSparseProduct>::_LhsNested _LhsNested;
-    typedef typename internal::traits<SparseSparseProduct>::_RhsNested _RhsNested;
-
-  public:
-
-    template<typename Lhs, typename Rhs>
-    EIGEN_STRONG_INLINE SparseSparseProduct(const Lhs& lhs, const Rhs& rhs)
-      : m_lhs(lhs), m_rhs(rhs), m_tolerance(0), m_conservative(true)
-    {
-      init();
-    }
-
-    template<typename Lhs, typename Rhs>
-    EIGEN_STRONG_INLINE SparseSparseProduct(const Lhs& lhs, const Rhs& rhs, const RealScalar& tolerance)
-      : m_lhs(lhs), m_rhs(rhs), m_tolerance(tolerance), m_conservative(false)
-    {
-      init();
-    }
-
-    SparseSparseProduct pruned(const Scalar& reference = 0, const RealScalar& epsilon = NumTraits<RealScalar>::dummy_precision()) const
-    {
-      using std::abs;
-      return SparseSparseProduct(m_lhs,m_rhs,abs(reference)*epsilon);
-    }
-
-    template<typename Dest>
-    void evalTo(Dest& result) const
-    {
-      if(m_conservative)
-        internal::conservative_sparse_sparse_product_selector<_LhsNested, _RhsNested, Dest>::run(lhs(),rhs(),result);
-      else
-        internal::sparse_sparse_product_with_pruning_selector<_LhsNested, _RhsNested, Dest>::run(lhs(),rhs(),result,m_tolerance);
-    }
-
-    EIGEN_STRONG_INLINE Index rows() const { return m_lhs.rows(); }
-    EIGEN_STRONG_INLINE Index cols() const { return m_rhs.cols(); }
-
-    EIGEN_STRONG_INLINE const _LhsNested& lhs() const { return m_lhs; }
-    EIGEN_STRONG_INLINE const _RhsNested& rhs() const { return m_rhs; }
-
-  protected:
-    void init()
-    {
-      eigen_assert(m_lhs.cols() == m_rhs.rows());
-
-      enum {
-        ProductIsValid = _LhsNested::ColsAtCompileTime==Dynamic
-                      || _RhsNested::RowsAtCompileTime==Dynamic
-                      || int(_LhsNested::ColsAtCompileTime)==int(_RhsNested::RowsAtCompileTime),
-        AreVectors = _LhsNested::IsVectorAtCompileTime && _RhsNested::IsVectorAtCompileTime,
-        SameSizes = EIGEN_PREDICATE_SAME_MATRIX_SIZE(_LhsNested,_RhsNested)
-      };
-      // note to the lost user:
-      //    * for a dot product use: v1.dot(v2)
-      //    * for a coeff-wise product use: v1.cwise()*v2
-      EIGEN_STATIC_ASSERT(ProductIsValid || !(AreVectors && SameSizes),
-        INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS)
-      EIGEN_STATIC_ASSERT(ProductIsValid || !(SameSizes && !AreVectors),
-        INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION)
-      EIGEN_STATIC_ASSERT(ProductIsValid || SameSizes, INVALID_MATRIX_PRODUCT)
-    }
-
-    LhsNested m_lhs;
-    RhsNested m_rhs;
-    RealScalar m_tolerance;
-    bool m_conservative;
-};
-
-// sparse = sparse * sparse
-template<typename Derived>
-template<typename Lhs, typename Rhs>
-inline Derived& SparseMatrixBase<Derived>::operator=(const SparseSparseProduct<Lhs,Rhs>& product)
-{
-  product.evalTo(derived());
-  return derived();
-}
-
-/** \returns an expression of the product of two sparse matrices.
-  * By default a conservative product preserving the symbolic non zeros is performed.
-  * The automatic pruning of the small values can be achieved by calling the pruned() function
-  * in which case a totally different product algorithm is employed:
-  * \code
-  * C = (A*B).pruned();             // supress numerical zeros (exact)
-  * C = (A*B).pruned(ref);
-  * C = (A*B).pruned(ref,epsilon);
-  * \endcode
-  * where \c ref is a meaningful non zero reference value.
-  * */
-template<typename Derived>
-template<typename OtherDerived>
-inline const typename SparseSparseProductReturnType<Derived,OtherDerived>::Type
-SparseMatrixBase<Derived>::operator*(const SparseMatrixBase<OtherDerived> &other) const
-{
-  return typename SparseSparseProductReturnType<Derived,OtherDerived>::Type(derived(), other.derived());
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSEPRODUCT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseSelfAdjointView.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseSelfAdjointView.h
deleted file mode 100644
index 9630b60..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseSelfAdjointView.h
+++ /dev/null
@@ -1,480 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSE_SELFADJOINTVIEW_H
-#define EIGEN_SPARSE_SELFADJOINTVIEW_H
-
-namespace Eigen { 
-
-/** \ingroup SparseCore_Module
-  * \class SparseSelfAdjointView
-  *
-  * \brief Pseudo expression to manipulate a triangular sparse matrix as a selfadjoint matrix.
-  *
-  * \param MatrixType the type of the dense matrix storing the coefficients
-  * \param UpLo can be either \c #Lower or \c #Upper
-  *
-  * This class is an expression of a sefladjoint matrix from a triangular part of a matrix
-  * with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView()
-  * and most of the time this is the only way that it is used.
-  *
-  * \sa SparseMatrixBase::selfadjointView()
-  */
-template<typename Lhs, typename Rhs, int UpLo>
-class SparseSelfAdjointTimeDenseProduct;
-
-template<typename Lhs, typename Rhs, int UpLo>
-class DenseTimeSparseSelfAdjointProduct;
-
-namespace internal {
-  
-template<typename MatrixType, unsigned int UpLo>
-struct traits<SparseSelfAdjointView<MatrixType,UpLo> > : traits<MatrixType> {
-};
-
-template<int SrcUpLo,int DstUpLo,typename MatrixType,int DestOrder>
-void permute_symm_to_symm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DestOrder,typename MatrixType::Index>& _dest, const typename MatrixType::Index* perm = 0);
-
-template<int UpLo,typename MatrixType,int DestOrder>
-void permute_symm_to_fullsymm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DestOrder,typename MatrixType::Index>& _dest, const typename MatrixType::Index* perm = 0);
-
-}
-
-template<typename MatrixType, unsigned int UpLo> class SparseSelfAdjointView
-  : public EigenBase<SparseSelfAdjointView<MatrixType,UpLo> >
-{
-  public:
-
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::Index Index;
-    typedef Matrix<Index,Dynamic,1> VectorI;
-    typedef typename MatrixType::Nested MatrixTypeNested;
-    typedef typename internal::remove_all<MatrixTypeNested>::type _MatrixTypeNested;
-
-    inline SparseSelfAdjointView(const MatrixType& matrix) : m_matrix(matrix)
-    {
-      eigen_assert(rows()==cols() && "SelfAdjointView is only for squared matrices");
-    }
-
-    inline Index rows() const { return m_matrix.rows(); }
-    inline Index cols() const { return m_matrix.cols(); }
-
-    /** \internal \returns a reference to the nested matrix */
-    const _MatrixTypeNested& matrix() const { return m_matrix; }
-    _MatrixTypeNested& matrix() { return m_matrix.const_cast_derived(); }
-
-    /** Efficient sparse self-adjoint matrix times dense vector/matrix product */
-    template<typename OtherDerived>
-    SparseSelfAdjointTimeDenseProduct<MatrixType,OtherDerived,UpLo>
-    operator*(const MatrixBase<OtherDerived>& rhs) const
-    {
-      return SparseSelfAdjointTimeDenseProduct<MatrixType,OtherDerived,UpLo>(m_matrix, rhs.derived());
-    }
-
-    /** Efficient dense vector/matrix times sparse self-adjoint matrix product */
-    template<typename OtherDerived> friend
-    DenseTimeSparseSelfAdjointProduct<OtherDerived,MatrixType,UpLo>
-    operator*(const MatrixBase<OtherDerived>& lhs, const SparseSelfAdjointView& rhs)
-    {
-      return DenseTimeSparseSelfAdjointProduct<OtherDerived,_MatrixTypeNested,UpLo>(lhs.derived(), rhs.m_matrix);
-    }
-
-    /** Perform a symmetric rank K update of the selfadjoint matrix \c *this:
-      * \f$ this = this + \alpha ( u u^* ) \f$ where \a u is a vector or matrix.
-      *
-      * \returns a reference to \c *this
-      *
-      * To perform \f$ this = this + \alpha ( u^* u ) \f$ you can simply
-      * call this function with u.adjoint().
-      */
-    template<typename DerivedU>
-    SparseSelfAdjointView& rankUpdate(const SparseMatrixBase<DerivedU>& u, const Scalar& alpha = Scalar(1));
-    
-    /** \internal triggered by sparse_matrix = SparseSelfadjointView; */
-    template<typename DestScalar,int StorageOrder> void evalTo(SparseMatrix<DestScalar,StorageOrder,Index>& _dest) const
-    {
-      internal::permute_symm_to_fullsymm<UpLo>(m_matrix, _dest);
-    }
-    
-    template<typename DestScalar> void evalTo(DynamicSparseMatrix<DestScalar,ColMajor,Index>& _dest) const
-    {
-      // TODO directly evaluate into _dest;
-      SparseMatrix<DestScalar,ColMajor,Index> tmp(_dest.rows(),_dest.cols());
-      internal::permute_symm_to_fullsymm<UpLo>(m_matrix, tmp);
-      _dest = tmp;
-    }
-    
-    /** \returns an expression of P H P^-1 */
-    SparseSymmetricPermutationProduct<_MatrixTypeNested,UpLo> twistedBy(const PermutationMatrix<Dynamic,Dynamic,Index>& perm) const
-    {
-      return SparseSymmetricPermutationProduct<_MatrixTypeNested,UpLo>(m_matrix, perm);
-    }
-    
-    template<typename SrcMatrixType,int SrcUpLo>
-    SparseSelfAdjointView& operator=(const SparseSymmetricPermutationProduct<SrcMatrixType,SrcUpLo>& permutedMatrix)
-    {
-      permutedMatrix.evalTo(*this);
-      return *this;
-    }
-
-
-    SparseSelfAdjointView& operator=(const SparseSelfAdjointView& src)
-    {
-      PermutationMatrix<Dynamic> pnull;
-      return *this = src.twistedBy(pnull);
-    }
-
-    template<typename SrcMatrixType,unsigned int SrcUpLo>
-    SparseSelfAdjointView& operator=(const SparseSelfAdjointView<SrcMatrixType,SrcUpLo>& src)
-    {
-      PermutationMatrix<Dynamic> pnull;
-      return *this = src.twistedBy(pnull);
-    }
-    
-
-    // const SparseLLT<PlainObject, UpLo> llt() const;
-    // const SparseLDLT<PlainObject, UpLo> ldlt() const;
-
-  protected:
-
-    typename MatrixType::Nested m_matrix;
-    mutable VectorI m_countPerRow;
-    mutable VectorI m_countPerCol;
-};
-
-/***************************************************************************
-* Implementation of SparseMatrixBase methods
-***************************************************************************/
-
-template<typename Derived>
-template<unsigned int UpLo>
-const SparseSelfAdjointView<Derived, UpLo> SparseMatrixBase<Derived>::selfadjointView() const
-{
-  return derived();
-}
-
-template<typename Derived>
-template<unsigned int UpLo>
-SparseSelfAdjointView<Derived, UpLo> SparseMatrixBase<Derived>::selfadjointView()
-{
-  return derived();
-}
-
-/***************************************************************************
-* Implementation of SparseSelfAdjointView methods
-***************************************************************************/
-
-template<typename MatrixType, unsigned int UpLo>
-template<typename DerivedU>
-SparseSelfAdjointView<MatrixType,UpLo>&
-SparseSelfAdjointView<MatrixType,UpLo>::rankUpdate(const SparseMatrixBase<DerivedU>& u, const Scalar& alpha)
-{
-  SparseMatrix<Scalar,MatrixType::Flags&RowMajorBit?RowMajor:ColMajor> tmp = u * u.adjoint();
-  if(alpha==Scalar(0))
-    m_matrix.const_cast_derived() = tmp.template triangularView<UpLo>();
-  else
-    m_matrix.const_cast_derived() += alpha * tmp.template triangularView<UpLo>();
-
-  return *this;
-}
-
-/***************************************************************************
-* Implementation of sparse self-adjoint time dense matrix
-***************************************************************************/
-
-namespace internal {
-template<typename Lhs, typename Rhs, int UpLo>
-struct traits<SparseSelfAdjointTimeDenseProduct<Lhs,Rhs,UpLo> >
- : traits<ProductBase<SparseSelfAdjointTimeDenseProduct<Lhs,Rhs,UpLo>, Lhs, Rhs> >
-{
-  typedef Dense StorageKind;
-};
-}
-
-template<typename Lhs, typename Rhs, int UpLo>
-class SparseSelfAdjointTimeDenseProduct
-  : public ProductBase<SparseSelfAdjointTimeDenseProduct<Lhs,Rhs,UpLo>, Lhs, Rhs>
-{
-  public:
-    EIGEN_PRODUCT_PUBLIC_INTERFACE(SparseSelfAdjointTimeDenseProduct)
-
-    SparseSelfAdjointTimeDenseProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
-    {}
-
-    template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
-    {
-      EIGEN_ONLY_USED_FOR_DEBUG(alpha);
-      // TODO use alpha
-      eigen_assert(alpha==Scalar(1) && "alpha != 1 is not implemented yet, sorry");
-      typedef typename internal::remove_all<Lhs>::type _Lhs;
-      typedef typename _Lhs::InnerIterator LhsInnerIterator;
-      enum {
-        LhsIsRowMajor = (_Lhs::Flags&RowMajorBit)==RowMajorBit,
-        ProcessFirstHalf =
-                 ((UpLo&(Upper|Lower))==(Upper|Lower))
-              || ( (UpLo&Upper) && !LhsIsRowMajor)
-              || ( (UpLo&Lower) && LhsIsRowMajor),
-        ProcessSecondHalf = !ProcessFirstHalf
-      };
-      for (Index j=0; j<m_lhs.outerSize(); ++j)
-      {
-        LhsInnerIterator i(m_lhs,j);
-        if (ProcessSecondHalf)
-        {
-          while (i && i.index()<j) ++i;
-          if(i && i.index()==j)
-          {
-            dest.row(j) += i.value() * m_rhs.row(j);
-            ++i;
-          }
-        }
-        for(; (ProcessFirstHalf ? i && i.index() < j : i) ; ++i)
-        {
-          Index a = LhsIsRowMajor ? j : i.index();
-          Index b = LhsIsRowMajor ? i.index() : j;
-          typename Lhs::Scalar v = i.value();
-          dest.row(a) += (v) * m_rhs.row(b);
-          dest.row(b) += internal::conj(v) * m_rhs.row(a);
-        }
-        if (ProcessFirstHalf && i && (i.index()==j))
-          dest.row(j) += i.value() * m_rhs.row(j);
-      }
-    }
-
-  private:
-    SparseSelfAdjointTimeDenseProduct& operator=(const SparseSelfAdjointTimeDenseProduct&);
-};
-
-namespace internal {
-template<typename Lhs, typename Rhs, int UpLo>
-struct traits<DenseTimeSparseSelfAdjointProduct<Lhs,Rhs,UpLo> >
- : traits<ProductBase<DenseTimeSparseSelfAdjointProduct<Lhs,Rhs,UpLo>, Lhs, Rhs> >
-{};
-}
-
-template<typename Lhs, typename Rhs, int UpLo>
-class DenseTimeSparseSelfAdjointProduct
-  : public ProductBase<DenseTimeSparseSelfAdjointProduct<Lhs,Rhs,UpLo>, Lhs, Rhs>
-{
-  public:
-    EIGEN_PRODUCT_PUBLIC_INTERFACE(DenseTimeSparseSelfAdjointProduct)
-
-    DenseTimeSparseSelfAdjointProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
-    {}
-
-    template<typename Dest> void scaleAndAddTo(Dest& /*dest*/, const Scalar& /*alpha*/) const
-    {
-      // TODO
-    }
-
-  private:
-    DenseTimeSparseSelfAdjointProduct& operator=(const DenseTimeSparseSelfAdjointProduct&);
-};
-
-/***************************************************************************
-* Implementation of symmetric copies and permutations
-***************************************************************************/
-namespace internal {
-  
-template<typename MatrixType, int UpLo>
-struct traits<SparseSymmetricPermutationProduct<MatrixType,UpLo> > : traits<MatrixType> {
-};
-
-template<int UpLo,typename MatrixType,int DestOrder>
-void permute_symm_to_fullsymm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DestOrder,typename MatrixType::Index>& _dest, const typename MatrixType::Index* perm)
-{
-  typedef typename MatrixType::Index Index;
-  typedef typename MatrixType::Scalar Scalar;
-  typedef SparseMatrix<Scalar,DestOrder,Index> Dest;
-  typedef Matrix<Index,Dynamic,1> VectorI;
-  
-  Dest& dest(_dest.derived());
-  enum {
-    StorageOrderMatch = int(Dest::IsRowMajor) == int(MatrixType::IsRowMajor)
-  };
-  
-  Index size = mat.rows();
-  VectorI count;
-  count.resize(size);
-  count.setZero();
-  dest.resize(size,size);
-  for(Index j = 0; j<size; ++j)
-  {
-    Index jp = perm ? perm[j] : j;
-    for(typename MatrixType::InnerIterator it(mat,j); it; ++it)
-    {
-      Index i = it.index();
-      Index r = it.row();
-      Index c = it.col();
-      Index ip = perm ? perm[i] : i;
-      if(UpLo==(Upper|Lower))
-        count[StorageOrderMatch ? jp : ip]++;
-      else if(r==c)
-        count[ip]++;
-      else if(( UpLo==Lower && r>c) || ( UpLo==Upper && r<c))
-      {
-        count[ip]++;
-        count[jp]++;
-      }
-    }
-  }
-  Index nnz = count.sum();
-  
-  // reserve space
-  dest.resizeNonZeros(nnz);
-  dest.outerIndexPtr()[0] = 0;
-  for(Index j=0; j<size; ++j)
-    dest.outerIndexPtr()[j+1] = dest.outerIndexPtr()[j] + count[j];
-  for(Index j=0; j<size; ++j)
-    count[j] = dest.outerIndexPtr()[j];
-  
-  // copy data
-  for(Index j = 0; j<size; ++j)
-  {
-    for(typename MatrixType::InnerIterator it(mat,j); it; ++it)
-    {
-      Index i = it.index();
-      Index r = it.row();
-      Index c = it.col();
-      
-      Index jp = perm ? perm[j] : j;
-      Index ip = perm ? perm[i] : i;
-      
-      if(UpLo==(Upper|Lower))
-      {
-        Index k = count[StorageOrderMatch ? jp : ip]++;
-        dest.innerIndexPtr()[k] = StorageOrderMatch ? ip : jp;
-        dest.valuePtr()[k] = it.value();
-      }
-      else if(r==c)
-      {
-        Index k = count[ip]++;
-        dest.innerIndexPtr()[k] = ip;
-        dest.valuePtr()[k] = it.value();
-      }
-      else if(( (UpLo&Lower)==Lower && r>c) || ( (UpLo&Upper)==Upper && r<c))
-      {
-        if(!StorageOrderMatch)
-          std::swap(ip,jp);
-        Index k = count[jp]++;
-        dest.innerIndexPtr()[k] = ip;
-        dest.valuePtr()[k] = it.value();
-        k = count[ip]++;
-        dest.innerIndexPtr()[k] = jp;
-        dest.valuePtr()[k] = internal::conj(it.value());
-      }
-    }
-  }
-}
-
-template<int _SrcUpLo,int _DstUpLo,typename MatrixType,int DstOrder>
-void permute_symm_to_symm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DstOrder,typename MatrixType::Index>& _dest, const typename MatrixType::Index* perm)
-{
-  typedef typename MatrixType::Index Index;
-  typedef typename MatrixType::Scalar Scalar;
-  SparseMatrix<Scalar,DstOrder,Index>& dest(_dest.derived());
-  typedef Matrix<Index,Dynamic,1> VectorI;
-  enum {
-    SrcOrder = MatrixType::IsRowMajor ? RowMajor : ColMajor,
-    StorageOrderMatch = int(SrcOrder) == int(DstOrder),
-    DstUpLo = DstOrder==RowMajor ? (_DstUpLo==Upper ? Lower : Upper) : _DstUpLo,
-    SrcUpLo = SrcOrder==RowMajor ? (_SrcUpLo==Upper ? Lower : Upper) : _SrcUpLo
-  };
-  
-  Index size = mat.rows();
-  VectorI count(size);
-  count.setZero();
-  dest.resize(size,size);
-  for(Index j = 0; j<size; ++j)
-  {
-    Index jp = perm ? perm[j] : j;
-    for(typename MatrixType::InnerIterator it(mat,j); it; ++it)
-    {
-      Index i = it.index();
-      if((int(SrcUpLo)==int(Lower) && i<j) || (int(SrcUpLo)==int(Upper) && i>j))
-        continue;
-                  
-      Index ip = perm ? perm[i] : i;
-      count[int(DstUpLo)==int(Lower) ? (std::min)(ip,jp) : (std::max)(ip,jp)]++;
-    }
-  }
-  dest.outerIndexPtr()[0] = 0;
-  for(Index j=0; j<size; ++j)
-    dest.outerIndexPtr()[j+1] = dest.outerIndexPtr()[j] + count[j];
-  dest.resizeNonZeros(dest.outerIndexPtr()[size]);
-  for(Index j=0; j<size; ++j)
-    count[j] = dest.outerIndexPtr()[j];
-  
-  for(Index j = 0; j<size; ++j)
-  {
-    
-    for(typename MatrixType::InnerIterator it(mat,j); it; ++it)
-    {
-      Index i = it.index();
-      if((int(SrcUpLo)==int(Lower) && i<j) || (int(SrcUpLo)==int(Upper) && i>j))
-        continue;
-                  
-      Index jp = perm ? perm[j] : j;
-      Index ip = perm? perm[i] : i;
-      
-      Index k = count[int(DstUpLo)==int(Lower) ? (std::min)(ip,jp) : (std::max)(ip,jp)]++;
-      dest.innerIndexPtr()[k] = int(DstUpLo)==int(Lower) ? (std::max)(ip,jp) : (std::min)(ip,jp);
-      
-      if(!StorageOrderMatch) std::swap(ip,jp);
-      if( ((int(DstUpLo)==int(Lower) && ip<jp) || (int(DstUpLo)==int(Upper) && ip>jp)))
-        dest.valuePtr()[k] = conj(it.value());
-      else
-        dest.valuePtr()[k] = it.value();
-    }
-  }
-}
-
-}
-
-template<typename MatrixType,int UpLo>
-class SparseSymmetricPermutationProduct
-  : public EigenBase<SparseSymmetricPermutationProduct<MatrixType,UpLo> >
-{
-  public:
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::Index Index;
-  protected:
-    typedef PermutationMatrix<Dynamic,Dynamic,Index> Perm;
-  public:
-    typedef Matrix<Index,Dynamic,1> VectorI;
-    typedef typename MatrixType::Nested MatrixTypeNested;
-    typedef typename internal::remove_all<MatrixTypeNested>::type _MatrixTypeNested;
-    
-    SparseSymmetricPermutationProduct(const MatrixType& mat, const Perm& perm)
-      : m_matrix(mat), m_perm(perm)
-    {}
-    
-    inline Index rows() const { return m_matrix.rows(); }
-    inline Index cols() const { return m_matrix.cols(); }
-    
-    template<typename DestScalar, int Options, typename DstIndex>
-    void evalTo(SparseMatrix<DestScalar,Options,DstIndex>& _dest) const
-    {
-      internal::permute_symm_to_fullsymm<UpLo>(m_matrix,_dest,m_perm.indices().data());
-    }
-    
-    template<typename DestType,unsigned int DestUpLo> void evalTo(SparseSelfAdjointView<DestType,DestUpLo>& dest) const
-    {
-      internal::permute_symm_to_symm<UpLo,DestUpLo>(m_matrix,dest.matrix(),m_perm.indices().data());
-    }
-    
-  protected:
-    MatrixTypeNested m_matrix;
-    const Perm& m_perm;
-
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSE_SELFADJOINTVIEW_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseSparseProductWithPruning.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
deleted file mode 100644
index 70857c7..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
+++ /dev/null
@@ -1,149 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSESPARSEPRODUCTWITHPRUNING_H
-#define EIGEN_SPARSESPARSEPRODUCTWITHPRUNING_H
-
-namespace Eigen { 
-
-namespace internal {
-
-
-// perform a pseudo in-place sparse * sparse product assuming all matrices are col major
-template<typename Lhs, typename Rhs, typename ResultType>
-static void sparse_sparse_product_with_pruning_impl(const Lhs& lhs, const Rhs& rhs, ResultType& res, const typename ResultType::RealScalar& tolerance)
-{
-  // return sparse_sparse_product_with_pruning_impl2(lhs,rhs,res);
-
-  typedef typename remove_all<Lhs>::type::Scalar Scalar;
-  typedef typename remove_all<Lhs>::type::Index Index;
-
-  // make sure to call innerSize/outerSize since we fake the storage order.
-  Index rows = lhs.innerSize();
-  Index cols = rhs.outerSize();
-  //int size = lhs.outerSize();
-  eigen_assert(lhs.outerSize() == rhs.innerSize());
-
-  // allocate a temporary buffer
-  AmbiVector<Scalar,Index> tempVector(rows);
-
-  // estimate the number of non zero entries
-  // given a rhs column containing Y non zeros, we assume that the respective Y columns
-  // of the lhs differs in average of one non zeros, thus the number of non zeros for
-  // the product of a rhs column with the lhs is X+Y where X is the average number of non zero
-  // per column of the lhs.
-  // Therefore, we have nnz(lhs*rhs) = nnz(lhs) + nnz(rhs)
-  Index estimated_nnz_prod = lhs.nonZeros() + rhs.nonZeros();
-
-  // mimics a resizeByInnerOuter:
-  if(ResultType::IsRowMajor)
-    res.resize(cols, rows);
-  else
-    res.resize(rows, cols);
-
-  res.reserve(estimated_nnz_prod);
-  double ratioColRes = double(estimated_nnz_prod)/double(lhs.rows()*rhs.cols());
-  for (Index j=0; j<cols; ++j)
-  {
-    // FIXME:
-    //double ratioColRes = (double(rhs.innerVector(j).nonZeros()) + double(lhs.nonZeros())/double(lhs.cols()))/double(lhs.rows());
-    // let's do a more accurate determination of the nnz ratio for the current column j of res
-    tempVector.init(ratioColRes);
-    tempVector.setZero();
-    for (typename Rhs::InnerIterator rhsIt(rhs, j); rhsIt; ++rhsIt)
-    {
-      // FIXME should be written like this: tmp += rhsIt.value() * lhs.col(rhsIt.index())
-      tempVector.restart();
-      Scalar x = rhsIt.value();
-      for (typename Lhs::InnerIterator lhsIt(lhs, rhsIt.index()); lhsIt; ++lhsIt)
-      {
-        tempVector.coeffRef(lhsIt.index()) += lhsIt.value() * x;
-      }
-    }
-    res.startVec(j);
-    for (typename AmbiVector<Scalar,Index>::Iterator it(tempVector,tolerance); it; ++it)
-      res.insertBackByOuterInner(j,it.index()) = it.value();
-  }
-  res.finalize();
-}
-
-template<typename Lhs, typename Rhs, typename ResultType,
-  int LhsStorageOrder = traits<Lhs>::Flags&RowMajorBit,
-  int RhsStorageOrder = traits<Rhs>::Flags&RowMajorBit,
-  int ResStorageOrder = traits<ResultType>::Flags&RowMajorBit>
-struct sparse_sparse_product_with_pruning_selector;
-
-template<typename Lhs, typename Rhs, typename ResultType>
-struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,ColMajor>
-{
-  typedef typename traits<typename remove_all<Lhs>::type>::Scalar Scalar;
-  typedef typename ResultType::RealScalar RealScalar;
-
-  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
-  {
-    typename remove_all<ResultType>::type _res(res.rows(), res.cols());
-    internal::sparse_sparse_product_with_pruning_impl<Lhs,Rhs,ResultType>(lhs, rhs, _res, tolerance);
-    res.swap(_res);
-  }
-};
-
-template<typename Lhs, typename Rhs, typename ResultType>
-struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,RowMajor>
-{
-  typedef typename ResultType::RealScalar RealScalar;
-  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
-  {
-    // we need a col-major matrix to hold the result
-    typedef SparseMatrix<typename ResultType::Scalar> SparseTemporaryType;
-    SparseTemporaryType _res(res.rows(), res.cols());
-    internal::sparse_sparse_product_with_pruning_impl<Lhs,Rhs,SparseTemporaryType>(lhs, rhs, _res, tolerance);
-    res = _res;
-  }
-};
-
-template<typename Lhs, typename Rhs, typename ResultType>
-struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,RowMajor>
-{
-  typedef typename ResultType::RealScalar RealScalar;
-  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
-  {
-    // let's transpose the product to get a column x column product
-    typename remove_all<ResultType>::type _res(res.rows(), res.cols());
-    internal::sparse_sparse_product_with_pruning_impl<Rhs,Lhs,ResultType>(rhs, lhs, _res, tolerance);
-    res.swap(_res);
-  }
-};
-
-template<typename Lhs, typename Rhs, typename ResultType>
-struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,ColMajor>
-{
-  typedef typename ResultType::RealScalar RealScalar;
-  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
-  {
-    typedef SparseMatrix<typename ResultType::Scalar,ColMajor> ColMajorMatrix;
-    ColMajorMatrix colLhs(lhs);
-    ColMajorMatrix colRhs(rhs);
-    internal::sparse_sparse_product_with_pruning_impl<ColMajorMatrix,ColMajorMatrix,ResultType>(colLhs, colRhs, res, tolerance);
-
-    // let's transpose the product to get a column x column product
-//     typedef SparseMatrix<typename ResultType::Scalar> SparseTemporaryType;
-//     SparseTemporaryType _res(res.cols(), res.rows());
-//     sparse_sparse_product_with_pruning_impl<Rhs,Lhs,SparseTemporaryType>(rhs, lhs, _res);
-//     res = _res.transpose();
-  }
-};
-
-// NOTE the 2 others cases (col row *) must never occur since they are caught
-// by ProductReturnType which transforms it to (col col *) by evaluating rhs.
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSESPARSEPRODUCTWITHPRUNING_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseTranspose.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseTranspose.h
deleted file mode 100644
index c78c20a..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseTranspose.h
+++ /dev/null
@@ -1,61 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSETRANSPOSE_H
-#define EIGEN_SPARSETRANSPOSE_H
-
-namespace Eigen { 
-
-template<typename MatrixType> class TransposeImpl<MatrixType,Sparse>
-  : public SparseMatrixBase<Transpose<MatrixType> >
-{
-    typedef typename internal::remove_all<typename MatrixType::Nested>::type _MatrixTypeNested;
-  public:
-
-    EIGEN_SPARSE_PUBLIC_INTERFACE(Transpose<MatrixType> )
-
-    class InnerIterator;
-    class ReverseInnerIterator;
-
-    inline Index nonZeros() const { return derived().nestedExpression().nonZeros(); }
-};
-
-// NOTE: VC10 trigger an ICE if don't put typename TransposeImpl<MatrixType,Sparse>:: in front of Index,
-// a typedef typename TransposeImpl<MatrixType,Sparse>::Index Index;
-// does not fix the issue.
-// An alternative is to define the nested class in the parent class itself.
-template<typename MatrixType> class TransposeImpl<MatrixType,Sparse>::InnerIterator
-  : public _MatrixTypeNested::InnerIterator
-{
-    typedef typename _MatrixTypeNested::InnerIterator Base;
-  public:
-
-    EIGEN_STRONG_INLINE InnerIterator(const TransposeImpl& trans, typename TransposeImpl<MatrixType,Sparse>::Index outer)
-      : Base(trans.derived().nestedExpression(), outer)
-    {}
-    inline typename TransposeImpl<MatrixType,Sparse>::Index row() const { return Base::col(); }
-    inline typename TransposeImpl<MatrixType,Sparse>::Index col() const { return Base::row(); }
-};
-
-template<typename MatrixType> class TransposeImpl<MatrixType,Sparse>::ReverseInnerIterator
-  : public _MatrixTypeNested::ReverseInnerIterator
-{
-    typedef typename _MatrixTypeNested::ReverseInnerIterator Base;
-  public:
-
-    EIGEN_STRONG_INLINE ReverseInnerIterator(const TransposeImpl& xpr, typename TransposeImpl<MatrixType,Sparse>::Index outer)
-      : Base(xpr.derived().nestedExpression(), outer)
-    {}
-    inline typename TransposeImpl<MatrixType,Sparse>::Index row() const { return Base::col(); }
-    inline typename TransposeImpl<MatrixType,Sparse>::Index col() const { return Base::row(); }
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSETRANSPOSE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseTriangularView.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseTriangularView.h
deleted file mode 100644
index 477e4bd..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseTriangularView.h
+++ /dev/null
@@ -1,164 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSE_TRIANGULARVIEW_H
-#define EIGEN_SPARSE_TRIANGULARVIEW_H
-
-namespace Eigen { 
-
-namespace internal {
-  
-template<typename MatrixType, int Mode>
-struct traits<SparseTriangularView<MatrixType,Mode> >
-: public traits<MatrixType>
-{};
-
-} // namespace internal
-
-template<typename MatrixType, int Mode> class SparseTriangularView
-  : public SparseMatrixBase<SparseTriangularView<MatrixType,Mode> >
-{
-    enum { SkipFirst = ((Mode&Lower) && !(MatrixType::Flags&RowMajorBit))
-                    || ((Mode&Upper) &&  (MatrixType::Flags&RowMajorBit)),
-           SkipLast = !SkipFirst,
-           HasUnitDiag = (Mode&UnitDiag) ? 1 : 0
-    };
-
-  public:
-    
-    EIGEN_SPARSE_PUBLIC_INTERFACE(SparseTriangularView)
-
-    class InnerIterator;
-    class ReverseInnerIterator;
-
-    inline Index rows() const { return m_matrix.rows(); }
-    inline Index cols() const { return m_matrix.cols(); }
-
-    typedef typename MatrixType::Nested MatrixTypeNested;
-    typedef typename internal::remove_reference<MatrixTypeNested>::type MatrixTypeNestedNonRef;
-    typedef typename internal::remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
-
-    inline SparseTriangularView(const MatrixType& matrix) : m_matrix(matrix) {}
-
-    /** \internal */
-    inline const MatrixTypeNestedCleaned& nestedExpression() const { return m_matrix; }
-
-    template<typename OtherDerived>
-    typename internal::plain_matrix_type_column_major<OtherDerived>::type
-    solve(const MatrixBase<OtherDerived>& other) const;
-
-    template<typename OtherDerived> void solveInPlace(MatrixBase<OtherDerived>& other) const;
-    template<typename OtherDerived> void solveInPlace(SparseMatrixBase<OtherDerived>& other) const;
-
-  protected:
-    MatrixTypeNested m_matrix;
-};
-
-template<typename MatrixType, int Mode>
-class SparseTriangularView<MatrixType,Mode>::InnerIterator : public MatrixTypeNestedCleaned::InnerIterator
-{
-    typedef typename MatrixTypeNestedCleaned::InnerIterator Base;
-  public:
-
-    EIGEN_STRONG_INLINE InnerIterator(const SparseTriangularView& view, Index outer)
-      : Base(view.nestedExpression(), outer), m_returnOne(false)
-    {
-      if(SkipFirst)
-      {
-        while((*this) && (HasUnitDiag ? this->index()<=outer : this->index()<outer))
-          Base::operator++();
-        if(HasUnitDiag)
-          m_returnOne = true;
-      }
-      else if(HasUnitDiag && ((!Base::operator bool()) || Base::index()>=Base::outer()))
-      {
-        if((!SkipFirst) && Base::operator bool())
-          Base::operator++();
-        m_returnOne = true;
-      }
-    }
-
-    EIGEN_STRONG_INLINE InnerIterator& operator++()
-    {
-      if(HasUnitDiag && m_returnOne)
-        m_returnOne = false;
-      else
-      {
-        Base::operator++();
-        if(HasUnitDiag && (!SkipFirst) && ((!Base::operator bool()) || Base::index()>=Base::outer()))
-        {
-          if((!SkipFirst) && Base::operator bool())
-            Base::operator++();
-          m_returnOne = true;
-        }
-      }
-      return *this;
-    }
-
-    inline Index row() const { return Base::row(); }
-    inline Index col() const { return Base::col(); }
-    inline Index index() const
-    {
-      if(HasUnitDiag && m_returnOne)  return Base::outer();
-      else                            return Base::index();
-    }
-    inline Scalar value() const
-    {
-      if(HasUnitDiag && m_returnOne)  return Scalar(1);
-      else                            return Base::value();
-    }
-
-    EIGEN_STRONG_INLINE operator bool() const
-    {
-      if(HasUnitDiag && m_returnOne)
-        return true;
-      return (SkipFirst ? Base::operator bool() : (Base::operator bool() && this->index() <= this->outer()));
-    }
-  protected:
-    bool m_returnOne;
-};
-
-template<typename MatrixType, int Mode>
-class SparseTriangularView<MatrixType,Mode>::ReverseInnerIterator : public MatrixTypeNestedCleaned::ReverseInnerIterator
-{
-    typedef typename MatrixTypeNestedCleaned::ReverseInnerIterator Base;
-  public:
-
-    EIGEN_STRONG_INLINE ReverseInnerIterator(const SparseTriangularView& view, Index outer)
-      : Base(view.nestedExpression(), outer)
-    {
-      eigen_assert((!HasUnitDiag) && "ReverseInnerIterator does not support yet triangular views with a unit diagonal");
-      if(SkipLast)
-        while((*this) && this->index()>outer)
-          --(*this);
-    }
-
-    EIGEN_STRONG_INLINE InnerIterator& operator--()
-    { Base::operator--(); return *this; }
-
-    inline Index row() const { return Base::row(); }
-    inline Index col() const { return Base::col(); }
-
-    EIGEN_STRONG_INLINE operator bool() const
-    {
-      return SkipLast ? Base::operator bool() : (Base::operator bool() && this->index() >= this->outer());
-    }
-};
-
-template<typename Derived>
-template<int Mode>
-inline const SparseTriangularView<Derived, Mode>
-SparseMatrixBase<Derived>::triangularView() const
-{
-  return derived();
-}
-
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSE_TRIANGULARVIEW_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseUtil.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseUtil.h
deleted file mode 100644
index d58b513..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseUtil.h
+++ /dev/null
@@ -1,173 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSEUTIL_H
-#define EIGEN_SPARSEUTIL_H
-
-namespace Eigen { 
-
-#ifdef NDEBUG
-#define EIGEN_DBG_SPARSE(X)
-#else
-#define EIGEN_DBG_SPARSE(X) X
-#endif
-
-#define EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, Op) \
-template<typename OtherDerived> \
-EIGEN_STRONG_INLINE Derived& operator Op(const Eigen::SparseMatrixBase<OtherDerived>& other) \
-{ \
-  return Base::operator Op(other.derived()); \
-} \
-EIGEN_STRONG_INLINE Derived& operator Op(const Derived& other) \
-{ \
-  return Base::operator Op(other); \
-}
-
-#define EIGEN_SPARSE_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, Op) \
-template<typename Other> \
-EIGEN_STRONG_INLINE Derived& operator Op(const Other& scalar) \
-{ \
-  return Base::operator Op(scalar); \
-}
-
-#define EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATORS(Derived) \
-EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, =) \
-EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, +=) \
-EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, -=) \
-EIGEN_SPARSE_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, *=) \
-EIGEN_SPARSE_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, /=)
-
-#define _EIGEN_SPARSE_PUBLIC_INTERFACE(Derived, BaseClass) \
-  typedef BaseClass Base; \
-  typedef typename Eigen::internal::traits<Derived >::Scalar Scalar; \
-  typedef typename Eigen::NumTraits<Scalar>::Real RealScalar; \
-  typedef typename Eigen::internal::nested<Derived >::type Nested; \
-  typedef typename Eigen::internal::traits<Derived >::StorageKind StorageKind; \
-  typedef typename Eigen::internal::traits<Derived >::Index Index; \
-  enum { RowsAtCompileTime = Eigen::internal::traits<Derived >::RowsAtCompileTime, \
-        ColsAtCompileTime = Eigen::internal::traits<Derived >::ColsAtCompileTime, \
-        Flags = Eigen::internal::traits<Derived >::Flags, \
-        CoeffReadCost = Eigen::internal::traits<Derived >::CoeffReadCost, \
-        SizeAtCompileTime = Base::SizeAtCompileTime, \
-        IsVectorAtCompileTime = Base::IsVectorAtCompileTime }; \
-  using Base::derived; \
-  using Base::const_cast_derived;
-
-#define EIGEN_SPARSE_PUBLIC_INTERFACE(Derived) \
-  _EIGEN_SPARSE_PUBLIC_INTERFACE(Derived, Eigen::SparseMatrixBase<Derived >)
-
-const int CoherentAccessPattern     = 0x1;
-const int InnerRandomAccessPattern  = 0x2 | CoherentAccessPattern;
-const int OuterRandomAccessPattern  = 0x4 | CoherentAccessPattern;
-const int RandomAccessPattern       = 0x8 | OuterRandomAccessPattern | InnerRandomAccessPattern;
-
-template<typename Derived> class SparseMatrixBase;
-template<typename _Scalar, int _Flags = 0, typename _Index = int>  class SparseMatrix;
-template<typename _Scalar, int _Flags = 0, typename _Index = int>  class DynamicSparseMatrix;
-template<typename _Scalar, int _Flags = 0, typename _Index = int>  class SparseVector;
-template<typename _Scalar, int _Flags = 0, typename _Index = int>  class MappedSparseMatrix;
-
-template<typename MatrixType, int Mode>           class SparseTriangularView;
-template<typename MatrixType, unsigned int UpLo>  class SparseSelfAdjointView;
-template<typename Lhs, typename Rhs>              class SparseDiagonalProduct;
-template<typename MatrixType> class SparseView;
-
-template<typename Lhs, typename Rhs>        class SparseSparseProduct;
-template<typename Lhs, typename Rhs>        class SparseTimeDenseProduct;
-template<typename Lhs, typename Rhs>        class DenseTimeSparseProduct;
-template<typename Lhs, typename Rhs, bool Transpose> class SparseDenseOuterProduct;
-
-template<typename Lhs, typename Rhs> struct SparseSparseProductReturnType;
-template<typename Lhs, typename Rhs, int InnerSize = internal::traits<Lhs>::ColsAtCompileTime> struct DenseSparseProductReturnType;
-template<typename Lhs, typename Rhs, int InnerSize = internal::traits<Lhs>::ColsAtCompileTime> struct SparseDenseProductReturnType;
-template<typename MatrixType,int UpLo> class SparseSymmetricPermutationProduct;
-
-namespace internal {
-
-template<typename T,int Rows,int Cols> struct sparse_eval;
-
-template<typename T> struct eval<T,Sparse>
-  : public sparse_eval<T, traits<T>::RowsAtCompileTime,traits<T>::ColsAtCompileTime>
-{};
-
-template<typename T,int Cols> struct sparse_eval<T,1,Cols> {
-    typedef typename traits<T>::Scalar _Scalar;
-    enum { _Flags = traits<T>::Flags| RowMajorBit };
-  public:
-    typedef SparseVector<_Scalar, _Flags> type;
-};
-
-template<typename T,int Rows> struct sparse_eval<T,Rows,1> {
-    typedef typename traits<T>::Scalar _Scalar;
-    enum { _Flags = traits<T>::Flags & (~RowMajorBit) };
-  public:
-    typedef SparseVector<_Scalar, _Flags> type;
-};
-
-template<typename T,int Rows,int Cols> struct sparse_eval {
-    typedef typename traits<T>::Scalar _Scalar;
-    typedef typename traits<T>::Index _Index;
-    enum { _Options = ((traits<T>::Flags&RowMajorBit)==RowMajorBit) ? RowMajor : ColMajor };
-  public:
-    typedef SparseMatrix<_Scalar, _Options, _Index> type;
-};
-
-template<typename T> struct sparse_eval<T,1,1> {
-    typedef typename traits<T>::Scalar _Scalar;
-  public:
-    typedef Matrix<_Scalar, 1, 1> type;
-};
-
-template<typename T> struct plain_matrix_type<T,Sparse>
-{
-  typedef typename traits<T>::Scalar _Scalar;
-    enum {
-          _Flags = traits<T>::Flags
-    };
-
-  public:
-    typedef SparseMatrix<_Scalar, _Flags> type;
-};
-
-} // end namespace internal
-
-/** \ingroup SparseCore_Module
-  *
-  * \class Triplet
-  *
-  * \brief A small structure to hold a non zero as a triplet (i,j,value).
-  *
-  * \sa SparseMatrix::setFromTriplets()
-  */
-template<typename Scalar, typename Index=unsigned int>
-class Triplet
-{
-public:
-  Triplet() : m_row(0), m_col(0), m_value(0) {}
-
-  Triplet(const Index& i, const Index& j, const Scalar& v = Scalar(0))
-    : m_row(i), m_col(j), m_value(v)
-  {}
-
-  /** \returns the row index of the element */
-  const Index& row() const { return m_row; }
-
-  /** \returns the column index of the element */
-  const Index& col() const { return m_col; }
-
-  /** \returns the value of the element */
-  const Scalar& value() const { return m_value; }
-protected:
-  Index m_row, m_col;
-  Scalar m_value;
-};
-
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSEUTIL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseVector.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseVector.h
deleted file mode 100644
index cd1e760..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseVector.h
+++ /dev/null
@@ -1,412 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSEVECTOR_H
-#define EIGEN_SPARSEVECTOR_H
-
-namespace Eigen { 
-
-/** \ingroup SparseCore_Module
-  * \class SparseVector
-  *
-  * \brief a sparse vector class
-  *
-  * \tparam _Scalar the scalar type, i.e. the type of the coefficients
-  *
-  * See http://www.netlib.org/linalg/html_templates/node91.html for details on the storage scheme.
-  *
-  * This class can be extended with the help of the plugin mechanism described on the page
-  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_SPARSEVECTOR_PLUGIN.
-  */
-
-namespace internal {
-template<typename _Scalar, int _Options, typename _Index>
-struct traits<SparseVector<_Scalar, _Options, _Index> >
-{
-  typedef _Scalar Scalar;
-  typedef _Index Index;
-  typedef Sparse StorageKind;
-  typedef MatrixXpr XprKind;
-  enum {
-    IsColVector = (_Options & RowMajorBit) ? 0 : 1,
-
-    RowsAtCompileTime = IsColVector ? Dynamic : 1,
-    ColsAtCompileTime = IsColVector ? 1 : Dynamic,
-    MaxRowsAtCompileTime = RowsAtCompileTime,
-    MaxColsAtCompileTime = ColsAtCompileTime,
-    Flags = _Options | NestByRefBit | LvalueBit | (IsColVector ? 0 : RowMajorBit),
-    CoeffReadCost = NumTraits<Scalar>::ReadCost,
-    SupportedAccessPatterns = InnerRandomAccessPattern
-  };
-};
-}
-
-template<typename _Scalar, int _Options, typename _Index>
-class SparseVector
-  : public SparseMatrixBase<SparseVector<_Scalar, _Options, _Index> >
-{
-    typedef SparseMatrixBase<SparseVector> SparseBase;
-    
-  public:
-    EIGEN_SPARSE_PUBLIC_INTERFACE(SparseVector)
-    EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseVector, +=)
-    EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseVector, -=)
-    
-    typedef internal::CompressedStorage<Scalar,Index> Storage;
-    enum { IsColVector = internal::traits<SparseVector>::IsColVector };
-    
-    enum {
-      Options = _Options
-    };
-    
-    EIGEN_STRONG_INLINE Index rows() const { return IsColVector ? m_size : 1; }
-    EIGEN_STRONG_INLINE Index cols() const { return IsColVector ? 1 : m_size; }
-    EIGEN_STRONG_INLINE Index innerSize() const { return m_size; }
-    EIGEN_STRONG_INLINE Index outerSize() const { return 1; }
-
-    EIGEN_STRONG_INLINE const Scalar* valuePtr() const { return &m_data.value(0); }
-    EIGEN_STRONG_INLINE Scalar* valuePtr() { return &m_data.value(0); }
-
-    EIGEN_STRONG_INLINE const Index* innerIndexPtr() const { return &m_data.index(0); }
-    EIGEN_STRONG_INLINE Index* innerIndexPtr() { return &m_data.index(0); }
-    
-    /** \internal */
-    inline Storage& data() { return m_data; }
-    /** \internal */
-    inline const Storage& data() const { return m_data; }
-
-    inline Scalar coeff(Index row, Index col) const
-    {
-      eigen_assert((IsColVector ? col : row)==0);
-      return coeff(IsColVector ? row : col);
-    }
-    inline Scalar coeff(Index i) const { return m_data.at(i); }
-
-    inline Scalar& coeffRef(Index row, Index col)
-    {
-      eigen_assert((IsColVector ? col : row)==0);
-      return coeff(IsColVector ? row : col);
-    }
-
-    /** \returns a reference to the coefficient value at given index \a i
-      * This operation involes a log(rho*size) binary search. If the coefficient does not
-      * exist yet, then a sorted insertion into a sequential buffer is performed.
-      *
-      * This insertion might be very costly if the number of nonzeros above \a i is large.
-      */
-    inline Scalar& coeffRef(Index i)
-    {
-      return m_data.atWithInsertion(i);
-    }
-
-  public:
-
-    class InnerIterator;
-    class ReverseInnerIterator;
-
-    inline void setZero() { m_data.clear(); }
-
-    /** \returns the number of non zero coefficients */
-    inline Index nonZeros() const  { return static_cast<Index>(m_data.size()); }
-
-    inline void startVec(Index outer)
-    {
-      EIGEN_UNUSED_VARIABLE(outer);
-      eigen_assert(outer==0);
-    }
-
-    inline Scalar& insertBackByOuterInner(Index outer, Index inner)
-    {
-      EIGEN_UNUSED_VARIABLE(outer);
-      eigen_assert(outer==0);
-      return insertBack(inner);
-    }
-    inline Scalar& insertBack(Index i)
-    {
-      m_data.append(0, i);
-      return m_data.value(m_data.size()-1);
-    }
-
-    inline Scalar& insert(Index row, Index col)
-    {
-      Index inner = IsColVector ? row : col;
-      Index outer = IsColVector ? col : row;
-      eigen_assert(outer==0);
-      return insert(inner);
-    }
-    Scalar& insert(Index i)
-    {
-      Index startId = 0;
-      Index p = Index(m_data.size()) - 1;
-      // TODO smart realloc
-      m_data.resize(p+2,1);
-
-      while ( (p >= startId) && (m_data.index(p) > i) )
-      {
-        m_data.index(p+1) = m_data.index(p);
-        m_data.value(p+1) = m_data.value(p);
-        --p;
-      }
-      m_data.index(p+1) = i;
-      m_data.value(p+1) = 0;
-      return m_data.value(p+1);
-    }
-
-    /**
-      */
-    inline void reserve(Index reserveSize) { m_data.reserve(reserveSize); }
-
-
-    inline void finalize() {}
-
-    void prune(const Scalar& reference, const RealScalar& epsilon = NumTraits<RealScalar>::dummy_precision())
-    {
-      m_data.prune(reference,epsilon);
-    }
-
-    void resize(Index rows, Index cols)
-    {
-      eigen_assert(rows==1 || cols==1);
-      resize(IsColVector ? rows : cols);
-    }
-
-    void resize(Index newSize)
-    {
-      m_size = newSize;
-      m_data.clear();
-    }
-
-    void resizeNonZeros(Index size) { m_data.resize(size); }
-
-    inline SparseVector() : m_size(0) { resize(0); }
-
-    inline SparseVector(Index size) : m_size(0) { resize(size); }
-
-    inline SparseVector(Index rows, Index cols) : m_size(0) { resize(rows,cols); }
-
-    template<typename OtherDerived>
-    inline SparseVector(const SparseMatrixBase<OtherDerived>& other)
-      : m_size(0)
-    {
-      *this = other.derived();
-    }
-
-    inline SparseVector(const SparseVector& other)
-      : SparseBase(other), m_size(0)
-    {
-      *this = other.derived();
-    }
-
-    /** Swaps the values of \c *this and \a other.
-      * Overloaded for performance: this version performs a \em shallow swap by swaping pointers and attributes only.
-      * \sa SparseMatrixBase::swap()
-      */
-    inline void swap(SparseVector& other)
-    {
-      std::swap(m_size, other.m_size);
-      m_data.swap(other.m_data);
-    }
-
-    inline SparseVector& operator=(const SparseVector& other)
-    {
-      if (other.isRValue())
-      {
-        swap(other.const_cast_derived());
-      }
-      else
-      {
-        resize(other.size());
-        m_data = other.m_data;
-      }
-      return *this;
-    }
-
-    template<typename OtherDerived>
-    inline SparseVector& operator=(const SparseMatrixBase<OtherDerived>& other)
-    {
-      if ( (bool(OtherDerived::IsVectorAtCompileTime) && int(RowsAtCompileTime)!=int(OtherDerived::RowsAtCompileTime))
-          || ((!bool(OtherDerived::IsVectorAtCompileTime)) && ( bool(IsColVector) ? other.cols()>1 : other.rows()>1 )))
-        return assign(other.transpose());
-      else
-        return assign(other);
-    }
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    template<typename Lhs, typename Rhs>
-    inline SparseVector& operator=(const SparseSparseProduct<Lhs,Rhs>& product)
-    {
-      return Base::operator=(product);
-    }
-    #endif
-
-    friend std::ostream & operator << (std::ostream & s, const SparseVector& m)
-    {
-      for (Index i=0; i<m.nonZeros(); ++i)
-        s << "(" << m.m_data.value(i) << "," << m.m_data.index(i) << ") ";
-      s << std::endl;
-      return s;
-    }
-
-    /** Destructor */
-    inline ~SparseVector() {}
-
-    /** Overloaded for performance */
-    Scalar sum() const;
-
-  public:
-
-    /** \internal \deprecated use setZero() and reserve() */
-    EIGEN_DEPRECATED void startFill(Index reserve)
-    {
-      setZero();
-      m_data.reserve(reserve);
-    }
-
-    /** \internal \deprecated use insertBack(Index,Index) */
-    EIGEN_DEPRECATED Scalar& fill(Index r, Index c)
-    {
-      eigen_assert(r==0 || c==0);
-      return fill(IsColVector ? r : c);
-    }
-
-    /** \internal \deprecated use insertBack(Index) */
-    EIGEN_DEPRECATED Scalar& fill(Index i)
-    {
-      m_data.append(0, i);
-      return m_data.value(m_data.size()-1);
-    }
-
-    /** \internal \deprecated use insert(Index,Index) */
-    EIGEN_DEPRECATED Scalar& fillrand(Index r, Index c)
-    {
-      eigen_assert(r==0 || c==0);
-      return fillrand(IsColVector ? r : c);
-    }
-
-    /** \internal \deprecated use insert(Index) */
-    EIGEN_DEPRECATED Scalar& fillrand(Index i)
-    {
-      return insert(i);
-    }
-
-    /** \internal \deprecated use finalize() */
-    EIGEN_DEPRECATED void endFill() {}
-    
-    // These two functions were here in the 3.1 release, so let's keep them in case some code rely on them.
-    /** \internal \deprecated use data() */
-    EIGEN_DEPRECATED Storage& _data() { return m_data; }
-    /** \internal \deprecated use data() */
-    EIGEN_DEPRECATED const Storage& _data() const { return m_data; }
-    
-#   ifdef EIGEN_SPARSEVECTOR_PLUGIN
-#     include EIGEN_SPARSEVECTOR_PLUGIN
-#   endif
-
-protected:
-    template<typename OtherDerived>
-    EIGEN_DONT_INLINE SparseVector& assign(const SparseMatrixBase<OtherDerived>& _other);
-    
-    Storage m_data;
-    Index m_size;
-};
-
-template<typename Scalar, int _Options, typename _Index>
-class SparseVector<Scalar,_Options,_Index>::InnerIterator
-{
-  public:
-    InnerIterator(const SparseVector& vec, Index outer=0)
-      : m_data(vec.m_data), m_id(0), m_end(static_cast<Index>(m_data.size()))
-    {
-      EIGEN_UNUSED_VARIABLE(outer);
-      eigen_assert(outer==0);
-    }
-
-    InnerIterator(const internal::CompressedStorage<Scalar,Index>& data)
-      : m_data(data), m_id(0), m_end(static_cast<Index>(m_data.size()))
-    {}
-
-    inline InnerIterator& operator++() { m_id++; return *this; }
-
-    inline Scalar value() const { return m_data.value(m_id); }
-    inline Scalar& valueRef() { return const_cast<Scalar&>(m_data.value(m_id)); }
-
-    inline Index index() const { return m_data.index(m_id); }
-    inline Index row() const { return IsColVector ? index() : 0; }
-    inline Index col() const { return IsColVector ? 0 : index(); }
-
-    inline operator bool() const { return (m_id < m_end); }
-
-  protected:
-    const internal::CompressedStorage<Scalar,Index>& m_data;
-    Index m_id;
-    const Index m_end;
-};
-
-template<typename Scalar, int _Options, typename _Index>
-class SparseVector<Scalar,_Options,_Index>::ReverseInnerIterator
-{
-  public:
-    ReverseInnerIterator(const SparseVector& vec, Index outer=0)
-      : m_data(vec.m_data), m_id(static_cast<Index>(m_data.size())), m_start(0)
-    {
-      EIGEN_UNUSED_VARIABLE(outer);
-      eigen_assert(outer==0);
-    }
-
-    ReverseInnerIterator(const internal::CompressedStorage<Scalar,Index>& data)
-      : m_data(data), m_id(static_cast<Index>(m_data.size())), m_start(0)
-    {}
-
-    inline ReverseInnerIterator& operator--() { m_id--; return *this; }
-
-    inline Scalar value() const { return m_data.value(m_id-1); }
-    inline Scalar& valueRef() { return const_cast<Scalar&>(m_data.value(m_id-1)); }
-
-    inline Index index() const { return m_data.index(m_id-1); }
-    inline Index row() const { return IsColVector ? index() : 0; }
-    inline Index col() const { return IsColVector ? 0 : index(); }
-
-    inline operator bool() const { return (m_id > m_start); }
-
-  protected:
-    const internal::CompressedStorage<Scalar,Index>& m_data;
-    Index m_id;
-    const Index m_start;
-};
-
-template<typename Scalar, int _Options, typename _Index>
-template<typename OtherDerived>
-EIGEN_DONT_INLINE SparseVector<Scalar,_Options,_Index>& SparseVector<Scalar,_Options,_Index>::assign(const SparseMatrixBase<OtherDerived>& _other)
-{
-  const OtherDerived& other(_other.derived());
-  const bool needToTranspose = (Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit);
-  if(needToTranspose)
-  {
-    Index size = other.size();
-    Index nnz = other.nonZeros();
-    resize(size);
-    reserve(nnz);
-    for(Index i=0; i<size; ++i)
-    {
-      typename OtherDerived::InnerIterator it(other, i);
-      if(it)
-          insert(i) = it.value();
-    }
-    return *this;
-  }
-  else
-  {
-    // there is no special optimization
-    return Base::operator=(other);
-  }
-}
-    
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSEVECTOR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseView.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseView.h
deleted file mode 100644
index 4fd0cb3..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseView.h
+++ /dev/null
@@ -1,98 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2010 Daniel Lowengrub <lowdanie at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSEVIEW_H
-#define EIGEN_SPARSEVIEW_H
-
-namespace Eigen { 
-
-namespace internal {
-
-template<typename MatrixType>
-struct traits<SparseView<MatrixType> > : traits<MatrixType>
-{
-  typedef int Index;
-  typedef Sparse StorageKind;
-  enum {
-    Flags = int(traits<MatrixType>::Flags) & (RowMajorBit)
-  };
-};
-
-} // end namespace internal
-
-template<typename MatrixType>
-class SparseView : public SparseMatrixBase<SparseView<MatrixType> >
-{
-  typedef typename MatrixType::Nested MatrixTypeNested;
-  typedef typename internal::remove_all<MatrixTypeNested>::type _MatrixTypeNested;
-public:
-  EIGEN_SPARSE_PUBLIC_INTERFACE(SparseView)
-
-  SparseView(const MatrixType& mat, const Scalar& m_reference = Scalar(0),
-             typename NumTraits<Scalar>::Real m_epsilon = NumTraits<Scalar>::dummy_precision()) : 
-    m_matrix(mat), m_reference(m_reference), m_epsilon(m_epsilon) {}
-
-  class InnerIterator;
-
-  inline Index rows() const { return m_matrix.rows(); }
-  inline Index cols() const { return m_matrix.cols(); }
-
-  inline Index innerSize() const { return m_matrix.innerSize(); }
-  inline Index outerSize() const { return m_matrix.outerSize(); }
-
-protected:
-  MatrixTypeNested m_matrix;
-  Scalar m_reference;
-  typename NumTraits<Scalar>::Real m_epsilon;
-};
-
-template<typename MatrixType>
-class SparseView<MatrixType>::InnerIterator : public _MatrixTypeNested::InnerIterator
-{
-public:
-  typedef typename _MatrixTypeNested::InnerIterator IterBase;
-  InnerIterator(const SparseView& view, Index outer) :
-  IterBase(view.m_matrix, outer), m_view(view)
-  {
-    incrementToNonZero();
-  }
-
-  EIGEN_STRONG_INLINE InnerIterator& operator++()
-  {
-    IterBase::operator++();
-    incrementToNonZero();
-    return *this;
-  }
-
-  using IterBase::value;
-
-protected:
-  const SparseView& m_view;
-
-private:
-  void incrementToNonZero()
-  {
-    while((bool(*this)) && internal::isMuchSmallerThan(value(), m_view.m_reference, m_view.m_epsilon))
-    {
-      IterBase::operator++();
-    }
-  }
-};
-
-template<typename Derived>
-const SparseView<Derived> MatrixBase<Derived>::sparseView(const Scalar& m_reference,
-                                                          const typename NumTraits<Scalar>::Real& m_epsilon) const
-{
-  return SparseView<Derived>(derived(), m_reference, m_epsilon);
-}
-
-} // end namespace Eigen
-
-#endif
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/TriangularSolver.h b/vendor/eigen-3.1.91/Eigen/src/SparseCore/TriangularSolver.h
deleted file mode 100644
index cb8ad82..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseCore/TriangularSolver.h
+++ /dev/null
@@ -1,334 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSETRIANGULARSOLVER_H
-#define EIGEN_SPARSETRIANGULARSOLVER_H
-
-namespace Eigen { 
-
-namespace internal {
-
-template<typename Lhs, typename Rhs, int Mode,
-  int UpLo = (Mode & Lower)
-           ? Lower
-           : (Mode & Upper)
-           ? Upper
-           : -1,
-  int StorageOrder = int(traits<Lhs>::Flags) & RowMajorBit>
-struct sparse_solve_triangular_selector;
-
-// forward substitution, row-major
-template<typename Lhs, typename Rhs, int Mode>
-struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Lower,RowMajor>
-{
-  typedef typename Rhs::Scalar Scalar;
-  static void run(const Lhs& lhs, Rhs& other)
-  {
-    for(int col=0 ; col<other.cols() ; ++col)
-    {
-      for(int i=0; i<lhs.rows(); ++i)
-      {
-        Scalar tmp = other.coeff(i,col);
-        Scalar lastVal(0);
-        int lastIndex = 0;
-        for(typename Lhs::InnerIterator it(lhs, i); it; ++it)
-        {
-          lastVal = it.value();
-          lastIndex = it.index();
-          if(lastIndex==i)
-            break;
-          tmp -= lastVal * other.coeff(lastIndex,col);
-        }
-        if (Mode & UnitDiag)
-          other.coeffRef(i,col) = tmp;
-        else
-        {
-          eigen_assert(lastIndex==i);
-          other.coeffRef(i,col) = tmp/lastVal;
-        }
-      }
-    }
-  }
-};
-
-// backward substitution, row-major
-template<typename Lhs, typename Rhs, int Mode>
-struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Upper,RowMajor>
-{
-  typedef typename Rhs::Scalar Scalar;
-  static void run(const Lhs& lhs, Rhs& other)
-  {
-    for(int col=0 ; col<other.cols() ; ++col)
-    {
-      for(int i=lhs.rows()-1 ; i>=0 ; --i)
-      {
-        Scalar tmp = other.coeff(i,col);
-        Scalar l_ii = 0;
-        typename Lhs::InnerIterator it(lhs, i);
-        while(it && it.index()<i)
-          ++it;
-        if(!(Mode & UnitDiag))
-        {
-          eigen_assert(it && it.index()==i);
-          l_ii = it.value();
-          ++it;
-        }
-        else if (it && it.index() == i)
-          ++it;
-        for(; it; ++it)
-        {
-          tmp -= it.value() * other.coeff(it.index(),col);
-        }
-
-        if (Mode & UnitDiag)
-          other.coeffRef(i,col) = tmp;
-        else
-          other.coeffRef(i,col) = tmp/l_ii;
-      }
-    }
-  }
-};
-
-// forward substitution, col-major
-template<typename Lhs, typename Rhs, int Mode>
-struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Lower,ColMajor>
-{
-  typedef typename Rhs::Scalar Scalar;
-  static void run(const Lhs& lhs, Rhs& other)
-  {
-    for(int col=0 ; col<other.cols() ; ++col)
-    {
-      for(int i=0; i<lhs.cols(); ++i)
-      {
-        Scalar& tmp = other.coeffRef(i,col);
-        if (tmp!=Scalar(0)) // optimization when other is actually sparse
-        {
-          typename Lhs::InnerIterator it(lhs, i);
-          while(it && it.index()<i)
-            ++it;
-          if(!(Mode & UnitDiag))
-          {
-            eigen_assert(it && it.index()==i);
-            tmp /= it.value();
-          }
-          if (it && it.index()==i)
-            ++it;
-          for(; it; ++it)
-            other.coeffRef(it.index(), col) -= tmp * it.value();
-        }
-      }
-    }
-  }
-};
-
-// backward substitution, col-major
-template<typename Lhs, typename Rhs, int Mode>
-struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Upper,ColMajor>
-{
-  typedef typename Rhs::Scalar Scalar;
-  static void run(const Lhs& lhs, Rhs& other)
-  {
-    for(int col=0 ; col<other.cols() ; ++col)
-    {
-      for(int i=lhs.cols()-1; i>=0; --i)
-      {
-        Scalar& tmp = other.coeffRef(i,col);
-        if (tmp!=Scalar(0)) // optimization when other is actually sparse
-        {
-          if(!(Mode & UnitDiag))
-          {
-            // TODO replace this by a binary search. make sure the binary search is safe for partially sorted elements
-            typename Lhs::ReverseInnerIterator it(lhs, i);
-            while(it && it.index()!=i)
-              --it;
-            eigen_assert(it && it.index()==i);
-            other.coeffRef(i,col) /= it.value();
-          }
-          typename Lhs::InnerIterator it(lhs, i);
-          for(; it && it.index()<i; ++it)
-            other.coeffRef(it.index(), col) -= tmp * it.value();
-        }
-      }
-    }
-  }
-};
-
-} // end namespace internal
-
-template<typename ExpressionType,int Mode>
-template<typename OtherDerived>
-void SparseTriangularView<ExpressionType,Mode>::solveInPlace(MatrixBase<OtherDerived>& other) const
-{
-  eigen_assert(m_matrix.cols() == m_matrix.rows() && m_matrix.cols() == other.rows());
-  eigen_assert((!(Mode & ZeroDiag)) && bool(Mode & (Upper|Lower)));
-
-  enum { copy = internal::traits<OtherDerived>::Flags & RowMajorBit };
-
-  typedef typename internal::conditional<copy,
-    typename internal::plain_matrix_type_column_major<OtherDerived>::type, OtherDerived&>::type OtherCopy;
-  OtherCopy otherCopy(other.derived());
-
-  internal::sparse_solve_triangular_selector<ExpressionType, typename internal::remove_reference<OtherCopy>::type, Mode>::run(m_matrix, otherCopy);
-
-  if (copy)
-    other = otherCopy;
-}
-
-template<typename ExpressionType,int Mode>
-template<typename OtherDerived>
-typename internal::plain_matrix_type_column_major<OtherDerived>::type
-SparseTriangularView<ExpressionType,Mode>::solve(const MatrixBase<OtherDerived>& other) const
-{
-  typename internal::plain_matrix_type_column_major<OtherDerived>::type res(other);
-  solveInPlace(res);
-  return res;
-}
-
-// pure sparse path
-
-namespace internal {
-
-template<typename Lhs, typename Rhs, int Mode,
-  int UpLo = (Mode & Lower)
-           ? Lower
-           : (Mode & Upper)
-           ? Upper
-           : -1,
-  int StorageOrder = int(Lhs::Flags) & (RowMajorBit)>
-struct sparse_solve_triangular_sparse_selector;
-
-// forward substitution, col-major
-template<typename Lhs, typename Rhs, int Mode, int UpLo>
-struct sparse_solve_triangular_sparse_selector<Lhs,Rhs,Mode,UpLo,ColMajor>
-{
-  typedef typename Rhs::Scalar Scalar;
-  typedef typename promote_index_type<typename traits<Lhs>::Index,
-                                         typename traits<Rhs>::Index>::type Index;
-  static void run(const Lhs& lhs, Rhs& other)
-  {
-    const bool IsLower = (UpLo==Lower);
-    AmbiVector<Scalar,Index> tempVector(other.rows()*2);
-    tempVector.setBounds(0,other.rows());
-
-    Rhs res(other.rows(), other.cols());
-    res.reserve(other.nonZeros());
-
-    for(int col=0 ; col<other.cols() ; ++col)
-    {
-      // FIXME estimate number of non zeros
-      tempVector.init(.99/*float(other.col(col).nonZeros())/float(other.rows())*/);
-      tempVector.setZero();
-      tempVector.restart();
-      for (typename Rhs::InnerIterator rhsIt(other, col); rhsIt; ++rhsIt)
-      {
-        tempVector.coeffRef(rhsIt.index()) = rhsIt.value();
-      }
-
-      for(int i=IsLower?0:lhs.cols()-1;
-          IsLower?i<lhs.cols():i>=0;
-          i+=IsLower?1:-1)
-      {
-        tempVector.restart();
-        Scalar& ci = tempVector.coeffRef(i);
-        if (ci!=Scalar(0))
-        {
-          // find
-          typename Lhs::InnerIterator it(lhs, i);
-          if(!(Mode & UnitDiag))
-          {
-            if (IsLower)
-            {
-              eigen_assert(it.index()==i);
-              ci /= it.value();
-            }
-            else
-              ci /= lhs.coeff(i,i);
-          }
-          tempVector.restart();
-          if (IsLower)
-          {
-            if (it.index()==i)
-              ++it;
-            for(; it; ++it)
-              tempVector.coeffRef(it.index()) -= ci * it.value();
-          }
-          else
-          {
-            for(; it && it.index()<i; ++it)
-              tempVector.coeffRef(it.index()) -= ci * it.value();
-          }
-        }
-      }
-
-
-      int count = 0;
-      // FIXME compute a reference value to filter zeros
-      for (typename AmbiVector<Scalar,Index>::Iterator it(tempVector/*,1e-12*/); it; ++it)
-      {
-        ++ count;
-//         std::cerr << "fill " << it.index() << ", " << col << "\n";
-//         std::cout << it.value() << "  ";
-        // FIXME use insertBack
-        res.insert(it.index(), col) = it.value();
-      }
-//       std::cout << "tempVector.nonZeros() == " << int(count) << " / " << (other.rows()) << "\n";
-    }
-    res.finalize();
-    other = res.markAsRValue();
-  }
-};
-
-} // end namespace internal
-
-template<typename ExpressionType,int Mode>
-template<typename OtherDerived>
-void SparseTriangularView<ExpressionType,Mode>::solveInPlace(SparseMatrixBase<OtherDerived>& other) const
-{
-  eigen_assert(m_matrix.cols() == m_matrix.rows() && m_matrix.cols() == other.rows());
-  eigen_assert( (!(Mode & ZeroDiag)) && bool(Mode & (Upper|Lower)));
-
-//   enum { copy = internal::traits<OtherDerived>::Flags & RowMajorBit };
-
-//   typedef typename internal::conditional<copy,
-//     typename internal::plain_matrix_type_column_major<OtherDerived>::type, OtherDerived&>::type OtherCopy;
-//   OtherCopy otherCopy(other.derived());
-
-  internal::sparse_solve_triangular_sparse_selector<ExpressionType, OtherDerived, Mode>::run(m_matrix, other.derived());
-
-//   if (copy)
-//     other = otherCopy;
-}
-
-#ifdef EIGEN2_SUPPORT
-
-// deprecated stuff:
-
-/** \deprecated */
-template<typename Derived>
-template<typename OtherDerived>
-void SparseMatrixBase<Derived>::solveTriangularInPlace(MatrixBase<OtherDerived>& other) const
-{
-  this->template triangular<Flags&(Upper|Lower)>().solveInPlace(other);
-}
-
-/** \deprecated */
-template<typename Derived>
-template<typename OtherDerived>
-typename internal::plain_matrix_type_column_major<OtherDerived>::type
-SparseMatrixBase<Derived>::solveTriangular(const MatrixBase<OtherDerived>& other) const
-{
-  typename internal::plain_matrix_type_column_major<OtherDerived>::type res(other);
-  derived().solveTriangularInPlace(res);
-  return res;
-}
-#endif // EIGEN2_SUPPORT
-
-} // end namespace Eigen
-
-#endif // EIGEN_SPARSETRIANGULARSOLVER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU.h b/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU.h
deleted file mode 100644
index e782500..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU.h
+++ /dev/null
@@ -1,618 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-
-#ifndef EIGEN_SPARSE_LU_H
-#define EIGEN_SPARSE_LU_H
-
-namespace Eigen {
-
-template <typename _MatrixType, typename _OrderingType> class SparseLU;
-template <typename MappedSparseMatrixType> struct SparseLUMatrixLReturnType; 
-/** \ingroup SparseLU_Module
-  * \class SparseLU
-  * 
-  * \brief Sparse supernodal LU factorization for general matrices
-  * 
-  * This class implements the supernodal LU factorization for general matrices.
-  * It uses the main techniques from the sequential SuperLU package 
-  * (http://crd-legacy.lbl.gov/~xiaoye/SuperLU/). It handles transparently real 
-  * and complex arithmetics with single and double precision, depending on the 
-  * scalar type of your input matrix. 
-  * The code has been optimized to provide BLAS-3 operations during supernode-panel updates. 
-  * It benefits directly from the built-in high-performant Eigen BLAS routines. 
-  * Moreover, when the size of a supernode is very small, the BLAS calls are avoided to 
-  * enable a better optimization from the compiler. For best performance, 
-  * you should compile it with NDEBUG flag to avoid the numerous bounds checking on vectors. 
-  * 
-  * An important parameter of this class is the ordering method. It is used to reorder the columns 
-  * (and eventually the rows) of the matrix to reduce the number of new elements that are created during 
-  * numerical factorization. The cheapest method available is COLAMD. 
-  * See  \link OrderingMethods_Module the OrderingMethods module \endlink for the list of 
-  * built-in and external ordering methods. 
-  *
-  * Simple example with key steps 
-  * \code
-  * VectorXd x(n), b(n);
-  * SparseMatrix<double, ColMajor> A;
-  * SparseLU<SparseMatrix<scalar, ColMajor>, COLAMDOrdering<Index> >   solver;
-  * // fill A and b;
-  * // Compute the ordering permutation vector from the structural pattern of A
-  * solver.analyzePattern(A); 
-  * // Compute the numerical factorization 
-  * solver.factorize(A); 
-  * //Use the factors to solve the linear system 
-  * x = solver.solve(b); 
-  * \endcode
-  * 
-  * \warning The input matrix A should be in a \b compressed and \b column-major form.
-  * Otherwise an expensive copy will be made. You can call the inexpensive makeCompressed() to get a compressed matrix.
-  * 
-  * \note Unlike the initial SuperLU implementation, there is no step to equilibrate the matrix. 
-  * For badly scaled matrices, this step can be useful to reduce the pivoting during factorization. 
-  * If this is the case for your matrices, you can try the basic scaling method at
-  *  "unsupported/Eigen/src/IterativeSolvers/Scaling.h"
-  * 
-  * \tparam _MatrixType The type of the sparse matrix. It must be a column-major SparseMatrix<>
-  * \tparam _OrderingType The ordering method to use, either AMD, COLAMD or METIS
-  * 
-  * 
-  * \sa \ref TutorialSparseDirectSolvers
-  * \sa \ref OrderingMethods_Module
-  */
-template <typename _MatrixType, typename _OrderingType>
-class SparseLU : public internal::SparseLUImpl<typename _MatrixType::Scalar, typename _MatrixType::Index>
-{
-  public:
-    typedef _MatrixType MatrixType; 
-    typedef _OrderingType OrderingType;
-    typedef typename MatrixType::Scalar Scalar; 
-    typedef typename MatrixType::RealScalar RealScalar; 
-    typedef typename MatrixType::Index Index; 
-    typedef SparseMatrix<Scalar,ColMajor,Index> NCMatrix;
-    typedef internal::MappedSuperNodalMatrix<Scalar, Index> SCMatrix; 
-    typedef Matrix<Scalar,Dynamic,1> ScalarVector;
-    typedef Matrix<Index,Dynamic,1> IndexVector;
-    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType;
-    typedef internal::SparseLUImpl<Scalar, Index> Base;
-    
-  public:
-    SparseLU():m_isInitialized(true),m_lastError(""),m_Ustore(0,0,0,0,0,0),m_symmetricmode(false),m_diagpivotthresh(1.0)
-    {
-      initperfvalues(); 
-    }
-    SparseLU(const MatrixType& matrix):m_isInitialized(true),m_lastError(""),m_Ustore(0,0,0,0,0,0),m_symmetricmode(false),m_diagpivotthresh(1.0)
-    {
-      initperfvalues(); 
-      compute(matrix);
-    }
-    
-    ~SparseLU()
-    {
-      // Free all explicit dynamic pointers 
-    }
-    
-    void analyzePattern (const MatrixType& matrix);
-    void factorize (const MatrixType& matrix);
-    void simplicialfactorize(const MatrixType& matrix);
-    
-    /**
-     * Compute the symbolic and numeric factorization of the input sparse matrix.
-     * The input matrix should be in column-major storage. 
-     */
-    void compute (const MatrixType& matrix)
-    {
-      // Analyze 
-      analyzePattern(matrix); 
-      //Factorize
-      factorize(matrix);
-    } 
-    
-    inline Index rows() const { return m_mat.rows(); }
-    inline Index cols() const { return m_mat.cols(); }
-    /** Indicate that the pattern of the input matrix is symmetric */
-    void isSymmetric(bool sym)
-    {
-      m_symmetricmode = sym;
-    }
-    
-    /** Returns an expression of the matrix L, internally stored as supernodes 
-     * For a triangular solve with this matrix, use
-     * \code
-     * y = b; matrixL().solveInPlace(y);
-     * \endcode
-     */
-    SparseLUMatrixLReturnType<SCMatrix> matrixL() const
-    {
-      return SparseLUMatrixLReturnType<SCMatrix>(m_Lstore);
-    }
-    /** Set the threshold used for a diagonal entry to be an acceptable pivot. */
-    void setPivotThreshold(const RealScalar& thresh)
-    {
-      m_diagpivotthresh = thresh; 
-    }
-
-    /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
-      *
-      * \warning the destination matrix X in X = this->solve(B) must be colmun-major.
-      *
-      * \sa compute()
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<SparseLU, Rhs> solve(const MatrixBase<Rhs>& B) const 
-    {
-      eigen_assert(m_factorizationIsOk && "SparseLU is not initialized."); 
-      eigen_assert(rows()==B.rows()
-                    && "SparseLU::solve(): invalid number of rows of the right hand side matrix B");
-          return internal::solve_retval<SparseLU, Rhs>(*this, B.derived());
-    }
-
-        /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
-      *
-      * \sa compute()
-      */
-    template<typename Rhs>
-    inline const internal::sparse_solve_retval<SparseLU, Rhs> solve(const SparseMatrixBase<Rhs>& B) const 
-    {
-      eigen_assert(m_factorizationIsOk && "SparseLU is not initialized."); 
-      eigen_assert(rows()==B.rows()
-                    && "SparseLU::solve(): invalid number of rows of the right hand side matrix B");
-          return internal::sparse_solve_retval<SparseLU, Rhs>(*this, B.derived());
-    }
-    
-     /** \brief Reports whether previous computation was successful.
-      *
-      * \returns \c Success if computation was succesful,
-      *          \c NumericalIssue if the LU factorization reports a problem, zero diagonal for instance
-      *          \c InvalidInput if the input matrix is invalid
-      *
-      * \sa iparm()          
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
-      return m_info;
-    }
-    /**
-     * \returns A string describing the type of error
-     */
-    std::string lastErrorMessage() const
-    {
-      return m_lastError; 
-    }
-    template<typename Rhs, typename Dest>
-    bool _solve(const MatrixBase<Rhs> &B, MatrixBase<Dest> &_X) const
-    {
-      Dest& X(_X.derived());
-      eigen_assert(m_factorizationIsOk && "The matrix should be factorized first");
-      EIGEN_STATIC_ASSERT((Dest::Flags&RowMajorBit)==0,
-                        THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
-      
-      
-      Index nrhs = B.cols(); 
-      Index n = B.rows(); 
-      
-      // Permute the right hand side to form X = Pr*B
-      // on return, X is overwritten by the computed solution
-      X.resize(n,nrhs);
-      for(Index j = 0; j < nrhs; ++j)
-        X.col(j) = m_perm_r * B.col(j); 
-      
-      //Forward substitution with L 
-//       m_Lstore.solveInPlace(X);
-        this->matrixL().solveInPlace(X);
-      
-      // Backward solve with U
-      for (Index k = m_Lstore.nsuper(); k >= 0; k--)
-      {
-        Index fsupc = m_Lstore.supToCol()[k];
-        Index lda = m_Lstore.colIndexPtr()[fsupc+1] - m_Lstore.colIndexPtr()[fsupc]; // leading dimension
-        Index nsupc = m_Lstore.supToCol()[k+1] - fsupc; 
-        Index luptr = m_Lstore.colIndexPtr()[fsupc]; 
-        
-        if (nsupc == 1)
-        {
-          for (Index j = 0; j < nrhs; j++)
-          {
-            X(fsupc, j) /= m_Lstore.valuePtr()[luptr]; 
-          }
-        }
-        else 
-        {
-          Map<const Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > A( &(m_Lstore.valuePtr()[luptr]), nsupc, nsupc, OuterStride<>(lda) ); 
-          Map< Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > U (&(X(fsupc,0)), nsupc, nrhs, OuterStride<>(n) ); 
-          U = A.template triangularView<Upper>().solve(U); 
-        }
-        
-        for (Index j = 0; j < nrhs; ++j)
-        {
-          for (Index jcol = fsupc; jcol < fsupc + nsupc; jcol++)
-          {
-            typename MappedSparseMatrix<Scalar,ColMajor, Index>::InnerIterator it(m_Ustore, jcol);
-            for ( ; it; ++it)
-            {
-              Index irow = it.index(); 
-              X(irow, j) -= X(jcol, j) * it.value();
-            }
-          }
-        }
-      } // End For U-solve
-      
-      // Permute back the solution 
-      for (Index j = 0; j < nrhs; ++j)
-        X.col(j) = m_perm_c.inverse() * X.col(j); 
-      
-      return true; 
-    }
-
-  protected:
-    // Functions 
-    void initperfvalues()
-    {
-      m_perfv.panel_size = 12; 
-      m_perfv.relax = 1; 
-      m_perfv.maxsuper = 128; 
-      m_perfv.rowblk = 16; 
-      m_perfv.colblk = 8; 
-      m_perfv.fillfactor = 20;  
-    }
-      
-    // Variables 
-    mutable ComputationInfo m_info;
-    bool m_isInitialized;
-    bool m_factorizationIsOk;
-    bool m_analysisIsOk;
-    std::string m_lastError;
-    NCMatrix m_mat; // The input (permuted ) matrix 
-    SCMatrix m_Lstore; // The lower triangular matrix (supernodal)
-    MappedSparseMatrix<Scalar,ColMajor,Index> m_Ustore; // The upper triangular matrix
-    PermutationType m_perm_c; // Column permutation 
-    PermutationType m_perm_r ; // Row permutation
-    IndexVector m_etree; // Column elimination tree 
-    
-    typename Base::GlobalLU_t m_glu; 
-                               
-    // SparseLU options 
-    bool m_symmetricmode;
-    // values for performance 
-    internal::perfvalues<Index> m_perfv; 
-    RealScalar m_diagpivotthresh; // Specifies the threshold used for a diagonal entry to be an acceptable pivot
-    Index m_nnzL, m_nnzU; // Nonzeros in L and U factors 
-    
-  private:
-    // Copy constructor 
-    SparseLU (SparseLU& ) {}
-  
-}; // End class SparseLU
-
-
-// Functions needed by the anaysis phase
-/** 
- * Compute the column permutation to minimize the fill-in
- * 
- *  - Apply this permutation to the input matrix - 
- * 
- *  - Compute the column elimination tree on the permuted matrix 
- * 
- *  - Postorder the elimination tree and the column permutation
- * 
- */
-template <typename MatrixType, typename OrderingType>
-void SparseLU<MatrixType, OrderingType>::analyzePattern(const MatrixType& mat)
-{
-  
-  //TODO  It is possible as in SuperLU to compute row and columns scaling vectors to equilibrate the matrix mat.
-  
-  OrderingType ord; 
-  ord(mat,m_perm_c);
-  
-  // Apply the permutation to the column of the input  matrix
-  //First copy the whole input matrix. 
-  m_mat = mat;
-  if (m_perm_c.size()) {
-    m_mat.uncompress(); //NOTE: The effect of this command is only to create the InnerNonzeros pointers. FIXME : This vector is filled but not subsequently used.  
-    //Then, permute only the column pointers
-    for (Index i = 0; i < mat.cols(); i++)
-    {
-      m_mat.outerIndexPtr()[m_perm_c.indices()(i)] = mat.outerIndexPtr()[i]; 
-      m_mat.innerNonZeroPtr()[m_perm_c.indices()(i)] = mat.outerIndexPtr()[i+1] - mat.outerIndexPtr()[i]; 
-    }
-  }
-  // Compute the column elimination tree of the permuted matrix 
-  IndexVector firstRowElt;
-  internal::coletree(m_mat, m_etree,firstRowElt); 
-     
-  // In symmetric mode, do not do postorder here
-  if (!m_symmetricmode) {
-    IndexVector post, iwork; 
-    // Post order etree
-    internal::treePostorder(m_mat.cols(), m_etree, post); 
-      
-   
-    // Renumber etree in postorder 
-    Index m = m_mat.cols(); 
-    iwork.resize(m+1);
-    for (Index i = 0; i < m; ++i) iwork(post(i)) = post(m_etree(i));
-    m_etree = iwork;
-    
-    // Postmultiply A*Pc by post, i.e reorder the matrix according to the postorder of the etree
-    PermutationType post_perm(m); 
-    for (Index i = 0; i < m; i++) 
-      post_perm.indices()(i) = post(i); 
-        
-    // Combine the two permutations : postorder the permutation for future use
-    if(m_perm_c.size()) {
-      m_perm_c = post_perm * m_perm_c;
-    }
-    
-  } // end postordering 
-  
-  m_analysisIsOk = true; 
-}
-
-// Functions needed by the numerical factorization phase
-
-
-/** 
- *  - Numerical factorization 
- *  - Interleaved with the symbolic factorization 
- * On exit,  info is 
- * 
- *    = 0: successful factorization
- * 
- *    > 0: if info = i, and i is
- * 
- *       <= A->ncol: U(i,i) is exactly zero. The factorization has
- *          been completed, but the factor U is exactly singular,
- *          and division by zero will occur if it is used to solve a
- *          system of equations.
- * 
- *       > A->ncol: number of bytes allocated when memory allocation
- *         failure occurred, plus A->ncol. If lwork = -1, it is
- *         the estimated amount of space needed, plus A->ncol.  
- */
-template <typename MatrixType, typename OrderingType>
-void SparseLU<MatrixType, OrderingType>::factorize(const MatrixType& matrix)
-{
-  using internal::emptyIdxLU;
-  eigen_assert(m_analysisIsOk && "analyzePattern() should be called first"); 
-  eigen_assert((matrix.rows() == matrix.cols()) && "Only for squared matrices");
-  
-  typedef typename IndexVector::Scalar Index; 
-  
-  
-  // Apply the column permutation computed in analyzepattern()
-  //   m_mat = matrix * m_perm_c.inverse(); 
-  m_mat = matrix;
-  if (m_perm_c.size()) 
-  {
-    m_mat.uncompress(); //NOTE: The effect of this command is only to create the InnerNonzeros pointers.
-    //Then, permute only the column pointers
-    for (Index i = 0; i < matrix.cols(); i++)
-    {
-      m_mat.outerIndexPtr()[m_perm_c.indices()(i)] = matrix.outerIndexPtr()[i]; 
-      m_mat.innerNonZeroPtr()[m_perm_c.indices()(i)] = matrix.outerIndexPtr()[i+1] - matrix.outerIndexPtr()[i]; 
-    }
-  } 
-  else 
-  { //FIXME This should not be needed if the empty permutation is handled transparently
-    m_perm_c.resize(matrix.cols());
-    for(Index i = 0; i < matrix.cols(); ++i) m_perm_c.indices()(i) = i;
-  }
-  
-  Index m = m_mat.rows();
-  Index n = m_mat.cols();
-  Index nnz = m_mat.nonZeros();
-  Index maxpanel = m_perfv.panel_size * m;
-  // Allocate working storage common to the factor routines
-  Index lwork = 0;
-  Index info = Base::memInit(m, n, nnz, lwork, m_perfv.fillfactor, m_perfv.panel_size, m_glu); 
-  if (info) 
-  {
-    m_lastError = "UNABLE TO ALLOCATE WORKING MEMORY\n\n" ;
-    m_factorizationIsOk = false;
-    return ; 
-  }
-  
-  // Set up pointers for integer working arrays 
-  IndexVector segrep(m); segrep.setZero();
-  IndexVector parent(m); parent.setZero();
-  IndexVector xplore(m); xplore.setZero();
-  IndexVector repfnz(maxpanel);
-  IndexVector panel_lsub(maxpanel);
-  IndexVector xprune(n); xprune.setZero();
-  IndexVector marker(m*internal::LUNoMarker); marker.setZero();
-  
-  repfnz.setConstant(-1); 
-  panel_lsub.setConstant(-1);
-  
-  // Set up pointers for scalar working arrays 
-  ScalarVector dense; 
-  dense.setZero(maxpanel);
-  ScalarVector tempv; 
-  tempv.setZero(internal::LUnumTempV(m, m_perfv.panel_size, m_perfv.maxsuper, /*m_perfv.rowblk*/m) );
-  
-  // Compute the inverse of perm_c
-  PermutationType iperm_c(m_perm_c.inverse()); 
-  
-  // Identify initial relaxed snodes
-  IndexVector relax_end(n);
-  if ( m_symmetricmode == true ) 
-    Base::heap_relax_snode(n, m_etree, m_perfv.relax, marker, relax_end);
-  else
-    Base::relax_snode(n, m_etree, m_perfv.relax, marker, relax_end);
-  
-  
-  m_perm_r.resize(m); 
-  m_perm_r.indices().setConstant(-1);
-  marker.setConstant(-1);
-  
-  m_glu.supno(0) = emptyIdxLU; m_glu.xsup.setConstant(0);
-  m_glu.xsup(0) = m_glu.xlsub(0) = m_glu.xusub(0) = m_glu.xlusup(0) = Index(0);
-  
-  // Work on one 'panel' at a time. A panel is one of the following :
-  //  (a) a relaxed supernode at the bottom of the etree, or
-  //  (b) panel_size contiguous columns, <panel_size> defined by the user
-  Index jcol; 
-  IndexVector panel_histo(n);
-  Index pivrow; // Pivotal row number in the original row matrix
-  Index nseg1; // Number of segments in U-column above panel row jcol
-  Index nseg; // Number of segments in each U-column 
-  Index irep; 
-  Index i, k, jj; 
-  for (jcol = 0; jcol < n; )
-  {
-    // Adjust panel size so that a panel won't overlap with the next relaxed snode. 
-    Index panel_size = m_perfv.panel_size; // upper bound on panel width
-    for (k = jcol + 1; k < (std::min)(jcol+panel_size, n); k++)
-    {
-      if (relax_end(k) != emptyIdxLU) 
-      {
-        panel_size = k - jcol; 
-        break; 
-      }
-    }
-    if (k == n) 
-      panel_size = n - jcol; 
-      
-    // Symbolic outer factorization on a panel of columns 
-    Base::panel_dfs(m, panel_size, jcol, m_mat, m_perm_r.indices(), nseg1, dense, panel_lsub, segrep, repfnz, xprune, marker, parent, xplore, m_glu); 
-    
-    // Numeric sup-panel updates in topological order 
-    Base::panel_bmod(m, panel_size, jcol, nseg1, dense, tempv, segrep, repfnz, m_glu); 
-    
-    // Sparse LU within the panel, and below the panel diagonal 
-    for ( jj = jcol; jj< jcol + panel_size; jj++) 
-    {
-      k = (jj - jcol) * m; // Column index for w-wide arrays 
-      
-      nseg = nseg1; // begin after all the panel segments
-      //Depth-first-search for the current column
-      VectorBlock<IndexVector> panel_lsubk(panel_lsub, k, m);
-      VectorBlock<IndexVector> repfnz_k(repfnz, k, m); 
-      info = Base::column_dfs(m, jj, m_perm_r.indices(), m_perfv.maxsuper, nseg, panel_lsubk, segrep, repfnz_k, xprune, marker, parent, xplore, m_glu); 
-      if ( info ) 
-      {
-        m_lastError =  "UNABLE TO EXPAND MEMORY IN COLUMN_DFS() ";
-        m_info = NumericalIssue; 
-        m_factorizationIsOk = false; 
-        return; 
-      }
-      // Numeric updates to this column 
-      VectorBlock<ScalarVector> dense_k(dense, k, m); 
-      VectorBlock<IndexVector> segrep_k(segrep, nseg1, m-nseg1); 
-      info = Base::column_bmod(jj, (nseg - nseg1), dense_k, tempv, segrep_k, repfnz_k, jcol, m_glu); 
-      if ( info ) 
-      {
-        m_lastError = "UNABLE TO EXPAND MEMORY IN COLUMN_BMOD() ";
-        m_info = NumericalIssue; 
-        m_factorizationIsOk = false; 
-        return; 
-      }
-      
-      // Copy the U-segments to ucol(*)
-      info = Base::copy_to_ucol(jj, nseg, segrep, repfnz_k ,m_perm_r.indices(), dense_k, m_glu); 
-      if ( info ) 
-      {
-        m_lastError = "UNABLE TO EXPAND MEMORY IN COPY_TO_UCOL() ";
-        m_info = NumericalIssue; 
-        m_factorizationIsOk = false; 
-        return; 
-      }
-      
-      // Form the L-segment 
-      info = Base::pivotL(jj, m_diagpivotthresh, m_perm_r.indices(), iperm_c.indices(), pivrow, m_glu);
-      if ( info ) 
-      {
-        m_lastError = "THE MATRIX IS STRUCTURALLY SINGULAR ... ZERO COLUMN AT ";
-        std::ostringstream returnInfo;
-        returnInfo << info; 
-        m_lastError += returnInfo.str();
-        m_info = NumericalIssue; 
-        m_factorizationIsOk = false; 
-        return; 
-      }
-      
-      // Prune columns (0:jj-1) using column jj
-      Base::pruneL(jj, m_perm_r.indices(), pivrow, nseg, segrep, repfnz_k, xprune, m_glu); 
-      
-      // Reset repfnz for this column 
-      for (i = 0; i < nseg; i++)
-      {
-        irep = segrep(i); 
-        repfnz_k(irep) = emptyIdxLU; 
-      }
-    } // end SparseLU within the panel  
-    jcol += panel_size;  // Move to the next panel
-  } // end for -- end elimination 
-  
-  // Count the number of nonzeros in factors 
-  Base::countnz(n, m_nnzL, m_nnzU, m_glu); 
-  // Apply permutation  to the L subscripts 
-  Base::fixupL(n, m_perm_r.indices(), m_glu); 
-  
-  // Create supernode matrix L 
-  m_Lstore.setInfos(m, n, m_glu.lusup, m_glu.xlusup, m_glu.lsub, m_glu.xlsub, m_glu.supno, m_glu.xsup); 
-  // Create the column major upper sparse matrix  U; 
-  new (&m_Ustore) MappedSparseMatrix<Scalar, ColMajor, Index> ( m, n, m_nnzU, m_glu.xusub.data(), m_glu.usub.data(), m_glu.ucol.data() ); 
-  
-  m_info = Success;
-  m_factorizationIsOk = true;
-}
-
-template<typename MappedSupernodalType>
-struct SparseLUMatrixLReturnType
-{
-  typedef typename MappedSupernodalType::Index Index;
-  typedef typename MappedSupernodalType::Scalar Scalar;
-  SparseLUMatrixLReturnType(const MappedSupernodalType& mapL) : m_mapL(mapL)
-  { }
-  Index rows() { return m_mapL.rows(); }
-  Index cols() { return m_mapL.cols(); }
-  template<typename Dest>
-  void solveInPlace( MatrixBase<Dest> &X) const
-  {
-    m_mapL.solveInPlace(X);
-  }
-  const MappedSupernodalType& m_mapL;
-};
-
-namespace internal {
-  
-template<typename _MatrixType, typename Derived, typename Rhs>
-struct solve_retval<SparseLU<_MatrixType,Derived>, Rhs>
-  : solve_retval_base<SparseLU<_MatrixType,Derived>, Rhs>
-{
-  typedef SparseLU<_MatrixType,Derived> Dec;
-  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    dec()._solve(rhs(),dst);
-  }
-};
-
-template<typename _MatrixType, typename Derived, typename Rhs>
-struct sparse_solve_retval<SparseLU<_MatrixType,Derived>, Rhs>
-  : sparse_solve_retval_base<SparseLU<_MatrixType,Derived>, Rhs>
-{
-  typedef SparseLU<_MatrixType,Derived> Dec;
-  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    this->defaultEvalTo(dst);
-  }
-};
-} // end namespace internal
-
-} // End namespace Eigen 
-
-#endif
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLUImpl.h b/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLUImpl.h
deleted file mode 100644
index 14d7089..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLUImpl.h
+++ /dev/null
@@ -1,64 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#ifndef SPARSELU_IMPL_H
-#define SPARSELU_IMPL_H
-
-namespace Eigen {
-namespace internal {
-  
-/** \ingroup SparseLU_Module
-  * \class SparseLUImpl
-  * Base class for sparseLU
-  */
-template <typename Scalar, typename Index>
-class SparseLUImpl
-{
-  public:
-    typedef Matrix<Scalar,Dynamic,1> ScalarVector;
-    typedef Matrix<Index,Dynamic,1> IndexVector; 
-    typedef typename ScalarVector::RealScalar RealScalar; 
-    typedef Ref<Matrix<Scalar,Dynamic,1> > BlockScalarVector;
-    typedef Ref<Matrix<Index,Dynamic,1> > BlockIndexVector;
-    typedef LU_GlobalLU_t<IndexVector, ScalarVector> GlobalLU_t; 
-    typedef SparseMatrix<Scalar,ColMajor,Index> MatrixType; 
-    
-  protected:
-     template <typename VectorType>
-     Index expand(VectorType& vec, Index& length, Index nbElts, Index keep_prev, Index& num_expansions);
-     Index memInit(Index m, Index n, Index annz, Index lwork, Index fillratio, Index panel_size,  GlobalLU_t& glu); 
-     template <typename VectorType>
-     Index memXpand(VectorType& vec, Index& maxlen, Index nbElts, MemType memtype, Index& num_expansions);
-     void heap_relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end); 
-     void relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end); 
-     Index snode_dfs(const Index jcol, const Index kcol,const MatrixType& mat,  IndexVector& xprune, IndexVector& marker, GlobalLU_t& glu); 
-     Index snode_bmod (const Index jcol, const Index fsupc, ScalarVector& dense, GlobalLU_t& glu);
-     Index pivotL(const Index jcol, const RealScalar& diagpivotthresh, IndexVector& perm_r, IndexVector& iperm_c, Index& pivrow, GlobalLU_t& glu);
-     template <typename Traits>
-     void dfs_kernel(const Index jj, IndexVector& perm_r,
-                    Index& nseg, IndexVector& panel_lsub, IndexVector& segrep,
-                    Ref<IndexVector> repfnz_col, IndexVector& xprune, Ref<IndexVector> marker, IndexVector& parent,
-                    IndexVector& xplore, GlobalLU_t& glu, Index& nextl_col, Index krow, Traits& traits);
-     void panel_dfs(const Index m, const Index w, const Index jcol, MatrixType& A, IndexVector& perm_r, Index& nseg, ScalarVector& dense, IndexVector& panel_lsub, IndexVector& segrep, IndexVector& repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu);
-    
-     void panel_bmod(const Index m, const Index w, const Index jcol, const Index nseg, ScalarVector& dense, ScalarVector& tempv, IndexVector& segrep, IndexVector& repfnz, GlobalLU_t& glu);
-     Index column_dfs(const Index m, const Index jcol, IndexVector& perm_r, Index maxsuper, Index& nseg,  BlockIndexVector lsub_col, IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu);
-     Index column_bmod(const Index jcol, const Index nseg, BlockScalarVector dense, ScalarVector& tempv, BlockIndexVector segrep, BlockIndexVector repfnz, Index fpanelc, GlobalLU_t& glu); 
-     Index copy_to_ucol(const Index jcol, const Index nseg, IndexVector& segrep, BlockIndexVector repfnz ,IndexVector& perm_r, BlockScalarVector dense, GlobalLU_t& glu); 
-     void pruneL(const Index jcol, const IndexVector& perm_r, const Index pivrow, const Index nseg, const IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, GlobalLU_t& glu);
-     void countnz(const Index n, Index& nnzL, Index& nnzU, GlobalLU_t& glu); 
-     void fixupL(const Index n, const IndexVector& perm_r, GlobalLU_t& glu); 
-     
-     template<typename , typename >
-     friend struct column_dfs_traits;
-}; 
-
-} // end namespace internal
-} // namespace Eigen
-
-#endif
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_Memory.h b/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_Memory.h
deleted file mode 100644
index 6d9570d..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_Memory.h
+++ /dev/null
@@ -1,222 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-/* 
- 
- * NOTE: This file is the modified version of [s,d,c,z]memory.c files in SuperLU 
- 
- * -- SuperLU routine (version 3.1) --
- * Univ. of California Berkeley, Xerox Palo Alto Research Center,
- * and Lawrence Berkeley National Lab.
- * August 1, 2008
- *
- * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
- * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program for any
- * purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is
- * granted, provided the above notices are retained, and a notice that
- * the code was modified is included with the above copyright notice.
- */
-
-#ifndef EIGEN_SPARSELU_MEMORY
-#define EIGEN_SPARSELU_MEMORY
-
-namespace Eigen {
-namespace internal {
-  
-enum { LUNoMarker = 3 };
-enum {emptyIdxLU = -1};
-template<typename Index>
-inline Index LUnumTempV(Index& m, Index& w, Index& t, Index& b)
-{
-  return (std::max)(m, (t+b)*w);
-}
-
-template< typename Scalar, typename Index>
-inline Index LUTempSpace(Index&m, Index& w)
-{
-  return (2*w + 4 + LUNoMarker) * m * sizeof(Index) + (w + 1) * m * sizeof(Scalar);
-}
-
-
-
-
-/** 
-  * Expand the existing storage to accomodate more fill-ins
-  * \param vec Valid pointer to the vector to allocate or expand
-  * \param[in,out] length  At input, contain the current length of the vector that is to be increased. At output, length of the newly allocated vector
-  * \param[in] nbElts Current number of elements in the factors
-  * \param keep_prev  1: use length  and do not expand the vector; 0: compute new_len and expand
-  * \param[in,out] num_expansions Number of times the memory has been expanded
-  */
-template <typename Scalar, typename Index>
-template <typename VectorType>
-Index  SparseLUImpl<Scalar,Index>::expand(VectorType& vec, Index& length, Index nbElts, Index keep_prev, Index& num_expansions) 
-{
-  
-  float alpha = 1.5; // Ratio of the memory increase 
-  Index new_len; // New size of the allocated memory
-  
-  if(num_expansions == 0 || keep_prev) 
-    new_len = length ; // First time allocate requested
-  else 
-    new_len = alpha * length ;
-  
-  VectorType old_vec; // Temporary vector to hold the previous values   
-  if (nbElts > 0 )
-    old_vec = vec.segment(0,nbElts); 
-  
-  //Allocate or expand the current vector
-  try 
-  {
-    vec.resize(new_len); 
-  }
-  catch(std::bad_alloc& )
-  {
-    if ( !num_expansions )
-    {
-      // First time to allocate from LUMemInit()
-      throw; // Pass the exception to LUMemInit() which has a try... catch block
-    }
-    if (keep_prev)
-    {
-      // In this case, the memory length should not not be reduced
-      return new_len;
-    }
-    else 
-    {
-      // Reduce the size and increase again 
-      Index tries = 0; // Number of attempts
-      do 
-      {
-        alpha = (alpha + 1)/2;
-        new_len = alpha * length ; 
-        try
-        {
-          vec.resize(new_len); 
-        }
-        catch(std::bad_alloc& )
-        {
-          tries += 1; 
-          if ( tries > 10) return new_len; 
-        }
-      } while (!vec.size());
-    }
-  }
-  //Copy the previous values to the newly allocated space 
-  if (nbElts > 0)
-    vec.segment(0, nbElts) = old_vec;   
-   
-  
-  length  = new_len;
-  if(num_expansions) ++num_expansions;
-  return 0; 
-}
-
-/**
- * \brief  Allocate various working space for the numerical factorization phase.
- * \param m number of rows of the input matrix 
- * \param n number of columns 
- * \param annz number of initial nonzeros in the matrix 
- * \param lwork  if lwork=-1, this routine returns an estimated size of the required memory
- * \param glu persistent data to facilitate multiple factors : will be deleted later ??
- * \param fillratio estimated ratio of fill in the factors
- * \param panel_size Size of a panel
- * \return an estimated size of the required memory if lwork = -1; otherwise, return the size of actually allocated memory when allocation failed, and 0 on success
- * \note Unlike SuperLU, this routine does not support successive factorization with the same pattern and the same row permutation
- */
-template <typename Scalar, typename Index>
-Index SparseLUImpl<Scalar,Index>::memInit(Index m, Index n, Index annz, Index lwork, Index fillratio, Index panel_size,  GlobalLU_t& glu)
-{
-  Index& num_expansions = glu.num_expansions; //No memory expansions so far
-  num_expansions = 0; 
-  glu.nzumax = glu.nzlumax = (std::max)(fillratio * annz, m*n); // estimated number of nonzeros in U 
-  glu.nzlmax  = (std::max)(1., fillratio/4.) * annz; // estimated  nnz in L factor
-
-  // Return the estimated size to the user if necessary
-  Index tempSpace;
-  tempSpace = (2*panel_size + 4 + LUNoMarker) * m * sizeof(Index) + (panel_size + 1) * m * sizeof(Scalar);
-  if (lwork == emptyIdxLU) 
-  {
-    Index estimated_size;
-    estimated_size = (5 * n + 5) * sizeof(Index)  + tempSpace
-                    + (glu.nzlmax + glu.nzumax) * sizeof(Index) + (glu.nzlumax+glu.nzumax) *  sizeof(Scalar) + n; 
-    return estimated_size;
-  }
-  
-  // Setup the required space 
-  
-  // First allocate Integer pointers for L\U factors
-  glu.xsup.resize(n+1);
-  glu.supno.resize(n+1);
-  glu.xlsub.resize(n+1);
-  glu.xlusup.resize(n+1);
-  glu.xusub.resize(n+1);
-
-  // Reserve memory for L/U factors
-  do 
-  {
-    try
-    {
-      expand<ScalarVector>(glu.lusup, glu.nzlumax, 0, 0, num_expansions); 
-      expand<ScalarVector>(glu.ucol,glu.nzumax, 0, 0, num_expansions); 
-      expand<IndexVector>(glu.lsub,glu.nzlmax, 0, 0, num_expansions); 
-      expand<IndexVector>(glu.usub,glu.nzumax, 0, 1, num_expansions); 
-    }
-    catch(std::bad_alloc& )
-    {
-      //Reduce the estimated size and retry
-      glu.nzlumax /= 2;
-      glu.nzumax /= 2;
-      glu.nzlmax /= 2;
-      if (glu.nzlumax < annz ) return glu.nzlumax; 
-    }
-    
-  } while (!glu.lusup.size() || !glu.ucol.size() || !glu.lsub.size() || !glu.usub.size());
-
-  
-  
-  ++num_expansions;
-  return 0;
-  
-} // end LuMemInit
-
-/** 
- * \brief Expand the existing storage 
- * \param vec vector to expand 
- * \param[in,out] maxlen On input, previous size of vec (Number of elements to copy ). on output, new size
- * \param nbElts current number of elements in the vector.
- * \param memtype Type of the element to expand
- * \param num_expansions Number of expansions 
- * \return 0 on success, > 0 size of the memory allocated so far
- */
-template <typename Scalar, typename Index>
-template <typename VectorType>
-Index SparseLUImpl<Scalar,Index>::memXpand(VectorType& vec, Index& maxlen, Index nbElts, MemType memtype, Index& num_expansions)
-{
-  Index failed_size; 
-  if (memtype == USUB)
-     failed_size = this->expand<VectorType>(vec, maxlen, nbElts, 1, num_expansions);
-  else
-    failed_size = this->expand<VectorType>(vec, maxlen, nbElts, 0, num_expansions);
-
-  if (failed_size)
-    return failed_size; 
-  
-  return 0 ;  
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-#endif // EIGEN_SPARSELU_MEMORY
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h b/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
deleted file mode 100644
index 3eae954..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
+++ /dev/null
@@ -1,294 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSELU_SUPERNODAL_MATRIX_H
-#define EIGEN_SPARSELU_SUPERNODAL_MATRIX_H
-
-namespace Eigen {
-namespace internal {
-
-/** \ingroup SparseLU_Module
- * \brief a class to manipulate the L supernodal factor from the SparseLU factorization
- * 
- * This class  contain the data to easily store 
- * and manipulate the supernodes during the factorization and solution phase of Sparse LU. 
- * Only the lower triangular matrix has supernodes.
- * 
- * NOTE : This class corresponds to the SCformat structure in SuperLU
- * 
- */
-/* TODO
- * InnerIterator as for sparsematrix 
- * SuperInnerIterator to iterate through all supernodes 
- * Function for triangular solve
- */
-template <typename _Scalar, typename _Index>
-class MappedSuperNodalMatrix
-{
-  public:
-    typedef _Scalar Scalar; 
-    typedef _Index Index;
-    typedef Matrix<Index,Dynamic,1> IndexVector; 
-    typedef Matrix<Scalar,Dynamic,1> ScalarVector;
-  public:
-    MappedSuperNodalMatrix()
-    {
-      
-    }
-    MappedSuperNodalMatrix(Index m, Index n,  ScalarVector& nzval, IndexVector& nzval_colptr, IndexVector& rowind, 
-             IndexVector& rowind_colptr, IndexVector& col_to_sup, IndexVector& sup_to_col )
-    {
-      setInfos(m, n, nzval, nzval_colptr, rowind, rowind_colptr, col_to_sup, sup_to_col);
-    }
-    
-    ~MappedSuperNodalMatrix()
-    {
-      
-    }
-    /**
-     * Set appropriate pointers for the lower triangular supernodal matrix
-     * These infos are available at the end of the numerical factorization
-     * FIXME This class will be modified such that it can be use in the course 
-     * of the factorization.
-     */
-    void setInfos(Index m, Index n, ScalarVector& nzval, IndexVector& nzval_colptr, IndexVector& rowind, 
-             IndexVector& rowind_colptr, IndexVector& col_to_sup, IndexVector& sup_to_col )
-    {
-      m_row = m;
-      m_col = n; 
-      m_nzval = nzval.data(); 
-      m_nzval_colptr = nzval_colptr.data(); 
-      m_rowind = rowind.data(); 
-      m_rowind_colptr = rowind_colptr.data(); 
-      m_nsuper = col_to_sup(n); 
-      m_col_to_sup = col_to_sup.data(); 
-      m_sup_to_col = sup_to_col.data(); 
-    }
-    
-    /**
-     * Number of rows
-     */
-    Index rows() { return m_row; }
-    
-    /**
-     * Number of columns
-     */
-    Index cols() { return m_col; }
-    
-    /**
-     * Return the array of nonzero values packed by column
-     * 
-     * The size is nnz
-     */
-    Scalar* valuePtr() {  return m_nzval; }
-    
-    const Scalar* valuePtr() const 
-    {
-      return m_nzval; 
-    }
-    /**
-     * Return the pointers to the beginning of each column in \ref valuePtr()
-     */
-    Index* colIndexPtr()
-    {
-      return m_nzval_colptr; 
-    }
-    
-    const Index* colIndexPtr() const
-    {
-      return m_nzval_colptr; 
-    }
-    
-    /**
-     * Return the array of compressed row indices of all supernodes
-     */
-    Index* rowIndex()  { return m_rowind; }
-    
-    const Index* rowIndex() const
-    {
-      return m_rowind; 
-    }
-    
-    /**
-     * Return the location in \em rowvaluePtr() which starts each column
-     */
-    Index* rowIndexPtr() { return m_rowind_colptr; }
-    
-    const Index* rowIndexPtr() const 
-    {
-      return m_rowind_colptr; 
-    }
-    
-    /** 
-     * Return the array of column-to-supernode mapping 
-     */
-    Index* colToSup()  { return m_col_to_sup; }
-    
-    const Index* colToSup() const
-    {
-      return m_col_to_sup;       
-    }
-    /**
-     * Return the array of supernode-to-column mapping
-     */
-    Index* supToCol() { return m_sup_to_col; }
-    
-    const Index* supToCol() const 
-    {
-      return m_sup_to_col;
-    }
-    
-    /**
-     * Return the number of supernodes
-     */
-    Index nsuper() const 
-    {
-      return m_nsuper; 
-    }
-    
-    class InnerIterator; 
-    template<typename Dest>
-    void solveInPlace( MatrixBase<Dest>&X) const;
-    
-      
-      
-    
-  protected:
-    Index m_row; // Number of rows
-    Index m_col; // Number of columns 
-    Index m_nsuper; // Number of supernodes 
-    Scalar* m_nzval; //array of nonzero values packed by column
-    Index* m_nzval_colptr; //nzval_colptr[j] Stores the location in nzval[] which starts column j 
-    Index* m_rowind; // Array of compressed row indices of rectangular supernodes
-    Index* m_rowind_colptr; //rowind_colptr[j] stores the location in rowind[] which starts column j
-    Index* m_col_to_sup; // col_to_sup[j] is the supernode number to which column j belongs
-    Index* m_sup_to_col; //sup_to_col[s] points to the starting column of the s-th supernode
-    
-  private :
-};
-
-/**
-  * \brief InnerIterator class to iterate over nonzero values of the current column in the supernodal matrix L
-  * 
-  */
-template<typename Scalar, typename Index>
-class MappedSuperNodalMatrix<Scalar,Index>::InnerIterator
-{
-  public:
-     InnerIterator(const MappedSuperNodalMatrix& mat, Index outer)
-      : m_matrix(mat),
-        m_outer(outer), 
-        m_supno(mat.colToSup()[outer]),
-        m_idval(mat.colIndexPtr()[outer]),
-        m_startidval(m_idval),
-        m_endidval(mat.colIndexPtr()[outer+1]),
-        m_idrow(mat.rowIndexPtr()[outer])
-    {}
-    inline InnerIterator& operator++()
-    { 
-      m_idval++; 
-      m_idrow++;
-      return *this; 
-    }
-    inline Scalar value() const { return m_matrix.valuePtr()[m_idval]; }
-    
-    inline Scalar& valueRef() { return const_cast<Scalar&>(m_matrix.valuePtr()[m_idval]); }
-    
-    inline Index index() const { return m_matrix.rowIndex()[m_idrow]; }
-    inline Index row() const { return index(); }
-    inline Index col() const { return m_outer; }
-    
-    inline Index supIndex() const { return m_supno; }
-    
-    inline operator bool() const 
-    { 
-      return ( (m_idval < m_endidval) && (m_idval >= m_startidval) );
-    }
-    
-  protected:
-    const MappedSuperNodalMatrix& m_matrix; // Supernodal lower triangular matrix 
-    const Index m_outer; // Current column 
-    const Index m_supno; // Current SuperNode number
-    Index m_idval; //Index to browse the values in the current column
-    const Index m_startidval; // Start of the column value
-    const Index m_endidval; // End of the column value
-    Index m_idrow;  //Index to browse the row indices 
-};
-
-/**
- * \brief Solve with the supernode triangular matrix
- * 
- */
-template<typename Scalar, typename Index>
-template<typename Dest>
-void MappedSuperNodalMatrix<Scalar,Index>::solveInPlace( MatrixBase<Dest>&X) const
-{
-    Index n = X.rows(); 
-    Index nrhs = X.cols(); 
-    const Scalar * Lval = valuePtr(); // Nonzero values 
-    Matrix<Scalar,Dynamic,Dynamic> work(n, nrhs); // working vector
-    work.setZero();
-    for (Index k = 0; k <= nsuper(); k ++)
-    {
-      Index fsupc = supToCol()[k]; // First column of the current supernode 
-      Index istart = rowIndexPtr()[fsupc];  // Pointer index to the subscript of the current column
-      Index nsupr = rowIndexPtr()[fsupc+1] - istart;  // Number of rows in the current supernode
-      Index nsupc = supToCol()[k+1] - fsupc;  // Number of columns in the current supernode
-      Index nrow = nsupr - nsupc; // Number of rows in the non-diagonal part of the supernode
-      Index irow; //Current index row
-      
-      if (nsupc == 1 )
-      {
-        for (Index j = 0; j < nrhs; j++)
-        {
-          InnerIterator it(*this, fsupc); 
-          ++it; // Skip the diagonal element
-          for (; it; ++it)
-          {
-            irow = it.row();
-            X(irow, j) -= X(fsupc, j) * it.value(); 
-          }
-        }
-      }
-      else 
-      {
-        // The supernode has more than one column 
-        Index luptr = colIndexPtr()[fsupc]; 
-        Index lda = colIndexPtr()[fsupc+1] - luptr;
-        
-        // Triangular solve 
-        Map<const Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > A( &(Lval[luptr]), nsupc, nsupc, OuterStride<>(lda) ); 
-        Map< Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > U (&(X(fsupc,0)), nsupc, nrhs, OuterStride<>(n) ); 
-        U = A.template triangularView<UnitLower>().solve(U); 
-        
-        // Matrix-vector product 
-        new (&A) Map<const Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > ( &(Lval[luptr+nsupc]), nrow, nsupc, OuterStride<>(lda) ); 
-        work.block(0, 0, nrow, nrhs) = A * U; 
-        
-        //Begin Scatter 
-        for (Index j = 0; j < nrhs; j++)
-        {
-          Index iptr = istart + nsupc; 
-          for (Index i = 0; i < nrow; i++)
-          {
-            irow = rowIndex()[iptr]; 
-            X(irow, j) -= work(i, j); // Scatter operation
-            work(i, j) = Scalar(0); 
-            iptr++;
-          }
-        }
-      }
-    } 
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-#endif // EIGEN_SPARSELU_MATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_column_bmod.h b/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_column_bmod.h
deleted file mode 100644
index f24bd87..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_column_bmod.h
+++ /dev/null
@@ -1,180 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-/* 
- 
- * NOTE: This file is the modified version of xcolumn_bmod.c file in SuperLU 
- 
- * -- SuperLU routine (version 3.0) --
- * Univ. of California Berkeley, Xerox Palo Alto Research Center,
- * and Lawrence Berkeley National Lab.
- * October 15, 2003
- *
- * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
- * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program for any
- * purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is
- * granted, provided the above notices are retained, and a notice that
- * the code was modified is included with the above copyright notice.
- */
-#ifndef SPARSELU_COLUMN_BMOD_H
-#define SPARSELU_COLUMN_BMOD_H
-
-namespace Eigen {
-
-namespace internal {
-/**
- * \brief Performs numeric block updates (sup-col) in topological order
- * 
- * \param jcol current column to update
- * \param nseg Number of segments in the U part
- * \param dense Store the full representation of the column
- * \param tempv working array 
- * \param segrep segment representative ...
- * \param repfnz ??? First nonzero column in each row ???  ...
- * \param fpanelc First column in the current panel
- * \param glu Global LU data. 
- * \return 0 - successful return 
- *         > 0 - number of bytes allocated when run out of space
- * 
- */
-template <typename Scalar, typename Index>
-Index SparseLUImpl<Scalar,Index>::column_bmod(const Index jcol, const Index nseg, BlockScalarVector dense, ScalarVector& tempv, BlockIndexVector segrep, BlockIndexVector repfnz, Index fpanelc, GlobalLU_t& glu)
-{
-  Index  jsupno, k, ksub, krep, ksupno; 
-  Index lptr, nrow, isub, irow, nextlu, new_next, ufirst; 
-  Index fsupc, nsupc, nsupr, luptr, kfnz, no_zeros; 
-  /* krep = representative of current k-th supernode
-    * fsupc =  first supernodal column
-    * nsupc = number of columns in a supernode
-    * nsupr = number of rows in a supernode
-    * luptr = location of supernodal LU-block in storage
-    * kfnz = first nonz in the k-th supernodal segment
-    * no_zeros = no lf leading zeros in a supernodal U-segment
-    */
-  
-  jsupno = glu.supno(jcol);
-  // For each nonzero supernode segment of U[*,j] in topological order 
-  k = nseg - 1; 
-  Index d_fsupc; // distance between the first column of the current panel and the 
-               // first column of the current snode
-  Index fst_col; // First column within small LU update
-  Index segsize; 
-  for (ksub = 0; ksub < nseg; ksub++)
-  {
-    krep = segrep(k); k--; 
-    ksupno = glu.supno(krep); 
-    if (jsupno != ksupno )
-    {
-      // outside the rectangular supernode 
-      fsupc = glu.xsup(ksupno); 
-      fst_col = (std::max)(fsupc, fpanelc); 
-      
-      // Distance from the current supernode to the current panel; 
-      // d_fsupc = 0 if fsupc > fpanelc
-      d_fsupc = fst_col - fsupc; 
-      
-      luptr = glu.xlusup(fst_col) + d_fsupc; 
-      lptr = glu.xlsub(fsupc) + d_fsupc; 
-      
-      kfnz = repfnz(krep); 
-      kfnz = (std::max)(kfnz, fpanelc); 
-      
-      segsize = krep - kfnz + 1; 
-      nsupc = krep - fst_col + 1; 
-      nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); 
-      nrow = nsupr - d_fsupc - nsupc;
-      Index lda = glu.xlusup(fst_col+1) - glu.xlusup(fst_col);
-      
-      
-      // Perform a triangular solver and block update, 
-      // then scatter the result of sup-col update to dense
-      no_zeros = kfnz - fst_col; 
-      if(segsize==1)
-        LU_kernel_bmod<1>::run(segsize, dense, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
-      else
-        LU_kernel_bmod<Dynamic>::run(segsize, dense, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
-    } // end if jsupno 
-  } // end for each segment
-  
-  // Process the supernodal portion of  L\U[*,j]
-  nextlu = glu.xlusup(jcol); 
-  fsupc = glu.xsup(jsupno);
-  
-  // copy the SPA dense into L\U[*,j]
-  Index mem; 
-  new_next = nextlu + glu.xlsub(fsupc + 1) - glu.xlsub(fsupc); 
-  Index offset = internal::first_multiple<Index>(new_next, internal::packet_traits<Scalar>::size) - new_next;
-  if(offset)
-    new_next += offset;
-  while (new_next > glu.nzlumax )
-  {
-    mem = memXpand<ScalarVector>(glu.lusup, glu.nzlumax, nextlu, LUSUP, glu.num_expansions);  
-    if (mem) return mem; 
-  }
-  
-  for (isub = glu.xlsub(fsupc); isub < glu.xlsub(fsupc+1); isub++)
-  {
-    irow = glu.lsub(isub);
-    glu.lusup(nextlu) = dense(irow);
-    dense(irow) = Scalar(0.0); 
-    ++nextlu; 
-  }
-  
-  if(offset)
-  {
-    glu.lusup.segment(nextlu,offset).setZero();
-    nextlu += offset;
-  }
-  glu.xlusup(jcol + 1) = nextlu;  // close L\U(*,jcol); 
-  
-  /* For more updates within the panel (also within the current supernode),
-   * should start from the first column of the panel, or the first column
-   * of the supernode, whichever is bigger. There are two cases:
-   *  1) fsupc < fpanelc, then fst_col <-- fpanelc
-   *  2) fsupc >= fpanelc, then fst_col <-- fsupc
-   */
-  fst_col = (std::max)(fsupc, fpanelc); 
-  
-  if (fst_col  < jcol)
-  {
-    // Distance between the current supernode and the current panel
-    // d_fsupc = 0 if fsupc >= fpanelc
-    d_fsupc = fst_col - fsupc; 
-    
-    lptr = glu.xlsub(fsupc) + d_fsupc; 
-    luptr = glu.xlusup(fst_col) + d_fsupc; 
-    nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); // leading dimension
-    nsupc = jcol - fst_col; // excluding jcol 
-    nrow = nsupr - d_fsupc - nsupc; 
-    
-    // points to the beginning of jcol in snode L\U(jsupno) 
-    ufirst = glu.xlusup(jcol) + d_fsupc; 
-    Index lda = glu.xlusup(jcol+1) - glu.xlusup(jcol);
-    Map<Matrix<Scalar,Dynamic,Dynamic>, 0,  OuterStride<> > A( &(glu.lusup.data()[luptr]), nsupc, nsupc, OuterStride<>(lda) ); 
-    VectorBlock<ScalarVector> u(glu.lusup, ufirst, nsupc); 
-    u = A.template triangularView<UnitLower>().solve(u); 
-    
-    new (&A) Map<Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > ( &(glu.lusup.data()[luptr+nsupc]), nrow, nsupc, OuterStride<>(lda) ); 
-    VectorBlock<ScalarVector> l(glu.lusup, ufirst+nsupc, nrow); 
-    l.noalias() -= A * u;
-    
-  } // End if fst_col
-  return 0; 
-}
-
-} // end namespace internal
-} // end namespace Eigen
-
-#endif // SPARSELU_COLUMN_BMOD_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_column_dfs.h b/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_column_dfs.h
deleted file mode 100644
index bd450dd..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_column_dfs.h
+++ /dev/null
@@ -1,177 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-/* 
- 
- * NOTE: This file is the modified version of [s,d,c,z]column_dfs.c file in SuperLU 
- 
- * -- SuperLU routine (version 2.0) --
- * Univ. of California Berkeley, Xerox Palo Alto Research Center,
- * and Lawrence Berkeley National Lab.
- * November 15, 1997
- *
- * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
- * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program for any
- * purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is
- * granted, provided the above notices are retained, and a notice that
- * the code was modified is included with the above copyright notice.
- */
-#ifndef SPARSELU_COLUMN_DFS_H
-#define SPARSELU_COLUMN_DFS_H
-
-template <typename Scalar, typename Index> class SparseLUImpl;
-namespace Eigen {
-
-namespace internal {
-
-template<typename IndexVector, typename ScalarVector>
-struct column_dfs_traits
-{
-  typedef typename ScalarVector::Scalar Scalar;
-  typedef typename IndexVector::Scalar Index;
-  column_dfs_traits(Index jcol, Index& jsuper, typename SparseLUImpl<Scalar, Index>::GlobalLU_t& glu, SparseLUImpl<Scalar, Index>& luImpl)
-   : m_jcol(jcol), m_jsuper_ref(jsuper), m_glu(glu), m_luImpl(luImpl)
- {}
-  bool update_segrep(Index /*krep*/, Index /*jj*/)
-  {
-    return true;
-  }
-  void mem_expand(IndexVector& lsub, Index& nextl, Index chmark)
-  {
-    if (nextl >= m_glu.nzlmax)
-      m_luImpl.memXpand(lsub, m_glu.nzlmax, nextl, LSUB, m_glu.num_expansions); 
-    if (chmark != (m_jcol-1)) m_jsuper_ref = emptyIdxLU;
-  }
-  enum { ExpandMem = true };
-  
-  Index m_jcol;
-  Index& m_jsuper_ref;
-  typename SparseLUImpl<Scalar, Index>::GlobalLU_t& m_glu;
-  SparseLUImpl<Scalar, Index>& m_luImpl;
-};
-
-
-/**
- * \brief Performs a symbolic factorization on column jcol and decide the supernode boundary
- * 
- * A supernode representative is the last column of a supernode.
- * The nonzeros in U[*,j] are segments that end at supernodes representatives. 
- * The routine returns a list of the supernodal representatives 
- * in topological order of the dfs that generates them. 
- * The location of the first nonzero in each supernodal segment 
- * (supernodal entry location) is also returned. 
- * 
- * \param m number of rows in the matrix
- * \param jcol Current column 
- * \param perm_r Row permutation
- * \param maxsuper  Maximum number of column allowed in a supernode
- * \param [in,out] nseg Number of segments in current U[*,j] - new segments appended
- * \param lsub_col defines the rhs vector to start the dfs
- * \param [in,out] segrep Segment representatives - new segments appended 
- * \param repfnz  First nonzero location in each row
- * \param xprune 
- * \param marker  marker[i] == jj, if i was visited during dfs of current column jj;
- * \param parent
- * \param xplore working array
- * \param glu global LU data 
- * \return 0 success
- *         > 0 number of bytes allocated when run out of space
- * 
- */
-template <typename Scalar, typename Index>
-Index SparseLUImpl<Scalar,Index>::column_dfs(const Index m, const Index jcol, IndexVector& perm_r, Index maxsuper, Index& nseg,  BlockIndexVector lsub_col, IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu)
-{
-  
-  Index jsuper = glu.supno(jcol); 
-  Index nextl = glu.xlsub(jcol); 
-  VectorBlock<IndexVector> marker2(marker, 2*m, m); 
-  
-  
-  column_dfs_traits<IndexVector, ScalarVector> traits(jcol, jsuper, glu, *this);
-  
-  // For each nonzero in A(*,jcol) do dfs 
-  for (Index k = 0; lsub_col[k] != emptyIdxLU; k++) 
-  {
-    Index krow = lsub_col(k); 
-    lsub_col(k) = emptyIdxLU; 
-    Index kmark = marker2(krow); 
-    
-    // krow was visited before, go to the next nonz; 
-    if (kmark == jcol) continue;
-    
-    dfs_kernel(jcol, perm_r, nseg, glu.lsub, segrep, repfnz, xprune, marker2, parent,
-                   xplore, glu, nextl, krow, traits);
-  } // for each nonzero ... 
-  
-  Index fsupc, jptr, jm1ptr, ito, ifrom, istop;
-  Index nsuper = glu.supno(jcol);
-  Index jcolp1 = jcol + 1;
-  Index jcolm1 = jcol - 1;
-  
-  // check to see if j belongs in the same supernode as j-1
-  if ( jcol == 0 )
-  { // Do nothing for column 0 
-    nsuper = glu.supno(0) = 0 ;
-  }
-  else 
-  {
-    fsupc = glu.xsup(nsuper); 
-    jptr = glu.xlsub(jcol); // Not yet compressed
-    jm1ptr = glu.xlsub(jcolm1); 
-    
-    // Use supernodes of type T2 : see SuperLU paper
-    if ( (nextl-jptr != jptr-jm1ptr-1) ) jsuper = emptyIdxLU;
-    
-    // Make sure the number of columns in a supernode doesn't
-    // exceed threshold
-    if ( (jcol - fsupc) >= maxsuper) jsuper = emptyIdxLU; 
-    
-    /* If jcol starts a new supernode, reclaim storage space in
-     * glu.lsub from previous supernode. Note we only store 
-     * the subscript set of the first and last columns of 
-     * a supernode. (first for num values, last for pruning)
-     */
-    if (jsuper == emptyIdxLU)
-    { // starts a new supernode 
-      if ( (fsupc < jcolm1-1) ) 
-      { // >= 3 columns in nsuper
-        ito = glu.xlsub(fsupc+1);
-        glu.xlsub(jcolm1) = ito; 
-        istop = ito + jptr - jm1ptr; 
-        xprune(jcolm1) = istop; // intialize xprune(jcol-1)
-        glu.xlsub(jcol) = istop; 
-        
-        for (ifrom = jm1ptr; ifrom < nextl; ++ifrom, ++ito)
-          glu.lsub(ito) = glu.lsub(ifrom); 
-        nextl = ito;  // = istop + length(jcol)
-      }
-      nsuper++; 
-      glu.supno(jcol) = nsuper; 
-    } // if a new supernode 
-  } // end else:  jcol > 0
-  
-  // Tidy up the pointers before exit
-  glu.xsup(nsuper+1) = jcolp1; 
-  glu.supno(jcolp1) = nsuper; 
-  xprune(jcol) = nextl;  // Intialize upper bound for pruning
-  glu.xlsub(jcolp1) = nextl; 
-  
-  return 0; 
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_kernel_bmod.h b/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
deleted file mode 100644
index 0d0283b..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
+++ /dev/null
@@ -1,130 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef SPARSELU_KERNEL_BMOD_H
-#define SPARSELU_KERNEL_BMOD_H
-
-namespace Eigen {
-namespace internal {
-  
-/**
- * \brief Performs numeric block updates from a given supernode to a single column
- * 
- * \param segsize Size of the segment (and blocks ) to use for updates
- * \param[in,out] dense Packed values of the original matrix
- * \param tempv temporary vector to use for updates
- * \param lusup array containing the supernodes
- * \param lda Leading dimension in the supernode
- * \param nrow Number of rows in the rectangular part of the supernode
- * \param lsub compressed row subscripts of supernodes
- * \param lptr pointer to the first column of the current supernode in lsub
- * \param no_zeros Number of nonzeros elements before the diagonal part of the supernode
- * \return 0 on success
- */
-template <int SegSizeAtCompileTime> struct LU_kernel_bmod
-{
-  template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
-  static EIGEN_DONT_INLINE void run(const int segsize, BlockScalarVector& dense, ScalarVector& tempv, ScalarVector& lusup, Index& luptr, const Index lda,
-                                    const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros);
-};
-
-template <int SegSizeAtCompileTime>
-template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
-EIGEN_DONT_INLINE void LU_kernel_bmod<SegSizeAtCompileTime>::run(const int segsize, BlockScalarVector& dense, ScalarVector& tempv, ScalarVector& lusup, Index& luptr, const Index lda,
-                                                                  const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros)
-{
-  typedef typename ScalarVector::Scalar Scalar;
-  // First, copy U[*,j] segment from dense(*) to tempv(*)
-  // The result of triangular solve is in tempv[*]; 
-    // The result of matric-vector update is in dense[*]
-  Index isub = lptr + no_zeros; 
-  int i;
-  Index irow;
-  for (i = 0; i < ((SegSizeAtCompileTime==Dynamic)?segsize:SegSizeAtCompileTime); i++)
-  {
-    irow = lsub(isub); 
-    tempv(i) = dense(irow); 
-    ++isub; 
-  }
-  // Dense triangular solve -- start effective triangle
-  luptr += lda * no_zeros + no_zeros; 
-  // Form Eigen matrix and vector 
-  Map<Matrix<Scalar,SegSizeAtCompileTime,SegSizeAtCompileTime>, 0, OuterStride<> > A( &(lusup.data()[luptr]), segsize, segsize, OuterStride<>(lda) );
-  Map<Matrix<Scalar,SegSizeAtCompileTime,1> > u(tempv.data(), segsize);
-  
-  u = A.template triangularView<UnitLower>().solve(u); 
-  
-  // Dense matrix-vector product y <-- B*x 
-  luptr += segsize;
-  const Index PacketSize = internal::packet_traits<Scalar>::size;
-  Index ldl = internal::first_multiple(nrow, PacketSize);
-  Map<Matrix<Scalar,Dynamic,SegSizeAtCompileTime>, 0, OuterStride<> > B( &(lusup.data()[luptr]), nrow, segsize, OuterStride<>(lda) );
-  Index aligned_offset = internal::first_aligned(tempv.data()+segsize, PacketSize);
-  Index aligned_with_B_offset = (PacketSize-internal::first_aligned(B.data(), PacketSize))%PacketSize;
-  Map<Matrix<Scalar,Dynamic,1>, 0, OuterStride<> > l(tempv.data()+segsize+aligned_offset+aligned_with_B_offset, nrow, OuterStride<>(ldl) );
-  
-  l.setZero();
-  internal::sparselu_gemm<Scalar>(l.rows(), l.cols(), B.cols(), B.data(), B.outerStride(), u.data(), u.outerStride(), l.data(), l.outerStride());
-  
-  // Scatter tempv[] into SPA dense[] as a temporary storage 
-  isub = lptr + no_zeros;
-  for (i = 0; i < ((SegSizeAtCompileTime==Dynamic)?segsize:SegSizeAtCompileTime); i++)
-  {
-    irow = lsub(isub++); 
-    dense(irow) = tempv(i);
-  }
-  
-  // Scatter l into SPA dense[]
-  for (i = 0; i < nrow; i++)
-  {
-    irow = lsub(isub++); 
-    dense(irow) -= l(i);
-  } 
-}
-
-template <> struct LU_kernel_bmod<1>
-{
-  template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
-  static EIGEN_DONT_INLINE void run(const int /*segsize*/, BlockScalarVector& dense, ScalarVector& /*tempv*/, ScalarVector& lusup, Index& luptr,
-                                    const Index lda, const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros);
-};
-
-
-template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
-EIGEN_DONT_INLINE void LU_kernel_bmod<1>::run(const int /*segsize*/, BlockScalarVector& dense, ScalarVector& /*tempv*/, ScalarVector& lusup, Index& luptr,
-                                              const Index lda, const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros)
-{
-  typedef typename ScalarVector::Scalar Scalar;
-  Scalar f = dense(lsub(lptr + no_zeros));
-  luptr += lda * no_zeros + no_zeros + 1;
-  const Scalar* a(lusup.data() + luptr);
-  const /*typename IndexVector::Scalar*/Index*  irow(lsub.data()+lptr + no_zeros + 1);
-  Index i = 0;
-  for (; i+1 < nrow; i+=2)
-  {
-    Index i0 = *(irow++);
-    Index i1 = *(irow++);
-    Scalar a0 = *(a++);
-    Scalar a1 = *(a++);
-    Scalar d0 = dense.coeff(i0);
-    Scalar d1 = dense.coeff(i1);
-    d0 -= f*a0;
-    d1 -= f*a1;
-    dense.coeffRef(i0) = d0;
-    dense.coeffRef(i1) = d1;
-  }
-  if(i<nrow)
-    dense.coeffRef(*(irow++)) -= f * *(a++);
-}
-
-} // end namespace internal
-
-} // end namespace Eigen
-#endif // SPARSELU_KERNEL_BMOD_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_panel_bmod.h b/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_panel_bmod.h
deleted file mode 100644
index da0e0fc..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_panel_bmod.h
+++ /dev/null
@@ -1,223 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-/* 
- 
- * NOTE: This file is the modified version of [s,d,c,z]panel_bmod.c file in SuperLU 
- 
- * -- SuperLU routine (version 3.0) --
- * Univ. of California Berkeley, Xerox Palo Alto Research Center,
- * and Lawrence Berkeley National Lab.
- * October 15, 2003
- *
- * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
- * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program for any
- * purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is
- * granted, provided the above notices are retained, and a notice that
- * the code was modified is included with the above copyright notice.
- */
-#ifndef SPARSELU_PANEL_BMOD_H
-#define SPARSELU_PANEL_BMOD_H
-
-namespace Eigen {
-namespace internal {
-
-/**
- * \brief Performs numeric block updates (sup-panel) in topological order.
- * 
- * Before entering this routine, the original nonzeros in the panel
- * were already copied i nto the spa[m,w]
- * 
- * \param m number of rows in the matrix
- * \param w Panel size
- * \param jcol Starting  column of the panel
- * \param nseg Number of segments in the U part
- * \param dense Store the full representation of the panel 
- * \param tempv working array 
- * \param segrep segment representative... first row in the segment
- * \param repfnz First nonzero rows
- * \param glu Global LU data. 
- * 
- * 
- */
-template <typename Scalar, typename Index>
-void SparseLUImpl<Scalar,Index>::panel_bmod(const Index m, const Index w, const Index jcol, 
-                                            const Index nseg, ScalarVector& dense, ScalarVector& tempv,
-                                            IndexVector& segrep, IndexVector& repfnz, GlobalLU_t& glu)
-{
-  
-  Index ksub,jj,nextl_col; 
-  Index fsupc, nsupc, nsupr, nrow; 
-  Index krep, kfnz; 
-  Index lptr; // points to the row subscripts of a supernode 
-  Index luptr; // ...
-  Index segsize,no_zeros ; 
-  // For each nonz supernode segment of U[*,j] in topological order
-  Index k = nseg - 1; 
-  const Index PacketSize = internal::packet_traits<Scalar>::size;
-  
-  for (ksub = 0; ksub < nseg; ksub++)
-  { // For each updating supernode
-    /* krep = representative of current k-th supernode
-     * fsupc =  first supernodal column
-     * nsupc = number of columns in a supernode
-     * nsupr = number of rows in a supernode
-     */
-    krep = segrep(k); k--; 
-    fsupc = glu.xsup(glu.supno(krep)); 
-    nsupc = krep - fsupc + 1; 
-    nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); 
-    nrow = nsupr - nsupc; 
-    lptr = glu.xlsub(fsupc); 
-    
-    // loop over the panel columns to detect the actual number of columns and rows
-    Index u_rows = 0;
-    Index u_cols = 0;
-    for (jj = jcol; jj < jcol + w; jj++)
-    {
-      nextl_col = (jj-jcol) * m; 
-      VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
-      
-      kfnz = repfnz_col(krep); 
-      if ( kfnz == emptyIdxLU ) 
-        continue; // skip any zero segment
-      
-      segsize = krep - kfnz + 1;
-      u_cols++;
-      u_rows = (std::max)(segsize,u_rows);
-    }
-    
-    if(nsupc >= 2)
-    { 
-      Index ldu = internal::first_multiple<Index>(u_rows, PacketSize);
-      Map<Matrix<Scalar,Dynamic,Dynamic>, Aligned,  OuterStride<> > U(tempv.data(), u_rows, u_cols, OuterStride<>(ldu));
-      
-      // gather U
-      Index u_col = 0;
-      for (jj = jcol; jj < jcol + w; jj++)
-      {
-        nextl_col = (jj-jcol) * m; 
-        VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
-        VectorBlock<ScalarVector> dense_col(dense, nextl_col, m); // Scatter/gather entire matrix column from/to here
-        
-        kfnz = repfnz_col(krep); 
-        if ( kfnz == emptyIdxLU ) 
-          continue; // skip any zero segment
-        
-        segsize = krep - kfnz + 1;
-        luptr = glu.xlusup(fsupc);    
-        no_zeros = kfnz - fsupc; 
-        
-        Index isub = lptr + no_zeros;
-        Index off = u_rows-segsize;
-        for (Index i = 0; i < off; i++) U(i,u_col) = 0;
-        for (Index i = 0; i < segsize; i++)
-        {
-          Index irow = glu.lsub(isub); 
-          U(i+off,u_col) = dense_col(irow); 
-          ++isub; 
-        }
-        u_col++;
-      }
-      // solve U = A^-1 U
-      luptr = glu.xlusup(fsupc);
-      Index lda = glu.xlusup(fsupc+1) - glu.xlusup(fsupc);
-      no_zeros = (krep - u_rows + 1) - fsupc;
-      luptr += lda * no_zeros + no_zeros;
-      Map<Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > A(glu.lusup.data()+luptr, u_rows, u_rows, OuterStride<>(lda) );
-      U = A.template triangularView<UnitLower>().solve(U);
-      
-      // update
-      luptr += u_rows;
-      Map<Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > B(glu.lusup.data()+luptr, nrow, u_rows, OuterStride<>(lda) );
-      eigen_assert(tempv.size()>w*ldu + nrow*w + 1);
-      
-      Index ldl = internal::first_multiple<Index>(nrow, PacketSize);
-      Index offset = (PacketSize-internal::first_aligned(B.data(), PacketSize)) % PacketSize;
-      Map<Matrix<Scalar,Dynamic,Dynamic>, 0, OuterStride<> > L(tempv.data()+w*ldu+offset, nrow, u_cols, OuterStride<>(ldl));
-      
-      L.setZero();
-      internal::sparselu_gemm<Scalar>(L.rows(), L.cols(), B.cols(), B.data(), B.outerStride(), U.data(), U.outerStride(), L.data(), L.outerStride());
-      
-      // scatter U and L
-      u_col = 0;
-      for (jj = jcol; jj < jcol + w; jj++)
-      {
-        nextl_col = (jj-jcol) * m; 
-        VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
-        VectorBlock<ScalarVector> dense_col(dense, nextl_col, m); // Scatter/gather entire matrix column from/to here
-        
-        kfnz = repfnz_col(krep); 
-        if ( kfnz == emptyIdxLU ) 
-          continue; // skip any zero segment
-        
-        segsize = krep - kfnz + 1;
-        no_zeros = kfnz - fsupc; 
-        Index isub = lptr + no_zeros;
-        
-        Index off = u_rows-segsize;
-        for (Index i = 0; i < segsize; i++)
-        {
-          Index irow = glu.lsub(isub++); 
-          dense_col(irow) = U.coeff(i+off,u_col);
-          U.coeffRef(i+off,u_col) = 0;
-        }
-        
-        // Scatter l into SPA dense[]
-        for (Index i = 0; i < nrow; i++)
-        {
-          Index irow = glu.lsub(isub++); 
-          dense_col(irow) -= L.coeff(i,u_col);
-          L.coeffRef(i,u_col) = 0;
-        }
-        u_col++;
-      }
-    }
-    else // level 2 only
-    {
-      // Sequence through each column in the panel
-      for (jj = jcol; jj < jcol + w; jj++)
-      {
-        nextl_col = (jj-jcol) * m; 
-        VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
-        VectorBlock<ScalarVector> dense_col(dense, nextl_col, m); // Scatter/gather entire matrix column from/to here
-        
-        kfnz = repfnz_col(krep); 
-        if ( kfnz == emptyIdxLU ) 
-          continue; // skip any zero segment
-        
-        segsize = krep - kfnz + 1;
-        luptr = glu.xlusup(fsupc);
-        
-        Index lda = glu.xlusup(fsupc+1)-glu.xlusup(fsupc);// nsupr
-        
-        // Perform a trianglar solve and block update, 
-        // then scatter the result of sup-col update to dense[]
-        no_zeros = kfnz - fsupc; 
-              if(segsize==1)  LU_kernel_bmod<1>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
-        else  if(segsize==2)  LU_kernel_bmod<2>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
-        else  if(segsize==3)  LU_kernel_bmod<3>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
-        else                  LU_kernel_bmod<Dynamic>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros); 
-      } // End for each column in the panel 
-    }
-    
-  } // End for each updating supernode
-} // end panel bmod
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // SPARSELU_PANEL_BMOD_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_pivotL.h b/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_pivotL.h
deleted file mode 100644
index ddcd4ec..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_pivotL.h
+++ /dev/null
@@ -1,134 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-/* 
- 
- * NOTE: This file is the modified version of xpivotL.c file in SuperLU 
- 
- * -- SuperLU routine (version 3.0) --
- * Univ. of California Berkeley, Xerox Palo Alto Research Center,
- * and Lawrence Berkeley National Lab.
- * October 15, 2003
- *
- * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
- * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program for any
- * purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is
- * granted, provided the above notices are retained, and a notice that
- * the code was modified is included with the above copyright notice.
- */
-#ifndef SPARSELU_PIVOTL_H
-#define SPARSELU_PIVOTL_H
-
-namespace Eigen {
-namespace internal {
-  
-/**
- * \brief Performs the numerical pivotin on the current column of L, and the CDIV operation.
- * 
- * Pivot policy :
- * (1) Compute thresh = u * max_(i>=j) abs(A_ij);
- * (2) IF user specifies pivot row k and abs(A_kj) >= thresh THEN
- *           pivot row = k;
- *       ELSE IF abs(A_jj) >= thresh THEN
- *           pivot row = j;
- *       ELSE
- *           pivot row = m;
- * 
- *   Note: If you absolutely want to use a given pivot order, then set u=0.0.
- * 
- * \param jcol The current column of L
- * \param diagpivotthresh diagonal pivoting threshold
- * \param[in,out] perm_r Row permutation (threshold pivoting)
- * \param[in] iperm_c column permutation - used to finf diagonal of Pc*A*Pc'
- * \param[out] pivrow  The pivot row
- * \param glu Global LU data
- * \return 0 if success, i > 0 if U(i,i) is exactly zero 
- * 
- */
-template <typename Scalar, typename Index>
-Index SparseLUImpl<Scalar,Index>::pivotL(const Index jcol, const RealScalar& diagpivotthresh, IndexVector& perm_r, IndexVector& iperm_c, Index& pivrow, GlobalLU_t& glu)
-{
-  
-  Index fsupc = (glu.xsup)((glu.supno)(jcol)); // First column in the supernode containing the column jcol
-  Index nsupc = jcol - fsupc; // Number of columns in the supernode portion, excluding jcol; nsupc >=0
-  Index lptr = glu.xlsub(fsupc); // pointer to the starting location of the row subscripts for this supernode portion
-  Index nsupr = glu.xlsub(fsupc+1) - lptr; // Number of rows in the supernode
-  Index lda = glu.xlusup(fsupc+1) - glu.xlusup(fsupc); // leading dimension
-  Scalar* lu_sup_ptr = &(glu.lusup.data()[glu.xlusup(fsupc)]); // Start of the current supernode
-  Scalar* lu_col_ptr = &(glu.lusup.data()[glu.xlusup(jcol)]); // Start of jcol in the supernode
-  Index* lsub_ptr = &(glu.lsub.data()[lptr]); // Start of row indices of the supernode
-  
-  // Determine the largest abs numerical value for partial pivoting 
-  Index diagind = iperm_c(jcol); // diagonal index 
-  RealScalar pivmax = 0.0; 
-  Index pivptr = nsupc; 
-  Index diag = emptyIdxLU; 
-  RealScalar rtemp;
-  Index isub, icol, itemp, k; 
-  for (isub = nsupc; isub < nsupr; ++isub) {
-    rtemp = std::abs(lu_col_ptr[isub]);
-    if (rtemp > pivmax) {
-      pivmax = rtemp; 
-      pivptr = isub;
-    } 
-    if (lsub_ptr[isub] == diagind) diag = isub;
-  }
-  
-  // Test for singularity
-  if ( pivmax == 0.0 ) {
-    pivrow = lsub_ptr[pivptr];
-    perm_r(pivrow) = jcol;
-    return (jcol+1);
-  }
-  
-  RealScalar thresh = diagpivotthresh * pivmax; 
-  
-  // Choose appropriate pivotal element 
-  
-  {
-    // Test if the diagonal element can be used as a pivot (given the threshold value)
-    if (diag >= 0 ) 
-    {
-      // Diagonal element exists
-      rtemp = std::abs(lu_col_ptr[diag]);
-      if (rtemp != 0.0 && rtemp >= thresh) pivptr = diag;
-    }
-    pivrow = lsub_ptr[pivptr];
-  }
-  
-  // Record pivot row
-  perm_r(pivrow) = jcol; 
-  // Interchange row subscripts
-  if (pivptr != nsupc )
-  {
-    std::swap( lsub_ptr[pivptr], lsub_ptr[nsupc] );
-    // Interchange numerical values as well, for the two rows in the whole snode
-    // such that L is indexed the same way as A
-    for (icol = 0; icol <= nsupc; icol++)
-    {
-      itemp = pivptr + icol * lda; 
-      std::swap(lu_sup_ptr[itemp], lu_sup_ptr[nsupc + icol * lda]);
-    }
-  }
-  // cdiv operations
-  Scalar temp = Scalar(1.0) / lu_col_ptr[nsupc];
-  for (k = nsupc+1; k < nsupr; k++)
-    lu_col_ptr[k] *= temp; 
-  return 0;
-}
-
-} // end namespace internal
-} // end namespace Eigen
-
-#endif // SPARSELU_PIVOTL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_pruneL.h b/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_pruneL.h
deleted file mode 100644
index 5a855f8..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_pruneL.h
+++ /dev/null
@@ -1,135 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-/* 
- 
- * NOTE: This file is the modified version of [s,d,c,z]pruneL.c file in SuperLU 
- 
- * -- SuperLU routine (version 2.0) --
- * Univ. of California Berkeley, Xerox Palo Alto Research Center,
- * and Lawrence Berkeley National Lab.
- * November 15, 1997
- *
- * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
- * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program for any
- * purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is
- * granted, provided the above notices are retained, and a notice that
- * the code was modified is included with the above copyright notice.
- */
-#ifndef SPARSELU_PRUNEL_H
-#define SPARSELU_PRUNEL_H
-
-namespace Eigen {
-namespace internal {
-
-/**
- * \brief Prunes the L-structure.
- *
- * It prunes the L-structure  of supernodes whose L-structure contains the current pivot row "pivrow"
- * 
- * 
- * \param jcol The current column of L
- * \param[in] perm_r Row permutation
- * \param[out] pivrow  The pivot row
- * \param nseg Number of segments
- * \param segrep 
- * \param repfnz
- * \param[out] xprune 
- * \param glu Global LU data
- * 
- */
-template <typename Scalar, typename Index>
-void SparseLUImpl<Scalar,Index>::pruneL(const Index jcol, const IndexVector& perm_r, const Index pivrow, const Index nseg, const IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, GlobalLU_t& glu)
-{
-  // For each supernode-rep irep in U(*,j]
-  Index jsupno = glu.supno(jcol); 
-  Index i,irep,irep1; 
-  bool movnum, do_prune = false; 
-  Index kmin, kmax, minloc, maxloc,krow; 
-  for (i = 0; i < nseg; i++)
-  {
-    irep = segrep(i); 
-    irep1 = irep + 1; 
-    do_prune = false; 
-    
-    // Don't prune with a zero U-segment 
-    if (repfnz(irep) == emptyIdxLU) continue; 
-    
-    // If a snode overlaps with the next panel, then the U-segment
-    // is fragmented into two parts -- irep and irep1. We should let 
-    // pruning occur at the rep-column in irep1s snode. 
-    if (glu.supno(irep) == glu.supno(irep1) ) continue; // don't prune 
-    
-    // If it has not been pruned & it has a nonz in row L(pivrow,i)
-    if (glu.supno(irep) != jsupno )
-    {
-      if ( xprune (irep) >= glu.xlsub(irep1) )
-      {
-        kmin = glu.xlsub(irep);
-        kmax = glu.xlsub(irep1) - 1; 
-        for (krow = kmin; krow <= kmax; krow++)
-        {
-          if (glu.lsub(krow) == pivrow) 
-          {
-            do_prune = true; 
-            break; 
-          }
-        }
-      }
-      
-      if (do_prune) 
-      {
-        // do a quicksort-type partition
-        // movnum=true means that the num values have to be exchanged
-        movnum = false; 
-        if (irep == glu.xsup(glu.supno(irep)) ) // Snode of size 1 
-          movnum = true; 
-        
-        while (kmin <= kmax)
-        {
-          if (perm_r(glu.lsub(kmax)) == emptyIdxLU)
-            kmax--; 
-          else if ( perm_r(glu.lsub(kmin)) != emptyIdxLU)
-            kmin++;
-          else 
-          {
-            // kmin below pivrow (not yet pivoted), and kmax
-            // above pivrow: interchange the two suscripts
-            std::swap(glu.lsub(kmin), glu.lsub(kmax)); 
-            
-            // If the supernode has only one column, then we 
-            // only keep one set of subscripts. For any subscript
-            // intercnahge performed, similar interchange must be 
-            // done on the numerical values. 
-            if (movnum) 
-            {
-              minloc = glu.xlusup(irep) + ( kmin - glu.xlsub(irep) ); 
-              maxloc = glu.xlusup(irep) + ( kmax - glu.xlsub(irep) ); 
-              std::swap(glu.lusup(minloc), glu.lusup(maxloc)); 
-            }
-            kmin++;
-            kmax--;
-          }
-        } // end while 
-        
-        xprune(irep) = kmin;  //Pruning 
-      } // end if do_prune 
-    } // end pruning 
-  } // End for each U-segment
-}
-
-} // end namespace internal
-} // end namespace Eigen
-
-#endif // SPARSELU_PRUNEL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseQR/SparseQR.h b/vendor/eigen-3.1.91/Eigen/src/SparseQR/SparseQR.h
deleted file mode 100644
index b3d5cd2..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SparseQR/SparseQR.h
+++ /dev/null
@@ -1,588 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2012-2013 Desire Nuentsa <desire.nuentsa_wakam at inria.fr>
-// Copyright (C) 2012-2013 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSE_QR_H
-#define EIGEN_SPARSE_QR_H
-
-namespace Eigen {
-
-template<typename MatrixType, typename OrderingType> class SparseQR;
-template<typename SparseQRType> struct SparseQRMatrixQReturnType;
-template<typename SparseQRType> struct SparseQRMatrixQTransposeReturnType;
-template<typename SparseQRType, typename Derived> struct SparseQR_QProduct;
-namespace internal {
-  template <typename SparseQRType> struct traits<SparseQRMatrixQReturnType<SparseQRType> >
-  {
-    typedef typename SparseQRType::MatrixType ReturnType;
-  };
-  template <typename SparseQRType> struct traits<SparseQRMatrixQTransposeReturnType<SparseQRType> >
-  {
-    typedef typename SparseQRType::MatrixType ReturnType;
-  };
-  template <typename SparseQRType, typename Derived> struct traits<SparseQR_QProduct<SparseQRType, Derived> >
-  {
-    typedef typename Derived::PlainObject ReturnType;
-  };
-} // End namespace internal
-
-/**
-  * \ingroup SparseQR_Module
-  * \class SparseQR
-  * \brief Sparse left-looking rank-revealing QR factorization
-  * 
-  * This class implements a left-looking rank-revealing QR decomposition 
-  * of sparse matrices. When a column has a norm less than a given tolerance
-  * it is implicitly permuted to the end. The QR factorization thus obtained is 
-  * given by A*P = Q*R where R is upper triangular or trapezoidal. 
-  * 
-  * P is the column permutation which is the product of the fill-reducing and the
-  * rank-revealing permutations. Use colsPermutation() to get it.
-  * 
-  * Q is the orthogonal matrix represented as products of Householder reflectors. 
-  * Use matrixQ() to get an expression and matrixQ().transpose() to get the transpose.
-  * You can then apply it to a vector.
-  * 
-  * R is the sparse triangular or trapezoidal matrix. The later occurs when A is rank-deficient.
-  * matrixR().topLeftCorner(rank(), rank()) always returns a triangular factor of full rank.
-  * 
-  * \tparam _MatrixType The type of the sparse matrix A, must be a column-major SparseMatrix<>
-  * \tparam _OrderingType The fill-reducing ordering method. See the \link OrderingMethods_Module 
-  *  OrderingMethods \endlink module for the list of built-in and external ordering methods.
-  * 
-  * 
-  */
-template<typename _MatrixType, typename _OrderingType>
-class SparseQR
-{
-  public:
-    typedef _MatrixType MatrixType;
-    typedef _OrderingType OrderingType;
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::RealScalar RealScalar;
-    typedef typename MatrixType::Index Index;
-    typedef SparseMatrix<Scalar,ColMajor,Index> QRMatrixType;
-    typedef Matrix<Index, Dynamic, 1> IndexVector;
-    typedef Matrix<Scalar, Dynamic, 1> ScalarVector;
-    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType;
-  public:
-    SparseQR () : m_isInitialized(false), m_analysisIsok(false), m_lastError(""), m_useDefaultThreshold(true)
-    { }
-    
-    SparseQR(const MatrixType& mat) : m_isInitialized(false), m_analysisIsok(false), m_lastError(""), m_useDefaultThreshold(true)
-    {
-      compute(mat);
-    }
-    void compute(const MatrixType& mat)
-    {
-      analyzePattern(mat);
-      factorize(mat);
-    }
-    void analyzePattern(const MatrixType& mat);
-    void factorize(const MatrixType& mat);
-    
-    /** \returns the number of rows of the represented matrix. 
-      */
-    inline Index rows() const { return m_pmat.rows(); }
-    
-    /** \returns the number of columns of the represented matrix. 
-      */
-    inline Index cols() const { return m_pmat.cols();}
-    
-    /** \returns a const reference to the \b sparse upper triangular matrix R of the QR factorization.
-      */
-    const QRMatrixType& matrixR() const { return m_R; }
-    
-    /** \returns the number of non linearly dependent columns as determined by the pivoting threshold.
-      *
-      * \sa setPivotThreshold()
-      */
-    Index rank() const 
-    {
-      eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
-      return m_nonzeropivots; 
-    }
-    
-    /** \returns an expression of the matrix Q as products of sparse Householder reflectors.
-      * You can do the following to get an actual SparseMatrix representation of Q:
-      * \code
-      * SparseMatrix<double> Q = SparseQR<SparseMatrix<double> >(A).matrixQ();
-      * \endcode
-      */
-    SparseQRMatrixQReturnType<SparseQR> matrixQ() const 
-    { return SparseQRMatrixQReturnType<SparseQR>(*this); }
-    
-    /** \returns a const reference to the column permutation P that was applied to A such that A*P = Q*R
-      * It is the combination of the fill-in reducing permutation and numerical column pivoting.
-      */
-    const PermutationType& colsPermutation() const
-    { 
-      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
-      return m_outputPerm_c;
-    }
-    
-    /** \returns A string describing the type of error.
-      * This method is provided to ease debugging, not to handle errors.
-      */
-    std::string lastErrorMessage() const { return m_lastError; }
-    
-    /** \internal */
-    template<typename Rhs, typename Dest>
-    bool _solve(const MatrixBase<Rhs> &B, MatrixBase<Dest> &dest) const
-    {
-      eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
-      eigen_assert(this->rows() == B.rows() && "SparseQR::solve() : invalid number of rows in the right hand side matrix");
-
-      Index rank = this->rank();
-      
-      // Compute Q^T * b;
-      typename Dest::PlainObject y, b;
-      y = this->matrixQ().transpose() * B; 
-      b = y;
-      
-      // Solve with the triangular matrix R
-      y.topRows(rank) = this->matrixR().topLeftCorner(rank, rank).template triangularView<Upper>().solve(b.topRows(rank));
-      y.bottomRows(y.size()-rank).setZero();
-
-      // Apply the column permutation
-      if (m_perm_c.size())  dest.topRows(cols()) = colsPermutation() * y.topRows(cols());
-      else                  dest = y.topRows(cols());
-      
-      m_info = Success;
-      return true;
-    }
-    
-    /** Sets the threshold that is used to determine linearly dependent columns during the factorization.
-      *
-      * In practice, if during the factorization the norm of the column that has to be eliminated is below
-      * this threshold, then the entire column is treated as zero, and it is moved at the end.
-      */
-    void setPivotThreshold(const RealScalar& threshold)
-    {
-      m_useDefaultThreshold = false;
-      m_threshold = threshold;
-    }
-    
-    /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
-      *
-      * \sa compute()
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<SparseQR, Rhs> solve(const MatrixBase<Rhs>& B) const 
-    {
-      eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
-      eigen_assert(this->rows() == B.rows() && "SparseQR::solve() : invalid number of rows in the right hand side matrix");
-      return internal::solve_retval<SparseQR, Rhs>(*this, B.derived());
-    }
-    
-    /** \brief Reports whether previous computation was successful.
-      *
-      * \returns \c Success if computation was succesful,
-      *          \c NumericalIssue if the QR factorization reports a numerical problem
-      *          \c InvalidInput if the input matrix is invalid
-      *
-      * \sa iparm()          
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
-      return m_info;
-    }
-    
-  protected:
-    bool m_isInitialized;
-    bool m_analysisIsok;
-    bool m_factorizationIsok;
-    mutable ComputationInfo m_info;
-    std::string m_lastError;
-    QRMatrixType m_pmat;            // Temporary matrix
-    QRMatrixType m_R;               // The triangular factor matrix
-    QRMatrixType m_Q;               // The orthogonal reflectors
-    ScalarVector m_hcoeffs;         // The Householder coefficients
-    PermutationType m_perm_c;       // Fill-reducing  Column  permutation
-    PermutationType m_pivotperm;    // The permutation for rank revealing
-    PermutationType m_outputPerm_c; // The final column permutation
-    RealScalar m_threshold;         // Threshold to determine null Householder reflections
-    bool m_useDefaultThreshold;     // Use default threshold
-    Index m_nonzeropivots;          // Number of non zero pivots found 
-    IndexVector m_etree;            // Column elimination tree
-    IndexVector m_firstRowElt;      // First element in each row
-    
-    template <typename, typename > friend struct SparseQR_QProduct;
-    
-};
-
-/** \brief Preprocessing step of a QR factorization 
-  * 
-  * In this step, the fill-reducing permutation is computed and applied to the columns of A
-  * and the column elimination tree is computed as well. Only the sparcity pattern of \a mat is exploited.
-  * 
-  * \note In this step it is assumed that there is no empty row in the matrix \a mat.
-  */
-template <typename MatrixType, typename OrderingType>
-void SparseQR<MatrixType,OrderingType>::analyzePattern(const MatrixType& mat)
-{
-  // Compute the column fill reducing ordering
-  OrderingType ord; 
-  ord(mat, m_perm_c); 
-  Index n = mat.cols();
-  Index m = mat.rows();
-  
-  if (!m_perm_c.size())
-  {
-    m_perm_c.resize(n);
-    m_perm_c.indices().setLinSpaced(n, 0,n-1);
-  }
-  
-  // Compute the column elimination tree of the permuted matrix
-  m_outputPerm_c = m_perm_c.inverse();
-  internal::coletree(mat, m_etree, m_firstRowElt, m_outputPerm_c.indices().data());
-  
-  m_R.resize(n, n);
-  m_Q.resize(m, n);
-  
-  // Allocate space for nonzero elements : rough estimation
-  m_R.reserve(2*mat.nonZeros()); //FIXME Get a more accurate estimation through symbolic factorization with the etree
-  m_Q.reserve(2*mat.nonZeros());
-  m_hcoeffs.resize(n);
-  m_analysisIsok = true;
-}
-
-/** \brief Performs the numerical QR factorization of the input matrix
-  * 
-  * The function SparseQR::analyzePattern(const MatrixType&) must have been called beforehand with
-  * a matrix having the same sparcity pattern than \a mat.
-  * 
-  * \param mat The sparse column-major matrix
-  */
-template <typename MatrixType, typename OrderingType>
-void SparseQR<MatrixType,OrderingType>::factorize(const MatrixType& mat)
-{
-  using std::abs;
-  using std::max;
-  
-  eigen_assert(m_analysisIsok && "analyzePattern() should be called before this step");
-  Index m = mat.rows();
-  Index n = mat.cols();
-  IndexVector mark(m); mark.setConstant(-1);  // Record the visited nodes
-  IndexVector Ridx(n), Qidx(m);               // Store temporarily the row indexes for the current column of R and Q
-  Index nzcolR, nzcolQ;                       // Number of nonzero for the current column of R and Q
-  ScalarVector tval(m);                       // The dense vector used to compute the current column
-  bool found_diag;
-    
-  m_pmat = mat;
-  m_pmat.uncompress(); // To have the innerNonZeroPtr allocated
-  // Apply the fill-in reducing permutation lazily:
-  for (int i = 0; i < n; i++)
-  {
-    Index p = m_perm_c.size() ? m_perm_c.indices()(i) : i;
-    m_pmat.outerIndexPtr()[p] = mat.outerIndexPtr()[i]; 
-    m_pmat.innerNonZeroPtr()[p] = mat.outerIndexPtr()[i+1] - mat.outerIndexPtr()[i]; 
-  }
-  
-  /* Compute the default threshold, see : 
-   * Tim Davis, "Algorithm 915, SuiteSparseQR: Multifrontal Multithreaded Rank-Revealing
-   * Sparse QR Factorization, ACM Trans. on Math. Soft. 38(1), 2011, Page 8:3 
-   */
-  if(m_useDefaultThreshold) 
-  {
-    RealScalar max2Norm = 0.0;
-    for (int j = 0; j < n; j++) max2Norm = (max)(max2Norm, m_pmat.col(j).norm());
-    m_threshold = 20 * (m + n) * max2Norm * NumTraits<RealScalar>::epsilon();
-  }
-  
-  // Initialize the numerical permutation
-  m_pivotperm.setIdentity(n);
-  
-  Index nonzeroCol = 0; // Record the number of valid pivots
-  
-  // Left looking rank-revealing QR factorization: compute a column of R and Q at a time
-  for (Index col = 0; col < n; ++col)
-  {
-    mark.setConstant(-1);
-    m_R.startVec(col);
-    m_Q.startVec(col);
-    mark(nonzeroCol) = col;
-    Qidx(0) = nonzeroCol;
-    nzcolR = 0; nzcolQ = 1;
-    found_diag = false;
-    tval.setZero(); 
-    
-    // Symbolic factorization: find the nonzero locations of the column k of the factors R and Q, i.e.,
-    // all the nodes (with indexes lower than rank) reachable through the column elimination tree (etree) rooted at node k.
-    // Note: if the diagonal entry does not exist, then its contribution must be explicitly added,
-    // thus the trick with found_diag that permits to do one more iteration on the diagonal element if this one has not been found.
-    for (typename MatrixType::InnerIterator itp(m_pmat, col); itp || !found_diag; ++itp)
-    {
-      Index curIdx = nonzeroCol ;
-      if(itp) curIdx = itp.row();
-      if(curIdx == nonzeroCol) found_diag = true;
-      
-      // Get the nonzeros indexes of the current column of R
-      Index st = m_firstRowElt(curIdx); // The traversal of the etree starts here 
-      if (st < 0 )
-      {
-        m_lastError = "Empty row found during numerical factorization";
-        m_info = InvalidInput;
-        return;
-      }
-
-      // Traverse the etree 
-      Index bi = nzcolR;
-      for (; mark(st) != col; st = m_etree(st))
-      {
-        Ridx(nzcolR) = st;  // Add this row to the list,
-        mark(st) = col;     // and mark this row as visited
-        nzcolR++;
-      }
-
-      // Reverse the list to get the topological ordering
-      Index nt = nzcolR-bi;
-      for(Index i = 0; i < nt/2; i++) std::swap(Ridx(bi+i), Ridx(nzcolR-i-1));
-       
-      // Copy the current (curIdx,pcol) value of the input matrix
-      if(itp) tval(curIdx) = itp.value();
-      else    tval(curIdx) = Scalar(0);
-      
-      // Compute the pattern of Q(:,k)
-      if(curIdx > nonzeroCol && mark(curIdx) != col ) 
-      {
-        Qidx(nzcolQ) = curIdx;  // Add this row to the pattern of Q,
-        mark(curIdx) = col;     // and mark it as visited
-        nzcolQ++;
-      }
-    }
-
-    // Browse all the indexes of R(:,col) in reverse order
-    for (Index i = nzcolR-1; i >= 0; i--)
-    {
-      Index curIdx = m_pivotperm.indices()(Ridx(i));
-      
-      // Apply the curIdx-th householder vector to the current column (temporarily stored into tval)
-      Scalar tdot(0);
-      
-      // First compute q' * tval
-      tdot = m_Q.col(curIdx).dot(tval);
-
-      tdot *= m_hcoeffs(curIdx);
-      
-      // Then update tval = tval - q * tau
-      // FIXME: tval -= tdot * m_Q.col(curIdx) should amount to the same (need to check/add support for efficient "dense ?= sparse")
-      for (typename QRMatrixType::InnerIterator itq(m_Q, curIdx); itq; ++itq)
-        tval(itq.row()) -= itq.value() * tdot;
-
-      // Detect fill-in for the current column of Q
-      if(m_etree(Ridx(i)) == nonzeroCol)
-      {
-        for (typename QRMatrixType::InnerIterator itq(m_Q, curIdx); itq; ++itq)
-        {
-          Index iQ = itq.row();
-          if (mark(iQ) != col)
-          {
-            Qidx(nzcolQ++) = iQ;  // Add this row to the pattern of Q,
-            mark(iQ) = col;       // and mark it as visited
-          }
-        }
-      }
-    } // End update current column
-        
-    // Compute the Householder reflection that eliminate the current column
-    // FIXME this step should call the Householder module.
-    Scalar tau;
-    RealScalar beta;
-    Scalar c0 = nzcolQ ? tval(Qidx(0)) : Scalar(0);
-    
-    // First, the squared norm of Q((col+1):m, col)
-    RealScalar sqrNorm = 0.;
-    for (Index itq = 1; itq < nzcolQ; ++itq) sqrNorm += internal::abs2(tval(Qidx(itq)));
-    
-    if(sqrNorm == RealScalar(0) && internal::imag(c0) == RealScalar(0))
-    {
-      tau = RealScalar(0);
-      beta = internal::real(c0);
-      tval(Qidx(0)) = 1;
-     }
-    else
-    {
-      beta = std::sqrt(internal::abs2(c0) + sqrNorm);
-      if(internal::real(c0) >= RealScalar(0))
-        beta = -beta;
-      tval(Qidx(0)) = 1;
-      for (Index itq = 1; itq < nzcolQ; ++itq)
-        tval(Qidx(itq)) /= (c0 - beta);
-      tau = internal::conj((beta-c0) / beta);
-        
-    }
-
-    // Insert values in R
-    for (Index  i = nzcolR-1; i >= 0; i--)
-    {
-      Index curIdx = Ridx(i);
-      if(curIdx < nonzeroCol) 
-      {
-        m_R.insertBackByOuterInnerUnordered(col, curIdx) = tval(curIdx);
-        tval(curIdx) = Scalar(0.);
-      }
-    }
-
-    if(abs(beta) >= m_threshold)
-    {
-      m_R.insertBackByOuterInner(col, nonzeroCol) = beta;
-      nonzeroCol++;
-      // The householder coefficient
-      m_hcoeffs(col) = tau;
-      // Record the householder reflections
-      for (Index itq = 0; itq < nzcolQ; ++itq)
-      {
-        Index iQ = Qidx(itq);
-        m_Q.insertBackByOuterInnerUnordered(col,iQ) = tval(iQ);
-        tval(iQ) = Scalar(0.);
-      }    
-    }
-    else
-    {
-      // Zero pivot found: move implicitly this column to the end
-      m_hcoeffs(col) = Scalar(0);
-      for (Index j = nonzeroCol; j < n-1; j++) 
-        std::swap(m_pivotperm.indices()(j), m_pivotperm.indices()[j+1]);
-      
-      // Recompute the column elimination tree
-      internal::coletree(m_pmat, m_etree, m_firstRowElt, m_pivotperm.indices().data());
-    }
-  }
-  
-  // Finalize the column pointers of the sparse matrices R and Q
-  m_Q.finalize();
-  m_Q.makeCompressed();
-  m_R.finalize();
-  m_R.makeCompressed();
-  
-  m_nonzeropivots = nonzeroCol;
-  
-  if(nonzeroCol<n)
-  {
-    // Permute the triangular factor to put the 'dead' columns to the end
-    MatrixType tempR(m_R);
-    m_R = tempR * m_pivotperm;
-    
-    // Update the column permutation
-    m_outputPerm_c = m_outputPerm_c * m_pivotperm;
-  }
-  
-  m_isInitialized = true; 
-  m_factorizationIsok = true;
-  m_info = Success;
-}
-
-namespace internal {
-  
-template<typename _MatrixType, typename OrderingType, typename Rhs>
-struct solve_retval<SparseQR<_MatrixType,OrderingType>, Rhs>
-  : solve_retval_base<SparseQR<_MatrixType,OrderingType>, Rhs>
-{
-  typedef SparseQR<_MatrixType,OrderingType> Dec;
-  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    dec()._solve(rhs(),dst);
-  }
-};
-
-} // end namespace internal
-
-template <typename SparseQRType, typename Derived>
-struct SparseQR_QProduct : ReturnByValue<SparseQR_QProduct<SparseQRType, Derived> >
-{
-  typedef typename SparseQRType::QRMatrixType MatrixType;
-  typedef typename SparseQRType::Scalar Scalar;
-  typedef typename SparseQRType::Index Index;
-  // Get the references 
-  SparseQR_QProduct(const SparseQRType& qr, const Derived& other, bool transpose) : 
-  m_qr(qr),m_other(other),m_transpose(transpose) {}
-  inline Index rows() const { return m_transpose ? m_qr.rows() : m_qr.cols(); }
-  inline Index cols() const { return m_other.cols(); }
-  
-  // Assign to a vector
-  template<typename DesType>
-  void evalTo(DesType& res) const
-  {
-    Index n = m_qr.cols(); 
-    if (m_transpose)
-    {
-      eigen_assert(m_qr.m_Q.rows() == m_other.rows() && "Non conforming object sizes");
-      // Compute res = Q' * other :
-      res =  m_other;
-      for (Index k = 0; k < n; k++)
-      {
-        Scalar tau = Scalar(0); 
-        tau = m_qr.m_Q.col(k).dot(res); 
-        tau = tau * m_qr.m_hcoeffs(k);
-        for (typename MatrixType::InnerIterator itq(m_qr.m_Q, k); itq; ++itq)
-        {
-          res(itq.row()) -= itq.value() * tau;
-        }
-      }
-    }
-    else
-    {
-      eigen_assert(m_qr.m_Q.cols() == m_other.rows() && "Non conforming object sizes");
-      // Compute res = Q * other :
-      res = m_other;
-      for (Index k = n-1; k >=0; k--)
-      {
-        Scalar tau = Scalar(0);
-        tau = m_qr.m_Q.col(k).dot(res); 
-        tau = tau * m_qr.m_hcoeffs(k);
-        res -= tau * m_qr.m_Q.col(k);
-      }
-    }
-  }
-  
-  const SparseQRType& m_qr;
-  const Derived& m_other;
-  bool m_transpose;
-};
-
-template<typename SparseQRType>
-struct SparseQRMatrixQReturnType
-{  
-  SparseQRMatrixQReturnType(const SparseQRType& qr) : m_qr(qr) {}
-  template<typename Derived>
-  SparseQR_QProduct<SparseQRType, Derived> operator*(const MatrixBase<Derived>& other)
-  {
-    return SparseQR_QProduct<SparseQRType,Derived>(m_qr,other.derived(),false);
-  }
-  SparseQRMatrixQTransposeReturnType<SparseQRType> adjoint() const
-  {
-    return SparseQRMatrixQTransposeReturnType<SparseQRType>(m_qr);
-  }
-  // To use for operations with the transpose of Q
-  SparseQRMatrixQTransposeReturnType<SparseQRType> transpose() const
-  {
-    return SparseQRMatrixQTransposeReturnType<SparseQRType>(m_qr);
-  }
-  const SparseQRType& m_qr;
-};
-
-template<typename SparseQRType>
-struct SparseQRMatrixQTransposeReturnType
-{
-  SparseQRMatrixQTransposeReturnType(const SparseQRType& qr) : m_qr(qr) {}
-  template<typename Derived>
-  SparseQR_QProduct<SparseQRType,Derived> operator*(const MatrixBase<Derived>& other)
-  {
-    return SparseQR_QProduct<SparseQRType,Derived>(m_qr,other.derived(), true);
-  }
-  const SparseQRType& m_qr;
-};
-
-} // end namespace Eigen
-
-#endif
diff --git a/vendor/eigen-3.1.91/Eigen/src/StlSupport/StdDeque.h b/vendor/eigen-3.1.91/Eigen/src/StlSupport/StdDeque.h
deleted file mode 100644
index 4ee8e5c..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/StlSupport/StdDeque.h
+++ /dev/null
@@ -1,134 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2009 Hauke Heibel <hauke.heibel at googlemail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_STDDEQUE_H
-#define EIGEN_STDDEQUE_H
-
-#include "Eigen/src/StlSupport/details.h"
-
-// Define the explicit instantiation (e.g. necessary for the Intel compiler)
-#if defined(__INTEL_COMPILER) || defined(__GNUC__)
-  #define EIGEN_EXPLICIT_STL_DEQUE_INSTANTIATION(...) template class std::deque<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> >;
-#else
-  #define EIGEN_EXPLICIT_STL_DEQUE_INSTANTIATION(...)
-#endif
-
-/**
- * This section contains a convenience MACRO which allows an easy specialization of
- * std::deque such that for data types with alignment issues the correct allocator
- * is used automatically.
- */
-#define EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(...) \
-EIGEN_EXPLICIT_STL_DEQUE_INSTANTIATION(__VA_ARGS__) \
-namespace std \
-{ \
-  template<typename _Ay> \
-  class deque<__VA_ARGS__, _Ay>  \
-    : public deque<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > \
-  { \
-    typedef deque<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > deque_base; \
-  public: \
-    typedef __VA_ARGS__ value_type; \
-    typedef typename deque_base::allocator_type allocator_type; \
-    typedef typename deque_base::size_type size_type;  \
-    typedef typename deque_base::iterator iterator;  \
-    explicit deque(const allocator_type& a = allocator_type()) : deque_base(a) {}  \
-    template<typename InputIterator> \
-    deque(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) : deque_base(first, last, a) {} \
-    deque(const deque& c) : deque_base(c) {}  \
-    explicit deque(size_type num, const value_type& val = value_type()) : deque_base(num, val) {} \
-    deque(iterator start, iterator end) : deque_base(start, end) {}  \
-    deque& operator=(const deque& x) {  \
-      deque_base::operator=(x);  \
-      return *this;  \
-    } \
-  }; \
-}
-
-// check whether we really need the std::deque specialization
-#if !(defined(_GLIBCXX_DEQUE) && (!EIGEN_GNUC_AT_LEAST(4,1))) /* Note that before gcc-4.1 we already have: std::deque::resize(size_type,const T&). */
-
-namespace std {
-
-#define EIGEN_STD_DEQUE_SPECIALIZATION_BODY \
-  public:  \
-    typedef T value_type; \
-    typedef typename deque_base::allocator_type allocator_type; \
-    typedef typename deque_base::size_type size_type;  \
-    typedef typename deque_base::iterator iterator;  \
-    typedef typename deque_base::const_iterator const_iterator;  \
-    explicit deque(const allocator_type& a = allocator_type()) : deque_base(a) {}  \
-    template<typename InputIterator> \
-    deque(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) \
-    : deque_base(first, last, a) {} \
-    deque(const deque& c) : deque_base(c) {}  \
-    explicit deque(size_type num, const value_type& val = value_type()) : deque_base(num, val) {} \
-    deque(iterator start, iterator end) : deque_base(start, end) {}  \
-    deque& operator=(const deque& x) {  \
-      deque_base::operator=(x);  \
-      return *this;  \
-    }
-
-  template<typename T>
-  class deque<T,EIGEN_ALIGNED_ALLOCATOR<T> >
-    : public deque<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
-                   Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> >
-{
-  typedef deque<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
-                Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> > deque_base;
-  EIGEN_STD_DEQUE_SPECIALIZATION_BODY
-
-  void resize(size_type new_size)
-  { resize(new_size, T()); }
-
-#if defined(_DEQUE_)
-  // workaround MSVC std::deque implementation
-  void resize(size_type new_size, const value_type& x)
-  {
-    if (deque_base::size() < new_size)
-      deque_base::_Insert_n(deque_base::end(), new_size - deque_base::size(), x);
-    else if (new_size < deque_base::size())
-      deque_base::erase(deque_base::begin() + new_size, deque_base::end());
-  }
-  void push_back(const value_type& x)
-  { deque_base::push_back(x); } 
-  void push_front(const value_type& x)
-  { deque_base::push_front(x); }
-  using deque_base::insert;  
-  iterator insert(const_iterator position, const value_type& x)
-  { return deque_base::insert(position,x); }
-  void insert(const_iterator position, size_type new_size, const value_type& x)
-  { deque_base::insert(position, new_size, x); }
-#elif defined(_GLIBCXX_DEQUE) && EIGEN_GNUC_AT_LEAST(4,2)
-  // workaround GCC std::deque implementation
-  void resize(size_type new_size, const value_type& x)
-  {
-    if (new_size < deque_base::size())
-      deque_base::_M_erase_at_end(this->_M_impl._M_start + new_size);
-    else
-      deque_base::insert(deque_base::end(), new_size - deque_base::size(), x);
-  }
-#else
-  // either GCC 4.1 or non-GCC
-  // default implementation which should always work.
-  void resize(size_type new_size, const value_type& x)
-  {
-    if (new_size < deque_base::size())
-      deque_base::erase(deque_base::begin() + new_size, deque_base::end());
-    else if (new_size > deque_base::size())
-      deque_base::insert(deque_base::end(), new_size - deque_base::size(), x);
-  }
-#endif
-  };
-}
-
-#endif // check whether specialization is actually required
-
-#endif // EIGEN_STDDEQUE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/StlSupport/StdList.h b/vendor/eigen-3.1.91/Eigen/src/StlSupport/StdList.h
deleted file mode 100644
index 627381e..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/StlSupport/StdList.h
+++ /dev/null
@@ -1,114 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Hauke Heibel <hauke.heibel at googlemail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_STDLIST_H
-#define EIGEN_STDLIST_H
-
-#include "Eigen/src/StlSupport/details.h"
-
-// Define the explicit instantiation (e.g. necessary for the Intel compiler)
-#if defined(__INTEL_COMPILER) || defined(__GNUC__)
-  #define EIGEN_EXPLICIT_STL_LIST_INSTANTIATION(...) template class std::list<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> >;
-#else
-  #define EIGEN_EXPLICIT_STL_LIST_INSTANTIATION(...)
-#endif
-
-/**
- * This section contains a convenience MACRO which allows an easy specialization of
- * std::list such that for data types with alignment issues the correct allocator
- * is used automatically.
- */
-#define EIGEN_DEFINE_STL_LIST_SPECIALIZATION(...) \
-EIGEN_EXPLICIT_STL_LIST_INSTANTIATION(__VA_ARGS__) \
-namespace std \
-{ \
-  template<typename _Ay> \
-  class list<__VA_ARGS__, _Ay>  \
-    : public list<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > \
-  { \
-    typedef list<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > list_base; \
-  public: \
-    typedef __VA_ARGS__ value_type; \
-    typedef typename list_base::allocator_type allocator_type; \
-    typedef typename list_base::size_type size_type;  \
-    typedef typename list_base::iterator iterator;  \
-    explicit list(const allocator_type& a = allocator_type()) : list_base(a) {}  \
-    template<typename InputIterator> \
-    list(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) : list_base(first, last, a) {} \
-    list(const list& c) : list_base(c) {}  \
-    explicit list(size_type num, const value_type& val = value_type()) : list_base(num, val) {} \
-    list(iterator start, iterator end) : list_base(start, end) {}  \
-    list& operator=(const list& x) {  \
-      list_base::operator=(x);  \
-      return *this;  \
-    } \
-  }; \
-}
-
-// check whether we really need the std::vector specialization
-#if !(defined(_GLIBCXX_VECTOR) && (!EIGEN_GNUC_AT_LEAST(4,1))) /* Note that before gcc-4.1 we already have: std::list::resize(size_type,const T&). */
-
-namespace std
-{
-
-#define EIGEN_STD_LIST_SPECIALIZATION_BODY \
-  public:  \
-    typedef T value_type; \
-    typedef typename list_base::allocator_type allocator_type; \
-    typedef typename list_base::size_type size_type;  \
-    typedef typename list_base::iterator iterator;  \
-    typedef typename list_base::const_iterator const_iterator;  \
-    explicit list(const allocator_type& a = allocator_type()) : list_base(a) {}  \
-    template<typename InputIterator> \
-    list(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) \
-    : list_base(first, last, a) {} \
-    list(const list& c) : list_base(c) {}  \
-    explicit list(size_type num, const value_type& val = value_type()) : list_base(num, val) {} \
-    list(iterator start, iterator end) : list_base(start, end) {}  \
-    list& operator=(const list& x) {  \
-    list_base::operator=(x);  \
-    return *this; \
-  }
-
-  template<typename T>
-  class list<T,EIGEN_ALIGNED_ALLOCATOR<T> >
-    : public list<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
-                  Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> >
-  {
-    typedef list<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
-                 Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> > list_base;
-    EIGEN_STD_LIST_SPECIALIZATION_BODY
-
-    void resize(size_type new_size)
-    { resize(new_size, T()); }
-
-    void resize(size_type new_size, const value_type& x)
-    {
-      if (list_base::size() < new_size)
-        list_base::insert(list_base::end(), new_size - list_base::size(), x);
-      else
-        while (new_size < list_base::size()) list_base::pop_back();
-    }
-
-#if defined(_LIST_)
-    // workaround MSVC std::list implementation
-    void push_back(const value_type& x)
-    { list_base::push_back(x); } 
-    using list_base::insert;  
-    iterator insert(const_iterator position, const value_type& x)
-    { return list_base::insert(position,x); }
-    void insert(const_iterator position, size_type new_size, const value_type& x)
-    { list_base::insert(position, new_size, x); }
-#endif
-  };
-}
-
-#endif // check whether specialization is actually required
-
-#endif // EIGEN_STDLIST_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/StlSupport/StdVector.h b/vendor/eigen-3.1.91/Eigen/src/StlSupport/StdVector.h
deleted file mode 100644
index 40a9abe..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/StlSupport/StdVector.h
+++ /dev/null
@@ -1,126 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2009 Hauke Heibel <hauke.heibel at googlemail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_STDVECTOR_H
-#define EIGEN_STDVECTOR_H
-
-#include "Eigen/src/StlSupport/details.h"
-
-/**
- * This section contains a convenience MACRO which allows an easy specialization of
- * std::vector such that for data types with alignment issues the correct allocator
- * is used automatically.
- */
-#define EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(...) \
-namespace std \
-{ \
-  template<> \
-  class vector<__VA_ARGS__, std::allocator<__VA_ARGS__> >  \
-    : public vector<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > \
-  { \
-    typedef vector<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > vector_base; \
-  public: \
-    typedef __VA_ARGS__ value_type; \
-    typedef vector_base::allocator_type allocator_type; \
-    typedef vector_base::size_type size_type;  \
-    typedef vector_base::iterator iterator;  \
-    explicit vector(const allocator_type& a = allocator_type()) : vector_base(a) {}  \
-    template<typename InputIterator> \
-    vector(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) : vector_base(first, last, a) {} \
-    vector(const vector& c) : vector_base(c) {}  \
-    explicit vector(size_type num, const value_type& val = value_type()) : vector_base(num, val) {} \
-    vector(iterator start, iterator end) : vector_base(start, end) {}  \
-    vector& operator=(const vector& x) {  \
-      vector_base::operator=(x);  \
-      return *this;  \
-    } \
-  }; \
-}
-
-namespace std {
-
-#define EIGEN_STD_VECTOR_SPECIALIZATION_BODY \
-  public:  \
-    typedef T value_type; \
-    typedef typename vector_base::allocator_type allocator_type; \
-    typedef typename vector_base::size_type size_type;  \
-    typedef typename vector_base::iterator iterator;  \
-    typedef typename vector_base::const_iterator const_iterator;  \
-    explicit vector(const allocator_type& a = allocator_type()) : vector_base(a) {}  \
-    template<typename InputIterator> \
-    vector(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) \
-    : vector_base(first, last, a) {} \
-    vector(const vector& c) : vector_base(c) {}  \
-    explicit vector(size_type num, const value_type& val = value_type()) : vector_base(num, val) {} \
-    vector(iterator start, iterator end) : vector_base(start, end) {}  \
-    vector& operator=(const vector& x) {  \
-      vector_base::operator=(x);  \
-      return *this;  \
-    }
-
-  template<typename T>
-  class vector<T,EIGEN_ALIGNED_ALLOCATOR<T> >
-    : public vector<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
-                    Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> >
-{
-  typedef vector<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
-                 Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> > vector_base;
-  EIGEN_STD_VECTOR_SPECIALIZATION_BODY
-
-  void resize(size_type new_size)
-  { resize(new_size, T()); }
-
-#if defined(_VECTOR_)
-  // workaround MSVC std::vector implementation
-  void resize(size_type new_size, const value_type& x)
-  {
-    if (vector_base::size() < new_size)
-      vector_base::_Insert_n(vector_base::end(), new_size - vector_base::size(), x);
-    else if (new_size < vector_base::size())
-      vector_base::erase(vector_base::begin() + new_size, vector_base::end());
-  }
-  void push_back(const value_type& x)
-  { vector_base::push_back(x); } 
-  using vector_base::insert;  
-  iterator insert(const_iterator position, const value_type& x)
-  { return vector_base::insert(position,x); }
-  void insert(const_iterator position, size_type new_size, const value_type& x)
-  { vector_base::insert(position, new_size, x); }
-#elif defined(_GLIBCXX_VECTOR) && (!(EIGEN_GNUC_AT_LEAST(4,1)))
-  /* Note that before gcc-4.1 we already have: std::vector::resize(size_type,const T&).
-   * However, this specialization is still needed to make the above EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION trick to work. */
-  void resize(size_type new_size, const value_type& x)
-  {
-    vector_base::resize(new_size,x);
-  }
-#elif defined(_GLIBCXX_VECTOR) && EIGEN_GNUC_AT_LEAST(4,2)
-  // workaround GCC std::vector implementation
-  void resize(size_type new_size, const value_type& x)
-  {
-    if (new_size < vector_base::size())
-      vector_base::_M_erase_at_end(this->_M_impl._M_start + new_size);
-    else
-      vector_base::insert(vector_base::end(), new_size - vector_base::size(), x);
-  }
-#else
-  // either GCC 4.1 or non-GCC
-  // default implementation which should always work.
-  void resize(size_type new_size, const value_type& x)
-  {
-    if (new_size < vector_base::size())
-      vector_base::erase(vector_base::begin() + new_size, vector_base::end());
-    else if (new_size > vector_base::size())
-      vector_base::insert(vector_base::end(), new_size - vector_base::size(), x);
-  }
-#endif
-  };
-}
-
-#endif // EIGEN_STDVECTOR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SuperLUSupport/SuperLUSupport.h b/vendor/eigen-3.1.91/Eigen/src/SuperLUSupport/SuperLUSupport.h
deleted file mode 100644
index 3034c7a..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/SuperLUSupport/SuperLUSupport.h
+++ /dev/null
@@ -1,1026 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SUPERLUSUPPORT_H
-#define EIGEN_SUPERLUSUPPORT_H
-
-namespace Eigen { 
-
-#define DECL_GSSVX(PREFIX,FLOATTYPE,KEYTYPE)		\
-    extern "C" {                                                                                          \
-      typedef struct { FLOATTYPE for_lu; FLOATTYPE total_needed; int expansions; } PREFIX##mem_usage_t;   \
-      extern void PREFIX##gssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *,                  \
-                                char *, FLOATTYPE *, FLOATTYPE *, SuperMatrix *, SuperMatrix *,           \
-                                void *, int, SuperMatrix *, SuperMatrix *,                                \
-                                FLOATTYPE *, FLOATTYPE *, FLOATTYPE *, FLOATTYPE *,                       \
-                                PREFIX##mem_usage_t *, SuperLUStat_t *, int *);                           \
-    }                                                                                                     \
-    inline float SuperLU_gssvx(superlu_options_t *options, SuperMatrix *A,                                \
-         int *perm_c, int *perm_r, int *etree, char *equed,                                               \
-         FLOATTYPE *R, FLOATTYPE *C, SuperMatrix *L,                                                      \
-         SuperMatrix *U, void *work, int lwork,                                                           \
-         SuperMatrix *B, SuperMatrix *X,                                                                  \
-         FLOATTYPE *recip_pivot_growth,                                                                   \
-         FLOATTYPE *rcond, FLOATTYPE *ferr, FLOATTYPE *berr,                                              \
-         SuperLUStat_t *stats, int *info, KEYTYPE) {                                                      \
-    PREFIX##mem_usage_t mem_usage;                                                                        \
-    PREFIX##gssvx(options, A, perm_c, perm_r, etree, equed, R, C, L,                                      \
-         U, work, lwork, B, X, recip_pivot_growth, rcond,                                                 \
-         ferr, berr, &mem_usage, stats, info);                                                            \
-    return mem_usage.for_lu; /* bytes used by the factor storage */                                       \
-  }
-
-DECL_GSSVX(s,float,float)
-DECL_GSSVX(c,float,std::complex<float>)
-DECL_GSSVX(d,double,double)
-DECL_GSSVX(z,double,std::complex<double>)
-
-#ifdef MILU_ALPHA
-#define EIGEN_SUPERLU_HAS_ILU
-#endif
-
-#ifdef EIGEN_SUPERLU_HAS_ILU
-
-// similarly for the incomplete factorization using gsisx
-#define DECL_GSISX(PREFIX,FLOATTYPE,KEYTYPE)                                                    \
-    extern "C" {                                                                                \
-      extern void PREFIX##gsisx(superlu_options_t *, SuperMatrix *, int *, int *, int *,        \
-                         char *, FLOATTYPE *, FLOATTYPE *, SuperMatrix *, SuperMatrix *,        \
-                         void *, int, SuperMatrix *, SuperMatrix *, FLOATTYPE *, FLOATTYPE *,   \
-                         PREFIX##mem_usage_t *, SuperLUStat_t *, int *);                        \
-    }                                                                                           \
-    inline float SuperLU_gsisx(superlu_options_t *options, SuperMatrix *A,                      \
-         int *perm_c, int *perm_r, int *etree, char *equed,                                     \
-         FLOATTYPE *R, FLOATTYPE *C, SuperMatrix *L,                                            \
-         SuperMatrix *U, void *work, int lwork,                                                 \
-         SuperMatrix *B, SuperMatrix *X,                                                        \
-         FLOATTYPE *recip_pivot_growth,                                                         \
-         FLOATTYPE *rcond,                                                                      \
-         SuperLUStat_t *stats, int *info, KEYTYPE) {                                            \
-    PREFIX##mem_usage_t mem_usage;                                                              \
-    PREFIX##gsisx(options, A, perm_c, perm_r, etree, equed, R, C, L,                            \
-         U, work, lwork, B, X, recip_pivot_growth, rcond,                                       \
-         &mem_usage, stats, info);                                                              \
-    return mem_usage.for_lu; /* bytes used by the factor storage */                             \
-  }
-
-DECL_GSISX(s,float,float)
-DECL_GSISX(c,float,std::complex<float>)
-DECL_GSISX(d,double,double)
-DECL_GSISX(z,double,std::complex<double>)
-
-#endif
-
-template<typename MatrixType>
-struct SluMatrixMapHelper;
-
-/** \internal
-  *
-  * A wrapper class for SuperLU matrices. It supports only compressed sparse matrices
-  * and dense matrices. Supernodal and other fancy format are not supported by this wrapper.
-  *
-  * This wrapper class mainly aims to avoids the need of dynamic allocation of the storage structure.
-  */
-struct SluMatrix : SuperMatrix
-{
-  SluMatrix()
-  {
-    Store = &storage;
-  }
-
-  SluMatrix(const SluMatrix& other)
-    : SuperMatrix(other)
-  {
-    Store = &storage;
-    storage = other.storage;
-  }
-
-  SluMatrix& operator=(const SluMatrix& other)
-  {
-    SuperMatrix::operator=(static_cast<const SuperMatrix&>(other));
-    Store = &storage;
-    storage = other.storage;
-    return *this;
-  }
-
-  struct
-  {
-    union {int nnz;int lda;};
-    void *values;
-    int *innerInd;
-    int *outerInd;
-  } storage;
-
-  void setStorageType(Stype_t t)
-  {
-    Stype = t;
-    if (t==SLU_NC || t==SLU_NR || t==SLU_DN)
-      Store = &storage;
-    else
-    {
-      eigen_assert(false && "storage type not supported");
-      Store = 0;
-    }
-  }
-
-  template<typename Scalar>
-  void setScalarType()
-  {
-    if (internal::is_same<Scalar,float>::value)
-      Dtype = SLU_S;
-    else if (internal::is_same<Scalar,double>::value)
-      Dtype = SLU_D;
-    else if (internal::is_same<Scalar,std::complex<float> >::value)
-      Dtype = SLU_C;
-    else if (internal::is_same<Scalar,std::complex<double> >::value)
-      Dtype = SLU_Z;
-    else
-    {
-      eigen_assert(false && "Scalar type not supported by SuperLU");
-    }
-  }
-
-  template<typename MatrixType>
-  static SluMatrix Map(MatrixBase<MatrixType>& _mat)
-  {
-    MatrixType& mat(_mat.derived());
-    eigen_assert( ((MatrixType::Flags&RowMajorBit)!=RowMajorBit) && "row-major dense matrices are not supported by SuperLU");
-    SluMatrix res;
-    res.setStorageType(SLU_DN);
-    res.setScalarType<typename MatrixType::Scalar>();
-    res.Mtype     = SLU_GE;
-
-    res.nrow      = mat.rows();
-    res.ncol      = mat.cols();
-
-    res.storage.lda       = MatrixType::IsVectorAtCompileTime ? mat.size() : mat.outerStride();
-    res.storage.values    = mat.data();
-    return res;
-  }
-
-  template<typename MatrixType>
-  static SluMatrix Map(SparseMatrixBase<MatrixType>& mat)
-  {
-    SluMatrix res;
-    if ((MatrixType::Flags&RowMajorBit)==RowMajorBit)
-    {
-      res.setStorageType(SLU_NR);
-      res.nrow      = mat.cols();
-      res.ncol      = mat.rows();
-    }
-    else
-    {
-      res.setStorageType(SLU_NC);
-      res.nrow      = mat.rows();
-      res.ncol      = mat.cols();
-    }
-
-    res.Mtype       = SLU_GE;
-
-    res.storage.nnz       = mat.nonZeros();
-    res.storage.values    = mat.derived().valuePtr();
-    res.storage.innerInd  = mat.derived().innerIndexPtr();
-    res.storage.outerInd  = mat.derived().outerIndexPtr();
-
-    res.setScalarType<typename MatrixType::Scalar>();
-
-    // FIXME the following is not very accurate
-    if (MatrixType::Flags & Upper)
-      res.Mtype = SLU_TRU;
-    if (MatrixType::Flags & Lower)
-      res.Mtype = SLU_TRL;
-
-    eigen_assert(((MatrixType::Flags & SelfAdjoint)==0) && "SelfAdjoint matrix shape not supported by SuperLU");
-
-    return res;
-  }
-};
-
-template<typename Scalar, int Rows, int Cols, int Options, int MRows, int MCols>
-struct SluMatrixMapHelper<Matrix<Scalar,Rows,Cols,Options,MRows,MCols> >
-{
-  typedef Matrix<Scalar,Rows,Cols,Options,MRows,MCols> MatrixType;
-  static void run(MatrixType& mat, SluMatrix& res)
-  {
-    eigen_assert( ((Options&RowMajor)!=RowMajor) && "row-major dense matrices is not supported by SuperLU");
-    res.setStorageType(SLU_DN);
-    res.setScalarType<Scalar>();
-    res.Mtype     = SLU_GE;
-
-    res.nrow      = mat.rows();
-    res.ncol      = mat.cols();
-
-    res.storage.lda       = mat.outerStride();
-    res.storage.values    = mat.data();
-  }
-};
-
-template<typename Derived>
-struct SluMatrixMapHelper<SparseMatrixBase<Derived> >
-{
-  typedef Derived MatrixType;
-  static void run(MatrixType& mat, SluMatrix& res)
-  {
-    if ((MatrixType::Flags&RowMajorBit)==RowMajorBit)
-    {
-      res.setStorageType(SLU_NR);
-      res.nrow      = mat.cols();
-      res.ncol      = mat.rows();
-    }
-    else
-    {
-      res.setStorageType(SLU_NC);
-      res.nrow      = mat.rows();
-      res.ncol      = mat.cols();
-    }
-
-    res.Mtype       = SLU_GE;
-
-    res.storage.nnz       = mat.nonZeros();
-    res.storage.values    = mat.valuePtr();
-    res.storage.innerInd  = mat.innerIndexPtr();
-    res.storage.outerInd  = mat.outerIndexPtr();
-
-    res.setScalarType<typename MatrixType::Scalar>();
-
-    // FIXME the following is not very accurate
-    if (MatrixType::Flags & Upper)
-      res.Mtype = SLU_TRU;
-    if (MatrixType::Flags & Lower)
-      res.Mtype = SLU_TRL;
-
-    eigen_assert(((MatrixType::Flags & SelfAdjoint)==0) && "SelfAdjoint matrix shape not supported by SuperLU");
-  }
-};
-
-namespace internal {
-
-template<typename MatrixType>
-SluMatrix asSluMatrix(MatrixType& mat)
-{
-  return SluMatrix::Map(mat);
-}
-
-/** View a Super LU matrix as an Eigen expression */
-template<typename Scalar, int Flags, typename Index>
-MappedSparseMatrix<Scalar,Flags,Index> map_superlu(SluMatrix& sluMat)
-{
-  eigen_assert((Flags&RowMajor)==RowMajor && sluMat.Stype == SLU_NR
-         || (Flags&ColMajor)==ColMajor && sluMat.Stype == SLU_NC);
-
-  Index outerSize = (Flags&RowMajor)==RowMajor ? sluMat.ncol : sluMat.nrow;
-
-  return MappedSparseMatrix<Scalar,Flags,Index>(
-    sluMat.nrow, sluMat.ncol, sluMat.storage.outerInd[outerSize],
-    sluMat.storage.outerInd, sluMat.storage.innerInd, reinterpret_cast<Scalar*>(sluMat.storage.values) );
-}
-
-} // end namespace internal
-
-/** \ingroup SuperLUSupport_Module
-  * \class SuperLUBase
-  * \brief The base class for the direct and incomplete LU factorization of SuperLU
-  */
-template<typename _MatrixType, typename Derived>
-class SuperLUBase : internal::noncopyable
-{
-  public:
-    typedef _MatrixType MatrixType;
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::RealScalar RealScalar;
-    typedef typename MatrixType::Index Index;
-    typedef Matrix<Scalar,Dynamic,1> Vector;
-    typedef Matrix<int, 1, MatrixType::ColsAtCompileTime> IntRowVectorType;
-    typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> IntColVectorType;    
-    typedef SparseMatrix<Scalar> LUMatrixType;
-
-  public:
-
-    SuperLUBase() {}
-
-    ~SuperLUBase()
-    {
-      clearFactors();
-    }
-    
-    Derived& derived() { return *static_cast<Derived*>(this); }
-    const Derived& derived() const { return *static_cast<const Derived*>(this); }
-    
-    inline Index rows() const { return m_matrix.rows(); }
-    inline Index cols() const { return m_matrix.cols(); }
-    
-    /** \returns a reference to the Super LU option object to configure the  Super LU algorithms. */
-    inline superlu_options_t& options() { return m_sluOptions; }
-    
-    /** \brief Reports whether previous computation was successful.
-      *
-      * \returns \c Success if computation was succesful,
-      *          \c NumericalIssue if the matrix.appears to be negative.
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
-      return m_info;
-    }
-
-    /** Computes the sparse Cholesky decomposition of \a matrix */
-    void compute(const MatrixType& matrix)
-    {
-      derived().analyzePattern(matrix);
-      derived().factorize(matrix);
-    }
-    
-    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
-      *
-      * \sa compute()
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<SuperLUBase, Rhs> solve(const MatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "SuperLU is not initialized.");
-      eigen_assert(rows()==b.rows()
-                && "SuperLU::solve(): invalid number of rows of the right hand side matrix b");
-      return internal::solve_retval<SuperLUBase, Rhs>(*this, b.derived());
-    }
-    
-    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
-      *
-      * \sa compute()
-      */
-    template<typename Rhs>
-    inline const internal::sparse_solve_retval<SuperLUBase, Rhs> solve(const SparseMatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "SuperLU is not initialized.");
-      eigen_assert(rows()==b.rows()
-                && "SuperLU::solve(): invalid number of rows of the right hand side matrix b");
-      return internal::sparse_solve_retval<SuperLUBase, Rhs>(*this, b.derived());
-    }
-    
-    /** Performs a symbolic decomposition on the sparcity of \a matrix.
-      *
-      * This function is particularly useful when solving for several problems having the same structure.
-      * 
-      * \sa factorize()
-      */
-    void analyzePattern(const MatrixType& /*matrix*/)
-    {
-      m_isInitialized = true;
-      m_info = Success;
-      m_analysisIsOk = true;
-      m_factorizationIsOk = false;
-    }
-    
-    template<typename Stream>
-    void dumpMemory(Stream& s)
-    {}
-    
-  protected:
-    
-    void initFactorization(const MatrixType& a)
-    {
-      set_default_options(&this->m_sluOptions);
-      
-      const int size = a.rows();
-      m_matrix = a;
-
-      m_sluA = internal::asSluMatrix(m_matrix);
-      clearFactors();
-
-      m_p.resize(size);
-      m_q.resize(size);
-      m_sluRscale.resize(size);
-      m_sluCscale.resize(size);
-      m_sluEtree.resize(size);
-
-      // set empty B and X
-      m_sluB.setStorageType(SLU_DN);
-      m_sluB.setScalarType<Scalar>();
-      m_sluB.Mtype          = SLU_GE;
-      m_sluB.storage.values = 0;
-      m_sluB.nrow           = 0;
-      m_sluB.ncol           = 0;
-      m_sluB.storage.lda    = size;
-      m_sluX                = m_sluB;
-      
-      m_extractedDataAreDirty = true;
-    }
-    
-    void init()
-    {
-      m_info = InvalidInput;
-      m_isInitialized = false;
-      m_sluL.Store = 0;
-      m_sluU.Store = 0;
-    }
-    
-    void extractData() const;
-
-    void clearFactors()
-    {
-      if(m_sluL.Store)
-        Destroy_SuperNode_Matrix(&m_sluL);
-      if(m_sluU.Store)
-        Destroy_CompCol_Matrix(&m_sluU);
-
-      m_sluL.Store = 0;
-      m_sluU.Store = 0;
-
-      memset(&m_sluL,0,sizeof m_sluL);
-      memset(&m_sluU,0,sizeof m_sluU);
-    }
-
-    // cached data to reduce reallocation, etc.
-    mutable LUMatrixType m_l;
-    mutable LUMatrixType m_u;
-    mutable IntColVectorType m_p;
-    mutable IntRowVectorType m_q;
-
-    mutable LUMatrixType m_matrix;  // copy of the factorized matrix
-    mutable SluMatrix m_sluA;
-    mutable SuperMatrix m_sluL, m_sluU;
-    mutable SluMatrix m_sluB, m_sluX;
-    mutable SuperLUStat_t m_sluStat;
-    mutable superlu_options_t m_sluOptions;
-    mutable std::vector<int> m_sluEtree;
-    mutable Matrix<RealScalar,Dynamic,1> m_sluRscale, m_sluCscale;
-    mutable Matrix<RealScalar,Dynamic,1> m_sluFerr, m_sluBerr;
-    mutable char m_sluEqued;
-
-    mutable ComputationInfo m_info;
-    bool m_isInitialized;
-    int m_factorizationIsOk;
-    int m_analysisIsOk;
-    mutable bool m_extractedDataAreDirty;
-    
-  private:
-    SuperLUBase(SuperLUBase& ) { }
-};
-
-
-/** \ingroup SuperLUSupport_Module
-  * \class SuperLU
-  * \brief A sparse direct LU factorization and solver based on the SuperLU library
-  *
-  * This class allows to solve for A.X = B sparse linear problems via a direct LU factorization
-  * using the SuperLU library. The sparse matrix A must be squared and invertible. The vectors or matrices
-  * X and B can be either dense or sparse.
-  *
-  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
-  *
-  * \sa \ref TutorialSparseDirectSolvers
-  */
-template<typename _MatrixType>
-class SuperLU : public SuperLUBase<_MatrixType,SuperLU<_MatrixType> >
-{
-  public:
-    typedef SuperLUBase<_MatrixType,SuperLU> Base;
-    typedef _MatrixType MatrixType;
-    typedef typename Base::Scalar Scalar;
-    typedef typename Base::RealScalar RealScalar;
-    typedef typename Base::Index Index;
-    typedef typename Base::IntRowVectorType IntRowVectorType;
-    typedef typename Base::IntColVectorType IntColVectorType;    
-    typedef typename Base::LUMatrixType LUMatrixType;
-    typedef TriangularView<LUMatrixType, Lower|UnitDiag>  LMatrixType;
-    typedef TriangularView<LUMatrixType,  Upper>           UMatrixType;
-
-  public:
-
-    SuperLU() : Base() { init(); }
-
-    SuperLU(const MatrixType& matrix) : Base()
-    {
-      init();
-      Base::compute(matrix);
-    }
-
-    ~SuperLU()
-    {
-    }
-    
-    /** Performs a symbolic decomposition on the sparcity of \a matrix.
-      *
-      * This function is particularly useful when solving for several problems having the same structure.
-      * 
-      * \sa factorize()
-      */
-    void analyzePattern(const MatrixType& matrix)
-    {
-      m_info = InvalidInput;
-      m_isInitialized = false;
-      Base::analyzePattern(matrix);
-    }
-    
-    /** Performs a numeric decomposition of \a matrix
-      *
-      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
-      *
-      * \sa analyzePattern()
-      */
-    void factorize(const MatrixType& matrix);
-    
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** \internal */
-    template<typename Rhs,typename Dest>
-    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const;
-    #endif // EIGEN_PARSED_BY_DOXYGEN
-    
-    inline const LMatrixType& matrixL() const
-    {
-      if (m_extractedDataAreDirty) this->extractData();
-      return m_l;
-    }
-
-    inline const UMatrixType& matrixU() const
-    {
-      if (m_extractedDataAreDirty) this->extractData();
-      return m_u;
-    }
-
-    inline const IntColVectorType& permutationP() const
-    {
-      if (m_extractedDataAreDirty) this->extractData();
-      return m_p;
-    }
-
-    inline const IntRowVectorType& permutationQ() const
-    {
-      if (m_extractedDataAreDirty) this->extractData();
-      return m_q;
-    }
-    
-    Scalar determinant() const;
-    
-  protected:
-    
-    using Base::m_matrix;
-    using Base::m_sluOptions;
-    using Base::m_sluA;
-    using Base::m_sluB;
-    using Base::m_sluX;
-    using Base::m_p;
-    using Base::m_q;
-    using Base::m_sluEtree;
-    using Base::m_sluEqued;
-    using Base::m_sluRscale;
-    using Base::m_sluCscale;
-    using Base::m_sluL;
-    using Base::m_sluU;
-    using Base::m_sluStat;
-    using Base::m_sluFerr;
-    using Base::m_sluBerr;
-    using Base::m_l;
-    using Base::m_u;
-    
-    using Base::m_analysisIsOk;
-    using Base::m_factorizationIsOk;
-    using Base::m_extractedDataAreDirty;
-    using Base::m_isInitialized;
-    using Base::m_info;
-    
-    void init()
-    {
-      Base::init();
-      
-      set_default_options(&this->m_sluOptions);
-      m_sluOptions.PrintStat        = NO;
-      m_sluOptions.ConditionNumber  = NO;
-      m_sluOptions.Trans            = NOTRANS;
-      m_sluOptions.ColPerm          = COLAMD;
-    }
-    
-    
-  private:
-    SuperLU(SuperLU& ) { }
-};
-
-template<typename MatrixType>
-void SuperLU<MatrixType>::factorize(const MatrixType& a)
-{
-  eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
-  if(!m_analysisIsOk)
-  {
-    m_info = InvalidInput;
-    return;
-  }
-  
-  this->initFactorization(a);
-  
-  m_sluOptions.ColPerm = COLAMD;
-  int info = 0;
-  RealScalar recip_pivot_growth, rcond;
-  RealScalar ferr, berr;
-
-  StatInit(&m_sluStat);
-  SuperLU_gssvx(&m_sluOptions, &m_sluA, m_q.data(), m_p.data(), &m_sluEtree[0],
-                &m_sluEqued, &m_sluRscale[0], &m_sluCscale[0],
-                &m_sluL, &m_sluU,
-                NULL, 0,
-                &m_sluB, &m_sluX,
-                &recip_pivot_growth, &rcond,
-                &ferr, &berr,
-                &m_sluStat, &info, Scalar());
-  StatFree(&m_sluStat);
-
-  m_extractedDataAreDirty = true;
-
-  // FIXME how to better check for errors ???
-  m_info = info == 0 ? Success : NumericalIssue;
-  m_factorizationIsOk = true;
-}
-
-template<typename MatrixType>
-template<typename Rhs,typename Dest>
-void SuperLU<MatrixType>::_solve(const MatrixBase<Rhs> &b, MatrixBase<Dest>& x) const
-{
-  eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or analyzePattern()/factorize()");
-
-  const int size = m_matrix.rows();
-  const int rhsCols = b.cols();
-  eigen_assert(size==b.rows());
-
-  m_sluOptions.Trans = NOTRANS;
-  m_sluOptions.Fact = FACTORED;
-  m_sluOptions.IterRefine = NOREFINE;
-  
-
-  m_sluFerr.resize(rhsCols);
-  m_sluBerr.resize(rhsCols);
-  m_sluB = SluMatrix::Map(b.const_cast_derived());
-  m_sluX = SluMatrix::Map(x.derived());
-  
-  typename Rhs::PlainObject b_cpy;
-  if(m_sluEqued!='N')
-  {
-    b_cpy = b;
-    m_sluB = SluMatrix::Map(b_cpy.const_cast_derived());  
-  }
-
-  StatInit(&m_sluStat);
-  int info = 0;
-  RealScalar recip_pivot_growth, rcond;
-  SuperLU_gssvx(&m_sluOptions, &m_sluA,
-                m_q.data(), m_p.data(),
-                &m_sluEtree[0], &m_sluEqued,
-                &m_sluRscale[0], &m_sluCscale[0],
-                &m_sluL, &m_sluU,
-                NULL, 0,
-                &m_sluB, &m_sluX,
-                &recip_pivot_growth, &rcond,
-                &m_sluFerr[0], &m_sluBerr[0],
-                &m_sluStat, &info, Scalar());
-  StatFree(&m_sluStat);
-  m_info = info==0 ? Success : NumericalIssue;
-}
-
-// the code of this extractData() function has been adapted from the SuperLU's Matlab support code,
-//
-//  Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
-//
-//  THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
-//  EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
-//
-template<typename MatrixType, typename Derived>
-void SuperLUBase<MatrixType,Derived>::extractData() const
-{
-  eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for extracting factors, you must first call either compute() or analyzePattern()/factorize()");
-  if (m_extractedDataAreDirty)
-  {
-    int         upper;
-    int         fsupc, istart, nsupr;
-    int         lastl = 0, lastu = 0;
-    SCformat    *Lstore = static_cast<SCformat*>(m_sluL.Store);
-    NCformat    *Ustore = static_cast<NCformat*>(m_sluU.Store);
-    Scalar      *SNptr;
-
-    const int size = m_matrix.rows();
-    m_l.resize(size,size);
-    m_l.resizeNonZeros(Lstore->nnz);
-    m_u.resize(size,size);
-    m_u.resizeNonZeros(Ustore->nnz);
-
-    int* Lcol = m_l.outerIndexPtr();
-    int* Lrow = m_l.innerIndexPtr();
-    Scalar* Lval = m_l.valuePtr();
-
-    int* Ucol = m_u.outerIndexPtr();
-    int* Urow = m_u.innerIndexPtr();
-    Scalar* Uval = m_u.valuePtr();
-
-    Ucol[0] = 0;
-    Ucol[0] = 0;
-
-    /* for each supernode */
-    for (int k = 0; k <= Lstore->nsuper; ++k)
-    {
-      fsupc   = L_FST_SUPC(k);
-      istart  = L_SUB_START(fsupc);
-      nsupr   = L_SUB_START(fsupc+1) - istart;
-      upper   = 1;
-
-      /* for each column in the supernode */
-      for (int j = fsupc; j < L_FST_SUPC(k+1); ++j)
-      {
-        SNptr = &((Scalar*)Lstore->nzval)[L_NZ_START(j)];
-
-        /* Extract U */
-        for (int i = U_NZ_START(j); i < U_NZ_START(j+1); ++i)
-        {
-          Uval[lastu] = ((Scalar*)Ustore->nzval)[i];
-          /* Matlab doesn't like explicit zero. */
-          if (Uval[lastu] != 0.0)
-            Urow[lastu++] = U_SUB(i);
-        }
-        for (int i = 0; i < upper; ++i)
-        {
-          /* upper triangle in the supernode */
-          Uval[lastu] = SNptr[i];
-          /* Matlab doesn't like explicit zero. */
-          if (Uval[lastu] != 0.0)
-            Urow[lastu++] = L_SUB(istart+i);
-        }
-        Ucol[j+1] = lastu;
-
-        /* Extract L */
-        Lval[lastl] = 1.0; /* unit diagonal */
-        Lrow[lastl++] = L_SUB(istart + upper - 1);
-        for (int i = upper; i < nsupr; ++i)
-        {
-          Lval[lastl] = SNptr[i];
-          /* Matlab doesn't like explicit zero. */
-          if (Lval[lastl] != 0.0)
-            Lrow[lastl++] = L_SUB(istart+i);
-        }
-        Lcol[j+1] = lastl;
-
-        ++upper;
-      } /* for j ... */
-
-    } /* for k ... */
-
-    // squeeze the matrices :
-    m_l.resizeNonZeros(lastl);
-    m_u.resizeNonZeros(lastu);
-
-    m_extractedDataAreDirty = false;
-  }
-}
-
-template<typename MatrixType>
-typename SuperLU<MatrixType>::Scalar SuperLU<MatrixType>::determinant() const
-{
-  eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for computing the determinant, you must first call either compute() or analyzePattern()/factorize()");
-  
-  if (m_extractedDataAreDirty)
-    this->extractData();
-
-  Scalar det = Scalar(1);
-  for (int j=0; j<m_u.cols(); ++j)
-  {
-    if (m_u.outerIndexPtr()[j+1]-m_u.outerIndexPtr()[j] > 0)
-    {
-      int lastId = m_u.outerIndexPtr()[j+1]-1;
-      eigen_assert(m_u.innerIndexPtr()[lastId]<=j);
-      if (m_u.innerIndexPtr()[lastId]==j)
-        det *= m_u.valuePtr()[lastId];
-    }
-  }
-  if(m_sluEqued!='N')
-    return det/m_sluRscale.prod()/m_sluCscale.prod();
-  else
-    return det;
-}
-
-#ifdef EIGEN_PARSED_BY_DOXYGEN
-#define EIGEN_SUPERLU_HAS_ILU
-#endif
-
-#ifdef EIGEN_SUPERLU_HAS_ILU
-
-/** \ingroup SuperLUSupport_Module
-  * \class SuperILU
-  * \brief A sparse direct \b incomplete LU factorization and solver based on the SuperLU library
-  *
-  * This class allows to solve for an approximate solution of A.X = B sparse linear problems via an incomplete LU factorization
-  * using the SuperLU library. This class is aimed to be used as a preconditioner of the iterative linear solvers.
-  *
-  * \warning This class requires SuperLU 4 or later.
-  *
-  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
-  *
-  * \sa \ref TutorialSparseDirectSolvers, class ConjugateGradient, class BiCGSTAB
-  */
-
-template<typename _MatrixType>
-class SuperILU : public SuperLUBase<_MatrixType,SuperILU<_MatrixType> >
-{
-  public:
-    typedef SuperLUBase<_MatrixType,SuperILU> Base;
-    typedef _MatrixType MatrixType;
-    typedef typename Base::Scalar Scalar;
-    typedef typename Base::RealScalar RealScalar;
-    typedef typename Base::Index Index;
-
-  public:
-
-    SuperILU() : Base() { init(); }
-
-    SuperILU(const MatrixType& matrix) : Base()
-    {
-      init();
-      Base::compute(matrix);
-    }
-
-    ~SuperILU()
-    {
-    }
-    
-    /** Performs a symbolic decomposition on the sparcity of \a matrix.
-      *
-      * This function is particularly useful when solving for several problems having the same structure.
-      * 
-      * \sa factorize()
-      */
-    void analyzePattern(const MatrixType& matrix)
-    {
-      Base::analyzePattern(matrix);
-    }
-    
-    /** Performs a numeric decomposition of \a matrix
-      *
-      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
-      *
-      * \sa analyzePattern()
-      */
-    void factorize(const MatrixType& matrix);
-    
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** \internal */
-    template<typename Rhs,typename Dest>
-    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const;
-    #endif // EIGEN_PARSED_BY_DOXYGEN
-    
-  protected:
-    
-    using Base::m_matrix;
-    using Base::m_sluOptions;
-    using Base::m_sluA;
-    using Base::m_sluB;
-    using Base::m_sluX;
-    using Base::m_p;
-    using Base::m_q;
-    using Base::m_sluEtree;
-    using Base::m_sluEqued;
-    using Base::m_sluRscale;
-    using Base::m_sluCscale;
-    using Base::m_sluL;
-    using Base::m_sluU;
-    using Base::m_sluStat;
-    using Base::m_sluFerr;
-    using Base::m_sluBerr;
-    using Base::m_l;
-    using Base::m_u;
-    
-    using Base::m_analysisIsOk;
-    using Base::m_factorizationIsOk;
-    using Base::m_extractedDataAreDirty;
-    using Base::m_isInitialized;
-    using Base::m_info;
-
-    void init()
-    {
-      Base::init();
-      
-      ilu_set_default_options(&m_sluOptions);
-      m_sluOptions.PrintStat        = NO;
-      m_sluOptions.ConditionNumber  = NO;
-      m_sluOptions.Trans            = NOTRANS;
-      m_sluOptions.ColPerm          = MMD_AT_PLUS_A;
-      
-      // no attempt to preserve column sum
-      m_sluOptions.ILU_MILU = SILU;
-      // only basic ILU(k) support -- no direct control over memory consumption
-      // better to use ILU_DropRule = DROP_BASIC | DROP_AREA
-      // and set ILU_FillFactor to max memory growth
-      m_sluOptions.ILU_DropRule = DROP_BASIC;
-      m_sluOptions.ILU_DropTol = NumTraits<Scalar>::dummy_precision()*10;
-    }
-    
-  private:
-    SuperILU(SuperILU& ) { }
-};
-
-template<typename MatrixType>
-void SuperILU<MatrixType>::factorize(const MatrixType& a)
-{
-  eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
-  if(!m_analysisIsOk)
-  {
-    m_info = InvalidInput;
-    return;
-  }
-  
-  this->initFactorization(a);
-
-  int info = 0;
-  RealScalar recip_pivot_growth, rcond;
-
-  StatInit(&m_sluStat);
-  SuperLU_gsisx(&m_sluOptions, &m_sluA, m_q.data(), m_p.data(), &m_sluEtree[0],
-                &m_sluEqued, &m_sluRscale[0], &m_sluCscale[0],
-                &m_sluL, &m_sluU,
-                NULL, 0,
-                &m_sluB, &m_sluX,
-                &recip_pivot_growth, &rcond,
-                &m_sluStat, &info, Scalar());
-  StatFree(&m_sluStat);
-
-  // FIXME how to better check for errors ???
-  m_info = info == 0 ? Success : NumericalIssue;
-  m_factorizationIsOk = true;
-}
-
-template<typename MatrixType>
-template<typename Rhs,typename Dest>
-void SuperILU<MatrixType>::_solve(const MatrixBase<Rhs> &b, MatrixBase<Dest>& x) const
-{
-  eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or analyzePattern()/factorize()");
-
-  const int size = m_matrix.rows();
-  const int rhsCols = b.cols();
-  eigen_assert(size==b.rows());
-
-  m_sluOptions.Trans = NOTRANS;
-  m_sluOptions.Fact = FACTORED;
-  m_sluOptions.IterRefine = NOREFINE;
-
-  m_sluFerr.resize(rhsCols);
-  m_sluBerr.resize(rhsCols);
-  m_sluB = SluMatrix::Map(b.const_cast_derived());
-  m_sluX = SluMatrix::Map(x.derived());
-
-  typename Rhs::PlainObject b_cpy;
-  if(m_sluEqued!='N')
-  {
-    b_cpy = b;
-    m_sluB = SluMatrix::Map(b_cpy.const_cast_derived());  
-  }
-  
-  int info = 0;
-  RealScalar recip_pivot_growth, rcond;
-
-  StatInit(&m_sluStat);
-  SuperLU_gsisx(&m_sluOptions, &m_sluA,
-                m_q.data(), m_p.data(),
-                &m_sluEtree[0], &m_sluEqued,
-                &m_sluRscale[0], &m_sluCscale[0],
-                &m_sluL, &m_sluU,
-                NULL, 0,
-                &m_sluB, &m_sluX,
-                &recip_pivot_growth, &rcond,
-                &m_sluStat, &info, Scalar());
-  StatFree(&m_sluStat);
-
-  m_info = info==0 ? Success : NumericalIssue;
-}
-#endif
-
-namespace internal {
-  
-template<typename _MatrixType, typename Derived, typename Rhs>
-struct solve_retval<SuperLUBase<_MatrixType,Derived>, Rhs>
-  : solve_retval_base<SuperLUBase<_MatrixType,Derived>, Rhs>
-{
-  typedef SuperLUBase<_MatrixType,Derived> Dec;
-  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    dec().derived()._solve(rhs(),dst);
-  }
-};
-
-template<typename _MatrixType, typename Derived, typename Rhs>
-struct sparse_solve_retval<SuperLUBase<_MatrixType,Derived>, Rhs>
-  : sparse_solve_retval_base<SuperLUBase<_MatrixType,Derived>, Rhs>
-{
-  typedef SuperLUBase<_MatrixType,Derived> Dec;
-  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    this->defaultEvalTo(dst);
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_SUPERLUSUPPORT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/UmfPackSupport/UmfPackSupport.h b/vendor/eigen-3.1.91/Eigen/src/UmfPackSupport/UmfPackSupport.h
deleted file mode 100644
index d85b8be..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/UmfPackSupport/UmfPackSupport.h
+++ /dev/null
@@ -1,432 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_UMFPACKSUPPORT_H
-#define EIGEN_UMFPACKSUPPORT_H
-
-namespace Eigen { 
-
-/* TODO extract L, extract U, compute det, etc... */
-
-// generic double/complex<double> wrapper functions:
-
-inline void umfpack_free_numeric(void **Numeric, double)
-{ umfpack_di_free_numeric(Numeric); *Numeric = 0; }
-
-inline void umfpack_free_numeric(void **Numeric, std::complex<double>)
-{ umfpack_zi_free_numeric(Numeric); *Numeric = 0; }
-
-inline void umfpack_free_symbolic(void **Symbolic, double)
-{ umfpack_di_free_symbolic(Symbolic); *Symbolic = 0; }
-
-inline void umfpack_free_symbolic(void **Symbolic, std::complex<double>)
-{ umfpack_zi_free_symbolic(Symbolic); *Symbolic = 0; }
-
-inline int umfpack_symbolic(int n_row,int n_col,
-                            const int Ap[], const int Ai[], const double Ax[], void **Symbolic,
-                            const double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
-{
-  return umfpack_di_symbolic(n_row,n_col,Ap,Ai,Ax,Symbolic,Control,Info);
-}
-
-inline int umfpack_symbolic(int n_row,int n_col,
-                            const int Ap[], const int Ai[], const std::complex<double> Ax[], void **Symbolic,
-                            const double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
-{
-  return umfpack_zi_symbolic(n_row,n_col,Ap,Ai,&internal::real_ref(Ax[0]),0,Symbolic,Control,Info);
-}
-
-inline int umfpack_numeric( const int Ap[], const int Ai[], const double Ax[],
-                            void *Symbolic, void **Numeric,
-                            const double Control[UMFPACK_CONTROL],double Info [UMFPACK_INFO])
-{
-  return umfpack_di_numeric(Ap,Ai,Ax,Symbolic,Numeric,Control,Info);
-}
-
-inline int umfpack_numeric( const int Ap[], const int Ai[], const std::complex<double> Ax[],
-                            void *Symbolic, void **Numeric,
-                            const double Control[UMFPACK_CONTROL],double Info [UMFPACK_INFO])
-{
-  return umfpack_zi_numeric(Ap,Ai,&internal::real_ref(Ax[0]),0,Symbolic,Numeric,Control,Info);
-}
-
-inline int umfpack_solve( int sys, const int Ap[], const int Ai[], const double Ax[],
-                          double X[], const double B[], void *Numeric,
-                          const double Control[UMFPACK_CONTROL], double Info[UMFPACK_INFO])
-{
-  return umfpack_di_solve(sys,Ap,Ai,Ax,X,B,Numeric,Control,Info);
-}
-
-inline int umfpack_solve( int sys, const int Ap[], const int Ai[], const std::complex<double> Ax[],
-                          std::complex<double> X[], const std::complex<double> B[], void *Numeric,
-                          const double Control[UMFPACK_CONTROL], double Info[UMFPACK_INFO])
-{
-  return umfpack_zi_solve(sys,Ap,Ai,&internal::real_ref(Ax[0]),0,&internal::real_ref(X[0]),0,&internal::real_ref(B[0]),0,Numeric,Control,Info);
-}
-
-inline int umfpack_get_lunz(int *lnz, int *unz, int *n_row, int *n_col, int *nz_udiag, void *Numeric, double)
-{
-  return umfpack_di_get_lunz(lnz,unz,n_row,n_col,nz_udiag,Numeric);
-}
-
-inline int umfpack_get_lunz(int *lnz, int *unz, int *n_row, int *n_col, int *nz_udiag, void *Numeric, std::complex<double>)
-{
-  return umfpack_zi_get_lunz(lnz,unz,n_row,n_col,nz_udiag,Numeric);
-}
-
-inline int umfpack_get_numeric(int Lp[], int Lj[], double Lx[], int Up[], int Ui[], double Ux[],
-                               int P[], int Q[], double Dx[], int *do_recip, double Rs[], void *Numeric)
-{
-  return umfpack_di_get_numeric(Lp,Lj,Lx,Up,Ui,Ux,P,Q,Dx,do_recip,Rs,Numeric);
-}
-
-inline int umfpack_get_numeric(int Lp[], int Lj[], std::complex<double> Lx[], int Up[], int Ui[], std::complex<double> Ux[],
-                               int P[], int Q[], std::complex<double> Dx[], int *do_recip, double Rs[], void *Numeric)
-{
-  double& lx0_real = internal::real_ref(Lx[0]);
-  double& ux0_real = internal::real_ref(Ux[0]);
-  double& dx0_real = internal::real_ref(Dx[0]);
-  return umfpack_zi_get_numeric(Lp,Lj,Lx?&lx0_real:0,0,Up,Ui,Ux?&ux0_real:0,0,P,Q,
-                                Dx?&dx0_real:0,0,do_recip,Rs,Numeric);
-}
-
-inline int umfpack_get_determinant(double *Mx, double *Ex, void *NumericHandle, double User_Info [UMFPACK_INFO])
-{
-  return umfpack_di_get_determinant(Mx,Ex,NumericHandle,User_Info);
-}
-
-inline int umfpack_get_determinant(std::complex<double> *Mx, double *Ex, void *NumericHandle, double User_Info [UMFPACK_INFO])
-{
-  double& mx_real = internal::real_ref(*Mx);
-  return umfpack_zi_get_determinant(&mx_real,0,Ex,NumericHandle,User_Info);
-}
-
-/** \ingroup UmfPackSupport_Module
-  * \brief A sparse LU factorization and solver based on UmfPack
-  *
-  * This class allows to solve for A.X = B sparse linear problems via a LU factorization
-  * using the UmfPack library. The sparse matrix A must be squared and full rank.
-  * The vectors or matrices X and B can be either dense or sparse.
-  *
-  * \warning The input matrix A should be in a \b compressed and \b column-major form.
-  * Otherwise an expensive copy will be made. You can call the inexpensive makeCompressed() to get a compressed matrix.
-  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
-  *
-  * \sa \ref TutorialSparseDirectSolvers
-  */
-template<typename _MatrixType>
-class UmfPackLU : internal::noncopyable
-{
-  public:
-    typedef _MatrixType MatrixType;
-    typedef typename MatrixType::Scalar Scalar;
-    typedef typename MatrixType::RealScalar RealScalar;
-    typedef typename MatrixType::Index Index;
-    typedef Matrix<Scalar,Dynamic,1> Vector;
-    typedef Matrix<int, 1, MatrixType::ColsAtCompileTime> IntRowVectorType;
-    typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> IntColVectorType;
-    typedef SparseMatrix<Scalar> LUMatrixType;
-    typedef SparseMatrix<Scalar,ColMajor,int> UmfpackMatrixType;
-
-  public:
-
-    UmfPackLU() { init(); }
-
-    UmfPackLU(const MatrixType& matrix)
-    {
-      init();
-      compute(matrix);
-    }
-
-    ~UmfPackLU()
-    {
-      if(m_symbolic) umfpack_free_symbolic(&m_symbolic,Scalar());
-      if(m_numeric)  umfpack_free_numeric(&m_numeric,Scalar());
-    }
-
-    inline Index rows() const { return m_copyMatrix.rows(); }
-    inline Index cols() const { return m_copyMatrix.cols(); }
-
-    /** \brief Reports whether previous computation was successful.
-      *
-      * \returns \c Success if computation was succesful,
-      *          \c NumericalIssue if the matrix.appears to be negative.
-      */
-    ComputationInfo info() const
-    {
-      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
-      return m_info;
-    }
-
-    inline const LUMatrixType& matrixL() const
-    {
-      if (m_extractedDataAreDirty) extractData();
-      return m_l;
-    }
-
-    inline const LUMatrixType& matrixU() const
-    {
-      if (m_extractedDataAreDirty) extractData();
-      return m_u;
-    }
-
-    inline const IntColVectorType& permutationP() const
-    {
-      if (m_extractedDataAreDirty) extractData();
-      return m_p;
-    }
-
-    inline const IntRowVectorType& permutationQ() const
-    {
-      if (m_extractedDataAreDirty) extractData();
-      return m_q;
-    }
-
-    /** Computes the sparse Cholesky decomposition of \a matrix 
-     *  Note that the matrix should be column-major, and in compressed format for best performance.
-     *  \sa SparseMatrix::makeCompressed().
-     */
-    void compute(const MatrixType& matrix)
-    {
-      analyzePattern(matrix);
-      factorize(matrix);
-    }
-
-    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
-      *
-      * \sa compute()
-      */
-    template<typename Rhs>
-    inline const internal::solve_retval<UmfPackLU, Rhs> solve(const MatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "UmfPackLU is not initialized.");
-      eigen_assert(rows()==b.rows()
-                && "UmfPackLU::solve(): invalid number of rows of the right hand side matrix b");
-      return internal::solve_retval<UmfPackLU, Rhs>(*this, b.derived());
-    }
-
-    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
-      *
-      * \sa compute()
-      */
-    template<typename Rhs>
-    inline const internal::sparse_solve_retval<UmfPackLU, Rhs> solve(const SparseMatrixBase<Rhs>& b) const
-    {
-      eigen_assert(m_isInitialized && "UmfPackLU is not initialized.");
-      eigen_assert(rows()==b.rows()
-                && "UmfPackLU::solve(): invalid number of rows of the right hand side matrix b");
-      return internal::sparse_solve_retval<UmfPackLU, Rhs>(*this, b.derived());
-    }
-
-    /** Performs a symbolic decomposition on the sparcity of \a matrix.
-      *
-      * This function is particularly useful when solving for several problems having the same structure.
-      *
-      * \sa factorize(), compute()
-      */
-    void analyzePattern(const MatrixType& matrix)
-    {
-      if(m_symbolic)
-        umfpack_free_symbolic(&m_symbolic,Scalar());
-      if(m_numeric)
-        umfpack_free_numeric(&m_numeric,Scalar());
-      
-      grapInput(matrix);
-
-      int errorCode = 0;
-      errorCode = umfpack_symbolic(matrix.rows(), matrix.cols(), m_outerIndexPtr, m_innerIndexPtr, m_valuePtr,
-                                   &m_symbolic, 0, 0);
-
-      m_isInitialized = true;
-      m_info = errorCode ? InvalidInput : Success;
-      m_analysisIsOk = true;
-      m_factorizationIsOk = false;
-    }
-
-    /** Performs a numeric decomposition of \a matrix
-      *
-      * The given matrix must has the same sparcity than the matrix on which the pattern anylysis has been performed.
-      *
-      * \sa analyzePattern(), compute()
-      */
-    void factorize(const MatrixType& matrix)
-    {
-      eigen_assert(m_analysisIsOk && "UmfPackLU: you must first call analyzePattern()");
-      if(m_numeric)
-        umfpack_free_numeric(&m_numeric,Scalar());
-
-      grapInput(matrix);
-
-      int errorCode;
-      errorCode = umfpack_numeric(m_outerIndexPtr, m_innerIndexPtr, m_valuePtr,
-                                  m_symbolic, &m_numeric, 0, 0);
-
-      m_info = errorCode ? NumericalIssue : Success;
-      m_factorizationIsOk = true;
-    }
-
-    #ifndef EIGEN_PARSED_BY_DOXYGEN
-    /** \internal */
-    template<typename BDerived,typename XDerived>
-    bool _solve(const MatrixBase<BDerived> &b, MatrixBase<XDerived> &x) const;
-    #endif
-
-    Scalar determinant() const;
-
-    void extractData() const;
-
-  protected:
-
-
-    void init()
-    {
-      m_info = InvalidInput;
-      m_isInitialized = false;
-      m_numeric = 0;
-      m_symbolic = 0;
-      m_outerIndexPtr = 0;
-      m_innerIndexPtr = 0;
-      m_valuePtr      = 0;
-    }
-    
-    void grapInput(const MatrixType& mat)
-    {
-      m_copyMatrix.resize(mat.rows(), mat.cols());
-      if( ((MatrixType::Flags&RowMajorBit)==RowMajorBit) || sizeof(typename MatrixType::Index)!=sizeof(int) || !mat.isCompressed() )
-      {
-        // non supported input -> copy
-        m_copyMatrix = mat;
-        m_outerIndexPtr = m_copyMatrix.outerIndexPtr();
-        m_innerIndexPtr = m_copyMatrix.innerIndexPtr();
-        m_valuePtr      = m_copyMatrix.valuePtr();
-      }
-      else
-      {
-        m_outerIndexPtr = mat.outerIndexPtr();
-        m_innerIndexPtr = mat.innerIndexPtr();
-        m_valuePtr      = mat.valuePtr();
-      }
-    }
-
-    // cached data to reduce reallocation, etc.
-    mutable LUMatrixType m_l;
-    mutable LUMatrixType m_u;
-    mutable IntColVectorType m_p;
-    mutable IntRowVectorType m_q;
-
-    UmfpackMatrixType m_copyMatrix;
-    const Scalar* m_valuePtr;
-    const int* m_outerIndexPtr;
-    const int* m_innerIndexPtr;
-    void* m_numeric;
-    void* m_symbolic;
-
-    mutable ComputationInfo m_info;
-    bool m_isInitialized;
-    int m_factorizationIsOk;
-    int m_analysisIsOk;
-    mutable bool m_extractedDataAreDirty;
-    
-  private:
-    UmfPackLU(UmfPackLU& ) { }
-};
-
-
-template<typename MatrixType>
-void UmfPackLU<MatrixType>::extractData() const
-{
-  if (m_extractedDataAreDirty)
-  {
-    // get size of the data
-    int lnz, unz, rows, cols, nz_udiag;
-    umfpack_get_lunz(&lnz, &unz, &rows, &cols, &nz_udiag, m_numeric, Scalar());
-
-    // allocate data
-    m_l.resize(rows,(std::min)(rows,cols));
-    m_l.resizeNonZeros(lnz);
-
-    m_u.resize((std::min)(rows,cols),cols);
-    m_u.resizeNonZeros(unz);
-
-    m_p.resize(rows);
-    m_q.resize(cols);
-
-    // extract
-    umfpack_get_numeric(m_l.outerIndexPtr(), m_l.innerIndexPtr(), m_l.valuePtr(),
-                        m_u.outerIndexPtr(), m_u.innerIndexPtr(), m_u.valuePtr(),
-                        m_p.data(), m_q.data(), 0, 0, 0, m_numeric);
-
-    m_extractedDataAreDirty = false;
-  }
-}
-
-template<typename MatrixType>
-typename UmfPackLU<MatrixType>::Scalar UmfPackLU<MatrixType>::determinant() const
-{
-  Scalar det;
-  umfpack_get_determinant(&det, 0, m_numeric, 0);
-  return det;
-}
-
-template<typename MatrixType>
-template<typename BDerived,typename XDerived>
-bool UmfPackLU<MatrixType>::_solve(const MatrixBase<BDerived> &b, MatrixBase<XDerived> &x) const
-{
-  const int rhsCols = b.cols();
-  eigen_assert((BDerived::Flags&RowMajorBit)==0 && "UmfPackLU backend does not support non col-major rhs yet");
-  eigen_assert((XDerived::Flags&RowMajorBit)==0 && "UmfPackLU backend does not support non col-major result yet");
-  eigen_assert(b.derived().data() != x.derived().data() && " Umfpack does not support inplace solve");
-  
-  int errorCode;
-  for (int j=0; j<rhsCols; ++j)
-  {
-    errorCode = umfpack_solve(UMFPACK_A,
-        m_outerIndexPtr, m_innerIndexPtr, m_valuePtr,
-        &x.col(j).coeffRef(0), &b.const_cast_derived().col(j).coeffRef(0), m_numeric, 0, 0);
-    if (errorCode!=0)
-      return false;
-  }
-
-  return true;
-}
-
-
-namespace internal {
-
-template<typename _MatrixType, typename Rhs>
-struct solve_retval<UmfPackLU<_MatrixType>, Rhs>
-  : solve_retval_base<UmfPackLU<_MatrixType>, Rhs>
-{
-  typedef UmfPackLU<_MatrixType> Dec;
-  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    dec()._solve(rhs(),dst);
-  }
-};
-
-template<typename _MatrixType, typename Rhs>
-struct sparse_solve_retval<UmfPackLU<_MatrixType>, Rhs>
-  : sparse_solve_retval_base<UmfPackLU<_MatrixType>, Rhs>
-{
-  typedef UmfPackLU<_MatrixType> Dec;
-  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
-
-  template<typename Dest> void evalTo(Dest& dst) const
-  {
-    this->defaultEvalTo(dst);
-  }
-};
-
-} // end namespace internal
-
-} // end namespace Eigen
-
-#endif // EIGEN_UMFPACKSUPPORT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/plugins/ArrayCwiseBinaryOps.h b/vendor/eigen-3.1.91/Eigen/src/plugins/ArrayCwiseBinaryOps.h
deleted file mode 100644
index 5c8c476..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/plugins/ArrayCwiseBinaryOps.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/** \returns an expression of the coefficient wise product of \c *this and \a other
-  *
-  * \sa MatrixBase::cwiseProduct
-  */
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE const EIGEN_CWISE_PRODUCT_RETURN_TYPE(Derived,OtherDerived)
-operator*(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
-{
-  return EIGEN_CWISE_PRODUCT_RETURN_TYPE(Derived,OtherDerived)(derived(), other.derived());
-}
-
-/** \returns an expression of the coefficient wise quotient of \c *this and \a other
-  *
-  * \sa MatrixBase::cwiseQuotient
-  */
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived>
-operator/(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
-{
-  return CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
-}
-
-/** \returns an expression of the coefficient-wise min of \c *this and \a other
-  *
-  * Example: \include Cwise_min.cpp
-  * Output: \verbinclude Cwise_min.out
-  *
-  * \sa max()
-  */
-EIGEN_MAKE_CWISE_BINARY_OP(min,internal::scalar_min_op)
-
-/** \returns an expression of the coefficient-wise min of \c *this and scalar \a other
-  *
-  * \sa max()
-  */
-EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived,
-                                        const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> >
-#ifdef EIGEN_PARSED_BY_DOXYGEN
-min
-#else
-(min)
-#endif
-(const Scalar &other) const
-{
-  return (min)(Derived::PlainObject::Constant(rows(), cols(), other));
-}
-
-/** \returns an expression of the coefficient-wise max of \c *this and \a other
-  *
-  * Example: \include Cwise_max.cpp
-  * Output: \verbinclude Cwise_max.out
-  *
-  * \sa min()
-  */
-EIGEN_MAKE_CWISE_BINARY_OP(max,internal::scalar_max_op)
-
-/** \returns an expression of the coefficient-wise max of \c *this and scalar \a other
-  *
-  * \sa min()
-  */
-EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived,
-                                        const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> >
-#ifdef EIGEN_PARSED_BY_DOXYGEN
-max
-#else
-(max)
-#endif
-(const Scalar &other) const
-{
-  return (max)(Derived::PlainObject::Constant(rows(), cols(), other));
-}
-
-/** \returns an expression of the coefficient-wise \< operator of *this and \a other
-  *
-  * Example: \include Cwise_less.cpp
-  * Output: \verbinclude Cwise_less.out
-  *
-  * \sa all(), any(), operator>(), operator<=()
-  */
-EIGEN_MAKE_CWISE_BINARY_OP(operator<,std::less)
-
-/** \returns an expression of the coefficient-wise \<= operator of *this and \a other
-  *
-  * Example: \include Cwise_less_equal.cpp
-  * Output: \verbinclude Cwise_less_equal.out
-  *
-  * \sa all(), any(), operator>=(), operator<()
-  */
-EIGEN_MAKE_CWISE_BINARY_OP(operator<=,std::less_equal)
-
-/** \returns an expression of the coefficient-wise \> operator of *this and \a other
-  *
-  * Example: \include Cwise_greater.cpp
-  * Output: \verbinclude Cwise_greater.out
-  *
-  * \sa all(), any(), operator>=(), operator<()
-  */
-EIGEN_MAKE_CWISE_BINARY_OP(operator>,std::greater)
-
-/** \returns an expression of the coefficient-wise \>= operator of *this and \a other
-  *
-  * Example: \include Cwise_greater_equal.cpp
-  * Output: \verbinclude Cwise_greater_equal.out
-  *
-  * \sa all(), any(), operator>(), operator<=()
-  */
-EIGEN_MAKE_CWISE_BINARY_OP(operator>=,std::greater_equal)
-
-/** \returns an expression of the coefficient-wise == operator of *this and \a other
-  *
-  * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
-  * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
-  * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
-  * isMuchSmallerThan().
-  *
-  * Example: \include Cwise_equal_equal.cpp
-  * Output: \verbinclude Cwise_equal_equal.out
-  *
-  * \sa all(), any(), isApprox(), isMuchSmallerThan()
-  */
-EIGEN_MAKE_CWISE_BINARY_OP(operator==,std::equal_to)
-
-/** \returns an expression of the coefficient-wise != operator of *this and \a other
-  *
-  * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
-  * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
-  * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
-  * isMuchSmallerThan().
-  *
-  * Example: \include Cwise_not_equal.cpp
-  * Output: \verbinclude Cwise_not_equal.out
-  *
-  * \sa all(), any(), isApprox(), isMuchSmallerThan()
-  */
-EIGEN_MAKE_CWISE_BINARY_OP(operator!=,std::not_equal_to)
-
-// scalar addition
-
-/** \returns an expression of \c *this with each coeff incremented by the constant \a scalar
-  *
-  * Example: \include Cwise_plus.cpp
-  * Output: \verbinclude Cwise_plus.out
-  *
-  * \sa operator+=(), operator-()
-  */
-inline const CwiseUnaryOp<internal::scalar_add_op<Scalar>, const Derived>
-operator+(const Scalar& scalar) const
-{
-  return CwiseUnaryOp<internal::scalar_add_op<Scalar>, const Derived>(derived(), internal::scalar_add_op<Scalar>(scalar));
-}
-
-friend inline const CwiseUnaryOp<internal::scalar_add_op<Scalar>, const Derived>
-operator+(const Scalar& scalar,const EIGEN_CURRENT_STORAGE_BASE_CLASS<Derived>& other)
-{
-  return other + scalar;
-}
-
-/** \returns an expression of \c *this with each coeff decremented by the constant \a scalar
-  *
-  * Example: \include Cwise_minus.cpp
-  * Output: \verbinclude Cwise_minus.out
-  *
-  * \sa operator+(), operator-=()
-  */
-inline const CwiseUnaryOp<internal::scalar_add_op<Scalar>, const Derived>
-operator-(const Scalar& scalar) const
-{
-  return *this + (-scalar);
-}
-
-friend inline const CwiseUnaryOp<internal::scalar_add_op<Scalar>, const CwiseUnaryOp<internal::scalar_opposite_op<Scalar>, const Derived> >
-operator-(const Scalar& scalar,const EIGEN_CURRENT_STORAGE_BASE_CLASS<Derived>& other)
-{
-  return (-other) + scalar;
-}
-
-/** \returns an expression of the coefficient-wise && operator of *this and \a other
-  *
-  * \warning this operator is for expression of bool only.
-  *
-  * Example: \include Cwise_boolean_and.cpp
-  * Output: \verbinclude Cwise_boolean_and.out
-  *
-  * \sa operator||(), select()
-  */
-template<typename OtherDerived>
-inline const CwiseBinaryOp<internal::scalar_boolean_and_op, const Derived, const OtherDerived>
-operator&&(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
-{
-  EIGEN_STATIC_ASSERT((internal::is_same<bool,Scalar>::value && internal::is_same<bool,typename OtherDerived::Scalar>::value),
-                      THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL);
-  return CwiseBinaryOp<internal::scalar_boolean_and_op, const Derived, const OtherDerived>(derived(),other.derived());
-}
-
-/** \returns an expression of the coefficient-wise || operator of *this and \a other
-  *
-  * \warning this operator is for expression of bool only.
-  *
-  * Example: \include Cwise_boolean_or.cpp
-  * Output: \verbinclude Cwise_boolean_or.out
-  *
-  * \sa operator&&(), select()
-  */
-template<typename OtherDerived>
-inline const CwiseBinaryOp<internal::scalar_boolean_or_op, const Derived, const OtherDerived>
-operator||(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
-{
-  EIGEN_STATIC_ASSERT((internal::is_same<bool,Scalar>::value && internal::is_same<bool,typename OtherDerived::Scalar>::value),
-                      THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL);
-  return CwiseBinaryOp<internal::scalar_boolean_or_op, const Derived, const OtherDerived>(derived(),other.derived());
-}
diff --git a/vendor/eigen-3.1.91/Eigen/src/plugins/ArrayCwiseUnaryOps.h b/vendor/eigen-3.1.91/Eigen/src/plugins/ArrayCwiseUnaryOps.h
deleted file mode 100644
index a596367..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/plugins/ArrayCwiseUnaryOps.h
+++ /dev/null
@@ -1,203 +0,0 @@
-
-
-/** \returns an expression of the coefficient-wise absolute value of \c *this
-  *
-  * Example: \include Cwise_abs.cpp
-  * Output: \verbinclude Cwise_abs.out
-  *
-  * \sa abs2()
-  */
-EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived>
-abs() const
-{
-  return derived();
-}
-
-/** \returns an expression of the coefficient-wise squared absolute value of \c *this
-  *
-  * Example: \include Cwise_abs2.cpp
-  * Output: \verbinclude Cwise_abs2.out
-  *
-  * \sa abs(), square()
-  */
-EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived>
-abs2() const
-{
-  return derived();
-}
-
-/** \returns an expression of the coefficient-wise exponential of *this.
-  *
-  * Example: \include Cwise_exp.cpp
-  * Output: \verbinclude Cwise_exp.out
-  *
-  * \sa pow(), log(), sin(), cos()
-  */
-inline const CwiseUnaryOp<internal::scalar_exp_op<Scalar>, const Derived>
-exp() const
-{
-  return derived();
-}
-
-/** \returns an expression of the coefficient-wise logarithm of *this.
-  *
-  * Example: \include Cwise_log.cpp
-  * Output: \verbinclude Cwise_log.out
-  *
-  * \sa exp()
-  */
-inline const CwiseUnaryOp<internal::scalar_log_op<Scalar>, const Derived>
-log() const
-{
-  return derived();
-}
-
-/** \returns an expression of the coefficient-wise square root of *this.
-  *
-  * Example: \include Cwise_sqrt.cpp
-  * Output: \verbinclude Cwise_sqrt.out
-  *
-  * \sa pow(), square()
-  */
-inline const CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived>
-sqrt() const
-{
-  return derived();
-}
-
-/** \returns an expression of the coefficient-wise cosine of *this.
-  *
-  * Example: \include Cwise_cos.cpp
-  * Output: \verbinclude Cwise_cos.out
-  *
-  * \sa sin(), acos()
-  */
-inline const CwiseUnaryOp<internal::scalar_cos_op<Scalar>, const Derived>
-cos() const
-{
-  return derived();
-}
-
-
-/** \returns an expression of the coefficient-wise sine of *this.
-  *
-  * Example: \include Cwise_sin.cpp
-  * Output: \verbinclude Cwise_sin.out
-  *
-  * \sa cos(), asin()
-  */
-inline const CwiseUnaryOp<internal::scalar_sin_op<Scalar>, const Derived>
-sin() const
-{
-  return derived();
-}
-
-/** \returns an expression of the coefficient-wise arc cosine of *this.
-  *
-  * Example: \include Cwise_acos.cpp
-  * Output: \verbinclude Cwise_acos.out
-  *
-  * \sa cos(), asin()
-  */
-inline const CwiseUnaryOp<internal::scalar_acos_op<Scalar>, const Derived>
-acos() const
-{
-  return derived();
-}
-
-/** \returns an expression of the coefficient-wise arc sine of *this.
-  *
-  * Example: \include Cwise_asin.cpp
-  * Output: \verbinclude Cwise_asin.out
-  *
-  * \sa sin(), acos()
-  */
-inline const CwiseUnaryOp<internal::scalar_asin_op<Scalar>, const Derived>
-asin() const
-{
-  return derived();
-}
-
-/** \returns an expression of the coefficient-wise tan of *this.
-  *
-  * Example: \include Cwise_tan.cpp
-  * Output: \verbinclude Cwise_tan.out
-  *
-  * \sa cos(), sin()
-  */
-inline const CwiseUnaryOp<internal::scalar_tan_op<Scalar>, Derived>
-tan() const
-{
-  return derived();
-}
-
-
-/** \returns an expression of the coefficient-wise power of *this to the given exponent.
-  *
-  * Example: \include Cwise_pow.cpp
-  * Output: \verbinclude Cwise_pow.out
-  *
-  * \sa exp(), log()
-  */
-inline const CwiseUnaryOp<internal::scalar_pow_op<Scalar>, const Derived>
-pow(const Scalar& exponent) const
-{
-  return CwiseUnaryOp<internal::scalar_pow_op<Scalar>, const Derived>
-          (derived(), internal::scalar_pow_op<Scalar>(exponent));
-}
-
-
-/** \returns an expression of the coefficient-wise inverse of *this.
-  *
-  * Example: \include Cwise_inverse.cpp
-  * Output: \verbinclude Cwise_inverse.out
-  *
-  * \sa operator/(), operator*()
-  */
-inline const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived>
-inverse() const
-{
-  return derived();
-}
-
-/** \returns an expression of the coefficient-wise square of *this.
-  *
-  * Example: \include Cwise_square.cpp
-  * Output: \verbinclude Cwise_square.out
-  *
-  * \sa operator/(), operator*(), abs2()
-  */
-inline const CwiseUnaryOp<internal::scalar_square_op<Scalar>, const Derived>
-square() const
-{
-  return derived();
-}
-
-/** \returns an expression of the coefficient-wise cube of *this.
-  *
-  * Example: \include Cwise_cube.cpp
-  * Output: \verbinclude Cwise_cube.out
-  *
-  * \sa square(), pow()
-  */
-inline const CwiseUnaryOp<internal::scalar_cube_op<Scalar>, const Derived>
-cube() const
-{
-  return derived();
-}
-
-#define EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(METHOD_NAME,FUNCTOR) \
-  inline const CwiseUnaryOp<std::binder2nd<FUNCTOR<Scalar> >, const Derived> \
-  METHOD_NAME(const Scalar& s) const { \
-    return CwiseUnaryOp<std::binder2nd<FUNCTOR<Scalar> >, const Derived> \
-            (derived(), std::bind2nd(FUNCTOR<Scalar>(), s)); \
-  }
-
-EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator==,  std::equal_to)
-EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator!=,  std::not_equal_to)
-EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator<,   std::less)
-EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator<=,  std::less_equal)
-EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator>,   std::greater)
-EIGEN_MAKE_SCALAR_CWISE_UNARY_OP(operator>=,  std::greater_equal)
-
-
diff --git a/vendor/eigen-3.1.91/Eigen/src/plugins/BlockMethods.h b/vendor/eigen-3.1.91/Eigen/src/plugins/BlockMethods.h
deleted file mode 100644
index 19a491c..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/plugins/BlockMethods.h
+++ /dev/null
@@ -1,747 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN
-
-/** \internal expression type of a column */
-typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, 1, !IsRowMajor> ColXpr;
-typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, 1, !IsRowMajor> ConstColXpr;
-/** \internal expression type of a row */
-typedef Block<Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowXpr;
-typedef const Block<const Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowXpr;
-/** \internal expression type of a block of whole columns */
-typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor> ColsBlockXpr;
-typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor> ConstColsBlockXpr;
-/** \internal expression type of a block of whole rows */
-typedef Block<Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowsBlockXpr;
-typedef const Block<const Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowsBlockXpr;
-/** \internal expression type of a block of whole columns */
-template<int N> struct NColsBlockXpr { typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type; };
-template<int N> struct ConstNColsBlockXpr { typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type; };
-/** \internal expression type of a block of whole rows */
-template<int N> struct NRowsBlockXpr { typedef Block<Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type; };
-template<int N> struct ConstNRowsBlockXpr { typedef const Block<const Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type; };
-
-typedef VectorBlock<Derived> SegmentReturnType;
-typedef const VectorBlock<const Derived> ConstSegmentReturnType;
-template<int Size> struct FixedSegmentReturnType { typedef VectorBlock<Derived, Size> Type; };
-template<int Size> struct ConstFixedSegmentReturnType { typedef const VectorBlock<const Derived, Size> Type; };
-
-#endif // not EIGEN_PARSED_BY_DOXYGEN
-
-/** \returns a dynamic-size expression of a block in *this.
-  *
-  * \param startRow the first row in the block
-  * \param startCol the first column in the block
-  * \param blockRows the number of rows in the block
-  * \param blockCols the number of columns in the block
-  *
-  * Example: \include MatrixBase_block_int_int_int_int.cpp
-  * Output: \verbinclude MatrixBase_block_int_int_int_int.out
-  *
-  * \note Even though the returned expression has dynamic size, in the case
-  * when it is applied to a fixed-size matrix, it inherits a fixed maximal size,
-  * which means that evaluating it does not cause a dynamic memory allocation.
-  *
-  * \sa class Block, block(Index,Index)
-  */
-inline Block<Derived> block(Index startRow, Index startCol, Index blockRows, Index blockCols)
-{
-  return Block<Derived>(derived(), startRow, startCol, blockRows, blockCols);
-}
-
-/** This is the const version of block(Index,Index,Index,Index). */
-inline const Block<const Derived> block(Index startRow, Index startCol, Index blockRows, Index blockCols) const
-{
-  return Block<const Derived>(derived(), startRow, startCol, blockRows, blockCols);
-}
-
-
-
-
-/** \returns a dynamic-size expression of a top-right corner of *this.
-  *
-  * \param cRows the number of rows in the corner
-  * \param cCols the number of columns in the corner
-  *
-  * Example: \include MatrixBase_topRightCorner_int_int.cpp
-  * Output: \verbinclude MatrixBase_topRightCorner_int_int.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-inline Block<Derived> topRightCorner(Index cRows, Index cCols)
-{
-  return Block<Derived>(derived(), 0, cols() - cCols, cRows, cCols);
-}
-
-/** This is the const version of topRightCorner(Index, Index).*/
-inline const Block<const Derived> topRightCorner(Index cRows, Index cCols) const
-{
-  return Block<const Derived>(derived(), 0, cols() - cCols, cRows, cCols);
-}
-
-/** \returns an expression of a fixed-size top-right corner of *this.
-  *
-  * The template parameters CRows and CCols are the number of rows and columns in the corner.
-  *
-  * Example: \include MatrixBase_template_int_int_topRightCorner.cpp
-  * Output: \verbinclude MatrixBase_template_int_int_topRightCorner.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-template<int CRows, int CCols>
-inline Block<Derived, CRows, CCols> topRightCorner()
-{
-  return Block<Derived, CRows, CCols>(derived(), 0, cols() - CCols);
-}
-
-/** This is the const version of topRightCorner<int, int>().*/
-template<int CRows, int CCols>
-inline const Block<const Derived, CRows, CCols> topRightCorner() const
-{
-  return Block<const Derived, CRows, CCols>(derived(), 0, cols() - CCols);
-}
-
-
-
-
-/** \returns a dynamic-size expression of a top-left corner of *this.
-  *
-  * \param cRows the number of rows in the corner
-  * \param cCols the number of columns in the corner
-  *
-  * Example: \include MatrixBase_topLeftCorner_int_int.cpp
-  * Output: \verbinclude MatrixBase_topLeftCorner_int_int.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-inline Block<Derived> topLeftCorner(Index cRows, Index cCols)
-{
-  return Block<Derived>(derived(), 0, 0, cRows, cCols);
-}
-
-/** This is the const version of topLeftCorner(Index, Index).*/
-inline const Block<const Derived> topLeftCorner(Index cRows, Index cCols) const
-{
-  return Block<const Derived>(derived(), 0, 0, cRows, cCols);
-}
-
-/** \returns an expression of a fixed-size top-left corner of *this.
-  *
-  * The template parameters CRows and CCols are the number of rows and columns in the corner.
-  *
-  * Example: \include MatrixBase_template_int_int_topLeftCorner.cpp
-  * Output: \verbinclude MatrixBase_template_int_int_topLeftCorner.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-template<int CRows, int CCols>
-inline Block<Derived, CRows, CCols> topLeftCorner()
-{
-  return Block<Derived, CRows, CCols>(derived(), 0, 0);
-}
-
-/** This is the const version of topLeftCorner<int, int>().*/
-template<int CRows, int CCols>
-inline const Block<const Derived, CRows, CCols> topLeftCorner() const
-{
-  return Block<const Derived, CRows, CCols>(derived(), 0, 0);
-}
-
-
-
-/** \returns a dynamic-size expression of a bottom-right corner of *this.
-  *
-  * \param cRows the number of rows in the corner
-  * \param cCols the number of columns in the corner
-  *
-  * Example: \include MatrixBase_bottomRightCorner_int_int.cpp
-  * Output: \verbinclude MatrixBase_bottomRightCorner_int_int.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-inline Block<Derived> bottomRightCorner(Index cRows, Index cCols)
-{
-  return Block<Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
-}
-
-/** This is the const version of bottomRightCorner(Index, Index).*/
-inline const Block<const Derived> bottomRightCorner(Index cRows, Index cCols) const
-{
-  return Block<const Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
-}
-
-/** \returns an expression of a fixed-size bottom-right corner of *this.
-  *
-  * The template parameters CRows and CCols are the number of rows and columns in the corner.
-  *
-  * Example: \include MatrixBase_template_int_int_bottomRightCorner.cpp
-  * Output: \verbinclude MatrixBase_template_int_int_bottomRightCorner.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-template<int CRows, int CCols>
-inline Block<Derived, CRows, CCols> bottomRightCorner()
-{
-  return Block<Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
-}
-
-/** This is the const version of bottomRightCorner<int, int>().*/
-template<int CRows, int CCols>
-inline const Block<const Derived, CRows, CCols> bottomRightCorner() const
-{
-  return Block<const Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
-}
-
-
-
-/** \returns a dynamic-size expression of a bottom-left corner of *this.
-  *
-  * \param cRows the number of rows in the corner
-  * \param cCols the number of columns in the corner
-  *
-  * Example: \include MatrixBase_bottomLeftCorner_int_int.cpp
-  * Output: \verbinclude MatrixBase_bottomLeftCorner_int_int.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-inline Block<Derived> bottomLeftCorner(Index cRows, Index cCols)
-{
-  return Block<Derived>(derived(), rows() - cRows, 0, cRows, cCols);
-}
-
-/** This is the const version of bottomLeftCorner(Index, Index).*/
-inline const Block<const Derived> bottomLeftCorner(Index cRows, Index cCols) const
-{
-  return Block<const Derived>(derived(), rows() - cRows, 0, cRows, cCols);
-}
-
-/** \returns an expression of a fixed-size bottom-left corner of *this.
-  *
-  * The template parameters CRows and CCols are the number of rows and columns in the corner.
-  *
-  * Example: \include MatrixBase_template_int_int_bottomLeftCorner.cpp
-  * Output: \verbinclude MatrixBase_template_int_int_bottomLeftCorner.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-template<int CRows, int CCols>
-inline Block<Derived, CRows, CCols> bottomLeftCorner()
-{
-  return Block<Derived, CRows, CCols>(derived(), rows() - CRows, 0);
-}
-
-/** This is the const version of bottomLeftCorner<int, int>().*/
-template<int CRows, int CCols>
-inline const Block<const Derived, CRows, CCols> bottomLeftCorner() const
-{
-  return Block<const Derived, CRows, CCols>(derived(), rows() - CRows, 0);
-}
-
-
-
-/** \returns a block consisting of the top rows of *this.
-  *
-  * \param n the number of rows in the block
-  *
-  * Example: \include MatrixBase_topRows_int.cpp
-  * Output: \verbinclude MatrixBase_topRows_int.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-inline RowsBlockXpr topRows(Index n)
-{
-  return RowsBlockXpr(derived(), 0, 0, n, cols());
-}
-
-/** This is the const version of topRows(Index).*/
-inline ConstRowsBlockXpr topRows(Index n) const
-{
-  return ConstRowsBlockXpr(derived(), 0, 0, n, cols());
-}
-
-/** \returns a block consisting of the top rows of *this.
-  *
-  * \tparam N the number of rows in the block
-  *
-  * Example: \include MatrixBase_template_int_topRows.cpp
-  * Output: \verbinclude MatrixBase_template_int_topRows.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-template<int N>
-inline typename NRowsBlockXpr<N>::Type topRows()
-{
-  return typename NRowsBlockXpr<N>::Type(derived(), 0, 0, N, cols());
-}
-
-/** This is the const version of topRows<int>().*/
-template<int N>
-inline typename ConstNRowsBlockXpr<N>::Type topRows() const
-{
-  return typename ConstNRowsBlockXpr<N>::Type(derived(), 0, 0, N, cols());
-}
-
-
-
-/** \returns a block consisting of the bottom rows of *this.
-  *
-  * \param n the number of rows in the block
-  *
-  * Example: \include MatrixBase_bottomRows_int.cpp
-  * Output: \verbinclude MatrixBase_bottomRows_int.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-inline RowsBlockXpr bottomRows(Index n)
-{
-  return RowsBlockXpr(derived(), rows() - n, 0, n, cols());
-}
-
-/** This is the const version of bottomRows(Index).*/
-inline ConstRowsBlockXpr bottomRows(Index n) const
-{
-  return ConstRowsBlockXpr(derived(), rows() - n, 0, n, cols());
-}
-
-/** \returns a block consisting of the bottom rows of *this.
-  *
-  * \tparam N the number of rows in the block
-  *
-  * Example: \include MatrixBase_template_int_bottomRows.cpp
-  * Output: \verbinclude MatrixBase_template_int_bottomRows.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-template<int N>
-inline typename NRowsBlockXpr<N>::Type bottomRows()
-{
-  return typename NRowsBlockXpr<N>::Type(derived(), rows() - N, 0, N, cols());
-}
-
-/** This is the const version of bottomRows<int>().*/
-template<int N>
-inline typename ConstNRowsBlockXpr<N>::Type bottomRows() const
-{
-  return typename ConstNRowsBlockXpr<N>::Type(derived(), rows() - N, 0, N, cols());
-}
-
-
-
-/** \returns a block consisting of a range of rows of *this.
-  *
-  * \param startRow the index of the first row in the block
-  * \param numRows the number of rows in the block
-  *
-  * Example: \include DenseBase_middleRows_int.cpp
-  * Output: \verbinclude DenseBase_middleRows_int.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-inline RowsBlockXpr middleRows(Index startRow, Index numRows)
-{
-  return RowsBlockXpr(derived(), startRow, 0, numRows, cols());
-}
-
-/** This is the const version of middleRows(Index,Index).*/
-inline ConstRowsBlockXpr middleRows(Index startRow, Index numRows) const
-{
-  return ConstRowsBlockXpr(derived(), startRow, 0, numRows, cols());
-}
-
-/** \returns a block consisting of a range of rows of *this.
-  *
-  * \tparam N the number of rows in the block
-  * \param startRow the index of the first row in the block
-  *
-  * Example: \include DenseBase_template_int_middleRows.cpp
-  * Output: \verbinclude DenseBase_template_int_middleRows.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-template<int N>
-inline typename NRowsBlockXpr<N>::Type middleRows(Index startRow)
-{
-  return typename NRowsBlockXpr<N>::Type(derived(), startRow, 0, N, cols());
-}
-
-/** This is the const version of middleRows<int>().*/
-template<int N>
-inline typename ConstNRowsBlockXpr<N>::Type middleRows(Index startRow) const
-{
-  return typename ConstNRowsBlockXpr<N>::Type(derived(), startRow, 0, N, cols());
-}
-
-
-
-/** \returns a block consisting of the left columns of *this.
-  *
-  * \param n the number of columns in the block
-  *
-  * Example: \include MatrixBase_leftCols_int.cpp
-  * Output: \verbinclude MatrixBase_leftCols_int.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-inline ColsBlockXpr leftCols(Index n)
-{
-  return ColsBlockXpr(derived(), 0, 0, rows(), n);
-}
-
-/** This is the const version of leftCols(Index).*/
-inline ConstColsBlockXpr leftCols(Index n) const
-{
-  return ConstColsBlockXpr(derived(), 0, 0, rows(), n);
-}
-
-/** \returns a block consisting of the left columns of *this.
-  *
-  * \tparam N the number of columns in the block
-  *
-  * Example: \include MatrixBase_template_int_leftCols.cpp
-  * Output: \verbinclude MatrixBase_template_int_leftCols.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-template<int N>
-inline typename NColsBlockXpr<N>::Type leftCols()
-{
-  return typename NColsBlockXpr<N>::Type(derived(), 0, 0, rows(), N);
-}
-
-/** This is the const version of leftCols<int>().*/
-template<int N>
-inline typename ConstNColsBlockXpr<N>::Type leftCols() const
-{
-  return typename ConstNColsBlockXpr<N>::Type(derived(), 0, 0, rows(), N);
-}
-
-
-
-/** \returns a block consisting of the right columns of *this.
-  *
-  * \param n the number of columns in the block
-  *
-  * Example: \include MatrixBase_rightCols_int.cpp
-  * Output: \verbinclude MatrixBase_rightCols_int.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-inline ColsBlockXpr rightCols(Index n)
-{
-  return ColsBlockXpr(derived(), 0, cols() - n, rows(), n);
-}
-
-/** This is the const version of rightCols(Index).*/
-inline ConstColsBlockXpr rightCols(Index n) const
-{
-  return ConstColsBlockXpr(derived(), 0, cols() - n, rows(), n);
-}
-
-/** \returns a block consisting of the right columns of *this.
-  *
-  * \tparam N the number of columns in the block
-  *
-  * Example: \include MatrixBase_template_int_rightCols.cpp
-  * Output: \verbinclude MatrixBase_template_int_rightCols.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-template<int N>
-inline typename NColsBlockXpr<N>::Type rightCols()
-{
-  return typename NColsBlockXpr<N>::Type(derived(), 0, cols() - N, rows(), N);
-}
-
-/** This is the const version of rightCols<int>().*/
-template<int N>
-inline typename ConstNColsBlockXpr<N>::Type rightCols() const
-{
-  return typename ConstNColsBlockXpr<N>::Type(derived(), 0, cols() - N, rows(), N);
-}
-
-
-
-/** \returns a block consisting of a range of columns of *this.
-  *
-  * \param startCol the index of the first column in the block
-  * \param numCols the number of columns in the block
-  *
-  * Example: \include DenseBase_middleCols_int.cpp
-  * Output: \verbinclude DenseBase_middleCols_int.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-inline ColsBlockXpr middleCols(Index startCol, Index numCols)
-{
-  return ColsBlockXpr(derived(), 0, startCol, rows(), numCols);
-}
-
-/** This is the const version of middleCols(Index,Index).*/
-inline ConstColsBlockXpr middleCols(Index startCol, Index numCols) const
-{
-  return ConstColsBlockXpr(derived(), 0, startCol, rows(), numCols);
-}
-
-/** \returns a block consisting of a range of columns of *this.
-  *
-  * \tparam N the number of columns in the block
-  * \param startCol the index of the first column in the block
-  *
-  * Example: \include DenseBase_template_int_middleCols.cpp
-  * Output: \verbinclude DenseBase_template_int_middleCols.out
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-template<int N>
-inline typename NColsBlockXpr<N>::Type middleCols(Index startCol)
-{
-  return typename NColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), N);
-}
-
-/** This is the const version of middleCols<int>().*/
-template<int N>
-inline typename ConstNColsBlockXpr<N>::Type middleCols(Index startCol) const
-{
-  return typename ConstNColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), N);
-}
-
-
-
-/** \returns a fixed-size expression of a block in *this.
-  *
-  * The template parameters \a BlockRows and \a BlockCols are the number of
-  * rows and columns in the block.
-  *
-  * \param startRow the first row in the block
-  * \param startCol the first column in the block
-  *
-  * Example: \include MatrixBase_block_int_int.cpp
-  * Output: \verbinclude MatrixBase_block_int_int.out
-  *
-  * \note since block is a templated member, the keyword template has to be used
-  * if the matrix type is also a template parameter: \code m.template block<3,3>(1,1); \endcode
-  *
-  * \sa class Block, block(Index,Index,Index,Index)
-  */
-template<int BlockRows, int BlockCols>
-inline Block<Derived, BlockRows, BlockCols> block(Index startRow, Index startCol)
-{
-  return Block<Derived, BlockRows, BlockCols>(derived(), startRow, startCol);
-}
-
-/** This is the const version of block<>(Index, Index). */
-template<int BlockRows, int BlockCols>
-inline const Block<const Derived, BlockRows, BlockCols> block(Index startRow, Index startCol) const
-{
-  return Block<const Derived, BlockRows, BlockCols>(derived(), startRow, startCol);
-}
-
-/** \returns an expression of the \a i-th column of *this. Note that the numbering starts at 0.
-  *
-  * Example: \include MatrixBase_col.cpp
-  * Output: \verbinclude MatrixBase_col.out
-  *
-  * \sa row(), class Block */
-inline ColXpr col(Index i)
-{
-  return ColXpr(derived(), i);
-}
-
-/** This is the const version of col(). */
-inline ConstColXpr col(Index i) const
-{
-  return ConstColXpr(derived(), i);
-}
-
-/** \returns an expression of the \a i-th row of *this. Note that the numbering starts at 0.
-  *
-  * Example: \include MatrixBase_row.cpp
-  * Output: \verbinclude MatrixBase_row.out
-  *
-  * \sa col(), class Block */
-inline RowXpr row(Index i)
-{
-  return RowXpr(derived(), i);
-}
-
-/** This is the const version of row(). */
-inline ConstRowXpr row(Index i) const
-{
-  return ConstRowXpr(derived(), i);
-}
-
-/** \returns a dynamic-size expression of a segment (i.e. a vector block) in *this.
-  *
-  * \only_for_vectors
-  *
-  * \param start the first coefficient in the segment
-  * \param vecSize the number of coefficients in the segment
-  *
-  * Example: \include MatrixBase_segment_int_int.cpp
-  * Output: \verbinclude MatrixBase_segment_int_int.out
-  *
-  * \note Even though the returned expression has dynamic size, in the case
-  * when it is applied to a fixed-size vector, it inherits a fixed maximal size,
-  * which means that evaluating it does not cause a dynamic memory allocation.
-  *
-  * \sa class Block, segment(Index)
-  */
-inline SegmentReturnType segment(Index start, Index vecSize)
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  return SegmentReturnType(derived(), start, vecSize);
-}
-
-
-/** This is the const version of segment(Index,Index).*/
-inline ConstSegmentReturnType segment(Index start, Index vecSize) const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  return ConstSegmentReturnType(derived(), start, vecSize);
-}
-
-/** \returns a dynamic-size expression of the first coefficients of *this.
-  *
-  * \only_for_vectors
-  *
-  * \param vecSize the number of coefficients in the block
-  *
-  * Example: \include MatrixBase_start_int.cpp
-  * Output: \verbinclude MatrixBase_start_int.out
-  *
-  * \note Even though the returned expression has dynamic size, in the case
-  * when it is applied to a fixed-size vector, it inherits a fixed maximal size,
-  * which means that evaluating it does not cause a dynamic memory allocation.
-  *
-  * \sa class Block, block(Index,Index)
-  */
-inline SegmentReturnType head(Index vecSize)
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  return SegmentReturnType(derived(), 0, vecSize);
-}
-
-/** This is the const version of head(Index).*/
-inline ConstSegmentReturnType
-  head(Index vecSize) const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  return ConstSegmentReturnType(derived(), 0, vecSize);
-}
-
-/** \returns a dynamic-size expression of the last coefficients of *this.
-  *
-  * \only_for_vectors
-  *
-  * \param vecSize the number of coefficients in the block
-  *
-  * Example: \include MatrixBase_end_int.cpp
-  * Output: \verbinclude MatrixBase_end_int.out
-  *
-  * \note Even though the returned expression has dynamic size, in the case
-  * when it is applied to a fixed-size vector, it inherits a fixed maximal size,
-  * which means that evaluating it does not cause a dynamic memory allocation.
-  *
-  * \sa class Block, block(Index,Index)
-  */
-inline SegmentReturnType tail(Index vecSize)
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  return SegmentReturnType(derived(), this->size() - vecSize, vecSize);
-}
-
-/** This is the const version of tail(Index).*/
-inline ConstSegmentReturnType tail(Index vecSize) const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  return ConstSegmentReturnType(derived(), this->size() - vecSize, vecSize);
-}
-
-/** \returns a fixed-size expression of a segment (i.e. a vector block) in \c *this
-  *
-  * \only_for_vectors
-  *
-  * The template parameter \a Size is the number of coefficients in the block
-  *
-  * \param start the index of the first element of the sub-vector
-  *
-  * Example: \include MatrixBase_template_int_segment.cpp
-  * Output: \verbinclude MatrixBase_template_int_segment.out
-  *
-  * \sa class Block
-  */
-template<int Size>
-inline typename FixedSegmentReturnType<Size>::Type segment(Index start)
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  return typename FixedSegmentReturnType<Size>::Type(derived(), start);
-}
-
-/** This is the const version of segment<int>(Index).*/
-template<int Size>
-inline typename ConstFixedSegmentReturnType<Size>::Type segment(Index start) const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  return typename ConstFixedSegmentReturnType<Size>::Type(derived(), start);
-}
-
-/** \returns a fixed-size expression of the first coefficients of *this.
-  *
-  * \only_for_vectors
-  *
-  * The template parameter \a Size is the number of coefficients in the block
-  *
-  * Example: \include MatrixBase_template_int_start.cpp
-  * Output: \verbinclude MatrixBase_template_int_start.out
-  *
-  * \sa class Block
-  */
-template<int Size>
-inline typename FixedSegmentReturnType<Size>::Type head()
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  return typename FixedSegmentReturnType<Size>::Type(derived(), 0);
-}
-
-/** This is the const version of head<int>().*/
-template<int Size>
-inline typename ConstFixedSegmentReturnType<Size>::Type head() const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  return typename ConstFixedSegmentReturnType<Size>::Type(derived(), 0);
-}
-
-/** \returns a fixed-size expression of the last coefficients of *this.
-  *
-  * \only_for_vectors
-  *
-  * The template parameter \a Size is the number of coefficients in the block
-  *
-  * Example: \include MatrixBase_template_int_end.cpp
-  * Output: \verbinclude MatrixBase_template_int_end.out
-  *
-  * \sa class Block
-  */
-template<int Size>
-inline typename FixedSegmentReturnType<Size>::Type tail()
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  return typename FixedSegmentReturnType<Size>::Type(derived(), size() - Size);
-}
-
-/** This is the const version of tail<int>.*/
-template<int Size>
-inline typename ConstFixedSegmentReturnType<Size>::Type tail() const
-{
-  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
-  return typename ConstFixedSegmentReturnType<Size>::Type(derived(), size() - Size);
-}
diff --git a/vendor/eigen-3.1.91/Eigen/src/plugins/MatrixCwiseBinaryOps.h b/vendor/eigen-3.1.91/Eigen/src/plugins/MatrixCwiseBinaryOps.h
deleted file mode 100644
index 3a737df..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/plugins/MatrixCwiseBinaryOps.h
+++ /dev/null
@@ -1,126 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-// This file is a base class plugin containing matrix specifics coefficient wise functions.
-
-/** \returns an expression of the Schur product (coefficient wise product) of *this and \a other
-  *
-  * Example: \include MatrixBase_cwiseProduct.cpp
-  * Output: \verbinclude MatrixBase_cwiseProduct.out
-  *
-  * \sa class CwiseBinaryOp, cwiseAbs2
-  */
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE const EIGEN_CWISE_PRODUCT_RETURN_TYPE(Derived,OtherDerived)
-cwiseProduct(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
-{
-  return EIGEN_CWISE_PRODUCT_RETURN_TYPE(Derived,OtherDerived)(derived(), other.derived());
-}
-
-/** \returns an expression of the coefficient-wise == operator of *this and \a other
-  *
-  * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
-  * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
-  * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
-  * isMuchSmallerThan().
-  *
-  * Example: \include MatrixBase_cwiseEqual.cpp
-  * Output: \verbinclude MatrixBase_cwiseEqual.out
-  *
-  * \sa cwiseNotEqual(), isApprox(), isMuchSmallerThan()
-  */
-template<typename OtherDerived>
-inline const CwiseBinaryOp<std::equal_to<Scalar>, const Derived, const OtherDerived>
-cwiseEqual(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
-{
-  return CwiseBinaryOp<std::equal_to<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
-}
-
-/** \returns an expression of the coefficient-wise != operator of *this and \a other
-  *
-  * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
-  * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
-  * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
-  * isMuchSmallerThan().
-  *
-  * Example: \include MatrixBase_cwiseNotEqual.cpp
-  * Output: \verbinclude MatrixBase_cwiseNotEqual.out
-  *
-  * \sa cwiseEqual(), isApprox(), isMuchSmallerThan()
-  */
-template<typename OtherDerived>
-inline const CwiseBinaryOp<std::not_equal_to<Scalar>, const Derived, const OtherDerived>
-cwiseNotEqual(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
-{
-  return CwiseBinaryOp<std::not_equal_to<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
-}
-
-/** \returns an expression of the coefficient-wise min of *this and \a other
-  *
-  * Example: \include MatrixBase_cwiseMin.cpp
-  * Output: \verbinclude MatrixBase_cwiseMin.out
-  *
-  * \sa class CwiseBinaryOp, max()
-  */
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived, const OtherDerived>
-cwiseMin(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
-{
-  return CwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
-}
-
-/** \returns an expression of the coefficient-wise min of *this and scalar \a other
-  *
-  * \sa class CwiseBinaryOp, min()
-  */
-EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived, const ConstantReturnType>
-cwiseMin(const Scalar &other) const
-{
-  return cwiseMin(Derived::PlainObject::Constant(rows(), cols(), other));
-}
-
-/** \returns an expression of the coefficient-wise max of *this and \a other
-  *
-  * Example: \include MatrixBase_cwiseMax.cpp
-  * Output: \verbinclude MatrixBase_cwiseMax.out
-  *
-  * \sa class CwiseBinaryOp, min()
-  */
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived, const OtherDerived>
-cwiseMax(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
-{
-  return CwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
-}
-
-/** \returns an expression of the coefficient-wise max of *this and scalar \a other
-  *
-  * \sa class CwiseBinaryOp, min()
-  */
-EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived, const ConstantReturnType>
-cwiseMax(const Scalar &other) const
-{
-  return cwiseMax(Derived::PlainObject::Constant(rows(), cols(), other));
-}
-
-
-/** \returns an expression of the coefficient-wise quotient of *this and \a other
-  *
-  * Example: \include MatrixBase_cwiseQuotient.cpp
-  * Output: \verbinclude MatrixBase_cwiseQuotient.out
-  *
-  * \sa class CwiseBinaryOp, cwiseProduct(), cwiseInverse()
-  */
-template<typename OtherDerived>
-EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived>
-cwiseQuotient(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
-{
-  return CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
-}
diff --git a/vendor/eigen-3.1.91/Eigen/src/plugins/MatrixCwiseUnaryOps.h b/vendor/eigen-3.1.91/Eigen/src/plugins/MatrixCwiseUnaryOps.h
deleted file mode 100644
index 0cf0640..0000000
--- a/vendor/eigen-3.1.91/Eigen/src/plugins/MatrixCwiseUnaryOps.h
+++ /dev/null
@@ -1,67 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
-// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-// This file is a base class plugin containing matrix specifics coefficient wise functions.
-
-/** \returns an expression of the coefficient-wise absolute value of \c *this
-  *
-  * Example: \include MatrixBase_cwiseAbs.cpp
-  * Output: \verbinclude MatrixBase_cwiseAbs.out
-  *
-  * \sa cwiseAbs2()
-  */
-EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived>
-cwiseAbs() const { return derived(); }
-
-/** \returns an expression of the coefficient-wise squared absolute value of \c *this
-  *
-  * Example: \include MatrixBase_cwiseAbs2.cpp
-  * Output: \verbinclude MatrixBase_cwiseAbs2.out
-  *
-  * \sa cwiseAbs()
-  */
-EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived>
-cwiseAbs2() const { return derived(); }
-
-/** \returns an expression of the coefficient-wise square root of *this.
-  *
-  * Example: \include MatrixBase_cwiseSqrt.cpp
-  * Output: \verbinclude MatrixBase_cwiseSqrt.out
-  *
-  * \sa cwisePow(), cwiseSquare()
-  */
-inline const CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived>
-cwiseSqrt() const { return derived(); }
-
-/** \returns an expression of the coefficient-wise inverse of *this.
-  *
-  * Example: \include MatrixBase_cwiseInverse.cpp
-  * Output: \verbinclude MatrixBase_cwiseInverse.out
-  *
-  * \sa cwiseProduct()
-  */
-inline const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived>
-cwiseInverse() const { return derived(); }
-
-/** \returns an expression of the coefficient-wise == operator of \c *this and a scalar \a s
-  *
-  * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
-  * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
-  * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
-  * isMuchSmallerThan().
-  *
-  * \sa cwiseEqual(const MatrixBase<OtherDerived> &) const
-  */
-inline const CwiseUnaryOp<std::binder1st<std::equal_to<Scalar> >, const Derived>
-cwiseEqual(const Scalar& s) const
-{
-  return CwiseUnaryOp<std::binder1st<std::equal_to<Scalar> >,const Derived>
-          (derived(), std::bind1st(std::equal_to<Scalar>(), s));
-}
diff --git a/vendor/eigen-3.1.91/Eigen/Array b/vendor/eigen-3.2.8/Eigen/Array
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/Array
rename to vendor/eigen-3.2.8/Eigen/Array
diff --git a/vendor/eigen-3.1.91/Eigen/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/CMakeLists.txt
diff --git a/vendor/eigen-3.1.91/Eigen/Cholesky b/vendor/eigen-3.2.8/Eigen/Cholesky
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/Cholesky
rename to vendor/eigen-3.2.8/Eigen/Cholesky
diff --git a/vendor/eigen-3.2.8/Eigen/CholmodSupport b/vendor/eigen-3.2.8/Eigen/CholmodSupport
new file mode 100644
index 0000000..88c29a6
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/CholmodSupport
@@ -0,0 +1,45 @@
+#ifndef EIGEN_CHOLMODSUPPORT_MODULE_H
+#define EIGEN_CHOLMODSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+extern "C" {
+  #include <cholmod.h>
+}
+
+/** \ingroup Support_modules
+  * \defgroup CholmodSupport_Module CholmodSupport module
+  *
+  * This module provides an interface to the Cholmod library which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
+  * It provides the two following main factorization classes:
+  * - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization.
+  * - class CholmodDecomposiiton: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of the underlying factorization method (supernodal or simplicial).
+  *
+  * For the sake of completeness, this module also propose the two following classes:
+  * - class CholmodSimplicialLLT
+  * - class CholmodSimplicialLDLT
+  * Note that these classes does not bring any particular advantage compared to the built-in
+  * SimplicialLLT and SimplicialLDLT factorization classes.
+  *
+  * \code
+  * #include <Eigen/CholmodSupport>
+  * \endcode
+  *
+  * In order to use this module, the cholmod headers must be accessible from the include paths, and your binary must be linked to the cholmod library and its dependencies.
+  * The dependencies depend on how cholmod has been compiled.
+  * For a cmake based project, you can use our FindCholmod.cmake module to help you in this task.
+  *
+  */
+
+#include "src/misc/Solve.h"
+#include "src/misc/SparseSolve.h"
+
+#include "src/CholmodSupport/CholmodSupport.h"
+
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_CHOLMODSUPPORT_MODULE_H
+
diff --git a/vendor/eigen-3.2.8/Eigen/Core b/vendor/eigen-3.2.8/Eigen/Core
new file mode 100644
index 0000000..509c529
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/Core
@@ -0,0 +1,376 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2007-2011 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CORE_H
+#define EIGEN_CORE_H
+
+// first thing Eigen does: stop the compiler from committing suicide
+#include "src/Core/util/DisableStupidWarnings.h"
+
+// then include this file where all our macros are defined. It's really important to do it first because
+// it's where we do all the alignment settings (platform detection and honoring the user's will if he
+// defined e.g. EIGEN_DONT_ALIGN) so it needs to be done before we do anything with vectorization.
+#include "src/Core/util/Macros.h"
+
+// Disable the ipa-cp-clone optimization flag with MinGW 6.x or newer (enabled by default with -O3)
+// See http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556 for details.
+#if defined(__MINGW32__) && EIGEN_GNUC_AT_LEAST(4,6)
+  #pragma GCC optimize ("-fno-ipa-cp-clone")
+#endif
+
+#include <complex>
+
+// this include file manages BLAS and MKL related macros
+// and inclusion of their respective header files
+#include "src/Core/util/MKL_support.h"
+
+// if alignment is disabled, then disable vectorization. Note: EIGEN_ALIGN is the proper check, it takes into
+// account both the user's will (EIGEN_DONT_ALIGN) and our own platform checks
+#if !EIGEN_ALIGN
+  #ifndef EIGEN_DONT_VECTORIZE
+    #define EIGEN_DONT_VECTORIZE
+  #endif
+#endif
+
+#ifdef _MSC_VER
+  #include <malloc.h> // for _aligned_malloc -- need it regardless of whether vectorization is enabled
+  #if (_MSC_VER >= 1500) // 2008 or later
+    // Remember that usage of defined() in a #define is undefined by the standard.
+    // a user reported that in 64-bit mode, MSVC doesn't care to define _M_IX86_FP.
+    #if (defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) || defined(_M_X64)
+      #define EIGEN_SSE2_ON_MSVC_2008_OR_LATER
+    #endif
+  #endif
+#else
+  // Remember that usage of defined() in a #define is undefined by the standard
+  #if (defined __SSE2__) && ( (!defined __GNUC__) || (defined __INTEL_COMPILER) || EIGEN_GNUC_AT_LEAST(4,2) )
+    #define EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC
+  #endif
+#endif
+
+#ifndef EIGEN_DONT_VECTORIZE
+
+  #if defined (EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC) || defined(EIGEN_SSE2_ON_MSVC_2008_OR_LATER)
+
+    // Defines symbols for compile-time detection of which instructions are
+    // used.
+    // EIGEN_VECTORIZE_YY is defined if and only if the instruction set YY is used
+    #define EIGEN_VECTORIZE
+    #define EIGEN_VECTORIZE_SSE
+    #define EIGEN_VECTORIZE_SSE2
+
+    // Detect sse3/ssse3/sse4:
+    // gcc and icc defines __SSE3__, ...
+    // there is no way to know about this on msvc. You can define EIGEN_VECTORIZE_SSE* if you
+    // want to force the use of those instructions with msvc.
+    #ifdef __SSE3__
+      #define EIGEN_VECTORIZE_SSE3
+    #endif
+    #ifdef __SSSE3__
+      #define EIGEN_VECTORIZE_SSSE3
+    #endif
+    #ifdef __SSE4_1__
+      #define EIGEN_VECTORIZE_SSE4_1
+    #endif
+    #ifdef __SSE4_2__
+      #define EIGEN_VECTORIZE_SSE4_2
+    #endif
+
+    // include files
+
+    // This extern "C" works around a MINGW-w64 compilation issue
+    // https://sourceforge.net/tracker/index.php?func=detail&aid=3018394&group_id=202880&atid=983354
+    // In essence, intrin.h is included by windows.h and also declares intrinsics (just as emmintrin.h etc. below do).
+    // However, intrin.h uses an extern "C" declaration, and g++ thus complains of duplicate declarations
+    // with conflicting linkage.  The linkage for intrinsics doesn't matter, but at that stage the compiler doesn't know;
+    // so, to avoid compile errors when windows.h is included after Eigen/Core, ensure intrinsics are extern "C" here too.
+    // notice that since these are C headers, the extern "C" is theoretically needed anyways.
+    extern "C" {
+      // In theory we should only include immintrin.h and not the other *mmintrin.h header files directly.
+      // Doing so triggers some issues with ICC. However old gcc versions seems to not have this file, thus:
+      #if defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 1110
+        #include <immintrin.h>
+      #else
+        #include <emmintrin.h>
+        #include <xmmintrin.h>
+        #ifdef  EIGEN_VECTORIZE_SSE3
+        #include <pmmintrin.h>
+        #endif
+        #ifdef EIGEN_VECTORIZE_SSSE3
+        #include <tmmintrin.h>
+        #endif
+        #ifdef EIGEN_VECTORIZE_SSE4_1
+        #include <smmintrin.h>
+        #endif
+        #ifdef EIGEN_VECTORIZE_SSE4_2
+        #include <nmmintrin.h>
+        #endif
+      #endif
+    } // end extern "C"
+  #elif defined __ALTIVEC__
+    #define EIGEN_VECTORIZE
+    #define EIGEN_VECTORIZE_ALTIVEC
+    #include <altivec.h>
+    // We need to #undef all these ugly tokens defined in <altivec.h>
+    // => use __vector instead of vector
+    #undef bool
+    #undef vector
+    #undef pixel
+  #elif defined  __ARM_NEON
+    #define EIGEN_VECTORIZE
+    #define EIGEN_VECTORIZE_NEON
+    #include <arm_neon.h>
+  #endif
+#endif
+
+#if (defined _OPENMP) && (!defined EIGEN_DONT_PARALLELIZE)
+  #define EIGEN_HAS_OPENMP
+#endif
+
+#ifdef EIGEN_HAS_OPENMP
+#include <omp.h>
+#endif
+
+// MSVC for windows mobile does not have the errno.h file
+#if !(defined(_MSC_VER) && defined(_WIN32_WCE)) && !defined(__ARMCC_VERSION)
+#define EIGEN_HAS_ERRNO
+#endif
+
+#ifdef EIGEN_HAS_ERRNO
+#include <cerrno>
+#endif
+#include <cstddef>
+#include <cstdlib>
+#include <cmath>
+#include <cassert>
+#include <functional>
+#include <iosfwd>
+#include <cstring>
+#include <string>
+#include <limits>
+#include <climits> // for CHAR_BIT
+// for min/max:
+#include <algorithm>
+
+// for outputting debug info
+#ifdef EIGEN_DEBUG_ASSIGN
+#include <iostream>
+#endif
+
+// required for __cpuid, needs to be included after cmath
+#if defined(_MSC_VER) && (defined(_M_IX86)||defined(_M_X64)) && (!defined(_WIN32_WCE))
+  #include <intrin.h>
+#endif
+
+#if defined(_CPPUNWIND) || defined(__EXCEPTIONS)
+  #define EIGEN_EXCEPTIONS
+#endif
+
+#ifdef EIGEN_EXCEPTIONS
+  #include <new>
+#endif
+
+/** \brief Namespace containing all symbols from the %Eigen library. */
+namespace Eigen {
+
+inline static const char *SimdInstructionSetsInUse(void) {
+#if defined(EIGEN_VECTORIZE_SSE4_2)
+  return "SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2";
+#elif defined(EIGEN_VECTORIZE_SSE4_1)
+  return "SSE, SSE2, SSE3, SSSE3, SSE4.1";
+#elif defined(EIGEN_VECTORIZE_SSSE3)
+  return "SSE, SSE2, SSE3, SSSE3";
+#elif defined(EIGEN_VECTORIZE_SSE3)
+  return "SSE, SSE2, SSE3";
+#elif defined(EIGEN_VECTORIZE_SSE2)
+  return "SSE, SSE2";
+#elif defined(EIGEN_VECTORIZE_ALTIVEC)
+  return "AltiVec";
+#elif defined(EIGEN_VECTORIZE_NEON)
+  return "ARM NEON";
+#else
+  return "None";
+#endif
+}
+
+} // end namespace Eigen
+
+#define STAGE10_FULL_EIGEN2_API             10
+#define STAGE20_RESOLVE_API_CONFLICTS       20
+#define STAGE30_FULL_EIGEN3_API             30
+#define STAGE40_FULL_EIGEN3_STRICTNESS      40
+#define STAGE99_NO_EIGEN2_SUPPORT           99
+
+#if   defined EIGEN2_SUPPORT_STAGE40_FULL_EIGEN3_STRICTNESS
+  #define EIGEN2_SUPPORT
+  #define EIGEN2_SUPPORT_STAGE STAGE40_FULL_EIGEN3_STRICTNESS
+#elif defined EIGEN2_SUPPORT_STAGE30_FULL_EIGEN3_API
+  #define EIGEN2_SUPPORT
+  #define EIGEN2_SUPPORT_STAGE STAGE30_FULL_EIGEN3_API
+#elif defined EIGEN2_SUPPORT_STAGE20_RESOLVE_API_CONFLICTS
+  #define EIGEN2_SUPPORT
+  #define EIGEN2_SUPPORT_STAGE STAGE20_RESOLVE_API_CONFLICTS
+#elif defined EIGEN2_SUPPORT_STAGE10_FULL_EIGEN2_API
+  #define EIGEN2_SUPPORT
+  #define EIGEN2_SUPPORT_STAGE STAGE10_FULL_EIGEN2_API
+#elif defined EIGEN2_SUPPORT
+  // default to stage 3, that's what it's always meant
+  #define EIGEN2_SUPPORT_STAGE30_FULL_EIGEN3_API
+  #define EIGEN2_SUPPORT_STAGE STAGE30_FULL_EIGEN3_API
+#else
+  #define EIGEN2_SUPPORT_STAGE STAGE99_NO_EIGEN2_SUPPORT
+#endif
+
+#ifdef EIGEN2_SUPPORT
+#undef minor
+#endif
+
+// we use size_t frequently and we'll never remember to prepend it with std:: everytime just to
+// ensure QNX/QCC support
+using std::size_t;
+// gcc 4.6.0 wants std:: for ptrdiff_t 
+using std::ptrdiff_t;
+
+/** \defgroup Core_Module Core module
+  * This is the main module of Eigen providing dense matrix and vector support
+  * (both fixed and dynamic size) with all the features corresponding to a BLAS library
+  * and much more...
+  *
+  * \code
+  * #include <Eigen/Core>
+  * \endcode
+  */
+
+#include "src/Core/util/Constants.h"
+#include "src/Core/util/ForwardDeclarations.h"
+#include "src/Core/util/Meta.h"
+#include "src/Core/util/StaticAssert.h"
+#include "src/Core/util/XprHelper.h"
+#include "src/Core/util/Memory.h"
+
+#include "src/Core/NumTraits.h"
+#include "src/Core/MathFunctions.h"
+#include "src/Core/GenericPacketMath.h"
+
+#if defined EIGEN_VECTORIZE_SSE
+  #include "src/Core/arch/SSE/PacketMath.h"
+  #include "src/Core/arch/SSE/MathFunctions.h"
+  #include "src/Core/arch/SSE/Complex.h"
+#elif defined EIGEN_VECTORIZE_ALTIVEC
+  #include "src/Core/arch/AltiVec/PacketMath.h"
+  #include "src/Core/arch/AltiVec/Complex.h"
+#elif defined EIGEN_VECTORIZE_NEON
+  #include "src/Core/arch/NEON/PacketMath.h"
+  #include "src/Core/arch/NEON/Complex.h"
+#endif
+
+#include "src/Core/arch/Default/Settings.h"
+
+#include "src/Core/Functors.h"
+#include "src/Core/DenseCoeffsBase.h"
+#include "src/Core/DenseBase.h"
+#include "src/Core/MatrixBase.h"
+#include "src/Core/EigenBase.h"
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN // work around Doxygen bug triggered by Assign.h r814874
+                                // at least confirmed with Doxygen 1.5.5 and 1.5.6
+  #include "src/Core/Assign.h"
+#endif
+
+#include "src/Core/util/BlasUtil.h"
+#include "src/Core/DenseStorage.h"
+#include "src/Core/NestByValue.h"
+#include "src/Core/ForceAlignedAccess.h"
+#include "src/Core/ReturnByValue.h"
+#include "src/Core/NoAlias.h"
+#include "src/Core/PlainObjectBase.h"
+#include "src/Core/Matrix.h"
+#include "src/Core/Array.h"
+#include "src/Core/CwiseBinaryOp.h"
+#include "src/Core/CwiseUnaryOp.h"
+#include "src/Core/CwiseNullaryOp.h"
+#include "src/Core/CwiseUnaryView.h"
+#include "src/Core/SelfCwiseBinaryOp.h"
+#include "src/Core/Dot.h"
+#include "src/Core/StableNorm.h"
+#include "src/Core/MapBase.h"
+#include "src/Core/Stride.h"
+#include "src/Core/Map.h"
+#include "src/Core/Block.h"
+#include "src/Core/VectorBlock.h"
+#include "src/Core/Ref.h"
+#include "src/Core/Transpose.h"
+#include "src/Core/DiagonalMatrix.h"
+#include "src/Core/Diagonal.h"
+#include "src/Core/DiagonalProduct.h"
+#include "src/Core/PermutationMatrix.h"
+#include "src/Core/Transpositions.h"
+#include "src/Core/Redux.h"
+#include "src/Core/Visitor.h"
+#include "src/Core/Fuzzy.h"
+#include "src/Core/IO.h"
+#include "src/Core/Swap.h"
+#include "src/Core/CommaInitializer.h"
+#include "src/Core/Flagged.h"
+#include "src/Core/ProductBase.h"
+#include "src/Core/GeneralProduct.h"
+#include "src/Core/TriangularMatrix.h"
+#include "src/Core/SelfAdjointView.h"
+#include "src/Core/products/GeneralBlockPanelKernel.h"
+#include "src/Core/products/Parallelizer.h"
+#include "src/Core/products/CoeffBasedProduct.h"
+#include "src/Core/products/GeneralMatrixVector.h"
+#include "src/Core/products/GeneralMatrixMatrix.h"
+#include "src/Core/SolveTriangular.h"
+#include "src/Core/products/GeneralMatrixMatrixTriangular.h"
+#include "src/Core/products/SelfadjointMatrixVector.h"
+#include "src/Core/products/SelfadjointMatrixMatrix.h"
+#include "src/Core/products/SelfadjointProduct.h"
+#include "src/Core/products/SelfadjointRank2Update.h"
+#include "src/Core/products/TriangularMatrixVector.h"
+#include "src/Core/products/TriangularMatrixMatrix.h"
+#include "src/Core/products/TriangularSolverMatrix.h"
+#include "src/Core/products/TriangularSolverVector.h"
+#include "src/Core/BandMatrix.h"
+#include "src/Core/CoreIterators.h"
+
+#include "src/Core/BooleanRedux.h"
+#include "src/Core/Select.h"
+#include "src/Core/VectorwiseOp.h"
+#include "src/Core/Random.h"
+#include "src/Core/Replicate.h"
+#include "src/Core/Reverse.h"
+#include "src/Core/ArrayBase.h"
+#include "src/Core/ArrayWrapper.h"
+
+#ifdef EIGEN_USE_BLAS
+#include "src/Core/products/GeneralMatrixMatrix_MKL.h"
+#include "src/Core/products/GeneralMatrixVector_MKL.h"
+#include "src/Core/products/GeneralMatrixMatrixTriangular_MKL.h"
+#include "src/Core/products/SelfadjointMatrixMatrix_MKL.h"
+#include "src/Core/products/SelfadjointMatrixVector_MKL.h"
+#include "src/Core/products/TriangularMatrixMatrix_MKL.h"
+#include "src/Core/products/TriangularMatrixVector_MKL.h"
+#include "src/Core/products/TriangularSolverMatrix_MKL.h"
+#endif // EIGEN_USE_BLAS
+
+#ifdef EIGEN_USE_MKL_VML
+#include "src/Core/Assign_MKL.h"
+#endif
+
+#include "src/Core/GlobalFunctions.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#ifdef EIGEN2_SUPPORT
+#include "Eigen2Support"
+#endif
+
+#endif // EIGEN_CORE_H
diff --git a/vendor/eigen-3.1.91/Eigen/Dense b/vendor/eigen-3.2.8/Eigen/Dense
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/Dense
rename to vendor/eigen-3.2.8/Eigen/Dense
diff --git a/vendor/eigen-3.1.91/Eigen/Eigen b/vendor/eigen-3.2.8/Eigen/Eigen
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/Eigen
rename to vendor/eigen-3.2.8/Eigen/Eigen
diff --git a/vendor/eigen-3.2.8/Eigen/Eigen2Support b/vendor/eigen-3.2.8/Eigen/Eigen2Support
new file mode 100644
index 0000000..6aa009d
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/Eigen2Support
@@ -0,0 +1,95 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN2SUPPORT_H
+#define EIGEN2SUPPORT_H
+
+#if (!defined(EIGEN2_SUPPORT)) || (!defined(EIGEN_CORE_H))
+#error Eigen2 support must be enabled by defining EIGEN2_SUPPORT before including any Eigen header
+#endif
+
+#ifndef EIGEN_NO_EIGEN2_DEPRECATED_WARNING
+
+#if defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__)
+#warning "Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3. (Define EIGEN_NO_EIGEN2_DEPRECATED_WARNING to disable this warning)"
+#else
+#pragma message ("Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3. (Define EIGEN_NO_EIGEN2_DEPRECATED_WARNING to disable this warning)")
+#endif
+
+#endif // EIGEN_NO_EIGEN2_DEPRECATED_WARNING
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \ingroup Support_modules
+  * \defgroup Eigen2Support_Module Eigen2 support module
+  *
+  * \warning Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3.
+  *
+  * This module provides a couple of deprecated functions improving the compatibility with Eigen2.
+  * 
+  * To use it, define EIGEN2_SUPPORT before including any Eigen header
+  * \code
+  * #define EIGEN2_SUPPORT
+  * \endcode
+  *
+  */
+
+#include "src/Eigen2Support/Macros.h"
+#include "src/Eigen2Support/Memory.h"
+#include "src/Eigen2Support/Meta.h"
+#include "src/Eigen2Support/Lazy.h"
+#include "src/Eigen2Support/Cwise.h"
+#include "src/Eigen2Support/CwiseOperators.h"
+#include "src/Eigen2Support/TriangularSolver.h"
+#include "src/Eigen2Support/Block.h"
+#include "src/Eigen2Support/VectorBlock.h"
+#include "src/Eigen2Support/Minor.h"
+#include "src/Eigen2Support/MathFunctions.h"
+
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+// Eigen2 used to include iostream
+#include<iostream>
+
+#define EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, SizeSuffix) \
+using Eigen::Matrix##SizeSuffix##TypeSuffix; \
+using Eigen::Vector##SizeSuffix##TypeSuffix; \
+using Eigen::RowVector##SizeSuffix##TypeSuffix;
+
+#define EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(TypeSuffix) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 2) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 3) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 4) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, X) \
+
+#define EIGEN_USING_MATRIX_TYPEDEFS \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(i) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(f) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(d) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(cf) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(cd)
+
+#define USING_PART_OF_NAMESPACE_EIGEN \
+EIGEN_USING_MATRIX_TYPEDEFS \
+using Eigen::Matrix; \
+using Eigen::MatrixBase; \
+using Eigen::ei_random; \
+using Eigen::ei_real; \
+using Eigen::ei_imag; \
+using Eigen::ei_conj; \
+using Eigen::ei_abs; \
+using Eigen::ei_abs2; \
+using Eigen::ei_sqrt; \
+using Eigen::ei_exp; \
+using Eigen::ei_log; \
+using Eigen::ei_sin; \
+using Eigen::ei_cos;
+
+#endif // EIGEN2SUPPORT_H
diff --git a/vendor/eigen-3.1.91/Eigen/Eigenvalues b/vendor/eigen-3.2.8/Eigen/Eigenvalues
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/Eigenvalues
rename to vendor/eigen-3.2.8/Eigen/Eigenvalues
diff --git a/vendor/eigen-3.1.91/Eigen/Geometry b/vendor/eigen-3.2.8/Eigen/Geometry
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/Geometry
rename to vendor/eigen-3.2.8/Eigen/Geometry
diff --git a/vendor/eigen-3.1.91/Eigen/Householder b/vendor/eigen-3.2.8/Eigen/Householder
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/Householder
rename to vendor/eigen-3.2.8/Eigen/Householder
diff --git a/vendor/eigen-3.1.91/Eigen/IterativeLinearSolvers b/vendor/eigen-3.2.8/Eigen/IterativeLinearSolvers
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/IterativeLinearSolvers
rename to vendor/eigen-3.2.8/Eigen/IterativeLinearSolvers
diff --git a/vendor/eigen-3.1.91/Eigen/Jacobi b/vendor/eigen-3.2.8/Eigen/Jacobi
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/Jacobi
rename to vendor/eigen-3.2.8/Eigen/Jacobi
diff --git a/vendor/eigen-3.1.91/Eigen/LU b/vendor/eigen-3.2.8/Eigen/LU
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/LU
rename to vendor/eigen-3.2.8/Eigen/LU
diff --git a/vendor/eigen-3.1.91/Eigen/LeastSquares b/vendor/eigen-3.2.8/Eigen/LeastSquares
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/LeastSquares
rename to vendor/eigen-3.2.8/Eigen/LeastSquares
diff --git a/vendor/eigen-3.1.91/Eigen/MetisSupport b/vendor/eigen-3.2.8/Eigen/MetisSupport
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/MetisSupport
rename to vendor/eigen-3.2.8/Eigen/MetisSupport
diff --git a/vendor/eigen-3.1.91/Eigen/OrderingMethods b/vendor/eigen-3.2.8/Eigen/OrderingMethods
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/OrderingMethods
rename to vendor/eigen-3.2.8/Eigen/OrderingMethods
diff --git a/vendor/eigen-3.1.91/Eigen/PaStiXSupport b/vendor/eigen-3.2.8/Eigen/PaStiXSupport
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/PaStiXSupport
rename to vendor/eigen-3.2.8/Eigen/PaStiXSupport
diff --git a/vendor/eigen-3.1.91/Eigen/PardisoSupport b/vendor/eigen-3.2.8/Eigen/PardisoSupport
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/PardisoSupport
rename to vendor/eigen-3.2.8/Eigen/PardisoSupport
diff --git a/vendor/eigen-3.1.91/Eigen/QR b/vendor/eigen-3.2.8/Eigen/QR
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/QR
rename to vendor/eigen-3.2.8/Eigen/QR
diff --git a/vendor/eigen-3.1.91/Eigen/QtAlignedMalloc b/vendor/eigen-3.2.8/Eigen/QtAlignedMalloc
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/QtAlignedMalloc
rename to vendor/eigen-3.2.8/Eigen/QtAlignedMalloc
diff --git a/vendor/eigen-3.2.8/Eigen/SPQRSupport b/vendor/eigen-3.2.8/Eigen/SPQRSupport
new file mode 100644
index 0000000..7f1eb47
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/SPQRSupport
@@ -0,0 +1,29 @@
+#ifndef EIGEN_SPQRSUPPORT_MODULE_H
+#define EIGEN_SPQRSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include "SuiteSparseQR.hpp"
+
+/** \ingroup Support_modules
+  * \defgroup SPQRSupport_Module SuiteSparseQR module
+  * 
+  * This module provides an interface to the SPQR library, which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
+  *
+  * \code
+  * #include <Eigen/SPQRSupport>
+  * \endcode
+  *
+  * In order to use this module, the SPQR headers must be accessible from the include paths, and your binary must be linked to the SPQR library and its dependencies (Cholmod, AMD, COLAMD,...).
+  * For a cmake based project, you can use our FindSPQR.cmake and FindCholmod.Cmake modules
+  *
+  */
+
+#include "src/misc/Solve.h"
+#include "src/misc/SparseSolve.h"
+#include "src/CholmodSupport/CholmodSupport.h"
+#include "src/SPQRSupport/SuiteSparseQRSupport.h"
+
+#endif
diff --git a/vendor/eigen-3.1.91/Eigen/SVD b/vendor/eigen-3.2.8/Eigen/SVD
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/SVD
rename to vendor/eigen-3.2.8/Eigen/SVD
diff --git a/vendor/eigen-3.2.8/Eigen/Sparse b/vendor/eigen-3.2.8/Eigen/Sparse
new file mode 100644
index 0000000..7cc9c09
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/Sparse
@@ -0,0 +1,27 @@
+#ifndef EIGEN_SPARSE_MODULE_H
+#define EIGEN_SPARSE_MODULE_H
+
+/** \defgroup Sparse_Module Sparse meta-module
+  *
+  * Meta-module including all related modules:
+  * - \ref SparseCore_Module
+  * - \ref OrderingMethods_Module
+  * - \ref SparseCholesky_Module
+  * - \ref SparseLU_Module
+  * - \ref SparseQR_Module
+  * - \ref IterativeLinearSolvers_Module
+  *
+  * \code
+  * #include <Eigen/Sparse>
+  * \endcode
+  */
+
+#include "SparseCore"
+#include "OrderingMethods"
+#include "SparseCholesky"
+#include "SparseLU"
+#include "SparseQR"
+#include "IterativeLinearSolvers"
+
+#endif // EIGEN_SPARSE_MODULE_H
+
diff --git a/vendor/eigen-3.2.8/Eigen/SparseCholesky b/vendor/eigen-3.2.8/Eigen/SparseCholesky
new file mode 100644
index 0000000..9f5056a
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/SparseCholesky
@@ -0,0 +1,47 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2013 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSECHOLESKY_MODULE_H
+#define EIGEN_SPARSECHOLESKY_MODULE_H
+
+#include "SparseCore"
+#include "OrderingMethods"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** 
+  * \defgroup SparseCholesky_Module SparseCholesky module
+  *
+  * This module currently provides two variants of the direct sparse Cholesky decomposition for selfadjoint (hermitian) matrices.
+  * Those decompositions are accessible via the following classes:
+  *  - SimplicialLLt,
+  *  - SimplicialLDLt
+  *
+  * Such problems can also be solved using the ConjugateGradient solver from the IterativeLinearSolvers module.
+  *
+  * \code
+  * #include <Eigen/SparseCholesky>
+  * \endcode
+  */
+
+#ifdef EIGEN_MPL2_ONLY
+#error The SparseCholesky module has nothing to offer in MPL2 only mode
+#endif
+
+#include "src/misc/Solve.h"
+#include "src/misc/SparseSolve.h"
+#include "src/SparseCholesky/SimplicialCholesky.h"
+
+#ifndef EIGEN_MPL2_ONLY
+#include "src/SparseCholesky/SimplicialCholesky_impl.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_SPARSECHOLESKY_MODULE_H
diff --git a/vendor/eigen-3.2.8/Eigen/SparseCore b/vendor/eigen-3.2.8/Eigen/SparseCore
new file mode 100644
index 0000000..24bcf01
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/SparseCore
@@ -0,0 +1,64 @@
+#ifndef EIGEN_SPARSECORE_MODULE_H
+#define EIGEN_SPARSECORE_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include <vector>
+#include <map>
+#include <cstdlib>
+#include <cstring>
+#include <algorithm>
+
+/** 
+  * \defgroup SparseCore_Module SparseCore module
+  *
+  * This module provides a sparse matrix representation, and basic associated matrix manipulations
+  * and operations.
+  *
+  * See the \ref TutorialSparse "Sparse tutorial"
+  *
+  * \code
+  * #include <Eigen/SparseCore>
+  * \endcode
+  *
+  * This module depends on: Core.
+  */
+
+namespace Eigen {
+
+/** The type used to identify a general sparse storage. */
+struct Sparse {};
+
+}
+
+#include "src/SparseCore/SparseUtil.h"
+#include "src/SparseCore/SparseMatrixBase.h"
+#include "src/SparseCore/CompressedStorage.h"
+#include "src/SparseCore/AmbiVector.h"
+#include "src/SparseCore/SparseMatrix.h"
+#include "src/SparseCore/MappedSparseMatrix.h"
+#include "src/SparseCore/SparseVector.h"
+#include "src/SparseCore/SparseBlock.h"
+#include "src/SparseCore/SparseTranspose.h"
+#include "src/SparseCore/SparseCwiseUnaryOp.h"
+#include "src/SparseCore/SparseCwiseBinaryOp.h"
+#include "src/SparseCore/SparseDot.h"
+#include "src/SparseCore/SparsePermutation.h"
+#include "src/SparseCore/SparseRedux.h"
+#include "src/SparseCore/SparseFuzzy.h"
+#include "src/SparseCore/ConservativeSparseSparseProduct.h"
+#include "src/SparseCore/SparseSparseProductWithPruning.h"
+#include "src/SparseCore/SparseProduct.h"
+#include "src/SparseCore/SparseDenseProduct.h"
+#include "src/SparseCore/SparseDiagonalProduct.h"
+#include "src/SparseCore/SparseTriangularView.h"
+#include "src/SparseCore/SparseSelfAdjointView.h"
+#include "src/SparseCore/TriangularSolver.h"
+#include "src/SparseCore/SparseView.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_SPARSECORE_MODULE_H
+
diff --git a/vendor/eigen-3.2.8/Eigen/SparseLU b/vendor/eigen-3.2.8/Eigen/SparseLU
new file mode 100644
index 0000000..8527a49
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/SparseLU
@@ -0,0 +1,49 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSELU_MODULE_H
+#define EIGEN_SPARSELU_MODULE_H
+
+#include "SparseCore"
+
+/** 
+  * \defgroup SparseLU_Module SparseLU module
+  * This module defines a supernodal factorization of general sparse matrices.
+  * The code is fully optimized for supernode-panel updates with specialized kernels.
+  * Please, see the documentation of the SparseLU class for more details.
+  */
+
+#include "src/misc/Solve.h"
+#include "src/misc/SparseSolve.h"
+
+// Ordering interface
+#include "OrderingMethods"
+
+#include "src/SparseLU/SparseLU_gemm_kernel.h"
+
+#include "src/SparseLU/SparseLU_Structs.h"
+#include "src/SparseLU/SparseLU_SupernodalMatrix.h"
+#include "src/SparseLU/SparseLUImpl.h"
+#include "src/SparseCore/SparseColEtree.h"
+#include "src/SparseLU/SparseLU_Memory.h"
+#include "src/SparseLU/SparseLU_heap_relax_snode.h"
+#include "src/SparseLU/SparseLU_relax_snode.h"
+#include "src/SparseLU/SparseLU_pivotL.h"
+#include "src/SparseLU/SparseLU_panel_dfs.h"
+#include "src/SparseLU/SparseLU_kernel_bmod.h"
+#include "src/SparseLU/SparseLU_panel_bmod.h"
+#include "src/SparseLU/SparseLU_column_dfs.h"
+#include "src/SparseLU/SparseLU_column_bmod.h"
+#include "src/SparseLU/SparseLU_copy_to_ucol.h"
+#include "src/SparseLU/SparseLU_pruneL.h"
+#include "src/SparseLU/SparseLU_Utils.h"
+#include "src/SparseLU/SparseLU.h"
+
+#endif // EIGEN_SPARSELU_MODULE_H
diff --git a/vendor/eigen-3.2.8/Eigen/SparseQR b/vendor/eigen-3.2.8/Eigen/SparseQR
new file mode 100644
index 0000000..4ee4206
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/SparseQR
@@ -0,0 +1,33 @@
+#ifndef EIGEN_SPARSEQR_MODULE_H
+#define EIGEN_SPARSEQR_MODULE_H
+
+#include "SparseCore"
+#include "OrderingMethods"
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \defgroup SparseQR_Module SparseQR module
+  * \brief Provides QR decomposition for sparse matrices
+  * 
+  * This module provides a simplicial version of the left-looking Sparse QR decomposition. 
+  * The columns of the input matrix should be reordered to limit the fill-in during the 
+  * decomposition. Built-in methods (COLAMD, AMD) or external  methods (METIS) can be used to this end.
+  * See the \link OrderingMethods_Module OrderingMethods\endlink module for the list 
+  * of built-in and external ordering methods.
+  * 
+  * \code
+  * #include <Eigen/SparseQR>
+  * \endcode
+  * 
+  * 
+  */
+
+#include "src/misc/Solve.h"
+#include "src/misc/SparseSolve.h"
+
+#include "OrderingMethods"
+#include "src/SparseCore/SparseColEtree.h"
+#include "src/SparseQR/SparseQR.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif
diff --git a/vendor/eigen-3.1.91/Eigen/StdDeque b/vendor/eigen-3.2.8/Eigen/StdDeque
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/StdDeque
rename to vendor/eigen-3.2.8/Eigen/StdDeque
diff --git a/vendor/eigen-3.1.91/Eigen/StdList b/vendor/eigen-3.2.8/Eigen/StdList
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/StdList
rename to vendor/eigen-3.2.8/Eigen/StdList
diff --git a/vendor/eigen-3.1.91/Eigen/StdVector b/vendor/eigen-3.2.8/Eigen/StdVector
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/StdVector
rename to vendor/eigen-3.2.8/Eigen/StdVector
diff --git a/vendor/eigen-3.1.91/Eigen/SuperLUSupport b/vendor/eigen-3.2.8/Eigen/SuperLUSupport
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/SuperLUSupport
rename to vendor/eigen-3.2.8/Eigen/SuperLUSupport
diff --git a/vendor/eigen-3.2.8/Eigen/UmfPackSupport b/vendor/eigen-3.2.8/Eigen/UmfPackSupport
new file mode 100644
index 0000000..7b1b660
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/UmfPackSupport
@@ -0,0 +1,36 @@
+#ifndef EIGEN_UMFPACKSUPPORT_MODULE_H
+#define EIGEN_UMFPACKSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+extern "C" {
+#include <umfpack.h>
+}
+
+/** \ingroup Support_modules
+  * \defgroup UmfPackSupport_Module UmfPackSupport module
+  *
+  * This module provides an interface to the UmfPack library which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
+  * It provides the following factorization class:
+  * - class UmfPackLU: a multifrontal sequential LU factorization.
+  *
+  * \code
+  * #include <Eigen/UmfPackSupport>
+  * \endcode
+  *
+  * In order to use this module, the umfpack headers must be accessible from the include paths, and your binary must be linked to the umfpack library and its dependencies.
+  * The dependencies depend on how umfpack has been compiled.
+  * For a cmake based project, you can use our FindUmfPack.cmake module to help you in this task.
+  *
+  */
+
+#include "src/misc/Solve.h"
+#include "src/misc/SparseSolve.h"
+
+#include "src/UmfPackSupport/UmfPackSupport.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_UMFPACKSUPPORT_MODULE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/CMakeLists.txt
diff --git a/vendor/eigen-3.1.91/Eigen/src/Cholesky/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Cholesky/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Cholesky/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Cholesky/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/Cholesky/LDLT.h b/vendor/eigen-3.2.8/Eigen/src/Cholesky/LDLT.h
new file mode 100644
index 0000000..abd30bd
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Cholesky/LDLT.h
@@ -0,0 +1,611 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2009 Keir Mierle <mierle at gmail.com>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2011 Timothy E. Holy <tim.holy at gmail.com >
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_LDLT_H
+#define EIGEN_LDLT_H
+
+namespace Eigen { 
+
+namespace internal {
+  template<typename MatrixType, int UpLo> struct LDLT_Traits;
+
+  // PositiveSemiDef means positive semi-definite and non-zero; same for NegativeSemiDef
+  enum SignMatrix { PositiveSemiDef, NegativeSemiDef, ZeroSign, Indefinite };
+}
+
+/** \ingroup Cholesky_Module
+  *
+  * \class LDLT
+  *
+  * \brief Robust Cholesky decomposition of a matrix with pivoting
+  *
+  * \param MatrixType the type of the matrix of which to compute the LDL^T Cholesky decomposition
+  * \param UpLo the triangular part that will be used for the decompositon: Lower (default) or Upper.
+  *             The other triangular part won't be read.
+  *
+  * Perform a robust Cholesky decomposition of a positive semidefinite or negative semidefinite
+  * matrix \f$ A \f$ such that \f$ A =  P^TLDL^*P \f$, where P is a permutation matrix, L
+  * is lower triangular with a unit diagonal and D is a diagonal matrix.
+  *
+  * The decomposition uses pivoting to ensure stability, so that L will have
+  * zeros in the bottom right rank(A) - n submatrix. Avoiding the square root
+  * on D also stabilizes the computation.
+  *
+  * Remember that Cholesky decompositions are not rank-revealing. Also, do not use a Cholesky
+  * decomposition to determine whether a system of equations has a solution.
+  *
+  * \sa MatrixBase::ldlt(), class LLT
+  */
+template<typename _MatrixType, int _UpLo> class LDLT
+{
+  public:
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options & ~RowMajorBit, // these are the options for the TmpMatrixType, we need a ColMajor matrix here!
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+      UpLo = _UpLo
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef Matrix<Scalar, RowsAtCompileTime, 1, Options, MaxRowsAtCompileTime, 1> TmpMatrixType;
+
+    typedef Transpositions<RowsAtCompileTime, MaxRowsAtCompileTime> TranspositionType;
+    typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationType;
+
+    typedef internal::LDLT_Traits<MatrixType,UpLo> Traits;
+
+    /** \brief Default Constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via LDLT::compute(const MatrixType&).
+      */
+    LDLT() 
+      : m_matrix(), 
+        m_transpositions(), 
+        m_sign(internal::ZeroSign),
+        m_isInitialized(false) 
+    {}
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa LDLT()
+      */
+    LDLT(Index size)
+      : m_matrix(size, size),
+        m_transpositions(size),
+        m_temporary(size),
+        m_sign(internal::ZeroSign),
+        m_isInitialized(false)
+    {}
+
+    /** \brief Constructor with decomposition
+      *
+      * This calculates the decomposition for the input \a matrix.
+      * \sa LDLT(Index size)
+      */
+    LDLT(const MatrixType& matrix)
+      : m_matrix(matrix.rows(), matrix.cols()),
+        m_transpositions(matrix.rows()),
+        m_temporary(matrix.rows()),
+        m_sign(internal::ZeroSign),
+        m_isInitialized(false)
+    {
+      compute(matrix);
+    }
+
+    /** Clear any existing decomposition
+     * \sa rankUpdate(w,sigma)
+     */
+    void setZero()
+    {
+      m_isInitialized = false;
+    }
+
+    /** \returns a view of the upper triangular matrix U */
+    inline typename Traits::MatrixU matrixU() const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return Traits::getU(m_matrix);
+    }
+
+    /** \returns a view of the lower triangular matrix L */
+    inline typename Traits::MatrixL matrixL() const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return Traits::getL(m_matrix);
+    }
+
+    /** \returns the permutation matrix P as a transposition sequence.
+      */
+    inline const TranspositionType& transpositionsP() const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return m_transpositions;
+    }
+
+    /** \returns the coefficients of the diagonal matrix D */
+    inline Diagonal<const MatrixType> vectorD() const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return m_matrix.diagonal();
+    }
+
+    /** \returns true if the matrix is positive (semidefinite) */
+    inline bool isPositive() const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return m_sign == internal::PositiveSemiDef || m_sign == internal::ZeroSign;
+    }
+    
+    #ifdef EIGEN2_SUPPORT
+    inline bool isPositiveDefinite() const
+    {
+      return isPositive();
+    }
+    #endif
+
+    /** \returns true if the matrix is negative (semidefinite) */
+    inline bool isNegative(void) const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return m_sign == internal::NegativeSemiDef || m_sign == internal::ZeroSign;
+    }
+
+    /** \returns a solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * This function also supports in-place solves using the syntax <tt>x = decompositionObject.solve(x)</tt> .
+      *
+      * \note_about_checking_solutions
+      *
+      * More precisely, this method solves \f$ A x = b \f$ using the decomposition \f$ A = P^T L D L^* P \f$
+      * by solving the systems \f$ P^T y_1 = b \f$, \f$ L y_2 = y_1 \f$, \f$ D y_3 = y_2 \f$, 
+      * \f$ L^* y_4 = y_3 \f$ and \f$ P x = y_4 \f$ in succession. If the matrix \f$ A \f$ is singular, then
+      * \f$ D \f$ will also be singular (all the other matrices are invertible). In that case, the
+      * least-square solution of \f$ D y_3 = y_2 \f$ is computed. This does not mean that this function
+      * computes the least-square solution of \f$ A x = b \f$ is \f$ A \f$ is singular.
+      *
+      * \sa MatrixBase::ldlt()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<LDLT, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      eigen_assert(m_matrix.rows()==b.rows()
+                && "LDLT::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<LDLT, Rhs>(*this, b.derived());
+    }
+
+    #ifdef EIGEN2_SUPPORT
+    template<typename OtherDerived, typename ResultType>
+    bool solve(const MatrixBase<OtherDerived>& b, ResultType *result) const
+    {
+      *result = this->solve(b);
+      return true;
+    }
+    #endif
+
+    template<typename Derived>
+    bool solveInPlace(MatrixBase<Derived> &bAndX) const;
+
+    LDLT& compute(const MatrixType& matrix);
+
+    template <typename Derived>
+    LDLT& rankUpdate(const MatrixBase<Derived>& w, const RealScalar& alpha=1);
+
+    /** \returns the internal LDLT decomposition matrix
+      *
+      * TODO: document the storage layout
+      */
+    inline const MatrixType& matrixLDLT() const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return m_matrix;
+    }
+
+    MatrixType reconstructedMatrix() const;
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix.appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return Success;
+    }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+
+    /** \internal
+      * Used to compute and store the Cholesky decomposition A = L D L^* = U^* D U.
+      * The strict upper part is used during the decomposition, the strict lower
+      * part correspond to the coefficients of L (its diagonal is equal to 1 and
+      * is not stored), and the diagonal entries correspond to D.
+      */
+    MatrixType m_matrix;
+    TranspositionType m_transpositions;
+    TmpMatrixType m_temporary;
+    internal::SignMatrix m_sign;
+    bool m_isInitialized;
+};
+
+namespace internal {
+
+template<int UpLo> struct ldlt_inplace;
+
+template<> struct ldlt_inplace<Lower>
+{
+  template<typename MatrixType, typename TranspositionType, typename Workspace>
+  static bool unblocked(MatrixType& mat, TranspositionType& transpositions, Workspace& temp, SignMatrix& sign)
+  {
+    using std::abs;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    eigen_assert(mat.rows()==mat.cols());
+    const Index size = mat.rows();
+
+    if (size <= 1)
+    {
+      transpositions.setIdentity();
+      if (numext::real(mat.coeff(0,0)) > 0) sign = PositiveSemiDef;
+      else if (numext::real(mat.coeff(0,0)) < 0) sign = NegativeSemiDef;
+      else sign = ZeroSign;
+      return true;
+    }
+
+    for (Index k = 0; k < size; ++k)
+    {
+      // Find largest diagonal element
+      Index index_of_biggest_in_corner;
+      mat.diagonal().tail(size-k).cwiseAbs().maxCoeff(&index_of_biggest_in_corner);
+      index_of_biggest_in_corner += k;
+
+      transpositions.coeffRef(k) = index_of_biggest_in_corner;
+      if(k != index_of_biggest_in_corner)
+      {
+        // apply the transposition while taking care to consider only
+        // the lower triangular part
+        Index s = size-index_of_biggest_in_corner-1; // trailing size after the biggest element
+        mat.row(k).head(k).swap(mat.row(index_of_biggest_in_corner).head(k));
+        mat.col(k).tail(s).swap(mat.col(index_of_biggest_in_corner).tail(s));
+        std::swap(mat.coeffRef(k,k),mat.coeffRef(index_of_biggest_in_corner,index_of_biggest_in_corner));
+        for(int i=k+1;i<index_of_biggest_in_corner;++i)
+        {
+          Scalar tmp = mat.coeffRef(i,k);
+          mat.coeffRef(i,k) = numext::conj(mat.coeffRef(index_of_biggest_in_corner,i));
+          mat.coeffRef(index_of_biggest_in_corner,i) = numext::conj(tmp);
+        }
+        if(NumTraits<Scalar>::IsComplex)
+          mat.coeffRef(index_of_biggest_in_corner,k) = numext::conj(mat.coeff(index_of_biggest_in_corner,k));
+      }
+
+      // partition the matrix:
+      //       A00 |  -  |  -
+      // lu  = A10 | A11 |  -
+      //       A20 | A21 | A22
+      Index rs = size - k - 1;
+      Block<MatrixType,Dynamic,1> A21(mat,k+1,k,rs,1);
+      Block<MatrixType,1,Dynamic> A10(mat,k,0,1,k);
+      Block<MatrixType,Dynamic,Dynamic> A20(mat,k+1,0,rs,k);
+
+      if(k>0)
+      {
+        temp.head(k) = mat.diagonal().real().head(k).asDiagonal() * A10.adjoint();
+        mat.coeffRef(k,k) -= (A10 * temp.head(k)).value();
+        if(rs>0)
+          A21.noalias() -= A20 * temp.head(k);
+      }
+      
+      // In some previous versions of Eigen (e.g., 3.2.1), the scaling was omitted if the pivot
+      // was smaller than the cutoff value. However, soince LDLT is not rank-revealing
+      // we should only make sure we do not introduce INF or NaN values.
+      // LAPACK also uses 0 as the cutoff value.
+      RealScalar realAkk = numext::real(mat.coeffRef(k,k));
+      if((rs>0) && (abs(realAkk) > RealScalar(0)))
+        A21 /= realAkk;
+
+      if (sign == PositiveSemiDef) {
+        if (realAkk < 0) sign = Indefinite;
+      } else if (sign == NegativeSemiDef) {
+        if (realAkk > 0) sign = Indefinite;
+      } else if (sign == ZeroSign) {
+        if (realAkk > 0) sign = PositiveSemiDef;
+        else if (realAkk < 0) sign = NegativeSemiDef;
+      }
+    }
+
+    return true;
+  }
+
+  // Reference for the algorithm: Davis and Hager, "Multiple Rank
+  // Modifications of a Sparse Cholesky Factorization" (Algorithm 1)
+  // Trivial rearrangements of their computations (Timothy E. Holy)
+  // allow their algorithm to work for rank-1 updates even if the
+  // original matrix is not of full rank.
+  // Here only rank-1 updates are implemented, to reduce the
+  // requirement for intermediate storage and improve accuracy
+  template<typename MatrixType, typename WDerived>
+  static bool updateInPlace(MatrixType& mat, MatrixBase<WDerived>& w, const typename MatrixType::RealScalar& sigma=1)
+  {
+    using numext::isfinite;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+
+    const Index size = mat.rows();
+    eigen_assert(mat.cols() == size && w.size()==size);
+
+    RealScalar alpha = 1;
+
+    // Apply the update
+    for (Index j = 0; j < size; j++)
+    {
+      // Check for termination due to an original decomposition of low-rank
+      if (!(isfinite)(alpha))
+        break;
+
+      // Update the diagonal terms
+      RealScalar dj = numext::real(mat.coeff(j,j));
+      Scalar wj = w.coeff(j);
+      RealScalar swj2 = sigma*numext::abs2(wj);
+      RealScalar gamma = dj*alpha + swj2;
+
+      mat.coeffRef(j,j) += swj2/alpha;
+      alpha += swj2/dj;
+
+
+      // Update the terms of L
+      Index rs = size-j-1;
+      w.tail(rs) -= wj * mat.col(j).tail(rs);
+      if(gamma != 0)
+        mat.col(j).tail(rs) += (sigma*numext::conj(wj)/gamma)*w.tail(rs);
+    }
+    return true;
+  }
+
+  template<typename MatrixType, typename TranspositionType, typename Workspace, typename WType>
+  static bool update(MatrixType& mat, const TranspositionType& transpositions, Workspace& tmp, const WType& w, const typename MatrixType::RealScalar& sigma=1)
+  {
+    // Apply the permutation to the input w
+    tmp = transpositions * w;
+
+    return ldlt_inplace<Lower>::updateInPlace(mat,tmp,sigma);
+  }
+};
+
+template<> struct ldlt_inplace<Upper>
+{
+  template<typename MatrixType, typename TranspositionType, typename Workspace>
+  static EIGEN_STRONG_INLINE bool unblocked(MatrixType& mat, TranspositionType& transpositions, Workspace& temp, SignMatrix& sign)
+  {
+    Transpose<MatrixType> matt(mat);
+    return ldlt_inplace<Lower>::unblocked(matt, transpositions, temp, sign);
+  }
+
+  template<typename MatrixType, typename TranspositionType, typename Workspace, typename WType>
+  static EIGEN_STRONG_INLINE bool update(MatrixType& mat, TranspositionType& transpositions, Workspace& tmp, WType& w, const typename MatrixType::RealScalar& sigma=1)
+  {
+    Transpose<MatrixType> matt(mat);
+    return ldlt_inplace<Lower>::update(matt, transpositions, tmp, w.conjugate(), sigma);
+  }
+};
+
+template<typename MatrixType> struct LDLT_Traits<MatrixType,Lower>
+{
+  typedef const TriangularView<const MatrixType, UnitLower> MatrixL;
+  typedef const TriangularView<const typename MatrixType::AdjointReturnType, UnitUpper> MatrixU;
+  static inline MatrixL getL(const MatrixType& m) { return m; }
+  static inline MatrixU getU(const MatrixType& m) { return m.adjoint(); }
+};
+
+template<typename MatrixType> struct LDLT_Traits<MatrixType,Upper>
+{
+  typedef const TriangularView<const typename MatrixType::AdjointReturnType, UnitLower> MatrixL;
+  typedef const TriangularView<const MatrixType, UnitUpper> MatrixU;
+  static inline MatrixL getL(const MatrixType& m) { return m.adjoint(); }
+  static inline MatrixU getU(const MatrixType& m) { return m; }
+};
+
+} // end namespace internal
+
+/** Compute / recompute the LDLT decomposition A = L D L^* = U^* D U of \a matrix
+  */
+template<typename MatrixType, int _UpLo>
+LDLT<MatrixType,_UpLo>& LDLT<MatrixType,_UpLo>::compute(const MatrixType& a)
+{
+  check_template_parameters();
+  
+  eigen_assert(a.rows()==a.cols());
+  const Index size = a.rows();
+
+  m_matrix = a;
+
+  m_transpositions.resize(size);
+  m_isInitialized = false;
+  m_temporary.resize(size);
+  m_sign = internal::ZeroSign;
+
+  internal::ldlt_inplace<UpLo>::unblocked(m_matrix, m_transpositions, m_temporary, m_sign);
+
+  m_isInitialized = true;
+  return *this;
+}
+
+/** Update the LDLT decomposition:  given A = L D L^T, efficiently compute the decomposition of A + sigma w w^T.
+ * \param w a vector to be incorporated into the decomposition.
+ * \param sigma a scalar, +1 for updates and -1 for "downdates," which correspond to removing previously-added column vectors. Optional; default value is +1.
+ * \sa setZero()
+  */
+template<typename MatrixType, int _UpLo>
+template<typename Derived>
+LDLT<MatrixType,_UpLo>& LDLT<MatrixType,_UpLo>::rankUpdate(const MatrixBase<Derived>& w, const typename LDLT<MatrixType,_UpLo>::RealScalar& sigma)
+{
+  const Index size = w.rows();
+  if (m_isInitialized)
+  {
+    eigen_assert(m_matrix.rows()==size);
+  }
+  else
+  {    
+    m_matrix.resize(size,size);
+    m_matrix.setZero();
+    m_transpositions.resize(size);
+    for (Index i = 0; i < size; i++)
+      m_transpositions.coeffRef(i) = i;
+    m_temporary.resize(size);
+    m_sign = sigma>=0 ? internal::PositiveSemiDef : internal::NegativeSemiDef;
+    m_isInitialized = true;
+  }
+
+  internal::ldlt_inplace<UpLo>::update(m_matrix, m_transpositions, m_temporary, w, sigma);
+
+  return *this;
+}
+
+namespace internal {
+template<typename _MatrixType, int _UpLo, typename Rhs>
+struct solve_retval<LDLT<_MatrixType,_UpLo>, Rhs>
+  : solve_retval_base<LDLT<_MatrixType,_UpLo>, Rhs>
+{
+  typedef LDLT<_MatrixType,_UpLo> LDLTType;
+  EIGEN_MAKE_SOLVE_HELPERS(LDLTType,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    eigen_assert(rhs().rows() == dec().matrixLDLT().rows());
+    // dst = P b
+    dst = dec().transpositionsP() * rhs();
+
+    // dst = L^-1 (P b)
+    dec().matrixL().solveInPlace(dst);
+
+    // dst = D^-1 (L^-1 P b)
+    // more precisely, use pseudo-inverse of D (see bug 241)
+    using std::abs;
+    using std::max;
+    typedef typename LDLTType::MatrixType MatrixType;
+    typedef typename LDLTType::RealScalar RealScalar;
+    const typename Diagonal<const MatrixType>::RealReturnType vectorD(dec().vectorD());
+    // In some previous versions, tolerance was set to the max of 1/highest and the maximal diagonal entry * epsilon
+    // as motivated by LAPACK's xGELSS:
+    // RealScalar tolerance = (max)(vectorD.array().abs().maxCoeff() *NumTraits<RealScalar>::epsilon(),RealScalar(1) / NumTraits<RealScalar>::highest());
+    // However, LDLT is not rank revealing, and so adjusting the tolerance wrt to the highest
+    // diagonal element is not well justified and to numerical issues in some cases.
+    // Moreover, Lapack's xSYTRS routines use 0 for the tolerance.
+    RealScalar tolerance = RealScalar(1) / NumTraits<RealScalar>::highest();
+    
+    for (Index i = 0; i < vectorD.size(); ++i) {
+      if(abs(vectorD(i)) > tolerance)
+        dst.row(i) /= vectorD(i);
+      else
+        dst.row(i).setZero();
+    }
+
+    // dst = L^-T (D^-1 L^-1 P b)
+    dec().matrixU().solveInPlace(dst);
+
+    // dst = P^-1 (L^-T D^-1 L^-1 P b) = A^-1 b
+    dst = dec().transpositionsP().transpose() * dst;
+  }
+};
+}
+
+/** \internal use x = ldlt_object.solve(x);
+  *
+  * This is the \em in-place version of solve().
+  *
+  * \param bAndX represents both the right-hand side matrix b and result x.
+  *
+  * \returns true always! If you need to check for existence of solutions, use another decomposition like LU, QR, or SVD.
+  *
+  * This version avoids a copy when the right hand side matrix b is not
+  * needed anymore.
+  *
+  * \sa LDLT::solve(), MatrixBase::ldlt()
+  */
+template<typename MatrixType,int _UpLo>
+template<typename Derived>
+bool LDLT<MatrixType,_UpLo>::solveInPlace(MatrixBase<Derived> &bAndX) const
+{
+  eigen_assert(m_isInitialized && "LDLT is not initialized.");
+  eigen_assert(m_matrix.rows() == bAndX.rows());
+
+  bAndX = this->solve(bAndX);
+
+  return true;
+}
+
+/** \returns the matrix represented by the decomposition,
+ * i.e., it returns the product: P^T L D L^* P.
+ * This function is provided for debug purpose. */
+template<typename MatrixType, int _UpLo>
+MatrixType LDLT<MatrixType,_UpLo>::reconstructedMatrix() const
+{
+  eigen_assert(m_isInitialized && "LDLT is not initialized.");
+  const Index size = m_matrix.rows();
+  MatrixType res(size,size);
+
+  // P
+  res.setIdentity();
+  res = transpositionsP() * res;
+  // L^* P
+  res = matrixU() * res;
+  // D(L^*P)
+  res = vectorD().real().asDiagonal() * res;
+  // L(DL^*P)
+  res = matrixL() * res;
+  // P^T (LDL^*P)
+  res = transpositionsP().transpose() * res;
+
+  return res;
+}
+
+/** \cholesky_module
+  * \returns the Cholesky decomposition with full pivoting without square root of \c *this
+  */
+template<typename MatrixType, unsigned int UpLo>
+inline const LDLT<typename SelfAdjointView<MatrixType, UpLo>::PlainObject, UpLo>
+SelfAdjointView<MatrixType, UpLo>::ldlt() const
+{
+  return LDLT<PlainObject,UpLo>(m_matrix);
+}
+
+/** \cholesky_module
+  * \returns the Cholesky decomposition with full pivoting without square root of \c *this
+  */
+template<typename Derived>
+inline const LDLT<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::ldlt() const
+{
+  return LDLT<PlainObject>(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_LDLT_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Cholesky/LLT.h b/vendor/eigen-3.2.8/Eigen/src/Cholesky/LLT.h
new file mode 100644
index 0000000..7c11a2d
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Cholesky/LLT.h
@@ -0,0 +1,498 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_LLT_H
+#define EIGEN_LLT_H
+
+namespace Eigen { 
+
+namespace internal{
+template<typename MatrixType, int UpLo> struct LLT_Traits;
+}
+
+/** \ingroup Cholesky_Module
+  *
+  * \class LLT
+  *
+  * \brief Standard Cholesky decomposition (LL^T) of a matrix and associated features
+  *
+  * \param MatrixType the type of the matrix of which we are computing the LL^T Cholesky decomposition
+  * \param UpLo the triangular part that will be used for the decompositon: Lower (default) or Upper.
+  *             The other triangular part won't be read.
+  *
+  * This class performs a LL^T Cholesky decomposition of a symmetric, positive definite
+  * matrix A such that A = LL^* = U^*U, where L is lower triangular.
+  *
+  * While the Cholesky decomposition is particularly useful to solve selfadjoint problems like  D^*D x = b,
+  * for that purpose, we recommend the Cholesky decomposition without square root which is more stable
+  * and even faster. Nevertheless, this standard Cholesky decomposition remains useful in many other
+  * situations like generalised eigen problems with hermitian matrices.
+  *
+  * Remember that Cholesky decompositions are not rank-revealing. This LLT decomposition is only stable on positive definite matrices,
+  * use LDLT instead for the semidefinite case. Also, do not use a Cholesky decomposition to determine whether a system of equations
+  * has a solution.
+  *
+  * Example: \include LLT_example.cpp
+  * Output: \verbinclude LLT_example.out
+  *    
+  * \sa MatrixBase::llt(), class LDLT
+  */
+ /* HEY THIS DOX IS DISABLED BECAUSE THERE's A BUG EITHER HERE OR IN LDLT ABOUT THAT (OR BOTH)
+  * Note that during the decomposition, only the upper triangular part of A is considered. Therefore,
+  * the strict lower part does not have to store correct values.
+  */
+template<typename _MatrixType, int _UpLo> class LLT
+{
+  public:
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+
+    enum {
+      PacketSize = internal::packet_traits<Scalar>::size,
+      AlignmentMask = int(PacketSize)-1,
+      UpLo = _UpLo
+    };
+
+    typedef internal::LLT_Traits<MatrixType,UpLo> Traits;
+
+    /**
+      * \brief Default Constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via LLT::compute(const MatrixType&).
+      */
+    LLT() : m_matrix(), m_isInitialized(false) {}
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa LLT()
+      */
+    LLT(Index size) : m_matrix(size, size),
+                    m_isInitialized(false) {}
+
+    LLT(const MatrixType& matrix)
+      : m_matrix(matrix.rows(), matrix.cols()),
+        m_isInitialized(false)
+    {
+      compute(matrix);
+    }
+
+    /** \returns a view of the upper triangular matrix U */
+    inline typename Traits::MatrixU matrixU() const
+    {
+      eigen_assert(m_isInitialized && "LLT is not initialized.");
+      return Traits::getU(m_matrix);
+    }
+
+    /** \returns a view of the lower triangular matrix L */
+    inline typename Traits::MatrixL matrixL() const
+    {
+      eigen_assert(m_isInitialized && "LLT is not initialized.");
+      return Traits::getL(m_matrix);
+    }
+
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * Since this LLT class assumes anyway that the matrix A is invertible, the solution
+      * theoretically exists and is unique regardless of b.
+      *
+      * Example: \include LLT_solve.cpp
+      * Output: \verbinclude LLT_solve.out
+      *
+      * \sa solveInPlace(), MatrixBase::llt()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<LLT, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "LLT is not initialized.");
+      eigen_assert(m_matrix.rows()==b.rows()
+                && "LLT::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<LLT, Rhs>(*this, b.derived());
+    }
+
+    #ifdef EIGEN2_SUPPORT
+    template<typename OtherDerived, typename ResultType>
+    bool solve(const MatrixBase<OtherDerived>& b, ResultType *result) const
+    {
+      *result = this->solve(b);
+      return true;
+    }
+    
+    bool isPositiveDefinite() const { return true; }
+    #endif
+
+    template<typename Derived>
+    void solveInPlace(MatrixBase<Derived> &bAndX) const;
+
+    LLT& compute(const MatrixType& matrix);
+
+    /** \returns the LLT decomposition matrix
+      *
+      * TODO: document the storage layout
+      */
+    inline const MatrixType& matrixLLT() const
+    {
+      eigen_assert(m_isInitialized && "LLT is not initialized.");
+      return m_matrix;
+    }
+
+    MatrixType reconstructedMatrix() const;
+
+
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix.appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "LLT is not initialized.");
+      return m_info;
+    }
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+
+    template<typename VectorType>
+    LLT rankUpdate(const VectorType& vec, const RealScalar& sigma = 1);
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    /** \internal
+      * Used to compute and store L
+      * The strict upper part is not used and even not initialized.
+      */
+    MatrixType m_matrix;
+    bool m_isInitialized;
+    ComputationInfo m_info;
+};
+
+namespace internal {
+
+template<typename Scalar, int UpLo> struct llt_inplace;
+
+template<typename MatrixType, typename VectorType>
+static typename MatrixType::Index llt_rank_update_lower(MatrixType& mat, const VectorType& vec, const typename MatrixType::RealScalar& sigma)
+{
+  using std::sqrt;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::RealScalar RealScalar;
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::ColXpr ColXpr;
+  typedef typename internal::remove_all<ColXpr>::type ColXprCleaned;
+  typedef typename ColXprCleaned::SegmentReturnType ColXprSegment;
+  typedef Matrix<Scalar,Dynamic,1> TempVectorType;
+  typedef typename TempVectorType::SegmentReturnType TempVecSegment;
+
+  Index n = mat.cols();
+  eigen_assert(mat.rows()==n && vec.size()==n);
+
+  TempVectorType temp;
+
+  if(sigma>0)
+  {
+    // This version is based on Givens rotations.
+    // It is faster than the other one below, but only works for updates,
+    // i.e., for sigma > 0
+    temp = sqrt(sigma) * vec;
+
+    for(Index i=0; i<n; ++i)
+    {
+      JacobiRotation<Scalar> g;
+      g.makeGivens(mat(i,i), -temp(i), &mat(i,i));
+
+      Index rs = n-i-1;
+      if(rs>0)
+      {
+        ColXprSegment x(mat.col(i).tail(rs));
+        TempVecSegment y(temp.tail(rs));
+        apply_rotation_in_the_plane(x, y, g);
+      }
+    }
+  }
+  else
+  {
+    temp = vec;
+    RealScalar beta = 1;
+    for(Index j=0; j<n; ++j)
+    {
+      RealScalar Ljj = numext::real(mat.coeff(j,j));
+      RealScalar dj = numext::abs2(Ljj);
+      Scalar wj = temp.coeff(j);
+      RealScalar swj2 = sigma*numext::abs2(wj);
+      RealScalar gamma = dj*beta + swj2;
+
+      RealScalar x = dj + swj2/beta;
+      if (x<=RealScalar(0))
+        return j;
+      RealScalar nLjj = sqrt(x);
+      mat.coeffRef(j,j) = nLjj;
+      beta += swj2/dj;
+
+      // Update the terms of L
+      Index rs = n-j-1;
+      if(rs)
+      {
+        temp.tail(rs) -= (wj/Ljj) * mat.col(j).tail(rs);
+        if(gamma != 0)
+          mat.col(j).tail(rs) = (nLjj/Ljj) * mat.col(j).tail(rs) + (nLjj * sigma*numext::conj(wj)/gamma)*temp.tail(rs);
+      }
+    }
+  }
+  return -1;
+}
+
+template<typename Scalar> struct llt_inplace<Scalar, Lower>
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  template<typename MatrixType>
+  static typename MatrixType::Index unblocked(MatrixType& mat)
+  {
+    using std::sqrt;
+    typedef typename MatrixType::Index Index;
+    
+    eigen_assert(mat.rows()==mat.cols());
+    const Index size = mat.rows();
+    for(Index k = 0; k < size; ++k)
+    {
+      Index rs = size-k-1; // remaining size
+
+      Block<MatrixType,Dynamic,1> A21(mat,k+1,k,rs,1);
+      Block<MatrixType,1,Dynamic> A10(mat,k,0,1,k);
+      Block<MatrixType,Dynamic,Dynamic> A20(mat,k+1,0,rs,k);
+
+      RealScalar x = numext::real(mat.coeff(k,k));
+      if (k>0) x -= A10.squaredNorm();
+      if (x<=RealScalar(0))
+        return k;
+      mat.coeffRef(k,k) = x = sqrt(x);
+      if (k>0 && rs>0) A21.noalias() -= A20 * A10.adjoint();
+      if (rs>0) A21 /= x;
+    }
+    return -1;
+  }
+
+  template<typename MatrixType>
+  static typename MatrixType::Index blocked(MatrixType& m)
+  {
+    typedef typename MatrixType::Index Index;
+    eigen_assert(m.rows()==m.cols());
+    Index size = m.rows();
+    if(size<32)
+      return unblocked(m);
+
+    Index blockSize = size/8;
+    blockSize = (blockSize/16)*16;
+    blockSize = (std::min)((std::max)(blockSize,Index(8)), Index(128));
+
+    for (Index k=0; k<size; k+=blockSize)
+    {
+      // partition the matrix:
+      //       A00 |  -  |  -
+      // lu  = A10 | A11 |  -
+      //       A20 | A21 | A22
+      Index bs = (std::min)(blockSize, size-k);
+      Index rs = size - k - bs;
+      Block<MatrixType,Dynamic,Dynamic> A11(m,k,   k,   bs,bs);
+      Block<MatrixType,Dynamic,Dynamic> A21(m,k+bs,k,   rs,bs);
+      Block<MatrixType,Dynamic,Dynamic> A22(m,k+bs,k+bs,rs,rs);
+
+      Index ret;
+      if((ret=unblocked(A11))>=0) return k+ret;
+      if(rs>0) A11.adjoint().template triangularView<Upper>().template solveInPlace<OnTheRight>(A21);
+      if(rs>0) A22.template selfadjointView<Lower>().rankUpdate(A21,-1); // bottleneck
+    }
+    return -1;
+  }
+
+  template<typename MatrixType, typename VectorType>
+  static typename MatrixType::Index rankUpdate(MatrixType& mat, const VectorType& vec, const RealScalar& sigma)
+  {
+    return Eigen::internal::llt_rank_update_lower(mat, vec, sigma);
+  }
+};
+  
+template<typename Scalar> struct llt_inplace<Scalar, Upper>
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+
+  template<typename MatrixType>
+  static EIGEN_STRONG_INLINE typename MatrixType::Index unblocked(MatrixType& mat)
+  {
+    Transpose<MatrixType> matt(mat);
+    return llt_inplace<Scalar, Lower>::unblocked(matt);
+  }
+  template<typename MatrixType>
+  static EIGEN_STRONG_INLINE typename MatrixType::Index blocked(MatrixType& mat)
+  {
+    Transpose<MatrixType> matt(mat);
+    return llt_inplace<Scalar, Lower>::blocked(matt);
+  }
+  template<typename MatrixType, typename VectorType>
+  static typename MatrixType::Index rankUpdate(MatrixType& mat, const VectorType& vec, const RealScalar& sigma)
+  {
+    Transpose<MatrixType> matt(mat);
+    return llt_inplace<Scalar, Lower>::rankUpdate(matt, vec.conjugate(), sigma);
+  }
+};
+
+template<typename MatrixType> struct LLT_Traits<MatrixType,Lower>
+{
+  typedef const TriangularView<const MatrixType, Lower> MatrixL;
+  typedef const TriangularView<const typename MatrixType::AdjointReturnType, Upper> MatrixU;
+  static inline MatrixL getL(const MatrixType& m) { return m; }
+  static inline MatrixU getU(const MatrixType& m) { return m.adjoint(); }
+  static bool inplace_decomposition(MatrixType& m)
+  { return llt_inplace<typename MatrixType::Scalar, Lower>::blocked(m)==-1; }
+};
+
+template<typename MatrixType> struct LLT_Traits<MatrixType,Upper>
+{
+  typedef const TriangularView<const typename MatrixType::AdjointReturnType, Lower> MatrixL;
+  typedef const TriangularView<const MatrixType, Upper> MatrixU;
+  static inline MatrixL getL(const MatrixType& m) { return m.adjoint(); }
+  static inline MatrixU getU(const MatrixType& m) { return m; }
+  static bool inplace_decomposition(MatrixType& m)
+  { return llt_inplace<typename MatrixType::Scalar, Upper>::blocked(m)==-1; }
+};
+
+} // end namespace internal
+
+/** Computes / recomputes the Cholesky decomposition A = LL^* = U^*U of \a matrix
+  *
+  * \returns a reference to *this
+  *
+  * Example: \include TutorialLinAlgComputeTwice.cpp
+  * Output: \verbinclude TutorialLinAlgComputeTwice.out
+  */
+template<typename MatrixType, int _UpLo>
+LLT<MatrixType,_UpLo>& LLT<MatrixType,_UpLo>::compute(const MatrixType& a)
+{
+  check_template_parameters();
+  
+  eigen_assert(a.rows()==a.cols());
+  const Index size = a.rows();
+  m_matrix.resize(size, size);
+  m_matrix = a;
+
+  m_isInitialized = true;
+  bool ok = Traits::inplace_decomposition(m_matrix);
+  m_info = ok ? Success : NumericalIssue;
+
+  return *this;
+}
+
+/** Performs a rank one update (or dowdate) of the current decomposition.
+  * If A = LL^* before the rank one update,
+  * then after it we have LL^* = A + sigma * v v^* where \a v must be a vector
+  * of same dimension.
+  */
+template<typename _MatrixType, int _UpLo>
+template<typename VectorType>
+LLT<_MatrixType,_UpLo> LLT<_MatrixType,_UpLo>::rankUpdate(const VectorType& v, const RealScalar& sigma)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(VectorType);
+  eigen_assert(v.size()==m_matrix.cols());
+  eigen_assert(m_isInitialized);
+  if(internal::llt_inplace<typename MatrixType::Scalar, UpLo>::rankUpdate(m_matrix,v,sigma)>=0)
+    m_info = NumericalIssue;
+  else
+    m_info = Success;
+
+  return *this;
+}
+    
+namespace internal {
+template<typename _MatrixType, int UpLo, typename Rhs>
+struct solve_retval<LLT<_MatrixType, UpLo>, Rhs>
+  : solve_retval_base<LLT<_MatrixType, UpLo>, Rhs>
+{
+  typedef LLT<_MatrixType,UpLo> LLTType;
+  EIGEN_MAKE_SOLVE_HELPERS(LLTType,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dst = rhs();
+    dec().solveInPlace(dst);
+  }
+};
+}
+
+/** \internal use x = llt_object.solve(x);
+  * 
+  * This is the \em in-place version of solve().
+  *
+  * \param bAndX represents both the right-hand side matrix b and result x.
+  *
+  * \returns true always! If you need to check for existence of solutions, use another decomposition like LU, QR, or SVD.
+  *
+  * This version avoids a copy when the right hand side matrix b is not
+  * needed anymore.
+  *
+  * \sa LLT::solve(), MatrixBase::llt()
+  */
+template<typename MatrixType, int _UpLo>
+template<typename Derived>
+void LLT<MatrixType,_UpLo>::solveInPlace(MatrixBase<Derived> &bAndX) const
+{
+  eigen_assert(m_isInitialized && "LLT is not initialized.");
+  eigen_assert(m_matrix.rows()==bAndX.rows());
+  matrixL().solveInPlace(bAndX);
+  matrixU().solveInPlace(bAndX);
+}
+
+/** \returns the matrix represented by the decomposition,
+ * i.e., it returns the product: L L^*.
+ * This function is provided for debug purpose. */
+template<typename MatrixType, int _UpLo>
+MatrixType LLT<MatrixType,_UpLo>::reconstructedMatrix() const
+{
+  eigen_assert(m_isInitialized && "LLT is not initialized.");
+  return matrixL() * matrixL().adjoint().toDenseMatrix();
+}
+
+/** \cholesky_module
+  * \returns the LLT decomposition of \c *this
+  */
+template<typename Derived>
+inline const LLT<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::llt() const
+{
+  return LLT<PlainObject>(derived());
+}
+
+/** \cholesky_module
+  * \returns the LLT decomposition of \c *this
+  */
+template<typename MatrixType, unsigned int UpLo>
+inline const LLT<typename SelfAdjointView<MatrixType, UpLo>::PlainObject, UpLo>
+SelfAdjointView<MatrixType, UpLo>::llt() const
+{
+  return LLT<PlainObject,UpLo>(m_matrix);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_LLT_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Cholesky/LLT_MKL.h b/vendor/eigen-3.2.8/Eigen/src/Cholesky/LLT_MKL.h
new file mode 100644
index 0000000..66675d7
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Cholesky/LLT_MKL.h
@@ -0,0 +1,102 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *     LLt decomposition based on LAPACKE_?potrf function.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_LLT_MKL_H
+#define EIGEN_LLT_MKL_H
+
+#include "Eigen/src/Core/util/MKL_support.h"
+#include <iostream>
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Scalar> struct mkl_llt;
+
+#define EIGEN_MKL_LLT(EIGTYPE, MKLTYPE, MKLPREFIX) \
+template<> struct mkl_llt<EIGTYPE> \
+{ \
+  template<typename MatrixType> \
+  static inline typename MatrixType::Index potrf(MatrixType& m, char uplo) \
+  { \
+    lapack_int matrix_order; \
+    lapack_int size, lda, info, StorageOrder; \
+    EIGTYPE* a; \
+    eigen_assert(m.rows()==m.cols()); \
+    /* Set up parameters for ?potrf */ \
+    size = m.rows(); \
+    StorageOrder = MatrixType::Flags&RowMajorBit?RowMajor:ColMajor; \
+    matrix_order = StorageOrder==RowMajor ? LAPACK_ROW_MAJOR : LAPACK_COL_MAJOR; \
+    a = &(m.coeffRef(0,0)); \
+    lda = m.outerStride(); \
+\
+    info = LAPACKE_##MKLPREFIX##potrf( matrix_order, uplo, size, (MKLTYPE*)a, lda ); \
+    info = (info==0) ? -1 : info>0 ? info-1 : size; \
+    return info; \
+  } \
+}; \
+template<> struct llt_inplace<EIGTYPE, Lower> \
+{ \
+  template<typename MatrixType> \
+  static typename MatrixType::Index blocked(MatrixType& m) \
+  { \
+    return mkl_llt<EIGTYPE>::potrf(m, 'L'); \
+  } \
+  template<typename MatrixType, typename VectorType> \
+  static typename MatrixType::Index rankUpdate(MatrixType& mat, const VectorType& vec, const typename MatrixType::RealScalar& sigma) \
+  { return Eigen::internal::llt_rank_update_lower(mat, vec, sigma); } \
+}; \
+template<> struct llt_inplace<EIGTYPE, Upper> \
+{ \
+  template<typename MatrixType> \
+  static typename MatrixType::Index blocked(MatrixType& m) \
+  { \
+    return mkl_llt<EIGTYPE>::potrf(m, 'U'); \
+  } \
+  template<typename MatrixType, typename VectorType> \
+  static typename MatrixType::Index rankUpdate(MatrixType& mat, const VectorType& vec, const typename MatrixType::RealScalar& sigma) \
+  { \
+    Transpose<MatrixType> matt(mat); \
+    return llt_inplace<EIGTYPE, Lower>::rankUpdate(matt, vec.conjugate(), sigma); \
+  } \
+};
+
+EIGEN_MKL_LLT(double, double, d)
+EIGEN_MKL_LLT(float, float, s)
+EIGEN_MKL_LLT(dcomplex, MKL_Complex16, z)
+EIGEN_MKL_LLT(scomplex, MKL_Complex8, c)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_LLT_MKL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/CholmodSupport/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/CholmodSupport/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/CholmodSupport/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/CholmodSupport/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/CholmodSupport/CholmodSupport.h b/vendor/eigen-3.2.8/Eigen/src/CholmodSupport/CholmodSupport.h
new file mode 100644
index 0000000..99dbe17
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/CholmodSupport/CholmodSupport.h
@@ -0,0 +1,607 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CHOLMODSUPPORT_H
+#define EIGEN_CHOLMODSUPPORT_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Scalar, typename CholmodType>
+void cholmod_configure_matrix(CholmodType& mat)
+{
+  if (internal::is_same<Scalar,float>::value)
+  {
+    mat.xtype = CHOLMOD_REAL;
+    mat.dtype = CHOLMOD_SINGLE;
+  }
+  else if (internal::is_same<Scalar,double>::value)
+  {
+    mat.xtype = CHOLMOD_REAL;
+    mat.dtype = CHOLMOD_DOUBLE;
+  }
+  else if (internal::is_same<Scalar,std::complex<float> >::value)
+  {
+    mat.xtype = CHOLMOD_COMPLEX;
+    mat.dtype = CHOLMOD_SINGLE;
+  }
+  else if (internal::is_same<Scalar,std::complex<double> >::value)
+  {
+    mat.xtype = CHOLMOD_COMPLEX;
+    mat.dtype = CHOLMOD_DOUBLE;
+  }
+  else
+  {
+    eigen_assert(false && "Scalar type not supported by CHOLMOD");
+  }
+}
+
+} // namespace internal
+
+/** Wraps the Eigen sparse matrix \a mat into a Cholmod sparse matrix object.
+  * Note that the data are shared.
+  */
+template<typename _Scalar, int _Options, typename _Index>
+cholmod_sparse viewAsCholmod(SparseMatrix<_Scalar,_Options,_Index>& mat)
+{
+  cholmod_sparse res;
+  res.nzmax   = mat.nonZeros();
+  res.nrow    = mat.rows();;
+  res.ncol    = mat.cols();
+  res.p       = mat.outerIndexPtr();
+  res.i       = mat.innerIndexPtr();
+  res.x       = mat.valuePtr();
+  res.z       = 0;
+  res.sorted  = 1;
+  if(mat.isCompressed())
+  {
+    res.packed  = 1;
+    res.nz = 0;
+  }
+  else
+  {
+    res.packed  = 0;
+    res.nz = mat.innerNonZeroPtr();
+  }
+
+  res.dtype   = 0;
+  res.stype   = -1;
+  
+  if (internal::is_same<_Index,int>::value)
+  {
+    res.itype = CHOLMOD_INT;
+  }
+  else if (internal::is_same<_Index,SuiteSparse_long>::value)
+  {
+    res.itype = CHOLMOD_LONG;
+  }
+  else
+  {
+    eigen_assert(false && "Index type not supported yet");
+  }
+
+  // setup res.xtype
+  internal::cholmod_configure_matrix<_Scalar>(res);
+  
+  res.stype = 0;
+  
+  return res;
+}
+
+template<typename _Scalar, int _Options, typename _Index>
+const cholmod_sparse viewAsCholmod(const SparseMatrix<_Scalar,_Options,_Index>& mat)
+{
+  cholmod_sparse res = viewAsCholmod(mat.const_cast_derived());
+  return res;
+}
+
+/** Returns a view of the Eigen sparse matrix \a mat as Cholmod sparse matrix.
+  * The data are not copied but shared. */
+template<typename _Scalar, int _Options, typename _Index, unsigned int UpLo>
+cholmod_sparse viewAsCholmod(const SparseSelfAdjointView<SparseMatrix<_Scalar,_Options,_Index>, UpLo>& mat)
+{
+  cholmod_sparse res = viewAsCholmod(mat.matrix().const_cast_derived());
+  
+  if(UpLo==Upper) res.stype =  1;
+  if(UpLo==Lower) res.stype = -1;
+
+  return res;
+}
+
+/** Returns a view of the Eigen \b dense matrix \a mat as Cholmod dense matrix.
+  * The data are not copied but shared. */
+template<typename Derived>
+cholmod_dense viewAsCholmod(MatrixBase<Derived>& mat)
+{
+  EIGEN_STATIC_ASSERT((internal::traits<Derived>::Flags&RowMajorBit)==0,THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
+  typedef typename Derived::Scalar Scalar;
+
+  cholmod_dense res;
+  res.nrow   = mat.rows();
+  res.ncol   = mat.cols();
+  res.nzmax  = res.nrow * res.ncol;
+  res.d      = Derived::IsVectorAtCompileTime ? mat.derived().size() : mat.derived().outerStride();
+  res.x      = (void*)(mat.derived().data());
+  res.z      = 0;
+
+  internal::cholmod_configure_matrix<Scalar>(res);
+
+  return res;
+}
+
+/** Returns a view of the Cholmod sparse matrix \a cm as an Eigen sparse matrix.
+  * The data are not copied but shared. */
+template<typename Scalar, int Flags, typename Index>
+MappedSparseMatrix<Scalar,Flags,Index> viewAsEigen(cholmod_sparse& cm)
+{
+  return MappedSparseMatrix<Scalar,Flags,Index>
+         (cm.nrow, cm.ncol, static_cast<Index*>(cm.p)[cm.ncol],
+          static_cast<Index*>(cm.p), static_cast<Index*>(cm.i),static_cast<Scalar*>(cm.x) );
+}
+
+enum CholmodMode {
+  CholmodAuto, CholmodSimplicialLLt, CholmodSupernodalLLt, CholmodLDLt
+};
+
+
+/** \ingroup CholmodSupport_Module
+  * \class CholmodBase
+  * \brief The base class for the direct Cholesky factorization of Cholmod
+  * \sa class CholmodSupernodalLLT, class CholmodSimplicialLDLT, class CholmodSimplicialLLT
+  */
+template<typename _MatrixType, int _UpLo, typename Derived>
+class CholmodBase : internal::noncopyable
+{
+  public:
+    typedef _MatrixType MatrixType;
+    enum { UpLo = _UpLo };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef MatrixType CholMatrixType;
+    typedef typename MatrixType::Index Index;
+
+  public:
+
+    CholmodBase()
+      : m_cholmodFactor(0), m_info(Success), m_isInitialized(false)
+    {
+      m_shiftOffset[0] = m_shiftOffset[1] = RealScalar(0.0);
+      cholmod_start(&m_cholmod);
+    }
+
+    CholmodBase(const MatrixType& matrix)
+      : m_cholmodFactor(0), m_info(Success), m_isInitialized(false)
+    {
+      m_shiftOffset[0] = m_shiftOffset[1] = RealScalar(0.0);
+      cholmod_start(&m_cholmod);
+      compute(matrix);
+    }
+
+    ~CholmodBase()
+    {
+      if(m_cholmodFactor)
+        cholmod_free_factor(&m_cholmodFactor, &m_cholmod);
+      cholmod_finish(&m_cholmod);
+    }
+    
+    inline Index cols() const { return m_cholmodFactor->n; }
+    inline Index rows() const { return m_cholmodFactor->n; }
+    
+    Derived& derived() { return *static_cast<Derived*>(this); }
+    const Derived& derived() const { return *static_cast<const Derived*>(this); }
+    
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix.appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+
+    /** Computes the sparse Cholesky decomposition of \a matrix */
+    Derived& compute(const MatrixType& matrix)
+    {
+      analyzePattern(matrix);
+      factorize(matrix);
+      return derived();
+    }
+    
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<CholmodBase, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "LLT is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "CholmodDecomposition::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<CholmodBase, Rhs>(*this, b.derived());
+    }
+    
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<CholmodBase, Rhs>
+    solve(const SparseMatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "LLT is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "CholmodDecomposition::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::sparse_solve_retval<CholmodBase, Rhs>(*this, b.derived());
+    }
+    
+    /** Performs a symbolic decomposition on the sparsity pattern of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      * 
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& matrix)
+    {
+      if(m_cholmodFactor)
+      {
+        cholmod_free_factor(&m_cholmodFactor, &m_cholmod);
+        m_cholmodFactor = 0;
+      }
+      cholmod_sparse A = viewAsCholmod(matrix.template selfadjointView<UpLo>());
+      m_cholmodFactor = cholmod_analyze(&A, &m_cholmod);
+      
+      this->m_isInitialized = true;
+      this->m_info = Success;
+      m_analysisIsOk = true;
+      m_factorizationIsOk = false;
+    }
+    
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must have the same sparsity pattern as the matrix on which the symbolic decomposition has been performed.
+      *
+      * \sa analyzePattern()
+      */
+    void factorize(const MatrixType& matrix)
+    {
+      eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+      cholmod_sparse A = viewAsCholmod(matrix.template selfadjointView<UpLo>());
+      cholmod_factorize_p(&A, m_shiftOffset, 0, 0, m_cholmodFactor, &m_cholmod);
+      
+      // If the factorization failed, minor is the column at which it did. On success minor == n.
+      this->m_info = (m_cholmodFactor->minor == m_cholmodFactor->n ? Success : NumericalIssue);
+      m_factorizationIsOk = true;
+    }
+    
+    /** Returns a reference to the Cholmod's configuration structure to get a full control over the performed operations.
+     *  See the Cholmod user guide for details. */
+    cholmod_common& cholmod() { return m_cholmod; }
+    
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal */
+    template<typename Rhs,typename Dest>
+    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
+    {
+      eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
+      const Index size = m_cholmodFactor->n;
+      EIGEN_UNUSED_VARIABLE(size);
+      eigen_assert(size==b.rows());
+
+      // note: cd stands for Cholmod Dense
+      Rhs& b_ref(b.const_cast_derived());
+      cholmod_dense b_cd = viewAsCholmod(b_ref);
+      cholmod_dense* x_cd = cholmod_solve(CHOLMOD_A, m_cholmodFactor, &b_cd, &m_cholmod);
+      if(!x_cd)
+      {
+        this->m_info = NumericalIssue;
+      }
+      // TODO optimize this copy by swapping when possible (be careful with alignment, etc.)
+      dest = Matrix<Scalar,Dest::RowsAtCompileTime,Dest::ColsAtCompileTime>::Map(reinterpret_cast<Scalar*>(x_cd->x),b.rows(),b.cols());
+      cholmod_free_dense(&x_cd, &m_cholmod);
+    }
+    
+    /** \internal */
+    template<typename RhsScalar, int RhsOptions, typename RhsIndex, typename DestScalar, int DestOptions, typename DestIndex>
+    void _solve(const SparseMatrix<RhsScalar,RhsOptions,RhsIndex> &b, SparseMatrix<DestScalar,DestOptions,DestIndex> &dest) const
+    {
+      eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
+      const Index size = m_cholmodFactor->n;
+      EIGEN_UNUSED_VARIABLE(size);
+      eigen_assert(size==b.rows());
+
+      // note: cs stands for Cholmod Sparse
+      cholmod_sparse b_cs = viewAsCholmod(b);
+      cholmod_sparse* x_cs = cholmod_spsolve(CHOLMOD_A, m_cholmodFactor, &b_cs, &m_cholmod);
+      if(!x_cs)
+      {
+        this->m_info = NumericalIssue;
+      }
+      // TODO optimize this copy by swapping when possible (be careful with alignment, etc.)
+      dest = viewAsEigen<DestScalar,DestOptions,DestIndex>(*x_cs);
+      cholmod_free_sparse(&x_cs, &m_cholmod);
+    }
+    #endif // EIGEN_PARSED_BY_DOXYGEN
+    
+    
+    /** Sets the shift parameter that will be used to adjust the diagonal coefficients during the numerical factorization.
+      *
+      * During the numerical factorization, an offset term is added to the diagonal coefficients:\n
+      * \c d_ii = \a offset + \c d_ii
+      *
+      * The default is \a offset=0.
+      *
+      * \returns a reference to \c *this.
+      */
+    Derived& setShift(const RealScalar& offset)
+    {
+      m_shiftOffset[0] = offset;
+      return derived();
+    }
+    
+    template<typename Stream>
+    void dumpMemory(Stream& /*s*/)
+    {}
+    
+  protected:
+    mutable cholmod_common m_cholmod;
+    cholmod_factor* m_cholmodFactor;
+    RealScalar m_shiftOffset[2];
+    mutable ComputationInfo m_info;
+    bool m_isInitialized;
+    int m_factorizationIsOk;
+    int m_analysisIsOk;
+};
+
+/** \ingroup CholmodSupport_Module
+  * \class CholmodSimplicialLLT
+  * \brief A simplicial direct Cholesky (LLT) factorization and solver based on Cholmod
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a simplicial LL^T Cholesky factorization
+  * using the Cholmod library.
+  * This simplicial variant is equivalent to Eigen's built-in SimplicialLLT class. Therefore, it has little practical interest.
+  * The sparse matrix A must be selfadjoint and positive definite. The vectors or matrices
+  * X and B can be either dense or sparse.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+  *               or Upper. Default is Lower.
+  *
+  * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
+  *
+  * \sa \ref TutorialSparseDirectSolvers, class CholmodSupernodalLLT, class SimplicialLLT
+  */
+template<typename _MatrixType, int _UpLo = Lower>
+class CholmodSimplicialLLT : public CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLLT<_MatrixType, _UpLo> >
+{
+    typedef CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLLT> Base;
+    using Base::m_cholmod;
+    
+  public:
+    
+    typedef _MatrixType MatrixType;
+    
+    CholmodSimplicialLLT() : Base() { init(); }
+
+    CholmodSimplicialLLT(const MatrixType& matrix) : Base()
+    {
+      init();
+      Base::compute(matrix);
+    }
+
+    ~CholmodSimplicialLLT() {}
+  protected:
+    void init()
+    {
+      m_cholmod.final_asis = 0;
+      m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
+      m_cholmod.final_ll = 1;
+    }
+};
+
+
+/** \ingroup CholmodSupport_Module
+  * \class CholmodSimplicialLDLT
+  * \brief A simplicial direct Cholesky (LDLT) factorization and solver based on Cholmod
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a simplicial LDL^T Cholesky factorization
+  * using the Cholmod library.
+  * This simplicial variant is equivalent to Eigen's built-in SimplicialLDLT class. Therefore, it has little practical interest.
+  * The sparse matrix A must be selfadjoint and positive definite. The vectors or matrices
+  * X and B can be either dense or sparse.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+  *               or Upper. Default is Lower.
+  *
+  * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
+  *
+  * \sa \ref TutorialSparseDirectSolvers, class CholmodSupernodalLLT, class SimplicialLDLT
+  */
+template<typename _MatrixType, int _UpLo = Lower>
+class CholmodSimplicialLDLT : public CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLDLT<_MatrixType, _UpLo> >
+{
+    typedef CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLDLT> Base;
+    using Base::m_cholmod;
+    
+  public:
+    
+    typedef _MatrixType MatrixType;
+    
+    CholmodSimplicialLDLT() : Base() { init(); }
+
+    CholmodSimplicialLDLT(const MatrixType& matrix) : Base()
+    {
+      init();
+      Base::compute(matrix);
+    }
+
+    ~CholmodSimplicialLDLT() {}
+  protected:
+    void init()
+    {
+      m_cholmod.final_asis = 1;
+      m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
+    }
+};
+
+/** \ingroup CholmodSupport_Module
+  * \class CholmodSupernodalLLT
+  * \brief A supernodal Cholesky (LLT) factorization and solver based on Cholmod
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a supernodal LL^T Cholesky factorization
+  * using the Cholmod library.
+  * This supernodal variant performs best on dense enough problems, e.g., 3D FEM, or very high order 2D FEM.
+  * The sparse matrix A must be selfadjoint and positive definite. The vectors or matrices
+  * X and B can be either dense or sparse.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+  *               or Upper. Default is Lower.
+  *
+  * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
+  *
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename _MatrixType, int _UpLo = Lower>
+class CholmodSupernodalLLT : public CholmodBase<_MatrixType, _UpLo, CholmodSupernodalLLT<_MatrixType, _UpLo> >
+{
+    typedef CholmodBase<_MatrixType, _UpLo, CholmodSupernodalLLT> Base;
+    using Base::m_cholmod;
+    
+  public:
+    
+    typedef _MatrixType MatrixType;
+    
+    CholmodSupernodalLLT() : Base() { init(); }
+
+    CholmodSupernodalLLT(const MatrixType& matrix) : Base()
+    {
+      init();
+      Base::compute(matrix);
+    }
+
+    ~CholmodSupernodalLLT() {}
+  protected:
+    void init()
+    {
+      m_cholmod.final_asis = 1;
+      m_cholmod.supernodal = CHOLMOD_SUPERNODAL;
+    }
+};
+
+/** \ingroup CholmodSupport_Module
+  * \class CholmodDecomposition
+  * \brief A general Cholesky factorization and solver based on Cholmod
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a LL^T or LDL^T Cholesky factorization
+  * using the Cholmod library. The sparse matrix A must be selfadjoint and positive definite. The vectors or matrices
+  * X and B can be either dense or sparse.
+  *
+  * This variant permits to change the underlying Cholesky method at runtime.
+  * On the other hand, it does not provide access to the result of the factorization.
+  * The default is to let Cholmod automatically choose between a simplicial and supernodal factorization.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+  *               or Upper. Default is Lower.
+  *
+  * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
+  *
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename _MatrixType, int _UpLo = Lower>
+class CholmodDecomposition : public CholmodBase<_MatrixType, _UpLo, CholmodDecomposition<_MatrixType, _UpLo> >
+{
+    typedef CholmodBase<_MatrixType, _UpLo, CholmodDecomposition> Base;
+    using Base::m_cholmod;
+    
+  public:
+    
+    typedef _MatrixType MatrixType;
+    
+    CholmodDecomposition() : Base() { init(); }
+
+    CholmodDecomposition(const MatrixType& matrix) : Base()
+    {
+      init();
+      Base::compute(matrix);
+    }
+
+    ~CholmodDecomposition() {}
+    
+    void setMode(CholmodMode mode)
+    {
+      switch(mode)
+      {
+        case CholmodAuto:
+          m_cholmod.final_asis = 1;
+          m_cholmod.supernodal = CHOLMOD_AUTO;
+          break;
+        case CholmodSimplicialLLt:
+          m_cholmod.final_asis = 0;
+          m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
+          m_cholmod.final_ll = 1;
+          break;
+        case CholmodSupernodalLLt:
+          m_cholmod.final_asis = 1;
+          m_cholmod.supernodal = CHOLMOD_SUPERNODAL;
+          break;
+        case CholmodLDLt:
+          m_cholmod.final_asis = 1;
+          m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
+          break;
+        default:
+          break;
+      }
+    }
+  protected:
+    void init()
+    {
+      m_cholmod.final_asis = 1;
+      m_cholmod.supernodal = CHOLMOD_AUTO;
+    }
+};
+
+namespace internal {
+  
+template<typename _MatrixType, int _UpLo, typename Derived, typename Rhs>
+struct solve_retval<CholmodBase<_MatrixType,_UpLo,Derived>, Rhs>
+  : solve_retval_base<CholmodBase<_MatrixType,_UpLo,Derived>, Rhs>
+{
+  typedef CholmodBase<_MatrixType,_UpLo,Derived> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+template<typename _MatrixType, int _UpLo, typename Derived, typename Rhs>
+struct sparse_solve_retval<CholmodBase<_MatrixType,_UpLo,Derived>, Rhs>
+  : sparse_solve_retval_base<CholmodBase<_MatrixType,_UpLo,Derived>, Rhs>
+{
+  typedef CholmodBase<_MatrixType,_UpLo,Derived> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_CHOLMODSUPPORT_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/Array.h b/vendor/eigen-3.2.8/Eigen/src/Core/Array.h
new file mode 100644
index 0000000..0b9c38c
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/Array.h
@@ -0,0 +1,323 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ARRAY_H
+#define EIGEN_ARRAY_H
+
+namespace Eigen {
+
+/** \class Array 
+  * \ingroup Core_Module
+  *
+  * \brief General-purpose arrays with easy API for coefficient-wise operations
+  *
+  * The %Array class is very similar to the Matrix class. It provides
+  * general-purpose one- and two-dimensional arrays. The difference between the
+  * %Array and the %Matrix class is primarily in the API: the API for the
+  * %Array class provides easy access to coefficient-wise operations, while the
+  * API for the %Matrix class provides easy access to linear-algebra
+  * operations.
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_ARRAY_PLUGIN.
+  *
+  * \sa \ref TutorialArrayClass, \ref TopicClassHierarchy
+  */
+namespace internal {
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct traits<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > : traits<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+{
+  typedef ArrayXpr XprKind;
+  typedef ArrayBase<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > XprBase;
+};
+}
+
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+class Array
+  : public PlainObjectBase<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+{
+  public:
+
+    typedef PlainObjectBase<Array> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Array)
+
+    enum { Options = _Options };
+    typedef typename Base::PlainObject PlainObject;
+
+  protected:
+    template <typename Derived, typename OtherDerived, bool IsVector>
+    friend struct internal::conservative_resize_like_impl;
+
+    using Base::m_storage;
+
+  public:
+
+    using Base::base;
+    using Base::coeff;
+    using Base::coeffRef;
+
+    /**
+      * The usage of
+      *   using Base::operator=;
+      * fails on MSVC. Since the code below is working with GCC and MSVC, we skipped
+      * the usage of 'using'. This should be done only for operator=.
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Array& operator=(const EigenBase<OtherDerived> &other)
+    {
+      return Base::operator=(other);
+    }
+
+    /** Copies the value of the expression \a other into \c *this with automatic resizing.
+      *
+      * *this might be resized to match the dimensions of \a other. If *this was a null matrix (not already initialized),
+      * it will be initialized.
+      *
+      * Note that copying a row-vector into a vector (and conversely) is allowed.
+      * The resizing, if any, is then done in the appropriate way so that row-vectors
+      * remain row-vectors and vectors remain vectors.
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Array& operator=(const ArrayBase<OtherDerived>& other)
+    {
+      return Base::_set(other);
+    }
+
+    /** This is a special case of the templated operator=. Its purpose is to
+      * prevent a default operator= from hiding the templated operator=.
+      */
+    EIGEN_STRONG_INLINE Array& operator=(const Array& other)
+    {
+      return Base::_set(other);
+    }
+
+    /** Default constructor.
+      *
+      * For fixed-size matrices, does nothing.
+      *
+      * For dynamic-size matrices, creates an empty matrix of size 0. Does not allocate any array. Such a matrix
+      * is called a null matrix. This constructor is the unique way to create null matrices: resizing
+      * a matrix to 0 is not supported.
+      *
+      * \sa resize(Index,Index)
+      */
+    EIGEN_STRONG_INLINE Array() : Base()
+    {
+      Base::_check_template_params();
+      EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    // FIXME is it still needed ??
+    /** \internal */
+    Array(internal::constructor_without_unaligned_array_assert)
+      : Base(internal::constructor_without_unaligned_array_assert())
+    {
+      Base::_check_template_params();
+      EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+#endif
+
+#ifdef EIGEN_HAVE_RVALUE_REFERENCES
+    Array(Array&& other)
+      : Base(std::move(other))
+    {
+      Base::_check_template_params();
+      if (RowsAtCompileTime!=Dynamic && ColsAtCompileTime!=Dynamic)
+        Base::_set_noalias(other);
+    }
+    Array& operator=(Array&& other)
+    {
+      other.swap(*this);
+      return *this;
+    }
+#endif
+
+    /** Constructs a vector or row-vector with given dimension. \only_for_vectors
+      *
+      * Note that this is only useful for dynamic-size vectors. For fixed-size vectors,
+      * it is redundant to pass the dimension here, so it makes more sense to use the default
+      * constructor Matrix() instead.
+      */
+    EIGEN_STRONG_INLINE explicit Array(Index dim)
+      : Base(dim, RowsAtCompileTime == 1 ? 1 : dim, ColsAtCompileTime == 1 ? 1 : dim)
+    {
+      Base::_check_template_params();
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(Array)
+      eigen_assert(dim >= 0);
+      eigen_assert(SizeAtCompileTime == Dynamic || SizeAtCompileTime == dim);
+      EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename T0, typename T1>
+    EIGEN_STRONG_INLINE Array(const T0& val0, const T1& val1)
+    {
+      Base::_check_template_params();
+      this->template _init2<T0,T1>(val0, val1);
+    }
+    #else
+    /** constructs an uninitialized matrix with \a rows rows and \a cols columns.
+      *
+      * This is useful for dynamic-size matrices. For fixed-size matrices,
+      * it is redundant to pass these parameters, so one should use the default constructor
+      * Matrix() instead. */
+    Array(Index rows, Index cols);
+    /** constructs an initialized 2D vector with given coefficients */
+    Array(const Scalar& val0, const Scalar& val1);
+    #endif
+
+    /** constructs an initialized 3D vector with given coefficients */
+    EIGEN_STRONG_INLINE Array(const Scalar& val0, const Scalar& val1, const Scalar& val2)
+    {
+      Base::_check_template_params();
+      EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Array, 3)
+      m_storage.data()[0] = val0;
+      m_storage.data()[1] = val1;
+      m_storage.data()[2] = val2;
+    }
+    /** constructs an initialized 4D vector with given coefficients */
+    EIGEN_STRONG_INLINE Array(const Scalar& val0, const Scalar& val1, const Scalar& val2, const Scalar& val3)
+    {
+      Base::_check_template_params();
+      EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Array, 4)
+      m_storage.data()[0] = val0;
+      m_storage.data()[1] = val1;
+      m_storage.data()[2] = val2;
+      m_storage.data()[3] = val3;
+    }
+
+    explicit Array(const Scalar *data);
+
+    /** Constructor copying the value of the expression \a other */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Array(const ArrayBase<OtherDerived>& other)
+             : Base(other.rows() * other.cols(), other.rows(), other.cols())
+    {
+      Base::_check_template_params();
+      Base::_set_noalias(other);
+    }
+    /** Copy constructor */
+    EIGEN_STRONG_INLINE Array(const Array& other)
+            : Base(other.rows() * other.cols(), other.rows(), other.cols())
+    {
+      Base::_check_template_params();
+      Base::_set_noalias(other);
+    }
+    /** Copy constructor with in-place evaluation */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Array(const ReturnByValue<OtherDerived>& other)
+    {
+      Base::_check_template_params();
+      Base::resize(other.rows(), other.cols());
+      other.evalTo(*this);
+    }
+
+    /** \sa MatrixBase::operator=(const EigenBase<OtherDerived>&) */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Array(const EigenBase<OtherDerived> &other)
+      : Base(other.derived().rows() * other.derived().cols(), other.derived().rows(), other.derived().cols())
+    {
+      Base::_check_template_params();
+      Base::_resize_to_match(other);
+      *this = other;
+    }
+
+    /** Override MatrixBase::swap() since for dynamic-sized matrices of same type it is enough to swap the
+      * data pointers.
+      */
+    template<typename OtherDerived>
+    void swap(ArrayBase<OtherDerived> const & other)
+    { this->_swap(other.derived()); }
+
+    inline Index innerStride() const { return 1; }
+    inline Index outerStride() const { return this->innerSize(); }
+
+    #ifdef EIGEN_ARRAY_PLUGIN
+    #include EIGEN_ARRAY_PLUGIN
+    #endif
+
+  private:
+
+    template<typename MatrixType, typename OtherDerived, bool SwapPointers>
+    friend struct internal::matrix_swap_impl;
+};
+
+/** \defgroup arraytypedefs Global array typedefs
+  * \ingroup Core_Module
+  *
+  * Eigen defines several typedef shortcuts for most common 1D and 2D array types.
+  *
+  * The general patterns are the following:
+  *
+  * \c ArrayRowsColsType where \c Rows and \c Cols can be \c 2,\c 3,\c 4 for fixed size square matrices or \c X for dynamic size,
+  * and where \c Type can be \c i for integer, \c f for float, \c d for double, \c cf for complex float, \c cd
+  * for complex double.
+  *
+  * For example, \c Array33d is a fixed-size 3x3 array type of doubles, and \c ArrayXXf is a dynamic-size matrix of floats.
+  *
+  * There are also \c ArraySizeType which are self-explanatory. For example, \c Array4cf is
+  * a fixed-size 1D array of 4 complex floats.
+  *
+  * \sa class Array
+  */
+
+#define EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix)   \
+/** \ingroup arraytypedefs */                                    \
+typedef Array<Type, Size, Size> Array##SizeSuffix##SizeSuffix##TypeSuffix;  \
+/** \ingroup arraytypedefs */                                    \
+typedef Array<Type, Size, 1>    Array##SizeSuffix##TypeSuffix;
+
+#define EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, Size)         \
+/** \ingroup arraytypedefs */                                    \
+typedef Array<Type, Size, Dynamic> Array##Size##X##TypeSuffix;  \
+/** \ingroup arraytypedefs */                                    \
+typedef Array<Type, Dynamic, Size> Array##X##Size##TypeSuffix;
+
+#define EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \
+EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 2, 2) \
+EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 3, 3) \
+EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 4, 4) \
+EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, Dynamic, X) \
+EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 2) \
+EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 3) \
+EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 4)
+
+EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(int,                  i)
+EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(float,                f)
+EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(double,               d)
+EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(std::complex<float>,  cf)
+EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(std::complex<double>, cd)
+
+#undef EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES
+#undef EIGEN_MAKE_ARRAY_TYPEDEFS
+
+#undef EIGEN_MAKE_ARRAY_TYPEDEFS_LARGE
+
+#define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, SizeSuffix) \
+using Eigen::Matrix##SizeSuffix##TypeSuffix; \
+using Eigen::Vector##SizeSuffix##TypeSuffix; \
+using Eigen::RowVector##SizeSuffix##TypeSuffix;
+
+#define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(TypeSuffix) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 2) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 3) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 4) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, X) \
+
+#define EIGEN_USING_ARRAY_TYPEDEFS \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(i) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(f) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(d) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(cf) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(cd)
+
+} // end namespace Eigen
+
+#endif // EIGEN_ARRAY_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/ArrayBase.h b/vendor/eigen-3.2.8/Eigen/src/Core/ArrayBase.h
new file mode 100644
index 0000000..33ff553
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/ArrayBase.h
@@ -0,0 +1,226 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ARRAYBASE_H
+#define EIGEN_ARRAYBASE_H
+
+namespace Eigen { 
+
+template<typename ExpressionType> class MatrixWrapper;
+
+/** \class ArrayBase
+  * \ingroup Core_Module
+  *
+  * \brief Base class for all 1D and 2D array, and related expressions
+  *
+  * An array is similar to a dense vector or matrix. While matrices are mathematical
+  * objects with well defined linear algebra operators, an array is just a collection
+  * of scalar values arranged in a one or two dimensionnal fashion. As the main consequence,
+  * all operations applied to an array are performed coefficient wise. Furthermore,
+  * arrays support scalar math functions of the c++ standard library (e.g., std::sin(x)), and convenient
+  * constructors allowing to easily write generic code working for both scalar values
+  * and arrays.
+  *
+  * This class is the base that is inherited by all array expression types.
+  *
+  * \tparam Derived is the derived type, e.g., an array or an expression type.
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_ARRAYBASE_PLUGIN.
+  *
+  * \sa class MatrixBase, \ref TopicClassHierarchy
+  */
+template<typename Derived> class ArrayBase
+  : public DenseBase<Derived>
+{
+  public:
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** The base class for a given storage type. */
+    typedef ArrayBase StorageBaseType;
+
+    typedef ArrayBase Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl;
+
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    typedef DenseBase<Derived> Base;
+    using Base::operator*;
+    using Base::RowsAtCompileTime;
+    using Base::ColsAtCompileTime;
+    using Base::SizeAtCompileTime;
+    using Base::MaxRowsAtCompileTime;
+    using Base::MaxColsAtCompileTime;
+    using Base::MaxSizeAtCompileTime;
+    using Base::IsVectorAtCompileTime;
+    using Base::Flags;
+    using Base::CoeffReadCost;
+
+    using Base::derived;
+    using Base::const_cast_derived;
+    using Base::rows;
+    using Base::cols;
+    using Base::size;
+    using Base::coeff;
+    using Base::coeffRef;
+    using Base::lazyAssign;
+    using Base::operator=;
+    using Base::operator+=;
+    using Base::operator-=;
+    using Base::operator*=;
+    using Base::operator/=;
+
+    typedef typename Base::CoeffReturnType CoeffReturnType;
+
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal the plain matrix type corresponding to this expression. Note that is not necessarily
+      * exactly the return type of eval(): in the case of plain matrices, the return type of eval() is a const
+      * reference to a matrix, not a matrix! It is however guaranteed that the return type of eval() is either
+      * PlainObject or const PlainObject&.
+      */
+    typedef Array<typename internal::traits<Derived>::Scalar,
+                internal::traits<Derived>::RowsAtCompileTime,
+                internal::traits<Derived>::ColsAtCompileTime,
+                AutoAlign | (internal::traits<Derived>::Flags&RowMajorBit ? RowMajor : ColMajor),
+                internal::traits<Derived>::MaxRowsAtCompileTime,
+                internal::traits<Derived>::MaxColsAtCompileTime
+          > PlainObject;
+
+
+    /** \internal Represents a matrix with all coefficients equal to one another*/
+    typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,Derived> ConstantReturnType;
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::ArrayBase
+#   include "../plugins/CommonCwiseUnaryOps.h"
+#   include "../plugins/MatrixCwiseUnaryOps.h"
+#   include "../plugins/ArrayCwiseUnaryOps.h"
+#   include "../plugins/CommonCwiseBinaryOps.h"
+#   include "../plugins/MatrixCwiseBinaryOps.h"
+#   include "../plugins/ArrayCwiseBinaryOps.h"
+#   ifdef EIGEN_ARRAYBASE_PLUGIN
+#     include EIGEN_ARRAYBASE_PLUGIN
+#   endif
+#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
+
+    /** Special case of the template operator=, in order to prevent the compiler
+      * from generating a default operator= (issue hit with g++ 4.1)
+      */
+    Derived& operator=(const ArrayBase& other)
+    {
+      return internal::assign_selector<Derived,Derived>::run(derived(), other.derived());
+    }
+
+    Derived& operator+=(const Scalar& scalar)
+    { return *this = derived() + scalar; }
+    Derived& operator-=(const Scalar& scalar)
+    { return *this = derived() - scalar; }
+
+    template<typename OtherDerived>
+    Derived& operator+=(const ArrayBase<OtherDerived>& other);
+    template<typename OtherDerived>
+    Derived& operator-=(const ArrayBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    Derived& operator*=(const ArrayBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    Derived& operator/=(const ArrayBase<OtherDerived>& other);
+
+  public:
+    ArrayBase<Derived>& array() { return *this; }
+    const ArrayBase<Derived>& array() const { return *this; }
+
+    /** \returns an \link Eigen::MatrixBase Matrix \endlink expression of this array
+      * \sa MatrixBase::array() */
+    MatrixWrapper<Derived> matrix() { return derived(); }
+    const MatrixWrapper<const Derived> matrix() const { return derived(); }
+
+//     template<typename Dest>
+//     inline void evalTo(Dest& dst) const { dst = matrix(); }
+
+  protected:
+    ArrayBase() : Base() {}
+
+  private:
+    explicit ArrayBase(Index);
+    ArrayBase(Index,Index);
+    template<typename OtherDerived> explicit ArrayBase(const ArrayBase<OtherDerived>&);
+  protected:
+    // mixing arrays and matrices is not legal
+    template<typename OtherDerived> Derived& operator+=(const MatrixBase<OtherDerived>& )
+    {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
+    // mixing arrays and matrices is not legal
+    template<typename OtherDerived> Derived& operator-=(const MatrixBase<OtherDerived>& )
+    {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
+};
+
+/** replaces \c *this by \c *this - \a other.
+  *
+  * \returns a reference to \c *this
+  */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+ArrayBase<Derived>::operator-=(const ArrayBase<OtherDerived> &other)
+{
+  SelfCwiseBinaryOp<internal::scalar_difference_op<Scalar>, Derived, OtherDerived> tmp(derived());
+  tmp = other.derived();
+  return derived();
+}
+
+/** replaces \c *this by \c *this + \a other.
+  *
+  * \returns a reference to \c *this
+  */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+ArrayBase<Derived>::operator+=(const ArrayBase<OtherDerived>& other)
+{
+  SelfCwiseBinaryOp<internal::scalar_sum_op<Scalar>, Derived, OtherDerived> tmp(derived());
+  tmp = other.derived();
+  return derived();
+}
+
+/** replaces \c *this by \c *this * \a other coefficient wise.
+  *
+  * \returns a reference to \c *this
+  */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+ArrayBase<Derived>::operator*=(const ArrayBase<OtherDerived>& other)
+{
+  SelfCwiseBinaryOp<internal::scalar_product_op<Scalar>, Derived, OtherDerived> tmp(derived());
+  tmp = other.derived();
+  return derived();
+}
+
+/** replaces \c *this by \c *this / \a other coefficient wise.
+  *
+  * \returns a reference to \c *this
+  */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+ArrayBase<Derived>::operator/=(const ArrayBase<OtherDerived>& other)
+{
+  SelfCwiseBinaryOp<internal::scalar_quotient_op<Scalar>, Derived, OtherDerived> tmp(derived());
+  tmp = other.derived();
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ARRAYBASE_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/ArrayWrapper.h b/vendor/eigen-3.2.8/Eigen/src/Core/ArrayWrapper.h
new file mode 100644
index 0000000..b4641e2
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/ArrayWrapper.h
@@ -0,0 +1,264 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ARRAYWRAPPER_H
+#define EIGEN_ARRAYWRAPPER_H
+
+namespace Eigen { 
+
+/** \class ArrayWrapper
+  * \ingroup Core_Module
+  *
+  * \brief Expression of a mathematical vector or matrix as an array object
+  *
+  * This class is the return type of MatrixBase::array(), and most of the time
+  * this is the only way it is use.
+  *
+  * \sa MatrixBase::array(), class MatrixWrapper
+  */
+
+namespace internal {
+template<typename ExpressionType>
+struct traits<ArrayWrapper<ExpressionType> >
+  : public traits<typename remove_all<typename ExpressionType::Nested>::type >
+{
+  typedef ArrayXpr XprKind;
+  // Let's remove NestByRefBit
+  enum {
+    Flags0 = traits<typename remove_all<typename ExpressionType::Nested>::type >::Flags,
+    Flags = Flags0 & ~NestByRefBit
+  };
+};
+}
+
+template<typename ExpressionType>
+class ArrayWrapper : public ArrayBase<ArrayWrapper<ExpressionType> >
+{
+  public:
+    typedef ArrayBase<ArrayWrapper> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(ArrayWrapper)
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(ArrayWrapper)
+
+    typedef typename internal::conditional<
+                       internal::is_lvalue<ExpressionType>::value,
+                       Scalar,
+                       const Scalar
+                     >::type ScalarWithConstIfNotLvalue;
+
+    typedef typename internal::nested<ExpressionType>::type NestedExpressionType;
+
+    inline ArrayWrapper(ExpressionType& matrix) : m_expression(matrix) {}
+
+    inline Index rows() const { return m_expression.rows(); }
+    inline Index cols() const { return m_expression.cols(); }
+    inline Index outerStride() const { return m_expression.outerStride(); }
+    inline Index innerStride() const { return m_expression.innerStride(); }
+
+    inline ScalarWithConstIfNotLvalue* data() { return m_expression.const_cast_derived().data(); }
+    inline const Scalar* data() const { return m_expression.data(); }
+
+    inline CoeffReturnType coeff(Index rowId, Index colId) const
+    {
+      return m_expression.coeff(rowId, colId);
+    }
+
+    inline Scalar& coeffRef(Index rowId, Index colId)
+    {
+      return m_expression.const_cast_derived().coeffRef(rowId, colId);
+    }
+
+    inline const Scalar& coeffRef(Index rowId, Index colId) const
+    {
+      return m_expression.const_cast_derived().coeffRef(rowId, colId);
+    }
+
+    inline CoeffReturnType coeff(Index index) const
+    {
+      return m_expression.coeff(index);
+    }
+
+    inline Scalar& coeffRef(Index index)
+    {
+      return m_expression.const_cast_derived().coeffRef(index);
+    }
+
+    inline const Scalar& coeffRef(Index index) const
+    {
+      return m_expression.const_cast_derived().coeffRef(index);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index rowId, Index colId) const
+    {
+      return m_expression.template packet<LoadMode>(rowId, colId);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index rowId, Index colId, const PacketScalar& val)
+    {
+      m_expression.const_cast_derived().template writePacket<LoadMode>(rowId, colId, val);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index index) const
+    {
+      return m_expression.template packet<LoadMode>(index);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index index, const PacketScalar& val)
+    {
+      m_expression.const_cast_derived().template writePacket<LoadMode>(index, val);
+    }
+
+    template<typename Dest>
+    inline void evalTo(Dest& dst) const { dst = m_expression; }
+
+    const typename internal::remove_all<NestedExpressionType>::type& 
+    nestedExpression() const 
+    {
+      return m_expression;
+    }
+
+    /** Forwards the resizing request to the nested expression
+      * \sa DenseBase::resize(Index)  */
+    void resize(Index newSize) { m_expression.const_cast_derived().resize(newSize); }
+    /** Forwards the resizing request to the nested expression
+      * \sa DenseBase::resize(Index,Index)*/
+    void resize(Index nbRows, Index nbCols) { m_expression.const_cast_derived().resize(nbRows,nbCols); }
+
+  protected:
+    NestedExpressionType m_expression;
+};
+
+/** \class MatrixWrapper
+  * \ingroup Core_Module
+  *
+  * \brief Expression of an array as a mathematical vector or matrix
+  *
+  * This class is the return type of ArrayBase::matrix(), and most of the time
+  * this is the only way it is use.
+  *
+  * \sa MatrixBase::matrix(), class ArrayWrapper
+  */
+
+namespace internal {
+template<typename ExpressionType>
+struct traits<MatrixWrapper<ExpressionType> >
+ : public traits<typename remove_all<typename ExpressionType::Nested>::type >
+{
+  typedef MatrixXpr XprKind;
+  // Let's remove NestByRefBit
+  enum {
+    Flags0 = traits<typename remove_all<typename ExpressionType::Nested>::type >::Flags,
+    Flags = Flags0 & ~NestByRefBit
+  };
+};
+}
+
+template<typename ExpressionType>
+class MatrixWrapper : public MatrixBase<MatrixWrapper<ExpressionType> >
+{
+  public:
+    typedef MatrixBase<MatrixWrapper<ExpressionType> > Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(MatrixWrapper)
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(MatrixWrapper)
+
+    typedef typename internal::conditional<
+                       internal::is_lvalue<ExpressionType>::value,
+                       Scalar,
+                       const Scalar
+                     >::type ScalarWithConstIfNotLvalue;
+
+    typedef typename internal::nested<ExpressionType>::type NestedExpressionType;
+
+    inline MatrixWrapper(ExpressionType& a_matrix) : m_expression(a_matrix) {}
+
+    inline Index rows() const { return m_expression.rows(); }
+    inline Index cols() const { return m_expression.cols(); }
+    inline Index outerStride() const { return m_expression.outerStride(); }
+    inline Index innerStride() const { return m_expression.innerStride(); }
+
+    inline ScalarWithConstIfNotLvalue* data() { return m_expression.const_cast_derived().data(); }
+    inline const Scalar* data() const { return m_expression.data(); }
+
+    inline CoeffReturnType coeff(Index rowId, Index colId) const
+    {
+      return m_expression.coeff(rowId, colId);
+    }
+
+    inline Scalar& coeffRef(Index rowId, Index colId)
+    {
+      return m_expression.const_cast_derived().coeffRef(rowId, colId);
+    }
+
+    inline const Scalar& coeffRef(Index rowId, Index colId) const
+    {
+      return m_expression.derived().coeffRef(rowId, colId);
+    }
+
+    inline CoeffReturnType coeff(Index index) const
+    {
+      return m_expression.coeff(index);
+    }
+
+    inline Scalar& coeffRef(Index index)
+    {
+      return m_expression.const_cast_derived().coeffRef(index);
+    }
+
+    inline const Scalar& coeffRef(Index index) const
+    {
+      return m_expression.const_cast_derived().coeffRef(index);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index rowId, Index colId) const
+    {
+      return m_expression.template packet<LoadMode>(rowId, colId);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index rowId, Index colId, const PacketScalar& val)
+    {
+      m_expression.const_cast_derived().template writePacket<LoadMode>(rowId, colId, val);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index index) const
+    {
+      return m_expression.template packet<LoadMode>(index);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index index, const PacketScalar& val)
+    {
+      m_expression.const_cast_derived().template writePacket<LoadMode>(index, val);
+    }
+
+    const typename internal::remove_all<NestedExpressionType>::type& 
+    nestedExpression() const 
+    {
+      return m_expression;
+    }
+
+    /** Forwards the resizing request to the nested expression
+      * \sa DenseBase::resize(Index)  */
+    void resize(Index newSize) { m_expression.const_cast_derived().resize(newSize); }
+    /** Forwards the resizing request to the nested expression
+      * \sa DenseBase::resize(Index,Index)*/
+    void resize(Index nbRows, Index nbCols) { m_expression.const_cast_derived().resize(nbRows,nbCols); }
+
+  protected:
+    NestedExpressionType m_expression;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_ARRAYWRAPPER_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/Assign.h b/vendor/eigen-3.2.8/Eigen/src/Core/Assign.h
new file mode 100644
index 0000000..f481731
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/Assign.h
@@ -0,0 +1,590 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007 Michael Olbrich <michael.olbrich at gmx.net>
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ASSIGN_H
+#define EIGEN_ASSIGN_H
+
+namespace Eigen {
+
+namespace internal {
+
+/***************************************************************************
+* Part 1 : the logic deciding a strategy for traversal and unrolling       *
+***************************************************************************/
+
+template <typename Derived, typename OtherDerived>
+struct assign_traits
+{
+public:
+  enum {
+    DstIsAligned = Derived::Flags & AlignedBit,
+    DstHasDirectAccess = Derived::Flags & DirectAccessBit,
+    SrcIsAligned = OtherDerived::Flags & AlignedBit,
+    JointAlignment = bool(DstIsAligned) && bool(SrcIsAligned) ? Aligned : Unaligned
+  };
+
+private:
+  enum {
+    InnerSize = int(Derived::IsVectorAtCompileTime) ? int(Derived::SizeAtCompileTime)
+              : int(Derived::Flags)&RowMajorBit ? int(Derived::ColsAtCompileTime)
+              : int(Derived::RowsAtCompileTime),
+    InnerMaxSize = int(Derived::IsVectorAtCompileTime) ? int(Derived::MaxSizeAtCompileTime)
+              : int(Derived::Flags)&RowMajorBit ? int(Derived::MaxColsAtCompileTime)
+              : int(Derived::MaxRowsAtCompileTime),
+    MaxSizeAtCompileTime = Derived::SizeAtCompileTime,
+    PacketSize = packet_traits<typename Derived::Scalar>::size
+  };
+
+  enum {
+    StorageOrdersAgree = (int(Derived::IsRowMajor) == int(OtherDerived::IsRowMajor)),
+    MightVectorize = StorageOrdersAgree
+                  && (int(Derived::Flags) & int(OtherDerived::Flags) & ActualPacketAccessBit),
+    MayInnerVectorize  = MightVectorize && int(InnerSize)!=Dynamic && int(InnerSize)%int(PacketSize)==0
+                       && int(DstIsAligned) && int(SrcIsAligned),
+    MayLinearize = StorageOrdersAgree && (int(Derived::Flags) & int(OtherDerived::Flags) & LinearAccessBit),
+    MayLinearVectorize = MightVectorize && MayLinearize && DstHasDirectAccess
+                       && (DstIsAligned || MaxSizeAtCompileTime == Dynamic),
+      /* If the destination isn't aligned, we have to do runtime checks and we don't unroll,
+         so it's only good for large enough sizes. */
+    MaySliceVectorize  = MightVectorize && DstHasDirectAccess
+                       && (int(InnerMaxSize)==Dynamic || int(InnerMaxSize)>=3*PacketSize)
+      /* slice vectorization can be slow, so we only want it if the slices are big, which is
+         indicated by InnerMaxSize rather than InnerSize, think of the case of a dynamic block
+         in a fixed-size matrix */
+  };
+
+public:
+  enum {
+    Traversal = int(MayInnerVectorize)  ? int(InnerVectorizedTraversal)
+              : int(MayLinearVectorize) ? int(LinearVectorizedTraversal)
+              : int(MaySliceVectorize)  ? int(SliceVectorizedTraversal)
+              : int(MayLinearize)       ? int(LinearTraversal)
+                                        : int(DefaultTraversal),
+    Vectorized = int(Traversal) == InnerVectorizedTraversal
+              || int(Traversal) == LinearVectorizedTraversal
+              || int(Traversal) == SliceVectorizedTraversal
+  };
+
+private:
+  enum {
+    UnrollingLimit      = EIGEN_UNROLLING_LIMIT * (Vectorized ? int(PacketSize) : 1),
+    MayUnrollCompletely = int(Derived::SizeAtCompileTime) != Dynamic
+                       && int(OtherDerived::CoeffReadCost) != Dynamic
+                       && int(Derived::SizeAtCompileTime) * int(OtherDerived::CoeffReadCost) <= int(UnrollingLimit),
+    MayUnrollInner      = int(InnerSize) != Dynamic
+                       && int(OtherDerived::CoeffReadCost) != Dynamic
+                       && int(InnerSize) * int(OtherDerived::CoeffReadCost) <= int(UnrollingLimit)
+  };
+
+public:
+  enum {
+    Unrolling = (int(Traversal) == int(InnerVectorizedTraversal) || int(Traversal) == int(DefaultTraversal))
+                ? (
+                    int(MayUnrollCompletely) ? int(CompleteUnrolling)
+                  : int(MayUnrollInner)      ? int(InnerUnrolling)
+                                             : int(NoUnrolling)
+                  )
+              : int(Traversal) == int(LinearVectorizedTraversal)
+                ? ( bool(MayUnrollCompletely) && bool(DstIsAligned) ? int(CompleteUnrolling) : int(NoUnrolling) )
+              : int(Traversal) == int(LinearTraversal)
+                ? ( bool(MayUnrollCompletely) ? int(CompleteUnrolling) : int(NoUnrolling) )
+              : int(NoUnrolling)
+  };
+
+#ifdef EIGEN_DEBUG_ASSIGN
+  static void debug()
+  {
+    EIGEN_DEBUG_VAR(DstIsAligned)
+    EIGEN_DEBUG_VAR(SrcIsAligned)
+    EIGEN_DEBUG_VAR(JointAlignment)
+    EIGEN_DEBUG_VAR(InnerSize)
+    EIGEN_DEBUG_VAR(InnerMaxSize)
+    EIGEN_DEBUG_VAR(PacketSize)
+    EIGEN_DEBUG_VAR(StorageOrdersAgree)
+    EIGEN_DEBUG_VAR(MightVectorize)
+    EIGEN_DEBUG_VAR(MayLinearize)
+    EIGEN_DEBUG_VAR(MayInnerVectorize)
+    EIGEN_DEBUG_VAR(MayLinearVectorize)
+    EIGEN_DEBUG_VAR(MaySliceVectorize)
+    EIGEN_DEBUG_VAR(Traversal)
+    EIGEN_DEBUG_VAR(UnrollingLimit)
+    EIGEN_DEBUG_VAR(MayUnrollCompletely)
+    EIGEN_DEBUG_VAR(MayUnrollInner)
+    EIGEN_DEBUG_VAR(Unrolling)
+  }
+#endif
+};
+
+/***************************************************************************
+* Part 2 : meta-unrollers
+***************************************************************************/
+
+/************************
+*** Default traversal ***
+************************/
+
+template<typename Derived1, typename Derived2, int Index, int Stop>
+struct assign_DefaultTraversal_CompleteUnrolling
+{
+  enum {
+    outer = Index / Derived1::InnerSizeAtCompileTime,
+    inner = Index % Derived1::InnerSizeAtCompileTime
+  };
+
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    dst.copyCoeffByOuterInner(outer, inner, src);
+    assign_DefaultTraversal_CompleteUnrolling<Derived1, Derived2, Index+1, Stop>::run(dst, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Stop>
+struct assign_DefaultTraversal_CompleteUnrolling<Derived1, Derived2, Stop, Stop>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &, const Derived2 &) {}
+};
+
+template<typename Derived1, typename Derived2, int Index, int Stop>
+struct assign_DefaultTraversal_InnerUnrolling
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src, typename Derived1::Index outer)
+  {
+    dst.copyCoeffByOuterInner(outer, Index, src);
+    assign_DefaultTraversal_InnerUnrolling<Derived1, Derived2, Index+1, Stop>::run(dst, src, outer);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Stop>
+struct assign_DefaultTraversal_InnerUnrolling<Derived1, Derived2, Stop, Stop>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &, const Derived2 &, typename Derived1::Index) {}
+};
+
+/***********************
+*** Linear traversal ***
+***********************/
+
+template<typename Derived1, typename Derived2, int Index, int Stop>
+struct assign_LinearTraversal_CompleteUnrolling
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    dst.copyCoeff(Index, src);
+    assign_LinearTraversal_CompleteUnrolling<Derived1, Derived2, Index+1, Stop>::run(dst, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Stop>
+struct assign_LinearTraversal_CompleteUnrolling<Derived1, Derived2, Stop, Stop>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &, const Derived2 &) {}
+};
+
+/**************************
+*** Inner vectorization ***
+**************************/
+
+template<typename Derived1, typename Derived2, int Index, int Stop>
+struct assign_innervec_CompleteUnrolling
+{
+  enum {
+    outer = Index / Derived1::InnerSizeAtCompileTime,
+    inner = Index % Derived1::InnerSizeAtCompileTime,
+    JointAlignment = assign_traits<Derived1,Derived2>::JointAlignment
+  };
+
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    dst.template copyPacketByOuterInner<Derived2, Aligned, JointAlignment>(outer, inner, src);
+    assign_innervec_CompleteUnrolling<Derived1, Derived2,
+      Index+packet_traits<typename Derived1::Scalar>::size, Stop>::run(dst, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Stop>
+struct assign_innervec_CompleteUnrolling<Derived1, Derived2, Stop, Stop>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &, const Derived2 &) {}
+};
+
+template<typename Derived1, typename Derived2, int Index, int Stop>
+struct assign_innervec_InnerUnrolling
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src, typename Derived1::Index outer)
+  {
+    dst.template copyPacketByOuterInner<Derived2, Aligned, Aligned>(outer, Index, src);
+    assign_innervec_InnerUnrolling<Derived1, Derived2,
+      Index+packet_traits<typename Derived1::Scalar>::size, Stop>::run(dst, src, outer);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Stop>
+struct assign_innervec_InnerUnrolling<Derived1, Derived2, Stop, Stop>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &, const Derived2 &, typename Derived1::Index) {}
+};
+
+/***************************************************************************
+* Part 3 : implementation of all cases
+***************************************************************************/
+
+template<typename Derived1, typename Derived2,
+         int Traversal = assign_traits<Derived1, Derived2>::Traversal,
+         int Unrolling = assign_traits<Derived1, Derived2>::Unrolling,
+         int Version = Specialized>
+struct assign_impl;
+
+/************************
+*** Default traversal ***
+************************/
+
+template<typename Derived1, typename Derived2, int Unrolling, int Version>
+struct assign_impl<Derived1, Derived2, InvalidTraversal, Unrolling, Version>
+{
+  static inline void run(Derived1 &, const Derived2 &) { }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, DefaultTraversal, NoUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    const Index innerSize = dst.innerSize();
+    const Index outerSize = dst.outerSize();
+    for(Index outer = 0; outer < outerSize; ++outer)
+      for(Index inner = 0; inner < innerSize; ++inner)
+        dst.copyCoeffByOuterInner(outer, inner, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, DefaultTraversal, CompleteUnrolling, Version>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    assign_DefaultTraversal_CompleteUnrolling<Derived1, Derived2, 0, Derived1::SizeAtCompileTime>
+      ::run(dst, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, DefaultTraversal, InnerUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    const Index outerSize = dst.outerSize();
+    for(Index outer = 0; outer < outerSize; ++outer)
+      assign_DefaultTraversal_InnerUnrolling<Derived1, Derived2, 0, Derived1::InnerSizeAtCompileTime>
+        ::run(dst, src, outer);
+  }
+};
+
+/***********************
+*** Linear traversal ***
+***********************/
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, LinearTraversal, NoUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    const Index size = dst.size();
+    for(Index i = 0; i < size; ++i)
+      dst.copyCoeff(i, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, LinearTraversal, CompleteUnrolling, Version>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    assign_LinearTraversal_CompleteUnrolling<Derived1, Derived2, 0, Derived1::SizeAtCompileTime>
+      ::run(dst, src);
+  }
+};
+
+/**************************
+*** Inner vectorization ***
+**************************/
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, InnerVectorizedTraversal, NoUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    const Index innerSize = dst.innerSize();
+    const Index outerSize = dst.outerSize();
+    const Index packetSize = packet_traits<typename Derived1::Scalar>::size;
+    for(Index outer = 0; outer < outerSize; ++outer)
+      for(Index inner = 0; inner < innerSize; inner+=packetSize)
+        dst.template copyPacketByOuterInner<Derived2, Aligned, Aligned>(outer, inner, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, InnerVectorizedTraversal, CompleteUnrolling, Version>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    assign_innervec_CompleteUnrolling<Derived1, Derived2, 0, Derived1::SizeAtCompileTime>
+      ::run(dst, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, InnerVectorizedTraversal, InnerUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    const Index outerSize = dst.outerSize();
+    for(Index outer = 0; outer < outerSize; ++outer)
+      assign_innervec_InnerUnrolling<Derived1, Derived2, 0, Derived1::InnerSizeAtCompileTime>
+        ::run(dst, src, outer);
+  }
+};
+
+/***************************
+*** Linear vectorization ***
+***************************/
+
+template <bool IsAligned = false>
+struct unaligned_assign_impl
+{
+  template <typename Derived, typename OtherDerived>
+  static EIGEN_STRONG_INLINE void run(const Derived&, OtherDerived&, typename Derived::Index, typename Derived::Index) {}
+};
+
+template <>
+struct unaligned_assign_impl<false>
+{
+  // MSVC must not inline this functions. If it does, it fails to optimize the
+  // packet access path.
+#ifdef _MSC_VER
+  template <typename Derived, typename OtherDerived>
+  static EIGEN_DONT_INLINE void run(const Derived& src, OtherDerived& dst, typename Derived::Index start, typename Derived::Index end)
+#else
+  template <typename Derived, typename OtherDerived>
+  static EIGEN_STRONG_INLINE void run(const Derived& src, OtherDerived& dst, typename Derived::Index start, typename Derived::Index end)
+#endif
+  {
+    for (typename Derived::Index index = start; index < end; ++index)
+      dst.copyCoeff(index, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, LinearVectorizedTraversal, NoUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    const Index size = dst.size();
+    typedef packet_traits<typename Derived1::Scalar> PacketTraits;
+    enum {
+      packetSize = PacketTraits::size,
+      dstAlignment = PacketTraits::AlignedOnScalar ? Aligned : int(assign_traits<Derived1,Derived2>::DstIsAligned) ,
+      srcAlignment = assign_traits<Derived1,Derived2>::JointAlignment
+    };
+    const Index alignedStart = assign_traits<Derived1,Derived2>::DstIsAligned ? 0
+                             : internal::first_aligned(&dst.coeffRef(0), size);
+    const Index alignedEnd = alignedStart + ((size-alignedStart)/packetSize)*packetSize;
+
+    unaligned_assign_impl<assign_traits<Derived1,Derived2>::DstIsAligned!=0>::run(src,dst,0,alignedStart);
+
+    for(Index index = alignedStart; index < alignedEnd; index += packetSize)
+    {
+      dst.template copyPacket<Derived2, dstAlignment, srcAlignment>(index, src);
+    }
+
+    unaligned_assign_impl<>::run(src,dst,alignedEnd,size);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, LinearVectorizedTraversal, CompleteUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    enum { size = Derived1::SizeAtCompileTime,
+           packetSize = packet_traits<typename Derived1::Scalar>::size,
+           alignedSize = (size/packetSize)*packetSize };
+
+    assign_innervec_CompleteUnrolling<Derived1, Derived2, 0, alignedSize>::run(dst, src);
+    assign_DefaultTraversal_CompleteUnrolling<Derived1, Derived2, alignedSize, size>::run(dst, src);
+  }
+};
+
+/**************************
+*** Slice vectorization ***
+***************************/
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, SliceVectorizedTraversal, NoUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    typedef typename Derived1::Scalar Scalar;
+    typedef packet_traits<Scalar> PacketTraits;
+    enum {
+      packetSize = PacketTraits::size,
+      alignable = PacketTraits::AlignedOnScalar,
+      dstIsAligned = assign_traits<Derived1,Derived2>::DstIsAligned,
+      dstAlignment = alignable ? Aligned : int(dstIsAligned),
+      srcAlignment = assign_traits<Derived1,Derived2>::JointAlignment
+    };
+    const Scalar *dst_ptr = &dst.coeffRef(0,0);
+    if((!bool(dstIsAligned)) && (size_t(dst_ptr) % sizeof(Scalar))>0)
+    {
+      // the pointer is not aligend-on scalar, so alignment is not possible
+      return assign_impl<Derived1,Derived2,DefaultTraversal,NoUnrolling>::run(dst, src);
+    }
+    const Index packetAlignedMask = packetSize - 1;
+    const Index innerSize = dst.innerSize();
+    const Index outerSize = dst.outerSize();
+    const Index alignedStep = alignable ? (packetSize - dst.outerStride() % packetSize) & packetAlignedMask : 0;
+    Index alignedStart = ((!alignable) || bool(dstIsAligned)) ? 0 : internal::first_aligned(dst_ptr, innerSize);
+
+    for(Index outer = 0; outer < outerSize; ++outer)
+    {
+      const Index alignedEnd = alignedStart + ((innerSize-alignedStart) & ~packetAlignedMask);
+      // do the non-vectorizable part of the assignment
+      for(Index inner = 0; inner<alignedStart ; ++inner)
+        dst.copyCoeffByOuterInner(outer, inner, src);
+
+      // do the vectorizable part of the assignment
+      for(Index inner = alignedStart; inner<alignedEnd; inner+=packetSize)
+        dst.template copyPacketByOuterInner<Derived2, dstAlignment, Unaligned>(outer, inner, src);
+
+      // do the non-vectorizable part of the assignment
+      for(Index inner = alignedEnd; inner<innerSize ; ++inner)
+        dst.copyCoeffByOuterInner(outer, inner, src);
+
+      alignedStart = std::min<Index>((alignedStart+alignedStep)%packetSize, innerSize);
+    }
+  }
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* Part 4 : implementation of DenseBase methods
+***************************************************************************/
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived& DenseBase<Derived>
+  ::lazyAssign(const DenseBase<OtherDerived>& other)
+{
+  enum{
+    SameType = internal::is_same<typename Derived::Scalar,typename OtherDerived::Scalar>::value
+  };
+
+  EIGEN_STATIC_ASSERT_LVALUE(Derived)
+  EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Derived,OtherDerived)
+  EIGEN_STATIC_ASSERT(SameType,YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+#ifdef EIGEN_DEBUG_ASSIGN
+  internal::assign_traits<Derived, OtherDerived>::debug();
+#endif
+  eigen_assert(rows() == other.rows() && cols() == other.cols());
+  internal::assign_impl<Derived, OtherDerived, int(SameType) ? int(internal::assign_traits<Derived, OtherDerived>::Traversal)
+                                                       : int(InvalidTraversal)>::run(derived(),other.derived());
+#ifndef EIGEN_NO_DEBUG
+  checkTransposeAliasing(other.derived());
+#endif
+  return derived();
+}
+
+namespace internal {
+
+template<typename Derived, typename OtherDerived,
+         bool EvalBeforeAssigning = (int(internal::traits<OtherDerived>::Flags) & EvalBeforeAssigningBit) != 0,
+         bool NeedToTranspose = ((int(Derived::RowsAtCompileTime) == 1 && int(OtherDerived::ColsAtCompileTime) == 1)
+                              |   // FIXME | instead of || to please GCC 4.4.0 stupid warning "suggest parentheses around &&".
+                                  // revert to || as soon as not needed anymore.
+                                  (int(Derived::ColsAtCompileTime) == 1 && int(OtherDerived::RowsAtCompileTime) == 1))
+                              && int(Derived::SizeAtCompileTime) != 1>
+struct assign_selector;
+
+template<typename Derived, typename OtherDerived>
+struct assign_selector<Derived,OtherDerived,false,false> {
+  static EIGEN_STRONG_INLINE Derived& run(Derived& dst, const OtherDerived& other) { return dst.lazyAssign(other.derived()); }
+  template<typename ActualDerived, typename ActualOtherDerived>
+  static EIGEN_STRONG_INLINE Derived& evalTo(ActualDerived& dst, const ActualOtherDerived& other) { other.evalTo(dst); return dst; }
+};
+template<typename Derived, typename OtherDerived>
+struct assign_selector<Derived,OtherDerived,true,false> {
+  static EIGEN_STRONG_INLINE Derived& run(Derived& dst, const OtherDerived& other) { return dst.lazyAssign(other.eval()); }
+};
+template<typename Derived, typename OtherDerived>
+struct assign_selector<Derived,OtherDerived,false,true> {
+  static EIGEN_STRONG_INLINE Derived& run(Derived& dst, const OtherDerived& other) { return dst.lazyAssign(other.transpose()); }
+  template<typename ActualDerived, typename ActualOtherDerived>
+  static EIGEN_STRONG_INLINE Derived& evalTo(ActualDerived& dst, const ActualOtherDerived& other) { Transpose<ActualDerived> dstTrans(dst); other.evalTo(dstTrans); return dst; }
+};
+template<typename Derived, typename OtherDerived>
+struct assign_selector<Derived,OtherDerived,true,true> {
+  static EIGEN_STRONG_INLINE Derived& run(Derived& dst, const OtherDerived& other) { return dst.lazyAssign(other.transpose().eval()); }
+};
+
+} // end namespace internal
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::operator=(const DenseBase<OtherDerived>& other)
+{
+  return internal::assign_selector<Derived,OtherDerived>::run(derived(), other.derived());
+}
+
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::operator=(const DenseBase& other)
+{
+  return internal::assign_selector<Derived,Derived>::run(derived(), other.derived());
+}
+
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const MatrixBase& other)
+{
+  return internal::assign_selector<Derived,Derived>::run(derived(), other.derived());
+}
+
+template<typename Derived>
+template <typename OtherDerived>
+EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const DenseBase<OtherDerived>& other)
+{
+  return internal::assign_selector<Derived,OtherDerived>::run(derived(), other.derived());
+}
+
+template<typename Derived>
+template <typename OtherDerived>
+EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const EigenBase<OtherDerived>& other)
+{
+  return internal::assign_selector<Derived,OtherDerived,false>::evalTo(derived(), other.derived());
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const ReturnByValue<OtherDerived>& other)
+{
+  return internal::assign_selector<Derived,OtherDerived,false>::evalTo(derived(), other.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ASSIGN_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Assign_MKL.h b/vendor/eigen-3.2.8/Eigen/src/Core/Assign_MKL.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/Assign_MKL.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/Assign_MKL.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/BandMatrix.h b/vendor/eigen-3.2.8/Eigen/src/Core/BandMatrix.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/BandMatrix.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/BandMatrix.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/Block.h b/vendor/eigen-3.2.8/Eigen/src/Core/Block.h
new file mode 100644
index 0000000..8278944
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/Block.h
@@ -0,0 +1,406 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BLOCK_H
+#define EIGEN_BLOCK_H
+
+namespace Eigen { 
+
+/** \class Block
+  * \ingroup Core_Module
+  *
+  * \brief Expression of a fixed-size or dynamic-size block
+  *
+  * \param XprType the type of the expression in which we are taking a block
+  * \param BlockRows the number of rows of the block we are taking at compile time (optional)
+  * \param BlockCols the number of columns of the block we are taking at compile time (optional)
+  *
+  * This class represents an expression of either a fixed-size or dynamic-size block. It is the return
+  * type of DenseBase::block(Index,Index,Index,Index) and DenseBase::block<int,int>(Index,Index) and
+  * most of the time this is the only way it is used.
+  *
+  * However, if you want to directly maniputate block expressions,
+  * for instance if you want to write a function returning such an expression, you
+  * will need to use this class.
+  *
+  * Here is an example illustrating the dynamic case:
+  * \include class_Block.cpp
+  * Output: \verbinclude class_Block.out
+  *
+  * \note Even though this expression has dynamic size, in the case where \a XprType
+  * has fixed size, this expression inherits a fixed maximal size which means that evaluating
+  * it does not cause a dynamic memory allocation.
+  *
+  * Here is an example illustrating the fixed-size case:
+  * \include class_FixedBlock.cpp
+  * Output: \verbinclude class_FixedBlock.out
+  *
+  * \sa DenseBase::block(Index,Index,Index,Index), DenseBase::block(Index,Index), class VectorBlock
+  */
+
+namespace internal {
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
+struct traits<Block<XprType, BlockRows, BlockCols, InnerPanel> > : traits<XprType>
+{
+  typedef typename traits<XprType>::Scalar Scalar;
+  typedef typename traits<XprType>::StorageKind StorageKind;
+  typedef typename traits<XprType>::XprKind XprKind;
+  typedef typename nested<XprType>::type XprTypeNested;
+  typedef typename remove_reference<XprTypeNested>::type _XprTypeNested;
+  enum{
+    MatrixRows = traits<XprType>::RowsAtCompileTime,
+    MatrixCols = traits<XprType>::ColsAtCompileTime,
+    RowsAtCompileTime = MatrixRows == 0 ? 0 : BlockRows,
+    ColsAtCompileTime = MatrixCols == 0 ? 0 : BlockCols,
+    MaxRowsAtCompileTime = BlockRows==0 ? 0
+                         : RowsAtCompileTime != Dynamic ? int(RowsAtCompileTime)
+                         : int(traits<XprType>::MaxRowsAtCompileTime),
+    MaxColsAtCompileTime = BlockCols==0 ? 0
+                         : ColsAtCompileTime != Dynamic ? int(ColsAtCompileTime)
+                         : int(traits<XprType>::MaxColsAtCompileTime),
+    XprTypeIsRowMajor = (int(traits<XprType>::Flags)&RowMajorBit) != 0,
+    IsDense = is_same<StorageKind,Dense>::value,
+    IsRowMajor = (IsDense&&MaxRowsAtCompileTime==1&&MaxColsAtCompileTime!=1) ? 1
+               : (IsDense&&MaxColsAtCompileTime==1&&MaxRowsAtCompileTime!=1) ? 0
+               : XprTypeIsRowMajor,
+    HasSameStorageOrderAsXprType = (IsRowMajor == XprTypeIsRowMajor),
+    InnerSize = IsRowMajor ? int(ColsAtCompileTime) : int(RowsAtCompileTime),
+    InnerStrideAtCompileTime = HasSameStorageOrderAsXprType
+                             ? int(inner_stride_at_compile_time<XprType>::ret)
+                             : int(outer_stride_at_compile_time<XprType>::ret),
+    OuterStrideAtCompileTime = HasSameStorageOrderAsXprType
+                             ? int(outer_stride_at_compile_time<XprType>::ret)
+                             : int(inner_stride_at_compile_time<XprType>::ret),
+    MaskPacketAccessBit = (InnerSize == Dynamic || (InnerSize % packet_traits<Scalar>::size) == 0)
+                       && (InnerStrideAtCompileTime == 1)
+                        ? PacketAccessBit : 0,
+    MaskAlignedBit = (InnerPanel && (OuterStrideAtCompileTime!=Dynamic) && (((OuterStrideAtCompileTime * int(sizeof(Scalar))) % 16) == 0)) ? AlignedBit : 0,
+    FlagsLinearAccessBit = (RowsAtCompileTime == 1 || ColsAtCompileTime == 1 || (InnerPanel && (traits<XprType>::Flags&LinearAccessBit))) ? LinearAccessBit : 0,
+    FlagsLvalueBit = is_lvalue<XprType>::value ? LvalueBit : 0,
+    FlagsRowMajorBit = IsRowMajor ? RowMajorBit : 0,
+    Flags0 = traits<XprType>::Flags & ( (HereditaryBits & ~RowMajorBit) |
+                                        DirectAccessBit |
+                                        MaskPacketAccessBit |
+                                        MaskAlignedBit),
+    Flags = Flags0 | FlagsLinearAccessBit | FlagsLvalueBit | FlagsRowMajorBit
+  };
+};
+
+template<typename XprType, int BlockRows=Dynamic, int BlockCols=Dynamic, bool InnerPanel = false,
+         bool HasDirectAccess = internal::has_direct_access<XprType>::ret> class BlockImpl_dense;
+         
+} // end namespace internal
+
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel, typename StorageKind> class BlockImpl;
+
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel> class Block
+  : public BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, typename internal::traits<XprType>::StorageKind>
+{
+    typedef BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, typename internal::traits<XprType>::StorageKind> Impl;
+  public:
+    //typedef typename Impl::Base Base;
+    typedef Impl Base;
+    EIGEN_GENERIC_PUBLIC_INTERFACE(Block)
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Block)
+  
+    /** Column or Row constructor
+      */
+    inline Block(XprType& xpr, Index i) : Impl(xpr,i)
+    {
+      eigen_assert( (i>=0) && (
+          ((BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) && i<xpr.rows())
+        ||((BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) && i<xpr.cols())));
+    }
+
+    /** Fixed-size constructor
+      */
+    inline Block(XprType& xpr, Index a_startRow, Index a_startCol)
+      : Impl(xpr, a_startRow, a_startCol)
+    {
+      EIGEN_STATIC_ASSERT(RowsAtCompileTime!=Dynamic && ColsAtCompileTime!=Dynamic,THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE)
+      eigen_assert(a_startRow >= 0 && BlockRows >= 1 && a_startRow + BlockRows <= xpr.rows()
+             && a_startCol >= 0 && BlockCols >= 1 && a_startCol + BlockCols <= xpr.cols());
+    }
+
+    /** Dynamic-size constructor
+      */
+    inline Block(XprType& xpr,
+          Index a_startRow, Index a_startCol,
+          Index blockRows, Index blockCols)
+      : Impl(xpr, a_startRow, a_startCol, blockRows, blockCols)
+    {
+      eigen_assert((RowsAtCompileTime==Dynamic || RowsAtCompileTime==blockRows)
+          && (ColsAtCompileTime==Dynamic || ColsAtCompileTime==blockCols));
+      eigen_assert(a_startRow >= 0 && blockRows >= 0 && a_startRow  <= xpr.rows() - blockRows
+          && a_startCol >= 0 && blockCols >= 0 && a_startCol <= xpr.cols() - blockCols);
+    }
+};
+         
+// The generic default implementation for dense block simplu forward to the internal::BlockImpl_dense
+// that must be specialized for direct and non-direct access...
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
+class BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, Dense>
+  : public internal::BlockImpl_dense<XprType, BlockRows, BlockCols, InnerPanel>
+{
+    typedef internal::BlockImpl_dense<XprType, BlockRows, BlockCols, InnerPanel> Impl;
+    typedef typename XprType::Index Index;
+  public:
+    typedef Impl Base;
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl)
+    inline BlockImpl(XprType& xpr, Index i) : Impl(xpr,i) {}
+    inline BlockImpl(XprType& xpr, Index a_startRow, Index a_startCol) : Impl(xpr, a_startRow, a_startCol) {}
+    inline BlockImpl(XprType& xpr, Index a_startRow, Index a_startCol, Index blockRows, Index blockCols)
+      : Impl(xpr, a_startRow, a_startCol, blockRows, blockCols) {}
+};
+
+namespace internal {
+
+/** \internal Internal implementation of dense Blocks in the general case. */
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess> class BlockImpl_dense
+  : public internal::dense_xpr_base<Block<XprType, BlockRows, BlockCols, InnerPanel> >::type
+{
+    typedef Block<XprType, BlockRows, BlockCols, InnerPanel> BlockType;
+  public:
+
+    typedef typename internal::dense_xpr_base<BlockType>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(BlockType)
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl_dense)
+
+    class InnerIterator;
+
+    /** Column or Row constructor
+      */
+    inline BlockImpl_dense(XprType& xpr, Index i)
+      : m_xpr(xpr),
+        // It is a row if and only if BlockRows==1 and BlockCols==XprType::ColsAtCompileTime,
+        // and it is a column if and only if BlockRows==XprType::RowsAtCompileTime and BlockCols==1,
+        // all other cases are invalid.
+        // The case a 1x1 matrix seems ambiguous, but the result is the same anyway.
+        m_startRow( (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? i : 0),
+        m_startCol( (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? i : 0),
+        m_blockRows(BlockRows==1 ? 1 : xpr.rows()),
+        m_blockCols(BlockCols==1 ? 1 : xpr.cols())
+    {}
+
+    /** Fixed-size constructor
+      */
+    inline BlockImpl_dense(XprType& xpr, Index a_startRow, Index a_startCol)
+      : m_xpr(xpr), m_startRow(a_startRow), m_startCol(a_startCol),
+                    m_blockRows(BlockRows), m_blockCols(BlockCols)
+    {}
+
+    /** Dynamic-size constructor
+      */
+    inline BlockImpl_dense(XprType& xpr,
+          Index a_startRow, Index a_startCol,
+          Index blockRows, Index blockCols)
+      : m_xpr(xpr), m_startRow(a_startRow), m_startCol(a_startCol),
+                    m_blockRows(blockRows), m_blockCols(blockCols)
+    {}
+
+    inline Index rows() const { return m_blockRows.value(); }
+    inline Index cols() const { return m_blockCols.value(); }
+
+    inline Scalar& coeffRef(Index rowId, Index colId)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(XprType)
+      return m_xpr.const_cast_derived()
+               .coeffRef(rowId + m_startRow.value(), colId + m_startCol.value());
+    }
+
+    inline const Scalar& coeffRef(Index rowId, Index colId) const
+    {
+      return m_xpr.derived()
+               .coeffRef(rowId + m_startRow.value(), colId + m_startCol.value());
+    }
+
+    EIGEN_STRONG_INLINE const CoeffReturnType coeff(Index rowId, Index colId) const
+    {
+      return m_xpr.coeff(rowId + m_startRow.value(), colId + m_startCol.value());
+    }
+
+    inline Scalar& coeffRef(Index index)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(XprType)
+      return m_xpr.const_cast_derived()
+             .coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+                       m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+    }
+
+    inline const Scalar& coeffRef(Index index) const
+    {
+      return m_xpr.const_cast_derived()
+             .coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+                       m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+    }
+
+    inline const CoeffReturnType coeff(Index index) const
+    {
+      return m_xpr
+             .coeff(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+                    m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+    }
+
+    template<int LoadMode>
+    inline PacketScalar packet(Index rowId, Index colId) const
+    {
+      return m_xpr.template packet<Unaligned>
+              (rowId + m_startRow.value(), colId + m_startCol.value());
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index rowId, Index colId, const PacketScalar& val)
+    {
+      m_xpr.const_cast_derived().template writePacket<Unaligned>
+              (rowId + m_startRow.value(), colId + m_startCol.value(), val);
+    }
+
+    template<int LoadMode>
+    inline PacketScalar packet(Index index) const
+    {
+      return m_xpr.template packet<Unaligned>
+              (m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+               m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index index, const PacketScalar& val)
+    {
+      m_xpr.const_cast_derived().template writePacket<Unaligned>
+         (m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+          m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0), val);
+    }
+
+    #ifdef EIGEN_PARSED_BY_DOXYGEN
+    /** \sa MapBase::data() */
+    inline const Scalar* data() const;
+    inline Index innerStride() const;
+    inline Index outerStride() const;
+    #endif
+
+    const typename internal::remove_all<typename XprType::Nested>::type& nestedExpression() const 
+    { 
+      return m_xpr; 
+    }
+      
+    Index startRow() const 
+    { 
+      return m_startRow.value(); 
+    }
+      
+    Index startCol() const 
+    { 
+      return m_startCol.value(); 
+    }
+
+  protected:
+
+    const typename XprType::Nested m_xpr;
+    const internal::variable_if_dynamic<Index, XprType::RowsAtCompileTime == 1 ? 0 : Dynamic> m_startRow;
+    const internal::variable_if_dynamic<Index, XprType::ColsAtCompileTime == 1 ? 0 : Dynamic> m_startCol;
+    const internal::variable_if_dynamic<Index, RowsAtCompileTime> m_blockRows;
+    const internal::variable_if_dynamic<Index, ColsAtCompileTime> m_blockCols;
+};
+
+/** \internal Internal implementation of dense Blocks in the direct access case.*/
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
+class BlockImpl_dense<XprType,BlockRows,BlockCols, InnerPanel,true>
+  : public MapBase<Block<XprType, BlockRows, BlockCols, InnerPanel> >
+{
+    typedef Block<XprType, BlockRows, BlockCols, InnerPanel> BlockType;
+  public:
+
+    typedef MapBase<BlockType> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(BlockType)
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl_dense)
+
+    /** Column or Row constructor
+      */
+    inline BlockImpl_dense(XprType& xpr, Index i)
+      : Base(internal::const_cast_ptr(&xpr.coeffRef(
+              (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? i : 0,
+              (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? i : 0)),
+             BlockRows==1 ? 1 : xpr.rows(),
+             BlockCols==1 ? 1 : xpr.cols()),
+        m_xpr(xpr)
+    {
+      init();
+    }
+
+    /** Fixed-size constructor
+      */
+    inline BlockImpl_dense(XprType& xpr, Index startRow, Index startCol)
+      : Base(internal::const_cast_ptr(&xpr.coeffRef(startRow,startCol))), m_xpr(xpr)
+    {
+      init();
+    }
+
+    /** Dynamic-size constructor
+      */
+    inline BlockImpl_dense(XprType& xpr,
+          Index startRow, Index startCol,
+          Index blockRows, Index blockCols)
+      : Base(internal::const_cast_ptr(&xpr.coeffRef(startRow,startCol)), blockRows, blockCols),
+        m_xpr(xpr)
+    {
+      init();
+    }
+
+    const typename internal::remove_all<typename XprType::Nested>::type& nestedExpression() const 
+    { 
+      return m_xpr; 
+    }
+      
+    /** \sa MapBase::innerStride() */
+    inline Index innerStride() const
+    {
+      return internal::traits<BlockType>::HasSameStorageOrderAsXprType
+             ? m_xpr.innerStride()
+             : m_xpr.outerStride();
+    }
+
+    /** \sa MapBase::outerStride() */
+    inline Index outerStride() const
+    {
+      return m_outerStride;
+    }
+
+  #ifndef __SUNPRO_CC
+  // FIXME sunstudio is not friendly with the above friend...
+  // META-FIXME there is no 'friend' keyword around here. Is this obsolete?
+  protected:
+  #endif
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal used by allowAligned() */
+    inline BlockImpl_dense(XprType& xpr, const Scalar* data, Index blockRows, Index blockCols)
+      : Base(data, blockRows, blockCols), m_xpr(xpr)
+    {
+      init();
+    }
+    #endif
+
+  protected:
+    void init()
+    {
+      m_outerStride = internal::traits<BlockType>::HasSameStorageOrderAsXprType
+                    ? m_xpr.outerStride()
+                    : m_xpr.innerStride();
+    }
+
+    typename XprType::Nested m_xpr;
+    Index m_outerStride;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BLOCK_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/BooleanRedux.h b/vendor/eigen-3.2.8/Eigen/src/Core/BooleanRedux.h
new file mode 100644
index 0000000..be9f48a
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/BooleanRedux.h
@@ -0,0 +1,154 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ALLANDANY_H
+#define EIGEN_ALLANDANY_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Derived, int UnrollCount>
+struct all_unroller
+{
+  enum {
+    col = (UnrollCount-1) / Derived::RowsAtCompileTime,
+    row = (UnrollCount-1) % Derived::RowsAtCompileTime
+  };
+
+  static inline bool run(const Derived &mat)
+  {
+    return all_unroller<Derived, UnrollCount-1>::run(mat) && mat.coeff(row, col);
+  }
+};
+
+template<typename Derived>
+struct all_unroller<Derived, 0>
+{
+  static inline bool run(const Derived &/*mat*/) { return true; }
+};
+
+template<typename Derived>
+struct all_unroller<Derived, Dynamic>
+{
+  static inline bool run(const Derived &) { return false; }
+};
+
+template<typename Derived, int UnrollCount>
+struct any_unroller
+{
+  enum {
+    col = (UnrollCount-1) / Derived::RowsAtCompileTime,
+    row = (UnrollCount-1) % Derived::RowsAtCompileTime
+  };
+
+  static inline bool run(const Derived &mat)
+  {
+    return any_unroller<Derived, UnrollCount-1>::run(mat) || mat.coeff(row, col);
+  }
+};
+
+template<typename Derived>
+struct any_unroller<Derived, 0>
+{
+  static inline bool run(const Derived & /*mat*/) { return false; }
+};
+
+template<typename Derived>
+struct any_unroller<Derived, Dynamic>
+{
+  static inline bool run(const Derived &) { return false; }
+};
+
+} // end namespace internal
+
+/** \returns true if all coefficients are true
+  *
+  * Example: \include MatrixBase_all.cpp
+  * Output: \verbinclude MatrixBase_all.out
+  *
+  * \sa any(), Cwise::operator<()
+  */
+template<typename Derived>
+inline bool DenseBase<Derived>::all() const
+{
+  enum {
+    unroll = SizeAtCompileTime != Dynamic
+          && CoeffReadCost != Dynamic
+          && NumTraits<Scalar>::AddCost != Dynamic
+          && SizeAtCompileTime * (CoeffReadCost + NumTraits<Scalar>::AddCost) <= EIGEN_UNROLLING_LIMIT
+  };
+  if(unroll)
+    return internal::all_unroller<Derived, unroll ? int(SizeAtCompileTime) : Dynamic>::run(derived());
+  else
+  {
+    for(Index j = 0; j < cols(); ++j)
+      for(Index i = 0; i < rows(); ++i)
+        if (!coeff(i, j)) return false;
+    return true;
+  }
+}
+
+/** \returns true if at least one coefficient is true
+  *
+  * \sa all()
+  */
+template<typename Derived>
+inline bool DenseBase<Derived>::any() const
+{
+  enum {
+    unroll = SizeAtCompileTime != Dynamic
+          && CoeffReadCost != Dynamic
+          && NumTraits<Scalar>::AddCost != Dynamic
+          && SizeAtCompileTime * (CoeffReadCost + NumTraits<Scalar>::AddCost) <= EIGEN_UNROLLING_LIMIT
+  };
+  if(unroll)
+    return internal::any_unroller<Derived, unroll ? int(SizeAtCompileTime) : Dynamic>::run(derived());
+  else
+  {
+    for(Index j = 0; j < cols(); ++j)
+      for(Index i = 0; i < rows(); ++i)
+        if (coeff(i, j)) return true;
+    return false;
+  }
+}
+
+/** \returns the number of coefficients which evaluate to true
+  *
+  * \sa all(), any()
+  */
+template<typename Derived>
+inline typename DenseBase<Derived>::Index DenseBase<Derived>::count() const
+{
+  return derived().template cast<bool>().template cast<Index>().sum();
+}
+
+/** \returns true is \c *this contains at least one Not A Number (NaN).
+  *
+  * \sa allFinite()
+  */
+template<typename Derived>
+inline bool DenseBase<Derived>::hasNaN() const
+{
+  return !((derived().array()==derived().array()).all());
+}
+
+/** \returns true if \c *this contains only finite numbers, i.e., no NaN and no +/-INF values.
+  *
+  * \sa hasNaN()
+  */
+template<typename Derived>
+inline bool DenseBase<Derived>::allFinite() const
+{
+  return !((derived()-derived()).hasNaN());
+}
+    
+} // end namespace Eigen
+
+#endif // EIGEN_ALLANDANY_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Core/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Core/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/CommaInitializer.h b/vendor/eigen-3.2.8/Eigen/src/Core/CommaInitializer.h
new file mode 100644
index 0000000..a036d8c
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/CommaInitializer.h
@@ -0,0 +1,154 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMMAINITIALIZER_H
+#define EIGEN_COMMAINITIALIZER_H
+
+namespace Eigen { 
+
+/** \class CommaInitializer
+  * \ingroup Core_Module
+  *
+  * \brief Helper class used by the comma initializer operator
+  *
+  * This class is internally used to implement the comma initializer feature. It is
+  * the return type of MatrixBase::operator<<, and most of the time this is the only
+  * way it is used.
+  *
+  * \sa \ref MatrixBaseCommaInitRef "MatrixBase::operator<<", CommaInitializer::finished()
+  */
+template<typename XprType>
+struct CommaInitializer
+{
+  typedef typename XprType::Scalar Scalar;
+  typedef typename XprType::Index Index;
+
+  inline CommaInitializer(XprType& xpr, const Scalar& s)
+    : m_xpr(xpr), m_row(0), m_col(1), m_currentBlockRows(1)
+  {
+    m_xpr.coeffRef(0,0) = s;
+  }
+
+  template<typename OtherDerived>
+  inline CommaInitializer(XprType& xpr, const DenseBase<OtherDerived>& other)
+    : m_xpr(xpr), m_row(0), m_col(other.cols()), m_currentBlockRows(other.rows())
+  {
+    m_xpr.block(0, 0, other.rows(), other.cols()) = other;
+  }
+
+  /* Copy/Move constructor which transfers ownership. This is crucial in 
+   * absence of return value optimization to avoid assertions during destruction. */
+  // FIXME in C++11 mode this could be replaced by a proper RValue constructor
+  inline CommaInitializer(const CommaInitializer& o)
+  : m_xpr(o.m_xpr), m_row(o.m_row), m_col(o.m_col), m_currentBlockRows(o.m_currentBlockRows) {
+    // Mark original object as finished. In absence of R-value references we need to const_cast:
+    const_cast<CommaInitializer&>(o).m_row = m_xpr.rows();
+    const_cast<CommaInitializer&>(o).m_col = m_xpr.cols();
+    const_cast<CommaInitializer&>(o).m_currentBlockRows = 0;
+  }
+
+  /* inserts a scalar value in the target matrix */
+  CommaInitializer& operator,(const Scalar& s)
+  {
+    if (m_col==m_xpr.cols())
+    {
+      m_row+=m_currentBlockRows;
+      m_col = 0;
+      m_currentBlockRows = 1;
+      eigen_assert(m_row<m_xpr.rows()
+        && "Too many rows passed to comma initializer (operator<<)");
+    }
+    eigen_assert(m_col<m_xpr.cols()
+      && "Too many coefficients passed to comma initializer (operator<<)");
+    eigen_assert(m_currentBlockRows==1);
+    m_xpr.coeffRef(m_row, m_col++) = s;
+    return *this;
+  }
+
+  /* inserts a matrix expression in the target matrix */
+  template<typename OtherDerived>
+  CommaInitializer& operator,(const DenseBase<OtherDerived>& other)
+  {
+    if(other.cols()==0 || other.rows()==0)
+      return *this;
+    if (m_col==m_xpr.cols())
+    {
+      m_row+=m_currentBlockRows;
+      m_col = 0;
+      m_currentBlockRows = other.rows();
+      eigen_assert(m_row+m_currentBlockRows<=m_xpr.rows()
+        && "Too many rows passed to comma initializer (operator<<)");
+    }
+    eigen_assert(m_col<m_xpr.cols()
+      && "Too many coefficients passed to comma initializer (operator<<)");
+    eigen_assert(m_currentBlockRows==other.rows());
+    if (OtherDerived::SizeAtCompileTime != Dynamic)
+      m_xpr.template block<OtherDerived::RowsAtCompileTime != Dynamic ? OtherDerived::RowsAtCompileTime : 1,
+                              OtherDerived::ColsAtCompileTime != Dynamic ? OtherDerived::ColsAtCompileTime : 1>
+                    (m_row, m_col) = other;
+    else
+      m_xpr.block(m_row, m_col, other.rows(), other.cols()) = other;
+    m_col += other.cols();
+    return *this;
+  }
+
+  inline ~CommaInitializer()
+  {
+    eigen_assert((m_row+m_currentBlockRows) == m_xpr.rows()
+         && m_col == m_xpr.cols()
+         && "Too few coefficients passed to comma initializer (operator<<)");
+  }
+
+  /** \returns the built matrix once all its coefficients have been set.
+    * Calling finished is 100% optional. Its purpose is to write expressions
+    * like this:
+    * \code
+    * quaternion.fromRotationMatrix((Matrix3f() << axis0, axis1, axis2).finished());
+    * \endcode
+    */
+  inline XprType& finished() { return m_xpr; }
+
+  XprType& m_xpr;   // target expression
+  Index m_row;              // current row id
+  Index m_col;              // current col id
+  Index m_currentBlockRows; // current block height
+};
+
+/** \anchor MatrixBaseCommaInitRef
+  * Convenient operator to set the coefficients of a matrix.
+  *
+  * The coefficients must be provided in a row major order and exactly match
+  * the size of the matrix. Otherwise an assertion is raised.
+  *
+  * Example: \include MatrixBase_set.cpp
+  * Output: \verbinclude MatrixBase_set.out
+  * 
+  * \note According the c++ standard, the argument expressions of this comma initializer are evaluated in arbitrary order.
+  *
+  * \sa CommaInitializer::finished(), class CommaInitializer
+  */
+template<typename Derived>
+inline CommaInitializer<Derived> DenseBase<Derived>::operator<< (const Scalar& s)
+{
+  return CommaInitializer<Derived>(*static_cast<Derived*>(this), s);
+}
+
+/** \sa operator<<(const Scalar&) */
+template<typename Derived>
+template<typename OtherDerived>
+inline CommaInitializer<Derived>
+DenseBase<Derived>::operator<<(const DenseBase<OtherDerived>& other)
+{
+  return CommaInitializer<Derived>(*static_cast<Derived *>(this), other);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMMAINITIALIZER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/CoreIterators.h b/vendor/eigen-3.2.8/Eigen/src/Core/CoreIterators.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/CoreIterators.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/CoreIterators.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/CwiseBinaryOp.h b/vendor/eigen-3.2.8/Eigen/src/Core/CwiseBinaryOp.h
new file mode 100644
index 0000000..519a866
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/CwiseBinaryOp.h
@@ -0,0 +1,230 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CWISE_BINARY_OP_H
+#define EIGEN_CWISE_BINARY_OP_H
+
+namespace Eigen {
+
+/** \class CwiseBinaryOp
+  * \ingroup Core_Module
+  *
+  * \brief Generic expression where a coefficient-wise binary operator is applied to two expressions
+  *
+  * \param BinaryOp template functor implementing the operator
+  * \param Lhs the type of the left-hand side
+  * \param Rhs the type of the right-hand side
+  *
+  * This class represents an expression  where a coefficient-wise binary operator is applied to two expressions.
+  * It is the return type of binary operators, by which we mean only those binary operators where
+  * both the left-hand side and the right-hand side are Eigen expressions.
+  * For example, the return type of matrix1+matrix2 is a CwiseBinaryOp.
+  *
+  * Most of the time, this is the only way that it is used, so you typically don't have to name
+  * CwiseBinaryOp types explicitly.
+  *
+  * \sa MatrixBase::binaryExpr(const MatrixBase<OtherDerived> &,const CustomBinaryOp &) const, class CwiseUnaryOp, class CwiseNullaryOp
+  */
+
+namespace internal {
+template<typename BinaryOp, typename Lhs, typename Rhs>
+struct traits<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
+{
+  // we must not inherit from traits<Lhs> since it has
+  // the potential to cause problems with MSVC
+  typedef typename remove_all<Lhs>::type Ancestor;
+  typedef typename traits<Ancestor>::XprKind XprKind;
+  enum {
+    RowsAtCompileTime = traits<Ancestor>::RowsAtCompileTime,
+    ColsAtCompileTime = traits<Ancestor>::ColsAtCompileTime,
+    MaxRowsAtCompileTime = traits<Ancestor>::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = traits<Ancestor>::MaxColsAtCompileTime
+  };
+
+  // even though we require Lhs and Rhs to have the same scalar type (see CwiseBinaryOp constructor),
+  // we still want to handle the case when the result type is different.
+  typedef typename result_of<
+                     BinaryOp(
+                       typename Lhs::Scalar,
+                       typename Rhs::Scalar
+                     )
+                   >::type Scalar;
+  typedef typename promote_storage_type<typename traits<Lhs>::StorageKind,
+                                           typename traits<Rhs>::StorageKind>::ret StorageKind;
+  typedef typename promote_index_type<typename traits<Lhs>::Index,
+                                         typename traits<Rhs>::Index>::type Index;
+  typedef typename Lhs::Nested LhsNested;
+  typedef typename Rhs::Nested RhsNested;
+  typedef typename remove_reference<LhsNested>::type _LhsNested;
+  typedef typename remove_reference<RhsNested>::type _RhsNested;
+  enum {
+    LhsCoeffReadCost = _LhsNested::CoeffReadCost,
+    RhsCoeffReadCost = _RhsNested::CoeffReadCost,
+    LhsFlags = _LhsNested::Flags,
+    RhsFlags = _RhsNested::Flags,
+    SameType = is_same<typename _LhsNested::Scalar,typename _RhsNested::Scalar>::value,
+    StorageOrdersAgree = (int(Lhs::Flags)&RowMajorBit)==(int(Rhs::Flags)&RowMajorBit),
+    Flags0 = (int(LhsFlags) | int(RhsFlags)) & (
+        HereditaryBits
+      | (int(LhsFlags) & int(RhsFlags) &
+           ( AlignedBit
+           | (StorageOrdersAgree ? LinearAccessBit : 0)
+           | (functor_traits<BinaryOp>::PacketAccess && StorageOrdersAgree && SameType ? PacketAccessBit : 0)
+           )
+        )
+     ),
+    Flags = (Flags0 & ~RowMajorBit) | (LhsFlags & RowMajorBit),
+    Cost0 = EIGEN_ADD_COST(LhsCoeffReadCost,RhsCoeffReadCost),
+    CoeffReadCost = EIGEN_ADD_COST(Cost0,functor_traits<BinaryOp>::Cost)
+  };
+};
+} // end namespace internal
+
+// we require Lhs and Rhs to have the same scalar type. Currently there is no example of a binary functor
+// that would take two operands of different types. If there were such an example, then this check should be
+// moved to the BinaryOp functors, on a per-case basis. This would however require a change in the BinaryOp functors, as
+// currently they take only one typename Scalar template parameter.
+// It is tempting to always allow mixing different types but remember that this is often impossible in the vectorized paths.
+// So allowing mixing different types gives very unexpected errors when enabling vectorization, when the user tries to
+// add together a float matrix and a double matrix.
+#define EIGEN_CHECK_BINARY_COMPATIBILIY(BINOP,LHS,RHS) \
+  EIGEN_STATIC_ASSERT((internal::functor_is_product_like<BINOP>::ret \
+                        ? int(internal::scalar_product_traits<LHS, RHS>::Defined) \
+                        : int(internal::is_same<LHS, RHS>::value)), \
+    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+template<typename BinaryOp, typename Lhs, typename Rhs, typename StorageKind>
+class CwiseBinaryOpImpl;
+
+template<typename BinaryOp, typename Lhs, typename Rhs>
+class CwiseBinaryOp : internal::no_assignment_operator,
+  public CwiseBinaryOpImpl<
+          BinaryOp, Lhs, Rhs,
+          typename internal::promote_storage_type<typename internal::traits<Lhs>::StorageKind,
+                                           typename internal::traits<Rhs>::StorageKind>::ret>
+{
+  public:
+
+    typedef typename CwiseBinaryOpImpl<
+        BinaryOp, Lhs, Rhs,
+        typename internal::promote_storage_type<typename internal::traits<Lhs>::StorageKind,
+                                         typename internal::traits<Rhs>::StorageKind>::ret>::Base Base;
+    EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseBinaryOp)
+
+    typedef typename internal::nested<Lhs>::type LhsNested;
+    typedef typename internal::nested<Rhs>::type RhsNested;
+    typedef typename internal::remove_reference<LhsNested>::type _LhsNested;
+    typedef typename internal::remove_reference<RhsNested>::type _RhsNested;
+
+    EIGEN_STRONG_INLINE CwiseBinaryOp(const Lhs& aLhs, const Rhs& aRhs, const BinaryOp& func = BinaryOp())
+      : m_lhs(aLhs), m_rhs(aRhs), m_functor(func)
+    {
+      EIGEN_CHECK_BINARY_COMPATIBILIY(BinaryOp,typename Lhs::Scalar,typename Rhs::Scalar);
+      // require the sizes to match
+      EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Lhs, Rhs)
+      eigen_assert(aLhs.rows() == aRhs.rows() && aLhs.cols() == aRhs.cols());
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const {
+      // return the fixed size type if available to enable compile time optimizations
+      if (internal::traits<typename internal::remove_all<LhsNested>::type>::RowsAtCompileTime==Dynamic)
+        return m_rhs.rows();
+      else
+        return m_lhs.rows();
+    }
+    EIGEN_STRONG_INLINE Index cols() const {
+      // return the fixed size type if available to enable compile time optimizations
+      if (internal::traits<typename internal::remove_all<LhsNested>::type>::ColsAtCompileTime==Dynamic)
+        return m_rhs.cols();
+      else
+        return m_lhs.cols();
+    }
+
+    /** \returns the left hand side nested expression */
+    const _LhsNested& lhs() const { return m_lhs; }
+    /** \returns the right hand side nested expression */
+    const _RhsNested& rhs() const { return m_rhs; }
+    /** \returns the functor representing the binary operation */
+    const BinaryOp& functor() const { return m_functor; }
+
+  protected:
+    LhsNested m_lhs;
+    RhsNested m_rhs;
+    const BinaryOp m_functor;
+};
+
+template<typename BinaryOp, typename Lhs, typename Rhs>
+class CwiseBinaryOpImpl<BinaryOp, Lhs, Rhs, Dense>
+  : public internal::dense_xpr_base<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >::type
+{
+    typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> Derived;
+  public:
+
+    typedef typename internal::dense_xpr_base<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE( Derived )
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index rowId, Index colId) const
+    {
+      return derived().functor()(derived().lhs().coeff(rowId, colId),
+                                 derived().rhs().coeff(rowId, colId));
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index rowId, Index colId) const
+    {
+      return derived().functor().packetOp(derived().lhs().template packet<LoadMode>(rowId, colId),
+                                          derived().rhs().template packet<LoadMode>(rowId, colId));
+    }
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index index) const
+    {
+      return derived().functor()(derived().lhs().coeff(index),
+                                 derived().rhs().coeff(index));
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index index) const
+    {
+      return derived().functor().packetOp(derived().lhs().template packet<LoadMode>(index),
+                                          derived().rhs().template packet<LoadMode>(index));
+    }
+};
+
+/** replaces \c *this by \c *this - \a other.
+  *
+  * \returns a reference to \c *this
+  */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+MatrixBase<Derived>::operator-=(const MatrixBase<OtherDerived> &other)
+{
+  SelfCwiseBinaryOp<internal::scalar_difference_op<Scalar>, Derived, OtherDerived> tmp(derived());
+  tmp = other.derived();
+  return derived();
+}
+
+/** replaces \c *this by \c *this + \a other.
+  *
+  * \returns a reference to \c *this
+  */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+MatrixBase<Derived>::operator+=(const MatrixBase<OtherDerived>& other)
+{
+  SelfCwiseBinaryOp<internal::scalar_sum_op<Scalar>, Derived, OtherDerived> tmp(derived());
+  tmp = other.derived();
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_CWISE_BINARY_OP_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/CwiseNullaryOp.h b/vendor/eigen-3.2.8/Eigen/src/Core/CwiseNullaryOp.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/CwiseNullaryOp.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/CwiseNullaryOp.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/CwiseUnaryOp.h b/vendor/eigen-3.2.8/Eigen/src/Core/CwiseUnaryOp.h
new file mode 100644
index 0000000..f7ee60e
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/CwiseUnaryOp.h
@@ -0,0 +1,126 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CWISE_UNARY_OP_H
+#define EIGEN_CWISE_UNARY_OP_H
+
+namespace Eigen { 
+
+/** \class CwiseUnaryOp
+  * \ingroup Core_Module
+  *
+  * \brief Generic expression where a coefficient-wise unary operator is applied to an expression
+  *
+  * \param UnaryOp template functor implementing the operator
+  * \param XprType the type of the expression to which we are applying the unary operator
+  *
+  * This class represents an expression where a unary operator is applied to an expression.
+  * It is the return type of all operations taking exactly 1 input expression, regardless of the
+  * presence of other inputs such as scalars. For example, the operator* in the expression 3*matrix
+  * is considered unary, because only the right-hand side is an expression, and its
+  * return type is a specialization of CwiseUnaryOp.
+  *
+  * Most of the time, this is the only way that it is used, so you typically don't have to name
+  * CwiseUnaryOp types explicitly.
+  *
+  * \sa MatrixBase::unaryExpr(const CustomUnaryOp &) const, class CwiseBinaryOp, class CwiseNullaryOp
+  */
+
+namespace internal {
+template<typename UnaryOp, typename XprType>
+struct traits<CwiseUnaryOp<UnaryOp, XprType> >
+ : traits<XprType>
+{
+  typedef typename result_of<
+                     UnaryOp(typename XprType::Scalar)
+                   >::type Scalar;
+  typedef typename XprType::Nested XprTypeNested;
+  typedef typename remove_reference<XprTypeNested>::type _XprTypeNested;
+  enum {
+    Flags = _XprTypeNested::Flags & (
+      HereditaryBits | LinearAccessBit | AlignedBit
+      | (functor_traits<UnaryOp>::PacketAccess ? PacketAccessBit : 0)),
+    CoeffReadCost = EIGEN_ADD_COST(_XprTypeNested::CoeffReadCost, functor_traits<UnaryOp>::Cost)
+  };
+};
+}
+
+template<typename UnaryOp, typename XprType, typename StorageKind>
+class CwiseUnaryOpImpl;
+
+template<typename UnaryOp, typename XprType>
+class CwiseUnaryOp : internal::no_assignment_operator,
+  public CwiseUnaryOpImpl<UnaryOp, XprType, typename internal::traits<XprType>::StorageKind>
+{
+  public:
+
+    typedef typename CwiseUnaryOpImpl<UnaryOp, XprType,typename internal::traits<XprType>::StorageKind>::Base Base;
+    EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseUnaryOp)
+
+    inline CwiseUnaryOp(const XprType& xpr, const UnaryOp& func = UnaryOp())
+      : m_xpr(xpr), m_functor(func) {}
+
+    EIGEN_STRONG_INLINE Index rows() const { return m_xpr.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return m_xpr.cols(); }
+
+    /** \returns the functor representing the unary operation */
+    const UnaryOp& functor() const { return m_functor; }
+
+    /** \returns the nested expression */
+    const typename internal::remove_all<typename XprType::Nested>::type&
+    nestedExpression() const { return m_xpr; }
+
+    /** \returns the nested expression */
+    typename internal::remove_all<typename XprType::Nested>::type&
+    nestedExpression() { return m_xpr.const_cast_derived(); }
+
+  protected:
+    typename XprType::Nested m_xpr;
+    const UnaryOp m_functor;
+};
+
+// This is the generic implementation for dense storage.
+// It can be used for any expression types implementing the dense concept.
+template<typename UnaryOp, typename XprType>
+class CwiseUnaryOpImpl<UnaryOp,XprType,Dense>
+  : public internal::dense_xpr_base<CwiseUnaryOp<UnaryOp, XprType> >::type
+{
+  public:
+
+    typedef CwiseUnaryOp<UnaryOp, XprType> Derived;
+    typedef typename internal::dense_xpr_base<CwiseUnaryOp<UnaryOp, XprType> >::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index rowId, Index colId) const
+    {
+      return derived().functor()(derived().nestedExpression().coeff(rowId, colId));
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index rowId, Index colId) const
+    {
+      return derived().functor().packetOp(derived().nestedExpression().template packet<LoadMode>(rowId, colId));
+    }
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index index) const
+    {
+      return derived().functor()(derived().nestedExpression().coeff(index));
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index index) const
+    {
+      return derived().functor().packetOp(derived().nestedExpression().template packet<LoadMode>(index));
+    }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_CWISE_UNARY_OP_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/CwiseUnaryView.h b/vendor/eigen-3.2.8/Eigen/src/Core/CwiseUnaryView.h
new file mode 100644
index 0000000..f3b2ffe
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/CwiseUnaryView.h
@@ -0,0 +1,139 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CWISE_UNARY_VIEW_H
+#define EIGEN_CWISE_UNARY_VIEW_H
+
+namespace Eigen {
+
+/** \class CwiseUnaryView
+  * \ingroup Core_Module
+  *
+  * \brief Generic lvalue expression of a coefficient-wise unary operator of a matrix or a vector
+  *
+  * \param ViewOp template functor implementing the view
+  * \param MatrixType the type of the matrix we are applying the unary operator
+  *
+  * This class represents a lvalue expression of a generic unary view operator of a matrix or a vector.
+  * It is the return type of real() and imag(), and most of the time this is the only way it is used.
+  *
+  * \sa MatrixBase::unaryViewExpr(const CustomUnaryOp &) const, class CwiseUnaryOp
+  */
+
+namespace internal {
+template<typename ViewOp, typename MatrixType>
+struct traits<CwiseUnaryView<ViewOp, MatrixType> >
+ : traits<MatrixType>
+{
+  typedef typename result_of<
+                     ViewOp(typename traits<MatrixType>::Scalar)
+                   >::type Scalar;
+  typedef typename MatrixType::Nested MatrixTypeNested;
+  typedef typename remove_all<MatrixTypeNested>::type _MatrixTypeNested;
+  enum {
+    Flags = (traits<_MatrixTypeNested>::Flags & (HereditaryBits | LvalueBit | LinearAccessBit | DirectAccessBit)),
+    CoeffReadCost = EIGEN_ADD_COST(traits<_MatrixTypeNested>::CoeffReadCost, functor_traits<ViewOp>::Cost),
+    MatrixTypeInnerStride =  inner_stride_at_compile_time<MatrixType>::ret,
+    // need to cast the sizeof's from size_t to int explicitly, otherwise:
+    // "error: no integral type can represent all of the enumerator values
+    InnerStrideAtCompileTime = MatrixTypeInnerStride == Dynamic
+                             ? int(Dynamic)
+                             : int(MatrixTypeInnerStride) * int(sizeof(typename traits<MatrixType>::Scalar) / sizeof(Scalar)),
+    OuterStrideAtCompileTime = outer_stride_at_compile_time<MatrixType>::ret == Dynamic
+                             ? int(Dynamic)
+                             : outer_stride_at_compile_time<MatrixType>::ret * int(sizeof(typename traits<MatrixType>::Scalar) / sizeof(Scalar))
+  };
+};
+}
+
+template<typename ViewOp, typename MatrixType, typename StorageKind>
+class CwiseUnaryViewImpl;
+
+template<typename ViewOp, typename MatrixType>
+class CwiseUnaryView : public CwiseUnaryViewImpl<ViewOp, MatrixType, typename internal::traits<MatrixType>::StorageKind>
+{
+  public:
+
+    typedef typename CwiseUnaryViewImpl<ViewOp, MatrixType,typename internal::traits<MatrixType>::StorageKind>::Base Base;
+    EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseUnaryView)
+
+    inline CwiseUnaryView(const MatrixType& mat, const ViewOp& func = ViewOp())
+      : m_matrix(mat), m_functor(func) {}
+
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(CwiseUnaryView)
+
+    EIGEN_STRONG_INLINE Index rows() const { return m_matrix.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return m_matrix.cols(); }
+
+    /** \returns the functor representing unary operation */
+    const ViewOp& functor() const { return m_functor; }
+
+    /** \returns the nested expression */
+    const typename internal::remove_all<typename MatrixType::Nested>::type&
+    nestedExpression() const { return m_matrix; }
+
+    /** \returns the nested expression */
+    typename internal::remove_all<typename MatrixType::Nested>::type&
+    nestedExpression() { return m_matrix.const_cast_derived(); }
+
+  protected:
+    // FIXME changed from MatrixType::Nested because of a weird compilation error with sun CC
+    typename internal::nested<MatrixType>::type m_matrix;
+    ViewOp m_functor;
+};
+
+template<typename ViewOp, typename MatrixType>
+class CwiseUnaryViewImpl<ViewOp,MatrixType,Dense>
+  : public internal::dense_xpr_base< CwiseUnaryView<ViewOp, MatrixType> >::type
+{
+  public:
+
+    typedef CwiseUnaryView<ViewOp, MatrixType> Derived;
+    typedef typename internal::dense_xpr_base< CwiseUnaryView<ViewOp, MatrixType> >::type Base;
+
+    EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(CwiseUnaryViewImpl)
+    
+    inline Scalar* data() { return &coeffRef(0); }
+    inline const Scalar* data() const { return &coeff(0); }
+
+    inline Index innerStride() const
+    {
+      return derived().nestedExpression().innerStride() * sizeof(typename internal::traits<MatrixType>::Scalar) / sizeof(Scalar);
+    }
+
+    inline Index outerStride() const
+    {
+      return derived().nestedExpression().outerStride() * sizeof(typename internal::traits<MatrixType>::Scalar) / sizeof(Scalar);
+    }
+
+    EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
+    {
+      return derived().functor()(derived().nestedExpression().coeff(row, col));
+    }
+
+    EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
+    {
+      return derived().functor()(derived().nestedExpression().coeff(index));
+    }
+
+    EIGEN_STRONG_INLINE Scalar& coeffRef(Index row, Index col)
+    {
+      return derived().functor()(const_cast_derived().nestedExpression().coeffRef(row, col));
+    }
+
+    EIGEN_STRONG_INLINE Scalar& coeffRef(Index index)
+    {
+      return derived().functor()(const_cast_derived().nestedExpression().coeffRef(index));
+    }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_CWISE_UNARY_VIEW_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/DenseBase.h b/vendor/eigen-3.2.8/Eigen/src/Core/DenseBase.h
new file mode 100644
index 0000000..4b371b0
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/DenseBase.h
@@ -0,0 +1,521 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DENSEBASE_H
+#define EIGEN_DENSEBASE_H
+
+namespace Eigen {
+
+namespace internal {
+  
+// The index type defined by EIGEN_DEFAULT_DENSE_INDEX_TYPE must be a signed type.
+// This dummy function simply aims at checking that at compile time.
+static inline void check_DenseIndex_is_signed() {
+  EIGEN_STATIC_ASSERT(NumTraits<DenseIndex>::IsSigned,THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE); 
+}
+
+} // end namespace internal
+  
+/** \class DenseBase
+  * \ingroup Core_Module
+  *
+  * \brief Base class for all dense matrices, vectors, and arrays
+  *
+  * This class is the base that is inherited by all dense objects (matrix, vector, arrays,
+  * and related expression types). The common Eigen API for dense objects is contained in this class.
+  *
+  * \tparam Derived is the derived type, e.g., a matrix type or an expression.
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_DENSEBASE_PLUGIN.
+  *
+  * \sa \ref TopicClassHierarchy
+  */
+template<typename Derived> class DenseBase
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+  : public internal::special_scalar_op_base<Derived, typename internal::traits<Derived>::Scalar,
+                                            typename NumTraits<typename internal::traits<Derived>::Scalar>::Real,
+                                            DenseCoeffsBase<Derived> >
+#else
+  : public DenseCoeffsBase<Derived>
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+{
+  public:
+
+    class InnerIterator;
+
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+
+    /** \brief The type of indices 
+      * \details To change this, \c \#define the preprocessor symbol \c EIGEN_DEFAULT_DENSE_INDEX_TYPE.
+      * \sa \ref TopicPreprocessorDirectives.
+      */
+    typedef typename internal::traits<Derived>::Index Index; 
+
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef internal::special_scalar_op_base<Derived,Scalar,RealScalar, DenseCoeffsBase<Derived> > Base;
+
+    using Base::operator*;
+    using Base::derived;
+    using Base::const_cast_derived;
+    using Base::rows;
+    using Base::cols;
+    using Base::size;
+    using Base::rowIndexByOuterInner;
+    using Base::colIndexByOuterInner;
+    using Base::coeff;
+    using Base::coeffByOuterInner;
+    using Base::packet;
+    using Base::packetByOuterInner;
+    using Base::writePacket;
+    using Base::writePacketByOuterInner;
+    using Base::coeffRef;
+    using Base::coeffRefByOuterInner;
+    using Base::copyCoeff;
+    using Base::copyCoeffByOuterInner;
+    using Base::copyPacket;
+    using Base::copyPacketByOuterInner;
+    using Base::operator();
+    using Base::operator[];
+    using Base::x;
+    using Base::y;
+    using Base::z;
+    using Base::w;
+    using Base::stride;
+    using Base::innerStride;
+    using Base::outerStride;
+    using Base::rowStride;
+    using Base::colStride;
+    typedef typename Base::CoeffReturnType CoeffReturnType;
+
+    enum {
+
+      RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+        /**< The number of rows at compile-time. This is just a copy of the value provided
+          * by the \a Derived type. If a value is not known at compile-time,
+          * it is set to the \a Dynamic constant.
+          * \sa MatrixBase::rows(), MatrixBase::cols(), ColsAtCompileTime, SizeAtCompileTime */
+
+      ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+        /**< The number of columns at compile-time. This is just a copy of the value provided
+          * by the \a Derived type. If a value is not known at compile-time,
+          * it is set to the \a Dynamic constant.
+          * \sa MatrixBase::rows(), MatrixBase::cols(), RowsAtCompileTime, SizeAtCompileTime */
+
+
+      SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
+                                                   internal::traits<Derived>::ColsAtCompileTime>::ret),
+        /**< This is equal to the number of coefficients, i.e. the number of
+          * rows times the number of columns, or to \a Dynamic if this is not
+          * known at compile-time. \sa RowsAtCompileTime, ColsAtCompileTime */
+
+      MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
+        /**< This value is equal to the maximum possible number of rows that this expression
+          * might have. If this expression might have an arbitrarily high number of rows,
+          * this value is set to \a Dynamic.
+          *
+          * This value is useful to know when evaluating an expression, in order to determine
+          * whether it is possible to avoid doing a dynamic memory allocation.
+          *
+          * \sa RowsAtCompileTime, MaxColsAtCompileTime, MaxSizeAtCompileTime
+          */
+
+      MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
+        /**< This value is equal to the maximum possible number of columns that this expression
+          * might have. If this expression might have an arbitrarily high number of columns,
+          * this value is set to \a Dynamic.
+          *
+          * This value is useful to know when evaluating an expression, in order to determine
+          * whether it is possible to avoid doing a dynamic memory allocation.
+          *
+          * \sa ColsAtCompileTime, MaxRowsAtCompileTime, MaxSizeAtCompileTime
+          */
+
+      MaxSizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::MaxRowsAtCompileTime,
+                                                      internal::traits<Derived>::MaxColsAtCompileTime>::ret),
+        /**< This value is equal to the maximum possible number of coefficients that this expression
+          * might have. If this expression might have an arbitrarily high number of coefficients,
+          * this value is set to \a Dynamic.
+          *
+          * This value is useful to know when evaluating an expression, in order to determine
+          * whether it is possible to avoid doing a dynamic memory allocation.
+          *
+          * \sa SizeAtCompileTime, MaxRowsAtCompileTime, MaxColsAtCompileTime
+          */
+
+      IsVectorAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime == 1
+                           || internal::traits<Derived>::MaxColsAtCompileTime == 1,
+        /**< This is set to true if either the number of rows or the number of
+          * columns is known at compile-time to be equal to 1. Indeed, in that case,
+          * we are dealing with a column-vector (if there is only one column) or with
+          * a row-vector (if there is only one row). */
+
+      Flags = internal::traits<Derived>::Flags,
+        /**< This stores expression \ref flags flags which may or may not be inherited by new expressions
+          * constructed from this one. See the \ref flags "list of flags".
+          */
+
+      IsRowMajor = int(Flags) & RowMajorBit, /**< True if this expression has row-major storage order. */
+
+      InnerSizeAtCompileTime = int(IsVectorAtCompileTime) ? int(SizeAtCompileTime)
+                             : int(IsRowMajor) ? int(ColsAtCompileTime) : int(RowsAtCompileTime),
+
+      CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
+        /**< This is a rough measure of how expensive it is to read one coefficient from
+          * this expression.
+          */
+
+      InnerStrideAtCompileTime = internal::inner_stride_at_compile_time<Derived>::ret,
+      OuterStrideAtCompileTime = internal::outer_stride_at_compile_time<Derived>::ret
+    };
+
+    enum { ThisConstantIsPrivateInPlainObjectBase };
+
+    /** \returns the number of nonzero coefficients which is in practice the number
+      * of stored coefficients. */
+    inline Index nonZeros() const { return size(); }
+
+    /** \returns the outer size.
+      *
+      * \note For a vector, this returns just 1. For a matrix (non-vector), this is the major dimension
+      * with respect to the \ref TopicStorageOrders "storage order", i.e., the number of columns for a
+      * column-major matrix, and the number of rows for a row-major matrix. */
+    Index outerSize() const
+    {
+      return IsVectorAtCompileTime ? 1
+           : int(IsRowMajor) ? this->rows() : this->cols();
+    }
+
+    /** \returns the inner size.
+      *
+      * \note For a vector, this is just the size. For a matrix (non-vector), this is the minor dimension
+      * with respect to the \ref TopicStorageOrders "storage order", i.e., the number of rows for a 
+      * column-major matrix, and the number of columns for a row-major matrix. */
+    Index innerSize() const
+    {
+      return IsVectorAtCompileTime ? this->size()
+           : int(IsRowMajor) ? this->cols() : this->rows();
+    }
+
+    /** Only plain matrices/arrays, not expressions, may be resized; therefore the only useful resize methods are
+      * Matrix::resize() and Array::resize(). The present method only asserts that the new size equals the old size, and does
+      * nothing else.
+      */
+    void resize(Index newSize)
+    {
+      EIGEN_ONLY_USED_FOR_DEBUG(newSize);
+      eigen_assert(newSize == this->size()
+                && "DenseBase::resize() does not actually allow to resize.");
+    }
+    /** Only plain matrices/arrays, not expressions, may be resized; therefore the only useful resize methods are
+      * Matrix::resize() and Array::resize(). The present method only asserts that the new size equals the old size, and does
+      * nothing else.
+      */
+    void resize(Index nbRows, Index nbCols)
+    {
+      EIGEN_ONLY_USED_FOR_DEBUG(nbRows);
+      EIGEN_ONLY_USED_FOR_DEBUG(nbCols);
+      eigen_assert(nbRows == this->rows() && nbCols == this->cols()
+                && "DenseBase::resize() does not actually allow to resize.");
+    }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+
+    /** \internal Represents a matrix with all coefficients equal to one another*/
+    typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,Derived> ConstantReturnType;
+    /** \internal Represents a vector with linearly spaced coefficients that allows sequential access only. */
+    typedef CwiseNullaryOp<internal::linspaced_op<Scalar,false>,Derived> SequentialLinSpacedReturnType;
+    /** \internal Represents a vector with linearly spaced coefficients that allows random access. */
+    typedef CwiseNullaryOp<internal::linspaced_op<Scalar,true>,Derived> RandomAccessLinSpacedReturnType;
+    /** \internal the return type of MatrixBase::eigenvalues() */
+    typedef Matrix<typename NumTraits<typename internal::traits<Derived>::Scalar>::Real, internal::traits<Derived>::ColsAtCompileTime, 1> EigenvaluesReturnType;
+
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+    /** Copies \a other into *this. \returns a reference to *this. */
+    template<typename OtherDerived>
+    Derived& operator=(const DenseBase<OtherDerived>& other);
+
+    /** Special case of the template operator=, in order to prevent the compiler
+      * from generating a default operator= (issue hit with g++ 4.1)
+      */
+    Derived& operator=(const DenseBase& other);
+
+    template<typename OtherDerived>
+    Derived& operator=(const EigenBase<OtherDerived> &other);
+
+    template<typename OtherDerived>
+    Derived& operator+=(const EigenBase<OtherDerived> &other);
+
+    template<typename OtherDerived>
+    Derived& operator-=(const EigenBase<OtherDerived> &other);
+
+    template<typename OtherDerived>
+    Derived& operator=(const ReturnByValue<OtherDerived>& func);
+
+    /** \internal Copies \a other into *this without evaluating other. \returns a reference to *this. */
+    template<typename OtherDerived>
+    Derived& lazyAssign(const DenseBase<OtherDerived>& other);
+
+    /** \internal Evaluates \a other into *this. \returns a reference to *this. */
+    template<typename OtherDerived>
+    Derived& lazyAssign(const ReturnByValue<OtherDerived>& other);
+
+    CommaInitializer<Derived> operator<< (const Scalar& s);
+
+    template<unsigned int Added,unsigned int Removed>
+    const Flagged<Derived, Added, Removed> flagged() const;
+
+    template<typename OtherDerived>
+    CommaInitializer<Derived> operator<< (const DenseBase<OtherDerived>& other);
+
+    Eigen::Transpose<Derived> transpose();
+	typedef typename internal::add_const<Transpose<const Derived> >::type ConstTransposeReturnType;
+    ConstTransposeReturnType transpose() const;
+    void transposeInPlace();
+#ifndef EIGEN_NO_DEBUG
+  protected:
+    template<typename OtherDerived>
+    void checkTransposeAliasing(const OtherDerived& other) const;
+  public:
+#endif
+
+
+    static const ConstantReturnType
+    Constant(Index rows, Index cols, const Scalar& value);
+    static const ConstantReturnType
+    Constant(Index size, const Scalar& value);
+    static const ConstantReturnType
+    Constant(const Scalar& value);
+
+    static const SequentialLinSpacedReturnType
+    LinSpaced(Sequential_t, Index size, const Scalar& low, const Scalar& high);
+    static const RandomAccessLinSpacedReturnType
+    LinSpaced(Index size, const Scalar& low, const Scalar& high);
+    static const SequentialLinSpacedReturnType
+    LinSpaced(Sequential_t, const Scalar& low, const Scalar& high);
+    static const RandomAccessLinSpacedReturnType
+    LinSpaced(const Scalar& low, const Scalar& high);
+
+    template<typename CustomNullaryOp>
+    static const CwiseNullaryOp<CustomNullaryOp, Derived>
+    NullaryExpr(Index rows, Index cols, const CustomNullaryOp& func);
+    template<typename CustomNullaryOp>
+    static const CwiseNullaryOp<CustomNullaryOp, Derived>
+    NullaryExpr(Index size, const CustomNullaryOp& func);
+    template<typename CustomNullaryOp>
+    static const CwiseNullaryOp<CustomNullaryOp, Derived>
+    NullaryExpr(const CustomNullaryOp& func);
+
+    static const ConstantReturnType Zero(Index rows, Index cols);
+    static const ConstantReturnType Zero(Index size);
+    static const ConstantReturnType Zero();
+    static const ConstantReturnType Ones(Index rows, Index cols);
+    static const ConstantReturnType Ones(Index size);
+    static const ConstantReturnType Ones();
+
+    void fill(const Scalar& value);
+    Derived& setConstant(const Scalar& value);
+    Derived& setLinSpaced(Index size, const Scalar& low, const Scalar& high);
+    Derived& setLinSpaced(const Scalar& low, const Scalar& high);
+    Derived& setZero();
+    Derived& setOnes();
+    Derived& setRandom();
+
+    template<typename OtherDerived>
+    bool isApprox(const DenseBase<OtherDerived>& other,
+                  const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    bool isMuchSmallerThan(const RealScalar& other,
+                           const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    template<typename OtherDerived>
+    bool isMuchSmallerThan(const DenseBase<OtherDerived>& other,
+                           const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+
+    bool isApproxToConstant(const Scalar& value, const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    bool isConstant(const Scalar& value, const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    bool isZero(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    bool isOnes(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    
+    inline bool hasNaN() const;
+    inline bool allFinite() const;
+
+    inline Derived& operator*=(const Scalar& other);
+    inline Derived& operator/=(const Scalar& other);
+
+    typedef typename internal::add_const_on_value_type<typename internal::eval<Derived>::type>::type EvalReturnType;
+    /** \returns the matrix or vector obtained by evaluating this expression.
+      *
+      * Notice that in the case of a plain matrix or vector (not an expression) this function just returns
+      * a const reference, in order to avoid a useless copy.
+      */
+    EIGEN_STRONG_INLINE EvalReturnType eval() const
+    {
+      // Even though MSVC does not honor strong inlining when the return type
+      // is a dynamic matrix, we desperately need strong inlining for fixed
+      // size types on MSVC.
+      return typename internal::eval<Derived>::type(derived());
+    }
+
+    /** swaps *this with the expression \a other.
+      *
+      */
+    template<typename OtherDerived>
+    void swap(const DenseBase<OtherDerived>& other,
+              int = OtherDerived::ThisConstantIsPrivateInPlainObjectBase)
+    {
+      SwapWrapper<Derived>(derived()).lazyAssign(other.derived());
+    }
+
+    /** swaps *this with the matrix or array \a other.
+      *
+      */
+    template<typename OtherDerived>
+    void swap(PlainObjectBase<OtherDerived>& other)
+    {
+      SwapWrapper<Derived>(derived()).lazyAssign(other.derived());
+    }
+
+
+    inline const NestByValue<Derived> nestByValue() const;
+    inline const ForceAlignedAccess<Derived> forceAlignedAccess() const;
+    inline ForceAlignedAccess<Derived> forceAlignedAccess();
+    template<bool Enable> inline const typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type forceAlignedAccessIf() const;
+    template<bool Enable> inline typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type forceAlignedAccessIf();
+
+    Scalar sum() const;
+    Scalar mean() const;
+    Scalar trace() const;
+
+    Scalar prod() const;
+
+    typename internal::traits<Derived>::Scalar minCoeff() const;
+    typename internal::traits<Derived>::Scalar maxCoeff() const;
+
+    template<typename IndexType>
+    typename internal::traits<Derived>::Scalar minCoeff(IndexType* row, IndexType* col) const;
+    template<typename IndexType>
+    typename internal::traits<Derived>::Scalar maxCoeff(IndexType* row, IndexType* col) const;
+    template<typename IndexType>
+    typename internal::traits<Derived>::Scalar minCoeff(IndexType* index) const;
+    template<typename IndexType>
+    typename internal::traits<Derived>::Scalar maxCoeff(IndexType* index) const;
+
+    template<typename BinaryOp>
+    typename internal::result_of<BinaryOp(typename internal::traits<Derived>::Scalar)>::type
+    redux(const BinaryOp& func) const;
+
+    template<typename Visitor>
+    void visit(Visitor& func) const;
+
+    inline const WithFormat<Derived> format(const IOFormat& fmt) const;
+
+    /** \returns the unique coefficient of a 1x1 expression */
+    CoeffReturnType value() const
+    {
+      EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
+      eigen_assert(this->rows() == 1 && this->cols() == 1);
+      return derived().coeff(0,0);
+    }
+
+    bool all(void) const;
+    bool any(void) const;
+    Index count() const;
+
+    typedef VectorwiseOp<Derived, Horizontal> RowwiseReturnType;
+    typedef const VectorwiseOp<const Derived, Horizontal> ConstRowwiseReturnType;
+    typedef VectorwiseOp<Derived, Vertical> ColwiseReturnType;
+    typedef const VectorwiseOp<const Derived, Vertical> ConstColwiseReturnType;
+
+    ConstRowwiseReturnType rowwise() const;
+    RowwiseReturnType rowwise();
+    ConstColwiseReturnType colwise() const;
+    ColwiseReturnType colwise();
+
+    static const CwiseNullaryOp<internal::scalar_random_op<Scalar>,Derived> Random(Index rows, Index cols);
+    static const CwiseNullaryOp<internal::scalar_random_op<Scalar>,Derived> Random(Index size);
+    static const CwiseNullaryOp<internal::scalar_random_op<Scalar>,Derived> Random();
+
+    template<typename ThenDerived,typename ElseDerived>
+    const Select<Derived,ThenDerived,ElseDerived>
+    select(const DenseBase<ThenDerived>& thenMatrix,
+           const DenseBase<ElseDerived>& elseMatrix) const;
+
+    template<typename ThenDerived>
+    inline const Select<Derived,ThenDerived, typename ThenDerived::ConstantReturnType>
+    select(const DenseBase<ThenDerived>& thenMatrix, const typename ThenDerived::Scalar& elseScalar) const;
+
+    template<typename ElseDerived>
+    inline const Select<Derived, typename ElseDerived::ConstantReturnType, ElseDerived >
+    select(const typename ElseDerived::Scalar& thenScalar, const DenseBase<ElseDerived>& elseMatrix) const;
+
+    template<int p> RealScalar lpNorm() const;
+
+    template<int RowFactor, int ColFactor>
+    inline const Replicate<Derived,RowFactor,ColFactor> replicate() const;
+    
+    typedef Replicate<Derived,Dynamic,Dynamic> ReplicateReturnType;
+    inline const ReplicateReturnType replicate(Index rowFacor,Index colFactor) const;
+
+    typedef Reverse<Derived, BothDirections> ReverseReturnType;
+    typedef const Reverse<const Derived, BothDirections> ConstReverseReturnType;
+    ReverseReturnType reverse();
+    ConstReverseReturnType reverse() const;
+    void reverseInPlace();
+
+#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::DenseBase
+#   include "../plugins/BlockMethods.h"
+#   ifdef EIGEN_DENSEBASE_PLUGIN
+#     include EIGEN_DENSEBASE_PLUGIN
+#   endif
+#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
+
+#ifdef EIGEN2_SUPPORT
+
+    Block<Derived> corner(CornerType type, Index cRows, Index cCols);
+    const Block<Derived> corner(CornerType type, Index cRows, Index cCols) const;
+    template<int CRows, int CCols>
+    Block<Derived, CRows, CCols> corner(CornerType type);
+    template<int CRows, int CCols>
+    const Block<Derived, CRows, CCols> corner(CornerType type) const;
+
+#endif // EIGEN2_SUPPORT
+
+
+    // disable the use of evalTo for dense objects with a nice compilation error
+    template<typename Dest> inline void evalTo(Dest& ) const
+    {
+      EIGEN_STATIC_ASSERT((internal::is_same<Dest,void>::value),THE_EVAL_EVALTO_FUNCTION_SHOULD_NEVER_BE_CALLED_FOR_DENSE_OBJECTS);
+    }
+
+  protected:
+    /** Default constructor. Do nothing. */
+    DenseBase()
+    {
+      /* Just checks for self-consistency of the flags.
+       * Only do it when debugging Eigen, as this borders on paranoiac and could slow compilation down
+       */
+#ifdef EIGEN_INTERNAL_DEBUGGING
+      EIGEN_STATIC_ASSERT((EIGEN_IMPLIES(MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1, int(IsRowMajor))
+                        && EIGEN_IMPLIES(MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1, int(!IsRowMajor))),
+                          INVALID_STORAGE_ORDER_FOR_THIS_VECTOR_EXPRESSION)
+#endif
+    }
+
+  private:
+    explicit DenseBase(int);
+    DenseBase(int,int);
+    template<typename OtherDerived> explicit DenseBase(const DenseBase<OtherDerived>&);
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_DENSEBASE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/DenseCoeffsBase.h b/vendor/eigen-3.2.8/Eigen/src/Core/DenseCoeffsBase.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/DenseCoeffsBase.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/DenseCoeffsBase.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/DenseStorage.h b/vendor/eigen-3.2.8/Eigen/src/Core/DenseStorage.h
new file mode 100644
index 0000000..568493c
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/DenseStorage.h
@@ -0,0 +1,434 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2010 Hauke Heibel <hauke.heibel at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIXSTORAGE_H
+#define EIGEN_MATRIXSTORAGE_H
+
+#ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+  #define EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN EIGEN_DENSE_STORAGE_CTOR_PLUGIN;
+#else
+  #define EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN
+#endif
+
+namespace Eigen {
+
+namespace internal {
+
+struct constructor_without_unaligned_array_assert {};
+
+template<typename T, int Size> void check_static_allocation_size()
+{
+  // if EIGEN_STACK_ALLOCATION_LIMIT is defined to 0, then no limit
+  #if EIGEN_STACK_ALLOCATION_LIMIT
+  EIGEN_STATIC_ASSERT(Size * sizeof(T) <= EIGEN_STACK_ALLOCATION_LIMIT, OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG);
+  #endif
+}
+
+/** \internal
+  * Static array. If the MatrixOrArrayOptions require auto-alignment, the array will be automatically aligned:
+  * to 16 bytes boundary if the total size is a multiple of 16 bytes.
+  */
+template <typename T, int Size, int MatrixOrArrayOptions,
+          int Alignment = (MatrixOrArrayOptions&DontAlign) ? 0
+                        : (((Size*sizeof(T))%16)==0) ? 16
+                        : 0 >
+struct plain_array
+{
+  T array[Size];
+
+  plain_array() 
+  { 
+    check_static_allocation_size<T,Size>();
+  }
+
+  plain_array(constructor_without_unaligned_array_assert) 
+  { 
+    check_static_allocation_size<T,Size>();
+  }
+};
+
+#if defined(EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT)
+  #define EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(sizemask)
+#elif EIGEN_GNUC_AT_LEAST(4,7) 
+  // GCC 4.7 is too aggressive in its optimizations and remove the alignement test based on the fact the array is declared to be aligned.
+  // See this bug report: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53900
+  // Hiding the origin of the array pointer behind a function argument seems to do the trick even if the function is inlined:
+  template<typename PtrType>
+  EIGEN_ALWAYS_INLINE PtrType eigen_unaligned_array_assert_workaround_gcc47(PtrType array) { return array; }
+  #define EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(sizemask) \
+    eigen_assert((reinterpret_cast<size_t>(eigen_unaligned_array_assert_workaround_gcc47(array)) & sizemask) == 0 \
+              && "this assertion is explained here: " \
+              "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" \
+              " **** READ THIS WEB PAGE !!! ****");
+#else
+  #define EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(sizemask) \
+    eigen_assert((reinterpret_cast<size_t>(array) & sizemask) == 0 \
+              && "this assertion is explained here: " \
+              "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" \
+              " **** READ THIS WEB PAGE !!! ****");
+#endif
+
+template <typename T, int Size, int MatrixOrArrayOptions>
+struct plain_array<T, Size, MatrixOrArrayOptions, 16>
+{
+  EIGEN_USER_ALIGN16 T array[Size];
+
+  plain_array() 
+  { 
+    EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(0xf);
+    check_static_allocation_size<T,Size>();
+  }
+
+  plain_array(constructor_without_unaligned_array_assert) 
+  { 
+    check_static_allocation_size<T,Size>();
+  }
+};
+
+template <typename T, int MatrixOrArrayOptions, int Alignment>
+struct plain_array<T, 0, MatrixOrArrayOptions, Alignment>
+{
+  EIGEN_USER_ALIGN16 T array[1];
+  plain_array() {}
+  plain_array(constructor_without_unaligned_array_assert) {}
+};
+
+} // end namespace internal
+
+/** \internal
+  *
+  * \class DenseStorage
+  * \ingroup Core_Module
+  *
+  * \brief Stores the data of a matrix
+  *
+  * This class stores the data of fixed-size, dynamic-size or mixed matrices
+  * in a way as compact as possible.
+  *
+  * \sa Matrix
+  */
+template<typename T, int Size, int _Rows, int _Cols, int _Options> class DenseStorage;
+
+// purely fixed-size matrix
+template<typename T, int Size, int _Rows, int _Cols, int _Options> class DenseStorage
+{
+    internal::plain_array<T,Size,_Options> m_data;
+  public:
+    DenseStorage() {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert)
+      : m_data(internal::constructor_without_unaligned_array_assert()) {}
+    DenseStorage(const DenseStorage& other) : m_data(other.m_data) {}
+    DenseStorage& operator=(const DenseStorage& other)
+    {
+      if (this != &other) m_data = other.m_data;
+      return *this;
+    }
+    DenseStorage(DenseIndex,DenseIndex,DenseIndex) {}
+    void swap(DenseStorage& other) { std::swap(m_data,other.m_data); }
+    static DenseIndex rows(void) {return _Rows;}
+    static DenseIndex cols(void) {return _Cols;}
+    void conservativeResize(DenseIndex,DenseIndex,DenseIndex) {}
+    void resize(DenseIndex,DenseIndex,DenseIndex) {}
+    const T *data() const { return m_data.array; }
+    T *data() { return m_data.array; }
+};
+
+// null matrix
+template<typename T, int _Rows, int _Cols, int _Options> class DenseStorage<T, 0, _Rows, _Cols, _Options>
+{
+  public:
+    DenseStorage() {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert) {}
+    DenseStorage(const DenseStorage&) {}
+    DenseStorage& operator=(const DenseStorage&) { return *this; }
+    DenseStorage(DenseIndex,DenseIndex,DenseIndex) {}
+    void swap(DenseStorage& ) {}
+    static DenseIndex rows(void) {return _Rows;}
+    static DenseIndex cols(void) {return _Cols;}
+    void conservativeResize(DenseIndex,DenseIndex,DenseIndex) {}
+    void resize(DenseIndex,DenseIndex,DenseIndex) {}
+    const T *data() const { return 0; }
+    T *data() { return 0; }
+};
+
+// more specializations for null matrices; these are necessary to resolve ambiguities
+template<typename T, int _Options> class DenseStorage<T, 0, Dynamic, Dynamic, _Options>
+: public DenseStorage<T, 0, 0, 0, _Options> { };
+
+template<typename T, int _Rows, int _Options> class DenseStorage<T, 0, _Rows, Dynamic, _Options>
+: public DenseStorage<T, 0, 0, 0, _Options> { };
+
+template<typename T, int _Cols, int _Options> class DenseStorage<T, 0, Dynamic, _Cols, _Options>
+: public DenseStorage<T, 0, 0, 0, _Options> { };
+
+// dynamic-size matrix with fixed-size storage
+template<typename T, int Size, int _Options> class DenseStorage<T, Size, Dynamic, Dynamic, _Options>
+{
+    internal::plain_array<T,Size,_Options> m_data;
+    DenseIndex m_rows;
+    DenseIndex m_cols;
+  public:
+    DenseStorage() : m_rows(0), m_cols(0) {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert)
+      : m_data(internal::constructor_without_unaligned_array_assert()), m_rows(0), m_cols(0) {}
+    DenseStorage(const DenseStorage& other) : m_data(other.m_data), m_rows(other.m_rows), m_cols(other.m_cols) {}
+    DenseStorage& operator=(const DenseStorage& other)
+    {
+      if (this != &other)
+      {
+        m_data = other.m_data;
+        m_rows = other.m_rows;
+        m_cols = other.m_cols;
+      }
+      return *this;
+    }
+    DenseStorage(DenseIndex, DenseIndex nbRows, DenseIndex nbCols) : m_rows(nbRows), m_cols(nbCols) {}
+    void swap(DenseStorage& other)
+    { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); std::swap(m_cols,other.m_cols); }
+    DenseIndex rows() const {return m_rows;}
+    DenseIndex cols() const {return m_cols;}
+    void conservativeResize(DenseIndex, DenseIndex nbRows, DenseIndex nbCols) { m_rows = nbRows; m_cols = nbCols; }
+    void resize(DenseIndex, DenseIndex nbRows, DenseIndex nbCols) { m_rows = nbRows; m_cols = nbCols; }
+    const T *data() const { return m_data.array; }
+    T *data() { return m_data.array; }
+};
+
+// dynamic-size matrix with fixed-size storage and fixed width
+template<typename T, int Size, int _Cols, int _Options> class DenseStorage<T, Size, Dynamic, _Cols, _Options>
+{
+    internal::plain_array<T,Size,_Options> m_data;
+    DenseIndex m_rows;
+  public:
+    DenseStorage() : m_rows(0) {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert)
+      : m_data(internal::constructor_without_unaligned_array_assert()), m_rows(0) {}
+    DenseStorage(const DenseStorage& other) : m_data(other.m_data), m_rows(other.m_rows) {}
+    DenseStorage& operator=(const DenseStorage& other)
+    {
+      if (this != &other)
+      {
+        m_data = other.m_data;
+        m_rows = other.m_rows;
+      }
+      return *this;
+    }
+    DenseStorage(DenseIndex, DenseIndex nbRows, DenseIndex) : m_rows(nbRows) {}
+    void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); }
+    DenseIndex rows(void) const {return m_rows;}
+    DenseIndex cols(void) const {return _Cols;}
+    void conservativeResize(DenseIndex, DenseIndex nbRows, DenseIndex) { m_rows = nbRows; }
+    void resize(DenseIndex, DenseIndex nbRows, DenseIndex) { m_rows = nbRows; }
+    const T *data() const { return m_data.array; }
+    T *data() { return m_data.array; }
+};
+
+// dynamic-size matrix with fixed-size storage and fixed height
+template<typename T, int Size, int _Rows, int _Options> class DenseStorage<T, Size, _Rows, Dynamic, _Options>
+{
+    internal::plain_array<T,Size,_Options> m_data;
+    DenseIndex m_cols;
+  public:
+    DenseStorage() : m_cols(0) {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert)
+      : m_data(internal::constructor_without_unaligned_array_assert()), m_cols(0) {}
+    DenseStorage(const DenseStorage& other) : m_data(other.m_data), m_cols(other.m_cols) {}
+    DenseStorage& operator=(const DenseStorage& other)
+    {
+      if (this != &other)
+      {
+        m_data = other.m_data;
+        m_cols = other.m_cols;
+      }
+      return *this;
+    }
+    DenseStorage(DenseIndex, DenseIndex, DenseIndex nbCols) : m_cols(nbCols) {}
+    void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_cols,other.m_cols); }
+    DenseIndex rows(void) const {return _Rows;}
+    DenseIndex cols(void) const {return m_cols;}
+    void conservativeResize(DenseIndex, DenseIndex, DenseIndex nbCols) { m_cols = nbCols; }
+    void resize(DenseIndex, DenseIndex, DenseIndex nbCols) { m_cols = nbCols; }
+    const T *data() const { return m_data.array; }
+    T *data() { return m_data.array; }
+};
+
+// purely dynamic matrix.
+template<typename T, int _Options> class DenseStorage<T, Dynamic, Dynamic, Dynamic, _Options>
+{
+    T *m_data;
+    DenseIndex m_rows;
+    DenseIndex m_cols;
+  public:
+    DenseStorage() : m_data(0), m_rows(0), m_cols(0) {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert)
+       : m_data(0), m_rows(0), m_cols(0) {}
+    DenseStorage(DenseIndex size, DenseIndex nbRows, DenseIndex nbCols)
+      : m_data(internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size)), m_rows(nbRows), m_cols(nbCols)
+    { EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN }
+#ifdef EIGEN_HAVE_RVALUE_REFERENCES
+    DenseStorage(DenseStorage&& other)
+      : m_data(std::move(other.m_data))
+      , m_rows(std::move(other.m_rows))
+      , m_cols(std::move(other.m_cols))
+    {
+      other.m_data = nullptr;
+    }
+    DenseStorage& operator=(DenseStorage&& other)
+    {
+      using std::swap;
+      swap(m_data, other.m_data);
+      swap(m_rows, other.m_rows);
+      swap(m_cols, other.m_cols);
+      return *this;
+    }
+#endif
+    ~DenseStorage() { internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, m_rows*m_cols); }
+    void swap(DenseStorage& other)
+    { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); std::swap(m_cols,other.m_cols); }
+    DenseIndex rows(void) const {return m_rows;}
+    DenseIndex cols(void) const {return m_cols;}
+    void conservativeResize(DenseIndex size, DenseIndex nbRows, DenseIndex nbCols)
+    {
+      m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, m_rows*m_cols);
+      m_rows = nbRows;
+      m_cols = nbCols;
+    }
+    void resize(DenseIndex size, DenseIndex nbRows, DenseIndex nbCols)
+    {
+      if(size != m_rows*m_cols)
+      {
+        internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, m_rows*m_cols);
+        if (size)
+          m_data = internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size);
+        else
+          m_data = 0;
+        EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN
+      }
+      m_rows = nbRows;
+      m_cols = nbCols;
+    }
+    const T *data() const { return m_data; }
+    T *data() { return m_data; }
+  private:
+    DenseStorage(const DenseStorage&);
+    DenseStorage& operator=(const DenseStorage&);
+};
+
+// matrix with dynamic width and fixed height (so that matrix has dynamic size).
+template<typename T, int _Rows, int _Options> class DenseStorage<T, Dynamic, _Rows, Dynamic, _Options>
+{
+    T *m_data;
+    DenseIndex m_cols;
+  public:
+    DenseStorage() : m_data(0), m_cols(0) {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert) : m_data(0), m_cols(0) {}
+    DenseStorage(DenseIndex size, DenseIndex, DenseIndex nbCols) : m_data(internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size)), m_cols(nbCols)
+    { EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN }
+#ifdef EIGEN_HAVE_RVALUE_REFERENCES
+    DenseStorage(DenseStorage&& other)
+      : m_data(std::move(other.m_data))
+      , m_cols(std::move(other.m_cols))
+    {
+      other.m_data = nullptr;
+    }
+    DenseStorage& operator=(DenseStorage&& other)
+    {
+      using std::swap;
+      swap(m_data, other.m_data);
+      swap(m_cols, other.m_cols);
+      return *this;
+    }
+#endif
+    ~DenseStorage() { internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Rows*m_cols); }
+    void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_cols,other.m_cols); }
+    static DenseIndex rows(void) {return _Rows;}
+    DenseIndex cols(void) const {return m_cols;}
+    void conservativeResize(DenseIndex size, DenseIndex, DenseIndex nbCols)
+    {
+      m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, _Rows*m_cols);
+      m_cols = nbCols;
+    }
+    EIGEN_STRONG_INLINE void resize(DenseIndex size, DenseIndex, DenseIndex nbCols)
+    {
+      if(size != _Rows*m_cols)
+      {
+        internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Rows*m_cols);
+        if (size)
+          m_data = internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size);
+        else
+          m_data = 0;
+        EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN
+      }
+      m_cols = nbCols;
+    }
+    const T *data() const { return m_data; }
+    T *data() { return m_data; }
+  private:
+    DenseStorage(const DenseStorage&);
+    DenseStorage& operator=(const DenseStorage&);
+};
+
+// matrix with dynamic height and fixed width (so that matrix has dynamic size).
+template<typename T, int _Cols, int _Options> class DenseStorage<T, Dynamic, Dynamic, _Cols, _Options>
+{
+    T *m_data;
+    DenseIndex m_rows;
+  public:
+    DenseStorage() : m_data(0), m_rows(0) {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert) : m_data(0), m_rows(0) {}
+    DenseStorage(DenseIndex size, DenseIndex nbRows, DenseIndex) : m_data(internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size)), m_rows(nbRows)
+    { EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN }
+#ifdef EIGEN_HAVE_RVALUE_REFERENCES
+    DenseStorage(DenseStorage&& other)
+      : m_data(std::move(other.m_data))
+      , m_rows(std::move(other.m_rows))
+    {
+      other.m_data = nullptr;
+    }
+    DenseStorage& operator=(DenseStorage&& other)
+    {
+      using std::swap;
+      swap(m_data, other.m_data);
+      swap(m_rows, other.m_rows);
+      return *this;
+    }
+#endif
+    ~DenseStorage() { internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Cols*m_rows); }
+    void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); }
+    DenseIndex rows(void) const {return m_rows;}
+    static DenseIndex cols(void) {return _Cols;}
+    void conservativeResize(DenseIndex size, DenseIndex nbRows, DenseIndex)
+    {
+      m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, m_rows*_Cols);
+      m_rows = nbRows;
+    }
+    EIGEN_STRONG_INLINE void resize(DenseIndex size, DenseIndex nbRows, DenseIndex)
+    {
+      if(size != m_rows*_Cols)
+      {
+        internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Cols*m_rows);
+        if (size)
+          m_data = internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size);
+        else
+          m_data = 0;
+        EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN
+      }
+      m_rows = nbRows;
+    }
+    const T *data() const { return m_data; }
+    T *data() { return m_data; }
+  private:
+    DenseStorage(const DenseStorage&);
+    DenseStorage& operator=(const DenseStorage&);
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATRIX_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/Diagonal.h b/vendor/eigen-3.2.8/Eigen/src/Core/Diagonal.h
new file mode 100644
index 0000000..68cf6d4
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/Diagonal.h
@@ -0,0 +1,237 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DIAGONAL_H
+#define EIGEN_DIAGONAL_H
+
+namespace Eigen { 
+
+/** \class Diagonal
+  * \ingroup Core_Module
+  *
+  * \brief Expression of a diagonal/subdiagonal/superdiagonal in a matrix
+  *
+  * \param MatrixType the type of the object in which we are taking a sub/main/super diagonal
+  * \param DiagIndex the index of the sub/super diagonal. The default is 0 and it means the main diagonal.
+  *              A positive value means a superdiagonal, a negative value means a subdiagonal.
+  *              You can also use Dynamic so the index can be set at runtime.
+  *
+  * The matrix is not required to be square.
+  *
+  * This class represents an expression of the main diagonal, or any sub/super diagonal
+  * of a square matrix. It is the return type of MatrixBase::diagonal() and MatrixBase::diagonal(Index) and most of the
+  * time this is the only way it is used.
+  *
+  * \sa MatrixBase::diagonal(), MatrixBase::diagonal(Index)
+  */
+
+namespace internal {
+template<typename MatrixType, int DiagIndex>
+struct traits<Diagonal<MatrixType,DiagIndex> >
+ : traits<MatrixType>
+{
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
+  typedef typename MatrixType::StorageKind StorageKind;
+  enum {
+    RowsAtCompileTime = (int(DiagIndex) == DynamicIndex || int(MatrixType::SizeAtCompileTime) == Dynamic) ? Dynamic
+                      : (EIGEN_PLAIN_ENUM_MIN(MatrixType::RowsAtCompileTime - EIGEN_PLAIN_ENUM_MAX(-DiagIndex, 0),
+                                              MatrixType::ColsAtCompileTime - EIGEN_PLAIN_ENUM_MAX( DiagIndex, 0))),
+    ColsAtCompileTime = 1,
+    MaxRowsAtCompileTime = int(MatrixType::MaxSizeAtCompileTime) == Dynamic ? Dynamic
+                         : DiagIndex == DynamicIndex ? EIGEN_SIZE_MIN_PREFER_FIXED(MatrixType::MaxRowsAtCompileTime,
+                                                                              MatrixType::MaxColsAtCompileTime)
+                         : (EIGEN_PLAIN_ENUM_MIN(MatrixType::MaxRowsAtCompileTime - EIGEN_PLAIN_ENUM_MAX(-DiagIndex, 0),
+                                                 MatrixType::MaxColsAtCompileTime - EIGEN_PLAIN_ENUM_MAX( DiagIndex, 0))),
+    MaxColsAtCompileTime = 1,
+    MaskLvalueBit = is_lvalue<MatrixType>::value ? LvalueBit : 0,
+    Flags = (unsigned int)_MatrixTypeNested::Flags & (HereditaryBits | LinearAccessBit | MaskLvalueBit | DirectAccessBit) & ~RowMajorBit,
+    CoeffReadCost = _MatrixTypeNested::CoeffReadCost,
+    MatrixTypeOuterStride = outer_stride_at_compile_time<MatrixType>::ret,
+    InnerStrideAtCompileTime = MatrixTypeOuterStride == Dynamic ? Dynamic : MatrixTypeOuterStride+1,
+    OuterStrideAtCompileTime = 0
+  };
+};
+}
+
+template<typename MatrixType, int _DiagIndex> class Diagonal
+   : public internal::dense_xpr_base< Diagonal<MatrixType,_DiagIndex> >::type
+{
+  public:
+
+    enum { DiagIndex = _DiagIndex };
+    typedef typename internal::dense_xpr_base<Diagonal>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Diagonal)
+
+    inline Diagonal(MatrixType& matrix, Index a_index = DiagIndex) : m_matrix(matrix), m_index(a_index) {}
+
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Diagonal)
+
+    inline Index rows() const
+    { return m_index.value()<0 ? (std::min<Index>)(m_matrix.cols(),m_matrix.rows()+m_index.value()) : (std::min<Index>)(m_matrix.rows(),m_matrix.cols()-m_index.value()); }
+
+    inline Index cols() const { return 1; }
+
+    inline Index innerStride() const
+    {
+      return m_matrix.outerStride() + 1;
+    }
+
+    inline Index outerStride() const
+    {
+      return 0;
+    }
+
+    typedef typename internal::conditional<
+                       internal::is_lvalue<MatrixType>::value,
+                       Scalar,
+                       const Scalar
+                     >::type ScalarWithConstIfNotLvalue;
+
+    inline ScalarWithConstIfNotLvalue* data() { return &(m_matrix.const_cast_derived().coeffRef(rowOffset(), colOffset())); }
+    inline const Scalar* data() const { return &(m_matrix.const_cast_derived().coeffRef(rowOffset(), colOffset())); }
+
+    inline Scalar& coeffRef(Index row, Index)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
+      return m_matrix.const_cast_derived().coeffRef(row+rowOffset(), row+colOffset());
+    }
+
+    inline const Scalar& coeffRef(Index row, Index) const
+    {
+      return m_matrix.const_cast_derived().coeffRef(row+rowOffset(), row+colOffset());
+    }
+
+    inline CoeffReturnType coeff(Index row, Index) const
+    {
+      return m_matrix.coeff(row+rowOffset(), row+colOffset());
+    }
+
+    inline Scalar& coeffRef(Index idx)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
+      return m_matrix.const_cast_derived().coeffRef(idx+rowOffset(), idx+colOffset());
+    }
+
+    inline const Scalar& coeffRef(Index idx) const
+    {
+      return m_matrix.const_cast_derived().coeffRef(idx+rowOffset(), idx+colOffset());
+    }
+
+    inline CoeffReturnType coeff(Index idx) const
+    {
+      return m_matrix.coeff(idx+rowOffset(), idx+colOffset());
+    }
+
+    const typename internal::remove_all<typename MatrixType::Nested>::type& 
+    nestedExpression() const 
+    {
+      return m_matrix;
+    }
+
+    int index() const
+    {
+      return m_index.value();
+    }
+
+  protected:
+    typename MatrixType::Nested m_matrix;
+    const internal::variable_if_dynamicindex<Index, DiagIndex> m_index;
+
+  private:
+    // some compilers may fail to optimize std::max etc in case of compile-time constants...
+    EIGEN_STRONG_INLINE Index absDiagIndex() const { return m_index.value()>0 ? m_index.value() : -m_index.value(); }
+    EIGEN_STRONG_INLINE Index rowOffset() const { return m_index.value()>0 ? 0 : -m_index.value(); }
+    EIGEN_STRONG_INLINE Index colOffset() const { return m_index.value()>0 ? m_index.value() : 0; }
+    // triger a compile time error is someone try to call packet
+    template<int LoadMode> typename MatrixType::PacketReturnType packet(Index) const;
+    template<int LoadMode> typename MatrixType::PacketReturnType packet(Index,Index) const;
+};
+
+/** \returns an expression of the main diagonal of the matrix \c *this
+  *
+  * \c *this is not required to be square.
+  *
+  * Example: \include MatrixBase_diagonal.cpp
+  * Output: \verbinclude MatrixBase_diagonal.out
+  *
+  * \sa class Diagonal */
+template<typename Derived>
+inline typename MatrixBase<Derived>::DiagonalReturnType
+MatrixBase<Derived>::diagonal()
+{
+  return derived();
+}
+
+/** This is the const version of diagonal(). */
+template<typename Derived>
+inline typename MatrixBase<Derived>::ConstDiagonalReturnType
+MatrixBase<Derived>::diagonal() const
+{
+  return ConstDiagonalReturnType(derived());
+}
+
+/** \returns an expression of the \a DiagIndex-th sub or super diagonal of the matrix \c *this
+  *
+  * \c *this is not required to be square.
+  *
+  * The template parameter \a DiagIndex represent a super diagonal if \a DiagIndex > 0
+  * and a sub diagonal otherwise. \a DiagIndex == 0 is equivalent to the main diagonal.
+  *
+  * Example: \include MatrixBase_diagonal_int.cpp
+  * Output: \verbinclude MatrixBase_diagonal_int.out
+  *
+  * \sa MatrixBase::diagonal(), class Diagonal */
+template<typename Derived>
+inline typename MatrixBase<Derived>::DiagonalDynamicIndexReturnType
+MatrixBase<Derived>::diagonal(Index index)
+{
+  return DiagonalDynamicIndexReturnType(derived(), index);
+}
+
+/** This is the const version of diagonal(Index). */
+template<typename Derived>
+inline typename MatrixBase<Derived>::ConstDiagonalDynamicIndexReturnType
+MatrixBase<Derived>::diagonal(Index index) const
+{
+  return ConstDiagonalDynamicIndexReturnType(derived(), index);
+}
+
+/** \returns an expression of the \a DiagIndex-th sub or super diagonal of the matrix \c *this
+  *
+  * \c *this is not required to be square.
+  *
+  * The template parameter \a DiagIndex represent a super diagonal if \a DiagIndex > 0
+  * and a sub diagonal otherwise. \a DiagIndex == 0 is equivalent to the main diagonal.
+  *
+  * Example: \include MatrixBase_diagonal_template_int.cpp
+  * Output: \verbinclude MatrixBase_diagonal_template_int.out
+  *
+  * \sa MatrixBase::diagonal(), class Diagonal */
+template<typename Derived>
+template<int Index>
+inline typename MatrixBase<Derived>::template DiagonalIndexReturnType<Index>::Type
+MatrixBase<Derived>::diagonal()
+{
+  return derived();
+}
+
+/** This is the const version of diagonal<int>(). */
+template<typename Derived>
+template<int Index>
+inline typename MatrixBase<Derived>::template ConstDiagonalIndexReturnType<Index>::Type
+MatrixBase<Derived>::diagonal() const
+{
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_DIAGONAL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/DiagonalMatrix.h b/vendor/eigen-3.2.8/Eigen/src/Core/DiagonalMatrix.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/DiagonalMatrix.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/DiagonalMatrix.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/DiagonalProduct.h b/vendor/eigen-3.2.8/Eigen/src/Core/DiagonalProduct.h
new file mode 100644
index 0000000..cc6b536
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/DiagonalProduct.h
@@ -0,0 +1,131 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DIAGONALPRODUCT_H
+#define EIGEN_DIAGONALPRODUCT_H
+
+namespace Eigen { 
+
+namespace internal {
+template<typename MatrixType, typename DiagonalType, int ProductOrder>
+struct traits<DiagonalProduct<MatrixType, DiagonalType, ProductOrder> >
+ : traits<MatrixType>
+{
+  typedef typename scalar_product_traits<typename MatrixType::Scalar, typename DiagonalType::Scalar>::ReturnType Scalar;
+  enum {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+
+    _StorageOrder = MatrixType::Flags & RowMajorBit ? RowMajor : ColMajor,
+    _ScalarAccessOnDiag =  !((int(_StorageOrder) == ColMajor && int(ProductOrder) == OnTheLeft)
+                          ||(int(_StorageOrder) == RowMajor && int(ProductOrder) == OnTheRight)),
+    _SameTypes = is_same<typename MatrixType::Scalar, typename DiagonalType::Scalar>::value,
+    // FIXME currently we need same types, but in the future the next rule should be the one
+    //_Vectorizable = bool(int(MatrixType::Flags)&PacketAccessBit) && ((!_PacketOnDiag) || (_SameTypes && bool(int(DiagonalType::DiagonalVectorType::Flags)&PacketAccessBit))),
+    _Vectorizable = bool(int(MatrixType::Flags)&PacketAccessBit) && _SameTypes && (_ScalarAccessOnDiag || (bool(int(DiagonalType::DiagonalVectorType::Flags)&PacketAccessBit))),
+    _LinearAccessMask = (RowsAtCompileTime==1 || ColsAtCompileTime==1) ? LinearAccessBit : 0,
+
+    Flags = ((HereditaryBits|_LinearAccessMask|AlignedBit) & (unsigned int)(MatrixType::Flags)) | (_Vectorizable ? PacketAccessBit : 0),//(int(MatrixType::Flags)&int(DiagonalType::DiagonalVectorType::Flags)&AlignedBit),
+    Cost0 = EIGEN_ADD_COST(NumTraits<Scalar>::MulCost, MatrixType::CoeffReadCost),
+    CoeffReadCost = EIGEN_ADD_COST(Cost0,DiagonalType::DiagonalVectorType::CoeffReadCost)
+  };
+};
+}
+
+template<typename MatrixType, typename DiagonalType, int ProductOrder>
+class DiagonalProduct : internal::no_assignment_operator,
+                        public MatrixBase<DiagonalProduct<MatrixType, DiagonalType, ProductOrder> >
+{
+  public:
+
+    typedef MatrixBase<DiagonalProduct> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(DiagonalProduct)
+
+    inline DiagonalProduct(const MatrixType& matrix, const DiagonalType& diagonal)
+      : m_matrix(matrix), m_diagonal(diagonal)
+    {
+      eigen_assert(diagonal.diagonal().size() == (ProductOrder == OnTheLeft ? matrix.rows() : matrix.cols()));
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return m_matrix.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return m_matrix.cols(); }
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index row, Index col) const
+    {
+      return m_diagonal.diagonal().coeff(ProductOrder == OnTheLeft ? row : col) * m_matrix.coeff(row, col);
+    }
+    
+    EIGEN_STRONG_INLINE const Scalar coeff(Index idx) const
+    {
+      enum {
+        StorageOrder = int(MatrixType::Flags) & RowMajorBit ? RowMajor : ColMajor
+      };
+      return coeff(int(StorageOrder)==ColMajor?idx:0,int(StorageOrder)==ColMajor?0:idx);
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index row, Index col) const
+    {
+      enum {
+        StorageOrder = Flags & RowMajorBit ? RowMajor : ColMajor
+      };
+      const Index indexInDiagonalVector = ProductOrder == OnTheLeft ? row : col;
+      return packet_impl<LoadMode>(row,col,indexInDiagonalVector,typename internal::conditional<
+        ((int(StorageOrder) == RowMajor && int(ProductOrder) == OnTheLeft)
+       ||(int(StorageOrder) == ColMajor && int(ProductOrder) == OnTheRight)), internal::true_type, internal::false_type>::type());
+    }
+    
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index idx) const
+    {
+      enum {
+        StorageOrder = int(MatrixType::Flags) & RowMajorBit ? RowMajor : ColMajor
+      };
+      return packet<LoadMode>(int(StorageOrder)==ColMajor?idx:0,int(StorageOrder)==ColMajor?0:idx);
+    }
+
+  protected:
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet_impl(Index row, Index col, Index id, internal::true_type) const
+    {
+      return internal::pmul(m_matrix.template packet<LoadMode>(row, col),
+                     internal::pset1<PacketScalar>(m_diagonal.diagonal().coeff(id)));
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet_impl(Index row, Index col, Index id, internal::false_type) const
+    {
+      enum {
+        InnerSize = (MatrixType::Flags & RowMajorBit) ? MatrixType::ColsAtCompileTime : MatrixType::RowsAtCompileTime,
+        DiagonalVectorPacketLoadMode = (LoadMode == Aligned && (((InnerSize%16) == 0) || (int(DiagonalType::DiagonalVectorType::Flags)&AlignedBit)==AlignedBit) ? Aligned : Unaligned)
+      };
+      return internal::pmul(m_matrix.template packet<LoadMode>(row, col),
+                     m_diagonal.diagonal().template packet<DiagonalVectorPacketLoadMode>(id));
+    }
+
+    typename MatrixType::Nested m_matrix;
+    typename DiagonalType::Nested m_diagonal;
+};
+
+/** \returns the diagonal matrix product of \c *this by the diagonal matrix \a diagonal.
+  */
+template<typename Derived>
+template<typename DiagonalDerived>
+inline const DiagonalProduct<Derived, DiagonalDerived, OnTheRight>
+MatrixBase<Derived>::operator*(const DiagonalBase<DiagonalDerived> &a_diagonal) const
+{
+  return DiagonalProduct<Derived, DiagonalDerived, OnTheRight>(derived(), a_diagonal.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_DIAGONALPRODUCT_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/Dot.h b/vendor/eigen-3.2.8/Eigen/src/Core/Dot.h
new file mode 100644
index 0000000..9d7651f
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/Dot.h
@@ -0,0 +1,263 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008, 2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DOT_H
+#define EIGEN_DOT_H
+
+namespace Eigen { 
+
+namespace internal {
+
+// helper function for dot(). The problem is that if we put that in the body of dot(), then upon calling dot
+// with mismatched types, the compiler emits errors about failing to instantiate cwiseProduct BEFORE
+// looking at the static assertions. Thus this is a trick to get better compile errors.
+template<typename T, typename U,
+// the NeedToTranspose condition here is taken straight from Assign.h
+         bool NeedToTranspose = T::IsVectorAtCompileTime
+                && U::IsVectorAtCompileTime
+                && ((int(T::RowsAtCompileTime) == 1 && int(U::ColsAtCompileTime) == 1)
+                      |  // FIXME | instead of || to please GCC 4.4.0 stupid warning "suggest parentheses around &&".
+                         // revert to || as soon as not needed anymore.
+                    (int(T::ColsAtCompileTime) == 1 && int(U::RowsAtCompileTime) == 1))
+>
+struct dot_nocheck
+{
+  typedef typename scalar_product_traits<typename traits<T>::Scalar,typename traits<U>::Scalar>::ReturnType ResScalar;
+  static inline ResScalar run(const MatrixBase<T>& a, const MatrixBase<U>& b)
+  {
+    return a.template binaryExpr<scalar_conj_product_op<typename traits<T>::Scalar,typename traits<U>::Scalar> >(b).sum();
+  }
+};
+
+template<typename T, typename U>
+struct dot_nocheck<T, U, true>
+{
+  typedef typename scalar_product_traits<typename traits<T>::Scalar,typename traits<U>::Scalar>::ReturnType ResScalar;
+  static inline ResScalar run(const MatrixBase<T>& a, const MatrixBase<U>& b)
+  {
+    return a.transpose().template binaryExpr<scalar_conj_product_op<typename traits<T>::Scalar,typename traits<U>::Scalar> >(b).sum();
+  }
+};
+
+} // end namespace internal
+
+/** \returns the dot product of *this with other.
+  *
+  * \only_for_vectors
+  *
+  * \note If the scalar type is complex numbers, then this function returns the hermitian
+  * (sesquilinear) dot product, conjugate-linear in the first variable and linear in the
+  * second variable.
+  *
+  * \sa squaredNorm(), norm()
+  */
+template<typename Derived>
+template<typename OtherDerived>
+typename internal::scalar_product_traits<typename internal::traits<Derived>::Scalar,typename internal::traits<OtherDerived>::Scalar>::ReturnType
+MatrixBase<Derived>::dot(const MatrixBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+  EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
+  typedef internal::scalar_conj_product_op<Scalar,typename OtherDerived::Scalar> func;
+  EIGEN_CHECK_BINARY_COMPATIBILIY(func,Scalar,typename OtherDerived::Scalar);
+
+  eigen_assert(size() == other.size());
+
+  return internal::dot_nocheck<Derived,OtherDerived>::run(*this, other);
+}
+
+#ifdef EIGEN2_SUPPORT
+/** \returns the dot product of *this with other, with the Eigen2 convention that the dot product is linear in the first variable
+  * (conjugating the second variable). Of course this only makes a difference in the complex case.
+  *
+  * This method is only available in EIGEN2_SUPPORT mode.
+  *
+  * \only_for_vectors
+  *
+  * \sa dot()
+  */
+template<typename Derived>
+template<typename OtherDerived>
+typename internal::traits<Derived>::Scalar
+MatrixBase<Derived>::eigen2_dot(const MatrixBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+  EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
+  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+  eigen_assert(size() == other.size());
+
+  return internal::dot_nocheck<OtherDerived,Derived>::run(other,*this);
+}
+#endif
+
+
+//---------- implementation of L2 norm and related functions ----------
+
+/** \returns, for vectors, the squared \em l2 norm of \c *this, and for matrices the Frobenius norm.
+  * In both cases, it consists in the sum of the square of all the matrix entries.
+  * For vectors, this is also equals to the dot product of \c *this with itself.
+  *
+  * \sa dot(), norm()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename NumTraits<typename internal::traits<Derived>::Scalar>::Real MatrixBase<Derived>::squaredNorm() const
+{
+  return numext::real((*this).cwiseAbs2().sum());
+}
+
+/** \returns, for vectors, the \em l2 norm of \c *this, and for matrices the Frobenius norm.
+  * In both cases, it consists in the square root of the sum of the square of all the matrix entries.
+  * For vectors, this is also equals to the square root of the dot product of \c *this with itself.
+  *
+  * \sa dot(), squaredNorm()
+  */
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real MatrixBase<Derived>::norm() const
+{
+  using std::sqrt;
+  return sqrt(squaredNorm());
+}
+
+/** \returns an expression of the quotient of *this by its own norm.
+  *
+  * \only_for_vectors
+  *
+  * \sa norm(), normalize()
+  */
+template<typename Derived>
+inline const typename MatrixBase<Derived>::PlainObject
+MatrixBase<Derived>::normalized() const
+{
+  typedef typename internal::nested<Derived>::type Nested;
+  typedef typename internal::remove_reference<Nested>::type _Nested;
+  _Nested n(derived());
+  return n / n.norm();
+}
+
+/** Normalizes the vector, i.e. divides it by its own norm.
+  *
+  * \only_for_vectors
+  *
+  * \sa norm(), normalized()
+  */
+template<typename Derived>
+inline void MatrixBase<Derived>::normalize()
+{
+  *this /= norm();
+}
+
+//---------- implementation of other norms ----------
+
+namespace internal {
+
+template<typename Derived, int p>
+struct lpNorm_selector
+{
+  typedef typename NumTraits<typename traits<Derived>::Scalar>::Real RealScalar;
+  static inline RealScalar run(const MatrixBase<Derived>& m)
+  {
+    using std::pow;
+    return pow(m.cwiseAbs().array().pow(p).sum(), RealScalar(1)/p);
+  }
+};
+
+template<typename Derived>
+struct lpNorm_selector<Derived, 1>
+{
+  static inline typename NumTraits<typename traits<Derived>::Scalar>::Real run(const MatrixBase<Derived>& m)
+  {
+    return m.cwiseAbs().sum();
+  }
+};
+
+template<typename Derived>
+struct lpNorm_selector<Derived, 2>
+{
+  static inline typename NumTraits<typename traits<Derived>::Scalar>::Real run(const MatrixBase<Derived>& m)
+  {
+    return m.norm();
+  }
+};
+
+template<typename Derived>
+struct lpNorm_selector<Derived, Infinity>
+{
+  static inline typename NumTraits<typename traits<Derived>::Scalar>::Real run(const MatrixBase<Derived>& m)
+  {
+    return m.cwiseAbs().maxCoeff();
+  }
+};
+
+} // end namespace internal
+
+/** \returns the \f$ \ell^p \f$ norm of *this, that is, returns the p-th root of the sum of the p-th powers of the absolute values
+  *          of the coefficients of *this. If \a p is the special value \a Eigen::Infinity, this function returns the \f$ \ell^\infty \f$
+  *          norm, that is the maximum of the absolute values of the coefficients of *this.
+  *
+  * \sa norm()
+  */
+template<typename Derived>
+template<int p>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+MatrixBase<Derived>::lpNorm() const
+{
+  return internal::lpNorm_selector<Derived, p>::run(*this);
+}
+
+//---------- implementation of isOrthogonal / isUnitary ----------
+
+/** \returns true if *this is approximately orthogonal to \a other,
+  *          within the precision given by \a prec.
+  *
+  * Example: \include MatrixBase_isOrthogonal.cpp
+  * Output: \verbinclude MatrixBase_isOrthogonal.out
+  */
+template<typename Derived>
+template<typename OtherDerived>
+bool MatrixBase<Derived>::isOrthogonal
+(const MatrixBase<OtherDerived>& other, const RealScalar& prec) const
+{
+  typename internal::nested<Derived,2>::type nested(derived());
+  typename internal::nested<OtherDerived,2>::type otherNested(other.derived());
+  return numext::abs2(nested.dot(otherNested)) <= prec * prec * nested.squaredNorm() * otherNested.squaredNorm();
+}
+
+/** \returns true if *this is approximately an unitary matrix,
+  *          within the precision given by \a prec. In the case where the \a Scalar
+  *          type is real numbers, a unitary matrix is an orthogonal matrix, whence the name.
+  *
+  * \note This can be used to check whether a family of vectors forms an orthonormal basis.
+  *       Indeed, \c m.isUnitary() returns true if and only if the columns (equivalently, the rows) of m form an
+  *       orthonormal basis.
+  *
+  * Example: \include MatrixBase_isUnitary.cpp
+  * Output: \verbinclude MatrixBase_isUnitary.out
+  */
+template<typename Derived>
+bool MatrixBase<Derived>::isUnitary(const RealScalar& prec) const
+{
+  typename Derived::Nested nested(derived());
+  for(Index i = 0; i < cols(); ++i)
+  {
+    if(!internal::isApprox(nested.col(i).squaredNorm(), static_cast<RealScalar>(1), prec))
+      return false;
+    for(Index j = 0; j < i; ++j)
+      if(!internal::isMuchSmallerThan(nested.col(i).dot(nested.col(j)), static_cast<Scalar>(1), prec))
+        return false;
+  }
+  return true;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_DOT_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/EigenBase.h b/vendor/eigen-3.2.8/Eigen/src/Core/EigenBase.h
new file mode 100644
index 0000000..fadb458
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/EigenBase.h
@@ -0,0 +1,131 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_EIGENBASE_H
+#define EIGEN_EIGENBASE_H
+
+namespace Eigen {
+
+/** Common base class for all classes T such that MatrixBase has an operator=(T) and a constructor MatrixBase(T).
+  *
+  * In other words, an EigenBase object is an object that can be copied into a MatrixBase.
+  *
+  * Besides MatrixBase-derived classes, this also includes special matrix classes such as diagonal matrices, etc.
+  *
+  * Notice that this class is trivial, it is only used to disambiguate overloaded functions.
+  *
+  * \sa \ref TopicClassHierarchy
+  */
+template<typename Derived> struct EigenBase
+{
+//   typedef typename internal::plain_matrix_type<Derived>::type PlainObject;
+
+  typedef typename internal::traits<Derived>::StorageKind StorageKind;
+  typedef typename internal::traits<Derived>::Index Index;
+
+  /** \returns a reference to the derived object */
+  Derived& derived() { return *static_cast<Derived*>(this); }
+  /** \returns a const reference to the derived object */
+  const Derived& derived() const { return *static_cast<const Derived*>(this); }
+
+  inline Derived& const_cast_derived() const
+  { return *static_cast<Derived*>(const_cast<EigenBase*>(this)); }
+  inline const Derived& const_derived() const
+  { return *static_cast<const Derived*>(this); }
+
+  /** \returns the number of rows. \sa cols(), RowsAtCompileTime */
+  inline Index rows() const { return derived().rows(); }
+  /** \returns the number of columns. \sa rows(), ColsAtCompileTime*/
+  inline Index cols() const { return derived().cols(); }
+  /** \returns the number of coefficients, which is rows()*cols().
+    * \sa rows(), cols(), SizeAtCompileTime. */
+  inline Index size() const { return rows() * cols(); }
+
+  /** \internal Don't use it, but do the equivalent: \code dst = *this; \endcode */
+  template<typename Dest> inline void evalTo(Dest& dst) const
+  { derived().evalTo(dst); }
+
+  /** \internal Don't use it, but do the equivalent: \code dst += *this; \endcode */
+  template<typename Dest> inline void addTo(Dest& dst) const
+  {
+    // This is the default implementation,
+    // derived class can reimplement it in a more optimized way.
+    typename Dest::PlainObject res(rows(),cols());
+    evalTo(res);
+    dst += res;
+  }
+
+  /** \internal Don't use it, but do the equivalent: \code dst -= *this; \endcode */
+  template<typename Dest> inline void subTo(Dest& dst) const
+  {
+    // This is the default implementation,
+    // derived class can reimplement it in a more optimized way.
+    typename Dest::PlainObject res(rows(),cols());
+    evalTo(res);
+    dst -= res;
+  }
+
+  /** \internal Don't use it, but do the equivalent: \code dst.applyOnTheRight(*this); \endcode */
+  template<typename Dest> inline void applyThisOnTheRight(Dest& dst) const
+  {
+    // This is the default implementation,
+    // derived class can reimplement it in a more optimized way.
+    dst = dst * this->derived();
+  }
+
+  /** \internal Don't use it, but do the equivalent: \code dst.applyOnTheLeft(*this); \endcode */
+  template<typename Dest> inline void applyThisOnTheLeft(Dest& dst) const
+  {
+    // This is the default implementation,
+    // derived class can reimplement it in a more optimized way.
+    dst = this->derived() * dst;
+  }
+
+};
+
+/***************************************************************************
+* Implementation of matrix base methods
+***************************************************************************/
+
+/** \brief Copies the generic expression \a other into *this.
+  *
+  * \details The expression must provide a (templated) evalTo(Derived& dst) const
+  * function which does the actual job. In practice, this allows any user to write
+  * its own special matrix without having to modify MatrixBase
+  *
+  * \returns a reference to *this.
+  */
+template<typename Derived>
+template<typename OtherDerived>
+Derived& DenseBase<Derived>::operator=(const EigenBase<OtherDerived> &other)
+{
+  other.derived().evalTo(derived());
+  return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+Derived& DenseBase<Derived>::operator+=(const EigenBase<OtherDerived> &other)
+{
+  other.derived().addTo(derived());
+  return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+Derived& DenseBase<Derived>::operator-=(const EigenBase<OtherDerived> &other)
+{
+  other.derived().subTo(derived());
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_EIGENBASE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Flagged.h b/vendor/eigen-3.2.8/Eigen/src/Core/Flagged.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/Flagged.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/Flagged.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/ForceAlignedAccess.h b/vendor/eigen-3.2.8/Eigen/src/Core/ForceAlignedAccess.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/ForceAlignedAccess.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/ForceAlignedAccess.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/Functors.h b/vendor/eigen-3.2.8/Eigen/src/Core/Functors.h
new file mode 100644
index 0000000..5f14c65
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/Functors.h
@@ -0,0 +1,1026 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_FUNCTORS_H
+#define EIGEN_FUNCTORS_H
+
+namespace Eigen {
+
+namespace internal {
+
+// associative functors:
+
+/** \internal
+  * \brief Template functor to compute the sum of two scalars
+  *
+  * \sa class CwiseBinaryOp, MatrixBase::operator+, class VectorwiseOp, MatrixBase::sum()
+  */
+template<typename Scalar> struct scalar_sum_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_sum_op)
+  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a, const Scalar& b) const { return a + b; }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+  { return internal::padd(a,b); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Scalar predux(const Packet& a) const
+  { return internal::predux(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_sum_op<Scalar> > {
+  enum {
+    Cost = NumTraits<Scalar>::AddCost,
+    PacketAccess = packet_traits<Scalar>::HasAdd
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the product of two scalars
+  *
+  * \sa class CwiseBinaryOp, Cwise::operator*(), class VectorwiseOp, MatrixBase::redux()
+  */
+template<typename LhsScalar,typename RhsScalar> struct scalar_product_op {
+  enum {
+    // TODO vectorize mixed product
+    Vectorizable = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasMul && packet_traits<RhsScalar>::HasMul
+  };
+  typedef typename scalar_product_traits<LhsScalar,RhsScalar>::ReturnType result_type;
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_product_op)
+  EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const { return a * b; }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+  { return internal::pmul(a,b); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const result_type predux(const Packet& a) const
+  { return internal::predux_mul(a); }
+};
+template<typename LhsScalar,typename RhsScalar>
+struct functor_traits<scalar_product_op<LhsScalar,RhsScalar> > {
+  enum {
+    Cost = (NumTraits<LhsScalar>::MulCost + NumTraits<RhsScalar>::MulCost)/2, // rough estimate!
+    PacketAccess = scalar_product_op<LhsScalar,RhsScalar>::Vectorizable
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the conjugate product of two scalars
+  *
+  * This is a short cut for conj(x) * y which is needed for optimization purpose; in Eigen2 support mode, this becomes x * conj(y)
+  */
+template<typename LhsScalar,typename RhsScalar> struct scalar_conj_product_op {
+
+  enum {
+    Conj = NumTraits<LhsScalar>::IsComplex
+  };
+  
+  typedef typename scalar_product_traits<LhsScalar,RhsScalar>::ReturnType result_type;
+  
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_conj_product_op)
+  EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const
+  { return conj_helper<LhsScalar,RhsScalar,Conj,false>().pmul(a,b); }
+  
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+  { return conj_helper<Packet,Packet,Conj,false>().pmul(a,b); }
+};
+template<typename LhsScalar,typename RhsScalar>
+struct functor_traits<scalar_conj_product_op<LhsScalar,RhsScalar> > {
+  enum {
+    Cost = NumTraits<LhsScalar>::MulCost,
+    PacketAccess = internal::is_same<LhsScalar, RhsScalar>::value && packet_traits<LhsScalar>::HasMul
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the min of two scalars
+  *
+  * \sa class CwiseBinaryOp, MatrixBase::cwiseMin, class VectorwiseOp, MatrixBase::minCoeff()
+  */
+template<typename Scalar> struct scalar_min_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_min_op)
+  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a, const Scalar& b) const { using std::min; return (min)(a, b); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+  { return internal::pmin(a,b); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Scalar predux(const Packet& a) const
+  { return internal::predux_min(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_min_op<Scalar> > {
+  enum {
+    Cost = NumTraits<Scalar>::AddCost,
+    PacketAccess = packet_traits<Scalar>::HasMin
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the max of two scalars
+  *
+  * \sa class CwiseBinaryOp, MatrixBase::cwiseMax, class VectorwiseOp, MatrixBase::maxCoeff()
+  */
+template<typename Scalar> struct scalar_max_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_max_op)
+  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a, const Scalar& b) const { using std::max; return (max)(a, b); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+  { return internal::pmax(a,b); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Scalar predux(const Packet& a) const
+  { return internal::predux_max(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_max_op<Scalar> > {
+  enum {
+    Cost = NumTraits<Scalar>::AddCost,
+    PacketAccess = packet_traits<Scalar>::HasMax
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the hypot of two scalars
+  *
+  * \sa MatrixBase::stableNorm(), class Redux
+  */
+template<typename Scalar> struct scalar_hypot_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_hypot_op)
+//   typedef typename NumTraits<Scalar>::Real result_type;
+  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& _x, const Scalar& _y) const
+  {
+    using std::max;
+    using std::min;
+    using std::sqrt;
+    Scalar p = (max)(_x, _y);
+    Scalar q = (min)(_x, _y);
+    Scalar qp = q/p;
+    return p * sqrt(Scalar(1) + qp*qp);
+  }
+};
+template<typename Scalar>
+struct functor_traits<scalar_hypot_op<Scalar> > {
+  enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess=0 };
+};
+
+/** \internal
+  * \brief Template functor to compute the pow of two scalars
+  */
+template<typename Scalar, typename OtherScalar> struct scalar_binary_pow_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_binary_pow_op)
+  inline Scalar operator() (const Scalar& a, const OtherScalar& b) const { return numext::pow(a, b); }
+};
+template<typename Scalar, typename OtherScalar>
+struct functor_traits<scalar_binary_pow_op<Scalar,OtherScalar> > {
+  enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = false };
+};
+
+// other binary functors:
+
+/** \internal
+  * \brief Template functor to compute the difference of two scalars
+  *
+  * \sa class CwiseBinaryOp, MatrixBase::operator-
+  */
+template<typename Scalar> struct scalar_difference_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_difference_op)
+  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a, const Scalar& b) const { return a - b; }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+  { return internal::psub(a,b); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_difference_op<Scalar> > {
+  enum {
+    Cost = NumTraits<Scalar>::AddCost,
+    PacketAccess = packet_traits<Scalar>::HasSub
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the quotient of two scalars
+  *
+  * \sa class CwiseBinaryOp, Cwise::operator/()
+  */
+template<typename LhsScalar,typename RhsScalar> struct scalar_quotient_op {
+  enum {
+    // TODO vectorize mixed product
+    Vectorizable = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasDiv && packet_traits<RhsScalar>::HasDiv
+  };
+  typedef typename scalar_product_traits<LhsScalar,RhsScalar>::ReturnType result_type;
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_quotient_op)
+  EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const { return a / b; }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+  { return internal::pdiv(a,b); }
+};
+template<typename LhsScalar,typename RhsScalar>
+struct functor_traits<scalar_quotient_op<LhsScalar,RhsScalar> > {
+  enum {
+    Cost = (NumTraits<LhsScalar>::MulCost + NumTraits<RhsScalar>::MulCost), // rough estimate!
+    PacketAccess = scalar_quotient_op<LhsScalar,RhsScalar>::Vectorizable
+  };
+};
+
+
+
+/** \internal
+  * \brief Template functor to compute the and of two booleans
+  *
+  * \sa class CwiseBinaryOp, ArrayBase::operator&&
+  */
+struct scalar_boolean_and_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_boolean_and_op)
+  EIGEN_STRONG_INLINE bool operator() (const bool& a, const bool& b) const { return a && b; }
+};
+template<> struct functor_traits<scalar_boolean_and_op> {
+  enum {
+    Cost = NumTraits<bool>::AddCost,
+    PacketAccess = false
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the or of two booleans
+  *
+  * \sa class CwiseBinaryOp, ArrayBase::operator||
+  */
+struct scalar_boolean_or_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_boolean_or_op)
+  EIGEN_STRONG_INLINE bool operator() (const bool& a, const bool& b) const { return a || b; }
+};
+template<> struct functor_traits<scalar_boolean_or_op> {
+  enum {
+    Cost = NumTraits<bool>::AddCost,
+    PacketAccess = false
+  };
+};
+
+/** \internal
+  * \brief Template functors for comparison of two scalars
+  * \todo Implement packet-comparisons
+  */
+template<typename Scalar, ComparisonName cmp> struct scalar_cmp_op;
+
+template<typename Scalar, ComparisonName cmp>
+struct functor_traits<scalar_cmp_op<Scalar, cmp> > {
+  enum {
+    Cost = NumTraits<Scalar>::AddCost,
+    PacketAccess = false
+  };
+};
+
+template<ComparisonName Cmp, typename Scalar>
+struct result_of<scalar_cmp_op<Scalar, Cmp>(Scalar,Scalar)> {
+  typedef bool type;
+};
+
+
+template<typename Scalar> struct scalar_cmp_op<Scalar, cmp_EQ> {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+  EIGEN_STRONG_INLINE bool operator()(const Scalar& a, const Scalar& b) const {return a==b;}
+};
+template<typename Scalar> struct scalar_cmp_op<Scalar, cmp_LT> {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+  EIGEN_STRONG_INLINE bool operator()(const Scalar& a, const Scalar& b) const {return a<b;}
+};
+template<typename Scalar> struct scalar_cmp_op<Scalar, cmp_LE> {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+  EIGEN_STRONG_INLINE bool operator()(const Scalar& a, const Scalar& b) const {return a<=b;}
+};
+template<typename Scalar> struct scalar_cmp_op<Scalar, cmp_UNORD> {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+  EIGEN_STRONG_INLINE bool operator()(const Scalar& a, const Scalar& b) const {return !(a<=b || b<=a);}
+};
+template<typename Scalar> struct scalar_cmp_op<Scalar, cmp_NEQ> {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+  EIGEN_STRONG_INLINE bool operator()(const Scalar& a, const Scalar& b) const {return a!=b;}
+};
+
+// unary functors:
+
+/** \internal
+  * \brief Template functor to compute the opposite of a scalar
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::operator-
+  */
+template<typename Scalar> struct scalar_opposite_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_opposite_op)
+  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { return -a; }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
+  { return internal::pnegate(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_opposite_op<Scalar> >
+{ enum {
+    Cost = NumTraits<Scalar>::AddCost,
+    PacketAccess = packet_traits<Scalar>::HasNegate };
+};
+
+/** \internal
+  * \brief Template functor to compute the absolute value of a scalar
+  *
+  * \sa class CwiseUnaryOp, Cwise::abs
+  */
+template<typename Scalar> struct scalar_abs_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_abs_op)
+  typedef typename NumTraits<Scalar>::Real result_type;
+  EIGEN_STRONG_INLINE const result_type operator() (const Scalar& a) const { using std::abs; return abs(a); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
+  { return internal::pabs(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_abs_op<Scalar> >
+{
+  enum {
+    Cost = NumTraits<Scalar>::AddCost,
+    PacketAccess = packet_traits<Scalar>::HasAbs
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the squared absolute value of a scalar
+  *
+  * \sa class CwiseUnaryOp, Cwise::abs2
+  */
+template<typename Scalar> struct scalar_abs2_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_abs2_op)
+  typedef typename NumTraits<Scalar>::Real result_type;
+  EIGEN_STRONG_INLINE const result_type operator() (const Scalar& a) const { return numext::abs2(a); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
+  { return internal::pmul(a,a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_abs2_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasAbs2 }; };
+
+/** \internal
+  * \brief Template functor to compute the conjugate of a complex value
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::conjugate()
+  */
+template<typename Scalar> struct scalar_conjugate_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_conjugate_op)
+  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { using numext::conj; return conj(a); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const { return internal::pconj(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_conjugate_op<Scalar> >
+{
+  enum {
+    Cost = NumTraits<Scalar>::IsComplex ? NumTraits<Scalar>::AddCost : 0,
+    PacketAccess = packet_traits<Scalar>::HasConj
+  };
+};
+
+/** \internal
+  * \brief Template functor to cast a scalar to another type
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::cast()
+  */
+template<typename Scalar, typename NewType>
+struct scalar_cast_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cast_op)
+  typedef NewType result_type;
+  EIGEN_STRONG_INLINE const NewType operator() (const Scalar& a) const { return cast<Scalar, NewType>(a); }
+};
+template<typename Scalar, typename NewType>
+struct functor_traits<scalar_cast_op<Scalar,NewType> >
+{ enum { Cost = is_same<Scalar, NewType>::value ? 0 : NumTraits<NewType>::AddCost, PacketAccess = false }; };
+
+/** \internal
+  * \brief Template functor to extract the real part of a complex
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::real()
+  */
+template<typename Scalar>
+struct scalar_real_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_real_op)
+  typedef typename NumTraits<Scalar>::Real result_type;
+  EIGEN_STRONG_INLINE result_type operator() (const Scalar& a) const { return numext::real(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_real_op<Scalar> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+/** \internal
+  * \brief Template functor to extract the imaginary part of a complex
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::imag()
+  */
+template<typename Scalar>
+struct scalar_imag_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_imag_op)
+  typedef typename NumTraits<Scalar>::Real result_type;
+  EIGEN_STRONG_INLINE result_type operator() (const Scalar& a) const { return numext::imag(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_imag_op<Scalar> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+/** \internal
+  * \brief Template functor to extract the real part of a complex as a reference
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::real()
+  */
+template<typename Scalar>
+struct scalar_real_ref_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_real_ref_op)
+  typedef typename NumTraits<Scalar>::Real result_type;
+  EIGEN_STRONG_INLINE result_type& operator() (const Scalar& a) const { return numext::real_ref(*const_cast<Scalar*>(&a)); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_real_ref_op<Scalar> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+/** \internal
+  * \brief Template functor to extract the imaginary part of a complex as a reference
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::imag()
+  */
+template<typename Scalar>
+struct scalar_imag_ref_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_imag_ref_op)
+  typedef typename NumTraits<Scalar>::Real result_type;
+  EIGEN_STRONG_INLINE result_type& operator() (const Scalar& a) const { return numext::imag_ref(*const_cast<Scalar*>(&a)); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_imag_ref_op<Scalar> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+/** \internal
+  *
+  * \brief Template functor to compute the exponential of a scalar
+  *
+  * \sa class CwiseUnaryOp, Cwise::exp()
+  */
+template<typename Scalar> struct scalar_exp_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_exp_op)
+  inline const Scalar operator() (const Scalar& a) const { using std::exp; return exp(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::pexp(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_exp_op<Scalar> >
+{ enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasExp }; };
+
+/** \internal
+  *
+  * \brief Template functor to compute the logarithm of a scalar
+  *
+  * \sa class CwiseUnaryOp, Cwise::log()
+  */
+template<typename Scalar> struct scalar_log_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_log_op)
+  inline const Scalar operator() (const Scalar& a) const { using std::log; return log(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::plog(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_log_op<Scalar> >
+{ enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasLog }; };
+
+/** \internal
+  * \brief Template functor to multiply a scalar by a fixed other one
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::operator*, MatrixBase::operator/
+  */
+/* NOTE why doing the pset1() in packetOp *is* an optimization ?
+ * indeed it seems better to declare m_other as a Packet and do the pset1() once
+ * in the constructor. However, in practice:
+ *  - GCC does not like m_other as a Packet and generate a load every time it needs it
+ *  - on the other hand GCC is able to moves the pset1() outside the loop :)
+ *  - simpler code ;)
+ * (ICC and gcc 4.4 seems to perform well in both cases, the issue is visible with y = a*x + b*y)
+ */
+template<typename Scalar>
+struct scalar_multiple_op {
+  typedef typename packet_traits<Scalar>::type Packet;
+  // FIXME default copy constructors seems bugged with std::complex<>
+  EIGEN_STRONG_INLINE scalar_multiple_op(const scalar_multiple_op& other) : m_other(other.m_other) { }
+  EIGEN_STRONG_INLINE scalar_multiple_op(const Scalar& other) : m_other(other) { }
+  EIGEN_STRONG_INLINE Scalar operator() (const Scalar& a) const { return a * m_other; }
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
+  { return internal::pmul(a, pset1<Packet>(m_other)); }
+  typename add_const_on_value_type<typename NumTraits<Scalar>::Nested>::type m_other;
+};
+template<typename Scalar>
+struct functor_traits<scalar_multiple_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasMul }; };
+
+template<typename Scalar1, typename Scalar2>
+struct scalar_multiple2_op {
+  typedef typename scalar_product_traits<Scalar1,Scalar2>::ReturnType result_type;
+  EIGEN_STRONG_INLINE scalar_multiple2_op(const scalar_multiple2_op& other) : m_other(other.m_other) { }
+  EIGEN_STRONG_INLINE scalar_multiple2_op(const Scalar2& other) : m_other(other) { }
+  EIGEN_STRONG_INLINE result_type operator() (const Scalar1& a) const { return a * m_other; }
+  typename add_const_on_value_type<typename NumTraits<Scalar2>::Nested>::type m_other;
+};
+template<typename Scalar1,typename Scalar2>
+struct functor_traits<scalar_multiple2_op<Scalar1,Scalar2> >
+{ enum { Cost = NumTraits<Scalar1>::MulCost, PacketAccess = false }; };
+
+/** \internal
+  * \brief Template functor to divide a scalar by a fixed other one
+  *
+  * This functor is used to implement the quotient of a matrix by
+  * a scalar where the scalar type is not necessarily a floating point type.
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::operator/
+  */
+template<typename Scalar>
+struct scalar_quotient1_op {
+  typedef typename packet_traits<Scalar>::type Packet;
+  // FIXME default copy constructors seems bugged with std::complex<>
+  EIGEN_STRONG_INLINE scalar_quotient1_op(const scalar_quotient1_op& other) : m_other(other.m_other) { }
+  EIGEN_STRONG_INLINE scalar_quotient1_op(const Scalar& other) : m_other(other) {}
+  EIGEN_STRONG_INLINE Scalar operator() (const Scalar& a) const { return a / m_other; }
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
+  { return internal::pdiv(a, pset1<Packet>(m_other)); }
+  typename add_const_on_value_type<typename NumTraits<Scalar>::Nested>::type m_other;
+};
+template<typename Scalar>
+struct functor_traits<scalar_quotient1_op<Scalar> >
+{ enum { Cost = 2 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasDiv }; };
+
+// nullary functors
+
+template<typename Scalar>
+struct scalar_constant_op {
+  typedef typename packet_traits<Scalar>::type Packet;
+  EIGEN_STRONG_INLINE scalar_constant_op(const scalar_constant_op& other) : m_other(other.m_other) { }
+  EIGEN_STRONG_INLINE scalar_constant_op(const Scalar& other) : m_other(other) { }
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Scalar operator() (Index, Index = 0) const { return m_other; }
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Packet packetOp(Index, Index = 0) const { return internal::pset1<Packet>(m_other); }
+  const Scalar m_other;
+};
+template<typename Scalar>
+struct functor_traits<scalar_constant_op<Scalar> >
+// FIXME replace this packet test by a safe one
+{ enum { Cost = 1, PacketAccess = packet_traits<Scalar>::Vectorizable, IsRepeatable = true }; };
+
+template<typename Scalar> struct scalar_identity_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_identity_op)
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Scalar operator() (Index row, Index col) const { return row==col ? Scalar(1) : Scalar(0); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_identity_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::AddCost, PacketAccess = false, IsRepeatable = true }; };
+
+template <typename Scalar, bool RandomAccess> struct linspaced_op_impl;
+
+// linear access for packet ops:
+// 1) initialization
+//   base = [low, ..., low] + ([step, ..., step] * [-size, ..., 0])
+// 2) each step (where size is 1 for coeff access or PacketSize for packet access)
+//   base += [size*step, ..., size*step]
+//
+// TODO: Perhaps it's better to initialize lazily (so not in the constructor but in packetOp)
+//       in order to avoid the padd() in operator() ?
+template <typename Scalar>
+struct linspaced_op_impl<Scalar,false>
+{
+  typedef typename packet_traits<Scalar>::type Packet;
+
+  linspaced_op_impl(const Scalar& low, const Scalar& step) :
+  m_low(low), m_step(step),
+  m_packetStep(pset1<Packet>(packet_traits<Scalar>::size*step)),
+  m_base(padd(pset1<Packet>(low), pmul(pset1<Packet>(step),plset<Scalar>(-packet_traits<Scalar>::size)))) {}
+
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Scalar operator() (Index i) const 
+  { 
+    m_base = padd(m_base, pset1<Packet>(m_step));
+    return m_low+Scalar(i)*m_step; 
+  }
+
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Packet packetOp(Index) const { return m_base = padd(m_base,m_packetStep); }
+
+  const Scalar m_low;
+  const Scalar m_step;
+  const Packet m_packetStep;
+  mutable Packet m_base;
+};
+
+// random access for packet ops:
+// 1) each step
+//   [low, ..., low] + ( [step, ..., step] * ( [i, ..., i] + [0, ..., size] ) )
+template <typename Scalar>
+struct linspaced_op_impl<Scalar,true>
+{
+  typedef typename packet_traits<Scalar>::type Packet;
+
+  linspaced_op_impl(const Scalar& low, const Scalar& step) :
+  m_low(low), m_step(step),
+  m_lowPacket(pset1<Packet>(m_low)), m_stepPacket(pset1<Packet>(m_step)), m_interPacket(plset<Scalar>(0)) {}
+
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Scalar operator() (Index i) const { return m_low+i*m_step; }
+
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Packet packetOp(Index i) const
+  { return internal::padd(m_lowPacket, pmul(m_stepPacket, padd(pset1<Packet>(Scalar(i)),m_interPacket))); }
+
+  const Scalar m_low;
+  const Scalar m_step;
+  const Packet m_lowPacket;
+  const Packet m_stepPacket;
+  const Packet m_interPacket;
+};
+
+// ----- Linspace functor ----------------------------------------------------------------
+
+// Forward declaration (we default to random access which does not really give
+// us a speed gain when using packet access but it allows to use the functor in
+// nested expressions).
+template <typename Scalar, bool RandomAccess = true> struct linspaced_op;
+template <typename Scalar, bool RandomAccess> struct functor_traits< linspaced_op<Scalar,RandomAccess> >
+{ enum { Cost = 1, PacketAccess = packet_traits<Scalar>::HasSetLinear, IsRepeatable = true }; };
+template <typename Scalar, bool RandomAccess> struct linspaced_op
+{
+  typedef typename packet_traits<Scalar>::type Packet;
+  linspaced_op(const Scalar& low, const Scalar& high, DenseIndex num_steps) : impl((num_steps==1 ? high : low), (num_steps==1 ? Scalar() : (high-low)/Scalar(num_steps-1))) {}
+
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Scalar operator() (Index i) const { return impl(i); }
+
+  // We need this function when assigning e.g. a RowVectorXd to a MatrixXd since
+  // there row==0 and col is used for the actual iteration.
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Scalar operator() (Index row, Index col) const 
+  {
+    eigen_assert(col==0 || row==0);
+    return impl(col + row);
+  }
+
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Packet packetOp(Index i) const { return impl.packetOp(i); }
+
+  // We need this function when assigning e.g. a RowVectorXd to a MatrixXd since
+  // there row==0 and col is used for the actual iteration.
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Packet packetOp(Index row, Index col) const
+  {
+    eigen_assert(col==0 || row==0);
+    return impl.packetOp(col + row);
+  }
+
+  // This proxy object handles the actual required temporaries, the different
+  // implementations (random vs. sequential access) as well as the
+  // correct piping to size 2/4 packet operations.
+  const linspaced_op_impl<Scalar,RandomAccess> impl;
+};
+
+// all functors allow linear access, except scalar_identity_op. So we fix here a quick meta
+// to indicate whether a functor allows linear access, just always answering 'yes' except for
+// scalar_identity_op.
+// FIXME move this to functor_traits adding a functor_default
+template<typename Functor> struct functor_has_linear_access { enum { ret = 1 }; };
+template<typename Scalar> struct functor_has_linear_access<scalar_identity_op<Scalar> > { enum { ret = 0 }; };
+
+// In Eigen, any binary op (Product, CwiseBinaryOp) require the Lhs and Rhs to have the same scalar type, except for multiplication
+// where the mixing of different types is handled by scalar_product_traits
+// In particular, real * complex<real> is allowed.
+// FIXME move this to functor_traits adding a functor_default
+template<typename Functor> struct functor_is_product_like { enum { ret = 0 }; };
+template<typename LhsScalar,typename RhsScalar> struct functor_is_product_like<scalar_product_op<LhsScalar,RhsScalar> > { enum { ret = 1 }; };
+template<typename LhsScalar,typename RhsScalar> struct functor_is_product_like<scalar_conj_product_op<LhsScalar,RhsScalar> > { enum { ret = 1 }; };
+template<typename LhsScalar,typename RhsScalar> struct functor_is_product_like<scalar_quotient_op<LhsScalar,RhsScalar> > { enum { ret = 1 }; };
+
+
+/** \internal
+  * \brief Template functor to add a scalar to a fixed other one
+  * \sa class CwiseUnaryOp, Array::operator+
+  */
+/* If you wonder why doing the pset1() in packetOp() is an optimization check scalar_multiple_op */
+template<typename Scalar>
+struct scalar_add_op {
+  typedef typename packet_traits<Scalar>::type Packet;
+  // FIXME default copy constructors seems bugged with std::complex<>
+  inline scalar_add_op(const scalar_add_op& other) : m_other(other.m_other) { }
+  inline scalar_add_op(const Scalar& other) : m_other(other) { }
+  inline Scalar operator() (const Scalar& a) const { return a + m_other; }
+  inline const Packet packetOp(const Packet& a) const
+  { return internal::padd(a, pset1<Packet>(m_other)); }
+  const Scalar m_other;
+};
+template<typename Scalar>
+struct functor_traits<scalar_add_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::AddCost, PacketAccess = packet_traits<Scalar>::HasAdd }; };
+
+/** \internal
+  * \brief Template functor to compute the square root of a scalar
+  * \sa class CwiseUnaryOp, Cwise::sqrt()
+  */
+template<typename Scalar> struct scalar_sqrt_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_sqrt_op)
+  inline const Scalar operator() (const Scalar& a) const { using std::sqrt; return sqrt(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::psqrt(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_sqrt_op<Scalar> >
+{ enum {
+    Cost = 5 * NumTraits<Scalar>::MulCost,
+    PacketAccess = packet_traits<Scalar>::HasSqrt
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the cosine of a scalar
+  * \sa class CwiseUnaryOp, ArrayBase::cos()
+  */
+template<typename Scalar> struct scalar_cos_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cos_op)
+  inline Scalar operator() (const Scalar& a) const { using std::cos; return cos(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::pcos(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_cos_op<Scalar> >
+{
+  enum {
+    Cost = 5 * NumTraits<Scalar>::MulCost,
+    PacketAccess = packet_traits<Scalar>::HasCos
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the sine of a scalar
+  * \sa class CwiseUnaryOp, ArrayBase::sin()
+  */
+template<typename Scalar> struct scalar_sin_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_sin_op)
+  inline const Scalar operator() (const Scalar& a) const { using std::sin; return sin(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::psin(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_sin_op<Scalar> >
+{
+  enum {
+    Cost = 5 * NumTraits<Scalar>::MulCost,
+    PacketAccess = packet_traits<Scalar>::HasSin
+  };
+};
+
+
+/** \internal
+  * \brief Template functor to compute the tan of a scalar
+  * \sa class CwiseUnaryOp, ArrayBase::tan()
+  */
+template<typename Scalar> struct scalar_tan_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_tan_op)
+  inline const Scalar operator() (const Scalar& a) const { using std::tan; return tan(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::ptan(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_tan_op<Scalar> >
+{
+  enum {
+    Cost = 5 * NumTraits<Scalar>::MulCost,
+    PacketAccess = packet_traits<Scalar>::HasTan
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the arc cosine of a scalar
+  * \sa class CwiseUnaryOp, ArrayBase::acos()
+  */
+template<typename Scalar> struct scalar_acos_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_acos_op)
+  inline const Scalar operator() (const Scalar& a) const { using std::acos; return acos(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::pacos(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_acos_op<Scalar> >
+{
+  enum {
+    Cost = 5 * NumTraits<Scalar>::MulCost,
+    PacketAccess = packet_traits<Scalar>::HasACos
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the arc sine of a scalar
+  * \sa class CwiseUnaryOp, ArrayBase::asin()
+  */
+template<typename Scalar> struct scalar_asin_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_asin_op)
+  inline const Scalar operator() (const Scalar& a) const { using std::asin; return asin(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::pasin(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_asin_op<Scalar> >
+{
+  enum {
+    Cost = 5 * NumTraits<Scalar>::MulCost,
+    PacketAccess = packet_traits<Scalar>::HasASin
+  };
+};
+
+/** \internal
+  * \brief Template functor to raise a scalar to a power
+  * \sa class CwiseUnaryOp, Cwise::pow
+  */
+template<typename Scalar>
+struct scalar_pow_op {
+  // FIXME default copy constructors seems bugged with std::complex<>
+  inline scalar_pow_op(const scalar_pow_op& other) : m_exponent(other.m_exponent) { }
+  inline scalar_pow_op(const Scalar& exponent) : m_exponent(exponent) {}
+  inline Scalar operator() (const Scalar& a) const { return numext::pow(a, m_exponent); }
+  const Scalar m_exponent;
+};
+template<typename Scalar>
+struct functor_traits<scalar_pow_op<Scalar> >
+{ enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = false }; };
+
+/** \internal
+  * \brief Template functor to compute the quotient between a scalar and array entries.
+  * \sa class CwiseUnaryOp, Cwise::inverse()
+  */
+template<typename Scalar>
+struct scalar_inverse_mult_op {
+  scalar_inverse_mult_op(const Scalar& other) : m_other(other) {}
+  inline Scalar operator() (const Scalar& a) const { return m_other / a; }
+  template<typename Packet>
+  inline const Packet packetOp(const Packet& a) const
+  { return internal::pdiv(pset1<Packet>(m_other),a); }
+  Scalar m_other;
+};
+
+/** \internal
+  * \brief Template functor to compute the inverse of a scalar
+  * \sa class CwiseUnaryOp, Cwise::inverse()
+  */
+template<typename Scalar>
+struct scalar_inverse_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_inverse_op)
+  inline Scalar operator() (const Scalar& a) const { return Scalar(1)/a; }
+  template<typename Packet>
+  inline const Packet packetOp(const Packet& a) const
+  { return internal::pdiv(pset1<Packet>(Scalar(1)),a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_inverse_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasDiv }; };
+
+/** \internal
+  * \brief Template functor to compute the square of a scalar
+  * \sa class CwiseUnaryOp, Cwise::square()
+  */
+template<typename Scalar>
+struct scalar_square_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_square_op)
+  inline Scalar operator() (const Scalar& a) const { return a*a; }
+  template<typename Packet>
+  inline const Packet packetOp(const Packet& a) const
+  { return internal::pmul(a,a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_square_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasMul }; };
+
+/** \internal
+  * \brief Template functor to compute the cube of a scalar
+  * \sa class CwiseUnaryOp, Cwise::cube()
+  */
+template<typename Scalar>
+struct scalar_cube_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cube_op)
+  inline Scalar operator() (const Scalar& a) const { return a*a*a; }
+  template<typename Packet>
+  inline const Packet packetOp(const Packet& a) const
+  { return internal::pmul(a,pmul(a,a)); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_cube_op<Scalar> >
+{ enum { Cost = 2*NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasMul }; };
+
+// default functor traits for STL functors:
+
+template<typename T>
+struct functor_traits<std::multiplies<T> >
+{ enum { Cost = NumTraits<T>::MulCost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::divides<T> >
+{ enum { Cost = NumTraits<T>::MulCost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::plus<T> >
+{ enum { Cost = NumTraits<T>::AddCost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::minus<T> >
+{ enum { Cost = NumTraits<T>::AddCost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::negate<T> >
+{ enum { Cost = NumTraits<T>::AddCost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::logical_or<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::logical_and<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::logical_not<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::greater<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::less<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::greater_equal<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::less_equal<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::equal_to<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::not_equal_to<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::binder2nd<T> >
+{ enum { Cost = functor_traits<T>::Cost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::binder1st<T> >
+{ enum { Cost = functor_traits<T>::Cost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::unary_negate<T> >
+{ enum { Cost = 1 + functor_traits<T>::Cost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::binary_negate<T> >
+{ enum { Cost = 1 + functor_traits<T>::Cost, PacketAccess = false }; };
+
+#ifdef EIGEN_STDEXT_SUPPORT
+
+template<typename T0,typename T1>
+struct functor_traits<std::project1st<T0,T1> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+template<typename T0,typename T1>
+struct functor_traits<std::project2nd<T0,T1> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+template<typename T0,typename T1>
+struct functor_traits<std::select2nd<std::pair<T0,T1> > >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+template<typename T0,typename T1>
+struct functor_traits<std::select1st<std::pair<T0,T1> > >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+template<typename T0,typename T1>
+struct functor_traits<std::unary_compose<T0,T1> >
+{ enum { Cost = functor_traits<T0>::Cost + functor_traits<T1>::Cost, PacketAccess = false }; };
+
+template<typename T0,typename T1,typename T2>
+struct functor_traits<std::binary_compose<T0,T1,T2> >
+{ enum { Cost = functor_traits<T0>::Cost + functor_traits<T1>::Cost + functor_traits<T2>::Cost, PacketAccess = false }; };
+
+#endif // EIGEN_STDEXT_SUPPORT
+
+// allow to add new functors and specializations of functor_traits from outside Eigen.
+// this macro is really needed because functor_traits must be specialized after it is declared but before it is used...
+#ifdef EIGEN_FUNCTORS_PLUGIN
+#include EIGEN_FUNCTORS_PLUGIN
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_FUNCTORS_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/Fuzzy.h b/vendor/eigen-3.2.8/Eigen/src/Core/Fuzzy.h
new file mode 100644
index 0000000..fe63bd2
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/Fuzzy.h
@@ -0,0 +1,150 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_FUZZY_H
+#define EIGEN_FUZZY_H
+
+namespace Eigen { 
+
+namespace internal
+{
+
+template<typename Derived, typename OtherDerived, bool is_integer = NumTraits<typename Derived::Scalar>::IsInteger>
+struct isApprox_selector
+{
+  static bool run(const Derived& x, const OtherDerived& y, const typename Derived::RealScalar& prec)
+  {
+    using std::min;
+    typename internal::nested<Derived,2>::type nested(x);
+    typename internal::nested<OtherDerived,2>::type otherNested(y);
+    return (nested - otherNested).cwiseAbs2().sum() <= prec * prec * (min)(nested.cwiseAbs2().sum(), otherNested.cwiseAbs2().sum());
+  }
+};
+
+template<typename Derived, typename OtherDerived>
+struct isApprox_selector<Derived, OtherDerived, true>
+{
+  static bool run(const Derived& x, const OtherDerived& y, const typename Derived::RealScalar&)
+  {
+    return x.matrix() == y.matrix();
+  }
+};
+
+template<typename Derived, typename OtherDerived, bool is_integer = NumTraits<typename Derived::Scalar>::IsInteger>
+struct isMuchSmallerThan_object_selector
+{
+  static bool run(const Derived& x, const OtherDerived& y, const typename Derived::RealScalar& prec)
+  {
+    return x.cwiseAbs2().sum() <= numext::abs2(prec) * y.cwiseAbs2().sum();
+  }
+};
+
+template<typename Derived, typename OtherDerived>
+struct isMuchSmallerThan_object_selector<Derived, OtherDerived, true>
+{
+  static bool run(const Derived& x, const OtherDerived&, const typename Derived::RealScalar&)
+  {
+    return x.matrix() == Derived::Zero(x.rows(), x.cols()).matrix();
+  }
+};
+
+template<typename Derived, bool is_integer = NumTraits<typename Derived::Scalar>::IsInteger>
+struct isMuchSmallerThan_scalar_selector
+{
+  static bool run(const Derived& x, const typename Derived::RealScalar& y, const typename Derived::RealScalar& prec)
+  {
+    return x.cwiseAbs2().sum() <= numext::abs2(prec * y);
+  }
+};
+
+template<typename Derived>
+struct isMuchSmallerThan_scalar_selector<Derived, true>
+{
+  static bool run(const Derived& x, const typename Derived::RealScalar&, const typename Derived::RealScalar&)
+  {
+    return x.matrix() == Derived::Zero(x.rows(), x.cols()).matrix();
+  }
+};
+
+} // end namespace internal
+
+
+/** \returns \c true if \c *this is approximately equal to \a other, within the precision
+  * determined by \a prec.
+  *
+  * \note The fuzzy compares are done multiplicatively. Two vectors \f$ v \f$ and \f$ w \f$
+  * are considered to be approximately equal within precision \f$ p \f$ if
+  * \f[ \Vert v - w \Vert \leqslant p\,\min(\Vert v\Vert, \Vert w\Vert). \f]
+  * For matrices, the comparison is done using the Hilbert-Schmidt norm (aka Frobenius norm
+  * L2 norm).
+  *
+  * \note Because of the multiplicativeness of this comparison, one can't use this function
+  * to check whether \c *this is approximately equal to the zero matrix or vector.
+  * Indeed, \c isApprox(zero) returns false unless \c *this itself is exactly the zero matrix
+  * or vector. If you want to test whether \c *this is zero, use internal::isMuchSmallerThan(const
+  * RealScalar&, RealScalar) instead.
+  *
+  * \sa internal::isMuchSmallerThan(const RealScalar&, RealScalar) const
+  */
+template<typename Derived>
+template<typename OtherDerived>
+bool DenseBase<Derived>::isApprox(
+  const DenseBase<OtherDerived>& other,
+  const RealScalar& prec
+) const
+{
+  return internal::isApprox_selector<Derived, OtherDerived>::run(derived(), other.derived(), prec);
+}
+
+/** \returns \c true if the norm of \c *this is much smaller than \a other,
+  * within the precision determined by \a prec.
+  *
+  * \note The fuzzy compares are done multiplicatively. A vector \f$ v \f$ is
+  * considered to be much smaller than \f$ x \f$ within precision \f$ p \f$ if
+  * \f[ \Vert v \Vert \leqslant p\,\vert x\vert. \f]
+  *
+  * For matrices, the comparison is done using the Hilbert-Schmidt norm. For this reason,
+  * the value of the reference scalar \a other should come from the Hilbert-Schmidt norm
+  * of a reference matrix of same dimensions.
+  *
+  * \sa isApprox(), isMuchSmallerThan(const DenseBase<OtherDerived>&, RealScalar) const
+  */
+template<typename Derived>
+bool DenseBase<Derived>::isMuchSmallerThan(
+  const typename NumTraits<Scalar>::Real& other,
+  const RealScalar& prec
+) const
+{
+  return internal::isMuchSmallerThan_scalar_selector<Derived>::run(derived(), other, prec);
+}
+
+/** \returns \c true if the norm of \c *this is much smaller than the norm of \a other,
+  * within the precision determined by \a prec.
+  *
+  * \note The fuzzy compares are done multiplicatively. A vector \f$ v \f$ is
+  * considered to be much smaller than a vector \f$ w \f$ within precision \f$ p \f$ if
+  * \f[ \Vert v \Vert \leqslant p\,\Vert w\Vert. \f]
+  * For matrices, the comparison is done using the Hilbert-Schmidt norm.
+  *
+  * \sa isApprox(), isMuchSmallerThan(const RealScalar&, RealScalar) const
+  */
+template<typename Derived>
+template<typename OtherDerived>
+bool DenseBase<Derived>::isMuchSmallerThan(
+  const DenseBase<OtherDerived>& other,
+  const RealScalar& prec
+) const
+{
+  return internal::isMuchSmallerThan_object_selector<Derived, OtherDerived>::run(derived(), other.derived(), prec);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_FUZZY_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/GeneralProduct.h b/vendor/eigen-3.2.8/Eigen/src/Core/GeneralProduct.h
new file mode 100644
index 0000000..29ac522
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/GeneralProduct.h
@@ -0,0 +1,638 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERAL_PRODUCT_H
+#define EIGEN_GENERAL_PRODUCT_H
+
+namespace Eigen { 
+
+/** \class GeneralProduct
+  * \ingroup Core_Module
+  *
+  * \brief Expression of the product of two general matrices or vectors
+  *
+  * \param LhsNested the type used to store the left-hand side
+  * \param RhsNested the type used to store the right-hand side
+  * \param ProductMode the type of the product
+  *
+  * This class represents an expression of the product of two general matrices.
+  * We call a general matrix, a dense matrix with full storage. For instance,
+  * This excludes triangular, selfadjoint, and sparse matrices.
+  * It is the return type of the operator* between general matrices. Its template
+  * arguments are determined automatically by ProductReturnType. Therefore,
+  * GeneralProduct should never be used direclty. To determine the result type of a
+  * function which involves a matrix product, use ProductReturnType::Type.
+  *
+  * \sa ProductReturnType, MatrixBase::operator*(const MatrixBase<OtherDerived>&)
+  */
+template<typename Lhs, typename Rhs, int ProductType = internal::product_type<Lhs,Rhs>::value>
+class GeneralProduct;
+
+enum {
+  Large = 2,
+  Small = 3
+};
+
+namespace internal {
+
+template<int Rows, int Cols, int Depth> struct product_type_selector;
+
+template<int Size, int MaxSize> struct product_size_category
+{
+  enum { is_large = MaxSize == Dynamic ||
+                    Size >= EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD,
+         value = is_large  ? Large
+               : Size == 1 ? 1
+                           : Small
+  };
+};
+
+template<typename Lhs, typename Rhs> struct product_type
+{
+  typedef typename remove_all<Lhs>::type _Lhs;
+  typedef typename remove_all<Rhs>::type _Rhs;
+  enum {
+    MaxRows  = _Lhs::MaxRowsAtCompileTime,
+    Rows  = _Lhs::RowsAtCompileTime,
+    MaxCols  = _Rhs::MaxColsAtCompileTime,
+    Cols  = _Rhs::ColsAtCompileTime,
+    MaxDepth = EIGEN_SIZE_MIN_PREFER_FIXED(_Lhs::MaxColsAtCompileTime,
+                                           _Rhs::MaxRowsAtCompileTime),
+    Depth = EIGEN_SIZE_MIN_PREFER_FIXED(_Lhs::ColsAtCompileTime,
+                                        _Rhs::RowsAtCompileTime),
+    LargeThreshold = EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+  };
+
+  // the splitting into different lines of code here, introducing the _select enums and the typedef below,
+  // is to work around an internal compiler error with gcc 4.1 and 4.2.
+private:
+  enum {
+    rows_select = product_size_category<Rows,MaxRows>::value,
+    cols_select = product_size_category<Cols,MaxCols>::value,
+    depth_select = product_size_category<Depth,MaxDepth>::value
+  };
+  typedef product_type_selector<rows_select, cols_select, depth_select> selector;
+
+public:
+  enum {
+    value = selector::ret
+  };
+#ifdef EIGEN_DEBUG_PRODUCT
+  static void debug()
+  {
+      EIGEN_DEBUG_VAR(Rows);
+      EIGEN_DEBUG_VAR(Cols);
+      EIGEN_DEBUG_VAR(Depth);
+      EIGEN_DEBUG_VAR(rows_select);
+      EIGEN_DEBUG_VAR(cols_select);
+      EIGEN_DEBUG_VAR(depth_select);
+      EIGEN_DEBUG_VAR(value);
+  }
+#endif
+};
+
+
+/* The following allows to select the kind of product at compile time
+ * based on the three dimensions of the product.
+ * This is a compile time mapping from {1,Small,Large}^3 -> {product types} */
+// FIXME I'm not sure the current mapping is the ideal one.
+template<int M, int N>  struct product_type_selector<M,N,1>              { enum { ret = OuterProduct }; };
+template<int Depth>     struct product_type_selector<1,    1,    Depth>  { enum { ret = InnerProduct }; };
+template<>              struct product_type_selector<1,    1,    1>      { enum { ret = InnerProduct }; };
+template<>              struct product_type_selector<Small,1,    Small>  { enum { ret = CoeffBasedProductMode }; };
+template<>              struct product_type_selector<1,    Small,Small>  { enum { ret = CoeffBasedProductMode }; };
+template<>              struct product_type_selector<Small,Small,Small>  { enum { ret = CoeffBasedProductMode }; };
+template<>              struct product_type_selector<Small, Small, 1>    { enum { ret = LazyCoeffBasedProductMode }; };
+template<>              struct product_type_selector<Small, Large, 1>    { enum { ret = LazyCoeffBasedProductMode }; };
+template<>              struct product_type_selector<Large, Small, 1>    { enum { ret = LazyCoeffBasedProductMode }; };
+template<>              struct product_type_selector<1,    Large,Small>  { enum { ret = CoeffBasedProductMode }; };
+template<>              struct product_type_selector<1,    Large,Large>  { enum { ret = GemvProduct }; };
+template<>              struct product_type_selector<1,    Small,Large>  { enum { ret = CoeffBasedProductMode }; };
+template<>              struct product_type_selector<Large,1,    Small>  { enum { ret = CoeffBasedProductMode }; };
+template<>              struct product_type_selector<Large,1,    Large>  { enum { ret = GemvProduct }; };
+template<>              struct product_type_selector<Small,1,    Large>  { enum { ret = CoeffBasedProductMode }; };
+template<>              struct product_type_selector<Small,Small,Large>  { enum { ret = GemmProduct }; };
+template<>              struct product_type_selector<Large,Small,Large>  { enum { ret = GemmProduct }; };
+template<>              struct product_type_selector<Small,Large,Large>  { enum { ret = GemmProduct }; };
+template<>              struct product_type_selector<Large,Large,Large>  { enum { ret = GemmProduct }; };
+template<>              struct product_type_selector<Large,Small,Small>  { enum { ret = GemmProduct }; };
+template<>              struct product_type_selector<Small,Large,Small>  { enum { ret = GemmProduct }; };
+template<>              struct product_type_selector<Large,Large,Small>  { enum { ret = GemmProduct }; };
+
+} // end namespace internal
+
+/** \class ProductReturnType
+  * \ingroup Core_Module
+  *
+  * \brief Helper class to get the correct and optimized returned type of operator*
+  *
+  * \param Lhs the type of the left-hand side
+  * \param Rhs the type of the right-hand side
+  * \param ProductMode the type of the product (determined automatically by internal::product_mode)
+  *
+  * This class defines the typename Type representing the optimized product expression
+  * between two matrix expressions. In practice, using ProductReturnType<Lhs,Rhs>::Type
+  * is the recommended way to define the result type of a function returning an expression
+  * which involve a matrix product. The class Product should never be
+  * used directly.
+  *
+  * \sa class Product, MatrixBase::operator*(const MatrixBase<OtherDerived>&)
+  */
+template<typename Lhs, typename Rhs, int ProductType>
+struct ProductReturnType
+{
+  // TODO use the nested type to reduce instanciations ????
+//   typedef typename internal::nested<Lhs,Rhs::ColsAtCompileTime>::type LhsNested;
+//   typedef typename internal::nested<Rhs,Lhs::RowsAtCompileTime>::type RhsNested;
+
+  typedef GeneralProduct<Lhs/*Nested*/, Rhs/*Nested*/, ProductType> Type;
+};
+
+template<typename Lhs, typename Rhs>
+struct ProductReturnType<Lhs,Rhs,CoeffBasedProductMode>
+{
+  typedef typename internal::nested<Lhs, Rhs::ColsAtCompileTime, typename internal::plain_matrix_type<Lhs>::type >::type LhsNested;
+  typedef typename internal::nested<Rhs, Lhs::RowsAtCompileTime, typename internal::plain_matrix_type<Rhs>::type >::type RhsNested;
+  typedef CoeffBasedProduct<LhsNested, RhsNested, EvalBeforeAssigningBit | EvalBeforeNestingBit> Type;
+};
+
+template<typename Lhs, typename Rhs>
+struct ProductReturnType<Lhs,Rhs,LazyCoeffBasedProductMode>
+{
+  typedef typename internal::nested<Lhs, Rhs::ColsAtCompileTime, typename internal::plain_matrix_type<Lhs>::type >::type LhsNested;
+  typedef typename internal::nested<Rhs, Lhs::RowsAtCompileTime, typename internal::plain_matrix_type<Rhs>::type >::type RhsNested;
+  typedef CoeffBasedProduct<LhsNested, RhsNested, NestByRefBit> Type;
+};
+
+// this is a workaround for sun CC
+template<typename Lhs, typename Rhs>
+struct LazyProductReturnType : public ProductReturnType<Lhs,Rhs,LazyCoeffBasedProductMode>
+{};
+
+/***********************************************************************
+*  Implementation of Inner Vector Vector Product
+***********************************************************************/
+
+// FIXME : maybe the "inner product" could return a Scalar
+// instead of a 1x1 matrix ??
+// Pro: more natural for the user
+// Cons: this could be a problem if in a meta unrolled algorithm a matrix-matrix
+// product ends up to a row-vector times col-vector product... To tackle this use
+// case, we could have a specialization for Block<MatrixType,1,1> with: operator=(Scalar x);
+
+namespace internal {
+
+template<typename Lhs, typename Rhs>
+struct traits<GeneralProduct<Lhs,Rhs,InnerProduct> >
+ : traits<Matrix<typename scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType,1,1> >
+{};
+
+}
+
+template<typename Lhs, typename Rhs>
+class GeneralProduct<Lhs, Rhs, InnerProduct>
+  : internal::no_assignment_operator,
+    public Matrix<typename internal::scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType,1,1>
+{
+    typedef Matrix<typename internal::scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType,1,1> Base;
+  public:
+    GeneralProduct(const Lhs& lhs, const Rhs& rhs)
+    {
+      EIGEN_STATIC_ASSERT((internal::is_same<typename Lhs::RealScalar, typename Rhs::RealScalar>::value),
+        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+      Base::coeffRef(0,0) = (lhs.transpose().cwiseProduct(rhs)).sum();
+    }
+
+    /** Convertion to scalar */
+    operator const typename Base::Scalar() const {
+      return Base::coeff(0,0);
+    }
+};
+
+/***********************************************************************
+*  Implementation of Outer Vector Vector Product
+***********************************************************************/
+
+namespace internal {
+
+// Column major
+template<typename ProductType, typename Dest, typename Func>
+EIGEN_DONT_INLINE void outer_product_selector_run(const ProductType& prod, Dest& dest, const Func& func, const false_type&)
+{
+  typedef typename Dest::Index Index;
+  // FIXME make sure lhs is sequentially stored
+  // FIXME not very good if rhs is real and lhs complex while alpha is real too
+  const Index cols = dest.cols();
+  for (Index j=0; j<cols; ++j)
+    func(dest.col(j), prod.rhs().coeff(0,j) * prod.lhs());
+}
+
+// Row major
+template<typename ProductType, typename Dest, typename Func>
+EIGEN_DONT_INLINE void outer_product_selector_run(const ProductType& prod, Dest& dest, const Func& func, const true_type&) {
+  typedef typename Dest::Index Index;
+  // FIXME make sure rhs is sequentially stored
+  // FIXME not very good if lhs is real and rhs complex while alpha is real too
+  const Index rows = dest.rows();
+  for (Index i=0; i<rows; ++i)
+    func(dest.row(i), prod.lhs().coeff(i,0) * prod.rhs());
+}
+
+template<typename Lhs, typename Rhs>
+struct traits<GeneralProduct<Lhs,Rhs,OuterProduct> >
+ : traits<ProductBase<GeneralProduct<Lhs,Rhs,OuterProduct>, Lhs, Rhs> >
+{};
+
+}
+
+template<typename Lhs, typename Rhs>
+class GeneralProduct<Lhs, Rhs, OuterProduct>
+  : public ProductBase<GeneralProduct<Lhs,Rhs,OuterProduct>, Lhs, Rhs>
+{
+    template<typename T> struct is_row_major : internal::conditional<(int(T::Flags)&RowMajorBit), internal::true_type, internal::false_type>::type {};
+    
+  public:
+    EIGEN_PRODUCT_PUBLIC_INTERFACE(GeneralProduct)
+
+    GeneralProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
+    {
+      EIGEN_STATIC_ASSERT((internal::is_same<typename Lhs::RealScalar, typename Rhs::RealScalar>::value),
+        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+    }
+    
+    struct set  { template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const { dst.const_cast_derived()  = src; } };
+    struct add  { template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const { dst.const_cast_derived() += src; } };
+    struct sub  { template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const { dst.const_cast_derived() -= src; } };
+    struct adds {
+      Scalar m_scale;
+      adds(const Scalar& s) : m_scale(s) {}
+      template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const {
+        dst.const_cast_derived() += m_scale * src;
+      }
+    };
+    
+    template<typename Dest>
+    inline void evalTo(Dest& dest) const {
+      internal::outer_product_selector_run(*this, dest, set(), is_row_major<Dest>());
+    }
+    
+    template<typename Dest>
+    inline void addTo(Dest& dest) const {
+      internal::outer_product_selector_run(*this, dest, add(), is_row_major<Dest>());
+    }
+
+    template<typename Dest>
+    inline void subTo(Dest& dest) const {
+      internal::outer_product_selector_run(*this, dest, sub(), is_row_major<Dest>());
+    }
+
+    template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
+    {
+      internal::outer_product_selector_run(*this, dest, adds(alpha), is_row_major<Dest>());
+    }
+};
+
+/***********************************************************************
+*  Implementation of General Matrix Vector Product
+***********************************************************************/
+
+/*  According to the shape/flags of the matrix we have to distinghish 3 different cases:
+ *   1 - the matrix is col-major, BLAS compatible and M is large => call fast BLAS-like colmajor routine
+ *   2 - the matrix is row-major, BLAS compatible and N is large => call fast BLAS-like rowmajor routine
+ *   3 - all other cases are handled using a simple loop along the outer-storage direction.
+ *  Therefore we need a lower level meta selector.
+ *  Furthermore, if the matrix is the rhs, then the product has to be transposed.
+ */
+namespace internal {
+
+template<typename Lhs, typename Rhs>
+struct traits<GeneralProduct<Lhs,Rhs,GemvProduct> >
+ : traits<ProductBase<GeneralProduct<Lhs,Rhs,GemvProduct>, Lhs, Rhs> >
+{};
+
+template<int Side, int StorageOrder, bool BlasCompatible>
+struct gemv_selector;
+
+} // end namespace internal
+
+template<typename Lhs, typename Rhs>
+class GeneralProduct<Lhs, Rhs, GemvProduct>
+  : public ProductBase<GeneralProduct<Lhs,Rhs,GemvProduct>, Lhs, Rhs>
+{
+  public:
+    EIGEN_PRODUCT_PUBLIC_INTERFACE(GeneralProduct)
+
+    typedef typename Lhs::Scalar LhsScalar;
+    typedef typename Rhs::Scalar RhsScalar;
+
+    GeneralProduct(const Lhs& a_lhs, const Rhs& a_rhs) : Base(a_lhs,a_rhs)
+    {
+//       EIGEN_STATIC_ASSERT((internal::is_same<typename Lhs::Scalar, typename Rhs::Scalar>::value),
+//         YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+    }
+
+    enum { Side = Lhs::IsVectorAtCompileTime ? OnTheLeft : OnTheRight };
+    typedef typename internal::conditional<int(Side)==OnTheRight,_LhsNested,_RhsNested>::type MatrixType;
+
+    template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
+    {
+      eigen_assert(m_lhs.rows() == dst.rows() && m_rhs.cols() == dst.cols());
+      internal::gemv_selector<Side,(int(MatrixType::Flags)&RowMajorBit) ? RowMajor : ColMajor,
+                       bool(internal::blas_traits<MatrixType>::HasUsableDirectAccess)>::run(*this, dst, alpha);
+    }
+};
+
+namespace internal {
+
+// The vector is on the left => transposition
+template<int StorageOrder, bool BlasCompatible>
+struct gemv_selector<OnTheLeft,StorageOrder,BlasCompatible>
+{
+  template<typename ProductType, typename Dest>
+  static void run(const ProductType& prod, Dest& dest, const typename ProductType::Scalar& alpha)
+  {
+    Transpose<Dest> destT(dest);
+    enum { OtherStorageOrder = StorageOrder == RowMajor ? ColMajor : RowMajor };
+    gemv_selector<OnTheRight,OtherStorageOrder,BlasCompatible>
+      ::run(GeneralProduct<Transpose<const typename ProductType::_RhsNested>,Transpose<const typename ProductType::_LhsNested>, GemvProduct>
+        (prod.rhs().transpose(), prod.lhs().transpose()), destT, alpha);
+  }
+};
+
+template<typename Scalar,int Size,int MaxSize,bool Cond> struct gemv_static_vector_if;
+
+template<typename Scalar,int Size,int MaxSize>
+struct gemv_static_vector_if<Scalar,Size,MaxSize,false>
+{
+  EIGEN_STRONG_INLINE  Scalar* data() { eigen_internal_assert(false && "should never be called"); return 0; }
+};
+
+template<typename Scalar,int Size>
+struct gemv_static_vector_if<Scalar,Size,Dynamic,true>
+{
+  EIGEN_STRONG_INLINE Scalar* data() { return 0; }
+};
+
+template<typename Scalar,int Size,int MaxSize>
+struct gemv_static_vector_if<Scalar,Size,MaxSize,true>
+{
+  #if EIGEN_ALIGN_STATICALLY
+  internal::plain_array<Scalar,EIGEN_SIZE_MIN_PREFER_FIXED(Size,MaxSize),0> m_data;
+  EIGEN_STRONG_INLINE Scalar* data() { return m_data.array; }
+  #else
+  // Some architectures cannot align on the stack,
+  // => let's manually enforce alignment by allocating more data and return the address of the first aligned element.
+  enum {
+    ForceAlignment  = internal::packet_traits<Scalar>::Vectorizable,
+    PacketSize      = internal::packet_traits<Scalar>::size
+  };
+  internal::plain_array<Scalar,EIGEN_SIZE_MIN_PREFER_FIXED(Size,MaxSize)+(ForceAlignment?PacketSize:0),0> m_data;
+  EIGEN_STRONG_INLINE Scalar* data() {
+    return ForceAlignment
+            ? reinterpret_cast<Scalar*>((reinterpret_cast<size_t>(m_data.array) & ~(size_t(15))) + 16)
+            : m_data.array;
+  }
+  #endif
+};
+
+template<> struct gemv_selector<OnTheRight,ColMajor,true>
+{
+  template<typename ProductType, typename Dest>
+  static inline void run(const ProductType& prod, Dest& dest, const typename ProductType::Scalar& alpha)
+  {
+    typedef typename ProductType::Index Index;
+    typedef typename ProductType::LhsScalar   LhsScalar;
+    typedef typename ProductType::RhsScalar   RhsScalar;
+    typedef typename ProductType::Scalar      ResScalar;
+    typedef typename ProductType::RealScalar  RealScalar;
+    typedef typename ProductType::ActualLhsType ActualLhsType;
+    typedef typename ProductType::ActualRhsType ActualRhsType;
+    typedef typename ProductType::LhsBlasTraits LhsBlasTraits;
+    typedef typename ProductType::RhsBlasTraits RhsBlasTraits;
+    typedef Map<Matrix<ResScalar,Dynamic,1>, Aligned> MappedDest;
+
+    ActualLhsType actualLhs = LhsBlasTraits::extract(prod.lhs());
+    ActualRhsType actualRhs = RhsBlasTraits::extract(prod.rhs());
+
+    ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs())
+                                  * RhsBlasTraits::extractScalarFactor(prod.rhs());
+
+    // make sure Dest is a compile-time vector type (bug 1166)
+    typedef typename conditional<Dest::IsVectorAtCompileTime, Dest, typename Dest::ColXpr>::type ActualDest;
+
+    enum {
+      // FIXME find a way to allow an inner stride on the result if packet_traits<Scalar>::size==1
+      // on, the other hand it is good for the cache to pack the vector anyways...
+      EvalToDestAtCompileTime = (ActualDest::InnerStrideAtCompileTime==1),
+      ComplexByReal = (NumTraits<LhsScalar>::IsComplex) && (!NumTraits<RhsScalar>::IsComplex),
+      MightCannotUseDest = (ActualDest::InnerStrideAtCompileTime!=1) || ComplexByReal
+    };
+
+    gemv_static_vector_if<ResScalar,ActualDest::SizeAtCompileTime,ActualDest::MaxSizeAtCompileTime,MightCannotUseDest> static_dest;
+
+    bool alphaIsCompatible = (!ComplexByReal) || (numext::imag(actualAlpha)==RealScalar(0));
+    bool evalToDest = EvalToDestAtCompileTime && alphaIsCompatible;
+    
+    RhsScalar compatibleAlpha = get_factor<ResScalar,RhsScalar>::run(actualAlpha);
+
+    ei_declare_aligned_stack_constructed_variable(ResScalar,actualDestPtr,dest.size(),
+                                                  evalToDest ? dest.data() : static_dest.data());
+    
+    if(!evalToDest)
+    {
+      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      int size = dest.size();
+      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      #endif
+      if(!alphaIsCompatible)
+      {
+        MappedDest(actualDestPtr, dest.size()).setZero();
+        compatibleAlpha = RhsScalar(1);
+      }
+      else
+        MappedDest(actualDestPtr, dest.size()) = dest;
+    }
+
+    general_matrix_vector_product
+      <Index,LhsScalar,ColMajor,LhsBlasTraits::NeedToConjugate,RhsScalar,RhsBlasTraits::NeedToConjugate>::run(
+        actualLhs.rows(), actualLhs.cols(),
+        actualLhs.data(), actualLhs.outerStride(),
+        actualRhs.data(), actualRhs.innerStride(),
+        actualDestPtr, 1,
+        compatibleAlpha);
+
+    if (!evalToDest)
+    {
+      if(!alphaIsCompatible)
+        dest += actualAlpha * MappedDest(actualDestPtr, dest.size());
+      else
+        dest = MappedDest(actualDestPtr, dest.size());
+    }
+  }
+};
+
+template<> struct gemv_selector<OnTheRight,RowMajor,true>
+{
+  template<typename ProductType, typename Dest>
+  static void run(const ProductType& prod, Dest& dest, const typename ProductType::Scalar& alpha)
+  {
+    typedef typename ProductType::LhsScalar LhsScalar;
+    typedef typename ProductType::RhsScalar RhsScalar;
+    typedef typename ProductType::Scalar    ResScalar;
+    typedef typename ProductType::Index Index;
+    typedef typename ProductType::ActualLhsType ActualLhsType;
+    typedef typename ProductType::ActualRhsType ActualRhsType;
+    typedef typename ProductType::_ActualRhsType _ActualRhsType;
+    typedef typename ProductType::LhsBlasTraits LhsBlasTraits;
+    typedef typename ProductType::RhsBlasTraits RhsBlasTraits;
+
+    typename add_const<ActualLhsType>::type actualLhs = LhsBlasTraits::extract(prod.lhs());
+    typename add_const<ActualRhsType>::type actualRhs = RhsBlasTraits::extract(prod.rhs());
+
+    ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs())
+                                  * RhsBlasTraits::extractScalarFactor(prod.rhs());
+
+    enum {
+      // FIXME find a way to allow an inner stride on the result if packet_traits<Scalar>::size==1
+      // on, the other hand it is good for the cache to pack the vector anyways...
+      DirectlyUseRhs = _ActualRhsType::InnerStrideAtCompileTime==1
+    };
+
+    gemv_static_vector_if<RhsScalar,_ActualRhsType::SizeAtCompileTime,_ActualRhsType::MaxSizeAtCompileTime,!DirectlyUseRhs> static_rhs;
+
+    ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhsPtr,actualRhs.size(),
+        DirectlyUseRhs ? const_cast<RhsScalar*>(actualRhs.data()) : static_rhs.data());
+
+    if(!DirectlyUseRhs)
+    {
+      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      int size = actualRhs.size();
+      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      #endif
+      Map<typename _ActualRhsType::PlainObject>(actualRhsPtr, actualRhs.size()) = actualRhs;
+    }
+
+    general_matrix_vector_product
+      <Index,LhsScalar,RowMajor,LhsBlasTraits::NeedToConjugate,RhsScalar,RhsBlasTraits::NeedToConjugate>::run(
+        actualLhs.rows(), actualLhs.cols(),
+        actualLhs.data(), actualLhs.outerStride(),
+        actualRhsPtr, 1,
+        dest.data(), dest.col(0).innerStride(), //NOTE  if dest is not a vector at compile-time, then dest.innerStride() might be wrong. (bug 1166)
+        actualAlpha);
+  }
+};
+
+template<> struct gemv_selector<OnTheRight,ColMajor,false>
+{
+  template<typename ProductType, typename Dest>
+  static void run(const ProductType& prod, Dest& dest, const typename ProductType::Scalar& alpha)
+  {
+    typedef typename Dest::Index Index;
+    // TODO makes sure dest is sequentially stored in memory, otherwise use a temp
+    const Index size = prod.rhs().rows();
+    for(Index k=0; k<size; ++k)
+      dest += (alpha*prod.rhs().coeff(k)) * prod.lhs().col(k);
+  }
+};
+
+template<> struct gemv_selector<OnTheRight,RowMajor,false>
+{
+  template<typename ProductType, typename Dest>
+  static void run(const ProductType& prod, Dest& dest, const typename ProductType::Scalar& alpha)
+  {
+    typedef typename Dest::Index Index;
+    // TODO makes sure rhs is sequentially stored in memory, otherwise use a temp
+    const Index rows = prod.rows();
+    for(Index i=0; i<rows; ++i)
+      dest.coeffRef(i) += alpha * (prod.lhs().row(i).cwiseProduct(prod.rhs().transpose())).sum();
+  }
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* Implementation of matrix base methods
+***************************************************************************/
+
+/** \returns the matrix product of \c *this and \a other.
+  *
+  * \note If instead of the matrix product you want the coefficient-wise product, see Cwise::operator*().
+  *
+  * \sa lazyProduct(), operator*=(const MatrixBase&), Cwise::operator*()
+  */
+template<typename Derived>
+template<typename OtherDerived>
+inline const typename ProductReturnType<Derived, OtherDerived>::Type
+MatrixBase<Derived>::operator*(const MatrixBase<OtherDerived> &other) const
+{
+  // A note regarding the function declaration: In MSVC, this function will sometimes
+  // not be inlined since DenseStorage is an unwindable object for dynamic
+  // matrices and product types are holding a member to store the result.
+  // Thus it does not help tagging this function with EIGEN_STRONG_INLINE.
+  enum {
+    ProductIsValid =  Derived::ColsAtCompileTime==Dynamic
+                   || OtherDerived::RowsAtCompileTime==Dynamic
+                   || int(Derived::ColsAtCompileTime)==int(OtherDerived::RowsAtCompileTime),
+    AreVectors = Derived::IsVectorAtCompileTime && OtherDerived::IsVectorAtCompileTime,
+    SameSizes = EIGEN_PREDICATE_SAME_MATRIX_SIZE(Derived,OtherDerived)
+  };
+  // note to the lost user:
+  //    * for a dot product use: v1.dot(v2)
+  //    * for a coeff-wise product use: v1.cwiseProduct(v2)
+  EIGEN_STATIC_ASSERT(ProductIsValid || !(AreVectors && SameSizes),
+    INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS)
+  EIGEN_STATIC_ASSERT(ProductIsValid || !(SameSizes && !AreVectors),
+    INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION)
+  EIGEN_STATIC_ASSERT(ProductIsValid || SameSizes, INVALID_MATRIX_PRODUCT)
+#ifdef EIGEN_DEBUG_PRODUCT
+  internal::product_type<Derived,OtherDerived>::debug();
+#endif
+  return typename ProductReturnType<Derived,OtherDerived>::Type(derived(), other.derived());
+}
+
+/** \returns an expression of the matrix product of \c *this and \a other without implicit evaluation.
+  *
+  * The returned product will behave like any other expressions: the coefficients of the product will be
+  * computed once at a time as requested. This might be useful in some extremely rare cases when only
+  * a small and no coherent fraction of the result's coefficients have to be computed.
+  *
+  * \warning This version of the matrix product can be much much slower. So use it only if you know
+  * what you are doing and that you measured a true speed improvement.
+  *
+  * \sa operator*(const MatrixBase&)
+  */
+template<typename Derived>
+template<typename OtherDerived>
+const typename LazyProductReturnType<Derived,OtherDerived>::Type
+MatrixBase<Derived>::lazyProduct(const MatrixBase<OtherDerived> &other) const
+{
+  enum {
+    ProductIsValid =  Derived::ColsAtCompileTime==Dynamic
+                   || OtherDerived::RowsAtCompileTime==Dynamic
+                   || int(Derived::ColsAtCompileTime)==int(OtherDerived::RowsAtCompileTime),
+    AreVectors = Derived::IsVectorAtCompileTime && OtherDerived::IsVectorAtCompileTime,
+    SameSizes = EIGEN_PREDICATE_SAME_MATRIX_SIZE(Derived,OtherDerived)
+  };
+  // note to the lost user:
+  //    * for a dot product use: v1.dot(v2)
+  //    * for a coeff-wise product use: v1.cwiseProduct(v2)
+  EIGEN_STATIC_ASSERT(ProductIsValid || !(AreVectors && SameSizes),
+    INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS)
+  EIGEN_STATIC_ASSERT(ProductIsValid || !(SameSizes && !AreVectors),
+    INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION)
+  EIGEN_STATIC_ASSERT(ProductIsValid || SameSizes, INVALID_MATRIX_PRODUCT)
+
+  return typename LazyProductReturnType<Derived,OtherDerived>::Type(derived(), other.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_PRODUCT_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/GenericPacketMath.h b/vendor/eigen-3.2.8/Eigen/src/Core/GenericPacketMath.h
new file mode 100644
index 0000000..5f783eb
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/GenericPacketMath.h
@@ -0,0 +1,350 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERIC_PACKET_MATH_H
+#define EIGEN_GENERIC_PACKET_MATH_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal
+  * \file GenericPacketMath.h
+  *
+  * Default implementation for types not supported by the vectorization.
+  * In practice these functions are provided to make easier the writing
+  * of generic vectorized code.
+  */
+
+#ifndef EIGEN_DEBUG_ALIGNED_LOAD
+#define EIGEN_DEBUG_ALIGNED_LOAD
+#endif
+
+#ifndef EIGEN_DEBUG_UNALIGNED_LOAD
+#define EIGEN_DEBUG_UNALIGNED_LOAD
+#endif
+
+#ifndef EIGEN_DEBUG_ALIGNED_STORE
+#define EIGEN_DEBUG_ALIGNED_STORE
+#endif
+
+#ifndef EIGEN_DEBUG_UNALIGNED_STORE
+#define EIGEN_DEBUG_UNALIGNED_STORE
+#endif
+
+struct default_packet_traits
+{
+  enum {
+    HasAdd    = 1,
+    HasSub    = 1,
+    HasMul    = 1,
+    HasNegate = 1,
+    HasAbs    = 1,
+    HasAbs2   = 1,
+    HasMin    = 1,
+    HasMax    = 1,
+    HasConj   = 1,
+    HasSetLinear = 1,
+
+    HasDiv    = 0,
+    HasSqrt   = 0,
+    HasExp    = 0,
+    HasLog    = 0,
+    HasPow    = 0,
+
+    HasSin    = 0,
+    HasCos    = 0,
+    HasTan    = 0,
+    HasASin   = 0,
+    HasACos   = 0,
+    HasATan   = 0
+  };
+};
+
+template<typename T> struct packet_traits : default_packet_traits
+{
+  typedef T type;
+  enum {
+    Vectorizable = 0,
+    size = 1,
+    AlignedOnScalar = 0
+  };
+  enum {
+    HasAdd    = 0,
+    HasSub    = 0,
+    HasMul    = 0,
+    HasNegate = 0,
+    HasAbs    = 0,
+    HasAbs2   = 0,
+    HasMin    = 0,
+    HasMax    = 0,
+    HasConj   = 0,
+    HasSetLinear = 0
+  };
+};
+
+/** \internal \returns a + b (coeff-wise) */
+template<typename Packet> inline Packet
+padd(const Packet& a,
+        const Packet& b) { return a+b; }
+
+/** \internal \returns a - b (coeff-wise) */
+template<typename Packet> inline Packet
+psub(const Packet& a,
+        const Packet& b) { return a-b; }
+
+/** \internal \returns -a (coeff-wise) */
+template<typename Packet> inline Packet
+pnegate(const Packet& a) { return -a; }
+
+/** \internal \returns conj(a) (coeff-wise) */
+template<typename Packet> inline Packet
+pconj(const Packet& a) { return numext::conj(a); }
+
+/** \internal \returns a * b (coeff-wise) */
+template<typename Packet> inline Packet
+pmul(const Packet& a,
+        const Packet& b) { return a*b; }
+
+/** \internal \returns a / b (coeff-wise) */
+template<typename Packet> inline Packet
+pdiv(const Packet& a,
+        const Packet& b) { return a/b; }
+
+/** \internal \returns the min of \a a and \a b  (coeff-wise) */
+template<typename Packet> inline Packet
+pmin(const Packet& a,
+        const Packet& b) { using std::min; return (min)(a, b); }
+
+/** \internal \returns the max of \a a and \a b  (coeff-wise) */
+template<typename Packet> inline Packet
+pmax(const Packet& a,
+        const Packet& b) { using std::max; return (max)(a, b); }
+
+/** \internal \returns the absolute value of \a a */
+template<typename Packet> inline Packet
+pabs(const Packet& a) { using std::abs; return abs(a); }
+
+/** \internal \returns the bitwise and of \a a and \a b */
+template<typename Packet> inline Packet
+pand(const Packet& a, const Packet& b) { return a & b; }
+
+/** \internal \returns the bitwise or of \a a and \a b */
+template<typename Packet> inline Packet
+por(const Packet& a, const Packet& b) { return a | b; }
+
+/** \internal \returns the bitwise xor of \a a and \a b */
+template<typename Packet> inline Packet
+pxor(const Packet& a, const Packet& b) { return a ^ b; }
+
+/** \internal \returns the bitwise andnot of \a a and \a b */
+template<typename Packet> inline Packet
+pandnot(const Packet& a, const Packet& b) { return a & (!b); }
+
+/** \internal \returns a packet version of \a *from, from must be 16 bytes aligned */
+template<typename Packet> inline Packet
+pload(const typename unpacket_traits<Packet>::type* from) { return *from; }
+
+/** \internal \returns a packet version of \a *from, (un-aligned load) */
+template<typename Packet> inline Packet
+ploadu(const typename unpacket_traits<Packet>::type* from) { return *from; }
+
+/** \internal \returns a packet with elements of \a *from duplicated.
+  * For instance, for a packet of 8 elements, 4 scalar will be read from \a *from and
+  * duplicated to form: {from[0],from[0],from[1],from[1],,from[2],from[2],,from[3],from[3]}
+  * Currently, this function is only used for scalar * complex products.
+ */
+template<typename Packet> inline Packet
+ploaddup(const typename unpacket_traits<Packet>::type* from) { return *from; }
+
+/** \internal \returns a packet with constant coefficients \a a, e.g.: (a,a,a,a) */
+template<typename Packet> inline Packet
+pset1(const typename unpacket_traits<Packet>::type& a) { return a; }
+
+/** \internal \brief Returns a packet with coefficients (a,a+1,...,a+packet_size-1). */
+template<typename Scalar> inline typename packet_traits<Scalar>::type
+plset(const Scalar& a) { return a; }
+
+/** \internal copy the packet \a from to \a *to, \a to must be 16 bytes aligned */
+template<typename Scalar, typename Packet> inline void pstore(Scalar* to, const Packet& from)
+{ (*to) = from; }
+
+/** \internal copy the packet \a from to \a *to, (un-aligned store) */
+template<typename Scalar, typename Packet> inline void pstoreu(Scalar* to, const Packet& from)
+{ (*to) = from; }
+
+/** \internal tries to do cache prefetching of \a addr */
+template<typename Scalar> inline void prefetch(const Scalar* addr)
+{
+#if !defined(_MSC_VER)
+__builtin_prefetch(addr);
+#endif
+}
+
+/** \internal \returns the first element of a packet */
+template<typename Packet> inline typename unpacket_traits<Packet>::type pfirst(const Packet& a)
+{ return a; }
+
+/** \internal \returns a packet where the element i contains the sum of the packet of \a vec[i] */
+template<typename Packet> inline Packet
+preduxp(const Packet* vecs) { return vecs[0]; }
+
+/** \internal \returns the sum of the elements of \a a*/
+template<typename Packet> inline typename unpacket_traits<Packet>::type predux(const Packet& a)
+{ return a; }
+
+/** \internal \returns the product of the elements of \a a*/
+template<typename Packet> inline typename unpacket_traits<Packet>::type predux_mul(const Packet& a)
+{ return a; }
+
+/** \internal \returns the min of the elements of \a a*/
+template<typename Packet> inline typename unpacket_traits<Packet>::type predux_min(const Packet& a)
+{ return a; }
+
+/** \internal \returns the max of the elements of \a a*/
+template<typename Packet> inline typename unpacket_traits<Packet>::type predux_max(const Packet& a)
+{ return a; }
+
+/** \internal \returns the reversed elements of \a a*/
+template<typename Packet> inline Packet preverse(const Packet& a)
+{ return a; }
+
+
+/** \internal \returns \a a with real and imaginary part flipped (for complex type only) */
+template<typename Packet> inline Packet pcplxflip(const Packet& a)
+{
+  // FIXME: uncomment the following in case we drop the internal imag and real functions.
+//   using std::imag;
+//   using std::real;
+  return Packet(imag(a),real(a));
+}
+
+/**************************
+* Special math functions
+***************************/
+
+/** \internal \returns the sine of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet psin(const Packet& a) { using std::sin; return sin(a); }
+
+/** \internal \returns the cosine of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pcos(const Packet& a) { using std::cos; return cos(a); }
+
+/** \internal \returns the tan of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet ptan(const Packet& a) { using std::tan; return tan(a); }
+
+/** \internal \returns the arc sine of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pasin(const Packet& a) { using std::asin; return asin(a); }
+
+/** \internal \returns the arc cosine of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pacos(const Packet& a) { using std::acos; return acos(a); }
+
+/** \internal \returns the exp of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pexp(const Packet& a) { using std::exp; return exp(a); }
+
+/** \internal \returns the log of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet plog(const Packet& a) { using std::log; return log(a); }
+
+/** \internal \returns the square-root of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet psqrt(const Packet& a) { using std::sqrt; return sqrt(a); }
+
+/***************************************************************************
+* The following functions might not have to be overwritten for vectorized types
+***************************************************************************/
+
+/** \internal copy a packet with constant coeficient \a a (e.g., [a,a,a,a]) to \a *to. \a to must be 16 bytes aligned */
+// NOTE: this function must really be templated on the packet type (think about different packet types for the same scalar type)
+template<typename Packet>
+inline void pstore1(typename unpacket_traits<Packet>::type* to, const typename unpacket_traits<Packet>::type& a)
+{
+  pstore(to, pset1<Packet>(a));
+}
+
+/** \internal \returns a * b + c (coeff-wise) */
+template<typename Packet> inline Packet
+pmadd(const Packet&  a,
+         const Packet&  b,
+         const Packet&  c)
+{ return padd(pmul(a, b),c); }
+
+/** \internal \returns a packet version of \a *from.
+  * If LoadMode equals #Aligned, \a from must be 16 bytes aligned */
+template<typename Packet, int LoadMode>
+inline Packet ploadt(const typename unpacket_traits<Packet>::type* from)
+{
+  if(LoadMode == Aligned)
+    return pload<Packet>(from);
+  else
+    return ploadu<Packet>(from);
+}
+
+/** \internal copy the packet \a from to \a *to.
+  * If StoreMode equals #Aligned, \a to must be 16 bytes aligned */
+template<typename Scalar, typename Packet, int LoadMode>
+inline void pstoret(Scalar* to, const Packet& from)
+{
+  if(LoadMode == Aligned)
+    pstore(to, from);
+  else
+    pstoreu(to, from);
+}
+
+/** \internal default implementation of palign() allowing partial specialization */
+template<int Offset,typename PacketType>
+struct palign_impl
+{
+  // by default data are aligned, so there is nothing to be done :)
+  static inline void run(PacketType&, const PacketType&) {}
+};
+
+/** \internal update \a first using the concatenation of the packet_size minus \a Offset last elements
+  * of \a first and \a Offset first elements of \a second.
+  * 
+  * This function is currently only used to optimize matrix-vector products on unligned matrices.
+  * It takes 2 packets that represent a contiguous memory array, and returns a packet starting
+  * at the position \a Offset. For instance, for packets of 4 elements, we have:
+  *  Input:
+  *  - first = {f0,f1,f2,f3}
+  *  - second = {s0,s1,s2,s3}
+  * Output: 
+  *   - if Offset==0 then {f0,f1,f2,f3}
+  *   - if Offset==1 then {f1,f2,f3,s0}
+  *   - if Offset==2 then {f2,f3,s0,s1}
+  *   - if Offset==3 then {f3,s0,s1,s3}
+  */
+template<int Offset,typename PacketType>
+inline void palign(PacketType& first, const PacketType& second)
+{
+  palign_impl<Offset,PacketType>::run(first,second);
+}
+
+/***************************************************************************
+* Fast complex products (GCC generates a function call which is very slow)
+***************************************************************************/
+
+template<> inline std::complex<float> pmul(const std::complex<float>& a, const std::complex<float>& b)
+{ return std::complex<float>(real(a)*real(b) - imag(a)*imag(b), imag(a)*real(b) + real(a)*imag(b)); }
+
+template<> inline std::complex<double> pmul(const std::complex<double>& a, const std::complex<double>& b)
+{ return std::complex<double>(real(a)*real(b) - imag(a)*imag(b), imag(a)*real(b) + real(a)*imag(b)); }
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERIC_PACKET_MATH_H
+
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/GlobalFunctions.h b/vendor/eigen-3.2.8/Eigen/src/Core/GlobalFunctions.h
new file mode 100644
index 0000000..2acf977
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/GlobalFunctions.h
@@ -0,0 +1,92 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010-2012 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GLOBAL_FUNCTIONS_H
+#define EIGEN_GLOBAL_FUNCTIONS_H
+
+#define EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(NAME,FUNCTOR) \
+  template<typename Derived> \
+  inline const Eigen::CwiseUnaryOp<Eigen::internal::FUNCTOR<typename Derived::Scalar>, const Derived> \
+  NAME(const Eigen::ArrayBase<Derived>& x) { \
+    return x.derived(); \
+  }
+
+#define EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(NAME,FUNCTOR) \
+  \
+  template<typename Derived> \
+  struct NAME##_retval<ArrayBase<Derived> > \
+  { \
+    typedef const Eigen::CwiseUnaryOp<Eigen::internal::FUNCTOR<typename Derived::Scalar>, const Derived> type; \
+  }; \
+  template<typename Derived> \
+  struct NAME##_impl<ArrayBase<Derived> > \
+  { \
+    static inline typename NAME##_retval<ArrayBase<Derived> >::type run(const Eigen::ArrayBase<Derived>& x) \
+    { \
+      return x.derived(); \
+    } \
+  };
+
+
+namespace Eigen
+{
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(real,scalar_real_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(imag,scalar_imag_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(conj,scalar_conjugate_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(sin,scalar_sin_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(cos,scalar_cos_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(asin,scalar_asin_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(acos,scalar_acos_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(tan,scalar_tan_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(exp,scalar_exp_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(log,scalar_log_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(abs,scalar_abs_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(sqrt,scalar_sqrt_op)
+  
+  template<typename Derived>
+  inline const Eigen::CwiseUnaryOp<Eigen::internal::scalar_pow_op<typename Derived::Scalar>, const Derived>
+  pow(const Eigen::ArrayBase<Derived>& x, const typename Derived::Scalar& exponent) {
+    return x.derived().pow(exponent);
+  }
+
+  template<typename Derived>
+  inline const Eigen::CwiseBinaryOp<Eigen::internal::scalar_binary_pow_op<typename Derived::Scalar, typename Derived::Scalar>, const Derived, const Derived>
+  pow(const Eigen::ArrayBase<Derived>& x, const Eigen::ArrayBase<Derived>& exponents) 
+  {
+    return Eigen::CwiseBinaryOp<Eigen::internal::scalar_binary_pow_op<typename Derived::Scalar, typename Derived::Scalar>, const Derived, const Derived>(
+      x.derived(),
+      exponents.derived()
+    );
+  }
+  
+  /**
+  * \brief Component-wise division of a scalar by array elements.
+  **/
+  template <typename Derived>
+  inline const Eigen::CwiseUnaryOp<Eigen::internal::scalar_inverse_mult_op<typename Derived::Scalar>, const Derived>
+    operator/(const typename Derived::Scalar& s, const Eigen::ArrayBase<Derived>& a)
+  {
+    return Eigen::CwiseUnaryOp<Eigen::internal::scalar_inverse_mult_op<typename Derived::Scalar>, const Derived>(
+      a.derived(),
+      Eigen::internal::scalar_inverse_mult_op<typename Derived::Scalar>(s)  
+    );
+  }
+
+  namespace internal
+  {
+    EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(real,scalar_real_op)
+    EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(imag,scalar_imag_op)
+    EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(abs2,scalar_abs2_op)
+  }
+}
+
+// TODO: cleanly disable those functions that are not supported on Array (numext::real_ref, internal::random, internal::isApprox...)
+
+#endif // EIGEN_GLOBAL_FUNCTIONS_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/IO.h b/vendor/eigen-3.2.8/Eigen/src/Core/IO.h
new file mode 100644
index 0000000..8d4bc59
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/IO.h
@@ -0,0 +1,250 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_IO_H
+#define EIGEN_IO_H
+
+namespace Eigen { 
+
+enum { DontAlignCols = 1 };
+enum { StreamPrecision = -1,
+       FullPrecision = -2 };
+
+namespace internal {
+template<typename Derived>
+std::ostream & print_matrix(std::ostream & s, const Derived& _m, const IOFormat& fmt);
+}
+
+/** \class IOFormat
+  * \ingroup Core_Module
+  *
+  * \brief Stores a set of parameters controlling the way matrices are printed
+  *
+  * List of available parameters:
+  *  - \b precision number of digits for floating point values, or one of the special constants \c StreamPrecision and \c FullPrecision.
+  *                 The default is the special value \c StreamPrecision which means to use the
+  *                 stream's own precision setting, as set for instance using \c cout.precision(3). The other special value
+  *                 \c FullPrecision means that the number of digits will be computed to match the full precision of each floating-point
+  *                 type.
+  *  - \b flags an OR-ed combination of flags, the default value is 0, the only currently available flag is \c DontAlignCols which
+  *             allows to disable the alignment of columns, resulting in faster code.
+  *  - \b coeffSeparator string printed between two coefficients of the same row
+  *  - \b rowSeparator string printed between two rows
+  *  - \b rowPrefix string printed at the beginning of each row
+  *  - \b rowSuffix string printed at the end of each row
+  *  - \b matPrefix string printed at the beginning of the matrix
+  *  - \b matSuffix string printed at the end of the matrix
+  *
+  * Example: \include IOFormat.cpp
+  * Output: \verbinclude IOFormat.out
+  *
+  * \sa DenseBase::format(), class WithFormat
+  */
+struct IOFormat
+{
+  /** Default contructor, see class IOFormat for the meaning of the parameters */
+  IOFormat(int _precision = StreamPrecision, int _flags = 0,
+    const std::string& _coeffSeparator = " ",
+    const std::string& _rowSeparator = "\n", const std::string& _rowPrefix="", const std::string& _rowSuffix="",
+    const std::string& _matPrefix="", const std::string& _matSuffix="")
+  : matPrefix(_matPrefix), matSuffix(_matSuffix), rowPrefix(_rowPrefix), rowSuffix(_rowSuffix), rowSeparator(_rowSeparator),
+    rowSpacer(""), coeffSeparator(_coeffSeparator), precision(_precision), flags(_flags)
+  {
+    int i = int(matSuffix.length())-1;
+    while (i>=0 && matSuffix[i]!='\n')
+    {
+      rowSpacer += ' ';
+      i--;
+    }
+  }
+  std::string matPrefix, matSuffix;
+  std::string rowPrefix, rowSuffix, rowSeparator, rowSpacer;
+  std::string coeffSeparator;
+  int precision;
+  int flags;
+};
+
+/** \class WithFormat
+  * \ingroup Core_Module
+  *
+  * \brief Pseudo expression providing matrix output with given format
+  *
+  * \param ExpressionType the type of the object on which IO stream operations are performed
+  *
+  * This class represents an expression with stream operators controlled by a given IOFormat.
+  * It is the return type of DenseBase::format()
+  * and most of the time this is the only way it is used.
+  *
+  * See class IOFormat for some examples.
+  *
+  * \sa DenseBase::format(), class IOFormat
+  */
+template<typename ExpressionType>
+class WithFormat
+{
+  public:
+
+    WithFormat(const ExpressionType& matrix, const IOFormat& format)
+      : m_matrix(matrix), m_format(format)
+    {}
+
+    friend std::ostream & operator << (std::ostream & s, const WithFormat& wf)
+    {
+      return internal::print_matrix(s, wf.m_matrix.eval(), wf.m_format);
+    }
+
+  protected:
+    const typename ExpressionType::Nested m_matrix;
+    IOFormat m_format;
+};
+
+/** \returns a WithFormat proxy object allowing to print a matrix the with given
+  * format \a fmt.
+  *
+  * See class IOFormat for some examples.
+  *
+  * \sa class IOFormat, class WithFormat
+  */
+template<typename Derived>
+inline const WithFormat<Derived>
+DenseBase<Derived>::format(const IOFormat& fmt) const
+{
+  return WithFormat<Derived>(derived(), fmt);
+}
+
+namespace internal {
+
+template<typename Scalar, bool IsInteger>
+struct significant_decimals_default_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline int run()
+  {
+    using std::ceil;
+    using std::log;
+    return cast<RealScalar,int>(ceil(-log(NumTraits<RealScalar>::epsilon())/log(RealScalar(10))));
+  }
+};
+
+template<typename Scalar>
+struct significant_decimals_default_impl<Scalar, true>
+{
+  static inline int run()
+  {
+    return 0;
+  }
+};
+
+template<typename Scalar>
+struct significant_decimals_impl
+  : significant_decimals_default_impl<Scalar, NumTraits<Scalar>::IsInteger>
+{};
+
+/** \internal
+  * print the matrix \a _m to the output stream \a s using the output format \a fmt */
+template<typename Derived>
+std::ostream & print_matrix(std::ostream & s, const Derived& _m, const IOFormat& fmt)
+{
+  if(_m.size() == 0)
+  {
+    s << fmt.matPrefix << fmt.matSuffix;
+    return s;
+  }
+  
+  typename Derived::Nested m = _m;
+  typedef typename Derived::Scalar Scalar;
+  typedef typename Derived::Index Index;
+
+  Index width = 0;
+
+  std::streamsize explicit_precision;
+  if(fmt.precision == StreamPrecision)
+  {
+    explicit_precision = 0;
+  }
+  else if(fmt.precision == FullPrecision)
+  {
+    if (NumTraits<Scalar>::IsInteger)
+    {
+      explicit_precision = 0;
+    }
+    else
+    {
+      explicit_precision = significant_decimals_impl<Scalar>::run();
+    }
+  }
+  else
+  {
+    explicit_precision = fmt.precision;
+  }
+
+  std::streamsize old_precision = 0;
+  if(explicit_precision) old_precision = s.precision(explicit_precision);
+
+  bool align_cols = !(fmt.flags & DontAlignCols);
+  if(align_cols)
+  {
+    // compute the largest width
+    for(Index j = 0; j < m.cols(); ++j)
+      for(Index i = 0; i < m.rows(); ++i)
+      {
+        std::stringstream sstr;
+        sstr.copyfmt(s);
+        sstr << m.coeff(i,j);
+        width = std::max<Index>(width, Index(sstr.str().length()));
+      }
+  }
+  s << fmt.matPrefix;
+  for(Index i = 0; i < m.rows(); ++i)
+  {
+    if (i)
+      s << fmt.rowSpacer;
+    s << fmt.rowPrefix;
+    if(width) s.width(width);
+    s << m.coeff(i, 0);
+    for(Index j = 1; j < m.cols(); ++j)
+    {
+      s << fmt.coeffSeparator;
+      if (width) s.width(width);
+      s << m.coeff(i, j);
+    }
+    s << fmt.rowSuffix;
+    if( i < m.rows() - 1)
+      s << fmt.rowSeparator;
+  }
+  s << fmt.matSuffix;
+  if(explicit_precision) s.precision(old_precision);
+  return s;
+}
+
+} // end namespace internal
+
+/** \relates DenseBase
+  *
+  * Outputs the matrix, to the given stream.
+  *
+  * If you wish to print the matrix with a format different than the default, use DenseBase::format().
+  *
+  * It is also possible to change the default format by defining EIGEN_DEFAULT_IO_FORMAT before including Eigen headers.
+  * If not defined, this will automatically be defined to Eigen::IOFormat(), that is the Eigen::IOFormat with default parameters.
+  *
+  * \sa DenseBase::format()
+  */
+template<typename Derived>
+std::ostream & operator <<
+(std::ostream & s,
+ const DenseBase<Derived> & m)
+{
+  return internal::print_matrix(s, m.eval(), EIGEN_DEFAULT_IO_FORMAT);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_IO_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Map.h b/vendor/eigen-3.2.8/Eigen/src/Core/Map.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/Map.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/Map.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/MapBase.h b/vendor/eigen-3.2.8/Eigen/src/Core/MapBase.h
new file mode 100644
index 0000000..81efc4a
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/MapBase.h
@@ -0,0 +1,251 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MAPBASE_H
+#define EIGEN_MAPBASE_H
+
+#define EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived) \
+      EIGEN_STATIC_ASSERT((int(internal::traits<Derived>::Flags) & LinearAccessBit) || Derived::IsVectorAtCompileTime, \
+                          YOU_ARE_TRYING_TO_USE_AN_INDEX_BASED_ACCESSOR_ON_AN_EXPRESSION_THAT_DOES_NOT_SUPPORT_THAT)
+
+namespace Eigen { 
+
+/** \class MapBase
+  * \ingroup Core_Module
+  *
+  * \brief Base class for Map and Block expression with direct access
+  *
+  * \sa class Map, class Block
+  */
+template<typename Derived> class MapBase<Derived, ReadOnlyAccessors>
+  : public internal::dense_xpr_base<Derived>::type
+{
+  public:
+
+    typedef typename internal::dense_xpr_base<Derived>::type Base;
+    enum {
+      RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+      ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+      SizeAtCompileTime = Base::SizeAtCompileTime
+    };
+
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef typename internal::conditional<
+                         bool(internal::is_lvalue<Derived>::value),
+                         Scalar *,
+                         const Scalar *>::type
+                     PointerType;
+
+    using Base::derived;
+//    using Base::RowsAtCompileTime;
+//    using Base::ColsAtCompileTime;
+//    using Base::SizeAtCompileTime;
+    using Base::MaxRowsAtCompileTime;
+    using Base::MaxColsAtCompileTime;
+    using Base::MaxSizeAtCompileTime;
+    using Base::IsVectorAtCompileTime;
+    using Base::Flags;
+    using Base::IsRowMajor;
+
+    using Base::rows;
+    using Base::cols;
+    using Base::size;
+    using Base::coeff;
+    using Base::coeffRef;
+    using Base::lazyAssign;
+    using Base::eval;
+
+    using Base::innerStride;
+    using Base::outerStride;
+    using Base::rowStride;
+    using Base::colStride;
+
+    // bug 217 - compile error on ICC 11.1
+    using Base::operator=;
+
+    typedef typename Base::CoeffReturnType CoeffReturnType;
+
+    inline Index rows() const { return m_rows.value(); }
+    inline Index cols() const { return m_cols.value(); }
+
+    /** Returns a pointer to the first coefficient of the matrix or vector.
+      *
+      * \note When addressing this data, make sure to honor the strides returned by innerStride() and outerStride().
+      *
+      * \sa innerStride(), outerStride()
+      */
+    inline const Scalar* data() const { return m_data; }
+
+    inline const Scalar& coeff(Index rowId, Index colId) const
+    {
+      return m_data[colId * colStride() + rowId * rowStride()];
+    }
+
+    inline const Scalar& coeff(Index index) const
+    {
+      EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
+      return m_data[index * innerStride()];
+    }
+
+    inline const Scalar& coeffRef(Index rowId, Index colId) const
+    {
+      return this->m_data[colId * colStride() + rowId * rowStride()];
+    }
+
+    inline const Scalar& coeffRef(Index index) const
+    {
+      EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
+      return this->m_data[index * innerStride()];
+    }
+
+    template<int LoadMode>
+    inline PacketScalar packet(Index rowId, Index colId) const
+    {
+      return internal::ploadt<PacketScalar, LoadMode>
+               (m_data + (colId * colStride() + rowId * rowStride()));
+    }
+
+    template<int LoadMode>
+    inline PacketScalar packet(Index index) const
+    {
+      EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
+      return internal::ploadt<PacketScalar, LoadMode>(m_data + index * innerStride());
+    }
+
+    explicit inline MapBase(PointerType dataPtr) : m_data(dataPtr), m_rows(RowsAtCompileTime), m_cols(ColsAtCompileTime)
+    {
+      EIGEN_STATIC_ASSERT_FIXED_SIZE(Derived)
+      checkSanity();
+    }
+
+    inline MapBase(PointerType dataPtr, Index vecSize)
+            : m_data(dataPtr),
+              m_rows(RowsAtCompileTime == Dynamic ? vecSize : Index(RowsAtCompileTime)),
+              m_cols(ColsAtCompileTime == Dynamic ? vecSize : Index(ColsAtCompileTime))
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+      eigen_assert(vecSize >= 0);
+      eigen_assert(dataPtr == 0 || SizeAtCompileTime == Dynamic || SizeAtCompileTime == vecSize);
+      checkSanity();
+    }
+
+    inline MapBase(PointerType dataPtr, Index nbRows, Index nbCols)
+            : m_data(dataPtr), m_rows(nbRows), m_cols(nbCols)
+    {
+      eigen_assert( (dataPtr == 0)
+              || (   nbRows >= 0 && (RowsAtCompileTime == Dynamic || RowsAtCompileTime == nbRows)
+                  && nbCols >= 0 && (ColsAtCompileTime == Dynamic || ColsAtCompileTime == nbCols)));
+      checkSanity();
+    }
+
+    #ifdef EIGEN_MAPBASE_PLUGIN
+    #include EIGEN_MAPBASE_PLUGIN
+    #endif
+
+  protected:
+
+    void checkSanity() const
+    {
+      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(internal::traits<Derived>::Flags&PacketAccessBit,
+                                        internal::inner_stride_at_compile_time<Derived>::ret==1),
+                          PACKET_ACCESS_REQUIRES_TO_HAVE_INNER_STRIDE_FIXED_TO_1);
+      eigen_assert(EIGEN_IMPLIES(internal::traits<Derived>::Flags&AlignedBit, (size_t(m_data) % 16) == 0)
+                   && "input pointer is not aligned on a 16 byte boundary");
+    }
+
+    PointerType m_data;
+    const internal::variable_if_dynamic<Index, RowsAtCompileTime> m_rows;
+    const internal::variable_if_dynamic<Index, ColsAtCompileTime> m_cols;
+};
+
+template<typename Derived> class MapBase<Derived, WriteAccessors>
+  : public MapBase<Derived, ReadOnlyAccessors>
+{
+    typedef MapBase<Derived, ReadOnlyAccessors> ReadOnlyMapBase;
+  public:
+
+    typedef MapBase<Derived, ReadOnlyAccessors> Base;
+
+    typedef typename Base::Scalar Scalar;
+    typedef typename Base::PacketScalar PacketScalar;
+    typedef typename Base::Index Index;
+    typedef typename Base::PointerType PointerType;
+
+    using Base::derived;
+    using Base::rows;
+    using Base::cols;
+    using Base::size;
+    using Base::coeff;
+    using Base::coeffRef;
+
+    using Base::innerStride;
+    using Base::outerStride;
+    using Base::rowStride;
+    using Base::colStride;
+
+    typedef typename internal::conditional<
+                    internal::is_lvalue<Derived>::value,
+                    Scalar,
+                    const Scalar
+                  >::type ScalarWithConstIfNotLvalue;
+
+    inline const Scalar* data() const { return this->m_data; }
+    inline ScalarWithConstIfNotLvalue* data() { return this->m_data; } // no const-cast here so non-const-correct code will give a compile error
+
+    inline ScalarWithConstIfNotLvalue& coeffRef(Index row, Index col)
+    {
+      return this->m_data[col * colStride() + row * rowStride()];
+    }
+
+    inline ScalarWithConstIfNotLvalue& coeffRef(Index index)
+    {
+      EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
+      return this->m_data[index * innerStride()];
+    }
+
+    template<int StoreMode>
+    inline void writePacket(Index row, Index col, const PacketScalar& val)
+    {
+      internal::pstoret<Scalar, PacketScalar, StoreMode>
+               (this->m_data + (col * colStride() + row * rowStride()), val);
+    }
+
+    template<int StoreMode>
+    inline void writePacket(Index index, const PacketScalar& val)
+    {
+      EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
+      internal::pstoret<Scalar, PacketScalar, StoreMode>
+                (this->m_data + index * innerStride(), val);
+    }
+
+    explicit inline MapBase(PointerType dataPtr) : Base(dataPtr) {}
+    inline MapBase(PointerType dataPtr, Index vecSize) : Base(dataPtr, vecSize) {}
+    inline MapBase(PointerType dataPtr, Index nbRows, Index nbCols) : Base(dataPtr, nbRows, nbCols) {}
+
+    Derived& operator=(const MapBase& other)
+    {
+      ReadOnlyMapBase::Base::operator=(other);
+      return derived();
+    }
+
+    // In theory we could simply refer to Base:Base::operator=, but MSVC does not like Base::Base,
+    // see bugs 821 and 920.
+    using ReadOnlyMapBase::Base::operator=;
+};
+
+#undef EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS
+
+} // end namespace Eigen
+
+#endif // EIGEN_MAPBASE_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/MathFunctions.h b/vendor/eigen-3.2.8/Eigen/src/Core/MathFunctions.h
new file mode 100644
index 0000000..4e17ecd
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/MathFunctions.h
@@ -0,0 +1,768 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATHFUNCTIONS_H
+#define EIGEN_MATHFUNCTIONS_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal \struct global_math_functions_filtering_base
+  *
+  * What it does:
+  * Defines a typedef 'type' as follows:
+  * - if type T has a member typedef Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl, then
+  *   global_math_functions_filtering_base<T>::type is a typedef for it.
+  * - otherwise, global_math_functions_filtering_base<T>::type is a typedef for T.
+  *
+  * How it's used:
+  * To allow to defined the global math functions (like sin...) in certain cases, like the Array expressions.
+  * When you do sin(array1+array2), the object array1+array2 has a complicated expression type, all what you want to know
+  * is that it inherits ArrayBase. So we implement a partial specialization of sin_impl for ArrayBase<Derived>.
+  * So we must make sure to use sin_impl<ArrayBase<Derived> > and not sin_impl<Derived>, otherwise our partial specialization
+  * won't be used. How does sin know that? That's exactly what global_math_functions_filtering_base tells it.
+  *
+  * How it's implemented:
+  * SFINAE in the style of enable_if. Highly susceptible of breaking compilers. With GCC, it sure does work, but if you replace
+  * the typename dummy by an integer template parameter, it doesn't work anymore!
+  */
+
+template<typename T, typename dummy = void>
+struct global_math_functions_filtering_base
+{
+  typedef T type;
+};
+
+template<typename T> struct always_void { typedef void type; };
+
+template<typename T>
+struct global_math_functions_filtering_base
+  <T,
+   typename always_void<typename T::Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl>::type
+  >
+{
+  typedef typename T::Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl type;
+};
+
+#define EIGEN_MATHFUNC_IMPL(func, scalar) Eigen::internal::func##_impl<typename Eigen::internal::global_math_functions_filtering_base<scalar>::type>
+#define EIGEN_MATHFUNC_RETVAL(func, scalar) typename Eigen::internal::func##_retval<typename Eigen::internal::global_math_functions_filtering_base<scalar>::type>::type
+
+/****************************************************************************
+* Implementation of real                                                 *
+****************************************************************************/
+
+template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
+struct real_default_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar& x)
+  {
+    return x;
+  }
+};
+
+template<typename Scalar>
+struct real_default_impl<Scalar,true>
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar& x)
+  {
+    using std::real;
+    return real(x);
+  }
+};
+
+template<typename Scalar> struct real_impl : real_default_impl<Scalar> {};
+
+template<typename Scalar>
+struct real_retval
+{
+  typedef typename NumTraits<Scalar>::Real type;
+};
+
+
+/****************************************************************************
+* Implementation of imag                                                 *
+****************************************************************************/
+
+template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
+struct imag_default_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar&)
+  {
+    return RealScalar(0);
+  }
+};
+
+template<typename Scalar>
+struct imag_default_impl<Scalar,true>
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar& x)
+  {
+    using std::imag;
+    return imag(x);
+  }
+};
+
+template<typename Scalar> struct imag_impl : imag_default_impl<Scalar> {};
+
+template<typename Scalar>
+struct imag_retval
+{
+  typedef typename NumTraits<Scalar>::Real type;
+};
+
+/****************************************************************************
+* Implementation of real_ref                                             *
+****************************************************************************/
+
+template<typename Scalar>
+struct real_ref_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar& run(Scalar& x)
+  {
+    return reinterpret_cast<RealScalar*>(&x)[0];
+  }
+  static inline const RealScalar& run(const Scalar& x)
+  {
+    return reinterpret_cast<const RealScalar*>(&x)[0];
+  }
+};
+
+template<typename Scalar>
+struct real_ref_retval
+{
+  typedef typename NumTraits<Scalar>::Real & type;
+};
+
+/****************************************************************************
+* Implementation of imag_ref                                             *
+****************************************************************************/
+
+template<typename Scalar, bool IsComplex>
+struct imag_ref_default_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar& run(Scalar& x)
+  {
+    return reinterpret_cast<RealScalar*>(&x)[1];
+  }
+  static inline const RealScalar& run(const Scalar& x)
+  {
+    return reinterpret_cast<RealScalar*>(&x)[1];
+  }
+};
+
+template<typename Scalar>
+struct imag_ref_default_impl<Scalar, false>
+{
+  static inline Scalar run(Scalar&)
+  {
+    return Scalar(0);
+  }
+  static inline const Scalar run(const Scalar&)
+  {
+    return Scalar(0);
+  }
+};
+
+template<typename Scalar>
+struct imag_ref_impl : imag_ref_default_impl<Scalar, NumTraits<Scalar>::IsComplex> {};
+
+template<typename Scalar>
+struct imag_ref_retval
+{
+  typedef typename NumTraits<Scalar>::Real & type;
+};
+
+/****************************************************************************
+* Implementation of conj                                                 *
+****************************************************************************/
+
+template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
+struct conj_impl
+{
+  static inline Scalar run(const Scalar& x)
+  {
+    return x;
+  }
+};
+
+template<typename Scalar>
+struct conj_impl<Scalar,true>
+{
+  static inline Scalar run(const Scalar& x)
+  {
+    using std::conj;
+    return conj(x);
+  }
+};
+
+template<typename Scalar>
+struct conj_retval
+{
+  typedef Scalar type;
+};
+
+/****************************************************************************
+* Implementation of abs2                                                 *
+****************************************************************************/
+
+template<typename Scalar>
+struct abs2_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar& x)
+  {
+    return x*x;
+  }
+};
+
+template<typename RealScalar>
+struct abs2_impl<std::complex<RealScalar> >
+{
+  static inline RealScalar run(const std::complex<RealScalar>& x)
+  {
+    return real(x)*real(x) + imag(x)*imag(x);
+  }
+};
+
+template<typename Scalar>
+struct abs2_retval
+{
+  typedef typename NumTraits<Scalar>::Real type;
+};
+
+/****************************************************************************
+* Implementation of norm1                                                *
+****************************************************************************/
+
+template<typename Scalar, bool IsComplex>
+struct norm1_default_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar& x)
+  {
+    using std::abs;
+    return abs(real(x)) + abs(imag(x));
+  }
+};
+
+template<typename Scalar>
+struct norm1_default_impl<Scalar, false>
+{
+  static inline Scalar run(const Scalar& x)
+  {
+    using std::abs;
+    return abs(x);
+  }
+};
+
+template<typename Scalar>
+struct norm1_impl : norm1_default_impl<Scalar, NumTraits<Scalar>::IsComplex> {};
+
+template<typename Scalar>
+struct norm1_retval
+{
+  typedef typename NumTraits<Scalar>::Real type;
+};
+
+/****************************************************************************
+* Implementation of hypot                                                *
+****************************************************************************/
+
+template<typename Scalar>
+struct hypot_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar& x, const Scalar& y)
+  {
+    using std::max;
+    using std::min;
+    using std::abs;
+    using std::sqrt;
+    RealScalar _x = abs(x);
+    RealScalar _y = abs(y);
+    RealScalar p = (max)(_x, _y);
+    if(p==RealScalar(0)) return RealScalar(0);
+    RealScalar q = (min)(_x, _y);
+    RealScalar qp = q/p;
+    return p * sqrt(RealScalar(1) + qp*qp);
+  }
+};
+
+template<typename Scalar>
+struct hypot_retval
+{
+  typedef typename NumTraits<Scalar>::Real type;
+};
+
+/****************************************************************************
+* Implementation of cast                                                 *
+****************************************************************************/
+
+template<typename OldType, typename NewType>
+struct cast_impl
+{
+  static inline NewType run(const OldType& x)
+  {
+    return static_cast<NewType>(x);
+  }
+};
+
+// here, for once, we're plainly returning NewType: we don't want cast to do weird things.
+
+template<typename OldType, typename NewType>
+inline NewType cast(const OldType& x)
+{
+  return cast_impl<OldType, NewType>::run(x);
+}
+
+/****************************************************************************
+* Implementation of atanh2                                                *
+****************************************************************************/
+
+template<typename Scalar, bool IsInteger>
+struct atanh2_default_impl
+{
+  typedef Scalar retval;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline Scalar run(const Scalar& x, const Scalar& y)
+  {
+    using std::abs;
+    using std::log;
+    using std::sqrt;
+    Scalar z = x / y;
+    if (y == Scalar(0) || abs(z) > sqrt(NumTraits<RealScalar>::epsilon()))
+      return RealScalar(0.5) * log((y + x) / (y - x));
+    else
+      return z + z*z*z / RealScalar(3);
+  }
+};
+
+template<typename Scalar>
+struct atanh2_default_impl<Scalar, true>
+{
+  static inline Scalar run(const Scalar&, const Scalar&)
+  {
+    EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar)
+    return Scalar(0);
+  }
+};
+
+template<typename Scalar>
+struct atanh2_impl : atanh2_default_impl<Scalar, NumTraits<Scalar>::IsInteger> {};
+
+template<typename Scalar>
+struct atanh2_retval
+{
+  typedef Scalar type;
+};
+
+/****************************************************************************
+* Implementation of pow                                                  *
+****************************************************************************/
+
+template<typename Scalar, bool IsInteger>
+struct pow_default_impl
+{
+  typedef Scalar retval;
+  static inline Scalar run(const Scalar& x, const Scalar& y)
+  {
+    using std::pow;
+    return pow(x, y);
+  }
+};
+
+template<typename Scalar>
+struct pow_default_impl<Scalar, true>
+{
+  static inline Scalar run(Scalar x, Scalar y)
+  {
+    Scalar res(1);
+    eigen_assert(!NumTraits<Scalar>::IsSigned || y >= 0);
+    if(y & 1) res *= x;
+    y >>= 1;
+    while(y)
+    {
+      x *= x;
+      if(y&1) res *= x;
+      y >>= 1;
+    }
+    return res;
+  }
+};
+
+template<typename Scalar>
+struct pow_impl : pow_default_impl<Scalar, NumTraits<Scalar>::IsInteger> {};
+
+template<typename Scalar>
+struct pow_retval
+{
+  typedef Scalar type;
+};
+
+/****************************************************************************
+* Implementation of random                                               *
+****************************************************************************/
+
+template<typename Scalar,
+         bool IsComplex,
+         bool IsInteger>
+struct random_default_impl {};
+
+template<typename Scalar>
+struct random_impl : random_default_impl<Scalar, NumTraits<Scalar>::IsComplex, NumTraits<Scalar>::IsInteger> {};
+
+template<typename Scalar>
+struct random_retval
+{
+  typedef Scalar type;
+};
+
+template<typename Scalar> inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random(const Scalar& x, const Scalar& y);
+template<typename Scalar> inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random();
+
+template<typename Scalar>
+struct random_default_impl<Scalar, false, false>
+{
+  static inline Scalar run(const Scalar& x, const Scalar& y)
+  {
+    return x + (y-x) * Scalar(std::rand()) / Scalar(RAND_MAX);
+  }
+  static inline Scalar run()
+  {
+    return run(Scalar(NumTraits<Scalar>::IsSigned ? -1 : 0), Scalar(1));
+  }
+};
+
+enum {
+  floor_log2_terminate,
+  floor_log2_move_up,
+  floor_log2_move_down,
+  floor_log2_bogus
+};
+
+template<unsigned int n, int lower, int upper> struct floor_log2_selector
+{
+  enum { middle = (lower + upper) / 2,
+         value = (upper <= lower + 1) ? int(floor_log2_terminate)
+               : (n < (1 << middle)) ? int(floor_log2_move_down)
+               : (n==0) ? int(floor_log2_bogus)
+               : int(floor_log2_move_up)
+  };
+};
+
+template<unsigned int n,
+         int lower = 0,
+         int upper = sizeof(unsigned int) * CHAR_BIT - 1,
+         int selector = floor_log2_selector<n, lower, upper>::value>
+struct floor_log2 {};
+
+template<unsigned int n, int lower, int upper>
+struct floor_log2<n, lower, upper, floor_log2_move_down>
+{
+  enum { value = floor_log2<n, lower, floor_log2_selector<n, lower, upper>::middle>::value };
+};
+
+template<unsigned int n, int lower, int upper>
+struct floor_log2<n, lower, upper, floor_log2_move_up>
+{
+  enum { value = floor_log2<n, floor_log2_selector<n, lower, upper>::middle, upper>::value };
+};
+
+template<unsigned int n, int lower, int upper>
+struct floor_log2<n, lower, upper, floor_log2_terminate>
+{
+  enum { value = (n >= ((unsigned int)(1) << (lower+1))) ? lower+1 : lower };
+};
+
+template<unsigned int n, int lower, int upper>
+struct floor_log2<n, lower, upper, floor_log2_bogus>
+{
+  // no value, error at compile time
+};
+
+template<typename Scalar>
+struct random_default_impl<Scalar, false, true>
+{
+  typedef typename NumTraits<Scalar>::NonInteger NonInteger;
+
+  static inline Scalar run(const Scalar& x, const Scalar& y)
+  {
+    return x + Scalar((NonInteger(y)-x+1) * std::rand() / (RAND_MAX + NonInteger(1)));
+  }
+
+  static inline Scalar run()
+  {
+#ifdef EIGEN_MAKING_DOCS
+    return run(Scalar(NumTraits<Scalar>::IsSigned ? -10 : 0), Scalar(10));
+#else
+    enum { rand_bits = floor_log2<(unsigned int)(RAND_MAX)+1>::value,
+           scalar_bits = sizeof(Scalar) * CHAR_BIT,
+           shift = EIGEN_PLAIN_ENUM_MAX(0, int(rand_bits) - int(scalar_bits)),
+           offset = NumTraits<Scalar>::IsSigned ? (1 << (EIGEN_PLAIN_ENUM_MIN(rand_bits,scalar_bits)-1)) : 0
+    };
+    return Scalar((std::rand() >> shift) - offset);
+#endif
+  }
+};
+
+template<typename Scalar>
+struct random_default_impl<Scalar, true, false>
+{
+  static inline Scalar run(const Scalar& x, const Scalar& y)
+  {
+    return Scalar(random(real(x), real(y)),
+                  random(imag(x), imag(y)));
+  }
+  static inline Scalar run()
+  {
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    return Scalar(random<RealScalar>(), random<RealScalar>());
+  }
+};
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random(const Scalar& x, const Scalar& y)
+{
+  return EIGEN_MATHFUNC_IMPL(random, Scalar)::run(x, y);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random()
+{
+  return EIGEN_MATHFUNC_IMPL(random, Scalar)::run();
+}
+
+} // end namespace internal
+
+/****************************************************************************
+* Generic math function                                                    *
+****************************************************************************/
+
+namespace numext {
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(real, Scalar) real(const Scalar& x)
+{
+  return EIGEN_MATHFUNC_IMPL(real, Scalar)::run(x);
+}  
+
+template<typename Scalar>
+inline typename internal::add_const_on_value_type< EIGEN_MATHFUNC_RETVAL(real_ref, Scalar) >::type real_ref(const Scalar& x)
+{
+  return internal::real_ref_impl<Scalar>::run(x);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(real_ref, Scalar) real_ref(Scalar& x)
+{
+  return EIGEN_MATHFUNC_IMPL(real_ref, Scalar)::run(x);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(imag, Scalar) imag(const Scalar& x)
+{
+  return EIGEN_MATHFUNC_IMPL(imag, Scalar)::run(x);
+}
+
+template<typename Scalar>
+inline typename internal::add_const_on_value_type< EIGEN_MATHFUNC_RETVAL(imag_ref, Scalar) >::type imag_ref(const Scalar& x)
+{
+  return internal::imag_ref_impl<Scalar>::run(x);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(imag_ref, Scalar) imag_ref(Scalar& x)
+{
+  return EIGEN_MATHFUNC_IMPL(imag_ref, Scalar)::run(x);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(conj, Scalar) conj(const Scalar& x)
+{
+  return EIGEN_MATHFUNC_IMPL(conj, Scalar)::run(x);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(abs2, Scalar) abs2(const Scalar& x)
+{
+  return EIGEN_MATHFUNC_IMPL(abs2, Scalar)::run(x);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(norm1, Scalar) norm1(const Scalar& x)
+{
+  return EIGEN_MATHFUNC_IMPL(norm1, Scalar)::run(x);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(hypot, Scalar) hypot(const Scalar& x, const Scalar& y)
+{
+  return EIGEN_MATHFUNC_IMPL(hypot, Scalar)::run(x, y);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(atanh2, Scalar) atanh2(const Scalar& x, const Scalar& y)
+{
+  return EIGEN_MATHFUNC_IMPL(atanh2, Scalar)::run(x, y);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(pow, Scalar) pow(const Scalar& x, const Scalar& y)
+{
+  return EIGEN_MATHFUNC_IMPL(pow, Scalar)::run(x, y);
+}
+
+// std::isfinite is non standard, so let's define our own version,
+// even though it is not very efficient.
+template<typename T> bool (isfinite)(const T& x)
+{
+  return x<NumTraits<T>::highest() && x>NumTraits<T>::lowest();
+}
+
+} // end namespace numext
+
+namespace internal {
+
+/****************************************************************************
+* Implementation of fuzzy comparisons                                       *
+****************************************************************************/
+
+template<typename Scalar,
+         bool IsComplex,
+         bool IsInteger>
+struct scalar_fuzzy_default_impl {};
+
+template<typename Scalar>
+struct scalar_fuzzy_default_impl<Scalar, false, false>
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  template<typename OtherScalar>
+  static inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y, const RealScalar& prec)
+  {
+    using std::abs;
+    return abs(x) <= abs(y) * prec;
+  }
+  static inline bool isApprox(const Scalar& x, const Scalar& y, const RealScalar& prec)
+  {
+    using std::min;
+    using std::abs;
+    return abs(x - y) <= (min)(abs(x), abs(y)) * prec;
+  }
+  static inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y, const RealScalar& prec)
+  {
+    return x <= y || isApprox(x, y, prec);
+  }
+};
+
+template<typename Scalar>
+struct scalar_fuzzy_default_impl<Scalar, false, true>
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  template<typename OtherScalar>
+  static inline bool isMuchSmallerThan(const Scalar& x, const Scalar&, const RealScalar&)
+  {
+    return x == Scalar(0);
+  }
+  static inline bool isApprox(const Scalar& x, const Scalar& y, const RealScalar&)
+  {
+    return x == y;
+  }
+  static inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y, const RealScalar&)
+  {
+    return x <= y;
+  }
+};
+
+template<typename Scalar>
+struct scalar_fuzzy_default_impl<Scalar, true, false>
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  template<typename OtherScalar>
+  static inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y, const RealScalar& prec)
+  {
+    return numext::abs2(x) <= numext::abs2(y) * prec * prec;
+  }
+  static inline bool isApprox(const Scalar& x, const Scalar& y, const RealScalar& prec)
+  {
+    using std::min;
+    return numext::abs2(x - y) <= (min)(numext::abs2(x), numext::abs2(y)) * prec * prec;
+  }
+};
+
+template<typename Scalar>
+struct scalar_fuzzy_impl : scalar_fuzzy_default_impl<Scalar, NumTraits<Scalar>::IsComplex, NumTraits<Scalar>::IsInteger> {};
+
+template<typename Scalar, typename OtherScalar>
+inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y,
+                              const typename NumTraits<Scalar>::Real &precision = NumTraits<Scalar>::dummy_precision())
+{
+  return scalar_fuzzy_impl<Scalar>::template isMuchSmallerThan<OtherScalar>(x, y, precision);
+}
+
+template<typename Scalar>
+inline bool isApprox(const Scalar& x, const Scalar& y,
+                     const typename NumTraits<Scalar>::Real &precision = NumTraits<Scalar>::dummy_precision())
+{
+  return scalar_fuzzy_impl<Scalar>::isApprox(x, y, precision);
+}
+
+template<typename Scalar>
+inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y,
+                               const typename NumTraits<Scalar>::Real &precision = NumTraits<Scalar>::dummy_precision())
+{
+  return scalar_fuzzy_impl<Scalar>::isApproxOrLessThan(x, y, precision);
+}
+
+/******************************************
+***  The special case of the  bool type ***
+******************************************/
+
+template<> struct random_impl<bool>
+{
+  static inline bool run()
+  {
+    return random<int>(0,1)==0 ? false : true;
+  }
+};
+
+template<> struct scalar_fuzzy_impl<bool>
+{
+  typedef bool RealScalar;
+  
+  template<typename OtherScalar>
+  static inline bool isMuchSmallerThan(const bool& x, const bool&, const bool&)
+  {
+    return !x;
+  }
+  
+  static inline bool isApprox(bool x, bool y, bool)
+  {
+    return x == y;
+  }
+
+  static inline bool isApproxOrLessThan(const bool& x, const bool& y, const bool&)
+  {
+    return (!x) || y;
+  }
+  
+};
+
+  
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATHFUNCTIONS_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/Matrix.h b/vendor/eigen-3.2.8/Eigen/src/Core/Matrix.h
new file mode 100644
index 0000000..02be142
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/Matrix.h
@@ -0,0 +1,420 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIX_H
+#define EIGEN_MATRIX_H
+
+namespace Eigen {
+
+/** \class Matrix
+  * \ingroup Core_Module
+  *
+  * \brief The matrix class, also used for vectors and row-vectors
+  *
+  * The %Matrix class is the work-horse for all \em dense (\ref dense "note") matrices and vectors within Eigen.
+  * Vectors are matrices with one column, and row-vectors are matrices with one row.
+  *
+  * The %Matrix class encompasses \em both fixed-size and dynamic-size objects (\ref fixedsize "note").
+  *
+  * The first three template parameters are required:
+  * \tparam _Scalar \anchor matrix_tparam_scalar Numeric type, e.g. float, double, int or std::complex<float>.
+  *                 User defined sclar types are supported as well (see \ref user_defined_scalars "here").
+  * \tparam _Rows Number of rows, or \b Dynamic
+  * \tparam _Cols Number of columns, or \b Dynamic
+  *
+  * The remaining template parameters are optional -- in most cases you don't have to worry about them.
+  * \tparam _Options \anchor matrix_tparam_options A combination of either \b #RowMajor or \b #ColMajor, and of either
+  *                 \b #AutoAlign or \b #DontAlign.
+  *                 The former controls \ref TopicStorageOrders "storage order", and defaults to column-major. The latter controls alignment, which is required
+  *                 for vectorization. It defaults to aligning matrices except for fixed sizes that aren't a multiple of the packet size.
+  * \tparam _MaxRows Maximum number of rows. Defaults to \a _Rows (\ref maxrows "note").
+  * \tparam _MaxCols Maximum number of columns. Defaults to \a _Cols (\ref maxrows "note").
+  *
+  * Eigen provides a number of typedefs covering the usual cases. Here are some examples:
+  *
+  * \li \c Matrix2d is a 2x2 square matrix of doubles (\c Matrix<double, 2, 2>)
+  * \li \c Vector4f is a vector of 4 floats (\c Matrix<float, 4, 1>)
+  * \li \c RowVector3i is a row-vector of 3 ints (\c Matrix<int, 1, 3>)
+  *
+  * \li \c MatrixXf is a dynamic-size matrix of floats (\c Matrix<float, Dynamic, Dynamic>)
+  * \li \c VectorXf is a dynamic-size vector of floats (\c Matrix<float, Dynamic, 1>)
+  *
+  * \li \c Matrix2Xf is a partially fixed-size (dynamic-size) matrix of floats (\c Matrix<float, 2, Dynamic>)
+  * \li \c MatrixX3d is a partially dynamic-size (fixed-size) matrix of double (\c Matrix<double, Dynamic, 3>)
+  *
+  * See \link matrixtypedefs this page \endlink for a complete list of predefined \em %Matrix and \em Vector typedefs.
+  *
+  * You can access elements of vectors and matrices using normal subscripting:
+  *
+  * \code
+  * Eigen::VectorXd v(10);
+  * v[0] = 0.1;
+  * v[1] = 0.2;
+  * v(0) = 0.3;
+  * v(1) = 0.4;
+  *
+  * Eigen::MatrixXi m(10, 10);
+  * m(0, 1) = 1;
+  * m(0, 2) = 2;
+  * m(0, 3) = 3;
+  * \endcode
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_MATRIX_PLUGIN.
+  *
+  * <i><b>Some notes:</b></i>
+  *
+  * <dl>
+  * <dt><b>\anchor dense Dense versus sparse:</b></dt>
+  * <dd>This %Matrix class handles dense, not sparse matrices and vectors. For sparse matrices and vectors, see the Sparse module.
+  *
+  * Dense matrices and vectors are plain usual arrays of coefficients. All the coefficients are stored, in an ordinary contiguous array.
+  * This is unlike Sparse matrices and vectors where the coefficients are stored as a list of nonzero coefficients.</dd>
+  *
+  * <dt><b>\anchor fixedsize Fixed-size versus dynamic-size:</b></dt>
+  * <dd>Fixed-size means that the numbers of rows and columns are known are compile-time. In this case, Eigen allocates the array
+  * of coefficients as a fixed-size array, as a class member. This makes sense for very small matrices, typically up to 4x4, sometimes up
+  * to 16x16. Larger matrices should be declared as dynamic-size even if one happens to know their size at compile-time.
+  *
+  * Dynamic-size means that the numbers of rows or columns are not necessarily known at compile-time. In this case they are runtime
+  * variables, and the array of coefficients is allocated dynamically on the heap.
+  *
+  * Note that \em dense matrices, be they Fixed-size or Dynamic-size, <em>do not</em> expand dynamically in the sense of a std::map.
+  * If you want this behavior, see the Sparse module.</dd>
+  *
+  * <dt><b>\anchor maxrows _MaxRows and _MaxCols:</b></dt>
+  * <dd>In most cases, one just leaves these parameters to the default values.
+  * These parameters mean the maximum size of rows and columns that the matrix may have. They are useful in cases
+  * when the exact numbers of rows and columns are not known are compile-time, but it is known at compile-time that they cannot
+  * exceed a certain value. This happens when taking dynamic-size blocks inside fixed-size matrices: in this case _MaxRows and _MaxCols
+  * are the dimensions of the original matrix, while _Rows and _Cols are Dynamic.</dd>
+  * </dl>
+  *
+  * \see MatrixBase for the majority of the API methods for matrices, \ref TopicClassHierarchy, 
+  * \ref TopicStorageOrders 
+  */
+
+namespace internal {
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct traits<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+{
+  typedef _Scalar Scalar;
+  typedef Dense StorageKind;
+  typedef DenseIndex Index;
+  typedef MatrixXpr XprKind;
+  enum {
+    RowsAtCompileTime = _Rows,
+    ColsAtCompileTime = _Cols,
+    MaxRowsAtCompileTime = _MaxRows,
+    MaxColsAtCompileTime = _MaxCols,
+    Flags = compute_matrix_flags<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::ret,
+    CoeffReadCost = NumTraits<Scalar>::ReadCost,
+    Options = _Options,
+    InnerStrideAtCompileTime = 1,
+    OuterStrideAtCompileTime = (Options&RowMajor) ? ColsAtCompileTime : RowsAtCompileTime
+  };
+};
+}
+
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+class Matrix
+  : public PlainObjectBase<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+{
+  public:
+
+    /** \brief Base class typedef.
+      * \sa PlainObjectBase
+      */
+    typedef PlainObjectBase<Matrix> Base;
+
+    enum { Options = _Options };
+
+    EIGEN_DENSE_PUBLIC_INTERFACE(Matrix)
+
+    typedef typename Base::PlainObject PlainObject;
+
+    using Base::base;
+    using Base::coeffRef;
+
+    /**
+      * \brief Assigns matrices to each other.
+      *
+      * \note This is a special case of the templated operator=. Its purpose is
+      * to prevent a default operator= from hiding the templated operator=.
+      *
+      * \callgraph
+      */
+    EIGEN_STRONG_INLINE Matrix& operator=(const Matrix& other)
+    {
+      return Base::_set(other);
+    }
+
+    /** \internal
+      * \brief Copies the value of the expression \a other into \c *this with automatic resizing.
+      *
+      * *this might be resized to match the dimensions of \a other. If *this was a null matrix (not already initialized),
+      * it will be initialized.
+      *
+      * Note that copying a row-vector into a vector (and conversely) is allowed.
+      * The resizing, if any, is then done in the appropriate way so that row-vectors
+      * remain row-vectors and vectors remain vectors.
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Matrix& operator=(const MatrixBase<OtherDerived>& other)
+    {
+      return Base::_set(other);
+    }
+
+    /* Here, doxygen failed to copy the brief information when using \copydoc */
+
+    /**
+      * \brief Copies the generic expression \a other into *this.
+      * \copydetails DenseBase::operator=(const EigenBase<OtherDerived> &other)
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Matrix& operator=(const EigenBase<OtherDerived> &other)
+    {
+      return Base::operator=(other);
+    }
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Matrix& operator=(const ReturnByValue<OtherDerived>& func)
+    {
+      return Base::operator=(func);
+    }
+
+    /** \brief Default constructor.
+      *
+      * For fixed-size matrices, does nothing.
+      *
+      * For dynamic-size matrices, creates an empty matrix of size 0. Does not allocate any array. Such a matrix
+      * is called a null matrix. This constructor is the unique way to create null matrices: resizing
+      * a matrix to 0 is not supported.
+      *
+      * \sa resize(Index,Index)
+      */
+    EIGEN_STRONG_INLINE Matrix() : Base()
+    {
+      Base::_check_template_params();
+      EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+
+    // FIXME is it still needed
+    Matrix(internal::constructor_without_unaligned_array_assert)
+      : Base(internal::constructor_without_unaligned_array_assert())
+    { Base::_check_template_params(); EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED }
+
+#ifdef EIGEN_HAVE_RVALUE_REFERENCES
+    Matrix(Matrix&& other)
+      : Base(std::move(other))
+    {
+      Base::_check_template_params();
+      if (RowsAtCompileTime!=Dynamic && ColsAtCompileTime!=Dynamic)
+        Base::_set_noalias(other);
+    }
+    Matrix& operator=(Matrix&& other)
+    {
+      other.swap(*this);
+      return *this;
+    }
+#endif
+
+    /** \brief Constructs a vector or row-vector with given dimension. \only_for_vectors
+      *
+      * Note that this is only useful for dynamic-size vectors. For fixed-size vectors,
+      * it is redundant to pass the dimension here, so it makes more sense to use the default
+      * constructor Matrix() instead.
+      */
+    EIGEN_STRONG_INLINE explicit Matrix(Index dim)
+      : Base(dim, RowsAtCompileTime == 1 ? 1 : dim, ColsAtCompileTime == 1 ? 1 : dim)
+    {
+      Base::_check_template_params();
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(Matrix)
+      eigen_assert(dim >= 0);
+      eigen_assert(SizeAtCompileTime == Dynamic || SizeAtCompileTime == dim);
+      EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename T0, typename T1>
+    EIGEN_STRONG_INLINE Matrix(const T0& x, const T1& y)
+    {
+      Base::_check_template_params();
+      Base::template _init2<T0,T1>(x, y);
+    }
+    #else
+    /** \brief Constructs an uninitialized matrix with \a rows rows and \a cols columns.
+      *
+      * This is useful for dynamic-size matrices. For fixed-size matrices,
+      * it is redundant to pass these parameters, so one should use the default constructor
+      * Matrix() instead. */
+    Matrix(Index rows, Index cols);
+    /** \brief Constructs an initialized 2D vector with given coefficients */
+    Matrix(const Scalar& x, const Scalar& y);
+    #endif
+
+    /** \brief Constructs an initialized 3D vector with given coefficients */
+    EIGEN_STRONG_INLINE Matrix(const Scalar& x, const Scalar& y, const Scalar& z)
+    {
+      Base::_check_template_params();
+      EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Matrix, 3)
+      m_storage.data()[0] = x;
+      m_storage.data()[1] = y;
+      m_storage.data()[2] = z;
+    }
+    /** \brief Constructs an initialized 4D vector with given coefficients */
+    EIGEN_STRONG_INLINE Matrix(const Scalar& x, const Scalar& y, const Scalar& z, const Scalar& w)
+    {
+      Base::_check_template_params();
+      EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Matrix, 4)
+      m_storage.data()[0] = x;
+      m_storage.data()[1] = y;
+      m_storage.data()[2] = z;
+      m_storage.data()[3] = w;
+    }
+
+    explicit Matrix(const Scalar *data);
+
+    /** \brief Constructor copying the value of the expression \a other */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Matrix(const MatrixBase<OtherDerived>& other)
+             : Base(other.rows() * other.cols(), other.rows(), other.cols())
+    {
+      // This test resides here, to bring the error messages closer to the user. Normally, these checks
+      // are performed deeply within the library, thus causing long and scary error traces.
+      EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+      Base::_check_template_params();
+      Base::_set_noalias(other);
+    }
+    /** \brief Copy constructor */
+    EIGEN_STRONG_INLINE Matrix(const Matrix& other)
+            : Base(other.rows() * other.cols(), other.rows(), other.cols())
+    {
+      Base::_check_template_params();
+      Base::_set_noalias(other);
+    }
+    /** \brief Copy constructor with in-place evaluation */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Matrix(const ReturnByValue<OtherDerived>& other)
+    {
+      Base::_check_template_params();
+      Base::resize(other.rows(), other.cols());
+      other.evalTo(*this);
+    }
+
+    /** \brief Copy constructor for generic expressions.
+      * \sa MatrixBase::operator=(const EigenBase<OtherDerived>&)
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Matrix(const EigenBase<OtherDerived> &other)
+      : Base(other.derived().rows() * other.derived().cols(), other.derived().rows(), other.derived().cols())
+    {
+      Base::_check_template_params();
+      Base::_resize_to_match(other);
+      // FIXME/CHECK: isn't *this = other.derived() more efficient. it allows to
+      //              go for pure _set() implementations, right?
+      *this = other;
+    }
+
+    /** \internal
+      * \brief Override MatrixBase::swap() since for dynamic-sized matrices
+      * of same type it is enough to swap the data pointers.
+      */
+    template<typename OtherDerived>
+    void swap(MatrixBase<OtherDerived> const & other)
+    { this->_swap(other.derived()); }
+
+    inline Index innerStride() const { return 1; }
+    inline Index outerStride() const { return this->innerSize(); }
+
+    /////////// Geometry module ///////////
+
+    template<typename OtherDerived>
+    explicit Matrix(const RotationBase<OtherDerived,ColsAtCompileTime>& r);
+    template<typename OtherDerived>
+    Matrix& operator=(const RotationBase<OtherDerived,ColsAtCompileTime>& r);
+
+    #ifdef EIGEN2_SUPPORT
+    template<typename OtherDerived>
+    explicit Matrix(const eigen2_RotationBase<OtherDerived,ColsAtCompileTime>& r);
+    template<typename OtherDerived>
+    Matrix& operator=(const eigen2_RotationBase<OtherDerived,ColsAtCompileTime>& r);
+    #endif
+
+    // allow to extend Matrix outside Eigen
+    #ifdef EIGEN_MATRIX_PLUGIN
+    #include EIGEN_MATRIX_PLUGIN
+    #endif
+
+  protected:
+    template <typename Derived, typename OtherDerived, bool IsVector>
+    friend struct internal::conservative_resize_like_impl;
+
+    using Base::m_storage;
+};
+
+/** \defgroup matrixtypedefs Global matrix typedefs
+  *
+  * \ingroup Core_Module
+  *
+  * Eigen defines several typedef shortcuts for most common matrix and vector types.
+  *
+  * The general patterns are the following:
+  *
+  * \c MatrixSizeType where \c Size can be \c 2,\c 3,\c 4 for fixed size square matrices or \c X for dynamic size,
+  * and where \c Type can be \c i for integer, \c f for float, \c d for double, \c cf for complex float, \c cd
+  * for complex double.
+  *
+  * For example, \c Matrix3d is a fixed-size 3x3 matrix type of doubles, and \c MatrixXf is a dynamic-size matrix of floats.
+  *
+  * There are also \c VectorSizeType and \c RowVectorSizeType which are self-explanatory. For example, \c Vector4cf is
+  * a fixed-size vector of 4 complex floats.
+  *
+  * \sa class Matrix
+  */
+
+#define EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix)   \
+/** \ingroup matrixtypedefs */                                    \
+typedef Matrix<Type, Size, Size> Matrix##SizeSuffix##TypeSuffix;  \
+/** \ingroup matrixtypedefs */                                    \
+typedef Matrix<Type, Size, 1>    Vector##SizeSuffix##TypeSuffix;  \
+/** \ingroup matrixtypedefs */                                    \
+typedef Matrix<Type, 1, Size>    RowVector##SizeSuffix##TypeSuffix;
+
+#define EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, Size)         \
+/** \ingroup matrixtypedefs */                                    \
+typedef Matrix<Type, Size, Dynamic> Matrix##Size##X##TypeSuffix;  \
+/** \ingroup matrixtypedefs */                                    \
+typedef Matrix<Type, Dynamic, Size> Matrix##X##Size##TypeSuffix;
+
+#define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 2, 2) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 3, 3) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 4, 4) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Dynamic, X) \
+EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 2) \
+EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 3) \
+EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 4)
+
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(int,                  i)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(float,                f)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(double,               d)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(std::complex<float>,  cf)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(std::complex<double>, cd)
+
+#undef EIGEN_MAKE_TYPEDEFS_ALL_SIZES
+#undef EIGEN_MAKE_TYPEDEFS
+#undef EIGEN_MAKE_FIXED_TYPEDEFS
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATRIX_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/MatrixBase.h b/vendor/eigen-3.2.8/Eigen/src/Core/MatrixBase.h
new file mode 100644
index 0000000..e83ef4d
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/MatrixBase.h
@@ -0,0 +1,563 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIXBASE_H
+#define EIGEN_MATRIXBASE_H
+
+namespace Eigen {
+
+/** \class MatrixBase
+  * \ingroup Core_Module
+  *
+  * \brief Base class for all dense matrices, vectors, and expressions
+  *
+  * This class is the base that is inherited by all matrix, vector, and related expression
+  * types. Most of the Eigen API is contained in this class, and its base classes. Other important
+  * classes for the Eigen API are Matrix, and VectorwiseOp.
+  *
+  * Note that some methods are defined in other modules such as the \ref LU_Module LU module
+  * for all functions related to matrix inversions.
+  *
+  * \tparam Derived is the derived type, e.g. a matrix type, or an expression, etc.
+  *
+  * When writing a function taking Eigen objects as argument, if you want your function
+  * to take as argument any matrix, vector, or expression, just let it take a
+  * MatrixBase argument. As an example, here is a function printFirstRow which, given
+  * a matrix, vector, or expression \a x, prints the first row of \a x.
+  *
+  * \code
+    template<typename Derived>
+    void printFirstRow(const Eigen::MatrixBase<Derived>& x)
+    {
+      cout << x.row(0) << endl;
+    }
+  * \endcode
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_MATRIXBASE_PLUGIN.
+  *
+  * \sa \ref TopicClassHierarchy
+  */
+template<typename Derived> class MatrixBase
+  : public DenseBase<Derived>
+{
+  public:
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    typedef MatrixBase StorageBaseType;
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    typedef DenseBase<Derived> Base;
+    using Base::RowsAtCompileTime;
+    using Base::ColsAtCompileTime;
+    using Base::SizeAtCompileTime;
+    using Base::MaxRowsAtCompileTime;
+    using Base::MaxColsAtCompileTime;
+    using Base::MaxSizeAtCompileTime;
+    using Base::IsVectorAtCompileTime;
+    using Base::Flags;
+    using Base::CoeffReadCost;
+
+    using Base::derived;
+    using Base::const_cast_derived;
+    using Base::rows;
+    using Base::cols;
+    using Base::size;
+    using Base::coeff;
+    using Base::coeffRef;
+    using Base::lazyAssign;
+    using Base::eval;
+    using Base::operator+=;
+    using Base::operator-=;
+    using Base::operator*=;
+    using Base::operator/=;
+
+    typedef typename Base::CoeffReturnType CoeffReturnType;
+    typedef typename Base::ConstTransposeReturnType ConstTransposeReturnType;
+    typedef typename Base::RowXpr RowXpr;
+    typedef typename Base::ColXpr ColXpr;
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** type of the equivalent square matrix */
+    typedef Matrix<Scalar,EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime),
+                          EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime)> SquareMatrixType;
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+    /** \returns the size of the main diagonal, which is min(rows(),cols()).
+      * \sa rows(), cols(), SizeAtCompileTime. */
+    inline Index diagonalSize() const { return (std::min)(rows(),cols()); }
+
+    /** \brief The plain matrix type corresponding to this expression.
+      *
+      * This is not necessarily exactly the return type of eval(). In the case of plain matrices,
+      * the return type of eval() is a const reference to a matrix, not a matrix! It is however guaranteed
+      * that the return type of eval() is either PlainObject or const PlainObject&.
+      */
+    typedef Matrix<typename internal::traits<Derived>::Scalar,
+                internal::traits<Derived>::RowsAtCompileTime,
+                internal::traits<Derived>::ColsAtCompileTime,
+                AutoAlign | (internal::traits<Derived>::Flags&RowMajorBit ? RowMajor : ColMajor),
+                internal::traits<Derived>::MaxRowsAtCompileTime,
+                internal::traits<Derived>::MaxColsAtCompileTime
+          > PlainObject;
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal Represents a matrix with all coefficients equal to one another*/
+    typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,Derived> ConstantReturnType;
+    /** \internal the return type of MatrixBase::adjoint() */
+    typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+                        CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, ConstTransposeReturnType>,
+                        ConstTransposeReturnType
+                     >::type AdjointReturnType;
+    /** \internal Return type of eigenvalues() */
+    typedef Matrix<std::complex<RealScalar>, internal::traits<Derived>::ColsAtCompileTime, 1, ColMajor> EigenvaluesReturnType;
+    /** \internal the return type of identity */
+    typedef CwiseNullaryOp<internal::scalar_identity_op<Scalar>,Derived> IdentityReturnType;
+    /** \internal the return type of unit vectors */
+    typedef Block<const CwiseNullaryOp<internal::scalar_identity_op<Scalar>, SquareMatrixType>,
+                  internal::traits<Derived>::RowsAtCompileTime,
+                  internal::traits<Derived>::ColsAtCompileTime> BasisReturnType;
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::MatrixBase
+#   include "../plugins/CommonCwiseUnaryOps.h"
+#   include "../plugins/CommonCwiseBinaryOps.h"
+#   include "../plugins/MatrixCwiseUnaryOps.h"
+#   include "../plugins/MatrixCwiseBinaryOps.h"
+#   ifdef EIGEN_MATRIXBASE_PLUGIN
+#     include EIGEN_MATRIXBASE_PLUGIN
+#   endif
+#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
+
+    /** Special case of the template operator=, in order to prevent the compiler
+      * from generating a default operator= (issue hit with g++ 4.1)
+      */
+    Derived& operator=(const MatrixBase& other);
+
+    // We cannot inherit here via Base::operator= since it is causing
+    // trouble with MSVC.
+
+    template <typename OtherDerived>
+    Derived& operator=(const DenseBase<OtherDerived>& other);
+
+    template <typename OtherDerived>
+    Derived& operator=(const EigenBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    Derived& operator=(const ReturnByValue<OtherDerived>& other);
+
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    Derived& lazyAssign(const ProductBase<ProductDerived, Lhs,Rhs>& other);
+
+    template<typename MatrixPower, typename Lhs, typename Rhs>
+    Derived& lazyAssign(const MatrixPowerProduct<MatrixPower, Lhs,Rhs>& other);
+
+    template<typename OtherDerived>
+    Derived& operator+=(const MatrixBase<OtherDerived>& other);
+    template<typename OtherDerived>
+    Derived& operator-=(const MatrixBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    const typename ProductReturnType<Derived,OtherDerived>::Type
+    operator*(const MatrixBase<OtherDerived> &other) const;
+
+    template<typename OtherDerived>
+    const typename LazyProductReturnType<Derived,OtherDerived>::Type
+    lazyProduct(const MatrixBase<OtherDerived> &other) const;
+
+    template<typename OtherDerived>
+    Derived& operator*=(const EigenBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    void applyOnTheLeft(const EigenBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    void applyOnTheRight(const EigenBase<OtherDerived>& other);
+
+    template<typename DiagonalDerived>
+    const DiagonalProduct<Derived, DiagonalDerived, OnTheRight>
+    operator*(const DiagonalBase<DiagonalDerived> &diagonal) const;
+
+    template<typename OtherDerived>
+    typename internal::scalar_product_traits<typename internal::traits<Derived>::Scalar,typename internal::traits<OtherDerived>::Scalar>::ReturnType
+    dot(const MatrixBase<OtherDerived>& other) const;
+
+    #ifdef EIGEN2_SUPPORT
+      template<typename OtherDerived>
+      Scalar eigen2_dot(const MatrixBase<OtherDerived>& other) const;
+    #endif
+
+    RealScalar squaredNorm() const;
+    RealScalar norm() const;
+    RealScalar stableNorm() const;
+    RealScalar blueNorm() const;
+    RealScalar hypotNorm() const;
+    const PlainObject normalized() const;
+    void normalize();
+
+    const AdjointReturnType adjoint() const;
+    void adjointInPlace();
+
+    typedef Diagonal<Derived> DiagonalReturnType;
+    DiagonalReturnType diagonal();
+    typedef typename internal::add_const<Diagonal<const Derived> >::type ConstDiagonalReturnType;
+    ConstDiagonalReturnType diagonal() const;
+
+    template<int Index> struct DiagonalIndexReturnType { typedef Diagonal<Derived,Index> Type; };
+    template<int Index> struct ConstDiagonalIndexReturnType { typedef const Diagonal<const Derived,Index> Type; };
+
+    template<int Index> typename DiagonalIndexReturnType<Index>::Type diagonal();
+    template<int Index> typename ConstDiagonalIndexReturnType<Index>::Type diagonal() const;
+    
+    typedef Diagonal<Derived,DynamicIndex> DiagonalDynamicIndexReturnType;
+    typedef typename internal::add_const<Diagonal<const Derived,DynamicIndex> >::type ConstDiagonalDynamicIndexReturnType;
+
+    DiagonalDynamicIndexReturnType diagonal(Index index);
+    ConstDiagonalDynamicIndexReturnType diagonal(Index index) const;
+
+    #ifdef EIGEN2_SUPPORT
+    template<unsigned int Mode> typename internal::eigen2_part_return_type<Derived, Mode>::type part();
+    template<unsigned int Mode> const typename internal::eigen2_part_return_type<Derived, Mode>::type part() const;
+    
+    // huuuge hack. make Eigen2's matrix.part<Diagonal>() work in eigen3. Problem: Diagonal is now a class template instead
+    // of an integer constant. Solution: overload the part() method template wrt template parameters list.
+    template<template<typename T, int N> class U>
+    const DiagonalWrapper<ConstDiagonalReturnType> part() const
+    { return diagonal().asDiagonal(); }
+    #endif // EIGEN2_SUPPORT
+
+    template<unsigned int Mode> struct TriangularViewReturnType { typedef TriangularView<Derived, Mode> Type; };
+    template<unsigned int Mode> struct ConstTriangularViewReturnType { typedef const TriangularView<const Derived, Mode> Type; };
+
+    template<unsigned int Mode> typename TriangularViewReturnType<Mode>::Type triangularView();
+    template<unsigned int Mode> typename ConstTriangularViewReturnType<Mode>::Type triangularView() const;
+
+    template<unsigned int UpLo> struct SelfAdjointViewReturnType { typedef SelfAdjointView<Derived, UpLo> Type; };
+    template<unsigned int UpLo> struct ConstSelfAdjointViewReturnType { typedef const SelfAdjointView<const Derived, UpLo> Type; };
+
+    template<unsigned int UpLo> typename SelfAdjointViewReturnType<UpLo>::Type selfadjointView();
+    template<unsigned int UpLo> typename ConstSelfAdjointViewReturnType<UpLo>::Type selfadjointView() const;
+
+    const SparseView<Derived> sparseView(const Scalar& m_reference = Scalar(0),
+                                         const typename NumTraits<Scalar>::Real& m_epsilon = NumTraits<Scalar>::dummy_precision()) const;
+    static const IdentityReturnType Identity();
+    static const IdentityReturnType Identity(Index rows, Index cols);
+    static const BasisReturnType Unit(Index size, Index i);
+    static const BasisReturnType Unit(Index i);
+    static const BasisReturnType UnitX();
+    static const BasisReturnType UnitY();
+    static const BasisReturnType UnitZ();
+    static const BasisReturnType UnitW();
+
+    const DiagonalWrapper<const Derived> asDiagonal() const;
+    const PermutationWrapper<const Derived> asPermutation() const;
+
+    Derived& setIdentity();
+    Derived& setIdentity(Index rows, Index cols);
+
+    bool isIdentity(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    bool isDiagonal(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+
+    bool isUpperTriangular(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    bool isLowerTriangular(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+
+    template<typename OtherDerived>
+    bool isOrthogonal(const MatrixBase<OtherDerived>& other,
+                      const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    bool isUnitary(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+
+    /** \returns true if each coefficients of \c *this and \a other are all exactly equal.
+      * \warning When using floating point scalar values you probably should rather use a
+      *          fuzzy comparison such as isApprox()
+      * \sa isApprox(), operator!= */
+    template<typename OtherDerived>
+    inline bool operator==(const MatrixBase<OtherDerived>& other) const
+    { return cwiseEqual(other).all(); }
+
+    /** \returns true if at least one pair of coefficients of \c *this and \a other are not exactly equal to each other.
+      * \warning When using floating point scalar values you probably should rather use a
+      *          fuzzy comparison such as isApprox()
+      * \sa isApprox(), operator== */
+    template<typename OtherDerived>
+    inline bool operator!=(const MatrixBase<OtherDerived>& other) const
+    { return cwiseNotEqual(other).any(); }
+
+    NoAlias<Derived,Eigen::MatrixBase > noalias();
+
+    inline const ForceAlignedAccess<Derived> forceAlignedAccess() const;
+    inline ForceAlignedAccess<Derived> forceAlignedAccess();
+    template<bool Enable> inline typename internal::add_const_on_value_type<typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type>::type forceAlignedAccessIf() const;
+    template<bool Enable> inline typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type forceAlignedAccessIf();
+
+    Scalar trace() const;
+
+/////////// Array module ///////////
+
+    template<int p> RealScalar lpNorm() const;
+
+    MatrixBase<Derived>& matrix() { return *this; }
+    const MatrixBase<Derived>& matrix() const { return *this; }
+
+    /** \returns an \link Eigen::ArrayBase Array \endlink expression of this matrix
+      * \sa ArrayBase::matrix() */
+    ArrayWrapper<Derived> array() { return derived(); }
+    const ArrayWrapper<const Derived> array() const { return derived(); }
+
+/////////// LU module ///////////
+
+    const FullPivLU<PlainObject> fullPivLu() const;
+    const PartialPivLU<PlainObject> partialPivLu() const;
+
+    #if EIGEN2_SUPPORT_STAGE < STAGE20_RESOLVE_API_CONFLICTS
+    const LU<PlainObject> lu() const;
+    #endif
+
+    #ifdef EIGEN2_SUPPORT
+    const LU<PlainObject> eigen2_lu() const;
+    #endif
+
+    #if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
+    const PartialPivLU<PlainObject> lu() const;
+    #endif
+    
+    #ifdef EIGEN2_SUPPORT
+    template<typename ResultType>
+    void computeInverse(MatrixBase<ResultType> *result) const {
+      *result = this->inverse();
+    }
+    #endif
+
+    const internal::inverse_impl<Derived> inverse() const;
+    template<typename ResultType>
+    void computeInverseAndDetWithCheck(
+      ResultType& inverse,
+      typename ResultType::Scalar& determinant,
+      bool& invertible,
+      const RealScalar& absDeterminantThreshold = NumTraits<Scalar>::dummy_precision()
+    ) const;
+    template<typename ResultType>
+    void computeInverseWithCheck(
+      ResultType& inverse,
+      bool& invertible,
+      const RealScalar& absDeterminantThreshold = NumTraits<Scalar>::dummy_precision()
+    ) const;
+    Scalar determinant() const;
+
+/////////// Cholesky module ///////////
+
+    const LLT<PlainObject>  llt() const;
+    const LDLT<PlainObject> ldlt() const;
+
+/////////// QR module ///////////
+
+    const HouseholderQR<PlainObject> householderQr() const;
+    const ColPivHouseholderQR<PlainObject> colPivHouseholderQr() const;
+    const FullPivHouseholderQR<PlainObject> fullPivHouseholderQr() const;
+    
+    #ifdef EIGEN2_SUPPORT
+    const QR<PlainObject> qr() const;
+    #endif
+
+    EigenvaluesReturnType eigenvalues() const;
+    RealScalar operatorNorm() const;
+
+/////////// SVD module ///////////
+
+    JacobiSVD<PlainObject> jacobiSvd(unsigned int computationOptions = 0) const;
+
+    #ifdef EIGEN2_SUPPORT
+    SVD<PlainObject> svd() const;
+    #endif
+
+/////////// Geometry module ///////////
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /// \internal helper struct to form the return type of the cross product
+    template<typename OtherDerived> struct cross_product_return_type {
+      typedef typename internal::scalar_product_traits<typename internal::traits<Derived>::Scalar,typename internal::traits<OtherDerived>::Scalar>::ReturnType Scalar;
+      typedef Matrix<Scalar,MatrixBase::RowsAtCompileTime,MatrixBase::ColsAtCompileTime> type;
+    };
+    #endif // EIGEN_PARSED_BY_DOXYGEN
+    template<typename OtherDerived>
+    typename cross_product_return_type<OtherDerived>::type
+    cross(const MatrixBase<OtherDerived>& other) const;
+    template<typename OtherDerived>
+    PlainObject cross3(const MatrixBase<OtherDerived>& other) const;
+    PlainObject unitOrthogonal(void) const;
+    Matrix<Scalar,3,1> eulerAngles(Index a0, Index a1, Index a2) const;
+    
+    #if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
+    ScalarMultipleReturnType operator*(const UniformScaling<Scalar>& s) const;
+    // put this as separate enum value to work around possible GCC 4.3 bug (?)
+    enum { HomogeneousReturnTypeDirection = ColsAtCompileTime==1?Vertical:Horizontal };
+    typedef Homogeneous<Derived, HomogeneousReturnTypeDirection> HomogeneousReturnType;
+    HomogeneousReturnType homogeneous() const;
+    #endif
+    
+    enum {
+      SizeMinusOne = SizeAtCompileTime==Dynamic ? Dynamic : SizeAtCompileTime-1
+    };
+    typedef Block<const Derived,
+                  internal::traits<Derived>::ColsAtCompileTime==1 ? SizeMinusOne : 1,
+                  internal::traits<Derived>::ColsAtCompileTime==1 ? 1 : SizeMinusOne> ConstStartMinusOne;
+    typedef CwiseUnaryOp<internal::scalar_quotient1_op<typename internal::traits<Derived>::Scalar>,
+                const ConstStartMinusOne > HNormalizedReturnType;
+
+    const HNormalizedReturnType hnormalized() const;
+
+////////// Householder module ///////////
+
+    void makeHouseholderInPlace(Scalar& tau, RealScalar& beta);
+    template<typename EssentialPart>
+    void makeHouseholder(EssentialPart& essential,
+                         Scalar& tau, RealScalar& beta) const;
+    template<typename EssentialPart>
+    void applyHouseholderOnTheLeft(const EssentialPart& essential,
+                                   const Scalar& tau,
+                                   Scalar* workspace);
+    template<typename EssentialPart>
+    void applyHouseholderOnTheRight(const EssentialPart& essential,
+                                    const Scalar& tau,
+                                    Scalar* workspace);
+
+///////// Jacobi module /////////
+
+    template<typename OtherScalar>
+    void applyOnTheLeft(Index p, Index q, const JacobiRotation<OtherScalar>& j);
+    template<typename OtherScalar>
+    void applyOnTheRight(Index p, Index q, const JacobiRotation<OtherScalar>& j);
+
+///////// SparseCore module /////////
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE const typename SparseMatrixBase<OtherDerived>::template CwiseProductDenseReturnType<Derived>::Type
+    cwiseProduct(const SparseMatrixBase<OtherDerived> &other) const
+    {
+      return other.cwiseProduct(derived());
+    }
+
+///////// MatrixFunctions module /////////
+
+    typedef typename internal::stem_function<Scalar>::type StemFunction;
+    const MatrixExponentialReturnValue<Derived> exp() const;
+    const MatrixFunctionReturnValue<Derived> matrixFunction(StemFunction f) const;
+    const MatrixFunctionReturnValue<Derived> cosh() const;
+    const MatrixFunctionReturnValue<Derived> sinh() const;
+    const MatrixFunctionReturnValue<Derived> cos() const;
+    const MatrixFunctionReturnValue<Derived> sin() const;
+    const MatrixSquareRootReturnValue<Derived> sqrt() const;
+    const MatrixLogarithmReturnValue<Derived> log() const;
+    const MatrixPowerReturnValue<Derived> pow(const RealScalar& p) const;
+
+#ifdef EIGEN2_SUPPORT
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    Derived& operator+=(const Flagged<ProductBase<ProductDerived, Lhs,Rhs>, 0,
+                                      EvalBeforeAssigningBit>& other);
+
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    Derived& operator-=(const Flagged<ProductBase<ProductDerived, Lhs,Rhs>, 0,
+                                      EvalBeforeAssigningBit>& other);
+
+    /** \deprecated because .lazy() is deprecated
+      * Overloaded for cache friendly product evaluation */
+    template<typename OtherDerived>
+    Derived& lazyAssign(const Flagged<OtherDerived, 0, EvalBeforeAssigningBit>& other)
+    { return lazyAssign(other._expression()); }
+
+    template<unsigned int Added>
+    const Flagged<Derived, Added, 0> marked() const;
+    const Flagged<Derived, 0, EvalBeforeAssigningBit> lazy() const;
+
+    inline const Cwise<Derived> cwise() const;
+    inline Cwise<Derived> cwise();
+
+    VectorBlock<Derived> start(Index size);
+    const VectorBlock<const Derived> start(Index size) const;
+    VectorBlock<Derived> end(Index size);
+    const VectorBlock<const Derived> end(Index size) const;
+    template<int Size> VectorBlock<Derived,Size> start();
+    template<int Size> const VectorBlock<const Derived,Size> start() const;
+    template<int Size> VectorBlock<Derived,Size> end();
+    template<int Size> const VectorBlock<const Derived,Size> end() const;
+
+    Minor<Derived> minor(Index row, Index col);
+    const Minor<Derived> minor(Index row, Index col) const;
+#endif
+
+  protected:
+    MatrixBase() : Base() {}
+
+  private:
+    explicit MatrixBase(int);
+    MatrixBase(int,int);
+    template<typename OtherDerived> explicit MatrixBase(const MatrixBase<OtherDerived>&);
+  protected:
+    // mixing arrays and matrices is not legal
+    template<typename OtherDerived> Derived& operator+=(const ArrayBase<OtherDerived>& )
+    {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
+    // mixing arrays and matrices is not legal
+    template<typename OtherDerived> Derived& operator-=(const ArrayBase<OtherDerived>& )
+    {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
+};
+
+
+/***************************************************************************
+* Implementation of matrix base methods
+***************************************************************************/
+
+/** replaces \c *this by \c *this * \a other.
+  *
+  * \returns a reference to \c *this
+  *
+  * Example: \include MatrixBase_applyOnTheRight.cpp
+  * Output: \verbinclude MatrixBase_applyOnTheRight.out
+  */
+template<typename Derived>
+template<typename OtherDerived>
+inline Derived&
+MatrixBase<Derived>::operator*=(const EigenBase<OtherDerived> &other)
+{
+  other.derived().applyThisOnTheRight(derived());
+  return derived();
+}
+
+/** replaces \c *this by \c *this * \a other. It is equivalent to MatrixBase::operator*=().
+  *
+  * Example: \include MatrixBase_applyOnTheRight.cpp
+  * Output: \verbinclude MatrixBase_applyOnTheRight.out
+  */
+template<typename Derived>
+template<typename OtherDerived>
+inline void MatrixBase<Derived>::applyOnTheRight(const EigenBase<OtherDerived> &other)
+{
+  other.derived().applyThisOnTheRight(derived());
+}
+
+/** replaces \c *this by \a other * \c *this.
+  *
+  * Example: \include MatrixBase_applyOnTheLeft.cpp
+  * Output: \verbinclude MatrixBase_applyOnTheLeft.out
+  */
+template<typename Derived>
+template<typename OtherDerived>
+inline void MatrixBase<Derived>::applyOnTheLeft(const EigenBase<OtherDerived> &other)
+{
+  other.derived().applyThisOnTheLeft(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATRIXBASE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/NestByValue.h b/vendor/eigen-3.2.8/Eigen/src/Core/NestByValue.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/NestByValue.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/NestByValue.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/NoAlias.h b/vendor/eigen-3.2.8/Eigen/src/Core/NoAlias.h
new file mode 100644
index 0000000..768bfb1
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/NoAlias.h
@@ -0,0 +1,134 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_NOALIAS_H
+#define EIGEN_NOALIAS_H
+
+namespace Eigen {
+
+/** \class NoAlias
+  * \ingroup Core_Module
+  *
+  * \brief Pseudo expression providing an operator = assuming no aliasing
+  *
+  * \param ExpressionType the type of the object on which to do the lazy assignment
+  *
+  * This class represents an expression with special assignment operators
+  * assuming no aliasing between the target expression and the source expression.
+  * More precisely it alloas to bypass the EvalBeforeAssignBit flag of the source expression.
+  * It is the return type of MatrixBase::noalias()
+  * and most of the time this is the only way it is used.
+  *
+  * \sa MatrixBase::noalias()
+  */
+template<typename ExpressionType, template <typename> class StorageBase>
+class NoAlias
+{
+    typedef typename ExpressionType::Scalar Scalar;
+  public:
+    NoAlias(ExpressionType& expression) : m_expression(expression) {}
+
+    /** Behaves like MatrixBase::lazyAssign(other)
+      * \sa MatrixBase::lazyAssign() */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE ExpressionType& operator=(const StorageBase<OtherDerived>& other)
+    { return internal::assign_selector<ExpressionType,OtherDerived,false>::run(m_expression,other.derived()); }
+
+    /** \sa MatrixBase::operator+= */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE ExpressionType& operator+=(const StorageBase<OtherDerived>& other)
+    {
+      typedef SelfCwiseBinaryOp<internal::scalar_sum_op<Scalar>, ExpressionType, OtherDerived> SelfAdder;
+      SelfAdder tmp(m_expression);
+      typedef typename internal::nested<OtherDerived>::type OtherDerivedNested;
+      typedef typename internal::remove_all<OtherDerivedNested>::type _OtherDerivedNested;
+      internal::assign_selector<SelfAdder,_OtherDerivedNested,false>::run(tmp,OtherDerivedNested(other.derived()));
+      return m_expression;
+    }
+
+    /** \sa MatrixBase::operator-= */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE ExpressionType& operator-=(const StorageBase<OtherDerived>& other)
+    {
+      typedef SelfCwiseBinaryOp<internal::scalar_difference_op<Scalar>, ExpressionType, OtherDerived> SelfAdder;
+      SelfAdder tmp(m_expression);
+      typedef typename internal::nested<OtherDerived>::type OtherDerivedNested;
+      typedef typename internal::remove_all<OtherDerivedNested>::type _OtherDerivedNested;
+      internal::assign_selector<SelfAdder,_OtherDerivedNested,false>::run(tmp,OtherDerivedNested(other.derived()));
+      return m_expression;
+    }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE ExpressionType& operator+=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
+    { other.derived().addTo(m_expression); return m_expression; }
+
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE ExpressionType& operator-=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
+    { other.derived().subTo(m_expression); return m_expression; }
+
+    template<typename Lhs, typename Rhs, int NestingFlags>
+    EIGEN_STRONG_INLINE ExpressionType& operator+=(const CoeffBasedProduct<Lhs,Rhs,NestingFlags>& other)
+    { return m_expression.derived() += CoeffBasedProduct<Lhs,Rhs,NestByRefBit>(other.lhs(), other.rhs()); }
+
+    template<typename Lhs, typename Rhs, int NestingFlags>
+    EIGEN_STRONG_INLINE ExpressionType& operator-=(const CoeffBasedProduct<Lhs,Rhs,NestingFlags>& other)
+    { return m_expression.derived() -= CoeffBasedProduct<Lhs,Rhs,NestByRefBit>(other.lhs(), other.rhs()); }
+    
+    template<typename OtherDerived>
+    ExpressionType& operator=(const ReturnByValue<OtherDerived>& func)
+    { return m_expression = func; }
+#endif
+
+    ExpressionType& expression() const
+    {
+      return m_expression;
+    }
+
+  protected:
+    ExpressionType& m_expression;
+};
+
+/** \returns a pseudo expression of \c *this with an operator= assuming
+  * no aliasing between \c *this and the source expression.
+  *
+  * More precisely, noalias() allows to bypass the EvalBeforeAssignBit flag.
+  * Currently, even though several expressions may alias, only product
+  * expressions have this flag. Therefore, noalias() is only usefull when
+  * the source expression contains a matrix product.
+  *
+  * Here are some examples where noalias is usefull:
+  * \code
+  * D.noalias()  = A * B;
+  * D.noalias() += A.transpose() * B;
+  * D.noalias() -= 2 * A * B.adjoint();
+  * \endcode
+  *
+  * On the other hand the following example will lead to a \b wrong result:
+  * \code
+  * A.noalias() = A * B;
+  * \endcode
+  * because the result matrix A is also an operand of the matrix product. Therefore,
+  * there is no alternative than evaluating A * B in a temporary, that is the default
+  * behavior when you write:
+  * \code
+  * A = A * B;
+  * \endcode
+  *
+  * \sa class NoAlias
+  */
+template<typename Derived>
+NoAlias<Derived,MatrixBase> MatrixBase<Derived>::noalias()
+{
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_NOALIAS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/NumTraits.h b/vendor/eigen-3.2.8/Eigen/src/Core/NumTraits.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/NumTraits.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/NumTraits.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/PermutationMatrix.h b/vendor/eigen-3.2.8/Eigen/src/Core/PermutationMatrix.h
new file mode 100644
index 0000000..85ffae2
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/PermutationMatrix.h
@@ -0,0 +1,721 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2009-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PERMUTATIONMATRIX_H
+#define EIGEN_PERMUTATIONMATRIX_H
+
+namespace Eigen { 
+
+template<int RowCol,typename IndicesType,typename MatrixType, typename StorageKind> class PermutedImpl;
+
+/** \class PermutationBase
+  * \ingroup Core_Module
+  *
+  * \brief Base class for permutations
+  *
+  * \param Derived the derived class
+  *
+  * This class is the base class for all expressions representing a permutation matrix,
+  * internally stored as a vector of integers.
+  * The convention followed here is that if \f$ \sigma \f$ is a permutation, the corresponding permutation matrix
+  * \f$ P_\sigma \f$ is such that if \f$ (e_1,\ldots,e_p) \f$ is the canonical basis, we have:
+  *  \f[ P_\sigma(e_i) = e_{\sigma(i)}. \f]
+  * This convention ensures that for any two permutations \f$ \sigma, \tau \f$, we have:
+  *  \f[ P_{\sigma\circ\tau} = P_\sigma P_\tau. \f]
+  *
+  * Permutation matrices are square and invertible.
+  *
+  * Notice that in addition to the member functions and operators listed here, there also are non-member
+  * operator* to multiply any kind of permutation object with any kind of matrix expression (MatrixBase)
+  * on either side.
+  *
+  * \sa class PermutationMatrix, class PermutationWrapper
+  */
+
+namespace internal {
+
+template<typename PermutationType, typename MatrixType, int Side, bool Transposed=false>
+struct permut_matrix_product_retval;
+template<typename PermutationType, typename MatrixType, int Side, bool Transposed=false>
+struct permut_sparsematrix_product_retval;
+enum PermPermProduct_t {PermPermProduct};
+
+} // end namespace internal
+
+template<typename Derived>
+class PermutationBase : public EigenBase<Derived>
+{
+    typedef internal::traits<Derived> Traits;
+    typedef EigenBase<Derived> Base;
+  public:
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    typedef typename Traits::IndicesType IndicesType;
+    enum {
+      Flags = Traits::Flags,
+      CoeffReadCost = Traits::CoeffReadCost,
+      RowsAtCompileTime = Traits::RowsAtCompileTime,
+      ColsAtCompileTime = Traits::ColsAtCompileTime,
+      MaxRowsAtCompileTime = Traits::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = Traits::MaxColsAtCompileTime
+    };
+    typedef typename Traits::Scalar Scalar;
+    typedef typename Traits::Index Index;
+    typedef Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime,0,MaxRowsAtCompileTime,MaxColsAtCompileTime>
+            DenseMatrixType;
+    typedef PermutationMatrix<IndicesType::SizeAtCompileTime,IndicesType::MaxSizeAtCompileTime,Index>
+            PlainPermutationType;
+    using Base::derived;
+    #endif
+
+    /** Copies the other permutation into *this */
+    template<typename OtherDerived>
+    Derived& operator=(const PermutationBase<OtherDerived>& other)
+    {
+      indices() = other.indices();
+      return derived();
+    }
+
+    /** Assignment from the Transpositions \a tr */
+    template<typename OtherDerived>
+    Derived& operator=(const TranspositionsBase<OtherDerived>& tr)
+    {
+      setIdentity(tr.size());
+      for(Index k=size()-1; k>=0; --k)
+        applyTranspositionOnTheRight(k,tr.coeff(k));
+      return derived();
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** This is a special case of the templated operator=. Its purpose is to
+      * prevent a default operator= from hiding the templated operator=.
+      */
+    Derived& operator=(const PermutationBase& other)
+    {
+      indices() = other.indices();
+      return derived();
+    }
+    #endif
+
+    /** \returns the number of rows */
+    inline Index rows() const { return Index(indices().size()); }
+
+    /** \returns the number of columns */
+    inline Index cols() const { return Index(indices().size()); }
+
+    /** \returns the size of a side of the respective square matrix, i.e., the number of indices */
+    inline Index size() const { return Index(indices().size()); }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename DenseDerived>
+    void evalTo(MatrixBase<DenseDerived>& other) const
+    {
+      other.setZero();
+      for (int i=0; i<rows();++i)
+        other.coeffRef(indices().coeff(i),i) = typename DenseDerived::Scalar(1);
+    }
+    #endif
+
+    /** \returns a Matrix object initialized from this permutation matrix. Notice that it
+      * is inefficient to return this Matrix object by value. For efficiency, favor using
+      * the Matrix constructor taking EigenBase objects.
+      */
+    DenseMatrixType toDenseMatrix() const
+    {
+      return derived();
+    }
+
+    /** const version of indices(). */
+    const IndicesType& indices() const { return derived().indices(); }
+    /** \returns a reference to the stored array representing the permutation. */
+    IndicesType& indices() { return derived().indices(); }
+
+    /** Resizes to given size.
+      */
+    inline void resize(Index newSize)
+    {
+      indices().resize(newSize);
+    }
+
+    /** Sets *this to be the identity permutation matrix */
+    void setIdentity()
+    {
+      for(Index i = 0; i < size(); ++i)
+        indices().coeffRef(i) = i;
+    }
+
+    /** Sets *this to be the identity permutation matrix of given size.
+      */
+    void setIdentity(Index newSize)
+    {
+      resize(newSize);
+      setIdentity();
+    }
+
+    /** Multiplies *this by the transposition \f$(ij)\f$ on the left.
+      *
+      * \returns a reference to *this.
+      *
+      * \warning This is much slower than applyTranspositionOnTheRight(int,int):
+      * this has linear complexity and requires a lot of branching.
+      *
+      * \sa applyTranspositionOnTheRight(int,int)
+      */
+    Derived& applyTranspositionOnTheLeft(Index i, Index j)
+    {
+      eigen_assert(i>=0 && j>=0 && i<size() && j<size());
+      for(Index k = 0; k < size(); ++k)
+      {
+        if(indices().coeff(k) == i) indices().coeffRef(k) = j;
+        else if(indices().coeff(k) == j) indices().coeffRef(k) = i;
+      }
+      return derived();
+    }
+
+    /** Multiplies *this by the transposition \f$(ij)\f$ on the right.
+      *
+      * \returns a reference to *this.
+      *
+      * This is a fast operation, it only consists in swapping two indices.
+      *
+      * \sa applyTranspositionOnTheLeft(int,int)
+      */
+    Derived& applyTranspositionOnTheRight(Index i, Index j)
+    {
+      eigen_assert(i>=0 && j>=0 && i<size() && j<size());
+      std::swap(indices().coeffRef(i), indices().coeffRef(j));
+      return derived();
+    }
+
+    /** \returns the inverse permutation matrix.
+      *
+      * \note \note_try_to_help_rvo
+      */
+    inline Transpose<PermutationBase> inverse() const
+    { return derived(); }
+    /** \returns the tranpose permutation matrix.
+      *
+      * \note \note_try_to_help_rvo
+      */
+    inline Transpose<PermutationBase> transpose() const
+    { return derived(); }
+
+    /**** multiplication helpers to hopefully get RVO ****/
+
+  
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+  protected:
+    template<typename OtherDerived>
+    void assignTranspose(const PermutationBase<OtherDerived>& other)
+    {
+      for (int i=0; i<rows();++i) indices().coeffRef(other.indices().coeff(i)) = i;
+    }
+    template<typename Lhs,typename Rhs>
+    void assignProduct(const Lhs& lhs, const Rhs& rhs)
+    {
+      eigen_assert(lhs.cols() == rhs.rows());
+      for (int i=0; i<rows();++i) indices().coeffRef(i) = lhs.indices().coeff(rhs.indices().coeff(i));
+    }
+#endif
+
+  public:
+
+    /** \returns the product permutation matrix.
+      *
+      * \note \note_try_to_help_rvo
+      */
+    template<typename Other>
+    inline PlainPermutationType operator*(const PermutationBase<Other>& other) const
+    { return PlainPermutationType(internal::PermPermProduct, derived(), other.derived()); }
+
+    /** \returns the product of a permutation with another inverse permutation.
+      *
+      * \note \note_try_to_help_rvo
+      */
+    template<typename Other>
+    inline PlainPermutationType operator*(const Transpose<PermutationBase<Other> >& other) const
+    { return PlainPermutationType(internal::PermPermProduct, *this, other.eval()); }
+
+    /** \returns the product of an inverse permutation with another permutation.
+      *
+      * \note \note_try_to_help_rvo
+      */
+    template<typename Other> friend
+    inline PlainPermutationType operator*(const Transpose<PermutationBase<Other> >& other, const PermutationBase& perm)
+    { return PlainPermutationType(internal::PermPermProduct, other.eval(), perm); }
+    
+    /** \returns the determinant of the permutation matrix, which is either 1 or -1 depending on the parity of the permutation.
+      *
+      * This function is O(\c n) procedure allocating a buffer of \c n booleans.
+      */
+    Index determinant() const
+    {
+      Index res = 1;
+      Index n = size();
+      Matrix<bool,RowsAtCompileTime,1,0,MaxRowsAtCompileTime> mask(n);
+      mask.fill(false);
+      Index r = 0;
+      while(r < n)
+      {
+        // search for the next seed
+        while(r<n && mask[r]) r++;
+        if(r>=n)
+          break;
+        // we got one, let's follow it until we are back to the seed
+        Index k0 = r++;
+        mask.coeffRef(k0) = true;
+        for(Index k=indices().coeff(k0); k!=k0; k=indices().coeff(k))
+        {
+          mask.coeffRef(k) = true;
+          res = -res;
+        }
+      }
+      return res;
+    }
+
+  protected:
+
+};
+
+/** \class PermutationMatrix
+  * \ingroup Core_Module
+  *
+  * \brief Permutation matrix
+  *
+  * \param SizeAtCompileTime the number of rows/cols, or Dynamic
+  * \param MaxSizeAtCompileTime the maximum number of rows/cols, or Dynamic. This optional parameter defaults to SizeAtCompileTime. Most of the time, you should not have to specify it.
+  * \param IndexType the interger type of the indices
+  *
+  * This class represents a permutation matrix, internally stored as a vector of integers.
+  *
+  * \sa class PermutationBase, class PermutationWrapper, class DiagonalMatrix
+  */
+
+namespace internal {
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
+struct traits<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType> >
+ : traits<Matrix<IndexType,SizeAtCompileTime,SizeAtCompileTime,0,MaxSizeAtCompileTime,MaxSizeAtCompileTime> >
+{
+  typedef IndexType Index;
+  typedef Matrix<IndexType, SizeAtCompileTime, 1, 0, MaxSizeAtCompileTime, 1> IndicesType;
+};
+}
+
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
+class PermutationMatrix : public PermutationBase<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType> >
+{
+    typedef PermutationBase<PermutationMatrix> Base;
+    typedef internal::traits<PermutationMatrix> Traits;
+  public:
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    typedef typename Traits::IndicesType IndicesType;
+    #endif
+
+    inline PermutationMatrix()
+    {}
+
+    /** Constructs an uninitialized permutation matrix of given size.
+      */
+    inline PermutationMatrix(int size) : m_indices(size)
+    {}
+
+    /** Copy constructor. */
+    template<typename OtherDerived>
+    inline PermutationMatrix(const PermutationBase<OtherDerived>& other)
+      : m_indices(other.indices()) {}
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** Standard copy constructor. Defined only to prevent a default copy constructor
+      * from hiding the other templated constructor */
+    inline PermutationMatrix(const PermutationMatrix& other) : m_indices(other.indices()) {}
+    #endif
+
+    /** Generic constructor from expression of the indices. The indices
+      * array has the meaning that the permutations sends each integer i to indices[i].
+      *
+      * \warning It is your responsibility to check that the indices array that you passes actually
+      * describes a permutation, i.e., each value between 0 and n-1 occurs exactly once, where n is the
+      * array's size.
+      */
+    template<typename Other>
+    explicit inline PermutationMatrix(const MatrixBase<Other>& a_indices) : m_indices(a_indices)
+    {}
+
+    /** Convert the Transpositions \a tr to a permutation matrix */
+    template<typename Other>
+    explicit PermutationMatrix(const TranspositionsBase<Other>& tr)
+      : m_indices(tr.size())
+    {
+      *this = tr;
+    }
+
+    /** Copies the other permutation into *this */
+    template<typename Other>
+    PermutationMatrix& operator=(const PermutationBase<Other>& other)
+    {
+      m_indices = other.indices();
+      return *this;
+    }
+
+    /** Assignment from the Transpositions \a tr */
+    template<typename Other>
+    PermutationMatrix& operator=(const TranspositionsBase<Other>& tr)
+    {
+      return Base::operator=(tr.derived());
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** This is a special case of the templated operator=. Its purpose is to
+      * prevent a default operator= from hiding the templated operator=.
+      */
+    PermutationMatrix& operator=(const PermutationMatrix& other)
+    {
+      m_indices = other.m_indices;
+      return *this;
+    }
+    #endif
+
+    /** const version of indices(). */
+    const IndicesType& indices() const { return m_indices; }
+    /** \returns a reference to the stored array representing the permutation. */
+    IndicesType& indices() { return m_indices; }
+
+
+    /**** multiplication helpers to hopefully get RVO ****/
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename Other>
+    PermutationMatrix(const Transpose<PermutationBase<Other> >& other)
+      : m_indices(other.nestedPermutation().size())
+    {
+      for (int i=0; i<m_indices.size();++i) m_indices.coeffRef(other.nestedPermutation().indices().coeff(i)) = i;
+    }
+    template<typename Lhs,typename Rhs>
+    PermutationMatrix(internal::PermPermProduct_t, const Lhs& lhs, const Rhs& rhs)
+      : m_indices(lhs.indices().size())
+    {
+      Base::assignProduct(lhs,rhs);
+    }
+#endif
+
+  protected:
+
+    IndicesType m_indices;
+};
+
+
+namespace internal {
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType, int _PacketAccess>
+struct traits<Map<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType>,_PacketAccess> >
+ : traits<Matrix<IndexType,SizeAtCompileTime,SizeAtCompileTime,0,MaxSizeAtCompileTime,MaxSizeAtCompileTime> >
+{
+  typedef IndexType Index;
+  typedef Map<const Matrix<IndexType, SizeAtCompileTime, 1, 0, MaxSizeAtCompileTime, 1>, _PacketAccess> IndicesType;
+};
+}
+
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType, int _PacketAccess>
+class Map<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType>,_PacketAccess>
+  : public PermutationBase<Map<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType>,_PacketAccess> >
+{
+    typedef PermutationBase<Map> Base;
+    typedef internal::traits<Map> Traits;
+  public:
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    typedef typename Traits::IndicesType IndicesType;
+    typedef typename IndicesType::Scalar Index;
+    #endif
+
+    inline Map(const Index* indicesPtr)
+      : m_indices(indicesPtr)
+    {}
+
+    inline Map(const Index* indicesPtr, Index size)
+      : m_indices(indicesPtr,size)
+    {}
+
+    /** Copies the other permutation into *this */
+    template<typename Other>
+    Map& operator=(const PermutationBase<Other>& other)
+    { return Base::operator=(other.derived()); }
+
+    /** Assignment from the Transpositions \a tr */
+    template<typename Other>
+    Map& operator=(const TranspositionsBase<Other>& tr)
+    { return Base::operator=(tr.derived()); }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** This is a special case of the templated operator=. Its purpose is to
+      * prevent a default operator= from hiding the templated operator=.
+      */
+    Map& operator=(const Map& other)
+    {
+      m_indices = other.m_indices;
+      return *this;
+    }
+    #endif
+
+    /** const version of indices(). */
+    const IndicesType& indices() const { return m_indices; }
+    /** \returns a reference to the stored array representing the permutation. */
+    IndicesType& indices() { return m_indices; }
+
+  protected:
+
+    IndicesType m_indices;
+};
+
+/** \class PermutationWrapper
+  * \ingroup Core_Module
+  *
+  * \brief Class to view a vector of integers as a permutation matrix
+  *
+  * \param _IndicesType the type of the vector of integer (can be any compatible expression)
+  *
+  * This class allows to view any vector expression of integers as a permutation matrix.
+  *
+  * \sa class PermutationBase, class PermutationMatrix
+  */
+
+struct PermutationStorage {};
+
+template<typename _IndicesType> class TranspositionsWrapper;
+namespace internal {
+template<typename _IndicesType>
+struct traits<PermutationWrapper<_IndicesType> >
+{
+  typedef PermutationStorage StorageKind;
+  typedef typename _IndicesType::Scalar Scalar;
+  typedef typename _IndicesType::Scalar Index;
+  typedef _IndicesType IndicesType;
+  enum {
+    RowsAtCompileTime = _IndicesType::SizeAtCompileTime,
+    ColsAtCompileTime = _IndicesType::SizeAtCompileTime,
+    MaxRowsAtCompileTime = IndicesType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = IndicesType::MaxColsAtCompileTime,
+    Flags = 0,
+    CoeffReadCost = _IndicesType::CoeffReadCost
+  };
+};
+}
+
+template<typename _IndicesType>
+class PermutationWrapper : public PermutationBase<PermutationWrapper<_IndicesType> >
+{
+    typedef PermutationBase<PermutationWrapper> Base;
+    typedef internal::traits<PermutationWrapper> Traits;
+  public:
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    typedef typename Traits::IndicesType IndicesType;
+    #endif
+
+    inline PermutationWrapper(const IndicesType& a_indices)
+      : m_indices(a_indices)
+    {}
+
+    /** const version of indices(). */
+    const typename internal::remove_all<typename IndicesType::Nested>::type&
+    indices() const { return m_indices; }
+
+  protected:
+
+    typename IndicesType::Nested m_indices;
+};
+
+/** \returns the matrix with the permutation applied to the columns.
+  */
+template<typename Derived, typename PermutationDerived>
+inline const internal::permut_matrix_product_retval<PermutationDerived, Derived, OnTheRight>
+operator*(const MatrixBase<Derived>& matrix,
+          const PermutationBase<PermutationDerived> &permutation)
+{
+  return internal::permut_matrix_product_retval
+           <PermutationDerived, Derived, OnTheRight>
+           (permutation.derived(), matrix.derived());
+}
+
+/** \returns the matrix with the permutation applied to the rows.
+  */
+template<typename Derived, typename PermutationDerived>
+inline const internal::permut_matrix_product_retval
+               <PermutationDerived, Derived, OnTheLeft>
+operator*(const PermutationBase<PermutationDerived> &permutation,
+          const MatrixBase<Derived>& matrix)
+{
+  return internal::permut_matrix_product_retval
+           <PermutationDerived, Derived, OnTheLeft>
+           (permutation.derived(), matrix.derived());
+}
+
+namespace internal {
+
+template<typename PermutationType, typename MatrixType, int Side, bool Transposed>
+struct traits<permut_matrix_product_retval<PermutationType, MatrixType, Side, Transposed> >
+{
+  typedef typename MatrixType::PlainObject ReturnType;
+};
+
+template<typename PermutationType, typename MatrixType, int Side, bool Transposed>
+struct permut_matrix_product_retval
+ : public ReturnByValue<permut_matrix_product_retval<PermutationType, MatrixType, Side, Transposed> >
+{
+    typedef typename remove_all<typename MatrixType::Nested>::type MatrixTypeNestedCleaned;
+    typedef typename MatrixType::Index Index;
+
+    permut_matrix_product_retval(const PermutationType& perm, const MatrixType& matrix)
+      : m_permutation(perm), m_matrix(matrix)
+    {}
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+
+    template<typename Dest> inline void evalTo(Dest& dst) const
+    {
+      const Index n = Side==OnTheLeft ? rows() : cols();
+      // FIXME we need an is_same for expression that is not sensitive to constness. For instance
+      // is_same_xpr<Block<const Matrix>, Block<Matrix> >::value should be true.
+      if(    is_same<MatrixTypeNestedCleaned,Dest>::value
+          && blas_traits<MatrixTypeNestedCleaned>::HasUsableDirectAccess
+          && blas_traits<Dest>::HasUsableDirectAccess
+          && extract_data(dst) == extract_data(m_matrix))
+      {
+        // apply the permutation inplace
+        Matrix<bool,PermutationType::RowsAtCompileTime,1,0,PermutationType::MaxRowsAtCompileTime> mask(m_permutation.size());
+        mask.fill(false);
+        Index r = 0;
+        while(r < m_permutation.size())
+        {
+          // search for the next seed
+          while(r<m_permutation.size() && mask[r]) r++;
+          if(r>=m_permutation.size())
+            break;
+          // we got one, let's follow it until we are back to the seed
+          Index k0 = r++;
+          Index kPrev = k0;
+          mask.coeffRef(k0) = true;
+          for(Index k=m_permutation.indices().coeff(k0); k!=k0; k=m_permutation.indices().coeff(k))
+          {
+                  Block<Dest, Side==OnTheLeft ? 1 : Dest::RowsAtCompileTime, Side==OnTheRight ? 1 : Dest::ColsAtCompileTime>(dst, k)
+            .swap(Block<Dest, Side==OnTheLeft ? 1 : Dest::RowsAtCompileTime, Side==OnTheRight ? 1 : Dest::ColsAtCompileTime>
+                       (dst,((Side==OnTheLeft) ^ Transposed) ? k0 : kPrev));
+
+            mask.coeffRef(k) = true;
+            kPrev = k;
+          }
+        }
+      }
+      else
+      {
+        for(int i = 0; i < n; ++i)
+        {
+          Block<Dest, Side==OnTheLeft ? 1 : Dest::RowsAtCompileTime, Side==OnTheRight ? 1 : Dest::ColsAtCompileTime>
+               (dst, ((Side==OnTheLeft) ^ Transposed) ? m_permutation.indices().coeff(i) : i)
+
+          =
+
+          Block<const MatrixTypeNestedCleaned,Side==OnTheLeft ? 1 : MatrixType::RowsAtCompileTime,Side==OnTheRight ? 1 : MatrixType::ColsAtCompileTime>
+               (m_matrix, ((Side==OnTheRight) ^ Transposed) ? m_permutation.indices().coeff(i) : i);
+        }
+      }
+    }
+
+  protected:
+    const PermutationType& m_permutation;
+    typename MatrixType::Nested m_matrix;
+};
+
+/* Template partial specialization for transposed/inverse permutations */
+
+template<typename Derived>
+struct traits<Transpose<PermutationBase<Derived> > >
+ : traits<Derived>
+{};
+
+} // end namespace internal
+
+template<typename Derived>
+class Transpose<PermutationBase<Derived> >
+  : public EigenBase<Transpose<PermutationBase<Derived> > >
+{
+    typedef Derived PermutationType;
+    typedef typename PermutationType::IndicesType IndicesType;
+    typedef typename PermutationType::PlainPermutationType PlainPermutationType;
+  public:
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    typedef internal::traits<PermutationType> Traits;
+    typedef typename Derived::DenseMatrixType DenseMatrixType;
+    enum {
+      Flags = Traits::Flags,
+      CoeffReadCost = Traits::CoeffReadCost,
+      RowsAtCompileTime = Traits::RowsAtCompileTime,
+      ColsAtCompileTime = Traits::ColsAtCompileTime,
+      MaxRowsAtCompileTime = Traits::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = Traits::MaxColsAtCompileTime
+    };
+    typedef typename Traits::Scalar Scalar;
+    #endif
+
+    Transpose(const PermutationType& p) : m_permutation(p) {}
+
+    inline int rows() const { return m_permutation.rows(); }
+    inline int cols() const { return m_permutation.cols(); }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename DenseDerived>
+    void evalTo(MatrixBase<DenseDerived>& other) const
+    {
+      other.setZero();
+      for (int i=0; i<rows();++i)
+        other.coeffRef(i, m_permutation.indices().coeff(i)) = typename DenseDerived::Scalar(1);
+    }
+    #endif
+
+    /** \return the equivalent permutation matrix */
+    PlainPermutationType eval() const { return *this; }
+
+    DenseMatrixType toDenseMatrix() const { return *this; }
+
+    /** \returns the matrix with the inverse permutation applied to the columns.
+      */
+    template<typename OtherDerived> friend
+    inline const internal::permut_matrix_product_retval<PermutationType, OtherDerived, OnTheRight, true>
+    operator*(const MatrixBase<OtherDerived>& matrix, const Transpose& trPerm)
+    {
+      return internal::permut_matrix_product_retval<PermutationType, OtherDerived, OnTheRight, true>(trPerm.m_permutation, matrix.derived());
+    }
+
+    /** \returns the matrix with the inverse permutation applied to the rows.
+      */
+    template<typename OtherDerived>
+    inline const internal::permut_matrix_product_retval<PermutationType, OtherDerived, OnTheLeft, true>
+    operator*(const MatrixBase<OtherDerived>& matrix) const
+    {
+      return internal::permut_matrix_product_retval<PermutationType, OtherDerived, OnTheLeft, true>(m_permutation, matrix.derived());
+    }
+
+    const PermutationType& nestedPermutation() const { return m_permutation; }
+
+  protected:
+    const PermutationType& m_permutation;
+};
+
+template<typename Derived>
+const PermutationWrapper<const Derived> MatrixBase<Derived>::asPermutation() const
+{
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_PERMUTATIONMATRIX_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/PlainObjectBase.h b/vendor/eigen-3.2.8/Eigen/src/Core/PlainObjectBase.h
new file mode 100644
index 0000000..a4e4af4
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/PlainObjectBase.h
@@ -0,0 +1,822 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DENSESTORAGEBASE_H
+#define EIGEN_DENSESTORAGEBASE_H
+
+#if defined(EIGEN_INITIALIZE_MATRICES_BY_ZERO)
+# define EIGEN_INITIALIZE_COEFFS
+# define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED for(int i=0;i<base().size();++i) coeffRef(i)=Scalar(0);
+#elif defined(EIGEN_INITIALIZE_MATRICES_BY_NAN)
+# define EIGEN_INITIALIZE_COEFFS
+# define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED for(int i=0;i<base().size();++i) coeffRef(i)=std::numeric_limits<Scalar>::quiet_NaN();
+#else
+# undef EIGEN_INITIALIZE_COEFFS
+# define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+#endif
+
+namespace Eigen {
+
+namespace internal {
+
+template<int MaxSizeAtCompileTime> struct check_rows_cols_for_overflow {
+  template<typename Index>
+  static EIGEN_ALWAYS_INLINE void run(Index, Index)
+  {
+  }
+};
+
+template<> struct check_rows_cols_for_overflow<Dynamic> {
+  template<typename Index>
+  static EIGEN_ALWAYS_INLINE void run(Index rows, Index cols)
+  {
+    // http://hg.mozilla.org/mozilla-central/file/6c8a909977d3/xpcom/ds/CheckedInt.h#l242
+    // we assume Index is signed
+    Index max_index = (size_t(1) << (8 * sizeof(Index) - 1)) - 1; // assume Index is signed
+    bool error = (rows == 0 || cols == 0) ? false
+               : (rows > max_index / cols);
+    if (error)
+      throw_std_bad_alloc();
+  }
+};
+
+template <typename Derived,
+          typename OtherDerived = Derived,
+          bool IsVector = bool(Derived::IsVectorAtCompileTime) && bool(OtherDerived::IsVectorAtCompileTime)>
+struct conservative_resize_like_impl;
+
+template<typename MatrixTypeA, typename MatrixTypeB, bool SwapPointers> struct matrix_swap_impl;
+
+} // end namespace internal
+
+/** \class PlainObjectBase
+  * \brief %Dense storage base class for matrices and arrays.
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_PLAINOBJECTBASE_PLUGIN.
+  *
+  * \sa \ref TopicClassHierarchy
+  */
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+namespace internal {
+
+// this is a warkaround to doxygen not being able to understand the inheritence logic
+// when it is hidden by the dense_xpr_base helper struct.
+template<typename Derived> struct dense_xpr_base_dispatcher_for_doxygen;// : public MatrixBase<Derived> {};
+/** This class is just a workaround for Doxygen and it does not not actually exist. */
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct dense_xpr_base_dispatcher_for_doxygen<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+    : public MatrixBase<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > {};
+/** This class is just a workaround for Doxygen and it does not not actually exist. */
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct dense_xpr_base_dispatcher_for_doxygen<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+    : public ArrayBase<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > {};
+
+} // namespace internal
+
+template<typename Derived>
+class PlainObjectBase : public internal::dense_xpr_base_dispatcher_for_doxygen<Derived>
+#else
+template<typename Derived>
+class PlainObjectBase : public internal::dense_xpr_base<Derived>::type
+#endif
+{
+  public:
+    enum { Options = internal::traits<Derived>::Options };
+    typedef typename internal::dense_xpr_base<Derived>::type Base;
+
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef Derived DenseType;
+
+    using Base::RowsAtCompileTime;
+    using Base::ColsAtCompileTime;
+    using Base::SizeAtCompileTime;
+    using Base::MaxRowsAtCompileTime;
+    using Base::MaxColsAtCompileTime;
+    using Base::MaxSizeAtCompileTime;
+    using Base::IsVectorAtCompileTime;
+    using Base::Flags;
+
+    template<typename PlainObjectType, int MapOptions, typename StrideType> friend class Eigen::Map;
+    friend  class Eigen::Map<Derived, Unaligned>;
+    typedef Eigen::Map<Derived, Unaligned>  MapType;
+    friend  class Eigen::Map<const Derived, Unaligned>;
+    typedef const Eigen::Map<const Derived, Unaligned> ConstMapType;
+    friend  class Eigen::Map<Derived, Aligned>;
+    typedef Eigen::Map<Derived, Aligned> AlignedMapType;
+    friend  class Eigen::Map<const Derived, Aligned>;
+    typedef const Eigen::Map<const Derived, Aligned> ConstAlignedMapType;
+    template<typename StrideType> struct StridedMapType { typedef Eigen::Map<Derived, Unaligned, StrideType> type; };
+    template<typename StrideType> struct StridedConstMapType { typedef Eigen::Map<const Derived, Unaligned, StrideType> type; };
+    template<typename StrideType> struct StridedAlignedMapType { typedef Eigen::Map<Derived, Aligned, StrideType> type; };
+    template<typename StrideType> struct StridedConstAlignedMapType { typedef Eigen::Map<const Derived, Aligned, StrideType> type; };
+
+  protected:
+    DenseStorage<Scalar, Base::MaxSizeAtCompileTime, Base::RowsAtCompileTime, Base::ColsAtCompileTime, Options> m_storage;
+
+  public:
+    enum { NeedsToAlign = SizeAtCompileTime != Dynamic && (internal::traits<Derived>::Flags & AlignedBit) != 0 };
+    EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign)
+
+    Base& base() { return *static_cast<Base*>(this); }
+    const Base& base() const { return *static_cast<const Base*>(this); }
+
+    EIGEN_STRONG_INLINE Index rows() const { return m_storage.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return m_storage.cols(); }
+
+    EIGEN_STRONG_INLINE const Scalar& coeff(Index rowId, Index colId) const
+    {
+      if(Flags & RowMajorBit)
+        return m_storage.data()[colId + rowId * m_storage.cols()];
+      else // column-major
+        return m_storage.data()[rowId + colId * m_storage.rows()];
+    }
+
+    EIGEN_STRONG_INLINE const Scalar& coeff(Index index) const
+    {
+      return m_storage.data()[index];
+    }
+
+    EIGEN_STRONG_INLINE Scalar& coeffRef(Index rowId, Index colId)
+    {
+      if(Flags & RowMajorBit)
+        return m_storage.data()[colId + rowId * m_storage.cols()];
+      else // column-major
+        return m_storage.data()[rowId + colId * m_storage.rows()];
+    }
+
+    EIGEN_STRONG_INLINE Scalar& coeffRef(Index index)
+    {
+      return m_storage.data()[index];
+    }
+
+    EIGEN_STRONG_INLINE const Scalar& coeffRef(Index rowId, Index colId) const
+    {
+      if(Flags & RowMajorBit)
+        return m_storage.data()[colId + rowId * m_storage.cols()];
+      else // column-major
+        return m_storage.data()[rowId + colId * m_storage.rows()];
+    }
+
+    EIGEN_STRONG_INLINE const Scalar& coeffRef(Index index) const
+    {
+      return m_storage.data()[index];
+    }
+
+    /** \internal */
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index rowId, Index colId) const
+    {
+      return internal::ploadt<PacketScalar, LoadMode>
+               (m_storage.data() + (Flags & RowMajorBit
+                                   ? colId + rowId * m_storage.cols()
+                                   : rowId + colId * m_storage.rows()));
+    }
+
+    /** \internal */
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index index) const
+    {
+      return internal::ploadt<PacketScalar, LoadMode>(m_storage.data() + index);
+    }
+
+    /** \internal */
+    template<int StoreMode>
+    EIGEN_STRONG_INLINE void writePacket(Index rowId, Index colId, const PacketScalar& val)
+    {
+      internal::pstoret<Scalar, PacketScalar, StoreMode>
+              (m_storage.data() + (Flags & RowMajorBit
+                                   ? colId + rowId * m_storage.cols()
+                                   : rowId + colId * m_storage.rows()), val);
+    }
+
+    /** \internal */
+    template<int StoreMode>
+    EIGEN_STRONG_INLINE void writePacket(Index index, const PacketScalar& val)
+    {
+      internal::pstoret<Scalar, PacketScalar, StoreMode>(m_storage.data() + index, val);
+    }
+
+    /** \returns a const pointer to the data array of this matrix */
+    EIGEN_STRONG_INLINE const Scalar *data() const
+    { return m_storage.data(); }
+
+    /** \returns a pointer to the data array of this matrix */
+    EIGEN_STRONG_INLINE Scalar *data()
+    { return m_storage.data(); }
+
+    /** Resizes \c *this to a \a rows x \a cols matrix.
+      *
+      * This method is intended for dynamic-size matrices, although it is legal to call it on any
+      * matrix as long as fixed dimensions are left unchanged. If you only want to change the number
+      * of rows and/or of columns, you can use resize(NoChange_t, Index), resize(Index, NoChange_t).
+      *
+      * If the current number of coefficients of \c *this exactly matches the
+      * product \a rows * \a cols, then no memory allocation is performed and
+      * the current values are left unchanged. In all other cases, including
+      * shrinking, the data is reallocated and all previous values are lost.
+      *
+      * Example: \include Matrix_resize_int_int.cpp
+      * Output: \verbinclude Matrix_resize_int_int.out
+      *
+      * \sa resize(Index) for vectors, resize(NoChange_t, Index), resize(Index, NoChange_t)
+      */
+    EIGEN_STRONG_INLINE void resize(Index nbRows, Index nbCols)
+    {
+      eigen_assert(   EIGEN_IMPLIES(RowsAtCompileTime!=Dynamic,nbRows==RowsAtCompileTime)
+                   && EIGEN_IMPLIES(ColsAtCompileTime!=Dynamic,nbCols==ColsAtCompileTime)
+                   && EIGEN_IMPLIES(RowsAtCompileTime==Dynamic && MaxRowsAtCompileTime!=Dynamic,nbRows<=MaxRowsAtCompileTime)
+                   && EIGEN_IMPLIES(ColsAtCompileTime==Dynamic && MaxColsAtCompileTime!=Dynamic,nbCols<=MaxColsAtCompileTime)
+                   && nbRows>=0 && nbCols>=0 && "Invalid sizes when resizing a matrix or array.");
+      internal::check_rows_cols_for_overflow<MaxSizeAtCompileTime>::run(nbRows, nbCols);
+      #ifdef EIGEN_INITIALIZE_COEFFS
+        Index size = nbRows*nbCols;
+        bool size_changed = size != this->size();
+        m_storage.resize(size, nbRows, nbCols);
+        if(size_changed) EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+      #else
+        internal::check_rows_cols_for_overflow<MaxSizeAtCompileTime>::run(nbRows, nbCols);
+        m_storage.resize(nbRows*nbCols, nbRows, nbCols);
+      #endif
+    }
+
+    /** Resizes \c *this to a vector of length \a size
+      *
+      * \only_for_vectors. This method does not work for
+      * partially dynamic matrices when the static dimension is anything other
+      * than 1. For example it will not work with Matrix<double, 2, Dynamic>.
+      *
+      * Example: \include Matrix_resize_int.cpp
+      * Output: \verbinclude Matrix_resize_int.out
+      *
+      * \sa resize(Index,Index), resize(NoChange_t, Index), resize(Index, NoChange_t)
+      */
+    inline void resize(Index size)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(PlainObjectBase)
+      eigen_assert(((SizeAtCompileTime == Dynamic && (MaxSizeAtCompileTime==Dynamic || size<=MaxSizeAtCompileTime)) || SizeAtCompileTime == size) && size>=0);
+      #ifdef EIGEN_INITIALIZE_COEFFS
+        bool size_changed = size != this->size();
+      #endif
+      if(RowsAtCompileTime == 1)
+        m_storage.resize(size, 1, size);
+      else
+        m_storage.resize(size, size, 1);
+      #ifdef EIGEN_INITIALIZE_COEFFS
+        if(size_changed) EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+      #endif
+    }
+
+    /** Resizes the matrix, changing only the number of columns. For the parameter of type NoChange_t, just pass the special value \c NoChange
+      * as in the example below.
+      *
+      * Example: \include Matrix_resize_NoChange_int.cpp
+      * Output: \verbinclude Matrix_resize_NoChange_int.out
+      *
+      * \sa resize(Index,Index)
+      */
+    inline void resize(NoChange_t, Index nbCols)
+    {
+      resize(rows(), nbCols);
+    }
+
+    /** Resizes the matrix, changing only the number of rows. For the parameter of type NoChange_t, just pass the special value \c NoChange
+      * as in the example below.
+      *
+      * Example: \include Matrix_resize_int_NoChange.cpp
+      * Output: \verbinclude Matrix_resize_int_NoChange.out
+      *
+      * \sa resize(Index,Index)
+      */
+    inline void resize(Index nbRows, NoChange_t)
+    {
+      resize(nbRows, cols());
+    }
+
+    /** Resizes \c *this to have the same dimensions as \a other.
+      * Takes care of doing all the checking that's needed.
+      *
+      * Note that copying a row-vector into a vector (and conversely) is allowed.
+      * The resizing, if any, is then done in the appropriate way so that row-vectors
+      * remain row-vectors and vectors remain vectors.
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE void resizeLike(const EigenBase<OtherDerived>& _other)
+    {
+      const OtherDerived& other = _other.derived();
+      internal::check_rows_cols_for_overflow<MaxSizeAtCompileTime>::run(other.rows(), other.cols());
+      const Index othersize = other.rows()*other.cols();
+      if(RowsAtCompileTime == 1)
+      {
+        eigen_assert(other.rows() == 1 || other.cols() == 1);
+        resize(1, othersize);
+      }
+      else if(ColsAtCompileTime == 1)
+      {
+        eigen_assert(other.rows() == 1 || other.cols() == 1);
+        resize(othersize, 1);
+      }
+      else resize(other.rows(), other.cols());
+    }
+
+    /** Resizes the matrix to \a rows x \a cols while leaving old values untouched.
+      *
+      * The method is intended for matrices of dynamic size. If you only want to change the number
+      * of rows and/or of columns, you can use conservativeResize(NoChange_t, Index) or
+      * conservativeResize(Index, NoChange_t).
+      *
+      * Matrices are resized relative to the top-left element. In case values need to be 
+      * appended to the matrix they will be uninitialized.
+      */
+    EIGEN_STRONG_INLINE void conservativeResize(Index nbRows, Index nbCols)
+    {
+      internal::conservative_resize_like_impl<Derived>::run(*this, nbRows, nbCols);
+    }
+
+    /** Resizes the matrix to \a rows x \a cols while leaving old values untouched.
+      *
+      * As opposed to conservativeResize(Index rows, Index cols), this version leaves
+      * the number of columns unchanged.
+      *
+      * In case the matrix is growing, new rows will be uninitialized.
+      */
+    EIGEN_STRONG_INLINE void conservativeResize(Index nbRows, NoChange_t)
+    {
+      // Note: see the comment in conservativeResize(Index,Index)
+      conservativeResize(nbRows, cols());
+    }
+
+    /** Resizes the matrix to \a rows x \a cols while leaving old values untouched.
+      *
+      * As opposed to conservativeResize(Index rows, Index cols), this version leaves
+      * the number of rows unchanged.
+      *
+      * In case the matrix is growing, new columns will be uninitialized.
+      */
+    EIGEN_STRONG_INLINE void conservativeResize(NoChange_t, Index nbCols)
+    {
+      // Note: see the comment in conservativeResize(Index,Index)
+      conservativeResize(rows(), nbCols);
+    }
+
+    /** Resizes the vector to \a size while retaining old values.
+      *
+      * \only_for_vectors. This method does not work for
+      * partially dynamic matrices when the static dimension is anything other
+      * than 1. For example it will not work with Matrix<double, 2, Dynamic>.
+      *
+      * When values are appended, they will be uninitialized.
+      */
+    EIGEN_STRONG_INLINE void conservativeResize(Index size)
+    {
+      internal::conservative_resize_like_impl<Derived>::run(*this, size);
+    }
+
+    /** Resizes the matrix to \a rows x \a cols of \c other, while leaving old values untouched.
+      *
+      * The method is intended for matrices of dynamic size. If you only want to change the number
+      * of rows and/or of columns, you can use conservativeResize(NoChange_t, Index) or
+      * conservativeResize(Index, NoChange_t).
+      *
+      * Matrices are resized relative to the top-left element. In case values need to be 
+      * appended to the matrix they will copied from \c other.
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE void conservativeResizeLike(const DenseBase<OtherDerived>& other)
+    {
+      internal::conservative_resize_like_impl<Derived,OtherDerived>::run(*this, other);
+    }
+
+    /** This is a special case of the templated operator=. Its purpose is to
+      * prevent a default operator= from hiding the templated operator=.
+      */
+    EIGEN_STRONG_INLINE Derived& operator=(const PlainObjectBase& other)
+    {
+      return _set(other);
+    }
+
+    /** \sa MatrixBase::lazyAssign() */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Derived& lazyAssign(const DenseBase<OtherDerived>& other)
+    {
+      _resize_to_match(other);
+      return Base::lazyAssign(other.derived());
+    }
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Derived& operator=(const ReturnByValue<OtherDerived>& func)
+    {
+      resize(func.rows(), func.cols());
+      return Base::operator=(func);
+    }
+
+    EIGEN_STRONG_INLINE PlainObjectBase() : m_storage()
+    {
+//       _check_template_params();
+//       EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    // FIXME is it still needed ?
+    /** \internal */
+    PlainObjectBase(internal::constructor_without_unaligned_array_assert)
+      : m_storage(internal::constructor_without_unaligned_array_assert())
+    {
+//       _check_template_params(); EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+#endif
+
+#ifdef EIGEN_HAVE_RVALUE_REFERENCES
+    PlainObjectBase(PlainObjectBase&& other)
+      : m_storage( std::move(other.m_storage) )
+    {
+    }
+
+    PlainObjectBase& operator=(PlainObjectBase&& other)
+    {
+      using std::swap;
+      swap(m_storage, other.m_storage);
+      return *this;
+    }
+#endif
+
+    /** Copy constructor */
+    EIGEN_STRONG_INLINE PlainObjectBase(const PlainObjectBase& other)
+      : m_storage()
+    {
+      _check_template_params();
+      lazyAssign(other);
+    }
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE PlainObjectBase(const DenseBase<OtherDerived> &other)
+      : m_storage()
+    {
+      _check_template_params();
+      lazyAssign(other);
+    }
+
+    EIGEN_STRONG_INLINE PlainObjectBase(Index a_size, Index nbRows, Index nbCols)
+      : m_storage(a_size, nbRows, nbCols)
+    {
+//       _check_template_params();
+//       EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+
+    /** \copydoc MatrixBase::operator=(const EigenBase<OtherDerived>&)
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Derived& operator=(const EigenBase<OtherDerived> &other)
+    {
+      _resize_to_match(other);
+      Base::operator=(other.derived());
+      return this->derived();
+    }
+
+    /** \sa MatrixBase::operator=(const EigenBase<OtherDerived>&) */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE PlainObjectBase(const EigenBase<OtherDerived> &other)
+      : m_storage(other.derived().rows() * other.derived().cols(), other.derived().rows(), other.derived().cols())
+    {
+      _check_template_params();
+      internal::check_rows_cols_for_overflow<MaxSizeAtCompileTime>::run(other.derived().rows(), other.derived().cols());
+      Base::operator=(other.derived());
+    }
+
+    /** \name Map
+      * These are convenience functions returning Map objects. The Map() static functions return unaligned Map objects,
+      * while the AlignedMap() functions return aligned Map objects and thus should be called only with 16-byte-aligned
+      * \a data pointers.
+      *
+      * \see class Map
+      */
+    //@{
+    static inline ConstMapType Map(const Scalar* data)
+    { return ConstMapType(data); }
+    static inline MapType Map(Scalar* data)
+    { return MapType(data); }
+    static inline ConstMapType Map(const Scalar* data, Index size)
+    { return ConstMapType(data, size); }
+    static inline MapType Map(Scalar* data, Index size)
+    { return MapType(data, size); }
+    static inline ConstMapType Map(const Scalar* data, Index rows, Index cols)
+    { return ConstMapType(data, rows, cols); }
+    static inline MapType Map(Scalar* data, Index rows, Index cols)
+    { return MapType(data, rows, cols); }
+
+    static inline ConstAlignedMapType MapAligned(const Scalar* data)
+    { return ConstAlignedMapType(data); }
+    static inline AlignedMapType MapAligned(Scalar* data)
+    { return AlignedMapType(data); }
+    static inline ConstAlignedMapType MapAligned(const Scalar* data, Index size)
+    { return ConstAlignedMapType(data, size); }
+    static inline AlignedMapType MapAligned(Scalar* data, Index size)
+    { return AlignedMapType(data, size); }
+    static inline ConstAlignedMapType MapAligned(const Scalar* data, Index rows, Index cols)
+    { return ConstAlignedMapType(data, rows, cols); }
+    static inline AlignedMapType MapAligned(Scalar* data, Index rows, Index cols)
+    { return AlignedMapType(data, rows, cols); }
+
+    template<int Outer, int Inner>
+    static inline typename StridedConstMapType<Stride<Outer, Inner> >::type Map(const Scalar* data, const Stride<Outer, Inner>& stride)
+    { return typename StridedConstMapType<Stride<Outer, Inner> >::type(data, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedMapType<Stride<Outer, Inner> >::type Map(Scalar* data, const Stride<Outer, Inner>& stride)
+    { return typename StridedMapType<Stride<Outer, Inner> >::type(data, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedConstMapType<Stride<Outer, Inner> >::type Map(const Scalar* data, Index size, const Stride<Outer, Inner>& stride)
+    { return typename StridedConstMapType<Stride<Outer, Inner> >::type(data, size, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedMapType<Stride<Outer, Inner> >::type Map(Scalar* data, Index size, const Stride<Outer, Inner>& stride)
+    { return typename StridedMapType<Stride<Outer, Inner> >::type(data, size, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedConstMapType<Stride<Outer, Inner> >::type Map(const Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
+    { return typename StridedConstMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedMapType<Stride<Outer, Inner> >::type Map(Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
+    { return typename StridedMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
+
+    template<int Outer, int Inner>
+    static inline typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type MapAligned(const Scalar* data, const Stride<Outer, Inner>& stride)
+    { return typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type(data, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedAlignedMapType<Stride<Outer, Inner> >::type MapAligned(Scalar* data, const Stride<Outer, Inner>& stride)
+    { return typename StridedAlignedMapType<Stride<Outer, Inner> >::type(data, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type MapAligned(const Scalar* data, Index size, const Stride<Outer, Inner>& stride)
+    { return typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type(data, size, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedAlignedMapType<Stride<Outer, Inner> >::type MapAligned(Scalar* data, Index size, const Stride<Outer, Inner>& stride)
+    { return typename StridedAlignedMapType<Stride<Outer, Inner> >::type(data, size, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type MapAligned(const Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
+    { return typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedAlignedMapType<Stride<Outer, Inner> >::type MapAligned(Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
+    { return typename StridedAlignedMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
+    //@}
+
+    using Base::setConstant;
+    Derived& setConstant(Index size, const Scalar& value);
+    Derived& setConstant(Index rows, Index cols, const Scalar& value);
+
+    using Base::setZero;
+    Derived& setZero(Index size);
+    Derived& setZero(Index rows, Index cols);
+
+    using Base::setOnes;
+    Derived& setOnes(Index size);
+    Derived& setOnes(Index rows, Index cols);
+
+    using Base::setRandom;
+    Derived& setRandom(Index size);
+    Derived& setRandom(Index rows, Index cols);
+
+    #ifdef EIGEN_PLAINOBJECTBASE_PLUGIN
+    #include EIGEN_PLAINOBJECTBASE_PLUGIN
+    #endif
+
+  protected:
+    /** \internal Resizes *this in preparation for assigning \a other to it.
+      * Takes care of doing all the checking that's needed.
+      *
+      * Note that copying a row-vector into a vector (and conversely) is allowed.
+      * The resizing, if any, is then done in the appropriate way so that row-vectors
+      * remain row-vectors and vectors remain vectors.
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE void _resize_to_match(const EigenBase<OtherDerived>& other)
+    {
+      #ifdef EIGEN_NO_AUTOMATIC_RESIZING
+      eigen_assert((this->size()==0 || (IsVectorAtCompileTime ? (this->size() == other.size())
+                 : (rows() == other.rows() && cols() == other.cols())))
+        && "Size mismatch. Automatic resizing is disabled because EIGEN_NO_AUTOMATIC_RESIZING is defined");
+      EIGEN_ONLY_USED_FOR_DEBUG(other);
+      if(this->size()==0)
+        resizeLike(other);
+      #else
+      resizeLike(other);
+      #endif
+    }
+
+    /**
+      * \brief Copies the value of the expression \a other into \c *this with automatic resizing.
+      *
+      * *this might be resized to match the dimensions of \a other. If *this was a null matrix (not already initialized),
+      * it will be initialized.
+      *
+      * Note that copying a row-vector into a vector (and conversely) is allowed.
+      * The resizing, if any, is then done in the appropriate way so that row-vectors
+      * remain row-vectors and vectors remain vectors.
+      *
+      * \sa operator=(const MatrixBase<OtherDerived>&), _set_noalias()
+      *
+      * \internal
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Derived& _set(const DenseBase<OtherDerived>& other)
+    {
+      _set_selector(other.derived(), typename internal::conditional<static_cast<bool>(int(OtherDerived::Flags) & EvalBeforeAssigningBit), internal::true_type, internal::false_type>::type());
+      return this->derived();
+    }
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE void _set_selector(const OtherDerived& other, const internal::true_type&) { _set_noalias(other.eval()); }
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE void _set_selector(const OtherDerived& other, const internal::false_type&) { _set_noalias(other); }
+
+    /** \internal Like _set() but additionally makes the assumption that no aliasing effect can happen (which
+      * is the case when creating a new matrix) so one can enforce lazy evaluation.
+      *
+      * \sa operator=(const MatrixBase<OtherDerived>&), _set()
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Derived& _set_noalias(const DenseBase<OtherDerived>& other)
+    {
+      // I don't think we need this resize call since the lazyAssign will anyways resize
+      // and lazyAssign will be called by the assign selector.
+      //_resize_to_match(other);
+      // the 'false' below means to enforce lazy evaluation. We don't use lazyAssign() because
+      // it wouldn't allow to copy a row-vector into a column-vector.
+      return internal::assign_selector<Derived,OtherDerived,false>::run(this->derived(), other.derived());
+    }
+
+    template<typename T0, typename T1>
+    EIGEN_STRONG_INLINE void _init2(Index nbRows, Index nbCols, typename internal::enable_if<Base::SizeAtCompileTime!=2,T0>::type* = 0)
+    {
+      EIGEN_STATIC_ASSERT(bool(NumTraits<T0>::IsInteger) &&
+                          bool(NumTraits<T1>::IsInteger),
+                          FLOATING_POINT_ARGUMENT_PASSED__INTEGER_WAS_EXPECTED)
+      resize(nbRows,nbCols);
+    }
+    template<typename T0, typename T1>
+    EIGEN_STRONG_INLINE void _init2(const Scalar& val0, const Scalar& val1, typename internal::enable_if<Base::SizeAtCompileTime==2,T0>::type* = 0)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(PlainObjectBase, 2)
+      m_storage.data()[0] = val0;
+      m_storage.data()[1] = val1;
+    }
+
+    template<typename MatrixTypeA, typename MatrixTypeB, bool SwapPointers>
+    friend struct internal::matrix_swap_impl;
+
+    /** \internal generic implementation of swap for dense storage since for dynamic-sized matrices of same type it is enough to swap the
+      * data pointers.
+      */
+    template<typename OtherDerived>
+    void _swap(DenseBase<OtherDerived> const & other)
+    {
+      enum { SwapPointers = internal::is_same<Derived, OtherDerived>::value && Base::SizeAtCompileTime==Dynamic };
+      internal::matrix_swap_impl<Derived, OtherDerived, bool(SwapPointers)>::run(this->derived(), other.const_cast_derived());
+    }
+
+  public:
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    static EIGEN_STRONG_INLINE void _check_template_params()
+    {
+      EIGEN_STATIC_ASSERT((EIGEN_IMPLIES(MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1, (Options&RowMajor)==RowMajor)
+                        && EIGEN_IMPLIES(MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1, (Options&RowMajor)==0)
+                        && ((RowsAtCompileTime == Dynamic) || (RowsAtCompileTime >= 0))
+                        && ((ColsAtCompileTime == Dynamic) || (ColsAtCompileTime >= 0))
+                        && ((MaxRowsAtCompileTime == Dynamic) || (MaxRowsAtCompileTime >= 0))
+                        && ((MaxColsAtCompileTime == Dynamic) || (MaxColsAtCompileTime >= 0))
+                        && (MaxRowsAtCompileTime == RowsAtCompileTime || RowsAtCompileTime==Dynamic)
+                        && (MaxColsAtCompileTime == ColsAtCompileTime || ColsAtCompileTime==Dynamic)
+                        && (Options & (DontAlign|RowMajor)) == Options),
+        INVALID_MATRIX_TEMPLATE_PARAMETERS)
+    }
+#endif
+
+private:
+    enum { ThisConstantIsPrivateInPlainObjectBase };
+};
+
+namespace internal {
+
+template <typename Derived, typename OtherDerived, bool IsVector>
+struct conservative_resize_like_impl
+{
+  typedef typename Derived::Index Index;
+  static void run(DenseBase<Derived>& _this, Index rows, Index cols)
+  {
+    if (_this.rows() == rows && _this.cols() == cols) return;
+    EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(Derived)
+
+    if ( ( Derived::IsRowMajor && _this.cols() == cols) || // row-major and we change only the number of rows
+         (!Derived::IsRowMajor && _this.rows() == rows) )  // column-major and we change only the number of columns
+    {
+      internal::check_rows_cols_for_overflow<Derived::MaxSizeAtCompileTime>::run(rows, cols);
+      _this.derived().m_storage.conservativeResize(rows*cols,rows,cols);
+    }
+    else
+    {
+      // The storage order does not allow us to use reallocation.
+      typename Derived::PlainObject tmp(rows,cols);
+      const Index common_rows = (std::min)(rows, _this.rows());
+      const Index common_cols = (std::min)(cols, _this.cols());
+      tmp.block(0,0,common_rows,common_cols) = _this.block(0,0,common_rows,common_cols);
+      _this.derived().swap(tmp);
+    }
+  }
+
+  static void run(DenseBase<Derived>& _this, const DenseBase<OtherDerived>& other)
+  {
+    if (_this.rows() == other.rows() && _this.cols() == other.cols()) return;
+
+    // Note: Here is space for improvement. Basically, for conservativeResize(Index,Index),
+    // neither RowsAtCompileTime or ColsAtCompileTime must be Dynamic. If only one of the
+    // dimensions is dynamic, one could use either conservativeResize(Index rows, NoChange_t) or
+    // conservativeResize(NoChange_t, Index cols). For these methods new static asserts like
+    // EIGEN_STATIC_ASSERT_DYNAMIC_ROWS and EIGEN_STATIC_ASSERT_DYNAMIC_COLS would be good.
+    EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(Derived)
+    EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(OtherDerived)
+
+    if ( ( Derived::IsRowMajor && _this.cols() == other.cols()) || // row-major and we change only the number of rows
+         (!Derived::IsRowMajor && _this.rows() == other.rows()) )  // column-major and we change only the number of columns
+    {
+      const Index new_rows = other.rows() - _this.rows();
+      const Index new_cols = other.cols() - _this.cols();
+      _this.derived().m_storage.conservativeResize(other.size(),other.rows(),other.cols());
+      if (new_rows>0)
+        _this.bottomRightCorner(new_rows, other.cols()) = other.bottomRows(new_rows);
+      else if (new_cols>0)
+        _this.bottomRightCorner(other.rows(), new_cols) = other.rightCols(new_cols);
+    }
+    else
+    {
+      // The storage order does not allow us to use reallocation.
+      typename Derived::PlainObject tmp(other);
+      const Index common_rows = (std::min)(tmp.rows(), _this.rows());
+      const Index common_cols = (std::min)(tmp.cols(), _this.cols());
+      tmp.block(0,0,common_rows,common_cols) = _this.block(0,0,common_rows,common_cols);
+      _this.derived().swap(tmp);
+    }
+  }
+};
+
+// Here, the specialization for vectors inherits from the general matrix case
+// to allow calling .conservativeResize(rows,cols) on vectors.
+template <typename Derived, typename OtherDerived>
+struct conservative_resize_like_impl<Derived,OtherDerived,true>
+  : conservative_resize_like_impl<Derived,OtherDerived,false>
+{
+  using conservative_resize_like_impl<Derived,OtherDerived,false>::run;
+  
+  typedef typename Derived::Index Index;
+  static void run(DenseBase<Derived>& _this, Index size)
+  {
+    const Index new_rows = Derived::RowsAtCompileTime==1 ? 1 : size;
+    const Index new_cols = Derived::RowsAtCompileTime==1 ? size : 1;
+    _this.derived().m_storage.conservativeResize(size,new_rows,new_cols);
+  }
+
+  static void run(DenseBase<Derived>& _this, const DenseBase<OtherDerived>& other)
+  {
+    if (_this.rows() == other.rows() && _this.cols() == other.cols()) return;
+
+    const Index num_new_elements = other.size() - _this.size();
+
+    const Index new_rows = Derived::RowsAtCompileTime==1 ? 1 : other.rows();
+    const Index new_cols = Derived::RowsAtCompileTime==1 ? other.cols() : 1;
+    _this.derived().m_storage.conservativeResize(other.size(),new_rows,new_cols);
+
+    if (num_new_elements > 0)
+      _this.tail(num_new_elements) = other.tail(num_new_elements);
+  }
+};
+
+template<typename MatrixTypeA, typename MatrixTypeB, bool SwapPointers>
+struct matrix_swap_impl
+{
+  static inline void run(MatrixTypeA& a, MatrixTypeB& b)
+  {
+    a.base().swap(b);
+  }
+};
+
+template<typename MatrixTypeA, typename MatrixTypeB>
+struct matrix_swap_impl<MatrixTypeA, MatrixTypeB, true>
+{
+  static inline void run(MatrixTypeA& a, MatrixTypeB& b)
+  {
+    static_cast<typename MatrixTypeA::Base&>(a).m_storage.swap(static_cast<typename MatrixTypeB::Base&>(b).m_storage);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_DENSESTORAGEBASE_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/ProductBase.h b/vendor/eigen-3.2.8/Eigen/src/Core/ProductBase.h
new file mode 100644
index 0000000..cf74470
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/ProductBase.h
@@ -0,0 +1,290 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PRODUCTBASE_H
+#define EIGEN_PRODUCTBASE_H
+
+namespace Eigen { 
+
+/** \class ProductBase
+  * \ingroup Core_Module
+  *
+  */
+
+namespace internal {
+template<typename Derived, typename _Lhs, typename _Rhs>
+struct traits<ProductBase<Derived,_Lhs,_Rhs> >
+{
+  typedef MatrixXpr XprKind;
+  typedef typename remove_all<_Lhs>::type Lhs;
+  typedef typename remove_all<_Rhs>::type Rhs;
+  typedef typename scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType Scalar;
+  typedef typename promote_storage_type<typename traits<Lhs>::StorageKind,
+                                           typename traits<Rhs>::StorageKind>::ret StorageKind;
+  typedef typename promote_index_type<typename traits<Lhs>::Index,
+                                         typename traits<Rhs>::Index>::type Index;
+  enum {
+    RowsAtCompileTime = traits<Lhs>::RowsAtCompileTime,
+    ColsAtCompileTime = traits<Rhs>::ColsAtCompileTime,
+    MaxRowsAtCompileTime = traits<Lhs>::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = traits<Rhs>::MaxColsAtCompileTime,
+    Flags = (MaxRowsAtCompileTime==1 ? RowMajorBit : 0)
+          | EvalBeforeNestingBit | EvalBeforeAssigningBit | NestByRefBit,
+                  // Note that EvalBeforeNestingBit and NestByRefBit
+                  // are not used in practice because nested is overloaded for products
+    CoeffReadCost = 0 // FIXME why is it needed ?
+  };
+};
+}
+
+#define EIGEN_PRODUCT_PUBLIC_INTERFACE(Derived) \
+  typedef ProductBase<Derived, Lhs, Rhs > Base; \
+  EIGEN_DENSE_PUBLIC_INTERFACE(Derived) \
+  typedef typename Base::LhsNested LhsNested; \
+  typedef typename Base::_LhsNested _LhsNested; \
+  typedef typename Base::LhsBlasTraits LhsBlasTraits; \
+  typedef typename Base::ActualLhsType ActualLhsType; \
+  typedef typename Base::_ActualLhsType _ActualLhsType; \
+  typedef typename Base::RhsNested RhsNested; \
+  typedef typename Base::_RhsNested _RhsNested; \
+  typedef typename Base::RhsBlasTraits RhsBlasTraits; \
+  typedef typename Base::ActualRhsType ActualRhsType; \
+  typedef typename Base::_ActualRhsType _ActualRhsType; \
+  using Base::m_lhs; \
+  using Base::m_rhs;
+
+template<typename Derived, typename Lhs, typename Rhs>
+class ProductBase : public MatrixBase<Derived>
+{
+  public:
+    typedef MatrixBase<Derived> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(ProductBase)
+    
+    typedef typename Lhs::Nested LhsNested;
+    typedef typename internal::remove_all<LhsNested>::type _LhsNested;
+    typedef internal::blas_traits<_LhsNested> LhsBlasTraits;
+    typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhsType;
+    typedef typename internal::remove_all<ActualLhsType>::type _ActualLhsType;
+    typedef typename internal::traits<Lhs>::Scalar LhsScalar;
+
+    typedef typename Rhs::Nested RhsNested;
+    typedef typename internal::remove_all<RhsNested>::type _RhsNested;
+    typedef internal::blas_traits<_RhsNested> RhsBlasTraits;
+    typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType;
+    typedef typename internal::remove_all<ActualRhsType>::type _ActualRhsType;
+    typedef typename internal::traits<Rhs>::Scalar RhsScalar;
+
+    // Diagonal of a product: no need to evaluate the arguments because they are going to be evaluated only once
+    typedef CoeffBasedProduct<LhsNested, RhsNested, 0> FullyLazyCoeffBaseProductType;
+
+  public:
+
+#ifndef EIGEN_NO_MALLOC
+    typedef typename Base::PlainObject BasePlainObject;
+    typedef Matrix<Scalar,RowsAtCompileTime==1?1:Dynamic,ColsAtCompileTime==1?1:Dynamic,BasePlainObject::Options> DynPlainObject;
+    typedef typename internal::conditional<(BasePlainObject::SizeAtCompileTime==Dynamic) || (BasePlainObject::SizeAtCompileTime*int(sizeof(Scalar)) < int(EIGEN_STACK_ALLOCATION_LIMIT)),
+                                           BasePlainObject, DynPlainObject>::type PlainObject;
+#else
+    typedef typename Base::PlainObject PlainObject;
+#endif
+
+    ProductBase(const Lhs& a_lhs, const Rhs& a_rhs)
+      : m_lhs(a_lhs), m_rhs(a_rhs)
+    {
+      eigen_assert(a_lhs.cols() == a_rhs.rows()
+        && "invalid matrix product"
+        && "if you wanted a coeff-wise or a dot product use the respective explicit functions");
+    }
+
+    inline Index rows() const { return m_lhs.rows(); }
+    inline Index cols() const { return m_rhs.cols(); }
+
+    template<typename Dest>
+    inline void evalTo(Dest& dst) const { dst.setZero(); scaleAndAddTo(dst,Scalar(1)); }
+
+    template<typename Dest>
+    inline void addTo(Dest& dst) const { scaleAndAddTo(dst,Scalar(1)); }
+
+    template<typename Dest>
+    inline void subTo(Dest& dst) const { scaleAndAddTo(dst,Scalar(-1)); }
+
+    template<typename Dest>
+    inline void scaleAndAddTo(Dest& dst, const Scalar& alpha) const { derived().scaleAndAddTo(dst,alpha); }
+
+    const _LhsNested& lhs() const { return m_lhs; }
+    const _RhsNested& rhs() const { return m_rhs; }
+
+    // Implicit conversion to the nested type (trigger the evaluation of the product)
+    operator const PlainObject& () const
+    {
+      m_result.resize(m_lhs.rows(), m_rhs.cols());
+      derived().evalTo(m_result);
+      return m_result;
+    }
+
+    const Diagonal<const FullyLazyCoeffBaseProductType,0> diagonal() const
+    { return FullyLazyCoeffBaseProductType(m_lhs, m_rhs); }
+
+    template<int Index>
+    const Diagonal<FullyLazyCoeffBaseProductType,Index> diagonal() const
+    { return FullyLazyCoeffBaseProductType(m_lhs, m_rhs); }
+
+    const Diagonal<FullyLazyCoeffBaseProductType,Dynamic> diagonal(Index index) const
+    { return FullyLazyCoeffBaseProductType(m_lhs, m_rhs).diagonal(index); }
+
+    // restrict coeff accessors to 1x1 expressions. No need to care about mutators here since this isnt a Lvalue expression
+    typename Base::CoeffReturnType coeff(Index row, Index col) const
+    {
+#ifdef EIGEN2_SUPPORT
+      return lhs().row(row).cwiseProduct(rhs().col(col).transpose()).sum();
+#else
+      EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
+      eigen_assert(this->rows() == 1 && this->cols() == 1);
+      Matrix<Scalar,1,1> result = *this;
+      return result.coeff(row,col);
+#endif
+    }
+
+    typename Base::CoeffReturnType coeff(Index i) const
+    {
+      EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
+      eigen_assert(this->rows() == 1 && this->cols() == 1);
+      Matrix<Scalar,1,1> result = *this;
+      return result.coeff(i);
+    }
+
+    const Scalar& coeffRef(Index row, Index col) const
+    {
+      EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
+      eigen_assert(this->rows() == 1 && this->cols() == 1);
+      return derived().coeffRef(row,col);
+    }
+
+    const Scalar& coeffRef(Index i) const
+    {
+      EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
+      eigen_assert(this->rows() == 1 && this->cols() == 1);
+      return derived().coeffRef(i);
+    }
+
+  protected:
+
+    LhsNested m_lhs;
+    RhsNested m_rhs;
+
+    mutable PlainObject m_result;
+};
+
+// here we need to overload the nested rule for products
+// such that the nested type is a const reference to a plain matrix
+namespace internal {
+template<typename Lhs, typename Rhs, int Mode, int N, typename PlainObject>
+struct nested<GeneralProduct<Lhs,Rhs,Mode>, N, PlainObject>
+{
+  typedef typename GeneralProduct<Lhs,Rhs,Mode>::PlainObject const& type;
+};
+template<typename Lhs, typename Rhs, int Mode, int N, typename PlainObject>
+struct nested<const GeneralProduct<Lhs,Rhs,Mode>, N, PlainObject>
+{
+  typedef typename GeneralProduct<Lhs,Rhs,Mode>::PlainObject const& type;
+};
+}
+
+template<typename NestedProduct>
+class ScaledProduct;
+
+// Note that these two operator* functions are not defined as member
+// functions of ProductBase, because, otherwise we would have to
+// define all overloads defined in MatrixBase. Furthermore, Using
+// "using Base::operator*" would not work with MSVC.
+//
+// Also note that here we accept any compatible scalar types
+template<typename Derived,typename Lhs,typename Rhs>
+const ScaledProduct<Derived>
+operator*(const ProductBase<Derived,Lhs,Rhs>& prod, const typename Derived::Scalar& x)
+{ return ScaledProduct<Derived>(prod.derived(), x); }
+
+template<typename Derived,typename Lhs,typename Rhs>
+typename internal::enable_if<!internal::is_same<typename Derived::Scalar,typename Derived::RealScalar>::value,
+                      const ScaledProduct<Derived> >::type
+operator*(const ProductBase<Derived,Lhs,Rhs>& prod, const typename Derived::RealScalar& x)
+{ return ScaledProduct<Derived>(prod.derived(), x); }
+
+
+template<typename Derived,typename Lhs,typename Rhs>
+const ScaledProduct<Derived>
+operator*(const typename Derived::Scalar& x,const ProductBase<Derived,Lhs,Rhs>& prod)
+{ return ScaledProduct<Derived>(prod.derived(), x); }
+
+template<typename Derived,typename Lhs,typename Rhs>
+typename internal::enable_if<!internal::is_same<typename Derived::Scalar,typename Derived::RealScalar>::value,
+                      const ScaledProduct<Derived> >::type
+operator*(const typename Derived::RealScalar& x,const ProductBase<Derived,Lhs,Rhs>& prod)
+{ return ScaledProduct<Derived>(prod.derived(), x); }
+
+namespace internal {
+template<typename NestedProduct>
+struct traits<ScaledProduct<NestedProduct> >
+ : traits<ProductBase<ScaledProduct<NestedProduct>,
+                         typename NestedProduct::_LhsNested,
+                         typename NestedProduct::_RhsNested> >
+{
+  typedef typename traits<NestedProduct>::StorageKind StorageKind;
+};
+}
+
+template<typename NestedProduct>
+class ScaledProduct
+  : public ProductBase<ScaledProduct<NestedProduct>,
+                       typename NestedProduct::_LhsNested,
+                       typename NestedProduct::_RhsNested>
+{
+  public:
+    typedef ProductBase<ScaledProduct<NestedProduct>,
+                       typename NestedProduct::_LhsNested,
+                       typename NestedProduct::_RhsNested> Base;
+    typedef typename Base::Scalar Scalar;
+    typedef typename Base::PlainObject PlainObject;
+//     EIGEN_PRODUCT_PUBLIC_INTERFACE(ScaledProduct)
+
+    ScaledProduct(const NestedProduct& prod, const Scalar& x)
+    : Base(prod.lhs(),prod.rhs()), m_prod(prod), m_alpha(x) {}
+
+    template<typename Dest>
+    inline void evalTo(Dest& dst) const { dst.setZero(); scaleAndAddTo(dst, Scalar(1)); }
+
+    template<typename Dest>
+    inline void addTo(Dest& dst) const { scaleAndAddTo(dst, Scalar(1)); }
+
+    template<typename Dest>
+    inline void subTo(Dest& dst) const { scaleAndAddTo(dst, Scalar(-1)); }
+
+    template<typename Dest>
+    inline void scaleAndAddTo(Dest& dst, const Scalar& a_alpha) const { m_prod.derived().scaleAndAddTo(dst,a_alpha * m_alpha); }
+
+    const Scalar& alpha() const { return m_alpha; }
+    
+  protected:
+    const NestedProduct& m_prod;
+    Scalar m_alpha;
+};
+
+/** \internal
+  * Overloaded to perform an efficient C = (A*B).lazy() */
+template<typename Derived>
+template<typename ProductDerived, typename Lhs, typename Rhs>
+Derived& MatrixBase<Derived>::lazyAssign(const ProductBase<ProductDerived, Lhs,Rhs>& other)
+{
+  other.derived().evalTo(derived());
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_PRODUCTBASE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Random.h b/vendor/eigen-3.2.8/Eigen/src/Core/Random.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/Random.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/Random.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/Redux.h b/vendor/eigen-3.2.8/Eigen/src/Core/Redux.h
new file mode 100644
index 0000000..9b8662a
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/Redux.h
@@ -0,0 +1,409 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REDUX_H
+#define EIGEN_REDUX_H
+
+namespace Eigen { 
+
+namespace internal {
+
+// TODO
+//  * implement other kind of vectorization
+//  * factorize code
+
+/***************************************************************************
+* Part 1 : the logic deciding a strategy for vectorization and unrolling
+***************************************************************************/
+
+template<typename Func, typename Derived>
+struct redux_traits
+{
+public:
+  enum {
+    PacketSize = packet_traits<typename Derived::Scalar>::size,
+    InnerMaxSize = int(Derived::IsRowMajor)
+                 ? Derived::MaxColsAtCompileTime
+                 : Derived::MaxRowsAtCompileTime
+  };
+
+  enum {
+    MightVectorize = (int(Derived::Flags)&ActualPacketAccessBit)
+                  && (functor_traits<Func>::PacketAccess),
+    MayLinearVectorize = MightVectorize && (int(Derived::Flags)&LinearAccessBit),
+    MaySliceVectorize  = MightVectorize && int(InnerMaxSize)>=3*PacketSize
+  };
+
+public:
+  enum {
+    Traversal = int(MayLinearVectorize) ? int(LinearVectorizedTraversal)
+              : int(MaySliceVectorize)  ? int(SliceVectorizedTraversal)
+                                        : int(DefaultTraversal)
+  };
+
+public:
+  enum {
+    Cost = (  Derived::SizeAtCompileTime == Dynamic
+           || Derived::CoeffReadCost == Dynamic
+           || (Derived::SizeAtCompileTime!=1 && functor_traits<Func>::Cost == Dynamic)
+           ) ? Dynamic
+           : Derived::SizeAtCompileTime * Derived::CoeffReadCost
+               + (Derived::SizeAtCompileTime-1) * functor_traits<Func>::Cost,
+    UnrollingLimit = EIGEN_UNROLLING_LIMIT * (int(Traversal) == int(DefaultTraversal) ? 1 : int(PacketSize))
+  };
+
+public:
+  enum {
+    Unrolling = Cost != Dynamic && Cost <= UnrollingLimit
+              ? CompleteUnrolling
+              : NoUnrolling
+  };
+};
+
+/***************************************************************************
+* Part 2 : unrollers
+***************************************************************************/
+
+/*** no vectorization ***/
+
+template<typename Func, typename Derived, int Start, int Length>
+struct redux_novec_unroller
+{
+  enum {
+    HalfLength = Length/2
+  };
+
+  typedef typename Derived::Scalar Scalar;
+
+  static EIGEN_STRONG_INLINE Scalar run(const Derived &mat, const Func& func)
+  {
+    return func(redux_novec_unroller<Func, Derived, Start, HalfLength>::run(mat,func),
+                redux_novec_unroller<Func, Derived, Start+HalfLength, Length-HalfLength>::run(mat,func));
+  }
+};
+
+template<typename Func, typename Derived, int Start>
+struct redux_novec_unroller<Func, Derived, Start, 1>
+{
+  enum {
+    outer = Start / Derived::InnerSizeAtCompileTime,
+    inner = Start % Derived::InnerSizeAtCompileTime
+  };
+
+  typedef typename Derived::Scalar Scalar;
+
+  static EIGEN_STRONG_INLINE Scalar run(const Derived &mat, const Func&)
+  {
+    return mat.coeffByOuterInner(outer, inner);
+  }
+};
+
+// This is actually dead code and will never be called. It is required
+// to prevent false warnings regarding failed inlining though
+// for 0 length run() will never be called at all.
+template<typename Func, typename Derived, int Start>
+struct redux_novec_unroller<Func, Derived, Start, 0>
+{
+  typedef typename Derived::Scalar Scalar;
+  static EIGEN_STRONG_INLINE Scalar run(const Derived&, const Func&) { return Scalar(); }
+};
+
+/*** vectorization ***/
+
+template<typename Func, typename Derived, int Start, int Length>
+struct redux_vec_unroller
+{
+  enum {
+    PacketSize = packet_traits<typename Derived::Scalar>::size,
+    HalfLength = Length/2
+  };
+
+  typedef typename Derived::Scalar Scalar;
+  typedef typename packet_traits<Scalar>::type PacketScalar;
+
+  static EIGEN_STRONG_INLINE PacketScalar run(const Derived &mat, const Func& func)
+  {
+    return func.packetOp(
+            redux_vec_unroller<Func, Derived, Start, HalfLength>::run(mat,func),
+            redux_vec_unroller<Func, Derived, Start+HalfLength, Length-HalfLength>::run(mat,func) );
+  }
+};
+
+template<typename Func, typename Derived, int Start>
+struct redux_vec_unroller<Func, Derived, Start, 1>
+{
+  enum {
+    index = Start * packet_traits<typename Derived::Scalar>::size,
+    outer = index / int(Derived::InnerSizeAtCompileTime),
+    inner = index % int(Derived::InnerSizeAtCompileTime),
+    alignment = (Derived::Flags & AlignedBit) ? Aligned : Unaligned
+  };
+
+  typedef typename Derived::Scalar Scalar;
+  typedef typename packet_traits<Scalar>::type PacketScalar;
+
+  static EIGEN_STRONG_INLINE PacketScalar run(const Derived &mat, const Func&)
+  {
+    return mat.template packetByOuterInner<alignment>(outer, inner);
+  }
+};
+
+/***************************************************************************
+* Part 3 : implementation of all cases
+***************************************************************************/
+
+template<typename Func, typename Derived,
+         int Traversal = redux_traits<Func, Derived>::Traversal,
+         int Unrolling = redux_traits<Func, Derived>::Unrolling
+>
+struct redux_impl;
+
+template<typename Func, typename Derived>
+struct redux_impl<Func, Derived, DefaultTraversal, NoUnrolling>
+{
+  typedef typename Derived::Scalar Scalar;
+  typedef typename Derived::Index Index;
+  static EIGEN_STRONG_INLINE Scalar run(const Derived& mat, const Func& func)
+  {
+    eigen_assert(mat.rows()>0 && mat.cols()>0 && "you are using an empty matrix");
+    Scalar res;
+    res = mat.coeffByOuterInner(0, 0);
+    for(Index i = 1; i < mat.innerSize(); ++i)
+      res = func(res, mat.coeffByOuterInner(0, i));
+    for(Index i = 1; i < mat.outerSize(); ++i)
+      for(Index j = 0; j < mat.innerSize(); ++j)
+        res = func(res, mat.coeffByOuterInner(i, j));
+    return res;
+  }
+};
+
+template<typename Func, typename Derived>
+struct redux_impl<Func,Derived, DefaultTraversal, CompleteUnrolling>
+  : public redux_novec_unroller<Func,Derived, 0, Derived::SizeAtCompileTime>
+{};
+
+template<typename Func, typename Derived>
+struct redux_impl<Func, Derived, LinearVectorizedTraversal, NoUnrolling>
+{
+  typedef typename Derived::Scalar Scalar;
+  typedef typename packet_traits<Scalar>::type PacketScalar;
+  typedef typename Derived::Index Index;
+
+  static Scalar run(const Derived& mat, const Func& func)
+  {
+    const Index size = mat.size();
+    eigen_assert(size && "you are using an empty matrix");
+    const Index packetSize = packet_traits<Scalar>::size;
+    const Index alignedStart = internal::first_aligned(mat);
+    enum {
+      alignment = bool(Derived::Flags & DirectAccessBit) || bool(Derived::Flags & AlignedBit)
+                ? Aligned : Unaligned
+    };
+    const Index alignedSize2 = ((size-alignedStart)/(2*packetSize))*(2*packetSize);
+    const Index alignedSize = ((size-alignedStart)/(packetSize))*(packetSize);
+    const Index alignedEnd2 = alignedStart + alignedSize2;
+    const Index alignedEnd  = alignedStart + alignedSize;
+    Scalar res;
+    if(alignedSize)
+    {
+      PacketScalar packet_res0 = mat.template packet<alignment>(alignedStart);
+      if(alignedSize>packetSize) // we have at least two packets to partly unroll the loop
+      {
+        PacketScalar packet_res1 = mat.template packet<alignment>(alignedStart+packetSize);
+        for(Index index = alignedStart + 2*packetSize; index < alignedEnd2; index += 2*packetSize)
+        {
+          packet_res0 = func.packetOp(packet_res0, mat.template packet<alignment>(index));
+          packet_res1 = func.packetOp(packet_res1, mat.template packet<alignment>(index+packetSize));
+        }
+
+        packet_res0 = func.packetOp(packet_res0,packet_res1);
+        if(alignedEnd>alignedEnd2)
+          packet_res0 = func.packetOp(packet_res0, mat.template packet<alignment>(alignedEnd2));
+      }
+      res = func.predux(packet_res0);
+
+      for(Index index = 0; index < alignedStart; ++index)
+        res = func(res,mat.coeff(index));
+
+      for(Index index = alignedEnd; index < size; ++index)
+        res = func(res,mat.coeff(index));
+    }
+    else // too small to vectorize anything.
+         // since this is dynamic-size hence inefficient anyway for such small sizes, don't try to optimize.
+    {
+      res = mat.coeff(0);
+      for(Index index = 1; index < size; ++index)
+        res = func(res,mat.coeff(index));
+    }
+
+    return res;
+  }
+};
+
+// NOTE: for SliceVectorizedTraversal we simply bypass unrolling
+template<typename Func, typename Derived, int Unrolling>
+struct redux_impl<Func, Derived, SliceVectorizedTraversal, Unrolling>
+{
+  typedef typename Derived::Scalar Scalar;
+  typedef typename packet_traits<Scalar>::type PacketScalar;
+  typedef typename Derived::Index Index;
+
+  static Scalar run(const Derived& mat, const Func& func)
+  {
+    eigen_assert(mat.rows()>0 && mat.cols()>0 && "you are using an empty matrix");
+    const Index innerSize = mat.innerSize();
+    const Index outerSize = mat.outerSize();
+    enum {
+      packetSize = packet_traits<Scalar>::size
+    };
+    const Index packetedInnerSize = ((innerSize)/packetSize)*packetSize;
+    Scalar res;
+    if(packetedInnerSize)
+    {
+      PacketScalar packet_res = mat.template packet<Unaligned>(0,0);
+      for(Index j=0; j<outerSize; ++j)
+        for(Index i=(j==0?packetSize:0); i<packetedInnerSize; i+=Index(packetSize))
+          packet_res = func.packetOp(packet_res, mat.template packetByOuterInner<Unaligned>(j,i));
+
+      res = func.predux(packet_res);
+      for(Index j=0; j<outerSize; ++j)
+        for(Index i=packetedInnerSize; i<innerSize; ++i)
+          res = func(res, mat.coeffByOuterInner(j,i));
+    }
+    else // too small to vectorize anything.
+         // since this is dynamic-size hence inefficient anyway for such small sizes, don't try to optimize.
+    {
+      res = redux_impl<Func, Derived, DefaultTraversal, NoUnrolling>::run(mat, func);
+    }
+
+    return res;
+  }
+};
+
+template<typename Func, typename Derived>
+struct redux_impl<Func, Derived, LinearVectorizedTraversal, CompleteUnrolling>
+{
+  typedef typename Derived::Scalar Scalar;
+  typedef typename packet_traits<Scalar>::type PacketScalar;
+  enum {
+    PacketSize = packet_traits<Scalar>::size,
+    Size = Derived::SizeAtCompileTime,
+    VectorizedSize = (Size / PacketSize) * PacketSize
+  };
+  static EIGEN_STRONG_INLINE Scalar run(const Derived& mat, const Func& func)
+  {
+    eigen_assert(mat.rows()>0 && mat.cols()>0 && "you are using an empty matrix");
+    Scalar res = func.predux(redux_vec_unroller<Func, Derived, 0, Size / PacketSize>::run(mat,func));
+    if (VectorizedSize != Size)
+      res = func(res,redux_novec_unroller<Func, Derived, VectorizedSize, Size-VectorizedSize>::run(mat,func));
+    return res;
+  }
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* Part 4 : public API
+***************************************************************************/
+
+
+/** \returns the result of a full redux operation on the whole matrix or vector using \a func
+  *
+  * The template parameter \a BinaryOp is the type of the functor \a func which must be
+  * an associative operator. Both current STL and TR1 functor styles are handled.
+  *
+  * \sa DenseBase::sum(), DenseBase::minCoeff(), DenseBase::maxCoeff(), MatrixBase::colwise(), MatrixBase::rowwise()
+  */
+template<typename Derived>
+template<typename Func>
+EIGEN_STRONG_INLINE typename internal::result_of<Func(typename internal::traits<Derived>::Scalar)>::type
+DenseBase<Derived>::redux(const Func& func) const
+{
+  typedef typename internal::remove_all<typename Derived::Nested>::type ThisNested;
+  return internal::redux_impl<Func, ThisNested>
+            ::run(derived(), func);
+}
+
+/** \returns the minimum of all coefficients of \c *this.
+  * \warning the result is undefined if \c *this contains NaN.
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::minCoeff() const
+{
+  return this->redux(Eigen::internal::scalar_min_op<Scalar>());
+}
+
+/** \returns the maximum of all coefficients of \c *this.
+  * \warning the result is undefined if \c *this contains NaN.
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::maxCoeff() const
+{
+  return this->redux(Eigen::internal::scalar_max_op<Scalar>());
+}
+
+/** \returns the sum of all coefficients of *this
+  *
+  * \sa trace(), prod(), mean()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::sum() const
+{
+  if(SizeAtCompileTime==0 || (SizeAtCompileTime==Dynamic && size()==0))
+    return Scalar(0);
+  return this->redux(Eigen::internal::scalar_sum_op<Scalar>());
+}
+
+/** \returns the mean of all coefficients of *this
+*
+* \sa trace(), prod(), sum()
+*/
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::mean() const
+{
+  return Scalar(this->redux(Eigen::internal::scalar_sum_op<Scalar>())) / Scalar(this->size());
+}
+
+/** \returns the product of all coefficients of *this
+  *
+  * Example: \include MatrixBase_prod.cpp
+  * Output: \verbinclude MatrixBase_prod.out
+  *
+  * \sa sum(), mean(), trace()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::prod() const
+{
+  if(SizeAtCompileTime==0 || (SizeAtCompileTime==Dynamic && size()==0))
+    return Scalar(1);
+  return this->redux(Eigen::internal::scalar_product_op<Scalar>());
+}
+
+/** \returns the trace of \c *this, i.e. the sum of the coefficients on the main diagonal.
+  *
+  * \c *this can be any matrix, not necessarily square.
+  *
+  * \sa diagonal(), sum()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+MatrixBase<Derived>::trace() const
+{
+  return derived().diagonal().sum();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_REDUX_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/Ref.h b/vendor/eigen-3.2.8/Eigen/src/Core/Ref.h
new file mode 100644
index 0000000..7a3beca
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/Ref.h
@@ -0,0 +1,278 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REF_H
+#define EIGEN_REF_H
+
+namespace Eigen { 
+
+template<typename Derived> class RefBase;
+template<typename PlainObjectType, int Options = 0,
+         typename StrideType = typename internal::conditional<PlainObjectType::IsVectorAtCompileTime,InnerStride<1>,OuterStride<> >::type > class Ref;
+
+/** \class Ref
+  * \ingroup Core_Module
+  *
+  * \brief A matrix or vector expression mapping an existing expressions
+  *
+  * \tparam PlainObjectType the equivalent matrix type of the mapped data
+  * \tparam Options specifies whether the pointer is \c #Aligned, or \c #Unaligned.
+  *                The default is \c #Unaligned.
+  * \tparam StrideType optionally specifies strides. By default, Ref implies a contiguous storage along the inner dimension (inner stride==1),
+  *                   but accept a variable outer stride (leading dimension).
+  *                   This can be overridden by specifying strides.
+  *                   The type passed here must be a specialization of the Stride template, see examples below.
+  *
+  * This class permits to write non template functions taking Eigen's object as parameters while limiting the number of copies.
+  * A Ref<> object can represent either a const expression or a l-value:
+  * \code
+  * // in-out argument:
+  * void foo1(Ref<VectorXf> x);
+  *
+  * // read-only const argument:
+  * void foo2(const Ref<const VectorXf>& x);
+  * \endcode
+  *
+  * In the in-out case, the input argument must satisfies the constraints of the actual Ref<> type, otherwise a compilation issue will be triggered.
+  * By default, a Ref<VectorXf> can reference any dense vector expression of float having a contiguous memory layout.
+  * Likewise, a Ref<MatrixXf> can reference any column major dense matrix expression of float whose column's elements are contiguously stored with
+  * the possibility to have a constant space inbetween each column, i.e.: the inner stride mmust be equal to 1, but the outer-stride (or leading dimension),
+  * can be greater than the number of rows.
+  *
+  * In the const case, if the input expression does not match the above requirement, then it is evaluated into a temporary before being passed to the function.
+  * Here are some examples:
+  * \code
+  * MatrixXf A;
+  * VectorXf a;
+  * foo1(a.head());             // OK
+  * foo1(A.col());              // OK
+  * foo1(A.row());              // compilation error because here innerstride!=1
+  * foo2(A.row());              // The row is copied into a contiguous temporary
+  * foo2(2*a);                  // The expression is evaluated into a temporary
+  * foo2(A.col().segment(2,4)); // No temporary
+  * \endcode
+  *
+  * The range of inputs that can be referenced without temporary can be enlarged using the last two template parameter.
+  * Here is an example accepting an innerstride!=1:
+  * \code
+  * // in-out argument:
+  * void foo3(Ref<VectorXf,0,InnerStride<> > x);
+  * foo3(A.row());              // OK
+  * \endcode
+  * The downside here is that the function foo3 might be significantly slower than foo1 because it won't be able to exploit vectorization, and will involved more
+  * expensive address computations even if the input is contiguously stored in memory. To overcome this issue, one might propose to overloads internally calling a
+  * template function, e.g.:
+  * \code
+  * // in the .h:
+  * void foo(const Ref<MatrixXf>& A);
+  * void foo(const Ref<MatrixXf,0,Stride<> >& A);
+  *
+  * // in the .cpp:
+  * template<typename TypeOfA> void foo_impl(const TypeOfA& A) {
+  *     ... // crazy code goes here
+  * }
+  * void foo(const Ref<MatrixXf>& A) { foo_impl(A); }
+  * void foo(const Ref<MatrixXf,0,Stride<> >& A) { foo_impl(A); }
+  * \endcode
+  *
+  *
+  * \sa PlainObjectBase::Map(), \ref TopicStorageOrders
+  */
+
+namespace internal {
+
+template<typename _PlainObjectType, int _Options, typename _StrideType>
+struct traits<Ref<_PlainObjectType, _Options, _StrideType> >
+  : public traits<Map<_PlainObjectType, _Options, _StrideType> >
+{
+  typedef _PlainObjectType PlainObjectType;
+  typedef _StrideType StrideType;
+  enum {
+    Options = _Options,
+    Flags = traits<Map<_PlainObjectType, _Options, _StrideType> >::Flags | NestByRefBit
+  };
+
+  template<typename Derived> struct match {
+    enum {
+      HasDirectAccess = internal::has_direct_access<Derived>::ret,
+      StorageOrderMatch = PlainObjectType::IsVectorAtCompileTime || Derived::IsVectorAtCompileTime || ((PlainObjectType::Flags&RowMajorBit)==(Derived::Flags&RowMajorBit)),
+      InnerStrideMatch = int(StrideType::InnerStrideAtCompileTime)==int(Dynamic)
+                      || int(StrideType::InnerStrideAtCompileTime)==int(Derived::InnerStrideAtCompileTime)
+                      || (int(StrideType::InnerStrideAtCompileTime)==0 && int(Derived::InnerStrideAtCompileTime)==1),
+      OuterStrideMatch = Derived::IsVectorAtCompileTime
+                      || int(StrideType::OuterStrideAtCompileTime)==int(Dynamic) || int(StrideType::OuterStrideAtCompileTime)==int(Derived::OuterStrideAtCompileTime),
+      AlignmentMatch = (_Options!=Aligned) || ((PlainObjectType::Flags&AlignedBit)==0) || ((traits<Derived>::Flags&AlignedBit)==AlignedBit),
+      ScalarTypeMatch = internal::is_same<typename PlainObjectType::Scalar, typename Derived::Scalar>::value,
+      MatchAtCompileTime = HasDirectAccess && StorageOrderMatch && InnerStrideMatch && OuterStrideMatch && AlignmentMatch && ScalarTypeMatch
+    };
+    typedef typename internal::conditional<MatchAtCompileTime,internal::true_type,internal::false_type>::type type;
+  };
+  
+};
+
+template<typename Derived>
+struct traits<RefBase<Derived> > : public traits<Derived> {};
+
+}
+
+template<typename Derived> class RefBase
+ : public MapBase<Derived>
+{
+  typedef typename internal::traits<Derived>::PlainObjectType PlainObjectType;
+  typedef typename internal::traits<Derived>::StrideType StrideType;
+
+public:
+
+  typedef MapBase<Derived> Base;
+  EIGEN_DENSE_PUBLIC_INTERFACE(RefBase)
+
+  inline Index innerStride() const
+  {
+    return StrideType::InnerStrideAtCompileTime != 0 ? m_stride.inner() : 1;
+  }
+
+  inline Index outerStride() const
+  {
+    return StrideType::OuterStrideAtCompileTime != 0 ? m_stride.outer()
+         : IsVectorAtCompileTime ? this->size()
+         : int(Flags)&RowMajorBit ? this->cols()
+         : this->rows();
+  }
+
+  RefBase()
+    : Base(0,RowsAtCompileTime==Dynamic?0:RowsAtCompileTime,ColsAtCompileTime==Dynamic?0:ColsAtCompileTime),
+      // Stride<> does not allow default ctor for Dynamic strides, so let' initialize it with dummy values:
+      m_stride(StrideType::OuterStrideAtCompileTime==Dynamic?0:StrideType::OuterStrideAtCompileTime,
+               StrideType::InnerStrideAtCompileTime==Dynamic?0:StrideType::InnerStrideAtCompileTime)
+  {}
+  
+  EIGEN_INHERIT_ASSIGNMENT_OPERATORS(RefBase)
+
+protected:
+
+  typedef Stride<StrideType::OuterStrideAtCompileTime,StrideType::InnerStrideAtCompileTime> StrideBase;
+
+  template<typename Expression>
+  void construct(Expression& expr)
+  {
+    if(PlainObjectType::RowsAtCompileTime==1)
+    {
+      eigen_assert(expr.rows()==1 || expr.cols()==1);
+      ::new (static_cast<Base*>(this)) Base(expr.data(), 1, expr.size());
+    }
+    else if(PlainObjectType::ColsAtCompileTime==1)
+    {
+      eigen_assert(expr.rows()==1 || expr.cols()==1);
+      ::new (static_cast<Base*>(this)) Base(expr.data(), expr.size(), 1);
+    }
+    else
+      ::new (static_cast<Base*>(this)) Base(expr.data(), expr.rows(), expr.cols());
+    
+    if(Expression::IsVectorAtCompileTime && (!PlainObjectType::IsVectorAtCompileTime) && ((Expression::Flags&RowMajorBit)!=(PlainObjectType::Flags&RowMajorBit)))
+      ::new (&m_stride) StrideBase(expr.innerStride(), StrideType::InnerStrideAtCompileTime==0?0:1);
+    else
+      ::new (&m_stride) StrideBase(StrideType::OuterStrideAtCompileTime==0?0:expr.outerStride(),
+                                   StrideType::InnerStrideAtCompileTime==0?0:expr.innerStride());    
+  }
+
+  StrideBase m_stride;
+};
+
+
+template<typename PlainObjectType, int Options, typename StrideType> class Ref
+  : public RefBase<Ref<PlainObjectType, Options, StrideType> >
+{
+  private:
+    typedef internal::traits<Ref> Traits;
+    template<typename Derived>
+    inline Ref(const PlainObjectBase<Derived>& expr,
+               typename internal::enable_if<bool(Traits::template match<Derived>::MatchAtCompileTime),Derived>::type* = 0);
+  public:
+
+    typedef RefBase<Ref> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Ref)
+
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename Derived>
+    inline Ref(PlainObjectBase<Derived>& expr,
+               typename internal::enable_if<bool(Traits::template match<Derived>::MatchAtCompileTime),Derived>::type* = 0)
+    {
+      EIGEN_STATIC_ASSERT(static_cast<bool>(Traits::template match<Derived>::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
+      Base::construct(expr.derived());
+    }
+    template<typename Derived>
+    inline Ref(const DenseBase<Derived>& expr,
+               typename internal::enable_if<bool(Traits::template match<Derived>::MatchAtCompileTime),Derived>::type* = 0)
+    #else
+    template<typename Derived>
+    inline Ref(DenseBase<Derived>& expr)
+    #endif
+    {
+      EIGEN_STATIC_ASSERT(static_cast<bool>(internal::is_lvalue<Derived>::value), THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY);
+      EIGEN_STATIC_ASSERT(static_cast<bool>(Traits::template match<Derived>::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
+      enum { THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY = Derived::ThisConstantIsPrivateInPlainObjectBase};
+      Base::construct(expr.const_cast_derived());
+    }
+
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Ref)
+
+};
+
+// this is the const ref version
+template<typename TPlainObjectType, int Options, typename StrideType> class Ref<const TPlainObjectType, Options, StrideType>
+  : public RefBase<Ref<const TPlainObjectType, Options, StrideType> >
+{
+    typedef internal::traits<Ref> Traits;
+  public:
+
+    typedef RefBase<Ref> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Ref)
+
+    template<typename Derived>
+    inline Ref(const DenseBase<Derived>& expr,
+               typename internal::enable_if<bool(Traits::template match<Derived>::ScalarTypeMatch),Derived>::type* = 0)
+    {
+//      std::cout << match_helper<Derived>::HasDirectAccess << "," << match_helper<Derived>::OuterStrideMatch << "," << match_helper<Derived>::InnerStrideMatch << "\n";
+//      std::cout << int(StrideType::OuterStrideAtCompileTime) << " - " << int(Derived::OuterStrideAtCompileTime) << "\n";
+//      std::cout << int(StrideType::InnerStrideAtCompileTime) << " - " << int(Derived::InnerStrideAtCompileTime) << "\n";
+      construct(expr.derived(), typename Traits::template match<Derived>::type());
+    }
+    
+    inline Ref(const Ref& other) : Base(other) {
+      // copy constructor shall not copy the m_object, to avoid unnecessary malloc and copy
+    }
+
+    template<typename OtherRef>
+    inline Ref(const RefBase<OtherRef>& other) {
+      construct(other.derived(), typename Traits::template match<OtherRef>::type());
+    }
+
+  protected:
+
+    template<typename Expression>
+    void construct(const Expression& expr,internal::true_type)
+    {
+      Base::construct(expr);
+    }
+
+    template<typename Expression>
+    void construct(const Expression& expr, internal::false_type)
+    {
+      m_object.lazyAssign(expr);
+      Base::construct(m_object);
+    }
+
+  protected:
+    TPlainObjectType m_object;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_REF_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/Replicate.h b/vendor/eigen-3.2.8/Eigen/src/Core/Replicate.h
new file mode 100644
index 0000000..ac4537c
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/Replicate.h
@@ -0,0 +1,177 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REPLICATE_H
+#define EIGEN_REPLICATE_H
+
+namespace Eigen { 
+
+/**
+  * \class Replicate
+  * \ingroup Core_Module
+  *
+  * \brief Expression of the multiple replication of a matrix or vector
+  *
+  * \param MatrixType the type of the object we are replicating
+  *
+  * This class represents an expression of the multiple replication of a matrix or vector.
+  * It is the return type of DenseBase::replicate() and most of the time
+  * this is the only way it is used.
+  *
+  * \sa DenseBase::replicate()
+  */
+
+namespace internal {
+template<typename MatrixType,int RowFactor,int ColFactor>
+struct traits<Replicate<MatrixType,RowFactor,ColFactor> >
+ : traits<MatrixType>
+{
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename traits<MatrixType>::StorageKind StorageKind;
+  typedef typename traits<MatrixType>::XprKind XprKind;
+  enum {
+    Factor = (RowFactor==Dynamic || ColFactor==Dynamic) ? Dynamic : RowFactor*ColFactor
+  };
+  typedef typename nested<MatrixType,Factor>::type MatrixTypeNested;
+  typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
+  enum {
+    RowsAtCompileTime = RowFactor==Dynamic || int(MatrixType::RowsAtCompileTime)==Dynamic
+                      ? Dynamic
+                      : RowFactor * MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = ColFactor==Dynamic || int(MatrixType::ColsAtCompileTime)==Dynamic
+                      ? Dynamic
+                      : ColFactor * MatrixType::ColsAtCompileTime,
+   //FIXME we don't propagate the max sizes !!!
+    MaxRowsAtCompileTime = RowsAtCompileTime,
+    MaxColsAtCompileTime = ColsAtCompileTime,
+    IsRowMajor = MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1 ? 1
+               : MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1 ? 0
+               : (MatrixType::Flags & RowMajorBit) ? 1 : 0,
+    Flags = (_MatrixTypeNested::Flags & HereditaryBits & ~RowMajorBit) | (IsRowMajor ? RowMajorBit : 0),
+    CoeffReadCost = _MatrixTypeNested::CoeffReadCost
+  };
+};
+}
+
+template<typename MatrixType,int RowFactor,int ColFactor> class Replicate
+  : public internal::dense_xpr_base< Replicate<MatrixType,RowFactor,ColFactor> >::type
+{
+    typedef typename internal::traits<Replicate>::MatrixTypeNested MatrixTypeNested;
+    typedef typename internal::traits<Replicate>::_MatrixTypeNested _MatrixTypeNested;
+  public:
+
+    typedef typename internal::dense_xpr_base<Replicate>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Replicate)
+
+    template<typename OriginalMatrixType>
+    inline explicit Replicate(const OriginalMatrixType& a_matrix)
+      : m_matrix(a_matrix), m_rowFactor(RowFactor), m_colFactor(ColFactor)
+    {
+      EIGEN_STATIC_ASSERT((internal::is_same<typename internal::remove_const<MatrixType>::type,OriginalMatrixType>::value),
+                          THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE)
+      eigen_assert(RowFactor!=Dynamic && ColFactor!=Dynamic);
+    }
+
+    template<typename OriginalMatrixType>
+    inline Replicate(const OriginalMatrixType& a_matrix, Index rowFactor, Index colFactor)
+      : m_matrix(a_matrix), m_rowFactor(rowFactor), m_colFactor(colFactor)
+    {
+      EIGEN_STATIC_ASSERT((internal::is_same<typename internal::remove_const<MatrixType>::type,OriginalMatrixType>::value),
+                          THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE)
+    }
+
+    inline Index rows() const { return m_matrix.rows() * m_rowFactor.value(); }
+    inline Index cols() const { return m_matrix.cols() * m_colFactor.value(); }
+
+    inline Scalar coeff(Index rowId, Index colId) const
+    {
+      // try to avoid using modulo; this is a pure optimization strategy
+      const Index actual_row  = internal::traits<MatrixType>::RowsAtCompileTime==1 ? 0
+                            : RowFactor==1 ? rowId
+                            : rowId%m_matrix.rows();
+      const Index actual_col  = internal::traits<MatrixType>::ColsAtCompileTime==1 ? 0
+                            : ColFactor==1 ? colId
+                            : colId%m_matrix.cols();
+
+      return m_matrix.coeff(actual_row, actual_col);
+    }
+    template<int LoadMode>
+    inline PacketScalar packet(Index rowId, Index colId) const
+    {
+      const Index actual_row  = internal::traits<MatrixType>::RowsAtCompileTime==1 ? 0
+                            : RowFactor==1 ? rowId
+                            : rowId%m_matrix.rows();
+      const Index actual_col  = internal::traits<MatrixType>::ColsAtCompileTime==1 ? 0
+                            : ColFactor==1 ? colId
+                            : colId%m_matrix.cols();
+
+      return m_matrix.template packet<LoadMode>(actual_row, actual_col);
+    }
+
+    const _MatrixTypeNested& nestedExpression() const
+    { 
+      return m_matrix; 
+    }
+
+  protected:
+    MatrixTypeNested m_matrix;
+    const internal::variable_if_dynamic<Index, RowFactor> m_rowFactor;
+    const internal::variable_if_dynamic<Index, ColFactor> m_colFactor;
+};
+
+/**
+  * \return an expression of the replication of \c *this
+  *
+  * Example: \include MatrixBase_replicate.cpp
+  * Output: \verbinclude MatrixBase_replicate.out
+  *
+  * \sa VectorwiseOp::replicate(), DenseBase::replicate(Index,Index), class Replicate
+  */
+template<typename Derived>
+template<int RowFactor, int ColFactor>
+const Replicate<Derived,RowFactor,ColFactor>
+DenseBase<Derived>::replicate() const
+{
+  return Replicate<Derived,RowFactor,ColFactor>(derived());
+}
+
+/**
+  * \return an expression of the replication of \c *this
+  *
+  * Example: \include MatrixBase_replicate_int_int.cpp
+  * Output: \verbinclude MatrixBase_replicate_int_int.out
+  *
+  * \sa VectorwiseOp::replicate(), DenseBase::replicate<int,int>(), class Replicate
+  */
+template<typename Derived>
+const typename DenseBase<Derived>::ReplicateReturnType
+DenseBase<Derived>::replicate(Index rowFactor,Index colFactor) const
+{
+  return Replicate<Derived,Dynamic,Dynamic>(derived(),rowFactor,colFactor);
+}
+
+/**
+  * \return an expression of the replication of each column (or row) of \c *this
+  *
+  * Example: \include DirectionWise_replicate_int.cpp
+  * Output: \verbinclude DirectionWise_replicate_int.out
+  *
+  * \sa VectorwiseOp::replicate(), DenseBase::replicate(), class Replicate
+  */
+template<typename ExpressionType, int Direction>
+const typename VectorwiseOp<ExpressionType,Direction>::ReplicateReturnType
+VectorwiseOp<ExpressionType,Direction>::replicate(Index factor) const
+{
+  return typename VectorwiseOp<ExpressionType,Direction>::ReplicateReturnType
+          (_expression(),Direction==Vertical?factor:1,Direction==Horizontal?factor:1);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_REPLICATE_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/ReturnByValue.h b/vendor/eigen-3.2.8/Eigen/src/Core/ReturnByValue.h
new file mode 100644
index 0000000..f635598
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/ReturnByValue.h
@@ -0,0 +1,99 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2009-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_RETURNBYVALUE_H
+#define EIGEN_RETURNBYVALUE_H
+
+namespace Eigen {
+
+/** \class ReturnByValue
+  * \ingroup Core_Module
+  *
+  */
+
+namespace internal {
+
+template<typename Derived>
+struct traits<ReturnByValue<Derived> >
+  : public traits<typename traits<Derived>::ReturnType>
+{
+  enum {
+    // We're disabling the DirectAccess because e.g. the constructor of
+    // the Block-with-DirectAccess expression requires to have a coeffRef method.
+    // Also, we don't want to have to implement the stride stuff.
+    Flags = (traits<typename traits<Derived>::ReturnType>::Flags
+             | EvalBeforeNestingBit) & ~DirectAccessBit
+  };
+};
+
+/* The ReturnByValue object doesn't even have a coeff() method.
+ * So the only way that nesting it in an expression can work, is by evaluating it into a plain matrix.
+ * So internal::nested always gives the plain return matrix type.
+ *
+ * FIXME: I don't understand why we need this specialization: isn't this taken care of by the EvalBeforeNestingBit ??
+ */
+template<typename Derived,int n,typename PlainObject>
+struct nested<ReturnByValue<Derived>, n, PlainObject>
+{
+  typedef typename traits<Derived>::ReturnType type;
+};
+
+} // end namespace internal
+
+template<typename Derived> class ReturnByValue
+  : internal::no_assignment_operator, public internal::dense_xpr_base< ReturnByValue<Derived> >::type
+{
+  public:
+    typedef typename internal::traits<Derived>::ReturnType ReturnType;
+
+    typedef typename internal::dense_xpr_base<ReturnByValue>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(ReturnByValue)
+
+    template<typename Dest>
+    inline void evalTo(Dest& dst) const
+    { static_cast<const Derived*>(this)->evalTo(dst); }
+    inline Index rows() const { return static_cast<const Derived*>(this)->rows(); }
+    inline Index cols() const { return static_cast<const Derived*>(this)->cols(); }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+#define Unusable YOU_ARE_TRYING_TO_ACCESS_A_SINGLE_COEFFICIENT_IN_A_SPECIAL_EXPRESSION_WHERE_THAT_IS_NOT_ALLOWED_BECAUSE_THAT_WOULD_BE_INEFFICIENT
+    class Unusable{
+      Unusable(const Unusable&) {}
+      Unusable& operator=(const Unusable&) {return *this;}
+    };
+    const Unusable& coeff(Index) const { return *reinterpret_cast<const Unusable*>(this); }
+    const Unusable& coeff(Index,Index) const { return *reinterpret_cast<const Unusable*>(this); }
+    Unusable& coeffRef(Index) { return *reinterpret_cast<Unusable*>(this); }
+    Unusable& coeffRef(Index,Index) { return *reinterpret_cast<Unusable*>(this); }
+    template<int LoadMode>  Unusable& packet(Index) const;
+    template<int LoadMode>  Unusable& packet(Index, Index) const;
+#endif
+};
+
+template<typename Derived>
+template<typename OtherDerived>
+Derived& DenseBase<Derived>::operator=(const ReturnByValue<OtherDerived>& other)
+{
+  other.evalTo(derived());
+  return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+Derived& DenseBase<Derived>::lazyAssign(const ReturnByValue<OtherDerived>& other)
+{
+  other.evalTo(derived());
+  return derived();
+}
+
+
+} // end namespace Eigen
+
+#endif // EIGEN_RETURNBYVALUE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Reverse.h b/vendor/eigen-3.2.8/Eigen/src/Core/Reverse.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/Reverse.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/Reverse.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Select.h b/vendor/eigen-3.2.8/Eigen/src/Core/Select.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/Select.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/Select.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/SelfAdjointView.h b/vendor/eigen-3.2.8/Eigen/src/Core/SelfAdjointView.h
new file mode 100644
index 0000000..6fa7cd1
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/SelfAdjointView.h
@@ -0,0 +1,314 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINTMATRIX_H
+#define EIGEN_SELFADJOINTMATRIX_H
+
+namespace Eigen { 
+
+/** \class SelfAdjointView
+  * \ingroup Core_Module
+  *
+  *
+  * \brief Expression of a selfadjoint matrix from a triangular part of a dense matrix
+  *
+  * \param MatrixType the type of the dense matrix storing the coefficients
+  * \param TriangularPart can be either \c #Lower or \c #Upper
+  *
+  * This class is an expression of a sefladjoint matrix from a triangular part of a matrix
+  * with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView()
+  * and most of the time this is the only way that it is used.
+  *
+  * \sa class TriangularBase, MatrixBase::selfadjointView()
+  */
+
+namespace internal {
+template<typename MatrixType, unsigned int UpLo>
+struct traits<SelfAdjointView<MatrixType, UpLo> > : traits<MatrixType>
+{
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
+  typedef MatrixType ExpressionType;
+  typedef typename MatrixType::PlainObject DenseMatrixType;
+  enum {
+    Mode = UpLo | SelfAdjoint,
+    Flags =  MatrixTypeNestedCleaned::Flags & (HereditaryBits)
+           & (~(PacketAccessBit | DirectAccessBit | LinearAccessBit)), // FIXME these flags should be preserved
+    CoeffReadCost = MatrixTypeNestedCleaned::CoeffReadCost
+  };
+};
+}
+
+template <typename Lhs, int LhsMode, bool LhsIsVector,
+          typename Rhs, int RhsMode, bool RhsIsVector>
+struct SelfadjointProductMatrix;
+
+// FIXME could also be called SelfAdjointWrapper to be consistent with DiagonalWrapper ??
+template<typename MatrixType, unsigned int UpLo> class SelfAdjointView
+  : public TriangularBase<SelfAdjointView<MatrixType, UpLo> >
+{
+  public:
+
+    typedef TriangularBase<SelfAdjointView> Base;
+    typedef typename internal::traits<SelfAdjointView>::MatrixTypeNested MatrixTypeNested;
+    typedef typename internal::traits<SelfAdjointView>::MatrixTypeNestedCleaned MatrixTypeNestedCleaned;
+
+    /** \brief The type of coefficients in this matrix */
+    typedef typename internal::traits<SelfAdjointView>::Scalar Scalar; 
+
+    typedef typename MatrixType::Index Index;
+
+    enum {
+      Mode = internal::traits<SelfAdjointView>::Mode
+    };
+    typedef typename MatrixType::PlainObject PlainObject;
+
+    inline SelfAdjointView(MatrixType& matrix) : m_matrix(matrix)
+    {}
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+    inline Index outerStride() const { return m_matrix.outerStride(); }
+    inline Index innerStride() const { return m_matrix.innerStride(); }
+
+    /** \sa MatrixBase::coeff()
+      * \warning the coordinates must fit into the referenced triangular part
+      */
+    inline Scalar coeff(Index row, Index col) const
+    {
+      Base::check_coordinates_internal(row, col);
+      return m_matrix.coeff(row, col);
+    }
+
+    /** \sa MatrixBase::coeffRef()
+      * \warning the coordinates must fit into the referenced triangular part
+      */
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      Base::check_coordinates_internal(row, col);
+      return m_matrix.const_cast_derived().coeffRef(row, col);
+    }
+
+    /** \internal */
+    const MatrixTypeNestedCleaned& _expression() const { return m_matrix; }
+
+    const MatrixTypeNestedCleaned& nestedExpression() const { return m_matrix; }
+    MatrixTypeNestedCleaned& nestedExpression() { return *const_cast<MatrixTypeNestedCleaned*>(&m_matrix); }
+
+    /** Efficient self-adjoint matrix times vector/matrix product */
+    template<typename OtherDerived>
+    SelfadjointProductMatrix<MatrixType,Mode,false,OtherDerived,0,OtherDerived::IsVectorAtCompileTime>
+    operator*(const MatrixBase<OtherDerived>& rhs) const
+    {
+      return SelfadjointProductMatrix
+              <MatrixType,Mode,false,OtherDerived,0,OtherDerived::IsVectorAtCompileTime>
+              (m_matrix, rhs.derived());
+    }
+
+    /** Efficient vector/matrix times self-adjoint matrix product */
+    template<typename OtherDerived> friend
+    SelfadjointProductMatrix<OtherDerived,0,OtherDerived::IsVectorAtCompileTime,MatrixType,Mode,false>
+    operator*(const MatrixBase<OtherDerived>& lhs, const SelfAdjointView& rhs)
+    {
+      return SelfadjointProductMatrix
+              <OtherDerived,0,OtherDerived::IsVectorAtCompileTime,MatrixType,Mode,false>
+              (lhs.derived(),rhs.m_matrix);
+    }
+
+    /** Perform a symmetric rank 2 update of the selfadjoint matrix \c *this:
+      * \f$ this = this + \alpha u v^* + conj(\alpha) v u^* \f$
+      * \returns a reference to \c *this
+      *
+      * The vectors \a u and \c v \b must be column vectors, however they can be
+      * a adjoint expression without any overhead. Only the meaningful triangular
+      * part of the matrix is updated, the rest is left unchanged.
+      *
+      * \sa rankUpdate(const MatrixBase<DerivedU>&, Scalar)
+      */
+    template<typename DerivedU, typename DerivedV>
+    SelfAdjointView& rankUpdate(const MatrixBase<DerivedU>& u, const MatrixBase<DerivedV>& v, const Scalar& alpha = Scalar(1));
+
+    /** Perform a symmetric rank K update of the selfadjoint matrix \c *this:
+      * \f$ this = this + \alpha ( u u^* ) \f$ where \a u is a vector or matrix.
+      *
+      * \returns a reference to \c *this
+      *
+      * Note that to perform \f$ this = this + \alpha ( u^* u ) \f$ you can simply
+      * call this function with u.adjoint().
+      *
+      * \sa rankUpdate(const MatrixBase<DerivedU>&, const MatrixBase<DerivedV>&, Scalar)
+      */
+    template<typename DerivedU>
+    SelfAdjointView& rankUpdate(const MatrixBase<DerivedU>& u, const Scalar& alpha = Scalar(1));
+
+/////////// Cholesky module ///////////
+
+    const LLT<PlainObject, UpLo> llt() const;
+    const LDLT<PlainObject, UpLo> ldlt() const;
+
+/////////// Eigenvalue module ///////////
+
+    /** Real part of #Scalar */
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    /** Return type of eigenvalues() */
+    typedef Matrix<RealScalar, internal::traits<MatrixType>::ColsAtCompileTime, 1> EigenvaluesReturnType;
+
+    EigenvaluesReturnType eigenvalues() const;
+    RealScalar operatorNorm() const;
+    
+    #ifdef EIGEN2_SUPPORT
+    template<typename OtherDerived>
+    SelfAdjointView& operator=(const MatrixBase<OtherDerived>& other)
+    {
+      enum {
+        OtherPart = UpLo == Upper ? StrictlyLower : StrictlyUpper
+      };
+      m_matrix.const_cast_derived().template triangularView<UpLo>() = other;
+      m_matrix.const_cast_derived().template triangularView<OtherPart>() = other.adjoint();
+      return *this;
+    }
+    template<typename OtherMatrixType, unsigned int OtherMode>
+    SelfAdjointView& operator=(const TriangularView<OtherMatrixType, OtherMode>& other)
+    {
+      enum {
+        OtherPart = UpLo == Upper ? StrictlyLower : StrictlyUpper
+      };
+      m_matrix.const_cast_derived().template triangularView<UpLo>() = other.toDenseMatrix();
+      m_matrix.const_cast_derived().template triangularView<OtherPart>() = other.toDenseMatrix().adjoint();
+      return *this;
+    }
+    #endif
+
+  protected:
+    MatrixTypeNested m_matrix;
+};
+
+
+// template<typename OtherDerived, typename MatrixType, unsigned int UpLo>
+// internal::selfadjoint_matrix_product_returntype<OtherDerived,SelfAdjointView<MatrixType,UpLo> >
+// operator*(const MatrixBase<OtherDerived>& lhs, const SelfAdjointView<MatrixType,UpLo>& rhs)
+// {
+//   return internal::matrix_selfadjoint_product_returntype<OtherDerived,SelfAdjointView<MatrixType,UpLo> >(lhs.derived(),rhs);
+// }
+
+// selfadjoint to dense matrix
+
+namespace internal {
+
+template<typename Derived1, typename Derived2, int UnrollCount, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, (SelfAdjoint|Upper), UnrollCount, ClearOpposite>
+{
+  enum {
+    col = (UnrollCount-1) / Derived1::RowsAtCompileTime,
+    row = (UnrollCount-1) % Derived1::RowsAtCompileTime
+  };
+
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    triangular_assignment_selector<Derived1, Derived2, (SelfAdjoint|Upper), UnrollCount-1, ClearOpposite>::run(dst, src);
+
+    if(row == col)
+      dst.coeffRef(row, col) = numext::real(src.coeff(row, col));
+    else if(row < col)
+      dst.coeffRef(col, row) = numext::conj(dst.coeffRef(row, col) = src.coeff(row, col));
+  }
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, SelfAdjoint|Upper, 0, ClearOpposite>
+{
+  static inline void run(Derived1 &, const Derived2 &) {}
+};
+
+template<typename Derived1, typename Derived2, int UnrollCount, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, (SelfAdjoint|Lower), UnrollCount, ClearOpposite>
+{
+  enum {
+    col = (UnrollCount-1) / Derived1::RowsAtCompileTime,
+    row = (UnrollCount-1) % Derived1::RowsAtCompileTime
+  };
+
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    triangular_assignment_selector<Derived1, Derived2, (SelfAdjoint|Lower), UnrollCount-1, ClearOpposite>::run(dst, src);
+
+    if(row == col)
+      dst.coeffRef(row, col) = numext::real(src.coeff(row, col));
+    else if(row > col)
+      dst.coeffRef(col, row) = numext::conj(dst.coeffRef(row, col) = src.coeff(row, col));
+  }
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, SelfAdjoint|Lower, 0, ClearOpposite>
+{
+  static inline void run(Derived1 &, const Derived2 &) {}
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, SelfAdjoint|Upper, Dynamic, ClearOpposite>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    for(Index j = 0; j < dst.cols(); ++j)
+    {
+      for(Index i = 0; i < j; ++i)
+      {
+        dst.copyCoeff(i, j, src);
+        dst.coeffRef(j,i) = numext::conj(dst.coeff(i,j));
+      }
+      dst.copyCoeff(j, j, src);
+    }
+  }
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, SelfAdjoint|Lower, Dynamic, ClearOpposite>
+{
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+  typedef typename Derived1::Index Index;
+    for(Index i = 0; i < dst.rows(); ++i)
+    {
+      for(Index j = 0; j < i; ++j)
+      {
+        dst.copyCoeff(i, j, src);
+        dst.coeffRef(j,i) = numext::conj(dst.coeff(i,j));
+      }
+      dst.copyCoeff(i, i, src);
+    }
+  }
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* Implementation of MatrixBase methods
+***************************************************************************/
+
+template<typename Derived>
+template<unsigned int UpLo>
+typename MatrixBase<Derived>::template ConstSelfAdjointViewReturnType<UpLo>::Type
+MatrixBase<Derived>::selfadjointView() const
+{
+  return derived();
+}
+
+template<typename Derived>
+template<unsigned int UpLo>
+typename MatrixBase<Derived>::template SelfAdjointViewReturnType<UpLo>::Type
+MatrixBase<Derived>::selfadjointView()
+{
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINTMATRIX_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/SelfCwiseBinaryOp.h b/vendor/eigen-3.2.8/Eigen/src/Core/SelfCwiseBinaryOp.h
new file mode 100644
index 0000000..0956475
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/SelfCwiseBinaryOp.h
@@ -0,0 +1,191 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFCWISEBINARYOP_H
+#define EIGEN_SELFCWISEBINARYOP_H
+
+namespace Eigen { 
+
+/** \class SelfCwiseBinaryOp
+  * \ingroup Core_Module
+  *
+  * \internal
+  *
+  * \brief Internal helper class for optimizing operators like +=, -=
+  *
+  * This is a pseudo expression class re-implementing the copyCoeff/copyPacket
+  * method to directly performs a +=/-= operations in an optimal way. In particular,
+  * this allows to make sure that the input/output data are loaded only once using
+  * aligned packet loads.
+  *
+  * \sa class SwapWrapper for a similar trick.
+  */
+
+namespace internal {
+template<typename BinaryOp, typename Lhs, typename Rhs>
+struct traits<SelfCwiseBinaryOp<BinaryOp,Lhs,Rhs> >
+  : traits<CwiseBinaryOp<BinaryOp,Lhs,Rhs> >
+{
+  enum {
+    // Note that it is still a good idea to preserve the DirectAccessBit
+    // so that assign can correctly align the data.
+    Flags = traits<CwiseBinaryOp<BinaryOp,Lhs,Rhs> >::Flags | (Lhs::Flags&DirectAccessBit) | (Lhs::Flags&LvalueBit),
+    OuterStrideAtCompileTime = Lhs::OuterStrideAtCompileTime,
+    InnerStrideAtCompileTime = Lhs::InnerStrideAtCompileTime
+  };
+};
+}
+
+template<typename BinaryOp, typename Lhs, typename Rhs> class SelfCwiseBinaryOp
+  : public internal::dense_xpr_base< SelfCwiseBinaryOp<BinaryOp, Lhs, Rhs> >::type
+{
+  public:
+
+    typedef typename internal::dense_xpr_base<SelfCwiseBinaryOp>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(SelfCwiseBinaryOp)
+
+    typedef typename internal::packet_traits<Scalar>::type Packet;
+
+    inline SelfCwiseBinaryOp(Lhs& xpr, const BinaryOp& func = BinaryOp()) : m_matrix(xpr), m_functor(func) {}
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+    inline Index outerStride() const { return m_matrix.outerStride(); }
+    inline Index innerStride() const { return m_matrix.innerStride(); }
+    inline const Scalar* data() const { return m_matrix.data(); }
+
+    // note that this function is needed by assign to correctly align loads/stores
+    // TODO make Assign use .data()
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(Lhs)
+      return m_matrix.const_cast_derived().coeffRef(row, col);
+    }
+    inline const Scalar& coeffRef(Index row, Index col) const
+    {
+      return m_matrix.coeffRef(row, col);
+    }
+
+    // note that this function is needed by assign to correctly align loads/stores
+    // TODO make Assign use .data()
+    inline Scalar& coeffRef(Index index)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(Lhs)
+      return m_matrix.const_cast_derived().coeffRef(index);
+    }
+    inline const Scalar& coeffRef(Index index) const
+    {
+      return m_matrix.const_cast_derived().coeffRef(index);
+    }
+
+    template<typename OtherDerived>
+    void copyCoeff(Index row, Index col, const DenseBase<OtherDerived>& other)
+    {
+      OtherDerived& _other = other.const_cast_derived();
+      eigen_internal_assert(row >= 0 && row < rows()
+                         && col >= 0 && col < cols());
+      Scalar& tmp = m_matrix.coeffRef(row,col);
+      tmp = m_functor(tmp, _other.coeff(row,col));
+    }
+
+    template<typename OtherDerived>
+    void copyCoeff(Index index, const DenseBase<OtherDerived>& other)
+    {
+      OtherDerived& _other = other.const_cast_derived();
+      eigen_internal_assert(index >= 0 && index < m_matrix.size());
+      Scalar& tmp = m_matrix.coeffRef(index);
+      tmp = m_functor(tmp, _other.coeff(index));
+    }
+
+    template<typename OtherDerived, int StoreMode, int LoadMode>
+    void copyPacket(Index row, Index col, const DenseBase<OtherDerived>& other)
+    {
+      OtherDerived& _other = other.const_cast_derived();
+      eigen_internal_assert(row >= 0 && row < rows()
+                        && col >= 0 && col < cols());
+      m_matrix.template writePacket<StoreMode>(row, col,
+        m_functor.packetOp(m_matrix.template packet<StoreMode>(row, col),_other.template packet<LoadMode>(row, col)) );
+    }
+
+    template<typename OtherDerived, int StoreMode, int LoadMode>
+    void copyPacket(Index index, const DenseBase<OtherDerived>& other)
+    {
+      OtherDerived& _other = other.const_cast_derived();
+      eigen_internal_assert(index >= 0 && index < m_matrix.size());
+      m_matrix.template writePacket<StoreMode>(index,
+        m_functor.packetOp(m_matrix.template packet<StoreMode>(index),_other.template packet<LoadMode>(index)) );
+    }
+
+    // reimplement lazyAssign to handle complex *= real
+    // see CwiseBinaryOp ctor for details
+    template<typename RhsDerived>
+    EIGEN_STRONG_INLINE SelfCwiseBinaryOp& lazyAssign(const DenseBase<RhsDerived>& rhs)
+    {
+      EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Lhs,RhsDerived)
+      EIGEN_CHECK_BINARY_COMPATIBILIY(BinaryOp,typename Lhs::Scalar,typename RhsDerived::Scalar);
+      
+    #ifdef EIGEN_DEBUG_ASSIGN
+      internal::assign_traits<SelfCwiseBinaryOp, RhsDerived>::debug();
+    #endif
+      eigen_assert(rows() == rhs.rows() && cols() == rhs.cols());
+      internal::assign_impl<SelfCwiseBinaryOp, RhsDerived>::run(*this,rhs.derived());
+    #ifndef EIGEN_NO_DEBUG
+      this->checkTransposeAliasing(rhs.derived());
+    #endif
+      return *this;
+    }
+    
+    // overloaded to honor evaluation of special matrices
+    // maybe another solution would be to not use SelfCwiseBinaryOp
+    // at first...
+    SelfCwiseBinaryOp& operator=(const Rhs& _rhs)
+    {
+      typename internal::nested<Rhs>::type rhs(_rhs);
+      return Base::operator=(rhs);
+    }
+
+    Lhs& expression() const 
+    { 
+      return m_matrix;
+    }
+
+    const BinaryOp& functor() const 
+    { 
+      return m_functor;
+    }
+
+  protected:
+    Lhs& m_matrix;
+    const BinaryOp& m_functor;
+
+  private:
+    SelfCwiseBinaryOp& operator=(const SelfCwiseBinaryOp&);
+};
+
+template<typename Derived>
+inline Derived& DenseBase<Derived>::operator*=(const Scalar& other)
+{
+  typedef typename Derived::PlainObject PlainObject;
+  SelfCwiseBinaryOp<internal::scalar_product_op<Scalar>, Derived, typename PlainObject::ConstantReturnType> tmp(derived());
+  tmp = PlainObject::Constant(rows(),cols(),other);
+  return derived();
+}
+
+template<typename Derived>
+inline Derived& DenseBase<Derived>::operator/=(const Scalar& other)
+{
+  typedef typename Derived::PlainObject PlainObject;
+  SelfCwiseBinaryOp<internal::scalar_quotient_op<Scalar>, Derived, typename PlainObject::ConstantReturnType> tmp(derived());
+  tmp = PlainObject::Constant(rows(),cols(), other);
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFCWISEBINARYOP_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/SolveTriangular.h b/vendor/eigen-3.2.8/Eigen/src/Core/SolveTriangular.h
new file mode 100644
index 0000000..83565dd
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/SolveTriangular.h
@@ -0,0 +1,260 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SOLVETRIANGULAR_H
+#define EIGEN_SOLVETRIANGULAR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+// Forward declarations:
+// The following two routines are implemented in the products/TriangularSolver*.h files
+template<typename LhsScalar, typename RhsScalar, typename Index, int Side, int Mode, bool Conjugate, int StorageOrder>
+struct triangular_solve_vector;
+
+template <typename Scalar, typename Index, int Side, int Mode, bool Conjugate, int TriStorageOrder, int OtherStorageOrder>
+struct triangular_solve_matrix;
+
+// small helper struct extracting some traits on the underlying solver operation
+template<typename Lhs, typename Rhs, int Side>
+class trsolve_traits
+{
+  private:
+    enum {
+      RhsIsVectorAtCompileTime = (Side==OnTheLeft ? Rhs::ColsAtCompileTime : Rhs::RowsAtCompileTime)==1
+    };
+  public:
+    enum {
+      Unrolling   = (RhsIsVectorAtCompileTime && Rhs::SizeAtCompileTime != Dynamic && Rhs::SizeAtCompileTime <= 8)
+                  ? CompleteUnrolling : NoUnrolling,
+      RhsVectors  = RhsIsVectorAtCompileTime ? 1 : Dynamic
+    };
+};
+
+template<typename Lhs, typename Rhs,
+  int Side, // can be OnTheLeft/OnTheRight
+  int Mode, // can be Upper/Lower | UnitDiag
+  int Unrolling = trsolve_traits<Lhs,Rhs,Side>::Unrolling,
+  int RhsVectors = trsolve_traits<Lhs,Rhs,Side>::RhsVectors
+  >
+struct triangular_solver_selector;
+
+template<typename Lhs, typename Rhs, int Side, int Mode>
+struct triangular_solver_selector<Lhs,Rhs,Side,Mode,NoUnrolling,1>
+{
+  typedef typename Lhs::Scalar LhsScalar;
+  typedef typename Rhs::Scalar RhsScalar;
+  typedef blas_traits<Lhs> LhsProductTraits;
+  typedef typename LhsProductTraits::ExtractType ActualLhsType;
+  typedef Map<Matrix<RhsScalar,Dynamic,1>, Aligned> MappedRhs;
+  static void run(const Lhs& lhs, Rhs& rhs)
+  {
+    ActualLhsType actualLhs = LhsProductTraits::extract(lhs);
+
+    // FIXME find a way to allow an inner stride if packet_traits<Scalar>::size==1
+
+    bool useRhsDirectly = Rhs::InnerStrideAtCompileTime==1 || rhs.innerStride()==1;
+
+    ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhs,rhs.size(),
+                                                  (useRhsDirectly ? rhs.data() : 0));
+                                                  
+    if(!useRhsDirectly)
+      MappedRhs(actualRhs,rhs.size()) = rhs;
+
+    triangular_solve_vector<LhsScalar, RhsScalar, typename Lhs::Index, Side, Mode, LhsProductTraits::NeedToConjugate,
+                            (int(Lhs::Flags) & RowMajorBit) ? RowMajor : ColMajor>
+      ::run(actualLhs.cols(), actualLhs.data(), actualLhs.outerStride(), actualRhs);
+
+    if(!useRhsDirectly)
+      rhs = MappedRhs(actualRhs, rhs.size());
+  }
+};
+
+// the rhs is a matrix
+template<typename Lhs, typename Rhs, int Side, int Mode>
+struct triangular_solver_selector<Lhs,Rhs,Side,Mode,NoUnrolling,Dynamic>
+{
+  typedef typename Rhs::Scalar Scalar;
+  typedef typename Rhs::Index Index;
+  typedef blas_traits<Lhs> LhsProductTraits;
+  typedef typename LhsProductTraits::DirectLinearAccessType ActualLhsType;
+
+  static void run(const Lhs& lhs, Rhs& rhs)
+  {
+    typename internal::add_const_on_value_type<ActualLhsType>::type actualLhs = LhsProductTraits::extract(lhs);
+
+    const Index size = lhs.rows();
+    const Index othersize = Side==OnTheLeft? rhs.cols() : rhs.rows();
+
+    typedef internal::gemm_blocking_space<(Rhs::Flags&RowMajorBit) ? RowMajor : ColMajor,Scalar,Scalar,
+              Rhs::MaxRowsAtCompileTime, Rhs::MaxColsAtCompileTime, Lhs::MaxRowsAtCompileTime,4> BlockingType;
+
+    BlockingType blocking(rhs.rows(), rhs.cols(), size);
+
+    triangular_solve_matrix<Scalar,Index,Side,Mode,LhsProductTraits::NeedToConjugate,(int(Lhs::Flags) & RowMajorBit) ? RowMajor : ColMajor,
+                               (Rhs::Flags&RowMajorBit) ? RowMajor : ColMajor>
+      ::run(size, othersize, &actualLhs.coeffRef(0,0), actualLhs.outerStride(), &rhs.coeffRef(0,0), rhs.outerStride(), blocking);
+  }
+};
+
+/***************************************************************************
+* meta-unrolling implementation
+***************************************************************************/
+
+template<typename Lhs, typename Rhs, int Mode, int Index, int Size,
+         bool Stop = Index==Size>
+struct triangular_solver_unroller;
+
+template<typename Lhs, typename Rhs, int Mode, int Index, int Size>
+struct triangular_solver_unroller<Lhs,Rhs,Mode,Index,Size,false> {
+  enum {
+    IsLower = ((Mode&Lower)==Lower),
+    RowIndex = IsLower ? Index : Size - Index - 1,
+    S = IsLower ? 0     : RowIndex+1
+  };
+  static void run(const Lhs& lhs, Rhs& rhs)
+  {
+    if (Index>0)
+      rhs.coeffRef(RowIndex) -= lhs.row(RowIndex).template segment<Index>(S).transpose()
+                         .cwiseProduct(rhs.template segment<Index>(S)).sum();
+
+    if(!(Mode & UnitDiag))
+      rhs.coeffRef(RowIndex) /= lhs.coeff(RowIndex,RowIndex);
+
+    triangular_solver_unroller<Lhs,Rhs,Mode,Index+1,Size>::run(lhs,rhs);
+  }
+};
+
+template<typename Lhs, typename Rhs, int Mode, int Index, int Size>
+struct triangular_solver_unroller<Lhs,Rhs,Mode,Index,Size,true> {
+  static void run(const Lhs&, Rhs&) {}
+};
+
+template<typename Lhs, typename Rhs, int Mode>
+struct triangular_solver_selector<Lhs,Rhs,OnTheLeft,Mode,CompleteUnrolling,1> {
+  static void run(const Lhs& lhs, Rhs& rhs)
+  { triangular_solver_unroller<Lhs,Rhs,Mode,0,Rhs::SizeAtCompileTime>::run(lhs,rhs); }
+};
+
+template<typename Lhs, typename Rhs, int Mode>
+struct triangular_solver_selector<Lhs,Rhs,OnTheRight,Mode,CompleteUnrolling,1> {
+  static void run(const Lhs& lhs, Rhs& rhs)
+  {
+    Transpose<const Lhs> trLhs(lhs);
+    Transpose<Rhs> trRhs(rhs);
+    
+    triangular_solver_unroller<Transpose<const Lhs>,Transpose<Rhs>,
+                              ((Mode&Upper)==Upper ? Lower : Upper) | (Mode&UnitDiag),
+                              0,Rhs::SizeAtCompileTime>::run(trLhs,trRhs);
+  }
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* TriangularView methods
+***************************************************************************/
+
+/** "in-place" version of TriangularView::solve() where the result is written in \a other
+  *
+  * \warning The parameter is only marked 'const' to make the C++ compiler accept a temporary expression here.
+  * This function will const_cast it, so constness isn't honored here.
+  *
+  * See TriangularView:solve() for the details.
+  */
+template<typename MatrixType, unsigned int Mode>
+template<int Side, typename OtherDerived>
+void TriangularView<MatrixType,Mode>::solveInPlace(const MatrixBase<OtherDerived>& _other) const
+{
+  OtherDerived& other = _other.const_cast_derived();
+  eigen_assert( cols() == rows() && ((Side==OnTheLeft && cols() == other.rows()) || (Side==OnTheRight && cols() == other.cols())) );
+  eigen_assert((!(Mode & ZeroDiag)) && bool(Mode & (Upper|Lower)));
+
+  enum { copy = internal::traits<OtherDerived>::Flags & RowMajorBit  && OtherDerived::IsVectorAtCompileTime };
+  typedef typename internal::conditional<copy,
+    typename internal::plain_matrix_type_column_major<OtherDerived>::type, OtherDerived&>::type OtherCopy;
+  OtherCopy otherCopy(other);
+
+  internal::triangular_solver_selector<MatrixType, typename internal::remove_reference<OtherCopy>::type,
+    Side, Mode>::run(nestedExpression(), otherCopy);
+
+  if (copy)
+    other = otherCopy;
+}
+
+/** \returns the product of the inverse of \c *this with \a other, \a *this being triangular.
+  *
+  * This function computes the inverse-matrix matrix product inverse(\c *this) * \a other if
+  * \a Side==OnTheLeft (the default), or the right-inverse-multiply  \a other * inverse(\c *this) if
+  * \a Side==OnTheRight.
+  *
+  * The matrix \c *this must be triangular and invertible (i.e., all the coefficients of the
+  * diagonal must be non zero). It works as a forward (resp. backward) substitution if \c *this
+  * is an upper (resp. lower) triangular matrix.
+  *
+  * Example: \include MatrixBase_marked.cpp
+  * Output: \verbinclude MatrixBase_marked.out
+  *
+  * This function returns an expression of the inverse-multiply and can works in-place if it is assigned
+  * to the same matrix or vector \a other.
+  *
+  * For users coming from BLAS, this function (and more specifically solveInPlace()) offer
+  * all the operations supported by the \c *TRSV and \c *TRSM BLAS routines.
+  *
+  * \sa TriangularView::solveInPlace()
+  */
+template<typename Derived, unsigned int Mode>
+template<int Side, typename Other>
+const internal::triangular_solve_retval<Side,TriangularView<Derived,Mode>,Other>
+TriangularView<Derived,Mode>::solve(const MatrixBase<Other>& other) const
+{
+  return internal::triangular_solve_retval<Side,TriangularView,Other>(*this, other.derived());
+}
+
+namespace internal {
+
+
+template<int Side, typename TriangularType, typename Rhs>
+struct traits<triangular_solve_retval<Side, TriangularType, Rhs> >
+{
+  typedef typename internal::plain_matrix_type_column_major<Rhs>::type ReturnType;
+};
+
+template<int Side, typename TriangularType, typename Rhs> struct triangular_solve_retval
+ : public ReturnByValue<triangular_solve_retval<Side, TriangularType, Rhs> >
+{
+  typedef typename remove_all<typename Rhs::Nested>::type RhsNestedCleaned;
+  typedef ReturnByValue<triangular_solve_retval> Base;
+  typedef typename Base::Index Index;
+
+  triangular_solve_retval(const TriangularType& tri, const Rhs& rhs)
+    : m_triangularMatrix(tri), m_rhs(rhs)
+  {}
+
+  inline Index rows() const { return m_rhs.rows(); }
+  inline Index cols() const { return m_rhs.cols(); }
+
+  template<typename Dest> inline void evalTo(Dest& dst) const
+  {
+    if(!(is_same<RhsNestedCleaned,Dest>::value && extract_data(dst) == extract_data(m_rhs)))
+      dst = m_rhs;
+    m_triangularMatrix.template solveInPlace<Side>(dst);
+  }
+
+  protected:
+    const TriangularType& m_triangularMatrix;
+    typename Rhs::Nested m_rhs;
+};
+
+} // namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SOLVETRIANGULAR_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/StableNorm.h b/vendor/eigen-3.2.8/Eigen/src/Core/StableNorm.h
new file mode 100644
index 0000000..389d942
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/StableNorm.h
@@ -0,0 +1,203 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STABLENORM_H
+#define EIGEN_STABLENORM_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename ExpressionType, typename Scalar>
+inline void stable_norm_kernel(const ExpressionType& bl, Scalar& ssq, Scalar& scale, Scalar& invScale)
+{
+  using std::max;
+  Scalar maxCoeff = bl.cwiseAbs().maxCoeff();
+  
+  if (maxCoeff>scale)
+  {
+    ssq = ssq * numext::abs2(scale/maxCoeff);
+    Scalar tmp = Scalar(1)/maxCoeff;
+    if(tmp > NumTraits<Scalar>::highest())
+    {
+      invScale = NumTraits<Scalar>::highest();
+      scale = Scalar(1)/invScale;
+    }
+    else
+    {
+      scale = maxCoeff;
+      invScale = tmp;
+    }
+  }
+  
+  // TODO if the maxCoeff is much much smaller than the current scale,
+  // then we can neglect this sub vector
+  if(scale>Scalar(0)) // if scale==0, then bl is 0 
+    ssq += (bl*invScale).squaredNorm();
+}
+
+template<typename Derived>
+inline typename NumTraits<typename traits<Derived>::Scalar>::Real
+blueNorm_impl(const EigenBase<Derived>& _vec)
+{
+  typedef typename Derived::RealScalar RealScalar;  
+  typedef typename Derived::Index Index;
+  using std::pow;
+  using std::min;
+  using std::max;
+  using std::sqrt;
+  using std::abs;
+  const Derived& vec(_vec.derived());
+  static bool initialized = false;
+  static RealScalar b1, b2, s1m, s2m, overfl, rbig, relerr;
+  if(!initialized)
+  {
+    int ibeta, it, iemin, iemax, iexp;
+    RealScalar eps;
+    // This program calculates the machine-dependent constants
+    // bl, b2, slm, s2m, relerr overfl
+    // from the "basic" machine-dependent numbers
+    // nbig, ibeta, it, iemin, iemax, rbig.
+    // The following define the basic machine-dependent constants.
+    // For portability, the PORT subprograms "ilmaeh" and "rlmach"
+    // are used. For any specific computer, each of the assignment
+    // statements can be replaced
+    ibeta = std::numeric_limits<RealScalar>::radix;                 // base for floating-point numbers
+    it    = std::numeric_limits<RealScalar>::digits;                // number of base-beta digits in mantissa
+    iemin = std::numeric_limits<RealScalar>::min_exponent;          // minimum exponent
+    iemax = std::numeric_limits<RealScalar>::max_exponent;          // maximum exponent
+    rbig  = (std::numeric_limits<RealScalar>::max)();               // largest floating-point number
+
+    iexp  = -((1-iemin)/2);
+    b1    = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp)));    // lower boundary of midrange
+    iexp  = (iemax + 1 - it)/2;
+    b2    = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp)));    // upper boundary of midrange
+
+    iexp  = (2-iemin)/2;
+    s1m   = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp)));    // scaling factor for lower range
+    iexp  = - ((iemax+it)/2);
+    s2m   = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp)));    // scaling factor for upper range
+
+    overfl  = rbig*s2m;                                             // overflow boundary for abig
+    eps     = RealScalar(pow(double(ibeta), 1-it));
+    relerr  = sqrt(eps);                                            // tolerance for neglecting asml
+    initialized = true;
+  }
+  Index n = vec.size();
+  RealScalar ab2 = b2 / RealScalar(n);
+  RealScalar asml = RealScalar(0);
+  RealScalar amed = RealScalar(0);
+  RealScalar abig = RealScalar(0);
+  for(typename Derived::InnerIterator it(vec, 0); it; ++it)
+  {
+    RealScalar ax = abs(it.value());
+    if(ax > ab2)     abig += numext::abs2(ax*s2m);
+    else if(ax < b1) asml += numext::abs2(ax*s1m);
+    else             amed += numext::abs2(ax);
+  }
+  if(abig > RealScalar(0))
+  {
+    abig = sqrt(abig);
+    if(abig > overfl)
+    {
+      return rbig;
+    }
+    if(amed > RealScalar(0))
+    {
+      abig = abig/s2m;
+      amed = sqrt(amed);
+    }
+    else
+      return abig/s2m;
+  }
+  else if(asml > RealScalar(0))
+  {
+    if (amed > RealScalar(0))
+    {
+      abig = sqrt(amed);
+      amed = sqrt(asml) / s1m;
+    }
+    else
+      return sqrt(asml)/s1m;
+  }
+  else
+    return sqrt(amed);
+  asml = (min)(abig, amed);
+  abig = (max)(abig, amed);
+  if(asml <= abig*relerr)
+    return abig;
+  else
+    return abig * sqrt(RealScalar(1) + numext::abs2(asml/abig));
+}
+
+} // end namespace internal
+
+/** \returns the \em l2 norm of \c *this avoiding underflow and overflow.
+  * This version use a blockwise two passes algorithm:
+  *  1 - find the absolute largest coefficient \c s
+  *  2 - compute \f$ s \Vert \frac{*this}{s} \Vert \f$ in a standard way
+  *
+  * For architecture/scalar types supporting vectorization, this version
+  * is faster than blueNorm(). Otherwise the blueNorm() is much faster.
+  *
+  * \sa norm(), blueNorm(), hypotNorm()
+  */
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+MatrixBase<Derived>::stableNorm() const
+{
+  using std::min;
+  using std::sqrt;
+  const Index blockSize = 4096;
+  RealScalar scale(0);
+  RealScalar invScale(1);
+  RealScalar ssq(0); // sum of square
+  enum {
+    Alignment = (int(Flags)&DirectAccessBit) || (int(Flags)&AlignedBit) ? 1 : 0
+  };
+  Index n = size();
+  Index bi = internal::first_aligned(derived());
+  if (bi>0)
+    internal::stable_norm_kernel(this->head(bi), ssq, scale, invScale);
+  for (; bi<n; bi+=blockSize)
+    internal::stable_norm_kernel(this->segment(bi,(min)(blockSize, n - bi)).template forceAlignedAccessIf<Alignment>(), ssq, scale, invScale);
+  return scale * sqrt(ssq);
+}
+
+/** \returns the \em l2 norm of \c *this using the Blue's algorithm.
+  * A Portable Fortran Program to Find the Euclidean Norm of a Vector,
+  * ACM TOMS, Vol 4, Issue 1, 1978.
+  *
+  * For architecture/scalar types without vectorization, this version
+  * is much faster than stableNorm(). Otherwise the stableNorm() is faster.
+  *
+  * \sa norm(), stableNorm(), hypotNorm()
+  */
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+MatrixBase<Derived>::blueNorm() const
+{
+  return internal::blueNorm_impl(*this);
+}
+
+/** \returns the \em l2 norm of \c *this avoiding undeflow and overflow.
+  * This version use a concatenation of hypot() calls, and it is very slow.
+  *
+  * \sa norm(), stableNorm()
+  */
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+MatrixBase<Derived>::hypotNorm() const
+{
+  return this->cwiseAbs().redux(internal::scalar_hypot_op<RealScalar>());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_STABLENORM_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Stride.h b/vendor/eigen-3.2.8/Eigen/src/Core/Stride.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/Stride.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/Stride.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Swap.h b/vendor/eigen-3.2.8/Eigen/src/Core/Swap.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/Swap.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/Swap.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/Transpose.h b/vendor/eigen-3.2.8/Eigen/src/Core/Transpose.h
new file mode 100644
index 0000000..22096ea
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/Transpose.h
@@ -0,0 +1,419 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRANSPOSE_H
+#define EIGEN_TRANSPOSE_H
+
+namespace Eigen { 
+
+/** \class Transpose
+  * \ingroup Core_Module
+  *
+  * \brief Expression of the transpose of a matrix
+  *
+  * \param MatrixType the type of the object of which we are taking the transpose
+  *
+  * This class represents an expression of the transpose of a matrix.
+  * It is the return type of MatrixBase::transpose() and MatrixBase::adjoint()
+  * and most of the time this is the only way it is used.
+  *
+  * \sa MatrixBase::transpose(), MatrixBase::adjoint()
+  */
+
+namespace internal {
+template<typename MatrixType>
+struct traits<Transpose<MatrixType> > : traits<MatrixType>
+{
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_reference<MatrixTypeNested>::type MatrixTypeNestedPlain;
+  typedef typename traits<MatrixType>::StorageKind StorageKind;
+  typedef typename traits<MatrixType>::XprKind XprKind;
+  enum {
+    RowsAtCompileTime = MatrixType::ColsAtCompileTime,
+    ColsAtCompileTime = MatrixType::RowsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+    MaxColsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+    FlagsLvalueBit = is_lvalue<MatrixType>::value ? LvalueBit : 0,
+    Flags0 = MatrixTypeNestedPlain::Flags & ~(LvalueBit | NestByRefBit),
+    Flags1 = Flags0 | FlagsLvalueBit,
+    Flags = Flags1 ^ RowMajorBit,
+    CoeffReadCost = MatrixTypeNestedPlain::CoeffReadCost,
+    InnerStrideAtCompileTime = inner_stride_at_compile_time<MatrixType>::ret,
+    OuterStrideAtCompileTime = outer_stride_at_compile_time<MatrixType>::ret
+  };
+};
+}
+
+template<typename MatrixType, typename StorageKind> class TransposeImpl;
+
+template<typename MatrixType> class Transpose
+  : public TransposeImpl<MatrixType,typename internal::traits<MatrixType>::StorageKind>
+{
+  public:
+
+    typedef typename TransposeImpl<MatrixType,typename internal::traits<MatrixType>::StorageKind>::Base Base;
+    EIGEN_GENERIC_PUBLIC_INTERFACE(Transpose)
+
+    inline Transpose(MatrixType& a_matrix) : m_matrix(a_matrix) {}
+
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Transpose)
+
+    inline Index rows() const { return m_matrix.cols(); }
+    inline Index cols() const { return m_matrix.rows(); }
+
+    /** \returns the nested expression */
+    const typename internal::remove_all<typename MatrixType::Nested>::type&
+    nestedExpression() const { return m_matrix; }
+
+    /** \returns the nested expression */
+    typename internal::remove_all<typename MatrixType::Nested>::type&
+    nestedExpression() { return m_matrix.const_cast_derived(); }
+
+  protected:
+    typename MatrixType::Nested m_matrix;
+};
+
+namespace internal {
+
+template<typename MatrixType, bool HasDirectAccess = has_direct_access<MatrixType>::ret>
+struct TransposeImpl_base
+{
+  typedef typename dense_xpr_base<Transpose<MatrixType> >::type type;
+};
+
+template<typename MatrixType>
+struct TransposeImpl_base<MatrixType, false>
+{
+  typedef typename dense_xpr_base<Transpose<MatrixType> >::type type;
+};
+
+} // end namespace internal
+
+template<typename MatrixType> class TransposeImpl<MatrixType,Dense>
+  : public internal::TransposeImpl_base<MatrixType>::type
+{
+  public:
+
+    typedef typename internal::TransposeImpl_base<MatrixType>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Transpose<MatrixType>)
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(TransposeImpl)
+
+    inline Index innerStride() const { return derived().nestedExpression().innerStride(); }
+    inline Index outerStride() const { return derived().nestedExpression().outerStride(); }
+
+    typedef typename internal::conditional<
+                       internal::is_lvalue<MatrixType>::value,
+                       Scalar,
+                       const Scalar
+                     >::type ScalarWithConstIfNotLvalue;
+
+    inline ScalarWithConstIfNotLvalue* data() { return derived().nestedExpression().data(); }
+    inline const Scalar* data() const { return derived().nestedExpression().data(); }
+
+    inline ScalarWithConstIfNotLvalue& coeffRef(Index rowId, Index colId)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
+      return derived().nestedExpression().const_cast_derived().coeffRef(colId, rowId);
+    }
+
+    inline ScalarWithConstIfNotLvalue& coeffRef(Index index)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
+      return derived().nestedExpression().const_cast_derived().coeffRef(index);
+    }
+
+    inline const Scalar& coeffRef(Index rowId, Index colId) const
+    {
+      return derived().nestedExpression().coeffRef(colId, rowId);
+    }
+
+    inline const Scalar& coeffRef(Index index) const
+    {
+      return derived().nestedExpression().coeffRef(index);
+    }
+
+    inline CoeffReturnType coeff(Index rowId, Index colId) const
+    {
+      return derived().nestedExpression().coeff(colId, rowId);
+    }
+
+    inline CoeffReturnType coeff(Index index) const
+    {
+      return derived().nestedExpression().coeff(index);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index rowId, Index colId) const
+    {
+      return derived().nestedExpression().template packet<LoadMode>(colId, rowId);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index rowId, Index colId, const PacketScalar& x)
+    {
+      derived().nestedExpression().const_cast_derived().template writePacket<LoadMode>(colId, rowId, x);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index index) const
+    {
+      return derived().nestedExpression().template packet<LoadMode>(index);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index index, const PacketScalar& x)
+    {
+      derived().nestedExpression().const_cast_derived().template writePacket<LoadMode>(index, x);
+    }
+};
+
+/** \returns an expression of the transpose of *this.
+  *
+  * Example: \include MatrixBase_transpose.cpp
+  * Output: \verbinclude MatrixBase_transpose.out
+  *
+  * \warning If you want to replace a matrix by its own transpose, do \b NOT do this:
+  * \code
+  * m = m.transpose(); // bug!!! caused by aliasing effect
+  * \endcode
+  * Instead, use the transposeInPlace() method:
+  * \code
+  * m.transposeInPlace();
+  * \endcode
+  * which gives Eigen good opportunities for optimization, or alternatively you can also do:
+  * \code
+  * m = m.transpose().eval();
+  * \endcode
+  *
+  * \sa transposeInPlace(), adjoint() */
+template<typename Derived>
+inline Transpose<Derived>
+DenseBase<Derived>::transpose()
+{
+  return derived();
+}
+
+/** This is the const version of transpose().
+  *
+  * Make sure you read the warning for transpose() !
+  *
+  * \sa transposeInPlace(), adjoint() */
+template<typename Derived>
+inline typename DenseBase<Derived>::ConstTransposeReturnType
+DenseBase<Derived>::transpose() const
+{
+  return ConstTransposeReturnType(derived());
+}
+
+/** \returns an expression of the adjoint (i.e. conjugate transpose) of *this.
+  *
+  * Example: \include MatrixBase_adjoint.cpp
+  * Output: \verbinclude MatrixBase_adjoint.out
+  *
+  * \warning If you want to replace a matrix by its own adjoint, do \b NOT do this:
+  * \code
+  * m = m.adjoint(); // bug!!! caused by aliasing effect
+  * \endcode
+  * Instead, use the adjointInPlace() method:
+  * \code
+  * m.adjointInPlace();
+  * \endcode
+  * which gives Eigen good opportunities for optimization, or alternatively you can also do:
+  * \code
+  * m = m.adjoint().eval();
+  * \endcode
+  *
+  * \sa adjointInPlace(), transpose(), conjugate(), class Transpose, class internal::scalar_conjugate_op */
+template<typename Derived>
+inline const typename MatrixBase<Derived>::AdjointReturnType
+MatrixBase<Derived>::adjoint() const
+{
+  return this->transpose(); // in the complex case, the .conjugate() is be implicit here
+                            // due to implicit conversion to return type
+}
+
+/***************************************************************************
+* "in place" transpose implementation
+***************************************************************************/
+
+namespace internal {
+
+template<typename MatrixType,
+  bool IsSquare = (MatrixType::RowsAtCompileTime == MatrixType::ColsAtCompileTime) && MatrixType::RowsAtCompileTime!=Dynamic>
+struct inplace_transpose_selector;
+
+template<typename MatrixType>
+struct inplace_transpose_selector<MatrixType,true> { // square matrix
+  static void run(MatrixType& m) {
+    m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose());
+  }
+};
+
+template<typename MatrixType>
+struct inplace_transpose_selector<MatrixType,false> { // non square matrix
+  static void run(MatrixType& m) {
+    if (m.rows()==m.cols())
+      m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose());
+    else
+      m = m.transpose().eval();
+  }
+};
+
+} // end namespace internal
+
+/** This is the "in place" version of transpose(): it replaces \c *this by its own transpose.
+  * Thus, doing
+  * \code
+  * m.transposeInPlace();
+  * \endcode
+  * has the same effect on m as doing
+  * \code
+  * m = m.transpose().eval();
+  * \endcode
+  * and is faster and also safer because in the latter line of code, forgetting the eval() results
+  * in a bug caused by \ref TopicAliasing "aliasing".
+  *
+  * Notice however that this method is only useful if you want to replace a matrix by its own transpose.
+  * If you just need the transpose of a matrix, use transpose().
+  *
+  * \note if the matrix is not square, then \c *this must be a resizable matrix. 
+  * This excludes (non-square) fixed-size matrices, block-expressions and maps.
+  *
+  * \sa transpose(), adjoint(), adjointInPlace() */
+template<typename Derived>
+inline void DenseBase<Derived>::transposeInPlace()
+{
+  eigen_assert((rows() == cols() || (RowsAtCompileTime == Dynamic && ColsAtCompileTime == Dynamic))
+               && "transposeInPlace() called on a non-square non-resizable matrix");
+  internal::inplace_transpose_selector<Derived>::run(derived());
+}
+
+/***************************************************************************
+* "in place" adjoint implementation
+***************************************************************************/
+
+/** This is the "in place" version of adjoint(): it replaces \c *this by its own transpose.
+  * Thus, doing
+  * \code
+  * m.adjointInPlace();
+  * \endcode
+  * has the same effect on m as doing
+  * \code
+  * m = m.adjoint().eval();
+  * \endcode
+  * and is faster and also safer because in the latter line of code, forgetting the eval() results
+  * in a bug caused by aliasing.
+  *
+  * Notice however that this method is only useful if you want to replace a matrix by its own adjoint.
+  * If you just need the adjoint of a matrix, use adjoint().
+  *
+  * \note if the matrix is not square, then \c *this must be a resizable matrix.
+  * This excludes (non-square) fixed-size matrices, block-expressions and maps.
+  *
+  * \sa transpose(), adjoint(), transposeInPlace() */
+template<typename Derived>
+inline void MatrixBase<Derived>::adjointInPlace()
+{
+  derived() = adjoint().eval();
+}
+
+#ifndef EIGEN_NO_DEBUG
+
+// The following is to detect aliasing problems in most common cases.
+
+namespace internal {
+
+template<typename BinOp,typename NestedXpr,typename Rhs>
+struct blas_traits<SelfCwiseBinaryOp<BinOp,NestedXpr,Rhs> >
+ : blas_traits<NestedXpr>
+{
+  typedef SelfCwiseBinaryOp<BinOp,NestedXpr,Rhs> XprType;
+  static inline const XprType extract(const XprType& x) { return x; }
+};
+
+template<bool DestIsTransposed, typename OtherDerived>
+struct check_transpose_aliasing_compile_time_selector
+{
+  enum { ret = bool(blas_traits<OtherDerived>::IsTransposed) != DestIsTransposed };
+};
+
+template<bool DestIsTransposed, typename BinOp, typename DerivedA, typename DerivedB>
+struct check_transpose_aliasing_compile_time_selector<DestIsTransposed,CwiseBinaryOp<BinOp,DerivedA,DerivedB> >
+{
+  enum { ret =    bool(blas_traits<DerivedA>::IsTransposed) != DestIsTransposed
+               || bool(blas_traits<DerivedB>::IsTransposed) != DestIsTransposed
+  };
+};
+
+template<typename Scalar, bool DestIsTransposed, typename OtherDerived>
+struct check_transpose_aliasing_run_time_selector
+{
+  static bool run(const Scalar* dest, const OtherDerived& src)
+  {
+    return (bool(blas_traits<OtherDerived>::IsTransposed) != DestIsTransposed) && (dest!=0 && dest==(const Scalar*)extract_data(src));
+  }
+};
+
+template<typename Scalar, bool DestIsTransposed, typename BinOp, typename DerivedA, typename DerivedB>
+struct check_transpose_aliasing_run_time_selector<Scalar,DestIsTransposed,CwiseBinaryOp<BinOp,DerivedA,DerivedB> >
+{
+  static bool run(const Scalar* dest, const CwiseBinaryOp<BinOp,DerivedA,DerivedB>& src)
+  {
+    return ((blas_traits<DerivedA>::IsTransposed != DestIsTransposed) && (dest!=0 && dest==(const Scalar*)extract_data(src.lhs())))
+        || ((blas_traits<DerivedB>::IsTransposed != DestIsTransposed) && (dest!=0 && dest==(const Scalar*)extract_data(src.rhs())));
+  }
+};
+
+// the following selector, checkTransposeAliasing_impl, based on MightHaveTransposeAliasing,
+// is because when the condition controlling the assert is known at compile time, ICC emits a warning.
+// This is actually a good warning: in expressions that don't have any transposing, the condition is
+// known at compile time to be false, and using that, we can avoid generating the code of the assert again
+// and again for all these expressions that don't need it.
+
+template<typename Derived, typename OtherDerived,
+         bool MightHaveTransposeAliasing
+                 = check_transpose_aliasing_compile_time_selector
+                     <blas_traits<Derived>::IsTransposed,OtherDerived>::ret
+        >
+struct checkTransposeAliasing_impl
+{
+    static void run(const Derived& dst, const OtherDerived& other)
+    {
+        eigen_assert((!check_transpose_aliasing_run_time_selector
+                      <typename Derived::Scalar,blas_traits<Derived>::IsTransposed,OtherDerived>
+                      ::run(extract_data(dst), other))
+          && "aliasing detected during transposition, use transposeInPlace() "
+             "or evaluate the rhs into a temporary using .eval()");
+
+    }
+};
+
+template<typename Derived, typename OtherDerived>
+struct checkTransposeAliasing_impl<Derived, OtherDerived, false>
+{
+    static void run(const Derived&, const OtherDerived&)
+    {
+    }
+};
+
+} // end namespace internal
+
+template<typename Derived>
+template<typename OtherDerived>
+void DenseBase<Derived>::checkTransposeAliasing(const OtherDerived& other) const
+{
+    internal::checkTransposeAliasing_impl<Derived, OtherDerived>::run(derived(), other);
+}
+#endif
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRANSPOSE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/Transpositions.h b/vendor/eigen-3.2.8/Eigen/src/Core/Transpositions.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/Transpositions.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/Transpositions.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/TriangularMatrix.h b/vendor/eigen-3.2.8/Eigen/src/Core/TriangularMatrix.h
new file mode 100644
index 0000000..4d65392
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/TriangularMatrix.h
@@ -0,0 +1,839 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIANGULARMATRIX_H
+#define EIGEN_TRIANGULARMATRIX_H
+
+namespace Eigen { 
+
+namespace internal {
+  
+template<int Side, typename TriangularType, typename Rhs> struct triangular_solve_retval;
+  
+}
+
+/** \internal
+  *
+  * \class TriangularBase
+  * \ingroup Core_Module
+  *
+  * \brief Base class for triangular part in a matrix
+  */
+template<typename Derived> class TriangularBase : public EigenBase<Derived>
+{
+  public:
+
+    enum {
+      Mode = internal::traits<Derived>::Mode,
+      CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
+      RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+      ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+      MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime
+    };
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::traits<Derived>::DenseMatrixType DenseMatrixType;
+    typedef DenseMatrixType DenseType;
+
+    inline TriangularBase() { eigen_assert(!((Mode&UnitDiag) && (Mode&ZeroDiag))); }
+
+    inline Index rows() const { return derived().rows(); }
+    inline Index cols() const { return derived().cols(); }
+    inline Index outerStride() const { return derived().outerStride(); }
+    inline Index innerStride() const { return derived().innerStride(); }
+
+    inline Scalar coeff(Index row, Index col) const  { return derived().coeff(row,col); }
+    inline Scalar& coeffRef(Index row, Index col) { return derived().coeffRef(row,col); }
+
+    /** \see MatrixBase::copyCoeff(row,col)
+      */
+    template<typename Other>
+    EIGEN_STRONG_INLINE void copyCoeff(Index row, Index col, Other& other)
+    {
+      derived().coeffRef(row, col) = other.coeff(row, col);
+    }
+
+    inline Scalar operator()(Index row, Index col) const
+    {
+      check_coordinates(row, col);
+      return coeff(row,col);
+    }
+    inline Scalar& operator()(Index row, Index col)
+    {
+      check_coordinates(row, col);
+      return coeffRef(row,col);
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
+    inline Derived& derived() { return *static_cast<Derived*>(this); }
+    #endif // not EIGEN_PARSED_BY_DOXYGEN
+
+    template<typename DenseDerived>
+    void evalTo(MatrixBase<DenseDerived> &other) const;
+    template<typename DenseDerived>
+    void evalToLazy(MatrixBase<DenseDerived> &other) const;
+
+    DenseMatrixType toDenseMatrix() const
+    {
+      DenseMatrixType res(rows(), cols());
+      evalToLazy(res);
+      return res;
+    }
+
+  protected:
+
+    void check_coordinates(Index row, Index col) const
+    {
+      EIGEN_ONLY_USED_FOR_DEBUG(row);
+      EIGEN_ONLY_USED_FOR_DEBUG(col);
+      eigen_assert(col>=0 && col<cols() && row>=0 && row<rows());
+      const int mode = int(Mode) & ~SelfAdjoint;
+      EIGEN_ONLY_USED_FOR_DEBUG(mode);
+      eigen_assert((mode==Upper && col>=row)
+                || (mode==Lower && col<=row)
+                || ((mode==StrictlyUpper || mode==UnitUpper) && col>row)
+                || ((mode==StrictlyLower || mode==UnitLower) && col<row));
+    }
+
+    #ifdef EIGEN_INTERNAL_DEBUGGING
+    void check_coordinates_internal(Index row, Index col) const
+    {
+      check_coordinates(row, col);
+    }
+    #else
+    void check_coordinates_internal(Index , Index ) const {}
+    #endif
+
+};
+
+/** \class TriangularView
+  * \ingroup Core_Module
+  *
+  * \brief Base class for triangular part in a matrix
+  *
+  * \param MatrixType the type of the object in which we are taking the triangular part
+  * \param Mode the kind of triangular matrix expression to construct. Can be #Upper,
+  *             #Lower, #UnitUpper, #UnitLower, #StrictlyUpper, or #StrictlyLower.
+  *             This is in fact a bit field; it must have either #Upper or #Lower, 
+  *             and additionnaly it may have #UnitDiag or #ZeroDiag or neither.
+  *
+  * This class represents a triangular part of a matrix, not necessarily square. Strictly speaking, for rectangular
+  * matrices one should speak of "trapezoid" parts. This class is the return type
+  * of MatrixBase::triangularView() and most of the time this is the only way it is used.
+  *
+  * \sa MatrixBase::triangularView()
+  */
+namespace internal {
+template<typename MatrixType, unsigned int _Mode>
+struct traits<TriangularView<MatrixType, _Mode> > : traits<MatrixType>
+{
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_reference<MatrixTypeNested>::type MatrixTypeNestedNonRef;
+  typedef typename remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
+  typedef MatrixType ExpressionType;
+  typedef typename MatrixType::PlainObject DenseMatrixType;
+  enum {
+    Mode = _Mode,
+    Flags = (MatrixTypeNestedCleaned::Flags & (HereditaryBits) & (~(PacketAccessBit | DirectAccessBit | LinearAccessBit))) | Mode,
+    CoeffReadCost = MatrixTypeNestedCleaned::CoeffReadCost
+  };
+};
+}
+
+template<int Mode, bool LhsIsTriangular,
+         typename Lhs, bool LhsIsVector,
+         typename Rhs, bool RhsIsVector>
+struct TriangularProduct;
+
+template<typename _MatrixType, unsigned int _Mode> class TriangularView
+  : public TriangularBase<TriangularView<_MatrixType, _Mode> >
+{
+  public:
+
+    typedef TriangularBase<TriangularView> Base;
+    typedef typename internal::traits<TriangularView>::Scalar Scalar;
+
+    typedef _MatrixType MatrixType;
+    typedef typename internal::traits<TriangularView>::DenseMatrixType DenseMatrixType;
+    typedef DenseMatrixType PlainObject;
+
+  protected:
+    typedef typename internal::traits<TriangularView>::MatrixTypeNested MatrixTypeNested;
+    typedef typename internal::traits<TriangularView>::MatrixTypeNestedNonRef MatrixTypeNestedNonRef;
+    typedef typename internal::traits<TriangularView>::MatrixTypeNestedCleaned MatrixTypeNestedCleaned;
+
+    typedef typename internal::remove_all<typename MatrixType::ConjugateReturnType>::type MatrixConjugateReturnType;
+    
+  public:
+    using Base::evalToLazy;
+  
+
+    typedef typename internal::traits<TriangularView>::StorageKind StorageKind;
+    typedef typename internal::traits<TriangularView>::Index Index;
+
+    enum {
+      Mode = _Mode,
+      TransposeMode = (Mode & Upper ? Lower : 0)
+                    | (Mode & Lower ? Upper : 0)
+                    | (Mode & (UnitDiag))
+                    | (Mode & (ZeroDiag))
+    };
+
+    inline TriangularView(const MatrixType& matrix) : m_matrix(matrix)
+    {}
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+    inline Index outerStride() const { return m_matrix.outerStride(); }
+    inline Index innerStride() const { return m_matrix.innerStride(); }
+
+    /** \sa MatrixBase::operator+=() */
+    template<typename Other> TriangularView&  operator+=(const DenseBase<Other>& other) { return *this = m_matrix + other.derived(); }
+    /** \sa MatrixBase::operator-=() */
+    template<typename Other> TriangularView&  operator-=(const DenseBase<Other>& other) { return *this = m_matrix - other.derived(); }
+    /** \sa MatrixBase::operator*=() */
+    TriangularView&  operator*=(const typename internal::traits<MatrixType>::Scalar& other) { return *this = m_matrix * other; }
+    /** \sa MatrixBase::operator/=() */
+    TriangularView&  operator/=(const typename internal::traits<MatrixType>::Scalar& other) { return *this = m_matrix / other; }
+
+    /** \sa MatrixBase::fill() */
+    void fill(const Scalar& value) { setConstant(value); }
+    /** \sa MatrixBase::setConstant() */
+    TriangularView& setConstant(const Scalar& value)
+    { return *this = MatrixType::Constant(rows(), cols(), value); }
+    /** \sa MatrixBase::setZero() */
+    TriangularView& setZero() { return setConstant(Scalar(0)); }
+    /** \sa MatrixBase::setOnes() */
+    TriangularView& setOnes() { return setConstant(Scalar(1)); }
+
+    /** \sa MatrixBase::coeff()
+      * \warning the coordinates must fit into the referenced triangular part
+      */
+    inline Scalar coeff(Index row, Index col) const
+    {
+      Base::check_coordinates_internal(row, col);
+      return m_matrix.coeff(row, col);
+    }
+
+    /** \sa MatrixBase::coeffRef()
+      * \warning the coordinates must fit into the referenced triangular part
+      */
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      Base::check_coordinates_internal(row, col);
+      return m_matrix.const_cast_derived().coeffRef(row, col);
+    }
+
+    const MatrixTypeNestedCleaned& nestedExpression() const { return m_matrix; }
+    MatrixTypeNestedCleaned& nestedExpression() { return *const_cast<MatrixTypeNestedCleaned*>(&m_matrix); }
+
+    /** Assigns a triangular matrix to a triangular part of a dense matrix */
+    template<typename OtherDerived>
+    TriangularView& operator=(const TriangularBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    TriangularView& operator=(const MatrixBase<OtherDerived>& other);
+
+    TriangularView& operator=(const TriangularView& other)
+    { return *this = other.nestedExpression(); }
+
+    template<typename OtherDerived>
+    void lazyAssign(const TriangularBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    void lazyAssign(const MatrixBase<OtherDerived>& other);
+
+    /** \sa MatrixBase::conjugate() */
+    inline TriangularView<MatrixConjugateReturnType,Mode> conjugate()
+    { return m_matrix.conjugate(); }
+    /** \sa MatrixBase::conjugate() const */
+    inline const TriangularView<MatrixConjugateReturnType,Mode> conjugate() const
+    { return m_matrix.conjugate(); }
+
+    /** \sa MatrixBase::adjoint() const */
+    inline const TriangularView<const typename MatrixType::AdjointReturnType,TransposeMode> adjoint() const
+    { return m_matrix.adjoint(); }
+
+    /** \sa MatrixBase::transpose() */
+    inline TriangularView<Transpose<MatrixType>,TransposeMode> transpose()
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
+      return m_matrix.const_cast_derived().transpose();
+    }
+    /** \sa MatrixBase::transpose() const */
+    inline const TriangularView<Transpose<MatrixType>,TransposeMode> transpose() const
+    {
+      return m_matrix.transpose();
+    }
+
+    /** Efficient triangular matrix times vector/matrix product */
+    template<typename OtherDerived>
+    TriangularProduct<Mode, true, MatrixType, false, OtherDerived, OtherDerived::ColsAtCompileTime==1>
+    operator*(const MatrixBase<OtherDerived>& rhs) const
+    {
+      return TriangularProduct
+              <Mode, true, MatrixType, false, OtherDerived, OtherDerived::ColsAtCompileTime==1>
+              (m_matrix, rhs.derived());
+    }
+
+    /** Efficient vector/matrix times triangular matrix product */
+    template<typename OtherDerived> friend
+    TriangularProduct<Mode, false, OtherDerived, OtherDerived::RowsAtCompileTime==1, MatrixType, false>
+    operator*(const MatrixBase<OtherDerived>& lhs, const TriangularView& rhs)
+    {
+      return TriangularProduct
+              <Mode, false, OtherDerived, OtherDerived::RowsAtCompileTime==1, MatrixType, false>
+              (lhs.derived(),rhs.m_matrix);
+    }
+
+    #ifdef EIGEN2_SUPPORT
+    template<typename OtherDerived>
+    struct eigen2_product_return_type
+    {
+      typedef typename TriangularView<MatrixType,Mode>::DenseMatrixType DenseMatrixType;
+      typedef typename OtherDerived::PlainObject::DenseType OtherPlainObject;
+      typedef typename ProductReturnType<DenseMatrixType, OtherPlainObject>::Type ProdRetType;
+      typedef typename ProdRetType::PlainObject type;
+    };
+    template<typename OtherDerived>
+    const typename eigen2_product_return_type<OtherDerived>::type
+    operator*(const EigenBase<OtherDerived>& rhs) const
+    {
+      typename OtherDerived::PlainObject::DenseType rhsPlainObject;
+      rhs.evalTo(rhsPlainObject);
+      return this->toDenseMatrix() * rhsPlainObject;
+    }
+    template<typename OtherMatrixType>
+    bool isApprox(const TriangularView<OtherMatrixType, Mode>& other, typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision()) const
+    {
+      return this->toDenseMatrix().isApprox(other.toDenseMatrix(), precision);
+    }
+    template<typename OtherDerived>
+    bool isApprox(const MatrixBase<OtherDerived>& other, typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision()) const
+    {
+      return this->toDenseMatrix().isApprox(other, precision);
+    }
+    #endif // EIGEN2_SUPPORT
+
+    template<int Side, typename Other>
+    inline const internal::triangular_solve_retval<Side,TriangularView, Other>
+    solve(const MatrixBase<Other>& other) const;
+
+    template<int Side, typename OtherDerived>
+    void solveInPlace(const MatrixBase<OtherDerived>& other) const;
+
+    template<typename Other>
+    inline const internal::triangular_solve_retval<OnTheLeft,TriangularView, Other> 
+    solve(const MatrixBase<Other>& other) const
+    { return solve<OnTheLeft>(other); }
+
+    template<typename OtherDerived>
+    void solveInPlace(const MatrixBase<OtherDerived>& other) const
+    { return solveInPlace<OnTheLeft>(other); }
+
+    const SelfAdjointView<MatrixTypeNestedNonRef,Mode> selfadjointView() const
+    {
+      EIGEN_STATIC_ASSERT((Mode&UnitDiag)==0,PROGRAMMING_ERROR);
+      return SelfAdjointView<MatrixTypeNestedNonRef,Mode>(m_matrix);
+    }
+    SelfAdjointView<MatrixTypeNestedNonRef,Mode> selfadjointView()
+    {
+      EIGEN_STATIC_ASSERT((Mode&UnitDiag)==0,PROGRAMMING_ERROR);
+      return SelfAdjointView<MatrixTypeNestedNonRef,Mode>(m_matrix);
+    }
+
+    template<typename OtherDerived>
+    void swap(TriangularBase<OtherDerived> const & other)
+    {
+      TriangularView<SwapWrapper<MatrixType>,Mode>(const_cast<MatrixType&>(m_matrix)).lazyAssign(other.derived());
+    }
+
+    template<typename OtherDerived>
+    void swap(MatrixBase<OtherDerived> const & other)
+    {
+      SwapWrapper<MatrixType> swaper(const_cast<MatrixType&>(m_matrix));
+      TriangularView<SwapWrapper<MatrixType>,Mode>(swaper).lazyAssign(other.derived());
+    }
+
+    Scalar determinant() const
+    {
+      if (Mode & UnitDiag)
+        return 1;
+      else if (Mode & ZeroDiag)
+        return 0;
+      else
+        return m_matrix.diagonal().prod();
+    }
+    
+    // TODO simplify the following:
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE TriangularView& operator=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
+    {
+      setZero();
+      return assignProduct(other.derived(),1);
+    }
+    
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE TriangularView& operator+=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
+    {
+      return assignProduct(other.derived(),1);
+    }
+    
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE TriangularView& operator-=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
+    {
+      return assignProduct(other.derived(),-1);
+    }
+    
+    
+    template<typename ProductDerived>
+    EIGEN_STRONG_INLINE TriangularView& operator=(const ScaledProduct<ProductDerived>& other)
+    {
+      setZero();
+      return assignProduct(other.derived(),other.alpha());
+    }
+    
+    template<typename ProductDerived>
+    EIGEN_STRONG_INLINE TriangularView& operator+=(const ScaledProduct<ProductDerived>& other)
+    {
+      return assignProduct(other.derived(),other.alpha());
+    }
+    
+    template<typename ProductDerived>
+    EIGEN_STRONG_INLINE TriangularView& operator-=(const ScaledProduct<ProductDerived>& other)
+    {
+      return assignProduct(other.derived(),-other.alpha());
+    }
+    
+  protected:
+    
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE TriangularView& assignProduct(const ProductBase<ProductDerived, Lhs,Rhs>& prod, const Scalar& alpha);
+    
+    template<int Mode, bool LhsIsTriangular,
+         typename Lhs, bool LhsIsVector,
+         typename Rhs, bool RhsIsVector>
+    EIGEN_STRONG_INLINE TriangularView& assignProduct(const TriangularProduct<Mode, LhsIsTriangular, Lhs, LhsIsVector, Rhs, RhsIsVector>& prod, const Scalar& alpha)
+    {
+      lazyAssign(alpha*prod.eval());
+      return *this;
+    }
+
+    MatrixTypeNested m_matrix;
+};
+
+/***************************************************************************
+* Implementation of triangular evaluation/assignment
+***************************************************************************/
+
+namespace internal {
+
+template<typename Derived1, typename Derived2, unsigned int Mode, int UnrollCount, bool ClearOpposite>
+struct triangular_assignment_selector
+{
+  enum {
+    col = (UnrollCount-1) / Derived1::RowsAtCompileTime,
+    row = (UnrollCount-1) % Derived1::RowsAtCompileTime
+  };
+  
+  typedef typename Derived1::Scalar Scalar;
+
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    triangular_assignment_selector<Derived1, Derived2, Mode, UnrollCount-1, ClearOpposite>::run(dst, src);
+
+    eigen_assert( Mode == Upper || Mode == Lower
+            || Mode == StrictlyUpper || Mode == StrictlyLower
+            || Mode == UnitUpper || Mode == UnitLower);
+    if((Mode == Upper && row <= col)
+    || (Mode == Lower && row >= col)
+    || (Mode == StrictlyUpper && row < col)
+    || (Mode == StrictlyLower && row > col)
+    || (Mode == UnitUpper && row < col)
+    || (Mode == UnitLower && row > col))
+      dst.copyCoeff(row, col, src);
+    else if(ClearOpposite)
+    {
+      if (Mode&UnitDiag && row==col)
+        dst.coeffRef(row, col) = Scalar(1);
+      else
+        dst.coeffRef(row, col) = Scalar(0);
+    }
+  }
+};
+
+// prevent buggy user code from causing an infinite recursion
+template<typename Derived1, typename Derived2, unsigned int Mode, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, Mode, 0, ClearOpposite>
+{
+  static inline void run(Derived1 &, const Derived2 &) {}
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, Upper, Dynamic, ClearOpposite>
+{
+  typedef typename Derived1::Index Index;
+  typedef typename Derived1::Scalar Scalar;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    for(Index j = 0; j < dst.cols(); ++j)
+    {
+      Index maxi = (std::min)(j, dst.rows()-1);
+      for(Index i = 0; i <= maxi; ++i)
+        dst.copyCoeff(i, j, src);
+      if (ClearOpposite)
+        for(Index i = maxi+1; i < dst.rows(); ++i)
+          dst.coeffRef(i, j) = Scalar(0);
+    }
+  }
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, Lower, Dynamic, ClearOpposite>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    for(Index j = 0; j < dst.cols(); ++j)
+    {
+      for(Index i = j; i < dst.rows(); ++i)
+        dst.copyCoeff(i, j, src);
+      Index maxi = (std::min)(j, dst.rows());
+      if (ClearOpposite)
+        for(Index i = 0; i < maxi; ++i)
+          dst.coeffRef(i, j) = static_cast<typename Derived1::Scalar>(0);
+    }
+  }
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, StrictlyUpper, Dynamic, ClearOpposite>
+{
+  typedef typename Derived1::Index Index;
+  typedef typename Derived1::Scalar Scalar;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    for(Index j = 0; j < dst.cols(); ++j)
+    {
+      Index maxi = (std::min)(j, dst.rows());
+      for(Index i = 0; i < maxi; ++i)
+        dst.copyCoeff(i, j, src);
+      if (ClearOpposite)
+        for(Index i = maxi; i < dst.rows(); ++i)
+          dst.coeffRef(i, j) = Scalar(0);
+    }
+  }
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, StrictlyLower, Dynamic, ClearOpposite>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    for(Index j = 0; j < dst.cols(); ++j)
+    {
+      for(Index i = j+1; i < dst.rows(); ++i)
+        dst.copyCoeff(i, j, src);
+      Index maxi = (std::min)(j, dst.rows()-1);
+      if (ClearOpposite)
+        for(Index i = 0; i <= maxi; ++i)
+          dst.coeffRef(i, j) = static_cast<typename Derived1::Scalar>(0);
+    }
+  }
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, UnitUpper, Dynamic, ClearOpposite>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    for(Index j = 0; j < dst.cols(); ++j)
+    {
+      Index maxi = (std::min)(j, dst.rows());
+      for(Index i = 0; i < maxi; ++i)
+        dst.copyCoeff(i, j, src);
+      if (ClearOpposite)
+      {
+        for(Index i = maxi+1; i < dst.rows(); ++i)
+          dst.coeffRef(i, j) = 0;
+      }
+    }
+    dst.diagonal().setOnes();
+  }
+};
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, UnitLower, Dynamic, ClearOpposite>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    for(Index j = 0; j < dst.cols(); ++j)
+    {
+      Index maxi = (std::min)(j, dst.rows());
+      for(Index i = maxi+1; i < dst.rows(); ++i)
+        dst.copyCoeff(i, j, src);
+      if (ClearOpposite)
+      {
+        for(Index i = 0; i < maxi; ++i)
+          dst.coeffRef(i, j) = 0;
+      }
+    }
+    dst.diagonal().setOnes();
+  }
+};
+
+} // end namespace internal
+
+// FIXME should we keep that possibility
+template<typename MatrixType, unsigned int Mode>
+template<typename OtherDerived>
+inline TriangularView<MatrixType, Mode>&
+TriangularView<MatrixType, Mode>::operator=(const MatrixBase<OtherDerived>& other)
+{
+  if(OtherDerived::Flags & EvalBeforeAssigningBit)
+  {
+    typename internal::plain_matrix_type<OtherDerived>::type other_evaluated(other.rows(), other.cols());
+    other_evaluated.template triangularView<Mode>().lazyAssign(other.derived());
+    lazyAssign(other_evaluated);
+  }
+  else
+    lazyAssign(other.derived());
+  return *this;
+}
+
+// FIXME should we keep that possibility
+template<typename MatrixType, unsigned int Mode>
+template<typename OtherDerived>
+void TriangularView<MatrixType, Mode>::lazyAssign(const MatrixBase<OtherDerived>& other)
+{
+  enum {
+    unroll = MatrixType::SizeAtCompileTime != Dynamic
+          && internal::traits<OtherDerived>::CoeffReadCost != Dynamic
+          && MatrixType::SizeAtCompileTime*internal::traits<OtherDerived>::CoeffReadCost/2 <= EIGEN_UNROLLING_LIMIT
+  };
+  eigen_assert(m_matrix.rows() == other.rows() && m_matrix.cols() == other.cols());
+
+  internal::triangular_assignment_selector
+    <MatrixType, OtherDerived, int(Mode),
+    unroll ? int(MatrixType::SizeAtCompileTime) : Dynamic,
+    false // do not change the opposite triangular part
+    >::run(m_matrix.const_cast_derived(), other.derived());
+}
+
+
+
+template<typename MatrixType, unsigned int Mode>
+template<typename OtherDerived>
+inline TriangularView<MatrixType, Mode>&
+TriangularView<MatrixType, Mode>::operator=(const TriangularBase<OtherDerived>& other)
+{
+  eigen_assert(Mode == int(OtherDerived::Mode));
+  if(internal::traits<OtherDerived>::Flags & EvalBeforeAssigningBit)
+  {
+    typename OtherDerived::DenseMatrixType other_evaluated(other.rows(), other.cols());
+    other_evaluated.template triangularView<Mode>().lazyAssign(other.derived().nestedExpression());
+    lazyAssign(other_evaluated);
+  }
+  else
+    lazyAssign(other.derived().nestedExpression());
+  return *this;
+}
+
+template<typename MatrixType, unsigned int Mode>
+template<typename OtherDerived>
+void TriangularView<MatrixType, Mode>::lazyAssign(const TriangularBase<OtherDerived>& other)
+{
+  enum {
+    unroll = MatrixType::SizeAtCompileTime != Dynamic
+                   && internal::traits<OtherDerived>::CoeffReadCost != Dynamic
+                   && MatrixType::SizeAtCompileTime * internal::traits<OtherDerived>::CoeffReadCost / 2
+                        <= EIGEN_UNROLLING_LIMIT
+  };
+  eigen_assert(m_matrix.rows() == other.rows() && m_matrix.cols() == other.cols());
+
+  internal::triangular_assignment_selector
+    <MatrixType, OtherDerived, int(Mode),
+    unroll ? int(MatrixType::SizeAtCompileTime) : Dynamic,
+    false // preserve the opposite triangular part
+    >::run(m_matrix.const_cast_derived(), other.derived().nestedExpression());
+}
+
+/***************************************************************************
+* Implementation of TriangularBase methods
+***************************************************************************/
+
+/** Assigns a triangular or selfadjoint matrix to a dense matrix.
+  * If the matrix is triangular, the opposite part is set to zero. */
+template<typename Derived>
+template<typename DenseDerived>
+void TriangularBase<Derived>::evalTo(MatrixBase<DenseDerived> &other) const
+{
+  if(internal::traits<Derived>::Flags & EvalBeforeAssigningBit)
+  {
+    typename internal::plain_matrix_type<Derived>::type other_evaluated(rows(), cols());
+    evalToLazy(other_evaluated);
+    other.derived().swap(other_evaluated);
+  }
+  else
+    evalToLazy(other.derived());
+}
+
+/** Assigns a triangular or selfadjoint matrix to a dense matrix.
+  * If the matrix is triangular, the opposite part is set to zero. */
+template<typename Derived>
+template<typename DenseDerived>
+void TriangularBase<Derived>::evalToLazy(MatrixBase<DenseDerived> &other) const
+{
+  enum {
+    unroll = DenseDerived::SizeAtCompileTime != Dynamic
+                   && internal::traits<Derived>::CoeffReadCost != Dynamic
+                   && DenseDerived::SizeAtCompileTime * internal::traits<Derived>::CoeffReadCost / 2
+                        <= EIGEN_UNROLLING_LIMIT
+  };
+  other.derived().resize(this->rows(), this->cols());
+
+  internal::triangular_assignment_selector
+    <DenseDerived, typename internal::traits<Derived>::MatrixTypeNestedCleaned, Derived::Mode,
+    unroll ? int(DenseDerived::SizeAtCompileTime) : Dynamic,
+    true // clear the opposite triangular part
+    >::run(other.derived(), derived().nestedExpression());
+}
+
+/***************************************************************************
+* Implementation of TriangularView methods
+***************************************************************************/
+
+/***************************************************************************
+* Implementation of MatrixBase methods
+***************************************************************************/
+
+#ifdef EIGEN2_SUPPORT
+
+// implementation of part<>(), including the SelfAdjoint case.
+
+namespace internal {
+template<typename MatrixType, unsigned int Mode>
+struct eigen2_part_return_type
+{
+  typedef TriangularView<MatrixType, Mode> type;
+};
+
+template<typename MatrixType>
+struct eigen2_part_return_type<MatrixType, SelfAdjoint>
+{
+  typedef SelfAdjointView<MatrixType, Upper> type;
+};
+}
+
+/** \deprecated use MatrixBase::triangularView() */
+template<typename Derived>
+template<unsigned int Mode>
+const typename internal::eigen2_part_return_type<Derived, Mode>::type MatrixBase<Derived>::part() const
+{
+  return derived();
+}
+
+/** \deprecated use MatrixBase::triangularView() */
+template<typename Derived>
+template<unsigned int Mode>
+typename internal::eigen2_part_return_type<Derived, Mode>::type MatrixBase<Derived>::part()
+{
+  return derived();
+}
+#endif
+
+/**
+  * \returns an expression of a triangular view extracted from the current matrix
+  *
+  * The parameter \a Mode can have the following values: \c #Upper, \c #StrictlyUpper, \c #UnitUpper,
+  * \c #Lower, \c #StrictlyLower, \c #UnitLower.
+  *
+  * Example: \include MatrixBase_extract.cpp
+  * Output: \verbinclude MatrixBase_extract.out
+  *
+  * \sa class TriangularView
+  */
+template<typename Derived>
+template<unsigned int Mode>
+typename MatrixBase<Derived>::template TriangularViewReturnType<Mode>::Type
+MatrixBase<Derived>::triangularView()
+{
+  return derived();
+}
+
+/** This is the const version of MatrixBase::triangularView() */
+template<typename Derived>
+template<unsigned int Mode>
+typename MatrixBase<Derived>::template ConstTriangularViewReturnType<Mode>::Type
+MatrixBase<Derived>::triangularView() const
+{
+  return derived();
+}
+
+/** \returns true if *this is approximately equal to an upper triangular matrix,
+  *          within the precision given by \a prec.
+  *
+  * \sa isLowerTriangular()
+  */
+template<typename Derived>
+bool MatrixBase<Derived>::isUpperTriangular(const RealScalar& prec) const
+{
+  using std::abs;
+  RealScalar maxAbsOnUpperPart = static_cast<RealScalar>(-1);
+  for(Index j = 0; j < cols(); ++j)
+  {
+    Index maxi = (std::min)(j, rows()-1);
+    for(Index i = 0; i <= maxi; ++i)
+    {
+      RealScalar absValue = abs(coeff(i,j));
+      if(absValue > maxAbsOnUpperPart) maxAbsOnUpperPart = absValue;
+    }
+  }
+  RealScalar threshold = maxAbsOnUpperPart * prec;
+  for(Index j = 0; j < cols(); ++j)
+    for(Index i = j+1; i < rows(); ++i)
+      if(abs(coeff(i, j)) > threshold) return false;
+  return true;
+}
+
+/** \returns true if *this is approximately equal to a lower triangular matrix,
+  *          within the precision given by \a prec.
+  *
+  * \sa isUpperTriangular()
+  */
+template<typename Derived>
+bool MatrixBase<Derived>::isLowerTriangular(const RealScalar& prec) const
+{
+  using std::abs;
+  RealScalar maxAbsOnLowerPart = static_cast<RealScalar>(-1);
+  for(Index j = 0; j < cols(); ++j)
+    for(Index i = j; i < rows(); ++i)
+    {
+      RealScalar absValue = abs(coeff(i,j));
+      if(absValue > maxAbsOnLowerPart) maxAbsOnLowerPart = absValue;
+    }
+  RealScalar threshold = maxAbsOnLowerPart * prec;
+  for(Index j = 1; j < cols(); ++j)
+  {
+    Index maxi = (std::min)(j, rows()-1);
+    for(Index i = 0; i < maxi; ++i)
+      if(abs(coeff(i, j)) > threshold) return false;
+  }
+  return true;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULARMATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/VectorBlock.h b/vendor/eigen-3.2.8/Eigen/src/Core/VectorBlock.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/VectorBlock.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/VectorBlock.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/VectorwiseOp.h b/vendor/eigen-3.2.8/Eigen/src/Core/VectorwiseOp.h
new file mode 100644
index 0000000..d5ab036
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/VectorwiseOp.h
@@ -0,0 +1,642 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PARTIAL_REDUX_H
+#define EIGEN_PARTIAL_REDUX_H
+
+namespace Eigen { 
+
+/** \class PartialReduxExpr
+  * \ingroup Core_Module
+  *
+  * \brief Generic expression of a partially reduxed matrix
+  *
+  * \tparam MatrixType the type of the matrix we are applying the redux operation
+  * \tparam MemberOp type of the member functor
+  * \tparam Direction indicates the direction of the redux (#Vertical or #Horizontal)
+  *
+  * This class represents an expression of a partial redux operator of a matrix.
+  * It is the return type of some VectorwiseOp functions,
+  * and most of the time this is the only way it is used.
+  *
+  * \sa class VectorwiseOp
+  */
+
+template< typename MatrixType, typename MemberOp, int Direction>
+class PartialReduxExpr;
+
+namespace internal {
+template<typename MatrixType, typename MemberOp, int Direction>
+struct traits<PartialReduxExpr<MatrixType, MemberOp, Direction> >
+ : traits<MatrixType>
+{
+  typedef typename MemberOp::result_type Scalar;
+  typedef typename traits<MatrixType>::StorageKind StorageKind;
+  typedef typename traits<MatrixType>::XprKind XprKind;
+  typedef typename MatrixType::Scalar InputScalar;
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_all<MatrixTypeNested>::type _MatrixTypeNested;
+  enum {
+    RowsAtCompileTime = Direction==Vertical   ? 1 : MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = Direction==Horizontal ? 1 : MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = Direction==Vertical   ? 1 : MatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = Direction==Horizontal ? 1 : MatrixType::MaxColsAtCompileTime,
+    Flags0 = (unsigned int)_MatrixTypeNested::Flags & HereditaryBits,
+    Flags = (Flags0 & ~RowMajorBit) | (RowsAtCompileTime == 1 ? RowMajorBit : 0),
+    TraversalSize = Direction==Vertical ? MatrixType::RowsAtCompileTime :  MatrixType::ColsAtCompileTime
+  };
+  #if EIGEN_GNUC_AT_LEAST(3,4)
+  typedef typename MemberOp::template Cost<InputScalar,int(TraversalSize)> CostOpType;
+  #else
+  typedef typename MemberOp::template Cost<InputScalar,TraversalSize> CostOpType;
+  #endif
+  enum {
+    CoeffReadCost = TraversalSize==Dynamic ? Dynamic
+                  : TraversalSize * traits<_MatrixTypeNested>::CoeffReadCost + int(CostOpType::value)
+  };
+};
+}
+
+template< typename MatrixType, typename MemberOp, int Direction>
+class PartialReduxExpr : internal::no_assignment_operator,
+  public internal::dense_xpr_base< PartialReduxExpr<MatrixType, MemberOp, Direction> >::type
+{
+  public:
+
+    typedef typename internal::dense_xpr_base<PartialReduxExpr>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(PartialReduxExpr)
+    typedef typename internal::traits<PartialReduxExpr>::MatrixTypeNested MatrixTypeNested;
+    typedef typename internal::traits<PartialReduxExpr>::_MatrixTypeNested _MatrixTypeNested;
+
+    PartialReduxExpr(const MatrixType& mat, const MemberOp& func = MemberOp())
+      : m_matrix(mat), m_functor(func) {}
+
+    Index rows() const { return (Direction==Vertical   ? 1 : m_matrix.rows()); }
+    Index cols() const { return (Direction==Horizontal ? 1 : m_matrix.cols()); }
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index i, Index j) const
+    {
+      if (Direction==Vertical)
+        return m_functor(m_matrix.col(j));
+      else
+        return m_functor(m_matrix.row(i));
+    }
+
+    const Scalar coeff(Index index) const
+    {
+      if (Direction==Vertical)
+        return m_functor(m_matrix.col(index));
+      else
+        return m_functor(m_matrix.row(index));
+    }
+
+  protected:
+    MatrixTypeNested m_matrix;
+    const MemberOp m_functor;
+};
+
+#define EIGEN_MEMBER_FUNCTOR(MEMBER,COST)                               \
+  template <typename ResultType>                                        \
+  struct member_##MEMBER {                                              \
+    EIGEN_EMPTY_STRUCT_CTOR(member_##MEMBER)                            \
+    typedef ResultType result_type;                                     \
+    template<typename Scalar, int Size> struct Cost                     \
+    { enum { value = COST }; };                                         \
+    template<typename XprType>                                          \
+    EIGEN_STRONG_INLINE ResultType operator()(const XprType& mat) const \
+    { return mat.MEMBER(); } \
+  }
+
+namespace internal {
+
+EIGEN_MEMBER_FUNCTOR(squaredNorm, Size * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(norm, (Size+5) * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(stableNorm, (Size+5) * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(blueNorm, (Size+5) * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(hypotNorm, (Size-1) * functor_traits<scalar_hypot_op<Scalar> >::Cost );
+EIGEN_MEMBER_FUNCTOR(sum, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(mean, (Size-1)*NumTraits<Scalar>::AddCost + NumTraits<Scalar>::MulCost);
+EIGEN_MEMBER_FUNCTOR(minCoeff, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(maxCoeff, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(all, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(any, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(count, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(prod, (Size-1)*NumTraits<Scalar>::MulCost);
+
+
+template <typename BinaryOp, typename Scalar>
+struct member_redux {
+  typedef typename result_of<
+                     BinaryOp(Scalar)
+                   >::type  result_type;
+  template<typename _Scalar, int Size> struct Cost
+  { enum { value = (Size-1) * functor_traits<BinaryOp>::Cost }; };
+  member_redux(const BinaryOp func) : m_functor(func) {}
+  template<typename Derived>
+  inline result_type operator()(const DenseBase<Derived>& mat) const
+  { return mat.redux(m_functor); }
+  const BinaryOp m_functor;
+};
+}
+
+/** \class VectorwiseOp
+  * \ingroup Core_Module
+  *
+  * \brief Pseudo expression providing partial reduction operations
+  *
+  * \param ExpressionType the type of the object on which to do partial reductions
+  * \param Direction indicates the direction of the redux (#Vertical or #Horizontal)
+  *
+  * This class represents a pseudo expression with partial reduction features.
+  * It is the return type of DenseBase::colwise() and DenseBase::rowwise()
+  * and most of the time this is the only way it is used.
+  *
+  * Example: \include MatrixBase_colwise.cpp
+  * Output: \verbinclude MatrixBase_colwise.out
+  *
+  * \sa DenseBase::colwise(), DenseBase::rowwise(), class PartialReduxExpr
+  */
+template<typename ExpressionType, int Direction> class VectorwiseOp
+{
+  public:
+
+    typedef typename ExpressionType::Scalar Scalar;
+    typedef typename ExpressionType::RealScalar RealScalar;
+    typedef typename ExpressionType::Index Index;
+    typedef typename internal::conditional<internal::must_nest_by_value<ExpressionType>::ret,
+        ExpressionType, ExpressionType&>::type ExpressionTypeNested;
+    typedef typename internal::remove_all<ExpressionTypeNested>::type ExpressionTypeNestedCleaned;
+
+    template<template<typename _Scalar> class Functor,
+                      typename Scalar=typename internal::traits<ExpressionType>::Scalar> struct ReturnType
+    {
+      typedef PartialReduxExpr<ExpressionType,
+                               Functor<Scalar>,
+                               Direction
+                              > Type;
+    };
+
+    template<typename BinaryOp> struct ReduxReturnType
+    {
+      typedef PartialReduxExpr<ExpressionType,
+                               internal::member_redux<BinaryOp,typename internal::traits<ExpressionType>::Scalar>,
+                               Direction
+                              > Type;
+    };
+
+    enum {
+      IsVertical   = (Direction==Vertical) ? 1 : 0,
+      IsHorizontal = (Direction==Horizontal) ? 1 : 0
+    };
+
+  protected:
+
+    /** \internal
+      * \returns the i-th subvector according to the \c Direction */
+    typedef typename internal::conditional<Direction==Vertical,
+                               typename ExpressionType::ColXpr,
+                               typename ExpressionType::RowXpr>::type SubVector;
+    SubVector subVector(Index i)
+    {
+      return SubVector(m_matrix.derived(),i);
+    }
+
+    /** \internal
+      * \returns the number of subvectors in the direction \c Direction */
+    Index subVectors() const
+    { return Direction==Vertical?m_matrix.cols():m_matrix.rows(); }
+
+    template<typename OtherDerived> struct ExtendedType {
+      typedef Replicate<OtherDerived,
+                        Direction==Vertical   ? 1 : ExpressionType::RowsAtCompileTime,
+                        Direction==Horizontal ? 1 : ExpressionType::ColsAtCompileTime> Type;
+    };
+
+    /** \internal
+      * Replicates a vector to match the size of \c *this */
+    template<typename OtherDerived>
+    typename ExtendedType<OtherDerived>::Type
+    extendedTo(const DenseBase<OtherDerived>& other) const
+    {
+      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(Direction==Vertical, OtherDerived::MaxColsAtCompileTime==1),
+                          YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED)
+      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(Direction==Horizontal, OtherDerived::MaxRowsAtCompileTime==1),
+                          YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED)
+      return typename ExtendedType<OtherDerived>::Type
+                      (other.derived(),
+                       Direction==Vertical   ? 1 : m_matrix.rows(),
+                       Direction==Horizontal ? 1 : m_matrix.cols());
+    }
+    
+    template<typename OtherDerived> struct OppositeExtendedType {
+      typedef Replicate<OtherDerived,
+                        Direction==Horizontal ? 1 : ExpressionType::RowsAtCompileTime,
+                        Direction==Vertical   ? 1 : ExpressionType::ColsAtCompileTime> Type;
+    };
+
+    /** \internal
+      * Replicates a vector in the opposite direction to match the size of \c *this */
+    template<typename OtherDerived>
+    typename OppositeExtendedType<OtherDerived>::Type
+    extendedToOpposite(const DenseBase<OtherDerived>& other) const
+    {
+      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(Direction==Horizontal, OtherDerived::MaxColsAtCompileTime==1),
+                          YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED)
+      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(Direction==Vertical, OtherDerived::MaxRowsAtCompileTime==1),
+                          YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED)
+      return typename OppositeExtendedType<OtherDerived>::Type
+                      (other.derived(),
+                       Direction==Horizontal  ? 1 : m_matrix.rows(),
+                       Direction==Vertical    ? 1 : m_matrix.cols());
+    }
+
+  public:
+
+    inline VectorwiseOp(ExpressionType& matrix) : m_matrix(matrix) {}
+
+    /** \internal */
+    inline const ExpressionType& _expression() const { return m_matrix; }
+
+    /** \returns a row or column vector expression of \c *this reduxed by \a func
+      *
+      * The template parameter \a BinaryOp is the type of the functor
+      * of the custom redux operator. Note that func must be an associative operator.
+      *
+      * \sa class VectorwiseOp, DenseBase::colwise(), DenseBase::rowwise()
+      */
+    template<typename BinaryOp>
+    const typename ReduxReturnType<BinaryOp>::Type
+    redux(const BinaryOp& func = BinaryOp()) const
+    { return typename ReduxReturnType<BinaryOp>::Type(_expression(), func); }
+
+    /** \returns a row (or column) vector expression of the smallest coefficient
+      * of each column (or row) of the referenced expression.
+      * 
+      * \warning the result is undefined if \c *this contains NaN.
+      *
+      * Example: \include PartialRedux_minCoeff.cpp
+      * Output: \verbinclude PartialRedux_minCoeff.out
+      *
+      * \sa DenseBase::minCoeff() */
+    const typename ReturnType<internal::member_minCoeff>::Type minCoeff() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression of the largest coefficient
+      * of each column (or row) of the referenced expression.
+      * 
+      * \warning the result is undefined if \c *this contains NaN.
+      *
+      * Example: \include PartialRedux_maxCoeff.cpp
+      * Output: \verbinclude PartialRedux_maxCoeff.out
+      *
+      * \sa DenseBase::maxCoeff() */
+    const typename ReturnType<internal::member_maxCoeff>::Type maxCoeff() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression of the squared norm
+      * of each column (or row) of the referenced expression.
+      *
+      * Example: \include PartialRedux_squaredNorm.cpp
+      * Output: \verbinclude PartialRedux_squaredNorm.out
+      *
+      * \sa DenseBase::squaredNorm() */
+    const typename ReturnType<internal::member_squaredNorm,RealScalar>::Type squaredNorm() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression of the norm
+      * of each column (or row) of the referenced expression.
+      *
+      * Example: \include PartialRedux_norm.cpp
+      * Output: \verbinclude PartialRedux_norm.out
+      *
+      * \sa DenseBase::norm() */
+    const typename ReturnType<internal::member_norm,RealScalar>::Type norm() const
+    { return _expression(); }
+
+
+    /** \returns a row (or column) vector expression of the norm
+      * of each column (or row) of the referenced expression, using
+      * blue's algorithm.
+      *
+      * \sa DenseBase::blueNorm() */
+    const typename ReturnType<internal::member_blueNorm,RealScalar>::Type blueNorm() const
+    { return _expression(); }
+
+
+    /** \returns a row (or column) vector expression of the norm
+      * of each column (or row) of the referenced expression, avoiding
+      * underflow and overflow.
+      *
+      * \sa DenseBase::stableNorm() */
+    const typename ReturnType<internal::member_stableNorm,RealScalar>::Type stableNorm() const
+    { return _expression(); }
+
+
+    /** \returns a row (or column) vector expression of the norm
+      * of each column (or row) of the referenced expression, avoiding
+      * underflow and overflow using a concatenation of hypot() calls.
+      *
+      * \sa DenseBase::hypotNorm() */
+    const typename ReturnType<internal::member_hypotNorm,RealScalar>::Type hypotNorm() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression of the sum
+      * of each column (or row) of the referenced expression.
+      *
+      * Example: \include PartialRedux_sum.cpp
+      * Output: \verbinclude PartialRedux_sum.out
+      *
+      * \sa DenseBase::sum() */
+    const typename ReturnType<internal::member_sum>::Type sum() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression of the mean
+    * of each column (or row) of the referenced expression.
+    *
+    * \sa DenseBase::mean() */
+    const typename ReturnType<internal::member_mean>::Type mean() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression representing
+      * whether \b all coefficients of each respective column (or row) are \c true.
+      *
+      * \sa DenseBase::all() */
+    const typename ReturnType<internal::member_all>::Type all() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression representing
+      * whether \b at \b least one coefficient of each respective column (or row) is \c true.
+      *
+      * \sa DenseBase::any() */
+    const typename ReturnType<internal::member_any>::Type any() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression representing
+      * the number of \c true coefficients of each respective column (or row).
+      *
+      * Example: \include PartialRedux_count.cpp
+      * Output: \verbinclude PartialRedux_count.out
+      *
+      * \sa DenseBase::count() */
+    const PartialReduxExpr<ExpressionType, internal::member_count<Index>, Direction> count() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression of the product
+      * of each column (or row) of the referenced expression.
+      *
+      * Example: \include PartialRedux_prod.cpp
+      * Output: \verbinclude PartialRedux_prod.out
+      *
+      * \sa DenseBase::prod() */
+    const typename ReturnType<internal::member_prod>::Type prod() const
+    { return _expression(); }
+
+
+    /** \returns a matrix expression
+      * where each column (or row) are reversed.
+      *
+      * Example: \include Vectorwise_reverse.cpp
+      * Output: \verbinclude Vectorwise_reverse.out
+      *
+      * \sa DenseBase::reverse() */
+    const Reverse<ExpressionType, Direction> reverse() const
+    { return Reverse<ExpressionType, Direction>( _expression() ); }
+
+    typedef Replicate<ExpressionType,Direction==Vertical?Dynamic:1,Direction==Horizontal?Dynamic:1> ReplicateReturnType;
+    const ReplicateReturnType replicate(Index factor) const;
+
+    /**
+      * \return an expression of the replication of each column (or row) of \c *this
+      *
+      * Example: \include DirectionWise_replicate.cpp
+      * Output: \verbinclude DirectionWise_replicate.out
+      *
+      * \sa VectorwiseOp::replicate(Index), DenseBase::replicate(), class Replicate
+      */
+    // NOTE implemented here because of sunstudio's compilation errors
+    template<int Factor> const Replicate<ExpressionType,(IsVertical?Factor:1),(IsHorizontal?Factor:1)>
+    replicate(Index factor = Factor) const
+    {
+      return Replicate<ExpressionType,Direction==Vertical?Factor:1,Direction==Horizontal?Factor:1>
+          (_expression(),Direction==Vertical?factor:1,Direction==Horizontal?factor:1);
+    }
+
+/////////// Artithmetic operators ///////////
+
+    /** Copies the vector \a other to each subvector of \c *this */
+    template<typename OtherDerived>
+    ExpressionType& operator=(const DenseBase<OtherDerived>& other)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      //eigen_assert((m_matrix.isNull()) == (other.isNull())); FIXME
+      return const_cast<ExpressionType&>(m_matrix = extendedTo(other.derived()));
+    }
+
+    /** Adds the vector \a other to each subvector of \c *this */
+    template<typename OtherDerived>
+    ExpressionType& operator+=(const DenseBase<OtherDerived>& other)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      return const_cast<ExpressionType&>(m_matrix += extendedTo(other.derived()));
+    }
+
+    /** Substracts the vector \a other to each subvector of \c *this */
+    template<typename OtherDerived>
+    ExpressionType& operator-=(const DenseBase<OtherDerived>& other)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      return const_cast<ExpressionType&>(m_matrix -= extendedTo(other.derived()));
+    }
+
+    /** Multiples each subvector of \c *this by the vector \a other */
+    template<typename OtherDerived>
+    ExpressionType& operator*=(const DenseBase<OtherDerived>& other)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      m_matrix *= extendedTo(other.derived());
+      return const_cast<ExpressionType&>(m_matrix);
+    }
+
+    /** Divides each subvector of \c *this by the vector \a other */
+    template<typename OtherDerived>
+    ExpressionType& operator/=(const DenseBase<OtherDerived>& other)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      m_matrix /= extendedTo(other.derived());
+      return const_cast<ExpressionType&>(m_matrix);
+    }
+
+    /** Returns the expression of the sum of the vector \a other to each subvector of \c *this */
+    template<typename OtherDerived> EIGEN_STRONG_INLINE
+    CwiseBinaryOp<internal::scalar_sum_op<Scalar>,
+                  const ExpressionTypeNestedCleaned,
+                  const typename ExtendedType<OtherDerived>::Type>
+    operator+(const DenseBase<OtherDerived>& other) const
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      return m_matrix + extendedTo(other.derived());
+    }
+
+    /** Returns the expression of the difference between each subvector of \c *this and the vector \a other */
+    template<typename OtherDerived>
+    CwiseBinaryOp<internal::scalar_difference_op<Scalar>,
+                  const ExpressionTypeNestedCleaned,
+                  const typename ExtendedType<OtherDerived>::Type>
+    operator-(const DenseBase<OtherDerived>& other) const
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      return m_matrix - extendedTo(other.derived());
+    }
+
+    /** Returns the expression where each subvector is the product of the vector \a other
+      * by the corresponding subvector of \c *this */
+    template<typename OtherDerived> EIGEN_STRONG_INLINE
+    CwiseBinaryOp<internal::scalar_product_op<Scalar>,
+                  const ExpressionTypeNestedCleaned,
+                  const typename ExtendedType<OtherDerived>::Type>
+    operator*(const DenseBase<OtherDerived>& other) const
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      return m_matrix * extendedTo(other.derived());
+    }
+
+    /** Returns the expression where each subvector is the quotient of the corresponding
+      * subvector of \c *this by the vector \a other */
+    template<typename OtherDerived>
+    CwiseBinaryOp<internal::scalar_quotient_op<Scalar>,
+                  const ExpressionTypeNestedCleaned,
+                  const typename ExtendedType<OtherDerived>::Type>
+    operator/(const DenseBase<OtherDerived>& other) const
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      return m_matrix / extendedTo(other.derived());
+    }
+    
+    /** \returns an expression where each column of row of the referenced matrix are normalized.
+      * The referenced matrix is \b not modified.
+      * \sa MatrixBase::normalized(), normalize()
+      */
+    CwiseBinaryOp<internal::scalar_quotient_op<Scalar>,
+                  const ExpressionTypeNestedCleaned,
+                  const typename OppositeExtendedType<typename ReturnType<internal::member_norm,RealScalar>::Type>::Type>
+    normalized() const { return m_matrix.cwiseQuotient(extendedToOpposite(this->norm())); }
+    
+    
+    /** Normalize in-place each row or columns of the referenced matrix.
+      * \sa MatrixBase::normalize(), normalized()
+      */
+    void normalize() {
+      m_matrix = this->normalized();
+    }
+
+/////////// Geometry module ///////////
+
+    #if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
+    Homogeneous<ExpressionType,Direction> homogeneous() const;
+    #endif
+
+    typedef typename ExpressionType::PlainObject CrossReturnType;
+    template<typename OtherDerived>
+    const CrossReturnType cross(const MatrixBase<OtherDerived>& other) const;
+
+    enum {
+      HNormalized_Size = Direction==Vertical ? internal::traits<ExpressionType>::RowsAtCompileTime
+                                             : internal::traits<ExpressionType>::ColsAtCompileTime,
+      HNormalized_SizeMinusOne = HNormalized_Size==Dynamic ? Dynamic : HNormalized_Size-1
+    };
+    typedef Block<const ExpressionType,
+                  Direction==Vertical   ? int(HNormalized_SizeMinusOne)
+                                        : int(internal::traits<ExpressionType>::RowsAtCompileTime),
+                  Direction==Horizontal ? int(HNormalized_SizeMinusOne)
+                                        : int(internal::traits<ExpressionType>::ColsAtCompileTime)>
+            HNormalized_Block;
+    typedef Block<const ExpressionType,
+                  Direction==Vertical   ? 1 : int(internal::traits<ExpressionType>::RowsAtCompileTime),
+                  Direction==Horizontal ? 1 : int(internal::traits<ExpressionType>::ColsAtCompileTime)>
+            HNormalized_Factors;
+    typedef CwiseBinaryOp<internal::scalar_quotient_op<typename internal::traits<ExpressionType>::Scalar>,
+                const HNormalized_Block,
+                const Replicate<HNormalized_Factors,
+                  Direction==Vertical   ? HNormalized_SizeMinusOne : 1,
+                  Direction==Horizontal ? HNormalized_SizeMinusOne : 1> >
+            HNormalizedReturnType;
+
+    const HNormalizedReturnType hnormalized() const;
+
+  protected:
+    ExpressionTypeNested m_matrix;
+};
+
+/** \returns a VectorwiseOp wrapper of *this providing additional partial reduction operations
+  *
+  * Example: \include MatrixBase_colwise.cpp
+  * Output: \verbinclude MatrixBase_colwise.out
+  *
+  * \sa rowwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
+  */
+template<typename Derived>
+inline const typename DenseBase<Derived>::ConstColwiseReturnType
+DenseBase<Derived>::colwise() const
+{
+  return derived();
+}
+
+/** \returns a writable VectorwiseOp wrapper of *this providing additional partial reduction operations
+  *
+  * \sa rowwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
+  */
+template<typename Derived>
+inline typename DenseBase<Derived>::ColwiseReturnType
+DenseBase<Derived>::colwise()
+{
+  return derived();
+}
+
+/** \returns a VectorwiseOp wrapper of *this providing additional partial reduction operations
+  *
+  * Example: \include MatrixBase_rowwise.cpp
+  * Output: \verbinclude MatrixBase_rowwise.out
+  *
+  * \sa colwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
+  */
+template<typename Derived>
+inline const typename DenseBase<Derived>::ConstRowwiseReturnType
+DenseBase<Derived>::rowwise() const
+{
+  return derived();
+}
+
+/** \returns a writable VectorwiseOp wrapper of *this providing additional partial reduction operations
+  *
+  * \sa colwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
+  */
+template<typename Derived>
+inline typename DenseBase<Derived>::RowwiseReturnType
+DenseBase<Derived>::rowwise()
+{
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARTIAL_REDUX_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/Visitor.h b/vendor/eigen-3.2.8/Eigen/src/Core/Visitor.h
new file mode 100644
index 0000000..dd94eb8
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/Visitor.h
@@ -0,0 +1,240 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_VISITOR_H
+#define EIGEN_VISITOR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Visitor, typename Derived, int UnrollCount>
+struct visitor_impl
+{
+  enum {
+    col = (UnrollCount-1) / Derived::RowsAtCompileTime,
+    row = (UnrollCount-1) % Derived::RowsAtCompileTime
+  };
+
+  static inline void run(const Derived &mat, Visitor& visitor)
+  {
+    visitor_impl<Visitor, Derived, UnrollCount-1>::run(mat, visitor);
+    visitor(mat.coeff(row, col), row, col);
+  }
+};
+
+template<typename Visitor, typename Derived>
+struct visitor_impl<Visitor, Derived, 1>
+{
+  static inline void run(const Derived &mat, Visitor& visitor)
+  {
+    return visitor.init(mat.coeff(0, 0), 0, 0);
+  }
+};
+
+template<typename Visitor, typename Derived>
+struct visitor_impl<Visitor, Derived, Dynamic>
+{
+  typedef typename Derived::Index Index;
+  static inline void run(const Derived& mat, Visitor& visitor)
+  {
+    visitor.init(mat.coeff(0,0), 0, 0);
+    for(Index i = 1; i < mat.rows(); ++i)
+      visitor(mat.coeff(i, 0), i, 0);
+    for(Index j = 1; j < mat.cols(); ++j)
+      for(Index i = 0; i < mat.rows(); ++i)
+        visitor(mat.coeff(i, j), i, j);
+  }
+};
+
+} // end namespace internal
+
+/** Applies the visitor \a visitor to the whole coefficients of the matrix or vector.
+  *
+  * The template parameter \a Visitor is the type of the visitor and provides the following interface:
+  * \code
+  * struct MyVisitor {
+  *   // called for the first coefficient
+  *   void init(const Scalar& value, Index i, Index j);
+  *   // called for all other coefficients
+  *   void operator() (const Scalar& value, Index i, Index j);
+  * };
+  * \endcode
+  *
+  * \note compared to one or two \em for \em loops, visitors offer automatic
+  * unrolling for small fixed size matrix.
+  *
+  * \sa minCoeff(Index*,Index*), maxCoeff(Index*,Index*), DenseBase::redux()
+  */
+template<typename Derived>
+template<typename Visitor>
+void DenseBase<Derived>::visit(Visitor& visitor) const
+{
+  typedef typename internal::remove_all<typename Derived::Nested>::type ThisNested;
+  typename Derived::Nested thisNested(derived());
+
+  enum { unroll = SizeAtCompileTime != Dynamic
+                   && CoeffReadCost != Dynamic
+                   && (SizeAtCompileTime == 1 || internal::functor_traits<Visitor>::Cost != Dynamic)
+                   && SizeAtCompileTime * CoeffReadCost + (SizeAtCompileTime-1) * internal::functor_traits<Visitor>::Cost
+                      <= EIGEN_UNROLLING_LIMIT };
+  return internal::visitor_impl<Visitor, ThisNested,
+      unroll ? int(SizeAtCompileTime) : Dynamic
+    >::run(thisNested, visitor);
+}
+
+namespace internal {
+
+/** \internal
+  * \brief Base class to implement min and max visitors
+  */
+template <typename Derived>
+struct coeff_visitor
+{
+  typedef typename Derived::Index Index;
+  typedef typename Derived::Scalar Scalar;
+  Index row, col;
+  Scalar res;
+  inline void init(const Scalar& value, Index i, Index j)
+  {
+    res = value;
+    row = i;
+    col = j;
+  }
+};
+
+/** \internal
+  * \brief Visitor computing the min coefficient with its value and coordinates
+  *
+  * \sa DenseBase::minCoeff(Index*, Index*)
+  */
+template <typename Derived>
+struct min_coeff_visitor : coeff_visitor<Derived>
+{
+  typedef typename Derived::Index Index;
+  typedef typename Derived::Scalar Scalar;
+  void operator() (const Scalar& value, Index i, Index j)
+  {
+    if(value < this->res)
+    {
+      this->res = value;
+      this->row = i;
+      this->col = j;
+    }
+  }
+};
+
+template<typename Scalar>
+struct functor_traits<min_coeff_visitor<Scalar> > {
+  enum {
+    Cost = NumTraits<Scalar>::AddCost
+  };
+};
+
+/** \internal
+  * \brief Visitor computing the max coefficient with its value and coordinates
+  *
+  * \sa DenseBase::maxCoeff(Index*, Index*)
+  */
+template <typename Derived>
+struct max_coeff_visitor : coeff_visitor<Derived>
+{
+  typedef typename Derived::Index Index;
+  typedef typename Derived::Scalar Scalar;
+  void operator() (const Scalar& value, Index i, Index j)
+  {
+    if(value > this->res)
+    {
+      this->res = value;
+      this->row = i;
+      this->col = j;
+    }
+  }
+};
+
+template<typename Scalar>
+struct functor_traits<max_coeff_visitor<Scalar> > {
+  enum {
+    Cost = NumTraits<Scalar>::AddCost
+  };
+};
+
+} // end namespace internal
+
+/** \returns the minimum of all coefficients of *this and puts in *row and *col its location.
+  * \warning the result is undefined if \c *this contains NaN.
+  *
+  * \sa DenseBase::minCoeff(Index*), DenseBase::maxCoeff(Index*,Index*), DenseBase::visitor(), DenseBase::minCoeff()
+  */
+template<typename Derived>
+template<typename IndexType>
+typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::minCoeff(IndexType* rowId, IndexType* colId) const
+{
+  internal::min_coeff_visitor<Derived> minVisitor;
+  this->visit(minVisitor);
+  *rowId = minVisitor.row;
+  if (colId) *colId = minVisitor.col;
+  return minVisitor.res;
+}
+
+/** \returns the minimum of all coefficients of *this and puts in *index its location.
+  * \warning the result is undefined if \c *this contains NaN. 
+  *
+  * \sa DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::maxCoeff(IndexType*,IndexType*), DenseBase::visitor(), DenseBase::minCoeff()
+  */
+template<typename Derived>
+template<typename IndexType>
+typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::minCoeff(IndexType* index) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  internal::min_coeff_visitor<Derived> minVisitor;
+  this->visit(minVisitor);
+  *index = (RowsAtCompileTime==1) ? minVisitor.col : minVisitor.row;
+  return minVisitor.res;
+}
+
+/** \returns the maximum of all coefficients of *this and puts in *row and *col its location.
+  * \warning the result is undefined if \c *this contains NaN. 
+  *
+  * \sa DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::visitor(), DenseBase::maxCoeff()
+  */
+template<typename Derived>
+template<typename IndexType>
+typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::maxCoeff(IndexType* rowPtr, IndexType* colPtr) const
+{
+  internal::max_coeff_visitor<Derived> maxVisitor;
+  this->visit(maxVisitor);
+  *rowPtr = maxVisitor.row;
+  if (colPtr) *colPtr = maxVisitor.col;
+  return maxVisitor.res;
+}
+
+/** \returns the maximum of all coefficients of *this and puts in *index its location.
+  * \warning the result is undefined if \c *this contains NaN.
+  *
+  * \sa DenseBase::maxCoeff(IndexType*,IndexType*), DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::visitor(), DenseBase::maxCoeff()
+  */
+template<typename Derived>
+template<typename IndexType>
+typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::maxCoeff(IndexType* index) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  internal::max_coeff_visitor<Derived> maxVisitor;
+  this->visit(maxVisitor);
+  *index = (RowsAtCompileTime==1) ? maxVisitor.col : maxVisitor.row;
+  return maxVisitor.res;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_VISITOR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/arch/AltiVec/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Core/arch/AltiVec/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/arch/AltiVec/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Core/arch/AltiVec/CMakeLists.txt
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/arch/AltiVec/Complex.h b/vendor/eigen-3.2.8/Eigen/src/Core/arch/AltiVec/Complex.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/arch/AltiVec/Complex.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/arch/AltiVec/Complex.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/arch/AltiVec/PacketMath.h b/vendor/eigen-3.2.8/Eigen/src/Core/arch/AltiVec/PacketMath.h
new file mode 100644
index 0000000..e408996
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/arch/AltiVec/PacketMath.h
@@ -0,0 +1,501 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Konstantinos Margaritis <markos at codex.gr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PACKET_MATH_ALTIVEC_H
+#define EIGEN_PACKET_MATH_ALTIVEC_H
+
+namespace Eigen {
+
+namespace internal {
+
+#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 4
+#endif
+
+#ifndef EIGEN_HAS_FUSE_CJMADD
+#define EIGEN_HAS_FUSE_CJMADD 1
+#endif
+
+// NOTE Altivec has 32 registers, but Eigen only accepts a value of 8 or 16
+#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
+#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 16
+#endif
+
+typedef __vector float          Packet4f;
+typedef __vector int            Packet4i;
+typedef __vector unsigned int   Packet4ui;
+typedef __vector __bool int     Packet4bi;
+typedef __vector short int      Packet8i;
+typedef __vector unsigned char  Packet16uc;
+
+// We don't want to write the same code all the time, but we need to reuse the constants
+// and it doesn't really work to declare them global, so we define macros instead
+
+#define _EIGEN_DECLARE_CONST_FAST_Packet4f(NAME,X) \
+  Packet4f p4f_##NAME = (Packet4f) vec_splat_s32(X)
+
+#define _EIGEN_DECLARE_CONST_FAST_Packet4i(NAME,X) \
+  Packet4i p4i_##NAME = vec_splat_s32(X)
+
+#define _EIGEN_DECLARE_CONST_Packet4f(NAME,X) \
+  Packet4f p4f_##NAME = pset1<Packet4f>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(NAME,X) \
+  Packet4f p4f_##NAME = vreinterpretq_f32_u32(pset1<int>(X))
+
+#define _EIGEN_DECLARE_CONST_Packet4i(NAME,X) \
+  Packet4i p4i_##NAME = pset1<Packet4i>(X)
+
+#define DST_CHAN 1
+#define DST_CTRL(size, count, stride) (((size) << 24) | ((count) << 16) | (stride))
+
+// Define global static constants:
+static Packet4f p4f_COUNTDOWN = { 3.0, 2.0, 1.0, 0.0 };
+static Packet4i p4i_COUNTDOWN = { 3, 2, 1, 0 };
+static Packet16uc p16uc_REVERSE = {12,13,14,15, 8,9,10,11, 4,5,6,7, 0,1,2,3};
+static Packet16uc p16uc_FORWARD = vec_lvsl(0, (float*)0);
+static Packet16uc p16uc_DUPLICATE = {0,1,2,3, 0,1,2,3, 4,5,6,7, 4,5,6,7};
+
+static _EIGEN_DECLARE_CONST_FAST_Packet4f(ZERO, 0);
+static _EIGEN_DECLARE_CONST_FAST_Packet4i(ZERO, 0);
+static _EIGEN_DECLARE_CONST_FAST_Packet4i(ONE,1);
+static _EIGEN_DECLARE_CONST_FAST_Packet4i(MINUS16,-16);
+static _EIGEN_DECLARE_CONST_FAST_Packet4i(MINUS1,-1);
+static Packet4f p4f_ONE = vec_ctf(p4i_ONE, 0);
+static Packet4f p4f_ZERO_ = (Packet4f) vec_sl((Packet4ui)p4i_MINUS1, (Packet4ui)p4i_MINUS1);
+
+template<> struct packet_traits<float>  : default_packet_traits
+{
+  typedef Packet4f type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size=4,
+
+    // FIXME check the Has*
+    HasSin  = 0,
+    HasCos  = 0,
+    HasLog  = 0,
+    HasExp  = 0,
+    HasSqrt = 0
+  };
+};
+template<> struct packet_traits<int>    : default_packet_traits
+{
+  typedef Packet4i type;
+  enum {
+    // FIXME check the Has*
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size=4
+  };
+};
+
+template<> struct unpacket_traits<Packet4f> { typedef float  type; enum {size=4}; };
+template<> struct unpacket_traits<Packet4i> { typedef int    type; enum {size=4}; };
+/*
+inline std::ostream & operator <<(std::ostream & s, const Packet4f & v)
+{
+  union {
+    Packet4f   v;
+    float n[4];
+  } vt;
+  vt.v = v;
+  s << vt.n[0] << ", " << vt.n[1] << ", " << vt.n[2] << ", " << vt.n[3];
+  return s;
+}
+
+inline std::ostream & operator <<(std::ostream & s, const Packet4i & v)
+{
+  union {
+    Packet4i   v;
+    int n[4];
+  } vt;
+  vt.v = v;
+  s << vt.n[0] << ", " << vt.n[1] << ", " << vt.n[2] << ", " << vt.n[3];
+  return s;
+}
+
+inline std::ostream & operator <<(std::ostream & s, const Packet4ui & v)
+{
+  union {
+    Packet4ui   v;
+    unsigned int n[4];
+  } vt;
+  vt.v = v;
+  s << vt.n[0] << ", " << vt.n[1] << ", " << vt.n[2] << ", " << vt.n[3];
+  return s;
+}
+
+inline std::ostream & operator <<(std::ostream & s, const Packetbi & v)
+{
+  union {
+    Packet4bi v;
+    unsigned int n[4];
+  } vt;
+  vt.v = v;
+  s << vt.n[0] << ", " << vt.n[1] << ", " << vt.n[2] << ", " << vt.n[3];
+  return s;
+}
+*/
+template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float&  from) {
+  // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
+  float EIGEN_ALIGN16 af[4];
+  af[0] = from;
+  Packet4f vc = vec_ld(0, af);
+  vc = vec_splat(vc, 0);
+  return vc;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int&    from)   {
+  int EIGEN_ALIGN16 ai[4];
+  ai[0] = from;
+  Packet4i vc = vec_ld(0, ai);
+  vc = vec_splat(vc, 0);
+  return vc;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f plset<float>(const float& a) { return vec_add(pset1<Packet4f>(a), p4f_COUNTDOWN); }
+template<> EIGEN_STRONG_INLINE Packet4i plset<int>(const int& a)     { return vec_add(pset1<Packet4i>(a), p4i_COUNTDOWN); }
+
+template<> EIGEN_STRONG_INLINE Packet4f padd<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_add(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i padd<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_add(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f psub<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_sub(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i psub<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_sub(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pnegate(const Packet4f& a) { return psub<Packet4f>(p4f_ZERO, a); }
+template<> EIGEN_STRONG_INLINE Packet4i pnegate(const Packet4i& a) { return psub<Packet4i>(p4i_ZERO, a); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pconj(const Packet4f& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet4i pconj(const Packet4i& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmul<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_madd(a,b,p4f_ZERO); }
+/* Commented out: it's actually slower than processing it scalar
+ *
+template<> EIGEN_STRONG_INLINE Packet4i pmul<Packet4i>(const Packet4i& a, const Packet4i& b)
+{
+  // Detailed in: http://freevec.org/content/32bit_signed_integer_multiplication_altivec
+  //Set up constants, variables
+  Packet4i a1, b1, bswap, low_prod, high_prod, prod, prod_, v1sel;
+
+  // Get the absolute values
+  a1  = vec_abs(a);
+  b1  = vec_abs(b);
+
+  // Get the signs using xor
+  Packet4bi sgn = (Packet4bi) vec_cmplt(vec_xor(a, b), p4i_ZERO);
+
+  // Do the multiplication for the asbolute values.
+  bswap = (Packet4i) vec_rl((Packet4ui) b1, (Packet4ui) p4i_MINUS16 );
+  low_prod = vec_mulo((Packet8i) a1, (Packet8i)b1);
+  high_prod = vec_msum((Packet8i) a1, (Packet8i) bswap, p4i_ZERO);
+  high_prod = (Packet4i) vec_sl((Packet4ui) high_prod, (Packet4ui) p4i_MINUS16);
+  prod = vec_add( low_prod, high_prod );
+
+  // NOR the product and select only the negative elements according to the sign mask
+  prod_ = vec_nor(prod, prod);
+  prod_ = vec_sel(p4i_ZERO, prod_, sgn);
+
+  // Add 1 to the result to get the negative numbers
+  v1sel = vec_sel(p4i_ZERO, p4i_ONE, sgn);
+  prod_ = vec_add(prod_, v1sel);
+
+  // Merge the results back to the final vector.
+  prod = vec_sel(prod, prod_, sgn);
+
+  return prod;
+}
+*/
+template<> EIGEN_STRONG_INLINE Packet4f pdiv<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+  Packet4f t, y_0, y_1, res;
+
+  // Altivec does not offer a divide instruction, we have to do a reciprocal approximation
+  y_0 = vec_re(b);
+
+  // Do one Newton-Raphson iteration to get the needed accuracy
+  t   = vec_nmsub(y_0, b, p4f_ONE);
+  y_1 = vec_madd(y_0, t, y_0);
+
+  res = vec_madd(a, y_1, p4f_ZERO);
+  return res;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pdiv<Packet4i>(const Packet4i& /*a*/, const Packet4i& /*b*/)
+{ eigen_assert(false && "packet integer division are not supported by AltiVec");
+  return pset1<Packet4i>(0);
+}
+
+// for some weird raisons, it has to be overloaded for packet of integers
+template<> EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c) { return vec_madd(a, b, c); }
+template<> EIGEN_STRONG_INLINE Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) { return padd(pmul(a,b), c); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmin<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_min(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmin<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_min(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmax<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_max(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmax<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_max(a, b); }
+
+// Logical Operations are not supported for float, so we have to reinterpret casts using NEON intrinsics
+template<> EIGEN_STRONG_INLINE Packet4f pand<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_and(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4i pand<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_and(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f por<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_or(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4i por<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_or(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pxor<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_xor(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4i pxor<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_xor(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pandnot<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_and(a, vec_nor(b, b)); }
+template<> EIGEN_STRONG_INLINE Packet4i pandnot<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_and(a, vec_nor(b, b)); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pload<Packet4f>(const float* from) { EIGEN_DEBUG_ALIGNED_LOAD return vec_ld(0, from); }
+template<> EIGEN_STRONG_INLINE Packet4i pload<Packet4i>(const int*     from) { EIGEN_DEBUG_ALIGNED_LOAD return vec_ld(0, from); }
+
+template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float* from)
+{
+  EIGEN_DEBUG_ALIGNED_LOAD
+  // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
+  Packet16uc MSQ, LSQ;
+  Packet16uc mask;
+  MSQ = vec_ld(0, (unsigned char *)from);          // most significant quadword
+  LSQ = vec_ld(15, (unsigned char *)from);         // least significant quadword
+  mask = vec_lvsl(0, from);                        // create the permute mask
+  return (Packet4f) vec_perm(MSQ, LSQ, mask);           // align the data
+
+}
+template<> EIGEN_STRONG_INLINE Packet4i ploadu<Packet4i>(const int* from)
+{
+  EIGEN_DEBUG_ALIGNED_LOAD
+  // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
+  Packet16uc MSQ, LSQ;
+  Packet16uc mask;
+  MSQ = vec_ld(0, (unsigned char *)from);          // most significant quadword
+  LSQ = vec_ld(15, (unsigned char *)from);         // least significant quadword
+  mask = vec_lvsl(0, from);                        // create the permute mask
+  return (Packet4i) vec_perm(MSQ, LSQ, mask);    // align the data
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f ploaddup<Packet4f>(const float*   from)
+{
+  Packet4f p;
+  if((ptrdiff_t(&from) % 16) == 0)  p = pload<Packet4f>(from);
+  else                              p = ploadu<Packet4f>(from);
+  return vec_perm(p, p, p16uc_DUPLICATE);
+}
+template<> EIGEN_STRONG_INLINE Packet4i ploaddup<Packet4i>(const int*     from)
+{
+  Packet4i p;
+  if((ptrdiff_t(&from) % 16) == 0)  p = pload<Packet4i>(from);
+  else                              p = ploadu<Packet4i>(from);
+  return vec_perm(p, p, p16uc_DUPLICATE);
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<float>(float*   to, const Packet4f& from) { EIGEN_DEBUG_ALIGNED_STORE vec_st(from, 0, to); }
+template<> EIGEN_STRONG_INLINE void pstore<int>(int*       to, const Packet4i& from) { EIGEN_DEBUG_ALIGNED_STORE vec_st(from, 0, to); }
+
+template<> EIGEN_STRONG_INLINE void pstoreu<float>(float*  to, const Packet4f& from)
+{
+  EIGEN_DEBUG_UNALIGNED_STORE
+  // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
+  // Warning: not thread safe!
+  Packet16uc MSQ, LSQ, edges;
+  Packet16uc edgeAlign, align;
+
+  MSQ = vec_ld(0, (unsigned char *)to);                     // most significant quadword
+  LSQ = vec_ld(15, (unsigned char *)to);                    // least significant quadword
+  edgeAlign = vec_lvsl(0, to);                              // permute map to extract edges
+  edges=vec_perm(LSQ,MSQ,edgeAlign);                        // extract the edges
+  align = vec_lvsr( 0, to );                                // permute map to misalign data
+  MSQ = vec_perm(edges,(Packet16uc)from,align);             // misalign the data (MSQ)
+  LSQ = vec_perm((Packet16uc)from,edges,align);             // misalign the data (LSQ)
+  vec_st( LSQ, 15, (unsigned char *)to );                   // Store the LSQ part first
+  vec_st( MSQ, 0, (unsigned char *)to );                    // Store the MSQ part
+}
+template<> EIGEN_STRONG_INLINE void pstoreu<int>(int*      to, const Packet4i& from)
+{
+  EIGEN_DEBUG_UNALIGNED_STORE
+  // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
+  // Warning: not thread safe!
+  Packet16uc MSQ, LSQ, edges;
+  Packet16uc edgeAlign, align;
+
+  MSQ = vec_ld(0, (unsigned char *)to);                     // most significant quadword
+  LSQ = vec_ld(15, (unsigned char *)to);                    // least significant quadword
+  edgeAlign = vec_lvsl(0, to);                              // permute map to extract edges
+  edges=vec_perm(LSQ, MSQ, edgeAlign);                      // extract the edges
+  align = vec_lvsr( 0, to );                                // permute map to misalign data
+  MSQ = vec_perm(edges, (Packet16uc) from, align);          // misalign the data (MSQ)
+  LSQ = vec_perm((Packet16uc) from, edges, align);          // misalign the data (LSQ)
+  vec_st( LSQ, 15, (unsigned char *)to );                   // Store the LSQ part first
+  vec_st( MSQ, 0, (unsigned char *)to );                    // Store the MSQ part
+}
+
+template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) { vec_dstt(addr, DST_CTRL(2,2,32), DST_CHAN); }
+template<> EIGEN_STRONG_INLINE void prefetch<int>(const int*     addr) { vec_dstt(addr, DST_CTRL(2,2,32), DST_CHAN); }
+
+template<> EIGEN_STRONG_INLINE float  pfirst<Packet4f>(const Packet4f& a) { float EIGEN_ALIGN16 x[4]; vec_st(a, 0, x); return x[0]; }
+template<> EIGEN_STRONG_INLINE int    pfirst<Packet4i>(const Packet4i& a) { int   EIGEN_ALIGN16 x[4]; vec_st(a, 0, x); return x[0]; }
+
+template<> EIGEN_STRONG_INLINE Packet4f preverse(const Packet4f& a) { return (Packet4f)vec_perm((Packet16uc)a,(Packet16uc)a, p16uc_REVERSE); }
+template<> EIGEN_STRONG_INLINE Packet4i preverse(const Packet4i& a) { return (Packet4i)vec_perm((Packet16uc)a,(Packet16uc)a, p16uc_REVERSE); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f& a) { return vec_abs(a); }
+template<> EIGEN_STRONG_INLINE Packet4i pabs(const Packet4i& a) { return vec_abs(a); }
+
+template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
+{
+  Packet4f b, sum;
+  b   = (Packet4f) vec_sld(a, a, 8);
+  sum = vec_add(a, b);
+  b   = (Packet4f) vec_sld(sum, sum, 4);
+  sum = vec_add(sum, b);
+  return pfirst(sum);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
+{
+  Packet4f v[4], sum[4];
+
+  // It's easier and faster to transpose then add as columns
+  // Check: http://www.freevec.org/function/matrix_4x4_transpose_floats for explanation
+  // Do the transpose, first set of moves
+  v[0] = vec_mergeh(vecs[0], vecs[2]);
+  v[1] = vec_mergel(vecs[0], vecs[2]);
+  v[2] = vec_mergeh(vecs[1], vecs[3]);
+  v[3] = vec_mergel(vecs[1], vecs[3]);
+  // Get the resulting vectors
+  sum[0] = vec_mergeh(v[0], v[2]);
+  sum[1] = vec_mergel(v[0], v[2]);
+  sum[2] = vec_mergeh(v[1], v[3]);
+  sum[3] = vec_mergel(v[1], v[3]);
+
+  // Now do the summation:
+  // Lines 0+1
+  sum[0] = vec_add(sum[0], sum[1]);
+  // Lines 2+3
+  sum[1] = vec_add(sum[2], sum[3]);
+  // Add the results
+  sum[0] = vec_add(sum[0], sum[1]);
+
+  return sum[0];
+}
+
+template<> EIGEN_STRONG_INLINE int predux<Packet4i>(const Packet4i& a)
+{
+  Packet4i sum;
+  sum = vec_sums(a, p4i_ZERO);
+  sum = vec_sld(sum, p4i_ZERO, 12);
+  return pfirst(sum);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i preduxp<Packet4i>(const Packet4i* vecs)
+{
+  Packet4i v[4], sum[4];
+
+  // It's easier and faster to transpose then add as columns
+  // Check: http://www.freevec.org/function/matrix_4x4_transpose_floats for explanation
+  // Do the transpose, first set of moves
+  v[0] = vec_mergeh(vecs[0], vecs[2]);
+  v[1] = vec_mergel(vecs[0], vecs[2]);
+  v[2] = vec_mergeh(vecs[1], vecs[3]);
+  v[3] = vec_mergel(vecs[1], vecs[3]);
+  // Get the resulting vectors
+  sum[0] = vec_mergeh(v[0], v[2]);
+  sum[1] = vec_mergel(v[0], v[2]);
+  sum[2] = vec_mergeh(v[1], v[3]);
+  sum[3] = vec_mergel(v[1], v[3]);
+
+  // Now do the summation:
+  // Lines 0+1
+  sum[0] = vec_add(sum[0], sum[1]);
+  // Lines 2+3
+  sum[1] = vec_add(sum[2], sum[3]);
+  // Add the results
+  sum[0] = vec_add(sum[0], sum[1]);
+
+  return sum[0];
+}
+
+// Other reduction functions:
+// mul
+template<> EIGEN_STRONG_INLINE float predux_mul<Packet4f>(const Packet4f& a)
+{
+  Packet4f prod;
+  prod = pmul(a, (Packet4f)vec_sld(a, a, 8));
+  return pfirst(pmul(prod, (Packet4f)vec_sld(prod, prod, 4)));
+}
+
+template<> EIGEN_STRONG_INLINE int predux_mul<Packet4i>(const Packet4i& a)
+{
+  EIGEN_ALIGN16 int aux[4];
+  pstore(aux, a);
+  return aux[0] * aux[1] * aux[2] * aux[3];
+}
+
+// min
+template<> EIGEN_STRONG_INLINE float predux_min<Packet4f>(const Packet4f& a)
+{
+  Packet4f b, res;
+  b = vec_min(a, vec_sld(a, a, 8));
+  res = vec_min(b, vec_sld(b, b, 4));
+  return pfirst(res);
+}
+
+template<> EIGEN_STRONG_INLINE int predux_min<Packet4i>(const Packet4i& a)
+{
+  Packet4i b, res;
+  b = vec_min(a, vec_sld(a, a, 8));
+  res = vec_min(b, vec_sld(b, b, 4));
+  return pfirst(res);
+}
+
+// max
+template<> EIGEN_STRONG_INLINE float predux_max<Packet4f>(const Packet4f& a)
+{
+  Packet4f b, res;
+  b = vec_max(a, vec_sld(a, a, 8));
+  res = vec_max(b, vec_sld(b, b, 4));
+  return pfirst(res);
+}
+
+template<> EIGEN_STRONG_INLINE int predux_max<Packet4i>(const Packet4i& a)
+{
+  Packet4i b, res;
+  b = vec_max(a, vec_sld(a, a, 8));
+  res = vec_max(b, vec_sld(b, b, 4));
+  return pfirst(res);
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet4f>
+{
+  static EIGEN_STRONG_INLINE void run(Packet4f& first, const Packet4f& second)
+  {
+    if (Offset!=0)
+      first = vec_sld(first, second, Offset*4);
+  }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet4i>
+{
+  static EIGEN_STRONG_INLINE void run(Packet4i& first, const Packet4i& second)
+  {
+    if (Offset!=0)
+      first = vec_sld(first, second, Offset*4);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PACKET_MATH_ALTIVEC_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/arch/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Core/arch/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/arch/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Core/arch/CMakeLists.txt
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/arch/Default/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Core/arch/Default/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/arch/Default/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Core/arch/Default/CMakeLists.txt
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/arch/Default/Settings.h b/vendor/eigen-3.2.8/Eigen/src/Core/arch/Default/Settings.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/arch/Default/Settings.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/arch/Default/Settings.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/arch/NEON/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Core/arch/NEON/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/arch/NEON/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Core/arch/NEON/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/arch/NEON/Complex.h b/vendor/eigen-3.2.8/Eigen/src/Core/arch/NEON/Complex.h
new file mode 100644
index 0000000..8d9255e
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/arch/NEON/Complex.h
@@ -0,0 +1,253 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX_NEON_H
+#define EIGEN_COMPLEX_NEON_H
+
+namespace Eigen {
+
+namespace internal {
+
+static uint32x4_t p4ui_CONJ_XOR = EIGEN_INIT_NEON_PACKET4(0x00000000, 0x80000000, 0x00000000, 0x80000000);
+static uint32x2_t p2ui_CONJ_XOR = EIGEN_INIT_NEON_PACKET2(0x00000000, 0x80000000);
+
+//---------- float ----------
+struct Packet2cf
+{
+  EIGEN_STRONG_INLINE Packet2cf() {}
+  EIGEN_STRONG_INLINE explicit Packet2cf(const Packet4f& a) : v(a) {}
+  Packet4f  v;
+};
+
+template<> struct packet_traits<std::complex<float> >  : default_packet_traits
+{
+  typedef Packet2cf type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size = 2,
+
+    HasAdd    = 1,
+    HasSub    = 1,
+    HasMul    = 1,
+    HasDiv    = 1,
+    HasNegate = 1,
+    HasAbs    = 0,
+    HasAbs2   = 0,
+    HasMin    = 0,
+    HasMax    = 0,
+    HasSetLinear = 0
+  };
+};
+
+template<> struct unpacket_traits<Packet2cf> { typedef std::complex<float> type; enum {size=2}; };
+
+template<> EIGEN_STRONG_INLINE Packet2cf pset1<Packet2cf>(const std::complex<float>&  from)
+{
+  float32x2_t r64;
+  r64 = vld1_f32((float *)&from);
+
+  return Packet2cf(vcombine_f32(r64, r64));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf padd<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(padd<Packet4f>(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf psub<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(psub<Packet4f>(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf& a) { return Packet2cf(pnegate<Packet4f>(a.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf& a)
+{
+  Packet4ui b = vreinterpretq_u32_f32(a.v);
+  return Packet2cf(vreinterpretq_f32_u32(veorq_u32(b, p4ui_CONJ_XOR)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pmul<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  Packet4f v1, v2;
+
+  // Get the real values of a | a1_re | a1_re | a2_re | a2_re |
+  v1 = vcombine_f32(vdup_lane_f32(vget_low_f32(a.v), 0), vdup_lane_f32(vget_high_f32(a.v), 0));
+  // Get the real values of a | a1_im | a1_im | a2_im | a2_im |
+  v2 = vcombine_f32(vdup_lane_f32(vget_low_f32(a.v), 1), vdup_lane_f32(vget_high_f32(a.v), 1));
+  // Multiply the real a with b
+  v1 = vmulq_f32(v1, b.v);
+  // Multiply the imag a with b
+  v2 = vmulq_f32(v2, b.v);
+  // Conjugate v2 
+  v2 = vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(v2), p4ui_CONJ_XOR));
+  // Swap real/imag elements in v2.
+  v2 = vrev64q_f32(v2);
+  // Add and return the result
+  return Packet2cf(vaddq_f32(v1, v2));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pand   <Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  return Packet2cf(vreinterpretq_f32_u32(vorrq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
+}
+template<> EIGEN_STRONG_INLINE Packet2cf por    <Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  return Packet2cf(vreinterpretq_f32_u32(vorrq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
+}
+template<> EIGEN_STRONG_INLINE Packet2cf pxor   <Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  return Packet2cf(vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
+}
+template<> EIGEN_STRONG_INLINE Packet2cf pandnot<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  return Packet2cf(vreinterpretq_f32_u32(vbicq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pload<Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet2cf(pload<Packet4f>((const float*)from)); }
+template<> EIGEN_STRONG_INLINE Packet2cf ploadu<Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_UNALIGNED_LOAD return Packet2cf(ploadu<Packet4f>((const float*)from)); }
+
+template<> EIGEN_STRONG_INLINE Packet2cf ploaddup<Packet2cf>(const std::complex<float>* from) { return pset1<Packet2cf>(*from); }
+
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<float> >(std::complex<float> *   to, const Packet2cf& from) { EIGEN_DEBUG_ALIGNED_STORE pstore((float*)to, from.v); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<float> >(std::complex<float> *   to, const Packet2cf& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu((float*)to, from.v); }
+
+template<> EIGEN_STRONG_INLINE void prefetch<std::complex<float> >(const std::complex<float> *   addr) { EIGEN_ARM_PREFETCH((float *)addr); }
+
+template<> EIGEN_STRONG_INLINE std::complex<float>  pfirst<Packet2cf>(const Packet2cf& a)
+{
+  std::complex<float> EIGEN_ALIGN16 x[2];
+  vst1q_f32((float *)x, a.v);
+  return x[0];
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf& a)
+{
+  float32x2_t a_lo, a_hi;
+  Packet4f a_r128;
+
+  a_lo = vget_low_f32(a.v);
+  a_hi = vget_high_f32(a.v);
+  a_r128 = vcombine_f32(a_hi, a_lo);
+
+  return Packet2cf(a_r128);
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pcplxflip<Packet2cf>(const Packet2cf& a)
+{
+  return Packet2cf(vrev64q_f32(a.v));
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux<Packet2cf>(const Packet2cf& a)
+{
+  float32x2_t a1, a2;
+  std::complex<float> s;
+
+  a1 = vget_low_f32(a.v);
+  a2 = vget_high_f32(a.v);
+  a2 = vadd_f32(a1, a2);
+  vst1_f32((float *)&s, a2);
+
+  return s;
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preduxp<Packet2cf>(const Packet2cf* vecs)
+{
+  Packet4f sum1, sum2, sum;
+
+  // Add the first two 64-bit float32x2_t of vecs[0]
+  sum1 = vcombine_f32(vget_low_f32(vecs[0].v), vget_low_f32(vecs[1].v));
+  sum2 = vcombine_f32(vget_high_f32(vecs[0].v), vget_high_f32(vecs[1].v));
+  sum = vaddq_f32(sum1, sum2);
+
+  return Packet2cf(sum);
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux_mul<Packet2cf>(const Packet2cf& a)
+{
+  float32x2_t a1, a2, v1, v2, prod;
+  std::complex<float> s;
+
+  a1 = vget_low_f32(a.v);
+  a2 = vget_high_f32(a.v);
+   // Get the real values of a | a1_re | a1_re | a2_re | a2_re |
+  v1 = vdup_lane_f32(a1, 0);
+  // Get the real values of a | a1_im | a1_im | a2_im | a2_im |
+  v2 = vdup_lane_f32(a1, 1);
+  // Multiply the real a with b
+  v1 = vmul_f32(v1, a2);
+  // Multiply the imag a with b
+  v2 = vmul_f32(v2, a2);
+  // Conjugate v2 
+  v2 = vreinterpret_f32_u32(veor_u32(vreinterpret_u32_f32(v2), p2ui_CONJ_XOR));
+  // Swap real/imag elements in v2.
+  v2 = vrev64_f32(v2);
+  // Add v1, v2
+  prod = vadd_f32(v1, v2);
+
+  vst1_f32((float *)&s, prod);
+
+  return s;
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet2cf>
+{
+  EIGEN_STRONG_INLINE static void run(Packet2cf& first, const Packet2cf& second)
+  {
+    if (Offset==1)
+    {
+      first.v = vextq_f32(first.v, second.v, 2);
+    }
+  }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, false,true>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+  {
+    return internal::pmul(a, pconj(b));
+  }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,false>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+  {
+    return internal::pmul(pconj(a), b);
+  }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,true>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+  {
+    return pconj(internal::pmul(a, b));
+  }
+};
+
+template<> EIGEN_STRONG_INLINE Packet2cf pdiv<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  // TODO optimize it for AltiVec
+  Packet2cf res = conj_helper<Packet2cf,Packet2cf,false,true>().pmul(a,b);
+  Packet4f s, rev_s;
+
+  // this computes the norm
+  s = vmulq_f32(b.v, b.v);
+  rev_s = vrev64q_f32(s);
+
+  return Packet2cf(pdiv(res.v, vaddq_f32(s,rev_s)));
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_NEON_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/arch/NEON/PacketMath.h b/vendor/eigen-3.2.8/Eigen/src/Core/arch/NEON/PacketMath.h
new file mode 100644
index 0000000..d49670e
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/arch/NEON/PacketMath.h
@@ -0,0 +1,420 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2010 Konstantinos Margaritis <markos at codex.gr>
+// Heavily based on Gael's SSE version.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PACKET_MATH_NEON_H
+#define EIGEN_PACKET_MATH_NEON_H
+
+namespace Eigen {
+
+namespace internal {
+
+#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8
+#endif
+
+// FIXME NEON has 16 quad registers, but since the current register allocator
+// is so bad, it is much better to reduce it to 8
+#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
+#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 8
+#endif
+
+typedef float32x4_t Packet4f;
+typedef int32x4_t   Packet4i;
+typedef uint32x4_t  Packet4ui;
+
+#define _EIGEN_DECLARE_CONST_Packet4f(NAME,X) \
+  const Packet4f p4f_##NAME = pset1<Packet4f>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(NAME,X) \
+  const Packet4f p4f_##NAME = vreinterpretq_f32_u32(pset1<int>(X))
+
+#define _EIGEN_DECLARE_CONST_Packet4i(NAME,X) \
+  const Packet4i p4i_##NAME = pset1<Packet4i>(X)
+
+#if defined(__llvm__) && !defined(__clang__)
+  //Special treatment for Apple's llvm-gcc, its NEON packet types are unions
+  #define EIGEN_INIT_NEON_PACKET2(X, Y)       {{X, Y}}
+  #define EIGEN_INIT_NEON_PACKET4(X, Y, Z, W) {{X, Y, Z, W}}
+#else
+  //Default initializer for packets
+  #define EIGEN_INIT_NEON_PACKET2(X, Y)       {X, Y}
+  #define EIGEN_INIT_NEON_PACKET4(X, Y, Z, W) {X, Y, Z, W}
+#endif
+
+// arm64 does have the pld instruction. If available, let's trust the __builtin_prefetch built-in function
+// which available on LLVM and GCC (at least)
+#if EIGEN_HAS_BUILTIN(__builtin_prefetch) || defined(__GNUC__)
+  #define EIGEN_ARM_PREFETCH(ADDR) __builtin_prefetch(ADDR);
+#elif defined __pld
+  #define EIGEN_ARM_PREFETCH(ADDR) __pld(ADDR)
+#elif !defined(__aarch64__)
+  #define EIGEN_ARM_PREFETCH(ADDR) __asm__ __volatile__ ( "   pld [%[addr]]\n" :: [addr] "r" (ADDR) : "cc" );
+#else
+  // by default no explicit prefetching
+  #define EIGEN_ARM_PREFETCH(ADDR)
+#endif
+
+template<> struct packet_traits<float>  : default_packet_traits
+{
+  typedef Packet4f type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size = 4,
+   
+    HasDiv  = 1,
+    // FIXME check the Has*
+    HasSin  = 0,
+    HasCos  = 0,
+    HasLog  = 0,
+    HasExp  = 0,
+    HasSqrt = 0
+  };
+};
+template<> struct packet_traits<int>    : default_packet_traits
+{
+  typedef Packet4i type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size=4
+    // FIXME check the Has*
+  };
+};
+
+#if EIGEN_GNUC_AT_MOST(4,4) && !defined(__llvm__)
+// workaround gcc 4.2, 4.3 and 4.4 compilatin issue
+EIGEN_STRONG_INLINE float32x4_t vld1q_f32(const float* x) { return ::vld1q_f32((const float32_t*)x); }
+EIGEN_STRONG_INLINE float32x2_t vld1_f32 (const float* x) { return ::vld1_f32 ((const float32_t*)x); }
+EIGEN_STRONG_INLINE void        vst1q_f32(float* to, float32x4_t from) { ::vst1q_f32((float32_t*)to,from); }
+EIGEN_STRONG_INLINE void        vst1_f32 (float* to, float32x2_t from) { ::vst1_f32 ((float32_t*)to,from); }
+#endif
+
+template<> struct unpacket_traits<Packet4f> { typedef float  type; enum {size=4}; };
+template<> struct unpacket_traits<Packet4i> { typedef int    type; enum {size=4}; };
+
+template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float&  from) { return vdupq_n_f32(from); }
+template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int&    from)   { return vdupq_n_s32(from); }
+
+template<> EIGEN_STRONG_INLINE Packet4f plset<float>(const float& a)
+{
+  Packet4f countdown = EIGEN_INIT_NEON_PACKET4(0, 1, 2, 3);
+  return vaddq_f32(pset1<Packet4f>(a), countdown);
+}
+template<> EIGEN_STRONG_INLINE Packet4i plset<int>(const int& a)
+{
+  Packet4i countdown = EIGEN_INIT_NEON_PACKET4(0, 1, 2, 3);
+  return vaddq_s32(pset1<Packet4i>(a), countdown);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f padd<Packet4f>(const Packet4f& a, const Packet4f& b) { return vaddq_f32(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i padd<Packet4i>(const Packet4i& a, const Packet4i& b) { return vaddq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f psub<Packet4f>(const Packet4f& a, const Packet4f& b) { return vsubq_f32(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i psub<Packet4i>(const Packet4i& a, const Packet4i& b) { return vsubq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pnegate(const Packet4f& a) { return vnegq_f32(a); }
+template<> EIGEN_STRONG_INLINE Packet4i pnegate(const Packet4i& a) { return vnegq_s32(a); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pconj(const Packet4f& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet4i pconj(const Packet4i& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmul<Packet4f>(const Packet4f& a, const Packet4f& b) { return vmulq_f32(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmul<Packet4i>(const Packet4i& a, const Packet4i& b) { return vmulq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pdiv<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+  Packet4f inv, restep, div;
+
+  // NEON does not offer a divide instruction, we have to do a reciprocal approximation
+  // However NEON in contrast to other SIMD engines (AltiVec/SSE), offers
+  // a reciprocal estimate AND a reciprocal step -which saves a few instructions
+  // vrecpeq_f32() returns an estimate to 1/b, which we will finetune with
+  // Newton-Raphson and vrecpsq_f32()
+  inv = vrecpeq_f32(b);
+
+  // This returns a differential, by which we will have to multiply inv to get a better
+  // approximation of 1/b.
+  restep = vrecpsq_f32(b, inv);
+  inv = vmulq_f32(restep, inv);
+
+  // Finally, multiply a by 1/b and get the wanted result of the division.
+  div = vmulq_f32(a, inv);
+
+  return div;
+}
+template<> EIGEN_STRONG_INLINE Packet4i pdiv<Packet4i>(const Packet4i& /*a*/, const Packet4i& /*b*/)
+{ eigen_assert(false && "packet integer division are not supported by NEON");
+  return pset1<Packet4i>(0);
+}
+
+// for some weird raisons, it has to be overloaded for packet of integers
+template<> EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c) { return vmlaq_f32(c,a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) { return vmlaq_s32(c,a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmin<Packet4f>(const Packet4f& a, const Packet4f& b) { return vminq_f32(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmin<Packet4i>(const Packet4i& a, const Packet4i& b) { return vminq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmax<Packet4f>(const Packet4f& a, const Packet4f& b) { return vmaxq_f32(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmax<Packet4i>(const Packet4i& a, const Packet4i& b) { return vmaxq_s32(a,b); }
+
+// Logical Operations are not supported for float, so we have to reinterpret casts using NEON intrinsics
+template<> EIGEN_STRONG_INLINE Packet4f pand<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+  return vreinterpretq_f32_u32(vandq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
+}
+template<> EIGEN_STRONG_INLINE Packet4i pand<Packet4i>(const Packet4i& a, const Packet4i& b) { return vandq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f por<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+  return vreinterpretq_f32_u32(vorrq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
+}
+template<> EIGEN_STRONG_INLINE Packet4i por<Packet4i>(const Packet4i& a, const Packet4i& b) { return vorrq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pxor<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+  return vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
+}
+template<> EIGEN_STRONG_INLINE Packet4i pxor<Packet4i>(const Packet4i& a, const Packet4i& b) { return veorq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pandnot<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+  return vreinterpretq_f32_u32(vbicq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
+}
+template<> EIGEN_STRONG_INLINE Packet4i pandnot<Packet4i>(const Packet4i& a, const Packet4i& b) { return vbicq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pload<Packet4f>(const float* from) { EIGEN_DEBUG_ALIGNED_LOAD return vld1q_f32(from); }
+template<> EIGEN_STRONG_INLINE Packet4i pload<Packet4i>(const int*   from) { EIGEN_DEBUG_ALIGNED_LOAD return vld1q_s32(from); }
+
+template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float* from) { EIGEN_DEBUG_UNALIGNED_LOAD return vld1q_f32(from); }
+template<> EIGEN_STRONG_INLINE Packet4i ploadu<Packet4i>(const int* from)   { EIGEN_DEBUG_UNALIGNED_LOAD return vld1q_s32(from); }
+
+template<> EIGEN_STRONG_INLINE Packet4f ploaddup<Packet4f>(const float*   from)
+{
+  float32x2_t lo, hi;
+  lo = vld1_dup_f32(from);
+  hi = vld1_dup_f32(from+1);
+  return vcombine_f32(lo, hi);
+}
+template<> EIGEN_STRONG_INLINE Packet4i ploaddup<Packet4i>(const int*     from)
+{
+  int32x2_t lo, hi;
+  lo = vld1_dup_s32(from);
+  hi = vld1_dup_s32(from+1);
+  return vcombine_s32(lo, hi);
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<float>(float*   to, const Packet4f& from) { EIGEN_DEBUG_ALIGNED_STORE vst1q_f32(to, from); }
+template<> EIGEN_STRONG_INLINE void pstore<int>(int*       to, const Packet4i& from) { EIGEN_DEBUG_ALIGNED_STORE vst1q_s32(to, from); }
+
+template<> EIGEN_STRONG_INLINE void pstoreu<float>(float*  to, const Packet4f& from) { EIGEN_DEBUG_UNALIGNED_STORE vst1q_f32(to, from); }
+template<> EIGEN_STRONG_INLINE void pstoreu<int>(int*      to, const Packet4i& from) { EIGEN_DEBUG_UNALIGNED_STORE vst1q_s32(to, from); }
+
+template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) { EIGEN_ARM_PREFETCH(addr); }
+template<> EIGEN_STRONG_INLINE void prefetch<int>(const int*     addr) { EIGEN_ARM_PREFETCH(addr); }
+
+// FIXME only store the 2 first elements ?
+template<> EIGEN_STRONG_INLINE float  pfirst<Packet4f>(const Packet4f& a) { float EIGEN_ALIGN16 x[4]; vst1q_f32(x, a); return x[0]; }
+template<> EIGEN_STRONG_INLINE int    pfirst<Packet4i>(const Packet4i& a) { int   EIGEN_ALIGN16 x[4]; vst1q_s32(x, a); return x[0]; }
+
+template<> EIGEN_STRONG_INLINE Packet4f preverse(const Packet4f& a) {
+  float32x2_t a_lo, a_hi;
+  Packet4f a_r64;
+
+  a_r64 = vrev64q_f32(a);
+  a_lo = vget_low_f32(a_r64);
+  a_hi = vget_high_f32(a_r64);
+  return vcombine_f32(a_hi, a_lo);
+}
+template<> EIGEN_STRONG_INLINE Packet4i preverse(const Packet4i& a) {
+  int32x2_t a_lo, a_hi;
+  Packet4i a_r64;
+
+  a_r64 = vrev64q_s32(a);
+  a_lo = vget_low_s32(a_r64);
+  a_hi = vget_high_s32(a_r64);
+  return vcombine_s32(a_hi, a_lo);
+}
+template<> EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f& a) { return vabsq_f32(a); }
+template<> EIGEN_STRONG_INLINE Packet4i pabs(const Packet4i& a) { return vabsq_s32(a); }
+
+template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
+{
+  float32x2_t a_lo, a_hi, sum;
+
+  a_lo = vget_low_f32(a);
+  a_hi = vget_high_f32(a);
+  sum = vpadd_f32(a_lo, a_hi);
+  sum = vpadd_f32(sum, sum);
+  return vget_lane_f32(sum, 0);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
+{
+  float32x4x2_t vtrn1, vtrn2, res1, res2;
+  Packet4f sum1, sum2, sum;
+
+  // NEON zip performs interleaving of the supplied vectors.
+  // We perform two interleaves in a row to acquire the transposed vector
+  vtrn1 = vzipq_f32(vecs[0], vecs[2]);
+  vtrn2 = vzipq_f32(vecs[1], vecs[3]);
+  res1 = vzipq_f32(vtrn1.val[0], vtrn2.val[0]);
+  res2 = vzipq_f32(vtrn1.val[1], vtrn2.val[1]);
+
+  // Do the addition of the resulting vectors
+  sum1 = vaddq_f32(res1.val[0], res1.val[1]);
+  sum2 = vaddq_f32(res2.val[0], res2.val[1]);
+  sum = vaddq_f32(sum1, sum2);
+
+  return sum;
+}
+
+template<> EIGEN_STRONG_INLINE int predux<Packet4i>(const Packet4i& a)
+{
+  int32x2_t a_lo, a_hi, sum;
+
+  a_lo = vget_low_s32(a);
+  a_hi = vget_high_s32(a);
+  sum = vpadd_s32(a_lo, a_hi);
+  sum = vpadd_s32(sum, sum);
+  return vget_lane_s32(sum, 0);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i preduxp<Packet4i>(const Packet4i* vecs)
+{
+  int32x4x2_t vtrn1, vtrn2, res1, res2;
+  Packet4i sum1, sum2, sum;
+
+  // NEON zip performs interleaving of the supplied vectors.
+  // We perform two interleaves in a row to acquire the transposed vector
+  vtrn1 = vzipq_s32(vecs[0], vecs[2]);
+  vtrn2 = vzipq_s32(vecs[1], vecs[3]);
+  res1 = vzipq_s32(vtrn1.val[0], vtrn2.val[0]);
+  res2 = vzipq_s32(vtrn1.val[1], vtrn2.val[1]);
+
+  // Do the addition of the resulting vectors
+  sum1 = vaddq_s32(res1.val[0], res1.val[1]);
+  sum2 = vaddq_s32(res2.val[0], res2.val[1]);
+  sum = vaddq_s32(sum1, sum2);
+
+  return sum;
+}
+
+// Other reduction functions:
+// mul
+template<> EIGEN_STRONG_INLINE float predux_mul<Packet4f>(const Packet4f& a)
+{
+  float32x2_t a_lo, a_hi, prod;
+
+  // Get a_lo = |a1|a2| and a_hi = |a3|a4|
+  a_lo = vget_low_f32(a);
+  a_hi = vget_high_f32(a);
+  // Get the product of a_lo * a_hi -> |a1*a3|a2*a4|
+  prod = vmul_f32(a_lo, a_hi);
+  // Multiply prod with its swapped value |a2*a4|a1*a3|
+  prod = vmul_f32(prod, vrev64_f32(prod));
+
+  return vget_lane_f32(prod, 0);
+}
+template<> EIGEN_STRONG_INLINE int predux_mul<Packet4i>(const Packet4i& a)
+{
+  int32x2_t a_lo, a_hi, prod;
+
+  // Get a_lo = |a1|a2| and a_hi = |a3|a4|
+  a_lo = vget_low_s32(a);
+  a_hi = vget_high_s32(a);
+  // Get the product of a_lo * a_hi -> |a1*a3|a2*a4|
+  prod = vmul_s32(a_lo, a_hi);
+  // Multiply prod with its swapped value |a2*a4|a1*a3|
+  prod = vmul_s32(prod, vrev64_s32(prod));
+
+  return vget_lane_s32(prod, 0);
+}
+
+// min
+template<> EIGEN_STRONG_INLINE float predux_min<Packet4f>(const Packet4f& a)
+{
+  float32x2_t a_lo, a_hi, min;
+
+  a_lo = vget_low_f32(a);
+  a_hi = vget_high_f32(a);
+  min = vpmin_f32(a_lo, a_hi);
+  min = vpmin_f32(min, min);
+
+  return vget_lane_f32(min, 0);
+}
+
+template<> EIGEN_STRONG_INLINE int predux_min<Packet4i>(const Packet4i& a)
+{
+  int32x2_t a_lo, a_hi, min;
+
+  a_lo = vget_low_s32(a);
+  a_hi = vget_high_s32(a);
+  min = vpmin_s32(a_lo, a_hi);
+  min = vpmin_s32(min, min);
+  
+  return vget_lane_s32(min, 0);
+}
+
+// max
+template<> EIGEN_STRONG_INLINE float predux_max<Packet4f>(const Packet4f& a)
+{
+  float32x2_t a_lo, a_hi, max;
+
+  a_lo = vget_low_f32(a);
+  a_hi = vget_high_f32(a);
+  max = vpmax_f32(a_lo, a_hi);
+  max = vpmax_f32(max, max);
+
+  return vget_lane_f32(max, 0);
+}
+
+template<> EIGEN_STRONG_INLINE int predux_max<Packet4i>(const Packet4i& a)
+{
+  int32x2_t a_lo, a_hi, max;
+
+  a_lo = vget_low_s32(a);
+  a_hi = vget_high_s32(a);
+  max = vpmax_s32(a_lo, a_hi);
+  max = vpmax_s32(max, max);
+
+  return vget_lane_s32(max, 0);
+}
+
+// this PALIGN_NEON business is to work around a bug in LLVM Clang 3.0 causing incorrect compilation errors,
+// see bug 347 and this LLVM bug: http://llvm.org/bugs/show_bug.cgi?id=11074
+#define PALIGN_NEON(Offset,Type,Command) \
+template<>\
+struct palign_impl<Offset,Type>\
+{\
+    EIGEN_STRONG_INLINE static void run(Type& first, const Type& second)\
+    {\
+        if (Offset!=0)\
+            first = Command(first, second, Offset);\
+    }\
+};\
+
+PALIGN_NEON(0,Packet4f,vextq_f32)
+PALIGN_NEON(1,Packet4f,vextq_f32)
+PALIGN_NEON(2,Packet4f,vextq_f32)
+PALIGN_NEON(3,Packet4f,vextq_f32)
+PALIGN_NEON(0,Packet4i,vextq_s32)
+PALIGN_NEON(1,Packet4i,vextq_s32)
+PALIGN_NEON(2,Packet4i,vextq_s32)
+PALIGN_NEON(3,Packet4i,vextq_s32)
+    
+#undef PALIGN_NEON
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PACKET_MATH_NEON_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/arch/SSE/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Core/arch/SSE/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/arch/SSE/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Core/arch/SSE/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/arch/SSE/Complex.h b/vendor/eigen-3.2.8/Eigen/src/Core/arch/SSE/Complex.h
new file mode 100644
index 0000000..91bba5e
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/arch/SSE/Complex.h
@@ -0,0 +1,442 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX_SSE_H
+#define EIGEN_COMPLEX_SSE_H
+
+namespace Eigen {
+
+namespace internal {
+
+//---------- float ----------
+struct Packet2cf
+{
+  EIGEN_STRONG_INLINE Packet2cf() {}
+  EIGEN_STRONG_INLINE explicit Packet2cf(const __m128& a) : v(a) {}
+  __m128  v;
+};
+
+template<> struct packet_traits<std::complex<float> >  : default_packet_traits
+{
+  typedef Packet2cf type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size = 2,
+
+    HasAdd    = 1,
+    HasSub    = 1,
+    HasMul    = 1,
+    HasDiv    = 1,
+    HasNegate = 1,
+    HasAbs    = 0,
+    HasAbs2   = 0,
+    HasMin    = 0,
+    HasMax    = 0,
+    HasSetLinear = 0
+  };
+};
+
+template<> struct unpacket_traits<Packet2cf> { typedef std::complex<float> type; enum {size=2}; };
+
+template<> EIGEN_STRONG_INLINE Packet2cf padd<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_add_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf psub<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_sub_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf& a)
+{
+  const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x80000000,0x80000000,0x80000000,0x80000000));
+  return Packet2cf(_mm_xor_ps(a.v,mask));
+}
+template<> EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf& a)
+{
+  const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
+  return Packet2cf(_mm_xor_ps(a.v,mask));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pmul<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  // TODO optimize it for SSE3 and 4
+  #ifdef EIGEN_VECTORIZE_SSE3
+  return Packet2cf(_mm_addsub_ps(_mm_mul_ps(_mm_moveldup_ps(a.v), b.v),
+                                 _mm_mul_ps(_mm_movehdup_ps(a.v),
+                                            vec4f_swizzle1(b.v, 1, 0, 3, 2))));
+//   return Packet2cf(_mm_addsub_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v),
+//                                  _mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
+//                                             vec4f_swizzle1(b.v, 1, 0, 3, 2))));
+  #else
+  const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x80000000,0x00000000,0x80000000,0x00000000));
+  return Packet2cf(_mm_add_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v),
+                              _mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
+                                                    vec4f_swizzle1(b.v, 1, 0, 3, 2)), mask)));
+  #endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pand   <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_and_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf por    <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_or_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pxor   <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_xor_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pandnot<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_andnot_ps(a.v,b.v)); }
+
+template<> EIGEN_STRONG_INLINE Packet2cf pload <Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet2cf(pload<Packet4f>(&numext::real_ref(*from))); }
+template<> EIGEN_STRONG_INLINE Packet2cf ploadu<Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_UNALIGNED_LOAD return Packet2cf(ploadu<Packet4f>(&numext::real_ref(*from))); }
+
+template<> EIGEN_STRONG_INLINE Packet2cf pset1<Packet2cf>(const std::complex<float>&  from)
+{
+  Packet2cf res;
+#if EIGEN_GNUC_AT_MOST(4,2)
+  // Workaround annoying "may be used uninitialized in this function" warning with gcc 4.2
+  res.v = _mm_loadl_pi(_mm_set1_ps(0.0f), reinterpret_cast<const __m64*>(&from));
+#elif EIGEN_GNUC_AT_LEAST(4,6)
+  // Suppress annoying "may be used uninitialized in this function" warning with gcc >= 4.6
+  #pragma GCC diagnostic push
+  #pragma GCC diagnostic ignored "-Wuninitialized"
+  res.v = _mm_loadl_pi(res.v, (const __m64*)&from);
+  #pragma GCC diagnostic pop
+#else
+  res.v = _mm_loadl_pi(res.v, (const __m64*)&from);
+#endif
+  return Packet2cf(_mm_movelh_ps(res.v,res.v));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf ploaddup<Packet2cf>(const std::complex<float>* from) { return pset1<Packet2cf>(*from); }
+
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<float> >(std::complex<float> *   to, const Packet2cf& from) { EIGEN_DEBUG_ALIGNED_STORE pstore(&numext::real_ref(*to), from.v); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<float> >(std::complex<float> *   to, const Packet2cf& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu(&numext::real_ref(*to), from.v); }
+
+template<> EIGEN_STRONG_INLINE void prefetch<std::complex<float> >(const std::complex<float> *   addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+
+template<> EIGEN_STRONG_INLINE std::complex<float>  pfirst<Packet2cf>(const Packet2cf& a)
+{
+  #if EIGEN_GNUC_AT_MOST(4,3)
+  // Workaround gcc 4.2 ICE - this is not performance wise ideal, but who cares...
+  // This workaround also fix invalid code generation with gcc 4.3
+  EIGEN_ALIGN16 std::complex<float> res[2];
+  _mm_store_ps((float*)res, a.v);
+  return res[0];
+  #else
+  std::complex<float> res;
+  _mm_storel_pi((__m64*)&res, a.v);
+  return res;
+  #endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf& a) { return Packet2cf(_mm_castpd_ps(preverse(_mm_castps_pd(a.v)))); }
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux<Packet2cf>(const Packet2cf& a)
+{
+  return pfirst(Packet2cf(_mm_add_ps(a.v, _mm_movehl_ps(a.v,a.v))));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preduxp<Packet2cf>(const Packet2cf* vecs)
+{
+  return Packet2cf(_mm_add_ps(_mm_movelh_ps(vecs[0].v,vecs[1].v), _mm_movehl_ps(vecs[1].v,vecs[0].v)));
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux_mul<Packet2cf>(const Packet2cf& a)
+{
+  return pfirst(pmul(a, Packet2cf(_mm_movehl_ps(a.v,a.v))));
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet2cf>
+{
+  static EIGEN_STRONG_INLINE void run(Packet2cf& first, const Packet2cf& second)
+  {
+    if (Offset==1)
+    {
+      first.v = _mm_movehl_ps(first.v, first.v);
+      first.v = _mm_movelh_ps(first.v, second.v);
+    }
+  }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, false,true>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+  {
+    #ifdef EIGEN_VECTORIZE_SSE3
+    return internal::pmul(a, pconj(b));
+    #else
+    const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
+    return Packet2cf(_mm_add_ps(_mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v), mask),
+                                _mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
+                                           vec4f_swizzle1(b.v, 1, 0, 3, 2))));
+    #endif
+  }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,false>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+  {
+    #ifdef EIGEN_VECTORIZE_SSE3
+    return internal::pmul(pconj(a), b);
+    #else
+    const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
+    return Packet2cf(_mm_add_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v),
+                                _mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
+                                                      vec4f_swizzle1(b.v, 1, 0, 3, 2)), mask)));
+    #endif
+  }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,true>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+  {
+    #ifdef EIGEN_VECTORIZE_SSE3
+    return pconj(internal::pmul(a, b));
+    #else
+    const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
+    return Packet2cf(_mm_sub_ps(_mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v), mask),
+                                _mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
+                                           vec4f_swizzle1(b.v, 1, 0, 3, 2))));
+    #endif
+  }
+};
+
+template<> struct conj_helper<Packet4f, Packet2cf, false,false>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet4f& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(c, pmul(x,y)); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet4f& x, const Packet2cf& y) const
+  { return Packet2cf(Eigen::internal::pmul(x, y.v)); }
+};
+
+template<> struct conj_helper<Packet2cf, Packet4f, false,false>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet4f& y, const Packet2cf& c) const
+  { return padd(c, pmul(x,y)); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& x, const Packet4f& y) const
+  { return Packet2cf(Eigen::internal::pmul(x.v, y)); }
+};
+
+template<> EIGEN_STRONG_INLINE Packet2cf pdiv<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  // TODO optimize it for SSE3 and 4
+  Packet2cf res = conj_helper<Packet2cf,Packet2cf,false,true>().pmul(a,b);
+  __m128 s = _mm_mul_ps(b.v,b.v);
+  return Packet2cf(_mm_div_ps(res.v,_mm_add_ps(s,_mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(s), 0xb1)))));
+}
+
+EIGEN_STRONG_INLINE Packet2cf pcplxflip/*<Packet2cf>*/(const Packet2cf& x)
+{
+  return Packet2cf(vec4f_swizzle1(x.v, 1, 0, 3, 2));
+}
+
+
+//---------- double ----------
+struct Packet1cd
+{
+  EIGEN_STRONG_INLINE Packet1cd() {}
+  EIGEN_STRONG_INLINE explicit Packet1cd(const __m128d& a) : v(a) {}
+  __m128d  v;
+};
+
+template<> struct packet_traits<std::complex<double> >  : default_packet_traits
+{
+  typedef Packet1cd type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 0,
+    size = 1,
+
+    HasAdd    = 1,
+    HasSub    = 1,
+    HasMul    = 1,
+    HasDiv    = 1,
+    HasNegate = 1,
+    HasAbs    = 0,
+    HasAbs2   = 0,
+    HasMin    = 0,
+    HasMax    = 0,
+    HasSetLinear = 0
+  };
+};
+
+template<> struct unpacket_traits<Packet1cd> { typedef std::complex<double> type; enum {size=1}; };
+
+template<> EIGEN_STRONG_INLINE Packet1cd padd<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_add_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd psub<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_sub_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pnegate(const Packet1cd& a) { return Packet1cd(pnegate(a.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pconj(const Packet1cd& a)
+{
+  const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
+  return Packet1cd(_mm_xor_pd(a.v,mask));
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd pmul<Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+  // TODO optimize it for SSE3 and 4
+  #ifdef EIGEN_VECTORIZE_SSE3
+  return Packet1cd(_mm_addsub_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v),
+                                 _mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
+                                            vec2d_swizzle1(b.v, 1, 0))));
+  #else
+  const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x0,0x0,0x80000000,0x0));
+  return Packet1cd(_mm_add_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v),
+                              _mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
+                                                    vec2d_swizzle1(b.v, 1, 0)), mask)));
+  #endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd pand   <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_and_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd por    <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_or_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pxor   <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_xor_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pandnot<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_andnot_pd(a.v,b.v)); }
+
+// FIXME force unaligned load, this is a temporary fix
+template<> EIGEN_STRONG_INLINE Packet1cd pload <Packet1cd>(const std::complex<double>* from)
+{ EIGEN_DEBUG_ALIGNED_LOAD return Packet1cd(pload<Packet2d>((const double*)from)); }
+template<> EIGEN_STRONG_INLINE Packet1cd ploadu<Packet1cd>(const std::complex<double>* from)
+{ EIGEN_DEBUG_UNALIGNED_LOAD return Packet1cd(ploadu<Packet2d>((const double*)from)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pset1<Packet1cd>(const std::complex<double>&  from)
+{ /* here we really have to use unaligned loads :( */ return ploadu<Packet1cd>(&from); }
+
+template<> EIGEN_STRONG_INLINE Packet1cd ploaddup<Packet1cd>(const std::complex<double>* from) { return pset1<Packet1cd>(*from); }
+
+// FIXME force unaligned store, this is a temporary fix
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<double> >(std::complex<double> *   to, const Packet1cd& from) { EIGEN_DEBUG_ALIGNED_STORE pstore((double*)to, from.v); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<double> >(std::complex<double> *   to, const Packet1cd& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu((double*)to, from.v); }
+
+template<> EIGEN_STRONG_INLINE void prefetch<std::complex<double> >(const std::complex<double> *   addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+
+template<> EIGEN_STRONG_INLINE std::complex<double>  pfirst<Packet1cd>(const Packet1cd& a)
+{
+  EIGEN_ALIGN16 double res[2];
+  _mm_store_pd(res, a.v);
+  return std::complex<double>(res[0],res[1]);
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd preverse(const Packet1cd& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE std::complex<double> predux<Packet1cd>(const Packet1cd& a)
+{
+  return pfirst(a);
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd preduxp<Packet1cd>(const Packet1cd* vecs)
+{
+  return vecs[0];
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<double> predux_mul<Packet1cd>(const Packet1cd& a)
+{
+  return pfirst(a);
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet1cd>
+{
+  static EIGEN_STRONG_INLINE void run(Packet1cd& /*first*/, const Packet1cd& /*second*/)
+  {
+    // FIXME is it sure we never have to align a Packet1cd?
+    // Even though a std::complex<double> has 16 bytes, it is not necessarily aligned on a 16 bytes boundary...
+  }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, false,true>
+{
+  EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+  {
+    #ifdef EIGEN_VECTORIZE_SSE3
+    return internal::pmul(a, pconj(b));
+    #else
+    const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
+    return Packet1cd(_mm_add_pd(_mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v), mask),
+                                _mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
+                                           vec2d_swizzle1(b.v, 1, 0))));
+    #endif
+  }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, true,false>
+{
+  EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+  {
+    #ifdef EIGEN_VECTORIZE_SSE3
+    return internal::pmul(pconj(a), b);
+    #else
+    const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
+    return Packet1cd(_mm_add_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v),
+                                _mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
+                                                      vec2d_swizzle1(b.v, 1, 0)), mask)));
+    #endif
+  }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, true,true>
+{
+  EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+  {
+    #ifdef EIGEN_VECTORIZE_SSE3
+    return pconj(internal::pmul(a, b));
+    #else
+    const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
+    return Packet1cd(_mm_sub_pd(_mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v), mask),
+                                _mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
+                                           vec2d_swizzle1(b.v, 1, 0))));
+    #endif
+  }
+};
+
+template<> struct conj_helper<Packet2d, Packet1cd, false,false>
+{
+  EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet2d& x, const Packet1cd& y, const Packet1cd& c) const
+  { return padd(c, pmul(x,y)); }
+
+  EIGEN_STRONG_INLINE Packet1cd pmul(const Packet2d& x, const Packet1cd& y) const
+  { return Packet1cd(Eigen::internal::pmul(x, y.v)); }
+};
+
+template<> struct conj_helper<Packet1cd, Packet2d, false,false>
+{
+  EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet2d& y, const Packet1cd& c) const
+  { return padd(c, pmul(x,y)); }
+
+  EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& x, const Packet2d& y) const
+  { return Packet1cd(Eigen::internal::pmul(x.v, y)); }
+};
+
+template<> EIGEN_STRONG_INLINE Packet1cd pdiv<Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+  // TODO optimize it for SSE3 and 4
+  Packet1cd res = conj_helper<Packet1cd,Packet1cd,false,true>().pmul(a,b);
+  __m128d s = _mm_mul_pd(b.v,b.v);
+  return Packet1cd(_mm_div_pd(res.v, _mm_add_pd(s,_mm_shuffle_pd(s, s, 0x1))));
+}
+
+EIGEN_STRONG_INLINE Packet1cd pcplxflip/*<Packet1cd>*/(const Packet1cd& x)
+{
+  return Packet1cd(preverse(x.v));
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_SSE_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/arch/SSE/MathFunctions.h b/vendor/eigen-3.2.8/Eigen/src/Core/arch/SSE/MathFunctions.h
new file mode 100644
index 0000000..2b07168
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/arch/SSE/MathFunctions.h
@@ -0,0 +1,475 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007 Julien Pommier
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* The sin, cos, exp, and log functions of this file come from
+ * Julien Pommier's sse math library: http://gruntthepeon.free.fr/ssemath/
+ */
+
+#ifndef EIGEN_MATH_FUNCTIONS_SSE_H
+#define EIGEN_MATH_FUNCTIONS_SSE_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f plog<Packet4f>(const Packet4f& _x)
+{
+  Packet4f x = _x;
+  _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
+  _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
+  _EIGEN_DECLARE_CONST_Packet4i(0x7f, 0x7f);
+
+  _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(inv_mant_mask, ~0x7f800000);
+
+  /* the smallest non denormalized float number */
+  _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(min_norm_pos,  0x00800000);
+  _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(minus_inf,     0xff800000);//-1.f/0.f);
+  
+  /* natural logarithm computed for 4 simultaneous float
+    return NaN for x <= 0
+  */
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_SQRTHF, 0.707106781186547524f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p0, 7.0376836292E-2f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p1, - 1.1514610310E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p2, 1.1676998740E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p3, - 1.2420140846E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p4, + 1.4249322787E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p5, - 1.6668057665E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p6, + 2.0000714765E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p7, - 2.4999993993E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p8, + 3.3333331174E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_q1, -2.12194440e-4f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_q2, 0.693359375f);
+
+
+  Packet4i emm0;
+
+  Packet4f invalid_mask = _mm_cmpnge_ps(x, _mm_setzero_ps()); // not greater equal is true if x is NaN
+  Packet4f iszero_mask = _mm_cmpeq_ps(x, _mm_setzero_ps());
+
+  x = pmax(x, p4f_min_norm_pos);  /* cut off denormalized stuff */
+  emm0 = _mm_srli_epi32(_mm_castps_si128(x), 23);
+
+  /* keep only the fractional part */
+  x = _mm_and_ps(x, p4f_inv_mant_mask);
+  x = _mm_or_ps(x, p4f_half);
+
+  emm0 = _mm_sub_epi32(emm0, p4i_0x7f);
+  Packet4f e = padd(_mm_cvtepi32_ps(emm0), p4f_1);
+
+  /* part2:
+     if( x < SQRTHF ) {
+       e -= 1;
+       x = x + x - 1.0;
+     } else { x = x - 1.0; }
+  */
+  Packet4f mask = _mm_cmplt_ps(x, p4f_cephes_SQRTHF);
+  Packet4f tmp = _mm_and_ps(x, mask);
+  x = psub(x, p4f_1);
+  e = psub(e, _mm_and_ps(p4f_1, mask));
+  x = padd(x, tmp);
+
+  Packet4f x2 = pmul(x,x);
+  Packet4f x3 = pmul(x2,x);
+
+  Packet4f y, y1, y2;
+  y  = pmadd(p4f_cephes_log_p0, x, p4f_cephes_log_p1);
+  y1 = pmadd(p4f_cephes_log_p3, x, p4f_cephes_log_p4);
+  y2 = pmadd(p4f_cephes_log_p6, x, p4f_cephes_log_p7);
+  y  = pmadd(y , x, p4f_cephes_log_p2);
+  y1 = pmadd(y1, x, p4f_cephes_log_p5);
+  y2 = pmadd(y2, x, p4f_cephes_log_p8);
+  y = pmadd(y, x3, y1);
+  y = pmadd(y, x3, y2);
+  y = pmul(y, x3);
+
+  y1 = pmul(e, p4f_cephes_log_q1);
+  tmp = pmul(x2, p4f_half);
+  y = padd(y, y1);
+  x = psub(x, tmp);
+  y2 = pmul(e, p4f_cephes_log_q2);
+  x = padd(x, y);
+  x = padd(x, y2);
+  // negative arg will be NAN, 0 will be -INF
+  return _mm_or_ps(_mm_andnot_ps(iszero_mask, _mm_or_ps(x, invalid_mask)),
+                   _mm_and_ps(iszero_mask, p4f_minus_inf));
+}
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f pexp<Packet4f>(const Packet4f& _x)
+{
+  Packet4f x = _x;
+  _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
+  _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
+  _EIGEN_DECLARE_CONST_Packet4i(0x7f, 0x7f);
+
+
+  _EIGEN_DECLARE_CONST_Packet4f(exp_hi,  88.3762626647950f);
+  _EIGEN_DECLARE_CONST_Packet4f(exp_lo, -88.3762626647949f);
+
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_LOG2EF, 1.44269504088896341f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_C1, 0.693359375f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_C2, -2.12194440e-4f);
+
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p0, 1.9875691500E-4f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p1, 1.3981999507E-3f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p2, 8.3334519073E-3f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p3, 4.1665795894E-2f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p4, 1.6666665459E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p5, 5.0000001201E-1f);
+
+  Packet4f tmp, fx;
+  Packet4i emm0;
+
+  // clamp x
+  x = pmax(pmin(x, p4f_exp_hi), p4f_exp_lo);
+
+  /* express exp(x) as exp(g + n*log(2)) */
+  fx = pmadd(x, p4f_cephes_LOG2EF, p4f_half);
+
+#ifdef EIGEN_VECTORIZE_SSE4_1
+  fx = _mm_floor_ps(fx);
+#else
+  emm0 = _mm_cvttps_epi32(fx);
+  tmp  = _mm_cvtepi32_ps(emm0);
+  /* if greater, substract 1 */
+  Packet4f mask = _mm_cmpgt_ps(tmp, fx);
+  mask = _mm_and_ps(mask, p4f_1);
+  fx = psub(tmp, mask);
+#endif
+
+  tmp = pmul(fx, p4f_cephes_exp_C1);
+  Packet4f z = pmul(fx, p4f_cephes_exp_C2);
+  x = psub(x, tmp);
+  x = psub(x, z);
+
+  z = pmul(x,x);
+
+  Packet4f y = p4f_cephes_exp_p0;
+  y = pmadd(y, x, p4f_cephes_exp_p1);
+  y = pmadd(y, x, p4f_cephes_exp_p2);
+  y = pmadd(y, x, p4f_cephes_exp_p3);
+  y = pmadd(y, x, p4f_cephes_exp_p4);
+  y = pmadd(y, x, p4f_cephes_exp_p5);
+  y = pmadd(y, z, x);
+  y = padd(y, p4f_1);
+
+  // build 2^n
+  emm0 = _mm_cvttps_epi32(fx);
+  emm0 = _mm_add_epi32(emm0, p4i_0x7f);
+  emm0 = _mm_slli_epi32(emm0, 23);
+  return pmax(pmul(y, Packet4f(_mm_castsi128_ps(emm0))), _x);
+}
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet2d pexp<Packet2d>(const Packet2d& _x)
+{
+  Packet2d x = _x;
+
+  _EIGEN_DECLARE_CONST_Packet2d(1 , 1.0);
+  _EIGEN_DECLARE_CONST_Packet2d(2 , 2.0);
+  _EIGEN_DECLARE_CONST_Packet2d(half, 0.5);
+
+  _EIGEN_DECLARE_CONST_Packet2d(exp_hi,  709.437);
+  _EIGEN_DECLARE_CONST_Packet2d(exp_lo, -709.436139303);
+
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_LOG2EF, 1.4426950408889634073599);
+
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p0, 1.26177193074810590878e-4);
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p1, 3.02994407707441961300e-2);
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p2, 9.99999999999999999910e-1);
+
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q0, 3.00198505138664455042e-6);
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q1, 2.52448340349684104192e-3);
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q2, 2.27265548208155028766e-1);
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q3, 2.00000000000000000009e0);
+
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_C1, 0.693145751953125);
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_C2, 1.42860682030941723212e-6);
+  static const __m128i p4i_1023_0 = _mm_setr_epi32(1023, 1023, 0, 0);
+
+  Packet2d tmp, fx;
+  Packet4i emm0;
+
+  // clamp x
+  x = pmax(pmin(x, p2d_exp_hi), p2d_exp_lo);
+  /* express exp(x) as exp(g + n*log(2)) */
+  fx = pmadd(p2d_cephes_LOG2EF, x, p2d_half);
+
+#ifdef EIGEN_VECTORIZE_SSE4_1
+  fx = _mm_floor_pd(fx);
+#else
+  emm0 = _mm_cvttpd_epi32(fx);
+  tmp  = _mm_cvtepi32_pd(emm0);
+  /* if greater, substract 1 */
+  Packet2d mask = _mm_cmpgt_pd(tmp, fx);
+  mask = _mm_and_pd(mask, p2d_1);
+  fx = psub(tmp, mask);
+#endif
+
+  tmp = pmul(fx, p2d_cephes_exp_C1);
+  Packet2d z = pmul(fx, p2d_cephes_exp_C2);
+  x = psub(x, tmp);
+  x = psub(x, z);
+
+  Packet2d x2 = pmul(x,x);
+
+  Packet2d px = p2d_cephes_exp_p0;
+  px = pmadd(px, x2, p2d_cephes_exp_p1);
+  px = pmadd(px, x2, p2d_cephes_exp_p2);
+  px = pmul (px, x);
+
+  Packet2d qx = p2d_cephes_exp_q0;
+  qx = pmadd(qx, x2, p2d_cephes_exp_q1);
+  qx = pmadd(qx, x2, p2d_cephes_exp_q2);
+  qx = pmadd(qx, x2, p2d_cephes_exp_q3);
+
+  x = pdiv(px,psub(qx,px));
+  x = pmadd(p2d_2,x,p2d_1);
+
+  // build 2^n
+  emm0 = _mm_cvttpd_epi32(fx);
+  emm0 = _mm_add_epi32(emm0, p4i_1023_0);
+  emm0 = _mm_slli_epi32(emm0, 20);
+  emm0 = _mm_shuffle_epi32(emm0, _MM_SHUFFLE(1,2,0,3));
+  return pmax(pmul(x, Packet2d(_mm_castsi128_pd(emm0))), _x);
+}
+
+/* evaluation of 4 sines at onces, using SSE2 intrinsics.
+
+   The code is the exact rewriting of the cephes sinf function.
+   Precision is excellent as long as x < 8192 (I did not bother to
+   take into account the special handling they have for greater values
+   -- it does not return garbage for arguments over 8192, though, but
+   the extra precision is missing).
+
+   Note that it is such that sinf((float)M_PI) = 8.74e-8, which is the
+   surprising but correct result.
+*/
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f psin<Packet4f>(const Packet4f& _x)
+{
+  Packet4f x = _x;
+  _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
+  _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
+
+  _EIGEN_DECLARE_CONST_Packet4i(1, 1);
+  _EIGEN_DECLARE_CONST_Packet4i(not1, ~1);
+  _EIGEN_DECLARE_CONST_Packet4i(2, 2);
+  _EIGEN_DECLARE_CONST_Packet4i(4, 4);
+
+  _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(sign_mask, 0x80000000);
+
+  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP1,-0.78515625f);
+  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP2, -2.4187564849853515625e-4f);
+  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP3, -3.77489497744594108e-8f);
+  _EIGEN_DECLARE_CONST_Packet4f(sincof_p0, -1.9515295891E-4f);
+  _EIGEN_DECLARE_CONST_Packet4f(sincof_p1,  8.3321608736E-3f);
+  _EIGEN_DECLARE_CONST_Packet4f(sincof_p2, -1.6666654611E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(coscof_p0,  2.443315711809948E-005f);
+  _EIGEN_DECLARE_CONST_Packet4f(coscof_p1, -1.388731625493765E-003f);
+  _EIGEN_DECLARE_CONST_Packet4f(coscof_p2,  4.166664568298827E-002f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_FOPI, 1.27323954473516f); // 4 / M_PI
+
+  Packet4f xmm1, xmm2, xmm3, sign_bit, y;
+
+  Packet4i emm0, emm2;
+  sign_bit = x;
+  /* take the absolute value */
+  x = pabs(x);
+
+  /* take the modulo */
+
+  /* extract the sign bit (upper one) */
+  sign_bit = _mm_and_ps(sign_bit, p4f_sign_mask);
+
+  /* scale by 4/Pi */
+  y = pmul(x, p4f_cephes_FOPI);
+
+  /* store the integer part of y in mm0 */
+  emm2 = _mm_cvttps_epi32(y);
+  /* j=(j+1) & (~1) (see the cephes sources) */
+  emm2 = _mm_add_epi32(emm2, p4i_1);
+  emm2 = _mm_and_si128(emm2, p4i_not1);
+  y = _mm_cvtepi32_ps(emm2);
+  /* get the swap sign flag */
+  emm0 = _mm_and_si128(emm2, p4i_4);
+  emm0 = _mm_slli_epi32(emm0, 29);
+  /* get the polynom selection mask
+     there is one polynom for 0 <= x <= Pi/4
+     and another one for Pi/4<x<=Pi/2
+
+     Both branches will be computed.
+  */
+  emm2 = _mm_and_si128(emm2, p4i_2);
+  emm2 = _mm_cmpeq_epi32(emm2, _mm_setzero_si128());
+
+  Packet4f swap_sign_bit = _mm_castsi128_ps(emm0);
+  Packet4f poly_mask = _mm_castsi128_ps(emm2);
+  sign_bit = _mm_xor_ps(sign_bit, swap_sign_bit);
+
+  /* The magic pass: "Extended precision modular arithmetic"
+     x = ((x - y * DP1) - y * DP2) - y * DP3; */
+  xmm1 = pmul(y, p4f_minus_cephes_DP1);
+  xmm2 = pmul(y, p4f_minus_cephes_DP2);
+  xmm3 = pmul(y, p4f_minus_cephes_DP3);
+  x = padd(x, xmm1);
+  x = padd(x, xmm2);
+  x = padd(x, xmm3);
+
+  /* Evaluate the first polynom  (0 <= x <= Pi/4) */
+  y = p4f_coscof_p0;
+  Packet4f z = _mm_mul_ps(x,x);
+
+  y = pmadd(y, z, p4f_coscof_p1);
+  y = pmadd(y, z, p4f_coscof_p2);
+  y = pmul(y, z);
+  y = pmul(y, z);
+  Packet4f tmp = pmul(z, p4f_half);
+  y = psub(y, tmp);
+  y = padd(y, p4f_1);
+
+  /* Evaluate the second polynom  (Pi/4 <= x <= 0) */
+
+  Packet4f y2 = p4f_sincof_p0;
+  y2 = pmadd(y2, z, p4f_sincof_p1);
+  y2 = pmadd(y2, z, p4f_sincof_p2);
+  y2 = pmul(y2, z);
+  y2 = pmul(y2, x);
+  y2 = padd(y2, x);
+
+  /* select the correct result from the two polynoms */
+  y2 = _mm_and_ps(poly_mask, y2);
+  y = _mm_andnot_ps(poly_mask, y);
+  y = _mm_or_ps(y,y2);
+  /* update the sign */
+  return _mm_xor_ps(y, sign_bit);
+}
+
+/* almost the same as psin */
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f pcos<Packet4f>(const Packet4f& _x)
+{
+  Packet4f x = _x;
+  _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
+  _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
+
+  _EIGEN_DECLARE_CONST_Packet4i(1, 1);
+  _EIGEN_DECLARE_CONST_Packet4i(not1, ~1);
+  _EIGEN_DECLARE_CONST_Packet4i(2, 2);
+  _EIGEN_DECLARE_CONST_Packet4i(4, 4);
+
+  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP1,-0.78515625f);
+  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP2, -2.4187564849853515625e-4f);
+  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP3, -3.77489497744594108e-8f);
+  _EIGEN_DECLARE_CONST_Packet4f(sincof_p0, -1.9515295891E-4f);
+  _EIGEN_DECLARE_CONST_Packet4f(sincof_p1,  8.3321608736E-3f);
+  _EIGEN_DECLARE_CONST_Packet4f(sincof_p2, -1.6666654611E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(coscof_p0,  2.443315711809948E-005f);
+  _EIGEN_DECLARE_CONST_Packet4f(coscof_p1, -1.388731625493765E-003f);
+  _EIGEN_DECLARE_CONST_Packet4f(coscof_p2,  4.166664568298827E-002f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_FOPI, 1.27323954473516f); // 4 / M_PI
+
+  Packet4f xmm1, xmm2, xmm3, y;
+  Packet4i emm0, emm2;
+
+  x = pabs(x);
+
+  /* scale by 4/Pi */
+  y = pmul(x, p4f_cephes_FOPI);
+
+  /* get the integer part of y */
+  emm2 = _mm_cvttps_epi32(y);
+  /* j=(j+1) & (~1) (see the cephes sources) */
+  emm2 = _mm_add_epi32(emm2, p4i_1);
+  emm2 = _mm_and_si128(emm2, p4i_not1);
+  y = _mm_cvtepi32_ps(emm2);
+
+  emm2 = _mm_sub_epi32(emm2, p4i_2);
+
+  /* get the swap sign flag */
+  emm0 = _mm_andnot_si128(emm2, p4i_4);
+  emm0 = _mm_slli_epi32(emm0, 29);
+  /* get the polynom selection mask */
+  emm2 = _mm_and_si128(emm2, p4i_2);
+  emm2 = _mm_cmpeq_epi32(emm2, _mm_setzero_si128());
+
+  Packet4f sign_bit = _mm_castsi128_ps(emm0);
+  Packet4f poly_mask = _mm_castsi128_ps(emm2);
+
+  /* The magic pass: "Extended precision modular arithmetic"
+     x = ((x - y * DP1) - y * DP2) - y * DP3; */
+  xmm1 = pmul(y, p4f_minus_cephes_DP1);
+  xmm2 = pmul(y, p4f_minus_cephes_DP2);
+  xmm3 = pmul(y, p4f_minus_cephes_DP3);
+  x = padd(x, xmm1);
+  x = padd(x, xmm2);
+  x = padd(x, xmm3);
+
+  /* Evaluate the first polynom  (0 <= x <= Pi/4) */
+  y = p4f_coscof_p0;
+  Packet4f z = pmul(x,x);
+
+  y = pmadd(y,z,p4f_coscof_p1);
+  y = pmadd(y,z,p4f_coscof_p2);
+  y = pmul(y, z);
+  y = pmul(y, z);
+  Packet4f tmp = _mm_mul_ps(z, p4f_half);
+  y = psub(y, tmp);
+  y = padd(y, p4f_1);
+
+  /* Evaluate the second polynom  (Pi/4 <= x <= 0) */
+  Packet4f y2 = p4f_sincof_p0;
+  y2 = pmadd(y2, z, p4f_sincof_p1);
+  y2 = pmadd(y2, z, p4f_sincof_p2);
+  y2 = pmul(y2, z);
+  y2 = pmadd(y2, x, x);
+
+  /* select the correct result from the two polynoms */
+  y2 = _mm_and_ps(poly_mask, y2);
+  y  = _mm_andnot_ps(poly_mask, y);
+  y  = _mm_or_ps(y,y2);
+
+  /* update the sign */
+  return _mm_xor_ps(y, sign_bit);
+}
+
+#if EIGEN_FAST_MATH
+
+// This is based on Quake3's fast inverse square root.
+// For detail see here: http://www.beyond3d.com/content/articles/8/
+// It lacks 1 (or 2 bits in some rare cases) of precision, and does not handle negative, +inf, or denormalized numbers correctly.
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f psqrt<Packet4f>(const Packet4f& _x)
+{
+  Packet4f half = pmul(_x, pset1<Packet4f>(.5f));
+
+  /* select only the inverse sqrt of non-zero inputs */
+  Packet4f non_zero_mask = _mm_cmpge_ps(_x, pset1<Packet4f>((std::numeric_limits<float>::min)()));
+  Packet4f x = _mm_and_ps(non_zero_mask, _mm_rsqrt_ps(_x));
+
+  x = pmul(x, psub(pset1<Packet4f>(1.5f), pmul(half, pmul(x,x))));
+  return pmul(_x,x);
+}
+
+#else
+
+template<> EIGEN_STRONG_INLINE Packet4f psqrt<Packet4f>(const Packet4f& x) { return _mm_sqrt_ps(x); }
+
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet2d psqrt<Packet2d>(const Packet2d& x) { return _mm_sqrt_pd(x); }
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATH_FUNCTIONS_SSE_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/arch/SSE/PacketMath.h b/vendor/eigen-3.2.8/Eigen/src/Core/arch/SSE/PacketMath.h
new file mode 100644
index 0000000..bef898b
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/arch/SSE/PacketMath.h
@@ -0,0 +1,613 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PACKET_MATH_SSE_H
+#define EIGEN_PACKET_MATH_SSE_H
+
+namespace Eigen {
+
+namespace internal {
+
+#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8
+#endif
+
+#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
+#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS (2*sizeof(void*))
+#endif
+
+typedef __m128  Packet4f;
+typedef __m128i Packet4i;
+typedef __m128d Packet2d;
+
+template<> struct is_arithmetic<__m128>  { enum { value = true }; };
+template<> struct is_arithmetic<__m128i> { enum { value = true }; };
+template<> struct is_arithmetic<__m128d> { enum { value = true }; };
+
+#define vec4f_swizzle1(v,p,q,r,s) \
+  (_mm_castsi128_ps(_mm_shuffle_epi32( _mm_castps_si128(v), ((s)<<6|(r)<<4|(q)<<2|(p)))))
+
+#define vec4i_swizzle1(v,p,q,r,s) \
+  (_mm_shuffle_epi32( v, ((s)<<6|(r)<<4|(q)<<2|(p))))
+
+#define vec2d_swizzle1(v,p,q) \
+  (_mm_castsi128_pd(_mm_shuffle_epi32( _mm_castpd_si128(v), ((q*2+1)<<6|(q*2)<<4|(p*2+1)<<2|(p*2)))))
+  
+#define vec4f_swizzle2(a,b,p,q,r,s) \
+  (_mm_shuffle_ps( (a), (b), ((s)<<6|(r)<<4|(q)<<2|(p))))
+
+#define vec4i_swizzle2(a,b,p,q,r,s) \
+  (_mm_castps_si128( (_mm_shuffle_ps( _mm_castsi128_ps(a), _mm_castsi128_ps(b), ((s)<<6|(r)<<4|(q)<<2|(p))))))
+
+#define _EIGEN_DECLARE_CONST_Packet4f(NAME,X) \
+  const Packet4f p4f_##NAME = pset1<Packet4f>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet2d(NAME,X) \
+  const Packet2d p2d_##NAME = pset1<Packet2d>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(NAME,X) \
+  const Packet4f p4f_##NAME = _mm_castsi128_ps(pset1<Packet4i>(X))
+
+#define _EIGEN_DECLARE_CONST_Packet4i(NAME,X) \
+  const Packet4i p4i_##NAME = pset1<Packet4i>(X)
+
+
+template<> struct packet_traits<float>  : default_packet_traits
+{
+  typedef Packet4f type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size=4,
+
+    HasDiv  = 1,
+    HasSin  = EIGEN_FAST_MATH,
+    HasCos  = EIGEN_FAST_MATH,
+    HasLog  = 1,
+    HasExp  = 1,
+    HasSqrt = 1
+  };
+};
+template<> struct packet_traits<double> : default_packet_traits
+{
+  typedef Packet2d type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size=2,
+
+    HasDiv  = 1,
+    HasExp  = 1,
+    HasSqrt = 1
+  };
+};
+template<> struct packet_traits<int>    : default_packet_traits
+{
+  typedef Packet4i type;
+  enum {
+    // FIXME check the Has*
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size=4
+  };
+};
+
+template<> struct unpacket_traits<Packet4f> { typedef float  type; enum {size=4}; };
+template<> struct unpacket_traits<Packet2d> { typedef double type; enum {size=2}; };
+template<> struct unpacket_traits<Packet4i> { typedef int    type; enum {size=4}; };
+
+#if defined(_MSC_VER) && (_MSC_VER==1500)
+// Workaround MSVC 9 internal compiler error.
+// TODO: It has been detected with win64 builds (amd64), so let's check whether it also happens in 32bits+SSE mode
+// TODO: let's check whether there does not exist a better fix, like adding a pset0() function. (it crashed on pset1(0)).
+template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float&  from) { return _mm_set_ps(from,from,from,from); }
+template<> EIGEN_STRONG_INLINE Packet2d pset1<Packet2d>(const double& from) { return _mm_set_pd(from,from); }
+template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int&    from) { return _mm_set_epi32(from,from,from,from); }
+#else
+template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float&  from) { return _mm_set1_ps(from); }
+template<> EIGEN_STRONG_INLINE Packet2d pset1<Packet2d>(const double& from) { return _mm_set1_pd(from); }
+template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int&    from) { return _mm_set1_epi32(from); }
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet4f plset<float>(const float& a) { return _mm_add_ps(pset1<Packet4f>(a), _mm_set_ps(3,2,1,0)); }
+template<> EIGEN_STRONG_INLINE Packet2d plset<double>(const double& a) { return _mm_add_pd(pset1<Packet2d>(a),_mm_set_pd(1,0)); }
+template<> EIGEN_STRONG_INLINE Packet4i plset<int>(const int& a) { return _mm_add_epi32(pset1<Packet4i>(a),_mm_set_epi32(3,2,1,0)); }
+
+template<> EIGEN_STRONG_INLINE Packet4f padd<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_add_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d padd<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_add_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i padd<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_add_epi32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f psub<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_sub_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d psub<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_sub_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i psub<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_sub_epi32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pnegate(const Packet4f& a)
+{
+  const Packet4f mask = _mm_castsi128_ps(_mm_setr_epi32(0x80000000,0x80000000,0x80000000,0x80000000));
+  return _mm_xor_ps(a,mask);
+}
+template<> EIGEN_STRONG_INLINE Packet2d pnegate(const Packet2d& a)
+{
+  const Packet2d mask = _mm_castsi128_pd(_mm_setr_epi32(0x0,0x80000000,0x0,0x80000000));
+  return _mm_xor_pd(a,mask);
+}
+template<> EIGEN_STRONG_INLINE Packet4i pnegate(const Packet4i& a)
+{
+  return psub(_mm_setr_epi32(0,0,0,0), a);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pconj(const Packet4f& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet2d pconj(const Packet2d& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet4i pconj(const Packet4i& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmul<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_mul_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pmul<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_mul_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmul<Packet4i>(const Packet4i& a, const Packet4i& b)
+{
+#ifdef EIGEN_VECTORIZE_SSE4_1
+  return _mm_mullo_epi32(a,b);
+#else
+  // this version is slightly faster than 4 scalar products
+  return vec4i_swizzle1(
+            vec4i_swizzle2(
+              _mm_mul_epu32(a,b),
+              _mm_mul_epu32(vec4i_swizzle1(a,1,0,3,2),
+                            vec4i_swizzle1(b,1,0,3,2)),
+              0,2,0,2),
+            0,2,1,3);
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pdiv<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_div_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pdiv<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_div_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pdiv<Packet4i>(const Packet4i& /*a*/, const Packet4i& /*b*/)
+{ eigen_assert(false && "packet integer division are not supported by SSE");
+  return pset1<Packet4i>(0);
+}
+
+// for some weird raisons, it has to be overloaded for packet of integers
+template<> EIGEN_STRONG_INLINE Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) { return padd(pmul(a,b), c); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmin<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_min_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pmin<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_min_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmin<Packet4i>(const Packet4i& a, const Packet4i& b)
+{
+#ifdef EIGEN_VECTORIZE_SSE4_1
+  return _mm_min_epi32(a,b);
+#else
+  // after some bench, this version *is* faster than a scalar implementation
+  Packet4i mask = _mm_cmplt_epi32(a,b);
+  return _mm_or_si128(_mm_and_si128(mask,a),_mm_andnot_si128(mask,b));
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pmax<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_max_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pmax<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_max_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmax<Packet4i>(const Packet4i& a, const Packet4i& b)
+{
+#ifdef EIGEN_VECTORIZE_SSE4_1
+  return _mm_max_epi32(a,b);
+#else
+  // after some bench, this version *is* faster than a scalar implementation
+  Packet4i mask = _mm_cmpgt_epi32(a,b);
+  return _mm_or_si128(_mm_and_si128(mask,a),_mm_andnot_si128(mask,b));
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pand<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_and_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pand<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_and_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pand<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_and_si128(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f por<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_or_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d por<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_or_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i por<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_or_si128(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pxor<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_xor_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pxor<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_xor_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pxor<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_xor_si128(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pandnot<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_andnot_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pandnot<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_andnot_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pandnot<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_andnot_si128(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pload<Packet4f>(const float*   from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm_load_ps(from); }
+template<> EIGEN_STRONG_INLINE Packet2d pload<Packet2d>(const double*  from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm_load_pd(from); }
+template<> EIGEN_STRONG_INLINE Packet4i pload<Packet4i>(const int*     from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm_load_si128(reinterpret_cast<const Packet4i*>(from)); }
+
+#if defined(_MSC_VER)
+  template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float*  from) {
+    EIGEN_DEBUG_UNALIGNED_LOAD
+    #if (_MSC_VER==1600)
+    // NOTE Some version of MSVC10 generates bad code when using _mm_loadu_ps
+    // (i.e., it does not generate an unaligned load!!
+    // TODO On most architectures this version should also be faster than a single _mm_loadu_ps
+    // so we could also enable it for MSVC08 but first we have to make this later does not generate crap when doing so...
+    __m128 res = _mm_loadl_pi(_mm_set1_ps(0.0f), (const __m64*)(from));
+    res = _mm_loadh_pi(res, (const __m64*)(from+2));
+    return res;
+    #else
+    return _mm_loadu_ps(from);
+    #endif
+  }
+#else
+// NOTE: with the code below, MSVC's compiler crashes!
+
+template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float* from)
+{
+  EIGEN_DEBUG_UNALIGNED_LOAD
+  return _mm_loadu_ps(from);
+}
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet2d ploadu<Packet2d>(const double* from)
+{
+  EIGEN_DEBUG_UNALIGNED_LOAD
+  return _mm_loadu_pd(from);
+}
+template<> EIGEN_STRONG_INLINE Packet4i ploadu<Packet4i>(const int* from)
+{
+  EIGEN_DEBUG_UNALIGNED_LOAD
+  return _mm_loadu_si128(reinterpret_cast<const __m128i*>(from));
+}
+
+
+template<> EIGEN_STRONG_INLINE Packet4f ploaddup<Packet4f>(const float*   from)
+{
+  return vec4f_swizzle1(_mm_castpd_ps(_mm_load_sd(reinterpret_cast<const double*>(from))), 0, 0, 1, 1);
+}
+template<> EIGEN_STRONG_INLINE Packet2d ploaddup<Packet2d>(const double*  from)
+{ return pset1<Packet2d>(from[0]); }
+template<> EIGEN_STRONG_INLINE Packet4i ploaddup<Packet4i>(const int*     from)
+{
+  Packet4i tmp;
+  tmp = _mm_loadl_epi64(reinterpret_cast<const Packet4i*>(from));
+  return vec4i_swizzle1(tmp, 0, 0, 1, 1);
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<float>(float*   to, const Packet4f& from) { EIGEN_DEBUG_ALIGNED_STORE _mm_store_ps(to, from); }
+template<> EIGEN_STRONG_INLINE void pstore<double>(double* to, const Packet2d& from) { EIGEN_DEBUG_ALIGNED_STORE _mm_store_pd(to, from); }
+template<> EIGEN_STRONG_INLINE void pstore<int>(int*       to, const Packet4i& from) { EIGEN_DEBUG_ALIGNED_STORE _mm_store_si128(reinterpret_cast<Packet4i*>(to), from); }
+
+template<> EIGEN_STRONG_INLINE void pstoreu<double>(double* to, const Packet2d& from) {
+  EIGEN_DEBUG_UNALIGNED_STORE
+  _mm_storel_pd((to), from);
+  _mm_storeh_pd((to+1), from);
+}
+template<> EIGEN_STRONG_INLINE void pstoreu<float>(float*  to, const Packet4f& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu(reinterpret_cast<double*>(to), _mm_castps_pd(from)); }
+template<> EIGEN_STRONG_INLINE void pstoreu<int>(int*      to, const Packet4i& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu(reinterpret_cast<double*>(to), _mm_castsi128_pd(from)); }
+
+// some compilers might be tempted to perform multiple moves instead of using a vector path.
+template<> EIGEN_STRONG_INLINE void pstore1<Packet4f>(float* to, const float& a)
+{
+  Packet4f pa = _mm_set_ss(a);
+  pstore(to, vec4f_swizzle1(pa,0,0,0,0));
+}
+// some compilers might be tempted to perform multiple moves instead of using a vector path.
+template<> EIGEN_STRONG_INLINE void pstore1<Packet2d>(double* to, const double& a)
+{
+  Packet2d pa = _mm_set_sd(a);
+  pstore(to, vec2d_swizzle1(pa,0,0));
+}
+
+template<> EIGEN_STRONG_INLINE void prefetch<float>(const float*   addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+template<> EIGEN_STRONG_INLINE void prefetch<double>(const double* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+template<> EIGEN_STRONG_INLINE void prefetch<int>(const int*       addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+
+#if defined(_MSC_VER) && defined(_WIN64) && !defined(__INTEL_COMPILER)
+// The temporary variable fixes an internal compilation error in vs <= 2008 and a wrong-result bug in vs 2010
+// Direct of the struct members fixed bug #62.
+template<> EIGEN_STRONG_INLINE float  pfirst<Packet4f>(const Packet4f& a) { return a.m128_f32[0]; }
+template<> EIGEN_STRONG_INLINE double pfirst<Packet2d>(const Packet2d& a) { return a.m128d_f64[0]; }
+template<> EIGEN_STRONG_INLINE int    pfirst<Packet4i>(const Packet4i& a) { int x = _mm_cvtsi128_si32(a); return x; }
+#elif defined(_MSC_VER) && !defined(__INTEL_COMPILER)
+// The temporary variable fixes an internal compilation error in vs <= 2008 and a wrong-result bug in vs 2010
+template<> EIGEN_STRONG_INLINE float  pfirst<Packet4f>(const Packet4f& a) { float x = _mm_cvtss_f32(a); return x; }
+template<> EIGEN_STRONG_INLINE double pfirst<Packet2d>(const Packet2d& a) { double x = _mm_cvtsd_f64(a); return x; }
+template<> EIGEN_STRONG_INLINE int    pfirst<Packet4i>(const Packet4i& a) { int x = _mm_cvtsi128_si32(a); return x; }
+#else
+template<> EIGEN_STRONG_INLINE float  pfirst<Packet4f>(const Packet4f& a) { return _mm_cvtss_f32(a); }
+template<> EIGEN_STRONG_INLINE double pfirst<Packet2d>(const Packet2d& a) { return _mm_cvtsd_f64(a); }
+template<> EIGEN_STRONG_INLINE int    pfirst<Packet4i>(const Packet4i& a) { return _mm_cvtsi128_si32(a); }
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet4f preverse(const Packet4f& a)
+{ return _mm_shuffle_ps(a,a,0x1B); }
+template<> EIGEN_STRONG_INLINE Packet2d preverse(const Packet2d& a)
+{ return _mm_shuffle_pd(a,a,0x1); }
+template<> EIGEN_STRONG_INLINE Packet4i preverse(const Packet4i& a)
+{ return _mm_shuffle_epi32(a,0x1B); }
+
+
+template<> EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f& a)
+{
+  const Packet4f mask = _mm_castsi128_ps(_mm_setr_epi32(0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF));
+  return _mm_and_ps(a,mask);
+}
+template<> EIGEN_STRONG_INLINE Packet2d pabs(const Packet2d& a)
+{
+  const Packet2d mask = _mm_castsi128_pd(_mm_setr_epi32(0xFFFFFFFF,0x7FFFFFFF,0xFFFFFFFF,0x7FFFFFFF));
+  return _mm_and_pd(a,mask);
+}
+template<> EIGEN_STRONG_INLINE Packet4i pabs(const Packet4i& a)
+{
+  #ifdef EIGEN_VECTORIZE_SSSE3
+  return _mm_abs_epi32(a);
+  #else
+  Packet4i aux = _mm_srai_epi32(a,31);
+  return _mm_sub_epi32(_mm_xor_si128(a,aux),aux);
+  #endif
+}
+
+EIGEN_STRONG_INLINE void punpackp(Packet4f* vecs)
+{
+  vecs[1] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0x55));
+  vecs[2] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0xAA));
+  vecs[3] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0xFF));
+  vecs[0] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0x00));
+}
+
+#ifdef EIGEN_VECTORIZE_SSE3
+// TODO implement SSE2 versions as well as integer versions
+template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
+{
+  return _mm_hadd_ps(_mm_hadd_ps(vecs[0], vecs[1]),_mm_hadd_ps(vecs[2], vecs[3]));
+}
+template<> EIGEN_STRONG_INLINE Packet2d preduxp<Packet2d>(const Packet2d* vecs)
+{
+  return _mm_hadd_pd(vecs[0], vecs[1]);
+}
+// SSSE3 version:
+// EIGEN_STRONG_INLINE Packet4i preduxp(const Packet4i* vecs)
+// {
+//   return _mm_hadd_epi32(_mm_hadd_epi32(vecs[0], vecs[1]),_mm_hadd_epi32(vecs[2], vecs[3]));
+// }
+
+template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
+{
+  Packet4f tmp0 = _mm_hadd_ps(a,a);
+  return pfirst(_mm_hadd_ps(tmp0, tmp0));
+}
+
+template<> EIGEN_STRONG_INLINE double predux<Packet2d>(const Packet2d& a) { return pfirst(_mm_hadd_pd(a, a)); }
+
+// SSSE3 version:
+// EIGEN_STRONG_INLINE float predux(const Packet4i& a)
+// {
+//   Packet4i tmp0 = _mm_hadd_epi32(a,a);
+//   return pfirst(_mm_hadd_epi32(tmp0, tmp0));
+// }
+#else
+// SSE2 versions
+template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
+{
+  Packet4f tmp = _mm_add_ps(a, _mm_movehl_ps(a,a));
+  return pfirst(_mm_add_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
+}
+template<> EIGEN_STRONG_INLINE double predux<Packet2d>(const Packet2d& a)
+{
+  return pfirst(_mm_add_sd(a, _mm_unpackhi_pd(a,a)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
+{
+  Packet4f tmp0, tmp1, tmp2;
+  tmp0 = _mm_unpacklo_ps(vecs[0], vecs[1]);
+  tmp1 = _mm_unpackhi_ps(vecs[0], vecs[1]);
+  tmp2 = _mm_unpackhi_ps(vecs[2], vecs[3]);
+  tmp0 = _mm_add_ps(tmp0, tmp1);
+  tmp1 = _mm_unpacklo_ps(vecs[2], vecs[3]);
+  tmp1 = _mm_add_ps(tmp1, tmp2);
+  tmp2 = _mm_movehl_ps(tmp1, tmp0);
+  tmp0 = _mm_movelh_ps(tmp0, tmp1);
+  return _mm_add_ps(tmp0, tmp2);
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d preduxp<Packet2d>(const Packet2d* vecs)
+{
+  return _mm_add_pd(_mm_unpacklo_pd(vecs[0], vecs[1]), _mm_unpackhi_pd(vecs[0], vecs[1]));
+}
+#endif  // SSE3
+
+template<> EIGEN_STRONG_INLINE int predux<Packet4i>(const Packet4i& a)
+{
+  Packet4i tmp = _mm_add_epi32(a, _mm_unpackhi_epi64(a,a));
+  return pfirst(tmp) + pfirst(_mm_shuffle_epi32(tmp, 1));
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i preduxp<Packet4i>(const Packet4i* vecs)
+{
+  Packet4i tmp0, tmp1, tmp2;
+  tmp0 = _mm_unpacklo_epi32(vecs[0], vecs[1]);
+  tmp1 = _mm_unpackhi_epi32(vecs[0], vecs[1]);
+  tmp2 = _mm_unpackhi_epi32(vecs[2], vecs[3]);
+  tmp0 = _mm_add_epi32(tmp0, tmp1);
+  tmp1 = _mm_unpacklo_epi32(vecs[2], vecs[3]);
+  tmp1 = _mm_add_epi32(tmp1, tmp2);
+  tmp2 = _mm_unpacklo_epi64(tmp0, tmp1);
+  tmp0 = _mm_unpackhi_epi64(tmp0, tmp1);
+  return _mm_add_epi32(tmp0, tmp2);
+}
+
+// Other reduction functions:
+
+// mul
+template<> EIGEN_STRONG_INLINE float predux_mul<Packet4f>(const Packet4f& a)
+{
+  Packet4f tmp = _mm_mul_ps(a, _mm_movehl_ps(a,a));
+  return pfirst(_mm_mul_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
+}
+template<> EIGEN_STRONG_INLINE double predux_mul<Packet2d>(const Packet2d& a)
+{
+  return pfirst(_mm_mul_sd(a, _mm_unpackhi_pd(a,a)));
+}
+template<> EIGEN_STRONG_INLINE int predux_mul<Packet4i>(const Packet4i& a)
+{
+  // after some experiments, it is seems this is the fastest way to implement it
+  // for GCC (eg., reusing pmul is very slow !)
+  // TODO try to call _mm_mul_epu32 directly
+  EIGEN_ALIGN16 int aux[4];
+  pstore(aux, a);
+  return  (aux[0] * aux[1]) * (aux[2] * aux[3]);;
+}
+
+// min
+template<> EIGEN_STRONG_INLINE float predux_min<Packet4f>(const Packet4f& a)
+{
+  Packet4f tmp = _mm_min_ps(a, _mm_movehl_ps(a,a));
+  return pfirst(_mm_min_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
+}
+template<> EIGEN_STRONG_INLINE double predux_min<Packet2d>(const Packet2d& a)
+{
+  return pfirst(_mm_min_sd(a, _mm_unpackhi_pd(a,a)));
+}
+template<> EIGEN_STRONG_INLINE int predux_min<Packet4i>(const Packet4i& a)
+{
+  // after some experiments, it is seems this is the fastest way to implement it
+  // for GCC (eg., it does not like using std::min after the pstore !!)
+  EIGEN_ALIGN16 int aux[4];
+  pstore(aux, a);
+  int aux0 = aux[0]<aux[1] ? aux[0] : aux[1];
+  int aux2 = aux[2]<aux[3] ? aux[2] : aux[3];
+  return aux0<aux2 ? aux0 : aux2;
+}
+
+// max
+template<> EIGEN_STRONG_INLINE float predux_max<Packet4f>(const Packet4f& a)
+{
+  Packet4f tmp = _mm_max_ps(a, _mm_movehl_ps(a,a));
+  return pfirst(_mm_max_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
+}
+template<> EIGEN_STRONG_INLINE double predux_max<Packet2d>(const Packet2d& a)
+{
+  return pfirst(_mm_max_sd(a, _mm_unpackhi_pd(a,a)));
+}
+template<> EIGEN_STRONG_INLINE int predux_max<Packet4i>(const Packet4i& a)
+{
+  // after some experiments, it is seems this is the fastest way to implement it
+  // for GCC (eg., it does not like using std::min after the pstore !!)
+  EIGEN_ALIGN16 int aux[4];
+  pstore(aux, a);
+  int aux0 = aux[0]>aux[1] ? aux[0] : aux[1];
+  int aux2 = aux[2]>aux[3] ? aux[2] : aux[3];
+  return aux0>aux2 ? aux0 : aux2;
+}
+
+#if (defined __GNUC__)
+// template <> EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f&  a, const Packet4f&  b, const Packet4f&  c)
+// {
+//   Packet4f res = b;
+//   asm("mulps %[a], %[b] \n\taddps %[c], %[b]" : [b] "+x" (res) : [a] "x" (a), [c] "x" (c));
+//   return res;
+// }
+// EIGEN_STRONG_INLINE Packet4i _mm_alignr_epi8(const Packet4i&  a, const Packet4i&  b, const int i)
+// {
+//   Packet4i res = a;
+//   asm("palignr %[i], %[a], %[b] " : [b] "+x" (res) : [a] "x" (a), [i] "i" (i));
+//   return res;
+// }
+#endif
+
+#ifdef EIGEN_VECTORIZE_SSSE3
+// SSSE3 versions
+template<int Offset>
+struct palign_impl<Offset,Packet4f>
+{
+  static EIGEN_STRONG_INLINE void run(Packet4f& first, const Packet4f& second)
+  {
+    if (Offset!=0)
+      first = _mm_castsi128_ps(_mm_alignr_epi8(_mm_castps_si128(second), _mm_castps_si128(first), Offset*4));
+  }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet4i>
+{
+  static EIGEN_STRONG_INLINE void run(Packet4i& first, const Packet4i& second)
+  {
+    if (Offset!=0)
+      first = _mm_alignr_epi8(second,first, Offset*4);
+  }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet2d>
+{
+  static EIGEN_STRONG_INLINE void run(Packet2d& first, const Packet2d& second)
+  {
+    if (Offset==1)
+      first = _mm_castsi128_pd(_mm_alignr_epi8(_mm_castpd_si128(second), _mm_castpd_si128(first), 8));
+  }
+};
+#else
+// SSE2 versions
+template<int Offset>
+struct palign_impl<Offset,Packet4f>
+{
+  static EIGEN_STRONG_INLINE void run(Packet4f& first, const Packet4f& second)
+  {
+    if (Offset==1)
+    {
+      first = _mm_move_ss(first,second);
+      first = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(first),0x39));
+    }
+    else if (Offset==2)
+    {
+      first = _mm_movehl_ps(first,first);
+      first = _mm_movelh_ps(first,second);
+    }
+    else if (Offset==3)
+    {
+      first = _mm_move_ss(first,second);
+      first = _mm_shuffle_ps(first,second,0x93);
+    }
+  }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet4i>
+{
+  static EIGEN_STRONG_INLINE void run(Packet4i& first, const Packet4i& second)
+  {
+    if (Offset==1)
+    {
+      first = _mm_castps_si128(_mm_move_ss(_mm_castsi128_ps(first),_mm_castsi128_ps(second)));
+      first = _mm_shuffle_epi32(first,0x39);
+    }
+    else if (Offset==2)
+    {
+      first = _mm_castps_si128(_mm_movehl_ps(_mm_castsi128_ps(first),_mm_castsi128_ps(first)));
+      first = _mm_castps_si128(_mm_movelh_ps(_mm_castsi128_ps(first),_mm_castsi128_ps(second)));
+    }
+    else if (Offset==3)
+    {
+      first = _mm_castps_si128(_mm_move_ss(_mm_castsi128_ps(first),_mm_castsi128_ps(second)));
+      first = _mm_castps_si128(_mm_shuffle_ps(_mm_castsi128_ps(first),_mm_castsi128_ps(second),0x93));
+    }
+  }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet2d>
+{
+  static EIGEN_STRONG_INLINE void run(Packet2d& first, const Packet2d& second)
+  {
+    if (Offset==1)
+    {
+      first = _mm_castps_pd(_mm_movehl_ps(_mm_castpd_ps(first),_mm_castpd_ps(first)));
+      first = _mm_castps_pd(_mm_movelh_ps(_mm_castpd_ps(first),_mm_castpd_ps(second)));
+    }
+  }
+};
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PACKET_MATH_SSE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Core/products/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/products/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Core/products/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/products/CoeffBasedProduct.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/CoeffBasedProduct.h
new file mode 100644
index 0000000..2a9d65b
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/products/CoeffBasedProduct.h
@@ -0,0 +1,476 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COEFFBASED_PRODUCT_H
+#define EIGEN_COEFFBASED_PRODUCT_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/*********************************************************************************
+*  Coefficient based product implementation.
+*  It is designed for the following use cases:
+*  - small fixed sizes
+*  - lazy products
+*********************************************************************************/
+
+/* Since the all the dimensions of the product are small, here we can rely
+ * on the generic Assign mechanism to evaluate the product per coeff (or packet).
+ *
+ * Note that here the inner-loops should always be unrolled.
+ */
+
+template<int Traversal, int UnrollingIndex, typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl;
+
+template<int StorageOrder, int UnrollingIndex, typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl;
+
+template<typename LhsNested, typename RhsNested, int NestingFlags>
+struct traits<CoeffBasedProduct<LhsNested,RhsNested,NestingFlags> >
+{
+  typedef MatrixXpr XprKind;
+  typedef typename remove_all<LhsNested>::type _LhsNested;
+  typedef typename remove_all<RhsNested>::type _RhsNested;
+  typedef typename scalar_product_traits<typename _LhsNested::Scalar, typename _RhsNested::Scalar>::ReturnType Scalar;
+  typedef typename promote_storage_type<typename traits<_LhsNested>::StorageKind,
+                                           typename traits<_RhsNested>::StorageKind>::ret StorageKind;
+  typedef typename promote_index_type<typename traits<_LhsNested>::Index,
+                                         typename traits<_RhsNested>::Index>::type Index;
+
+  enum {
+      LhsCoeffReadCost = _LhsNested::CoeffReadCost,
+      RhsCoeffReadCost = _RhsNested::CoeffReadCost,
+      LhsFlags = _LhsNested::Flags,
+      RhsFlags = _RhsNested::Flags,
+
+      RowsAtCompileTime = _LhsNested::RowsAtCompileTime,
+      ColsAtCompileTime = _RhsNested::ColsAtCompileTime,
+      InnerSize = EIGEN_SIZE_MIN_PREFER_FIXED(_LhsNested::ColsAtCompileTime, _RhsNested::RowsAtCompileTime),
+
+      MaxRowsAtCompileTime = _LhsNested::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = _RhsNested::MaxColsAtCompileTime,
+
+      LhsRowMajor = LhsFlags & RowMajorBit,
+      RhsRowMajor = RhsFlags & RowMajorBit,
+
+      SameType = is_same<typename _LhsNested::Scalar,typename _RhsNested::Scalar>::value,
+
+      CanVectorizeRhs = RhsRowMajor && (RhsFlags & PacketAccessBit)
+                      && (ColsAtCompileTime == Dynamic
+                          || ( (ColsAtCompileTime % packet_traits<Scalar>::size) == 0
+                              && (RhsFlags&AlignedBit)
+                             )
+                         ),
+
+      CanVectorizeLhs = (!LhsRowMajor) && (LhsFlags & PacketAccessBit)
+                      && (RowsAtCompileTime == Dynamic
+                          || ( (RowsAtCompileTime % packet_traits<Scalar>::size) == 0
+                              && (LhsFlags&AlignedBit)
+                             )
+                         ),
+
+      EvalToRowMajor = (MaxRowsAtCompileTime==1&&MaxColsAtCompileTime!=1) ? 1
+                     : (MaxColsAtCompileTime==1&&MaxRowsAtCompileTime!=1) ? 0
+                     : (RhsRowMajor && !CanVectorizeLhs),
+
+      Flags = ((unsigned int)(LhsFlags | RhsFlags) & HereditaryBits & ~RowMajorBit)
+            | (EvalToRowMajor ? RowMajorBit : 0)
+            | NestingFlags
+            | (LhsFlags & RhsFlags & AlignedBit)
+            // TODO enable vectorization for mixed types
+            | (SameType && (CanVectorizeLhs || CanVectorizeRhs) ? PacketAccessBit : 0),
+
+      CoeffReadCost = InnerSize == Dynamic ? Dynamic
+                    : InnerSize == 0 ? 0
+                    : InnerSize * (NumTraits<Scalar>::MulCost + LhsCoeffReadCost + RhsCoeffReadCost)
+                      + (InnerSize - 1) * NumTraits<Scalar>::AddCost,
+
+      /* CanVectorizeInner deserves special explanation. It does not affect the product flags. It is not used outside
+      * of Product. If the Product itself is not a packet-access expression, there is still a chance that the inner
+      * loop of the product might be vectorized. This is the meaning of CanVectorizeInner. Since it doesn't affect
+      * the Flags, it is safe to make this value depend on ActualPacketAccessBit, that doesn't affect the ABI.
+      */
+      CanVectorizeInner =    SameType
+                          && LhsRowMajor
+                          && (!RhsRowMajor)
+                          && (LhsFlags & RhsFlags & ActualPacketAccessBit)
+                          && (LhsFlags & RhsFlags & AlignedBit)
+                          && (InnerSize % packet_traits<Scalar>::size == 0)
+    };
+};
+
+} // end namespace internal
+
+template<typename LhsNested, typename RhsNested, int NestingFlags>
+class CoeffBasedProduct
+  : internal::no_assignment_operator,
+    public MatrixBase<CoeffBasedProduct<LhsNested, RhsNested, NestingFlags> >
+{
+  public:
+
+    typedef MatrixBase<CoeffBasedProduct> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(CoeffBasedProduct)
+    typedef typename Base::PlainObject PlainObject;
+
+  private:
+
+    typedef typename internal::traits<CoeffBasedProduct>::_LhsNested _LhsNested;
+    typedef typename internal::traits<CoeffBasedProduct>::_RhsNested _RhsNested;
+
+    enum {
+      PacketSize = internal::packet_traits<Scalar>::size,
+      InnerSize  = internal::traits<CoeffBasedProduct>::InnerSize,
+      Unroll = CoeffReadCost != Dynamic && CoeffReadCost <= EIGEN_UNROLLING_LIMIT,
+      CanVectorizeInner = internal::traits<CoeffBasedProduct>::CanVectorizeInner
+    };
+
+    typedef internal::product_coeff_impl<CanVectorizeInner ? InnerVectorizedTraversal : DefaultTraversal,
+                                   Unroll ? InnerSize : Dynamic,
+                                   _LhsNested, _RhsNested, Scalar> ScalarCoeffImpl;
+
+    typedef CoeffBasedProduct<LhsNested,RhsNested,NestByRefBit> LazyCoeffBasedProductType;
+
+  public:
+
+    inline CoeffBasedProduct(const CoeffBasedProduct& other)
+      : Base(), m_lhs(other.m_lhs), m_rhs(other.m_rhs)
+    {}
+
+    template<typename Lhs, typename Rhs>
+    inline CoeffBasedProduct(const Lhs& lhs, const Rhs& rhs)
+      : m_lhs(lhs), m_rhs(rhs)
+    {
+      // we don't allow taking products of matrices of different real types, as that wouldn't be vectorizable.
+      // We still allow to mix T and complex<T>.
+      EIGEN_STATIC_ASSERT((internal::scalar_product_traits<typename Lhs::RealScalar, typename Rhs::RealScalar>::Defined),
+        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+      eigen_assert(lhs.cols() == rhs.rows()
+        && "invalid matrix product"
+        && "if you wanted a coeff-wise or a dot product use the respective explicit functions");
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return m_lhs.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return m_rhs.cols(); }
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index row, Index col) const
+    {
+      Scalar res;
+      ScalarCoeffImpl::run(row, col, m_lhs, m_rhs, res);
+      return res;
+    }
+
+    /* Allow index-based non-packet access. It is impossible though to allow index-based packed access,
+     * which is why we don't set the LinearAccessBit.
+     */
+    EIGEN_STRONG_INLINE const Scalar coeff(Index index) const
+    {
+      Scalar res;
+      const Index row = RowsAtCompileTime == 1 ? 0 : index;
+      const Index col = RowsAtCompileTime == 1 ? index : 0;
+      ScalarCoeffImpl::run(row, col, m_lhs, m_rhs, res);
+      return res;
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE const PacketScalar packet(Index row, Index col) const
+    {
+      PacketScalar res;
+      internal::product_packet_impl<Flags&RowMajorBit ? RowMajor : ColMajor,
+                              Unroll ? InnerSize : Dynamic,
+                              _LhsNested, _RhsNested, PacketScalar, LoadMode>
+        ::run(row, col, m_lhs, m_rhs, res);
+      return res;
+    }
+
+    // Implicit conversion to the nested type (trigger the evaluation of the product)
+    EIGEN_STRONG_INLINE operator const PlainObject& () const
+    {
+      m_result.lazyAssign(*this);
+      return m_result;
+    }
+
+    const _LhsNested& lhs() const { return m_lhs; }
+    const _RhsNested& rhs() const { return m_rhs; }
+
+    const Diagonal<const LazyCoeffBasedProductType,0> diagonal() const
+    { return reinterpret_cast<const LazyCoeffBasedProductType&>(*this); }
+
+    template<int DiagonalIndex>
+    const Diagonal<const LazyCoeffBasedProductType,DiagonalIndex> diagonal() const
+    { return reinterpret_cast<const LazyCoeffBasedProductType&>(*this); }
+
+    const Diagonal<const LazyCoeffBasedProductType,Dynamic> diagonal(Index index) const
+    { return reinterpret_cast<const LazyCoeffBasedProductType&>(*this).diagonal(index); }
+
+  protected:
+    typename internal::add_const_on_value_type<LhsNested>::type m_lhs;
+    typename internal::add_const_on_value_type<RhsNested>::type m_rhs;
+
+    mutable PlainObject m_result;
+};
+
+namespace internal {
+
+// here we need to overload the nested rule for products
+// such that the nested type is a const reference to a plain matrix
+template<typename Lhs, typename Rhs, int N, typename PlainObject>
+struct nested<CoeffBasedProduct<Lhs,Rhs,EvalBeforeNestingBit|EvalBeforeAssigningBit>, N, PlainObject>
+{
+  typedef PlainObject const& type;
+};
+
+/***************************************************************************
+* Normal product .coeff() implementation (with meta-unrolling)
+***************************************************************************/
+
+/**************************************
+*** Scalar path  - no vectorization ***
+**************************************/
+
+template<int UnrollingIndex, typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl<DefaultTraversal, UnrollingIndex, Lhs, Rhs, RetScalar>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, RetScalar &res)
+  {
+    product_coeff_impl<DefaultTraversal, UnrollingIndex-1, Lhs, Rhs, RetScalar>::run(row, col, lhs, rhs, res);
+    res += lhs.coeff(row, UnrollingIndex-1) * rhs.coeff(UnrollingIndex-1, col);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl<DefaultTraversal, 1, Lhs, Rhs, RetScalar>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, RetScalar &res)
+  {
+    res = lhs.coeff(row, 0) * rhs.coeff(0, col);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl<DefaultTraversal, 0, Lhs, Rhs, RetScalar>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const Lhs& /*lhs*/, const Rhs& /*rhs*/, RetScalar &res)
+  {
+    res = RetScalar(0);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl<DefaultTraversal, Dynamic, Lhs, Rhs, RetScalar>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, RetScalar& res)
+  {
+    res = (lhs.row(row).transpose().cwiseProduct( rhs.col(col) )).sum();
+  }
+};
+
+/*******************************************
+*** Scalar path with inner vectorization ***
+*******************************************/
+
+template<int UnrollingIndex, typename Lhs, typename Rhs, typename Packet>
+struct product_coeff_vectorized_unroller
+{
+  typedef typename Lhs::Index Index;
+  enum { PacketSize = packet_traits<typename Lhs::Scalar>::size };
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, typename Lhs::PacketScalar &pres)
+  {
+    product_coeff_vectorized_unroller<UnrollingIndex-PacketSize, Lhs, Rhs, Packet>::run(row, col, lhs, rhs, pres);
+    pres = padd(pres, pmul( lhs.template packet<Aligned>(row, UnrollingIndex) , rhs.template packet<Aligned>(UnrollingIndex, col) ));
+  }
+};
+
+template<typename Lhs, typename Rhs, typename Packet>
+struct product_coeff_vectorized_unroller<0, Lhs, Rhs, Packet>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, typename Lhs::PacketScalar &pres)
+  {
+    pres = pmul(lhs.template packet<Aligned>(row, 0) , rhs.template packet<Aligned>(0, col));
+  }
+};
+
+template<typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl<InnerVectorizedTraversal, 0, Lhs, Rhs, RetScalar>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const Lhs& /*lhs*/, const Rhs& /*rhs*/, RetScalar &res)
+  {
+    res = 0;
+  }
+};
+
+template<int UnrollingIndex, typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl<InnerVectorizedTraversal, UnrollingIndex, Lhs, Rhs, RetScalar>
+{
+  typedef typename Lhs::PacketScalar Packet;
+  typedef typename Lhs::Index Index;
+  enum { PacketSize = packet_traits<typename Lhs::Scalar>::size };
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, RetScalar &res)
+  {
+    Packet pres;
+    product_coeff_vectorized_unroller<UnrollingIndex-PacketSize, Lhs, Rhs, Packet>::run(row, col, lhs, rhs, pres);
+    res = predux(pres);
+  }
+};
+
+template<typename Lhs, typename Rhs, int LhsRows = Lhs::RowsAtCompileTime, int RhsCols = Rhs::ColsAtCompileTime>
+struct product_coeff_vectorized_dyn_selector
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar &res)
+  {
+    res = lhs.row(row).transpose().cwiseProduct(rhs.col(col)).sum();
+  }
+};
+
+// NOTE the 3 following specializations are because taking .col(0) on a vector is a bit slower
+// NOTE maybe they are now useless since we have a specialization for Block<Matrix>
+template<typename Lhs, typename Rhs, int RhsCols>
+struct product_coeff_vectorized_dyn_selector<Lhs,Rhs,1,RhsCols>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index /*row*/, Index col, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar &res)
+  {
+    res = lhs.transpose().cwiseProduct(rhs.col(col)).sum();
+  }
+};
+
+template<typename Lhs, typename Rhs, int LhsRows>
+struct product_coeff_vectorized_dyn_selector<Lhs,Rhs,LhsRows,1>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index /*col*/, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar &res)
+  {
+    res = lhs.row(row).transpose().cwiseProduct(rhs).sum();
+  }
+};
+
+template<typename Lhs, typename Rhs>
+struct product_coeff_vectorized_dyn_selector<Lhs,Rhs,1,1>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar &res)
+  {
+    res = lhs.transpose().cwiseProduct(rhs).sum();
+  }
+};
+
+template<typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl<InnerVectorizedTraversal, Dynamic, Lhs, Rhs, RetScalar>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar &res)
+  {
+    product_coeff_vectorized_dyn_selector<Lhs,Rhs>::run(row, col, lhs, rhs, res);
+  }
+};
+
+/*******************
+*** Packet path  ***
+*******************/
+
+template<int UnrollingIndex, typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<RowMajor, UnrollingIndex, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet &res)
+  {
+    product_packet_impl<RowMajor, UnrollingIndex-1, Lhs, Rhs, Packet, LoadMode>::run(row, col, lhs, rhs, res);
+    res =  pmadd(pset1<Packet>(lhs.coeff(row, UnrollingIndex-1)), rhs.template packet<LoadMode>(UnrollingIndex-1, col), res);
+  }
+};
+
+template<int UnrollingIndex, typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<ColMajor, UnrollingIndex, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet &res)
+  {
+    product_packet_impl<ColMajor, UnrollingIndex-1, Lhs, Rhs, Packet, LoadMode>::run(row, col, lhs, rhs, res);
+    res =  pmadd(lhs.template packet<LoadMode>(row, UnrollingIndex-1), pset1<Packet>(rhs.coeff(UnrollingIndex-1, col)), res);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<RowMajor, 1, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet &res)
+  {
+    res = pmul(pset1<Packet>(lhs.coeff(row, 0)),rhs.template packet<LoadMode>(0, col));
+  }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<ColMajor, 1, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet &res)
+  {
+    res = pmul(lhs.template packet<LoadMode>(row, 0), pset1<Packet>(rhs.coeff(0, col)));
+  }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<RowMajor, 0, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const Lhs& /*lhs*/, const Rhs& /*rhs*/, Packet &res)
+  {
+    res = pset1<Packet>(0);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<ColMajor, 0, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const Lhs& /*lhs*/, const Rhs& /*rhs*/, Packet &res)
+  {
+    res = pset1<Packet>(0);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<RowMajor, Dynamic, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet& res)
+  {
+    res = pset1<Packet>(0);
+    for(Index i = 0; i < lhs.cols(); ++i)
+      res =  pmadd(pset1<Packet>(lhs.coeff(row, i)), rhs.template packet<LoadMode>(i, col), res);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<ColMajor, Dynamic, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet& res)
+  {
+    res = pset1<Packet>(0);
+    for(Index i = 0; i < lhs.cols(); ++i)
+      res =  pmadd(lhs.template packet<LoadMode>(row, i), pset1<Packet>(rhs.coeff(i, col)), res);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COEFFBASED_PRODUCT_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralBlockPanelKernel.h
new file mode 100644
index 0000000..bcdca5b
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralBlockPanelKernel.h
@@ -0,0 +1,1341 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERAL_BLOCK_PANEL_H
+#define EIGEN_GENERAL_BLOCK_PANEL_H
+
+namespace Eigen { 
+  
+namespace internal {
+
+template<typename _LhsScalar, typename _RhsScalar, bool _ConjLhs=false, bool _ConjRhs=false>
+class gebp_traits;
+
+
+/** \internal \returns b if a<=0, and returns a otherwise. */
+inline std::ptrdiff_t manage_caching_sizes_helper(std::ptrdiff_t a, std::ptrdiff_t b)
+{
+  return a<=0 ? b : a;
+}
+
+/** \internal */
+inline void manage_caching_sizes(Action action, std::ptrdiff_t* l1=0, std::ptrdiff_t* l2=0)
+{
+  static std::ptrdiff_t m_l1CacheSize = 0;
+  static std::ptrdiff_t m_l2CacheSize = 0;
+  if(m_l2CacheSize==0)
+  {
+    m_l1CacheSize = manage_caching_sizes_helper(queryL1CacheSize(),8 * 1024);
+    m_l2CacheSize = manage_caching_sizes_helper(queryTopLevelCacheSize(),1*1024*1024);
+  }
+  
+  if(action==SetAction)
+  {
+    // set the cpu cache size and cache all block sizes from a global cache size in byte
+    eigen_internal_assert(l1!=0 && l2!=0);
+    m_l1CacheSize = *l1;
+    m_l2CacheSize = *l2;
+  }
+  else if(action==GetAction)
+  {
+    eigen_internal_assert(l1!=0 && l2!=0);
+    *l1 = m_l1CacheSize;
+    *l2 = m_l2CacheSize;
+  }
+  else
+  {
+    eigen_internal_assert(false);
+  }
+}
+
+/** \brief Computes the blocking parameters for a m x k times k x n matrix product
+  *
+  * \param[in,out] k Input: the third dimension of the product. Output: the blocking size along the same dimension.
+  * \param[in,out] m Input: the number of rows of the left hand side. Output: the blocking size along the same dimension.
+  * \param[in,out] n Input: the number of columns of the right hand side. Output: the blocking size along the same dimension.
+  *
+  * Given a m x k times k x n matrix product of scalar types \c LhsScalar and \c RhsScalar,
+  * this function computes the blocking size parameters along the respective dimensions
+  * for matrix products and related algorithms. The blocking sizes depends on various
+  * parameters:
+  * - the L1 and L2 cache sizes,
+  * - the register level blocking sizes defined by gebp_traits,
+  * - the number of scalars that fit into a packet (when vectorization is enabled).
+  *
+  * \sa setCpuCacheSizes */
+template<typename LhsScalar, typename RhsScalar, int KcFactor, typename SizeType>
+void computeProductBlockingSizes(SizeType& k, SizeType& m, SizeType& n)
+{
+  EIGEN_UNUSED_VARIABLE(n);
+  // Explanations:
+  // Let's recall the product algorithms form kc x nc horizontal panels B' on the rhs and
+  // mc x kc blocks A' on the lhs. A' has to fit into L2 cache. Moreover, B' is processed
+  // per kc x nr vertical small panels where nr is the blocking size along the n dimension
+  // at the register level. For vectorization purpose, these small vertical panels are unpacked,
+  // e.g., each coefficient is replicated to fit a packet. This small vertical panel has to
+  // stay in L1 cache.
+  std::ptrdiff_t l1, l2;
+
+  typedef gebp_traits<LhsScalar,RhsScalar> Traits;
+  enum {
+    kdiv = KcFactor * 2 * Traits::nr
+         * Traits::RhsProgress * sizeof(RhsScalar),
+    mr = gebp_traits<LhsScalar,RhsScalar>::mr,
+    mr_mask = (0xffffffff/mr)*mr
+  };
+
+  manage_caching_sizes(GetAction, &l1, &l2);
+  k = std::min<SizeType>(k, l1/kdiv);
+  SizeType _m = k>0 ? l2/(4 * sizeof(LhsScalar) * k) : 0;
+  if(_m<m) m = _m & mr_mask;
+}
+
+template<typename LhsScalar, typename RhsScalar, typename SizeType>
+inline void computeProductBlockingSizes(SizeType& k, SizeType& m, SizeType& n)
+{
+  computeProductBlockingSizes<LhsScalar,RhsScalar,1>(k, m, n);
+}
+
+#ifdef EIGEN_HAS_FUSE_CJMADD
+  #define MADD(CJ,A,B,C,T)  C = CJ.pmadd(A,B,C);
+#else
+
+  // FIXME (a bit overkill maybe ?)
+
+  template<typename CJ, typename A, typename B, typename C, typename T> struct gebp_madd_selector {
+    EIGEN_ALWAYS_INLINE static void run(const CJ& cj, A& a, B& b, C& c, T& /*t*/)
+    {
+      c = cj.pmadd(a,b,c);
+    }
+  };
+
+  template<typename CJ, typename T> struct gebp_madd_selector<CJ,T,T,T,T> {
+    EIGEN_ALWAYS_INLINE static void run(const CJ& cj, T& a, T& b, T& c, T& t)
+    {
+      t = b; t = cj.pmul(a,t); c = padd(c,t);
+    }
+  };
+
+  template<typename CJ, typename A, typename B, typename C, typename T>
+  EIGEN_STRONG_INLINE void gebp_madd(const CJ& cj, A& a, B& b, C& c, T& t)
+  {
+    gebp_madd_selector<CJ,A,B,C,T>::run(cj,a,b,c,t);
+  }
+
+  #define MADD(CJ,A,B,C,T)  gebp_madd(CJ,A,B,C,T);
+//   #define MADD(CJ,A,B,C,T)  T = B; T = CJ.pmul(A,T); C = padd(C,T);
+#endif
+
+/* Vectorization logic
+ *  real*real: unpack rhs to constant packets, ...
+ * 
+ *  cd*cd : unpack rhs to (b_r,b_r), (b_i,b_i), mul to get (a_r b_r,a_i b_r) (a_r b_i,a_i b_i),
+ *          storing each res packet into two packets (2x2),
+ *          at the end combine them: swap the second and addsub them 
+ *  cf*cf : same but with 2x4 blocks
+ *  cplx*real : unpack rhs to constant packets, ...
+ *  real*cplx : load lhs as (a0,a0,a1,a1), and mul as usual
+ */
+template<typename _LhsScalar, typename _RhsScalar, bool _ConjLhs, bool _ConjRhs>
+class gebp_traits
+{
+public:
+  typedef _LhsScalar LhsScalar;
+  typedef _RhsScalar RhsScalar;
+  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+
+  enum {
+    ConjLhs = _ConjLhs,
+    ConjRhs = _ConjRhs,
+    Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable,
+    LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+    RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+    ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1,
+    
+    NumberOfRegisters = EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS,
+
+    // register block size along the N direction (must be either 2 or 4)
+    nr = NumberOfRegisters/4,
+
+    // register block size along the M direction (currently, this one cannot be modified)
+    mr = 2 * LhsPacketSize,
+    
+    WorkSpaceFactor = nr * RhsPacketSize,
+
+    LhsProgress = LhsPacketSize,
+    RhsProgress = RhsPacketSize
+  };
+
+  typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
+  typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
+  typedef typename packet_traits<ResScalar>::type  _ResPacket;
+
+  typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
+  typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
+  typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
+
+  typedef ResPacket AccPacket;
+  
+  EIGEN_STRONG_INLINE void initAcc(AccPacket& p)
+  {
+    p = pset1<ResPacket>(ResScalar(0));
+  }
+
+  EIGEN_STRONG_INLINE void unpackRhs(DenseIndex n, const RhsScalar* rhs, RhsScalar* b)
+  {
+    for(DenseIndex k=0; k<n; k++)
+      pstore1<RhsPacket>(&b[k*RhsPacketSize], rhs[k]);
+  }
+
+  EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacket& dest) const
+  {
+    dest = pload<RhsPacket>(b);
+  }
+
+  EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
+  {
+    dest = pload<LhsPacket>(a);
+  }
+
+  EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, AccPacket& c, AccPacket& tmp) const
+  {
+    tmp = b; tmp = pmul(a,tmp); c = padd(c,tmp);
+  }
+
+  EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha, ResPacket& r) const
+  {
+    r = pmadd(c,alpha,r);
+  }
+
+protected:
+//   conj_helper<LhsScalar,RhsScalar,ConjLhs,ConjRhs> cj;
+//   conj_helper<LhsPacket,RhsPacket,ConjLhs,ConjRhs> pcj;
+};
+
+template<typename RealScalar, bool _ConjLhs>
+class gebp_traits<std::complex<RealScalar>, RealScalar, _ConjLhs, false>
+{
+public:
+  typedef std::complex<RealScalar> LhsScalar;
+  typedef RealScalar RhsScalar;
+  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+
+  enum {
+    ConjLhs = _ConjLhs,
+    ConjRhs = false,
+    Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable,
+    LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+    RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+    ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1,
+    
+    NumberOfRegisters = EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS,
+    nr = NumberOfRegisters/4,
+    mr = 2 * LhsPacketSize,
+    WorkSpaceFactor = nr*RhsPacketSize,
+
+    LhsProgress = LhsPacketSize,
+    RhsProgress = RhsPacketSize
+  };
+
+  typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
+  typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
+  typedef typename packet_traits<ResScalar>::type  _ResPacket;
+
+  typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
+  typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
+  typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
+
+  typedef ResPacket AccPacket;
+
+  EIGEN_STRONG_INLINE void initAcc(AccPacket& p)
+  {
+    p = pset1<ResPacket>(ResScalar(0));
+  }
+
+  EIGEN_STRONG_INLINE void unpackRhs(DenseIndex n, const RhsScalar* rhs, RhsScalar* b)
+  {
+    for(DenseIndex k=0; k<n; k++)
+      pstore1<RhsPacket>(&b[k*RhsPacketSize], rhs[k]);
+  }
+
+  EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacket& dest) const
+  {
+    dest = pload<RhsPacket>(b);
+  }
+
+  EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
+  {
+    dest = pload<LhsPacket>(a);
+  }
+
+  EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp) const
+  {
+    madd_impl(a, b, c, tmp, typename conditional<Vectorizable,true_type,false_type>::type());
+  }
+
+  EIGEN_STRONG_INLINE void madd_impl(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp, const true_type&) const
+  {
+    tmp = b; tmp = pmul(a.v,tmp); c.v = padd(c.v,tmp);
+  }
+
+  EIGEN_STRONG_INLINE void madd_impl(const LhsScalar& a, const RhsScalar& b, ResScalar& c, RhsScalar& /*tmp*/, const false_type&) const
+  {
+    c += a * b;
+  }
+
+  EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha, ResPacket& r) const
+  {
+    r = cj.pmadd(c,alpha,r);
+  }
+
+protected:
+  conj_helper<ResPacket,ResPacket,ConjLhs,false> cj;
+};
+
+template<typename RealScalar, bool _ConjLhs, bool _ConjRhs>
+class gebp_traits<std::complex<RealScalar>, std::complex<RealScalar>, _ConjLhs, _ConjRhs >
+{
+public:
+  typedef std::complex<RealScalar>  Scalar;
+  typedef std::complex<RealScalar>  LhsScalar;
+  typedef std::complex<RealScalar>  RhsScalar;
+  typedef std::complex<RealScalar>  ResScalar;
+  
+  enum {
+    ConjLhs = _ConjLhs,
+    ConjRhs = _ConjRhs,
+    Vectorizable = packet_traits<RealScalar>::Vectorizable
+                && packet_traits<Scalar>::Vectorizable,
+    RealPacketSize  = Vectorizable ? packet_traits<RealScalar>::size : 1,
+    ResPacketSize   = Vectorizable ? packet_traits<ResScalar>::size : 1,
+    
+    nr = 2,
+    mr = 2 * ResPacketSize,
+    WorkSpaceFactor = Vectorizable ? 2*nr*RealPacketSize : nr,
+
+    LhsProgress = ResPacketSize,
+    RhsProgress = Vectorizable ? 2*ResPacketSize : 1
+  };
+  
+  typedef typename packet_traits<RealScalar>::type RealPacket;
+  typedef typename packet_traits<Scalar>::type     ScalarPacket;
+  struct DoublePacket
+  {
+    RealPacket first;
+    RealPacket second;
+  };
+
+  typedef typename conditional<Vectorizable,RealPacket,  Scalar>::type LhsPacket;
+  typedef typename conditional<Vectorizable,DoublePacket,Scalar>::type RhsPacket;
+  typedef typename conditional<Vectorizable,ScalarPacket,Scalar>::type ResPacket;
+  typedef typename conditional<Vectorizable,DoublePacket,Scalar>::type AccPacket;
+  
+  EIGEN_STRONG_INLINE void initAcc(Scalar& p) { p = Scalar(0); }
+
+  EIGEN_STRONG_INLINE void initAcc(DoublePacket& p)
+  {
+    p.first   = pset1<RealPacket>(RealScalar(0));
+    p.second  = pset1<RealPacket>(RealScalar(0));
+  }
+
+  /* Unpack the rhs coeff such that each complex coefficient is spread into
+   * two packects containing respectively the real and imaginary coefficient
+   * duplicated as many time as needed: (x+iy) => [x, ..., x] [y, ..., y]
+   */
+  EIGEN_STRONG_INLINE void unpackRhs(DenseIndex n, const Scalar* rhs, Scalar* b)
+  {
+    for(DenseIndex k=0; k<n; k++)
+    {
+      if(Vectorizable)
+      {
+        pstore1<RealPacket>((RealScalar*)&b[k*ResPacketSize*2+0],             real(rhs[k]));
+        pstore1<RealPacket>((RealScalar*)&b[k*ResPacketSize*2+ResPacketSize], imag(rhs[k]));
+      }
+      else
+        b[k] = rhs[k];
+    }
+  }
+
+  EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, ResPacket& dest) const { dest = *b; }
+
+  EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, DoublePacket& dest) const
+  {
+    dest.first  = pload<RealPacket>((const RealScalar*)b);
+    dest.second = pload<RealPacket>((const RealScalar*)(b+ResPacketSize));
+  }
+
+  // nothing special here
+  EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
+  {
+    dest = pload<LhsPacket>((const typename unpacket_traits<LhsPacket>::type*)(a));
+  }
+
+  EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, DoublePacket& c, RhsPacket& /*tmp*/) const
+  {
+    c.first   = padd(pmul(a,b.first), c.first);
+    c.second  = padd(pmul(a,b.second),c.second);
+  }
+
+  EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, ResPacket& c, RhsPacket& /*tmp*/) const
+  {
+    c = cj.pmadd(a,b,c);
+  }
+  
+  EIGEN_STRONG_INLINE void acc(const Scalar& c, const Scalar& alpha, Scalar& r) const { r += alpha * c; }
+  
+  EIGEN_STRONG_INLINE void acc(const DoublePacket& c, const ResPacket& alpha, ResPacket& r) const
+  {
+    // assemble c
+    ResPacket tmp;
+    if((!ConjLhs)&&(!ConjRhs))
+    {
+      tmp = pcplxflip(pconj(ResPacket(c.second)));
+      tmp = padd(ResPacket(c.first),tmp);
+    }
+    else if((!ConjLhs)&&(ConjRhs))
+    {
+      tmp = pconj(pcplxflip(ResPacket(c.second)));
+      tmp = padd(ResPacket(c.first),tmp);
+    }
+    else if((ConjLhs)&&(!ConjRhs))
+    {
+      tmp = pcplxflip(ResPacket(c.second));
+      tmp = padd(pconj(ResPacket(c.first)),tmp);
+    }
+    else if((ConjLhs)&&(ConjRhs))
+    {
+      tmp = pcplxflip(ResPacket(c.second));
+      tmp = psub(pconj(ResPacket(c.first)),tmp);
+    }
+    
+    r = pmadd(tmp,alpha,r);
+  }
+
+protected:
+  conj_helper<LhsScalar,RhsScalar,ConjLhs,ConjRhs> cj;
+};
+
+template<typename RealScalar, bool _ConjRhs>
+class gebp_traits<RealScalar, std::complex<RealScalar>, false, _ConjRhs >
+{
+public:
+  typedef std::complex<RealScalar>  Scalar;
+  typedef RealScalar  LhsScalar;
+  typedef Scalar      RhsScalar;
+  typedef Scalar      ResScalar;
+
+  enum {
+    ConjLhs = false,
+    ConjRhs = _ConjRhs,
+    Vectorizable = packet_traits<RealScalar>::Vectorizable
+                && packet_traits<Scalar>::Vectorizable,
+    LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+    RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+    ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1,
+    
+    NumberOfRegisters = EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS,
+    nr = 4,
+    mr = 2*ResPacketSize,
+    WorkSpaceFactor = nr*RhsPacketSize,
+
+    LhsProgress = ResPacketSize,
+    RhsProgress = ResPacketSize
+  };
+
+  typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
+  typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
+  typedef typename packet_traits<ResScalar>::type  _ResPacket;
+
+  typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
+  typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
+  typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
+
+  typedef ResPacket AccPacket;
+
+  EIGEN_STRONG_INLINE void initAcc(AccPacket& p)
+  {
+    p = pset1<ResPacket>(ResScalar(0));
+  }
+
+  EIGEN_STRONG_INLINE void unpackRhs(DenseIndex n, const RhsScalar* rhs, RhsScalar* b)
+  {
+    for(DenseIndex k=0; k<n; k++)
+      pstore1<RhsPacket>(&b[k*RhsPacketSize], rhs[k]);
+  }
+
+  EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacket& dest) const
+  {
+    dest = pload<RhsPacket>(b);
+  }
+
+  EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
+  {
+    dest = ploaddup<LhsPacket>(a);
+  }
+
+  EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp) const
+  {
+    madd_impl(a, b, c, tmp, typename conditional<Vectorizable,true_type,false_type>::type());
+  }
+
+  EIGEN_STRONG_INLINE void madd_impl(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp, const true_type&) const
+  {
+    tmp = b; tmp.v = pmul(a,tmp.v); c = padd(c,tmp);
+  }
+
+  EIGEN_STRONG_INLINE void madd_impl(const LhsScalar& a, const RhsScalar& b, ResScalar& c, RhsScalar& /*tmp*/, const false_type&) const
+  {
+    c += a * b;
+  }
+
+  EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha, ResPacket& r) const
+  {
+    r = cj.pmadd(alpha,c,r);
+  }
+
+protected:
+  conj_helper<ResPacket,ResPacket,false,ConjRhs> cj;
+};
+
+/* optimized GEneral packed Block * packed Panel product kernel
+ *
+ * Mixing type logic: C += A * B
+ *  |  A  |  B  | comments
+ *  |real |cplx | no vectorization yet, would require to pack A with duplication
+ *  |cplx |real | easy vectorization
+ */
+template<typename LhsScalar, typename RhsScalar, typename Index, int mr, int nr, bool ConjugateLhs, bool ConjugateRhs>
+struct gebp_kernel
+{
+  typedef gebp_traits<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> Traits;
+  typedef typename Traits::ResScalar ResScalar;
+  typedef typename Traits::LhsPacket LhsPacket;
+  typedef typename Traits::RhsPacket RhsPacket;
+  typedef typename Traits::ResPacket ResPacket;
+  typedef typename Traits::AccPacket AccPacket;
+
+  enum {
+    Vectorizable  = Traits::Vectorizable,
+    LhsProgress   = Traits::LhsProgress,
+    RhsProgress   = Traits::RhsProgress,
+    ResPacketSize = Traits::ResPacketSize
+  };
+
+  EIGEN_DONT_INLINE
+  void operator()(ResScalar* res, Index resStride, const LhsScalar* blockA, const RhsScalar* blockB, Index rows, Index depth, Index cols, ResScalar alpha,
+                  Index strideA=-1, Index strideB=-1, Index offsetA=0, Index offsetB=0, RhsScalar* unpackedB=0);
+};
+
+template<typename LhsScalar, typename RhsScalar, typename Index, int mr, int nr, bool ConjugateLhs, bool ConjugateRhs>
+EIGEN_DONT_INLINE
+void gebp_kernel<LhsScalar,RhsScalar,Index,mr,nr,ConjugateLhs,ConjugateRhs>
+  ::operator()(ResScalar* res, Index resStride, const LhsScalar* blockA, const RhsScalar* blockB, Index rows, Index depth, Index cols, ResScalar alpha,
+               Index strideA, Index strideB, Index offsetA, Index offsetB, RhsScalar* unpackedB)
+  {
+    Traits traits;
+    
+    if(strideA==-1) strideA = depth;
+    if(strideB==-1) strideB = depth;
+    conj_helper<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> cj;
+//     conj_helper<LhsPacket,RhsPacket,ConjugateLhs,ConjugateRhs> pcj;
+    Index packet_cols = (cols/nr) * nr;
+    const Index peeled_mc = (rows/mr)*mr;
+    // FIXME:
+    const Index peeled_mc2 = peeled_mc + (rows-peeled_mc >= LhsProgress ? LhsProgress : 0);
+    const Index peeled_kc = (depth/4)*4;
+
+    if(unpackedB==0)
+      unpackedB = const_cast<RhsScalar*>(blockB - strideB * nr * RhsProgress);
+
+    // loops on each micro vertical panel of rhs (depth x nr)
+    for(Index j2=0; j2<packet_cols; j2+=nr)
+    {
+      traits.unpackRhs(depth*nr,&blockB[j2*strideB+offsetB*nr],unpackedB); 
+
+      // loops on each largest micro horizontal panel of lhs (mr x depth)
+      // => we select a mr x nr micro block of res which is entirely
+      //    stored into mr/packet_size x nr registers.
+      for(Index i=0; i<peeled_mc; i+=mr)
+      {
+        const LhsScalar* blA = &blockA[i*strideA+offsetA*mr];
+        prefetch(&blA[0]);
+
+        // gets res block as register
+        AccPacket C0, C1, C2, C3, C4, C5, C6, C7;
+                  traits.initAcc(C0);
+                  traits.initAcc(C1);
+        if(nr==4) traits.initAcc(C2);
+        if(nr==4) traits.initAcc(C3);
+                  traits.initAcc(C4);
+                  traits.initAcc(C5);
+        if(nr==4) traits.initAcc(C6);
+        if(nr==4) traits.initAcc(C7);
+
+        ResScalar* r0 = &res[(j2+0)*resStride + i];
+        ResScalar* r1 = r0 + resStride;
+        ResScalar* r2 = r1 + resStride;
+        ResScalar* r3 = r2 + resStride;
+
+        prefetch(r0+16);
+        prefetch(r1+16);
+        prefetch(r2+16);
+        prefetch(r3+16);
+
+        // performs "inner" product
+        // TODO let's check wether the folowing peeled loop could not be
+        //      optimized via optimal prefetching from one loop to the other
+        const RhsScalar* blB = unpackedB;
+        for(Index k=0; k<peeled_kc; k+=4)
+        {
+          if(nr==2)
+          {
+            LhsPacket A0, A1;
+            RhsPacket B_0;
+            RhsPacket T0;
+            
+EIGEN_ASM_COMMENT("mybegin2");
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadLhs(&blA[1*LhsProgress], A1);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B_0);
+            traits.madd(A0,B_0,C1,T0);
+            traits.madd(A1,B_0,C5,B_0);
+
+            traits.loadLhs(&blA[2*LhsProgress], A0);
+            traits.loadLhs(&blA[3*LhsProgress], A1);
+            traits.loadRhs(&blB[2*RhsProgress], B_0);
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[3*RhsProgress], B_0);
+            traits.madd(A0,B_0,C1,T0);
+            traits.madd(A1,B_0,C5,B_0);
+
+            traits.loadLhs(&blA[4*LhsProgress], A0);
+            traits.loadLhs(&blA[5*LhsProgress], A1);
+            traits.loadRhs(&blB[4*RhsProgress], B_0);
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[5*RhsProgress], B_0);
+            traits.madd(A0,B_0,C1,T0);
+            traits.madd(A1,B_0,C5,B_0);
+
+            traits.loadLhs(&blA[6*LhsProgress], A0);
+            traits.loadLhs(&blA[7*LhsProgress], A1);
+            traits.loadRhs(&blB[6*RhsProgress], B_0);
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[7*RhsProgress], B_0);
+            traits.madd(A0,B_0,C1,T0);
+            traits.madd(A1,B_0,C5,B_0);
+EIGEN_ASM_COMMENT("myend");
+          }
+          else
+          {
+EIGEN_ASM_COMMENT("mybegin4");
+            LhsPacket A0, A1;
+            RhsPacket B_0, B1, B2, B3;
+            RhsPacket T0;
+            
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadLhs(&blA[1*LhsProgress], A1);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B1);
+
+            traits.madd(A0,B_0,C0,T0);
+            traits.loadRhs(&blB[2*RhsProgress], B2);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[3*RhsProgress], B3);
+            traits.loadRhs(&blB[4*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,T0);
+            traits.madd(A1,B1,C5,B1);
+            traits.loadRhs(&blB[5*RhsProgress], B1);
+            traits.madd(A0,B2,C2,T0);
+            traits.madd(A1,B2,C6,B2);
+            traits.loadRhs(&blB[6*RhsProgress], B2);
+            traits.madd(A0,B3,C3,T0);
+            traits.loadLhs(&blA[2*LhsProgress], A0);
+            traits.madd(A1,B3,C7,B3);
+            traits.loadLhs(&blA[3*LhsProgress], A1);
+            traits.loadRhs(&blB[7*RhsProgress], B3);
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[8*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,T0);
+            traits.madd(A1,B1,C5,B1);
+            traits.loadRhs(&blB[9*RhsProgress], B1);
+            traits.madd(A0,B2,C2,T0);
+            traits.madd(A1,B2,C6,B2);
+            traits.loadRhs(&blB[10*RhsProgress], B2);
+            traits.madd(A0,B3,C3,T0);
+            traits.loadLhs(&blA[4*LhsProgress], A0);
+            traits.madd(A1,B3,C7,B3);
+            traits.loadLhs(&blA[5*LhsProgress], A1);
+            traits.loadRhs(&blB[11*RhsProgress], B3);
+
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[12*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,T0);
+            traits.madd(A1,B1,C5,B1);
+            traits.loadRhs(&blB[13*RhsProgress], B1);
+            traits.madd(A0,B2,C2,T0);
+            traits.madd(A1,B2,C6,B2);
+            traits.loadRhs(&blB[14*RhsProgress], B2);
+            traits.madd(A0,B3,C3,T0);
+            traits.loadLhs(&blA[6*LhsProgress], A0);
+            traits.madd(A1,B3,C7,B3);
+            traits.loadLhs(&blA[7*LhsProgress], A1);
+            traits.loadRhs(&blB[15*RhsProgress], B3);
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.madd(A0,B1,C1,T0);
+            traits.madd(A1,B1,C5,B1);
+            traits.madd(A0,B2,C2,T0);
+            traits.madd(A1,B2,C6,B2);
+            traits.madd(A0,B3,C3,T0);
+            traits.madd(A1,B3,C7,B3);
+          }
+
+          blB += 4*nr*RhsProgress;
+          blA += 4*mr;
+        }
+        // process remaining peeled loop
+        for(Index k=peeled_kc; k<depth; k++)
+        {
+          if(nr==2)
+          {
+            LhsPacket A0, A1;
+            RhsPacket B_0;
+            RhsPacket T0;
+
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadLhs(&blA[1*LhsProgress], A1);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B_0);
+            traits.madd(A0,B_0,C1,T0);
+            traits.madd(A1,B_0,C5,B_0);
+          }
+          else
+          {
+            LhsPacket A0, A1;
+            RhsPacket B_0, B1, B2, B3;
+            RhsPacket T0;
+
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadLhs(&blA[1*LhsProgress], A1);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B1);
+
+            traits.madd(A0,B_0,C0,T0);
+            traits.loadRhs(&blB[2*RhsProgress], B2);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[3*RhsProgress], B3);
+            traits.madd(A0,B1,C1,T0);
+            traits.madd(A1,B1,C5,B1);
+            traits.madd(A0,B2,C2,T0);
+            traits.madd(A1,B2,C6,B2);
+            traits.madd(A0,B3,C3,T0);
+            traits.madd(A1,B3,C7,B3);
+          }
+
+          blB += nr*RhsProgress;
+          blA += mr;
+        }
+
+        if(nr==4)
+        {
+          ResPacket R0, R1, R2, R3, R4, R5, R6;
+          ResPacket alphav = pset1<ResPacket>(alpha);
+
+          R0 = ploadu<ResPacket>(r0);
+          R1 = ploadu<ResPacket>(r1);
+          R2 = ploadu<ResPacket>(r2);
+          R3 = ploadu<ResPacket>(r3);
+          R4 = ploadu<ResPacket>(r0 + ResPacketSize);
+          R5 = ploadu<ResPacket>(r1 + ResPacketSize);
+          R6 = ploadu<ResPacket>(r2 + ResPacketSize);
+          traits.acc(C0, alphav, R0);
+          pstoreu(r0, R0);
+          R0 = ploadu<ResPacket>(r3 + ResPacketSize);
+
+          traits.acc(C1, alphav, R1);
+          traits.acc(C2, alphav, R2);
+          traits.acc(C3, alphav, R3);
+          traits.acc(C4, alphav, R4);
+          traits.acc(C5, alphav, R5);
+          traits.acc(C6, alphav, R6);
+          traits.acc(C7, alphav, R0);
+          
+          pstoreu(r1, R1);
+          pstoreu(r2, R2);
+          pstoreu(r3, R3);
+          pstoreu(r0 + ResPacketSize, R4);
+          pstoreu(r1 + ResPacketSize, R5);
+          pstoreu(r2 + ResPacketSize, R6);
+          pstoreu(r3 + ResPacketSize, R0);
+        }
+        else
+        {
+          ResPacket R0, R1, R4;
+          ResPacket alphav = pset1<ResPacket>(alpha);
+
+          R0 = ploadu<ResPacket>(r0);
+          R1 = ploadu<ResPacket>(r1);
+          R4 = ploadu<ResPacket>(r0 + ResPacketSize);
+          traits.acc(C0, alphav, R0);
+          pstoreu(r0, R0);
+          R0 = ploadu<ResPacket>(r1 + ResPacketSize);
+          traits.acc(C1, alphav, R1);
+          traits.acc(C4, alphav, R4);
+          traits.acc(C5, alphav, R0);
+          pstoreu(r1, R1);
+          pstoreu(r0 + ResPacketSize, R4);
+          pstoreu(r1 + ResPacketSize, R0);
+        }
+        
+      }
+      
+      if(rows-peeled_mc>=LhsProgress)
+      {
+        Index i = peeled_mc;
+        const LhsScalar* blA = &blockA[i*strideA+offsetA*LhsProgress];
+        prefetch(&blA[0]);
+
+        // gets res block as register
+        AccPacket C0, C1, C2, C3;
+                  traits.initAcc(C0);
+                  traits.initAcc(C1);
+        if(nr==4) traits.initAcc(C2);
+        if(nr==4) traits.initAcc(C3);
+
+        // performs "inner" product
+        const RhsScalar* blB = unpackedB;
+        for(Index k=0; k<peeled_kc; k+=4)
+        {
+          if(nr==2)
+          {
+            LhsPacket A0;
+            RhsPacket B_0, B1;
+
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B1);
+            traits.madd(A0,B_0,C0,B_0);
+            traits.loadRhs(&blB[2*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.loadLhs(&blA[1*LhsProgress], A0);
+            traits.loadRhs(&blB[3*RhsProgress], B1);
+            traits.madd(A0,B_0,C0,B_0);
+            traits.loadRhs(&blB[4*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.loadLhs(&blA[2*LhsProgress], A0);
+            traits.loadRhs(&blB[5*RhsProgress], B1);
+            traits.madd(A0,B_0,C0,B_0);
+            traits.loadRhs(&blB[6*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.loadLhs(&blA[3*LhsProgress], A0);
+            traits.loadRhs(&blB[7*RhsProgress], B1);
+            traits.madd(A0,B_0,C0,B_0);
+            traits.madd(A0,B1,C1,B1);
+          }
+          else
+          {
+            LhsPacket A0;
+            RhsPacket B_0, B1, B2, B3;
+
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B1);
+
+            traits.madd(A0,B_0,C0,B_0);
+            traits.loadRhs(&blB[2*RhsProgress], B2);
+            traits.loadRhs(&blB[3*RhsProgress], B3);
+            traits.loadRhs(&blB[4*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.loadRhs(&blB[5*RhsProgress], B1);
+            traits.madd(A0,B2,C2,B2);
+            traits.loadRhs(&blB[6*RhsProgress], B2);
+            traits.madd(A0,B3,C3,B3);
+            traits.loadLhs(&blA[1*LhsProgress], A0);
+            traits.loadRhs(&blB[7*RhsProgress], B3);
+            traits.madd(A0,B_0,C0,B_0);
+            traits.loadRhs(&blB[8*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.loadRhs(&blB[9*RhsProgress], B1);
+            traits.madd(A0,B2,C2,B2);
+            traits.loadRhs(&blB[10*RhsProgress], B2);
+            traits.madd(A0,B3,C3,B3);
+            traits.loadLhs(&blA[2*LhsProgress], A0);
+            traits.loadRhs(&blB[11*RhsProgress], B3);
+
+            traits.madd(A0,B_0,C0,B_0);
+            traits.loadRhs(&blB[12*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.loadRhs(&blB[13*RhsProgress], B1);
+            traits.madd(A0,B2,C2,B2);
+            traits.loadRhs(&blB[14*RhsProgress], B2);
+            traits.madd(A0,B3,C3,B3);
+
+            traits.loadLhs(&blA[3*LhsProgress], A0);
+            traits.loadRhs(&blB[15*RhsProgress], B3);
+            traits.madd(A0,B_0,C0,B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.madd(A0,B2,C2,B2);
+            traits.madd(A0,B3,C3,B3);
+          }
+
+          blB += nr*4*RhsProgress;
+          blA += 4*LhsProgress;
+        }
+        // process remaining peeled loop
+        for(Index k=peeled_kc; k<depth; k++)
+        {
+          if(nr==2)
+          {
+            LhsPacket A0;
+            RhsPacket B_0, B1;
+
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B1);
+            traits.madd(A0,B_0,C0,B_0);
+            traits.madd(A0,B1,C1,B1);
+          }
+          else
+          {
+            LhsPacket A0;
+            RhsPacket B_0, B1, B2, B3;
+
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B1);
+            traits.loadRhs(&blB[2*RhsProgress], B2);
+            traits.loadRhs(&blB[3*RhsProgress], B3);
+
+            traits.madd(A0,B_0,C0,B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.madd(A0,B2,C2,B2);
+            traits.madd(A0,B3,C3,B3);
+          }
+
+          blB += nr*RhsProgress;
+          blA += LhsProgress;
+        }
+
+        ResPacket R0, R1, R2, R3;
+        ResPacket alphav = pset1<ResPacket>(alpha);
+
+        ResScalar* r0 = &res[(j2+0)*resStride + i];
+        ResScalar* r1 = r0 + resStride;
+        ResScalar* r2 = r1 + resStride;
+        ResScalar* r3 = r2 + resStride;
+
+                  R0 = ploadu<ResPacket>(r0);
+                  R1 = ploadu<ResPacket>(r1);
+        if(nr==4) R2 = ploadu<ResPacket>(r2);
+        if(nr==4) R3 = ploadu<ResPacket>(r3);
+
+                  traits.acc(C0, alphav, R0);
+                  traits.acc(C1, alphav, R1);
+        if(nr==4) traits.acc(C2, alphav, R2);
+        if(nr==4) traits.acc(C3, alphav, R3);
+
+                  pstoreu(r0, R0);
+                  pstoreu(r1, R1);
+        if(nr==4) pstoreu(r2, R2);
+        if(nr==4) pstoreu(r3, R3);
+      }
+      for(Index i=peeled_mc2; i<rows; i++)
+      {
+        const LhsScalar* blA = &blockA[i*strideA+offsetA];
+        prefetch(&blA[0]);
+
+        // gets a 1 x nr res block as registers
+        ResScalar C0(0), C1(0), C2(0), C3(0);
+        // TODO directly use blockB ???
+        const RhsScalar* blB = &blockB[j2*strideB+offsetB*nr];
+        for(Index k=0; k<depth; k++)
+        {
+          if(nr==2)
+          {
+            LhsScalar A0;
+            RhsScalar B_0, B1;
+
+            A0 = blA[k];
+            B_0 = blB[0];
+            B1 = blB[1];
+            MADD(cj,A0,B_0,C0,B_0);
+            MADD(cj,A0,B1,C1,B1);
+          }
+          else
+          {
+            LhsScalar A0;
+            RhsScalar B_0, B1, B2, B3;
+
+            A0 = blA[k];
+            B_0 = blB[0];
+            B1 = blB[1];
+            B2 = blB[2];
+            B3 = blB[3];
+
+            MADD(cj,A0,B_0,C0,B_0);
+            MADD(cj,A0,B1,C1,B1);
+            MADD(cj,A0,B2,C2,B2);
+            MADD(cj,A0,B3,C3,B3);
+          }
+
+          blB += nr;
+        }
+                  res[(j2+0)*resStride + i] += alpha*C0;
+                  res[(j2+1)*resStride + i] += alpha*C1;
+        if(nr==4) res[(j2+2)*resStride + i] += alpha*C2;
+        if(nr==4) res[(j2+3)*resStride + i] += alpha*C3;
+      }
+    }
+    // process remaining rhs/res columns one at a time
+    // => do the same but with nr==1
+    for(Index j2=packet_cols; j2<cols; j2++)
+    {
+      // unpack B
+      traits.unpackRhs(depth, &blockB[j2*strideB+offsetB], unpackedB);
+
+      for(Index i=0; i<peeled_mc; i+=mr)
+      {
+        const LhsScalar* blA = &blockA[i*strideA+offsetA*mr];
+        prefetch(&blA[0]);
+
+        // TODO move the res loads to the stores
+
+        // get res block as registers
+        AccPacket C0, C4;
+        traits.initAcc(C0);
+        traits.initAcc(C4);
+
+        const RhsScalar* blB = unpackedB;
+        for(Index k=0; k<depth; k++)
+        {
+          LhsPacket A0, A1;
+          RhsPacket B_0;
+          RhsPacket T0;
+
+          traits.loadLhs(&blA[0*LhsProgress], A0);
+          traits.loadLhs(&blA[1*LhsProgress], A1);
+          traits.loadRhs(&blB[0*RhsProgress], B_0);
+          traits.madd(A0,B_0,C0,T0);
+          traits.madd(A1,B_0,C4,B_0);
+
+          blB += RhsProgress;
+          blA += 2*LhsProgress;
+        }
+        ResPacket R0, R4;
+        ResPacket alphav = pset1<ResPacket>(alpha);
+
+        ResScalar* r0 = &res[(j2+0)*resStride + i];
+
+        R0 = ploadu<ResPacket>(r0);
+        R4 = ploadu<ResPacket>(r0+ResPacketSize);
+
+        traits.acc(C0, alphav, R0);
+        traits.acc(C4, alphav, R4);
+
+        pstoreu(r0,               R0);
+        pstoreu(r0+ResPacketSize, R4);
+      }
+      if(rows-peeled_mc>=LhsProgress)
+      {
+        Index i = peeled_mc;
+        const LhsScalar* blA = &blockA[i*strideA+offsetA*LhsProgress];
+        prefetch(&blA[0]);
+
+        AccPacket C0;
+        traits.initAcc(C0);
+
+        const RhsScalar* blB = unpackedB;
+        for(Index k=0; k<depth; k++)
+        {
+          LhsPacket A0;
+          RhsPacket B_0;
+          traits.loadLhs(blA, A0);
+          traits.loadRhs(blB, B_0);
+          traits.madd(A0, B_0, C0, B_0);
+          blB += RhsProgress;
+          blA += LhsProgress;
+        }
+
+        ResPacket alphav = pset1<ResPacket>(alpha);
+        ResPacket R0 = ploadu<ResPacket>(&res[(j2+0)*resStride + i]);
+        traits.acc(C0, alphav, R0);
+        pstoreu(&res[(j2+0)*resStride + i], R0);
+      }
+      for(Index i=peeled_mc2; i<rows; i++)
+      {
+        const LhsScalar* blA = &blockA[i*strideA+offsetA];
+        prefetch(&blA[0]);
+
+        // gets a 1 x 1 res block as registers
+        ResScalar C0(0);
+        // FIXME directly use blockB ??
+        const RhsScalar* blB = &blockB[j2*strideB+offsetB];
+        for(Index k=0; k<depth; k++)
+        {
+          LhsScalar A0 = blA[k];
+          RhsScalar B_0 = blB[k];
+          MADD(cj, A0, B_0, C0, B_0);
+        }
+        res[(j2+0)*resStride + i] += alpha*C0;
+      }
+    }
+  }
+
+
+#undef CJMADD
+
+// pack a block of the lhs
+// The traversal is as follow (mr==4):
+//   0  4  8 12 ...
+//   1  5  9 13 ...
+//   2  6 10 14 ...
+//   3  7 11 15 ...
+//
+//  16 20 24 28 ...
+//  17 21 25 29 ...
+//  18 22 26 30 ...
+//  19 23 27 31 ...
+//
+//  32 33 34 35 ...
+//  36 36 38 39 ...
+template<typename Scalar, typename Index, int Pack1, int Pack2, int StorageOrder, bool Conjugate, bool PanelMode>
+struct gemm_pack_lhs
+{
+  EIGEN_DONT_INLINE void operator()(Scalar* blockA, const Scalar* EIGEN_RESTRICT _lhs, Index lhsStride, Index depth, Index rows, Index stride=0, Index offset=0);
+};
+
+template<typename Scalar, typename Index, int Pack1, int Pack2, int StorageOrder, bool Conjugate, bool PanelMode>
+EIGEN_DONT_INLINE void gemm_pack_lhs<Scalar, Index, Pack1, Pack2, StorageOrder, Conjugate, PanelMode>
+  ::operator()(Scalar* blockA, const Scalar* EIGEN_RESTRICT _lhs, Index lhsStride, Index depth, Index rows, Index stride, Index offset)
+{
+  typedef typename packet_traits<Scalar>::type Packet;
+  enum { PacketSize = packet_traits<Scalar>::size };
+
+  EIGEN_ASM_COMMENT("EIGEN PRODUCT PACK LHS");
+  EIGEN_UNUSED_VARIABLE(stride)
+  EIGEN_UNUSED_VARIABLE(offset)
+  eigen_assert(((!PanelMode) && stride==0 && offset==0) || (PanelMode && stride>=depth && offset<=stride));
+  eigen_assert( (StorageOrder==RowMajor) || ((Pack1%PacketSize)==0 && Pack1<=4*PacketSize) );
+  conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
+  const_blas_data_mapper<Scalar, Index, StorageOrder> lhs(_lhs,lhsStride);
+  Index count = 0;
+  Index peeled_mc = (rows/Pack1)*Pack1;
+  for(Index i=0; i<peeled_mc; i+=Pack1)
+  {
+    if(PanelMode) count += Pack1 * offset;
+
+    if(StorageOrder==ColMajor)
+    {
+      for(Index k=0; k<depth; k++)
+      {
+        Packet A, B, C, D;
+        if(Pack1>=1*PacketSize) A = ploadu<Packet>(&lhs(i+0*PacketSize, k));
+        if(Pack1>=2*PacketSize) B = ploadu<Packet>(&lhs(i+1*PacketSize, k));
+        if(Pack1>=3*PacketSize) C = ploadu<Packet>(&lhs(i+2*PacketSize, k));
+        if(Pack1>=4*PacketSize) D = ploadu<Packet>(&lhs(i+3*PacketSize, k));
+        if(Pack1>=1*PacketSize) { pstore(blockA+count, cj.pconj(A)); count+=PacketSize; }
+        if(Pack1>=2*PacketSize) { pstore(blockA+count, cj.pconj(B)); count+=PacketSize; }
+        if(Pack1>=3*PacketSize) { pstore(blockA+count, cj.pconj(C)); count+=PacketSize; }
+        if(Pack1>=4*PacketSize) { pstore(blockA+count, cj.pconj(D)); count+=PacketSize; }
+      }
+    }
+    else
+    {
+      for(Index k=0; k<depth; k++)
+      {
+        // TODO add a vectorized transpose here
+        Index w=0;
+        for(; w<Pack1-3; w+=4)
+        {
+          Scalar a(cj(lhs(i+w+0, k))),
+                  b(cj(lhs(i+w+1, k))),
+                  c(cj(lhs(i+w+2, k))),
+                  d(cj(lhs(i+w+3, k)));
+          blockA[count++] = a;
+          blockA[count++] = b;
+          blockA[count++] = c;
+          blockA[count++] = d;
+        }
+        if(Pack1%4)
+          for(;w<Pack1;++w)
+            blockA[count++] = cj(lhs(i+w, k));
+      }
+    }
+    if(PanelMode) count += Pack1 * (stride-offset-depth);
+  }
+  if(rows-peeled_mc>=Pack2)
+  {
+    if(PanelMode) count += Pack2*offset;
+    for(Index k=0; k<depth; k++)
+      for(Index w=0; w<Pack2; w++)
+        blockA[count++] = cj(lhs(peeled_mc+w, k));
+    if(PanelMode) count += Pack2 * (stride-offset-depth);
+    peeled_mc += Pack2;
+  }
+  for(Index i=peeled_mc; i<rows; i++)
+  {
+    if(PanelMode) count += offset;
+    for(Index k=0; k<depth; k++)
+      blockA[count++] = cj(lhs(i, k));
+    if(PanelMode) count += (stride-offset-depth);
+  }
+}
+
+// copy a complete panel of the rhs
+// this version is optimized for column major matrices
+// The traversal order is as follow: (nr==4):
+//  0  1  2  3   12 13 14 15   24 27
+//  4  5  6  7   16 17 18 19   25 28
+//  8  9 10 11   20 21 22 23   26 29
+//  .  .  .  .    .  .  .  .    .  .
+template<typename Scalar, typename Index, int nr, bool Conjugate, bool PanelMode>
+struct gemm_pack_rhs<Scalar, Index, nr, ColMajor, Conjugate, PanelMode>
+{
+  typedef typename packet_traits<Scalar>::type Packet;
+  enum { PacketSize = packet_traits<Scalar>::size };
+  EIGEN_DONT_INLINE void operator()(Scalar* blockB, const Scalar* rhs, Index rhsStride, Index depth, Index cols, Index stride=0, Index offset=0);
+};
+
+template<typename Scalar, typename Index, int nr, bool Conjugate, bool PanelMode>
+EIGEN_DONT_INLINE void gemm_pack_rhs<Scalar, Index, nr, ColMajor, Conjugate, PanelMode>
+  ::operator()(Scalar* blockB, const Scalar* rhs, Index rhsStride, Index depth, Index cols, Index stride, Index offset)
+{
+  EIGEN_ASM_COMMENT("EIGEN PRODUCT PACK RHS COLMAJOR");
+  EIGEN_UNUSED_VARIABLE(stride)
+  EIGEN_UNUSED_VARIABLE(offset)
+  eigen_assert(((!PanelMode) && stride==0 && offset==0) || (PanelMode && stride>=depth && offset<=stride));
+  conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
+  Index packet_cols = (cols/nr) * nr;
+  Index count = 0;
+  for(Index j2=0; j2<packet_cols; j2+=nr)
+  {
+    // skip what we have before
+    if(PanelMode) count += nr * offset;
+    const Scalar* b0 = &rhs[(j2+0)*rhsStride];
+    const Scalar* b1 = &rhs[(j2+1)*rhsStride];
+    const Scalar* b2 = &rhs[(j2+2)*rhsStride];
+    const Scalar* b3 = &rhs[(j2+3)*rhsStride];
+    for(Index k=0; k<depth; k++)
+    {
+                blockB[count+0] = cj(b0[k]);
+                blockB[count+1] = cj(b1[k]);
+      if(nr==4) blockB[count+2] = cj(b2[k]);
+      if(nr==4) blockB[count+3] = cj(b3[k]);
+      count += nr;
+    }
+    // skip what we have after
+    if(PanelMode) count += nr * (stride-offset-depth);
+  }
+
+  // copy the remaining columns one at a time (nr==1)
+  for(Index j2=packet_cols; j2<cols; ++j2)
+  {
+    if(PanelMode) count += offset;
+    const Scalar* b0 = &rhs[(j2+0)*rhsStride];
+    for(Index k=0; k<depth; k++)
+    {
+      blockB[count] = cj(b0[k]);
+      count += 1;
+    }
+    if(PanelMode) count += (stride-offset-depth);
+  }
+}
+
+// this version is optimized for row major matrices
+template<typename Scalar, typename Index, int nr, bool Conjugate, bool PanelMode>
+struct gemm_pack_rhs<Scalar, Index, nr, RowMajor, Conjugate, PanelMode>
+{
+  enum { PacketSize = packet_traits<Scalar>::size };
+  EIGEN_DONT_INLINE void operator()(Scalar* blockB, const Scalar* rhs, Index rhsStride, Index depth, Index cols, Index stride=0, Index offset=0);
+};
+
+template<typename Scalar, typename Index, int nr, bool Conjugate, bool PanelMode>
+EIGEN_DONT_INLINE void gemm_pack_rhs<Scalar, Index, nr, RowMajor, Conjugate, PanelMode>
+  ::operator()(Scalar* blockB, const Scalar* rhs, Index rhsStride, Index depth, Index cols, Index stride, Index offset)
+{
+  EIGEN_ASM_COMMENT("EIGEN PRODUCT PACK RHS ROWMAJOR");
+  EIGEN_UNUSED_VARIABLE(stride)
+  EIGEN_UNUSED_VARIABLE(offset)
+  eigen_assert(((!PanelMode) && stride==0 && offset==0) || (PanelMode && stride>=depth && offset<=stride));
+  conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
+  Index packet_cols = (cols/nr) * nr;
+  Index count = 0;
+  for(Index j2=0; j2<packet_cols; j2+=nr)
+  {
+    // skip what we have before
+    if(PanelMode) count += nr * offset;
+    for(Index k=0; k<depth; k++)
+    {
+      const Scalar* b0 = &rhs[k*rhsStride + j2];
+                blockB[count+0] = cj(b0[0]);
+                blockB[count+1] = cj(b0[1]);
+      if(nr==4) blockB[count+2] = cj(b0[2]);
+      if(nr==4) blockB[count+3] = cj(b0[3]);
+      count += nr;
+    }
+    // skip what we have after
+    if(PanelMode) count += nr * (stride-offset-depth);
+  }
+  // copy the remaining columns one at a time (nr==1)
+  for(Index j2=packet_cols; j2<cols; ++j2)
+  {
+    if(PanelMode) count += offset;
+    const Scalar* b0 = &rhs[j2];
+    for(Index k=0; k<depth; k++)
+    {
+      blockB[count] = cj(b0[k*rhsStride]);
+      count += 1;
+    }
+    if(PanelMode) count += stride-offset-depth;
+  }
+}
+
+} // end namespace internal
+
+/** \returns the currently set level 1 cpu cache size (in bytes) used to estimate the ideal blocking size parameters.
+  * \sa setCpuCacheSize */
+inline std::ptrdiff_t l1CacheSize()
+{
+  std::ptrdiff_t l1, l2;
+  internal::manage_caching_sizes(GetAction, &l1, &l2);
+  return l1;
+}
+
+/** \returns the currently set level 2 cpu cache size (in bytes) used to estimate the ideal blocking size parameters.
+  * \sa setCpuCacheSize */
+inline std::ptrdiff_t l2CacheSize()
+{
+  std::ptrdiff_t l1, l2;
+  internal::manage_caching_sizes(GetAction, &l1, &l2);
+  return l2;
+}
+
+/** Set the cpu L1 and L2 cache sizes (in bytes).
+  * These values are use to adjust the size of the blocks
+  * for the algorithms working per blocks.
+  *
+  * \sa computeProductBlockingSizes */
+inline void setCpuCacheSizes(std::ptrdiff_t l1, std::ptrdiff_t l2)
+{
+  internal::manage_caching_sizes(SetAction, &l1, &l2);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_BLOCK_PANEL_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralMatrixMatrix.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralMatrixMatrix.h
new file mode 100644
index 0000000..cfd2f00
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralMatrixMatrix.h
@@ -0,0 +1,433 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERAL_MATRIX_MATRIX_H
+#define EIGEN_GENERAL_MATRIX_MATRIX_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename _LhsScalar, typename _RhsScalar> class level3_blocking;
+
+/* Specialization for a row-major destination matrix => simple transposition of the product */
+template<
+  typename Index,
+  typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
+  typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs>
+struct general_matrix_matrix_product<Index,LhsScalar,LhsStorageOrder,ConjugateLhs,RhsScalar,RhsStorageOrder,ConjugateRhs,RowMajor>
+{
+  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+  static EIGEN_STRONG_INLINE void run(
+    Index rows, Index cols, Index depth,
+    const LhsScalar* lhs, Index lhsStride,
+    const RhsScalar* rhs, Index rhsStride,
+    ResScalar* res, Index resStride,
+    ResScalar alpha,
+    level3_blocking<RhsScalar,LhsScalar>& blocking,
+    GemmParallelInfo<Index>* info = 0)
+  {
+    // transpose the product such that the result is column major
+    general_matrix_matrix_product<Index,
+      RhsScalar, RhsStorageOrder==RowMajor ? ColMajor : RowMajor, ConjugateRhs,
+      LhsScalar, LhsStorageOrder==RowMajor ? ColMajor : RowMajor, ConjugateLhs,
+      ColMajor>
+    ::run(cols,rows,depth,rhs,rhsStride,lhs,lhsStride,res,resStride,alpha,blocking,info);
+  }
+};
+
+/*  Specialization for a col-major destination matrix
+ *    => Blocking algorithm following Goto's paper */
+template<
+  typename Index,
+  typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
+  typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs>
+struct general_matrix_matrix_product<Index,LhsScalar,LhsStorageOrder,ConjugateLhs,RhsScalar,RhsStorageOrder,ConjugateRhs,ColMajor>
+{
+
+typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+static void run(Index rows, Index cols, Index depth,
+  const LhsScalar* _lhs, Index lhsStride,
+  const RhsScalar* _rhs, Index rhsStride,
+  ResScalar* res, Index resStride,
+  ResScalar alpha,
+  level3_blocking<LhsScalar,RhsScalar>& blocking,
+  GemmParallelInfo<Index>* info = 0)
+{
+  const_blas_data_mapper<LhsScalar, Index, LhsStorageOrder> lhs(_lhs,lhsStride);
+  const_blas_data_mapper<RhsScalar, Index, RhsStorageOrder> rhs(_rhs,rhsStride);
+
+  typedef gebp_traits<LhsScalar,RhsScalar> Traits;
+
+  Index kc = blocking.kc();                   // cache block size along the K direction
+  Index mc = (std::min)(rows,blocking.mc());  // cache block size along the M direction
+  //Index nc = blocking.nc(); // cache block size along the N direction
+
+  gemm_pack_lhs<LhsScalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
+  gemm_pack_rhs<RhsScalar, Index, Traits::nr, RhsStorageOrder> pack_rhs;
+  gebp_kernel<LhsScalar, RhsScalar, Index, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp;
+
+#ifdef EIGEN_HAS_OPENMP
+  if(info)
+  {
+    // this is the parallel version!
+    Index tid = omp_get_thread_num();
+    Index threads = omp_get_num_threads();
+    
+    std::size_t sizeA = kc*mc;
+    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
+    ei_declare_aligned_stack_constructed_variable(LhsScalar, blockA, sizeA, 0);
+    ei_declare_aligned_stack_constructed_variable(RhsScalar, w, sizeW, 0);
+    
+    RhsScalar* blockB = blocking.blockB();
+    eigen_internal_assert(blockB!=0);
+
+    // For each horizontal panel of the rhs, and corresponding vertical panel of the lhs...
+    for(Index k=0; k<depth; k+=kc)
+    {
+      const Index actual_kc = (std::min)(k+kc,depth)-k; // => rows of B', and cols of the A'
+
+      // In order to reduce the chance that a thread has to wait for the other,
+      // let's start by packing A'.
+      pack_lhs(blockA, &lhs(0,k), lhsStride, actual_kc, mc);
+
+      // Pack B_k to B' in a parallel fashion:
+      // each thread packs the sub block B_k,j to B'_j where j is the thread id.
+
+      // However, before copying to B'_j, we have to make sure that no other thread is still using it,
+      // i.e., we test that info[tid].users equals 0.
+      // Then, we set info[tid].users to the number of threads to mark that all other threads are going to use it.
+      while(info[tid].users!=0) {}
+      info[tid].users += threads;
+
+      pack_rhs(blockB+info[tid].rhs_start*actual_kc, &rhs(k,info[tid].rhs_start), rhsStride, actual_kc, info[tid].rhs_length);
+
+      // Notify the other threads that the part B'_j is ready to go.
+      info[tid].sync = k;
+
+      // Computes C_i += A' * B' per B'_j
+      for(Index shift=0; shift<threads; ++shift)
+      {
+        Index j = (tid+shift)%threads;
+
+        // At this point we have to make sure that B'_j has been updated by the thread j,
+        // we use testAndSetOrdered to mimic a volatile access.
+        // However, no need to wait for the B' part which has been updated by the current thread!
+        if(shift>0)
+          while(info[j].sync!=k) {}
+
+        gebp(res+info[j].rhs_start*resStride, resStride, blockA, blockB+info[j].rhs_start*actual_kc, mc, actual_kc, info[j].rhs_length, alpha, -1,-1,0,0, w);
+      }
+
+      // Then keep going as usual with the remaining A'
+      for(Index i=mc; i<rows; i+=mc)
+      {
+        const Index actual_mc = (std::min)(i+mc,rows)-i;
+
+        // pack A_i,k to A'
+        pack_lhs(blockA, &lhs(i,k), lhsStride, actual_kc, actual_mc);
+
+        // C_i += A' * B'
+        gebp(res+i, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha, -1,-1,0,0, w);
+      }
+
+      // Release all the sub blocks B'_j of B' for the current thread,
+      // i.e., we simply decrement the number of users by 1
+      for(Index j=0; j<threads; ++j)
+      {
+        #pragma omp atomic
+        info[j].users -= 1;
+      }
+    }
+  }
+  else
+#endif // EIGEN_HAS_OPENMP
+  {
+    EIGEN_UNUSED_VARIABLE(info);
+
+    // this is the sequential version!
+    std::size_t sizeA = kc*mc;
+    std::size_t sizeB = kc*cols;
+    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
+
+    ei_declare_aligned_stack_constructed_variable(LhsScalar, blockA, sizeA, blocking.blockA());
+    ei_declare_aligned_stack_constructed_variable(RhsScalar, blockB, sizeB, blocking.blockB());
+    ei_declare_aligned_stack_constructed_variable(RhsScalar, blockW, sizeW, blocking.blockW());
+
+    // For each horizontal panel of the rhs, and corresponding panel of the lhs...
+    // (==GEMM_VAR1)
+    for(Index k2=0; k2<depth; k2+=kc)
+    {
+      const Index actual_kc = (std::min)(k2+kc,depth)-k2;
+
+      // OK, here we have selected one horizontal panel of rhs and one vertical panel of lhs.
+      // => Pack rhs's panel into a sequential chunk of memory (L2 caching)
+      // Note that this panel will be read as many times as the number of blocks in the lhs's
+      // vertical panel which is, in practice, a very low number.
+      pack_rhs(blockB, &rhs(k2,0), rhsStride, actual_kc, cols);
+
+      // For each mc x kc block of the lhs's vertical panel...
+      // (==GEPP_VAR1)
+      for(Index i2=0; i2<rows; i2+=mc)
+      {
+        const Index actual_mc = (std::min)(i2+mc,rows)-i2;
+
+        // We pack the lhs's block into a sequential chunk of memory (L1 caching)
+        // Note that this block will be read a very high number of times, which is equal to the number of
+        // micro vertical panel of the large rhs's panel (e.g., cols/4 times).
+        pack_lhs(blockA, &lhs(i2,k2), lhsStride, actual_kc, actual_mc);
+
+        // Everything is packed, we can now call the block * panel kernel:
+        gebp(res+i2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha, -1, -1, 0, 0, blockW);
+      }
+    }
+  }
+}
+
+};
+
+/*********************************************************************************
+*  Specialization of GeneralProduct<> for "large" GEMM, i.e.,
+*  implementation of the high level wrapper to general_matrix_matrix_product
+**********************************************************************************/
+
+template<typename Lhs, typename Rhs>
+struct traits<GeneralProduct<Lhs,Rhs,GemmProduct> >
+ : traits<ProductBase<GeneralProduct<Lhs,Rhs,GemmProduct>, Lhs, Rhs> >
+{};
+
+template<typename Scalar, typename Index, typename Gemm, typename Lhs, typename Rhs, typename Dest, typename BlockingType>
+struct gemm_functor
+{
+  gemm_functor(const Lhs& lhs, const Rhs& rhs, Dest& dest, const Scalar& actualAlpha,
+                  BlockingType& blocking)
+    : m_lhs(lhs), m_rhs(rhs), m_dest(dest), m_actualAlpha(actualAlpha), m_blocking(blocking)
+  {}
+
+  void initParallelSession() const
+  {
+    m_blocking.allocateB();
+  }
+
+  void operator() (Index row, Index rows, Index col=0, Index cols=-1, GemmParallelInfo<Index>* info=0) const
+  {
+    if(cols==-1)
+      cols = m_rhs.cols();
+
+    Gemm::run(rows, cols, m_lhs.cols(),
+              /*(const Scalar*)*/&m_lhs.coeffRef(row,0), m_lhs.outerStride(),
+              /*(const Scalar*)*/&m_rhs.coeffRef(0,col), m_rhs.outerStride(),
+              (Scalar*)&(m_dest.coeffRef(row,col)), m_dest.outerStride(),
+              m_actualAlpha, m_blocking, info);
+  }
+
+  protected:
+    const Lhs& m_lhs;
+    const Rhs& m_rhs;
+    Dest& m_dest;
+    Scalar m_actualAlpha;
+    BlockingType& m_blocking;
+};
+
+template<int StorageOrder, typename LhsScalar, typename RhsScalar, int MaxRows, int MaxCols, int MaxDepth, int KcFactor=1,
+bool FiniteAtCompileTime = MaxRows!=Dynamic && MaxCols!=Dynamic && MaxDepth != Dynamic> class gemm_blocking_space;
+
+template<typename _LhsScalar, typename _RhsScalar>
+class level3_blocking
+{
+    typedef _LhsScalar LhsScalar;
+    typedef _RhsScalar RhsScalar;
+
+  protected:
+    LhsScalar* m_blockA;
+    RhsScalar* m_blockB;
+    RhsScalar* m_blockW;
+
+    DenseIndex m_mc;
+    DenseIndex m_nc;
+    DenseIndex m_kc;
+
+  public:
+
+    level3_blocking()
+      : m_blockA(0), m_blockB(0), m_blockW(0), m_mc(0), m_nc(0), m_kc(0)
+    {}
+
+    inline DenseIndex mc() const { return m_mc; }
+    inline DenseIndex nc() const { return m_nc; }
+    inline DenseIndex kc() const { return m_kc; }
+
+    inline LhsScalar* blockA() { return m_blockA; }
+    inline RhsScalar* blockB() { return m_blockB; }
+    inline RhsScalar* blockW() { return m_blockW; }
+};
+
+template<int StorageOrder, typename _LhsScalar, typename _RhsScalar, int MaxRows, int MaxCols, int MaxDepth, int KcFactor>
+class gemm_blocking_space<StorageOrder,_LhsScalar,_RhsScalar,MaxRows, MaxCols, MaxDepth, KcFactor, true>
+  : public level3_blocking<
+      typename conditional<StorageOrder==RowMajor,_RhsScalar,_LhsScalar>::type,
+      typename conditional<StorageOrder==RowMajor,_LhsScalar,_RhsScalar>::type>
+{
+    enum {
+      Transpose = StorageOrder==RowMajor,
+      ActualRows = Transpose ? MaxCols : MaxRows,
+      ActualCols = Transpose ? MaxRows : MaxCols
+    };
+    typedef typename conditional<Transpose,_RhsScalar,_LhsScalar>::type LhsScalar;
+    typedef typename conditional<Transpose,_LhsScalar,_RhsScalar>::type RhsScalar;
+    typedef gebp_traits<LhsScalar,RhsScalar> Traits;
+    enum {
+      SizeA = ActualRows * MaxDepth,
+      SizeB = ActualCols * MaxDepth,
+      SizeW = MaxDepth * Traits::WorkSpaceFactor
+    };
+
+    EIGEN_ALIGN16 LhsScalar m_staticA[SizeA];
+    EIGEN_ALIGN16 RhsScalar m_staticB[SizeB];
+    EIGEN_ALIGN16 RhsScalar m_staticW[SizeW];
+
+  public:
+
+    gemm_blocking_space(DenseIndex /*rows*/, DenseIndex /*cols*/, DenseIndex /*depth*/)
+    {
+      this->m_mc = ActualRows;
+      this->m_nc = ActualCols;
+      this->m_kc = MaxDepth;
+      this->m_blockA = m_staticA;
+      this->m_blockB = m_staticB;
+      this->m_blockW = m_staticW;
+    }
+
+    inline void allocateA() {}
+    inline void allocateB() {}
+    inline void allocateW() {}
+    inline void allocateAll() {}
+};
+
+template<int StorageOrder, typename _LhsScalar, typename _RhsScalar, int MaxRows, int MaxCols, int MaxDepth, int KcFactor>
+class gemm_blocking_space<StorageOrder,_LhsScalar,_RhsScalar,MaxRows, MaxCols, MaxDepth, KcFactor, false>
+  : public level3_blocking<
+      typename conditional<StorageOrder==RowMajor,_RhsScalar,_LhsScalar>::type,
+      typename conditional<StorageOrder==RowMajor,_LhsScalar,_RhsScalar>::type>
+{
+    enum {
+      Transpose = StorageOrder==RowMajor
+    };
+    typedef typename conditional<Transpose,_RhsScalar,_LhsScalar>::type LhsScalar;
+    typedef typename conditional<Transpose,_LhsScalar,_RhsScalar>::type RhsScalar;
+    typedef gebp_traits<LhsScalar,RhsScalar> Traits;
+
+    DenseIndex m_sizeA;
+    DenseIndex m_sizeB;
+    DenseIndex m_sizeW;
+
+  public:
+
+    gemm_blocking_space(DenseIndex rows, DenseIndex cols, DenseIndex depth)
+    {
+      this->m_mc = Transpose ? cols : rows;
+      this->m_nc = Transpose ? rows : cols;
+      this->m_kc = depth;
+
+      computeProductBlockingSizes<LhsScalar,RhsScalar,KcFactor>(this->m_kc, this->m_mc, this->m_nc);
+      m_sizeA = this->m_mc * this->m_kc;
+      m_sizeB = this->m_kc * this->m_nc;
+      m_sizeW = this->m_kc*Traits::WorkSpaceFactor;
+    }
+
+    void allocateA()
+    {
+      if(this->m_blockA==0)
+        this->m_blockA = aligned_new<LhsScalar>(m_sizeA);
+    }
+
+    void allocateB()
+    {
+      if(this->m_blockB==0)
+        this->m_blockB = aligned_new<RhsScalar>(m_sizeB);
+    }
+
+    void allocateW()
+    {
+      if(this->m_blockW==0)
+        this->m_blockW = aligned_new<RhsScalar>(m_sizeW);
+    }
+
+    void allocateAll()
+    {
+      allocateA();
+      allocateB();
+      allocateW();
+    }
+
+    ~gemm_blocking_space()
+    {
+      aligned_delete(this->m_blockA, m_sizeA);
+      aligned_delete(this->m_blockB, m_sizeB);
+      aligned_delete(this->m_blockW, m_sizeW);
+    }
+};
+
+} // end namespace internal
+
+template<typename Lhs, typename Rhs>
+class GeneralProduct<Lhs, Rhs, GemmProduct>
+  : public ProductBase<GeneralProduct<Lhs,Rhs,GemmProduct>, Lhs, Rhs>
+{
+    enum {
+      MaxDepthAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(Lhs::MaxColsAtCompileTime,Rhs::MaxRowsAtCompileTime)
+    };
+  public:
+    EIGEN_PRODUCT_PUBLIC_INTERFACE(GeneralProduct)
+    
+    typedef typename  Lhs::Scalar LhsScalar;
+    typedef typename  Rhs::Scalar RhsScalar;
+    typedef           Scalar      ResScalar;
+
+    GeneralProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
+    {
+#if !(defined(EIGEN_NO_STATIC_ASSERT) && defined(EIGEN_NO_DEBUG))
+      typedef internal::scalar_product_op<LhsScalar,RhsScalar> BinOp;
+      EIGEN_CHECK_BINARY_COMPATIBILIY(BinOp,LhsScalar,RhsScalar);
+#endif
+    }
+
+    template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
+    {
+      eigen_assert(dst.rows()==m_lhs.rows() && dst.cols()==m_rhs.cols());
+      if(m_lhs.cols()==0 || m_lhs.rows()==0 || m_rhs.cols()==0)
+        return;
+
+      typename internal::add_const_on_value_type<ActualLhsType>::type lhs = LhsBlasTraits::extract(m_lhs);
+      typename internal::add_const_on_value_type<ActualRhsType>::type rhs = RhsBlasTraits::extract(m_rhs);
+
+      Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(m_lhs)
+                                 * RhsBlasTraits::extractScalarFactor(m_rhs);
+
+      typedef internal::gemm_blocking_space<(Dest::Flags&RowMajorBit) ? RowMajor : ColMajor,LhsScalar,RhsScalar,
+              Dest::MaxRowsAtCompileTime,Dest::MaxColsAtCompileTime,MaxDepthAtCompileTime> BlockingType;
+
+      typedef internal::gemm_functor<
+        Scalar, Index,
+        internal::general_matrix_matrix_product<
+          Index,
+          LhsScalar, (_ActualLhsType::Flags&RowMajorBit) ? RowMajor : ColMajor, bool(LhsBlasTraits::NeedToConjugate),
+          RhsScalar, (_ActualRhsType::Flags&RowMajorBit) ? RowMajor : ColMajor, bool(RhsBlasTraits::NeedToConjugate),
+          (Dest::Flags&RowMajorBit) ? RowMajor : ColMajor>,
+        _ActualLhsType, _ActualRhsType, Dest, BlockingType> GemmFunctor;
+
+      BlockingType blocking(dst.rows(), dst.cols(), lhs.cols());
+
+      internal::parallelize_gemm<(Dest::MaxRowsAtCompileTime>32 || Dest::MaxRowsAtCompileTime==Dynamic)>(GemmFunctor(lhs, rhs, dst, actualAlpha, blocking), this->rows(), this->cols(), Dest::Flags&RowMajorBit);
+    }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_MATRIX_MATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralMatrixVector.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralMatrixVector.h
new file mode 100644
index 0000000..0938770
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralMatrixVector.h
@@ -0,0 +1,566 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERAL_MATRIX_VECTOR_H
+#define EIGEN_GENERAL_MATRIX_VECTOR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/* Optimized col-major matrix * vector product:
+ * This algorithm processes 4 columns at onces that allows to both reduce
+ * the number of load/stores of the result by a factor 4 and to reduce
+ * the instruction dependency. Moreover, we know that all bands have the
+ * same alignment pattern.
+ *
+ * Mixing type logic: C += alpha * A * B
+ *  |  A  |  B  |alpha| comments
+ *  |real |cplx |cplx | no vectorization
+ *  |real |cplx |real | alpha is converted to a cplx when calling the run function, no vectorization
+ *  |cplx |real |cplx | invalid, the caller has to do tmp: = A * B; C += alpha*tmp
+ *  |cplx |real |real | optimal case, vectorization possible via real-cplx mul
+ */
+template<typename Index, typename LhsScalar, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs, int Version>
+struct general_matrix_vector_product<Index,LhsScalar,ColMajor,ConjugateLhs,RhsScalar,ConjugateRhs,Version>
+{
+typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+
+enum {
+  Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable
+              && int(packet_traits<LhsScalar>::size)==int(packet_traits<RhsScalar>::size),
+  LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+  RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+  ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1
+};
+
+typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
+typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
+typedef typename packet_traits<ResScalar>::type  _ResPacket;
+
+typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
+typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
+typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
+
+EIGEN_DONT_INLINE static void run(
+  Index rows, Index cols,
+  const LhsScalar* lhs, Index lhsStride,
+  const RhsScalar* rhs, Index rhsIncr,
+  ResScalar* res, Index resIncr, RhsScalar alpha);
+};
+
+template<typename Index, typename LhsScalar, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs, int Version>
+EIGEN_DONT_INLINE void general_matrix_vector_product<Index,LhsScalar,ColMajor,ConjugateLhs,RhsScalar,ConjugateRhs,Version>::run(
+  Index rows, Index cols,
+  const LhsScalar* lhs, Index lhsStride,
+  const RhsScalar* rhs, Index rhsIncr,
+  ResScalar* res, Index resIncr, RhsScalar alpha)
+{
+  EIGEN_UNUSED_VARIABLE(resIncr)
+  eigen_internal_assert(resIncr==1);
+  #ifdef _EIGEN_ACCUMULATE_PACKETS
+  #error _EIGEN_ACCUMULATE_PACKETS has already been defined
+  #endif
+  #define _EIGEN_ACCUMULATE_PACKETS(A0,A13,A2) \
+    pstore(&res[j], \
+      padd(pload<ResPacket>(&res[j]), \
+        padd( \
+          padd(pcj.pmul(EIGEN_CAT(ploa , A0)<LhsPacket>(&lhs0[j]),    ptmp0), \
+                  pcj.pmul(EIGEN_CAT(ploa , A13)<LhsPacket>(&lhs1[j]),   ptmp1)), \
+          padd(pcj.pmul(EIGEN_CAT(ploa , A2)<LhsPacket>(&lhs2[j]),    ptmp2), \
+                  pcj.pmul(EIGEN_CAT(ploa , A13)<LhsPacket>(&lhs3[j]),   ptmp3)) )))
+
+  conj_helper<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> cj;
+  conj_helper<LhsPacket,RhsPacket,ConjugateLhs,ConjugateRhs> pcj;
+  if(ConjugateRhs)
+    alpha = numext::conj(alpha);
+
+  enum { AllAligned = 0, EvenAligned, FirstAligned, NoneAligned };
+  const Index columnsAtOnce = 4;
+  const Index peels = 2;
+  const Index LhsPacketAlignedMask = LhsPacketSize-1;
+  const Index ResPacketAlignedMask = ResPacketSize-1;
+//  const Index PeelAlignedMask = ResPacketSize*peels-1;
+  const Index size = rows;
+  
+  // How many coeffs of the result do we have to skip to be aligned.
+  // Here we assume data are at least aligned on the base scalar type.
+  Index alignedStart = internal::first_aligned(res,size);
+  Index alignedSize = ResPacketSize>1 ? alignedStart + ((size-alignedStart) & ~ResPacketAlignedMask) : 0;
+  const Index peeledSize = alignedSize - RhsPacketSize*peels - RhsPacketSize + 1;
+
+  const Index alignmentStep = LhsPacketSize>1 ? (LhsPacketSize - lhsStride % LhsPacketSize) & LhsPacketAlignedMask : 0;
+  Index alignmentPattern = alignmentStep==0 ? AllAligned
+                       : alignmentStep==(LhsPacketSize/2) ? EvenAligned
+                       : FirstAligned;
+
+  // we cannot assume the first element is aligned because of sub-matrices
+  const Index lhsAlignmentOffset = internal::first_aligned(lhs,size);
+
+  // find how many columns do we have to skip to be aligned with the result (if possible)
+  Index skipColumns = 0;
+  // if the data cannot be aligned (TODO add some compile time tests when possible, e.g. for floats)
+  if( (size_t(lhs)%sizeof(LhsScalar)) || (size_t(res)%sizeof(ResScalar)) )
+  {
+    alignedSize = 0;
+    alignedStart = 0;
+  }
+  else if (LhsPacketSize>1)
+  {
+    eigen_internal_assert(size_t(lhs+lhsAlignmentOffset)%sizeof(LhsPacket)==0 || size<LhsPacketSize);
+
+    while (skipColumns<LhsPacketSize &&
+          alignedStart != ((lhsAlignmentOffset + alignmentStep*skipColumns)%LhsPacketSize))
+      ++skipColumns;
+    if (skipColumns==LhsPacketSize)
+    {
+      // nothing can be aligned, no need to skip any column
+      alignmentPattern = NoneAligned;
+      skipColumns = 0;
+    }
+    else
+    {
+      skipColumns = (std::min)(skipColumns,cols);
+      // note that the skiped columns are processed later.
+    }
+
+    eigen_internal_assert(  (alignmentPattern==NoneAligned)
+                      || (skipColumns + columnsAtOnce >= cols)
+                      || LhsPacketSize > size
+                      || (size_t(lhs+alignedStart+lhsStride*skipColumns)%sizeof(LhsPacket))==0);
+  }
+  else if(Vectorizable)
+  {
+    alignedStart = 0;
+    alignedSize = size;
+    alignmentPattern = AllAligned;
+  }
+
+  Index offset1 = (FirstAligned && alignmentStep==1?3:1);
+  Index offset3 = (FirstAligned && alignmentStep==1?1:3);
+
+  Index columnBound = ((cols-skipColumns)/columnsAtOnce)*columnsAtOnce + skipColumns;
+  for (Index i=skipColumns; i<columnBound; i+=columnsAtOnce)
+  {
+    RhsPacket ptmp0 = pset1<RhsPacket>(alpha*rhs[i*rhsIncr]),
+              ptmp1 = pset1<RhsPacket>(alpha*rhs[(i+offset1)*rhsIncr]),
+              ptmp2 = pset1<RhsPacket>(alpha*rhs[(i+2)*rhsIncr]),
+              ptmp3 = pset1<RhsPacket>(alpha*rhs[(i+offset3)*rhsIncr]);
+
+    // this helps a lot generating better binary code
+    const LhsScalar *lhs0 = lhs + i*lhsStride,     *lhs1 = lhs + (i+offset1)*lhsStride,
+                    *lhs2 = lhs + (i+2)*lhsStride, *lhs3 = lhs + (i+offset3)*lhsStride;
+
+    if (Vectorizable)
+    {
+      /* explicit vectorization */
+      // process initial unaligned coeffs
+      for (Index j=0; j<alignedStart; ++j)
+      {
+        res[j] = cj.pmadd(lhs0[j], pfirst(ptmp0), res[j]);
+        res[j] = cj.pmadd(lhs1[j], pfirst(ptmp1), res[j]);
+        res[j] = cj.pmadd(lhs2[j], pfirst(ptmp2), res[j]);
+        res[j] = cj.pmadd(lhs3[j], pfirst(ptmp3), res[j]);
+      }
+
+      if (alignedSize>alignedStart)
+      {
+        switch(alignmentPattern)
+        {
+          case AllAligned:
+            for (Index j = alignedStart; j<alignedSize; j+=ResPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(d,d,d);
+            break;
+          case EvenAligned:
+            for (Index j = alignedStart; j<alignedSize; j+=ResPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(d,du,d);
+            break;
+          case FirstAligned:
+          {
+            Index j = alignedStart;
+            if(peels>1)
+            {
+              LhsPacket A00, A01, A02, A03, A10, A11, A12, A13;
+              ResPacket T0, T1;
+
+              A01 = pload<LhsPacket>(&lhs1[alignedStart-1]);
+              A02 = pload<LhsPacket>(&lhs2[alignedStart-2]);
+              A03 = pload<LhsPacket>(&lhs3[alignedStart-3]);
+
+              for (; j<peeledSize; j+=peels*ResPacketSize)
+              {
+                A11 = pload<LhsPacket>(&lhs1[j-1+LhsPacketSize]);  palign<1>(A01,A11);
+                A12 = pload<LhsPacket>(&lhs2[j-2+LhsPacketSize]);  palign<2>(A02,A12);
+                A13 = pload<LhsPacket>(&lhs3[j-3+LhsPacketSize]);  palign<3>(A03,A13);
+
+                A00 = pload<LhsPacket>(&lhs0[j]);
+                A10 = pload<LhsPacket>(&lhs0[j+LhsPacketSize]);
+                T0  = pcj.pmadd(A00, ptmp0, pload<ResPacket>(&res[j]));
+                T1  = pcj.pmadd(A10, ptmp0, pload<ResPacket>(&res[j+ResPacketSize]));
+
+                T0  = pcj.pmadd(A01, ptmp1, T0);
+                A01 = pload<LhsPacket>(&lhs1[j-1+2*LhsPacketSize]);  palign<1>(A11,A01);
+                T0  = pcj.pmadd(A02, ptmp2, T0);
+                A02 = pload<LhsPacket>(&lhs2[j-2+2*LhsPacketSize]);  palign<2>(A12,A02);
+                T0  = pcj.pmadd(A03, ptmp3, T0);
+                pstore(&res[j],T0);
+                A03 = pload<LhsPacket>(&lhs3[j-3+2*LhsPacketSize]);  palign<3>(A13,A03);
+                T1  = pcj.pmadd(A11, ptmp1, T1);
+                T1  = pcj.pmadd(A12, ptmp2, T1);
+                T1  = pcj.pmadd(A13, ptmp3, T1);
+                pstore(&res[j+ResPacketSize],T1);
+              }
+            }
+            for (; j<alignedSize; j+=ResPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(d,du,du);
+            break;
+          }
+          default:
+            for (Index j = alignedStart; j<alignedSize; j+=ResPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(du,du,du);
+            break;
+        }
+      }
+    } // end explicit vectorization
+
+    /* process remaining coeffs (or all if there is no explicit vectorization) */
+    for (Index j=alignedSize; j<size; ++j)
+    {
+      res[j] = cj.pmadd(lhs0[j], pfirst(ptmp0), res[j]);
+      res[j] = cj.pmadd(lhs1[j], pfirst(ptmp1), res[j]);
+      res[j] = cj.pmadd(lhs2[j], pfirst(ptmp2), res[j]);
+      res[j] = cj.pmadd(lhs3[j], pfirst(ptmp3), res[j]);
+    }
+  }
+
+  // process remaining first and last columns (at most columnsAtOnce-1)
+  Index end = cols;
+  Index start = columnBound;
+  do
+  {
+    for (Index k=start; k<end; ++k)
+    {
+      RhsPacket ptmp0 = pset1<RhsPacket>(alpha*rhs[k*rhsIncr]);
+      const LhsScalar* lhs0 = lhs + k*lhsStride;
+
+      if (Vectorizable)
+      {
+        /* explicit vectorization */
+        // process first unaligned result's coeffs
+        for (Index j=0; j<alignedStart; ++j)
+          res[j] += cj.pmul(lhs0[j], pfirst(ptmp0));
+        // process aligned result's coeffs
+        if ((size_t(lhs0+alignedStart)%sizeof(LhsPacket))==0)
+          for (Index i = alignedStart;i<alignedSize;i+=ResPacketSize)
+            pstore(&res[i], pcj.pmadd(pload<LhsPacket>(&lhs0[i]), ptmp0, pload<ResPacket>(&res[i])));
+        else
+          for (Index i = alignedStart;i<alignedSize;i+=ResPacketSize)
+            pstore(&res[i], pcj.pmadd(ploadu<LhsPacket>(&lhs0[i]), ptmp0, pload<ResPacket>(&res[i])));
+      }
+
+      // process remaining scalars (or all if no explicit vectorization)
+      for (Index i=alignedSize; i<size; ++i)
+        res[i] += cj.pmul(lhs0[i], pfirst(ptmp0));
+    }
+    if (skipColumns)
+    {
+      start = 0;
+      end = skipColumns;
+      skipColumns = 0;
+    }
+    else
+      break;
+  } while(Vectorizable);
+  #undef _EIGEN_ACCUMULATE_PACKETS
+}
+
+/* Optimized row-major matrix * vector product:
+ * This algorithm processes 4 rows at onces that allows to both reduce
+ * the number of load/stores of the result by a factor 4 and to reduce
+ * the instruction dependency. Moreover, we know that all bands have the
+ * same alignment pattern.
+ *
+ * Mixing type logic:
+ *  - alpha is always a complex (or converted to a complex)
+ *  - no vectorization
+ */
+template<typename Index, typename LhsScalar, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs, int Version>
+struct general_matrix_vector_product<Index,LhsScalar,RowMajor,ConjugateLhs,RhsScalar,ConjugateRhs,Version>
+{
+typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+
+enum {
+  Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable
+              && int(packet_traits<LhsScalar>::size)==int(packet_traits<RhsScalar>::size),
+  LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+  RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+  ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1
+};
+
+typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
+typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
+typedef typename packet_traits<ResScalar>::type  _ResPacket;
+
+typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
+typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
+typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
+  
+EIGEN_DONT_INLINE static void run(
+  Index rows, Index cols,
+  const LhsScalar* lhs, Index lhsStride,
+  const RhsScalar* rhs, Index rhsIncr,
+  ResScalar* res, Index resIncr,
+  ResScalar alpha);
+};
+
+template<typename Index, typename LhsScalar, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs, int Version>
+EIGEN_DONT_INLINE void general_matrix_vector_product<Index,LhsScalar,RowMajor,ConjugateLhs,RhsScalar,ConjugateRhs,Version>::run(
+  Index rows, Index cols,
+  const LhsScalar* lhs, Index lhsStride,
+  const RhsScalar* rhs, Index rhsIncr,
+  ResScalar* res, Index resIncr,
+  ResScalar alpha)
+{
+  EIGEN_UNUSED_VARIABLE(rhsIncr);
+  eigen_internal_assert(rhsIncr==1);
+  #ifdef _EIGEN_ACCUMULATE_PACKETS
+  #error _EIGEN_ACCUMULATE_PACKETS has already been defined
+  #endif
+
+  #define _EIGEN_ACCUMULATE_PACKETS(A0,A13,A2) {\
+    RhsPacket b = pload<RhsPacket>(&rhs[j]); \
+    ptmp0 = pcj.pmadd(EIGEN_CAT(ploa,A0) <LhsPacket>(&lhs0[j]), b, ptmp0); \
+    ptmp1 = pcj.pmadd(EIGEN_CAT(ploa,A13)<LhsPacket>(&lhs1[j]), b, ptmp1); \
+    ptmp2 = pcj.pmadd(EIGEN_CAT(ploa,A2) <LhsPacket>(&lhs2[j]), b, ptmp2); \
+    ptmp3 = pcj.pmadd(EIGEN_CAT(ploa,A13)<LhsPacket>(&lhs3[j]), b, ptmp3); }
+
+  conj_helper<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> cj;
+  conj_helper<LhsPacket,RhsPacket,ConjugateLhs,ConjugateRhs> pcj;
+
+  enum { AllAligned=0, EvenAligned=1, FirstAligned=2, NoneAligned=3 };
+  const Index rowsAtOnce = 4;
+  const Index peels = 2;
+  const Index RhsPacketAlignedMask = RhsPacketSize-1;
+  const Index LhsPacketAlignedMask = LhsPacketSize-1;
+//   const Index PeelAlignedMask = RhsPacketSize*peels-1;
+  const Index depth = cols;
+
+  // How many coeffs of the result do we have to skip to be aligned.
+  // Here we assume data are at least aligned on the base scalar type
+  // if that's not the case then vectorization is discarded, see below.
+  Index alignedStart = internal::first_aligned(rhs, depth);
+  Index alignedSize = RhsPacketSize>1 ? alignedStart + ((depth-alignedStart) & ~RhsPacketAlignedMask) : 0;
+  const Index peeledSize = alignedSize - RhsPacketSize*peels - RhsPacketSize + 1;
+
+  const Index alignmentStep = LhsPacketSize>1 ? (LhsPacketSize - lhsStride % LhsPacketSize) & LhsPacketAlignedMask : 0;
+  Index alignmentPattern = alignmentStep==0 ? AllAligned
+                         : alignmentStep==(LhsPacketSize/2) ? EvenAligned
+                         : FirstAligned;
+
+  // we cannot assume the first element is aligned because of sub-matrices
+  const Index lhsAlignmentOffset = internal::first_aligned(lhs,depth);
+
+  // find how many rows do we have to skip to be aligned with rhs (if possible)
+  Index skipRows = 0;
+  // if the data cannot be aligned (TODO add some compile time tests when possible, e.g. for floats)
+  if( (sizeof(LhsScalar)!=sizeof(RhsScalar)) || (size_t(lhs)%sizeof(LhsScalar)) || (size_t(rhs)%sizeof(RhsScalar)) )
+  {
+    alignedSize = 0;
+    alignedStart = 0;
+  }
+  else if (LhsPacketSize>1)
+  {
+    eigen_internal_assert(size_t(lhs+lhsAlignmentOffset)%sizeof(LhsPacket)==0  || depth<LhsPacketSize);
+
+    while (skipRows<LhsPacketSize &&
+           alignedStart != ((lhsAlignmentOffset + alignmentStep*skipRows)%LhsPacketSize))
+      ++skipRows;
+    if (skipRows==LhsPacketSize)
+    {
+      // nothing can be aligned, no need to skip any column
+      alignmentPattern = NoneAligned;
+      skipRows = 0;
+    }
+    else
+    {
+      skipRows = (std::min)(skipRows,Index(rows));
+      // note that the skiped columns are processed later.
+    }
+    eigen_internal_assert(  alignmentPattern==NoneAligned
+                      || LhsPacketSize==1
+                      || (skipRows + rowsAtOnce >= rows)
+                      || LhsPacketSize > depth
+                      || (size_t(lhs+alignedStart+lhsStride*skipRows)%sizeof(LhsPacket))==0);
+  }
+  else if(Vectorizable)
+  {
+    alignedStart = 0;
+    alignedSize = depth;
+    alignmentPattern = AllAligned;
+  }
+
+  Index offset1 = (FirstAligned && alignmentStep==1?3:1);
+  Index offset3 = (FirstAligned && alignmentStep==1?1:3);
+
+  Index rowBound = ((rows-skipRows)/rowsAtOnce)*rowsAtOnce + skipRows;
+  for (Index i=skipRows; i<rowBound; i+=rowsAtOnce)
+  {
+    EIGEN_ALIGN16 ResScalar tmp0 = ResScalar(0);
+    ResScalar tmp1 = ResScalar(0), tmp2 = ResScalar(0), tmp3 = ResScalar(0);
+
+    // this helps the compiler generating good binary code
+    const LhsScalar *lhs0 = lhs + i*lhsStride,     *lhs1 = lhs + (i+offset1)*lhsStride,
+                    *lhs2 = lhs + (i+2)*lhsStride, *lhs3 = lhs + (i+offset3)*lhsStride;
+
+    if (Vectorizable)
+    {
+      /* explicit vectorization */
+      ResPacket ptmp0 = pset1<ResPacket>(ResScalar(0)), ptmp1 = pset1<ResPacket>(ResScalar(0)),
+                ptmp2 = pset1<ResPacket>(ResScalar(0)), ptmp3 = pset1<ResPacket>(ResScalar(0));
+
+      // process initial unaligned coeffs
+      // FIXME this loop get vectorized by the compiler !
+      for (Index j=0; j<alignedStart; ++j)
+      {
+        RhsScalar b = rhs[j];
+        tmp0 += cj.pmul(lhs0[j],b); tmp1 += cj.pmul(lhs1[j],b);
+        tmp2 += cj.pmul(lhs2[j],b); tmp3 += cj.pmul(lhs3[j],b);
+      }
+
+      if (alignedSize>alignedStart)
+      {
+        switch(alignmentPattern)
+        {
+          case AllAligned:
+            for (Index j = alignedStart; j<alignedSize; j+=RhsPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(d,d,d);
+            break;
+          case EvenAligned:
+            for (Index j = alignedStart; j<alignedSize; j+=RhsPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(d,du,d);
+            break;
+          case FirstAligned:
+          {
+            Index j = alignedStart;
+            if (peels>1)
+            {
+              /* Here we proccess 4 rows with with two peeled iterations to hide
+               * the overhead of unaligned loads. Moreover unaligned loads are handled
+               * using special shift/move operations between the two aligned packets
+               * overlaping the desired unaligned packet. This is *much* more efficient
+               * than basic unaligned loads.
+               */
+              LhsPacket A01, A02, A03, A11, A12, A13;
+              A01 = pload<LhsPacket>(&lhs1[alignedStart-1]);
+              A02 = pload<LhsPacket>(&lhs2[alignedStart-2]);
+              A03 = pload<LhsPacket>(&lhs3[alignedStart-3]);
+
+              for (; j<peeledSize; j+=peels*RhsPacketSize)
+              {
+                RhsPacket b = pload<RhsPacket>(&rhs[j]);
+                A11 = pload<LhsPacket>(&lhs1[j-1+LhsPacketSize]);  palign<1>(A01,A11);
+                A12 = pload<LhsPacket>(&lhs2[j-2+LhsPacketSize]);  palign<2>(A02,A12);
+                A13 = pload<LhsPacket>(&lhs3[j-3+LhsPacketSize]);  palign<3>(A03,A13);
+
+                ptmp0 = pcj.pmadd(pload<LhsPacket>(&lhs0[j]), b, ptmp0);
+                ptmp1 = pcj.pmadd(A01, b, ptmp1);
+                A01 = pload<LhsPacket>(&lhs1[j-1+2*LhsPacketSize]);  palign<1>(A11,A01);
+                ptmp2 = pcj.pmadd(A02, b, ptmp2);
+                A02 = pload<LhsPacket>(&lhs2[j-2+2*LhsPacketSize]);  palign<2>(A12,A02);
+                ptmp3 = pcj.pmadd(A03, b, ptmp3);
+                A03 = pload<LhsPacket>(&lhs3[j-3+2*LhsPacketSize]);  palign<3>(A13,A03);
+
+                b = pload<RhsPacket>(&rhs[j+RhsPacketSize]);
+                ptmp0 = pcj.pmadd(pload<LhsPacket>(&lhs0[j+LhsPacketSize]), b, ptmp0);
+                ptmp1 = pcj.pmadd(A11, b, ptmp1);
+                ptmp2 = pcj.pmadd(A12, b, ptmp2);
+                ptmp3 = pcj.pmadd(A13, b, ptmp3);
+              }
+            }
+            for (; j<alignedSize; j+=RhsPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(d,du,du);
+            break;
+          }
+          default:
+            for (Index j = alignedStart; j<alignedSize; j+=RhsPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(du,du,du);
+            break;
+        }
+        tmp0 += predux(ptmp0);
+        tmp1 += predux(ptmp1);
+        tmp2 += predux(ptmp2);
+        tmp3 += predux(ptmp3);
+      }
+    } // end explicit vectorization
+
+    // process remaining coeffs (or all if no explicit vectorization)
+    // FIXME this loop get vectorized by the compiler !
+    for (Index j=alignedSize; j<depth; ++j)
+    {
+      RhsScalar b = rhs[j];
+      tmp0 += cj.pmul(lhs0[j],b); tmp1 += cj.pmul(lhs1[j],b);
+      tmp2 += cj.pmul(lhs2[j],b); tmp3 += cj.pmul(lhs3[j],b);
+    }
+    res[i*resIncr]            += alpha*tmp0;
+    res[(i+offset1)*resIncr]  += alpha*tmp1;
+    res[(i+2)*resIncr]        += alpha*tmp2;
+    res[(i+offset3)*resIncr]  += alpha*tmp3;
+  }
+
+  // process remaining first and last rows (at most columnsAtOnce-1)
+  Index end = rows;
+  Index start = rowBound;
+  do
+  {
+    for (Index i=start; i<end; ++i)
+    {
+      EIGEN_ALIGN16 ResScalar tmp0 = ResScalar(0);
+      ResPacket ptmp0 = pset1<ResPacket>(tmp0);
+      const LhsScalar* lhs0 = lhs + i*lhsStride;
+      // process first unaligned result's coeffs
+      // FIXME this loop get vectorized by the compiler !
+      for (Index j=0; j<alignedStart; ++j)
+        tmp0 += cj.pmul(lhs0[j], rhs[j]);
+
+      if (alignedSize>alignedStart)
+      {
+        // process aligned rhs coeffs
+        if ((size_t(lhs0+alignedStart)%sizeof(LhsPacket))==0)
+          for (Index j = alignedStart;j<alignedSize;j+=RhsPacketSize)
+            ptmp0 = pcj.pmadd(pload<LhsPacket>(&lhs0[j]), pload<RhsPacket>(&rhs[j]), ptmp0);
+        else
+          for (Index j = alignedStart;j<alignedSize;j+=RhsPacketSize)
+            ptmp0 = pcj.pmadd(ploadu<LhsPacket>(&lhs0[j]), pload<RhsPacket>(&rhs[j]), ptmp0);
+        tmp0 += predux(ptmp0);
+      }
+
+      // process remaining scalars
+      // FIXME this loop get vectorized by the compiler !
+      for (Index j=alignedSize; j<depth; ++j)
+        tmp0 += cj.pmul(lhs0[j], rhs[j]);
+      res[i*resIncr] += alpha*tmp0;
+    }
+    if (skipRows)
+    {
+      start = 0;
+      end = skipRows;
+      skipRows = 0;
+    }
+    else
+      break;
+  } while(Vectorizable);
+
+  #undef _EIGEN_ACCUMULATE_PACKETS
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_MATRIX_VECTOR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralMatrixVector_MKL.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralMatrixVector_MKL.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/products/GeneralMatrixVector_MKL.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/products/GeneralMatrixVector_MKL.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/products/Parallelizer.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/Parallelizer.h
new file mode 100644
index 0000000..6937ee3
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/products/Parallelizer.h
@@ -0,0 +1,162 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PARALLELIZER_H
+#define EIGEN_PARALLELIZER_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \internal */
+inline void manage_multi_threading(Action action, int* v)
+{
+  static EIGEN_UNUSED int m_maxThreads = -1;
+
+  if(action==SetAction)
+  {
+    eigen_internal_assert(v!=0);
+    m_maxThreads = *v;
+  }
+  else if(action==GetAction)
+  {
+    eigen_internal_assert(v!=0);
+    #ifdef EIGEN_HAS_OPENMP
+    if(m_maxThreads>0)
+      *v = m_maxThreads;
+    else
+      *v = omp_get_max_threads();
+    #else
+    *v = 1;
+    #endif
+  }
+  else
+  {
+    eigen_internal_assert(false);
+  }
+}
+
+}
+
+/** Must be call first when calling Eigen from multiple threads */
+inline void initParallel()
+{
+  int nbt;
+  internal::manage_multi_threading(GetAction, &nbt);
+  std::ptrdiff_t l1, l2;
+  internal::manage_caching_sizes(GetAction, &l1, &l2);
+}
+
+/** \returns the max number of threads reserved for Eigen
+  * \sa setNbThreads */
+inline int nbThreads()
+{
+  int ret;
+  internal::manage_multi_threading(GetAction, &ret);
+  return ret;
+}
+
+/** Sets the max number of threads reserved for Eigen
+  * \sa nbThreads */
+inline void setNbThreads(int v)
+{
+  internal::manage_multi_threading(SetAction, &v);
+}
+
+namespace internal {
+
+template<typename Index> struct GemmParallelInfo
+{
+  GemmParallelInfo() : sync(-1), users(0), rhs_start(0), rhs_length(0) {}
+
+  int volatile sync;
+  int volatile users;
+
+  Index rhs_start;
+  Index rhs_length;
+};
+
+template<bool Condition, typename Functor, typename Index>
+void parallelize_gemm(const Functor& func, Index rows, Index cols, bool transpose)
+{
+  // TODO when EIGEN_USE_BLAS is defined,
+  // we should still enable OMP for other scalar types
+#if !(defined (EIGEN_HAS_OPENMP)) || defined (EIGEN_USE_BLAS)
+  // FIXME the transpose variable is only needed to properly split
+  // the matrix product when multithreading is enabled. This is a temporary
+  // fix to support row-major destination matrices. This whole
+  // parallelizer mechanism has to be redisigned anyway.
+  EIGEN_UNUSED_VARIABLE(transpose);
+  func(0,rows, 0,cols);
+#else
+
+  // Dynamically check whether we should enable or disable OpenMP.
+  // The conditions are:
+  // - the max number of threads we can create is greater than 1
+  // - we are not already in a parallel code
+  // - the sizes are large enough
+
+  // 1- are we already in a parallel session?
+  // FIXME omp_get_num_threads()>1 only works for openmp, what if the user does not use openmp?
+  if((!Condition) || (omp_get_num_threads()>1))
+    return func(0,rows, 0,cols);
+
+  Index size = transpose ? cols : rows;
+
+  // 2- compute the maximal number of threads from the size of the product:
+  // FIXME this has to be fine tuned
+  Index max_threads = std::max<Index>(1,size / 32);
+
+  // 3 - compute the number of threads we are going to use
+  Index threads = std::min<Index>(nbThreads(), max_threads);
+
+  if(threads==1)
+    return func(0,rows, 0,cols);
+
+  Eigen::initParallel();
+  func.initParallelSession();
+
+  if(transpose)
+    std::swap(rows,cols);
+
+  GemmParallelInfo<Index>* info = new GemmParallelInfo<Index>[threads];
+
+  #pragma omp parallel num_threads(threads)
+  {
+    Index i = omp_get_thread_num();
+    // Note that the actual number of threads might be lower than the number of request ones.
+    Index actual_threads = omp_get_num_threads();
+    
+    Index blockCols = (cols / actual_threads) & ~Index(0x3);
+    Index blockRows = (rows / actual_threads) & ~Index(0x7);
+    
+    Index r0 = i*blockRows;
+    Index actualBlockRows = (i+1==actual_threads) ? rows-r0 : blockRows;
+
+    Index c0 = i*blockCols;
+    Index actualBlockCols = (i+1==actual_threads) ? cols-c0 : blockCols;
+
+    info[i].rhs_start = c0;
+    info[i].rhs_length = actualBlockCols;
+
+    if(transpose)
+      func(0, cols, r0, actualBlockRows, info);
+    else
+      func(r0, actualBlockRows, 0,cols, info);
+  }
+
+  delete[] info;
+#endif
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARALLELIZER_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/products/SelfadjointMatrixMatrix.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
new file mode 100644
index 0000000..99cf9e0
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
@@ -0,0 +1,436 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINT_MATRIX_MATRIX_H
+#define EIGEN_SELFADJOINT_MATRIX_MATRIX_H
+
+namespace Eigen { 
+
+namespace internal {
+
+// pack a selfadjoint block diagonal for use with the gebp_kernel
+template<typename Scalar, typename Index, int Pack1, int Pack2, int StorageOrder>
+struct symm_pack_lhs
+{
+  template<int BlockRows> inline
+  void pack(Scalar* blockA, const const_blas_data_mapper<Scalar,Index,StorageOrder>& lhs, Index cols, Index i, Index& count)
+  {
+    // normal copy
+    for(Index k=0; k<i; k++)
+      for(Index w=0; w<BlockRows; w++)
+        blockA[count++] = lhs(i+w,k);           // normal
+    // symmetric copy
+    Index h = 0;
+    for(Index k=i; k<i+BlockRows; k++)
+    {
+      for(Index w=0; w<h; w++)
+        blockA[count++] = numext::conj(lhs(k, i+w)); // transposed
+
+      blockA[count++] = numext::real(lhs(k,k));   // real (diagonal)
+
+      for(Index w=h+1; w<BlockRows; w++)
+        blockA[count++] = lhs(i+w, k);          // normal
+      ++h;
+    }
+    // transposed copy
+    for(Index k=i+BlockRows; k<cols; k++)
+      for(Index w=0; w<BlockRows; w++)
+        blockA[count++] = numext::conj(lhs(k, i+w)); // transposed
+  }
+  void operator()(Scalar* blockA, const Scalar* _lhs, Index lhsStride, Index cols, Index rows)
+  {
+    const_blas_data_mapper<Scalar,Index,StorageOrder> lhs(_lhs,lhsStride);
+    Index count = 0;
+    Index peeled_mc = (rows/Pack1)*Pack1;
+    for(Index i=0; i<peeled_mc; i+=Pack1)
+    {
+      pack<Pack1>(blockA, lhs, cols, i, count);
+    }
+
+    if(rows-peeled_mc>=Pack2)
+    {
+      pack<Pack2>(blockA, lhs, cols, peeled_mc, count);
+      peeled_mc += Pack2;
+    }
+
+    // do the same with mr==1
+    for(Index i=peeled_mc; i<rows; i++)
+    {
+      for(Index k=0; k<i; k++)
+        blockA[count++] = lhs(i, k);              // normal
+
+      blockA[count++] = numext::real(lhs(i, i));       // real (diagonal)
+
+      for(Index k=i+1; k<cols; k++)
+        blockA[count++] = numext::conj(lhs(k, i));     // transposed
+    }
+  }
+};
+
+template<typename Scalar, typename Index, int nr, int StorageOrder>
+struct symm_pack_rhs
+{
+  enum { PacketSize = packet_traits<Scalar>::size };
+  void operator()(Scalar* blockB, const Scalar* _rhs, Index rhsStride, Index rows, Index cols, Index k2)
+  {
+    Index end_k = k2 + rows;
+    Index count = 0;
+    const_blas_data_mapper<Scalar,Index,StorageOrder> rhs(_rhs,rhsStride);
+    Index packet_cols = (cols/nr)*nr;
+
+    // first part: normal case
+    for(Index j2=0; j2<k2; j2+=nr)
+    {
+      for(Index k=k2; k<end_k; k++)
+      {
+        blockB[count+0] = rhs(k,j2+0);
+        blockB[count+1] = rhs(k,j2+1);
+        if (nr==4)
+        {
+          blockB[count+2] = rhs(k,j2+2);
+          blockB[count+3] = rhs(k,j2+3);
+        }
+        count += nr;
+      }
+    }
+
+    // second part: diagonal block
+    for(Index j2=k2; j2<(std::min)(k2+rows,packet_cols); j2+=nr)
+    {
+      // again we can split vertically in three different parts (transpose, symmetric, normal)
+      // transpose
+      for(Index k=k2; k<j2; k++)
+      {
+        blockB[count+0] = numext::conj(rhs(j2+0,k));
+        blockB[count+1] = numext::conj(rhs(j2+1,k));
+        if (nr==4)
+        {
+          blockB[count+2] = numext::conj(rhs(j2+2,k));
+          blockB[count+3] = numext::conj(rhs(j2+3,k));
+        }
+        count += nr;
+      }
+      // symmetric
+      Index h = 0;
+      for(Index k=j2; k<j2+nr; k++)
+      {
+        // normal
+        for (Index w=0 ; w<h; ++w)
+          blockB[count+w] = rhs(k,j2+w);
+
+        blockB[count+h] = numext::real(rhs(k,k));
+
+        // transpose
+        for (Index w=h+1 ; w<nr; ++w)
+          blockB[count+w] = numext::conj(rhs(j2+w,k));
+        count += nr;
+        ++h;
+      }
+      // normal
+      for(Index k=j2+nr; k<end_k; k++)
+      {
+        blockB[count+0] = rhs(k,j2+0);
+        blockB[count+1] = rhs(k,j2+1);
+        if (nr==4)
+        {
+          blockB[count+2] = rhs(k,j2+2);
+          blockB[count+3] = rhs(k,j2+3);
+        }
+        count += nr;
+      }
+    }
+
+    // third part: transposed
+    for(Index j2=k2+rows; j2<packet_cols; j2+=nr)
+    {
+      for(Index k=k2; k<end_k; k++)
+      {
+        blockB[count+0] = numext::conj(rhs(j2+0,k));
+        blockB[count+1] = numext::conj(rhs(j2+1,k));
+        if (nr==4)
+        {
+          blockB[count+2] = numext::conj(rhs(j2+2,k));
+          blockB[count+3] = numext::conj(rhs(j2+3,k));
+        }
+        count += nr;
+      }
+    }
+
+    // copy the remaining columns one at a time (=> the same with nr==1)
+    for(Index j2=packet_cols; j2<cols; ++j2)
+    {
+      // transpose
+      Index half = (std::min)(end_k,j2);
+      for(Index k=k2; k<half; k++)
+      {
+        blockB[count] = numext::conj(rhs(j2,k));
+        count += 1;
+      }
+
+      if(half==j2 && half<k2+rows)
+      {
+        blockB[count] = numext::real(rhs(j2,j2));
+        count += 1;
+      }
+      else
+        half--;
+
+      // normal
+      for(Index k=half+1; k<k2+rows; k++)
+      {
+        blockB[count] = rhs(k,j2);
+        count += 1;
+      }
+    }
+  }
+};
+
+/* Optimized selfadjoint matrix * matrix (_SYMM) product built on top of
+ * the general matrix matrix product.
+ */
+template <typename Scalar, typename Index,
+          int LhsStorageOrder, bool LhsSelfAdjoint, bool ConjugateLhs,
+          int RhsStorageOrder, bool RhsSelfAdjoint, bool ConjugateRhs,
+          int ResStorageOrder>
+struct product_selfadjoint_matrix;
+
+template <typename Scalar, typename Index,
+          int LhsStorageOrder, bool LhsSelfAdjoint, bool ConjugateLhs,
+          int RhsStorageOrder, bool RhsSelfAdjoint, bool ConjugateRhs>
+struct product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,LhsSelfAdjoint,ConjugateLhs, RhsStorageOrder,RhsSelfAdjoint,ConjugateRhs,RowMajor>
+{
+
+  static EIGEN_STRONG_INLINE void run(
+    Index rows, Index cols,
+    const Scalar* lhs, Index lhsStride,
+    const Scalar* rhs, Index rhsStride,
+    Scalar* res,       Index resStride,
+    const Scalar& alpha)
+  {
+    product_selfadjoint_matrix<Scalar, Index,
+      EIGEN_LOGICAL_XOR(RhsSelfAdjoint,RhsStorageOrder==RowMajor) ? ColMajor : RowMajor,
+      RhsSelfAdjoint, NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(RhsSelfAdjoint,ConjugateRhs),
+      EIGEN_LOGICAL_XOR(LhsSelfAdjoint,LhsStorageOrder==RowMajor) ? ColMajor : RowMajor,
+      LhsSelfAdjoint, NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(LhsSelfAdjoint,ConjugateLhs),
+      ColMajor>
+      ::run(cols, rows,  rhs, rhsStride,  lhs, lhsStride,  res, resStride,  alpha);
+  }
+};
+
+template <typename Scalar, typename Index,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs>
+struct product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,true,ConjugateLhs, RhsStorageOrder,false,ConjugateRhs,ColMajor>
+{
+
+  static EIGEN_DONT_INLINE void run(
+    Index rows, Index cols,
+    const Scalar* _lhs, Index lhsStride,
+    const Scalar* _rhs, Index rhsStride,
+    Scalar* res,        Index resStride,
+    const Scalar& alpha);
+};
+
+template <typename Scalar, typename Index,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs>
+EIGEN_DONT_INLINE void product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,true,ConjugateLhs, RhsStorageOrder,false,ConjugateRhs,ColMajor>::run(
+    Index rows, Index cols,
+    const Scalar* _lhs, Index lhsStride,
+    const Scalar* _rhs, Index rhsStride,
+    Scalar* res,        Index resStride,
+    const Scalar& alpha)
+  {
+    Index size = rows;
+
+    const_blas_data_mapper<Scalar, Index, LhsStorageOrder> lhs(_lhs,lhsStride);
+    const_blas_data_mapper<Scalar, Index, RhsStorageOrder> rhs(_rhs,rhsStride);
+
+    typedef gebp_traits<Scalar,Scalar> Traits;
+
+    Index kc = size;  // cache block size along the K direction
+    Index mc = rows;  // cache block size along the M direction
+    Index nc = cols;  // cache block size along the N direction
+    computeProductBlockingSizes<Scalar,Scalar>(kc, mc, nc);
+    // kc must smaller than mc
+    kc = (std::min)(kc,mc);
+
+    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
+    std::size_t sizeB = sizeW + kc*cols;
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockA, kc*mc, 0);
+    ei_declare_aligned_stack_constructed_variable(Scalar, allocatedBlockB, sizeB, 0);
+    Scalar* blockB = allocatedBlockB + sizeW;
+
+    gebp_kernel<Scalar, Scalar, Index, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp_kernel;
+    symm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
+    gemm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder> pack_rhs;
+    gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder==RowMajor?ColMajor:RowMajor, true> pack_lhs_transposed;
+
+    for(Index k2=0; k2<size; k2+=kc)
+    {
+      const Index actual_kc = (std::min)(k2+kc,size)-k2;
+
+      // we have selected one row panel of rhs and one column panel of lhs
+      // pack rhs's panel into a sequential chunk of memory
+      // and expand each coeff to a constant packet for further reuse
+      pack_rhs(blockB, &rhs(k2,0), rhsStride, actual_kc, cols);
+
+      // the select lhs's panel has to be split in three different parts:
+      //  1 - the transposed panel above the diagonal block => transposed packed copy
+      //  2 - the diagonal block => special packed copy
+      //  3 - the panel below the diagonal block => generic packed copy
+      for(Index i2=0; i2<k2; i2+=mc)
+      {
+        const Index actual_mc = (std::min)(i2+mc,k2)-i2;
+        // transposed packed copy
+        pack_lhs_transposed(blockA, &lhs(k2, i2), lhsStride, actual_kc, actual_mc);
+
+        gebp_kernel(res+i2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha);
+      }
+      // the block diagonal
+      {
+        const Index actual_mc = (std::min)(k2+kc,size)-k2;
+        // symmetric packed copy
+        pack_lhs(blockA, &lhs(k2,k2), lhsStride, actual_kc, actual_mc);
+
+        gebp_kernel(res+k2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha);
+      }
+
+      for(Index i2=k2+kc; i2<size; i2+=mc)
+      {
+        const Index actual_mc = (std::min)(i2+mc,size)-i2;
+        gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder,false>()
+          (blockA, &lhs(i2, k2), lhsStride, actual_kc, actual_mc);
+
+        gebp_kernel(res+i2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha);
+      }
+    }
+  }
+
+// matrix * selfadjoint product
+template <typename Scalar, typename Index,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs>
+struct product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,false,ConjugateLhs, RhsStorageOrder,true,ConjugateRhs,ColMajor>
+{
+
+  static EIGEN_DONT_INLINE void run(
+    Index rows, Index cols,
+    const Scalar* _lhs, Index lhsStride,
+    const Scalar* _rhs, Index rhsStride,
+    Scalar* res,        Index resStride,
+    const Scalar& alpha);
+};
+
+template <typename Scalar, typename Index,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs>
+EIGEN_DONT_INLINE void product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,false,ConjugateLhs, RhsStorageOrder,true,ConjugateRhs,ColMajor>::run(
+    Index rows, Index cols,
+    const Scalar* _lhs, Index lhsStride,
+    const Scalar* _rhs, Index rhsStride,
+    Scalar* res,        Index resStride,
+    const Scalar& alpha)
+  {
+    Index size = cols;
+
+    const_blas_data_mapper<Scalar, Index, LhsStorageOrder> lhs(_lhs,lhsStride);
+
+    typedef gebp_traits<Scalar,Scalar> Traits;
+
+    Index kc = size; // cache block size along the K direction
+    Index mc = rows;  // cache block size along the M direction
+    Index nc = cols;  // cache block size along the N direction
+    computeProductBlockingSizes<Scalar,Scalar>(kc, mc, nc);
+    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
+    std::size_t sizeB = sizeW + kc*cols;
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockA, kc*mc, 0);
+    ei_declare_aligned_stack_constructed_variable(Scalar, allocatedBlockB, sizeB, 0);
+    Scalar* blockB = allocatedBlockB + sizeW;
+
+    gebp_kernel<Scalar, Scalar, Index, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp_kernel;
+    gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
+    symm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder> pack_rhs;
+
+    for(Index k2=0; k2<size; k2+=kc)
+    {
+      const Index actual_kc = (std::min)(k2+kc,size)-k2;
+
+      pack_rhs(blockB, _rhs, rhsStride, actual_kc, cols, k2);
+
+      // => GEPP
+      for(Index i2=0; i2<rows; i2+=mc)
+      {
+        const Index actual_mc = (std::min)(i2+mc,rows)-i2;
+        pack_lhs(blockA, &lhs(i2, k2), lhsStride, actual_kc, actual_mc);
+
+        gebp_kernel(res+i2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha);
+      }
+    }
+  }
+
+} // end namespace internal
+
+/***************************************************************************
+* Wrapper to product_selfadjoint_matrix
+***************************************************************************/
+
+namespace internal {
+template<typename Lhs, int LhsMode, typename Rhs, int RhsMode>
+struct traits<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,RhsMode,false> >
+  : traits<ProductBase<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,RhsMode,false>, Lhs, Rhs> >
+{};
+}
+
+template<typename Lhs, int LhsMode, typename Rhs, int RhsMode>
+struct SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,RhsMode,false>
+  : public ProductBase<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,RhsMode,false>, Lhs, Rhs >
+{
+  EIGEN_PRODUCT_PUBLIC_INTERFACE(SelfadjointProductMatrix)
+
+  SelfadjointProductMatrix(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
+
+  enum {
+    LhsIsUpper = (LhsMode&(Upper|Lower))==Upper,
+    LhsIsSelfAdjoint = (LhsMode&SelfAdjoint)==SelfAdjoint,
+    RhsIsUpper = (RhsMode&(Upper|Lower))==Upper,
+    RhsIsSelfAdjoint = (RhsMode&SelfAdjoint)==SelfAdjoint
+  };
+
+  template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
+  {
+    eigen_assert(dst.rows()==m_lhs.rows() && dst.cols()==m_rhs.cols());
+
+    typename internal::add_const_on_value_type<ActualLhsType>::type lhs = LhsBlasTraits::extract(m_lhs);
+    typename internal::add_const_on_value_type<ActualRhsType>::type rhs = RhsBlasTraits::extract(m_rhs);
+
+    Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(m_lhs)
+                               * RhsBlasTraits::extractScalarFactor(m_rhs);
+
+    internal::product_selfadjoint_matrix<Scalar, Index,
+      EIGEN_LOGICAL_XOR(LhsIsUpper,
+                        internal::traits<Lhs>::Flags &RowMajorBit) ? RowMajor : ColMajor, LhsIsSelfAdjoint,
+      NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(LhsIsUpper,bool(LhsBlasTraits::NeedToConjugate)),
+      EIGEN_LOGICAL_XOR(RhsIsUpper,
+                        internal::traits<Rhs>::Flags &RowMajorBit) ? RowMajor : ColMajor, RhsIsSelfAdjoint,
+      NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(RhsIsUpper,bool(RhsBlasTraits::NeedToConjugate)),
+      internal::traits<Dest>::Flags&RowMajorBit  ? RowMajor : ColMajor>
+      ::run(
+        lhs.rows(), rhs.cols(),                 // sizes
+        &lhs.coeffRef(0,0),    lhs.outerStride(),  // lhs info
+        &rhs.coeffRef(0,0),    rhs.outerStride(),  // rhs info
+        &dst.coeffRef(0,0), dst.outerStride(),  // result info
+        actualAlpha                             // alpha
+      );
+  }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINT_MATRIX_MATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/products/SelfadjointMatrixVector.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/SelfadjointMatrixVector.h
new file mode 100644
index 0000000..f698f67
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/products/SelfadjointMatrixVector.h
@@ -0,0 +1,281 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINT_MATRIX_VECTOR_H
+#define EIGEN_SELFADJOINT_MATRIX_VECTOR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/* Optimized selfadjoint matrix * vector product:
+ * This algorithm processes 2 columns at onces that allows to both reduce
+ * the number of load/stores of the result by a factor 2 and to reduce
+ * the instruction dependency.
+ */
+
+template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs, int Version=Specialized>
+struct selfadjoint_matrix_vector_product;
+
+template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs, int Version>
+struct selfadjoint_matrix_vector_product
+
+{
+static EIGEN_DONT_INLINE void run(
+  Index size,
+  const Scalar*  lhs, Index lhsStride,
+  const Scalar* _rhs, Index rhsIncr,
+  Scalar* res,
+  Scalar alpha);
+};
+
+template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs, int Version>
+EIGEN_DONT_INLINE void selfadjoint_matrix_vector_product<Scalar,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs,Version>::run(
+  Index size,
+  const Scalar*  lhs, Index lhsStride,
+  const Scalar* _rhs, Index rhsIncr,
+  Scalar* res,
+  Scalar alpha)
+{
+  typedef typename packet_traits<Scalar>::type Packet;
+  const Index PacketSize = sizeof(Packet)/sizeof(Scalar);
+
+  enum {
+    IsRowMajor = StorageOrder==RowMajor ? 1 : 0,
+    IsLower = UpLo == Lower ? 1 : 0,
+    FirstTriangular = IsRowMajor == IsLower
+  };
+
+  conj_helper<Scalar,Scalar,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs,  IsRowMajor), ConjugateRhs> cj0;
+  conj_helper<Scalar,Scalar,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs, !IsRowMajor), ConjugateRhs> cj1;
+  conj_helper<Scalar,Scalar,NumTraits<Scalar>::IsComplex, ConjugateRhs> cjd;
+
+  conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs,  IsRowMajor), ConjugateRhs> pcj0;
+  conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs, !IsRowMajor), ConjugateRhs> pcj1;
+
+  Scalar cjAlpha = ConjugateRhs ? numext::conj(alpha) : alpha;
+
+  // FIXME this copy is now handled outside product_selfadjoint_vector, so it could probably be removed.
+  // if the rhs is not sequentially stored in memory we copy it to a temporary buffer,
+  // this is because we need to extract packets
+  ei_declare_aligned_stack_constructed_variable(Scalar,rhs,size,rhsIncr==1 ? const_cast<Scalar*>(_rhs) : 0);  
+  if (rhsIncr!=1)
+  {
+    const Scalar* it = _rhs;
+    for (Index i=0; i<size; ++i, it+=rhsIncr)
+      rhs[i] = *it;
+  }
+
+  Index bound = (std::max)(Index(0),size-8) & 0xfffffffe;
+  if (FirstTriangular)
+    bound = size - bound;
+
+  for (Index j=FirstTriangular ? bound : 0;
+       j<(FirstTriangular ? size : bound);j+=2)
+  {
+    const Scalar* EIGEN_RESTRICT A0 = lhs + j*lhsStride;
+    const Scalar* EIGEN_RESTRICT A1 = lhs + (j+1)*lhsStride;
+
+    Scalar t0 = cjAlpha * rhs[j];
+    Packet ptmp0 = pset1<Packet>(t0);
+    Scalar t1 = cjAlpha * rhs[j+1];
+    Packet ptmp1 = pset1<Packet>(t1);
+
+    Scalar t2(0);
+    Packet ptmp2 = pset1<Packet>(t2);
+    Scalar t3(0);
+    Packet ptmp3 = pset1<Packet>(t3);
+
+    size_t starti = FirstTriangular ? 0 : j+2;
+    size_t endi   = FirstTriangular ? j : size;
+    size_t alignedStart = (starti) + internal::first_aligned(&res[starti], endi-starti);
+    size_t alignedEnd = alignedStart + ((endi-alignedStart)/(PacketSize))*(PacketSize);
+
+    // TODO make sure this product is a real * complex and that the rhs is properly conjugated if needed
+    res[j]   += cjd.pmul(numext::real(A0[j]), t0);
+    res[j+1] += cjd.pmul(numext::real(A1[j+1]), t1);
+    if(FirstTriangular)
+    {
+      res[j]   += cj0.pmul(A1[j],   t1);
+      t3       += cj1.pmul(A1[j],   rhs[j]);
+    }
+    else
+    {
+      res[j+1] += cj0.pmul(A0[j+1],t0);
+      t2 += cj1.pmul(A0[j+1], rhs[j+1]);
+    }
+
+    for (size_t i=starti; i<alignedStart; ++i)
+    {
+      res[i] += t0 * A0[i] + t1 * A1[i];
+      t2 += numext::conj(A0[i]) * rhs[i];
+      t3 += numext::conj(A1[i]) * rhs[i];
+    }
+    // Yes this an optimization for gcc 4.3 and 4.4 (=> huge speed up)
+    // gcc 4.2 does this optimization automatically.
+    const Scalar* EIGEN_RESTRICT a0It  = A0  + alignedStart;
+    const Scalar* EIGEN_RESTRICT a1It  = A1  + alignedStart;
+    const Scalar* EIGEN_RESTRICT rhsIt = rhs + alignedStart;
+          Scalar* EIGEN_RESTRICT resIt = res + alignedStart;
+    for (size_t i=alignedStart; i<alignedEnd; i+=PacketSize)
+    {
+      Packet A0i = ploadu<Packet>(a0It);  a0It  += PacketSize;
+      Packet A1i = ploadu<Packet>(a1It);  a1It  += PacketSize;
+      Packet Bi  = ploadu<Packet>(rhsIt); rhsIt += PacketSize; // FIXME should be aligned in most cases
+      Packet Xi  = pload <Packet>(resIt);
+
+      Xi    = pcj0.pmadd(A0i,ptmp0, pcj0.pmadd(A1i,ptmp1,Xi));
+      ptmp2 = pcj1.pmadd(A0i,  Bi, ptmp2);
+      ptmp3 = pcj1.pmadd(A1i,  Bi, ptmp3);
+      pstore(resIt,Xi); resIt += PacketSize;
+    }
+    for (size_t i=alignedEnd; i<endi; i++)
+    {
+      res[i] += cj0.pmul(A0[i], t0) + cj0.pmul(A1[i],t1);
+      t2 += cj1.pmul(A0[i], rhs[i]);
+      t3 += cj1.pmul(A1[i], rhs[i]);
+    }
+
+    res[j]   += alpha * (t2 + predux(ptmp2));
+    res[j+1] += alpha * (t3 + predux(ptmp3));
+  }
+  for (Index j=FirstTriangular ? 0 : bound;j<(FirstTriangular ? bound : size);j++)
+  {
+    const Scalar* EIGEN_RESTRICT A0 = lhs + j*lhsStride;
+
+    Scalar t1 = cjAlpha * rhs[j];
+    Scalar t2(0);
+    // TODO make sure this product is a real * complex and that the rhs is properly conjugated if needed
+    res[j] += cjd.pmul(numext::real(A0[j]), t1);
+    for (Index i=FirstTriangular ? 0 : j+1; i<(FirstTriangular ? j : size); i++)
+    {
+      res[i] += cj0.pmul(A0[i], t1);
+      t2 += cj1.pmul(A0[i], rhs[i]);
+    }
+    res[j] += alpha * t2;
+  }
+}
+
+} // end namespace internal 
+
+/***************************************************************************
+* Wrapper to product_selfadjoint_vector
+***************************************************************************/
+
+namespace internal {
+template<typename Lhs, int LhsMode, typename Rhs>
+struct traits<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,0,true> >
+  : traits<ProductBase<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,0,true>, Lhs, Rhs> >
+{};
+}
+
+template<typename Lhs, int LhsMode, typename Rhs>
+struct SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,0,true>
+  : public ProductBase<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,0,true>, Lhs, Rhs >
+{
+  EIGEN_PRODUCT_PUBLIC_INTERFACE(SelfadjointProductMatrix)
+
+  enum {
+    LhsUpLo = LhsMode&(Upper|Lower)
+  };
+
+  SelfadjointProductMatrix(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
+
+  template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
+  {
+    typedef typename Dest::Scalar ResScalar;
+    typedef typename Base::RhsScalar RhsScalar;
+    typedef Map<Matrix<ResScalar,Dynamic,1>, Aligned> MappedDest;
+    
+    eigen_assert(dest.rows()==m_lhs.rows() && dest.cols()==m_rhs.cols());
+
+    typename internal::add_const_on_value_type<ActualLhsType>::type lhs = LhsBlasTraits::extract(m_lhs);
+    typename internal::add_const_on_value_type<ActualRhsType>::type rhs = RhsBlasTraits::extract(m_rhs);
+
+    Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(m_lhs)
+                               * RhsBlasTraits::extractScalarFactor(m_rhs);
+
+    enum {
+      EvalToDest = (Dest::InnerStrideAtCompileTime==1),
+      UseRhs = (_ActualRhsType::InnerStrideAtCompileTime==1)
+    };
+    
+    internal::gemv_static_vector_if<ResScalar,Dest::SizeAtCompileTime,Dest::MaxSizeAtCompileTime,!EvalToDest> static_dest;
+    internal::gemv_static_vector_if<RhsScalar,_ActualRhsType::SizeAtCompileTime,_ActualRhsType::MaxSizeAtCompileTime,!UseRhs> static_rhs;
+
+    ei_declare_aligned_stack_constructed_variable(ResScalar,actualDestPtr,dest.size(),
+                                                  EvalToDest ? dest.data() : static_dest.data());
+                                                  
+    ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhsPtr,rhs.size(),
+        UseRhs ? const_cast<RhsScalar*>(rhs.data()) : static_rhs.data());
+    
+    if(!EvalToDest)
+    {
+      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      int size = dest.size();
+      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      #endif
+      MappedDest(actualDestPtr, dest.size()) = dest;
+    }
+      
+    if(!UseRhs)
+    {
+      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      int size = rhs.size();
+      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      #endif
+      Map<typename _ActualRhsType::PlainObject>(actualRhsPtr, rhs.size()) = rhs;
+    }
+      
+      
+    internal::selfadjoint_matrix_vector_product<Scalar, Index, (internal::traits<_ActualLhsType>::Flags&RowMajorBit) ? RowMajor : ColMajor, int(LhsUpLo), bool(LhsBlasTraits::NeedToConjugate), bool(RhsBlasTraits::NeedToConjugate)>::run
+      (
+        lhs.rows(),                             // size
+        &lhs.coeffRef(0,0),  lhs.outerStride(), // lhs info
+        actualRhsPtr, 1,                        // rhs info
+        actualDestPtr,                          // result info
+        actualAlpha                             // scale factor
+      );
+    
+    if(!EvalToDest)
+      dest = MappedDest(actualDestPtr, dest.size());
+  }
+};
+
+namespace internal {
+template<typename Lhs, typename Rhs, int RhsMode>
+struct traits<SelfadjointProductMatrix<Lhs,0,true,Rhs,RhsMode,false> >
+  : traits<ProductBase<SelfadjointProductMatrix<Lhs,0,true,Rhs,RhsMode,false>, Lhs, Rhs> >
+{};
+}
+
+template<typename Lhs, typename Rhs, int RhsMode>
+struct SelfadjointProductMatrix<Lhs,0,true,Rhs,RhsMode,false>
+  : public ProductBase<SelfadjointProductMatrix<Lhs,0,true,Rhs,RhsMode,false>, Lhs, Rhs >
+{
+  EIGEN_PRODUCT_PUBLIC_INTERFACE(SelfadjointProductMatrix)
+
+  enum {
+    RhsUpLo = RhsMode&(Upper|Lower)
+  };
+
+  SelfadjointProductMatrix(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
+
+  template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
+  {
+    // let's simply transpose the product
+    Transpose<Dest> destT(dest);
+    SelfadjointProductMatrix<Transpose<const Rhs>, int(RhsUpLo)==Upper ? Lower : Upper, false,
+                             Transpose<const Lhs>, 0, true>(m_rhs.transpose(), m_lhs.transpose()).scaleAndAddTo(destT, alpha);
+  }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINT_MATRIX_VECTOR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/SelfadjointProduct.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/SelfadjointProduct.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/products/SelfadjointProduct.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/products/SelfadjointProduct.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/products/SelfadjointRank2Update.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/SelfadjointRank2Update.h
new file mode 100644
index 0000000..8594a97
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/products/SelfadjointRank2Update.h
@@ -0,0 +1,93 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINTRANK2UPTADE_H
+#define EIGEN_SELFADJOINTRANK2UPTADE_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/* Optimized selfadjoint matrix += alpha * uv' + conj(alpha)*vu'
+ * It corresponds to the Level2 syr2 BLAS routine
+ */
+
+template<typename Scalar, typename Index, typename UType, typename VType, int UpLo>
+struct selfadjoint_rank2_update_selector;
+
+template<typename Scalar, typename Index, typename UType, typename VType>
+struct selfadjoint_rank2_update_selector<Scalar,Index,UType,VType,Lower>
+{
+  static void run(Scalar* mat, Index stride, const UType& u, const VType& v, const Scalar& alpha)
+  {
+    const Index size = u.size();
+    for (Index i=0; i<size; ++i)
+    {
+      Map<Matrix<Scalar,Dynamic,1> >(mat+stride*i+i, size-i) +=
+                        (numext::conj(alpha) * numext::conj(u.coeff(i))) * v.tail(size-i)
+                      + (alpha * numext::conj(v.coeff(i))) * u.tail(size-i);
+    }
+  }
+};
+
+template<typename Scalar, typename Index, typename UType, typename VType>
+struct selfadjoint_rank2_update_selector<Scalar,Index,UType,VType,Upper>
+{
+  static void run(Scalar* mat, Index stride, const UType& u, const VType& v, const Scalar& alpha)
+  {
+    const Index size = u.size();
+    for (Index i=0; i<size; ++i)
+      Map<Matrix<Scalar,Dynamic,1> >(mat+stride*i, i+1) +=
+                        (numext::conj(alpha)  * numext::conj(u.coeff(i))) * v.head(i+1)
+                      + (alpha * numext::conj(v.coeff(i))) * u.head(i+1);
+  }
+};
+
+template<bool Cond, typename T> struct conj_expr_if
+  : conditional<!Cond, const T&,
+      CwiseUnaryOp<scalar_conjugate_op<typename traits<T>::Scalar>,T> > {};
+
+} // end namespace internal
+
+template<typename MatrixType, unsigned int UpLo>
+template<typename DerivedU, typename DerivedV>
+SelfAdjointView<MatrixType,UpLo>& SelfAdjointView<MatrixType,UpLo>
+::rankUpdate(const MatrixBase<DerivedU>& u, const MatrixBase<DerivedV>& v, const Scalar& alpha)
+{
+  typedef internal::blas_traits<DerivedU> UBlasTraits;
+  typedef typename UBlasTraits::DirectLinearAccessType ActualUType;
+  typedef typename internal::remove_all<ActualUType>::type _ActualUType;
+  typename internal::add_const_on_value_type<ActualUType>::type actualU = UBlasTraits::extract(u.derived());
+
+  typedef internal::blas_traits<DerivedV> VBlasTraits;
+  typedef typename VBlasTraits::DirectLinearAccessType ActualVType;
+  typedef typename internal::remove_all<ActualVType>::type _ActualVType;
+  typename internal::add_const_on_value_type<ActualVType>::type actualV = VBlasTraits::extract(v.derived());
+
+  // If MatrixType is row major, then we use the routine for lower triangular in the upper triangular case and
+  // vice versa, and take the complex conjugate of all coefficients and vector entries.
+
+  enum { IsRowMajor = (internal::traits<MatrixType>::Flags&RowMajorBit) ? 1 : 0 };
+  Scalar actualAlpha = alpha * UBlasTraits::extractScalarFactor(u.derived())
+                             * numext::conj(VBlasTraits::extractScalarFactor(v.derived()));
+  if (IsRowMajor)
+    actualAlpha = numext::conj(actualAlpha);
+
+  internal::selfadjoint_rank2_update_selector<Scalar, Index,
+    typename internal::remove_all<typename internal::conj_expr_if<IsRowMajor ^ UBlasTraits::NeedToConjugate,_ActualUType>::type>::type,
+    typename internal::remove_all<typename internal::conj_expr_if<IsRowMajor ^ VBlasTraits::NeedToConjugate,_ActualVType>::type>::type,
+    (IsRowMajor ? int(UpLo==Upper ? Lower : Upper) : UpLo)>
+    ::run(_expression().const_cast_derived().data(),_expression().outerStride(),actualU,actualV,actualAlpha);
+
+  return *this;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINTRANK2UPTADE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularMatrixMatrix.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularMatrixMatrix.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularMatrixMatrix.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularMatrixMatrix.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h
new file mode 100644
index 0000000..4cc56a4
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h
@@ -0,0 +1,309 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *   Triangular matrix * matrix product functionality based on ?TRMM.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_TRIANGULAR_MATRIX_MATRIX_MKL_H
+#define EIGEN_TRIANGULAR_MATRIX_MATRIX_MKL_H
+
+namespace Eigen { 
+
+namespace internal {
+
+
+template <typename Scalar, typename Index,
+          int Mode, bool LhsIsTriangular,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs,
+          int ResStorageOrder>
+struct product_triangular_matrix_matrix_trmm :
+       product_triangular_matrix_matrix<Scalar,Index,Mode,
+          LhsIsTriangular,LhsStorageOrder,ConjugateLhs,
+          RhsStorageOrder, ConjugateRhs, ResStorageOrder, BuiltIn> {};
+
+
+// try to go to BLAS specialization
+#define EIGEN_MKL_TRMM_SPECIALIZE(Scalar, LhsIsTriangular) \
+template <typename Index, int Mode, \
+          int LhsStorageOrder, bool ConjugateLhs, \
+          int RhsStorageOrder, bool ConjugateRhs> \
+struct product_triangular_matrix_matrix<Scalar,Index, Mode, LhsIsTriangular, \
+           LhsStorageOrder,ConjugateLhs, RhsStorageOrder,ConjugateRhs,ColMajor,Specialized> { \
+  static inline void run(Index _rows, Index _cols, Index _depth, const Scalar* _lhs, Index lhsStride,\
+    const Scalar* _rhs, Index rhsStride, Scalar* res, Index resStride, Scalar alpha, level3_blocking<Scalar,Scalar>& blocking) { \
+      product_triangular_matrix_matrix_trmm<Scalar,Index,Mode, \
+        LhsIsTriangular,LhsStorageOrder,ConjugateLhs, \
+        RhsStorageOrder, ConjugateRhs, ColMajor>::run( \
+        _rows, _cols, _depth, _lhs, lhsStride, _rhs, rhsStride, res, resStride, alpha, blocking); \
+  } \
+};
+
+EIGEN_MKL_TRMM_SPECIALIZE(double, true)
+EIGEN_MKL_TRMM_SPECIALIZE(double, false)
+EIGEN_MKL_TRMM_SPECIALIZE(dcomplex, true)
+EIGEN_MKL_TRMM_SPECIALIZE(dcomplex, false)
+EIGEN_MKL_TRMM_SPECIALIZE(float, true)
+EIGEN_MKL_TRMM_SPECIALIZE(float, false)
+EIGEN_MKL_TRMM_SPECIALIZE(scomplex, true)
+EIGEN_MKL_TRMM_SPECIALIZE(scomplex, false)
+
+// implements col-major += alpha * op(triangular) * op(general)
+#define EIGEN_MKL_TRMM_L(EIGTYPE, MKLTYPE, EIGPREFIX, MKLPREFIX) \
+template <typename Index, int Mode, \
+          int LhsStorageOrder, bool ConjugateLhs, \
+          int RhsStorageOrder, bool ConjugateRhs> \
+struct product_triangular_matrix_matrix_trmm<EIGTYPE,Index,Mode,true, \
+         LhsStorageOrder,ConjugateLhs,RhsStorageOrder,ConjugateRhs,ColMajor> \
+{ \
+  enum { \
+    IsLower = (Mode&Lower) == Lower, \
+    SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1, \
+    IsUnitDiag  = (Mode&UnitDiag) ? 1 : 0, \
+    IsZeroDiag  = (Mode&ZeroDiag) ? 1 : 0, \
+    LowUp = IsLower ? Lower : Upper, \
+    conjA = ((LhsStorageOrder==ColMajor) && ConjugateLhs) ? 1 : 0 \
+  }; \
+\
+  static void run( \
+    Index _rows, Index _cols, Index _depth, \
+    const EIGTYPE* _lhs, Index lhsStride, \
+    const EIGTYPE* _rhs, Index rhsStride, \
+    EIGTYPE* res,        Index resStride, \
+    EIGTYPE alpha, level3_blocking<EIGTYPE,EIGTYPE>& blocking) \
+  { \
+   Index diagSize  = (std::min)(_rows,_depth); \
+   Index rows      = IsLower ? _rows : diagSize; \
+   Index depth     = IsLower ? diagSize : _depth; \
+   Index cols      = _cols; \
+\
+   typedef Matrix<EIGTYPE, Dynamic, Dynamic, LhsStorageOrder> MatrixLhs; \
+   typedef Matrix<EIGTYPE, Dynamic, Dynamic, RhsStorageOrder> MatrixRhs; \
+\
+/* Non-square case - doesn't fit to MKL ?TRMM. Fall to default triangular product or call MKL ?GEMM*/ \
+   if (rows != depth) { \
+\
+     int nthr = mkl_domain_get_max_threads(EIGEN_MKL_DOMAIN_BLAS); \
+\
+     if (((nthr==1) && (((std::max)(rows,depth)-diagSize)/(double)diagSize < 0.5))) { \
+     /* Most likely no benefit to call TRMM or GEMM from MKL*/ \
+       product_triangular_matrix_matrix<EIGTYPE,Index,Mode,true, \
+       LhsStorageOrder,ConjugateLhs, RhsStorageOrder, ConjugateRhs, ColMajor, BuiltIn>::run( \
+           _rows, _cols, _depth, _lhs, lhsStride, _rhs, rhsStride, res, resStride, alpha, blocking); \
+     /*std::cout << "TRMM_L: A is not square! Go to Eigen TRMM implementation!\n";*/ \
+     } else { \
+     /* Make sense to call GEMM */ \
+       Map<const MatrixLhs, 0, OuterStride<> > lhsMap(_lhs,rows,depth,OuterStride<>(lhsStride)); \
+       MatrixLhs aa_tmp=lhsMap.template triangularView<Mode>(); \
+       MKL_INT aStride = aa_tmp.outerStride(); \
+       gemm_blocking_space<ColMajor,EIGTYPE,EIGTYPE,Dynamic,Dynamic,Dynamic> gemm_blocking(_rows,_cols,_depth); \
+       general_matrix_matrix_product<Index,EIGTYPE,LhsStorageOrder,ConjugateLhs,EIGTYPE,RhsStorageOrder,ConjugateRhs,ColMajor>::run( \
+       rows, cols, depth, aa_tmp.data(), aStride, _rhs, rhsStride, res, resStride, alpha, gemm_blocking, 0); \
+\
+     /*std::cout << "TRMM_L: A is not square! Go to MKL GEMM implementation! " << nthr<<" \n";*/ \
+     } \
+     return; \
+   } \
+   char side = 'L', transa, uplo, diag = 'N'; \
+   EIGTYPE *b; \
+   const EIGTYPE *a; \
+   MKL_INT m, n, lda, ldb; \
+   MKLTYPE alpha_; \
+\
+/* Set alpha_*/ \
+   assign_scalar_eig2mkl<MKLTYPE, EIGTYPE>(alpha_, alpha); \
+\
+/* Set m, n */ \
+   m = (MKL_INT)diagSize; \
+   n = (MKL_INT)cols; \
+\
+/* Set trans */ \
+   transa = (LhsStorageOrder==RowMajor) ? ((ConjugateLhs) ? 'C' : 'T') : 'N'; \
+\
+/* Set b, ldb */ \
+   Map<const MatrixRhs, 0, OuterStride<> > rhs(_rhs,depth,cols,OuterStride<>(rhsStride)); \
+   MatrixX##EIGPREFIX b_tmp; \
+\
+   if (ConjugateRhs) b_tmp = rhs.conjugate(); else b_tmp = rhs; \
+   b = b_tmp.data(); \
+   ldb = b_tmp.outerStride(); \
+\
+/* Set uplo */ \
+   uplo = IsLower ? 'L' : 'U'; \
+   if (LhsStorageOrder==RowMajor) uplo = (uplo == 'L') ? 'U' : 'L'; \
+/* Set a, lda */ \
+   Map<const MatrixLhs, 0, OuterStride<> > lhs(_lhs,rows,depth,OuterStride<>(lhsStride)); \
+   MatrixLhs a_tmp; \
+\
+   if ((conjA!=0) || (SetDiag==0)) { \
+     if (conjA) a_tmp = lhs.conjugate(); else a_tmp = lhs; \
+     if (IsZeroDiag) \
+       a_tmp.diagonal().setZero(); \
+     else if (IsUnitDiag) \
+       a_tmp.diagonal().setOnes();\
+     a = a_tmp.data(); \
+     lda = a_tmp.outerStride(); \
+   } else { \
+     a = _lhs; \
+     lda = lhsStride; \
+   } \
+   /*std::cout << "TRMM_L: A is square! Go to MKL TRMM implementation! \n";*/ \
+/* call ?trmm*/ \
+   MKLPREFIX##trmm(&side, &uplo, &transa, &diag, &m, &n, &alpha_, (const MKLTYPE*)a, &lda, (MKLTYPE*)b, &ldb); \
+\
+/* Add op(a_triangular)*b into res*/ \
+   Map<MatrixX##EIGPREFIX, 0, OuterStride<> > res_tmp(res,rows,cols,OuterStride<>(resStride)); \
+   res_tmp=res_tmp+b_tmp; \
+  } \
+};
+
+EIGEN_MKL_TRMM_L(double, double, d, d)
+EIGEN_MKL_TRMM_L(dcomplex, MKL_Complex16, cd, z)
+EIGEN_MKL_TRMM_L(float, float, f, s)
+EIGEN_MKL_TRMM_L(scomplex, MKL_Complex8, cf, c)
+
+// implements col-major += alpha * op(general) * op(triangular)
+#define EIGEN_MKL_TRMM_R(EIGTYPE, MKLTYPE, EIGPREFIX, MKLPREFIX) \
+template <typename Index, int Mode, \
+          int LhsStorageOrder, bool ConjugateLhs, \
+          int RhsStorageOrder, bool ConjugateRhs> \
+struct product_triangular_matrix_matrix_trmm<EIGTYPE,Index,Mode,false, \
+         LhsStorageOrder,ConjugateLhs,RhsStorageOrder,ConjugateRhs,ColMajor> \
+{ \
+  enum { \
+    IsLower = (Mode&Lower) == Lower, \
+    SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1, \
+    IsUnitDiag  = (Mode&UnitDiag) ? 1 : 0, \
+    IsZeroDiag  = (Mode&ZeroDiag) ? 1 : 0, \
+    LowUp = IsLower ? Lower : Upper, \
+    conjA = ((RhsStorageOrder==ColMajor) && ConjugateRhs) ? 1 : 0 \
+  }; \
+\
+  static void run( \
+    Index _rows, Index _cols, Index _depth, \
+    const EIGTYPE* _lhs, Index lhsStride, \
+    const EIGTYPE* _rhs, Index rhsStride, \
+    EIGTYPE* res,        Index resStride, \
+    EIGTYPE alpha, level3_blocking<EIGTYPE,EIGTYPE>& blocking) \
+  { \
+   Index diagSize  = (std::min)(_cols,_depth); \
+   Index rows      = _rows; \
+   Index depth     = IsLower ? _depth : diagSize; \
+   Index cols      = IsLower ? diagSize : _cols; \
+\
+   typedef Matrix<EIGTYPE, Dynamic, Dynamic, LhsStorageOrder> MatrixLhs; \
+   typedef Matrix<EIGTYPE, Dynamic, Dynamic, RhsStorageOrder> MatrixRhs; \
+\
+/* Non-square case - doesn't fit to MKL ?TRMM. Fall to default triangular product or call MKL ?GEMM*/ \
+   if (cols != depth) { \
+\
+     int nthr = mkl_domain_get_max_threads(EIGEN_MKL_DOMAIN_BLAS); \
+\
+     if ((nthr==1) && (((std::max)(cols,depth)-diagSize)/(double)diagSize < 0.5)) { \
+     /* Most likely no benefit to call TRMM or GEMM from MKL*/ \
+       product_triangular_matrix_matrix<EIGTYPE,Index,Mode,false, \
+       LhsStorageOrder,ConjugateLhs, RhsStorageOrder, ConjugateRhs, ColMajor, BuiltIn>::run( \
+           _rows, _cols, _depth, _lhs, lhsStride, _rhs, rhsStride, res, resStride, alpha, blocking); \
+       /*std::cout << "TRMM_R: A is not square! Go to Eigen TRMM implementation!\n";*/ \
+     } else { \
+     /* Make sense to call GEMM */ \
+       Map<const MatrixRhs, 0, OuterStride<> > rhsMap(_rhs,depth,cols, OuterStride<>(rhsStride)); \
+       MatrixRhs aa_tmp=rhsMap.template triangularView<Mode>(); \
+       MKL_INT aStride = aa_tmp.outerStride(); \
+       gemm_blocking_space<ColMajor,EIGTYPE,EIGTYPE,Dynamic,Dynamic,Dynamic> gemm_blocking(_rows,_cols,_depth); \
+       general_matrix_matrix_product<Index,EIGTYPE,LhsStorageOrder,ConjugateLhs,EIGTYPE,RhsStorageOrder,ConjugateRhs,ColMajor>::run( \
+       rows, cols, depth, _lhs, lhsStride, aa_tmp.data(), aStride, res, resStride, alpha, gemm_blocking, 0); \
+\
+     /*std::cout << "TRMM_R: A is not square! Go to MKL GEMM implementation! " << nthr<<" \n";*/ \
+     } \
+     return; \
+   } \
+   char side = 'R', transa, uplo, diag = 'N'; \
+   EIGTYPE *b; \
+   const EIGTYPE *a; \
+   MKL_INT m, n, lda, ldb; \
+   MKLTYPE alpha_; \
+\
+/* Set alpha_*/ \
+   assign_scalar_eig2mkl<MKLTYPE, EIGTYPE>(alpha_, alpha); \
+\
+/* Set m, n */ \
+   m = (MKL_INT)rows; \
+   n = (MKL_INT)diagSize; \
+\
+/* Set trans */ \
+   transa = (RhsStorageOrder==RowMajor) ? ((ConjugateRhs) ? 'C' : 'T') : 'N'; \
+\
+/* Set b, ldb */ \
+   Map<const MatrixLhs, 0, OuterStride<> > lhs(_lhs,rows,depth,OuterStride<>(lhsStride)); \
+   MatrixX##EIGPREFIX b_tmp; \
+\
+   if (ConjugateLhs) b_tmp = lhs.conjugate(); else b_tmp = lhs; \
+   b = b_tmp.data(); \
+   ldb = b_tmp.outerStride(); \
+\
+/* Set uplo */ \
+   uplo = IsLower ? 'L' : 'U'; \
+   if (RhsStorageOrder==RowMajor) uplo = (uplo == 'L') ? 'U' : 'L'; \
+/* Set a, lda */ \
+   Map<const MatrixRhs, 0, OuterStride<> > rhs(_rhs,depth,cols, OuterStride<>(rhsStride)); \
+   MatrixRhs a_tmp; \
+\
+   if ((conjA!=0) || (SetDiag==0)) { \
+     if (conjA) a_tmp = rhs.conjugate(); else a_tmp = rhs; \
+     if (IsZeroDiag) \
+       a_tmp.diagonal().setZero(); \
+     else if (IsUnitDiag) \
+       a_tmp.diagonal().setOnes();\
+     a = a_tmp.data(); \
+     lda = a_tmp.outerStride(); \
+   } else { \
+     a = _rhs; \
+     lda = rhsStride; \
+   } \
+   /*std::cout << "TRMM_R: A is square! Go to MKL TRMM implementation! \n";*/ \
+/* call ?trmm*/ \
+   MKLPREFIX##trmm(&side, &uplo, &transa, &diag, &m, &n, &alpha_, (const MKLTYPE*)a, &lda, (MKLTYPE*)b, &ldb); \
+\
+/* Add op(a_triangular)*b into res*/ \
+   Map<MatrixX##EIGPREFIX, 0, OuterStride<> > res_tmp(res,rows,cols,OuterStride<>(resStride)); \
+   res_tmp=res_tmp+b_tmp; \
+  } \
+};
+
+EIGEN_MKL_TRMM_R(double, double, d, d)
+EIGEN_MKL_TRMM_R(dcomplex, MKL_Complex16, cd, z)
+EIGEN_MKL_TRMM_R(float, float, f, s)
+EIGEN_MKL_TRMM_R(scomplex, MKL_Complex8, cf, c)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULAR_MATRIX_MATRIX_MKL_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularMatrixVector.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularMatrixVector.h
new file mode 100644
index 0000000..6117d5a
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularMatrixVector.h
@@ -0,0 +1,348 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIANGULARMATRIXVECTOR_H
+#define EIGEN_TRIANGULARMATRIXVECTOR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs, int StorageOrder, int Version=Specialized>
+struct triangular_matrix_vector_product;
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs, int Version>
+struct triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,ColMajor,Version>
+{
+  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+  enum {
+    IsLower = ((Mode&Lower)==Lower),
+    HasUnitDiag = (Mode & UnitDiag)==UnitDiag,
+    HasZeroDiag = (Mode & ZeroDiag)==ZeroDiag
+  };
+  static EIGEN_DONT_INLINE  void run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
+                                     const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const ResScalar& alpha);
+};
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs, int Version>
+EIGEN_DONT_INLINE void triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,ColMajor,Version>
+  ::run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
+        const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const ResScalar& alpha)
+  {
+    static const Index PanelWidth = EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH;
+    Index size = (std::min)(_rows,_cols);
+    Index rows = IsLower ? _rows : (std::min)(_rows,_cols);
+    Index cols = IsLower ? (std::min)(_rows,_cols) : _cols;
+
+    typedef Map<const Matrix<LhsScalar,Dynamic,Dynamic,ColMajor>, 0, OuterStride<> > LhsMap;
+    const LhsMap lhs(_lhs,rows,cols,OuterStride<>(lhsStride));
+    typename conj_expr_if<ConjLhs,LhsMap>::type cjLhs(lhs);
+    
+    typedef Map<const Matrix<RhsScalar,Dynamic,1>, 0, InnerStride<> > RhsMap;
+    const RhsMap rhs(_rhs,cols,InnerStride<>(rhsIncr));
+    typename conj_expr_if<ConjRhs,RhsMap>::type cjRhs(rhs);
+
+    typedef Map<Matrix<ResScalar,Dynamic,1> > ResMap;
+    ResMap res(_res,rows);
+
+    for (Index pi=0; pi<size; pi+=PanelWidth)
+    {
+      Index actualPanelWidth = (std::min)(PanelWidth, size-pi);
+      for (Index k=0; k<actualPanelWidth; ++k)
+      {
+        Index i = pi + k;
+        Index s = IsLower ? ((HasUnitDiag||HasZeroDiag) ? i+1 : i ) : pi;
+        Index r = IsLower ? actualPanelWidth-k : k+1;
+        if ((!(HasUnitDiag||HasZeroDiag)) || (--r)>0)
+          res.segment(s,r) += (alpha * cjRhs.coeff(i)) * cjLhs.col(i).segment(s,r);
+        if (HasUnitDiag)
+          res.coeffRef(i) += alpha * cjRhs.coeff(i);
+      }
+      Index r = IsLower ? rows - pi - actualPanelWidth : pi;
+      if (r>0)
+      {
+        Index s = IsLower ? pi+actualPanelWidth : 0;
+        general_matrix_vector_product<Index,LhsScalar,ColMajor,ConjLhs,RhsScalar,ConjRhs,BuiltIn>::run(
+            r, actualPanelWidth,
+            &lhs.coeffRef(s,pi), lhsStride,
+            &rhs.coeffRef(pi), rhsIncr,
+            &res.coeffRef(s), resIncr, alpha);
+      }
+    }
+    if((!IsLower) && cols>size)
+    {
+      general_matrix_vector_product<Index,LhsScalar,ColMajor,ConjLhs,RhsScalar,ConjRhs>::run(
+          rows, cols-size,
+          &lhs.coeffRef(0,size), lhsStride,
+          &rhs.coeffRef(size), rhsIncr,
+          _res, resIncr, alpha);
+    }
+  }
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs,int Version>
+struct triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,RowMajor,Version>
+{
+  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+  enum {
+    IsLower = ((Mode&Lower)==Lower),
+    HasUnitDiag = (Mode & UnitDiag)==UnitDiag,
+    HasZeroDiag = (Mode & ZeroDiag)==ZeroDiag
+  };
+  static EIGEN_DONT_INLINE void run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
+                                    const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const ResScalar& alpha);
+};
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs,int Version>
+EIGEN_DONT_INLINE void triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,RowMajor,Version>
+  ::run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
+        const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const ResScalar& alpha)
+  {
+    static const Index PanelWidth = EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH;
+    Index diagSize = (std::min)(_rows,_cols);
+    Index rows = IsLower ? _rows : diagSize;
+    Index cols = IsLower ? diagSize : _cols;
+
+    typedef Map<const Matrix<LhsScalar,Dynamic,Dynamic,RowMajor>, 0, OuterStride<> > LhsMap;
+    const LhsMap lhs(_lhs,rows,cols,OuterStride<>(lhsStride));
+    typename conj_expr_if<ConjLhs,LhsMap>::type cjLhs(lhs);
+
+    typedef Map<const Matrix<RhsScalar,Dynamic,1> > RhsMap;
+    const RhsMap rhs(_rhs,cols);
+    typename conj_expr_if<ConjRhs,RhsMap>::type cjRhs(rhs);
+
+    typedef Map<Matrix<ResScalar,Dynamic,1>, 0, InnerStride<> > ResMap;
+    ResMap res(_res,rows,InnerStride<>(resIncr));
+    
+    for (Index pi=0; pi<diagSize; pi+=PanelWidth)
+    {
+      Index actualPanelWidth = (std::min)(PanelWidth, diagSize-pi);
+      for (Index k=0; k<actualPanelWidth; ++k)
+      {
+        Index i = pi + k;
+        Index s = IsLower ? pi  : ((HasUnitDiag||HasZeroDiag) ? i+1 : i);
+        Index r = IsLower ? k+1 : actualPanelWidth-k;
+        if ((!(HasUnitDiag||HasZeroDiag)) || (--r)>0)
+          res.coeffRef(i) += alpha * (cjLhs.row(i).segment(s,r).cwiseProduct(cjRhs.segment(s,r).transpose())).sum();
+        if (HasUnitDiag)
+          res.coeffRef(i) += alpha * cjRhs.coeff(i);
+      }
+      Index r = IsLower ? pi : cols - pi - actualPanelWidth;
+      if (r>0)
+      {
+        Index s = IsLower ? 0 : pi + actualPanelWidth;
+        general_matrix_vector_product<Index,LhsScalar,RowMajor,ConjLhs,RhsScalar,ConjRhs,BuiltIn>::run(
+            actualPanelWidth, r,
+            &lhs.coeffRef(pi,s), lhsStride,
+            &rhs.coeffRef(s), rhsIncr,
+            &res.coeffRef(pi), resIncr, alpha);
+      }
+    }
+    if(IsLower && rows>diagSize)
+    {
+      general_matrix_vector_product<Index,LhsScalar,RowMajor,ConjLhs,RhsScalar,ConjRhs>::run(
+            rows-diagSize, cols,
+            &lhs.coeffRef(diagSize,0), lhsStride,
+            &rhs.coeffRef(0), rhsIncr,
+            &res.coeffRef(diagSize), resIncr, alpha);
+    }
+  }
+
+/***************************************************************************
+* Wrapper to product_triangular_vector
+***************************************************************************/
+
+template<int Mode, bool LhsIsTriangular, typename Lhs, typename Rhs>
+struct traits<TriangularProduct<Mode,LhsIsTriangular,Lhs,false,Rhs,true> >
+ : traits<ProductBase<TriangularProduct<Mode,LhsIsTriangular,Lhs,false,Rhs,true>, Lhs, Rhs> >
+{};
+
+template<int Mode, bool LhsIsTriangular, typename Lhs, typename Rhs>
+struct traits<TriangularProduct<Mode,LhsIsTriangular,Lhs,true,Rhs,false> >
+ : traits<ProductBase<TriangularProduct<Mode,LhsIsTriangular,Lhs,true,Rhs,false>, Lhs, Rhs> >
+{};
+
+
+template<int StorageOrder>
+struct trmv_selector;
+
+} // end namespace internal
+
+template<int Mode, typename Lhs, typename Rhs>
+struct TriangularProduct<Mode,true,Lhs,false,Rhs,true>
+  : public ProductBase<TriangularProduct<Mode,true,Lhs,false,Rhs,true>, Lhs, Rhs >
+{
+  EIGEN_PRODUCT_PUBLIC_INTERFACE(TriangularProduct)
+
+  TriangularProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
+
+  template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
+  {
+    eigen_assert(dst.rows()==m_lhs.rows() && dst.cols()==m_rhs.cols());
+  
+    internal::trmv_selector<(int(internal::traits<Lhs>::Flags)&RowMajorBit) ? RowMajor : ColMajor>::run(*this, dst, alpha);
+  }
+};
+
+template<int Mode, typename Lhs, typename Rhs>
+struct TriangularProduct<Mode,false,Lhs,true,Rhs,false>
+  : public ProductBase<TriangularProduct<Mode,false,Lhs,true,Rhs,false>, Lhs, Rhs >
+{
+  EIGEN_PRODUCT_PUBLIC_INTERFACE(TriangularProduct)
+
+  TriangularProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
+
+  template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
+  {
+    eigen_assert(dst.rows()==m_lhs.rows() && dst.cols()==m_rhs.cols());
+
+    typedef TriangularProduct<(Mode & (UnitDiag|ZeroDiag)) | ((Mode & Lower) ? Upper : Lower),true,Transpose<const Rhs>,false,Transpose<const Lhs>,true> TriangularProductTranspose;
+    Transpose<Dest> dstT(dst);
+    internal::trmv_selector<(int(internal::traits<Rhs>::Flags)&RowMajorBit) ? ColMajor : RowMajor>::run(
+      TriangularProductTranspose(m_rhs.transpose(),m_lhs.transpose()), dstT, alpha);
+  }
+};
+
+namespace internal {
+
+// TODO: find a way to factorize this piece of code with gemv_selector since the logic is exactly the same.
+  
+template<> struct trmv_selector<ColMajor>
+{
+  template<int Mode, typename Lhs, typename Rhs, typename Dest>
+  static void run(const TriangularProduct<Mode,true,Lhs,false,Rhs,true>& prod, Dest& dest, const typename TriangularProduct<Mode,true,Lhs,false,Rhs,true>::Scalar& alpha)
+  {
+    typedef TriangularProduct<Mode,true,Lhs,false,Rhs,true> ProductType;
+    typedef typename ProductType::Index Index;
+    typedef typename ProductType::LhsScalar   LhsScalar;
+    typedef typename ProductType::RhsScalar   RhsScalar;
+    typedef typename ProductType::Scalar      ResScalar;
+    typedef typename ProductType::RealScalar  RealScalar;
+    typedef typename ProductType::ActualLhsType ActualLhsType;
+    typedef typename ProductType::ActualRhsType ActualRhsType;
+    typedef typename ProductType::LhsBlasTraits LhsBlasTraits;
+    typedef typename ProductType::RhsBlasTraits RhsBlasTraits;
+    typedef Map<Matrix<ResScalar,Dynamic,1>, Aligned> MappedDest;
+
+    typename internal::add_const_on_value_type<ActualLhsType>::type actualLhs = LhsBlasTraits::extract(prod.lhs());
+    typename internal::add_const_on_value_type<ActualRhsType>::type actualRhs = RhsBlasTraits::extract(prod.rhs());
+
+    ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs())
+                                  * RhsBlasTraits::extractScalarFactor(prod.rhs());
+
+    enum {
+      // FIXME find a way to allow an inner stride on the result if packet_traits<Scalar>::size==1
+      // on, the other hand it is good for the cache to pack the vector anyways...
+      EvalToDestAtCompileTime = Dest::InnerStrideAtCompileTime==1,
+      ComplexByReal = (NumTraits<LhsScalar>::IsComplex) && (!NumTraits<RhsScalar>::IsComplex),
+      MightCannotUseDest = (Dest::InnerStrideAtCompileTime!=1) || ComplexByReal
+    };
+
+    gemv_static_vector_if<ResScalar,Dest::SizeAtCompileTime,Dest::MaxSizeAtCompileTime,MightCannotUseDest> static_dest;
+
+    bool alphaIsCompatible = (!ComplexByReal) || (numext::imag(actualAlpha)==RealScalar(0));
+    bool evalToDest = EvalToDestAtCompileTime && alphaIsCompatible;
+    
+    RhsScalar compatibleAlpha = get_factor<ResScalar,RhsScalar>::run(actualAlpha);
+
+    ei_declare_aligned_stack_constructed_variable(ResScalar,actualDestPtr,dest.size(),
+                                                  evalToDest ? dest.data() : static_dest.data());
+
+    if(!evalToDest)
+    {
+      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      Index size = dest.size();
+      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      #endif
+      if(!alphaIsCompatible)
+      {
+        MappedDest(actualDestPtr, dest.size()).setZero();
+        compatibleAlpha = RhsScalar(1);
+      }
+      else
+        MappedDest(actualDestPtr, dest.size()) = dest;
+    }
+    
+    internal::triangular_matrix_vector_product
+      <Index,Mode,
+       LhsScalar, LhsBlasTraits::NeedToConjugate,
+       RhsScalar, RhsBlasTraits::NeedToConjugate,
+       ColMajor>
+      ::run(actualLhs.rows(),actualLhs.cols(),
+            actualLhs.data(),actualLhs.outerStride(),
+            actualRhs.data(),actualRhs.innerStride(),
+            actualDestPtr,1,compatibleAlpha);
+
+    if (!evalToDest)
+    {
+      if(!alphaIsCompatible)
+        dest += actualAlpha * MappedDest(actualDestPtr, dest.size());
+      else
+        dest = MappedDest(actualDestPtr, dest.size());
+    }
+  }
+};
+
+template<> struct trmv_selector<RowMajor>
+{
+  template<int Mode, typename Lhs, typename Rhs, typename Dest>
+  static void run(const TriangularProduct<Mode,true,Lhs,false,Rhs,true>& prod, Dest& dest, const typename TriangularProduct<Mode,true,Lhs,false,Rhs,true>::Scalar& alpha)
+  {
+    typedef TriangularProduct<Mode,true,Lhs,false,Rhs,true> ProductType;
+    typedef typename ProductType::LhsScalar LhsScalar;
+    typedef typename ProductType::RhsScalar RhsScalar;
+    typedef typename ProductType::Scalar    ResScalar;
+    typedef typename ProductType::Index Index;
+    typedef typename ProductType::ActualLhsType ActualLhsType;
+    typedef typename ProductType::ActualRhsType ActualRhsType;
+    typedef typename ProductType::_ActualRhsType _ActualRhsType;
+    typedef typename ProductType::LhsBlasTraits LhsBlasTraits;
+    typedef typename ProductType::RhsBlasTraits RhsBlasTraits;
+
+    typename add_const<ActualLhsType>::type actualLhs = LhsBlasTraits::extract(prod.lhs());
+    typename add_const<ActualRhsType>::type actualRhs = RhsBlasTraits::extract(prod.rhs());
+
+    ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs())
+                                  * RhsBlasTraits::extractScalarFactor(prod.rhs());
+
+    enum {
+      DirectlyUseRhs = _ActualRhsType::InnerStrideAtCompileTime==1
+    };
+
+    gemv_static_vector_if<RhsScalar,_ActualRhsType::SizeAtCompileTime,_ActualRhsType::MaxSizeAtCompileTime,!DirectlyUseRhs> static_rhs;
+
+    ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhsPtr,actualRhs.size(),
+        DirectlyUseRhs ? const_cast<RhsScalar*>(actualRhs.data()) : static_rhs.data());
+
+    if(!DirectlyUseRhs)
+    {
+      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      int size = actualRhs.size();
+      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      #endif
+      Map<typename _ActualRhsType::PlainObject>(actualRhsPtr, actualRhs.size()) = actualRhs;
+    }
+    
+    internal::triangular_matrix_vector_product
+      <Index,Mode,
+       LhsScalar, LhsBlasTraits::NeedToConjugate,
+       RhsScalar, RhsBlasTraits::NeedToConjugate,
+       RowMajor>
+      ::run(actualLhs.rows(),actualLhs.cols(),
+            actualLhs.data(),actualLhs.outerStride(),
+            actualRhsPtr,1,
+            dest.data(),dest.innerStride(),
+            actualAlpha);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULARMATRIXVECTOR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularMatrixVector_MKL.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularMatrixVector_MKL.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularMatrixVector_MKL.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularMatrixVector_MKL.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularSolverMatrix.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularSolverMatrix.h
new file mode 100644
index 0000000..03a23ab
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularSolverMatrix.h
@@ -0,0 +1,332 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIANGULAR_SOLVER_MATRIX_H
+#define EIGEN_TRIANGULAR_SOLVER_MATRIX_H
+
+namespace Eigen { 
+
+namespace internal {
+
+// if the rhs is row major, let's transpose the product
+template <typename Scalar, typename Index, int Side, int Mode, bool Conjugate, int TriStorageOrder>
+struct triangular_solve_matrix<Scalar,Index,Side,Mode,Conjugate,TriStorageOrder,RowMajor>
+{
+  static void run(
+    Index size, Index cols,
+    const Scalar*  tri, Index triStride,
+    Scalar* _other, Index otherStride,
+    level3_blocking<Scalar,Scalar>& blocking)
+  {
+    triangular_solve_matrix<
+      Scalar, Index, Side==OnTheLeft?OnTheRight:OnTheLeft,
+      (Mode&UnitDiag) | ((Mode&Upper) ? Lower : Upper),
+      NumTraits<Scalar>::IsComplex && Conjugate,
+      TriStorageOrder==RowMajor ? ColMajor : RowMajor, ColMajor>
+      ::run(size, cols, tri, triStride, _other, otherStride, blocking);
+  }
+};
+
+/* Optimized triangular solver with multiple right hand side and the triangular matrix on the left
+ */
+template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
+struct triangular_solve_matrix<Scalar,Index,OnTheLeft,Mode,Conjugate,TriStorageOrder,ColMajor>
+{
+  static EIGEN_DONT_INLINE void run(
+    Index size, Index otherSize,
+    const Scalar* _tri, Index triStride,
+    Scalar* _other, Index otherStride,
+    level3_blocking<Scalar,Scalar>& blocking);
+};
+template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
+EIGEN_DONT_INLINE void triangular_solve_matrix<Scalar,Index,OnTheLeft,Mode,Conjugate,TriStorageOrder,ColMajor>::run(
+    Index size, Index otherSize,
+    const Scalar* _tri, Index triStride,
+    Scalar* _other, Index otherStride,
+    level3_blocking<Scalar,Scalar>& blocking)
+  {
+    Index cols = otherSize;
+    const_blas_data_mapper<Scalar, Index, TriStorageOrder> tri(_tri,triStride);
+    blas_data_mapper<Scalar, Index, ColMajor> other(_other,otherStride);
+
+    typedef gebp_traits<Scalar,Scalar> Traits;
+    enum {
+      SmallPanelWidth   = EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
+      IsLower = (Mode&Lower) == Lower
+    };
+
+    Index kc = blocking.kc();                   // cache block size along the K direction
+    Index mc = (std::min)(size,blocking.mc());  // cache block size along the M direction
+
+    std::size_t sizeA = kc*mc;
+    std::size_t sizeB = kc*cols;
+    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
+
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockW, sizeW, blocking.blockW());
+
+    conj_if<Conjugate> conj;
+    gebp_kernel<Scalar, Scalar, Index, Traits::mr, Traits::nr, Conjugate, false> gebp_kernel;
+    gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, TriStorageOrder> pack_lhs;
+    gemm_pack_rhs<Scalar, Index, Traits::nr, ColMajor, false, true> pack_rhs;
+
+    // the goal here is to subdivise the Rhs panels such that we keep some cache
+    // coherence when accessing the rhs elements
+    std::ptrdiff_t l1, l2;
+    manage_caching_sizes(GetAction, &l1, &l2);
+    Index subcols = cols>0 ? l2/(4 * sizeof(Scalar) * otherStride) : 0;
+    subcols = std::max<Index>((subcols/Traits::nr)*Traits::nr, Traits::nr);
+
+    for(Index k2=IsLower ? 0 : size;
+        IsLower ? k2<size : k2>0;
+        IsLower ? k2+=kc : k2-=kc)
+    {
+      const Index actual_kc = (std::min)(IsLower ? size-k2 : k2, kc);
+
+      // We have selected and packed a big horizontal panel R1 of rhs. Let B be the packed copy of this panel,
+      // and R2 the remaining part of rhs. The corresponding vertical panel of lhs is split into
+      // A11 (the triangular part) and A21 the remaining rectangular part.
+      // Then the high level algorithm is:
+      //  - B = R1                    => general block copy (done during the next step)
+      //  - R1 = A11^-1 B             => tricky part
+      //  - update B from the new R1  => actually this has to be performed continuously during the above step
+      //  - R2 -= A21 * B             => GEPP
+
+      // The tricky part: compute R1 = A11^-1 B while updating B from R1
+      // The idea is to split A11 into multiple small vertical panels.
+      // Each panel can be split into a small triangular part T1k which is processed without optimization,
+      // and the remaining small part T2k which is processed using gebp with appropriate block strides
+      for(Index j2=0; j2<cols; j2+=subcols)
+      {
+        Index actual_cols = (std::min)(cols-j2,subcols);
+        // for each small vertical panels [T1k^T, T2k^T]^T of lhs
+        for (Index k1=0; k1<actual_kc; k1+=SmallPanelWidth)
+        {
+          Index actualPanelWidth = std::min<Index>(actual_kc-k1, SmallPanelWidth);
+          // tr solve
+          for (Index k=0; k<actualPanelWidth; ++k)
+          {
+            // TODO write a small kernel handling this (can be shared with trsv)
+            Index i  = IsLower ? k2+k1+k : k2-k1-k-1;
+            Index rs = actualPanelWidth - k - 1; // remaining size
+            Index s  = TriStorageOrder==RowMajor ? (IsLower ? k2+k1 : i+1)
+                                                 :  IsLower ? i+1 : i-rs;
+
+            Scalar a = (Mode & UnitDiag) ? Scalar(1) : Scalar(1)/conj(tri(i,i));
+            for (Index j=j2; j<j2+actual_cols; ++j)
+            {
+              if (TriStorageOrder==RowMajor)
+              {
+                Scalar b(0);
+                const Scalar* l = &tri(i,s);
+                Scalar* r = &other(s,j);
+                for (Index i3=0; i3<k; ++i3)
+                  b += conj(l[i3]) * r[i3];
+
+                other(i,j) = (other(i,j) - b)*a;
+              }
+              else
+              {
+                Scalar b = (other(i,j) *= a);
+                Scalar* r = &other(s,j);
+                const Scalar* l = &tri(s,i);
+                for (Index i3=0;i3<rs;++i3)
+                  r[i3] -= b * conj(l[i3]);
+              }
+            }
+          }
+
+          Index lengthTarget = actual_kc-k1-actualPanelWidth;
+          Index startBlock   = IsLower ? k2+k1 : k2-k1-actualPanelWidth;
+          Index blockBOffset = IsLower ? k1 : lengthTarget;
+
+          // update the respective rows of B from other
+          pack_rhs(blockB+actual_kc*j2, &other(startBlock,j2), otherStride, actualPanelWidth, actual_cols, actual_kc, blockBOffset);
+
+          // GEBP
+          if (lengthTarget>0)
+          {
+            Index startTarget  = IsLower ? k2+k1+actualPanelWidth : k2-actual_kc;
+
+            pack_lhs(blockA, &tri(startTarget,startBlock), triStride, actualPanelWidth, lengthTarget);
+
+            gebp_kernel(&other(startTarget,j2), otherStride, blockA, blockB+actual_kc*j2, lengthTarget, actualPanelWidth, actual_cols, Scalar(-1),
+                        actualPanelWidth, actual_kc, 0, blockBOffset, blockW);
+          }
+        }
+      }
+      
+      // R2 -= A21 * B => GEPP
+      {
+        Index start = IsLower ? k2+kc : 0;
+        Index end   = IsLower ? size : k2-kc;
+        for(Index i2=start; i2<end; i2+=mc)
+        {
+          const Index actual_mc = (std::min)(mc,end-i2);
+          if (actual_mc>0)
+          {
+            pack_lhs(blockA, &tri(i2, IsLower ? k2 : k2-kc), triStride, actual_kc, actual_mc);
+
+            gebp_kernel(_other+i2, otherStride, blockA, blockB, actual_mc, actual_kc, cols, Scalar(-1), -1, -1, 0, 0, blockW);
+          }
+        }
+      }
+    }
+  }
+
+/* Optimized triangular solver with multiple left hand sides and the trinagular matrix on the right
+ */
+template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
+struct triangular_solve_matrix<Scalar,Index,OnTheRight,Mode,Conjugate,TriStorageOrder,ColMajor>
+{
+  static EIGEN_DONT_INLINE void run(
+    Index size, Index otherSize,
+    const Scalar* _tri, Index triStride,
+    Scalar* _other, Index otherStride,
+    level3_blocking<Scalar,Scalar>& blocking);
+};
+template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
+EIGEN_DONT_INLINE void triangular_solve_matrix<Scalar,Index,OnTheRight,Mode,Conjugate,TriStorageOrder,ColMajor>::run(
+    Index size, Index otherSize,
+    const Scalar* _tri, Index triStride,
+    Scalar* _other, Index otherStride,
+    level3_blocking<Scalar,Scalar>& blocking)
+  {
+    Index rows = otherSize;
+    const_blas_data_mapper<Scalar, Index, TriStorageOrder> rhs(_tri,triStride);
+    blas_data_mapper<Scalar, Index, ColMajor> lhs(_other,otherStride);
+
+    typedef gebp_traits<Scalar,Scalar> Traits;
+    enum {
+      RhsStorageOrder   = TriStorageOrder,
+      SmallPanelWidth   = EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
+      IsLower = (Mode&Lower) == Lower
+    };
+
+    Index kc = blocking.kc();                   // cache block size along the K direction
+    Index mc = (std::min)(rows,blocking.mc());  // cache block size along the M direction
+
+    std::size_t sizeA = kc*mc;
+    std::size_t sizeB = kc*size;
+    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
+
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockW, sizeW, blocking.blockW());
+
+    conj_if<Conjugate> conj;
+    gebp_kernel<Scalar,Scalar, Index, Traits::mr, Traits::nr, false, Conjugate> gebp_kernel;
+    gemm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder> pack_rhs;
+    gemm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder,false,true> pack_rhs_panel;
+    gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, ColMajor, false, true> pack_lhs_panel;
+
+    for(Index k2=IsLower ? size : 0;
+        IsLower ? k2>0 : k2<size;
+        IsLower ? k2-=kc : k2+=kc)
+    {
+      const Index actual_kc = (std::min)(IsLower ? k2 : size-k2, kc);
+      Index actual_k2 = IsLower ? k2-actual_kc : k2 ;
+
+      Index startPanel = IsLower ? 0 : k2+actual_kc;
+      Index rs = IsLower ? actual_k2 : size - actual_k2 - actual_kc;
+      Scalar* geb = blockB+actual_kc*actual_kc;
+
+      if (rs>0) pack_rhs(geb, &rhs(actual_k2,startPanel), triStride, actual_kc, rs);
+
+      // triangular packing (we only pack the panels off the diagonal,
+      // neglecting the blocks overlapping the diagonal
+      {
+        for (Index j2=0; j2<actual_kc; j2+=SmallPanelWidth)
+        {
+          Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
+          Index actual_j2 = actual_k2 + j2;
+          Index panelOffset = IsLower ? j2+actualPanelWidth : 0;
+          Index panelLength = IsLower ? actual_kc-j2-actualPanelWidth : j2;
+
+          if (panelLength>0)
+          pack_rhs_panel(blockB+j2*actual_kc,
+                         &rhs(actual_k2+panelOffset, actual_j2), triStride,
+                         panelLength, actualPanelWidth,
+                         actual_kc, panelOffset);
+        }
+      }
+
+      for(Index i2=0; i2<rows; i2+=mc)
+      {
+        const Index actual_mc = (std::min)(mc,rows-i2);
+
+        // triangular solver kernel
+        {
+          // for each small block of the diagonal (=> vertical panels of rhs)
+          for (Index j2 = IsLower
+                      ? (actual_kc - ((actual_kc%SmallPanelWidth) ? Index(actual_kc%SmallPanelWidth)
+                                                                  : Index(SmallPanelWidth)))
+                      : 0;
+               IsLower ? j2>=0 : j2<actual_kc;
+               IsLower ? j2-=SmallPanelWidth : j2+=SmallPanelWidth)
+          {
+            Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
+            Index absolute_j2 = actual_k2 + j2;
+            Index panelOffset = IsLower ? j2+actualPanelWidth : 0;
+            Index panelLength = IsLower ? actual_kc - j2 - actualPanelWidth : j2;
+
+            // GEBP
+            if(panelLength>0)
+            {
+              gebp_kernel(&lhs(i2,absolute_j2), otherStride,
+                          blockA, blockB+j2*actual_kc,
+                          actual_mc, panelLength, actualPanelWidth,
+                          Scalar(-1),
+                          actual_kc, actual_kc, // strides
+                          panelOffset, panelOffset, // offsets
+                          blockW);  // workspace
+            }
+
+            // unblocked triangular solve
+            for (Index k=0; k<actualPanelWidth; ++k)
+            {
+              Index j = IsLower ? absolute_j2+actualPanelWidth-k-1 : absolute_j2+k;
+
+              Scalar* r = &lhs(i2,j);
+              for (Index k3=0; k3<k; ++k3)
+              {
+                Scalar b = conj(rhs(IsLower ? j+1+k3 : absolute_j2+k3,j));
+                Scalar* a = &lhs(i2,IsLower ? j+1+k3 : absolute_j2+k3);
+                for (Index i=0; i<actual_mc; ++i)
+                  r[i] -= a[i] * b;
+              }
+              if((Mode & UnitDiag)==0)
+              {
+                Scalar b = conj(rhs(j,j));
+                for (Index i=0; i<actual_mc; ++i)
+                  r[i] /= b;
+              }
+            }
+
+            // pack the just computed part of lhs to A
+            pack_lhs_panel(blockA, _other+absolute_j2*otherStride+i2, otherStride,
+                           actualPanelWidth, actual_mc,
+                           actual_kc, j2);
+          }
+        }
+
+        if (rs>0)
+          gebp_kernel(_other+i2+startPanel*otherStride, otherStride, blockA, geb,
+                      actual_mc, actual_kc, rs, Scalar(-1),
+                      -1, -1, 0, 0, blockW);
+      }
+    }
+  }
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULAR_SOLVER_MATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularSolverVector.h b/vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularSolverVector.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/products/TriangularSolverVector.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/products/TriangularSolverVector.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/util/BlasUtil.h b/vendor/eigen-3.2.8/Eigen/src/Core/util/BlasUtil.h
new file mode 100644
index 0000000..a28f16f
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/util/BlasUtil.h
@@ -0,0 +1,264 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BLASUTIL_H
+#define EIGEN_BLASUTIL_H
+
+// This file contains many lightweight helper classes used to
+// implement and control fast level 2 and level 3 BLAS-like routines.
+
+namespace Eigen {
+
+namespace internal {
+
+// forward declarations
+template<typename LhsScalar, typename RhsScalar, typename Index, int mr, int nr, bool ConjugateLhs=false, bool ConjugateRhs=false>
+struct gebp_kernel;
+
+template<typename Scalar, typename Index, int nr, int StorageOrder, bool Conjugate = false, bool PanelMode=false>
+struct gemm_pack_rhs;
+
+template<typename Scalar, typename Index, int Pack1, int Pack2, int StorageOrder, bool Conjugate = false, bool PanelMode = false>
+struct gemm_pack_lhs;
+
+template<
+  typename Index,
+  typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
+  typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs,
+  int ResStorageOrder>
+struct general_matrix_matrix_product;
+
+template<typename Index, typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs, int Version=Specialized>
+struct general_matrix_vector_product;
+
+
+template<bool Conjugate> struct conj_if;
+
+template<> struct conj_if<true> {
+  template<typename T>
+  inline T operator()(const T& x) { return numext::conj(x); }
+  template<typename T>
+  inline T pconj(const T& x) { return internal::pconj(x); }
+};
+
+template<> struct conj_if<false> {
+  template<typename T>
+  inline const T& operator()(const T& x) { return x; }
+  template<typename T>
+  inline const T& pconj(const T& x) { return x; }
+};
+
+template<typename Scalar> struct conj_helper<Scalar,Scalar,false,false>
+{
+  EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const { return internal::pmadd(x,y,c); }
+  EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const { return internal::pmul(x,y); }
+};
+
+template<typename RealScalar> struct conj_helper<std::complex<RealScalar>, std::complex<RealScalar>, false,true>
+{
+  typedef std::complex<RealScalar> Scalar;
+  EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const
+  { return c + pmul(x,y); }
+
+  EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const
+  { return Scalar(numext::real(x)*numext::real(y) + numext::imag(x)*numext::imag(y), numext::imag(x)*numext::real(y) - numext::real(x)*numext::imag(y)); }
+};
+
+template<typename RealScalar> struct conj_helper<std::complex<RealScalar>, std::complex<RealScalar>, true,false>
+{
+  typedef std::complex<RealScalar> Scalar;
+  EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const
+  { return c + pmul(x,y); }
+
+  EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const
+  { return Scalar(numext::real(x)*numext::real(y) + numext::imag(x)*numext::imag(y), numext::real(x)*numext::imag(y) - numext::imag(x)*numext::real(y)); }
+};
+
+template<typename RealScalar> struct conj_helper<std::complex<RealScalar>, std::complex<RealScalar>, true,true>
+{
+  typedef std::complex<RealScalar> Scalar;
+  EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const
+  { return c + pmul(x,y); }
+
+  EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const
+  { return Scalar(numext::real(x)*numext::real(y) - numext::imag(x)*numext::imag(y), - numext::real(x)*numext::imag(y) - numext::imag(x)*numext::real(y)); }
+};
+
+template<typename RealScalar,bool Conj> struct conj_helper<std::complex<RealScalar>, RealScalar, Conj,false>
+{
+  typedef std::complex<RealScalar> Scalar;
+  EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const RealScalar& y, const Scalar& c) const
+  { return padd(c, pmul(x,y)); }
+  EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const RealScalar& y) const
+  { return conj_if<Conj>()(x)*y; }
+};
+
+template<typename RealScalar,bool Conj> struct conj_helper<RealScalar, std::complex<RealScalar>, false,Conj>
+{
+  typedef std::complex<RealScalar> Scalar;
+  EIGEN_STRONG_INLINE Scalar pmadd(const RealScalar& x, const Scalar& y, const Scalar& c) const
+  { return padd(c, pmul(x,y)); }
+  EIGEN_STRONG_INLINE Scalar pmul(const RealScalar& x, const Scalar& y) const
+  { return x*conj_if<Conj>()(y); }
+};
+
+template<typename From,typename To> struct get_factor {
+  static EIGEN_STRONG_INLINE To run(const From& x) { return x; }
+};
+
+template<typename Scalar> struct get_factor<Scalar,typename NumTraits<Scalar>::Real> {
+  static EIGEN_STRONG_INLINE typename NumTraits<Scalar>::Real run(const Scalar& x) { return numext::real(x); }
+};
+
+// Lightweight helper class to access matrix coefficients.
+// Yes, this is somehow redundant with Map<>, but this version is much much lighter,
+// and so I hope better compilation performance (time and code quality).
+template<typename Scalar, typename Index, int StorageOrder>
+class blas_data_mapper
+{
+  public:
+    blas_data_mapper(Scalar* data, Index stride) : m_data(data), m_stride(stride) {}
+    EIGEN_STRONG_INLINE Scalar& operator()(Index i, Index j)
+    { return m_data[StorageOrder==RowMajor ? j + i*m_stride : i + j*m_stride]; }
+  protected:
+    Scalar* EIGEN_RESTRICT m_data;
+    Index m_stride;
+};
+
+// lightweight helper class to access matrix coefficients (const version)
+template<typename Scalar, typename Index, int StorageOrder>
+class const_blas_data_mapper
+{
+  public:
+    const_blas_data_mapper(const Scalar* data, Index stride) : m_data(data), m_stride(stride) {}
+    EIGEN_STRONG_INLINE const Scalar& operator()(Index i, Index j) const
+    { return m_data[StorageOrder==RowMajor ? j + i*m_stride : i + j*m_stride]; }
+  protected:
+    const Scalar* EIGEN_RESTRICT m_data;
+    Index m_stride;
+};
+
+
+/* Helper class to analyze the factors of a Product expression.
+ * In particular it allows to pop out operator-, scalar multiples,
+ * and conjugate */
+template<typename XprType> struct blas_traits
+{
+  typedef typename traits<XprType>::Scalar Scalar;
+  typedef const XprType& ExtractType;
+  typedef XprType _ExtractType;
+  enum {
+    IsComplex = NumTraits<Scalar>::IsComplex,
+    IsTransposed = false,
+    NeedToConjugate = false,
+    HasUsableDirectAccess = (    (int(XprType::Flags)&DirectAccessBit)
+                              && (   bool(XprType::IsVectorAtCompileTime)
+                                  || int(inner_stride_at_compile_time<XprType>::ret) == 1)
+                             ) ?  1 : 0
+  };
+  typedef typename conditional<bool(HasUsableDirectAccess),
+    ExtractType,
+    typename _ExtractType::PlainObject
+    >::type DirectLinearAccessType;
+  static inline ExtractType extract(const XprType& x) { return x; }
+  static inline const Scalar extractScalarFactor(const XprType&) { return Scalar(1); }
+};
+
+// pop conjugate
+template<typename Scalar, typename NestedXpr>
+struct blas_traits<CwiseUnaryOp<scalar_conjugate_op<Scalar>, NestedXpr> >
+ : blas_traits<NestedXpr>
+{
+  typedef blas_traits<NestedXpr> Base;
+  typedef CwiseUnaryOp<scalar_conjugate_op<Scalar>, NestedXpr> XprType;
+  typedef typename Base::ExtractType ExtractType;
+
+  enum {
+    IsComplex = NumTraits<Scalar>::IsComplex,
+    NeedToConjugate = Base::NeedToConjugate ? 0 : IsComplex
+  };
+  static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); }
+  static inline Scalar extractScalarFactor(const XprType& x) { return conj(Base::extractScalarFactor(x.nestedExpression())); }
+};
+
+// pop scalar multiple
+template<typename Scalar, typename NestedXpr>
+struct blas_traits<CwiseUnaryOp<scalar_multiple_op<Scalar>, NestedXpr> >
+ : blas_traits<NestedXpr>
+{
+  typedef blas_traits<NestedXpr> Base;
+  typedef CwiseUnaryOp<scalar_multiple_op<Scalar>, NestedXpr> XprType;
+  typedef typename Base::ExtractType ExtractType;
+  static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); }
+  static inline Scalar extractScalarFactor(const XprType& x)
+  { return x.functor().m_other * Base::extractScalarFactor(x.nestedExpression()); }
+};
+
+// pop opposite
+template<typename Scalar, typename NestedXpr>
+struct blas_traits<CwiseUnaryOp<scalar_opposite_op<Scalar>, NestedXpr> >
+ : blas_traits<NestedXpr>
+{
+  typedef blas_traits<NestedXpr> Base;
+  typedef CwiseUnaryOp<scalar_opposite_op<Scalar>, NestedXpr> XprType;
+  typedef typename Base::ExtractType ExtractType;
+  static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); }
+  static inline Scalar extractScalarFactor(const XprType& x)
+  { return - Base::extractScalarFactor(x.nestedExpression()); }
+};
+
+// pop/push transpose
+template<typename NestedXpr>
+struct blas_traits<Transpose<NestedXpr> >
+ : blas_traits<NestedXpr>
+{
+  typedef typename NestedXpr::Scalar Scalar;
+  typedef blas_traits<NestedXpr> Base;
+  typedef Transpose<NestedXpr> XprType;
+  typedef Transpose<const typename Base::_ExtractType>  ExtractType; // const to get rid of a compile error; anyway blas traits are only used on the RHS
+  typedef Transpose<const typename Base::_ExtractType> _ExtractType;
+  typedef typename conditional<bool(Base::HasUsableDirectAccess),
+    ExtractType,
+    typename ExtractType::PlainObject
+    >::type DirectLinearAccessType;
+  enum {
+    IsTransposed = Base::IsTransposed ? 0 : 1
+  };
+  static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); }
+  static inline Scalar extractScalarFactor(const XprType& x) { return Base::extractScalarFactor(x.nestedExpression()); }
+};
+
+template<typename T>
+struct blas_traits<const T>
+     : blas_traits<T>
+{};
+
+template<typename T, bool HasUsableDirectAccess=blas_traits<T>::HasUsableDirectAccess>
+struct extract_data_selector {
+  static const typename T::Scalar* run(const T& m)
+  {
+    return blas_traits<T>::extract(m).data();
+  }
+};
+
+template<typename T>
+struct extract_data_selector<T,false> {
+  static typename T::Scalar* run(const T&) { return 0; }
+};
+
+template<typename T> const typename T::Scalar* extract_data(const T& m)
+{
+  return extract_data_selector<T>::run(m);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BLASUTIL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/util/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Core/util/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/util/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Core/util/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/util/Constants.h b/vendor/eigen-3.2.8/Eigen/src/Core/util/Constants.h
new file mode 100644
index 0000000..1e6277c
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/util/Constants.h
@@ -0,0 +1,451 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CONSTANTS_H
+#define EIGEN_CONSTANTS_H
+
+namespace Eigen {
+
+/** This value means that a positive quantity (e.g., a size) is not known at compile-time, and that instead the value is
+  * stored in some runtime variable.
+  *
+  * Changing the value of Dynamic breaks the ABI, as Dynamic is often used as a template parameter for Matrix.
+  */
+const int Dynamic = -1;
+
+/** This value means that a signed quantity (e.g., a signed index) is not known at compile-time, and that instead its value
+  * has to be specified at runtime.
+  */
+const int DynamicIndex = 0xffffff;
+
+/** This value means +Infinity; it is currently used only as the p parameter to MatrixBase::lpNorm<int>().
+  * The value Infinity there means the L-infinity norm.
+  */
+const int Infinity = -1;
+
+/** \defgroup flags Flags
+  * \ingroup Core_Module
+  *
+  * These are the possible bits which can be OR'ed to constitute the flags of a matrix or
+  * expression.
+  *
+  * It is important to note that these flags are a purely compile-time notion. They are a compile-time property of
+  * an expression type, implemented as enum's. They are not stored in memory at runtime, and they do not incur any
+  * runtime overhead.
+  *
+  * \sa MatrixBase::Flags
+  */
+
+/** \ingroup flags
+  *
+  * for a matrix, this means that the storage order is row-major.
+  * If this bit is not set, the storage order is column-major.
+  * For an expression, this determines the storage order of
+  * the matrix created by evaluation of that expression. 
+  * \sa \ref TopicStorageOrders */
+const unsigned int RowMajorBit = 0x1;
+
+/** \ingroup flags
+  *
+  * means the expression should be evaluated by the calling expression */
+const unsigned int EvalBeforeNestingBit = 0x2;
+
+/** \ingroup flags
+  *
+  * means the expression should be evaluated before any assignment */
+const unsigned int EvalBeforeAssigningBit = 0x4;
+
+/** \ingroup flags
+  *
+  * Short version: means the expression might be vectorized
+  *
+  * Long version: means that the coefficients can be handled by packets
+  * and start at a memory location whose alignment meets the requirements
+  * of the present CPU architecture for optimized packet access. In the fixed-size
+  * case, there is the additional condition that it be possible to access all the
+  * coefficients by packets (this implies the requirement that the size be a multiple of 16 bytes,
+  * and that any nontrivial strides don't break the alignment). In the dynamic-size case,
+  * there is no such condition on the total size and strides, so it might not be possible to access
+  * all coeffs by packets.
+  *
+  * \note This bit can be set regardless of whether vectorization is actually enabled.
+  *       To check for actual vectorizability, see \a ActualPacketAccessBit.
+  */
+const unsigned int PacketAccessBit = 0x8;
+
+#ifdef EIGEN_VECTORIZE
+/** \ingroup flags
+  *
+  * If vectorization is enabled (EIGEN_VECTORIZE is defined) this constant
+  * is set to the value \a PacketAccessBit.
+  *
+  * If vectorization is not enabled (EIGEN_VECTORIZE is not defined) this constant
+  * is set to the value 0.
+  */
+const unsigned int ActualPacketAccessBit = PacketAccessBit;
+#else
+const unsigned int ActualPacketAccessBit = 0x0;
+#endif
+
+/** \ingroup flags
+  *
+  * Short version: means the expression can be seen as 1D vector.
+  *
+  * Long version: means that one can access the coefficients
+  * of this expression by coeff(int), and coeffRef(int) in the case of a lvalue expression. These
+  * index-based access methods are guaranteed
+  * to not have to do any runtime computation of a (row, col)-pair from the index, so that it
+  * is guaranteed that whenever it is available, index-based access is at least as fast as
+  * (row,col)-based access. Expressions for which that isn't possible don't have the LinearAccessBit.
+  *
+  * If both PacketAccessBit and LinearAccessBit are set, then the
+  * packets of this expression can be accessed by packet(int), and writePacket(int) in the case of a
+  * lvalue expression.
+  *
+  * Typically, all vector expressions have the LinearAccessBit, but there is one exception:
+  * Product expressions don't have it, because it would be troublesome for vectorization, even when the
+  * Product is a vector expression. Thus, vector Product expressions allow index-based coefficient access but
+  * not index-based packet access, so they don't have the LinearAccessBit.
+  */
+const unsigned int LinearAccessBit = 0x10;
+
+/** \ingroup flags
+  *
+  * Means the expression has a coeffRef() method, i.e. is writable as its individual coefficients are directly addressable.
+  * This rules out read-only expressions.
+  *
+  * Note that DirectAccessBit and LvalueBit are mutually orthogonal, as there are examples of expression having one but note
+  * the other:
+  *   \li writable expressions that don't have a very simple memory layout as a strided array, have LvalueBit but not DirectAccessBit
+  *   \li Map-to-const expressions, for example Map<const Matrix>, have DirectAccessBit but not LvalueBit
+  *
+  * Expressions having LvalueBit also have their coeff() method returning a const reference instead of returning a new value.
+  */
+const unsigned int LvalueBit = 0x20;
+
+/** \ingroup flags
+  *
+  * Means that the underlying array of coefficients can be directly accessed as a plain strided array. The memory layout
+  * of the array of coefficients must be exactly the natural one suggested by rows(), cols(),
+  * outerStride(), innerStride(), and the RowMajorBit. This rules out expressions such as Diagonal, whose coefficients,
+  * though referencable, do not have such a regular memory layout.
+  *
+  * See the comment on LvalueBit for an explanation of how LvalueBit and DirectAccessBit are mutually orthogonal.
+  */
+const unsigned int DirectAccessBit = 0x40;
+
+/** \ingroup flags
+  *
+  * means the first coefficient packet is guaranteed to be aligned */
+const unsigned int AlignedBit = 0x80;
+
+const unsigned int NestByRefBit = 0x100;
+
+// list of flags that are inherited by default
+const unsigned int HereditaryBits = RowMajorBit
+                                  | EvalBeforeNestingBit
+                                  | EvalBeforeAssigningBit;
+
+/** \defgroup enums Enumerations
+  * \ingroup Core_Module
+  *
+  * Various enumerations used in %Eigen. Many of these are used as template parameters.
+  */
+
+/** \ingroup enums
+  * Enum containing possible values for the \p Mode parameter of 
+  * MatrixBase::selfadjointView() and MatrixBase::triangularView(). */
+enum {
+  /** View matrix as a lower triangular matrix. */
+  Lower=0x1,                      
+  /** View matrix as an upper triangular matrix. */
+  Upper=0x2,                      
+  /** %Matrix has ones on the diagonal; to be used in combination with #Lower or #Upper. */
+  UnitDiag=0x4, 
+  /** %Matrix has zeros on the diagonal; to be used in combination with #Lower or #Upper. */
+  ZeroDiag=0x8,
+  /** View matrix as a lower triangular matrix with ones on the diagonal. */
+  UnitLower=UnitDiag|Lower, 
+  /** View matrix as an upper triangular matrix with ones on the diagonal. */
+  UnitUpper=UnitDiag|Upper,
+  /** View matrix as a lower triangular matrix with zeros on the diagonal. */
+  StrictlyLower=ZeroDiag|Lower, 
+  /** View matrix as an upper triangular matrix with zeros on the diagonal. */
+  StrictlyUpper=ZeroDiag|Upper,
+  /** Used in BandMatrix and SelfAdjointView to indicate that the matrix is self-adjoint. */
+  SelfAdjoint=0x10,
+  /** Used to support symmetric, non-selfadjoint, complex matrices. */
+  Symmetric=0x20
+};
+
+/** \ingroup enums
+  * Enum for indicating whether an object is aligned or not. */
+enum { 
+  /** Object is not correctly aligned for vectorization. */
+  Unaligned=0, 
+  /** Object is aligned for vectorization. */
+  Aligned=1 
+};
+
+/** \ingroup enums
+ * Enum used by DenseBase::corner() in Eigen2 compatibility mode. */
+// FIXME after the corner() API change, this was not needed anymore, except by AlignedBox
+// TODO: find out what to do with that. Adapt the AlignedBox API ?
+enum CornerType { TopLeft, TopRight, BottomLeft, BottomRight };
+
+/** \ingroup enums
+  * Enum containing possible values for the \p Direction parameter of
+  * Reverse, PartialReduxExpr and VectorwiseOp. */
+enum DirectionType { 
+  /** For Reverse, all columns are reversed; 
+    * for PartialReduxExpr and VectorwiseOp, act on columns. */
+  Vertical, 
+  /** For Reverse, all rows are reversed; 
+    * for PartialReduxExpr and VectorwiseOp, act on rows. */
+  Horizontal, 
+  /** For Reverse, both rows and columns are reversed; 
+    * not used for PartialReduxExpr and VectorwiseOp. */
+  BothDirections 
+};
+
+/** \internal \ingroup enums
+  * Enum to specify how to traverse the entries of a matrix. */
+enum {
+  /** \internal Default traversal, no vectorization, no index-based access */
+  DefaultTraversal,
+  /** \internal No vectorization, use index-based access to have only one for loop instead of 2 nested loops */
+  LinearTraversal,
+  /** \internal Equivalent to a slice vectorization for fixed-size matrices having good alignment
+    * and good size */
+  InnerVectorizedTraversal,
+  /** \internal Vectorization path using a single loop plus scalar loops for the
+    * unaligned boundaries */
+  LinearVectorizedTraversal,
+  /** \internal Generic vectorization path using one vectorized loop per row/column with some
+    * scalar loops to handle the unaligned boundaries */
+  SliceVectorizedTraversal,
+  /** \internal Special case to properly handle incompatible scalar types or other defecting cases*/
+  InvalidTraversal,
+  /** \internal Evaluate all entries at once */
+  AllAtOnceTraversal
+};
+
+/** \internal \ingroup enums
+  * Enum to specify whether to unroll loops when traversing over the entries of a matrix. */
+enum {
+  /** \internal Do not unroll loops. */
+  NoUnrolling,
+  /** \internal Unroll only the inner loop, but not the outer loop. */
+  InnerUnrolling,
+  /** \internal Unroll both the inner and the outer loop. If there is only one loop, 
+    * because linear traversal is used, then unroll that loop. */
+  CompleteUnrolling
+};
+
+/** \internal \ingroup enums
+  * Enum to specify whether to use the default (built-in) implementation or the specialization. */
+enum {
+  Specialized,
+  BuiltIn
+};
+
+/** \ingroup enums
+  * Enum containing possible values for the \p _Options template parameter of
+  * Matrix, Array and BandMatrix. */
+enum {
+  /** Storage order is column major (see \ref TopicStorageOrders). */
+  ColMajor = 0,
+  /** Storage order is row major (see \ref TopicStorageOrders). */
+  RowMajor = 0x1,  // it is only a coincidence that this is equal to RowMajorBit -- don't rely on that
+  /** Align the matrix itself if it is vectorizable fixed-size */
+  AutoAlign = 0,
+  /** Don't require alignment for the matrix itself (the array of coefficients, if dynamically allocated, may still be requested to be aligned) */ // FIXME --- clarify the situation
+  DontAlign = 0x2
+};
+
+/** \ingroup enums
+  * Enum for specifying whether to apply or solve on the left or right. */
+enum {
+  /** Apply transformation on the left. */
+  OnTheLeft = 1,  
+  /** Apply transformation on the right. */
+  OnTheRight = 2  
+};
+
+/* the following used to be written as:
+ *
+ *   struct NoChange_t {};
+ *   namespace {
+ *     EIGEN_UNUSED NoChange_t NoChange;
+ *   }
+ *
+ * on the ground that it feels dangerous to disambiguate overloaded functions on enum/integer types.  
+ * However, this leads to "variable declared but never referenced" warnings on Intel Composer XE,
+ * and we do not know how to get rid of them (bug 450).
+ */
+
+enum NoChange_t   { NoChange };
+enum Sequential_t { Sequential };
+enum Default_t    { Default };
+
+/** \internal \ingroup enums
+  * Used in AmbiVector. */
+enum {
+  IsDense         = 0,
+  IsSparse
+};
+
+/** \ingroup enums
+  * Used as template parameter in DenseCoeffBase and MapBase to indicate 
+  * which accessors should be provided. */
+enum AccessorLevels {
+  /** Read-only access via a member function. */
+  ReadOnlyAccessors, 
+  /** Read/write access via member functions. */
+  WriteAccessors, 
+  /** Direct read-only access to the coefficients. */
+  DirectAccessors, 
+  /** Direct read/write access to the coefficients. */
+  DirectWriteAccessors
+};
+
+/** \ingroup enums
+  * Enum with options to give to various decompositions. */
+enum DecompositionOptions {
+  /** \internal Not used (meant for LDLT?). */
+  Pivoting            = 0x01, 
+  /** \internal Not used (meant for LDLT?). */
+  NoPivoting          = 0x02, 
+  /** Used in JacobiSVD to indicate that the square matrix U is to be computed. */
+  ComputeFullU        = 0x04,
+  /** Used in JacobiSVD to indicate that the thin matrix U is to be computed. */
+  ComputeThinU        = 0x08,
+  /** Used in JacobiSVD to indicate that the square matrix V is to be computed. */
+  ComputeFullV        = 0x10,
+  /** Used in JacobiSVD to indicate that the thin matrix V is to be computed. */
+  ComputeThinV        = 0x20,
+  /** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
+    * that only the eigenvalues are to be computed and not the eigenvectors. */
+  EigenvaluesOnly     = 0x40,
+  /** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
+    * that both the eigenvalues and the eigenvectors are to be computed. */
+  ComputeEigenvectors = 0x80,
+  /** \internal */
+  EigVecMask = EigenvaluesOnly | ComputeEigenvectors,
+  /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
+    * solve the generalized eigenproblem \f$ Ax = \lambda B x \f$. */
+  Ax_lBx              = 0x100,
+  /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
+    * solve the generalized eigenproblem \f$ ABx = \lambda x \f$. */
+  ABx_lx              = 0x200,
+  /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
+    * solve the generalized eigenproblem \f$ BAx = \lambda x \f$. */
+  BAx_lx              = 0x400,
+  /** \internal */
+  GenEigMask = Ax_lBx | ABx_lx | BAx_lx
+};
+
+/** \ingroup enums
+  * Possible values for the \p QRPreconditioner template parameter of JacobiSVD. */
+enum QRPreconditioners {
+  /** Do not specify what is to be done if the SVD of a non-square matrix is asked for. */
+  NoQRPreconditioner,
+  /** Use a QR decomposition without pivoting as the first step. */
+  HouseholderQRPreconditioner,
+  /** Use a QR decomposition with column pivoting as the first step. */
+  ColPivHouseholderQRPreconditioner,
+  /** Use a QR decomposition with full pivoting as the first step. */
+  FullPivHouseholderQRPreconditioner
+};
+
+#ifdef Success
+#error The preprocessor symbol 'Success' is defined, possibly by the X11 header file X.h
+#endif
+
+/** \ingroup enums
+  * Enum for reporting the status of a computation. */
+enum ComputationInfo {
+  /** Computation was successful. */
+  Success = 0,        
+  /** The provided data did not satisfy the prerequisites. */
+  NumericalIssue = 1, 
+  /** Iterative procedure did not converge. */
+  NoConvergence = 2,
+  /** The inputs are invalid, or the algorithm has been improperly called.
+    * When assertions are enabled, such errors trigger an assert. */
+  InvalidInput = 3
+};
+
+/** \ingroup enums
+  * Enum used to specify how a particular transformation is stored in a matrix.
+  * \sa Transform, Hyperplane::transform(). */
+enum TransformTraits {
+  /** Transformation is an isometry. */
+  Isometry      = 0x1,
+  /** Transformation is an affine transformation stored as a (Dim+1)^2 matrix whose last row is 
+    * assumed to be [0 ... 0 1]. */
+  Affine        = 0x2,
+  /** Transformation is an affine transformation stored as a (Dim) x (Dim+1) matrix. */
+  AffineCompact = 0x10 | Affine,
+  /** Transformation is a general projective transformation stored as a (Dim+1)^2 matrix. */
+  Projective    = 0x20
+};
+
+/** \internal \ingroup enums
+  * Enum used to choose between implementation depending on the computer architecture. */
+namespace Architecture
+{
+  enum Type {
+    Generic = 0x0,
+    SSE = 0x1,
+    AltiVec = 0x2,
+#if defined EIGEN_VECTORIZE_SSE
+    Target = SSE
+#elif defined EIGEN_VECTORIZE_ALTIVEC
+    Target = AltiVec
+#else
+    Target = Generic
+#endif
+  };
+}
+
+/** \internal \ingroup enums
+  * Enum used as template parameter in GeneralProduct. */
+enum { CoeffBasedProductMode, LazyCoeffBasedProductMode, OuterProduct, InnerProduct, GemvProduct, GemmProduct };
+
+/** \internal \ingroup enums
+  * Enum used in experimental parallel implementation. */
+enum Action {GetAction, SetAction};
+
+/** The type used to identify a dense storage. */
+struct Dense {};
+
+/** The type used to identify a matrix expression */
+struct MatrixXpr {};
+
+/** The type used to identify an array expression */
+struct ArrayXpr {};
+
+namespace internal {
+  /** \internal
+  * Constants for comparison functors
+  */
+  enum ComparisonName {
+    cmp_EQ = 0,
+    cmp_LT = 1,
+    cmp_LE = 2,
+    cmp_UNORD = 3,
+    cmp_NEQ = 4
+  };
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_CONSTANTS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/util/DisableStupidWarnings.h b/vendor/eigen-3.2.8/Eigen/src/Core/util/DisableStupidWarnings.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/util/DisableStupidWarnings.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/util/DisableStupidWarnings.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/util/ForwardDeclarations.h b/vendor/eigen-3.2.8/Eigen/src/Core/util/ForwardDeclarations.h
new file mode 100644
index 0000000..f277720
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/util/ForwardDeclarations.h
@@ -0,0 +1,302 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_FORWARDDECLARATIONS_H
+#define EIGEN_FORWARDDECLARATIONS_H
+
+namespace Eigen {
+namespace internal {
+
+template<typename T> struct traits;
+
+// here we say once and for all that traits<const T> == traits<T>
+// When constness must affect traits, it has to be constness on template parameters on which T itself depends.
+// For example, traits<Map<const T> > != traits<Map<T> >, but
+//              traits<const Map<T> > == traits<Map<T> >
+template<typename T> struct traits<const T> : traits<T> {};
+
+template<typename Derived> struct has_direct_access
+{
+  enum { ret = (traits<Derived>::Flags & DirectAccessBit) ? 1 : 0 };
+};
+
+template<typename Derived> struct accessors_level
+{
+  enum { has_direct_access = (traits<Derived>::Flags & DirectAccessBit) ? 1 : 0,
+         has_write_access = (traits<Derived>::Flags & LvalueBit) ? 1 : 0,
+         value = has_direct_access ? (has_write_access ? DirectWriteAccessors : DirectAccessors)
+                                   : (has_write_access ? WriteAccessors       : ReadOnlyAccessors)
+  };
+};
+
+} // end namespace internal
+
+template<typename T> struct NumTraits;
+
+template<typename Derived> struct EigenBase;
+template<typename Derived> class DenseBase;
+template<typename Derived> class PlainObjectBase;
+
+
+template<typename Derived,
+         int Level = internal::accessors_level<Derived>::value >
+class DenseCoeffsBase;
+
+template<typename _Scalar, int _Rows, int _Cols,
+         int _Options = AutoAlign |
+#if defined(__GNUC__) && __GNUC__==3 && __GNUC_MINOR__==4
+    // workaround a bug in at least gcc 3.4.6
+    // the innermost ?: ternary operator is misparsed. We write it slightly
+    // differently and this makes gcc 3.4.6 happy, but it's ugly.
+    // The error would only show up with EIGEN_DEFAULT_TO_ROW_MAJOR is defined
+    // (when EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION is RowMajor)
+                          ( (_Rows==1 && _Cols!=1) ? RowMajor
+                          : !(_Cols==1 && _Rows!=1) ?  EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION
+                          : ColMajor ),
+#else
+                          ( (_Rows==1 && _Cols!=1) ? RowMajor
+                          : (_Cols==1 && _Rows!=1) ? ColMajor
+                          : EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ),
+#endif
+         int _MaxRows = _Rows,
+         int _MaxCols = _Cols
+> class Matrix;
+
+template<typename Derived> class MatrixBase;
+template<typename Derived> class ArrayBase;
+
+template<typename ExpressionType, unsigned int Added, unsigned int Removed> class Flagged;
+template<typename ExpressionType, template <typename> class StorageBase > class NoAlias;
+template<typename ExpressionType> class NestByValue;
+template<typename ExpressionType> class ForceAlignedAccess;
+template<typename ExpressionType> class SwapWrapper;
+
+template<typename XprType, int BlockRows=Dynamic, int BlockCols=Dynamic, bool InnerPanel = false> class Block;
+
+template<typename MatrixType, int Size=Dynamic> class VectorBlock;
+template<typename MatrixType> class Transpose;
+template<typename MatrixType> class Conjugate;
+template<typename NullaryOp, typename MatrixType>         class CwiseNullaryOp;
+template<typename UnaryOp,   typename MatrixType>         class CwiseUnaryOp;
+template<typename ViewOp,    typename MatrixType>         class CwiseUnaryView;
+template<typename BinaryOp,  typename Lhs, typename Rhs>  class CwiseBinaryOp;
+template<typename BinOp,     typename Lhs, typename Rhs>  class SelfCwiseBinaryOp;
+template<typename Derived,   typename Lhs, typename Rhs>  class ProductBase;
+template<typename Lhs, typename Rhs, int Mode>            class GeneralProduct;
+template<typename Lhs, typename Rhs, int NestingFlags>    class CoeffBasedProduct;
+
+template<typename Derived> class DiagonalBase;
+template<typename _DiagonalVectorType> class DiagonalWrapper;
+template<typename _Scalar, int SizeAtCompileTime, int MaxSizeAtCompileTime=SizeAtCompileTime> class DiagonalMatrix;
+template<typename MatrixType, typename DiagonalType, int ProductOrder> class DiagonalProduct;
+template<typename MatrixType, int Index = 0> class Diagonal;
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime = SizeAtCompileTime, typename IndexType=int> class PermutationMatrix;
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime = SizeAtCompileTime, typename IndexType=int> class Transpositions;
+template<typename Derived> class PermutationBase;
+template<typename Derived> class TranspositionsBase;
+template<typename _IndicesType> class PermutationWrapper;
+template<typename _IndicesType> class TranspositionsWrapper;
+
+template<typename Derived,
+         int Level = internal::accessors_level<Derived>::has_write_access ? WriteAccessors : ReadOnlyAccessors
+> class MapBase;
+template<int InnerStrideAtCompileTime, int OuterStrideAtCompileTime> class Stride;
+template<typename MatrixType, int MapOptions=Unaligned, typename StrideType = Stride<0,0> > class Map;
+
+template<typename Derived> class TriangularBase;
+template<typename MatrixType, unsigned int Mode> class TriangularView;
+template<typename MatrixType, unsigned int Mode> class SelfAdjointView;
+template<typename MatrixType> class SparseView;
+template<typename ExpressionType> class WithFormat;
+template<typename MatrixType> struct CommaInitializer;
+template<typename Derived> class ReturnByValue;
+template<typename ExpressionType> class ArrayWrapper;
+template<typename ExpressionType> class MatrixWrapper;
+
+namespace internal {
+template<typename DecompositionType, typename Rhs> struct solve_retval_base;
+template<typename DecompositionType, typename Rhs> struct solve_retval;
+template<typename DecompositionType> struct kernel_retval_base;
+template<typename DecompositionType> struct kernel_retval;
+template<typename DecompositionType> struct image_retval_base;
+template<typename DecompositionType> struct image_retval;
+} // end namespace internal
+
+namespace internal {
+template<typename _Scalar, int Rows=Dynamic, int Cols=Dynamic, int Supers=Dynamic, int Subs=Dynamic, int Options=0> class BandMatrix;
+}
+
+namespace internal {
+template<typename Lhs, typename Rhs> struct product_type;
+}
+
+template<typename Lhs, typename Rhs,
+         int ProductType = internal::product_type<Lhs,Rhs>::value>
+struct ProductReturnType;
+
+// this is a workaround for sun CC
+template<typename Lhs, typename Rhs> struct LazyProductReturnType;
+
+namespace internal {
+
+// Provides scalar/packet-wise product and product with accumulation
+// with optional conjugation of the arguments.
+template<typename LhsScalar, typename RhsScalar, bool ConjLhs=false, bool ConjRhs=false> struct conj_helper;
+
+template<typename Scalar> struct scalar_sum_op;
+template<typename Scalar> struct scalar_difference_op;
+template<typename LhsScalar,typename RhsScalar> struct scalar_conj_product_op;
+template<typename Scalar> struct scalar_opposite_op;
+template<typename Scalar> struct scalar_conjugate_op;
+template<typename Scalar> struct scalar_real_op;
+template<typename Scalar> struct scalar_imag_op;
+template<typename Scalar> struct scalar_abs_op;
+template<typename Scalar> struct scalar_abs2_op;
+template<typename Scalar> struct scalar_sqrt_op;
+template<typename Scalar> struct scalar_exp_op;
+template<typename Scalar> struct scalar_log_op;
+template<typename Scalar> struct scalar_cos_op;
+template<typename Scalar> struct scalar_sin_op;
+template<typename Scalar> struct scalar_acos_op;
+template<typename Scalar> struct scalar_asin_op;
+template<typename Scalar> struct scalar_tan_op;
+template<typename Scalar> struct scalar_pow_op;
+template<typename Scalar> struct scalar_inverse_op;
+template<typename Scalar> struct scalar_square_op;
+template<typename Scalar> struct scalar_cube_op;
+template<typename Scalar, typename NewType> struct scalar_cast_op;
+template<typename Scalar> struct scalar_multiple_op;
+template<typename Scalar> struct scalar_quotient1_op;
+template<typename Scalar> struct scalar_min_op;
+template<typename Scalar> struct scalar_max_op;
+template<typename Scalar> struct scalar_random_op;
+template<typename Scalar> struct scalar_add_op;
+template<typename Scalar> struct scalar_constant_op;
+template<typename Scalar> struct scalar_identity_op;
+
+template<typename LhsScalar,typename RhsScalar=LhsScalar> struct scalar_product_op;
+template<typename LhsScalar,typename RhsScalar> struct scalar_multiple2_op;
+template<typename LhsScalar,typename RhsScalar=LhsScalar> struct scalar_quotient_op;
+
+} // end namespace internal
+
+struct IOFormat;
+
+// Array module
+template<typename _Scalar, int _Rows, int _Cols,
+         int _Options = AutoAlign |
+#if defined(__GNUC__) && __GNUC__==3 && __GNUC_MINOR__==4
+    // workaround a bug in at least gcc 3.4.6
+    // the innermost ?: ternary operator is misparsed. We write it slightly
+    // differently and this makes gcc 3.4.6 happy, but it's ugly.
+    // The error would only show up with EIGEN_DEFAULT_TO_ROW_MAJOR is defined
+    // (when EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION is RowMajor)
+                          ( (_Rows==1 && _Cols!=1) ? RowMajor
+                          : !(_Cols==1 && _Rows!=1) ?  EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION
+                          : ColMajor ),
+#else
+                          ( (_Rows==1 && _Cols!=1) ? RowMajor
+                          : (_Cols==1 && _Rows!=1) ? ColMajor
+                          : EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ),
+#endif
+         int _MaxRows = _Rows, int _MaxCols = _Cols> class Array;
+template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType> class Select;
+template<typename MatrixType, typename BinaryOp, int Direction> class PartialReduxExpr;
+template<typename ExpressionType, int Direction> class VectorwiseOp;
+template<typename MatrixType,int RowFactor,int ColFactor> class Replicate;
+template<typename MatrixType, int Direction = BothDirections> class Reverse;
+
+template<typename MatrixType> class FullPivLU;
+template<typename MatrixType> class PartialPivLU;
+namespace internal {
+template<typename MatrixType> struct inverse_impl;
+}
+template<typename MatrixType> class HouseholderQR;
+template<typename MatrixType> class ColPivHouseholderQR;
+template<typename MatrixType> class FullPivHouseholderQR;
+template<typename MatrixType, int QRPreconditioner = ColPivHouseholderQRPreconditioner> class JacobiSVD;
+template<typename MatrixType, int UpLo = Lower> class LLT;
+template<typename MatrixType, int UpLo = Lower> class LDLT;
+template<typename VectorsType, typename CoeffsType, int Side=OnTheLeft> class HouseholderSequence;
+template<typename Scalar>     class JacobiRotation;
+
+// Geometry module:
+template<typename Derived, int _Dim> class RotationBase;
+template<typename Lhs, typename Rhs> class Cross;
+template<typename Derived> class QuaternionBase;
+template<typename Scalar> class Rotation2D;
+template<typename Scalar> class AngleAxis;
+template<typename Scalar,int Dim> class Translation;
+
+// Sparse module:
+template<typename Derived> class SparseMatrixBase;
+
+#ifdef EIGEN2_SUPPORT
+template<typename Derived, int _Dim> class eigen2_RotationBase;
+template<typename Lhs, typename Rhs> class eigen2_Cross;
+template<typename Scalar> class eigen2_Quaternion;
+template<typename Scalar> class eigen2_Rotation2D;
+template<typename Scalar> class eigen2_AngleAxis;
+template<typename Scalar,int Dim> class eigen2_Transform;
+template <typename _Scalar, int _AmbientDim> class eigen2_ParametrizedLine;
+template <typename _Scalar, int _AmbientDim> class eigen2_Hyperplane;
+template<typename Scalar,int Dim> class eigen2_Translation;
+template<typename Scalar,int Dim> class eigen2_Scaling;
+#endif
+
+#if EIGEN2_SUPPORT_STAGE < STAGE20_RESOLVE_API_CONFLICTS
+template<typename Scalar> class Quaternion;
+template<typename Scalar,int Dim> class Transform;
+template <typename _Scalar, int _AmbientDim> class ParametrizedLine;
+template <typename _Scalar, int _AmbientDim> class Hyperplane;
+template<typename Scalar,int Dim> class Scaling;
+#endif
+
+#if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
+template<typename Scalar, int Options = AutoAlign> class Quaternion;
+template<typename Scalar,int Dim,int Mode,int _Options=AutoAlign> class Transform;
+template <typename _Scalar, int _AmbientDim, int Options=AutoAlign> class ParametrizedLine;
+template <typename _Scalar, int _AmbientDim, int Options=AutoAlign> class Hyperplane;
+template<typename Scalar> class UniformScaling;
+template<typename MatrixType,int Direction> class Homogeneous;
+#endif
+
+// MatrixFunctions module
+template<typename Derived> struct MatrixExponentialReturnValue;
+template<typename Derived> class MatrixFunctionReturnValue;
+template<typename Derived> class MatrixSquareRootReturnValue;
+template<typename Derived> class MatrixLogarithmReturnValue;
+template<typename Derived> class MatrixPowerReturnValue;
+template<typename Derived, typename Lhs, typename Rhs> class MatrixPowerProduct;
+
+namespace internal {
+template <typename Scalar>
+struct stem_function
+{
+  typedef std::complex<typename NumTraits<Scalar>::Real> ComplexScalar;
+  typedef ComplexScalar type(ComplexScalar, int);
+};
+}
+
+
+#ifdef EIGEN2_SUPPORT
+template<typename ExpressionType> class Cwise;
+template<typename MatrixType> class Minor;
+template<typename MatrixType> class LU;
+template<typename MatrixType> class QR;
+template<typename MatrixType> class SVD;
+namespace internal {
+template<typename MatrixType, unsigned int Mode> struct eigen2_part_return_type;
+}
+#endif
+
+} // end namespace Eigen
+
+#endif // EIGEN_FORWARDDECLARATIONS_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/util/MKL_support.h b/vendor/eigen-3.2.8/Eigen/src/Core/util/MKL_support.h
new file mode 100644
index 0000000..1ef3b61
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/util/MKL_support.h
@@ -0,0 +1,158 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *   Include file with common MKL declarations
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_MKL_SUPPORT_H
+#define EIGEN_MKL_SUPPORT_H
+
+#ifdef EIGEN_USE_MKL_ALL
+  #ifndef EIGEN_USE_BLAS
+    #define EIGEN_USE_BLAS
+  #endif
+  #ifndef EIGEN_USE_LAPACKE
+    #define EIGEN_USE_LAPACKE
+  #endif
+  #ifndef EIGEN_USE_MKL_VML
+    #define EIGEN_USE_MKL_VML
+  #endif
+#endif
+
+#ifdef EIGEN_USE_LAPACKE_STRICT
+  #define EIGEN_USE_LAPACKE
+#endif
+
+#if defined(EIGEN_USE_BLAS) || defined(EIGEN_USE_LAPACKE) || defined(EIGEN_USE_MKL_VML)
+  #define EIGEN_USE_MKL
+#endif
+
+#if defined EIGEN_USE_MKL
+#   include <mkl.h> 
+/*Check IMKL version for compatibility: < 10.3 is not usable with Eigen*/
+#   ifndef INTEL_MKL_VERSION
+#       undef EIGEN_USE_MKL /* INTEL_MKL_VERSION is not even defined on older versions */
+#   elif INTEL_MKL_VERSION < 100305    /* the intel-mkl-103-release-notes say this was when the lapacke.h interface was added*/
+#       undef EIGEN_USE_MKL
+#   endif
+#   ifndef EIGEN_USE_MKL
+    /*If the MKL version is too old, undef everything*/
+#       undef   EIGEN_USE_MKL_ALL
+#       undef   EIGEN_USE_BLAS
+#       undef   EIGEN_USE_LAPACKE
+#       undef   EIGEN_USE_MKL_VML
+#       undef   EIGEN_USE_LAPACKE_STRICT
+#       undef   EIGEN_USE_LAPACKE
+#   endif
+#endif
+
+#if defined EIGEN_USE_MKL
+#include <mkl_lapacke.h>
+#define EIGEN_MKL_VML_THRESHOLD 128
+
+/* MKL_DOMAIN_BLAS, etc are defined only in 10.3 update 7 */
+/* MKL_BLAS, etc are not defined in 11.2 */
+#ifdef MKL_DOMAIN_ALL
+#define EIGEN_MKL_DOMAIN_ALL MKL_DOMAIN_ALL
+#else
+#define EIGEN_MKL_DOMAIN_ALL MKL_ALL
+#endif
+
+#ifdef MKL_DOMAIN_BLAS
+#define EIGEN_MKL_DOMAIN_BLAS MKL_DOMAIN_BLAS
+#else
+#define EIGEN_MKL_DOMAIN_BLAS MKL_BLAS
+#endif
+
+#ifdef MKL_DOMAIN_FFT
+#define EIGEN_MKL_DOMAIN_FFT MKL_DOMAIN_FFT
+#else
+#define EIGEN_MKL_DOMAIN_FFT MKL_FFT
+#endif
+
+#ifdef MKL_DOMAIN_VML
+#define EIGEN_MKL_DOMAIN_VML MKL_DOMAIN_VML
+#else
+#define EIGEN_MKL_DOMAIN_VML MKL_VML
+#endif
+
+#ifdef MKL_DOMAIN_PARDISO
+#define EIGEN_MKL_DOMAIN_PARDISO MKL_DOMAIN_PARDISO
+#else
+#define EIGEN_MKL_DOMAIN_PARDISO MKL_PARDISO
+#endif
+
+namespace Eigen {
+
+typedef std::complex<double> dcomplex;
+typedef std::complex<float>  scomplex;
+
+namespace internal {
+
+template<typename MKLType, typename EigenType>
+static inline void assign_scalar_eig2mkl(MKLType& mklScalar, const EigenType& eigenScalar) {
+  mklScalar=eigenScalar;
+}
+
+template<typename MKLType, typename EigenType>
+static inline void assign_conj_scalar_eig2mkl(MKLType& mklScalar, const EigenType& eigenScalar) {
+  mklScalar=eigenScalar;
+}
+
+template <>
+inline void assign_scalar_eig2mkl<MKL_Complex16,dcomplex>(MKL_Complex16& mklScalar, const dcomplex& eigenScalar) {
+  mklScalar.real=eigenScalar.real();
+  mklScalar.imag=eigenScalar.imag();
+}
+
+template <>
+inline void assign_scalar_eig2mkl<MKL_Complex8,scomplex>(MKL_Complex8& mklScalar, const scomplex& eigenScalar) {
+  mklScalar.real=eigenScalar.real();
+  mklScalar.imag=eigenScalar.imag();
+}
+
+template <>
+inline void assign_conj_scalar_eig2mkl<MKL_Complex16,dcomplex>(MKL_Complex16& mklScalar, const dcomplex& eigenScalar) {
+  mklScalar.real=eigenScalar.real();
+  mklScalar.imag=-eigenScalar.imag();
+}
+
+template <>
+inline void assign_conj_scalar_eig2mkl<MKL_Complex8,scomplex>(MKL_Complex8& mklScalar, const scomplex& eigenScalar) {
+  mklScalar.real=eigenScalar.real();
+  mklScalar.imag=-eigenScalar.imag();
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif
+
+#endif // EIGEN_MKL_SUPPORT_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/util/Macros.h b/vendor/eigen-3.2.8/Eigen/src/Core/util/Macros.h
new file mode 100644
index 0000000..e0d90eb
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/util/Macros.h
@@ -0,0 +1,714 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MACROS_H
+#define EIGEN_MACROS_H
+
+#define EIGEN_WORLD_VERSION 3
+#define EIGEN_MAJOR_VERSION 2
+#define EIGEN_MINOR_VERSION 8
+
+#define EIGEN_VERSION_AT_LEAST(x,y,z) (EIGEN_WORLD_VERSION>x || (EIGEN_WORLD_VERSION>=x && \
+                                      (EIGEN_MAJOR_VERSION>y || (EIGEN_MAJOR_VERSION>=y && \
+                                                                 EIGEN_MINOR_VERSION>=z))))
+
+
+// Compiler identification, EIGEN_COMP_*
+
+/// \internal EIGEN_COMP_GNUC set to 1 for all compilers compatible with GCC
+#ifdef __GNUC__
+  #define EIGEN_COMP_GNUC 1
+#else
+  #define EIGEN_COMP_GNUC 0
+#endif
+
+/// \internal EIGEN_COMP_CLANG set to 1 if the compiler is clang (alias for __clang__)
+#if defined(__clang__)
+  #define EIGEN_COMP_CLANG 1
+#else
+  #define EIGEN_COMP_CLANG 0
+#endif
+
+
+/// \internal EIGEN_COMP_LLVM set to 1 if the compiler backend is llvm
+#if defined(__llvm__)
+  #define EIGEN_COMP_LLVM 1
+#else
+  #define EIGEN_COMP_LLVM 0
+#endif
+
+/// \internal EIGEN_COMP_ICC set to __INTEL_COMPILER if the compiler is Intel compiler, 0 otherwise
+#if defined(__INTEL_COMPILER)
+  #define EIGEN_COMP_ICC __INTEL_COMPILER
+#else
+  #define EIGEN_COMP_ICC 0
+#endif
+
+/// \internal EIGEN_COMP_MINGW set to 1 if the compiler is mingw
+#if defined(__MINGW32__)
+  #define EIGEN_COMP_MINGW 1
+#else
+  #define EIGEN_COMP_MINGW 0
+#endif
+
+/// \internal EIGEN_COMP_SUNCC set to 1 if the compiler is Solaris Studio
+#if defined(__SUNPRO_CC)
+  #define EIGEN_COMP_SUNCC 1
+#else
+  #define EIGEN_COMP_SUNCC 0
+#endif
+
+/// \internal EIGEN_COMP_MSVC set to _MSC_VER if the compiler is Microsoft Visual C++, 0 otherwise.
+#if defined(_MSC_VER)
+  #define EIGEN_COMP_MSVC _MSC_VER
+#else
+  #define EIGEN_COMP_MSVC 0
+#endif
+
+/// \internal EIGEN_COMP_MSVC_STRICT set to 1 if the compiler is really Microsoft Visual C++ and not ,e.g., ICC
+#if EIGEN_COMP_MSVC && !(EIGEN_COMP_ICC)
+  #define EIGEN_COMP_MSVC_STRICT _MSC_VER
+#else
+  #define EIGEN_COMP_MSVC_STRICT 0
+#endif
+
+/// \internal EIGEN_COMP_IBM set to 1 if the compiler is IBM XL C++
+#if defined(__IBMCPP__) || defined(__xlc__)
+  #define EIGEN_COMP_IBM 1
+#else
+  #define EIGEN_COMP_IBM 0
+#endif
+
+/// \internal EIGEN_COMP_PGI set to 1 if the compiler is Portland Group Compiler
+#if defined(__PGI)
+  #define EIGEN_COMP_PGI 1
+#else
+  #define EIGEN_COMP_PGI 0
+#endif
+
+/// \internal EIGEN_COMP_ARM set to 1 if the compiler is ARM Compiler
+#if defined(__CC_ARM) || defined(__ARMCC_VERSION)
+  #define EIGEN_COMP_ARM 1
+#else
+  #define EIGEN_COMP_ARM 0
+#endif
+
+
+/// \internal EIGEN_GNUC_STRICT set to 1 if the compiler is really GCC and not a compatible compiler (e.g., ICC, clang, mingw, etc.)
+#if EIGEN_COMP_GNUC && !(EIGEN_COMP_CLANG || EIGEN_COMP_ICC || EIGEN_COMP_MINGW || EIGEN_COMP_PGI || EIGEN_COMP_IBM || EIGEN_COMP_ARM )
+  #define EIGEN_COMP_GNUC_STRICT 1
+#else
+  #define EIGEN_COMP_GNUC_STRICT 0
+#endif
+
+
+#if EIGEN_COMP_GNUC
+  #define EIGEN_GNUC_AT_LEAST(x,y) ((__GNUC__==x && __GNUC_MINOR__>=y) || __GNUC__>x)
+  #define EIGEN_GNUC_AT_MOST(x,y)  ((__GNUC__==x && __GNUC_MINOR__<=y) || __GNUC__<x)
+  #define EIGEN_GNUC_AT(x,y)       ( __GNUC__==x && __GNUC_MINOR__==y )
+#else
+  #define EIGEN_GNUC_AT_LEAST(x,y) 0
+  #define EIGEN_GNUC_AT_MOST(x,y)  0
+  #define EIGEN_GNUC_AT(x,y)       0
+#endif
+
+// FIXME: could probably be removed as we do not support gcc 3.x anymore
+#if EIGEN_COMP_GNUC && (__GNUC__ <= 3)
+#define EIGEN_GCC3_OR_OLDER 1
+#else
+#define EIGEN_GCC3_OR_OLDER 0
+#endif
+
+
+// Architecture identification, EIGEN_ARCH_*
+
+#if defined(__x86_64__) || defined(_M_X64) || defined(__amd64)
+  #define EIGEN_ARCH_x86_64 1
+#else
+  #define EIGEN_ARCH_x86_64 0
+#endif
+
+#if defined(__i386__) || defined(_M_IX86) || defined(_X86_) || defined(__i386)
+  #define EIGEN_ARCH_i386 1
+#else
+  #define EIGEN_ARCH_i386 0
+#endif
+
+#if EIGEN_ARCH_x86_64 || EIGEN_ARCH_i386
+  #define EIGEN_ARCH_i386_OR_x86_64 1
+#else
+  #define EIGEN_ARCH_i386_OR_x86_64 0
+#endif
+
+/// \internal EIGEN_ARCH_ARM set to 1 if the architecture is ARM
+#if defined(__arm__)
+  #define EIGEN_ARCH_ARM 1
+#else
+  #define EIGEN_ARCH_ARM 0
+#endif
+
+/// \internal EIGEN_ARCH_ARM64 set to 1 if the architecture is ARM64
+#if defined(__aarch64__)
+  #define EIGEN_ARCH_ARM64 1
+#else
+  #define EIGEN_ARCH_ARM64 0
+#endif
+
+#if EIGEN_ARCH_ARM || EIGEN_ARCH_ARM64
+  #define EIGEN_ARCH_ARM_OR_ARM64 1
+#else
+  #define EIGEN_ARCH_ARM_OR_ARM64 0
+#endif
+
+/// \internal EIGEN_ARCH_MIPS set to 1 if the architecture is MIPS
+#if defined(__mips__) || defined(__mips)
+  #define EIGEN_ARCH_MIPS 1
+#else
+  #define EIGEN_ARCH_MIPS 0
+#endif
+
+/// \internal EIGEN_ARCH_SPARC set to 1 if the architecture is SPARC
+#if defined(__sparc__) || defined(__sparc)
+  #define EIGEN_ARCH_SPARC 1
+#else
+  #define EIGEN_ARCH_SPARC 0
+#endif
+
+/// \internal EIGEN_ARCH_IA64 set to 1 if the architecture is Intel Itanium
+#if defined(__ia64__)
+  #define EIGEN_ARCH_IA64 1
+#else
+  #define EIGEN_ARCH_IA64 0
+#endif
+
+/// \internal EIGEN_ARCH_PPC set to 1 if the architecture is PowerPC
+#if defined(__powerpc__) || defined(__ppc__) || defined(_M_PPC)
+  #define EIGEN_ARCH_PPC 1
+#else
+  #define EIGEN_ARCH_PPC 0
+#endif
+
+
+
+// Operating system identification, EIGEN_OS_*
+
+/// \internal EIGEN_OS_UNIX set to 1 if the OS is a unix variant
+#if defined(__unix__) || defined(__unix)
+  #define EIGEN_OS_UNIX 1
+#else
+  #define EIGEN_OS_UNIX 0
+#endif
+
+/// \internal EIGEN_OS_LINUX set to 1 if the OS is based on Linux kernel
+#if defined(__linux__)
+  #define EIGEN_OS_LINUX 1
+#else
+  #define EIGEN_OS_LINUX 0
+#endif
+
+/// \internal EIGEN_OS_ANDROID set to 1 if the OS is Android
+// note: ANDROID is defined when using ndk_build, __ANDROID__ is defined when using a standalone toolchain.
+#if defined(__ANDROID__) || defined(ANDROID)
+  #define EIGEN_OS_ANDROID 1
+#else
+  #define EIGEN_OS_ANDROID 0
+#endif
+
+/// \internal EIGEN_OS_GNULINUX set to 1 if the OS is GNU Linux and not Linux-based OS (e.g., not android)
+#if defined(__gnu_linux__) && !(EIGEN_OS_ANDROID)
+  #define EIGEN_OS_GNULINUX 1
+#else
+  #define EIGEN_OS_GNULINUX 0
+#endif
+
+/// \internal EIGEN_OS_BSD set to 1 if the OS is a BSD variant
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__DragonFly__)
+  #define EIGEN_OS_BSD 1
+#else
+  #define EIGEN_OS_BSD 0
+#endif
+
+/// \internal EIGEN_OS_MAC set to 1 if the OS is MacOS
+#if defined(__APPLE__)
+  #define EIGEN_OS_MAC 1
+#else
+  #define EIGEN_OS_MAC 0
+#endif
+
+/// \internal EIGEN_OS_QNX set to 1 if the OS is QNX
+#if defined(__QNX__)
+  #define EIGEN_OS_QNX 1
+#else
+  #define EIGEN_OS_QNX 0
+#endif
+
+/// \internal EIGEN_OS_WIN set to 1 if the OS is Windows based
+#if defined(_WIN32)
+  #define EIGEN_OS_WIN 1
+#else
+  #define EIGEN_OS_WIN 0
+#endif
+
+/// \internal EIGEN_OS_WIN64 set to 1 if the OS is Windows 64bits
+#if defined(_WIN64)
+  #define EIGEN_OS_WIN64 1
+#else
+  #define EIGEN_OS_WIN64 0
+#endif
+
+/// \internal EIGEN_OS_WINCE set to 1 if the OS is Windows CE
+#if defined(_WIN32_WCE)
+  #define EIGEN_OS_WINCE 1
+#else
+  #define EIGEN_OS_WINCE 0
+#endif
+
+/// \internal EIGEN_OS_CYGWIN set to 1 if the OS is Windows/Cygwin
+#if defined(__CYGWIN__)
+  #define EIGEN_OS_CYGWIN 1
+#else
+  #define EIGEN_OS_CYGWIN 0
+#endif
+
+/// \internal EIGEN_OS_WIN_STRICT set to 1 if the OS is really Windows and not some variants
+#if EIGEN_OS_WIN && !( EIGEN_OS_WINCE || EIGEN_OS_CYGWIN )
+  #define EIGEN_OS_WIN_STRICT 1
+#else
+  #define EIGEN_OS_WIN_STRICT 0
+#endif
+
+/// \internal EIGEN_OS_SUN set to 1 if the OS is SUN
+#if (defined(sun) || defined(__sun)) && !(defined(__SVR4) || defined(__svr4__))
+  #define EIGEN_OS_SUN 1
+#else
+  #define EIGEN_OS_SUN 0
+#endif
+
+/// \internal EIGEN_OS_SOLARIS set to 1 if the OS is Solaris
+#if (defined(sun) || defined(__sun)) && (defined(__SVR4) || defined(__svr4__))
+  #define EIGEN_OS_SOLARIS 1
+#else
+  #define EIGEN_OS_SOLARIS 0
+#endif
+
+
+#if EIGEN_GNUC_AT_MOST(4,3) && !defined(__clang__)
+  // see bug 89
+  #define EIGEN_SAFE_TO_USE_STANDARD_ASSERT_MACRO 0
+#else
+  #define EIGEN_SAFE_TO_USE_STANDARD_ASSERT_MACRO 1
+#endif
+
+// 16 byte alignment is only useful for vectorization. Since it affects the ABI, we need to enable
+// 16 byte alignment on all platforms where vectorization might be enabled. In theory we could always
+// enable alignment, but it can be a cause of problems on some platforms, so we just disable it in
+// certain common platform (compiler+architecture combinations) to avoid these problems.
+// Only static alignment is really problematic (relies on nonstandard compiler extensions that don't
+// work everywhere, for example don't work on GCC/ARM), try to keep heap alignment even
+// when we have to disable static alignment.
+#if defined(__GNUC__) && !(defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__ppc__) || defined(__ia64__))
+#define EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT 1
+#else
+#define EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT 0
+#endif
+
+// static alignment is completely disabled with GCC 3, Sun Studio, and QCC/QNX
+#if !EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT \
+ && !EIGEN_GCC3_OR_OLDER \
+ && !defined(__SUNPRO_CC) \
+ && !defined(__QNXNTO__)
+  #define EIGEN_ARCH_WANTS_STACK_ALIGNMENT 1
+#else
+  #define EIGEN_ARCH_WANTS_STACK_ALIGNMENT 0
+#endif
+
+#ifdef EIGEN_DONT_ALIGN
+  #ifndef EIGEN_DONT_ALIGN_STATICALLY
+    #define EIGEN_DONT_ALIGN_STATICALLY
+  #endif
+  #define EIGEN_ALIGN 0
+#else
+  #define EIGEN_ALIGN 1
+#endif
+
+// EIGEN_ALIGN_STATICALLY is the true test whether we want to align arrays on the stack or not. It takes into account both the user choice to explicitly disable
+// alignment (EIGEN_DONT_ALIGN_STATICALLY) and the architecture config (EIGEN_ARCH_WANTS_STACK_ALIGNMENT). Henceforth, only EIGEN_ALIGN_STATICALLY should be used.
+#if EIGEN_ARCH_WANTS_STACK_ALIGNMENT && !defined(EIGEN_DONT_ALIGN_STATICALLY)
+  #define EIGEN_ALIGN_STATICALLY 1
+#else
+  #define EIGEN_ALIGN_STATICALLY 0
+  #ifndef EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT
+    #define EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT
+  #endif
+#endif
+
+#ifdef EIGEN_DEFAULT_TO_ROW_MAJOR
+#define EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION RowMajor
+#else
+#define EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ColMajor
+#endif
+
+#ifndef EIGEN_DEFAULT_DENSE_INDEX_TYPE
+#define EIGEN_DEFAULT_DENSE_INDEX_TYPE std::ptrdiff_t
+#endif
+
+// A Clang feature extension to determine compiler features.
+// We use it to determine 'cxx_rvalue_references'
+#ifndef __has_feature
+# define __has_feature(x) 0
+#endif
+
+// Do we support r-value references?
+#if (__has_feature(cxx_rvalue_references) || \
+     (defined(__cplusplus) && __cplusplus >= 201103L) || \
+     (defined(_MSC_VER) && _MSC_VER >= 1600))
+  #define EIGEN_HAVE_RVALUE_REFERENCES
+#endif
+
+
+// Cross compiler wrapper around LLVM's __has_builtin
+#ifdef __has_builtin
+#  define EIGEN_HAS_BUILTIN(x) __has_builtin(x)
+#else
+#  define EIGEN_HAS_BUILTIN(x) 0
+#endif
+
+/** Allows to disable some optimizations which might affect the accuracy of the result.
+  * Such optimization are enabled by default, and set EIGEN_FAST_MATH to 0 to disable them.
+  * They currently include:
+  *   - single precision Cwise::sin() and Cwise::cos() when SSE vectorization is enabled.
+  */
+#ifndef EIGEN_FAST_MATH
+#define EIGEN_FAST_MATH 1
+#endif
+
+#define EIGEN_DEBUG_VAR(x) std::cerr << #x << " = " << x << std::endl;
+
+// concatenate two tokens
+#define EIGEN_CAT2(a,b) a ## b
+#define EIGEN_CAT(a,b) EIGEN_CAT2(a,b)
+
+// convert a token to a string
+#define EIGEN_MAKESTRING2(a) #a
+#define EIGEN_MAKESTRING(a) EIGEN_MAKESTRING2(a)
+
+// EIGEN_STRONG_INLINE is a stronger version of the inline, using __forceinline on MSVC,
+// but it still doesn't use GCC's always_inline. This is useful in (common) situations where MSVC needs forceinline
+// but GCC is still doing fine with just inline.
+#if (defined _MSC_VER) || (defined __INTEL_COMPILER)
+#define EIGEN_STRONG_INLINE __forceinline
+#else
+#define EIGEN_STRONG_INLINE inline
+#endif
+
+// EIGEN_ALWAYS_INLINE is the stronget, it has the effect of making the function inline and adding every possible
+// attribute to maximize inlining. This should only be used when really necessary: in particular,
+// it uses __attribute__((always_inline)) on GCC, which most of the time is useless and can severely harm compile times.
+// FIXME with the always_inline attribute,
+// gcc 3.4.x reports the following compilation error:
+//   Eval.h:91: sorry, unimplemented: inlining failed in call to 'const Eigen::Eval<Derived> Eigen::MatrixBase<Scalar, Derived>::eval() const'
+//    : function body not available
+#if EIGEN_GNUC_AT_LEAST(4,0)
+#define EIGEN_ALWAYS_INLINE __attribute__((always_inline)) inline
+#else
+#define EIGEN_ALWAYS_INLINE EIGEN_STRONG_INLINE
+#endif
+
+#if (defined __GNUC__)
+#define EIGEN_DONT_INLINE __attribute__((noinline))
+#elif (defined _MSC_VER)
+#define EIGEN_DONT_INLINE __declspec(noinline)
+#else
+#define EIGEN_DONT_INLINE
+#endif
+
+#if (defined __GNUC__)
+#define EIGEN_PERMISSIVE_EXPR __extension__
+#else
+#define EIGEN_PERMISSIVE_EXPR
+#endif
+
+// this macro allows to get rid of linking errors about multiply defined functions.
+//  - static is not very good because it prevents definitions from different object files to be merged.
+//           So static causes the resulting linked executable to be bloated with multiple copies of the same function.
+//  - inline is not perfect either as it unwantedly hints the compiler toward inlining the function.
+#define EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+#define EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS inline
+
+#ifdef NDEBUG
+# ifndef EIGEN_NO_DEBUG
+#  define EIGEN_NO_DEBUG
+# endif
+#endif
+
+// eigen_plain_assert is where we implement the workaround for the assert() bug in GCC <= 4.3, see bug 89
+#ifdef EIGEN_NO_DEBUG
+  #define eigen_plain_assert(x)
+#else
+  #if EIGEN_SAFE_TO_USE_STANDARD_ASSERT_MACRO
+    namespace Eigen {
+    namespace internal {
+    inline bool copy_bool(bool b) { return b; }
+    }
+    }
+    #define eigen_plain_assert(x) assert(x)
+  #else
+    // work around bug 89
+    #include <cstdlib>   // for abort
+    #include <iostream>  // for std::cerr
+
+    namespace Eigen {
+    namespace internal {
+    // trivial function copying a bool. Must be EIGEN_DONT_INLINE, so we implement it after including Eigen headers.
+    // see bug 89.
+    namespace {
+    EIGEN_DONT_INLINE bool copy_bool(bool b) { return b; }
+    }
+    inline void assert_fail(const char *condition, const char *function, const char *file, int line)
+    {
+      std::cerr << "assertion failed: " << condition << " in function " << function << " at " << file << ":" << line << std::endl;
+      abort();
+    }
+    }
+    }
+    #define eigen_plain_assert(x) \
+      do { \
+        if(!Eigen::internal::copy_bool(x)) \
+          Eigen::internal::assert_fail(EIGEN_MAKESTRING(x), __PRETTY_FUNCTION__, __FILE__, __LINE__); \
+      } while(false)
+  #endif
+#endif
+
+// eigen_assert can be overridden
+#ifndef eigen_assert
+#define eigen_assert(x) eigen_plain_assert(x)
+#endif
+
+#ifdef EIGEN_INTERNAL_DEBUGGING
+#define eigen_internal_assert(x) eigen_assert(x)
+#else
+#define eigen_internal_assert(x)
+#endif
+
+#ifdef EIGEN_NO_DEBUG
+#define EIGEN_ONLY_USED_FOR_DEBUG(x) (void)x
+#else
+#define EIGEN_ONLY_USED_FOR_DEBUG(x)
+#endif
+
+#ifndef EIGEN_NO_DEPRECATED_WARNING
+  #if (defined __GNUC__)
+    #define EIGEN_DEPRECATED __attribute__((deprecated))
+  #elif (defined _MSC_VER)
+    #define EIGEN_DEPRECATED __declspec(deprecated)
+  #else
+    #define EIGEN_DEPRECATED
+  #endif
+#else
+  #define EIGEN_DEPRECATED
+#endif
+
+#if (defined __GNUC__)
+#define EIGEN_UNUSED __attribute__((unused))
+#else
+#define EIGEN_UNUSED
+#endif
+
+// Suppresses 'unused variable' warnings.
+namespace Eigen {
+  namespace internal {
+    template<typename T> void ignore_unused_variable(const T&) {}
+  }
+}
+#define EIGEN_UNUSED_VARIABLE(var) Eigen::internal::ignore_unused_variable(var);
+
+#if !defined(EIGEN_ASM_COMMENT)
+  #if (defined __GNUC__) && ( defined(__i386__) || defined(__x86_64__) )
+    #define EIGEN_ASM_COMMENT(X)  __asm__("#" X)
+  #else
+    #define EIGEN_ASM_COMMENT(X)
+  #endif
+#endif
+
+/* EIGEN_ALIGN_TO_BOUNDARY(n) forces data to be n-byte aligned. This is used to satisfy SIMD requirements.
+ * However, we do that EVEN if vectorization (EIGEN_VECTORIZE) is disabled,
+ * so that vectorization doesn't affect binary compatibility.
+ *
+ * If we made alignment depend on whether or not EIGEN_VECTORIZE is defined, it would be impossible to link
+ * vectorized and non-vectorized code.
+ */
+#if (defined __GNUC__) || (defined __PGI) || (defined __IBMCPP__) || (defined __ARMCC_VERSION)
+  #define EIGEN_ALIGN_TO_BOUNDARY(n) __attribute__((aligned(n)))
+#elif (defined _MSC_VER)
+  #define EIGEN_ALIGN_TO_BOUNDARY(n) __declspec(align(n))
+#elif (defined __SUNPRO_CC)
+  // FIXME not sure about this one:
+  #define EIGEN_ALIGN_TO_BOUNDARY(n) __attribute__((aligned(n)))
+#else
+  #error Please tell me what is the equivalent of __attribute__((aligned(n))) for your compiler
+#endif
+
+#define EIGEN_ALIGN8  EIGEN_ALIGN_TO_BOUNDARY(8)
+#define EIGEN_ALIGN16 EIGEN_ALIGN_TO_BOUNDARY(16)
+
+#if EIGEN_ALIGN_STATICALLY
+#define EIGEN_USER_ALIGN_TO_BOUNDARY(n) EIGEN_ALIGN_TO_BOUNDARY(n)
+#define EIGEN_USER_ALIGN16 EIGEN_ALIGN16
+#else
+#define EIGEN_USER_ALIGN_TO_BOUNDARY(n)
+#define EIGEN_USER_ALIGN16
+#endif
+
+#ifdef EIGEN_DONT_USE_RESTRICT_KEYWORD
+  #define EIGEN_RESTRICT
+#endif
+#ifndef EIGEN_RESTRICT
+  #define EIGEN_RESTRICT __restrict
+#endif
+
+#ifndef EIGEN_STACK_ALLOCATION_LIMIT
+// 131072 == 128 KB
+#define EIGEN_STACK_ALLOCATION_LIMIT 131072
+#endif
+
+#ifndef EIGEN_DEFAULT_IO_FORMAT
+#ifdef EIGEN_MAKING_DOCS
+// format used in Eigen's documentation
+// needed to define it here as escaping characters in CMake add_definition's argument seems very problematic.
+#define EIGEN_DEFAULT_IO_FORMAT Eigen::IOFormat(3, 0, " ", "\n", "", "")
+#else
+#define EIGEN_DEFAULT_IO_FORMAT Eigen::IOFormat()
+#endif
+#endif
+
+// just an empty macro !
+#define EIGEN_EMPTY
+
+#if defined(_MSC_VER) && (_MSC_VER < 1900) && (!defined(__INTEL_COMPILER))
+#define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) \
+  using Base::operator =;
+#elif defined(__clang__) // workaround clang bug (see http://forum.kde.org/viewtopic.php?f=74&t=102653)
+#define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) \
+  using Base::operator =; \
+  EIGEN_STRONG_INLINE Derived& operator=(const Derived& other) { Base::operator=(other); return *this; } \
+  template <typename OtherDerived> \
+  EIGEN_STRONG_INLINE Derived& operator=(const DenseBase<OtherDerived>& other) { Base::operator=(other.derived()); return *this; }
+#else
+#define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) \
+  using Base::operator =; \
+  EIGEN_STRONG_INLINE Derived& operator=(const Derived& other) \
+  { \
+    Base::operator=(other); \
+    return *this; \
+  }
+#endif
+
+/** \internal
+ * \brief Macro to manually inherit assignment operators.
+ * This is necessary, because the implicitly defined assignment operator gets deleted when a custom operator= is defined.
+ */
+#define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Derived) EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived)
+
+/**
+* Just a side note. Commenting within defines works only by documenting
+* behind the object (via '!<'). Comments cannot be multi-line and thus
+* we have these extra long lines. What is confusing doxygen over here is
+* that we use '\' and basically have a bunch of typedefs with their
+* documentation in a single line.
+**/
+
+#define EIGEN_GENERIC_PUBLIC_INTERFACE(Derived) \
+  typedef typename Eigen::internal::traits<Derived>::Scalar Scalar; /*!< \brief Numeric type, e.g. float, double, int or std::complex<float>. */ \
+  typedef typename Eigen::NumTraits<Scalar>::Real RealScalar; /*!< \brief The underlying numeric type for composed scalar types. \details In cases where Scalar is e.g. std::complex<T>, T were corresponding to RealScalar. */ \
+  typedef typename Base::CoeffReturnType CoeffReturnType; /*!< \brief The return type for coefficient access. \details Depending on whether the object allows direct coefficient access (e.g. for a MatrixXd), this type is either 'const Scalar&' or simply 'Scalar' for objects that do not allow direct coefficient access. */ \
+  typedef typename Eigen::internal::nested<Derived>::type Nested; \
+  typedef typename Eigen::internal::traits<Derived>::StorageKind StorageKind; \
+  typedef typename Eigen::internal::traits<Derived>::Index Index; \
+  enum { RowsAtCompileTime = Eigen::internal::traits<Derived>::RowsAtCompileTime, \
+        ColsAtCompileTime = Eigen::internal::traits<Derived>::ColsAtCompileTime, \
+        Flags = Eigen::internal::traits<Derived>::Flags, \
+        CoeffReadCost = Eigen::internal::traits<Derived>::CoeffReadCost, \
+        SizeAtCompileTime = Base::SizeAtCompileTime, \
+        MaxSizeAtCompileTime = Base::MaxSizeAtCompileTime, \
+        IsVectorAtCompileTime = Base::IsVectorAtCompileTime };
+
+
+#define EIGEN_DENSE_PUBLIC_INTERFACE(Derived) \
+  typedef typename Eigen::internal::traits<Derived>::Scalar Scalar; /*!< \brief Numeric type, e.g. float, double, int or std::complex<float>. */ \
+  typedef typename Eigen::NumTraits<Scalar>::Real RealScalar; /*!< \brief The underlying numeric type for composed scalar types. \details In cases where Scalar is e.g. std::complex<T>, T were corresponding to RealScalar. */ \
+  typedef typename Base::PacketScalar PacketScalar; \
+  typedef typename Base::CoeffReturnType CoeffReturnType; /*!< \brief The return type for coefficient access. \details Depending on whether the object allows direct coefficient access (e.g. for a MatrixXd), this type is either 'const Scalar&' or simply 'Scalar' for objects that do not allow direct coefficient access. */ \
+  typedef typename Eigen::internal::nested<Derived>::type Nested; \
+  typedef typename Eigen::internal::traits<Derived>::StorageKind StorageKind; \
+  typedef typename Eigen::internal::traits<Derived>::Index Index; \
+  enum { RowsAtCompileTime = Eigen::internal::traits<Derived>::RowsAtCompileTime, \
+        ColsAtCompileTime = Eigen::internal::traits<Derived>::ColsAtCompileTime, \
+        MaxRowsAtCompileTime = Eigen::internal::traits<Derived>::MaxRowsAtCompileTime, \
+        MaxColsAtCompileTime = Eigen::internal::traits<Derived>::MaxColsAtCompileTime, \
+        Flags = Eigen::internal::traits<Derived>::Flags, \
+        CoeffReadCost = Eigen::internal::traits<Derived>::CoeffReadCost, \
+        SizeAtCompileTime = Base::SizeAtCompileTime, \
+        MaxSizeAtCompileTime = Base::MaxSizeAtCompileTime, \
+        IsVectorAtCompileTime = Base::IsVectorAtCompileTime }; \
+  using Base::derived; \
+  using Base::const_cast_derived;
+
+
+#define EIGEN_PLAIN_ENUM_MIN(a,b) (((int)a <= (int)b) ? (int)a : (int)b)
+#define EIGEN_PLAIN_ENUM_MAX(a,b) (((int)a >= (int)b) ? (int)a : (int)b)
+
+// EIGEN_SIZE_MIN_PREFER_DYNAMIC gives the min between compile-time sizes. 0 has absolute priority, followed by 1,
+// followed by Dynamic, followed by other finite values. The reason for giving Dynamic the priority over
+// finite values is that min(3, Dynamic) should be Dynamic, since that could be anything between 0 and 3.
+#define EIGEN_SIZE_MIN_PREFER_DYNAMIC(a,b) (((int)a == 0 || (int)b == 0) ? 0 \
+                           : ((int)a == 1 || (int)b == 1) ? 1 \
+                           : ((int)a == Dynamic || (int)b == Dynamic) ? Dynamic \
+                           : ((int)a <= (int)b) ? (int)a : (int)b)
+
+// EIGEN_SIZE_MIN_PREFER_FIXED is a variant of EIGEN_SIZE_MIN_PREFER_DYNAMIC comparing MaxSizes. The difference is that finite values
+// now have priority over Dynamic, so that min(3, Dynamic) gives 3. Indeed, whatever the actual value is
+// (between 0 and 3), it is not more than 3.
+#define EIGEN_SIZE_MIN_PREFER_FIXED(a,b)  (((int)a == 0 || (int)b == 0) ? 0 \
+                           : ((int)a == 1 || (int)b == 1) ? 1 \
+                           : ((int)a == Dynamic && (int)b == Dynamic) ? Dynamic \
+                           : ((int)a == Dynamic) ? (int)b \
+                           : ((int)b == Dynamic) ? (int)a \
+                           : ((int)a <= (int)b) ? (int)a : (int)b)
+
+// see EIGEN_SIZE_MIN_PREFER_DYNAMIC. No need for a separate variant for MaxSizes here.
+#define EIGEN_SIZE_MAX(a,b) (((int)a == Dynamic || (int)b == Dynamic) ? Dynamic \
+                           : ((int)a >= (int)b) ? (int)a : (int)b)
+
+#define EIGEN_ADD_COST(a,b) int(a)==Dynamic || int(b)==Dynamic ? Dynamic : int(a)+int(b)
+
+#define EIGEN_LOGICAL_XOR(a,b) (((a) || (b)) && !((a) && (b)))
+
+#define EIGEN_IMPLIES(a,b) (!(a) || (b))
+
+#define EIGEN_MAKE_CWISE_BINARY_OP(METHOD,FUNCTOR) \
+  template<typename OtherDerived> \
+  EIGEN_STRONG_INLINE const CwiseBinaryOp<FUNCTOR<Scalar>, const Derived, const OtherDerived> \
+  (METHOD)(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const \
+  { \
+    return CwiseBinaryOp<FUNCTOR<Scalar>, const Derived, const OtherDerived>(derived(), other.derived()); \
+  }
+
+// the expression type of a cwise product
+#define EIGEN_CWISE_PRODUCT_RETURN_TYPE(LHS,RHS) \
+    CwiseBinaryOp< \
+      internal::scalar_product_op< \
+          typename internal::traits<LHS>::Scalar, \
+          typename internal::traits<RHS>::Scalar \
+      >, \
+      const LHS, \
+      const RHS \
+    >
+
+#endif // EIGEN_MACROS_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/util/Memory.h b/vendor/eigen-3.2.8/Eigen/src/Core/util/Memory.h
new file mode 100644
index 0000000..bc1ea69
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/util/Memory.h
@@ -0,0 +1,979 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2008-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2009 Kenneth Riddile <kfriddile at yahoo.com>
+// Copyright (C) 2010 Hauke Heibel <hauke.heibel at gmail.com>
+// Copyright (C) 2010 Thomas Capricelli <orzel at freehackers.org>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+/*****************************************************************************
+*** Platform checks for aligned malloc functions                           ***
+*****************************************************************************/
+
+#ifndef EIGEN_MEMORY_H
+#define EIGEN_MEMORY_H
+
+#ifndef EIGEN_MALLOC_ALREADY_ALIGNED
+
+// Try to determine automatically if malloc is already aligned.
+
+// On 64-bit systems, glibc's malloc returns 16-byte-aligned pointers, see:
+//   http://www.gnu.org/s/libc/manual/html_node/Aligned-Memory-Blocks.html
+// This is true at least since glibc 2.8.
+// This leaves the question how to detect 64-bit. According to this document,
+//   http://gcc.fyxm.net/summit/2003/Porting%20to%2064%20bit.pdf
+// page 114, "[The] LP64 model [...] is used by all 64-bit UNIX ports" so it's indeed
+// quite safe, at least within the context of glibc, to equate 64-bit with LP64.
+#if defined(__GLIBC__) && ((__GLIBC__>=2 && __GLIBC_MINOR__ >= 8) || __GLIBC__>2) \
+ && defined(__LP64__) && ! defined( __SANITIZE_ADDRESS__ )
+  #define EIGEN_GLIBC_MALLOC_ALREADY_ALIGNED 1
+#else
+  #define EIGEN_GLIBC_MALLOC_ALREADY_ALIGNED 0
+#endif
+
+// FreeBSD 6 seems to have 16-byte aligned malloc
+//   See http://svn.freebsd.org/viewvc/base/stable/6/lib/libc/stdlib/malloc.c?view=markup
+// FreeBSD 7 seems to have 16-byte aligned malloc except on ARM and MIPS architectures
+//   See http://svn.freebsd.org/viewvc/base/stable/7/lib/libc/stdlib/malloc.c?view=markup
+#if defined(__FreeBSD__) && !defined(__arm__) && !defined(__mips__)
+  #define EIGEN_FREEBSD_MALLOC_ALREADY_ALIGNED 1
+#else
+  #define EIGEN_FREEBSD_MALLOC_ALREADY_ALIGNED 0
+#endif
+
+#if defined(__APPLE__) \
+ || defined(_WIN64) \
+ || EIGEN_GLIBC_MALLOC_ALREADY_ALIGNED \
+ || EIGEN_FREEBSD_MALLOC_ALREADY_ALIGNED
+  #define EIGEN_MALLOC_ALREADY_ALIGNED 1
+#else
+  #define EIGEN_MALLOC_ALREADY_ALIGNED 0
+#endif
+
+#endif
+
+// See bug 554 (http://eigen.tuxfamily.org/bz/show_bug.cgi?id=554)
+// It seems to be unsafe to check _POSIX_ADVISORY_INFO without including unistd.h first.
+// Currently, let's include it only on unix systems:
+#if defined(__unix__) || defined(__unix)
+  #include <unistd.h>
+  #if ((defined __QNXNTO__) || (defined _GNU_SOURCE) || (defined __PGI) || ((defined _XOPEN_SOURCE) && (_XOPEN_SOURCE >= 600))) && (defined _POSIX_ADVISORY_INFO) && (_POSIX_ADVISORY_INFO > 0)
+    #define EIGEN_HAS_POSIX_MEMALIGN 1
+  #endif
+#endif
+
+#ifndef EIGEN_HAS_POSIX_MEMALIGN
+  #define EIGEN_HAS_POSIX_MEMALIGN 0
+#endif
+
+#ifdef EIGEN_VECTORIZE_SSE
+  #define EIGEN_HAS_MM_MALLOC 1
+#else
+  #define EIGEN_HAS_MM_MALLOC 0
+#endif
+
+namespace Eigen {
+
+namespace internal {
+
+inline void throw_std_bad_alloc()
+{
+  #ifdef EIGEN_EXCEPTIONS
+    throw std::bad_alloc();
+  #else
+    std::size_t huge = -1;
+    new int[huge];
+  #endif
+}
+
+/*****************************************************************************
+*** Implementation of handmade aligned functions                           ***
+*****************************************************************************/
+
+/* ----- Hand made implementations of aligned malloc/free and realloc ----- */
+
+/** \internal Like malloc, but the returned pointer is guaranteed to be 16-byte aligned.
+  * Fast, but wastes 16 additional bytes of memory. Does not throw any exception.
+  */
+inline void* handmade_aligned_malloc(std::size_t size)
+{
+  void *original = std::malloc(size+16);
+  if (original == 0) return 0;
+  void *aligned = reinterpret_cast<void*>((reinterpret_cast<std::size_t>(original) & ~(std::size_t(15))) + 16);
+  *(reinterpret_cast<void**>(aligned) - 1) = original;
+  return aligned;
+}
+
+/** \internal Frees memory allocated with handmade_aligned_malloc */
+inline void handmade_aligned_free(void *ptr)
+{
+  if (ptr) std::free(*(reinterpret_cast<void**>(ptr) - 1));
+}
+
+/** \internal
+  * \brief Reallocates aligned memory.
+  * Since we know that our handmade version is based on std::realloc
+  * we can use std::realloc to implement efficient reallocation.
+  */
+inline void* handmade_aligned_realloc(void* ptr, std::size_t size, std::size_t = 0)
+{
+  if (ptr == 0) return handmade_aligned_malloc(size);
+  void *original = *(reinterpret_cast<void**>(ptr) - 1);
+  std::ptrdiff_t previous_offset = static_cast<char *>(ptr)-static_cast<char *>(original);
+  original = std::realloc(original,size+16);
+  if (original == 0) return 0;
+  void *aligned = reinterpret_cast<void*>((reinterpret_cast<std::size_t>(original) & ~(std::size_t(15))) + 16);
+  void *previous_aligned = static_cast<char *>(original)+previous_offset;
+  if(aligned!=previous_aligned)
+    std::memmove(aligned, previous_aligned, size);
+  
+  *(reinterpret_cast<void**>(aligned) - 1) = original;
+  return aligned;
+}
+
+/*****************************************************************************
+*** Implementation of generic aligned realloc (when no realloc can be used)***
+*****************************************************************************/
+
+void* aligned_malloc(std::size_t size);
+void  aligned_free(void *ptr);
+
+/** \internal
+  * \brief Reallocates aligned memory.
+  * Allows reallocation with aligned ptr types. This implementation will
+  * always create a new memory chunk and copy the old data.
+  */
+inline void* generic_aligned_realloc(void* ptr, size_t size, size_t old_size)
+{
+  if (ptr==0)
+    return aligned_malloc(size);
+
+  if (size==0)
+  {
+    aligned_free(ptr);
+    return 0;
+  }
+
+  void* newptr = aligned_malloc(size);
+  if (newptr == 0)
+  {
+    #ifdef EIGEN_HAS_ERRNO
+    errno = ENOMEM; // according to the standard
+    #endif
+    return 0;
+  }
+
+  if (ptr != 0)
+  {
+    std::memcpy(newptr, ptr, (std::min)(size,old_size));
+    aligned_free(ptr);
+  }
+
+  return newptr;
+}
+
+/*****************************************************************************
+*** Implementation of portable aligned versions of malloc/free/realloc     ***
+*****************************************************************************/
+
+#ifdef EIGEN_NO_MALLOC
+inline void check_that_malloc_is_allowed()
+{
+  eigen_assert(false && "heap allocation is forbidden (EIGEN_NO_MALLOC is defined)");
+}
+#elif defined EIGEN_RUNTIME_NO_MALLOC
+inline bool is_malloc_allowed_impl(bool update, bool new_value = false)
+{
+  static bool value = true;
+  if (update == 1)
+    value = new_value;
+  return value;
+}
+inline bool is_malloc_allowed() { return is_malloc_allowed_impl(false); }
+inline bool set_is_malloc_allowed(bool new_value) { return is_malloc_allowed_impl(true, new_value); }
+inline void check_that_malloc_is_allowed()
+{
+  eigen_assert(is_malloc_allowed() && "heap allocation is forbidden (EIGEN_RUNTIME_NO_MALLOC is defined and g_is_malloc_allowed is false)");
+}
+#else 
+inline void check_that_malloc_is_allowed()
+{}
+#endif
+
+/** \internal Allocates \a size bytes. The returned pointer is guaranteed to have 16 bytes alignment.
+  * On allocation error, the returned pointer is null, and std::bad_alloc is thrown.
+  */
+inline void* aligned_malloc(size_t size)
+{
+  check_that_malloc_is_allowed();
+
+  void *result;
+  #if !EIGEN_ALIGN
+    result = std::malloc(size);
+  #elif EIGEN_MALLOC_ALREADY_ALIGNED
+    result = std::malloc(size);
+  #elif EIGEN_HAS_POSIX_MEMALIGN
+    if(posix_memalign(&result, 16, size)) result = 0;
+  #elif EIGEN_HAS_MM_MALLOC
+    result = _mm_malloc(size, 16);
+  #elif defined(_MSC_VER) && (!defined(_WIN32_WCE))
+    result = _aligned_malloc(size, 16);
+  #else
+    result = handmade_aligned_malloc(size);
+  #endif
+
+  if(!result && size)
+    throw_std_bad_alloc();
+
+  return result;
+}
+
+/** \internal Frees memory allocated with aligned_malloc. */
+inline void aligned_free(void *ptr)
+{
+  #if !EIGEN_ALIGN
+    std::free(ptr);
+  #elif EIGEN_MALLOC_ALREADY_ALIGNED
+    std::free(ptr);
+  #elif EIGEN_HAS_POSIX_MEMALIGN
+    std::free(ptr);
+  #elif EIGEN_HAS_MM_MALLOC
+    _mm_free(ptr);
+  #elif defined(_MSC_VER) && (!defined(_WIN32_WCE))
+    _aligned_free(ptr);
+  #else
+    handmade_aligned_free(ptr);
+  #endif
+}
+
+/**
+* \internal
+* \brief Reallocates an aligned block of memory.
+* \throws std::bad_alloc on allocation failure
+**/
+inline void* aligned_realloc(void *ptr, size_t new_size, size_t old_size)
+{
+  EIGEN_UNUSED_VARIABLE(old_size);
+
+  void *result;
+#if !EIGEN_ALIGN
+  result = std::realloc(ptr,new_size);
+#elif EIGEN_MALLOC_ALREADY_ALIGNED
+  result = std::realloc(ptr,new_size);
+#elif EIGEN_HAS_POSIX_MEMALIGN
+  result = generic_aligned_realloc(ptr,new_size,old_size);
+#elif EIGEN_HAS_MM_MALLOC
+  // The defined(_mm_free) is just here to verify that this MSVC version
+  // implements _mm_malloc/_mm_free based on the corresponding _aligned_
+  // functions. This may not always be the case and we just try to be safe.
+  #if defined(_MSC_VER) && (!defined(_WIN32_WCE)) && defined(_mm_free)
+    result = _aligned_realloc(ptr,new_size,16);
+  #else
+    result = generic_aligned_realloc(ptr,new_size,old_size);
+  #endif
+#elif defined(_MSC_VER) && (!defined(_WIN32_WCE))
+  result = _aligned_realloc(ptr,new_size,16);
+#else
+  result = handmade_aligned_realloc(ptr,new_size,old_size);
+#endif
+
+  if (!result && new_size)
+    throw_std_bad_alloc();
+
+  return result;
+}
+
+/*****************************************************************************
+*** Implementation of conditionally aligned functions                      ***
+*****************************************************************************/
+
+/** \internal Allocates \a size bytes. If Align is true, then the returned ptr is 16-byte-aligned.
+  * On allocation error, the returned pointer is null, and a std::bad_alloc is thrown.
+  */
+template<bool Align> inline void* conditional_aligned_malloc(size_t size)
+{
+  return aligned_malloc(size);
+}
+
+template<> inline void* conditional_aligned_malloc<false>(size_t size)
+{
+  check_that_malloc_is_allowed();
+
+  void *result = std::malloc(size);
+  if(!result && size)
+    throw_std_bad_alloc();
+  return result;
+}
+
+/** \internal Frees memory allocated with conditional_aligned_malloc */
+template<bool Align> inline void conditional_aligned_free(void *ptr)
+{
+  aligned_free(ptr);
+}
+
+template<> inline void conditional_aligned_free<false>(void *ptr)
+{
+  std::free(ptr);
+}
+
+template<bool Align> inline void* conditional_aligned_realloc(void* ptr, size_t new_size, size_t old_size)
+{
+  return aligned_realloc(ptr, new_size, old_size);
+}
+
+template<> inline void* conditional_aligned_realloc<false>(void* ptr, size_t new_size, size_t)
+{
+  return std::realloc(ptr, new_size);
+}
+
+/*****************************************************************************
+*** Construction/destruction of array elements                             ***
+*****************************************************************************/
+
+/** \internal Constructs the elements of an array.
+  * The \a size parameter tells on how many objects to call the constructor of T.
+  */
+template<typename T> inline T* construct_elements_of_array(T *ptr, size_t size)
+{
+  for (size_t i=0; i < size; ++i) ::new (ptr + i) T;
+  return ptr;
+}
+
+/** \internal Destructs the elements of an array.
+  * The \a size parameters tells on how many objects to call the destructor of T.
+  */
+template<typename T> inline void destruct_elements_of_array(T *ptr, size_t size)
+{
+  // always destruct an array starting from the end.
+  if(ptr)
+    while(size) ptr[--size].~T();
+}
+
+/*****************************************************************************
+*** Implementation of aligned new/delete-like functions                    ***
+*****************************************************************************/
+
+template<typename T>
+EIGEN_ALWAYS_INLINE void check_size_for_overflow(size_t size)
+{
+  if(size > size_t(-1) / sizeof(T))
+    throw_std_bad_alloc();
+}
+
+/** \internal Allocates \a size objects of type T. The returned pointer is guaranteed to have 16 bytes alignment.
+  * On allocation error, the returned pointer is undefined, but a std::bad_alloc is thrown.
+  * The default constructor of T is called.
+  */
+template<typename T> inline T* aligned_new(size_t size)
+{
+  check_size_for_overflow<T>(size);
+  T *result = reinterpret_cast<T*>(aligned_malloc(sizeof(T)*size));
+  return construct_elements_of_array(result, size);
+}
+
+template<typename T, bool Align> inline T* conditional_aligned_new(size_t size)
+{
+  check_size_for_overflow<T>(size);
+  T *result = reinterpret_cast<T*>(conditional_aligned_malloc<Align>(sizeof(T)*size));
+  return construct_elements_of_array(result, size);
+}
+
+/** \internal Deletes objects constructed with aligned_new
+  * The \a size parameters tells on how many objects to call the destructor of T.
+  */
+template<typename T> inline void aligned_delete(T *ptr, size_t size)
+{
+  destruct_elements_of_array<T>(ptr, size);
+  aligned_free(ptr);
+}
+
+/** \internal Deletes objects constructed with conditional_aligned_new
+  * The \a size parameters tells on how many objects to call the destructor of T.
+  */
+template<typename T, bool Align> inline void conditional_aligned_delete(T *ptr, size_t size)
+{
+  destruct_elements_of_array<T>(ptr, size);
+  conditional_aligned_free<Align>(ptr);
+}
+
+template<typename T, bool Align> inline T* conditional_aligned_realloc_new(T* pts, size_t new_size, size_t old_size)
+{
+  check_size_for_overflow<T>(new_size);
+  check_size_for_overflow<T>(old_size);
+  if(new_size < old_size)
+    destruct_elements_of_array(pts+new_size, old_size-new_size);
+  T *result = reinterpret_cast<T*>(conditional_aligned_realloc<Align>(reinterpret_cast<void*>(pts), sizeof(T)*new_size, sizeof(T)*old_size));
+  if(new_size > old_size)
+    construct_elements_of_array(result+old_size, new_size-old_size);
+  return result;
+}
+
+
+template<typename T, bool Align> inline T* conditional_aligned_new_auto(size_t size)
+{
+  if(size==0)
+    return 0; // short-cut. Also fixes Bug 884
+  check_size_for_overflow<T>(size);
+  T *result = reinterpret_cast<T*>(conditional_aligned_malloc<Align>(sizeof(T)*size));
+  if(NumTraits<T>::RequireInitialization)
+    construct_elements_of_array(result, size);
+  return result;
+}
+
+template<typename T, bool Align> inline T* conditional_aligned_realloc_new_auto(T* pts, size_t new_size, size_t old_size)
+{
+  check_size_for_overflow<T>(new_size);
+  check_size_for_overflow<T>(old_size);
+  if(NumTraits<T>::RequireInitialization && (new_size < old_size))
+    destruct_elements_of_array(pts+new_size, old_size-new_size);
+  T *result = reinterpret_cast<T*>(conditional_aligned_realloc<Align>(reinterpret_cast<void*>(pts), sizeof(T)*new_size, sizeof(T)*old_size));
+  if(NumTraits<T>::RequireInitialization && (new_size > old_size))
+    construct_elements_of_array(result+old_size, new_size-old_size);
+  return result;
+}
+
+template<typename T, bool Align> inline void conditional_aligned_delete_auto(T *ptr, size_t size)
+{
+  if(NumTraits<T>::RequireInitialization)
+    destruct_elements_of_array<T>(ptr, size);
+  conditional_aligned_free<Align>(ptr);
+}
+
+/****************************************************************************/
+
+/** \internal Returns the index of the first element of the array that is well aligned for vectorization.
+  *
+  * \param array the address of the start of the array
+  * \param size the size of the array
+  *
+  * \note If no element of the array is well aligned, the size of the array is returned. Typically,
+  * for example with SSE, "well aligned" means 16-byte-aligned. If vectorization is disabled or if the
+  * packet size for the given scalar type is 1, then everything is considered well-aligned.
+  *
+  * \note If the scalar type is vectorizable, we rely on the following assumptions: sizeof(Scalar) is a
+  * power of 2, the packet size in bytes is also a power of 2, and is a multiple of sizeof(Scalar). On the
+  * other hand, we do not assume that the array address is a multiple of sizeof(Scalar), as that fails for
+  * example with Scalar=double on certain 32-bit platforms, see bug #79.
+  *
+  * There is also the variant first_aligned(const MatrixBase&) defined in DenseCoeffsBase.h.
+  */
+template<typename Scalar, typename Index>
+static inline Index first_aligned(const Scalar* array, Index size)
+{
+  static const Index PacketSize = packet_traits<Scalar>::size;
+  static const Index PacketAlignedMask = PacketSize-1;
+
+  if(PacketSize==1)
+  {
+    // Either there is no vectorization, or a packet consists of exactly 1 scalar so that all elements
+    // of the array have the same alignment.
+    return 0;
+  }
+  else if(size_t(array) & (sizeof(Scalar)-1))
+  {
+    // There is vectorization for this scalar type, but the array is not aligned to the size of a single scalar.
+    // Consequently, no element of the array is well aligned.
+    return size;
+  }
+  else
+  {
+    return std::min<Index>( (PacketSize - (Index((size_t(array)/sizeof(Scalar))) & PacketAlignedMask))
+                           & PacketAlignedMask, size);
+  }
+}
+
+/** \internal Returns the smallest integer multiple of \a base and greater or equal to \a size
+  */ 
+template<typename Index> 
+inline static Index first_multiple(Index size, Index base)
+{
+  return ((size+base-1)/base)*base;
+}
+
+// std::copy is much slower than memcpy, so let's introduce a smart_copy which
+// use memcpy on trivial types, i.e., on types that does not require an initialization ctor.
+template<typename T, bool UseMemcpy> struct smart_copy_helper;
+
+template<typename T> void smart_copy(const T* start, const T* end, T* target)
+{
+  smart_copy_helper<T,!NumTraits<T>::RequireInitialization>::run(start, end, target);
+}
+
+template<typename T> struct smart_copy_helper<T,true> {
+  static inline void run(const T* start, const T* end, T* target)
+  { memcpy(target, start, std::ptrdiff_t(end)-std::ptrdiff_t(start)); }
+};
+
+template<typename T> struct smart_copy_helper<T,false> {
+  static inline void run(const T* start, const T* end, T* target)
+  { std::copy(start, end, target); }
+};
+
+
+/*****************************************************************************
+*** Implementation of runtime stack allocation (falling back to malloc)    ***
+*****************************************************************************/
+
+// you can overwrite Eigen's default behavior regarding alloca by defining EIGEN_ALLOCA
+// to the appropriate stack allocation function
+#ifndef EIGEN_ALLOCA
+  #if (defined __linux__) || (defined __APPLE__) || (defined alloca)
+    #define EIGEN_ALLOCA alloca
+  #elif defined(_MSC_VER)
+    #define EIGEN_ALLOCA _alloca
+  #endif
+#endif
+
+// This helper class construct the allocated memory, and takes care of destructing and freeing the handled data
+// at destruction time. In practice this helper class is mainly useful to avoid memory leak in case of exceptions.
+template<typename T> class aligned_stack_memory_handler
+{
+  public:
+    /* Creates a stack_memory_handler responsible for the buffer \a ptr of size \a size.
+     * Note that \a ptr can be 0 regardless of the other parameters.
+     * This constructor takes care of constructing/initializing the elements of the buffer if required by the scalar type T (see NumTraits<T>::RequireInitialization).
+     * In this case, the buffer elements will also be destructed when this handler will be destructed.
+     * Finally, if \a dealloc is true, then the pointer \a ptr is freed.
+     **/
+    aligned_stack_memory_handler(T* ptr, size_t size, bool dealloc)
+      : m_ptr(ptr), m_size(size), m_deallocate(dealloc)
+    {
+      if(NumTraits<T>::RequireInitialization && m_ptr)
+        Eigen::internal::construct_elements_of_array(m_ptr, size);
+    }
+    ~aligned_stack_memory_handler()
+    {
+      if(NumTraits<T>::RequireInitialization && m_ptr)
+        Eigen::internal::destruct_elements_of_array<T>(m_ptr, m_size);
+      if(m_deallocate)
+        Eigen::internal::aligned_free(m_ptr);
+    }
+  protected:
+    T* m_ptr;
+    size_t m_size;
+    bool m_deallocate;
+};
+
+} // end namespace internal
+
+/** \internal
+  * Declares, allocates and construct an aligned buffer named NAME of SIZE elements of type TYPE on the stack
+  * if SIZE is smaller than EIGEN_STACK_ALLOCATION_LIMIT, and if stack allocation is supported by the platform
+  * (currently, this is Linux and Visual Studio only). Otherwise the memory is allocated on the heap.
+  * The allocated buffer is automatically deleted when exiting the scope of this declaration.
+  * If BUFFER is non null, then the declared variable is simply an alias for BUFFER, and no allocation/deletion occurs.
+  * Here is an example:
+  * \code
+  * {
+  *   ei_declare_aligned_stack_constructed_variable(float,data,size,0);
+  *   // use data[0] to data[size-1]
+  * }
+  * \endcode
+  * The underlying stack allocation function can controlled with the EIGEN_ALLOCA preprocessor token.
+  */
+#ifdef EIGEN_ALLOCA
+
+  #if defined(__arm__) || defined(_WIN32)
+    #define EIGEN_ALIGNED_ALLOCA(SIZE) reinterpret_cast<void*>((reinterpret_cast<size_t>(EIGEN_ALLOCA(SIZE+16)) & ~(size_t(15))) + 16)
+  #else
+    #define EIGEN_ALIGNED_ALLOCA EIGEN_ALLOCA
+  #endif
+
+  #define ei_declare_aligned_stack_constructed_variable(TYPE,NAME,SIZE,BUFFER) \
+    Eigen::internal::check_size_for_overflow<TYPE>(SIZE); \
+    TYPE* NAME = (BUFFER)!=0 ? (BUFFER) \
+               : reinterpret_cast<TYPE*>( \
+                      (sizeof(TYPE)*SIZE<=EIGEN_STACK_ALLOCATION_LIMIT) ? EIGEN_ALIGNED_ALLOCA(sizeof(TYPE)*SIZE) \
+                    : Eigen::internal::aligned_malloc(sizeof(TYPE)*SIZE) );  \
+    Eigen::internal::aligned_stack_memory_handler<TYPE> EIGEN_CAT(NAME,_stack_memory_destructor)((BUFFER)==0 ? NAME : 0,SIZE,sizeof(TYPE)*SIZE>EIGEN_STACK_ALLOCATION_LIMIT)
+
+#else
+
+  #define ei_declare_aligned_stack_constructed_variable(TYPE,NAME,SIZE,BUFFER) \
+    Eigen::internal::check_size_for_overflow<TYPE>(SIZE); \
+    TYPE* NAME = (BUFFER)!=0 ? BUFFER : reinterpret_cast<TYPE*>(Eigen::internal::aligned_malloc(sizeof(TYPE)*SIZE));    \
+    Eigen::internal::aligned_stack_memory_handler<TYPE> EIGEN_CAT(NAME,_stack_memory_destructor)((BUFFER)==0 ? NAME : 0,SIZE,true)
+    
+#endif
+
+
+/*****************************************************************************
+*** Implementation of EIGEN_MAKE_ALIGNED_OPERATOR_NEW [_IF]                ***
+*****************************************************************************/
+
+#if EIGEN_ALIGN
+  #ifdef EIGEN_EXCEPTIONS
+    #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_NOTHROW(NeedsToAlign) \
+      void* operator new(size_t size, const std::nothrow_t&) throw() { \
+        try { return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); } \
+        catch (...) { return 0; } \
+      }
+  #else
+    #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_NOTHROW(NeedsToAlign) \
+      void* operator new(size_t size, const std::nothrow_t&) throw() { \
+        return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); \
+      }
+  #endif
+
+  #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign) \
+      void *operator new(size_t size) { \
+        return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); \
+      } \
+      void *operator new[](size_t size) { \
+        return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); \
+      } \
+      void operator delete(void * ptr) throw() { Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); } \
+      void operator delete[](void * ptr) throw() { Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); } \
+      void operator delete(void * ptr, std::size_t /* sz */) throw() { Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); } \
+      void operator delete[](void * ptr, std::size_t /* sz */) throw() { Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); } \
+      /* in-place new and delete. since (at least afaik) there is no actual   */ \
+      /* memory allocated we can safely let the default implementation handle */ \
+      /* this particular case. */ \
+      static void *operator new(size_t size, void *ptr) { return ::operator new(size,ptr); } \
+      static void *operator new[](size_t size, void* ptr) { return ::operator new[](size,ptr); } \
+      void operator delete(void * memory, void *ptr) throw() { return ::operator delete(memory,ptr); } \
+      void operator delete[](void * memory, void *ptr) throw() { return ::operator delete[](memory,ptr); } \
+      /* nothrow-new (returns zero instead of std::bad_alloc) */ \
+      EIGEN_MAKE_ALIGNED_OPERATOR_NEW_NOTHROW(NeedsToAlign) \
+      void operator delete(void *ptr, const std::nothrow_t&) throw() { \
+        Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); \
+      } \
+      typedef void eigen_aligned_operator_new_marker_type;
+#else
+  #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign)
+#endif
+
+#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(true)
+#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(Scalar,Size) \
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(bool(((Size)!=Eigen::Dynamic) && ((sizeof(Scalar)*(Size))%16==0)))
+
+/****************************************************************************/
+
+/** \class aligned_allocator
+* \ingroup Core_Module
+*
+* \brief STL compatible allocator to use with with 16 byte aligned types
+*
+* Example:
+* \code
+* // Matrix4f requires 16 bytes alignment:
+* std::map< int, Matrix4f, std::less<int>, 
+*           aligned_allocator<std::pair<const int, Matrix4f> > > my_map_mat4;
+* // Vector3f does not require 16 bytes alignment, no need to use Eigen's allocator:
+* std::map< int, Vector3f > my_map_vec3;
+* \endcode
+*
+* \sa \ref TopicStlContainers.
+*/
+template<class T>
+class aligned_allocator
+{
+public:
+    typedef size_t    size_type;
+    typedef std::ptrdiff_t difference_type;
+    typedef T*        pointer;
+    typedef const T*  const_pointer;
+    typedef T&        reference;
+    typedef const T&  const_reference;
+    typedef T         value_type;
+
+    template<class U>
+    struct rebind
+    {
+        typedef aligned_allocator<U> other;
+    };
+
+    pointer address( reference value ) const
+    {
+        return &value;
+    }
+
+    const_pointer address( const_reference value ) const
+    {
+        return &value;
+    }
+
+    aligned_allocator()
+    {
+    }
+
+    aligned_allocator( const aligned_allocator& )
+    {
+    }
+
+    template<class U>
+    aligned_allocator( const aligned_allocator<U>& )
+    {
+    }
+
+    ~aligned_allocator()
+    {
+    }
+
+    size_type max_size() const
+    {
+        return (std::numeric_limits<size_type>::max)();
+    }
+
+    pointer allocate( size_type num, const void* hint = 0 )
+    {
+        EIGEN_UNUSED_VARIABLE(hint);
+        internal::check_size_for_overflow<T>(num);
+        return static_cast<pointer>( internal::aligned_malloc( num * sizeof(T) ) );
+    }
+
+    void construct( pointer p, const T& value )
+    {
+        ::new( p ) T( value );
+    }
+
+    void destroy( pointer p )
+    {
+        p->~T();
+    }
+
+    void deallocate( pointer p, size_type /*num*/ )
+    {
+        internal::aligned_free( p );
+    }
+
+    bool operator!=(const aligned_allocator<T>& ) const
+    { return false; }
+
+    bool operator==(const aligned_allocator<T>& ) const
+    { return true; }
+};
+
+//---------- Cache sizes ----------
+
+#if !defined(EIGEN_NO_CPUID)
+#  if defined(__GNUC__) && ( defined(__i386__) || defined(__x86_64__) )
+#    if defined(__PIC__) && defined(__i386__)
+       // Case for x86 with PIC
+#      define EIGEN_CPUID(abcd,func,id) \
+         __asm__ __volatile__ ("xchgl %%ebx, %k1;cpuid; xchgl %%ebx,%k1": "=a" (abcd[0]), "=&r" (abcd[1]), "=c" (abcd[2]), "=d" (abcd[3]) : "a" (func), "c" (id));
+#    elif defined(__PIC__) && defined(__x86_64__)
+       // Case for x64 with PIC. In theory this is only a problem with recent gcc and with medium or large code model, not with the default small code model.
+       // However, we cannot detect which code model is used, and the xchg overhead is negligible anyway.
+#      define EIGEN_CPUID(abcd,func,id) \
+        __asm__ __volatile__ ("xchg{q}\t{%%}rbx, %q1; cpuid; xchg{q}\t{%%}rbx, %q1": "=a" (abcd[0]), "=&r" (abcd[1]), "=c" (abcd[2]), "=d" (abcd[3]) : "0" (func), "2" (id));
+#    else
+       // Case for x86_64 or x86 w/o PIC
+#      define EIGEN_CPUID(abcd,func,id) \
+         __asm__ __volatile__ ("cpuid": "=a" (abcd[0]), "=b" (abcd[1]), "=c" (abcd[2]), "=d" (abcd[3]) : "0" (func), "2" (id) );
+#    endif
+#  elif defined(_MSC_VER)
+#    if (_MSC_VER > 1500) && ( defined(_M_IX86) || defined(_M_X64) )
+#      define EIGEN_CPUID(abcd,func,id) __cpuidex((int*)abcd,func,id)
+#    endif
+#  endif
+#endif
+
+namespace internal {
+
+#ifdef EIGEN_CPUID
+
+inline bool cpuid_is_vendor(int abcd[4], const int vendor[3])
+{
+  return abcd[1]==vendor[0] && abcd[3]==vendor[1] && abcd[2]==vendor[2];
+}
+
+inline void queryCacheSizes_intel_direct(int& l1, int& l2, int& l3)
+{
+  int abcd[4];
+  l1 = l2 = l3 = 0;
+  int cache_id = 0;
+  int cache_type = 0;
+  do {
+    abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
+    EIGEN_CPUID(abcd,0x4,cache_id);
+    cache_type  = (abcd[0] & 0x0F) >> 0;
+    if(cache_type==1||cache_type==3) // data or unified cache
+    {
+      int cache_level = (abcd[0] & 0xE0) >> 5;  // A[7:5]
+      int ways        = (abcd[1] & 0xFFC00000) >> 22; // B[31:22]
+      int partitions  = (abcd[1] & 0x003FF000) >> 12; // B[21:12]
+      int line_size   = (abcd[1] & 0x00000FFF) >>  0; // B[11:0]
+      int sets        = (abcd[2]);                    // C[31:0]
+
+      int cache_size = (ways+1) * (partitions+1) * (line_size+1) * (sets+1);
+
+      switch(cache_level)
+      {
+        case 1: l1 = cache_size; break;
+        case 2: l2 = cache_size; break;
+        case 3: l3 = cache_size; break;
+        default: break;
+      }
+    }
+    cache_id++;
+  } while(cache_type>0 && cache_id<16);
+}
+
+inline void queryCacheSizes_intel_codes(int& l1, int& l2, int& l3)
+{
+  int abcd[4];
+  abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
+  l1 = l2 = l3 = 0;
+  EIGEN_CPUID(abcd,0x00000002,0);
+  unsigned char * bytes = reinterpret_cast<unsigned char *>(abcd)+2;
+  bool check_for_p2_core2 = false;
+  for(int i=0; i<14; ++i)
+  {
+    switch(bytes[i])
+    {
+      case 0x0A: l1 = 8; break;   // 0Ah   data L1 cache, 8 KB, 2 ways, 32 byte lines
+      case 0x0C: l1 = 16; break;  // 0Ch   data L1 cache, 16 KB, 4 ways, 32 byte lines
+      case 0x0E: l1 = 24; break;  // 0Eh   data L1 cache, 24 KB, 6 ways, 64 byte lines
+      case 0x10: l1 = 16; break;  // 10h   data L1 cache, 16 KB, 4 ways, 32 byte lines (IA-64)
+      case 0x15: l1 = 16; break;  // 15h   code L1 cache, 16 KB, 4 ways, 32 byte lines (IA-64)
+      case 0x2C: l1 = 32; break;  // 2Ch   data L1 cache, 32 KB, 8 ways, 64 byte lines
+      case 0x30: l1 = 32; break;  // 30h   code L1 cache, 32 KB, 8 ways, 64 byte lines
+      case 0x60: l1 = 16; break;  // 60h   data L1 cache, 16 KB, 8 ways, 64 byte lines, sectored
+      case 0x66: l1 = 8; break;   // 66h   data L1 cache, 8 KB, 4 ways, 64 byte lines, sectored
+      case 0x67: l1 = 16; break;  // 67h   data L1 cache, 16 KB, 4 ways, 64 byte lines, sectored
+      case 0x68: l1 = 32; break;  // 68h   data L1 cache, 32 KB, 4 ways, 64 byte lines, sectored
+      case 0x1A: l2 = 96; break;   // code and data L2 cache, 96 KB, 6 ways, 64 byte lines (IA-64)
+      case 0x22: l3 = 512; break;   // code and data L3 cache, 512 KB, 4 ways (!), 64 byte lines, dual-sectored
+      case 0x23: l3 = 1024; break;   // code and data L3 cache, 1024 KB, 8 ways, 64 byte lines, dual-sectored
+      case 0x25: l3 = 2048; break;   // code and data L3 cache, 2048 KB, 8 ways, 64 byte lines, dual-sectored
+      case 0x29: l3 = 4096; break;   // code and data L3 cache, 4096 KB, 8 ways, 64 byte lines, dual-sectored
+      case 0x39: l2 = 128; break;   // code and data L2 cache, 128 KB, 4 ways, 64 byte lines, sectored
+      case 0x3A: l2 = 192; break;   // code and data L2 cache, 192 KB, 6 ways, 64 byte lines, sectored
+      case 0x3B: l2 = 128; break;   // code and data L2 cache, 128 KB, 2 ways, 64 byte lines, sectored
+      case 0x3C: l2 = 256; break;   // code and data L2 cache, 256 KB, 4 ways, 64 byte lines, sectored
+      case 0x3D: l2 = 384; break;   // code and data L2 cache, 384 KB, 6 ways, 64 byte lines, sectored
+      case 0x3E: l2 = 512; break;   // code and data L2 cache, 512 KB, 4 ways, 64 byte lines, sectored
+      case 0x40: l2 = 0; break;   // no integrated L2 cache (P6 core) or L3 cache (P4 core)
+      case 0x41: l2 = 128; break;   // code and data L2 cache, 128 KB, 4 ways, 32 byte lines
+      case 0x42: l2 = 256; break;   // code and data L2 cache, 256 KB, 4 ways, 32 byte lines
+      case 0x43: l2 = 512; break;   // code and data L2 cache, 512 KB, 4 ways, 32 byte lines
+      case 0x44: l2 = 1024; break;   // code and data L2 cache, 1024 KB, 4 ways, 32 byte lines
+      case 0x45: l2 = 2048; break;   // code and data L2 cache, 2048 KB, 4 ways, 32 byte lines
+      case 0x46: l3 = 4096; break;   // code and data L3 cache, 4096 KB, 4 ways, 64 byte lines
+      case 0x47: l3 = 8192; break;   // code and data L3 cache, 8192 KB, 8 ways, 64 byte lines
+      case 0x48: l2 = 3072; break;   // code and data L2 cache, 3072 KB, 12 ways, 64 byte lines
+      case 0x49: if(l2!=0) l3 = 4096; else {check_for_p2_core2=true; l3 = l2 = 4096;} break;// code and data L3 cache, 4096 KB, 16 ways, 64 byte lines (P4) or L2 for core2
+      case 0x4A: l3 = 6144; break;   // code and data L3 cache, 6144 KB, 12 ways, 64 byte lines
+      case 0x4B: l3 = 8192; break;   // code and data L3 cache, 8192 KB, 16 ways, 64 byte lines
+      case 0x4C: l3 = 12288; break;   // code and data L3 cache, 12288 KB, 12 ways, 64 byte lines
+      case 0x4D: l3 = 16384; break;   // code and data L3 cache, 16384 KB, 16 ways, 64 byte lines
+      case 0x4E: l2 = 6144; break;   // code and data L2 cache, 6144 KB, 24 ways, 64 byte lines
+      case 0x78: l2 = 1024; break;   // code and data L2 cache, 1024 KB, 4 ways, 64 byte lines
+      case 0x79: l2 = 128; break;   // code and data L2 cache, 128 KB, 8 ways, 64 byte lines, dual-sectored
+      case 0x7A: l2 = 256; break;   // code and data L2 cache, 256 KB, 8 ways, 64 byte lines, dual-sectored
+      case 0x7B: l2 = 512; break;   // code and data L2 cache, 512 KB, 8 ways, 64 byte lines, dual-sectored
+      case 0x7C: l2 = 1024; break;   // code and data L2 cache, 1024 KB, 8 ways, 64 byte lines, dual-sectored
+      case 0x7D: l2 = 2048; break;   // code and data L2 cache, 2048 KB, 8 ways, 64 byte lines
+      case 0x7E: l2 = 256; break;   // code and data L2 cache, 256 KB, 8 ways, 128 byte lines, sect. (IA-64)
+      case 0x7F: l2 = 512; break;   // code and data L2 cache, 512 KB, 2 ways, 64 byte lines
+      case 0x80: l2 = 512; break;   // code and data L2 cache, 512 KB, 8 ways, 64 byte lines
+      case 0x81: l2 = 128; break;   // code and data L2 cache, 128 KB, 8 ways, 32 byte lines
+      case 0x82: l2 = 256; break;   // code and data L2 cache, 256 KB, 8 ways, 32 byte lines
+      case 0x83: l2 = 512; break;   // code and data L2 cache, 512 KB, 8 ways, 32 byte lines
+      case 0x84: l2 = 1024; break;   // code and data L2 cache, 1024 KB, 8 ways, 32 byte lines
+      case 0x85: l2 = 2048; break;   // code and data L2 cache, 2048 KB, 8 ways, 32 byte lines
+      case 0x86: l2 = 512; break;   // code and data L2 cache, 512 KB, 4 ways, 64 byte lines
+      case 0x87: l2 = 1024; break;   // code and data L2 cache, 1024 KB, 8 ways, 64 byte lines
+      case 0x88: l3 = 2048; break;   // code and data L3 cache, 2048 KB, 4 ways, 64 byte lines (IA-64)
+      case 0x89: l3 = 4096; break;   // code and data L3 cache, 4096 KB, 4 ways, 64 byte lines (IA-64)
+      case 0x8A: l3 = 8192; break;   // code and data L3 cache, 8192 KB, 4 ways, 64 byte lines (IA-64)
+      case 0x8D: l3 = 3072; break;   // code and data L3 cache, 3072 KB, 12 ways, 128 byte lines (IA-64)
+
+      default: break;
+    }
+  }
+  if(check_for_p2_core2 && l2 == l3)
+    l3 = 0;
+  l1 *= 1024;
+  l2 *= 1024;
+  l3 *= 1024;
+}
+
+inline void queryCacheSizes_intel(int& l1, int& l2, int& l3, int max_std_funcs)
+{
+  if(max_std_funcs>=4)
+    queryCacheSizes_intel_direct(l1,l2,l3);
+  else
+    queryCacheSizes_intel_codes(l1,l2,l3);
+}
+
+inline void queryCacheSizes_amd(int& l1, int& l2, int& l3)
+{
+  int abcd[4];
+  abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
+  EIGEN_CPUID(abcd,0x80000005,0);
+  l1 = (abcd[2] >> 24) * 1024; // C[31:24] = L1 size in KB
+  abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
+  EIGEN_CPUID(abcd,0x80000006,0);
+  l2 = (abcd[2] >> 16) * 1024; // C[31;16] = l2 cache size in KB
+  l3 = ((abcd[3] & 0xFFFC000) >> 18) * 512 * 1024; // D[31;18] = l3 cache size in 512KB
+}
+#endif
+
+/** \internal
+ * Queries and returns the cache sizes in Bytes of the L1, L2, and L3 data caches respectively */
+inline void queryCacheSizes(int& l1, int& l2, int& l3)
+{
+  #ifdef EIGEN_CPUID
+  int abcd[4];
+  const int GenuineIntel[] = {0x756e6547, 0x49656e69, 0x6c65746e};
+  const int AuthenticAMD[] = {0x68747541, 0x69746e65, 0x444d4163};
+  const int AMDisbetter_[] = {0x69444d41, 0x74656273, 0x21726574}; // "AMDisbetter!"
+
+  // identify the CPU vendor
+  EIGEN_CPUID(abcd,0x0,0);
+  int max_std_funcs = abcd[1];
+  if(cpuid_is_vendor(abcd,GenuineIntel))
+    queryCacheSizes_intel(l1,l2,l3,max_std_funcs);
+  else if(cpuid_is_vendor(abcd,AuthenticAMD) || cpuid_is_vendor(abcd,AMDisbetter_))
+    queryCacheSizes_amd(l1,l2,l3);
+  else
+    // by default let's use Intel's API
+    queryCacheSizes_intel(l1,l2,l3,max_std_funcs);
+
+  // here is the list of other vendors:
+//   ||cpuid_is_vendor(abcd,"VIA VIA VIA ")
+//   ||cpuid_is_vendor(abcd,"CyrixInstead")
+//   ||cpuid_is_vendor(abcd,"CentaurHauls")
+//   ||cpuid_is_vendor(abcd,"GenuineTMx86")
+//   ||cpuid_is_vendor(abcd,"TransmetaCPU")
+//   ||cpuid_is_vendor(abcd,"RiseRiseRise")
+//   ||cpuid_is_vendor(abcd,"Geode by NSC")
+//   ||cpuid_is_vendor(abcd,"SiS SiS SiS ")
+//   ||cpuid_is_vendor(abcd,"UMC UMC UMC ")
+//   ||cpuid_is_vendor(abcd,"NexGenDriven")
+  #else
+  l1 = l2 = l3 = -1;
+  #endif
+}
+
+/** \internal
+ * \returns the size in Bytes of the L1 data cache */
+inline int queryL1CacheSize()
+{
+  int l1(-1), l2, l3;
+  queryCacheSizes(l1,l2,l3);
+  return l1;
+}
+
+/** \internal
+ * \returns the size in Bytes of the L2 or L3 cache if this later is present */
+inline int queryTopLevelCacheSize()
+{
+  int l1, l2(-1), l3(-1);
+  queryCacheSizes(l1,l2,l3);
+  return (std::max)(l2,l3);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_MEMORY_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/util/Meta.h b/vendor/eigen-3.2.8/Eigen/src/Core/util/Meta.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/util/Meta.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/util/Meta.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/util/NonMPL2.h b/vendor/eigen-3.2.8/Eigen/src/Core/util/NonMPL2.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/util/NonMPL2.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/util/NonMPL2.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Core/util/ReenableStupidWarnings.h b/vendor/eigen-3.2.8/Eigen/src/Core/util/ReenableStupidWarnings.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Core/util/ReenableStupidWarnings.h
rename to vendor/eigen-3.2.8/Eigen/src/Core/util/ReenableStupidWarnings.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/util/StaticAssert.h b/vendor/eigen-3.2.8/Eigen/src/Core/util/StaticAssert.h
new file mode 100644
index 0000000..e53d2b8
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/util/StaticAssert.h
@@ -0,0 +1,208 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STATIC_ASSERT_H
+#define EIGEN_STATIC_ASSERT_H
+
+/* Some notes on Eigen's static assertion mechanism:
+ *
+ *  - in EIGEN_STATIC_ASSERT(CONDITION,MSG) the parameter CONDITION must be a compile time boolean
+ *    expression, and MSG an enum listed in struct internal::static_assertion<true>
+ *
+ *  - define EIGEN_NO_STATIC_ASSERT to disable them (and save compilation time)
+ *    in that case, the static assertion is converted to the following runtime assert:
+ *      eigen_assert(CONDITION && "MSG")
+ *
+ *  - currently EIGEN_STATIC_ASSERT can only be used in function scope
+ *
+ */
+
+#ifndef EIGEN_NO_STATIC_ASSERT
+
+  #if __has_feature(cxx_static_assert) || (defined(__cplusplus) && __cplusplus >= 201103L) || (EIGEN_COMP_MSVC >= 1600)
+
+    // if native static_assert is enabled, let's use it
+    #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
+
+  #else // not CXX0X
+
+    namespace Eigen {
+
+    namespace internal {
+
+    template<bool condition>
+    struct static_assertion {};
+
+    template<>
+    struct static_assertion<true>
+    {
+      enum {
+        YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX,
+        YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES,
+        YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES,
+        THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE,
+        THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE,
+        THIS_METHOD_IS_ONLY_FOR_OBJECTS_OF_A_SPECIFIC_SIZE,
+        YOU_MADE_A_PROGRAMMING_MISTAKE,
+        EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT,
+        EIGEN_INTERNAL_COMPILATION_ERROR_OR_YOU_MADE_A_PROGRAMMING_MISTAKE,
+        YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR,
+        YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR,
+        UNALIGNED_LOAD_AND_STORE_OPERATIONS_UNIMPLEMENTED_ON_ALTIVEC,
+        THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES,
+        FLOATING_POINT_ARGUMENT_PASSED__INTEGER_WAS_EXPECTED,
+        NUMERIC_TYPE_MUST_BE_REAL,
+        COEFFICIENT_WRITE_ACCESS_TO_SELFADJOINT_NOT_SUPPORTED,
+        WRITING_TO_TRIANGULAR_PART_WITH_UNIT_DIAGONAL_IS_NOT_SUPPORTED,
+        THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE,
+        INVALID_MATRIX_PRODUCT,
+        INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS,
+        INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION,
+        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY,
+        THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES,
+        THIS_METHOD_IS_ONLY_FOR_ROW_MAJOR_MATRICES,
+        INVALID_MATRIX_TEMPLATE_PARAMETERS,
+        INVALID_MATRIXBASE_TEMPLATE_PARAMETERS,
+        BOTH_MATRICES_MUST_HAVE_THE_SAME_STORAGE_ORDER,
+        THIS_METHOD_IS_ONLY_FOR_DIAGONAL_MATRIX,
+        THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE,
+        THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_WITH_DIRECT_MEMORY_ACCESS_SUCH_AS_MAP_OR_PLAIN_MATRICES,
+        YOU_ALREADY_SPECIFIED_THIS_STRIDE,
+        INVALID_STORAGE_ORDER_FOR_THIS_VECTOR_EXPRESSION,
+        THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD,
+        PACKET_ACCESS_REQUIRES_TO_HAVE_INNER_STRIDE_FIXED_TO_1,
+        THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS,
+        YOU_CANNOT_MIX_ARRAYS_AND_MATRICES,
+        YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION,
+        THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY,
+        YOU_ARE_TRYING_TO_USE_AN_INDEX_BASED_ACCESSOR_ON_AN_EXPRESSION_THAT_DOES_NOT_SUPPORT_THAT,
+        THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS,
+        THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL,
+        THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES,
+        YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED,
+        YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED,
+        THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE,
+        THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH,
+        OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG,
+        IMPLICIT_CONVERSION_TO_SCALAR_IS_FOR_INNER_PRODUCT_ONLY,
+        STORAGE_LAYOUT_DOES_NOT_MATCH
+      };
+    };
+
+    } // end namespace internal
+
+    } // end namespace Eigen
+
+    // Specialized implementation for MSVC to avoid "conditional
+    // expression is constant" warnings.  This implementation doesn't
+    // appear to work under GCC, hence the multiple implementations.
+    #ifdef _MSC_VER
+
+      #define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
+        {Eigen::internal::static_assertion<bool(CONDITION)>::MSG;}
+
+    #else
+
+      #define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
+        if (Eigen::internal::static_assertion<bool(CONDITION)>::MSG) {}
+
+    #endif
+
+  #endif // not CXX0X
+
+#else // EIGEN_NO_STATIC_ASSERT
+
+  #define EIGEN_STATIC_ASSERT(CONDITION,MSG) eigen_assert((CONDITION) && #MSG);
+
+#endif // EIGEN_NO_STATIC_ASSERT
+
+
+// static assertion failing if the type \a TYPE is not a vector type
+#define EIGEN_STATIC_ASSERT_VECTOR_ONLY(TYPE) \
+  EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime, \
+                      YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX)
+
+// static assertion failing if the type \a TYPE is not fixed-size
+#define EIGEN_STATIC_ASSERT_FIXED_SIZE(TYPE) \
+  EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime!=Eigen::Dynamic, \
+                      YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR)
+
+// static assertion failing if the type \a TYPE is not dynamic-size
+#define EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(TYPE) \
+  EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime==Eigen::Dynamic, \
+                      YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR)
+
+// static assertion failing if the type \a TYPE is not a vector type of the given size
+#define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE) \
+  EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime && TYPE::SizeAtCompileTime==SIZE, \
+                      THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE)
+
+// static assertion failing if the type \a TYPE is not a vector type of the given size
+#define EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(TYPE, ROWS, COLS) \
+  EIGEN_STATIC_ASSERT(TYPE::RowsAtCompileTime==ROWS && TYPE::ColsAtCompileTime==COLS, \
+                      THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE)
+
+// static assertion failing if the two vector expression types are not compatible (same fixed-size or dynamic size)
+#define EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(TYPE0,TYPE1) \
+  EIGEN_STATIC_ASSERT( \
+      (int(TYPE0::SizeAtCompileTime)==Eigen::Dynamic \
+    || int(TYPE1::SizeAtCompileTime)==Eigen::Dynamic \
+    || int(TYPE0::SizeAtCompileTime)==int(TYPE1::SizeAtCompileTime)),\
+    YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES)
+
+#define EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0,TYPE1) \
+     ( \
+        (int(TYPE0::SizeAtCompileTime)==0 && int(TYPE1::SizeAtCompileTime)==0) \
+    || (\
+          (int(TYPE0::RowsAtCompileTime)==Eigen::Dynamic \
+        || int(TYPE1::RowsAtCompileTime)==Eigen::Dynamic \
+        || int(TYPE0::RowsAtCompileTime)==int(TYPE1::RowsAtCompileTime)) \
+      &&  (int(TYPE0::ColsAtCompileTime)==Eigen::Dynamic \
+        || int(TYPE1::ColsAtCompileTime)==Eigen::Dynamic \
+        || int(TYPE0::ColsAtCompileTime)==int(TYPE1::ColsAtCompileTime))\
+       ) \
+     )
+
+#ifdef EIGEN2_SUPPORT
+  #define EIGEN_STATIC_ASSERT_NON_INTEGER(TYPE) \
+    eigen_assert(!NumTraits<Scalar>::IsInteger);
+#else
+  #define EIGEN_STATIC_ASSERT_NON_INTEGER(TYPE) \
+    EIGEN_STATIC_ASSERT(!NumTraits<TYPE>::IsInteger, THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES)
+#endif
+
+
+// static assertion failing if it is guaranteed at compile-time that the two matrix expression types have different sizes
+#define EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(TYPE0,TYPE1) \
+  EIGEN_STATIC_ASSERT( \
+     EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0,TYPE1),\
+    YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES)
+
+#define EIGEN_STATIC_ASSERT_SIZE_1x1(TYPE) \
+      EIGEN_STATIC_ASSERT((TYPE::RowsAtCompileTime == 1 || TYPE::RowsAtCompileTime == Dynamic) && \
+                          (TYPE::ColsAtCompileTime == 1 || TYPE::ColsAtCompileTime == Dynamic), \
+                          THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS)
+
+#define EIGEN_STATIC_ASSERT_LVALUE(Derived) \
+      EIGEN_STATIC_ASSERT(internal::is_lvalue<Derived>::value, \
+                          THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
+
+#define EIGEN_STATIC_ASSERT_ARRAYXPR(Derived) \
+      EIGEN_STATIC_ASSERT((internal::is_same<typename internal::traits<Derived>::XprKind, ArrayXpr>::value), \
+                          THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES)
+
+#define EIGEN_STATIC_ASSERT_SAME_XPR_KIND(Derived1, Derived2) \
+      EIGEN_STATIC_ASSERT((internal::is_same<typename internal::traits<Derived1>::XprKind, \
+                                             typename internal::traits<Derived2>::XprKind \
+                                            >::value), \
+                          YOU_CANNOT_MIX_ARRAYS_AND_MATRICES)
+
+
+#endif // EIGEN_STATIC_ASSERT_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Core/util/XprHelper.h b/vendor/eigen-3.2.8/Eigen/src/Core/util/XprHelper.h
new file mode 100644
index 0000000..d05f8e5
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Core/util/XprHelper.h
@@ -0,0 +1,469 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_XPRHELPER_H
+#define EIGEN_XPRHELPER_H
+
+// just a workaround because GCC seems to not really like empty structs
+// FIXME: gcc 4.3 generates bad code when strict-aliasing is enabled
+// so currently we simply disable this optimization for gcc 4.3
+#if (defined __GNUG__) && !((__GNUC__==4) && (__GNUC_MINOR__==3))
+  #define EIGEN_EMPTY_STRUCT_CTOR(X) \
+    EIGEN_STRONG_INLINE X() {} \
+    EIGEN_STRONG_INLINE X(const X& ) {}
+#else
+  #define EIGEN_EMPTY_STRUCT_CTOR(X)
+#endif
+
+namespace Eigen {
+
+typedef EIGEN_DEFAULT_DENSE_INDEX_TYPE DenseIndex;
+
+namespace internal {
+
+//classes inheriting no_assignment_operator don't generate a default operator=.
+class no_assignment_operator
+{
+  private:
+    no_assignment_operator& operator=(const no_assignment_operator&);
+};
+
+/** \internal return the index type with the largest number of bits */
+template<typename I1, typename I2>
+struct promote_index_type
+{
+  typedef typename conditional<(sizeof(I1)<sizeof(I2)), I2, I1>::type type;
+};
+
+/** \internal If the template parameter Value is Dynamic, this class is just a wrapper around a T variable that
+  * can be accessed using value() and setValue().
+  * Otherwise, this class is an empty structure and value() just returns the template parameter Value.
+  */
+template<typename T, int Value> class variable_if_dynamic
+{
+  public:
+    EIGEN_EMPTY_STRUCT_CTOR(variable_if_dynamic)
+    explicit variable_if_dynamic(T v) { EIGEN_ONLY_USED_FOR_DEBUG(v); assert(v == T(Value)); }
+    static T value() { return T(Value); }
+    void setValue(T) {}
+};
+
+template<typename T> class variable_if_dynamic<T, Dynamic>
+{
+    T m_value;
+    variable_if_dynamic() { assert(false); }
+  public:
+    explicit variable_if_dynamic(T value) : m_value(value) {}
+    T value() const { return m_value; }
+    void setValue(T value) { m_value = value; }
+};
+
+/** \internal like variable_if_dynamic but for DynamicIndex
+  */
+template<typename T, int Value> class variable_if_dynamicindex
+{
+  public:
+    EIGEN_EMPTY_STRUCT_CTOR(variable_if_dynamicindex)
+    explicit variable_if_dynamicindex(T v) { EIGEN_ONLY_USED_FOR_DEBUG(v); assert(v == T(Value)); }
+    static T value() { return T(Value); }
+    void setValue(T) {}
+};
+
+template<typename T> class variable_if_dynamicindex<T, DynamicIndex>
+{
+    T m_value;
+    variable_if_dynamicindex() { assert(false); }
+  public:
+    explicit variable_if_dynamicindex(T value) : m_value(value) {}
+    T value() const { return m_value; }
+    void setValue(T value) { m_value = value; }
+};
+
+template<typename T> struct functor_traits
+{
+  enum
+  {
+    Cost = 10,
+    PacketAccess = false,
+    IsRepeatable = false
+  };
+};
+
+template<typename T> struct packet_traits;
+
+template<typename T> struct unpacket_traits
+{
+  typedef T type;
+  enum {size=1};
+};
+
+template<typename _Scalar, int _Rows, int _Cols,
+         int _Options = AutoAlign |
+                          ( (_Rows==1 && _Cols!=1) ? RowMajor
+                          : (_Cols==1 && _Rows!=1) ? ColMajor
+                          : EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ),
+         int _MaxRows = _Rows,
+         int _MaxCols = _Cols
+> class make_proper_matrix_type
+{
+    enum {
+      IsColVector = _Cols==1 && _Rows!=1,
+      IsRowVector = _Rows==1 && _Cols!=1,
+      Options = IsColVector ? (_Options | ColMajor) & ~RowMajor
+              : IsRowVector ? (_Options | RowMajor) & ~ColMajor
+              : _Options
+    };
+  public:
+    typedef Matrix<_Scalar, _Rows, _Cols, Options, _MaxRows, _MaxCols> type;
+};
+
+template<typename Scalar, int Rows, int Cols, int Options, int MaxRows, int MaxCols>
+class compute_matrix_flags
+{
+    enum {
+      row_major_bit = Options&RowMajor ? RowMajorBit : 0,
+      is_dynamic_size_storage = MaxRows==Dynamic || MaxCols==Dynamic,
+
+      aligned_bit =
+      (
+            ((Options&DontAlign)==0)
+        && (
+#if EIGEN_ALIGN_STATICALLY
+             ((!is_dynamic_size_storage) && (((MaxCols*MaxRows*int(sizeof(Scalar))) % 16) == 0))
+#else
+             0
+#endif
+
+          ||
+
+#if EIGEN_ALIGN
+             is_dynamic_size_storage
+#else
+             0
+#endif
+
+          )
+      ) ? AlignedBit : 0,
+      packet_access_bit = packet_traits<Scalar>::Vectorizable && aligned_bit ? PacketAccessBit : 0
+    };
+
+  public:
+    enum { ret = LinearAccessBit | LvalueBit | DirectAccessBit | NestByRefBit | packet_access_bit | row_major_bit | aligned_bit };
+};
+
+template<int _Rows, int _Cols> struct size_at_compile_time
+{
+  enum { ret = (_Rows==Dynamic || _Cols==Dynamic) ? Dynamic : _Rows * _Cols };
+};
+
+/* plain_matrix_type : the difference from eval is that plain_matrix_type is always a plain matrix type,
+ * whereas eval is a const reference in the case of a matrix
+ */
+
+template<typename T, typename StorageKind = typename traits<T>::StorageKind> struct plain_matrix_type;
+template<typename T, typename BaseClassType> struct plain_matrix_type_dense;
+template<typename T> struct plain_matrix_type<T,Dense>
+{
+  typedef typename plain_matrix_type_dense<T,typename traits<T>::XprKind>::type type;
+};
+
+template<typename T> struct plain_matrix_type_dense<T,MatrixXpr>
+{
+  typedef Matrix<typename traits<T>::Scalar,
+                traits<T>::RowsAtCompileTime,
+                traits<T>::ColsAtCompileTime,
+                AutoAlign | (traits<T>::Flags&RowMajorBit ? RowMajor : ColMajor),
+                traits<T>::MaxRowsAtCompileTime,
+                traits<T>::MaxColsAtCompileTime
+          > type;
+};
+
+template<typename T> struct plain_matrix_type_dense<T,ArrayXpr>
+{
+  typedef Array<typename traits<T>::Scalar,
+                traits<T>::RowsAtCompileTime,
+                traits<T>::ColsAtCompileTime,
+                AutoAlign | (traits<T>::Flags&RowMajorBit ? RowMajor : ColMajor),
+                traits<T>::MaxRowsAtCompileTime,
+                traits<T>::MaxColsAtCompileTime
+          > type;
+};
+
+/* eval : the return type of eval(). For matrices, this is just a const reference
+ * in order to avoid a useless copy
+ */
+
+template<typename T, typename StorageKind = typename traits<T>::StorageKind> struct eval;
+
+template<typename T> struct eval<T,Dense>
+{
+  typedef typename plain_matrix_type<T>::type type;
+//   typedef typename T::PlainObject type;
+//   typedef T::Matrix<typename traits<T>::Scalar,
+//                 traits<T>::RowsAtCompileTime,
+//                 traits<T>::ColsAtCompileTime,
+//                 AutoAlign | (traits<T>::Flags&RowMajorBit ? RowMajor : ColMajor),
+//                 traits<T>::MaxRowsAtCompileTime,
+//                 traits<T>::MaxColsAtCompileTime
+//           > type;
+};
+
+// for matrices, no need to evaluate, just use a const reference to avoid a useless copy
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct eval<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>, Dense>
+{
+  typedef const Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& type;
+};
+
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct eval<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>, Dense>
+{
+  typedef const Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& type;
+};
+
+
+
+/* plain_matrix_type_column_major : same as plain_matrix_type but guaranteed to be column-major
+ */
+template<typename T> struct plain_matrix_type_column_major
+{
+  enum { Rows = traits<T>::RowsAtCompileTime,
+         Cols = traits<T>::ColsAtCompileTime,
+         MaxRows = traits<T>::MaxRowsAtCompileTime,
+         MaxCols = traits<T>::MaxColsAtCompileTime
+  };
+  typedef Matrix<typename traits<T>::Scalar,
+                Rows,
+                Cols,
+                (MaxRows==1&&MaxCols!=1) ? RowMajor : ColMajor,
+                MaxRows,
+                MaxCols
+          > type;
+};
+
+/* plain_matrix_type_row_major : same as plain_matrix_type but guaranteed to be row-major
+ */
+template<typename T> struct plain_matrix_type_row_major
+{
+  enum { Rows = traits<T>::RowsAtCompileTime,
+         Cols = traits<T>::ColsAtCompileTime,
+         MaxRows = traits<T>::MaxRowsAtCompileTime,
+         MaxCols = traits<T>::MaxColsAtCompileTime
+  };
+  typedef Matrix<typename traits<T>::Scalar,
+                Rows,
+                Cols,
+                (MaxCols==1&&MaxRows!=1) ? RowMajor : ColMajor,
+                MaxRows,
+                MaxCols
+          > type;
+};
+
+// we should be able to get rid of this one too
+template<typename T> struct must_nest_by_value { enum { ret = false }; };
+
+/** \internal The reference selector for template expressions. The idea is that we don't
+  * need to use references for expressions since they are light weight proxy
+  * objects which should generate no copying overhead. */
+template <typename T>
+struct ref_selector
+{
+  typedef typename conditional<
+    bool(traits<T>::Flags & NestByRefBit),
+    T const&,
+    const T
+  >::type type;
+};
+
+/** \internal Adds the const qualifier on the value-type of T2 if and only if T1 is a const type */
+template<typename T1, typename T2>
+struct transfer_constness
+{
+  typedef typename conditional<
+    bool(internal::is_const<T1>::value),
+    typename internal::add_const_on_value_type<T2>::type,
+    T2
+  >::type type;
+};
+
+/** \internal Determines how a given expression should be nested into another one.
+  * For example, when you do a * (b+c), Eigen will determine how the expression b+c should be
+  * nested into the bigger product expression. The choice is between nesting the expression b+c as-is, or
+  * evaluating that expression b+c into a temporary variable d, and nest d so that the resulting expression is
+  * a*d. Evaluating can be beneficial for example if every coefficient access in the resulting expression causes
+  * many coefficient accesses in the nested expressions -- as is the case with matrix product for example.
+  *
+  * \param T the type of the expression being nested
+  * \param n the number of coefficient accesses in the nested expression for each coefficient access in the bigger expression.
+  *
+  * Note that if no evaluation occur, then the constness of T is preserved.
+  *
+  * Example. Suppose that a, b, and c are of type Matrix3d. The user forms the expression a*(b+c).
+  * b+c is an expression "sum of matrices", which we will denote by S. In order to determine how to nest it,
+  * the Product expression uses: nested<S, 3>::ret, which turns out to be Matrix3d because the internal logic of
+  * nested determined that in this case it was better to evaluate the expression b+c into a temporary. On the other hand,
+  * since a is of type Matrix3d, the Product expression nests it as nested<Matrix3d, 3>::ret, which turns out to be
+  * const Matrix3d&, because the internal logic of nested determined that since a was already a matrix, there was no point
+  * in copying it into another matrix.
+  */
+template<typename T, int n=1, typename PlainObject = typename eval<T>::type> struct nested
+{
+  enum {
+    // for the purpose of this test, to keep it reasonably simple, we arbitrarily choose a value of Dynamic values.
+    // the choice of 10000 makes it larger than any practical fixed value and even most dynamic values.
+    // in extreme cases where these assumptions would be wrong, we would still at worst suffer performance issues
+    // (poor choice of temporaries).
+    // it's important that this value can still be squared without integer overflowing.
+    DynamicAsInteger = 10000,
+    ScalarReadCost = NumTraits<typename traits<T>::Scalar>::ReadCost,
+    ScalarReadCostAsInteger = ScalarReadCost == Dynamic ? int(DynamicAsInteger) : int(ScalarReadCost),
+    CoeffReadCost = traits<T>::CoeffReadCost,
+    CoeffReadCostAsInteger = CoeffReadCost == Dynamic ? int(DynamicAsInteger) : int(CoeffReadCost),
+    NAsInteger = n == Dynamic ? int(DynamicAsInteger) : n,
+    CostEvalAsInteger   = (NAsInteger+1) * ScalarReadCostAsInteger + CoeffReadCostAsInteger,
+    CostNoEvalAsInteger = NAsInteger * CoeffReadCostAsInteger
+  };
+
+  typedef typename conditional<
+      ( (int(traits<T>::Flags) & EvalBeforeNestingBit) ||
+        int(CostEvalAsInteger) < int(CostNoEvalAsInteger)
+      ),
+      PlainObject,
+      typename ref_selector<T>::type
+  >::type type;
+};
+
+template<typename T>
+inline T* const_cast_ptr(const T* ptr)
+{
+  return const_cast<T*>(ptr);
+}
+
+template<typename Derived, typename XprKind = typename traits<Derived>::XprKind>
+struct dense_xpr_base
+{
+  /* dense_xpr_base should only ever be used on dense expressions, thus falling either into the MatrixXpr or into the ArrayXpr cases */
+};
+
+template<typename Derived>
+struct dense_xpr_base<Derived, MatrixXpr>
+{
+  typedef MatrixBase<Derived> type;
+};
+
+template<typename Derived>
+struct dense_xpr_base<Derived, ArrayXpr>
+{
+  typedef ArrayBase<Derived> type;
+};
+
+/** \internal Helper base class to add a scalar multiple operator
+  * overloads for complex types */
+template<typename Derived, typename Scalar, typename OtherScalar, typename BaseType,
+         bool EnableIt = !is_same<Scalar,OtherScalar>::value >
+struct special_scalar_op_base : public BaseType
+{
+  // dummy operator* so that the
+  // "using special_scalar_op_base::operator*" compiles
+  void operator*() const;
+};
+
+template<typename Derived,typename Scalar,typename OtherScalar, typename BaseType>
+struct special_scalar_op_base<Derived,Scalar,OtherScalar,BaseType,true>  : public BaseType
+{
+  const CwiseUnaryOp<scalar_multiple2_op<Scalar,OtherScalar>, Derived>
+  operator*(const OtherScalar& scalar) const
+  {
+    return CwiseUnaryOp<scalar_multiple2_op<Scalar,OtherScalar>, Derived>
+      (*static_cast<const Derived*>(this), scalar_multiple2_op<Scalar,OtherScalar>(scalar));
+  }
+
+  inline friend const CwiseUnaryOp<scalar_multiple2_op<Scalar,OtherScalar>, Derived>
+  operator*(const OtherScalar& scalar, const Derived& matrix)
+  { return static_cast<const special_scalar_op_base&>(matrix).operator*(scalar); }
+};
+
+template<typename XprType, typename CastType> struct cast_return_type
+{
+  typedef typename XprType::Scalar CurrentScalarType;
+  typedef typename remove_all<CastType>::type _CastType;
+  typedef typename _CastType::Scalar NewScalarType;
+  typedef typename conditional<is_same<CurrentScalarType,NewScalarType>::value,
+                              const XprType&,CastType>::type type;
+};
+
+template <typename A, typename B> struct promote_storage_type;
+
+template <typename A> struct promote_storage_type<A,A>
+{
+  typedef A ret;
+};
+
+/** \internal gives the plain matrix or array type to store a row/column/diagonal of a matrix type.
+  * \param Scalar optional parameter allowing to pass a different scalar type than the one of the MatrixType.
+  */
+template<typename ExpressionType, typename Scalar = typename ExpressionType::Scalar>
+struct plain_row_type
+{
+  typedef Matrix<Scalar, 1, ExpressionType::ColsAtCompileTime,
+                 ExpressionType::PlainObject::Options | RowMajor, 1, ExpressionType::MaxColsAtCompileTime> MatrixRowType;
+  typedef Array<Scalar, 1, ExpressionType::ColsAtCompileTime,
+                 ExpressionType::PlainObject::Options | RowMajor, 1, ExpressionType::MaxColsAtCompileTime> ArrayRowType;
+
+  typedef typename conditional<
+    is_same< typename traits<ExpressionType>::XprKind, MatrixXpr >::value,
+    MatrixRowType,
+    ArrayRowType 
+  >::type type;
+};
+
+template<typename ExpressionType, typename Scalar = typename ExpressionType::Scalar>
+struct plain_col_type
+{
+  typedef Matrix<Scalar, ExpressionType::RowsAtCompileTime, 1,
+                 ExpressionType::PlainObject::Options & ~RowMajor, ExpressionType::MaxRowsAtCompileTime, 1> MatrixColType;
+  typedef Array<Scalar, ExpressionType::RowsAtCompileTime, 1,
+                 ExpressionType::PlainObject::Options & ~RowMajor, ExpressionType::MaxRowsAtCompileTime, 1> ArrayColType;
+
+  typedef typename conditional<
+    is_same< typename traits<ExpressionType>::XprKind, MatrixXpr >::value,
+    MatrixColType,
+    ArrayColType 
+  >::type type;
+};
+
+template<typename ExpressionType, typename Scalar = typename ExpressionType::Scalar>
+struct plain_diag_type
+{
+  enum { diag_size = EIGEN_SIZE_MIN_PREFER_DYNAMIC(ExpressionType::RowsAtCompileTime, ExpressionType::ColsAtCompileTime),
+         max_diag_size = EIGEN_SIZE_MIN_PREFER_FIXED(ExpressionType::MaxRowsAtCompileTime, ExpressionType::MaxColsAtCompileTime)
+  };
+  typedef Matrix<Scalar, diag_size, 1, ExpressionType::PlainObject::Options & ~RowMajor, max_diag_size, 1> MatrixDiagType;
+  typedef Array<Scalar, diag_size, 1, ExpressionType::PlainObject::Options & ~RowMajor, max_diag_size, 1> ArrayDiagType;
+
+  typedef typename conditional<
+    is_same< typename traits<ExpressionType>::XprKind, MatrixXpr >::value,
+    MatrixDiagType,
+    ArrayDiagType 
+  >::type type;
+};
+
+template<typename ExpressionType>
+struct is_lvalue
+{
+  enum { value = !bool(is_const<ExpressionType>::value) &&
+                 bool(traits<ExpressionType>::Flags & LvalueBit) };
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_XPRHELPER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Block.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Block.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Block.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Block.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/CMakeLists.txt
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Cwise.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Cwise.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Cwise.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Cwise.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/CwiseOperators.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/CwiseOperators.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/CwiseOperators.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/CwiseOperators.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/AlignedBox.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/AlignedBox.h
new file mode 100644
index 0000000..2e4309d
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/AlignedBox.h
@@ -0,0 +1,159 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael at free.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  * \nonstableyet
+  *
+  * \class AlignedBox
+  *
+  * \brief An axis aligned box
+  *
+  * \param _Scalar the type of the scalar coefficients
+  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
+  *
+  * This class represents an axis aligned box as a pair of the minimal and maximal corners.
+  */
+template <typename _Scalar, int _AmbientDim>
+class AlignedBox
+{
+public:
+EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim==Dynamic ? Dynamic : _AmbientDim+1)
+  enum { AmbientDimAtCompileTime = _AmbientDim };
+  typedef _Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef Matrix<Scalar,AmbientDimAtCompileTime,1> VectorType;
+
+  /** Default constructor initializing a null box. */
+  inline AlignedBox()
+  { if (AmbientDimAtCompileTime!=Dynamic) setNull(); }
+
+  /** Constructs a null box with \a _dim the dimension of the ambient space. */
+  inline explicit AlignedBox(int _dim) : m_min(_dim), m_max(_dim)
+  { setNull(); }
+
+  /** Constructs a box with extremities \a _min and \a _max. */
+  inline AlignedBox(const VectorType& _min, const VectorType& _max) : m_min(_min), m_max(_max) {}
+
+  /** Constructs a box containing a single point \a p. */
+  inline explicit AlignedBox(const VectorType& p) : m_min(p), m_max(p) {}
+
+  ~AlignedBox() {}
+
+  /** \returns the dimension in which the box holds */
+  inline int dim() const { return AmbientDimAtCompileTime==Dynamic ? m_min.size()-1 : AmbientDimAtCompileTime; }
+
+  /** \returns true if the box is null, i.e, empty. */
+  inline bool isNull() const { return (m_min.cwise() > m_max).any(); }
+
+  /** Makes \c *this a null/empty box. */
+  inline void setNull()
+  {
+    m_min.setConstant( (std::numeric_limits<Scalar>::max)());
+    m_max.setConstant(-(std::numeric_limits<Scalar>::max)());
+  }
+
+  /** \returns the minimal corner */
+  inline const VectorType& (min)() const { return m_min; }
+  /** \returns a non const reference to the minimal corner */
+  inline VectorType& (min)() { return m_min; }
+  /** \returns the maximal corner */
+  inline const VectorType& (max)() const { return m_max; }
+  /** \returns a non const reference to the maximal corner */
+  inline VectorType& (max)() { return m_max; }
+
+  /** \returns true if the point \a p is inside the box \c *this. */
+  inline bool contains(const VectorType& p) const
+  { return (m_min.cwise()<=p).all() && (p.cwise()<=m_max).all(); }
+
+  /** \returns true if the box \a b is entirely inside the box \c *this. */
+  inline bool contains(const AlignedBox& b) const
+  { return (m_min.cwise()<=(b.min)()).all() && ((b.max)().cwise()<=m_max).all(); }
+
+  /** Extends \c *this such that it contains the point \a p and returns a reference to \c *this. */
+  inline AlignedBox& extend(const VectorType& p)
+  { m_min = (m_min.cwise().min)(p); m_max = (m_max.cwise().max)(p); return *this; }
+
+  /** Extends \c *this such that it contains the box \a b and returns a reference to \c *this. */
+  inline AlignedBox& extend(const AlignedBox& b)
+  { m_min = (m_min.cwise().min)(b.m_min); m_max = (m_max.cwise().max)(b.m_max); return *this; }
+
+  /** Clamps \c *this by the box \a b and returns a reference to \c *this. */
+  inline AlignedBox& clamp(const AlignedBox& b)
+  { m_min = (m_min.cwise().max)(b.m_min); m_max = (m_max.cwise().min)(b.m_max); return *this; }
+
+  /** Translate \c *this by the vector \a t and returns a reference to \c *this. */
+  inline AlignedBox& translate(const VectorType& t)
+  { m_min += t; m_max += t; return *this; }
+
+  /** \returns the squared distance between the point \a p and the box \c *this,
+    * and zero if \a p is inside the box.
+    * \sa exteriorDistance()
+    */
+  inline Scalar squaredExteriorDistance(const VectorType& p) const;
+
+  /** \returns the distance between the point \a p and the box \c *this,
+    * and zero if \a p is inside the box.
+    * \sa squaredExteriorDistance()
+    */
+  inline Scalar exteriorDistance(const VectorType& p) const
+  { return ei_sqrt(squaredExteriorDistance(p)); }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<AlignedBox,
+           AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type cast() const
+  {
+    return typename internal::cast_return_type<AlignedBox,
+                    AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type(*this);
+  }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit AlignedBox(const AlignedBox<OtherScalarType,AmbientDimAtCompileTime>& other)
+  {
+    m_min = (other.min)().template cast<Scalar>();
+    m_max = (other.max)().template cast<Scalar>();
+  }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const AlignedBox& other, typename NumTraits<Scalar>::Real prec = precision<Scalar>()) const
+  { return m_min.isApprox(other.m_min, prec) && m_max.isApprox(other.m_max, prec); }
+
+protected:
+
+  VectorType m_min, m_max;
+};
+
+template<typename Scalar,int AmbiantDim>
+inline Scalar AlignedBox<Scalar,AmbiantDim>::squaredExteriorDistance(const VectorType& p) const
+{
+  Scalar dist2(0);
+  Scalar aux;
+  for (int k=0; k<dim(); ++k)
+  {
+    if ((aux = (p[k]-m_min[k]))<Scalar(0))
+      dist2 += aux*aux;
+    else if ( (aux = (m_max[k]-p[k]))<Scalar(0))
+      dist2 += aux*aux;
+  }
+  return dist2;
+}
+
+} // end namespace Eigen
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/All.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/All.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/All.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/All.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/AngleAxis.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/AngleAxis.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/AngleAxis.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/AngleAxis.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/Hyperplane.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/Hyperplane.h
new file mode 100644
index 0000000..b95bf00
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/Hyperplane.h
@@ -0,0 +1,254 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael at free.fr>
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Hyperplane
+  *
+  * \brief A hyperplane
+  *
+  * A hyperplane is an affine subspace of dimension n-1 in a space of dimension n.
+  * For example, a hyperplane in a plane is a line; a hyperplane in 3-space is a plane.
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients
+  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
+  *             Notice that the dimension of the hyperplane is _AmbientDim-1.
+  *
+  * This class represents an hyperplane as the zero set of the implicit equation
+  * \f$ n \cdot x + d = 0 \f$ where \f$ n \f$ is a unit normal vector of the plane (linear part)
+  * and \f$ d \f$ is the distance (offset) to the origin.
+  */
+template <typename _Scalar, int _AmbientDim>
+class Hyperplane
+{
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim==Dynamic ? Dynamic : _AmbientDim+1)
+  enum { AmbientDimAtCompileTime = _AmbientDim };
+  typedef _Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef Matrix<Scalar,AmbientDimAtCompileTime,1> VectorType;
+  typedef Matrix<Scalar,int(AmbientDimAtCompileTime)==Dynamic
+                        ? Dynamic
+                        : int(AmbientDimAtCompileTime)+1,1> Coefficients;
+  typedef Block<Coefficients,AmbientDimAtCompileTime,1> NormalReturnType;
+
+  /** Default constructor without initialization */
+  inline Hyperplane() {}
+
+  /** Constructs a dynamic-size hyperplane with \a _dim the dimension
+    * of the ambient space */
+  inline explicit Hyperplane(int _dim) : m_coeffs(_dim+1) {}
+
+  /** Construct a plane from its normal \a n and a point \a e onto the plane.
+    * \warning the vector normal is assumed to be normalized.
+    */
+  inline Hyperplane(const VectorType& n, const VectorType& e)
+    : m_coeffs(n.size()+1)
+  {
+    normal() = n;
+    offset() = -e.eigen2_dot(n);
+  }
+
+  /** Constructs a plane from its normal \a n and distance to the origin \a d
+    * such that the algebraic equation of the plane is \f$ n \cdot x + d = 0 \f$.
+    * \warning the vector normal is assumed to be normalized.
+    */
+  inline Hyperplane(const VectorType& n, Scalar d)
+    : m_coeffs(n.size()+1)
+  {
+    normal() = n;
+    offset() = d;
+  }
+
+  /** Constructs a hyperplane passing through the two points. If the dimension of the ambient space
+    * is greater than 2, then there isn't uniqueness, so an arbitrary choice is made.
+    */
+  static inline Hyperplane Through(const VectorType& p0, const VectorType& p1)
+  {
+    Hyperplane result(p0.size());
+    result.normal() = (p1 - p0).unitOrthogonal();
+    result.offset() = -result.normal().eigen2_dot(p0);
+    return result;
+  }
+
+  /** Constructs a hyperplane passing through the three points. The dimension of the ambient space
+    * is required to be exactly 3.
+    */
+  static inline Hyperplane Through(const VectorType& p0, const VectorType& p1, const VectorType& p2)
+  {
+    EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 3)
+    Hyperplane result(p0.size());
+    result.normal() = (p2 - p0).cross(p1 - p0).normalized();
+    result.offset() = -result.normal().eigen2_dot(p0);
+    return result;
+  }
+
+  /** Constructs a hyperplane passing through the parametrized line \a parametrized.
+    * If the dimension of the ambient space is greater than 2, then there isn't uniqueness,
+    * so an arbitrary choice is made.
+    */
+  // FIXME to be consitent with the rest this could be implemented as a static Through function ??
+  explicit Hyperplane(const ParametrizedLine<Scalar, AmbientDimAtCompileTime>& parametrized)
+  {
+    normal() = parametrized.direction().unitOrthogonal();
+    offset() = -normal().eigen2_dot(parametrized.origin());
+  }
+
+  ~Hyperplane() {}
+
+  /** \returns the dimension in which the plane holds */
+  inline int dim() const { return int(AmbientDimAtCompileTime)==Dynamic ? m_coeffs.size()-1 : int(AmbientDimAtCompileTime); }
+
+  /** normalizes \c *this */
+  void normalize(void)
+  {
+    m_coeffs /= normal().norm();
+  }
+
+  /** \returns the signed distance between the plane \c *this and a point \a p.
+    * \sa absDistance()
+    */
+  inline Scalar signedDistance(const VectorType& p) const { return p.eigen2_dot(normal()) + offset(); }
+
+  /** \returns the absolute distance between the plane \c *this and a point \a p.
+    * \sa signedDistance()
+    */
+  inline Scalar absDistance(const VectorType& p) const { return ei_abs(signedDistance(p)); }
+
+  /** \returns the projection of a point \a p onto the plane \c *this.
+    */
+  inline VectorType projection(const VectorType& p) const { return p - signedDistance(p) * normal(); }
+
+  /** \returns a constant reference to the unit normal vector of the plane, which corresponds
+    * to the linear part of the implicit equation.
+    */
+  inline const NormalReturnType normal() const { return NormalReturnType(*const_cast<Coefficients*>(&m_coeffs),0,0,dim(),1); }
+
+  /** \returns a non-constant reference to the unit normal vector of the plane, which corresponds
+    * to the linear part of the implicit equation.
+    */
+  inline NormalReturnType normal() { return NormalReturnType(m_coeffs,0,0,dim(),1); }
+
+  /** \returns the distance to the origin, which is also the "constant term" of the implicit equation
+    * \warning the vector normal is assumed to be normalized.
+    */
+  inline const Scalar& offset() const { return m_coeffs.coeff(dim()); }
+
+  /** \returns a non-constant reference to the distance to the origin, which is also the constant part
+    * of the implicit equation */
+  inline Scalar& offset() { return m_coeffs(dim()); }
+
+  /** \returns a constant reference to the coefficients c_i of the plane equation:
+    * \f$ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \f$
+    */
+  inline const Coefficients& coeffs() const { return m_coeffs; }
+
+  /** \returns a non-constant reference to the coefficients c_i of the plane equation:
+    * \f$ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \f$
+    */
+  inline Coefficients& coeffs() { return m_coeffs; }
+
+  /** \returns the intersection of *this with \a other.
+    *
+    * \warning The ambient space must be a plane, i.e. have dimension 2, so that \c *this and \a other are lines.
+    *
+    * \note If \a other is approximately parallel to *this, this method will return any point on *this.
+    */
+  VectorType intersection(const Hyperplane& other)
+  {
+    EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 2)
+    Scalar det = coeffs().coeff(0) * other.coeffs().coeff(1) - coeffs().coeff(1) * other.coeffs().coeff(0);
+    // since the line equations ax+by=c are normalized with a^2+b^2=1, the following tests
+    // whether the two lines are approximately parallel.
+    if(ei_isMuchSmallerThan(det, Scalar(1)))
+    {   // special case where the two lines are approximately parallel. Pick any point on the first line.
+        if(ei_abs(coeffs().coeff(1))>ei_abs(coeffs().coeff(0)))
+            return VectorType(coeffs().coeff(1), -coeffs().coeff(2)/coeffs().coeff(1)-coeffs().coeff(0));
+        else
+            return VectorType(-coeffs().coeff(2)/coeffs().coeff(0)-coeffs().coeff(1), coeffs().coeff(0));
+    }
+    else
+    {   // general case
+        Scalar invdet = Scalar(1) / det;
+        return VectorType(invdet*(coeffs().coeff(1)*other.coeffs().coeff(2)-other.coeffs().coeff(1)*coeffs().coeff(2)),
+                          invdet*(other.coeffs().coeff(0)*coeffs().coeff(2)-coeffs().coeff(0)*other.coeffs().coeff(2)));
+    }
+  }
+
+  /** Applies the transformation matrix \a mat to \c *this and returns a reference to \c *this.
+    *
+    * \param mat the Dim x Dim transformation matrix
+    * \param traits specifies whether the matrix \a mat represents an Isometry
+    *               or a more generic Affine transformation. The default is Affine.
+    */
+  template<typename XprType>
+  inline Hyperplane& transform(const MatrixBase<XprType>& mat, TransformTraits traits = Affine)
+  {
+    if (traits==Affine)
+      normal() = mat.inverse().transpose() * normal();
+    else if (traits==Isometry)
+      normal() = mat * normal();
+    else
+    {
+      ei_assert("invalid traits value in Hyperplane::transform()");
+    }
+    return *this;
+  }
+
+  /** Applies the transformation \a t to \c *this and returns a reference to \c *this.
+    *
+    * \param t the transformation of dimension Dim
+    * \param traits specifies whether the transformation \a t represents an Isometry
+    *               or a more generic Affine transformation. The default is Affine.
+    *               Other kind of transformations are not supported.
+    */
+  inline Hyperplane& transform(const Transform<Scalar,AmbientDimAtCompileTime>& t,
+                                TransformTraits traits = Affine)
+  {
+    transform(t.linear(), traits);
+    offset() -= t.translation().eigen2_dot(normal());
+    return *this;
+  }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Hyperplane,
+           Hyperplane<NewScalarType,AmbientDimAtCompileTime> >::type cast() const
+  {
+    return typename internal::cast_return_type<Hyperplane,
+                    Hyperplane<NewScalarType,AmbientDimAtCompileTime> >::type(*this);
+  }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit Hyperplane(const Hyperplane<OtherScalarType,AmbientDimAtCompileTime>& other)
+  { m_coeffs = other.coeffs().template cast<Scalar>(); }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const Hyperplane& other, typename NumTraits<Scalar>::Real prec = precision<Scalar>()) const
+  { return m_coeffs.isApprox(other.m_coeffs, prec); }
+
+protected:
+
+  Coefficients m_coeffs;
+};
+
+} // end namespace Eigen
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h
new file mode 100644
index 0000000..9b57b7e
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h
@@ -0,0 +1,141 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael at free.fr>
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class ParametrizedLine
+  *
+  * \brief A parametrized line
+  *
+  * A parametrized line is defined by an origin point \f$ \mathbf{o} \f$ and a unit
+  * direction vector \f$ \mathbf{d} \f$ such that the line corresponds to
+  * the set \f$ l(t) = \mathbf{o} + t \mathbf{d} \f$, \f$ l \in \mathbf{R} \f$.
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients
+  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
+  */
+template <typename _Scalar, int _AmbientDim>
+class ParametrizedLine
+{
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
+  enum { AmbientDimAtCompileTime = _AmbientDim };
+  typedef _Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef Matrix<Scalar,AmbientDimAtCompileTime,1> VectorType;
+
+  /** Default constructor without initialization */
+  inline ParametrizedLine() {}
+
+  /** Constructs a dynamic-size line with \a _dim the dimension
+    * of the ambient space */
+  inline explicit ParametrizedLine(int _dim) : m_origin(_dim), m_direction(_dim) {}
+
+  /** Initializes a parametrized line of direction \a direction and origin \a origin.
+    * \warning the vector direction is assumed to be normalized.
+    */
+  ParametrizedLine(const VectorType& origin, const VectorType& direction)
+    : m_origin(origin), m_direction(direction) {}
+
+  explicit ParametrizedLine(const Hyperplane<_Scalar, _AmbientDim>& hyperplane);
+
+  /** Constructs a parametrized line going from \a p0 to \a p1. */
+  static inline ParametrizedLine Through(const VectorType& p0, const VectorType& p1)
+  { return ParametrizedLine(p0, (p1-p0).normalized()); }
+
+  ~ParametrizedLine() {}
+
+  /** \returns the dimension in which the line holds */
+  inline int dim() const { return m_direction.size(); }
+
+  const VectorType& origin() const { return m_origin; }
+  VectorType& origin() { return m_origin; }
+
+  const VectorType& direction() const { return m_direction; }
+  VectorType& direction() { return m_direction; }
+
+  /** \returns the squared distance of a point \a p to its projection onto the line \c *this.
+    * \sa distance()
+    */
+  RealScalar squaredDistance(const VectorType& p) const
+  {
+    VectorType diff = p-origin();
+    return (diff - diff.eigen2_dot(direction())* direction()).squaredNorm();
+  }
+  /** \returns the distance of a point \a p to its projection onto the line \c *this.
+    * \sa squaredDistance()
+    */
+  RealScalar distance(const VectorType& p) const { return ei_sqrt(squaredDistance(p)); }
+
+  /** \returns the projection of a point \a p onto the line \c *this. */
+  VectorType projection(const VectorType& p) const
+  { return origin() + (p-origin()).eigen2_dot(direction()) * direction(); }
+
+  Scalar intersection(const Hyperplane<_Scalar, _AmbientDim>& hyperplane);
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<ParametrizedLine,
+           ParametrizedLine<NewScalarType,AmbientDimAtCompileTime> >::type cast() const
+  {
+    return typename internal::cast_return_type<ParametrizedLine,
+                    ParametrizedLine<NewScalarType,AmbientDimAtCompileTime> >::type(*this);
+  }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit ParametrizedLine(const ParametrizedLine<OtherScalarType,AmbientDimAtCompileTime>& other)
+  {
+    m_origin = other.origin().template cast<Scalar>();
+    m_direction = other.direction().template cast<Scalar>();
+  }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const ParametrizedLine& other, typename NumTraits<Scalar>::Real prec = precision<Scalar>()) const
+  { return m_origin.isApprox(other.m_origin, prec) && m_direction.isApprox(other.m_direction, prec); }
+
+protected:
+
+  VectorType m_origin, m_direction;
+};
+
+/** Constructs a parametrized line from a 2D hyperplane
+  *
+  * \warning the ambient space must have dimension 2 such that the hyperplane actually describes a line
+  */
+template <typename _Scalar, int _AmbientDim>
+inline ParametrizedLine<_Scalar, _AmbientDim>::ParametrizedLine(const Hyperplane<_Scalar, _AmbientDim>& hyperplane)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 2)
+  direction() = hyperplane.normal().unitOrthogonal();
+  origin() = -hyperplane.normal()*hyperplane.offset();
+}
+
+/** \returns the parameter value of the intersection between \c *this and the given hyperplane
+  */
+template <typename _Scalar, int _AmbientDim>
+inline _Scalar ParametrizedLine<_Scalar, _AmbientDim>::intersection(const Hyperplane<_Scalar, _AmbientDim>& hyperplane)
+{
+  return -(hyperplane.offset()+origin().eigen2_dot(hyperplane.normal()))
+          /(direction().eigen2_dot(hyperplane.normal()));
+}
+
+} // end namespace Eigen
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/Quaternion.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/Quaternion.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/Quaternion.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/Quaternion.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/Rotation2D.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/Rotation2D.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/Rotation2D.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/Rotation2D.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/RotationBase.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/RotationBase.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/RotationBase.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/RotationBase.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/Scaling.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/Scaling.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/Scaling.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/Scaling.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/Transform.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/Transform.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/Transform.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/Transform.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/Translation.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/Translation.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Geometry/Translation.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Geometry/Translation.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/LU.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/LU.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/LU.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/LU.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Lazy.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Lazy.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Lazy.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Lazy.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/LeastSquares.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/LeastSquares.h
new file mode 100644
index 0000000..7992d49
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/LeastSquares.h
@@ -0,0 +1,169 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN2_LEASTSQUARES_H
+#define EIGEN2_LEASTSQUARES_H
+
+namespace Eigen { 
+
+/** \ingroup LeastSquares_Module
+  *
+  * \leastsquares_module
+  *
+  * For a set of points, this function tries to express
+  * one of the coords as a linear (affine) function of the other coords.
+  *
+  * This is best explained by an example. This function works in full
+  * generality, for points in a space of arbitrary dimension, and also over
+  * the complex numbers, but for this example we will work in dimension 3
+  * over the real numbers (doubles).
+  *
+  * So let us work with the following set of 5 points given by their
+  * \f$(x,y,z)\f$ coordinates:
+  * @code
+    Vector3d points[5];
+    points[0] = Vector3d( 3.02, 6.89, -4.32 );
+    points[1] = Vector3d( 2.01, 5.39, -3.79 );
+    points[2] = Vector3d( 2.41, 6.01, -4.01 );
+    points[3] = Vector3d( 2.09, 5.55, -3.86 );
+    points[4] = Vector3d( 2.58, 6.32, -4.10 );
+  * @endcode
+  * Suppose that we want to express the second coordinate (\f$y\f$) as a linear
+  * expression in \f$x\f$ and \f$z\f$, that is,
+  * \f[ y=ax+bz+c \f]
+  * for some constants \f$a,b,c\f$. Thus, we want to find the best possible
+  * constants \f$a,b,c\f$ so that the plane of equation \f$y=ax+bz+c\f$ fits
+  * best the five above points. To do that, call this function as follows:
+  * @code
+    Vector3d coeffs; // will store the coefficients a, b, c
+    linearRegression(
+      5,
+      &points,
+      &coeffs,
+      1 // the coord to express as a function of
+        // the other ones. 0 means x, 1 means y, 2 means z.
+    );
+  * @endcode
+  * Now the vector \a coeffs is approximately
+  * \f$( 0.495 ,  -1.927 ,  -2.906 )\f$.
+  * Thus, we get \f$a=0.495, b = -1.927, c = -2.906\f$. Let us check for
+  * instance how near points[0] is from the plane of equation \f$y=ax+bz+c\f$.
+  * Looking at the coords of points[0], we see that:
+  * \f[ax+bz+c = 0.495 * 3.02 + (-1.927) * (-4.32) + (-2.906) = 6.91.\f]
+  * On the other hand, we have \f$y=6.89\f$. We see that the values
+  * \f$6.91\f$ and \f$6.89\f$
+  * are near, so points[0] is very near the plane of equation \f$y=ax+bz+c\f$.
+  *
+  * Let's now describe precisely the parameters:
+  * @param numPoints the number of points
+  * @param points the array of pointers to the points on which to perform the linear regression
+  * @param result pointer to the vector in which to store the result.
+                  This vector must be of the same type and size as the
+                  data points. The meaning of its coords is as follows.
+                  For brevity, let \f$n=Size\f$,
+                  \f$r_i=result[i]\f$,
+                  and \f$f=funcOfOthers\f$. Denote by
+                  \f$x_0,\ldots,x_{n-1}\f$
+                  the n coordinates in the n-dimensional space.
+                  Then the resulting equation is:
+                  \f[ x_f = r_0 x_0 + \cdots + r_{f-1}x_{f-1}
+                   + r_{f+1}x_{f+1} + \cdots + r_{n-1}x_{n-1} + r_n. \f]
+  * @param funcOfOthers Determines which coord to express as a function of the
+                        others. Coords are numbered starting from 0, so that a
+                        value of 0 means \f$x\f$, 1 means \f$y\f$,
+                        2 means \f$z\f$, ...
+  *
+  * \sa fitHyperplane()
+  */
+template<typename VectorType>
+void linearRegression(int numPoints,
+                      VectorType **points,
+                      VectorType *result,
+                      int funcOfOthers )
+{
+  typedef typename VectorType::Scalar Scalar;
+  typedef Hyperplane<Scalar, VectorType::SizeAtCompileTime> HyperplaneType;
+  const int size = points[0]->size();
+  result->resize(size);
+  HyperplaneType h(size);
+  fitHyperplane(numPoints, points, &h);
+  for(int i = 0; i < funcOfOthers; i++)
+    result->coeffRef(i) = - h.coeffs()[i] / h.coeffs()[funcOfOthers];
+  for(int i = funcOfOthers; i < size; i++)
+    result->coeffRef(i) = - h.coeffs()[i+1] / h.coeffs()[funcOfOthers];
+}
+
+/** \ingroup LeastSquares_Module
+  *
+  * \leastsquares_module
+  *
+  * This function is quite similar to linearRegression(), so we refer to the
+  * documentation of this function and only list here the differences.
+  *
+  * The main difference from linearRegression() is that this function doesn't
+  * take a \a funcOfOthers argument. Instead, it finds a general equation
+  * of the form
+  * \f[ r_0 x_0 + \cdots + r_{n-1}x_{n-1} + r_n = 0, \f]
+  * where \f$n=Size\f$, \f$r_i=retCoefficients[i]\f$, and we denote by
+  * \f$x_0,\ldots,x_{n-1}\f$ the n coordinates in the n-dimensional space.
+  *
+  * Thus, the vector \a retCoefficients has size \f$n+1\f$, which is another
+  * difference from linearRegression().
+  *
+  * In practice, this function performs an hyper-plane fit in a total least square sense
+  * via the following steps:
+  *  1 - center the data to the mean
+  *  2 - compute the covariance matrix
+  *  3 - pick the eigenvector corresponding to the smallest eigenvalue of the covariance matrix
+  * The ratio of the smallest eigenvalue and the second one gives us a hint about the relevance
+  * of the solution. This value is optionally returned in \a soundness.
+  *
+  * \sa linearRegression()
+  */
+template<typename VectorType, typename HyperplaneType>
+void fitHyperplane(int numPoints,
+                   VectorType **points,
+                   HyperplaneType *result,
+                   typename NumTraits<typename VectorType::Scalar>::Real* soundness = 0)
+{
+  typedef typename VectorType::Scalar Scalar;
+  typedef Matrix<Scalar,VectorType::SizeAtCompileTime,VectorType::SizeAtCompileTime> CovMatrixType;
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(VectorType)
+  ei_assert(numPoints >= 1);
+  int size = points[0]->size();
+  ei_assert(size+1 == result->coeffs().size());
+
+  // compute the mean of the data
+  VectorType mean = VectorType::Zero(size);
+  for(int i = 0; i < numPoints; ++i)
+    mean += *(points[i]);
+  mean /= numPoints;
+
+  // compute the covariance matrix
+  CovMatrixType covMat = CovMatrixType::Zero(size, size);
+  for(int i = 0; i < numPoints; ++i)
+  {
+    VectorType diff = (*(points[i]) - mean).conjugate();
+    covMat += diff * diff.adjoint();
+  }
+
+  // now we just have to pick the eigen vector with smallest eigen value
+  SelfAdjointEigenSolver<CovMatrixType> eig(covMat);
+  result->normal() = eig.eigenvectors().col(0);
+  if (soundness)
+    *soundness = eig.eigenvalues().coeff(0)/eig.eigenvalues().coeff(1);
+
+  // let's compute the constant coefficient such that the
+  // plane pass trough the mean point:
+  result->offset() = - (result->normal().cwise()* mean).sum();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN2_LEASTSQUARES_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Macros.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Macros.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Macros.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Macros.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/MathFunctions.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/MathFunctions.h
new file mode 100644
index 0000000..3544af2
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/MathFunctions.h
@@ -0,0 +1,57 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN2_MATH_FUNCTIONS_H
+#define EIGEN2_MATH_FUNCTIONS_H
+
+namespace Eigen { 
+
+template<typename T> inline typename NumTraits<T>::Real ei_real(const T& x) { return numext::real(x); }
+template<typename T> inline typename NumTraits<T>::Real ei_imag(const T& x) { return numext::imag(x); }
+template<typename T> inline T ei_conj(const T& x) { return numext::conj(x); }
+template<typename T> inline typename NumTraits<T>::Real ei_abs (const T& x) { using std::abs; return abs(x); }
+template<typename T> inline typename NumTraits<T>::Real ei_abs2(const T& x) { return numext::abs2(x); }
+template<typename T> inline T ei_sqrt(const T& x) { using std::sqrt; return sqrt(x); }
+template<typename T> inline T ei_exp (const T& x) { using std::exp;  return exp(x); }
+template<typename T> inline T ei_log (const T& x) { using std::log;  return log(x); }
+template<typename T> inline T ei_sin (const T& x) { using std::sin;  return sin(x); }
+template<typename T> inline T ei_cos (const T& x) { using std::cos;  return cos(x); }
+template<typename T> inline T ei_atan2(const T& x,const T& y) { using std::atan2; return atan2(x,y); }
+template<typename T> inline T ei_pow (const T& x,const T& y) { return numext::pow(x,y); }
+template<typename T> inline T ei_random () { return internal::random<T>(); }
+template<typename T> inline T ei_random (const T& x, const T& y) { return internal::random(x, y); }
+
+template<typename T> inline T precision () { return NumTraits<T>::dummy_precision(); }
+template<typename T> inline T machine_epsilon () { return NumTraits<T>::epsilon(); }
+
+
+template<typename Scalar, typename OtherScalar>
+inline bool ei_isMuchSmallerThan(const Scalar& x, const OtherScalar& y,
+                                   typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision())
+{
+  return internal::isMuchSmallerThan(x, y, precision);
+}
+
+template<typename Scalar>
+inline bool ei_isApprox(const Scalar& x, const Scalar& y,
+                          typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision())
+{
+  return internal::isApprox(x, y, precision);
+}
+
+template<typename Scalar>
+inline bool ei_isApproxOrLessThan(const Scalar& x, const Scalar& y,
+                                    typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision())
+{
+  return internal::isApproxOrLessThan(x, y, precision);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN2_MATH_FUNCTIONS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Memory.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Memory.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Memory.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Memory.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Meta.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Meta.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Meta.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Meta.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Minor.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Minor.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/Minor.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/Minor.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/QR.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/QR.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/QR.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/QR.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/SVD.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/SVD.h
new file mode 100644
index 0000000..3d03d22
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/SVD.h
@@ -0,0 +1,637 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael at free.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN2_SVD_H
+#define EIGEN2_SVD_H
+
+namespace Eigen {
+
+/** \ingroup SVD_Module
+  * \nonstableyet
+  *
+  * \class SVD
+  *
+  * \brief Standard SVD decomposition of a matrix and associated features
+  *
+  * \param MatrixType the type of the matrix of which we are computing the SVD decomposition
+  *
+  * This class performs a standard SVD decomposition of a real matrix A of size \c M x \c N
+  * with \c M \>= \c N.
+  *
+  *
+  * \sa MatrixBase::SVD()
+  */
+template<typename MatrixType> class SVD
+{
+  private:
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+
+    enum {
+      PacketSize = internal::packet_traits<Scalar>::size,
+      AlignmentMask = int(PacketSize)-1,
+      MinSize = EIGEN_SIZE_MIN_PREFER_DYNAMIC(MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime)
+    };
+
+    typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> ColVector;
+    typedef Matrix<Scalar, MatrixType::ColsAtCompileTime, 1> RowVector;
+
+    typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, MinSize> MatrixUType;
+    typedef Matrix<Scalar, MatrixType::ColsAtCompileTime, MatrixType::ColsAtCompileTime> MatrixVType;
+    typedef Matrix<Scalar, MinSize, 1> SingularValuesType;
+
+  public:
+
+    SVD() {} // a user who relied on compiler-generated default compiler reported problems with MSVC in 2.0.7
+    
+    SVD(const MatrixType& matrix)
+      : m_matU(matrix.rows(), (std::min)(matrix.rows(), matrix.cols())),
+        m_matV(matrix.cols(),matrix.cols()),
+        m_sigma((std::min)(matrix.rows(),matrix.cols()))
+    {
+      compute(matrix);
+    }
+
+    template<typename OtherDerived, typename ResultType>
+    bool solve(const MatrixBase<OtherDerived> &b, ResultType* result) const;
+
+    const MatrixUType& matrixU() const { return m_matU; }
+    const SingularValuesType& singularValues() const { return m_sigma; }
+    const MatrixVType& matrixV() const { return m_matV; }
+
+    void compute(const MatrixType& matrix);
+    SVD& sort();
+
+    template<typename UnitaryType, typename PositiveType>
+    void computeUnitaryPositive(UnitaryType *unitary, PositiveType *positive) const;
+    template<typename PositiveType, typename UnitaryType>
+    void computePositiveUnitary(PositiveType *positive, UnitaryType *unitary) const;
+    template<typename RotationType, typename ScalingType>
+    void computeRotationScaling(RotationType *unitary, ScalingType *positive) const;
+    template<typename ScalingType, typename RotationType>
+    void computeScalingRotation(ScalingType *positive, RotationType *unitary) const;
+
+  protected:
+    /** \internal */
+    MatrixUType m_matU;
+    /** \internal */
+    MatrixVType m_matV;
+    /** \internal */
+    SingularValuesType m_sigma;
+};
+
+/** Computes / recomputes the SVD decomposition A = U S V^* of \a matrix
+  *
+  * \note this code has been adapted from JAMA (public domain)
+  */
+template<typename MatrixType>
+void SVD<MatrixType>::compute(const MatrixType& matrix)
+{
+  const int m = matrix.rows();
+  const int n = matrix.cols();
+  const int nu = (std::min)(m,n);
+  ei_assert(m>=n && "In Eigen 2.0, SVD only works for MxN matrices with M>=N. Sorry!");
+  ei_assert(m>1 && "In Eigen 2.0, SVD doesn't work on 1x1 matrices");
+
+  m_matU.resize(m, nu);
+  m_matU.setZero();
+  m_sigma.resize((std::min)(m,n));
+  m_matV.resize(n,n);
+
+  RowVector e(n);
+  ColVector work(m);
+  MatrixType matA(matrix);
+  const bool wantu = true;
+  const bool wantv = true;
+  int i=0, j=0, k=0;
+
+  // Reduce A to bidiagonal form, storing the diagonal elements
+  // in s and the super-diagonal elements in e.
+  int nct = (std::min)(m-1,n);
+  int nrt = (std::max)(0,(std::min)(n-2,m));
+  for (k = 0; k < (std::max)(nct,nrt); ++k)
+  {
+    if (k < nct)
+    {
+      // Compute the transformation for the k-th column and
+      // place the k-th diagonal in m_sigma[k].
+      m_sigma[k] = matA.col(k).end(m-k).norm();
+      if (m_sigma[k] != 0.0) // FIXME
+      {
+        if (matA(k,k) < 0.0)
+          m_sigma[k] = -m_sigma[k];
+        matA.col(k).end(m-k) /= m_sigma[k];
+        matA(k,k) += 1.0;
+      }
+      m_sigma[k] = -m_sigma[k];
+    }
+
+    for (j = k+1; j < n; ++j)
+    {
+      if ((k < nct) && (m_sigma[k] != 0.0))
+      {
+        // Apply the transformation.
+        Scalar t = matA.col(k).end(m-k).eigen2_dot(matA.col(j).end(m-k)); // FIXME dot product or cwise prod + .sum() ??
+        t = -t/matA(k,k);
+        matA.col(j).end(m-k) += t * matA.col(k).end(m-k);
+      }
+
+      // Place the k-th row of A into e for the
+      // subsequent calculation of the row transformation.
+      e[j] = matA(k,j);
+    }
+
+    // Place the transformation in U for subsequent back multiplication.
+    if (wantu & (k < nct))
+      m_matU.col(k).end(m-k) = matA.col(k).end(m-k);
+
+    if (k < nrt)
+    {
+      // Compute the k-th row transformation and place the
+      // k-th super-diagonal in e[k].
+      e[k] = e.end(n-k-1).norm();
+      if (e[k] != 0.0)
+      {
+          if (e[k+1] < 0.0)
+            e[k] = -e[k];
+          e.end(n-k-1) /= e[k];
+          e[k+1] += 1.0;
+      }
+      e[k] = -e[k];
+      if ((k+1 < m) & (e[k] != 0.0))
+      {
+        // Apply the transformation.
+        work.end(m-k-1) = matA.corner(BottomRight,m-k-1,n-k-1) * e.end(n-k-1);
+        for (j = k+1; j < n; ++j)
+          matA.col(j).end(m-k-1) += (-e[j]/e[k+1]) * work.end(m-k-1);
+      }
+
+      // Place the transformation in V for subsequent back multiplication.
+      if (wantv)
+        m_matV.col(k).end(n-k-1) = e.end(n-k-1);
+    }
+  }
+
+
+  // Set up the final bidiagonal matrix or order p.
+  int p = (std::min)(n,m+1);
+  if (nct < n)
+    m_sigma[nct] = matA(nct,nct);
+  if (m < p)
+    m_sigma[p-1] = 0.0;
+  if (nrt+1 < p)
+    e[nrt] = matA(nrt,p-1);
+  e[p-1] = 0.0;
+
+  // If required, generate U.
+  if (wantu)
+  {
+    for (j = nct; j < nu; ++j)
+    {
+      m_matU.col(j).setZero();
+      m_matU(j,j) = 1.0;
+    }
+    for (k = nct-1; k >= 0; k--)
+    {
+      if (m_sigma[k] != 0.0)
+      {
+        for (j = k+1; j < nu; ++j)
+        {
+          Scalar t = m_matU.col(k).end(m-k).eigen2_dot(m_matU.col(j).end(m-k)); // FIXME is it really a dot product we want ?
+          t = -t/m_matU(k,k);
+          m_matU.col(j).end(m-k) += t * m_matU.col(k).end(m-k);
+        }
+        m_matU.col(k).end(m-k) = - m_matU.col(k).end(m-k);
+        m_matU(k,k) = Scalar(1) + m_matU(k,k);
+        if (k-1>0)
+          m_matU.col(k).start(k-1).setZero();
+      }
+      else
+      {
+        m_matU.col(k).setZero();
+        m_matU(k,k) = 1.0;
+      }
+    }
+  }
+
+  // If required, generate V.
+  if (wantv)
+  {
+    for (k = n-1; k >= 0; k--)
+    {
+      if ((k < nrt) & (e[k] != 0.0))
+      {
+        for (j = k+1; j < nu; ++j)
+        {
+          Scalar t = m_matV.col(k).end(n-k-1).eigen2_dot(m_matV.col(j).end(n-k-1)); // FIXME is it really a dot product we want ?
+          t = -t/m_matV(k+1,k);
+          m_matV.col(j).end(n-k-1) += t * m_matV.col(k).end(n-k-1);
+        }
+      }
+      m_matV.col(k).setZero();
+      m_matV(k,k) = 1.0;
+    }
+  }
+
+  // Main iteration loop for the singular values.
+  int pp = p-1;
+  int iter = 0;
+  Scalar eps = ei_pow(Scalar(2),ei_is_same_type<Scalar,float>::ret ? Scalar(-23) : Scalar(-52));
+  while (p > 0)
+  {
+    int k=0;
+    int kase=0;
+
+    // Here is where a test for too many iterations would go.
+
+    // This section of the program inspects for
+    // negligible elements in the s and e arrays.  On
+    // completion the variables kase and k are set as follows.
+
+    // kase = 1     if s(p) and e[k-1] are negligible and k<p
+    // kase = 2     if s(k) is negligible and k<p
+    // kase = 3     if e[k-1] is negligible, k<p, and
+    //              s(k), ..., s(p) are not negligible (qr step).
+    // kase = 4     if e(p-1) is negligible (convergence).
+
+    for (k = p-2; k >= -1; --k)
+    {
+      if (k == -1)
+          break;
+      if (ei_abs(e[k]) <= eps*(ei_abs(m_sigma[k]) + ei_abs(m_sigma[k+1])))
+      {
+          e[k] = 0.0;
+          break;
+      }
+    }
+    if (k == p-2)
+    {
+      kase = 4;
+    }
+    else
+    {
+      int ks;
+      for (ks = p-1; ks >= k; --ks)
+      {
+        if (ks == k)
+          break;
+        Scalar t = (ks != p ? ei_abs(e[ks]) : Scalar(0)) + (ks != k+1 ? ei_abs(e[ks-1]) : Scalar(0));
+        if (ei_abs(m_sigma[ks]) <= eps*t)
+        {
+          m_sigma[ks] = 0.0;
+          break;
+        }
+      }
+      if (ks == k)
+      {
+        kase = 3;
+      }
+      else if (ks == p-1)
+      {
+        kase = 1;
+      }
+      else
+      {
+        kase = 2;
+        k = ks;
+      }
+    }
+    ++k;
+
+    // Perform the task indicated by kase.
+    switch (kase)
+    {
+
+      // Deflate negligible s(p).
+      case 1:
+      {
+        Scalar f(e[p-2]);
+        e[p-2] = 0.0;
+        for (j = p-2; j >= k; --j)
+        {
+          Scalar t(numext::hypot(m_sigma[j],f));
+          Scalar cs(m_sigma[j]/t);
+          Scalar sn(f/t);
+          m_sigma[j] = t;
+          if (j != k)
+          {
+            f = -sn*e[j-1];
+            e[j-1] = cs*e[j-1];
+          }
+          if (wantv)
+          {
+            for (i = 0; i < n; ++i)
+            {
+              t = cs*m_matV(i,j) + sn*m_matV(i,p-1);
+              m_matV(i,p-1) = -sn*m_matV(i,j) + cs*m_matV(i,p-1);
+              m_matV(i,j) = t;
+            }
+          }
+        }
+      }
+      break;
+
+      // Split at negligible s(k).
+      case 2:
+      {
+        Scalar f(e[k-1]);
+        e[k-1] = 0.0;
+        for (j = k; j < p; ++j)
+        {
+          Scalar t(numext::hypot(m_sigma[j],f));
+          Scalar cs( m_sigma[j]/t);
+          Scalar sn(f/t);
+          m_sigma[j] = t;
+          f = -sn*e[j];
+          e[j] = cs*e[j];
+          if (wantu)
+          {
+            for (i = 0; i < m; ++i)
+            {
+              t = cs*m_matU(i,j) + sn*m_matU(i,k-1);
+              m_matU(i,k-1) = -sn*m_matU(i,j) + cs*m_matU(i,k-1);
+              m_matU(i,j) = t;
+            }
+          }
+        }
+      }
+      break;
+
+      // Perform one qr step.
+      case 3:
+      {
+        // Calculate the shift.
+        Scalar scale = (std::max)((std::max)((std::max)((std::max)(
+                        ei_abs(m_sigma[p-1]),ei_abs(m_sigma[p-2])),ei_abs(e[p-2])),
+                        ei_abs(m_sigma[k])),ei_abs(e[k]));
+        Scalar sp = m_sigma[p-1]/scale;
+        Scalar spm1 = m_sigma[p-2]/scale;
+        Scalar epm1 = e[p-2]/scale;
+        Scalar sk = m_sigma[k]/scale;
+        Scalar ek = e[k]/scale;
+        Scalar b = ((spm1 + sp)*(spm1 - sp) + epm1*epm1)/Scalar(2);
+        Scalar c = (sp*epm1)*(sp*epm1);
+        Scalar shift(0);
+        if ((b != 0.0) || (c != 0.0))
+        {
+          shift = ei_sqrt(b*b + c);
+          if (b < 0.0)
+            shift = -shift;
+          shift = c/(b + shift);
+        }
+        Scalar f = (sk + sp)*(sk - sp) + shift;
+        Scalar g = sk*ek;
+
+        // Chase zeros.
+
+        for (j = k; j < p-1; ++j)
+        {
+          Scalar t = numext::hypot(f,g);
+          Scalar cs = f/t;
+          Scalar sn = g/t;
+          if (j != k)
+            e[j-1] = t;
+          f = cs*m_sigma[j] + sn*e[j];
+          e[j] = cs*e[j] - sn*m_sigma[j];
+          g = sn*m_sigma[j+1];
+          m_sigma[j+1] = cs*m_sigma[j+1];
+          if (wantv)
+          {
+            for (i = 0; i < n; ++i)
+            {
+              t = cs*m_matV(i,j) + sn*m_matV(i,j+1);
+              m_matV(i,j+1) = -sn*m_matV(i,j) + cs*m_matV(i,j+1);
+              m_matV(i,j) = t;
+            }
+          }
+          t = numext::hypot(f,g);
+          cs = f/t;
+          sn = g/t;
+          m_sigma[j] = t;
+          f = cs*e[j] + sn*m_sigma[j+1];
+          m_sigma[j+1] = -sn*e[j] + cs*m_sigma[j+1];
+          g = sn*e[j+1];
+          e[j+1] = cs*e[j+1];
+          if (wantu && (j < m-1))
+          {
+            for (i = 0; i < m; ++i)
+            {
+              t = cs*m_matU(i,j) + sn*m_matU(i,j+1);
+              m_matU(i,j+1) = -sn*m_matU(i,j) + cs*m_matU(i,j+1);
+              m_matU(i,j) = t;
+            }
+          }
+        }
+        e[p-2] = f;
+        iter = iter + 1;
+      }
+      break;
+
+      // Convergence.
+      case 4:
+      {
+        // Make the singular values positive.
+        if (m_sigma[k] <= 0.0)
+        {
+          m_sigma[k] = m_sigma[k] < Scalar(0) ? -m_sigma[k] : Scalar(0);
+          if (wantv)
+            m_matV.col(k).start(pp+1) = -m_matV.col(k).start(pp+1);
+        }
+
+        // Order the singular values.
+        while (k < pp)
+        {
+          if (m_sigma[k] >= m_sigma[k+1])
+            break;
+          Scalar t = m_sigma[k];
+          m_sigma[k] = m_sigma[k+1];
+          m_sigma[k+1] = t;
+          if (wantv && (k < n-1))
+            m_matV.col(k).swap(m_matV.col(k+1));
+          if (wantu && (k < m-1))
+            m_matU.col(k).swap(m_matU.col(k+1));
+          ++k;
+        }
+        iter = 0;
+        p--;
+      }
+      break;
+    } // end big switch
+  } // end iterations
+}
+
+template<typename MatrixType>
+SVD<MatrixType>& SVD<MatrixType>::sort()
+{
+  int mu = m_matU.rows();
+  int mv = m_matV.rows();
+  int n  = m_matU.cols();
+
+  for (int i=0; i<n; ++i)
+  {
+    int  k = i;
+    Scalar p = m_sigma.coeff(i);
+
+    for (int j=i+1; j<n; ++j)
+    {
+      if (m_sigma.coeff(j) > p)
+      {
+        k = j;
+        p = m_sigma.coeff(j);
+      }
+    }
+    if (k != i)
+    {
+      m_sigma.coeffRef(k) = m_sigma.coeff(i);  // i.e.
+      m_sigma.coeffRef(i) = p;                 // swaps the i-th and the k-th elements
+
+      int j = mu;
+      for(int s=0; j!=0; ++s, --j)
+        std::swap(m_matU.coeffRef(s,i), m_matU.coeffRef(s,k));
+
+      j = mv;
+      for (int s=0; j!=0; ++s, --j)
+        std::swap(m_matV.coeffRef(s,i), m_matV.coeffRef(s,k));
+    }
+  }
+  return *this;
+}
+
+/** \returns the solution of \f$ A x = b \f$ using the current SVD decomposition of A.
+  * The parts of the solution corresponding to zero singular values are ignored.
+  *
+  * \sa MatrixBase::svd(), LU::solve(), LLT::solve()
+  */
+template<typename MatrixType>
+template<typename OtherDerived, typename ResultType>
+bool SVD<MatrixType>::solve(const MatrixBase<OtherDerived> &b, ResultType* result) const
+{
+  ei_assert(b.rows() == m_matU.rows());
+
+  Scalar maxVal = m_sigma.cwise().abs().maxCoeff();
+  for (int j=0; j<b.cols(); ++j)
+  {
+    Matrix<Scalar,MatrixUType::RowsAtCompileTime,1> aux = m_matU.transpose() * b.col(j);
+
+    for (int i = 0; i <m_matU.cols(); ++i)
+    {
+      Scalar si = m_sigma.coeff(i);
+      if (ei_isMuchSmallerThan(ei_abs(si),maxVal))
+        aux.coeffRef(i) = 0;
+      else
+        aux.coeffRef(i) /= si;
+    }
+
+    result->col(j) = m_matV * aux;
+  }
+  return true;
+}
+
+/** Computes the polar decomposition of the matrix, as a product unitary x positive.
+  *
+  * If either pointer is zero, the corresponding computation is skipped.
+  *
+  * Only for square matrices.
+  *
+  * \sa computePositiveUnitary(), computeRotationScaling()
+  */
+template<typename MatrixType>
+template<typename UnitaryType, typename PositiveType>
+void SVD<MatrixType>::computeUnitaryPositive(UnitaryType *unitary,
+                                             PositiveType *positive) const
+{
+  ei_assert(m_matU.cols() == m_matV.cols() && "Polar decomposition is only for square matrices");
+  if(unitary) *unitary = m_matU * m_matV.adjoint();
+  if(positive) *positive = m_matV * m_sigma.asDiagonal() * m_matV.adjoint();
+}
+
+/** Computes the polar decomposition of the matrix, as a product positive x unitary.
+  *
+  * If either pointer is zero, the corresponding computation is skipped.
+  *
+  * Only for square matrices.
+  *
+  * \sa computeUnitaryPositive(), computeRotationScaling()
+  */
+template<typename MatrixType>
+template<typename UnitaryType, typename PositiveType>
+void SVD<MatrixType>::computePositiveUnitary(UnitaryType *positive,
+                                             PositiveType *unitary) const
+{
+  ei_assert(m_matU.rows() == m_matV.rows() && "Polar decomposition is only for square matrices");
+  if(unitary) *unitary = m_matU * m_matV.adjoint();
+  if(positive) *positive = m_matU * m_sigma.asDiagonal() * m_matU.adjoint();
+}
+
+/** decomposes the matrix as a product rotation x scaling, the scaling being
+  * not necessarily positive.
+  *
+  * If either pointer is zero, the corresponding computation is skipped.
+  *
+  * This method requires the Geometry module.
+  *
+  * \sa computeScalingRotation(), computeUnitaryPositive()
+  */
+template<typename MatrixType>
+template<typename RotationType, typename ScalingType>
+void SVD<MatrixType>::computeRotationScaling(RotationType *rotation, ScalingType *scaling) const
+{
+  ei_assert(m_matU.rows() == m_matV.rows() && "Polar decomposition is only for square matrices");
+  Scalar x = (m_matU * m_matV.adjoint()).determinant(); // so x has absolute value 1
+  Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> sv(m_sigma);
+  sv.coeffRef(0) *= x;
+  if(scaling) scaling->lazyAssign(m_matV * sv.asDiagonal() * m_matV.adjoint());
+  if(rotation)
+  {
+    MatrixType m(m_matU);
+    m.col(0) /= x;
+    rotation->lazyAssign(m * m_matV.adjoint());
+  }
+}
+
+/** decomposes the matrix as a product scaling x rotation, the scaling being
+  * not necessarily positive.
+  *
+  * If either pointer is zero, the corresponding computation is skipped.
+  *
+  * This method requires the Geometry module.
+  *
+  * \sa computeRotationScaling(), computeUnitaryPositive()
+  */
+template<typename MatrixType>
+template<typename ScalingType, typename RotationType>
+void SVD<MatrixType>::computeScalingRotation(ScalingType *scaling, RotationType *rotation) const
+{
+  ei_assert(m_matU.rows() == m_matV.rows() && "Polar decomposition is only for square matrices");
+  Scalar x = (m_matU * m_matV.adjoint()).determinant(); // so x has absolute value 1
+  Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> sv(m_sigma);
+  sv.coeffRef(0) *= x;
+  if(scaling) scaling->lazyAssign(m_matU * sv.asDiagonal() * m_matU.adjoint());
+  if(rotation)
+  {
+    MatrixType m(m_matU);
+    m.col(0) /= x;
+    rotation->lazyAssign(m * m_matV.adjoint());
+  }
+}
+
+
+/** \svd_module
+  * \returns the SVD decomposition of \c *this
+  */
+template<typename Derived>
+inline SVD<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::svd() const
+{
+  return SVD<PlainObject>(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN2_SVD_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/TriangularSolver.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/TriangularSolver.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/TriangularSolver.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/TriangularSolver.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigen2Support/VectorBlock.h b/vendor/eigen-3.2.8/Eigen/src/Eigen2Support/VectorBlock.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigen2Support/VectorBlock.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigen2Support/VectorBlock.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigenvalues/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Eigenvalues/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/ComplexEigenSolver.h b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/ComplexEigenSolver.h
new file mode 100644
index 0000000..417c729
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/ComplexEigenSolver.h
@@ -0,0 +1,341 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Claire Maurice
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2010,2012 Jitse Niesen <jitse at maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX_EIGEN_SOLVER_H
+#define EIGEN_COMPLEX_EIGEN_SOLVER_H
+
+#include "./ComplexSchur.h"
+
+namespace Eigen { 
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class ComplexEigenSolver
+  *
+  * \brief Computes eigenvalues and eigenvectors of general complex matrices
+  *
+  * \tparam _MatrixType the type of the matrix of which we are
+  * computing the eigendecomposition; this is expected to be an
+  * instantiation of the Matrix class template.
+  *
+  * The eigenvalues and eigenvectors of a matrix \f$ A \f$ are scalars
+  * \f$ \lambda \f$ and vectors \f$ v \f$ such that \f$ Av = \lambda v
+  * \f$.  If \f$ D \f$ is a diagonal matrix with the eigenvalues on
+  * the diagonal, and \f$ V \f$ is a matrix with the eigenvectors as
+  * its columns, then \f$ A V = V D \f$. The matrix \f$ V \f$ is
+  * almost always invertible, in which case we have \f$ A = V D V^{-1}
+  * \f$. This is called the eigendecomposition.
+  *
+  * The main function in this class is compute(), which computes the
+  * eigenvalues and eigenvectors of a given function. The
+  * documentation for that function contains an example showing the
+  * main features of the class.
+  *
+  * \sa class EigenSolver, class SelfAdjointEigenSolver
+  */
+template<typename _MatrixType> class ComplexEigenSolver
+{
+  public:
+
+    /** \brief Synonym for the template parameter \p _MatrixType. */
+    typedef _MatrixType MatrixType;
+
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+
+    /** \brief Scalar type for matrices of type #MatrixType. */
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+
+    /** \brief Complex scalar type for #MatrixType.
+      *
+      * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
+      * \c float or \c double) and just \c Scalar if #Scalar is
+      * complex.
+      */
+    typedef std::complex<RealScalar> ComplexScalar;
+
+    /** \brief Type for vector of eigenvalues as returned by eigenvalues().
+      *
+      * This is a column vector with entries of type #ComplexScalar.
+      * The length of the vector is the size of #MatrixType.
+      */
+    typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options&(~RowMajor), MaxColsAtCompileTime, 1> EigenvalueType;
+
+    /** \brief Type for matrix of eigenvectors as returned by eigenvectors().
+      *
+      * This is a square matrix with entries of type #ComplexScalar.
+      * The size is the same as the size of #MatrixType.
+      */
+    typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> EigenvectorType;
+
+    /** \brief Default constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via compute().
+      */
+    ComplexEigenSolver()
+            : m_eivec(),
+              m_eivalues(),
+              m_schur(),
+              m_isInitialized(false),
+              m_eigenvectorsOk(false),
+              m_matX()
+    {}
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa ComplexEigenSolver()
+      */
+    ComplexEigenSolver(Index size)
+            : m_eivec(size, size),
+              m_eivalues(size),
+              m_schur(size),
+              m_isInitialized(false),
+              m_eigenvectorsOk(false),
+              m_matX(size, size)
+    {}
+
+    /** \brief Constructor; computes eigendecomposition of given matrix.
+      *
+      * \param[in]  matrix  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
+      *    eigenvalues are computed; if false, only the eigenvalues are
+      *    computed.
+      *
+      * This constructor calls compute() to compute the eigendecomposition.
+      */
+      ComplexEigenSolver(const MatrixType& matrix, bool computeEigenvectors = true)
+            : m_eivec(matrix.rows(),matrix.cols()),
+              m_eivalues(matrix.cols()),
+              m_schur(matrix.rows()),
+              m_isInitialized(false),
+              m_eigenvectorsOk(false),
+              m_matX(matrix.rows(),matrix.cols())
+    {
+      compute(matrix, computeEigenvectors);
+    }
+
+    /** \brief Returns the eigenvectors of given matrix.
+      *
+      * \returns  A const reference to the matrix whose columns are the eigenvectors.
+      *
+      * \pre Either the constructor
+      * ComplexEigenSolver(const MatrixType& matrix, bool) or the member
+      * function compute(const MatrixType& matrix, bool) has been called before
+      * to compute the eigendecomposition of a matrix, and
+      * \p computeEigenvectors was set to true (the default).
+      *
+      * This function returns a matrix whose columns are the eigenvectors. Column
+      * \f$ k \f$ is an eigenvector corresponding to eigenvalue number \f$ k
+      * \f$ as returned by eigenvalues().  The eigenvectors are normalized to
+      * have (Euclidean) norm equal to one. The matrix returned by this
+      * function is the matrix \f$ V \f$ in the eigendecomposition \f$ A = V D
+      * V^{-1} \f$, if it exists.
+      *
+      * Example: \include ComplexEigenSolver_eigenvectors.cpp
+      * Output: \verbinclude ComplexEigenSolver_eigenvectors.out
+      */
+    const EigenvectorType& eigenvectors() const
+    {
+      eigen_assert(m_isInitialized && "ComplexEigenSolver is not initialized.");
+      eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+      return m_eivec;
+    }
+
+    /** \brief Returns the eigenvalues of given matrix.
+      *
+      * \returns A const reference to the column vector containing the eigenvalues.
+      *
+      * \pre Either the constructor
+      * ComplexEigenSolver(const MatrixType& matrix, bool) or the member
+      * function compute(const MatrixType& matrix, bool) has been called before
+      * to compute the eigendecomposition of a matrix.
+      *
+      * This function returns a column vector containing the
+      * eigenvalues. Eigenvalues are repeated according to their
+      * algebraic multiplicity, so there are as many eigenvalues as
+      * rows in the matrix. The eigenvalues are not sorted in any particular
+      * order.
+      *
+      * Example: \include ComplexEigenSolver_eigenvalues.cpp
+      * Output: \verbinclude ComplexEigenSolver_eigenvalues.out
+      */
+    const EigenvalueType& eigenvalues() const
+    {
+      eigen_assert(m_isInitialized && "ComplexEigenSolver is not initialized.");
+      return m_eivalues;
+    }
+
+    /** \brief Computes eigendecomposition of given matrix.
+      *
+      * \param[in]  matrix  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
+      *    eigenvalues are computed; if false, only the eigenvalues are
+      *    computed.
+      * \returns    Reference to \c *this
+      *
+      * This function computes the eigenvalues of the complex matrix \p matrix.
+      * The eigenvalues() function can be used to retrieve them.  If
+      * \p computeEigenvectors is true, then the eigenvectors are also computed
+      * and can be retrieved by calling eigenvectors().
+      *
+      * The matrix is first reduced to Schur form using the
+      * ComplexSchur class. The Schur decomposition is then used to
+      * compute the eigenvalues and eigenvectors.
+      *
+      * The cost of the computation is dominated by the cost of the
+      * Schur decomposition, which is \f$ O(n^3) \f$ where \f$ n \f$
+      * is the size of the matrix.
+      *
+      * Example: \include ComplexEigenSolver_compute.cpp
+      * Output: \verbinclude ComplexEigenSolver_compute.out
+      */
+    ComplexEigenSolver& compute(const MatrixType& matrix, bool computeEigenvectors = true);
+
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "ComplexEigenSolver is not initialized.");
+      return m_schur.info();
+    }
+
+    /** \brief Sets the maximum number of iterations allowed. */
+    ComplexEigenSolver& setMaxIterations(Index maxIters)
+    {
+      m_schur.setMaxIterations(maxIters);
+      return *this;
+    }
+
+    /** \brief Returns the maximum number of iterations. */
+    Index getMaxIterations()
+    {
+      return m_schur.getMaxIterations();
+    }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    EigenvectorType m_eivec;
+    EigenvalueType m_eivalues;
+    ComplexSchur<MatrixType> m_schur;
+    bool m_isInitialized;
+    bool m_eigenvectorsOk;
+    EigenvectorType m_matX;
+
+  private:
+    void doComputeEigenvectors(const RealScalar& matrixnorm);
+    void sortEigenvalues(bool computeEigenvectors);
+};
+
+
+template<typename MatrixType>
+ComplexEigenSolver<MatrixType>& 
+ComplexEigenSolver<MatrixType>::compute(const MatrixType& matrix, bool computeEigenvectors)
+{
+  check_template_parameters();
+  
+  // this code is inspired from Jampack
+  eigen_assert(matrix.cols() == matrix.rows());
+
+  // Do a complex Schur decomposition, A = U T U^*
+  // The eigenvalues are on the diagonal of T.
+  m_schur.compute(matrix, computeEigenvectors);
+
+  if(m_schur.info() == Success)
+  {
+    m_eivalues = m_schur.matrixT().diagonal();
+    if(computeEigenvectors)
+      doComputeEigenvectors(matrix.norm());
+    sortEigenvalues(computeEigenvectors);
+  }
+
+  m_isInitialized = true;
+  m_eigenvectorsOk = computeEigenvectors;
+  return *this;
+}
+
+
+template<typename MatrixType>
+void ComplexEigenSolver<MatrixType>::doComputeEigenvectors(const RealScalar& matrixnorm)
+{
+  const Index n = m_eivalues.size();
+
+  // Compute X such that T = X D X^(-1), where D is the diagonal of T.
+  // The matrix X is unit triangular.
+  m_matX = EigenvectorType::Zero(n, n);
+  for(Index k=n-1 ; k>=0 ; k--)
+  {
+    m_matX.coeffRef(k,k) = ComplexScalar(1.0,0.0);
+    // Compute X(i,k) using the (i,k) entry of the equation X T = D X
+    for(Index i=k-1 ; i>=0 ; i--)
+    {
+      m_matX.coeffRef(i,k) = -m_schur.matrixT().coeff(i,k);
+      if(k-i-1>0)
+        m_matX.coeffRef(i,k) -= (m_schur.matrixT().row(i).segment(i+1,k-i-1) * m_matX.col(k).segment(i+1,k-i-1)).value();
+      ComplexScalar z = m_schur.matrixT().coeff(i,i) - m_schur.matrixT().coeff(k,k);
+      if(z==ComplexScalar(0))
+      {
+        // If the i-th and k-th eigenvalue are equal, then z equals 0.
+        // Use a small value instead, to prevent division by zero.
+        numext::real_ref(z) = NumTraits<RealScalar>::epsilon() * matrixnorm;
+      }
+      m_matX.coeffRef(i,k) = m_matX.coeff(i,k) / z;
+    }
+  }
+
+  // Compute V as V = U X; now A = U T U^* = U X D X^(-1) U^* = V D V^(-1)
+  m_eivec.noalias() = m_schur.matrixU() * m_matX;
+  // .. and normalize the eigenvectors
+  for(Index k=0 ; k<n ; k++)
+  {
+    m_eivec.col(k).normalize();
+  }
+}
+
+
+template<typename MatrixType>
+void ComplexEigenSolver<MatrixType>::sortEigenvalues(bool computeEigenvectors)
+{
+  const Index n =  m_eivalues.size();
+  for (Index i=0; i<n; i++)
+  {
+    Index k;
+    m_eivalues.cwiseAbs().tail(n-i).minCoeff(&k);
+    if (k != 0)
+    {
+      k += i;
+      std::swap(m_eivalues[k],m_eivalues[i]);
+      if(computeEigenvectors)
+	m_eivec.col(i).swap(m_eivec.col(k));
+    }
+  }
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_EIGEN_SOLVER_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/ComplexSchur.h b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/ComplexSchur.h
new file mode 100644
index 0000000..89e6cad
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/ComplexSchur.h
@@ -0,0 +1,456 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Claire Maurice
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2010,2012 Jitse Niesen <jitse at maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX_SCHUR_H
+#define EIGEN_COMPLEX_SCHUR_H
+
+#include "./HessenbergDecomposition.h"
+
+namespace Eigen { 
+
+namespace internal {
+template<typename MatrixType, bool IsComplex> struct complex_schur_reduce_to_hessenberg;
+}
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class ComplexSchur
+  *
+  * \brief Performs a complex Schur decomposition of a real or complex square matrix
+  *
+  * \tparam _MatrixType the type of the matrix of which we are
+  * computing the Schur decomposition; this is expected to be an
+  * instantiation of the Matrix class template.
+  *
+  * Given a real or complex square matrix A, this class computes the
+  * Schur decomposition: \f$ A = U T U^*\f$ where U is a unitary
+  * complex matrix, and T is a complex upper triangular matrix.  The
+  * diagonal of the matrix T corresponds to the eigenvalues of the
+  * matrix A.
+  *
+  * Call the function compute() to compute the Schur decomposition of
+  * a given matrix. Alternatively, you can use the 
+  * ComplexSchur(const MatrixType&, bool) constructor which computes
+  * the Schur decomposition at construction time. Once the
+  * decomposition is computed, you can use the matrixU() and matrixT()
+  * functions to retrieve the matrices U and V in the decomposition.
+  *
+  * \note This code is inspired from Jampack
+  *
+  * \sa class RealSchur, class EigenSolver, class ComplexEigenSolver
+  */
+template<typename _MatrixType> class ComplexSchur
+{
+  public:
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+
+    /** \brief Scalar type for matrices of type \p _MatrixType. */
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+
+    /** \brief Complex scalar type for \p _MatrixType. 
+      *
+      * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
+      * \c float or \c double) and just \c Scalar if #Scalar is
+      * complex.
+      */
+    typedef std::complex<RealScalar> ComplexScalar;
+
+    /** \brief Type for the matrices in the Schur decomposition.
+      *
+      * This is a square matrix with entries of type #ComplexScalar. 
+      * The size is the same as the size of \p _MatrixType.
+      */
+    typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> ComplexMatrixType;
+
+    /** \brief Default constructor.
+      *
+      * \param [in] size  Positive integer, size of the matrix whose Schur decomposition will be computed.
+      *
+      * The default constructor is useful in cases in which the user
+      * intends to perform decompositions via compute().  The \p size
+      * parameter is only used as a hint. It is not an error to give a
+      * wrong \p size, but it may impair performance.
+      *
+      * \sa compute() for an example.
+      */
+    ComplexSchur(Index size = RowsAtCompileTime==Dynamic ? 1 : RowsAtCompileTime)
+      : m_matT(size,size),
+        m_matU(size,size),
+        m_hess(size),
+        m_isInitialized(false),
+        m_matUisUptodate(false),
+        m_maxIters(-1)
+    {}
+
+    /** \brief Constructor; computes Schur decomposition of given matrix. 
+      * 
+      * \param[in]  matrix    Square matrix whose Schur decomposition is to be computed.
+      * \param[in]  computeU  If true, both T and U are computed; if false, only T is computed.
+      *
+      * This constructor calls compute() to compute the Schur decomposition.
+      *
+      * \sa matrixT() and matrixU() for examples.
+      */
+    ComplexSchur(const MatrixType& matrix, bool computeU = true)
+      : m_matT(matrix.rows(),matrix.cols()),
+        m_matU(matrix.rows(),matrix.cols()),
+        m_hess(matrix.rows()),
+        m_isInitialized(false),
+        m_matUisUptodate(false),
+        m_maxIters(-1)
+    {
+      compute(matrix, computeU);
+    }
+
+    /** \brief Returns the unitary matrix in the Schur decomposition. 
+      *
+      * \returns A const reference to the matrix U.
+      *
+      * It is assumed that either the constructor
+      * ComplexSchur(const MatrixType& matrix, bool computeU) or the
+      * member function compute(const MatrixType& matrix, bool computeU)
+      * has been called before to compute the Schur decomposition of a
+      * matrix, and that \p computeU was set to true (the default
+      * value).
+      *
+      * Example: \include ComplexSchur_matrixU.cpp
+      * Output: \verbinclude ComplexSchur_matrixU.out
+      */
+    const ComplexMatrixType& matrixU() const
+    {
+      eigen_assert(m_isInitialized && "ComplexSchur is not initialized.");
+      eigen_assert(m_matUisUptodate && "The matrix U has not been computed during the ComplexSchur decomposition.");
+      return m_matU;
+    }
+
+    /** \brief Returns the triangular matrix in the Schur decomposition. 
+      *
+      * \returns A const reference to the matrix T.
+      *
+      * It is assumed that either the constructor
+      * ComplexSchur(const MatrixType& matrix, bool computeU) or the
+      * member function compute(const MatrixType& matrix, bool computeU)
+      * has been called before to compute the Schur decomposition of a
+      * matrix.
+      *
+      * Note that this function returns a plain square matrix. If you want to reference
+      * only the upper triangular part, use:
+      * \code schur.matrixT().triangularView<Upper>() \endcode 
+      *
+      * Example: \include ComplexSchur_matrixT.cpp
+      * Output: \verbinclude ComplexSchur_matrixT.out
+      */
+    const ComplexMatrixType& matrixT() const
+    {
+      eigen_assert(m_isInitialized && "ComplexSchur is not initialized.");
+      return m_matT;
+    }
+
+    /** \brief Computes Schur decomposition of given matrix. 
+      * 
+      * \param[in]  matrix  Square matrix whose Schur decomposition is to be computed.
+      * \param[in]  computeU  If true, both T and U are computed; if false, only T is computed.
+
+      * \returns    Reference to \c *this
+      *
+      * The Schur decomposition is computed by first reducing the
+      * matrix to Hessenberg form using the class
+      * HessenbergDecomposition. The Hessenberg matrix is then reduced
+      * to triangular form by performing QR iterations with a single
+      * shift. The cost of computing the Schur decomposition depends
+      * on the number of iterations; as a rough guide, it may be taken
+      * on the number of iterations; as a rough guide, it may be taken
+      * to be \f$25n^3\f$ complex flops, or \f$10n^3\f$ complex flops
+      * if \a computeU is false.
+      *
+      * Example: \include ComplexSchur_compute.cpp
+      * Output: \verbinclude ComplexSchur_compute.out
+      *
+      * \sa compute(const MatrixType&, bool, Index)
+      */
+    ComplexSchur& compute(const MatrixType& matrix, bool computeU = true);
+    
+    /** \brief Compute Schur decomposition from a given Hessenberg matrix
+     *  \param[in] matrixH Matrix in Hessenberg form H
+     *  \param[in] matrixQ orthogonal matrix Q that transform a matrix A to H : A = Q H Q^T
+     *  \param computeU Computes the matriX U of the Schur vectors
+     * \return Reference to \c *this
+     * 
+     *  This routine assumes that the matrix is already reduced in Hessenberg form matrixH
+     *  using either the class HessenbergDecomposition or another mean. 
+     *  It computes the upper quasi-triangular matrix T of the Schur decomposition of H
+     *  When computeU is true, this routine computes the matrix U such that 
+     *  A = U T U^T =  (QZ) T (QZ)^T = Q H Q^T where A is the initial matrix
+     * 
+     * NOTE Q is referenced if computeU is true; so, if the initial orthogonal matrix
+     * is not available, the user should give an identity matrix (Q.setIdentity())
+     * 
+     * \sa compute(const MatrixType&, bool)
+     */
+    template<typename HessMatrixType, typename OrthMatrixType>
+    ComplexSchur& computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ,  bool computeU=true);
+
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "ComplexSchur is not initialized.");
+      return m_info;
+    }
+
+    /** \brief Sets the maximum number of iterations allowed. 
+      *
+      * If not specified by the user, the maximum number of iterations is m_maxIterationsPerRow times the size
+      * of the matrix.
+      */
+    ComplexSchur& setMaxIterations(Index maxIters)
+    {
+      m_maxIters = maxIters;
+      return *this;
+    }
+
+    /** \brief Returns the maximum number of iterations. */
+    Index getMaxIterations()
+    {
+      return m_maxIters;
+    }
+
+    /** \brief Maximum number of iterations per row.
+      *
+      * If not otherwise specified, the maximum number of iterations is this number times the size of the
+      * matrix. It is currently set to 30.
+      */
+    static const int m_maxIterationsPerRow = 30;
+
+  protected:
+    ComplexMatrixType m_matT, m_matU;
+    HessenbergDecomposition<MatrixType> m_hess;
+    ComputationInfo m_info;
+    bool m_isInitialized;
+    bool m_matUisUptodate;
+    Index m_maxIters;
+
+  private:  
+    bool subdiagonalEntryIsNeglegible(Index i);
+    ComplexScalar computeShift(Index iu, Index iter);
+    void reduceToTriangularForm(bool computeU);
+    friend struct internal::complex_schur_reduce_to_hessenberg<MatrixType, NumTraits<Scalar>::IsComplex>;
+};
+
+/** If m_matT(i+1,i) is neglegible in floating point arithmetic
+  * compared to m_matT(i,i) and m_matT(j,j), then set it to zero and
+  * return true, else return false. */
+template<typename MatrixType>
+inline bool ComplexSchur<MatrixType>::subdiagonalEntryIsNeglegible(Index i)
+{
+  RealScalar d = numext::norm1(m_matT.coeff(i,i)) + numext::norm1(m_matT.coeff(i+1,i+1));
+  RealScalar sd = numext::norm1(m_matT.coeff(i+1,i));
+  if (internal::isMuchSmallerThan(sd, d, NumTraits<RealScalar>::epsilon()))
+  {
+    m_matT.coeffRef(i+1,i) = ComplexScalar(0);
+    return true;
+  }
+  return false;
+}
+
+
+/** Compute the shift in the current QR iteration. */
+template<typename MatrixType>
+typename ComplexSchur<MatrixType>::ComplexScalar ComplexSchur<MatrixType>::computeShift(Index iu, Index iter)
+{
+  using std::abs;
+  if (iter == 10 || iter == 20) 
+  {
+    // exceptional shift, taken from http://www.netlib.org/eispack/comqr.f
+    return abs(numext::real(m_matT.coeff(iu,iu-1))) + abs(numext::real(m_matT.coeff(iu-1,iu-2)));
+  }
+
+  // compute the shift as one of the eigenvalues of t, the 2x2
+  // diagonal block on the bottom of the active submatrix
+  Matrix<ComplexScalar,2,2> t = m_matT.template block<2,2>(iu-1,iu-1);
+  RealScalar normt = t.cwiseAbs().sum();
+  t /= normt;     // the normalization by sf is to avoid under/overflow
+
+  ComplexScalar b = t.coeff(0,1) * t.coeff(1,0);
+  ComplexScalar c = t.coeff(0,0) - t.coeff(1,1);
+  ComplexScalar disc = sqrt(c*c + RealScalar(4)*b);
+  ComplexScalar det = t.coeff(0,0) * t.coeff(1,1) - b;
+  ComplexScalar trace = t.coeff(0,0) + t.coeff(1,1);
+  ComplexScalar eival1 = (trace + disc) / RealScalar(2);
+  ComplexScalar eival2 = (trace - disc) / RealScalar(2);
+
+  if(numext::norm1(eival1) > numext::norm1(eival2))
+    eival2 = det / eival1;
+  else
+    eival1 = det / eival2;
+
+  // choose the eigenvalue closest to the bottom entry of the diagonal
+  if(numext::norm1(eival1-t.coeff(1,1)) < numext::norm1(eival2-t.coeff(1,1)))
+    return normt * eival1;
+  else
+    return normt * eival2;
+}
+
+
+template<typename MatrixType>
+ComplexSchur<MatrixType>& ComplexSchur<MatrixType>::compute(const MatrixType& matrix, bool computeU)
+{
+  m_matUisUptodate = false;
+  eigen_assert(matrix.cols() == matrix.rows());
+
+  if(matrix.cols() == 1)
+  {
+    m_matT = matrix.template cast<ComplexScalar>();
+    if(computeU)  m_matU = ComplexMatrixType::Identity(1,1);
+    m_info = Success;
+    m_isInitialized = true;
+    m_matUisUptodate = computeU;
+    return *this;
+  }
+
+  internal::complex_schur_reduce_to_hessenberg<MatrixType, NumTraits<Scalar>::IsComplex>::run(*this, matrix, computeU);
+  computeFromHessenberg(m_matT, m_matU, computeU);
+  return *this;
+}
+
+template<typename MatrixType>
+template<typename HessMatrixType, typename OrthMatrixType>
+ComplexSchur<MatrixType>& ComplexSchur<MatrixType>::computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ, bool computeU)
+{
+  m_matT = matrixH;
+  if(computeU)
+    m_matU = matrixQ;
+  reduceToTriangularForm(computeU);
+  return *this;
+}
+namespace internal {
+
+/* Reduce given matrix to Hessenberg form */
+template<typename MatrixType, bool IsComplex>
+struct complex_schur_reduce_to_hessenberg
+{
+  // this is the implementation for the case IsComplex = true
+  static void run(ComplexSchur<MatrixType>& _this, const MatrixType& matrix, bool computeU)
+  {
+    _this.m_hess.compute(matrix);
+    _this.m_matT = _this.m_hess.matrixH();
+    if(computeU)  _this.m_matU = _this.m_hess.matrixQ();
+  }
+};
+
+template<typename MatrixType>
+struct complex_schur_reduce_to_hessenberg<MatrixType, false>
+{
+  static void run(ComplexSchur<MatrixType>& _this, const MatrixType& matrix, bool computeU)
+  {
+    typedef typename ComplexSchur<MatrixType>::ComplexScalar ComplexScalar;
+
+    // Note: m_hess is over RealScalar; m_matT and m_matU is over ComplexScalar
+    _this.m_hess.compute(matrix);
+    _this.m_matT = _this.m_hess.matrixH().template cast<ComplexScalar>();
+    if(computeU)  
+    {
+      // This may cause an allocation which seems to be avoidable
+      MatrixType Q = _this.m_hess.matrixQ(); 
+      _this.m_matU = Q.template cast<ComplexScalar>();
+    }
+  }
+};
+
+} // end namespace internal
+
+// Reduce the Hessenberg matrix m_matT to triangular form by QR iteration.
+template<typename MatrixType>
+void ComplexSchur<MatrixType>::reduceToTriangularForm(bool computeU)
+{  
+  Index maxIters = m_maxIters;
+  if (maxIters == -1)
+    maxIters = m_maxIterationsPerRow * m_matT.rows();
+
+  // The matrix m_matT is divided in three parts. 
+  // Rows 0,...,il-1 are decoupled from the rest because m_matT(il,il-1) is zero. 
+  // Rows il,...,iu is the part we are working on (the active submatrix).
+  // Rows iu+1,...,end are already brought in triangular form.
+  Index iu = m_matT.cols() - 1;
+  Index il;
+  Index iter = 0; // number of iterations we are working on the (iu,iu) element
+  Index totalIter = 0; // number of iterations for whole matrix
+
+  while(true)
+  {
+    // find iu, the bottom row of the active submatrix
+    while(iu > 0)
+    {
+      if(!subdiagonalEntryIsNeglegible(iu-1)) break;
+      iter = 0;
+      --iu;
+    }
+
+    // if iu is zero then we are done; the whole matrix is triangularized
+    if(iu==0) break;
+
+    // if we spent too many iterations, we give up
+    iter++;
+    totalIter++;
+    if(totalIter > maxIters) break;
+
+    // find il, the top row of the active submatrix
+    il = iu-1;
+    while(il > 0 && !subdiagonalEntryIsNeglegible(il-1))
+    {
+      --il;
+    }
+
+    /* perform the QR step using Givens rotations. The first rotation
+       creates a bulge; the (il+2,il) element becomes nonzero. This
+       bulge is chased down to the bottom of the active submatrix. */
+
+    ComplexScalar shift = computeShift(iu, iter);
+    JacobiRotation<ComplexScalar> rot;
+    rot.makeGivens(m_matT.coeff(il,il) - shift, m_matT.coeff(il+1,il));
+    m_matT.rightCols(m_matT.cols()-il).applyOnTheLeft(il, il+1, rot.adjoint());
+    m_matT.topRows((std::min)(il+2,iu)+1).applyOnTheRight(il, il+1, rot);
+    if(computeU) m_matU.applyOnTheRight(il, il+1, rot);
+
+    for(Index i=il+1 ; i<iu ; i++)
+    {
+      rot.makeGivens(m_matT.coeffRef(i,i-1), m_matT.coeffRef(i+1,i-1), &m_matT.coeffRef(i,i-1));
+      m_matT.coeffRef(i+1,i-1) = ComplexScalar(0);
+      m_matT.rightCols(m_matT.cols()-i).applyOnTheLeft(i, i+1, rot.adjoint());
+      m_matT.topRows((std::min)(i+2,iu)+1).applyOnTheRight(i, i+1, rot);
+      if(computeU) m_matU.applyOnTheRight(i, i+1, rot);
+    }
+  }
+
+  if(totalIter <= maxIters)
+    m_info = Success;
+  else
+    m_info = NoConvergence;
+
+  m_isInitialized = true;
+  m_matUisUptodate = computeU;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_SCHUR_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/ComplexSchur_MKL.h b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/ComplexSchur_MKL.h
new file mode 100644
index 0000000..27aed92
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/ComplexSchur_MKL.h
@@ -0,0 +1,93 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *    Complex Schur needed to complex unsymmetrical eigenvalues/eigenvectors.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_COMPLEX_SCHUR_MKL_H
+#define EIGEN_COMPLEX_SCHUR_MKL_H
+
+#include "Eigen/src/Core/util/MKL_support.h"
+
+namespace Eigen { 
+
+/** \internal Specialization for the data types supported by MKL */
+
+#define EIGEN_MKL_SCHUR_COMPLEX(EIGTYPE, MKLTYPE, MKLPREFIX, MKLPREFIX_U, EIGCOLROW, MKLCOLROW) \
+template<> inline \
+ComplexSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >& \
+ComplexSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >::compute(const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW>& matrix, bool computeU) \
+{ \
+  typedef Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> MatrixType; \
+  typedef MatrixType::RealScalar RealScalar; \
+  typedef std::complex<RealScalar> ComplexScalar; \
+\
+  eigen_assert(matrix.cols() == matrix.rows()); \
+\
+  m_matUisUptodate = false; \
+  if(matrix.cols() == 1) \
+  { \
+    m_matT = matrix.cast<ComplexScalar>(); \
+    if(computeU)  m_matU = ComplexMatrixType::Identity(1,1); \
+      m_info = Success; \
+      m_isInitialized = true; \
+      m_matUisUptodate = computeU; \
+      return *this; \
+  } \
+  lapack_int n = matrix.cols(), sdim, info; \
+  lapack_int lda = matrix.outerStride(); \
+  lapack_int matrix_order = MKLCOLROW; \
+  char jobvs, sort='N'; \
+  LAPACK_##MKLPREFIX_U##_SELECT1 select = 0; \
+  jobvs = (computeU) ? 'V' : 'N'; \
+  m_matU.resize(n, n); \
+  lapack_int ldvs  = m_matU.outerStride(); \
+  m_matT = matrix; \
+  Matrix<EIGTYPE, Dynamic, Dynamic> w; \
+  w.resize(n, 1);\
+  info = LAPACKE_##MKLPREFIX##gees( matrix_order, jobvs, sort, select, n, (MKLTYPE*)m_matT.data(), lda, &sdim, (MKLTYPE*)w.data(), (MKLTYPE*)m_matU.data(), ldvs ); \
+  if(info == 0) \
+    m_info = Success; \
+  else \
+    m_info = NoConvergence; \
+\
+  m_isInitialized = true; \
+  m_matUisUptodate = computeU; \
+  return *this; \
+\
+}
+
+EIGEN_MKL_SCHUR_COMPLEX(dcomplex, MKL_Complex16, z, Z, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_SCHUR_COMPLEX(scomplex, MKL_Complex8,  c, C, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_SCHUR_COMPLEX(dcomplex, MKL_Complex16, z, Z, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_SCHUR_COMPLEX(scomplex, MKL_Complex8,  c, C, RowMajor, LAPACK_ROW_MAJOR)
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_SCHUR_MKL_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/EigenSolver.h b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/EigenSolver.h
new file mode 100644
index 0000000..20c59a7
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/EigenSolver.h
@@ -0,0 +1,607 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2010,2012 Jitse Niesen <jitse at maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_EIGENSOLVER_H
+#define EIGEN_EIGENSOLVER_H
+
+#include "./RealSchur.h"
+
+namespace Eigen { 
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class EigenSolver
+  *
+  * \brief Computes eigenvalues and eigenvectors of general matrices
+  *
+  * \tparam _MatrixType the type of the matrix of which we are computing the
+  * eigendecomposition; this is expected to be an instantiation of the Matrix
+  * class template. Currently, only real matrices are supported.
+  *
+  * The eigenvalues and eigenvectors of a matrix \f$ A \f$ are scalars
+  * \f$ \lambda \f$ and vectors \f$ v \f$ such that \f$ Av = \lambda v \f$.  If
+  * \f$ D \f$ is a diagonal matrix with the eigenvalues on the diagonal, and
+  * \f$ V \f$ is a matrix with the eigenvectors as its columns, then \f$ A V =
+  * V D \f$. The matrix \f$ V \f$ is almost always invertible, in which case we
+  * have \f$ A = V D V^{-1} \f$. This is called the eigendecomposition.
+  *
+  * The eigenvalues and eigenvectors of a matrix may be complex, even when the
+  * matrix is real. However, we can choose real matrices \f$ V \f$ and \f$ D
+  * \f$ satisfying \f$ A V = V D \f$, just like the eigendecomposition, if the
+  * matrix \f$ D \f$ is not required to be diagonal, but if it is allowed to
+  * have blocks of the form
+  * \f[ \begin{bmatrix} u & v \\ -v & u \end{bmatrix} \f]
+  * (where \f$ u \f$ and \f$ v \f$ are real numbers) on the diagonal.  These
+  * blocks correspond to complex eigenvalue pairs \f$ u \pm iv \f$. We call
+  * this variant of the eigendecomposition the pseudo-eigendecomposition.
+  *
+  * Call the function compute() to compute the eigenvalues and eigenvectors of
+  * a given matrix. Alternatively, you can use the 
+  * EigenSolver(const MatrixType&, bool) constructor which computes the
+  * eigenvalues and eigenvectors at construction time. Once the eigenvalue and
+  * eigenvectors are computed, they can be retrieved with the eigenvalues() and
+  * eigenvectors() functions. The pseudoEigenvalueMatrix() and
+  * pseudoEigenvectors() methods allow the construction of the
+  * pseudo-eigendecomposition.
+  *
+  * The documentation for EigenSolver(const MatrixType&, bool) contains an
+  * example of the typical use of this class.
+  *
+  * \note The implementation is adapted from
+  * <a href="http://math.nist.gov/javanumerics/jama/">JAMA</a> (public domain).
+  * Their code is based on EISPACK.
+  *
+  * \sa MatrixBase::eigenvalues(), class ComplexEigenSolver, class SelfAdjointEigenSolver
+  */
+template<typename _MatrixType> class EigenSolver
+{
+  public:
+
+    /** \brief Synonym for the template parameter \p _MatrixType. */
+    typedef _MatrixType MatrixType;
+
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+
+    /** \brief Scalar type for matrices of type #MatrixType. */
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+
+    /** \brief Complex scalar type for #MatrixType. 
+      *
+      * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
+      * \c float or \c double) and just \c Scalar if #Scalar is
+      * complex.
+      */
+    typedef std::complex<RealScalar> ComplexScalar;
+
+    /** \brief Type for vector of eigenvalues as returned by eigenvalues(). 
+      *
+      * This is a column vector with entries of type #ComplexScalar.
+      * The length of the vector is the size of #MatrixType.
+      */
+    typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> EigenvalueType;
+
+    /** \brief Type for matrix of eigenvectors as returned by eigenvectors(). 
+      *
+      * This is a square matrix with entries of type #ComplexScalar. 
+      * The size is the same as the size of #MatrixType.
+      */
+    typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> EigenvectorsType;
+
+    /** \brief Default constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via EigenSolver::compute(const MatrixType&, bool).
+      *
+      * \sa compute() for an example.
+      */
+ EigenSolver() : m_eivec(), m_eivalues(), m_isInitialized(false), m_realSchur(), m_matT(), m_tmp() {}
+
+    /** \brief Default constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa EigenSolver()
+      */
+    EigenSolver(Index size)
+      : m_eivec(size, size),
+        m_eivalues(size),
+        m_isInitialized(false),
+        m_eigenvectorsOk(false),
+        m_realSchur(size),
+        m_matT(size, size), 
+        m_tmp(size)
+    {}
+
+    /** \brief Constructor; computes eigendecomposition of given matrix. 
+      * 
+      * \param[in]  matrix  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
+      *    eigenvalues are computed; if false, only the eigenvalues are
+      *    computed. 
+      *
+      * This constructor calls compute() to compute the eigenvalues
+      * and eigenvectors.
+      *
+      * Example: \include EigenSolver_EigenSolver_MatrixType.cpp
+      * Output: \verbinclude EigenSolver_EigenSolver_MatrixType.out
+      *
+      * \sa compute()
+      */
+    EigenSolver(const MatrixType& matrix, bool computeEigenvectors = true)
+      : m_eivec(matrix.rows(), matrix.cols()),
+        m_eivalues(matrix.cols()),
+        m_isInitialized(false),
+        m_eigenvectorsOk(false),
+        m_realSchur(matrix.cols()),
+        m_matT(matrix.rows(), matrix.cols()), 
+        m_tmp(matrix.cols())
+    {
+      compute(matrix, computeEigenvectors);
+    }
+
+    /** \brief Returns the eigenvectors of given matrix. 
+      *
+      * \returns  %Matrix whose columns are the (possibly complex) eigenvectors.
+      *
+      * \pre Either the constructor 
+      * EigenSolver(const MatrixType&,bool) or the member function
+      * compute(const MatrixType&, bool) has been called before, and
+      * \p computeEigenvectors was set to true (the default).
+      *
+      * Column \f$ k \f$ of the returned matrix is an eigenvector corresponding
+      * to eigenvalue number \f$ k \f$ as returned by eigenvalues().  The
+      * eigenvectors are normalized to have (Euclidean) norm equal to one. The
+      * matrix returned by this function is the matrix \f$ V \f$ in the
+      * eigendecomposition \f$ A = V D V^{-1} \f$, if it exists.
+      *
+      * Example: \include EigenSolver_eigenvectors.cpp
+      * Output: \verbinclude EigenSolver_eigenvectors.out
+      *
+      * \sa eigenvalues(), pseudoEigenvectors()
+      */
+    EigenvectorsType eigenvectors() const;
+
+    /** \brief Returns the pseudo-eigenvectors of given matrix. 
+      *
+      * \returns  Const reference to matrix whose columns are the pseudo-eigenvectors.
+      *
+      * \pre Either the constructor 
+      * EigenSolver(const MatrixType&,bool) or the member function
+      * compute(const MatrixType&, bool) has been called before, and
+      * \p computeEigenvectors was set to true (the default).
+      *
+      * The real matrix \f$ V \f$ returned by this function and the
+      * block-diagonal matrix \f$ D \f$ returned by pseudoEigenvalueMatrix()
+      * satisfy \f$ AV = VD \f$.
+      *
+      * Example: \include EigenSolver_pseudoEigenvectors.cpp
+      * Output: \verbinclude EigenSolver_pseudoEigenvectors.out
+      *
+      * \sa pseudoEigenvalueMatrix(), eigenvectors()
+      */
+    const MatrixType& pseudoEigenvectors() const
+    {
+      eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+      eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+      return m_eivec;
+    }
+
+    /** \brief Returns the block-diagonal matrix in the pseudo-eigendecomposition.
+      *
+      * \returns  A block-diagonal matrix.
+      *
+      * \pre Either the constructor 
+      * EigenSolver(const MatrixType&,bool) or the member function
+      * compute(const MatrixType&, bool) has been called before.
+      *
+      * The matrix \f$ D \f$ returned by this function is real and
+      * block-diagonal. The blocks on the diagonal are either 1-by-1 or 2-by-2
+      * blocks of the form
+      * \f$ \begin{bmatrix} u & v \\ -v & u \end{bmatrix} \f$.
+      * These blocks are not sorted in any particular order.
+      * The matrix \f$ D \f$ and the matrix \f$ V \f$ returned by
+      * pseudoEigenvectors() satisfy \f$ AV = VD \f$.
+      *
+      * \sa pseudoEigenvectors() for an example, eigenvalues()
+      */
+    MatrixType pseudoEigenvalueMatrix() const;
+
+    /** \brief Returns the eigenvalues of given matrix. 
+      *
+      * \returns A const reference to the column vector containing the eigenvalues.
+      *
+      * \pre Either the constructor 
+      * EigenSolver(const MatrixType&,bool) or the member function
+      * compute(const MatrixType&, bool) has been called before.
+      *
+      * The eigenvalues are repeated according to their algebraic multiplicity,
+      * so there are as many eigenvalues as rows in the matrix. The eigenvalues 
+      * are not sorted in any particular order.
+      *
+      * Example: \include EigenSolver_eigenvalues.cpp
+      * Output: \verbinclude EigenSolver_eigenvalues.out
+      *
+      * \sa eigenvectors(), pseudoEigenvalueMatrix(),
+      *     MatrixBase::eigenvalues()
+      */
+    const EigenvalueType& eigenvalues() const
+    {
+      eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+      return m_eivalues;
+    }
+
+    /** \brief Computes eigendecomposition of given matrix. 
+      * 
+      * \param[in]  matrix  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
+      *    eigenvalues are computed; if false, only the eigenvalues are
+      *    computed. 
+      * \returns    Reference to \c *this
+      *
+      * This function computes the eigenvalues of the real matrix \p matrix.
+      * The eigenvalues() function can be used to retrieve them.  If 
+      * \p computeEigenvectors is true, then the eigenvectors are also computed
+      * and can be retrieved by calling eigenvectors().
+      *
+      * The matrix is first reduced to real Schur form using the RealSchur
+      * class. The Schur decomposition is then used to compute the eigenvalues
+      * and eigenvectors.
+      *
+      * The cost of the computation is dominated by the cost of the
+      * Schur decomposition, which is very approximately \f$ 25n^3 \f$
+      * (where \f$ n \f$ is the size of the matrix) if \p computeEigenvectors 
+      * is true, and \f$ 10n^3 \f$ if \p computeEigenvectors is false.
+      *
+      * This method reuses of the allocated data in the EigenSolver object.
+      *
+      * Example: \include EigenSolver_compute.cpp
+      * Output: \verbinclude EigenSolver_compute.out
+      */
+    EigenSolver& compute(const MatrixType& matrix, bool computeEigenvectors = true);
+
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+      return m_realSchur.info();
+    }
+
+    /** \brief Sets the maximum number of iterations allowed. */
+    EigenSolver& setMaxIterations(Index maxIters)
+    {
+      m_realSchur.setMaxIterations(maxIters);
+      return *this;
+    }
+
+    /** \brief Returns the maximum number of iterations. */
+    Index getMaxIterations()
+    {
+      return m_realSchur.getMaxIterations();
+    }
+
+  private:
+    void doComputeEigenvectors();
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+      EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL);
+    }
+    
+    MatrixType m_eivec;
+    EigenvalueType m_eivalues;
+    bool m_isInitialized;
+    bool m_eigenvectorsOk;
+    RealSchur<MatrixType> m_realSchur;
+    MatrixType m_matT;
+
+    typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ColumnVectorType;
+    ColumnVectorType m_tmp;
+};
+
+template<typename MatrixType>
+MatrixType EigenSolver<MatrixType>::pseudoEigenvalueMatrix() const
+{
+  eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+  Index n = m_eivalues.rows();
+  MatrixType matD = MatrixType::Zero(n,n);
+  for (Index i=0; i<n; ++i)
+  {
+    if (internal::isMuchSmallerThan(numext::imag(m_eivalues.coeff(i)), numext::real(m_eivalues.coeff(i))))
+      matD.coeffRef(i,i) = numext::real(m_eivalues.coeff(i));
+    else
+    {
+      matD.template block<2,2>(i,i) <<  numext::real(m_eivalues.coeff(i)), numext::imag(m_eivalues.coeff(i)),
+                                       -numext::imag(m_eivalues.coeff(i)), numext::real(m_eivalues.coeff(i));
+      ++i;
+    }
+  }
+  return matD;
+}
+
+template<typename MatrixType>
+typename EigenSolver<MatrixType>::EigenvectorsType EigenSolver<MatrixType>::eigenvectors() const
+{
+  eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+  eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+  Index n = m_eivec.cols();
+  EigenvectorsType matV(n,n);
+  for (Index j=0; j<n; ++j)
+  {
+    if (internal::isMuchSmallerThan(numext::imag(m_eivalues.coeff(j)), numext::real(m_eivalues.coeff(j))) || j+1==n)
+    {
+      // we have a real eigen value
+      matV.col(j) = m_eivec.col(j).template cast<ComplexScalar>();
+      matV.col(j).normalize();
+    }
+    else
+    {
+      // we have a pair of complex eigen values
+      for (Index i=0; i<n; ++i)
+      {
+        matV.coeffRef(i,j)   = ComplexScalar(m_eivec.coeff(i,j),  m_eivec.coeff(i,j+1));
+        matV.coeffRef(i,j+1) = ComplexScalar(m_eivec.coeff(i,j), -m_eivec.coeff(i,j+1));
+      }
+      matV.col(j).normalize();
+      matV.col(j+1).normalize();
+      ++j;
+    }
+  }
+  return matV;
+}
+
+template<typename MatrixType>
+EigenSolver<MatrixType>& 
+EigenSolver<MatrixType>::compute(const MatrixType& matrix, bool computeEigenvectors)
+{
+  check_template_parameters();
+  
+  using std::sqrt;
+  using std::abs;
+  eigen_assert(matrix.cols() == matrix.rows());
+
+  // Reduce to real Schur form.
+  m_realSchur.compute(matrix, computeEigenvectors);
+
+  if (m_realSchur.info() == Success)
+  {
+    m_matT = m_realSchur.matrixT();
+    if (computeEigenvectors)
+      m_eivec = m_realSchur.matrixU();
+  
+    // Compute eigenvalues from matT
+    m_eivalues.resize(matrix.cols());
+    Index i = 0;
+    while (i < matrix.cols()) 
+    {
+      if (i == matrix.cols() - 1 || m_matT.coeff(i+1, i) == Scalar(0)) 
+      {
+        m_eivalues.coeffRef(i) = m_matT.coeff(i, i);
+        ++i;
+      }
+      else
+      {
+        Scalar p = Scalar(0.5) * (m_matT.coeff(i, i) - m_matT.coeff(i+1, i+1));
+        Scalar z = sqrt(abs(p * p + m_matT.coeff(i+1, i) * m_matT.coeff(i, i+1)));
+        m_eivalues.coeffRef(i)   = ComplexScalar(m_matT.coeff(i+1, i+1) + p, z);
+        m_eivalues.coeffRef(i+1) = ComplexScalar(m_matT.coeff(i+1, i+1) + p, -z);
+        i += 2;
+      }
+    }
+    
+    // Compute eigenvectors.
+    if (computeEigenvectors)
+      doComputeEigenvectors();
+  }
+
+  m_isInitialized = true;
+  m_eigenvectorsOk = computeEigenvectors;
+
+  return *this;
+}
+
+// Complex scalar division.
+template<typename Scalar>
+std::complex<Scalar> cdiv(const Scalar& xr, const Scalar& xi, const Scalar& yr, const Scalar& yi)
+{
+  using std::abs;
+  Scalar r,d;
+  if (abs(yr) > abs(yi))
+  {
+      r = yi/yr;
+      d = yr + r*yi;
+      return std::complex<Scalar>((xr + r*xi)/d, (xi - r*xr)/d);
+  }
+  else
+  {
+      r = yr/yi;
+      d = yi + r*yr;
+      return std::complex<Scalar>((r*xr + xi)/d, (r*xi - xr)/d);
+  }
+}
+
+
+template<typename MatrixType>
+void EigenSolver<MatrixType>::doComputeEigenvectors()
+{
+  using std::abs;
+  const Index size = m_eivec.cols();
+  const Scalar eps = NumTraits<Scalar>::epsilon();
+
+  // inefficient! this is already computed in RealSchur
+  Scalar norm(0);
+  for (Index j = 0; j < size; ++j)
+  {
+    norm += m_matT.row(j).segment((std::max)(j-1,Index(0)), size-(std::max)(j-1,Index(0))).cwiseAbs().sum();
+  }
+  
+  // Backsubstitute to find vectors of upper triangular form
+  if (norm == 0.0)
+  {
+    return;
+  }
+
+  for (Index n = size-1; n >= 0; n--)
+  {
+    Scalar p = m_eivalues.coeff(n).real();
+    Scalar q = m_eivalues.coeff(n).imag();
+
+    // Scalar vector
+    if (q == Scalar(0))
+    {
+      Scalar lastr(0), lastw(0);
+      Index l = n;
+
+      m_matT.coeffRef(n,n) = 1.0;
+      for (Index i = n-1; i >= 0; i--)
+      {
+        Scalar w = m_matT.coeff(i,i) - p;
+        Scalar r = m_matT.row(i).segment(l,n-l+1).dot(m_matT.col(n).segment(l, n-l+1));
+
+        if (m_eivalues.coeff(i).imag() < 0.0)
+        {
+          lastw = w;
+          lastr = r;
+        }
+        else
+        {
+          l = i;
+          if (m_eivalues.coeff(i).imag() == 0.0)
+          {
+            if (w != 0.0)
+              m_matT.coeffRef(i,n) = -r / w;
+            else
+              m_matT.coeffRef(i,n) = -r / (eps * norm);
+          }
+          else // Solve real equations
+          {
+            Scalar x = m_matT.coeff(i,i+1);
+            Scalar y = m_matT.coeff(i+1,i);
+            Scalar denom = (m_eivalues.coeff(i).real() - p) * (m_eivalues.coeff(i).real() - p) + m_eivalues.coeff(i).imag() * m_eivalues.coeff(i).imag();
+            Scalar t = (x * lastr - lastw * r) / denom;
+            m_matT.coeffRef(i,n) = t;
+            if (abs(x) > abs(lastw))
+              m_matT.coeffRef(i+1,n) = (-r - w * t) / x;
+            else
+              m_matT.coeffRef(i+1,n) = (-lastr - y * t) / lastw;
+          }
+
+          // Overflow control
+          Scalar t = abs(m_matT.coeff(i,n));
+          if ((eps * t) * t > Scalar(1))
+            m_matT.col(n).tail(size-i) /= t;
+        }
+      }
+    }
+    else if (q < Scalar(0) && n > 0) // Complex vector
+    {
+      Scalar lastra(0), lastsa(0), lastw(0);
+      Index l = n-1;
+
+      // Last vector component imaginary so matrix is triangular
+      if (abs(m_matT.coeff(n,n-1)) > abs(m_matT.coeff(n-1,n)))
+      {
+        m_matT.coeffRef(n-1,n-1) = q / m_matT.coeff(n,n-1);
+        m_matT.coeffRef(n-1,n) = -(m_matT.coeff(n,n) - p) / m_matT.coeff(n,n-1);
+      }
+      else
+      {
+        std::complex<Scalar> cc = cdiv<Scalar>(0.0,-m_matT.coeff(n-1,n),m_matT.coeff(n-1,n-1)-p,q);
+        m_matT.coeffRef(n-1,n-1) = numext::real(cc);
+        m_matT.coeffRef(n-1,n) = numext::imag(cc);
+      }
+      m_matT.coeffRef(n,n-1) = 0.0;
+      m_matT.coeffRef(n,n) = 1.0;
+      for (Index i = n-2; i >= 0; i--)
+      {
+        Scalar ra = m_matT.row(i).segment(l, n-l+1).dot(m_matT.col(n-1).segment(l, n-l+1));
+        Scalar sa = m_matT.row(i).segment(l, n-l+1).dot(m_matT.col(n).segment(l, n-l+1));
+        Scalar w = m_matT.coeff(i,i) - p;
+
+        if (m_eivalues.coeff(i).imag() < 0.0)
+        {
+          lastw = w;
+          lastra = ra;
+          lastsa = sa;
+        }
+        else
+        {
+          l = i;
+          if (m_eivalues.coeff(i).imag() == RealScalar(0))
+          {
+            std::complex<Scalar> cc = cdiv(-ra,-sa,w,q);
+            m_matT.coeffRef(i,n-1) = numext::real(cc);
+            m_matT.coeffRef(i,n) = numext::imag(cc);
+          }
+          else
+          {
+            // Solve complex equations
+            Scalar x = m_matT.coeff(i,i+1);
+            Scalar y = m_matT.coeff(i+1,i);
+            Scalar vr = (m_eivalues.coeff(i).real() - p) * (m_eivalues.coeff(i).real() - p) + m_eivalues.coeff(i).imag() * m_eivalues.coeff(i).imag() - q * q;
+            Scalar vi = (m_eivalues.coeff(i).real() - p) * Scalar(2) * q;
+            if ((vr == 0.0) && (vi == 0.0))
+              vr = eps * norm * (abs(w) + abs(q) + abs(x) + abs(y) + abs(lastw));
+
+            std::complex<Scalar> cc = cdiv(x*lastra-lastw*ra+q*sa,x*lastsa-lastw*sa-q*ra,vr,vi);
+            m_matT.coeffRef(i,n-1) = numext::real(cc);
+            m_matT.coeffRef(i,n) = numext::imag(cc);
+            if (abs(x) > (abs(lastw) + abs(q)))
+            {
+              m_matT.coeffRef(i+1,n-1) = (-ra - w * m_matT.coeff(i,n-1) + q * m_matT.coeff(i,n)) / x;
+              m_matT.coeffRef(i+1,n) = (-sa - w * m_matT.coeff(i,n) - q * m_matT.coeff(i,n-1)) / x;
+            }
+            else
+            {
+              cc = cdiv(-lastra-y*m_matT.coeff(i,n-1),-lastsa-y*m_matT.coeff(i,n),lastw,q);
+              m_matT.coeffRef(i+1,n-1) = numext::real(cc);
+              m_matT.coeffRef(i+1,n) = numext::imag(cc);
+            }
+          }
+
+          // Overflow control
+          using std::max;
+          Scalar t = (max)(abs(m_matT.coeff(i,n-1)),abs(m_matT.coeff(i,n)));
+          if ((eps * t) * t > Scalar(1))
+            m_matT.block(i, n-1, size-i, 2) /= t;
+
+        }
+      }
+      
+      // We handled a pair of complex conjugate eigenvalues, so need to skip them both
+      n--;
+    }
+    else
+    {
+      eigen_assert(0 && "Internal bug in EigenSolver"); // this should not happen
+    }
+  }
+
+  // Back transformation to get eigenvectors of original matrix
+  for (Index j = size-1; j >= 0; j--)
+  {
+    m_tmp.noalias() = m_eivec.leftCols(j+1) * m_matT.col(j).segment(0, j+1);
+    m_eivec.col(j) = m_tmp;
+  }
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_EIGENSOLVER_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
new file mode 100644
index 0000000..956e80d
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
@@ -0,0 +1,350 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2010,2012 Jitse Niesen <jitse at maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERALIZEDEIGENSOLVER_H
+#define EIGEN_GENERALIZEDEIGENSOLVER_H
+
+#include "./RealQZ.h"
+
+namespace Eigen { 
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class GeneralizedEigenSolver
+  *
+  * \brief Computes the generalized eigenvalues and eigenvectors of a pair of general matrices
+  *
+  * \tparam _MatrixType the type of the matrices of which we are computing the
+  * eigen-decomposition; this is expected to be an instantiation of the Matrix
+  * class template. Currently, only real matrices are supported.
+  *
+  * The generalized eigenvalues and eigenvectors of a matrix pair \f$ A \f$ and \f$ B \f$ are scalars
+  * \f$ \lambda \f$ and vectors \f$ v \f$ such that \f$ Av = \lambda Bv \f$.  If
+  * \f$ D \f$ is a diagonal matrix with the eigenvalues on the diagonal, and
+  * \f$ V \f$ is a matrix with the eigenvectors as its columns, then \f$ A V =
+  * B V D \f$. The matrix \f$ V \f$ is almost always invertible, in which case we
+  * have \f$ A = B V D V^{-1} \f$. This is called the generalized eigen-decomposition.
+  *
+  * The generalized eigenvalues and eigenvectors of a matrix pair may be complex, even when the
+  * matrices are real. Moreover, the generalized eigenvalue might be infinite if the matrix B is
+  * singular. To workaround this difficulty, the eigenvalues are provided as a pair of complex \f$ \alpha \f$
+  * and real \f$ \beta \f$ such that: \f$ \lambda_i = \alpha_i / \beta_i \f$. If \f$ \beta_i \f$ is (nearly) zero,
+  * then one can consider the well defined left eigenvalue \f$ \mu = \beta_i / \alpha_i\f$ such that:
+  * \f$ \mu_i A v_i = B v_i \f$, or even \f$ \mu_i u_i^T A  = u_i^T B \f$ where \f$ u_i \f$ is
+  * called the left eigenvector.
+  *
+  * Call the function compute() to compute the generalized eigenvalues and eigenvectors of
+  * a given matrix pair. Alternatively, you can use the
+  * GeneralizedEigenSolver(const MatrixType&, const MatrixType&, bool) constructor which computes the
+  * eigenvalues and eigenvectors at construction time. Once the eigenvalue and
+  * eigenvectors are computed, they can be retrieved with the eigenvalues() and
+  * eigenvectors() functions.
+  *
+  * Here is an usage example of this class:
+  * Example: \include GeneralizedEigenSolver.cpp
+  * Output: \verbinclude GeneralizedEigenSolver.out
+  *
+  * \sa MatrixBase::eigenvalues(), class ComplexEigenSolver, class SelfAdjointEigenSolver
+  */
+template<typename _MatrixType> class GeneralizedEigenSolver
+{
+  public:
+
+    /** \brief Synonym for the template parameter \p _MatrixType. */
+    typedef _MatrixType MatrixType;
+
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+
+    /** \brief Scalar type for matrices of type #MatrixType. */
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+
+    /** \brief Complex scalar type for #MatrixType. 
+      *
+      * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
+      * \c float or \c double) and just \c Scalar if #Scalar is
+      * complex.
+      */
+    typedef std::complex<RealScalar> ComplexScalar;
+
+    /** \brief Type for vector of real scalar values eigenvalues as returned by betas().
+      *
+      * This is a column vector with entries of type #Scalar.
+      * The length of the vector is the size of #MatrixType.
+      */
+    typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> VectorType;
+
+    /** \brief Type for vector of complex scalar values eigenvalues as returned by betas().
+      *
+      * This is a column vector with entries of type #ComplexScalar.
+      * The length of the vector is the size of #MatrixType.
+      */
+    typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ComplexVectorType;
+
+    /** \brief Expression type for the eigenvalues as returned by eigenvalues().
+      */
+    typedef CwiseBinaryOp<internal::scalar_quotient_op<ComplexScalar,Scalar>,ComplexVectorType,VectorType> EigenvalueType;
+
+    /** \brief Type for matrix of eigenvectors as returned by eigenvectors(). 
+      *
+      * This is a square matrix with entries of type #ComplexScalar. 
+      * The size is the same as the size of #MatrixType.
+      */
+    typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> EigenvectorsType;
+
+    /** \brief Default constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via EigenSolver::compute(const MatrixType&, bool).
+      *
+      * \sa compute() for an example.
+      */
+    GeneralizedEigenSolver() : m_eivec(), m_alphas(), m_betas(), m_isInitialized(false), m_realQZ(), m_matS(), m_tmp() {}
+
+    /** \brief Default constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa GeneralizedEigenSolver()
+      */
+    GeneralizedEigenSolver(Index size)
+      : m_eivec(size, size),
+        m_alphas(size),
+        m_betas(size),
+        m_isInitialized(false),
+        m_eigenvectorsOk(false),
+        m_realQZ(size),
+        m_matS(size, size),
+        m_tmp(size)
+    {}
+
+    /** \brief Constructor; computes the generalized eigendecomposition of given matrix pair.
+      * 
+      * \param[in]  A  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  B  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
+      *    eigenvalues are computed; if false, only the eigenvalues are computed.
+      *
+      * This constructor calls compute() to compute the generalized eigenvalues
+      * and eigenvectors.
+      *
+      * \sa compute()
+      */
+    GeneralizedEigenSolver(const MatrixType& A, const MatrixType& B, bool computeEigenvectors = true)
+      : m_eivec(A.rows(), A.cols()),
+        m_alphas(A.cols()),
+        m_betas(A.cols()),
+        m_isInitialized(false),
+        m_eigenvectorsOk(false),
+        m_realQZ(A.cols()),
+        m_matS(A.rows(), A.cols()),
+        m_tmp(A.cols())
+    {
+      compute(A, B, computeEigenvectors);
+    }
+
+    /* \brief Returns the computed generalized eigenvectors.
+      *
+      * \returns  %Matrix whose columns are the (possibly complex) eigenvectors.
+      *
+      * \pre Either the constructor 
+      * GeneralizedEigenSolver(const MatrixType&,const MatrixType&, bool) or the member function
+      * compute(const MatrixType&, const MatrixType& bool) has been called before, and
+      * \p computeEigenvectors was set to true (the default).
+      *
+      * Column \f$ k \f$ of the returned matrix is an eigenvector corresponding
+      * to eigenvalue number \f$ k \f$ as returned by eigenvalues().  The
+      * eigenvectors are normalized to have (Euclidean) norm equal to one. The
+      * matrix returned by this function is the matrix \f$ V \f$ in the
+      * generalized eigendecomposition \f$ A = B V D V^{-1} \f$, if it exists.
+      *
+      * \sa eigenvalues()
+      */
+//    EigenvectorsType eigenvectors() const;
+
+    /** \brief Returns an expression of the computed generalized eigenvalues.
+      *
+      * \returns An expression of the column vector containing the eigenvalues.
+      *
+      * It is a shortcut for \code this->alphas().cwiseQuotient(this->betas()); \endcode
+      * Not that betas might contain zeros. It is therefore not recommended to use this function,
+      * but rather directly deal with the alphas and betas vectors.
+      *
+      * \pre Either the constructor 
+      * GeneralizedEigenSolver(const MatrixType&,const MatrixType&,bool) or the member function
+      * compute(const MatrixType&,const MatrixType&,bool) has been called before.
+      *
+      * The eigenvalues are repeated according to their algebraic multiplicity,
+      * so there are as many eigenvalues as rows in the matrix. The eigenvalues 
+      * are not sorted in any particular order.
+      *
+      * \sa alphas(), betas(), eigenvectors()
+      */
+    EigenvalueType eigenvalues() const
+    {
+      eigen_assert(m_isInitialized && "GeneralizedEigenSolver is not initialized.");
+      return EigenvalueType(m_alphas,m_betas);
+    }
+
+    /** \returns A const reference to the vectors containing the alpha values
+      *
+      * This vector permits to reconstruct the j-th eigenvalues as alphas(i)/betas(j).
+      *
+      * \sa betas(), eigenvalues() */
+    ComplexVectorType alphas() const
+    {
+      eigen_assert(m_isInitialized && "GeneralizedEigenSolver is not initialized.");
+      return m_alphas;
+    }
+
+    /** \returns A const reference to the vectors containing the beta values
+      *
+      * This vector permits to reconstruct the j-th eigenvalues as alphas(i)/betas(j).
+      *
+      * \sa alphas(), eigenvalues() */
+    VectorType betas() const
+    {
+      eigen_assert(m_isInitialized && "GeneralizedEigenSolver is not initialized.");
+      return m_betas;
+    }
+
+    /** \brief Computes generalized eigendecomposition of given matrix.
+      * 
+      * \param[in]  A  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  B  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
+      *    eigenvalues are computed; if false, only the eigenvalues are
+      *    computed. 
+      * \returns    Reference to \c *this
+      *
+      * This function computes the eigenvalues of the real matrix \p matrix.
+      * The eigenvalues() function can be used to retrieve them.  If 
+      * \p computeEigenvectors is true, then the eigenvectors are also computed
+      * and can be retrieved by calling eigenvectors().
+      *
+      * The matrix is first reduced to real generalized Schur form using the RealQZ
+      * class. The generalized Schur decomposition is then used to compute the eigenvalues
+      * and eigenvectors.
+      *
+      * The cost of the computation is dominated by the cost of the
+      * generalized Schur decomposition.
+      *
+      * This method reuses of the allocated data in the GeneralizedEigenSolver object.
+      */
+    GeneralizedEigenSolver& compute(const MatrixType& A, const MatrixType& B, bool computeEigenvectors = true);
+
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+      return m_realQZ.info();
+    }
+
+    /** Sets the maximal number of iterations allowed.
+    */
+    GeneralizedEigenSolver& setMaxIterations(Index maxIters)
+    {
+      m_realQZ.setMaxIterations(maxIters);
+      return *this;
+    }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+      EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL);
+    }
+    
+    MatrixType m_eivec;
+    ComplexVectorType m_alphas;
+    VectorType m_betas;
+    bool m_isInitialized;
+    bool m_eigenvectorsOk;
+    RealQZ<MatrixType> m_realQZ;
+    MatrixType m_matS;
+
+    typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ColumnVectorType;
+    ColumnVectorType m_tmp;
+};
+
+//template<typename MatrixType>
+//typename GeneralizedEigenSolver<MatrixType>::EigenvectorsType GeneralizedEigenSolver<MatrixType>::eigenvectors() const
+//{
+//  eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+//  eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+//  Index n = m_eivec.cols();
+//  EigenvectorsType matV(n,n);
+//  // TODO
+//  return matV;
+//}
+
+template<typename MatrixType>
+GeneralizedEigenSolver<MatrixType>&
+GeneralizedEigenSolver<MatrixType>::compute(const MatrixType& A, const MatrixType& B, bool computeEigenvectors)
+{
+  check_template_parameters();
+  
+  using std::sqrt;
+  using std::abs;
+  eigen_assert(A.cols() == A.rows() && B.cols() == A.rows() && B.cols() == B.rows());
+
+  // Reduce to generalized real Schur form:
+  // A = Q S Z and B = Q T Z
+  m_realQZ.compute(A, B, computeEigenvectors);
+
+  if (m_realQZ.info() == Success)
+  {
+    m_matS = m_realQZ.matrixS();
+    if (computeEigenvectors)
+      m_eivec = m_realQZ.matrixZ().transpose();
+  
+    // Compute eigenvalues from matS
+    m_alphas.resize(A.cols());
+    m_betas.resize(A.cols());
+    Index i = 0;
+    while (i < A.cols())
+    {
+      if (i == A.cols() - 1 || m_matS.coeff(i+1, i) == Scalar(0))
+      {
+        m_alphas.coeffRef(i) = m_matS.coeff(i, i);
+        m_betas.coeffRef(i)  = m_realQZ.matrixT().coeff(i,i);
+        ++i;
+      }
+      else
+      {
+        Scalar p = Scalar(0.5) * (m_matS.coeff(i, i) - m_matS.coeff(i+1, i+1));
+        Scalar z = sqrt(abs(p * p + m_matS.coeff(i+1, i) * m_matS.coeff(i, i+1)));
+        m_alphas.coeffRef(i)   = ComplexScalar(m_matS.coeff(i+1, i+1) + p, z);
+        m_alphas.coeffRef(i+1) = ComplexScalar(m_matS.coeff(i+1, i+1) + p, -z);
+
+        m_betas.coeffRef(i)   = m_realQZ.matrixT().coeff(i,i);
+        m_betas.coeffRef(i+1) = m_realQZ.matrixT().coeff(i,i);
+        i += 2;
+      }
+    }
+  }
+
+  m_isInitialized = true;
+  m_eigenvectorsOk = false;//computeEigenvectors;
+
+  return *this;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERALIZEDEIGENSOLVER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/HessenbergDecomposition.h b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/HessenbergDecomposition.h
new file mode 100644
index 0000000..3db0c01
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/HessenbergDecomposition.h
@@ -0,0 +1,373 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2010 Jitse Niesen <jitse at maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HESSENBERGDECOMPOSITION_H
+#define EIGEN_HESSENBERGDECOMPOSITION_H
+
+namespace Eigen { 
+
+namespace internal {
+  
+template<typename MatrixType> struct HessenbergDecompositionMatrixHReturnType;
+template<typename MatrixType>
+struct traits<HessenbergDecompositionMatrixHReturnType<MatrixType> >
+{
+  typedef MatrixType ReturnType;
+};
+
+}
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class HessenbergDecomposition
+  *
+  * \brief Reduces a square matrix to Hessenberg form by an orthogonal similarity transformation
+  *
+  * \tparam _MatrixType the type of the matrix of which we are computing the Hessenberg decomposition
+  *
+  * This class performs an Hessenberg decomposition of a matrix \f$ A \f$. In
+  * the real case, the Hessenberg decomposition consists of an orthogonal
+  * matrix \f$ Q \f$ and a Hessenberg matrix \f$ H \f$ such that \f$ A = Q H
+  * Q^T \f$. An orthogonal matrix is a matrix whose inverse equals its
+  * transpose (\f$ Q^{-1} = Q^T \f$). A Hessenberg matrix has zeros below the
+  * subdiagonal, so it is almost upper triangular. The Hessenberg decomposition
+  * of a complex matrix is \f$ A = Q H Q^* \f$ with \f$ Q \f$ unitary (that is,
+  * \f$ Q^{-1} = Q^* \f$).
+  *
+  * Call the function compute() to compute the Hessenberg decomposition of a
+  * given matrix. Alternatively, you can use the
+  * HessenbergDecomposition(const MatrixType&) constructor which computes the
+  * Hessenberg decomposition at construction time. Once the decomposition is
+  * computed, you can use the matrixH() and matrixQ() functions to construct
+  * the matrices H and Q in the decomposition.
+  *
+  * The documentation for matrixH() contains an example of the typical use of
+  * this class.
+  *
+  * \sa class ComplexSchur, class Tridiagonalization, \ref QR_Module "QR Module"
+  */
+template<typename _MatrixType> class HessenbergDecomposition
+{
+  public:
+
+    /** \brief Synonym for the template parameter \p _MatrixType. */
+    typedef _MatrixType MatrixType;
+
+    enum {
+      Size = MatrixType::RowsAtCompileTime,
+      SizeMinusOne = Size == Dynamic ? Dynamic : Size - 1,
+      Options = MatrixType::Options,
+      MaxSize = MatrixType::MaxRowsAtCompileTime,
+      MaxSizeMinusOne = MaxSize == Dynamic ? Dynamic : MaxSize - 1
+    };
+
+    /** \brief Scalar type for matrices of type #MatrixType. */
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+
+    /** \brief Type for vector of Householder coefficients.
+      *
+      * This is column vector with entries of type #Scalar. The length of the
+      * vector is one less than the size of #MatrixType, if it is a fixed-side
+      * type.
+      */
+    typedef Matrix<Scalar, SizeMinusOne, 1, Options & ~RowMajor, MaxSizeMinusOne, 1> CoeffVectorType;
+
+    /** \brief Return type of matrixQ() */
+    typedef HouseholderSequence<MatrixType,typename internal::remove_all<typename CoeffVectorType::ConjugateReturnType>::type> HouseholderSequenceType;
+    
+    typedef internal::HessenbergDecompositionMatrixHReturnType<MatrixType> MatrixHReturnType;
+
+    /** \brief Default constructor; the decomposition will be computed later.
+      *
+      * \param [in] size  The size of the matrix whose Hessenberg decomposition will be computed.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via compute().  The \p size parameter is only
+      * used as a hint. It is not an error to give a wrong \p size, but it may
+      * impair performance.
+      *
+      * \sa compute() for an example.
+      */
+    HessenbergDecomposition(Index size = Size==Dynamic ? 2 : Size)
+      : m_matrix(size,size),
+        m_temp(size),
+        m_isInitialized(false)
+    {
+      if(size>1)
+        m_hCoeffs.resize(size-1);
+    }
+
+    /** \brief Constructor; computes Hessenberg decomposition of given matrix.
+      *
+      * \param[in]  matrix  Square matrix whose Hessenberg decomposition is to be computed.
+      *
+      * This constructor calls compute() to compute the Hessenberg
+      * decomposition.
+      *
+      * \sa matrixH() for an example.
+      */
+    HessenbergDecomposition(const MatrixType& matrix)
+      : m_matrix(matrix),
+        m_temp(matrix.rows()),
+        m_isInitialized(false)
+    {
+      if(matrix.rows()<2)
+      {
+        m_isInitialized = true;
+        return;
+      }
+      m_hCoeffs.resize(matrix.rows()-1,1);
+      _compute(m_matrix, m_hCoeffs, m_temp);
+      m_isInitialized = true;
+    }
+
+    /** \brief Computes Hessenberg decomposition of given matrix.
+      *
+      * \param[in]  matrix  Square matrix whose Hessenberg decomposition is to be computed.
+      * \returns    Reference to \c *this
+      *
+      * The Hessenberg decomposition is computed by bringing the columns of the
+      * matrix successively in the required form using Householder reflections
+      * (see, e.g., Algorithm 7.4.2 in Golub \& Van Loan, <i>%Matrix
+      * Computations</i>). The cost is \f$ 10n^3/3 \f$ flops, where \f$ n \f$
+      * denotes the size of the given matrix.
+      *
+      * This method reuses of the allocated data in the HessenbergDecomposition
+      * object.
+      *
+      * Example: \include HessenbergDecomposition_compute.cpp
+      * Output: \verbinclude HessenbergDecomposition_compute.out
+      */
+    HessenbergDecomposition& compute(const MatrixType& matrix)
+    {
+      m_matrix = matrix;
+      if(matrix.rows()<2)
+      {
+        m_isInitialized = true;
+        return *this;
+      }
+      m_hCoeffs.resize(matrix.rows()-1,1);
+      _compute(m_matrix, m_hCoeffs, m_temp);
+      m_isInitialized = true;
+      return *this;
+    }
+
+    /** \brief Returns the Householder coefficients.
+      *
+      * \returns a const reference to the vector of Householder coefficients
+      *
+      * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
+      * or the member function compute(const MatrixType&) has been called
+      * before to compute the Hessenberg decomposition of a matrix.
+      *
+      * The Householder coefficients allow the reconstruction of the matrix
+      * \f$ Q \f$ in the Hessenberg decomposition from the packed data.
+      *
+      * \sa packedMatrix(), \ref Householder_Module "Householder module"
+      */
+    const CoeffVectorType& householderCoefficients() const
+    {
+      eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
+      return m_hCoeffs;
+    }
+
+    /** \brief Returns the internal representation of the decomposition
+      *
+      *	\returns a const reference to a matrix with the internal representation
+      *	         of the decomposition.
+      *
+      * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
+      * or the member function compute(const MatrixType&) has been called
+      * before to compute the Hessenberg decomposition of a matrix.
+      *
+      * The returned matrix contains the following information:
+      *  - the upper part and lower sub-diagonal represent the Hessenberg matrix H
+      *  - the rest of the lower part contains the Householder vectors that, combined with
+      *    Householder coefficients returned by householderCoefficients(),
+      *    allows to reconstruct the matrix Q as
+      *       \f$ Q = H_{N-1} \ldots H_1 H_0 \f$.
+      *    Here, the matrices \f$ H_i \f$ are the Householder transformations
+      *       \f$ H_i = (I - h_i v_i v_i^T) \f$
+      *    where \f$ h_i \f$ is the \f$ i \f$th Householder coefficient and
+      *    \f$ v_i \f$ is the Householder vector defined by
+      *       \f$ v_i = [ 0, \ldots, 0, 1, M(i+2,i), \ldots, M(N-1,i) ]^T \f$
+      *    with M the matrix returned by this function.
+      *
+      * See LAPACK for further details on this packed storage.
+      *
+      * Example: \include HessenbergDecomposition_packedMatrix.cpp
+      * Output: \verbinclude HessenbergDecomposition_packedMatrix.out
+      *
+      * \sa householderCoefficients()
+      */
+    const MatrixType& packedMatrix() const
+    {
+      eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
+      return m_matrix;
+    }
+
+    /** \brief Reconstructs the orthogonal matrix Q in the decomposition
+      *
+      * \returns object representing the matrix Q
+      *
+      * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
+      * or the member function compute(const MatrixType&) has been called
+      * before to compute the Hessenberg decomposition of a matrix.
+      *
+      * This function returns a light-weight object of template class
+      * HouseholderSequence. You can either apply it directly to a matrix or
+      * you can convert it to a matrix of type #MatrixType.
+      *
+      * \sa matrixH() for an example, class HouseholderSequence
+      */
+    HouseholderSequenceType matrixQ() const
+    {
+      eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
+      return HouseholderSequenceType(m_matrix, m_hCoeffs.conjugate())
+             .setLength(m_matrix.rows() - 1)
+             .setShift(1);
+    }
+
+    /** \brief Constructs the Hessenberg matrix H in the decomposition
+      *
+      * \returns expression object representing the matrix H
+      *
+      * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
+      * or the member function compute(const MatrixType&) has been called
+      * before to compute the Hessenberg decomposition of a matrix.
+      *
+      * The object returned by this function constructs the Hessenberg matrix H
+      * when it is assigned to a matrix or otherwise evaluated. The matrix H is
+      * constructed from the packed matrix as returned by packedMatrix(): The
+      * upper part (including the subdiagonal) of the packed matrix contains
+      * the matrix H. It may sometimes be better to directly use the packed
+      * matrix instead of constructing the matrix H.
+      *
+      * Example: \include HessenbergDecomposition_matrixH.cpp
+      * Output: \verbinclude HessenbergDecomposition_matrixH.out
+      *
+      * \sa matrixQ(), packedMatrix()
+      */
+    MatrixHReturnType matrixH() const
+    {
+      eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
+      return MatrixHReturnType(*this);
+    }
+
+  private:
+
+    typedef Matrix<Scalar, 1, Size, Options | RowMajor, 1, MaxSize> VectorType;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    static void _compute(MatrixType& matA, CoeffVectorType& hCoeffs, VectorType& temp);
+
+  protected:
+    MatrixType m_matrix;
+    CoeffVectorType m_hCoeffs;
+    VectorType m_temp;
+    bool m_isInitialized;
+};
+
+/** \internal
+  * Performs a tridiagonal decomposition of \a matA in place.
+  *
+  * \param matA the input selfadjoint matrix
+  * \param hCoeffs returned Householder coefficients
+  *
+  * The result is written in the lower triangular part of \a matA.
+  *
+  * Implemented from Golub's "%Matrix Computations", algorithm 8.3.1.
+  *
+  * \sa packedMatrix()
+  */
+template<typename MatrixType>
+void HessenbergDecomposition<MatrixType>::_compute(MatrixType& matA, CoeffVectorType& hCoeffs, VectorType& temp)
+{
+  eigen_assert(matA.rows()==matA.cols());
+  Index n = matA.rows();
+  temp.resize(n);
+  for (Index i = 0; i<n-1; ++i)
+  {
+    // let's consider the vector v = i-th column starting at position i+1
+    Index remainingSize = n-i-1;
+    RealScalar beta;
+    Scalar h;
+    matA.col(i).tail(remainingSize).makeHouseholderInPlace(h, beta);
+    matA.col(i).coeffRef(i+1) = beta;
+    hCoeffs.coeffRef(i) = h;
+
+    // Apply similarity transformation to remaining columns,
+    // i.e., compute A = H A H'
+
+    // A = H A
+    matA.bottomRightCorner(remainingSize, remainingSize)
+        .applyHouseholderOnTheLeft(matA.col(i).tail(remainingSize-1), h, &temp.coeffRef(0));
+
+    // A = A H'
+    matA.rightCols(remainingSize)
+        .applyHouseholderOnTheRight(matA.col(i).tail(remainingSize-1).conjugate(), numext::conj(h), &temp.coeffRef(0));
+  }
+}
+
+namespace internal {
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \brief Expression type for return value of HessenbergDecomposition::matrixH()
+  *
+  * \tparam MatrixType type of matrix in the Hessenberg decomposition
+  *
+  * Objects of this type represent the Hessenberg matrix in the Hessenberg
+  * decomposition of some matrix. The object holds a reference to the
+  * HessenbergDecomposition class until the it is assigned or evaluated for
+  * some other reason (the reference should remain valid during the life time
+  * of this object). This class is the return type of
+  * HessenbergDecomposition::matrixH(); there is probably no other use for this
+  * class.
+  */
+template<typename MatrixType> struct HessenbergDecompositionMatrixHReturnType
+: public ReturnByValue<HessenbergDecompositionMatrixHReturnType<MatrixType> >
+{
+    typedef typename MatrixType::Index Index;
+  public:
+    /** \brief Constructor.
+      *
+      * \param[in] hess  Hessenberg decomposition
+      */
+    HessenbergDecompositionMatrixHReturnType(const HessenbergDecomposition<MatrixType>& hess) : m_hess(hess) { }
+
+    /** \brief Hessenberg matrix in decomposition.
+      *
+      * \param[out] result  Hessenberg matrix in decomposition \p hess which
+      *                     was passed to the constructor
+      */
+    template <typename ResultType>
+    inline void evalTo(ResultType& result) const
+    {
+      result = m_hess.packedMatrix();
+      Index n = result.rows();
+      if (n>2)
+        result.bottomLeftCorner(n-2, n-2).template triangularView<Lower>().setZero();
+    }
+
+    Index rows() const { return m_hess.packedMatrix().rows(); }
+    Index cols() const { return m_hess.packedMatrix().cols(); }
+
+  protected:
+    const HessenbergDecomposition<MatrixType>& m_hess;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_HESSENBERGDECOMPOSITION_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
rename to vendor/eigen-3.2.8/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/RealQZ.h b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/RealQZ.h
new file mode 100644
index 0000000..aa3833e
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/RealQZ.h
@@ -0,0 +1,624 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Alexey Korepanov <kaikaikai at yandex.ru>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REAL_QZ_H
+#define EIGEN_REAL_QZ_H
+
+namespace Eigen {
+
+  /** \eigenvalues_module \ingroup Eigenvalues_Module
+   *
+   *
+   * \class RealQZ
+   *
+   * \brief Performs a real QZ decomposition of a pair of square matrices
+   *
+   * \tparam _MatrixType the type of the matrix of which we are computing the
+   * real QZ decomposition; this is expected to be an instantiation of the
+   * Matrix class template.
+   *
+   * Given a real square matrices A and B, this class computes the real QZ
+   * decomposition: \f$ A = Q S Z \f$, \f$ B = Q T Z \f$ where Q and Z are
+   * real orthogonal matrixes, T is upper-triangular matrix, and S is upper
+   * quasi-triangular matrix. An orthogonal matrix is a matrix whose
+   * inverse is equal to its transpose, \f$ U^{-1} = U^T \f$. A quasi-triangular
+   * matrix is a block-triangular matrix whose diagonal consists of 1-by-1
+   * blocks and 2-by-2 blocks where further reduction is impossible due to
+   * complex eigenvalues. 
+   *
+   * The eigenvalues of the pencil \f$ A - z B \f$ can be obtained from
+   * 1x1 and 2x2 blocks on the diagonals of S and T.
+   *
+   * Call the function compute() to compute the real QZ decomposition of a
+   * given pair of matrices. Alternatively, you can use the 
+   * RealQZ(const MatrixType& B, const MatrixType& B, bool computeQZ)
+   * constructor which computes the real QZ decomposition at construction
+   * time. Once the decomposition is computed, you can use the matrixS(),
+   * matrixT(), matrixQ() and matrixZ() functions to retrieve the matrices
+   * S, T, Q and Z in the decomposition. If computeQZ==false, some time
+   * is saved by not computing matrices Q and Z.
+   *
+   * Example: \include RealQZ_compute.cpp
+   * Output: \include RealQZ_compute.out
+   *
+   * \note The implementation is based on the algorithm in "Matrix Computations"
+   * by Gene H. Golub and Charles F. Van Loan, and a paper "An algorithm for
+   * generalized eigenvalue problems" by C.B.Moler and G.W.Stewart.
+   *
+   * \sa class RealSchur, class ComplexSchur, class EigenSolver, class ComplexEigenSolver
+   */
+
+  template<typename _MatrixType> class RealQZ
+  {
+    public:
+      typedef _MatrixType MatrixType;
+      enum {
+        RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+        ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+        Options = MatrixType::Options,
+        MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+        MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+      };
+      typedef typename MatrixType::Scalar Scalar;
+      typedef std::complex<typename NumTraits<Scalar>::Real> ComplexScalar;
+      typedef typename MatrixType::Index Index;
+
+      typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> EigenvalueType;
+      typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ColumnVectorType;
+
+      /** \brief Default constructor.
+       *
+       * \param [in] size  Positive integer, size of the matrix whose QZ decomposition will be computed.
+       *
+       * The default constructor is useful in cases in which the user intends to
+       * perform decompositions via compute().  The \p size parameter is only
+       * used as a hint. It is not an error to give a wrong \p size, but it may
+       * impair performance.
+       *
+       * \sa compute() for an example.
+       */
+      RealQZ(Index size = RowsAtCompileTime==Dynamic ? 1 : RowsAtCompileTime) : 
+        m_S(size, size),
+        m_T(size, size),
+        m_Q(size, size),
+        m_Z(size, size),
+        m_workspace(size*2),
+        m_maxIters(400),
+        m_isInitialized(false)
+        { }
+
+      /** \brief Constructor; computes real QZ decomposition of given matrices
+       * 
+       * \param[in]  A          Matrix A.
+       * \param[in]  B          Matrix B.
+       * \param[in]  computeQZ  If false, A and Z are not computed.
+       *
+       * This constructor calls compute() to compute the QZ decomposition.
+       */
+      RealQZ(const MatrixType& A, const MatrixType& B, bool computeQZ = true) :
+        m_S(A.rows(),A.cols()),
+        m_T(A.rows(),A.cols()),
+        m_Q(A.rows(),A.cols()),
+        m_Z(A.rows(),A.cols()),
+        m_workspace(A.rows()*2),
+        m_maxIters(400),
+        m_isInitialized(false) {
+          compute(A, B, computeQZ);
+        }
+
+      /** \brief Returns matrix Q in the QZ decomposition. 
+       *
+       * \returns A const reference to the matrix Q.
+       */
+      const MatrixType& matrixQ() const {
+        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+        eigen_assert(m_computeQZ && "The matrices Q and Z have not been computed during the QZ decomposition.");
+        return m_Q;
+      }
+
+      /** \brief Returns matrix Z in the QZ decomposition. 
+       *
+       * \returns A const reference to the matrix Z.
+       */
+      const MatrixType& matrixZ() const {
+        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+        eigen_assert(m_computeQZ && "The matrices Q and Z have not been computed during the QZ decomposition.");
+        return m_Z;
+      }
+
+      /** \brief Returns matrix S in the QZ decomposition. 
+       *
+       * \returns A const reference to the matrix S.
+       */
+      const MatrixType& matrixS() const {
+        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+        return m_S;
+      }
+
+      /** \brief Returns matrix S in the QZ decomposition. 
+       *
+       * \returns A const reference to the matrix S.
+       */
+      const MatrixType& matrixT() const {
+        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+        return m_T;
+      }
+
+      /** \brief Computes QZ decomposition of given matrix. 
+       * 
+       * \param[in]  A          Matrix A.
+       * \param[in]  B          Matrix B.
+       * \param[in]  computeQZ  If false, A and Z are not computed.
+       * \returns    Reference to \c *this
+       */
+      RealQZ& compute(const MatrixType& A, const MatrixType& B, bool computeQZ = true);
+
+      /** \brief Reports whether previous computation was successful.
+       *
+       * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+       */
+      ComputationInfo info() const
+      {
+        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+        return m_info;
+      }
+
+      /** \brief Returns number of performed QR-like iterations.
+      */
+      Index iterations() const
+      {
+        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+        return m_global_iter;
+      }
+
+      /** Sets the maximal number of iterations allowed to converge to one eigenvalue
+       * or decouple the problem.
+      */
+      RealQZ& setMaxIterations(Index maxIters)
+      {
+        m_maxIters = maxIters;
+        return *this;
+      }
+
+    private:
+
+      MatrixType m_S, m_T, m_Q, m_Z;
+      Matrix<Scalar,Dynamic,1> m_workspace;
+      ComputationInfo m_info;
+      Index m_maxIters;
+      bool m_isInitialized;
+      bool m_computeQZ;
+      Scalar m_normOfT, m_normOfS;
+      Index m_global_iter;
+
+      typedef Matrix<Scalar,3,1> Vector3s;
+      typedef Matrix<Scalar,2,1> Vector2s;
+      typedef Matrix<Scalar,2,2> Matrix2s;
+      typedef JacobiRotation<Scalar> JRs;
+
+      void hessenbergTriangular();
+      void computeNorms();
+      Index findSmallSubdiagEntry(Index iu);
+      Index findSmallDiagEntry(Index f, Index l);
+      void splitOffTwoRows(Index i);
+      void pushDownZero(Index z, Index f, Index l);
+      void step(Index f, Index l, Index iter);
+
+  }; // RealQZ
+
+  /** \internal Reduces S and T to upper Hessenberg - triangular form */
+  template<typename MatrixType>
+    void RealQZ<MatrixType>::hessenbergTriangular()
+    {
+
+      const Index dim = m_S.cols();
+
+      // perform QR decomposition of T, overwrite T with R, save Q
+      HouseholderQR<MatrixType> qrT(m_T);
+      m_T = qrT.matrixQR();
+      m_T.template triangularView<StrictlyLower>().setZero();
+      m_Q = qrT.householderQ();
+      // overwrite S with Q* S
+      m_S.applyOnTheLeft(m_Q.adjoint());
+      // init Z as Identity
+      if (m_computeQZ)
+        m_Z = MatrixType::Identity(dim,dim);
+      // reduce S to upper Hessenberg with Givens rotations
+      for (Index j=0; j<=dim-3; j++) {
+        for (Index i=dim-1; i>=j+2; i--) {
+          JRs G;
+          // kill S(i,j)
+          if(m_S.coeff(i,j) != 0)
+          {
+            G.makeGivens(m_S.coeff(i-1,j), m_S.coeff(i,j), &m_S.coeffRef(i-1, j));
+            m_S.coeffRef(i,j) = Scalar(0.0);
+            m_S.rightCols(dim-j-1).applyOnTheLeft(i-1,i,G.adjoint());
+            m_T.rightCols(dim-i+1).applyOnTheLeft(i-1,i,G.adjoint());
+            // update Q
+            if (m_computeQZ)
+              m_Q.applyOnTheRight(i-1,i,G);
+          }
+          // kill T(i,i-1)
+          if(m_T.coeff(i,i-1)!=Scalar(0))
+          {
+            G.makeGivens(m_T.coeff(i,i), m_T.coeff(i,i-1), &m_T.coeffRef(i,i));
+            m_T.coeffRef(i,i-1) = Scalar(0.0);
+            m_S.applyOnTheRight(i,i-1,G);
+            m_T.topRows(i).applyOnTheRight(i,i-1,G);
+            // update Z
+            if (m_computeQZ)
+              m_Z.applyOnTheLeft(i,i-1,G.adjoint());
+          }
+        }
+      }
+    }
+
+  /** \internal Computes vector L1 norms of S and T when in Hessenberg-Triangular form already */
+  template<typename MatrixType>
+    inline void RealQZ<MatrixType>::computeNorms()
+    {
+      const Index size = m_S.cols();
+      m_normOfS = Scalar(0.0);
+      m_normOfT = Scalar(0.0);
+      for (Index j = 0; j < size; ++j)
+      {
+        m_normOfS += m_S.col(j).segment(0, (std::min)(size,j+2)).cwiseAbs().sum();
+        m_normOfT += m_T.row(j).segment(j, size - j).cwiseAbs().sum();
+      }
+    }
+
+
+  /** \internal Look for single small sub-diagonal element S(res, res-1) and return res (or 0) */
+  template<typename MatrixType>
+    inline typename MatrixType::Index RealQZ<MatrixType>::findSmallSubdiagEntry(Index iu)
+    {
+      using std::abs;
+      Index res = iu;
+      while (res > 0)
+      {
+        Scalar s = abs(m_S.coeff(res-1,res-1)) + abs(m_S.coeff(res,res));
+        if (s == Scalar(0.0))
+          s = m_normOfS;
+        if (abs(m_S.coeff(res,res-1)) < NumTraits<Scalar>::epsilon() * s)
+          break;
+        res--;
+      }
+      return res;
+    }
+
+  /** \internal Look for single small diagonal element T(res, res) for res between f and l, and return res (or f-1)  */
+  template<typename MatrixType>
+    inline typename MatrixType::Index RealQZ<MatrixType>::findSmallDiagEntry(Index f, Index l)
+    {
+      using std::abs;
+      Index res = l;
+      while (res >= f) {
+        if (abs(m_T.coeff(res,res)) <= NumTraits<Scalar>::epsilon() * m_normOfT)
+          break;
+        res--;
+      }
+      return res;
+    }
+
+  /** \internal decouple 2x2 diagonal block in rows i, i+1 if eigenvalues are real */
+  template<typename MatrixType>
+    inline void RealQZ<MatrixType>::splitOffTwoRows(Index i)
+    {
+      using std::abs;
+      using std::sqrt;
+      const Index dim=m_S.cols();
+      if (abs(m_S.coeff(i+1,i))==Scalar(0))
+        return;
+      Index z = findSmallDiagEntry(i,i+1);
+      if (z==i-1)
+      {
+        // block of (S T^{-1})
+        Matrix2s STi = m_T.template block<2,2>(i,i).template triangularView<Upper>().
+          template solve<OnTheRight>(m_S.template block<2,2>(i,i));
+        Scalar p = Scalar(0.5)*(STi(0,0)-STi(1,1));
+        Scalar q = p*p + STi(1,0)*STi(0,1);
+        if (q>=0) {
+          Scalar z = sqrt(q);
+          // one QR-like iteration for ABi - lambda I
+          // is enough - when we know exact eigenvalue in advance,
+          // convergence is immediate
+          JRs G;
+          if (p>=0)
+            G.makeGivens(p + z, STi(1,0));
+          else
+            G.makeGivens(p - z, STi(1,0));
+          m_S.rightCols(dim-i).applyOnTheLeft(i,i+1,G.adjoint());
+          m_T.rightCols(dim-i).applyOnTheLeft(i,i+1,G.adjoint());
+          // update Q
+          if (m_computeQZ)
+            m_Q.applyOnTheRight(i,i+1,G);
+
+          G.makeGivens(m_T.coeff(i+1,i+1), m_T.coeff(i+1,i));
+          m_S.topRows(i+2).applyOnTheRight(i+1,i,G);
+          m_T.topRows(i+2).applyOnTheRight(i+1,i,G);
+          // update Z
+          if (m_computeQZ)
+            m_Z.applyOnTheLeft(i+1,i,G.adjoint());
+
+          m_S.coeffRef(i+1,i) = Scalar(0.0);
+          m_T.coeffRef(i+1,i) = Scalar(0.0);
+        }
+      }
+      else
+      {
+        pushDownZero(z,i,i+1);
+      }
+    }
+
+  /** \internal use zero in T(z,z) to zero S(l,l-1), working in block f..l */
+  template<typename MatrixType>
+    inline void RealQZ<MatrixType>::pushDownZero(Index z, Index f, Index l)
+    {
+      JRs G;
+      const Index dim = m_S.cols();
+      for (Index zz=z; zz<l; zz++)
+      {
+        // push 0 down
+        Index firstColS = zz>f ? (zz-1) : zz;
+        G.makeGivens(m_T.coeff(zz, zz+1), m_T.coeff(zz+1, zz+1));
+        m_S.rightCols(dim-firstColS).applyOnTheLeft(zz,zz+1,G.adjoint());
+        m_T.rightCols(dim-zz).applyOnTheLeft(zz,zz+1,G.adjoint());
+        m_T.coeffRef(zz+1,zz+1) = Scalar(0.0);
+        // update Q
+        if (m_computeQZ)
+          m_Q.applyOnTheRight(zz,zz+1,G);
+        // kill S(zz+1, zz-1)
+        if (zz>f)
+        {
+          G.makeGivens(m_S.coeff(zz+1, zz), m_S.coeff(zz+1,zz-1));
+          m_S.topRows(zz+2).applyOnTheRight(zz, zz-1,G);
+          m_T.topRows(zz+1).applyOnTheRight(zz, zz-1,G);
+          m_S.coeffRef(zz+1,zz-1) = Scalar(0.0);
+          // update Z
+          if (m_computeQZ)
+            m_Z.applyOnTheLeft(zz,zz-1,G.adjoint());
+        }
+      }
+      // finally kill S(l,l-1)
+      G.makeGivens(m_S.coeff(l,l), m_S.coeff(l,l-1));
+      m_S.applyOnTheRight(l,l-1,G);
+      m_T.applyOnTheRight(l,l-1,G);
+      m_S.coeffRef(l,l-1)=Scalar(0.0);
+      // update Z
+      if (m_computeQZ)
+        m_Z.applyOnTheLeft(l,l-1,G.adjoint());
+    }
+
+  /** \internal QR-like iterative step for block f..l */
+  template<typename MatrixType>
+    inline void RealQZ<MatrixType>::step(Index f, Index l, Index iter)
+    {
+      using std::abs;
+      const Index dim = m_S.cols();
+
+      // x, y, z
+      Scalar x, y, z;
+      if (iter==10)
+      {
+        // Wilkinson ad hoc shift
+        const Scalar
+          a11=m_S.coeff(f+0,f+0), a12=m_S.coeff(f+0,f+1),
+          a21=m_S.coeff(f+1,f+0), a22=m_S.coeff(f+1,f+1), a32=m_S.coeff(f+2,f+1),
+          b12=m_T.coeff(f+0,f+1),
+          b11i=Scalar(1.0)/m_T.coeff(f+0,f+0),
+          b22i=Scalar(1.0)/m_T.coeff(f+1,f+1),
+          a87=m_S.coeff(l-1,l-2),
+          a98=m_S.coeff(l-0,l-1),
+          b77i=Scalar(1.0)/m_T.coeff(l-2,l-2),
+          b88i=Scalar(1.0)/m_T.coeff(l-1,l-1);
+        Scalar ss = abs(a87*b77i) + abs(a98*b88i),
+               lpl = Scalar(1.5)*ss,
+               ll = ss*ss;
+        x = ll + a11*a11*b11i*b11i - lpl*a11*b11i + a12*a21*b11i*b22i
+          - a11*a21*b12*b11i*b11i*b22i;
+        y = a11*a21*b11i*b11i - lpl*a21*b11i + a21*a22*b11i*b22i 
+          - a21*a21*b12*b11i*b11i*b22i;
+        z = a21*a32*b11i*b22i;
+      }
+      else if (iter==16)
+      {
+        // another exceptional shift
+        x = m_S.coeff(f,f)/m_T.coeff(f,f)-m_S.coeff(l,l)/m_T.coeff(l,l) + m_S.coeff(l,l-1)*m_T.coeff(l-1,l) /
+          (m_T.coeff(l-1,l-1)*m_T.coeff(l,l));
+        y = m_S.coeff(f+1,f)/m_T.coeff(f,f);
+        z = 0;
+      }
+      else if (iter>23 && !(iter%8))
+      {
+        // extremely exceptional shift
+        x = internal::random<Scalar>(-1.0,1.0);
+        y = internal::random<Scalar>(-1.0,1.0);
+        z = internal::random<Scalar>(-1.0,1.0);
+      }
+      else
+      {
+        // Compute the shifts: (x,y,z,0...) = (AB^-1 - l1 I) (AB^-1 - l2 I) e1
+        // where l1 and l2 are the eigenvalues of the 2x2 matrix C = U V^-1 where
+        // U and V are 2x2 bottom right sub matrices of A and B. Thus:
+        //  = AB^-1AB^-1 + l1 l2 I - (l1+l2)(AB^-1)
+        //  = AB^-1AB^-1 + det(M) - tr(M)(AB^-1)
+        // Since we are only interested in having x, y, z with a correct ratio, we have:
+        const Scalar
+          a11 = m_S.coeff(f,f),     a12 = m_S.coeff(f,f+1),
+          a21 = m_S.coeff(f+1,f),   a22 = m_S.coeff(f+1,f+1),
+                                    a32 = m_S.coeff(f+2,f+1),
+
+          a88 = m_S.coeff(l-1,l-1), a89 = m_S.coeff(l-1,l),
+          a98 = m_S.coeff(l,l-1),   a99 = m_S.coeff(l,l),
+
+          b11 = m_T.coeff(f,f),     b12 = m_T.coeff(f,f+1),
+                                    b22 = m_T.coeff(f+1,f+1),
+
+          b88 = m_T.coeff(l-1,l-1), b89 = m_T.coeff(l-1,l),
+                                    b99 = m_T.coeff(l,l);
+
+        x = ( (a88/b88 - a11/b11)*(a99/b99 - a11/b11) - (a89/b99)*(a98/b88) + (a98/b88)*(b89/b99)*(a11/b11) ) * (b11/a21)
+          + a12/b22 - (a11/b11)*(b12/b22);
+        y = (a22/b22-a11/b11) - (a21/b11)*(b12/b22) - (a88/b88-a11/b11) - (a99/b99-a11/b11) + (a98/b88)*(b89/b99);
+        z = a32/b22;
+      }
+
+      JRs G;
+
+      for (Index k=f; k<=l-2; k++)
+      {
+        // variables for Householder reflections
+        Vector2s essential2;
+        Scalar tau, beta;
+
+        Vector3s hr(x,y,z);
+
+        // Q_k to annihilate S(k+1,k-1) and S(k+2,k-1)
+        hr.makeHouseholderInPlace(tau, beta);
+        essential2 = hr.template bottomRows<2>();
+        Index fc=(std::max)(k-1,Index(0));  // first col to update
+        m_S.template middleRows<3>(k).rightCols(dim-fc).applyHouseholderOnTheLeft(essential2, tau, m_workspace.data());
+        m_T.template middleRows<3>(k).rightCols(dim-fc).applyHouseholderOnTheLeft(essential2, tau, m_workspace.data());
+        if (m_computeQZ)
+          m_Q.template middleCols<3>(k).applyHouseholderOnTheRight(essential2, tau, m_workspace.data());
+        if (k>f)
+          m_S.coeffRef(k+2,k-1) = m_S.coeffRef(k+1,k-1) = Scalar(0.0);
+
+        // Z_{k1} to annihilate T(k+2,k+1) and T(k+2,k)
+        hr << m_T.coeff(k+2,k+2),m_T.coeff(k+2,k),m_T.coeff(k+2,k+1);
+        hr.makeHouseholderInPlace(tau, beta);
+        essential2 = hr.template bottomRows<2>();
+        {
+          Index lr = (std::min)(k+4,dim); // last row to update
+          Map<Matrix<Scalar,Dynamic,1> > tmp(m_workspace.data(),lr);
+          // S
+          tmp = m_S.template middleCols<2>(k).topRows(lr) * essential2;
+          tmp += m_S.col(k+2).head(lr);
+          m_S.col(k+2).head(lr) -= tau*tmp;
+          m_S.template middleCols<2>(k).topRows(lr) -= (tau*tmp) * essential2.adjoint();
+          // T
+          tmp = m_T.template middleCols<2>(k).topRows(lr) * essential2;
+          tmp += m_T.col(k+2).head(lr);
+          m_T.col(k+2).head(lr) -= tau*tmp;
+          m_T.template middleCols<2>(k).topRows(lr) -= (tau*tmp) * essential2.adjoint();
+        }
+        if (m_computeQZ)
+        {
+          // Z
+          Map<Matrix<Scalar,1,Dynamic> > tmp(m_workspace.data(),dim);
+          tmp = essential2.adjoint()*(m_Z.template middleRows<2>(k));
+          tmp += m_Z.row(k+2);
+          m_Z.row(k+2) -= tau*tmp;
+          m_Z.template middleRows<2>(k) -= essential2 * (tau*tmp);
+        }
+        m_T.coeffRef(k+2,k) = m_T.coeffRef(k+2,k+1) = Scalar(0.0);
+
+        // Z_{k2} to annihilate T(k+1,k)
+        G.makeGivens(m_T.coeff(k+1,k+1), m_T.coeff(k+1,k));
+        m_S.applyOnTheRight(k+1,k,G);
+        m_T.applyOnTheRight(k+1,k,G);
+        // update Z
+        if (m_computeQZ)
+          m_Z.applyOnTheLeft(k+1,k,G.adjoint());
+        m_T.coeffRef(k+1,k) = Scalar(0.0);
+
+        // update x,y,z
+        x = m_S.coeff(k+1,k);
+        y = m_S.coeff(k+2,k);
+        if (k < l-2)
+          z = m_S.coeff(k+3,k);
+      } // loop over k
+
+      // Q_{n-1} to annihilate y = S(l,l-2)
+      G.makeGivens(x,y);
+      m_S.applyOnTheLeft(l-1,l,G.adjoint());
+      m_T.applyOnTheLeft(l-1,l,G.adjoint());
+      if (m_computeQZ)
+        m_Q.applyOnTheRight(l-1,l,G);
+      m_S.coeffRef(l,l-2) = Scalar(0.0);
+
+      // Z_{n-1} to annihilate T(l,l-1)
+      G.makeGivens(m_T.coeff(l,l),m_T.coeff(l,l-1));
+      m_S.applyOnTheRight(l,l-1,G);
+      m_T.applyOnTheRight(l,l-1,G);
+      if (m_computeQZ)
+        m_Z.applyOnTheLeft(l,l-1,G.adjoint());
+      m_T.coeffRef(l,l-1) = Scalar(0.0);
+    }
+
+
+  template<typename MatrixType>
+    RealQZ<MatrixType>& RealQZ<MatrixType>::compute(const MatrixType& A_in, const MatrixType& B_in, bool computeQZ)
+    {
+
+      const Index dim = A_in.cols();
+
+      eigen_assert (A_in.rows()==dim && A_in.cols()==dim 
+          && B_in.rows()==dim && B_in.cols()==dim 
+          && "Need square matrices of the same dimension");
+
+      m_isInitialized = true;
+      m_computeQZ = computeQZ;
+      m_S = A_in; m_T = B_in;
+      m_workspace.resize(dim*2);
+      m_global_iter = 0;
+
+      // entrance point: hessenberg triangular decomposition
+      hessenbergTriangular();
+      // compute L1 vector norms of T, S into m_normOfS, m_normOfT
+      computeNorms();
+
+      Index l = dim-1, 
+            f, 
+            local_iter = 0;
+
+      while (l>0 && local_iter<m_maxIters)
+      {
+        f = findSmallSubdiagEntry(l);
+        // now rows and columns f..l (including) decouple from the rest of the problem
+        if (f>0) m_S.coeffRef(f,f-1) = Scalar(0.0);
+        if (f == l) // One root found
+        {
+          l--;
+          local_iter = 0;
+        }
+        else if (f == l-1) // Two roots found
+        {
+          splitOffTwoRows(f);
+          l -= 2;
+          local_iter = 0;
+        }
+        else // No convergence yet
+        {
+          // if there's zero on diagonal of T, we can isolate an eigenvalue with Givens rotations
+          Index z = findSmallDiagEntry(f,l);
+          if (z>=f)
+          {
+            // zero found
+            pushDownZero(z,f,l);
+          }
+          else
+          {
+            // We are sure now that S.block(f,f, l-f+1,l-f+1) is underuced upper-Hessenberg 
+            // and T.block(f,f, l-f+1,l-f+1) is invertible uper-triangular, which allows to
+            // apply a QR-like iteration to rows and columns f..l.
+            step(f,l, local_iter);
+            local_iter++;
+            m_global_iter++;
+          }
+        }
+      }
+      // check if we converged before reaching iterations limit
+      m_info = (local_iter<m_maxIters) ? Success : NoConvergence;
+      return *this;
+    } // end compute
+
+} // end namespace Eigen
+
+#endif //EIGEN_REAL_QZ
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/RealSchur.h b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/RealSchur.h
new file mode 100644
index 0000000..16d3875
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/RealSchur.h
@@ -0,0 +1,525 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2010,2012 Jitse Niesen <jitse at maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REAL_SCHUR_H
+#define EIGEN_REAL_SCHUR_H
+
+#include "./HessenbergDecomposition.h"
+
+namespace Eigen { 
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class RealSchur
+  *
+  * \brief Performs a real Schur decomposition of a square matrix
+  *
+  * \tparam _MatrixType the type of the matrix of which we are computing the
+  * real Schur decomposition; this is expected to be an instantiation of the
+  * Matrix class template.
+  *
+  * Given a real square matrix A, this class computes the real Schur
+  * decomposition: \f$ A = U T U^T \f$ where U is a real orthogonal matrix and
+  * T is a real quasi-triangular matrix. An orthogonal matrix is a matrix whose
+  * inverse is equal to its transpose, \f$ U^{-1} = U^T \f$. A quasi-triangular
+  * matrix is a block-triangular matrix whose diagonal consists of 1-by-1
+  * blocks and 2-by-2 blocks with complex eigenvalues. The eigenvalues of the
+  * blocks on the diagonal of T are the same as the eigenvalues of the matrix
+  * A, and thus the real Schur decomposition is used in EigenSolver to compute
+  * the eigendecomposition of a matrix.
+  *
+  * Call the function compute() to compute the real Schur decomposition of a
+  * given matrix. Alternatively, you can use the RealSchur(const MatrixType&, bool)
+  * constructor which computes the real Schur decomposition at construction
+  * time. Once the decomposition is computed, you can use the matrixU() and
+  * matrixT() functions to retrieve the matrices U and T in the decomposition.
+  *
+  * The documentation of RealSchur(const MatrixType&, bool) contains an example
+  * of the typical use of this class.
+  *
+  * \note The implementation is adapted from
+  * <a href="http://math.nist.gov/javanumerics/jama/">JAMA</a> (public domain).
+  * Their code is based on EISPACK.
+  *
+  * \sa class ComplexSchur, class EigenSolver, class ComplexEigenSolver
+  */
+template<typename _MatrixType> class RealSchur
+{
+  public:
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef std::complex<typename NumTraits<Scalar>::Real> ComplexScalar;
+    typedef typename MatrixType::Index Index;
+
+    typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> EigenvalueType;
+    typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ColumnVectorType;
+
+    /** \brief Default constructor.
+      *
+      * \param [in] size  Positive integer, size of the matrix whose Schur decomposition will be computed.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via compute().  The \p size parameter is only
+      * used as a hint. It is not an error to give a wrong \p size, but it may
+      * impair performance.
+      *
+      * \sa compute() for an example.
+      */
+    RealSchur(Index size = RowsAtCompileTime==Dynamic ? 1 : RowsAtCompileTime)
+            : m_matT(size, size),
+              m_matU(size, size),
+              m_workspaceVector(size),
+              m_hess(size),
+              m_isInitialized(false),
+              m_matUisUptodate(false),
+              m_maxIters(-1)
+    { }
+
+    /** \brief Constructor; computes real Schur decomposition of given matrix. 
+      * 
+      * \param[in]  matrix    Square matrix whose Schur decomposition is to be computed.
+      * \param[in]  computeU  If true, both T and U are computed; if false, only T is computed.
+      *
+      * This constructor calls compute() to compute the Schur decomposition.
+      *
+      * Example: \include RealSchur_RealSchur_MatrixType.cpp
+      * Output: \verbinclude RealSchur_RealSchur_MatrixType.out
+      */
+    RealSchur(const MatrixType& matrix, bool computeU = true)
+            : m_matT(matrix.rows(),matrix.cols()),
+              m_matU(matrix.rows(),matrix.cols()),
+              m_workspaceVector(matrix.rows()),
+              m_hess(matrix.rows()),
+              m_isInitialized(false),
+              m_matUisUptodate(false),
+              m_maxIters(-1)
+    {
+      compute(matrix, computeU);
+    }
+
+    /** \brief Returns the orthogonal matrix in the Schur decomposition. 
+      *
+      * \returns A const reference to the matrix U.
+      *
+      * \pre Either the constructor RealSchur(const MatrixType&, bool) or the
+      * member function compute(const MatrixType&, bool) has been called before
+      * to compute the Schur decomposition of a matrix, and \p computeU was set
+      * to true (the default value).
+      *
+      * \sa RealSchur(const MatrixType&, bool) for an example
+      */
+    const MatrixType& matrixU() const
+    {
+      eigen_assert(m_isInitialized && "RealSchur is not initialized.");
+      eigen_assert(m_matUisUptodate && "The matrix U has not been computed during the RealSchur decomposition.");
+      return m_matU;
+    }
+
+    /** \brief Returns the quasi-triangular matrix in the Schur decomposition. 
+      *
+      * \returns A const reference to the matrix T.
+      *
+      * \pre Either the constructor RealSchur(const MatrixType&, bool) or the
+      * member function compute(const MatrixType&, bool) has been called before
+      * to compute the Schur decomposition of a matrix.
+      *
+      * \sa RealSchur(const MatrixType&, bool) for an example
+      */
+    const MatrixType& matrixT() const
+    {
+      eigen_assert(m_isInitialized && "RealSchur is not initialized.");
+      return m_matT;
+    }
+  
+    /** \brief Computes Schur decomposition of given matrix. 
+      * 
+      * \param[in]  matrix    Square matrix whose Schur decomposition is to be computed.
+      * \param[in]  computeU  If true, both T and U are computed; if false, only T is computed.
+      * \returns    Reference to \c *this
+      *
+      * The Schur decomposition is computed by first reducing the matrix to
+      * Hessenberg form using the class HessenbergDecomposition. The Hessenberg
+      * matrix is then reduced to triangular form by performing Francis QR
+      * iterations with implicit double shift. The cost of computing the Schur
+      * decomposition depends on the number of iterations; as a rough guide, it
+      * may be taken to be \f$25n^3\f$ flops if \a computeU is true and
+      * \f$10n^3\f$ flops if \a computeU is false.
+      *
+      * Example: \include RealSchur_compute.cpp
+      * Output: \verbinclude RealSchur_compute.out
+      *
+      * \sa compute(const MatrixType&, bool, Index)
+      */
+    RealSchur& compute(const MatrixType& matrix, bool computeU = true);
+
+    /** \brief Computes Schur decomposition of a Hessenberg matrix H = Z T Z^T
+     *  \param[in] matrixH Matrix in Hessenberg form H
+     *  \param[in] matrixQ orthogonal matrix Q that transform a matrix A to H : A = Q H Q^T
+     *  \param computeU Computes the matriX U of the Schur vectors
+     * \return Reference to \c *this
+     * 
+     *  This routine assumes that the matrix is already reduced in Hessenberg form matrixH
+     *  using either the class HessenbergDecomposition or another mean. 
+     *  It computes the upper quasi-triangular matrix T of the Schur decomposition of H
+     *  When computeU is true, this routine computes the matrix U such that 
+     *  A = U T U^T =  (QZ) T (QZ)^T = Q H Q^T where A is the initial matrix
+     * 
+     * NOTE Q is referenced if computeU is true; so, if the initial orthogonal matrix
+     * is not available, the user should give an identity matrix (Q.setIdentity())
+     * 
+     * \sa compute(const MatrixType&, bool)
+     */
+    template<typename HessMatrixType, typename OrthMatrixType>
+    RealSchur& computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ,  bool computeU);
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "RealSchur is not initialized.");
+      return m_info;
+    }
+
+    /** \brief Sets the maximum number of iterations allowed. 
+      *
+      * If not specified by the user, the maximum number of iterations is m_maxIterationsPerRow times the size
+      * of the matrix.
+      */
+    RealSchur& setMaxIterations(Index maxIters)
+    {
+      m_maxIters = maxIters;
+      return *this;
+    }
+
+    /** \brief Returns the maximum number of iterations. */
+    Index getMaxIterations()
+    {
+      return m_maxIters;
+    }
+
+    /** \brief Maximum number of iterations per row.
+      *
+      * If not otherwise specified, the maximum number of iterations is this number times the size of the
+      * matrix. It is currently set to 40.
+      */
+    static const int m_maxIterationsPerRow = 40;
+
+  private:
+    
+    MatrixType m_matT;
+    MatrixType m_matU;
+    ColumnVectorType m_workspaceVector;
+    HessenbergDecomposition<MatrixType> m_hess;
+    ComputationInfo m_info;
+    bool m_isInitialized;
+    bool m_matUisUptodate;
+    Index m_maxIters;
+
+    typedef Matrix<Scalar,3,1> Vector3s;
+
+    Scalar computeNormOfT();
+    Index findSmallSubdiagEntry(Index iu);
+    void splitOffTwoRows(Index iu, bool computeU, const Scalar& exshift);
+    void computeShift(Index iu, Index iter, Scalar& exshift, Vector3s& shiftInfo);
+    void initFrancisQRStep(Index il, Index iu, const Vector3s& shiftInfo, Index& im, Vector3s& firstHouseholderVector);
+    void performFrancisQRStep(Index il, Index im, Index iu, bool computeU, const Vector3s& firstHouseholderVector, Scalar* workspace);
+};
+
+
+template<typename MatrixType>
+RealSchur<MatrixType>& RealSchur<MatrixType>::compute(const MatrixType& matrix, bool computeU)
+{
+  eigen_assert(matrix.cols() == matrix.rows());
+  Index maxIters = m_maxIters;
+  if (maxIters == -1)
+    maxIters = m_maxIterationsPerRow * matrix.rows();
+
+  // Step 1. Reduce to Hessenberg form
+  m_hess.compute(matrix);
+
+  // Step 2. Reduce to real Schur form  
+  computeFromHessenberg(m_hess.matrixH(), m_hess.matrixQ(), computeU);
+  
+  return *this;
+}
+template<typename MatrixType>
+template<typename HessMatrixType, typename OrthMatrixType>
+RealSchur<MatrixType>& RealSchur<MatrixType>::computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ,  bool computeU)
+{  
+  m_matT = matrixH; 
+  if(computeU)
+    m_matU = matrixQ;
+  
+  Index maxIters = m_maxIters;
+  if (maxIters == -1)
+    maxIters = m_maxIterationsPerRow * matrixH.rows();
+  m_workspaceVector.resize(m_matT.cols());
+  Scalar* workspace = &m_workspaceVector.coeffRef(0);
+
+  // The matrix m_matT is divided in three parts. 
+  // Rows 0,...,il-1 are decoupled from the rest because m_matT(il,il-1) is zero. 
+  // Rows il,...,iu is the part we are working on (the active window).
+  // Rows iu+1,...,end are already brought in triangular form.
+  Index iu = m_matT.cols() - 1;
+  Index iter = 0;      // iteration count for current eigenvalue
+  Index totalIter = 0; // iteration count for whole matrix
+  Scalar exshift(0);   // sum of exceptional shifts
+  Scalar norm = computeNormOfT();
+
+  if(norm!=0)
+  {
+    while (iu >= 0)
+    {
+      Index il = findSmallSubdiagEntry(iu);
+
+      // Check for convergence
+      if (il == iu) // One root found
+      {
+        m_matT.coeffRef(iu,iu) = m_matT.coeff(iu,iu) + exshift;
+        if (iu > 0)
+          m_matT.coeffRef(iu, iu-1) = Scalar(0);
+        iu--;
+        iter = 0;
+      }
+      else if (il == iu-1) // Two roots found
+      {
+        splitOffTwoRows(iu, computeU, exshift);
+        iu -= 2;
+        iter = 0;
+      }
+      else // No convergence yet
+      {
+        // The firstHouseholderVector vector has to be initialized to something to get rid of a silly GCC warning (-O1 -Wall -DNDEBUG )
+        Vector3s firstHouseholderVector(0,0,0), shiftInfo;
+        computeShift(iu, iter, exshift, shiftInfo);
+        iter = iter + 1;
+        totalIter = totalIter + 1;
+        if (totalIter > maxIters) break;
+        Index im;
+        initFrancisQRStep(il, iu, shiftInfo, im, firstHouseholderVector);
+        performFrancisQRStep(il, im, iu, computeU, firstHouseholderVector, workspace);
+      }
+    }
+  }
+  if(totalIter <= maxIters)
+    m_info = Success;
+  else
+    m_info = NoConvergence;
+
+  m_isInitialized = true;
+  m_matUisUptodate = computeU;
+  return *this;
+}
+
+/** \internal Computes and returns vector L1 norm of T */
+template<typename MatrixType>
+inline typename MatrixType::Scalar RealSchur<MatrixType>::computeNormOfT()
+{
+  const Index size = m_matT.cols();
+  // FIXME to be efficient the following would requires a triangular reduxion code
+  // Scalar norm = m_matT.upper().cwiseAbs().sum() 
+  //               + m_matT.bottomLeftCorner(size-1,size-1).diagonal().cwiseAbs().sum();
+  Scalar norm(0);
+  for (Index j = 0; j < size; ++j)
+    norm += m_matT.col(j).segment(0, (std::min)(size,j+2)).cwiseAbs().sum();
+  return norm;
+}
+
+/** \internal Look for single small sub-diagonal element and returns its index */
+template<typename MatrixType>
+inline typename MatrixType::Index RealSchur<MatrixType>::findSmallSubdiagEntry(Index iu)
+{
+  using std::abs;
+  Index res = iu;
+  while (res > 0)
+  {
+    Scalar s = abs(m_matT.coeff(res-1,res-1)) + abs(m_matT.coeff(res,res));
+    if (abs(m_matT.coeff(res,res-1)) <= NumTraits<Scalar>::epsilon() * s)
+      break;
+    res--;
+  }
+  return res;
+}
+
+/** \internal Update T given that rows iu-1 and iu decouple from the rest. */
+template<typename MatrixType>
+inline void RealSchur<MatrixType>::splitOffTwoRows(Index iu, bool computeU, const Scalar& exshift)
+{
+  using std::sqrt;
+  using std::abs;
+  const Index size = m_matT.cols();
+
+  // The eigenvalues of the 2x2 matrix [a b; c d] are 
+  // trace +/- sqrt(discr/4) where discr = tr^2 - 4*det, tr = a + d, det = ad - bc
+  Scalar p = Scalar(0.5) * (m_matT.coeff(iu-1,iu-1) - m_matT.coeff(iu,iu));
+  Scalar q = p * p + m_matT.coeff(iu,iu-1) * m_matT.coeff(iu-1,iu);   // q = tr^2 / 4 - det = discr/4
+  m_matT.coeffRef(iu,iu) += exshift;
+  m_matT.coeffRef(iu-1,iu-1) += exshift;
+
+  if (q >= Scalar(0)) // Two real eigenvalues
+  {
+    Scalar z = sqrt(abs(q));
+    JacobiRotation<Scalar> rot;
+    if (p >= Scalar(0))
+      rot.makeGivens(p + z, m_matT.coeff(iu, iu-1));
+    else
+      rot.makeGivens(p - z, m_matT.coeff(iu, iu-1));
+
+    m_matT.rightCols(size-iu+1).applyOnTheLeft(iu-1, iu, rot.adjoint());
+    m_matT.topRows(iu+1).applyOnTheRight(iu-1, iu, rot);
+    m_matT.coeffRef(iu, iu-1) = Scalar(0); 
+    if (computeU)
+      m_matU.applyOnTheRight(iu-1, iu, rot);
+  }
+
+  if (iu > 1) 
+    m_matT.coeffRef(iu-1, iu-2) = Scalar(0);
+}
+
+/** \internal Form shift in shiftInfo, and update exshift if an exceptional shift is performed. */
+template<typename MatrixType>
+inline void RealSchur<MatrixType>::computeShift(Index iu, Index iter, Scalar& exshift, Vector3s& shiftInfo)
+{
+  using std::sqrt;
+  using std::abs;
+  shiftInfo.coeffRef(0) = m_matT.coeff(iu,iu);
+  shiftInfo.coeffRef(1) = m_matT.coeff(iu-1,iu-1);
+  shiftInfo.coeffRef(2) = m_matT.coeff(iu,iu-1) * m_matT.coeff(iu-1,iu);
+
+  // Wilkinson's original ad hoc shift
+  if (iter == 10)
+  {
+    exshift += shiftInfo.coeff(0);
+    for (Index i = 0; i <= iu; ++i)
+      m_matT.coeffRef(i,i) -= shiftInfo.coeff(0);
+    Scalar s = abs(m_matT.coeff(iu,iu-1)) + abs(m_matT.coeff(iu-1,iu-2));
+    shiftInfo.coeffRef(0) = Scalar(0.75) * s;
+    shiftInfo.coeffRef(1) = Scalar(0.75) * s;
+    shiftInfo.coeffRef(2) = Scalar(-0.4375) * s * s;
+  }
+
+  // MATLAB's new ad hoc shift
+  if (iter == 30)
+  {
+    Scalar s = (shiftInfo.coeff(1) - shiftInfo.coeff(0)) / Scalar(2.0);
+    s = s * s + shiftInfo.coeff(2);
+    if (s > Scalar(0))
+    {
+      s = sqrt(s);
+      if (shiftInfo.coeff(1) < shiftInfo.coeff(0))
+        s = -s;
+      s = s + (shiftInfo.coeff(1) - shiftInfo.coeff(0)) / Scalar(2.0);
+      s = shiftInfo.coeff(0) - shiftInfo.coeff(2) / s;
+      exshift += s;
+      for (Index i = 0; i <= iu; ++i)
+        m_matT.coeffRef(i,i) -= s;
+      shiftInfo.setConstant(Scalar(0.964));
+    }
+  }
+}
+
+/** \internal Compute index im at which Francis QR step starts and the first Householder vector. */
+template<typename MatrixType>
+inline void RealSchur<MatrixType>::initFrancisQRStep(Index il, Index iu, const Vector3s& shiftInfo, Index& im, Vector3s& firstHouseholderVector)
+{
+  using std::abs;
+  Vector3s& v = firstHouseholderVector; // alias to save typing
+
+  for (im = iu-2; im >= il; --im)
+  {
+    const Scalar Tmm = m_matT.coeff(im,im);
+    const Scalar r = shiftInfo.coeff(0) - Tmm;
+    const Scalar s = shiftInfo.coeff(1) - Tmm;
+    v.coeffRef(0) = (r * s - shiftInfo.coeff(2)) / m_matT.coeff(im+1,im) + m_matT.coeff(im,im+1);
+    v.coeffRef(1) = m_matT.coeff(im+1,im+1) - Tmm - r - s;
+    v.coeffRef(2) = m_matT.coeff(im+2,im+1);
+    if (im == il) {
+      break;
+    }
+    const Scalar lhs = m_matT.coeff(im,im-1) * (abs(v.coeff(1)) + abs(v.coeff(2)));
+    const Scalar rhs = v.coeff(0) * (abs(m_matT.coeff(im-1,im-1)) + abs(Tmm) + abs(m_matT.coeff(im+1,im+1)));
+    if (abs(lhs) < NumTraits<Scalar>::epsilon() * rhs)
+      break;
+  }
+}
+
+/** \internal Perform a Francis QR step involving rows il:iu and columns im:iu. */
+template<typename MatrixType>
+inline void RealSchur<MatrixType>::performFrancisQRStep(Index il, Index im, Index iu, bool computeU, const Vector3s& firstHouseholderVector, Scalar* workspace)
+{
+  eigen_assert(im >= il);
+  eigen_assert(im <= iu-2);
+
+  const Index size = m_matT.cols();
+
+  for (Index k = im; k <= iu-2; ++k)
+  {
+    bool firstIteration = (k == im);
+
+    Vector3s v;
+    if (firstIteration)
+      v = firstHouseholderVector;
+    else
+      v = m_matT.template block<3,1>(k,k-1);
+
+    Scalar tau, beta;
+    Matrix<Scalar, 2, 1> ess;
+    v.makeHouseholder(ess, tau, beta);
+    
+    if (beta != Scalar(0)) // if v is not zero
+    {
+      if (firstIteration && k > il)
+        m_matT.coeffRef(k,k-1) = -m_matT.coeff(k,k-1);
+      else if (!firstIteration)
+        m_matT.coeffRef(k,k-1) = beta;
+
+      // These Householder transformations form the O(n^3) part of the algorithm
+      m_matT.block(k, k, 3, size-k).applyHouseholderOnTheLeft(ess, tau, workspace);
+      m_matT.block(0, k, (std::min)(iu,k+3) + 1, 3).applyHouseholderOnTheRight(ess, tau, workspace);
+      if (computeU)
+        m_matU.block(0, k, size, 3).applyHouseholderOnTheRight(ess, tau, workspace);
+    }
+  }
+
+  Matrix<Scalar, 2, 1> v = m_matT.template block<2,1>(iu-1, iu-2);
+  Scalar tau, beta;
+  Matrix<Scalar, 1, 1> ess;
+  v.makeHouseholder(ess, tau, beta);
+
+  if (beta != Scalar(0)) // if v is not zero
+  {
+    m_matT.coeffRef(iu-1, iu-2) = beta;
+    m_matT.block(iu-1, iu-1, 2, size-iu+1).applyHouseholderOnTheLeft(ess, tau, workspace);
+    m_matT.block(0, iu-1, iu+1, 2).applyHouseholderOnTheRight(ess, tau, workspace);
+    if (computeU)
+      m_matU.block(0, iu-1, size, 2).applyHouseholderOnTheRight(ess, tau, workspace);
+  }
+
+  // clean up pollution due to round-off errors
+  for (Index i = im+2; i <= iu; ++i)
+  {
+    m_matT.coeffRef(i,i-2) = Scalar(0);
+    if (i > im+2)
+      m_matT.coeffRef(i,i-3) = Scalar(0);
+  }
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_REAL_SCHUR_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/RealSchur_MKL.h b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/RealSchur_MKL.h
new file mode 100644
index 0000000..c3089b4
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/RealSchur_MKL.h
@@ -0,0 +1,79 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *    Real Schur needed to real unsymmetrical eigenvalues/eigenvectors.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_REAL_SCHUR_MKL_H
+#define EIGEN_REAL_SCHUR_MKL_H
+
+#include "Eigen/src/Core/util/MKL_support.h"
+
+namespace Eigen { 
+
+/** \internal Specialization for the data types supported by MKL */
+
+#define EIGEN_MKL_SCHUR_REAL(EIGTYPE, MKLTYPE, MKLPREFIX, MKLPREFIX_U, EIGCOLROW, MKLCOLROW) \
+template<> inline \
+RealSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >& \
+RealSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >::compute(const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW>& matrix, bool computeU) \
+{ \
+  eigen_assert(matrix.cols() == matrix.rows()); \
+\
+  lapack_int n = matrix.cols(), sdim, info; \
+  lapack_int lda = matrix.outerStride(); \
+  lapack_int matrix_order = MKLCOLROW; \
+  char jobvs, sort='N'; \
+  LAPACK_##MKLPREFIX_U##_SELECT2 select = 0; \
+  jobvs = (computeU) ? 'V' : 'N'; \
+  m_matU.resize(n, n); \
+  lapack_int ldvs  = m_matU.outerStride(); \
+  m_matT = matrix; \
+  Matrix<EIGTYPE, Dynamic, Dynamic> wr, wi; \
+  wr.resize(n, 1); wi.resize(n, 1); \
+  info = LAPACKE_##MKLPREFIX##gees( matrix_order, jobvs, sort, select, n, (MKLTYPE*)m_matT.data(), lda, &sdim, (MKLTYPE*)wr.data(), (MKLTYPE*)wi.data(), (MKLTYPE*)m_matU.data(), ldvs ); \
+  if(info == 0) \
+    m_info = Success; \
+  else \
+    m_info = NoConvergence; \
+\
+  m_isInitialized = true; \
+  m_matUisUptodate = computeU; \
+  return *this; \
+\
+}
+
+EIGEN_MKL_SCHUR_REAL(double,   double, d, D, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_SCHUR_REAL(float,    float,  s, S, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_SCHUR_REAL(double,   double, d, D, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_SCHUR_REAL(float,    float,  s, S, RowMajor, LAPACK_ROW_MAJOR)
+
+} // end namespace Eigen
+
+#endif // EIGEN_REAL_SCHUR_MKL_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
new file mode 100644
index 0000000..1131c8a
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
@@ -0,0 +1,801 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2010 Jitse Niesen <jitse at maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINTEIGENSOLVER_H
+#define EIGEN_SELFADJOINTEIGENSOLVER_H
+
+#include "./Tridiagonalization.h"
+
+namespace Eigen { 
+
+template<typename _MatrixType>
+class GeneralizedSelfAdjointEigenSolver;
+
+namespace internal {
+template<typename SolverType,int Size,bool IsComplex> struct direct_selfadjoint_eigenvalues;
+}
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class SelfAdjointEigenSolver
+  *
+  * \brief Computes eigenvalues and eigenvectors of selfadjoint matrices
+  *
+  * \tparam _MatrixType the type of the matrix of which we are computing the
+  * eigendecomposition; this is expected to be an instantiation of the Matrix
+  * class template.
+  *
+  * A matrix \f$ A \f$ is selfadjoint if it equals its adjoint. For real
+  * matrices, this means that the matrix is symmetric: it equals its
+  * transpose. This class computes the eigenvalues and eigenvectors of a
+  * selfadjoint matrix. These are the scalars \f$ \lambda \f$ and vectors
+  * \f$ v \f$ such that \f$ Av = \lambda v \f$.  The eigenvalues of a
+  * selfadjoint matrix are always real. If \f$ D \f$ is a diagonal matrix with
+  * the eigenvalues on the diagonal, and \f$ V \f$ is a matrix with the
+  * eigenvectors as its columns, then \f$ A = V D V^{-1} \f$ (for selfadjoint
+  * matrices, the matrix \f$ V \f$ is always invertible). This is called the
+  * eigendecomposition.
+  *
+  * The algorithm exploits the fact that the matrix is selfadjoint, making it
+  * faster and more accurate than the general purpose eigenvalue algorithms
+  * implemented in EigenSolver and ComplexEigenSolver.
+  *
+  * Only the \b lower \b triangular \b part of the input matrix is referenced.
+  *
+  * Call the function compute() to compute the eigenvalues and eigenvectors of
+  * a given matrix. Alternatively, you can use the
+  * SelfAdjointEigenSolver(const MatrixType&, int) constructor which computes
+  * the eigenvalues and eigenvectors at construction time. Once the eigenvalue
+  * and eigenvectors are computed, they can be retrieved with the eigenvalues()
+  * and eigenvectors() functions.
+  *
+  * The documentation for SelfAdjointEigenSolver(const MatrixType&, int)
+  * contains an example of the typical use of this class.
+  *
+  * To solve the \em generalized eigenvalue problem \f$ Av = \lambda Bv \f$ and
+  * the likes, see the class GeneralizedSelfAdjointEigenSolver.
+  *
+  * \sa MatrixBase::eigenvalues(), class EigenSolver, class ComplexEigenSolver
+  */
+template<typename _MatrixType> class SelfAdjointEigenSolver
+{
+  public:
+
+    typedef _MatrixType MatrixType;
+    enum {
+      Size = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    
+    /** \brief Scalar type for matrices of type \p _MatrixType. */
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+    
+    typedef Matrix<Scalar,Size,Size,ColMajor,MaxColsAtCompileTime,MaxColsAtCompileTime> EigenvectorsType;
+
+    /** \brief Real scalar type for \p _MatrixType.
+      *
+      * This is just \c Scalar if #Scalar is real (e.g., \c float or
+      * \c double), and the type of the real part of \c Scalar if #Scalar is
+      * complex.
+      */
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    
+    friend struct internal::direct_selfadjoint_eigenvalues<SelfAdjointEigenSolver,Size,NumTraits<Scalar>::IsComplex>;
+
+    /** \brief Type for vector of eigenvalues as returned by eigenvalues().
+      *
+      * This is a column vector with entries of type #RealScalar.
+      * The length of the vector is the size of \p _MatrixType.
+      */
+    typedef typename internal::plain_col_type<MatrixType, RealScalar>::type RealVectorType;
+    typedef Tridiagonalization<MatrixType> TridiagonalizationType;
+
+    /** \brief Default constructor for fixed-size matrices.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via compute(). This constructor
+      * can only be used if \p _MatrixType is a fixed-size matrix; use
+      * SelfAdjointEigenSolver(Index) for dynamic-size matrices.
+      *
+      * Example: \include SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_SelfAdjointEigenSolver.out
+      */
+    SelfAdjointEigenSolver()
+        : m_eivec(),
+          m_eivalues(),
+          m_subdiag(),
+          m_isInitialized(false)
+    { }
+
+    /** \brief Constructor, pre-allocates memory for dynamic-size matrices.
+      *
+      * \param [in]  size  Positive integer, size of the matrix whose
+      * eigenvalues and eigenvectors will be computed.
+      *
+      * This constructor is useful for dynamic-size matrices, when the user
+      * intends to perform decompositions via compute(). The \p size
+      * parameter is only used as a hint. It is not an error to give a wrong
+      * \p size, but it may impair performance.
+      *
+      * \sa compute() for an example
+      */
+    SelfAdjointEigenSolver(Index size)
+        : m_eivec(size, size),
+          m_eivalues(size),
+          m_subdiag(size > 1 ? size - 1 : 1),
+          m_isInitialized(false)
+    {}
+
+    /** \brief Constructor; computes eigendecomposition of given matrix.
+      *
+      * \param[in]  matrix  Selfadjoint matrix whose eigendecomposition is to
+      *    be computed. Only the lower triangular part of the matrix is referenced.
+      * \param[in]  options Can be #ComputeEigenvectors (default) or #EigenvaluesOnly.
+      *
+      * This constructor calls compute(const MatrixType&, int) to compute the
+      * eigenvalues of the matrix \p matrix. The eigenvectors are computed if
+      * \p options equals #ComputeEigenvectors.
+      *
+      * Example: \include SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.out
+      *
+      * \sa compute(const MatrixType&, int)
+      */
+    SelfAdjointEigenSolver(const MatrixType& matrix, int options = ComputeEigenvectors)
+      : m_eivec(matrix.rows(), matrix.cols()),
+        m_eivalues(matrix.cols()),
+        m_subdiag(matrix.rows() > 1 ? matrix.rows() - 1 : 1),
+        m_isInitialized(false)
+    {
+      compute(matrix, options);
+    }
+
+    /** \brief Computes eigendecomposition of given matrix.
+      *
+      * \param[in]  matrix  Selfadjoint matrix whose eigendecomposition is to
+      *    be computed. Only the lower triangular part of the matrix is referenced.
+      * \param[in]  options Can be #ComputeEigenvectors (default) or #EigenvaluesOnly.
+      * \returns    Reference to \c *this
+      *
+      * This function computes the eigenvalues of \p matrix.  The eigenvalues()
+      * function can be used to retrieve them.  If \p options equals #ComputeEigenvectors,
+      * then the eigenvectors are also computed and can be retrieved by
+      * calling eigenvectors().
+      *
+      * This implementation uses a symmetric QR algorithm. The matrix is first
+      * reduced to tridiagonal form using the Tridiagonalization class. The
+      * tridiagonal matrix is then brought to diagonal form with implicit
+      * symmetric QR steps with Wilkinson shift. Details can be found in
+      * Section 8.3 of Golub \& Van Loan, <i>%Matrix Computations</i>.
+      *
+      * The cost of the computation is about \f$ 9n^3 \f$ if the eigenvectors
+      * are required and \f$ 4n^3/3 \f$ if they are not required.
+      *
+      * This method reuses the memory in the SelfAdjointEigenSolver object that
+      * was allocated when the object was constructed, if the size of the
+      * matrix does not change.
+      *
+      * Example: \include SelfAdjointEigenSolver_compute_MatrixType.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_compute_MatrixType.out
+      *
+      * \sa SelfAdjointEigenSolver(const MatrixType&, int)
+      */
+    SelfAdjointEigenSolver& compute(const MatrixType& matrix, int options = ComputeEigenvectors);
+    
+    /** \brief Computes eigendecomposition of given matrix using a direct algorithm
+      *
+      * This is a variant of compute(const MatrixType&, int options) which
+      * directly solves the underlying polynomial equation.
+      * 
+      * Currently only 3x3 matrices for which the sizes are known at compile time are supported (e.g., Matrix3d).
+      * 
+      * This method is usually significantly faster than the QR algorithm
+      * but it might also be less accurate. It is also worth noting that
+      * for 3x3 matrices it involves trigonometric operations which are
+      * not necessarily available for all scalar types.
+      *
+      * \sa compute(const MatrixType&, int options)
+      */
+    SelfAdjointEigenSolver& computeDirect(const MatrixType& matrix, int options = ComputeEigenvectors);
+
+    /** \brief Returns the eigenvectors of given matrix.
+      *
+      * \returns  A const reference to the matrix whose columns are the eigenvectors.
+      *
+      * \pre The eigenvectors have been computed before.
+      *
+      * Column \f$ k \f$ of the returned matrix is an eigenvector corresponding
+      * to eigenvalue number \f$ k \f$ as returned by eigenvalues().  The
+      * eigenvectors are normalized to have (Euclidean) norm equal to one. If
+      * this object was used to solve the eigenproblem for the selfadjoint
+      * matrix \f$ A \f$, then the matrix returned by this function is the
+      * matrix \f$ V \f$ in the eigendecomposition \f$ A = V D V^{-1} \f$.
+      *
+      * Example: \include SelfAdjointEigenSolver_eigenvectors.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_eigenvectors.out
+      *
+      * \sa eigenvalues()
+      */
+    const EigenvectorsType& eigenvectors() const
+    {
+      eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+      eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+      return m_eivec;
+    }
+
+    /** \brief Returns the eigenvalues of given matrix.
+      *
+      * \returns A const reference to the column vector containing the eigenvalues.
+      *
+      * \pre The eigenvalues have been computed before.
+      *
+      * The eigenvalues are repeated according to their algebraic multiplicity,
+      * so there are as many eigenvalues as rows in the matrix. The eigenvalues
+      * are sorted in increasing order.
+      *
+      * Example: \include SelfAdjointEigenSolver_eigenvalues.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_eigenvalues.out
+      *
+      * \sa eigenvectors(), MatrixBase::eigenvalues()
+      */
+    const RealVectorType& eigenvalues() const
+    {
+      eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+      return m_eivalues;
+    }
+
+    /** \brief Computes the positive-definite square root of the matrix.
+      *
+      * \returns the positive-definite square root of the matrix
+      *
+      * \pre The eigenvalues and eigenvectors of a positive-definite matrix
+      * have been computed before.
+      *
+      * The square root of a positive-definite matrix \f$ A \f$ is the
+      * positive-definite matrix whose square equals \f$ A \f$. This function
+      * uses the eigendecomposition \f$ A = V D V^{-1} \f$ to compute the
+      * square root as \f$ A^{1/2} = V D^{1/2} V^{-1} \f$.
+      *
+      * Example: \include SelfAdjointEigenSolver_operatorSqrt.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_operatorSqrt.out
+      *
+      * \sa operatorInverseSqrt(),
+      *     \ref MatrixFunctions_Module "MatrixFunctions Module"
+      */
+    MatrixType operatorSqrt() const
+    {
+      eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+      eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+      return m_eivec * m_eivalues.cwiseSqrt().asDiagonal() * m_eivec.adjoint();
+    }
+
+    /** \brief Computes the inverse square root of the matrix.
+      *
+      * \returns the inverse positive-definite square root of the matrix
+      *
+      * \pre The eigenvalues and eigenvectors of a positive-definite matrix
+      * have been computed before.
+      *
+      * This function uses the eigendecomposition \f$ A = V D V^{-1} \f$ to
+      * compute the inverse square root as \f$ V D^{-1/2} V^{-1} \f$. This is
+      * cheaper than first computing the square root with operatorSqrt() and
+      * then its inverse with MatrixBase::inverse().
+      *
+      * Example: \include SelfAdjointEigenSolver_operatorInverseSqrt.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_operatorInverseSqrt.out
+      *
+      * \sa operatorSqrt(), MatrixBase::inverse(),
+      *     \ref MatrixFunctions_Module "MatrixFunctions Module"
+      */
+    MatrixType operatorInverseSqrt() const
+    {
+      eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+      eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+      return m_eivec * m_eivalues.cwiseInverse().cwiseSqrt().asDiagonal() * m_eivec.adjoint();
+    }
+
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+      return m_info;
+    }
+
+    /** \brief Maximum number of iterations.
+      *
+      * The algorithm terminates if it does not converge within m_maxIterations * n iterations, where n
+      * denotes the size of the matrix. This value is currently set to 30 (copied from LAPACK).
+      */
+    static const int m_maxIterations = 30;
+
+    #ifdef EIGEN2_SUPPORT
+    SelfAdjointEigenSolver(const MatrixType& matrix, bool computeEigenvectors)
+      : m_eivec(matrix.rows(), matrix.cols()),
+        m_eivalues(matrix.cols()),
+        m_subdiag(matrix.rows() > 1 ? matrix.rows() - 1 : 1),
+        m_isInitialized(false)
+    {
+      compute(matrix, computeEigenvectors);
+    }
+    
+    SelfAdjointEigenSolver(const MatrixType& matA, const MatrixType& matB, bool computeEigenvectors = true)
+        : m_eivec(matA.cols(), matA.cols()),
+          m_eivalues(matA.cols()),
+          m_subdiag(matA.cols() > 1 ? matA.cols() - 1 : 1),
+          m_isInitialized(false)
+    {
+      static_cast<GeneralizedSelfAdjointEigenSolver<MatrixType>*>(this)->compute(matA, matB, computeEigenvectors ? ComputeEigenvectors : EigenvaluesOnly);
+    }
+    
+    void compute(const MatrixType& matrix, bool computeEigenvectors)
+    {
+      compute(matrix, computeEigenvectors ? ComputeEigenvectors : EigenvaluesOnly);
+    }
+
+    void compute(const MatrixType& matA, const MatrixType& matB, bool computeEigenvectors = true)
+    {
+      compute(matA, matB, computeEigenvectors ? ComputeEigenvectors : EigenvaluesOnly);
+    }
+    #endif // EIGEN2_SUPPORT
+
+  protected:
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    EigenvectorsType m_eivec;
+    RealVectorType m_eivalues;
+    typename TridiagonalizationType::SubDiagonalType m_subdiag;
+    ComputationInfo m_info;
+    bool m_isInitialized;
+    bool m_eigenvectorsOk;
+};
+
+/** \internal
+  *
+  * \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  * Performs a QR step on a tridiagonal symmetric matrix represented as a
+  * pair of two vectors \a diag and \a subdiag.
+  *
+  * \param matA the input selfadjoint matrix
+  * \param hCoeffs returned Householder coefficients
+  *
+  * For compilation efficiency reasons, this procedure does not use eigen expression
+  * for its arguments.
+  *
+  * Implemented from Golub's "Matrix Computations", algorithm 8.3.2:
+  * "implicit symmetric QR step with Wilkinson shift"
+  */
+namespace internal {
+template<typename RealScalar, typename Scalar, typename Index>
+static void tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, Index start, Index end, Scalar* matrixQ, Index n);
+}
+
+template<typename MatrixType>
+SelfAdjointEigenSolver<MatrixType>& SelfAdjointEigenSolver<MatrixType>
+::compute(const MatrixType& matrix, int options)
+{
+  check_template_parameters();
+  
+  using std::abs;
+  eigen_assert(matrix.cols() == matrix.rows());
+  eigen_assert((options&~(EigVecMask|GenEigMask))==0
+          && (options&EigVecMask)!=EigVecMask
+          && "invalid option parameter");
+  bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors;
+  Index n = matrix.cols();
+  m_eivalues.resize(n,1);
+
+  if(n==1)
+  {
+    m_eivalues.coeffRef(0,0) = numext::real(matrix.coeff(0,0));
+    if(computeEigenvectors)
+      m_eivec.setOnes(n,n);
+    m_info = Success;
+    m_isInitialized = true;
+    m_eigenvectorsOk = computeEigenvectors;
+    return *this;
+  }
+
+  // declare some aliases
+  RealVectorType& diag = m_eivalues;
+  EigenvectorsType& mat = m_eivec;
+
+  // map the matrix coefficients to [-1:1] to avoid over- and underflow.
+  mat = matrix.template triangularView<Lower>();
+  RealScalar scale = mat.cwiseAbs().maxCoeff();
+  if(scale==RealScalar(0)) scale = RealScalar(1);
+  mat.template triangularView<Lower>() /= scale;
+  m_subdiag.resize(n-1);
+  internal::tridiagonalization_inplace(mat, diag, m_subdiag, computeEigenvectors);
+  
+  Index end = n-1;
+  Index start = 0;
+  Index iter = 0; // total number of iterations
+
+  while (end>0)
+  {
+    for (Index i = start; i<end; ++i)
+      if (internal::isMuchSmallerThan(abs(m_subdiag[i]),(abs(diag[i])+abs(diag[i+1]))))
+        m_subdiag[i] = 0;
+
+    // find the largest unreduced block
+    while (end>0 && m_subdiag[end-1]==0)
+    {
+      end--;
+    }
+    if (end<=0)
+      break;
+
+    // if we spent too many iterations, we give up
+    iter++;
+    if(iter > m_maxIterations * n) break;
+
+    start = end - 1;
+    while (start>0 && m_subdiag[start-1]!=0)
+      start--;
+
+    internal::tridiagonal_qr_step(diag.data(), m_subdiag.data(), start, end, computeEigenvectors ? m_eivec.data() : (Scalar*)0, n);
+  }
+
+  if (iter <= m_maxIterations * n)
+    m_info = Success;
+  else
+    m_info = NoConvergence;
+
+  // Sort eigenvalues and corresponding vectors.
+  // TODO make the sort optional ?
+  // TODO use a better sort algorithm !!
+  if (m_info == Success)
+  {
+    for (Index i = 0; i < n-1; ++i)
+    {
+      Index k;
+      m_eivalues.segment(i,n-i).minCoeff(&k);
+      if (k > 0)
+      {
+        std::swap(m_eivalues[i], m_eivalues[k+i]);
+        if(computeEigenvectors)
+          m_eivec.col(i).swap(m_eivec.col(k+i));
+      }
+    }
+  }
+  
+  // scale back the eigen values
+  m_eivalues *= scale;
+
+  m_isInitialized = true;
+  m_eigenvectorsOk = computeEigenvectors;
+  return *this;
+}
+
+
+namespace internal {
+  
+template<typename SolverType,int Size,bool IsComplex> struct direct_selfadjoint_eigenvalues
+{
+  static inline void run(SolverType& eig, const typename SolverType::MatrixType& A, int options)
+  { eig.compute(A,options); }
+};
+
+template<typename SolverType> struct direct_selfadjoint_eigenvalues<SolverType,3,false>
+{
+  typedef typename SolverType::MatrixType MatrixType;
+  typedef typename SolverType::RealVectorType VectorType;
+  typedef typename SolverType::Scalar Scalar;
+  typedef typename MatrixType::Index Index;
+  typedef typename SolverType::EigenvectorsType EigenvectorsType;
+  
+  /** \internal
+   * Computes the roots of the characteristic polynomial of \a m.
+   * For numerical stability m.trace() should be near zero and to avoid over- or underflow m should be normalized.
+   */
+  static inline void computeRoots(const MatrixType& m, VectorType& roots)
+  {
+    using std::sqrt;
+    using std::atan2;
+    using std::cos;
+    using std::sin;
+    const Scalar s_inv3 = Scalar(1.0)/Scalar(3.0);
+    const Scalar s_sqrt3 = sqrt(Scalar(3.0));
+
+    // The characteristic equation is x^3 - c2*x^2 + c1*x - c0 = 0.  The
+    // eigenvalues are the roots to this equation, all guaranteed to be
+    // real-valued, because the matrix is symmetric.
+    Scalar c0 = m(0,0)*m(1,1)*m(2,2) + Scalar(2)*m(1,0)*m(2,0)*m(2,1) - m(0,0)*m(2,1)*m(2,1) - m(1,1)*m(2,0)*m(2,0) - m(2,2)*m(1,0)*m(1,0);
+    Scalar c1 = m(0,0)*m(1,1) - m(1,0)*m(1,0) + m(0,0)*m(2,2) - m(2,0)*m(2,0) + m(1,1)*m(2,2) - m(2,1)*m(2,1);
+    Scalar c2 = m(0,0) + m(1,1) + m(2,2);
+
+    // Construct the parameters used in classifying the roots of the equation
+    // and in solving the equation for the roots in closed form.
+    Scalar c2_over_3 = c2*s_inv3;
+    Scalar a_over_3 = (c2*c2_over_3 - c1)*s_inv3;
+    if(a_over_3<Scalar(0))
+      a_over_3 = Scalar(0);
+
+    Scalar half_b = Scalar(0.5)*(c0 + c2_over_3*(Scalar(2)*c2_over_3*c2_over_3 - c1));
+
+    Scalar q = a_over_3*a_over_3*a_over_3 - half_b*half_b;
+    if(q<Scalar(0))
+      q = Scalar(0);
+
+    // Compute the eigenvalues by solving for the roots of the polynomial.
+    Scalar rho = sqrt(a_over_3);
+    Scalar theta = atan2(sqrt(q),half_b)*s_inv3;  // since sqrt(q) > 0, atan2 is in [0, pi] and theta is in [0, pi/3]
+    Scalar cos_theta = cos(theta);
+    Scalar sin_theta = sin(theta);
+    // roots are already sorted, since cos is monotonically decreasing on [0, pi]
+    roots(0) = c2_over_3 - rho*(cos_theta + s_sqrt3*sin_theta); // == 2*rho*cos(theta+2pi/3)
+    roots(1) = c2_over_3 - rho*(cos_theta - s_sqrt3*sin_theta); // == 2*rho*cos(theta+ pi/3)
+    roots(2) = c2_over_3 + Scalar(2)*rho*cos_theta;
+  }
+
+  static inline bool extract_kernel(MatrixType& mat, Ref<VectorType> res, Ref<VectorType> representative)
+  {
+    using std::abs;
+    Index i0;
+    // Find non-zero column i0 (by construction, there must exist a non zero coefficient on the diagonal):
+    mat.diagonal().cwiseAbs().maxCoeff(&i0);
+    // mat.col(i0) is a good candidate for an orthogonal vector to the current eigenvector,
+    // so let's save it:
+    representative = mat.col(i0);
+    Scalar n0, n1;
+    VectorType c0, c1;
+    n0 = (c0 = representative.cross(mat.col((i0+1)%3))).squaredNorm();
+    n1 = (c1 = representative.cross(mat.col((i0+2)%3))).squaredNorm();
+    if(n0>n1) res = c0/std::sqrt(n0);
+    else      res = c1/std::sqrt(n1);
+
+    return true;
+  }
+
+  static inline void run(SolverType& solver, const MatrixType& mat, int options)
+  {
+    eigen_assert(mat.cols() == 3 && mat.cols() == mat.rows());
+    eigen_assert((options&~(EigVecMask|GenEigMask))==0
+            && (options&EigVecMask)!=EigVecMask
+            && "invalid option parameter");
+    bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors;
+    
+    EigenvectorsType& eivecs = solver.m_eivec;
+    VectorType& eivals = solver.m_eivalues;
+  
+    // Shift the matrix to the mean eigenvalue and map the matrix coefficients to [-1:1] to avoid over- and underflow.
+    Scalar shift = mat.trace() / Scalar(3);
+    // TODO Avoid this copy. Currently it is necessary to suppress bogus values when determining maxCoeff and for computing the eigenvectors later
+    MatrixType scaledMat = mat.template selfadjointView<Lower>();
+    scaledMat.diagonal().array() -= shift;
+    Scalar scale = scaledMat.cwiseAbs().maxCoeff();
+    if(scale > 0) scaledMat /= scale;   // TODO for scale==0 we could save the remaining operations
+
+    // compute the eigenvalues
+    computeRoots(scaledMat,eivals);
+
+    // compute the eigenvectors
+    if(computeEigenvectors)
+    {
+      if((eivals(2)-eivals(0))<=Eigen::NumTraits<Scalar>::epsilon())
+      {
+        // All three eigenvalues are numerically the same
+        eivecs.setIdentity();
+      }
+      else
+      {
+        MatrixType tmp;
+        tmp = scaledMat;
+
+        // Compute the eigenvector of the most distinct eigenvalue
+        Scalar d0 = eivals(2) - eivals(1);
+        Scalar d1 = eivals(1) - eivals(0);
+        Index k(0), l(2);
+        if(d0 > d1)
+        {
+          std::swap(k,l);
+          d0 = d1;
+        }
+
+        // Compute the eigenvector of index k
+        {
+          tmp.diagonal().array () -= eivals(k);
+          // By construction, 'tmp' is of rank 2, and its kernel corresponds to the respective eigenvector.
+          extract_kernel(tmp, eivecs.col(k), eivecs.col(l));
+        }
+
+        // Compute eigenvector of index l
+        if(d0<=2*Eigen::NumTraits<Scalar>::epsilon()*d1)
+        {
+          // If d0 is too small, then the two other eigenvalues are numerically the same,
+          // and thus we only have to ortho-normalize the near orthogonal vector we saved above.
+          eivecs.col(l) -= eivecs.col(k).dot(eivecs.col(l))*eivecs.col(l);
+          eivecs.col(l).normalize();
+        }
+        else
+        {
+          tmp = scaledMat;
+          tmp.diagonal().array () -= eivals(l);
+
+          VectorType dummy;
+          extract_kernel(tmp, eivecs.col(l), dummy);
+        }
+
+        // Compute last eigenvector from the other two
+        eivecs.col(1) = eivecs.col(2).cross(eivecs.col(0)).normalized();
+      }
+    }
+
+    // Rescale back to the original size.
+    eivals *= scale;
+    eivals.array() += shift;
+    
+    solver.m_info = Success;
+    solver.m_isInitialized = true;
+    solver.m_eigenvectorsOk = computeEigenvectors;
+  }
+};
+
+// 2x2 direct eigenvalues decomposition, code from Hauke Heibel
+template<typename SolverType> struct direct_selfadjoint_eigenvalues<SolverType,2,false>
+{
+  typedef typename SolverType::MatrixType MatrixType;
+  typedef typename SolverType::RealVectorType VectorType;
+  typedef typename SolverType::Scalar Scalar;
+  typedef typename SolverType::EigenvectorsType EigenvectorsType;
+  
+  static inline void computeRoots(const MatrixType& m, VectorType& roots)
+  {
+    using std::sqrt;
+    const Scalar t0 = Scalar(0.5) * sqrt( numext::abs2(m(0,0)-m(1,1)) + Scalar(4)*numext::abs2(m(1,0)));
+    const Scalar t1 = Scalar(0.5) * (m(0,0) + m(1,1));
+    roots(0) = t1 - t0;
+    roots(1) = t1 + t0;
+  }
+  
+  static inline void run(SolverType& solver, const MatrixType& mat, int options)
+  {
+    using std::sqrt;
+    using std::abs;
+
+    eigen_assert(mat.cols() == 2 && mat.cols() == mat.rows());
+    eigen_assert((options&~(EigVecMask|GenEigMask))==0
+            && (options&EigVecMask)!=EigVecMask
+            && "invalid option parameter");
+    bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors;
+    
+    EigenvectorsType& eivecs = solver.m_eivec;
+    VectorType& eivals = solver.m_eivalues;
+  
+    // map the matrix coefficients to [-1:1] to avoid over- and underflow.
+    Scalar scale = mat.cwiseAbs().maxCoeff();
+    scale = (std::max)(scale,Scalar(1));
+    MatrixType scaledMat = mat / scale;
+    
+    // Compute the eigenvalues
+    computeRoots(scaledMat,eivals);
+    
+    // compute the eigen vectors
+    if(computeEigenvectors)
+    {
+      if((eivals(1)-eivals(0))<=abs(eivals(1))*Eigen::NumTraits<Scalar>::epsilon())
+      {
+        eivecs.setIdentity();
+      }
+      else
+      {
+        scaledMat.diagonal().array () -= eivals(1);
+        Scalar a2 = numext::abs2(scaledMat(0,0));
+        Scalar c2 = numext::abs2(scaledMat(1,1));
+        Scalar b2 = numext::abs2(scaledMat(1,0));
+        if(a2>c2)
+        {
+          eivecs.col(1) << -scaledMat(1,0), scaledMat(0,0);
+          eivecs.col(1) /= sqrt(a2+b2);
+        }
+        else
+        {
+          eivecs.col(1) << -scaledMat(1,1), scaledMat(1,0);
+          eivecs.col(1) /= sqrt(c2+b2);
+        }
+
+        eivecs.col(0) << eivecs.col(1).unitOrthogonal();
+      }
+    }
+    
+    // Rescale back to the original size.
+    eivals *= scale;
+    
+    solver.m_info = Success;
+    solver.m_isInitialized = true;
+    solver.m_eigenvectorsOk = computeEigenvectors;
+  }
+};
+
+}
+
+template<typename MatrixType>
+SelfAdjointEigenSolver<MatrixType>& SelfAdjointEigenSolver<MatrixType>
+::computeDirect(const MatrixType& matrix, int options)
+{
+  internal::direct_selfadjoint_eigenvalues<SelfAdjointEigenSolver,Size,NumTraits<Scalar>::IsComplex>::run(*this,matrix,options);
+  return *this;
+}
+
+namespace internal {
+template<typename RealScalar, typename Scalar, typename Index>
+static void tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, Index start, Index end, Scalar* matrixQ, Index n)
+{
+  using std::abs;
+  RealScalar td = (diag[end-1] - diag[end])*RealScalar(0.5);
+  RealScalar e = subdiag[end-1];
+  // Note that thanks to scaling, e^2 or td^2 cannot overflow, however they can still
+  // underflow thus leading to inf/NaN values when using the following commented code:
+//   RealScalar e2 = numext::abs2(subdiag[end-1]);
+//   RealScalar mu = diag[end] - e2 / (td + (td>0 ? 1 : -1) * sqrt(td*td + e2));
+  // This explain the following, somewhat more complicated, version:
+  RealScalar mu = diag[end];
+  if(td==0)
+    mu -= abs(e);
+  else
+  {
+    RealScalar e2 = numext::abs2(subdiag[end-1]);
+    RealScalar h = numext::hypot(td,e);
+    if(e2==0)  mu -= (e / (td + (td>0 ? 1 : -1))) * (e / h);
+    else       mu -= e2 / (td + (td>0 ? h : -h));
+  }
+  
+  RealScalar x = diag[start] - mu;
+  RealScalar z = subdiag[start];
+  for (Index k = start; k < end; ++k)
+  {
+    JacobiRotation<RealScalar> rot;
+    rot.makeGivens(x, z);
+
+    // do T = G' T G
+    RealScalar sdk = rot.s() * diag[k] + rot.c() * subdiag[k];
+    RealScalar dkp1 = rot.s() * subdiag[k] + rot.c() * diag[k+1];
+
+    diag[k] = rot.c() * (rot.c() * diag[k] - rot.s() * subdiag[k]) - rot.s() * (rot.c() * subdiag[k] - rot.s() * diag[k+1]);
+    diag[k+1] = rot.s() * sdk + rot.c() * dkp1;
+    subdiag[k] = rot.c() * sdk - rot.s() * dkp1;
+    
+
+    if (k > start)
+      subdiag[k - 1] = rot.c() * subdiag[k-1] - rot.s() * z;
+
+    x = subdiag[k];
+
+    if (k < end - 1)
+    {
+      z = -rot.s() * subdiag[k+1];
+      subdiag[k + 1] = rot.c() * subdiag[k+1];
+    }
+    
+    // apply the givens rotation to the unit matrix Q = Q * G
+    if (matrixQ)
+    {
+      Map<Matrix<Scalar,Dynamic,Dynamic,ColMajor> > q(matrixQ,n,n);
+      q.applyOnTheRight(k,k+1,rot);
+    }
+  }
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINTEIGENSOLVER_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h
new file mode 100644
index 0000000..17c0dad
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h
@@ -0,0 +1,92 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *    Self-adjoint eigenvalues/eigenvectors.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_SAEIGENSOLVER_MKL_H
+#define EIGEN_SAEIGENSOLVER_MKL_H
+
+#include "Eigen/src/Core/util/MKL_support.h"
+
+namespace Eigen { 
+
+/** \internal Specialization for the data types supported by MKL */
+
+#define EIGEN_MKL_EIG_SELFADJ(EIGTYPE, MKLTYPE, MKLRTYPE, MKLNAME, EIGCOLROW, MKLCOLROW ) \
+template<> inline \
+SelfAdjointEigenSolver<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >& \
+SelfAdjointEigenSolver<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >::compute(const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW>& matrix, int options) \
+{ \
+  eigen_assert(matrix.cols() == matrix.rows()); \
+  eigen_assert((options&~(EigVecMask|GenEigMask))==0 \
+          && (options&EigVecMask)!=EigVecMask \
+          && "invalid option parameter"); \
+  bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors; \
+  lapack_int n = matrix.cols(), lda, matrix_order, info; \
+  m_eivalues.resize(n,1); \
+  m_subdiag.resize(n-1); \
+  m_eivec = matrix; \
+\
+  if(n==1) \
+  { \
+    m_eivalues.coeffRef(0,0) = numext::real(matrix.coeff(0,0)); \
+    if(computeEigenvectors) m_eivec.setOnes(n,n); \
+    m_info = Success; \
+    m_isInitialized = true; \
+    m_eigenvectorsOk = computeEigenvectors; \
+    return *this; \
+  } \
+\
+  lda = matrix.outerStride(); \
+  matrix_order=MKLCOLROW; \
+  char jobz, uplo='L'/*, range='A'*/; \
+  jobz = computeEigenvectors ? 'V' : 'N'; \
+\
+  info = LAPACKE_##MKLNAME( matrix_order, jobz, uplo, n, (MKLTYPE*)m_eivec.data(), lda, (MKLRTYPE*)m_eivalues.data() ); \
+  m_info = (info==0) ? Success : NoConvergence; \
+  m_isInitialized = true; \
+  m_eigenvectorsOk = computeEigenvectors; \
+  return *this; \
+}
+
+
+EIGEN_MKL_EIG_SELFADJ(double,   double,        double, dsyev, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_EIG_SELFADJ(float,    float,         float,  ssyev, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_EIG_SELFADJ(dcomplex, MKL_Complex16, double, zheev, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_EIG_SELFADJ(scomplex, MKL_Complex8,  float,  cheev, ColMajor, LAPACK_COL_MAJOR)
+
+EIGEN_MKL_EIG_SELFADJ(double,   double,        double, dsyev, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_EIG_SELFADJ(float,    float,         float,  ssyev, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_EIG_SELFADJ(dcomplex, MKL_Complex16, double, zheev, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_EIG_SELFADJ(scomplex, MKL_Complex8,  float,  cheev, RowMajor, LAPACK_ROW_MAJOR)
+
+} // end namespace Eigen
+
+#endif // EIGEN_SAEIGENSOLVER_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/Tridiagonalization.h b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/Tridiagonalization.h
new file mode 100644
index 0000000..192278d
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Eigenvalues/Tridiagonalization.h
@@ -0,0 +1,557 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2010 Jitse Niesen <jitse at maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIDIAGONALIZATION_H
+#define EIGEN_TRIDIAGONALIZATION_H
+
+namespace Eigen { 
+
+namespace internal {
+  
+template<typename MatrixType> struct TridiagonalizationMatrixTReturnType;
+template<typename MatrixType>
+struct traits<TridiagonalizationMatrixTReturnType<MatrixType> >
+{
+  typedef typename MatrixType::PlainObject ReturnType;
+};
+
+template<typename MatrixType, typename CoeffVectorType>
+void tridiagonalization_inplace(MatrixType& matA, CoeffVectorType& hCoeffs);
+}
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class Tridiagonalization
+  *
+  * \brief Tridiagonal decomposition of a selfadjoint matrix
+  *
+  * \tparam _MatrixType the type of the matrix of which we are computing the
+  * tridiagonal decomposition; this is expected to be an instantiation of the
+  * Matrix class template.
+  *
+  * This class performs a tridiagonal decomposition of a selfadjoint matrix \f$ A \f$ such that:
+  * \f$ A = Q T Q^* \f$ where \f$ Q \f$ is unitary and \f$ T \f$ a real symmetric tridiagonal matrix.
+  *
+  * A tridiagonal matrix is a matrix which has nonzero elements only on the
+  * main diagonal and the first diagonal below and above it. The Hessenberg
+  * decomposition of a selfadjoint matrix is in fact a tridiagonal
+  * decomposition. This class is used in SelfAdjointEigenSolver to compute the
+  * eigenvalues and eigenvectors of a selfadjoint matrix.
+  *
+  * Call the function compute() to compute the tridiagonal decomposition of a
+  * given matrix. Alternatively, you can use the Tridiagonalization(const MatrixType&)
+  * constructor which computes the tridiagonal Schur decomposition at
+  * construction time. Once the decomposition is computed, you can use the
+  * matrixQ() and matrixT() functions to retrieve the matrices Q and T in the
+  * decomposition.
+  *
+  * The documentation of Tridiagonalization(const MatrixType&) contains an
+  * example of the typical use of this class.
+  *
+  * \sa class HessenbergDecomposition, class SelfAdjointEigenSolver
+  */
+template<typename _MatrixType> class Tridiagonalization
+{
+  public:
+
+    /** \brief Synonym for the template parameter \p _MatrixType. */
+    typedef _MatrixType MatrixType;
+
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+
+    enum {
+      Size = MatrixType::RowsAtCompileTime,
+      SizeMinusOne = Size == Dynamic ? Dynamic : (Size > 1 ? Size - 1 : 1),
+      Options = MatrixType::Options,
+      MaxSize = MatrixType::MaxRowsAtCompileTime,
+      MaxSizeMinusOne = MaxSize == Dynamic ? Dynamic : (MaxSize > 1 ? MaxSize - 1 : 1)
+    };
+
+    typedef Matrix<Scalar, SizeMinusOne, 1, Options & ~RowMajor, MaxSizeMinusOne, 1> CoeffVectorType;
+    typedef typename internal::plain_col_type<MatrixType, RealScalar>::type DiagonalType;
+    typedef Matrix<RealScalar, SizeMinusOne, 1, Options & ~RowMajor, MaxSizeMinusOne, 1> SubDiagonalType;
+    typedef typename internal::remove_all<typename MatrixType::RealReturnType>::type MatrixTypeRealView;
+    typedef internal::TridiagonalizationMatrixTReturnType<MatrixTypeRealView> MatrixTReturnType;
+
+    typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+              typename internal::add_const_on_value_type<typename Diagonal<const MatrixType>::RealReturnType>::type,
+              const Diagonal<const MatrixType>
+            >::type DiagonalReturnType;
+
+    typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+              typename internal::add_const_on_value_type<typename Diagonal<
+                Block<const MatrixType,SizeMinusOne,SizeMinusOne> >::RealReturnType>::type,
+              const Diagonal<
+                Block<const MatrixType,SizeMinusOne,SizeMinusOne> >
+            >::type SubDiagonalReturnType;
+
+    /** \brief Return type of matrixQ() */
+    typedef HouseholderSequence<MatrixType,typename internal::remove_all<typename CoeffVectorType::ConjugateReturnType>::type> HouseholderSequenceType;
+
+    /** \brief Default constructor.
+      *
+      * \param [in]  size  Positive integer, size of the matrix whose tridiagonal
+      * decomposition will be computed.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via compute().  The \p size parameter is only
+      * used as a hint. It is not an error to give a wrong \p size, but it may
+      * impair performance.
+      *
+      * \sa compute() for an example.
+      */
+    Tridiagonalization(Index size = Size==Dynamic ? 2 : Size)
+      : m_matrix(size,size),
+        m_hCoeffs(size > 1 ? size-1 : 1),
+        m_isInitialized(false)
+    {}
+
+    /** \brief Constructor; computes tridiagonal decomposition of given matrix.
+      *
+      * \param[in]  matrix  Selfadjoint matrix whose tridiagonal decomposition
+      * is to be computed.
+      *
+      * This constructor calls compute() to compute the tridiagonal decomposition.
+      *
+      * Example: \include Tridiagonalization_Tridiagonalization_MatrixType.cpp
+      * Output: \verbinclude Tridiagonalization_Tridiagonalization_MatrixType.out
+      */
+    Tridiagonalization(const MatrixType& matrix)
+      : m_matrix(matrix),
+        m_hCoeffs(matrix.cols() > 1 ? matrix.cols()-1 : 1),
+        m_isInitialized(false)
+    {
+      internal::tridiagonalization_inplace(m_matrix, m_hCoeffs);
+      m_isInitialized = true;
+    }
+
+    /** \brief Computes tridiagonal decomposition of given matrix.
+      *
+      * \param[in]  matrix  Selfadjoint matrix whose tridiagonal decomposition
+      * is to be computed.
+      * \returns    Reference to \c *this
+      *
+      * The tridiagonal decomposition is computed by bringing the columns of
+      * the matrix successively in the required form using Householder
+      * reflections. The cost is \f$ 4n^3/3 \f$ flops, where \f$ n \f$ denotes
+      * the size of the given matrix.
+      *
+      * This method reuses of the allocated data in the Tridiagonalization
+      * object, if the size of the matrix does not change.
+      *
+      * Example: \include Tridiagonalization_compute.cpp
+      * Output: \verbinclude Tridiagonalization_compute.out
+      */
+    Tridiagonalization& compute(const MatrixType& matrix)
+    {
+      m_matrix = matrix;
+      m_hCoeffs.resize(matrix.rows()-1, 1);
+      internal::tridiagonalization_inplace(m_matrix, m_hCoeffs);
+      m_isInitialized = true;
+      return *this;
+    }
+
+    /** \brief Returns the Householder coefficients.
+      *
+      * \returns a const reference to the vector of Householder coefficients
+      *
+      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+      * the member function compute(const MatrixType&) has been called before
+      * to compute the tridiagonal decomposition of a matrix.
+      *
+      * The Householder coefficients allow the reconstruction of the matrix
+      * \f$ Q \f$ in the tridiagonal decomposition from the packed data.
+      *
+      * Example: \include Tridiagonalization_householderCoefficients.cpp
+      * Output: \verbinclude Tridiagonalization_householderCoefficients.out
+      *
+      * \sa packedMatrix(), \ref Householder_Module "Householder module"
+      */
+    inline CoeffVectorType householderCoefficients() const
+    {
+      eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+      return m_hCoeffs;
+    }
+
+    /** \brief Returns the internal representation of the decomposition
+      *
+      *	\returns a const reference to a matrix with the internal representation
+      *	         of the decomposition.
+      *
+      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+      * the member function compute(const MatrixType&) has been called before
+      * to compute the tridiagonal decomposition of a matrix.
+      *
+      * The returned matrix contains the following information:
+      *  - the strict upper triangular part is equal to the input matrix A.
+      *  - the diagonal and lower sub-diagonal represent the real tridiagonal
+      *    symmetric matrix T.
+      *  - the rest of the lower part contains the Householder vectors that,
+      *    combined with Householder coefficients returned by
+      *    householderCoefficients(), allows to reconstruct the matrix Q as
+      *       \f$ Q = H_{N-1} \ldots H_1 H_0 \f$.
+      *    Here, the matrices \f$ H_i \f$ are the Householder transformations
+      *       \f$ H_i = (I - h_i v_i v_i^T) \f$
+      *    where \f$ h_i \f$ is the \f$ i \f$th Householder coefficient and
+      *    \f$ v_i \f$ is the Householder vector defined by
+      *       \f$ v_i = [ 0, \ldots, 0, 1, M(i+2,i), \ldots, M(N-1,i) ]^T \f$
+      *    with M the matrix returned by this function.
+      *
+      * See LAPACK for further details on this packed storage.
+      *
+      * Example: \include Tridiagonalization_packedMatrix.cpp
+      * Output: \verbinclude Tridiagonalization_packedMatrix.out
+      *
+      * \sa householderCoefficients()
+      */
+    inline const MatrixType& packedMatrix() const
+    {
+      eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+      return m_matrix;
+    }
+
+    /** \brief Returns the unitary matrix Q in the decomposition
+      *
+      * \returns object representing the matrix Q
+      *
+      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+      * the member function compute(const MatrixType&) has been called before
+      * to compute the tridiagonal decomposition of a matrix.
+      *
+      * This function returns a light-weight object of template class
+      * HouseholderSequence. You can either apply it directly to a matrix or
+      * you can convert it to a matrix of type #MatrixType.
+      *
+      * \sa Tridiagonalization(const MatrixType&) for an example,
+      *     matrixT(), class HouseholderSequence
+      */
+    HouseholderSequenceType matrixQ() const
+    {
+      eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+      return HouseholderSequenceType(m_matrix, m_hCoeffs.conjugate())
+             .setLength(m_matrix.rows() - 1)
+             .setShift(1);
+    }
+
+    /** \brief Returns an expression of the tridiagonal matrix T in the decomposition
+      *
+      * \returns expression object representing the matrix T
+      *
+      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+      * the member function compute(const MatrixType&) has been called before
+      * to compute the tridiagonal decomposition of a matrix.
+      *
+      * Currently, this function can be used to extract the matrix T from internal
+      * data and copy it to a dense matrix object. In most cases, it may be
+      * sufficient to directly use the packed matrix or the vector expressions
+      * returned by diagonal() and subDiagonal() instead of creating a new
+      * dense copy matrix with this function.
+      *
+      * \sa Tridiagonalization(const MatrixType&) for an example,
+      * matrixQ(), packedMatrix(), diagonal(), subDiagonal()
+      */
+    MatrixTReturnType matrixT() const
+    {
+      eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+      return MatrixTReturnType(m_matrix.real());
+    }
+
+    /** \brief Returns the diagonal of the tridiagonal matrix T in the decomposition.
+      *
+      * \returns expression representing the diagonal of T
+      *
+      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+      * the member function compute(const MatrixType&) has been called before
+      * to compute the tridiagonal decomposition of a matrix.
+      *
+      * Example: \include Tridiagonalization_diagonal.cpp
+      * Output: \verbinclude Tridiagonalization_diagonal.out
+      *
+      * \sa matrixT(), subDiagonal()
+      */
+    DiagonalReturnType diagonal() const;
+
+    /** \brief Returns the subdiagonal of the tridiagonal matrix T in the decomposition.
+      *
+      * \returns expression representing the subdiagonal of T
+      *
+      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+      * the member function compute(const MatrixType&) has been called before
+      * to compute the tridiagonal decomposition of a matrix.
+      *
+      * \sa diagonal() for an example, matrixT()
+      */
+    SubDiagonalReturnType subDiagonal() const;
+
+  protected:
+
+    MatrixType m_matrix;
+    CoeffVectorType m_hCoeffs;
+    bool m_isInitialized;
+};
+
+template<typename MatrixType>
+typename Tridiagonalization<MatrixType>::DiagonalReturnType
+Tridiagonalization<MatrixType>::diagonal() const
+{
+  eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+  return m_matrix.diagonal();
+}
+
+template<typename MatrixType>
+typename Tridiagonalization<MatrixType>::SubDiagonalReturnType
+Tridiagonalization<MatrixType>::subDiagonal() const
+{
+  eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+  Index n = m_matrix.rows();
+  return Block<const MatrixType,SizeMinusOne,SizeMinusOne>(m_matrix, 1, 0, n-1,n-1).diagonal();
+}
+
+namespace internal {
+
+/** \internal
+  * Performs a tridiagonal decomposition of the selfadjoint matrix \a matA in-place.
+  *
+  * \param[in,out] matA On input the selfadjoint matrix. Only the \b lower triangular part is referenced.
+  *                     On output, the strict upper part is left unchanged, and the lower triangular part
+  *                     represents the T and Q matrices in packed format has detailed below.
+  * \param[out]    hCoeffs returned Householder coefficients (see below)
+  *
+  * On output, the tridiagonal selfadjoint matrix T is stored in the diagonal
+  * and lower sub-diagonal of the matrix \a matA.
+  * The unitary matrix Q is represented in a compact way as a product of
+  * Householder reflectors \f$ H_i \f$ such that:
+  *       \f$ Q = H_{N-1} \ldots H_1 H_0 \f$.
+  * The Householder reflectors are defined as
+  *       \f$ H_i = (I - h_i v_i v_i^T) \f$
+  * where \f$ h_i = hCoeffs[i]\f$ is the \f$ i \f$th Householder coefficient and
+  * \f$ v_i \f$ is the Householder vector defined by
+  *       \f$ v_i = [ 0, \ldots, 0, 1, matA(i+2,i), \ldots, matA(N-1,i) ]^T \f$.
+  *
+  * Implemented from Golub's "Matrix Computations", algorithm 8.3.1.
+  *
+  * \sa Tridiagonalization::packedMatrix()
+  */
+template<typename MatrixType, typename CoeffVectorType>
+void tridiagonalization_inplace(MatrixType& matA, CoeffVectorType& hCoeffs)
+{
+  using numext::conj;
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::RealScalar RealScalar;
+  Index n = matA.rows();
+  eigen_assert(n==matA.cols());
+  eigen_assert(n==hCoeffs.size()+1 || n==1);
+  
+  for (Index i = 0; i<n-1; ++i)
+  {
+    Index remainingSize = n-i-1;
+    RealScalar beta;
+    Scalar h;
+    matA.col(i).tail(remainingSize).makeHouseholderInPlace(h, beta);
+
+    // Apply similarity transformation to remaining columns,
+    // i.e., A = H A H' where H = I - h v v' and v = matA.col(i).tail(n-i-1)
+    matA.col(i).coeffRef(i+1) = 1;
+
+    hCoeffs.tail(n-i-1).noalias() = (matA.bottomRightCorner(remainingSize,remainingSize).template selfadjointView<Lower>()
+                                  * (conj(h) * matA.col(i).tail(remainingSize)));
+
+    hCoeffs.tail(n-i-1) += (conj(h)*Scalar(-0.5)*(hCoeffs.tail(remainingSize).dot(matA.col(i).tail(remainingSize)))) * matA.col(i).tail(n-i-1);
+
+    matA.bottomRightCorner(remainingSize, remainingSize).template selfadjointView<Lower>()
+      .rankUpdate(matA.col(i).tail(remainingSize), hCoeffs.tail(remainingSize), -1);
+
+    matA.col(i).coeffRef(i+1) = beta;
+    hCoeffs.coeffRef(i) = h;
+  }
+}
+
+// forward declaration, implementation at the end of this file
+template<typename MatrixType,
+         int Size=MatrixType::ColsAtCompileTime,
+         bool IsComplex=NumTraits<typename MatrixType::Scalar>::IsComplex>
+struct tridiagonalization_inplace_selector;
+
+/** \brief Performs a full tridiagonalization in place
+  *
+  * \param[in,out]  mat  On input, the selfadjoint matrix whose tridiagonal
+  *    decomposition is to be computed. Only the lower triangular part referenced.
+  *    The rest is left unchanged. On output, the orthogonal matrix Q
+  *    in the decomposition if \p extractQ is true.
+  * \param[out]  diag  The diagonal of the tridiagonal matrix T in the
+  *    decomposition.
+  * \param[out]  subdiag  The subdiagonal of the tridiagonal matrix T in
+  *    the decomposition.
+  * \param[in]  extractQ  If true, the orthogonal matrix Q in the
+  *    decomposition is computed and stored in \p mat.
+  *
+  * Computes the tridiagonal decomposition of the selfadjoint matrix \p mat in place
+  * such that \f$ mat = Q T Q^* \f$ where \f$ Q \f$ is unitary and \f$ T \f$ a real
+  * symmetric tridiagonal matrix.
+  *
+  * The tridiagonal matrix T is passed to the output parameters \p diag and \p subdiag. If
+  * \p extractQ is true, then the orthogonal matrix Q is passed to \p mat. Otherwise the lower
+  * part of the matrix \p mat is destroyed.
+  *
+  * The vectors \p diag and \p subdiag are not resized. The function
+  * assumes that they are already of the correct size. The length of the
+  * vector \p diag should equal the number of rows in \p mat, and the
+  * length of the vector \p subdiag should be one left.
+  *
+  * This implementation contains an optimized path for 3-by-3 matrices
+  * which is especially useful for plane fitting.
+  *
+  * \note Currently, it requires two temporary vectors to hold the intermediate
+  * Householder coefficients, and to reconstruct the matrix Q from the Householder
+  * reflectors.
+  *
+  * Example (this uses the same matrix as the example in
+  *    Tridiagonalization::Tridiagonalization(const MatrixType&)):
+  *    \include Tridiagonalization_decomposeInPlace.cpp
+  * Output: \verbinclude Tridiagonalization_decomposeInPlace.out
+  *
+  * \sa class Tridiagonalization
+  */
+template<typename MatrixType, typename DiagonalType, typename SubDiagonalType>
+void tridiagonalization_inplace(MatrixType& mat, DiagonalType& diag, SubDiagonalType& subdiag, bool extractQ)
+{
+  eigen_assert(mat.cols()==mat.rows() && diag.size()==mat.rows() && subdiag.size()==mat.rows()-1);
+  tridiagonalization_inplace_selector<MatrixType>::run(mat, diag, subdiag, extractQ);
+}
+
+/** \internal
+  * General full tridiagonalization
+  */
+template<typename MatrixType, int Size, bool IsComplex>
+struct tridiagonalization_inplace_selector
+{
+  typedef typename Tridiagonalization<MatrixType>::CoeffVectorType CoeffVectorType;
+  typedef typename Tridiagonalization<MatrixType>::HouseholderSequenceType HouseholderSequenceType;
+  typedef typename MatrixType::Index Index;
+  template<typename DiagonalType, typename SubDiagonalType>
+  static void run(MatrixType& mat, DiagonalType& diag, SubDiagonalType& subdiag, bool extractQ)
+  {
+    CoeffVectorType hCoeffs(mat.cols()-1);
+    tridiagonalization_inplace(mat,hCoeffs);
+    diag = mat.diagonal().real();
+    subdiag = mat.template diagonal<-1>().real();
+    if(extractQ)
+      mat = HouseholderSequenceType(mat, hCoeffs.conjugate())
+            .setLength(mat.rows() - 1)
+            .setShift(1);
+  }
+};
+
+/** \internal
+  * Specialization for 3x3 real matrices.
+  * Especially useful for plane fitting.
+  */
+template<typename MatrixType>
+struct tridiagonalization_inplace_selector<MatrixType,3,false>
+{
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::RealScalar RealScalar;
+
+  template<typename DiagonalType, typename SubDiagonalType>
+  static void run(MatrixType& mat, DiagonalType& diag, SubDiagonalType& subdiag, bool extractQ)
+  {
+    using std::sqrt;
+    diag[0] = mat(0,0);
+    RealScalar v1norm2 = numext::abs2(mat(2,0));
+    if(v1norm2 == RealScalar(0))
+    {
+      diag[1] = mat(1,1);
+      diag[2] = mat(2,2);
+      subdiag[0] = mat(1,0);
+      subdiag[1] = mat(2,1);
+      if (extractQ)
+        mat.setIdentity();
+    }
+    else
+    {
+      RealScalar beta = sqrt(numext::abs2(mat(1,0)) + v1norm2);
+      RealScalar invBeta = RealScalar(1)/beta;
+      Scalar m01 = mat(1,0) * invBeta;
+      Scalar m02 = mat(2,0) * invBeta;
+      Scalar q = RealScalar(2)*m01*mat(2,1) + m02*(mat(2,2) - mat(1,1));
+      diag[1] = mat(1,1) + m02*q;
+      diag[2] = mat(2,2) - m02*q;
+      subdiag[0] = beta;
+      subdiag[1] = mat(2,1) - m01 * q;
+      if (extractQ)
+      {
+        mat << 1,   0,    0,
+               0, m01,  m02,
+               0, m02, -m01;
+      }
+    }
+  }
+};
+
+/** \internal
+  * Trivial specialization for 1x1 matrices
+  */
+template<typename MatrixType, bool IsComplex>
+struct tridiagonalization_inplace_selector<MatrixType,1,IsComplex>
+{
+  typedef typename MatrixType::Scalar Scalar;
+
+  template<typename DiagonalType, typename SubDiagonalType>
+  static void run(MatrixType& mat, DiagonalType& diag, SubDiagonalType&, bool extractQ)
+  {
+    diag(0,0) = numext::real(mat(0,0));
+    if(extractQ)
+      mat(0,0) = Scalar(1);
+  }
+};
+
+/** \internal
+  * \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  * \brief Expression type for return value of Tridiagonalization::matrixT()
+  *
+  * \tparam MatrixType type of underlying dense matrix
+  */
+template<typename MatrixType> struct TridiagonalizationMatrixTReturnType
+: public ReturnByValue<TridiagonalizationMatrixTReturnType<MatrixType> >
+{
+    typedef typename MatrixType::Index Index;
+  public:
+    /** \brief Constructor.
+      *
+      * \param[in] mat The underlying dense matrix
+      */
+    TridiagonalizationMatrixTReturnType(const MatrixType& mat) : m_matrix(mat) { }
+
+    template <typename ResultType>
+    inline void evalTo(ResultType& result) const
+    {
+      result.setZero();
+      result.template diagonal<1>() = m_matrix.template diagonal<-1>().conjugate();
+      result.diagonal() = m_matrix.diagonal();
+      result.template diagonal<-1>() = m_matrix.template diagonal<-1>();
+    }
+
+    Index rows() const { return m_matrix.rows(); }
+    Index cols() const { return m_matrix.cols(); }
+
+  protected:
+    typename MatrixType::Nested m_matrix;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIDIAGONALIZATION_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Geometry/AlignedBox.h b/vendor/eigen-3.2.8/Eigen/src/Geometry/AlignedBox.h
new file mode 100644
index 0000000..7e1cd9e
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Geometry/AlignedBox.h
@@ -0,0 +1,392 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ALIGNEDBOX_H
+#define EIGEN_ALIGNEDBOX_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  *
+  * \class AlignedBox
+  *
+  * \brief An axis aligned box
+  *
+  * \tparam _Scalar the type of the scalar coefficients
+  * \tparam _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
+  *
+  * This class represents an axis aligned box as a pair of the minimal and maximal corners.
+  * \warning The result of most methods is undefined when applied to an empty box. You can check for empty boxes using isEmpty().
+  * \sa alignedboxtypedefs
+  */
+template <typename _Scalar, int _AmbientDim>
+class AlignedBox
+{
+public:
+EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
+  enum { AmbientDimAtCompileTime = _AmbientDim };
+  typedef _Scalar                                   Scalar;
+  typedef NumTraits<Scalar>                         ScalarTraits;
+  typedef DenseIndex                                Index;
+  typedef typename ScalarTraits::Real               RealScalar;
+  typedef typename ScalarTraits::NonInteger      NonInteger;
+  typedef Matrix<Scalar,AmbientDimAtCompileTime,1>  VectorType;
+
+  /** Define constants to name the corners of a 1D, 2D or 3D axis aligned bounding box */
+  enum CornerType
+  {
+    /** 1D names @{ */
+    Min=0, Max=1,
+    /** @} */
+
+    /** Identifier for 2D corner @{ */
+    BottomLeft=0, BottomRight=1,
+    TopLeft=2, TopRight=3,
+    /** @} */
+
+    /** Identifier for 3D corner  @{ */
+    BottomLeftFloor=0, BottomRightFloor=1,
+    TopLeftFloor=2, TopRightFloor=3,
+    BottomLeftCeil=4, BottomRightCeil=5,
+    TopLeftCeil=6, TopRightCeil=7
+    /** @} */
+  };
+
+
+  /** Default constructor initializing a null box. */
+  inline AlignedBox()
+  { if (AmbientDimAtCompileTime!=Dynamic) setEmpty(); }
+
+  /** Constructs a null box with \a _dim the dimension of the ambient space. */
+  inline explicit AlignedBox(Index _dim) : m_min(_dim), m_max(_dim)
+  { setEmpty(); }
+
+  /** Constructs a box with extremities \a _min and \a _max.
+   * \warning If either component of \a _min is larger than the same component of \a _max, the constructed box is empty. */
+  template<typename OtherVectorType1, typename OtherVectorType2>
+  inline AlignedBox(const OtherVectorType1& _min, const OtherVectorType2& _max) : m_min(_min), m_max(_max) {}
+
+  /** Constructs a box containing a single point \a p. */
+  template<typename Derived>
+  inline explicit AlignedBox(const MatrixBase<Derived>& p) : m_min(p), m_max(m_min)
+  { }
+
+  ~AlignedBox() {}
+
+  /** \returns the dimension in which the box holds */
+  inline Index dim() const { return AmbientDimAtCompileTime==Dynamic ? m_min.size() : Index(AmbientDimAtCompileTime); }
+
+  /** \deprecated use isEmpty() */
+  inline bool isNull() const { return isEmpty(); }
+
+  /** \deprecated use setEmpty() */
+  inline void setNull() { setEmpty(); }
+
+  /** \returns true if the box is empty.
+   * \sa setEmpty */
+  inline bool isEmpty() const { return (m_min.array() > m_max.array()).any(); }
+
+  /** Makes \c *this an empty box.
+   * \sa isEmpty */
+  inline void setEmpty()
+  {
+    m_min.setConstant( ScalarTraits::highest() );
+    m_max.setConstant( ScalarTraits::lowest() );
+  }
+
+  /** \returns the minimal corner */
+  inline const VectorType& (min)() const { return m_min; }
+  /** \returns a non const reference to the minimal corner */
+  inline VectorType& (min)() { return m_min; }
+  /** \returns the maximal corner */
+  inline const VectorType& (max)() const { return m_max; }
+  /** \returns a non const reference to the maximal corner */
+  inline VectorType& (max)() { return m_max; }
+
+  /** \returns the center of the box */
+  inline const CwiseUnaryOp<internal::scalar_quotient1_op<Scalar>,
+                            const CwiseBinaryOp<internal::scalar_sum_op<Scalar>, const VectorType, const VectorType> >
+  center() const
+  { return (m_min+m_max)/2; }
+
+  /** \returns the lengths of the sides of the bounding box.
+    * Note that this function does not get the same
+    * result for integral or floating scalar types: see
+    */
+  inline const CwiseBinaryOp< internal::scalar_difference_op<Scalar>, const VectorType, const VectorType> sizes() const
+  { return m_max - m_min; }
+
+  /** \returns the volume of the bounding box */
+  inline Scalar volume() const
+  { return sizes().prod(); }
+
+  /** \returns an expression for the bounding box diagonal vector
+    * if the length of the diagonal is needed: diagonal().norm()
+    * will provide it.
+    */
+  inline CwiseBinaryOp< internal::scalar_difference_op<Scalar>, const VectorType, const VectorType> diagonal() const
+  { return sizes(); }
+
+  /** \returns the vertex of the bounding box at the corner defined by
+    * the corner-id corner. It works only for a 1D, 2D or 3D bounding box.
+    * For 1D bounding boxes corners are named by 2 enum constants:
+    * BottomLeft and BottomRight.
+    * For 2D bounding boxes, corners are named by 4 enum constants:
+    * BottomLeft, BottomRight, TopLeft, TopRight.
+    * For 3D bounding boxes, the following names are added:
+    * BottomLeftCeil, BottomRightCeil, TopLeftCeil, TopRightCeil.
+    */
+  inline VectorType corner(CornerType corner) const
+  {
+    EIGEN_STATIC_ASSERT(_AmbientDim <= 3, THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE);
+
+    VectorType res;
+
+    Index mult = 1;
+    for(Index d=0; d<dim(); ++d)
+    {
+      if( mult & corner ) res[d] = m_max[d];
+      else                res[d] = m_min[d];
+      mult *= 2;
+    }
+    return res;
+  }
+
+  /** \returns a random point inside the bounding box sampled with
+   * a uniform distribution */
+  inline VectorType sample() const
+  {
+    VectorType r(dim());
+    for(Index d=0; d<dim(); ++d)
+    {
+      if(!ScalarTraits::IsInteger)
+      {
+        r[d] = m_min[d] + (m_max[d]-m_min[d])
+             * internal::random<Scalar>(Scalar(0), Scalar(1));
+      }
+      else
+        r[d] = internal::random(m_min[d], m_max[d]);
+    }
+    return r;
+  }
+
+  /** \returns true if the point \a p is inside the box \c *this. */
+  template<typename Derived>
+  inline bool contains(const MatrixBase<Derived>& p) const
+  {
+    typename internal::nested<Derived,2>::type p_n(p.derived());
+    return (m_min.array()<=p_n.array()).all() && (p_n.array()<=m_max.array()).all();
+  }
+
+  /** \returns true if the box \a b is entirely inside the box \c *this. */
+  inline bool contains(const AlignedBox& b) const
+  { return (m_min.array()<=(b.min)().array()).all() && ((b.max)().array()<=m_max.array()).all(); }
+
+  /** \returns true if the box \a b is intersecting the box \c *this.
+   * \sa intersection, clamp */
+  inline bool intersects(const AlignedBox& b) const
+  { return (m_min.array()<=(b.max)().array()).all() && ((b.min)().array()<=m_max.array()).all(); }
+
+  /** Extends \c *this such that it contains the point \a p and returns a reference to \c *this.
+   * \sa extend(const AlignedBox&) */
+  template<typename Derived>
+  inline AlignedBox& extend(const MatrixBase<Derived>& p)
+  {
+    typename internal::nested<Derived,2>::type p_n(p.derived());
+    m_min = m_min.cwiseMin(p_n);
+    m_max = m_max.cwiseMax(p_n);
+    return *this;
+  }
+
+  /** Extends \c *this such that it contains the box \a b and returns a reference to \c *this.
+   * \sa merged, extend(const MatrixBase&) */
+  inline AlignedBox& extend(const AlignedBox& b)
+  {
+    m_min = m_min.cwiseMin(b.m_min);
+    m_max = m_max.cwiseMax(b.m_max);
+    return *this;
+  }
+
+  /** Clamps \c *this by the box \a b and returns a reference to \c *this.
+   * \note If the boxes don't intersect, the resulting box is empty.
+   * \sa intersection(), intersects() */
+  inline AlignedBox& clamp(const AlignedBox& b)
+  {
+    m_min = m_min.cwiseMax(b.m_min);
+    m_max = m_max.cwiseMin(b.m_max);
+    return *this;
+  }
+
+  /** Returns an AlignedBox that is the intersection of \a b and \c *this
+   * \note If the boxes don't intersect, the resulting box is empty.
+   * \sa intersects(), clamp, contains()  */
+  inline AlignedBox intersection(const AlignedBox& b) const
+  {return AlignedBox(m_min.cwiseMax(b.m_min), m_max.cwiseMin(b.m_max)); }
+
+  /** Returns an AlignedBox that is the union of \a b and \c *this.
+   * \note Merging with an empty box may result in a box bigger than \c *this. 
+   * \sa extend(const AlignedBox&) */
+  inline AlignedBox merged(const AlignedBox& b) const
+  { return AlignedBox(m_min.cwiseMin(b.m_min), m_max.cwiseMax(b.m_max)); }
+
+  /** Translate \c *this by the vector \a t and returns a reference to \c *this. */
+  template<typename Derived>
+  inline AlignedBox& translate(const MatrixBase<Derived>& a_t)
+  {
+    const typename internal::nested<Derived,2>::type t(a_t.derived());
+    m_min += t;
+    m_max += t;
+    return *this;
+  }
+
+  /** \returns the squared distance between the point \a p and the box \c *this,
+    * and zero if \a p is inside the box.
+    * \sa exteriorDistance(const MatrixBase&), squaredExteriorDistance(const AlignedBox&)
+    */
+  template<typename Derived>
+  inline Scalar squaredExteriorDistance(const MatrixBase<Derived>& p) const;
+
+  /** \returns the squared distance between the boxes \a b and \c *this,
+    * and zero if the boxes intersect.
+    * \sa exteriorDistance(const AlignedBox&), squaredExteriorDistance(const MatrixBase&)
+    */
+  inline Scalar squaredExteriorDistance(const AlignedBox& b) const;
+
+  /** \returns the distance between the point \a p and the box \c *this,
+    * and zero if \a p is inside the box.
+    * \sa squaredExteriorDistance(const MatrixBase&), exteriorDistance(const AlignedBox&)
+    */
+  template<typename Derived>
+  inline NonInteger exteriorDistance(const MatrixBase<Derived>& p) const
+  { using std::sqrt; return sqrt(NonInteger(squaredExteriorDistance(p))); }
+
+  /** \returns the distance between the boxes \a b and \c *this,
+    * and zero if the boxes intersect.
+    * \sa squaredExteriorDistance(const AlignedBox&), exteriorDistance(const MatrixBase&)
+    */
+  inline NonInteger exteriorDistance(const AlignedBox& b) const
+  { using std::sqrt; return sqrt(NonInteger(squaredExteriorDistance(b))); }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<AlignedBox,
+           AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type cast() const
+  {
+    return typename internal::cast_return_type<AlignedBox,
+                    AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type(*this);
+  }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit AlignedBox(const AlignedBox<OtherScalarType,AmbientDimAtCompileTime>& other)
+  {
+    m_min = (other.min)().template cast<Scalar>();
+    m_max = (other.max)().template cast<Scalar>();
+  }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const AlignedBox& other, const RealScalar& prec = ScalarTraits::dummy_precision()) const
+  { return m_min.isApprox(other.m_min, prec) && m_max.isApprox(other.m_max, prec); }
+
+protected:
+
+  VectorType m_min, m_max;
+};
+
+
+
+template<typename Scalar,int AmbientDim>
+template<typename Derived>
+inline Scalar AlignedBox<Scalar,AmbientDim>::squaredExteriorDistance(const MatrixBase<Derived>& a_p) const
+{
+  typename internal::nested<Derived,2*AmbientDim>::type p(a_p.derived());
+  Scalar dist2(0);
+  Scalar aux;
+  for (Index k=0; k<dim(); ++k)
+  {
+    if( m_min[k] > p[k] )
+    {
+      aux = m_min[k] - p[k];
+      dist2 += aux*aux;
+    }
+    else if( p[k] > m_max[k] )
+    {
+      aux = p[k] - m_max[k];
+      dist2 += aux*aux;
+    }
+  }
+  return dist2;
+}
+
+template<typename Scalar,int AmbientDim>
+inline Scalar AlignedBox<Scalar,AmbientDim>::squaredExteriorDistance(const AlignedBox& b) const
+{
+  Scalar dist2(0);
+  Scalar aux;
+  for (Index k=0; k<dim(); ++k)
+  {
+    if( m_min[k] > b.m_max[k] )
+    {
+      aux = m_min[k] - b.m_max[k];
+      dist2 += aux*aux;
+    }
+    else if( b.m_min[k] > m_max[k] )
+    {
+      aux = b.m_min[k] - m_max[k];
+      dist2 += aux*aux;
+    }
+  }
+  return dist2;
+}
+
+/** \defgroup alignedboxtypedefs Global aligned box typedefs
+  *
+  * \ingroup Geometry_Module
+  *
+  * Eigen defines several typedef shortcuts for most common aligned box types.
+  *
+  * The general patterns are the following:
+  *
+  * \c AlignedBoxSizeType where \c Size can be \c 1, \c 2,\c 3,\c 4 for fixed size boxes or \c X for dynamic size,
+  * and where \c Type can be \c i for integer, \c f for float, \c d for double.
+  *
+  * For example, \c AlignedBox3d is a fixed-size 3x3 aligned box type of doubles, and \c AlignedBoxXf is a dynamic-size aligned box of floats.
+  *
+  * \sa class AlignedBox
+  */
+
+#define EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix)    \
+/** \ingroup alignedboxtypedefs */                                 \
+typedef AlignedBox<Type, Size>   AlignedBox##SizeSuffix##TypeSuffix;
+
+#define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 1, 1) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 2, 2) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 3, 3) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 4, 4) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Dynamic, X)
+
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(int,                  i)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(float,                f)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(double,               d)
+
+#undef EIGEN_MAKE_TYPEDEFS_ALL_SIZES
+#undef EIGEN_MAKE_TYPEDEFS
+
+} // end namespace Eigen
+
+#endif // EIGEN_ALIGNEDBOX_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Geometry/AngleAxis.h b/vendor/eigen-3.2.8/Eigen/src/Geometry/AngleAxis.h
new file mode 100644
index 0000000..a8d3cdc
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Geometry/AngleAxis.h
@@ -0,0 +1,240 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ANGLEAXIS_H
+#define EIGEN_ANGLEAXIS_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class AngleAxis
+  *
+  * \brief Represents a 3D rotation as a rotation angle around an arbitrary 3D axis
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients.
+  *
+  * \warning When setting up an AngleAxis object, the axis vector \b must \b be \b normalized.
+  *
+  * The following two typedefs are provided for convenience:
+  * \li \c AngleAxisf for \c float
+  * \li \c AngleAxisd for \c double
+  *
+  * Combined with MatrixBase::Unit{X,Y,Z}, AngleAxis can be used to easily
+  * mimic Euler-angles. Here is an example:
+  * \include AngleAxis_mimic_euler.cpp
+  * Output: \verbinclude AngleAxis_mimic_euler.out
+  *
+  * \note This class is not aimed to be used to store a rotation transformation,
+  * but rather to make easier the creation of other rotation (Quaternion, rotation Matrix)
+  * and transformation objects.
+  *
+  * \sa class Quaternion, class Transform, MatrixBase::UnitX()
+  */
+
+namespace internal {
+template<typename _Scalar> struct traits<AngleAxis<_Scalar> >
+{
+  typedef _Scalar Scalar;
+};
+}
+
+template<typename _Scalar>
+class AngleAxis : public RotationBase<AngleAxis<_Scalar>,3>
+{
+  typedef RotationBase<AngleAxis<_Scalar>,3> Base;
+
+public:
+
+  using Base::operator*;
+
+  enum { Dim = 3 };
+  /** the scalar type of the coefficients */
+  typedef _Scalar Scalar;
+  typedef Matrix<Scalar,3,3> Matrix3;
+  typedef Matrix<Scalar,3,1> Vector3;
+  typedef Quaternion<Scalar> QuaternionType;
+
+protected:
+
+  Vector3 m_axis;
+  Scalar m_angle;
+
+public:
+
+  /** Default constructor without initialization. */
+  AngleAxis() {}
+  /** Constructs and initialize the angle-axis rotation from an \a angle in radian
+    * and an \a axis which \b must \b be \b normalized.
+    *
+    * \warning If the \a axis vector is not normalized, then the angle-axis object
+    *          represents an invalid rotation. */
+  template<typename Derived>
+  inline AngleAxis(const Scalar& angle, const MatrixBase<Derived>& axis) : m_axis(axis), m_angle(angle) {}
+  /** Constructs and initialize the angle-axis rotation from a quaternion \a q. */
+  template<typename QuatDerived> inline explicit AngleAxis(const QuaternionBase<QuatDerived>& q) { *this = q; }
+  /** Constructs and initialize the angle-axis rotation from a 3x3 rotation matrix. */
+  template<typename Derived>
+  inline explicit AngleAxis(const MatrixBase<Derived>& m) { *this = m; }
+
+  /** \returns the value of the rotation angle in radian */
+  Scalar angle() const { return m_angle; }
+  /** \returns a read-write reference to the stored angle in radian */
+  Scalar& angle() { return m_angle; }
+
+  /** \returns the rotation axis */
+  const Vector3& axis() const { return m_axis; }
+  /** \returns a read-write reference to the stored rotation axis.
+    *
+    * \warning The rotation axis must remain a \b unit vector.
+    */
+  Vector3& axis() { return m_axis; }
+
+  /** Concatenates two rotations */
+  inline QuaternionType operator* (const AngleAxis& other) const
+  { return QuaternionType(*this) * QuaternionType(other); }
+
+  /** Concatenates two rotations */
+  inline QuaternionType operator* (const QuaternionType& other) const
+  { return QuaternionType(*this) * other; }
+
+  /** Concatenates two rotations */
+  friend inline QuaternionType operator* (const QuaternionType& a, const AngleAxis& b)
+  { return a * QuaternionType(b); }
+
+  /** \returns the inverse rotation, i.e., an angle-axis with opposite rotation angle */
+  AngleAxis inverse() const
+  { return AngleAxis(-m_angle, m_axis); }
+
+  template<class QuatDerived>
+  AngleAxis& operator=(const QuaternionBase<QuatDerived>& q);
+  template<typename Derived>
+  AngleAxis& operator=(const MatrixBase<Derived>& m);
+
+  template<typename Derived>
+  AngleAxis& fromRotationMatrix(const MatrixBase<Derived>& m);
+  Matrix3 toRotationMatrix(void) const;
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<AngleAxis,AngleAxis<NewScalarType> >::type cast() const
+  { return typename internal::cast_return_type<AngleAxis,AngleAxis<NewScalarType> >::type(*this); }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit AngleAxis(const AngleAxis<OtherScalarType>& other)
+  {
+    m_axis = other.axis().template cast<Scalar>();
+    m_angle = Scalar(other.angle());
+  }
+
+  static inline const AngleAxis Identity() { return AngleAxis(Scalar(0), Vector3::UnitX()); }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const AngleAxis& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+  { return m_axis.isApprox(other.m_axis, prec) && internal::isApprox(m_angle,other.m_angle, prec); }
+};
+
+/** \ingroup Geometry_Module
+  * single precision angle-axis type */
+typedef AngleAxis<float> AngleAxisf;
+/** \ingroup Geometry_Module
+  * double precision angle-axis type */
+typedef AngleAxis<double> AngleAxisd;
+
+/** Set \c *this from a \b unit quaternion.
+  * The axis is normalized.
+  * 
+  * \warning As any other method dealing with quaternion, if the input quaternion
+  *          is not normalized then the result is undefined.
+  */
+template<typename Scalar>
+template<typename QuatDerived>
+AngleAxis<Scalar>& AngleAxis<Scalar>::operator=(const QuaternionBase<QuatDerived>& q)
+{
+  using std::acos;
+  using std::min;
+  using std::max;
+  using std::sqrt;
+  Scalar n2 = q.vec().squaredNorm();
+  if (n2 < NumTraits<Scalar>::dummy_precision()*NumTraits<Scalar>::dummy_precision())
+  {
+    m_angle = Scalar(0);
+    m_axis << Scalar(1), Scalar(0), Scalar(0);
+  }
+  else
+  {
+    m_angle = Scalar(2)*acos((min)((max)(Scalar(-1),q.w()),Scalar(1)));
+    m_axis = q.vec() / sqrt(n2);
+  }
+  return *this;
+}
+
+/** Set \c *this from a 3x3 rotation matrix \a mat.
+  */
+template<typename Scalar>
+template<typename Derived>
+AngleAxis<Scalar>& AngleAxis<Scalar>::operator=(const MatrixBase<Derived>& mat)
+{
+  // Since a direct conversion would not be really faster,
+  // let's use the robust Quaternion implementation:
+  return *this = QuaternionType(mat);
+}
+
+/**
+* \brief Sets \c *this from a 3x3 rotation matrix.
+**/
+template<typename Scalar>
+template<typename Derived>
+AngleAxis<Scalar>& AngleAxis<Scalar>::fromRotationMatrix(const MatrixBase<Derived>& mat)
+{
+  return *this = QuaternionType(mat);
+}
+
+/** Constructs and \returns an equivalent 3x3 rotation matrix.
+  */
+template<typename Scalar>
+typename AngleAxis<Scalar>::Matrix3
+AngleAxis<Scalar>::toRotationMatrix(void) const
+{
+  using std::sin;
+  using std::cos;
+  Matrix3 res;
+  Vector3 sin_axis  = sin(m_angle) * m_axis;
+  Scalar c = cos(m_angle);
+  Vector3 cos1_axis = (Scalar(1)-c) * m_axis;
+
+  Scalar tmp;
+  tmp = cos1_axis.x() * m_axis.y();
+  res.coeffRef(0,1) = tmp - sin_axis.z();
+  res.coeffRef(1,0) = tmp + sin_axis.z();
+
+  tmp = cos1_axis.x() * m_axis.z();
+  res.coeffRef(0,2) = tmp + sin_axis.y();
+  res.coeffRef(2,0) = tmp - sin_axis.y();
+
+  tmp = cos1_axis.y() * m_axis.z();
+  res.coeffRef(1,2) = tmp - sin_axis.x();
+  res.coeffRef(2,1) = tmp + sin_axis.x();
+
+  res.diagonal() = (cos1_axis.cwiseProduct(m_axis)).array() + c;
+
+  return res;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ANGLEAXIS_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Geometry/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Geometry/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Geometry/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/Geometry/EulerAngles.h b/vendor/eigen-3.2.8/Eigen/src/Geometry/EulerAngles.h
new file mode 100644
index 0000000..82802fb
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Geometry/EulerAngles.h
@@ -0,0 +1,104 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_EULERANGLES_H
+#define EIGEN_EULERANGLES_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  *
+  * \returns the Euler-angles of the rotation matrix \c *this using the convention defined by the triplet (\a a0,\a a1,\a a2)
+  *
+  * Each of the three parameters \a a0,\a a1,\a a2 represents the respective rotation axis as an integer in {0,1,2}.
+  * For instance, in:
+  * \code Vector3f ea = mat.eulerAngles(2, 0, 2); \endcode
+  * "2" represents the z axis and "0" the x axis, etc. The returned angles are such that
+  * we have the following equality:
+  * \code
+  * mat == AngleAxisf(ea[0], Vector3f::UnitZ())
+  *      * AngleAxisf(ea[1], Vector3f::UnitX())
+  *      * AngleAxisf(ea[2], Vector3f::UnitZ()); \endcode
+  * This corresponds to the right-multiply conventions (with right hand side frames).
+  * 
+  * The returned angles are in the ranges [0:pi]x[-pi:pi]x[-pi:pi].
+  * 
+  * \sa class AngleAxis
+  */
+template<typename Derived>
+inline Matrix<typename MatrixBase<Derived>::Scalar,3,1>
+MatrixBase<Derived>::eulerAngles(Index a0, Index a1, Index a2) const
+{
+  using std::atan2;
+  using std::sin;
+  using std::cos;
+  /* Implemented from Graphics Gems IV */
+  EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Derived,3,3)
+
+  Matrix<Scalar,3,1> res;
+  typedef Matrix<typename Derived::Scalar,2,1> Vector2;
+
+  const Index odd = ((a0+1)%3 == a1) ? 0 : 1;
+  const Index i = a0;
+  const Index j = (a0 + 1 + odd)%3;
+  const Index k = (a0 + 2 - odd)%3;
+  
+  if (a0==a2)
+  {
+    res[0] = atan2(coeff(j,i), coeff(k,i));
+    if((odd && res[0]<Scalar(0)) || ((!odd) && res[0]>Scalar(0)))
+    {
+      res[0] = (res[0] > Scalar(0)) ? res[0] - Scalar(M_PI) : res[0] + Scalar(M_PI);
+      Scalar s2 = Vector2(coeff(j,i), coeff(k,i)).norm();
+      res[1] = -atan2(s2, coeff(i,i));
+    }
+    else
+    {
+      Scalar s2 = Vector2(coeff(j,i), coeff(k,i)).norm();
+      res[1] = atan2(s2, coeff(i,i));
+    }
+    
+    // With a=(0,1,0), we have i=0; j=1; k=2, and after computing the first two angles,
+    // we can compute their respective rotation, and apply its inverse to M. Since the result must
+    // be a rotation around x, we have:
+    //
+    //  c2  s1.s2 c1.s2                   1  0   0 
+    //  0   c1    -s1       *    M    =   0  c3  s3
+    //  -s2 s1.c2 c1.c2                   0 -s3  c3
+    //
+    //  Thus:  m11.c1 - m21.s1 = c3  &   m12.c1 - m22.s1 = s3
+    
+    Scalar s1 = sin(res[0]);
+    Scalar c1 = cos(res[0]);
+    res[2] = atan2(c1*coeff(j,k)-s1*coeff(k,k), c1*coeff(j,j) - s1 * coeff(k,j));
+  } 
+  else
+  {
+    res[0] = atan2(coeff(j,k), coeff(k,k));
+    Scalar c2 = Vector2(coeff(i,i), coeff(i,j)).norm();
+    if((odd && res[0]<Scalar(0)) || ((!odd) && res[0]>Scalar(0))) {
+      res[0] = (res[0] > Scalar(0)) ? res[0] - Scalar(M_PI) : res[0] + Scalar(M_PI);
+      res[1] = atan2(-coeff(i,k), -c2);
+    }
+    else
+      res[1] = atan2(-coeff(i,k), c2);
+    Scalar s1 = sin(res[0]);
+    Scalar c1 = cos(res[0]);
+    res[2] = atan2(s1*coeff(k,i)-c1*coeff(j,i), c1*coeff(j,j) - s1 * coeff(k,j));
+  }
+  if (!odd)
+    res = -res;
+  
+  return res;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_EULERANGLES_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Geometry/Homogeneous.h b/vendor/eigen-3.2.8/Eigen/src/Geometry/Homogeneous.h
new file mode 100644
index 0000000..372e422
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Geometry/Homogeneous.h
@@ -0,0 +1,307 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HOMOGENEOUS_H
+#define EIGEN_HOMOGENEOUS_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Homogeneous
+  *
+  * \brief Expression of one (or a set of) homogeneous vector(s)
+  *
+  * \param MatrixType the type of the object in which we are making homogeneous
+  *
+  * This class represents an expression of one (or a set of) homogeneous vector(s).
+  * It is the return type of MatrixBase::homogeneous() and most of the time
+  * this is the only way it is used.
+  *
+  * \sa MatrixBase::homogeneous()
+  */
+
+namespace internal {
+
+template<typename MatrixType,int Direction>
+struct traits<Homogeneous<MatrixType,Direction> >
+ : traits<MatrixType>
+{
+  typedef typename traits<MatrixType>::StorageKind StorageKind;
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
+  enum {
+    RowsPlusOne = (MatrixType::RowsAtCompileTime != Dynamic) ?
+                  int(MatrixType::RowsAtCompileTime) + 1 : Dynamic,
+    ColsPlusOne = (MatrixType::ColsAtCompileTime != Dynamic) ?
+                  int(MatrixType::ColsAtCompileTime) + 1 : Dynamic,
+    RowsAtCompileTime = Direction==Vertical  ?  RowsPlusOne : MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = Direction==Horizontal ? ColsPlusOne : MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = RowsAtCompileTime,
+    MaxColsAtCompileTime = ColsAtCompileTime,
+    TmpFlags = _MatrixTypeNested::Flags & HereditaryBits,
+    Flags = ColsAtCompileTime==1 ? (TmpFlags & ~RowMajorBit)
+          : RowsAtCompileTime==1 ? (TmpFlags | RowMajorBit)
+          : TmpFlags,
+    CoeffReadCost = _MatrixTypeNested::CoeffReadCost
+  };
+};
+
+template<typename MatrixType,typename Lhs> struct homogeneous_left_product_impl;
+template<typename MatrixType,typename Rhs> struct homogeneous_right_product_impl;
+
+} // end namespace internal
+
+template<typename MatrixType,int _Direction> class Homogeneous
+  : internal::no_assignment_operator, public MatrixBase<Homogeneous<MatrixType,_Direction> >
+{
+  public:
+
+    enum { Direction = _Direction };
+
+    typedef MatrixBase<Homogeneous> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Homogeneous)
+
+    inline Homogeneous(const MatrixType& matrix)
+      : m_matrix(matrix)
+    {}
+
+    inline Index rows() const { return m_matrix.rows() + (int(Direction)==Vertical   ? 1 : 0); }
+    inline Index cols() const { return m_matrix.cols() + (int(Direction)==Horizontal ? 1 : 0); }
+
+    inline Scalar coeff(Index row, Index col) const
+    {
+      if(  (int(Direction)==Vertical   && row==m_matrix.rows())
+        || (int(Direction)==Horizontal && col==m_matrix.cols()))
+        return Scalar(1);
+      return m_matrix.coeff(row, col);
+    }
+
+    template<typename Rhs>
+    inline const internal::homogeneous_right_product_impl<Homogeneous,Rhs>
+    operator* (const MatrixBase<Rhs>& rhs) const
+    {
+      eigen_assert(int(Direction)==Horizontal);
+      return internal::homogeneous_right_product_impl<Homogeneous,Rhs>(m_matrix,rhs.derived());
+    }
+
+    template<typename Lhs> friend
+    inline const internal::homogeneous_left_product_impl<Homogeneous,Lhs>
+    operator* (const MatrixBase<Lhs>& lhs, const Homogeneous& rhs)
+    {
+      eigen_assert(int(Direction)==Vertical);
+      return internal::homogeneous_left_product_impl<Homogeneous,Lhs>(lhs.derived(),rhs.m_matrix);
+    }
+
+    template<typename Scalar, int Dim, int Mode, int Options> friend
+    inline const internal::homogeneous_left_product_impl<Homogeneous,Transform<Scalar,Dim,Mode,Options> >
+    operator* (const Transform<Scalar,Dim,Mode,Options>& lhs, const Homogeneous& rhs)
+    {
+      eigen_assert(int(Direction)==Vertical);
+      return internal::homogeneous_left_product_impl<Homogeneous,Transform<Scalar,Dim,Mode,Options> >(lhs,rhs.m_matrix);
+    }
+
+  protected:
+    typename MatrixType::Nested m_matrix;
+};
+
+/** \geometry_module
+  *
+  * \return an expression of the equivalent homogeneous vector
+  *
+  * \only_for_vectors
+  *
+  * Example: \include MatrixBase_homogeneous.cpp
+  * Output: \verbinclude MatrixBase_homogeneous.out
+  *
+  * \sa class Homogeneous
+  */
+template<typename Derived>
+inline typename MatrixBase<Derived>::HomogeneousReturnType
+MatrixBase<Derived>::homogeneous() const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
+  return derived();
+}
+
+/** \geometry_module
+  *
+  * \returns a matrix expression of homogeneous column (or row) vectors
+  *
+  * Example: \include VectorwiseOp_homogeneous.cpp
+  * Output: \verbinclude VectorwiseOp_homogeneous.out
+  *
+  * \sa MatrixBase::homogeneous() */
+template<typename ExpressionType, int Direction>
+inline Homogeneous<ExpressionType,Direction>
+VectorwiseOp<ExpressionType,Direction>::homogeneous() const
+{
+  return _expression();
+}
+
+/** \geometry_module
+  *
+  * \returns an expression of the homogeneous normalized vector of \c *this
+  *
+  * Example: \include MatrixBase_hnormalized.cpp
+  * Output: \verbinclude MatrixBase_hnormalized.out
+  *
+  * \sa VectorwiseOp::hnormalized() */
+template<typename Derived>
+inline const typename MatrixBase<Derived>::HNormalizedReturnType
+MatrixBase<Derived>::hnormalized() const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
+  return ConstStartMinusOne(derived(),0,0,
+    ColsAtCompileTime==1?size()-1:1,
+    ColsAtCompileTime==1?1:size()-1) / coeff(size()-1);
+}
+
+/** \geometry_module
+  *
+  * \returns an expression of the homogeneous normalized vector of \c *this
+  *
+  * Example: \include DirectionWise_hnormalized.cpp
+  * Output: \verbinclude DirectionWise_hnormalized.out
+  *
+  * \sa MatrixBase::hnormalized() */
+template<typename ExpressionType, int Direction>
+inline const typename VectorwiseOp<ExpressionType,Direction>::HNormalizedReturnType
+VectorwiseOp<ExpressionType,Direction>::hnormalized() const
+{
+  return HNormalized_Block(_expression(),0,0,
+      Direction==Vertical   ? _expression().rows()-1 : _expression().rows(),
+      Direction==Horizontal ? _expression().cols()-1 : _expression().cols()).cwiseQuotient(
+      Replicate<HNormalized_Factors,
+                Direction==Vertical   ? HNormalized_SizeMinusOne : 1,
+                Direction==Horizontal ? HNormalized_SizeMinusOne : 1>
+        (HNormalized_Factors(_expression(),
+          Direction==Vertical    ? _expression().rows()-1:0,
+          Direction==Horizontal  ? _expression().cols()-1:0,
+          Direction==Vertical    ? 1 : _expression().rows(),
+          Direction==Horizontal  ? 1 : _expression().cols()),
+         Direction==Vertical   ? _expression().rows()-1 : 1,
+         Direction==Horizontal ? _expression().cols()-1 : 1));
+}
+
+namespace internal {
+
+template<typename MatrixOrTransformType>
+struct take_matrix_for_product
+{
+  typedef MatrixOrTransformType type;
+  static const type& run(const type &x) { return x; }
+};
+
+template<typename Scalar, int Dim, int Mode,int Options>
+struct take_matrix_for_product<Transform<Scalar, Dim, Mode, Options> >
+{
+  typedef Transform<Scalar, Dim, Mode, Options> TransformType;
+  typedef typename internal::add_const<typename TransformType::ConstAffinePart>::type type;
+  static type run (const TransformType& x) { return x.affine(); }
+};
+
+template<typename Scalar, int Dim, int Options>
+struct take_matrix_for_product<Transform<Scalar, Dim, Projective, Options> >
+{
+  typedef Transform<Scalar, Dim, Projective, Options> TransformType;
+  typedef typename TransformType::MatrixType type;
+  static const type& run (const TransformType& x) { return x.matrix(); }
+};
+
+template<typename MatrixType,typename Lhs>
+struct traits<homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs> >
+{
+  typedef typename take_matrix_for_product<Lhs>::type LhsMatrixType;
+  typedef typename remove_all<MatrixType>::type MatrixTypeCleaned;
+  typedef typename remove_all<LhsMatrixType>::type LhsMatrixTypeCleaned;
+  typedef typename make_proper_matrix_type<
+                 typename traits<MatrixTypeCleaned>::Scalar,
+                 LhsMatrixTypeCleaned::RowsAtCompileTime,
+                 MatrixTypeCleaned::ColsAtCompileTime,
+                 MatrixTypeCleaned::PlainObject::Options,
+                 LhsMatrixTypeCleaned::MaxRowsAtCompileTime,
+                 MatrixTypeCleaned::MaxColsAtCompileTime>::type ReturnType;
+};
+
+template<typename MatrixType,typename Lhs>
+struct homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs>
+  : public ReturnByValue<homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs> >
+{
+  typedef typename traits<homogeneous_left_product_impl>::LhsMatrixType LhsMatrixType;
+  typedef typename remove_all<LhsMatrixType>::type LhsMatrixTypeCleaned;
+  typedef typename remove_all<typename LhsMatrixTypeCleaned::Nested>::type LhsMatrixTypeNested;
+  typedef typename MatrixType::Index Index;
+  homogeneous_left_product_impl(const Lhs& lhs, const MatrixType& rhs)
+    : m_lhs(take_matrix_for_product<Lhs>::run(lhs)),
+      m_rhs(rhs)
+  {}
+
+  inline Index rows() const { return m_lhs.rows(); }
+  inline Index cols() const { return m_rhs.cols(); }
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    // FIXME investigate how to allow lazy evaluation of this product when possible
+    dst = Block<const LhsMatrixTypeNested,
+              LhsMatrixTypeNested::RowsAtCompileTime,
+              LhsMatrixTypeNested::ColsAtCompileTime==Dynamic?Dynamic:LhsMatrixTypeNested::ColsAtCompileTime-1>
+            (m_lhs,0,0,m_lhs.rows(),m_lhs.cols()-1) * m_rhs;
+    dst += m_lhs.col(m_lhs.cols()-1).rowwise()
+            .template replicate<MatrixType::ColsAtCompileTime>(m_rhs.cols());
+  }
+
+  typename LhsMatrixTypeCleaned::Nested m_lhs;
+  typename MatrixType::Nested m_rhs;
+};
+
+template<typename MatrixType,typename Rhs>
+struct traits<homogeneous_right_product_impl<Homogeneous<MatrixType,Horizontal>,Rhs> >
+{
+  typedef typename make_proper_matrix_type<typename traits<MatrixType>::Scalar,
+                 MatrixType::RowsAtCompileTime,
+                 Rhs::ColsAtCompileTime,
+                 MatrixType::PlainObject::Options,
+                 MatrixType::MaxRowsAtCompileTime,
+                 Rhs::MaxColsAtCompileTime>::type ReturnType;
+};
+
+template<typename MatrixType,typename Rhs>
+struct homogeneous_right_product_impl<Homogeneous<MatrixType,Horizontal>,Rhs>
+  : public ReturnByValue<homogeneous_right_product_impl<Homogeneous<MatrixType,Horizontal>,Rhs> >
+{
+  typedef typename remove_all<typename Rhs::Nested>::type RhsNested;
+  typedef typename MatrixType::Index Index;
+  homogeneous_right_product_impl(const MatrixType& lhs, const Rhs& rhs)
+    : m_lhs(lhs), m_rhs(rhs)
+  {}
+
+  inline Index rows() const { return m_lhs.rows(); }
+  inline Index cols() const { return m_rhs.cols(); }
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    // FIXME investigate how to allow lazy evaluation of this product when possible
+    dst = m_lhs * Block<const RhsNested,
+                        RhsNested::RowsAtCompileTime==Dynamic?Dynamic:RhsNested::RowsAtCompileTime-1,
+                        RhsNested::ColsAtCompileTime>
+            (m_rhs,0,0,m_rhs.rows()-1,m_rhs.cols());
+    dst += m_rhs.row(m_rhs.rows()-1).colwise()
+            .template replicate<MatrixType::RowsAtCompileTime>(m_lhs.rows());
+  }
+
+  typename MatrixType::Nested m_lhs;
+  typename Rhs::Nested m_rhs;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_HOMOGENEOUS_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Geometry/Hyperplane.h b/vendor/eigen-3.2.8/Eigen/src/Geometry/Hyperplane.h
new file mode 100644
index 0000000..00b7c43
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Geometry/Hyperplane.h
@@ -0,0 +1,280 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HYPERPLANE_H
+#define EIGEN_HYPERPLANE_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Hyperplane
+  *
+  * \brief A hyperplane
+  *
+  * A hyperplane is an affine subspace of dimension n-1 in a space of dimension n.
+  * For example, a hyperplane in a plane is a line; a hyperplane in 3-space is a plane.
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients
+  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
+  *             Notice that the dimension of the hyperplane is _AmbientDim-1.
+  *
+  * This class represents an hyperplane as the zero set of the implicit equation
+  * \f$ n \cdot x + d = 0 \f$ where \f$ n \f$ is a unit normal vector of the plane (linear part)
+  * and \f$ d \f$ is the distance (offset) to the origin.
+  */
+template <typename _Scalar, int _AmbientDim, int _Options>
+class Hyperplane
+{
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim==Dynamic ? Dynamic : _AmbientDim+1)
+  enum {
+    AmbientDimAtCompileTime = _AmbientDim,
+    Options = _Options
+  };
+  typedef _Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef DenseIndex Index;
+  typedef Matrix<Scalar,AmbientDimAtCompileTime,1> VectorType;
+  typedef Matrix<Scalar,Index(AmbientDimAtCompileTime)==Dynamic
+                        ? Dynamic
+                        : Index(AmbientDimAtCompileTime)+1,1,Options> Coefficients;
+  typedef Block<Coefficients,AmbientDimAtCompileTime,1> NormalReturnType;
+  typedef const Block<const Coefficients,AmbientDimAtCompileTime,1> ConstNormalReturnType;
+
+  /** Default constructor without initialization */
+  inline Hyperplane() {}
+  
+  template<int OtherOptions>
+  Hyperplane(const Hyperplane<Scalar,AmbientDimAtCompileTime,OtherOptions>& other)
+   : m_coeffs(other.coeffs())
+  {}
+
+  /** Constructs a dynamic-size hyperplane with \a _dim the dimension
+    * of the ambient space */
+  inline explicit Hyperplane(Index _dim) : m_coeffs(_dim+1) {}
+
+  /** Construct a plane from its normal \a n and a point \a e onto the plane.
+    * \warning the vector normal is assumed to be normalized.
+    */
+  inline Hyperplane(const VectorType& n, const VectorType& e)
+    : m_coeffs(n.size()+1)
+  {
+    normal() = n;
+    offset() = -n.dot(e);
+  }
+
+  /** Constructs a plane from its normal \a n and distance to the origin \a d
+    * such that the algebraic equation of the plane is \f$ n \cdot x + d = 0 \f$.
+    * \warning the vector normal is assumed to be normalized.
+    */
+  inline Hyperplane(const VectorType& n, const Scalar& d)
+    : m_coeffs(n.size()+1)
+  {
+    normal() = n;
+    offset() = d;
+  }
+
+  /** Constructs a hyperplane passing through the two points. If the dimension of the ambient space
+    * is greater than 2, then there isn't uniqueness, so an arbitrary choice is made.
+    */
+  static inline Hyperplane Through(const VectorType& p0, const VectorType& p1)
+  {
+    Hyperplane result(p0.size());
+    result.normal() = (p1 - p0).unitOrthogonal();
+    result.offset() = -p0.dot(result.normal());
+    return result;
+  }
+
+  /** Constructs a hyperplane passing through the three points. The dimension of the ambient space
+    * is required to be exactly 3.
+    */
+  static inline Hyperplane Through(const VectorType& p0, const VectorType& p1, const VectorType& p2)
+  {
+    EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 3)
+    Hyperplane result(p0.size());
+    VectorType v0(p2 - p0), v1(p1 - p0);
+    result.normal() = v0.cross(v1);
+    RealScalar norm = result.normal().norm();
+    if(norm <= v0.norm() * v1.norm() * NumTraits<RealScalar>::epsilon())
+    {
+      Matrix<Scalar,2,3> m; m << v0.transpose(), v1.transpose();
+      JacobiSVD<Matrix<Scalar,2,3> > svd(m, ComputeFullV);
+      result.normal() = svd.matrixV().col(2);
+    }
+    else
+      result.normal() /= norm;
+    result.offset() = -p0.dot(result.normal());
+    return result;
+  }
+
+  /** Constructs a hyperplane passing through the parametrized line \a parametrized.
+    * If the dimension of the ambient space is greater than 2, then there isn't uniqueness,
+    * so an arbitrary choice is made.
+    */
+  // FIXME to be consitent with the rest this could be implemented as a static Through function ??
+  explicit Hyperplane(const ParametrizedLine<Scalar, AmbientDimAtCompileTime>& parametrized)
+  {
+    normal() = parametrized.direction().unitOrthogonal();
+    offset() = -parametrized.origin().dot(normal());
+  }
+
+  ~Hyperplane() {}
+
+  /** \returns the dimension in which the plane holds */
+  inline Index dim() const { return AmbientDimAtCompileTime==Dynamic ? m_coeffs.size()-1 : Index(AmbientDimAtCompileTime); }
+
+  /** normalizes \c *this */
+  void normalize(void)
+  {
+    m_coeffs /= normal().norm();
+  }
+
+  /** \returns the signed distance between the plane \c *this and a point \a p.
+    * \sa absDistance()
+    */
+  inline Scalar signedDistance(const VectorType& p) const { return normal().dot(p) + offset(); }
+
+  /** \returns the absolute distance between the plane \c *this and a point \a p.
+    * \sa signedDistance()
+    */
+  inline Scalar absDistance(const VectorType& p) const { using std::abs; return abs(signedDistance(p)); }
+
+  /** \returns the projection of a point \a p onto the plane \c *this.
+    */
+  inline VectorType projection(const VectorType& p) const { return p - signedDistance(p) * normal(); }
+
+  /** \returns a constant reference to the unit normal vector of the plane, which corresponds
+    * to the linear part of the implicit equation.
+    */
+  inline ConstNormalReturnType normal() const { return ConstNormalReturnType(m_coeffs,0,0,dim(),1); }
+
+  /** \returns a non-constant reference to the unit normal vector of the plane, which corresponds
+    * to the linear part of the implicit equation.
+    */
+  inline NormalReturnType normal() { return NormalReturnType(m_coeffs,0,0,dim(),1); }
+
+  /** \returns the distance to the origin, which is also the "constant term" of the implicit equation
+    * \warning the vector normal is assumed to be normalized.
+    */
+  inline const Scalar& offset() const { return m_coeffs.coeff(dim()); }
+
+  /** \returns a non-constant reference to the distance to the origin, which is also the constant part
+    * of the implicit equation */
+  inline Scalar& offset() { return m_coeffs(dim()); }
+
+  /** \returns a constant reference to the coefficients c_i of the plane equation:
+    * \f$ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \f$
+    */
+  inline const Coefficients& coeffs() const { return m_coeffs; }
+
+  /** \returns a non-constant reference to the coefficients c_i of the plane equation:
+    * \f$ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \f$
+    */
+  inline Coefficients& coeffs() { return m_coeffs; }
+
+  /** \returns the intersection of *this with \a other.
+    *
+    * \warning The ambient space must be a plane, i.e. have dimension 2, so that \c *this and \a other are lines.
+    *
+    * \note If \a other is approximately parallel to *this, this method will return any point on *this.
+    */
+  VectorType intersection(const Hyperplane& other) const
+  {
+    using std::abs;
+    EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 2)
+    Scalar det = coeffs().coeff(0) * other.coeffs().coeff(1) - coeffs().coeff(1) * other.coeffs().coeff(0);
+    // since the line equations ax+by=c are normalized with a^2+b^2=1, the following tests
+    // whether the two lines are approximately parallel.
+    if(internal::isMuchSmallerThan(det, Scalar(1)))
+    {   // special case where the two lines are approximately parallel. Pick any point on the first line.
+        if(abs(coeffs().coeff(1))>abs(coeffs().coeff(0)))
+            return VectorType(coeffs().coeff(1), -coeffs().coeff(2)/coeffs().coeff(1)-coeffs().coeff(0));
+        else
+            return VectorType(-coeffs().coeff(2)/coeffs().coeff(0)-coeffs().coeff(1), coeffs().coeff(0));
+    }
+    else
+    {   // general case
+        Scalar invdet = Scalar(1) / det;
+        return VectorType(invdet*(coeffs().coeff(1)*other.coeffs().coeff(2)-other.coeffs().coeff(1)*coeffs().coeff(2)),
+                          invdet*(other.coeffs().coeff(0)*coeffs().coeff(2)-coeffs().coeff(0)*other.coeffs().coeff(2)));
+    }
+  }
+
+  /** Applies the transformation matrix \a mat to \c *this and returns a reference to \c *this.
+    *
+    * \param mat the Dim x Dim transformation matrix
+    * \param traits specifies whether the matrix \a mat represents an #Isometry
+    *               or a more generic #Affine transformation. The default is #Affine.
+    */
+  template<typename XprType>
+  inline Hyperplane& transform(const MatrixBase<XprType>& mat, TransformTraits traits = Affine)
+  {
+    if (traits==Affine)
+      normal() = mat.inverse().transpose() * normal();
+    else if (traits==Isometry)
+      normal() = mat * normal();
+    else
+    {
+      eigen_assert(0 && "invalid traits value in Hyperplane::transform()");
+    }
+    return *this;
+  }
+
+  /** Applies the transformation \a t to \c *this and returns a reference to \c *this.
+    *
+    * \param t the transformation of dimension Dim
+    * \param traits specifies whether the transformation \a t represents an #Isometry
+    *               or a more generic #Affine transformation. The default is #Affine.
+    *               Other kind of transformations are not supported.
+    */
+  template<int TrOptions>
+  inline Hyperplane& transform(const Transform<Scalar,AmbientDimAtCompileTime,Affine,TrOptions>& t,
+                                TransformTraits traits = Affine)
+  {
+    transform(t.linear(), traits);
+    offset() -= normal().dot(t.translation());
+    return *this;
+  }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Hyperplane,
+           Hyperplane<NewScalarType,AmbientDimAtCompileTime,Options> >::type cast() const
+  {
+    return typename internal::cast_return_type<Hyperplane,
+                    Hyperplane<NewScalarType,AmbientDimAtCompileTime,Options> >::type(*this);
+  }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType,int OtherOptions>
+  inline explicit Hyperplane(const Hyperplane<OtherScalarType,AmbientDimAtCompileTime,OtherOptions>& other)
+  { m_coeffs = other.coeffs().template cast<Scalar>(); }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  template<int OtherOptions>
+  bool isApprox(const Hyperplane<Scalar,AmbientDimAtCompileTime,OtherOptions>& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+  { return m_coeffs.isApprox(other.m_coeffs, prec); }
+
+protected:
+
+  Coefficients m_coeffs;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_HYPERPLANE_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Geometry/OrthoMethods.h b/vendor/eigen-3.2.8/Eigen/src/Geometry/OrthoMethods.h
new file mode 100644
index 0000000..556bc81
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Geometry/OrthoMethods.h
@@ -0,0 +1,218 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ORTHOMETHODS_H
+#define EIGEN_ORTHOMETHODS_H
+
+namespace Eigen { 
+
+/** \geometry_module
+  *
+  * \returns the cross product of \c *this and \a other
+  *
+  * Here is a very good explanation of cross-product: http://xkcd.com/199/
+  * \sa MatrixBase::cross3()
+  */
+template<typename Derived>
+template<typename OtherDerived>
+inline typename MatrixBase<Derived>::template cross_product_return_type<OtherDerived>::type
+MatrixBase<Derived>::cross(const MatrixBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Derived,3)
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,3)
+
+  // Note that there is no need for an expression here since the compiler
+  // optimize such a small temporary very well (even within a complex expression)
+  typename internal::nested<Derived,2>::type lhs(derived());
+  typename internal::nested<OtherDerived,2>::type rhs(other.derived());
+  return typename cross_product_return_type<OtherDerived>::type(
+    numext::conj(lhs.coeff(1) * rhs.coeff(2) - lhs.coeff(2) * rhs.coeff(1)),
+    numext::conj(lhs.coeff(2) * rhs.coeff(0) - lhs.coeff(0) * rhs.coeff(2)),
+    numext::conj(lhs.coeff(0) * rhs.coeff(1) - lhs.coeff(1) * rhs.coeff(0))
+  );
+}
+
+namespace internal {
+
+template< int Arch,typename VectorLhs,typename VectorRhs,
+          typename Scalar = typename VectorLhs::Scalar,
+          bool Vectorizable = bool((VectorLhs::Flags&VectorRhs::Flags)&PacketAccessBit)>
+struct cross3_impl {
+  static inline typename internal::plain_matrix_type<VectorLhs>::type
+  run(const VectorLhs& lhs, const VectorRhs& rhs)
+  {
+    return typename internal::plain_matrix_type<VectorLhs>::type(
+      numext::conj(lhs.coeff(1) * rhs.coeff(2) - lhs.coeff(2) * rhs.coeff(1)),
+      numext::conj(lhs.coeff(2) * rhs.coeff(0) - lhs.coeff(0) * rhs.coeff(2)),
+      numext::conj(lhs.coeff(0) * rhs.coeff(1) - lhs.coeff(1) * rhs.coeff(0)),
+      0
+    );
+  }
+};
+
+}
+
+/** \geometry_module
+  *
+  * \returns the cross product of \c *this and \a other using only the x, y, and z coefficients
+  *
+  * The size of \c *this and \a other must be four. This function is especially useful
+  * when using 4D vectors instead of 3D ones to get advantage of SSE/AltiVec vectorization.
+  *
+  * \sa MatrixBase::cross()
+  */
+template<typename Derived>
+template<typename OtherDerived>
+inline typename MatrixBase<Derived>::PlainObject
+MatrixBase<Derived>::cross3(const MatrixBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Derived,4)
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,4)
+
+  typedef typename internal::nested<Derived,2>::type DerivedNested;
+  typedef typename internal::nested<OtherDerived,2>::type OtherDerivedNested;
+  DerivedNested lhs(derived());
+  OtherDerivedNested rhs(other.derived());
+
+  return internal::cross3_impl<Architecture::Target,
+                        typename internal::remove_all<DerivedNested>::type,
+                        typename internal::remove_all<OtherDerivedNested>::type>::run(lhs,rhs);
+}
+
+/** \returns a matrix expression of the cross product of each column or row
+  * of the referenced expression with the \a other vector.
+  *
+  * The referenced matrix must have one dimension equal to 3.
+  * The result matrix has the same dimensions than the referenced one.
+  *
+  * \geometry_module
+  *
+  * \sa MatrixBase::cross() */
+template<typename ExpressionType, int Direction>
+template<typename OtherDerived>
+const typename VectorwiseOp<ExpressionType,Direction>::CrossReturnType
+VectorwiseOp<ExpressionType,Direction>::cross(const MatrixBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,3)
+  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+  CrossReturnType res(_expression().rows(),_expression().cols());
+  if(Direction==Vertical)
+  {
+    eigen_assert(CrossReturnType::RowsAtCompileTime==3 && "the matrix must have exactly 3 rows");
+    res.row(0) = (_expression().row(1) * other.coeff(2) - _expression().row(2) * other.coeff(1)).conjugate();
+    res.row(1) = (_expression().row(2) * other.coeff(0) - _expression().row(0) * other.coeff(2)).conjugate();
+    res.row(2) = (_expression().row(0) * other.coeff(1) - _expression().row(1) * other.coeff(0)).conjugate();
+  }
+  else
+  {
+    eigen_assert(CrossReturnType::ColsAtCompileTime==3 && "the matrix must have exactly 3 columns");
+    res.col(0) = (_expression().col(1) * other.coeff(2) - _expression().col(2) * other.coeff(1)).conjugate();
+    res.col(1) = (_expression().col(2) * other.coeff(0) - _expression().col(0) * other.coeff(2)).conjugate();
+    res.col(2) = (_expression().col(0) * other.coeff(1) - _expression().col(1) * other.coeff(0)).conjugate();
+  }
+  return res;
+}
+
+namespace internal {
+
+template<typename Derived, int Size = Derived::SizeAtCompileTime>
+struct unitOrthogonal_selector
+{
+  typedef typename plain_matrix_type<Derived>::type VectorType;
+  typedef typename traits<Derived>::Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef typename Derived::Index Index;
+  typedef Matrix<Scalar,2,1> Vector2;
+  static inline VectorType run(const Derived& src)
+  {
+    VectorType perp = VectorType::Zero(src.size());
+    Index maxi = 0;
+    Index sndi = 0;
+    src.cwiseAbs().maxCoeff(&maxi);
+    if (maxi==0)
+      sndi = 1;
+    RealScalar invnm = RealScalar(1)/(Vector2() << src.coeff(sndi),src.coeff(maxi)).finished().norm();
+    perp.coeffRef(maxi) = -numext::conj(src.coeff(sndi)) * invnm;
+    perp.coeffRef(sndi) =  numext::conj(src.coeff(maxi)) * invnm;
+
+    return perp;
+   }
+};
+
+template<typename Derived>
+struct unitOrthogonal_selector<Derived,3>
+{
+  typedef typename plain_matrix_type<Derived>::type VectorType;
+  typedef typename traits<Derived>::Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline VectorType run(const Derived& src)
+  {
+    VectorType perp;
+    /* Let us compute the crossed product of *this with a vector
+     * that is not too close to being colinear to *this.
+     */
+
+    /* unless the x and y coords are both close to zero, we can
+     * simply take ( -y, x, 0 ) and normalize it.
+     */
+    if((!isMuchSmallerThan(src.x(), src.z()))
+    || (!isMuchSmallerThan(src.y(), src.z())))
+    {
+      RealScalar invnm = RealScalar(1)/src.template head<2>().norm();
+      perp.coeffRef(0) = -numext::conj(src.y())*invnm;
+      perp.coeffRef(1) = numext::conj(src.x())*invnm;
+      perp.coeffRef(2) = 0;
+    }
+    /* if both x and y are close to zero, then the vector is close
+     * to the z-axis, so it's far from colinear to the x-axis for instance.
+     * So we take the crossed product with (1,0,0) and normalize it.
+     */
+    else
+    {
+      RealScalar invnm = RealScalar(1)/src.template tail<2>().norm();
+      perp.coeffRef(0) = 0;
+      perp.coeffRef(1) = -numext::conj(src.z())*invnm;
+      perp.coeffRef(2) = numext::conj(src.y())*invnm;
+    }
+
+    return perp;
+   }
+};
+
+template<typename Derived>
+struct unitOrthogonal_selector<Derived,2>
+{
+  typedef typename plain_matrix_type<Derived>::type VectorType;
+  static inline VectorType run(const Derived& src)
+  { return VectorType(-numext::conj(src.y()), numext::conj(src.x())).normalized(); }
+};
+
+} // end namespace internal
+
+/** \returns a unit vector which is orthogonal to \c *this
+  *
+  * The size of \c *this must be at least 2. If the size is exactly 2,
+  * then the returned vector is a counter clock wise rotation of \c *this, i.e., (-y,x).normalized().
+  *
+  * \sa cross()
+  */
+template<typename Derived>
+typename MatrixBase<Derived>::PlainObject
+MatrixBase<Derived>::unitOrthogonal() const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return internal::unitOrthogonal_selector<Derived>::run(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ORTHOMETHODS_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Geometry/ParametrizedLine.h b/vendor/eigen-3.2.8/Eigen/src/Geometry/ParametrizedLine.h
new file mode 100644
index 0000000..cf3252d
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Geometry/ParametrizedLine.h
@@ -0,0 +1,195 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PARAMETRIZEDLINE_H
+#define EIGEN_PARAMETRIZEDLINE_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class ParametrizedLine
+  *
+  * \brief A parametrized line
+  *
+  * A parametrized line is defined by an origin point \f$ \mathbf{o} \f$ and a unit
+  * direction vector \f$ \mathbf{d} \f$ such that the line corresponds to
+  * the set \f$ l(t) = \mathbf{o} + t \mathbf{d} \f$, \f$ t \in \mathbf{R} \f$.
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients
+  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
+  */
+template <typename _Scalar, int _AmbientDim, int _Options>
+class ParametrizedLine
+{
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
+  enum {
+    AmbientDimAtCompileTime = _AmbientDim,
+    Options = _Options
+  };
+  typedef _Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef DenseIndex Index;
+  typedef Matrix<Scalar,AmbientDimAtCompileTime,1,Options> VectorType;
+
+  /** Default constructor without initialization */
+  inline ParametrizedLine() {}
+  
+  template<int OtherOptions>
+  ParametrizedLine(const ParametrizedLine<Scalar,AmbientDimAtCompileTime,OtherOptions>& other)
+   : m_origin(other.origin()), m_direction(other.direction())
+  {}
+
+  /** Constructs a dynamic-size line with \a _dim the dimension
+    * of the ambient space */
+  inline explicit ParametrizedLine(Index _dim) : m_origin(_dim), m_direction(_dim) {}
+
+  /** Initializes a parametrized line of direction \a direction and origin \a origin.
+    * \warning the vector direction is assumed to be normalized.
+    */
+  ParametrizedLine(const VectorType& origin, const VectorType& direction)
+    : m_origin(origin), m_direction(direction) {}
+
+  template <int OtherOptions>
+  explicit ParametrizedLine(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane);
+
+  /** Constructs a parametrized line going from \a p0 to \a p1. */
+  static inline ParametrizedLine Through(const VectorType& p0, const VectorType& p1)
+  { return ParametrizedLine(p0, (p1-p0).normalized()); }
+
+  ~ParametrizedLine() {}
+
+  /** \returns the dimension in which the line holds */
+  inline Index dim() const { return m_direction.size(); }
+
+  const VectorType& origin() const { return m_origin; }
+  VectorType& origin() { return m_origin; }
+
+  const VectorType& direction() const { return m_direction; }
+  VectorType& direction() { return m_direction; }
+
+  /** \returns the squared distance of a point \a p to its projection onto the line \c *this.
+    * \sa distance()
+    */
+  RealScalar squaredDistance(const VectorType& p) const
+  {
+    VectorType diff = p - origin();
+    return (diff - direction().dot(diff) * direction()).squaredNorm();
+  }
+  /** \returns the distance of a point \a p to its projection onto the line \c *this.
+    * \sa squaredDistance()
+    */
+  RealScalar distance(const VectorType& p) const { using std::sqrt; return sqrt(squaredDistance(p)); }
+
+  /** \returns the projection of a point \a p onto the line \c *this. */
+  VectorType projection(const VectorType& p) const
+  { return origin() + direction().dot(p-origin()) * direction(); }
+
+  VectorType pointAt(const Scalar& t) const;
+  
+  template <int OtherOptions>
+  Scalar intersectionParameter(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const;
+ 
+  template <int OtherOptions>
+  Scalar intersection(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const;
+  
+  template <int OtherOptions>
+  VectorType intersectionPoint(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const;
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<ParametrizedLine,
+           ParametrizedLine<NewScalarType,AmbientDimAtCompileTime,Options> >::type cast() const
+  {
+    return typename internal::cast_return_type<ParametrizedLine,
+                    ParametrizedLine<NewScalarType,AmbientDimAtCompileTime,Options> >::type(*this);
+  }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType,int OtherOptions>
+  inline explicit ParametrizedLine(const ParametrizedLine<OtherScalarType,AmbientDimAtCompileTime,OtherOptions>& other)
+  {
+    m_origin = other.origin().template cast<Scalar>();
+    m_direction = other.direction().template cast<Scalar>();
+  }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const ParametrizedLine& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+  { return m_origin.isApprox(other.m_origin, prec) && m_direction.isApprox(other.m_direction, prec); }
+
+protected:
+
+  VectorType m_origin, m_direction;
+};
+
+/** Constructs a parametrized line from a 2D hyperplane
+  *
+  * \warning the ambient space must have dimension 2 such that the hyperplane actually describes a line
+  */
+template <typename _Scalar, int _AmbientDim, int _Options>
+template <int OtherOptions>
+inline ParametrizedLine<_Scalar, _AmbientDim,_Options>::ParametrizedLine(const Hyperplane<_Scalar, _AmbientDim,OtherOptions>& hyperplane)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 2)
+  direction() = hyperplane.normal().unitOrthogonal();
+  origin() = -hyperplane.normal()*hyperplane.offset();
+}
+
+/** \returns the point at \a t along this line
+  */
+template <typename _Scalar, int _AmbientDim, int _Options>
+inline typename ParametrizedLine<_Scalar, _AmbientDim,_Options>::VectorType
+ParametrizedLine<_Scalar, _AmbientDim,_Options>::pointAt(const _Scalar& t) const
+{
+  return origin() + (direction()*t); 
+}
+
+/** \returns the parameter value of the intersection between \c *this and the given \a hyperplane
+  */
+template <typename _Scalar, int _AmbientDim, int _Options>
+template <int OtherOptions>
+inline _Scalar ParametrizedLine<_Scalar, _AmbientDim,_Options>::intersectionParameter(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const
+{
+  return -(hyperplane.offset()+hyperplane.normal().dot(origin()))
+          / hyperplane.normal().dot(direction());
+}
+
+
+/** \deprecated use intersectionParameter()
+  * \returns the parameter value of the intersection between \c *this and the given \a hyperplane
+  */
+template <typename _Scalar, int _AmbientDim, int _Options>
+template <int OtherOptions>
+inline _Scalar ParametrizedLine<_Scalar, _AmbientDim,_Options>::intersection(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const
+{
+  return intersectionParameter(hyperplane);
+}
+
+/** \returns the point of the intersection between \c *this and the given hyperplane
+  */
+template <typename _Scalar, int _AmbientDim, int _Options>
+template <int OtherOptions>
+inline typename ParametrizedLine<_Scalar, _AmbientDim,_Options>::VectorType
+ParametrizedLine<_Scalar, _AmbientDim,_Options>::intersectionPoint(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const
+{
+  return pointAt(intersectionParameter(hyperplane));
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARAMETRIZEDLINE_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Geometry/Quaternion.h b/vendor/eigen-3.2.8/Eigen/src/Geometry/Quaternion.h
new file mode 100644
index 0000000..25ed17b
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Geometry/Quaternion.h
@@ -0,0 +1,776 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2009 Mathieu Gautier <mathieu.gautier at cea.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_QUATERNION_H
+#define EIGEN_QUATERNION_H
+namespace Eigen { 
+
+
+/***************************************************************************
+* Definition of QuaternionBase<Derived>
+* The implementation is at the end of the file
+***************************************************************************/
+
+namespace internal {
+template<typename Other,
+         int OtherRows=Other::RowsAtCompileTime,
+         int OtherCols=Other::ColsAtCompileTime>
+struct quaternionbase_assign_impl;
+}
+
+/** \geometry_module \ingroup Geometry_Module
+  * \class QuaternionBase
+  * \brief Base class for quaternion expressions
+  * \tparam Derived derived type (CRTP)
+  * \sa class Quaternion
+  */
+template<class Derived>
+class QuaternionBase : public RotationBase<Derived, 3>
+{
+  typedef RotationBase<Derived, 3> Base;
+public:
+  using Base::operator*;
+  using Base::derived;
+
+  typedef typename internal::traits<Derived>::Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef typename internal::traits<Derived>::Coefficients Coefficients;
+  enum {
+    Flags = Eigen::internal::traits<Derived>::Flags
+  };
+
+ // typedef typename Matrix<Scalar,4,1> Coefficients;
+  /** the type of a 3D vector */
+  typedef Matrix<Scalar,3,1> Vector3;
+  /** the equivalent rotation matrix type */
+  typedef Matrix<Scalar,3,3> Matrix3;
+  /** the equivalent angle-axis type */
+  typedef AngleAxis<Scalar> AngleAxisType;
+
+
+
+  /** \returns the \c x coefficient */
+  inline Scalar x() const { return this->derived().coeffs().coeff(0); }
+  /** \returns the \c y coefficient */
+  inline Scalar y() const { return this->derived().coeffs().coeff(1); }
+  /** \returns the \c z coefficient */
+  inline Scalar z() const { return this->derived().coeffs().coeff(2); }
+  /** \returns the \c w coefficient */
+  inline Scalar w() const { return this->derived().coeffs().coeff(3); }
+
+  /** \returns a reference to the \c x coefficient */
+  inline Scalar& x() { return this->derived().coeffs().coeffRef(0); }
+  /** \returns a reference to the \c y coefficient */
+  inline Scalar& y() { return this->derived().coeffs().coeffRef(1); }
+  /** \returns a reference to the \c z coefficient */
+  inline Scalar& z() { return this->derived().coeffs().coeffRef(2); }
+  /** \returns a reference to the \c w coefficient */
+  inline Scalar& w() { return this->derived().coeffs().coeffRef(3); }
+
+  /** \returns a read-only vector expression of the imaginary part (x,y,z) */
+  inline const VectorBlock<const Coefficients,3> vec() const { return coeffs().template head<3>(); }
+
+  /** \returns a vector expression of the imaginary part (x,y,z) */
+  inline VectorBlock<Coefficients,3> vec() { return coeffs().template head<3>(); }
+
+  /** \returns a read-only vector expression of the coefficients (x,y,z,w) */
+  inline const typename internal::traits<Derived>::Coefficients& coeffs() const { return derived().coeffs(); }
+
+  /** \returns a vector expression of the coefficients (x,y,z,w) */
+  inline typename internal::traits<Derived>::Coefficients& coeffs() { return derived().coeffs(); }
+
+  EIGEN_STRONG_INLINE QuaternionBase<Derived>& operator=(const QuaternionBase<Derived>& other);
+  template<class OtherDerived> EIGEN_STRONG_INLINE Derived& operator=(const QuaternionBase<OtherDerived>& other);
+
+// disabled this copy operator as it is giving very strange compilation errors when compiling
+// test_stdvector with GCC 4.4.2. This looks like a GCC bug though, so feel free to re-enable it if it's
+// useful; however notice that we already have the templated operator= above and e.g. in MatrixBase
+// we didn't have to add, in addition to templated operator=, such a non-templated copy operator.
+//  Derived& operator=(const QuaternionBase& other)
+//  { return operator=<Derived>(other); }
+
+  Derived& operator=(const AngleAxisType& aa);
+  template<class OtherDerived> Derived& operator=(const MatrixBase<OtherDerived>& m);
+
+  /** \returns a quaternion representing an identity rotation
+    * \sa MatrixBase::Identity()
+    */
+  static inline Quaternion<Scalar> Identity() { return Quaternion<Scalar>(Scalar(1), Scalar(0), Scalar(0), Scalar(0)); }
+
+  /** \sa QuaternionBase::Identity(), MatrixBase::setIdentity()
+    */
+  inline QuaternionBase& setIdentity() { coeffs() << Scalar(0), Scalar(0), Scalar(0), Scalar(1); return *this; }
+
+  /** \returns the squared norm of the quaternion's coefficients
+    * \sa QuaternionBase::norm(), MatrixBase::squaredNorm()
+    */
+  inline Scalar squaredNorm() const { return coeffs().squaredNorm(); }
+
+  /** \returns the norm of the quaternion's coefficients
+    * \sa QuaternionBase::squaredNorm(), MatrixBase::norm()
+    */
+  inline Scalar norm() const { return coeffs().norm(); }
+
+  /** Normalizes the quaternion \c *this
+    * \sa normalized(), MatrixBase::normalize() */
+  inline void normalize() { coeffs().normalize(); }
+  /** \returns a normalized copy of \c *this
+    * \sa normalize(), MatrixBase::normalized() */
+  inline Quaternion<Scalar> normalized() const { return Quaternion<Scalar>(coeffs().normalized()); }
+
+    /** \returns the dot product of \c *this and \a other
+    * Geometrically speaking, the dot product of two unit quaternions
+    * corresponds to the cosine of half the angle between the two rotations.
+    * \sa angularDistance()
+    */
+  template<class OtherDerived> inline Scalar dot(const QuaternionBase<OtherDerived>& other) const { return coeffs().dot(other.coeffs()); }
+
+  template<class OtherDerived> Scalar angularDistance(const QuaternionBase<OtherDerived>& other) const;
+
+  /** \returns an equivalent 3x3 rotation matrix */
+  Matrix3 toRotationMatrix() const;
+
+  /** \returns the quaternion which transform \a a into \a b through a rotation */
+  template<typename Derived1, typename Derived2>
+  Derived& setFromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b);
+
+  template<class OtherDerived> EIGEN_STRONG_INLINE Quaternion<Scalar> operator* (const QuaternionBase<OtherDerived>& q) const;
+  template<class OtherDerived> EIGEN_STRONG_INLINE Derived& operator*= (const QuaternionBase<OtherDerived>& q);
+
+  /** \returns the quaternion describing the inverse rotation */
+  Quaternion<Scalar> inverse() const;
+
+  /** \returns the conjugated quaternion */
+  Quaternion<Scalar> conjugate() const;
+
+  template<class OtherDerived> Quaternion<Scalar> slerp(const Scalar& t, const QuaternionBase<OtherDerived>& other) const;
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  template<class OtherDerived>
+  bool isApprox(const QuaternionBase<OtherDerived>& other, const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const
+  { return coeffs().isApprox(other.coeffs(), prec); }
+
+	/** return the result vector of \a v through the rotation*/
+  EIGEN_STRONG_INLINE Vector3 _transformVector(const Vector3& v) const;
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Derived,Quaternion<NewScalarType> >::type cast() const
+  {
+    return typename internal::cast_return_type<Derived,Quaternion<NewScalarType> >::type(derived());
+  }
+
+#ifdef EIGEN_QUATERNIONBASE_PLUGIN
+# include EIGEN_QUATERNIONBASE_PLUGIN
+#endif
+};
+
+/***************************************************************************
+* Definition/implementation of Quaternion<Scalar>
+***************************************************************************/
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Quaternion
+  *
+  * \brief The quaternion class used to represent 3D orientations and rotations
+  *
+  * \tparam _Scalar the scalar type, i.e., the type of the coefficients
+  * \tparam _Options controls the memory alignment of the coefficients. Can be \# AutoAlign or \# DontAlign. Default is AutoAlign.
+  *
+  * This class represents a quaternion \f$ w+xi+yj+zk \f$ that is a convenient representation of
+  * orientations and rotations of objects in three dimensions. Compared to other representations
+  * like Euler angles or 3x3 matrices, quaternions offer the following advantages:
+  * \li \b compact storage (4 scalars)
+  * \li \b efficient to compose (28 flops),
+  * \li \b stable spherical interpolation
+  *
+  * The following two typedefs are provided for convenience:
+  * \li \c Quaternionf for \c float
+  * \li \c Quaterniond for \c double
+  *
+  * \warning Operations interpreting the quaternion as rotation have undefined behavior if the quaternion is not normalized.
+  *
+  * \sa  class AngleAxis, class Transform
+  */
+
+namespace internal {
+template<typename _Scalar,int _Options>
+struct traits<Quaternion<_Scalar,_Options> >
+{
+  typedef Quaternion<_Scalar,_Options> PlainObject;
+  typedef _Scalar Scalar;
+  typedef Matrix<_Scalar,4,1,_Options> Coefficients;
+  enum{
+    IsAligned = internal::traits<Coefficients>::Flags & AlignedBit,
+    Flags = IsAligned ? (AlignedBit | LvalueBit) : LvalueBit
+  };
+};
+}
+
+template<typename _Scalar, int _Options>
+class Quaternion : public QuaternionBase<Quaternion<_Scalar,_Options> >
+{
+  typedef QuaternionBase<Quaternion<_Scalar,_Options> > Base;
+  enum { IsAligned = internal::traits<Quaternion>::IsAligned };
+
+public:
+  typedef _Scalar Scalar;
+
+  EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Quaternion)
+  using Base::operator*=;
+
+  typedef typename internal::traits<Quaternion>::Coefficients Coefficients;
+  typedef typename Base::AngleAxisType AngleAxisType;
+
+  /** Default constructor leaving the quaternion uninitialized. */
+  inline Quaternion() {}
+
+  /** Constructs and initializes the quaternion \f$ w+xi+yj+zk \f$ from
+    * its four coefficients \a w, \a x, \a y and \a z.
+    *
+    * \warning Note the order of the arguments: the real \a w coefficient first,
+    * while internally the coefficients are stored in the following order:
+    * [\c x, \c y, \c z, \c w]
+    */
+  inline Quaternion(const Scalar& w, const Scalar& x, const Scalar& y, const Scalar& z) : m_coeffs(x, y, z, w){}
+
+  /** Constructs and initialize a quaternion from the array data */
+  inline Quaternion(const Scalar* data) : m_coeffs(data) {}
+
+  /** Copy constructor */
+  template<class Derived> EIGEN_STRONG_INLINE Quaternion(const QuaternionBase<Derived>& other) { this->Base::operator=(other); }
+
+  /** Constructs and initializes a quaternion from the angle-axis \a aa */
+  explicit inline Quaternion(const AngleAxisType& aa) { *this = aa; }
+
+  /** Constructs and initializes a quaternion from either:
+    *  - a rotation matrix expression,
+    *  - a 4D vector expression representing quaternion coefficients.
+    */
+  template<typename Derived>
+  explicit inline Quaternion(const MatrixBase<Derived>& other) { *this = other; }
+
+  /** Explicit copy constructor with scalar conversion */
+  template<typename OtherScalar, int OtherOptions>
+  explicit inline Quaternion(const Quaternion<OtherScalar, OtherOptions>& other)
+  { m_coeffs = other.coeffs().template cast<Scalar>(); }
+
+  template<typename Derived1, typename Derived2>
+  static Quaternion FromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b);
+
+  inline Coefficients& coeffs() { return m_coeffs;}
+  inline const Coefficients& coeffs() const { return m_coeffs;}
+
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(IsAligned)
+
+protected:
+  Coefficients m_coeffs;
+  
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    static EIGEN_STRONG_INLINE void _check_template_params()
+    {
+      EIGEN_STATIC_ASSERT( (_Options & DontAlign) == _Options,
+        INVALID_MATRIX_TEMPLATE_PARAMETERS)
+    }
+#endif
+};
+
+/** \ingroup Geometry_Module
+  * single precision quaternion type */
+typedef Quaternion<float> Quaternionf;
+/** \ingroup Geometry_Module
+  * double precision quaternion type */
+typedef Quaternion<double> Quaterniond;
+
+/***************************************************************************
+* Specialization of Map<Quaternion<Scalar>>
+***************************************************************************/
+
+namespace internal {
+  template<typename _Scalar, int _Options>
+  struct traits<Map<Quaternion<_Scalar>, _Options> > : traits<Quaternion<_Scalar, (int(_Options)&Aligned)==Aligned ? AutoAlign : DontAlign> >
+  {
+    typedef Map<Matrix<_Scalar,4,1>, _Options> Coefficients;
+  };
+}
+
+namespace internal {
+  template<typename _Scalar, int _Options>
+  struct traits<Map<const Quaternion<_Scalar>, _Options> > : traits<Quaternion<_Scalar, (int(_Options)&Aligned)==Aligned ? AutoAlign : DontAlign> >
+  {
+    typedef Map<const Matrix<_Scalar,4,1>, _Options> Coefficients;
+    typedef traits<Quaternion<_Scalar, (int(_Options)&Aligned)==Aligned ? AutoAlign : DontAlign> > TraitsBase;
+    enum {
+      Flags = TraitsBase::Flags & ~LvalueBit
+    };
+  };
+}
+
+/** \ingroup Geometry_Module
+  * \brief Quaternion expression mapping a constant memory buffer
+  *
+  * \tparam _Scalar the type of the Quaternion coefficients
+  * \tparam _Options see class Map
+  *
+  * This is a specialization of class Map for Quaternion. This class allows to view
+  * a 4 scalar memory buffer as an Eigen's Quaternion object.
+  *
+  * \sa class Map, class Quaternion, class QuaternionBase
+  */
+template<typename _Scalar, int _Options>
+class Map<const Quaternion<_Scalar>, _Options >
+  : public QuaternionBase<Map<const Quaternion<_Scalar>, _Options> >
+{
+    typedef QuaternionBase<Map<const Quaternion<_Scalar>, _Options> > Base;
+
+  public:
+    typedef _Scalar Scalar;
+    typedef typename internal::traits<Map>::Coefficients Coefficients;
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Map)
+    using Base::operator*=;
+
+    /** Constructs a Mapped Quaternion object from the pointer \a coeffs
+      *
+      * The pointer \a coeffs must reference the four coefficients of Quaternion in the following order:
+      * \code *coeffs == {x, y, z, w} \endcode
+      *
+      * If the template parameter _Options is set to #Aligned, then the pointer coeffs must be aligned. */
+    EIGEN_STRONG_INLINE Map(const Scalar* coeffs) : m_coeffs(coeffs) {}
+
+    inline const Coefficients& coeffs() const { return m_coeffs;}
+
+  protected:
+    const Coefficients m_coeffs;
+};
+
+/** \ingroup Geometry_Module
+  * \brief Expression of a quaternion from a memory buffer
+  *
+  * \tparam _Scalar the type of the Quaternion coefficients
+  * \tparam _Options see class Map
+  *
+  * This is a specialization of class Map for Quaternion. This class allows to view
+  * a 4 scalar memory buffer as an Eigen's  Quaternion object.
+  *
+  * \sa class Map, class Quaternion, class QuaternionBase
+  */
+template<typename _Scalar, int _Options>
+class Map<Quaternion<_Scalar>, _Options >
+  : public QuaternionBase<Map<Quaternion<_Scalar>, _Options> >
+{
+    typedef QuaternionBase<Map<Quaternion<_Scalar>, _Options> > Base;
+
+  public:
+    typedef _Scalar Scalar;
+    typedef typename internal::traits<Map>::Coefficients Coefficients;
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Map)
+    using Base::operator*=;
+
+    /** Constructs a Mapped Quaternion object from the pointer \a coeffs
+      *
+      * The pointer \a coeffs must reference the four coefficients of Quaternion in the following order:
+      * \code *coeffs == {x, y, z, w} \endcode
+      *
+      * If the template parameter _Options is set to #Aligned, then the pointer coeffs must be aligned. */
+    EIGEN_STRONG_INLINE Map(Scalar* coeffs) : m_coeffs(coeffs) {}
+
+    inline Coefficients& coeffs() { return m_coeffs; }
+    inline const Coefficients& coeffs() const { return m_coeffs; }
+
+  protected:
+    Coefficients m_coeffs;
+};
+
+/** \ingroup Geometry_Module
+  * Map an unaligned array of single precision scalars as a quaternion */
+typedef Map<Quaternion<float>, 0>         QuaternionMapf;
+/** \ingroup Geometry_Module
+  * Map an unaligned array of double precision scalars as a quaternion */
+typedef Map<Quaternion<double>, 0>        QuaternionMapd;
+/** \ingroup Geometry_Module
+  * Map a 16-byte aligned array of single precision scalars as a quaternion */
+typedef Map<Quaternion<float>, Aligned>   QuaternionMapAlignedf;
+/** \ingroup Geometry_Module
+  * Map a 16-byte aligned array of double precision scalars as a quaternion */
+typedef Map<Quaternion<double>, Aligned>  QuaternionMapAlignedd;
+
+/***************************************************************************
+* Implementation of QuaternionBase methods
+***************************************************************************/
+
+// Generic Quaternion * Quaternion product
+// This product can be specialized for a given architecture via the Arch template argument.
+namespace internal {
+template<int Arch, class Derived1, class Derived2, typename Scalar, int _Options> struct quat_product
+{
+  static EIGEN_STRONG_INLINE Quaternion<Scalar> run(const QuaternionBase<Derived1>& a, const QuaternionBase<Derived2>& b){
+    return Quaternion<Scalar>
+    (
+      a.w() * b.w() - a.x() * b.x() - a.y() * b.y() - a.z() * b.z(),
+      a.w() * b.x() + a.x() * b.w() + a.y() * b.z() - a.z() * b.y(),
+      a.w() * b.y() + a.y() * b.w() + a.z() * b.x() - a.x() * b.z(),
+      a.w() * b.z() + a.z() * b.w() + a.x() * b.y() - a.y() * b.x()
+    );
+  }
+};
+}
+
+/** \returns the concatenation of two rotations as a quaternion-quaternion product */
+template <class Derived>
+template <class OtherDerived>
+EIGEN_STRONG_INLINE Quaternion<typename internal::traits<Derived>::Scalar>
+QuaternionBase<Derived>::operator* (const QuaternionBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT((internal::is_same<typename Derived::Scalar, typename OtherDerived::Scalar>::value),
+   YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+  return internal::quat_product<Architecture::Target, Derived, OtherDerived,
+                         typename internal::traits<Derived>::Scalar,
+                         internal::traits<Derived>::IsAligned && internal::traits<OtherDerived>::IsAligned>::run(*this, other);
+}
+
+/** \sa operator*(Quaternion) */
+template <class Derived>
+template <class OtherDerived>
+EIGEN_STRONG_INLINE Derived& QuaternionBase<Derived>::operator*= (const QuaternionBase<OtherDerived>& other)
+{
+  derived() = derived() * other.derived();
+  return derived();
+}
+
+/** Rotation of a vector by a quaternion.
+  * \remarks If the quaternion is used to rotate several points (>1)
+  * then it is much more efficient to first convert it to a 3x3 Matrix.
+  * Comparison of the operation cost for n transformations:
+  *   - Quaternion2:    30n
+  *   - Via a Matrix3: 24 + 15n
+  */
+template <class Derived>
+EIGEN_STRONG_INLINE typename QuaternionBase<Derived>::Vector3
+QuaternionBase<Derived>::_transformVector(const Vector3& v) const
+{
+    // Note that this algorithm comes from the optimization by hand
+    // of the conversion to a Matrix followed by a Matrix/Vector product.
+    // It appears to be much faster than the common algorithm found
+    // in the literature (30 versus 39 flops). It also requires two
+    // Vector3 as temporaries.
+    Vector3 uv = this->vec().cross(v);
+    uv += uv;
+    return v + this->w() * uv + this->vec().cross(uv);
+}
+
+template<class Derived>
+EIGEN_STRONG_INLINE QuaternionBase<Derived>& QuaternionBase<Derived>::operator=(const QuaternionBase<Derived>& other)
+{
+  coeffs() = other.coeffs();
+  return derived();
+}
+
+template<class Derived>
+template<class OtherDerived>
+EIGEN_STRONG_INLINE Derived& QuaternionBase<Derived>::operator=(const QuaternionBase<OtherDerived>& other)
+{
+  coeffs() = other.coeffs();
+  return derived();
+}
+
+/** Set \c *this from an angle-axis \a aa and returns a reference to \c *this
+  */
+template<class Derived>
+EIGEN_STRONG_INLINE Derived& QuaternionBase<Derived>::operator=(const AngleAxisType& aa)
+{
+  using std::cos;
+  using std::sin;
+  Scalar ha = Scalar(0.5)*aa.angle(); // Scalar(0.5) to suppress precision loss warnings
+  this->w() = cos(ha);
+  this->vec() = sin(ha) * aa.axis();
+  return derived();
+}
+
+/** Set \c *this from the expression \a xpr:
+  *   - if \a xpr is a 4x1 vector, then \a xpr is assumed to be a quaternion
+  *   - if \a xpr is a 3x3 matrix, then \a xpr is assumed to be rotation matrix
+  *     and \a xpr is converted to a quaternion
+  */
+
+template<class Derived>
+template<class MatrixDerived>
+inline Derived& QuaternionBase<Derived>::operator=(const MatrixBase<MatrixDerived>& xpr)
+{
+  EIGEN_STATIC_ASSERT((internal::is_same<typename Derived::Scalar, typename MatrixDerived::Scalar>::value),
+   YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+  internal::quaternionbase_assign_impl<MatrixDerived>::run(*this, xpr.derived());
+  return derived();
+}
+
+/** Convert the quaternion to a 3x3 rotation matrix. The quaternion is required to
+  * be normalized, otherwise the result is undefined.
+  */
+template<class Derived>
+inline typename QuaternionBase<Derived>::Matrix3
+QuaternionBase<Derived>::toRotationMatrix(void) const
+{
+  // NOTE if inlined, then gcc 4.2 and 4.4 get rid of the temporary (not gcc 4.3 !!)
+  // if not inlined then the cost of the return by value is huge ~ +35%,
+  // however, not inlining this function is an order of magnitude slower, so
+  // it has to be inlined, and so the return by value is not an issue
+  Matrix3 res;
+
+  const Scalar tx  = Scalar(2)*this->x();
+  const Scalar ty  = Scalar(2)*this->y();
+  const Scalar tz  = Scalar(2)*this->z();
+  const Scalar twx = tx*this->w();
+  const Scalar twy = ty*this->w();
+  const Scalar twz = tz*this->w();
+  const Scalar txx = tx*this->x();
+  const Scalar txy = ty*this->x();
+  const Scalar txz = tz*this->x();
+  const Scalar tyy = ty*this->y();
+  const Scalar tyz = tz*this->y();
+  const Scalar tzz = tz*this->z();
+
+  res.coeffRef(0,0) = Scalar(1)-(tyy+tzz);
+  res.coeffRef(0,1) = txy-twz;
+  res.coeffRef(0,2) = txz+twy;
+  res.coeffRef(1,0) = txy+twz;
+  res.coeffRef(1,1) = Scalar(1)-(txx+tzz);
+  res.coeffRef(1,2) = tyz-twx;
+  res.coeffRef(2,0) = txz-twy;
+  res.coeffRef(2,1) = tyz+twx;
+  res.coeffRef(2,2) = Scalar(1)-(txx+tyy);
+
+  return res;
+}
+
+/** Sets \c *this to be a quaternion representing a rotation between
+  * the two arbitrary vectors \a a and \a b. In other words, the built
+  * rotation represent a rotation sending the line of direction \a a
+  * to the line of direction \a b, both lines passing through the origin.
+  *
+  * \returns a reference to \c *this.
+  *
+  * Note that the two input vectors do \b not have to be normalized, and
+  * do not need to have the same norm.
+  */
+template<class Derived>
+template<typename Derived1, typename Derived2>
+inline Derived& QuaternionBase<Derived>::setFromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b)
+{
+  using std::max;
+  using std::sqrt;
+  Vector3 v0 = a.normalized();
+  Vector3 v1 = b.normalized();
+  Scalar c = v1.dot(v0);
+
+  // if dot == -1, vectors are nearly opposites
+  // => accurately compute the rotation axis by computing the
+  //    intersection of the two planes. This is done by solving:
+  //       x^T v0 = 0
+  //       x^T v1 = 0
+  //    under the constraint:
+  //       ||x|| = 1
+  //    which yields a singular value problem
+  if (c < Scalar(-1)+NumTraits<Scalar>::dummy_precision())
+  {
+    c = (max)(c,Scalar(-1));
+    Matrix<Scalar,2,3> m; m << v0.transpose(), v1.transpose();
+    JacobiSVD<Matrix<Scalar,2,3> > svd(m, ComputeFullV);
+    Vector3 axis = svd.matrixV().col(2);
+
+    Scalar w2 = (Scalar(1)+c)*Scalar(0.5);
+    this->w() = sqrt(w2);
+    this->vec() = axis * sqrt(Scalar(1) - w2);
+    return derived();
+  }
+  Vector3 axis = v0.cross(v1);
+  Scalar s = sqrt((Scalar(1)+c)*Scalar(2));
+  Scalar invs = Scalar(1)/s;
+  this->vec() = axis * invs;
+  this->w() = s * Scalar(0.5);
+
+  return derived();
+}
+
+
+/** Returns a quaternion representing a rotation between
+  * the two arbitrary vectors \a a and \a b. In other words, the built
+  * rotation represent a rotation sending the line of direction \a a
+  * to the line of direction \a b, both lines passing through the origin.
+  *
+  * \returns resulting quaternion
+  *
+  * Note that the two input vectors do \b not have to be normalized, and
+  * do not need to have the same norm.
+  */
+template<typename Scalar, int Options>
+template<typename Derived1, typename Derived2>
+Quaternion<Scalar,Options> Quaternion<Scalar,Options>::FromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b)
+{
+    Quaternion quat;
+    quat.setFromTwoVectors(a, b);
+    return quat;
+}
+
+
+/** \returns the multiplicative inverse of \c *this
+  * Note that in most cases, i.e., if you simply want the opposite rotation,
+  * and/or the quaternion is normalized, then it is enough to use the conjugate.
+  *
+  * \sa QuaternionBase::conjugate()
+  */
+template <class Derived>
+inline Quaternion<typename internal::traits<Derived>::Scalar> QuaternionBase<Derived>::inverse() const
+{
+  // FIXME should this function be called multiplicativeInverse and conjugate() be called inverse() or opposite()  ??
+  Scalar n2 = this->squaredNorm();
+  if (n2 > Scalar(0))
+    return Quaternion<Scalar>(conjugate().coeffs() / n2);
+  else
+  {
+    // return an invalid result to flag the error
+    return Quaternion<Scalar>(Coefficients::Zero());
+  }
+}
+
+/** \returns the conjugate of the \c *this which is equal to the multiplicative inverse
+  * if the quaternion is normalized.
+  * The conjugate of a quaternion represents the opposite rotation.
+  *
+  * \sa Quaternion2::inverse()
+  */
+template <class Derived>
+inline Quaternion<typename internal::traits<Derived>::Scalar>
+QuaternionBase<Derived>::conjugate() const
+{
+  return Quaternion<Scalar>(this->w(),-this->x(),-this->y(),-this->z());
+}
+
+/** \returns the angle (in radian) between two rotations
+  * \sa dot()
+  */
+template <class Derived>
+template <class OtherDerived>
+inline typename internal::traits<Derived>::Scalar
+QuaternionBase<Derived>::angularDistance(const QuaternionBase<OtherDerived>& other) const
+{
+  using std::atan2;
+  using std::abs;
+  Quaternion<Scalar> d = (*this) * other.conjugate();
+  return Scalar(2) * atan2( d.vec().norm(), abs(d.w()) );
+}
+
+ 
+    
+/** \returns the spherical linear interpolation between the two quaternions
+  * \c *this and \a other at the parameter \a t in [0;1].
+  * 
+  * This represents an interpolation for a constant motion between \c *this and \a other,
+  * see also http://en.wikipedia.org/wiki/Slerp.
+  */
+template <class Derived>
+template <class OtherDerived>
+Quaternion<typename internal::traits<Derived>::Scalar>
+QuaternionBase<Derived>::slerp(const Scalar& t, const QuaternionBase<OtherDerived>& other) const
+{
+  using std::acos;
+  using std::sin;
+  using std::abs;
+  static const Scalar one = Scalar(1) - NumTraits<Scalar>::epsilon();
+  Scalar d = this->dot(other);
+  Scalar absD = abs(d);
+
+  Scalar scale0;
+  Scalar scale1;
+
+  if(absD>=one)
+  {
+    scale0 = Scalar(1) - t;
+    scale1 = t;
+  }
+  else
+  {
+    // theta is the angle between the 2 quaternions
+    Scalar theta = acos(absD);
+    Scalar sinTheta = sin(theta);
+
+    scale0 = sin( ( Scalar(1) - t ) * theta) / sinTheta;
+    scale1 = sin( ( t * theta) ) / sinTheta;
+  }
+  if(d<Scalar(0)) scale1 = -scale1;
+
+  return Quaternion<Scalar>(scale0 * coeffs() + scale1 * other.coeffs());
+}
+
+namespace internal {
+
+// set from a rotation matrix
+template<typename Other>
+struct quaternionbase_assign_impl<Other,3,3>
+{
+  typedef typename Other::Scalar Scalar;
+  typedef DenseIndex Index;
+  template<class Derived> static inline void run(QuaternionBase<Derived>& q, const Other& mat)
+  {
+    using std::sqrt;
+    // This algorithm comes from  "Quaternion Calculus and Fast Animation",
+    // Ken Shoemake, 1987 SIGGRAPH course notes
+    Scalar t = mat.trace();
+    if (t > Scalar(0))
+    {
+      t = sqrt(t + Scalar(1.0));
+      q.w() = Scalar(0.5)*t;
+      t = Scalar(0.5)/t;
+      q.x() = (mat.coeff(2,1) - mat.coeff(1,2)) * t;
+      q.y() = (mat.coeff(0,2) - mat.coeff(2,0)) * t;
+      q.z() = (mat.coeff(1,0) - mat.coeff(0,1)) * t;
+    }
+    else
+    {
+      DenseIndex i = 0;
+      if (mat.coeff(1,1) > mat.coeff(0,0))
+        i = 1;
+      if (mat.coeff(2,2) > mat.coeff(i,i))
+        i = 2;
+      DenseIndex j = (i+1)%3;
+      DenseIndex k = (j+1)%3;
+
+      t = sqrt(mat.coeff(i,i)-mat.coeff(j,j)-mat.coeff(k,k) + Scalar(1.0));
+      q.coeffs().coeffRef(i) = Scalar(0.5) * t;
+      t = Scalar(0.5)/t;
+      q.w() = (mat.coeff(k,j)-mat.coeff(j,k))*t;
+      q.coeffs().coeffRef(j) = (mat.coeff(j,i)+mat.coeff(i,j))*t;
+      q.coeffs().coeffRef(k) = (mat.coeff(k,i)+mat.coeff(i,k))*t;
+    }
+  }
+};
+
+// set from a vector of coefficients assumed to be a quaternion
+template<typename Other>
+struct quaternionbase_assign_impl<Other,4,1>
+{
+  typedef typename Other::Scalar Scalar;
+  template<class Derived> static inline void run(QuaternionBase<Derived>& q, const Other& vec)
+  {
+    q.coeffs() = vec;
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_QUATERNION_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Geometry/Rotation2D.h b/vendor/eigen-3.2.8/Eigen/src/Geometry/Rotation2D.h
new file mode 100644
index 0000000..a2d59fc
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Geometry/Rotation2D.h
@@ -0,0 +1,160 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ROTATION2D_H
+#define EIGEN_ROTATION2D_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Rotation2D
+  *
+  * \brief Represents a rotation/orientation in a 2 dimensional space.
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients
+  *
+  * This class is equivalent to a single scalar representing a counter clock wise rotation
+  * as a single angle in radian. It provides some additional features such as the automatic
+  * conversion from/to a 2x2 rotation matrix. Moreover this class aims to provide a similar
+  * interface to Quaternion in order to facilitate the writing of generic algorithms
+  * dealing with rotations.
+  *
+  * \sa class Quaternion, class Transform
+  */
+
+namespace internal {
+
+template<typename _Scalar> struct traits<Rotation2D<_Scalar> >
+{
+  typedef _Scalar Scalar;
+};
+} // end namespace internal
+
+template<typename _Scalar>
+class Rotation2D : public RotationBase<Rotation2D<_Scalar>,2>
+{
+  typedef RotationBase<Rotation2D<_Scalar>,2> Base;
+
+public:
+
+  using Base::operator*;
+
+  enum { Dim = 2 };
+  /** the scalar type of the coefficients */
+  typedef _Scalar Scalar;
+  typedef Matrix<Scalar,2,1> Vector2;
+  typedef Matrix<Scalar,2,2> Matrix2;
+
+protected:
+
+  Scalar m_angle;
+
+public:
+
+  /** Construct a 2D counter clock wise rotation from the angle \a a in radian. */
+  inline Rotation2D(const Scalar& a) : m_angle(a) {}
+  
+  /** Default constructor wihtout initialization. The represented rotation is undefined. */
+  Rotation2D() {}
+
+  /** \returns the rotation angle */
+  inline Scalar angle() const { return m_angle; }
+
+  /** \returns a read-write reference to the rotation angle */
+  inline Scalar& angle() { return m_angle; }
+
+  /** \returns the inverse rotation */
+  inline Rotation2D inverse() const { return -m_angle; }
+
+  /** Concatenates two rotations */
+  inline Rotation2D operator*(const Rotation2D& other) const
+  { return m_angle + other.m_angle; }
+
+  /** Concatenates two rotations */
+  inline Rotation2D& operator*=(const Rotation2D& other)
+  { m_angle += other.m_angle; return *this; }
+
+  /** Applies the rotation to a 2D vector */
+  Vector2 operator* (const Vector2& vec) const
+  { return toRotationMatrix() * vec; }
+  
+  template<typename Derived>
+  Rotation2D& fromRotationMatrix(const MatrixBase<Derived>& m);
+  Matrix2 toRotationMatrix() const;
+
+  /** \returns the spherical interpolation between \c *this and \a other using
+    * parameter \a t. It is in fact equivalent to a linear interpolation.
+    */
+  inline Rotation2D slerp(const Scalar& t, const Rotation2D& other) const
+  { return m_angle * (1-t) + other.angle() * t; }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Rotation2D,Rotation2D<NewScalarType> >::type cast() const
+  { return typename internal::cast_return_type<Rotation2D,Rotation2D<NewScalarType> >::type(*this); }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit Rotation2D(const Rotation2D<OtherScalarType>& other)
+  {
+    m_angle = Scalar(other.angle());
+  }
+
+  static inline Rotation2D Identity() { return Rotation2D(0); }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const Rotation2D& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+  { return internal::isApprox(m_angle,other.m_angle, prec); }
+};
+
+/** \ingroup Geometry_Module
+  * single precision 2D rotation type */
+typedef Rotation2D<float> Rotation2Df;
+/** \ingroup Geometry_Module
+  * double precision 2D rotation type */
+typedef Rotation2D<double> Rotation2Dd;
+
+/** Set \c *this from a 2x2 rotation matrix \a mat.
+  * In other words, this function extract the rotation angle
+  * from the rotation matrix.
+  */
+template<typename Scalar>
+template<typename Derived>
+Rotation2D<Scalar>& Rotation2D<Scalar>::fromRotationMatrix(const MatrixBase<Derived>& mat)
+{
+  using std::atan2;
+  EIGEN_STATIC_ASSERT(Derived::RowsAtCompileTime==2 && Derived::ColsAtCompileTime==2,YOU_MADE_A_PROGRAMMING_MISTAKE)
+  m_angle = atan2(mat.coeff(1,0), mat.coeff(0,0));
+  return *this;
+}
+
+/** Constructs and \returns an equivalent 2x2 rotation matrix.
+  */
+template<typename Scalar>
+typename Rotation2D<Scalar>::Matrix2
+Rotation2D<Scalar>::toRotationMatrix(void) const
+{
+  using std::sin;
+  using std::cos;
+  Scalar sinA = sin(m_angle);
+  Scalar cosA = cos(m_angle);
+  return (Matrix2() << cosA, -sinA, sinA, cosA).finished();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ROTATION2D_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/RotationBase.h b/vendor/eigen-3.2.8/Eigen/src/Geometry/RotationBase.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Geometry/RotationBase.h
rename to vendor/eigen-3.2.8/Eigen/src/Geometry/RotationBase.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/Scaling.h b/vendor/eigen-3.2.8/Eigen/src/Geometry/Scaling.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Geometry/Scaling.h
rename to vendor/eigen-3.2.8/Eigen/src/Geometry/Scaling.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Geometry/Transform.h b/vendor/eigen-3.2.8/Eigen/src/Geometry/Transform.h
new file mode 100644
index 0000000..0186f3b
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Geometry/Transform.h
@@ -0,0 +1,1474 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2010 Hauke Heibel <hauke.heibel at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRANSFORM_H
+#define EIGEN_TRANSFORM_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Transform>
+struct transform_traits
+{
+  enum
+  {
+    Dim = Transform::Dim,
+    HDim = Transform::HDim,
+    Mode = Transform::Mode,
+    IsProjective = (int(Mode)==int(Projective))
+  };
+};
+
+template< typename TransformType,
+          typename MatrixType,
+          int Case = transform_traits<TransformType>::IsProjective ? 0
+                   : int(MatrixType::RowsAtCompileTime) == int(transform_traits<TransformType>::HDim) ? 1
+                   : 2>
+struct transform_right_product_impl;
+
+template< typename Other,
+          int Mode,
+          int Options,
+          int Dim,
+          int HDim,
+          int OtherRows=Other::RowsAtCompileTime,
+          int OtherCols=Other::ColsAtCompileTime>
+struct transform_left_product_impl;
+
+template< typename Lhs,
+          typename Rhs,
+          bool AnyProjective = 
+            transform_traits<Lhs>::IsProjective ||
+            transform_traits<Rhs>::IsProjective>
+struct transform_transform_product_impl;
+
+template< typename Other,
+          int Mode,
+          int Options,
+          int Dim,
+          int HDim,
+          int OtherRows=Other::RowsAtCompileTime,
+          int OtherCols=Other::ColsAtCompileTime>
+struct transform_construct_from_matrix;
+
+template<typename TransformType> struct transform_take_affine_part;
+
+template<int Mode> struct transform_make_affine;
+
+} // end namespace internal
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Transform
+  *
+  * \brief Represents an homogeneous transformation in a N dimensional space
+  *
+  * \tparam _Scalar the scalar type, i.e., the type of the coefficients
+  * \tparam _Dim the dimension of the space
+  * \tparam _Mode the type of the transformation. Can be:
+  *              - #Affine: the transformation is stored as a (Dim+1)^2 matrix,
+  *                         where the last row is assumed to be [0 ... 0 1].
+  *              - #AffineCompact: the transformation is stored as a (Dim)x(Dim+1) matrix.
+  *              - #Projective: the transformation is stored as a (Dim+1)^2 matrix
+  *                             without any assumption.
+  * \tparam _Options has the same meaning as in class Matrix. It allows to specify DontAlign and/or RowMajor.
+  *                  These Options are passed directly to the underlying matrix type.
+  *
+  * The homography is internally represented and stored by a matrix which
+  * is available through the matrix() method. To understand the behavior of
+  * this class you have to think a Transform object as its internal
+  * matrix representation. The chosen convention is right multiply:
+  *
+  * \code v' = T * v \endcode
+  *
+  * Therefore, an affine transformation matrix M is shaped like this:
+  *
+  * \f$ \left( \begin{array}{cc}
+  * linear & translation\\
+  * 0 ... 0 & 1
+  * \end{array} \right) \f$
+  *
+  * Note that for a projective transformation the last row can be anything,
+  * and then the interpretation of different parts might be sightly different.
+  *
+  * However, unlike a plain matrix, the Transform class provides many features
+  * simplifying both its assembly and usage. In particular, it can be composed
+  * with any other transformations (Transform,Translation,RotationBase,DiagonalMatrix)
+  * and can be directly used to transform implicit homogeneous vectors. All these
+  * operations are handled via the operator*. For the composition of transformations,
+  * its principle consists to first convert the right/left hand sides of the product
+  * to a compatible (Dim+1)^2 matrix and then perform a pure matrix product.
+  * Of course, internally, operator* tries to perform the minimal number of operations
+  * according to the nature of each terms. Likewise, when applying the transform
+  * to points, the latters are automatically promoted to homogeneous vectors
+  * before doing the matrix product. The conventions to homogeneous representations
+  * are performed as follow:
+  *
+  * \b Translation t (Dim)x(1):
+  * \f$ \left( \begin{array}{cc}
+  * I & t \\
+  * 0\,...\,0 & 1
+  * \end{array} \right) \f$
+  *
+  * \b Rotation R (Dim)x(Dim):
+  * \f$ \left( \begin{array}{cc}
+  * R & 0\\
+  * 0\,...\,0 & 1
+  * \end{array} \right) \f$
+  *<!--
+  * \b Linear \b Matrix L (Dim)x(Dim):
+  * \f$ \left( \begin{array}{cc}
+  * L & 0\\
+  * 0\,...\,0 & 1
+  * \end{array} \right) \f$
+  *
+  * \b Affine \b Matrix A (Dim)x(Dim+1):
+  * \f$ \left( \begin{array}{c}
+  * A\\
+  * 0\,...\,0\,1
+  * \end{array} \right) \f$
+  *-->
+  * \b Scaling \b DiagonalMatrix S (Dim)x(Dim):
+  * \f$ \left( \begin{array}{cc}
+  * S & 0\\
+  * 0\,...\,0 & 1
+  * \end{array} \right) \f$
+  *
+  * \b Column \b point v (Dim)x(1):
+  * \f$ \left( \begin{array}{c}
+  * v\\
+  * 1
+  * \end{array} \right) \f$
+  *
+  * \b Set \b of \b column \b points V1...Vn (Dim)x(n):
+  * \f$ \left( \begin{array}{ccc}
+  * v_1 & ... & v_n\\
+  * 1 & ... & 1
+  * \end{array} \right) \f$
+  *
+  * The concatenation of a Transform object with any kind of other transformation
+  * always returns a Transform object.
+  *
+  * A little exception to the "as pure matrix product" rule is the case of the
+  * transformation of non homogeneous vectors by an affine transformation. In
+  * that case the last matrix row can be ignored, and the product returns non
+  * homogeneous vectors.
+  *
+  * Since, for instance, a Dim x Dim matrix is interpreted as a linear transformation,
+  * it is not possible to directly transform Dim vectors stored in a Dim x Dim matrix.
+  * The solution is either to use a Dim x Dynamic matrix or explicitly request a
+  * vector transformation by making the vector homogeneous:
+  * \code
+  * m' = T * m.colwise().homogeneous();
+  * \endcode
+  * Note that there is zero overhead.
+  *
+  * Conversion methods from/to Qt's QMatrix and QTransform are available if the
+  * preprocessor token EIGEN_QT_SUPPORT is defined.
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_TRANSFORM_PLUGIN.
+  *
+  * \sa class Matrix, class Quaternion
+  */
+template<typename _Scalar, int _Dim, int _Mode, int _Options>
+class Transform
+{
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Dim==Dynamic ? Dynamic : (_Dim+1)*(_Dim+1))
+  enum {
+    Mode = _Mode,
+    Options = _Options,
+    Dim = _Dim,     ///< space dimension in which the transformation holds
+    HDim = _Dim+1,  ///< size of a respective homogeneous vector
+    Rows = int(Mode)==(AffineCompact) ? Dim : HDim
+  };
+  /** the scalar type of the coefficients */
+  typedef _Scalar Scalar;
+  typedef DenseIndex Index;
+  /** type of the matrix used to represent the transformation */
+  typedef typename internal::make_proper_matrix_type<Scalar,Rows,HDim,Options>::type MatrixType;
+  /** constified MatrixType */
+  typedef const MatrixType ConstMatrixType;
+  /** type of the matrix used to represent the linear part of the transformation */
+  typedef Matrix<Scalar,Dim,Dim,Options> LinearMatrixType;
+  /** type of read/write reference to the linear part of the transformation */
+  typedef Block<MatrixType,Dim,Dim,int(Mode)==(AffineCompact) && (Options&RowMajor)==0> LinearPart;
+  /** type of read reference to the linear part of the transformation */
+  typedef const Block<ConstMatrixType,Dim,Dim,int(Mode)==(AffineCompact) && (Options&RowMajor)==0> ConstLinearPart;
+  /** type of read/write reference to the affine part of the transformation */
+  typedef typename internal::conditional<int(Mode)==int(AffineCompact),
+                              MatrixType&,
+                              Block<MatrixType,Dim,HDim> >::type AffinePart;
+  /** type of read reference to the affine part of the transformation */
+  typedef typename internal::conditional<int(Mode)==int(AffineCompact),
+                              const MatrixType&,
+                              const Block<const MatrixType,Dim,HDim> >::type ConstAffinePart;
+  /** type of a vector */
+  typedef Matrix<Scalar,Dim,1> VectorType;
+  /** type of a read/write reference to the translation part of the rotation */
+  typedef Block<MatrixType,Dim,1,int(Mode)==(AffineCompact)> TranslationPart;
+  /** type of a read reference to the translation part of the rotation */
+  typedef const Block<ConstMatrixType,Dim,1,int(Mode)==(AffineCompact)> ConstTranslationPart;
+  /** corresponding translation type */
+  typedef Translation<Scalar,Dim> TranslationType;
+  
+  // this intermediate enum is needed to avoid an ICE with gcc 3.4 and 4.0
+  enum { TransformTimeDiagonalMode = ((Mode==int(Isometry))?Affine:int(Mode)) };
+  /** The return type of the product between a diagonal matrix and a transform */
+  typedef Transform<Scalar,Dim,TransformTimeDiagonalMode> TransformTimeDiagonalReturnType;
+
+protected:
+
+  MatrixType m_matrix;
+
+public:
+
+  /** Default constructor without initialization of the meaningful coefficients.
+    * If Mode==Affine, then the last row is set to [0 ... 0 1] */
+  inline Transform()
+  {
+    check_template_params();
+    internal::transform_make_affine<(int(Mode)==Affine) ? Affine : AffineCompact>::run(m_matrix);
+  }
+
+  inline Transform(const Transform& other)
+  {
+    check_template_params();
+    m_matrix = other.m_matrix;
+  }
+
+  inline explicit Transform(const TranslationType& t)
+  {
+    check_template_params();
+    *this = t;
+  }
+  inline explicit Transform(const UniformScaling<Scalar>& s)
+  {
+    check_template_params();
+    *this = s;
+  }
+  template<typename Derived>
+  inline explicit Transform(const RotationBase<Derived, Dim>& r)
+  {
+    check_template_params();
+    *this = r;
+  }
+
+  inline Transform& operator=(const Transform& other)
+  { m_matrix = other.m_matrix; return *this; }
+
+  typedef internal::transform_take_affine_part<Transform> take_affine_part;
+
+  /** Constructs and initializes a transformation from a Dim^2 or a (Dim+1)^2 matrix. */
+  template<typename OtherDerived>
+  inline explicit Transform(const EigenBase<OtherDerived>& other)
+  {
+    EIGEN_STATIC_ASSERT((internal::is_same<Scalar,typename OtherDerived::Scalar>::value),
+      YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY);
+
+    check_template_params();
+    internal::transform_construct_from_matrix<OtherDerived,Mode,Options,Dim,HDim>::run(this, other.derived());
+  }
+
+  /** Set \c *this from a Dim^2 or (Dim+1)^2 matrix. */
+  template<typename OtherDerived>
+  inline Transform& operator=(const EigenBase<OtherDerived>& other)
+  {
+    EIGEN_STATIC_ASSERT((internal::is_same<Scalar,typename OtherDerived::Scalar>::value),
+      YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY);
+
+    internal::transform_construct_from_matrix<OtherDerived,Mode,Options,Dim,HDim>::run(this, other.derived());
+    return *this;
+  }
+  
+  template<int OtherOptions>
+  inline Transform(const Transform<Scalar,Dim,Mode,OtherOptions>& other)
+  {
+    check_template_params();
+    // only the options change, we can directly copy the matrices
+    m_matrix = other.matrix();
+  }
+
+  template<int OtherMode,int OtherOptions>
+  inline Transform(const Transform<Scalar,Dim,OtherMode,OtherOptions>& other)
+  {
+    check_template_params();
+    // prevent conversions as:
+    // Affine | AffineCompact | Isometry = Projective
+    EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(OtherMode==int(Projective), Mode==int(Projective)),
+                        YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION)
+
+    // prevent conversions as:
+    // Isometry = Affine | AffineCompact
+    EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(OtherMode==int(Affine)||OtherMode==int(AffineCompact), Mode!=int(Isometry)),
+                        YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION)
+
+    enum { ModeIsAffineCompact = Mode == int(AffineCompact),
+           OtherModeIsAffineCompact = OtherMode == int(AffineCompact)
+    };
+
+    if(ModeIsAffineCompact == OtherModeIsAffineCompact)
+    {
+      // We need the block expression because the code is compiled for all
+      // combinations of transformations and will trigger a compile time error
+      // if one tries to assign the matrices directly
+      m_matrix.template block<Dim,Dim+1>(0,0) = other.matrix().template block<Dim,Dim+1>(0,0);
+      makeAffine();
+    }
+    else if(OtherModeIsAffineCompact)
+    {
+      typedef typename Transform<Scalar,Dim,OtherMode,OtherOptions>::MatrixType OtherMatrixType;
+      internal::transform_construct_from_matrix<OtherMatrixType,Mode,Options,Dim,HDim>::run(this, other.matrix());
+    }
+    else
+    {
+      // here we know that Mode == AffineCompact and OtherMode != AffineCompact.
+      // if OtherMode were Projective, the static assert above would already have caught it.
+      // So the only possibility is that OtherMode == Affine
+      linear() = other.linear();
+      translation() = other.translation();
+    }
+  }
+
+  template<typename OtherDerived>
+  Transform(const ReturnByValue<OtherDerived>& other)
+  {
+    check_template_params();
+    other.evalTo(*this);
+  }
+
+  template<typename OtherDerived>
+  Transform& operator=(const ReturnByValue<OtherDerived>& other)
+  {
+    other.evalTo(*this);
+    return *this;
+  }
+
+  #ifdef EIGEN_QT_SUPPORT
+  inline Transform(const QMatrix& other);
+  inline Transform& operator=(const QMatrix& other);
+  inline QMatrix toQMatrix(void) const;
+  inline Transform(const QTransform& other);
+  inline Transform& operator=(const QTransform& other);
+  inline QTransform toQTransform(void) const;
+  #endif
+
+  /** shortcut for m_matrix(row,col);
+    * \sa MatrixBase::operator(Index,Index) const */
+  inline Scalar operator() (Index row, Index col) const { return m_matrix(row,col); }
+  /** shortcut for m_matrix(row,col);
+    * \sa MatrixBase::operator(Index,Index) */
+  inline Scalar& operator() (Index row, Index col) { return m_matrix(row,col); }
+
+  /** \returns a read-only expression of the transformation matrix */
+  inline const MatrixType& matrix() const { return m_matrix; }
+  /** \returns a writable expression of the transformation matrix */
+  inline MatrixType& matrix() { return m_matrix; }
+
+  /** \returns a read-only expression of the linear part of the transformation */
+  inline ConstLinearPart linear() const { return ConstLinearPart(m_matrix,0,0); }
+  /** \returns a writable expression of the linear part of the transformation */
+  inline LinearPart linear() { return LinearPart(m_matrix,0,0); }
+
+  /** \returns a read-only expression of the Dim x HDim affine part of the transformation */
+  inline ConstAffinePart affine() const { return take_affine_part::run(m_matrix); }
+  /** \returns a writable expression of the Dim x HDim affine part of the transformation */
+  inline AffinePart affine() { return take_affine_part::run(m_matrix); }
+
+  /** \returns a read-only expression of the translation vector of the transformation */
+  inline ConstTranslationPart translation() const { return ConstTranslationPart(m_matrix,0,Dim); }
+  /** \returns a writable expression of the translation vector of the transformation */
+  inline TranslationPart translation() { return TranslationPart(m_matrix,0,Dim); }
+
+  /** \returns an expression of the product between the transform \c *this and a matrix expression \a other.
+    *
+    * The right-hand-side \a other can be either:
+    * \li an homogeneous vector of size Dim+1,
+    * \li a set of homogeneous vectors of size Dim+1 x N,
+    * \li a transformation matrix of size Dim+1 x Dim+1.
+    *
+    * Moreover, if \c *this represents an affine transformation (i.e., Mode!=Projective), then \a other can also be:
+    * \li a point of size Dim (computes: \code this->linear() * other + this->translation()\endcode),
+    * \li a set of N points as a Dim x N matrix (computes: \code (this->linear() * other).colwise() + this->translation()\endcode),
+    *
+    * In all cases, the return type is a matrix or vector of same sizes as the right-hand-side \a other.
+    *
+    * If you want to interpret \a other as a linear or affine transformation, then first convert it to a Transform<> type,
+    * or do your own cooking.
+    *
+    * Finally, if you want to apply Affine transformations to vectors, then explicitly apply the linear part only:
+    * \code
+    * Affine3f A;
+    * Vector3f v1, v2;
+    * v2 = A.linear() * v1;
+    * \endcode
+    *
+    */
+  // note: this function is defined here because some compilers cannot find the respective declaration
+  template<typename OtherDerived>
+  EIGEN_STRONG_INLINE const typename OtherDerived::PlainObject
+  operator * (const EigenBase<OtherDerived> &other) const
+  { return internal::transform_right_product_impl<Transform, OtherDerived>::run(*this,other.derived()); }
+
+  /** \returns the product expression of a transformation matrix \a a times a transform \a b
+    *
+    * The left hand side \a other can be either:
+    * \li a linear transformation matrix of size Dim x Dim,
+    * \li an affine transformation matrix of size Dim x Dim+1,
+    * \li a general transformation matrix of size Dim+1 x Dim+1.
+    */
+  template<typename OtherDerived> friend
+  inline const typename internal::transform_left_product_impl<OtherDerived,Mode,Options,_Dim,_Dim+1>::ResultType
+    operator * (const EigenBase<OtherDerived> &a, const Transform &b)
+  { return internal::transform_left_product_impl<OtherDerived,Mode,Options,Dim,HDim>::run(a.derived(),b); }
+
+  /** \returns The product expression of a transform \a a times a diagonal matrix \a b
+    *
+    * The rhs diagonal matrix is interpreted as an affine scaling transformation. The
+    * product results in a Transform of the same type (mode) as the lhs only if the lhs 
+    * mode is no isometry. In that case, the returned transform is an affinity.
+    */
+  template<typename DiagonalDerived>
+  inline const TransformTimeDiagonalReturnType
+    operator * (const DiagonalBase<DiagonalDerived> &b) const
+  {
+    TransformTimeDiagonalReturnType res(*this);
+    res.linear() *= b;
+    return res;
+  }
+
+  /** \returns The product expression of a diagonal matrix \a a times a transform \a b
+    *
+    * The lhs diagonal matrix is interpreted as an affine scaling transformation. The
+    * product results in a Transform of the same type (mode) as the lhs only if the lhs 
+    * mode is no isometry. In that case, the returned transform is an affinity.
+    */
+  template<typename DiagonalDerived>
+  friend inline TransformTimeDiagonalReturnType
+    operator * (const DiagonalBase<DiagonalDerived> &a, const Transform &b)
+  {
+    TransformTimeDiagonalReturnType res;
+    res.linear().noalias() = a*b.linear();
+    res.translation().noalias() = a*b.translation();
+    if (Mode!=int(AffineCompact))
+      res.matrix().row(Dim) = b.matrix().row(Dim);
+    return res;
+  }
+
+  template<typename OtherDerived>
+  inline Transform& operator*=(const EigenBase<OtherDerived>& other) { return *this = *this * other; }
+
+  /** Concatenates two transformations */
+  inline const Transform operator * (const Transform& other) const
+  {
+    return internal::transform_transform_product_impl<Transform,Transform>::run(*this,other);
+  }
+  
+  #ifdef __INTEL_COMPILER
+private:
+  // this intermediate structure permits to workaround a bug in ICC 11:
+  //   error: template instantiation resulted in unexpected function type of "Eigen::Transform<double, 3, 32, 0>
+  //             (const Eigen::Transform<double, 3, 2, 0> &) const"
+  //  (the meaning of a name may have changed since the template declaration -- the type of the template is:
+  // "Eigen::internal::transform_transform_product_impl<Eigen::Transform<double, 3, 32, 0>,
+  //     Eigen::Transform<double, 3, Mode, Options>, <expression>>::ResultType (const Eigen::Transform<double, 3, Mode, Options> &) const")
+  // 
+  template<int OtherMode,int OtherOptions> struct icc_11_workaround
+  {
+    typedef internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> > ProductType;
+    typedef typename ProductType::ResultType ResultType;
+  };
+  
+public:
+  /** Concatenates two different transformations */
+  template<int OtherMode,int OtherOptions>
+  inline typename icc_11_workaround<OtherMode,OtherOptions>::ResultType
+    operator * (const Transform<Scalar,Dim,OtherMode,OtherOptions>& other) const
+  {
+    typedef typename icc_11_workaround<OtherMode,OtherOptions>::ProductType ProductType;
+    return ProductType::run(*this,other);
+  }
+  #else
+  /** Concatenates two different transformations */
+  template<int OtherMode,int OtherOptions>
+  inline typename internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> >::ResultType
+    operator * (const Transform<Scalar,Dim,OtherMode,OtherOptions>& other) const
+  {
+    return internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> >::run(*this,other);
+  }
+  #endif
+
+  /** \sa MatrixBase::setIdentity() */
+  void setIdentity() { m_matrix.setIdentity(); }
+
+  /**
+   * \brief Returns an identity transformation.
+   * \todo In the future this function should be returning a Transform expression.
+   */
+  static const Transform Identity()
+  {
+    return Transform(MatrixType::Identity());
+  }
+
+  template<typename OtherDerived>
+  inline Transform& scale(const MatrixBase<OtherDerived> &other);
+
+  template<typename OtherDerived>
+  inline Transform& prescale(const MatrixBase<OtherDerived> &other);
+
+  inline Transform& scale(const Scalar& s);
+  inline Transform& prescale(const Scalar& s);
+
+  template<typename OtherDerived>
+  inline Transform& translate(const MatrixBase<OtherDerived> &other);
+
+  template<typename OtherDerived>
+  inline Transform& pretranslate(const MatrixBase<OtherDerived> &other);
+
+  template<typename RotationType>
+  inline Transform& rotate(const RotationType& rotation);
+
+  template<typename RotationType>
+  inline Transform& prerotate(const RotationType& rotation);
+
+  Transform& shear(const Scalar& sx, const Scalar& sy);
+  Transform& preshear(const Scalar& sx, const Scalar& sy);
+
+  inline Transform& operator=(const TranslationType& t);
+  inline Transform& operator*=(const TranslationType& t) { return translate(t.vector()); }
+  inline Transform operator*(const TranslationType& t) const;
+
+  inline Transform& operator=(const UniformScaling<Scalar>& t);
+  inline Transform& operator*=(const UniformScaling<Scalar>& s) { return scale(s.factor()); }
+  inline Transform<Scalar,Dim,(int(Mode)==int(Isometry)?int(Affine):int(Mode))> operator*(const UniformScaling<Scalar>& s) const
+  {
+    Transform<Scalar,Dim,(int(Mode)==int(Isometry)?int(Affine):int(Mode)),Options> res = *this;
+    res.scale(s.factor());
+    return res;
+  }
+
+  inline Transform& operator*=(const DiagonalMatrix<Scalar,Dim>& s) { linear() *= s; return *this; }
+
+  template<typename Derived>
+  inline Transform& operator=(const RotationBase<Derived,Dim>& r);
+  template<typename Derived>
+  inline Transform& operator*=(const RotationBase<Derived,Dim>& r) { return rotate(r.toRotationMatrix()); }
+  template<typename Derived>
+  inline Transform operator*(const RotationBase<Derived,Dim>& r) const;
+
+  const LinearMatrixType rotation() const;
+  template<typename RotationMatrixType, typename ScalingMatrixType>
+  void computeRotationScaling(RotationMatrixType *rotation, ScalingMatrixType *scaling) const;
+  template<typename ScalingMatrixType, typename RotationMatrixType>
+  void computeScalingRotation(ScalingMatrixType *scaling, RotationMatrixType *rotation) const;
+
+  template<typename PositionDerived, typename OrientationType, typename ScaleDerived>
+  Transform& fromPositionOrientationScale(const MatrixBase<PositionDerived> &position,
+    const OrientationType& orientation, const MatrixBase<ScaleDerived> &scale);
+
+  inline Transform inverse(TransformTraits traits = (TransformTraits)Mode) const;
+
+  /** \returns a const pointer to the column major internal matrix */
+  const Scalar* data() const { return m_matrix.data(); }
+  /** \returns a non-const pointer to the column major internal matrix */
+  Scalar* data() { return m_matrix.data(); }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Transform,Transform<NewScalarType,Dim,Mode,Options> >::type cast() const
+  { return typename internal::cast_return_type<Transform,Transform<NewScalarType,Dim,Mode,Options> >::type(*this); }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit Transform(const Transform<OtherScalarType,Dim,Mode,Options>& other)
+  {
+    check_template_params();
+    m_matrix = other.matrix().template cast<Scalar>();
+  }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const Transform& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+  { return m_matrix.isApprox(other.m_matrix, prec); }
+
+  /** Sets the last row to [0 ... 0 1]
+    */
+  void makeAffine()
+  {
+    internal::transform_make_affine<int(Mode)>::run(m_matrix);
+  }
+
+  /** \internal
+    * \returns the Dim x Dim linear part if the transformation is affine,
+    *          and the HDim x Dim part for projective transformations.
+    */
+  inline Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,Dim> linearExt()
+  { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,Dim>(0,0); }
+  /** \internal
+    * \returns the Dim x Dim linear part if the transformation is affine,
+    *          and the HDim x Dim part for projective transformations.
+    */
+  inline const Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,Dim> linearExt() const
+  { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,Dim>(0,0); }
+
+  /** \internal
+    * \returns the translation part if the transformation is affine,
+    *          and the last column for projective transformations.
+    */
+  inline Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,1> translationExt()
+  { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,1>(0,Dim); }
+  /** \internal
+    * \returns the translation part if the transformation is affine,
+    *          and the last column for projective transformations.
+    */
+  inline const Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,1> translationExt() const
+  { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,1>(0,Dim); }
+
+
+  #ifdef EIGEN_TRANSFORM_PLUGIN
+  #include EIGEN_TRANSFORM_PLUGIN
+  #endif
+  
+protected:
+  #ifndef EIGEN_PARSED_BY_DOXYGEN
+    static EIGEN_STRONG_INLINE void check_template_params()
+    {
+      EIGEN_STATIC_ASSERT((Options & (DontAlign|RowMajor)) == Options, INVALID_MATRIX_TEMPLATE_PARAMETERS)
+    }
+  #endif
+
+};
+
+/** \ingroup Geometry_Module */
+typedef Transform<float,2,Isometry> Isometry2f;
+/** \ingroup Geometry_Module */
+typedef Transform<float,3,Isometry> Isometry3f;
+/** \ingroup Geometry_Module */
+typedef Transform<double,2,Isometry> Isometry2d;
+/** \ingroup Geometry_Module */
+typedef Transform<double,3,Isometry> Isometry3d;
+
+/** \ingroup Geometry_Module */
+typedef Transform<float,2,Affine> Affine2f;
+/** \ingroup Geometry_Module */
+typedef Transform<float,3,Affine> Affine3f;
+/** \ingroup Geometry_Module */
+typedef Transform<double,2,Affine> Affine2d;
+/** \ingroup Geometry_Module */
+typedef Transform<double,3,Affine> Affine3d;
+
+/** \ingroup Geometry_Module */
+typedef Transform<float,2,AffineCompact> AffineCompact2f;
+/** \ingroup Geometry_Module */
+typedef Transform<float,3,AffineCompact> AffineCompact3f;
+/** \ingroup Geometry_Module */
+typedef Transform<double,2,AffineCompact> AffineCompact2d;
+/** \ingroup Geometry_Module */
+typedef Transform<double,3,AffineCompact> AffineCompact3d;
+
+/** \ingroup Geometry_Module */
+typedef Transform<float,2,Projective> Projective2f;
+/** \ingroup Geometry_Module */
+typedef Transform<float,3,Projective> Projective3f;
+/** \ingroup Geometry_Module */
+typedef Transform<double,2,Projective> Projective2d;
+/** \ingroup Geometry_Module */
+typedef Transform<double,3,Projective> Projective3d;
+
+/**************************
+*** Optional QT support ***
+**************************/
+
+#ifdef EIGEN_QT_SUPPORT
+/** Initializes \c *this from a QMatrix assuming the dimension is 2.
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim, int Mode,int Options>
+Transform<Scalar,Dim,Mode,Options>::Transform(const QMatrix& other)
+{
+  check_template_params();
+  *this = other;
+}
+
+/** Set \c *this from a QMatrix assuming the dimension is 2.
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim, int Mode,int Options>
+Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const QMatrix& other)
+{
+  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  m_matrix << other.m11(), other.m21(), other.dx(),
+              other.m12(), other.m22(), other.dy(),
+              0, 0, 1;
+  return *this;
+}
+
+/** \returns a QMatrix from \c *this assuming the dimension is 2.
+  *
+  * \warning this conversion might loss data if \c *this is not affine
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+QMatrix Transform<Scalar,Dim,Mode,Options>::toQMatrix(void) const
+{
+  check_template_params();
+  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  return QMatrix(m_matrix.coeff(0,0), m_matrix.coeff(1,0),
+                 m_matrix.coeff(0,1), m_matrix.coeff(1,1),
+                 m_matrix.coeff(0,2), m_matrix.coeff(1,2));
+}
+
+/** Initializes \c *this from a QTransform assuming the dimension is 2.
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim, int Mode,int Options>
+Transform<Scalar,Dim,Mode,Options>::Transform(const QTransform& other)
+{
+  check_template_params();
+  *this = other;
+}
+
+/** Set \c *this from a QTransform assuming the dimension is 2.
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const QTransform& other)
+{
+  check_template_params();
+  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  if (Mode == int(AffineCompact))
+    m_matrix << other.m11(), other.m21(), other.dx(),
+                other.m12(), other.m22(), other.dy();
+  else
+    m_matrix << other.m11(), other.m21(), other.dx(),
+                other.m12(), other.m22(), other.dy(),
+                other.m13(), other.m23(), other.m33();
+  return *this;
+}
+
+/** \returns a QTransform from \c *this assuming the dimension is 2.
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+QTransform Transform<Scalar,Dim,Mode,Options>::toQTransform(void) const
+{
+  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  if (Mode == int(AffineCompact))
+    return QTransform(m_matrix.coeff(0,0), m_matrix.coeff(1,0),
+                      m_matrix.coeff(0,1), m_matrix.coeff(1,1),
+                      m_matrix.coeff(0,2), m_matrix.coeff(1,2));
+  else
+    return QTransform(m_matrix.coeff(0,0), m_matrix.coeff(1,0), m_matrix.coeff(2,0),
+                      m_matrix.coeff(0,1), m_matrix.coeff(1,1), m_matrix.coeff(2,1),
+                      m_matrix.coeff(0,2), m_matrix.coeff(1,2), m_matrix.coeff(2,2));
+}
+#endif
+
+/*********************
+*** Procedural API ***
+*********************/
+
+/** Applies on the right the non uniform scale transformation represented
+  * by the vector \a other to \c *this and returns a reference to \c *this.
+  * \sa prescale()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename OtherDerived>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::scale(const MatrixBase<OtherDerived> &other)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+  linearExt().noalias() = (linearExt() * other.asDiagonal());
+  return *this;
+}
+
+/** Applies on the right a uniform scale of a factor \a c to \c *this
+  * and returns a reference to \c *this.
+  * \sa prescale(Scalar)
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::scale(const Scalar& s)
+{
+  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+  linearExt() *= s;
+  return *this;
+}
+
+/** Applies on the left the non uniform scale transformation represented
+  * by the vector \a other to \c *this and returns a reference to \c *this.
+  * \sa scale()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename OtherDerived>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::prescale(const MatrixBase<OtherDerived> &other)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+  m_matrix.template block<Dim,HDim>(0,0).noalias() = (other.asDiagonal() * m_matrix.template block<Dim,HDim>(0,0));
+  return *this;
+}
+
+/** Applies on the left a uniform scale of a factor \a c to \c *this
+  * and returns a reference to \c *this.
+  * \sa scale(Scalar)
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::prescale(const Scalar& s)
+{
+  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+  m_matrix.template topRows<Dim>() *= s;
+  return *this;
+}
+
+/** Applies on the right the translation matrix represented by the vector \a other
+  * to \c *this and returns a reference to \c *this.
+  * \sa pretranslate()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename OtherDerived>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::translate(const MatrixBase<OtherDerived> &other)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+  translationExt() += linearExt() * other;
+  return *this;
+}
+
+/** Applies on the left the translation matrix represented by the vector \a other
+  * to \c *this and returns a reference to \c *this.
+  * \sa translate()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename OtherDerived>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::pretranslate(const MatrixBase<OtherDerived> &other)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+  if(int(Mode)==int(Projective))
+    affine() += other * m_matrix.row(Dim);
+  else
+    translation() += other;
+  return *this;
+}
+
+/** Applies on the right the rotation represented by the rotation \a rotation
+  * to \c *this and returns a reference to \c *this.
+  *
+  * The template parameter \a RotationType is the type of the rotation which
+  * must be known by internal::toRotationMatrix<>.
+  *
+  * Natively supported types includes:
+  *   - any scalar (2D),
+  *   - a Dim x Dim matrix expression,
+  *   - a Quaternion (3D),
+  *   - a AngleAxis (3D)
+  *
+  * This mechanism is easily extendable to support user types such as Euler angles,
+  * or a pair of Quaternion for 4D rotations.
+  *
+  * \sa rotate(Scalar), class Quaternion, class AngleAxis, prerotate(RotationType)
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename RotationType>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::rotate(const RotationType& rotation)
+{
+  linearExt() *= internal::toRotationMatrix<Scalar,Dim>(rotation);
+  return *this;
+}
+
+/** Applies on the left the rotation represented by the rotation \a rotation
+  * to \c *this and returns a reference to \c *this.
+  *
+  * See rotate() for further details.
+  *
+  * \sa rotate()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename RotationType>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::prerotate(const RotationType& rotation)
+{
+  m_matrix.template block<Dim,HDim>(0,0) = internal::toRotationMatrix<Scalar,Dim>(rotation)
+                                         * m_matrix.template block<Dim,HDim>(0,0);
+  return *this;
+}
+
+/** Applies on the right the shear transformation represented
+  * by the vector \a other to \c *this and returns a reference to \c *this.
+  * \warning 2D only.
+  * \sa preshear()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::shear(const Scalar& sx, const Scalar& sy)
+{
+  EIGEN_STATIC_ASSERT(int(Dim)==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+  VectorType tmp = linear().col(0)*sy + linear().col(1);
+  linear() << linear().col(0) + linear().col(1)*sx, tmp;
+  return *this;
+}
+
+/** Applies on the left the shear transformation represented
+  * by the vector \a other to \c *this and returns a reference to \c *this.
+  * \warning 2D only.
+  * \sa shear()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::preshear(const Scalar& sx, const Scalar& sy)
+{
+  EIGEN_STATIC_ASSERT(int(Dim)==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+  m_matrix.template block<Dim,HDim>(0,0) = LinearMatrixType(1, sx, sy, 1) * m_matrix.template block<Dim,HDim>(0,0);
+  return *this;
+}
+
+/******************************************************
+*** Scaling, Translation and Rotation compatibility ***
+******************************************************/
+
+template<typename Scalar, int Dim, int Mode, int Options>
+inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const TranslationType& t)
+{
+  linear().setIdentity();
+  translation() = t.vector();
+  makeAffine();
+  return *this;
+}
+
+template<typename Scalar, int Dim, int Mode, int Options>
+inline Transform<Scalar,Dim,Mode,Options> Transform<Scalar,Dim,Mode,Options>::operator*(const TranslationType& t) const
+{
+  Transform res = *this;
+  res.translate(t.vector());
+  return res;
+}
+
+template<typename Scalar, int Dim, int Mode, int Options>
+inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const UniformScaling<Scalar>& s)
+{
+  m_matrix.setZero();
+  linear().diagonal().fill(s.factor());
+  makeAffine();
+  return *this;
+}
+
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename Derived>
+inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const RotationBase<Derived,Dim>& r)
+{
+  linear() = internal::toRotationMatrix<Scalar,Dim>(r);
+  translation().setZero();
+  makeAffine();
+  return *this;
+}
+
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename Derived>
+inline Transform<Scalar,Dim,Mode,Options> Transform<Scalar,Dim,Mode,Options>::operator*(const RotationBase<Derived,Dim>& r) const
+{
+  Transform res = *this;
+  res.rotate(r.derived());
+  return res;
+}
+
+/************************
+*** Special functions ***
+************************/
+
+/** \returns the rotation part of the transformation
+  *
+  *
+  * \svd_module
+  *
+  * \sa computeRotationScaling(), computeScalingRotation(), class SVD
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+const typename Transform<Scalar,Dim,Mode,Options>::LinearMatrixType
+Transform<Scalar,Dim,Mode,Options>::rotation() const
+{
+  LinearMatrixType result;
+  computeRotationScaling(&result, (LinearMatrixType*)0);
+  return result;
+}
+
+
+/** decomposes the linear part of the transformation as a product rotation x scaling, the scaling being
+  * not necessarily positive.
+  *
+  * If either pointer is zero, the corresponding computation is skipped.
+  *
+  *
+  *
+  * \svd_module
+  *
+  * \sa computeScalingRotation(), rotation(), class SVD
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename RotationMatrixType, typename ScalingMatrixType>
+void Transform<Scalar,Dim,Mode,Options>::computeRotationScaling(RotationMatrixType *rotation, ScalingMatrixType *scaling) const
+{
+  JacobiSVD<LinearMatrixType> svd(linear(), ComputeFullU | ComputeFullV);
+
+  Scalar x = (svd.matrixU() * svd.matrixV().adjoint()).determinant(); // so x has absolute value 1
+  VectorType sv(svd.singularValues());
+  sv.coeffRef(0) *= x;
+  if(scaling) scaling->lazyAssign(svd.matrixV() * sv.asDiagonal() * svd.matrixV().adjoint());
+  if(rotation)
+  {
+    LinearMatrixType m(svd.matrixU());
+    m.col(0) /= x;
+    rotation->lazyAssign(m * svd.matrixV().adjoint());
+  }
+}
+
+/** decomposes the linear part of the transformation as a product rotation x scaling, the scaling being
+  * not necessarily positive.
+  *
+  * If either pointer is zero, the corresponding computation is skipped.
+  *
+  *
+  *
+  * \svd_module
+  *
+  * \sa computeRotationScaling(), rotation(), class SVD
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename ScalingMatrixType, typename RotationMatrixType>
+void Transform<Scalar,Dim,Mode,Options>::computeScalingRotation(ScalingMatrixType *scaling, RotationMatrixType *rotation) const
+{
+  JacobiSVD<LinearMatrixType> svd(linear(), ComputeFullU | ComputeFullV);
+
+  Scalar x = (svd.matrixU() * svd.matrixV().adjoint()).determinant(); // so x has absolute value 1
+  VectorType sv(svd.singularValues());
+  sv.coeffRef(0) *= x;
+  if(scaling) scaling->lazyAssign(svd.matrixU() * sv.asDiagonal() * svd.matrixU().adjoint());
+  if(rotation)
+  {
+    LinearMatrixType m(svd.matrixU());
+    m.col(0) /= x;
+    rotation->lazyAssign(m * svd.matrixV().adjoint());
+  }
+}
+
+/** Convenient method to set \c *this from a position, orientation and scale
+  * of a 3D object.
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename PositionDerived, typename OrientationType, typename ScaleDerived>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::fromPositionOrientationScale(const MatrixBase<PositionDerived> &position,
+  const OrientationType& orientation, const MatrixBase<ScaleDerived> &scale)
+{
+  linear() = internal::toRotationMatrix<Scalar,Dim>(orientation);
+  linear() *= scale.asDiagonal();
+  translation() = position;
+  makeAffine();
+  return *this;
+}
+
+namespace internal {
+
+template<int Mode>
+struct transform_make_affine
+{
+  template<typename MatrixType>
+  static void run(MatrixType &mat)
+  {
+    static const int Dim = MatrixType::ColsAtCompileTime-1;
+    mat.template block<1,Dim>(Dim,0).setZero();
+    mat.coeffRef(Dim,Dim) = typename MatrixType::Scalar(1);
+  }
+};
+
+template<>
+struct transform_make_affine<AffineCompact>
+{
+  template<typename MatrixType> static void run(MatrixType &) { }
+};
+    
+// selector needed to avoid taking the inverse of a 3x4 matrix
+template<typename TransformType, int Mode=TransformType::Mode>
+struct projective_transform_inverse
+{
+  static inline void run(const TransformType&, TransformType&)
+  {}
+};
+
+template<typename TransformType>
+struct projective_transform_inverse<TransformType, Projective>
+{
+  static inline void run(const TransformType& m, TransformType& res)
+  {
+    res.matrix() = m.matrix().inverse();
+  }
+};
+
+} // end namespace internal
+
+
+/**
+  *
+  * \returns the inverse transformation according to some given knowledge
+  * on \c *this.
+  *
+  * \param hint allows to optimize the inversion process when the transformation
+  * is known to be not a general transformation (optional). The possible values are:
+  *  - #Projective if the transformation is not necessarily affine, i.e., if the
+  *    last row is not guaranteed to be [0 ... 0 1]
+  *  - #Affine if the last row can be assumed to be [0 ... 0 1]
+  *  - #Isometry if the transformation is only a concatenations of translations
+  *    and rotations.
+  *  The default is the template class parameter \c Mode.
+  *
+  * \warning unless \a traits is always set to NoShear or NoScaling, this function
+  * requires the generic inverse method of MatrixBase defined in the LU module. If
+  * you forget to include this module, then you will get hard to debug linking errors.
+  *
+  * \sa MatrixBase::inverse()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+Transform<Scalar,Dim,Mode,Options>
+Transform<Scalar,Dim,Mode,Options>::inverse(TransformTraits hint) const
+{
+  Transform res;
+  if (hint == Projective)
+  {
+    internal::projective_transform_inverse<Transform>::run(*this, res);
+  }
+  else
+  {
+    if (hint == Isometry)
+    {
+      res.matrix().template topLeftCorner<Dim,Dim>() = linear().transpose();
+    }
+    else if(hint&Affine)
+    {
+      res.matrix().template topLeftCorner<Dim,Dim>() = linear().inverse();
+    }
+    else
+    {
+      eigen_assert(false && "Invalid transform traits in Transform::Inverse");
+    }
+    // translation and remaining parts
+    res.matrix().template topRightCorner<Dim,1>()
+      = - res.matrix().template topLeftCorner<Dim,Dim>() * translation();
+    res.makeAffine(); // we do need this, because in the beginning res is uninitialized
+  }
+  return res;
+}
+
+namespace internal {
+
+/*****************************************************
+*** Specializations of take affine part            ***
+*****************************************************/
+
+template<typename TransformType> struct transform_take_affine_part {
+  typedef typename TransformType::MatrixType MatrixType;
+  typedef typename TransformType::AffinePart AffinePart;
+  typedef typename TransformType::ConstAffinePart ConstAffinePart;
+  static inline AffinePart run(MatrixType& m)
+  { return m.template block<TransformType::Dim,TransformType::HDim>(0,0); }
+  static inline ConstAffinePart run(const MatrixType& m)
+  { return m.template block<TransformType::Dim,TransformType::HDim>(0,0); }
+};
+
+template<typename Scalar, int Dim, int Options>
+struct transform_take_affine_part<Transform<Scalar,Dim,AffineCompact, Options> > {
+  typedef typename Transform<Scalar,Dim,AffineCompact,Options>::MatrixType MatrixType;
+  static inline MatrixType& run(MatrixType& m) { return m; }
+  static inline const MatrixType& run(const MatrixType& m) { return m; }
+};
+
+/*****************************************************
+*** Specializations of construct from matrix       ***
+*****************************************************/
+
+template<typename Other, int Mode, int Options, int Dim, int HDim>
+struct transform_construct_from_matrix<Other, Mode,Options,Dim,HDim, Dim,Dim>
+{
+  static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)
+  {
+    transform->linear() = other;
+    transform->translation().setZero();
+    transform->makeAffine();
+  }
+};
+
+template<typename Other, int Mode, int Options, int Dim, int HDim>
+struct transform_construct_from_matrix<Other, Mode,Options,Dim,HDim, Dim,HDim>
+{
+  static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)
+  {
+    transform->affine() = other;
+    transform->makeAffine();
+  }
+};
+
+template<typename Other, int Mode, int Options, int Dim, int HDim>
+struct transform_construct_from_matrix<Other, Mode,Options,Dim,HDim, HDim,HDim>
+{
+  static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)
+  { transform->matrix() = other; }
+};
+
+template<typename Other, int Options, int Dim, int HDim>
+struct transform_construct_from_matrix<Other, AffineCompact,Options,Dim,HDim, HDim,HDim>
+{
+  static inline void run(Transform<typename Other::Scalar,Dim,AffineCompact,Options> *transform, const Other& other)
+  { transform->matrix() = other.template block<Dim,HDim>(0,0); }
+};
+
+/**********************************************************
+***   Specializations of operator* with rhs EigenBase   ***
+**********************************************************/
+
+template<int LhsMode,int RhsMode>
+struct transform_product_result
+{
+  enum 
+  { 
+    Mode =
+      (LhsMode == (int)Projective    || RhsMode == (int)Projective    ) ? Projective :
+      (LhsMode == (int)Affine        || RhsMode == (int)Affine        ) ? Affine :
+      (LhsMode == (int)AffineCompact || RhsMode == (int)AffineCompact ) ? AffineCompact :
+      (LhsMode == (int)Isometry      || RhsMode == (int)Isometry      ) ? Isometry : Projective
+  };
+};
+
+template< typename TransformType, typename MatrixType >
+struct transform_right_product_impl< TransformType, MatrixType, 0 >
+{
+  typedef typename MatrixType::PlainObject ResultType;
+
+  static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const MatrixType& other)
+  {
+    return T.matrix() * other;
+  }
+};
+
+template< typename TransformType, typename MatrixType >
+struct transform_right_product_impl< TransformType, MatrixType, 1 >
+{
+  enum { 
+    Dim = TransformType::Dim, 
+    HDim = TransformType::HDim,
+    OtherRows = MatrixType::RowsAtCompileTime,
+    OtherCols = MatrixType::ColsAtCompileTime
+  };
+
+  typedef typename MatrixType::PlainObject ResultType;
+
+  static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const MatrixType& other)
+  {
+    EIGEN_STATIC_ASSERT(OtherRows==HDim, YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES);
+
+    typedef Block<ResultType, Dim, OtherCols, int(MatrixType::RowsAtCompileTime)==Dim> TopLeftLhs;
+
+    ResultType res(other.rows(),other.cols());
+    TopLeftLhs(res, 0, 0, Dim, other.cols()).noalias() = T.affine() * other;
+    res.row(OtherRows-1) = other.row(OtherRows-1);
+    
+    return res;
+  }
+};
+
+template< typename TransformType, typename MatrixType >
+struct transform_right_product_impl< TransformType, MatrixType, 2 >
+{
+  enum { 
+    Dim = TransformType::Dim, 
+    HDim = TransformType::HDim,
+    OtherRows = MatrixType::RowsAtCompileTime,
+    OtherCols = MatrixType::ColsAtCompileTime
+  };
+
+  typedef typename MatrixType::PlainObject ResultType;
+
+  static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const MatrixType& other)
+  {
+    EIGEN_STATIC_ASSERT(OtherRows==Dim, YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES);
+
+    typedef Block<ResultType, Dim, OtherCols, true> TopLeftLhs;
+    ResultType res(Replicate<typename TransformType::ConstTranslationPart, 1, OtherCols>(T.translation(),1,other.cols()));
+    TopLeftLhs(res, 0, 0, Dim, other.cols()).noalias() += T.linear() * other;
+
+    return res;
+  }
+};
+
+/**********************************************************
+***   Specializations of operator* with lhs EigenBase   ***
+**********************************************************/
+
+// generic HDim x HDim matrix * T => Projective
+template<typename Other,int Mode, int Options, int Dim, int HDim>
+struct transform_left_product_impl<Other,Mode,Options,Dim,HDim, HDim,HDim>
+{
+  typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
+  typedef typename TransformType::MatrixType MatrixType;
+  typedef Transform<typename Other::Scalar,Dim,Projective,Options> ResultType;
+  static ResultType run(const Other& other,const TransformType& tr)
+  { return ResultType(other * tr.matrix()); }
+};
+
+// generic HDim x HDim matrix * AffineCompact => Projective
+template<typename Other, int Options, int Dim, int HDim>
+struct transform_left_product_impl<Other,AffineCompact,Options,Dim,HDim, HDim,HDim>
+{
+  typedef Transform<typename Other::Scalar,Dim,AffineCompact,Options> TransformType;
+  typedef typename TransformType::MatrixType MatrixType;
+  typedef Transform<typename Other::Scalar,Dim,Projective,Options> ResultType;
+  static ResultType run(const Other& other,const TransformType& tr)
+  {
+    ResultType res;
+    res.matrix().noalias() = other.template block<HDim,Dim>(0,0) * tr.matrix();
+    res.matrix().col(Dim) += other.col(Dim);
+    return res;
+  }
+};
+
+// affine matrix * T
+template<typename Other,int Mode, int Options, int Dim, int HDim>
+struct transform_left_product_impl<Other,Mode,Options,Dim,HDim, Dim,HDim>
+{
+  typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
+  typedef typename TransformType::MatrixType MatrixType;
+  typedef TransformType ResultType;
+  static ResultType run(const Other& other,const TransformType& tr)
+  {
+    ResultType res;
+    res.affine().noalias() = other * tr.matrix();
+    res.matrix().row(Dim) = tr.matrix().row(Dim);
+    return res;
+  }
+};
+
+// affine matrix * AffineCompact
+template<typename Other, int Options, int Dim, int HDim>
+struct transform_left_product_impl<Other,AffineCompact,Options,Dim,HDim, Dim,HDim>
+{
+  typedef Transform<typename Other::Scalar,Dim,AffineCompact,Options> TransformType;
+  typedef typename TransformType::MatrixType MatrixType;
+  typedef TransformType ResultType;
+  static ResultType run(const Other& other,const TransformType& tr)
+  {
+    ResultType res;
+    res.matrix().noalias() = other.template block<Dim,Dim>(0,0) * tr.matrix();
+    res.translation() += other.col(Dim);
+    return res;
+  }
+};
+
+// linear matrix * T
+template<typename Other,int Mode, int Options, int Dim, int HDim>
+struct transform_left_product_impl<Other,Mode,Options,Dim,HDim, Dim,Dim>
+{
+  typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
+  typedef typename TransformType::MatrixType MatrixType;
+  typedef TransformType ResultType;
+  static ResultType run(const Other& other, const TransformType& tr)
+  {
+    TransformType res;
+    if(Mode!=int(AffineCompact))
+      res.matrix().row(Dim) = tr.matrix().row(Dim);
+    res.matrix().template topRows<Dim>().noalias()
+      = other * tr.matrix().template topRows<Dim>();
+    return res;
+  }
+};
+
+/**********************************************************
+*** Specializations of operator* with another Transform ***
+**********************************************************/
+
+template<typename Scalar, int Dim, int LhsMode, int LhsOptions, int RhsMode, int RhsOptions>
+struct transform_transform_product_impl<Transform<Scalar,Dim,LhsMode,LhsOptions>,Transform<Scalar,Dim,RhsMode,RhsOptions>,false >
+{
+  enum { ResultMode = transform_product_result<LhsMode,RhsMode>::Mode };
+  typedef Transform<Scalar,Dim,LhsMode,LhsOptions> Lhs;
+  typedef Transform<Scalar,Dim,RhsMode,RhsOptions> Rhs;
+  typedef Transform<Scalar,Dim,ResultMode,LhsOptions> ResultType;
+  static ResultType run(const Lhs& lhs, const Rhs& rhs)
+  {
+    ResultType res;
+    res.linear() = lhs.linear() * rhs.linear();
+    res.translation() = lhs.linear() * rhs.translation() + lhs.translation();
+    res.makeAffine();
+    return res;
+  }
+};
+
+template<typename Scalar, int Dim, int LhsMode, int LhsOptions, int RhsMode, int RhsOptions>
+struct transform_transform_product_impl<Transform<Scalar,Dim,LhsMode,LhsOptions>,Transform<Scalar,Dim,RhsMode,RhsOptions>,true >
+{
+  typedef Transform<Scalar,Dim,LhsMode,LhsOptions> Lhs;
+  typedef Transform<Scalar,Dim,RhsMode,RhsOptions> Rhs;
+  typedef Transform<Scalar,Dim,Projective> ResultType;
+  static ResultType run(const Lhs& lhs, const Rhs& rhs)
+  {
+    return ResultType( lhs.matrix() * rhs.matrix() );
+  }
+};
+
+template<typename Scalar, int Dim, int LhsOptions, int RhsOptions>
+struct transform_transform_product_impl<Transform<Scalar,Dim,AffineCompact,LhsOptions>,Transform<Scalar,Dim,Projective,RhsOptions>,true >
+{
+  typedef Transform<Scalar,Dim,AffineCompact,LhsOptions> Lhs;
+  typedef Transform<Scalar,Dim,Projective,RhsOptions> Rhs;
+  typedef Transform<Scalar,Dim,Projective> ResultType;
+  static ResultType run(const Lhs& lhs, const Rhs& rhs)
+  {
+    ResultType res;
+    res.matrix().template topRows<Dim>() = lhs.matrix() * rhs.matrix();
+    res.matrix().row(Dim) = rhs.matrix().row(Dim);
+    return res;
+  }
+};
+
+template<typename Scalar, int Dim, int LhsOptions, int RhsOptions>
+struct transform_transform_product_impl<Transform<Scalar,Dim,Projective,LhsOptions>,Transform<Scalar,Dim,AffineCompact,RhsOptions>,true >
+{
+  typedef Transform<Scalar,Dim,Projective,LhsOptions> Lhs;
+  typedef Transform<Scalar,Dim,AffineCompact,RhsOptions> Rhs;
+  typedef Transform<Scalar,Dim,Projective> ResultType;
+  static ResultType run(const Lhs& lhs, const Rhs& rhs)
+  {
+    ResultType res(lhs.matrix().template leftCols<Dim>() * rhs.matrix());
+    res.matrix().col(Dim) += lhs.matrix().col(Dim);
+    return res;
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRANSFORM_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Geometry/Translation.h b/vendor/eigen-3.2.8/Eigen/src/Geometry/Translation.h
new file mode 100644
index 0000000..2e77986
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Geometry/Translation.h
@@ -0,0 +1,206 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRANSLATION_H
+#define EIGEN_TRANSLATION_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Translation
+  *
+  * \brief Represents a translation transformation
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients.
+  * \param _Dim the  dimension of the space, can be a compile time value or Dynamic
+  *
+  * \note This class is not aimed to be used to store a translation transformation,
+  * but rather to make easier the constructions and updates of Transform objects.
+  *
+  * \sa class Scaling, class Transform
+  */
+template<typename _Scalar, int _Dim>
+class Translation
+{
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Dim)
+  /** dimension of the space */
+  enum { Dim = _Dim };
+  /** the scalar type of the coefficients */
+  typedef _Scalar Scalar;
+  /** corresponding vector type */
+  typedef Matrix<Scalar,Dim,1> VectorType;
+  /** corresponding linear transformation matrix type */
+  typedef Matrix<Scalar,Dim,Dim> LinearMatrixType;
+  /** corresponding affine transformation type */
+  typedef Transform<Scalar,Dim,Affine> AffineTransformType;
+  /** corresponding isometric transformation type */
+  typedef Transform<Scalar,Dim,Isometry> IsometryTransformType;
+
+protected:
+
+  VectorType m_coeffs;
+
+public:
+
+  /** Default constructor without initialization. */
+  Translation() {}
+  /**  */
+  inline Translation(const Scalar& sx, const Scalar& sy)
+  {
+    eigen_assert(Dim==2);
+    m_coeffs.x() = sx;
+    m_coeffs.y() = sy;
+  }
+  /**  */
+  inline Translation(const Scalar& sx, const Scalar& sy, const Scalar& sz)
+  {
+    eigen_assert(Dim==3);
+    m_coeffs.x() = sx;
+    m_coeffs.y() = sy;
+    m_coeffs.z() = sz;
+  }
+  /** Constructs and initialize the translation transformation from a vector of translation coefficients */
+  explicit inline Translation(const VectorType& vector) : m_coeffs(vector) {}
+
+  /** \brief Retruns the x-translation by value. **/
+  inline Scalar x() const { return m_coeffs.x(); }
+  /** \brief Retruns the y-translation by value. **/
+  inline Scalar y() const { return m_coeffs.y(); }
+  /** \brief Retruns the z-translation by value. **/
+  inline Scalar z() const { return m_coeffs.z(); }
+
+  /** \brief Retruns the x-translation as a reference. **/
+  inline Scalar& x() { return m_coeffs.x(); }
+  /** \brief Retruns the y-translation as a reference. **/
+  inline Scalar& y() { return m_coeffs.y(); }
+  /** \brief Retruns the z-translation as a reference. **/
+  inline Scalar& z() { return m_coeffs.z(); }
+
+  const VectorType& vector() const { return m_coeffs; }
+  VectorType& vector() { return m_coeffs; }
+
+  const VectorType& translation() const { return m_coeffs; }
+  VectorType& translation() { return m_coeffs; }
+
+  /** Concatenates two translation */
+  inline Translation operator* (const Translation& other) const
+  { return Translation(m_coeffs + other.m_coeffs); }
+
+  /** Concatenates a translation and a uniform scaling */
+  inline AffineTransformType operator* (const UniformScaling<Scalar>& other) const;
+
+  /** Concatenates a translation and a linear transformation */
+  template<typename OtherDerived>
+  inline AffineTransformType operator* (const EigenBase<OtherDerived>& linear) const;
+
+  /** Concatenates a translation and a rotation */
+  template<typename Derived>
+  inline IsometryTransformType operator*(const RotationBase<Derived,Dim>& r) const
+  { return *this * IsometryTransformType(r); }
+
+  /** \returns the concatenation of a linear transformation \a l with the translation \a t */
+  // its a nightmare to define a templated friend function outside its declaration
+  template<typename OtherDerived> friend
+  inline AffineTransformType operator*(const EigenBase<OtherDerived>& linear, const Translation& t)
+  {
+    AffineTransformType res;
+    res.matrix().setZero();
+    res.linear() = linear.derived();
+    res.translation() = linear.derived() * t.m_coeffs;
+    res.matrix().row(Dim).setZero();
+    res(Dim,Dim) = Scalar(1);
+    return res;
+  }
+
+  /** Concatenates a translation and a transformation */
+  template<int Mode, int Options>
+  inline Transform<Scalar,Dim,Mode> operator* (const Transform<Scalar,Dim,Mode,Options>& t) const
+  {
+    Transform<Scalar,Dim,Mode> res = t;
+    res.pretranslate(m_coeffs);
+    return res;
+  }
+
+  /** Applies translation to vector */
+  inline VectorType operator* (const VectorType& other) const
+  { return m_coeffs + other; }
+
+  /** \returns the inverse translation (opposite) */
+  Translation inverse() const { return Translation(-m_coeffs); }
+
+  Translation& operator=(const Translation& other)
+  {
+    m_coeffs = other.m_coeffs;
+    return *this;
+  }
+
+  static const Translation Identity() { return Translation(VectorType::Zero()); }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Translation,Translation<NewScalarType,Dim> >::type cast() const
+  { return typename internal::cast_return_type<Translation,Translation<NewScalarType,Dim> >::type(*this); }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit Translation(const Translation<OtherScalarType,Dim>& other)
+  { m_coeffs = other.vector().template cast<Scalar>(); }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const Translation& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+  { return m_coeffs.isApprox(other.m_coeffs, prec); }
+
+};
+
+/** \addtogroup Geometry_Module */
+//@{
+typedef Translation<float, 2> Translation2f;
+typedef Translation<double,2> Translation2d;
+typedef Translation<float, 3> Translation3f;
+typedef Translation<double,3> Translation3d;
+//@}
+
+template<typename Scalar, int Dim>
+inline typename Translation<Scalar,Dim>::AffineTransformType
+Translation<Scalar,Dim>::operator* (const UniformScaling<Scalar>& other) const
+{
+  AffineTransformType res;
+  res.matrix().setZero();
+  res.linear().diagonal().fill(other.factor());
+  res.translation() = m_coeffs;
+  res(Dim,Dim) = Scalar(1);
+  return res;
+}
+
+template<typename Scalar, int Dim>
+template<typename OtherDerived>
+inline typename Translation<Scalar,Dim>::AffineTransformType
+Translation<Scalar,Dim>::operator* (const EigenBase<OtherDerived>& linear) const
+{
+  AffineTransformType res;
+  res.matrix().setZero();
+  res.linear() = linear.derived();
+  res.translation() = m_coeffs;
+  res.matrix().row(Dim).setZero();
+  res(Dim,Dim) = Scalar(1);
+  return res;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRANSLATION_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Geometry/Umeyama.h b/vendor/eigen-3.2.8/Eigen/src/Geometry/Umeyama.h
new file mode 100644
index 0000000..5e20662
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Geometry/Umeyama.h
@@ -0,0 +1,177 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_UMEYAMA_H
+#define EIGEN_UMEYAMA_H
+
+// This file requires the user to include 
+// * Eigen/Core
+// * Eigen/LU 
+// * Eigen/SVD
+// * Eigen/Array
+
+namespace Eigen { 
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+
+// These helpers are required since it allows to use mixed types as parameters
+// for the Umeyama. The problem with mixed parameters is that the return type
+// cannot trivially be deduced when float and double types are mixed.
+namespace internal {
+
+// Compile time return type deduction for different MatrixBase types.
+// Different means here different alignment and parameters but the same underlying
+// real scalar type.
+template<typename MatrixType, typename OtherMatrixType>
+struct umeyama_transform_matrix_type
+{
+  enum {
+    MinRowsAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(MatrixType::RowsAtCompileTime, OtherMatrixType::RowsAtCompileTime),
+
+    // When possible we want to choose some small fixed size value since the result
+    // is likely to fit on the stack. So here, EIGEN_SIZE_MIN_PREFER_DYNAMIC is not what we want.
+    HomogeneousDimension = int(MinRowsAtCompileTime) == Dynamic ? Dynamic : int(MinRowsAtCompileTime)+1
+  };
+
+  typedef Matrix<typename traits<MatrixType>::Scalar,
+    HomogeneousDimension,
+    HomogeneousDimension,
+    AutoAlign | (traits<MatrixType>::Flags & RowMajorBit ? RowMajor : ColMajor),
+    HomogeneousDimension,
+    HomogeneousDimension
+  > type;
+};
+
+}
+
+#endif
+
+/**
+* \geometry_module \ingroup Geometry_Module
+*
+* \brief Returns the transformation between two point sets.
+*
+* The algorithm is based on:
+* "Least-squares estimation of transformation parameters between two point patterns",
+* Shinji Umeyama, PAMI 1991, DOI: 10.1109/34.88573
+*
+* It estimates parameters \f$ c, \mathbf{R}, \f$ and \f$ \mathbf{t} \f$ such that
+* \f{align*}
+*   \frac{1}{n} \sum_{i=1}^n \vert\vert y_i - (c\mathbf{R}x_i + \mathbf{t}) \vert\vert_2^2
+* \f}
+* is minimized.
+*
+* The algorithm is based on the analysis of the covariance matrix
+* \f$ \Sigma_{\mathbf{x}\mathbf{y}} \in \mathbb{R}^{d \times d} \f$
+* of the input point sets \f$ \mathbf{x} \f$ and \f$ \mathbf{y} \f$ where 
+* \f$d\f$ is corresponding to the dimension (which is typically small).
+* The analysis is involving the SVD having a complexity of \f$O(d^3)\f$
+* though the actual computational effort lies in the covariance
+* matrix computation which has an asymptotic lower bound of \f$O(dm)\f$ when 
+* the input point sets have dimension \f$d \times m\f$.
+*
+* Currently the method is working only for floating point matrices.
+*
+* \todo Should the return type of umeyama() become a Transform?
+*
+* \param src Source points \f$ \mathbf{x} = \left( x_1, \hdots, x_n \right) \f$.
+* \param dst Destination points \f$ \mathbf{y} = \left( y_1, \hdots, y_n \right) \f$.
+* \param with_scaling Sets \f$ c=1 \f$ when <code>false</code> is passed.
+* \return The homogeneous transformation 
+* \f{align*}
+*   T = \begin{bmatrix} c\mathbf{R} & \mathbf{t} \\ \mathbf{0} & 1 \end{bmatrix}
+* \f}
+* minimizing the resudiual above. This transformation is always returned as an 
+* Eigen::Matrix.
+*/
+template <typename Derived, typename OtherDerived>
+typename internal::umeyama_transform_matrix_type<Derived, OtherDerived>::type
+umeyama(const MatrixBase<Derived>& src, const MatrixBase<OtherDerived>& dst, bool with_scaling = true)
+{
+  typedef typename internal::umeyama_transform_matrix_type<Derived, OtherDerived>::type TransformationMatrixType;
+  typedef typename internal::traits<TransformationMatrixType>::Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef typename Derived::Index Index;
+
+  EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL)
+  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename internal::traits<OtherDerived>::Scalar>::value),
+    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+  enum { Dimension = EIGEN_SIZE_MIN_PREFER_DYNAMIC(Derived::RowsAtCompileTime, OtherDerived::RowsAtCompileTime) };
+
+  typedef Matrix<Scalar, Dimension, 1> VectorType;
+  typedef Matrix<Scalar, Dimension, Dimension> MatrixType;
+  typedef typename internal::plain_matrix_type_row_major<Derived>::type RowMajorMatrixType;
+
+  const Index m = src.rows(); // dimension
+  const Index n = src.cols(); // number of measurements
+
+  // required for demeaning ...
+  const RealScalar one_over_n = RealScalar(1) / static_cast<RealScalar>(n);
+
+  // computation of mean
+  const VectorType src_mean = src.rowwise().sum() * one_over_n;
+  const VectorType dst_mean = dst.rowwise().sum() * one_over_n;
+
+  // demeaning of src and dst points
+  const RowMajorMatrixType src_demean = src.colwise() - src_mean;
+  const RowMajorMatrixType dst_demean = dst.colwise() - dst_mean;
+
+  // Eq. (36)-(37)
+  const Scalar src_var = src_demean.rowwise().squaredNorm().sum() * one_over_n;
+
+  // Eq. (38)
+  const MatrixType sigma = one_over_n * dst_demean * src_demean.transpose();
+
+  JacobiSVD<MatrixType> svd(sigma, ComputeFullU | ComputeFullV);
+
+  // Initialize the resulting transformation with an identity matrix...
+  TransformationMatrixType Rt = TransformationMatrixType::Identity(m+1,m+1);
+
+  // Eq. (39)
+  VectorType S = VectorType::Ones(m);
+  if (sigma.determinant()<Scalar(0)) S(m-1) = Scalar(-1);
+
+  // Eq. (40) and (43)
+  const VectorType& d = svd.singularValues();
+  Index rank = 0; for (Index i=0; i<m; ++i) if (!internal::isMuchSmallerThan(d.coeff(i),d.coeff(0))) ++rank;
+  if (rank == m-1) {
+    if ( svd.matrixU().determinant() * svd.matrixV().determinant() > Scalar(0) ) {
+      Rt.block(0,0,m,m).noalias() = svd.matrixU()*svd.matrixV().transpose();
+    } else {
+      const Scalar s = S(m-1); S(m-1) = Scalar(-1);
+      Rt.block(0,0,m,m).noalias() = svd.matrixU() * S.asDiagonal() * svd.matrixV().transpose();
+      S(m-1) = s;
+    }
+  } else {
+    Rt.block(0,0,m,m).noalias() = svd.matrixU() * S.asDiagonal() * svd.matrixV().transpose();
+  }
+
+  if (with_scaling)
+  {
+    // Eq. (42)
+    const Scalar c = Scalar(1)/src_var * svd.singularValues().dot(S);
+
+    // Eq. (41)
+    Rt.col(m).head(m) = dst_mean;
+    Rt.col(m).head(m).noalias() -= c*Rt.topLeftCorner(m,m)*src_mean;
+    Rt.block(0,0,m,m) *= c;
+  }
+  else
+  {
+    Rt.col(m).head(m) = dst_mean;
+    Rt.col(m).head(m).noalias() -= Rt.topLeftCorner(m,m)*src_mean;
+  }
+
+  return Rt;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_UMEYAMA_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/arch/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Geometry/arch/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Geometry/arch/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Geometry/arch/CMakeLists.txt
diff --git a/vendor/eigen-3.1.91/Eigen/src/Geometry/arch/Geometry_SSE.h b/vendor/eigen-3.2.8/Eigen/src/Geometry/arch/Geometry_SSE.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Geometry/arch/Geometry_SSE.h
rename to vendor/eigen-3.2.8/Eigen/src/Geometry/arch/Geometry_SSE.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/Householder/BlockHouseholder.h b/vendor/eigen-3.2.8/Eigen/src/Householder/BlockHouseholder.h
new file mode 100644
index 0000000..60dbea5
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Householder/BlockHouseholder.h
@@ -0,0 +1,68 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Vincent Lejeune
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BLOCK_HOUSEHOLDER_H
+#define EIGEN_BLOCK_HOUSEHOLDER_H
+
+// This file contains some helper function to deal with block householder reflectors
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \internal */
+template<typename TriangularFactorType,typename VectorsType,typename CoeffsType>
+void make_block_householder_triangular_factor(TriangularFactorType& triFactor, const VectorsType& vectors, const CoeffsType& hCoeffs)
+{
+  typedef typename TriangularFactorType::Index Index;
+  typedef typename VectorsType::Scalar Scalar;
+  const Index nbVecs = vectors.cols();
+  eigen_assert(triFactor.rows() == nbVecs && triFactor.cols() == nbVecs && vectors.rows()>=nbVecs);
+
+  for(Index i = 0; i < nbVecs; i++)
+  {
+    Index rs = vectors.rows() - i;
+    Scalar Vii = vectors(i,i);
+    vectors.const_cast_derived().coeffRef(i,i) = Scalar(1);
+    triFactor.col(i).head(i).noalias() = -hCoeffs(i) * vectors.block(i, 0, rs, i).adjoint()
+                                       * vectors.col(i).tail(rs);
+    vectors.const_cast_derived().coeffRef(i, i) = Vii;
+    // FIXME add .noalias() once the triangular product can work inplace
+    triFactor.col(i).head(i) = triFactor.block(0,0,i,i).template triangularView<Upper>()
+                             * triFactor.col(i).head(i);
+    triFactor(i,i) = hCoeffs(i);
+  }
+}
+
+/** \internal */
+template<typename MatrixType,typename VectorsType,typename CoeffsType>
+void apply_block_householder_on_the_left(MatrixType& mat, const VectorsType& vectors, const CoeffsType& hCoeffs)
+{
+  typedef typename MatrixType::Index Index;
+  enum { TFactorSize = MatrixType::ColsAtCompileTime };
+  Index nbVecs = vectors.cols();
+  Matrix<typename MatrixType::Scalar, TFactorSize, TFactorSize, ColMajor> T(nbVecs,nbVecs);
+  make_block_householder_triangular_factor(T, vectors, hCoeffs);
+
+  const TriangularView<const VectorsType, UnitLower>& V(vectors);
+
+  // A -= V T V^* A
+  Matrix<typename MatrixType::Scalar,VectorsType::ColsAtCompileTime,MatrixType::ColsAtCompileTime,0,
+         VectorsType::MaxColsAtCompileTime,MatrixType::MaxColsAtCompileTime> tmp = V.adjoint() * mat;
+  // FIXME add .noalias() once the triangular product can work inplace
+  tmp = T.template triangularView<Upper>().adjoint() * tmp;
+  mat.noalias() -= V * tmp;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BLOCK_HOUSEHOLDER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Householder/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Householder/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Householder/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Householder/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/Householder/Householder.h b/vendor/eigen-3.2.8/Eigen/src/Householder/Householder.h
new file mode 100644
index 0000000..32112af
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Householder/Householder.h
@@ -0,0 +1,171 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HOUSEHOLDER_H
+#define EIGEN_HOUSEHOLDER_H
+
+namespace Eigen { 
+
+namespace internal {
+template<int n> struct decrement_size
+{
+  enum {
+    ret = n==Dynamic ? n : n-1
+  };
+};
+}
+
+/** Computes the elementary reflector H such that:
+  * \f$ H *this = [ beta 0 ... 0]^T \f$
+  * where the transformation H is:
+  * \f$ H = I - tau v v^*\f$
+  * and the vector v is:
+  * \f$ v^T = [1 essential^T] \f$
+  *
+  * The essential part of the vector \c v is stored in *this.
+  * 
+  * On output:
+  * \param tau the scaling factor of the Householder transformation
+  * \param beta the result of H * \c *this
+  *
+  * \sa MatrixBase::makeHouseholder(), MatrixBase::applyHouseholderOnTheLeft(),
+  *     MatrixBase::applyHouseholderOnTheRight()
+  */
+template<typename Derived>
+void MatrixBase<Derived>::makeHouseholderInPlace(Scalar& tau, RealScalar& beta)
+{
+  VectorBlock<Derived, internal::decrement_size<Base::SizeAtCompileTime>::ret> essentialPart(derived(), 1, size()-1);
+  makeHouseholder(essentialPart, tau, beta);
+}
+
+/** Computes the elementary reflector H such that:
+  * \f$ H *this = [ beta 0 ... 0]^T \f$
+  * where the transformation H is:
+  * \f$ H = I - tau v v^*\f$
+  * and the vector v is:
+  * \f$ v^T = [1 essential^T] \f$
+  *
+  * On output:
+  * \param essential the essential part of the vector \c v
+  * \param tau the scaling factor of the Householder transformation
+  * \param beta the result of H * \c *this
+  *
+  * \sa MatrixBase::makeHouseholderInPlace(), MatrixBase::applyHouseholderOnTheLeft(),
+  *     MatrixBase::applyHouseholderOnTheRight()
+  */
+template<typename Derived>
+template<typename EssentialPart>
+void MatrixBase<Derived>::makeHouseholder(
+  EssentialPart& essential,
+  Scalar& tau,
+  RealScalar& beta) const
+{
+  using std::sqrt;
+  using numext::conj;
+  
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(EssentialPart)
+  VectorBlock<const Derived, EssentialPart::SizeAtCompileTime> tail(derived(), 1, size()-1);
+  
+  RealScalar tailSqNorm = size()==1 ? RealScalar(0) : tail.squaredNorm();
+  Scalar c0 = coeff(0);
+
+  if(tailSqNorm == RealScalar(0) && numext::imag(c0)==RealScalar(0))
+  {
+    tau = RealScalar(0);
+    beta = numext::real(c0);
+    essential.setZero();
+  }
+  else
+  {
+    beta = sqrt(numext::abs2(c0) + tailSqNorm);
+    if (numext::real(c0)>=RealScalar(0))
+      beta = -beta;
+    essential = tail / (c0 - beta);
+    tau = conj((beta - c0) / beta);
+  }
+}
+
+/** Apply the elementary reflector H given by
+  * \f$ H = I - tau v v^*\f$
+  * with
+  * \f$ v^T = [1 essential^T] \f$
+  * from the left to a vector or matrix.
+  *
+  * On input:
+  * \param essential the essential part of the vector \c v
+  * \param tau the scaling factor of the Householder transformation
+  * \param workspace a pointer to working space with at least
+  *                  this->cols() * essential.size() entries
+  *
+  * \sa MatrixBase::makeHouseholder(), MatrixBase::makeHouseholderInPlace(), 
+  *     MatrixBase::applyHouseholderOnTheRight()
+  */
+template<typename Derived>
+template<typename EssentialPart>
+void MatrixBase<Derived>::applyHouseholderOnTheLeft(
+  const EssentialPart& essential,
+  const Scalar& tau,
+  Scalar* workspace)
+{
+  if(rows() == 1)
+  {
+    *this *= Scalar(1)-tau;
+  }
+  else
+  {
+    Map<typename internal::plain_row_type<PlainObject>::type> tmp(workspace,cols());
+    Block<Derived, EssentialPart::SizeAtCompileTime, Derived::ColsAtCompileTime> bottom(derived(), 1, 0, rows()-1, cols());
+    tmp.noalias() = essential.adjoint() * bottom;
+    tmp += this->row(0);
+    this->row(0) -= tau * tmp;
+    bottom.noalias() -= tau * essential * tmp;
+  }
+}
+
+/** Apply the elementary reflector H given by
+  * \f$ H = I - tau v v^*\f$
+  * with
+  * \f$ v^T = [1 essential^T] \f$
+  * from the right to a vector or matrix.
+  *
+  * On input:
+  * \param essential the essential part of the vector \c v
+  * \param tau the scaling factor of the Householder transformation
+  * \param workspace a pointer to working space with at least
+  *                  this->cols() * essential.size() entries
+  *
+  * \sa MatrixBase::makeHouseholder(), MatrixBase::makeHouseholderInPlace(), 
+  *     MatrixBase::applyHouseholderOnTheLeft()
+  */
+template<typename Derived>
+template<typename EssentialPart>
+void MatrixBase<Derived>::applyHouseholderOnTheRight(
+  const EssentialPart& essential,
+  const Scalar& tau,
+  Scalar* workspace)
+{
+  if(cols() == 1)
+  {
+    *this *= Scalar(1)-tau;
+  }
+  else
+  {
+    Map<typename internal::plain_col_type<PlainObject>::type> tmp(workspace,rows());
+    Block<Derived, Derived::RowsAtCompileTime, EssentialPart::SizeAtCompileTime> right(derived(), 0, 1, rows(), cols()-1);
+    tmp.noalias() = right * essential.conjugate();
+    tmp += this->col(0);
+    this->col(0) -= tau * tmp;
+    right.noalias() -= tau * tmp * essential.transpose();
+  }
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_HOUSEHOLDER_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/Householder/HouseholderSequence.h b/vendor/eigen-3.2.8/Eigen/src/Householder/HouseholderSequence.h
new file mode 100644
index 0000000..d800ca1
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Householder/HouseholderSequence.h
@@ -0,0 +1,441 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HOUSEHOLDER_SEQUENCE_H
+#define EIGEN_HOUSEHOLDER_SEQUENCE_H
+
+namespace Eigen { 
+
+/** \ingroup Householder_Module
+  * \householder_module
+  * \class HouseholderSequence
+  * \brief Sequence of Householder reflections acting on subspaces with decreasing size
+  * \tparam VectorsType type of matrix containing the Householder vectors
+  * \tparam CoeffsType  type of vector containing the Householder coefficients
+  * \tparam Side        either OnTheLeft (the default) or OnTheRight
+  *
+  * This class represents a product sequence of Householder reflections where the first Householder reflection
+  * acts on the whole space, the second Householder reflection leaves the one-dimensional subspace spanned by
+  * the first unit vector invariant, the third Householder reflection leaves the two-dimensional subspace
+  * spanned by the first two unit vectors invariant, and so on up to the last reflection which leaves all but
+  * one dimensions invariant and acts only on the last dimension. Such sequences of Householder reflections
+  * are used in several algorithms to zero out certain parts of a matrix. Indeed, the methods
+  * HessenbergDecomposition::matrixQ(), Tridiagonalization::matrixQ(), HouseholderQR::householderQ(),
+  * and ColPivHouseholderQR::householderQ() all return a %HouseholderSequence.
+  *
+  * More precisely, the class %HouseholderSequence represents an \f$ n \times n \f$ matrix \f$ H \f$ of the
+  * form \f$ H = \prod_{i=0}^{n-1} H_i \f$ where the i-th Householder reflection is \f$ H_i = I - h_i v_i
+  * v_i^* \f$. The i-th Householder coefficient \f$ h_i \f$ is a scalar and the i-th Householder vector \f$
+  * v_i \f$ is a vector of the form
+  * \f[ 
+  * v_i = [\underbrace{0, \ldots, 0}_{i-1\mbox{ zeros}}, 1, \underbrace{*, \ldots,*}_{n-i\mbox{ arbitrary entries}} ]. 
+  * \f]
+  * The last \f$ n-i \f$ entries of \f$ v_i \f$ are called the essential part of the Householder vector.
+  *
+  * Typical usages are listed below, where H is a HouseholderSequence:
+  * \code
+  * A.applyOnTheRight(H);             // A = A * H
+  * A.applyOnTheLeft(H);              // A = H * A
+  * A.applyOnTheRight(H.adjoint());   // A = A * H^*
+  * A.applyOnTheLeft(H.adjoint());    // A = H^* * A
+  * MatrixXd Q = H;                   // conversion to a dense matrix
+  * \endcode
+  * In addition to the adjoint, you can also apply the inverse (=adjoint), the transpose, and the conjugate operators.
+  *
+  * See the documentation for HouseholderSequence(const VectorsType&, const CoeffsType&) for an example.
+  *
+  * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+  */
+
+namespace internal {
+
+template<typename VectorsType, typename CoeffsType, int Side>
+struct traits<HouseholderSequence<VectorsType,CoeffsType,Side> >
+{
+  typedef typename VectorsType::Scalar Scalar;
+  typedef typename VectorsType::Index Index;
+  typedef typename VectorsType::StorageKind StorageKind;
+  enum {
+    RowsAtCompileTime = Side==OnTheLeft ? traits<VectorsType>::RowsAtCompileTime
+                                        : traits<VectorsType>::ColsAtCompileTime,
+    ColsAtCompileTime = RowsAtCompileTime,
+    MaxRowsAtCompileTime = Side==OnTheLeft ? traits<VectorsType>::MaxRowsAtCompileTime
+                                           : traits<VectorsType>::MaxColsAtCompileTime,
+    MaxColsAtCompileTime = MaxRowsAtCompileTime,
+    Flags = 0
+  };
+};
+
+template<typename VectorsType, typename CoeffsType, int Side>
+struct hseq_side_dependent_impl
+{
+  typedef Block<const VectorsType, Dynamic, 1> EssentialVectorType;
+  typedef HouseholderSequence<VectorsType, CoeffsType, OnTheLeft> HouseholderSequenceType;
+  typedef typename VectorsType::Index Index;
+  static inline const EssentialVectorType essentialVector(const HouseholderSequenceType& h, Index k)
+  {
+    Index start = k+1+h.m_shift;
+    return Block<const VectorsType,Dynamic,1>(h.m_vectors, start, k, h.rows()-start, 1);
+  }
+};
+
+template<typename VectorsType, typename CoeffsType>
+struct hseq_side_dependent_impl<VectorsType, CoeffsType, OnTheRight>
+{
+  typedef Transpose<Block<const VectorsType, 1, Dynamic> > EssentialVectorType;
+  typedef HouseholderSequence<VectorsType, CoeffsType, OnTheRight> HouseholderSequenceType;
+  typedef typename VectorsType::Index Index;
+  static inline const EssentialVectorType essentialVector(const HouseholderSequenceType& h, Index k)
+  {
+    Index start = k+1+h.m_shift;
+    return Block<const VectorsType,1,Dynamic>(h.m_vectors, k, start, 1, h.rows()-start).transpose();
+  }
+};
+
+template<typename OtherScalarType, typename MatrixType> struct matrix_type_times_scalar_type
+{
+  typedef typename scalar_product_traits<OtherScalarType, typename MatrixType::Scalar>::ReturnType
+    ResultScalar;
+  typedef Matrix<ResultScalar, MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime,
+                 0, MatrixType::MaxRowsAtCompileTime, MatrixType::MaxColsAtCompileTime> Type;
+};
+
+} // end namespace internal
+
+template<typename VectorsType, typename CoeffsType, int Side> class HouseholderSequence
+  : public EigenBase<HouseholderSequence<VectorsType,CoeffsType,Side> >
+{
+    typedef typename internal::hseq_side_dependent_impl<VectorsType,CoeffsType,Side>::EssentialVectorType EssentialVectorType;
+  
+  public:
+    enum {
+      RowsAtCompileTime = internal::traits<HouseholderSequence>::RowsAtCompileTime,
+      ColsAtCompileTime = internal::traits<HouseholderSequence>::ColsAtCompileTime,
+      MaxRowsAtCompileTime = internal::traits<HouseholderSequence>::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = internal::traits<HouseholderSequence>::MaxColsAtCompileTime
+    };
+    typedef typename internal::traits<HouseholderSequence>::Scalar Scalar;
+    typedef typename VectorsType::Index Index;
+
+    typedef HouseholderSequence<
+      typename internal::conditional<NumTraits<Scalar>::IsComplex,
+        typename internal::remove_all<typename VectorsType::ConjugateReturnType>::type,
+        VectorsType>::type,
+      typename internal::conditional<NumTraits<Scalar>::IsComplex,
+        typename internal::remove_all<typename CoeffsType::ConjugateReturnType>::type,
+        CoeffsType>::type,
+      Side
+    > ConjugateReturnType;
+
+    /** \brief Constructor.
+      * \param[in]  v      %Matrix containing the essential parts of the Householder vectors
+      * \param[in]  h      Vector containing the Householder coefficients
+      *
+      * Constructs the Householder sequence with coefficients given by \p h and vectors given by \p v. The
+      * i-th Householder coefficient \f$ h_i \f$ is given by \p h(i) and the essential part of the i-th
+      * Householder vector \f$ v_i \f$ is given by \p v(k,i) with \p k > \p i (the subdiagonal part of the
+      * i-th column). If \p v has fewer columns than rows, then the Householder sequence contains as many
+      * Householder reflections as there are columns.
+      *
+      * \note The %HouseholderSequence object stores \p v and \p h by reference.
+      *
+      * Example: \include HouseholderSequence_HouseholderSequence.cpp
+      * Output: \verbinclude HouseholderSequence_HouseholderSequence.out
+      *
+      * \sa setLength(), setShift()
+      */
+    HouseholderSequence(const VectorsType& v, const CoeffsType& h)
+      : m_vectors(v), m_coeffs(h), m_trans(false), m_length(v.diagonalSize()),
+        m_shift(0)
+    {
+    }
+
+    /** \brief Copy constructor. */
+    HouseholderSequence(const HouseholderSequence& other)
+      : m_vectors(other.m_vectors),
+        m_coeffs(other.m_coeffs),
+        m_trans(other.m_trans),
+        m_length(other.m_length),
+        m_shift(other.m_shift)
+    {
+    }
+
+    /** \brief Number of rows of transformation viewed as a matrix.
+      * \returns Number of rows 
+      * \details This equals the dimension of the space that the transformation acts on.
+      */
+    Index rows() const { return Side==OnTheLeft ? m_vectors.rows() : m_vectors.cols(); }
+
+    /** \brief Number of columns of transformation viewed as a matrix.
+      * \returns Number of columns
+      * \details This equals the dimension of the space that the transformation acts on.
+      */
+    Index cols() const { return rows(); }
+
+    /** \brief Essential part of a Householder vector.
+      * \param[in]  k  Index of Householder reflection
+      * \returns    Vector containing non-trivial entries of k-th Householder vector
+      *
+      * This function returns the essential part of the Householder vector \f$ v_i \f$. This is a vector of
+      * length \f$ n-i \f$ containing the last \f$ n-i \f$ entries of the vector
+      * \f[ 
+      * v_i = [\underbrace{0, \ldots, 0}_{i-1\mbox{ zeros}}, 1, \underbrace{*, \ldots,*}_{n-i\mbox{ arbitrary entries}} ]. 
+      * \f]
+      * The index \f$ i \f$ equals \p k + shift(), corresponding to the k-th column of the matrix \p v
+      * passed to the constructor.
+      *
+      * \sa setShift(), shift()
+      */
+    const EssentialVectorType essentialVector(Index k) const
+    {
+      eigen_assert(k >= 0 && k < m_length);
+      return internal::hseq_side_dependent_impl<VectorsType,CoeffsType,Side>::essentialVector(*this, k);
+    }
+
+    /** \brief %Transpose of the Householder sequence. */
+    HouseholderSequence transpose() const
+    {
+      return HouseholderSequence(*this).setTrans(!m_trans);
+    }
+
+    /** \brief Complex conjugate of the Householder sequence. */
+    ConjugateReturnType conjugate() const
+    {
+      return ConjugateReturnType(m_vectors.conjugate(), m_coeffs.conjugate())
+             .setTrans(m_trans)
+             .setLength(m_length)
+             .setShift(m_shift);
+    }
+
+    /** \brief Adjoint (conjugate transpose) of the Householder sequence. */
+    ConjugateReturnType adjoint() const
+    {
+      return conjugate().setTrans(!m_trans);
+    }
+
+    /** \brief Inverse of the Householder sequence (equals the adjoint). */
+    ConjugateReturnType inverse() const { return adjoint(); }
+
+    /** \internal */
+    template<typename DestType> inline void evalTo(DestType& dst) const
+    {
+      Matrix<Scalar, DestType::RowsAtCompileTime, 1,
+             AutoAlign|ColMajor, DestType::MaxRowsAtCompileTime, 1> workspace(rows());
+      evalTo(dst, workspace);
+    }
+
+    /** \internal */
+    template<typename Dest, typename Workspace>
+    void evalTo(Dest& dst, Workspace& workspace) const
+    {
+      workspace.resize(rows());
+      Index vecs = m_length;
+      if(    internal::is_same<typename internal::remove_all<VectorsType>::type,Dest>::value
+          && internal::extract_data(dst) == internal::extract_data(m_vectors))
+      {
+        // in-place
+        dst.diagonal().setOnes();
+        dst.template triangularView<StrictlyUpper>().setZero();
+        for(Index k = vecs-1; k >= 0; --k)
+        {
+          Index cornerSize = rows() - k - m_shift;
+          if(m_trans)
+            dst.bottomRightCorner(cornerSize, cornerSize)
+               .applyHouseholderOnTheRight(essentialVector(k), m_coeffs.coeff(k), workspace.data());
+          else
+            dst.bottomRightCorner(cornerSize, cornerSize)
+               .applyHouseholderOnTheLeft(essentialVector(k), m_coeffs.coeff(k), workspace.data());
+
+          // clear the off diagonal vector
+          dst.col(k).tail(rows()-k-1).setZero();
+        }
+        // clear the remaining columns if needed
+        for(Index k = 0; k<cols()-vecs ; ++k)
+          dst.col(k).tail(rows()-k-1).setZero();
+      }
+      else
+      {
+        dst.setIdentity(rows(), rows());
+        for(Index k = vecs-1; k >= 0; --k)
+        {
+          Index cornerSize = rows() - k - m_shift;
+          if(m_trans)
+            dst.bottomRightCorner(cornerSize, cornerSize)
+               .applyHouseholderOnTheRight(essentialVector(k), m_coeffs.coeff(k), &workspace.coeffRef(0));
+          else
+            dst.bottomRightCorner(cornerSize, cornerSize)
+               .applyHouseholderOnTheLeft(essentialVector(k), m_coeffs.coeff(k), &workspace.coeffRef(0));
+        }
+      }
+    }
+
+    /** \internal */
+    template<typename Dest> inline void applyThisOnTheRight(Dest& dst) const
+    {
+      Matrix<Scalar,1,Dest::RowsAtCompileTime,RowMajor,1,Dest::MaxRowsAtCompileTime> workspace(dst.rows());
+      applyThisOnTheRight(dst, workspace);
+    }
+
+    /** \internal */
+    template<typename Dest, typename Workspace>
+    inline void applyThisOnTheRight(Dest& dst, Workspace& workspace) const
+    {
+      workspace.resize(dst.rows());
+      for(Index k = 0; k < m_length; ++k)
+      {
+        Index actual_k = m_trans ? m_length-k-1 : k;
+        dst.rightCols(rows()-m_shift-actual_k)
+           .applyHouseholderOnTheRight(essentialVector(actual_k), m_coeffs.coeff(actual_k), workspace.data());
+      }
+    }
+
+    /** \internal */
+    template<typename Dest> inline void applyThisOnTheLeft(Dest& dst) const
+    {
+      Matrix<Scalar,1,Dest::ColsAtCompileTime,RowMajor,1,Dest::MaxColsAtCompileTime> workspace(dst.cols());
+      applyThisOnTheLeft(dst, workspace);
+    }
+
+    /** \internal */
+    template<typename Dest, typename Workspace>
+    inline void applyThisOnTheLeft(Dest& dst, Workspace& workspace) const
+    {
+      workspace.resize(dst.cols());
+      for(Index k = 0; k < m_length; ++k)
+      {
+        Index actual_k = m_trans ? k : m_length-k-1;
+        dst.bottomRows(rows()-m_shift-actual_k)
+           .applyHouseholderOnTheLeft(essentialVector(actual_k), m_coeffs.coeff(actual_k), workspace.data());
+      }
+    }
+
+    /** \brief Computes the product of a Householder sequence with a matrix.
+      * \param[in]  other  %Matrix being multiplied.
+      * \returns    Expression object representing the product.
+      *
+      * This function computes \f$ HM \f$ where \f$ H \f$ is the Householder sequence represented by \p *this
+      * and \f$ M \f$ is the matrix \p other.
+      */
+    template<typename OtherDerived>
+    typename internal::matrix_type_times_scalar_type<Scalar, OtherDerived>::Type operator*(const MatrixBase<OtherDerived>& other) const
+    {
+      typename internal::matrix_type_times_scalar_type<Scalar, OtherDerived>::Type
+        res(other.template cast<typename internal::matrix_type_times_scalar_type<Scalar,OtherDerived>::ResultScalar>());
+      applyThisOnTheLeft(res);
+      return res;
+    }
+
+    template<typename _VectorsType, typename _CoeffsType, int _Side> friend struct internal::hseq_side_dependent_impl;
+
+    /** \brief Sets the length of the Householder sequence.
+      * \param [in]  length  New value for the length.
+      *
+      * By default, the length \f$ n \f$ of the Householder sequence \f$ H = H_0 H_1 \ldots H_{n-1} \f$ is set
+      * to the number of columns of the matrix \p v passed to the constructor, or the number of rows if that
+      * is smaller. After this function is called, the length equals \p length.
+      *
+      * \sa length()
+      */
+    HouseholderSequence& setLength(Index length)
+    {
+      m_length = length;
+      return *this;
+    }
+
+    /** \brief Sets the shift of the Householder sequence.
+      * \param [in]  shift  New value for the shift.
+      *
+      * By default, a %HouseholderSequence object represents \f$ H = H_0 H_1 \ldots H_{n-1} \f$ and the i-th
+      * column of the matrix \p v passed to the constructor corresponds to the i-th Householder
+      * reflection. After this function is called, the object represents \f$ H = H_{\mathrm{shift}}
+      * H_{\mathrm{shift}+1} \ldots H_{n-1} \f$ and the i-th column of \p v corresponds to the (shift+i)-th
+      * Householder reflection.
+      *
+      * \sa shift()
+      */
+    HouseholderSequence& setShift(Index shift)
+    {
+      m_shift = shift;
+      return *this;
+    }
+
+    Index length() const { return m_length; }  /**< \brief Returns the length of the Householder sequence. */
+    Index shift() const { return m_shift; }    /**< \brief Returns the shift of the Householder sequence. */
+
+    /* Necessary for .adjoint() and .conjugate() */
+    template <typename VectorsType2, typename CoeffsType2, int Side2> friend class HouseholderSequence;
+
+  protected:
+
+    /** \brief Sets the transpose flag.
+      * \param [in]  trans  New value of the transpose flag.
+      *
+      * By default, the transpose flag is not set. If the transpose flag is set, then this object represents 
+      * \f$ H^T = H_{n-1}^T \ldots H_1^T H_0^T \f$ instead of \f$ H = H_0 H_1 \ldots H_{n-1} \f$.
+      *
+      * \sa trans()
+      */
+    HouseholderSequence& setTrans(bool trans)
+    {
+      m_trans = trans;
+      return *this;
+    }
+
+    bool trans() const { return m_trans; }     /**< \brief Returns the transpose flag. */
+
+    typename VectorsType::Nested m_vectors;
+    typename CoeffsType::Nested m_coeffs;
+    bool m_trans;
+    Index m_length;
+    Index m_shift;
+};
+
+/** \brief Computes the product of a matrix with a Householder sequence.
+  * \param[in]  other  %Matrix being multiplied.
+  * \param[in]  h      %HouseholderSequence being multiplied.
+  * \returns    Expression object representing the product.
+  *
+  * This function computes \f$ MH \f$ where \f$ M \f$ is the matrix \p other and \f$ H \f$ is the
+  * Householder sequence represented by \p h.
+  */
+template<typename OtherDerived, typename VectorsType, typename CoeffsType, int Side>
+typename internal::matrix_type_times_scalar_type<typename VectorsType::Scalar,OtherDerived>::Type operator*(const MatrixBase<OtherDerived>& other, const HouseholderSequence<VectorsType,CoeffsType,Side>& h)
+{
+  typename internal::matrix_type_times_scalar_type<typename VectorsType::Scalar,OtherDerived>::Type
+    res(other.template cast<typename internal::matrix_type_times_scalar_type<typename VectorsType::Scalar,OtherDerived>::ResultScalar>());
+  h.applyThisOnTheRight(res);
+  return res;
+}
+
+/** \ingroup Householder_Module \householder_module
+  * \brief Convenience function for constructing a Householder sequence. 
+  * \returns A HouseholderSequence constructed from the specified arguments.
+  */
+template<typename VectorsType, typename CoeffsType>
+HouseholderSequence<VectorsType,CoeffsType> householderSequence(const VectorsType& v, const CoeffsType& h)
+{
+  return HouseholderSequence<VectorsType,CoeffsType,OnTheLeft>(v, h);
+}
+
+/** \ingroup Householder_Module \householder_module
+  * \brief Convenience function for constructing a Householder sequence. 
+  * \returns A HouseholderSequence constructed from the specified arguments.
+  * \details This function differs from householderSequence() in that the template argument \p OnTheSide of
+  * the constructed HouseholderSequence is set to OnTheRight, instead of the default OnTheLeft.
+  */
+template<typename VectorsType, typename CoeffsType>
+HouseholderSequence<VectorsType,CoeffsType,OnTheRight> rightHouseholderSequence(const VectorsType& v, const CoeffsType& h)
+{
+  return HouseholderSequence<VectorsType,CoeffsType,OnTheRight>(v, h);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_HOUSEHOLDER_SEQUENCE_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h b/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
new file mode 100644
index 0000000..1f3c060
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
@@ -0,0 +1,149 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BASIC_PRECONDITIONERS_H
+#define EIGEN_BASIC_PRECONDITIONERS_H
+
+namespace Eigen { 
+
+/** \ingroup IterativeLinearSolvers_Module
+  * \brief A preconditioner based on the digonal entries
+  *
+  * This class allows to approximately solve for A.x = b problems assuming A is a diagonal matrix.
+  * In other words, this preconditioner neglects all off diagonal entries and, in Eigen's language, solves for:
+  * \code
+  * A.diagonal().asDiagonal() . x = b
+  * \endcode
+  *
+  * \tparam _Scalar the type of the scalar.
+  *
+  * This preconditioner is suitable for both selfadjoint and general problems.
+  * The diagonal entries are pre-inverted and stored into a dense vector.
+  *
+  * \note A variant that has yet to be implemented would attempt to preserve the norm of each column.
+  *
+  */
+template <typename _Scalar>
+class DiagonalPreconditioner
+{
+    typedef _Scalar Scalar;
+    typedef Matrix<Scalar,Dynamic,1> Vector;
+    typedef typename Vector::Index Index;
+
+  public:
+    // this typedef is only to export the scalar type and compile-time dimensions to solve_retval
+    typedef Matrix<Scalar,Dynamic,Dynamic> MatrixType;
+
+    DiagonalPreconditioner() : m_isInitialized(false) {}
+
+    template<typename MatType>
+    DiagonalPreconditioner(const MatType& mat) : m_invdiag(mat.cols())
+    {
+      compute(mat);
+    }
+
+    Index rows() const { return m_invdiag.size(); }
+    Index cols() const { return m_invdiag.size(); }
+    
+    template<typename MatType>
+    DiagonalPreconditioner& analyzePattern(const MatType& )
+    {
+      return *this;
+    }
+    
+    template<typename MatType>
+    DiagonalPreconditioner& factorize(const MatType& mat)
+    {
+      m_invdiag.resize(mat.cols());
+      for(int j=0; j<mat.outerSize(); ++j)
+      {
+        typename MatType::InnerIterator it(mat,j);
+        while(it && it.index()!=j) ++it;
+        if(it && it.index()==j && it.value()!=Scalar(0))
+          m_invdiag(j) = Scalar(1)/it.value();
+        else
+          m_invdiag(j) = Scalar(1);
+      }
+      m_isInitialized = true;
+      return *this;
+    }
+    
+    template<typename MatType>
+    DiagonalPreconditioner& compute(const MatType& mat)
+    {
+      return factorize(mat);
+    }
+
+    template<typename Rhs, typename Dest>
+    void _solve(const Rhs& b, Dest& x) const
+    {
+      x = m_invdiag.array() * b.array() ;
+    }
+
+    template<typename Rhs> inline const internal::solve_retval<DiagonalPreconditioner, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "DiagonalPreconditioner is not initialized.");
+      eigen_assert(m_invdiag.size()==b.rows()
+                && "DiagonalPreconditioner::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<DiagonalPreconditioner, Rhs>(*this, b.derived());
+    }
+
+  protected:
+    Vector m_invdiag;
+    bool m_isInitialized;
+};
+
+namespace internal {
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<DiagonalPreconditioner<_MatrixType>, Rhs>
+  : solve_retval_base<DiagonalPreconditioner<_MatrixType>, Rhs>
+{
+  typedef DiagonalPreconditioner<_MatrixType> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+}
+
+/** \ingroup IterativeLinearSolvers_Module
+  * \brief A naive preconditioner which approximates any matrix as the identity matrix
+  *
+  * \sa class DiagonalPreconditioner
+  */
+class IdentityPreconditioner
+{
+  public:
+
+    IdentityPreconditioner() {}
+
+    template<typename MatrixType>
+    IdentityPreconditioner(const MatrixType& ) {}
+    
+    template<typename MatrixType>
+    IdentityPreconditioner& analyzePattern(const MatrixType& ) { return *this; }
+    
+    template<typename MatrixType>
+    IdentityPreconditioner& factorize(const MatrixType& ) { return *this; }
+
+    template<typename MatrixType>
+    IdentityPreconditioner& compute(const MatrixType& ) { return *this; }
+    
+    template<typename Rhs>
+    inline const Rhs& solve(const Rhs& b) const { return b; }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_BASIC_PRECONDITIONERS_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h b/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
new file mode 100644
index 0000000..5512219
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
@@ -0,0 +1,263 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BICGSTAB_H
+#define EIGEN_BICGSTAB_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \internal Low-level bi conjugate gradient stabilized algorithm
+  * \param mat The matrix A
+  * \param rhs The right hand side vector b
+  * \param x On input and initial solution, on output the computed solution.
+  * \param precond A preconditioner being able to efficiently solve for an
+  *                approximation of Ax=b (regardless of b)
+  * \param iters On input the max number of iteration, on output the number of performed iterations.
+  * \param tol_error On input the tolerance error, on output an estimation of the relative error.
+  * \return false in the case of numerical issue, for example a break down of BiCGSTAB. 
+  */
+template<typename MatrixType, typename Rhs, typename Dest, typename Preconditioner>
+bool bicgstab(const MatrixType& mat, const Rhs& rhs, Dest& x,
+              const Preconditioner& precond, int& iters,
+              typename Dest::RealScalar& tol_error)
+{
+  using std::sqrt;
+  using std::abs;
+  typedef typename Dest::RealScalar RealScalar;
+  typedef typename Dest::Scalar Scalar;
+  typedef Matrix<Scalar,Dynamic,1> VectorType;
+  RealScalar tol = tol_error;
+  int maxIters = iters;
+
+  int n = mat.cols();
+  VectorType r  = rhs - mat * x;
+  VectorType r0 = r;
+  
+  RealScalar r0_sqnorm = r0.squaredNorm();
+  RealScalar rhs_sqnorm = rhs.squaredNorm();
+  if(rhs_sqnorm == 0)
+  {
+    x.setZero();
+    return true;
+  }
+  Scalar rho    = 1;
+  Scalar alpha  = 1;
+  Scalar w      = 1;
+  
+  VectorType v = VectorType::Zero(n), p = VectorType::Zero(n);
+  VectorType y(n),  z(n);
+  VectorType kt(n), ks(n);
+
+  VectorType s(n), t(n);
+
+  RealScalar tol2 = tol*tol;
+  RealScalar eps2 = NumTraits<Scalar>::epsilon()*NumTraits<Scalar>::epsilon();
+  int i = 0;
+  int restarts = 0;
+
+  while ( r.squaredNorm()/rhs_sqnorm > tol2 && i<maxIters )
+  {
+    Scalar rho_old = rho;
+
+    rho = r0.dot(r);
+    if (abs(rho) < eps2*r0_sqnorm)
+    {
+      // The new residual vector became too orthogonal to the arbitrarily choosen direction r0
+      // Let's restart with a new r0:
+      r0 = r;
+      rho = r0_sqnorm = r.squaredNorm();
+      if(restarts++ == 0)
+        i = 0;
+    }
+    Scalar beta = (rho/rho_old) * (alpha / w);
+    p = r + beta * (p - w * v);
+    
+    y = precond.solve(p);
+    
+    v.noalias() = mat * y;
+
+    alpha = rho / r0.dot(v);
+    s = r - alpha * v;
+
+    z = precond.solve(s);
+    t.noalias() = mat * z;
+
+    RealScalar tmp = t.squaredNorm();
+    if(tmp>RealScalar(0))
+      w = t.dot(s) / tmp;
+    else
+      w = Scalar(0);
+    x += alpha * y + w * z;
+    r = s - w * t;
+    ++i;
+  }
+  tol_error = sqrt(r.squaredNorm()/rhs_sqnorm);
+  iters = i;
+  return true; 
+}
+
+}
+
+template< typename _MatrixType,
+          typename _Preconditioner = DiagonalPreconditioner<typename _MatrixType::Scalar> >
+class BiCGSTAB;
+
+namespace internal {
+
+template< typename _MatrixType, typename _Preconditioner>
+struct traits<BiCGSTAB<_MatrixType,_Preconditioner> >
+{
+  typedef _MatrixType MatrixType;
+  typedef _Preconditioner Preconditioner;
+};
+
+}
+
+/** \ingroup IterativeLinearSolvers_Module
+  * \brief A bi conjugate gradient stabilized solver for sparse square problems
+  *
+  * This class allows to solve for A.x = b sparse linear problems using a bi conjugate gradient
+  * stabilized algorithm. The vectors x and b can be either dense or sparse.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, can be a dense or a sparse matrix.
+  * \tparam _Preconditioner the type of the preconditioner. Default is DiagonalPreconditioner
+  *
+  * The maximal number of iterations and tolerance value can be controlled via the setMaxIterations()
+  * and setTolerance() methods. The defaults are the size of the problem for the maximal number of iterations
+  * and NumTraits<Scalar>::epsilon() for the tolerance.
+  * 
+  * This class can be used as the direct solver classes. Here is a typical usage example:
+  * \code
+  * int n = 10000;
+  * VectorXd x(n), b(n);
+  * SparseMatrix<double> A(n,n);
+  * // fill A and b
+  * BiCGSTAB<SparseMatrix<double> > solver;
+  * solver.compute(A);
+  * x = solver.solve(b);
+  * std::cout << "#iterations:     " << solver.iterations() << std::endl;
+  * std::cout << "estimated error: " << solver.error()      << std::endl;
+  * // update b, and solve again
+  * x = solver.solve(b);
+  * \endcode
+  * 
+  * By default the iterations start with x=0 as an initial guess of the solution.
+  * One can control the start using the solveWithGuess() method.
+  * 
+  * \sa class SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
+  */
+template< typename _MatrixType, typename _Preconditioner>
+class BiCGSTAB : public IterativeSolverBase<BiCGSTAB<_MatrixType,_Preconditioner> >
+{
+  typedef IterativeSolverBase<BiCGSTAB> Base;
+  using Base::mp_matrix;
+  using Base::m_error;
+  using Base::m_iterations;
+  using Base::m_info;
+  using Base::m_isInitialized;
+public:
+  typedef _MatrixType MatrixType;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::RealScalar RealScalar;
+  typedef _Preconditioner Preconditioner;
+
+public:
+
+  /** Default constructor. */
+  BiCGSTAB() : Base() {}
+
+  /** Initialize the solver with matrix \a A for further \c Ax=b solving.
+    * 
+    * This constructor is a shortcut for the default constructor followed
+    * by a call to compute().
+    * 
+    * \warning this class stores a reference to the matrix A as well as some
+    * precomputed values that depend on it. Therefore, if \a A is changed
+    * this class becomes invalid. Call compute() to update it with the new
+    * matrix A, or modify a copy of A.
+    */
+  template<typename MatrixDerived>
+  explicit BiCGSTAB(const EigenBase<MatrixDerived>& A) : Base(A.derived()) {}
+
+  ~BiCGSTAB() {}
+  
+  /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A
+    * \a x0 as an initial solution.
+    *
+    * \sa compute()
+    */
+  template<typename Rhs,typename Guess>
+  inline const internal::solve_retval_with_guess<BiCGSTAB, Rhs, Guess>
+  solveWithGuess(const MatrixBase<Rhs>& b, const Guess& x0) const
+  {
+    eigen_assert(m_isInitialized && "BiCGSTAB is not initialized.");
+    eigen_assert(Base::rows()==b.rows()
+              && "BiCGSTAB::solve(): invalid number of rows of the right hand side matrix b");
+    return internal::solve_retval_with_guess
+            <BiCGSTAB, Rhs, Guess>(*this, b.derived(), x0);
+  }
+  
+  /** \internal */
+  template<typename Rhs,typename Dest>
+  void _solveWithGuess(const Rhs& b, Dest& x) const
+  {    
+    bool failed = false;
+    for(int j=0; j<b.cols(); ++j)
+    {
+      m_iterations = Base::maxIterations();
+      m_error = Base::m_tolerance;
+      
+      typename Dest::ColXpr xj(x,j);
+      if(!internal::bicgstab(*mp_matrix, b.col(j), xj, Base::m_preconditioner, m_iterations, m_error))
+        failed = true;
+    }
+    m_info = failed ? NumericalIssue
+           : m_error <= Base::m_tolerance ? Success
+           : NoConvergence;
+    m_isInitialized = true;
+  }
+
+  /** \internal */
+  template<typename Rhs,typename Dest>
+  void _solve(const Rhs& b, Dest& x) const
+  {
+//     x.setZero();
+  x = b;
+    _solveWithGuess(b,x);
+  }
+
+protected:
+
+};
+
+
+namespace internal {
+
+  template<typename _MatrixType, typename _Preconditioner, typename Rhs>
+struct solve_retval<BiCGSTAB<_MatrixType, _Preconditioner>, Rhs>
+  : solve_retval_base<BiCGSTAB<_MatrixType, _Preconditioner>, Rhs>
+{
+  typedef BiCGSTAB<_MatrixType, _Preconditioner> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BICGSTAB_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/IterativeLinearSolvers/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h b/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
new file mode 100644
index 0000000..7dd4010
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
@@ -0,0 +1,258 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CONJUGATE_GRADIENT_H
+#define EIGEN_CONJUGATE_GRADIENT_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \internal Low-level conjugate gradient algorithm
+  * \param mat The matrix A
+  * \param rhs The right hand side vector b
+  * \param x On input and initial solution, on output the computed solution.
+  * \param precond A preconditioner being able to efficiently solve for an
+  *                approximation of Ax=b (regardless of b)
+  * \param iters On input the max number of iteration, on output the number of performed iterations.
+  * \param tol_error On input the tolerance error, on output an estimation of the relative error.
+  */
+template<typename MatrixType, typename Rhs, typename Dest, typename Preconditioner>
+EIGEN_DONT_INLINE
+void conjugate_gradient(const MatrixType& mat, const Rhs& rhs, Dest& x,
+                        const Preconditioner& precond, int& iters,
+                        typename Dest::RealScalar& tol_error)
+{
+  using std::sqrt;
+  using std::abs;
+  typedef typename Dest::RealScalar RealScalar;
+  typedef typename Dest::Scalar Scalar;
+  typedef Matrix<Scalar,Dynamic,1> VectorType;
+  
+  RealScalar tol = tol_error;
+  int maxIters = iters;
+  
+  int n = mat.cols();
+
+  VectorType residual = rhs - mat * x; //initial residual
+
+  RealScalar rhsNorm2 = rhs.squaredNorm();
+  if(rhsNorm2 == 0) 
+  {
+    x.setZero();
+    iters = 0;
+    tol_error = 0;
+    return;
+  }
+  RealScalar threshold = tol*tol*rhsNorm2;
+  RealScalar residualNorm2 = residual.squaredNorm();
+  if (residualNorm2 < threshold)
+  {
+    iters = 0;
+    tol_error = sqrt(residualNorm2 / rhsNorm2);
+    return;
+  }
+  
+  VectorType p(n);
+  p = precond.solve(residual);      //initial search direction
+
+  VectorType z(n), tmp(n);
+  RealScalar absNew = numext::real(residual.dot(p));  // the square of the absolute value of r scaled by invM
+  int i = 0;
+  while(i < maxIters)
+  {
+    tmp.noalias() = mat * p;              // the bottleneck of the algorithm
+
+    Scalar alpha = absNew / p.dot(tmp);   // the amount we travel on dir
+    x += alpha * p;                       // update solution
+    residual -= alpha * tmp;              // update residue
+    
+    residualNorm2 = residual.squaredNorm();
+    if(residualNorm2 < threshold)
+      break;
+    
+    z = precond.solve(residual);          // approximately solve for "A z = residual"
+
+    RealScalar absOld = absNew;
+    absNew = numext::real(residual.dot(z));     // update the absolute value of r
+    RealScalar beta = absNew / absOld;            // calculate the Gram-Schmidt value used to create the new search direction
+    p = z + beta * p;                             // update search direction
+    i++;
+  }
+  tol_error = sqrt(residualNorm2 / rhsNorm2);
+  iters = i;
+}
+
+}
+
+template< typename _MatrixType, int _UpLo=Lower,
+          typename _Preconditioner = DiagonalPreconditioner<typename _MatrixType::Scalar> >
+class ConjugateGradient;
+
+namespace internal {
+
+template< typename _MatrixType, int _UpLo, typename _Preconditioner>
+struct traits<ConjugateGradient<_MatrixType,_UpLo,_Preconditioner> >
+{
+  typedef _MatrixType MatrixType;
+  typedef _Preconditioner Preconditioner;
+};
+
+}
+
+/** \ingroup IterativeLinearSolvers_Module
+  * \brief A conjugate gradient solver for sparse self-adjoint problems
+  *
+  * This class allows to solve for A.x = b sparse linear problems using a conjugate gradient algorithm.
+  * The sparse matrix A must be selfadjoint. The vectors x and b can be either dense or sparse.
+  *
+  * \tparam _MatrixType the type of the matrix A, can be a dense or a sparse matrix.
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower,
+  *               Upper, or Lower|Upper in which the full matrix entries will be considered. Default is Lower.
+  * \tparam _Preconditioner the type of the preconditioner. Default is DiagonalPreconditioner
+  *
+  * The maximal number of iterations and tolerance value can be controlled via the setMaxIterations()
+  * and setTolerance() methods. The defaults are the size of the problem for the maximal number of iterations
+  * and NumTraits<Scalar>::epsilon() for the tolerance.
+  * 
+  * This class can be used as the direct solver classes. Here is a typical usage example:
+  * \code
+  * int n = 10000;
+  * VectorXd x(n), b(n);
+  * SparseMatrix<double> A(n,n);
+  * // fill A and b
+  * ConjugateGradient<SparseMatrix<double> > cg;
+  * cg.compute(A);
+  * x = cg.solve(b);
+  * std::cout << "#iterations:     " << cg.iterations() << std::endl;
+  * std::cout << "estimated error: " << cg.error()      << std::endl;
+  * // update b, and solve again
+  * x = cg.solve(b);
+  * \endcode
+  * 
+  * By default the iterations start with x=0 as an initial guess of the solution.
+  * One can control the start using the solveWithGuess() method.
+  * 
+  * ConjugateGradient can also be used in a matrix-free context, see the following \link MatrixfreeSolverExample example \endlink.
+  *
+  * \sa class SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
+  */
+template< typename _MatrixType, int _UpLo, typename _Preconditioner>
+class ConjugateGradient : public IterativeSolverBase<ConjugateGradient<_MatrixType,_UpLo,_Preconditioner> >
+{
+  typedef IterativeSolverBase<ConjugateGradient> Base;
+  using Base::mp_matrix;
+  using Base::m_error;
+  using Base::m_iterations;
+  using Base::m_info;
+  using Base::m_isInitialized;
+public:
+  typedef _MatrixType MatrixType;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::RealScalar RealScalar;
+  typedef _Preconditioner Preconditioner;
+
+  enum {
+    UpLo = _UpLo
+  };
+
+public:
+
+  /** Default constructor. */
+  ConjugateGradient() : Base() {}
+
+  /** Initialize the solver with matrix \a A for further \c Ax=b solving.
+    * 
+    * This constructor is a shortcut for the default constructor followed
+    * by a call to compute().
+    * 
+    * \warning this class stores a reference to the matrix A as well as some
+    * precomputed values that depend on it. Therefore, if \a A is changed
+    * this class becomes invalid. Call compute() to update it with the new
+    * matrix A, or modify a copy of A.
+    */
+  template<typename MatrixDerived>
+  explicit ConjugateGradient(const EigenBase<MatrixDerived>& A) : Base(A.derived()) {}
+
+  ~ConjugateGradient() {}
+  
+  /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A
+    * \a x0 as an initial solution.
+    *
+    * \sa compute()
+    */
+  template<typename Rhs,typename Guess>
+  inline const internal::solve_retval_with_guess<ConjugateGradient, Rhs, Guess>
+  solveWithGuess(const MatrixBase<Rhs>& b, const Guess& x0) const
+  {
+    eigen_assert(m_isInitialized && "ConjugateGradient is not initialized.");
+    eigen_assert(Base::rows()==b.rows()
+              && "ConjugateGradient::solve(): invalid number of rows of the right hand side matrix b");
+    return internal::solve_retval_with_guess
+            <ConjugateGradient, Rhs, Guess>(*this, b.derived(), x0);
+  }
+
+  /** \internal */
+  template<typename Rhs,typename Dest>
+  void _solveWithGuess(const Rhs& b, Dest& x) const
+  {
+    typedef typename internal::conditional<UpLo==(Lower|Upper),
+                                           const MatrixType&,
+                                           SparseSelfAdjointView<const MatrixType, UpLo>
+                                          >::type MatrixWrapperType;
+    m_iterations = Base::maxIterations();
+    m_error = Base::m_tolerance;
+
+    for(int j=0; j<b.cols(); ++j)
+    {
+      m_iterations = Base::maxIterations();
+      m_error = Base::m_tolerance;
+
+      typename Dest::ColXpr xj(x,j);
+      internal::conjugate_gradient(MatrixWrapperType(*mp_matrix), b.col(j), xj, Base::m_preconditioner, m_iterations, m_error);
+    }
+
+    m_isInitialized = true;
+    m_info = m_error <= Base::m_tolerance ? Success : NoConvergence;
+  }
+  
+  /** \internal */
+  template<typename Rhs,typename Dest>
+  void _solve(const Rhs& b, Dest& x) const
+  {
+    x.setZero();
+    _solveWithGuess(b,x);
+  }
+
+protected:
+
+};
+
+
+namespace internal {
+
+template<typename _MatrixType, int _UpLo, typename _Preconditioner, typename Rhs>
+struct solve_retval<ConjugateGradient<_MatrixType,_UpLo,_Preconditioner>, Rhs>
+  : solve_retval_base<ConjugateGradient<_MatrixType,_UpLo,_Preconditioner>, Rhs>
+{
+  typedef ConjugateGradient<_MatrixType,_UpLo,_Preconditioner> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_CONJUGATE_GRADIENT_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h b/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
new file mode 100644
index 0000000..d3f37fe
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
@@ -0,0 +1,478 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_INCOMPLETE_LUT_H
+#define EIGEN_INCOMPLETE_LUT_H
+
+
+namespace Eigen { 
+
+namespace internal {
+    
+/** \internal
+  * Compute a quick-sort split of a vector 
+  * On output, the vector row is permuted such that its elements satisfy
+  * abs(row(i)) >= abs(row(ncut)) if i<ncut
+  * abs(row(i)) <= abs(row(ncut)) if i>ncut 
+  * \param row The vector of values
+  * \param ind The array of index for the elements in @p row
+  * \param ncut  The number of largest elements to keep
+  **/ 
+template <typename VectorV, typename VectorI, typename Index>
+Index QuickSplit(VectorV &row, VectorI &ind, Index ncut)
+{
+  typedef typename VectorV::RealScalar RealScalar;
+  using std::swap;
+  using std::abs;
+  Index mid;
+  Index n = row.size(); /* length of the vector */
+  Index first, last ;
+  
+  ncut--; /* to fit the zero-based indices */
+  first = 0; 
+  last = n-1; 
+  if (ncut < first || ncut > last ) return 0;
+  
+  do {
+    mid = first; 
+    RealScalar abskey = abs(row(mid)); 
+    for (Index j = first + 1; j <= last; j++) {
+      if ( abs(row(j)) > abskey) {
+        ++mid;
+        swap(row(mid), row(j));
+        swap(ind(mid), ind(j));
+      }
+    }
+    /* Interchange for the pivot element */
+    swap(row(mid), row(first));
+    swap(ind(mid), ind(first));
+    
+    if (mid > ncut) last = mid - 1;
+    else if (mid < ncut ) first = mid + 1; 
+  } while (mid != ncut );
+  
+  return 0; /* mid is equal to ncut */ 
+}
+
+}// end namespace internal
+
+/** \ingroup IterativeLinearSolvers_Module
+  * \class IncompleteLUT
+  * \brief Incomplete LU factorization with dual-threshold strategy
+  *
+  * During the numerical factorization, two dropping rules are used :
+  *  1) any element whose magnitude is less than some tolerance is dropped.
+  *    This tolerance is obtained by multiplying the input tolerance @p droptol 
+  *    by the average magnitude of all the original elements in the current row.
+  *  2) After the elimination of the row, only the @p fill largest elements in 
+  *    the L part and the @p fill largest elements in the U part are kept 
+  *    (in addition to the diagonal element ). Note that @p fill is computed from 
+  *    the input parameter @p fillfactor which is used the ratio to control the fill_in 
+  *    relatively to the initial number of nonzero elements.
+  * 
+  * The two extreme cases are when @p droptol=0 (to keep all the @p fill*2 largest elements)
+  * and when @p fill=n/2 with @p droptol being different to zero. 
+  * 
+  * References : Yousef Saad, ILUT: A dual threshold incomplete LU factorization, 
+  *              Numerical Linear Algebra with Applications, 1(4), pp 387-402, 1994.
+  * 
+  * NOTE : The following implementation is derived from the ILUT implementation
+  * in the SPARSKIT package, Copyright (C) 2005, the Regents of the University of Minnesota 
+  *  released under the terms of the GNU LGPL: 
+  *    http://www-users.cs.umn.edu/~saad/software/SPARSKIT/README
+  * However, Yousef Saad gave us permission to relicense his ILUT code to MPL2.
+  * See the Eigen mailing list archive, thread: ILUT, date: July 8, 2012:
+  *   http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2012/07/msg00064.html
+  * alternatively, on GMANE:
+  *   http://comments.gmane.org/gmane.comp.lib.eigen/3302
+  */
+template <typename _Scalar>
+class IncompleteLUT : internal::noncopyable
+{
+    typedef _Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef Matrix<Scalar,Dynamic,1> Vector;
+    typedef SparseMatrix<Scalar,RowMajor> FactorType;
+    typedef SparseMatrix<Scalar,ColMajor> PermutType;
+    typedef typename FactorType::Index Index;
+
+  public:
+    typedef Matrix<Scalar,Dynamic,Dynamic> MatrixType;
+    
+    IncompleteLUT()
+      : m_droptol(NumTraits<Scalar>::dummy_precision()), m_fillfactor(10),
+        m_analysisIsOk(false), m_factorizationIsOk(false), m_isInitialized(false)
+    {}
+    
+    template<typename MatrixType>
+    IncompleteLUT(const MatrixType& mat, const RealScalar& droptol=NumTraits<Scalar>::dummy_precision(), int fillfactor = 10)
+      : m_droptol(droptol),m_fillfactor(fillfactor),
+        m_analysisIsOk(false),m_factorizationIsOk(false),m_isInitialized(false)
+    {
+      eigen_assert(fillfactor != 0);
+      compute(mat); 
+    }
+    
+    Index rows() const { return m_lu.rows(); }
+    
+    Index cols() const { return m_lu.cols(); }
+
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix.appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "IncompleteLUT is not initialized.");
+      return m_info;
+    }
+    
+    template<typename MatrixType>
+    void analyzePattern(const MatrixType& amat);
+    
+    template<typename MatrixType>
+    void factorize(const MatrixType& amat);
+    
+    /**
+      * Compute an incomplete LU factorization with dual threshold on the matrix mat
+      * No pivoting is done in this version
+      * 
+      **/
+    template<typename MatrixType>
+    IncompleteLUT<Scalar>& compute(const MatrixType& amat)
+    {
+      analyzePattern(amat); 
+      factorize(amat);
+      return *this;
+    }
+
+    void setDroptol(const RealScalar& droptol); 
+    void setFillfactor(int fillfactor); 
+    
+    template<typename Rhs, typename Dest>
+    void _solve(const Rhs& b, Dest& x) const
+    {
+      x = m_Pinv * b;
+      x = m_lu.template triangularView<UnitLower>().solve(x);
+      x = m_lu.template triangularView<Upper>().solve(x);
+      x = m_P * x; 
+    }
+
+    template<typename Rhs> inline const internal::solve_retval<IncompleteLUT, Rhs>
+     solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "IncompleteLUT is not initialized.");
+      eigen_assert(cols()==b.rows()
+                && "IncompleteLUT::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<IncompleteLUT, Rhs>(*this, b.derived());
+    }
+
+protected:
+
+    /** keeps off-diagonal entries; drops diagonal entries */
+    struct keep_diag {
+      inline bool operator() (const Index& row, const Index& col, const Scalar&) const
+      {
+        return row!=col;
+      }
+    };
+
+protected:
+
+    FactorType m_lu;
+    RealScalar m_droptol;
+    int m_fillfactor;
+    bool m_analysisIsOk;
+    bool m_factorizationIsOk;
+    bool m_isInitialized;
+    ComputationInfo m_info;
+    PermutationMatrix<Dynamic,Dynamic,Index> m_P;     // Fill-reducing permutation
+    PermutationMatrix<Dynamic,Dynamic,Index> m_Pinv;  // Inverse permutation
+};
+
+/**
+ * Set control parameter droptol
+ *  \param droptol   Drop any element whose magnitude is less than this tolerance 
+ **/ 
+template<typename Scalar>
+void IncompleteLUT<Scalar>::setDroptol(const RealScalar& droptol)
+{
+  this->m_droptol = droptol;   
+}
+
+/**
+ * Set control parameter fillfactor
+ * \param fillfactor  This is used to compute the  number @p fill_in of largest elements to keep on each row. 
+ **/ 
+template<typename Scalar>
+void IncompleteLUT<Scalar>::setFillfactor(int fillfactor)
+{
+  this->m_fillfactor = fillfactor;   
+}
+
+template <typename Scalar>
+template<typename _MatrixType>
+void IncompleteLUT<Scalar>::analyzePattern(const _MatrixType& amat)
+{
+  // Compute the Fill-reducing permutation
+  // Since ILUT does not perform any numerical pivoting,
+  // it is highly preferable to keep the diagonal through symmetric permutations.
+#ifndef EIGEN_MPL2_ONLY
+  // To this end, let's symmetrize the pattern and perform AMD on it.
+  SparseMatrix<Scalar,ColMajor, Index> mat1 = amat;
+  SparseMatrix<Scalar,ColMajor, Index> mat2 = amat.transpose();
+  // FIXME for a matrix with nearly symmetric pattern, mat2+mat1 is the appropriate choice.
+  //       on the other hand for a really non-symmetric pattern, mat2*mat1 should be prefered...
+  SparseMatrix<Scalar,ColMajor, Index> AtA = mat2 + mat1;
+  AMDOrdering<Index> ordering;
+  ordering(AtA,m_P);
+  m_Pinv  = m_P.inverse(); // cache the inverse permutation
+#else
+  // If AMD is not available, (MPL2-only), then let's use the slower COLAMD routine.
+  SparseMatrix<Scalar,ColMajor, Index> mat1 = amat;
+  COLAMDOrdering<Index> ordering;
+  ordering(mat1,m_Pinv);
+  m_P = m_Pinv.inverse();
+#endif
+
+  m_analysisIsOk = true;
+  m_factorizationIsOk = false;
+  m_isInitialized = false;
+}
+
+template <typename Scalar>
+template<typename _MatrixType>
+void IncompleteLUT<Scalar>::factorize(const _MatrixType& amat)
+{
+  using std::sqrt;
+  using std::swap;
+  using std::abs;
+
+  eigen_assert((amat.rows() == amat.cols()) && "The factorization should be done on a square matrix");
+  Index n = amat.cols();  // Size of the matrix
+  m_lu.resize(n,n);
+  // Declare Working vectors and variables
+  Vector u(n) ;     // real values of the row -- maximum size is n --
+  VectorXi ju(n);   // column position of the values in u -- maximum size  is n
+  VectorXi jr(n);   // Indicate the position of the nonzero elements in the vector u -- A zero location is indicated by -1
+
+  // Apply the fill-reducing permutation
+  eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+  SparseMatrix<Scalar,RowMajor, Index> mat;
+  mat = amat.twistedBy(m_Pinv);
+
+  // Initialization
+  jr.fill(-1);
+  ju.fill(0);
+  u.fill(0);
+
+  // number of largest elements to keep in each row:
+  Index fill_in =   static_cast<Index> (amat.nonZeros()*m_fillfactor)/n+1;
+  if (fill_in > n) fill_in = n;
+
+  // number of largest nonzero elements to keep in the L and the U part of the current row:
+  Index nnzL = fill_in/2;
+  Index nnzU = nnzL;
+  m_lu.reserve(n * (nnzL + nnzU + 1));
+
+  // global loop over the rows of the sparse matrix
+  for (Index ii = 0; ii < n; ii++)
+  {
+    // 1 - copy the lower and the upper part of the row i of mat in the working vector u
+
+    Index sizeu = 1; // number of nonzero elements in the upper part of the current row
+    Index sizel = 0; // number of nonzero elements in the lower part of the current row
+    ju(ii)    = ii;
+    u(ii)     = 0;
+    jr(ii)    = ii;
+    RealScalar rownorm = 0;
+
+    typename FactorType::InnerIterator j_it(mat, ii); // Iterate through the current row ii
+    for (; j_it; ++j_it)
+    {
+      Index k = j_it.index();
+      if (k < ii)
+      {
+        // copy the lower part
+        ju(sizel) = k;
+        u(sizel) = j_it.value();
+        jr(k) = sizel;
+        ++sizel;
+      }
+      else if (k == ii)
+      {
+        u(ii) = j_it.value();
+      }
+      else
+      {
+        // copy the upper part
+        Index jpos = ii + sizeu;
+        ju(jpos) = k;
+        u(jpos) = j_it.value();
+        jr(k) = jpos;
+        ++sizeu;
+      }
+      rownorm += numext::abs2(j_it.value());
+    }
+
+    // 2 - detect possible zero row
+    if(rownorm==0)
+    {
+      m_info = NumericalIssue;
+      return;
+    }
+    // Take the 2-norm of the current row as a relative tolerance
+    rownorm = sqrt(rownorm);
+
+    // 3 - eliminate the previous nonzero rows
+    Index jj = 0;
+    Index len = 0;
+    while (jj < sizel)
+    {
+      // In order to eliminate in the correct order,
+      // we must select first the smallest column index among  ju(jj:sizel)
+      Index k;
+      Index minrow = ju.segment(jj,sizel-jj).minCoeff(&k); // k is relative to the segment
+      k += jj;
+      if (minrow != ju(jj))
+      {
+        // swap the two locations
+        Index j = ju(jj);
+        swap(ju(jj), ju(k));
+        jr(minrow) = jj;   jr(j) = k;
+        swap(u(jj), u(k));
+      }
+      // Reset this location
+      jr(minrow) = -1;
+
+      // Start elimination
+      typename FactorType::InnerIterator ki_it(m_lu, minrow);
+      while (ki_it && ki_it.index() < minrow) ++ki_it;
+      eigen_internal_assert(ki_it && ki_it.col()==minrow);
+      Scalar fact = u(jj) / ki_it.value();
+
+      // drop too small elements
+      if(abs(fact) <= m_droptol)
+      {
+        jj++;
+        continue;
+      }
+
+      // linear combination of the current row ii and the row minrow
+      ++ki_it;
+      for (; ki_it; ++ki_it)
+      {
+        Scalar prod = fact * ki_it.value();
+        Index j       = ki_it.index();
+        Index jpos    = jr(j);
+        if (jpos == -1) // fill-in element
+        {
+          Index newpos;
+          if (j >= ii) // dealing with the upper part
+          {
+            newpos = ii + sizeu;
+            sizeu++;
+            eigen_internal_assert(sizeu<=n);
+          }
+          else // dealing with the lower part
+          {
+            newpos = sizel;
+            sizel++;
+            eigen_internal_assert(sizel<=ii);
+          }
+          ju(newpos) = j;
+          u(newpos) = -prod;
+          jr(j) = newpos;
+        }
+        else
+          u(jpos) -= prod;
+      }
+      // store the pivot element
+      u(len) = fact;
+      ju(len) = minrow;
+      ++len;
+
+      jj++;
+    } // end of the elimination on the row ii
+
+    // reset the upper part of the pointer jr to zero
+    for(Index k = 0; k <sizeu; k++) jr(ju(ii+k)) = -1;
+
+    // 4 - partially sort and insert the elements in the m_lu matrix
+
+    // sort the L-part of the row
+    sizel = len;
+    len = (std::min)(sizel, nnzL);
+    typename Vector::SegmentReturnType ul(u.segment(0, sizel));
+    typename VectorXi::SegmentReturnType jul(ju.segment(0, sizel));
+    internal::QuickSplit(ul, jul, len);
+
+    // store the largest m_fill elements of the L part
+    m_lu.startVec(ii);
+    for(Index k = 0; k < len; k++)
+      m_lu.insertBackByOuterInnerUnordered(ii,ju(k)) = u(k);
+
+    // store the diagonal element
+    // apply a shifting rule to avoid zero pivots (we are doing an incomplete factorization)
+    if (u(ii) == Scalar(0))
+      u(ii) = sqrt(m_droptol) * rownorm;
+    m_lu.insertBackByOuterInnerUnordered(ii, ii) = u(ii);
+
+    // sort the U-part of the row
+    // apply the dropping rule first
+    len = 0;
+    for(Index k = 1; k < sizeu; k++)
+    {
+      if(abs(u(ii+k)) > m_droptol * rownorm )
+      {
+        ++len;
+        u(ii + len)  = u(ii + k);
+        ju(ii + len) = ju(ii + k);
+      }
+    }
+    sizeu = len + 1; // +1 to take into account the diagonal element
+    len = (std::min)(sizeu, nnzU);
+    typename Vector::SegmentReturnType uu(u.segment(ii+1, sizeu-1));
+    typename VectorXi::SegmentReturnType juu(ju.segment(ii+1, sizeu-1));
+    internal::QuickSplit(uu, juu, len);
+
+    // store the largest elements of the U part
+    for(Index k = ii + 1; k < ii + len; k++)
+      m_lu.insertBackByOuterInnerUnordered(ii,ju(k)) = u(k);
+  }
+
+  m_lu.finalize();
+  m_lu.makeCompressed();
+
+  m_factorizationIsOk = true;
+  m_isInitialized = m_factorizationIsOk;
+  m_info = Success;
+}
+
+namespace internal {
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<IncompleteLUT<_MatrixType>, Rhs>
+  : solve_retval_base<IncompleteLUT<_MatrixType>, Rhs>
+{
+  typedef IncompleteLUT<_MatrixType> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_INCOMPLETE_LUT_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h b/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
new file mode 100644
index 0000000..501ef2f
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
@@ -0,0 +1,282 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ITERATIVE_SOLVER_BASE_H
+#define EIGEN_ITERATIVE_SOLVER_BASE_H
+
+namespace Eigen { 
+
+/** \ingroup IterativeLinearSolvers_Module
+  * \brief Base class for linear iterative solvers
+  *
+  * \sa class SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
+  */
+template< typename Derived>
+class IterativeSolverBase : internal::noncopyable
+{
+public:
+  typedef typename internal::traits<Derived>::MatrixType MatrixType;
+  typedef typename internal::traits<Derived>::Preconditioner Preconditioner;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::RealScalar RealScalar;
+
+public:
+
+  Derived& derived() { return *static_cast<Derived*>(this); }
+  const Derived& derived() const { return *static_cast<const Derived*>(this); }
+
+  /** Default constructor. */
+  IterativeSolverBase()
+    : mp_matrix(0)
+  {
+    init();
+  }
+
+  /** Initialize the solver with matrix \a A for further \c Ax=b solving.
+    * 
+    * This constructor is a shortcut for the default constructor followed
+    * by a call to compute().
+    * 
+    * \warning this class stores a reference to the matrix A as well as some
+    * precomputed values that depend on it. Therefore, if \a A is changed
+    * this class becomes invalid. Call compute() to update it with the new
+    * matrix A, or modify a copy of A.
+    */
+  template<typename InputDerived>
+  IterativeSolverBase(const EigenBase<InputDerived>& A)
+  {
+    init();
+    compute(A.derived());
+  }
+
+  ~IterativeSolverBase() {}
+  
+  /** Initializes the iterative solver for the sparcity pattern of the matrix \a A for further solving \c Ax=b problems.
+    *
+    * Currently, this function mostly call analyzePattern on the preconditioner. In the future
+    * we might, for instance, implement column reodering for faster matrix vector products.
+    */
+  template<typename InputDerived>
+  Derived& analyzePattern(const EigenBase<InputDerived>& A)
+  {
+    grabInput(A.derived());
+    m_preconditioner.analyzePattern(*mp_matrix);
+    m_isInitialized = true;
+    m_analysisIsOk = true;
+    m_info = Success;
+    return derived();
+  }
+  
+  /** Initializes the iterative solver with the numerical values of the matrix \a A for further solving \c Ax=b problems.
+    *
+    * Currently, this function mostly call factorize on the preconditioner.
+    *
+    * \warning this class stores a reference to the matrix A as well as some
+    * precomputed values that depend on it. Therefore, if \a A is changed
+    * this class becomes invalid. Call compute() to update it with the new
+    * matrix A, or modify a copy of A.
+    */
+  template<typename InputDerived>
+  Derived& factorize(const EigenBase<InputDerived>& A)
+  {
+    grabInput(A.derived());
+    eigen_assert(m_analysisIsOk && "You must first call analyzePattern()"); 
+    m_preconditioner.factorize(*mp_matrix);
+    m_factorizationIsOk = true;
+    m_info = Success;
+    return derived();
+  }
+
+  /** Initializes the iterative solver with the matrix \a A for further solving \c Ax=b problems.
+    *
+    * Currently, this function mostly initialized/compute the preconditioner. In the future
+    * we might, for instance, implement column reodering for faster matrix vector products.
+    *
+    * \warning this class stores a reference to the matrix A as well as some
+    * precomputed values that depend on it. Therefore, if \a A is changed
+    * this class becomes invalid. Call compute() to update it with the new
+    * matrix A, or modify a copy of A.
+    */
+  template<typename InputDerived>
+  Derived& compute(const EigenBase<InputDerived>& A)
+  {
+    grabInput(A.derived());
+    m_preconditioner.compute(*mp_matrix);
+    m_isInitialized = true;
+    m_analysisIsOk = true;
+    m_factorizationIsOk = true;
+    m_info = Success;
+    return derived();
+  }
+
+  /** \internal */
+  Index rows() const { return mp_matrix ? mp_matrix->rows() : 0; }
+  /** \internal */
+  Index cols() const { return mp_matrix ? mp_matrix->cols() : 0; }
+
+  /** \returns the tolerance threshold used by the stopping criteria */
+  RealScalar tolerance() const { return m_tolerance; }
+  
+  /** Sets the tolerance threshold used by the stopping criteria */
+  Derived& setTolerance(const RealScalar& tolerance)
+  {
+    m_tolerance = tolerance;
+    return derived();
+  }
+
+  /** \returns a read-write reference to the preconditioner for custom configuration. */
+  Preconditioner& preconditioner() { return m_preconditioner; }
+  
+  /** \returns a read-only reference to the preconditioner. */
+  const Preconditioner& preconditioner() const { return m_preconditioner; }
+
+  /** \returns the max number of iterations */
+  int maxIterations() const
+  {
+    return (mp_matrix && m_maxIterations<0) ? mp_matrix->cols() : m_maxIterations;
+  }
+  
+  /** Sets the max number of iterations */
+  Derived& setMaxIterations(int maxIters)
+  {
+    m_maxIterations = maxIters;
+    return derived();
+  }
+
+  /** \returns the number of iterations performed during the last solve */
+  int iterations() const
+  {
+    eigen_assert(m_isInitialized && "ConjugateGradient is not initialized.");
+    return m_iterations;
+  }
+
+  /** \returns the tolerance error reached during the last solve */
+  RealScalar error() const
+  {
+    eigen_assert(m_isInitialized && "ConjugateGradient is not initialized.");
+    return m_error;
+  }
+
+  /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+    *
+    * \sa compute()
+    */
+  template<typename Rhs> inline const internal::solve_retval<Derived, Rhs>
+  solve(const MatrixBase<Rhs>& b) const
+  {
+    eigen_assert(m_isInitialized && "IterativeSolverBase is not initialized.");
+    eigen_assert(rows()==b.rows()
+              && "IterativeSolverBase::solve(): invalid number of rows of the right hand side matrix b");
+    return internal::solve_retval<Derived, Rhs>(derived(), b.derived());
+  }
+  
+  /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+    *
+    * \sa compute()
+    */
+  template<typename Rhs>
+  inline const internal::sparse_solve_retval<IterativeSolverBase, Rhs>
+  solve(const SparseMatrixBase<Rhs>& b) const
+  {
+    eigen_assert(m_isInitialized && "IterativeSolverBase is not initialized.");
+    eigen_assert(rows()==b.rows()
+              && "IterativeSolverBase::solve(): invalid number of rows of the right hand side matrix b");
+    return internal::sparse_solve_retval<IterativeSolverBase, Rhs>(*this, b.derived());
+  }
+
+  /** \returns Success if the iterations converged, and NoConvergence otherwise. */
+  ComputationInfo info() const
+  {
+    eigen_assert(m_isInitialized && "IterativeSolverBase is not initialized.");
+    return m_info;
+  }
+  
+  /** \internal */
+  template<typename Rhs, typename DestScalar, int DestOptions, typename DestIndex>
+  void _solve_sparse(const Rhs& b, SparseMatrix<DestScalar,DestOptions,DestIndex> &dest) const
+  {
+    eigen_assert(rows()==b.rows());
+    
+    int rhsCols = b.cols();
+    int size = b.rows();
+    Eigen::Matrix<DestScalar,Dynamic,1> tb(size);
+    Eigen::Matrix<DestScalar,Dynamic,1> tx(size);
+    for(int k=0; k<rhsCols; ++k)
+    {
+      tb = b.col(k);
+      tx = derived().solve(tb);
+      dest.col(k) = tx.sparseView(0);
+    }
+  }
+
+protected:
+
+  template<typename InputDerived>
+  void grabInput(const EigenBase<InputDerived>& A)
+  {
+    // we const cast to prevent the creation of a MatrixType temporary by the compiler.
+    grabInput_impl(A.const_cast_derived());
+  }
+
+  template<typename InputDerived>
+  void grabInput_impl(const EigenBase<InputDerived>& A)
+  {
+    m_copyMatrix = A;
+    mp_matrix = &m_copyMatrix;
+  }
+
+  void grabInput_impl(MatrixType& A)
+  {
+    if(MatrixType::RowsAtCompileTime==Dynamic && MatrixType::ColsAtCompileTime==Dynamic)
+      m_copyMatrix.resize(0,0);
+    mp_matrix = &A;
+  }
+
+  void init()
+  {
+    m_isInitialized = false;
+    m_analysisIsOk = false;
+    m_factorizationIsOk = false;
+    m_maxIterations = -1;
+    m_tolerance = NumTraits<Scalar>::epsilon();
+  }
+  MatrixType m_copyMatrix;
+  const MatrixType* mp_matrix;
+  Preconditioner m_preconditioner;
+
+  int m_maxIterations;
+  RealScalar m_tolerance;
+  
+  mutable RealScalar m_error;
+  mutable int m_iterations;
+  mutable ComputationInfo m_info;
+  mutable bool m_isInitialized, m_analysisIsOk, m_factorizationIsOk;
+};
+
+namespace internal {
+ 
+template<typename Derived, typename Rhs>
+struct sparse_solve_retval<IterativeSolverBase<Derived>, Rhs>
+  : sparse_solve_retval_base<IterativeSolverBase<Derived>, Rhs>
+{
+  typedef IterativeSolverBase<Derived> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec().derived()._solve_sparse(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_ITERATIVE_SOLVER_BASE_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/Jacobi/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/Jacobi/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/Jacobi/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/Jacobi/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/Jacobi/Jacobi.h b/vendor/eigen-3.2.8/Eigen/src/Jacobi/Jacobi.h
new file mode 100644
index 0000000..956f72d
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/Jacobi/Jacobi.h
@@ -0,0 +1,433 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_JACOBI_H
+#define EIGEN_JACOBI_H
+
+namespace Eigen { 
+
+/** \ingroup Jacobi_Module
+  * \jacobi_module
+  * \class JacobiRotation
+  * \brief Rotation given by a cosine-sine pair.
+  *
+  * This class represents a Jacobi or Givens rotation.
+  * This is a 2D rotation in the plane \c J of angle \f$ \theta \f$ defined by
+  * its cosine \c c and sine \c s as follow:
+  * \f$ J = \left ( \begin{array}{cc} c & \overline s \\ -s  & \overline c \end{array} \right ) \f$
+  *
+  * You can apply the respective counter-clockwise rotation to a column vector \c v by
+  * applying its adjoint on the left: \f$ v = J^* v \f$ that translates to the following Eigen code:
+  * \code
+  * v.applyOnTheLeft(J.adjoint());
+  * \endcode
+  *
+  * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+  */
+template<typename Scalar> class JacobiRotation
+{
+  public:
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    /** Default constructor without any initialization. */
+    JacobiRotation() {}
+
+    /** Construct a planar rotation from a cosine-sine pair (\a c, \c s). */
+    JacobiRotation(const Scalar& c, const Scalar& s) : m_c(c), m_s(s) {}
+
+    Scalar& c() { return m_c; }
+    Scalar c() const { return m_c; }
+    Scalar& s() { return m_s; }
+    Scalar s() const { return m_s; }
+
+    /** Concatenates two planar rotation */
+    JacobiRotation operator*(const JacobiRotation& other)
+    {
+      using numext::conj;
+      return JacobiRotation(m_c * other.m_c - conj(m_s) * other.m_s,
+                            conj(m_c * conj(other.m_s) + conj(m_s) * conj(other.m_c)));
+    }
+
+    /** Returns the transposed transformation */
+    JacobiRotation transpose() const { using numext::conj; return JacobiRotation(m_c, -conj(m_s)); }
+
+    /** Returns the adjoint transformation */
+    JacobiRotation adjoint() const { using numext::conj; return JacobiRotation(conj(m_c), -m_s); }
+
+    template<typename Derived>
+    bool makeJacobi(const MatrixBase<Derived>&, typename Derived::Index p, typename Derived::Index q);
+    bool makeJacobi(const RealScalar& x, const Scalar& y, const RealScalar& z);
+
+    void makeGivens(const Scalar& p, const Scalar& q, Scalar* z=0);
+
+  protected:
+    void makeGivens(const Scalar& p, const Scalar& q, Scalar* z, internal::true_type);
+    void makeGivens(const Scalar& p, const Scalar& q, Scalar* z, internal::false_type);
+
+    Scalar m_c, m_s;
+};
+
+/** Makes \c *this as a Jacobi rotation \a J such that applying \a J on both the right and left sides of the selfadjoint 2x2 matrix
+  * \f$ B = \left ( \begin{array}{cc} x & y \\ \overline y & z \end{array} \right )\f$ yields a diagonal matrix \f$ A = J^* B J \f$
+  *
+  * \sa MatrixBase::makeJacobi(const MatrixBase<Derived>&, Index, Index), MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+  */
+template<typename Scalar>
+bool JacobiRotation<Scalar>::makeJacobi(const RealScalar& x, const Scalar& y, const RealScalar& z)
+{
+  using std::sqrt;
+  using std::abs;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  if(y == Scalar(0))
+  {
+    m_c = Scalar(1);
+    m_s = Scalar(0);
+    return false;
+  }
+  else
+  {
+    RealScalar tau = (x-z)/(RealScalar(2)*abs(y));
+    RealScalar w = sqrt(numext::abs2(tau) + RealScalar(1));
+    RealScalar t;
+    if(tau>RealScalar(0))
+    {
+      t = RealScalar(1) / (tau + w);
+    }
+    else
+    {
+      t = RealScalar(1) / (tau - w);
+    }
+    RealScalar sign_t = t > RealScalar(0) ? RealScalar(1) : RealScalar(-1);
+    RealScalar n = RealScalar(1) / sqrt(numext::abs2(t)+RealScalar(1));
+    m_s = - sign_t * (numext::conj(y) / abs(y)) * abs(t) * n;
+    m_c = n;
+    return true;
+  }
+}
+
+/** Makes \c *this as a Jacobi rotation \c J such that applying \a J on both the right and left sides of the 2x2 selfadjoint matrix
+  * \f$ B = \left ( \begin{array}{cc} \text{this}_{pp} & \text{this}_{pq} \\ (\text{this}_{pq})^* & \text{this}_{qq} \end{array} \right )\f$ yields
+  * a diagonal matrix \f$ A = J^* B J \f$
+  *
+  * Example: \include Jacobi_makeJacobi.cpp
+  * Output: \verbinclude Jacobi_makeJacobi.out
+  *
+  * \sa JacobiRotation::makeJacobi(RealScalar, Scalar, RealScalar), MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+  */
+template<typename Scalar>
+template<typename Derived>
+inline bool JacobiRotation<Scalar>::makeJacobi(const MatrixBase<Derived>& m, typename Derived::Index p, typename Derived::Index q)
+{
+  return makeJacobi(numext::real(m.coeff(p,p)), m.coeff(p,q), numext::real(m.coeff(q,q)));
+}
+
+/** Makes \c *this as a Givens rotation \c G such that applying \f$ G^* \f$ to the left of the vector
+  * \f$ V = \left ( \begin{array}{c} p \\ q \end{array} \right )\f$ yields:
+  * \f$ G^* V = \left ( \begin{array}{c} r \\ 0 \end{array} \right )\f$.
+  *
+  * The value of \a z is returned if \a z is not null (the default is null).
+  * Also note that G is built such that the cosine is always real.
+  *
+  * Example: \include Jacobi_makeGivens.cpp
+  * Output: \verbinclude Jacobi_makeGivens.out
+  *
+  * This function implements the continuous Givens rotation generation algorithm
+  * found in Anderson (2000), Discontinuous Plane Rotations and the Symmetric Eigenvalue Problem.
+  * LAPACK Working Note 150, University of Tennessee, UT-CS-00-454, December 4, 2000.
+  *
+  * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+  */
+template<typename Scalar>
+void JacobiRotation<Scalar>::makeGivens(const Scalar& p, const Scalar& q, Scalar* z)
+{
+  makeGivens(p, q, z, typename internal::conditional<NumTraits<Scalar>::IsComplex, internal::true_type, internal::false_type>::type());
+}
+
+
+// specialization for complexes
+template<typename Scalar>
+void JacobiRotation<Scalar>::makeGivens(const Scalar& p, const Scalar& q, Scalar* r, internal::true_type)
+{
+  using std::sqrt;
+  using std::abs;
+  using numext::conj;
+  
+  if(q==Scalar(0))
+  {
+    m_c = numext::real(p)<0 ? Scalar(-1) : Scalar(1);
+    m_s = 0;
+    if(r) *r = m_c * p;
+  }
+  else if(p==Scalar(0))
+  {
+    m_c = 0;
+    m_s = -q/abs(q);
+    if(r) *r = abs(q);
+  }
+  else
+  {
+    RealScalar p1 = numext::norm1(p);
+    RealScalar q1 = numext::norm1(q);
+    if(p1>=q1)
+    {
+      Scalar ps = p / p1;
+      RealScalar p2 = numext::abs2(ps);
+      Scalar qs = q / p1;
+      RealScalar q2 = numext::abs2(qs);
+
+      RealScalar u = sqrt(RealScalar(1) + q2/p2);
+      if(numext::real(p)<RealScalar(0))
+        u = -u;
+
+      m_c = Scalar(1)/u;
+      m_s = -qs*conj(ps)*(m_c/p2);
+      if(r) *r = p * u;
+    }
+    else
+    {
+      Scalar ps = p / q1;
+      RealScalar p2 = numext::abs2(ps);
+      Scalar qs = q / q1;
+      RealScalar q2 = numext::abs2(qs);
+
+      RealScalar u = q1 * sqrt(p2 + q2);
+      if(numext::real(p)<RealScalar(0))
+        u = -u;
+
+      p1 = abs(p);
+      ps = p/p1;
+      m_c = p1/u;
+      m_s = -conj(ps) * (q/u);
+      if(r) *r = ps * u;
+    }
+  }
+}
+
+// specialization for reals
+template<typename Scalar>
+void JacobiRotation<Scalar>::makeGivens(const Scalar& p, const Scalar& q, Scalar* r, internal::false_type)
+{
+  using std::sqrt;
+  using std::abs;
+  if(q==Scalar(0))
+  {
+    m_c = p<Scalar(0) ? Scalar(-1) : Scalar(1);
+    m_s = Scalar(0);
+    if(r) *r = abs(p);
+  }
+  else if(p==Scalar(0))
+  {
+    m_c = Scalar(0);
+    m_s = q<Scalar(0) ? Scalar(1) : Scalar(-1);
+    if(r) *r = abs(q);
+  }
+  else if(abs(p) > abs(q))
+  {
+    Scalar t = q/p;
+    Scalar u = sqrt(Scalar(1) + numext::abs2(t));
+    if(p<Scalar(0))
+      u = -u;
+    m_c = Scalar(1)/u;
+    m_s = -t * m_c;
+    if(r) *r = p * u;
+  }
+  else
+  {
+    Scalar t = p/q;
+    Scalar u = sqrt(Scalar(1) + numext::abs2(t));
+    if(q<Scalar(0))
+      u = -u;
+    m_s = -Scalar(1)/u;
+    m_c = -t * m_s;
+    if(r) *r = q * u;
+  }
+
+}
+
+/****************************************************************************************
+*   Implementation of MatrixBase methods
+****************************************************************************************/
+
+/** \jacobi_module
+  * Applies the clock wise 2D rotation \a j to the set of 2D vectors of cordinates \a x and \a y:
+  * \f$ \left ( \begin{array}{cc} x \\ y \end{array} \right )  =  J \left ( \begin{array}{cc} x \\ y \end{array} \right ) \f$
+  *
+  * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+  */
+namespace internal {
+template<typename VectorX, typename VectorY, typename OtherScalar>
+void apply_rotation_in_the_plane(VectorX& _x, VectorY& _y, const JacobiRotation<OtherScalar>& j);
+}
+
+/** \jacobi_module
+  * Applies the rotation in the plane \a j to the rows \a p and \a q of \c *this, i.e., it computes B = J * B,
+  * with \f$ B = \left ( \begin{array}{cc} \text{*this.row}(p) \\ \text{*this.row}(q) \end{array} \right ) \f$.
+  *
+  * \sa class JacobiRotation, MatrixBase::applyOnTheRight(), internal::apply_rotation_in_the_plane()
+  */
+template<typename Derived>
+template<typename OtherScalar>
+inline void MatrixBase<Derived>::applyOnTheLeft(Index p, Index q, const JacobiRotation<OtherScalar>& j)
+{
+  RowXpr x(this->row(p));
+  RowXpr y(this->row(q));
+  internal::apply_rotation_in_the_plane(x, y, j);
+}
+
+/** \ingroup Jacobi_Module
+  * Applies the rotation in the plane \a j to the columns \a p and \a q of \c *this, i.e., it computes B = B * J
+  * with \f$ B = \left ( \begin{array}{cc} \text{*this.col}(p) & \text{*this.col}(q) \end{array} \right ) \f$.
+  *
+  * \sa class JacobiRotation, MatrixBase::applyOnTheLeft(), internal::apply_rotation_in_the_plane()
+  */
+template<typename Derived>
+template<typename OtherScalar>
+inline void MatrixBase<Derived>::applyOnTheRight(Index p, Index q, const JacobiRotation<OtherScalar>& j)
+{
+  ColXpr x(this->col(p));
+  ColXpr y(this->col(q));
+  internal::apply_rotation_in_the_plane(x, y, j.transpose());
+}
+
+namespace internal {
+template<typename VectorX, typename VectorY, typename OtherScalar>
+void /*EIGEN_DONT_INLINE*/ apply_rotation_in_the_plane(VectorX& _x, VectorY& _y, const JacobiRotation<OtherScalar>& j)
+{
+  typedef typename VectorX::Index Index;
+  typedef typename VectorX::Scalar Scalar;
+  enum { PacketSize = packet_traits<Scalar>::size };
+  typedef typename packet_traits<Scalar>::type Packet;
+  eigen_assert(_x.size() == _y.size());
+  Index size = _x.size();
+  Index incrx = _x.innerStride();
+  Index incry = _y.innerStride();
+
+  Scalar* EIGEN_RESTRICT x = &_x.coeffRef(0);
+  Scalar* EIGEN_RESTRICT y = &_y.coeffRef(0);
+  
+  OtherScalar c = j.c();
+  OtherScalar s = j.s();
+  if (c==OtherScalar(1) && s==OtherScalar(0))
+    return;
+
+  /*** dynamic-size vectorized paths ***/
+
+  if(VectorX::SizeAtCompileTime == Dynamic &&
+    (VectorX::Flags & VectorY::Flags & PacketAccessBit) &&
+    ((incrx==1 && incry==1) || PacketSize == 1))
+  {
+    // both vectors are sequentially stored in memory => vectorization
+    enum { Peeling = 2 };
+
+    Index alignedStart = internal::first_aligned(y, size);
+    Index alignedEnd = alignedStart + ((size-alignedStart)/PacketSize)*PacketSize;
+
+    const Packet pc = pset1<Packet>(c);
+    const Packet ps = pset1<Packet>(s);
+    conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex,false> pcj;
+
+    for(Index i=0; i<alignedStart; ++i)
+    {
+      Scalar xi = x[i];
+      Scalar yi = y[i];
+      x[i] =  c * xi + numext::conj(s) * yi;
+      y[i] = -s * xi + numext::conj(c) * yi;
+    }
+
+    Scalar* EIGEN_RESTRICT px = x + alignedStart;
+    Scalar* EIGEN_RESTRICT py = y + alignedStart;
+
+    if(internal::first_aligned(x, size)==alignedStart)
+    {
+      for(Index i=alignedStart; i<alignedEnd; i+=PacketSize)
+      {
+        Packet xi = pload<Packet>(px);
+        Packet yi = pload<Packet>(py);
+        pstore(px, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
+        pstore(py, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
+        px += PacketSize;
+        py += PacketSize;
+      }
+    }
+    else
+    {
+      Index peelingEnd = alignedStart + ((size-alignedStart)/(Peeling*PacketSize))*(Peeling*PacketSize);
+      for(Index i=alignedStart; i<peelingEnd; i+=Peeling*PacketSize)
+      {
+        Packet xi   = ploadu<Packet>(px);
+        Packet xi1  = ploadu<Packet>(px+PacketSize);
+        Packet yi   = pload <Packet>(py);
+        Packet yi1  = pload <Packet>(py+PacketSize);
+        pstoreu(px, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
+        pstoreu(px+PacketSize, padd(pmul(pc,xi1),pcj.pmul(ps,yi1)));
+        pstore (py, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
+        pstore (py+PacketSize, psub(pcj.pmul(pc,yi1),pmul(ps,xi1)));
+        px += Peeling*PacketSize;
+        py += Peeling*PacketSize;
+      }
+      if(alignedEnd!=peelingEnd)
+      {
+        Packet xi = ploadu<Packet>(x+peelingEnd);
+        Packet yi = pload <Packet>(y+peelingEnd);
+        pstoreu(x+peelingEnd, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
+        pstore (y+peelingEnd, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
+      }
+    }
+
+    for(Index i=alignedEnd; i<size; ++i)
+    {
+      Scalar xi = x[i];
+      Scalar yi = y[i];
+      x[i] =  c * xi + numext::conj(s) * yi;
+      y[i] = -s * xi + numext::conj(c) * yi;
+    }
+  }
+
+  /*** fixed-size vectorized path ***/
+  else if(VectorX::SizeAtCompileTime != Dynamic &&
+          (VectorX::Flags & VectorY::Flags & PacketAccessBit) &&
+          (VectorX::Flags & VectorY::Flags & AlignedBit))
+  {
+    const Packet pc = pset1<Packet>(c);
+    const Packet ps = pset1<Packet>(s);
+    conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex,false> pcj;
+    Scalar* EIGEN_RESTRICT px = x;
+    Scalar* EIGEN_RESTRICT py = y;
+    for(Index i=0; i<size; i+=PacketSize)
+    {
+      Packet xi = pload<Packet>(px);
+      Packet yi = pload<Packet>(py);
+      pstore(px, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
+      pstore(py, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
+      px += PacketSize;
+      py += PacketSize;
+    }
+  }
+
+  /*** non-vectorized path ***/
+  else
+  {
+    for(Index i=0; i<size; ++i)
+    {
+      Scalar xi = *x;
+      Scalar yi = *y;
+      *x =  c * xi + numext::conj(s) * yi;
+      *y = -s * xi + numext::conj(c) * yi;
+      x += incrx;
+      y += incry;
+    }
+  }
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_JACOBI_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/LU/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/LU/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/LU/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/LU/CMakeLists.txt
diff --git a/vendor/eigen-3.1.91/Eigen/src/LU/Determinant.h b/vendor/eigen-3.2.8/Eigen/src/LU/Determinant.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/LU/Determinant.h
rename to vendor/eigen-3.2.8/Eigen/src/LU/Determinant.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/LU/FullPivLU.h b/vendor/eigen-3.2.8/Eigen/src/LU/FullPivLU.h
new file mode 100644
index 0000000..e384704
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/LU/FullPivLU.h
@@ -0,0 +1,751 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_LU_H
+#define EIGEN_LU_H
+
+namespace Eigen { 
+
+/** \ingroup LU_Module
+  *
+  * \class FullPivLU
+  *
+  * \brief LU decomposition of a matrix with complete pivoting, and related features
+  *
+  * \param MatrixType the type of the matrix of which we are computing the LU decomposition
+  *
+  * This class represents a LU decomposition of any matrix, with complete pivoting: the matrix A is
+  * decomposed as \f$ A = P^{-1} L U Q^{-1} \f$ where L is unit-lower-triangular, U is
+  * upper-triangular, and P and Q are permutation matrices. This is a rank-revealing LU
+  * decomposition. The eigenvalues (diagonal coefficients) of U are sorted in such a way that any
+  * zeros are at the end.
+  *
+  * This decomposition provides the generic approach to solving systems of linear equations, computing
+  * the rank, invertibility, inverse, kernel, and determinant.
+  *
+  * This LU decomposition is very stable and well tested with large matrices. However there are use cases where the SVD
+  * decomposition is inherently more stable and/or flexible. For example, when computing the kernel of a matrix,
+  * working with the SVD allows to select the smallest singular values of the matrix, something that
+  * the LU decomposition doesn't see.
+  *
+  * The data of the LU decomposition can be directly accessed through the methods matrixLU(),
+  * permutationP(), permutationQ().
+  *
+  * As an exemple, here is how the original matrix can be retrieved:
+  * \include class_FullPivLU.cpp
+  * Output: \verbinclude class_FullPivLU.out
+  *
+  * \sa MatrixBase::fullPivLu(), MatrixBase::determinant(), MatrixBase::inverse()
+  */
+template<typename _MatrixType> class FullPivLU
+{
+  public:
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+    typedef typename internal::traits<MatrixType>::StorageKind StorageKind;
+    typedef typename MatrixType::Index Index;
+    typedef typename internal::plain_row_type<MatrixType, Index>::type IntRowVectorType;
+    typedef typename internal::plain_col_type<MatrixType, Index>::type IntColVectorType;
+    typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationQType;
+    typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationPType;
+
+    /**
+      * \brief Default Constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via LU::compute(const MatrixType&).
+      */
+    FullPivLU();
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa FullPivLU()
+      */
+    FullPivLU(Index rows, Index cols);
+
+    /** Constructor.
+      *
+      * \param matrix the matrix of which to compute the LU decomposition.
+      *               It is required to be nonzero.
+      */
+    FullPivLU(const MatrixType& matrix);
+
+    /** Computes the LU decomposition of the given matrix.
+      *
+      * \param matrix the matrix of which to compute the LU decomposition.
+      *               It is required to be nonzero.
+      *
+      * \returns a reference to *this
+      */
+    FullPivLU& compute(const MatrixType& matrix);
+
+    /** \returns the LU decomposition matrix: the upper-triangular part is U, the
+      * unit-lower-triangular part is L (at least for square matrices; in the non-square
+      * case, special care is needed, see the documentation of class FullPivLU).
+      *
+      * \sa matrixL(), matrixU()
+      */
+    inline const MatrixType& matrixLU() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return m_lu;
+    }
+
+    /** \returns the number of nonzero pivots in the LU decomposition.
+      * Here nonzero is meant in the exact sense, not in a fuzzy sense.
+      * So that notion isn't really intrinsically interesting, but it is
+      * still useful when implementing algorithms.
+      *
+      * \sa rank()
+      */
+    inline Index nonzeroPivots() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return m_nonzero_pivots;
+    }
+
+    /** \returns the absolute value of the biggest pivot, i.e. the biggest
+      *          diagonal coefficient of U.
+      */
+    RealScalar maxPivot() const { return m_maxpivot; }
+
+    /** \returns the permutation matrix P
+      *
+      * \sa permutationQ()
+      */
+    inline const PermutationPType& permutationP() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return m_p;
+    }
+
+    /** \returns the permutation matrix Q
+      *
+      * \sa permutationP()
+      */
+    inline const PermutationQType& permutationQ() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return m_q;
+    }
+
+    /** \returns the kernel of the matrix, also called its null-space. The columns of the returned matrix
+      * will form a basis of the kernel.
+      *
+      * \note If the kernel has dimension zero, then the returned matrix is a column-vector filled with zeros.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      *
+      * Example: \include FullPivLU_kernel.cpp
+      * Output: \verbinclude FullPivLU_kernel.out
+      *
+      * \sa image()
+      */
+    inline const internal::kernel_retval<FullPivLU> kernel() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return internal::kernel_retval<FullPivLU>(*this);
+    }
+
+    /** \returns the image of the matrix, also called its column-space. The columns of the returned matrix
+      * will form a basis of the kernel.
+      *
+      * \param originalMatrix the original matrix, of which *this is the LU decomposition.
+      *                       The reason why it is needed to pass it here, is that this allows
+      *                       a large optimization, as otherwise this method would need to reconstruct it
+      *                       from the LU decomposition.
+      *
+      * \note If the image has dimension zero, then the returned matrix is a column-vector filled with zeros.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      *
+      * Example: \include FullPivLU_image.cpp
+      * Output: \verbinclude FullPivLU_image.out
+      *
+      * \sa kernel()
+      */
+    inline const internal::image_retval<FullPivLU>
+      image(const MatrixType& originalMatrix) const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return internal::image_retval<FullPivLU>(*this, originalMatrix);
+    }
+
+    /** \return a solution x to the equation Ax=b, where A is the matrix of which
+      * *this is the LU decomposition.
+      *
+      * \param b the right-hand-side of the equation to solve. Can be a vector or a matrix,
+      *          the only requirement in order for the equation to make sense is that
+      *          b.rows()==A.rows(), where A is the matrix of which *this is the LU decomposition.
+      *
+      * \returns a solution.
+      *
+      * \note_about_checking_solutions
+      *
+      * \note_about_arbitrary_choice_of_solution
+      * \note_about_using_kernel_to_study_multiple_solutions
+      *
+      * Example: \include FullPivLU_solve.cpp
+      * Output: \verbinclude FullPivLU_solve.out
+      *
+      * \sa TriangularView::solve(), kernel(), inverse()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<FullPivLU, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return internal::solve_retval<FullPivLU, Rhs>(*this, b.derived());
+    }
+
+    /** \returns the determinant of the matrix of which
+      * *this is the LU decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the LU decomposition has already been computed.
+      *
+      * \note This is only for square matrices.
+      *
+      * \note For fixed-size matrices of size up to 4, MatrixBase::determinant() offers
+      *       optimized paths.
+      *
+      * \warning a determinant can be very big or small, so for matrices
+      * of large enough dimension, there is a risk of overflow/underflow.
+      *
+      * \sa MatrixBase::determinant()
+      */
+    typename internal::traits<MatrixType>::Scalar determinant() const;
+
+    /** Allows to prescribe a threshold to be used by certain methods, such as rank(),
+      * who need to determine when pivots are to be considered nonzero. This is not used for the
+      * LU decomposition itself.
+      *
+      * When it needs to get the threshold value, Eigen calls threshold(). By default, this
+      * uses a formula to automatically determine a reasonable threshold.
+      * Once you have called the present method setThreshold(const RealScalar&),
+      * your value is used instead.
+      *
+      * \param threshold The new value to use as the threshold.
+      *
+      * A pivot will be considered nonzero if its absolute value is strictly greater than
+      *  \f$ \vert pivot \vert \leqslant threshold \times \vert maxpivot \vert \f$
+      * where maxpivot is the biggest pivot.
+      *
+      * If you want to come back to the default behavior, call setThreshold(Default_t)
+      */
+    FullPivLU& setThreshold(const RealScalar& threshold)
+    {
+      m_usePrescribedThreshold = true;
+      m_prescribedThreshold = threshold;
+      return *this;
+    }
+
+    /** Allows to come back to the default behavior, letting Eigen use its default formula for
+      * determining the threshold.
+      *
+      * You should pass the special object Eigen::Default as parameter here.
+      * \code lu.setThreshold(Eigen::Default); \endcode
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    FullPivLU& setThreshold(Default_t)
+    {
+      m_usePrescribedThreshold = false;
+      return *this;
+    }
+
+    /** Returns the threshold that will be used by certain methods such as rank().
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    RealScalar threshold() const
+    {
+      eigen_assert(m_isInitialized || m_usePrescribedThreshold);
+      return m_usePrescribedThreshold ? m_prescribedThreshold
+      // this formula comes from experimenting (see "LU precision tuning" thread on the list)
+      // and turns out to be identical to Higham's formula used already in LDLt.
+                                      : NumTraits<Scalar>::epsilon() * m_lu.diagonalSize();
+    }
+
+    /** \returns the rank of the matrix of which *this is the LU decomposition.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline Index rank() const
+    {
+      using std::abs;
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold();
+      Index result = 0;
+      for(Index i = 0; i < m_nonzero_pivots; ++i)
+        result += (abs(m_lu.coeff(i,i)) > premultiplied_threshold);
+      return result;
+    }
+
+    /** \returns the dimension of the kernel of the matrix of which *this is the LU decomposition.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline Index dimensionOfKernel() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return cols() - rank();
+    }
+
+    /** \returns true if the matrix of which *this is the LU decomposition represents an injective
+      *          linear map, i.e. has trivial kernel; false otherwise.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isInjective() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return rank() == cols();
+    }
+
+    /** \returns true if the matrix of which *this is the LU decomposition represents a surjective
+      *          linear map; false otherwise.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isSurjective() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return rank() == rows();
+    }
+
+    /** \returns true if the matrix of which *this is the LU decomposition is invertible.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isInvertible() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return isInjective() && (m_lu.rows() == m_lu.cols());
+    }
+
+    /** \returns the inverse of the matrix of which *this is the LU decomposition.
+      *
+      * \note If this matrix is not invertible, the returned matrix has undefined coefficients.
+      *       Use isInvertible() to first determine whether this matrix is invertible.
+      *
+      * \sa MatrixBase::inverse()
+      */
+    inline const internal::solve_retval<FullPivLU,typename MatrixType::IdentityReturnType> inverse() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      eigen_assert(m_lu.rows() == m_lu.cols() && "You can't take the inverse of a non-square matrix!");
+      return internal::solve_retval<FullPivLU,typename MatrixType::IdentityReturnType>
+               (*this, MatrixType::Identity(m_lu.rows(), m_lu.cols()));
+    }
+
+    MatrixType reconstructedMatrix() const;
+
+    inline Index rows() const { return m_lu.rows(); }
+    inline Index cols() const { return m_lu.cols(); }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    MatrixType m_lu;
+    PermutationPType m_p;
+    PermutationQType m_q;
+    IntColVectorType m_rowsTranspositions;
+    IntRowVectorType m_colsTranspositions;
+    Index m_det_pq, m_nonzero_pivots;
+    RealScalar m_maxpivot, m_prescribedThreshold;
+    bool m_isInitialized, m_usePrescribedThreshold;
+};
+
+template<typename MatrixType>
+FullPivLU<MatrixType>::FullPivLU()
+  : m_isInitialized(false), m_usePrescribedThreshold(false)
+{
+}
+
+template<typename MatrixType>
+FullPivLU<MatrixType>::FullPivLU(Index rows, Index cols)
+  : m_lu(rows, cols),
+    m_p(rows),
+    m_q(cols),
+    m_rowsTranspositions(rows),
+    m_colsTranspositions(cols),
+    m_isInitialized(false),
+    m_usePrescribedThreshold(false)
+{
+}
+
+template<typename MatrixType>
+FullPivLU<MatrixType>::FullPivLU(const MatrixType& matrix)
+  : m_lu(matrix.rows(), matrix.cols()),
+    m_p(matrix.rows()),
+    m_q(matrix.cols()),
+    m_rowsTranspositions(matrix.rows()),
+    m_colsTranspositions(matrix.cols()),
+    m_isInitialized(false),
+    m_usePrescribedThreshold(false)
+{
+  compute(matrix);
+}
+
+template<typename MatrixType>
+FullPivLU<MatrixType>& FullPivLU<MatrixType>::compute(const MatrixType& matrix)
+{
+  check_template_parameters();
+  
+  // the permutations are stored as int indices, so just to be sure:
+  eigen_assert(matrix.rows()<=NumTraits<int>::highest() && matrix.cols()<=NumTraits<int>::highest());
+  
+  m_isInitialized = true;
+  m_lu = matrix;
+
+  const Index size = matrix.diagonalSize();
+  const Index rows = matrix.rows();
+  const Index cols = matrix.cols();
+
+  // will store the transpositions, before we accumulate them at the end.
+  // can't accumulate on-the-fly because that will be done in reverse order for the rows.
+  m_rowsTranspositions.resize(matrix.rows());
+  m_colsTranspositions.resize(matrix.cols());
+  Index number_of_transpositions = 0; // number of NONTRIVIAL transpositions, i.e. m_rowsTranspositions[i]!=i
+
+  m_nonzero_pivots = size; // the generic case is that in which all pivots are nonzero (invertible case)
+  m_maxpivot = RealScalar(0);
+
+  for(Index k = 0; k < size; ++k)
+  {
+    // First, we need to find the pivot.
+
+    // biggest coefficient in the remaining bottom-right corner (starting at row k, col k)
+    Index row_of_biggest_in_corner, col_of_biggest_in_corner;
+    RealScalar biggest_in_corner;
+    biggest_in_corner = m_lu.bottomRightCorner(rows-k, cols-k)
+                        .cwiseAbs()
+                        .maxCoeff(&row_of_biggest_in_corner, &col_of_biggest_in_corner);
+    row_of_biggest_in_corner += k; // correct the values! since they were computed in the corner,
+    col_of_biggest_in_corner += k; // need to add k to them.
+
+    if(biggest_in_corner==RealScalar(0))
+    {
+      // before exiting, make sure to initialize the still uninitialized transpositions
+      // in a sane state without destroying what we already have.
+      m_nonzero_pivots = k;
+      for(Index i = k; i < size; ++i)
+      {
+        m_rowsTranspositions.coeffRef(i) = i;
+        m_colsTranspositions.coeffRef(i) = i;
+      }
+      break;
+    }
+
+    if(biggest_in_corner > m_maxpivot) m_maxpivot = biggest_in_corner;
+
+    // Now that we've found the pivot, we need to apply the row/col swaps to
+    // bring it to the location (k,k).
+
+    m_rowsTranspositions.coeffRef(k) = row_of_biggest_in_corner;
+    m_colsTranspositions.coeffRef(k) = col_of_biggest_in_corner;
+    if(k != row_of_biggest_in_corner) {
+      m_lu.row(k).swap(m_lu.row(row_of_biggest_in_corner));
+      ++number_of_transpositions;
+    }
+    if(k != col_of_biggest_in_corner) {
+      m_lu.col(k).swap(m_lu.col(col_of_biggest_in_corner));
+      ++number_of_transpositions;
+    }
+
+    // Now that the pivot is at the right location, we update the remaining
+    // bottom-right corner by Gaussian elimination.
+
+    if(k<rows-1)
+      m_lu.col(k).tail(rows-k-1) /= m_lu.coeff(k,k);
+    if(k<size-1)
+      m_lu.block(k+1,k+1,rows-k-1,cols-k-1).noalias() -= m_lu.col(k).tail(rows-k-1) * m_lu.row(k).tail(cols-k-1);
+  }
+
+  // the main loop is over, we still have to accumulate the transpositions to find the
+  // permutations P and Q
+
+  m_p.setIdentity(rows);
+  for(Index k = size-1; k >= 0; --k)
+    m_p.applyTranspositionOnTheRight(k, m_rowsTranspositions.coeff(k));
+
+  m_q.setIdentity(cols);
+  for(Index k = 0; k < size; ++k)
+    m_q.applyTranspositionOnTheRight(k, m_colsTranspositions.coeff(k));
+
+  m_det_pq = (number_of_transpositions%2) ? -1 : 1;
+  return *this;
+}
+
+template<typename MatrixType>
+typename internal::traits<MatrixType>::Scalar FullPivLU<MatrixType>::determinant() const
+{
+  eigen_assert(m_isInitialized && "LU is not initialized.");
+  eigen_assert(m_lu.rows() == m_lu.cols() && "You can't take the determinant of a non-square matrix!");
+  return Scalar(m_det_pq) * Scalar(m_lu.diagonal().prod());
+}
+
+/** \returns the matrix represented by the decomposition,
+ * i.e., it returns the product: \f$ P^{-1} L U Q^{-1} \f$.
+ * This function is provided for debug purposes. */
+template<typename MatrixType>
+MatrixType FullPivLU<MatrixType>::reconstructedMatrix() const
+{
+  eigen_assert(m_isInitialized && "LU is not initialized.");
+  const Index smalldim = (std::min)(m_lu.rows(), m_lu.cols());
+  // LU
+  MatrixType res(m_lu.rows(),m_lu.cols());
+  // FIXME the .toDenseMatrix() should not be needed...
+  res = m_lu.leftCols(smalldim)
+            .template triangularView<UnitLower>().toDenseMatrix()
+      * m_lu.topRows(smalldim)
+            .template triangularView<Upper>().toDenseMatrix();
+
+  // P^{-1}(LU)
+  res = m_p.inverse() * res;
+
+  // (P^{-1}LU)Q^{-1}
+  res = res * m_q.inverse();
+
+  return res;
+}
+
+/********* Implementation of kernel() **************************************************/
+
+namespace internal {
+template<typename _MatrixType>
+struct kernel_retval<FullPivLU<_MatrixType> >
+  : kernel_retval_base<FullPivLU<_MatrixType> >
+{
+  EIGEN_MAKE_KERNEL_HELPERS(FullPivLU<_MatrixType>)
+
+  enum { MaxSmallDimAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(
+            MatrixType::MaxColsAtCompileTime,
+            MatrixType::MaxRowsAtCompileTime)
+  };
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    using std::abs;
+    const Index cols = dec().matrixLU().cols(), dimker = cols - rank();
+    if(dimker == 0)
+    {
+      // The Kernel is just {0}, so it doesn't have a basis properly speaking, but let's
+      // avoid crashing/asserting as that depends on floating point calculations. Let's
+      // just return a single column vector filled with zeros.
+      dst.setZero();
+      return;
+    }
+
+    /* Let us use the following lemma:
+      *
+      * Lemma: If the matrix A has the LU decomposition PAQ = LU,
+      * then Ker A = Q(Ker U).
+      *
+      * Proof: trivial: just keep in mind that P, Q, L are invertible.
+      */
+
+    /* Thus, all we need to do is to compute Ker U, and then apply Q.
+      *
+      * U is upper triangular, with eigenvalues sorted so that any zeros appear at the end.
+      * Thus, the diagonal of U ends with exactly
+      * dimKer zero's. Let us use that to construct dimKer linearly
+      * independent vectors in Ker U.
+      */
+
+    Matrix<Index, Dynamic, 1, 0, MaxSmallDimAtCompileTime, 1> pivots(rank());
+    RealScalar premultiplied_threshold = dec().maxPivot() * dec().threshold();
+    Index p = 0;
+    for(Index i = 0; i < dec().nonzeroPivots(); ++i)
+      if(abs(dec().matrixLU().coeff(i,i)) > premultiplied_threshold)
+        pivots.coeffRef(p++) = i;
+    eigen_internal_assert(p == rank());
+
+    // we construct a temporaty trapezoid matrix m, by taking the U matrix and
+    // permuting the rows and cols to bring the nonnegligible pivots to the top of
+    // the main diagonal. We need that to be able to apply our triangular solvers.
+    // FIXME when we get triangularView-for-rectangular-matrices, this can be simplified
+    Matrix<typename MatrixType::Scalar, Dynamic, Dynamic, MatrixType::Options,
+           MaxSmallDimAtCompileTime, MatrixType::MaxColsAtCompileTime>
+      m(dec().matrixLU().block(0, 0, rank(), cols));
+    for(Index i = 0; i < rank(); ++i)
+    {
+      if(i) m.row(i).head(i).setZero();
+      m.row(i).tail(cols-i) = dec().matrixLU().row(pivots.coeff(i)).tail(cols-i);
+    }
+    m.block(0, 0, rank(), rank());
+    m.block(0, 0, rank(), rank()).template triangularView<StrictlyLower>().setZero();
+    for(Index i = 0; i < rank(); ++i)
+      m.col(i).swap(m.col(pivots.coeff(i)));
+
+    // ok, we have our trapezoid matrix, we can apply the triangular solver.
+    // notice that the math behind this suggests that we should apply this to the
+    // negative of the RHS, but for performance we just put the negative sign elsewhere, see below.
+    m.topLeftCorner(rank(), rank())
+     .template triangularView<Upper>().solveInPlace(
+        m.topRightCorner(rank(), dimker)
+      );
+
+    // now we must undo the column permutation that we had applied!
+    for(Index i = rank()-1; i >= 0; --i)
+      m.col(i).swap(m.col(pivots.coeff(i)));
+
+    // see the negative sign in the next line, that's what we were talking about above.
+    for(Index i = 0; i < rank(); ++i) dst.row(dec().permutationQ().indices().coeff(i)) = -m.row(i).tail(dimker);
+    for(Index i = rank(); i < cols; ++i) dst.row(dec().permutationQ().indices().coeff(i)).setZero();
+    for(Index k = 0; k < dimker; ++k) dst.coeffRef(dec().permutationQ().indices().coeff(rank()+k), k) = Scalar(1);
+  }
+};
+
+/***** Implementation of image() *****************************************************/
+
+template<typename _MatrixType>
+struct image_retval<FullPivLU<_MatrixType> >
+  : image_retval_base<FullPivLU<_MatrixType> >
+{
+  EIGEN_MAKE_IMAGE_HELPERS(FullPivLU<_MatrixType>)
+
+  enum { MaxSmallDimAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(
+            MatrixType::MaxColsAtCompileTime,
+            MatrixType::MaxRowsAtCompileTime)
+  };
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    using std::abs;
+    if(rank() == 0)
+    {
+      // The Image is just {0}, so it doesn't have a basis properly speaking, but let's
+      // avoid crashing/asserting as that depends on floating point calculations. Let's
+      // just return a single column vector filled with zeros.
+      dst.setZero();
+      return;
+    }
+
+    Matrix<Index, Dynamic, 1, 0, MaxSmallDimAtCompileTime, 1> pivots(rank());
+    RealScalar premultiplied_threshold = dec().maxPivot() * dec().threshold();
+    Index p = 0;
+    for(Index i = 0; i < dec().nonzeroPivots(); ++i)
+      if(abs(dec().matrixLU().coeff(i,i)) > premultiplied_threshold)
+        pivots.coeffRef(p++) = i;
+    eigen_internal_assert(p == rank());
+
+    for(Index i = 0; i < rank(); ++i)
+      dst.col(i) = originalMatrix().col(dec().permutationQ().indices().coeff(pivots.coeff(i)));
+  }
+};
+
+/***** Implementation of solve() *****************************************************/
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<FullPivLU<_MatrixType>, Rhs>
+  : solve_retval_base<FullPivLU<_MatrixType>, Rhs>
+{
+  EIGEN_MAKE_SOLVE_HELPERS(FullPivLU<_MatrixType>,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    /* The decomposition PAQ = LU can be rewritten as A = P^{-1} L U Q^{-1}.
+     * So we proceed as follows:
+     * Step 1: compute c = P * rhs.
+     * Step 2: replace c by the solution x to Lx = c. Exists because L is invertible.
+     * Step 3: replace c by the solution x to Ux = c. May or may not exist.
+     * Step 4: result = Q * c;
+     */
+
+    const Index rows = dec().rows(), cols = dec().cols(),
+              nonzero_pivots = dec().rank();
+    eigen_assert(rhs().rows() == rows);
+    const Index smalldim = (std::min)(rows, cols);
+
+    if(nonzero_pivots == 0)
+    {
+      dst.setZero();
+      return;
+    }
+
+    typename Rhs::PlainObject c(rhs().rows(), rhs().cols());
+
+    // Step 1
+    c = dec().permutationP() * rhs();
+
+    // Step 2
+    dec().matrixLU()
+        .topLeftCorner(smalldim,smalldim)
+        .template triangularView<UnitLower>()
+        .solveInPlace(c.topRows(smalldim));
+    if(rows>cols)
+    {
+      c.bottomRows(rows-cols)
+        -= dec().matrixLU().bottomRows(rows-cols)
+         * c.topRows(cols);
+    }
+
+    // Step 3
+    dec().matrixLU()
+        .topLeftCorner(nonzero_pivots, nonzero_pivots)
+        .template triangularView<Upper>()
+        .solveInPlace(c.topRows(nonzero_pivots));
+
+    // Step 4
+    for(Index i = 0; i < nonzero_pivots; ++i)
+      dst.row(dec().permutationQ().indices().coeff(i)) = c.row(i);
+    for(Index i = nonzero_pivots; i < dec().matrixLU().cols(); ++i)
+      dst.row(dec().permutationQ().indices().coeff(i)).setZero();
+  }
+};
+
+} // end namespace internal
+
+/******* MatrixBase methods *****************************************************************/
+
+/** \lu_module
+  *
+  * \return the full-pivoting LU decomposition of \c *this.
+  *
+  * \sa class FullPivLU
+  */
+template<typename Derived>
+inline const FullPivLU<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::fullPivLu() const
+{
+  return FullPivLU<PlainObject>(eval());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_LU_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/LU/Inverse.h b/vendor/eigen-3.2.8/Eigen/src/LU/Inverse.h
new file mode 100644
index 0000000..3cf8871
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/LU/Inverse.h
@@ -0,0 +1,400 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_INVERSE_H
+#define EIGEN_INVERSE_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/**********************************
+*** General case implementation ***
+**********************************/
+
+template<typename MatrixType, typename ResultType, int Size = MatrixType::RowsAtCompileTime>
+struct compute_inverse
+{
+  static inline void run(const MatrixType& matrix, ResultType& result)
+  {
+    result = matrix.partialPivLu().inverse();
+  }
+};
+
+template<typename MatrixType, typename ResultType, int Size = MatrixType::RowsAtCompileTime>
+struct compute_inverse_and_det_with_check { /* nothing! general case not supported. */ };
+
+/****************************
+*** Size 1 implementation ***
+****************************/
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse<MatrixType, ResultType, 1>
+{
+  static inline void run(const MatrixType& matrix, ResultType& result)
+  {
+    typedef typename MatrixType::Scalar Scalar;
+    result.coeffRef(0,0) = Scalar(1) / matrix.coeff(0,0);
+  }
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse_and_det_with_check<MatrixType, ResultType, 1>
+{
+  static inline void run(
+    const MatrixType& matrix,
+    const typename MatrixType::RealScalar& absDeterminantThreshold,
+    ResultType& result,
+    typename ResultType::Scalar& determinant,
+    bool& invertible
+  )
+  {
+    using std::abs;
+    determinant = matrix.coeff(0,0);
+    invertible = abs(determinant) > absDeterminantThreshold;
+    if(invertible) result.coeffRef(0,0) = typename ResultType::Scalar(1) / determinant;
+  }
+};
+
+/****************************
+*** Size 2 implementation ***
+****************************/
+
+template<typename MatrixType, typename ResultType>
+inline void compute_inverse_size2_helper(
+    const MatrixType& matrix, const typename ResultType::Scalar& invdet,
+    ResultType& result)
+{
+  result.coeffRef(0,0) = matrix.coeff(1,1) * invdet;
+  result.coeffRef(1,0) = -matrix.coeff(1,0) * invdet;
+  result.coeffRef(0,1) = -matrix.coeff(0,1) * invdet;
+  result.coeffRef(1,1) = matrix.coeff(0,0) * invdet;
+}
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse<MatrixType, ResultType, 2>
+{
+  static inline void run(const MatrixType& matrix, ResultType& result)
+  {
+    typedef typename ResultType::Scalar Scalar;
+    const Scalar invdet = typename MatrixType::Scalar(1) / matrix.determinant();
+    compute_inverse_size2_helper(matrix, invdet, result);
+  }
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse_and_det_with_check<MatrixType, ResultType, 2>
+{
+  static inline void run(
+    const MatrixType& matrix,
+    const typename MatrixType::RealScalar& absDeterminantThreshold,
+    ResultType& inverse,
+    typename ResultType::Scalar& determinant,
+    bool& invertible
+  )
+  {
+    using std::abs;
+    typedef typename ResultType::Scalar Scalar;
+    determinant = matrix.determinant();
+    invertible = abs(determinant) > absDeterminantThreshold;
+    if(!invertible) return;
+    const Scalar invdet = Scalar(1) / determinant;
+    compute_inverse_size2_helper(matrix, invdet, inverse);
+  }
+};
+
+/****************************
+*** Size 3 implementation ***
+****************************/
+
+template<typename MatrixType, int i, int j>
+inline typename MatrixType::Scalar cofactor_3x3(const MatrixType& m)
+{
+  enum {
+    i1 = (i+1) % 3,
+    i2 = (i+2) % 3,
+    j1 = (j+1) % 3,
+    j2 = (j+2) % 3
+  };
+  return m.coeff(i1, j1) * m.coeff(i2, j2)
+       - m.coeff(i1, j2) * m.coeff(i2, j1);
+}
+
+template<typename MatrixType, typename ResultType>
+inline void compute_inverse_size3_helper(
+    const MatrixType& matrix,
+    const typename ResultType::Scalar& invdet,
+    const Matrix<typename ResultType::Scalar,3,1>& cofactors_col0,
+    ResultType& result)
+{
+  result.row(0) = cofactors_col0 * invdet;
+  result.coeffRef(1,0) =  cofactor_3x3<MatrixType,0,1>(matrix) * invdet;
+  result.coeffRef(1,1) =  cofactor_3x3<MatrixType,1,1>(matrix) * invdet;
+  result.coeffRef(1,2) =  cofactor_3x3<MatrixType,2,1>(matrix) * invdet;
+  result.coeffRef(2,0) =  cofactor_3x3<MatrixType,0,2>(matrix) * invdet;
+  result.coeffRef(2,1) =  cofactor_3x3<MatrixType,1,2>(matrix) * invdet;
+  result.coeffRef(2,2) =  cofactor_3x3<MatrixType,2,2>(matrix) * invdet;
+}
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse<MatrixType, ResultType, 3>
+{
+  static inline void run(const MatrixType& matrix, ResultType& result)
+  {
+    typedef typename ResultType::Scalar Scalar;
+    Matrix<typename MatrixType::Scalar,3,1> cofactors_col0;
+    cofactors_col0.coeffRef(0) =  cofactor_3x3<MatrixType,0,0>(matrix);
+    cofactors_col0.coeffRef(1) =  cofactor_3x3<MatrixType,1,0>(matrix);
+    cofactors_col0.coeffRef(2) =  cofactor_3x3<MatrixType,2,0>(matrix);
+    const Scalar det = (cofactors_col0.cwiseProduct(matrix.col(0))).sum();
+    const Scalar invdet = Scalar(1) / det;
+    compute_inverse_size3_helper(matrix, invdet, cofactors_col0, result);
+  }
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse_and_det_with_check<MatrixType, ResultType, 3>
+{
+  static inline void run(
+    const MatrixType& matrix,
+    const typename MatrixType::RealScalar& absDeterminantThreshold,
+    ResultType& inverse,
+    typename ResultType::Scalar& determinant,
+    bool& invertible
+  )
+  {
+    using std::abs;
+    typedef typename ResultType::Scalar Scalar;
+    Matrix<Scalar,3,1> cofactors_col0;
+    cofactors_col0.coeffRef(0) =  cofactor_3x3<MatrixType,0,0>(matrix);
+    cofactors_col0.coeffRef(1) =  cofactor_3x3<MatrixType,1,0>(matrix);
+    cofactors_col0.coeffRef(2) =  cofactor_3x3<MatrixType,2,0>(matrix);
+    determinant = (cofactors_col0.cwiseProduct(matrix.col(0))).sum();
+    invertible = abs(determinant) > absDeterminantThreshold;
+    if(!invertible) return;
+    const Scalar invdet = Scalar(1) / determinant;
+    compute_inverse_size3_helper(matrix, invdet, cofactors_col0, inverse);
+  }
+};
+
+/****************************
+*** Size 4 implementation ***
+****************************/
+
+template<typename Derived>
+inline const typename Derived::Scalar general_det3_helper
+(const MatrixBase<Derived>& matrix, int i1, int i2, int i3, int j1, int j2, int j3)
+{
+  return matrix.coeff(i1,j1)
+         * (matrix.coeff(i2,j2) * matrix.coeff(i3,j3) - matrix.coeff(i2,j3) * matrix.coeff(i3,j2));
+}
+
+template<typename MatrixType, int i, int j>
+inline typename MatrixType::Scalar cofactor_4x4(const MatrixType& matrix)
+{
+  enum {
+    i1 = (i+1) % 4,
+    i2 = (i+2) % 4,
+    i3 = (i+3) % 4,
+    j1 = (j+1) % 4,
+    j2 = (j+2) % 4,
+    j3 = (j+3) % 4
+  };
+  return general_det3_helper(matrix, i1, i2, i3, j1, j2, j3)
+       + general_det3_helper(matrix, i2, i3, i1, j1, j2, j3)
+       + general_det3_helper(matrix, i3, i1, i2, j1, j2, j3);
+}
+
+template<int Arch, typename Scalar, typename MatrixType, typename ResultType>
+struct compute_inverse_size4
+{
+  static void run(const MatrixType& matrix, ResultType& result)
+  {
+    result.coeffRef(0,0) =  cofactor_4x4<MatrixType,0,0>(matrix);
+    result.coeffRef(1,0) = -cofactor_4x4<MatrixType,0,1>(matrix);
+    result.coeffRef(2,0) =  cofactor_4x4<MatrixType,0,2>(matrix);
+    result.coeffRef(3,0) = -cofactor_4x4<MatrixType,0,3>(matrix);
+    result.coeffRef(0,2) =  cofactor_4x4<MatrixType,2,0>(matrix);
+    result.coeffRef(1,2) = -cofactor_4x4<MatrixType,2,1>(matrix);
+    result.coeffRef(2,2) =  cofactor_4x4<MatrixType,2,2>(matrix);
+    result.coeffRef(3,2) = -cofactor_4x4<MatrixType,2,3>(matrix);
+    result.coeffRef(0,1) = -cofactor_4x4<MatrixType,1,0>(matrix);
+    result.coeffRef(1,1) =  cofactor_4x4<MatrixType,1,1>(matrix);
+    result.coeffRef(2,1) = -cofactor_4x4<MatrixType,1,2>(matrix);
+    result.coeffRef(3,1) =  cofactor_4x4<MatrixType,1,3>(matrix);
+    result.coeffRef(0,3) = -cofactor_4x4<MatrixType,3,0>(matrix);
+    result.coeffRef(1,3) =  cofactor_4x4<MatrixType,3,1>(matrix);
+    result.coeffRef(2,3) = -cofactor_4x4<MatrixType,3,2>(matrix);
+    result.coeffRef(3,3) =  cofactor_4x4<MatrixType,3,3>(matrix);
+    result /= (matrix.col(0).cwiseProduct(result.row(0).transpose())).sum();
+  }
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse<MatrixType, ResultType, 4>
+ : compute_inverse_size4<Architecture::Target, typename MatrixType::Scalar,
+                            MatrixType, ResultType>
+{
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse_and_det_with_check<MatrixType, ResultType, 4>
+{
+  static inline void run(
+    const MatrixType& matrix,
+    const typename MatrixType::RealScalar& absDeterminantThreshold,
+    ResultType& inverse,
+    typename ResultType::Scalar& determinant,
+    bool& invertible
+  )
+  {
+    using std::abs;
+    determinant = matrix.determinant();
+    invertible = abs(determinant) > absDeterminantThreshold;
+    if(invertible) compute_inverse<MatrixType, ResultType>::run(matrix, inverse);
+  }
+};
+
+/*************************
+*** MatrixBase methods ***
+*************************/
+
+template<typename MatrixType>
+struct traits<inverse_impl<MatrixType> >
+{
+  typedef typename MatrixType::PlainObject ReturnType;
+};
+
+template<typename MatrixType>
+struct inverse_impl : public ReturnByValue<inverse_impl<MatrixType> >
+{
+  typedef typename MatrixType::Index Index;
+  typedef typename internal::eval<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
+  MatrixTypeNested m_matrix;
+
+  inverse_impl(const MatrixType& matrix)
+    : m_matrix(matrix)
+  {}
+
+  inline Index rows() const { return m_matrix.rows(); }
+  inline Index cols() const { return m_matrix.cols(); }
+
+  template<typename Dest> inline void evalTo(Dest& dst) const
+  {
+    const int Size = EIGEN_PLAIN_ENUM_MIN(MatrixType::ColsAtCompileTime,Dest::ColsAtCompileTime);
+    EIGEN_ONLY_USED_FOR_DEBUG(Size);
+    eigen_assert(( (Size<=1) || (Size>4) || (extract_data(m_matrix)!=extract_data(dst)))
+              && "Aliasing problem detected in inverse(), you need to do inverse().eval() here.");
+
+    compute_inverse<MatrixTypeNestedCleaned, Dest>::run(m_matrix, dst);
+  }
+};
+
+} // end namespace internal
+
+/** \lu_module
+  *
+  * \returns the matrix inverse of this matrix.
+  *
+  * For small fixed sizes up to 4x4, this method uses cofactors.
+  * In the general case, this method uses class PartialPivLU.
+  *
+  * \note This matrix must be invertible, otherwise the result is undefined. If you need an
+  * invertibility check, do the following:
+  * \li for fixed sizes up to 4x4, use computeInverseAndDetWithCheck().
+  * \li for the general case, use class FullPivLU.
+  *
+  * Example: \include MatrixBase_inverse.cpp
+  * Output: \verbinclude MatrixBase_inverse.out
+  *
+  * \sa computeInverseAndDetWithCheck()
+  */
+template<typename Derived>
+inline const internal::inverse_impl<Derived> MatrixBase<Derived>::inverse() const
+{
+  EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsInteger,THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES)
+  eigen_assert(rows() == cols());
+  return internal::inverse_impl<Derived>(derived());
+}
+
+/** \lu_module
+  *
+  * Computation of matrix inverse and determinant, with invertibility check.
+  *
+  * This is only for fixed-size square matrices of size up to 4x4.
+  *
+  * \param inverse Reference to the matrix in which to store the inverse.
+  * \param determinant Reference to the variable in which to store the determinant.
+  * \param invertible Reference to the bool variable in which to store whether the matrix is invertible.
+  * \param absDeterminantThreshold Optional parameter controlling the invertibility check.
+  *                                The matrix will be declared invertible if the absolute value of its
+  *                                determinant is greater than this threshold.
+  *
+  * Example: \include MatrixBase_computeInverseAndDetWithCheck.cpp
+  * Output: \verbinclude MatrixBase_computeInverseAndDetWithCheck.out
+  *
+  * \sa inverse(), computeInverseWithCheck()
+  */
+template<typename Derived>
+template<typename ResultType>
+inline void MatrixBase<Derived>::computeInverseAndDetWithCheck(
+    ResultType& inverse,
+    typename ResultType::Scalar& determinant,
+    bool& invertible,
+    const RealScalar& absDeterminantThreshold
+  ) const
+{
+  // i'd love to put some static assertions there, but SFINAE means that they have no effect...
+  eigen_assert(rows() == cols());
+  // for 2x2, it's worth giving a chance to avoid evaluating.
+  // for larger sizes, evaluating has negligible cost and limits code size.
+  typedef typename internal::conditional<
+    RowsAtCompileTime == 2,
+    typename internal::remove_all<typename internal::nested<Derived, 2>::type>::type,
+    PlainObject
+  >::type MatrixType;
+  internal::compute_inverse_and_det_with_check<MatrixType, ResultType>::run
+    (derived(), absDeterminantThreshold, inverse, determinant, invertible);
+}
+
+/** \lu_module
+  *
+  * Computation of matrix inverse, with invertibility check.
+  *
+  * This is only for fixed-size square matrices of size up to 4x4.
+  *
+  * \param inverse Reference to the matrix in which to store the inverse.
+  * \param invertible Reference to the bool variable in which to store whether the matrix is invertible.
+  * \param absDeterminantThreshold Optional parameter controlling the invertibility check.
+  *                                The matrix will be declared invertible if the absolute value of its
+  *                                determinant is greater than this threshold.
+  *
+  * Example: \include MatrixBase_computeInverseWithCheck.cpp
+  * Output: \verbinclude MatrixBase_computeInverseWithCheck.out
+  *
+  * \sa inverse(), computeInverseAndDetWithCheck()
+  */
+template<typename Derived>
+template<typename ResultType>
+inline void MatrixBase<Derived>::computeInverseWithCheck(
+    ResultType& inverse,
+    bool& invertible,
+    const RealScalar& absDeterminantThreshold
+  ) const
+{
+  RealScalar determinant;
+  // i'd love to put some static assertions there, but SFINAE means that they have no effect...
+  eigen_assert(rows() == cols());
+  computeInverseAndDetWithCheck(inverse,determinant,invertible,absDeterminantThreshold);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_INVERSE_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/LU/PartialPivLU.h b/vendor/eigen-3.2.8/Eigen/src/LU/PartialPivLU.h
new file mode 100644
index 0000000..7d1db94
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/LU/PartialPivLU.h
@@ -0,0 +1,509 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PARTIALLU_H
+#define EIGEN_PARTIALLU_H
+
+namespace Eigen { 
+
+/** \ingroup LU_Module
+  *
+  * \class PartialPivLU
+  *
+  * \brief LU decomposition of a matrix with partial pivoting, and related features
+  *
+  * \param MatrixType the type of the matrix of which we are computing the LU decomposition
+  *
+  * This class represents a LU decomposition of a \b square \b invertible matrix, with partial pivoting: the matrix A
+  * is decomposed as A = PLU where L is unit-lower-triangular, U is upper-triangular, and P
+  * is a permutation matrix.
+  *
+  * Typically, partial pivoting LU decomposition is only considered numerically stable for square invertible
+  * matrices. Thus LAPACK's dgesv and dgesvx require the matrix to be square and invertible. The present class
+  * does the same. It will assert that the matrix is square, but it won't (actually it can't) check that the
+  * matrix is invertible: it is your task to check that you only use this decomposition on invertible matrices.
+  *
+  * The guaranteed safe alternative, working for all matrices, is the full pivoting LU decomposition, provided
+  * by class FullPivLU.
+  *
+  * This is \b not a rank-revealing LU decomposition. Many features are intentionally absent from this class,
+  * such as rank computation. If you need these features, use class FullPivLU.
+  *
+  * This LU decomposition is suitable to invert invertible matrices. It is what MatrixBase::inverse() uses
+  * in the general case.
+  * On the other hand, it is \b not suitable to determine whether a given matrix is invertible.
+  *
+  * The data of the LU decomposition can be directly accessed through the methods matrixLU(), permutationP().
+  *
+  * \sa MatrixBase::partialPivLu(), MatrixBase::determinant(), MatrixBase::inverse(), MatrixBase::computeInverse(), class FullPivLU
+  */
+template<typename _MatrixType> class PartialPivLU
+{
+  public:
+
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+    typedef typename internal::traits<MatrixType>::StorageKind StorageKind;
+    typedef typename MatrixType::Index Index;
+    typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationType;
+    typedef Transpositions<RowsAtCompileTime, MaxRowsAtCompileTime> TranspositionType;
+
+
+    /**
+    * \brief Default Constructor.
+    *
+    * The default constructor is useful in cases in which the user intends to
+    * perform decompositions via PartialPivLU::compute(const MatrixType&).
+    */
+    PartialPivLU();
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa PartialPivLU()
+      */
+    PartialPivLU(Index size);
+
+    /** Constructor.
+      *
+      * \param matrix the matrix of which to compute the LU decomposition.
+      *
+      * \warning The matrix should have full rank (e.g. if it's square, it should be invertible).
+      * If you need to deal with non-full rank, use class FullPivLU instead.
+      */
+    PartialPivLU(const MatrixType& matrix);
+
+    PartialPivLU& compute(const MatrixType& matrix);
+
+    /** \returns the LU decomposition matrix: the upper-triangular part is U, the
+      * unit-lower-triangular part is L (at least for square matrices; in the non-square
+      * case, special care is needed, see the documentation of class FullPivLU).
+      *
+      * \sa matrixL(), matrixU()
+      */
+    inline const MatrixType& matrixLU() const
+    {
+      eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+      return m_lu;
+    }
+
+    /** \returns the permutation matrix P.
+      */
+    inline const PermutationType& permutationP() const
+    {
+      eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+      return m_p;
+    }
+
+    /** This method returns the solution x to the equation Ax=b, where A is the matrix of which
+      * *this is the LU decomposition.
+      *
+      * \param b the right-hand-side of the equation to solve. Can be a vector or a matrix,
+      *          the only requirement in order for the equation to make sense is that
+      *          b.rows()==A.rows(), where A is the matrix of which *this is the LU decomposition.
+      *
+      * \returns the solution.
+      *
+      * Example: \include PartialPivLU_solve.cpp
+      * Output: \verbinclude PartialPivLU_solve.out
+      *
+      * Since this PartialPivLU class assumes anyway that the matrix A is invertible, the solution
+      * theoretically exists and is unique regardless of b.
+      *
+      * \sa TriangularView::solve(), inverse(), computeInverse()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<PartialPivLU, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+      return internal::solve_retval<PartialPivLU, Rhs>(*this, b.derived());
+    }
+
+    /** \returns the inverse of the matrix of which *this is the LU decomposition.
+      *
+      * \warning The matrix being decomposed here is assumed to be invertible. If you need to check for
+      *          invertibility, use class FullPivLU instead.
+      *
+      * \sa MatrixBase::inverse(), LU::inverse()
+      */
+    inline const internal::solve_retval<PartialPivLU,typename MatrixType::IdentityReturnType> inverse() const
+    {
+      eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+      return internal::solve_retval<PartialPivLU,typename MatrixType::IdentityReturnType>
+               (*this, MatrixType::Identity(m_lu.rows(), m_lu.cols()));
+    }
+
+    /** \returns the determinant of the matrix of which
+      * *this is the LU decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the LU decomposition has already been computed.
+      *
+      * \note For fixed-size matrices of size up to 4, MatrixBase::determinant() offers
+      *       optimized paths.
+      *
+      * \warning a determinant can be very big or small, so for matrices
+      * of large enough dimension, there is a risk of overflow/underflow.
+      *
+      * \sa MatrixBase::determinant()
+      */
+    typename internal::traits<MatrixType>::Scalar determinant() const;
+
+    MatrixType reconstructedMatrix() const;
+
+    inline Index rows() const { return m_lu.rows(); }
+    inline Index cols() const { return m_lu.cols(); }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    MatrixType m_lu;
+    PermutationType m_p;
+    TranspositionType m_rowsTranspositions;
+    Index m_det_p;
+    bool m_isInitialized;
+};
+
+template<typename MatrixType>
+PartialPivLU<MatrixType>::PartialPivLU()
+  : m_lu(),
+    m_p(),
+    m_rowsTranspositions(),
+    m_det_p(0),
+    m_isInitialized(false)
+{
+}
+
+template<typename MatrixType>
+PartialPivLU<MatrixType>::PartialPivLU(Index size)
+  : m_lu(size, size),
+    m_p(size),
+    m_rowsTranspositions(size),
+    m_det_p(0),
+    m_isInitialized(false)
+{
+}
+
+template<typename MatrixType>
+PartialPivLU<MatrixType>::PartialPivLU(const MatrixType& matrix)
+  : m_lu(matrix.rows(), matrix.rows()),
+    m_p(matrix.rows()),
+    m_rowsTranspositions(matrix.rows()),
+    m_det_p(0),
+    m_isInitialized(false)
+{
+  compute(matrix);
+}
+
+namespace internal {
+
+/** \internal This is the blocked version of fullpivlu_unblocked() */
+template<typename Scalar, int StorageOrder, typename PivIndex>
+struct partial_lu_impl
+{
+  // FIXME add a stride to Map, so that the following mapping becomes easier,
+  // another option would be to create an expression being able to automatically
+  // warp any Map, Matrix, and Block expressions as a unique type, but since that's exactly
+  // a Map + stride, why not adding a stride to Map, and convenient ctors from a Matrix,
+  // and Block.
+  typedef Map<Matrix<Scalar, Dynamic, Dynamic, StorageOrder> > MapLU;
+  typedef Block<MapLU, Dynamic, Dynamic> MatrixType;
+  typedef Block<MatrixType,Dynamic,Dynamic> BlockType;
+  typedef typename MatrixType::RealScalar RealScalar;
+  typedef typename MatrixType::Index Index;
+
+  /** \internal performs the LU decomposition in-place of the matrix \a lu
+    * using an unblocked algorithm.
+    *
+    * In addition, this function returns the row transpositions in the
+    * vector \a row_transpositions which must have a size equal to the number
+    * of columns of the matrix \a lu, and an integer \a nb_transpositions
+    * which returns the actual number of transpositions.
+    *
+    * \returns The index of the first pivot which is exactly zero if any, or a negative number otherwise.
+    */
+  static Index unblocked_lu(MatrixType& lu, PivIndex* row_transpositions, PivIndex& nb_transpositions)
+  {
+    const Index rows = lu.rows();
+    const Index cols = lu.cols();
+    const Index size = (std::min)(rows,cols);
+    nb_transpositions = 0;
+    Index first_zero_pivot = -1;
+    for(Index k = 0; k < size; ++k)
+    {
+      Index rrows = rows-k-1;
+      Index rcols = cols-k-1;
+        
+      Index row_of_biggest_in_col;
+      RealScalar biggest_in_corner
+        = lu.col(k).tail(rows-k).cwiseAbs().maxCoeff(&row_of_biggest_in_col);
+      row_of_biggest_in_col += k;
+
+      row_transpositions[k] = PivIndex(row_of_biggest_in_col);
+
+      if(biggest_in_corner != RealScalar(0))
+      {
+        if(k != row_of_biggest_in_col)
+        {
+          lu.row(k).swap(lu.row(row_of_biggest_in_col));
+          ++nb_transpositions;
+        }
+
+        // FIXME shall we introduce a safe quotient expression in cas 1/lu.coeff(k,k)
+        // overflow but not the actual quotient?
+        lu.col(k).tail(rrows) /= lu.coeff(k,k);
+      }
+      else if(first_zero_pivot==-1)
+      {
+        // the pivot is exactly zero, we record the index of the first pivot which is exactly 0,
+        // and continue the factorization such we still have A = PLU
+        first_zero_pivot = k;
+      }
+
+      if(k<rows-1)
+        lu.bottomRightCorner(rrows,rcols).noalias() -= lu.col(k).tail(rrows) * lu.row(k).tail(rcols);
+    }
+    return first_zero_pivot;
+  }
+
+  /** \internal performs the LU decomposition in-place of the matrix represented
+    * by the variables \a rows, \a cols, \a lu_data, and \a lu_stride using a
+    * recursive, blocked algorithm.
+    *
+    * In addition, this function returns the row transpositions in the
+    * vector \a row_transpositions which must have a size equal to the number
+    * of columns of the matrix \a lu, and an integer \a nb_transpositions
+    * which returns the actual number of transpositions.
+    *
+    * \returns The index of the first pivot which is exactly zero if any, or a negative number otherwise.
+    *
+    * \note This very low level interface using pointers, etc. is to:
+    *   1 - reduce the number of instanciations to the strict minimum
+    *   2 - avoid infinite recursion of the instanciations with Block<Block<Block<...> > >
+    */
+  static Index blocked_lu(Index rows, Index cols, Scalar* lu_data, Index luStride, PivIndex* row_transpositions, PivIndex& nb_transpositions, Index maxBlockSize=256)
+  {
+    MapLU lu1(lu_data,StorageOrder==RowMajor?rows:luStride,StorageOrder==RowMajor?luStride:cols);
+    MatrixType lu(lu1,0,0,rows,cols);
+
+    const Index size = (std::min)(rows,cols);
+
+    // if the matrix is too small, no blocking:
+    if(size<=16)
+    {
+      return unblocked_lu(lu, row_transpositions, nb_transpositions);
+    }
+
+    // automatically adjust the number of subdivisions to the size
+    // of the matrix so that there is enough sub blocks:
+    Index blockSize;
+    {
+      blockSize = size/8;
+      blockSize = (blockSize/16)*16;
+      blockSize = (std::min)((std::max)(blockSize,Index(8)), maxBlockSize);
+    }
+
+    nb_transpositions = 0;
+    Index first_zero_pivot = -1;
+    for(Index k = 0; k < size; k+=blockSize)
+    {
+      Index bs = (std::min)(size-k,blockSize); // actual size of the block
+      Index trows = rows - k - bs; // trailing rows
+      Index tsize = size - k - bs; // trailing size
+
+      // partition the matrix:
+      //                          A00 | A01 | A02
+      // lu  = A_0 | A_1 | A_2 =  A10 | A11 | A12
+      //                          A20 | A21 | A22
+      BlockType A_0(lu,0,0,rows,k);
+      BlockType A_2(lu,0,k+bs,rows,tsize);
+      BlockType A11(lu,k,k,bs,bs);
+      BlockType A12(lu,k,k+bs,bs,tsize);
+      BlockType A21(lu,k+bs,k,trows,bs);
+      BlockType A22(lu,k+bs,k+bs,trows,tsize);
+
+      PivIndex nb_transpositions_in_panel;
+      // recursively call the blocked LU algorithm on [A11^T A21^T]^T
+      // with a very small blocking size:
+      Index ret = blocked_lu(trows+bs, bs, &lu.coeffRef(k,k), luStride,
+                   row_transpositions+k, nb_transpositions_in_panel, 16);
+      if(ret>=0 && first_zero_pivot==-1)
+        first_zero_pivot = k+ret;
+
+      nb_transpositions += nb_transpositions_in_panel;
+      // update permutations and apply them to A_0
+      for(Index i=k; i<k+bs; ++i)
+      {
+        Index piv = (row_transpositions[i] += k);
+        A_0.row(i).swap(A_0.row(piv));
+      }
+
+      if(trows)
+      {
+        // apply permutations to A_2
+        for(Index i=k;i<k+bs; ++i)
+          A_2.row(i).swap(A_2.row(row_transpositions[i]));
+
+        // A12 = A11^-1 A12
+        A11.template triangularView<UnitLower>().solveInPlace(A12);
+
+        A22.noalias() -= A21 * A12;
+      }
+    }
+    return first_zero_pivot;
+  }
+};
+
+/** \internal performs the LU decomposition with partial pivoting in-place.
+  */
+template<typename MatrixType, typename TranspositionType>
+void partial_lu_inplace(MatrixType& lu, TranspositionType& row_transpositions, typename TranspositionType::Index& nb_transpositions)
+{
+  eigen_assert(lu.cols() == row_transpositions.size());
+  eigen_assert((&row_transpositions.coeffRef(1)-&row_transpositions.coeffRef(0)) == 1);
+
+  partial_lu_impl
+    <typename MatrixType::Scalar, MatrixType::Flags&RowMajorBit?RowMajor:ColMajor, typename TranspositionType::Index>
+    ::blocked_lu(lu.rows(), lu.cols(), &lu.coeffRef(0,0), lu.outerStride(), &row_transpositions.coeffRef(0), nb_transpositions);
+}
+
+} // end namespace internal
+
+template<typename MatrixType>
+PartialPivLU<MatrixType>& PartialPivLU<MatrixType>::compute(const MatrixType& matrix)
+{
+  check_template_parameters();
+  
+  // the row permutation is stored as int indices, so just to be sure:
+  eigen_assert(matrix.rows()<NumTraits<int>::highest());
+  
+  m_lu = matrix;
+
+  eigen_assert(matrix.rows() == matrix.cols() && "PartialPivLU is only for square (and moreover invertible) matrices");
+  const Index size = matrix.rows();
+
+  m_rowsTranspositions.resize(size);
+
+  typename TranspositionType::Index nb_transpositions;
+  internal::partial_lu_inplace(m_lu, m_rowsTranspositions, nb_transpositions);
+  m_det_p = (nb_transpositions%2) ? -1 : 1;
+
+  m_p = m_rowsTranspositions;
+
+  m_isInitialized = true;
+  return *this;
+}
+
+template<typename MatrixType>
+typename internal::traits<MatrixType>::Scalar PartialPivLU<MatrixType>::determinant() const
+{
+  eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+  return Scalar(m_det_p) * m_lu.diagonal().prod();
+}
+
+/** \returns the matrix represented by the decomposition,
+ * i.e., it returns the product: P^{-1} L U.
+ * This function is provided for debug purpose. */
+template<typename MatrixType>
+MatrixType PartialPivLU<MatrixType>::reconstructedMatrix() const
+{
+  eigen_assert(m_isInitialized && "LU is not initialized.");
+  // LU
+  MatrixType res = m_lu.template triangularView<UnitLower>().toDenseMatrix()
+                 * m_lu.template triangularView<Upper>();
+
+  // P^{-1}(LU)
+  res = m_p.inverse() * res;
+
+  return res;
+}
+
+/***** Implementation of solve() *****************************************************/
+
+namespace internal {
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<PartialPivLU<_MatrixType>, Rhs>
+  : solve_retval_base<PartialPivLU<_MatrixType>, Rhs>
+{
+  EIGEN_MAKE_SOLVE_HELPERS(PartialPivLU<_MatrixType>,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    /* The decomposition PA = LU can be rewritten as A = P^{-1} L U.
+    * So we proceed as follows:
+    * Step 1: compute c = Pb.
+    * Step 2: replace c by the solution x to Lx = c.
+    * Step 3: replace c by the solution x to Ux = c.
+    */
+
+    eigen_assert(rhs().rows() == dec().matrixLU().rows());
+
+    // Step 1
+    dst = dec().permutationP() * rhs();
+
+    // Step 2
+    dec().matrixLU().template triangularView<UnitLower>().solveInPlace(dst);
+
+    // Step 3
+    dec().matrixLU().template triangularView<Upper>().solveInPlace(dst);
+  }
+};
+
+} // end namespace internal
+
+/******** MatrixBase methods *******/
+
+/** \lu_module
+  *
+  * \return the partial-pivoting LU decomposition of \c *this.
+  *
+  * \sa class PartialPivLU
+  */
+template<typename Derived>
+inline const PartialPivLU<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::partialPivLu() const
+{
+  return PartialPivLU<PlainObject>(eval());
+}
+
+#if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
+/** \lu_module
+  *
+  * Synonym of partialPivLu().
+  *
+  * \return the partial-pivoting LU decomposition of \c *this.
+  *
+  * \sa class PartialPivLU
+  */
+template<typename Derived>
+inline const PartialPivLU<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::lu() const
+{
+  return PartialPivLU<PlainObject>(eval());
+}
+#endif
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARTIALLU_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/LU/PartialPivLU_MKL.h b/vendor/eigen-3.2.8/Eigen/src/LU/PartialPivLU_MKL.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/LU/PartialPivLU_MKL.h
rename to vendor/eigen-3.2.8/Eigen/src/LU/PartialPivLU_MKL.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/LU/arch/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/LU/arch/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/LU/arch/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/LU/arch/CMakeLists.txt
diff --git a/vendor/eigen-3.1.91/Eigen/src/LU/arch/Inverse_SSE.h b/vendor/eigen-3.2.8/Eigen/src/LU/arch/Inverse_SSE.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/LU/arch/Inverse_SSE.h
rename to vendor/eigen-3.2.8/Eigen/src/LU/arch/Inverse_SSE.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/MetisSupport/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/MetisSupport/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/MetisSupport/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/MetisSupport/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/MetisSupport/MetisSupport.h b/vendor/eigen-3.2.8/Eigen/src/MetisSupport/MetisSupport.h
new file mode 100644
index 0000000..f2bbef2
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/MetisSupport/MetisSupport.h
@@ -0,0 +1,137 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef METIS_SUPPORT_H
+#define METIS_SUPPORT_H
+
+namespace Eigen {
+/**
+ * Get the fill-reducing ordering from the METIS package
+ * 
+ * If A is the original matrix and Ap is the permuted matrix, 
+ * the fill-reducing permutation is defined as follows :
+ * Row (column) i of A is the matperm(i) row (column) of Ap. 
+ * WARNING: As computed by METIS, this corresponds to the vector iperm (instead of perm)
+ */
+template <typename Index>
+class MetisOrdering
+{
+public:
+  typedef PermutationMatrix<Dynamic,Dynamic,Index> PermutationType;
+  typedef Matrix<Index,Dynamic,1> IndexVector; 
+  
+  template <typename MatrixType>
+  void get_symmetrized_graph(const MatrixType& A)
+  {
+    Index m = A.cols(); 
+    eigen_assert((A.rows() == A.cols()) && "ONLY FOR SQUARED MATRICES");
+    // Get the transpose of the input matrix 
+    MatrixType At = A.transpose(); 
+    // Get the number of nonzeros elements in each row/col of At+A
+    Index TotNz = 0; 
+    IndexVector visited(m); 
+    visited.setConstant(-1); 
+    for (int j = 0; j < m; j++)
+    {
+      // Compute the union structure of of A(j,:) and At(j,:)
+      visited(j) = j; // Do not include the diagonal element
+      // Get the nonzeros in row/column j of A
+      for (typename MatrixType::InnerIterator it(A, j); it; ++it)
+      {
+        Index idx = it.index(); // Get the row index (for column major) or column index (for row major)
+        if (visited(idx) != j ) 
+        {
+          visited(idx) = j; 
+          ++TotNz; 
+        }
+      }
+      //Get the nonzeros in row/column j of At
+      for (typename MatrixType::InnerIterator it(At, j); it; ++it)
+      {
+        Index idx = it.index(); 
+        if(visited(idx) != j)
+        {
+          visited(idx) = j; 
+          ++TotNz; 
+        }
+      }
+    }
+    // Reserve place for A + At
+    m_indexPtr.resize(m+1);
+    m_innerIndices.resize(TotNz); 
+
+    // Now compute the real adjacency list of each column/row 
+    visited.setConstant(-1); 
+    Index CurNz = 0; 
+    for (int j = 0; j < m; j++)
+    {
+      m_indexPtr(j) = CurNz; 
+      
+      visited(j) = j; // Do not include the diagonal element
+      // Add the pattern of row/column j of A to A+At
+      for (typename MatrixType::InnerIterator it(A,j); it; ++it)
+      {
+        Index idx = it.index(); // Get the row index (for column major) or column index (for row major)
+        if (visited(idx) != j ) 
+        {
+          visited(idx) = j; 
+          m_innerIndices(CurNz) = idx; 
+          CurNz++; 
+        }
+      }
+      //Add the pattern of row/column j of At to A+At
+      for (typename MatrixType::InnerIterator it(At, j); it; ++it)
+      {
+        Index idx = it.index(); 
+        if(visited(idx) != j)
+        {
+          visited(idx) = j; 
+          m_innerIndices(CurNz) = idx; 
+          ++CurNz; 
+        }
+      }
+    }
+    m_indexPtr(m) = CurNz;    
+  }
+  
+  template <typename MatrixType>
+  void operator() (const MatrixType& A, PermutationType& matperm)
+  {
+     Index m = A.cols();
+     IndexVector perm(m),iperm(m); 
+    // First, symmetrize the matrix graph. 
+     get_symmetrized_graph(A); 
+     int output_error;
+     
+     // Call the fill-reducing routine from METIS 
+     output_error = METIS_NodeND(&m, m_indexPtr.data(), m_innerIndices.data(), NULL, NULL, perm.data(), iperm.data());
+     
+    if(output_error != METIS_OK) 
+    {
+      //FIXME The ordering interface should define a class of possible errors 
+     std::cerr << "ERROR WHILE CALLING THE METIS PACKAGE \n"; 
+     return; 
+    }
+    
+    // Get the fill-reducing permutation 
+    //NOTE:  If Ap is the permuted matrix then perm and iperm vectors are defined as follows 
+    // Row (column) i of Ap is the perm(i) row(column) of A, and row (column) i of A is the iperm(i) row(column) of Ap
+    
+     matperm.resize(m);
+     for (int j = 0; j < m; j++)
+       matperm.indices()(iperm(j)) = j;
+   
+  }
+  
+  protected:
+    IndexVector m_indexPtr; // Pointer to the adjacenccy list of each row/column
+    IndexVector m_innerIndices; // Adjacency list 
+};
+
+}// end namespace eigen 
+#endif
diff --git a/vendor/eigen-3.2.8/Eigen/src/OrderingMethods/Amd.h b/vendor/eigen-3.2.8/Eigen/src/OrderingMethods/Amd.h
new file mode 100644
index 0000000..658b954
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/OrderingMethods/Amd.h
@@ -0,0 +1,444 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+
+/*
+
+NOTE: this routine has been adapted from the CSparse library:
+
+Copyright (c) 2006, Timothy A. Davis.
+http://www.suitesparse.com
+
+CSparse is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+CSparse is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this Module; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+*/
+
+#include "../Core/util/NonMPL2.h"
+
+#ifndef EIGEN_SPARSE_AMD_H
+#define EIGEN_SPARSE_AMD_H
+
+namespace Eigen { 
+
+namespace internal {
+  
+template<typename T> inline T amd_flip(const T& i) { return -i-2; }
+template<typename T> inline T amd_unflip(const T& i) { return i<0 ? amd_flip(i) : i; }
+template<typename T0, typename T1> inline bool amd_marked(const T0* w, const T1& j) { return w[j]<0; }
+template<typename T0, typename T1> inline void amd_mark(const T0* w, const T1& j) { return w[j] = amd_flip(w[j]); }
+
+/* clear w */
+template<typename Index>
+static int cs_wclear (Index mark, Index lemax, Index *w, Index n)
+{
+  Index k;
+  if(mark < 2 || (mark + lemax < 0))
+  {
+    for(k = 0; k < n; k++)
+      if(w[k] != 0)
+        w[k] = 1;
+    mark = 2;
+  }
+  return (mark);     /* at this point, w[0..n-1] < mark holds */
+}
+
+/* depth-first search and postorder of a tree rooted at node j */
+template<typename Index>
+Index cs_tdfs(Index j, Index k, Index *head, const Index *next, Index *post, Index *stack)
+{
+  int i, p, top = 0;
+  if(!head || !next || !post || !stack) return (-1);    /* check inputs */
+  stack[0] = j;                 /* place j on the stack */
+  while (top >= 0)                /* while (stack is not empty) */
+  {
+    p = stack[top];           /* p = top of stack */
+    i = head[p];              /* i = youngest child of p */
+    if(i == -1)
+    {
+      top--;                 /* p has no unordered children left */
+      post[k++] = p;        /* node p is the kth postordered node */
+    }
+    else
+    {
+      head[p] = next[i];   /* remove i from children of p */
+      stack[++top] = i;     /* start dfs on child node i */
+    }
+  }
+  return k;
+}
+
+
+/** \internal
+  * \ingroup OrderingMethods_Module 
+  * Approximate minimum degree ordering algorithm.
+  * \returns the permutation P reducing the fill-in of the input matrix \a C
+  * The input matrix \a C must be a selfadjoint compressed column major SparseMatrix object. Both the upper and lower parts have to be stored, but the diagonal entries are optional.
+  * On exit the values of C are destroyed */
+template<typename Scalar, typename Index>
+void minimum_degree_ordering(SparseMatrix<Scalar,ColMajor,Index>& C, PermutationMatrix<Dynamic,Dynamic,Index>& perm)
+{
+  using std::sqrt;
+  
+  int d, dk, dext, lemax = 0, e, elenk, eln, i, j, k, k1,
+      k2, k3, jlast, ln, dense, nzmax, mindeg = 0, nvi, nvj, nvk, mark, wnvi,
+      ok, nel = 0, p, p1, p2, p3, p4, pj, pk, pk1, pk2, pn, q, t;
+  unsigned int h;
+  
+  Index n = C.cols();
+  dense = std::max<Index> (16, Index(10 * sqrt(double(n))));   /* find dense threshold */
+  dense = std::min<Index> (n-2, dense);
+  
+  Index cnz = C.nonZeros();
+  perm.resize(n+1);
+  t = cnz + cnz/5 + 2*n;                 /* add elbow room to C */
+  C.resizeNonZeros(t);
+  
+  Index* W       = new Index[8*(n+1)]; /* get workspace */
+  Index* len     = W;
+  Index* nv      = W +   (n+1);
+  Index* next    = W + 2*(n+1);
+  Index* head    = W + 3*(n+1);
+  Index* elen    = W + 4*(n+1);
+  Index* degree  = W + 5*(n+1);
+  Index* w       = W + 6*(n+1);
+  Index* hhead   = W + 7*(n+1);
+  Index* last    = perm.indices().data();                              /* use P as workspace for last */
+  
+  /* --- Initialize quotient graph ---------------------------------------- */
+  Index* Cp = C.outerIndexPtr();
+  Index* Ci = C.innerIndexPtr();
+  for(k = 0; k < n; k++)
+    len[k] = Cp[k+1] - Cp[k];
+  len[n] = 0;
+  nzmax = t;
+  
+  for(i = 0; i <= n; i++)
+  {
+    head[i]   = -1;                     // degree list i is empty
+    last[i]   = -1;
+    next[i]   = -1;
+    hhead[i]  = -1;                     // hash list i is empty 
+    nv[i]     = 1;                      // node i is just one node
+    w[i]      = 1;                      // node i is alive
+    elen[i]   = 0;                      // Ek of node i is empty
+    degree[i] = len[i];                 // degree of node i
+  }
+  mark = internal::cs_wclear<Index>(0, 0, w, n);         /* clear w */
+  
+  /* --- Initialize degree lists ------------------------------------------ */
+  for(i = 0; i < n; i++)
+  {
+    bool has_diag = false;
+    for(p = Cp[i]; p<Cp[i+1]; ++p)
+      if(Ci[p]==i)
+      {
+        has_diag = true;
+        break;
+      }
+   
+    d = degree[i];
+    if(d == 1 && has_diag)           /* node i is empty */
+    {
+      elen[i] = -2;                 /* element i is dead */
+      nel++;
+      Cp[i] = -1;                   /* i is a root of assembly tree */
+      w[i] = 0;
+    }
+    else if(d > dense || !has_diag)  /* node i is dense or has no structural diagonal element */
+    {
+      nv[i] = 0;                    /* absorb i into element n */
+      elen[i] = -1;                 /* node i is dead */
+      nel++;
+      Cp[i] = amd_flip (n);
+      nv[n]++;
+    }
+    else
+    {
+      if(head[d] != -1) last[head[d]] = i;
+      next[i] = head[d];           /* put node i in degree list d */
+      head[d] = i;
+    }
+  }
+  
+  elen[n] = -2;                         /* n is a dead element */
+  Cp[n] = -1;                           /* n is a root of assembly tree */
+  w[n] = 0;                             /* n is a dead element */
+  
+  while (nel < n)                         /* while (selecting pivots) do */
+  {
+    /* --- Select node of minimum approximate degree -------------------- */
+    for(k = -1; mindeg < n && (k = head[mindeg]) == -1; mindeg++) {}
+    if(next[k] != -1) last[next[k]] = -1;
+    head[mindeg] = next[k];          /* remove k from degree list */
+    elenk = elen[k];                  /* elenk = |Ek| */
+    nvk = nv[k];                      /* # of nodes k represents */
+    nel += nvk;                        /* nv[k] nodes of A eliminated */
+    
+    /* --- Garbage collection ------------------------------------------- */
+    if(elenk > 0 && cnz + mindeg >= nzmax)
+    {
+      for(j = 0; j < n; j++)
+      {
+        if((p = Cp[j]) >= 0)      /* j is a live node or element */
+        {
+          Cp[j] = Ci[p];          /* save first entry of object */
+          Ci[p] = amd_flip (j);    /* first entry is now amd_flip(j) */
+        }
+      }
+      for(q = 0, p = 0; p < cnz; ) /* scan all of memory */
+      {
+        if((j = amd_flip (Ci[p++])) >= 0)  /* found object j */
+        {
+          Ci[q] = Cp[j];       /* restore first entry of object */
+          Cp[j] = q++;          /* new pointer to object j */
+          for(k3 = 0; k3 < len[j]-1; k3++) Ci[q++] = Ci[p++];
+        }
+      }
+      cnz = q;                       /* Ci[cnz...nzmax-1] now free */
+    }
+    
+    /* --- Construct new element ---------------------------------------- */
+    dk = 0;
+    nv[k] = -nvk;                     /* flag k as in Lk */
+    p = Cp[k];
+    pk1 = (elenk == 0) ? p : cnz;      /* do in place if elen[k] == 0 */
+    pk2 = pk1;
+    for(k1 = 1; k1 <= elenk + 1; k1++)
+    {
+      if(k1 > elenk)
+      {
+        e = k;                     /* search the nodes in k */
+        pj = p;                    /* list of nodes starts at Ci[pj]*/
+        ln = len[k] - elenk;      /* length of list of nodes in k */
+      }
+      else
+      {
+        e = Ci[p++];              /* search the nodes in e */
+        pj = Cp[e];
+        ln = len[e];              /* length of list of nodes in e */
+      }
+      for(k2 = 1; k2 <= ln; k2++)
+      {
+        i = Ci[pj++];
+        if((nvi = nv[i]) <= 0) continue; /* node i dead, or seen */
+        dk += nvi;                 /* degree[Lk] += size of node i */
+        nv[i] = -nvi;             /* negate nv[i] to denote i in Lk*/
+        Ci[pk2++] = i;            /* place i in Lk */
+        if(next[i] != -1) last[next[i]] = last[i];
+        if(last[i] != -1)         /* remove i from degree list */
+        {
+          next[last[i]] = next[i];
+        }
+        else
+        {
+          head[degree[i]] = next[i];
+        }
+      }
+      if(e != k)
+      {
+        Cp[e] = amd_flip (k);      /* absorb e into k */
+        w[e] = 0;                 /* e is now a dead element */
+      }
+    }
+    if(elenk != 0) cnz = pk2;         /* Ci[cnz...nzmax] is free */
+    degree[k] = dk;                   /* external degree of k - |Lk\i| */
+    Cp[k] = pk1;                      /* element k is in Ci[pk1..pk2-1] */
+    len[k] = pk2 - pk1;
+    elen[k] = -2;                     /* k is now an element */
+    
+    /* --- Find set differences ----------------------------------------- */
+    mark = internal::cs_wclear<Index>(mark, lemax, w, n);  /* clear w if necessary */
+    for(pk = pk1; pk < pk2; pk++)    /* scan 1: find |Le\Lk| */
+    {
+      i = Ci[pk];
+      if((eln = elen[i]) <= 0) continue;/* skip if elen[i] empty */
+      nvi = -nv[i];                      /* nv[i] was negated */
+      wnvi = mark - nvi;
+      for(p = Cp[i]; p <= Cp[i] + eln - 1; p++)  /* scan Ei */
+      {
+        e = Ci[p];
+        if(w[e] >= mark)
+        {
+          w[e] -= nvi;          /* decrement |Le\Lk| */
+        }
+        else if(w[e] != 0)        /* ensure e is a live element */
+        {
+          w[e] = degree[e] + wnvi; /* 1st time e seen in scan 1 */
+        }
+      }
+    }
+    
+    /* --- Degree update ------------------------------------------------ */
+    for(pk = pk1; pk < pk2; pk++)    /* scan2: degree update */
+    {
+      i = Ci[pk];                   /* consider node i in Lk */
+      p1 = Cp[i];
+      p2 = p1 + elen[i] - 1;
+      pn = p1;
+      for(h = 0, d = 0, p = p1; p <= p2; p++)    /* scan Ei */
+      {
+        e = Ci[p];
+        if(w[e] != 0)             /* e is an unabsorbed element */
+        {
+          dext = w[e] - mark;   /* dext = |Le\Lk| */
+          if(dext > 0)
+          {
+            d += dext;         /* sum up the set differences */
+            Ci[pn++] = e;     /* keep e in Ei */
+            h += e;            /* compute the hash of node i */
+          }
+          else
+          {
+            Cp[e] = amd_flip (k);  /* aggressive absorb. e->k */
+            w[e] = 0;             /* e is a dead element */
+          }
+        }
+      }
+      elen[i] = pn - p1 + 1;        /* elen[i] = |Ei| */
+      p3 = pn;
+      p4 = p1 + len[i];
+      for(p = p2 + 1; p < p4; p++) /* prune edges in Ai */
+      {
+        j = Ci[p];
+        if((nvj = nv[j]) <= 0) continue; /* node j dead or in Lk */
+        d += nvj;                  /* degree(i) += |j| */
+        Ci[pn++] = j;             /* place j in node list of i */
+        h += j;                    /* compute hash for node i */
+      }
+      if(d == 0)                     /* check for mass elimination */
+      {
+        Cp[i] = amd_flip (k);      /* absorb i into k */
+        nvi = -nv[i];
+        dk -= nvi;                 /* |Lk| -= |i| */
+        nvk += nvi;                /* |k| += nv[i] */
+        nel += nvi;
+        nv[i] = 0;
+        elen[i] = -1;             /* node i is dead */
+      }
+      else
+      {
+        degree[i] = std::min<Index> (degree[i], d);   /* update degree(i) */
+        Ci[pn] = Ci[p3];         /* move first node to end */
+        Ci[p3] = Ci[p1];         /* move 1st el. to end of Ei */
+        Ci[p1] = k;               /* add k as 1st element in of Ei */
+        len[i] = pn - p1 + 1;     /* new len of adj. list of node i */
+        h %= n;                    /* finalize hash of i */
+        next[i] = hhead[h];      /* place i in hash bucket */
+        hhead[h] = i;
+        last[i] = h;              /* save hash of i in last[i] */
+      }
+    }                                   /* scan2 is done */
+    degree[k] = dk;                   /* finalize |Lk| */
+    lemax = std::max<Index>(lemax, dk);
+    mark = internal::cs_wclear<Index>(mark+lemax, lemax, w, n);    /* clear w */
+    
+    /* --- Supernode detection ------------------------------------------ */
+    for(pk = pk1; pk < pk2; pk++)
+    {
+      i = Ci[pk];
+      if(nv[i] >= 0) continue;         /* skip if i is dead */
+      h = last[i];                      /* scan hash bucket of node i */
+      i = hhead[h];
+      hhead[h] = -1;                    /* hash bucket will be empty */
+      for(; i != -1 && next[i] != -1; i = next[i], mark++)
+      {
+        ln = len[i];
+        eln = elen[i];
+        for(p = Cp[i]+1; p <= Cp[i] + ln-1; p++) w[Ci[p]] = mark;
+        jlast = i;
+        for(j = next[i]; j != -1; ) /* compare i with all j */
+        {
+          ok = (len[j] == ln) && (elen[j] == eln);
+          for(p = Cp[j] + 1; ok && p <= Cp[j] + ln - 1; p++)
+          {
+            if(w[Ci[p]] != mark) ok = 0;    /* compare i and j*/
+          }
+          if(ok)                     /* i and j are identical */
+          {
+            Cp[j] = amd_flip (i);  /* absorb j into i */
+            nv[i] += nv[j];
+            nv[j] = 0;
+            elen[j] = -1;         /* node j is dead */
+            j = next[j];          /* delete j from hash bucket */
+            next[jlast] = j;
+          }
+          else
+          {
+            jlast = j;             /* j and i are different */
+            j = next[j];
+          }
+        }
+      }
+    }
+    
+    /* --- Finalize new element------------------------------------------ */
+    for(p = pk1, pk = pk1; pk < pk2; pk++)   /* finalize Lk */
+    {
+      i = Ci[pk];
+      if((nvi = -nv[i]) <= 0) continue;/* skip if i is dead */
+      nv[i] = nvi;                      /* restore nv[i] */
+      d = degree[i] + dk - nvi;         /* compute external degree(i) */
+      d = std::min<Index> (d, n - nel - nvi);
+      if(head[d] != -1) last[head[d]] = i;
+      next[i] = head[d];               /* put i back in degree list */
+      last[i] = -1;
+      head[d] = i;
+      mindeg = std::min<Index> (mindeg, d);       /* find new minimum degree */
+      degree[i] = d;
+      Ci[p++] = i;                      /* place i in Lk */
+    }
+    nv[k] = nvk;                      /* # nodes absorbed into k */
+    if((len[k] = p-pk1) == 0)         /* length of adj list of element k*/
+    {
+      Cp[k] = -1;                   /* k is a root of the tree */
+      w[k] = 0;                     /* k is now a dead element */
+    }
+    if(elenk != 0) cnz = p;           /* free unused space in Lk */
+  }
+  
+  /* --- Postordering ----------------------------------------------------- */
+  for(i = 0; i < n; i++) Cp[i] = amd_flip (Cp[i]);/* fix assembly tree */
+  for(j = 0; j <= n; j++) head[j] = -1;
+  for(j = n; j >= 0; j--)              /* place unordered nodes in lists */
+  {
+    if(nv[j] > 0) continue;          /* skip if j is an element */
+    next[j] = head[Cp[j]];          /* place j in list of its parent */
+    head[Cp[j]] = j;
+  }
+  for(e = n; e >= 0; e--)              /* place elements in lists */
+  {
+    if(nv[e] <= 0) continue;         /* skip unless e is an element */
+    if(Cp[e] != -1)
+    {
+      next[e] = head[Cp[e]];      /* place e in list of its parent */
+      head[Cp[e]] = e;
+    }
+  }
+  for(k = 0, i = 0; i <= n; i++)       /* postorder the assembly tree */
+  {
+    if(Cp[i] == -1) k = internal::cs_tdfs<Index>(i, k, head, next, perm.indices().data(), w);
+  }
+  
+  perm.indices().conservativeResize(n);
+
+  delete[] W;
+}
+
+} // namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_AMD_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/OrderingMethods/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/OrderingMethods/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/OrderingMethods/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/OrderingMethods/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/OrderingMethods/Eigen_Colamd.h b/vendor/eigen-3.2.8/Eigen/src/OrderingMethods/Eigen_Colamd.h
new file mode 100644
index 0000000..359fd44
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/OrderingMethods/Eigen_Colamd.h
@@ -0,0 +1,1843 @@
+// // This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Desire Nuentsa Wakam <desire.nuentsa_wakam at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// This file is modified from the colamd/symamd library. The copyright is below
+
+//   The authors of the code itself are Stefan I. Larimore and Timothy A.
+//   Davis (davis at cise.ufl.edu), University of Florida.  The algorithm was
+//   developed in collaboration with John Gilbert, Xerox PARC, and Esmond
+//   Ng, Oak Ridge National Laboratory.
+// 
+//     Date:
+// 
+//   September 8, 2003.  Version 2.3.
+// 
+//     Acknowledgements:
+// 
+//   This work was supported by the National Science Foundation, under
+//   grants DMS-9504974 and DMS-9803599.
+// 
+//     Notice:
+// 
+//   Copyright (c) 1998-2003 by the University of Florida.
+//   All Rights Reserved.
+// 
+//   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+//   EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+// 
+//   Permission is hereby granted to use, copy, modify, and/or distribute
+//   this program, provided that the Copyright, this License, and the
+//   Availability of the original version is retained on all copies and made
+//   accessible to the end-user of any code or package that includes COLAMD
+//   or any modified version of COLAMD. 
+// 
+//     Availability:
+// 
+//   The colamd/symamd library is available at
+// 
+//       http://www.suitesparse.com
+
+  
+#ifndef EIGEN_COLAMD_H
+#define EIGEN_COLAMD_H
+
+namespace internal {
+/* Ensure that debugging is turned off: */
+#ifndef COLAMD_NDEBUG
+#define COLAMD_NDEBUG
+#endif /* NDEBUG */
+/* ========================================================================== */
+/* === Knob and statistics definitions ====================================== */
+/* ========================================================================== */
+
+/* size of the knobs [ ] array.  Only knobs [0..1] are currently used. */
+#define COLAMD_KNOBS 20
+
+/* number of output statistics.  Only stats [0..6] are currently used. */
+#define COLAMD_STATS 20 
+
+/* knobs [0] and stats [0]: dense row knob and output statistic. */
+#define COLAMD_DENSE_ROW 0
+
+/* knobs [1] and stats [1]: dense column knob and output statistic. */
+#define COLAMD_DENSE_COL 1
+
+/* stats [2]: memory defragmentation count output statistic */
+#define COLAMD_DEFRAG_COUNT 2
+
+/* stats [3]: colamd status:  zero OK, > 0 warning or notice, < 0 error */
+#define COLAMD_STATUS 3
+
+/* stats [4..6]: error info, or info on jumbled columns */ 
+#define COLAMD_INFO1 4
+#define COLAMD_INFO2 5
+#define COLAMD_INFO3 6
+
+/* error codes returned in stats [3]: */
+#define COLAMD_OK       (0)
+#define COLAMD_OK_BUT_JUMBLED     (1)
+#define COLAMD_ERROR_A_not_present    (-1)
+#define COLAMD_ERROR_p_not_present    (-2)
+#define COLAMD_ERROR_nrow_negative    (-3)
+#define COLAMD_ERROR_ncol_negative    (-4)
+#define COLAMD_ERROR_nnz_negative   (-5)
+#define COLAMD_ERROR_p0_nonzero     (-6)
+#define COLAMD_ERROR_A_too_small    (-7)
+#define COLAMD_ERROR_col_length_negative  (-8)
+#define COLAMD_ERROR_row_index_out_of_bounds  (-9)
+#define COLAMD_ERROR_out_of_memory    (-10)
+#define COLAMD_ERROR_internal_error   (-999)
+
+/* ========================================================================== */
+/* === Definitions ========================================================== */
+/* ========================================================================== */
+
+#define ONES_COMPLEMENT(r) (-(r)-1)
+
+/* -------------------------------------------------------------------------- */
+
+#define COLAMD_EMPTY (-1)
+
+/* Row and column status */
+#define ALIVE (0)
+#define DEAD  (-1)
+
+/* Column status */
+#define DEAD_PRINCIPAL    (-1)
+#define DEAD_NON_PRINCIPAL  (-2)
+
+/* Macros for row and column status update and checking. */
+#define ROW_IS_DEAD(r)      ROW_IS_MARKED_DEAD (Row[r].shared2.mark)
+#define ROW_IS_MARKED_DEAD(row_mark)  (row_mark < ALIVE)
+#define ROW_IS_ALIVE(r)     (Row [r].shared2.mark >= ALIVE)
+#define COL_IS_DEAD(c)      (Col [c].start < ALIVE)
+#define COL_IS_ALIVE(c)     (Col [c].start >= ALIVE)
+#define COL_IS_DEAD_PRINCIPAL(c)  (Col [c].start == DEAD_PRINCIPAL)
+#define KILL_ROW(r)     { Row [r].shared2.mark = DEAD ; }
+#define KILL_PRINCIPAL_COL(c)   { Col [c].start = DEAD_PRINCIPAL ; }
+#define KILL_NON_PRINCIPAL_COL(c) { Col [c].start = DEAD_NON_PRINCIPAL ; }
+
+/* ========================================================================== */
+/* === Colamd reporting mechanism =========================================== */
+/* ========================================================================== */
+
+// == Row and Column structures ==
+template <typename Index>
+struct colamd_col
+{
+  Index start ;   /* index for A of first row in this column, or DEAD */
+  /* if column is dead */
+  Index length ;  /* number of rows in this column */
+  union
+  {
+    Index thickness ; /* number of original columns represented by this */
+    /* col, if the column is alive */
+    Index parent ;  /* parent in parent tree super-column structure, if */
+    /* the column is dead */
+  } shared1 ;
+  union
+  {
+    Index score ; /* the score used to maintain heap, if col is alive */
+    Index order ; /* pivot ordering of this column, if col is dead */
+  } shared2 ;
+  union
+  {
+    Index headhash ;  /* head of a hash bucket, if col is at the head of */
+    /* a degree list */
+    Index hash ;  /* hash value, if col is not in a degree list */
+    Index prev ;  /* previous column in degree list, if col is in a */
+    /* degree list (but not at the head of a degree list) */
+  } shared3 ;
+  union
+  {
+    Index degree_next ; /* next column, if col is in a degree list */
+    Index hash_next ;   /* next column, if col is in a hash list */
+  } shared4 ;
+  
+};
+ 
+template <typename Index>
+struct Colamd_Row
+{
+  Index start ;   /* index for A of first col in this row */
+  Index length ;  /* number of principal columns in this row */
+  union
+  {
+    Index degree ;  /* number of principal & non-principal columns in row */
+    Index p ;   /* used as a row pointer in init_rows_cols () */
+  } shared1 ;
+  union
+  {
+    Index mark ;  /* for computing set differences and marking dead rows*/
+    Index first_column ;/* first column in row (used in garbage collection) */
+  } shared2 ;
+  
+};
+ 
+/* ========================================================================== */
+/* === Colamd recommended memory size ======================================= */
+/* ========================================================================== */
+ 
+/*
+  The recommended length Alen of the array A passed to colamd is given by
+  the COLAMD_RECOMMENDED (nnz, n_row, n_col) macro.  It returns -1 if any
+  argument is negative.  2*nnz space is required for the row and column
+  indices of the matrix. colamd_c (n_col) + colamd_r (n_row) space is
+  required for the Col and Row arrays, respectively, which are internal to
+  colamd.  An additional n_col space is the minimal amount of "elbow room",
+  and nnz/5 more space is recommended for run time efficiency.
+  
+  This macro is not needed when using symamd.
+  
+  Explicit typecast to Index added Sept. 23, 2002, COLAMD version 2.2, to avoid
+  gcc -pedantic warning messages.
+*/
+template <typename Index>
+inline Index colamd_c(Index n_col) 
+{ return Index( ((n_col) + 1) * sizeof (colamd_col<Index>) / sizeof (Index) ) ; }
+
+template <typename Index>
+inline Index  colamd_r(Index n_row)
+{ return Index(((n_row) + 1) * sizeof (Colamd_Row<Index>) / sizeof (Index)); }
+
+// Prototypes of non-user callable routines
+template <typename Index>
+static Index init_rows_cols (Index n_row, Index n_col, Colamd_Row<Index> Row [], colamd_col<Index> col [], Index A [], Index p [], Index stats[COLAMD_STATS] ); 
+
+template <typename Index>
+static void init_scoring (Index n_row, Index n_col, Colamd_Row<Index> Row [], colamd_col<Index> Col [], Index A [], Index head [], double knobs[COLAMD_KNOBS], Index *p_n_row2, Index *p_n_col2, Index *p_max_deg);
+
+template <typename Index>
+static Index find_ordering (Index n_row, Index n_col, Index Alen, Colamd_Row<Index> Row [], colamd_col<Index> Col [], Index A [], Index head [], Index n_col2, Index max_deg, Index pfree);
+
+template <typename Index>
+static void order_children (Index n_col, colamd_col<Index> Col [], Index p []);
+
+template <typename Index>
+static void detect_super_cols (colamd_col<Index> Col [], Index A [], Index head [], Index row_start, Index row_length ) ;
+
+template <typename Index>
+static Index garbage_collection (Index n_row, Index n_col, Colamd_Row<Index> Row [], colamd_col<Index> Col [], Index A [], Index *pfree) ;
+
+template <typename Index>
+static inline  Index clear_mark (Index n_row, Colamd_Row<Index> Row [] ) ;
+
+/* === No debugging ========================================================= */
+
+#define COLAMD_DEBUG0(params) ;
+#define COLAMD_DEBUG1(params) ;
+#define COLAMD_DEBUG2(params) ;
+#define COLAMD_DEBUG3(params) ;
+#define COLAMD_DEBUG4(params) ;
+
+#define COLAMD_ASSERT(expression) ((void) 0)
+
+
+/**
+ * \brief Returns the recommended value of Alen 
+ * 
+ * Returns recommended value of Alen for use by colamd.  
+ * Returns -1 if any input argument is negative.  
+ * The use of this routine or macro is optional.  
+ * Note that the macro uses its arguments   more than once, 
+ * so be careful for side effects, if you pass expressions as arguments to COLAMD_RECOMMENDED.  
+ * 
+ * \param nnz nonzeros in A
+ * \param n_row number of rows in A
+ * \param n_col number of columns in A
+ * \return recommended value of Alen for use by colamd
+ */
+template <typename Index>
+inline Index colamd_recommended ( Index nnz, Index n_row, Index n_col)
+{
+  if ((nnz) < 0 || (n_row) < 0 || (n_col) < 0)
+    return (-1);
+  else
+    return (2 * (nnz) + colamd_c (n_col) + colamd_r (n_row) + (n_col) + ((nnz) / 5)); 
+}
+
+/**
+ * \brief set default parameters  The use of this routine is optional.
+ * 
+ * Colamd: rows with more than (knobs [COLAMD_DENSE_ROW] * n_col)
+ * entries are removed prior to ordering.  Columns with more than
+ * (knobs [COLAMD_DENSE_COL] * n_row) entries are removed prior to
+ * ordering, and placed last in the output column ordering. 
+ *
+ * COLAMD_DENSE_ROW and COLAMD_DENSE_COL are defined as 0 and 1,
+ * respectively, in colamd.h.  Default values of these two knobs
+ * are both 0.5.  Currently, only knobs [0] and knobs [1] are
+ * used, but future versions may use more knobs.  If so, they will
+ * be properly set to their defaults by the future version of
+ * colamd_set_defaults, so that the code that calls colamd will
+ * not need to change, assuming that you either use
+ * colamd_set_defaults, or pass a (double *) NULL pointer as the
+ * knobs array to colamd or symamd.
+ * 
+ * \param knobs parameter settings for colamd
+ */
+
+static inline void colamd_set_defaults(double knobs[COLAMD_KNOBS])
+{
+  /* === Local variables ================================================== */
+  
+  int i ;
+
+  if (!knobs)
+  {
+    return ;      /* no knobs to initialize */
+  }
+  for (i = 0 ; i < COLAMD_KNOBS ; i++)
+  {
+    knobs [i] = 0 ;
+  }
+  knobs [COLAMD_DENSE_ROW] = 0.5 ;  /* ignore rows over 50% dense */
+  knobs [COLAMD_DENSE_COL] = 0.5 ;  /* ignore columns over 50% dense */
+}
+
+/** 
+ * \brief  Computes a column ordering using the column approximate minimum degree ordering
+ * 
+ * Computes a column ordering (Q) of A such that P(AQ)=LU or
+ * (AQ)'AQ=LL' have less fill-in and require fewer floating point
+ * operations than factorizing the unpermuted matrix A or A'A,
+ * respectively.
+ * 
+ * 
+ * \param n_row number of rows in A
+ * \param n_col number of columns in A
+ * \param Alen, size of the array A
+ * \param A row indices of the matrix, of size ALen
+ * \param p column pointers of A, of size n_col+1
+ * \param knobs parameter settings for colamd
+ * \param stats colamd output statistics and error codes
+ */
+template <typename Index>
+static bool colamd(Index n_row, Index n_col, Index Alen, Index *A, Index *p, double knobs[COLAMD_KNOBS], Index stats[COLAMD_STATS])
+{
+  /* === Local variables ================================================== */
+  
+  Index i ;     /* loop index */
+  Index nnz ;     /* nonzeros in A */
+  Index Row_size ;    /* size of Row [], in integers */
+  Index Col_size ;    /* size of Col [], in integers */
+  Index need ;      /* minimum required length of A */
+  Colamd_Row<Index> *Row ;   /* pointer into A of Row [0..n_row] array */
+  colamd_col<Index> *Col ;   /* pointer into A of Col [0..n_col] array */
+  Index n_col2 ;    /* number of non-dense, non-empty columns */
+  Index n_row2 ;    /* number of non-dense, non-empty rows */
+  Index ngarbage ;    /* number of garbage collections performed */
+  Index max_deg ;   /* maximum row degree */
+  double default_knobs [COLAMD_KNOBS] ; /* default knobs array */
+  
+  
+  /* === Check the input arguments ======================================== */
+  
+  if (!stats)
+  {
+    COLAMD_DEBUG0 (("colamd: stats not present\n")) ;
+    return (false) ;
+  }
+  for (i = 0 ; i < COLAMD_STATS ; i++)
+  {
+    stats [i] = 0 ;
+  }
+  stats [COLAMD_STATUS] = COLAMD_OK ;
+  stats [COLAMD_INFO1] = -1 ;
+  stats [COLAMD_INFO2] = -1 ;
+  
+  if (!A)   /* A is not present */
+  {
+    stats [COLAMD_STATUS] = COLAMD_ERROR_A_not_present ;
+    COLAMD_DEBUG0 (("colamd: A not present\n")) ;
+    return (false) ;
+  }
+  
+  if (!p)   /* p is not present */
+  {
+    stats [COLAMD_STATUS] = COLAMD_ERROR_p_not_present ;
+    COLAMD_DEBUG0 (("colamd: p not present\n")) ;
+    return (false) ;
+  }
+  
+  if (n_row < 0)  /* n_row must be >= 0 */
+  {
+    stats [COLAMD_STATUS] = COLAMD_ERROR_nrow_negative ;
+    stats [COLAMD_INFO1] = n_row ;
+    COLAMD_DEBUG0 (("colamd: nrow negative %d\n", n_row)) ;
+    return (false) ;
+  }
+  
+  if (n_col < 0)  /* n_col must be >= 0 */
+  {
+    stats [COLAMD_STATUS] = COLAMD_ERROR_ncol_negative ;
+    stats [COLAMD_INFO1] = n_col ;
+    COLAMD_DEBUG0 (("colamd: ncol negative %d\n", n_col)) ;
+    return (false) ;
+  }
+  
+  nnz = p [n_col] ;
+  if (nnz < 0)  /* nnz must be >= 0 */
+  {
+    stats [COLAMD_STATUS] = COLAMD_ERROR_nnz_negative ;
+    stats [COLAMD_INFO1] = nnz ;
+    COLAMD_DEBUG0 (("colamd: number of entries negative %d\n", nnz)) ;
+    return (false) ;
+  }
+  
+  if (p [0] != 0)
+  {
+    stats [COLAMD_STATUS] = COLAMD_ERROR_p0_nonzero ;
+    stats [COLAMD_INFO1] = p [0] ;
+    COLAMD_DEBUG0 (("colamd: p[0] not zero %d\n", p [0])) ;
+    return (false) ;
+  }
+  
+  /* === If no knobs, set default knobs =================================== */
+  
+  if (!knobs)
+  {
+    colamd_set_defaults (default_knobs) ;
+    knobs = default_knobs ;
+  }
+  
+  /* === Allocate the Row and Col arrays from array A ===================== */
+  
+  Col_size = colamd_c (n_col) ;
+  Row_size = colamd_r (n_row) ;
+  need = 2*nnz + n_col + Col_size + Row_size ;
+  
+  if (need > Alen)
+  {
+    /* not enough space in array A to perform the ordering */
+    stats [COLAMD_STATUS] = COLAMD_ERROR_A_too_small ;
+    stats [COLAMD_INFO1] = need ;
+    stats [COLAMD_INFO2] = Alen ;
+    COLAMD_DEBUG0 (("colamd: Need Alen >= %d, given only Alen = %d\n", need,Alen));
+    return (false) ;
+  }
+  
+  Alen -= Col_size + Row_size ;
+  Col = (colamd_col<Index> *) &A [Alen] ;
+  Row = (Colamd_Row<Index> *) &A [Alen + Col_size] ;
+
+  /* === Construct the row and column data structures ===================== */
+  
+  if (!Eigen::internal::init_rows_cols (n_row, n_col, Row, Col, A, p, stats))
+  {
+    /* input matrix is invalid */
+    COLAMD_DEBUG0 (("colamd: Matrix invalid\n")) ;
+    return (false) ;
+  }
+  
+  /* === Initialize scores, kill dense rows/columns ======================= */
+
+  Eigen::internal::init_scoring (n_row, n_col, Row, Col, A, p, knobs,
+		&n_row2, &n_col2, &max_deg) ;
+  
+  /* === Order the supercolumns =========================================== */
+  
+  ngarbage = Eigen::internal::find_ordering (n_row, n_col, Alen, Row, Col, A, p,
+			    n_col2, max_deg, 2*nnz) ;
+  
+  /* === Order the non-principal columns ================================== */
+  
+  Eigen::internal::order_children (n_col, Col, p) ;
+  
+  /* === Return statistics in stats ======================================= */
+  
+  stats [COLAMD_DENSE_ROW] = n_row - n_row2 ;
+  stats [COLAMD_DENSE_COL] = n_col - n_col2 ;
+  stats [COLAMD_DEFRAG_COUNT] = ngarbage ;
+  COLAMD_DEBUG0 (("colamd: done.\n")) ; 
+  return (true) ;
+}
+
+/* ========================================================================== */
+/* === NON-USER-CALLABLE ROUTINES: ========================================== */
+/* ========================================================================== */
+
+/* There are no user-callable routines beyond this point in the file */
+
+
+/* ========================================================================== */
+/* === init_rows_cols ======================================================= */
+/* ========================================================================== */
+
+/*
+  Takes the column form of the matrix in A and creates the row form of the
+  matrix.  Also, row and column attributes are stored in the Col and Row
+  structs.  If the columns are un-sorted or contain duplicate row indices,
+  this routine will also sort and remove duplicate row indices from the
+  column form of the matrix.  Returns false if the matrix is invalid,
+  true otherwise.  Not user-callable.
+*/
+template <typename Index>
+static Index init_rows_cols  /* returns true if OK, or false otherwise */
+  (
+    /* === Parameters ======================================================= */
+
+    Index n_row,      /* number of rows of A */
+    Index n_col,      /* number of columns of A */
+    Colamd_Row<Index> Row [],    /* of size n_row+1 */
+    colamd_col<Index> Col [],    /* of size n_col+1 */
+    Index A [],     /* row indices of A, of size Alen */
+    Index p [],     /* pointers to columns in A, of size n_col+1 */
+    Index stats [COLAMD_STATS]  /* colamd statistics */ 
+    )
+{
+  /* === Local variables ================================================== */
+
+  Index col ;     /* a column index */
+  Index row ;     /* a row index */
+  Index *cp ;     /* a column pointer */
+  Index *cp_end ;   /* a pointer to the end of a column */
+  Index *rp ;     /* a row pointer */
+  Index *rp_end ;   /* a pointer to the end of a row */
+  Index last_row ;    /* previous row */
+
+  /* === Initialize columns, and check column pointers ==================== */
+
+  for (col = 0 ; col < n_col ; col++)
+  {
+    Col [col].start = p [col] ;
+    Col [col].length = p [col+1] - p [col] ;
+
+    if ((Col [col].length) < 0) // extra parentheses to work-around gcc bug 10200
+    {
+      /* column pointers must be non-decreasing */
+      stats [COLAMD_STATUS] = COLAMD_ERROR_col_length_negative ;
+      stats [COLAMD_INFO1] = col ;
+      stats [COLAMD_INFO2] = Col [col].length ;
+      COLAMD_DEBUG0 (("colamd: col %d length %d < 0\n", col, Col [col].length)) ;
+      return (false) ;
+    }
+
+    Col [col].shared1.thickness = 1 ;
+    Col [col].shared2.score = 0 ;
+    Col [col].shared3.prev = COLAMD_EMPTY ;
+    Col [col].shared4.degree_next = COLAMD_EMPTY ;
+  }
+
+  /* p [0..n_col] no longer needed, used as "head" in subsequent routines */
+
+  /* === Scan columns, compute row degrees, and check row indices ========= */
+
+  stats [COLAMD_INFO3] = 0 ;  /* number of duplicate or unsorted row indices*/
+
+  for (row = 0 ; row < n_row ; row++)
+  {
+    Row [row].length = 0 ;
+    Row [row].shared2.mark = -1 ;
+  }
+
+  for (col = 0 ; col < n_col ; col++)
+  {
+    last_row = -1 ;
+
+    cp = &A [p [col]] ;
+    cp_end = &A [p [col+1]] ;
+
+    while (cp < cp_end)
+    {
+      row = *cp++ ;
+
+      /* make sure row indices within range */
+      if (row < 0 || row >= n_row)
+      {
+	stats [COLAMD_STATUS] = COLAMD_ERROR_row_index_out_of_bounds ;
+	stats [COLAMD_INFO1] = col ;
+	stats [COLAMD_INFO2] = row ;
+	stats [COLAMD_INFO3] = n_row ;
+	COLAMD_DEBUG0 (("colamd: row %d col %d out of bounds\n", row, col)) ;
+	return (false) ;
+      }
+
+      if (row <= last_row || Row [row].shared2.mark == col)
+      {
+	/* row index are unsorted or repeated (or both), thus col */
+	/* is jumbled.  This is a notice, not an error condition. */
+	stats [COLAMD_STATUS] = COLAMD_OK_BUT_JUMBLED ;
+	stats [COLAMD_INFO1] = col ;
+	stats [COLAMD_INFO2] = row ;
+	(stats [COLAMD_INFO3]) ++ ;
+	COLAMD_DEBUG1 (("colamd: row %d col %d unsorted/duplicate\n",row,col));
+      }
+
+      if (Row [row].shared2.mark != col)
+      {
+	Row [row].length++ ;
+      }
+      else
+      {
+	/* this is a repeated entry in the column, */
+	/* it will be removed */
+	Col [col].length-- ;
+      }
+
+      /* mark the row as having been seen in this column */
+      Row [row].shared2.mark = col ;
+
+      last_row = row ;
+    }
+  }
+
+  /* === Compute row pointers ============================================= */
+
+  /* row form of the matrix starts directly after the column */
+  /* form of matrix in A */
+  Row [0].start = p [n_col] ;
+  Row [0].shared1.p = Row [0].start ;
+  Row [0].shared2.mark = -1 ;
+  for (row = 1 ; row < n_row ; row++)
+  {
+    Row [row].start = Row [row-1].start + Row [row-1].length ;
+    Row [row].shared1.p = Row [row].start ;
+    Row [row].shared2.mark = -1 ;
+  }
+
+  /* === Create row form ================================================== */
+
+  if (stats [COLAMD_STATUS] == COLAMD_OK_BUT_JUMBLED)
+  {
+    /* if cols jumbled, watch for repeated row indices */
+    for (col = 0 ; col < n_col ; col++)
+    {
+      cp = &A [p [col]] ;
+      cp_end = &A [p [col+1]] ;
+      while (cp < cp_end)
+      {
+	row = *cp++ ;
+	if (Row [row].shared2.mark != col)
+	{
+	  A [(Row [row].shared1.p)++] = col ;
+	  Row [row].shared2.mark = col ;
+	}
+      }
+    }
+  }
+  else
+  {
+    /* if cols not jumbled, we don't need the mark (this is faster) */
+    for (col = 0 ; col < n_col ; col++)
+    {
+      cp = &A [p [col]] ;
+      cp_end = &A [p [col+1]] ;
+      while (cp < cp_end)
+      {
+	A [(Row [*cp++].shared1.p)++] = col ;
+      }
+    }
+  }
+
+  /* === Clear the row marks and set row degrees ========================== */
+
+  for (row = 0 ; row < n_row ; row++)
+  {
+    Row [row].shared2.mark = 0 ;
+    Row [row].shared1.degree = Row [row].length ;
+  }
+
+  /* === See if we need to re-create columns ============================== */
+
+  if (stats [COLAMD_STATUS] == COLAMD_OK_BUT_JUMBLED)
+  {
+    COLAMD_DEBUG0 (("colamd: reconstructing column form, matrix jumbled\n")) ;
+
+
+    /* === Compute col pointers ========================================= */
+
+    /* col form of the matrix starts at A [0]. */
+    /* Note, we may have a gap between the col form and the row */
+    /* form if there were duplicate entries, if so, it will be */
+    /* removed upon the first garbage collection */
+    Col [0].start = 0 ;
+    p [0] = Col [0].start ;
+    for (col = 1 ; col < n_col ; col++)
+    {
+      /* note that the lengths here are for pruned columns, i.e. */
+      /* no duplicate row indices will exist for these columns */
+      Col [col].start = Col [col-1].start + Col [col-1].length ;
+      p [col] = Col [col].start ;
+    }
+
+    /* === Re-create col form =========================================== */
+
+    for (row = 0 ; row < n_row ; row++)
+    {
+      rp = &A [Row [row].start] ;
+      rp_end = rp + Row [row].length ;
+      while (rp < rp_end)
+      {
+	A [(p [*rp++])++] = row ;
+      }
+    }
+  }
+
+  /* === Done.  Matrix is not (or no longer) jumbled ====================== */
+
+  return (true) ;
+}
+
+
+/* ========================================================================== */
+/* === init_scoring ========================================================= */
+/* ========================================================================== */
+
+/*
+  Kills dense or empty columns and rows, calculates an initial score for
+  each column, and places all columns in the degree lists.  Not user-callable.
+*/
+template <typename Index>
+static void init_scoring
+  (
+    /* === Parameters ======================================================= */
+
+    Index n_row,      /* number of rows of A */
+    Index n_col,      /* number of columns of A */
+    Colamd_Row<Index> Row [],    /* of size n_row+1 */
+    colamd_col<Index> Col [],    /* of size n_col+1 */
+    Index A [],     /* column form and row form of A */
+    Index head [],    /* of size n_col+1 */
+    double knobs [COLAMD_KNOBS],/* parameters */
+    Index *p_n_row2,    /* number of non-dense, non-empty rows */
+    Index *p_n_col2,    /* number of non-dense, non-empty columns */
+    Index *p_max_deg    /* maximum row degree */
+    )
+{
+  /* === Local variables ================================================== */
+
+  Index c ;     /* a column index */
+  Index r, row ;    /* a row index */
+  Index *cp ;     /* a column pointer */
+  Index deg ;     /* degree of a row or column */
+  Index *cp_end ;   /* a pointer to the end of a column */
+  Index *new_cp ;   /* new column pointer */
+  Index col_length ;    /* length of pruned column */
+  Index score ;     /* current column score */
+  Index n_col2 ;    /* number of non-dense, non-empty columns */
+  Index n_row2 ;    /* number of non-dense, non-empty rows */
+  Index dense_row_count ; /* remove rows with more entries than this */
+  Index dense_col_count ; /* remove cols with more entries than this */
+  Index min_score ;   /* smallest column score */
+  Index max_deg ;   /* maximum row degree */
+  Index next_col ;    /* Used to add to degree list.*/
+
+
+  /* === Extract knobs ==================================================== */
+
+  dense_row_count = std::max<Index>(0, (std::min)(Index(knobs [COLAMD_DENSE_ROW] * n_col), n_col)) ;
+  dense_col_count = std::max<Index>(0, (std::min)(Index(knobs [COLAMD_DENSE_COL] * n_row), n_row)) ;
+  COLAMD_DEBUG1 (("colamd: densecount: %d %d\n", dense_row_count, dense_col_count)) ;
+  max_deg = 0 ;
+  n_col2 = n_col ;
+  n_row2 = n_row ;
+
+  /* === Kill empty columns =============================================== */
+
+  /* Put the empty columns at the end in their natural order, so that LU */
+  /* factorization can proceed as far as possible. */
+  for (c = n_col-1 ; c >= 0 ; c--)
+  {
+    deg = Col [c].length ;
+    if (deg == 0)
+    {
+      /* this is a empty column, kill and order it last */
+      Col [c].shared2.order = --n_col2 ;
+      KILL_PRINCIPAL_COL (c) ;
+    }
+  }
+  COLAMD_DEBUG1 (("colamd: null columns killed: %d\n", n_col - n_col2)) ;
+
+  /* === Kill dense columns =============================================== */
+
+  /* Put the dense columns at the end, in their natural order */
+  for (c = n_col-1 ; c >= 0 ; c--)
+  {
+    /* skip any dead columns */
+    if (COL_IS_DEAD (c))
+    {
+      continue ;
+    }
+    deg = Col [c].length ;
+    if (deg > dense_col_count)
+    {
+      /* this is a dense column, kill and order it last */
+      Col [c].shared2.order = --n_col2 ;
+      /* decrement the row degrees */
+      cp = &A [Col [c].start] ;
+      cp_end = cp + Col [c].length ;
+      while (cp < cp_end)
+      {
+	Row [*cp++].shared1.degree-- ;
+      }
+      KILL_PRINCIPAL_COL (c) ;
+    }
+  }
+  COLAMD_DEBUG1 (("colamd: Dense and null columns killed: %d\n", n_col - n_col2)) ;
+
+  /* === Kill dense and empty rows ======================================== */
+
+  for (r = 0 ; r < n_row ; r++)
+  {
+    deg = Row [r].shared1.degree ;
+    COLAMD_ASSERT (deg >= 0 && deg <= n_col) ;
+    if (deg > dense_row_count || deg == 0)
+    {
+      /* kill a dense or empty row */
+      KILL_ROW (r) ;
+      --n_row2 ;
+    }
+    else
+    {
+      /* keep track of max degree of remaining rows */
+      max_deg = (std::max)(max_deg, deg) ;
+    }
+  }
+  COLAMD_DEBUG1 (("colamd: Dense and null rows killed: %d\n", n_row - n_row2)) ;
+
+  /* === Compute initial column scores ==================================== */
+
+  /* At this point the row degrees are accurate.  They reflect the number */
+  /* of "live" (non-dense) columns in each row.  No empty rows exist. */
+  /* Some "live" columns may contain only dead rows, however.  These are */
+  /* pruned in the code below. */
+
+  /* now find the initial matlab score for each column */
+  for (c = n_col-1 ; c >= 0 ; c--)
+  {
+    /* skip dead column */
+    if (COL_IS_DEAD (c))
+    {
+      continue ;
+    }
+    score = 0 ;
+    cp = &A [Col [c].start] ;
+    new_cp = cp ;
+    cp_end = cp + Col [c].length ;
+    while (cp < cp_end)
+    {
+      /* get a row */
+      row = *cp++ ;
+      /* skip if dead */
+      if (ROW_IS_DEAD (row))
+      {
+	continue ;
+      }
+      /* compact the column */
+      *new_cp++ = row ;
+      /* add row's external degree */
+      score += Row [row].shared1.degree - 1 ;
+      /* guard against integer overflow */
+      score = (std::min)(score, n_col) ;
+    }
+    /* determine pruned column length */
+    col_length = (Index) (new_cp - &A [Col [c].start]) ;
+    if (col_length == 0)
+    {
+      /* a newly-made null column (all rows in this col are "dense" */
+      /* and have already been killed) */
+      COLAMD_DEBUG2 (("Newly null killed: %d\n", c)) ;
+      Col [c].shared2.order = --n_col2 ;
+      KILL_PRINCIPAL_COL (c) ;
+    }
+    else
+    {
+      /* set column length and set score */
+      COLAMD_ASSERT (score >= 0) ;
+      COLAMD_ASSERT (score <= n_col) ;
+      Col [c].length = col_length ;
+      Col [c].shared2.score = score ;
+    }
+  }
+  COLAMD_DEBUG1 (("colamd: Dense, null, and newly-null columns killed: %d\n",
+		  n_col-n_col2)) ;
+
+  /* At this point, all empty rows and columns are dead.  All live columns */
+  /* are "clean" (containing no dead rows) and simplicial (no supercolumns */
+  /* yet).  Rows may contain dead columns, but all live rows contain at */
+  /* least one live column. */
+
+  /* === Initialize degree lists ========================================== */
+
+
+  /* clear the hash buckets */
+  for (c = 0 ; c <= n_col ; c++)
+  {
+    head [c] = COLAMD_EMPTY ;
+  }
+  min_score = n_col ;
+  /* place in reverse order, so low column indices are at the front */
+  /* of the lists.  This is to encourage natural tie-breaking */
+  for (c = n_col-1 ; c >= 0 ; c--)
+  {
+    /* only add principal columns to degree lists */
+    if (COL_IS_ALIVE (c))
+    {
+      COLAMD_DEBUG4 (("place %d score %d minscore %d ncol %d\n",
+		      c, Col [c].shared2.score, min_score, n_col)) ;
+
+      /* === Add columns score to DList =============================== */
+
+      score = Col [c].shared2.score ;
+
+      COLAMD_ASSERT (min_score >= 0) ;
+      COLAMD_ASSERT (min_score <= n_col) ;
+      COLAMD_ASSERT (score >= 0) ;
+      COLAMD_ASSERT (score <= n_col) ;
+      COLAMD_ASSERT (head [score] >= COLAMD_EMPTY) ;
+
+      /* now add this column to dList at proper score location */
+      next_col = head [score] ;
+      Col [c].shared3.prev = COLAMD_EMPTY ;
+      Col [c].shared4.degree_next = next_col ;
+
+      /* if there already was a column with the same score, set its */
+      /* previous pointer to this new column */
+      if (next_col != COLAMD_EMPTY)
+      {
+	Col [next_col].shared3.prev = c ;
+      }
+      head [score] = c ;
+
+      /* see if this score is less than current min */
+      min_score = (std::min)(min_score, score) ;
+
+
+    }
+  }
+
+
+  /* === Return number of remaining columns, and max row degree =========== */
+
+  *p_n_col2 = n_col2 ;
+  *p_n_row2 = n_row2 ;
+  *p_max_deg = max_deg ;
+}
+
+
+/* ========================================================================== */
+/* === find_ordering ======================================================== */
+/* ========================================================================== */
+
+/*
+  Order the principal columns of the supercolumn form of the matrix
+  (no supercolumns on input).  Uses a minimum approximate column minimum
+  degree ordering method.  Not user-callable.
+*/
+template <typename Index>
+static Index find_ordering /* return the number of garbage collections */
+  (
+    /* === Parameters ======================================================= */
+
+    Index n_row,      /* number of rows of A */
+    Index n_col,      /* number of columns of A */
+    Index Alen,     /* size of A, 2*nnz + n_col or larger */
+    Colamd_Row<Index> Row [],    /* of size n_row+1 */
+    colamd_col<Index> Col [],    /* of size n_col+1 */
+    Index A [],     /* column form and row form of A */
+    Index head [],    /* of size n_col+1 */
+    Index n_col2,     /* Remaining columns to order */
+    Index max_deg,    /* Maximum row degree */
+    Index pfree     /* index of first free slot (2*nnz on entry) */
+    )
+{
+  /* === Local variables ================================================== */
+
+  Index k ;     /* current pivot ordering step */
+  Index pivot_col ;   /* current pivot column */
+  Index *cp ;     /* a column pointer */
+  Index *rp ;     /* a row pointer */
+  Index pivot_row ;   /* current pivot row */
+  Index *new_cp ;   /* modified column pointer */
+  Index *new_rp ;   /* modified row pointer */
+  Index pivot_row_start ; /* pointer to start of pivot row */
+  Index pivot_row_degree ;  /* number of columns in pivot row */
+  Index pivot_row_length ;  /* number of supercolumns in pivot row */
+  Index pivot_col_score ; /* score of pivot column */
+  Index needed_memory ;   /* free space needed for pivot row */
+  Index *cp_end ;   /* pointer to the end of a column */
+  Index *rp_end ;   /* pointer to the end of a row */
+  Index row ;     /* a row index */
+  Index col ;     /* a column index */
+  Index max_score ;   /* maximum possible score */
+  Index cur_score ;   /* score of current column */
+  unsigned int hash ;   /* hash value for supernode detection */
+  Index head_column ;   /* head of hash bucket */
+  Index first_col ;   /* first column in hash bucket */
+  Index tag_mark ;    /* marker value for mark array */
+  Index row_mark ;    /* Row [row].shared2.mark */
+  Index set_difference ;  /* set difference size of row with pivot row */
+  Index min_score ;   /* smallest column score */
+  Index col_thickness ;   /* "thickness" (no. of columns in a supercol) */
+  Index max_mark ;    /* maximum value of tag_mark */
+  Index pivot_col_thickness ; /* number of columns represented by pivot col */
+  Index prev_col ;    /* Used by Dlist operations. */
+  Index next_col ;    /* Used by Dlist operations. */
+  Index ngarbage ;    /* number of garbage collections performed */
+
+
+  /* === Initialization and clear mark ==================================== */
+
+  max_mark = INT_MAX - n_col ;  /* INT_MAX defined in <limits.h> */
+  tag_mark = Eigen::internal::clear_mark (n_row, Row) ;
+  min_score = 0 ;
+  ngarbage = 0 ;
+  COLAMD_DEBUG1 (("colamd: Ordering, n_col2=%d\n", n_col2)) ;
+
+  /* === Order the columns ================================================ */
+
+  for (k = 0 ; k < n_col2 ; /* 'k' is incremented below */)
+  {
+
+    /* === Select pivot column, and order it ============================ */
+
+    /* make sure degree list isn't empty */
+    COLAMD_ASSERT (min_score >= 0) ;
+    COLAMD_ASSERT (min_score <= n_col) ;
+    COLAMD_ASSERT (head [min_score] >= COLAMD_EMPTY) ;
+
+    /* get pivot column from head of minimum degree list */
+    while (head [min_score] == COLAMD_EMPTY && min_score < n_col)
+    {
+      min_score++ ;
+    }
+    pivot_col = head [min_score] ;
+    COLAMD_ASSERT (pivot_col >= 0 && pivot_col <= n_col) ;
+    next_col = Col [pivot_col].shared4.degree_next ;
+    head [min_score] = next_col ;
+    if (next_col != COLAMD_EMPTY)
+    {
+      Col [next_col].shared3.prev = COLAMD_EMPTY ;
+    }
+
+    COLAMD_ASSERT (COL_IS_ALIVE (pivot_col)) ;
+    COLAMD_DEBUG3 (("Pivot col: %d\n", pivot_col)) ;
+
+    /* remember score for defrag check */
+    pivot_col_score = Col [pivot_col].shared2.score ;
+
+    /* the pivot column is the kth column in the pivot order */
+    Col [pivot_col].shared2.order = k ;
+
+    /* increment order count by column thickness */
+    pivot_col_thickness = Col [pivot_col].shared1.thickness ;
+    k += pivot_col_thickness ;
+    COLAMD_ASSERT (pivot_col_thickness > 0) ;
+
+    /* === Garbage_collection, if necessary ============================= */
+
+    needed_memory = (std::min)(pivot_col_score, n_col - k) ;
+    if (pfree + needed_memory >= Alen)
+    {
+      pfree = Eigen::internal::garbage_collection (n_row, n_col, Row, Col, A, &A [pfree]) ;
+      ngarbage++ ;
+      /* after garbage collection we will have enough */
+      COLAMD_ASSERT (pfree + needed_memory < Alen) ;
+      /* garbage collection has wiped out the Row[].shared2.mark array */
+      tag_mark = Eigen::internal::clear_mark (n_row, Row) ;
+
+    }
+
+    /* === Compute pivot row pattern ==================================== */
+
+    /* get starting location for this new merged row */
+    pivot_row_start = pfree ;
+
+    /* initialize new row counts to zero */
+    pivot_row_degree = 0 ;
+
+    /* tag pivot column as having been visited so it isn't included */
+    /* in merged pivot row */
+    Col [pivot_col].shared1.thickness = -pivot_col_thickness ;
+
+    /* pivot row is the union of all rows in the pivot column pattern */
+    cp = &A [Col [pivot_col].start] ;
+    cp_end = cp + Col [pivot_col].length ;
+    while (cp < cp_end)
+    {
+      /* get a row */
+      row = *cp++ ;
+      COLAMD_DEBUG4 (("Pivot col pattern %d %d\n", ROW_IS_ALIVE (row), row)) ;
+      /* skip if row is dead */
+      if (ROW_IS_DEAD (row))
+      {
+	continue ;
+      }
+      rp = &A [Row [row].start] ;
+      rp_end = rp + Row [row].length ;
+      while (rp < rp_end)
+      {
+	/* get a column */
+	col = *rp++ ;
+	/* add the column, if alive and untagged */
+	col_thickness = Col [col].shared1.thickness ;
+	if (col_thickness > 0 && COL_IS_ALIVE (col))
+	{
+	  /* tag column in pivot row */
+	  Col [col].shared1.thickness = -col_thickness ;
+	  COLAMD_ASSERT (pfree < Alen) ;
+	  /* place column in pivot row */
+	  A [pfree++] = col ;
+	  pivot_row_degree += col_thickness ;
+	}
+      }
+    }
+
+    /* clear tag on pivot column */
+    Col [pivot_col].shared1.thickness = pivot_col_thickness ;
+    max_deg = (std::max)(max_deg, pivot_row_degree) ;
+
+
+    /* === Kill all rows used to construct pivot row ==================== */
+
+    /* also kill pivot row, temporarily */
+    cp = &A [Col [pivot_col].start] ;
+    cp_end = cp + Col [pivot_col].length ;
+    while (cp < cp_end)
+    {
+      /* may be killing an already dead row */
+      row = *cp++ ;
+      COLAMD_DEBUG3 (("Kill row in pivot col: %d\n", row)) ;
+      KILL_ROW (row) ;
+    }
+
+    /* === Select a row index to use as the new pivot row =============== */
+
+    pivot_row_length = pfree - pivot_row_start ;
+    if (pivot_row_length > 0)
+    {
+      /* pick the "pivot" row arbitrarily (first row in col) */
+      pivot_row = A [Col [pivot_col].start] ;
+      COLAMD_DEBUG3 (("Pivotal row is %d\n", pivot_row)) ;
+    }
+    else
+    {
+      /* there is no pivot row, since it is of zero length */
+      pivot_row = COLAMD_EMPTY ;
+      COLAMD_ASSERT (pivot_row_length == 0) ;
+    }
+    COLAMD_ASSERT (Col [pivot_col].length > 0 || pivot_row_length == 0) ;
+
+    /* === Approximate degree computation =============================== */
+
+    /* Here begins the computation of the approximate degree.  The column */
+    /* score is the sum of the pivot row "length", plus the size of the */
+    /* set differences of each row in the column minus the pattern of the */
+    /* pivot row itself.  The column ("thickness") itself is also */
+    /* excluded from the column score (we thus use an approximate */
+    /* external degree). */
+
+    /* The time taken by the following code (compute set differences, and */
+    /* add them up) is proportional to the size of the data structure */
+    /* being scanned - that is, the sum of the sizes of each column in */
+    /* the pivot row.  Thus, the amortized time to compute a column score */
+    /* is proportional to the size of that column (where size, in this */
+    /* context, is the column "length", or the number of row indices */
+    /* in that column).  The number of row indices in a column is */
+    /* monotonically non-decreasing, from the length of the original */
+    /* column on input to colamd. */
+
+    /* === Compute set differences ====================================== */
+
+    COLAMD_DEBUG3 (("** Computing set differences phase. **\n")) ;
+
+    /* pivot row is currently dead - it will be revived later. */
+
+    COLAMD_DEBUG3 (("Pivot row: ")) ;
+    /* for each column in pivot row */
+    rp = &A [pivot_row_start] ;
+    rp_end = rp + pivot_row_length ;
+    while (rp < rp_end)
+    {
+      col = *rp++ ;
+      COLAMD_ASSERT (COL_IS_ALIVE (col) && col != pivot_col) ;
+      COLAMD_DEBUG3 (("Col: %d\n", col)) ;
+
+      /* clear tags used to construct pivot row pattern */
+      col_thickness = -Col [col].shared1.thickness ;
+      COLAMD_ASSERT (col_thickness > 0) ;
+      Col [col].shared1.thickness = col_thickness ;
+
+      /* === Remove column from degree list =========================== */
+
+      cur_score = Col [col].shared2.score ;
+      prev_col = Col [col].shared3.prev ;
+      next_col = Col [col].shared4.degree_next ;
+      COLAMD_ASSERT (cur_score >= 0) ;
+      COLAMD_ASSERT (cur_score <= n_col) ;
+      COLAMD_ASSERT (cur_score >= COLAMD_EMPTY) ;
+      if (prev_col == COLAMD_EMPTY)
+      {
+	head [cur_score] = next_col ;
+      }
+      else
+      {
+	Col [prev_col].shared4.degree_next = next_col ;
+      }
+      if (next_col != COLAMD_EMPTY)
+      {
+	Col [next_col].shared3.prev = prev_col ;
+      }
+
+      /* === Scan the column ========================================== */
+
+      cp = &A [Col [col].start] ;
+      cp_end = cp + Col [col].length ;
+      while (cp < cp_end)
+      {
+	/* get a row */
+	row = *cp++ ;
+	row_mark = Row [row].shared2.mark ;
+	/* skip if dead */
+	if (ROW_IS_MARKED_DEAD (row_mark))
+	{
+	  continue ;
+	}
+	COLAMD_ASSERT (row != pivot_row) ;
+	set_difference = row_mark - tag_mark ;
+	/* check if the row has been seen yet */
+	if (set_difference < 0)
+	{
+	  COLAMD_ASSERT (Row [row].shared1.degree <= max_deg) ;
+	  set_difference = Row [row].shared1.degree ;
+	}
+	/* subtract column thickness from this row's set difference */
+	set_difference -= col_thickness ;
+	COLAMD_ASSERT (set_difference >= 0) ;
+	/* absorb this row if the set difference becomes zero */
+	if (set_difference == 0)
+	{
+	  COLAMD_DEBUG3 (("aggressive absorption. Row: %d\n", row)) ;
+	  KILL_ROW (row) ;
+	}
+	else
+	{
+	  /* save the new mark */
+	  Row [row].shared2.mark = set_difference + tag_mark ;
+	}
+      }
+    }
+
+
+    /* === Add up set differences for each column ======================= */
+
+    COLAMD_DEBUG3 (("** Adding set differences phase. **\n")) ;
+
+    /* for each column in pivot row */
+    rp = &A [pivot_row_start] ;
+    rp_end = rp + pivot_row_length ;
+    while (rp < rp_end)
+    {
+      /* get a column */
+      col = *rp++ ;
+      COLAMD_ASSERT (COL_IS_ALIVE (col) && col != pivot_col) ;
+      hash = 0 ;
+      cur_score = 0 ;
+      cp = &A [Col [col].start] ;
+      /* compact the column */
+      new_cp = cp ;
+      cp_end = cp + Col [col].length ;
+
+      COLAMD_DEBUG4 (("Adding set diffs for Col: %d.\n", col)) ;
+
+      while (cp < cp_end)
+      {
+	/* get a row */
+	row = *cp++ ;
+	COLAMD_ASSERT(row >= 0 && row < n_row) ;
+	row_mark = Row [row].shared2.mark ;
+	/* skip if dead */
+	if (ROW_IS_MARKED_DEAD (row_mark))
+	{
+	  continue ;
+	}
+	COLAMD_ASSERT (row_mark > tag_mark) ;
+	/* compact the column */
+	*new_cp++ = row ;
+	/* compute hash function */
+	hash += row ;
+	/* add set difference */
+	cur_score += row_mark - tag_mark ;
+	/* integer overflow... */
+	cur_score = (std::min)(cur_score, n_col) ;
+      }
+
+      /* recompute the column's length */
+      Col [col].length = (Index) (new_cp - &A [Col [col].start]) ;
+
+      /* === Further mass elimination ================================= */
+
+      if (Col [col].length == 0)
+      {
+	COLAMD_DEBUG4 (("further mass elimination. Col: %d\n", col)) ;
+	/* nothing left but the pivot row in this column */
+	KILL_PRINCIPAL_COL (col) ;
+	pivot_row_degree -= Col [col].shared1.thickness ;
+	COLAMD_ASSERT (pivot_row_degree >= 0) ;
+	/* order it */
+	Col [col].shared2.order = k ;
+	/* increment order count by column thickness */
+	k += Col [col].shared1.thickness ;
+      }
+      else
+      {
+	/* === Prepare for supercolumn detection ==================== */
+
+	COLAMD_DEBUG4 (("Preparing supercol detection for Col: %d.\n", col)) ;
+
+	/* save score so far */
+	Col [col].shared2.score = cur_score ;
+
+	/* add column to hash table, for supercolumn detection */
+	hash %= n_col + 1 ;
+
+	COLAMD_DEBUG4 ((" Hash = %d, n_col = %d.\n", hash, n_col)) ;
+	COLAMD_ASSERT (hash <= n_col) ;
+
+	head_column = head [hash] ;
+	if (head_column > COLAMD_EMPTY)
+	{
+	  /* degree list "hash" is non-empty, use prev (shared3) of */
+	  /* first column in degree list as head of hash bucket */
+	  first_col = Col [head_column].shared3.headhash ;
+	  Col [head_column].shared3.headhash = col ;
+	}
+	else
+	{
+	  /* degree list "hash" is empty, use head as hash bucket */
+	  first_col = - (head_column + 2) ;
+	  head [hash] = - (col + 2) ;
+	}
+	Col [col].shared4.hash_next = first_col ;
+
+	/* save hash function in Col [col].shared3.hash */
+	Col [col].shared3.hash = (Index) hash ;
+	COLAMD_ASSERT (COL_IS_ALIVE (col)) ;
+      }
+    }
+
+    /* The approximate external column degree is now computed.  */
+
+    /* === Supercolumn detection ======================================== */
+
+    COLAMD_DEBUG3 (("** Supercolumn detection phase. **\n")) ;
+
+    Eigen::internal::detect_super_cols (Col, A, head, pivot_row_start, pivot_row_length) ;
+
+    /* === Kill the pivotal column ====================================== */
+
+    KILL_PRINCIPAL_COL (pivot_col) ;
+
+    /* === Clear mark =================================================== */
+
+    tag_mark += (max_deg + 1) ;
+    if (tag_mark >= max_mark)
+    {
+      COLAMD_DEBUG2 (("clearing tag_mark\n")) ;
+      tag_mark = Eigen::internal::clear_mark (n_row, Row) ;
+    }
+
+    /* === Finalize the new pivot row, and column scores ================ */
+
+    COLAMD_DEBUG3 (("** Finalize scores phase. **\n")) ;
+
+    /* for each column in pivot row */
+    rp = &A [pivot_row_start] ;
+    /* compact the pivot row */
+    new_rp = rp ;
+    rp_end = rp + pivot_row_length ;
+    while (rp < rp_end)
+    {
+      col = *rp++ ;
+      /* skip dead columns */
+      if (COL_IS_DEAD (col))
+      {
+	continue ;
+      }
+      *new_rp++ = col ;
+      /* add new pivot row to column */
+      A [Col [col].start + (Col [col].length++)] = pivot_row ;
+
+      /* retrieve score so far and add on pivot row's degree. */
+      /* (we wait until here for this in case the pivot */
+      /* row's degree was reduced due to mass elimination). */
+      cur_score = Col [col].shared2.score + pivot_row_degree ;
+
+      /* calculate the max possible score as the number of */
+      /* external columns minus the 'k' value minus the */
+      /* columns thickness */
+      max_score = n_col - k - Col [col].shared1.thickness ;
+
+      /* make the score the external degree of the union-of-rows */
+      cur_score -= Col [col].shared1.thickness ;
+
+      /* make sure score is less or equal than the max score */
+      cur_score = (std::min)(cur_score, max_score) ;
+      COLAMD_ASSERT (cur_score >= 0) ;
+
+      /* store updated score */
+      Col [col].shared2.score = cur_score ;
+
+      /* === Place column back in degree list ========================= */
+
+      COLAMD_ASSERT (min_score >= 0) ;
+      COLAMD_ASSERT (min_score <= n_col) ;
+      COLAMD_ASSERT (cur_score >= 0) ;
+      COLAMD_ASSERT (cur_score <= n_col) ;
+      COLAMD_ASSERT (head [cur_score] >= COLAMD_EMPTY) ;
+      next_col = head [cur_score] ;
+      Col [col].shared4.degree_next = next_col ;
+      Col [col].shared3.prev = COLAMD_EMPTY ;
+      if (next_col != COLAMD_EMPTY)
+      {
+	Col [next_col].shared3.prev = col ;
+      }
+      head [cur_score] = col ;
+
+      /* see if this score is less than current min */
+      min_score = (std::min)(min_score, cur_score) ;
+
+    }
+
+    /* === Resurrect the new pivot row ================================== */
+
+    if (pivot_row_degree > 0)
+    {
+      /* update pivot row length to reflect any cols that were killed */
+      /* during super-col detection and mass elimination */
+      Row [pivot_row].start  = pivot_row_start ;
+      Row [pivot_row].length = (Index) (new_rp - &A[pivot_row_start]) ;
+      Row [pivot_row].shared1.degree = pivot_row_degree ;
+      Row [pivot_row].shared2.mark = 0 ;
+      /* pivot row is no longer dead */
+    }
+  }
+
+  /* === All principal columns have now been ordered ====================== */
+
+  return (ngarbage) ;
+}
+
+
+/* ========================================================================== */
+/* === order_children ======================================================= */
+/* ========================================================================== */
+
+/*
+  The find_ordering routine has ordered all of the principal columns (the
+  representatives of the supercolumns).  The non-principal columns have not
+  yet been ordered.  This routine orders those columns by walking up the
+  parent tree (a column is a child of the column which absorbed it).  The
+  final permutation vector is then placed in p [0 ... n_col-1], with p [0]
+  being the first column, and p [n_col-1] being the last.  It doesn't look
+  like it at first glance, but be assured that this routine takes time linear
+  in the number of columns.  Although not immediately obvious, the time
+  taken by this routine is O (n_col), that is, linear in the number of
+  columns.  Not user-callable.
+*/
+template <typename Index>
+static inline  void order_children
+(
+  /* === Parameters ======================================================= */
+
+  Index n_col,      /* number of columns of A */
+  colamd_col<Index> Col [],    /* of size n_col+1 */
+  Index p []      /* p [0 ... n_col-1] is the column permutation*/
+  )
+{
+  /* === Local variables ================================================== */
+
+  Index i ;     /* loop counter for all columns */
+  Index c ;     /* column index */
+  Index parent ;    /* index of column's parent */
+  Index order ;     /* column's order */
+
+  /* === Order each non-principal column ================================== */
+
+  for (i = 0 ; i < n_col ; i++)
+  {
+    /* find an un-ordered non-principal column */
+    COLAMD_ASSERT (COL_IS_DEAD (i)) ;
+    if (!COL_IS_DEAD_PRINCIPAL (i) && Col [i].shared2.order == COLAMD_EMPTY)
+    {
+      parent = i ;
+      /* once found, find its principal parent */
+      do
+      {
+	parent = Col [parent].shared1.parent ;
+      } while (!COL_IS_DEAD_PRINCIPAL (parent)) ;
+
+      /* now, order all un-ordered non-principal columns along path */
+      /* to this parent.  collapse tree at the same time */
+      c = i ;
+      /* get order of parent */
+      order = Col [parent].shared2.order ;
+
+      do
+      {
+	COLAMD_ASSERT (Col [c].shared2.order == COLAMD_EMPTY) ;
+
+	/* order this column */
+	Col [c].shared2.order = order++ ;
+	/* collaps tree */
+	Col [c].shared1.parent = parent ;
+
+	/* get immediate parent of this column */
+	c = Col [c].shared1.parent ;
+
+	/* continue until we hit an ordered column.  There are */
+	/* guarranteed not to be anymore unordered columns */
+	/* above an ordered column */
+      } while (Col [c].shared2.order == COLAMD_EMPTY) ;
+
+      /* re-order the super_col parent to largest order for this group */
+      Col [parent].shared2.order = order ;
+    }
+  }
+
+  /* === Generate the permutation ========================================= */
+
+  for (c = 0 ; c < n_col ; c++)
+  {
+    p [Col [c].shared2.order] = c ;
+  }
+}
+
+
+/* ========================================================================== */
+/* === detect_super_cols ==================================================== */
+/* ========================================================================== */
+
+/*
+  Detects supercolumns by finding matches between columns in the hash buckets.
+  Check amongst columns in the set A [row_start ... row_start + row_length-1].
+  The columns under consideration are currently *not* in the degree lists,
+  and have already been placed in the hash buckets.
+
+  The hash bucket for columns whose hash function is equal to h is stored
+  as follows:
+
+  if head [h] is >= 0, then head [h] contains a degree list, so:
+
+  head [h] is the first column in degree bucket h.
+  Col [head [h]].headhash gives the first column in hash bucket h.
+
+  otherwise, the degree list is empty, and:
+
+  -(head [h] + 2) is the first column in hash bucket h.
+
+  For a column c in a hash bucket, Col [c].shared3.prev is NOT a "previous
+  column" pointer.  Col [c].shared3.hash is used instead as the hash number
+  for that column.  The value of Col [c].shared4.hash_next is the next column
+  in the same hash bucket.
+
+  Assuming no, or "few" hash collisions, the time taken by this routine is
+  linear in the sum of the sizes (lengths) of each column whose score has
+  just been computed in the approximate degree computation.
+  Not user-callable.
+*/
+template <typename Index>
+static void detect_super_cols
+(
+  /* === Parameters ======================================================= */
+  
+  colamd_col<Index> Col [],    /* of size n_col+1 */
+  Index A [],     /* row indices of A */
+  Index head [],    /* head of degree lists and hash buckets */
+  Index row_start,    /* pointer to set of columns to check */
+  Index row_length    /* number of columns to check */
+)
+{
+  /* === Local variables ================================================== */
+
+  Index hash ;      /* hash value for a column */
+  Index *rp ;     /* pointer to a row */
+  Index c ;     /* a column index */
+  Index super_c ;   /* column index of the column to absorb into */
+  Index *cp1 ;      /* column pointer for column super_c */
+  Index *cp2 ;      /* column pointer for column c */
+  Index length ;    /* length of column super_c */
+  Index prev_c ;    /* column preceding c in hash bucket */
+  Index i ;     /* loop counter */
+  Index *rp_end ;   /* pointer to the end of the row */
+  Index col ;     /* a column index in the row to check */
+  Index head_column ;   /* first column in hash bucket or degree list */
+  Index first_col ;   /* first column in hash bucket */
+
+  /* === Consider each column in the row ================================== */
+
+  rp = &A [row_start] ;
+  rp_end = rp + row_length ;
+  while (rp < rp_end)
+  {
+    col = *rp++ ;
+    if (COL_IS_DEAD (col))
+    {
+      continue ;
+    }
+
+    /* get hash number for this column */
+    hash = Col [col].shared3.hash ;
+    COLAMD_ASSERT (hash <= n_col) ;
+
+    /* === Get the first column in this hash bucket ===================== */
+
+    head_column = head [hash] ;
+    if (head_column > COLAMD_EMPTY)
+    {
+      first_col = Col [head_column].shared3.headhash ;
+    }
+    else
+    {
+      first_col = - (head_column + 2) ;
+    }
+
+    /* === Consider each column in the hash bucket ====================== */
+
+    for (super_c = first_col ; super_c != COLAMD_EMPTY ;
+	 super_c = Col [super_c].shared4.hash_next)
+    {
+      COLAMD_ASSERT (COL_IS_ALIVE (super_c)) ;
+      COLAMD_ASSERT (Col [super_c].shared3.hash == hash) ;
+      length = Col [super_c].length ;
+
+      /* prev_c is the column preceding column c in the hash bucket */
+      prev_c = super_c ;
+
+      /* === Compare super_c with all columns after it ================ */
+
+      for (c = Col [super_c].shared4.hash_next ;
+	   c != COLAMD_EMPTY ; c = Col [c].shared4.hash_next)
+      {
+	COLAMD_ASSERT (c != super_c) ;
+	COLAMD_ASSERT (COL_IS_ALIVE (c)) ;
+	COLAMD_ASSERT (Col [c].shared3.hash == hash) ;
+
+	/* not identical if lengths or scores are different */
+	if (Col [c].length != length ||
+	    Col [c].shared2.score != Col [super_c].shared2.score)
+	{
+	  prev_c = c ;
+	  continue ;
+	}
+
+	/* compare the two columns */
+	cp1 = &A [Col [super_c].start] ;
+	cp2 = &A [Col [c].start] ;
+
+	for (i = 0 ; i < length ; i++)
+	{
+	  /* the columns are "clean" (no dead rows) */
+	  COLAMD_ASSERT (ROW_IS_ALIVE (*cp1))  ;
+	  COLAMD_ASSERT (ROW_IS_ALIVE (*cp2))  ;
+	  /* row indices will same order for both supercols, */
+	  /* no gather scatter nessasary */
+	  if (*cp1++ != *cp2++)
+	  {
+	    break ;
+	  }
+	}
+
+	/* the two columns are different if the for-loop "broke" */
+	if (i != length)
+	{
+	  prev_c = c ;
+	  continue ;
+	}
+
+	/* === Got it!  two columns are identical =================== */
+
+	COLAMD_ASSERT (Col [c].shared2.score == Col [super_c].shared2.score) ;
+
+	Col [super_c].shared1.thickness += Col [c].shared1.thickness ;
+	Col [c].shared1.parent = super_c ;
+	KILL_NON_PRINCIPAL_COL (c) ;
+	/* order c later, in order_children() */
+	Col [c].shared2.order = COLAMD_EMPTY ;
+	/* remove c from hash bucket */
+	Col [prev_c].shared4.hash_next = Col [c].shared4.hash_next ;
+      }
+    }
+
+    /* === Empty this hash bucket ======================================= */
+
+    if (head_column > COLAMD_EMPTY)
+    {
+      /* corresponding degree list "hash" is not empty */
+      Col [head_column].shared3.headhash = COLAMD_EMPTY ;
+    }
+    else
+    {
+      /* corresponding degree list "hash" is empty */
+      head [hash] = COLAMD_EMPTY ;
+    }
+  }
+}
+
+
+/* ========================================================================== */
+/* === garbage_collection =================================================== */
+/* ========================================================================== */
+
+/*
+  Defragments and compacts columns and rows in the workspace A.  Used when
+  all avaliable memory has been used while performing row merging.  Returns
+  the index of the first free position in A, after garbage collection.  The
+  time taken by this routine is linear is the size of the array A, which is
+  itself linear in the number of nonzeros in the input matrix.
+  Not user-callable.
+*/
+template <typename Index>
+static Index garbage_collection  /* returns the new value of pfree */
+  (
+    /* === Parameters ======================================================= */
+    
+    Index n_row,      /* number of rows */
+    Index n_col,      /* number of columns */
+    Colamd_Row<Index> Row [],    /* row info */
+    colamd_col<Index> Col [],    /* column info */
+    Index A [],     /* A [0 ... Alen-1] holds the matrix */
+    Index *pfree      /* &A [0] ... pfree is in use */
+    )
+{
+  /* === Local variables ================================================== */
+
+  Index *psrc ;     /* source pointer */
+  Index *pdest ;    /* destination pointer */
+  Index j ;     /* counter */
+  Index r ;     /* a row index */
+  Index c ;     /* a column index */
+  Index length ;    /* length of a row or column */
+
+  /* === Defragment the columns =========================================== */
+
+  pdest = &A[0] ;
+  for (c = 0 ; c < n_col ; c++)
+  {
+    if (COL_IS_ALIVE (c))
+    {
+      psrc = &A [Col [c].start] ;
+
+      /* move and compact the column */
+      COLAMD_ASSERT (pdest <= psrc) ;
+      Col [c].start = (Index) (pdest - &A [0]) ;
+      length = Col [c].length ;
+      for (j = 0 ; j < length ; j++)
+      {
+	r = *psrc++ ;
+	if (ROW_IS_ALIVE (r))
+	{
+	  *pdest++ = r ;
+	}
+      }
+      Col [c].length = (Index) (pdest - &A [Col [c].start]) ;
+    }
+  }
+
+  /* === Prepare to defragment the rows =================================== */
+
+  for (r = 0 ; r < n_row ; r++)
+  {
+    if (ROW_IS_ALIVE (r))
+    {
+      if (Row [r].length == 0)
+      {
+	/* this row is of zero length.  cannot compact it, so kill it */
+	COLAMD_DEBUG3 (("Defrag row kill\n")) ;
+	KILL_ROW (r) ;
+      }
+      else
+      {
+	/* save first column index in Row [r].shared2.first_column */
+	psrc = &A [Row [r].start] ;
+	Row [r].shared2.first_column = *psrc ;
+	COLAMD_ASSERT (ROW_IS_ALIVE (r)) ;
+	/* flag the start of the row with the one's complement of row */
+	*psrc = ONES_COMPLEMENT (r) ;
+
+      }
+    }
+  }
+
+  /* === Defragment the rows ============================================== */
+
+  psrc = pdest ;
+  while (psrc < pfree)
+  {
+    /* find a negative number ... the start of a row */
+    if (*psrc++ < 0)
+    {
+      psrc-- ;
+      /* get the row index */
+      r = ONES_COMPLEMENT (*psrc) ;
+      COLAMD_ASSERT (r >= 0 && r < n_row) ;
+      /* restore first column index */
+      *psrc = Row [r].shared2.first_column ;
+      COLAMD_ASSERT (ROW_IS_ALIVE (r)) ;
+
+      /* move and compact the row */
+      COLAMD_ASSERT (pdest <= psrc) ;
+      Row [r].start = (Index) (pdest - &A [0]) ;
+      length = Row [r].length ;
+      for (j = 0 ; j < length ; j++)
+      {
+	c = *psrc++ ;
+	if (COL_IS_ALIVE (c))
+	{
+	  *pdest++ = c ;
+	}
+      }
+      Row [r].length = (Index) (pdest - &A [Row [r].start]) ;
+
+    }
+  }
+  /* ensure we found all the rows */
+  COLAMD_ASSERT (debug_rows == 0) ;
+
+  /* === Return the new value of pfree ==================================== */
+
+  return ((Index) (pdest - &A [0])) ;
+}
+
+
+/* ========================================================================== */
+/* === clear_mark =========================================================== */
+/* ========================================================================== */
+
+/*
+  Clears the Row [].shared2.mark array, and returns the new tag_mark.
+  Return value is the new tag_mark.  Not user-callable.
+*/
+template <typename Index>
+static inline  Index clear_mark  /* return the new value for tag_mark */
+  (
+      /* === Parameters ======================================================= */
+
+    Index n_row,    /* number of rows in A */
+    Colamd_Row<Index> Row [] /* Row [0 ... n_row-1].shared2.mark is set to zero */
+    )
+{
+  /* === Local variables ================================================== */
+
+  Index r ;
+
+  for (r = 0 ; r < n_row ; r++)
+  {
+    if (ROW_IS_ALIVE (r))
+    {
+      Row [r].shared2.mark = 0 ;
+    }
+  }
+  return (1) ;
+}
+
+
+} // namespace internal 
+#endif
diff --git a/vendor/eigen-3.2.8/Eigen/src/OrderingMethods/Ordering.h b/vendor/eigen-3.2.8/Eigen/src/OrderingMethods/Ordering.h
new file mode 100644
index 0000000..f3c31f9
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/OrderingMethods/Ordering.h
@@ -0,0 +1,154 @@
+ 
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012  Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ORDERING_H
+#define EIGEN_ORDERING_H
+
+namespace Eigen {
+  
+#include "Eigen_Colamd.h"
+
+namespace internal {
+    
+/** \internal
+  * \ingroup OrderingMethods_Module
+  * \returns the symmetric pattern A^T+A from the input matrix A. 
+  * FIXME: The values should not be considered here
+  */
+template<typename MatrixType> 
+void ordering_helper_at_plus_a(const MatrixType& mat, MatrixType& symmat)
+{
+  MatrixType C;
+  C = mat.transpose(); // NOTE: Could be  costly
+  for (int i = 0; i < C.rows(); i++) 
+  {
+      for (typename MatrixType::InnerIterator it(C, i); it; ++it)
+        it.valueRef() = 0.0;
+  }
+  symmat = C + mat; 
+}
+    
+}
+
+#ifndef EIGEN_MPL2_ONLY
+
+/** \ingroup OrderingMethods_Module
+  * \class AMDOrdering
+  *
+  * Functor computing the \em approximate \em minimum \em degree ordering
+  * If the matrix is not structurally symmetric, an ordering of A^T+A is computed
+  * \tparam  Index The type of indices of the matrix 
+  * \sa COLAMDOrdering
+  */
+template <typename Index>
+class AMDOrdering
+{
+  public:
+    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType;
+    
+    /** Compute the permutation vector from a sparse matrix
+     * This routine is much faster if the input matrix is column-major     
+     */
+    template <typename MatrixType>
+    void operator()(const MatrixType& mat, PermutationType& perm)
+    {
+      // Compute the symmetric pattern
+      SparseMatrix<typename MatrixType::Scalar, ColMajor, Index> symm;
+      internal::ordering_helper_at_plus_a(mat,symm); 
+    
+      // Call the AMD routine 
+      //m_mat.prune(keep_diag());
+      internal::minimum_degree_ordering(symm, perm);
+    }
+    
+    /** Compute the permutation with a selfadjoint matrix */
+    template <typename SrcType, unsigned int SrcUpLo> 
+    void operator()(const SparseSelfAdjointView<SrcType, SrcUpLo>& mat, PermutationType& perm)
+    { 
+      SparseMatrix<typename SrcType::Scalar, ColMajor, Index> C; C = mat;
+      
+      // Call the AMD routine 
+      // m_mat.prune(keep_diag()); //Remove the diagonal elements 
+      internal::minimum_degree_ordering(C, perm);
+    }
+};
+
+#endif // EIGEN_MPL2_ONLY
+
+/** \ingroup OrderingMethods_Module
+  * \class NaturalOrdering
+  *
+  * Functor computing the natural ordering (identity)
+  * 
+  * \note Returns an empty permutation matrix
+  * \tparam  Index The type of indices of the matrix 
+  */
+template <typename Index>
+class NaturalOrdering
+{
+  public:
+    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType;
+    
+    /** Compute the permutation vector from a column-major sparse matrix */
+    template <typename MatrixType>
+    void operator()(const MatrixType& /*mat*/, PermutationType& perm)
+    {
+      perm.resize(0); 
+    }
+    
+};
+
+/** \ingroup OrderingMethods_Module
+  * \class COLAMDOrdering
+  *
+  * Functor computing the \em column \em approximate \em minimum \em degree ordering 
+  * The matrix should be in column-major and \b compressed format (see SparseMatrix::makeCompressed()).
+  */
+template<typename Index>
+class COLAMDOrdering
+{
+  public:
+    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType; 
+    typedef Matrix<Index, Dynamic, 1> IndexVector;
+    
+    /** Compute the permutation vector \a perm form the sparse matrix \a mat
+      * \warning The input sparse matrix \a mat must be in compressed mode (see SparseMatrix::makeCompressed()).
+      */
+    template <typename MatrixType>
+    void operator() (const MatrixType& mat, PermutationType& perm)
+    {
+      eigen_assert(mat.isCompressed() && "COLAMDOrdering requires a sparse matrix in compressed mode. Call .makeCompressed() before passing it to COLAMDOrdering");
+      
+      Index m = mat.rows();
+      Index n = mat.cols();
+      Index nnz = mat.nonZeros();
+      // Get the recommended value of Alen to be used by colamd
+      Index Alen = internal::colamd_recommended(nnz, m, n); 
+      // Set the default parameters
+      double knobs [COLAMD_KNOBS]; 
+      Index stats [COLAMD_STATS];
+      internal::colamd_set_defaults(knobs);
+      
+      IndexVector p(n+1), A(Alen); 
+      for(Index i=0; i <= n; i++)   p(i) = mat.outerIndexPtr()[i];
+      for(Index i=0; i < nnz; i++)  A(i) = mat.innerIndexPtr()[i];
+      // Call Colamd routine to compute the ordering 
+      Index info = internal::colamd(m, n, Alen, A.data(), p.data(), knobs, stats); 
+      EIGEN_UNUSED_VARIABLE(info);
+      eigen_assert( info && "COLAMD failed " );
+      
+      perm.resize(n);
+      for (Index i = 0; i < n; i++) perm.indices()(p(i)) = i;
+    }
+};
+
+} // end namespace Eigen
+
+#endif
diff --git a/vendor/eigen-3.1.91/Eigen/src/PaStiXSupport/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/PaStiXSupport/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/PaStiXSupport/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/PaStiXSupport/CMakeLists.txt
diff --git a/vendor/eigen-3.1.91/Eigen/src/PaStiXSupport/PaStiXSupport.h b/vendor/eigen-3.2.8/Eigen/src/PaStiXSupport/PaStiXSupport.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/PaStiXSupport/PaStiXSupport.h
rename to vendor/eigen-3.2.8/Eigen/src/PaStiXSupport/PaStiXSupport.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/PardisoSupport/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/PardisoSupport/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/PardisoSupport/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/PardisoSupport/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/PardisoSupport/PardisoSupport.h b/vendor/eigen-3.2.8/Eigen/src/PardisoSupport/PardisoSupport.h
new file mode 100644
index 0000000..18cd7d8
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/PardisoSupport/PardisoSupport.h
@@ -0,0 +1,592 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL PARDISO
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_PARDISOSUPPORT_H
+#define EIGEN_PARDISOSUPPORT_H
+
+namespace Eigen { 
+
+template<typename _MatrixType> class PardisoLU;
+template<typename _MatrixType, int Options=Upper> class PardisoLLT;
+template<typename _MatrixType, int Options=Upper> class PardisoLDLT;
+
+namespace internal
+{
+  template<typename Index>
+  struct pardiso_run_selector
+  {
+    static Index run( _MKL_DSS_HANDLE_t pt, Index maxfct, Index mnum, Index type, Index phase, Index n, void *a,
+                      Index *ia, Index *ja, Index *perm, Index nrhs, Index *iparm, Index msglvl, void *b, void *x)
+    {
+      Index error = 0;
+      ::pardiso(pt, &maxfct, &mnum, &type, &phase, &n, a, ia, ja, perm, &nrhs, iparm, &msglvl, b, x, &error);
+      return error;
+    }
+  };
+  template<>
+  struct pardiso_run_selector<long long int>
+  {
+    typedef long long int Index;
+    static Index run( _MKL_DSS_HANDLE_t pt, Index maxfct, Index mnum, Index type, Index phase, Index n, void *a,
+                      Index *ia, Index *ja, Index *perm, Index nrhs, Index *iparm, Index msglvl, void *b, void *x)
+    {
+      Index error = 0;
+      ::pardiso_64(pt, &maxfct, &mnum, &type, &phase, &n, a, ia, ja, perm, &nrhs, iparm, &msglvl, b, x, &error);
+      return error;
+    }
+  };
+
+  template<class Pardiso> struct pardiso_traits;
+
+  template<typename _MatrixType>
+  struct pardiso_traits< PardisoLU<_MatrixType> >
+  {
+    typedef _MatrixType MatrixType;
+    typedef typename _MatrixType::Scalar Scalar;
+    typedef typename _MatrixType::RealScalar RealScalar;
+    typedef typename _MatrixType::Index Index;
+  };
+
+  template<typename _MatrixType, int Options>
+  struct pardiso_traits< PardisoLLT<_MatrixType, Options> >
+  {
+    typedef _MatrixType MatrixType;
+    typedef typename _MatrixType::Scalar Scalar;
+    typedef typename _MatrixType::RealScalar RealScalar;
+    typedef typename _MatrixType::Index Index;
+  };
+
+  template<typename _MatrixType, int Options>
+  struct pardiso_traits< PardisoLDLT<_MatrixType, Options> >
+  {
+    typedef _MatrixType MatrixType;
+    typedef typename _MatrixType::Scalar Scalar;
+    typedef typename _MatrixType::RealScalar RealScalar;
+    typedef typename _MatrixType::Index Index;    
+  };
+
+}
+
+template<class Derived>
+class PardisoImpl
+{
+    typedef internal::pardiso_traits<Derived> Traits;
+  public:
+    typedef typename Traits::MatrixType MatrixType;
+    typedef typename Traits::Scalar Scalar;
+    typedef typename Traits::RealScalar RealScalar;
+    typedef typename Traits::Index Index;
+    typedef SparseMatrix<Scalar,RowMajor,Index> SparseMatrixType;
+    typedef Matrix<Scalar,Dynamic,1> VectorType;
+    typedef Matrix<Index, 1, MatrixType::ColsAtCompileTime> IntRowVectorType;
+    typedef Matrix<Index, MatrixType::RowsAtCompileTime, 1> IntColVectorType;
+    typedef Array<Index,64,1,DontAlign> ParameterType;
+    enum {
+      ScalarIsComplex = NumTraits<Scalar>::IsComplex
+    };
+
+    PardisoImpl()
+    {
+      eigen_assert((sizeof(Index) >= sizeof(_INTEGER_t) && sizeof(Index) <= 8) && "Non-supported index type");
+      m_iparm.setZero();
+      m_msglvl = 0; // No output
+      m_initialized = false;
+    }
+
+    ~PardisoImpl()
+    {
+      pardisoRelease();
+    }
+
+    inline Index cols() const { return m_size; }
+    inline Index rows() const { return m_size; }
+  
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_initialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+
+    /** \warning for advanced usage only.
+      * \returns a reference to the parameter array controlling PARDISO.
+      * See the PARDISO manual to know how to use it. */
+    ParameterType& pardisoParameterArray()
+    {
+      return m_iparm;
+    }
+    
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      * 
+      * \sa factorize()
+      */
+    Derived& analyzePattern(const MatrixType& matrix);
+    
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+      *
+      * \sa analyzePattern()
+      */
+    Derived& factorize(const MatrixType& matrix);
+
+    Derived& compute(const MatrixType& matrix);
+    
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<PardisoImpl, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_initialized && "Pardiso solver is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "PardisoImpl::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<PardisoImpl, Rhs>(*this, b.derived());
+    }
+
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<PardisoImpl, Rhs>
+    solve(const SparseMatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_initialized && "Pardiso solver is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "PardisoImpl::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::sparse_solve_retval<PardisoImpl, Rhs>(*this, b.derived());
+    }
+
+    Derived& derived()
+    {
+      return *static_cast<Derived*>(this);
+    }
+    const Derived& derived() const
+    {
+      return *static_cast<const Derived*>(this);
+    }
+
+    template<typename BDerived, typename XDerived>
+    bool _solve(const MatrixBase<BDerived> &b, MatrixBase<XDerived>& x) const;
+
+  protected:
+    void pardisoRelease()
+    {
+      if(m_initialized) // Factorization ran at least once
+      {
+        internal::pardiso_run_selector<Index>::run(m_pt, 1, 1, m_type, -1, m_size, 0, 0, 0, m_perm.data(), 0,
+                                                   m_iparm.data(), m_msglvl, 0, 0);
+      }
+    }
+
+    void pardisoInit(int type)
+    {
+      m_type = type;
+      bool symmetric = std::abs(m_type) < 10;
+      m_iparm[0] = 1;   // No solver default
+      m_iparm[1] = 3;   // use Metis for the ordering
+      m_iparm[2] = 1;   // Numbers of processors, value of OMP_NUM_THREADS
+      m_iparm[3] = 0;   // No iterative-direct algorithm
+      m_iparm[4] = 0;   // No user fill-in reducing permutation
+      m_iparm[5] = 0;   // Write solution into x
+      m_iparm[6] = 0;   // Not in use
+      m_iparm[7] = 2;   // Max numbers of iterative refinement steps
+      m_iparm[8] = 0;   // Not in use
+      m_iparm[9] = 13;  // Perturb the pivot elements with 1E-13
+      m_iparm[10] = symmetric ? 0 : 1; // Use nonsymmetric permutation and scaling MPS
+      m_iparm[11] = 0;  // Not in use
+      m_iparm[12] = symmetric ? 0 : 1;  // Maximum weighted matching algorithm is switched-off (default for symmetric).
+                                        // Try m_iparm[12] = 1 in case of inappropriate accuracy
+      m_iparm[13] = 0;  // Output: Number of perturbed pivots
+      m_iparm[14] = 0;  // Not in use
+      m_iparm[15] = 0;  // Not in use
+      m_iparm[16] = 0;  // Not in use
+      m_iparm[17] = -1; // Output: Number of nonzeros in the factor LU
+      m_iparm[18] = -1; // Output: Mflops for LU factorization
+      m_iparm[19] = 0;  // Output: Numbers of CG Iterations
+      
+      m_iparm[20] = 0;  // 1x1 pivoting
+      m_iparm[26] = 0;  // No matrix checker
+      m_iparm[27] = (sizeof(RealScalar) == 4) ? 1 : 0;
+      m_iparm[34] = 1;  // C indexing
+      m_iparm[59] = 1;  // Automatic switch between In-Core and Out-of-Core modes
+    }
+
+  protected:
+    // cached data to reduce reallocation, etc.
+    
+    void manageErrorCode(Index error)
+    {
+      switch(error)
+      {
+        case 0:
+          m_info = Success;
+          break;
+        case -4:
+        case -7:
+          m_info = NumericalIssue;
+          break;
+        default:
+          m_info = InvalidInput;
+      }
+    }
+
+    mutable SparseMatrixType m_matrix;
+    ComputationInfo m_info;
+    bool m_initialized, m_analysisIsOk, m_factorizationIsOk;
+    Index m_type, m_msglvl;
+    mutable void *m_pt[64];
+    mutable ParameterType m_iparm;
+    mutable IntColVectorType m_perm;
+    Index m_size;
+    
+  private:
+    PardisoImpl(PardisoImpl &) {}
+};
+
+template<class Derived>
+Derived& PardisoImpl<Derived>::compute(const MatrixType& a)
+{
+  m_size = a.rows();
+  eigen_assert(a.rows() == a.cols());
+
+  pardisoRelease();
+  memset(m_pt, 0, sizeof(m_pt));
+  m_perm.setZero(m_size);
+  derived().getMatrix(a);
+  
+  Index error;
+  error = internal::pardiso_run_selector<Index>::run(m_pt, 1, 1, m_type, 12, m_size,
+                                                     m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
+                                                     m_perm.data(), 0, m_iparm.data(), m_msglvl, NULL, NULL);
+
+  manageErrorCode(error);
+  m_analysisIsOk = true;
+  m_factorizationIsOk = true;
+  m_initialized = true;
+  return derived();
+}
+
+template<class Derived>
+Derived& PardisoImpl<Derived>::analyzePattern(const MatrixType& a)
+{
+  m_size = a.rows();
+  eigen_assert(m_size == a.cols());
+
+  pardisoRelease();
+  memset(m_pt, 0, sizeof(m_pt));
+  m_perm.setZero(m_size);
+  derived().getMatrix(a);
+  
+  Index error;
+  error = internal::pardiso_run_selector<Index>::run(m_pt, 1, 1, m_type, 11, m_size,
+                                                     m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
+                                                     m_perm.data(), 0, m_iparm.data(), m_msglvl, NULL, NULL);
+  
+  manageErrorCode(error);
+  m_analysisIsOk = true;
+  m_factorizationIsOk = false;
+  m_initialized = true;
+  return derived();
+}
+
+template<class Derived>
+Derived& PardisoImpl<Derived>::factorize(const MatrixType& a)
+{
+  eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+  eigen_assert(m_size == a.rows() && m_size == a.cols());
+  
+  derived().getMatrix(a);
+
+  Index error;  
+  error = internal::pardiso_run_selector<Index>::run(m_pt, 1, 1, m_type, 22, m_size,
+                                                     m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
+                                                     m_perm.data(), 0, m_iparm.data(), m_msglvl, NULL, NULL);
+  
+  manageErrorCode(error);
+  m_factorizationIsOk = true;
+  return derived();
+}
+
+template<class Base>
+template<typename BDerived,typename XDerived>
+bool PardisoImpl<Base>::_solve(const MatrixBase<BDerived> &b, MatrixBase<XDerived>& x) const
+{
+  if(m_iparm[0] == 0) // Factorization was not computed
+    return false;
+
+  //Index n = m_matrix.rows();
+  Index nrhs = Index(b.cols());
+  eigen_assert(m_size==b.rows());
+  eigen_assert(((MatrixBase<BDerived>::Flags & RowMajorBit) == 0 || nrhs == 1) && "Row-major right hand sides are not supported");
+  eigen_assert(((MatrixBase<XDerived>::Flags & RowMajorBit) == 0 || nrhs == 1) && "Row-major matrices of unknowns are not supported");
+  eigen_assert(((nrhs == 1) || b.outerStride() == b.rows()));
+
+
+//  switch (transposed) {
+//    case SvNoTrans    : m_iparm[11] = 0 ; break;
+//    case SvTranspose  : m_iparm[11] = 2 ; break;
+//    case SvAdjoint    : m_iparm[11] = 1 ; break;
+//    default:
+//      //std::cerr << "Eigen: transposition  option \"" << transposed << "\" not supported by the PARDISO backend\n";
+//      m_iparm[11] = 0;
+//  }
+
+  Scalar* rhs_ptr = const_cast<Scalar*>(b.derived().data());
+  Matrix<Scalar,Dynamic,Dynamic,ColMajor> tmp;
+  
+  // Pardiso cannot solve in-place
+  if(rhs_ptr == x.derived().data())
+  {
+    tmp = b;
+    rhs_ptr = tmp.data();
+  }
+  
+  Index error;
+  error = internal::pardiso_run_selector<Index>::run(m_pt, 1, 1, m_type, 33, m_size,
+                                                     m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
+                                                     m_perm.data(), nrhs, m_iparm.data(), m_msglvl,
+                                                     rhs_ptr, x.derived().data());
+
+  return error==0;
+}
+
+
+/** \ingroup PardisoSupport_Module
+  * \class PardisoLU
+  * \brief A sparse direct LU factorization and solver based on the PARDISO library
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a direct LU factorization
+  * using the Intel MKL PARDISO library. The sparse matrix A must be squared and invertible.
+  * The vectors or matrices X and B can be either dense or sparse.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  *
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename MatrixType>
+class PardisoLU : public PardisoImpl< PardisoLU<MatrixType> >
+{
+  protected:
+    typedef PardisoImpl< PardisoLU<MatrixType> > Base;
+    typedef typename Base::Scalar Scalar;
+    typedef typename Base::RealScalar RealScalar;
+    using Base::pardisoInit;
+    using Base::m_matrix;
+    friend class PardisoImpl< PardisoLU<MatrixType> >;
+
+  public:
+
+    using Base::compute;
+    using Base::solve;
+
+    PardisoLU()
+      : Base()
+    {
+      pardisoInit(Base::ScalarIsComplex ? 13 : 11);
+    }
+
+    PardisoLU(const MatrixType& matrix)
+      : Base()
+    {
+      pardisoInit(Base::ScalarIsComplex ? 13 : 11);
+      compute(matrix);
+    }
+  protected:
+    void getMatrix(const MatrixType& matrix)
+    {
+      m_matrix = matrix;
+    }
+    
+  private:
+    PardisoLU(PardisoLU& ) {}
+};
+
+/** \ingroup PardisoSupport_Module
+  * \class PardisoLLT
+  * \brief A sparse direct Cholesky (LLT) factorization and solver based on the PARDISO library
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a LL^T Cholesky factorization
+  * using the Intel MKL PARDISO library. The sparse matrix A must be selfajoint and positive definite.
+  * The vectors or matrices X and B can be either dense or sparse.
+  *
+  * \tparam MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam UpLo can be any bitwise combination of Upper, Lower. The default is Upper, meaning only the upper triangular part has to be used.
+  *         Upper|Lower can be used to tell both triangular parts can be used as input.
+  *
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename MatrixType, int _UpLo>
+class PardisoLLT : public PardisoImpl< PardisoLLT<MatrixType,_UpLo> >
+{
+  protected:
+    typedef PardisoImpl< PardisoLLT<MatrixType,_UpLo> > Base;
+    typedef typename Base::Scalar Scalar;
+    typedef typename Base::Index Index;
+    typedef typename Base::RealScalar RealScalar;
+    using Base::pardisoInit;
+    using Base::m_matrix;
+    friend class PardisoImpl< PardisoLLT<MatrixType,_UpLo> >;
+
+  public:
+
+    enum { UpLo = _UpLo };
+    using Base::compute;
+    using Base::solve;
+
+    PardisoLLT()
+      : Base()
+    {
+      pardisoInit(Base::ScalarIsComplex ? 4 : 2);
+    }
+
+    PardisoLLT(const MatrixType& matrix)
+      : Base()
+    {
+      pardisoInit(Base::ScalarIsComplex ? 4 : 2);
+      compute(matrix);
+    }
+    
+  protected:
+    
+    void getMatrix(const MatrixType& matrix)
+    {
+      // PARDISO supports only upper, row-major matrices
+      PermutationMatrix<Dynamic,Dynamic,Index> p_null;
+      m_matrix.resize(matrix.rows(), matrix.cols());
+      m_matrix.template selfadjointView<Upper>() = matrix.template selfadjointView<UpLo>().twistedBy(p_null);
+    }
+    
+  private:
+    PardisoLLT(PardisoLLT& ) {}
+};
+
+/** \ingroup PardisoSupport_Module
+  * \class PardisoLDLT
+  * \brief A sparse direct Cholesky (LDLT) factorization and solver based on the PARDISO library
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a LDL^T Cholesky factorization
+  * using the Intel MKL PARDISO library. The sparse matrix A is assumed to be selfajoint and positive definite.
+  * For complex matrices, A can also be symmetric only, see the \a Options template parameter.
+  * The vectors or matrices X and B can be either dense or sparse.
+  *
+  * \tparam MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam Options can be any bitwise combination of Upper, Lower, and Symmetric. The default is Upper, meaning only the upper triangular part has to be used.
+  *         Symmetric can be used for symmetric, non-selfadjoint complex matrices, the default being to assume a selfadjoint matrix.
+  *         Upper|Lower can be used to tell both triangular parts can be used as input.
+  *
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename MatrixType, int Options>
+class PardisoLDLT : public PardisoImpl< PardisoLDLT<MatrixType,Options> >
+{
+  protected:
+    typedef PardisoImpl< PardisoLDLT<MatrixType,Options> > Base;
+    typedef typename Base::Scalar Scalar;
+    typedef typename Base::Index Index;
+    typedef typename Base::RealScalar RealScalar;
+    using Base::pardisoInit;
+    using Base::m_matrix;
+    friend class PardisoImpl< PardisoLDLT<MatrixType,Options> >;
+
+  public:
+
+    using Base::compute;
+    using Base::solve;
+    enum { UpLo = Options&(Upper|Lower) };
+
+    PardisoLDLT()
+      : Base()
+    {
+      pardisoInit(Base::ScalarIsComplex ? ( bool(Options&Symmetric) ? 6 : -4 ) : -2);
+    }
+
+    PardisoLDLT(const MatrixType& matrix)
+      : Base()
+    {
+      pardisoInit(Base::ScalarIsComplex ? ( bool(Options&Symmetric) ? 6 : -4 ) : -2);
+      compute(matrix);
+    }
+    
+    void getMatrix(const MatrixType& matrix)
+    {
+      // PARDISO supports only upper, row-major matrices
+      PermutationMatrix<Dynamic,Dynamic,Index> p_null;
+      m_matrix.resize(matrix.rows(), matrix.cols());
+      m_matrix.template selfadjointView<Upper>() = matrix.template selfadjointView<UpLo>().twistedBy(p_null);
+    }
+    
+  private:
+    PardisoLDLT(PardisoLDLT& ) {}
+};
+
+namespace internal {
+  
+template<typename _Derived, typename Rhs>
+struct solve_retval<PardisoImpl<_Derived>, Rhs>
+  : solve_retval_base<PardisoImpl<_Derived>, Rhs>
+{
+  typedef PardisoImpl<_Derived> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+template<typename Derived, typename Rhs>
+struct sparse_solve_retval<PardisoImpl<Derived>, Rhs>
+  : sparse_solve_retval_base<PardisoImpl<Derived>, Rhs>
+{
+  typedef PardisoImpl<Derived> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    this->defaultEvalTo(dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARDISOSUPPORT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/QR/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/QR/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/QR/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/QR/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/QR/ColPivHouseholderQR.h b/vendor/eigen-3.2.8/Eigen/src/QR/ColPivHouseholderQR.h
new file mode 100644
index 0000000..567eab7
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/QR/ColPivHouseholderQR.h
@@ -0,0 +1,580 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COLPIVOTINGHOUSEHOLDERQR_H
+#define EIGEN_COLPIVOTINGHOUSEHOLDERQR_H
+
+namespace Eigen { 
+
+/** \ingroup QR_Module
+  *
+  * \class ColPivHouseholderQR
+  *
+  * \brief Householder rank-revealing QR decomposition of a matrix with column-pivoting
+  *
+  * \param MatrixType the type of the matrix of which we are computing the QR decomposition
+  *
+  * This class performs a rank-revealing QR decomposition of a matrix \b A into matrices \b P, \b Q and \b R
+  * such that 
+  * \f[
+  *  \mathbf{A} \, \mathbf{P} = \mathbf{Q} \, \mathbf{R}
+  * \f]
+  * by using Householder transformations. Here, \b P is a permutation matrix, \b Q a unitary matrix and \b R an 
+  * upper triangular matrix.
+  *
+  * This decomposition performs column pivoting in order to be rank-revealing and improve
+  * numerical stability. It is slower than HouseholderQR, and faster than FullPivHouseholderQR.
+  *
+  * \sa MatrixBase::colPivHouseholderQr()
+  */
+template<typename _MatrixType> class ColPivHouseholderQR
+{
+  public:
+
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, Options, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixQType;
+    typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
+    typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationType;
+    typedef typename internal::plain_row_type<MatrixType, Index>::type IntRowVectorType;
+    typedef typename internal::plain_row_type<MatrixType>::type RowVectorType;
+    typedef typename internal::plain_row_type<MatrixType, RealScalar>::type RealRowVectorType;
+    typedef HouseholderSequence<MatrixType,typename internal::remove_all<typename HCoeffsType::ConjugateReturnType>::type> HouseholderSequenceType;
+    
+  private:
+    
+    typedef typename PermutationType::Index PermIndexType;
+    
+  public:
+
+    /**
+    * \brief Default Constructor.
+    *
+    * The default constructor is useful in cases in which the user intends to
+    * perform decompositions via ColPivHouseholderQR::compute(const MatrixType&).
+    */
+    ColPivHouseholderQR()
+      : m_qr(),
+        m_hCoeffs(),
+        m_colsPermutation(),
+        m_colsTranspositions(),
+        m_temp(),
+        m_colSqNorms(),
+        m_isInitialized(false),
+        m_usePrescribedThreshold(false) {}
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa ColPivHouseholderQR()
+      */
+    ColPivHouseholderQR(Index rows, Index cols)
+      : m_qr(rows, cols),
+        m_hCoeffs((std::min)(rows,cols)),
+        m_colsPermutation(PermIndexType(cols)),
+        m_colsTranspositions(cols),
+        m_temp(cols),
+        m_colSqNorms(cols),
+        m_isInitialized(false),
+        m_usePrescribedThreshold(false) {}
+
+    /** \brief Constructs a QR factorization from a given matrix
+      *
+      * This constructor computes the QR factorization of the matrix \a matrix by calling
+      * the method compute(). It is a short cut for:
+      * 
+      * \code
+      * ColPivHouseholderQR<MatrixType> qr(matrix.rows(), matrix.cols());
+      * qr.compute(matrix);
+      * \endcode
+      * 
+      * \sa compute()
+      */
+    ColPivHouseholderQR(const MatrixType& matrix)
+      : m_qr(matrix.rows(), matrix.cols()),
+        m_hCoeffs((std::min)(matrix.rows(),matrix.cols())),
+        m_colsPermutation(PermIndexType(matrix.cols())),
+        m_colsTranspositions(matrix.cols()),
+        m_temp(matrix.cols()),
+        m_colSqNorms(matrix.cols()),
+        m_isInitialized(false),
+        m_usePrescribedThreshold(false)
+    {
+      compute(matrix);
+    }
+
+    /** This method finds a solution x to the equation Ax=b, where A is the matrix of which
+      * *this is the QR decomposition, if any exists.
+      *
+      * \param b the right-hand-side of the equation to solve.
+      *
+      * \returns a solution.
+      *
+      * \note The case where b is a matrix is not yet implemented. Also, this
+      *       code is space inefficient.
+      *
+      * \note_about_checking_solutions
+      *
+      * \note_about_arbitrary_choice_of_solution
+      *
+      * Example: \include ColPivHouseholderQR_solve.cpp
+      * Output: \verbinclude ColPivHouseholderQR_solve.out
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<ColPivHouseholderQR, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return internal::solve_retval<ColPivHouseholderQR, Rhs>(*this, b.derived());
+    }
+
+    HouseholderSequenceType householderQ(void) const;
+    HouseholderSequenceType matrixQ(void) const
+    {
+      return householderQ(); 
+    }
+
+    /** \returns a reference to the matrix where the Householder QR decomposition is stored
+      */
+    const MatrixType& matrixQR() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return m_qr;
+    }
+    
+    /** \returns a reference to the matrix where the result Householder QR is stored 
+     * \warning The strict lower part of this matrix contains internal values. 
+     * Only the upper triangular part should be referenced. To get it, use
+     * \code matrixR().template triangularView<Upper>() \endcode
+     * For rank-deficient matrices, use 
+     * \code 
+     * matrixR().topLeftCorner(rank(), rank()).template triangularView<Upper>() 
+     * \endcode
+     */
+    const MatrixType& matrixR() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return m_qr;
+    }
+    
+    ColPivHouseholderQR& compute(const MatrixType& matrix);
+
+    /** \returns a const reference to the column permutation matrix */
+    const PermutationType& colsPermutation() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return m_colsPermutation;
+    }
+
+    /** \returns the absolute value of the determinant of the matrix of which
+      * *this is the QR decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the QR decomposition has already been computed.
+      *
+      * \note This is only for square matrices.
+      *
+      * \warning a determinant can be very big or small, so for matrices
+      * of large enough dimension, there is a risk of overflow/underflow.
+      * One way to work around that is to use logAbsDeterminant() instead.
+      *
+      * \sa logAbsDeterminant(), MatrixBase::determinant()
+      */
+    typename MatrixType::RealScalar absDeterminant() const;
+
+    /** \returns the natural log of the absolute value of the determinant of the matrix of which
+      * *this is the QR decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the QR decomposition has already been computed.
+      *
+      * \note This is only for square matrices.
+      *
+      * \note This method is useful to work around the risk of overflow/underflow that's inherent
+      * to determinant computation.
+      *
+      * \sa absDeterminant(), MatrixBase::determinant()
+      */
+    typename MatrixType::RealScalar logAbsDeterminant() const;
+
+    /** \returns the rank of the matrix of which *this is the QR decomposition.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline Index rank() const
+    {
+      using std::abs;
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold();
+      Index result = 0;
+      for(Index i = 0; i < m_nonzero_pivots; ++i)
+        result += (abs(m_qr.coeff(i,i)) > premultiplied_threshold);
+      return result;
+    }
+
+    /** \returns the dimension of the kernel of the matrix of which *this is the QR decomposition.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline Index dimensionOfKernel() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return cols() - rank();
+    }
+
+    /** \returns true if the matrix of which *this is the QR decomposition represents an injective
+      *          linear map, i.e. has trivial kernel; false otherwise.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isInjective() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return rank() == cols();
+    }
+
+    /** \returns true if the matrix of which *this is the QR decomposition represents a surjective
+      *          linear map; false otherwise.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isSurjective() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return rank() == rows();
+    }
+
+    /** \returns true if the matrix of which *this is the QR decomposition is invertible.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isInvertible() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return isInjective() && isSurjective();
+    }
+
+    /** \returns the inverse of the matrix of which *this is the QR decomposition.
+      *
+      * \note If this matrix is not invertible, the returned matrix has undefined coefficients.
+      *       Use isInvertible() to first determine whether this matrix is invertible.
+      */
+    inline const
+    internal::solve_retval<ColPivHouseholderQR, typename MatrixType::IdentityReturnType>
+    inverse() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return internal::solve_retval<ColPivHouseholderQR,typename MatrixType::IdentityReturnType>
+               (*this, MatrixType::Identity(m_qr.rows(), m_qr.cols()));
+    }
+
+    inline Index rows() const { return m_qr.rows(); }
+    inline Index cols() const { return m_qr.cols(); }
+    
+    /** \returns a const reference to the vector of Householder coefficients used to represent the factor \c Q.
+      * 
+      * For advanced uses only.
+      */
+    const HCoeffsType& hCoeffs() const { return m_hCoeffs; }
+
+    /** Allows to prescribe a threshold to be used by certain methods, such as rank(),
+      * who need to determine when pivots are to be considered nonzero. This is not used for the
+      * QR decomposition itself.
+      *
+      * When it needs to get the threshold value, Eigen calls threshold(). By default, this
+      * uses a formula to automatically determine a reasonable threshold.
+      * Once you have called the present method setThreshold(const RealScalar&),
+      * your value is used instead.
+      *
+      * \param threshold The new value to use as the threshold.
+      *
+      * A pivot will be considered nonzero if its absolute value is strictly greater than
+      *  \f$ \vert pivot \vert \leqslant threshold \times \vert maxpivot \vert \f$
+      * where maxpivot is the biggest pivot.
+      *
+      * If you want to come back to the default behavior, call setThreshold(Default_t)
+      */
+    ColPivHouseholderQR& setThreshold(const RealScalar& threshold)
+    {
+      m_usePrescribedThreshold = true;
+      m_prescribedThreshold = threshold;
+      return *this;
+    }
+
+    /** Allows to come back to the default behavior, letting Eigen use its default formula for
+      * determining the threshold.
+      *
+      * You should pass the special object Eigen::Default as parameter here.
+      * \code qr.setThreshold(Eigen::Default); \endcode
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    ColPivHouseholderQR& setThreshold(Default_t)
+    {
+      m_usePrescribedThreshold = false;
+      return *this;
+    }
+
+    /** Returns the threshold that will be used by certain methods such as rank().
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    RealScalar threshold() const
+    {
+      eigen_assert(m_isInitialized || m_usePrescribedThreshold);
+      return m_usePrescribedThreshold ? m_prescribedThreshold
+      // this formula comes from experimenting (see "LU precision tuning" thread on the list)
+      // and turns out to be identical to Higham's formula used already in LDLt.
+                                      : NumTraits<Scalar>::epsilon() * RealScalar(m_qr.diagonalSize());
+    }
+
+    /** \returns the number of nonzero pivots in the QR decomposition.
+      * Here nonzero is meant in the exact sense, not in a fuzzy sense.
+      * So that notion isn't really intrinsically interesting, but it is
+      * still useful when implementing algorithms.
+      *
+      * \sa rank()
+      */
+    inline Index nonzeroPivots() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return m_nonzero_pivots;
+    }
+
+    /** \returns the absolute value of the biggest pivot, i.e. the biggest
+      *          diagonal coefficient of R.
+      */
+    RealScalar maxPivot() const { return m_maxpivot; }
+    
+    /** \brief Reports whether the QR factorization was succesful.
+      *
+      * \note This function always returns \c Success. It is provided for compatibility 
+      * with other factorization routines.
+      * \returns \c Success 
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return Success;
+    }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    MatrixType m_qr;
+    HCoeffsType m_hCoeffs;
+    PermutationType m_colsPermutation;
+    IntRowVectorType m_colsTranspositions;
+    RowVectorType m_temp;
+    RealRowVectorType m_colSqNorms;
+    bool m_isInitialized, m_usePrescribedThreshold;
+    RealScalar m_prescribedThreshold, m_maxpivot;
+    Index m_nonzero_pivots;
+    Index m_det_pq;
+};
+
+template<typename MatrixType>
+typename MatrixType::RealScalar ColPivHouseholderQR<MatrixType>::absDeterminant() const
+{
+  using std::abs;
+  eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+  return abs(m_qr.diagonal().prod());
+}
+
+template<typename MatrixType>
+typename MatrixType::RealScalar ColPivHouseholderQR<MatrixType>::logAbsDeterminant() const
+{
+  eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+  return m_qr.diagonal().cwiseAbs().array().log().sum();
+}
+
+/** Performs the QR factorization of the given matrix \a matrix. The result of
+  * the factorization is stored into \c *this, and a reference to \c *this
+  * is returned.
+  *
+  * \sa class ColPivHouseholderQR, ColPivHouseholderQR(const MatrixType&)
+  */
+template<typename MatrixType>
+ColPivHouseholderQR<MatrixType>& ColPivHouseholderQR<MatrixType>::compute(const MatrixType& matrix)
+{
+  check_template_parameters();
+  
+  using std::abs;
+  Index rows = matrix.rows();
+  Index cols = matrix.cols();
+  Index size = matrix.diagonalSize();
+  
+  // the column permutation is stored as int indices, so just to be sure:
+  eigen_assert(cols<=NumTraits<int>::highest());
+
+  m_qr = matrix;
+  m_hCoeffs.resize(size);
+
+  m_temp.resize(cols);
+
+  m_colsTranspositions.resize(matrix.cols());
+  Index number_of_transpositions = 0;
+
+  m_colSqNorms.resize(cols);
+  for(Index k = 0; k < cols; ++k)
+    m_colSqNorms.coeffRef(k) = m_qr.col(k).squaredNorm();
+
+  RealScalar threshold_helper = m_colSqNorms.maxCoeff() * numext::abs2(NumTraits<Scalar>::epsilon()) / RealScalar(rows);
+
+  m_nonzero_pivots = size; // the generic case is that in which all pivots are nonzero (invertible case)
+  m_maxpivot = RealScalar(0);
+
+  for(Index k = 0; k < size; ++k)
+  {
+    // first, we look up in our table m_colSqNorms which column has the biggest squared norm
+    Index biggest_col_index;
+    RealScalar biggest_col_sq_norm = m_colSqNorms.tail(cols-k).maxCoeff(&biggest_col_index);
+    biggest_col_index += k;
+
+    // since our table m_colSqNorms accumulates imprecision at every step, we must now recompute
+    // the actual squared norm of the selected column.
+    // Note that not doing so does result in solve() sometimes returning inf/nan values
+    // when running the unit test with 1000 repetitions.
+    biggest_col_sq_norm = m_qr.col(biggest_col_index).tail(rows-k).squaredNorm();
+
+    // we store that back into our table: it can't hurt to correct our table.
+    m_colSqNorms.coeffRef(biggest_col_index) = biggest_col_sq_norm;
+
+    // Track the number of meaningful pivots but do not stop the decomposition to make
+    // sure that the initial matrix is properly reproduced. See bug 941.
+    if(m_nonzero_pivots==size && biggest_col_sq_norm < threshold_helper * RealScalar(rows-k))
+      m_nonzero_pivots = k;
+
+    // apply the transposition to the columns
+    m_colsTranspositions.coeffRef(k) = biggest_col_index;
+    if(k != biggest_col_index) {
+      m_qr.col(k).swap(m_qr.col(biggest_col_index));
+      std::swap(m_colSqNorms.coeffRef(k), m_colSqNorms.coeffRef(biggest_col_index));
+      ++number_of_transpositions;
+    }
+
+    // generate the householder vector, store it below the diagonal
+    RealScalar beta;
+    m_qr.col(k).tail(rows-k).makeHouseholderInPlace(m_hCoeffs.coeffRef(k), beta);
+
+    // apply the householder transformation to the diagonal coefficient
+    m_qr.coeffRef(k,k) = beta;
+
+    // remember the maximum absolute value of diagonal coefficients
+    if(abs(beta) > m_maxpivot) m_maxpivot = abs(beta);
+
+    // apply the householder transformation
+    m_qr.bottomRightCorner(rows-k, cols-k-1)
+        .applyHouseholderOnTheLeft(m_qr.col(k).tail(rows-k-1), m_hCoeffs.coeffRef(k), &m_temp.coeffRef(k+1));
+
+    // update our table of squared norms of the columns
+    m_colSqNorms.tail(cols-k-1) -= m_qr.row(k).tail(cols-k-1).cwiseAbs2();
+  }
+
+  m_colsPermutation.setIdentity(PermIndexType(cols));
+  for(PermIndexType k = 0; k < size/*m_nonzero_pivots*/; ++k)
+    m_colsPermutation.applyTranspositionOnTheRight(k, PermIndexType(m_colsTranspositions.coeff(k)));
+
+  m_det_pq = (number_of_transpositions%2) ? -1 : 1;
+  m_isInitialized = true;
+
+  return *this;
+}
+
+namespace internal {
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<ColPivHouseholderQR<_MatrixType>, Rhs>
+  : solve_retval_base<ColPivHouseholderQR<_MatrixType>, Rhs>
+{
+  EIGEN_MAKE_SOLVE_HELPERS(ColPivHouseholderQR<_MatrixType>,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    eigen_assert(rhs().rows() == dec().rows());
+
+    const Index cols = dec().cols(),
+				nonzero_pivots = dec().nonzeroPivots();
+
+    if(nonzero_pivots == 0)
+    {
+      dst.setZero();
+      return;
+    }
+
+    typename Rhs::PlainObject c(rhs());
+
+    // Note that the matrix Q = H_0^* H_1^*... so its inverse is Q^* = (H_0 H_1 ...)^T
+    c.applyOnTheLeft(householderSequence(dec().matrixQR(), dec().hCoeffs())
+                     .setLength(dec().nonzeroPivots())
+		     .transpose()
+      );
+
+    dec().matrixR()
+       .topLeftCorner(nonzero_pivots, nonzero_pivots)
+       .template triangularView<Upper>()
+       .solveInPlace(c.topRows(nonzero_pivots));
+
+    for(Index i = 0; i < nonzero_pivots; ++i) dst.row(dec().colsPermutation().indices().coeff(i)) = c.row(i);
+    for(Index i = nonzero_pivots; i < cols; ++i) dst.row(dec().colsPermutation().indices().coeff(i)).setZero();
+  }
+};
+
+} // end namespace internal
+
+/** \returns the matrix Q as a sequence of householder transformations.
+  * You can extract the meaningful part only by using:
+  * \code qr.householderQ().setLength(qr.nonzeroPivots()) \endcode*/
+template<typename MatrixType>
+typename ColPivHouseholderQR<MatrixType>::HouseholderSequenceType ColPivHouseholderQR<MatrixType>
+  ::householderQ() const
+{
+  eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+  return HouseholderSequenceType(m_qr, m_hCoeffs.conjugate());
+}
+
+/** \return the column-pivoting Householder QR decomposition of \c *this.
+  *
+  * \sa class ColPivHouseholderQR
+  */
+template<typename Derived>
+const ColPivHouseholderQR<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::colPivHouseholderQr() const
+{
+  return ColPivHouseholderQR<PlainObject>(eval());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_COLPIVOTINGHOUSEHOLDERQR_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/QR/ColPivHouseholderQR_MKL.h b/vendor/eigen-3.2.8/Eigen/src/QR/ColPivHouseholderQR_MKL.h
new file mode 100644
index 0000000..7b6ba0a
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/QR/ColPivHouseholderQR_MKL.h
@@ -0,0 +1,98 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *    Householder QR decomposition of a matrix with column pivoting based on
+ *    LAPACKE_?geqp3 function.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_COLPIVOTINGHOUSEHOLDERQR_MKL_H
+#define EIGEN_COLPIVOTINGHOUSEHOLDERQR_MKL_H
+
+#include "Eigen/src/Core/util/MKL_support.h"
+
+namespace Eigen { 
+
+/** \internal Specialization for the data types supported by MKL */
+
+#define EIGEN_MKL_QR_COLPIV(EIGTYPE, MKLTYPE, MKLPREFIX, EIGCOLROW, MKLCOLROW) \
+template<> inline \
+ColPivHouseholderQR<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> >& \
+ColPivHouseholderQR<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> >::compute( \
+              const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic>& matrix) \
+\
+{ \
+  using std::abs; \
+  typedef Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> MatrixType; \
+  typedef MatrixType::RealScalar RealScalar; \
+  Index rows = matrix.rows();\
+  Index cols = matrix.cols();\
+  Index size = matrix.diagonalSize();\
+\
+  m_qr = matrix;\
+  m_hCoeffs.resize(size);\
+\
+  m_colsTranspositions.resize(cols);\
+  /*Index number_of_transpositions = 0;*/ \
+\
+  m_nonzero_pivots = 0; \
+  m_maxpivot = RealScalar(0);\
+  m_colsPermutation.resize(cols); \
+  m_colsPermutation.indices().setZero(); \
+\
+  lapack_int lda = m_qr.outerStride(), i; \
+  lapack_int matrix_order = MKLCOLROW; \
+  LAPACKE_##MKLPREFIX##geqp3( matrix_order, rows, cols, (MKLTYPE*)m_qr.data(), lda, (lapack_int*)m_colsPermutation.indices().data(), (MKLTYPE*)m_hCoeffs.data()); \
+  m_isInitialized = true; \
+  m_maxpivot=m_qr.diagonal().cwiseAbs().maxCoeff(); \
+  m_hCoeffs.adjointInPlace(); \
+  RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold(); \
+  lapack_int *perm = m_colsPermutation.indices().data(); \
+  for(i=0;i<size;i++) { \
+    m_nonzero_pivots += (abs(m_qr.coeff(i,i)) > premultiplied_threshold);\
+  } \
+  for(i=0;i<cols;i++) perm[i]--;\
+\
+  /*m_det_pq = (number_of_transpositions%2) ? -1 : 1;  // TODO: It's not needed now; fix upon availability in Eigen */ \
+\
+  return *this; \
+}
+
+EIGEN_MKL_QR_COLPIV(double,   double,        d, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_QR_COLPIV(float,    float,         s, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_QR_COLPIV(dcomplex, MKL_Complex16, z, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_QR_COLPIV(scomplex, MKL_Complex8,  c, ColMajor, LAPACK_COL_MAJOR)
+
+EIGEN_MKL_QR_COLPIV(double,   double,        d, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_QR_COLPIV(float,    float,         s, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_QR_COLPIV(dcomplex, MKL_Complex16, z, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_QR_COLPIV(scomplex, MKL_Complex8,  c, RowMajor, LAPACK_ROW_MAJOR)
+
+} // end namespace Eigen
+
+#endif // EIGEN_COLPIVOTINGHOUSEHOLDERQR_MKL_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/QR/FullPivHouseholderQR.h b/vendor/eigen-3.2.8/Eigen/src/QR/FullPivHouseholderQR.h
new file mode 100644
index 0000000..0b39966
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/QR/FullPivHouseholderQR.h
@@ -0,0 +1,622 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_FULLPIVOTINGHOUSEHOLDERQR_H
+#define EIGEN_FULLPIVOTINGHOUSEHOLDERQR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename MatrixType> struct FullPivHouseholderQRMatrixQReturnType;
+
+template<typename MatrixType>
+struct traits<FullPivHouseholderQRMatrixQReturnType<MatrixType> >
+{
+  typedef typename MatrixType::PlainObject ReturnType;
+};
+
+}
+
+/** \ingroup QR_Module
+  *
+  * \class FullPivHouseholderQR
+  *
+  * \brief Householder rank-revealing QR decomposition of a matrix with full pivoting
+  *
+  * \param MatrixType the type of the matrix of which we are computing the QR decomposition
+  *
+  * This class performs a rank-revealing QR decomposition of a matrix \b A into matrices \b P, \b Q and \b R
+  * such that 
+  * \f[
+  *  \mathbf{A} \, \mathbf{P} = \mathbf{Q} \, \mathbf{R}
+  * \f]
+  * by using Householder transformations. Here, \b P is a permutation matrix, \b Q a unitary matrix and \b R an 
+  * upper triangular matrix.
+  *
+  * This decomposition performs a very prudent full pivoting in order to be rank-revealing and achieve optimal
+  * numerical stability. The trade-off is that it is slower than HouseholderQR and ColPivHouseholderQR.
+  *
+  * \sa MatrixBase::fullPivHouseholderQr()
+  */
+template<typename _MatrixType> class FullPivHouseholderQR
+{
+  public:
+
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef internal::FullPivHouseholderQRMatrixQReturnType<MatrixType> MatrixQReturnType;
+    typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
+    typedef Matrix<Index, 1,
+                   EIGEN_SIZE_MIN_PREFER_DYNAMIC(ColsAtCompileTime,RowsAtCompileTime), RowMajor, 1,
+                   EIGEN_SIZE_MIN_PREFER_FIXED(MaxColsAtCompileTime,MaxRowsAtCompileTime)> IntDiagSizeVectorType;
+    typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationType;
+    typedef typename internal::plain_row_type<MatrixType>::type RowVectorType;
+    typedef typename internal::plain_col_type<MatrixType>::type ColVectorType;
+
+    /** \brief Default Constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via FullPivHouseholderQR::compute(const MatrixType&).
+      */
+    FullPivHouseholderQR()
+      : m_qr(),
+        m_hCoeffs(),
+        m_rows_transpositions(),
+        m_cols_transpositions(),
+        m_cols_permutation(),
+        m_temp(),
+        m_isInitialized(false),
+        m_usePrescribedThreshold(false) {}
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa FullPivHouseholderQR()
+      */
+    FullPivHouseholderQR(Index rows, Index cols)
+      : m_qr(rows, cols),
+        m_hCoeffs((std::min)(rows,cols)),
+        m_rows_transpositions((std::min)(rows,cols)),
+        m_cols_transpositions((std::min)(rows,cols)),
+        m_cols_permutation(cols),
+        m_temp(cols),
+        m_isInitialized(false),
+        m_usePrescribedThreshold(false) {}
+
+    /** \brief Constructs a QR factorization from a given matrix
+      *
+      * This constructor computes the QR factorization of the matrix \a matrix by calling
+      * the method compute(). It is a short cut for:
+      * 
+      * \code
+      * FullPivHouseholderQR<MatrixType> qr(matrix.rows(), matrix.cols());
+      * qr.compute(matrix);
+      * \endcode
+      * 
+      * \sa compute()
+      */
+    FullPivHouseholderQR(const MatrixType& matrix)
+      : m_qr(matrix.rows(), matrix.cols()),
+        m_hCoeffs((std::min)(matrix.rows(), matrix.cols())),
+        m_rows_transpositions((std::min)(matrix.rows(), matrix.cols())),
+        m_cols_transpositions((std::min)(matrix.rows(), matrix.cols())),
+        m_cols_permutation(matrix.cols()),
+        m_temp(matrix.cols()),
+        m_isInitialized(false),
+        m_usePrescribedThreshold(false)
+    {
+      compute(matrix);
+    }
+
+    /** This method finds a solution x to the equation Ax=b, where A is the matrix of which
+      * \c *this is the QR decomposition.
+      *
+      * \param b the right-hand-side of the equation to solve.
+      *
+      * \returns the exact or least-square solution if the rank is greater or equal to the number of columns of A,
+      * and an arbitrary solution otherwise.
+      *
+      * \note The case where b is a matrix is not yet implemented. Also, this
+      *       code is space inefficient.
+      *
+      * \note_about_checking_solutions
+      *
+      * \note_about_arbitrary_choice_of_solution
+      *
+      * Example: \include FullPivHouseholderQR_solve.cpp
+      * Output: \verbinclude FullPivHouseholderQR_solve.out
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<FullPivHouseholderQR, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return internal::solve_retval<FullPivHouseholderQR, Rhs>(*this, b.derived());
+    }
+
+    /** \returns Expression object representing the matrix Q
+      */
+    MatrixQReturnType matrixQ(void) const;
+
+    /** \returns a reference to the matrix where the Householder QR decomposition is stored
+      */
+    const MatrixType& matrixQR() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return m_qr;
+    }
+
+    FullPivHouseholderQR& compute(const MatrixType& matrix);
+
+    /** \returns a const reference to the column permutation matrix */
+    const PermutationType& colsPermutation() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return m_cols_permutation;
+    }
+
+    /** \returns a const reference to the vector of indices representing the rows transpositions */
+    const IntDiagSizeVectorType& rowsTranspositions() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return m_rows_transpositions;
+    }
+
+    /** \returns the absolute value of the determinant of the matrix of which
+      * *this is the QR decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the QR decomposition has already been computed.
+      *
+      * \note This is only for square matrices.
+      *
+      * \warning a determinant can be very big or small, so for matrices
+      * of large enough dimension, there is a risk of overflow/underflow.
+      * One way to work around that is to use logAbsDeterminant() instead.
+      *
+      * \sa logAbsDeterminant(), MatrixBase::determinant()
+      */
+    typename MatrixType::RealScalar absDeterminant() const;
+
+    /** \returns the natural log of the absolute value of the determinant of the matrix of which
+      * *this is the QR decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the QR decomposition has already been computed.
+      *
+      * \note This is only for square matrices.
+      *
+      * \note This method is useful to work around the risk of overflow/underflow that's inherent
+      * to determinant computation.
+      *
+      * \sa absDeterminant(), MatrixBase::determinant()
+      */
+    typename MatrixType::RealScalar logAbsDeterminant() const;
+
+    /** \returns the rank of the matrix of which *this is the QR decomposition.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline Index rank() const
+    {
+      using std::abs;
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold();
+      Index result = 0;
+      for(Index i = 0; i < m_nonzero_pivots; ++i)
+        result += (abs(m_qr.coeff(i,i)) > premultiplied_threshold);
+      return result;
+    }
+
+    /** \returns the dimension of the kernel of the matrix of which *this is the QR decomposition.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline Index dimensionOfKernel() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return cols() - rank();
+    }
+
+    /** \returns true if the matrix of which *this is the QR decomposition represents an injective
+      *          linear map, i.e. has trivial kernel; false otherwise.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isInjective() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return rank() == cols();
+    }
+
+    /** \returns true if the matrix of which *this is the QR decomposition represents a surjective
+      *          linear map; false otherwise.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isSurjective() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return rank() == rows();
+    }
+
+    /** \returns true if the matrix of which *this is the QR decomposition is invertible.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isInvertible() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return isInjective() && isSurjective();
+    }
+
+    /** \returns the inverse of the matrix of which *this is the QR decomposition.
+      *
+      * \note If this matrix is not invertible, the returned matrix has undefined coefficients.
+      *       Use isInvertible() to first determine whether this matrix is invertible.
+      */    inline const
+    internal::solve_retval<FullPivHouseholderQR, typename MatrixType::IdentityReturnType>
+    inverse() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return internal::solve_retval<FullPivHouseholderQR,typename MatrixType::IdentityReturnType>
+               (*this, MatrixType::Identity(m_qr.rows(), m_qr.cols()));
+    }
+
+    inline Index rows() const { return m_qr.rows(); }
+    inline Index cols() const { return m_qr.cols(); }
+    
+    /** \returns a const reference to the vector of Householder coefficients used to represent the factor \c Q.
+      * 
+      * For advanced uses only.
+      */
+    const HCoeffsType& hCoeffs() const { return m_hCoeffs; }
+
+    /** Allows to prescribe a threshold to be used by certain methods, such as rank(),
+      * who need to determine when pivots are to be considered nonzero. This is not used for the
+      * QR decomposition itself.
+      *
+      * When it needs to get the threshold value, Eigen calls threshold(). By default, this
+      * uses a formula to automatically determine a reasonable threshold.
+      * Once you have called the present method setThreshold(const RealScalar&),
+      * your value is used instead.
+      *
+      * \param threshold The new value to use as the threshold.
+      *
+      * A pivot will be considered nonzero if its absolute value is strictly greater than
+      *  \f$ \vert pivot \vert \leqslant threshold \times \vert maxpivot \vert \f$
+      * where maxpivot is the biggest pivot.
+      *
+      * If you want to come back to the default behavior, call setThreshold(Default_t)
+      */
+    FullPivHouseholderQR& setThreshold(const RealScalar& threshold)
+    {
+      m_usePrescribedThreshold = true;
+      m_prescribedThreshold = threshold;
+      return *this;
+    }
+
+    /** Allows to come back to the default behavior, letting Eigen use its default formula for
+      * determining the threshold.
+      *
+      * You should pass the special object Eigen::Default as parameter here.
+      * \code qr.setThreshold(Eigen::Default); \endcode
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    FullPivHouseholderQR& setThreshold(Default_t)
+    {
+      m_usePrescribedThreshold = false;
+      return *this;
+    }
+
+    /** Returns the threshold that will be used by certain methods such as rank().
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    RealScalar threshold() const
+    {
+      eigen_assert(m_isInitialized || m_usePrescribedThreshold);
+      return m_usePrescribedThreshold ? m_prescribedThreshold
+      // this formula comes from experimenting (see "LU precision tuning" thread on the list)
+      // and turns out to be identical to Higham's formula used already in LDLt.
+                                      : NumTraits<Scalar>::epsilon() * RealScalar(m_qr.diagonalSize());
+    }
+
+    /** \returns the number of nonzero pivots in the QR decomposition.
+      * Here nonzero is meant in the exact sense, not in a fuzzy sense.
+      * So that notion isn't really intrinsically interesting, but it is
+      * still useful when implementing algorithms.
+      *
+      * \sa rank()
+      */
+    inline Index nonzeroPivots() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return m_nonzero_pivots;
+    }
+
+    /** \returns the absolute value of the biggest pivot, i.e. the biggest
+      *          diagonal coefficient of U.
+      */
+    RealScalar maxPivot() const { return m_maxpivot; }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    MatrixType m_qr;
+    HCoeffsType m_hCoeffs;
+    IntDiagSizeVectorType m_rows_transpositions;
+    IntDiagSizeVectorType m_cols_transpositions;
+    PermutationType m_cols_permutation;
+    RowVectorType m_temp;
+    bool m_isInitialized, m_usePrescribedThreshold;
+    RealScalar m_prescribedThreshold, m_maxpivot;
+    Index m_nonzero_pivots;
+    RealScalar m_precision;
+    Index m_det_pq;
+};
+
+template<typename MatrixType>
+typename MatrixType::RealScalar FullPivHouseholderQR<MatrixType>::absDeterminant() const
+{
+  using std::abs;
+  eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+  return abs(m_qr.diagonal().prod());
+}
+
+template<typename MatrixType>
+typename MatrixType::RealScalar FullPivHouseholderQR<MatrixType>::logAbsDeterminant() const
+{
+  eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+  return m_qr.diagonal().cwiseAbs().array().log().sum();
+}
+
+/** Performs the QR factorization of the given matrix \a matrix. The result of
+  * the factorization is stored into \c *this, and a reference to \c *this
+  * is returned.
+  *
+  * \sa class FullPivHouseholderQR, FullPivHouseholderQR(const MatrixType&)
+  */
+template<typename MatrixType>
+FullPivHouseholderQR<MatrixType>& FullPivHouseholderQR<MatrixType>::compute(const MatrixType& matrix)
+{
+  check_template_parameters();
+  
+  using std::abs;
+  Index rows = matrix.rows();
+  Index cols = matrix.cols();
+  Index size = (std::min)(rows,cols);
+
+  m_qr = matrix;
+  m_hCoeffs.resize(size);
+
+  m_temp.resize(cols);
+
+  m_precision = NumTraits<Scalar>::epsilon() * RealScalar(size);
+
+  m_rows_transpositions.resize(size);
+  m_cols_transpositions.resize(size);
+  Index number_of_transpositions = 0;
+
+  RealScalar biggest(0);
+
+  m_nonzero_pivots = size; // the generic case is that in which all pivots are nonzero (invertible case)
+  m_maxpivot = RealScalar(0);
+
+  for (Index k = 0; k < size; ++k)
+  {
+    Index row_of_biggest_in_corner, col_of_biggest_in_corner;
+    RealScalar biggest_in_corner;
+
+    biggest_in_corner = m_qr.bottomRightCorner(rows-k, cols-k)
+                            .cwiseAbs()
+                            .maxCoeff(&row_of_biggest_in_corner, &col_of_biggest_in_corner);
+    row_of_biggest_in_corner += k;
+    col_of_biggest_in_corner += k;
+    if(k==0) biggest = biggest_in_corner;
+
+    // if the corner is negligible, then we have less than full rank, and we can finish early
+    if(internal::isMuchSmallerThan(biggest_in_corner, biggest, m_precision))
+    {
+      m_nonzero_pivots = k;
+      for(Index i = k; i < size; i++)
+      {
+        m_rows_transpositions.coeffRef(i) = i;
+        m_cols_transpositions.coeffRef(i) = i;
+        m_hCoeffs.coeffRef(i) = Scalar(0);
+      }
+      break;
+    }
+
+    m_rows_transpositions.coeffRef(k) = row_of_biggest_in_corner;
+    m_cols_transpositions.coeffRef(k) = col_of_biggest_in_corner;
+    if(k != row_of_biggest_in_corner) {
+      m_qr.row(k).tail(cols-k).swap(m_qr.row(row_of_biggest_in_corner).tail(cols-k));
+      ++number_of_transpositions;
+    }
+    if(k != col_of_biggest_in_corner) {
+      m_qr.col(k).swap(m_qr.col(col_of_biggest_in_corner));
+      ++number_of_transpositions;
+    }
+
+    RealScalar beta;
+    m_qr.col(k).tail(rows-k).makeHouseholderInPlace(m_hCoeffs.coeffRef(k), beta);
+    m_qr.coeffRef(k,k) = beta;
+
+    // remember the maximum absolute value of diagonal coefficients
+    if(abs(beta) > m_maxpivot) m_maxpivot = abs(beta);
+
+    m_qr.bottomRightCorner(rows-k, cols-k-1)
+        .applyHouseholderOnTheLeft(m_qr.col(k).tail(rows-k-1), m_hCoeffs.coeffRef(k), &m_temp.coeffRef(k+1));
+  }
+
+  m_cols_permutation.setIdentity(cols);
+  for(Index k = 0; k < size; ++k)
+    m_cols_permutation.applyTranspositionOnTheRight(k, m_cols_transpositions.coeff(k));
+
+  m_det_pq = (number_of_transpositions%2) ? -1 : 1;
+  m_isInitialized = true;
+
+  return *this;
+}
+
+namespace internal {
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<FullPivHouseholderQR<_MatrixType>, Rhs>
+  : solve_retval_base<FullPivHouseholderQR<_MatrixType>, Rhs>
+{
+  EIGEN_MAKE_SOLVE_HELPERS(FullPivHouseholderQR<_MatrixType>,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    const Index rows = dec().rows(), cols = dec().cols();
+    eigen_assert(rhs().rows() == rows);
+
+    // FIXME introduce nonzeroPivots() and use it here. and more generally,
+    // make the same improvements in this dec as in FullPivLU.
+    if(dec().rank()==0)
+    {
+      dst.setZero();
+      return;
+    }
+
+    typename Rhs::PlainObject c(rhs());
+
+    Matrix<Scalar,1,Rhs::ColsAtCompileTime> temp(rhs().cols());
+    for (Index k = 0; k < dec().rank(); ++k)
+    {
+      Index remainingSize = rows-k;
+      c.row(k).swap(c.row(dec().rowsTranspositions().coeff(k)));
+      c.bottomRightCorner(remainingSize, rhs().cols())
+       .applyHouseholderOnTheLeft(dec().matrixQR().col(k).tail(remainingSize-1),
+                                  dec().hCoeffs().coeff(k), &temp.coeffRef(0));
+    }
+
+    dec().matrixQR()
+       .topLeftCorner(dec().rank(), dec().rank())
+       .template triangularView<Upper>()
+       .solveInPlace(c.topRows(dec().rank()));
+
+    for(Index i = 0; i < dec().rank(); ++i) dst.row(dec().colsPermutation().indices().coeff(i)) = c.row(i);
+    for(Index i = dec().rank(); i < cols; ++i) dst.row(dec().colsPermutation().indices().coeff(i)).setZero();
+  }
+};
+
+/** \ingroup QR_Module
+  *
+  * \brief Expression type for return value of FullPivHouseholderQR::matrixQ()
+  *
+  * \tparam MatrixType type of underlying dense matrix
+  */
+template<typename MatrixType> struct FullPivHouseholderQRMatrixQReturnType
+  : public ReturnByValue<FullPivHouseholderQRMatrixQReturnType<MatrixType> >
+{
+public:
+  typedef typename MatrixType::Index Index;
+  typedef typename FullPivHouseholderQR<MatrixType>::IntDiagSizeVectorType IntDiagSizeVectorType;
+  typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
+  typedef Matrix<typename MatrixType::Scalar, 1, MatrixType::RowsAtCompileTime, RowMajor, 1,
+                 MatrixType::MaxRowsAtCompileTime> WorkVectorType;
+
+  FullPivHouseholderQRMatrixQReturnType(const MatrixType&       qr,
+                                        const HCoeffsType&      hCoeffs,
+                                        const IntDiagSizeVectorType& rowsTranspositions)
+    : m_qr(qr),
+      m_hCoeffs(hCoeffs),
+      m_rowsTranspositions(rowsTranspositions)
+      {}
+
+  template <typename ResultType>
+  void evalTo(ResultType& result) const
+  {
+    const Index rows = m_qr.rows();
+    WorkVectorType workspace(rows);
+    evalTo(result, workspace);
+  }
+
+  template <typename ResultType>
+  void evalTo(ResultType& result, WorkVectorType& workspace) const
+  {
+    using numext::conj;
+    // compute the product H'_0 H'_1 ... H'_n-1,
+    // where H_k is the k-th Householder transformation I - h_k v_k v_k'
+    // and v_k is the k-th Householder vector [1,m_qr(k+1,k), m_qr(k+2,k), ...]
+    const Index rows = m_qr.rows();
+    const Index cols = m_qr.cols();
+    const Index size = (std::min)(rows, cols);
+    workspace.resize(rows);
+    result.setIdentity(rows, rows);
+    for (Index k = size-1; k >= 0; k--)
+    {
+      result.block(k, k, rows-k, rows-k)
+            .applyHouseholderOnTheLeft(m_qr.col(k).tail(rows-k-1), conj(m_hCoeffs.coeff(k)), &workspace.coeffRef(k));
+      result.row(k).swap(result.row(m_rowsTranspositions.coeff(k)));
+    }
+  }
+
+    Index rows() const { return m_qr.rows(); }
+    Index cols() const { return m_qr.rows(); }
+
+protected:
+  typename MatrixType::Nested m_qr;
+  typename HCoeffsType::Nested m_hCoeffs;
+  typename IntDiagSizeVectorType::Nested m_rowsTranspositions;
+};
+
+} // end namespace internal
+
+template<typename MatrixType>
+inline typename FullPivHouseholderQR<MatrixType>::MatrixQReturnType FullPivHouseholderQR<MatrixType>::matrixQ() const
+{
+  eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+  return MatrixQReturnType(m_qr, m_hCoeffs, m_rows_transpositions);
+}
+
+/** \return the full-pivoting Householder QR decomposition of \c *this.
+  *
+  * \sa class FullPivHouseholderQR
+  */
+template<typename Derived>
+const FullPivHouseholderQR<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::fullPivHouseholderQr() const
+{
+  return FullPivHouseholderQR<PlainObject>(eval());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_FULLPIVOTINGHOUSEHOLDERQR_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/QR/HouseholderQR.h b/vendor/eigen-3.2.8/Eigen/src/QR/HouseholderQR.h
new file mode 100644
index 0000000..343a664
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/QR/HouseholderQR.h
@@ -0,0 +1,388 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1 at gmail.com>
+// Copyright (C) 2010 Vincent Lejeune
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_QR_H
+#define EIGEN_QR_H
+
+namespace Eigen { 
+
+/** \ingroup QR_Module
+  *
+  *
+  * \class HouseholderQR
+  *
+  * \brief Householder QR decomposition of a matrix
+  *
+  * \param MatrixType the type of the matrix of which we are computing the QR decomposition
+  *
+  * This class performs a QR decomposition of a matrix \b A into matrices \b Q and \b R
+  * such that 
+  * \f[
+  *  \mathbf{A} = \mathbf{Q} \, \mathbf{R}
+  * \f]
+  * by using Householder transformations. Here, \b Q a unitary matrix and \b R an upper triangular matrix.
+  * The result is stored in a compact way compatible with LAPACK.
+  *
+  * Note that no pivoting is performed. This is \b not a rank-revealing decomposition.
+  * If you want that feature, use FullPivHouseholderQR or ColPivHouseholderQR instead.
+  *
+  * This Householder QR decomposition is faster, but less numerically stable and less feature-full than
+  * FullPivHouseholderQR or ColPivHouseholderQR.
+  *
+  * \sa MatrixBase::householderQr()
+  */
+template<typename _MatrixType> class HouseholderQR
+{
+  public:
+
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, (MatrixType::Flags&RowMajorBit) ? RowMajor : ColMajor, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixQType;
+    typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
+    typedef typename internal::plain_row_type<MatrixType>::type RowVectorType;
+    typedef HouseholderSequence<MatrixType,typename internal::remove_all<typename HCoeffsType::ConjugateReturnType>::type> HouseholderSequenceType;
+
+    /**
+      * \brief Default Constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via HouseholderQR::compute(const MatrixType&).
+      */
+    HouseholderQR() : m_qr(), m_hCoeffs(), m_temp(), m_isInitialized(false) {}
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa HouseholderQR()
+      */
+    HouseholderQR(Index rows, Index cols)
+      : m_qr(rows, cols),
+        m_hCoeffs((std::min)(rows,cols)),
+        m_temp(cols),
+        m_isInitialized(false) {}
+
+    /** \brief Constructs a QR factorization from a given matrix
+      *
+      * This constructor computes the QR factorization of the matrix \a matrix by calling
+      * the method compute(). It is a short cut for:
+      * 
+      * \code
+      * HouseholderQR<MatrixType> qr(matrix.rows(), matrix.cols());
+      * qr.compute(matrix);
+      * \endcode
+      * 
+      * \sa compute()
+      */
+    HouseholderQR(const MatrixType& matrix)
+      : m_qr(matrix.rows(), matrix.cols()),
+        m_hCoeffs((std::min)(matrix.rows(),matrix.cols())),
+        m_temp(matrix.cols()),
+        m_isInitialized(false)
+    {
+      compute(matrix);
+    }
+
+    /** This method finds a solution x to the equation Ax=b, where A is the matrix of which
+      * *this is the QR decomposition, if any exists.
+      *
+      * \param b the right-hand-side of the equation to solve.
+      *
+      * \returns a solution.
+      *
+      * \note The case where b is a matrix is not yet implemented. Also, this
+      *       code is space inefficient.
+      *
+      * \note_about_checking_solutions
+      *
+      * \note_about_arbitrary_choice_of_solution
+      *
+      * Example: \include HouseholderQR_solve.cpp
+      * Output: \verbinclude HouseholderQR_solve.out
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<HouseholderQR, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
+      return internal::solve_retval<HouseholderQR, Rhs>(*this, b.derived());
+    }
+
+    /** This method returns an expression of the unitary matrix Q as a sequence of Householder transformations.
+      *
+      * The returned expression can directly be used to perform matrix products. It can also be assigned to a dense Matrix object.
+      * Here is an example showing how to recover the full or thin matrix Q, as well as how to perform matrix products using operator*:
+      *
+      * Example: \include HouseholderQR_householderQ.cpp
+      * Output: \verbinclude HouseholderQR_householderQ.out
+      */
+    HouseholderSequenceType householderQ() const
+    {
+      eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
+      return HouseholderSequenceType(m_qr, m_hCoeffs.conjugate());
+    }
+
+    /** \returns a reference to the matrix where the Householder QR decomposition is stored
+      * in a LAPACK-compatible way.
+      */
+    const MatrixType& matrixQR() const
+    {
+        eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
+        return m_qr;
+    }
+
+    HouseholderQR& compute(const MatrixType& matrix);
+
+    /** \returns the absolute value of the determinant of the matrix of which
+      * *this is the QR decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the QR decomposition has already been computed.
+      *
+      * \note This is only for square matrices.
+      *
+      * \warning a determinant can be very big or small, so for matrices
+      * of large enough dimension, there is a risk of overflow/underflow.
+      * One way to work around that is to use logAbsDeterminant() instead.
+      *
+      * \sa logAbsDeterminant(), MatrixBase::determinant()
+      */
+    typename MatrixType::RealScalar absDeterminant() const;
+
+    /** \returns the natural log of the absolute value of the determinant of the matrix of which
+      * *this is the QR decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the QR decomposition has already been computed.
+      *
+      * \note This is only for square matrices.
+      *
+      * \note This method is useful to work around the risk of overflow/underflow that's inherent
+      * to determinant computation.
+      *
+      * \sa absDeterminant(), MatrixBase::determinant()
+      */
+    typename MatrixType::RealScalar logAbsDeterminant() const;
+
+    inline Index rows() const { return m_qr.rows(); }
+    inline Index cols() const { return m_qr.cols(); }
+    
+    /** \returns a const reference to the vector of Householder coefficients used to represent the factor \c Q.
+      * 
+      * For advanced uses only.
+      */
+    const HCoeffsType& hCoeffs() const { return m_hCoeffs; }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    MatrixType m_qr;
+    HCoeffsType m_hCoeffs;
+    RowVectorType m_temp;
+    bool m_isInitialized;
+};
+
+template<typename MatrixType>
+typename MatrixType::RealScalar HouseholderQR<MatrixType>::absDeterminant() const
+{
+  using std::abs;
+  eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
+  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+  return abs(m_qr.diagonal().prod());
+}
+
+template<typename MatrixType>
+typename MatrixType::RealScalar HouseholderQR<MatrixType>::logAbsDeterminant() const
+{
+  eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
+  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+  return m_qr.diagonal().cwiseAbs().array().log().sum();
+}
+
+namespace internal {
+
+/** \internal */
+template<typename MatrixQR, typename HCoeffs>
+void householder_qr_inplace_unblocked(MatrixQR& mat, HCoeffs& hCoeffs, typename MatrixQR::Scalar* tempData = 0)
+{
+  typedef typename MatrixQR::Index Index;
+  typedef typename MatrixQR::Scalar Scalar;
+  typedef typename MatrixQR::RealScalar RealScalar;
+  Index rows = mat.rows();
+  Index cols = mat.cols();
+  Index size = (std::min)(rows,cols);
+
+  eigen_assert(hCoeffs.size() == size);
+
+  typedef Matrix<Scalar,MatrixQR::ColsAtCompileTime,1> TempType;
+  TempType tempVector;
+  if(tempData==0)
+  {
+    tempVector.resize(cols);
+    tempData = tempVector.data();
+  }
+
+  for(Index k = 0; k < size; ++k)
+  {
+    Index remainingRows = rows - k;
+    Index remainingCols = cols - k - 1;
+
+    RealScalar beta;
+    mat.col(k).tail(remainingRows).makeHouseholderInPlace(hCoeffs.coeffRef(k), beta);
+    mat.coeffRef(k,k) = beta;
+
+    // apply H to remaining part of m_qr from the left
+    mat.bottomRightCorner(remainingRows, remainingCols)
+        .applyHouseholderOnTheLeft(mat.col(k).tail(remainingRows-1), hCoeffs.coeffRef(k), tempData+k+1);
+  }
+}
+
+/** \internal */
+template<typename MatrixQR, typename HCoeffs,
+  typename MatrixQRScalar = typename MatrixQR::Scalar,
+  bool InnerStrideIsOne = (MatrixQR::InnerStrideAtCompileTime == 1 && HCoeffs::InnerStrideAtCompileTime == 1)>
+struct householder_qr_inplace_blocked
+{
+  // This is specialized for MKL-supported Scalar types in HouseholderQR_MKL.h
+  static void run(MatrixQR& mat, HCoeffs& hCoeffs,
+      typename MatrixQR::Index maxBlockSize=32,
+      typename MatrixQR::Scalar* tempData = 0)
+  {
+    typedef typename MatrixQR::Index Index;
+    typedef typename MatrixQR::Scalar Scalar;
+    typedef Block<MatrixQR,Dynamic,Dynamic> BlockType;
+
+    Index rows = mat.rows();
+    Index cols = mat.cols();
+    Index size = (std::min)(rows, cols);
+
+    typedef Matrix<Scalar,Dynamic,1,ColMajor,MatrixQR::MaxColsAtCompileTime,1> TempType;
+    TempType tempVector;
+    if(tempData==0)
+    {
+      tempVector.resize(cols);
+      tempData = tempVector.data();
+    }
+
+    Index blockSize = (std::min)(maxBlockSize,size);
+
+    Index k = 0;
+    for (k = 0; k < size; k += blockSize)
+    {
+      Index bs = (std::min)(size-k,blockSize);  // actual size of the block
+      Index tcols = cols - k - bs;            // trailing columns
+      Index brows = rows-k;                   // rows of the block
+
+      // partition the matrix:
+      //        A00 | A01 | A02
+      // mat  = A10 | A11 | A12
+      //        A20 | A21 | A22
+      // and performs the qr dec of [A11^T A12^T]^T
+      // and update [A21^T A22^T]^T using level 3 operations.
+      // Finally, the algorithm continue on A22
+
+      BlockType A11_21 = mat.block(k,k,brows,bs);
+      Block<HCoeffs,Dynamic,1> hCoeffsSegment = hCoeffs.segment(k,bs);
+
+      householder_qr_inplace_unblocked(A11_21, hCoeffsSegment, tempData);
+
+      if(tcols)
+      {
+        BlockType A21_22 = mat.block(k,k+bs,brows,tcols);
+        apply_block_householder_on_the_left(A21_22,A11_21,hCoeffsSegment.adjoint());
+      }
+    }
+  }
+};
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<HouseholderQR<_MatrixType>, Rhs>
+  : solve_retval_base<HouseholderQR<_MatrixType>, Rhs>
+{
+  EIGEN_MAKE_SOLVE_HELPERS(HouseholderQR<_MatrixType>,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    const Index rows = dec().rows(), cols = dec().cols();
+    const Index rank = (std::min)(rows, cols);
+    eigen_assert(rhs().rows() == rows);
+
+    typename Rhs::PlainObject c(rhs());
+
+    // Note that the matrix Q = H_0^* H_1^*... so its inverse is Q^* = (H_0 H_1 ...)^T
+    c.applyOnTheLeft(householderSequence(
+      dec().matrixQR().leftCols(rank),
+      dec().hCoeffs().head(rank)).transpose()
+    );
+
+    dec().matrixQR()
+       .topLeftCorner(rank, rank)
+       .template triangularView<Upper>()
+       .solveInPlace(c.topRows(rank));
+
+    dst.topRows(rank) = c.topRows(rank);
+    dst.bottomRows(cols-rank).setZero();
+  }
+};
+
+} // end namespace internal
+
+/** Performs the QR factorization of the given matrix \a matrix. The result of
+  * the factorization is stored into \c *this, and a reference to \c *this
+  * is returned.
+  *
+  * \sa class HouseholderQR, HouseholderQR(const MatrixType&)
+  */
+template<typename MatrixType>
+HouseholderQR<MatrixType>& HouseholderQR<MatrixType>::compute(const MatrixType& matrix)
+{
+  check_template_parameters();
+  
+  Index rows = matrix.rows();
+  Index cols = matrix.cols();
+  Index size = (std::min)(rows,cols);
+
+  m_qr = matrix;
+  m_hCoeffs.resize(size);
+
+  m_temp.resize(cols);
+
+  internal::householder_qr_inplace_blocked<MatrixType, HCoeffsType>::run(m_qr, m_hCoeffs, 48, m_temp.data());
+
+  m_isInitialized = true;
+  return *this;
+}
+
+/** \return the Householder QR decomposition of \c *this.
+  *
+  * \sa class HouseholderQR
+  */
+template<typename Derived>
+const HouseholderQR<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::householderQr() const
+{
+  return HouseholderQR<PlainObject>(eval());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_QR_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/QR/HouseholderQR_MKL.h b/vendor/eigen-3.2.8/Eigen/src/QR/HouseholderQR_MKL.h
new file mode 100644
index 0000000..b80f1b4
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/QR/HouseholderQR_MKL.h
@@ -0,0 +1,71 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *    Householder QR decomposition of a matrix w/o pivoting based on
+ *    LAPACKE_?geqrf function.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_QR_MKL_H
+#define EIGEN_QR_MKL_H
+
+#include "../Core/util/MKL_support.h"
+
+namespace Eigen { 
+
+  namespace internal {
+
+    /** \internal Specialization for the data types supported by MKL */
+
+#define EIGEN_MKL_QR_NOPIV(EIGTYPE, MKLTYPE, MKLPREFIX) \
+template<typename MatrixQR, typename HCoeffs> \
+struct householder_qr_inplace_blocked<MatrixQR, HCoeffs, EIGTYPE, true> \
+{ \
+  static void run(MatrixQR& mat, HCoeffs& hCoeffs, \
+      typename MatrixQR::Index = 32, \
+      typename MatrixQR::Scalar* = 0) \
+  { \
+    lapack_int m = (lapack_int) mat.rows(); \
+    lapack_int n = (lapack_int) mat.cols(); \
+    lapack_int lda = (lapack_int) mat.outerStride(); \
+    lapack_int matrix_order = (MatrixQR::IsRowMajor) ? LAPACK_ROW_MAJOR : LAPACK_COL_MAJOR; \
+    LAPACKE_##MKLPREFIX##geqrf( matrix_order, m, n, (MKLTYPE*)mat.data(), lda, (MKLTYPE*)hCoeffs.data()); \
+    hCoeffs.adjointInPlace(); \
+  } \
+};
+
+EIGEN_MKL_QR_NOPIV(double, double, d)
+EIGEN_MKL_QR_NOPIV(float, float, s)
+EIGEN_MKL_QR_NOPIV(dcomplex, MKL_Complex16, z)
+EIGEN_MKL_QR_NOPIV(scomplex, MKL_Complex8, c)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_QR_MKL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SPQRSupport/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/SPQRSupport/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SPQRSupport/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/SPQRSupport/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h b/vendor/eigen-3.2.8/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h
new file mode 100644
index 0000000..3613810
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h
@@ -0,0 +1,338 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Desire Nuentsa <desire.nuentsa_wakam at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SUITESPARSEQRSUPPORT_H
+#define EIGEN_SUITESPARSEQRSUPPORT_H
+
+namespace Eigen {
+  
+  template<typename MatrixType> class SPQR; 
+  template<typename SPQRType> struct SPQRMatrixQReturnType; 
+  template<typename SPQRType> struct SPQRMatrixQTransposeReturnType; 
+  template <typename SPQRType, typename Derived> struct SPQR_QProduct;
+  namespace internal {
+    template <typename SPQRType> struct traits<SPQRMatrixQReturnType<SPQRType> >
+    {
+      typedef typename SPQRType::MatrixType ReturnType;
+    };
+    template <typename SPQRType> struct traits<SPQRMatrixQTransposeReturnType<SPQRType> >
+    {
+      typedef typename SPQRType::MatrixType ReturnType;
+    };
+    template <typename SPQRType, typename Derived> struct traits<SPQR_QProduct<SPQRType, Derived> >
+    {
+      typedef typename Derived::PlainObject ReturnType;
+    };
+  } // End namespace internal
+  
+/**
+ * \ingroup SPQRSupport_Module
+ * \class SPQR
+ * \brief Sparse QR factorization based on SuiteSparseQR library
+ * 
+ * This class is used to perform a multithreaded and multifrontal rank-revealing QR decomposition 
+ * of sparse matrices. The result is then used to solve linear leasts_square systems.
+ * Clearly, a QR factorization is returned such that A*P = Q*R where :
+ * 
+ * P is the column permutation. Use colsPermutation() to get it.
+ * 
+ * Q is the orthogonal matrix represented as Householder reflectors. 
+ * Use matrixQ() to get an expression and matrixQ().transpose() to get the transpose.
+ * You can then apply it to a vector.
+ * 
+ * R is the sparse triangular factor. Use matrixQR() to get it as SparseMatrix.
+ * NOTE : The Index type of R is always SuiteSparse_long. You can get it with SPQR::Index
+ * 
+ * \tparam _MatrixType The type of the sparse matrix A, must be a column-major SparseMatrix<>
+ * NOTE 
+ * 
+ */
+template<typename _MatrixType>
+class SPQR
+{
+  public:
+    typedef typename _MatrixType::Scalar Scalar;
+    typedef typename _MatrixType::RealScalar RealScalar;
+    typedef SuiteSparse_long Index ;
+    typedef SparseMatrix<Scalar, ColMajor, Index> MatrixType;
+    typedef PermutationMatrix<Dynamic, Dynamic> PermutationType;
+  public:
+    SPQR() 
+      : m_isInitialized(false), m_ordering(SPQR_ORDERING_DEFAULT), m_allow_tol(SPQR_DEFAULT_TOL), m_tolerance (NumTraits<Scalar>::epsilon()), m_useDefaultThreshold(true)
+    { 
+      cholmod_l_start(&m_cc);
+    }
+    
+    SPQR(const _MatrixType& matrix)
+    : m_isInitialized(false), m_ordering(SPQR_ORDERING_DEFAULT), m_allow_tol(SPQR_DEFAULT_TOL), m_tolerance (NumTraits<Scalar>::epsilon()), m_useDefaultThreshold(true)
+    {
+      cholmod_l_start(&m_cc);
+      compute(matrix);
+    }
+    
+    ~SPQR()
+    {
+      SPQR_free();
+      cholmod_l_finish(&m_cc);
+    }
+    void SPQR_free()
+    {
+      cholmod_l_free_sparse(&m_H, &m_cc);
+      cholmod_l_free_sparse(&m_cR, &m_cc);
+      cholmod_l_free_dense(&m_HTau, &m_cc);
+      std::free(m_E);
+      std::free(m_HPinv);
+    }
+
+    void compute(const _MatrixType& matrix)
+    {
+      if(m_isInitialized) SPQR_free();
+
+      MatrixType mat(matrix);
+      
+      /* Compute the default threshold as in MatLab, see:
+       * Tim Davis, "Algorithm 915, SuiteSparseQR: Multifrontal Multithreaded Rank-Revealing
+       * Sparse QR Factorization, ACM Trans. on Math. Soft. 38(1), 2011, Page 8:3 
+       */
+      RealScalar pivotThreshold = m_tolerance;
+      if(m_useDefaultThreshold) 
+      {
+        using std::max;
+        RealScalar max2Norm = 0.0;
+        for (int j = 0; j < mat.cols(); j++) max2Norm = (max)(max2Norm, mat.col(j).norm());
+        if(max2Norm==RealScalar(0))
+          max2Norm = RealScalar(1);
+        pivotThreshold = 20 * (mat.rows() + mat.cols()) * max2Norm * NumTraits<RealScalar>::epsilon();
+      }
+      
+      cholmod_sparse A; 
+      A = viewAsCholmod(mat);
+      Index col = matrix.cols();
+      m_rank = SuiteSparseQR<Scalar>(m_ordering, pivotThreshold, col, &A, 
+                             &m_cR, &m_E, &m_H, &m_HPinv, &m_HTau, &m_cc);
+
+      if (!m_cR)
+      {
+        m_info = NumericalIssue; 
+        m_isInitialized = false;
+        return;
+      }
+      m_info = Success;
+      m_isInitialized = true;
+      m_isRUpToDate = false;
+    }
+    /** 
+     * Get the number of rows of the input matrix and the Q matrix
+     */
+    inline Index rows() const {return m_cR->nrow; }
+    
+    /** 
+     * Get the number of columns of the input matrix. 
+     */
+    inline Index cols() const { return m_cR->ncol; }
+   
+      /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<SPQR, Rhs> solve(const MatrixBase<Rhs>& B) const 
+    {
+      eigen_assert(m_isInitialized && " The QR factorization should be computed first, call compute()");
+      eigen_assert(this->rows()==B.rows()
+                    && "SPQR::solve(): invalid number of rows of the right hand side matrix B");
+          return internal::solve_retval<SPQR, Rhs>(*this, B.derived());
+    }
+    
+    template<typename Rhs, typename Dest>
+    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
+    {
+      eigen_assert(m_isInitialized && " The QR factorization should be computed first, call compute()");
+      eigen_assert(b.cols()==1 && "This method is for vectors only");
+
+      //Compute Q^T * b
+      typename Dest::PlainObject y, y2;
+      y = matrixQ().transpose() * b;
+      
+      // Solves with the triangular matrix R
+      Index rk = this->rank();
+      y2 = y;
+      y.resize((std::max)(cols(),Index(y.rows())),y.cols());
+      y.topRows(rk) = this->matrixR().topLeftCorner(rk, rk).template triangularView<Upper>().solve(y2.topRows(rk));
+
+      // Apply the column permutation 
+      // colsPermutation() performs a copy of the permutation,
+      // so let's apply it manually:
+      for(Index i = 0; i < rk; ++i) dest.row(m_E[i]) = y.row(i);
+      for(Index i = rk; i < cols(); ++i) dest.row(m_E[i]).setZero();
+      
+//       y.bottomRows(y.rows()-rk).setZero();
+//       dest = colsPermutation() * y.topRows(cols());
+      
+      m_info = Success;
+    }
+    
+    /** \returns the sparse triangular factor R. It is a sparse matrix
+     */
+    const MatrixType matrixR() const
+    {
+      eigen_assert(m_isInitialized && " The QR factorization should be computed first, call compute()");
+      if(!m_isRUpToDate) {
+        m_R = viewAsEigen<Scalar,ColMajor, typename MatrixType::Index>(*m_cR);
+        m_isRUpToDate = true;
+      }
+      return m_R;
+    }
+    /// Get an expression of the matrix Q
+    SPQRMatrixQReturnType<SPQR> matrixQ() const
+    {
+      return SPQRMatrixQReturnType<SPQR>(*this);
+    }
+    /// Get the permutation that was applied to columns of A
+    PermutationType colsPermutation() const
+    { 
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      Index n = m_cR->ncol;
+      PermutationType colsPerm(n);
+      for(Index j = 0; j <n; j++) colsPerm.indices()(j) = m_E[j];
+      return colsPerm; 
+      
+    }
+    /**
+     * Gets the rank of the matrix. 
+     * It should be equal to matrixQR().cols if the matrix is full-rank
+     */
+    Index rank() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_cc.SPQR_istat[4];
+    }
+    /// Set the fill-reducing ordering method to be used
+    void setSPQROrdering(int ord) { m_ordering = ord;}
+    /// Set the tolerance tol to treat columns with 2-norm < =tol as zero
+    void setPivotThreshold(const RealScalar& tol)
+    {
+      m_useDefaultThreshold = false;
+      m_tolerance = tol;
+    }
+    
+    /** \returns a pointer to the SPQR workspace */
+    cholmod_common *cholmodCommon() const { return &m_cc; }
+    
+    
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the sparse QR can not be computed
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+  protected:
+    bool m_isInitialized;
+    bool m_analysisIsOk;
+    bool m_factorizationIsOk;
+    mutable bool m_isRUpToDate;
+    mutable ComputationInfo m_info;
+    int m_ordering; // Ordering method to use, see SPQR's manual
+    int m_allow_tol; // Allow to use some tolerance during numerical factorization.
+    RealScalar m_tolerance; // treat columns with 2-norm below this tolerance as zero
+    mutable cholmod_sparse *m_cR; // The sparse R factor in cholmod format
+    mutable MatrixType m_R; // The sparse matrix R in Eigen format
+    mutable Index *m_E; // The permutation applied to columns
+    mutable cholmod_sparse *m_H;  //The householder vectors
+    mutable Index *m_HPinv; // The row permutation of H
+    mutable cholmod_dense *m_HTau; // The Householder coefficients
+    mutable Index m_rank; // The rank of the matrix
+    mutable cholmod_common m_cc; // Workspace and parameters
+    bool m_useDefaultThreshold;     // Use default threshold
+    template<typename ,typename > friend struct SPQR_QProduct;
+};
+
+template <typename SPQRType, typename Derived>
+struct SPQR_QProduct : ReturnByValue<SPQR_QProduct<SPQRType,Derived> >
+{
+  typedef typename SPQRType::Scalar Scalar;
+  typedef typename SPQRType::Index Index;
+  //Define the constructor to get reference to argument types
+  SPQR_QProduct(const SPQRType& spqr, const Derived& other, bool transpose) : m_spqr(spqr),m_other(other),m_transpose(transpose) {}
+  
+  inline Index rows() const { return m_transpose ? m_spqr.rows() : m_spqr.cols(); }
+  inline Index cols() const { return m_other.cols(); }
+  // Assign to a vector
+  template<typename ResType>
+  void evalTo(ResType& res) const
+  {
+    cholmod_dense y_cd;
+    cholmod_dense *x_cd; 
+    int method = m_transpose ? SPQR_QTX : SPQR_QX; 
+    cholmod_common *cc = m_spqr.cholmodCommon();
+    y_cd = viewAsCholmod(m_other.const_cast_derived());
+    x_cd = SuiteSparseQR_qmult<Scalar>(method, m_spqr.m_H, m_spqr.m_HTau, m_spqr.m_HPinv, &y_cd, cc);
+    res = Matrix<Scalar,ResType::RowsAtCompileTime,ResType::ColsAtCompileTime>::Map(reinterpret_cast<Scalar*>(x_cd->x), x_cd->nrow, x_cd->ncol);
+    cholmod_l_free_dense(&x_cd, cc);
+  }
+  const SPQRType& m_spqr; 
+  const Derived& m_other; 
+  bool m_transpose; 
+  
+};
+template<typename SPQRType>
+struct SPQRMatrixQReturnType{
+  
+  SPQRMatrixQReturnType(const SPQRType& spqr) : m_spqr(spqr) {}
+  template<typename Derived>
+  SPQR_QProduct<SPQRType, Derived> operator*(const MatrixBase<Derived>& other)
+  {
+    return SPQR_QProduct<SPQRType,Derived>(m_spqr,other.derived(),false);
+  }
+  SPQRMatrixQTransposeReturnType<SPQRType> adjoint() const
+  {
+    return SPQRMatrixQTransposeReturnType<SPQRType>(m_spqr);
+  }
+  // To use for operations with the transpose of Q
+  SPQRMatrixQTransposeReturnType<SPQRType> transpose() const
+  {
+    return SPQRMatrixQTransposeReturnType<SPQRType>(m_spqr);
+  }
+  const SPQRType& m_spqr;
+};
+
+template<typename SPQRType>
+struct SPQRMatrixQTransposeReturnType{
+  SPQRMatrixQTransposeReturnType(const SPQRType& spqr) : m_spqr(spqr) {}
+  template<typename Derived>
+  SPQR_QProduct<SPQRType,Derived> operator*(const MatrixBase<Derived>& other)
+  {
+    return SPQR_QProduct<SPQRType,Derived>(m_spqr,other.derived(), true);
+  }
+  const SPQRType& m_spqr;
+};
+
+namespace internal {
+  
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<SPQR<_MatrixType>, Rhs>
+  : solve_retval_base<SPQR<_MatrixType>, Rhs>
+{
+  typedef SPQR<_MatrixType> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+}// End namespace Eigen
+#endif
diff --git a/vendor/eigen-3.1.91/Eigen/src/SVD/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/SVD/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SVD/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/SVD/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/SVD/JacobiSVD.h b/vendor/eigen-3.2.8/Eigen/src/SVD/JacobiSVD.h
new file mode 100644
index 0000000..89ace38
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SVD/JacobiSVD.h
@@ -0,0 +1,976 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_JACOBISVD_H
+#define EIGEN_JACOBISVD_H
+
+namespace Eigen { 
+
+namespace internal {
+// forward declaration (needed by ICC)
+// the empty body is required by MSVC
+template<typename MatrixType, int QRPreconditioner,
+         bool IsComplex = NumTraits<typename MatrixType::Scalar>::IsComplex>
+struct svd_precondition_2x2_block_to_be_real {};
+
+/*** QR preconditioners (R-SVD)
+ ***
+ *** Their role is to reduce the problem of computing the SVD to the case of a square matrix.
+ *** This approach, known as R-SVD, is an optimization for rectangular-enough matrices, and is a requirement for
+ *** JacobiSVD which by itself is only able to work on square matrices.
+ ***/
+
+enum { PreconditionIfMoreColsThanRows, PreconditionIfMoreRowsThanCols };
+
+template<typename MatrixType, int QRPreconditioner, int Case>
+struct qr_preconditioner_should_do_anything
+{
+  enum { a = MatrixType::RowsAtCompileTime != Dynamic &&
+             MatrixType::ColsAtCompileTime != Dynamic &&
+             MatrixType::ColsAtCompileTime <= MatrixType::RowsAtCompileTime,
+         b = MatrixType::RowsAtCompileTime != Dynamic &&
+             MatrixType::ColsAtCompileTime != Dynamic &&
+             MatrixType::RowsAtCompileTime <= MatrixType::ColsAtCompileTime,
+         ret = !( (QRPreconditioner == NoQRPreconditioner) ||
+                  (Case == PreconditionIfMoreColsThanRows && bool(a)) ||
+                  (Case == PreconditionIfMoreRowsThanCols && bool(b)) )
+  };
+};
+
+template<typename MatrixType, int QRPreconditioner, int Case,
+         bool DoAnything = qr_preconditioner_should_do_anything<MatrixType, QRPreconditioner, Case>::ret
+> struct qr_preconditioner_impl {};
+
+template<typename MatrixType, int QRPreconditioner, int Case>
+class qr_preconditioner_impl<MatrixType, QRPreconditioner, Case, false>
+{
+public:
+  typedef typename MatrixType::Index Index;
+  void allocate(const JacobiSVD<MatrixType, QRPreconditioner>&) {}
+  bool run(JacobiSVD<MatrixType, QRPreconditioner>&, const MatrixType&)
+  {
+    return false;
+  }
+};
+
+/*** preconditioner using FullPivHouseholderQR ***/
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, FullPivHouseholderQRPreconditioner, PreconditionIfMoreRowsThanCols, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  enum
+  {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime
+  };
+  typedef Matrix<Scalar, 1, RowsAtCompileTime, RowMajor, 1, MaxRowsAtCompileTime> WorkspaceType;
+
+  void allocate(const JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd)
+  {
+    if (svd.rows() != m_qr.rows() || svd.cols() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.rows(), svd.cols());
+    }
+    if (svd.m_computeFullU) m_workspace.resize(svd.rows());
+  }
+
+  bool run(JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.rows() > matrix.cols())
+    {
+      m_qr.compute(matrix);
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.cols(),matrix.cols()).template triangularView<Upper>();
+      if(svd.m_computeFullU) m_qr.matrixQ().evalTo(svd.m_matrixU, m_workspace);
+      if(svd.computeV()) svd.m_matrixV = m_qr.colsPermutation();
+      return true;
+    }
+    return false;
+  }
+private:
+  typedef FullPivHouseholderQR<MatrixType> QRType;
+  QRType m_qr;
+  WorkspaceType m_workspace;
+};
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, FullPivHouseholderQRPreconditioner, PreconditionIfMoreColsThanRows, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  enum
+  {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+    Options = MatrixType::Options
+  };
+  typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, Options, MaxColsAtCompileTime, MaxRowsAtCompileTime>
+          TransposeTypeWithSameStorageOrder;
+
+  void allocate(const JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd)
+  {
+    if (svd.cols() != m_qr.rows() || svd.rows() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.cols(), svd.rows());
+    }
+    m_adjoint.resize(svd.cols(), svd.rows());
+    if (svd.m_computeFullV) m_workspace.resize(svd.cols());
+  }
+
+  bool run(JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.cols() > matrix.rows())
+    {
+      m_adjoint = matrix.adjoint();
+      m_qr.compute(m_adjoint);
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.rows(),matrix.rows()).template triangularView<Upper>().adjoint();
+      if(svd.m_computeFullV) m_qr.matrixQ().evalTo(svd.m_matrixV, m_workspace);
+      if(svd.computeU()) svd.m_matrixU = m_qr.colsPermutation();
+      return true;
+    }
+    else return false;
+  }
+private:
+  typedef FullPivHouseholderQR<TransposeTypeWithSameStorageOrder> QRType;
+  QRType m_qr;
+  TransposeTypeWithSameStorageOrder m_adjoint;
+  typename internal::plain_row_type<MatrixType>::type m_workspace;
+};
+
+/*** preconditioner using ColPivHouseholderQR ***/
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, ColPivHouseholderQRPreconditioner, PreconditionIfMoreRowsThanCols, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+
+  void allocate(const JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd)
+  {
+    if (svd.rows() != m_qr.rows() || svd.cols() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.rows(), svd.cols());
+    }
+    if (svd.m_computeFullU) m_workspace.resize(svd.rows());
+    else if (svd.m_computeThinU) m_workspace.resize(svd.cols());
+  }
+
+  bool run(JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.rows() > matrix.cols())
+    {
+      m_qr.compute(matrix);
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.cols(),matrix.cols()).template triangularView<Upper>();
+      if(svd.m_computeFullU) m_qr.householderQ().evalTo(svd.m_matrixU, m_workspace);
+      else if(svd.m_computeThinU)
+      {
+        svd.m_matrixU.setIdentity(matrix.rows(), matrix.cols());
+        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixU, m_workspace);
+      }
+      if(svd.computeV()) svd.m_matrixV = m_qr.colsPermutation();
+      return true;
+    }
+    return false;
+  }
+
+private:
+  typedef ColPivHouseholderQR<MatrixType> QRType;
+  QRType m_qr;
+  typename internal::plain_col_type<MatrixType>::type m_workspace;
+};
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, ColPivHouseholderQRPreconditioner, PreconditionIfMoreColsThanRows, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  enum
+  {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+    Options = MatrixType::Options
+  };
+
+  typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, Options, MaxColsAtCompileTime, MaxRowsAtCompileTime>
+          TransposeTypeWithSameStorageOrder;
+
+  void allocate(const JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd)
+  {
+    if (svd.cols() != m_qr.rows() || svd.rows() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.cols(), svd.rows());
+    }
+    if (svd.m_computeFullV) m_workspace.resize(svd.cols());
+    else if (svd.m_computeThinV) m_workspace.resize(svd.rows());
+    m_adjoint.resize(svd.cols(), svd.rows());
+  }
+
+  bool run(JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.cols() > matrix.rows())
+    {
+      m_adjoint = matrix.adjoint();
+      m_qr.compute(m_adjoint);
+
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.rows(),matrix.rows()).template triangularView<Upper>().adjoint();
+      if(svd.m_computeFullV) m_qr.householderQ().evalTo(svd.m_matrixV, m_workspace);
+      else if(svd.m_computeThinV)
+      {
+        svd.m_matrixV.setIdentity(matrix.cols(), matrix.rows());
+        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixV, m_workspace);
+      }
+      if(svd.computeU()) svd.m_matrixU = m_qr.colsPermutation();
+      return true;
+    }
+    else return false;
+  }
+
+private:
+  typedef ColPivHouseholderQR<TransposeTypeWithSameStorageOrder> QRType;
+  QRType m_qr;
+  TransposeTypeWithSameStorageOrder m_adjoint;
+  typename internal::plain_row_type<MatrixType>::type m_workspace;
+};
+
+/*** preconditioner using HouseholderQR ***/
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, HouseholderQRPreconditioner, PreconditionIfMoreRowsThanCols, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+
+  void allocate(const JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd)
+  {
+    if (svd.rows() != m_qr.rows() || svd.cols() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.rows(), svd.cols());
+    }
+    if (svd.m_computeFullU) m_workspace.resize(svd.rows());
+    else if (svd.m_computeThinU) m_workspace.resize(svd.cols());
+  }
+
+  bool run(JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.rows() > matrix.cols())
+    {
+      m_qr.compute(matrix);
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.cols(),matrix.cols()).template triangularView<Upper>();
+      if(svd.m_computeFullU) m_qr.householderQ().evalTo(svd.m_matrixU, m_workspace);
+      else if(svd.m_computeThinU)
+      {
+        svd.m_matrixU.setIdentity(matrix.rows(), matrix.cols());
+        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixU, m_workspace);
+      }
+      if(svd.computeV()) svd.m_matrixV.setIdentity(matrix.cols(), matrix.cols());
+      return true;
+    }
+    return false;
+  }
+private:
+  typedef HouseholderQR<MatrixType> QRType;
+  QRType m_qr;
+  typename internal::plain_col_type<MatrixType>::type m_workspace;
+};
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, HouseholderQRPreconditioner, PreconditionIfMoreColsThanRows, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  enum
+  {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+    Options = MatrixType::Options
+  };
+
+  typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, Options, MaxColsAtCompileTime, MaxRowsAtCompileTime>
+          TransposeTypeWithSameStorageOrder;
+
+  void allocate(const JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd)
+  {
+    if (svd.cols() != m_qr.rows() || svd.rows() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.cols(), svd.rows());
+    }
+    if (svd.m_computeFullV) m_workspace.resize(svd.cols());
+    else if (svd.m_computeThinV) m_workspace.resize(svd.rows());
+    m_adjoint.resize(svd.cols(), svd.rows());
+  }
+
+  bool run(JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.cols() > matrix.rows())
+    {
+      m_adjoint = matrix.adjoint();
+      m_qr.compute(m_adjoint);
+
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.rows(),matrix.rows()).template triangularView<Upper>().adjoint();
+      if(svd.m_computeFullV) m_qr.householderQ().evalTo(svd.m_matrixV, m_workspace);
+      else if(svd.m_computeThinV)
+      {
+        svd.m_matrixV.setIdentity(matrix.cols(), matrix.rows());
+        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixV, m_workspace);
+      }
+      if(svd.computeU()) svd.m_matrixU.setIdentity(matrix.rows(), matrix.rows());
+      return true;
+    }
+    else return false;
+  }
+
+private:
+  typedef HouseholderQR<TransposeTypeWithSameStorageOrder> QRType;
+  QRType m_qr;
+  TransposeTypeWithSameStorageOrder m_adjoint;
+  typename internal::plain_row_type<MatrixType>::type m_workspace;
+};
+
+/*** 2x2 SVD implementation
+ ***
+ *** JacobiSVD consists in performing a series of 2x2 SVD subproblems
+ ***/
+
+template<typename MatrixType, int QRPreconditioner>
+struct svd_precondition_2x2_block_to_be_real<MatrixType, QRPreconditioner, false>
+{
+  typedef JacobiSVD<MatrixType, QRPreconditioner> SVD;
+  typedef typename SVD::Index Index;
+  static void run(typename SVD::WorkMatrixType&, SVD&, Index, Index) {}
+};
+
+template<typename MatrixType, int QRPreconditioner>
+struct svd_precondition_2x2_block_to_be_real<MatrixType, QRPreconditioner, true>
+{
+  typedef JacobiSVD<MatrixType, QRPreconditioner> SVD;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::RealScalar RealScalar;
+  typedef typename SVD::Index Index;
+  static void run(typename SVD::WorkMatrixType& work_matrix, SVD& svd, Index p, Index q)
+  {
+    using std::sqrt;
+    Scalar z;
+    JacobiRotation<Scalar> rot;
+    RealScalar n = sqrt(numext::abs2(work_matrix.coeff(p,p)) + numext::abs2(work_matrix.coeff(q,p)));
+    
+    if(n==0)
+    {
+      z = abs(work_matrix.coeff(p,q)) / work_matrix.coeff(p,q);
+      work_matrix.row(p) *= z;
+      if(svd.computeU()) svd.m_matrixU.col(p) *= conj(z);
+      if(work_matrix.coeff(q,q)!=Scalar(0))
+      {
+        z = abs(work_matrix.coeff(q,q)) / work_matrix.coeff(q,q);
+        work_matrix.row(q) *= z;
+        if(svd.computeU()) svd.m_matrixU.col(q) *= conj(z);
+      }
+      // otherwise the second row is already zero, so we have nothing to do.
+    }
+    else
+    {
+      rot.c() = conj(work_matrix.coeff(p,p)) / n;
+      rot.s() = work_matrix.coeff(q,p) / n;
+      work_matrix.applyOnTheLeft(p,q,rot);
+      if(svd.computeU()) svd.m_matrixU.applyOnTheRight(p,q,rot.adjoint());
+      if(work_matrix.coeff(p,q) != Scalar(0))
+      {
+        Scalar z = abs(work_matrix.coeff(p,q)) / work_matrix.coeff(p,q);
+        work_matrix.col(q) *= z;
+        if(svd.computeV()) svd.m_matrixV.col(q) *= z;
+      }
+      if(work_matrix.coeff(q,q) != Scalar(0))
+      {
+        z = abs(work_matrix.coeff(q,q)) / work_matrix.coeff(q,q);
+        work_matrix.row(q) *= z;
+        if(svd.computeU()) svd.m_matrixU.col(q) *= conj(z);
+      }
+    }
+  }
+};
+
+template<typename MatrixType, typename RealScalar, typename Index>
+void real_2x2_jacobi_svd(const MatrixType& matrix, Index p, Index q,
+                            JacobiRotation<RealScalar> *j_left,
+                            JacobiRotation<RealScalar> *j_right)
+{
+  using std::sqrt;
+  using std::abs;
+  Matrix<RealScalar,2,2> m;
+  m << numext::real(matrix.coeff(p,p)), numext::real(matrix.coeff(p,q)),
+       numext::real(matrix.coeff(q,p)), numext::real(matrix.coeff(q,q));
+  JacobiRotation<RealScalar> rot1;
+  RealScalar t = m.coeff(0,0) + m.coeff(1,1);
+  RealScalar d = m.coeff(1,0) - m.coeff(0,1);
+  if(t == RealScalar(0))
+  {
+    rot1.c() = RealScalar(0);
+    rot1.s() = d > RealScalar(0) ? RealScalar(1) : RealScalar(-1);
+  }
+  else
+  {
+    RealScalar t2d2 = numext::hypot(t,d);
+    rot1.c() = abs(t)/t2d2;
+    rot1.s() = d/t2d2;
+    if(t<RealScalar(0))
+      rot1.s() = -rot1.s();
+  }
+  m.applyOnTheLeft(0,1,rot1);
+  j_right->makeJacobi(m,0,1);
+  *j_left  = rot1 * j_right->transpose();
+}
+
+} // end namespace internal
+
+/** \ingroup SVD_Module
+  *
+  *
+  * \class JacobiSVD
+  *
+  * \brief Two-sided Jacobi SVD decomposition of a rectangular matrix
+  *
+  * \param MatrixType the type of the matrix of which we are computing the SVD decomposition
+  * \param QRPreconditioner this optional parameter allows to specify the type of QR decomposition that will be used internally
+  *                        for the R-SVD step for non-square matrices. See discussion of possible values below.
+  *
+  * SVD decomposition consists in decomposing any n-by-p matrix \a A as a product
+  *   \f[ A = U S V^* \f]
+  * where \a U is a n-by-n unitary, \a V is a p-by-p unitary, and \a S is a n-by-p real positive matrix which is zero outside of its main diagonal;
+  * the diagonal entries of S are known as the \em singular \em values of \a A and the columns of \a U and \a V are known as the left
+  * and right \em singular \em vectors of \a A respectively.
+  *
+  * Singular values are always sorted in decreasing order.
+  *
+  * This JacobiSVD decomposition computes only the singular values by default. If you want \a U or \a V, you need to ask for them explicitly.
+  *
+  * You can ask for only \em thin \a U or \a V to be computed, meaning the following. In case of a rectangular n-by-p matrix, letting \a m be the
+  * smaller value among \a n and \a p, there are only \a m singular vectors; the remaining columns of \a U and \a V do not correspond to actual
+  * singular vectors. Asking for \em thin \a U or \a V means asking for only their \a m first columns to be formed. So \a U is then a n-by-m matrix,
+  * and \a V is then a p-by-m matrix. Notice that thin \a U and \a V are all you need for (least squares) solving.
+  *
+  * Here's an example demonstrating basic usage:
+  * \include JacobiSVD_basic.cpp
+  * Output: \verbinclude JacobiSVD_basic.out
+  *
+  * This JacobiSVD class is a two-sided Jacobi R-SVD decomposition, ensuring optimal reliability and accuracy. The downside is that it's slower than
+  * bidiagonalizing SVD algorithms for large square matrices; however its complexity is still \f$ O(n^2p) \f$ where \a n is the smaller dimension and
+  * \a p is the greater dimension, meaning that it is still of the same order of complexity as the faster bidiagonalizing R-SVD algorithms.
+  * In particular, like any R-SVD, it takes advantage of non-squareness in that its complexity is only linear in the greater dimension.
+  *
+  * If the input matrix has inf or nan coefficients, the result of the computation is undefined, but the computation is guaranteed to
+  * terminate in finite (and reasonable) time.
+  *
+  * The possible values for QRPreconditioner are:
+  * \li ColPivHouseholderQRPreconditioner is the default. In practice it's very safe. It uses column-pivoting QR.
+  * \li FullPivHouseholderQRPreconditioner, is the safest and slowest. It uses full-pivoting QR.
+  *     Contrary to other QRs, it doesn't allow computing thin unitaries.
+  * \li HouseholderQRPreconditioner is the fastest, and less safe and accurate than the pivoting variants. It uses non-pivoting QR.
+  *     This is very similar in safety and accuracy to the bidiagonalization process used by bidiagonalizing SVD algorithms (since bidiagonalization
+  *     is inherently non-pivoting). However the resulting SVD is still more reliable than bidiagonalizing SVDs because the Jacobi-based iterarive
+  *     process is more reliable than the optimized bidiagonal SVD iterations.
+  * \li NoQRPreconditioner allows not to use a QR preconditioner at all. This is useful if you know that you will only be computing
+  *     JacobiSVD decompositions of square matrices. Non-square matrices require a QR preconditioner. Using this option will result in
+  *     faster compilation and smaller executable code. It won't significantly speed up computation, since JacobiSVD is always checking
+  *     if QR preconditioning is needed before applying it anyway.
+  *
+  * \sa MatrixBase::jacobiSvd()
+  */
+template<typename _MatrixType, int QRPreconditioner> class JacobiSVD
+{
+  public:
+
+    typedef _MatrixType MatrixType;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      DiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime,ColsAtCompileTime),
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+      MaxDiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(MaxRowsAtCompileTime,MaxColsAtCompileTime),
+      MatrixOptions = MatrixType::Options
+    };
+
+    typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime,
+                   MatrixOptions, MaxRowsAtCompileTime, MaxRowsAtCompileTime>
+            MatrixUType;
+    typedef Matrix<Scalar, ColsAtCompileTime, ColsAtCompileTime,
+                   MatrixOptions, MaxColsAtCompileTime, MaxColsAtCompileTime>
+            MatrixVType;
+    typedef typename internal::plain_diag_type<MatrixType, RealScalar>::type SingularValuesType;
+    typedef typename internal::plain_row_type<MatrixType>::type RowType;
+    typedef typename internal::plain_col_type<MatrixType>::type ColType;
+    typedef Matrix<Scalar, DiagSizeAtCompileTime, DiagSizeAtCompileTime,
+                   MatrixOptions, MaxDiagSizeAtCompileTime, MaxDiagSizeAtCompileTime>
+            WorkMatrixType;
+
+    /** \brief Default Constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via JacobiSVD::compute(const MatrixType&).
+      */
+    JacobiSVD()
+      : m_isInitialized(false),
+        m_isAllocated(false),
+        m_usePrescribedThreshold(false),
+        m_computationOptions(0),
+        m_rows(-1), m_cols(-1), m_diagSize(0)
+    {}
+
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem size.
+      * \sa JacobiSVD()
+      */
+    JacobiSVD(Index rows, Index cols, unsigned int computationOptions = 0)
+      : m_isInitialized(false),
+        m_isAllocated(false),
+        m_usePrescribedThreshold(false),
+        m_computationOptions(0),
+        m_rows(-1), m_cols(-1)
+    {
+      allocate(rows, cols, computationOptions);
+    }
+
+    /** \brief Constructor performing the decomposition of given matrix.
+     *
+     * \param matrix the matrix to decompose
+     * \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
+     *                           By default, none is computed. This is a bit-field, the possible bits are #ComputeFullU, #ComputeThinU,
+     *                           #ComputeFullV, #ComputeThinV.
+     *
+     * Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
+     * available with the (non-default) FullPivHouseholderQR preconditioner.
+     */
+    JacobiSVD(const MatrixType& matrix, unsigned int computationOptions = 0)
+      : m_isInitialized(false),
+        m_isAllocated(false),
+        m_usePrescribedThreshold(false),
+        m_computationOptions(0),
+        m_rows(-1), m_cols(-1)
+    {
+      compute(matrix, computationOptions);
+    }
+
+    /** \brief Method performing the decomposition of given matrix using custom options.
+     *
+     * \param matrix the matrix to decompose
+     * \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
+     *                           By default, none is computed. This is a bit-field, the possible bits are #ComputeFullU, #ComputeThinU,
+     *                           #ComputeFullV, #ComputeThinV.
+     *
+     * Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
+     * available with the (non-default) FullPivHouseholderQR preconditioner.
+     */
+    JacobiSVD& compute(const MatrixType& matrix, unsigned int computationOptions);
+
+    /** \brief Method performing the decomposition of given matrix using current options.
+     *
+     * \param matrix the matrix to decompose
+     *
+     * This method uses the current \a computationOptions, as already passed to the constructor or to compute(const MatrixType&, unsigned int).
+     */
+    JacobiSVD& compute(const MatrixType& matrix)
+    {
+      return compute(matrix, m_computationOptions);
+    }
+
+    /** \returns the \a U matrix.
+     *
+     * For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p,
+     * the U matrix is n-by-n if you asked for #ComputeFullU, and is n-by-m if you asked for #ComputeThinU.
+     *
+     * The \a m first columns of \a U are the left singular vectors of the matrix being decomposed.
+     *
+     * This method asserts that you asked for \a U to be computed.
+     */
+    const MatrixUType& matrixU() const
+    {
+      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
+      eigen_assert(computeU() && "This JacobiSVD decomposition didn't compute U. Did you ask for it?");
+      return m_matrixU;
+    }
+
+    /** \returns the \a V matrix.
+     *
+     * For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p,
+     * the V matrix is p-by-p if you asked for #ComputeFullV, and is p-by-m if you asked for ComputeThinV.
+     *
+     * The \a m first columns of \a V are the right singular vectors of the matrix being decomposed.
+     *
+     * This method asserts that you asked for \a V to be computed.
+     */
+    const MatrixVType& matrixV() const
+    {
+      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
+      eigen_assert(computeV() && "This JacobiSVD decomposition didn't compute V. Did you ask for it?");
+      return m_matrixV;
+    }
+
+    /** \returns the vector of singular values.
+     *
+     * For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p, the
+     * returned vector has size \a m.  Singular values are always sorted in decreasing order.
+     */
+    const SingularValuesType& singularValues() const
+    {
+      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
+      return m_singularValues;
+    }
+
+    /** \returns true if \a U (full or thin) is asked for in this SVD decomposition */
+    inline bool computeU() const { return m_computeFullU || m_computeThinU; }
+    /** \returns true if \a V (full or thin) is asked for in this SVD decomposition */
+    inline bool computeV() const { return m_computeFullV || m_computeThinV; }
+
+    /** \returns a (least squares) solution of \f$ A x = b \f$ using the current SVD decomposition of A.
+      *
+      * \param b the right-hand-side of the equation to solve.
+      *
+      * \note Solving requires both U and V to be computed. Thin U and V are enough, there is no need for full U or V.
+      *
+      * \note SVD solving is implicitly least-squares. Thus, this method serves both purposes of exact solving and least-squares solving.
+      * In other words, the returned solution is guaranteed to minimize the Euclidean norm \f$ \Vert A x - b \Vert \f$.
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<JacobiSVD, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
+      eigen_assert(computeU() && computeV() && "JacobiSVD::solve() requires both unitaries U and V to be computed (thin unitaries suffice).");
+      return internal::solve_retval<JacobiSVD, Rhs>(*this, b.derived());
+    }
+
+    /** \returns the number of singular values that are not exactly 0 */
+    Index nonzeroSingularValues() const
+    {
+      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
+      return m_nonzeroSingularValues;
+    }
+    
+    /** \returns the rank of the matrix of which \c *this is the SVD.
+      *
+      * \note This method has to determine which singular values should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline Index rank() const
+    {
+      using std::abs;
+      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
+      if(m_singularValues.size()==0) return 0;
+      RealScalar premultiplied_threshold = m_singularValues.coeff(0) * threshold();
+      Index i = m_nonzeroSingularValues-1;
+      while(i>=0 && m_singularValues.coeff(i) < premultiplied_threshold) --i;
+      return i+1;
+    }
+    
+    /** Allows to prescribe a threshold to be used by certain methods, such as rank() and solve(),
+      * which need to determine when singular values are to be considered nonzero.
+      * This is not used for the SVD decomposition itself.
+      *
+      * When it needs to get the threshold value, Eigen calls threshold().
+      * The default is \c NumTraits<Scalar>::epsilon()
+      *
+      * \param threshold The new value to use as the threshold.
+      *
+      * A singular value will be considered nonzero if its value is strictly greater than
+      *  \f$ \vert singular value \vert \leqslant threshold \times \vert max singular value \vert \f$.
+      *
+      * If you want to come back to the default behavior, call setThreshold(Default_t)
+      */
+    JacobiSVD& setThreshold(const RealScalar& threshold)
+    {
+      m_usePrescribedThreshold = true;
+      m_prescribedThreshold = threshold;
+      return *this;
+    }
+
+    /** Allows to come back to the default behavior, letting Eigen use its default formula for
+      * determining the threshold.
+      *
+      * You should pass the special object Eigen::Default as parameter here.
+      * \code svd.setThreshold(Eigen::Default); \endcode
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    JacobiSVD& setThreshold(Default_t)
+    {
+      m_usePrescribedThreshold = false;
+      return *this;
+    }
+
+    /** Returns the threshold that will be used by certain methods such as rank().
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    RealScalar threshold() const
+    {
+      eigen_assert(m_isInitialized || m_usePrescribedThreshold);
+      return m_usePrescribedThreshold ? m_prescribedThreshold
+                                      : (std::max<Index>)(1,m_diagSize)*NumTraits<Scalar>::epsilon();
+    }
+
+    inline Index rows() const { return m_rows; }
+    inline Index cols() const { return m_cols; }
+
+  private:
+    void allocate(Index rows, Index cols, unsigned int computationOptions);
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+
+  protected:
+    MatrixUType m_matrixU;
+    MatrixVType m_matrixV;
+    SingularValuesType m_singularValues;
+    WorkMatrixType m_workMatrix;
+    bool m_isInitialized, m_isAllocated, m_usePrescribedThreshold;
+    bool m_computeFullU, m_computeThinU;
+    bool m_computeFullV, m_computeThinV;
+    unsigned int m_computationOptions;
+    Index m_nonzeroSingularValues, m_rows, m_cols, m_diagSize;
+    RealScalar m_prescribedThreshold;
+
+    template<typename __MatrixType, int _QRPreconditioner, bool _IsComplex>
+    friend struct internal::svd_precondition_2x2_block_to_be_real;
+    template<typename __MatrixType, int _QRPreconditioner, int _Case, bool _DoAnything>
+    friend struct internal::qr_preconditioner_impl;
+
+    internal::qr_preconditioner_impl<MatrixType, QRPreconditioner, internal::PreconditionIfMoreColsThanRows> m_qr_precond_morecols;
+    internal::qr_preconditioner_impl<MatrixType, QRPreconditioner, internal::PreconditionIfMoreRowsThanCols> m_qr_precond_morerows;
+    MatrixType m_scaledMatrix;
+};
+
+template<typename MatrixType, int QRPreconditioner>
+void JacobiSVD<MatrixType, QRPreconditioner>::allocate(Index rows, Index cols, unsigned int computationOptions)
+{
+  eigen_assert(rows >= 0 && cols >= 0);
+
+  if (m_isAllocated &&
+      rows == m_rows &&
+      cols == m_cols &&
+      computationOptions == m_computationOptions)
+  {
+    return;
+  }
+
+  m_rows = rows;
+  m_cols = cols;
+  m_isInitialized = false;
+  m_isAllocated = true;
+  m_computationOptions = computationOptions;
+  m_computeFullU = (computationOptions & ComputeFullU) != 0;
+  m_computeThinU = (computationOptions & ComputeThinU) != 0;
+  m_computeFullV = (computationOptions & ComputeFullV) != 0;
+  m_computeThinV = (computationOptions & ComputeThinV) != 0;
+  eigen_assert(!(m_computeFullU && m_computeThinU) && "JacobiSVD: you can't ask for both full and thin U");
+  eigen_assert(!(m_computeFullV && m_computeThinV) && "JacobiSVD: you can't ask for both full and thin V");
+  eigen_assert(EIGEN_IMPLIES(m_computeThinU || m_computeThinV, MatrixType::ColsAtCompileTime==Dynamic) &&
+              "JacobiSVD: thin U and V are only available when your matrix has a dynamic number of columns.");
+  if (QRPreconditioner == FullPivHouseholderQRPreconditioner)
+  {
+      eigen_assert(!(m_computeThinU || m_computeThinV) &&
+              "JacobiSVD: can't compute thin U or thin V with the FullPivHouseholderQR preconditioner. "
+              "Use the ColPivHouseholderQR preconditioner instead.");
+  }
+  m_diagSize = (std::min)(m_rows, m_cols);
+  m_singularValues.resize(m_diagSize);
+  if(RowsAtCompileTime==Dynamic)
+    m_matrixU.resize(m_rows, m_computeFullU ? m_rows
+                            : m_computeThinU ? m_diagSize
+                            : 0);
+  if(ColsAtCompileTime==Dynamic)
+    m_matrixV.resize(m_cols, m_computeFullV ? m_cols
+                            : m_computeThinV ? m_diagSize
+                            : 0);
+  m_workMatrix.resize(m_diagSize, m_diagSize);
+  
+  if(m_cols>m_rows)   m_qr_precond_morecols.allocate(*this);
+  if(m_rows>m_cols)   m_qr_precond_morerows.allocate(*this);
+  if(m_rows!=m_cols)  m_scaledMatrix.resize(rows,cols);
+}
+
+template<typename MatrixType, int QRPreconditioner>
+JacobiSVD<MatrixType, QRPreconditioner>&
+JacobiSVD<MatrixType, QRPreconditioner>::compute(const MatrixType& matrix, unsigned int computationOptions)
+{
+  check_template_parameters();
+  
+  using std::abs;
+  allocate(matrix.rows(), matrix.cols(), computationOptions);
+
+  // currently we stop when we reach precision 2*epsilon as the last bit of precision can require an unreasonable number of iterations,
+  // only worsening the precision of U and V as we accumulate more rotations
+  const RealScalar precision = RealScalar(2) * NumTraits<Scalar>::epsilon();
+
+  // limit for very small denormal numbers to be considered zero in order to avoid infinite loops (see bug 286)
+  const RealScalar considerAsZero = RealScalar(2) * std::numeric_limits<RealScalar>::denorm_min();
+
+  // Scaling factor to reduce over/under-flows
+  RealScalar scale = matrix.cwiseAbs().maxCoeff();
+  if(scale==RealScalar(0)) scale = RealScalar(1);
+  
+  /*** step 1. The R-SVD step: we use a QR decomposition to reduce to the case of a square matrix */
+
+  if(m_rows!=m_cols)
+  {
+    m_scaledMatrix = matrix / scale;
+    m_qr_precond_morecols.run(*this, m_scaledMatrix);
+    m_qr_precond_morerows.run(*this, m_scaledMatrix);
+  }
+  else
+  {
+    m_workMatrix = matrix.block(0,0,m_diagSize,m_diagSize) / scale;
+    if(m_computeFullU) m_matrixU.setIdentity(m_rows,m_rows);
+    if(m_computeThinU) m_matrixU.setIdentity(m_rows,m_diagSize);
+    if(m_computeFullV) m_matrixV.setIdentity(m_cols,m_cols);
+    if(m_computeThinV) m_matrixV.setIdentity(m_cols, m_diagSize);
+  }
+
+  /*** step 2. The main Jacobi SVD iteration. ***/
+
+  bool finished = false;
+  while(!finished)
+  {
+    finished = true;
+
+    // do a sweep: for all index pairs (p,q), perform SVD of the corresponding 2x2 sub-matrix
+
+    for(Index p = 1; p < m_diagSize; ++p)
+    {
+      for(Index q = 0; q < p; ++q)
+      {
+        // if this 2x2 sub-matrix is not diagonal already...
+        // notice that this comparison will evaluate to false if any NaN is involved, ensuring that NaN's don't
+        // keep us iterating forever. Similarly, small denormal numbers are considered zero.
+        using std::max;
+        RealScalar threshold = (max)(considerAsZero, precision * (max)(abs(m_workMatrix.coeff(p,p)),
+                                                                       abs(m_workMatrix.coeff(q,q))));
+        // We compare both values to threshold instead of calling max to be robust to NaN (See bug 791)
+        if(abs(m_workMatrix.coeff(p,q))>threshold || abs(m_workMatrix.coeff(q,p)) > threshold)
+        {
+          finished = false;
+
+          // perform SVD decomposition of 2x2 sub-matrix corresponding to indices p,q to make it diagonal
+          internal::svd_precondition_2x2_block_to_be_real<MatrixType, QRPreconditioner>::run(m_workMatrix, *this, p, q);
+          JacobiRotation<RealScalar> j_left, j_right;
+          internal::real_2x2_jacobi_svd(m_workMatrix, p, q, &j_left, &j_right);
+
+          // accumulate resulting Jacobi rotations
+          m_workMatrix.applyOnTheLeft(p,q,j_left);
+          if(computeU()) m_matrixU.applyOnTheRight(p,q,j_left.transpose());
+
+          m_workMatrix.applyOnTheRight(p,q,j_right);
+          if(computeV()) m_matrixV.applyOnTheRight(p,q,j_right);
+        }
+      }
+    }
+  }
+
+  /*** step 3. The work matrix is now diagonal, so ensure it's positive so its diagonal entries are the singular values ***/
+
+  for(Index i = 0; i < m_diagSize; ++i)
+  {
+    RealScalar a = abs(m_workMatrix.coeff(i,i));
+    m_singularValues.coeffRef(i) = a;
+    if(computeU() && (a!=RealScalar(0))) m_matrixU.col(i) *= m_workMatrix.coeff(i,i)/a;
+  }
+
+  /*** step 4. Sort singular values in descending order and compute the number of nonzero singular values ***/
+
+  m_nonzeroSingularValues = m_diagSize;
+  for(Index i = 0; i < m_diagSize; i++)
+  {
+    Index pos;
+    RealScalar maxRemainingSingularValue = m_singularValues.tail(m_diagSize-i).maxCoeff(&pos);
+    if(maxRemainingSingularValue == RealScalar(0))
+    {
+      m_nonzeroSingularValues = i;
+      break;
+    }
+    if(pos)
+    {
+      pos += i;
+      std::swap(m_singularValues.coeffRef(i), m_singularValues.coeffRef(pos));
+      if(computeU()) m_matrixU.col(pos).swap(m_matrixU.col(i));
+      if(computeV()) m_matrixV.col(pos).swap(m_matrixV.col(i));
+    }
+  }
+  
+  m_singularValues *= scale;
+
+  m_isInitialized = true;
+  return *this;
+}
+
+namespace internal {
+template<typename _MatrixType, int QRPreconditioner, typename Rhs>
+struct solve_retval<JacobiSVD<_MatrixType, QRPreconditioner>, Rhs>
+  : solve_retval_base<JacobiSVD<_MatrixType, QRPreconditioner>, Rhs>
+{
+  typedef JacobiSVD<_MatrixType, QRPreconditioner> JacobiSVDType;
+  EIGEN_MAKE_SOLVE_HELPERS(JacobiSVDType,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    eigen_assert(rhs().rows() == dec().rows());
+
+    // A = U S V^*
+    // So A^{-1} = V S^{-1} U^*
+
+    Matrix<Scalar, Dynamic, Rhs::ColsAtCompileTime, 0, _MatrixType::MaxRowsAtCompileTime, Rhs::MaxColsAtCompileTime> tmp;
+    Index rank = dec().rank();
+    
+    tmp.noalias() = dec().matrixU().leftCols(rank).adjoint() * rhs();
+    tmp = dec().singularValues().head(rank).asDiagonal().inverse() * tmp;
+    dst = dec().matrixV().leftCols(rank) * tmp;
+  }
+};
+} // end namespace internal
+
+/** \svd_module
+  *
+  * \return the singular value decomposition of \c *this computed by two-sided
+  * Jacobi transformations.
+  *
+  * \sa class JacobiSVD
+  */
+template<typename Derived>
+JacobiSVD<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::jacobiSvd(unsigned int computationOptions) const
+{
+  return JacobiSVD<PlainObject>(*this, computationOptions);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_JACOBISVD_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SVD/JacobiSVD_MKL.h b/vendor/eigen-3.2.8/Eigen/src/SVD/JacobiSVD_MKL.h
new file mode 100644
index 0000000..14e461c
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SVD/JacobiSVD_MKL.h
@@ -0,0 +1,92 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *    Singular Value Decomposition - SVD.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_JACOBISVD_MKL_H
+#define EIGEN_JACOBISVD_MKL_H
+
+#include "Eigen/src/Core/util/MKL_support.h"
+
+namespace Eigen { 
+
+/** \internal Specialization for the data types supported by MKL */
+
+#define EIGEN_MKL_SVD(EIGTYPE, MKLTYPE, MKLRTYPE, MKLPREFIX, EIGCOLROW, MKLCOLROW) \
+template<> inline \
+JacobiSVD<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic>, ColPivHouseholderQRPreconditioner>& \
+JacobiSVD<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic>, ColPivHouseholderQRPreconditioner>::compute(const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic>& matrix, unsigned int computationOptions) \
+{ \
+  typedef Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> MatrixType; \
+  /*typedef MatrixType::Scalar Scalar;*/ \
+  /*typedef MatrixType::RealScalar RealScalar;*/ \
+  allocate(matrix.rows(), matrix.cols(), computationOptions); \
+\
+  /*const RealScalar precision = RealScalar(2) * NumTraits<Scalar>::epsilon();*/ \
+  m_nonzeroSingularValues = m_diagSize; \
+\
+  lapack_int lda = matrix.outerStride(), ldu, ldvt; \
+  lapack_int matrix_order = MKLCOLROW; \
+  char jobu, jobvt; \
+  MKLTYPE *u, *vt, dummy; \
+  jobu  = (m_computeFullU) ? 'A' : (m_computeThinU) ? 'S' : 'N'; \
+  jobvt = (m_computeFullV) ? 'A' : (m_computeThinV) ? 'S' : 'N'; \
+  if (computeU()) { \
+    ldu  = m_matrixU.outerStride(); \
+    u    = (MKLTYPE*)m_matrixU.data(); \
+  } else { ldu=1; u=&dummy; }\
+  MatrixType localV; \
+  ldvt = (m_computeFullV) ? m_cols : (m_computeThinV) ? m_diagSize : 1; \
+  if (computeV()) { \
+    localV.resize(ldvt, m_cols); \
+    vt   = (MKLTYPE*)localV.data(); \
+  } else { ldvt=1; vt=&dummy; }\
+  Matrix<MKLRTYPE, Dynamic, Dynamic> superb; superb.resize(m_diagSize, 1); \
+  MatrixType m_temp; m_temp = matrix; \
+  LAPACKE_##MKLPREFIX##gesvd( matrix_order, jobu, jobvt, m_rows, m_cols, (MKLTYPE*)m_temp.data(), lda, (MKLRTYPE*)m_singularValues.data(), u, ldu, vt, ldvt, superb.data()); \
+  if (computeV()) m_matrixV = localV.adjoint(); \
+ /* for(int i=0;i<m_diagSize;i++) if (m_singularValues.coeffRef(i) < precision) { m_nonzeroSingularValues--; m_singularValues.coeffRef(i)=RealScalar(0);}*/ \
+  m_isInitialized = true; \
+  return *this; \
+}
+
+EIGEN_MKL_SVD(double,   double,        double, d, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_SVD(float,    float,         float , s, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_SVD(dcomplex, MKL_Complex16, double, z, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_SVD(scomplex, MKL_Complex8,  float , c, ColMajor, LAPACK_COL_MAJOR)
+
+EIGEN_MKL_SVD(double,   double,        double, d, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_SVD(float,    float,         float , s, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_SVD(dcomplex, MKL_Complex16, double, z, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_SVD(scomplex, MKL_Complex8,  float , c, RowMajor, LAPACK_ROW_MAJOR)
+
+} // end namespace Eigen
+
+#endif // EIGEN_JACOBISVD_MKL_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SVD/UpperBidiagonalization.h b/vendor/eigen-3.2.8/Eigen/src/SVD/UpperBidiagonalization.h
new file mode 100644
index 0000000..587de37
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SVD/UpperBidiagonalization.h
@@ -0,0 +1,148 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BIDIAGONALIZATION_H
+#define EIGEN_BIDIAGONALIZATION_H
+
+namespace Eigen { 
+
+namespace internal {
+// UpperBidiagonalization will probably be replaced by a Bidiagonalization class, don't want to make it stable API.
+// At the same time, it's useful to keep for now as it's about the only thing that is testing the BandMatrix class.
+
+template<typename _MatrixType> class UpperBidiagonalization
+{
+  public:
+
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      ColsAtCompileTimeMinusOne = internal::decrement_size<ColsAtCompileTime>::ret
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef Matrix<Scalar, 1, ColsAtCompileTime> RowVectorType;
+    typedef Matrix<Scalar, RowsAtCompileTime, 1> ColVectorType;
+    typedef BandMatrix<RealScalar, ColsAtCompileTime, ColsAtCompileTime, 1, 0> BidiagonalType;
+    typedef Matrix<Scalar, ColsAtCompileTime, 1> DiagVectorType;
+    typedef Matrix<Scalar, ColsAtCompileTimeMinusOne, 1> SuperDiagVectorType;
+    typedef HouseholderSequence<
+              const MatrixType,
+              CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, const Diagonal<const MatrixType,0> >
+            > HouseholderUSequenceType;
+    typedef HouseholderSequence<
+              const typename internal::remove_all<typename MatrixType::ConjugateReturnType>::type,
+              Diagonal<const MatrixType,1>,
+              OnTheRight
+            > HouseholderVSequenceType;
+    
+    /**
+    * \brief Default Constructor.
+    *
+    * The default constructor is useful in cases in which the user intends to
+    * perform decompositions via Bidiagonalization::compute(const MatrixType&).
+    */
+    UpperBidiagonalization() : m_householder(), m_bidiagonal(), m_isInitialized(false) {}
+
+    UpperBidiagonalization(const MatrixType& matrix)
+      : m_householder(matrix.rows(), matrix.cols()),
+        m_bidiagonal(matrix.cols(), matrix.cols()),
+        m_isInitialized(false)
+    {
+      compute(matrix);
+    }
+    
+    UpperBidiagonalization& compute(const MatrixType& matrix);
+    
+    const MatrixType& householder() const { return m_householder; }
+    const BidiagonalType& bidiagonal() const { return m_bidiagonal; }
+    
+    const HouseholderUSequenceType householderU() const
+    {
+      eigen_assert(m_isInitialized && "UpperBidiagonalization is not initialized.");
+      return HouseholderUSequenceType(m_householder, m_householder.diagonal().conjugate());
+    }
+
+    const HouseholderVSequenceType householderV() // const here gives nasty errors and i'm lazy
+    {
+      eigen_assert(m_isInitialized && "UpperBidiagonalization is not initialized.");
+      return HouseholderVSequenceType(m_householder.conjugate(), m_householder.const_derived().template diagonal<1>())
+             .setLength(m_householder.cols()-1)
+             .setShift(1);
+    }
+    
+  protected:
+    MatrixType m_householder;
+    BidiagonalType m_bidiagonal;
+    bool m_isInitialized;
+};
+
+template<typename _MatrixType>
+UpperBidiagonalization<_MatrixType>& UpperBidiagonalization<_MatrixType>::compute(const _MatrixType& matrix)
+{
+  Index rows = matrix.rows();
+  Index cols = matrix.cols();
+  
+  eigen_assert(rows >= cols && "UpperBidiagonalization is only for matrices satisfying rows>=cols.");
+  
+  m_householder = matrix;
+
+  ColVectorType temp(rows);
+
+  for (Index k = 0; /* breaks at k==cols-1 below */ ; ++k)
+  {
+    Index remainingRows = rows - k;
+    Index remainingCols = cols - k - 1;
+
+    // construct left householder transform in-place in m_householder
+    m_householder.col(k).tail(remainingRows)
+                 .makeHouseholderInPlace(m_householder.coeffRef(k,k),
+                                         m_bidiagonal.template diagonal<0>().coeffRef(k));
+    // apply householder transform to remaining part of m_householder on the left
+    m_householder.bottomRightCorner(remainingRows, remainingCols)
+                 .applyHouseholderOnTheLeft(m_householder.col(k).tail(remainingRows-1),
+                                            m_householder.coeff(k,k),
+                                            temp.data());
+
+    if(k == cols-1) break;
+    
+    // construct right householder transform in-place in m_householder
+    m_householder.row(k).tail(remainingCols)
+                 .makeHouseholderInPlace(m_householder.coeffRef(k,k+1),
+                                         m_bidiagonal.template diagonal<1>().coeffRef(k));
+    // apply householder transform to remaining part of m_householder on the left
+    m_householder.bottomRightCorner(remainingRows-1, remainingCols)
+                 .applyHouseholderOnTheRight(m_householder.row(k).tail(remainingCols-1).transpose(),
+                                             m_householder.coeff(k,k+1),
+                                             temp.data());
+  }
+  m_isInitialized = true;
+  return *this;
+}
+
+#if 0
+/** \return the Householder QR decomposition of \c *this.
+  *
+  * \sa class Bidiagonalization
+  */
+template<typename Derived>
+const UpperBidiagonalization<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::bidiagonalization() const
+{
+  return UpperBidiagonalization<PlainObject>(eval());
+}
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BIDIAGONALIZATION_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCholesky/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/SparseCholesky/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SparseCholesky/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/SparseCholesky/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCholesky/SimplicialCholesky.h b/vendor/eigen-3.2.8/Eigen/src/SparseCholesky/SimplicialCholesky.h
new file mode 100644
index 0000000..e1f96ba
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCholesky/SimplicialCholesky.h
@@ -0,0 +1,671 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2012 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SIMPLICIAL_CHOLESKY_H
+#define EIGEN_SIMPLICIAL_CHOLESKY_H
+
+namespace Eigen { 
+
+enum SimplicialCholeskyMode {
+  SimplicialCholeskyLLT,
+  SimplicialCholeskyLDLT
+};
+
+/** \ingroup SparseCholesky_Module
+  * \brief A direct sparse Cholesky factorizations
+  *
+  * These classes provide LL^T and LDL^T Cholesky factorizations of sparse matrices that are
+  * selfadjoint and positive definite. The factorization allows for solving A.X = B where
+  * X and B can be either dense or sparse.
+  * 
+  * In order to reduce the fill-in, a symmetric permutation P is applied prior to the factorization
+  * such that the factorized matrix is P A P^-1.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+  *               or Upper. Default is Lower.
+  *
+  */
+template<typename Derived>
+class SimplicialCholeskyBase : internal::noncopyable
+{
+  public:
+    typedef typename internal::traits<Derived>::MatrixType MatrixType;
+    typedef typename internal::traits<Derived>::OrderingType OrderingType;
+    enum { UpLo = internal::traits<Derived>::UpLo };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef SparseMatrix<Scalar,ColMajor,Index> CholMatrixType;
+    typedef Matrix<Scalar,Dynamic,1> VectorType;
+
+  public:
+
+    /** Default constructor */
+    SimplicialCholeskyBase()
+      : m_info(Success), m_isInitialized(false), m_shiftOffset(0), m_shiftScale(1)
+    {}
+
+    SimplicialCholeskyBase(const MatrixType& matrix)
+      : m_info(Success), m_isInitialized(false), m_shiftOffset(0), m_shiftScale(1)
+    {
+      derived().compute(matrix);
+    }
+
+    ~SimplicialCholeskyBase()
+    {
+    }
+
+    Derived& derived() { return *static_cast<Derived*>(this); }
+    const Derived& derived() const { return *static_cast<const Derived*>(this); }
+    
+    inline Index cols() const { return m_matrix.cols(); }
+    inline Index rows() const { return m_matrix.rows(); }
+    
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix.appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+    
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<SimplicialCholeskyBase, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "Simplicial LLT or LDLT is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "SimplicialCholeskyBase::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<SimplicialCholeskyBase, Rhs>(*this, b.derived());
+    }
+    
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<SimplicialCholeskyBase, Rhs>
+    solve(const SparseMatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "Simplicial LLT or LDLT is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "SimplicialCholesky::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::sparse_solve_retval<SimplicialCholeskyBase, Rhs>(*this, b.derived());
+    }
+    
+    /** \returns the permutation P
+      * \sa permutationPinv() */
+    const PermutationMatrix<Dynamic,Dynamic,Index>& permutationP() const
+    { return m_P; }
+    
+    /** \returns the inverse P^-1 of the permutation P
+      * \sa permutationP() */
+    const PermutationMatrix<Dynamic,Dynamic,Index>& permutationPinv() const
+    { return m_Pinv; }
+
+    /** Sets the shift parameters that will be used to adjust the diagonal coefficients during the numerical factorization.
+      *
+      * During the numerical factorization, the diagonal coefficients are transformed by the following linear model:\n
+      * \c d_ii = \a offset + \a scale * \c d_ii
+      *
+      * The default is the identity transformation with \a offset=0, and \a scale=1.
+      *
+      * \returns a reference to \c *this.
+      */
+    Derived& setShift(const RealScalar& offset, const RealScalar& scale = 1)
+    {
+      m_shiftOffset = offset;
+      m_shiftScale = scale;
+      return derived();
+    }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal */
+    template<typename Stream>
+    void dumpMemory(Stream& s)
+    {
+      int total = 0;
+      s << "  L:        " << ((total+=(m_matrix.cols()+1) * sizeof(int) + m_matrix.nonZeros()*(sizeof(int)+sizeof(Scalar))) >> 20) << "Mb" << "\n";
+      s << "  diag:     " << ((total+=m_diag.size() * sizeof(Scalar)) >> 20) << "Mb" << "\n";
+      s << "  tree:     " << ((total+=m_parent.size() * sizeof(int)) >> 20) << "Mb" << "\n";
+      s << "  nonzeros: " << ((total+=m_nonZerosPerCol.size() * sizeof(int)) >> 20) << "Mb" << "\n";
+      s << "  perm:     " << ((total+=m_P.size() * sizeof(int)) >> 20) << "Mb" << "\n";
+      s << "  perm^-1:  " << ((total+=m_Pinv.size() * sizeof(int)) >> 20) << "Mb" << "\n";
+      s << "  TOTAL:    " << (total>> 20) << "Mb" << "\n";
+    }
+
+    /** \internal */
+    template<typename Rhs,typename Dest>
+    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
+    {
+      eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
+      eigen_assert(m_matrix.rows()==b.rows());
+
+      if(m_info!=Success)
+        return;
+
+      if(m_P.size()>0)
+        dest = m_P * b;
+      else
+        dest = b;
+
+      if(m_matrix.nonZeros()>0) // otherwise L==I
+        derived().matrixL().solveInPlace(dest);
+
+      if(m_diag.size()>0)
+        dest = m_diag.asDiagonal().inverse() * dest;
+
+      if (m_matrix.nonZeros()>0) // otherwise U==I
+        derived().matrixU().solveInPlace(dest);
+
+      if(m_P.size()>0)
+        dest = m_Pinv * dest;
+    }
+
+#endif // EIGEN_PARSED_BY_DOXYGEN
+
+  protected:
+    
+    /** Computes the sparse Cholesky decomposition of \a matrix */
+    template<bool DoLDLT>
+    void compute(const MatrixType& matrix)
+    {
+      eigen_assert(matrix.rows()==matrix.cols());
+      Index size = matrix.cols();
+      CholMatrixType ap(size,size);
+      ordering(matrix, ap);
+      analyzePattern_preordered(ap, DoLDLT);
+      factorize_preordered<DoLDLT>(ap);
+    }
+    
+    template<bool DoLDLT>
+    void factorize(const MatrixType& a)
+    {
+      eigen_assert(a.rows()==a.cols());
+      int size = a.cols();
+      CholMatrixType ap(size,size);
+      ap.template selfadjointView<Upper>() = a.template selfadjointView<UpLo>().twistedBy(m_P);
+      factorize_preordered<DoLDLT>(ap);
+    }
+
+    template<bool DoLDLT>
+    void factorize_preordered(const CholMatrixType& a);
+
+    void analyzePattern(const MatrixType& a, bool doLDLT)
+    {
+      eigen_assert(a.rows()==a.cols());
+      int size = a.cols();
+      CholMatrixType ap(size,size);
+      ordering(a, ap);
+      analyzePattern_preordered(ap,doLDLT);
+    }
+    void analyzePattern_preordered(const CholMatrixType& a, bool doLDLT);
+    
+    void ordering(const MatrixType& a, CholMatrixType& ap);
+
+    /** keeps off-diagonal entries; drops diagonal entries */
+    struct keep_diag {
+      inline bool operator() (const Index& row, const Index& col, const Scalar&) const
+      {
+        return row!=col;
+      }
+    };
+
+    mutable ComputationInfo m_info;
+    bool m_isInitialized;
+    bool m_factorizationIsOk;
+    bool m_analysisIsOk;
+    
+    CholMatrixType m_matrix;
+    VectorType m_diag;                                // the diagonal coefficients (LDLT mode)
+    VectorXi m_parent;                                // elimination tree
+    VectorXi m_nonZerosPerCol;
+    PermutationMatrix<Dynamic,Dynamic,Index> m_P;     // the permutation
+    PermutationMatrix<Dynamic,Dynamic,Index> m_Pinv;  // the inverse permutation
+
+    RealScalar m_shiftOffset;
+    RealScalar m_shiftScale;
+};
+
+template<typename _MatrixType, int _UpLo = Lower, typename _Ordering = AMDOrdering<typename _MatrixType::Index> > class SimplicialLLT;
+template<typename _MatrixType, int _UpLo = Lower, typename _Ordering = AMDOrdering<typename _MatrixType::Index> > class SimplicialLDLT;
+template<typename _MatrixType, int _UpLo = Lower, typename _Ordering = AMDOrdering<typename _MatrixType::Index> > class SimplicialCholesky;
+
+namespace internal {
+
+template<typename _MatrixType, int _UpLo, typename _Ordering> struct traits<SimplicialLLT<_MatrixType,_UpLo,_Ordering> >
+{
+  typedef _MatrixType MatrixType;
+  typedef _Ordering OrderingType;
+  enum { UpLo = _UpLo };
+  typedef typename MatrixType::Scalar                         Scalar;
+  typedef typename MatrixType::Index                          Index;
+  typedef SparseMatrix<Scalar, ColMajor, Index>               CholMatrixType;
+  typedef SparseTriangularView<CholMatrixType, Eigen::Lower>  MatrixL;
+  typedef SparseTriangularView<typename CholMatrixType::AdjointReturnType, Eigen::Upper>   MatrixU;
+  static inline MatrixL getL(const MatrixType& m) { return m; }
+  static inline MatrixU getU(const MatrixType& m) { return m.adjoint(); }
+};
+
+template<typename _MatrixType,int _UpLo, typename _Ordering> struct traits<SimplicialLDLT<_MatrixType,_UpLo,_Ordering> >
+{
+  typedef _MatrixType MatrixType;
+  typedef _Ordering OrderingType;
+  enum { UpLo = _UpLo };
+  typedef typename MatrixType::Scalar                             Scalar;
+  typedef typename MatrixType::Index                              Index;
+  typedef SparseMatrix<Scalar, ColMajor, Index>                   CholMatrixType;
+  typedef SparseTriangularView<CholMatrixType, Eigen::UnitLower>  MatrixL;
+  typedef SparseTriangularView<typename CholMatrixType::AdjointReturnType, Eigen::UnitUpper> MatrixU;
+  static inline MatrixL getL(const MatrixType& m) { return m; }
+  static inline MatrixU getU(const MatrixType& m) { return m.adjoint(); }
+};
+
+template<typename _MatrixType, int _UpLo, typename _Ordering> struct traits<SimplicialCholesky<_MatrixType,_UpLo,_Ordering> >
+{
+  typedef _MatrixType MatrixType;
+  typedef _Ordering OrderingType;
+  enum { UpLo = _UpLo };
+};
+
+}
+
+/** \ingroup SparseCholesky_Module
+  * \class SimplicialLLT
+  * \brief A direct sparse LLT Cholesky factorizations
+  *
+  * This class provides a LL^T Cholesky factorizations of sparse matrices that are
+  * selfadjoint and positive definite. The factorization allows for solving A.X = B where
+  * X and B can be either dense or sparse.
+  * 
+  * In order to reduce the fill-in, a symmetric permutation P is applied prior to the factorization
+  * such that the factorized matrix is P A P^-1.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+  *               or Upper. Default is Lower.
+  * \tparam _Ordering The ordering method to use, either AMDOrdering<> or NaturalOrdering<>. Default is AMDOrdering<>
+  *
+  * \sa class SimplicialLDLT, class AMDOrdering, class NaturalOrdering
+  */
+template<typename _MatrixType, int _UpLo, typename _Ordering>
+    class SimplicialLLT : public SimplicialCholeskyBase<SimplicialLLT<_MatrixType,_UpLo,_Ordering> >
+{
+public:
+    typedef _MatrixType MatrixType;
+    enum { UpLo = _UpLo };
+    typedef SimplicialCholeskyBase<SimplicialLLT> Base;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef SparseMatrix<Scalar,ColMajor,Index> CholMatrixType;
+    typedef Matrix<Scalar,Dynamic,1> VectorType;
+    typedef internal::traits<SimplicialLLT> Traits;
+    typedef typename Traits::MatrixL  MatrixL;
+    typedef typename Traits::MatrixU  MatrixU;
+public:
+    /** Default constructor */
+    SimplicialLLT() : Base() {}
+    /** Constructs and performs the LLT factorization of \a matrix */
+    SimplicialLLT(const MatrixType& matrix)
+        : Base(matrix) {}
+
+    /** \returns an expression of the factor L */
+    inline const MatrixL matrixL() const {
+        eigen_assert(Base::m_factorizationIsOk && "Simplicial LLT not factorized");
+        return Traits::getL(Base::m_matrix);
+    }
+
+    /** \returns an expression of the factor U (= L^*) */
+    inline const MatrixU matrixU() const {
+        eigen_assert(Base::m_factorizationIsOk && "Simplicial LLT not factorized");
+        return Traits::getU(Base::m_matrix);
+    }
+    
+    /** Computes the sparse Cholesky decomposition of \a matrix */
+    SimplicialLLT& compute(const MatrixType& matrix)
+    {
+      Base::template compute<false>(matrix);
+      return *this;
+    }
+
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      *
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& a)
+    {
+      Base::analyzePattern(a, false);
+    }
+
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+      *
+      * \sa analyzePattern()
+      */
+    void factorize(const MatrixType& a)
+    {
+      Base::template factorize<false>(a);
+    }
+
+    /** \returns the determinant of the underlying matrix from the current factorization */
+    Scalar determinant() const
+    {
+      Scalar detL = Base::m_matrix.diagonal().prod();
+      return numext::abs2(detL);
+    }
+};
+
+/** \ingroup SparseCholesky_Module
+  * \class SimplicialLDLT
+  * \brief A direct sparse LDLT Cholesky factorizations without square root.
+  *
+  * This class provides a LDL^T Cholesky factorizations without square root of sparse matrices that are
+  * selfadjoint and positive definite. The factorization allows for solving A.X = B where
+  * X and B can be either dense or sparse.
+  * 
+  * In order to reduce the fill-in, a symmetric permutation P is applied prior to the factorization
+  * such that the factorized matrix is P A P^-1.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+  *               or Upper. Default is Lower.
+  * \tparam _Ordering The ordering method to use, either AMDOrdering<> or NaturalOrdering<>. Default is AMDOrdering<>
+  *
+  * \sa class SimplicialLLT, class AMDOrdering, class NaturalOrdering
+  */
+template<typename _MatrixType, int _UpLo, typename _Ordering>
+    class SimplicialLDLT : public SimplicialCholeskyBase<SimplicialLDLT<_MatrixType,_UpLo,_Ordering> >
+{
+public:
+    typedef _MatrixType MatrixType;
+    enum { UpLo = _UpLo };
+    typedef SimplicialCholeskyBase<SimplicialLDLT> Base;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef SparseMatrix<Scalar,ColMajor,Index> CholMatrixType;
+    typedef Matrix<Scalar,Dynamic,1> VectorType;
+    typedef internal::traits<SimplicialLDLT> Traits;
+    typedef typename Traits::MatrixL  MatrixL;
+    typedef typename Traits::MatrixU  MatrixU;
+public:
+    /** Default constructor */
+    SimplicialLDLT() : Base() {}
+
+    /** Constructs and performs the LLT factorization of \a matrix */
+    SimplicialLDLT(const MatrixType& matrix)
+        : Base(matrix) {}
+
+    /** \returns a vector expression of the diagonal D */
+    inline const VectorType vectorD() const {
+        eigen_assert(Base::m_factorizationIsOk && "Simplicial LDLT not factorized");
+        return Base::m_diag;
+    }
+    /** \returns an expression of the factor L */
+    inline const MatrixL matrixL() const {
+        eigen_assert(Base::m_factorizationIsOk && "Simplicial LDLT not factorized");
+        return Traits::getL(Base::m_matrix);
+    }
+
+    /** \returns an expression of the factor U (= L^*) */
+    inline const MatrixU matrixU() const {
+        eigen_assert(Base::m_factorizationIsOk && "Simplicial LDLT not factorized");
+        return Traits::getU(Base::m_matrix);
+    }
+
+    /** Computes the sparse Cholesky decomposition of \a matrix */
+    SimplicialLDLT& compute(const MatrixType& matrix)
+    {
+      Base::template compute<true>(matrix);
+      return *this;
+    }
+    
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      *
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& a)
+    {
+      Base::analyzePattern(a, true);
+    }
+
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+      *
+      * \sa analyzePattern()
+      */
+    void factorize(const MatrixType& a)
+    {
+      Base::template factorize<true>(a);
+    }
+
+    /** \returns the determinant of the underlying matrix from the current factorization */
+    Scalar determinant() const
+    {
+      return Base::m_diag.prod();
+    }
+};
+
+/** \deprecated use SimplicialLDLT or class SimplicialLLT
+  * \ingroup SparseCholesky_Module
+  * \class SimplicialCholesky
+  *
+  * \sa class SimplicialLDLT, class SimplicialLLT
+  */
+template<typename _MatrixType, int _UpLo, typename _Ordering>
+    class SimplicialCholesky : public SimplicialCholeskyBase<SimplicialCholesky<_MatrixType,_UpLo,_Ordering> >
+{
+public:
+    typedef _MatrixType MatrixType;
+    enum { UpLo = _UpLo };
+    typedef SimplicialCholeskyBase<SimplicialCholesky> Base;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef SparseMatrix<Scalar,ColMajor,Index> CholMatrixType;
+    typedef Matrix<Scalar,Dynamic,1> VectorType;
+    typedef internal::traits<SimplicialCholesky> Traits;
+    typedef internal::traits<SimplicialLDLT<MatrixType,UpLo> > LDLTTraits;
+    typedef internal::traits<SimplicialLLT<MatrixType,UpLo>  > LLTTraits;
+  public:
+    SimplicialCholesky() : Base(), m_LDLT(true) {}
+
+    SimplicialCholesky(const MatrixType& matrix)
+      : Base(), m_LDLT(true)
+    {
+      compute(matrix);
+    }
+
+    SimplicialCholesky& setMode(SimplicialCholeskyMode mode)
+    {
+      switch(mode)
+      {
+      case SimplicialCholeskyLLT:
+        m_LDLT = false;
+        break;
+      case SimplicialCholeskyLDLT:
+        m_LDLT = true;
+        break;
+      default:
+        break;
+      }
+
+      return *this;
+    }
+
+    inline const VectorType vectorD() const {
+        eigen_assert(Base::m_factorizationIsOk && "Simplicial Cholesky not factorized");
+        return Base::m_diag;
+    }
+    inline const CholMatrixType rawMatrix() const {
+        eigen_assert(Base::m_factorizationIsOk && "Simplicial Cholesky not factorized");
+        return Base::m_matrix;
+    }
+    
+    /** Computes the sparse Cholesky decomposition of \a matrix */
+    SimplicialCholesky& compute(const MatrixType& matrix)
+    {
+      if(m_LDLT)
+        Base::template compute<true>(matrix);
+      else
+        Base::template compute<false>(matrix);
+      return *this;
+    }
+
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      *
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& a)
+    {
+      Base::analyzePattern(a, m_LDLT);
+    }
+
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+      *
+      * \sa analyzePattern()
+      */
+    void factorize(const MatrixType& a)
+    {
+      if(m_LDLT)
+        Base::template factorize<true>(a);
+      else
+        Base::template factorize<false>(a);
+    }
+
+    /** \internal */
+    template<typename Rhs,typename Dest>
+    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
+    {
+      eigen_assert(Base::m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
+      eigen_assert(Base::m_matrix.rows()==b.rows());
+
+      if(Base::m_info!=Success)
+        return;
+
+      if(Base::m_P.size()>0)
+        dest = Base::m_P * b;
+      else
+        dest = b;
+
+      if(Base::m_matrix.nonZeros()>0) // otherwise L==I
+      {
+        if(m_LDLT)
+          LDLTTraits::getL(Base::m_matrix).solveInPlace(dest);
+        else
+          LLTTraits::getL(Base::m_matrix).solveInPlace(dest);
+      }
+
+      if(Base::m_diag.size()>0)
+        dest = Base::m_diag.asDiagonal().inverse() * dest;
+
+      if (Base::m_matrix.nonZeros()>0) // otherwise I==I
+      {
+        if(m_LDLT)
+          LDLTTraits::getU(Base::m_matrix).solveInPlace(dest);
+        else
+          LLTTraits::getU(Base::m_matrix).solveInPlace(dest);
+      }
+
+      if(Base::m_P.size()>0)
+        dest = Base::m_Pinv * dest;
+    }
+    
+    Scalar determinant() const
+    {
+      if(m_LDLT)
+      {
+        return Base::m_diag.prod();
+      }
+      else
+      {
+        Scalar detL = Diagonal<const CholMatrixType>(Base::m_matrix).prod();
+        return numext::abs2(detL);
+      }
+    }
+    
+  protected:
+    bool m_LDLT;
+};
+
+template<typename Derived>
+void SimplicialCholeskyBase<Derived>::ordering(const MatrixType& a, CholMatrixType& ap)
+{
+  eigen_assert(a.rows()==a.cols());
+  const Index size = a.rows();
+  // Note that amd compute the inverse permutation
+  {
+    CholMatrixType C;
+    C = a.template selfadjointView<UpLo>();
+    
+    OrderingType ordering;
+    ordering(C,m_Pinv);
+  }
+
+  if(m_Pinv.size()>0)
+    m_P = m_Pinv.inverse();
+  else
+    m_P.resize(0);
+
+  ap.resize(size,size);
+  ap.template selfadjointView<Upper>() = a.template selfadjointView<UpLo>().twistedBy(m_P);
+}
+
+namespace internal {
+  
+template<typename Derived, typename Rhs>
+struct solve_retval<SimplicialCholeskyBase<Derived>, Rhs>
+  : solve_retval_base<SimplicialCholeskyBase<Derived>, Rhs>
+{
+  typedef SimplicialCholeskyBase<Derived> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec().derived()._solve(rhs(),dst);
+  }
+};
+
+template<typename Derived, typename Rhs>
+struct sparse_solve_retval<SimplicialCholeskyBase<Derived>, Rhs>
+  : sparse_solve_retval_base<SimplicialCholeskyBase<Derived>, Rhs>
+{
+  typedef SimplicialCholeskyBase<Derived> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    this->defaultEvalTo(dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SIMPLICIAL_CHOLESKY_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h b/vendor/eigen-3.2.8/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
new file mode 100644
index 0000000..7aaf702
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
@@ -0,0 +1,199 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2012 Gael Guennebaud <gael.guennebaud at inria.fr>
+
+/*
+
+NOTE: thes functions vave been adapted from the LDL library:
+
+LDL Copyright (c) 2005 by Timothy A. Davis.  All Rights Reserved.
+
+LDL License:
+
+    Your use or distribution of LDL or any modified version of
+    LDL implies that you agree to this License.
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
+    USA
+
+    Permission is hereby granted to use or copy this program under the
+    terms of the GNU LGPL, provided that the Copyright, this License,
+    and the Availability of the original version is retained on all copies.
+    User documentation of any code that uses this code or any modified
+    version of this code must cite the Copyright, this License, the
+    Availability note, and "Used by permission." Permission to modify
+    the code and to distribute modified code is granted, provided the
+    Copyright, this License, and the Availability note are retained,
+    and a notice that the code was modified is included.
+ */
+
+#include "../Core/util/NonMPL2.h"
+
+#ifndef EIGEN_SIMPLICIAL_CHOLESKY_IMPL_H
+#define EIGEN_SIMPLICIAL_CHOLESKY_IMPL_H
+
+namespace Eigen {
+
+template<typename Derived>
+void SimplicialCholeskyBase<Derived>::analyzePattern_preordered(const CholMatrixType& ap, bool doLDLT)
+{
+  const Index size = ap.rows();
+  m_matrix.resize(size, size);
+  m_parent.resize(size);
+  m_nonZerosPerCol.resize(size);
+
+  ei_declare_aligned_stack_constructed_variable(Index, tags, size, 0);
+
+  for(Index k = 0; k < size; ++k)
+  {
+    /* L(k,:) pattern: all nodes reachable in etree from nz in A(0:k-1,k) */
+    m_parent[k] = -1;             /* parent of k is not yet known */
+    tags[k] = k;                  /* mark node k as visited */
+    m_nonZerosPerCol[k] = 0;      /* count of nonzeros in column k of L */
+    for(typename CholMatrixType::InnerIterator it(ap,k); it; ++it)
+    {
+      Index i = it.index();
+      if(i < k)
+      {
+        /* follow path from i to root of etree, stop at flagged node */
+        for(; tags[i] != k; i = m_parent[i])
+        {
+          /* find parent of i if not yet determined */
+          if (m_parent[i] == -1)
+            m_parent[i] = k;
+          m_nonZerosPerCol[i]++;        /* L (k,i) is nonzero */
+          tags[i] = k;                  /* mark i as visited */
+        }
+      }
+    }
+  }
+
+  /* construct Lp index array from m_nonZerosPerCol column counts */
+  Index* Lp = m_matrix.outerIndexPtr();
+  Lp[0] = 0;
+  for(Index k = 0; k < size; ++k)
+    Lp[k+1] = Lp[k] + m_nonZerosPerCol[k] + (doLDLT ? 0 : 1);
+
+  m_matrix.resizeNonZeros(Lp[size]);
+
+  m_isInitialized     = true;
+  m_info              = Success;
+  m_analysisIsOk      = true;
+  m_factorizationIsOk = false;
+}
+
+
+template<typename Derived>
+template<bool DoLDLT>
+void SimplicialCholeskyBase<Derived>::factorize_preordered(const CholMatrixType& ap)
+{
+  using std::sqrt;
+
+  eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+  eigen_assert(ap.rows()==ap.cols());
+  const Index size = ap.rows();
+  eigen_assert(m_parent.size()==size);
+  eigen_assert(m_nonZerosPerCol.size()==size);
+
+  const Index* Lp = m_matrix.outerIndexPtr();
+  Index* Li = m_matrix.innerIndexPtr();
+  Scalar* Lx = m_matrix.valuePtr();
+
+  ei_declare_aligned_stack_constructed_variable(Scalar, y, size, 0);
+  ei_declare_aligned_stack_constructed_variable(Index,  pattern, size, 0);
+  ei_declare_aligned_stack_constructed_variable(Index,  tags, size, 0);
+
+  bool ok = true;
+  m_diag.resize(DoLDLT ? size : 0);
+
+  for(Index k = 0; k < size; ++k)
+  {
+    // compute nonzero pattern of kth row of L, in topological order
+    y[k] = 0.0;                     // Y(0:k) is now all zero
+    Index top = size;               // stack for pattern is empty
+    tags[k] = k;                    // mark node k as visited
+    m_nonZerosPerCol[k] = 0;        // count of nonzeros in column k of L
+    for(typename MatrixType::InnerIterator it(ap,k); it; ++it)
+    {
+      Index i = it.index();
+      if(i <= k)
+      {
+        y[i] += numext::conj(it.value());            /* scatter A(i,k) into Y (sum duplicates) */
+        Index len;
+        for(len = 0; tags[i] != k; i = m_parent[i])
+        {
+          pattern[len++] = i;     /* L(k,i) is nonzero */
+          tags[i] = k;            /* mark i as visited */
+        }
+        while(len > 0)
+          pattern[--top] = pattern[--len];
+      }
+    }
+
+    /* compute numerical values kth row of L (a sparse triangular solve) */
+
+    RealScalar d = numext::real(y[k]) * m_shiftScale + m_shiftOffset;    // get D(k,k), apply the shift function, and clear Y(k)
+    y[k] = 0.0;
+    for(; top < size; ++top)
+    {
+      Index i = pattern[top];       /* pattern[top:n-1] is pattern of L(:,k) */
+      Scalar yi = y[i];             /* get and clear Y(i) */
+      y[i] = 0.0;
+
+      /* the nonzero entry L(k,i) */
+      Scalar l_ki;
+      if(DoLDLT)
+        l_ki = yi / m_diag[i];
+      else
+        yi = l_ki = yi / Lx[Lp[i]];
+
+      Index p2 = Lp[i] + m_nonZerosPerCol[i];
+      Index p;
+      for(p = Lp[i] + (DoLDLT ? 0 : 1); p < p2; ++p)
+        y[Li[p]] -= numext::conj(Lx[p]) * yi;
+      d -= numext::real(l_ki * numext::conj(yi));
+      Li[p] = k;                          /* store L(k,i) in column form of L */
+      Lx[p] = l_ki;
+      ++m_nonZerosPerCol[i];              /* increment count of nonzeros in col i */
+    }
+    if(DoLDLT)
+    {
+      m_diag[k] = d;
+      if(d == RealScalar(0))
+      {
+        ok = false;                         /* failure, D(k,k) is zero */
+        break;
+      }
+    }
+    else
+    {
+      Index p = Lp[k] + m_nonZerosPerCol[k]++;
+      Li[p] = k ;                /* store L(k,k) = sqrt (d) in column k */
+      if(d <= RealScalar(0)) {
+        ok = false;              /* failure, matrix is not positive definite */
+        break;
+      }
+      Lx[p] = sqrt(d) ;
+    }
+  }
+
+  m_info = ok ? Success : NumericalIssue;
+  m_factorizationIsOk = true;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SIMPLICIAL_CHOLESKY_IMPL_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/AmbiVector.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/AmbiVector.h
new file mode 100644
index 0000000..220c645
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/AmbiVector.h
@@ -0,0 +1,373 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_AMBIVECTOR_H
+#define EIGEN_AMBIVECTOR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \internal
+  * Hybrid sparse/dense vector class designed for intensive read-write operations.
+  *
+  * See BasicSparseLLT and SparseProduct for usage examples.
+  */
+template<typename _Scalar, typename _Index>
+class AmbiVector
+{
+  public:
+    typedef _Scalar Scalar;
+    typedef _Index Index;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    AmbiVector(Index size)
+      : m_buffer(0), m_zero(0), m_size(0), m_allocatedSize(0), m_allocatedElements(0), m_mode(-1)
+    {
+      resize(size);
+    }
+
+    void init(double estimatedDensity);
+    void init(int mode);
+
+    Index nonZeros() const;
+
+    /** Specifies a sub-vector to work on */
+    void setBounds(Index start, Index end) { m_start = start; m_end = end; }
+
+    void setZero();
+
+    void restart();
+    Scalar& coeffRef(Index i);
+    Scalar& coeff(Index i);
+
+    class Iterator;
+
+    ~AmbiVector() { delete[] m_buffer; }
+
+    void resize(Index size)
+    {
+      if (m_allocatedSize < size)
+        reallocate(size);
+      m_size = size;
+    }
+
+    Index size() const { return m_size; }
+
+  protected:
+
+    void reallocate(Index size)
+    {
+      // if the size of the matrix is not too large, let's allocate a bit more than needed such
+      // that we can handle dense vector even in sparse mode.
+      delete[] m_buffer;
+      if (size<1000)
+      {
+        Index allocSize = (size * sizeof(ListEl) + sizeof(Scalar) - 1)/sizeof(Scalar);
+        m_allocatedElements = (allocSize*sizeof(Scalar))/sizeof(ListEl);
+        m_buffer = new Scalar[allocSize];
+      }
+      else
+      {
+        m_allocatedElements = (size*sizeof(Scalar))/sizeof(ListEl);
+        m_buffer = new Scalar[size];
+      }
+      m_size = size;
+      m_start = 0;
+      m_end = m_size;
+    }
+
+    void reallocateSparse()
+    {
+      Index copyElements = m_allocatedElements;
+      m_allocatedElements = (std::min)(Index(m_allocatedElements*1.5),m_size);
+      Index allocSize = m_allocatedElements * sizeof(ListEl);
+      allocSize = (allocSize + sizeof(Scalar) - 1)/sizeof(Scalar);
+      Scalar* newBuffer = new Scalar[allocSize];
+      memcpy(newBuffer,  m_buffer,  copyElements * sizeof(ListEl));
+      delete[] m_buffer;
+      m_buffer = newBuffer;
+    }
+
+  protected:
+    // element type of the linked list
+    struct ListEl
+    {
+      Index next;
+      Index index;
+      Scalar value;
+    };
+
+    // used to store data in both mode
+    Scalar* m_buffer;
+    Scalar m_zero;
+    Index m_size;
+    Index m_start;
+    Index m_end;
+    Index m_allocatedSize;
+    Index m_allocatedElements;
+    Index m_mode;
+
+    // linked list mode
+    Index m_llStart;
+    Index m_llCurrent;
+    Index m_llSize;
+};
+
+/** \returns the number of non zeros in the current sub vector */
+template<typename _Scalar,typename _Index>
+_Index AmbiVector<_Scalar,_Index>::nonZeros() const
+{
+  if (m_mode==IsSparse)
+    return m_llSize;
+  else
+    return m_end - m_start;
+}
+
+template<typename _Scalar,typename _Index>
+void AmbiVector<_Scalar,_Index>::init(double estimatedDensity)
+{
+  if (estimatedDensity>0.1)
+    init(IsDense);
+  else
+    init(IsSparse);
+}
+
+template<typename _Scalar,typename _Index>
+void AmbiVector<_Scalar,_Index>::init(int mode)
+{
+  m_mode = mode;
+  if (m_mode==IsSparse)
+  {
+    m_llSize = 0;
+    m_llStart = -1;
+  }
+}
+
+/** Must be called whenever we might perform a write access
+  * with an index smaller than the previous one.
+  *
+  * Don't worry, this function is extremely cheap.
+  */
+template<typename _Scalar,typename _Index>
+void AmbiVector<_Scalar,_Index>::restart()
+{
+  m_llCurrent = m_llStart;
+}
+
+/** Set all coefficients of current subvector to zero */
+template<typename _Scalar,typename _Index>
+void AmbiVector<_Scalar,_Index>::setZero()
+{
+  if (m_mode==IsDense)
+  {
+    for (Index i=m_start; i<m_end; ++i)
+      m_buffer[i] = Scalar(0);
+  }
+  else
+  {
+    eigen_assert(m_mode==IsSparse);
+    m_llSize = 0;
+    m_llStart = -1;
+  }
+}
+
+template<typename _Scalar,typename _Index>
+_Scalar& AmbiVector<_Scalar,_Index>::coeffRef(_Index i)
+{
+  if (m_mode==IsDense)
+    return m_buffer[i];
+  else
+  {
+    ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_buffer);
+    // TODO factorize the following code to reduce code generation
+    eigen_assert(m_mode==IsSparse);
+    if (m_llSize==0)
+    {
+      // this is the first element
+      m_llStart = 0;
+      m_llCurrent = 0;
+      ++m_llSize;
+      llElements[0].value = Scalar(0);
+      llElements[0].index = i;
+      llElements[0].next = -1;
+      return llElements[0].value;
+    }
+    else if (i<llElements[m_llStart].index)
+    {
+      // this is going to be the new first element of the list
+      ListEl& el = llElements[m_llSize];
+      el.value = Scalar(0);
+      el.index = i;
+      el.next = m_llStart;
+      m_llStart = m_llSize;
+      ++m_llSize;
+      m_llCurrent = m_llStart;
+      return el.value;
+    }
+    else
+    {
+      Index nextel = llElements[m_llCurrent].next;
+      eigen_assert(i>=llElements[m_llCurrent].index && "you must call restart() before inserting an element with lower or equal index");
+      while (nextel >= 0 && llElements[nextel].index<=i)
+      {
+        m_llCurrent = nextel;
+        nextel = llElements[nextel].next;
+      }
+
+      if (llElements[m_llCurrent].index==i)
+      {
+        // the coefficient already exists and we found it !
+        return llElements[m_llCurrent].value;
+      }
+      else
+      {
+        if (m_llSize>=m_allocatedElements)
+        {
+          reallocateSparse();
+          llElements = reinterpret_cast<ListEl*>(m_buffer);
+        }
+        eigen_internal_assert(m_llSize<m_allocatedElements && "internal error: overflow in sparse mode");
+        // let's insert a new coefficient
+        ListEl& el = llElements[m_llSize];
+        el.value = Scalar(0);
+        el.index = i;
+        el.next = llElements[m_llCurrent].next;
+        llElements[m_llCurrent].next = m_llSize;
+        ++m_llSize;
+        return el.value;
+      }
+    }
+  }
+}
+
+template<typename _Scalar,typename _Index>
+_Scalar& AmbiVector<_Scalar,_Index>::coeff(_Index i)
+{
+  if (m_mode==IsDense)
+    return m_buffer[i];
+  else
+  {
+    ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_buffer);
+    eigen_assert(m_mode==IsSparse);
+    if ((m_llSize==0) || (i<llElements[m_llStart].index))
+    {
+      return m_zero;
+    }
+    else
+    {
+      Index elid = m_llStart;
+      while (elid >= 0 && llElements[elid].index<i)
+        elid = llElements[elid].next;
+
+      if (llElements[elid].index==i)
+        return llElements[m_llCurrent].value;
+      else
+        return m_zero;
+    }
+  }
+}
+
+/** Iterator over the nonzero coefficients */
+template<typename _Scalar,typename _Index>
+class AmbiVector<_Scalar,_Index>::Iterator
+{
+  public:
+    typedef _Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    /** Default constructor
+      * \param vec the vector on which we iterate
+      * \param epsilon the minimal value used to prune zero coefficients.
+      * In practice, all coefficients having a magnitude smaller than \a epsilon
+      * are skipped.
+      */
+    Iterator(const AmbiVector& vec, const RealScalar& epsilon = 0)
+      : m_vector(vec)
+    {
+      using std::abs;
+      m_epsilon = epsilon;
+      m_isDense = m_vector.m_mode==IsDense;
+      if (m_isDense)
+      {
+        m_currentEl = 0;   // this is to avoid a compilation warning
+        m_cachedValue = 0; // this is to avoid a compilation warning
+        m_cachedIndex = m_vector.m_start-1;
+        ++(*this);
+      }
+      else
+      {
+        ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_vector.m_buffer);
+        m_currentEl = m_vector.m_llStart;
+        while (m_currentEl>=0 && abs(llElements[m_currentEl].value)<=m_epsilon)
+          m_currentEl = llElements[m_currentEl].next;
+        if (m_currentEl<0)
+        {
+          m_cachedValue = 0; // this is to avoid a compilation warning
+          m_cachedIndex = -1;
+        }
+        else
+        {
+          m_cachedIndex = llElements[m_currentEl].index;
+          m_cachedValue = llElements[m_currentEl].value;
+        }
+      }
+    }
+
+    Index index() const { return m_cachedIndex; }
+    Scalar value() const { return m_cachedValue; }
+
+    operator bool() const { return m_cachedIndex>=0; }
+
+    Iterator& operator++()
+    {
+      using std::abs;
+      if (m_isDense)
+      {
+        do {
+          ++m_cachedIndex;
+        } while (m_cachedIndex<m_vector.m_end && abs(m_vector.m_buffer[m_cachedIndex])<m_epsilon);
+        if (m_cachedIndex<m_vector.m_end)
+          m_cachedValue = m_vector.m_buffer[m_cachedIndex];
+        else
+          m_cachedIndex=-1;
+      }
+      else
+      {
+        ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_vector.m_buffer);
+        do {
+          m_currentEl = llElements[m_currentEl].next;
+        } while (m_currentEl>=0 && abs(llElements[m_currentEl].value)<m_epsilon);
+        if (m_currentEl<0)
+        {
+          m_cachedIndex = -1;
+        }
+        else
+        {
+          m_cachedIndex = llElements[m_currentEl].index;
+          m_cachedValue = llElements[m_currentEl].value;
+        }
+      }
+      return *this;
+    }
+
+  protected:
+    const AmbiVector& m_vector; // the target vector
+    Index m_currentEl;            // the current element in sparse/linked-list mode
+    RealScalar m_epsilon;       // epsilon used to prune zero coefficients
+    Index m_cachedIndex;          // current coordinate
+    Scalar m_cachedValue;       // current value
+    bool m_isDense;             // mode of the vector
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_AMBIVECTOR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/SparseCore/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SparseCore/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/SparseCore/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/CompressedStorage.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/CompressedStorage.h
new file mode 100644
index 0000000..a667cb5
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/CompressedStorage.h
@@ -0,0 +1,233 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPRESSED_STORAGE_H
+#define EIGEN_COMPRESSED_STORAGE_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \internal
+  * Stores a sparse set of values as a list of values and a list of indices.
+  *
+  */
+template<typename _Scalar,typename _Index>
+class CompressedStorage
+{
+  public:
+
+    typedef _Scalar Scalar;
+    typedef _Index Index;
+
+  protected:
+
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+  public:
+
+    CompressedStorage()
+      : m_values(0), m_indices(0), m_size(0), m_allocatedSize(0)
+    {}
+
+    CompressedStorage(size_t size)
+      : m_values(0), m_indices(0), m_size(0), m_allocatedSize(0)
+    {
+      resize(size);
+    }
+
+    CompressedStorage(const CompressedStorage& other)
+      : m_values(0), m_indices(0), m_size(0), m_allocatedSize(0)
+    {
+      *this = other;
+    }
+
+    CompressedStorage& operator=(const CompressedStorage& other)
+    {
+      resize(other.size());
+      internal::smart_copy(other.m_values,  other.m_values  + m_size, m_values);
+      internal::smart_copy(other.m_indices, other.m_indices + m_size, m_indices);
+      return *this;
+    }
+
+    void swap(CompressedStorage& other)
+    {
+      std::swap(m_values, other.m_values);
+      std::swap(m_indices, other.m_indices);
+      std::swap(m_size, other.m_size);
+      std::swap(m_allocatedSize, other.m_allocatedSize);
+    }
+
+    ~CompressedStorage()
+    {
+      delete[] m_values;
+      delete[] m_indices;
+    }
+
+    void reserve(size_t size)
+    {
+      size_t newAllocatedSize = m_size + size;
+      if (newAllocatedSize > m_allocatedSize)
+        reallocate(newAllocatedSize);
+    }
+
+    void squeeze()
+    {
+      if (m_allocatedSize>m_size)
+        reallocate(m_size);
+    }
+
+    void resize(size_t size, double reserveSizeFactor = 0)
+    {
+      if (m_allocatedSize<size)
+        reallocate(size + size_t(reserveSizeFactor*double(size)));
+      m_size = size;
+    }
+
+    void append(const Scalar& v, Index i)
+    {
+      Index id = static_cast<Index>(m_size);
+      resize(m_size+1, 1);
+      m_values[id] = v;
+      m_indices[id] = i;
+    }
+
+    inline size_t size() const { return m_size; }
+    inline size_t allocatedSize() const { return m_allocatedSize; }
+    inline void clear() { m_size = 0; }
+
+    inline Scalar& value(size_t i) { return m_values[i]; }
+    inline const Scalar& value(size_t i) const { return m_values[i]; }
+
+    inline Index& index(size_t i) { return m_indices[i]; }
+    inline const Index& index(size_t i) const { return m_indices[i]; }
+
+    static CompressedStorage Map(Index* indices, Scalar* values, size_t size)
+    {
+      CompressedStorage res;
+      res.m_indices = indices;
+      res.m_values = values;
+      res.m_allocatedSize = res.m_size = size;
+      return res;
+    }
+
+    /** \returns the largest \c k such that for all \c j in [0,k) index[\c j]\<\a key */
+    inline Index searchLowerIndex(Index key) const
+    {
+      return searchLowerIndex(0, m_size, key);
+    }
+
+    /** \returns the largest \c k in [start,end) such that for all \c j in [start,k) index[\c j]\<\a key */
+    inline Index searchLowerIndex(size_t start, size_t end, Index key) const
+    {
+      while(end>start)
+      {
+        size_t mid = (end+start)>>1;
+        if (m_indices[mid]<key)
+          start = mid+1;
+        else
+          end = mid;
+      }
+      return static_cast<Index>(start);
+    }
+
+    /** \returns the stored value at index \a key
+      * If the value does not exist, then the value \a defaultValue is returned without any insertion. */
+    inline Scalar at(Index key, const Scalar& defaultValue = Scalar(0)) const
+    {
+      if (m_size==0)
+        return defaultValue;
+      else if (key==m_indices[m_size-1])
+        return m_values[m_size-1];
+      // ^^  optimization: let's first check if it is the last coefficient
+      // (very common in high level algorithms)
+      const size_t id = searchLowerIndex(0,m_size-1,key);
+      return ((id<m_size) && (m_indices[id]==key)) ? m_values[id] : defaultValue;
+    }
+
+    /** Like at(), but the search is performed in the range [start,end) */
+    inline Scalar atInRange(size_t start, size_t end, Index key, const Scalar& defaultValue = Scalar(0)) const
+    {
+      if (start>=end)
+        return Scalar(0);
+      else if (end>start && key==m_indices[end-1])
+        return m_values[end-1];
+      // ^^  optimization: let's first check if it is the last coefficient
+      // (very common in high level algorithms)
+      const size_t id = searchLowerIndex(start,end-1,key);
+      return ((id<end) && (m_indices[id]==key)) ? m_values[id] : defaultValue;
+    }
+
+    /** \returns a reference to the value at index \a key
+      * If the value does not exist, then the value \a defaultValue is inserted
+      * such that the keys are sorted. */
+    inline Scalar& atWithInsertion(Index key, const Scalar& defaultValue = Scalar(0))
+    {
+      size_t id = searchLowerIndex(0,m_size,key);
+      if (id>=m_size || m_indices[id]!=key)
+      {
+        resize(m_size+1,1);
+        for (size_t j=m_size-1; j>id; --j)
+        {
+          m_indices[j] = m_indices[j-1];
+          m_values[j] = m_values[j-1];
+        }
+        m_indices[id] = key;
+        m_values[id] = defaultValue;
+      }
+      return m_values[id];
+    }
+
+    void prune(const Scalar& reference, const RealScalar& epsilon = NumTraits<RealScalar>::dummy_precision())
+    {
+      size_t k = 0;
+      size_t n = size();
+      for (size_t i=0; i<n; ++i)
+      {
+        if (!internal::isMuchSmallerThan(value(i), reference, epsilon))
+        {
+          value(k) = value(i);
+          index(k) = index(i);
+          ++k;
+        }
+      }
+      resize(k,0);
+    }
+
+  protected:
+
+    inline void reallocate(size_t size)
+    {
+      Scalar* newValues  = new Scalar[size];
+      Index* newIndices = new Index[size];
+      size_t copySize = (std::min)(size, m_size);
+      // copy
+      internal::smart_copy(m_values, m_values+copySize, newValues);
+      internal::smart_copy(m_indices, m_indices+copySize, newIndices);
+      // delete old stuff
+      delete[] m_values;
+      delete[] m_indices;
+      m_values = newValues;
+      m_indices = newIndices;
+      m_allocatedSize = size;
+    }
+
+  protected:
+    Scalar* m_values;
+    Index* m_indices;
+    size_t m_size;
+    size_t m_allocatedSize;
+
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPRESSED_STORAGE_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
new file mode 100644
index 0000000..5c320e2
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
@@ -0,0 +1,245 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CONSERVATIVESPARSESPARSEPRODUCT_H
+#define EIGEN_CONSERVATIVESPARSESPARSEPRODUCT_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, typename ResultType>
+static void conservative_sparse_sparse_product_impl(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+{
+  typedef typename remove_all<Lhs>::type::Scalar Scalar;
+  typedef typename remove_all<Lhs>::type::Index Index;
+
+  // make sure to call innerSize/outerSize since we fake the storage order.
+  Index rows = lhs.innerSize();
+  Index cols = rhs.outerSize();
+  eigen_assert(lhs.outerSize() == rhs.innerSize());
+
+  std::vector<bool> mask(rows,false);
+  Matrix<Scalar,Dynamic,1> values(rows);
+  Matrix<Index,Dynamic,1>  indices(rows);
+
+  // estimate the number of non zero entries
+  // given a rhs column containing Y non zeros, we assume that the respective Y columns
+  // of the lhs differs in average of one non zeros, thus the number of non zeros for
+  // the product of a rhs column with the lhs is X+Y where X is the average number of non zero
+  // per column of the lhs.
+  // Therefore, we have nnz(lhs*rhs) = nnz(lhs) + nnz(rhs)
+  Index estimated_nnz_prod = lhs.nonZeros() + rhs.nonZeros();
+
+  res.setZero();
+  res.reserve(Index(estimated_nnz_prod));
+  // we compute each column of the result, one after the other
+  for (Index j=0; j<cols; ++j)
+  {
+
+    res.startVec(j);
+    Index nnz = 0;
+    for (typename Rhs::InnerIterator rhsIt(rhs, j); rhsIt; ++rhsIt)
+    {
+      Scalar y = rhsIt.value();
+      Index k = rhsIt.index();
+      for (typename Lhs::InnerIterator lhsIt(lhs, k); lhsIt; ++lhsIt)
+      {
+        Index i = lhsIt.index();
+        Scalar x = lhsIt.value();
+        if(!mask[i])
+        {
+          mask[i] = true;
+          values[i] = x * y;
+          indices[nnz] = i;
+          ++nnz;
+        }
+        else
+          values[i] += x * y;
+      }
+    }
+
+    // unordered insertion
+    for(Index k=0; k<nnz; ++k)
+    {
+      Index i = indices[k];
+      res.insertBackByOuterInnerUnordered(j,i) = values[i];
+      mask[i] = false;
+    }
+
+#if 0
+    // alternative ordered insertion code:
+
+    Index t200 = rows/(log2(200)*1.39);
+    Index t = (rows*100)/139;
+
+    // FIXME reserve nnz non zeros
+    // FIXME implement fast sort algorithms for very small nnz
+    // if the result is sparse enough => use a quick sort
+    // otherwise => loop through the entire vector
+    // In order to avoid to perform an expensive log2 when the
+    // result is clearly very sparse we use a linear bound up to 200.
+    //if((nnz<200 && nnz<t200) || nnz * log2(nnz) < t)
+    //res.startVec(j);
+    if(true)
+    {
+      if(nnz>1) std::sort(indices.data(),indices.data()+nnz);
+      for(Index k=0; k<nnz; ++k)
+      {
+        Index i = indices[k];
+        res.insertBackByOuterInner(j,i) = values[i];
+        mask[i] = false;
+      }
+    }
+    else
+    {
+      // dense path
+      for(Index i=0; i<rows; ++i)
+      {
+        if(mask[i])
+        {
+          mask[i] = false;
+          res.insertBackByOuterInner(j,i) = values[i];
+        }
+      }
+    }
+#endif
+
+  }
+  res.finalize();
+}
+
+
+} // end namespace internal
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, typename ResultType,
+  int LhsStorageOrder = (traits<Lhs>::Flags&RowMajorBit) ? RowMajor : ColMajor,
+  int RhsStorageOrder = (traits<Rhs>::Flags&RowMajorBit) ? RowMajor : ColMajor,
+  int ResStorageOrder = (traits<ResultType>::Flags&RowMajorBit) ? RowMajor : ColMajor>
+struct conservative_sparse_sparse_product_selector;
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,ColMajor>
+{
+  typedef typename remove_all<Lhs>::type LhsCleaned;
+  typedef typename LhsCleaned::Scalar Scalar;
+
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename ResultType::Index> RowMajorMatrix;
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::Index> ColMajorMatrix;
+    ColMajorMatrix resCol(lhs.rows(),rhs.cols());
+    internal::conservative_sparse_sparse_product_impl<Lhs,Rhs,ColMajorMatrix>(lhs, rhs, resCol);
+    // sort the non zeros:
+    RowMajorMatrix resRow(resCol);
+    res = resRow;
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,ColMajor,ColMajor>
+{
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+     typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename ResultType::Index> RowMajorMatrix;
+     RowMajorMatrix rhsRow = rhs;
+     RowMajorMatrix resRow(lhs.rows(), rhs.cols());
+     internal::conservative_sparse_sparse_product_impl<RowMajorMatrix,Lhs,RowMajorMatrix>(rhsRow, lhs, resRow);
+     res = resRow;
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,RowMajor,ColMajor>
+{
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename ResultType::Index> RowMajorMatrix;
+    RowMajorMatrix lhsRow = lhs;
+    RowMajorMatrix resRow(lhs.rows(), rhs.cols());
+    internal::conservative_sparse_sparse_product_impl<Rhs,RowMajorMatrix,RowMajorMatrix>(rhs, lhsRow, resRow);
+    res = resRow;
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,ColMajor>
+{
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename ResultType::Index> RowMajorMatrix;
+    RowMajorMatrix resRow(lhs.rows(), rhs.cols());
+    internal::conservative_sparse_sparse_product_impl<Rhs,Lhs,RowMajorMatrix>(rhs, lhs, resRow);
+    res = resRow;
+  }
+};
+
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,RowMajor>
+{
+  typedef typename traits<typename remove_all<Lhs>::type>::Scalar Scalar;
+
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::Index> ColMajorMatrix;
+    ColMajorMatrix resCol(lhs.rows(), rhs.cols());
+    internal::conservative_sparse_sparse_product_impl<Lhs,Rhs,ColMajorMatrix>(lhs, rhs, resCol);
+    res = resCol;
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,ColMajor,RowMajor>
+{
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::Index> ColMajorMatrix;
+    ColMajorMatrix lhsCol = lhs;
+    ColMajorMatrix resCol(lhs.rows(), rhs.cols());
+    internal::conservative_sparse_sparse_product_impl<ColMajorMatrix,Rhs,ColMajorMatrix>(lhsCol, rhs, resCol);
+    res = resCol;
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,RowMajor,RowMajor>
+{
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::Index> ColMajorMatrix;
+    ColMajorMatrix rhsCol = rhs;
+    ColMajorMatrix resCol(lhs.rows(), rhs.cols());
+    internal::conservative_sparse_sparse_product_impl<Lhs,ColMajorMatrix,ColMajorMatrix>(lhs, rhsCol, resCol);
+    res = resCol;
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,RowMajor>
+{
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename ResultType::Index> RowMajorMatrix;
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::Index> ColMajorMatrix;
+    RowMajorMatrix resRow(lhs.rows(),rhs.cols());
+    internal::conservative_sparse_sparse_product_impl<Rhs,Lhs,RowMajorMatrix>(rhs, lhs, resRow);
+    // sort the non zeros:
+    ColMajorMatrix resCol(resRow);
+    res = resCol;
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_CONSERVATIVESPARSESPARSEPRODUCT_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/MappedSparseMatrix.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/MappedSparseMatrix.h
new file mode 100644
index 0000000..ab1a266
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/MappedSparseMatrix.h
@@ -0,0 +1,181 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MAPPED_SPARSEMATRIX_H
+#define EIGEN_MAPPED_SPARSEMATRIX_H
+
+namespace Eigen { 
+
+/** \class MappedSparseMatrix
+  *
+  * \brief Sparse matrix
+  *
+  * \param _Scalar the scalar type, i.e. the type of the coefficients
+  *
+  * See http://www.netlib.org/linalg/html_templates/node91.html for details on the storage scheme.
+  *
+  */
+namespace internal {
+template<typename _Scalar, int _Flags, typename _Index>
+struct traits<MappedSparseMatrix<_Scalar, _Flags, _Index> > : traits<SparseMatrix<_Scalar, _Flags, _Index> >
+{};
+}
+
+template<typename _Scalar, int _Flags, typename _Index>
+class MappedSparseMatrix
+  : public SparseMatrixBase<MappedSparseMatrix<_Scalar, _Flags, _Index> >
+{
+  public:
+    EIGEN_SPARSE_PUBLIC_INTERFACE(MappedSparseMatrix)
+    enum { IsRowMajor = Base::IsRowMajor };
+
+  protected:
+
+    Index   m_outerSize;
+    Index   m_innerSize;
+    Index   m_nnz;
+    Index*  m_outerIndex;
+    Index*  m_innerIndices;
+    Scalar* m_values;
+
+  public:
+
+    inline Index rows() const { return IsRowMajor ? m_outerSize : m_innerSize; }
+    inline Index cols() const { return IsRowMajor ? m_innerSize : m_outerSize; }
+    inline Index innerSize() const { return m_innerSize; }
+    inline Index outerSize() const { return m_outerSize; }
+    
+    bool isCompressed() const { return true; }
+
+    //----------------------------------------
+    // direct access interface
+    inline const Scalar* valuePtr() const { return m_values; }
+    inline Scalar* valuePtr() { return m_values; }
+
+    inline const Index* innerIndexPtr() const { return m_innerIndices; }
+    inline Index* innerIndexPtr() { return m_innerIndices; }
+
+    inline const Index* outerIndexPtr() const { return m_outerIndex; }
+    inline Index* outerIndexPtr() { return m_outerIndex; }
+    //----------------------------------------
+
+    inline Scalar coeff(Index row, Index col) const
+    {
+      const Index outer = IsRowMajor ? row : col;
+      const Index inner = IsRowMajor ? col : row;
+
+      Index start = m_outerIndex[outer];
+      Index end = m_outerIndex[outer+1];
+      if (start==end)
+        return Scalar(0);
+      else if (end>0 && inner==m_innerIndices[end-1])
+        return m_values[end-1];
+      // ^^  optimization: let's first check if it is the last coefficient
+      // (very common in high level algorithms)
+
+      const Index* r = std::lower_bound(&m_innerIndices[start],&m_innerIndices[end-1],inner);
+      const Index id = r-&m_innerIndices[0];
+      return ((*r==inner) && (id<end)) ? m_values[id] : Scalar(0);
+    }
+
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      const Index outer = IsRowMajor ? row : col;
+      const Index inner = IsRowMajor ? col : row;
+
+      Index start = m_outerIndex[outer];
+      Index end = m_outerIndex[outer+1];
+      eigen_assert(end>=start && "you probably called coeffRef on a non finalized matrix");
+      eigen_assert(end>start && "coeffRef cannot be called on a zero coefficient");
+      Index* r = std::lower_bound(&m_innerIndices[start],&m_innerIndices[end],inner);
+      const Index id = r-&m_innerIndices[0];
+      eigen_assert((*r==inner) && (id<end) && "coeffRef cannot be called on a zero coefficient");
+      return m_values[id];
+    }
+
+    class InnerIterator;
+    class ReverseInnerIterator;
+
+    /** \returns the number of non zero coefficients */
+    inline Index nonZeros() const  { return m_nnz; }
+
+    inline MappedSparseMatrix(Index rows, Index cols, Index nnz, Index* outerIndexPtr, Index* innerIndexPtr, Scalar* valuePtr)
+      : m_outerSize(IsRowMajor?rows:cols), m_innerSize(IsRowMajor?cols:rows), m_nnz(nnz), m_outerIndex(outerIndexPtr),
+        m_innerIndices(innerIndexPtr), m_values(valuePtr)
+    {}
+
+    /** Empty destructor */
+    inline ~MappedSparseMatrix() {}
+};
+
+template<typename Scalar, int _Flags, typename _Index>
+class MappedSparseMatrix<Scalar,_Flags,_Index>::InnerIterator
+{
+  public:
+    InnerIterator(const MappedSparseMatrix& mat, Index outer)
+      : m_matrix(mat),
+        m_outer(outer),
+        m_id(mat.outerIndexPtr()[outer]),
+        m_start(m_id),
+        m_end(mat.outerIndexPtr()[outer+1])
+    {}
+
+    inline InnerIterator& operator++() { m_id++; return *this; }
+
+    inline Scalar value() const { return m_matrix.valuePtr()[m_id]; }
+    inline Scalar& valueRef() { return const_cast<Scalar&>(m_matrix.valuePtr()[m_id]); }
+
+    inline Index index() const { return m_matrix.innerIndexPtr()[m_id]; }
+    inline Index row() const { return IsRowMajor ? m_outer : index(); }
+    inline Index col() const { return IsRowMajor ? index() : m_outer; }
+
+    inline operator bool() const { return (m_id < m_end) && (m_id>=m_start); }
+
+  protected:
+    const MappedSparseMatrix& m_matrix;
+    const Index m_outer;
+    Index m_id;
+    const Index m_start;
+    const Index m_end;
+};
+
+template<typename Scalar, int _Flags, typename _Index>
+class MappedSparseMatrix<Scalar,_Flags,_Index>::ReverseInnerIterator
+{
+  public:
+    ReverseInnerIterator(const MappedSparseMatrix& mat, Index outer)
+      : m_matrix(mat),
+        m_outer(outer),
+        m_id(mat.outerIndexPtr()[outer+1]),
+        m_start(mat.outerIndexPtr()[outer]),
+        m_end(m_id)
+    {}
+
+    inline ReverseInnerIterator& operator--() { m_id--; return *this; }
+
+    inline Scalar value() const { return m_matrix.valuePtr()[m_id-1]; }
+    inline Scalar& valueRef() { return const_cast<Scalar&>(m_matrix.valuePtr()[m_id-1]); }
+
+    inline Index index() const { return m_matrix.innerIndexPtr()[m_id-1]; }
+    inline Index row() const { return IsRowMajor ? m_outer : index(); }
+    inline Index col() const { return IsRowMajor ? index() : m_outer; }
+
+    inline operator bool() const { return (m_id <= m_end) && (m_id>m_start); }
+
+  protected:
+    const MappedSparseMatrix& m_matrix;
+    const Index m_outer;
+    Index m_id;
+    const Index m_start;
+    const Index m_end;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_MAPPED_SPARSEMATRIX_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseBlock.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseBlock.h
new file mode 100644
index 0000000..4f49835
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseBlock.h
@@ -0,0 +1,539 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_BLOCK_H
+#define EIGEN_SPARSE_BLOCK_H
+
+namespace Eigen { 
+
+template<typename XprType, int BlockRows, int BlockCols>
+class BlockImpl<XprType,BlockRows,BlockCols,true,Sparse>
+  : public SparseMatrixBase<Block<XprType,BlockRows,BlockCols,true> >
+{
+    typedef typename internal::remove_all<typename XprType::Nested>::type _MatrixTypeNested;
+    typedef Block<XprType, BlockRows, BlockCols, true> BlockType;
+public:
+    enum { IsRowMajor = internal::traits<BlockType>::IsRowMajor };
+protected:
+    enum { OuterSize = IsRowMajor ? BlockRows : BlockCols };
+public:
+    EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType)
+    
+    class InnerIterator: public XprType::InnerIterator
+    {
+        typedef typename BlockImpl::Index Index;
+      public:
+        inline InnerIterator(const BlockType& xpr, Index outer)
+          : XprType::InnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
+        {}
+        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
+        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
+      protected:
+        Index m_outer;
+    };
+    class ReverseInnerIterator: public XprType::ReverseInnerIterator
+    {
+        typedef typename BlockImpl::Index Index;
+      public:
+        inline ReverseInnerIterator(const BlockType& xpr, Index outer)
+          : XprType::ReverseInnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
+        {}
+        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
+        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
+      protected:
+        Index m_outer;
+    };
+
+    inline BlockImpl(const XprType& xpr, int i)
+      : m_matrix(xpr), m_outerStart(i), m_outerSize(OuterSize)
+    {}
+
+    inline BlockImpl(const XprType& xpr, int startRow, int startCol, int blockRows, int blockCols)
+      : m_matrix(xpr), m_outerStart(IsRowMajor ? startRow : startCol), m_outerSize(IsRowMajor ? blockRows : blockCols)
+    {}
+    
+    inline const Scalar coeff(int row, int col) const
+    {
+      return m_matrix.coeff(row + IsRowMajor ? m_outerStart : 0, col +IsRowMajor ? 0 :  m_outerStart);
+    }
+    
+    inline const Scalar coeff(int index) const
+    {
+      return m_matrix.coeff(IsRowMajor ? m_outerStart : index, IsRowMajor ? index :  m_outerStart);
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); }
+
+  protected:
+
+    typename XprType::Nested m_matrix;
+    Index m_outerStart;
+    const internal::variable_if_dynamic<Index, OuterSize> m_outerSize;
+
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl)
+  private:
+    Index nonZeros() const;
+};
+
+
+/***************************************************************************
+* specialisation for SparseMatrix
+***************************************************************************/
+
+template<typename _Scalar, int _Options, typename _Index, int BlockRows, int BlockCols>
+class BlockImpl<SparseMatrix<_Scalar, _Options, _Index>,BlockRows,BlockCols,true,Sparse>
+  : public SparseMatrixBase<Block<SparseMatrix<_Scalar, _Options, _Index>,BlockRows,BlockCols,true> >
+{
+    typedef SparseMatrix<_Scalar, _Options, _Index> SparseMatrixType;
+    typedef typename internal::remove_all<typename SparseMatrixType::Nested>::type _MatrixTypeNested;
+    typedef Block<SparseMatrixType, BlockRows, BlockCols, true> BlockType;
+    typedef Block<const SparseMatrixType, BlockRows, BlockCols, true> ConstBlockType;
+public:
+    enum { IsRowMajor = internal::traits<BlockType>::IsRowMajor };
+    EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType)
+protected:
+    enum { OuterSize = IsRowMajor ? BlockRows : BlockCols };
+public:
+    
+    class InnerIterator: public SparseMatrixType::InnerIterator
+    {
+      public:
+        inline InnerIterator(const BlockType& xpr, Index outer)
+          : SparseMatrixType::InnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
+        {}
+        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
+        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
+      protected:
+        Index m_outer;
+    };
+    class ReverseInnerIterator: public SparseMatrixType::ReverseInnerIterator
+    {
+      public:
+        inline ReverseInnerIterator(const BlockType& xpr, Index outer)
+          : SparseMatrixType::ReverseInnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
+        {}
+        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
+        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
+      protected:
+        Index m_outer;
+    };
+
+    inline BlockImpl(const SparseMatrixType& xpr, int i)
+      : m_matrix(xpr), m_outerStart(i), m_outerSize(OuterSize)
+    {}
+
+    inline BlockImpl(const SparseMatrixType& xpr, int startRow, int startCol, int blockRows, int blockCols)
+      : m_matrix(xpr), m_outerStart(IsRowMajor ? startRow : startCol), m_outerSize(IsRowMajor ? blockRows : blockCols)
+    {}
+
+    template<typename OtherDerived>
+    inline BlockType& operator=(const SparseMatrixBase<OtherDerived>& other)
+    {
+      typedef typename internal::remove_all<typename SparseMatrixType::Nested>::type _NestedMatrixType;
+      _NestedMatrixType& matrix = const_cast<_NestedMatrixType&>(m_matrix);;
+      // This assignement is slow if this vector set is not empty
+      // and/or it is not at the end of the nonzeros of the underlying matrix.
+
+      // 1 - eval to a temporary to avoid transposition and/or aliasing issues
+      SparseMatrix<Scalar, IsRowMajor ? RowMajor : ColMajor, Index> tmp(other);
+
+      // 2 - let's check whether there is enough allocated memory
+      Index nnz           = tmp.nonZeros();
+      Index start         = m_outerStart==0 ? 0 : matrix.outerIndexPtr()[m_outerStart]; // starting position of the current block
+      Index end           = m_matrix.outerIndexPtr()[m_outerStart+m_outerSize.value()]; // ending posiiton of the current block
+      Index block_size    = end - start;                                                // available room in the current block
+      Index tail_size     = m_matrix.outerIndexPtr()[m_matrix.outerSize()] - end;
+      
+      Index free_size     = m_matrix.isCompressed()
+                          ? Index(matrix.data().allocatedSize()) + block_size
+                          : block_size;
+
+      if(nnz>free_size) 
+      {
+        // realloc manually to reduce copies
+        typename SparseMatrixType::Storage newdata(m_matrix.data().allocatedSize() - block_size + nnz);
+
+        std::memcpy(&newdata.value(0), &m_matrix.data().value(0), start*sizeof(Scalar));
+        std::memcpy(&newdata.index(0), &m_matrix.data().index(0), start*sizeof(Index));
+
+        std::memcpy(&newdata.value(start), &tmp.data().value(0), nnz*sizeof(Scalar));
+        std::memcpy(&newdata.index(start), &tmp.data().index(0), nnz*sizeof(Index));
+
+        std::memcpy(&newdata.value(start+nnz), &matrix.data().value(end), tail_size*sizeof(Scalar));
+        std::memcpy(&newdata.index(start+nnz), &matrix.data().index(end), tail_size*sizeof(Index));
+        
+        newdata.resize(m_matrix.outerIndexPtr()[m_matrix.outerSize()] - block_size + nnz);
+
+        matrix.data().swap(newdata);
+      }
+      else
+      {
+        // no need to realloc, simply copy the tail at its respective position and insert tmp
+        matrix.data().resize(start + nnz + tail_size);
+
+        std::memmove(&matrix.data().value(start+nnz), &matrix.data().value(end), tail_size*sizeof(Scalar));
+        std::memmove(&matrix.data().index(start+nnz), &matrix.data().index(end), tail_size*sizeof(Index));
+
+        std::memcpy(&matrix.data().value(start), &tmp.data().value(0), nnz*sizeof(Scalar));
+        std::memcpy(&matrix.data().index(start), &tmp.data().index(0), nnz*sizeof(Index));
+      }
+      
+      // update innerNonZeros
+      if(!m_matrix.isCompressed())
+        for(Index j=0; j<m_outerSize.value(); ++j)
+          matrix.innerNonZeroPtr()[m_outerStart+j] = tmp.innerVector(j).nonZeros();
+
+      // update outer index pointers
+      Index p = start;
+      for(Index k=0; k<m_outerSize.value(); ++k)
+      {
+        matrix.outerIndexPtr()[m_outerStart+k] = p;
+        p += tmp.innerVector(k).nonZeros();
+      }
+      std::ptrdiff_t offset = nnz - block_size;
+      for(Index k = m_outerStart + m_outerSize.value(); k<=matrix.outerSize(); ++k)
+      {
+        matrix.outerIndexPtr()[k] += offset;
+      }
+
+      return derived();
+    }
+
+    inline BlockType& operator=(const BlockType& other)
+    {
+      return operator=<BlockType>(other);
+    }
+
+    inline const Scalar* valuePtr() const
+    { return m_matrix.valuePtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
+    inline Scalar* valuePtr()
+    { return m_matrix.const_cast_derived().valuePtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
+
+    inline const Index* innerIndexPtr() const
+    { return m_matrix.innerIndexPtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
+    inline Index* innerIndexPtr()
+    { return m_matrix.const_cast_derived().innerIndexPtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
+
+    inline const Index* outerIndexPtr() const
+    { return m_matrix.outerIndexPtr() + m_outerStart; }
+    inline Index* outerIndexPtr()
+    { return m_matrix.const_cast_derived().outerIndexPtr() + m_outerStart; }
+
+    Index nonZeros() const
+    {
+      if(m_matrix.isCompressed())
+        return  std::size_t(m_matrix.outerIndexPtr()[m_outerStart+m_outerSize.value()])
+              - std::size_t(m_matrix.outerIndexPtr()[m_outerStart]);
+      else if(m_outerSize.value()==0)
+        return 0;
+      else
+        return Map<const Matrix<Index,OuterSize,1> >(m_matrix.innerNonZeroPtr()+m_outerStart, m_outerSize.value()).sum();
+    }
+    
+    inline Scalar& coeffRef(int row, int col)
+    {
+      return m_matrix.const_cast_derived().coeffRef(row + (IsRowMajor ? m_outerStart : 0), col + (IsRowMajor ? 0 :  m_outerStart));
+    }
+    
+    inline const Scalar coeff(int row, int col) const
+    {
+      return m_matrix.coeff(row + (IsRowMajor ? m_outerStart : 0), col + (IsRowMajor ? 0 :  m_outerStart));
+    }
+    
+    inline const Scalar coeff(int index) const
+    {
+      return m_matrix.coeff(IsRowMajor ? m_outerStart : index, IsRowMajor ? index :  m_outerStart);
+    }
+
+    const Scalar& lastCoeff() const
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(BlockImpl);
+      eigen_assert(nonZeros()>0);
+      if(m_matrix.isCompressed())
+        return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart+1]-1];
+      else
+        return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart]+m_matrix.innerNonZeroPtr()[m_outerStart]-1];
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); }
+
+  protected:
+
+    typename SparseMatrixType::Nested m_matrix;
+    Index m_outerStart;
+    const internal::variable_if_dynamic<Index, OuterSize> m_outerSize;
+
+};
+
+
+template<typename _Scalar, int _Options, typename _Index, int BlockRows, int BlockCols>
+class BlockImpl<const SparseMatrix<_Scalar, _Options, _Index>,BlockRows,BlockCols,true,Sparse>
+  : public SparseMatrixBase<Block<const SparseMatrix<_Scalar, _Options, _Index>,BlockRows,BlockCols,true> >
+{
+    typedef SparseMatrix<_Scalar, _Options, _Index> SparseMatrixType;
+    typedef typename internal::remove_all<typename SparseMatrixType::Nested>::type _MatrixTypeNested;
+    typedef Block<const SparseMatrixType, BlockRows, BlockCols, true> BlockType;
+public:
+    enum { IsRowMajor = internal::traits<BlockType>::IsRowMajor };
+    EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType)
+protected:
+    enum { OuterSize = IsRowMajor ? BlockRows : BlockCols };
+public:
+    
+    class InnerIterator: public SparseMatrixType::InnerIterator
+    {
+      public:
+        inline InnerIterator(const BlockType& xpr, Index outer)
+          : SparseMatrixType::InnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
+        {}
+        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
+        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
+      protected:
+        Index m_outer;
+    };
+    class ReverseInnerIterator: public SparseMatrixType::ReverseInnerIterator
+    {
+      public:
+        inline ReverseInnerIterator(const BlockType& xpr, Index outer)
+          : SparseMatrixType::ReverseInnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
+        {}
+        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
+        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
+      protected:
+        Index m_outer;
+    };
+
+    inline BlockImpl(const SparseMatrixType& xpr, int i)
+      : m_matrix(xpr), m_outerStart(i), m_outerSize(OuterSize)
+    {}
+
+    inline BlockImpl(const SparseMatrixType& xpr, int startRow, int startCol, int blockRows, int blockCols)
+      : m_matrix(xpr), m_outerStart(IsRowMajor ? startRow : startCol), m_outerSize(IsRowMajor ? blockRows : blockCols)
+    {}
+
+    inline const Scalar* valuePtr() const
+    { return m_matrix.valuePtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
+
+    inline const Index* innerIndexPtr() const
+    { return m_matrix.innerIndexPtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
+
+    inline const Index* outerIndexPtr() const
+    { return m_matrix.outerIndexPtr() + m_outerStart; }
+
+    Index nonZeros() const
+    {
+      if(m_matrix.isCompressed())
+        return  std::size_t(m_matrix.outerIndexPtr()[m_outerStart+m_outerSize.value()])
+              - std::size_t(m_matrix.outerIndexPtr()[m_outerStart]);
+      else if(m_outerSize.value()==0)
+        return 0;
+      else
+        return Map<const Matrix<Index,OuterSize,1> >(m_matrix.innerNonZeroPtr()+m_outerStart, m_outerSize.value()).sum();
+    }
+    
+    inline const Scalar coeff(int row, int col) const
+    {
+      return m_matrix.coeff(row + (IsRowMajor ? m_outerStart : 0), col + (IsRowMajor ? 0 :  m_outerStart));
+    }
+    
+    inline const Scalar coeff(int index) const
+    {
+      return m_matrix.coeff(IsRowMajor ? m_outerStart : index, IsRowMajor ? index :  m_outerStart);
+    }
+
+    const Scalar& lastCoeff() const
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(BlockImpl);
+      eigen_assert(nonZeros()>0);
+      if(m_matrix.isCompressed())
+        return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart+1]-1];
+      else
+        return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart]+m_matrix.innerNonZeroPtr()[m_outerStart]-1];
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); }
+
+  protected:
+
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl)
+
+    typename SparseMatrixType::Nested m_matrix;
+    Index m_outerStart;
+    const internal::variable_if_dynamic<Index, OuterSize> m_outerSize;
+};
+
+//----------
+
+/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
+  * is col-major (resp. row-major).
+  */
+template<typename Derived>
+typename SparseMatrixBase<Derived>::InnerVectorReturnType SparseMatrixBase<Derived>::innerVector(Index outer)
+{ return InnerVectorReturnType(derived(), outer); }
+
+/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
+  * is col-major (resp. row-major). Read-only.
+  */
+template<typename Derived>
+const typename SparseMatrixBase<Derived>::ConstInnerVectorReturnType SparseMatrixBase<Derived>::innerVector(Index outer) const
+{ return ConstInnerVectorReturnType(derived(), outer); }
+
+/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
+  * is col-major (resp. row-major).
+  */
+template<typename Derived>
+typename SparseMatrixBase<Derived>::InnerVectorsReturnType
+SparseMatrixBase<Derived>::innerVectors(Index outerStart, Index outerSize)
+{
+  return Block<Derived,Dynamic,Dynamic,true>(derived(),
+                                             IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart,
+                                             IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize);
+  
+}
+
+/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
+  * is col-major (resp. row-major). Read-only.
+  */
+template<typename Derived>
+const typename SparseMatrixBase<Derived>::ConstInnerVectorsReturnType
+SparseMatrixBase<Derived>::innerVectors(Index outerStart, Index outerSize) const
+{
+  return Block<const Derived,Dynamic,Dynamic,true>(derived(),
+                                                  IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart,
+                                                  IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize);
+  
+}
+
+/** Generic implementation of sparse Block expression.
+  * Real-only. 
+  */
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
+class BlockImpl<XprType,BlockRows,BlockCols,InnerPanel,Sparse>
+  : public SparseMatrixBase<Block<XprType,BlockRows,BlockCols,InnerPanel> >, internal::no_assignment_operator
+{
+  typedef typename internal::remove_all<typename XprType::Nested>::type _MatrixTypeNested;
+  typedef Block<XprType, BlockRows, BlockCols, InnerPanel> BlockType;
+public:
+    enum { IsRowMajor = internal::traits<BlockType>::IsRowMajor };
+    EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType)
+
+    /** Column or Row constructor
+      */
+    inline BlockImpl(const XprType& xpr, int i)
+      : m_matrix(xpr),
+        m_startRow( (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? i : 0),
+        m_startCol( (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? i : 0),
+        m_blockRows(BlockRows==1 ? 1 : xpr.rows()),
+        m_blockCols(BlockCols==1 ? 1 : xpr.cols())
+    {}
+
+    /** Dynamic-size constructor
+      */
+    inline BlockImpl(const XprType& xpr, int startRow, int startCol, int blockRows, int blockCols)
+      : m_matrix(xpr), m_startRow(startRow), m_startCol(startCol), m_blockRows(blockRows), m_blockCols(blockCols)
+    {}
+
+    inline int rows() const { return m_blockRows.value(); }
+    inline int cols() const { return m_blockCols.value(); }
+
+    inline Scalar& coeffRef(int row, int col)
+    {
+      return m_matrix.const_cast_derived()
+               .coeffRef(row + m_startRow.value(), col + m_startCol.value());
+    }
+
+    inline const Scalar coeff(int row, int col) const
+    {
+      return m_matrix.coeff(row + m_startRow.value(), col + m_startCol.value());
+    }
+
+    inline Scalar& coeffRef(int index)
+    {
+      return m_matrix.const_cast_derived()
+             .coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+                       m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+    }
+
+    inline const Scalar coeff(int index) const
+    {
+      return m_matrix
+             .coeff(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+                    m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+    }
+    
+    inline const _MatrixTypeNested& nestedExpression() const { return m_matrix; }
+    
+    class InnerIterator : public _MatrixTypeNested::InnerIterator
+    {
+      typedef typename _MatrixTypeNested::InnerIterator Base;
+      const BlockType& m_block;
+      Index m_end;
+    public:
+
+      EIGEN_STRONG_INLINE InnerIterator(const BlockType& block, Index outer)
+        : Base(block.derived().nestedExpression(), outer + (IsRowMajor ? block.m_startRow.value() : block.m_startCol.value())),
+          m_block(block),
+          m_end(IsRowMajor ? block.m_startCol.value()+block.m_blockCols.value() : block.m_startRow.value()+block.m_blockRows.value())
+      {
+        while( (Base::operator bool()) && (Base::index() < (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value())) )
+          Base::operator++();
+      }
+
+      inline Index index()  const { return Base::index() - (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value()); }
+      inline Index outer()  const { return Base::outer() - (IsRowMajor ? m_block.m_startRow.value() : m_block.m_startCol.value()); }
+      inline Index row()    const { return Base::row()   - m_block.m_startRow.value(); }
+      inline Index col()    const { return Base::col()   - m_block.m_startCol.value(); }
+      
+      inline operator bool() const { return Base::operator bool() && Base::index() < m_end; }
+    };
+    class ReverseInnerIterator : public _MatrixTypeNested::ReverseInnerIterator
+    {
+      typedef typename _MatrixTypeNested::ReverseInnerIterator Base;
+      const BlockType& m_block;
+      Index m_begin;
+    public:
+
+      EIGEN_STRONG_INLINE ReverseInnerIterator(const BlockType& block, Index outer)
+        : Base(block.derived().nestedExpression(), outer + (IsRowMajor ? block.m_startRow.value() : block.m_startCol.value())),
+          m_block(block),
+          m_begin(IsRowMajor ? block.m_startCol.value() : block.m_startRow.value())
+      {
+        while( (Base::operator bool()) && (Base::index() >= (IsRowMajor ? m_block.m_startCol.value()+block.m_blockCols.value() : m_block.m_startRow.value()+block.m_blockRows.value())) )
+          Base::operator--();
+      }
+
+      inline Index index()  const { return Base::index() - (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value()); }
+      inline Index outer()  const { return Base::outer() - (IsRowMajor ? m_block.m_startRow.value() : m_block.m_startCol.value()); }
+      inline Index row()    const { return Base::row()   - m_block.m_startRow.value(); }
+      inline Index col()    const { return Base::col()   - m_block.m_startCol.value(); }
+      
+      inline operator bool() const { return Base::operator bool() && Base::index() >= m_begin; }
+    };
+  protected:
+    friend class InnerIterator;
+    friend class ReverseInnerIterator;
+    
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl)
+
+    typename XprType::Nested m_matrix;
+    const internal::variable_if_dynamic<Index, XprType::RowsAtCompileTime == 1 ? 0 : Dynamic> m_startRow;
+    const internal::variable_if_dynamic<Index, XprType::ColsAtCompileTime == 1 ? 0 : Dynamic> m_startCol;
+    const internal::variable_if_dynamic<Index, RowsAtCompileTime> m_blockRows;
+    const internal::variable_if_dynamic<Index, ColsAtCompileTime> m_blockCols;
+  private:
+    Index nonZeros() const;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_BLOCK_H
+
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseColEtree.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseColEtree.h
new file mode 100644
index 0000000..f8745f4
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseColEtree.h
@@ -0,0 +1,206 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+/* 
+ 
+ * NOTE: This file is the modified version of sp_coletree.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 3.1) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * August 1, 2008
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSE_COLETREE_H
+#define SPARSE_COLETREE_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** Find the root of the tree/set containing the vertex i : Use Path halving */ 
+template<typename Index, typename IndexVector>
+Index etree_find (Index i, IndexVector& pp)
+{
+  Index p = pp(i); // Parent 
+  Index gp = pp(p); // Grand parent 
+  while (gp != p) 
+  {
+    pp(i) = gp; // Parent pointer on find path is changed to former grand parent
+    i = gp; 
+    p = pp(i);
+    gp = pp(p);
+  }
+  return p; 
+}
+
+/** Compute the column elimination tree of a sparse matrix
+  * \param mat The matrix in column-major format. 
+  * \param parent The elimination tree
+  * \param firstRowElt The column index of the first element in each row
+  * \param perm The permutation to apply to the column of \b mat
+  */
+template <typename MatrixType, typename IndexVector>
+int coletree(const MatrixType& mat, IndexVector& parent, IndexVector& firstRowElt, typename MatrixType::Index *perm=0)
+{
+  typedef typename MatrixType::Index Index;
+  Index nc = mat.cols(); // Number of columns 
+  Index m = mat.rows();
+  Index diagSize = (std::min)(nc,m);
+  IndexVector root(nc); // root of subtree of etree 
+  root.setZero();
+  IndexVector pp(nc); // disjoint sets 
+  pp.setZero(); // Initialize disjoint sets 
+  parent.resize(mat.cols());
+  //Compute first nonzero column in each row 
+  Index row,col; 
+  firstRowElt.resize(m);
+  firstRowElt.setConstant(nc);
+  firstRowElt.segment(0, diagSize).setLinSpaced(diagSize, 0, diagSize-1);
+  bool found_diag;
+  for (col = 0; col < nc; col++)
+  {
+    Index pcol = col;
+    if(perm) pcol  = perm[col];
+    for (typename MatrixType::InnerIterator it(mat, pcol); it; ++it)
+    { 
+      row = it.row();
+      firstRowElt(row) = (std::min)(firstRowElt(row), col);
+    }
+  }
+  /* Compute etree by Liu's algorithm for symmetric matrices,
+          except use (firstRowElt[r],c) in place of an edge (r,c) of A.
+    Thus each row clique in A'*A is replaced by a star
+    centered at its first vertex, which has the same fill. */
+  Index rset, cset, rroot; 
+  for (col = 0; col < nc; col++) 
+  {
+    found_diag = col>=m;
+    pp(col) = col; 
+    cset = col; 
+    root(cset) = col; 
+    parent(col) = nc; 
+    /* The diagonal element is treated here even if it does not exist in the matrix
+     * hence the loop is executed once more */ 
+    Index pcol = col;
+    if(perm) pcol  = perm[col];
+    for (typename MatrixType::InnerIterator it(mat, pcol); it||!found_diag; ++it)
+    { //  A sequence of interleaved find and union is performed 
+      Index i = col;
+      if(it) i = it.index();
+      if (i == col) found_diag = true;
+      
+      row = firstRowElt(i);
+      if (row >= col) continue; 
+      rset = internal::etree_find(row, pp); // Find the name of the set containing row
+      rroot = root(rset);
+      if (rroot != col) 
+      {
+        parent(rroot) = col; 
+        pp(cset) = rset; 
+        cset = rset; 
+        root(cset) = col; 
+      }
+    }
+  }
+  return 0;  
+}
+
+/** 
+  * Depth-first search from vertex n.  No recursion.
+  * This routine was contributed by Cédric Doucet, CEDRAT Group, Meylan, France.
+*/
+template <typename Index, typename IndexVector>
+void nr_etdfs (Index n, IndexVector& parent, IndexVector& first_kid, IndexVector& next_kid, IndexVector& post, Index postnum)
+{
+  Index current = n, first, next;
+  while (postnum != n) 
+  {
+    // No kid for the current node
+    first = first_kid(current);
+    
+    // no kid for the current node
+    if (first == -1) 
+    {
+      // Numbering this node because it has no kid 
+      post(current) = postnum++;
+      
+      // looking for the next kid 
+      next = next_kid(current); 
+      while (next == -1) 
+      {
+        // No more kids : back to the parent node
+        current = parent(current); 
+        // numbering the parent node 
+        post(current) = postnum++;
+        
+        // Get the next kid 
+        next = next_kid(current); 
+      }
+      // stopping criterion 
+      if (postnum == n+1) return; 
+      
+      // Updating current node 
+      current = next; 
+    }
+    else 
+    {
+      current = first; 
+    }
+  }
+}
+
+
+/**
+  * \brief Post order a tree 
+  * \param n the number of nodes
+  * \param parent Input tree
+  * \param post postordered tree
+  */
+template <typename Index, typename IndexVector>
+void treePostorder(Index n, IndexVector& parent, IndexVector& post)
+{
+  IndexVector first_kid, next_kid; // Linked list of children 
+  Index postnum; 
+  // Allocate storage for working arrays and results 
+  first_kid.resize(n+1); 
+  next_kid.setZero(n+1);
+  post.setZero(n+1);
+  
+  // Set up structure describing children
+  Index v, dad; 
+  first_kid.setConstant(-1); 
+  for (v = n-1; v >= 0; v--) 
+  {
+    dad = parent(v);
+    next_kid(v) = first_kid(dad); 
+    first_kid(dad) = v; 
+  }
+  
+  // Depth-first search from dummy root vertex #n
+  postnum = 0; 
+  internal::nr_etdfs(n, parent, first_kid, next_kid, post, postnum);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // SPARSE_COLETREE_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseCwiseBinaryOp.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
new file mode 100644
index 0000000..5462737
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
@@ -0,0 +1,324 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_CWISE_BINARY_OP_H
+#define EIGEN_SPARSE_CWISE_BINARY_OP_H
+
+namespace Eigen { 
+
+// Here we have to handle 3 cases:
+//  1 - sparse op dense
+//  2 - dense op sparse
+//  3 - sparse op sparse
+// We also need to implement a 4th iterator for:
+//  4 - dense op dense
+// Finally, we also need to distinguish between the product and other operations :
+//                configuration      returned mode
+//  1 - sparse op dense    product      sparse
+//                         generic      dense
+//  2 - dense op sparse    product      sparse
+//                         generic      dense
+//  3 - sparse op sparse   product      sparse
+//                         generic      sparse
+//  4 - dense op dense     product      dense
+//                         generic      dense
+
+namespace internal {
+
+template<> struct promote_storage_type<Dense,Sparse>
+{ typedef Sparse ret; };
+
+template<> struct promote_storage_type<Sparse,Dense>
+{ typedef Sparse ret; };
+
+template<typename BinaryOp, typename Lhs, typename Rhs, typename Derived,
+  typename _LhsStorageMode = typename traits<Lhs>::StorageKind,
+  typename _RhsStorageMode = typename traits<Rhs>::StorageKind>
+class sparse_cwise_binary_op_inner_iterator_selector;
+
+} // end namespace internal
+
+template<typename BinaryOp, typename Lhs, typename Rhs>
+class CwiseBinaryOpImpl<BinaryOp, Lhs, Rhs, Sparse>
+  : public SparseMatrixBase<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
+{
+  public:
+    class InnerIterator;
+    class ReverseInnerIterator;
+    typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> Derived;
+    EIGEN_SPARSE_PUBLIC_INTERFACE(Derived)
+    CwiseBinaryOpImpl()
+    {
+      EIGEN_STATIC_ASSERT((
+                (!internal::is_same<typename internal::traits<Lhs>::StorageKind,
+                                    typename internal::traits<Rhs>::StorageKind>::value)
+            ||  ((Lhs::Flags&RowMajorBit) == (Rhs::Flags&RowMajorBit))),
+            THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH);
+    }
+};
+
+template<typename BinaryOp, typename Lhs, typename Rhs>
+class CwiseBinaryOpImpl<BinaryOp,Lhs,Rhs,Sparse>::InnerIterator
+  : public internal::sparse_cwise_binary_op_inner_iterator_selector<BinaryOp,Lhs,Rhs,typename CwiseBinaryOpImpl<BinaryOp,Lhs,Rhs,Sparse>::InnerIterator>
+{
+  public:
+    typedef typename Lhs::Index Index;
+    typedef internal::sparse_cwise_binary_op_inner_iterator_selector<
+      BinaryOp,Lhs,Rhs, InnerIterator> Base;
+
+    // NOTE: we have to prefix Index by "typename Lhs::" to avoid an ICE with VC11
+    EIGEN_STRONG_INLINE InnerIterator(const CwiseBinaryOpImpl& binOp, typename Lhs::Index outer)
+      : Base(binOp.derived(),outer)
+    {}
+};
+
+/***************************************************************************
+* Implementation of inner-iterators
+***************************************************************************/
+
+// template<typename T> struct internal::func_is_conjunction { enum { ret = false }; };
+// template<typename T> struct internal::func_is_conjunction<internal::scalar_product_op<T> > { enum { ret = true }; };
+
+// TODO generalize the internal::scalar_product_op specialization to all conjunctions if any !
+
+namespace internal {
+
+// sparse - sparse  (generic)
+template<typename BinaryOp, typename Lhs, typename Rhs, typename Derived>
+class sparse_cwise_binary_op_inner_iterator_selector<BinaryOp, Lhs, Rhs, Derived, Sparse, Sparse>
+{
+    typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> CwiseBinaryXpr;
+    typedef typename traits<CwiseBinaryXpr>::Scalar Scalar;
+    typedef typename traits<CwiseBinaryXpr>::_LhsNested _LhsNested;
+    typedef typename traits<CwiseBinaryXpr>::_RhsNested _RhsNested;
+    typedef typename _LhsNested::InnerIterator LhsIterator;
+    typedef typename _RhsNested::InnerIterator RhsIterator;
+    typedef typename Lhs::Index Index;
+
+  public:
+
+    EIGEN_STRONG_INLINE sparse_cwise_binary_op_inner_iterator_selector(const CwiseBinaryXpr& xpr, Index outer)
+      : m_lhsIter(xpr.lhs(),outer), m_rhsIter(xpr.rhs(),outer), m_functor(xpr.functor())
+    {
+      this->operator++();
+    }
+
+    EIGEN_STRONG_INLINE Derived& operator++()
+    {
+      if (m_lhsIter && m_rhsIter && (m_lhsIter.index() == m_rhsIter.index()))
+      {
+        m_id = m_lhsIter.index();
+        m_value = m_functor(m_lhsIter.value(), m_rhsIter.value());
+        ++m_lhsIter;
+        ++m_rhsIter;
+      }
+      else if (m_lhsIter && (!m_rhsIter || (m_lhsIter.index() < m_rhsIter.index())))
+      {
+        m_id = m_lhsIter.index();
+        m_value = m_functor(m_lhsIter.value(), Scalar(0));
+        ++m_lhsIter;
+      }
+      else if (m_rhsIter && (!m_lhsIter || (m_lhsIter.index() > m_rhsIter.index())))
+      {
+        m_id = m_rhsIter.index();
+        m_value = m_functor(Scalar(0), m_rhsIter.value());
+        ++m_rhsIter;
+      }
+      else
+      {
+        m_value = 0; // this is to avoid a compilation warning
+        m_id = -1;
+      }
+      return *static_cast<Derived*>(this);
+    }
+
+    EIGEN_STRONG_INLINE Scalar value() const { return m_value; }
+
+    EIGEN_STRONG_INLINE Index index() const { return m_id; }
+    EIGEN_STRONG_INLINE Index row() const { return Lhs::IsRowMajor ? m_lhsIter.row() : index(); }
+    EIGEN_STRONG_INLINE Index col() const { return Lhs::IsRowMajor ? index() : m_lhsIter.col(); }
+
+    EIGEN_STRONG_INLINE operator bool() const { return m_id>=0; }
+
+  protected:
+    LhsIterator m_lhsIter;
+    RhsIterator m_rhsIter;
+    const BinaryOp& m_functor;
+    Scalar m_value;
+    Index m_id;
+};
+
+// sparse - sparse  (product)
+template<typename T, typename Lhs, typename Rhs, typename Derived>
+class sparse_cwise_binary_op_inner_iterator_selector<scalar_product_op<T>, Lhs, Rhs, Derived, Sparse, Sparse>
+{
+    typedef scalar_product_op<T> BinaryFunc;
+    typedef CwiseBinaryOp<BinaryFunc, Lhs, Rhs> CwiseBinaryXpr;
+    typedef typename CwiseBinaryXpr::Scalar Scalar;
+    typedef typename traits<CwiseBinaryXpr>::_LhsNested _LhsNested;
+    typedef typename _LhsNested::InnerIterator LhsIterator;
+    typedef typename traits<CwiseBinaryXpr>::_RhsNested _RhsNested;
+    typedef typename _RhsNested::InnerIterator RhsIterator;
+    typedef typename Lhs::Index Index;
+  public:
+
+    EIGEN_STRONG_INLINE sparse_cwise_binary_op_inner_iterator_selector(const CwiseBinaryXpr& xpr, Index outer)
+      : m_lhsIter(xpr.lhs(),outer), m_rhsIter(xpr.rhs(),outer), m_functor(xpr.functor())
+    {
+      while (m_lhsIter && m_rhsIter && (m_lhsIter.index() != m_rhsIter.index()))
+      {
+        if (m_lhsIter.index() < m_rhsIter.index())
+          ++m_lhsIter;
+        else
+          ++m_rhsIter;
+      }
+    }
+
+    EIGEN_STRONG_INLINE Derived& operator++()
+    {
+      ++m_lhsIter;
+      ++m_rhsIter;
+      while (m_lhsIter && m_rhsIter && (m_lhsIter.index() != m_rhsIter.index()))
+      {
+        if (m_lhsIter.index() < m_rhsIter.index())
+          ++m_lhsIter;
+        else
+          ++m_rhsIter;
+      }
+      return *static_cast<Derived*>(this);
+    }
+
+    EIGEN_STRONG_INLINE Scalar value() const { return m_functor(m_lhsIter.value(), m_rhsIter.value()); }
+
+    EIGEN_STRONG_INLINE Index index() const { return m_lhsIter.index(); }
+    EIGEN_STRONG_INLINE Index row() const { return m_lhsIter.row(); }
+    EIGEN_STRONG_INLINE Index col() const { return m_lhsIter.col(); }
+
+    EIGEN_STRONG_INLINE operator bool() const { return (m_lhsIter && m_rhsIter); }
+
+  protected:
+    LhsIterator m_lhsIter;
+    RhsIterator m_rhsIter;
+    const BinaryFunc& m_functor;
+};
+
+// sparse - dense  (product)
+template<typename T, typename Lhs, typename Rhs, typename Derived>
+class sparse_cwise_binary_op_inner_iterator_selector<scalar_product_op<T>, Lhs, Rhs, Derived, Sparse, Dense>
+{
+    typedef scalar_product_op<T> BinaryFunc;
+    typedef CwiseBinaryOp<BinaryFunc, Lhs, Rhs> CwiseBinaryXpr;
+    typedef typename CwiseBinaryXpr::Scalar Scalar;
+    typedef typename traits<CwiseBinaryXpr>::_LhsNested _LhsNested;
+    typedef typename traits<CwiseBinaryXpr>::RhsNested RhsNested;
+    typedef typename _LhsNested::InnerIterator LhsIterator;
+    typedef typename Lhs::Index Index;
+    enum { IsRowMajor = (int(Lhs::Flags)&RowMajorBit)==RowMajorBit };
+  public:
+
+    EIGEN_STRONG_INLINE sparse_cwise_binary_op_inner_iterator_selector(const CwiseBinaryXpr& xpr, Index outer)
+      : m_rhs(xpr.rhs()), m_lhsIter(xpr.lhs(),outer), m_functor(xpr.functor()), m_outer(outer)
+    {}
+
+    EIGEN_STRONG_INLINE Derived& operator++()
+    {
+      ++m_lhsIter;
+      return *static_cast<Derived*>(this);
+    }
+
+    EIGEN_STRONG_INLINE Scalar value() const
+    { return m_functor(m_lhsIter.value(),
+                       m_rhs.coeff(IsRowMajor?m_outer:m_lhsIter.index(),IsRowMajor?m_lhsIter.index():m_outer)); }
+
+    EIGEN_STRONG_INLINE Index index() const { return m_lhsIter.index(); }
+    EIGEN_STRONG_INLINE Index row() const { return m_lhsIter.row(); }
+    EIGEN_STRONG_INLINE Index col() const { return m_lhsIter.col(); }
+
+    EIGEN_STRONG_INLINE operator bool() const { return m_lhsIter; }
+
+  protected:
+    RhsNested m_rhs;
+    LhsIterator m_lhsIter;
+    const BinaryFunc m_functor;
+    const Index m_outer;
+};
+
+// sparse - dense  (product)
+template<typename T, typename Lhs, typename Rhs, typename Derived>
+class sparse_cwise_binary_op_inner_iterator_selector<scalar_product_op<T>, Lhs, Rhs, Derived, Dense, Sparse>
+{
+    typedef scalar_product_op<T> BinaryFunc;
+    typedef CwiseBinaryOp<BinaryFunc, Lhs, Rhs> CwiseBinaryXpr;
+    typedef typename CwiseBinaryXpr::Scalar Scalar;
+    typedef typename traits<CwiseBinaryXpr>::_RhsNested _RhsNested;
+    typedef typename _RhsNested::InnerIterator RhsIterator;
+    typedef typename Lhs::Index Index;
+
+    enum { IsRowMajor = (int(Rhs::Flags)&RowMajorBit)==RowMajorBit };
+  public:
+
+    EIGEN_STRONG_INLINE sparse_cwise_binary_op_inner_iterator_selector(const CwiseBinaryXpr& xpr, Index outer)
+      : m_xpr(xpr), m_rhsIter(xpr.rhs(),outer), m_functor(xpr.functor()), m_outer(outer)
+    {}
+
+    EIGEN_STRONG_INLINE Derived& operator++()
+    {
+      ++m_rhsIter;
+      return *static_cast<Derived*>(this);
+    }
+
+    EIGEN_STRONG_INLINE Scalar value() const
+    { return m_functor(m_xpr.lhs().coeff(IsRowMajor?m_outer:m_rhsIter.index(),IsRowMajor?m_rhsIter.index():m_outer), m_rhsIter.value()); }
+
+    EIGEN_STRONG_INLINE Index index() const { return m_rhsIter.index(); }
+    EIGEN_STRONG_INLINE Index row() const { return m_rhsIter.row(); }
+    EIGEN_STRONG_INLINE Index col() const { return m_rhsIter.col(); }
+
+    EIGEN_STRONG_INLINE operator bool() const { return m_rhsIter; }
+
+  protected:
+    const CwiseBinaryXpr& m_xpr;
+    RhsIterator m_rhsIter;
+    const BinaryFunc& m_functor;
+    const Index m_outer;
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* Implementation of SparseMatrixBase and SparseCwise functions/operators
+***************************************************************************/
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+SparseMatrixBase<Derived>::operator-=(const SparseMatrixBase<OtherDerived> &other)
+{
+  return derived() = derived() - other.derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+SparseMatrixBase<Derived>::operator+=(const SparseMatrixBase<OtherDerived>& other)
+{
+  return derived() = derived() + other.derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const typename SparseMatrixBase<Derived>::template CwiseProductDenseReturnType<OtherDerived>::Type
+SparseMatrixBase<Derived>::cwiseProduct(const MatrixBase<OtherDerived> &other) const
+{
+  return typename CwiseProductDenseReturnType<OtherDerived>::Type(derived(), other.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_CWISE_BINARY_OP_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseCwiseUnaryOp.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
rename to vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseDenseProduct.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseDenseProduct.h
new file mode 100644
index 0000000..ccb6ae7
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseDenseProduct.h
@@ -0,0 +1,311 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEDENSEPRODUCT_H
+#define EIGEN_SPARSEDENSEPRODUCT_H
+
+namespace Eigen { 
+
+template<typename Lhs, typename Rhs, int InnerSize> struct SparseDenseProductReturnType
+{
+  typedef SparseTimeDenseProduct<Lhs,Rhs> Type;
+};
+
+template<typename Lhs, typename Rhs> struct SparseDenseProductReturnType<Lhs,Rhs,1>
+{
+  typedef typename internal::conditional<
+    Lhs::IsRowMajor,
+    SparseDenseOuterProduct<Rhs,Lhs,true>,
+    SparseDenseOuterProduct<Lhs,Rhs,false> >::type Type;
+};
+
+template<typename Lhs, typename Rhs, int InnerSize> struct DenseSparseProductReturnType
+{
+  typedef DenseTimeSparseProduct<Lhs,Rhs> Type;
+};
+
+template<typename Lhs, typename Rhs> struct DenseSparseProductReturnType<Lhs,Rhs,1>
+{
+  typedef typename internal::conditional<
+    Rhs::IsRowMajor,
+    SparseDenseOuterProduct<Rhs,Lhs,true>,
+    SparseDenseOuterProduct<Lhs,Rhs,false> >::type Type;
+};
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, bool Tr>
+struct traits<SparseDenseOuterProduct<Lhs,Rhs,Tr> >
+{
+  typedef Sparse StorageKind;
+  typedef typename scalar_product_traits<typename traits<Lhs>::Scalar,
+                                         typename traits<Rhs>::Scalar>::ReturnType Scalar;
+  typedef typename Lhs::Index Index;
+  typedef typename Lhs::Nested LhsNested;
+  typedef typename Rhs::Nested RhsNested;
+  typedef typename remove_all<LhsNested>::type _LhsNested;
+  typedef typename remove_all<RhsNested>::type _RhsNested;
+
+  enum {
+    LhsCoeffReadCost = traits<_LhsNested>::CoeffReadCost,
+    RhsCoeffReadCost = traits<_RhsNested>::CoeffReadCost,
+
+    RowsAtCompileTime    = Tr ? int(traits<Rhs>::RowsAtCompileTime)     : int(traits<Lhs>::RowsAtCompileTime),
+    ColsAtCompileTime    = Tr ? int(traits<Lhs>::ColsAtCompileTime)     : int(traits<Rhs>::ColsAtCompileTime),
+    MaxRowsAtCompileTime = Tr ? int(traits<Rhs>::MaxRowsAtCompileTime)  : int(traits<Lhs>::MaxRowsAtCompileTime),
+    MaxColsAtCompileTime = Tr ? int(traits<Lhs>::MaxColsAtCompileTime)  : int(traits<Rhs>::MaxColsAtCompileTime),
+
+    Flags = Tr ? RowMajorBit : 0,
+
+    CoeffReadCost = LhsCoeffReadCost + RhsCoeffReadCost + NumTraits<Scalar>::MulCost
+  };
+};
+
+} // end namespace internal
+
+template<typename Lhs, typename Rhs, bool Tr>
+class SparseDenseOuterProduct
+ : public SparseMatrixBase<SparseDenseOuterProduct<Lhs,Rhs,Tr> >
+{
+  public:
+
+    typedef SparseMatrixBase<SparseDenseOuterProduct> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(SparseDenseOuterProduct)
+    typedef internal::traits<SparseDenseOuterProduct> Traits;
+
+  private:
+
+    typedef typename Traits::LhsNested LhsNested;
+    typedef typename Traits::RhsNested RhsNested;
+    typedef typename Traits::_LhsNested _LhsNested;
+    typedef typename Traits::_RhsNested _RhsNested;
+
+  public:
+
+    class InnerIterator;
+
+    EIGEN_STRONG_INLINE SparseDenseOuterProduct(const Lhs& lhs, const Rhs& rhs)
+      : m_lhs(lhs), m_rhs(rhs)
+    {
+      EIGEN_STATIC_ASSERT(!Tr,YOU_MADE_A_PROGRAMMING_MISTAKE);
+    }
+
+    EIGEN_STRONG_INLINE SparseDenseOuterProduct(const Rhs& rhs, const Lhs& lhs)
+      : m_lhs(lhs), m_rhs(rhs)
+    {
+      EIGEN_STATIC_ASSERT(Tr,YOU_MADE_A_PROGRAMMING_MISTAKE);
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return Tr ? m_rhs.rows() : m_lhs.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return Tr ? m_lhs.cols() : m_rhs.cols(); }
+
+    EIGEN_STRONG_INLINE const _LhsNested& lhs() const { return m_lhs; }
+    EIGEN_STRONG_INLINE const _RhsNested& rhs() const { return m_rhs; }
+
+  protected:
+    LhsNested m_lhs;
+    RhsNested m_rhs;
+};
+
+template<typename Lhs, typename Rhs, bool Transpose>
+class SparseDenseOuterProduct<Lhs,Rhs,Transpose>::InnerIterator : public _LhsNested::InnerIterator
+{
+    typedef typename _LhsNested::InnerIterator Base;
+    typedef typename SparseDenseOuterProduct::Index Index;
+  public:
+    EIGEN_STRONG_INLINE InnerIterator(const SparseDenseOuterProduct& prod, Index outer)
+      : Base(prod.lhs(), 0), m_outer(outer), m_factor(get(prod.rhs(), outer, typename internal::traits<Rhs>::StorageKind() ))
+    { }
+
+    inline Index outer() const { return m_outer; }
+    inline Index row() const { return Transpose ? m_outer : Base::index(); }
+    inline Index col() const { return Transpose ? Base::index() : m_outer; }
+
+    inline Scalar value() const { return Base::value() * m_factor; }
+
+  protected:
+    static Scalar get(const _RhsNested &rhs, Index outer, Dense = Dense())
+    {
+      return rhs.coeff(outer);
+    }
+    
+    static Scalar get(const _RhsNested &rhs, Index outer, Sparse = Sparse())
+    {
+      typename Traits::_RhsNested::InnerIterator it(rhs, outer);
+      if (it && it.index()==0)
+        return it.value();
+      
+      return Scalar(0);
+    }
+    
+    Index m_outer;
+    Scalar m_factor;
+};
+
+namespace internal {
+template<typename Lhs, typename Rhs>
+struct traits<SparseTimeDenseProduct<Lhs,Rhs> >
+ : traits<ProductBase<SparseTimeDenseProduct<Lhs,Rhs>, Lhs, Rhs> >
+{
+  typedef Dense StorageKind;
+  typedef MatrixXpr XprKind;
+};
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType,
+         int LhsStorageOrder = ((SparseLhsType::Flags&RowMajorBit)==RowMajorBit) ? RowMajor : ColMajor,
+         bool ColPerCol = ((DenseRhsType::Flags&RowMajorBit)==0) || DenseRhsType::ColsAtCompileTime==1>
+struct sparse_time_dense_product_impl;
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType>
+struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, RowMajor, true>
+{
+  typedef typename internal::remove_all<SparseLhsType>::type Lhs;
+  typedef typename internal::remove_all<DenseRhsType>::type Rhs;
+  typedef typename internal::remove_all<DenseResType>::type Res;
+  typedef typename Lhs::Index Index;
+  typedef typename Lhs::InnerIterator LhsInnerIterator;
+  static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha)
+  {
+    for(Index c=0; c<rhs.cols(); ++c)
+    {
+      Index n = lhs.outerSize();
+      for(Index j=0; j<n; ++j)
+      {
+        typename Res::Scalar tmp(0);
+        for(LhsInnerIterator it(lhs,j); it ;++it)
+          tmp += it.value() * rhs.coeff(it.index(),c);
+        res.coeffRef(j,c) += alpha * tmp;
+      }
+    }
+  }
+};
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType>
+struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, ColMajor, true>
+{
+  typedef typename internal::remove_all<SparseLhsType>::type Lhs;
+  typedef typename internal::remove_all<DenseRhsType>::type Rhs;
+  typedef typename internal::remove_all<DenseResType>::type Res;
+  typedef typename Lhs::InnerIterator LhsInnerIterator;
+  typedef typename Lhs::Index Index;
+  static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha)
+  {
+    for(Index c=0; c<rhs.cols(); ++c)
+    {
+      for(Index j=0; j<lhs.outerSize(); ++j)
+      {
+        typename Res::Scalar rhs_j = alpha * rhs.coeff(j,c);
+        for(LhsInnerIterator it(lhs,j); it ;++it)
+          res.coeffRef(it.index(),c) += it.value() * rhs_j;
+      }
+    }
+  }
+};
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType>
+struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, RowMajor, false>
+{
+  typedef typename internal::remove_all<SparseLhsType>::type Lhs;
+  typedef typename internal::remove_all<DenseRhsType>::type Rhs;
+  typedef typename internal::remove_all<DenseResType>::type Res;
+  typedef typename Lhs::InnerIterator LhsInnerIterator;
+  typedef typename Lhs::Index Index;
+  static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha)
+  {
+    for(Index j=0; j<lhs.outerSize(); ++j)
+    {
+      typename Res::RowXpr res_j(res.row(j));
+      for(LhsInnerIterator it(lhs,j); it ;++it)
+        res_j += (alpha*it.value()) * rhs.row(it.index());
+    }
+  }
+};
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType>
+struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, ColMajor, false>
+{
+  typedef typename internal::remove_all<SparseLhsType>::type Lhs;
+  typedef typename internal::remove_all<DenseRhsType>::type Rhs;
+  typedef typename internal::remove_all<DenseResType>::type Res;
+  typedef typename Lhs::InnerIterator LhsInnerIterator;
+  typedef typename Lhs::Index Index;
+  static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha)
+  {
+    for(Index j=0; j<lhs.outerSize(); ++j)
+    {
+      typename Rhs::ConstRowXpr rhs_j(rhs.row(j));
+      for(LhsInnerIterator it(lhs,j); it ;++it)
+        res.row(it.index()) += (alpha*it.value()) * rhs_j;
+    }
+  }
+};
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType,typename AlphaType>
+inline void sparse_time_dense_product(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const AlphaType& alpha)
+{
+  sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType>::run(lhs, rhs, res, alpha);
+}
+
+} // end namespace internal
+
+template<typename Lhs, typename Rhs>
+class SparseTimeDenseProduct
+  : public ProductBase<SparseTimeDenseProduct<Lhs,Rhs>, Lhs, Rhs>
+{
+  public:
+    EIGEN_PRODUCT_PUBLIC_INTERFACE(SparseTimeDenseProduct)
+
+    SparseTimeDenseProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
+    {}
+
+    template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
+    {
+      internal::sparse_time_dense_product(m_lhs, m_rhs, dest, alpha);
+    }
+
+  private:
+    SparseTimeDenseProduct& operator=(const SparseTimeDenseProduct&);
+};
+
+
+// dense = dense * sparse
+namespace internal {
+template<typename Lhs, typename Rhs>
+struct traits<DenseTimeSparseProduct<Lhs,Rhs> >
+ : traits<ProductBase<DenseTimeSparseProduct<Lhs,Rhs>, Lhs, Rhs> >
+{
+  typedef Dense StorageKind;
+};
+} // end namespace internal
+
+template<typename Lhs, typename Rhs>
+class DenseTimeSparseProduct
+  : public ProductBase<DenseTimeSparseProduct<Lhs,Rhs>, Lhs, Rhs>
+{
+  public:
+    EIGEN_PRODUCT_PUBLIC_INTERFACE(DenseTimeSparseProduct)
+
+    DenseTimeSparseProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
+    {}
+
+    template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
+    {
+      Transpose<const _LhsNested> lhs_t(m_lhs);
+      Transpose<const _RhsNested> rhs_t(m_rhs);
+      Transpose<Dest> dest_t(dest);
+      internal::sparse_time_dense_product(rhs_t, lhs_t, dest_t, alpha);
+    }
+
+  private:
+    DenseTimeSparseProduct& operator=(const DenseTimeSparseProduct&);
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEDENSEPRODUCT_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseDiagonalProduct.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseDiagonalProduct.h
new file mode 100644
index 0000000..1bb590e
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseDiagonalProduct.h
@@ -0,0 +1,196 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_DIAGONAL_PRODUCT_H
+#define EIGEN_SPARSE_DIAGONAL_PRODUCT_H
+
+namespace Eigen { 
+
+// The product of a diagonal matrix with a sparse matrix can be easily
+// implemented using expression template.
+// We have two consider very different cases:
+// 1 - diag * row-major sparse
+//     => each inner vector <=> scalar * sparse vector product
+//     => so we can reuse CwiseUnaryOp::InnerIterator
+// 2 - diag * col-major sparse
+//     => each inner vector <=> densevector * sparse vector cwise product
+//     => again, we can reuse specialization of CwiseBinaryOp::InnerIterator
+//        for that particular case
+// The two other cases are symmetric.
+
+namespace internal {
+
+template<typename Lhs, typename Rhs>
+struct traits<SparseDiagonalProduct<Lhs, Rhs> >
+{
+  typedef typename remove_all<Lhs>::type _Lhs;
+  typedef typename remove_all<Rhs>::type _Rhs;
+  typedef typename _Lhs::Scalar Scalar;
+  typedef typename promote_index_type<typename traits<Lhs>::Index,
+                                         typename traits<Rhs>::Index>::type Index;
+  typedef Sparse StorageKind;
+  typedef MatrixXpr XprKind;
+  enum {
+    RowsAtCompileTime = _Lhs::RowsAtCompileTime,
+    ColsAtCompileTime = _Rhs::ColsAtCompileTime,
+
+    MaxRowsAtCompileTime = _Lhs::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = _Rhs::MaxColsAtCompileTime,
+
+    SparseFlags = is_diagonal<_Lhs>::ret ? int(_Rhs::Flags) : int(_Lhs::Flags),
+    Flags = (SparseFlags&RowMajorBit),
+    CoeffReadCost = Dynamic
+  };
+};
+
+enum {SDP_IsDiagonal, SDP_IsSparseRowMajor, SDP_IsSparseColMajor};
+template<typename Lhs, typename Rhs, typename SparseDiagonalProductType, int RhsMode, int LhsMode>
+class sparse_diagonal_product_inner_iterator_selector;
+
+} // end namespace internal
+
+template<typename Lhs, typename Rhs>
+class SparseDiagonalProduct
+  : public SparseMatrixBase<SparseDiagonalProduct<Lhs,Rhs> >,
+    internal::no_assignment_operator
+{
+    typedef typename Lhs::Nested LhsNested;
+    typedef typename Rhs::Nested RhsNested;
+
+    typedef typename internal::remove_all<LhsNested>::type _LhsNested;
+    typedef typename internal::remove_all<RhsNested>::type _RhsNested;
+
+    enum {
+      LhsMode = internal::is_diagonal<_LhsNested>::ret ? internal::SDP_IsDiagonal
+              : (_LhsNested::Flags&RowMajorBit) ? internal::SDP_IsSparseRowMajor : internal::SDP_IsSparseColMajor,
+      RhsMode = internal::is_diagonal<_RhsNested>::ret ? internal::SDP_IsDiagonal
+              : (_RhsNested::Flags&RowMajorBit) ? internal::SDP_IsSparseRowMajor : internal::SDP_IsSparseColMajor
+    };
+
+  public:
+
+    EIGEN_SPARSE_PUBLIC_INTERFACE(SparseDiagonalProduct)
+
+    typedef internal::sparse_diagonal_product_inner_iterator_selector
+                      <_LhsNested,_RhsNested,SparseDiagonalProduct,LhsMode,RhsMode> InnerIterator;
+    
+    // We do not want ReverseInnerIterator for diagonal-sparse products,
+    // but this dummy declaration is needed to make diag * sparse * diag compile.
+    class ReverseInnerIterator;
+
+    EIGEN_STRONG_INLINE SparseDiagonalProduct(const Lhs& lhs, const Rhs& rhs)
+      : m_lhs(lhs), m_rhs(rhs)
+    {
+      eigen_assert(lhs.cols() == rhs.rows() && "invalid sparse matrix * diagonal matrix product");
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return m_lhs.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return m_rhs.cols(); }
+
+    EIGEN_STRONG_INLINE const _LhsNested& lhs() const { return m_lhs; }
+    EIGEN_STRONG_INLINE const _RhsNested& rhs() const { return m_rhs; }
+
+  protected:
+    LhsNested m_lhs;
+    RhsNested m_rhs;
+};
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, typename SparseDiagonalProductType>
+class sparse_diagonal_product_inner_iterator_selector
+<Lhs,Rhs,SparseDiagonalProductType,SDP_IsDiagonal,SDP_IsSparseRowMajor>
+  : public CwiseUnaryOp<scalar_multiple_op<typename Lhs::Scalar>,const Rhs>::InnerIterator
+{
+    typedef typename CwiseUnaryOp<scalar_multiple_op<typename Lhs::Scalar>,const Rhs>::InnerIterator Base;
+    typedef typename Lhs::Index Index;
+  public:
+    inline sparse_diagonal_product_inner_iterator_selector(
+              const SparseDiagonalProductType& expr, Index outer)
+      : Base(expr.rhs()*(expr.lhs().diagonal().coeff(outer)), outer)
+    {}
+};
+
+template<typename Lhs, typename Rhs, typename SparseDiagonalProductType>
+class sparse_diagonal_product_inner_iterator_selector
+<Lhs,Rhs,SparseDiagonalProductType,SDP_IsDiagonal,SDP_IsSparseColMajor>
+  : public CwiseBinaryOp<
+      scalar_product_op<typename Lhs::Scalar>,
+      const typename Rhs::ConstInnerVectorReturnType,
+      const typename Lhs::DiagonalVectorType>::InnerIterator
+{
+    typedef typename CwiseBinaryOp<
+      scalar_product_op<typename Lhs::Scalar>,
+      const typename Rhs::ConstInnerVectorReturnType,
+      const typename Lhs::DiagonalVectorType>::InnerIterator Base;
+    typedef typename Lhs::Index Index;
+    Index m_outer;
+  public:
+    inline sparse_diagonal_product_inner_iterator_selector(
+              const SparseDiagonalProductType& expr, Index outer)
+      : Base(expr.rhs().innerVector(outer) .cwiseProduct(expr.lhs().diagonal()), 0), m_outer(outer)
+    {}
+    
+    inline Index outer() const { return m_outer; }
+    inline Index col() const { return m_outer; }
+};
+
+template<typename Lhs, typename Rhs, typename SparseDiagonalProductType>
+class sparse_diagonal_product_inner_iterator_selector
+<Lhs,Rhs,SparseDiagonalProductType,SDP_IsSparseColMajor,SDP_IsDiagonal>
+  : public CwiseUnaryOp<scalar_multiple_op<typename Rhs::Scalar>,const Lhs>::InnerIterator
+{
+    typedef typename CwiseUnaryOp<scalar_multiple_op<typename Rhs::Scalar>,const Lhs>::InnerIterator Base;
+    typedef typename Lhs::Index Index;
+  public:
+    inline sparse_diagonal_product_inner_iterator_selector(
+              const SparseDiagonalProductType& expr, Index outer)
+      : Base(expr.lhs()*expr.rhs().diagonal().coeff(outer), outer)
+    {}
+};
+
+template<typename Lhs, typename Rhs, typename SparseDiagonalProductType>
+class sparse_diagonal_product_inner_iterator_selector
+<Lhs,Rhs,SparseDiagonalProductType,SDP_IsSparseRowMajor,SDP_IsDiagonal>
+  : public CwiseBinaryOp<
+      scalar_product_op<typename Rhs::Scalar>,
+      const typename Lhs::ConstInnerVectorReturnType,
+      const Transpose<const typename Rhs::DiagonalVectorType> >::InnerIterator
+{
+    typedef typename CwiseBinaryOp<
+      scalar_product_op<typename Rhs::Scalar>,
+      const typename Lhs::ConstInnerVectorReturnType,
+      const Transpose<const typename Rhs::DiagonalVectorType> >::InnerIterator Base;
+    typedef typename Lhs::Index Index;
+    Index m_outer;
+  public:
+    inline sparse_diagonal_product_inner_iterator_selector(
+              const SparseDiagonalProductType& expr, Index outer)
+      : Base(expr.lhs().innerVector(outer) .cwiseProduct(expr.rhs().diagonal().transpose()), 0), m_outer(outer)
+    {}
+    
+    inline Index outer() const { return m_outer; }
+    inline Index row() const { return m_outer; }
+};
+
+} // end namespace internal
+
+// SparseMatrixBase functions
+
+template<typename Derived>
+template<typename OtherDerived>
+const SparseDiagonalProduct<Derived,OtherDerived>
+SparseMatrixBase<Derived>::operator*(const DiagonalBase<OtherDerived> &other) const
+{
+  return SparseDiagonalProduct<Derived,OtherDerived>(this->derived(), other.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_DIAGONAL_PRODUCT_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseDot.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseDot.h
new file mode 100644
index 0000000..db39c9a
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseDot.h
@@ -0,0 +1,101 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_DOT_H
+#define EIGEN_SPARSE_DOT_H
+
+namespace Eigen { 
+
+template<typename Derived>
+template<typename OtherDerived>
+typename internal::traits<Derived>::Scalar
+SparseMatrixBase<Derived>::dot(const MatrixBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+  EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
+  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+  eigen_assert(size() == other.size());
+  eigen_assert(other.size()>0 && "you are using a non initialized vector");
+
+  typename Derived::InnerIterator i(derived(),0);
+  Scalar res(0);
+  while (i)
+  {
+    res += numext::conj(i.value()) * other.coeff(i.index());
+    ++i;
+  }
+  return res;
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+typename internal::traits<Derived>::Scalar
+SparseMatrixBase<Derived>::dot(const SparseMatrixBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+  EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
+  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+  eigen_assert(size() == other.size());
+
+  typedef typename Derived::Nested  Nested;
+  typedef typename OtherDerived::Nested  OtherNested;
+  typedef typename internal::remove_all<Nested>::type  NestedCleaned;
+  typedef typename internal::remove_all<OtherNested>::type  OtherNestedCleaned;
+
+  Nested nthis(derived());
+  OtherNested nother(other.derived());
+
+  typename NestedCleaned::InnerIterator i(nthis,0);
+  typename OtherNestedCleaned::InnerIterator j(nother,0);
+  Scalar res(0);
+  while (i && j)
+  {
+    if (i.index()==j.index())
+    {
+      res += numext::conj(i.value()) * j.value();
+      ++i; ++j;
+    }
+    else if (i.index()<j.index())
+      ++i;
+    else
+      ++j;
+  }
+  return res;
+}
+
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+SparseMatrixBase<Derived>::squaredNorm() const
+{
+  return numext::real((*this).cwiseAbs2().sum());
+}
+
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+SparseMatrixBase<Derived>::norm() const
+{
+  using std::sqrt;
+  return sqrt(squaredNorm());
+}
+
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+SparseMatrixBase<Derived>::blueNorm() const
+{
+  return internal::blueNorm_impl(*this);
+}
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_DOT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseFuzzy.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseFuzzy.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseFuzzy.h
rename to vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseFuzzy.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseMatrix.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseMatrix.h
new file mode 100644
index 0000000..2ff2015
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseMatrix.h
@@ -0,0 +1,1262 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEMATRIX_H
+#define EIGEN_SPARSEMATRIX_H
+
+namespace Eigen { 
+
+/** \ingroup SparseCore_Module
+  *
+  * \class SparseMatrix
+  *
+  * \brief A versatible sparse matrix representation
+  *
+  * This class implements a more versatile variants of the common \em compressed row/column storage format.
+  * Each colmun's (resp. row) non zeros are stored as a pair of value with associated row (resp. colmiun) index.
+  * All the non zeros are stored in a single large buffer. Unlike the \em compressed format, there might be extra
+  * space inbetween the nonzeros of two successive colmuns (resp. rows) such that insertion of new non-zero
+  * can be done with limited memory reallocation and copies.
+  *
+  * A call to the function makeCompressed() turns the matrix into the standard \em compressed format
+  * compatible with many library.
+  *
+  * More details on this storage sceheme are given in the \ref TutorialSparse "manual pages".
+  *
+  * \tparam _Scalar the scalar type, i.e. the type of the coefficients
+  * \tparam _Options Union of bit flags controlling the storage scheme. Currently the only possibility
+  *                 is ColMajor or RowMajor. The default is 0 which means column-major.
+  * \tparam _Index the type of the indices. It has to be a \b signed type (e.g., short, int, std::ptrdiff_t). Default is \c int.
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_SPARSEMATRIX_PLUGIN.
+  */
+
+namespace internal {
+template<typename _Scalar, int _Options, typename _Index>
+struct traits<SparseMatrix<_Scalar, _Options, _Index> >
+{
+  typedef _Scalar Scalar;
+  typedef _Index Index;
+  typedef Sparse StorageKind;
+  typedef MatrixXpr XprKind;
+  enum {
+    RowsAtCompileTime = Dynamic,
+    ColsAtCompileTime = Dynamic,
+    MaxRowsAtCompileTime = Dynamic,
+    MaxColsAtCompileTime = Dynamic,
+    Flags = _Options | NestByRefBit | LvalueBit,
+    CoeffReadCost = NumTraits<Scalar>::ReadCost,
+    SupportedAccessPatterns = InnerRandomAccessPattern
+  };
+};
+
+template<typename _Scalar, int _Options, typename _Index, int DiagIndex>
+struct traits<Diagonal<const SparseMatrix<_Scalar, _Options, _Index>, DiagIndex> >
+{
+  typedef SparseMatrix<_Scalar, _Options, _Index> MatrixType;
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
+
+  typedef _Scalar Scalar;
+  typedef Dense StorageKind;
+  typedef _Index Index;
+  typedef MatrixXpr XprKind;
+
+  enum {
+    RowsAtCompileTime = Dynamic,
+    ColsAtCompileTime = 1,
+    MaxRowsAtCompileTime = Dynamic,
+    MaxColsAtCompileTime = 1,
+    Flags = 0,
+    CoeffReadCost = _MatrixTypeNested::CoeffReadCost*10
+  };
+};
+
+} // end namespace internal
+
+template<typename _Scalar, int _Options, typename _Index>
+class SparseMatrix
+  : public SparseMatrixBase<SparseMatrix<_Scalar, _Options, _Index> >
+{
+  public:
+    EIGEN_SPARSE_PUBLIC_INTERFACE(SparseMatrix)
+    EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseMatrix, +=)
+    EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseMatrix, -=)
+
+    typedef MappedSparseMatrix<Scalar,Flags> Map;
+    using Base::IsRowMajor;
+    typedef internal::CompressedStorage<Scalar,Index> Storage;
+    enum {
+      Options = _Options
+    };
+
+  protected:
+
+    typedef SparseMatrix<Scalar,(Flags&~RowMajorBit)|(IsRowMajor?RowMajorBit:0)> TransposedSparseMatrix;
+
+    Index m_outerSize;
+    Index m_innerSize;
+    Index* m_outerIndex;
+    Index* m_innerNonZeros;     // optional, if null then the data is compressed
+    Storage m_data;
+    
+    Eigen::Map<Matrix<Index,Dynamic,1> > innerNonZeros() { return Eigen::Map<Matrix<Index,Dynamic,1> >(m_innerNonZeros, m_innerNonZeros?m_outerSize:0); }
+    const  Eigen::Map<const Matrix<Index,Dynamic,1> > innerNonZeros() const { return Eigen::Map<const Matrix<Index,Dynamic,1> >(m_innerNonZeros, m_innerNonZeros?m_outerSize:0); }
+
+  public:
+    
+    /** \returns whether \c *this is in compressed form. */
+    inline bool isCompressed() const { return m_innerNonZeros==0; }
+
+    /** \returns the number of rows of the matrix */
+    inline Index rows() const { return IsRowMajor ? m_outerSize : m_innerSize; }
+    /** \returns the number of columns of the matrix */
+    inline Index cols() const { return IsRowMajor ? m_innerSize : m_outerSize; }
+
+    /** \returns the number of rows (resp. columns) of the matrix if the storage order column major (resp. row major) */
+    inline Index innerSize() const { return m_innerSize; }
+    /** \returns the number of columns (resp. rows) of the matrix if the storage order column major (resp. row major) */
+    inline Index outerSize() const { return m_outerSize; }
+    
+    /** \returns a const pointer to the array of values.
+      * This function is aimed at interoperability with other libraries.
+      * \sa innerIndexPtr(), outerIndexPtr() */
+    inline const Scalar* valuePtr() const { return &m_data.value(0); }
+    /** \returns a non-const pointer to the array of values.
+      * This function is aimed at interoperability with other libraries.
+      * \sa innerIndexPtr(), outerIndexPtr() */
+    inline Scalar* valuePtr() { return &m_data.value(0); }
+
+    /** \returns a const pointer to the array of inner indices.
+      * This function is aimed at interoperability with other libraries.
+      * \sa valuePtr(), outerIndexPtr() */
+    inline const Index* innerIndexPtr() const { return &m_data.index(0); }
+    /** \returns a non-const pointer to the array of inner indices.
+      * This function is aimed at interoperability with other libraries.
+      * \sa valuePtr(), outerIndexPtr() */
+    inline Index* innerIndexPtr() { return &m_data.index(0); }
+
+    /** \returns a const pointer to the array of the starting positions of the inner vectors.
+      * This function is aimed at interoperability with other libraries.
+      * \sa valuePtr(), innerIndexPtr() */
+    inline const Index* outerIndexPtr() const { return m_outerIndex; }
+    /** \returns a non-const pointer to the array of the starting positions of the inner vectors.
+      * This function is aimed at interoperability with other libraries.
+      * \sa valuePtr(), innerIndexPtr() */
+    inline Index* outerIndexPtr() { return m_outerIndex; }
+
+    /** \returns a const pointer to the array of the number of non zeros of the inner vectors.
+      * This function is aimed at interoperability with other libraries.
+      * \warning it returns the null pointer 0 in compressed mode */
+    inline const Index* innerNonZeroPtr() const { return m_innerNonZeros; }
+    /** \returns a non-const pointer to the array of the number of non zeros of the inner vectors.
+      * This function is aimed at interoperability with other libraries.
+      * \warning it returns the null pointer 0 in compressed mode */
+    inline Index* innerNonZeroPtr() { return m_innerNonZeros; }
+
+    /** \internal */
+    inline Storage& data() { return m_data; }
+    /** \internal */
+    inline const Storage& data() const { return m_data; }
+
+    /** \returns the value of the matrix at position \a i, \a j
+      * This function returns Scalar(0) if the element is an explicit \em zero */
+    inline Scalar coeff(Index row, Index col) const
+    {
+      eigen_assert(row>=0 && row<rows() && col>=0 && col<cols());
+      
+      const Index outer = IsRowMajor ? row : col;
+      const Index inner = IsRowMajor ? col : row;
+      Index end = m_innerNonZeros ? m_outerIndex[outer] + m_innerNonZeros[outer] : m_outerIndex[outer+1];
+      return m_data.atInRange(m_outerIndex[outer], end, inner);
+    }
+
+    /** \returns a non-const reference to the value of the matrix at position \a i, \a j
+      *
+      * If the element does not exist then it is inserted via the insert(Index,Index) function
+      * which itself turns the matrix into a non compressed form if that was not the case.
+      *
+      * This is a O(log(nnz_j)) operation (binary search) plus the cost of insert(Index,Index)
+      * function if the element does not already exist.
+      */
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      eigen_assert(row>=0 && row<rows() && col>=0 && col<cols());
+      
+      const Index outer = IsRowMajor ? row : col;
+      const Index inner = IsRowMajor ? col : row;
+
+      Index start = m_outerIndex[outer];
+      Index end = m_innerNonZeros ? m_outerIndex[outer] + m_innerNonZeros[outer] : m_outerIndex[outer+1];
+      eigen_assert(end>=start && "you probably called coeffRef on a non finalized matrix");
+      if(end<=start)
+        return insert(row,col);
+      const Index p = m_data.searchLowerIndex(start,end-1,inner);
+      if((p<end) && (m_data.index(p)==inner))
+        return m_data.value(p);
+      else
+        return insert(row,col);
+    }
+
+    /** \returns a reference to a novel non zero coefficient with coordinates \a row x \a col.
+      * The non zero coefficient must \b not already exist.
+      *
+      * If the matrix \c *this is in compressed mode, then \c *this is turned into uncompressed
+      * mode while reserving room for 2 non zeros per inner vector. It is strongly recommended to first
+      * call reserve(const SizesType &) to reserve a more appropriate number of elements per
+      * inner vector that better match your scenario.
+      *
+      * This function performs a sorted insertion in O(1) if the elements of each inner vector are
+      * inserted in increasing inner index order, and in O(nnz_j) for a random insertion.
+      *
+      */
+    Scalar& insert(Index row, Index col)
+    {
+      eigen_assert(row>=0 && row<rows() && col>=0 && col<cols());
+      
+      if(isCompressed())
+      {
+        reserve(Matrix<Index,Dynamic,1>::Constant(outerSize(), 2));
+      }
+      return insertUncompressed(row,col);
+    }
+
+  public:
+
+    class InnerIterator;
+    class ReverseInnerIterator;
+
+    /** Removes all non zeros but keep allocated memory */
+    inline void setZero()
+    {
+      m_data.clear();
+      memset(m_outerIndex, 0, (m_outerSize+1)*sizeof(Index));
+      if(m_innerNonZeros)
+        memset(m_innerNonZeros, 0, (m_outerSize)*sizeof(Index));
+    }
+
+    /** \returns the number of non zero coefficients */
+    inline Index nonZeros() const
+    {
+      if(m_innerNonZeros)
+        return innerNonZeros().sum();
+      return static_cast<Index>(m_data.size());
+    }
+
+    /** Preallocates \a reserveSize non zeros.
+      *
+      * Precondition: the matrix must be in compressed mode. */
+    inline void reserve(Index reserveSize)
+    {
+      eigen_assert(isCompressed() && "This function does not make sense in non compressed mode.");
+      m_data.reserve(reserveSize);
+    }
+    
+    #ifdef EIGEN_PARSED_BY_DOXYGEN
+    /** Preallocates \a reserveSize[\c j] non zeros for each column (resp. row) \c j.
+      *
+      * This function turns the matrix in non-compressed mode */
+    template<class SizesType>
+    inline void reserve(const SizesType& reserveSizes);
+    #else
+    template<class SizesType>
+    inline void reserve(const SizesType& reserveSizes, const typename SizesType::value_type& enableif = typename SizesType::value_type())
+    {
+      EIGEN_UNUSED_VARIABLE(enableif);
+      reserveInnerVectors(reserveSizes);
+    }
+    template<class SizesType>
+    inline void reserve(const SizesType& reserveSizes, const typename SizesType::Scalar& enableif =
+    #if (!defined(_MSC_VER)) || (_MSC_VER>=1500) // MSVC 2005 fails to compile with this typename
+        typename
+    #endif
+        SizesType::Scalar())
+    {
+      EIGEN_UNUSED_VARIABLE(enableif);
+      reserveInnerVectors(reserveSizes);
+    }
+    #endif // EIGEN_PARSED_BY_DOXYGEN
+  protected:
+    template<class SizesType>
+    inline void reserveInnerVectors(const SizesType& reserveSizes)
+    {
+      if(isCompressed())
+      {
+        std::size_t totalReserveSize = 0;
+        // turn the matrix into non-compressed mode
+        m_innerNonZeros = static_cast<Index*>(std::malloc(m_outerSize * sizeof(Index)));
+        if (!m_innerNonZeros) internal::throw_std_bad_alloc();
+        
+        // temporarily use m_innerSizes to hold the new starting points.
+        Index* newOuterIndex = m_innerNonZeros;
+        
+        Index count = 0;
+        for(Index j=0; j<m_outerSize; ++j)
+        {
+          newOuterIndex[j] = count;
+          count += reserveSizes[j] + (m_outerIndex[j+1]-m_outerIndex[j]);
+          totalReserveSize += reserveSizes[j];
+        }
+        m_data.reserve(totalReserveSize);
+        Index previousOuterIndex = m_outerIndex[m_outerSize];
+        for(Index j=m_outerSize-1; j>=0; --j)
+        {
+          Index innerNNZ = previousOuterIndex - m_outerIndex[j];
+          for(Index i=innerNNZ-1; i>=0; --i)
+          {
+            m_data.index(newOuterIndex[j]+i) = m_data.index(m_outerIndex[j]+i);
+            m_data.value(newOuterIndex[j]+i) = m_data.value(m_outerIndex[j]+i);
+          }
+          previousOuterIndex = m_outerIndex[j];
+          m_outerIndex[j] = newOuterIndex[j];
+          m_innerNonZeros[j] = innerNNZ;
+        }
+        m_outerIndex[m_outerSize] = m_outerIndex[m_outerSize-1] + m_innerNonZeros[m_outerSize-1] + reserveSizes[m_outerSize-1];
+        
+        m_data.resize(m_outerIndex[m_outerSize]);
+      }
+      else
+      {
+        Index* newOuterIndex = static_cast<Index*>(std::malloc((m_outerSize+1)*sizeof(Index)));
+        if (!newOuterIndex) internal::throw_std_bad_alloc();
+        
+        Index count = 0;
+        for(Index j=0; j<m_outerSize; ++j)
+        {
+          newOuterIndex[j] = count;
+          Index alreadyReserved = (m_outerIndex[j+1]-m_outerIndex[j]) - m_innerNonZeros[j];
+          Index toReserve = std::max<Index>(reserveSizes[j], alreadyReserved);
+          count += toReserve + m_innerNonZeros[j];
+        }
+        newOuterIndex[m_outerSize] = count;
+        
+        m_data.resize(count);
+        for(Index j=m_outerSize-1; j>=0; --j)
+        {
+          Index offset = newOuterIndex[j] - m_outerIndex[j];
+          if(offset>0)
+          {
+            Index innerNNZ = m_innerNonZeros[j];
+            for(Index i=innerNNZ-1; i>=0; --i)
+            {
+              m_data.index(newOuterIndex[j]+i) = m_data.index(m_outerIndex[j]+i);
+              m_data.value(newOuterIndex[j]+i) = m_data.value(m_outerIndex[j]+i);
+            }
+          }
+        }
+        
+        std::swap(m_outerIndex, newOuterIndex);
+        std::free(newOuterIndex);
+      }
+      
+    }
+  public:
+
+    //--- low level purely coherent filling ---
+
+    /** \internal
+      * \returns a reference to the non zero coefficient at position \a row, \a col assuming that:
+      * - the nonzero does not already exist
+      * - the new coefficient is the last one according to the storage order
+      *
+      * Before filling a given inner vector you must call the statVec(Index) function.
+      *
+      * After an insertion session, you should call the finalize() function.
+      *
+      * \sa insert, insertBackByOuterInner, startVec */
+    inline Scalar& insertBack(Index row, Index col)
+    {
+      return insertBackByOuterInner(IsRowMajor?row:col, IsRowMajor?col:row);
+    }
+
+    /** \internal
+      * \sa insertBack, startVec */
+    inline Scalar& insertBackByOuterInner(Index outer, Index inner)
+    {
+      eigen_assert(size_t(m_outerIndex[outer+1]) == m_data.size() && "Invalid ordered insertion (invalid outer index)");
+      eigen_assert( (m_outerIndex[outer+1]-m_outerIndex[outer]==0 || m_data.index(m_data.size()-1)<inner) && "Invalid ordered insertion (invalid inner index)");
+      Index p = m_outerIndex[outer+1];
+      ++m_outerIndex[outer+1];
+      m_data.append(0, inner);
+      return m_data.value(p);
+    }
+
+    /** \internal
+      * \warning use it only if you know what you are doing */
+    inline Scalar& insertBackByOuterInnerUnordered(Index outer, Index inner)
+    {
+      Index p = m_outerIndex[outer+1];
+      ++m_outerIndex[outer+1];
+      m_data.append(0, inner);
+      return m_data.value(p);
+    }
+
+    /** \internal
+      * \sa insertBack, insertBackByOuterInner */
+    inline void startVec(Index outer)
+    {
+      eigen_assert(m_outerIndex[outer]==Index(m_data.size()) && "You must call startVec for each inner vector sequentially");
+      eigen_assert(m_outerIndex[outer+1]==0 && "You must call startVec for each inner vector sequentially");
+      m_outerIndex[outer+1] = m_outerIndex[outer];
+    }
+
+    /** \internal
+      * Must be called after inserting a set of non zero entries using the low level compressed API.
+      */
+    inline void finalize()
+    {
+      if(isCompressed())
+      {
+        Index size = static_cast<Index>(m_data.size());
+        Index i = m_outerSize;
+        // find the last filled column
+        while (i>=0 && m_outerIndex[i]==0)
+          --i;
+        ++i;
+        while (i<=m_outerSize)
+        {
+          m_outerIndex[i] = size;
+          ++i;
+        }
+      }
+    }
+
+    //---
+
+    template<typename InputIterators>
+    void setFromTriplets(const InputIterators& begin, const InputIterators& end);
+
+    void sumupDuplicates();
+
+    //---
+    
+    /** \internal
+      * same as insert(Index,Index) except that the indices are given relative to the storage order */
+    Scalar& insertByOuterInner(Index j, Index i)
+    {
+      return insert(IsRowMajor ? j : i, IsRowMajor ? i : j);
+    }
+
+    /** Turns the matrix into the \em compressed format.
+      */
+    void makeCompressed()
+    {
+      if(isCompressed())
+        return;
+      
+      Index oldStart = m_outerIndex[1];
+      m_outerIndex[1] = m_innerNonZeros[0];
+      for(Index j=1; j<m_outerSize; ++j)
+      {
+        Index nextOldStart = m_outerIndex[j+1];
+        Index offset = oldStart - m_outerIndex[j];
+        if(offset>0)
+        {
+          for(Index k=0; k<m_innerNonZeros[j]; ++k)
+          {
+            m_data.index(m_outerIndex[j]+k) = m_data.index(oldStart+k);
+            m_data.value(m_outerIndex[j]+k) = m_data.value(oldStart+k);
+          }
+        }
+        m_outerIndex[j+1] = m_outerIndex[j] + m_innerNonZeros[j];
+        oldStart = nextOldStart;
+      }
+      std::free(m_innerNonZeros);
+      m_innerNonZeros = 0;
+      m_data.resize(m_outerIndex[m_outerSize]);
+      m_data.squeeze();
+    }
+
+    /** Turns the matrix into the uncompressed mode */
+    void uncompress()
+    {
+      if(m_innerNonZeros != 0)
+        return; 
+      m_innerNonZeros = static_cast<Index*>(std::malloc(m_outerSize * sizeof(Index)));
+      for (Index i = 0; i < m_outerSize; i++)
+      {
+        m_innerNonZeros[i] = m_outerIndex[i+1] - m_outerIndex[i]; 
+      }
+    }
+    
+    /** Suppresses all nonzeros which are \b much \b smaller \b than \a reference under the tolerence \a epsilon */
+    void prune(const Scalar& reference, const RealScalar& epsilon = NumTraits<RealScalar>::dummy_precision())
+    {
+      prune(default_prunning_func(reference,epsilon));
+    }
+    
+    /** Turns the matrix into compressed format, and suppresses all nonzeros which do not satisfy the predicate \a keep.
+      * The functor type \a KeepFunc must implement the following function:
+      * \code
+      * bool operator() (const Index& row, const Index& col, const Scalar& value) const;
+      * \endcode
+      * \sa prune(Scalar,RealScalar)
+      */
+    template<typename KeepFunc>
+    void prune(const KeepFunc& keep = KeepFunc())
+    {
+      // TODO optimize the uncompressed mode to avoid moving and allocating the data twice
+      // TODO also implement a unit test
+      makeCompressed();
+
+      Index k = 0;
+      for(Index j=0; j<m_outerSize; ++j)
+      {
+        Index previousStart = m_outerIndex[j];
+        m_outerIndex[j] = k;
+        Index end = m_outerIndex[j+1];
+        for(Index i=previousStart; i<end; ++i)
+        {
+          if(keep(IsRowMajor?j:m_data.index(i), IsRowMajor?m_data.index(i):j, m_data.value(i)))
+          {
+            m_data.value(k) = m_data.value(i);
+            m_data.index(k) = m_data.index(i);
+            ++k;
+          }
+        }
+      }
+      m_outerIndex[m_outerSize] = k;
+      m_data.resize(k,0);
+    }
+
+    /** Resizes the matrix to a \a rows x \a cols matrix leaving old values untouched.
+      * \sa resizeNonZeros(Index), reserve(), setZero()
+      */
+    void conservativeResize(Index rows, Index cols) 
+    {
+      // No change
+      if (this->rows() == rows && this->cols() == cols) return;
+      
+      // If one dimension is null, then there is nothing to be preserved
+      if(rows==0 || cols==0) return resize(rows,cols);
+
+      Index innerChange = IsRowMajor ? cols - this->cols() : rows - this->rows();
+      Index outerChange = IsRowMajor ? rows - this->rows() : cols - this->cols();
+      Index newInnerSize = IsRowMajor ? cols : rows;
+
+      // Deals with inner non zeros
+      if (m_innerNonZeros)
+      {
+        // Resize m_innerNonZeros
+        Index *newInnerNonZeros = static_cast<Index*>(std::realloc(m_innerNonZeros, (m_outerSize + outerChange) * sizeof(Index)));
+        if (!newInnerNonZeros) internal::throw_std_bad_alloc();
+        m_innerNonZeros = newInnerNonZeros;
+        
+        for(Index i=m_outerSize; i<m_outerSize+outerChange; i++)          
+          m_innerNonZeros[i] = 0;
+      } 
+      else if (innerChange < 0) 
+      {
+        // Inner size decreased: allocate a new m_innerNonZeros
+        m_innerNonZeros = static_cast<Index*>(std::malloc((m_outerSize+outerChange+1) * sizeof(Index)));
+        if (!m_innerNonZeros) internal::throw_std_bad_alloc();
+        for(Index i = 0; i < m_outerSize; i++)
+          m_innerNonZeros[i] = m_outerIndex[i+1] - m_outerIndex[i];
+      }
+      
+      // Change the m_innerNonZeros in case of a decrease of inner size
+      if (m_innerNonZeros && innerChange < 0)
+      {
+        for(Index i = 0; i < m_outerSize + (std::min)(outerChange, Index(0)); i++)
+        {
+          Index &n = m_innerNonZeros[i];
+          Index start = m_outerIndex[i];
+          while (n > 0 && m_data.index(start+n-1) >= newInnerSize) --n; 
+        }
+      }
+      
+      m_innerSize = newInnerSize;
+
+      // Re-allocate outer index structure if necessary
+      if (outerChange == 0)
+        return;
+          
+      Index *newOuterIndex = static_cast<Index*>(std::realloc(m_outerIndex, (m_outerSize + outerChange + 1) * sizeof(Index)));
+      if (!newOuterIndex) internal::throw_std_bad_alloc();
+      m_outerIndex = newOuterIndex;
+      if (outerChange > 0)
+      {
+        Index last = m_outerSize == 0 ? 0 : m_outerIndex[m_outerSize];
+        for(Index i=m_outerSize; i<m_outerSize+outerChange+1; i++)          
+          m_outerIndex[i] = last; 
+      }
+      m_outerSize += outerChange;
+    }
+    
+    /** Resizes the matrix to a \a rows x \a cols matrix and initializes it to zero.
+      * \sa resizeNonZeros(Index), reserve(), setZero()
+      */
+    void resize(Index rows, Index cols)
+    {
+      const Index outerSize = IsRowMajor ? rows : cols;
+      m_innerSize = IsRowMajor ? cols : rows;
+      m_data.clear();
+      if (m_outerSize != outerSize || m_outerSize==0)
+      {
+        std::free(m_outerIndex);
+        m_outerIndex = static_cast<Index*>(std::malloc((outerSize + 1) * sizeof(Index)));
+        if (!m_outerIndex) internal::throw_std_bad_alloc();
+        
+        m_outerSize = outerSize;
+      }
+      if(m_innerNonZeros)
+      {
+        std::free(m_innerNonZeros);
+        m_innerNonZeros = 0;
+      }
+      memset(m_outerIndex, 0, (m_outerSize+1)*sizeof(Index));
+    }
+
+    /** \internal
+      * Resize the nonzero vector to \a size */
+    void resizeNonZeros(Index size)
+    {
+      // TODO remove this function
+      m_data.resize(size);
+    }
+
+    /** \returns a const expression of the diagonal coefficients */
+    const Diagonal<const SparseMatrix> diagonal() const { return *this; }
+
+    /** Default constructor yielding an empty \c 0 \c x \c 0 matrix */
+    inline SparseMatrix()
+      : m_outerSize(-1), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+    {
+      check_template_parameters();
+      resize(0, 0);
+    }
+
+    /** Constructs a \a rows \c x \a cols empty matrix */
+    inline SparseMatrix(Index rows, Index cols)
+      : m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+    {
+      check_template_parameters();
+      resize(rows, cols);
+    }
+
+    /** Constructs a sparse matrix from the sparse expression \a other */
+    template<typename OtherDerived>
+    inline SparseMatrix(const SparseMatrixBase<OtherDerived>& other)
+      : m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+    {
+      EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+      check_template_parameters();
+      *this = other.derived();
+    }
+    
+    /** Constructs a sparse matrix from the sparse selfadjoint view \a other */
+    template<typename OtherDerived, unsigned int UpLo>
+    inline SparseMatrix(const SparseSelfAdjointView<OtherDerived, UpLo>& other)
+      : m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+    {
+      check_template_parameters();
+      *this = other;
+    }
+
+    /** Copy constructor (it performs a deep copy) */
+    inline SparseMatrix(const SparseMatrix& other)
+      : Base(), m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+    {
+      check_template_parameters();
+      *this = other.derived();
+    }
+
+    /** \brief Copy constructor with in-place evaluation */
+    template<typename OtherDerived>
+    SparseMatrix(const ReturnByValue<OtherDerived>& other)
+      : Base(), m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+    {
+      check_template_parameters();
+      initAssignment(other);
+      other.evalTo(*this);
+    }
+
+    /** Swaps the content of two sparse matrices of the same type.
+      * This is a fast operation that simply swaps the underlying pointers and parameters. */
+    inline void swap(SparseMatrix& other)
+    {
+      //EIGEN_DBG_SPARSE(std::cout << "SparseMatrix:: swap\n");
+      std::swap(m_outerIndex, other.m_outerIndex);
+      std::swap(m_innerSize, other.m_innerSize);
+      std::swap(m_outerSize, other.m_outerSize);
+      std::swap(m_innerNonZeros, other.m_innerNonZeros);
+      m_data.swap(other.m_data);
+    }
+
+    /** Sets *this to the identity matrix.
+      * This function also turns the matrix into compressed mode, and drop any reserved memory. */
+    inline void setIdentity()
+    {
+      eigen_assert(rows() == cols() && "ONLY FOR SQUARED MATRICES");
+      this->m_data.resize(rows());
+      Eigen::Map<Matrix<Index, Dynamic, 1> >(&this->m_data.index(0), rows()).setLinSpaced(0, rows()-1);
+      Eigen::Map<Matrix<Scalar, Dynamic, 1> >(&this->m_data.value(0), rows()).setOnes();
+      Eigen::Map<Matrix<Index, Dynamic, 1> >(this->m_outerIndex, rows()+1).setLinSpaced(0, rows());
+      std::free(m_innerNonZeros);
+      m_innerNonZeros = 0;
+    }
+    inline SparseMatrix& operator=(const SparseMatrix& other)
+    {
+      if (other.isRValue())
+      {
+        swap(other.const_cast_derived());
+      }
+      else if(this!=&other)
+      {
+        initAssignment(other);
+        if(other.isCompressed())
+        {
+          memcpy(m_outerIndex, other.m_outerIndex, (m_outerSize+1)*sizeof(Index));
+          m_data = other.m_data;
+        }
+        else
+        {
+          Base::operator=(other);
+        }
+      }
+      return *this;
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename Lhs, typename Rhs>
+    inline SparseMatrix& operator=(const SparseSparseProduct<Lhs,Rhs>& product)
+    { return Base::operator=(product); }
+    
+    template<typename OtherDerived>
+    inline SparseMatrix& operator=(const ReturnByValue<OtherDerived>& other)
+    {
+      initAssignment(other);
+      return Base::operator=(other.derived());
+    }
+    
+    template<typename OtherDerived>
+    inline SparseMatrix& operator=(const EigenBase<OtherDerived>& other)
+    { return Base::operator=(other.derived()); }
+    #endif
+
+    template<typename OtherDerived>
+    EIGEN_DONT_INLINE SparseMatrix& operator=(const SparseMatrixBase<OtherDerived>& other);
+
+    friend std::ostream & operator << (std::ostream & s, const SparseMatrix& m)
+    {
+      EIGEN_DBG_SPARSE(
+        s << "Nonzero entries:\n";
+        if(m.isCompressed())
+          for (Index i=0; i<m.nonZeros(); ++i)
+            s << "(" << m.m_data.value(i) << "," << m.m_data.index(i) << ") ";
+        else
+          for (Index i=0; i<m.outerSize(); ++i)
+          {
+            Index p = m.m_outerIndex[i];
+            Index pe = m.m_outerIndex[i]+m.m_innerNonZeros[i];
+            Index k=p;
+            for (; k<pe; ++k)
+              s << "(" << m.m_data.value(k) << "," << m.m_data.index(k) << ") ";
+            for (; k<m.m_outerIndex[i+1]; ++k)
+              s << "(_,_) ";
+          }
+        s << std::endl;
+        s << std::endl;
+        s << "Outer pointers:\n";
+        for (Index i=0; i<m.outerSize(); ++i)
+          s << m.m_outerIndex[i] << " ";
+        s << " $" << std::endl;
+        if(!m.isCompressed())
+        {
+          s << "Inner non zeros:\n";
+          for (Index i=0; i<m.outerSize(); ++i)
+            s << m.m_innerNonZeros[i] << " ";
+          s << " $" << std::endl;
+        }
+        s << std::endl;
+      );
+      s << static_cast<const SparseMatrixBase<SparseMatrix>&>(m);
+      return s;
+    }
+
+    /** Destructor */
+    inline ~SparseMatrix()
+    {
+      std::free(m_outerIndex);
+      std::free(m_innerNonZeros);
+    }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** Overloaded for performance */
+    Scalar sum() const;
+#endif
+    
+#   ifdef EIGEN_SPARSEMATRIX_PLUGIN
+#     include EIGEN_SPARSEMATRIX_PLUGIN
+#   endif
+
+protected:
+
+    template<typename Other>
+    void initAssignment(const Other& other)
+    {
+      resize(other.rows(), other.cols());
+      if(m_innerNonZeros)
+      {
+        std::free(m_innerNonZeros);
+        m_innerNonZeros = 0;
+      }
+    }
+
+    /** \internal
+      * \sa insert(Index,Index) */
+    EIGEN_DONT_INLINE Scalar& insertCompressed(Index row, Index col);
+
+    /** \internal
+      * A vector object that is equal to 0 everywhere but v at the position i */
+    class SingletonVector
+    {
+        Index m_index;
+        Index m_value;
+      public:
+        typedef Index value_type;
+        SingletonVector(Index i, Index v)
+          : m_index(i), m_value(v)
+        {}
+
+        Index operator[](Index i) const { return i==m_index ? m_value : 0; }
+    };
+
+    /** \internal
+      * \sa insert(Index,Index) */
+    EIGEN_DONT_INLINE Scalar& insertUncompressed(Index row, Index col);
+
+public:
+    /** \internal
+      * \sa insert(Index,Index) */
+    EIGEN_STRONG_INLINE Scalar& insertBackUncompressed(Index row, Index col)
+    {
+      const Index outer = IsRowMajor ? row : col;
+      const Index inner = IsRowMajor ? col : row;
+
+      eigen_assert(!isCompressed());
+      eigen_assert(m_innerNonZeros[outer]<=(m_outerIndex[outer+1] - m_outerIndex[outer]));
+
+      Index p = m_outerIndex[outer] + m_innerNonZeros[outer]++;
+      m_data.index(p) = inner;
+      return (m_data.value(p) = 0);
+    }
+
+private:
+  static void check_template_parameters()
+  {
+    EIGEN_STATIC_ASSERT(NumTraits<Index>::IsSigned,THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE);
+    EIGEN_STATIC_ASSERT((Options&(ColMajor|RowMajor))==Options,INVALID_MATRIX_TEMPLATE_PARAMETERS);
+  }
+
+  struct default_prunning_func {
+    default_prunning_func(const Scalar& ref, const RealScalar& eps) : reference(ref), epsilon(eps) {}
+    inline bool operator() (const Index&, const Index&, const Scalar& value) const
+    {
+      return !internal::isMuchSmallerThan(value, reference, epsilon);
+    }
+    Scalar reference;
+    RealScalar epsilon;
+  };
+};
+
+template<typename Scalar, int _Options, typename _Index>
+class SparseMatrix<Scalar,_Options,_Index>::InnerIterator
+{
+  public:
+    InnerIterator(const SparseMatrix& mat, Index outer)
+      : m_values(mat.valuePtr()), m_indices(mat.innerIndexPtr()), m_outer(outer), m_id(mat.m_outerIndex[outer])
+    {
+      if(mat.isCompressed())
+        m_end = mat.m_outerIndex[outer+1];
+      else
+        m_end = m_id + mat.m_innerNonZeros[outer];
+    }
+
+    inline InnerIterator& operator++() { m_id++; return *this; }
+
+    inline const Scalar& value() const { return m_values[m_id]; }
+    inline Scalar& valueRef() { return const_cast<Scalar&>(m_values[m_id]); }
+
+    inline Index index() const { return m_indices[m_id]; }
+    inline Index outer() const { return m_outer; }
+    inline Index row() const { return IsRowMajor ? m_outer : index(); }
+    inline Index col() const { return IsRowMajor ? index() : m_outer; }
+
+    inline operator bool() const { return (m_id < m_end); }
+
+  protected:
+    const Scalar* m_values;
+    const Index* m_indices;
+    const Index m_outer;
+    Index m_id;
+    Index m_end;
+};
+
+template<typename Scalar, int _Options, typename _Index>
+class SparseMatrix<Scalar,_Options,_Index>::ReverseInnerIterator
+{
+  public:
+    ReverseInnerIterator(const SparseMatrix& mat, Index outer)
+      : m_values(mat.valuePtr()), m_indices(mat.innerIndexPtr()), m_outer(outer), m_start(mat.m_outerIndex[outer])
+    {
+      if(mat.isCompressed())
+        m_id = mat.m_outerIndex[outer+1];
+      else
+        m_id = m_start + mat.m_innerNonZeros[outer];
+    }
+
+    inline ReverseInnerIterator& operator--() { --m_id; return *this; }
+
+    inline const Scalar& value() const { return m_values[m_id-1]; }
+    inline Scalar& valueRef() { return const_cast<Scalar&>(m_values[m_id-1]); }
+
+    inline Index index() const { return m_indices[m_id-1]; }
+    inline Index outer() const { return m_outer; }
+    inline Index row() const { return IsRowMajor ? m_outer : index(); }
+    inline Index col() const { return IsRowMajor ? index() : m_outer; }
+
+    inline operator bool() const { return (m_id > m_start); }
+
+  protected:
+    const Scalar* m_values;
+    const Index* m_indices;
+    const Index m_outer;
+    Index m_id;
+    const Index m_start;
+};
+
+namespace internal {
+
+template<typename InputIterator, typename SparseMatrixType>
+void set_from_triplets(const InputIterator& begin, const InputIterator& end, SparseMatrixType& mat, int Options = 0)
+{
+  EIGEN_UNUSED_VARIABLE(Options);
+  enum { IsRowMajor = SparseMatrixType::IsRowMajor };
+  typedef typename SparseMatrixType::Scalar Scalar;
+  typedef typename SparseMatrixType::Index Index;
+  SparseMatrix<Scalar,IsRowMajor?ColMajor:RowMajor,Index> trMat(mat.rows(),mat.cols());
+
+  if(begin!=end)
+  {
+    // pass 1: count the nnz per inner-vector
+    Matrix<Index,Dynamic,1> wi(trMat.outerSize());
+    wi.setZero();
+    for(InputIterator it(begin); it!=end; ++it)
+    {
+      eigen_assert(it->row()>=0 && it->row()<mat.rows() && it->col()>=0 && it->col()<mat.cols());
+      wi(IsRowMajor ? it->col() : it->row())++;
+    }
+
+    // pass 2: insert all the elements into trMat
+    trMat.reserve(wi);
+    for(InputIterator it(begin); it!=end; ++it)
+      trMat.insertBackUncompressed(it->row(),it->col()) = it->value();
+
+    // pass 3:
+    trMat.sumupDuplicates();
+  }
+
+  // pass 4: transposed copy -> implicit sorting
+  mat = trMat;
+}
+
+}
+
+
+/** Fill the matrix \c *this with the list of \em triplets defined by the iterator range \a begin - \a end.
+  *
+  * A \em triplet is a tuple (i,j,value) defining a non-zero element.
+  * The input list of triplets does not have to be sorted, and can contains duplicated elements.
+  * In any case, the result is a \b sorted and \b compressed sparse matrix where the duplicates have been summed up.
+  * This is a \em O(n) operation, with \em n the number of triplet elements.
+  * The initial contents of \c *this is destroyed.
+  * The matrix \c *this must be properly resized beforehand using the SparseMatrix(Index,Index) constructor,
+  * or the resize(Index,Index) method. The sizes are not extracted from the triplet list.
+  *
+  * The \a InputIterators value_type must provide the following interface:
+  * \code
+  * Scalar value() const; // the value
+  * Scalar row() const;   // the row index i
+  * Scalar col() const;   // the column index j
+  * \endcode
+  * See for instance the Eigen::Triplet template class.
+  *
+  * Here is a typical usage example:
+  * \code
+    typedef Triplet<double> T;
+    std::vector<T> tripletList;
+    triplets.reserve(estimation_of_entries);
+    for(...)
+    {
+      // ...
+      tripletList.push_back(T(i,j,v_ij));
+    }
+    SparseMatrixType m(rows,cols);
+    m.setFromTriplets(tripletList.begin(), tripletList.end());
+    // m is ready to go!
+  * \endcode
+  *
+  * \warning The list of triplets is read multiple times (at least twice). Therefore, it is not recommended to define
+  * an abstract iterator over a complex data-structure that would be expensive to evaluate. The triplets should rather
+  * be explicitely stored into a std::vector for instance.
+  */
+template<typename Scalar, int _Options, typename _Index>
+template<typename InputIterators>
+void SparseMatrix<Scalar,_Options,_Index>::setFromTriplets(const InputIterators& begin, const InputIterators& end)
+{
+  internal::set_from_triplets(begin, end, *this);
+}
+
+/** \internal */
+template<typename Scalar, int _Options, typename _Index>
+void SparseMatrix<Scalar,_Options,_Index>::sumupDuplicates()
+{
+  eigen_assert(!isCompressed());
+  // TODO, in practice we should be able to use m_innerNonZeros for that task
+  Matrix<Index,Dynamic,1> wi(innerSize());
+  wi.fill(-1);
+  Index count = 0;
+  // for each inner-vector, wi[inner_index] will hold the position of first element into the index/value buffers
+  for(Index j=0; j<outerSize(); ++j)
+  {
+    Index start   = count;
+    Index oldEnd  = m_outerIndex[j]+m_innerNonZeros[j];
+    for(Index k=m_outerIndex[j]; k<oldEnd; ++k)
+    {
+      Index i = m_data.index(k);
+      if(wi(i)>=start)
+      {
+        // we already meet this entry => accumulate it
+        m_data.value(wi(i)) += m_data.value(k);
+      }
+      else
+      {
+        m_data.value(count) = m_data.value(k);
+        m_data.index(count) = m_data.index(k);
+        wi(i) = count;
+        ++count;
+      }
+    }
+    m_outerIndex[j] = start;
+  }
+  m_outerIndex[m_outerSize] = count;
+
+  // turn the matrix into compressed form
+  std::free(m_innerNonZeros);
+  m_innerNonZeros = 0;
+  m_data.resize(m_outerIndex[m_outerSize]);
+}
+
+template<typename Scalar, int _Options, typename _Index>
+template<typename OtherDerived>
+EIGEN_DONT_INLINE SparseMatrix<Scalar,_Options,_Index>& SparseMatrix<Scalar,_Options,_Index>::operator=(const SparseMatrixBase<OtherDerived>& other)
+{
+  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+  
+  const bool needToTranspose = (Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit);
+  if (needToTranspose)
+  {
+    // two passes algorithm:
+    //  1 - compute the number of coeffs per dest inner vector
+    //  2 - do the actual copy/eval
+    // Since each coeff of the rhs has to be evaluated twice, let's evaluate it if needed
+    typedef typename internal::nested<OtherDerived,2>::type OtherCopy;
+    typedef typename internal::remove_all<OtherCopy>::type _OtherCopy;
+    OtherCopy otherCopy(other.derived());
+
+    SparseMatrix dest(other.rows(),other.cols());
+    Eigen::Map<Matrix<Index, Dynamic, 1> > (dest.m_outerIndex,dest.outerSize()).setZero();
+
+    // pass 1
+    // FIXME the above copy could be merged with that pass
+    for (Index j=0; j<otherCopy.outerSize(); ++j)
+      for (typename _OtherCopy::InnerIterator it(otherCopy, j); it; ++it)
+        ++dest.m_outerIndex[it.index()];
+
+    // prefix sum
+    Index count = 0;
+    Matrix<Index,Dynamic,1> positions(dest.outerSize());
+    for (Index j=0; j<dest.outerSize(); ++j)
+    {
+      Index tmp = dest.m_outerIndex[j];
+      dest.m_outerIndex[j] = count;
+      positions[j] = count;
+      count += tmp;
+    }
+    dest.m_outerIndex[dest.outerSize()] = count;
+    // alloc
+    dest.m_data.resize(count);
+    // pass 2
+    for (Index j=0; j<otherCopy.outerSize(); ++j)
+    {
+      for (typename _OtherCopy::InnerIterator it(otherCopy, j); it; ++it)
+      {
+        Index pos = positions[it.index()]++;
+        dest.m_data.index(pos) = j;
+        dest.m_data.value(pos) = it.value();
+      }
+    }
+    this->swap(dest);
+    return *this;
+  }
+  else
+  {
+    if(other.isRValue())
+      initAssignment(other.derived());
+    // there is no special optimization
+    return Base::operator=(other.derived());
+  }
+}
+
+template<typename _Scalar, int _Options, typename _Index>
+EIGEN_DONT_INLINE typename SparseMatrix<_Scalar,_Options,_Index>::Scalar& SparseMatrix<_Scalar,_Options,_Index>::insertUncompressed(Index row, Index col)
+{
+  eigen_assert(!isCompressed());
+
+  const Index outer = IsRowMajor ? row : col;
+  const Index inner = IsRowMajor ? col : row;
+
+  Index room = m_outerIndex[outer+1] - m_outerIndex[outer];
+  Index innerNNZ = m_innerNonZeros[outer];
+  if(innerNNZ>=room)
+  {
+    // this inner vector is full, we need to reallocate the whole buffer :(
+    reserve(SingletonVector(outer,std::max<Index>(2,innerNNZ)));
+  }
+
+  Index startId = m_outerIndex[outer];
+  Index p = startId + m_innerNonZeros[outer];
+  while ( (p > startId) && (m_data.index(p-1) > inner) )
+  {
+    m_data.index(p) = m_data.index(p-1);
+    m_data.value(p) = m_data.value(p-1);
+    --p;
+  }
+  eigen_assert((p<=startId || m_data.index(p-1)!=inner) && "you cannot insert an element that already exist, you must call coeffRef to this end");
+
+  m_innerNonZeros[outer]++;
+
+  m_data.index(p) = inner;
+  return (m_data.value(p) = 0);
+}
+
+template<typename _Scalar, int _Options, typename _Index>
+EIGEN_DONT_INLINE typename SparseMatrix<_Scalar,_Options,_Index>::Scalar& SparseMatrix<_Scalar,_Options,_Index>::insertCompressed(Index row, Index col)
+{
+  eigen_assert(isCompressed());
+
+  const Index outer = IsRowMajor ? row : col;
+  const Index inner = IsRowMajor ? col : row;
+
+  Index previousOuter = outer;
+  if (m_outerIndex[outer+1]==0)
+  {
+    // we start a new inner vector
+    while (previousOuter>=0 && m_outerIndex[previousOuter]==0)
+    {
+      m_outerIndex[previousOuter] = static_cast<Index>(m_data.size());
+      --previousOuter;
+    }
+    m_outerIndex[outer+1] = m_outerIndex[outer];
+  }
+
+  // here we have to handle the tricky case where the outerIndex array
+  // starts with: [ 0 0 0 0 0 1 ...] and we are inserted in, e.g.,
+  // the 2nd inner vector...
+  bool isLastVec = (!(previousOuter==-1 && m_data.size()!=0))
+                && (size_t(m_outerIndex[outer+1]) == m_data.size());
+
+  size_t startId = m_outerIndex[outer];
+  // FIXME let's make sure sizeof(long int) == sizeof(size_t)
+  size_t p = m_outerIndex[outer+1];
+  ++m_outerIndex[outer+1];
+
+  double reallocRatio = 1;
+  if (m_data.allocatedSize()<=m_data.size())
+  {
+    // if there is no preallocated memory, let's reserve a minimum of 32 elements
+    if (m_data.size()==0)
+    {
+      m_data.reserve(32);
+    }
+    else
+    {
+      // we need to reallocate the data, to reduce multiple reallocations
+      // we use a smart resize algorithm based on the current filling ratio
+      // in addition, we use double to avoid integers overflows
+      double nnzEstimate = double(m_outerIndex[outer])*double(m_outerSize)/double(outer+1);
+      reallocRatio = (nnzEstimate-double(m_data.size()))/double(m_data.size());
+      // furthermore we bound the realloc ratio to:
+      //   1) reduce multiple minor realloc when the matrix is almost filled
+      //   2) avoid to allocate too much memory when the matrix is almost empty
+      reallocRatio = (std::min)((std::max)(reallocRatio,1.5),8.);
+    }
+  }
+  m_data.resize(m_data.size()+1,reallocRatio);
+
+  if (!isLastVec)
+  {
+    if (previousOuter==-1)
+    {
+      // oops wrong guess.
+      // let's correct the outer offsets
+      for (Index k=0; k<=(outer+1); ++k)
+        m_outerIndex[k] = 0;
+      Index k=outer+1;
+      while(m_outerIndex[k]==0)
+        m_outerIndex[k++] = 1;
+      while (k<=m_outerSize && m_outerIndex[k]!=0)
+        m_outerIndex[k++]++;
+      p = 0;
+      --k;
+      k = m_outerIndex[k]-1;
+      while (k>0)
+      {
+        m_data.index(k) = m_data.index(k-1);
+        m_data.value(k) = m_data.value(k-1);
+        k--;
+      }
+    }
+    else
+    {
+      // we are not inserting into the last inner vec
+      // update outer indices:
+      Index j = outer+2;
+      while (j<=m_outerSize && m_outerIndex[j]!=0)
+        m_outerIndex[j++]++;
+      --j;
+      // shift data of last vecs:
+      Index k = m_outerIndex[j]-1;
+      while (k>=Index(p))
+      {
+        m_data.index(k) = m_data.index(k-1);
+        m_data.value(k) = m_data.value(k-1);
+        k--;
+      }
+    }
+  }
+
+  while ( (p > startId) && (m_data.index(p-1) > inner) )
+  {
+    m_data.index(p) = m_data.index(p-1);
+    m_data.value(p) = m_data.value(p-1);
+    --p;
+  }
+
+  m_data.index(p) = inner;
+  return (m_data.value(p) = 0);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEMATRIX_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseMatrixBase.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseMatrixBase.h
new file mode 100644
index 0000000..9341d9a
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseMatrixBase.h
@@ -0,0 +1,461 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEMATRIXBASE_H
+#define EIGEN_SPARSEMATRIXBASE_H
+
+namespace Eigen { 
+
+/** \ingroup SparseCore_Module
+  *
+  * \class SparseMatrixBase
+  *
+  * \brief Base class of any sparse matrices or sparse expressions
+  *
+  * \tparam Derived
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_SPARSEMATRIXBASE_PLUGIN.
+  */
+template<typename Derived> class SparseMatrixBase
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+  : public internal::special_scalar_op_base<Derived,typename internal::traits<Derived>::Scalar,
+                                            typename NumTraits<typename internal::traits<Derived>::Scalar>::Real,
+                                            EigenBase<Derived> >
+#else
+  : public EigenBase<Derived>
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+{
+  public:
+
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::add_const_on_value_type_if_arithmetic<
+                         typename internal::packet_traits<Scalar>::type
+                     >::type PacketReturnType;
+
+    typedef SparseMatrixBase StorageBaseType;
+    
+    template<typename OtherDerived>
+    Derived& operator=(const EigenBase<OtherDerived> &other)
+    {
+      other.derived().evalTo(derived());
+      return derived();
+    }
+
+    enum {
+
+      RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+        /**< The number of rows at compile-time. This is just a copy of the value provided
+          * by the \a Derived type. If a value is not known at compile-time,
+          * it is set to the \a Dynamic constant.
+          * \sa MatrixBase::rows(), MatrixBase::cols(), ColsAtCompileTime, SizeAtCompileTime */
+
+      ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+        /**< The number of columns at compile-time. This is just a copy of the value provided
+          * by the \a Derived type. If a value is not known at compile-time,
+          * it is set to the \a Dynamic constant.
+          * \sa MatrixBase::rows(), MatrixBase::cols(), RowsAtCompileTime, SizeAtCompileTime */
+
+
+      SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
+                                                   internal::traits<Derived>::ColsAtCompileTime>::ret),
+        /**< This is equal to the number of coefficients, i.e. the number of
+          * rows times the number of columns, or to \a Dynamic if this is not
+          * known at compile-time. \sa RowsAtCompileTime, ColsAtCompileTime */
+
+      MaxRowsAtCompileTime = RowsAtCompileTime,
+      MaxColsAtCompileTime = ColsAtCompileTime,
+
+      MaxSizeAtCompileTime = (internal::size_at_compile_time<MaxRowsAtCompileTime,
+                                                      MaxColsAtCompileTime>::ret),
+
+      IsVectorAtCompileTime = RowsAtCompileTime == 1 || ColsAtCompileTime == 1,
+        /**< This is set to true if either the number of rows or the number of
+          * columns is known at compile-time to be equal to 1. Indeed, in that case,
+          * we are dealing with a column-vector (if there is only one column) or with
+          * a row-vector (if there is only one row). */
+
+      Flags = internal::traits<Derived>::Flags,
+        /**< This stores expression \ref flags flags which may or may not be inherited by new expressions
+          * constructed from this one. See the \ref flags "list of flags".
+          */
+
+      CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
+        /**< This is a rough measure of how expensive it is to read one coefficient from
+          * this expression.
+          */
+
+      IsRowMajor = Flags&RowMajorBit ? 1 : 0,
+      
+      InnerSizeAtCompileTime = int(IsVectorAtCompileTime) ? int(SizeAtCompileTime)
+                             : int(IsRowMajor) ? int(ColsAtCompileTime) : int(RowsAtCompileTime),
+
+      #ifndef EIGEN_PARSED_BY_DOXYGEN
+      _HasDirectAccess = (int(Flags)&DirectAccessBit) ? 1 : 0 // workaround sunCC
+      #endif
+    };
+
+    /** \internal the return type of MatrixBase::adjoint() */
+    typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+                        CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, Eigen::Transpose<const Derived> >,
+                        Transpose<const Derived>
+                     >::type AdjointReturnType;
+
+
+    typedef SparseMatrix<Scalar, Flags&RowMajorBit ? RowMajor : ColMajor, Index> PlainObject;
+
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** This is the "real scalar" type; if the \a Scalar type is already real numbers
+      * (e.g. int, float or double) then \a RealScalar is just the same as \a Scalar. If
+      * \a Scalar is \a std::complex<T> then RealScalar is \a T.
+      *
+      * \sa class NumTraits
+      */
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    /** \internal the return type of coeff()
+      */
+    typedef typename internal::conditional<_HasDirectAccess, const Scalar&, Scalar>::type CoeffReturnType;
+
+    /** \internal Represents a matrix with all coefficients equal to one another*/
+    typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,Matrix<Scalar,Dynamic,Dynamic> > ConstantReturnType;
+
+    /** type of the equivalent square matrix */
+    typedef Matrix<Scalar,EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime),
+                          EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime)> SquareMatrixType;
+
+    inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
+    inline Derived& derived() { return *static_cast<Derived*>(this); }
+    inline Derived& const_cast_derived() const
+    { return *static_cast<Derived*>(const_cast<SparseMatrixBase*>(this)); }
+
+    typedef internal::special_scalar_op_base<Derived, Scalar, RealScalar, EigenBase<Derived> > Base;
+    using Base::operator*;
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::SparseMatrixBase
+#   include "../plugins/CommonCwiseUnaryOps.h"
+#   include "../plugins/CommonCwiseBinaryOps.h"
+#   include "../plugins/MatrixCwiseUnaryOps.h"
+#   include "../plugins/MatrixCwiseBinaryOps.h"
+#   include "../plugins/BlockMethods.h"
+#   ifdef EIGEN_SPARSEMATRIXBASE_PLUGIN
+#     include EIGEN_SPARSEMATRIXBASE_PLUGIN
+#   endif
+#   undef EIGEN_CURRENT_STORAGE_BASE_CLASS
+#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
+
+    /** \returns the number of rows. \sa cols() */
+    inline Index rows() const { return derived().rows(); }
+    /** \returns the number of columns. \sa rows() */
+    inline Index cols() const { return derived().cols(); }
+    /** \returns the number of coefficients, which is \a rows()*cols().
+      * \sa rows(), cols(). */
+    inline Index size() const { return rows() * cols(); }
+    /** \returns the number of nonzero coefficients which is in practice the number
+      * of stored coefficients. */
+    inline Index nonZeros() const { return derived().nonZeros(); }
+    /** \returns true if either the number of rows or the number of columns is equal to 1.
+      * In other words, this function returns
+      * \code rows()==1 || cols()==1 \endcode
+      * \sa rows(), cols(), IsVectorAtCompileTime. */
+    inline bool isVector() const { return rows()==1 || cols()==1; }
+    /** \returns the size of the storage major dimension,
+      * i.e., the number of columns for a columns major matrix, and the number of rows otherwise */
+    Index outerSize() const { return (int(Flags)&RowMajorBit) ? this->rows() : this->cols(); }
+    /** \returns the size of the inner dimension according to the storage order,
+      * i.e., the number of rows for a columns major matrix, and the number of cols otherwise */
+    Index innerSize() const { return (int(Flags)&RowMajorBit) ? this->cols() : this->rows(); }
+
+    bool isRValue() const { return m_isRValue; }
+    Derived& markAsRValue() { m_isRValue = true; return derived(); }
+
+    SparseMatrixBase() : m_isRValue(false) { /* TODO check flags */ }
+
+    
+    template<typename OtherDerived>
+    Derived& operator=(const ReturnByValue<OtherDerived>& other)
+    {
+      other.evalTo(derived());
+      return derived();
+    }
+
+
+    template<typename OtherDerived>
+    inline Derived& operator=(const SparseMatrixBase<OtherDerived>& other)
+    {
+      return assign(other.derived());
+    }
+
+    inline Derived& operator=(const Derived& other)
+    {
+//       if (other.isRValue())
+//         derived().swap(other.const_cast_derived());
+//       else
+      return assign(other.derived());
+    }
+
+  protected:
+
+    template<typename OtherDerived>
+    inline Derived& assign(const OtherDerived& other)
+    {
+      const bool transpose = (Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit);
+      const Index outerSize = (int(OtherDerived::Flags) & RowMajorBit) ? other.rows() : other.cols();
+      if ((!transpose) && other.isRValue())
+      {
+        // eval without temporary
+        derived().resize(other.rows(), other.cols());
+        derived().setZero();
+        derived().reserve((std::max)(this->rows(),this->cols())*2);
+        for (Index j=0; j<outerSize; ++j)
+        {
+          derived().startVec(j);
+          for (typename OtherDerived::InnerIterator it(other, j); it; ++it)
+          {
+            Scalar v = it.value();
+            derived().insertBackByOuterInner(j,it.index()) = v;
+          }
+        }
+        derived().finalize();
+      }
+      else
+      {
+        assignGeneric(other);
+      }
+      return derived();
+    }
+
+    template<typename OtherDerived>
+    inline void assignGeneric(const OtherDerived& other)
+    {
+      //const bool transpose = (Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit);
+      eigen_assert(( ((internal::traits<Derived>::SupportedAccessPatterns&OuterRandomAccessPattern)==OuterRandomAccessPattern) ||
+                  (!((Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit)))) &&
+                  "the transpose operation is supposed to be handled in SparseMatrix::operator=");
+
+      enum { Flip = (Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit) };
+
+      const Index outerSize = other.outerSize();
+      //typedef typename internal::conditional<transpose, LinkedVectorMatrix<Scalar,Flags&RowMajorBit>, Derived>::type TempType;
+      // thanks to shallow copies, we always eval to a tempary
+      Derived temp(other.rows(), other.cols());
+
+      temp.reserve((std::max)(this->rows(),this->cols())*2);
+      for (Index j=0; j<outerSize; ++j)
+      {
+        temp.startVec(j);
+        for (typename OtherDerived::InnerIterator it(other.derived(), j); it; ++it)
+        {
+          Scalar v = it.value();
+          temp.insertBackByOuterInner(Flip?it.index():j,Flip?j:it.index()) = v;
+        }
+      }
+      temp.finalize();
+
+      derived() = temp.markAsRValue();
+    }
+
+  public:
+
+    template<typename Lhs, typename Rhs>
+    inline Derived& operator=(const SparseSparseProduct<Lhs,Rhs>& product);
+
+    friend std::ostream & operator << (std::ostream & s, const SparseMatrixBase& m)
+    {
+      typedef typename Derived::Nested Nested;
+      typedef typename internal::remove_all<Nested>::type NestedCleaned;
+
+      if (Flags&RowMajorBit)
+      {
+        const Nested nm(m.derived());
+        for (Index row=0; row<nm.outerSize(); ++row)
+        {
+          Index col = 0;
+          for (typename NestedCleaned::InnerIterator it(nm.derived(), row); it; ++it)
+          {
+            for ( ; col<it.index(); ++col)
+              s << "0 ";
+            s << it.value() << " ";
+            ++col;
+          }
+          for ( ; col<m.cols(); ++col)
+            s << "0 ";
+          s << std::endl;
+        }
+      }
+      else
+      {
+        const Nested nm(m.derived());
+        if (m.cols() == 1) {
+          Index row = 0;
+          for (typename NestedCleaned::InnerIterator it(nm.derived(), 0); it; ++it)
+          {
+            for ( ; row<it.index(); ++row)
+              s << "0" << std::endl;
+            s << it.value() << std::endl;
+            ++row;
+          }
+          for ( ; row<m.rows(); ++row)
+            s << "0" << std::endl;
+        }
+        else
+        {
+          SparseMatrix<Scalar, RowMajorBit, Index> trans = m;
+          s << static_cast<const SparseMatrixBase<SparseMatrix<Scalar, RowMajorBit, Index> >&>(trans);
+        }
+      }
+      return s;
+    }
+
+    template<typename OtherDerived>
+    Derived& operator+=(const SparseMatrixBase<OtherDerived>& other);
+    template<typename OtherDerived>
+    Derived& operator-=(const SparseMatrixBase<OtherDerived>& other);
+
+    Derived& operator*=(const Scalar& other);
+    Derived& operator/=(const Scalar& other);
+
+    template<typename OtherDerived> struct CwiseProductDenseReturnType {
+      typedef CwiseBinaryOp<internal::scalar_product_op<typename internal::scalar_product_traits<
+                                                          typename internal::traits<Derived>::Scalar,
+                                                          typename internal::traits<OtherDerived>::Scalar
+                                                        >::ReturnType>,
+                            const Derived,
+                            const OtherDerived
+                          > Type;
+    };
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE const typename CwiseProductDenseReturnType<OtherDerived>::Type
+    cwiseProduct(const MatrixBase<OtherDerived> &other) const;
+
+    // sparse * sparse
+    template<typename OtherDerived>
+    const typename SparseSparseProductReturnType<Derived,OtherDerived>::Type
+    operator*(const SparseMatrixBase<OtherDerived> &other) const;
+
+    // sparse * diagonal
+    template<typename OtherDerived>
+    const SparseDiagonalProduct<Derived,OtherDerived>
+    operator*(const DiagonalBase<OtherDerived> &other) const;
+
+    // diagonal * sparse
+    template<typename OtherDerived> friend
+    const SparseDiagonalProduct<OtherDerived,Derived>
+    operator*(const DiagonalBase<OtherDerived> &lhs, const SparseMatrixBase& rhs)
+    { return SparseDiagonalProduct<OtherDerived,Derived>(lhs.derived(), rhs.derived()); }
+
+    /** dense * sparse (return a dense object unless it is an outer product) */
+    template<typename OtherDerived> friend
+    const typename DenseSparseProductReturnType<OtherDerived,Derived>::Type
+    operator*(const MatrixBase<OtherDerived>& lhs, const Derived& rhs)
+    { return typename DenseSparseProductReturnType<OtherDerived,Derived>::Type(lhs.derived(),rhs); }
+
+    /** sparse * dense (returns a dense object unless it is an outer product) */
+    template<typename OtherDerived>
+    const typename SparseDenseProductReturnType<Derived,OtherDerived>::Type
+    operator*(const MatrixBase<OtherDerived> &other) const
+    { return typename SparseDenseProductReturnType<Derived,OtherDerived>::Type(derived(), other.derived()); }
+    
+     /** \returns an expression of P H P^-1 where H is the matrix represented by \c *this */
+    SparseSymmetricPermutationProduct<Derived,Upper|Lower> twistedBy(const PermutationMatrix<Dynamic,Dynamic,Index>& perm) const
+    {
+      return SparseSymmetricPermutationProduct<Derived,Upper|Lower>(derived(), perm);
+    }
+
+    template<typename OtherDerived>
+    Derived& operator*=(const SparseMatrixBase<OtherDerived>& other);
+
+    #ifdef EIGEN2_SUPPORT
+    // deprecated
+    template<typename OtherDerived>
+    typename internal::plain_matrix_type_column_major<OtherDerived>::type
+    solveTriangular(const MatrixBase<OtherDerived>& other) const;
+
+    // deprecated
+    template<typename OtherDerived>
+    void solveTriangularInPlace(MatrixBase<OtherDerived>& other) const;
+    #endif // EIGEN2_SUPPORT
+
+    template<int Mode>
+    inline const SparseTriangularView<Derived, Mode> triangularView() const;
+
+    template<unsigned int UpLo> inline const SparseSelfAdjointView<Derived, UpLo> selfadjointView() const;
+    template<unsigned int UpLo> inline SparseSelfAdjointView<Derived, UpLo> selfadjointView();
+
+    template<typename OtherDerived> Scalar dot(const MatrixBase<OtherDerived>& other) const;
+    template<typename OtherDerived> Scalar dot(const SparseMatrixBase<OtherDerived>& other) const;
+    RealScalar squaredNorm() const;
+    RealScalar norm()  const;
+    RealScalar blueNorm() const;
+
+    Transpose<Derived> transpose() { return derived(); }
+    const Transpose<const Derived> transpose() const { return derived(); }
+    const AdjointReturnType adjoint() const { return transpose(); }
+
+    // inner-vector
+    typedef Block<Derived,IsRowMajor?1:Dynamic,IsRowMajor?Dynamic:1,true>       InnerVectorReturnType;
+    typedef Block<const Derived,IsRowMajor?1:Dynamic,IsRowMajor?Dynamic:1,true> ConstInnerVectorReturnType;
+    InnerVectorReturnType innerVector(Index outer);
+    const ConstInnerVectorReturnType innerVector(Index outer) const;
+
+    // set of inner-vectors
+    typedef Block<Derived,Dynamic,Dynamic,true> InnerVectorsReturnType;
+    typedef Block<const Derived,Dynamic,Dynamic,true> ConstInnerVectorsReturnType;
+    InnerVectorsReturnType innerVectors(Index outerStart, Index outerSize);
+    const ConstInnerVectorsReturnType innerVectors(Index outerStart, Index outerSize) const;
+
+    /** \internal use operator= */
+    template<typename DenseDerived>
+    void evalTo(MatrixBase<DenseDerived>& dst) const
+    {
+      dst.setZero();
+      for (Index j=0; j<outerSize(); ++j)
+        for (typename Derived::InnerIterator i(derived(),j); i; ++i)
+          dst.coeffRef(i.row(),i.col()) = i.value();
+    }
+
+    Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime> toDense() const
+    {
+      return derived();
+    }
+
+    template<typename OtherDerived>
+    bool isApprox(const SparseMatrixBase<OtherDerived>& other,
+                  const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const
+    { return toDense().isApprox(other.toDense(),prec); }
+
+    template<typename OtherDerived>
+    bool isApprox(const MatrixBase<OtherDerived>& other,
+                  const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const
+    { return toDense().isApprox(other,prec); }
+
+    /** \returns the matrix or vector obtained by evaluating this expression.
+      *
+      * Notice that in the case of a plain matrix or vector (not an expression) this function just returns
+      * a const reference, in order to avoid a useless copy.
+      */
+    inline const typename internal::eval<Derived>::type eval() const
+    { return typename internal::eval<Derived>::type(derived()); }
+
+    Scalar sum() const;
+
+  protected:
+
+    bool m_isRValue;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEMATRIXBASE_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparsePermutation.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparsePermutation.h
new file mode 100644
index 0000000..75e2100
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparsePermutation.h
@@ -0,0 +1,148 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_PERMUTATION_H
+#define EIGEN_SPARSE_PERMUTATION_H
+
+// This file implements sparse * permutation products
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename PermutationType, typename MatrixType, int Side, bool Transposed>
+struct traits<permut_sparsematrix_product_retval<PermutationType, MatrixType, Side, Transposed> >
+{
+  typedef typename remove_all<typename MatrixType::Nested>::type MatrixTypeNestedCleaned;
+  typedef typename MatrixTypeNestedCleaned::Scalar Scalar;
+  typedef typename MatrixTypeNestedCleaned::Index Index;
+  enum {
+    SrcStorageOrder = MatrixTypeNestedCleaned::Flags&RowMajorBit ? RowMajor : ColMajor,
+    MoveOuter = SrcStorageOrder==RowMajor ? Side==OnTheLeft : Side==OnTheRight
+  };
+
+  typedef typename internal::conditional<MoveOuter,
+        SparseMatrix<Scalar,SrcStorageOrder,Index>,
+        SparseMatrix<Scalar,int(SrcStorageOrder)==RowMajor?ColMajor:RowMajor,Index> >::type ReturnType;
+};
+
+template<typename PermutationType, typename MatrixType, int Side, bool Transposed>
+struct permut_sparsematrix_product_retval
+ : public ReturnByValue<permut_sparsematrix_product_retval<PermutationType, MatrixType, Side, Transposed> >
+{
+    typedef typename remove_all<typename MatrixType::Nested>::type MatrixTypeNestedCleaned;
+    typedef typename MatrixTypeNestedCleaned::Scalar Scalar;
+    typedef typename MatrixTypeNestedCleaned::Index Index;
+
+    enum {
+      SrcStorageOrder = MatrixTypeNestedCleaned::Flags&RowMajorBit ? RowMajor : ColMajor,
+      MoveOuter = SrcStorageOrder==RowMajor ? Side==OnTheLeft : Side==OnTheRight
+    };
+
+    permut_sparsematrix_product_retval(const PermutationType& perm, const MatrixType& matrix)
+      : m_permutation(perm), m_matrix(matrix)
+    {}
+
+    inline int rows() const { return m_matrix.rows(); }
+    inline int cols() const { return m_matrix.cols(); }
+
+    template<typename Dest> inline void evalTo(Dest& dst) const
+    {
+      if(MoveOuter)
+      {
+        SparseMatrix<Scalar,SrcStorageOrder,Index> tmp(m_matrix.rows(), m_matrix.cols());
+        Matrix<Index,Dynamic,1> sizes(m_matrix.outerSize());
+        for(Index j=0; j<m_matrix.outerSize(); ++j)
+        {
+          Index jp = m_permutation.indices().coeff(j);
+          sizes[((Side==OnTheLeft) ^ Transposed) ? jp : j] = m_matrix.innerVector(((Side==OnTheRight) ^ Transposed) ? jp : j).nonZeros();
+        }
+        tmp.reserve(sizes);
+        for(Index j=0; j<m_matrix.outerSize(); ++j)
+        {
+          Index jp = m_permutation.indices().coeff(j);
+          Index jsrc = ((Side==OnTheRight) ^ Transposed) ? jp : j;
+          Index jdst = ((Side==OnTheLeft) ^ Transposed) ? jp : j;
+          for(typename MatrixTypeNestedCleaned::InnerIterator it(m_matrix,jsrc); it; ++it)
+            tmp.insertByOuterInner(jdst,it.index()) = it.value();
+        }
+        dst = tmp;
+      }
+      else
+      {
+        SparseMatrix<Scalar,int(SrcStorageOrder)==RowMajor?ColMajor:RowMajor,Index> tmp(m_matrix.rows(), m_matrix.cols());
+        Matrix<Index,Dynamic,1> sizes(tmp.outerSize());
+        sizes.setZero();
+        PermutationMatrix<Dynamic,Dynamic,Index> perm;
+        if((Side==OnTheLeft) ^ Transposed)
+          perm = m_permutation;
+        else
+          perm = m_permutation.transpose();
+
+        for(Index j=0; j<m_matrix.outerSize(); ++j)
+          for(typename MatrixTypeNestedCleaned::InnerIterator it(m_matrix,j); it; ++it)
+            sizes[perm.indices().coeff(it.index())]++;
+        tmp.reserve(sizes);
+        for(Index j=0; j<m_matrix.outerSize(); ++j)
+          for(typename MatrixTypeNestedCleaned::InnerIterator it(m_matrix,j); it; ++it)
+            tmp.insertByOuterInner(perm.indices().coeff(it.index()),j) = it.value();
+        dst = tmp;
+      }
+    }
+
+  protected:
+    const PermutationType& m_permutation;
+    typename MatrixType::Nested m_matrix;
+};
+
+}
+
+
+
+/** \returns the matrix with the permutation applied to the columns
+  */
+template<typename SparseDerived, typename PermDerived>
+inline const internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheRight, false>
+operator*(const SparseMatrixBase<SparseDerived>& matrix, const PermutationBase<PermDerived>& perm)
+{
+  return internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheRight, false>(perm, matrix.derived());
+}
+
+/** \returns the matrix with the permutation applied to the rows
+  */
+template<typename SparseDerived, typename PermDerived>
+inline const internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheLeft, false>
+operator*( const PermutationBase<PermDerived>& perm, const SparseMatrixBase<SparseDerived>& matrix)
+{
+  return internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheLeft, false>(perm, matrix.derived());
+}
+
+
+
+/** \returns the matrix with the inverse permutation applied to the columns.
+  */
+template<typename SparseDerived, typename PermDerived>
+inline const internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheRight, true>
+operator*(const SparseMatrixBase<SparseDerived>& matrix, const Transpose<PermutationBase<PermDerived> >& tperm)
+{
+  return internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheRight, true>(tperm.nestedPermutation(), matrix.derived());
+}
+
+/** \returns the matrix with the inverse permutation applied to the rows.
+  */
+template<typename SparseDerived, typename PermDerived>
+inline const internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheLeft, true>
+operator*(const Transpose<PermutationBase<PermDerived> >& tperm, const SparseMatrixBase<SparseDerived>& matrix)
+{
+  return internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheLeft, true>(tperm.nestedPermutation(), matrix.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_SELFADJOINTVIEW_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseProduct.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseProduct.h
new file mode 100644
index 0000000..cf76630
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseProduct.h
@@ -0,0 +1,188 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEPRODUCT_H
+#define EIGEN_SPARSEPRODUCT_H
+
+namespace Eigen { 
+
+template<typename Lhs, typename Rhs>
+struct SparseSparseProductReturnType
+{
+  typedef typename internal::traits<Lhs>::Scalar Scalar;
+  typedef typename internal::traits<Lhs>::Index Index;
+  enum {
+    LhsRowMajor = internal::traits<Lhs>::Flags & RowMajorBit,
+    RhsRowMajor = internal::traits<Rhs>::Flags & RowMajorBit,
+    TransposeRhs = (!LhsRowMajor) && RhsRowMajor,
+    TransposeLhs = LhsRowMajor && (!RhsRowMajor)
+  };
+
+  typedef typename internal::conditional<TransposeLhs,
+    SparseMatrix<Scalar,0,Index>,
+    typename internal::nested<Lhs,Rhs::RowsAtCompileTime>::type>::type LhsNested;
+
+  typedef typename internal::conditional<TransposeRhs,
+    SparseMatrix<Scalar,0,Index>,
+    typename internal::nested<Rhs,Lhs::RowsAtCompileTime>::type>::type RhsNested;
+
+  typedef SparseSparseProduct<LhsNested, RhsNested> Type;
+};
+
+namespace internal {
+template<typename LhsNested, typename RhsNested>
+struct traits<SparseSparseProduct<LhsNested, RhsNested> >
+{
+  typedef MatrixXpr XprKind;
+  // clean the nested types:
+  typedef typename remove_all<LhsNested>::type _LhsNested;
+  typedef typename remove_all<RhsNested>::type _RhsNested;
+  typedef typename _LhsNested::Scalar Scalar;
+  typedef typename promote_index_type<typename traits<_LhsNested>::Index,
+                                         typename traits<_RhsNested>::Index>::type Index;
+
+  enum {
+    LhsCoeffReadCost = _LhsNested::CoeffReadCost,
+    RhsCoeffReadCost = _RhsNested::CoeffReadCost,
+    LhsFlags = _LhsNested::Flags,
+    RhsFlags = _RhsNested::Flags,
+
+    RowsAtCompileTime    = _LhsNested::RowsAtCompileTime,
+    ColsAtCompileTime    = _RhsNested::ColsAtCompileTime,
+    MaxRowsAtCompileTime = _LhsNested::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = _RhsNested::MaxColsAtCompileTime,
+
+    InnerSize = EIGEN_SIZE_MIN_PREFER_FIXED(_LhsNested::ColsAtCompileTime, _RhsNested::RowsAtCompileTime),
+
+    EvalToRowMajor = (RhsFlags & LhsFlags & RowMajorBit),
+
+    RemovedBits = ~(EvalToRowMajor ? 0 : RowMajorBit),
+
+    Flags = (int(LhsFlags | RhsFlags) & HereditaryBits & RemovedBits)
+          | EvalBeforeAssigningBit
+          | EvalBeforeNestingBit,
+
+    CoeffReadCost = Dynamic
+  };
+
+  typedef Sparse StorageKind;
+};
+
+} // end namespace internal
+
+template<typename LhsNested, typename RhsNested>
+class SparseSparseProduct : internal::no_assignment_operator,
+  public SparseMatrixBase<SparseSparseProduct<LhsNested, RhsNested> >
+{
+  public:
+
+    typedef SparseMatrixBase<SparseSparseProduct> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(SparseSparseProduct)
+
+  private:
+
+    typedef typename internal::traits<SparseSparseProduct>::_LhsNested _LhsNested;
+    typedef typename internal::traits<SparseSparseProduct>::_RhsNested _RhsNested;
+
+  public:
+
+    template<typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE SparseSparseProduct(const Lhs& lhs, const Rhs& rhs)
+      : m_lhs(lhs), m_rhs(rhs), m_tolerance(0), m_conservative(true)
+    {
+      init();
+    }
+
+    template<typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE SparseSparseProduct(const Lhs& lhs, const Rhs& rhs, const RealScalar& tolerance)
+      : m_lhs(lhs), m_rhs(rhs), m_tolerance(tolerance), m_conservative(false)
+    {
+      init();
+    }
+
+    SparseSparseProduct pruned(const Scalar& reference = 0, const RealScalar& epsilon = NumTraits<RealScalar>::dummy_precision()) const
+    {
+      using std::abs;
+      return SparseSparseProduct(m_lhs,m_rhs,abs(reference)*epsilon);
+    }
+
+    template<typename Dest>
+    void evalTo(Dest& result) const
+    {
+      if(m_conservative)
+        internal::conservative_sparse_sparse_product_selector<_LhsNested, _RhsNested, Dest>::run(lhs(),rhs(),result);
+      else
+        internal::sparse_sparse_product_with_pruning_selector<_LhsNested, _RhsNested, Dest>::run(lhs(),rhs(),result,m_tolerance);
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return m_lhs.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return m_rhs.cols(); }
+
+    EIGEN_STRONG_INLINE const _LhsNested& lhs() const { return m_lhs; }
+    EIGEN_STRONG_INLINE const _RhsNested& rhs() const { return m_rhs; }
+
+  protected:
+    void init()
+    {
+      eigen_assert(m_lhs.cols() == m_rhs.rows());
+
+      enum {
+        ProductIsValid = _LhsNested::ColsAtCompileTime==Dynamic
+                      || _RhsNested::RowsAtCompileTime==Dynamic
+                      || int(_LhsNested::ColsAtCompileTime)==int(_RhsNested::RowsAtCompileTime),
+        AreVectors = _LhsNested::IsVectorAtCompileTime && _RhsNested::IsVectorAtCompileTime,
+        SameSizes = EIGEN_PREDICATE_SAME_MATRIX_SIZE(_LhsNested,_RhsNested)
+      };
+      // note to the lost user:
+      //    * for a dot product use: v1.dot(v2)
+      //    * for a coeff-wise product use: v1.cwise()*v2
+      EIGEN_STATIC_ASSERT(ProductIsValid || !(AreVectors && SameSizes),
+        INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS)
+      EIGEN_STATIC_ASSERT(ProductIsValid || !(SameSizes && !AreVectors),
+        INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION)
+      EIGEN_STATIC_ASSERT(ProductIsValid || SameSizes, INVALID_MATRIX_PRODUCT)
+    }
+
+    LhsNested m_lhs;
+    RhsNested m_rhs;
+    RealScalar m_tolerance;
+    bool m_conservative;
+};
+
+// sparse = sparse * sparse
+template<typename Derived>
+template<typename Lhs, typename Rhs>
+inline Derived& SparseMatrixBase<Derived>::operator=(const SparseSparseProduct<Lhs,Rhs>& product)
+{
+  product.evalTo(derived());
+  return derived();
+}
+
+/** \returns an expression of the product of two sparse matrices.
+  * By default a conservative product preserving the symbolic non zeros is performed.
+  * The automatic pruning of the small values can be achieved by calling the pruned() function
+  * in which case a totally different product algorithm is employed:
+  * \code
+  * C = (A*B).pruned();             // supress numerical zeros (exact)
+  * C = (A*B).pruned(ref);
+  * C = (A*B).pruned(ref,epsilon);
+  * \endcode
+  * where \c ref is a meaningful non zero reference value.
+  * */
+template<typename Derived>
+template<typename OtherDerived>
+inline const typename SparseSparseProductReturnType<Derived,OtherDerived>::Type
+SparseMatrixBase<Derived>::operator*(const SparseMatrixBase<OtherDerived> &other) const
+{
+  return typename SparseSparseProductReturnType<Derived,OtherDerived>::Type(derived(), other.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEPRODUCT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseRedux.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseRedux.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SparseCore/SparseRedux.h
rename to vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseRedux.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseSelfAdjointView.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseSelfAdjointView.h
new file mode 100644
index 0000000..0eda96b
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseSelfAdjointView.h
@@ -0,0 +1,507 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_SELFADJOINTVIEW_H
+#define EIGEN_SPARSE_SELFADJOINTVIEW_H
+
+namespace Eigen { 
+
+/** \ingroup SparseCore_Module
+  * \class SparseSelfAdjointView
+  *
+  * \brief Pseudo expression to manipulate a triangular sparse matrix as a selfadjoint matrix.
+  *
+  * \param MatrixType the type of the dense matrix storing the coefficients
+  * \param UpLo can be either \c #Lower or \c #Upper
+  *
+  * This class is an expression of a sefladjoint matrix from a triangular part of a matrix
+  * with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView()
+  * and most of the time this is the only way that it is used.
+  *
+  * \sa SparseMatrixBase::selfadjointView()
+  */
+template<typename Lhs, typename Rhs, int UpLo>
+class SparseSelfAdjointTimeDenseProduct;
+
+template<typename Lhs, typename Rhs, int UpLo>
+class DenseTimeSparseSelfAdjointProduct;
+
+namespace internal {
+  
+template<typename MatrixType, unsigned int UpLo>
+struct traits<SparseSelfAdjointView<MatrixType,UpLo> > : traits<MatrixType> {
+};
+
+template<int SrcUpLo,int DstUpLo,typename MatrixType,int DestOrder>
+void permute_symm_to_symm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DestOrder,typename MatrixType::Index>& _dest, const typename MatrixType::Index* perm = 0);
+
+template<int UpLo,typename MatrixType,int DestOrder>
+void permute_symm_to_fullsymm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DestOrder,typename MatrixType::Index>& _dest, const typename MatrixType::Index* perm = 0);
+
+}
+
+template<typename MatrixType, unsigned int UpLo> class SparseSelfAdjointView
+  : public EigenBase<SparseSelfAdjointView<MatrixType,UpLo> >
+{
+  public:
+
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+    typedef Matrix<Index,Dynamic,1> VectorI;
+    typedef typename MatrixType::Nested MatrixTypeNested;
+    typedef typename internal::remove_all<MatrixTypeNested>::type _MatrixTypeNested;
+
+    inline SparseSelfAdjointView(const MatrixType& matrix) : m_matrix(matrix)
+    {
+      eigen_assert(rows()==cols() && "SelfAdjointView is only for squared matrices");
+    }
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+
+    /** \internal \returns a reference to the nested matrix */
+    const _MatrixTypeNested& matrix() const { return m_matrix; }
+    _MatrixTypeNested& matrix() { return m_matrix.const_cast_derived(); }
+
+    /** \returns an expression of the matrix product between a sparse self-adjoint matrix \c *this and a sparse matrix \a rhs.
+      *
+      * Note that there is no algorithmic advantage of performing such a product compared to a general sparse-sparse matrix product.
+      * Indeed, the SparseSelfadjointView operand is first copied into a temporary SparseMatrix before computing the product.
+      */
+    template<typename OtherDerived>
+    SparseSparseProduct<typename OtherDerived::PlainObject, OtherDerived>
+    operator*(const SparseMatrixBase<OtherDerived>& rhs) const
+    {
+      return SparseSparseProduct<typename OtherDerived::PlainObject, OtherDerived>(*this, rhs.derived());
+    }
+
+    /** \returns an expression of the matrix product between a sparse matrix \a lhs and a sparse self-adjoint matrix \a rhs.
+      *
+      * Note that there is no algorithmic advantage of performing such a product compared to a general sparse-sparse matrix product.
+      * Indeed, the SparseSelfadjointView operand is first copied into a temporary SparseMatrix before computing the product.
+      */
+    template<typename OtherDerived> friend
+    SparseSparseProduct<OtherDerived, typename OtherDerived::PlainObject >
+    operator*(const SparseMatrixBase<OtherDerived>& lhs, const SparseSelfAdjointView& rhs)
+    {
+      return SparseSparseProduct<OtherDerived, typename OtherDerived::PlainObject>(lhs.derived(), rhs);
+    }
+    
+    /** Efficient sparse self-adjoint matrix times dense vector/matrix product */
+    template<typename OtherDerived>
+    SparseSelfAdjointTimeDenseProduct<MatrixType,OtherDerived,UpLo>
+    operator*(const MatrixBase<OtherDerived>& rhs) const
+    {
+      return SparseSelfAdjointTimeDenseProduct<MatrixType,OtherDerived,UpLo>(m_matrix, rhs.derived());
+    }
+
+    /** Efficient dense vector/matrix times sparse self-adjoint matrix product */
+    template<typename OtherDerived> friend
+    DenseTimeSparseSelfAdjointProduct<OtherDerived,MatrixType,UpLo>
+    operator*(const MatrixBase<OtherDerived>& lhs, const SparseSelfAdjointView& rhs)
+    {
+      return DenseTimeSparseSelfAdjointProduct<OtherDerived,_MatrixTypeNested,UpLo>(lhs.derived(), rhs.m_matrix);
+    }
+
+    /** Perform a symmetric rank K update of the selfadjoint matrix \c *this:
+      * \f$ this = this + \alpha ( u u^* ) \f$ where \a u is a vector or matrix.
+      *
+      * \returns a reference to \c *this
+      *
+      * To perform \f$ this = this + \alpha ( u^* u ) \f$ you can simply
+      * call this function with u.adjoint().
+      */
+    template<typename DerivedU>
+    SparseSelfAdjointView& rankUpdate(const SparseMatrixBase<DerivedU>& u, const Scalar& alpha = Scalar(1));
+    
+    /** \internal triggered by sparse_matrix = SparseSelfadjointView; */
+    template<typename DestScalar,int StorageOrder> void evalTo(SparseMatrix<DestScalar,StorageOrder,Index>& _dest) const
+    {
+      internal::permute_symm_to_fullsymm<UpLo>(m_matrix, _dest);
+    }
+    
+    template<typename DestScalar> void evalTo(DynamicSparseMatrix<DestScalar,ColMajor,Index>& _dest) const
+    {
+      // TODO directly evaluate into _dest;
+      SparseMatrix<DestScalar,ColMajor,Index> tmp(_dest.rows(),_dest.cols());
+      internal::permute_symm_to_fullsymm<UpLo>(m_matrix, tmp);
+      _dest = tmp;
+    }
+    
+    /** \returns an expression of P H P^-1 */
+    SparseSymmetricPermutationProduct<_MatrixTypeNested,UpLo> twistedBy(const PermutationMatrix<Dynamic,Dynamic,Index>& perm) const
+    {
+      return SparseSymmetricPermutationProduct<_MatrixTypeNested,UpLo>(m_matrix, perm);
+    }
+    
+    template<typename SrcMatrixType,int SrcUpLo>
+    SparseSelfAdjointView& operator=(const SparseSymmetricPermutationProduct<SrcMatrixType,SrcUpLo>& permutedMatrix)
+    {
+      permutedMatrix.evalTo(*this);
+      return *this;
+    }
+
+
+    SparseSelfAdjointView& operator=(const SparseSelfAdjointView& src)
+    {
+      PermutationMatrix<Dynamic> pnull;
+      return *this = src.twistedBy(pnull);
+    }
+
+    template<typename SrcMatrixType,unsigned int SrcUpLo>
+    SparseSelfAdjointView& operator=(const SparseSelfAdjointView<SrcMatrixType,SrcUpLo>& src)
+    {
+      PermutationMatrix<Dynamic> pnull;
+      return *this = src.twistedBy(pnull);
+    }
+    
+
+    // const SparseLLT<PlainObject, UpLo> llt() const;
+    // const SparseLDLT<PlainObject, UpLo> ldlt() const;
+
+  protected:
+
+    typename MatrixType::Nested m_matrix;
+    mutable VectorI m_countPerRow;
+    mutable VectorI m_countPerCol;
+};
+
+/***************************************************************************
+* Implementation of SparseMatrixBase methods
+***************************************************************************/
+
+template<typename Derived>
+template<unsigned int UpLo>
+const SparseSelfAdjointView<Derived, UpLo> SparseMatrixBase<Derived>::selfadjointView() const
+{
+  return derived();
+}
+
+template<typename Derived>
+template<unsigned int UpLo>
+SparseSelfAdjointView<Derived, UpLo> SparseMatrixBase<Derived>::selfadjointView()
+{
+  return derived();
+}
+
+/***************************************************************************
+* Implementation of SparseSelfAdjointView methods
+***************************************************************************/
+
+template<typename MatrixType, unsigned int UpLo>
+template<typename DerivedU>
+SparseSelfAdjointView<MatrixType,UpLo>&
+SparseSelfAdjointView<MatrixType,UpLo>::rankUpdate(const SparseMatrixBase<DerivedU>& u, const Scalar& alpha)
+{
+  SparseMatrix<Scalar,MatrixType::Flags&RowMajorBit?RowMajor:ColMajor> tmp = u * u.adjoint();
+  if(alpha==Scalar(0))
+    m_matrix.const_cast_derived() = tmp.template triangularView<UpLo>();
+  else
+    m_matrix.const_cast_derived() += alpha * tmp.template triangularView<UpLo>();
+
+  return *this;
+}
+
+/***************************************************************************
+* Implementation of sparse self-adjoint time dense matrix
+***************************************************************************/
+
+namespace internal {
+template<typename Lhs, typename Rhs, int UpLo>
+struct traits<SparseSelfAdjointTimeDenseProduct<Lhs,Rhs,UpLo> >
+ : traits<ProductBase<SparseSelfAdjointTimeDenseProduct<Lhs,Rhs,UpLo>, Lhs, Rhs> >
+{
+  typedef Dense StorageKind;
+};
+}
+
+template<typename Lhs, typename Rhs, int UpLo>
+class SparseSelfAdjointTimeDenseProduct
+  : public ProductBase<SparseSelfAdjointTimeDenseProduct<Lhs,Rhs,UpLo>, Lhs, Rhs>
+{
+  public:
+    EIGEN_PRODUCT_PUBLIC_INTERFACE(SparseSelfAdjointTimeDenseProduct)
+
+    SparseSelfAdjointTimeDenseProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
+    {}
+
+    template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
+    {
+      EIGEN_ONLY_USED_FOR_DEBUG(alpha);
+      // TODO use alpha
+      eigen_assert(alpha==Scalar(1) && "alpha != 1 is not implemented yet, sorry");
+      typedef typename internal::remove_all<Lhs>::type _Lhs;
+      typedef typename _Lhs::InnerIterator LhsInnerIterator;
+      enum {
+        LhsIsRowMajor = (_Lhs::Flags&RowMajorBit)==RowMajorBit,
+        ProcessFirstHalf =
+                 ((UpLo&(Upper|Lower))==(Upper|Lower))
+              || ( (UpLo&Upper) && !LhsIsRowMajor)
+              || ( (UpLo&Lower) && LhsIsRowMajor),
+        ProcessSecondHalf = !ProcessFirstHalf
+      };
+      for (Index j=0; j<m_lhs.outerSize(); ++j)
+      {
+        LhsInnerIterator i(m_lhs,j);
+        if (ProcessSecondHalf)
+        {
+          while (i && i.index()<j) ++i;
+          if(i && i.index()==j)
+          {
+            dest.row(j) += i.value() * m_rhs.row(j);
+            ++i;
+          }
+        }
+        for(; (ProcessFirstHalf ? i && i.index() < j : i) ; ++i)
+        {
+          Index a = LhsIsRowMajor ? j : i.index();
+          Index b = LhsIsRowMajor ? i.index() : j;
+          typename Lhs::Scalar v = i.value();
+          dest.row(a) += (v) * m_rhs.row(b);
+          dest.row(b) += numext::conj(v) * m_rhs.row(a);
+        }
+        if (ProcessFirstHalf && i && (i.index()==j))
+          dest.row(j) += i.value() * m_rhs.row(j);
+      }
+    }
+
+  private:
+    SparseSelfAdjointTimeDenseProduct& operator=(const SparseSelfAdjointTimeDenseProduct&);
+};
+
+namespace internal {
+template<typename Lhs, typename Rhs, int UpLo>
+struct traits<DenseTimeSparseSelfAdjointProduct<Lhs,Rhs,UpLo> >
+ : traits<ProductBase<DenseTimeSparseSelfAdjointProduct<Lhs,Rhs,UpLo>, Lhs, Rhs> >
+{};
+}
+
+template<typename Lhs, typename Rhs, int UpLo>
+class DenseTimeSparseSelfAdjointProduct
+  : public ProductBase<DenseTimeSparseSelfAdjointProduct<Lhs,Rhs,UpLo>, Lhs, Rhs>
+{
+  public:
+    EIGEN_PRODUCT_PUBLIC_INTERFACE(DenseTimeSparseSelfAdjointProduct)
+
+    DenseTimeSparseSelfAdjointProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
+    {}
+
+    template<typename Dest> void scaleAndAddTo(Dest& /*dest*/, const Scalar& /*alpha*/) const
+    {
+      // TODO
+    }
+
+  private:
+    DenseTimeSparseSelfAdjointProduct& operator=(const DenseTimeSparseSelfAdjointProduct&);
+};
+
+/***************************************************************************
+* Implementation of symmetric copies and permutations
+***************************************************************************/
+namespace internal {
+  
+template<typename MatrixType, int UpLo>
+struct traits<SparseSymmetricPermutationProduct<MatrixType,UpLo> > : traits<MatrixType> {
+};
+
+template<int UpLo,typename MatrixType,int DestOrder>
+void permute_symm_to_fullsymm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DestOrder,typename MatrixType::Index>& _dest, const typename MatrixType::Index* perm)
+{
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef SparseMatrix<Scalar,DestOrder,Index> Dest;
+  typedef Matrix<Index,Dynamic,1> VectorI;
+  
+  Dest& dest(_dest.derived());
+  enum {
+    StorageOrderMatch = int(Dest::IsRowMajor) == int(MatrixType::IsRowMajor)
+  };
+  
+  Index size = mat.rows();
+  VectorI count;
+  count.resize(size);
+  count.setZero();
+  dest.resize(size,size);
+  for(Index j = 0; j<size; ++j)
+  {
+    Index jp = perm ? perm[j] : j;
+    for(typename MatrixType::InnerIterator it(mat,j); it; ++it)
+    {
+      Index i = it.index();
+      Index r = it.row();
+      Index c = it.col();
+      Index ip = perm ? perm[i] : i;
+      if(UpLo==(Upper|Lower))
+        count[StorageOrderMatch ? jp : ip]++;
+      else if(r==c)
+        count[ip]++;
+      else if(( UpLo==Lower && r>c) || ( UpLo==Upper && r<c))
+      {
+        count[ip]++;
+        count[jp]++;
+      }
+    }
+  }
+  Index nnz = count.sum();
+  
+  // reserve space
+  dest.resizeNonZeros(nnz);
+  dest.outerIndexPtr()[0] = 0;
+  for(Index j=0; j<size; ++j)
+    dest.outerIndexPtr()[j+1] = dest.outerIndexPtr()[j] + count[j];
+  for(Index j=0; j<size; ++j)
+    count[j] = dest.outerIndexPtr()[j];
+  
+  // copy data
+  for(Index j = 0; j<size; ++j)
+  {
+    for(typename MatrixType::InnerIterator it(mat,j); it; ++it)
+    {
+      Index i = it.index();
+      Index r = it.row();
+      Index c = it.col();
+      
+      Index jp = perm ? perm[j] : j;
+      Index ip = perm ? perm[i] : i;
+      
+      if(UpLo==(Upper|Lower))
+      {
+        Index k = count[StorageOrderMatch ? jp : ip]++;
+        dest.innerIndexPtr()[k] = StorageOrderMatch ? ip : jp;
+        dest.valuePtr()[k] = it.value();
+      }
+      else if(r==c)
+      {
+        Index k = count[ip]++;
+        dest.innerIndexPtr()[k] = ip;
+        dest.valuePtr()[k] = it.value();
+      }
+      else if(( (UpLo&Lower)==Lower && r>c) || ( (UpLo&Upper)==Upper && r<c))
+      {
+        if(!StorageOrderMatch)
+          std::swap(ip,jp);
+        Index k = count[jp]++;
+        dest.innerIndexPtr()[k] = ip;
+        dest.valuePtr()[k] = it.value();
+        k = count[ip]++;
+        dest.innerIndexPtr()[k] = jp;
+        dest.valuePtr()[k] = numext::conj(it.value());
+      }
+    }
+  }
+}
+
+template<int _SrcUpLo,int _DstUpLo,typename MatrixType,int DstOrder>
+void permute_symm_to_symm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DstOrder,typename MatrixType::Index>& _dest, const typename MatrixType::Index* perm)
+{
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  SparseMatrix<Scalar,DstOrder,Index>& dest(_dest.derived());
+  typedef Matrix<Index,Dynamic,1> VectorI;
+  enum {
+    SrcOrder = MatrixType::IsRowMajor ? RowMajor : ColMajor,
+    StorageOrderMatch = int(SrcOrder) == int(DstOrder),
+    DstUpLo = DstOrder==RowMajor ? (_DstUpLo==Upper ? Lower : Upper) : _DstUpLo,
+    SrcUpLo = SrcOrder==RowMajor ? (_SrcUpLo==Upper ? Lower : Upper) : _SrcUpLo
+  };
+  
+  Index size = mat.rows();
+  VectorI count(size);
+  count.setZero();
+  dest.resize(size,size);
+  for(Index j = 0; j<size; ++j)
+  {
+    Index jp = perm ? perm[j] : j;
+    for(typename MatrixType::InnerIterator it(mat,j); it; ++it)
+    {
+      Index i = it.index();
+      if((int(SrcUpLo)==int(Lower) && i<j) || (int(SrcUpLo)==int(Upper) && i>j))
+        continue;
+                  
+      Index ip = perm ? perm[i] : i;
+      count[int(DstUpLo)==int(Lower) ? (std::min)(ip,jp) : (std::max)(ip,jp)]++;
+    }
+  }
+  dest.outerIndexPtr()[0] = 0;
+  for(Index j=0; j<size; ++j)
+    dest.outerIndexPtr()[j+1] = dest.outerIndexPtr()[j] + count[j];
+  dest.resizeNonZeros(dest.outerIndexPtr()[size]);
+  for(Index j=0; j<size; ++j)
+    count[j] = dest.outerIndexPtr()[j];
+  
+  for(Index j = 0; j<size; ++j)
+  {
+    
+    for(typename MatrixType::InnerIterator it(mat,j); it; ++it)
+    {
+      Index i = it.index();
+      if((int(SrcUpLo)==int(Lower) && i<j) || (int(SrcUpLo)==int(Upper) && i>j))
+        continue;
+                  
+      Index jp = perm ? perm[j] : j;
+      Index ip = perm? perm[i] : i;
+      
+      Index k = count[int(DstUpLo)==int(Lower) ? (std::min)(ip,jp) : (std::max)(ip,jp)]++;
+      dest.innerIndexPtr()[k] = int(DstUpLo)==int(Lower) ? (std::max)(ip,jp) : (std::min)(ip,jp);
+      
+      if(!StorageOrderMatch) std::swap(ip,jp);
+      if( ((int(DstUpLo)==int(Lower) && ip<jp) || (int(DstUpLo)==int(Upper) && ip>jp)))
+        dest.valuePtr()[k] = numext::conj(it.value());
+      else
+        dest.valuePtr()[k] = it.value();
+    }
+  }
+}
+
+}
+
+template<typename MatrixType,int UpLo>
+class SparseSymmetricPermutationProduct
+  : public EigenBase<SparseSymmetricPermutationProduct<MatrixType,UpLo> >
+{
+  public:
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+  protected:
+    typedef PermutationMatrix<Dynamic,Dynamic,Index> Perm;
+  public:
+    typedef Matrix<Index,Dynamic,1> VectorI;
+    typedef typename MatrixType::Nested MatrixTypeNested;
+    typedef typename internal::remove_all<MatrixTypeNested>::type _MatrixTypeNested;
+    
+    SparseSymmetricPermutationProduct(const MatrixType& mat, const Perm& perm)
+      : m_matrix(mat), m_perm(perm)
+    {}
+    
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+    
+    template<typename DestScalar, int Options, typename DstIndex>
+    void evalTo(SparseMatrix<DestScalar,Options,DstIndex>& _dest) const
+    {
+//       internal::permute_symm_to_fullsymm<UpLo>(m_matrix,_dest,m_perm.indices().data());
+      SparseMatrix<DestScalar,(Options&RowMajor)==RowMajor ? ColMajor : RowMajor, DstIndex> tmp;
+      internal::permute_symm_to_fullsymm<UpLo>(m_matrix,tmp,m_perm.indices().data());
+      _dest = tmp;
+    }
+    
+    template<typename DestType,unsigned int DestUpLo> void evalTo(SparseSelfAdjointView<DestType,DestUpLo>& dest) const
+    {
+      internal::permute_symm_to_symm<UpLo,DestUpLo>(m_matrix,dest.matrix(),m_perm.indices().data());
+    }
+    
+  protected:
+    MatrixTypeNested m_matrix;
+    const Perm& m_perm;
+
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_SELFADJOINTVIEW_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseSparseProductWithPruning.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
new file mode 100644
index 0000000..fcc18f5
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
@@ -0,0 +1,150 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSESPARSEPRODUCTWITHPRUNING_H
+#define EIGEN_SPARSESPARSEPRODUCTWITHPRUNING_H
+
+namespace Eigen { 
+
+namespace internal {
+
+
+// perform a pseudo in-place sparse * sparse product assuming all matrices are col major
+template<typename Lhs, typename Rhs, typename ResultType>
+static void sparse_sparse_product_with_pruning_impl(const Lhs& lhs, const Rhs& rhs, ResultType& res, const typename ResultType::RealScalar& tolerance)
+{
+  // return sparse_sparse_product_with_pruning_impl2(lhs,rhs,res);
+
+  typedef typename remove_all<Lhs>::type::Scalar Scalar;
+  typedef typename remove_all<Lhs>::type::Index Index;
+
+  // make sure to call innerSize/outerSize since we fake the storage order.
+  Index rows = lhs.innerSize();
+  Index cols = rhs.outerSize();
+  //Index size = lhs.outerSize();
+  eigen_assert(lhs.outerSize() == rhs.innerSize());
+
+  // allocate a temporary buffer
+  AmbiVector<Scalar,Index> tempVector(rows);
+
+  // estimate the number of non zero entries
+  // given a rhs column containing Y non zeros, we assume that the respective Y columns
+  // of the lhs differs in average of one non zeros, thus the number of non zeros for
+  // the product of a rhs column with the lhs is X+Y where X is the average number of non zero
+  // per column of the lhs.
+  // Therefore, we have nnz(lhs*rhs) = nnz(lhs) + nnz(rhs)
+  Index estimated_nnz_prod = lhs.nonZeros() + rhs.nonZeros();
+
+  // mimics a resizeByInnerOuter:
+  if(ResultType::IsRowMajor)
+    res.resize(cols, rows);
+  else
+    res.resize(rows, cols);
+
+  res.reserve(estimated_nnz_prod);
+  double ratioColRes = double(estimated_nnz_prod)/double(lhs.rows()*rhs.cols());
+  for (Index j=0; j<cols; ++j)
+  {
+    // FIXME:
+    //double ratioColRes = (double(rhs.innerVector(j).nonZeros()) + double(lhs.nonZeros())/double(lhs.cols()))/double(lhs.rows());
+    // let's do a more accurate determination of the nnz ratio for the current column j of res
+    tempVector.init(ratioColRes);
+    tempVector.setZero();
+    for (typename Rhs::InnerIterator rhsIt(rhs, j); rhsIt; ++rhsIt)
+    {
+      // FIXME should be written like this: tmp += rhsIt.value() * lhs.col(rhsIt.index())
+      tempVector.restart();
+      Scalar x = rhsIt.value();
+      for (typename Lhs::InnerIterator lhsIt(lhs, rhsIt.index()); lhsIt; ++lhsIt)
+      {
+        tempVector.coeffRef(lhsIt.index()) += lhsIt.value() * x;
+      }
+    }
+    res.startVec(j);
+    for (typename AmbiVector<Scalar,Index>::Iterator it(tempVector,tolerance); it; ++it)
+      res.insertBackByOuterInner(j,it.index()) = it.value();
+  }
+  res.finalize();
+}
+
+template<typename Lhs, typename Rhs, typename ResultType,
+  int LhsStorageOrder = traits<Lhs>::Flags&RowMajorBit,
+  int RhsStorageOrder = traits<Rhs>::Flags&RowMajorBit,
+  int ResStorageOrder = traits<ResultType>::Flags&RowMajorBit>
+struct sparse_sparse_product_with_pruning_selector;
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,ColMajor>
+{
+  typedef typename traits<typename remove_all<Lhs>::type>::Scalar Scalar;
+  typedef typename ResultType::RealScalar RealScalar;
+
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+  {
+    typename remove_all<ResultType>::type _res(res.rows(), res.cols());
+    internal::sparse_sparse_product_with_pruning_impl<Lhs,Rhs,ResultType>(lhs, rhs, _res, tolerance);
+    res.swap(_res);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,RowMajor>
+{
+  typedef typename ResultType::RealScalar RealScalar;
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+  {
+    // we need a col-major matrix to hold the result
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::Index> SparseTemporaryType;
+    SparseTemporaryType _res(res.rows(), res.cols());
+    internal::sparse_sparse_product_with_pruning_impl<Lhs,Rhs,SparseTemporaryType>(lhs, rhs, _res, tolerance);
+    res = _res;
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,RowMajor>
+{
+  typedef typename ResultType::RealScalar RealScalar;
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+  {
+    // let's transpose the product to get a column x column product
+    typename remove_all<ResultType>::type _res(res.rows(), res.cols());
+    internal::sparse_sparse_product_with_pruning_impl<Rhs,Lhs,ResultType>(rhs, lhs, _res, tolerance);
+    res.swap(_res);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,ColMajor>
+{
+  typedef typename ResultType::RealScalar RealScalar;
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename Lhs::Index> ColMajorMatrixLhs;
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename Lhs::Index> ColMajorMatrixRhs;
+    ColMajorMatrixLhs colLhs(lhs);
+    ColMajorMatrixRhs colRhs(rhs);
+    internal::sparse_sparse_product_with_pruning_impl<ColMajorMatrixLhs,ColMajorMatrixRhs,ResultType>(colLhs, colRhs, res, tolerance);
+
+    // let's transpose the product to get a column x column product
+//     typedef SparseMatrix<typename ResultType::Scalar> SparseTemporaryType;
+//     SparseTemporaryType _res(res.cols(), res.rows());
+//     sparse_sparse_product_with_pruning_impl<Rhs,Lhs,SparseTemporaryType>(rhs, lhs, _res);
+//     res = _res.transpose();
+  }
+};
+
+// NOTE the 2 others cases (col row *) must never occur since they are caught
+// by ProductReturnType which transforms it to (col col *) by evaluating rhs.
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSESPARSEPRODUCTWITHPRUNING_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseTranspose.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseTranspose.h
new file mode 100644
index 0000000..76d031d
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseTranspose.h
@@ -0,0 +1,63 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSETRANSPOSE_H
+#define EIGEN_SPARSETRANSPOSE_H
+
+namespace Eigen { 
+
+template<typename MatrixType> class TransposeImpl<MatrixType,Sparse>
+  : public SparseMatrixBase<Transpose<MatrixType> >
+{
+    typedef typename internal::remove_all<typename MatrixType::Nested>::type _MatrixTypeNested;
+  public:
+
+    EIGEN_SPARSE_PUBLIC_INTERFACE(Transpose<MatrixType> )
+
+    class InnerIterator;
+    class ReverseInnerIterator;
+
+    inline Index nonZeros() const { return derived().nestedExpression().nonZeros(); }
+};
+
+// NOTE: VC10 and VC11 trigger an ICE if don't put typename TransposeImpl<MatrixType,Sparse>:: in front of Index,
+// a typedef typename TransposeImpl<MatrixType,Sparse>::Index Index;
+// does not fix the issue.
+// An alternative is to define the nested class in the parent class itself.
+template<typename MatrixType> class TransposeImpl<MatrixType,Sparse>::InnerIterator
+  : public _MatrixTypeNested::InnerIterator
+{
+    typedef typename _MatrixTypeNested::InnerIterator Base;
+    typedef typename TransposeImpl::Index Index;
+  public:
+
+    EIGEN_STRONG_INLINE InnerIterator(const TransposeImpl& trans, typename TransposeImpl<MatrixType,Sparse>::Index outer)
+      : Base(trans.derived().nestedExpression(), outer)
+    {}
+    typename TransposeImpl<MatrixType,Sparse>::Index row() const { return Base::col(); }
+    typename TransposeImpl<MatrixType,Sparse>::Index col() const { return Base::row(); }
+};
+
+template<typename MatrixType> class TransposeImpl<MatrixType,Sparse>::ReverseInnerIterator
+  : public _MatrixTypeNested::ReverseInnerIterator
+{
+    typedef typename _MatrixTypeNested::ReverseInnerIterator Base;
+    typedef typename TransposeImpl::Index Index;
+  public:
+
+    EIGEN_STRONG_INLINE ReverseInnerIterator(const TransposeImpl& xpr, typename TransposeImpl<MatrixType,Sparse>::Index outer)
+      : Base(xpr.derived().nestedExpression(), outer)
+    {}
+    typename TransposeImpl<MatrixType,Sparse>::Index row() const { return Base::col(); }
+    typename TransposeImpl<MatrixType,Sparse>::Index col() const { return Base::row(); }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSETRANSPOSE_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseTriangularView.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseTriangularView.h
new file mode 100644
index 0000000..333127b
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseTriangularView.h
@@ -0,0 +1,179 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_TRIANGULARVIEW_H
+#define EIGEN_SPARSE_TRIANGULARVIEW_H
+
+namespace Eigen { 
+
+namespace internal {
+  
+template<typename MatrixType, int Mode>
+struct traits<SparseTriangularView<MatrixType,Mode> >
+: public traits<MatrixType>
+{};
+
+} // namespace internal
+
+template<typename MatrixType, int Mode> class SparseTriangularView
+  : public SparseMatrixBase<SparseTriangularView<MatrixType,Mode> >
+{
+    enum { SkipFirst = ((Mode&Lower) && !(MatrixType::Flags&RowMajorBit))
+                    || ((Mode&Upper) &&  (MatrixType::Flags&RowMajorBit)),
+           SkipLast = !SkipFirst,
+           SkipDiag = (Mode&ZeroDiag) ? 1 : 0,
+           HasUnitDiag = (Mode&UnitDiag) ? 1 : 0
+    };
+
+  public:
+    
+    EIGEN_SPARSE_PUBLIC_INTERFACE(SparseTriangularView)
+
+    class InnerIterator;
+    class ReverseInnerIterator;
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+
+    typedef typename MatrixType::Nested MatrixTypeNested;
+    typedef typename internal::remove_reference<MatrixTypeNested>::type MatrixTypeNestedNonRef;
+    typedef typename internal::remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
+
+    inline SparseTriangularView(const MatrixType& matrix) : m_matrix(matrix) {}
+
+    /** \internal */
+    inline const MatrixTypeNestedCleaned& nestedExpression() const { return m_matrix; }
+
+    template<typename OtherDerived>
+    typename internal::plain_matrix_type_column_major<OtherDerived>::type
+    solve(const MatrixBase<OtherDerived>& other) const;
+
+    template<typename OtherDerived> void solveInPlace(MatrixBase<OtherDerived>& other) const;
+    template<typename OtherDerived> void solveInPlace(SparseMatrixBase<OtherDerived>& other) const;
+
+  protected:
+    MatrixTypeNested m_matrix;
+};
+
+template<typename MatrixType, int Mode>
+class SparseTriangularView<MatrixType,Mode>::InnerIterator : public MatrixTypeNestedCleaned::InnerIterator
+{
+    typedef typename MatrixTypeNestedCleaned::InnerIterator Base;
+    typedef typename SparseTriangularView::Index Index;
+  public:
+
+    EIGEN_STRONG_INLINE InnerIterator(const SparseTriangularView& view, Index outer)
+      : Base(view.nestedExpression(), outer), m_returnOne(false)
+    {
+      if(SkipFirst)
+      {
+        while((*this) && ((HasUnitDiag||SkipDiag)  ? this->index()<=outer : this->index()<outer))
+          Base::operator++();
+        if(HasUnitDiag)
+          m_returnOne = true;
+      }
+      else if(HasUnitDiag && ((!Base::operator bool()) || Base::index()>=Base::outer()))
+      {
+        if((!SkipFirst) && Base::operator bool())
+          Base::operator++();
+        m_returnOne = true;
+      }
+    }
+
+    EIGEN_STRONG_INLINE InnerIterator& operator++()
+    {
+      if(HasUnitDiag && m_returnOne)
+        m_returnOne = false;
+      else
+      {
+        Base::operator++();
+        if(HasUnitDiag && (!SkipFirst) && ((!Base::operator bool()) || Base::index()>=Base::outer()))
+        {
+          if((!SkipFirst) && Base::operator bool())
+            Base::operator++();
+          m_returnOne = true;
+        }
+      }
+      return *this;
+    }
+
+    inline Index row() const { return (MatrixType::Flags&RowMajorBit ? Base::outer() : this->index()); }
+    inline Index col() const { return (MatrixType::Flags&RowMajorBit ? this->index() : Base::outer()); }
+    inline Index index() const
+    {
+      if(HasUnitDiag && m_returnOne)  return Base::outer();
+      else                            return Base::index();
+    }
+    inline Scalar value() const
+    {
+      if(HasUnitDiag && m_returnOne)  return Scalar(1);
+      else                            return Base::value();
+    }
+
+    EIGEN_STRONG_INLINE operator bool() const
+    {
+      if(HasUnitDiag && m_returnOne)
+        return true;
+      if(SkipFirst) return  Base::operator bool();
+      else
+      {
+        if (SkipDiag) return (Base::operator bool() && this->index() < this->outer());
+        else return (Base::operator bool() && this->index() <= this->outer());
+      }
+    }
+  protected:
+    bool m_returnOne;
+};
+
+template<typename MatrixType, int Mode>
+class SparseTriangularView<MatrixType,Mode>::ReverseInnerIterator : public MatrixTypeNestedCleaned::ReverseInnerIterator
+{
+    typedef typename MatrixTypeNestedCleaned::ReverseInnerIterator Base;
+    typedef typename SparseTriangularView::Index Index;
+  public:
+
+    EIGEN_STRONG_INLINE ReverseInnerIterator(const SparseTriangularView& view, Index outer)
+      : Base(view.nestedExpression(), outer)
+    {
+      eigen_assert((!HasUnitDiag) && "ReverseInnerIterator does not support yet triangular views with a unit diagonal");
+      if(SkipLast) {
+        while((*this) && (SkipDiag ? this->index()>=outer : this->index()>outer))
+          --(*this);
+      }
+    }
+
+    EIGEN_STRONG_INLINE ReverseInnerIterator& operator--()
+    { Base::operator--(); return *this; }
+
+    inline Index row() const { return Base::row(); }
+    inline Index col() const { return Base::col(); }
+
+    EIGEN_STRONG_INLINE operator bool() const
+    {
+      if (SkipLast) return Base::operator bool() ;
+      else
+      {
+        if(SkipDiag) return (Base::operator bool() && this->index() > this->outer());
+        else return (Base::operator bool() && this->index() >= this->outer());
+      }
+    }
+};
+
+template<typename Derived>
+template<int Mode>
+inline const SparseTriangularView<Derived, Mode>
+SparseMatrixBase<Derived>::triangularView() const
+{
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_TRIANGULARVIEW_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseUtil.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseUtil.h
new file mode 100644
index 0000000..d627546
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseUtil.h
@@ -0,0 +1,172 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEUTIL_H
+#define EIGEN_SPARSEUTIL_H
+
+namespace Eigen { 
+
+#ifdef NDEBUG
+#define EIGEN_DBG_SPARSE(X)
+#else
+#define EIGEN_DBG_SPARSE(X) X
+#endif
+
+#define EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, Op) \
+template<typename OtherDerived> \
+EIGEN_STRONG_INLINE Derived& operator Op(const Eigen::SparseMatrixBase<OtherDerived>& other) \
+{ \
+  return Base::operator Op(other.derived()); \
+} \
+EIGEN_STRONG_INLINE Derived& operator Op(const Derived& other) \
+{ \
+  return Base::operator Op(other); \
+}
+
+#define EIGEN_SPARSE_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, Op) \
+template<typename Other> \
+EIGEN_STRONG_INLINE Derived& operator Op(const Other& scalar) \
+{ \
+  return Base::operator Op(scalar); \
+}
+
+#define EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATORS(Derived) \
+EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, =) \
+EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, +=) \
+EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, -=) \
+EIGEN_SPARSE_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, *=) \
+EIGEN_SPARSE_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, /=)
+
+#define _EIGEN_SPARSE_PUBLIC_INTERFACE(Derived, BaseClass) \
+  typedef BaseClass Base; \
+  typedef typename Eigen::internal::traits<Derived >::Scalar Scalar; \
+  typedef typename Eigen::NumTraits<Scalar>::Real RealScalar; \
+  typedef typename Eigen::internal::nested<Derived >::type Nested; \
+  typedef typename Eigen::internal::traits<Derived >::StorageKind StorageKind; \
+  typedef typename Eigen::internal::traits<Derived >::Index Index; \
+  enum { RowsAtCompileTime = Eigen::internal::traits<Derived >::RowsAtCompileTime, \
+        ColsAtCompileTime = Eigen::internal::traits<Derived >::ColsAtCompileTime, \
+        Flags = Eigen::internal::traits<Derived >::Flags, \
+        CoeffReadCost = Eigen::internal::traits<Derived >::CoeffReadCost, \
+        SizeAtCompileTime = Base::SizeAtCompileTime, \
+        IsVectorAtCompileTime = Base::IsVectorAtCompileTime }; \
+  using Base::derived; \
+  using Base::const_cast_derived;
+
+#define EIGEN_SPARSE_PUBLIC_INTERFACE(Derived) \
+  _EIGEN_SPARSE_PUBLIC_INTERFACE(Derived, Eigen::SparseMatrixBase<Derived >)
+
+const int CoherentAccessPattern     = 0x1;
+const int InnerRandomAccessPattern  = 0x2 | CoherentAccessPattern;
+const int OuterRandomAccessPattern  = 0x4 | CoherentAccessPattern;
+const int RandomAccessPattern       = 0x8 | OuterRandomAccessPattern | InnerRandomAccessPattern;
+
+template<typename _Scalar, int _Flags = 0, typename _Index = int>  class SparseMatrix;
+template<typename _Scalar, int _Flags = 0, typename _Index = int>  class DynamicSparseMatrix;
+template<typename _Scalar, int _Flags = 0, typename _Index = int>  class SparseVector;
+template<typename _Scalar, int _Flags = 0, typename _Index = int>  class MappedSparseMatrix;
+
+template<typename MatrixType, int Mode>           class SparseTriangularView;
+template<typename MatrixType, unsigned int UpLo>  class SparseSelfAdjointView;
+template<typename Lhs, typename Rhs>              class SparseDiagonalProduct;
+template<typename MatrixType> class SparseView;
+
+template<typename Lhs, typename Rhs>        class SparseSparseProduct;
+template<typename Lhs, typename Rhs>        class SparseTimeDenseProduct;
+template<typename Lhs, typename Rhs>        class DenseTimeSparseProduct;
+template<typename Lhs, typename Rhs, bool Transpose> class SparseDenseOuterProduct;
+
+template<typename Lhs, typename Rhs> struct SparseSparseProductReturnType;
+template<typename Lhs, typename Rhs,
+         int InnerSize = EIGEN_SIZE_MIN_PREFER_FIXED(internal::traits<Lhs>::ColsAtCompileTime,internal::traits<Rhs>::RowsAtCompileTime)> struct DenseSparseProductReturnType;         
+template<typename Lhs, typename Rhs,
+         int InnerSize = EIGEN_SIZE_MIN_PREFER_FIXED(internal::traits<Lhs>::ColsAtCompileTime,internal::traits<Rhs>::RowsAtCompileTime)> struct SparseDenseProductReturnType;
+template<typename MatrixType,int UpLo> class SparseSymmetricPermutationProduct;
+
+namespace internal {
+
+template<typename T,int Rows,int Cols> struct sparse_eval;
+
+template<typename T> struct eval<T,Sparse>
+  : public sparse_eval<T, traits<T>::RowsAtCompileTime,traits<T>::ColsAtCompileTime>
+{};
+
+template<typename T,int Cols> struct sparse_eval<T,1,Cols> {
+    typedef typename traits<T>::Scalar _Scalar;
+    typedef typename traits<T>::Index _Index;
+  public:
+    typedef SparseVector<_Scalar, RowMajor, _Index> type;
+};
+
+template<typename T,int Rows> struct sparse_eval<T,Rows,1> {
+    typedef typename traits<T>::Scalar _Scalar;
+    typedef typename traits<T>::Index _Index;
+  public:
+    typedef SparseVector<_Scalar, ColMajor, _Index> type;
+};
+
+template<typename T,int Rows,int Cols> struct sparse_eval {
+    typedef typename traits<T>::Scalar _Scalar;
+    typedef typename traits<T>::Index _Index;
+    enum { _Options = ((traits<T>::Flags&RowMajorBit)==RowMajorBit) ? RowMajor : ColMajor };
+  public:
+    typedef SparseMatrix<_Scalar, _Options, _Index> type;
+};
+
+template<typename T> struct sparse_eval<T,1,1> {
+    typedef typename traits<T>::Scalar _Scalar;
+  public:
+    typedef Matrix<_Scalar, 1, 1> type;
+};
+
+template<typename T> struct plain_matrix_type<T,Sparse>
+{
+  typedef typename traits<T>::Scalar _Scalar;
+  typedef typename traits<T>::Index _Index;
+  enum { _Options = ((traits<T>::Flags&RowMajorBit)==RowMajorBit) ? RowMajor : ColMajor };
+  public:
+    typedef SparseMatrix<_Scalar, _Options, _Index> type;
+};
+
+} // end namespace internal
+
+/** \ingroup SparseCore_Module
+  *
+  * \class Triplet
+  *
+  * \brief A small structure to hold a non zero as a triplet (i,j,value).
+  *
+  * \sa SparseMatrix::setFromTriplets()
+  */
+template<typename Scalar, typename Index=typename SparseMatrix<Scalar>::Index >
+class Triplet
+{
+public:
+  Triplet() : m_row(0), m_col(0), m_value(0) {}
+
+  Triplet(const Index& i, const Index& j, const Scalar& v = Scalar(0))
+    : m_row(i), m_col(j), m_value(v)
+  {}
+
+  /** \returns the row index of the element */
+  const Index& row() const { return m_row; }
+
+  /** \returns the column index of the element */
+  const Index& col() const { return m_col; }
+
+  /** \returns the value of the element */
+  const Scalar& value() const { return m_value; }
+protected:
+  Index m_row, m_col;
+  Scalar m_value;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEUTIL_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseVector.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseVector.h
new file mode 100644
index 0000000..49865d0
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseVector.h
@@ -0,0 +1,448 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEVECTOR_H
+#define EIGEN_SPARSEVECTOR_H
+
+namespace Eigen { 
+
+/** \ingroup SparseCore_Module
+  * \class SparseVector
+  *
+  * \brief a sparse vector class
+  *
+  * \tparam _Scalar the scalar type, i.e. the type of the coefficients
+  *
+  * See http://www.netlib.org/linalg/html_templates/node91.html for details on the storage scheme.
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_SPARSEVECTOR_PLUGIN.
+  */
+
+namespace internal {
+template<typename _Scalar, int _Options, typename _Index>
+struct traits<SparseVector<_Scalar, _Options, _Index> >
+{
+  typedef _Scalar Scalar;
+  typedef _Index Index;
+  typedef Sparse StorageKind;
+  typedef MatrixXpr XprKind;
+  enum {
+    IsColVector = (_Options & RowMajorBit) ? 0 : 1,
+
+    RowsAtCompileTime = IsColVector ? Dynamic : 1,
+    ColsAtCompileTime = IsColVector ? 1 : Dynamic,
+    MaxRowsAtCompileTime = RowsAtCompileTime,
+    MaxColsAtCompileTime = ColsAtCompileTime,
+    Flags = _Options | NestByRefBit | LvalueBit | (IsColVector ? 0 : RowMajorBit),
+    CoeffReadCost = NumTraits<Scalar>::ReadCost,
+    SupportedAccessPatterns = InnerRandomAccessPattern
+  };
+};
+
+// Sparse-Vector-Assignment kinds:
+enum {
+  SVA_RuntimeSwitch,
+  SVA_Inner,
+  SVA_Outer
+};
+
+template< typename Dest, typename Src,
+          int AssignmentKind = !bool(Src::IsVectorAtCompileTime) ? SVA_RuntimeSwitch
+                             : Src::InnerSizeAtCompileTime==1 ? SVA_Outer
+                             : SVA_Inner>
+struct sparse_vector_assign_selector;
+
+}
+
+template<typename _Scalar, int _Options, typename _Index>
+class SparseVector
+  : public SparseMatrixBase<SparseVector<_Scalar, _Options, _Index> >
+{
+    typedef SparseMatrixBase<SparseVector> SparseBase;
+    
+  public:
+    EIGEN_SPARSE_PUBLIC_INTERFACE(SparseVector)
+    EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseVector, +=)
+    EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseVector, -=)
+    
+    typedef internal::CompressedStorage<Scalar,Index> Storage;
+    enum { IsColVector = internal::traits<SparseVector>::IsColVector };
+    
+    enum {
+      Options = _Options
+    };
+    
+    EIGEN_STRONG_INLINE Index rows() const { return IsColVector ? m_size : 1; }
+    EIGEN_STRONG_INLINE Index cols() const { return IsColVector ? 1 : m_size; }
+    EIGEN_STRONG_INLINE Index innerSize() const { return m_size; }
+    EIGEN_STRONG_INLINE Index outerSize() const { return 1; }
+
+    EIGEN_STRONG_INLINE const Scalar* valuePtr() const { return &m_data.value(0); }
+    EIGEN_STRONG_INLINE Scalar* valuePtr() { return &m_data.value(0); }
+
+    EIGEN_STRONG_INLINE const Index* innerIndexPtr() const { return &m_data.index(0); }
+    EIGEN_STRONG_INLINE Index* innerIndexPtr() { return &m_data.index(0); }
+    
+    /** \internal */
+    inline Storage& data() { return m_data; }
+    /** \internal */
+    inline const Storage& data() const { return m_data; }
+
+    inline Scalar coeff(Index row, Index col) const
+    {
+      eigen_assert(IsColVector ? (col==0 && row>=0 && row<m_size) : (row==0 && col>=0 && col<m_size));
+      return coeff(IsColVector ? row : col);
+    }
+    inline Scalar coeff(Index i) const
+    {
+      eigen_assert(i>=0 && i<m_size);
+      return m_data.at(i);
+    }
+
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      eigen_assert(IsColVector ? (col==0 && row>=0 && row<m_size) : (row==0 && col>=0 && col<m_size));
+      return coeff(IsColVector ? row : col);
+    }
+
+    /** \returns a reference to the coefficient value at given index \a i
+      * This operation involes a log(rho*size) binary search. If the coefficient does not
+      * exist yet, then a sorted insertion into a sequential buffer is performed.
+      *
+      * This insertion might be very costly if the number of nonzeros above \a i is large.
+      */
+    inline Scalar& coeffRef(Index i)
+    {
+      eigen_assert(i>=0 && i<m_size);
+      return m_data.atWithInsertion(i);
+    }
+
+  public:
+
+    class InnerIterator;
+    class ReverseInnerIterator;
+
+    inline void setZero() { m_data.clear(); }
+
+    /** \returns the number of non zero coefficients */
+    inline Index nonZeros() const  { return static_cast<Index>(m_data.size()); }
+
+    inline void startVec(Index outer)
+    {
+      EIGEN_UNUSED_VARIABLE(outer);
+      eigen_assert(outer==0);
+    }
+
+    inline Scalar& insertBackByOuterInner(Index outer, Index inner)
+    {
+      EIGEN_UNUSED_VARIABLE(outer);
+      eigen_assert(outer==0);
+      return insertBack(inner);
+    }
+    inline Scalar& insertBack(Index i)
+    {
+      m_data.append(0, i);
+      return m_data.value(m_data.size()-1);
+    }
+
+    inline Scalar& insert(Index row, Index col)
+    {
+      eigen_assert(IsColVector ? (col==0 && row>=0 && row<m_size) : (row==0 && col>=0 && col<m_size));
+      
+      Index inner = IsColVector ? row : col;
+      Index outer = IsColVector ? col : row;
+      EIGEN_ONLY_USED_FOR_DEBUG(outer);
+      eigen_assert(outer==0);
+      return insert(inner);
+    }
+    Scalar& insert(Index i)
+    {
+      eigen_assert(i>=0 && i<m_size);
+      
+      Index startId = 0;
+      Index p = Index(m_data.size()) - 1;
+      // TODO smart realloc
+      m_data.resize(p+2,1);
+
+      while ( (p >= startId) && (m_data.index(p) > i) )
+      {
+        m_data.index(p+1) = m_data.index(p);
+        m_data.value(p+1) = m_data.value(p);
+        --p;
+      }
+      m_data.index(p+1) = i;
+      m_data.value(p+1) = 0;
+      return m_data.value(p+1);
+    }
+
+    /**
+      */
+    inline void reserve(Index reserveSize) { m_data.reserve(reserveSize); }
+
+
+    inline void finalize() {}
+
+    void prune(const Scalar& reference, const RealScalar& epsilon = NumTraits<RealScalar>::dummy_precision())
+    {
+      m_data.prune(reference,epsilon);
+    }
+
+    void resize(Index rows, Index cols)
+    {
+      eigen_assert(rows==1 || cols==1);
+      resize(IsColVector ? rows : cols);
+    }
+
+    void resize(Index newSize)
+    {
+      m_size = newSize;
+      m_data.clear();
+    }
+
+    void resizeNonZeros(Index size) { m_data.resize(size); }
+
+    inline SparseVector() : m_size(0) { check_template_parameters(); resize(0); }
+
+    inline SparseVector(Index size) : m_size(0) { check_template_parameters(); resize(size); }
+
+    inline SparseVector(Index rows, Index cols) : m_size(0) { check_template_parameters(); resize(rows,cols); }
+
+    template<typename OtherDerived>
+    inline SparseVector(const SparseMatrixBase<OtherDerived>& other)
+      : m_size(0)
+    {
+      check_template_parameters();
+      *this = other.derived();
+    }
+
+    inline SparseVector(const SparseVector& other)
+      : SparseBase(other), m_size(0)
+    {
+      check_template_parameters();
+      *this = other.derived();
+    }
+
+    /** Swaps the values of \c *this and \a other.
+      * Overloaded for performance: this version performs a \em shallow swap by swaping pointers and attributes only.
+      * \sa SparseMatrixBase::swap()
+      */
+    inline void swap(SparseVector& other)
+    {
+      std::swap(m_size, other.m_size);
+      m_data.swap(other.m_data);
+    }
+
+    inline SparseVector& operator=(const SparseVector& other)
+    {
+      if (other.isRValue())
+      {
+        swap(other.const_cast_derived());
+      }
+      else
+      {
+        resize(other.size());
+        m_data = other.m_data;
+      }
+      return *this;
+    }
+
+    template<typename OtherDerived>
+    inline SparseVector& operator=(const SparseMatrixBase<OtherDerived>& other)
+    {
+      SparseVector tmp(other.size());
+      internal::sparse_vector_assign_selector<SparseVector,OtherDerived>::run(tmp,other.derived());
+      this->swap(tmp);
+      return *this;
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename Lhs, typename Rhs>
+    inline SparseVector& operator=(const SparseSparseProduct<Lhs,Rhs>& product)
+    {
+      return Base::operator=(product);
+    }
+    #endif
+
+    friend std::ostream & operator << (std::ostream & s, const SparseVector& m)
+    {
+      for (Index i=0; i<m.nonZeros(); ++i)
+        s << "(" << m.m_data.value(i) << "," << m.m_data.index(i) << ") ";
+      s << std::endl;
+      return s;
+    }
+
+    /** Destructor */
+    inline ~SparseVector() {}
+
+    /** Overloaded for performance */
+    Scalar sum() const;
+
+  public:
+
+    /** \internal \deprecated use setZero() and reserve() */
+    EIGEN_DEPRECATED void startFill(Index reserve)
+    {
+      setZero();
+      m_data.reserve(reserve);
+    }
+
+    /** \internal \deprecated use insertBack(Index,Index) */
+    EIGEN_DEPRECATED Scalar& fill(Index r, Index c)
+    {
+      eigen_assert(r==0 || c==0);
+      return fill(IsColVector ? r : c);
+    }
+
+    /** \internal \deprecated use insertBack(Index) */
+    EIGEN_DEPRECATED Scalar& fill(Index i)
+    {
+      m_data.append(0, i);
+      return m_data.value(m_data.size()-1);
+    }
+
+    /** \internal \deprecated use insert(Index,Index) */
+    EIGEN_DEPRECATED Scalar& fillrand(Index r, Index c)
+    {
+      eigen_assert(r==0 || c==0);
+      return fillrand(IsColVector ? r : c);
+    }
+
+    /** \internal \deprecated use insert(Index) */
+    EIGEN_DEPRECATED Scalar& fillrand(Index i)
+    {
+      return insert(i);
+    }
+
+    /** \internal \deprecated use finalize() */
+    EIGEN_DEPRECATED void endFill() {}
+    
+    // These two functions were here in the 3.1 release, so let's keep them in case some code rely on them.
+    /** \internal \deprecated use data() */
+    EIGEN_DEPRECATED Storage& _data() { return m_data; }
+    /** \internal \deprecated use data() */
+    EIGEN_DEPRECATED const Storage& _data() const { return m_data; }
+    
+#   ifdef EIGEN_SPARSEVECTOR_PLUGIN
+#     include EIGEN_SPARSEVECTOR_PLUGIN
+#   endif
+
+protected:
+  
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT(NumTraits<Index>::IsSigned,THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE);
+      EIGEN_STATIC_ASSERT((_Options&(ColMajor|RowMajor))==Options,INVALID_MATRIX_TEMPLATE_PARAMETERS);
+    }
+    
+    Storage m_data;
+    Index m_size;
+};
+
+template<typename Scalar, int _Options, typename _Index>
+class SparseVector<Scalar,_Options,_Index>::InnerIterator
+{
+  public:
+    InnerIterator(const SparseVector& vec, Index outer=0)
+      : m_data(vec.m_data), m_id(0), m_end(static_cast<Index>(m_data.size()))
+    {
+      EIGEN_UNUSED_VARIABLE(outer);
+      eigen_assert(outer==0);
+    }
+
+    InnerIterator(const internal::CompressedStorage<Scalar,Index>& data)
+      : m_data(data), m_id(0), m_end(static_cast<Index>(m_data.size()))
+    {}
+
+    inline InnerIterator& operator++() { m_id++; return *this; }
+
+    inline Scalar value() const { return m_data.value(m_id); }
+    inline Scalar& valueRef() { return const_cast<Scalar&>(m_data.value(m_id)); }
+
+    inline Index index() const { return m_data.index(m_id); }
+    inline Index row() const { return IsColVector ? index() : 0; }
+    inline Index col() const { return IsColVector ? 0 : index(); }
+
+    inline operator bool() const { return (m_id < m_end); }
+
+  protected:
+    const internal::CompressedStorage<Scalar,Index>& m_data;
+    Index m_id;
+    const Index m_end;
+};
+
+template<typename Scalar, int _Options, typename _Index>
+class SparseVector<Scalar,_Options,_Index>::ReverseInnerIterator
+{
+  public:
+    ReverseInnerIterator(const SparseVector& vec, Index outer=0)
+      : m_data(vec.m_data), m_id(static_cast<Index>(m_data.size())), m_start(0)
+    {
+      EIGEN_UNUSED_VARIABLE(outer);
+      eigen_assert(outer==0);
+    }
+
+    ReverseInnerIterator(const internal::CompressedStorage<Scalar,Index>& data)
+      : m_data(data), m_id(static_cast<Index>(m_data.size())), m_start(0)
+    {}
+
+    inline ReverseInnerIterator& operator--() { m_id--; return *this; }
+
+    inline Scalar value() const { return m_data.value(m_id-1); }
+    inline Scalar& valueRef() { return const_cast<Scalar&>(m_data.value(m_id-1)); }
+
+    inline Index index() const { return m_data.index(m_id-1); }
+    inline Index row() const { return IsColVector ? index() : 0; }
+    inline Index col() const { return IsColVector ? 0 : index(); }
+
+    inline operator bool() const { return (m_id > m_start); }
+
+  protected:
+    const internal::CompressedStorage<Scalar,Index>& m_data;
+    Index m_id;
+    const Index m_start;
+};
+
+namespace internal {
+
+template< typename Dest, typename Src>
+struct sparse_vector_assign_selector<Dest,Src,SVA_Inner> {
+  static void run(Dest& dst, const Src& src) {
+    eigen_internal_assert(src.innerSize()==src.size());
+    for(typename Src::InnerIterator it(src, 0); it; ++it)
+      dst.insert(it.index()) = it.value();
+  }
+};
+
+template< typename Dest, typename Src>
+struct sparse_vector_assign_selector<Dest,Src,SVA_Outer> {
+  static void run(Dest& dst, const Src& src) {
+    eigen_internal_assert(src.outerSize()==src.size());
+    for(typename Dest::Index i=0; i<src.size(); ++i)
+    {
+      typename Src::InnerIterator it(src, i);
+      if(it)
+        dst.insert(i) = it.value();
+    }
+  }
+};
+
+template< typename Dest, typename Src>
+struct sparse_vector_assign_selector<Dest,Src,SVA_RuntimeSwitch> {
+  static void run(Dest& dst, const Src& src) {
+    if(src.outerSize()==1)  sparse_vector_assign_selector<Dest,Src,SVA_Inner>::run(dst, src);
+    else                    sparse_vector_assign_selector<Dest,Src,SVA_Outer>::run(dst, src);
+  }
+};
+
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEVECTOR_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseView.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseView.h
new file mode 100644
index 0000000..2820b39
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/SparseView.h
@@ -0,0 +1,99 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2010 Daniel Lowengrub <lowdanie at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEVIEW_H
+#define EIGEN_SPARSEVIEW_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename MatrixType>
+struct traits<SparseView<MatrixType> > : traits<MatrixType>
+{
+  typedef typename MatrixType::Index Index;
+  typedef Sparse StorageKind;
+  enum {
+    Flags = int(traits<MatrixType>::Flags) & (RowMajorBit)
+  };
+};
+
+} // end namespace internal
+
+template<typename MatrixType>
+class SparseView : public SparseMatrixBase<SparseView<MatrixType> >
+{
+  typedef typename MatrixType::Nested MatrixTypeNested;
+  typedef typename internal::remove_all<MatrixTypeNested>::type _MatrixTypeNested;
+public:
+  EIGEN_SPARSE_PUBLIC_INTERFACE(SparseView)
+
+  explicit SparseView(const MatrixType& mat, const Scalar& reference = Scalar(0),
+                      const RealScalar &epsilon = NumTraits<Scalar>::dummy_precision())
+    : m_matrix(mat), m_reference(reference), m_epsilon(epsilon) {}
+
+  class InnerIterator;
+
+  inline Index rows() const { return m_matrix.rows(); }
+  inline Index cols() const { return m_matrix.cols(); }
+
+  inline Index innerSize() const { return m_matrix.innerSize(); }
+  inline Index outerSize() const { return m_matrix.outerSize(); }
+
+protected:
+  MatrixTypeNested m_matrix;
+  Scalar m_reference;
+  typename NumTraits<Scalar>::Real m_epsilon;
+};
+
+template<typename MatrixType>
+class SparseView<MatrixType>::InnerIterator : public _MatrixTypeNested::InnerIterator
+{
+  typedef typename SparseView::Index Index;
+public:
+  typedef typename _MatrixTypeNested::InnerIterator IterBase;
+  InnerIterator(const SparseView& view, Index outer) :
+  IterBase(view.m_matrix, outer), m_view(view)
+  {
+    incrementToNonZero();
+  }
+
+  EIGEN_STRONG_INLINE InnerIterator& operator++()
+  {
+    IterBase::operator++();
+    incrementToNonZero();
+    return *this;
+  }
+
+  using IterBase::value;
+
+protected:
+  const SparseView& m_view;
+
+private:
+  void incrementToNonZero()
+  {
+    while((bool(*this)) && internal::isMuchSmallerThan(value(), m_view.m_reference, m_view.m_epsilon))
+    {
+      IterBase::operator++();
+    }
+  }
+};
+
+template<typename Derived>
+const SparseView<Derived> MatrixBase<Derived>::sparseView(const Scalar& m_reference,
+                                                          const typename NumTraits<Scalar>::Real& m_epsilon) const
+{
+  return SparseView<Derived>(derived(), m_reference, m_epsilon);
+}
+
+} // end namespace Eigen
+
+#endif
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseCore/TriangularSolver.h b/vendor/eigen-3.2.8/Eigen/src/SparseCore/TriangularSolver.h
new file mode 100644
index 0000000..ccc12af
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseCore/TriangularSolver.h
@@ -0,0 +1,334 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSETRIANGULARSOLVER_H
+#define EIGEN_SPARSETRIANGULARSOLVER_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, int Mode,
+  int UpLo = (Mode & Lower)
+           ? Lower
+           : (Mode & Upper)
+           ? Upper
+           : -1,
+  int StorageOrder = int(traits<Lhs>::Flags) & RowMajorBit>
+struct sparse_solve_triangular_selector;
+
+// forward substitution, row-major
+template<typename Lhs, typename Rhs, int Mode>
+struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Lower,RowMajor>
+{
+  typedef typename Rhs::Scalar Scalar;
+  static void run(const Lhs& lhs, Rhs& other)
+  {
+    for(int col=0 ; col<other.cols() ; ++col)
+    {
+      for(int i=0; i<lhs.rows(); ++i)
+      {
+        Scalar tmp = other.coeff(i,col);
+        Scalar lastVal(0);
+        int lastIndex = 0;
+        for(typename Lhs::InnerIterator it(lhs, i); it; ++it)
+        {
+          lastVal = it.value();
+          lastIndex = it.index();
+          if(lastIndex==i)
+            break;
+          tmp -= lastVal * other.coeff(lastIndex,col);
+        }
+        if (Mode & UnitDiag)
+          other.coeffRef(i,col) = tmp;
+        else
+        {
+          eigen_assert(lastIndex==i);
+          other.coeffRef(i,col) = tmp/lastVal;
+        }
+      }
+    }
+  }
+};
+
+// backward substitution, row-major
+template<typename Lhs, typename Rhs, int Mode>
+struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Upper,RowMajor>
+{
+  typedef typename Rhs::Scalar Scalar;
+  static void run(const Lhs& lhs, Rhs& other)
+  {
+    for(int col=0 ; col<other.cols() ; ++col)
+    {
+      for(int i=lhs.rows()-1 ; i>=0 ; --i)
+      {
+        Scalar tmp = other.coeff(i,col);
+        Scalar l_ii(0);
+        typename Lhs::InnerIterator it(lhs, i);
+        while(it && it.index()<i)
+          ++it;
+        if(!(Mode & UnitDiag))
+        {
+          eigen_assert(it && it.index()==i);
+          l_ii = it.value();
+          ++it;
+        }
+        else if (it && it.index() == i)
+          ++it;
+        for(; it; ++it)
+        {
+          tmp -= it.value() * other.coeff(it.index(),col);
+        }
+
+        if (Mode & UnitDiag)
+          other.coeffRef(i,col) = tmp;
+        else
+          other.coeffRef(i,col) = tmp/l_ii;
+      }
+    }
+  }
+};
+
+// forward substitution, col-major
+template<typename Lhs, typename Rhs, int Mode>
+struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Lower,ColMajor>
+{
+  typedef typename Rhs::Scalar Scalar;
+  static void run(const Lhs& lhs, Rhs& other)
+  {
+    for(int col=0 ; col<other.cols() ; ++col)
+    {
+      for(int i=0; i<lhs.cols(); ++i)
+      {
+        Scalar& tmp = other.coeffRef(i,col);
+        if (tmp!=Scalar(0)) // optimization when other is actually sparse
+        {
+          typename Lhs::InnerIterator it(lhs, i);
+          while(it && it.index()<i)
+            ++it;
+          if(!(Mode & UnitDiag))
+          {
+            eigen_assert(it && it.index()==i);
+            tmp /= it.value();
+          }
+          if (it && it.index()==i)
+            ++it;
+          for(; it; ++it)
+            other.coeffRef(it.index(), col) -= tmp * it.value();
+        }
+      }
+    }
+  }
+};
+
+// backward substitution, col-major
+template<typename Lhs, typename Rhs, int Mode>
+struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Upper,ColMajor>
+{
+  typedef typename Rhs::Scalar Scalar;
+  static void run(const Lhs& lhs, Rhs& other)
+  {
+    for(int col=0 ; col<other.cols() ; ++col)
+    {
+      for(int i=lhs.cols()-1; i>=0; --i)
+      {
+        Scalar& tmp = other.coeffRef(i,col);
+        if (tmp!=Scalar(0)) // optimization when other is actually sparse
+        {
+          if(!(Mode & UnitDiag))
+          {
+            // TODO replace this by a binary search. make sure the binary search is safe for partially sorted elements
+            typename Lhs::ReverseInnerIterator it(lhs, i);
+            while(it && it.index()!=i)
+              --it;
+            eigen_assert(it && it.index()==i);
+            other.coeffRef(i,col) /= it.value();
+          }
+          typename Lhs::InnerIterator it(lhs, i);
+          for(; it && it.index()<i; ++it)
+            other.coeffRef(it.index(), col) -= tmp * it.value();
+        }
+      }
+    }
+  }
+};
+
+} // end namespace internal
+
+template<typename ExpressionType,int Mode>
+template<typename OtherDerived>
+void SparseTriangularView<ExpressionType,Mode>::solveInPlace(MatrixBase<OtherDerived>& other) const
+{
+  eigen_assert(m_matrix.cols() == m_matrix.rows() && m_matrix.cols() == other.rows());
+  eigen_assert((!(Mode & ZeroDiag)) && bool(Mode & (Upper|Lower)));
+
+  enum { copy = internal::traits<OtherDerived>::Flags & RowMajorBit };
+
+  typedef typename internal::conditional<copy,
+    typename internal::plain_matrix_type_column_major<OtherDerived>::type, OtherDerived&>::type OtherCopy;
+  OtherCopy otherCopy(other.derived());
+
+  internal::sparse_solve_triangular_selector<ExpressionType, typename internal::remove_reference<OtherCopy>::type, Mode>::run(m_matrix, otherCopy);
+
+  if (copy)
+    other = otherCopy;
+}
+
+template<typename ExpressionType,int Mode>
+template<typename OtherDerived>
+typename internal::plain_matrix_type_column_major<OtherDerived>::type
+SparseTriangularView<ExpressionType,Mode>::solve(const MatrixBase<OtherDerived>& other) const
+{
+  typename internal::plain_matrix_type_column_major<OtherDerived>::type res(other);
+  solveInPlace(res);
+  return res;
+}
+
+// pure sparse path
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, int Mode,
+  int UpLo = (Mode & Lower)
+           ? Lower
+           : (Mode & Upper)
+           ? Upper
+           : -1,
+  int StorageOrder = int(Lhs::Flags) & (RowMajorBit)>
+struct sparse_solve_triangular_sparse_selector;
+
+// forward substitution, col-major
+template<typename Lhs, typename Rhs, int Mode, int UpLo>
+struct sparse_solve_triangular_sparse_selector<Lhs,Rhs,Mode,UpLo,ColMajor>
+{
+  typedef typename Rhs::Scalar Scalar;
+  typedef typename promote_index_type<typename traits<Lhs>::Index,
+                                         typename traits<Rhs>::Index>::type Index;
+  static void run(const Lhs& lhs, Rhs& other)
+  {
+    const bool IsLower = (UpLo==Lower);
+    AmbiVector<Scalar,Index> tempVector(other.rows()*2);
+    tempVector.setBounds(0,other.rows());
+
+    Rhs res(other.rows(), other.cols());
+    res.reserve(other.nonZeros());
+
+    for(int col=0 ; col<other.cols() ; ++col)
+    {
+      // FIXME estimate number of non zeros
+      tempVector.init(.99/*float(other.col(col).nonZeros())/float(other.rows())*/);
+      tempVector.setZero();
+      tempVector.restart();
+      for (typename Rhs::InnerIterator rhsIt(other, col); rhsIt; ++rhsIt)
+      {
+        tempVector.coeffRef(rhsIt.index()) = rhsIt.value();
+      }
+
+      for(int i=IsLower?0:lhs.cols()-1;
+          IsLower?i<lhs.cols():i>=0;
+          i+=IsLower?1:-1)
+      {
+        tempVector.restart();
+        Scalar& ci = tempVector.coeffRef(i);
+        if (ci!=Scalar(0))
+        {
+          // find
+          typename Lhs::InnerIterator it(lhs, i);
+          if(!(Mode & UnitDiag))
+          {
+            if (IsLower)
+            {
+              eigen_assert(it.index()==i);
+              ci /= it.value();
+            }
+            else
+              ci /= lhs.coeff(i,i);
+          }
+          tempVector.restart();
+          if (IsLower)
+          {
+            if (it.index()==i)
+              ++it;
+            for(; it; ++it)
+              tempVector.coeffRef(it.index()) -= ci * it.value();
+          }
+          else
+          {
+            for(; it && it.index()<i; ++it)
+              tempVector.coeffRef(it.index()) -= ci * it.value();
+          }
+        }
+      }
+
+
+      int count = 0;
+      // FIXME compute a reference value to filter zeros
+      for (typename AmbiVector<Scalar,Index>::Iterator it(tempVector/*,1e-12*/); it; ++it)
+      {
+        ++ count;
+//         std::cerr << "fill " << it.index() << ", " << col << "\n";
+//         std::cout << it.value() << "  ";
+        // FIXME use insertBack
+        res.insert(it.index(), col) = it.value();
+      }
+//       std::cout << "tempVector.nonZeros() == " << int(count) << " / " << (other.rows()) << "\n";
+    }
+    res.finalize();
+    other = res.markAsRValue();
+  }
+};
+
+} // end namespace internal
+
+template<typename ExpressionType,int Mode>
+template<typename OtherDerived>
+void SparseTriangularView<ExpressionType,Mode>::solveInPlace(SparseMatrixBase<OtherDerived>& other) const
+{
+  eigen_assert(m_matrix.cols() == m_matrix.rows() && m_matrix.cols() == other.rows());
+  eigen_assert( (!(Mode & ZeroDiag)) && bool(Mode & (Upper|Lower)));
+
+//   enum { copy = internal::traits<OtherDerived>::Flags & RowMajorBit };
+
+//   typedef typename internal::conditional<copy,
+//     typename internal::plain_matrix_type_column_major<OtherDerived>::type, OtherDerived&>::type OtherCopy;
+//   OtherCopy otherCopy(other.derived());
+
+  internal::sparse_solve_triangular_sparse_selector<ExpressionType, OtherDerived, Mode>::run(m_matrix, other.derived());
+
+//   if (copy)
+//     other = otherCopy;
+}
+
+#ifdef EIGEN2_SUPPORT
+
+// deprecated stuff:
+
+/** \deprecated */
+template<typename Derived>
+template<typename OtherDerived>
+void SparseMatrixBase<Derived>::solveTriangularInPlace(MatrixBase<OtherDerived>& other) const
+{
+  this->template triangular<Flags&(Upper|Lower)>().solveInPlace(other);
+}
+
+/** \deprecated */
+template<typename Derived>
+template<typename OtherDerived>
+typename internal::plain_matrix_type_column_major<OtherDerived>::type
+SparseMatrixBase<Derived>::solveTriangular(const MatrixBase<OtherDerived>& other) const
+{
+  typename internal::plain_matrix_type_column_major<OtherDerived>::type res(other);
+  derived().solveTriangularInPlace(res);
+  return res;
+}
+#endif // EIGEN2_SUPPORT
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSETRIANGULARSOLVER_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/SparseLU/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SparseLU/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/SparseLU/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU.h
new file mode 100644
index 0000000..bdc4f19
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU.h
@@ -0,0 +1,806 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+#ifndef EIGEN_SPARSE_LU_H
+#define EIGEN_SPARSE_LU_H
+
+namespace Eigen {
+
+template <typename _MatrixType, typename _OrderingType = COLAMDOrdering<typename _MatrixType::Index> > class SparseLU;
+template <typename MappedSparseMatrixType> struct SparseLUMatrixLReturnType;
+template <typename MatrixLType, typename MatrixUType> struct SparseLUMatrixUReturnType;
+
+/** \ingroup SparseLU_Module
+  * \class SparseLU
+  * 
+  * \brief Sparse supernodal LU factorization for general matrices
+  * 
+  * This class implements the supernodal LU factorization for general matrices.
+  * It uses the main techniques from the sequential SuperLU package 
+  * (http://crd-legacy.lbl.gov/~xiaoye/SuperLU/). It handles transparently real 
+  * and complex arithmetics with single and double precision, depending on the 
+  * scalar type of your input matrix. 
+  * The code has been optimized to provide BLAS-3 operations during supernode-panel updates. 
+  * It benefits directly from the built-in high-performant Eigen BLAS routines. 
+  * Moreover, when the size of a supernode is very small, the BLAS calls are avoided to 
+  * enable a better optimization from the compiler. For best performance, 
+  * you should compile it with NDEBUG flag to avoid the numerous bounds checking on vectors. 
+  * 
+  * An important parameter of this class is the ordering method. It is used to reorder the columns 
+  * (and eventually the rows) of the matrix to reduce the number of new elements that are created during 
+  * numerical factorization. The cheapest method available is COLAMD. 
+  * See  \link OrderingMethods_Module the OrderingMethods module \endlink for the list of 
+  * built-in and external ordering methods. 
+  *
+  * Simple example with key steps 
+  * \code
+  * VectorXd x(n), b(n);
+  * SparseMatrix<double, ColMajor> A;
+  * SparseLU<SparseMatrix<scalar, ColMajor>, COLAMDOrdering<Index> >   solver;
+  * // fill A and b;
+  * // Compute the ordering permutation vector from the structural pattern of A
+  * solver.analyzePattern(A); 
+  * // Compute the numerical factorization 
+  * solver.factorize(A); 
+  * //Use the factors to solve the linear system 
+  * x = solver.solve(b); 
+  * \endcode
+  * 
+  * \warning The input matrix A should be in a \b compressed and \b column-major form.
+  * Otherwise an expensive copy will be made. You can call the inexpensive makeCompressed() to get a compressed matrix.
+  * 
+  * \note Unlike the initial SuperLU implementation, there is no step to equilibrate the matrix. 
+  * For badly scaled matrices, this step can be useful to reduce the pivoting during factorization. 
+  * If this is the case for your matrices, you can try the basic scaling method at
+  *  "unsupported/Eigen/src/IterativeSolvers/Scaling.h"
+  * 
+  * \tparam _MatrixType The type of the sparse matrix. It must be a column-major SparseMatrix<>
+  * \tparam _OrderingType The ordering method to use, either AMD, COLAMD or METIS. Default is COLMAD
+  * 
+  * 
+  * \sa \ref TutorialSparseDirectSolvers
+  * \sa \ref OrderingMethods_Module
+  */
+template <typename _MatrixType, typename _OrderingType>
+class SparseLU : public internal::SparseLUImpl<typename _MatrixType::Scalar, typename _MatrixType::Index>
+{
+  public:
+    typedef _MatrixType MatrixType; 
+    typedef _OrderingType OrderingType;
+    typedef typename MatrixType::Scalar Scalar; 
+    typedef typename MatrixType::RealScalar RealScalar; 
+    typedef typename MatrixType::Index Index; 
+    typedef SparseMatrix<Scalar,ColMajor,Index> NCMatrix;
+    typedef internal::MappedSuperNodalMatrix<Scalar, Index> SCMatrix; 
+    typedef Matrix<Scalar,Dynamic,1> ScalarVector;
+    typedef Matrix<Index,Dynamic,1> IndexVector;
+    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType;
+    typedef internal::SparseLUImpl<Scalar, Index> Base;
+    
+  public:
+    SparseLU():m_isInitialized(true),m_lastError(""),m_Ustore(0,0,0,0,0,0),m_symmetricmode(false),m_diagpivotthresh(1.0),m_detPermR(1)
+    {
+      initperfvalues(); 
+    }
+    SparseLU(const MatrixType& matrix):m_isInitialized(true),m_lastError(""),m_Ustore(0,0,0,0,0,0),m_symmetricmode(false),m_diagpivotthresh(1.0),m_detPermR(1)
+    {
+      initperfvalues(); 
+      compute(matrix);
+    }
+    
+    ~SparseLU()
+    {
+      // Free all explicit dynamic pointers 
+    }
+    
+    void analyzePattern (const MatrixType& matrix);
+    void factorize (const MatrixType& matrix);
+    void simplicialfactorize(const MatrixType& matrix);
+    
+    /**
+      * Compute the symbolic and numeric factorization of the input sparse matrix.
+      * The input matrix should be in column-major storage. 
+      */
+    void compute (const MatrixType& matrix)
+    {
+      // Analyze 
+      analyzePattern(matrix); 
+      //Factorize
+      factorize(matrix);
+    } 
+    
+    inline Index rows() const { return m_mat.rows(); }
+    inline Index cols() const { return m_mat.cols(); }
+    /** Indicate that the pattern of the input matrix is symmetric */
+    void isSymmetric(bool sym)
+    {
+      m_symmetricmode = sym;
+    }
+    
+    /** \returns an expression of the matrix L, internally stored as supernodes
+      * The only operation available with this expression is the triangular solve
+      * \code
+      * y = b; matrixL().solveInPlace(y);
+      * \endcode
+      */
+    SparseLUMatrixLReturnType<SCMatrix> matrixL() const
+    {
+      return SparseLUMatrixLReturnType<SCMatrix>(m_Lstore);
+    }
+    /** \returns an expression of the matrix U,
+      * The only operation available with this expression is the triangular solve
+      * \code
+      * y = b; matrixU().solveInPlace(y);
+      * \endcode
+      */
+    SparseLUMatrixUReturnType<SCMatrix,MappedSparseMatrix<Scalar,ColMajor,Index> > matrixU() const
+    {
+      return SparseLUMatrixUReturnType<SCMatrix, MappedSparseMatrix<Scalar,ColMajor,Index> >(m_Lstore, m_Ustore);
+    }
+
+    /**
+      * \returns a reference to the row matrix permutation \f$ P_r \f$ such that \f$P_r A P_c^T = L U\f$
+      * \sa colsPermutation()
+      */
+    inline const PermutationType& rowsPermutation() const
+    {
+      return m_perm_r;
+    }
+    /**
+      * \returns a reference to the column matrix permutation\f$ P_c^T \f$ such that \f$P_r A P_c^T = L U\f$
+      * \sa rowsPermutation()
+      */
+    inline const PermutationType& colsPermutation() const
+    {
+      return m_perm_c;
+    }
+    /** Set the threshold used for a diagonal entry to be an acceptable pivot. */
+    void setPivotThreshold(const RealScalar& thresh)
+    {
+      m_diagpivotthresh = thresh; 
+    }
+
+    /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
+      *
+      * \warning the destination matrix X in X = this->solve(B) must be colmun-major.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<SparseLU, Rhs> solve(const MatrixBase<Rhs>& B) const 
+    {
+      eigen_assert(m_factorizationIsOk && "SparseLU is not initialized."); 
+      eigen_assert(rows()==B.rows()
+                    && "SparseLU::solve(): invalid number of rows of the right hand side matrix B");
+          return internal::solve_retval<SparseLU, Rhs>(*this, B.derived());
+    }
+
+    /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<SparseLU, Rhs> solve(const SparseMatrixBase<Rhs>& B) const 
+    {
+      eigen_assert(m_factorizationIsOk && "SparseLU is not initialized."); 
+      eigen_assert(rows()==B.rows()
+                    && "SparseLU::solve(): invalid number of rows of the right hand side matrix B");
+          return internal::sparse_solve_retval<SparseLU, Rhs>(*this, B.derived());
+    }
+    
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the LU factorization reports a problem, zero diagonal for instance
+      *          \c InvalidInput if the input matrix is invalid
+      *
+      * \sa iparm()          
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+    
+    /**
+      * \returns A string describing the type of error
+      */
+    std::string lastErrorMessage() const
+    {
+      return m_lastError; 
+    }
+
+    template<typename Rhs, typename Dest>
+    bool _solve(const MatrixBase<Rhs> &B, MatrixBase<Dest> &X_base) const
+    {
+      Dest& X(X_base.derived());
+      eigen_assert(m_factorizationIsOk && "The matrix should be factorized first");
+      EIGEN_STATIC_ASSERT((Dest::Flags&RowMajorBit)==0,
+                        THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
+      
+      // Permute the right hand side to form X = Pr*B
+      // on return, X is overwritten by the computed solution
+      X.resize(B.rows(),B.cols());
+
+      // this ugly const_cast_derived() helps to detect aliasing when applying the permutations
+      for(Index j = 0; j < B.cols(); ++j)
+        X.col(j) = rowsPermutation() * B.const_cast_derived().col(j);
+      
+      //Forward substitution with L
+      this->matrixL().solveInPlace(X);
+      this->matrixU().solveInPlace(X);
+      
+      // Permute back the solution 
+      for (Index j = 0; j < B.cols(); ++j)
+        X.col(j) = colsPermutation().inverse() * X.col(j);
+      
+      return true; 
+    }
+    
+    /**
+      * \returns the absolute value of the determinant of the matrix of which
+      * *this is the QR decomposition.
+      *
+      * \warning a determinant can be very big or small, so for matrices
+      * of large enough dimension, there is a risk of overflow/underflow.
+      * One way to work around that is to use logAbsDeterminant() instead.
+      *
+      * \sa logAbsDeterminant(), signDeterminant()
+      */
+     Scalar absDeterminant()
+    {
+      eigen_assert(m_factorizationIsOk && "The matrix should be factorized first.");
+      // Initialize with the determinant of the row matrix
+      Scalar det = Scalar(1.);
+      // Note that the diagonal blocks of U are stored in supernodes,
+      // which are available in the  L part :)
+      for (Index j = 0; j < this->cols(); ++j)
+      {
+        for (typename SCMatrix::InnerIterator it(m_Lstore, j); it; ++it)
+        {
+          if(it.index() == j)
+          {
+            using std::abs;
+            det *= abs(it.value());
+            break;
+          }
+        }
+       }
+       return det;
+     }
+
+     /** \returns the natural log of the absolute value of the determinant of the matrix
+       * of which **this is the QR decomposition
+       *
+       * \note This method is useful to work around the risk of overflow/underflow that's
+       * inherent to the determinant computation.
+       *
+       * \sa absDeterminant(), signDeterminant()
+       */
+     Scalar logAbsDeterminant() const
+     {
+       eigen_assert(m_factorizationIsOk && "The matrix should be factorized first.");
+       Scalar det = Scalar(0.);
+       for (Index j = 0; j < this->cols(); ++j)
+       {
+         for (typename SCMatrix::InnerIterator it(m_Lstore, j); it; ++it)
+         {
+           if(it.row() < j) continue;
+           if(it.row() == j)
+           {
+             using std::log; using std::abs;
+             det += log(abs(it.value()));
+             break;
+           }
+         }
+       }
+       return det;
+     }
+
+    /** \returns A number representing the sign of the determinant
+      *
+      * \sa absDeterminant(), logAbsDeterminant()
+      */
+    Scalar signDeterminant()
+    {
+      eigen_assert(m_factorizationIsOk && "The matrix should be factorized first.");
+      // Initialize with the determinant of the row matrix
+      Index det = 1;
+      // Note that the diagonal blocks of U are stored in supernodes,
+      // which are available in the  L part :)
+      for (Index j = 0; j < this->cols(); ++j)
+      {
+        for (typename SCMatrix::InnerIterator it(m_Lstore, j); it; ++it)
+        {
+          if(it.index() == j)
+          {
+            if(it.value()<0)
+              det = -det;
+            else if(it.value()==0)
+              return 0;
+            break;
+          }
+        }
+      }
+      return det * m_detPermR * m_detPermC;
+    }
+    
+    /** \returns The determinant of the matrix.
+      *
+      * \sa absDeterminant(), logAbsDeterminant()
+      */
+    Scalar determinant()
+    {
+      eigen_assert(m_factorizationIsOk && "The matrix should be factorized first.");
+      // Initialize with the determinant of the row matrix
+      Scalar det = Scalar(1.);
+      // Note that the diagonal blocks of U are stored in supernodes,
+      // which are available in the  L part :)
+      for (Index j = 0; j < this->cols(); ++j)
+      {
+        for (typename SCMatrix::InnerIterator it(m_Lstore, j); it; ++it)
+        {
+          if(it.index() == j)
+          {
+            det *= it.value();
+            break;
+          }
+        }
+      }
+      return det * Scalar(m_detPermR * m_detPermC);
+    }
+
+  protected:
+    // Functions 
+    void initperfvalues()
+    {
+      m_perfv.panel_size = 16;
+      m_perfv.relax = 1; 
+      m_perfv.maxsuper = 128; 
+      m_perfv.rowblk = 16; 
+      m_perfv.colblk = 8; 
+      m_perfv.fillfactor = 20;  
+    }
+      
+    // Variables 
+    mutable ComputationInfo m_info;
+    bool m_isInitialized;
+    bool m_factorizationIsOk;
+    bool m_analysisIsOk;
+    std::string m_lastError;
+    NCMatrix m_mat; // The input (permuted ) matrix 
+    SCMatrix m_Lstore; // The lower triangular matrix (supernodal)
+    MappedSparseMatrix<Scalar,ColMajor,Index> m_Ustore; // The upper triangular matrix
+    PermutationType m_perm_c; // Column permutation 
+    PermutationType m_perm_r ; // Row permutation
+    IndexVector m_etree; // Column elimination tree 
+    
+    typename Base::GlobalLU_t m_glu; 
+                               
+    // SparseLU options 
+    bool m_symmetricmode;
+    // values for performance 
+    internal::perfvalues<Index> m_perfv; 
+    RealScalar m_diagpivotthresh; // Specifies the threshold used for a diagonal entry to be an acceptable pivot
+    Index m_nnzL, m_nnzU; // Nonzeros in L and U factors
+    Index m_detPermR, m_detPermC; // Determinants of the permutation matrices
+  private:
+    // Disable copy constructor 
+    SparseLU (const SparseLU& );
+  
+}; // End class SparseLU
+
+
+
+// Functions needed by the anaysis phase
+/** 
+  * Compute the column permutation to minimize the fill-in
+  * 
+  *  - Apply this permutation to the input matrix - 
+  * 
+  *  - Compute the column elimination tree on the permuted matrix 
+  * 
+  *  - Postorder the elimination tree and the column permutation
+  * 
+  */
+template <typename MatrixType, typename OrderingType>
+void SparseLU<MatrixType, OrderingType>::analyzePattern(const MatrixType& mat)
+{
+  
+  //TODO  It is possible as in SuperLU to compute row and columns scaling vectors to equilibrate the matrix mat.
+  
+  OrderingType ord; 
+  ord(mat,m_perm_c);
+  
+  // Apply the permutation to the column of the input  matrix
+  //First copy the whole input matrix. 
+  m_mat = mat;
+  if (m_perm_c.size()) {
+    m_mat.uncompress(); //NOTE: The effect of this command is only to create the InnerNonzeros pointers. FIXME : This vector is filled but not subsequently used.  
+    //Then, permute only the column pointers
+    const Index * outerIndexPtr;
+    if (mat.isCompressed()) outerIndexPtr = mat.outerIndexPtr();
+    else
+    {
+      Index *outerIndexPtr_t = new Index[mat.cols()+1];
+      for(Index i = 0; i <= mat.cols(); i++) outerIndexPtr_t[i] = m_mat.outerIndexPtr()[i];
+      outerIndexPtr = outerIndexPtr_t;
+    }
+    for (Index i = 0; i < mat.cols(); i++)
+    {
+      m_mat.outerIndexPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i];
+      m_mat.innerNonZeroPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i+1] - outerIndexPtr[i];
+    }
+    if(!mat.isCompressed()) delete[] outerIndexPtr;
+  }
+  // Compute the column elimination tree of the permuted matrix 
+  IndexVector firstRowElt;
+  internal::coletree(m_mat, m_etree,firstRowElt); 
+     
+  // In symmetric mode, do not do postorder here
+  if (!m_symmetricmode) {
+    IndexVector post, iwork; 
+    // Post order etree
+    internal::treePostorder(m_mat.cols(), m_etree, post); 
+      
+   
+    // Renumber etree in postorder 
+    Index m = m_mat.cols(); 
+    iwork.resize(m+1);
+    for (Index i = 0; i < m; ++i) iwork(post(i)) = post(m_etree(i));
+    m_etree = iwork;
+    
+    // Postmultiply A*Pc by post, i.e reorder the matrix according to the postorder of the etree
+    PermutationType post_perm(m); 
+    for (Index i = 0; i < m; i++) 
+      post_perm.indices()(i) = post(i); 
+        
+    // Combine the two permutations : postorder the permutation for future use
+    if(m_perm_c.size()) {
+      m_perm_c = post_perm * m_perm_c;
+    }
+    
+  } // end postordering 
+  
+  m_analysisIsOk = true; 
+}
+
+// Functions needed by the numerical factorization phase
+
+
+/** 
+  *  - Numerical factorization 
+  *  - Interleaved with the symbolic factorization 
+  * On exit,  info is 
+  * 
+  *    = 0: successful factorization
+  * 
+  *    > 0: if info = i, and i is
+  * 
+  *       <= A->ncol: U(i,i) is exactly zero. The factorization has
+  *          been completed, but the factor U is exactly singular,
+  *          and division by zero will occur if it is used to solve a
+  *          system of equations.
+  * 
+  *       > A->ncol: number of bytes allocated when memory allocation
+  *         failure occurred, plus A->ncol. If lwork = -1, it is
+  *         the estimated amount of space needed, plus A->ncol.  
+  */
+template <typename MatrixType, typename OrderingType>
+void SparseLU<MatrixType, OrderingType>::factorize(const MatrixType& matrix)
+{
+  using internal::emptyIdxLU;
+  eigen_assert(m_analysisIsOk && "analyzePattern() should be called first"); 
+  eigen_assert((matrix.rows() == matrix.cols()) && "Only for squared matrices");
+  
+  typedef typename IndexVector::Scalar Index; 
+  
+  
+  // Apply the column permutation computed in analyzepattern()
+  //   m_mat = matrix * m_perm_c.inverse(); 
+  m_mat = matrix;
+  if (m_perm_c.size()) 
+  {
+    m_mat.uncompress(); //NOTE: The effect of this command is only to create the InnerNonzeros pointers.
+    //Then, permute only the column pointers
+    const Index * outerIndexPtr;
+    if (matrix.isCompressed()) outerIndexPtr = matrix.outerIndexPtr();
+    else
+    {
+      Index* outerIndexPtr_t = new Index[matrix.cols()+1];
+      for(Index i = 0; i <= matrix.cols(); i++) outerIndexPtr_t[i] = m_mat.outerIndexPtr()[i];
+      outerIndexPtr = outerIndexPtr_t;
+    }
+    for (Index i = 0; i < matrix.cols(); i++)
+    {
+      m_mat.outerIndexPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i];
+      m_mat.innerNonZeroPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i+1] - outerIndexPtr[i];
+    }
+    if(!matrix.isCompressed()) delete[] outerIndexPtr;
+  } 
+  else 
+  { //FIXME This should not be needed if the empty permutation is handled transparently
+    m_perm_c.resize(matrix.cols());
+    for(Index i = 0; i < matrix.cols(); ++i) m_perm_c.indices()(i) = i;
+  }
+  
+  Index m = m_mat.rows();
+  Index n = m_mat.cols();
+  Index nnz = m_mat.nonZeros();
+  Index maxpanel = m_perfv.panel_size * m;
+  // Allocate working storage common to the factor routines
+  Index lwork = 0;
+  Index info = Base::memInit(m, n, nnz, lwork, m_perfv.fillfactor, m_perfv.panel_size, m_glu); 
+  if (info) 
+  {
+    m_lastError = "UNABLE TO ALLOCATE WORKING MEMORY\n\n" ;
+    m_factorizationIsOk = false;
+    return ; 
+  }
+  
+  // Set up pointers for integer working arrays 
+  IndexVector segrep(m); segrep.setZero();
+  IndexVector parent(m); parent.setZero();
+  IndexVector xplore(m); xplore.setZero();
+  IndexVector repfnz(maxpanel);
+  IndexVector panel_lsub(maxpanel);
+  IndexVector xprune(n); xprune.setZero();
+  IndexVector marker(m*internal::LUNoMarker); marker.setZero();
+  
+  repfnz.setConstant(-1); 
+  panel_lsub.setConstant(-1);
+  
+  // Set up pointers for scalar working arrays 
+  ScalarVector dense; 
+  dense.setZero(maxpanel);
+  ScalarVector tempv; 
+  tempv.setZero(internal::LUnumTempV(m, m_perfv.panel_size, m_perfv.maxsuper, /*m_perfv.rowblk*/m) );
+  
+  // Compute the inverse of perm_c
+  PermutationType iperm_c(m_perm_c.inverse()); 
+  
+  // Identify initial relaxed snodes
+  IndexVector relax_end(n);
+  if ( m_symmetricmode == true ) 
+    Base::heap_relax_snode(n, m_etree, m_perfv.relax, marker, relax_end);
+  else
+    Base::relax_snode(n, m_etree, m_perfv.relax, marker, relax_end);
+  
+  
+  m_perm_r.resize(m); 
+  m_perm_r.indices().setConstant(-1);
+  marker.setConstant(-1);
+  m_detPermR = 1; // Record the determinant of the row permutation
+  
+  m_glu.supno(0) = emptyIdxLU; m_glu.xsup.setConstant(0);
+  m_glu.xsup(0) = m_glu.xlsub(0) = m_glu.xusub(0) = m_glu.xlusup(0) = Index(0);
+  
+  // Work on one 'panel' at a time. A panel is one of the following :
+  //  (a) a relaxed supernode at the bottom of the etree, or
+  //  (b) panel_size contiguous columns, <panel_size> defined by the user
+  Index jcol; 
+  IndexVector panel_histo(n);
+  Index pivrow; // Pivotal row number in the original row matrix
+  Index nseg1; // Number of segments in U-column above panel row jcol
+  Index nseg; // Number of segments in each U-column 
+  Index irep; 
+  Index i, k, jj; 
+  for (jcol = 0; jcol < n; )
+  {
+    // Adjust panel size so that a panel won't overlap with the next relaxed snode. 
+    Index panel_size = m_perfv.panel_size; // upper bound on panel width
+    for (k = jcol + 1; k < (std::min)(jcol+panel_size, n); k++)
+    {
+      if (relax_end(k) != emptyIdxLU) 
+      {
+        panel_size = k - jcol; 
+        break; 
+      }
+    }
+    if (k == n) 
+      panel_size = n - jcol; 
+      
+    // Symbolic outer factorization on a panel of columns 
+    Base::panel_dfs(m, panel_size, jcol, m_mat, m_perm_r.indices(), nseg1, dense, panel_lsub, segrep, repfnz, xprune, marker, parent, xplore, m_glu); 
+    
+    // Numeric sup-panel updates in topological order 
+    Base::panel_bmod(m, panel_size, jcol, nseg1, dense, tempv, segrep, repfnz, m_glu); 
+    
+    // Sparse LU within the panel, and below the panel diagonal 
+    for ( jj = jcol; jj< jcol + panel_size; jj++) 
+    {
+      k = (jj - jcol) * m; // Column index for w-wide arrays 
+      
+      nseg = nseg1; // begin after all the panel segments
+      //Depth-first-search for the current column
+      VectorBlock<IndexVector> panel_lsubk(panel_lsub, k, m);
+      VectorBlock<IndexVector> repfnz_k(repfnz, k, m); 
+      info = Base::column_dfs(m, jj, m_perm_r.indices(), m_perfv.maxsuper, nseg, panel_lsubk, segrep, repfnz_k, xprune, marker, parent, xplore, m_glu); 
+      if ( info ) 
+      {
+        m_lastError =  "UNABLE TO EXPAND MEMORY IN COLUMN_DFS() ";
+        m_info = NumericalIssue; 
+        m_factorizationIsOk = false; 
+        return; 
+      }
+      // Numeric updates to this column 
+      VectorBlock<ScalarVector> dense_k(dense, k, m); 
+      VectorBlock<IndexVector> segrep_k(segrep, nseg1, m-nseg1); 
+      info = Base::column_bmod(jj, (nseg - nseg1), dense_k, tempv, segrep_k, repfnz_k, jcol, m_glu); 
+      if ( info ) 
+      {
+        m_lastError = "UNABLE TO EXPAND MEMORY IN COLUMN_BMOD() ";
+        m_info = NumericalIssue; 
+        m_factorizationIsOk = false; 
+        return; 
+      }
+      
+      // Copy the U-segments to ucol(*)
+      info = Base::copy_to_ucol(jj, nseg, segrep, repfnz_k ,m_perm_r.indices(), dense_k, m_glu); 
+      if ( info ) 
+      {
+        m_lastError = "UNABLE TO EXPAND MEMORY IN COPY_TO_UCOL() ";
+        m_info = NumericalIssue; 
+        m_factorizationIsOk = false; 
+        return; 
+      }
+      
+      // Form the L-segment 
+      info = Base::pivotL(jj, m_diagpivotthresh, m_perm_r.indices(), iperm_c.indices(), pivrow, m_glu);
+      if ( info ) 
+      {
+        m_lastError = "THE MATRIX IS STRUCTURALLY SINGULAR ... ZERO COLUMN AT ";
+        std::ostringstream returnInfo;
+        returnInfo << info; 
+        m_lastError += returnInfo.str();
+        m_info = NumericalIssue; 
+        m_factorizationIsOk = false; 
+        return; 
+      }
+      
+      // Update the determinant of the row permutation matrix
+      // FIXME: the following test is not correct, we should probably take iperm_c into account and pivrow is not directly the row pivot.
+      if (pivrow != jj) m_detPermR = -m_detPermR;
+
+      // Prune columns (0:jj-1) using column jj
+      Base::pruneL(jj, m_perm_r.indices(), pivrow, nseg, segrep, repfnz_k, xprune, m_glu); 
+      
+      // Reset repfnz for this column 
+      for (i = 0; i < nseg; i++)
+      {
+        irep = segrep(i); 
+        repfnz_k(irep) = emptyIdxLU; 
+      }
+    } // end SparseLU within the panel  
+    jcol += panel_size;  // Move to the next panel
+  } // end for -- end elimination 
+  
+  m_detPermR = m_perm_r.determinant();
+  m_detPermC = m_perm_c.determinant();
+  
+  // Count the number of nonzeros in factors 
+  Base::countnz(n, m_nnzL, m_nnzU, m_glu); 
+  // Apply permutation  to the L subscripts 
+  Base::fixupL(n, m_perm_r.indices(), m_glu);
+  
+  // Create supernode matrix L 
+  m_Lstore.setInfos(m, n, m_glu.lusup, m_glu.xlusup, m_glu.lsub, m_glu.xlsub, m_glu.supno, m_glu.xsup); 
+  // Create the column major upper sparse matrix  U; 
+  new (&m_Ustore) MappedSparseMatrix<Scalar, ColMajor, Index> ( m, n, m_nnzU, m_glu.xusub.data(), m_glu.usub.data(), m_glu.ucol.data() ); 
+  
+  m_info = Success;
+  m_factorizationIsOk = true;
+}
+
+template<typename MappedSupernodalType>
+struct SparseLUMatrixLReturnType : internal::no_assignment_operator
+{
+  typedef typename MappedSupernodalType::Index Index;
+  typedef typename MappedSupernodalType::Scalar Scalar;
+  SparseLUMatrixLReturnType(const MappedSupernodalType& mapL) : m_mapL(mapL)
+  { }
+  Index rows() { return m_mapL.rows(); }
+  Index cols() { return m_mapL.cols(); }
+  template<typename Dest>
+  void solveInPlace( MatrixBase<Dest> &X) const
+  {
+    m_mapL.solveInPlace(X);
+  }
+  const MappedSupernodalType& m_mapL;
+};
+
+template<typename MatrixLType, typename MatrixUType>
+struct SparseLUMatrixUReturnType : internal::no_assignment_operator
+{
+  typedef typename MatrixLType::Index Index;
+  typedef typename MatrixLType::Scalar Scalar;
+  SparseLUMatrixUReturnType(const MatrixLType& mapL, const MatrixUType& mapU)
+  : m_mapL(mapL),m_mapU(mapU)
+  { }
+  Index rows() { return m_mapL.rows(); }
+  Index cols() { return m_mapL.cols(); }
+
+  template<typename Dest>   void solveInPlace(MatrixBase<Dest> &X) const
+  {
+    Index nrhs = X.cols();
+    Index n = X.rows();
+    // Backward solve with U
+    for (Index k = m_mapL.nsuper(); k >= 0; k--)
+    {
+      Index fsupc = m_mapL.supToCol()[k];
+      Index lda = m_mapL.colIndexPtr()[fsupc+1] - m_mapL.colIndexPtr()[fsupc]; // leading dimension
+      Index nsupc = m_mapL.supToCol()[k+1] - fsupc;
+      Index luptr = m_mapL.colIndexPtr()[fsupc];
+
+      if (nsupc == 1)
+      {
+        for (Index j = 0; j < nrhs; j++)
+        {
+          X(fsupc, j) /= m_mapL.valuePtr()[luptr];
+        }
+      }
+      else
+      {
+        Map<const Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > A( &(m_mapL.valuePtr()[luptr]), nsupc, nsupc, OuterStride<>(lda) );
+        Map< Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > U (&(X(fsupc,0)), nsupc, nrhs, OuterStride<>(n) );
+        U = A.template triangularView<Upper>().solve(U);
+      }
+
+      for (Index j = 0; j < nrhs; ++j)
+      {
+        for (Index jcol = fsupc; jcol < fsupc + nsupc; jcol++)
+        {
+          typename MatrixUType::InnerIterator it(m_mapU, jcol);
+          for ( ; it; ++it)
+          {
+            Index irow = it.index();
+            X(irow, j) -= X(jcol, j) * it.value();
+          }
+        }
+      }
+    } // End For U-solve
+  }
+  const MatrixLType& m_mapL;
+  const MatrixUType& m_mapU;
+};
+
+namespace internal {
+  
+template<typename _MatrixType, typename Derived, typename Rhs>
+struct solve_retval<SparseLU<_MatrixType,Derived>, Rhs>
+  : solve_retval_base<SparseLU<_MatrixType,Derived>, Rhs>
+{
+  typedef SparseLU<_MatrixType,Derived> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+template<typename _MatrixType, typename Derived, typename Rhs>
+struct sparse_solve_retval<SparseLU<_MatrixType,Derived>, Rhs>
+  : sparse_solve_retval_base<SparseLU<_MatrixType,Derived>, Rhs>
+{
+  typedef SparseLU<_MatrixType,Derived> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    this->defaultEvalTo(dst);
+  }
+};
+} // end namespace internal
+
+} // End namespace Eigen 
+
+#endif
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLUImpl.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLUImpl.h
new file mode 100644
index 0000000..99d651e
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLUImpl.h
@@ -0,0 +1,66 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef SPARSELU_IMPL_H
+#define SPARSELU_IMPL_H
+
+namespace Eigen {
+namespace internal {
+  
+/** \ingroup SparseLU_Module
+  * \class SparseLUImpl
+  * Base class for sparseLU
+  */
+template <typename Scalar, typename Index>
+class SparseLUImpl
+{
+  public:
+    typedef Matrix<Scalar,Dynamic,1> ScalarVector;
+    typedef Matrix<Scalar,Dynamic,Dynamic,ColMajor> ScalarMatrix;
+    typedef Map<ScalarMatrix, 0,  OuterStride<> > MappedMatrixBlock;
+    typedef Matrix<Index,Dynamic,1> IndexVector; 
+    typedef typename ScalarVector::RealScalar RealScalar; 
+    typedef Ref<Matrix<Scalar,Dynamic,1> > BlockScalarVector;
+    typedef Ref<Matrix<Index,Dynamic,1> > BlockIndexVector;
+    typedef LU_GlobalLU_t<IndexVector, ScalarVector> GlobalLU_t; 
+    typedef SparseMatrix<Scalar,ColMajor,Index> MatrixType; 
+    
+  protected:
+     template <typename VectorType>
+     Index expand(VectorType& vec, Index& length, Index nbElts, Index keep_prev, Index& num_expansions);
+     Index memInit(Index m, Index n, Index annz, Index lwork, Index fillratio, Index panel_size,  GlobalLU_t& glu); 
+     template <typename VectorType>
+     Index memXpand(VectorType& vec, Index& maxlen, Index nbElts, MemType memtype, Index& num_expansions);
+     void heap_relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end); 
+     void relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end); 
+     Index snode_dfs(const Index jcol, const Index kcol,const MatrixType& mat,  IndexVector& xprune, IndexVector& marker, GlobalLU_t& glu); 
+     Index snode_bmod (const Index jcol, const Index fsupc, ScalarVector& dense, GlobalLU_t& glu);
+     Index pivotL(const Index jcol, const RealScalar& diagpivotthresh, IndexVector& perm_r, IndexVector& iperm_c, Index& pivrow, GlobalLU_t& glu);
+     template <typename Traits>
+     void dfs_kernel(const Index jj, IndexVector& perm_r,
+                    Index& nseg, IndexVector& panel_lsub, IndexVector& segrep,
+                    Ref<IndexVector> repfnz_col, IndexVector& xprune, Ref<IndexVector> marker, IndexVector& parent,
+                    IndexVector& xplore, GlobalLU_t& glu, Index& nextl_col, Index krow, Traits& traits);
+     void panel_dfs(const Index m, const Index w, const Index jcol, MatrixType& A, IndexVector& perm_r, Index& nseg, ScalarVector& dense, IndexVector& panel_lsub, IndexVector& segrep, IndexVector& repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu);
+    
+     void panel_bmod(const Index m, const Index w, const Index jcol, const Index nseg, ScalarVector& dense, ScalarVector& tempv, IndexVector& segrep, IndexVector& repfnz, GlobalLU_t& glu);
+     Index column_dfs(const Index m, const Index jcol, IndexVector& perm_r, Index maxsuper, Index& nseg,  BlockIndexVector lsub_col, IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu);
+     Index column_bmod(const Index jcol, const Index nseg, BlockScalarVector dense, ScalarVector& tempv, BlockIndexVector segrep, BlockIndexVector repfnz, Index fpanelc, GlobalLU_t& glu); 
+     Index copy_to_ucol(const Index jcol, const Index nseg, IndexVector& segrep, BlockIndexVector repfnz ,IndexVector& perm_r, BlockScalarVector dense, GlobalLU_t& glu); 
+     void pruneL(const Index jcol, const IndexVector& perm_r, const Index pivrow, const Index nseg, const IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, GlobalLU_t& glu);
+     void countnz(const Index n, Index& nnzL, Index& nnzU, GlobalLU_t& glu); 
+     void fixupL(const Index n, const IndexVector& perm_r, GlobalLU_t& glu); 
+     
+     template<typename , typename >
+     friend struct column_dfs_traits;
+}; 
+
+} // end namespace internal
+} // namespace Eigen
+
+#endif
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_Memory.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_Memory.h
new file mode 100644
index 0000000..45f96d1
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_Memory.h
@@ -0,0 +1,227 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]memory.c files in SuperLU 
+ 
+ * -- SuperLU routine (version 3.1) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * August 1, 2008
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+
+#ifndef EIGEN_SPARSELU_MEMORY
+#define EIGEN_SPARSELU_MEMORY
+
+namespace Eigen {
+namespace internal {
+  
+enum { LUNoMarker = 3 };
+enum {emptyIdxLU = -1};
+template<typename Index>
+inline Index LUnumTempV(Index& m, Index& w, Index& t, Index& b)
+{
+  return (std::max)(m, (t+b)*w);
+}
+
+template< typename Scalar, typename Index>
+inline Index LUTempSpace(Index&m, Index& w)
+{
+  return (2*w + 4 + LUNoMarker) * m * sizeof(Index) + (w + 1) * m * sizeof(Scalar);
+}
+
+
+
+
+/** 
+  * Expand the existing storage to accomodate more fill-ins
+  * \param vec Valid pointer to the vector to allocate or expand
+  * \param[in,out] length  At input, contain the current length of the vector that is to be increased. At output, length of the newly allocated vector
+  * \param[in] nbElts Current number of elements in the factors
+  * \param keep_prev  1: use length  and do not expand the vector; 0: compute new_len and expand
+  * \param[in,out] num_expansions Number of times the memory has been expanded
+  */
+template <typename Scalar, typename Index>
+template <typename VectorType>
+Index  SparseLUImpl<Scalar,Index>::expand(VectorType& vec, Index& length, Index nbElts, Index keep_prev, Index& num_expansions) 
+{
+  
+  float alpha = 1.5; // Ratio of the memory increase 
+  Index new_len; // New size of the allocated memory
+  
+  if(num_expansions == 0 || keep_prev) 
+    new_len = length ; // First time allocate requested
+  else 
+    new_len = (std::max)(length+1,Index(alpha * length));
+  
+  VectorType old_vec; // Temporary vector to hold the previous values   
+  if (nbElts > 0 )
+    old_vec = vec.segment(0,nbElts); 
+  
+  //Allocate or expand the current vector
+#ifdef EIGEN_EXCEPTIONS
+  try
+#endif
+  {
+    vec.resize(new_len); 
+  }
+#ifdef EIGEN_EXCEPTIONS
+  catch(std::bad_alloc& )
+#else
+  if(!vec.size())
+#endif
+  {
+    if (!num_expansions)
+    {
+      // First time to allocate from LUMemInit()
+      // Let LUMemInit() deals with it.
+      return -1;
+    }
+    if (keep_prev)
+    {
+      // In this case, the memory length should not not be reduced
+      return new_len;
+    }
+    else 
+    {
+      // Reduce the size and increase again 
+      Index tries = 0; // Number of attempts
+      do 
+      {
+        alpha = (alpha + 1)/2;
+        new_len = (std::max)(length+1,Index(alpha * length));
+#ifdef EIGEN_EXCEPTIONS
+        try
+#endif
+        {
+          vec.resize(new_len); 
+        }
+#ifdef EIGEN_EXCEPTIONS
+        catch(std::bad_alloc& )
+#else
+        if (!vec.size())
+#endif
+        {
+          tries += 1; 
+          if ( tries > 10) return new_len; 
+        }
+      } while (!vec.size());
+    }
+  }
+  //Copy the previous values to the newly allocated space 
+  if (nbElts > 0)
+    vec.segment(0, nbElts) = old_vec;   
+   
+  
+  length  = new_len;
+  if(num_expansions) ++num_expansions;
+  return 0; 
+}
+
+/**
+ * \brief  Allocate various working space for the numerical factorization phase.
+ * \param m number of rows of the input matrix 
+ * \param n number of columns 
+ * \param annz number of initial nonzeros in the matrix 
+ * \param lwork  if lwork=-1, this routine returns an estimated size of the required memory
+ * \param glu persistent data to facilitate multiple factors : will be deleted later ??
+ * \param fillratio estimated ratio of fill in the factors
+ * \param panel_size Size of a panel
+ * \return an estimated size of the required memory if lwork = -1; otherwise, return the size of actually allocated memory when allocation failed, and 0 on success
+ * \note Unlike SuperLU, this routine does not support successive factorization with the same pattern and the same row permutation
+ */
+template <typename Scalar, typename Index>
+Index SparseLUImpl<Scalar,Index>::memInit(Index m, Index n, Index annz, Index lwork, Index fillratio, Index panel_size,  GlobalLU_t& glu)
+{
+  Index& num_expansions = glu.num_expansions; //No memory expansions so far
+  num_expansions = 0;
+  glu.nzumax = glu.nzlumax = (std::min)(fillratio * (annz+1) / n, m) * n; // estimated number of nonzeros in U 
+  glu.nzlmax = (std::max)(Index(4), fillratio) * (annz+1) / 4; // estimated  nnz in L factor
+  // Return the estimated size to the user if necessary
+  Index tempSpace;
+  tempSpace = (2*panel_size + 4 + LUNoMarker) * m * sizeof(Index) + (panel_size + 1) * m * sizeof(Scalar);
+  if (lwork == emptyIdxLU) 
+  {
+    Index estimated_size;
+    estimated_size = (5 * n + 5) * sizeof(Index)  + tempSpace
+                    + (glu.nzlmax + glu.nzumax) * sizeof(Index) + (glu.nzlumax+glu.nzumax) *  sizeof(Scalar) + n; 
+    return estimated_size;
+  }
+  
+  // Setup the required space 
+  
+  // First allocate Integer pointers for L\U factors
+  glu.xsup.resize(n+1);
+  glu.supno.resize(n+1);
+  glu.xlsub.resize(n+1);
+  glu.xlusup.resize(n+1);
+  glu.xusub.resize(n+1);
+
+  // Reserve memory for L/U factors
+  do 
+  {
+    if(     (expand<ScalarVector>(glu.lusup, glu.nzlumax, 0, 0, num_expansions)<0)
+        ||  (expand<ScalarVector>(glu.ucol,  glu.nzumax,  0, 0, num_expansions)<0)
+        ||  (expand<IndexVector> (glu.lsub,  glu.nzlmax,  0, 0, num_expansions)<0)
+        ||  (expand<IndexVector> (glu.usub,  glu.nzumax,  0, 1, num_expansions)<0) )
+    {
+      //Reduce the estimated size and retry
+      glu.nzlumax /= 2;
+      glu.nzumax /= 2;
+      glu.nzlmax /= 2;
+      if (glu.nzlumax < annz ) return glu.nzlumax; 
+    }
+  } while (!glu.lusup.size() || !glu.ucol.size() || !glu.lsub.size() || !glu.usub.size());
+  
+  ++num_expansions;
+  return 0;
+  
+} // end LuMemInit
+
+/** 
+ * \brief Expand the existing storage 
+ * \param vec vector to expand 
+ * \param[in,out] maxlen On input, previous size of vec (Number of elements to copy ). on output, new size
+ * \param nbElts current number of elements in the vector.
+ * \param memtype Type of the element to expand
+ * \param num_expansions Number of expansions 
+ * \return 0 on success, > 0 size of the memory allocated so far
+ */
+template <typename Scalar, typename Index>
+template <typename VectorType>
+Index SparseLUImpl<Scalar,Index>::memXpand(VectorType& vec, Index& maxlen, Index nbElts, MemType memtype, Index& num_expansions)
+{
+  Index failed_size; 
+  if (memtype == USUB)
+     failed_size = this->expand<VectorType>(vec, maxlen, nbElts, 1, num_expansions);
+  else
+    failed_size = this->expand<VectorType>(vec, maxlen, nbElts, 0, num_expansions);
+
+  if (failed_size)
+    return failed_size; 
+  
+  return 0 ;  
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // EIGEN_SPARSELU_MEMORY
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_Structs.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_Structs.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_Structs.h
rename to vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_Structs.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
new file mode 100644
index 0000000..54a5694
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
@@ -0,0 +1,298 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSELU_SUPERNODAL_MATRIX_H
+#define EIGEN_SPARSELU_SUPERNODAL_MATRIX_H
+
+namespace Eigen {
+namespace internal {
+
+/** \ingroup SparseLU_Module
+ * \brief a class to manipulate the L supernodal factor from the SparseLU factorization
+ * 
+ * This class  contain the data to easily store 
+ * and manipulate the supernodes during the factorization and solution phase of Sparse LU. 
+ * Only the lower triangular matrix has supernodes.
+ * 
+ * NOTE : This class corresponds to the SCformat structure in SuperLU
+ * 
+ */
+/* TODO
+ * InnerIterator as for sparsematrix 
+ * SuperInnerIterator to iterate through all supernodes 
+ * Function for triangular solve
+ */
+template <typename _Scalar, typename _Index>
+class MappedSuperNodalMatrix
+{
+  public:
+    typedef _Scalar Scalar; 
+    typedef _Index Index;
+    typedef Matrix<Index,Dynamic,1> IndexVector; 
+    typedef Matrix<Scalar,Dynamic,1> ScalarVector;
+  public:
+    MappedSuperNodalMatrix()
+    {
+      
+    }
+    MappedSuperNodalMatrix(Index m, Index n,  ScalarVector& nzval, IndexVector& nzval_colptr, IndexVector& rowind, 
+             IndexVector& rowind_colptr, IndexVector& col_to_sup, IndexVector& sup_to_col )
+    {
+      setInfos(m, n, nzval, nzval_colptr, rowind, rowind_colptr, col_to_sup, sup_to_col);
+    }
+    
+    ~MappedSuperNodalMatrix()
+    {
+      
+    }
+    /**
+     * Set appropriate pointers for the lower triangular supernodal matrix
+     * These infos are available at the end of the numerical factorization
+     * FIXME This class will be modified such that it can be use in the course 
+     * of the factorization.
+     */
+    void setInfos(Index m, Index n, ScalarVector& nzval, IndexVector& nzval_colptr, IndexVector& rowind, 
+             IndexVector& rowind_colptr, IndexVector& col_to_sup, IndexVector& sup_to_col )
+    {
+      m_row = m;
+      m_col = n; 
+      m_nzval = nzval.data(); 
+      m_nzval_colptr = nzval_colptr.data(); 
+      m_rowind = rowind.data(); 
+      m_rowind_colptr = rowind_colptr.data(); 
+      m_nsuper = col_to_sup(n); 
+      m_col_to_sup = col_to_sup.data(); 
+      m_sup_to_col = sup_to_col.data(); 
+    }
+    
+    /**
+     * Number of rows
+     */
+    Index rows() { return m_row; }
+    
+    /**
+     * Number of columns
+     */
+    Index cols() { return m_col; }
+    
+    /**
+     * Return the array of nonzero values packed by column
+     * 
+     * The size is nnz
+     */
+    Scalar* valuePtr() {  return m_nzval; }
+    
+    const Scalar* valuePtr() const 
+    {
+      return m_nzval; 
+    }
+    /**
+     * Return the pointers to the beginning of each column in \ref valuePtr()
+     */
+    Index* colIndexPtr()
+    {
+      return m_nzval_colptr; 
+    }
+    
+    const Index* colIndexPtr() const
+    {
+      return m_nzval_colptr; 
+    }
+    
+    /**
+     * Return the array of compressed row indices of all supernodes
+     */
+    Index* rowIndex()  { return m_rowind; }
+    
+    const Index* rowIndex() const
+    {
+      return m_rowind; 
+    }
+    
+    /**
+     * Return the location in \em rowvaluePtr() which starts each column
+     */
+    Index* rowIndexPtr() { return m_rowind_colptr; }
+    
+    const Index* rowIndexPtr() const 
+    {
+      return m_rowind_colptr; 
+    }
+    
+    /** 
+     * Return the array of column-to-supernode mapping 
+     */
+    Index* colToSup()  { return m_col_to_sup; }
+    
+    const Index* colToSup() const
+    {
+      return m_col_to_sup;       
+    }
+    /**
+     * Return the array of supernode-to-column mapping
+     */
+    Index* supToCol() { return m_sup_to_col; }
+    
+    const Index* supToCol() const 
+    {
+      return m_sup_to_col;
+    }
+    
+    /**
+     * Return the number of supernodes
+     */
+    Index nsuper() const 
+    {
+      return m_nsuper; 
+    }
+    
+    class InnerIterator; 
+    template<typename Dest>
+    void solveInPlace( MatrixBase<Dest>&X) const;
+    
+      
+      
+    
+  protected:
+    Index m_row; // Number of rows
+    Index m_col; // Number of columns 
+    Index m_nsuper; // Number of supernodes 
+    Scalar* m_nzval; //array of nonzero values packed by column
+    Index* m_nzval_colptr; //nzval_colptr[j] Stores the location in nzval[] which starts column j 
+    Index* m_rowind; // Array of compressed row indices of rectangular supernodes
+    Index* m_rowind_colptr; //rowind_colptr[j] stores the location in rowind[] which starts column j
+    Index* m_col_to_sup; // col_to_sup[j] is the supernode number to which column j belongs
+    Index* m_sup_to_col; //sup_to_col[s] points to the starting column of the s-th supernode
+    
+  private :
+};
+
+/**
+  * \brief InnerIterator class to iterate over nonzero values of the current column in the supernodal matrix L
+  * 
+  */
+template<typename Scalar, typename Index>
+class MappedSuperNodalMatrix<Scalar,Index>::InnerIterator
+{
+  public:
+     InnerIterator(const MappedSuperNodalMatrix& mat, Index outer)
+      : m_matrix(mat),
+        m_outer(outer), 
+        m_supno(mat.colToSup()[outer]),
+        m_idval(mat.colIndexPtr()[outer]),
+        m_startidval(m_idval),
+        m_endidval(mat.colIndexPtr()[outer+1]),
+        m_idrow(mat.rowIndexPtr()[mat.supToCol()[mat.colToSup()[outer]]]),
+        m_endidrow(mat.rowIndexPtr()[mat.supToCol()[mat.colToSup()[outer]]+1])
+    {}
+    inline InnerIterator& operator++()
+    { 
+      m_idval++; 
+      m_idrow++;
+      return *this;
+    }
+    inline Scalar value() const { return m_matrix.valuePtr()[m_idval]; }
+    
+    inline Scalar& valueRef() { return const_cast<Scalar&>(m_matrix.valuePtr()[m_idval]); }
+    
+    inline Index index() const { return m_matrix.rowIndex()[m_idrow]; }
+    inline Index row() const { return index(); }
+    inline Index col() const { return m_outer; }
+    
+    inline Index supIndex() const { return m_supno; }
+    
+    inline operator bool() const 
+    { 
+      return ( (m_idval < m_endidval) && (m_idval >= m_startidval)
+                && (m_idrow < m_endidrow) );
+    }
+    
+  protected:
+    const MappedSuperNodalMatrix& m_matrix; // Supernodal lower triangular matrix 
+    const Index m_outer;                    // Current column 
+    const Index m_supno;                    // Current SuperNode number
+    Index m_idval;                          // Index to browse the values in the current column
+    const Index m_startidval;               // Start of the column value
+    const Index m_endidval;                 // End of the column value
+    Index m_idrow;                          // Index to browse the row indices 
+    Index m_endidrow;                       // End index of row indices of the current column
+};
+
+/**
+ * \brief Solve with the supernode triangular matrix
+ * 
+ */
+template<typename Scalar, typename Index>
+template<typename Dest>
+void MappedSuperNodalMatrix<Scalar,Index>::solveInPlace( MatrixBase<Dest>&X) const
+{
+    Index n = X.rows(); 
+    Index nrhs = X.cols(); 
+    const Scalar * Lval = valuePtr();                 // Nonzero values 
+    Matrix<Scalar,Dynamic,Dynamic, ColMajor> work(n, nrhs);     // working vector
+    work.setZero();
+    for (Index k = 0; k <= nsuper(); k ++)
+    {
+      Index fsupc = supToCol()[k];                    // First column of the current supernode 
+      Index istart = rowIndexPtr()[fsupc];            // Pointer index to the subscript of the current column
+      Index nsupr = rowIndexPtr()[fsupc+1] - istart;  // Number of rows in the current supernode
+      Index nsupc = supToCol()[k+1] - fsupc;          // Number of columns in the current supernode
+      Index nrow = nsupr - nsupc;                     // Number of rows in the non-diagonal part of the supernode
+      Index irow;                                     //Current index row
+      
+      if (nsupc == 1 )
+      {
+        for (Index j = 0; j < nrhs; j++)
+        {
+          InnerIterator it(*this, fsupc);
+          ++it; // Skip the diagonal element
+          for (; it; ++it)
+          {
+            irow = it.row();
+            X(irow, j) -= X(fsupc, j) * it.value();
+          }
+        }
+      }
+      else
+      {
+        // The supernode has more than one column 
+        Index luptr = colIndexPtr()[fsupc]; 
+        Index lda = colIndexPtr()[fsupc+1] - luptr;
+        
+        // Triangular solve 
+        Map<const Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > A( &(Lval[luptr]), nsupc, nsupc, OuterStride<>(lda) );
+        Map< Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > U (&(X(fsupc,0)), nsupc, nrhs, OuterStride<>(n) ); 
+        U = A.template triangularView<UnitLower>().solve(U); 
+        
+        // Matrix-vector product 
+        new (&A) Map<const Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > ( &(Lval[luptr+nsupc]), nrow, nsupc, OuterStride<>(lda) );
+        work.block(0, 0, nrow, nrhs) = A * U; 
+        
+        //Begin Scatter 
+        for (Index j = 0; j < nrhs; j++)
+        {
+          Index iptr = istart + nsupc; 
+          for (Index i = 0; i < nrow; i++)
+          {
+            irow = rowIndex()[iptr]; 
+            X(irow, j) -= work(i, j); // Scatter operation
+            work(i, j) = Scalar(0); 
+            iptr++;
+          }
+        }
+      }
+    } 
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSELU_MATRIX_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_Utils.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_Utils.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_Utils.h
rename to vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_Utils.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_column_bmod.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_column_bmod.h
new file mode 100644
index 0000000..cacc7e9
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_column_bmod.h
@@ -0,0 +1,180 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of xcolumn_bmod.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_COLUMN_BMOD_H
+#define SPARSELU_COLUMN_BMOD_H
+
+namespace Eigen {
+
+namespace internal {
+/**
+ * \brief Performs numeric block updates (sup-col) in topological order
+ * 
+ * \param jcol current column to update
+ * \param nseg Number of segments in the U part
+ * \param dense Store the full representation of the column
+ * \param tempv working array 
+ * \param segrep segment representative ...
+ * \param repfnz ??? First nonzero column in each row ???  ...
+ * \param fpanelc First column in the current panel
+ * \param glu Global LU data. 
+ * \return 0 - successful return 
+ *         > 0 - number of bytes allocated when run out of space
+ * 
+ */
+template <typename Scalar, typename Index>
+Index SparseLUImpl<Scalar,Index>::column_bmod(const Index jcol, const Index nseg, BlockScalarVector dense, ScalarVector& tempv, BlockIndexVector segrep, BlockIndexVector repfnz, Index fpanelc, GlobalLU_t& glu)
+{
+  Index  jsupno, k, ksub, krep, ksupno; 
+  Index lptr, nrow, isub, irow, nextlu, new_next, ufirst; 
+  Index fsupc, nsupc, nsupr, luptr, kfnz, no_zeros; 
+  /* krep = representative of current k-th supernode
+    * fsupc =  first supernodal column
+    * nsupc = number of columns in a supernode
+    * nsupr = number of rows in a supernode
+    * luptr = location of supernodal LU-block in storage
+    * kfnz = first nonz in the k-th supernodal segment
+    * no_zeros = no lf leading zeros in a supernodal U-segment
+    */
+  
+  jsupno = glu.supno(jcol);
+  // For each nonzero supernode segment of U[*,j] in topological order 
+  k = nseg - 1; 
+  Index d_fsupc; // distance between the first column of the current panel and the 
+               // first column of the current snode
+  Index fst_col; // First column within small LU update
+  Index segsize; 
+  for (ksub = 0; ksub < nseg; ksub++)
+  {
+    krep = segrep(k); k--; 
+    ksupno = glu.supno(krep); 
+    if (jsupno != ksupno )
+    {
+      // outside the rectangular supernode 
+      fsupc = glu.xsup(ksupno); 
+      fst_col = (std::max)(fsupc, fpanelc); 
+      
+      // Distance from the current supernode to the current panel; 
+      // d_fsupc = 0 if fsupc > fpanelc
+      d_fsupc = fst_col - fsupc; 
+      
+      luptr = glu.xlusup(fst_col) + d_fsupc; 
+      lptr = glu.xlsub(fsupc) + d_fsupc; 
+      
+      kfnz = repfnz(krep); 
+      kfnz = (std::max)(kfnz, fpanelc); 
+      
+      segsize = krep - kfnz + 1; 
+      nsupc = krep - fst_col + 1; 
+      nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); 
+      nrow = nsupr - d_fsupc - nsupc;
+      Index lda = glu.xlusup(fst_col+1) - glu.xlusup(fst_col);
+      
+      
+      // Perform a triangular solver and block update, 
+      // then scatter the result of sup-col update to dense
+      no_zeros = kfnz - fst_col; 
+      if(segsize==1)
+        LU_kernel_bmod<1>::run(segsize, dense, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+      else
+        LU_kernel_bmod<Dynamic>::run(segsize, dense, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+    } // end if jsupno 
+  } // end for each segment
+  
+  // Process the supernodal portion of  L\U[*,j]
+  nextlu = glu.xlusup(jcol); 
+  fsupc = glu.xsup(jsupno);
+  
+  // copy the SPA dense into L\U[*,j]
+  Index mem; 
+  new_next = nextlu + glu.xlsub(fsupc + 1) - glu.xlsub(fsupc); 
+  Index offset = internal::first_multiple<Index>(new_next, internal::packet_traits<Scalar>::size) - new_next;
+  if(offset)
+    new_next += offset;
+  while (new_next > glu.nzlumax )
+  {
+    mem = memXpand<ScalarVector>(glu.lusup, glu.nzlumax, nextlu, LUSUP, glu.num_expansions);  
+    if (mem) return mem; 
+  }
+  
+  for (isub = glu.xlsub(fsupc); isub < glu.xlsub(fsupc+1); isub++)
+  {
+    irow = glu.lsub(isub);
+    glu.lusup(nextlu) = dense(irow);
+    dense(irow) = Scalar(0.0); 
+    ++nextlu; 
+  }
+  
+  if(offset)
+  {
+    glu.lusup.segment(nextlu,offset).setZero();
+    nextlu += offset;
+  }
+  glu.xlusup(jcol + 1) = nextlu;  // close L\U(*,jcol); 
+  
+  /* For more updates within the panel (also within the current supernode),
+   * should start from the first column of the panel, or the first column
+   * of the supernode, whichever is bigger. There are two cases:
+   *  1) fsupc < fpanelc, then fst_col <-- fpanelc
+   *  2) fsupc >= fpanelc, then fst_col <-- fsupc
+   */
+  fst_col = (std::max)(fsupc, fpanelc); 
+  
+  if (fst_col  < jcol)
+  {
+    // Distance between the current supernode and the current panel
+    // d_fsupc = 0 if fsupc >= fpanelc
+    d_fsupc = fst_col - fsupc; 
+    
+    lptr = glu.xlsub(fsupc) + d_fsupc; 
+    luptr = glu.xlusup(fst_col) + d_fsupc; 
+    nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); // leading dimension
+    nsupc = jcol - fst_col; // excluding jcol 
+    nrow = nsupr - d_fsupc - nsupc; 
+    
+    // points to the beginning of jcol in snode L\U(jsupno) 
+    ufirst = glu.xlusup(jcol) + d_fsupc; 
+    Index lda = glu.xlusup(jcol+1) - glu.xlusup(jcol);
+    MappedMatrixBlock A( &(glu.lusup.data()[luptr]), nsupc, nsupc, OuterStride<>(lda) );
+    VectorBlock<ScalarVector> u(glu.lusup, ufirst, nsupc); 
+    u = A.template triangularView<UnitLower>().solve(u); 
+    
+    new (&A) MappedMatrixBlock ( &(glu.lusup.data()[luptr+nsupc]), nrow, nsupc, OuterStride<>(lda) );
+    VectorBlock<ScalarVector> l(glu.lusup, ufirst+nsupc, nrow); 
+    l.noalias() -= A * u;
+    
+  } // End if fst_col
+  return 0; 
+}
+
+} // end namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_COLUMN_BMOD_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_column_dfs.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_column_dfs.h
new file mode 100644
index 0000000..4c04b0e
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_column_dfs.h
@@ -0,0 +1,177 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]column_dfs.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 2.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November 15, 1997
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_COLUMN_DFS_H
+#define SPARSELU_COLUMN_DFS_H
+
+template <typename Scalar, typename Index> class SparseLUImpl;
+namespace Eigen {
+
+namespace internal {
+
+template<typename IndexVector, typename ScalarVector>
+struct column_dfs_traits : no_assignment_operator
+{
+  typedef typename ScalarVector::Scalar Scalar;
+  typedef typename IndexVector::Scalar Index;
+  column_dfs_traits(Index jcol, Index& jsuper, typename SparseLUImpl<Scalar, Index>::GlobalLU_t& glu, SparseLUImpl<Scalar, Index>& luImpl)
+   : m_jcol(jcol), m_jsuper_ref(jsuper), m_glu(glu), m_luImpl(luImpl)
+ {}
+  bool update_segrep(Index /*krep*/, Index /*jj*/)
+  {
+    return true;
+  }
+  void mem_expand(IndexVector& lsub, Index& nextl, Index chmark)
+  {
+    if (nextl >= m_glu.nzlmax)
+      m_luImpl.memXpand(lsub, m_glu.nzlmax, nextl, LSUB, m_glu.num_expansions); 
+    if (chmark != (m_jcol-1)) m_jsuper_ref = emptyIdxLU;
+  }
+  enum { ExpandMem = true };
+  
+  Index m_jcol;
+  Index& m_jsuper_ref;
+  typename SparseLUImpl<Scalar, Index>::GlobalLU_t& m_glu;
+  SparseLUImpl<Scalar, Index>& m_luImpl;
+};
+
+
+/**
+ * \brief Performs a symbolic factorization on column jcol and decide the supernode boundary
+ * 
+ * A supernode representative is the last column of a supernode.
+ * The nonzeros in U[*,j] are segments that end at supernodes representatives. 
+ * The routine returns a list of the supernodal representatives 
+ * in topological order of the dfs that generates them. 
+ * The location of the first nonzero in each supernodal segment 
+ * (supernodal entry location) is also returned. 
+ * 
+ * \param m number of rows in the matrix
+ * \param jcol Current column 
+ * \param perm_r Row permutation
+ * \param maxsuper  Maximum number of column allowed in a supernode
+ * \param [in,out] nseg Number of segments in current U[*,j] - new segments appended
+ * \param lsub_col defines the rhs vector to start the dfs
+ * \param [in,out] segrep Segment representatives - new segments appended 
+ * \param repfnz  First nonzero location in each row
+ * \param xprune 
+ * \param marker  marker[i] == jj, if i was visited during dfs of current column jj;
+ * \param parent
+ * \param xplore working array
+ * \param glu global LU data 
+ * \return 0 success
+ *         > 0 number of bytes allocated when run out of space
+ * 
+ */
+template <typename Scalar, typename Index>
+Index SparseLUImpl<Scalar,Index>::column_dfs(const Index m, const Index jcol, IndexVector& perm_r, Index maxsuper, Index& nseg,  BlockIndexVector lsub_col, IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu)
+{
+  
+  Index jsuper = glu.supno(jcol); 
+  Index nextl = glu.xlsub(jcol); 
+  VectorBlock<IndexVector> marker2(marker, 2*m, m); 
+  
+  
+  column_dfs_traits<IndexVector, ScalarVector> traits(jcol, jsuper, glu, *this);
+  
+  // For each nonzero in A(*,jcol) do dfs 
+  for (Index k = 0; ((k < m) ? lsub_col[k] != emptyIdxLU : false) ; k++)
+  {
+    Index krow = lsub_col(k); 
+    lsub_col(k) = emptyIdxLU; 
+    Index kmark = marker2(krow); 
+    
+    // krow was visited before, go to the next nonz; 
+    if (kmark == jcol) continue;
+    
+    dfs_kernel(jcol, perm_r, nseg, glu.lsub, segrep, repfnz, xprune, marker2, parent,
+                   xplore, glu, nextl, krow, traits);
+  } // for each nonzero ... 
+  
+  Index fsupc, jptr, jm1ptr, ito, ifrom, istop;
+  Index nsuper = glu.supno(jcol);
+  Index jcolp1 = jcol + 1;
+  Index jcolm1 = jcol - 1;
+  
+  // check to see if j belongs in the same supernode as j-1
+  if ( jcol == 0 )
+  { // Do nothing for column 0 
+    nsuper = glu.supno(0) = 0 ;
+  }
+  else 
+  {
+    fsupc = glu.xsup(nsuper); 
+    jptr = glu.xlsub(jcol); // Not yet compressed
+    jm1ptr = glu.xlsub(jcolm1); 
+    
+    // Use supernodes of type T2 : see SuperLU paper
+    if ( (nextl-jptr != jptr-jm1ptr-1) ) jsuper = emptyIdxLU;
+    
+    // Make sure the number of columns in a supernode doesn't
+    // exceed threshold
+    if ( (jcol - fsupc) >= maxsuper) jsuper = emptyIdxLU; 
+    
+    /* If jcol starts a new supernode, reclaim storage space in
+     * glu.lsub from previous supernode. Note we only store 
+     * the subscript set of the first and last columns of 
+     * a supernode. (first for num values, last for pruning)
+     */
+    if (jsuper == emptyIdxLU)
+    { // starts a new supernode 
+      if ( (fsupc < jcolm1-1) ) 
+      { // >= 3 columns in nsuper
+        ito = glu.xlsub(fsupc+1);
+        glu.xlsub(jcolm1) = ito; 
+        istop = ito + jptr - jm1ptr; 
+        xprune(jcolm1) = istop; // intialize xprune(jcol-1)
+        glu.xlsub(jcol) = istop; 
+        
+        for (ifrom = jm1ptr; ifrom < nextl; ++ifrom, ++ito)
+          glu.lsub(ito) = glu.lsub(ifrom); 
+        nextl = ito;  // = istop + length(jcol)
+      }
+      nsuper++; 
+      glu.supno(jcol) = nsuper; 
+    } // if a new supernode 
+  } // end else:  jcol > 0
+  
+  // Tidy up the pointers before exit
+  glu.xsup(nsuper+1) = jcolp1; 
+  glu.supno(jcolp1) = nsuper; 
+  xprune(jcol) = nextl;  // Intialize upper bound for pruning
+  glu.xlsub(jcolp1) = nextl; 
+  
+  return 0; 
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
rename to vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_gemm_kernel.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
rename to vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
rename to vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_kernel_bmod.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
new file mode 100644
index 0000000..6af0267
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
@@ -0,0 +1,130 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef SPARSELU_KERNEL_BMOD_H
+#define SPARSELU_KERNEL_BMOD_H
+
+namespace Eigen {
+namespace internal {
+  
+/**
+ * \brief Performs numeric block updates from a given supernode to a single column
+ * 
+ * \param segsize Size of the segment (and blocks ) to use for updates
+ * \param[in,out] dense Packed values of the original matrix
+ * \param tempv temporary vector to use for updates
+ * \param lusup array containing the supernodes
+ * \param lda Leading dimension in the supernode
+ * \param nrow Number of rows in the rectangular part of the supernode
+ * \param lsub compressed row subscripts of supernodes
+ * \param lptr pointer to the first column of the current supernode in lsub
+ * \param no_zeros Number of nonzeros elements before the diagonal part of the supernode
+ * \return 0 on success
+ */
+template <int SegSizeAtCompileTime> struct LU_kernel_bmod
+{
+  template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
+  static EIGEN_DONT_INLINE void run(const int segsize, BlockScalarVector& dense, ScalarVector& tempv, ScalarVector& lusup, Index& luptr, const Index lda,
+                                    const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros);
+};
+
+template <int SegSizeAtCompileTime>
+template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
+EIGEN_DONT_INLINE void LU_kernel_bmod<SegSizeAtCompileTime>::run(const int segsize, BlockScalarVector& dense, ScalarVector& tempv, ScalarVector& lusup, Index& luptr, const Index lda,
+                                                                  const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros)
+{
+  typedef typename ScalarVector::Scalar Scalar;
+  // First, copy U[*,j] segment from dense(*) to tempv(*)
+  // The result of triangular solve is in tempv[*]; 
+    // The result of matric-vector update is in dense[*]
+  Index isub = lptr + no_zeros; 
+  int i;
+  Index irow;
+  for (i = 0; i < ((SegSizeAtCompileTime==Dynamic)?segsize:SegSizeAtCompileTime); i++)
+  {
+    irow = lsub(isub); 
+    tempv(i) = dense(irow); 
+    ++isub; 
+  }
+  // Dense triangular solve -- start effective triangle
+  luptr += lda * no_zeros + no_zeros; 
+  // Form Eigen matrix and vector 
+  Map<Matrix<Scalar,SegSizeAtCompileTime,SegSizeAtCompileTime, ColMajor>, 0, OuterStride<> > A( &(lusup.data()[luptr]), segsize, segsize, OuterStride<>(lda) );
+  Map<Matrix<Scalar,SegSizeAtCompileTime,1> > u(tempv.data(), segsize);
+  
+  u = A.template triangularView<UnitLower>().solve(u); 
+  
+  // Dense matrix-vector product y <-- B*x 
+  luptr += segsize;
+  const Index PacketSize = internal::packet_traits<Scalar>::size;
+  Index ldl = internal::first_multiple(nrow, PacketSize);
+  Map<Matrix<Scalar,Dynamic,SegSizeAtCompileTime, ColMajor>, 0, OuterStride<> > B( &(lusup.data()[luptr]), nrow, segsize, OuterStride<>(lda) );
+  Index aligned_offset = internal::first_aligned(tempv.data()+segsize, PacketSize);
+  Index aligned_with_B_offset = (PacketSize-internal::first_aligned(B.data(), PacketSize))%PacketSize;
+  Map<Matrix<Scalar,Dynamic,1>, 0, OuterStride<> > l(tempv.data()+segsize+aligned_offset+aligned_with_B_offset, nrow, OuterStride<>(ldl) );
+  
+  l.setZero();
+  internal::sparselu_gemm<Scalar>(l.rows(), l.cols(), B.cols(), B.data(), B.outerStride(), u.data(), u.outerStride(), l.data(), l.outerStride());
+  
+  // Scatter tempv[] into SPA dense[] as a temporary storage 
+  isub = lptr + no_zeros;
+  for (i = 0; i < ((SegSizeAtCompileTime==Dynamic)?segsize:SegSizeAtCompileTime); i++)
+  {
+    irow = lsub(isub++); 
+    dense(irow) = tempv(i);
+  }
+  
+  // Scatter l into SPA dense[]
+  for (i = 0; i < nrow; i++)
+  {
+    irow = lsub(isub++); 
+    dense(irow) -= l(i);
+  } 
+}
+
+template <> struct LU_kernel_bmod<1>
+{
+  template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
+  static EIGEN_DONT_INLINE void run(const int /*segsize*/, BlockScalarVector& dense, ScalarVector& /*tempv*/, ScalarVector& lusup, Index& luptr,
+                                    const Index lda, const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros);
+};
+
+
+template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
+EIGEN_DONT_INLINE void LU_kernel_bmod<1>::run(const int /*segsize*/, BlockScalarVector& dense, ScalarVector& /*tempv*/, ScalarVector& lusup, Index& luptr,
+                                              const Index lda, const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros)
+{
+  typedef typename ScalarVector::Scalar Scalar;
+  Scalar f = dense(lsub(lptr + no_zeros));
+  luptr += lda * no_zeros + no_zeros + 1;
+  const Scalar* a(lusup.data() + luptr);
+  const /*typename IndexVector::Scalar*/Index*  irow(lsub.data()+lptr + no_zeros + 1);
+  Index i = 0;
+  for (; i+1 < nrow; i+=2)
+  {
+    Index i0 = *(irow++);
+    Index i1 = *(irow++);
+    Scalar a0 = *(a++);
+    Scalar a1 = *(a++);
+    Scalar d0 = dense.coeff(i0);
+    Scalar d1 = dense.coeff(i1);
+    d0 -= f*a0;
+    d1 -= f*a1;
+    dense.coeffRef(i0) = d0;
+    dense.coeffRef(i1) = d1;
+  }
+  if(i<nrow)
+    dense.coeffRef(*(irow++)) -= f * *(a++);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // SPARSELU_KERNEL_BMOD_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_panel_bmod.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_panel_bmod.h
new file mode 100644
index 0000000..9d2ff29
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_panel_bmod.h
@@ -0,0 +1,223 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]panel_bmod.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_PANEL_BMOD_H
+#define SPARSELU_PANEL_BMOD_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Performs numeric block updates (sup-panel) in topological order.
+ * 
+ * Before entering this routine, the original nonzeros in the panel
+ * were already copied i nto the spa[m,w]
+ * 
+ * \param m number of rows in the matrix
+ * \param w Panel size
+ * \param jcol Starting  column of the panel
+ * \param nseg Number of segments in the U part
+ * \param dense Store the full representation of the panel 
+ * \param tempv working array 
+ * \param segrep segment representative... first row in the segment
+ * \param repfnz First nonzero rows
+ * \param glu Global LU data. 
+ * 
+ * 
+ */
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::panel_bmod(const Index m, const Index w, const Index jcol, 
+                                            const Index nseg, ScalarVector& dense, ScalarVector& tempv,
+                                            IndexVector& segrep, IndexVector& repfnz, GlobalLU_t& glu)
+{
+  
+  Index ksub,jj,nextl_col; 
+  Index fsupc, nsupc, nsupr, nrow; 
+  Index krep, kfnz; 
+  Index lptr; // points to the row subscripts of a supernode 
+  Index luptr; // ...
+  Index segsize,no_zeros ; 
+  // For each nonz supernode segment of U[*,j] in topological order
+  Index k = nseg - 1; 
+  const Index PacketSize = internal::packet_traits<Scalar>::size;
+  
+  for (ksub = 0; ksub < nseg; ksub++)
+  { // For each updating supernode
+    /* krep = representative of current k-th supernode
+     * fsupc =  first supernodal column
+     * nsupc = number of columns in a supernode
+     * nsupr = number of rows in a supernode
+     */
+    krep = segrep(k); k--; 
+    fsupc = glu.xsup(glu.supno(krep)); 
+    nsupc = krep - fsupc + 1; 
+    nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); 
+    nrow = nsupr - nsupc; 
+    lptr = glu.xlsub(fsupc); 
+    
+    // loop over the panel columns to detect the actual number of columns and rows
+    Index u_rows = 0;
+    Index u_cols = 0;
+    for (jj = jcol; jj < jcol + w; jj++)
+    {
+      nextl_col = (jj-jcol) * m; 
+      VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+      
+      kfnz = repfnz_col(krep); 
+      if ( kfnz == emptyIdxLU ) 
+        continue; // skip any zero segment
+      
+      segsize = krep - kfnz + 1;
+      u_cols++;
+      u_rows = (std::max)(segsize,u_rows);
+    }
+    
+    if(nsupc >= 2)
+    { 
+      Index ldu = internal::first_multiple<Index>(u_rows, PacketSize);
+      Map<ScalarMatrix, Aligned,  OuterStride<> > U(tempv.data(), u_rows, u_cols, OuterStride<>(ldu));
+      
+      // gather U
+      Index u_col = 0;
+      for (jj = jcol; jj < jcol + w; jj++)
+      {
+        nextl_col = (jj-jcol) * m; 
+        VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+        VectorBlock<ScalarVector> dense_col(dense, nextl_col, m); // Scatter/gather entire matrix column from/to here
+        
+        kfnz = repfnz_col(krep); 
+        if ( kfnz == emptyIdxLU ) 
+          continue; // skip any zero segment
+        
+        segsize = krep - kfnz + 1;
+        luptr = glu.xlusup(fsupc);    
+        no_zeros = kfnz - fsupc; 
+        
+        Index isub = lptr + no_zeros;
+        Index off = u_rows-segsize;
+        for (Index i = 0; i < off; i++) U(i,u_col) = 0;
+        for (Index i = 0; i < segsize; i++)
+        {
+          Index irow = glu.lsub(isub); 
+          U(i+off,u_col) = dense_col(irow); 
+          ++isub; 
+        }
+        u_col++;
+      }
+      // solve U = A^-1 U
+      luptr = glu.xlusup(fsupc);
+      Index lda = glu.xlusup(fsupc+1) - glu.xlusup(fsupc);
+      no_zeros = (krep - u_rows + 1) - fsupc;
+      luptr += lda * no_zeros + no_zeros;
+      MappedMatrixBlock A(glu.lusup.data()+luptr, u_rows, u_rows, OuterStride<>(lda) );
+      U = A.template triangularView<UnitLower>().solve(U);
+      
+      // update
+      luptr += u_rows;
+      MappedMatrixBlock B(glu.lusup.data()+luptr, nrow, u_rows, OuterStride<>(lda) );
+      eigen_assert(tempv.size()>w*ldu + nrow*w + 1);
+      
+      Index ldl = internal::first_multiple<Index>(nrow, PacketSize);
+      Index offset = (PacketSize-internal::first_aligned(B.data(), PacketSize)) % PacketSize;
+      MappedMatrixBlock L(tempv.data()+w*ldu+offset, nrow, u_cols, OuterStride<>(ldl));
+      
+      L.setZero();
+      internal::sparselu_gemm<Scalar>(L.rows(), L.cols(), B.cols(), B.data(), B.outerStride(), U.data(), U.outerStride(), L.data(), L.outerStride());
+      
+      // scatter U and L
+      u_col = 0;
+      for (jj = jcol; jj < jcol + w; jj++)
+      {
+        nextl_col = (jj-jcol) * m; 
+        VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+        VectorBlock<ScalarVector> dense_col(dense, nextl_col, m); // Scatter/gather entire matrix column from/to here
+        
+        kfnz = repfnz_col(krep); 
+        if ( kfnz == emptyIdxLU ) 
+          continue; // skip any zero segment
+        
+        segsize = krep - kfnz + 1;
+        no_zeros = kfnz - fsupc; 
+        Index isub = lptr + no_zeros;
+        
+        Index off = u_rows-segsize;
+        for (Index i = 0; i < segsize; i++)
+        {
+          Index irow = glu.lsub(isub++); 
+          dense_col(irow) = U.coeff(i+off,u_col);
+          U.coeffRef(i+off,u_col) = 0;
+        }
+        
+        // Scatter l into SPA dense[]
+        for (Index i = 0; i < nrow; i++)
+        {
+          Index irow = glu.lsub(isub++); 
+          dense_col(irow) -= L.coeff(i,u_col);
+          L.coeffRef(i,u_col) = 0;
+        }
+        u_col++;
+      }
+    }
+    else // level 2 only
+    {
+      // Sequence through each column in the panel
+      for (jj = jcol; jj < jcol + w; jj++)
+      {
+        nextl_col = (jj-jcol) * m; 
+        VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+        VectorBlock<ScalarVector> dense_col(dense, nextl_col, m); // Scatter/gather entire matrix column from/to here
+        
+        kfnz = repfnz_col(krep); 
+        if ( kfnz == emptyIdxLU ) 
+          continue; // skip any zero segment
+        
+        segsize = krep - kfnz + 1;
+        luptr = glu.xlusup(fsupc);
+        
+        Index lda = glu.xlusup(fsupc+1)-glu.xlusup(fsupc);// nsupr
+        
+        // Perform a trianglar solve and block update, 
+        // then scatter the result of sup-col update to dense[]
+        no_zeros = kfnz - fsupc; 
+              if(segsize==1)  LU_kernel_bmod<1>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+        else  if(segsize==2)  LU_kernel_bmod<2>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+        else  if(segsize==3)  LU_kernel_bmod<3>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+        else                  LU_kernel_bmod<Dynamic>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros); 
+      } // End for each column in the panel 
+    }
+    
+  } // End for each updating supernode
+} // end panel bmod
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // SPARSELU_PANEL_BMOD_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_panel_dfs.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_panel_dfs.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_panel_dfs.h
rename to vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_panel_dfs.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_pivotL.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_pivotL.h
new file mode 100644
index 0000000..2e49ef6
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_pivotL.h
@@ -0,0 +1,137 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of xpivotL.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_PIVOTL_H
+#define SPARSELU_PIVOTL_H
+
+namespace Eigen {
+namespace internal {
+  
+/**
+ * \brief Performs the numerical pivotin on the current column of L, and the CDIV operation.
+ * 
+ * Pivot policy :
+ * (1) Compute thresh = u * max_(i>=j) abs(A_ij);
+ * (2) IF user specifies pivot row k and abs(A_kj) >= thresh THEN
+ *           pivot row = k;
+ *       ELSE IF abs(A_jj) >= thresh THEN
+ *           pivot row = j;
+ *       ELSE
+ *           pivot row = m;
+ * 
+ *   Note: If you absolutely want to use a given pivot order, then set u=0.0.
+ * 
+ * \param jcol The current column of L
+ * \param diagpivotthresh diagonal pivoting threshold
+ * \param[in,out] perm_r Row permutation (threshold pivoting)
+ * \param[in] iperm_c column permutation - used to finf diagonal of Pc*A*Pc'
+ * \param[out] pivrow  The pivot row
+ * \param glu Global LU data
+ * \return 0 if success, i > 0 if U(i,i) is exactly zero 
+ * 
+ */
+template <typename Scalar, typename Index>
+Index SparseLUImpl<Scalar,Index>::pivotL(const Index jcol, const RealScalar& diagpivotthresh, IndexVector& perm_r, IndexVector& iperm_c, Index& pivrow, GlobalLU_t& glu)
+{
+  
+  Index fsupc = (glu.xsup)((glu.supno)(jcol)); // First column in the supernode containing the column jcol
+  Index nsupc = jcol - fsupc; // Number of columns in the supernode portion, excluding jcol; nsupc >=0
+  Index lptr = glu.xlsub(fsupc); // pointer to the starting location of the row subscripts for this supernode portion
+  Index nsupr = glu.xlsub(fsupc+1) - lptr; // Number of rows in the supernode
+  Index lda = glu.xlusup(fsupc+1) - glu.xlusup(fsupc); // leading dimension
+  Scalar* lu_sup_ptr = &(glu.lusup.data()[glu.xlusup(fsupc)]); // Start of the current supernode
+  Scalar* lu_col_ptr = &(glu.lusup.data()[glu.xlusup(jcol)]); // Start of jcol in the supernode
+  Index* lsub_ptr = &(glu.lsub.data()[lptr]); // Start of row indices of the supernode
+  
+  // Determine the largest abs numerical value for partial pivoting 
+  Index diagind = iperm_c(jcol); // diagonal index 
+  RealScalar pivmax(-1.0);
+  Index pivptr = nsupc; 
+  Index diag = emptyIdxLU; 
+  RealScalar rtemp;
+  Index isub, icol, itemp, k; 
+  for (isub = nsupc; isub < nsupr; ++isub) {
+    using std::abs;
+    rtemp = abs(lu_col_ptr[isub]);
+    if (rtemp > pivmax) {
+      pivmax = rtemp; 
+      pivptr = isub;
+    } 
+    if (lsub_ptr[isub] == diagind) diag = isub;
+  }
+  
+  // Test for singularity
+  if ( pivmax <= RealScalar(0.0) ) {
+    // if pivmax == -1, the column is structurally empty, otherwise it is only numerically zero
+    pivrow = pivmax < RealScalar(0.0) ? diagind : lsub_ptr[pivptr];
+    perm_r(pivrow) = jcol;
+    return (jcol+1);
+  }
+  
+  RealScalar thresh = diagpivotthresh * pivmax; 
+  
+  // Choose appropriate pivotal element 
+  
+  {
+    // Test if the diagonal element can be used as a pivot (given the threshold value)
+    if (diag >= 0 ) 
+    {
+      // Diagonal element exists
+      using std::abs;
+      rtemp = abs(lu_col_ptr[diag]);
+      if (rtemp != 0.0 && rtemp >= thresh) pivptr = diag;
+    }
+    pivrow = lsub_ptr[pivptr];
+  }
+  
+  // Record pivot row
+  perm_r(pivrow) = jcol; 
+  // Interchange row subscripts
+  if (pivptr != nsupc )
+  {
+    std::swap( lsub_ptr[pivptr], lsub_ptr[nsupc] );
+    // Interchange numerical values as well, for the two rows in the whole snode
+    // such that L is indexed the same way as A
+    for (icol = 0; icol <= nsupc; icol++)
+    {
+      itemp = pivptr + icol * lda; 
+      std::swap(lu_sup_ptr[itemp], lu_sup_ptr[nsupc + icol * lda]);
+    }
+  }
+  // cdiv operations
+  Scalar temp = Scalar(1.0) / lu_col_ptr[nsupc];
+  for (k = nsupc+1; k < nsupr; k++)
+    lu_col_ptr[k] *= temp; 
+  return 0;
+}
+
+} // end namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_PIVOTL_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_pruneL.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_pruneL.h
new file mode 100644
index 0000000..66460d1
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_pruneL.h
@@ -0,0 +1,135 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]pruneL.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 2.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November 15, 1997
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_PRUNEL_H
+#define SPARSELU_PRUNEL_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Prunes the L-structure.
+ *
+ * It prunes the L-structure  of supernodes whose L-structure contains the current pivot row "pivrow"
+ * 
+ * 
+ * \param jcol The current column of L
+ * \param[in] perm_r Row permutation
+ * \param[out] pivrow  The pivot row
+ * \param nseg Number of segments
+ * \param segrep 
+ * \param repfnz
+ * \param[out] xprune 
+ * \param glu Global LU data
+ * 
+ */
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::pruneL(const Index jcol, const IndexVector& perm_r, const Index pivrow, const Index nseg, const IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, GlobalLU_t& glu)
+{
+  // For each supernode-rep irep in U(*,j]
+  Index jsupno = glu.supno(jcol); 
+  Index i,irep,irep1; 
+  bool movnum, do_prune = false; 
+  Index kmin = 0, kmax = 0, minloc, maxloc,krow; 
+  for (i = 0; i < nseg; i++)
+  {
+    irep = segrep(i); 
+    irep1 = irep + 1; 
+    do_prune = false; 
+    
+    // Don't prune with a zero U-segment 
+    if (repfnz(irep) == emptyIdxLU) continue; 
+    
+    // If a snode overlaps with the next panel, then the U-segment
+    // is fragmented into two parts -- irep and irep1. We should let 
+    // pruning occur at the rep-column in irep1s snode. 
+    if (glu.supno(irep) == glu.supno(irep1) ) continue; // don't prune 
+    
+    // If it has not been pruned & it has a nonz in row L(pivrow,i)
+    if (glu.supno(irep) != jsupno )
+    {
+      if ( xprune (irep) >= glu.xlsub(irep1) )
+      {
+        kmin = glu.xlsub(irep);
+        kmax = glu.xlsub(irep1) - 1; 
+        for (krow = kmin; krow <= kmax; krow++)
+        {
+          if (glu.lsub(krow) == pivrow) 
+          {
+            do_prune = true; 
+            break; 
+          }
+        }
+      }
+      
+      if (do_prune) 
+      {
+        // do a quicksort-type partition
+        // movnum=true means that the num values have to be exchanged
+        movnum = false; 
+        if (irep == glu.xsup(glu.supno(irep)) ) // Snode of size 1 
+          movnum = true; 
+        
+        while (kmin <= kmax)
+        {
+          if (perm_r(glu.lsub(kmax)) == emptyIdxLU)
+            kmax--; 
+          else if ( perm_r(glu.lsub(kmin)) != emptyIdxLU)
+            kmin++;
+          else 
+          {
+            // kmin below pivrow (not yet pivoted), and kmax
+            // above pivrow: interchange the two suscripts
+            std::swap(glu.lsub(kmin), glu.lsub(kmax)); 
+            
+            // If the supernode has only one column, then we 
+            // only keep one set of subscripts. For any subscript
+            // intercnahge performed, similar interchange must be 
+            // done on the numerical values. 
+            if (movnum) 
+            {
+              minloc = glu.xlusup(irep) + ( kmin - glu.xlsub(irep) ); 
+              maxloc = glu.xlusup(irep) + ( kmax - glu.xlsub(irep) ); 
+              std::swap(glu.lusup(minloc), glu.lusup(maxloc)); 
+            }
+            kmin++;
+            kmax--;
+          }
+        } // end while 
+        
+        xprune(irep) = kmin;  //Pruning 
+      } // end if do_prune 
+    } // end pruning 
+  } // End for each U-segment
+}
+
+} // end namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_PRUNEL_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_relax_snode.h b/vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_relax_snode.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SparseLU/SparseLU_relax_snode.h
rename to vendor/eigen-3.2.8/Eigen/src/SparseLU/SparseLU_relax_snode.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/SparseQR/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/SparseQR/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SparseQR/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/SparseQR/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/SparseQR/SparseQR.h b/vendor/eigen-3.2.8/Eigen/src/SparseQR/SparseQR.h
new file mode 100644
index 0000000..a00bd5d
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SparseQR/SparseQR.h
@@ -0,0 +1,714 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012-2013 Desire Nuentsa <desire.nuentsa_wakam at inria.fr>
+// Copyright (C) 2012-2014 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_QR_H
+#define EIGEN_SPARSE_QR_H
+
+namespace Eigen {
+
+template<typename MatrixType, typename OrderingType> class SparseQR;
+template<typename SparseQRType> struct SparseQRMatrixQReturnType;
+template<typename SparseQRType> struct SparseQRMatrixQTransposeReturnType;
+template<typename SparseQRType, typename Derived> struct SparseQR_QProduct;
+namespace internal {
+  template <typename SparseQRType> struct traits<SparseQRMatrixQReturnType<SparseQRType> >
+  {
+    typedef typename SparseQRType::MatrixType ReturnType;
+    typedef typename ReturnType::Index Index;
+    typedef typename ReturnType::StorageKind StorageKind;
+  };
+  template <typename SparseQRType> struct traits<SparseQRMatrixQTransposeReturnType<SparseQRType> >
+  {
+    typedef typename SparseQRType::MatrixType ReturnType;
+  };
+  template <typename SparseQRType, typename Derived> struct traits<SparseQR_QProduct<SparseQRType, Derived> >
+  {
+    typedef typename Derived::PlainObject ReturnType;
+  };
+} // End namespace internal
+
+/**
+  * \ingroup SparseQR_Module
+  * \class SparseQR
+  * \brief Sparse left-looking rank-revealing QR factorization
+  * 
+  * This class implements a left-looking rank-revealing QR decomposition 
+  * of sparse matrices. When a column has a norm less than a given tolerance
+  * it is implicitly permuted to the end. The QR factorization thus obtained is 
+  * given by A*P = Q*R where R is upper triangular or trapezoidal. 
+  * 
+  * P is the column permutation which is the product of the fill-reducing and the
+  * rank-revealing permutations. Use colsPermutation() to get it.
+  * 
+  * Q is the orthogonal matrix represented as products of Householder reflectors. 
+  * Use matrixQ() to get an expression and matrixQ().transpose() to get the transpose.
+  * You can then apply it to a vector.
+  * 
+  * R is the sparse triangular or trapezoidal matrix. The later occurs when A is rank-deficient.
+  * matrixR().topLeftCorner(rank(), rank()) always returns a triangular factor of full rank.
+  * 
+  * \tparam _MatrixType The type of the sparse matrix A, must be a column-major SparseMatrix<>
+  * \tparam _OrderingType The fill-reducing ordering method. See the \link OrderingMethods_Module 
+  *  OrderingMethods \endlink module for the list of built-in and external ordering methods.
+  * 
+  * \warning The input sparse matrix A must be in compressed mode (see SparseMatrix::makeCompressed()).
+  * 
+  */
+template<typename _MatrixType, typename _OrderingType>
+class SparseQR
+{
+  public:
+    typedef _MatrixType MatrixType;
+    typedef _OrderingType OrderingType;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef SparseMatrix<Scalar,ColMajor,Index> QRMatrixType;
+    typedef Matrix<Index, Dynamic, 1> IndexVector;
+    typedef Matrix<Scalar, Dynamic, 1> ScalarVector;
+    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType;
+  public:
+    SparseQR () : m_isInitialized(false), m_analysisIsok(false), m_lastError(""), m_useDefaultThreshold(true),m_isQSorted(false),m_isEtreeOk(false)
+    { }
+    
+    /** Construct a QR factorization of the matrix \a mat.
+      * 
+      * \warning The matrix \a mat must be in compressed mode (see SparseMatrix::makeCompressed()).
+      * 
+      * \sa compute()
+      */
+    SparseQR(const MatrixType& mat) : m_isInitialized(false), m_analysisIsok(false), m_lastError(""), m_useDefaultThreshold(true),m_isQSorted(false),m_isEtreeOk(false)
+    {
+      compute(mat);
+    }
+    
+    /** Computes the QR factorization of the sparse matrix \a mat.
+      * 
+      * \warning The matrix \a mat must be in compressed mode (see SparseMatrix::makeCompressed()).
+      * 
+      * \sa analyzePattern(), factorize()
+      */
+    void compute(const MatrixType& mat)
+    {
+      analyzePattern(mat);
+      factorize(mat);
+    }
+    void analyzePattern(const MatrixType& mat);
+    void factorize(const MatrixType& mat);
+    
+    /** \returns the number of rows of the represented matrix. 
+      */
+    inline Index rows() const { return m_pmat.rows(); }
+    
+    /** \returns the number of columns of the represented matrix. 
+      */
+    inline Index cols() const { return m_pmat.cols();}
+    
+    /** \returns a const reference to the \b sparse upper triangular matrix R of the QR factorization.
+      */
+    const QRMatrixType& matrixR() const { return m_R; }
+    
+    /** \returns the number of non linearly dependent columns as determined by the pivoting threshold.
+      *
+      * \sa setPivotThreshold()
+      */
+    Index rank() const 
+    {
+      eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+      return m_nonzeropivots; 
+    }
+    
+    /** \returns an expression of the matrix Q as products of sparse Householder reflectors.
+    * The common usage of this function is to apply it to a dense matrix or vector
+    * \code
+    * VectorXd B1, B2;
+    * // Initialize B1
+    * B2 = matrixQ() * B1;
+    * \endcode
+    *
+    * To get a plain SparseMatrix representation of Q:
+    * \code
+    * SparseMatrix<double> Q;
+    * Q = SparseQR<SparseMatrix<double> >(A).matrixQ();
+    * \endcode
+    * Internally, this call simply performs a sparse product between the matrix Q
+    * and a sparse identity matrix. However, due to the fact that the sparse
+    * reflectors are stored unsorted, two transpositions are needed to sort
+    * them before performing the product.
+    */
+    SparseQRMatrixQReturnType<SparseQR> matrixQ() const 
+    { return SparseQRMatrixQReturnType<SparseQR>(*this); }
+    
+    /** \returns a const reference to the column permutation P that was applied to A such that A*P = Q*R
+      * It is the combination of the fill-in reducing permutation and numerical column pivoting.
+      */
+    const PermutationType& colsPermutation() const
+    { 
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_outputPerm_c;
+    }
+    
+    /** \returns A string describing the type of error.
+      * This method is provided to ease debugging, not to handle errors.
+      */
+    std::string lastErrorMessage() const { return m_lastError; }
+    
+    /** \internal */
+    template<typename Rhs, typename Dest>
+    bool _solve(const MatrixBase<Rhs> &B, MatrixBase<Dest> &dest) const
+    {
+      eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+      eigen_assert(this->rows() == B.rows() && "SparseQR::solve() : invalid number of rows in the right hand side matrix");
+
+      Index rank = this->rank();
+      
+      // Compute Q^T * b;
+      typename Dest::PlainObject y, b;
+      y = this->matrixQ().transpose() * B; 
+      b = y;
+      
+      // Solve with the triangular matrix R
+      y.resize((std::max)(cols(),Index(y.rows())),y.cols());
+      y.topRows(rank) = this->matrixR().topLeftCorner(rank, rank).template triangularView<Upper>().solve(b.topRows(rank));
+      y.bottomRows(y.rows()-rank).setZero();
+
+      // Apply the column permutation
+      if (m_perm_c.size())  dest = colsPermutation() * y.topRows(cols());
+      else                  dest = y.topRows(cols());
+      
+      m_info = Success;
+      return true;
+    }
+    
+
+    /** Sets the threshold that is used to determine linearly dependent columns during the factorization.
+      *
+      * In practice, if during the factorization the norm of the column that has to be eliminated is below
+      * this threshold, then the entire column is treated as zero, and it is moved at the end.
+      */
+    void setPivotThreshold(const RealScalar& threshold)
+    {
+      m_useDefaultThreshold = false;
+      m_threshold = threshold;
+    }
+    
+    /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<SparseQR, Rhs> solve(const MatrixBase<Rhs>& B) const 
+    {
+      eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+      eigen_assert(this->rows() == B.rows() && "SparseQR::solve() : invalid number of rows in the right hand side matrix");
+      return internal::solve_retval<SparseQR, Rhs>(*this, B.derived());
+    }
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<SparseQR, Rhs> solve(const SparseMatrixBase<Rhs>& B) const
+    {
+          eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+          eigen_assert(this->rows() == B.rows() && "SparseQR::solve() : invalid number of rows in the right hand side matrix");
+          return internal::sparse_solve_retval<SparseQR, Rhs>(*this, B.derived());
+    }
+    
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was successful,
+      *          \c NumericalIssue if the QR factorization reports a numerical problem
+      *          \c InvalidInput if the input matrix is invalid
+      *
+      * \sa iparm()          
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+
+  protected:
+    inline void sort_matrix_Q()
+    {
+      if(this->m_isQSorted) return;
+      // The matrix Q is sorted during the transposition
+      SparseMatrix<Scalar, RowMajor, Index> mQrm(this->m_Q);
+      this->m_Q = mQrm;
+      this->m_isQSorted = true;
+    }
+
+    
+  protected:
+    bool m_isInitialized;
+    bool m_analysisIsok;
+    bool m_factorizationIsok;
+    mutable ComputationInfo m_info;
+    std::string m_lastError;
+    QRMatrixType m_pmat;            // Temporary matrix
+    QRMatrixType m_R;               // The triangular factor matrix
+    QRMatrixType m_Q;               // The orthogonal reflectors
+    ScalarVector m_hcoeffs;         // The Householder coefficients
+    PermutationType m_perm_c;       // Fill-reducing  Column  permutation
+    PermutationType m_pivotperm;    // The permutation for rank revealing
+    PermutationType m_outputPerm_c; // The final column permutation
+    RealScalar m_threshold;         // Threshold to determine null Householder reflections
+    bool m_useDefaultThreshold;     // Use default threshold
+    Index m_nonzeropivots;          // Number of non zero pivots found 
+    IndexVector m_etree;            // Column elimination tree
+    IndexVector m_firstRowElt;      // First element in each row
+    bool m_isQSorted;               // whether Q is sorted or not
+    bool m_isEtreeOk;               // whether the elimination tree match the initial input matrix
+    
+    template <typename, typename > friend struct SparseQR_QProduct;
+    template <typename > friend struct SparseQRMatrixQReturnType;
+    
+};
+
+/** \brief Preprocessing step of a QR factorization 
+  * 
+  * \warning The matrix \a mat must be in compressed mode (see SparseMatrix::makeCompressed()).
+  * 
+  * In this step, the fill-reducing permutation is computed and applied to the columns of A
+  * and the column elimination tree is computed as well. Only the sparsity pattern of \a mat is exploited.
+  * 
+  * \note In this step it is assumed that there is no empty row in the matrix \a mat.
+  */
+template <typename MatrixType, typename OrderingType>
+void SparseQR<MatrixType,OrderingType>::analyzePattern(const MatrixType& mat)
+{
+  eigen_assert(mat.isCompressed() && "SparseQR requires a sparse matrix in compressed mode. Call .makeCompressed() before passing it to SparseQR");
+  // Copy to a column major matrix if the input is rowmajor
+  typename internal::conditional<MatrixType::IsRowMajor,QRMatrixType,const MatrixType&>::type matCpy(mat);
+  // Compute the column fill reducing ordering
+  OrderingType ord; 
+  ord(matCpy, m_perm_c); 
+  Index n = mat.cols();
+  Index m = mat.rows();
+  Index diagSize = (std::min)(m,n);
+  
+  if (!m_perm_c.size())
+  {
+    m_perm_c.resize(n);
+    m_perm_c.indices().setLinSpaced(n, 0,n-1);
+  }
+  
+  // Compute the column elimination tree of the permuted matrix
+  m_outputPerm_c = m_perm_c.inverse();
+  internal::coletree(matCpy, m_etree, m_firstRowElt, m_outputPerm_c.indices().data());
+  m_isEtreeOk = true;
+  
+  m_R.resize(m, n);
+  m_Q.resize(m, diagSize);
+  
+  // Allocate space for nonzero elements : rough estimation
+  m_R.reserve(2*mat.nonZeros()); //FIXME Get a more accurate estimation through symbolic factorization with the etree
+  m_Q.reserve(2*mat.nonZeros());
+  m_hcoeffs.resize(diagSize);
+  m_analysisIsok = true;
+}
+
+/** \brief Performs the numerical QR factorization of the input matrix
+  * 
+  * The function SparseQR::analyzePattern(const MatrixType&) must have been called beforehand with
+  * a matrix having the same sparsity pattern than \a mat.
+  * 
+  * \param mat The sparse column-major matrix
+  */
+template <typename MatrixType, typename OrderingType>
+void SparseQR<MatrixType,OrderingType>::factorize(const MatrixType& mat)
+{
+  using std::abs;
+  using std::max;
+  
+  eigen_assert(m_analysisIsok && "analyzePattern() should be called before this step");
+  Index m = mat.rows();
+  Index n = mat.cols();
+  Index diagSize = (std::min)(m,n);
+  IndexVector mark((std::max)(m,n)); mark.setConstant(-1);  // Record the visited nodes
+  IndexVector Ridx(n), Qidx(m);                             // Store temporarily the row indexes for the current column of R and Q
+  Index nzcolR, nzcolQ;                                     // Number of nonzero for the current column of R and Q
+  ScalarVector tval(m);                                     // The dense vector used to compute the current column
+  RealScalar pivotThreshold = m_threshold;
+  
+  m_R.setZero();
+  m_Q.setZero();
+  m_pmat = mat;
+  if(!m_isEtreeOk)
+  {
+    m_outputPerm_c = m_perm_c.inverse();
+    internal::coletree(m_pmat, m_etree, m_firstRowElt, m_outputPerm_c.indices().data());
+    m_isEtreeOk = true;
+  }
+
+  m_pmat.uncompress(); // To have the innerNonZeroPtr allocated
+  
+  // Apply the fill-in reducing permutation lazily:
+  {
+    // If the input is row major, copy the original column indices,
+    // otherwise directly use the input matrix
+    // 
+    IndexVector originalOuterIndicesCpy;
+    const Index *originalOuterIndices = mat.outerIndexPtr();
+    if(MatrixType::IsRowMajor)
+    {
+      originalOuterIndicesCpy = IndexVector::Map(m_pmat.outerIndexPtr(),n+1);
+      originalOuterIndices = originalOuterIndicesCpy.data();
+    }
+    
+    for (int i = 0; i < n; i++)
+    {
+      Index p = m_perm_c.size() ? m_perm_c.indices()(i) : i;
+      m_pmat.outerIndexPtr()[p] = originalOuterIndices[i]; 
+      m_pmat.innerNonZeroPtr()[p] = originalOuterIndices[i+1] - originalOuterIndices[i]; 
+    }
+  }
+  
+  /* Compute the default threshold as in MatLab, see:
+   * Tim Davis, "Algorithm 915, SuiteSparseQR: Multifrontal Multithreaded Rank-Revealing
+   * Sparse QR Factorization, ACM Trans. on Math. Soft. 38(1), 2011, Page 8:3 
+   */
+  if(m_useDefaultThreshold) 
+  {
+    RealScalar max2Norm = 0.0;
+    for (int j = 0; j < n; j++) max2Norm = (max)(max2Norm, m_pmat.col(j).norm());
+    if(max2Norm==RealScalar(0))
+      max2Norm = RealScalar(1);
+    pivotThreshold = 20 * (m + n) * max2Norm * NumTraits<RealScalar>::epsilon();
+  }
+  
+  // Initialize the numerical permutation
+  m_pivotperm.setIdentity(n);
+  
+  Index nonzeroCol = 0; // Record the number of valid pivots
+  m_Q.startVec(0);
+
+  // Left looking rank-revealing QR factorization: compute a column of R and Q at a time
+  for (Index col = 0; col < n; ++col)
+  {
+    mark.setConstant(-1);
+    m_R.startVec(col);
+    mark(nonzeroCol) = col;
+    Qidx(0) = nonzeroCol;
+    nzcolR = 0; nzcolQ = 1;
+    bool found_diag = nonzeroCol>=m;
+    tval.setZero(); 
+    
+    // Symbolic factorization: find the nonzero locations of the column k of the factors R and Q, i.e.,
+    // all the nodes (with indexes lower than rank) reachable through the column elimination tree (etree) rooted at node k.
+    // Note: if the diagonal entry does not exist, then its contribution must be explicitly added,
+    // thus the trick with found_diag that permits to do one more iteration on the diagonal element if this one has not been found.
+    for (typename QRMatrixType::InnerIterator itp(m_pmat, col); itp || !found_diag; ++itp)
+    {
+      Index curIdx = nonzeroCol;
+      if(itp) curIdx = itp.row();
+      if(curIdx == nonzeroCol) found_diag = true;
+      
+      // Get the nonzeros indexes of the current column of R
+      Index st = m_firstRowElt(curIdx); // The traversal of the etree starts here 
+      if (st < 0 )
+      {
+        m_lastError = "Empty row found during numerical factorization";
+        m_info = InvalidInput;
+        return;
+      }
+
+      // Traverse the etree 
+      Index bi = nzcolR;
+      for (; mark(st) != col; st = m_etree(st))
+      {
+        Ridx(nzcolR) = st;  // Add this row to the list,
+        mark(st) = col;     // and mark this row as visited
+        nzcolR++;
+      }
+
+      // Reverse the list to get the topological ordering
+      Index nt = nzcolR-bi;
+      for(Index i = 0; i < nt/2; i++) std::swap(Ridx(bi+i), Ridx(nzcolR-i-1));
+       
+      // Copy the current (curIdx,pcol) value of the input matrix
+      if(itp) tval(curIdx) = itp.value();
+      else    tval(curIdx) = Scalar(0);
+      
+      // Compute the pattern of Q(:,k)
+      if(curIdx > nonzeroCol && mark(curIdx) != col ) 
+      {
+        Qidx(nzcolQ) = curIdx;  // Add this row to the pattern of Q,
+        mark(curIdx) = col;     // and mark it as visited
+        nzcolQ++;
+      }
+    }
+
+    // Browse all the indexes of R(:,col) in reverse order
+    for (Index i = nzcolR-1; i >= 0; i--)
+    {
+      Index curIdx = Ridx(i);
+      
+      // Apply the curIdx-th householder vector to the current column (temporarily stored into tval)
+      Scalar tdot(0);
+      
+      // First compute q' * tval
+      tdot = m_Q.col(curIdx).dot(tval);
+
+      tdot *= m_hcoeffs(curIdx);
+      
+      // Then update tval = tval - q * tau
+      // FIXME: tval -= tdot * m_Q.col(curIdx) should amount to the same (need to check/add support for efficient "dense ?= sparse")
+      for (typename QRMatrixType::InnerIterator itq(m_Q, curIdx); itq; ++itq)
+        tval(itq.row()) -= itq.value() * tdot;
+
+      // Detect fill-in for the current column of Q
+      if(m_etree(Ridx(i)) == nonzeroCol)
+      {
+        for (typename QRMatrixType::InnerIterator itq(m_Q, curIdx); itq; ++itq)
+        {
+          Index iQ = itq.row();
+          if (mark(iQ) != col)
+          {
+            Qidx(nzcolQ++) = iQ;  // Add this row to the pattern of Q,
+            mark(iQ) = col;       // and mark it as visited
+          }
+        }
+      }
+    } // End update current column
+    
+    Scalar tau = 0;
+    RealScalar beta = 0;
+    
+    if(nonzeroCol < diagSize)
+    {
+      // Compute the Householder reflection that eliminate the current column
+      // FIXME this step should call the Householder module.
+      Scalar c0 = nzcolQ ? tval(Qidx(0)) : Scalar(0);
+      
+      // First, the squared norm of Q((col+1):m, col)
+      RealScalar sqrNorm = 0.;
+      for (Index itq = 1; itq < nzcolQ; ++itq) sqrNorm += numext::abs2(tval(Qidx(itq)));
+      if(sqrNorm == RealScalar(0) && numext::imag(c0) == RealScalar(0))
+      {
+        beta = numext::real(c0);
+        tval(Qidx(0)) = 1;
+      }
+      else
+      {
+        using std::sqrt;
+        beta = sqrt(numext::abs2(c0) + sqrNorm);
+        if(numext::real(c0) >= RealScalar(0))
+          beta = -beta;
+        tval(Qidx(0)) = 1;
+        for (Index itq = 1; itq < nzcolQ; ++itq)
+          tval(Qidx(itq)) /= (c0 - beta);
+        tau = numext::conj((beta-c0) / beta);
+          
+      }
+    }
+
+    // Insert values in R
+    for (Index  i = nzcolR-1; i >= 0; i--)
+    {
+      Index curIdx = Ridx(i);
+      if(curIdx < nonzeroCol) 
+      {
+        m_R.insertBackByOuterInnerUnordered(col, curIdx) = tval(curIdx);
+        tval(curIdx) = Scalar(0.);
+      }
+    }
+
+    if(nonzeroCol < diagSize && abs(beta) >= pivotThreshold)
+    {
+      m_R.insertBackByOuterInner(col, nonzeroCol) = beta;
+      // The householder coefficient
+      m_hcoeffs(nonzeroCol) = tau;
+      // Record the householder reflections
+      for (Index itq = 0; itq < nzcolQ; ++itq)
+      {
+        Index iQ = Qidx(itq);
+        m_Q.insertBackByOuterInnerUnordered(nonzeroCol,iQ) = tval(iQ);
+        tval(iQ) = Scalar(0.);
+      }
+      nonzeroCol++;
+      if(nonzeroCol<diagSize)
+        m_Q.startVec(nonzeroCol);
+    }
+    else
+    {
+      // Zero pivot found: move implicitly this column to the end
+      for (Index j = nonzeroCol; j < n-1; j++) 
+        std::swap(m_pivotperm.indices()(j), m_pivotperm.indices()[j+1]);
+      
+      // Recompute the column elimination tree
+      internal::coletree(m_pmat, m_etree, m_firstRowElt, m_pivotperm.indices().data());
+      m_isEtreeOk = false;
+    }
+  }
+  
+  m_hcoeffs.tail(diagSize-nonzeroCol).setZero();
+  
+  // Finalize the column pointers of the sparse matrices R and Q
+  m_Q.finalize();
+  m_Q.makeCompressed();
+  m_R.finalize();
+  m_R.makeCompressed();
+  m_isQSorted = false;
+
+  m_nonzeropivots = nonzeroCol;
+  
+  if(nonzeroCol<n)
+  {
+    // Permute the triangular factor to put the 'dead' columns to the end
+    QRMatrixType tempR(m_R);
+    m_R = tempR * m_pivotperm;
+    
+    // Update the column permutation
+    m_outputPerm_c = m_outputPerm_c * m_pivotperm;
+  }
+  
+  m_isInitialized = true; 
+  m_factorizationIsok = true;
+  m_info = Success;
+}
+
+namespace internal {
+  
+template<typename _MatrixType, typename OrderingType, typename Rhs>
+struct solve_retval<SparseQR<_MatrixType,OrderingType>, Rhs>
+  : solve_retval_base<SparseQR<_MatrixType,OrderingType>, Rhs>
+{
+  typedef SparseQR<_MatrixType,OrderingType> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+template<typename _MatrixType, typename OrderingType, typename Rhs>
+struct sparse_solve_retval<SparseQR<_MatrixType, OrderingType>, Rhs>
+ : sparse_solve_retval_base<SparseQR<_MatrixType, OrderingType>, Rhs>
+{
+  typedef SparseQR<_MatrixType, OrderingType> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec, Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    this->defaultEvalTo(dst);
+  }
+};
+} // end namespace internal
+
+template <typename SparseQRType, typename Derived>
+struct SparseQR_QProduct : ReturnByValue<SparseQR_QProduct<SparseQRType, Derived> >
+{
+  typedef typename SparseQRType::QRMatrixType MatrixType;
+  typedef typename SparseQRType::Scalar Scalar;
+  typedef typename SparseQRType::Index Index;
+  // Get the references 
+  SparseQR_QProduct(const SparseQRType& qr, const Derived& other, bool transpose) : 
+  m_qr(qr),m_other(other),m_transpose(transpose) {}
+  inline Index rows() const { return m_transpose ? m_qr.rows() : m_qr.cols(); }
+  inline Index cols() const { return m_other.cols(); }
+  
+  // Assign to a vector
+  template<typename DesType>
+  void evalTo(DesType& res) const
+  {
+    Index m = m_qr.rows();
+    Index n = m_qr.cols();
+    Index diagSize = (std::min)(m,n);
+    res = m_other;
+    if (m_transpose)
+    {
+      eigen_assert(m_qr.m_Q.rows() == m_other.rows() && "Non conforming object sizes");
+      //Compute res = Q' * other column by column
+      for(Index j = 0; j < res.cols(); j++){
+        for (Index k = 0; k < diagSize; k++)
+        {
+          Scalar tau = Scalar(0);
+          tau = m_qr.m_Q.col(k).dot(res.col(j));
+          if(tau==Scalar(0)) continue;
+          tau = tau * m_qr.m_hcoeffs(k);
+          res.col(j) -= tau * m_qr.m_Q.col(k);
+        }
+      }
+    }
+    else
+    {
+      eigen_assert(m_qr.m_Q.rows() == m_other.rows() && "Non conforming object sizes");
+      // Compute res = Q * other column by column
+      for(Index j = 0; j < res.cols(); j++)
+      {
+        for (Index k = diagSize-1; k >=0; k--)
+        {
+          Scalar tau = Scalar(0);
+          tau = m_qr.m_Q.col(k).dot(res.col(j));
+          if(tau==Scalar(0)) continue;
+          tau = tau * m_qr.m_hcoeffs(k);
+          res.col(j) -= tau * m_qr.m_Q.col(k);
+        }
+      }
+    }
+  }
+  
+  const SparseQRType& m_qr;
+  const Derived& m_other;
+  bool m_transpose;
+};
+
+template<typename SparseQRType>
+struct SparseQRMatrixQReturnType : public EigenBase<SparseQRMatrixQReturnType<SparseQRType> >
+{  
+  typedef typename SparseQRType::Index Index;
+  typedef typename SparseQRType::Scalar Scalar;
+  typedef Matrix<Scalar,Dynamic,Dynamic> DenseMatrix;
+  SparseQRMatrixQReturnType(const SparseQRType& qr) : m_qr(qr) {}
+  template<typename Derived>
+  SparseQR_QProduct<SparseQRType, Derived> operator*(const MatrixBase<Derived>& other)
+  {
+    return SparseQR_QProduct<SparseQRType,Derived>(m_qr,other.derived(),false);
+  }
+  SparseQRMatrixQTransposeReturnType<SparseQRType> adjoint() const
+  {
+    return SparseQRMatrixQTransposeReturnType<SparseQRType>(m_qr);
+  }
+  inline Index rows() const { return m_qr.rows(); }
+  inline Index cols() const { return (std::min)(m_qr.rows(),m_qr.cols()); }
+  // To use for operations with the transpose of Q
+  SparseQRMatrixQTransposeReturnType<SparseQRType> transpose() const
+  {
+    return SparseQRMatrixQTransposeReturnType<SparseQRType>(m_qr);
+  }
+  template<typename Dest> void evalTo(MatrixBase<Dest>& dest) const
+  {
+    dest.derived() = m_qr.matrixQ() * Dest::Identity(m_qr.rows(), m_qr.rows());
+  }
+  template<typename Dest> void evalTo(SparseMatrixBase<Dest>& dest) const
+  {
+    Dest idMat(m_qr.rows(), m_qr.rows());
+    idMat.setIdentity();
+    // Sort the sparse householder reflectors if needed
+    const_cast<SparseQRType *>(&m_qr)->sort_matrix_Q();
+    dest.derived() = SparseQR_QProduct<SparseQRType, Dest>(m_qr, idMat, false);
+  }
+
+  const SparseQRType& m_qr;
+};
+
+template<typename SparseQRType>
+struct SparseQRMatrixQTransposeReturnType
+{
+  SparseQRMatrixQTransposeReturnType(const SparseQRType& qr) : m_qr(qr) {}
+  template<typename Derived>
+  SparseQR_QProduct<SparseQRType,Derived> operator*(const MatrixBase<Derived>& other)
+  {
+    return SparseQR_QProduct<SparseQRType,Derived>(m_qr,other.derived(), true);
+  }
+  const SparseQRType& m_qr;
+};
+
+} // end namespace Eigen
+
+#endif
diff --git a/vendor/eigen-3.1.91/Eigen/src/StlSupport/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/StlSupport/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/StlSupport/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/StlSupport/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/StlSupport/StdDeque.h b/vendor/eigen-3.2.8/Eigen/src/StlSupport/StdDeque.h
new file mode 100644
index 0000000..69a46b2
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/StlSupport/StdDeque.h
@@ -0,0 +1,126 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel at googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STDDEQUE_H
+#define EIGEN_STDDEQUE_H
+
+#include "details.h"
+
+/**
+ * This section contains a convenience MACRO which allows an easy specialization of
+ * std::deque such that for data types with alignment issues the correct allocator
+ * is used automatically.
+ */
+#define EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(...) \
+namespace std \
+{ \
+  template<> \
+  class deque<__VA_ARGS__, std::allocator<__VA_ARGS__> >           \
+    : public deque<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > \
+  { \
+    typedef deque<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > deque_base; \
+  public: \
+    typedef __VA_ARGS__ value_type; \
+    typedef deque_base::allocator_type allocator_type; \
+    typedef deque_base::size_type size_type;  \
+    typedef deque_base::iterator iterator;  \
+    explicit deque(const allocator_type& a = allocator_type()) : deque_base(a) {}  \
+    template<typename InputIterator> \
+    deque(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) : deque_base(first, last, a) {} \
+    deque(const deque& c) : deque_base(c) {}  \
+    explicit deque(size_type num, const value_type& val = value_type()) : deque_base(num, val) {} \
+    deque(iterator start, iterator end) : deque_base(start, end) {}  \
+    deque& operator=(const deque& x) {  \
+      deque_base::operator=(x);  \
+      return *this;  \
+    } \
+  }; \
+}
+
+// check whether we really need the std::deque specialization
+#if !(defined(_GLIBCXX_DEQUE) && (!EIGEN_GNUC_AT_LEAST(4,1))) /* Note that before gcc-4.1 we already have: std::deque::resize(size_type,const T&). */
+
+namespace std {
+
+#define EIGEN_STD_DEQUE_SPECIALIZATION_BODY \
+  public:  \
+    typedef T value_type; \
+    typedef typename deque_base::allocator_type allocator_type; \
+    typedef typename deque_base::size_type size_type;  \
+    typedef typename deque_base::iterator iterator;  \
+    typedef typename deque_base::const_iterator const_iterator;  \
+    explicit deque(const allocator_type& a = allocator_type()) : deque_base(a) {}  \
+    template<typename InputIterator> \
+    deque(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) \
+    : deque_base(first, last, a) {} \
+    deque(const deque& c) : deque_base(c) {}  \
+    explicit deque(size_type num, const value_type& val = value_type()) : deque_base(num, val) {} \
+    deque(iterator start, iterator end) : deque_base(start, end) {}  \
+    deque& operator=(const deque& x) {  \
+      deque_base::operator=(x);  \
+      return *this;  \
+    }
+
+  template<typename T>
+  class deque<T,EIGEN_ALIGNED_ALLOCATOR<T> >
+    : public deque<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+                   Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> >
+{
+  typedef deque<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+                Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> > deque_base;
+  EIGEN_STD_DEQUE_SPECIALIZATION_BODY
+
+  void resize(size_type new_size)
+  { resize(new_size, T()); }
+
+#if defined(_DEQUE_)
+  // workaround MSVC std::deque implementation
+  void resize(size_type new_size, const value_type& x)
+  {
+    if (deque_base::size() < new_size)
+      deque_base::_Insert_n(deque_base::end(), new_size - deque_base::size(), x);
+    else if (new_size < deque_base::size())
+      deque_base::erase(deque_base::begin() + new_size, deque_base::end());
+  }
+  void push_back(const value_type& x)
+  { deque_base::push_back(x); } 
+  void push_front(const value_type& x)
+  { deque_base::push_front(x); }
+  using deque_base::insert;  
+  iterator insert(const_iterator position, const value_type& x)
+  { return deque_base::insert(position,x); }
+  void insert(const_iterator position, size_type new_size, const value_type& x)
+  { deque_base::insert(position, new_size, x); }
+#elif defined(_GLIBCXX_DEQUE) && EIGEN_GNUC_AT_LEAST(4,2)
+  // workaround GCC std::deque implementation
+  void resize(size_type new_size, const value_type& x)
+  {
+    if (new_size < deque_base::size())
+      deque_base::_M_erase_at_end(this->_M_impl._M_start + new_size);
+    else
+      deque_base::insert(deque_base::end(), new_size - deque_base::size(), x);
+  }
+#else
+  // either GCC 4.1 or non-GCC
+  // default implementation which should always work.
+  void resize(size_type new_size, const value_type& x)
+  {
+    if (new_size < deque_base::size())
+      deque_base::erase(deque_base::begin() + new_size, deque_base::end());
+    else if (new_size > deque_base::size())
+      deque_base::insert(deque_base::end(), new_size - deque_base::size(), x);
+  }
+#endif
+  };
+}
+
+#endif // check whether specialization is actually required
+
+#endif // EIGEN_STDDEQUE_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/StlSupport/StdList.h b/vendor/eigen-3.2.8/Eigen/src/StlSupport/StdList.h
new file mode 100644
index 0000000..050c237
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/StlSupport/StdList.h
@@ -0,0 +1,106 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel at googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STDLIST_H
+#define EIGEN_STDLIST_H
+
+#include "details.h"
+
+/**
+ * This section contains a convenience MACRO which allows an easy specialization of
+ * std::list such that for data types with alignment issues the correct allocator
+ * is used automatically.
+ */
+#define EIGEN_DEFINE_STL_LIST_SPECIALIZATION(...) \
+namespace std \
+{ \
+  template<> \
+  class list<__VA_ARGS__, std::allocator<__VA_ARGS__> >           \
+    : public list<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > \
+  { \
+    typedef list<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > list_base; \
+  public: \
+    typedef __VA_ARGS__ value_type; \
+    typedef list_base::allocator_type allocator_type; \
+    typedef list_base::size_type size_type;  \
+    typedef list_base::iterator iterator;  \
+    explicit list(const allocator_type& a = allocator_type()) : list_base(a) {}  \
+    template<typename InputIterator> \
+    list(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) : list_base(first, last, a) {} \
+    list(const list& c) : list_base(c) {}  \
+    explicit list(size_type num, const value_type& val = value_type()) : list_base(num, val) {} \
+    list(iterator start, iterator end) : list_base(start, end) {}  \
+    list& operator=(const list& x) {  \
+      list_base::operator=(x);  \
+      return *this;  \
+    } \
+  }; \
+}
+
+// check whether we really need the std::vector specialization
+#if !(defined(_GLIBCXX_VECTOR) && (!EIGEN_GNUC_AT_LEAST(4,1))) /* Note that before gcc-4.1 we already have: std::list::resize(size_type,const T&). */
+
+namespace std
+{
+
+#define EIGEN_STD_LIST_SPECIALIZATION_BODY \
+  public:  \
+    typedef T value_type; \
+    typedef typename list_base::allocator_type allocator_type; \
+    typedef typename list_base::size_type size_type;  \
+    typedef typename list_base::iterator iterator;  \
+    typedef typename list_base::const_iterator const_iterator;  \
+    explicit list(const allocator_type& a = allocator_type()) : list_base(a) {}  \
+    template<typename InputIterator> \
+    list(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) \
+    : list_base(first, last, a) {} \
+    list(const list& c) : list_base(c) {}  \
+    explicit list(size_type num, const value_type& val = value_type()) : list_base(num, val) {} \
+    list(iterator start, iterator end) : list_base(start, end) {}  \
+    list& operator=(const list& x) {  \
+    list_base::operator=(x);  \
+    return *this; \
+  }
+
+  template<typename T>
+  class list<T,EIGEN_ALIGNED_ALLOCATOR<T> >
+    : public list<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+                  Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> >
+  {
+    typedef list<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+                 Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> > list_base;
+    EIGEN_STD_LIST_SPECIALIZATION_BODY
+
+    void resize(size_type new_size)
+    { resize(new_size, T()); }
+
+    void resize(size_type new_size, const value_type& x)
+    {
+      if (list_base::size() < new_size)
+        list_base::insert(list_base::end(), new_size - list_base::size(), x);
+      else
+        while (new_size < list_base::size()) list_base::pop_back();
+    }
+
+#if defined(_LIST_)
+    // workaround MSVC std::list implementation
+    void push_back(const value_type& x)
+    { list_base::push_back(x); } 
+    using list_base::insert;  
+    iterator insert(const_iterator position, const value_type& x)
+    { return list_base::insert(position,x); }
+    void insert(const_iterator position, size_type new_size, const value_type& x)
+    { list_base::insert(position, new_size, x); }
+#endif
+  };
+}
+
+#endif // check whether specialization is actually required
+
+#endif // EIGEN_STDLIST_H
diff --git a/vendor/eigen-3.2.8/Eigen/src/StlSupport/StdVector.h b/vendor/eigen-3.2.8/Eigen/src/StlSupport/StdVector.h
new file mode 100644
index 0000000..611664a
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/StlSupport/StdVector.h
@@ -0,0 +1,126 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel at googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STDVECTOR_H
+#define EIGEN_STDVECTOR_H
+
+#include "details.h"
+
+/**
+ * This section contains a convenience MACRO which allows an easy specialization of
+ * std::vector such that for data types with alignment issues the correct allocator
+ * is used automatically.
+ */
+#define EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(...) \
+namespace std \
+{ \
+  template<> \
+  class vector<__VA_ARGS__, std::allocator<__VA_ARGS__> >  \
+    : public vector<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > \
+  { \
+    typedef vector<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > vector_base; \
+  public: \
+    typedef __VA_ARGS__ value_type; \
+    typedef vector_base::allocator_type allocator_type; \
+    typedef vector_base::size_type size_type;  \
+    typedef vector_base::iterator iterator;  \
+    explicit vector(const allocator_type& a = allocator_type()) : vector_base(a) {}  \
+    template<typename InputIterator> \
+    vector(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) : vector_base(first, last, a) {} \
+    vector(const vector& c) : vector_base(c) {}  \
+    explicit vector(size_type num, const value_type& val = value_type()) : vector_base(num, val) {} \
+    vector(iterator start, iterator end) : vector_base(start, end) {}  \
+    vector& operator=(const vector& x) {  \
+      vector_base::operator=(x);  \
+      return *this;  \
+    } \
+  }; \
+}
+
+namespace std {
+
+#define EIGEN_STD_VECTOR_SPECIALIZATION_BODY \
+  public:  \
+    typedef T value_type; \
+    typedef typename vector_base::allocator_type allocator_type; \
+    typedef typename vector_base::size_type size_type;  \
+    typedef typename vector_base::iterator iterator;  \
+    typedef typename vector_base::const_iterator const_iterator;  \
+    explicit vector(const allocator_type& a = allocator_type()) : vector_base(a) {}  \
+    template<typename InputIterator> \
+    vector(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) \
+    : vector_base(first, last, a) {} \
+    vector(const vector& c) : vector_base(c) {}  \
+    explicit vector(size_type num, const value_type& val = value_type()) : vector_base(num, val) {} \
+    vector(iterator start, iterator end) : vector_base(start, end) {}  \
+    vector& operator=(const vector& x) {  \
+      vector_base::operator=(x);  \
+      return *this;  \
+    }
+
+  template<typename T>
+  class vector<T,EIGEN_ALIGNED_ALLOCATOR<T> >
+    : public vector<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+                    Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> >
+{
+  typedef vector<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+                 Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> > vector_base;
+  EIGEN_STD_VECTOR_SPECIALIZATION_BODY
+
+  void resize(size_type new_size)
+  { resize(new_size, T()); }
+
+#if defined(_VECTOR_)
+  // workaround MSVC std::vector implementation
+  void resize(size_type new_size, const value_type& x)
+  {
+    if (vector_base::size() < new_size)
+      vector_base::_Insert_n(vector_base::end(), new_size - vector_base::size(), x);
+    else if (new_size < vector_base::size())
+      vector_base::erase(vector_base::begin() + new_size, vector_base::end());
+  }
+  void push_back(const value_type& x)
+  { vector_base::push_back(x); } 
+  using vector_base::insert;  
+  iterator insert(const_iterator position, const value_type& x)
+  { return vector_base::insert(position,x); }
+  void insert(const_iterator position, size_type new_size, const value_type& x)
+  { vector_base::insert(position, new_size, x); }
+#elif defined(_GLIBCXX_VECTOR) && (!(EIGEN_GNUC_AT_LEAST(4,1)))
+  /* Note that before gcc-4.1 we already have: std::vector::resize(size_type,const T&).
+   * However, this specialization is still needed to make the above EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION trick to work. */
+  void resize(size_type new_size, const value_type& x)
+  {
+    vector_base::resize(new_size,x);
+  }
+#elif defined(_GLIBCXX_VECTOR) && EIGEN_GNUC_AT_LEAST(4,2)
+  // workaround GCC std::vector implementation
+  void resize(size_type new_size, const value_type& x)
+  {
+    if (new_size < vector_base::size())
+      vector_base::_M_erase_at_end(this->_M_impl._M_start + new_size);
+    else
+      vector_base::insert(vector_base::end(), new_size - vector_base::size(), x);
+  }
+#else
+  // either GCC 4.1 or non-GCC
+  // default implementation which should always work.
+  void resize(size_type new_size, const value_type& x)
+  {
+    if (new_size < vector_base::size())
+      vector_base::erase(vector_base::begin() + new_size, vector_base::end());
+    else if (new_size > vector_base::size())
+      vector_base::insert(vector_base::end(), new_size - vector_base::size(), x);
+  }
+#endif
+  };
+}
+
+#endif // EIGEN_STDVECTOR_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/StlSupport/details.h b/vendor/eigen-3.2.8/Eigen/src/StlSupport/details.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/StlSupport/details.h
rename to vendor/eigen-3.2.8/Eigen/src/StlSupport/details.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/SuperLUSupport/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/SuperLUSupport/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/SuperLUSupport/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/SuperLUSupport/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/SuperLUSupport/SuperLUSupport.h b/vendor/eigen-3.2.8/Eigen/src/SuperLUSupport/SuperLUSupport.h
new file mode 100644
index 0000000..bcb3557
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/SuperLUSupport/SuperLUSupport.h
@@ -0,0 +1,1026 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SUPERLUSUPPORT_H
+#define EIGEN_SUPERLUSUPPORT_H
+
+namespace Eigen { 
+
+#define DECL_GSSVX(PREFIX,FLOATTYPE,KEYTYPE)		\
+    extern "C" {                                                                                          \
+      typedef struct { FLOATTYPE for_lu; FLOATTYPE total_needed; int expansions; } PREFIX##mem_usage_t;   \
+      extern void PREFIX##gssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *,                  \
+                                char *, FLOATTYPE *, FLOATTYPE *, SuperMatrix *, SuperMatrix *,           \
+                                void *, int, SuperMatrix *, SuperMatrix *,                                \
+                                FLOATTYPE *, FLOATTYPE *, FLOATTYPE *, FLOATTYPE *,                       \
+                                PREFIX##mem_usage_t *, SuperLUStat_t *, int *);                           \
+    }                                                                                                     \
+    inline float SuperLU_gssvx(superlu_options_t *options, SuperMatrix *A,                                \
+         int *perm_c, int *perm_r, int *etree, char *equed,                                               \
+         FLOATTYPE *R, FLOATTYPE *C, SuperMatrix *L,                                                      \
+         SuperMatrix *U, void *work, int lwork,                                                           \
+         SuperMatrix *B, SuperMatrix *X,                                                                  \
+         FLOATTYPE *recip_pivot_growth,                                                                   \
+         FLOATTYPE *rcond, FLOATTYPE *ferr, FLOATTYPE *berr,                                              \
+         SuperLUStat_t *stats, int *info, KEYTYPE) {                                                      \
+    PREFIX##mem_usage_t mem_usage;                                                                        \
+    PREFIX##gssvx(options, A, perm_c, perm_r, etree, equed, R, C, L,                                      \
+         U, work, lwork, B, X, recip_pivot_growth, rcond,                                                 \
+         ferr, berr, &mem_usage, stats, info);                                                            \
+    return mem_usage.for_lu; /* bytes used by the factor storage */                                       \
+  }
+
+DECL_GSSVX(s,float,float)
+DECL_GSSVX(c,float,std::complex<float>)
+DECL_GSSVX(d,double,double)
+DECL_GSSVX(z,double,std::complex<double>)
+
+#ifdef MILU_ALPHA
+#define EIGEN_SUPERLU_HAS_ILU
+#endif
+
+#ifdef EIGEN_SUPERLU_HAS_ILU
+
+// similarly for the incomplete factorization using gsisx
+#define DECL_GSISX(PREFIX,FLOATTYPE,KEYTYPE)                                                    \
+    extern "C" {                                                                                \
+      extern void PREFIX##gsisx(superlu_options_t *, SuperMatrix *, int *, int *, int *,        \
+                         char *, FLOATTYPE *, FLOATTYPE *, SuperMatrix *, SuperMatrix *,        \
+                         void *, int, SuperMatrix *, SuperMatrix *, FLOATTYPE *, FLOATTYPE *,   \
+                         PREFIX##mem_usage_t *, SuperLUStat_t *, int *);                        \
+    }                                                                                           \
+    inline float SuperLU_gsisx(superlu_options_t *options, SuperMatrix *A,                      \
+         int *perm_c, int *perm_r, int *etree, char *equed,                                     \
+         FLOATTYPE *R, FLOATTYPE *C, SuperMatrix *L,                                            \
+         SuperMatrix *U, void *work, int lwork,                                                 \
+         SuperMatrix *B, SuperMatrix *X,                                                        \
+         FLOATTYPE *recip_pivot_growth,                                                         \
+         FLOATTYPE *rcond,                                                                      \
+         SuperLUStat_t *stats, int *info, KEYTYPE) {                                            \
+    PREFIX##mem_usage_t mem_usage;                                                              \
+    PREFIX##gsisx(options, A, perm_c, perm_r, etree, equed, R, C, L,                            \
+         U, work, lwork, B, X, recip_pivot_growth, rcond,                                       \
+         &mem_usage, stats, info);                                                              \
+    return mem_usage.for_lu; /* bytes used by the factor storage */                             \
+  }
+
+DECL_GSISX(s,float,float)
+DECL_GSISX(c,float,std::complex<float>)
+DECL_GSISX(d,double,double)
+DECL_GSISX(z,double,std::complex<double>)
+
+#endif
+
+template<typename MatrixType>
+struct SluMatrixMapHelper;
+
+/** \internal
+  *
+  * A wrapper class for SuperLU matrices. It supports only compressed sparse matrices
+  * and dense matrices. Supernodal and other fancy format are not supported by this wrapper.
+  *
+  * This wrapper class mainly aims to avoids the need of dynamic allocation of the storage structure.
+  */
+struct SluMatrix : SuperMatrix
+{
+  SluMatrix()
+  {
+    Store = &storage;
+  }
+
+  SluMatrix(const SluMatrix& other)
+    : SuperMatrix(other)
+  {
+    Store = &storage;
+    storage = other.storage;
+  }
+
+  SluMatrix& operator=(const SluMatrix& other)
+  {
+    SuperMatrix::operator=(static_cast<const SuperMatrix&>(other));
+    Store = &storage;
+    storage = other.storage;
+    return *this;
+  }
+
+  struct
+  {
+    union {int nnz;int lda;};
+    void *values;
+    int *innerInd;
+    int *outerInd;
+  } storage;
+
+  void setStorageType(Stype_t t)
+  {
+    Stype = t;
+    if (t==SLU_NC || t==SLU_NR || t==SLU_DN)
+      Store = &storage;
+    else
+    {
+      eigen_assert(false && "storage type not supported");
+      Store = 0;
+    }
+  }
+
+  template<typename Scalar>
+  void setScalarType()
+  {
+    if (internal::is_same<Scalar,float>::value)
+      Dtype = SLU_S;
+    else if (internal::is_same<Scalar,double>::value)
+      Dtype = SLU_D;
+    else if (internal::is_same<Scalar,std::complex<float> >::value)
+      Dtype = SLU_C;
+    else if (internal::is_same<Scalar,std::complex<double> >::value)
+      Dtype = SLU_Z;
+    else
+    {
+      eigen_assert(false && "Scalar type not supported by SuperLU");
+    }
+  }
+
+  template<typename MatrixType>
+  static SluMatrix Map(MatrixBase<MatrixType>& _mat)
+  {
+    MatrixType& mat(_mat.derived());
+    eigen_assert( ((MatrixType::Flags&RowMajorBit)!=RowMajorBit) && "row-major dense matrices are not supported by SuperLU");
+    SluMatrix res;
+    res.setStorageType(SLU_DN);
+    res.setScalarType<typename MatrixType::Scalar>();
+    res.Mtype     = SLU_GE;
+
+    res.nrow      = mat.rows();
+    res.ncol      = mat.cols();
+
+    res.storage.lda       = MatrixType::IsVectorAtCompileTime ? mat.size() : mat.outerStride();
+    res.storage.values    = (void*)(mat.data());
+    return res;
+  }
+
+  template<typename MatrixType>
+  static SluMatrix Map(SparseMatrixBase<MatrixType>& mat)
+  {
+    SluMatrix res;
+    if ((MatrixType::Flags&RowMajorBit)==RowMajorBit)
+    {
+      res.setStorageType(SLU_NR);
+      res.nrow      = mat.cols();
+      res.ncol      = mat.rows();
+    }
+    else
+    {
+      res.setStorageType(SLU_NC);
+      res.nrow      = mat.rows();
+      res.ncol      = mat.cols();
+    }
+
+    res.Mtype       = SLU_GE;
+
+    res.storage.nnz       = mat.nonZeros();
+    res.storage.values    = mat.derived().valuePtr();
+    res.storage.innerInd  = mat.derived().innerIndexPtr();
+    res.storage.outerInd  = mat.derived().outerIndexPtr();
+
+    res.setScalarType<typename MatrixType::Scalar>();
+
+    // FIXME the following is not very accurate
+    if (MatrixType::Flags & Upper)
+      res.Mtype = SLU_TRU;
+    if (MatrixType::Flags & Lower)
+      res.Mtype = SLU_TRL;
+
+    eigen_assert(((MatrixType::Flags & SelfAdjoint)==0) && "SelfAdjoint matrix shape not supported by SuperLU");
+
+    return res;
+  }
+};
+
+template<typename Scalar, int Rows, int Cols, int Options, int MRows, int MCols>
+struct SluMatrixMapHelper<Matrix<Scalar,Rows,Cols,Options,MRows,MCols> >
+{
+  typedef Matrix<Scalar,Rows,Cols,Options,MRows,MCols> MatrixType;
+  static void run(MatrixType& mat, SluMatrix& res)
+  {
+    eigen_assert( ((Options&RowMajor)!=RowMajor) && "row-major dense matrices is not supported by SuperLU");
+    res.setStorageType(SLU_DN);
+    res.setScalarType<Scalar>();
+    res.Mtype     = SLU_GE;
+
+    res.nrow      = mat.rows();
+    res.ncol      = mat.cols();
+
+    res.storage.lda       = mat.outerStride();
+    res.storage.values    = mat.data();
+  }
+};
+
+template<typename Derived>
+struct SluMatrixMapHelper<SparseMatrixBase<Derived> >
+{
+  typedef Derived MatrixType;
+  static void run(MatrixType& mat, SluMatrix& res)
+  {
+    if ((MatrixType::Flags&RowMajorBit)==RowMajorBit)
+    {
+      res.setStorageType(SLU_NR);
+      res.nrow      = mat.cols();
+      res.ncol      = mat.rows();
+    }
+    else
+    {
+      res.setStorageType(SLU_NC);
+      res.nrow      = mat.rows();
+      res.ncol      = mat.cols();
+    }
+
+    res.Mtype       = SLU_GE;
+
+    res.storage.nnz       = mat.nonZeros();
+    res.storage.values    = mat.valuePtr();
+    res.storage.innerInd  = mat.innerIndexPtr();
+    res.storage.outerInd  = mat.outerIndexPtr();
+
+    res.setScalarType<typename MatrixType::Scalar>();
+
+    // FIXME the following is not very accurate
+    if (MatrixType::Flags & Upper)
+      res.Mtype = SLU_TRU;
+    if (MatrixType::Flags & Lower)
+      res.Mtype = SLU_TRL;
+
+    eigen_assert(((MatrixType::Flags & SelfAdjoint)==0) && "SelfAdjoint matrix shape not supported by SuperLU");
+  }
+};
+
+namespace internal {
+
+template<typename MatrixType>
+SluMatrix asSluMatrix(MatrixType& mat)
+{
+  return SluMatrix::Map(mat);
+}
+
+/** View a Super LU matrix as an Eigen expression */
+template<typename Scalar, int Flags, typename Index>
+MappedSparseMatrix<Scalar,Flags,Index> map_superlu(SluMatrix& sluMat)
+{
+  eigen_assert((Flags&RowMajor)==RowMajor && sluMat.Stype == SLU_NR
+         || (Flags&ColMajor)==ColMajor && sluMat.Stype == SLU_NC);
+
+  Index outerSize = (Flags&RowMajor)==RowMajor ? sluMat.ncol : sluMat.nrow;
+
+  return MappedSparseMatrix<Scalar,Flags,Index>(
+    sluMat.nrow, sluMat.ncol, sluMat.storage.outerInd[outerSize],
+    sluMat.storage.outerInd, sluMat.storage.innerInd, reinterpret_cast<Scalar*>(sluMat.storage.values) );
+}
+
+} // end namespace internal
+
+/** \ingroup SuperLUSupport_Module
+  * \class SuperLUBase
+  * \brief The base class for the direct and incomplete LU factorization of SuperLU
+  */
+template<typename _MatrixType, typename Derived>
+class SuperLUBase : internal::noncopyable
+{
+  public:
+    typedef _MatrixType MatrixType;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef Matrix<Scalar,Dynamic,1> Vector;
+    typedef Matrix<int, 1, MatrixType::ColsAtCompileTime> IntRowVectorType;
+    typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> IntColVectorType;    
+    typedef SparseMatrix<Scalar> LUMatrixType;
+
+  public:
+
+    SuperLUBase() {}
+
+    ~SuperLUBase()
+    {
+      clearFactors();
+    }
+    
+    Derived& derived() { return *static_cast<Derived*>(this); }
+    const Derived& derived() const { return *static_cast<const Derived*>(this); }
+    
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+    
+    /** \returns a reference to the Super LU option object to configure the  Super LU algorithms. */
+    inline superlu_options_t& options() { return m_sluOptions; }
+    
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix.appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+
+    /** Computes the sparse Cholesky decomposition of \a matrix */
+    void compute(const MatrixType& matrix)
+    {
+      derived().analyzePattern(matrix);
+      derived().factorize(matrix);
+    }
+    
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<SuperLUBase, Rhs> solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "SuperLU is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "SuperLU::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<SuperLUBase, Rhs>(*this, b.derived());
+    }
+    
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<SuperLUBase, Rhs> solve(const SparseMatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "SuperLU is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "SuperLU::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::sparse_solve_retval<SuperLUBase, Rhs>(*this, b.derived());
+    }
+    
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      * 
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& /*matrix*/)
+    {
+      m_isInitialized = true;
+      m_info = Success;
+      m_analysisIsOk = true;
+      m_factorizationIsOk = false;
+    }
+    
+    template<typename Stream>
+    void dumpMemory(Stream& /*s*/)
+    {}
+    
+  protected:
+    
+    void initFactorization(const MatrixType& a)
+    {
+      set_default_options(&this->m_sluOptions);
+      
+      const int size = a.rows();
+      m_matrix = a;
+
+      m_sluA = internal::asSluMatrix(m_matrix);
+      clearFactors();
+
+      m_p.resize(size);
+      m_q.resize(size);
+      m_sluRscale.resize(size);
+      m_sluCscale.resize(size);
+      m_sluEtree.resize(size);
+
+      // set empty B and X
+      m_sluB.setStorageType(SLU_DN);
+      m_sluB.setScalarType<Scalar>();
+      m_sluB.Mtype          = SLU_GE;
+      m_sluB.storage.values = 0;
+      m_sluB.nrow           = 0;
+      m_sluB.ncol           = 0;
+      m_sluB.storage.lda    = size;
+      m_sluX                = m_sluB;
+      
+      m_extractedDataAreDirty = true;
+    }
+    
+    void init()
+    {
+      m_info = InvalidInput;
+      m_isInitialized = false;
+      m_sluL.Store = 0;
+      m_sluU.Store = 0;
+    }
+    
+    void extractData() const;
+
+    void clearFactors()
+    {
+      if(m_sluL.Store)
+        Destroy_SuperNode_Matrix(&m_sluL);
+      if(m_sluU.Store)
+        Destroy_CompCol_Matrix(&m_sluU);
+
+      m_sluL.Store = 0;
+      m_sluU.Store = 0;
+
+      memset(&m_sluL,0,sizeof m_sluL);
+      memset(&m_sluU,0,sizeof m_sluU);
+    }
+
+    // cached data to reduce reallocation, etc.
+    mutable LUMatrixType m_l;
+    mutable LUMatrixType m_u;
+    mutable IntColVectorType m_p;
+    mutable IntRowVectorType m_q;
+
+    mutable LUMatrixType m_matrix;  // copy of the factorized matrix
+    mutable SluMatrix m_sluA;
+    mutable SuperMatrix m_sluL, m_sluU;
+    mutable SluMatrix m_sluB, m_sluX;
+    mutable SuperLUStat_t m_sluStat;
+    mutable superlu_options_t m_sluOptions;
+    mutable std::vector<int> m_sluEtree;
+    mutable Matrix<RealScalar,Dynamic,1> m_sluRscale, m_sluCscale;
+    mutable Matrix<RealScalar,Dynamic,1> m_sluFerr, m_sluBerr;
+    mutable char m_sluEqued;
+
+    mutable ComputationInfo m_info;
+    bool m_isInitialized;
+    int m_factorizationIsOk;
+    int m_analysisIsOk;
+    mutable bool m_extractedDataAreDirty;
+    
+  private:
+    SuperLUBase(SuperLUBase& ) { }
+};
+
+
+/** \ingroup SuperLUSupport_Module
+  * \class SuperLU
+  * \brief A sparse direct LU factorization and solver based on the SuperLU library
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a direct LU factorization
+  * using the SuperLU library. The sparse matrix A must be squared and invertible. The vectors or matrices
+  * X and B can be either dense or sparse.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  *
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename _MatrixType>
+class SuperLU : public SuperLUBase<_MatrixType,SuperLU<_MatrixType> >
+{
+  public:
+    typedef SuperLUBase<_MatrixType,SuperLU> Base;
+    typedef _MatrixType MatrixType;
+    typedef typename Base::Scalar Scalar;
+    typedef typename Base::RealScalar RealScalar;
+    typedef typename Base::Index Index;
+    typedef typename Base::IntRowVectorType IntRowVectorType;
+    typedef typename Base::IntColVectorType IntColVectorType;    
+    typedef typename Base::LUMatrixType LUMatrixType;
+    typedef TriangularView<LUMatrixType, Lower|UnitDiag>  LMatrixType;
+    typedef TriangularView<LUMatrixType,  Upper>           UMatrixType;
+
+  public:
+
+    SuperLU() : Base() { init(); }
+
+    SuperLU(const MatrixType& matrix) : Base()
+    {
+      init();
+      Base::compute(matrix);
+    }
+
+    ~SuperLU()
+    {
+    }
+    
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      * 
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& matrix)
+    {
+      m_info = InvalidInput;
+      m_isInitialized = false;
+      Base::analyzePattern(matrix);
+    }
+    
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+      *
+      * \sa analyzePattern()
+      */
+    void factorize(const MatrixType& matrix);
+    
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal */
+    template<typename Rhs,typename Dest>
+    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const;
+    #endif // EIGEN_PARSED_BY_DOXYGEN
+    
+    inline const LMatrixType& matrixL() const
+    {
+      if (m_extractedDataAreDirty) this->extractData();
+      return m_l;
+    }
+
+    inline const UMatrixType& matrixU() const
+    {
+      if (m_extractedDataAreDirty) this->extractData();
+      return m_u;
+    }
+
+    inline const IntColVectorType& permutationP() const
+    {
+      if (m_extractedDataAreDirty) this->extractData();
+      return m_p;
+    }
+
+    inline const IntRowVectorType& permutationQ() const
+    {
+      if (m_extractedDataAreDirty) this->extractData();
+      return m_q;
+    }
+    
+    Scalar determinant() const;
+    
+  protected:
+    
+    using Base::m_matrix;
+    using Base::m_sluOptions;
+    using Base::m_sluA;
+    using Base::m_sluB;
+    using Base::m_sluX;
+    using Base::m_p;
+    using Base::m_q;
+    using Base::m_sluEtree;
+    using Base::m_sluEqued;
+    using Base::m_sluRscale;
+    using Base::m_sluCscale;
+    using Base::m_sluL;
+    using Base::m_sluU;
+    using Base::m_sluStat;
+    using Base::m_sluFerr;
+    using Base::m_sluBerr;
+    using Base::m_l;
+    using Base::m_u;
+    
+    using Base::m_analysisIsOk;
+    using Base::m_factorizationIsOk;
+    using Base::m_extractedDataAreDirty;
+    using Base::m_isInitialized;
+    using Base::m_info;
+    
+    void init()
+    {
+      Base::init();
+      
+      set_default_options(&this->m_sluOptions);
+      m_sluOptions.PrintStat        = NO;
+      m_sluOptions.ConditionNumber  = NO;
+      m_sluOptions.Trans            = NOTRANS;
+      m_sluOptions.ColPerm          = COLAMD;
+    }
+    
+    
+  private:
+    SuperLU(SuperLU& ) { }
+};
+
+template<typename MatrixType>
+void SuperLU<MatrixType>::factorize(const MatrixType& a)
+{
+  eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+  if(!m_analysisIsOk)
+  {
+    m_info = InvalidInput;
+    return;
+  }
+  
+  this->initFactorization(a);
+  
+  m_sluOptions.ColPerm = COLAMD;
+  int info = 0;
+  RealScalar recip_pivot_growth, rcond;
+  RealScalar ferr, berr;
+
+  StatInit(&m_sluStat);
+  SuperLU_gssvx(&m_sluOptions, &m_sluA, m_q.data(), m_p.data(), &m_sluEtree[0],
+                &m_sluEqued, &m_sluRscale[0], &m_sluCscale[0],
+                &m_sluL, &m_sluU,
+                NULL, 0,
+                &m_sluB, &m_sluX,
+                &recip_pivot_growth, &rcond,
+                &ferr, &berr,
+                &m_sluStat, &info, Scalar());
+  StatFree(&m_sluStat);
+
+  m_extractedDataAreDirty = true;
+
+  // FIXME how to better check for errors ???
+  m_info = info == 0 ? Success : NumericalIssue;
+  m_factorizationIsOk = true;
+}
+
+template<typename MatrixType>
+template<typename Rhs,typename Dest>
+void SuperLU<MatrixType>::_solve(const MatrixBase<Rhs> &b, MatrixBase<Dest>& x) const
+{
+  eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or analyzePattern()/factorize()");
+
+  const int size = m_matrix.rows();
+  const int rhsCols = b.cols();
+  eigen_assert(size==b.rows());
+
+  m_sluOptions.Trans = NOTRANS;
+  m_sluOptions.Fact = FACTORED;
+  m_sluOptions.IterRefine = NOREFINE;
+  
+
+  m_sluFerr.resize(rhsCols);
+  m_sluBerr.resize(rhsCols);
+  m_sluB = SluMatrix::Map(b.const_cast_derived());
+  m_sluX = SluMatrix::Map(x.derived());
+  
+  typename Rhs::PlainObject b_cpy;
+  if(m_sluEqued!='N')
+  {
+    b_cpy = b;
+    m_sluB = SluMatrix::Map(b_cpy.const_cast_derived());  
+  }
+
+  StatInit(&m_sluStat);
+  int info = 0;
+  RealScalar recip_pivot_growth, rcond;
+  SuperLU_gssvx(&m_sluOptions, &m_sluA,
+                m_q.data(), m_p.data(),
+                &m_sluEtree[0], &m_sluEqued,
+                &m_sluRscale[0], &m_sluCscale[0],
+                &m_sluL, &m_sluU,
+                NULL, 0,
+                &m_sluB, &m_sluX,
+                &recip_pivot_growth, &rcond,
+                &m_sluFerr[0], &m_sluBerr[0],
+                &m_sluStat, &info, Scalar());
+  StatFree(&m_sluStat);
+  m_info = info==0 ? Success : NumericalIssue;
+}
+
+// the code of this extractData() function has been adapted from the SuperLU's Matlab support code,
+//
+//  Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+//
+//  THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+//  EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+//
+template<typename MatrixType, typename Derived>
+void SuperLUBase<MatrixType,Derived>::extractData() const
+{
+  eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for extracting factors, you must first call either compute() or analyzePattern()/factorize()");
+  if (m_extractedDataAreDirty)
+  {
+    int         upper;
+    int         fsupc, istart, nsupr;
+    int         lastl = 0, lastu = 0;
+    SCformat    *Lstore = static_cast<SCformat*>(m_sluL.Store);
+    NCformat    *Ustore = static_cast<NCformat*>(m_sluU.Store);
+    Scalar      *SNptr;
+
+    const int size = m_matrix.rows();
+    m_l.resize(size,size);
+    m_l.resizeNonZeros(Lstore->nnz);
+    m_u.resize(size,size);
+    m_u.resizeNonZeros(Ustore->nnz);
+
+    int* Lcol = m_l.outerIndexPtr();
+    int* Lrow = m_l.innerIndexPtr();
+    Scalar* Lval = m_l.valuePtr();
+
+    int* Ucol = m_u.outerIndexPtr();
+    int* Urow = m_u.innerIndexPtr();
+    Scalar* Uval = m_u.valuePtr();
+
+    Ucol[0] = 0;
+    Ucol[0] = 0;
+
+    /* for each supernode */
+    for (int k = 0; k <= Lstore->nsuper; ++k)
+    {
+      fsupc   = L_FST_SUPC(k);
+      istart  = L_SUB_START(fsupc);
+      nsupr   = L_SUB_START(fsupc+1) - istart;
+      upper   = 1;
+
+      /* for each column in the supernode */
+      for (int j = fsupc; j < L_FST_SUPC(k+1); ++j)
+      {
+        SNptr = &((Scalar*)Lstore->nzval)[L_NZ_START(j)];
+
+        /* Extract U */
+        for (int i = U_NZ_START(j); i < U_NZ_START(j+1); ++i)
+        {
+          Uval[lastu] = ((Scalar*)Ustore->nzval)[i];
+          /* Matlab doesn't like explicit zero. */
+          if (Uval[lastu] != 0.0)
+            Urow[lastu++] = U_SUB(i);
+        }
+        for (int i = 0; i < upper; ++i)
+        {
+          /* upper triangle in the supernode */
+          Uval[lastu] = SNptr[i];
+          /* Matlab doesn't like explicit zero. */
+          if (Uval[lastu] != 0.0)
+            Urow[lastu++] = L_SUB(istart+i);
+        }
+        Ucol[j+1] = lastu;
+
+        /* Extract L */
+        Lval[lastl] = 1.0; /* unit diagonal */
+        Lrow[lastl++] = L_SUB(istart + upper - 1);
+        for (int i = upper; i < nsupr; ++i)
+        {
+          Lval[lastl] = SNptr[i];
+          /* Matlab doesn't like explicit zero. */
+          if (Lval[lastl] != 0.0)
+            Lrow[lastl++] = L_SUB(istart+i);
+        }
+        Lcol[j+1] = lastl;
+
+        ++upper;
+      } /* for j ... */
+
+    } /* for k ... */
+
+    // squeeze the matrices :
+    m_l.resizeNonZeros(lastl);
+    m_u.resizeNonZeros(lastu);
+
+    m_extractedDataAreDirty = false;
+  }
+}
+
+template<typename MatrixType>
+typename SuperLU<MatrixType>::Scalar SuperLU<MatrixType>::determinant() const
+{
+  eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for computing the determinant, you must first call either compute() or analyzePattern()/factorize()");
+  
+  if (m_extractedDataAreDirty)
+    this->extractData();
+
+  Scalar det = Scalar(1);
+  for (int j=0; j<m_u.cols(); ++j)
+  {
+    if (m_u.outerIndexPtr()[j+1]-m_u.outerIndexPtr()[j] > 0)
+    {
+      int lastId = m_u.outerIndexPtr()[j+1]-1;
+      eigen_assert(m_u.innerIndexPtr()[lastId]<=j);
+      if (m_u.innerIndexPtr()[lastId]==j)
+        det *= m_u.valuePtr()[lastId];
+    }
+  }
+  if(m_sluEqued!='N')
+    return det/m_sluRscale.prod()/m_sluCscale.prod();
+  else
+    return det;
+}
+
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+#define EIGEN_SUPERLU_HAS_ILU
+#endif
+
+#ifdef EIGEN_SUPERLU_HAS_ILU
+
+/** \ingroup SuperLUSupport_Module
+  * \class SuperILU
+  * \brief A sparse direct \b incomplete LU factorization and solver based on the SuperLU library
+  *
+  * This class allows to solve for an approximate solution of A.X = B sparse linear problems via an incomplete LU factorization
+  * using the SuperLU library. This class is aimed to be used as a preconditioner of the iterative linear solvers.
+  *
+  * \warning This class requires SuperLU 4 or later.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  *
+  * \sa \ref TutorialSparseDirectSolvers, class ConjugateGradient, class BiCGSTAB
+  */
+
+template<typename _MatrixType>
+class SuperILU : public SuperLUBase<_MatrixType,SuperILU<_MatrixType> >
+{
+  public:
+    typedef SuperLUBase<_MatrixType,SuperILU> Base;
+    typedef _MatrixType MatrixType;
+    typedef typename Base::Scalar Scalar;
+    typedef typename Base::RealScalar RealScalar;
+    typedef typename Base::Index Index;
+
+  public:
+
+    SuperILU() : Base() { init(); }
+
+    SuperILU(const MatrixType& matrix) : Base()
+    {
+      init();
+      Base::compute(matrix);
+    }
+
+    ~SuperILU()
+    {
+    }
+    
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      * 
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& matrix)
+    {
+      Base::analyzePattern(matrix);
+    }
+    
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+      *
+      * \sa analyzePattern()
+      */
+    void factorize(const MatrixType& matrix);
+    
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal */
+    template<typename Rhs,typename Dest>
+    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const;
+    #endif // EIGEN_PARSED_BY_DOXYGEN
+    
+  protected:
+    
+    using Base::m_matrix;
+    using Base::m_sluOptions;
+    using Base::m_sluA;
+    using Base::m_sluB;
+    using Base::m_sluX;
+    using Base::m_p;
+    using Base::m_q;
+    using Base::m_sluEtree;
+    using Base::m_sluEqued;
+    using Base::m_sluRscale;
+    using Base::m_sluCscale;
+    using Base::m_sluL;
+    using Base::m_sluU;
+    using Base::m_sluStat;
+    using Base::m_sluFerr;
+    using Base::m_sluBerr;
+    using Base::m_l;
+    using Base::m_u;
+    
+    using Base::m_analysisIsOk;
+    using Base::m_factorizationIsOk;
+    using Base::m_extractedDataAreDirty;
+    using Base::m_isInitialized;
+    using Base::m_info;
+
+    void init()
+    {
+      Base::init();
+      
+      ilu_set_default_options(&m_sluOptions);
+      m_sluOptions.PrintStat        = NO;
+      m_sluOptions.ConditionNumber  = NO;
+      m_sluOptions.Trans            = NOTRANS;
+      m_sluOptions.ColPerm          = MMD_AT_PLUS_A;
+      
+      // no attempt to preserve column sum
+      m_sluOptions.ILU_MILU = SILU;
+      // only basic ILU(k) support -- no direct control over memory consumption
+      // better to use ILU_DropRule = DROP_BASIC | DROP_AREA
+      // and set ILU_FillFactor to max memory growth
+      m_sluOptions.ILU_DropRule = DROP_BASIC;
+      m_sluOptions.ILU_DropTol = NumTraits<Scalar>::dummy_precision()*10;
+    }
+    
+  private:
+    SuperILU(SuperILU& ) { }
+};
+
+template<typename MatrixType>
+void SuperILU<MatrixType>::factorize(const MatrixType& a)
+{
+  eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+  if(!m_analysisIsOk)
+  {
+    m_info = InvalidInput;
+    return;
+  }
+  
+  this->initFactorization(a);
+
+  int info = 0;
+  RealScalar recip_pivot_growth, rcond;
+
+  StatInit(&m_sluStat);
+  SuperLU_gsisx(&m_sluOptions, &m_sluA, m_q.data(), m_p.data(), &m_sluEtree[0],
+                &m_sluEqued, &m_sluRscale[0], &m_sluCscale[0],
+                &m_sluL, &m_sluU,
+                NULL, 0,
+                &m_sluB, &m_sluX,
+                &recip_pivot_growth, &rcond,
+                &m_sluStat, &info, Scalar());
+  StatFree(&m_sluStat);
+
+  // FIXME how to better check for errors ???
+  m_info = info == 0 ? Success : NumericalIssue;
+  m_factorizationIsOk = true;
+}
+
+template<typename MatrixType>
+template<typename Rhs,typename Dest>
+void SuperILU<MatrixType>::_solve(const MatrixBase<Rhs> &b, MatrixBase<Dest>& x) const
+{
+  eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or analyzePattern()/factorize()");
+
+  const int size = m_matrix.rows();
+  const int rhsCols = b.cols();
+  eigen_assert(size==b.rows());
+
+  m_sluOptions.Trans = NOTRANS;
+  m_sluOptions.Fact = FACTORED;
+  m_sluOptions.IterRefine = NOREFINE;
+
+  m_sluFerr.resize(rhsCols);
+  m_sluBerr.resize(rhsCols);
+  m_sluB = SluMatrix::Map(b.const_cast_derived());
+  m_sluX = SluMatrix::Map(x.derived());
+
+  typename Rhs::PlainObject b_cpy;
+  if(m_sluEqued!='N')
+  {
+    b_cpy = b;
+    m_sluB = SluMatrix::Map(b_cpy.const_cast_derived());  
+  }
+  
+  int info = 0;
+  RealScalar recip_pivot_growth, rcond;
+
+  StatInit(&m_sluStat);
+  SuperLU_gsisx(&m_sluOptions, &m_sluA,
+                m_q.data(), m_p.data(),
+                &m_sluEtree[0], &m_sluEqued,
+                &m_sluRscale[0], &m_sluCscale[0],
+                &m_sluL, &m_sluU,
+                NULL, 0,
+                &m_sluB, &m_sluX,
+                &recip_pivot_growth, &rcond,
+                &m_sluStat, &info, Scalar());
+  StatFree(&m_sluStat);
+
+  m_info = info==0 ? Success : NumericalIssue;
+}
+#endif
+
+namespace internal {
+  
+template<typename _MatrixType, typename Derived, typename Rhs>
+struct solve_retval<SuperLUBase<_MatrixType,Derived>, Rhs>
+  : solve_retval_base<SuperLUBase<_MatrixType,Derived>, Rhs>
+{
+  typedef SuperLUBase<_MatrixType,Derived> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec().derived()._solve(rhs(),dst);
+  }
+};
+
+template<typename _MatrixType, typename Derived, typename Rhs>
+struct sparse_solve_retval<SuperLUBase<_MatrixType,Derived>, Rhs>
+  : sparse_solve_retval_base<SuperLUBase<_MatrixType,Derived>, Rhs>
+{
+  typedef SuperLUBase<_MatrixType,Derived> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    this->defaultEvalTo(dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SUPERLUSUPPORT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/UmfPackSupport/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/UmfPackSupport/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/UmfPackSupport/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/UmfPackSupport/CMakeLists.txt
diff --git a/vendor/eigen-3.2.8/Eigen/src/UmfPackSupport/UmfPackSupport.h b/vendor/eigen-3.2.8/Eigen/src/UmfPackSupport/UmfPackSupport.h
new file mode 100644
index 0000000..29c60c3
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/UmfPackSupport/UmfPackSupport.h
@@ -0,0 +1,474 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud at inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_UMFPACKSUPPORT_H
+#define EIGEN_UMFPACKSUPPORT_H
+
+namespace Eigen { 
+
+/* TODO extract L, extract U, compute det, etc... */
+
+// generic double/complex<double> wrapper functions:
+
+inline void umfpack_free_numeric(void **Numeric, double)
+{ umfpack_di_free_numeric(Numeric); *Numeric = 0; }
+
+inline void umfpack_free_numeric(void **Numeric, std::complex<double>)
+{ umfpack_zi_free_numeric(Numeric); *Numeric = 0; }
+
+inline void umfpack_free_symbolic(void **Symbolic, double)
+{ umfpack_di_free_symbolic(Symbolic); *Symbolic = 0; }
+
+inline void umfpack_free_symbolic(void **Symbolic, std::complex<double>)
+{ umfpack_zi_free_symbolic(Symbolic); *Symbolic = 0; }
+
+inline int umfpack_symbolic(int n_row,int n_col,
+                            const int Ap[], const int Ai[], const double Ax[], void **Symbolic,
+                            const double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
+{
+  return umfpack_di_symbolic(n_row,n_col,Ap,Ai,Ax,Symbolic,Control,Info);
+}
+
+inline int umfpack_symbolic(int n_row,int n_col,
+                            const int Ap[], const int Ai[], const std::complex<double> Ax[], void **Symbolic,
+                            const double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
+{
+  return umfpack_zi_symbolic(n_row,n_col,Ap,Ai,&numext::real_ref(Ax[0]),0,Symbolic,Control,Info);
+}
+
+inline int umfpack_numeric( const int Ap[], const int Ai[], const double Ax[],
+                            void *Symbolic, void **Numeric,
+                            const double Control[UMFPACK_CONTROL],double Info [UMFPACK_INFO])
+{
+  return umfpack_di_numeric(Ap,Ai,Ax,Symbolic,Numeric,Control,Info);
+}
+
+inline int umfpack_numeric( const int Ap[], const int Ai[], const std::complex<double> Ax[],
+                            void *Symbolic, void **Numeric,
+                            const double Control[UMFPACK_CONTROL],double Info [UMFPACK_INFO])
+{
+  return umfpack_zi_numeric(Ap,Ai,&numext::real_ref(Ax[0]),0,Symbolic,Numeric,Control,Info);
+}
+
+inline int umfpack_solve( int sys, const int Ap[], const int Ai[], const double Ax[],
+                          double X[], const double B[], void *Numeric,
+                          const double Control[UMFPACK_CONTROL], double Info[UMFPACK_INFO])
+{
+  return umfpack_di_solve(sys,Ap,Ai,Ax,X,B,Numeric,Control,Info);
+}
+
+inline int umfpack_solve( int sys, const int Ap[], const int Ai[], const std::complex<double> Ax[],
+                          std::complex<double> X[], const std::complex<double> B[], void *Numeric,
+                          const double Control[UMFPACK_CONTROL], double Info[UMFPACK_INFO])
+{
+  return umfpack_zi_solve(sys,Ap,Ai,&numext::real_ref(Ax[0]),0,&numext::real_ref(X[0]),0,&numext::real_ref(B[0]),0,Numeric,Control,Info);
+}
+
+inline int umfpack_get_lunz(int *lnz, int *unz, int *n_row, int *n_col, int *nz_udiag, void *Numeric, double)
+{
+  return umfpack_di_get_lunz(lnz,unz,n_row,n_col,nz_udiag,Numeric);
+}
+
+inline int umfpack_get_lunz(int *lnz, int *unz, int *n_row, int *n_col, int *nz_udiag, void *Numeric, std::complex<double>)
+{
+  return umfpack_zi_get_lunz(lnz,unz,n_row,n_col,nz_udiag,Numeric);
+}
+
+inline int umfpack_get_numeric(int Lp[], int Lj[], double Lx[], int Up[], int Ui[], double Ux[],
+                               int P[], int Q[], double Dx[], int *do_recip, double Rs[], void *Numeric)
+{
+  return umfpack_di_get_numeric(Lp,Lj,Lx,Up,Ui,Ux,P,Q,Dx,do_recip,Rs,Numeric);
+}
+
+inline int umfpack_get_numeric(int Lp[], int Lj[], std::complex<double> Lx[], int Up[], int Ui[], std::complex<double> Ux[],
+                               int P[], int Q[], std::complex<double> Dx[], int *do_recip, double Rs[], void *Numeric)
+{
+  double& lx0_real = numext::real_ref(Lx[0]);
+  double& ux0_real = numext::real_ref(Ux[0]);
+  double& dx0_real = numext::real_ref(Dx[0]);
+  return umfpack_zi_get_numeric(Lp,Lj,Lx?&lx0_real:0,0,Up,Ui,Ux?&ux0_real:0,0,P,Q,
+                                Dx?&dx0_real:0,0,do_recip,Rs,Numeric);
+}
+
+inline int umfpack_get_determinant(double *Mx, double *Ex, void *NumericHandle, double User_Info [UMFPACK_INFO])
+{
+  return umfpack_di_get_determinant(Mx,Ex,NumericHandle,User_Info);
+}
+
+inline int umfpack_get_determinant(std::complex<double> *Mx, double *Ex, void *NumericHandle, double User_Info [UMFPACK_INFO])
+{
+  double& mx_real = numext::real_ref(*Mx);
+  return umfpack_zi_get_determinant(&mx_real,0,Ex,NumericHandle,User_Info);
+}
+
+namespace internal {
+  template<typename T> struct umfpack_helper_is_sparse_plain : false_type {};
+  template<typename Scalar, int Options, typename StorageIndex>
+  struct umfpack_helper_is_sparse_plain<SparseMatrix<Scalar,Options,StorageIndex> >
+    : true_type {};
+  template<typename Scalar, int Options, typename StorageIndex>
+  struct umfpack_helper_is_sparse_plain<MappedSparseMatrix<Scalar,Options,StorageIndex> >
+    : true_type {};
+}
+
+/** \ingroup UmfPackSupport_Module
+  * \brief A sparse LU factorization and solver based on UmfPack
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a LU factorization
+  * using the UmfPack library. The sparse matrix A must be squared and full rank.
+  * The vectors or matrices X and B can be either dense or sparse.
+  *
+  * \warning The input matrix A should be in a \b compressed and \b column-major form.
+  * Otherwise an expensive copy will be made. You can call the inexpensive makeCompressed() to get a compressed matrix.
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  *
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename _MatrixType>
+class UmfPackLU : internal::noncopyable
+{
+  public:
+    typedef _MatrixType MatrixType;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef Matrix<Scalar,Dynamic,1> Vector;
+    typedef Matrix<int, 1, MatrixType::ColsAtCompileTime> IntRowVectorType;
+    typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> IntColVectorType;
+    typedef SparseMatrix<Scalar> LUMatrixType;
+    typedef SparseMatrix<Scalar,ColMajor,int> UmfpackMatrixType;
+
+  public:
+
+    UmfPackLU() { init(); }
+
+    UmfPackLU(const MatrixType& matrix)
+    {
+      init();
+      compute(matrix);
+    }
+
+    ~UmfPackLU()
+    {
+      if(m_symbolic) umfpack_free_symbolic(&m_symbolic,Scalar());
+      if(m_numeric)  umfpack_free_numeric(&m_numeric,Scalar());
+    }
+
+    inline Index rows() const { return m_copyMatrix.rows(); }
+    inline Index cols() const { return m_copyMatrix.cols(); }
+
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix.appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+
+    inline const LUMatrixType& matrixL() const
+    {
+      if (m_extractedDataAreDirty) extractData();
+      return m_l;
+    }
+
+    inline const LUMatrixType& matrixU() const
+    {
+      if (m_extractedDataAreDirty) extractData();
+      return m_u;
+    }
+
+    inline const IntColVectorType& permutationP() const
+    {
+      if (m_extractedDataAreDirty) extractData();
+      return m_p;
+    }
+
+    inline const IntRowVectorType& permutationQ() const
+    {
+      if (m_extractedDataAreDirty) extractData();
+      return m_q;
+    }
+
+    /** Computes the sparse Cholesky decomposition of \a matrix 
+     *  Note that the matrix should be column-major, and in compressed format for best performance.
+     *  \sa SparseMatrix::makeCompressed().
+     */
+    template<typename InputMatrixType>
+    void compute(const InputMatrixType& matrix)
+    {
+      if(m_symbolic) umfpack_free_symbolic(&m_symbolic,Scalar());
+      if(m_numeric)  umfpack_free_numeric(&m_numeric,Scalar());
+      grapInput(matrix.derived());
+      analyzePattern_impl();
+      factorize_impl();
+    }
+
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<UmfPackLU, Rhs> solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "UmfPackLU is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "UmfPackLU::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<UmfPackLU, Rhs>(*this, b.derived());
+    }
+
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<UmfPackLU, Rhs> solve(const SparseMatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "UmfPackLU is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "UmfPackLU::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::sparse_solve_retval<UmfPackLU, Rhs>(*this, b.derived());
+    }
+
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      *
+      * \sa factorize(), compute()
+      */
+    template<typename InputMatrixType>
+    void analyzePattern(const InputMatrixType& matrix)
+    {
+      if(m_symbolic) umfpack_free_symbolic(&m_symbolic,Scalar());
+      if(m_numeric)  umfpack_free_numeric(&m_numeric,Scalar());
+      
+      grapInput(matrix.derived());
+
+      analyzePattern_impl();
+    }
+
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must has the same sparcity than the matrix on which the pattern anylysis has been performed.
+      *
+      * \sa analyzePattern(), compute()
+      */
+    template<typename InputMatrixType>
+    void factorize(const InputMatrixType& matrix)
+    {
+      eigen_assert(m_analysisIsOk && "UmfPackLU: you must first call analyzePattern()");
+      if(m_numeric)
+        umfpack_free_numeric(&m_numeric,Scalar());
+
+      grapInput(matrix.derived());
+      
+      factorize_impl();
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal */
+    template<typename BDerived,typename XDerived>
+    bool _solve(const MatrixBase<BDerived> &b, MatrixBase<XDerived> &x) const;
+    #endif
+
+    Scalar determinant() const;
+
+    void extractData() const;
+
+  protected:
+
+    void init()
+    {
+      m_info                  = InvalidInput;
+      m_isInitialized         = false;
+      m_numeric               = 0;
+      m_symbolic              = 0;
+      m_outerIndexPtr         = 0;
+      m_innerIndexPtr         = 0;
+      m_valuePtr              = 0;
+      m_extractedDataAreDirty = true;
+    }
+    
+    template<typename InputMatrixType>
+    void grapInput_impl(const InputMatrixType& mat, internal::true_type)
+    {
+      m_copyMatrix.resize(mat.rows(), mat.cols());
+      if( ((MatrixType::Flags&RowMajorBit)==RowMajorBit) || sizeof(typename MatrixType::Index)!=sizeof(int) || !mat.isCompressed() )
+      {
+        // non supported input -> copy
+        m_copyMatrix = mat;
+        m_outerIndexPtr = m_copyMatrix.outerIndexPtr();
+        m_innerIndexPtr = m_copyMatrix.innerIndexPtr();
+        m_valuePtr      = m_copyMatrix.valuePtr();
+      }
+      else
+      {
+        m_outerIndexPtr = mat.outerIndexPtr();
+        m_innerIndexPtr = mat.innerIndexPtr();
+        m_valuePtr      = mat.valuePtr();
+      }
+    }
+    
+    template<typename InputMatrixType>
+    void grapInput_impl(const InputMatrixType& mat, internal::false_type)
+    {
+      m_copyMatrix = mat;
+      m_outerIndexPtr = m_copyMatrix.outerIndexPtr();
+      m_innerIndexPtr = m_copyMatrix.innerIndexPtr();
+      m_valuePtr      = m_copyMatrix.valuePtr();
+    }
+    
+    template<typename InputMatrixType>
+    void grapInput(const InputMatrixType& mat)
+    {
+      grapInput_impl(mat, internal::umfpack_helper_is_sparse_plain<InputMatrixType>());
+    }
+    
+    void analyzePattern_impl()
+    {
+      int errorCode = 0;
+      errorCode = umfpack_symbolic(m_copyMatrix.rows(), m_copyMatrix.cols(), m_outerIndexPtr, m_innerIndexPtr, m_valuePtr,
+                                   &m_symbolic, 0, 0);
+
+      m_isInitialized = true;
+      m_info = errorCode ? InvalidInput : Success;
+      m_analysisIsOk = true;
+      m_factorizationIsOk = false;
+      m_extractedDataAreDirty = true;
+    }
+    
+    void factorize_impl()
+    {
+      int errorCode;
+      errorCode = umfpack_numeric(m_outerIndexPtr, m_innerIndexPtr, m_valuePtr,
+                                  m_symbolic, &m_numeric, 0, 0);
+
+      m_info = errorCode ? NumericalIssue : Success;
+      m_factorizationIsOk = true;
+      m_extractedDataAreDirty = true;
+    }
+
+    // cached data to reduce reallocation, etc.
+    mutable LUMatrixType m_l;
+    mutable LUMatrixType m_u;
+    mutable IntColVectorType m_p;
+    mutable IntRowVectorType m_q;
+
+    UmfpackMatrixType m_copyMatrix;
+    const Scalar* m_valuePtr;
+    const int* m_outerIndexPtr;
+    const int* m_innerIndexPtr;
+    void* m_numeric;
+    void* m_symbolic;
+
+    mutable ComputationInfo m_info;
+    bool m_isInitialized;
+    int m_factorizationIsOk;
+    int m_analysisIsOk;
+    mutable bool m_extractedDataAreDirty;
+    
+  private:
+    UmfPackLU(UmfPackLU& ) { }
+};
+
+
+template<typename MatrixType>
+void UmfPackLU<MatrixType>::extractData() const
+{
+  if (m_extractedDataAreDirty)
+  {
+    // get size of the data
+    int lnz, unz, rows, cols, nz_udiag;
+    umfpack_get_lunz(&lnz, &unz, &rows, &cols, &nz_udiag, m_numeric, Scalar());
+
+    // allocate data
+    m_l.resize(rows,(std::min)(rows,cols));
+    m_l.resizeNonZeros(lnz);
+
+    m_u.resize((std::min)(rows,cols),cols);
+    m_u.resizeNonZeros(unz);
+
+    m_p.resize(rows);
+    m_q.resize(cols);
+
+    // extract
+    umfpack_get_numeric(m_l.outerIndexPtr(), m_l.innerIndexPtr(), m_l.valuePtr(),
+                        m_u.outerIndexPtr(), m_u.innerIndexPtr(), m_u.valuePtr(),
+                        m_p.data(), m_q.data(), 0, 0, 0, m_numeric);
+
+    m_extractedDataAreDirty = false;
+  }
+}
+
+template<typename MatrixType>
+typename UmfPackLU<MatrixType>::Scalar UmfPackLU<MatrixType>::determinant() const
+{
+  Scalar det;
+  umfpack_get_determinant(&det, 0, m_numeric, 0);
+  return det;
+}
+
+template<typename MatrixType>
+template<typename BDerived,typename XDerived>
+bool UmfPackLU<MatrixType>::_solve(const MatrixBase<BDerived> &b, MatrixBase<XDerived> &x) const
+{
+  const int rhsCols = b.cols();
+  eigen_assert((BDerived::Flags&RowMajorBit)==0 && "UmfPackLU backend does not support non col-major rhs yet");
+  eigen_assert((XDerived::Flags&RowMajorBit)==0 && "UmfPackLU backend does not support non col-major result yet");
+  eigen_assert(b.derived().data() != x.derived().data() && " Umfpack does not support inplace solve");
+  
+  int errorCode;
+  for (int j=0; j<rhsCols; ++j)
+  {
+    errorCode = umfpack_solve(UMFPACK_A,
+        m_outerIndexPtr, m_innerIndexPtr, m_valuePtr,
+        &x.col(j).coeffRef(0), &b.const_cast_derived().col(j).coeffRef(0), m_numeric, 0, 0);
+    if (errorCode!=0)
+      return false;
+  }
+
+  return true;
+}
+
+
+namespace internal {
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<UmfPackLU<_MatrixType>, Rhs>
+  : solve_retval_base<UmfPackLU<_MatrixType>, Rhs>
+{
+  typedef UmfPackLU<_MatrixType> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+template<typename _MatrixType, typename Rhs>
+struct sparse_solve_retval<UmfPackLU<_MatrixType>, Rhs>
+  : sparse_solve_retval_base<UmfPackLU<_MatrixType>, Rhs>
+{
+  typedef UmfPackLU<_MatrixType> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    this->defaultEvalTo(dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_UMFPACKSUPPORT_H
diff --git a/vendor/eigen-3.1.91/Eigen/src/misc/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/misc/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/misc/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/misc/CMakeLists.txt
diff --git a/vendor/eigen-3.1.91/Eigen/src/misc/Image.h b/vendor/eigen-3.2.8/Eigen/src/misc/Image.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/misc/Image.h
rename to vendor/eigen-3.2.8/Eigen/src/misc/Image.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/misc/Kernel.h b/vendor/eigen-3.2.8/Eigen/src/misc/Kernel.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/misc/Kernel.h
rename to vendor/eigen-3.2.8/Eigen/src/misc/Kernel.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/misc/Solve.h b/vendor/eigen-3.2.8/Eigen/src/misc/Solve.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/misc/Solve.h
rename to vendor/eigen-3.2.8/Eigen/src/misc/Solve.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/misc/SparseSolve.h b/vendor/eigen-3.2.8/Eigen/src/misc/SparseSolve.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/misc/SparseSolve.h
rename to vendor/eigen-3.2.8/Eigen/src/misc/SparseSolve.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/misc/blas.h b/vendor/eigen-3.2.8/Eigen/src/misc/blas.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/misc/blas.h
rename to vendor/eigen-3.2.8/Eigen/src/misc/blas.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/plugins/ArrayCwiseBinaryOps.h b/vendor/eigen-3.2.8/Eigen/src/plugins/ArrayCwiseBinaryOps.h
new file mode 100644
index 0000000..1951286
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/plugins/ArrayCwiseBinaryOps.h
@@ -0,0 +1,253 @@
+/** \returns an expression of the coefficient wise product of \c *this and \a other
+  *
+  * \sa MatrixBase::cwiseProduct
+  */
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const EIGEN_CWISE_PRODUCT_RETURN_TYPE(Derived,OtherDerived)
+operator*(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return EIGEN_CWISE_PRODUCT_RETURN_TYPE(Derived,OtherDerived)(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient wise quotient of \c *this and \a other
+  *
+  * \sa MatrixBase::cwiseQuotient
+  */
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived>
+operator/(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise min of \c *this and \a other
+  *
+  * Example: \include Cwise_min.cpp
+  * Output: \verbinclude Cwise_min.out
+  *
+  * \sa max()
+  */
+EIGEN_MAKE_CWISE_BINARY_OP(min,internal::scalar_min_op)
+
+/** \returns an expression of the coefficient-wise min of \c *this and scalar \a other
+  *
+  * \sa max()
+  */
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived,
+                                        const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> >
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+min
+#else
+(min)
+#endif
+(const Scalar &other) const
+{
+  return (min)(Derived::PlainObject::Constant(rows(), cols(), other));
+}
+
+/** \returns an expression of the coefficient-wise max of \c *this and \a other
+  *
+  * Example: \include Cwise_max.cpp
+  * Output: \verbinclude Cwise_max.out
+  *
+  * \sa min()
+  */
+EIGEN_MAKE_CWISE_BINARY_OP(max,internal::scalar_max_op)
+
+/** \returns an expression of the coefficient-wise max of \c *this and scalar \a other
+  *
+  * \sa min()
+  */
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived,
+                                        const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> >
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+max
+#else
+(max)
+#endif
+(const Scalar &other) const
+{
+  return (max)(Derived::PlainObject::Constant(rows(), cols(), other));
+}
+
+
+#define EIGEN_MAKE_CWISE_COMP_OP(OP, COMPARATOR) \
+template<typename OtherDerived> \
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_cmp_op<Scalar, internal::cmp_ ## COMPARATOR>, const Derived, const OtherDerived> \
+OP(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const \
+{ \
+  return CwiseBinaryOp<internal::scalar_cmp_op<Scalar, internal::cmp_ ## COMPARATOR>, const Derived, const OtherDerived>(derived(), other.derived()); \
+}\
+typedef CwiseBinaryOp<internal::scalar_cmp_op<Scalar, internal::cmp_ ## COMPARATOR>, const Derived, const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> > Cmp ## COMPARATOR ## ReturnType; \
+typedef CwiseBinaryOp<internal::scalar_cmp_op<Scalar, internal::cmp_ ## COMPARATOR>, const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject>, const Derived > RCmp ## COMPARATOR ## ReturnType; \
+EIGEN_STRONG_INLINE const Cmp ## COMPARATOR ## ReturnType \
+OP(const Scalar& s) const { \
+  return this->OP(Derived::PlainObject::Constant(rows(), cols(), s)); \
+} \
+friend EIGEN_STRONG_INLINE const RCmp ## COMPARATOR ## ReturnType \
+OP(const Scalar& s, const Derived& d) { \
+  return Derived::PlainObject::Constant(d.rows(), d.cols(), s).OP(d); \
+}
+
+#define EIGEN_MAKE_CWISE_COMP_R_OP(OP, R_OP, RCOMPARATOR) \
+template<typename OtherDerived> \
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_cmp_op<Scalar, internal::cmp_##RCOMPARATOR>, const OtherDerived, const Derived> \
+OP(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const \
+{ \
+  return CwiseBinaryOp<internal::scalar_cmp_op<Scalar, internal::cmp_##RCOMPARATOR>, const OtherDerived, const Derived>(other.derived(), derived()); \
+} \
+\
+inline const RCmp ## RCOMPARATOR ## ReturnType \
+OP(const Scalar& s) const { \
+  return Derived::PlainObject::Constant(rows(), cols(), s).R_OP(*this); \
+} \
+friend inline const Cmp ## RCOMPARATOR ## ReturnType \
+OP(const Scalar& s, const Derived& d) { \
+  return d.R_OP(Derived::PlainObject::Constant(d.rows(), d.cols(), s)); \
+}
+
+
+/** \returns an expression of the coefficient-wise \< operator of *this and \a other
+  *
+  * Example: \include Cwise_less.cpp
+  * Output: \verbinclude Cwise_less.out
+  *
+  * \sa all(), any(), operator>(), operator<=()
+  */
+EIGEN_MAKE_CWISE_COMP_OP(operator<, LT)
+
+/** \returns an expression of the coefficient-wise \<= operator of *this and \a other
+  *
+  * Example: \include Cwise_less_equal.cpp
+  * Output: \verbinclude Cwise_less_equal.out
+  *
+  * \sa all(), any(), operator>=(), operator<()
+  */
+EIGEN_MAKE_CWISE_COMP_OP(operator<=, LE)
+
+/** \returns an expression of the coefficient-wise \> operator of *this and \a other
+  *
+  * Example: \include Cwise_greater.cpp
+  * Output: \verbinclude Cwise_greater.out
+  *
+  * \sa all(), any(), operator>=(), operator<()
+  */
+EIGEN_MAKE_CWISE_COMP_R_OP(operator>, operator<, LT)
+
+/** \returns an expression of the coefficient-wise \>= operator of *this and \a other
+  *
+  * Example: \include Cwise_greater_equal.cpp
+  * Output: \verbinclude Cwise_greater_equal.out
+  *
+  * \sa all(), any(), operator>(), operator<=()
+  */
+EIGEN_MAKE_CWISE_COMP_R_OP(operator>=, operator<=, LE)
+
+/** \returns an expression of the coefficient-wise == operator of *this and \a other
+  *
+  * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
+  * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
+  * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
+  * isMuchSmallerThan().
+  *
+  * Example: \include Cwise_equal_equal.cpp
+  * Output: \verbinclude Cwise_equal_equal.out
+  *
+  * \sa all(), any(), isApprox(), isMuchSmallerThan()
+  */
+EIGEN_MAKE_CWISE_COMP_OP(operator==, EQ)
+
+/** \returns an expression of the coefficient-wise != operator of *this and \a other
+  *
+  * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
+  * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
+  * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
+  * isMuchSmallerThan().
+  *
+  * Example: \include Cwise_not_equal.cpp
+  * Output: \verbinclude Cwise_not_equal.out
+  *
+  * \sa all(), any(), isApprox(), isMuchSmallerThan()
+  */
+EIGEN_MAKE_CWISE_COMP_OP(operator!=, NEQ)
+
+#undef EIGEN_MAKE_CWISE_COMP_OP
+#undef EIGEN_MAKE_CWISE_COMP_R_OP
+
+// scalar addition
+
+/** \returns an expression of \c *this with each coeff incremented by the constant \a scalar
+  *
+  * Example: \include Cwise_plus.cpp
+  * Output: \verbinclude Cwise_plus.out
+  *
+  * \sa operator+=(), operator-()
+  */
+inline const CwiseUnaryOp<internal::scalar_add_op<Scalar>, const Derived>
+operator+(const Scalar& scalar) const
+{
+  return CwiseUnaryOp<internal::scalar_add_op<Scalar>, const Derived>(derived(), internal::scalar_add_op<Scalar>(scalar));
+}
+
+friend inline const CwiseUnaryOp<internal::scalar_add_op<Scalar>, const Derived>
+operator+(const Scalar& scalar,const EIGEN_CURRENT_STORAGE_BASE_CLASS<Derived>& other)
+{
+  return other + scalar;
+}
+
+/** \returns an expression of \c *this with each coeff decremented by the constant \a scalar
+  *
+  * Example: \include Cwise_minus.cpp
+  * Output: \verbinclude Cwise_minus.out
+  *
+  * \sa operator+(), operator-=()
+  */
+inline const CwiseUnaryOp<internal::scalar_add_op<Scalar>, const Derived>
+operator-(const Scalar& scalar) const
+{
+  return *this + (-scalar);
+}
+
+friend inline const CwiseUnaryOp<internal::scalar_add_op<Scalar>, const CwiseUnaryOp<internal::scalar_opposite_op<Scalar>, const Derived> >
+operator-(const Scalar& scalar,const EIGEN_CURRENT_STORAGE_BASE_CLASS<Derived>& other)
+{
+  return (-other) + scalar;
+}
+
+/** \returns an expression of the coefficient-wise && operator of *this and \a other
+  *
+  * \warning this operator is for expression of bool only.
+  *
+  * Example: \include Cwise_boolean_and.cpp
+  * Output: \verbinclude Cwise_boolean_and.out
+  *
+  * \sa operator||(), select()
+  */
+template<typename OtherDerived>
+inline const CwiseBinaryOp<internal::scalar_boolean_and_op, const Derived, const OtherDerived>
+operator&&(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  EIGEN_STATIC_ASSERT((internal::is_same<bool,Scalar>::value && internal::is_same<bool,typename OtherDerived::Scalar>::value),
+                      THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL);
+  return CwiseBinaryOp<internal::scalar_boolean_and_op, const Derived, const OtherDerived>(derived(),other.derived());
+}
+
+/** \returns an expression of the coefficient-wise || operator of *this and \a other
+  *
+  * \warning this operator is for expression of bool only.
+  *
+  * Example: \include Cwise_boolean_or.cpp
+  * Output: \verbinclude Cwise_boolean_or.out
+  *
+  * \sa operator&&(), select()
+  */
+template<typename OtherDerived>
+inline const CwiseBinaryOp<internal::scalar_boolean_or_op, const Derived, const OtherDerived>
+operator||(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  EIGEN_STATIC_ASSERT((internal::is_same<bool,Scalar>::value && internal::is_same<bool,typename OtherDerived::Scalar>::value),
+                      THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL);
+  return CwiseBinaryOp<internal::scalar_boolean_or_op, const Derived, const OtherDerived>(derived(),other.derived());
+}
+
+
diff --git a/vendor/eigen-3.2.8/Eigen/src/plugins/ArrayCwiseUnaryOps.h b/vendor/eigen-3.2.8/Eigen/src/plugins/ArrayCwiseUnaryOps.h
new file mode 100644
index 0000000..1c3ed3f
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/plugins/ArrayCwiseUnaryOps.h
@@ -0,0 +1,187 @@
+
+
+/** \returns an expression of the coefficient-wise absolute value of \c *this
+  *
+  * Example: \include Cwise_abs.cpp
+  * Output: \verbinclude Cwise_abs.out
+  *
+  * \sa abs2()
+  */
+EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived>
+abs() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise squared absolute value of \c *this
+  *
+  * Example: \include Cwise_abs2.cpp
+  * Output: \verbinclude Cwise_abs2.out
+  *
+  * \sa abs(), square()
+  */
+EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived>
+abs2() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise exponential of *this.
+  *
+  * Example: \include Cwise_exp.cpp
+  * Output: \verbinclude Cwise_exp.out
+  *
+  * \sa pow(), log(), sin(), cos()
+  */
+inline const CwiseUnaryOp<internal::scalar_exp_op<Scalar>, const Derived>
+exp() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise logarithm of *this.
+  *
+  * Example: \include Cwise_log.cpp
+  * Output: \verbinclude Cwise_log.out
+  *
+  * \sa exp()
+  */
+inline const CwiseUnaryOp<internal::scalar_log_op<Scalar>, const Derived>
+log() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise square root of *this.
+  *
+  * Example: \include Cwise_sqrt.cpp
+  * Output: \verbinclude Cwise_sqrt.out
+  *
+  * \sa pow(), square()
+  */
+inline const CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived>
+sqrt() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise cosine of *this.
+  *
+  * Example: \include Cwise_cos.cpp
+  * Output: \verbinclude Cwise_cos.out
+  *
+  * \sa sin(), acos()
+  */
+inline const CwiseUnaryOp<internal::scalar_cos_op<Scalar>, const Derived>
+cos() const
+{
+  return derived();
+}
+
+
+/** \returns an expression of the coefficient-wise sine of *this.
+  *
+  * Example: \include Cwise_sin.cpp
+  * Output: \verbinclude Cwise_sin.out
+  *
+  * \sa cos(), asin()
+  */
+inline const CwiseUnaryOp<internal::scalar_sin_op<Scalar>, const Derived>
+sin() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise arc cosine of *this.
+  *
+  * Example: \include Cwise_acos.cpp
+  * Output: \verbinclude Cwise_acos.out
+  *
+  * \sa cos(), asin()
+  */
+inline const CwiseUnaryOp<internal::scalar_acos_op<Scalar>, const Derived>
+acos() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise arc sine of *this.
+  *
+  * Example: \include Cwise_asin.cpp
+  * Output: \verbinclude Cwise_asin.out
+  *
+  * \sa sin(), acos()
+  */
+inline const CwiseUnaryOp<internal::scalar_asin_op<Scalar>, const Derived>
+asin() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise tan of *this.
+  *
+  * Example: \include Cwise_tan.cpp
+  * Output: \verbinclude Cwise_tan.out
+  *
+  * \sa cos(), sin()
+  */
+inline const CwiseUnaryOp<internal::scalar_tan_op<Scalar>, Derived>
+tan() const
+{
+  return derived();
+}
+
+
+/** \returns an expression of the coefficient-wise power of *this to the given exponent.
+  *
+  * Example: \include Cwise_pow.cpp
+  * Output: \verbinclude Cwise_pow.out
+  *
+  * \sa exp(), log()
+  */
+inline const CwiseUnaryOp<internal::scalar_pow_op<Scalar>, const Derived>
+pow(const Scalar& exponent) const
+{
+  return CwiseUnaryOp<internal::scalar_pow_op<Scalar>, const Derived>
+          (derived(), internal::scalar_pow_op<Scalar>(exponent));
+}
+
+
+/** \returns an expression of the coefficient-wise inverse of *this.
+  *
+  * Example: \include Cwise_inverse.cpp
+  * Output: \verbinclude Cwise_inverse.out
+  *
+  * \sa operator/(), operator*()
+  */
+inline const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived>
+inverse() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise square of *this.
+  *
+  * Example: \include Cwise_square.cpp
+  * Output: \verbinclude Cwise_square.out
+  *
+  * \sa operator/(), operator*(), abs2()
+  */
+inline const CwiseUnaryOp<internal::scalar_square_op<Scalar>, const Derived>
+square() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise cube of *this.
+  *
+  * Example: \include Cwise_cube.cpp
+  * Output: \verbinclude Cwise_cube.out
+  *
+  * \sa square(), pow()
+  */
+inline const CwiseUnaryOp<internal::scalar_cube_op<Scalar>, const Derived>
+cube() const
+{
+  return derived();
+}
diff --git a/vendor/eigen-3.2.8/Eigen/src/plugins/BlockMethods.h b/vendor/eigen-3.2.8/Eigen/src/plugins/BlockMethods.h
new file mode 100644
index 0000000..2788251
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/plugins/BlockMethods.h
@@ -0,0 +1,935 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+
+/** \internal expression type of a column */
+typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, 1, !IsRowMajor> ColXpr;
+typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, 1, !IsRowMajor> ConstColXpr;
+/** \internal expression type of a row */
+typedef Block<Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowXpr;
+typedef const Block<const Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowXpr;
+/** \internal expression type of a block of whole columns */
+typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor> ColsBlockXpr;
+typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor> ConstColsBlockXpr;
+/** \internal expression type of a block of whole rows */
+typedef Block<Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowsBlockXpr;
+typedef const Block<const Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowsBlockXpr;
+/** \internal expression type of a block of whole columns */
+template<int N> struct NColsBlockXpr { typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type; };
+template<int N> struct ConstNColsBlockXpr { typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type; };
+/** \internal expression type of a block of whole rows */
+template<int N> struct NRowsBlockXpr { typedef Block<Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type; };
+template<int N> struct ConstNRowsBlockXpr { typedef const Block<const Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type; };
+
+typedef VectorBlock<Derived> SegmentReturnType;
+typedef const VectorBlock<const Derived> ConstSegmentReturnType;
+template<int Size> struct FixedSegmentReturnType { typedef VectorBlock<Derived, Size> Type; };
+template<int Size> struct ConstFixedSegmentReturnType { typedef const VectorBlock<const Derived, Size> Type; };
+
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+/** \returns a dynamic-size expression of a block in *this.
+  *
+  * \param startRow the first row in the block
+  * \param startCol the first column in the block
+  * \param blockRows the number of rows in the block
+  * \param blockCols the number of columns in the block
+  *
+  * Example: \include MatrixBase_block_int_int_int_int.cpp
+  * Output: \verbinclude MatrixBase_block_int_int_int_int.out
+  *
+  * \note Even though the returned expression has dynamic size, in the case
+  * when it is applied to a fixed-size matrix, it inherits a fixed maximal size,
+  * which means that evaluating it does not cause a dynamic memory allocation.
+  *
+  * \sa class Block, block(Index,Index)
+  */
+inline Block<Derived> block(Index startRow, Index startCol, Index blockRows, Index blockCols)
+{
+  return Block<Derived>(derived(), startRow, startCol, blockRows, blockCols);
+}
+
+/** This is the const version of block(Index,Index,Index,Index). */
+inline const Block<const Derived> block(Index startRow, Index startCol, Index blockRows, Index blockCols) const
+{
+  return Block<const Derived>(derived(), startRow, startCol, blockRows, blockCols);
+}
+
+
+
+
+/** \returns a dynamic-size expression of a top-right corner of *this.
+  *
+  * \param cRows the number of rows in the corner
+  * \param cCols the number of columns in the corner
+  *
+  * Example: \include MatrixBase_topRightCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_topRightCorner_int_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline Block<Derived> topRightCorner(Index cRows, Index cCols)
+{
+  return Block<Derived>(derived(), 0, cols() - cCols, cRows, cCols);
+}
+
+/** This is the const version of topRightCorner(Index, Index).*/
+inline const Block<const Derived> topRightCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived>(derived(), 0, cols() - cCols, cRows, cCols);
+}
+
+/** \returns an expression of a fixed-size top-right corner of *this.
+  *
+  * \tparam CRows the number of rows in the corner
+  * \tparam CCols the number of columns in the corner
+  *
+  * Example: \include MatrixBase_template_int_int_topRightCorner.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_topRightCorner.out
+  *
+  * \sa class Block, block<int,int>(Index,Index)
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> topRightCorner()
+{
+  return Block<Derived, CRows, CCols>(derived(), 0, cols() - CCols);
+}
+
+/** This is the const version of topRightCorner<int, int>().*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> topRightCorner() const
+{
+  return Block<const Derived, CRows, CCols>(derived(), 0, cols() - CCols);
+}
+
+/** \returns an expression of a top-right corner of *this.
+  *
+  * \tparam CRows number of rows in corner as specified at compile-time
+  * \tparam CCols number of columns in corner as specified at compile-time
+  * \param  cRows number of rows in corner as specified at run-time
+  * \param  cCols number of columns in corner as specified at run-time
+  *
+  * This function is mainly useful for corners where the number of rows is specified at compile-time
+  * and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
+  * information should not contradict. In other words, \a cRows should equal \a CRows unless
+  * \a CRows is \a Dynamic, and the same for the number of columns.
+  *
+  * Example: \include MatrixBase_template_int_int_topRightCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_topRightCorner_int_int.out
+  *
+  * \sa class Block
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> topRightCorner(Index cRows, Index cCols)
+{
+  return Block<Derived, CRows, CCols>(derived(), 0, cols() - cCols, cRows, cCols);
+}
+
+/** This is the const version of topRightCorner<int, int>(Index, Index).*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> topRightCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived, CRows, CCols>(derived(), 0, cols() - cCols, cRows, cCols);
+}
+
+
+
+/** \returns a dynamic-size expression of a top-left corner of *this.
+  *
+  * \param cRows the number of rows in the corner
+  * \param cCols the number of columns in the corner
+  *
+  * Example: \include MatrixBase_topLeftCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_topLeftCorner_int_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline Block<Derived> topLeftCorner(Index cRows, Index cCols)
+{
+  return Block<Derived>(derived(), 0, 0, cRows, cCols);
+}
+
+/** This is the const version of topLeftCorner(Index, Index).*/
+inline const Block<const Derived> topLeftCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived>(derived(), 0, 0, cRows, cCols);
+}
+
+/** \returns an expression of a fixed-size top-left corner of *this.
+  *
+  * The template parameters CRows and CCols are the number of rows and columns in the corner.
+  *
+  * Example: \include MatrixBase_template_int_int_topLeftCorner.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_topLeftCorner.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> topLeftCorner()
+{
+  return Block<Derived, CRows, CCols>(derived(), 0, 0);
+}
+
+/** This is the const version of topLeftCorner<int, int>().*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> topLeftCorner() const
+{
+  return Block<const Derived, CRows, CCols>(derived(), 0, 0);
+}
+
+/** \returns an expression of a top-left corner of *this.
+  *
+  * \tparam CRows number of rows in corner as specified at compile-time
+  * \tparam CCols number of columns in corner as specified at compile-time
+  * \param  cRows number of rows in corner as specified at run-time
+  * \param  cCols number of columns in corner as specified at run-time
+  *
+  * This function is mainly useful for corners where the number of rows is specified at compile-time
+  * and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
+  * information should not contradict. In other words, \a cRows should equal \a CRows unless
+  * \a CRows is \a Dynamic, and the same for the number of columns.
+  *
+  * Example: \include MatrixBase_template_int_int_topLeftCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_topLeftCorner_int_int.out
+  *
+  * \sa class Block
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> topLeftCorner(Index cRows, Index cCols)
+{
+  return Block<Derived, CRows, CCols>(derived(), 0, 0, cRows, cCols);
+}
+
+/** This is the const version of topLeftCorner<int, int>(Index, Index).*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> topLeftCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived, CRows, CCols>(derived(), 0, 0, cRows, cCols);
+}
+
+
+
+/** \returns a dynamic-size expression of a bottom-right corner of *this.
+  *
+  * \param cRows the number of rows in the corner
+  * \param cCols the number of columns in the corner
+  *
+  * Example: \include MatrixBase_bottomRightCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_bottomRightCorner_int_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline Block<Derived> bottomRightCorner(Index cRows, Index cCols)
+{
+  return Block<Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
+}
+
+/** This is the const version of bottomRightCorner(Index, Index).*/
+inline const Block<const Derived> bottomRightCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
+}
+
+/** \returns an expression of a fixed-size bottom-right corner of *this.
+  *
+  * The template parameters CRows and CCols are the number of rows and columns in the corner.
+  *
+  * Example: \include MatrixBase_template_int_int_bottomRightCorner.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_bottomRightCorner.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> bottomRightCorner()
+{
+  return Block<Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
+}
+
+/** This is the const version of bottomRightCorner<int, int>().*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> bottomRightCorner() const
+{
+  return Block<const Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
+}
+
+/** \returns an expression of a bottom-right corner of *this.
+  *
+  * \tparam CRows number of rows in corner as specified at compile-time
+  * \tparam CCols number of columns in corner as specified at compile-time
+  * \param  cRows number of rows in corner as specified at run-time
+  * \param  cCols number of columns in corner as specified at run-time
+  *
+  * This function is mainly useful for corners where the number of rows is specified at compile-time
+  * and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
+  * information should not contradict. In other words, \a cRows should equal \a CRows unless
+  * \a CRows is \a Dynamic, and the same for the number of columns.
+  *
+  * Example: \include MatrixBase_template_int_int_bottomRightCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_bottomRightCorner_int_int.out
+  *
+  * \sa class Block
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> bottomRightCorner(Index cRows, Index cCols)
+{
+  return Block<Derived, CRows, CCols>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
+}
+
+/** This is the const version of bottomRightCorner<int, int>(Index, Index).*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> bottomRightCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived, CRows, CCols>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
+}
+
+
+
+/** \returns a dynamic-size expression of a bottom-left corner of *this.
+  *
+  * \param cRows the number of rows in the corner
+  * \param cCols the number of columns in the corner
+  *
+  * Example: \include MatrixBase_bottomLeftCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_bottomLeftCorner_int_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline Block<Derived> bottomLeftCorner(Index cRows, Index cCols)
+{
+  return Block<Derived>(derived(), rows() - cRows, 0, cRows, cCols);
+}
+
+/** This is the const version of bottomLeftCorner(Index, Index).*/
+inline const Block<const Derived> bottomLeftCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived>(derived(), rows() - cRows, 0, cRows, cCols);
+}
+
+/** \returns an expression of a fixed-size bottom-left corner of *this.
+  *
+  * The template parameters CRows and CCols are the number of rows and columns in the corner.
+  *
+  * Example: \include MatrixBase_template_int_int_bottomLeftCorner.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_bottomLeftCorner.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> bottomLeftCorner()
+{
+  return Block<Derived, CRows, CCols>(derived(), rows() - CRows, 0);
+}
+
+/** This is the const version of bottomLeftCorner<int, int>().*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> bottomLeftCorner() const
+{
+  return Block<const Derived, CRows, CCols>(derived(), rows() - CRows, 0);
+}
+
+/** \returns an expression of a bottom-left corner of *this.
+  *
+  * \tparam CRows number of rows in corner as specified at compile-time
+  * \tparam CCols number of columns in corner as specified at compile-time
+  * \param  cRows number of rows in corner as specified at run-time
+  * \param  cCols number of columns in corner as specified at run-time
+  *
+  * This function is mainly useful for corners where the number of rows is specified at compile-time
+  * and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
+  * information should not contradict. In other words, \a cRows should equal \a CRows unless
+  * \a CRows is \a Dynamic, and the same for the number of columns.
+  *
+  * Example: \include MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_bottomLeftCorner_int_int.out
+  *
+  * \sa class Block
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> bottomLeftCorner(Index cRows, Index cCols)
+{
+  return Block<Derived, CRows, CCols>(derived(), rows() - cRows, 0, cRows, cCols);
+}
+
+/** This is the const version of bottomLeftCorner<int, int>(Index, Index).*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> bottomLeftCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived, CRows, CCols>(derived(), rows() - cRows, 0, cRows, cCols);
+}
+
+
+
+/** \returns a block consisting of the top rows of *this.
+  *
+  * \param n the number of rows in the block
+  *
+  * Example: \include MatrixBase_topRows_int.cpp
+  * Output: \verbinclude MatrixBase_topRows_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline RowsBlockXpr topRows(Index n)
+{
+  return RowsBlockXpr(derived(), 0, 0, n, cols());
+}
+
+/** This is the const version of topRows(Index).*/
+inline ConstRowsBlockXpr topRows(Index n) const
+{
+  return ConstRowsBlockXpr(derived(), 0, 0, n, cols());
+}
+
+/** \returns a block consisting of the top rows of *this.
+  *
+  * \tparam N the number of rows in the block as specified at compile-time
+  * \param n the number of rows in the block as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include MatrixBase_template_int_topRows.cpp
+  * Output: \verbinclude MatrixBase_template_int_topRows.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int N>
+inline typename NRowsBlockXpr<N>::Type topRows(Index n = N)
+{
+  return typename NRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
+}
+
+/** This is the const version of topRows<int>().*/
+template<int N>
+inline typename ConstNRowsBlockXpr<N>::Type topRows(Index n = N) const
+{
+  return typename ConstNRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
+}
+
+
+
+/** \returns a block consisting of the bottom rows of *this.
+  *
+  * \param n the number of rows in the block
+  *
+  * Example: \include MatrixBase_bottomRows_int.cpp
+  * Output: \verbinclude MatrixBase_bottomRows_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline RowsBlockXpr bottomRows(Index n)
+{
+  return RowsBlockXpr(derived(), rows() - n, 0, n, cols());
+}
+
+/** This is the const version of bottomRows(Index).*/
+inline ConstRowsBlockXpr bottomRows(Index n) const
+{
+  return ConstRowsBlockXpr(derived(), rows() - n, 0, n, cols());
+}
+
+/** \returns a block consisting of the bottom rows of *this.
+  *
+  * \tparam N the number of rows in the block as specified at compile-time
+  * \param n the number of rows in the block as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include MatrixBase_template_int_bottomRows.cpp
+  * Output: \verbinclude MatrixBase_template_int_bottomRows.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int N>
+inline typename NRowsBlockXpr<N>::Type bottomRows(Index n = N)
+{
+  return typename NRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
+}
+
+/** This is the const version of bottomRows<int>().*/
+template<int N>
+inline typename ConstNRowsBlockXpr<N>::Type bottomRows(Index n = N) const
+{
+  return typename ConstNRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
+}
+
+
+
+/** \returns a block consisting of a range of rows of *this.
+  *
+  * \param startRow the index of the first row in the block
+  * \param n the number of rows in the block
+  *
+  * Example: \include DenseBase_middleRows_int.cpp
+  * Output: \verbinclude DenseBase_middleRows_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline RowsBlockXpr middleRows(Index startRow, Index n)
+{
+  return RowsBlockXpr(derived(), startRow, 0, n, cols());
+}
+
+/** This is the const version of middleRows(Index,Index).*/
+inline ConstRowsBlockXpr middleRows(Index startRow, Index n) const
+{
+  return ConstRowsBlockXpr(derived(), startRow, 0, n, cols());
+}
+
+/** \returns a block consisting of a range of rows of *this.
+  *
+  * \tparam N the number of rows in the block as specified at compile-time
+  * \param startRow the index of the first row in the block
+  * \param n the number of rows in the block as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include DenseBase_template_int_middleRows.cpp
+  * Output: \verbinclude DenseBase_template_int_middleRows.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int N>
+inline typename NRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N)
+{
+  return typename NRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
+}
+
+/** This is the const version of middleRows<int>().*/
+template<int N>
+inline typename ConstNRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N) const
+{
+  return typename ConstNRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
+}
+
+
+
+/** \returns a block consisting of the left columns of *this.
+  *
+  * \param n the number of columns in the block
+  *
+  * Example: \include MatrixBase_leftCols_int.cpp
+  * Output: \verbinclude MatrixBase_leftCols_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline ColsBlockXpr leftCols(Index n)
+{
+  return ColsBlockXpr(derived(), 0, 0, rows(), n);
+}
+
+/** This is the const version of leftCols(Index).*/
+inline ConstColsBlockXpr leftCols(Index n) const
+{
+  return ConstColsBlockXpr(derived(), 0, 0, rows(), n);
+}
+
+/** \returns a block consisting of the left columns of *this.
+  *
+  * \tparam N the number of columns in the block as specified at compile-time
+  * \param n the number of columns in the block as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include MatrixBase_template_int_leftCols.cpp
+  * Output: \verbinclude MatrixBase_template_int_leftCols.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int N>
+inline typename NColsBlockXpr<N>::Type leftCols(Index n = N)
+{
+  return typename NColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
+}
+
+/** This is the const version of leftCols<int>().*/
+template<int N>
+inline typename ConstNColsBlockXpr<N>::Type leftCols(Index n = N) const
+{
+  return typename ConstNColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
+}
+
+
+
+/** \returns a block consisting of the right columns of *this.
+  *
+  * \param n the number of columns in the block
+  *
+  * Example: \include MatrixBase_rightCols_int.cpp
+  * Output: \verbinclude MatrixBase_rightCols_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline ColsBlockXpr rightCols(Index n)
+{
+  return ColsBlockXpr(derived(), 0, cols() - n, rows(), n);
+}
+
+/** This is the const version of rightCols(Index).*/
+inline ConstColsBlockXpr rightCols(Index n) const
+{
+  return ConstColsBlockXpr(derived(), 0, cols() - n, rows(), n);
+}
+
+/** \returns a block consisting of the right columns of *this.
+  *
+  * \tparam N the number of columns in the block as specified at compile-time
+  * \param n the number of columns in the block as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include MatrixBase_template_int_rightCols.cpp
+  * Output: \verbinclude MatrixBase_template_int_rightCols.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int N>
+inline typename NColsBlockXpr<N>::Type rightCols(Index n = N)
+{
+  return typename NColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
+}
+
+/** This is the const version of rightCols<int>().*/
+template<int N>
+inline typename ConstNColsBlockXpr<N>::Type rightCols(Index n = N) const
+{
+  return typename ConstNColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
+}
+
+
+
+/** \returns a block consisting of a range of columns of *this.
+  *
+  * \param startCol the index of the first column in the block
+  * \param numCols the number of columns in the block
+  *
+  * Example: \include DenseBase_middleCols_int.cpp
+  * Output: \verbinclude DenseBase_middleCols_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline ColsBlockXpr middleCols(Index startCol, Index numCols)
+{
+  return ColsBlockXpr(derived(), 0, startCol, rows(), numCols);
+}
+
+/** This is the const version of middleCols(Index,Index).*/
+inline ConstColsBlockXpr middleCols(Index startCol, Index numCols) const
+{
+  return ConstColsBlockXpr(derived(), 0, startCol, rows(), numCols);
+}
+
+/** \returns a block consisting of a range of columns of *this.
+  *
+  * \tparam N the number of columns in the block as specified at compile-time
+  * \param startCol the index of the first column in the block
+  * \param n the number of columns in the block as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include DenseBase_template_int_middleCols.cpp
+  * Output: \verbinclude DenseBase_template_int_middleCols.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int N>
+inline typename NColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N)
+{
+  return typename NColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
+}
+
+/** This is the const version of middleCols<int>().*/
+template<int N>
+inline typename ConstNColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N) const
+{
+  return typename ConstNColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
+}
+
+
+
+/** \returns a fixed-size expression of a block in *this.
+  *
+  * The template parameters \a BlockRows and \a BlockCols are the number of
+  * rows and columns in the block.
+  *
+  * \param startRow the first row in the block
+  * \param startCol the first column in the block
+  *
+  * Example: \include MatrixBase_block_int_int.cpp
+  * Output: \verbinclude MatrixBase_block_int_int.out
+  *
+  * \note since block is a templated member, the keyword template has to be used
+  * if the matrix type is also a template parameter: \code m.template block<3,3>(1,1); \endcode
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int BlockRows, int BlockCols>
+inline Block<Derived, BlockRows, BlockCols> block(Index startRow, Index startCol)
+{
+  return Block<Derived, BlockRows, BlockCols>(derived(), startRow, startCol);
+}
+
+/** This is the const version of block<>(Index, Index). */
+template<int BlockRows, int BlockCols>
+inline const Block<const Derived, BlockRows, BlockCols> block(Index startRow, Index startCol) const
+{
+  return Block<const Derived, BlockRows, BlockCols>(derived(), startRow, startCol);
+}
+
+/** \returns an expression of a block in *this.
+  *
+  * \tparam BlockRows number of rows in block as specified at compile-time
+  * \tparam BlockCols number of columns in block as specified at compile-time
+  * \param  startRow  the first row in the block
+  * \param  startCol  the first column in the block
+  * \param  blockRows number of rows in block as specified at run-time
+  * \param  blockCols number of columns in block as specified at run-time
+  *
+  * This function is mainly useful for blocks where the number of rows is specified at compile-time
+  * and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
+  * information should not contradict. In other words, \a blockRows should equal \a BlockRows unless
+  * \a BlockRows is \a Dynamic, and the same for the number of columns.
+  *
+  * Example: \include MatrixBase_template_int_int_block_int_int_int_int.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_block_int_int_int_int.cpp
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int BlockRows, int BlockCols>
+inline Block<Derived, BlockRows, BlockCols> block(Index startRow, Index startCol, 
+                                                  Index blockRows, Index blockCols)
+{
+  return Block<Derived, BlockRows, BlockCols>(derived(), startRow, startCol, blockRows, blockCols);
+}
+
+/** This is the const version of block<>(Index, Index, Index, Index). */
+template<int BlockRows, int BlockCols>
+inline const Block<const Derived, BlockRows, BlockCols> block(Index startRow, Index startCol,
+                                                              Index blockRows, Index blockCols) const
+{
+  return Block<const Derived, BlockRows, BlockCols>(derived(), startRow, startCol, blockRows, blockCols);
+}
+
+/** \returns an expression of the \a i-th column of *this. Note that the numbering starts at 0.
+  *
+  * Example: \include MatrixBase_col.cpp
+  * Output: \verbinclude MatrixBase_col.out
+  *
+  * \sa row(), class Block */
+inline ColXpr col(Index i)
+{
+  return ColXpr(derived(), i);
+}
+
+/** This is the const version of col(). */
+inline ConstColXpr col(Index i) const
+{
+  return ConstColXpr(derived(), i);
+}
+
+/** \returns an expression of the \a i-th row of *this. Note that the numbering starts at 0.
+  *
+  * Example: \include MatrixBase_row.cpp
+  * Output: \verbinclude MatrixBase_row.out
+  *
+  * \sa col(), class Block */
+inline RowXpr row(Index i)
+{
+  return RowXpr(derived(), i);
+}
+
+/** This is the const version of row(). */
+inline ConstRowXpr row(Index i) const
+{
+  return ConstRowXpr(derived(), i);
+}
+
+/** \returns a dynamic-size expression of a segment (i.e. a vector block) in *this.
+  *
+  * \only_for_vectors
+  *
+  * \param start the first coefficient in the segment
+  * \param n the number of coefficients in the segment
+  *
+  * Example: \include MatrixBase_segment_int_int.cpp
+  * Output: \verbinclude MatrixBase_segment_int_int.out
+  *
+  * \note Even though the returned expression has dynamic size, in the case
+  * when it is applied to a fixed-size vector, it inherits a fixed maximal size,
+  * which means that evaluating it does not cause a dynamic memory allocation.
+  *
+  * \sa class Block, segment(Index)
+  */
+inline SegmentReturnType segment(Index start, Index n)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return SegmentReturnType(derived(), start, n);
+}
+
+
+/** This is the const version of segment(Index,Index).*/
+inline ConstSegmentReturnType segment(Index start, Index n) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return ConstSegmentReturnType(derived(), start, n);
+}
+
+/** \returns a dynamic-size expression of the first coefficients of *this.
+  *
+  * \only_for_vectors
+  *
+  * \param n the number of coefficients in the segment
+  *
+  * Example: \include MatrixBase_start_int.cpp
+  * Output: \verbinclude MatrixBase_start_int.out
+  *
+  * \note Even though the returned expression has dynamic size, in the case
+  * when it is applied to a fixed-size vector, it inherits a fixed maximal size,
+  * which means that evaluating it does not cause a dynamic memory allocation.
+  *
+  * \sa class Block, block(Index,Index)
+  */
+inline SegmentReturnType head(Index n)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return SegmentReturnType(derived(), 0, n);
+}
+
+/** This is the const version of head(Index).*/
+inline ConstSegmentReturnType head(Index n) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return ConstSegmentReturnType(derived(), 0, n);
+}
+
+/** \returns a dynamic-size expression of the last coefficients of *this.
+  *
+  * \only_for_vectors
+  *
+  * \param n the number of coefficients in the segment
+  *
+  * Example: \include MatrixBase_end_int.cpp
+  * Output: \verbinclude MatrixBase_end_int.out
+  *
+  * \note Even though the returned expression has dynamic size, in the case
+  * when it is applied to a fixed-size vector, it inherits a fixed maximal size,
+  * which means that evaluating it does not cause a dynamic memory allocation.
+  *
+  * \sa class Block, block(Index,Index)
+  */
+inline SegmentReturnType tail(Index n)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return SegmentReturnType(derived(), this->size() - n, n);
+}
+
+/** This is the const version of tail(Index).*/
+inline ConstSegmentReturnType tail(Index n) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return ConstSegmentReturnType(derived(), this->size() - n, n);
+}
+
+/** \returns a fixed-size expression of a segment (i.e. a vector block) in \c *this
+  *
+  * \only_for_vectors
+  *
+  * \tparam N the number of coefficients in the segment as specified at compile-time
+  * \param start the index of the first element in the segment
+  * \param n the number of coefficients in the segment as specified at compile-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include MatrixBase_template_int_segment.cpp
+  * Output: \verbinclude MatrixBase_template_int_segment.out
+  *
+  * \sa class Block
+  */
+template<int N>
+inline typename FixedSegmentReturnType<N>::Type segment(Index start, Index n = N)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return typename FixedSegmentReturnType<N>::Type(derived(), start, n);
+}
+
+/** This is the const version of segment<int>(Index).*/
+template<int N>
+inline typename ConstFixedSegmentReturnType<N>::Type segment(Index start, Index n = N) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return typename ConstFixedSegmentReturnType<N>::Type(derived(), start, n);
+}
+
+/** \returns a fixed-size expression of the first coefficients of *this.
+  *
+  * \only_for_vectors
+  *
+  * \tparam N the number of coefficients in the segment as specified at compile-time
+  * \param  n the number of coefficients in the segment as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include MatrixBase_template_int_start.cpp
+  * Output: \verbinclude MatrixBase_template_int_start.out
+  *
+  * \sa class Block
+  */
+template<int N>
+inline typename FixedSegmentReturnType<N>::Type head(Index n = N)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return typename FixedSegmentReturnType<N>::Type(derived(), 0, n);
+}
+
+/** This is the const version of head<int>().*/
+template<int N>
+inline typename ConstFixedSegmentReturnType<N>::Type head(Index n = N) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return typename ConstFixedSegmentReturnType<N>::Type(derived(), 0, n);
+}
+
+/** \returns a fixed-size expression of the last coefficients of *this.
+  *
+  * \only_for_vectors
+  *
+  * \tparam N the number of coefficients in the segment as specified at compile-time
+  * \param  n the number of coefficients in the segment as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include MatrixBase_template_int_end.cpp
+  * Output: \verbinclude MatrixBase_template_int_end.out
+  *
+  * \sa class Block
+  */
+template<int N>
+inline typename FixedSegmentReturnType<N>::Type tail(Index n = N)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return typename FixedSegmentReturnType<N>::Type(derived(), size() - n);
+}
+
+/** This is the const version of tail<int>.*/
+template<int N>
+inline typename ConstFixedSegmentReturnType<N>::Type tail(Index n = N) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return typename ConstFixedSegmentReturnType<N>::Type(derived(), size() - n);
+}
diff --git a/vendor/eigen-3.1.91/Eigen/src/plugins/CMakeLists.txt b/vendor/eigen-3.2.8/Eigen/src/plugins/CMakeLists.txt
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/plugins/CMakeLists.txt
rename to vendor/eigen-3.2.8/Eigen/src/plugins/CMakeLists.txt
diff --git a/vendor/eigen-3.1.91/Eigen/src/plugins/CommonCwiseBinaryOps.h b/vendor/eigen-3.2.8/Eigen/src/plugins/CommonCwiseBinaryOps.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/plugins/CommonCwiseBinaryOps.h
rename to vendor/eigen-3.2.8/Eigen/src/plugins/CommonCwiseBinaryOps.h
diff --git a/vendor/eigen-3.1.91/Eigen/src/plugins/CommonCwiseUnaryOps.h b/vendor/eigen-3.2.8/Eigen/src/plugins/CommonCwiseUnaryOps.h
similarity index 100%
rename from vendor/eigen-3.1.91/Eigen/src/plugins/CommonCwiseUnaryOps.h
rename to vendor/eigen-3.2.8/Eigen/src/plugins/CommonCwiseUnaryOps.h
diff --git a/vendor/eigen-3.2.8/Eigen/src/plugins/MatrixCwiseBinaryOps.h b/vendor/eigen-3.2.8/Eigen/src/plugins/MatrixCwiseBinaryOps.h
new file mode 100644
index 0000000..c4a042b
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/plugins/MatrixCwiseBinaryOps.h
@@ -0,0 +1,143 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// This file is a base class plugin containing matrix specifics coefficient wise functions.
+
+/** \returns an expression of the Schur product (coefficient wise product) of *this and \a other
+  *
+  * Example: \include MatrixBase_cwiseProduct.cpp
+  * Output: \verbinclude MatrixBase_cwiseProduct.out
+  *
+  * \sa class CwiseBinaryOp, cwiseAbs2
+  */
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const EIGEN_CWISE_PRODUCT_RETURN_TYPE(Derived,OtherDerived)
+cwiseProduct(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return EIGEN_CWISE_PRODUCT_RETURN_TYPE(Derived,OtherDerived)(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise == operator of *this and \a other
+  *
+  * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
+  * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
+  * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
+  * isMuchSmallerThan().
+  *
+  * Example: \include MatrixBase_cwiseEqual.cpp
+  * Output: \verbinclude MatrixBase_cwiseEqual.out
+  *
+  * \sa cwiseNotEqual(), isApprox(), isMuchSmallerThan()
+  */
+template<typename OtherDerived>
+inline const CwiseBinaryOp<std::equal_to<Scalar>, const Derived, const OtherDerived>
+cwiseEqual(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return CwiseBinaryOp<std::equal_to<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise != operator of *this and \a other
+  *
+  * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
+  * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
+  * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
+  * isMuchSmallerThan().
+  *
+  * Example: \include MatrixBase_cwiseNotEqual.cpp
+  * Output: \verbinclude MatrixBase_cwiseNotEqual.out
+  *
+  * \sa cwiseEqual(), isApprox(), isMuchSmallerThan()
+  */
+template<typename OtherDerived>
+inline const CwiseBinaryOp<std::not_equal_to<Scalar>, const Derived, const OtherDerived>
+cwiseNotEqual(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return CwiseBinaryOp<std::not_equal_to<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise min of *this and \a other
+  *
+  * Example: \include MatrixBase_cwiseMin.cpp
+  * Output: \verbinclude MatrixBase_cwiseMin.out
+  *
+  * \sa class CwiseBinaryOp, max()
+  */
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived, const OtherDerived>
+cwiseMin(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return CwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise min of *this and scalar \a other
+  *
+  * \sa class CwiseBinaryOp, min()
+  */
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived, const ConstantReturnType>
+cwiseMin(const Scalar &other) const
+{
+  return cwiseMin(Derived::Constant(rows(), cols(), other));
+}
+
+/** \returns an expression of the coefficient-wise max of *this and \a other
+  *
+  * Example: \include MatrixBase_cwiseMax.cpp
+  * Output: \verbinclude MatrixBase_cwiseMax.out
+  *
+  * \sa class CwiseBinaryOp, min()
+  */
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived, const OtherDerived>
+cwiseMax(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return CwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise max of *this and scalar \a other
+  *
+  * \sa class CwiseBinaryOp, min()
+  */
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived, const ConstantReturnType>
+cwiseMax(const Scalar &other) const
+{
+  return cwiseMax(Derived::Constant(rows(), cols(), other));
+}
+
+
+/** \returns an expression of the coefficient-wise quotient of *this and \a other
+  *
+  * Example: \include MatrixBase_cwiseQuotient.cpp
+  * Output: \verbinclude MatrixBase_cwiseQuotient.out
+  *
+  * \sa class CwiseBinaryOp, cwiseProduct(), cwiseInverse()
+  */
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived>
+cwiseQuotient(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+typedef CwiseBinaryOp<internal::scalar_cmp_op<Scalar,internal::cmp_EQ>, const Derived, const ConstantReturnType> CwiseScalarEqualReturnType;
+
+/** \returns an expression of the coefficient-wise == operator of \c *this and a scalar \a s
+  *
+  * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
+  * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
+  * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
+  * isMuchSmallerThan().
+  *
+  * \sa cwiseEqual(const MatrixBase<OtherDerived> &) const
+  */
+inline const CwiseScalarEqualReturnType
+cwiseEqual(const Scalar& s) const
+{
+  return CwiseScalarEqualReturnType(derived(), Derived::Constant(rows(), cols(), s), internal::scalar_cmp_op<Scalar,internal::cmp_EQ>());
+}
diff --git a/vendor/eigen-3.2.8/Eigen/src/plugins/MatrixCwiseUnaryOps.h b/vendor/eigen-3.2.8/Eigen/src/plugins/MatrixCwiseUnaryOps.h
new file mode 100644
index 0000000..8de1093
--- /dev/null
+++ b/vendor/eigen-3.2.8/Eigen/src/plugins/MatrixCwiseUnaryOps.h
@@ -0,0 +1,52 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud at inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1 at gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// This file is a base class plugin containing matrix specifics coefficient wise functions.
+
+/** \returns an expression of the coefficient-wise absolute value of \c *this
+  *
+  * Example: \include MatrixBase_cwiseAbs.cpp
+  * Output: \verbinclude MatrixBase_cwiseAbs.out
+  *
+  * \sa cwiseAbs2()
+  */
+EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived>
+cwiseAbs() const { return derived(); }
+
+/** \returns an expression of the coefficient-wise squared absolute value of \c *this
+  *
+  * Example: \include MatrixBase_cwiseAbs2.cpp
+  * Output: \verbinclude MatrixBase_cwiseAbs2.out
+  *
+  * \sa cwiseAbs()
+  */
+EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived>
+cwiseAbs2() const { return derived(); }
+
+/** \returns an expression of the coefficient-wise square root of *this.
+  *
+  * Example: \include MatrixBase_cwiseSqrt.cpp
+  * Output: \verbinclude MatrixBase_cwiseSqrt.out
+  *
+  * \sa cwisePow(), cwiseSquare()
+  */
+inline const CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived>
+cwiseSqrt() const { return derived(); }
+
+/** \returns an expression of the coefficient-wise inverse of *this.
+  *
+  * Example: \include MatrixBase_cwiseInverse.cpp
+  * Output: \verbinclude MatrixBase_cwiseInverse.out
+  *
+  * \sa cwiseProduct()
+  */
+inline const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived>
+cwiseInverse() const { return derived(); }
+
diff --git a/vendor/jsoncpp-1.6.2/dist/CMakeLists.txt b/vendor/jsoncpp-1.6.2/dist/CMakeLists.txt
new file mode 100644
index 0000000..50c00a8
--- /dev/null
+++ b/vendor/jsoncpp-1.6.2/dist/CMakeLists.txt
@@ -0,0 +1,26 @@
+#
+# Make sure we don't attempt to add a library more than once
+#
+get_property(EXISTS GLOBAL PROPERTY _PDALJSONCPP_INCLUDED)
+if (EXISTS)
+    return()
+endif()
+
+file(GLOB PDAL_JSONCPP_SOURCES
+    "jsoncpp.cpp"
+)
+
+if(UNIX)
+  add_definitions("-fPIC")
+endif()
+
+
+PDAL_ADD_LIBRARY(${PDAL_JSONCPP_LIB_NAME} STATIC "${PDAL_JSONCPP_SOURCES}")
+
+set_target_properties(${PDAL_JSONCPP_LIB_NAME} PROPERTIES
+    VERSION "${PDAL_BUILD_VERSION}"
+    SOVERSION "${PDAL_API_VERSION}"
+    CLEAN_DIRECT_OUTPUT 1)
+
+set_property(GLOBAL PROPERTY _PDALJSONCPP_INCLUDED TRUE)
+
diff --git a/vendor/jsoncpp-1.6.2/dist/json/json-forwards.h b/vendor/jsoncpp-1.6.2/dist/json/forwards.h
similarity index 100%
rename from vendor/jsoncpp-1.6.2/dist/json/json-forwards.h
rename to vendor/jsoncpp-1.6.2/dist/json/forwards.h
diff --git a/vendor/rply-1.1.4/rply.h b/vendor/rply-1.1.4/rply.h
index 9fa6da9..8675050 100644
--- a/vendor/rply-1.1.4/rply.h
+++ b/vendor/rply-1.1.4/rply.h
@@ -37,7 +37,7 @@ typedef enum e_ply_storage_mode_ {
 /* ply data type */
 typedef enum e_ply_type {
     PLY_INT8, PLY_UINT8, PLY_INT16, PLY_UINT16,
-    PLY_INT32, PLY_UIN32, PLY_FLOAT32, PLY_FLOAT64,
+    PLY_INT32, PLY_UINT32, PLY_FLOAT32, PLY_FLOAT64,
     PLY_CHAR, PLY_UCHAR, PLY_SHORT, PLY_USHORT,
     PLY_INT, PLY_UINT, PLY_FLOAT, PLY_DOUBLE,
     PLY_LIST    /* has to be the last in enum */

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/pdal.git



More information about the Pkg-grass-devel mailing list